pax_global_header00006660000000000000000000000064126534764300014524gustar00rootroot0000000000000052 comment=3b4c31d784bef1ec4e3580f672c5d5fb430c1936 taskcoach-1.4.3/000077500000000000000000000000001265347643000134715ustar00rootroot00000000000000taskcoach-1.4.3/.pylintrc000066400000000000000000000236511265347643000153450ustar00rootroot00000000000000# Task Coach - Your friendly task manager # Copyright (C) 2004-2016 Task Coach developers # # Task Coach 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. # # Task Coach 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 . # lint Python modules using external checkers. # # This is the main checker controlling the other ones and the reports # generation. It is itself both a raw checker and an astng checker in order # to: # * handle message activation / deactivation at the module level # * handle some basic but necessary stats'data (number of classes, methods...) # [MASTER] # Specify a configuration file. #rcfile= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Profiled execution. profile=no # Add to the black list. It should be a base name, not a # path. You may set this option multiple times. ignore=thirdparty ignore=i18n ignore=icons.py ignore=buildbot ignore=buildlib # Pickle collected data for later comparisons. persistent=yes # Set the cache size for astng objects. cache-size=500 # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= [MESSAGES CONTROL] # Enable only checker(s) with the given id(s). This option conflicts with the # disable-checker option #enable-checker= # Enable all checker(s) except those with the given id(s). This option # conflicts with the enable-checker option #disable-checker= # Enable all messages in the listed categories (IRCWEF). #enable-msg-cat= # Disable all messages in the listed categories (IRCWEF). disable-msg-cat=I # Enable the message(s) with the given id(s). #enable-msg= # Disable the message(s) with the given id(s). disable-msg=W0142,W0201,W0704 [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs # (visual studio) and html output-format=text # Include message's id in output include-ids=yes # Put messages in a separate file for each module / package specified on the # command line instead of printing them on stdout. Reports (if any) will be # written in a file name "pylint_global.[txt|html]". files-output=no # Tells wether to display a full report or only the messages reports=yes # Python expression which should return a note less than 10 (10 is the highest # note). You have access to the variables errors warning, statement which # respectivly contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (R0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Add a comment according to your evaluation note. This is used by the global # evaluation report (R0004). comment=no # Enable the report(s) with the given id(s). #enable-report= # Disable the report(s) with the given id(s). #disable-report= # checks for : # * doc strings # * modules / classes / functions / methods / arguments / variables name # * number of arguments, local variables, branchs, returns and statements in # functions, methods # * required module attributes # * dangerous default values as arguments # * redefinition of function / method / class # * uses of the global statement # [BASIC] # Required attributes for module, separated by a comma required-attributes= # Regular expression which should only match functions or classes name which do # not require a docstring no-docstring-rgx=__.*__ # Regular expression which should only match correct module names module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ # Regular expression which should only match correct module level names const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ # Regular expression which should only match correct class names class-rgx=[A-Z_][a-zA-Z0-9]+$ # Regular expression which should only match correct function names function-rgx=[a-zA-Z_][a-zA-Z0-9_]{2,30}$ # Regular expression which should only match correct method names method-rgx=[a-zA-Z_][a-zA-Z0-9_]{2,30}$ # Regular expression which should only match correct instance attribute names attr-rgx=[a-z_][a-zA-Z0-9_]{2,30}$ # Regular expression which should only match correct argument names argument-rgx=[a-z_][a-zA-Z0-9_]{2,30}$ # Regular expression which should only match correct variable names variable-rgx=[a-z_][a-zA-Z0-9_]{2,30}$ # Regular expression which should only match correct list comprehension / # generator expression variable names inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ # Good variable names which should always be accepted, separated by a comma good-names=i,j,k,_ # Bad variable names which should always be refused, separated by a comma bad-names=foo,bar,baz,toto,tutu,tata # List of builtins function names that should not be used, separated by a comma bad-functions=map,filter,apply,input # try to find bugs in the code using type inference # [TYPECHECK] # Tells wether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # List of classes names for which member attributes should not be checked # (useful for classes with attributes dynamicaly set). ignored-classes= # When zope mode is activated, add a predefined set of Zope acquired attributes # to generated-members. zope=no # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E0201 when accessed. generated-members= # checks for # * unused variables / imports # * undefined variables # * redefinition of variable from builtins or from an outer scope # * use of variable before assigment # [VARIABLES] # Tells wether we should check for unused import in __init__ files. init-import=no # A regular expression matching names used for dummy variables (i.e. not used). dummy-variables-rgx=_|dummy # List of additional names supposed to be defined in builtins. Remember that # you should avoid to define new builtins when possible. additional-builtins= # checks for : # * methods without self as first argument # * overridden methods signature # * access only to existant members via self # * attributes not defined in the __init__ method # * supported interfaces implementation # * unreachable code # [CLASSES] # List of interface methods to ignore, separated by a comma. This is used for # instance to not check methods defines in Zope's Interface base class. ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__,__new__,setUp # checks for sign of poor/misdesign: # * number of methods, attributes, local variables... # * size, complexity of functions, methods # [DESIGN] # Maximum number of arguments for function / method max-args=5 # Maximum number of locals for function / method body max-locals=15 # Maximum number of return / yield for function / method body max-returns=6 # Maximum number of branch for function / method body max-branchs=12 # Maximum number of statements in function / method body max-statements=50 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Minimum number of public methods for a class (see R0903). min-public-methods=2 # Maximum number of public methods for a class (see R0904). max-public-methods=20 # checks for # * external modules dependencies # * relative / wildcard imports # * cyclic imports # * uses of deprecated modules # [IMPORTS] # Deprecated modules which should not be used, separated by a comma deprecated-modules=regsub,string,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report R0402 must not be disabled) import-graph= # Create a graph of external dependencies in the given file (report R0402 must # not be disabled) ext-import-graph= # Create a graph of internal dependencies in the given file (report R0402 must # not be disabled) int-import-graph= # checks for : # * unauthorized constructions # * strict indentation # * line length # * use of <> instead of != # [FORMAT] # Maximum number of characters on a single line. max-line-length=80 # Maximum number of lines in a module max-module-lines=1000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' # checks for: # * warning notes in the code like FIXME, XXX # * PEP 263: source code with non ascii character but no encoding declaration # [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=FIXME,XXX,TODO # checks for similarities and duplicated code. This computation may be # memory / CPU intensive, so you should disable it if you experiments some # problems. # [SIMILARITIES] # Minimum lines number of a similarity. min-similarity-lines=4 # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes taskcoach-1.4.3/COPYRIGHT.txt000066400000000000000000000050471265347643000156100ustar00rootroot00000000000000Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach developers are: Copyright (C) 2012 Aaron Wolf Copyright (C) 2005-2011 Jérôme Laheurte Copyright (C) 2004-2011 Frank Niessink Portions were contributed by: Copyright (C) 2012 Nicola Chiapolini Copyright (C) 2011 David Harks Copyright (C) 2010 Svetoslav Trochev Copyright (C) 2009 George Weeks Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Carl Zmola Copyright (C) 2008 Thomas Sonne Olesen Copyright (C) 2008 Joăo Alexandre de Toledo Copyright (C) 2008 Marcin Zajaczkowski Copyright (C) 2011 Tobias Gradl Copyright (C) 2013 Ivan Romanov Copyright (C) 2014 Joseph Wang Copyright (C) 2014 Tom Monaco Copyright (C) 2014 Manab Chetia Copyright (C) 2015 Nicola (https://sourceforge.net/u/swisscarbon/profile/) Files under taskcoachlib/thirdparty are, well, third party. They come with their own license. They may include modifications from the original, in which cases those modifications comply with the original license. The following files do not include any copyright information except for the original author's name: - taskcoachlib/thirdparty/snarl.py: that's how we found it on the Interwebs. - taskcoachlib/i18n/po2dict.py: same. - taskcoachlib/persistence/xml/templates.py: because it's a generated file. Also thanks to Nicolas Boulenguez for helping make this list complete, doing some anal harm to various lepidopterans in the process (French expression, I'm not sure it translates well in English). Task Coach 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. Task Coach 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 . taskcoach-1.4.3/HACKING.txt000066400000000000000000000157201265347643000153030ustar00rootroot00000000000000===================================================================== Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2009 George Weeks Task Coach 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. Task Coach 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 . ===================================================================== Welcome to Task Coach - Your friendly task manager Below you find information about running, testing, installing, and developing Task Coach. --- Prerequisites --------------------------------------------------- You need Python version 2.6 or higher, wxPython version 2.8.9.2-unicode or higher and Twisted. See http://www.taskcoach.org/devinfo.html for more details and platform specific notes. For building distributions and running tests, GNU make is used. Make is installed on most systems by default. On Windows you can install Cygwin (http://www.cygwin.com) to get make and a lot of other nice utilities. Make will automatically use the file Makefile as its script, unless directed otherwise. Makefile in turn uses "pymake.py" to build distributions. So, if you don't have make installed you can still build the distributions by running the commands from the Makefile by hand. Since 2012/10/14 you will also need tar, gzip and patch to unpack the third party modules. Those are part of Cygwin. In order to build the executable on Windows with py2exe you'll need to hack zope.interface (a Twisted dependency) as described here: http://stackoverflow.com/questions/7816799/getting-py2exe-to-work-with-zope-interface --- Preparation ----------------------------------------------------- Task Coach needs a few generated files, run the following command to generate them: make prepare --- Running --------------------------------------------------------- Start Task Coach from the command line like this: python taskcoach.py --- Testing --------------------------------------------------------- To run the tests, enter: make unittests Check out the Makefile for more testing options. The test script has a bunch of options as well, enter: cd tests; python test.py --help for more information. --- Test coverage --------------------------------------------------- To create test coverage reports, you need to install coverage.py (http://pypi.python.org/pypi/coverage/). Install with: sudo easy_install coverage To create a coverage report, enter: make coverage The coverage report is written to tests/coverage.out. --- Building distributions ------------------------------------------ Use the Makefile to create distributions (they are placed in dist/): make windist # Creates installer for Windows make dmg # Creates disk image for Mac OS X make rpm # Creates generic RPM make fedora # Creates RPM for Fedora 8 or later make deb # Creates Debian package for Debian and Ubuntu Check out the Makefile for more details. E.g. to create the Task Coach app on Mac OS X you can also run: python pymake.py py2app The TaskCoach.app ends up in build/ --- Installation ---------------------------------------------------- There are two options to install Task Coach: First, you can simply move this directory to some suitable location and run taskcoach.py (or taskcoach.pyw if you are on the Windows platform) from there. Alternatively, you can use the Python distutils setup script to let Python install Task Coach for you. In that case run the following command: python setup.py install You may need to run this command as root if you get "Permission denied" errors: sudo python setup.py install If you have a previous version of Task Coach installed, you may need to force old files to be overwritten, like this: python setup.py install --force --- Architecture overview ------------------------------------------- Task Coach is a desktop application, developed in Python and using wxPython for its GUI. Task Coach is more or less developed using the Model-View-Controller architectural style. Its main components are: * the domain layer that consists of domain classes for tasks, categories, effort, notes and other domain objects, * the gui layer that consists of viewers, controllers, dialogs, menu's and other GUI objects, * the persistence layer that knows how to load and save domain objects from and to XML files (the .tsk files) and how to export domain objects to different formats, including HTML. The layering is not strict: The domain layer has no knowledge of the gui and persistence layer. The persistence layer has no knowledge of the gui layer. But the gui layer has knowledge of both persistence and domain layer. --- Source code overview -------------------------------------------- The Task Coach source code is organized in python packages. The most important and biggest packages are the domain packages that contains classes for the domain objects and the gui package that contains viewers, dialogs and other gui components. The command package contains classes that implement user actions, e.g. adding a new task or deleting a category. These actions are all undoable and redoable. The package is called 'command' since it uses the so-called Command patterns to implement unlimited undo-redo. The config package contains classes related to user configurable options that are saved in the TaskCoach.ini file, including all default values for the options. The help package contains help files and the license. The i18n ('internationalization') package contains the (generated) translation modules. These python modules are generated from the .po files (see taskcoach/i18n.in). The mailer package contains modules to interact with email clients for email attachments and drag and drop from email clients. The meta package contains meta information about Task Coach, such as author, version number, etc. The patterns package contains base classes for design patterns such as Singleton and Observable that are used in other packages. The persistence package contains modules for saving the Task Coach data in its .tsk file format, which actually is XML and for exporting data in different formats. The thirdparty package contains third party modules that are used as is, but are included here to ease installation. The widgets package contains widgets that are used in the gui package. These are mostly widgets from wxPython that need a slight adaption in their interface. ===================================================================== taskcoach-1.4.3/Makefile000066400000000000000000000320101265347643000151250ustar00rootroot00000000000000# Task Coach - Your friendly task manager # Copyright (C) 2004-2016 Task Coach developers # # Task Coach 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. # # Task Coach 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 . # Makefile to create binary and source distributions and generate the # simple website (intermediate files are in ./build, distributions are # put in ./dist, the files for the website end up in ./website.out) DOT="dot" # dot should be on the path # Python should be on the path. On 64 bits Mac OS X, use the 32-bits version # (wx only works in 32 bits mode and the environment/default write trick to # make it the default does not seem to work on Lion). ifeq "$(shell uname -s)" "Darwin" BITS=$(shell python -c "import struct; print len(struct.pack('L', 0))") ifeq "$(BITS)" "8" PYTHON?="python-32" else PYTHON?="python" endif else PYTHON?="python" endif ifeq (CYGWIN_NT,$(findstring CYGWIN_NT,$(shell uname))) INNOSETUP="/cygdrive/c/Program Files/Inno Setup 5/ISCC.exe" PORTABLEAPPSINSTALLER="/cygdrive/c/Program Files/PortableApps.comInstaller/PortableApps.comInstaller.exe" EPYDOC=$(PYTHON) $(shell python -c "import os, sys; print \"'\" + os.path.join(os.path.split(sys.executable)[0], 'Scripts', 'epydoc.py') + \"'\"") else EPYDOC="epydoc" endif TCVERSION=$(shell python -c "import taskcoachlib.meta.data as data; print data.version") TCPORTABLE=$(shell python -c "import os; print \"'\" + os.path.join(os.getcwd(), 'build', 'TaskCoachPortable') + \"'\"") ifeq ($(PGPID)x,x) PGPID=a3e41706 endif revision: echo "revision='$(TCREV)'" > taskcoachlib/meta/revision.py prepare: thirdpartymodules icons i18n templates windists: windist winpenpack portableapps sdist_windows windist: py2exe $(INNOSETUP) build/taskcoach.iss py2exe: prepare $(PYTHON) pymake.py py2exe sdist_windows: prepare changes templates dist/TaskCoach-$(TCVERSION).zip dist/TaskCoach-$(TCVERSION).zip: $(PYTHON) pymake.py sdist --formats=zip --no-prune --template=build.in/windows/MANIFEST.in sdist_linux: prepare changes templates dist/TaskCoach-$(TCVERSION).tar.gz sdist_ubuntu: sdist_linux # Launchpad does not support one size fits all packages... cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu12~precise.tar.gz cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu14~trusty.tar.gz cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu15~vivid.tar.gz cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu15~wily.tar.gz sdist_raw: mkdir -p dist cp -a . ../tmp-sdist cd ../tmp-sdist; make nuke; find . -name ".svn" | xargs -d '\n' rm -rf mv ../tmp-sdist dist/TaskCoach-$(TCVERSION) cd dist; tar czf TaskCoach-$(TCVERSION)-raw.tgz TaskCoach-$(TCVERSION); rm -rf TaskCoach-$(TCVERSION) dist/TaskCoach-$(TCVERSION).tar.gz: $(PYTHON) pymake.py sdist --formats=gztar --no-prune --template=build.in/debian/MANIFEST.in echo Created dist/TaskCoach-$(TCVERSION).tar.gz rpm: prepare changes templates cp build.in/debian/MANIFEST.in . $(PYTHON) pymake.py bdist_rpm --requires "python2.5,python-wxgtk2.8" --group "Applications/Productivity" rm MANIFEST.in fedora: prepare changes templates cp build.in/debian/MANIFEST.in . $(PYTHON) pymake.py bdist_rpm_fedora rm MANIFEST.in opensuse: sdist_linux cp build.in/debian/MANIFEST.in . $(PYTHON) pymake.py bdist_rpm_opensuse mv dist/taskcoach-$(TCVERSION)-1.noarch.rpm dist/taskcoach-$(TCVERSION)-1.opensuse.i386.rpm mv dist/taskcoach-$(TCVERSION)-1.src.rpm dist/taskcoach-$(TCVERSION)-1.opensuse.src.rpm deb: sdist_linux mv dist/TaskCoach-$(TCVERSION).tar.gz dist/TaskCoach_$(TCVERSION).tar.gz LC_ALL=C $(PYTHON) pymake.py bdist_deb --sdist=dist/TaskCoach_$(TCVERSION).tar.gz mv dist/taskcoach_$(TCVERSION)-1_all.deb dist/taskcoach_$(TCVERSION)-1.deb ubuntu: sdist_ubuntu LC_ALL=C $(PYTHON) pymake.py bdist_ubuntu precise 12 --sdist=dist/taskcoach_$(TCVERSION)-0ubuntu12~precise.tar.gz mv build build-precise LC_ALL=C $(PYTHON) pymake.py bdist_ubuntu trusty 14 --sdist=dist/taskcoach_$(TCVERSION)-0ubuntu14~trusty.tar.gz mv build build-trusty LC_ALL=C $(PYTHON) pymake.py bdist_ubuntu vivid 15 --sdist=dist/taskcoach_$(TCVERSION)-0ubuntu15~vivid.tar.gz mv build build-vivid LC_ALL=C $(PYTHON) pymake.py bdist_ubuntu wily 15 --sdist=dist/taskcoach_$(TCVERSION)-0ubuntu15~wily.tar.gz mv build build-wily ppa_sign: ubuntu cd build-precise; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes cd build-trusty; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes cd build-vivid; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu15~vivid-1_source.changes cd build-wily; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu15~wily-1_source.changes # Split PPA by version because the upload has a tendency to fail so the buildbot must retry ppa_rel_precise: cd build-precise; dput ppa:taskcoach-developers/release-snapshot taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes ppa_rel_trusty: cd build-trusty; dput ppa:taskcoach-developers/release-snapshot taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes ppa_rel_vivid: cd build-vivid; dput ppa:taskcoach-developers/release-snapshot taskcoach_$(TCVERSION)-0ubuntu15~vivid-1_source.changes ppa_rel_wily: cd build-wily; dput ppa:taskcoach-developers/release-snapshot taskcoach_$(TCVERSION)-0ubuntu15~wily-1_source.changes ppa_relnext_precise: cd build-precise; dput ppa:taskcoach-developers/nextrelease-snapshot taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes ppa_relnext_trusty: cd build-trusty; dput ppa:taskcoach-developers/nextrelease-snapshot taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes ppa_relnext_vivid: cd build-vivid; dput ppa:taskcoach-developers/nextrelease-snapshot taskcoach_$(TCVERSION)-0ubuntu15~vivid-1_source.changes ppa_relnext_wily: cd build-wily; dput ppa:taskcoach-developers/nextrelease-snapshot taskcoach_$(TCVERSION)-0ubuntu15~wily-1_source.changes ppa_release_precise: cd build-precise; dput ppa:taskcoach-developers/ppa taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes ppa_release_trusty: cd build-trusty; dput ppa:taskcoach-developers/ppa taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes ppa_release_vivid: cd build-vivid; dput ppa:taskcoach-developers/ppa taskcoach_$(TCVERSION)-0ubuntu15~vivid-1_source.changes ppa_release_wily: cd build-wily; dput ppa:taskcoach-developers/ppa taskcoach_$(TCVERSION)-0ubuntu15~wily-1_source.changes app: prepare $(PYTHON) pymake.py py2app chmod 644 "build/Task Coach/TaskCoach.app/Contents/Resources/taskcoach.py" dmg-goodies: app mkdir "build/Task Coach/.Resources" cp -f dist.in/macos/dmg-background.png "build/Task Coach/.Resources/" cp -f dist.in/macos/config "build/Task Coach/.DS_Store" ln -s /Applications "build/Task Coach/Applications" dmgbase: hdiutil create -ov -imagekey zlib-level=9 -fs "HFS+" -srcfolder "build/Task Coach" dist/TaskCoach-$(TCVERSION).dmg dmg: dmg-goodies dmgbase dmg-signed: dmg-goodies codesign -f -s "Developer ID Application" -r='designated => certificate leaf[field.1.2.840.113635.100.6.1.13] and identifier "org.pythonmac.unspecified.TaskCoach"' "build/Task Coach/TaskCoach.app" make dmgbase winpenpack: py2exe $(PYTHON) pymake.py bdist_winpenpack portableapps: py2exe $(PYTHON) pymake.py bdist_portableapps $(PORTABLEAPPSINSTALLER) $(TCPORTABLE) mv build/TaskCoachPortable_$(TCVERSION).paf.exe dist icons: taskcoachlib/gui/icons.py templates: taskcoachlib/persistence/xml/templates.py thirdpartymodules: cd thirdparty; tar xzf chardet-2.1.1.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty chardet-2.1.1/chardet cd thirdparty; tar xzf python-dateutil-1.5.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty python-dateutil-1.5/dateutil cd thirdparty; tar xzf desktop-0.4.2.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty desktop-0.4.2/desktop cd thirdparty; tar xzf keyring-3.7.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty keyring-3.7/keyring cd thirdparty; tar xzf lockfile-0.12.2.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty lockfile-0.12.2/lockfile cd thirdparty; tar xzf PyPubSub-3.3.0.tar.gz --strip-components=2 -C ../taskcoachlib/thirdparty PyPubSub-3.3.0/src/pubsub cd thirdparty; tar xzf SquareMap-1.0.3.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty SquareMap-1.0.3/squaremap cd thirdparty; tar xzf python-ntlm-40080cff37ab32570f9bb50bad0a46b957409c18.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty python-ntlm/ntlm cd thirdparty; tar xzf wxScheduler-r151.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty wxScheduler/wxScheduler cd thirdparty; tar xzf aui-r72315.tar.gz -C ../taskcoachlib/thirdparty cd thirdparty; tar xzf WMI-1.4.9.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty WMI-1.4.9/wmi.py cd thirdparty; tar xzf pyparsing-1.5.5.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty pyparsing-1.5.5/pyparsing_py2.py mv taskcoachlib/thirdparty/pyparsing_py2.py taskcoachlib/thirdparty/pyparsing.py cd thirdparty; tar xzf pybonjour-1.1.1.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty pybonjour-1.1.1/pybonjour.py cd thirdparty; tar xzf agw-r70845.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty agw/customtreectrl.py cd thirdparty; tar xzf agw-r70819.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty agw/hypertreelist.py cd thirdparty; tar xzf gntp-d639fa2e981fe41196a5115ad64320b5061f004b.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty gntp/gntp cd thirdparty; tar xzf pyxdg-0.25.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty pyxdg-0.25/xdg cd taskcoachlib/thirdparty; patch -p1 < ../../thirdparty/patches/customtreectrl.diff cd taskcoachlib/thirdparty; patch -p1 < ../../thirdparty/patches/hypertreelist-headers.diff cd taskcoachlib/thirdparty; patch -p1 < ../../thirdparty/patches/hypertreelist.diff cd taskcoachlib/thirdparty; patch -p2 < ../../thirdparty/patches/pypubsub.diff $(PYTHON) fixinit.py taskcoachlib/gui/icons.py: icons.in/iconmap.py icons.in/nuvola.zip icons.in/splash.png cd icons.in; $(PYTHON) make.py taskcoachlib/persistence/xml/templates.py: cd templates.in; $(PYTHON) make.py website: changes cd website.in; $(PYTHON) make.py; cd .. $(PYTHON) tools/webchecker.py website.out/index.html epydoc: $(EPYDOC) --parse-only -v --simple-term -o epydoc.out taskcoachlib taskcoach.py dot: $(PYTHON) tools/dot.py taskcoachlib/gui/viewer > doc/viewer.dot $(PYTHON) tools/dot.py taskcoachlib/gui/dialog > doc/dialog.dot $(DOT) -Tpng -Kdot -O doc/*.dot i18n: templates taskcoachlib/i18n/nl.py taskcoachlib/i18n/nl.py: i18n.in/messages.pot $(shell find i18n.in -name '*.po') cd i18n.in; $(PYTHON) make.py i18n.in/messages.pot: $(shell find taskcoachlib -name '*.py' | grep -v i18n) $(PYTHON) tools/pygettext.py --output-dir i18n.in taskcoachlib changes: $(PYTHON) changes.in/make.py text > CHANGES.txt $(PYTHON) changes.in/make.py debian > changelog_content $(PYTHON) changes.in/make.py html 7 > website.in/changes.html $(PYTHON) changes.in/make.py html > website.in/all_changes.html unittests: thirdpartymodules icons templates cd tests; $(PYTHON) test.py --unittests integrationtests: thirdpartymodules icons templates cd tests; $(PYTHON) test.py --integrationtests languagetests: thirdpartymodules icons i18n cd tests; $(PYTHON) test.py --languagetests releasetests: thirdpartymodules icons i18n sdist_linux cd tests; $(PYTHON) test.py --releasetests # FIXME: disttests should depend on either windist, deb, rpm or dmg... disttests: cd tests; $(PYTHON) test.py --disttests alltests: prepare sdist_linux cd tests; $(PYTHON) test.py --alltests coverage: coverage_run coverage_report coverage_run: cd tests; $(PYTHON) -m coverage run --source=../taskcoachlib,unittests test.py coverage_report: cd tests; $(PYTHON) -m coverage html -d coverage.out --omit=../taskcoachlib/i18n/po2dict.py,../taskcoachlib/i18n/??.py,../taskcoachlib/i18n/???.py,../taskcoachlib/i18n/??_??.py,../taskcoachlib/thirdparty/*.py,../taskcoachlib/meta/debug.py,test.py pylint: -pylint --rcfile=.pylintrc -f html taskcoachlib > pylint.html CLEANFILES=build build-* website.out MANIFEST README.txt INSTALL.txt LICENSE.txt CHANGES.txt @webchecker.pickle .profile tests/.coverage tests/coverage.out REALLYCLEANFILES=dist taskcoachlib/gui/icons.py taskcoachlib/persistence/xml/templates.py \ taskcoachlib/i18n/??.py taskcoachlib/i18n/???.py taskcoachlib/i18n/??_??.py .\#* */.\#* */*/.\#* clean: $(PYTHON) pymake.py clean rm -rf $(CLEANFILES) reallyclean: $(PYTHON) pymake.py clean --really-clean rm -rf $(CLEANFILES) $(REALLYCLEANFILES) nuke: $(PYTHON) nuke.py taskcoach-1.4.3/PUBLICITY.txt000066400000000000000000000036431265347643000156040ustar00rootroot00000000000000Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ---------------------------------------------------------------------- Task Coach is listed at the following webpages: Task Coach Homepage http://www.taskcoach.org Sourceforge homepage http://www.sourceforge.net/projects/taskcoach Freshmeat homepage http://freshmeat.net/projects/taskcoach Launchpad homepage http://launchpad.net/taskcoach wxPythonPit http://wiki.wxpython.org/wxPythonPit%20Apps PythonInfo Wiki http://www.python.org/moin/Applications Open Directory http://dmoz.org/Computers/Software/Freeware/Personal_Information_Managers/ Python Packages Index http://pypi.python.org/pypi/TaskCoach/ Freeware Home http://www.freewarehome.com/ Wikipedia http://en.wikipedia.org/wiki/Task_Coach MacSoftwareUsingPython http://wiki.python.org/moin/MacPython/MacSoftwareUsingPython CNET Upload.com http://www.upload.com Ohloh http://www.ohloh.net/p/taskcoach Apple http://www.apple.com/downloads/macosx/unix_open_source/taskcoach.html CIA http://cia.vc/stats/project/taskcoach FSF http://directory.fsf.org/wiki/Task_coach MacUpdate https://www.macupdate.com/app/mac/26043/task-coach taskcoach-1.4.3/TODO.tsk000066400000000000000000000133721265347643000147670ustar00rootroot00000000000000 If Task Coach wasn't running at the time of a reminder, show the reminder the next time Task Coach is started Depends on support from wxPython. Not possible with the current 2.8.3 version. Excel can't read microseconds with 6 digits behind the comma. This is the description of the note. With a brief description. 00000128a28946576c0f901a000af5f36faa1c07 taskcoach-1.4.3/build.in/000077500000000000000000000000001265347643000151755ustar00rootroot00000000000000taskcoach-1.4.3/build.in/debian/000077500000000000000000000000001265347643000164175ustar00rootroot00000000000000taskcoach-1.4.3/build.in/debian/MANIFEST.in000066400000000000000000000003731265347643000201600ustar00rootroot00000000000000include *.txt recursive-include tests *.py include TODO.tsk include setup.py include pymake.py prune dist.in include build.in/linux_common/taskcoach.desktop include build.in/debian/taskcoach.appdata.xml include icons.in/taskcoach.png prune website.in taskcoach-1.4.3/build.in/debian/taskcoach.appdata.xml000066400000000000000000000035601265347643000225160ustar00rootroot00000000000000 taskcoach.desktop CC0-1.0 GPL-3.0+ Task Coach Task Coach Your Friendly Task Manager Your Friendly Task Manager

Task Coach is an open source todo manager to manager personal tasks and todo lists. It supports composite tasks, i.e. tasks within tasks. In addition, Task Coach allows you to categorize your tasks, track efforts against a budget per task, and much more. Task Coach is available for Windows, Mac OS X, BSD, Linux, iPhone and iPad.

Your database may be synchronized across these platforms. If espeak is installed, reminders can be spoken.

Task Coach est un gestionnaire de tâches libre pour gérer vos tâches et listes de choses à faire. Il supporte les tâches composites, càd les tâches faisant partie d'une autre. De plus, Task Coach vous permet de catégoriser vos tâches, suivre le temps passé par rapport à un budget associé à chaque tâche, et bien plus. Task Coach est disponible pour Windows, Mac OS X, BSD, Linux, iPhone et iPad.

Votre base de données peut être synchronisée à travers toutes ces plate-formes. Si espeak est installé, les rappels peuvent être énoncés.

http://www.taskcoach.org/screenshots/Appdata-01.png http://www.taskcoach.org/screenshots/Appdata-02.png http://www.taskcoach.org/ developers@taskcoach.org
taskcoach-1.4.3/build.in/fedora/000077500000000000000000000000001265347643000164355ustar00rootroot00000000000000taskcoach-1.4.3/build.in/fedora/taskcoach.spec000066400000000000000000000072661265347643000212640ustar00rootroot00000000000000# Task Coach - Your friendly task manager # Copyright (C) 2004-2016 Task Coach developers # Copyright (C) 2008 Marcin Zajaczkowski # # Task Coach 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. # # Task Coach 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 . #%%{!?python_sitelib: %%define python_sitelib %%(%%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %%define originalName TaskCoach Name: %(filename_lower)s Summary: %(description)s Version: %(version)s Release: 1%%{?dist} License: %(license_abbrev)s Group: Applications/Productivity URL: %(url)s Source: %(dist_download_prefix)s/TaskCoach-%%{version}.tar.gz Source1: taskcoach.png Source2: build.in/linux_common/taskcoach.desktop BuildRoot: %%{_tmppath}/%%{name}-%%{version}-%%{release}-root-%%(%%{__id_u} -n) BuildArch: noarch Requires: python >= %(pythonversion)s Requires: wxPython >= %(wxpythonversionnumber)s Requires: python-twisted >= %(twistedversionnumber)s # Depend on libXScrnSaver for libXss Requires: libXScrnSaver >= 1.2.0 # Must have setuptools to build the package BuildRequires: python-setuptools-devel %%description %(long_description)s %%prep %%setup -q -n %%{originalName}-%%{version} %%build CFLAGS="%%{optflags}" %%{__python} pymake.py build %%install %%{__rm} -rf %%{buildroot} # --root $RPM_BUILD_ROOT makes the package install with a single, expanded # directory in %%{python_sitelib} and a separate egginfo directory. %%{__python} setup.py install --skip-build --root="%%{buildroot}" --prefix="%%{_prefix}" %%{__mkdir} -p %%{buildroot}%%{_datadir}/pixmaps %%{__cp} -a %%{SOURCE1} %%{buildroot}%%{_datadir}/pixmaps/ desktop-file-install --vendor fedora \ --dir %%{buildroot}%%{_datadir}/applications \ %%{SOURCE2} %%clean %%{__rm} -rf %%{buildroot} %%files %%defattr(0644,root,root,0755) %%attr(0755,root,root) %%{_bindir}/taskcoach.py %%{python_sitelib}/taskcoachlib/* %%{python_sitelib}/TaskCoach-*-py2.*.egg-info %%{_datadir}/applications/fedora-taskcoach.desktop %%{_datadir}/pixmaps/taskcoach.png %%doc CHANGES.txt LICENSE.txt PUBLICITY.txt README.txt TODO.tsk %%exclude %%{python_sitelib}/buildlib/*.py* %%changelog * Mon Aug 15 2011 Jerome Laheurte - 1.2.26-1 - Apply patch from Oleg Tsarev to fix RPM build on x64 systems. * Mon May 02 2010 Jerome Laheurte - 1.0.8-1 - add the egginfo to __files to build on Fedora 12 * Wed Mar 24 2010 Frank Niessink - 1.0.1-1 - no need to exclude pysyncml library here for Fedora 11 * Wed Mar 19 2008 Frank Niessink - 0.70.0-1 - integrate Fedora RPM build step into Task Coach build process * Tue Feb 12 2008 Marcin Zajaczkowski - 0.69.0-2 - clean up spec file (official RPM packages with be built from that SPEC) * Sun Feb 10 2008 Marcin Zajaczkowski - 0.69.0-1 - updated to 0.69.0 * Fri Jan 25 2008 Marcin Zajaczkowski - 0.68.0-2 - .desktop file and icon added * Sun Jan 06 2008 Marcin Zajaczkowski - 0.68.0-1 - initial internal release taskcoach-1.4.3/build.in/linux_common/000077500000000000000000000000001265347643000177045ustar00rootroot00000000000000taskcoach-1.4.3/build.in/linux_common/taskcoach.desktop000066400000000000000000000003261265347643000232400ustar00rootroot00000000000000[Desktop Entry] Name=Task Coach GenericName=Task Coach Comment=Your friendly task manager Exec=taskcoach.py %f Icon=taskcoach Terminal=false Type=Application Categories=Office;Calendar; Keywords=task;todo;reminder taskcoach-1.4.3/build.in/opensuse/000077500000000000000000000000001265347643000170365ustar00rootroot00000000000000taskcoach-1.4.3/build.in/opensuse/taskcoach.spec000066400000000000000000000056661265347643000216670ustar00rootroot00000000000000# Task Coach - Your friendly task manager # Copyright (C) 2004-2016 Task Coach developers # Copyright (C) 2008 Marcin Zajaczkowski # # Task Coach 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. # # Task Coach 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 . %%define originalName TaskCoach Name: %(filename_lower)s Summary: %(description)s Version: %(version)s Release: 1%%{?dist} License: %(license_abbrev)s Group: Applications/Productivity URL: %(url)s Source: %(dist_download_prefix)s/TaskCoach-%%{version}.tar.gz Source1: taskcoach.png Source2: build.in/linux_common/taskcoach.desktop BuildRoot: %%{_tmppath}/%%{name}-%%{version}-%%{release}-root-%%(%%{__id_u} -n) BuildArch: noarch Requires: python >= %(pythonversion)s Requires: python-wxGTK >= %(wxpythonversionnumber)s Requires: python-twisted >= %(twistedversionnumber)s # Must have setuptools to build the package BuildRequires: python-setuptools %%description %(long_description)s %%prep %%setup -q -n %%{originalName}-%%{version} %%build CFLAGS="%%{optflags}" %%{__python} pymake.py build %%install %%{__rm} -rf %%{buildroot} # --root $RPM_BUILD_ROOT makes the package install with a single, expanded # directory in %%{python_sitelib} and a separate egginfo directory. %%{__python} setup.py install --skip-build --root="%%{buildroot}" --prefix="%%{_prefix}" %%{__mkdir} -p %%{buildroot}%%{_datadir}/pixmaps %%{__cp} -a %%{SOURCE1} %%{buildroot}%%{_datadir}/pixmaps/ desktop-file-install --vendor opensuse \ --dir %%{buildroot}%%{_datadir}/applications \ %%{SOURCE2} %%clean %%{__rm} -rf %%{buildroot} %%files %%defattr(0644,root,root,0755) %%attr(0755,root,root) %%{_bindir}/taskcoach.py %%{_libdir}/python*/site-packages/taskcoachlib/* %%{_libdir}/python*/site-packages/%%{originalName}-%%{version}-py*.egg-info %%{_datadir}/applications/opensuse-taskcoach.desktop %%{_datadir}/pixmaps/taskcoach.png %%doc CHANGES.txt LICENSE.txt PUBLICITY.txt README.txt TODO.tsk %%exclude %%{_libdir}/python*/site-packages/buildlib/*.py* %%changelog * Sun Jul 3 2011 Frank Niessink - 1.0.2-1 - fix unstalled but unpackaged file issue * Fri Mar 26 2010 Frank Niessink - 1.0.1-1 - no need to exclude pysyncml library here, it is no longer included upstream * Sun Mar 13 2010 Frank Niessink - 1.0.0-1 - integrate OpenSuse RPM build step into Task Coach build process taskcoach-1.4.3/build.in/windows/000077500000000000000000000000001265347643000166675ustar00rootroot00000000000000taskcoach-1.4.3/build.in/windows/MANIFEST.in000066400000000000000000000003261265347643000204260ustar00rootroot00000000000000include *.txt recursive-include tests *.py include TODO.tsk include setup.py include pymake.py prune dist.in recursive-include taskcoachlib/bin.in/windows *.so *.pyd include icons.in/taskcoach.png prune website.in taskcoach-1.4.3/build.in/windows/taskcoach.iss000066400000000000000000000105071265347643000213520ustar00rootroot00000000000000; Task Coach - Your friendly task manager ; Copyright (C) 2004-2016 Task Coach developers ; ; Task Coach 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. ; ; Task Coach 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 . ; Inno Setup Script [Setup] AppName=%(name)s AppVerName=%(name)s %(version)s AppMutex=%(filename)s AppPublisher=%(author)s AppPublisherURL=%(url)s AppSupportURL=%(url)s AppUpdatesURL=%(url)s DefaultDirName={pf}\%(filename)s DefaultGroupName=%(name)s AllowNoIcons=yes Compression=lzma SolidCompression=yes OutputDir=../dist OutputBaseFilename=%(filename)s-%(version)s-win32 ChangesAssociations=yes WizardImageFile=..\icons.in\splash_inno.bmp PrivilegesRequired=none [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked Name: associate; Description: "{cm:AssocFileExtension,{app},.tsk}"; GroupDescription: "Other tasks:"; Flags: unchecked Name: userstartup; Description: "Run %(name)s every time Windows is started"; GroupDescription: "Other tasks:"; Flags: unchecked [Files] Source: "%(filename)s-%(version)s-win32exe\%(filename)s.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "%(filename)s-%(version)s-win32exe\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [INI] Filename: "{app}\%(filename)s.url"; Section: "InternetShortcut"; Key: "URL"; String: "%(url)s" [InstallDelete] Type: files; Name: "{app}\UxTheme.dll" Type: files; Name: "{app}\%(filename_lower)s.exe.log" [Registry] Root: HKCR; Subkey: ".tsk"; ValueType: string; ValueName: ""; ValueData: "%(filename)s"; Flags: uninsdeletevalue; Check: IsAdminLoggedOn Root: HKCR; Subkey: "%(filename)s"; ValueType: string; ValueName: ""; ValueData: "%(name)s File"; Flags: uninsdeletekey; Check: IsAdminLoggedOn Root: HKCR; Subkey: "%(filename)s\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\%(filename)s.EXE,0"; Check: IsAdminLoggedOn Root: HKCR; Subkey: "%(filename)s\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\%(filename)s.EXE"" ""%%1"""; Check: IsAdminLoggedOn Root: HKCU; Subkey: "Software\Classes\.tsk"; ValueType: string; ValueName: ""; ValueData: "%(filename)sFile"; Flags: uninsdeletevalue; Check: not IsAdminLoggedOn Root: HKCU; Subkey: "Software\Classes\%(filename)sFile"; ValueType: string; ValueName: ""; ValueData: "%(name)s File"; Flags: uninsdeletekey; Check: not IsAdminLoggedOn Root: HKCU; Subkey: "Software\Classes\%(filename)sFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\%(filename)s.EXE,0"; Check: not IsAdminLoggedOn Root: HKCU; Subkey: "Software\Classes\%(filename)sFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\%(filename)s.EXE"" ""%%1"""; Check: not IsAdminLoggedOn [Icons] Name: "{group}\%(name)s"; Filename: "{app}\%(filename)s.exe"; WorkingDir: "{app}" Name: "{group}\{cm:ProgramOnTheWeb,%(name)s}"; Filename: "{app}\%(filename)s.url" Name: "{group}\{cm:UninstallProgram,%(name)s}"; Filename: "{uninstallexe}" Name: "{userdesktop}\%(name)s"; Filename: "{app}\%(filename)s.exe"; Tasks: desktopicon; WorkingDir: "{app}" Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\%(name)s"; Filename: "{app}\%(filename)s.exe"; Tasks: quicklaunchicon; WorkingDir: "{app}" Name: "{userstartup}\%(name)s"; Filename: "{app}\%(filename)s.exe"; Tasks: userstartup [Run] Filename: "{app}\%(filename)s.exe"; Description: "{cm:LaunchProgram,%(name)s}"; Flags: nowait postinstall skipifsilent Filename: "%(url)schanges.html"; Description: "Show recent changes (opens a webbrowser)"; Flags: shellexec nowait postinstall skipifsilent [UninstallDelete] Type: files; Name: "{app}\%(filename)s.url" taskcoach-1.4.3/buildbot/000077500000000000000000000000001265347643000152755ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/master/000077500000000000000000000000001265347643000165705ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/master/Makefile000066400000000000000000000007031265347643000202300ustar00rootroot00000000000000# -*- makefile -*- # This is a simple makefile which lives in a buildmaster/buildslave # directory (next to the buildbot.tac file). It allows you to start/stop the # master or slave by doing 'make start' or 'make stop'. # The 'reconfig' target will tell a buildmaster to reload its config file. start: sudo -u www-data twistd --no_save -y buildbot.tac stop: kill `cat twistd.pid` reconfig: kill -HUP `cat twistd.pid` log: tail -f twistd.log taskcoach-1.4.3/buildbot/master/buildbot.tac000066400000000000000000000013151265347643000210650ustar00rootroot00000000000000 from twisted.application import service from buildbot.master import BuildMaster basedir = r'/home/buildmaster' configfile = r'master.cfg' rotateLength = 1000000 maxRotatedFiles = None application = service.Application('buildmaster') try: from twisted.python.logfile import LogFile from twisted.python.log import ILogObserver, FileLogObserver logfile = LogFile.fromFullPath("twistd.log", rotateLength=rotateLength, maxRotatedFiles=maxRotatedFiles) application.setComponent(ILogObserver, FileLogObserver(logfile).emit) except ImportError: # probably not yet twisted 8.2.0 and beyond, can't set log yet pass BuildMaster(basedir, configfile).setServiceParent(application) taskcoach-1.4.3/buildbot/master/cleanup.py000077500000000000000000000027531265347643000206030ustar00rootroot00000000000000#!/usr/bin/python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # Cleanup the htdocs subdirectory where the buildbot stores the # distribution files (only keep 2 latest versions). Run from cron. import os, re def cleanup(path, rx): files = [] for name in os.listdir(path): mt = rx.search(name) if mt: files.append((int(mt.group(1)), name)) if len(files) <= 2: return files.sort() files.reverse() for rev, name in files[2:]: os.remove(os.path.join(path, name)) def main(path): for suffix in [r'-win32\.exe', r'\.dmg', r'\.tar\.gz', r'\.zip']: cleanup(path, re.compile(r'^TaskCoach-r(\d+)' + suffix + '$')) cleanup(path, re.compile(r'taskcoach_r(\d+)-1_all\.deb')) if __name__ == '__main__': main('/var/www/htdocs/TaskCoach-packages') taskcoach-1.4.3/buildbot/master/default.css000066400000000000000000000053001265347643000207240ustar00rootroot00000000000000body { margin-bottom:50px; } body, td { font-family: Verdana, Cursor; font-size: 10px; font-weight: bold; } a:link,a:visited,a:active { color: #444; } a:hover { color: #000000; } table { border-spacing: 1px 1px; } table td { padding: 3px 0px 3px 0px; text-align: center; } .Project { width: 100px; } .LastBuild, .Activity { padding: 0 0 0 4px; } .LastBuild, .Activity, .Builder, .BuildStep { width: 155px; max-width: 155px; } div.BuildResultInfo { color: #444; } div.Announcement { margin-bottom: 1em; } div.Announcement > a:hover { color: black; } div.Announcement > div.Notice { background-color: #afdaff; padding: 0.5em; font-size: 16px; text-align: center; } div.Announcement > div.Open { border: 3px solid #8fdf5f; padding: 0.5em; font-size: 16px; text-align: center; } div.Announcement > div.Closed { border: 5px solid #e98080; padding: 0.5em; font-size: 24px; font-weight: bold; text-align: center; } td.Time { color: #000; border-bottom: 1px solid #aaa; background-color: #eee; } td.Activity, td.Change, td.Builder { color: #333333; background-color: #CCCCCC; } td.Change { border-radius: 5px; -webkit-border-radius: 5px; } td.Event { color: #777; background-color: #ddd; border-radius: 5px; -webkit-border-radius: 5px; } td.Activity { border-top-left-radius: 10px; -webkit-border-top-left-radius: 10px; min-height: 20px; padding: 2px 0 2px 0; } td.idle, td.waiting, td.offline, td.building { border-top-left-radius: 0px; -webkit-border-top-left-radius: 0px; } .LastBuild { border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px; border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; } /* LastBuild, BuildStep states */ .success { color: #FFFFFF; background-color: #8fdf5f; } .failure { color: #FFFFFF; background-color: #e98080; } .warnings { color: #FFFFFF; background-color: #ffc343; } .exception, td.offline { color: #FFFFFF; background-color: #e0b0ff; } .start,.running, td.building { color: #666666; background-color: #fffc6c; } .start { border-bottom-left-radius: 10px; -webkit-border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; -webkit-border-bottom-right-radius: 10px; } .closed { background-color: #ff0000; } .closed .large { font-size: 1.5em; font-weight: bolder; } td.Project a:hover, td.start a:hover { color: #000; } .mini-box { text-align:center; height:20px; padding:0 2px; line-height:0; white-space:nowrap; } .mini-box a { border-radius:0; -webkit-border-radius:0; display:block; width:100%; height:20px; line-height:20px; margin-top:-30px; } .mini-closed { -box-sizing:border-box; -webkit-box-sizing:border-box; border:4px solid red; } taskcoach-1.4.3/buildbot/master/latest.py000077500000000000000000000073741265347643000204540ustar00rootroot00000000000000#!/usr/bin/python import os, re, sys def findLatest(path, valid): rx = re.compile(r'(.*)(\d+\.\d+\.\d+\.\d+)(.*)') results = dict() for name in os.listdir(path): if (name.lower().startswith('taskcoach') or name.lower().startswith('x-taskcoach')) and valid(name): mt = rx.search(name) if mt: ls = results.get((mt.group(1), mt.group(3)), []) ls.append(map(int, mt.group(2).split('.'))) results[(mt.group(1), mt.group(3))] = ls packages = [] for (part1, part3), versions in results.items(): versions.sort() packages.append('%s%s%s' % (part1, '.'.join(map(str, versions[-1])), part3)) packages.sort() return packages def listPath(path): def isSource(name): if name.endswith('.tar.gz') or name.endswith('.src.rpm') or name.endswith('.tgz'): return True if name.endswith('.zip'): return not name.endswith('_rev1.zip') return False print '' changelog = os.path.join(path, 'changelog_content') if os.path.exists(changelog): print '' print '' for pkgname in findLatest(path, isSource): print '' print '' print '' print '' print '' for pkgname in findLatest(path, lambda x: not isSource(x)): print '' img = 'binary.png' if pkgname.endswith('.dmg'): img = 'mac.png' elif pkgname.endswith('.exe'): img = 'windows.png' elif pkgname.endswith('.rpm') or pkgname.endswith('.deb'): img = 'linux.png' print '' % img print '' print '' print '
'
        print file(changelog, 'rb').read()
        print '

Sources

' if path == '.' or path == 'all': print '%s' % (pkgname, pkgname) else: print '%s' % (path, pkgname, pkgname) print '

Binaries

' if path == '.' or path == 'all': print '%s' % (pkgname, pkgname) else: print '%s' % (path, pkgname, pkgname) print '
' print '
' def main(path): print 'Content-type: text/html' print print 'Latest Task Coach builds' print '' print '
' if path == '.' or path == 'all': print '

New developments (from trunk)

' listPath('.') if path != '.': for name in sorted(os.listdir(path), cmp=lambda x, y: cmp(y, x)): # Feature should come first if name.startswith('Release') or name.startswith('Feature'): fname = os.path.join(path, name) if os.path.isdir(fname): if name.startswith('Release'): print '

Bug fixes (from %s)

' % name else: print '

Experimental features (from %s)

' % name listPath(fname) print 'w\`MW`J1Pi1_&4v ~xwNvi|2z΅uNb'':Ņ볢%,f3ٻV2DOI(,?q$h(crAwT"  &Dp}*tƒ6dίP %]4m@7!MȐOfİt;L

܆hƫh-;#ʗ ڕ -#cOO:wXzCUō-5iBdDgy ڋGVU 8Piڍ8U-x#:s6{Ҍ *}Juj+Er;M{t#(~q҈_uWv_vJZk#_{"|ɨ9{o}T'I~Q(b`ϴ*G\D5(\;'ࡓC\v^߹w/ a:hover { color: black; } div.Announcement > div.Notice { background-color: #afdaff; padding: 0.5em; font-size: 16px; text-align: center; } div.Announcement > div.Open { border: 3px solid #8fdf5f; padding: 0.5em; font-size: 16px; text-align: center; } div.Announcement > div.Closed { border: 5px solid #e98080; padding: 0.5em; font-size: 24px; font-weight: bold; text-align: center; } td.Time { color: #000; border-bottom: 1px solid #aaa; background-color: #eee; } td.Activity, td.Change, td.Builder { color: #333333; background-color: #CCCCCC; } td.Change { border-radius: 5px; -webkit-border-radius: 5px; } td.Event { color: #777; background-color: #ddd; border-radius: 5px; -webkit-border-radius: 5px; } td.Activity { border-top-left-radius: 10px; -webkit-border-top-left-radius: 10px; min-height: 20px; padding: 2px 0 2px 0; } td.idle, td.waiting, td.offline, td.building { border-top-left-radius: 0px; -webkit-border-top-left-radius: 0px; } .LastBuild { border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px; border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; } /* LastBuild, BuildStep states */ .success { color: #FFFFFF; background-color: #8fdf5f; } .failure { color: #FFFFFF; background-color: #e98080; } .warnings { color: #FFFFFF; background-color: #ffc343; } .exception, td.offline { color: #FFFFFF; background-color: #e0b0ff; } .start,.running, td.building { color: #666666; background-color: #fffc6c; } .start { border-bottom-left-radius: 10px; -webkit-border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; -webkit-border-bottom-right-radius: 10px; } .closed { background-color: #ff0000; } .closed .large { font-size: 1.5em; font-weight: bolder; } td.Project a:hover, td.start a:hover { color: #000; } .mini-box { text-align:center; height:20px; padding:0 2px; line-height:0; white-space:nowrap; } .mini-box a { border-radius:0; -webkit-border-radius:0; display:block; width:100%; height:20px; line-height:20px; margin-top:-30px; } .mini-closed { -box-sizing:border-box; -webkit-box-sizing:border-box; border:4px solid red; } taskcoach-1.4.3/buildbot/master/public_html/favicon.ico000066400000000000000000000021761265347643000232210ustar00rootroot00000000000000 h(  f8f8f8f8\C4knqqssqpRpo!rJ0f8f8f8f8f8f8f8f8f8b[hlxywxyyxxwwxxuuvutsWh;f8f8f8f8YT`'|p|~}}}}~~}}~~}}||}}[f8f8f8UGEjdsǩf8f8]Yg{f8WQ].xf8wn}um|5y?!0qag͜_NPvSO\{|Й_}y^[ro{`]L= Task Coach 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. Task Coach 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 . ''' # pylint: disable=F0401,E1101 from buildbot.steps.shell import Compile, ShellCommand, WithProperties from buildbot.steps.master import MasterShellCommand from buildbot.steps.transfer import FileUpload, DirectoryUpload from buildbot import interfaces from buildbot.process.buildstep import SUCCESS, FAILURE from twisted.python import log from zope.interface import implements import re, os class TaskCoachEmailLookup(object): implements(interfaces.IEmailLookup) def getAddress(self, name): try: return { 'fraca7': 'fraca7@free.fr', 'fniessink': 'frank@niessink.com' }[name] except KeyError: return None class Revert(Compile): name = 'Revert' description = ['Reverting', 'locally', 'modified', 'files'] descriptionDone = ['Local', 'changes', 'reverted'] command = ['svn', 'revert', '-R', '.'] class Cleanup(Compile): name = 'Cleanup' description = ['Deleting', 'unversioned', 'files'] descriptionDone = ['Unversioned', 'files', 'deleted'] command = ['make', 'nuke'] def start(self): try: self.getProperty('release') except KeyError: self.setProperty('release', False) Compile.start(self) class Revision(Compile): name = 'Revision' description = ['Generating', 'revision', 'file'] descriptionDone = ['Revision', 'file', 'generated'] command = ['make', 'revision', WithProperties('TCREV=%s', 'got_revision')] #============================================================================== # Tests and documentation class UnitTests(Compile): name = 'unit tests' description = ['Running', 'unit', 'tests'] descriptionDone = ['Unit', 'tests'] haltOnFailure = False command = ['make', 'unittests'] class IntegrationTests(Compile): name = 'integration tests' description = ['Running', 'integration', 'tests'] descriptionDone = ['Integration', 'tests'] command = ['make', 'integrationtests'] class LanguageTests(Compile): name = 'language tests' description = ['Running', 'language', 'tests'] descriptionDone = ['Language', 'tests'] haltOnFailure = False command = ['make', 'languagetests'] class ReleaseTests(Compile): name = 'release tests' description = ['Running', 'release', 'tests'] descriptionDone = ['Release', 'tests'] haltOnFailure = False command = ['make', 'releasetests'] class DistributionTests(Compile): name = 'distribution tests' description = ['Running', 'distribution', 'tests'] descriptionDone = ['Distribution', 'tests'] haltOnFailure = False command = ['make', 'disttests'] class KillEXE(ShellCommand): haltOnFailure = False flunkOnFailure = False name = 'Cleanup' command = ['taskkill', '/F', '/IM', 'taskcoach.exe'] description = ['Killing', 'exe'] descriptionDone = ['Exe', 'killed'] def evaluateCommand(self, cmd): return SUCCESS class Coverage(Compile): name = 'coverage' description = ['Running', 'coverage'] descriptionDone = ['Coverage'] haltOnFailure = False command = ['make', 'coverage'] def createSummary(self, log): Compile.createSummary(self, log) self.addURL('coverage', 'http://www.fraca7.net/TaskCoach-coverage/%s/index.html' % (self.getProperty('buildername'))) class UploadCoverage(DirectoryUpload): def __init__(self, **kwargs): kwargs['slavesrc'] = 'tests/coverage.out' kwargs['masterdest'] = WithProperties('/var/www/TaskCoach-coverage/%s', 'buildername') DirectoryUpload.__init__(self, **kwargs) class Epydoc(Compile): name = 'epydoc' description = ['Generating', 'documentation'] descriptionDone = ['Documentation'] warningPattern = '.*Warning:.*' command = ['make', 'epydoc'] class UploadDoc(DirectoryUpload): def __init__(self, **kwargs): kwargs['slavesrc'] = 'epydoc.out' kwargs['masterdest'] = WithProperties('/var/www/TaskCoach-doc/%s', 'buildername') DirectoryUpload.__init__(self, **kwargs) def start(self): DirectoryUpload.start(self) self.addURL('Documentation', 'http://www.fraca7.net/TaskCoach-doc/%s/index.html' % (self.getProperty('buildername'))) #============================================================================== # Platform-specific packages class DistCompile(Compile): sep = '/' ignoreWarnings = False filesuffix = None fileprefix = None target = None def start(self): if self.getProperty('release'): self.command = ['make', self.target or self.name] else: self.command = ['make', self.target or self.name, 'TCREV=%s' % self.getProperty('got_revision')] Compile.start(self) def commandComplete(self, cmd): log = cmd.logs['stdio'] for line in log.readlines(): mt = self.filename_rx.search(line) if mt: filename = mt.group(1).strip() if self.filesuffix is not None: filename += self.filesuffix if self.fileprefix is not None: filename = self.fileprefix + filename self.setProperty('filename', filename) self.setProperty('basefilename', filename[filename.rfind(self.sep) + 1:]) break Compile.commandComplete(self, cmd) def createSummary(self, log): if not self.ignoreWarnings: Compile.createSummary(self, log) class UploadBase(FileUpload): def __init__(self, **kwargs): kwargs['slavesrc'] = WithProperties('%s', 'filename') kwargs['masterdest'] = WithProperties('/var/www/TaskCoach-packages/%s/%s', 'branch', 'basefilename') kwargs['mode'] = 0644 FileUpload.__init__(self, **kwargs) def start(self): if self.getProperty('release'): self.masterdest = '/var/www/TaskCoach-packages/release/%s' % self.getProperty('basefilename') FileUpload.start(self) if not self.getProperty('release'): url = 'http://www.fraca7.net/TaskCoach-packages/%s/%s' % (self.getProperty('branch') or '', self.getProperty('basefilename')) self.addURL('Download', url) class UploadChangelog(FileUpload): def __init__(self, **kwargs): kwargs['slavesrc'] = 'changelog_content' kwargs['masterdest'] = WithProperties('/var/www/TaskCoach-packages/%s/changelog_content', 'branch') kwargs['mode'] = 0644 FileUpload.__init__(self, **kwargs) # Mac OS X class BuildDMG(DistCompile): filename_rx = re.compile(r'^created: (.*)') name = 'dmg-signed' description = ['Generating', 'MacOS', 'binary'] descriptionDone = ['MacOS', 'binary'] class UploadDMG(UploadBase): pass # Windows class BuildEXE(DistCompile): filename_rx = re.compile(r'(dist\\.*-win32\.exe)') sep = '\\' ignoreWarnings = True name = 'windist' description = ['Generating', 'Windows', 'binary'] descriptionDone = ['Windows', 'binary'] class UploadEXE(UploadBase): pass class BuildWinPenPack(DistCompile): filename_rx = re.compile(r'^Generated (dist\\.*\.zip)') sep = '\\' name = 'winpenpack' description = ['Generating', 'WinPenPack', 'binary'] descriptionDone = ['WinPenPack', 'binary'] class UploadWinPenPack(UploadBase): pass class BuildPortableApps(DistCompile): filename_rx = re.compile(r'^mv build/(.*\.paf\.exe) dist') fileprefix = 'dist\\' sep = '\\' name = 'portableapps' description = ['Generating', 'PortableApps', 'binary'] descriptionDone = ['PortableApps', 'binary'] class UploadPortableApps(UploadBase): pass # Source class BuildSourceTar(DistCompile): filename_rx = re.compile('^Created (.*)$') name = 'sdist_linux' description = ['Generating', 'source', 'distribution'] descriptionDone = ['Source', 'distribution'] class BuildSourceZip(DistCompile): filename_rx = re.compile(r"creating '(.*\.zip)'") sep = '\\' ignoreWarnings = True name = 'sdist_windows' description = ['Generating', 'source', 'distribution'] descriptionDone = ['Source', 'distribution'] class BuildSourceRaw(DistCompile): filename_rx = re.compile(r'tar czf (TaskCoach-.*-raw.tgz)') fileprefix = 'dist/' name = 'sdist_raw' description = ['Generating', 'raw', 'source', 'distribution'] descriptionDone = ['Raw', 'source', 'distribution'] class UploadSourceTar(UploadBase): pass class UploadSourceZip(UploadBase): pass class UploadSourceRaw(UploadBase): pass # Debian class BuildDEB(DistCompile): filename_rx = re.compile(r'^mv (dist/taskcoach.*)_all\.deb') filesuffix = '.deb' name = 'deb' description = ['Generating', 'Debian', 'package'] descriptionDone = ['Debian', 'package'] class BuildUbuntu(BuildDEB): filename_rx = re.compile(r'^moving build/(taskcoach_.*_all)\.deb') fileprefix = 'dist/' name = 'ubuntu' class UploadDEB(UploadBase): pass class PPA(Compile): name = 'ppa' description = ['Uploading', 'PPA'] description_done = ['PPA', 'uploaded'] def __init__(self, **kwargs): name = kwargs.pop('name') kwargs['command'] = ['./uploadppa.sh', name] Compile.__init__(self, **kwargs) self.addFactoryArguments(name=name) # Generic RPM class BuildRPM(DistCompile): filename_rx = re.compile(r'([^/]*.noarch.rpm) -> dist') fileprefix = 'dist/' name = 'rpm' target = 'rpm' description = ['Generating', 'RPM', 'package'] descriptiondone = ['RPM', 'package'] class BuildSRPM(DistCompile): filename_rx = re.compile(r'([^/]*.src.rpm) -> dist') fileprefix = 'dist/' name = 'rpm' target = 'rpm' description = ['Generating', 'SRPM', 'package'] descriptiondone = ['SRPM', 'package'] class UploadRPM(UploadBase): pass class UploadSRPM(UploadBase): pass # Fedora class BuildFedora14(DistCompile): filename_rx = re.compile(r'([^/]*.noarch.rpm) -> dist') fileprefix = 'dist/' name = 'fedora' description = ['Generating', 'Fedora', 'package'] descriptionDone = ['Fedora', 'package'] class UploadFedora14(UploadBase): pass # OpenSuse class BuildOpenSuse(DistCompile): filename_rx = re.compile(r'([^/]*).noarch.rpm -> dist') fileprefix = 'dist/' filesuffix = '.opensuse.i386.rpm' name = 'opensuse' description = ['Generating', 'OpenSuse', 'package'] descriptionDone = ['OpenSuse', 'package'] class UploadOpenSuse(UploadBase): pass # Release class CleanupReleaseStep(MasterShellCommand): name = 'Cleanup' description = ['Cleanup'] def __init__(self, **kwargs): kwargs['command'] = 'rm -rf /var/www/TaskCoach-packages/release/*' MasterShellCommand.__init__(self, **kwargs) class ZipReleaseStep(MasterShellCommand): name = 'Zipping' description = ['Zip'] def __init__(self, **kwargs): kwargs['command'] = 'cd /var/www/TaskCoach-packages/release\nzip release.zip *' MasterShellCommand.__init__(self, **kwargs) def start(self): MasterShellCommand.start(self) self.addURL('Download release', 'http://www.fraca7.net/TaskCoach-packages/release/release.zip') # Pylint class PylintStep(Compile): name = 'pylint' description = ['Running', 'pylint'] descriptionDone = ['pylint'] command = ['make', 'pylint'] class PylintUploadStep(FileUpload): def __init__(self, **kwargs): kwargs['slavesrc'] = 'pylint.html' kwargs['masterdest'] = WithProperties('/var/www/pylint-%s.html', 'buildername') kwargs['mode'] = 0644 FileUpload.__init__(self, **kwargs) def start(self): FileUpload.start(self) self.addURL('See', 'http://www.fraca7.net/pylint-%s.html' % self.getProperty('buildername')) taskcoach-1.4.3/buildbot/master/templates/000077500000000000000000000000001265347643000205665ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/master/templates/root.html000066400000000000000000000042341265347643000224420ustar00rootroot00000000000000{% extends 'layout.html' %} {% import 'forms.html' as forms %} {% block content %}

Welcome to the Buildbot {%- if title -%}  for the  {%- if title_url -%} {{ title }} {%- else -%} {{ title }} {%- endif -%}  project {%- endif -%} !

{%- if authz.advertiseAction('cleanShutdown', request) -%} {%- if shutting_down -%} Master is shutting down
{{ forms.cancel_clean_shutdown(cancel_shutdown_url, authz) }} {%- else -%} {{ forms.clean_shutdown(shutdown_url, authz) }} {%- endif -%} {%- endif -%}

This and other pages can be overridden and customized.

{% endblock %} taskcoach-1.4.3/buildbot/slaves/000077500000000000000000000000001265347643000165725ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/Fedora14/000077500000000000000000000000001265347643000201375ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/Fedora14/Makefile000066400000000000000000000006621265347643000216030ustar00rootroot00000000000000# -*- makefile -*- # This is a simple makefile which lives in a buildmaster/buildslave # directory (next to the buildbot.tac file). It allows you to start/stop the # master or slave by doing 'make start' or 'make stop'. # The 'reconfig' target will tell a buildmaster to reload its config file. start: twistd --no_save -y buildbot.tac stop: kill `cat twistd.pid` reconfig: kill -HUP `cat twistd.pid` log: tail -f twistd.log taskcoach-1.4.3/buildbot/slaves/Fedora14/buildbot.tac000066400000000000000000000007031265347643000224340ustar00rootroot00000000000000 from twisted.application import service from buildslave.bot import BuildSlave basedir = r'/home/jerome/Buildslave' host = '192.168.1.2' port = 9989 slavename = 'Fedora14' passwd = file('.passwd', 'rb').readlines()[0].strip() keepalive = 600 usepty = 1 umask = None application = service.Application('buildslave') s = BuildSlave(host, port, slavename, passwd, basedir, keepalive, usepty, umask=umask) s.setServiceParent(application) taskcoach-1.4.3/buildbot/slaves/Fedora14/info/000077500000000000000000000000001265347643000210725ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/Fedora14/info/admin000066400000000000000000000000531265347643000221030ustar00rootroot00000000000000Your Name Here taskcoach-1.4.3/buildbot/slaves/Fedora14/info/host000066400000000000000000000000611265347643000217670ustar00rootroot00000000000000Please put a description of this build host here taskcoach-1.4.3/buildbot/slaves/MacOS/000077500000000000000000000000001265347643000175345ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/MacOS/Makefile000066400000000000000000000007021265347643000211730ustar00rootroot00000000000000# -*- makefile -*- # This is a simple makefile which lives in a buildmaster/buildslave # directory (next to the buildbot.tac file). It allows you to start/stop the # master or slave by doing 'make start' or 'make stop'. # The 'reconfig' target will tell a buildmaster to reload its config file. start: python /usr/bin/twistd --no_save -y buildbot.tac stop: kill `cat twistd.pid` reconfig: kill -HUP `cat twistd.pid` log: tail -f twistd.log taskcoach-1.4.3/buildbot/slaves/MacOS/buildbot.tac000066400000000000000000000007311265347643000220320ustar00rootroot00000000000000 from twisted.application import service from buildslave.bot import BuildSlave basedir = r'/Users/fraca7/Buildslave' buildmaster_host = '192.168.1.2' port = 9989 slavename = 'MacOS' passwd = file('.passwd', 'rb').readlines()[0].strip() keepalive = 600 usepty = 1 umask = 0022 application = service.Application('buildslave') s = BuildSlave(buildmaster_host, port, slavename, passwd, basedir, keepalive, usepty, umask=umask) s.setServiceParent(application) taskcoach-1.4.3/buildbot/slaves/MacOS/info/000077500000000000000000000000001265347643000204675ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/MacOS/info/admin000066400000000000000000000000201265347643000214720ustar00rootroot00000000000000fraca7@free.fr taskcoach-1.4.3/buildbot/slaves/MacOS/info/host000066400000000000000000000000411265347643000213620ustar00rootroot00000000000000Task Coach Mac OS X build slave taskcoach-1.4.3/buildbot/slaves/OpenSuse/000077500000000000000000000000001265347643000203335ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/OpenSuse/Makefile000066400000000000000000000006621265347643000217770ustar00rootroot00000000000000# -*- makefile -*- # This is a simple makefile which lives in a buildmaster/buildslave # directory (next to the buildbot.tac file). It allows you to start/stop the # master or slave by doing 'make start' or 'make stop'. # The 'reconfig' target will tell a buildmaster to reload its config file. start: twistd --no_save -y buildbot.tac stop: kill `cat twistd.pid` reconfig: kill -HUP `cat twistd.pid` log: tail -f twistd.log taskcoach-1.4.3/buildbot/slaves/OpenSuse/buildbot.tac000066400000000000000000000007031265347643000226300ustar00rootroot00000000000000 from twisted.application import service from buildslave.bot import BuildSlave basedir = r'/home/jerome/Buildslave' host = '192.168.1.2' port = 9989 slavename = 'OpenSuse' passwd = file('.passwd', 'rb').readlines()[0].strip() keepalive = 600 usepty = 1 umask = None application = service.Application('buildslave') s = BuildSlave(host, port, slavename, passwd, basedir, keepalive, usepty, umask=umask) s.setServiceParent(application) taskcoach-1.4.3/buildbot/slaves/OpenSuse/info/000077500000000000000000000000001265347643000212665ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/OpenSuse/info/admin000066400000000000000000000000531265347643000222770ustar00rootroot00000000000000Your Name Here taskcoach-1.4.3/buildbot/slaves/OpenSuse/info/host000066400000000000000000000000611265347643000221630ustar00rootroot00000000000000Please put a description of this build host here taskcoach-1.4.3/buildbot/slaves/Release/000077500000000000000000000000001265347643000201525ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/Release/Makefile000066400000000000000000000006621265347643000216160ustar00rootroot00000000000000# -*- makefile -*- # This is a simple makefile which lives in a buildmaster/buildslave # directory (next to the buildbot.tac file). It allows you to start/stop the # master or slave by doing 'make start' or 'make stop'. # The 'reconfig' target will tell a buildmaster to reload its config file. start: twistd --no_save -y buildbot.tac stop: kill `cat twistd.pid` reconfig: kill -HUP `cat twistd.pid` log: tail -f twistd.log taskcoach-1.4.3/buildbot/slaves/Release/buildbot.tac000066400000000000000000000007121265347643000224470ustar00rootroot00000000000000 from twisted.application import service from buildslave.bot import BuildSlave basedir = r'/home/jerome/Buildslave_Release' host = '192.168.1.2' port = 9989 slavename = 'Release' passwd = file('.passwd', 'rb').readlines()[0].strip() keepalive = 600 usepty = 1 umask = None application = service.Application('buildslave') s = BuildSlave(host, port, slavename, passwd, basedir, keepalive, usepty, umask=umask) s.setServiceParent(application) taskcoach-1.4.3/buildbot/slaves/Release/info/000077500000000000000000000000001265347643000211055ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/Release/info/admin000066400000000000000000000000531265347643000221160ustar00rootroot00000000000000Your Name Here taskcoach-1.4.3/buildbot/slaves/Release/info/host000066400000000000000000000000611265347643000220020ustar00rootroot00000000000000Please put a description of this build host here taskcoach-1.4.3/buildbot/slaves/Ubuntu10/000077500000000000000000000000001265347643000202155ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/Ubuntu10/Makefile000066400000000000000000000006621265347643000216610ustar00rootroot00000000000000# -*- makefile -*- # This is a simple makefile which lives in a buildmaster/buildslave # directory (next to the buildbot.tac file). It allows you to start/stop the # master or slave by doing 'make start' or 'make stop'. # The 'reconfig' target will tell a buildmaster to reload its config file. start: twistd --no_save -y buildbot.tac stop: kill `cat twistd.pid` reconfig: kill -HUP `cat twistd.pid` log: tail -f twistd.log taskcoach-1.4.3/buildbot/slaves/Ubuntu10/buildbot.tac000066400000000000000000000007141265347643000225140ustar00rootroot00000000000000 from twisted.application import service from buildslave.bot import BuildSlave basedir = r'/home/jerome/Buildslave_Ubuntu10' host = '192.168.1.2' port = 9989 slavename = 'Ubuntu10' passwd = file('.passwd', 'rb').readlines()[0].strip() keepalive = 600 usepty = 1 umask = None application = service.Application('buildslave') s = BuildSlave(host, port, slavename, passwd, basedir, keepalive, usepty, umask=umask) s.setServiceParent(application) taskcoach-1.4.3/buildbot/slaves/Ubuntu10/info/000077500000000000000000000000001265347643000211505ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/Ubuntu10/info/admin000066400000000000000000000000531265347643000221610ustar00rootroot00000000000000Your Name Here taskcoach-1.4.3/buildbot/slaves/Ubuntu10/info/host000066400000000000000000000000611265347643000220450ustar00rootroot00000000000000Please put a description of this build host here taskcoach-1.4.3/buildbot/slaves/WinXPSP3/000077500000000000000000000000001265347643000201255ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/WinXPSP3/_dumbwin32proc.py000077500000000000000000000261441265347643000233460ustar00rootroot00000000000000# -*- test-case-name: twisted.test.test_process -*- # Copyright (c) 2001-2008 Twisted Matrix Laboratories. # See LICENSE for details. """ http://isometric.sixsided.org/_/gates_in_the_head/ """ # pylint: disable-msg=F0401,E1101 import os # Win32 imports import win32api import win32con import win32event import win32file import win32pipe import win32process import win32security import win32job from win32con import CREATE_SUSPENDED from time import time import pywintypes # security attributes for pipes PIPE_ATTRS_INHERITABLE = win32security.SECURITY_ATTRIBUTES() PIPE_ATTRS_INHERITABLE.bInheritHandle = 1 from zope.interface import implements from twisted.internet.interfaces import IProcessTransport, IConsumer, IProducer from twisted.python.win32 import quoteArguments from twisted.internet import error from twisted.python import failure from twisted.internet import _pollingfile from twisted.internet._baseprocess import BaseProcess def debug(msg): import sys print msg sys.stdout.flush() class _Reaper(_pollingfile._PollableResource): def __init__(self, proc): self.proc = proc def checkWork(self): if win32event.WaitForSingleObject(self.proc.hProcess, 0) != win32event.WAIT_OBJECT_0: return 0 exitCode = win32process.GetExitCodeProcess(self.proc.hProcess) self.deactivate() self.proc.processEnded(exitCode) return 0 def _findShebang(filename): """ Look for a #! line, and return the value following the #! if one exists, or None if this file is not a script. I don't know if there are any conventions for quoting in Windows shebang lines, so this doesn't support any; therefore, you may not pass any arguments to scripts invoked as filters. That's probably wrong, so if somebody knows more about the cultural expectations on Windows, please feel free to fix. This shebang line support was added in support of the CGI tests; appropriately enough, I determined that shebang lines are culturally accepted in the Windows world through this page:: http://www.cgi101.com/learn/connect/winxp.html @param filename: str representing a filename @return: a str representing another filename. """ f = file(filename, 'ru') if f.read(2) == '#!': exe = f.readline(1024).strip('\n') return exe def _invalidWin32App(pywinerr): """ Determine if a pywintypes.error is telling us that the given process is 'not a valid win32 application', i.e. not a PE format executable. @param pywinerr: a pywintypes.error instance raised by CreateProcess @return: a boolean """ # Let's do this better in the future, but I have no idea what this error # is; MSDN doesn't mention it, and there is no symbolic constant in # win32process module that represents 193. return pywinerr.args[0] == 193 class Process(_pollingfile._PollingTimer, BaseProcess): """A process that integrates with the Twisted event loop. If your subprocess is a python program, you need to: - Run python.exe with the '-u' command line option - this turns on unbuffered I/O. Buffering stdout/err/in can cause problems, see e.g. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q1903 - If you don't want Windows messing with data passed over stdin/out/err, set the pipes to be in binary mode:: import os, sys, mscvrt msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) """ implements(IProcessTransport, IConsumer, IProducer) closedNotifies = 0 def __init__(self, reactor, protocol, command, args, environment, path): _pollingfile._PollingTimer.__init__(self, reactor) BaseProcess.__init__(self, protocol) # security attributes for pipes sAttrs = win32security.SECURITY_ATTRIBUTES() sAttrs.bInheritHandle = 1 # create the pipes which will connect to the secondary process self.hStdoutR, hStdoutW = win32pipe.CreatePipe(sAttrs, 0) self.hStderrR, hStderrW = win32pipe.CreatePipe(sAttrs, 0) hStdinR, self.hStdinW = win32pipe.CreatePipe(sAttrs, 0) win32pipe.SetNamedPipeHandleState(self.hStdinW, win32pipe.PIPE_NOWAIT, None, None) # set the info structure for the new process. StartupInfo = win32process.STARTUPINFO() StartupInfo.hStdOutput = hStdoutW StartupInfo.hStdError = hStderrW StartupInfo.hStdInput = hStdinR StartupInfo.dwFlags = win32process.STARTF_USESTDHANDLES # Create new handles whose inheritance property is false currentPid = win32api.GetCurrentProcess() tmp = win32api.DuplicateHandle(currentPid, self.hStdoutR, currentPid, 0, 0, win32con.DUPLICATE_SAME_ACCESS) win32file.CloseHandle(self.hStdoutR) self.hStdoutR = tmp tmp = win32api.DuplicateHandle(currentPid, self.hStderrR, currentPid, 0, 0, win32con.DUPLICATE_SAME_ACCESS) win32file.CloseHandle(self.hStderrR) self.hStderrR = tmp tmp = win32api.DuplicateHandle(currentPid, self.hStdinW, currentPid, 0, 0, win32con.DUPLICATE_SAME_ACCESS) win32file.CloseHandle(self.hStdinW) self.hStdinW = tmp # Add the specified environment to the current environment - this is # necessary because certain operations are only supported on Windows # if certain environment variables are present. env = os.environ.copy() env.update(environment or {}) cmdline = quoteArguments(args) # TODO: error detection here. def doCreate(): self.job = win32job.CreateJobObject(None, str(time())) self.hProcess, self.hThread, self.pid, dwTid = win32process.CreateProcess( command, cmdline, None, None, 1, CREATE_SUSPENDED, env, path, StartupInfo) win32job.AssignProcessToJobObject(self.job, self.hProcess) win32process.ResumeThread(self.hThread) try: doCreate() except pywintypes.error, pwte: if not _invalidWin32App(pwte): # This behavior isn't _really_ documented, but let's make it # consistent with the behavior that is documented. raise OSError(pwte) else: # look for a shebang line. Insert the original 'command' # (actually a script) into the new arguments list. sheb = _findShebang(command) if sheb is None: raise OSError( "%r is neither a Windows executable, " "nor a script with a shebang line" % command) else: args = list(args) args.insert(0, command) cmdline = quoteArguments(args) origcmd = command command = sheb try: # Let's try again. doCreate() except pywintypes.error, pwte2: # d'oh, failed again! if _invalidWin32App(pwte2): raise OSError( "%r has an invalid shebang line: " "%r is not a valid executable" % ( origcmd, sheb)) raise OSError(pwte2) win32file.CloseHandle(self.hThread) # close handles which only the child will use win32file.CloseHandle(hStderrW) win32file.CloseHandle(hStdoutW) win32file.CloseHandle(hStdinR) # set up everything self.stdout = _pollingfile._PollableReadPipe( self.hStdoutR, lambda data: self.proto.childDataReceived(1, data), self.outConnectionLost) self.stderr = _pollingfile._PollableReadPipe( self.hStderrR, lambda data: self.proto.childDataReceived(2, data), self.errConnectionLost) self.stdin = _pollingfile._PollableWritePipe( self.hStdinW, self.inConnectionLost) for pipewatcher in self.stdout, self.stderr, self.stdin: self._addPollableResource(pipewatcher) # notify protocol self.proto.makeConnection(self) self._addPollableResource(_Reaper(self)) def signalProcess(self, signalID): if self.pid is None: raise error.ProcessExitedAlready() if signalID in ("INT", "TERM", "KILL"): #win32process.TerminateProcess(self.hProcess, 1) win32job.TerminateJobObject(self.job, 1) def _getReason(self, status): if status == 0: return error.ProcessDone(status) return error.ProcessTerminated(status) def write(self, data): """Write data to the process' stdin.""" self.stdin.write(data) def writeSequence(self, seq): """Write data to the process' stdin.""" self.stdin.writeSequence(seq) def closeChildFD(self, fd): if fd == 0: self.closeStdin() elif fd == 1: self.closeStdout() elif fd == 2: self.closeStderr() else: raise NotImplementedError("Only standard-IO file descriptors available on win32") def closeStdin(self): """Close the process' stdin. """ self.stdin.close() def closeStderr(self): self.stderr.close() def closeStdout(self): self.stdout.close() def loseConnection(self): """Close the process' stdout, in and err.""" self.closeStdin() self.closeStdout() self.closeStderr() def outConnectionLost(self): self.proto.childConnectionLost(1) self.connectionLostNotify() def errConnectionLost(self): self.proto.childConnectionLost(2) self.connectionLostNotify() def inConnectionLost(self): self.proto.childConnectionLost(0) self.connectionLostNotify() def connectionLostNotify(self): """ Will be called 3 times, by stdout/err threads and process handle. """ self.closedNotifies += 1 self.maybeCallProcessEnded() def maybeCallProcessEnded(self): if self.closedNotifies == 3 and self.lostProcess: BaseProcess.maybeCallProcessEnded(self) # IConsumer def registerProducer(self, producer, streaming): self.stdin.registerProducer(producer, streaming) def unregisterProducer(self): self.stdin.unregisterProducer() # IProducer def pauseProducing(self): self._pause() def resumeProducing(self): self._unpause() def stopProducing(self): self.loseConnection() def __repr__(self): """ Return a string representation of the process. """ return "<%s pid=%s>" % (self.__class__.__name__, self.pid) taskcoach-1.4.3/buildbot/slaves/WinXPSP3/bb.bat000077500000000000000000000001201265347643000211740ustar00rootroot00000000000000C:\Python27\python.exe C:\Python27\Scripts\twistd.py --no_save -y buildbot.tac taskcoach-1.4.3/buildbot/slaves/WinXPSP3/buildbot.tac000077500000000000000000000007471265347643000224350ustar00rootroot00000000000000 from twisted.application import service from buildslave.bot import BuildSlave basedir = r'c:\dev\buildslave' buildmaster_host = '192.168.1.2' port = 9989 slavename = 'WinXPSP3' passwd = file('.passwd', 'rb').readlines()[0].strip() keepalive = 600 usepty = 1 umask = None application = service.Application('buildslave') s = BuildSlave(buildmaster_host, port, slavename, passwd, basedir, keepalive, usepty, umask=umask) s.setServiceParent(application) taskcoach-1.4.3/buildbot/slaves/WinXPSP3/info/000077500000000000000000000000001265347643000210605ustar00rootroot00000000000000taskcoach-1.4.3/buildbot/slaves/WinXPSP3/info/admin000077500000000000000000000000641265347643000220760ustar00rootroot00000000000000J‚r“me Laheurte taskcoach-1.4.3/buildbot/slaves/WinXPSP3/info/host000077500000000000000000000000361265347643000217620ustar00rootroot00000000000000Windows XP SP3 build slave taskcoach-1.4.3/buildlib/000077500000000000000000000000001265347643000152575ustar00rootroot00000000000000taskcoach-1.4.3/buildlib/__init__.py000066400000000000000000000017231265347643000173730ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from clean import clean from bdist_rpm_fedora import bdist_rpm_fedora from bdist_rpm_opensuse import bdist_rpm_opensuse from bdist_deb import bdist_deb from bdist_winpenpack import bdist_winpenpack from bdist_portableapps import bdist_portableapps taskcoach-1.4.3/buildlib/bdist_deb.py000066400000000000000000000304461265347643000175570ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from distutils import log, errors from distutils.core import Command from distutils.file_util import copy_file, move_file import os import tarfile import shutil import textwrap import time import glob class bdist_deb(Command, object): # pylint: disable=W0201 description = 'create a Debian (.deb) package' user_options = [ ('sdist=', None, 'Source distribution .tar.gz archive'), ('bdist-base=', None, 'base directory for creating built distributions [build]'), ('dist-dir=', 'd', 'directory to put final deb files in [dist]'), ('package=', None, 'package name of the application'), ('section=', None, 'section of the menu to put the application in [Applications]'), ('subsection=', None, 'subsection of the menu to put the application in'), ('title=', None, 'title of the application'), ('description=', None, 'brief single line description of the application'), ('long-description=', None, 'long description of the application'), ('version=', None, 'version of the application'), ('package-version=', None, 'version of the package [1]'), ('changelog-content=', None, 'Content of the changelog file'), ('distribution=', None, 'distribution of the package [UNRELEASED]'), ('command=', None, 'command to start the application'), ('priority=', None, 'priority of the deb package [optional]'), ('urgency=', None, 'urgency of the deb package [low]'), ('maintainer=', None, 'maintainer of the deb package []'), ('maintainer-email=', None, 'email address of the package maintainer []'), ('author=', None, 'author of the application'), ('author-email=', None, 'email address of the application author'), ('copyright=', None, 'copyright notice of the application'), ('license=', None, 'license (title and version) of the application'), ('license-abbrev=', None, 'abbreviated license title, e.g. "GPLv3"'), ('license-summary=', None, 'summary of the license of the application'), ('license-path=', None, 'path of the license on Debian systems'), ('wxpythonversion=', None, 'minimal wxPython version needed'), ('pythonversion=', None, 'minimal Python version needed'), ('twistedversion=', None, 'minimal Twisted version needed'), ('sdist-exclude=', None, 'dirs and files in the source distribution to exclude from the deb package'), ('url=', None, 'url of the application homepage'), ('architecture=', None, 'architecure of the deb package [all]')] def initialize_options(self): self.bdist_base = 'build' self.dist_dir = 'dist' self.section = 'Applications' self.priority = 'optional' self.urgency = 'low' self.architecture = 'all' self.changelog_content = '' self.sdist = self.package = self.subsection = self.title = \ self.description = self.long_description = self.command = \ self.maintainer = self.maintainer_email = self.author = \ self.author_email = self.copyright = self.license = \ self.license_abbrev = self.license_summary = self.license_path = \ self.url = self.version = self.package_version = \ self.distribution = self.wxpythonversion = self.pythonversion = \ self.twistedversion = self.sdist_exclude = None def finalize_options(self): mandatoryOptions = [\ ('package', 'the package name'), ('subsection', 'a subsection for the menu'), ('title', 'a title for the menu'), ('description', 'a brief description for the menu'), ('long_description', 'a long description of the application'), ('version', 'the version of the application'), ('copyright', 'a copyright description ("Copyright (C) year-year, author")'), ('license', 'the title (including version) of the license'), ('license_abbrev', 'an abbreviated license title'), ('license_summary', 'a summary of the license of the application'), ('license_path', 'the path of the license on Debian systems'), ('command', 'the command to start the application'), ('author', 'the author of the application'), ('author_email', 'the email address of the author'), ('url', 'the url of the application homepage')] for option, description in mandatoryOptions: if not getattr(self, option): raise errors.DistutilsOptionError, \ 'you must provide %s (--%s)' % (description, option) if not self.maintainer: self.maintainer = self.author self.maintainer_email = self.author_email if not self.package_version: self.package_version = '1' if not self.distribution: self.distribution = 'UNRELEASED' if not self.wxpythonversion: self.wxpythonversion = '2.8' if not self.twistedversion: self.twistedversion = '12.1' if not self.pythonversion: self.pythonversion = '2.6' self.sdist_exclude = self.sdist_exclude.split(',') \ if self.sdist_exclude else [] self.subsection_lower = self.subsection.lower() self.datetime = time.strftime('%a, %d %b %Y %H:%M:%S +0000', time.gmtime()) self.year = time.gmtime()[0] self.license_summary = self.wrap_paragraphs(self.license_summary, indent=' ') self.long_description = self.wrap_paragraphs(self.long_description, indent=' ') def run(self): self.copy_sdist() self.untar_sdist() self.remove_sdist_excludes() self.create_debian_dir() self.write_debian_files() self.build_debian_package() self.move_debian_package_to_distdir() def copy_sdist(self): ''' Copy the source distribution (.tar.gz archive) to the build dir. ''' (dest_name, dummy_copied) = copy_file(self.sdist, self.bdist_base) orig_name = dest_name[:-len('.tar.gz')] + '.orig.tar.gz' orig_name = orig_name.lower() if os.path.exists(orig_name): os.remove(orig_name) self.sdist_archive = move_file(dest_name, orig_name) def untar_sdist(self): ''' Unzip and extract the source distribution archive. ''' expected_extracted_dir = self.sdist_archive[:-len('.orig.tar.gz')] + '/' if self.verbose: log.info('extracting %s to %s' % (self.sdist_archive, expected_extracted_dir)) archive = tarfile.open(self.sdist_archive) extracted_dir = os.path.join(self.bdist_base, archive.getnames()[0]) archive.extractall(self.bdist_base) archive.close() if expected_extracted_dir != extracted_dir: if os.path.exists(expected_extracted_dir): shutil.rmtree(expected_extracted_dir) os.rename(extracted_dir, expected_extracted_dir) self.extracted_dir = expected_extracted_dir def remove_sdist_excludes(self): ''' Remove directories and files from the source distribution that are not needed for the debian package. ''' for relative_path in self.sdist_exclude: absolute_path = os.path.join(self.extracted_dir, relative_path) if self.verbose: log.info('removing %s from source distribution' % relative_path) if os.path.isdir(absolute_path): shutil.rmtree(absolute_path) else: os.remove(absolute_path) def create_debian_dir(self): ''' Create the debian dir for package files. ''' self.debian_dir = os.path.join(self.extracted_dir, 'debian') if self.verbose: log.info('creating %s' % self.debian_dir) os.mkdir(self.debian_dir) def write_debian_files(self): ''' Create the different package files in the debian folder. ''' debian_files = dict(rules=rules, compat='5\n', pycompat='2\n', menu=menu, control=control, copyright=self.copyright_contents(), changelog=changelog) for filename, contents in debian_files.iteritems(): self.write_debian_file(filename, contents % self.__dict__) def write_debian_file(self, filename, contents): filename = os.path.join(self.debian_dir, filename) if self.verbose: log.info('writing %s' % filename) fd = file(filename, 'w') fd.write(contents) fd.close() os.chmod(filename, 0755) def build_debian_package(self): os.system('cd %s; debuild -S; dpkg-buildpackage -rfakeroot; cd ..' % \ self.extracted_dir) def move_debian_package_to_distdir(self): for deb_package in glob.glob('build/*.deb'): move_file(deb_package, self.dist_dir) def copyright_contents(self): ''' Create copyright contents. This is a bit complicated because the header and footer need to have their variables filled in first before their text can be wrapped. ''' return self.wrap_paragraphs(copyright_header % self.__dict__) + \ copyright + self.wrap_paragraphs(copyright_footer % self.__dict__) def wrap_paragraphs(self, text, indent=''): paragraphs = text.split('\n\n') paragraphs = ['\n'.join(textwrap.wrap(paragraph, width=76, initial_indent=indent, subsequent_indent=indent)) \ for paragraph in paragraphs] return '\n\n'.join(paragraphs) rules = '''#!/usr/bin/make -f DEB_PYTHON_SYSTEM := pysupport include /usr/share/cdbs/1/rules/simple-patchsys.mk include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/python-distutils.mk binary-install/taskcoach:: \tdh_desktop \tdh_icons ''' menu = '''?package(%(package)s):needs="X11"\\ section="%(section)s/%(subsection)s"\\ title="%(title)s"\\ description="%(description)s"\\ command="%(command)s" ''' control = '''Source: %(package)s Section: %(section)s Priority: %(priority)s Maintainer: %(maintainer)s <%(maintainer_email)s> Build-Depends: cdbs (>= 0.4.43), debhelper (>= 5), python, dpatch Build-Depends-Indep: python-support (>= 0.5.3) Standards-Version: 3.7.3 Homepage: %(url)s Package: %(package)s Architecture: %(architecture)s Depends: python (>= %(pythonversion)s), python-wxgtk2.8 (>= %(wxpythonversion)s), python-wxversion, python-twisted (>= %(twistedversion)s), libxss1, ttf-dejavu, xdg-utils Recommends: python-notify, libgnome2-0, libavahi-compat-libdnssd1, x11-utils Suggests: python-kde4 Description: %(description)s. %(long_description)s ''' copyright_header = '''This package was debianized by %(maintainer)s <%(maintainer_email)s> on %(datetime)s. ''' copyright = ''' It was downloaded from %(url)s Upstream Author: %(author)s <%(author_email)s> Copyright: %(copyright)s License: %(license_summary)s ''' copyright_footer = '''On Debian systems, the complete text of the %(license)s can be found in '%(license_path)s'. The Debian packaging is (C) %(year)s, %(maintainer)s <%(maintainer_email)s> and is licensed under the %(license_abbrev)s, see above. ''' changelog = '''%(package)s (%(version)s-%(package_version)s) %(distribution)s; urgency=%(urgency)s %(changelog_content)s -- %(maintainer)s <%(maintainer_email)s> %(datetime)s ''' taskcoach-1.4.3/buildlib/bdist_portable_base.py000066400000000000000000000042401265347643000216200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os from distutils.core import Command from distutils.file_util import copy_file from distutils import log class bdist_portable_base(Command, object): ''' Base class for bdist commands that create portable distributions. ''' def copy_files(self, src_dir, dest_dir, copy_recursively=False): if src_dir.endswith('.svn'): return if not os.path.exists(dest_dir): os.mkdir(dest_dir) for entry in os.listdir(src_dir): abs_entry = os.path.join(src_dir, entry) if os.path.isfile(abs_entry): if os.path.splitext(abs_entry)[1] in ('.txt', '.ini'): self.copy_and_expand(abs_entry, dest_dir) else: copy_file(abs_entry, dest_dir) elif os.path.isdir(abs_entry) and copy_recursively: self.copy_files(abs_entry, os.path.join(dest_dir, entry), copy_recursively) def copy_and_expand(self, src_filename, dest_dir): log.info('copying and expanding %s to %s'%(src_filename, dest_dir)) src_file = file(src_filename, 'rb') contents = src_file.read() src_file.close() contents = contents%self.__dict__ dest_filename = os.path.join(dest_dir, os.path.basename(src_filename)) dest_file = file(dest_filename, 'wb') dest_file.write(contents) dest_file.close() taskcoach-1.4.3/buildlib/bdist_portableapps.py000066400000000000000000000104761265347643000215220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os from distutils import errors import bdist_portable_base class bdist_portableapps(bdist_portable_base.bdist_portable_base): description = 'create a PortableApps package' user_options = [ ('bdist-base=', None, 'base directory for creating built distributions [build]'), ('dist-dir=', 'd', 'directory to put final package files in [dist]'), ('name=', None, 'name of the application'), ('version=', None, 'version of the application'), ('license=', None, 'license (title) of the application'), ('url=', None, 'url of the application homepage'), ('filename=', None, 'filename of the application without extension'), ('date=', None, 'the release date')] def initialize_options(self): # pylint: disable=W0201 self.bdist_base = 'build' self.dist_dir = 'dist' self.bdist_base_pa = os.path.join(self.bdist_base, 'TaskCoachPortable') self.name = self.version = self.license = self.url = self.filename = self.date = None def finalize_options(self): mandatoryOptions = [('name', 'the name of the application'), ('version', 'the version of the application'), ('license', 'the title of the license'), ('url', 'the url of the application homepage'), ('filename', 'the filename of the application without extension'), ('date', 'the release date')] for option, description in mandatoryOptions: if not getattr(self, option): raise errors.DistutilsOptionError, \ 'you must provide %s (--%s)'%(description, option) def run(self): self.create_portableapps_paths() self.copy_launcher() self.copy_appinfo() self.copy_defaultdata() self.copy_bin() self.copy_other() def create_portableapps_paths(self): for pathComponents in [('App', 'AppInfo'), ('App', 'DefaultData', 'settings'), ('App', 'TaskCoach'), ('Data', ), ('Other', 'Help', 'images'), ('Other', 'Source')]: path = os.path.join(self.bdist_base_pa, *pathComponents) if not os.path.exists(path): os.makedirs(path) def copy_launcher(self): launcher_src = os.path.join('build.in', 'portableapps') self.copy_files(launcher_src, self.bdist_base_pa) def copy_appinfo(self): src = os.path.join('build.in', 'portableapps', 'App', 'AppInfo') dest = os.path.join(self.bdist_base_pa, 'App', 'AppInfo') self.copy_files(src, dest) def copy_defaultdata(self): src = os.path.join('build.in', 'portableapps', 'App', 'DefaultData', 'settings') dest = os.path.join(self.bdist_base_pa, 'App', 'DefaultData', 'settings') self.copy_files(src, dest) def copy_bin(self): src = os.path.join(self.bdist_base, 'TaskCoach-%s-win32exe'%self.version) dest = os.path.join(self.bdist_base_pa, 'App', 'TaskCoach') self.copy_files(src, dest, copy_recursively=True) def copy_other(self): src = os.path.join('build.in', 'portableapps', 'Other') dest = os.path.join(self.bdist_base_pa, 'Other') self.copy_files(src, dest, copy_recursively=True) taskcoach-1.4.3/buildlib/bdist_rpm_fedora.py000066400000000000000000000034011265347643000211320ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from distutils.command.bdist_rpm import bdist_rpm class bdist_rpm_fedora(bdist_rpm): user_options = bdist_rpm.user_options + \ [('spec-file=', None, 'spec file to use'), ('desktop-file', None, 'desktop file to use')] def initialize_options(self): bdist_rpm.initialize_options(self) self.spec_file = [] self.desktop_file = '' def _make_spec_file(self): ''' We don't want the spec file to be generated, instead the rpm build process should just use the provided spec file. ''' return self.spec_file def copy_file(self, source, dest): ''' HACK WARNING! bdist_rpm is difficult to override because its methods are much too long. We need to copy the desktop file in addition to the icon, so we override copy_file, check whether the icon is being copied, and if so, also copy the desktop file.''' bdist_rpm.copy_file(self, source, dest) if source == self.icon: bdist_rpm.copy_file(self, self.desktop_file, dest) taskcoach-1.4.3/buildlib/bdist_rpm_opensuse.py000066400000000000000000000034031265347643000215350ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from distutils.command.bdist_rpm import bdist_rpm class bdist_rpm_opensuse(bdist_rpm): user_options = bdist_rpm.user_options + \ [('spec-file=', None, 'spec file to use'), ('desktop-file', None, 'desktop file to use')] def initialize_options(self): bdist_rpm.initialize_options(self) self.spec_file = [] self.desktop_file = '' def _make_spec_file(self): ''' We don't want the spec file to be generated, instead the rpm build process should just use the provided spec file. ''' return self.spec_file def copy_file(self, source, dest): ''' HACK WARNING! bdist_rpm is difficult to override because its methods are much too long. We need to copy the desktop file in addition to the icon, so we override copy_file, check whether the icon is being copied, and if so, also copy the desktop file.''' bdist_rpm.copy_file(self, source, dest) if source == self.icon: bdist_rpm.copy_file(self, self.desktop_file, dest) taskcoach-1.4.3/buildlib/bdist_winpenpack.py000066400000000000000000000103641265347643000211610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, zipfile from distutils import errors import bdist_portable_base class bdist_winpenpack(bdist_portable_base.bdist_portable_base): description = 'create a winPenPack X-Software package' user_options = [ ('bdist-base=', None, 'base directory for creating built distributions [build]'), ('dist-dir=', 'd', 'directory to put final package files in [dist]'), ('version=', None, 'version of the application'), ('license=', None, 'license (title) of the application'), ('url=', None, 'url of the application homepage'), ('filename=', None, 'filename of the application without extension'), ('date=', None, 'the release date')] def initialize_options(self): # pylint: disable=W0201 self.bdist_base = 'build' self.dist_dir = 'dist' self.version = self.license = self.url = self.filename = self.date = None self.bdist_base_wpp = os.path.join(self.bdist_base, 'X-TaskCoach_%s_rev1'%self.version) def finalize_options(self): mandatoryOptions = [('version', 'the version of the application'), ('license', 'the title of the license'), ('url', 'the url of the application homepage'), ('filename', 'the filename of the application without extension'), ('date', 'the release date')] for option, description in mandatoryOptions: if not getattr(self, option): raise errors.DistutilsOptionError, \ 'you must provide %s (--%s)'%(description, option) def run(self): self.create_winpenpack_paths() self.copy_launcher() self.copy_readme() self.copy_bin() self.zip() def create_winpenpack_paths(self): for pathComponents in [('Bin', 'TaskCoach'), ('Documents', 'TaskCoach'), ('ReadMe',), ('User', 'TaskCoach')]: path = os.path.join(self.bdist_base_wpp, *pathComponents) # pylint: disable=W0142 if not os.path.exists(path): os.makedirs(path) def copy_launcher(self): launcher_src = os.path.join('build.in', 'winpenpack') self.copy_files(launcher_src, self.bdist_base_wpp) def copy_readme(self): readme_src = os.path.join('build.in', 'winpenpack', 'ReadMe') readme_dest = os.path.join(self.bdist_base_wpp, 'ReadMe') self.copy_files(readme_src, readme_dest) def copy_bin(self): srcdir = os.path.join(self.bdist_base, 'TaskCoach-%s-win32exe'%self.version) destdir = os.path.join(self.bdist_base_wpp, 'Bin', 'TaskCoach') self.copy_files(srcdir, destdir, copy_recursively=True) def zip(self): archive_filename = os.path.join(self.dist_dir, 'X-TaskCoach_%s_rev1.zip'%self.version) archive = zipfile.ZipFile(archive_filename, 'w', zipfile.ZIP_DEFLATED) for dirpath, _, filenames in os.walk(self.bdist_base_wpp): for filename in filenames: filepath = os.path.join(dirpath, filename) arcname = filepath[len(self.bdist_base_wpp):] archive.write(filepath, arcname) archive.close() # For the buildbot print 'Generated %s' % archive_filename taskcoach-1.4.3/buildlib/clean.py000066400000000000000000000042461265347643000167210ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, fnmatch from distutils.command.clean import clean as BaseCleanCommand from distutils import log class clean(BaseCleanCommand, object): user_options = BaseCleanCommand.user_options + \ [('really-clean', 'r', 'remove even more files')] boolean_options = BaseCleanCommand.boolean_options + ['really-clean'] def initialize_options(self): super(clean, self).initialize_options() # pylint: disable=W0201 self.really_clean = False self.cleaning_patterns = ['*.pyc'] self.really_clean_patterns = ['*.bak'] def finalize_options(self): super(clean, self).finalize_options() if self.really_clean: self.cleaning_patterns.extend(self.really_clean_patterns) def run(self): super(clean, self).run() if not self.verbose: log.info("recursively removing '" + "', '".join(self.cleaning_patterns) + "'") for root, _, files in os.walk('.'): for pattern in self.cleaning_patterns: for filename in fnmatch.filter(files, pattern): filename = os.path.join(root, filename) try: if not self.dry_run: os.unlink(filename) if self.verbose: log.info("removing '%s'"%filename.strip('.\\')) except IOError: pass taskcoach-1.4.3/changes.in/000077500000000000000000000000001265347643000155065ustar00rootroot00000000000000taskcoach-1.4.3/changes.in/changes.py000066400000000000000000006341211265347643000174770ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from changetypes import * releases = [ Release('1.4.3', 'January 31, 2016', summary='''This is a mixed feature and bugfix release.''', featuresAdded=[ Feature('''Finnish translation fixed and enabled.'''), Feature('''The shortcut to delete tasks is now Ctrl+DEL instead of just DEL.'''), ], bugsFixed=[ Bugv2('''Fix excessive CPU usage on Linux when smart filesystem monitoring is enabled.'''), Bugv2('''Fix attachment opening on some Linux distros.''', '1613'), ], ), Release('1.4.2', 'January 31, 2015', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Also avoid locking in an ownCloud folder.'''), Bugv2('''Avoid a crash when files with badly encoded names are in the same directory as the task file.'''), Bugv2('''Avoid data loss in some rare situations'''), ], ), Release('1.4.1', 'September 14, 2014', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Increase taskbar icon size on Linux to avoid dead places.''', '1536'), Bugv2('''Display time spent in decimal format in task viewer if the option is set.''', '1534'), Bugv2('''Fix todo.txt export when dates have a year < 1900''', '1541'), Bugv2('''Avoid locking in Dropbox folder on Windows.''', '1540'), Bugv2('''Backup and save would fail if the path to the user's home contained a non-ASCII character''', '1547', '1546'), Bugv2('''Fix stop effort tooltip.''', '1537'), ], ), Release('1.4.0', 'July 3, 2014', summary='''This is a major feature release.''', featuresAdded=[ Feature('''A task file can now be open by several instances of Task Coach, allowing several users to work on the same file.''', 'http://taskcoach.uservoice.com/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/288999-enable-multi-user-task-management'), Feature('''Backups are now always enabled.'''), ], bugsFixed=[ Bugv2('''Fix tooltips on notes.''', '1525'), Bugv2('''Fix sort order indication in viewer columns.''', '1527'), Bugv2('''Don't crash at startup if the locale is not supported.''', '1528'), ], ), Release('1.3.41', 'June 22, 2014', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Fix a crash at startup on Linux when using some window managers that don't set the SESSION_MANAGER environment variable.'''), Bugv2('''Bring back effort tooltips.'''), Bugv2('''Fix positionning of baloon tips when moving the window from one display to another.''', '1522'), Bugv2('''Fix for non-ASCII e-mail subjects without encoding specification''', '1523'), ], featuresAdded=[ Feature('''Bring back the option to disable tooltips.'''), ], ), Release('1.3.40', 'May 25, 2014', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Remove a debug trace in DnD code.'''), Bugv2('''"Effort for one task" becomes "Effort for selected task(s)"''', '1474', '1520'), Bugv2('''Fix an occasional "AlreadyCalledError" when iPhone sync is enabled.'''), ], featuresAdded=[ Feature('''Add an "add note to selected task" button in the task toolbar; patch from Manab Chetia'''), ], ), Release('1.3.39', 'May 18, 2014', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Some tabs would come up blank when the editor was in multi-notebook mode.''', '1512'), Bugv2('''In hierarchical calendar, when hitting Ctrl-A or Shift-clicking a parent task, only select visible tasks.'''), Bugv2('''Fix a number of SyncML-related bugs.'''), Bugv2('''Fix the "cannot create a file that exists" problem when saving.''', '1517'), Bugv2('''Fix an error introduced in 1.3.38 related to tips.''', '1518'), Bugv2('''Hopefully fix a session-related bug on Windows''', '1516'), ], featuresAdded=[ Feature('''SyncML: add support for Horde-based servers.'''), Feature('''All sort criterion are now persisted between sessions.''', 'http://taskcoach.uservoice.com/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/289031-better-control-over-task-order'), ], ), Release('1.3.38', 'April 21, 2014', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Code signature would become invalid on OSX after the first run.''', '1506'), Bugv2('''Task Coach wouldn't actually stop with older versions of Twisted (<11).''', '1505'), Bugv2('''Fix Todo.txt export''', '1274'), Bugv2('''Performance improvements.'''), Bugv2('''In some circumstances, balloon tips would not close.'''), Bugv2('''Locking would fail on SSHFS''', '1509'), Bugv2('''Fix CSV export for some setups.''', '1510'), ], featuresAdded=[ Feature('''Always use "/" as path separator in relative attachment file names.''', 'https://taskcoach.uservoice.com/admin/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/5721924-use-slash-instead-backslash-on-attachment-file-pat'), Feature('''New hierarchical calendar viewer.'''), Feature('''Efforts and notes are always enabled.'''), Feature('''Display categories in tooltip.''', 'https://taskcoach.uservoice.com/admin/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/5727692-tooltips-for-grid-cells-with-too-long-contents-to'), Feature('''The tooltip is now always enabled.'''), Feature('''Manual reordering of tasks, categories and notes.''', 'http://taskcoach.uservoice.com/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/289031-better-control-over-task-order'), ], dependenciesChanged=[ Dependency('''Minimal Twisted version is now 10.0.''') ], ), Release('1.3.37', 'March 29, 2014', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Fix a crash at startup on Lucid.''', '1496'), Bugv2('''Behave like regular OS X apps with regards to minimization and foreground behavior.''', '1500'), Bugv2('''Fix idle time notification.''', '1503'), ], featuresAdded=[ Feature('''Add an option to render efforts in decimal (patch from Tom Monaco).''', 'https://taskcoach.uservoice.com/admin/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/739042-allow-display-of-effort-in-decimal-dd-dd-as-wel'), Feature('''Improved import/export of Todo.txt'''), Feature('''Custom attributes for mailing tasks/categories/etc''', 'https://taskcoach.uservoice.com/admin/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/5342642-embeded-command-capability'), ], dependenciesChanged=[ Dependency('''Task Coach now depends on Twisted.''') ], ), Release('1.3.36', 'February 16, 2014', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Prerequisites modification would not work.''', '1480', '1486', '1495'), Bugv2('''LC_TIME would not be honored if set independently''', '1483'), Bugv2('''Disable translations that are not at least 90%% complete.'''), Bugv2('''Do something a little more intuitive when editing efforts in aggregated mode.''', '1485'), Bugv2('''Fix a resource leak on Windows.''', '1488'), Bugv2('''Fix a crash on Mint when synchronizing with an iPhone if the password is not set.''', '1487'), Bugv2('''Show and bring minimized window to front on simple click in the dock (OS X)''', '1490'), Bugv2('''Disable dock icon ticking on Mavericks.''', '1489'), Bugv2('''Fix line ending problem when importing from CSV on Mac/Linux''', '1493'), Bugv2('''Delete .txt files as well when overwriting a task file.''', '1274'), ], ), Release('1.3.35', 'January 4, 2014', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''The task editor would not open if the user's date format didn't include the year.'''), Bugv2('''Unsetting an exclusive category or its parent would not work.''', '1475'), Bugv2('''Remove file:// URL scheme from filenames dropped from Nautilus.'''), Bugv2('''When exporting tasks to HTML or CSV, sort notes alphabetically.''', '1477'), Bugv2('''Sending a task by e-mail would not work on XFCE 4.10.'''), Bugv2('''Fix AttributeError problem''', '1479'), ], ), Release('1.3.34', 'November 24, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Silence the AttributeError problem in PyPubSub.''', '1456'), Bugv2('''Fix some problems when saving the task file to a Dropbox folder.'''), Bugv2('''Performance improvement when reading the task file.'''), Bugv2('''Split date and time when exporting efforts to CSV.''', '1472'), ], ), Release('1.3.33', 'October 13, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Fix budget entry.''', '1458'), Bugv2('''The search controls would not remember the previous search string on launch, but the view would be filtered anyway.'''), Bugv2('''Fix date picker on locales that have non-ASCII month/day abbreviations.''', '1463'), Bugv2('''Fix position of text in subject entry on Windows.''', '1464'), Bugv2('''When automatic import and export to ToDo.txt is enabled, one could not delete tasks or change some task dates''', '1446'), ], ), Release('1.3.32', 'August 28, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Don't prevent shutdown on Windows if the minimize on close option is set.'''), Bugv2('''Prevent a PyGTK warning on recent Linux distributions.''', '1435'), Bugv2('''Fix main toolbar shrinking when resizing a viewer.''', '1431'), Bugv2('''Improve performance when tracking effort.''', '1442'), Bugv2('''Prevent TypeError in date selection widget.''', '1445'), Bugv2('''Fix initial tab when creating new items'''), Bugv2('''Fix undo/redo in text controls on OS X.''', '1436'), Bugv2('''Fix loss of description edits when closing/quitting while editors are still open.''', '1437'), Bugv2('''Fix strange Escape behavior on multiple open editors on OS X.''', '1438'), Bugv2('''Fix German translation.''', '1448'), Bugv2('''"New note with selected categories" would create a new category.''', '1447'), Bugv2('''Fix search issue when editing the toolbar.''', '1449'), Bugv2('''Fix note creation in editor windows.''', '1451'), Bugv2('''Fix opening preferences dialog when the end of work day is set to 24.'''), ], ), Release('1.3.31', 'July 29, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Fix crash at startup on Ubuntu 13 if python-apscheduler is installed.''', '1428'), Bugv2('''Use the "Suggests" mechanism instead of "Recommends" for the Debian package (python-kde4).''', '1430'), Bugv2('''Handle short date formats with weekday'''), Bugv2('''When adding a viewer, the main toolbar would shrink.''', '1431'), Bugv2('''Fix an error when the user types a numeric value in the AM/PM field of the date/time picker.''', '1425'), Bugv2('''Don't open floating viewers on the top-left corner of the screen''', '1432', '1349'), Bugv2('''Add a hint that the task file needs to be saved in the main window title.''', '1434'), ], ), Release('1.3.30', 'July 7, 2013', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Working day start hour would be reset to 0 every time preferences are opened.''', '1418'), Bugv2('''Fix the ICC warning with recent versions of libpng.''', '1422'), Bugv2('''Fix path to log file.''', '1350'), Bugv2('''Total duration of efforts is the sum of rounded durations, not the rounded sum of durations.''', '1426'), ], dependenciesChanged=[ Dependency('''The minimal version of Python is back to 2.6.'''), Dependency('''On Linux, Task Coach does not depend on KDE any more, but it is recommended.''')], featuresAdded=[ Feature('''Display effort statistics in the status bar (patch from Ivan Romanov).''', 'https://taskcoach.uservoice.com/admin/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/606269-section-in-status-bar-for-calculated-information-a'), # Where the hell do they hide short URLs ? ], ), Release('1.3.29', 'April 14, 2013', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Fix password entry on Windows.''', '1410'), Bugv2('''Fix category filter menu on Windows 7''', '1281'), ], featuresAdded=[ Feature('''Display a few days of previous and next month in the calendar popup.'''), ], ), Release('1.3.28', 'March 24, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Fix a console warning on Ubuntu 64 bits.''', '1393'), Bugv2('''Fix task selection through keyboard in effort editor (MS Windows and GTK).''', '1400'), Bugv2('''Fix editing of effort start in the effort dialog.''', '1399'), Bugv2('''Fix timezone-related display bug that would prevent the task editor from opening on OS X.''', '1395'), Bugv2('''Use presets for tasks created through mail DnD.''', '1403'), Bugv2('''Fix loading of categories for notes belonging to a subtask, and other such imbrications.''', '1404'), Bugv2('''Fix preferences opening when end of work day is set to 24.''', '1394'), ], ), Release('1.3.27', 'March 10, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Follow system preferences to format dates (instead of just times).''', '1386'), Bugv2('''Fix date rendering on some versions of OSX.''', '1391'), ], ), Release('1.3.26', 'March 6, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Exporting efforts in CSV with the 'Period' column and date/time splitting would not work.''', '1387'), Bugv2('''Task Coach would not launch on OS X 10.6 and later.''', '1388', '1390'), ], ), Release('1.3.25', 'March 5, 2013', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Fix fonts in calendar viewer.''', '1370'), Bugv2('''Fix cutting attachments.'''), Bugv2('''Fix focus on category viewer in task editor.''', '1382'), Bugv2('''Fix keyboard navigation in the editor's tabs.''', '1216'), Bugv2('''Make the effort stop menu a bit more contextual.''', '1381'), Bugv2('''Fix effort stop button interaction with undo.''', '1381'), Bugv2('''Fix flickering on Windows 7 when Aero is enabled.''', '1384'), Bugv2('''Fix opening of the task editor and preferences on some locales.''', '1360'), Bugv2('''Sorting by modification or creation date/time didn't work.''', '1380'), Bugv2('''Fix checkbox focus hint on Windows (in the date picker).''', '1372'), Bugv2('''Use system settings for date and time formatting on OSX.'''), Bugv2('''Use system settings for date and time formatting on KDE4.''', '1386'), Bugv2('''Save templates to program directory for Task Coach Portable.'''), ], featuresAdded=[ Feature('''Getting the subject from Mail.app on drag and drop is now optional (takes too long).'''), Feature('''Focus subject field when opening the task editor on Linux. This is configurable.''', '1263'), ], ), Release('1.3.24', 'February 17, 2013', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bugv2('''Clicking in the hour choice popup in the date/time picker would select the wrong value.''', '1377'), Bugv2('''Task Coach now follows the XDG specification for configuration and data (template) files on Linux.''', '367'), Bugv2('''Fix menu "Stop tracking multiple tasks" menu''', '1366'), Bugv2('''Fix focus issue in date picker.''', '1368'), Bugv2('''Fix discrepancy in due date time precision''', '1253'), Bugv2('''Fix multiple effort notices when idle.''', '1365'), Bugv2('''Fix font issue with calendar viewer.''', '1370'), Bugv2('''Fix "NoneType object is not callable" problem.''', '1371'), Bugv2('''Prevent reminder dialogs and editors from stealing focus.''', '956'), Bugv2('''Add a visual hint that the checkbox has focus in the date picker.''', '1372'), Bugv2('''Fix opening of editor dialog on some locales''', '1360', '1375'), Bugv2('''Fix idle notifications.''', '1365'), Bugv2('''Sort case insensitive in the toggle category menu.''', '1369'), Bugv2('''Fix the N shortcut in datetime picker.''', '1378'), ], featuresAdded=[ Feature('''The "notes" and "attachments" columns can now be exported to HTML and CSV.'''), Feature('''Store the IMAP passwords in the user's keychain.'''), Feature('''The default icon for completed tasks is now the green checkmark.'''), ], ), Release('1.3.23', 'February 7, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Some navigation shortcuts in the date/time picker would not work on Windows or Linux.''', '1340'), Bugv2('''Typing would not do anything on Windows in the date/time picker if the calendar is shown.''', '1340'), Bugv2('''The calendar popup from the date/time picker would not show all days.''', '1340'), Bugv2('''Task Coach would fail to start when the user had selected an empty bitmap for one of the task statuses.'''), Bugv2('''Non-ASCII characters would display wrong in the calendar popup on OS X.'''), Bugv2('''Start/end of day choice in preferences now follow the user's format preferences.''', '1331'), Bugv2('''Resizing the toolbar would truncate it.''', '1341'), Bugv2('''Try to fetch Mail.app message subject.''', '1342', '1003'), Bugv2('''Don't let the user pick columns that cannot be exported'''), Bugv2('''When cancelling application shutdown, the window would close nonetheless.''', '1346'), Bugv2('''The calendar popup in the date picker would not use the first week day setting.''', '1348'), Bugv2('''Disable hide all filters when in tree mode and the only filter is "hide composite tasks".''', '1351'), Bugv2('''The task editor would not open on Windows if the user's short date format used abbreviated or full month name.''', '1338'), Bugv2('''Increase timer value for the date picker.''', '1354'), Bugv2('''Backspace/delete removes the last digit in the date picker.''', '1354'), Bugv2('''Fix Shift-S and Shift-E shortcuts in date picker on Linux.''', '1358'), Bugv2('''Fix overlay in toolbar icons.''', '1356'), Bugv2('''Use system default GUI font in date picker.''', '1361'), Bugv2('''Add shortcuts for AM/PM in date picker.''', '1362'), Bugv2('''Escape now dismisses calendar popup in date picker.''', '1362'), Bugv2('''Fix crash when a task status icon has been set to "No icon".''', '1364'), Bugv2('''Fix refreshing of spent time in effort viewer''', '1363'), ], featuresAdded=[ Feature('''Add a modification date attribute to tasks, notes, attachments, and categories.''', 'http://uservoice.com/a/-2HX-'), Feature('''Hitting Ctrl+V (or Cmd+V on OS X) while the date or time picker has focus will try to interpret the clipboard's content. Ctrl+C stores the current value in the clipboard.''', '1352'), ], dependenciesChanged=[ Dependency('''Task Coach now needs Python 2.7.''')], ), Release('1.3.22', 'January 2, 2013', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''The task editor would not open after some time on Windows and OS X.''', '1338'), ], ), Release('1.3.21', 'January 1, 2013', summary='''This is a mixed feature and bugfix release.''', bugsFixed=[ Bugv2('''Changing the percentage complete would not cause the calendar viewer to refresh.'''), Bugv2('''On Mac OS X, clicking the period column in effort viewers to change the sort order didn't work.'''), Bugv2('''Adapt font size to available space in calendar view.''', '1309'), Bugv2('''Using Shift+Enter key on the number keypad would not work on Mac OS X nor Linux.''', '1285'), Bugv2('''Search defaults to simple substring matching.''', '1286'), Bugv2('''Growl notifications didn't work with Growl 2.0.''', '1324'), Bugv2('''Fix another encoding problem on some locales (Windows).''', '1310', '1321'), Bugv2('''Performance improvement in the edit dialogs.''', '991'), Bugv2('''Fix icon size in Unity.''', '1329'), Bugv2('''Fix docking of floating viewers on Windows.'''), Bugv2('''When toggling the category of multiple items, not all of which are in the selected category, don't remove the items from the category that already belonged to that category.''', '1271'), Bugv2('''Toolbar icons to show/hide tasks according to status now respect appearance settings, and are overlayed with a red cross.''', '1104', '1323'), Bugv2('''New date/time picker should fix most existing problems with the old one.''', '702', '1089', '1212', '1266', '1233'), Bugv2('''Fix wording for task statuses.''', '1333'), ], featuresAdded=[ Feature('''New, hopefully more intuitive date/time control.'''), Feature('''Display dates in human-readable form in viewers (today, yesterday, tomorrow).'''), Feature('''Startup and shutdown performance improvements.'''), Feature('''Autosave is now on by default.'''), Feature('''Support for Growl on Windows.'''), Feature('''Toolbars are now customizable.'''), Feature('''Add a creation date attribute to tasks, notes, attachments, and categories.''', 'http://uservoice.com/a/-2HX-'), Feature('''Shift+Click on a filter button in the toolbar shows only the corresponding task status'''), ], ), Release('1.3.20', 'October 21, 2012', summary='''This is a bugfix release.''', bugsFixed=[ Bugv2('''Fix an encoding problem on Windows non-European locales''', '1306'), Bugv2('''On Linux, Ctrl-Z in a text control would always remove the whole contents of the text control instead of undoing the recent changes.''', '1267'), Bugv2('''When adding a new item, always start the edit dialog with the description tab raised and focus on the item subject.''', '1263'), Bugv2('''Editing templates would not work.'''), Bugv2('''The effort dialog wouldn't function properly when the time format contained dots, like in Italian.''', '1307'), Bugv2('''Moving efforts between tasks would sometimes trigger an exception, resulting in lost efforts.''', '1203'), Bugv2('''When there are multiple reminders and speech is on, don't say all the reminders simultaneously, but one at a time.''', '1313'), ], ), Release('1.3.19', 'October 7, 2012', summary='''This is a mixed feature and bugfix release.''', bugsFixed=[ Bug('''Format times in the calendar view according to the user's preferences.''', '3563441'), Bug('''Do not automatically give focus to the subject field in the task editor on Linux (it overwrites the X clipboard).''', '3539452'), Bug('''After loading a task file, tasks would not become due soon on time.''', '3562925'), Bug('''On OS X, the first entry in an editor page would not be automatically selected.''', '3562922'), Bug('''On Linux, drag and drop of email messages from Evolution didn't work.''', '3562808'), Bug('''With autosaving on, Task Coach would actually save too often.''', '3562836'), Bug('''On Ubuntu, a file was missing causing Task Coach not to start.''', '3562695'), Bug('''On Ubuntu, the native text control doesn't support undo and redo, added a home grown version.''', '3563376'), Bug('''Don't silently adjust dates of parent and child tasks. See also the changed feature below.''', '3561465', '3564794'), Bug('''Remember whether the "make this snooze time the default snooze time for future reminders" check box was checked in the reminder dialog.''', '3567139'), Bug('''The task viewer would not refresh at midnight.'''), Bugv2('''On Windows with some locale settings, Task Coach would crash trying to render dates.''', '1306'), ], featuresAdded=[ Feature('''In addition to specifying a maximum number of recurrences, it is now also possible to specify an end date for recurrence. If both an end date and a maximum number of recurrences are specified, recurrence stops when the first of both conditions is met.'''), Feature('''Put a link to our IndieGoGo campaign on the toolbar of the main window. The link will disappear when the campaign is over.'''), ], featuresChanged=[ Feature('''Task Coach no longer enforces that the dates of child tasks lie between the dates of its parent task. Previously, if the start date of a child task would be made earlier than the start date of its parent task, Task Coach would silently make the start of the parent task equal to the start date of the child task. The same for the due date: setting the due date of the parent task earlier than the due date of a child task would silently change the due date of the child tasks if their due date would otherwise become later than the due date of the parent task. When viewing tasks in the task tree viewer, collapsing a task with child tasks will show recursive dates when relevant. This means that the planned start date column will show the earliest start date of the task itself and all of its child tasks. If the earliest start date is the start date of one of the child tasks, the date will be shown between brackets. Likewise, the actual start date column will show the earliest actual start date of the task and all of its child tasks. The due date column and the completion date column will show the latest date of the parent and child tasks combined. When sorting on a date column, the recursive value is used for sorting. So when sorting ascending by due date a parent task without due date but with a child task due today will sort before a task that is due tomorrow. This change makes the date behavior consistent with priorities and other attributes.'''), Feature('''New viewers will open floating so that is easier to put them in the position you want. Hopefully this will also make it more obvious for new users that viewers can be reordered any way they like since moving a floating viewer will show the docking guides.'''), Feature('''Clicking outside an inplace editor now accepts the changes instead of discarding them.'''), Feature('''On Windows, both left clicking and left double clicking the Task Coach icon in the notification area (often called the system tray) will raise or minimize the main window (in accordance with http://msdn.microsoft.com/en-us/library/windows/desktop/aa511448.aspx#interaction).''', 'http://uservoice.com/a/m3P6j'), ], ), Release('1.3.18', 'August 28, 2012', summary='''This is a mixed feature and bugfix release.''', teamChanges=[ Team('''We're happy to announce that Aaron Wolf joined the Task Coach team. Aaron is already doing a great job scrutinizing the large number of feature requests we have open on http://taskcoach.uservoice.com. In addition, he is helping us testing Task Coach and ironing out as many bugs as we can, see the first results below. Furthermore, he is planning to develop an in-app tutorial for Task Coach so we're glad to have him on board. Welcome, Aaron!'''), ], bugsFixed=[ Bug('''Get rid of the infamous "AttributeError: __onDead" error''', '3546400'), Bug('''Do not automatically give focus to the subject field in the task editor on Linux (it overwrites the X clipboard).''', '3539452'), Bug('''On Mac OS X, the window would shrink at each launch. Tested on 10.5, 10.7 and 10.8DP4.'''), Bug('''Do not singularize user-set icons.''', '3539824'), Bug('''Disable spell checking on Mountain Lion because it makes Task Coach crash.''', '3554534'), Bug('''Fix opening URLs from the Help menu on KDE4.''', '3542487'), Bug('''Fix the About dialog on Kubuntu.''', '3542487'), Bug('''Reminders sometimes wouldn't fire.''', '3554603'), Bug('''On Mac OS X, idle time notifications would not work.''', '3554603'), Bug('''On Mac OS X Snow Leopard (10.6) and earlier, the system would ask the user to allow Task coach use a port (firewall) or the keychain on every launch.''', '3556753'), Bug('''On Mac OS X, the search options menu wouldn't work.''', '3558511'), Bug('''When the language is set to English/US, use 12 hour clock in task and effort dialogs instead of 24 hour clock.'''), Bug('''Don't reset the edit dialog layout for editing single items after editing multiple items at the same time.''', '3559292'), Bug('''When changing the "Mark task completed when all children are completed?"-setting in the "Progress" tab of the task edit dialog, Task Coach would set the percentage complete slider in the "Progress" tab to the recursive percentage complete while the slider is meant to only display and change the percentage complete of the task itself.''', '3559740'), Bug('''When a task with subtasks does not override the global setting for marking a task completed when all of its subtasks are completed, actually use that setting when displaying the percentage complete of the parent task in the task viewer.''', '3559740'), Bug('''The settings for the viewers in the edit dialogs (such as the visible columns in the effort tab and the notes tab) wouldn't be consistently applied to each edit dialog.''', '3559057'), Bug('''On Mac OS X, the button in the effort edit dialog for dropping down the tree of tasks didn't work.''', '3560296'), Bug('''Make recurrence label in the task edit dialog clearer.''', '3560420'), Bug('''Make the description of the "idle time notice" setting in the preferences clearer.''', '3555498'), Bug('''Make the description of the "minutes between suggested times" setting in the preferences clearer.''', '3556765'), Bug('''The combobox for selecting the snooze time in the reminder dialog was not read only. This suggested that one could type in custom snooze times while that is not supported (yet).''', '3560416'), Bug('''The "Filter on all checked categories/Filter on any checked category" option was only available via the toolbar of the category viewer. Due to the width of the option, it could be difficult to access. The option is now also available as menu item in the View->Filter menu.''', '3554627'), Bug('''When the budget left is negative, the budget left field in the task edit dialog would not show a minus sign.''', '3554616'), Bug('''On Mac OS X, the tip of the day window would block the dialog for unlocking a locked task file.''', '3561499'), Bug('''When saving selected tasks, not only include the categories the selected tasks belong to, but also the parent categories of the used categories, even though they may not have been used themselves.''', '3561159'), Bug('''When creating a new item, set focus to the subject field so that the description tab is raised if needed.''', '3561515'), Bug('''On Mac OS X, dropping of URLs without a protocol specification ('http:', 'https:', 'ftp:', etc.) would result in attachments that couldn't be opened.''', '3561889'), Bug('''On Linux, dropping of URLs didn't work.''', '3561889'), Bug('''The order of tabs in edit dialogs wouldn't be restored correctly after it had been changed by the user.''', '3562239'), Bug('''Save size, position and maximization state of dialogs separately for single-item and multi-item dialogs.''', '3562239'), # Bug('''Fix slowness when viewing aggregated efforts.''', # '3538310', '3537702'), ], featuresAdded=[ Feature('''Increase font size in the calendar view's header.''', '3558650'), Feature('''In the calendar view, unplanned dates are now cropped to the current day.'''), # Close bug report 3539404 when 1.3.18 is released. Feature('''Add support for Thunderbird IMAP accounts that use NTLM authentication (typically Exchange accounts).'''), Feature('''When starting up, Task Coach checks for messages from the Task Coach developers. This allows us to reach all users for e.g. notifications on critical bugs or requests for support. Each message is displayed only once and the display of messages can be turned off completely. This feature will be used sparingly, of course.'''), Feature('''Added almost complete Belarusian translation thanks to Korney San.'''), Feature('''Allow for changing the font used in the description field of edit dialogs. The font can be changed in the editor tab of the preferences dialog. Patch supplied by Nicola Chiapolini.'''), ], featuresChanged=[ Feature('''When a task has no due date, instead of displaying "Infinite" for the time left in the task viewer, Task Coach now displays blank space.'''), ], ), Release('1.3.17', 'July 2, 2012', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Use the user-specified time format on Windows.''', '3530080'), Bug('''In the effort viewer, when calculating total effort for tasks in a certain period, one effort would be skipped.''', '3537707'), Bug('''When tracking effort for one task, don't show "Stop tracking multiple tasks" as the menu label for the "Stop tracking" menu item in the action menu.''', '3536577'), Bug('''On Windows, use a more recent Python27.dll to satisfy Secunia PSI.''', '3539139'), Bug('''Loading a big task file is now much faster.'''), Bug('''The calendar view would not react to changes to tasks.''', '3539402'), ], ), Release('1.3.16', 'June 16, 2012', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Fix a crash during iPhone synchronization if a category associated with a modified task has been deleted on the desktop.'''), Bug('''The stop/resume effort tracking button on the toolbar wasn't working correctly.''', '3529025'), Bug('''When tracking effort, the time spent in the effort viewer was not always updated.'''), ], ), Release('1.3.15', 'May 24, 2012', summary='''This is a mixed feature and bugfix release.''', bugsFixed=[ Bug('''On Windows 7, when the language is English (US), render times in the task viewer using AM/PM.'''), Bug('''On Mac OS X and Windows, don't crash when waking up from stand by.''', '3523648'), Bug('''Resetting task filters at midnight was not working properly.'''), Bug('''Faster opening of task files when there are many effort records.'''), ], featuresAdded=[ Feature('''Better word wrapping in calendar view.'''), ], ), Release('1.3.14', 'May 13, 2012', summary='''This is a mixed feature and bugfix release.''', bugsFixed=[ Bug('''Task Coach wouldn't start on Ubuntu 12.04.''', '3522305'), ], featuresAdded=[ Feature('''Added support for pipe as separator symbol when importing from CSV.''', 'http://uservoice.com/a/arHeO'), ], ), Release('1.3.13', 'April 14, 2012', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Translations couldn't be changed.''', '3516306'), Bug('''Exporting to CSV with dates and times to separate columns would fail if any of the tasks had a date before 1900.''', '3516964'), Bug('''Disable the checkbox for separate date and time columns in the CSV export dialog when the user picks a viewer that doesn't contain tasks.''', '3515241'), Bug('''Don't complain about a missing log handler in the log file on Windows.''', '3517705'), ], ), Release('1.3.12', 'April 9, 2012', summary='''This is a mixed feature and bugfix release.''', bugsFixed=[ Bug('''X session management is now disabled by default.''', '3502180'), Bug('''The percentage of tasks completed, active, etc. in the task statistics viewer (the pie chart) would be wrong when filtering categories.'''), Bug('''The category drop down menu for filtering on any or all categories didn't have effect.''', '3514880'), Bug('''Merging a file that would remove a subcategory linked to existing tasks or notes would not work.''', '3515503'), Bug('''Drag and drop was broken.''', '3514209'), Bug('''On Windows, when emailing items, new lines in the description would disappear.''', '3514288'), Bug('''Properly shut down the internal scheduler before closing Task Coach to prevent an exception.''', '3514651'), Bug('''Changing the task appearance in the preference dialog didn't work unless no tasks had been edited before changing the appearance.''', '3514174'), Bug('''Marking a recurring task complete from a reminder could throw an exception.''', '3514174'), ], featuresAdded=[ Feature('''The calendar view can now be printed as is.''', '3503258'), ], ), Release('1.3.11', 'March 31, 2012', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach wouldn't start due to a missing module.''', '3513392'), ], ), Release('1.3.10', 'March 30, 2012', summary='''This is a mixed feature and bugfix release.''', bugsFixed=[ Bug('''The statusbar counts of over due tasks, late tasks, etc. would include deleted tasks.''', '3501289'), ], featuresAdded=[ Feature('''Allow for importing reminder date/time when importing from a CSV file.''', 'http://uservoice.com/a/2xhV6'), Feature('''Allow for setting the first day of the week (either Sunday or Monday) in the preferences dialog (features tab).''', 'http://uservoice.com/a/81C1K'), ], ), Release('1.3.9', 'March 8, 2012', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''The drop down menu for the option 'Schedule each next recurrence based on' in the dates tab of the task edit dialog wasn't being enabled when the user turned on the recurrence of a task.''', '3496505'), Bug('''On Xubuntu, Task Coach would briefly show dialogs centered over the Task Coach main window before showing them on their destined location.''', '3496271'), Bug('''When exporting to CSV with separate date and time columns, don't write 31/12/9999 for empty dates.''', '3495429'), Bug('''On Linux, honor the LC_TIME setting.''', '3495925'), Bug('''After reading a task file with a deleted task that had a subtask with prerequisites, Task Coach would refuse to save the file.''', '3496986'), ], ), Release('1.3.8', 'February 25, 2012', summary='''This is a mixed feature and bugfix release.''', featuresAdded=[ Feature('''In task viewers, late tasks, due soon tasks, and over due tasks can be hidden. It was already possible to hide inactive tasks, active tasks, and completed tasks. This makes it possible to create a task viewer that only shows e.g. due soon tasks or late tasks, or any combination of task statuses.'''), Feature('''Add an option to disable session management on GTK. The XFCE session manager causes Task Coach to hang randomly on start.'''), Feature('''On Mac OS X and Linux (with espeak installed), reminders can be spoken. This can be turned on in the preferences dialog, on the task reminder tab.'''), ], bugsFixed=[ Bug('''Show a warning dialog when running XFCE4 to highlight the session management issues and tell the user about the option to disable it''', '3482752'), Bug('''Display times with a 12 hour clock (AM/PM) when the language is set to English (US).'''), Bug('''Don't change the selection when deleting or hiding items that are not selected. When adding a new item, select it. When adding a new sub item, also expand the parent item if necessary.''', '3484930'), Bug('''When using the Norsk translation on Linux (both Nynorsk and Bokmal), Task Coach would crash when displaying a date picker control. This is a bug in the underlying wxWidgets toolkit. Worked around by using another locale for dates and times when the language is Norsk.''', '1820497'), Bug('''On Mac OS X, the shortcut to email a task is now Shift-Cmd-M instead of Cmd-M (which is the system shortcut to minimize the active window).''', '3489341'), Bug('''Don't escape characters on Mac OS X when emailing a task.''', '3489341'), ], ), Release('1.3.7', 'February 3, 2012', summary='''This is a bug fix release.''', bugsFixed=[ Bug('''Paste as subitem didn't work for efforts.''', '3479734'), Bug('''Hiding inactive tasks would also hide some active tasks.''', '3479952'), Bug('''Setting the task font back to the default font in the preferences dialog wouldn't work.'''), Bug('''Put a little bit of white space to the right of the priority column in the task viewer to separate the numbers from the scroll bar.''', '3479686'), Bug('''Disable the Anonymize menu item if there is no task file.''', '3482373'), Bug('''After removing an actual start date of a task with effort and saving and opening the task file, the task would still have an actual start date (based on the earliest effort).''', '3478684', '3479444'), Bug('''Marking an inactive task active wouldn't properly update the task icon from grey to blue.''', '3479444'), Bug('''Exporting to iCalendar wouldn't work if the subject or description had non-ASCII characters.''', '3483124'), ], featuresRemoved=[ Feature('''The more complex filtering options for hiding tasks have been removed. The complexity was causing bugs.'''), ], ), Release('1.3.6', 'January 24, 2012', summary='''This is a bug fix release.''', bugsFixed=[ Bug('''The link on the website for downloading sources pointed to the iOS downloads.'''), Bug('''Task Coach couldn't deal with circular dependencies between tasks.''', '3477762', '3477637'), Bug('''The default actual start date and time couldn't be set in the preferences.''', '3478747'), ] ), Release('1.3.5', 'January 22, 2012', summary='''This is a mixed feature and bug fix release.''', bugsFixed=[ Bug('''After a reminder of a recurring task had been dismissed, Task Coach would not create a new reminder when recurring the task.''', '3469217'), Bug('''When the user is not using a translation, still set the locale so that the proper formatting for dates and numbers is used.''', '3091934'), Bug('''Sorting case sensitive didn't work.'''), Bug('''Categories of notes belonging to tasks and categories weren't saved.''', '3474487'), Bug('''On OpenSuse, Task Coach would crash when changing the width of columns.'''), ], featuresAdded=[ Feature('''Note categories are now synced as well (SyncML)'''), Feature('''Add "actual start date" attribute to tasks.'''), Feature('''Add toolbar buttons and menu items for marking tasks inactive, active and completed.'''), Feature('''When exporting to iCal, include percentage complete of a task in the exported data.'''), ], featuresChanged=[ Feature('''Rename "start date" to "planned start date" to enable adding a separate "actual start date" attribute to tasks.'''), ], websiteChanges=[ Website('''Redesigned website using Twitter Bootstrap.''', 'index.html'), ], ), Release('1.3.4', 'December 25, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Changing the color and font of tasks in the preferences dialog didn't work.'''), Bug('''In Spanish, showing reminders wouldn't work.''', '3459524'), Bug('''Fix a small translation error in the French translation.''', '3459028'), Bug('''Changes on a newly created template in the template editor were discarded.'''), Bug('''Help text referred to "Add template", but the menu item is called "Import template".''', '3462367'), Bug('''On Mac OS X, associate .tsk files with Task Coach and let the Finder use the Task Coach icon for .tsk files.''', '3462366'), Bug('''On Linux without libXss installed (seen on Fedora 16), Task Coach would fail to start. Fixed by adding libXss as an explicit dependency to the RPM-package.''', '3463044'), Bug('''A lock created under Mac OS X Lion on a network share could not be broken on another OS.'''), Bug('''Trying to save to a disconnected network share/USB drive would fail on Windows.''', '3462383'), ], featuresAdded=[ Feature('''Provide for an option to always round effort up to the next increment in the effort viewer.''', 'http://uservoice.com/a/5Hbrf'), ], ), Release('1.3.3', 'December 13, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''On Linux, after every edit of a task, the undo history would contain a "recurrence edited" action even though the recurrence was not changed.''', '3453625'), Bug('''On Ubuntu, the date controls in the effort edit dialog would be invisible.''', '3452446'), Bug('''On Windows, when users try to save the task file in a folder where they don't have permission, Task Coach would not give a proper warning.'''), Bug('''When editing multiple items at once, show all descriptions in the description field for easier editing and/or copying.''', '3446417'), ], ), Release('1.3.2', 'December 5, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''When a subject contained an ampersand (&), the ampersand would not be shown in menu's where the subject is used.'''), Bug('''When creating new subtasks, they would always be inactive.''', '3446309'), Bug('''Closing task dialogs was very slow with a large task file.'''), Bug('''Setting a budget to zero would make it impossible to save the task file.''', '3449423'), Bug('''When the subject is too long to be displayed in the editor, display its start instead of its end.''', '3433481'), ], featuresAdded=[ Feature('''Rounding of effort in effort viewers.''', 'http://uservoice.com/a/6IzRQ'), ], ), Release('1.3.1', 'November 27, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Don't turn off the start date on new tasks when users have indicated in the preferences that they want a default start date.''', '3440634'), Bug('''The "Start tracking from last effort" button in the effort dialog didn't work.''', '3440794'), Bug('''"View->Tree options->Collapse all items" did only collapse top level items.''', '3441180'), Bug('''The language choice control in the preferences dialog would always show "Let the system determine the language", no matter what language the user had picked before.''', '3441456'), Bug('''Allow for flat pie charts, because reading data from flat pie charts is easier than from 3D pie charts.''', '3441469'), Bug('''On Windows, the Edit menu could become very wide if the user would edit a long subject.''', ' 3441474'), Bug('''When the user edits the reminder date and time and it is in the past, don't fire the reminder immediately, but wait a minute to give the user a change to finish changing the reminder date and time into a future date and time.''','3441442'), Bug('''Make sure the edit dialogs are by default big enough to show all controls.''', '3441783'), Bug('''On Linux without libXss installed (seen on Ubuntu 11.10), Task Coach would fail to start. Fixed by adding libXss as an explicit dependency to the Debian (.deb) package.'''), ], featuresAdded=[ Feature('''The effort dialog now has a button to set the stop date and time of the effort to the current date and time.'''), Feature('''Allow for changing the angle of the pie charts via a slider in the toolbar of the task statistics viewer.'''), Feature('''Allow for 6 minutes between effort start and stop times, in addition to 5, 10, 15, etc. See the features tab in the preferences dialog.''', 'http://uservoice.com/a/3nnfc'), Feature('''Dependencies can now be set using drag and drop.'''), ], ), Release('1.3.0', 'November 20, 2011', summary='''This release makes all edits done in dialogs immediate.''', featuresAdded=[ Feature('''Item edit dialogs make changes immediately, thus no need for OK and Cancel buttons anymore.''', 'http://uservoice.com/a/oNbcq'), Feature('''If there is no user input for some (configurable) time, Task coach now asks what to do with tracked efforts when the user comes back.''', 'http://uservoice.com/a/4656L'), ], bugsFixed=[ Bug('''It was and is possible to open multiple edit dialogs for the same item. With earlier releases of Task Coach, the last edit dialog closed would overwrite changes made with edit dialogs that were closed earlier. With the new edit dialog functionality introduced in this release, changes are propagated immediately to all open dialogs. This will prevent overwriting changes made in other dialogs.''', '1152561'), Bug('''Don't close the edit dialog when dragging and dropping an item.''', '3424138'), Bug('''When editing start or due date inline, Task Coach would ignore the preference for keeping the time between the two dates constant.'''), Bug('''Prevent an exception when opening the View menu when the task statistics viewer is selected.'''), Bug('''The Ctrl-F shortcut didn't work in most viewers.''', '3438256'), Bug('''The export to HTML and CSV dialog didn't work on Windows XP.''', '3440438'), Bug('''On Windows, use wider date and time controls when the user is running the display with a higher DPI-setting.''', '3439774'), ], ), Release('1.2.31', 'November 13, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Immediately update the number of tasks completed in the status bar of the task viewer when the user marks a task completed.''', '3185805'), Bug('''When adding new tasks, Task Coach would first show them briefly as inactive before showing them as active.''', '3085362'), Bug('''Only "preset" dates on new tasks.'''), Bug('''When changing a date/time inline, hitting enter in the date part of the control would close the inline control, but not change the date.''', '3428503'), Bug('''The inline edit controls for dates/times didn't use the preferences for start and end of working day.''', '3431160'), Bug('''Using drag and drop to change dates in the calendar view would produce erroneous results in some configurations.''', '3428525'), Bug('''In some configurations, some hours would not be drawn in the calendar view in vertical mode.''', '3428524'), ], featuresAdded=[ Feature('''When exporting to CSV, dates and times can optionally be put in separate columns.'''), Feature('''When exporting to CSV and HTML, the columns to be exported can be changed in the export dialog.'''), Feature('''Simple task statistics viewer added that shows a pie chart of the distribution of task states.'''), ], ), Release('1.2.30', 'October 23, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Better explanation of the automatic import and export of Todo.txt format in the preferences dialog.''', '3418906'), Bug('''The task viewer in list mode now also shows the categories, prerequisites and dependencies inherited from parent tasks, between parentheses. In addition, the inherited categories, prerequisites or dependencies are taken into account when sorting by categories, prerequisites or dependencies.''', '3414914'), Bug('''Don't reset the percentage complete to 0 when the user changes it from 100 to some other percentage less than 100.'''), Bug('''Fix a memory leak when opening edit dialogs.''') ], featuresAdded=[ Feature('''The task viewer in list mode now also shows the categories, prerequisites and dependencies inherited from parent tasks, between parentheses. In addition, the inherited categories, prerequisites or dependencies are taken into account when sorting by categories, prerequisites or dependencies.''', 'http://uservoice.com/a/ksD1q'), Feature('''Percentage complete, hourly fee and fixed fee of tasks can be edited in place.'''), ], ), Release('1.2.29', 'October 3, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''If auto importing of Todo.txt files was turned on, but there was no Todo.txt file available for importing, saving would fail.''', '3410648'), Bug('''When the priority field gets focus, select all priority digits so the user can simply type a new number to overwrite the previous one.''', '3411384'), Bug('''When showing effort in detail mode, Task Coach would only consider the start of a period to decide whether to hide the period as a repeated period. Now it considers both the start and the end date and time.'''), Bug('''When editing multiple tasks at the same time, changing the priority would not automatically check the priority checkbox.''', '3414423'), Bug('''Don't reorder the contents of the task file randomly when saving the task file. This makes it possible to easily see the differences between versions of a task file using diff.''', '3412300'), ], ), Release('1.2.28', 'September 18, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Task Coach would not work correctly with dates before 1900.'''), Bug('''When recovering from an error in the TaskCoach.ini file, get the default settings from the right section.''', '3404024'), Bug('''When opening a URL fails, show an error message dialog.'''), Bug('''Task Coach would crash when editing a task/category/etc on some versions of wxPython.'''), Bug('''Adding a subtask without a due date would reset its parent's due date.''', '3405053'), Bug('''Using the Delete key when editing the priority inline would delete the task on Windows.''', '3400086'), Bug('''On Windows, SyncML couldn't be turned on.''', '3406653'), Bug('''When adding a new (recurring) subtask to a parent task, push back the start date of the parent if necessary.''', '3409716'), Bug('''On Mac OS X Tiger, whenever trying to give focus to the search control focus would return to the viewer immediately, making searching impossible.''', '3410268'), ], featuresAdded=[ Feature('''The SyncML password is now stored encrypted in the system keychain, if available.'''), Feature('''Add task subject to the reminder dialog window title so that it's easier to find a particular reminder when cycling through windows with Alt-Tab.''', 'http://uservoice.com/a/au6wa'), Feature('''Allow for dragging and dropping multiple items (tasks, notes, etc.) at once. Patch provided by Kirill Müller.''', 'http://uservoice.com/a/hledQ'), ] ), Release('1.2.27', 'August 28, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''When importing a CVS file, Task Coach would not always guess the day/month order correctly. It is now possible to specify whether days or months come first in date columns.''' ), Bug('''Unchecking an already checked mutually exclusive subcategory would uncheck it, but not change the filtering.''', '3377145'), Bug('''The calendar configuration dialog wouldn't open.''', '3395689'), Bug('''Saving could fail after a reminder was first snoozed and then later the reminder dialog was closed without snoozing.''', '3397920'), Bug('''Using the Delete key when editing the priority inline would delete the task.''', '3400086'), Bug('''Using the Enter key when editing the priority inline would not accept the changes on Mac OS X.'''), Bug('''Fix issues in Italian translation.''', '3398600'), ], ), Release('1.2.26', 'August 20, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Checking an already checked mutually exclusive subcategory now unchecks it.''', '3377145'), Bug('''Task Coach would not start on PPC Macs.''', '3388666'), Bug('''Saving a task as template would not work if the subject or description contains non-ascii characters'''), Bug('''Fix case insensitive searching with non-ascii languages.''', '3395268'), Bug('''The recent searches menu in the search control wasn't working properly on Mac OS X.''') ], featuresAdded=[ Feature('''Importing and exporting of Todo.txt format task files. Todo.txt is an open source todo list manager that works with plain text files. Todo.txt Touch is a version of Todo.txt for the Android platform, that syncs with Dropbox. By exporting your tasks to a todo.txt file in your Dropbox folder, you can then edit them on your Android device with Todo.txt Touch. See the help contents for more information.''', 'http://uservoice.com/a/6Z54H', 'http://uservoice.com/a/ceNES'), Feature('''Automatic importing and/or exporting on every save. This can be turned on in the preferences dialog. Currently only possible for the Todo.txt format.'''), Feature('''When turning on the stop date and time in the effort edit dialog, set the date and time to the current date and time.''', 'http://uservoice.com/a/iFkds'), Feature('''When editing templates, one can now also edit subtasks.'''), Feature('''Remember the last visited path when choosing a file attachment.''', 'http://uservoice.com/a/jz5dE'), Feature('''Support times in addition to dates when importing from CSV.''') ], featuresChanged=[ Feature('''The maximum of the number of hours that tasks are considered "due soon" is now a big number instead of a mere 90.''', 'http://uservoice.com/a/dVIBF') ] ), Release('1.2.25', 'August 8, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''The anonymize function wouldn't give a notification after saving the file.'''), Bug('''Refresh subtask appearance when moving it to a different parent task.'''), Bug('''Indentation of categories with and without subcategories in the category viewer was slightly different.''', '3345002'), Bug('''Windows would appear on the wrong monitor on Windows 7.''', '3370403'), Bug('''On Windows 7, the task view would flicker every second.''', '3354402'), Bug('''On Mac OS X, Task Coach would hang when both the splash screen and the "file locked" dialog are displayed.''', '3383050'), Bug('''Startup even when reading one of the templates fails.''', '3386296'), Bug('''Task Coach would sometimes crash on startup on Linux.'''), ], featuresAdded=[ Feature('''Users can choose default (relative) dates and times for tasks in the preference dialog. This allows for e.g. automatically setting a reminder the next day.''', 'http://uservoice.com/a/g9xpy'), Feature('''Faster saving.'''), Feature('''Preset common SyncML servers (MemoToo)'''), Feature('''The user can choose to use the selected snooze time in the reminder dialog as default snooze time for future reminders.'''), Feature('''Support drag and drop of email messages from local folders in Thunderbird.'''), Feature('''Support drag and drop of email messages from Claws Mail. Patch provided by Tobias Gradl.'''), ] ), Release('1.2.24', 'July 17, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Synchronizing with an iDevice could change the whole UI font.'''), Bug('''Drag and drop from Thunderbird would not work in some circumstances.'''), Bug('''When recurring tasks with a snoozed reminder, use the original reminder date and time as basis for the next reminder, instead of the snoozed reminder.''', '2942198'), Bug('''In-place editing of reminders didn't work.''', '3361971'), Bug('''Completed tasks with a start date would not show up in the calendar.''') ], featuresChanged=[ Feature('''New "Anonymize" item in the Help menu. This saves an anonymized copy of all data from a task file in order to safely attach it to a bug report.'''), Feature('''Recurring tasks can recur based on the original start and due date (as was the only option until now) or based on the last completion date.''', 'http://uservoice.com/a/d3n3g') ] ), Release('1.2.23', 'July 7, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach would fail on parsing old templates, causing it not to start properly.''') ] ), Release('1.2.22', 'July 2, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Properly open task files with email attachments that have a non-ascii subject.''', '3333730') ], featuresChanged=[ Feature('''You can set a default snooze time in the preferences that is used in the reminder dialog as the default suggestion for the snooze time. If you use Growl or Snarl, the default snooze time is added to the reminder after the reminder fires.''') ] ), Release('1.2.21', 'June 25, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Prevent exception messages in log file (Windows) or on command line (Linux).''', '3315358', '3316220', '3324330'), Bug('''Properly decode non-ascii email subject headers.''', '3311272'), Bug('''Creating a template from a task would not work any more.''', '3317048'), Bug('''Unplugging a monitor while Task Coach was running would cause the dialogs to always open in the top left corner on Windows.'''), ], featuresAdded=[ Feature('''Start, due, completion, and reminder date and time of tasks can be edited in-place when the relevant column is visible.''') ] ), Release('1.2.20', 'June 10, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Task Coach tried to use Python 2.5 on Ubuntu.''', '3309089', '3309317'), Bug('''The total number of effort records displayed in the status bar of an effort viewer would be incorrect when the effort viewer was showing aggregated effort (per day, per week or per month).'''), Bug('''When hiding completed tasks and showing tasks belonging to a specific category (say C), Task Coach would show a task even though it didn't belong to that category if that task had completed subtasks belonging to category C.''', '3309006'), Bug('''Floating and then closing the task viewer didn't work.''', '3313199'), ], featuresAdded=[ Feature('''Descriptions of tasks, notes and categories can be edited in-place when the description column is visible. Priority of tasks can be edited in-place when the priority column is visible. Budget of tasks can be edited in-place when the budget column is visible.'''), Feature('''Basic editing (dates, subject) of task templates.'''), Feature('''Session management on Linux is back.''', '2929786'), ], ), Release('1.2.19', 'May 29, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Editing multiple items would hang Task Coach.''' ,'3305844'), Bug('''Changing the task of an effort record would make it invisible.''', '3304940'), Bug('''The keyboard shortcut for adding effort (Ctrl-E) wouldn't work in edit dialogs.''', '3306827'), Bug('''Closing Task Coach with a square task viewer open caused exceptions in the log file.''', '3307836'), Bug('''Drag and drop email from Thunderbird, PortableApps edition, didn't work.''', '3058781'), Bug('''On Mac OS X, the main window would grow 11 pixels in height at each launch.'''), Bug('''On Mac OS X, the editor dialogs would shrink a little each time they were opened.'''), ], featuresAdded=[ Feature('''The default foreground color, background color, font and icon of active, inactive, completed, over due and due soon tasks can be changed in the preferences.''', 'http://uservoice.com/a/nLMgZ'), Feature('''The way start and due dates are tied together when changing one of them is now configurable.'''), Feature('''Add percentage complete to CSV import fields.'''), ], distributionsChanged=[ Distribution('''Removed support for Fedora 13.''') ] ), Release('1.2.18', 'May 21, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Make sure long menu texts don't overlap the keyboard shortcut.'''), Bug('''CSV import would crash on Mac OS X if the number of fields wasn't constant.'''), Bug('''When starting or stopping an effort, the task's icon in the calendar viewer would not change.'''), Bug('''Session management wouldn't work on XFCE.'''), Bug('''Start up even if the TaskCoach.ini file contains garbage.''', '3299850', '3300722'), Bug('''Don't crash if there is no session manager on Linux''', '3300643'), Bug('''Give the import dialog a proper window title bar.'''), Bug('''Going back and then forward in the CSV import wizard didn't work.'''), Bug('''Task Coach wouldn't keep the inline subject edit control open in the task viewer when tracking effort.''', '3301562'), ], featuresAdded=[ Feature('''Open tracked tasks without looking them up using the Actions->Edit tracked task menu item (Shift-Alt-T).''', 'http://uservoice.com/a/itBB5'), Feature('''Effort tracking can be started for inactive/future tasks. Doing so sets the start date and time of the task to the current date and time.''', 'http://uservoice.com/a/oyhL7'), Feature('''Show name of the current task file in the system tray tooltip window.''', 'http://uservoice.com/a/959Qc'), Feature('''Tabs in the edit dialogs can be dragged and dropped to create any layout the user may want.'''), Feature('''CSV files may also have colons or semicolons as separators.'''), Feature('''It is possible to select which rows to import from a CSV file.'''), Feature('''The CSV import wizard tries to match column headers from the CSV file to task attributes.'''), Feature('''The CSV import will reuse existing categories if the names match.'''), ], featuresRemoved=[ Feature('''Session management for X is temporarily removed, until we can fix the occasional crashes associated with it.''') ] ), Release('1.2.17', 'May 5, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Make sure one of the viewers is selected in the export to iCalendar dialog.'''), Bug('''Properly update the icon of a task with subtasks when adding it to a category with an icon.''', '3295077'), Bug('''The calendar view would cause spurious errors on Windows.''', '3294878'), Bug('''Use the actual system font on Mac OS X and Windows in the tree and list viewers.''', '3295070'), Bug('''Dutch translation used Ctrl-H as shortcut for both help and increase priority. Increase priority is now Ctrl-I. Maximize priority is Shift-Ctrl-I, for consistency.''', '3296141'), Bug('''The Ctrl-Enter keyboard shortcut for marking a task completed wasn't working in the French translation.''', '3293786'), Bug('''When quitting Task Coach in minimized mode, make sure the main window is minimized the next session and not completely hidden.''', '3296144'), Bug('''Packages of the previous release did not install correctly on some Linux distributions due to a non standard version number in the package (RPM or Deb).''', '3294852', '3297345'), Bug('''For tasks with a non-default icon, still show the clock icon when tracking effort.''', '3085094'), Bug('''The width of the period column in the effort viewer would not be reused across sessions.''', '3296303'), Bug('''Fix session management on some Linux distributions. Also automatically restart Task Coach when reopening the session.''', '3296733'), Bug('''Category mappings in CSV import would not work'''), Bug('''On Windows, rearranging the order of the templates would have no effect.''', '3297913') ], featuresAdded=[ Feature('''When importing a CSV file, let the user decide if quote characters are escaped by doubling them or escaping them with another character.'''), ] ), Release('1.2.16', 'April 28, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Installing as a non-admin user on Mac OS X wouldn't work.''', '3288682'), Bug('''Don't crash when the SESSION_MANAGER environment variable is not set (Linux).''', '3292509'), Bug('''Update the task viewer every minute when the time left column is shown.'''), Bug('''Task Coach would crash after 1 minute on XFCE.''', '3292509'), Bug('''When multiple effort viewers are open, correctly remember how effort is grouped in each effort viewer across sessions.''', '3294304') ], featuresAdded=[ Feature('''Added a "Check for update" menu item to the help menu.''', 'http://uservoice.com/a/dwNJ0'), Feature('''Allow for exporting to HTML with CSS style information included in the HTML file.''', 'http://uservoice.com/a/i1LqL') ] ), Release('1.2.15', 'April 23, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''When deleting items, correctly move the selection.''', '3056999'), Bug('''Saving would fail when the task file contains deleted tasks with prerequisite tasks.''', '3290163', '3290300'), Bug('''Try to guess the correct encoding when dragging and dropping email messages from Outlook.''', '3288820') ], featuresAdded=[ Feature('''Added a "Help improve translations" menu item to the help menu.''', 'http://uservoice.com/a/468yX'), Feature('''Remember size and position of edit dialogs.''', 'http://uservoice.com/a/70ZTj'), Feature('''Start effort tracking from the reminder dialog.''', 'http://uservoice.com/a/f4UUt') ] ), Release('1.2.14', 'April 17, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''None of the translations were working.''', '3283447'), Bug('''Delete key was not working properly in the search box.''', '3286497') ], featuresAdded=[ Feature('''More extensive help menu.'''), Feature('''Import from CSV now includes budget, fixed fee and hourly fee fields.'''), Feature('''Task Coach now supports a limited form of session management under Windows and Linux; pending changes are automatically saved when the user logs out.'''), ] ), Release('1.2.13', 'April 9, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''The notes section was missing from the help contents.''', '3241219'), Bug('''Mark subtasks of tasks that have uncompleted prerequisites as inactive (grey).''', '3237286'), Bug('''In the setup script, don't assume Mac OS X when the operating system isn't Linux or Windows. There's also the possibility the user is using BSD.''', '3236769'), Bug('''Don't force users to accept the license since the license doesn't actually require users to accept it (Windows).''', '3247643'), Bug('''Upon startup, effort viewers would always show the column header popup menu for detail mode, even when the effort viewer would be in aggregate mode (i.e. effort aggregated per day, per week or per month).'''), Bug('''Ask the user for confirmation before overwriting existing files.''', '2794041'), Bug('''When adding an item, automatically select it. When removing an item with a parent, automatically select it. Make sure keyboard navigation (up and down) correctly moves the selection after marking a task completed.''', '3056999') ], featuresAdded=[ Feature('''Allow for filtering by category via the View->Filter menu. This also adds a menu item for showing all items regardless of category, with Ctrl-R (R for Reset) as keyboard shortcut.'''), Feature('''When possible, try to keep the task duration when changing its start date.'''), Feature('''Tasks in the calendar view can now be dragged and dropped and resized to change their dates.'''), ], featuresChanged=[ Feature('''For consistency with the menu item for resetting category filters, the keyboard shortcut for resetting all filters is now Shift-Ctrl-R (R for Reset).''') ] ), Release('1.2.12', 'March 20, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Bring back the 'Stop tracking effort' menu item in the context menu of task and effort viewers and make menu's more consistent.''', '3206702'), Bug('''Added keyboard shortcuts for adding categories and notes.'''), Bug('''The Delete key wasn't working in text controls.''', '3206464', '3213964'), Bug('''The Enter key wasn't working in text controls on Mac OS X.''', '3223714'), Bug('''The Enter key would stop working after opening and closing a new viewer.''', '3206366'), Bug('''Make Ctrl-Z (undo), Ctrl-Y (redo), Enter (edit) and Delete work in edit dialogs.'''), Bug('''Fixed a performance issue with the calendar viewer when tracking efforts.'''), Bug('''Don't clear the clipboard after pasting an item, so that an item can be pasted multiple times.''', '3198880 '), Bug('''Don't try to add deleted prerequisite tasks when loading the task file.''', '3219001') ], featuresAdded=[ Feature('''Provide more options for filtering completed, due and inactive tasks.''', 'http://uservoice.com/a/eBFSz') ] ), Release('1.2.11', 'March 10, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Sometimes the total effort per period displayed in the effort viewer would be wrong.''', '3146576'), Bug('''On Windows, the icons of the undo and redo menu items would disappear after their first use.'''), Bug('''Correctly remember the main window position when closing Task Coach while the main window is minimized.''', '3199529') ], featuresAdded=[ Feature('''Import tasks from CSV file.'''), Feature('''In addition to hiding all completed tasks, it is now also possible to hide completed tasks but keep recently completed tasks visible for a limited amount of time. This can be done by hiding tasks that were completed before today, before yesterday, before the current week or before the current month, using the View->Filter menu.''', 'http://uservoice.com/a/lZ8ss'), Feature('''In addition to hiding all future tasks, it is now also possible to hide future tasks but still show future tasks that will become active in a short while. This can be done by hiding future tasks that start today, tomorrow, next week or next month, using the View->Filter menu.''') ], featuresChanged=[ Feature('''Keyboard shortcut improvements: On Windows and Linux, the keyboard shortcut for adding a task is now simply Insert. A new subtask can be added with Shift-Insert. On Mac OS X, the Insert shortcut doesn't work for some reason so there a new task can be added with Cmd-N and a new subtask with Shift-Cmd-N. The Delete keyboard shortcut works for all viewers. Notes can be added to tasks and categories with the Ctrl-B keyboard shortcut. Tasks and notes can be mailed with the Ctrl-M keyboard shortcut. Attachments can be added with the Shift-Ctrl-A keyboard shortcut and all attachments of an item can be opened with the Shift-Ctrl-O keyboard shortcut.'''), Feature('''Rearranged the menu's: Instead of a Task, Category, Effort and Note menu, there are now a New menu for creating new items and an Actions menu for applying actions such as marking a task completed, mailing an item and starting and stopping effort tracking. The Edit and Delete menu items are now placed in the Edit menu.''' ) ], distributionsChanged=[ Distribution('''Task Coach was added to the Ports collection of FreeBSD thanks to Kevin Lo. See the download section of the Task Coach website.''') ] ), Release('1.2.10', 'February 20, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Column header popup menu's didn't work.''', '3175083'), Bug('''The stop effort tracking button on the toolbar of effort viewers wasn't working.'''), Bug('''The viewer background color would not obey the global user setting.''', 'http://uservoice.com/a/g2CST'), Bug('''Task files wouldn't specify the encoding in the XML header, making it harder to process them with other tools.''', '3182504'), Bug('''In the calendar viewer, use the completion date as end date when a task is completed.''', '3183086') ], featuresAdded=[ Feature('''Efforts are filtered by categories like tasks and notes.'''), Feature('''Pausing effort tracking: clicking the stop tracking effort button when no effort is being tracked will resume tracking for the task that was last being tracked.''', 'http://uservoice.com/a/cXLhb'), Feature('''Start tracking effort and stop/resume tracking effort have keyboard shortcuts: Ctrl-T for start tracking effort and Shift-Ctrl-T for stop/resume tracking effort.''', 'http://uservoice.com/a/9hhaE'), Feature('''Clear all filters via a keyboard shortcut: Shift-Ctrl-F''', 'http://uservoice.com/a/4Tt4T'), Feature('''Support for CRAM-MD5 authentication when dropping IMAP mails from Thunderbird.'''), ], featuresChanged=[ Feature('''Show left/right scroll buttons in notebook controls so that it is more clear for users that there might be more tabs in the notebook than currently visible. A drop down list of all tabs in the notebook can still be accessed using the Ctrl-Tab shortcut.''') ] ), Release('1.2.9', 'February 5, 2011', summary='''This is a mixed bugfix and feature release.''', bugsFixed=[ Bug('''Improve keyboard navigation between viewers.'''), Bug('''Accept dropped mail messages from Outlook with non-ascii characters.''', '3172736'), Bug('''Open editor on the same display as the main window on multi-monitor setups.''', '3166563'), Bug('''The shortcut for "Decrease priority" (Ctrl-D) wasn't working in the Spanish translation.''', '3165234'), Bug('''Prevent the tooltip overlapping popup menus on Linux.''', '2989198'), Bug('''Dropping IMAP e-mails from Thunderbird would not work on some configurations.''') ], featuresAdded=[ Feature('''Hitting Ctrl-F when a viewer has keyboard focus moves keyboard focus to the toolbar search control. Hitting Escape when the toolbar search control has keyboard focus moves the focus back to the viewer. Hitting Ctrl-Down when the toolbar search control has keyboard focus pops up the search control menu.''', 'http://uservoice.com/a/6fW73'), Feature('''Added overview of keyboard shortcuts to help information.'''), Feature('''The calendar viewer configuration has been moved to its own dialog. Add more configurable attributes: highlight color, show now, font size.'''), Feature('''Effort viewers can be sorted ascending and descending.'''), Feature('''Edit, preferences and help dialogs have maximize and minimize buttons.''', 'http://uservoice.com/a/mymqf') ] ), Release('1.2.8', 'January 22, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach wouldn't open task files when a task viewer was sorted by reminder date/time.''', '3153541'), Bug('''Correctly fix drag-and-drop from Thunderbird.''', '2916405', '3058781'), Bug('''Correctly keep track of selected items when using shift-click to select a range of items so that the right items are exported when the user exports a selection.''', '3154036'), Bug('''Task Coach would crash at launch if TaskCoach.ini could not be loaded.'''), Bug('''When marking the only subtask of a task uncompleted, the subtask would stay green.''', '3151018'), Bug('''On Windows 7 and Vista, the application icon wouldn't show up correctly.''', '3158445'), Bug('''Correctly use mail message subject when dropping a mail message from Outlook.''', '2806617') ], featuresAdded=[ Feature('''The effort edit dialog now has a "Edit task" button next to the task selection drop down to quickly open the effort's task.'''), Feature('''The effort viewer now has "Start tracking effort" and "Stop tracking effort" buttons on the toolbar. The "Start tracking effort" starts tracking effort for the task(s) of the selected effort(s). This enables you to quickly resume tracking the most recent task by selecting the topmost effort record and hit the "Start tracking effort" button. The "Stop tracking effort" button simply does what it says and was added for consistencies sake.''', 'http://uservoice.com/a/fHSAX') ], ), Release('1.2.7', 'January 8, 2011', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Performance improvements: faster closing of task dialogs, faster item selection, no redraw of task viewers every minute.'''), Bug('''When removing all efforts, correctly update the effort viewer.''', '3125553'), Bug('''When editing a task that already has prerequisite tasks, don't reset the prerequisites.''', '3137055'), Bug('''Huge performance fix in the calendar viewer.'''), Bug('''When double clicking a column header border don't set the column width to zero.'''), Bug('''Process drag-and-drops from Thunderbird.''', '2916405', '3058781'), Bug('''When canceling the save dialog, the task file would be saved with an empty filename.''', '3152160') ], featuresAdded=[ Feature('''Always highlight the current day in the calendar view.'''), Feature('''Show current time in calendar view.'''), ] ), Release('1.2.6', 'December 5, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Avoid the "Pas de sujet" bug when dropping a mail from Outlook on a French Windows OS.'''), Bug('''Don't crash when the note viewer is open.''', '3122115'), Bug('''Don't crash when the square task viewer is open.'''), Bug('''When double clicking the latest effort, don't open the previous one, but the one double clicked.''', '3121403'), Bug('''When searching in the effort viewer with "Include subitems" turned on, actually include effort for subtasks in the search results.''', '3124833'), Bug('''Some more performance improvements.''') ] ), Release('1.2.5', 'November 28, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Fixed another memory leak in the calendar view.''', '3108959'), Bug('''Some performance improvements.''', '3117375'), Bug('''Don't throw exception when Snarl is not available.''', '3119740') ] ), Release('1.2.4', 'November 21, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''On Windows, make the installer check for running instances of Task Coach before installing a new version. The installer is able to detect running instances of Task Coach release 1.2.4 or newer.''', '3109658'), Bug('''Mass editing of items wouldn't work after selecting items with Ctrl-A (select all).''', '3108176'), Bug('''Bring back total time spent and total revenue columns in the effort viewer.''', '3112807'), Bug('''Fixed a memory leak in the calendar viewer.''', '3108959'), ] ), Release('1.2.3', 'November 14, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Show clock icon for tracked tasks in the task viewer.''', '3106158'), Bug('''File => Save task as template didn't work any more.'''), Bug('''Hide parent task when all of its subtasks are hidden by filtered categories and the parent task itself doesn't belong to the filtered categories.'''), Bug('''Don't throw exception when end of working day is 24.''', '3105496'), Bug('''When recurring a task, make sure its start date stays before its due date. Patch provided by Svetoslav Trochev.'''), Bug('''The edit templates dialog was unresponsive under MS Windows.''', '3106221'), Bug('''When setting the column width to the minimum in horizontal monthly view, switching to weekly view would hang Task Coach and prevent it from launching again.''', '3091151') ], featuresAdded=[ Feature('''Updated translations and added partial Occitan and Papiamento translations.''') ] ), Release('1.2.2', 'November 6, 2010', summary='''This release adds a template edit dialog and fixes some bugs.''', featuresAdded=[ Feature('''Don't ask for a name when creating a new template. There is now a template edit dialog; one can only delete templates though.''', 'http://uservoice.com/a/4Ntz6'), Feature('''Allow the user to change the ordering of templates'''), ], bugsFixed=[ Bug('''Type indicator of attachments in the attachment tab of edit dialogs was missing.''', '3087177'), Bug('''After editing the subject of a composite task in the task list viewer (e.g. changing 'Project A' into 'Project B'), also update the subjects of the subtasks (e.g. 'Project A -> Task 1' should update to 'Project B -> Task 1').'''), Bug('''When editing a subject of a subtask in the task list viewer inline, don't include the subjects of its ancestors in the text control.'''), Bug('''When filtering on categories, don't show tasks whose subtasks (that belong to the filtered categories) are all hidden by another filter.'''), Bug('''When double clicking in the calendar viewer (when it is in vertical month mode) to create a new task, set the due date of the new task to the end of the day. This makes sure the new task is visible in the calendar after closing the task edit dialog.''', '3103011'), Bug('''Include end of work day as option when selecting a time in the effort edit dialog.''', 'http://uservoice.com/a/380R8'), Bug('''Remember column widths in the category viewer across sessions.''') ], distributionsChanged=[ Distribution('''Added support for Fedora 14.''', '3101814') ] ), Release('1.2.1', 'October 16, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Don't refuse to open a task file when it is sorted on a "total" column.''', '3085056'), Bug('''Don't expand tasks in the prerequisite tab when opening a task dialog, it's really slow.''', '3085358'), Bug('''Always display the month name in the horizontal monthly calendar view.''', '3062505'), Bug('''Allow the user to resize columns in horizontal calendar view''', '3062505'), Bug('''Reset percentage complete when recurring a task.'''), Bug('''When using relative paths for attachments, attachments couldn't be opened from the attachments tab in the edit dialog.''', '3087177') ] ), Release('1.2.0', 'October 9, 2010', summary='''This release adds task dependencies.''', featuresAdded=[ Feature('''Tasks can have one or more prerequisite tasks. As long as a task has one or more prerequisite tasks that are not completed, the dependent task is inactive. The task tree viewer has two extra columns, one for showing prerequisite tasks and one for showing dependent tasks. Prerequisite tasks can be selected in the Prerequisites tab of the task edit dialog. Dependent tasks cannot be selected explicitly but are simply derived from the prerequisite tasks. For example, if task B can be started only after task A has been completed, task A is called a prerequisite for task B and task B is called a dependency of task A.''') ], featuresChanged=[ Feature('''To simplify the application and reduce the number of columns all "total" and "overall" columns have been removed. For composite items that have children, the tree viewers show the "total" or "overall" value when the item is collapsed and the individual value when the item is not collapsed. An example may help: suppose task A has a budget of 20 hours and subtask A1 has a budget of 10 hours. In the task viewer in tree mode, the budget column shows 20 hours for task A when it is expanded and 30 hours when it is collapsed. For task A1 the budget shown is always 10 hour. In list mode, the task viewer shows the individual values, so a budget of 20 hours for task A and 10 hours for task A1.'''), Feature('''The order of tabs in tabbed dialogs can be changed. Task Coach now remembers the order of the tabs in the item edit dialogs and the preferences dialog.''', 'http://uservoice.com/a/oa7jx'), Feature('''When printing, show the sorted column by underlining the column header.'''), Feature('''Reorganized some menu items differently and added mnemonics to all menu items.'''), ], implementationChanged=[ Implementation('''The task file format was changed to support task dependencies. The task file format version number is now 31.''') ], bugsFixed=[ Bug('''An exception would be thrown if search strings contained a percentage symbol.'''), Bug('''When printing, correctly align columns.'''), Bug('''Show sort indicator in attachment viewers.'''), Bug('''Task Coach would always change budget, hourly fee, and fixed fee to zero when mass editing tasks.''', '3081666'), Bug('''Better contrast in the calendar view''', '3072138'), Bug('''Tasks started at 00:00 would be displayed twice in the monthly vertical calendar view''', '3062501') ] ), Release('1.1.4', 'September 30, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach would not properly use the system's locale to select the language if the language was set to 'Let the system determine the language', resulting in the wrong language being used.''', '3064566'), Bug('''Don't switch top/bottom and left/right margins in the print preview.'''), Bug('''Refresh task viewer filters every minute so that when the task viewer is hiding inactive tasks, inactive tasks that become active also become visible.''', '3072013'), Bug('''Displaying revenue in effort viewers was slow. The effort viewer has a revenue column that shows the revenue earned per effort record. Until now, this would be the task fee per hour times the duration of the effort record plus the part of the fixed fee of the task earned with this effort record. So if a task had a fixed fee of 1000,- and you had spent 10 hours on the task, an effort record of one hour would have a revenue of 100,-. However, calculating all this would get slow for larger amounts of effort records, so the effort revenue now only shows the variable part, i.e. fee per hour times effort duration.''', '3056540'), Bug('''In the situation where Task Coach was started minimized in the system tray and with the setting "Hide window when minimizing" turned on, the main window would not be hidden when minimizing it.''', '3077271') ], featuresAdded=[ Feature('''Allow hiding composite tasks in calendar view.''', 'http://uservoice.com/a/aul3S'), Feature('''In the tree/list task viewer, allow additional selection with Cmd-click on Mac OS X.'''), ], ), Release('1.1.3', 'September 10, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''When closing a edit dialog, don't delete the category, note, and attachment viewers in the dialog before the data has been processed.''', '3059143'), Bug('''The PortableApps platform would override the language selected by the user in Task Coach.''', '2965342', '3059429'), Bug('''When retrieving the latest available Task Coach version number from the Task Coach website doesn't work, simply ignore that.'''), Bug('''Don't crash when searching efforts with "Include subitems" turned on.'''), ], featuresAdded=[ Feature('''When selecting the language in the preferences dialog, you can select 'Let the system determine the language'. If you're using the PortableApps version of Task Coach and the PortableApps platform, the PortableApps platform language will be used. Otherwise, Task Coach will let your system's locale determine the language.''') ] ), Release('1.1.2', 'September 2, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach wouldn't run on Ubuntu 9.04. This is because Task Coach tried to use a feature from wxPython 2.8.9.2 while Ubuntu 9.04 ships with wxPython 2.8.9.1.''', '3054431'), Bug('''Only close edit dialogs when the edited item is really deleted, not when the item is hidden by a filter.''', '3042880'), Bug('''Refresh filtered task viewers at midnight to properly show tasks that become active.''', '3035384'), Bug('''The checkbox for mutually exclusive subcategories in the category editor would be unchecked even if a category had exclusive subcategories.''') ] ), Release('1.1.1', 'August 26, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''On Mac OS X, properly read task files when the font description cannot be parsed. This may happen when reading a task file that was last saved on a different platform. Unfortunately, font specifications are platform specific.''', '3047183'), Bug('''Prevent exception when reading old task files.'''), Bug('''Saving of templates didn't work, resulting in invalid template files that would in turn prevent Task Coach from starting properly.''', '3052090'), Bug('''On Windows, the tabs of the dialogs would flicker when moving the mouse over the tabs.'''), Bug('''Use dialogs for reminders.''', '3050445') ] ), Release('1.1.0', 'August 20, 2010', summary='''This release adds time to start, due and completion dates of tasks and adds support for mass editing of items. It also adds support for the upcoming version 3.0 for the iPhone/iPod/iPad.''', featuresAdded=[ Feature('''The start, due and completion dates of tasks now also include a time. When reading old task files, Task Coach adds a default time to tasks: start dates get a time of "00:00", due dates and completion dates get a time of "23:59".''', 'http://uservoice.com/a/nd3mH'), Feature('''Mass editing of items. When editing multiple items (tasks, notes, etc.), the edit dialog allows for selectively changing attributes of all edited items.''', 'http://uservoice.com/a/ahxq8'), Feature('''Less intrusive notifications (reminders).'''), Feature('''The calendar orientation can be changed.'''), Feature('''Add an option to the calendar viewer to show all tasks but those which have no start nor due date''', '3008517'), Feature('''The headers in the calendar view are now always visible.''', 'http://uservoice.com/a/irtQs'), Feature('''The calendar view can show an arbitrary number of periods (except months).''', 'http://uservoice.com/a/5F5Ka'), ], implementationChanged=[ Implementation('''The task file format was changed to support start, due and completion date and time. The task file format version number is now 30.''') ], bugsFixed=[ Bug('''Icons in edit dialogs would be lined up vertically on some versions of Windows XP. Fixed by using a notebook widget instead of the listbook widget.''', '2927384'), Bug('''The new edit dialogs better support tabbing through the dialogs.''', '2687959'), Bug('''On Mac OS X, the tabs in the editor and preferences dialogs were too small.'''), Bug('''Searching descriptions wasn't working in the effort viewer.''', '3031411') ] ), Release('1.0.10', 'August 15, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''When SyncML was on, the effort viewer would show effort for deleted tasks.'''), Bug('''When dragging panes and dropping them onto each other to create an automatic notebook, make sure dropped viewers are properly contained in the notebook.'''), Bug('''When renaming a viewer, apply the new name to the active viewer.''', '3042037') ], featuresAdded=[ Feature('''Allow automatic creation of a notebook of viewers on top of the initial task viewer. This makes the user interface functionally equivalent to the previously removed "tabbed" mode.''') ] ), Release('1.0.9', 'August 8, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''On Windows, Task Coach wouldn't start when the user interface was in "tabbed" mode.''', '3041123'), Bug('''On Windows, toolbar items that should trigger a popup menu (e.g. templates) wouldn't.'''), Bug('''On Windows, disabled toolbar buttons wouldn't be greyed out.''') ], featuresRemoved=[ Feature('''The "tabbed" user interface mode has been removed. Having two different user interfaces makes it harder to test changes that affect the user interface, as evidenced by a bug in the previous release.''')] ), Release('1.0.8', 'August 6, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Drop support for SyncML on Debian; too many architectures/versions to support.'''), Bug('''File attachments would not open on Lubuntu'''), Bug('''Task Coach would crash on start on Ubuntu 10.10'''), Bug('''Fix an exception that would prevent Task Coach from closing.''', '3031709', '3031711'), Bug('''Close task tree popup (in the effort dialog) when clicking the dropdown button twice.''', '3032835'), Bug('''On Windows, toolbar buttons in dialogs would stop working after a while.''', '3032834', '2560895'), Bug('''Refresh filter for tasks due today/tomorrow/etc. at midnight.''', '3035384'), Bug('''On Linux, when selecting an effort in the effort viewer with the mouse also give keyboard focus to the effort viewer.''', '3039519') ] ), Release('1.0.7', 'July 2, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''On some Linux platforms, when using KDE, Task Coach would not properly restore after being minimized to the system tray.''', '2988693', '3011539'), Bug('''Reduce flickering when tracking effort.''', '2819141', '2995374'), Bug('''Task Coach wasn't installing on Ubuntu 9.04.''', '3022926'), Bug('''The right-click column header menu still wasn't working in task, note and category viewers.''') ] ), Release('1.0.6', 'June 26, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''The right-click column header menu wasn't working in task, note and category viewers.'''), Bug('''On Jolicloud, don't crash when printing.''', '3018038'), Bug('''On Ubuntu 10.4, don't crash when clicking the font button in the appearance tab of edit dialogs.''', '2992006', '3021759'), Bug('''Don't display long descriptions in an inline text control, it's too buggy.''', '2992853', '2992850', '2992848'), Bug('''On Mac OS X, don't cut text in text controls when users type X, only when they type X.''', '2942288'), Bug('''Properly save the task file when the font name contains non-ascii characters.''', '3014110'), Bug('''Correctly export tasks and effort to vCalendar (.ics) when they contain non-ascii characters.''', '3016528') ] ), Release('1.0.5', 'June 8, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach would fail to save the task file correctly, when it couldn't read temporary files for email attachments.''', '2369711'), Bug('''Don't crash when using a purple folder or led icon.''', '3009432'), Bug('''Don't allow exporting efforts to iCalendar when effort viewer is in aggregate mode, it would result in an empty .ics file.''', '2935616'), Bug('''SyncML synchronization did not work for tasks.''', '3012234'), ], featuresChanged=[ Feature('''Renamed the Edit->Paste into task menu item to Edit->Paste as subitem and made it work for categories and notes too.''') ] ), Release('1.0.4', 'May 30, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''When starting iconized on Mac OS X, the application window would close.''', '2992764'), Bug('''When exporting tasks with descriptions that contain newlines to iCalendar (.ics) format, produce a valid iCalendar file.''', '2975805'), Bug('''When reading a task file saved on another platform, be prepared for fonts with size zero; use the default font size instead.''', '2968199', '3002577'), Bug('''After deleting multiple efforts for one task in the effort viewer, the effort viewer would still show some of the removed efforts.'''), Bug('''When waking up from standby/sleep, only request user attention when there are reminders to display.''', '2992049'), Bug('''The synchronization with the iPhone would crash in some circumstances, when parent objects have been used on the iPhone and are deleted on the desktop.''', '3007248'), Bug('''When maximizing or minimizing priority, don't take the priority of deleted tasks into account.''', '3008495'), Bug('''When calculating overall percentage complete of a task, consider whether the task will be completed automatically when all of its subtasks are completed.''', '2992534') ], featuresChanged=[ Feature('''Added some more possible snooze times. Use the preferences dialog to turn them on.''') ], distributionsChanged=[ Distribution('''We no longer build a Task Coach RPM for Fedora 8, 9, and 10. These releases of Fedora are unsupported by the Fedora project.'''), Distribution('''The OpenSuse RPM is not "noarch" but "i386".''', '2997377') ] ), Release('1.0.3', 'April 25, 2010', summary='''This release fixes a few bugs, and improves a few features, such as making the calendar view sortable.''', bugsFixed=[ Bug('''When showing effort records in aggregate mode (per day, per week, per month), always put the Total row on the first line of its period.''', '2895940'), Bug('''The download link for the Debian package wasn't pointing at any package.''', '2985649'), Bug('''Don't show deleted tasks in the task dropdown of the effort edit dialog.''', '2987202'), Bug('''Snarl notifications wouldn't work when the subject or description included non-ASCII characters.''', '2986071'), Bug('''When saving files, make sure the default extension is added to filenames if both the user and the native save dialog don't add it.''', '2987204'), Bug('''When listing notes and attachment in a popup window, show them sorted instead of in a seemingly random order.''', '2991230'), Bug('''Don't crash and corrupt the task file when the user assigns the green folder icon to a task, category or note.''', '2991511'), Bug('''Tasks wouldn't use the exact same font as the category they belong to.''', '2990350'), Bug('''The calendar view didn't handle the task's font.''', '2990875') ], featuresAdded=[ Feature('''Use item titles in dialogs and in the undo/redo menu to make it clearer what items the user is/was working on.''', 'http://uservoice.com/a/9zBuo'), Feature('''In the task, category, and note viewers, show long descriptions in a text control with scrollbars so the rows don't take up too much vertical space.''', 'http://uservoice.com/a/h37jH'), Feature('''Tasks can now be sorted in the calendar viewer.'''), Feature('''Support for libnotify under Linux (for reminders).'''), ] ), Release('1.0.2', 'April 10, 2010', summary='''This release fixes some bugs, and adds support for the Snarl notification system.''', bugsFixed=[ Bug('''Exports and prints would show long descriptions abbreviated with "...", exactly as the long descriptions were displayed in the description column of task, category, and note tree viewers. To fix this, the task, category, and note tree viewers show descriptions fully (when the description column is visible).''', '2975805'), Bug('''In the calendar viewer, March 31st would not appear.''', '2979461'), Bug('''The 13th hour would not show up in thr daily calendar view.''', '2979452'), Bug('''The position of the main window wouldn't be saved so it couldn't be restored the next session.''', '2969292'), Bug('''On Ubuntu, when the user would scroll to the bottom of a tree viewer and collaps an item, the tree would not be redrawn correctly.''', '2947136'), Bug('''Setting a task to 100 percent complete didn't work.''', '2982561'), Bug('''When the user clicks on a URL embedded in a description and the URL fails to open, show an error dialog instead of throwing an exception.'''), Bug('''The website pointed Ubuntu 9.10 users to the wrong deb package.''', '2983202'), Bug('''On Ubuntu 10.04, Task Coach wouldn't be added to the Applications/Office menu.''', '2978098'), Bug('''After double clicking a task in the calendar viewer and changing its dates, if the change would make the task disappear from the current period, the task would not be properly drawn.''') ], featuresAdded=[ Feature('''Support for Snarl under Windows (for reminders).'''), ], ), Release('1.0.1', 'March 26, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach would try to use a non-existing icon when the SyncML feature was turned on.''', '2975952'), Bug('''Task Coach wouldn't install properly on Ubuntu 10.04. Added a deb for Ubuntu 10.04.''', '2975538'), Bug('''When setting the end working hour to 24, the calendar viewer would crash.''', '2975347'), Bug('''When trying to display tasks with notes, the calendar viewer would crash.'''), Bug('''Synchronization with the iPhone did not work.''', '2975920', '2976427') ] ), Release('1.0.0', 'March 22, 2010', summary='''To mark that Task Coach has been available for five years now, we call this release version 1.0. This release adds a calendar viewer for tasks, partial drag and drop support for Mail.app under Mac OS X Leopard and Snow Leopard, and configurable icons.''', featuresAdded=[ Feature('''Calendar viewer for tasks.''', 'http://uservoice.com/a/iQI4g'), Feature('''Drag and drop e-mail from Mail.app, on Max OS X Leopard and Snow Leopard.''', 'http://uservoice.com/a/niJMS'), Feature('''The square map task viewer can also display tasks by priority. Note that tasks with negative priorities are not displayed.''', 'http://uservoice.com/a/kxeoS'), Feature('''The icons of tasks, notes, and categories can be changed.''') ], bugsFixed=[ Bug('''The template pop-up menu in task viewers would not show up at the right position.''') ] ), Release('0.78.4', 'March 6, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''In some cases, when typing dates in the editor, they would be reset to the current day.''', '2942425'), Bug('''Clear the drag image after dropping an item onto white space (on Linux).''', '2947127'), Bug('''Reminders that should have fired when the computer was asleep wouldn't until the next launch of Task Coach (Windows and Mac OS X only).''', '2888688'), Bug('''On Mac OS X, task viewers would not be refreshed at midnight if the computer was sleeping by this time.'''), Bug('''Having too many mail attachments on Windows would cause a "Too many open files" error.'''), Bug('''When closing a viewer, Task Coach would sometimes try to destroy an already deleted right-click menu, leading to an exception or an error message in the log file.''', '2948302') ] ), Release('0.78.3', 'January 31, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Free up resources (user objects and memory) on Windows when closing dialogs. The memory leak was caused by popup menu's in dialogs not being deleted.''', '2938091', '2891350', '2560895', '2444185', '2214043'), Bug('''Close the inline subject edit control before showing or hiding columns in tree viewers, to prevent problems redrawing the tree items.''', '2940211'), Bug('''Prevent "zombie" viewers; viewers that are not visible but do still use processing power.''', '2932609') ] ), Release('0.78.2', 'January 23, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Faster redrawing of task/category/note trees.''') ] ), Release('0.78.1', 'January 17, 2010', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Bring back the "Don't snooze" option in reminder dialogs.'''), Bug('''Synchronizing with the iPhone didn't work.''', '2925618'), Bug('''When an active task's foreground color is the default (black), don't mix that color with the foreground colors of the task's categories.''', '2930751'), Bug('''Let subtasks use their parent's category-based foreground color when they don't have their own foreground color.''', '2930751'), Bug('''When there are a lot of old backup files don't clean them up all at once, but instead a few on each save.''', '2929692', '2929475') ] ), Release('0.78.0', 'January 10, 2010', summary='''This release adds configurable fonts and foreground colors, enhances the reminder dialog, makes other small changes and fixes some bugs.''', featuresAdded=[ Feature('''Tasks, categories, notes and attachment can have their own font. Tasks, notes and attachments that don't have their own font use the font of the categories they belong to. Effort records use the font of the task they belong to.'''), Feature('''In addition to the background color, the foreground (text) color of tasks, categories, notes and attachments can now also be changed. Tasks, notes and attachments that don't have their own foreground color use the foreground color of the categories they belong to. Effort records use the foreground color of the task they belong to.'''), Feature('''Added Ctrl+E keyboard shortcut to "New effort..." menu item.'''), Feature('''Reminder dialogs have an extra button to mark the task completed.''', 'http://uservoice.com/a/5HVq3'), Feature('''The snooze times offered by the reminder dialog can be configured via the preferences dialog.''') ], bugsFixed=[ Bug('''Make file locking work on Windows computers that have a hostname with non-ASCII characters in it.''', '2904864'), Bug('''Avoid deploying UxTheme.dll because it causes problems on 64-bits Windows systems.''', '2911280', '2897639', '2886396'), Bug('''Correctly refresh task square map and task time line viewers after stopping effort tracking, i.e. stop showing the clock icon on the previously tracked task.'''), Bug('''When maximizing and restoring panes (viewers), don't change the order.''', '2922952'), Bug('''Slightly faster redrawing of task viewers after sorting or filtering.'''), Bug('''In some circumstances, synchronization with an iPhone/iPod Touch device would crash the app.''', '2925618') ], featuresChanged=[ Feature('''Task Coach now limits the number of backups made of a task file. The number of backups retained increases logarithmically with the age of the oldest backup of the task file. When Task Coach needs to remove a backup it tries to keep the remaining backups spread evenly across time.''', 'http://uservoice.com/a/5FrtF'), Feature('''Merged the four menu items for exporting tasks and effort to iCalendar and vCalendar formats into two menu items.''') ] ), Release('0.77.0', 'December 6, 2009', summary='''This release adds mutually exclusive categories and fixes some bugs.''', featuresAdded=[ Feature('''Categories can have mutually exclusive subcategories. This makes it easier to e.g. create your own statuses or to keep track of which task was assigned to whom.''', 'http://uservoice.com/a/tvOIS'), Feature('''F2 can be used to start in-line editing of the subject of a task, category or note.''', 'http://uservoice.com/a/9pLUT'), Feature('''Added partial Mongolian translation.''') ], bugsFixed=[ Bug('''Only the first reminder defined in a session would be fired.''', '2901254'), Bug('''Don't start in-line editing of subjects when an item is double clicked. Properly close the subject edit text control, e.g. when sort order is changed.''', '2896654', '2899913'), Bug('''Don't open effort viewer contex (right-click) menu twice on every right-click.''', '2902389') ] ), Release('0.76.1', 'November 13, 2009', summary='''This release adds Growl support on Mac OS X, and fixes some bugs.''', featuresAdded=[ Feature('''On Mac OS X, you can optionally choose to use Growl for reminders. When enabled, this disables two other features: snooze/don't snooze and open task on reminder.'''), Feature('''Added back the possibility to hide active tasks so that people can have a task viewer that only displays completed tasks.''', 'http://uservoice.com/a/NQCUV') ], bugsFixed=[ Bug('''The notes and attachment columns were not properly refreshed after removing the last note or attachment.''', '2894530'), Bug('''Reminders would randomly not work.''', '2888688'), Bug('''Recurrence frequency would be reset to zero when edited.''', '2895085'), Bug('''Instead of the whole description, show only the first few lines of descriptions in the description column of task, note, and category viewers.''') ] ), Release('0.76.0', 'November 7, 2009', summary='''This release adds buttons on the toolbar of task viewers to hide completed and/or future tasks, makes subjects editable in-line, removes a couple of silly features, and fixes some bugs.''', featuresAdded=[ Feature('''Task viewers now have buttons on the toolbar to hide or show completed and/or inactive (future) tasks.''', 'http://uservoice.com/a/EfkNL'), Feature('''Subjects of tasks, notes and categories can be edited in-line by clicking the subject of a selected item.''') ], bugsFixed=[ Bug('''Iterating over viewers wasn't working in tabbed mode.'''), Bug('''When merging a task file with categories, don't break the links between tasks/notes and categories.''', '2882493'), Bug('''Tree viewers wouldn't properly refresh when an attribute of a task, category, or note was changed to be empty.''', '2806354'), Bug('''When tracking effort, effort viewers in aggregated mode (showing effort per day/week/month) were not being updated every second.'''), Bug('''Tabs in the tabbed window layout could not be closed.'''), Bug('''Don't complain when the system locale has a thousands separator that consists of more than one character.''', '2889931', '2888714') ], featuresRemoved=[ Feature('''Don't have a setting for the maximum number of recent files to show, simply use some reasonable maximum (9).'''), Feature('''It's no longer possible to hide active tasks, over budget tasks, and overdue tasks. These filters were silly.''')] ), Release('0.75.0', 'October 24, 2009', summary='''This release adds percentage complete tracking for tasks, a PortableApps version of Task Coach and some minor features and bug fixes.''', featuresAdded=[ Feature('''Tasks have a percentage complete property.''', 'http://uservoice.com/a/Icogx'), Feature('''Double clicking the task bar icon will iconize the main window when it is visible and restore it when iconized (Mac OS X and Windows).''', 'http://uservoice.com/a/dKfBt'), Feature('''When browsing for an attachment, start in the current attachment directory.'''), Feature('''Under Windows, prevent users from deleting temporary files and thus loosing all their e-mail attachments.''') ], bugsFixed=[ Bug('''Make opening (task) edit dialogs faster.''', '2884522'), Bug('''Use 'now' as default time in effort dialogs on Mac OS X instead of '0:00:00'.''', '2874824')], distributionsChanged=[ Distribution('''Added a PortableApps version of Task Coach to the set of available distributions.''')] ), Release('0.74.4', 'October 17, 2009', summary='''This is a bugfix release that fixes some user interface bugs, most notably that entering dates with the keyboard was not working on Mac OS X and Linux.''', bugsFixed=[ Bug('''Typing in time controls (effort start and stop, reminder) didn't work on Mac OS X.''', '2798239'), Bug('''Prevent the locked file dialog and the new version notification dialog of blocking each other on Mac OS X.'''), Bug('''When using the context menu of a selected effort record to create a new effort record use the task of the selected effort record as task of the new effort record as well.''', '2873933'), Bug('''After expanding all items (Shift+Ctrl+E), keep items expanded even when sort order changes or tasks are completed.''', '2841854'), Bug('''The "Open all attachments" menu item was always disabled.''', '2874180'), Bug('''When sorting tasks and notes by their categories use the recursive subjects (e.g. 'Parent -> Child') of the categories to sort by. Previous versions would only use the 'Child' part.''', '2874153'), Bug('''Remove double slash ('//') from URL used in Windows installer.''', '2877126'), Bug('''On Linux and Mac OS X, changing dates by typing a new date (i.e. not using the dropdown menu) didn't work.''', '2874408', '2867623') ] ), Release('0.74.3', 'October 4, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Exporting and printing, including displaying the print preview, is now much faster.'''), Bug('''Drag and drop wasn't working.'''), Bug('''Starting or stopping effort tracking for a selected task would cause the task to be unselected.''', '2869959'), Bug('''Don't show effort records twice in the effort viewer after deleting or dragging and dropping a task.''', '2869520', '2859882'), Bug('''Fix printing of non-task viewers.''', '2871365'), Bug('''Task Coach wouldn't start when using the tabbed main window mode on Mac OS X.''', '2867585') ] ), Release('0.74.2', 'September 25, 2009', summary='''This is a bugfix release that fixes several minor bugs and increases performance.''', bugsFixed=[ Bug('''iPhone synchronization: when doing a full refresh from desktop, categories parents could be mismatched.'''), Bug('''A bug in the task filter would cause tasks to be shown that were supposed to be hidden.''', '2841854'), Bug('''The filter submenu would sometimes be in the wrong state (enabled or disabled).'''), Bug('''On Linux, locking two task files in the same folder, e.g. when merging, would make Task Coach think that its task file was locked by another instance of Task Coach.''', '2852216'), Bug('''Performance improvements. Task Coach still isn't super fast, but at least performance should be a bit better now.''', '2807678', '2683002') ], featuresAdded=[ Feature('''Add an option to avoid uploading completed tasks to the iPhone/iPod Touch when synchronizing. For people who hide completed tasks, this can make the synchronization much quicker.'''), Feature('''Under MS Windows, the task template directory may now be a shortcut to another directory.'''), Feature('''In the attachment viewer, display a red icon for files attachments when the file does not exist. Also prevent the user from trying to open it.''') ], featuresRemoved=[ Feature('''Removed the Edit->Select->Invert selection menu item since it was very slow and not very useful.''')] ), Release('0.74.1', 'August 22, 2009', summary='''This is a bugfix release.''', featuresAdded=[ Feature('''Drag and drop from Thunderbird now works with multiple accounts in the default profile.''') ], bugsFixed=[ Bug('''Printing didn't work.''', '2840010'), Bug('''Prevent exception when locking a file on a machine with a hostname containing non-ascii characters.''', '2835047'), Bug('''Make the winPenPack portable app start in English by default.'''), Bug('''Drag and drop from Thunderbird would not work if the storage directory wasn't the default.''', '2840460'), Bug('''Expand parent item when adding a sub item.''') ] ), Release('0.74.0', 'August 16, 2009', summary='''This release adds better HTML export, a winPenPack version of Task Coach, and fixes some bugs. Task Coach now uses Uservoice.com for feature requests.''', featuresAdded=[ Feature('''When exporting data to an HTML file, Task Coach writes a simple CSS stylesheet alongside it. The CSS stylesheet can be edited by the user using a text editor; Task Coach won't overwrite it.'''), Feature('''Tasks that are due soon are colored orange. How many days left is to be considered 'soon' can now be set via the preferences dialog, in the task behavior tab.''', '1312000')], bugsFixed=[ Bug('''Avoid nested syncml tags in the XML task file''', '2832062', '2813816'), Bug('''Some macro's (e.g. "%(name)s") in the help text were not properly expanded.''', '2833904', '2833903'), Bug('''Translate tip window and search controls on Windows.''', '2825463') ], distributionsChanged=[ Distribution('''Added a winPackPen (http://www.winpackpen.com) portable package to the set of available distributions.''')], websiteChanges=[ Website('''We're now using http://taskcoach.uservoice.com for feature requests. The big advantage of Uservoice over the Sourceforge feature request tracker is that Uservoice allows for voting. Because we have over 250 open feature requests on Sourceforge, it is not possible for us to move all feature requests ourselves. People that submitted a feature request on Sourceforge will receive a notification and a request to help us move their request(s) to Uservoice.''', 'index.html')] ), Release('0.73.4', 'August 6, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Prevent text in right-aligned columns, like dates in the task viewer, to be partially cut off.''', '2806466'), Bug('''Don't crash when a template task has an empty subject.''', '2831233'), Bug('''Always show the correct 'mark task (un)completed' bitmap in the task context menu.''', '2830125'), Bug('''The GUI would always display English, instead of the language set via the preference dialog or specified on the command line.''', '2831534') ] ), Release('0.73.3', 'August 2, 2009', summary='''This release fixes some bugs, and adds support for synchronizing with the next version of the iPhone app (1.1).''', bugsFixed=[ Bug('''Opening the task menu in the main menu bar while a category viewer was active would result in exceptions.''', '2818254'), Bug('''The time control in the effort editor was too narrow''', '2790805'), Bug('''Link to http://www.cygwin.com on the website had a typo.''', '2819702'), Bug('''The context menu key didn't work.''', '2807326'), Bug('''With SyncML enabled, tasks deleted on the desktop would still show up on the iPhone/iPod Touch.'''), Bug('''Translate tip window controls, search controls, and viewer titles.''', '2825463', '2825222'), Bug('''Prevent exception when opening a new viewer.''', '2825222'), Bug('''Don't fail silently when something goes wrong while opening an attachment.''', '2826178') ], featuresAdded=[ Feature('''Specify which language to use on the command line. Type "taskcoach[.py|.exe] --help" on the command line for more information.'''), Feature('''Load a .po file (a file containing translations) with a command line option. Type "taskcoach[.py|.exe] --help" on the command line for more information. This option allows translators to check their work more easily.''', '1599933'), Feature('''Synchronizing with the next version for the iPhone (1.1) is now supported (one can edit a task's categories from the device).''') ] ), Release('0.73.2', 'July 8, 2009', summary='''This release fixes some bugs, and adds synchronization with the iPhone version now available on the AppStore.''', featuresAdded=[ Feature('''Two-way synchronization with Task Coach for the iPhone.''', '2042153', '2722216'), ], bugsFixed=[ Bug('''Export of selected effort to a CSV-file would result in an empty file.''', '2810978'), Bug('''Fix a crash when creating/editing tasks for non-english locales.''', '2817287', '2817335', '2812005') ] ), Release('0.73.1', 'June 24, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Dates and amounts were not localized.''', '2806189', '1625111', '1790055'), Bug('''Use folder icons for tasks with subtasks in the task viewer.''', '2806191'), Bug('''Export of selected effort to a CSV-file would result in an empty file.''', '2806383', '2807003', '2810978') ] ), Release('0.73.0', 'June 12, 2009', summary='''This release adds a timeline viewer, the ability to search item descriptions, total-per-period information in the effort viewer, and easier category manipulation.''', featuresAdded=[ Feature('''Added a timeline viewer that shows tasks and efforts on a horizontal time scale.''', '2533644', '1230080'), Feature('''When an effort viewer is displaying effort per day, week, or month, a total line is shown for each period.''', '1962219'), Feature('''The search control in the toolbar of viewers now includes an option to search descriptions too.''', '1816660', '2020347', '2157010', '2510045'), Feature('''Add or remove tasks and notes from categories using the task and note menus in the menubar or the right-click popup menu for tasks and notes.''', '1931323', '2011031', '1918685'), Feature('''Added largely incomplete Bosnian and Basque translations. Please help make these translations complete. See http://www.taskcoach.org/i18n.html.''') ]), Release('0.72.10', 'June 9, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''When opening a task edit dialog, the priority field would not show the priority until the up or down button was clicked (Mac OS X only).'''), Bug('''When opening a locked file, Task Coach would hang (Mac OS X only).'''), Bug('''Require wxPython 2.8.9.1 instead of 2.8.9.2 in the Debian package file (.deb) because Ubuntu 9.04 is still shipping 2.8.9.1 (Ubuntu only).''', '2798457'), Bug('''Fix drag and drop from Outlook (Windows only).''', '2803013'), Bug('''When logging off or shutting down the computer save unsaved changes (Linux only).'''), Bug('''When using SyncML the task file could get corrupted.''') ] ), Release('0.72.9', 'May 28, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Don't throw an exception when exporting an active effort record to iCal format.'''), Bug('''Refuse to open task files that have a different format because they are created by a newer version of Task Coach than the one the user is using.'''), Bug('''Updating menu items would trigger exceptions after closing a (task) viewer.'''), Bug('''After merging, Task Coach would display the wrong filename in the window title.'''), Bug('''Smaller task edit dialog to cater for lower resolution screens.''', '2214687'), Bug('''Dragging email from a Thunderbird client that uses Gmail as IMAP server didn't work.'''), Bug('''When the SyncML feature is turned on, Task Coach would show deleted tasks in the drop down menu of the start effort tracking button on the toolbar and it would show effort for deleted tasks in the effort viewer.''', '2679544', '2214043') ], featuresAdded=[ Feature('''All export options can now also export selected items only.'''), Feature('''Put line breaks in the XML so that task files are easier to examine in a text editor.''', '1277365') ] ), Release('0.72.8', 'May 17, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Drag and drop from Thunderbird would not work on Debian-derived distributions.''', '2790274'), Bug('''Work around a bug in wxPython 2.8.9.2 on Mac OS X that prevented dialogs to be opened for items that have a color set.''', '2789977'), Bug('''Draw check boxes instead of black squares in the category viewer on Windows XP and Vista with the classic theme.'''), Bug('''The background of check boxes were corrupted under Linux.'''), Bug('''Double clicking an item in a specific column wouldn't select the appropriate tab in the dialog.''', '2791100'), Bug('''Reduce flickering when tracking effort for a task.'''), Bug('''Opening a task file with e-mail attachments not specifying their encoding on a different system than the one the task file was created could fail.'''), Bug('''Couldn't add effort to a freshly created task.''') ], featuresAdded=[ Feature('''Use the settings for effort dialog start and stop times for the reminder drop down as well.''', '2792160') ], dependenciesChanged=[ Dependency('''Task Coach now at least needs wxPython 2.8.9.2-unicode. Since the Windows installer and the Mac OS X dmg package have wxPython included, this only affects users of the RPM, Debian, and source distributions.''') ] ), Release('0.72.7', 'May 10, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Support locking of task files on USB sticks/drives that have a different file system than the host system has.''', '2776249'), Bug('''Task Coach would sometimes crash when dragging a task onto another task on Windows. Fixed by using a different widget for tree-list controls.''', '2573263', '1995248', '2247808', '1963262') ], featuresAdded=[ Feature('''The category viewer can show additional columns (description, attachment, ...) besides just the subject of categories. This is a side effect of the fix for the drag and drop issues.''') ], websiteChanges=[ Website('''Follow Task Coach on twitter: http://twitter.com/taskcoach. The latest tweets are also listed on http://www.taskcoach.org.''', 'index.html'), Website('''Added Google Ads to generate additional revenue to cover the cost of hardware and commercial operating systems.''', 'index.html') ] ), Release('0.72.6', 'April 18, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Task Coach couldn't be installed using EasyInstall.'''), Bug('''Task Coach couldn't be installed on Linux systems that have 2.6 as their default Python version. Task Coach currently needs Python 2.5. Fixed by forcing an install for Python 2.5 on all Linux systems when installing from a RPM or Debian package.''', '2724839'), Bug('''The lockfile package used for file locking had a bug when used with Python 2.6. Fixed by upgrading the lockfile package to version 0.8.''', '2761466'), Bug('''Task Coach would sometimes crash when dragging a task onto another task on Windows.''', '2573263', '1995248') ] ), Release('0.72.5', 'April 5, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Include the lockfile package in the distributions.''') ] ), Release('0.72.4', 'April 5, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''When exporting effort to iCalendar format, use 'floating times' rather than UTC.''', '2722224'), Bug('''Lock a task file while the user is working on it. Note that locks are only honored by Task Coach itself; locked files can still be removed using a file explorer.''', '2318647', '2236420'), Bug('''Fail silently if checking for the availability of a new Task Coach version doesn't work for some reason.''', '2669995'), Bug('''Don't open the category edit dialog when the user double clicks a category check box.''', '2685754'), Bug('''In the budget page of the task edit dialog, make sure that selected values can be overwritten.''', '2654254'), Bug('''Make the Debian package work with python versions >= 2.5 (but smaller than python 3.0).''', '2724839') ] ), Release('0.72.3', 'March 13, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Don't turn on the color selection in the task edit dialog when the task color is based on the category it belongs to.'''), Bug('''Make it easier to edit budget values in the task edit dialog.''', '2654254'), Bug('''Fix regression caused by the saving of print margins added in release 0.72.2.''', '2632431') ] ), Release('0.72.2', 'March 11, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Support drag and drop from Thunderbird Portable under Windows''', '2665317'), Bug('''Correctly read task files with version <= 13 (Task Coach release 0.57 and earlier) that contain categories.'''), Bug('''When a subtask belongs to a category with color, use that color to color the subtask, rather than the color of the parent task.'''), Bug('''Save print margins in the TaskCoach.ini file.''', '2632431') ] ), Release('0.72.1', 'February 14, 2009', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Drag and drop from Thunderbird wouldn't work with GMail IMAP accounts.''', '2549194'), Bug('''Exception when synchronizing with the new version of ScheduleWorld.''', '2553046'), Bug('''On MacOS, the window height would increase by 29 pixels each time Task Coach was launched.'''), Bug('''Exporting a selection of effort records resulted in an empty HTML file.'''), Bug('''Opening a task from a reminder dialog didn't work.''', '2580772'), Bug('''Include effort for subtasks in the effort viewer for one task.'''), Bug('''Correctly display error message when the user enters an invalid regular expression in a search control.'''), Bug('''Update the task square map viewer when the task status changes (e.g. when a task is completed).'''), Bug('''When SyncML is enabled and the last subtask of a task is deleted, correctly update the icon in the task viewer.''') ], featuresAdded=[ Feature('''When the single task, whose effort records are shown in a single task effort viewer, is removed, the effort viewer resets to show all effort records of all tasks.'''), Feature('''Tool tips for task square map viewer.''') ] ), Release('0.72.0', 'January 30, 2009', summary='''This release adds a square map task viewer and a single-task effort viewer. This release also fixes a few bugs and adds a few smaller feature enhancements.''', featuresAdded=[ Feature('''One can now export only the current selection as HTML.'''), Feature('''When using yearly recurrence of tasks, allow for keeping the recurring date on the same weekday (e.g. to recur on the first Monday of the year).''', '2164568'), Feature('''Added a square map viewer for tasks that displays tasks in the form of a set of nested squares. The relative size of the squares is determined by either budget, budget left, time spent, fixed fee or revenue.'''), Feature('''One can now open an effort viewer for a specific task.'''), Feature('''Added (incomplete) Hindi and German (Low) translations.''') ], bugsFixed=[ Bug('''Don't crash when adding a task.''', '2467347'), Bug('''Update the total fixed fee column in the task viewer when adding a subtask with a fixed fee.'''), Bug('''Mark task file dirty when the user edits a task color.'''), Bug('''Update the hourly fee column in the task viewer when the the user edits the hourly fee of a task.'''), Bug('''Make it possible to add an effort record to a new task.'''), Bug('''When opening all attachments of an item, give an error message for each attachment that cannot be opened.''') ] ), Release('0.71.5', 'December 24, 2008', summary='''This release adds one usability enhancement and a few bug fixes.''', featuresAdded=[ Feature('''When double clicking an item in a viewer, open the editor on the right page, depending on the column clicked. For example, when clicking on the due date column in a task viewer, Task Coach will open the task editor with the dates page raised. Patch provided by Carl Zmola.''') ], bugsFixed=[ Bug('''Don't wake up every second just to keep track of reminders and midnight.'''), Bug('''Hide main window after showing reminder dialog when it was hidden before.''', '2372909'), Bug('''When marking a recurring task completed, recur its reminder too, if any.''', '2376415'), Bug('''Refresh task status at midnight.''', '2095205'), Bug('''Fix tab traversal in the effort editor on Linux.''', '1965751') ] ), Release('0.71.4', 'December 6, 2008', summary='''This is a bugfix release.''', featuresAdded=[ Feature('''Add a "Purge deleted items" entry in the File menu for people who have been using Task Coach with SyncML disabled.'''), ], bugsFixed=[ Bug('''Opening an old .tsk file with missing e-mail attachments would crash Task Coach.'''), Bug('''Don't throw exception when showing an (error) message while synchronizing.''', '2356799'), Bug('''When merging from the same file multiple times, update the existing items instead of duplicating them.''', '2062616'), Bug('''Don't set negative priorities to zero in the task editor (Linux only).''', '2324869'), Bug('''Save the column width of the first column when automatic resizing of columns is off.''', '2255690'), Bug('''Actually delete tasks and notes when SyncML is disabled.''', '2319921'), Bug('''Do not create subitems in two steps, this is counter intuitive.'''), Bug('''Properly iterate over the open viewers with Ctrl-PgDn and Ctrl-PgUp.''', '1973357'), Bug('''Update the task viewer when a note is deleted from a task.''', '2277217'), Bug('''Update the tray icon tool tip when deleting an overdue task.''', '2321351'), Bug('''Wrap long lines in description tool tip windows.''', '2318094') ] ), Release('0.71.3', 'November 10, 2008', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Spell checking in editor didn't work under Mac OS X.''', '2214676'), Bug('''Dropping a mail with several recipients from Outlook would result in a "No subject" subject.''', '2220224'), Bug('''A ghost window would appear on the secondary display under Mac OS X if it's placed on the right.''', '2206656'), Bug('''The note total would include deleted notes.''', '2209640'), Bug('''Don't hang when exiting the application.''', '2185910', '2209679'), Bug('''Don't show all effort in the effort tab of a task editor, but only effort for the task being edited.''', '2207166'), Bug('''Fix for a backwards incompatible change in python 2.6.''', '2212857'), Bug('''Update task details at midnight, even when Task Coach is not active at precisely midnight.''', '2095205', '2061826'), Bug('''Allow for empty task subjects.''', '2214812'), Bug('''Make the drop down button for picking dates look disabled when it is disabled.''', '2214706') ] ), Release('0.71.2', 'October 24, 2008', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''The reminder dialog didn't work.''', '2168756'), Bug('''One couldn't add an URI attachment "by hand".''', '2167705'), Bug('''The combobox with tasks in the effort editor wouldn't always be properly filled, making it impossible to edit the effort record.''', '2167798', '2173127'), Bug('''Warn the user when the task file cannot be saved.''', '2121470'), Bug('''Warn the user when the TaskCoach.ini file cannot be loaded.''', '2101765'), Bug('''When saving selected tasks, also include any categories the selected tasks are in.'''), Bug('''The right-click menu item 'Start tracking effort' wouldn't work for recurring tasks.''', '2165652') ], featuresAdded = [ Feature('''The SyncML password dialog now has a more specific title.''', '2176781'), Feature('''The system tray popup menu now has a 'New note' menu item.''', '2182735') ] ), Release('0.71.1', 'October 13, 2008', summary='''This is a bugfix release.''', bugsFixed=[ Bug('''Older task files containing e-mail attachments could not be opened.'''), Bug('''Newly created templates would not appear in the Task menu, only in the toolbar template button.'''), Bug('''Installing from source wouldn't work on platforms where pysyncml is not supported.''', '2164313'), Bug('''The installers for Mac OS X and Windows for release 0.71.0 were missing some files, causing Task Coach not to be able to save.''', '2162181') ] ), Release('0.71.0', 'October 12, 2008', summary='''This release adds task and note synchronization, task templates, more task recurrence options, more translations and a whole bunch of smaller enhancements.''', featuresAdded=[ Feature('''E-mail attachments are now stored directly in the task file.'''), Feature('''Tasks and notes can now be synchronized with a Funambol server (http://www.funambol.com/).''', '2006123', '1892874'), Feature('''Tasks can now be saved and reused as templates.''', '1851847', '1549002', '1484368', '1601869'), Feature('''Attachments are now regular domain objects; they may have notes.'''), Feature('''The task and note editors now use an actual category viewer. It is possible to create and edit categories from these editors.'''), Feature('''The description tooltip now works for efforts and categories. It also contains a summary of notes and attachments belonging to the hovered object.''', '1642608', '1917999'), Feature('''More task recurrence options. Tasks can now also recur yearly, in addition to daily, weekly, and monthly. Tasks can also recur with a multiple period frequency, e.g. every other week or every three months. Monthly recurring tasks can be set to recur on the same week day (e.g. first Monday of the month).''', '1963803', '1917090', '1913656', '2076511'), Feature('''The times used in the drop down menus of the start and stop entries of the effort dialog can now be changed via the preferences dialog. Patch supplied by Rob McMullen.'''), Feature('''The effort tracking feature can be turned off via the preferences dialog.'''), Feature('''The system tray icon shows the task being tracked in its tool tip. Patch provided by João Alexandre de Toledo.'''), Feature('''Categories and notes can have attachments.'''), Feature('''Tasks and categories can contain notes. ''', '1954879', '2140239', '1525434'), Feature('''The four different effort viewers are integrated in one viewer that can switch between different effort aggregation modes, i.e. details, per day, per week and per month, via the toolbar.'''), Feature('''The two different task viewers are integrated in one viewer that can switch between list and tree mode, via the toolbar.'''), Feature('''Category filtering is done either by showing tasks and notes that match any category or that match all categories. This filtering mode can be switched via the toolbar of the category viewer.''', '2024510'), Feature('''The effort background is now colored with the same color as the task it belongs to.'''), Feature('''The effort viewer can show the (overall) categories of the task of each effort in an (overall) categories column. Patch provided by Thomas Sonne Olesen.''', '1911052', '1791670'), Feature('''When the effort viewer is in weekly mode, it can show effort per weekday. Patch provided by Thomas Sonne Olesen.'''), Feature('''The automatic resizing of columns can be turned off on a viewer by viewer basis, using the 'Automatic column resizing' checkable menu item in the View->Columns menu and/or in the column header right-click menu.''', '2047851', '1466164'), Feature('''The expansion state of tasks, categories and notes is saved in the task file.''', '2045453', '1790057'), Feature('''Added Catalan translation thanks to Ferran Roig, Jordi Mallach, Josep-Miquel Ivars, and devaleitzer.'''), Feature('''Added an (incomplete) Arabic translation thanks to Moayyed. Please help finish it. See http://www.taskcoach.org/i18n.html.'''), Feature('''Added largely incomplete Esperanto, Estonian, Indonesian, Marathi, Lithuanian, Norwegion Nynorsk, Slovenian, Telugu, and Vietnamese translations. Please help finish them. See http://www.taskcoach.org/i18n.html.''')], bugsFixed=[ Bug('''Undo would not work well when creating notes in a category or task.'''), Bug('''An IndexError would be raised when undoing then editing.'''), Bug('''Ctrl-PgDn and Ctrl-PgUp would sometimes need to be pressed multiple times before the next or previous viewer would be activated. ''')], implementationChanged=[ Implementation('''The task file format (version 20) was changed. Task nodes may have a recurrence node that contains the recurrence state of the task. Categories and notes can contain attachments. Tasks and categories can now contain notes.''')]), Release('0.70.4', 'September 28, 2008', summary='''Bug fix release.''', bugsFixed=[ Bug('''Allow Task Coach to be installed on Ubuntu 7.10.''', '2117477'), Bug('''Task Coach wasn't notifying users of new versions.'''), Bug('''When merging, merge notes too.'''), Bug('''When the notes feature is turned off, hide the 'Create new note' menu item in the category pop up menu.'''), Bug('''Fixed a translation bug.''', '2087395'), Bug('''Hide/show the main window with one click on the task bar icon instead of a double click (Linux only).'''), Bug('''The Task Coach main window would get a very small size if it was started minimized and had not been restored in the previous session.''', '2052910')]), Release('0.70.3', 'August 17, 2008', summary='''Bug fix release.''', bugsFixed=[ Bug('''wxPython 2.8.8.1 generates images in a new, backwards incompatible way, even when told not to do that. This bug affects users that have an older version of wxPython installed and use one of the Linux packages. Fixed by adding the relevant pieces from wxPython 2.8.8.1 to the Task Coach sources.''', '2046084'), Bug('''Opening a new task viewer didn't work.''', '2053008'), Bug('''Closing effort viewers causes exceptions.''', '2053008')]), Release('0.70.2', 'August 6, 2008', summary='''This release fixes some bugs and brings back the Fedora RPM.''', bugsFixed=[ Bug('''Using the "Save selection" feature together with mail attachments could result in data loss.'''), Bug('''Under KDE, the maximized state of the main window would not be restored.'''), Bug('''One couldn't e-mail tasks with non-ASCII characters in their description.''', '2025676'), Bug('''Dragging an email message from Thunderbird and dropping it on Task Coach could give a "UnicodeDecodeError" on Fedora.''', '1953166'), Bug('''When an invalid regular expression was entered in a search control, no items were displayed. Additionally, if it was saved in TaskCoach.ini, TaskCoach would crash on launch later.'''), Bug('''Mention of non-existing files in taskcoach.spec prevented the Fedora RPM from being built.'''), Bug('''The category viewer would sometimes skip keyboard navigation or need an extra mouse-click to get focus.''', '2020816', '2020812'), Bug('''On Mac OS X, the keyboard shortcut for 'help' was interfering with the shortcut for 'hide window'.''', '2006455')], featuresAdded=[ Feature('''Notes can be e-mailed.'''), Feature('''Display a tool tip to warn user when a search string is an invalid regular expression. In this case, default to substring search.'''), Feature('''Optionally put Task Coach in the user's startup menu so that Task Coach is started automatically when the user logs on (Windows only).''', '2017400', '1913650'), Feature('''Made (right-click) context menu's more consistent.''')], featuresRemoved=[ Feature('''Don't supply the dummy recipient 'Please enter recipient' to the email program when mailing a task. This only forces users to perform an extra action to remove that dummy text, while most if not all email programs will warn users when they forget to enter a recipient. ''', '2026833')]), Release('0.70.1', 'June 28, 2008', summary='''This release optionally brings back the tabbed user interface that was removed in the previous release and fixes a few bugs.''', bugsFixed=[ Bug('''The search control in the toolbar did not maintain state correctly for different viewers. Task Coach viewers now each have their own toolbar with search control.''', '1977196'), Bug('''Marking tasks completed or changing their priority would change the selection.''', '1888598', '1926362'), Bug('''On Max OS X, put preferences menu item in the TaskCoach menu instead of the Edit menu to conform with Mac OS X standards.''', '1965861'), Bug('''Focus issues: On Mac OS X, text couldn't be edited while the timer was running. On Windows, notifications from other programs overlapping with the main window would take away focus from dialogs.''', '1995469', '2000152'), Bug('''Prevent crash under Windows XP when dropping e-mail from Thunderbird if the APPDATA environment variable is not defined.''', '1960827'), Bug('''ImportError: No module named thirdparty.ElementTree. This exception would happen when using a source distribution of Task Coach or a package (rpm, deb) for Linux *and* when the default version of Python on the system is Python 2.4. Task Coach tried to import a module from the wrong package.''', '1964069'), Bug('''On Linux, when using a dark theme, use appropriate background colors for the category viewer and the text color buttons in the preferences dialog.''', '1988160'), Bug('''Remember whether the main window was maximized and if so, maximize the main window when starting the next time.''', '1969266'), Bug('''Correctly sort tasks on startup when sort column is 'Overall categories'.''', '1962003'), Bug('''Correctly redraw toolbar when it is 'damaged' by other windows''', '1977208'), Bug('''Correctly sort effort for subtasks in effort per day, per week, and per month effort viewers.''', '1989553'), Bug('''Better navigation with tab key in dialogs.'''), Bug('''Keep newlines in descriptions when printing or exporting to HTML.''')], featuresAdded=[ Feature('''Task Coach can now use either the old tabbed user interface (whose layout still cannot be saved, by the way) or the 'managed frame' interface introduced in release 0.70.0. This can be changed in the Preferences dialog.''', '1964213')]), Release('0.70.0', 'May 12, 2008', summary='''Small feature enhancements, more translations and several bug fixes. Task Coach is now distributed under the GPLv3+.''', featuresAdded=[ Feature('Paths to file attachments may be relative.'), Feature('Monthly recurrence of tasks.', '1933222', '1957687'), Feature('Added and reorganized keyboard short cuts.', '1857101'), Feature('''Start tracking effort for any active task using the system tray icon right-click menu.''', '1934738', '1739666'), Feature('''Added a largely complete Ukranian translation thanks to Vitovt and incomplete Finnish, Greek, Persian and Thai translations.''')], featuresChanged=[ Feature('''Slightly higher preference window so all icons fit and no scrolling is needed.''', '1918678')], bugsFixed=[ Bug('''Allow for editing seconds in effort editor.''', '1925748'), Bug('''The combobox in the effort detail editor always picked the first task when multiple tasks had the same subject, effectively prohibiting the user to move an effort record to another task with the same subject.''', '1918033'), Bug('''Reset invalid input in the priority field of the task editor to 0 instead of to the minimum priority (a large negative value).''', '1949222'), Bug('''"View->Filter->Reset all filters" now also unchecks all categories.'''), Bug('''Task Coach now is packaged as a proper Debian package, thanks to Stani Michiels. The Debian package installs a menu item for Task Coach in the Applications/Office menu.''', '1792706', '1792711', '1896796')], dependenciesChanged=[ Dependency('''Task Coach now uses Subversion for version control. See http://sourceforge.net/svn/?group_id=130831. This only affects you if you want to develop or use Task Coach source code.'''), Dependency('''Task Coach is now distributed under the GNU General Public License version 3 or (at your option) any later version. This only affects you if you want to distribute changed versions of Task Coach or want to include source code from Task Coach in other software.''')]), Release('0.69.2', 'March 28, 2008', summary='Bug fix release.', featuresAdded=[ Feature('''Task Coach now suggests a reminder date, based on the due date or start date of a task.'''), Feature('''Added a complete Norwegion Bokmal translation thanks to Amund Amundsen and incomplete Galician, Korean and Romanian translations.''')], bugsFixed=[ Bug('''Tasks created via the context menu of the category view now automatically belong to the selected category.''', '1592103'), Bug('''Update task status and colors at midnight.''', '1183043'), Bug('''Exception when starting Task Coach ("AttributeError: 'CategoryList' object has no attribute 'EventTypePrefix'").''', '1901385'), Bug('''Exception when reopening a closed viewer (with the message "ConfigParser.NoSectionError: No section: 'effortperdayviewer1'" in the log file).''', '1894488'), Bug('''Exception when resetting all filters in the task tree viewer (with the message "No option 'hidecompositetasks' in section: 'tasktreelistview'" in the log file).''', '1903679'), Bug('''Don't take the priority of completed subtasks into account when calculating the overall priority of a task.''', '1905774'), Bug('''It was not clear that backup files can be opened in Task Coach. Backup files now have the extension '.tsk.bak'. The file open dialog has '*.tsk.bak' as selectable file type to make it easier to open backup files.''', '1911538'), Bug('''Exception when opening the task menu while the toolbar is hidden.''')]), Release('0.69.1', 'February 14, 2008', summary='Bug fix release.', bugsFixed=[ Bug('''Exception when closing a task editor dialog. This causes updates of task states not to be displayed properly. The bug itself does not cause data loss, but it might trick users into saving an empty task file over their existing data.''', '1893634'), Bug('''On Mac OS X, users couldn't enter 'P' and 'M' in text boxes, because these were mapped to menu items. Reorganized keyboard shortcuts to fix this.''', '1890566'), Bug('''The arrow ('→') and infinity symbol ('∞') are not visible on all computers, so Task Coach is back to using '->' and 'Infinite' again.''')]), Release('0.69.0', 'February 9, 2008', summary='''This release makes it possible to repeat tasks on either a daily or a weekly basis and to add notes to categories. It also contains a number of other changes and bug fixes.''', featuresAdded=[ Feature('''Tasks can recur on a daily or weekly basis. This feature is not complete yet. Most obviously, recurring on a monthly basis is missing. Also, recurring tasks with recurring subtasks do not behave entirely correctly yet.''', '1623364', '1464793', '1264210'), Feature('''Notes can be assigned to categories.'''), Feature('''Added Bulgarian translation, thanks to Rumen Belev.'''), Feature('''Added Danish translation, thanks to different translators.'''), Feature('''Added a number of rather incomplete translations (Italian, Portuguese, Swedish, and Turkish). See http://www.taskcoach.org/i18n.html for how you can help improve these translations.'''), Feature('''When filtering by one or more categories, new tasks and notes are automatically added to those categories. Of course, you can still change the categories in the category tab of the edit dialog before pressing the OK button.'''), Feature('''Whether descriptions of tasks, effort records, categories and notes are shown in a popup tooltip window is now a setting.''', '1857098'), Feature('''Added menu items for increasing, decreasing, maximizing, and minimizing task priority.''', '1768210', '1570616'), Feature('''Clicking a column header in a task viewer now iterates through the following sort orders: 'ascending, after sorting by task status first', 'descending, after sorting by task status first', 'ascending, without sorting by task status first', 'descending, without sorting by task status first'.''')], featuresChanged=[ Feature('''Previously, unset dates were displayed as 'None' in date columns. To be consistent with how other attributes are displayed in columns, Task Coach now simply displays nothing for unset dates in date columns.'''), Feature('''Task Coach now uses the infinity symbol ('∞') to display the number of days left for tasks without a due date, instead of the word 'Infinite'.'''), Feature('''Task Coach now uses a real arrow symbol ('→') instead of '->' for separating parent and child subjects in the different viewers.''')], featuresRemoved=[ Feature('''Task Coach no longer keeps track of the 'last modification time' of tasks.''')], bugsFixed=[ Bug('''The reminder dialog didn't close when opening the task from the reminder dialog. If the user had entered a snooze option in the reminder dialog, that snooze option would be overwritten when closing the task editor.''', '1862286'), Bug('''Don't allow filtering by both a parent and a child category at the same time.'''), Bug('''Sorting by total categories in the task viewers didn't sort correctly.'''), Bug('''Save didn't work for task files without a file name and without tasks, but with categories or notes.'''), Bug('''Adding a task to a category or removing it from a category was not undoable.''')]), Release('0.68.0', 'December 26, 2007', summary='''This release makes it possible to open a task from its reminder dialog, adds a command line option to facilitate the PortableApps.com Task Coach distribution, makes starting and stopping effort tracking quicker and fixes a number of bugs.''', featuresAdded=[ Feature('''It is possible to open a task from its reminder dialog.'''), Feature('''Task Coach has a --ini command line option that can be used to specify where the ini file is located.''')], bugsFixed=[ Bug('''Start and stop tracking effort is faster for tasks that have a large number of associated effort records.'''), Bug('''Task Coach now gives an error message if the file that it tries to open doesn't exist.''', '1857093'), Bug('''When selecting all text in a text control with 'a', indeed select all text and not all tasks (Max OSX only).''', '1857091'), Bug('''Attempt to prevent crashes on Fedora 8 that sometimes happen when adding top level tasks.''', '1840111')]), Release('0.67.0', 'December 16, 2007', summary='''This release make it possible to color tasks via their categories, adds a translation in Hebrew, and makes it easier to mark tasks as not completed.''', featuresAdded=[ Feature('''Added Hebrew translation thanks to Ziv Barcesat.'''), Feature('''You can assign a color to a category. Tasks are colored according to the color of the categories they belong to.''', '1466159', '1784932'), Feature('''The 'mark task completed' button and menu items can now also be used to mark tasks as not completed.''', '1449714')], bugsFixed=[ Bug('''Don't move selection to the first line of the task tree viewer when deleting a subtask.''', '1849171')], dependenciesChanged=[ Dependency('''Task Coach now needs at least wxPython 2.8.6.0-unicode. Since the Windows installer and the Mac OSX dmg package have wxPython included, this only affects users of the RPM, Debian, and source distributions.''')]), Release('0.66.3', 'December 11, 2007', summary='Bug fix release to address crashes.', bugsFixed=[ Bug('''Work around a bug in the TreeListCtrl widget that caused crashes. The TreeListCtrl widget is used by Task Coach for the task tree view.''', '1846906', '1840111', '1832490', '1829622', '1821858', '1820497')]), Release('0.66.2', 'November 9, 2007', summary='Bug fix release to address crashes.', bugsFixed=[ Bug('''Don't crash when refreshing a tree view.''', '1828846')]), Release('0.66.1', 'November 7, 2007', summary='This release fixes a number of minor bugs.', bugsFixed=[ Bug('''When changing the sort order in a tree viewer, keep collapsed items collapsed and expanded items expanded.''', '1791638'), Bug('Sort categories alphabetically in task editor.', '1824180'), Bug('''Double clicking a task in the tree view did not open the task edit dialog.'''), Bug('''When filtering on a specific category, a newly added task belonging to that category was not shown in the task viewers.''')]), Release('0.66.0', 'October 31, 2007', summary='''Small feature enhancements and a translation in Traditional Chinese.''', featuresAdded=[ Feature('Added Traditional Chinese translation thanks to Joey Weng.'), Feature('''Added an 'overall categories' column that recursively shows the categories a task belongs to, i.e. its own categories and the categories of its parent task(s).''', '1790054'), Feature('Column widths are saved between sessions.', '1799998'), Feature('''Ctrl-PageUp and Ctrl-PageDown can be used to cycle through open viewers.''', '1818428')], bugsFixed=[ Bug('Make categories and category viewer more robust.', '1821776')]), Release('0.65.3', 'October 20, 2007', summary='''This bugfix release fixes one critical bug that affects users on the Windows platform and several minor bugs that affect users on all platforms.''', bugsFixed=[ Bug('''Don't leak GDI objects on Windows.''', '1813632', '1811058', '1810297', '1806004', '1803085'), Bug('''Don't notify of new version when the user has just installed that version.'''), Bug('''Mail disappears from Outlook when dropped in TaskCoach. Try to use Outlook to open mail attachment when it's the "default" mailer.''', '1812399'), Bug('''Mail task doesn't work.''', '1810356'), Bug('''Categories not sorted correctly.''', '1810469')]), Release('0.65.2', 'October 8, 2007', summary='This release is aimed at better performance.', bugsFixed=[ Bug('''Slow performance.''', '1806001', '1794007'), Bug('''Don't require administrator privileges for installation on Windows XP/Vista.''')]), Release('0.65.1', 'September 23, 2007', summary='''This release fixes one critical bug and two minor bugs.''', bugsFixed=[ Bug('''Tooltip windows steals keyboard focus on some platforms.''', '1791627'), Bug('''Taskbar icon is not transparent on Linux.''', '1648082'), Bug('''Saving a task file after adding attachments via the 'add attachment' menu or context menu fails.''', '1796829')]), Release('0.65.0', 'September 9, 2007', summary='''This release adds the ability to record notes, improves the flexibility of the different views, and fixes several bugs.''', featuresAdded=[ Feature('''Notes. Notes have a subject and an optional description. Notes can be hierarchical, i.e. notes may contain subnotes. Notes can be sorted and searched (filtered), printed, and exported. This feature can be turned on or off via the preferences dialog.'''), Feature('''Categories can be searched (filtered) using the search control on the toolbar. '''), Feature('''Category sorting can be changed: ascending or descending, case sensitive or case insensitive.'''), Feature('''Categories can have a description.'''), Feature('''Each viewer/tab has its own settings for sort order and visible columns. Viewers can be renamed. This makes it possible to e.g. create a 'Todo today'.'''), Feature('''The search control on the toolbar can (optionally) include subitems in the search result. This makes it easy to show one task and its subtasks in a task viewer or show effort for one task and its subtasks in an effort viewer.'''), Feature('''Added a setting to start Task Coach iconized either always, never, or only when Task Coach was iconized when last quitted.''', '1749886'), Feature('''Added a setting to turn off spell checking (Mac OSX only)''', '1768330'), Feature('''Added (incomplete) translations in Brazilian Portuguese, Czech, Latvian and Polish. See http://www.taskcoach.org/i18n.html for more information about translations and on how you can help.''')], bugsFixed=[ Bug('''Made subject column resizable.''', '1702270', '1766664'), Bug('''Enable export of data containing non-ASCII characters to CSV.''', '1753422'), Bug('''Don't activate another viewer when another application is minimized (Windows only).''', '1765103'), Bug('''Outlook 2003 email messages added as attachment couldn't be opened from Task Coach.''', '1748738'), Bug('''German translation had wrong menu accelerators.''', '1772019'), Bug('''Apply undo/redo/cut/copy/paste actions to text if a text control is visible and has focus (Mac OSX only)''', '1768315'), Bug('''Added a copy of the ElementTree package to the Task Coach source code, so the source code distribution of Task Coach works with Python 2.4, without needing to install ElementTree.''', '1783575')]), Release('0.64.2', 'June 30, 2007', summary='''This release fixes sorting of tasks by priority and makes sure that Task Coach does not block OS shutdown.''', bugsFixed=[ Bug('''Don't take child task priority into account when sorting by priority in the task tree view.''', '1732968'), Bug('''Don't block OS shutdown on Windows.''', '1735532', '1484652', '1489870')]), Release('0.64.1', 'June 10, 2007', bugsFixed=[ Bug('''Task Coach would complain about an error when closing the application. This was due to a missing package in the Windows executable distribution.''', '1727237'), Bug('''On Linux, Task Coach was not very helpful when the taskcoachlib package is installed for a different python version than the one the user is starting Task Coach with. ''', '1728485')]), Release('0.64.0', 'May 28, 2007', bugsFixed=[ Bug('''Ubuntu users had to manually install the wxaddons package. This package is now included in the Task Coach distribution.'''), Bug('''Don't hide the main window when it's iconized by default because on Linux with some window managers the main window receives minimize events in other situations as well, most notably when changing virtual desktops. So, to reduce the chances of confusing new users this option is off by default.''', '1721166')], featuresAdded=[ Feature('''Added Breton translation thanks to Ronan Le Déroff'''), Feature('''Show a tooltip with a task's description when the mouse is hovering over a task. Patch provided by Jérôme Laheurte.''', '1642608', '1619521', '1578623'), Feature('''Allow for dragging emails from Thunderbird and Outlook to the attachment pane of tasks to create email attachments. Opening an attached email will open it in the user's default mail program. Patch provided by Jérôme Laheurte.''')]), Release('0.63.2', 'April 20, 2007', bugsFixed=[ Bug('''Task tree view does not refresh tasks after task editing.''', '1701368')]), Release('0.63.1', 'April 16, 2007', bugsFixed=( Bug('''Dropping a file on a task in the tree viewer didn't work.'''), Bug('''Showing the description column in the composite effort viewers (effort per day, per week, per month) caused exceptions.'''), Bug('''The task tree viewer was trying to update tasks that weren't shown, resulting in exceptions.''', '1697568', '1697574'))), Release('0.63.0', 'April 9, 2007', featuresAdded=( Feature('''Export to HTML and printing of tasks colors tasks appropriately.'''), Feature('''Added description columns to the task and effort viewers. Like other columns, the description column is printed and exported if visible.'''), Feature('''Added reminder column to the task viewers.''')), bugsFixed=( Bug("""Cancelling printing would give a 'Task Coach Error'"""), Bug('''Make sure the main window is on a visible display when starting. This is for laptop users that sometimes extend their desktop to a second display.''', '1667120'), Bug('''Sort categories alphabetically in the categories viewer.''', '1694532'), Bug('''Filtering a category no longer automatically checks all subcategories. However, tasks belonging to a subcategory are still filtered (since they belong to the filtered category via the subcategory).'''))), Release('0.62.0', 'April 1, 2007', dependenciesChanged=[ Dependency('''Task Coach now requires wxPython 2.8.3-unicode or newer (this is only relevant if you use the source distribution).''')], bugsFixed=[ Bug('''When saving timestamps in a task file, e.g. for effort start and stop times, microseconds are no longer saved as part of the timestamp. The microseconds caused problems when importing Task Coach data in Excel.''', '1660670'), Bug('''When exporting tasks to HTML or CSV format from the task tree viewer, child tasks hidden by a filter would still be exported.''', '1659307')], featuresAdded=[ Feature('Added Slovak translation thanks to Viliam Búr'), Feature('''Printing a selection is enabled (except on Mac OSX).'''), Feature('''The notebook that contains the different views allows for dragging and dropping of tabs, enabling you to create almost any layout you like. Unfortunately, this widget does not yet provide functionality to store the layout in the TaskCoach.ini file.'''), Feature('''Whether the clock icon in the task bar blinks or not is now a setting (see Edit -> Preferences -> Window behavior.'''), Feature('''The toolbar buttons for 'new item', 'new sub item', 'edit item' and 'delete item' now work for tasks, effort records and categories, depending on what view is active.'''), Feature('''Added a category column for task viewers.''', '1629283'), Feature('''Added an attachment column that shows whether a task has one or more attachments.'''), Feature('''Added an 'Open all attachments' menu item for tasks'''), Feature('''Added snooze option to reminders.''')], featuresChanged=[ Feature('''Removed filter sidebar. Filter options previously available on the sidebar are now available via the search filter on the toolbar, the category tab and the view menu. ''')]), Release('0.61.6', 'January 27, 2007', bugsFixed=[ Bug('''Crash on trying to use down-arrow to move to sub-task.''', '1640806'), Bug('''When deleting a task that has subtasks that belong to categories, the task file gets 'corrupted', giving errors when loading it.''', '1638419', '1589993')]), Release('0.61.5', 'January 10, 2007', bugsFixed=[ Bug('''Opening a Task Coach file with many effort records is slow. Opening an edit dialog for a task with many effort records is slow too.''', '1630102')]), Release('0.61.4', 'December 30, 2006', featuresAdded=[ Feature('Added RPM and Debian distributions.')], bugsFixed=[ Bug('Make Task Coach work with Python 2.5.'), Bug('Cancel reminders when marking a task completed.', '1606990'), Bug('Unchecking a reminder would cause an exception.', '1606990'), Bug('Column resizing is now less jumpy.', '1606319'), Bug('MSVCP71.DLL was missing from the Windows distribution.', '1602364'), Bug('''Marking a task completed while completed tasks are hidden wouldn't immediately hide the completed task.''', '1572920'), Bug('''The category filter was not applied correctly on launch; showing categories as filtered but not hiding the associated tasks.''', '1603846'), Bug('''Turning on filtering for a category didn't mark the task file as changed.''', '1603846')]), Release('0.61.3', 'November 19, 2006', bugsFixed=[ Bug('''If saving the TaskCoach.ini file would fail, displaying the error message would fail (too) because the i18n translator had not been imported at that point.''', '1598568'), Bug('''Mac OSX distribution did not start. Upgraded py2app.''', '1594190'), Bug('''Dragging and dropping a task in the task tree view would sometimes drag the wrong task.'''), Bug('''Give category dialog focus and select default category title to make it easier to quickly enter categories using the keyboard.'''), Bug('''The gdiplus.dll was missing from the Windows distribution.''', '1596843')]), Release('0.61.2', 'November 11, 2006', bugsFixed=[ Bug('''Some Linux distributions do not have the BROWSER environment variable set, causing errors. Be prepared.''', '1567244'), Bug('''Saving failed with a UnicodeError if a category description would contain non-ASCII characters.''', '1589991'), Bug('''Deleting a task would not delete the task from the categories it belonged to, resulting in errors upon next loading of the task file.''', '1589993')]), Release('0.61.1', 'November 3, 2006', bugsFixed=[ Bug('''Source distribution was missing some files.''')]), Release('0.61.0', 'November 2, 2006', bugsFixed=[ Bug('''Displaying a previously hidden toolbar would result in an incorrectly drawn window.''', '1551885'), Bug('''Exported HTML didn't contain an explicit charset.''', '1561490'), Bug('''Negative effort preventation was not working correctly.''', '1575458')], featuresAdded=[ Feature('''Hierarchical categories.'''), Feature('''Export in Comma Separated Values (CSV) format. As with export to HTML, the current view is exported.''', '1534862'), Feature('''Task Coach can be run from a removable medium, such as a USB stick. On Windows, use the installer to install Task Coach to the medium. Then, start Task Coach and turn the setting 'Save settings to same directory as program' on. This setting can be found in Edit -> Preferences -> File). This makes sure the TaskCoach.ini file is saved on the removable medium, in the same directory as the main program.''', '1464435')]), Release('0.60', 'August 30, 2006', bugsFixed=[ Bug('''Closing a task file did not reset the 'lastfile' setting.''', '1548126'), Bug('''Selecting Japanese translation would cause error upon next restart.''', '1545593'), Bug('''Task Coach wouldn't quit when the setting 'Minimize window when closing' was set.''', '1545936'), Bug('''Deleting an effort record would throw an exception.''', '1548117')], websiteChanges=[ Website('Added MD5 digests to download page.', 'download.html')]), Release('0.59', 'August 23, 2006', bugsFixed=[ Bug('''Improved efficiency while tracking effort for tasks.''', '1429545'), Bug('''The column width of the list with filenames in the attachment page of the task editor is now adaptable, so that long filenames can be made visible entirely.''', '1503006'), Bug('''Translation errors in tips.''', '1525410', '1525423'), Bug('''When having multiple tasks with the same subject, new effort records would always be created for the first of these tasks instead of the selected task.''', '1513403', '1524037'), Bug('''Opening a file with a non-ascii filename specified on the command line did not work.''', '1532528')], featuresAdded=[ Feature('''Japanese translation thanks to Yutaka Usui.'''), Feature('''Filter sidebar.'''), Feature('''Printing. Selecting 'File' -> 'Print' will print the currently active view. This means only the visible columns will be printed and only the filtered tasks will be printed, in the current sort order.''', '1481881', '1472662', '1307275', '1205819'), Feature('''Export to HTML. Selecting 'File' -> 'Export' -> 'Export to HTML' will export the currently active view to HTML. This means only the visible columns will be exported and only the filtered tasks will be printed, in the current sort order.''', '1375773', '1205819'), Feature('''Columns with numbers or dates are right-aligned.''')]), Release('0.58', 'May 14, 2006', bugsFixed=[ Bug('''On Mac OSX, Task Coach would seg fault upon exiting.'''), Bug('''Right-clicking a task in the task tree view would, correctly, pop up the context menu, but would not select the underlying task.''', '1440416'), Bug('''The memory leak in the TreeListCtrl was fixed in wxPython 2.6.3.2. The installer for Windows and the disk image for Mac OSX use wxPython 2.6.3.2, thus fixing the memory leak in Task Coach. If you use the source distribution of Task Coach you will have to install wxPython 2.6.3.2 yourself to get the fix.''', '1309858'), Bug('''Filtering on task categories was improved.'''), Bug('''Hitting Delete when editing the text in the find dialog would delete any selected tasks. Unfortunately, to fix this bug some accelerators had to be changed: the accelerator for "Delete task" is now Ctrl-Delete, for "New task" it is now Ctrl-Insert, and for "New subtask" it is now Shift-Ctrl-Insert.''', '1463316'), Bug('''Don't close the current file when user cancels opening another file.''', '1475473')], featuresAdded=[ Feature('''Added toolbar button for 'new subtask'.'''), Feature('''Task Coach searches incrementally as you type a query in the find bar.'''), Feature('''When dragging a task in the tree view, hover over a tree button (a boxed plus-sign or a triangle, depending on your platform) to expand the sub tree.'''), Feature('''To promote a sub task to a top-level task in the tree view, drag it and drop it anywhere as long as it is not on another task.'''), Feature('''When filtering tasks by multiple categories, you may either choose to view tasks that belong to at least one of the selected categories, or view tasks that belong to all selected categories.''')]), Release('0.57', 'March 16, 2006', featuresAdded=[ Feature('''Task Coach is now also available as disk image (.dmg) for Mac OSX (tested on OSX 10.4).''')], bugsFixed=[ Bug('''When adding a new effort to a task, take into account that the user may have changed the task that the effort belongs to in the effort editor dialog (using the dropdown combobox). Because Task Coach didn't do that, the effort would be added twice if the user changed the task of the new effort record.''', '1443906'), Bug('''A file that was saved with an active effort couldn't be loaded again. Task Coach would complain that the file was invalid.''', '1433611'), Bug('''Added different sizes of the Task Coach icon. This prevents scaling up the 16x16 version to 32x32 on Windows or to even 128x128 on the Mac.''', '1406651', '1434044')]), Release('0.56', 'February 14, 2006', featuresAdded=[ Feature('''Tasks can have attachments. Attachments can be added, removed and opened. Opening of attachments is done by starting the default application for the attachment file type. Attachments can also be dragged from a file browser and dropped onto a task in one of the task viewers or on the task attachment pane in the task editor dialog.''', '1250241', '1339113'), Feature('''Whether a task is marked completed when all its child tasks are completed is now a setting that can be changed application-wide via the preferences dialog. The application-wide setting can be overruled on a task-by-task basis via the task editor dialog.''', '1393803'), Feature('''Task Coach shows a 'tips' dialog at startup. Hopefully it is helpful for new users. Experienced users can turn it off.''')], featuresChanged=[ Feature('''More visual feedback when dragging tasks in the tree view.'''), Feature('''Task editor layout changed. Priority is now part of the task description. Budget and revenue have been merged into one pane.''', '1312284')], implementationChanged=[ Implementation('''Default values for task and effort attributes are no longer saved in the Task Coach file, resulting in an estimated 33%% reduction of file size.''')]), Release('0.55', 'January 13, 2006', dependenciesChanged=[ Dependency('''Task Coach now requires wxPython 2.6.1.0-unicode or newer (this is only relevant if you use the source distribution).''')], bugsFixed=[ Bug('''Sorting by total budget was broken.''', '1399116')], featuresAdded=[ Feature('''Simple reminders.''', '1372932')]), Release('0.54', 'January 6, 2006', bugsFixed=[ Bug('''The accelerators INSERT and Ctrl+INSERT were mapped to 'c' and 'Command-Copy' on the Mac, which caused Task Coach to create a new task whenever the user typed a 'c'. Fixed by changing the accelerators for new task and new subtask to Ctrl+N and Shift+Ctrl+N (on the Mac only).''', '1311413'), Bug('''It was possible to enter control characters -- by copy-and-pasting -- resulting in invalid XML in the Task Coach file.''', '1288689'), Bug('''One python file was missing in the source distribution of release 0.53. Added a test to check that all python files in the source are actually added to the source distributions, so hopefully this will never happen again.''', '1389224')], featuresAdded=[ Feature('''Effort can be exported as iCalendar (ICS) file and imported into e.g. Mozilla Sunbird. Each effort record is exported as a "VEVENT". This is an experimental feature. Patch provided by Gissehel.''')]), Release('0.53', 'December 19, 2005', bugsFixed=[ Bug('''On some platforms, Python and wxPython seem to disagree on what the maximum integer is. The maximum integer is used to set the maximum and minimum allowed priority values. Fixed by allowing priority values between the rather arbitrary minimum and maximum values of -1000000000 and 1000000000.'''), Bug('''Fixed exception: "wx._core.PyAssertionError: C++ assertion "ucf.GotUpdate()" failed in ..\..\src\msw\textctrl.cpp(813): EM_STREAMIN didn't send EN_UPDATE?". This seems to be a bug in wxPython 2.6.0 and 2.6.1. Patch provided by Franz Steinhaeusler.''', '1344023')], featuresAdded=[ Feature('''Columns in the effort view are hideable too, just like columns in the task views. See 'View' -> 'Effort columns', or right-click a column header in the effort view.'''), Feature('''Added possibility to mail tasks via your default mailer, see 'Task' -> 'Mail task' or right-click a task in one of the task views.'''), Feature('''Added option to minimize the window when you attempt to close the application via the close button on the window title bar or the system menu. See 'Edit' -> 'Preferences' -> 'Window behavior'.''')]), Release('0.52', 'November 29, 2005', featuresRemoved=[ Feature('''Files in the old comma-separated format can no longer be read by Task Coach.''')], featuresAdded=[ Feature('''Tasks can be dragged and dropped.''', '1262863'), Feature('''Tasks can have an hourly fee and/or a fixed fee. Revenue is calculated based on effort spent.''', '1361790'), Feature('''First tiny steps towards a user manual, see 'Help' -> 'Help contents'.'''), Feature('''Whether the main window hides itself when iconized is now adjustable behavior. See 'Edit' -> 'Preferences'.''')], featuresChanged=[ Feature('''Backups are created just before saving, instead of when loading a .tsk file. Patch provided by Maciej Malycha.''')], bugsFixed=[ Bug('''For completed tasks, the number of days left for a task is now the number of days between the completion date and the due date. This prevents that the number of days left of completed tasks keeps decreasing, i.e. becoming more negative. For uncompleted tasks, the number of days left is still the number of days between today and the due date, of course. Patch provided by Maciej Malycha.'''), Bug('''Put taskocachlib package first on the Python search path to prevent name conflict with the config module on Gentoo Linux.''', '1353636'), Bug('''Mention blue icon in the help on task colors.''', '1355985'), Bug('''Don't allow empty categories.''', '1333896')]), Release('0.51', 'October 30, 2005', featuresAdded=[ Feature('''Escape closes pop-up windows. Patch provided by Markus Meyer.''', '1241547'), Feature('''The task of an effort record can be changed.'''), Feature('''Effort records can be cut, copied, and pasted.''')], bugsFixed=[ Bug('''Hitting enter in the find dialog didn't work on Linux.'''), Bug('''Old TaskCoach.ini files with a language setting of 'en' instead of 'en_US' or 'en_GB' would cause an exception. Patch provided by Nirendra Maharaj.''')]), Release('0.50', 'October 2, 2005', bugsFixed=[ Bug('''Exception was thrown when opening a task with logged effort.''')]), Release('0.49', 'October 2, 2005', bugsFixed=[ Bug('''Previous release did not work on Linux/Mac OSX because of a platform inconsistency between Windows and Linux (GetCountPerPage method is missing on Linux, added manually).''', '1305457')], featuresAdded=[ Feature('''Task colors can be adjusted via 'Edit' -> 'Preferences'.''', '1205579')]), Release('0.48', 'September 24, 2005', bugsFixed=[ Bug('''Filtering tasks by status ('View' -> 'Tasks that are' -> '...') would cause an exception.'''), Bug('''Sorting by days left would cause an exception.''', '1295122')]), Release('0.47', 'September 18, 2005', featuresAdded=[ Feature('''Added Hungarian translation thanks to Majsa Norbert.'''), Feature('''The task tree view now also shows columns with task details, similar to the task list view.''', '1194642'), Feature('''Sorting on task subject can now also be case insensitive. See the menu item 'View' -> 'Sort' -> 'Sort case sensitive'.''', '1228873'), Feature('''Recent files are remembered and can be opened from the File menu. The maximum number of recent files shown can be set in the Preferences dialog. Set the maximum to zero to disable this feature. ''', '1191707'), Feature('''The last modification time of tasks can be viewed.''')], bugsFixed=[ Bug(''''View'->'All tasks' now also resets any search criterium entered by the user in the search bar.'''), Bug('''When opening a task with a (long) description, the cursor will be positioned on the first line of the text, instead of on the last line.''', '1265845'), Bug('''When viewing tasks due before a certain date in the tree view, tasks with subtasks due before that date will be visible.''', '1275708')]), Release('0.46', 'August 12, 2005', bugsFixed=[ Bug('''In the effort views, the status bar would show information about tasks, not about effort.'''), Bug('''Entering a negative effort duration while using a non-english language would crash Task Coach.''', '1250177'), Bug('''Having a two letter language string (e.g. 'en') in the TaskCoach.ini file would cause an error in the preferences dialog.''', '1247506')], featuresChanged=[ Feature('''Keyboard shortcut for deleting a task is now 'Delete' instead of 'Ctrl-D' and 'Ctrl-Enter' marks the selected task(s) completed.''', '1241549')], featuresAdded=[ Feature('''Double-clicking the system tray icon when Task Coach is not minimized will raise the Task Coach window.''', '1242520'), Feature('''Added Spanish translation thanks to Juan José.''')], implementationChanged=[ Implementation('''Task ids are now persistent, i.e. they are saved to and loaded from the Task Coach (XML) file. This will make it easier, in the future, to keep tasks synchronized with external sources, e.g. Outlook.'''), Implementation('''Task Coach now keeps track of the last modification time of tasks. These times are saved to and loaded from the Task Coach (XML) file. This change is also in preparation of synchronization functionality.''')]), Release('0.45', 'July 26, 2005', bugsFixed=[ Bug('''When tracking effort the task file would be marked as changed after every clock tick.'''), Bug('''Task priority can now be set to both positive and negative integers.'''), Bug('''Opening a help dialog before the splash screen disappeared would make Task Coach stop responding to input. Fixed by making the helpdialogs modeless (as they should be).''', '1241058')], featuresChanged=[ Bug('''Setting the start date of a subtask earlier than the start date of the parent task, or setting the due date of a subtask later than the due date of the parent task will adapt the parent start or due date as necessary.''', '1237634')]), Release('0.44', 'July 21, 2005', featuresAdded=[ Feature('Added Russian translation thanks to Valdimir Ilyash.')]), Release('0.43', 'July 19, 2005', bugsFixed=[ Bug('''Tree and list view were not updated correctly when changing sort key or sort order.''')]), Release('0.42', 'July 17, 2005', bugsFixed=[ Bug('''Double clicking a task with children in the tree view would open the edit dialog and expand or collapse the task as well. Fixed to not collapse or expand the task when double clicking it.'''), Bug('''Adding a subtask to a collapsed parent task now automatically expands the parent task.'''), Bug('''Changing the description of a task or effort record wouldn't mark the task file as changed.'''), Bug('Time spent is now updated every second.', '1173048'), Bug('''Don't try to make a backup when loading the file fails. Reported by Scott Schroeder.'''), Bug('''(Windows installer only) Association between .tsk files and Task Coach was broken.''')], featuresChanged=[ Feature('''The start date of a task can now be left unset, creating a task that is permanently inactive. This can be useful for activities that you would normally not want to plan, but have to keep a time record for, e.g. sickness.''')]), Release('0.41', 'June 20, 2005', bugsFixed=[], featuresAdded=[ Feature('''URL's (including mailto) in task and effort descriptions are clickable.''', '1190310'), Feature('''Tasks can have a priority. Priorities are integer numbers: the higher the number, the higher the priority. Default priority is 0. Negative numbers are allowed''', '1194527', '1194567', '1210154')], featuresChanged=[ Feature('''Default start date of new subtasks is today (used to be the start date of the parent task)'''), Feature('''When 'sort by status first' is on, active tasks always come before inactive tasks which in turn come before completed tasks, regardless of whether the sort order is ascending or descending.''')]), Release('0.40', 'June 16, 2005', bugsFixed=[ Bug('Budget left was rendered incorrectly when over budget.', '1216951')], featuresAdded=[ Feature('''Tasks can belong to zero or more categories. Tasks can be viewed/hidden by category.''', '1182172')]), Release('0.39', 'June 6, 2005', bugsFixed=[ Bug('''When sorting by due date, composite tasks in the tree view are now sorted according to the most urgent subtask instead of the least urgent subtask.''')], featuresAdded=[ Feature('''Tasks can be sorted on all attributes (subject, start date, due date, budget, etc.) This includes options to sort ascending or descending and to first sort by status (active/inactive/completed).'''), Feature('Sorting order can be changed by clicking on column headers.'), Feature('Added German translation, thanks to J. Martin.'), Feature('Minor view menu changes.', '1189978')]), Release('0.38', 'May 22, 2005', featuresAdded=[ Feature('Simplified Chinese user interface added, thanks to limodou.'), Feature('Autosave setting to automatically save after every change.', '1188194'), Feature('''Backup setting to create a backup when opening a Task Coach file.'''), Feature('''Added preference dialog to edit preferences not related to the view settings.'''), Feature('Now using gettext for i18n.')]), Release('0.37', 'May 14, 2005', bugsFixed=[ Bug('Icons in tree view on Windows 2000.', '1194654')], featuresAdded=[ Feature('''Columns in the task list view can be turned on/off by right-clicking on the column headers.'''), Feature('Tasks can be sorted either by due date or alphabetically.', '1177984'), Feature('More options when editing an effort record.'), Feature('Used a new DatePickerCtrl.', '1191909')]), Release('0.36', 'May 5, 2005', bugsFixed=[ Bug('Descriptions loose newlines after reload.', '1194259')], featuresAdded=[ Feature('French user interface added, thanks to Jérôme Laheurte.')]), Release('0.35', 'May 2, 2005', bugsFixed=[ Bug('''Toolbar icons had a black background instead of a transparent background on some Windows platforms.''', '1190230'), Bug('Package i18n was missing.', '1190967')], featuresAdded=[ Feature('''Internationalization support. Task Coach is available with Dutch and English user interface.''', '1164461'), Feature('''Added 'expand selected task' and 'collapse selected task' menu items to the view menu and the task context menu.''', '1189978')], featuresRemoved=[ Feature(''''Select' -> 'Completed tasks'. This can be done through the View menu too.''')]), Release('0.34', 'April 25, 2005', bugsFixed=[ Bug('msvcr71.dll was not shipped with the Windows installer.', '1189311'), Bug('''Budgets larger than 24 hours were not written correctly to the XML file.'''), Bug('Mark completed stops effort tracking of parent task.', '1186667')]), Release('0.33', 'April 24, 2005', bugsFixed=[ Bug('''The .tsk fileformat is now XML, making Task Coach fully unicode-enabled.''')]), Release('0.32', 'April 18, 2005', bugsFixed=[ Bug('''Task Coach failure on startup due to trying to add a column from the task list view to the effort view.'''), Bug('''Budget couldn't be filled in in the executable Windows distribution "LookupError: unknown encoding: latin1".'''), Bug('Loading files with the executable Windows distribution failed.', '1185259')]), Release('0.31', 'April 17, 2005', dependenciesChanged=[ Dependency('''Task Coach migrated to Python 2.4.1 and wxPython 2.5.5.1. Added check to give friendly message if wxPython version is below the required version number.''')], bugsFixed=[ Bug('''A unittest.py bug that was fixed in Python 2.4 revealed a bug in test.py.''', '1181714'), Bug('''When searching for a task that is completed, while the 'show completed' switch is off, the search shows the path to the task (i.e. parent tasks), but not the matched task itself.''', '1182528'), Bug('''When searching for tasks in the tree view, composite tasks are expanded automatically to show the children that match the search string.''', '1182528'), Bug('''Columns were hidden by setting their width to 0, but that did not make them entirely invisible on some Linux platforms.''', '1152566'), Bug('''When editing a subtask, sometimes its branch would be collapsed.''', '1179266')], featuresAdded=[ Feature('''In the task list and effort list the task column is automatically resized to take up the available space.'''), Feature('''Added columns to the task list view for: budget, total budget, budget left, and total budget left.'''), Feature('''Reorganized view menu, added extra task filters, added menu item to reset filters''', '1181762', '1178882', '1178780'), Feature('''The subject is selected in the task editor so that replacing it is a bit easier.''', '1180887')]), Release('0.30', 'April 11, 2005', bugsFixed=[ Bug('More than one task due today would crash Task Coach.', '1180641')]), Release('0.29', 'April 10, 2005', bugsFixed=[ Bug('New effort in the context menu did not work in release 0.28.', '1178562'), Bug('''When selecting 'View' -> 'Completed tasks' in the task tree, only completed root tasks were hidden.''', '1179372')], featuresAdded=[ Feature('''What tab is active is now a persistent setting. This includes the tabs and choices in the main window and the effort choices in the task editor.''', '1178779'), Feature("Reordered 'View' -> 'Tasks due before end of' menu.", '1178880'), Feature("Added a separate 'Budget' tab in the task editor."), Feature('''Taskbar icon now indicates whether task effort tracking is on.''', '1178057'), Feature('Effort is sorted from most recent to least recent.', '1179332'), Feature('''Changed task/subtask separator in the task list view from '|' to ' -> '.''', '1179374')]), Release('0.28', 'April 6, 2005', bugsFixed=[ Bug('''Hitting return or double click to edit effort in the task editor now works.''', '1172164'), Bug('''Subtasks with the same name would only be visible once in the task tree view.''')], featuresAdded=[ Feature('''You can hide composite tasks in the task list view so that only leaf tasks are visible. Menu item 'View' -> 'Tasks with subtasks'. Requested by Brian Crounse.''')]), Release('0.27', 'April 4, 2005', featuresAdded=[ Feature('Tasks can have a budget.')]), Release('0.26', 'March 28, 2005', bugsFixed=[ Bug('Marking a task completed did not stop effort tracking.', '1159918'), Bug('Reading lots of efforts was slow.')], featuresAdded=[ Feature('''Save button is disabled when saving is not necessary, requested by Mike Vorozhbensky.''', '1164472'), Feature('''Effort records have a description field, requested by Kent.''', '1167147')]), Release('0.25', 'March 13, 2005', bugsFixed=[ Bug('''The menu item 'Effort' -> 'New effort' did not work in release 0.24.''')], featuresAdded=[ Feature('XML export now includes effort records.'), Feature('''Effort per day, per week and per month view now also show total time spent (i.e. time including time spent on subtasks).''')]), Release('0.24', 'March 10, 2005', bugsFixed=[ Bug('''Saving a selection of tasks to a separate file would also save all effort records to that file (instead of just the effort records for the selected tasks), giving errors when loading that file.'''), Bug('''Deleting a task with effort records would not delete the effort records.''')], featuresAdded=[ Feature('''The tracking status of tasks is saved. So if you start tracking a task, quit Task Coach, and restart Task Coach later, effort for that task is still being tracked. Requested by Bob Hossley.''')]), Release('0.23', 'February 20, 2005', bugsFixed=[ Bug('''Fixed a couple of bugs in the unit tests, discovered by Stephen Boulet and Jérôme Laheurte on the Linux platform.''')]), Release('0.22', 'February 17, 2005', bugsFixed=[ Bug('''In the effort summary view, effort spent on a task in the same month or week but in different years would erroneously be added. E.g. effort in January 2004 and January 2006 would be added.'''), Bug('''The mechanism to prevent effort periods with a negative duration (i.e. a start time later than the stop time) in the effort editor was invoked on each key stroke which caused inconvenient behavior. Fixed it by only invoking it when the user leaves the text or combo box.''')], featuresAdded=[ Feature('''Added possibility to start tracking effort for a task, with start time equal to the end time of the previous effort period. This is for example convenient if you stop working on a task and then spend some time deciding on what to do next. This is the 'Start tracking from last stop time' menu item in the 'Effort' menu.'''), Feature('''(Re)Added the unittests to the source distribution. See INSTALL.txt.'''), Feature('''Export to XML. Currently limited to tasks, effort is not exported yet.''')]), Release('0.21', 'February 9, 2005', bugsFixed=[ Bug('''Setting the start date/time in the effort editor would change the stop date/time while not strictly necessary to prevent negative durations.'''), Bug('''Refreshing the virtual ListCtrl failed under wxPython2.5-gtk2-unicode-2.5.3.1-fc2_py2.3 and wxPython-common-gtk2-unicode-2.5.3.1-fc2_py2.3. Reported by Stephen Boulet.'''), Bug('''After iconizing the main window for a second time, the icon in the task bar wouldn't be hidden anymore. Reported and fixed by Jérôme Laheurte.''')]), Release('0.20', 'February 6, 2005', bugsFixed=[ Bug('Reading .tsk files version 2 failed.'), Bug('''Completed child tasks were not hidden in the tree view when 'View->Completed tasks' was on.'''), Bug('Hiding the find panel did not clear the search filter.'), Bug('''When searching for tasks, not all matches were shown in the tree view.'''), Bug('''Displaying time spent and total time spent in the list view for more than a dozen tasks and efforts was slow. Used caching to speed it up.'''), Bug('''Tool tips on the toolbar included mnemonics and accelerator characters on Linux. Reported on python-2.3.4 and wxPython2.5-gtk2-unicode-2.5.3.1-fc2_py2.3 on Suse 9.2 by Stephen Boulet.''')], featuresAdded=[ Feature('''Effort can be viewed summarized per day, per week, and per month.'''), Feature('''Effort for a specific task can be viewed (and edited) in the task editor.'''), Feature('''Effort tracking can be stopped from the taskbar menu.'''), Feature('''Size and position of the main window are saved in the settings and restored on the next session. This also includes whether the main window is iconized or not.'''), Feature('Splash screen can be turned off.')]) ] taskcoach-1.4.3/changes.in/changetypes.py000066400000000000000000000042041265347643000203720ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import textwrap class Release: def __init__(self, number, date, bugsFixed=None, featuresAdded=None, featuresRemoved=None, featuresChanged=None, dependenciesChanged=None, implementationChanged=None, websiteChanges=None, distributionsChanged=None, teamChanges=None, summary=''): self.number = number self.date = date self.summary = summary self.bugsFixed = bugsFixed or [] self.featuresAdded = featuresAdded or [] self.featuresRemoved = featuresRemoved or [] self.featuresChanged = featuresChanged or [] self.dependenciesChanged = dependenciesChanged or [] self.implementationChanged = implementationChanged or [] self.websiteChanges = websiteChanges or [] self.distributionsChanged = distributionsChanged or [] self.teamChanges = teamChanges or [] class Change(object): def __init__(self, description, *changeIds): self.description = description self.changeIds = changeIds class Bug(Change): pass class Bugv2(Bug): pass class Feature(Change): pass class Dependency(Change): pass class Implementation(Change): pass class Distribution(Change): pass class Website(Change): def __init__(self, description, url, *changeIds): super(Website, self).__init__(description, *changeIds) self.url = url class Team(Change): pass taskcoach-1.4.3/changes.in/converter.py000066400000000000000000000201511265347643000200660ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import textwrap, changetypes, re # Change (bugs fixed, features added, etc.) converters: class ChangeConverter(object): def convert(self, change): result = self.preProcess(change.description) if hasattr(change, 'url'): result += ' (%s)'%self.convertURL(change.url) if change.changeIds: convertedIds = self.convertChangeIds(change) result += ' (%s)'%', '.join(convertedIds) return self.postProcess(result) def preProcess(self, changeToBeConverted): return changeToBeConverted def postProcess(self, convertedChange): return convertedChange def convertChangeIds(self, change): return [self.convertChangeId(change, id) for id in change.changeIds] def convertChangeId(self, change, changeId): return changeId def convertURL(self, url): return url class ChangeToTextConverter(ChangeConverter): def __init__(self): self._textWrapper = textwrap.TextWrapper(initial_indent='- ', subsequent_indent=' ', width=78) # Regular expression to remove multiple spaces, except when on # the start of a line: self._multipleSpaces = re.compile(r'(?%%(id)s' LinkToSourceForgeBugReport = LinkToSourceForge%{'atid': '719134'} LinkToSourceForgeBugReportv2 = '%(id)s' LinkToSourceForgeFeatureRequest = LinkToSourceForge%{'atid': '719137'} NoConversion = '%(id)s' def preProcess(self, changeToBeConverted): changeToBeConverted = re.sub('<', '<', changeToBeConverted) changeToBeConverted = re.sub('>', '>', changeToBeConverted) return changeToBeConverted def postProcess(self, convertedChange): listOfUrlAndTextFragments = re.split('(http://[^\s()]+[^\s().])', convertedChange) listOfConvertedUrlsAndTextFragments = [] for fragment in listOfUrlAndTextFragments: if fragment.startswith('http://'): fragment = self.convertURL(fragment) listOfConvertedUrlsAndTextFragments.append(fragment) convertedChange = ''.join(listOfConvertedUrlsAndTextFragments) return '
  • %s
  • '%convertedChange def convertChangeId(self, change, changeId): template = self.NoConversion # URL's will be converted in postProcess() if not changeId.startswith('http'): if isinstance(change, changetypes.Bugv2): template = self.LinkToSourceForgeBugReportv2 elif isinstance(change, changetypes.Bug): template = self.LinkToSourceForgeBugReport elif isinstance(change, changetypes.Feature): template = self.LinkToSourceForgeFeatureRequest return template%{'id': changeId} def convertURL(self, url): return '%s'%(url, url) # Release converters: class ReleaseConverter(object): def __init__(self): self._changeConverter = self.ChangeConverterClass() def _addS(self, listToCount): multiple = len(listToCount) > 1 return dict(s='s' if multiple else '', y='ies' if multiple else 'y') def convert(self, release, greeting=''): result = [self.summary(release, greeting)] if not greeting: result.insert(0, self.header(release)) for section, list in [('Team change%(s)s', release.teamChanges), ('Bug%(s)s fixed', release.bugsFixed), ('Feature%(s)s added', release.featuresAdded), ('Feature%(s)s changed', release.featuresChanged), ('Feature%(s)s removed', release.featuresRemoved), ('Implementation%(s)s changed', release.implementationChanged), ('Dependenc%(y)s changed', release.dependenciesChanged), ('Distribution%(s)s changed', release.distributionsChanged), ('Website change%(s)s', release.websiteChanges)]: if list: result.append(self.sectionHeader(section, list)) for change in list: result.append(self._changeConverter.convert(change)) result.append(self.sectionFooter(section, list)) result = [line for line in result if line] return '\n'.join(result)+'\n\n' def header(self, release): return 'Release %s - %s'%(release.number, release.date) def summary(self, release, greeting=''): return ' '.join([text for text in greeting, release.summary if text]) def sectionHeader(self, section, list): return '\n%s:'%(section%self._addS(list)) def sectionFooter(self, section, list): return '' class ReleaseToTextConverter(ReleaseConverter): ChangeConverterClass = ChangeToTextConverter def summary(self, *args, **kwargs): summary = super(ReleaseToTextConverter, self).summary(*args, **kwargs) wrapper = textwrap.TextWrapper(initial_indent='', subsequent_indent='', width=78) multipleSpaces = re.compile(r'(?Release %s %s'%(release.number, release.date) def sectionHeader(self, section, list): return super(ReleaseToHTMLConverter, self).sectionHeader(section, list) + '\n
      ' def sectionFooter(self, section, list): return '
    ' def summary(self, release, greeting=''): summaryText = super(ReleaseToHTMLConverter, self).summary(release) if summaryText: return '

    %s

    '%summaryText else: return '' taskcoach-1.4.3/changes.in/make.py000066400000000000000000000024601265347643000167770ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import converter, changes, sys numberOfReleases = int(sys.argv[2]) if len(sys.argv) >= 3 else sys.maxint if sys.argv[1] == 'text': converter = converter.ReleaseToTextConverter() elif sys.argv[1] == 'html': converter = converter.ReleaseToHTMLConverter() elif sys.argv[1] == 'debian': # Only current release, Debian format converter = converter.ReleaseToDebianConverter() numberOfReleases = 1 else: raise ValueError, 'Unknown target format (%s)'%sys.argv[1] releases = changes.releases[:numberOfReleases] for release in releases: print converter.convert(release) taskcoach-1.4.3/doc/000077500000000000000000000000001265347643000142365ustar00rootroot00000000000000taskcoach-1.4.3/doc/proto.rst000066400000000000000000000341461265347643000161430ustar00rootroot00000000000000 Ports and Bonjour discovery =========================== On the desktop, Task Coach listens to a port between 4096 and 8192, whichever one is the first available. The actual host/port pair is made available through Bonjour (Apple's name for mDNS); the id is registered (http://www.dns-sd.org/ServiceTypes.html) as _taskcoachsync._tcp. Once the user has browsed available services and choosen the instance of Task Coach he wants to sync with, the device initiates a TCP connection (setting TCP_NODELAY on the socket is not mandatory but strongly advised since the protocol consists of many small payload exchanges). Basic data types ================ Data types are serialized over the TCP connection; the basic types are: Integers -------- All integers sent through the socket are sent as 4-bytes, network byte order integers (generally unsigned); for instance a 10 will be sent as 0x00 0x00 0x00 0x0a. Strings ------- Strings are sent encoded in UTF-8, in two parts; first the string's length (encoded) as an integer, then the string bytes. Soo the string "foo" will be sent as 0x00 0x00 0x00 0x03 0x66 0x6f 0x6f. The length may be 0 for an empty string. Protocol negotiation ==================== Once the connection is established, the desktop and the device must negotiate the version of the protocol that will be used for the sync. Current version is 5 and previous ones are obsolete. In general, the desktop may support several versions to accomodate older applications on the device; but the device generally only supports the latest version it knows (this is the case for the iPhone app). The device sends the latest version it supports (as an integer). Upon receiving this, if the desktop supports this version, it sends a non-zero integer and the authentication starts. If it does not support this version, it sends a zero. The device may cancel the sync here (and display a message warning the user that the desktop version of Task Coach is too old) or try again with a lesser protocol version, until the desktop sends a non-zero integer, or the version number drops to 0 (obviously shouldn't happen). Authentication and basic setup ============================== Authentication is a SHA1-based challenge/response. The desktop sends 512 random bytes. The device must then send the SHA1 hash of the concatenation of those bytes and the UTF-8 encoded password. The desktop answers either 1 (succeeded), or 0 (failed) followed by a new random buffer in case the device wants to try again. As soon as authentication succeeds, the device must send its name as a string. This should be a human-readable string (for instance "Jerome Laheurte's iPhone). Then, the desktop will send various basic informations. For each of them, the device must answer with a non-zero integer. These informations are: 1. The task file's GUID, as a string. This is a unique identifier that may be used to differentiate between several task files. 2. The task file name, as a string. 3. The day start and end hours, as integers. Then the synchronization may actually start. Advanced data types =================== In addition to strings and integers, more complex data types are used during the actual synchronization; those are N-strings, lists, dates and structures. N-strings are just like strings except that a length of 0 means not an empty string but a NULL value. They are serialized just like strings. Lists are like vectors; a sequence of same-typed objects. They are serialized thus: first the list length (not in bytes, but in number of objects), then the concatenation of the objects serializations. They may be empty, in which case the length is 0 and there is payload. Date are, well, dates. They may be NULL. They are serialized as N-strings with the YYYY-MM-DD format. Date and time Same as dates with the time information (HH:MM:SS). They may be NULL. They are serialized as N-strings with the YYYY-MM-DD HH:MM:SS format. Structs Structs are like C structs or Python tuples: ordered sequences of items that may have different types. They are serialized as the concatenation of their members. Examples -------- Null N-string Zero length: 0x00 0x00 0x00 0x00 2010/11/20 date +---------------------+------+------+------+------+---------+------+------+-------+------+------+ | Length | 2 | 0 | 1 | 0 | minus | 1 | 1 | minus | 2 | 0 | +---------------------+------+------+------+------+---------+------+------+-------+------+------+ | 0x00 0x00 0x00 0x0a | 0x32 | 0x30 | 0x31 | 0x30 | 0x2d | 0x31 | 0x31 | 0x2d | 0x32 | 0x30 | +---------------------+------+------+------+------+---------+------+------+-------+------+------+ 2010/11/20 12:02:35 date and time +---------------------+------+------+------+------+---------+------+------+-------+------+------+-------+------+------+------+------+------+------+------+------+ | Length | 2 | 0 | 1 | 0 | minus | 1 | 1 | minus | 2 | 0 | space | 1 | 2 | : | 0 | 2 | : | 3 | 5 | +---------------------+------+------+------+------+---------+------+------+-------+------+------+-------+------+------+------+------+------+------+------+------+ | 0x00 0x00 0x00 0x0a | 0x32 | 0x30 | 0x31 | 0x30 | 0x2d | 0x31 | 0x31 | 0x2d | 0x32 | 0x30 | | 0x31 | 0x32 | 0x3a | 0x30 | 0x32 | 0x3a | 0x33 | 0x35 | +---------------------+------+------+------+------+---------+------+------+-------+------+------+-------+------+------+------+------+------+------+------+------+ Struct with an integer and two strings, for values 42, 'foo' and 'spam' +---------------------+------------------------------------+-----------------------------------------+ | 42 | foo | spam | +---------------------+------------------------------------+-----------------------------------------+ | 0x00 0x00 0x00 0x2a | 0x00 0x00 0x00 0x03 0x66 0x6f 0x6f | 0x00 0x00 0x00 0x04 0x73 0x70 0x61 0x6d | +---------------------+------------------------------------+-----------------------------------------+ List of 2 structs (42, 'foo', 'spam') (13, 'eggs', 'bacon') +---------------------+---------------------+------------------------------------+-----------------------------------------+---------------------+-----------------------------------------+----------------------------------------------+ | List length | 42 | foo | spam | 13 | eggs | bacon | +---------------------+---------------------+------------------------------------+-----------------------------------------+---------------------+-----------------------------------------+----------------------------------------------+ | 0x00 0x00 0x00 0x02 | 0x00 0x00 0x00 0x2a | 0x00 0x00 0x00 0x03 0x66 0x6f 0x6f | 0x00 0x00 0x00 0x04 0x73 0x70 0x61 0x6d | 0x00 0x00 0x00 0x0d | 0x00 0x00 0x00 0x04 0x65 0x67 0x67 0x73 | 0x00 0x00 0x00 0x05 0x62 0x61 0x63 0x6f 0x6e | +---------------------+---------------------+------------------------------------+-----------------------------------------+---------------------+-----------------------------------------+----------------------------------------------+ Synchronization start ===================== Each Task Coach object has a unique ID which is an arbitrary string. Furthermore, each object also probably has a unique ID on the device (for instance a database primary key). Objects created on the device don't have a Task Coach ID at first; they are assigned one during the synchronization. When such an object is uploaded to the desktop, a Task Coach ID is created and sent back to the device, which must store it. It will be used later to identify a modified or deleted object. This has two consequences: 1. For created objects on the device, parent objects must be sent first to that they have a Task Coach ID when their children are created on the desktop side. 2. Objects that are deleted on the device but don't have a Task Coach ID (never been synchronized) may be completely discarded, they don't need to be synchronized. Device to desktop ----------------- In this first phase, the device will send all its local modifications to the desktop. Object counts ~~~~~~~~~~~~~ The device must send the following integers in that order: * Number of new categories * Number of new tasks * Number of deleted tasks * Number of modified tasks * Number of deleted categories * Number of modified categories * Number of new efforts * Number of modified efforts * Number of deleted efforts Here "modified", "new" and "deleted" are from the device's point of view. The following states happen in the order described. New categories ~~~~~~~~~~~~~~ Each new category is sent as a struct (Category name: string, Category parent ID: N-string). For each of them, the desktop answers with the Task Coach unique ID for this newly created category. Deleted categories ~~~~~~~~~~~~~~~~~~ The device must send the Task Coach ID of each deleted category; they may then be discarded from the database. The desktop answers with a string that may be safely ignored (actually the ID itself). Modified categories ~~~~~~~~~~~~~~~~~~~ The device sends each modified category as a struct (Category name: string, category Task Coach ID: string). The desktop answers with a string that may be safely discarded. New tasks ~~~~~~~~~ The device sends each new task as a struct with the following members, in that order: * Subject: string * Description: string * Start date: date and time * Due date: date and time * Completion date: date and time * Reminder date: date and time * Priority: integer * Recurrence: integer. Actually a boolean; 0 means the task has no recurrence set and 1 means it has. * Recurrence period: integer; number of periods for the recurrence * Recurrence repeat: integer; max number of times the recurrence may occur * Same week day: integer; 1 if the recurrence must happen on the same weekday, 0 otherwise. * Parent ID: N-string; the Task Coach ID of the task's parent, or NULL if it's toplevel. * Categories: List of strings (may be empty). This is the list of the Task Coach IDs of the category the task belongs to. The desktop answers with the Task Coach ID for the newly created task. Deleted tasks ~~~~~~~~~~~~~ The device sends the Task Coach ID of each deleted task. The desktop answers with a string that may be safely discarded. Modified tasks ~~~~~~~~~~~~~~ The device sends each modified task as a struct with the following members, in that order: * Subject: string * ID: string; the Task Coach ID of the task * Description: string * Start date: date and time * Due date: date and time * Completion date: date and time * Reminder date: date and time * Priority: integer * Recurrence: integer. Actually a boolean; 0 means the task has no recurrence set and 1 means it has. * Recurrence period: integer; number of periods for the recurrence * Recurrence repeat: integer; max number of times the recurrence may occur * Same week day: integer; 1 if the recurrence must happen on the same weekday, 0 otherwise. * Categories: List of strings (may be empty). This is the list of the Task Coach IDs of the category the task belongs to. The desktop answers with a string that may be safely discarded. Note that this structure is not the same as the one used for new tasks; new tasks don't have a Task Coach ID yet but modified tasks do. Also, the parent ID is omitted here because one can't (yet) reparent a task in the iPhone app. New efforts ~~~~~~~~~~~ The device sends each new effort as a struct with the following members, in that order: * Subject: string * Task coach ID of the task the effort is related to: N-string * Effort start date: date and time * Effort end date: date and time, may be NULL. The desktop answers with the Task Coach ID for the newly created effort. Modified efforts ~~~~~~~~~~~~~~~~ The device sends each modified effort as a struct with the following members, in that order: * Task Coach ID of the effort: string * Subject: string * Start date: date and time * End date: date and time, may be NULL. The desktop answers with a string that may be safely discarded. Desktop to device ----------------- After local modifications on the device have been uploaded to the desktop, the desktop will send the whole database to the device (no notion of modified/new/deleted here), so here the device should first completely empty its database and rebuild it with what will be send in this state. Object counts ~~~~~~~~~~~~~ The desktop sends the following integers in that order: * Number of categories * Number of tasks * Number of efforts Categories ~~~~~~~~~~ The desktop sends each category as a struct with the following members, in that order: * Subject: string * Task Coach ID: string * Parent Task Coach ID: N-string The device must answer to each with a non-zero integer. Tasks ~~~~~ The desktop sends each task as a struct with the following members, in that order: * Subject: string * Task Coach ID: string * Description: string * Start date: date and time * Due date: date and time * Completion date: date and time * Reminder: date and time * Parent Task Coach ID: N-string * Priority: integer * Recurrence: integer; 1 if the task has a recurrence setting, 0 otherwise * Recurrence period: integer * Recurrence repeat: integer * Recurrence same weekday: integer * Categories: List of Task Coach IDs of the categories this task belongs to The device must answer to each with a non-zero integer. Efforts ~~~~~~~ The desktop sends each effort as a struct with the following members, in that order: * Task Coach ID: string * Subject: string * Task Task Coach ID: N-string * Start date: date and time * End date: date and time The device must answer to each with a non-zero integer. The connexion is then closed, the synchronization is over. taskcoach-1.4.3/doc/task_states.dot000066400000000000000000000023441265347643000172760ustar00rootroot00000000000000digraph task_states { rankdir=LR; node [shape = circle, width = 1]; Inactive [shape = doublecircle, style = filled, fillcolor = grey]; Late [style = filled, fillcolor = purple]; Active [style = filled, fillcolor = deepskyblue]; "Due soon" [style = filled, fillcolor = orange]; Overdue [style = filled, fillcolor = red]; Completed [shape = doublecircle, style = filled, fillcolor = green]; Inactive -> Late [ label = "past planned start date" ]; Inactive -> Active [ label = "past actual start date" ]; Inactive -> "Due soon" [ label = "soon due date" ]; Inactive -> Overdue [ label = "past due date" ]; Inactive -> Completed [ label = "completion date" ]; Late -> Active [ label = "past actual start date" ]; Late -> "Due soon" [ label = "soon due date" ]; Late -> Overdue [ label = "past due date" ]; Late -> Completed [ label = "completion date" ]; Active -> "Due soon" [ label = "soon due date" ]; Active -> Overdue [ label = "past due date" ]; Active -> Completed [ label = "completion date" ]; "Due soon" -> Overdue [ label = "past due date" ]; "Due soon" -> Completed [ label = "completion date" ]; Overdue -> Completed [ label = "completion date" ]; } taskcoach-1.4.3/fixinit.py000066400000000000000000000022301265347643000155120ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2012 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os def visitDir(arg, dirname, names): try: names.remove('.svn') except: pass for name in names: if name in ['__init__.py', 'itopicdefnprovider.py']: fname = os.path.join(dirname, name) if os.stat(fname).st_size == 0: file(fname, 'wb').write('# Not empty\n') if __name__ == '__main__': os.path.walk(os.path.join('taskcoachlib', 'thirdparty'), visitDir, None) taskcoach-1.4.3/i18n.in/000077500000000000000000000000001265347643000146555ustar00rootroot00000000000000taskcoach-1.4.3/i18n.in/ar.po000066400000000000000000004152761265347643000156360ustar00rootroot00000000000000# Arabic translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-04-29 22:24+0000\n" "PO-Revision-Date: 2011-02-13 11:40+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-05-08 12:21+0000\n" "X-Generator: Launchpad (build 12981)\n" #: taskcoachlib\application\application.py:236 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "لم نمكن ضبظ settings من TaskCoach.ini:\n" "%s" #: taskcoachlib\application\application.py:237 #: taskcoachlib\gui\iocontroller.py:57 msgid "%s file error" msgstr "خطأ في الملف %s" #: taskcoachlib\command\attachmentCommands.py:27 #: taskcoachlib\command\attachmentCommands.py:30 msgid "New attachment" msgstr "ربط جديد" #: taskcoachlib\command\attachmentCommands.py:54 msgid "Delete attachments" msgstr "" #: taskcoachlib\command\attachmentCommands.py:55 msgid "Delete attachment \"%s\"" msgstr "" #: taskcoachlib\command\attachmentCommands.py:48 msgid "Add note to attachments" msgstr "" #: taskcoachlib\command\attachmentCommands.py:52 msgid "Edit location of attachments" msgstr "" #: taskcoachlib\command\attachmentCommands.py:53 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib\command\base.py:162 msgid "Copy" msgstr "نسخ" #: taskcoachlib\command\base.py:163 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib\command\base.py:177 taskcoachlib\gui\dialog\templates.py:51 msgid "Delete" msgstr "حدف" #: taskcoachlib\command\base.py:178 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib\command\base.py:207 msgid "Cut" msgstr "قصّ" #: taskcoachlib\command\base.py:208 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib\command\base.py:233 msgid "Paste" msgstr "لصق" #: taskcoachlib\command\base.py:234 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib\command\base.py:269 msgid "Paste as subitem" msgstr "" #: taskcoachlib\command\base.py:270 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib\command\base.py:302 msgid "Drag and drop" msgstr "سحب و القاء" #: taskcoachlib\command\base.py:303 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib\command\base.py:342 taskcoachlib\widgets\dialog.py:147 msgid "Add attachment" msgstr "إضافة مرفق" #: taskcoachlib\command\base.py:343 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib\command\base.py:355 msgid "Remove attachment" msgstr "" #: taskcoachlib\command\base.py:356 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib\command\base.py:368 msgid "Add note" msgstr "" #: taskcoachlib\command\base.py:369 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib\command\base.py:374 taskcoachlib\command\noteCommands.py:25 #: taskcoachlib\command\noteCommands.py:28 msgid "New note" msgstr "ملاحظة جديدة" #: taskcoachlib\command\base.py:422 msgid "Add subnote" msgstr "" #: taskcoachlib\command\base.py:423 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib\command\noteCommands.py:43 msgid "New subnote" msgstr "ملاحظة فرعية جديدة" #: taskcoachlib\command\base.py:457 msgid "Remove note" msgstr "" #: taskcoachlib\command\base.py:458 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib\command\base.py:402 msgid "Edit subjects" msgstr "" #: taskcoachlib\command\base.py:403 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib\command\base.py:514 msgid "Edit descriptions" msgstr "" #: taskcoachlib\command\base.py:515 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib\command\base.py:537 msgid "Change icons" msgstr "" #: taskcoachlib\command\base.py:538 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib\command\base.py:565 msgid "Change fonts" msgstr "" #: taskcoachlib\command\base.py:566 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib\command\base.py:616 msgid "Change foreground colors" msgstr "" #: taskcoachlib\command\base.py:617 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib\command\base.py:629 msgid "Change background colors" msgstr "" #: taskcoachlib\command\base.py:630 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib\command\categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib\command\categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib\command\categoryCommands.py:25 #: taskcoachlib\command\categoryCommands.py:28 msgid "New category" msgstr "تصنيف جديد" #: taskcoachlib\command\categoryCommands.py:40 msgid "New subcategories" msgstr "" #: taskcoachlib\command\categoryCommands.py:41 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib\command\categoryCommands.py:44 msgid "New subcategory" msgstr "تصنيف فرعي جديد" #: taskcoachlib\command\categoryCommands.py:57 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib\command\categoryCommands.py:58 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib\command\categoryCommands.py:64 msgid "Delete categories" msgstr "" #: taskcoachlib\command\categoryCommands.py:65 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib\command\categoryCommands.py:69 msgid "Drag and drop categories" msgstr "" #: taskcoachlib\command\effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib\command\effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib\command\effortCommands.py:70 msgid "Delete efforts" msgstr "" #: taskcoachlib\command\effortCommands.py:71 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib\command\effortCommands.py:53 msgid "Change task of effort" msgstr "" #: taskcoachlib\command\effortCommands.py:54 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib\command\effortCommands.py:76 msgid "Change effort start date and time" msgstr "" #: taskcoachlib\command\effortCommands.py:77 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib\command\effortCommands.py:104 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib\command\effortCommands.py:105 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib\command\noteCommands.py:39 msgid "New subnotes" msgstr "" #: taskcoachlib\command\noteCommands.py:40 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib\command\noteCommands.py:66 msgid "Delete notes" msgstr "" #: taskcoachlib\command\noteCommands.py:67 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib\command\noteCommands.py:71 msgid "Drag and drop notes" msgstr "" #: taskcoachlib\command\noteCommands.py:72 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:59 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib\command\taskCommands.py:63 msgid "Delete tasks" msgstr "" #: taskcoachlib\command\taskCommands.py:64 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:106 #: taskcoachlib\command\taskCommands.py:109 msgid "New task" msgstr "مهمّة جديدة" #: taskcoachlib\command\taskCommands.py:145 msgid "New subtasks" msgstr "" #: taskcoachlib\command\taskCommands.py:146 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:150 msgid "New subtask" msgstr "مهمة فرعية جديدة" #: taskcoachlib\command\taskCommands.py:228 msgid "Mark tasks completed" msgstr "" #: taskcoachlib\command\taskCommands.py:229 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib\command\taskCommands.py:265 msgid "Start tracking" msgstr "البدء بالمتابعة" #: taskcoachlib\command\taskCommands.py:266 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:295 msgid "Stop tracking" msgstr "وقف المتابعة" #: taskcoachlib\command\taskCommands.py:296 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:339 msgid "Maximize priority" msgstr "الأكثر أولوية" #: taskcoachlib\command\taskCommands.py:340 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:349 msgid "Minimize priority" msgstr "الأقل أولوية" #: taskcoachlib\command\taskCommands.py:350 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:379 msgid "Increase priority" msgstr "زيادة الأولوية" #: taskcoachlib\command\taskCommands.py:380 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:386 msgid "Decrease priority" msgstr "خفض الأولوية" #: taskcoachlib\command\taskCommands.py:387 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:330 msgid "Change priority" msgstr "" #: taskcoachlib\command\taskCommands.py:331 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:353 msgid "Add note to tasks" msgstr "" #: taskcoachlib\command\taskCommands.py:395 msgid "Change start date" msgstr "" #: taskcoachlib\command\taskCommands.py:396 msgid "Change start date of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:424 msgid "Change due date" msgstr "" #: taskcoachlib\command\taskCommands.py:425 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:437 msgid "Change completion date" msgstr "" #: taskcoachlib\command\taskCommands.py:438 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:453 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib\command\taskCommands.py:454 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:466 msgid "Change recurrences" msgstr "" #: taskcoachlib\command\taskCommands.py:467 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:490 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:512 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib\command\taskCommands.py:513 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib\command\taskCommands.py:535 msgid "Change budgets" msgstr "" #: taskcoachlib\command\taskCommands.py:536 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:558 msgid "Change hourly fees" msgstr "" #: taskcoachlib\command\taskCommands.py:559 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:581 msgid "Change fixed fees" msgstr "" #: taskcoachlib\command\taskCommands.py:582 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib\command\taskCommands.py:604 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib\command\taskCommands.py:605 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib\config\settings.py:195 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "خطا أثناء الحفظ %s.ini\n" "%s\n" #: taskcoachlib\config\settings.py:196 msgid "Save error" msgstr "حفظ الخطأ" #: taskcoachlib\domain\attachment\attachmentlist.py:24 msgid "New attachment..." msgstr "ربط جديد..." #: taskcoachlib\domain\attachment\attachmentlist.py:25 msgid "Insert a new attachment" msgstr "إدخال مرفق جديد" #: taskcoachlib\domain\attachment\attachmentlist.py:26 msgid "Open attachment" msgstr "فتح المرفق" #: taskcoachlib\domain\attachment\attachmentlist.py:27 msgid "Open the selected attachments" msgstr "فتح المرفقات المحددة" #: taskcoachlib\domain\date\snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib\domain\date\snooze.py:22 msgid "Don't snooze" msgstr "لا تغفو" #: taskcoachlib\domain\date\snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib\domain\date\snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib\domain\date\snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib\domain\date\snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib\domain\date\snooze.py:25 msgid "1 hour" msgstr "" #: taskcoachlib\domain\date\snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib\domain\date\snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib\domain\date\snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib\domain\date\snooze.py:30 msgid "1 week" msgstr "" #: taskcoachlib\domain\date\snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib\domain\effort\composite.py:211 msgid "Total" msgstr "الإجمالي" #: taskcoachlib\domain\effort\composite.py:224 msgid "Total for %s" msgstr "الإجمالي لـ %s" #: taskcoachlib\domain\effort\effortlist.py:31 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib\domain\task\tasklist.py:32 msgid "&New task..." msgstr "&مهمة جديدة..." #: taskcoachlib\gui\artprovider.py:94 msgid "Arrow down" msgstr "" #: taskcoachlib\gui\artprovider.py:95 msgid "Arrow down with status" msgstr "" #: taskcoachlib\gui\artprovider.py:96 msgid "Blue arrows looped" msgstr "" #: taskcoachlib\gui\artprovider.py:97 msgid "Green arrows looped" msgstr "" #: taskcoachlib\gui\artprovider.py:98 msgid "Arrow up" msgstr "" #: taskcoachlib\gui\artprovider.py:99 msgid "Arrow up with status" msgstr "" #: taskcoachlib\gui\artprovider.py:100 msgid "Bomb" msgstr "" #: taskcoachlib\gui\artprovider.py:101 msgid "Book" msgstr "" #: taskcoachlib\gui\artprovider.py:102 msgid "Books" msgstr "" #: taskcoachlib\gui\artprovider.py:103 msgid "Box" msgstr "" #: taskcoachlib\gui\artprovider.py:104 msgid "Ladybug" msgstr "" #: taskcoachlib\gui\artprovider.py:105 msgid "Cake" msgstr "" #: taskcoachlib\gui\artprovider.py:106 msgid "Calculator" msgstr "" #: taskcoachlib\gui\artprovider.py:107 taskcoachlib\gui\viewer\task.py:487 msgid "Calendar" msgstr "" #: taskcoachlib\gui\artprovider.py:108 msgid "Cat" msgstr "" #: taskcoachlib\gui\artprovider.py:109 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib\gui\artprovider.py:110 msgid "Chatting" msgstr "" #: taskcoachlib\gui\artprovider.py:111 msgid "Check mark" msgstr "" #: taskcoachlib\gui\artprovider.py:112 msgid "Clock" msgstr "" #: taskcoachlib\gui\artprovider.py:113 msgid "Alarm clock" msgstr "" #: taskcoachlib\gui\artprovider.py:114 msgid "Stopwatch" msgstr "" #: taskcoachlib\gui\artprovider.py:115 msgid "Cogwheel" msgstr "" #: taskcoachlib\gui\artprovider.py:116 msgid "Cogwheels" msgstr "" #: taskcoachlib\gui\artprovider.py:117 msgid "Desktop computer" msgstr "" #: taskcoachlib\gui\artprovider.py:118 msgid "Laptop computer" msgstr "" #: taskcoachlib\gui\artprovider.py:119 msgid "Handheld computer" msgstr "" #: taskcoachlib\gui\artprovider.py:120 msgid "Red cross" msgstr "" #: taskcoachlib\gui\artprovider.py:121 msgid "Die" msgstr "" #: taskcoachlib\gui\artprovider.py:122 msgid "Document" msgstr "" #: taskcoachlib\gui\artprovider.py:123 msgid "Blue earth" msgstr "" #: taskcoachlib\gui\artprovider.py:124 msgid "Green earth" msgstr "" #: taskcoachlib\gui\artprovider.py:125 msgid "Envelope" msgstr "" #: taskcoachlib\gui\artprovider.py:126 msgid "Envelopes" msgstr "" #: taskcoachlib\gui\artprovider.py:127 msgid "Blue folder" msgstr "" #: taskcoachlib\gui\artprovider.py:128 msgid "Green folder" msgstr "" #: taskcoachlib\gui\artprovider.py:129 msgid "Grey folder" msgstr "" #: taskcoachlib\gui\artprovider.py:130 msgid "Orange folder" msgstr "" #: taskcoachlib\gui\artprovider.py:131 msgid "Purple folder" msgstr "" #: taskcoachlib\gui\artprovider.py:132 msgid "Red folder" msgstr "" #: taskcoachlib\gui\artprovider.py:133 msgid "Yellow folder" msgstr "" #: taskcoachlib\gui\artprovider.py:134 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib\gui\artprovider.py:135 msgid "Heart" msgstr "" #: taskcoachlib\gui\artprovider.py:136 msgid "Hearts" msgstr "" #: taskcoachlib\gui\artprovider.py:137 msgid "Green house" msgstr "" #: taskcoachlib\gui\artprovider.py:138 msgid "Red house" msgstr "" #: taskcoachlib\gui\artprovider.py:139 msgid "Key" msgstr "" #: taskcoachlib\gui\artprovider.py:140 msgid "Keys" msgstr "" #: taskcoachlib\gui\artprovider.py:141 msgid "Lamp" msgstr "" #: taskcoachlib\gui\artprovider.py:142 msgid "Question mark" msgstr "" #: taskcoachlib\gui\artprovider.py:143 #: taskcoachlib\gui\wizard\csvimport.py:284 msgid "Information" msgstr "" #: taskcoachlib\gui\artprovider.py:144 msgid "Blue led" msgstr "" #: taskcoachlib\gui\artprovider.py:145 msgid "Light blue led" msgstr "" #: taskcoachlib\gui\artprovider.py:146 msgid "Grey led" msgstr "" #: taskcoachlib\gui\artprovider.py:147 msgid "Green led" msgstr "" #: taskcoachlib\gui\artprovider.py:148 msgid "Light green led" msgstr "" #: taskcoachlib\gui\artprovider.py:149 msgid "Orange led" msgstr "" #: taskcoachlib\gui\artprovider.py:150 msgid "Purple led" msgstr "" #: taskcoachlib\gui\artprovider.py:151 msgid "Red led" msgstr "" #: taskcoachlib\gui\artprovider.py:152 msgid "Yellow led" msgstr "" #: taskcoachlib\gui\artprovider.py:153 msgid "Life ring" msgstr "" #: taskcoachlib\gui\artprovider.py:154 msgid "Locked lock" msgstr "" #: taskcoachlib\gui\artprovider.py:155 msgid "Unlocked lock" msgstr "" #: taskcoachlib\gui\artprovider.py:156 msgid "Magnifier glass" msgstr "" #: taskcoachlib\gui\artprovider.py:157 msgid "Piano" msgstr "" #: taskcoachlib\gui\artprovider.py:158 msgid "Music note" msgstr "" #: taskcoachlib\gui\artprovider.py:159 msgid "Note" msgstr "" #: taskcoachlib\gui\artprovider.py:160 msgid "Palette" msgstr "" #: taskcoachlib\gui\artprovider.py:161 msgid "Paperclip" msgstr "" #: taskcoachlib\gui\artprovider.py:162 msgid "Pencil" msgstr "" #: taskcoachlib\gui\artprovider.py:163 msgid "Person" msgstr "" #: taskcoachlib\gui\artprovider.py:164 msgid "People" msgstr "" #: taskcoachlib\gui\artprovider.py:165 msgid "Identification" msgstr "" #: taskcoachlib\gui\artprovider.py:166 msgid "Person talking" msgstr "" #: taskcoachlib\gui\artprovider.py:167 msgid "Warning sign" msgstr "" #: taskcoachlib\gui\artprovider.py:168 msgid "Minus" msgstr "" #: taskcoachlib\gui\artprovider.py:169 msgid "Plus" msgstr "" #: taskcoachlib\gui\artprovider.py:170 msgid "Red star" msgstr "" #: taskcoachlib\gui\artprovider.py:171 msgid "Yellow star" msgstr "" #: taskcoachlib\gui\artprovider.py:172 msgid "Traffic light" msgstr "" #: taskcoachlib\gui\artprovider.py:173 msgid "Trashcan" msgstr "" #: taskcoachlib\gui\artprovider.py:174 msgid "Lightning" msgstr "" #: taskcoachlib\gui\artprovider.py:175 msgid "Umbrella" msgstr "" #: taskcoachlib\gui\artprovider.py:176 msgid "Partly sunny" msgstr "" #: taskcoachlib\gui\artprovider.py:177 msgid "Wrench" msgstr "" #: taskcoachlib\gui\artprovider.py:184 msgid "No icon" msgstr "" #: taskcoachlib\gui\dialog\editor.py:78 taskcoachlib\gui\dialog\editor.py:97 #: taskcoachlib\gui\dialog\editor.py:1138 #: taskcoachlib\gui\viewer\attachment.py:85 #: taskcoachlib\gui\viewer\category.py:92 #: taskcoachlib\gui\viewer\effort.py:170 taskcoachlib\gui\viewer\note.py:114 #: taskcoachlib\gui\viewer\task.py:705 #: taskcoachlib\gui\wizard\csvimport.py:193 #: taskcoachlib\persistence\csv\reader.py:76 #: taskcoachlib\widgets\conflict.py:167 taskcoachlib\widgets\conflict.py:195 msgid "Description" msgstr "الوصف" #: taskcoachlib\gui\dialog\editor.py:87 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib\gui\dialog\editor.py:89 #: taskcoachlib\gui\viewer\attachment.py:77 #: taskcoachlib\gui\viewer\base.py:268 taskcoachlib\gui\viewer\category.py:85 #: taskcoachlib\gui\viewer\note.py:110 taskcoachlib\gui\viewer\task.py:695 #: taskcoachlib\gui\wizard\csvimport.py:192 #: taskcoachlib\persistence\csv\reader.py:74 #: taskcoachlib\widgets\conflict.py:162 taskcoachlib\widgets\conflict.py:190 msgid "Subject" msgstr "الموضوع" #: taskcoachlib\gui\dialog\editor.py:94 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib\gui\dialog\editor.py:130 taskcoachlib\gui\uicommand.py:2393 #: taskcoachlib\gui\viewer\task.py:764 #: taskcoachlib\gui\wizard\csvimport.py:195 #: taskcoachlib\persistence\csv\reader.py:91 #: taskcoachlib\widgets\conflict.py:215 msgid "Priority" msgstr "الأولويّة" #: taskcoachlib\gui\dialog\editor.py:155 msgid "Mutually exclusive" msgstr "" #: taskcoachlib\gui\dialog\editor.py:157 msgid "Subcategories" msgstr "" #: taskcoachlib\gui\dialog\editor.py:189 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib\gui\dialog\editor.py:193 msgid "Browse" msgstr "استعراض" #: taskcoachlib\gui\dialog\editor.py:197 msgid "Location" msgstr "المسار" #: taskcoachlib\gui\dialog\editor.py:224 msgid "Appearance" msgstr "" #: taskcoachlib\gui\dialog\editor.py:238 msgid "Foreground color" msgstr "" #: taskcoachlib\gui\dialog\editor.py:241 msgid "Background color" msgstr "" #: taskcoachlib\gui\dialog\editor.py:294 msgid "Font" msgstr "" #: taskcoachlib\gui\dialog\editor.py:320 msgid "Icon" msgstr "" #: taskcoachlib\gui\dialog\editor.py:350 msgid "Dates" msgstr "التواريخ" #: taskcoachlib\gui\dialog\editor.py:367 taskcoachlib\gui\viewer\task.py:755 #: taskcoachlib\gui\wizard\csvimport.py:196 #: taskcoachlib\persistence\csv\reader.py:96 #: taskcoachlib\widgets\calendarconfig.py:79 #: taskcoachlib\widgets\conflict.py:200 msgid "Start date" msgstr "تاريخ البداية" #: taskcoachlib\gui\dialog\editor.py:368 taskcoachlib\gui\viewer\task.py:756 #: taskcoachlib\gui\wizard\csvimport.py:197 #: taskcoachlib\persistence\csv\reader.py:103 #: taskcoachlib\widgets\calendarconfig.py:80 #: taskcoachlib\widgets\conflict.py:205 msgid "Due date" msgstr "تاريخ الإستحقاق" #: taskcoachlib\gui\dialog\editor.py:369 taskcoachlib\gui\viewer\task.py:757 #: taskcoachlib\gui\wizard\csvimport.py:198 #: taskcoachlib\persistence\csv\reader.py:110 #: taskcoachlib\widgets\conflict.py:210 msgid "Completion date" msgstr "تاريخ الإنجاز" #: taskcoachlib\gui\dialog\editor.py:393 #: taskcoachlib\gui\dialog\reminder.py:29 taskcoachlib\gui\viewer\task.py:768 msgid "Reminder" msgstr "رسالة التذكير" #: taskcoachlib\gui\dialog\editor.py:442 taskcoachlib\gui\viewer\task.py:760 msgid "Recurrence" msgstr "تكرار" #: taskcoachlib\gui\dialog\editor.py:606 msgid "Progress" msgstr "مستوى التقدم" #: taskcoachlib\gui\dialog\editor.py:619 msgid "Percentage complete" msgstr "" #: taskcoachlib\gui\dialog\editor.py:627 msgid "Use application-wide setting" msgstr "استخدام الاعدادات الشائعة" #: taskcoachlib\gui\dialog\editor.py:628 msgid "No" msgstr "لا" #: taskcoachlib\gui\dialog\editor.py:628 msgid "Yes" msgstr "نعم" #: taskcoachlib\gui\dialog\editor.py:635 msgid "Mark task completed when all children are completed?" msgstr "جعل المهمة منجزة عندما يكون جميع أبناءها منجزين؟" #: taskcoachlib\gui\dialog\editor.py:665 taskcoachlib\gui\dialog\editor.py:683 #: taskcoachlib\gui\uicommand.py:2393 taskcoachlib\gui\viewer\task.py:761 #: taskcoachlib\gui\wizard\csvimport.py:199 #: taskcoachlib\persistence\csv\reader.py:117 msgid "Budget" msgstr "الميزانية" #: taskcoachlib\gui\dialog\editor.py:689 taskcoachlib\gui\uicommand.py:2393 #: taskcoachlib\gui\viewer\effort.py:179 taskcoachlib\gui\viewer\task.py:762 msgid "Time spent" msgstr "الوقت المنصرم" #: taskcoachlib\gui\dialog\editor.py:694 taskcoachlib\gui\viewer\task.py:763 msgid "Budget left" msgstr "المزانية المتبقية" #: taskcoachlib\gui\dialog\editor.py:706 taskcoachlib\gui\viewer\task.py:765 #: taskcoachlib\gui\wizard\csvimport.py:201 #: taskcoachlib\persistence\csv\reader.py:136 msgid "Hourly fee" msgstr "الرسوم بالساعة" #: taskcoachlib\gui\dialog\editor.py:713 taskcoachlib\gui\uicommand.py:2393 #: taskcoachlib\gui\viewer\task.py:766 #: taskcoachlib\gui\wizard\csvimport.py:200 #: taskcoachlib\persistence\csv\reader.py:131 msgid "Fixed fee" msgstr "الرسوم الثابتة" #: taskcoachlib\gui\dialog\editor.py:719 taskcoachlib\gui\uicommand.py:2393 #: taskcoachlib\gui\viewer\effort.py:183 taskcoachlib\gui\viewer\task.py:767 msgid "Revenue" msgstr "العائدات" #: taskcoachlib\gui\dialog\editor.py:773 taskcoachlib\gui\viewer\effort.py:36 #: taskcoachlib\help\__init__.py:75 taskcoachlib\help\__init__.py:207 msgid "Effort" msgstr "جهد" #: taskcoachlib\gui\dialog\editor.py:829 #: taskcoachlib\gui\viewer\category.py:38 #: taskcoachlib\gui\viewer\effort.py:171 taskcoachlib\gui\viewer\note.py:118 #: taskcoachlib\gui\viewer\task.py:727 taskcoachlib\help\__init__.py:80 #: taskcoachlib\help\__init__.py:233 taskcoachlib\widgets\conflict.py:220 msgid "Categories" msgstr "التصنيفات" #: taskcoachlib\gui\dialog\editor.py:854 msgid "Attachments" msgstr "ملحقات" #: taskcoachlib\gui\dialog\editor.py:874 #: taskcoachlib\gui\dialog\syncpreferences.py:134 #: taskcoachlib\gui\viewer\note.py:36 taskcoachlib\help\__init__.py:85 #: taskcoachlib\help\__init__.py:268 msgid "Notes" msgstr "ملاحضة" #: taskcoachlib\gui\dialog\editor.py:910 taskcoachlib\gui\viewer\task.py:736 msgid "Prerequisites" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1089 msgid "Edit task" msgstr "تعديل المهمة" #: taskcoachlib\gui\dialog\editor.py:1087 #: taskcoachlib\gui\dialog\reminder.py:51 #: taskcoachlib\gui\viewer\effort.py:169 msgid "Task" msgstr "مهمة" #: taskcoachlib\gui\dialog\editor.py:1106 msgid "Start" msgstr "ابدأ" #: taskcoachlib\gui\dialog\editor.py:1117 msgid "Stop" msgstr "إيقاف" #: taskcoachlib\gui\dialog\editor.py:1108 msgid "Start tracking from last stop time" msgstr "بداية المتابعة بعد وقت التوقف الأخير" #: taskcoachlib\gui\dialog\editor.py:965 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1084 msgid "Multiple tasks" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1085 msgid "%s (task)" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1090 msgid "Multiple categories" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1091 msgid "%s (category)" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1096 msgid "Multiple notes" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1097 msgid "%s (note)" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1102 msgid "Multiple attachments" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1103 msgid "%s (attachment)" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1108 msgid "Multiple efforts" msgstr "" #: taskcoachlib\gui\dialog\editor.py:1109 msgid "%s (effort)" msgstr "" #: taskcoachlib\gui\dialog\editor.py:285 msgid "Use font:" msgstr "" #: taskcoachlib\gui\dialog\editor.py:244 msgid "Use color:" msgstr "" #: taskcoachlib\gui\dialog\editor.py:408 taskcoachlib\gui\dialog\editor.py:466 #: taskcoachlib\gui\uicommand.py:70 taskcoachlib\gui\wizard\csvimport.py:190 #: taskcoachlib\widgets\dirchooser.py:28 msgid "None" msgstr "لا شيء" #: taskcoachlib\gui\dialog\editor.py:408 taskcoachlib\gui\render.py:70 msgid "Daily" msgstr "يومياً" #: taskcoachlib\gui\dialog\editor.py:408 taskcoachlib\gui\render.py:70 msgid "Monthly" msgstr "شهرياً" #: taskcoachlib\gui\dialog\editor.py:408 taskcoachlib\gui\render.py:70 msgid "Weekly" msgstr "أسبوعياً" #: taskcoachlib\gui\dialog\editor.py:408 taskcoachlib\gui\render.py:70 msgid "Yearly" msgstr "سنويًّا" #: taskcoachlib\gui\dialog\editor.py:425 msgid "keeping dates on the same weekday" msgstr "حفظ التواريخ بنفس اليوم من الإسبوع" #: taskcoachlib\gui\dialog\editor.py:412 msgid ", every" msgstr ", كل" #: taskcoachlib\gui\dialog\entry.py:442 msgid "Stop after" msgstr "" #: taskcoachlib\gui\dialog\entry.py:448 msgid "recurrences" msgstr "" #: taskcoachlib\gui\dialog\editor.py:577 msgid "day(s)," msgstr "يوم" #: taskcoachlib\gui\dialog\editor.py:577 msgid "period," msgstr "الفترة," #: taskcoachlib\gui\dialog\editor.py:577 msgid "week(s)," msgstr "أسبوع" #: taskcoachlib\gui\dialog\editor.py:578 msgid "month(s)," msgstr "شهر" #: taskcoachlib\gui\dialog\editor.py:578 msgid "year(s)," msgstr "سنة" #: taskcoachlib\gui\dialog\export.py:63 msgid "Export only the selected items" msgstr "" #: taskcoachlib\gui\dialog\export.py:81 taskcoachlib\gui\iocontroller.py:292 msgid "Export as CSV..." msgstr "" #: taskcoachlib\gui\dialog\export.py:86 taskcoachlib\gui\iocontroller.py:297 msgid "Export as iCalendar..." msgstr "" #: taskcoachlib\gui\dialog\export.py:97 taskcoachlib\gui\iocontroller.py:286 msgid "Export as HTML..." msgstr "" #: taskcoachlib\gui\dialog\export.py:107 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib\gui\dialog\export.py:112 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib\gui\dialog\iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib\gui\dialog\iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib\gui\dialog\iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib\gui\dialog\iphone.py:44 taskcoachlib\widgets\buttonbox.py:24 #: taskcoachlib\widgets\dialog.py:59 msgid "Cancel" msgstr "إلغاﺀ" #: taskcoachlib\gui\dialog\iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib\gui\dialog\iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "الرجاء تحميل وتثبيت Bonjour for Windows من\n" #: taskcoachlib\gui\dialog\iphone.py:81 msgid "Apple's web site" msgstr "موقع Apple الألكتروني" #: taskcoachlib\gui\dialog\iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "دعم Bonjour لـLinux مقدمه من\n" "Avahi." #: taskcoachlib\gui\dialog\iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib\gui\dialog\iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib\gui\dialog\iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib\gui\dialog\iphone.py:98 taskcoachlib\gui\iphone.py:44 #: taskcoachlib\widgets\buttonbox.py:24 taskcoachlib\widgets\conflict.py:262 #: taskcoachlib\widgets\dialog.py:58 taskcoachlib\widgets\dialog.py:74 #: taskcoachlib\widgets\dialog.py:77 taskcoachlib\widgets\dialog.py:140 #: taskcoachlib\widgets\syncmlwarning.py:36 msgid "OK" msgstr "موافق" #: taskcoachlib\gui\dialog\preferences.py:131 msgid "" "This setting will take effect\n" "after you restart %s" msgstr "هذا التغيير سيأخذ بعين الإعتبار بعد الفتح من جديد %s" #: taskcoachlib\gui\dialog\preferences.py:149 msgid "Files" msgstr "الملفات" #: taskcoachlib\gui\dialog\preferences.py:155 msgid "Auto save after every change" msgstr "الحفظ تلقائيا بعد كل تغيير" #: taskcoachlib\gui\dialog\preferences.py:157 msgid "" "Create a backup copy before\n" "overwriting a %s file" msgstr "إنشء نسخ backup قبل تسجيل فوق %s" #: taskcoachlib\gui\dialog\preferences.py:159 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:161 msgid "" "(For running %s\n" "from a removable medium)" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:162 msgid "Attachment base directory" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:163 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib\gui\dialog\preferences.py:169 msgid "Window behavior" msgstr "سلوك النافذة" #: taskcoachlib\gui\dialog\preferences.py:175 msgid "Show splash screen on startup" msgstr "أظهر شاشة الترحيب في بداية التشغيل" #: taskcoachlib\gui\dialog\preferences.py:177 msgid "Show tips window on startup" msgstr "إظهار نافذة النصائح في بداية التشغيل" #: taskcoachlib\gui\dialog\preferences.py:179 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:180 msgid "Always" msgstr "دائماً" #: taskcoachlib\gui\dialog\preferences.py:180 msgid "Never" msgstr "أبداً" #: taskcoachlib\gui\dialog\preferences.py:182 msgid "If it was iconized last session" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:184 msgid "Check for new version of %(name)s on startup" msgstr "%(name)s فحص إصدارة جديدة في بدء التشغيل" #: taskcoachlib\gui\dialog\preferences.py:186 msgid "Hide main window when iconized" msgstr "إخفاء النافذة الرئيسية عند التصغير" #: taskcoachlib\gui\dialog\preferences.py:188 msgid "Minimize main window when closed" msgstr "تصغير النافذة الرئيسية عند الإغلاق" #: taskcoachlib\gui\dialog\preferences.py:190 msgid "Make clock in the task bar tick when tracking effort" msgstr "جعل الساعة في شريط المهام تدق عند متابعة الجهود" #: taskcoachlib\gui\dialog\preferences.py:192 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:198 #: taskcoachlib\gui\dialog\preferences.py:258 msgid "Language" msgstr "اللغة" #: taskcoachlib\gui\dialog\preferences.py:204 msgid "Let the system determine the language" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:264 msgid "" "If your language is not available, or the translation needs \n" "improving, please consider helping. See:" msgstr "" "إذا كانت لغتك غير متاحة، أو كانت الترجمة بحاجة إلى تحسين،\n" "الرجاء مساعدتنا أنظر :" #: taskcoachlib\gui\dialog\preferences.py:271 msgid "Language not found?" msgstr "اللغة غير موجودة؟" #: taskcoachlib\gui\dialog\preferences.py:281 msgid "Colors" msgstr "ألوان" #: taskcoachlib\gui\dialog\preferences.py:287 msgid "Click this button to change the color of active tasks" msgstr "اضغط على الزر لتغيير لون المهمة الفعالة" #: taskcoachlib\gui\dialog\preferences.py:288 msgid "Click this button to change the color of inactive tasks" msgstr "اضغط على الزر لتغيير لون المهمة الغير فعالة" #: taskcoachlib\gui\dialog\preferences.py:289 msgid "Click this button to change the color of completed tasks" msgstr "اضغط على الزر لتغيير لون المهمة المنجزة" #: taskcoachlib\gui\dialog\preferences.py:290 msgid "Click this button to change the color of over due tasks" msgstr "اضغط على الزر لتغيير لون المهام المؤجلة" #: taskcoachlib\gui\dialog\preferences.py:291 msgid "Click this button to change the color of tasks due soon" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:298 msgid "Features" msgstr "مميزات" #: taskcoachlib\gui\dialog\preferences.py:304 msgid "Allow for tracking effort" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:305 msgid "Allow for taking notes" msgstr "السماح بأخذ الملاحظات" #: taskcoachlib\gui\dialog\preferences.py:312 msgid "Notification system" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:313 msgid "Notification system to use for reminders (Growl, Snarl, etc)" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:320 msgid "Enable SyncML" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:322 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:325 msgid "Hour of start of work day" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:327 msgid "Hour of end of work day" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:329 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib\gui\dialog\preferences.py:332 msgid "Minutes between task start/end times" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:334 msgid "Minimum idle time" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:335 msgid "" "If there is no user input for at least this amount of\n" "minutes, Task Coach will ask what to do about current efforts." msgstr "" #: taskcoachlib\gui\dialog\preferences.py:339 msgid "Task behavior" msgstr "سلوك المهمة" #: taskcoachlib\gui\dialog\preferences.py:345 msgid "Mark parent task completed when all children are completed" msgstr "جعل المهمة الأب منجزة عندما يكون جميع الأبناء منجزين" #: taskcoachlib\gui\dialog\preferences.py:347 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:350 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:357 msgid "iPhone" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:363 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:365 msgid "Bonjour service name" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:367 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:369 msgid "Show sync log" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:369 msgid "Show the synchronization log" msgstr "" #: taskcoachlib\gui\dialog\preferences.py:375 msgid "Editor" msgstr "المحرر" #: taskcoachlib\gui\dialog\preferences.py:381 msgid "Check spelling in editors" msgstr "فحص التهجئة عند التحرير" #: taskcoachlib\gui\dialog\reminder.py:63 msgid "Reminder date/time" msgstr "تذكير" #: taskcoachlib\gui\dialog\reminder.py:64 msgid "Snooze" msgstr "" #: taskcoachlib\gui\dialog\reminder.py:73 msgid "Mark task completed" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:80 msgid "SyncML server URL" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:81 msgid "User name/ID" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:91 msgid "Tasks database name" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:93 #: taskcoachlib\gui\dialog\syncpreferences.py:111 msgid "Preferred synchonization mode" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:94 #: taskcoachlib\gui\dialog\syncpreferences.py:112 msgid "Two way" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:95 #: taskcoachlib\gui\dialog\syncpreferences.py:113 msgid "Slow" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:96 #: taskcoachlib\gui\dialog\syncpreferences.py:114 msgid "One way from client" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:97 #: taskcoachlib\gui\dialog\syncpreferences.py:115 msgid "Refresh from client" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:98 #: taskcoachlib\gui\dialog\syncpreferences.py:116 msgid "One way from server" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:99 #: taskcoachlib\gui\dialog\syncpreferences.py:117 #: taskcoachlib\syncml\basesource.py:61 taskcoachlib\syncml\basesource.py:73 msgid "Refresh from server" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:108 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:109 msgid "Notes database name" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:132 msgid "Access" msgstr "" #: taskcoachlib\gui\dialog\syncpreferences.py:133 #: taskcoachlib\gui\viewer\task.py:56 taskcoachlib\help\__init__.py:68 #: taskcoachlib\help\__init__.py:129 #: taskcoachlib\widgets\calendarconfig.py:107 msgid "Tasks" msgstr "" #: taskcoachlib\gui\dialog\templates.py:40 msgid "Template" msgstr "" #: taskcoachlib\gui\dialog\version.py:37 msgid "Notify me of new versions." msgstr "" #: taskcoachlib\gui\dialog\version.py:51 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib\gui\dialog\version.py:54 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib\gui\dialog\version.py:57 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib\gui\dialog\version.py:62 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib\gui\dialog\version.py:65 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib\gui\dialog\version.py:69 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib\gui\dialog\version.py:72 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib\gui\dialog\version.py:77 msgid "Prerelease version" msgstr "" #: taskcoachlib\gui\dialog\version.py:80 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib\gui\dialog\version.py:81 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib\gui\idlecontroller.py:36 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib\gui\idlecontroller.py:41 msgid "Do nothing" msgstr "" #: taskcoachlib\gui\idlecontroller.py:42 msgid "Stop it at %s" msgstr "" #: taskcoachlib\gui\idlecontroller.py:43 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib\gui\idlecontroller.py:125 msgid "Notification" msgstr "" #: taskcoachlib\gui\iocontroller.py:47 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib\gui\iocontroller.py:50 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib\gui\iocontroller.py:53 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib\gui\iocontroller.py:56 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib\gui\iocontroller.py:95 msgid "Open" msgstr "" #: taskcoachlib\gui\iocontroller.py:118 taskcoachlib\gui\iocontroller.py:154 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib\gui\iocontroller.py:125 taskcoachlib\gui\iocontroller.py:160 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib\gui\iocontroller.py:127 taskcoachlib\gui\iocontroller.py:162 msgid "Are you sure it is a %s-file?" msgstr "" #: taskcoachlib\gui\iocontroller.py:130 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib\gui\iocontroller.py:134 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib\gui\iocontroller.py:144 msgid "Merge" msgstr "" #: taskcoachlib\gui\iocontroller.py:149 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib\gui\iocontroller.py:165 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib\gui\iocontroller.py:182 taskcoachlib\gui\iocontroller.py:194 msgid "Save as..." msgstr "" #: taskcoachlib\gui\iocontroller.py:226 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib\gui\iocontroller.py:231 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib\gui\iocontroller.py:240 msgid "Open template..." msgstr "" #: taskcoachlib\gui\iocontroller.py:242 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib\gui\iocontroller.py:248 msgid "" "Cannot add template %s\n" "%s" msgstr "" #: taskcoachlib\gui\iocontroller.py:277 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib\gui\iocontroller.py:312 msgid "Finished synchronization" msgstr "" #: taskcoachlib\gui\iocontroller.py:319 msgid "Note conflict" msgstr "" #: taskcoachlib\gui\iocontroller.py:323 msgid "Task conflict" msgstr "" #: taskcoachlib\gui\iocontroller.py:335 msgid "Synchronization status" msgstr "" #: taskcoachlib\gui\iocontroller.py:343 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib\gui\iocontroller.py:378 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib\gui\iocontroller.py:390 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib\gui\iocontroller.py:391 msgid "%s: save changes?" msgstr "" #: taskcoachlib\gui\iocontroller.py:401 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib\gui\iocontroller.py:409 taskcoachlib\gui\iocontroller.py:416 msgid "%s: file locked" msgstr "" #: taskcoachlib\gui\iocontroller.py:414 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib\gui\iocontroller.py:421 msgid "Closed %s" msgstr "" #: taskcoachlib\gui\iocontroller.py:426 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib\gui\iphone.py:32 msgid "Synchronizing..." msgstr "" #: taskcoachlib\gui\iphone.py:54 msgid "Synchronizing with %s..." msgstr "مزامنة مع %s..." #: taskcoachlib\gui\mainwindow.py:71 taskcoachlib\gui\uicommand.py:605 msgid "Warning" msgstr "" #: taskcoachlib\gui\mainwindow.py:108 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib\gui\mainwindow.py:285 msgid "iPhone/iPod" msgstr "" #: taskcoachlib\gui\mainwindow.py:294 msgid "Synchronization type" msgstr "" #: taskcoachlib\gui\mainwindow.py:304 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib\gui\mainwindow.py:307 taskcoachlib\iphone\protocol.py:481 #: taskcoachlib\widgets\draganddrop.py:108 #: taskcoachlib\widgets\draganddrop.py:110 msgid "Error" msgstr "" #: taskcoachlib\gui\menu.py:174 msgid "&File" msgstr "" #: taskcoachlib\gui\menu.py:176 msgid "&Edit" msgstr "" #: taskcoachlib\gui\menu.py:178 msgid "&View" msgstr "" #: taskcoachlib\gui\menu.py:179 msgid "&New" msgstr "" #: taskcoachlib\gui\menu.py:180 msgid "&Actions" msgstr "" #: taskcoachlib\gui\menu.py:181 msgid "&Help" msgstr "" #: taskcoachlib\gui\menu.py:215 msgid "&Export" msgstr "" #: taskcoachlib\gui\menu.py:314 msgid "&Select" msgstr "" #: taskcoachlib\gui\menu.py:342 msgid "&New viewer" msgstr "" #: taskcoachlib\gui\menu.py:346 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib\gui\menu.py:350 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib\gui\menu.py:358 taskcoachlib\gui\menu.py:359 msgid "&Filter" msgstr "" #: taskcoachlib\gui\menu.py:360 taskcoachlib\gui\menu.py:361 msgid "&Sort" msgstr "" #: taskcoachlib\gui\menu.py:362 taskcoachlib\gui\menu.py:363 msgid "&Columns" msgstr "" #: taskcoachlib\gui\menu.py:365 msgid "&Tree options" msgstr "" #: taskcoachlib\gui\menu.py:369 msgid "T&oolbar" msgstr "" #: taskcoachlib\gui\menu.py:371 msgid "Show/hide status bar" msgstr "" #: taskcoachlib\gui\menu.py:371 msgid "Status&bar" msgstr "" #: taskcoachlib\gui\menu.py:382 msgid "&Task" msgstr "" #: taskcoachlib\gui\menu.py:383 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib\gui\menu.py:385 msgid "Task &square map" msgstr "" #: taskcoachlib\gui\menu.py:386 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib\gui\menu.py:388 msgid "T&imeline" msgstr "" #: taskcoachlib\gui\menu.py:389 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib\gui\menu.py:391 msgid "&Calendar" msgstr "" #: taskcoachlib\gui\menu.py:392 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib\gui\menu.py:394 taskcoachlib\gui\viewer\mixin.py:437 msgid "&Category" msgstr "" #: taskcoachlib\gui\menu.py:395 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib\gui\menu.py:399 msgid "&Effort" msgstr "" #: taskcoachlib\gui\menu.py:400 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib\gui\menu.py:403 msgid "Effort for &one task" msgstr "" #: taskcoachlib\gui\menu.py:404 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib\gui\menu.py:408 msgid "&Note" msgstr "" #: taskcoachlib\gui\menu.py:409 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib\gui\menu.py:452 msgid "&Hide" msgstr "" #: taskcoachlib\gui\menu.py:452 msgid "Hide the toolbar" msgstr "" #: taskcoachlib\gui\menu.py:453 msgid "&Small images" msgstr "" #: taskcoachlib\gui\menu.py:453 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib\gui\menu.py:454 msgid "&Medium-sized images" msgstr "" #: taskcoachlib\gui\menu.py:454 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib\gui\menu.py:455 msgid "&Large images" msgstr "" #: taskcoachlib\gui\menu.py:455 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib\gui\menu.py:473 taskcoachlib\gui\menu.py:568 #: taskcoachlib\gui\uicommand.py:1403 msgid "New task from &template" msgstr "" #: taskcoachlib\gui\menu.py:512 taskcoachlib\gui\menu.py:708 #: taskcoachlib\gui\menu.py:806 msgid "&Toggle category" msgstr "" #: taskcoachlib\gui\menu.py:520 msgid "Change task &priority" msgstr "" #: taskcoachlib\gui\menu.py:584 taskcoachlib\gui\uicommand.py:1816 #: taskcoachlib\gui\uicommand.py:1858 msgid "&Start tracking effort" msgstr "" #: taskcoachlib\gui\menu.py:632 taskcoachlib\gui\viewer\mixin.py:114 msgid "%s (subcategories)" msgstr "" #: taskcoachlib\gui\menu.py:674 msgid "%s (subtasks)" msgstr "" #: taskcoachlib\gui\menu.py:715 taskcoachlib\gui\viewer\mixin.py:513 #: taskcoachlib\gui\viewer\task.py:862 msgid "&Priority" msgstr "" #: taskcoachlib\gui\printer.py:84 msgid "Page" msgstr "" #: taskcoachlib\gui\remindercontroller.py:76 msgid "%s Reminder" msgstr "" #: taskcoachlib\gui\render.py:38 msgid "Infinite" msgstr "" #: taskcoachlib\gui\render.py:42 msgid "%d days" msgstr "" #: taskcoachlib\gui\render.py:42 msgid "1 day" msgstr "" #: taskcoachlib\gui\render.py:64 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib\gui\render.py:64 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib\gui\render.py:65 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib\gui\render.py:65 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib\gui\render.py:67 msgid "Every other day" msgstr "" #: taskcoachlib\gui\render.py:67 msgid "Every other week" msgstr "" #: taskcoachlib\gui\render.py:68 msgid "Every other month" msgstr "" #: taskcoachlib\gui\render.py:68 msgid "Every other year" msgstr "" #: taskcoachlib\gui\render.py:102 msgid "now" msgstr "" #: taskcoachlib\gui\taskbaricon.py:136 msgid "%d tasks overdue" msgstr "" #: taskcoachlib\gui\taskbaricon.py:136 msgid "one task overdue" msgstr "" #: taskcoachlib\gui\taskbaricon.py:137 msgid "%d tasks due soon" msgstr "" #: taskcoachlib\gui\taskbaricon.py:137 msgid "one task due soon" msgstr "" #: taskcoachlib\gui\taskbaricon.py:148 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib\gui\taskbaricon.py:150 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:484 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib\gui\uicommand.py:497 msgid "Open %s" msgstr "" #: taskcoachlib\gui\uicommand.py:505 msgid "&Merge..." msgstr "" #: taskcoachlib\gui\uicommand.py:506 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib\gui\uicommand.py:515 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib\gui\uicommand.py:525 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib\gui\uicommand.py:538 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib\gui\uicommand.py:548 msgid "Sa&ve selection..." msgstr "" #: taskcoachlib\gui\uicommand.py:549 msgid "Save the selected tasks to a separate file" msgstr "" #: taskcoachlib\gui\uicommand.py:559 msgid "Save selected task as &template" msgstr "" #: taskcoachlib\gui\uicommand.py:560 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib\gui\uicommand.py:570 msgid "&Add template..." msgstr "" #: taskcoachlib\gui\uicommand.py:571 msgid "Add a new template from a template file" msgstr "" #: taskcoachlib\gui\uicommand.py:581 msgid "Edit templates..." msgstr "" #: taskcoachlib\gui\uicommand.py:582 msgid "Edit existing templates" msgstr "" #: taskcoachlib\gui\uicommand.py:586 msgid "Edit templates" msgstr "" #: taskcoachlib\gui\uicommand.py:593 msgid "&Purge deleted items" msgstr "" #: taskcoachlib\gui\uicommand.py:594 msgid "Actually delete deleted tasks and notes (see the SyncML chapter in Help" msgstr "" #: taskcoachlib\gui\uicommand.py:598 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib\gui\uicommand.py:612 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib\gui\uicommand.py:629 msgid "&Print preview..." msgstr "" #: taskcoachlib\gui\uicommand.py:630 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib\gui\uicommand.py:640 msgid "Print preview" msgstr "" #: taskcoachlib\gui\uicommand.py:647 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib\gui\uicommand.py:670 msgid "Export as &HTML..." msgstr "" #: taskcoachlib\gui\uicommand.py:671 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib\gui\uicommand.py:688 msgid "Export as &CSV..." msgstr "" #: taskcoachlib\gui\uicommand.py:689 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib\gui\uicommand.py:704 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib\gui\uicommand.py:705 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib\gui\uicommand.py:727 msgid "&Import CSV..." msgstr "" #: taskcoachlib\gui\uicommand.py:728 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib\gui\uicommand.py:732 msgid "Choose CSV file" msgstr "" #: taskcoachlib\gui\uicommand.py:734 msgid "CSV import" msgstr "" #: taskcoachlib\gui\uicommand.py:741 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib\gui\uicommand.py:742 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib\gui\uicommand.py:746 msgid "Please enter your password:" msgstr "" #: taskcoachlib\gui\uicommand.py:747 msgid "Task Coach SyncML password" msgstr "" #: taskcoachlib\gui\uicommand.py:754 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib\gui\uicommand.py:763 msgid "&Undo" msgstr "" #: taskcoachlib\gui\uicommand.py:792 msgid "&Redo" msgstr "" #: taskcoachlib\gui\uicommand.py:822 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib\gui\uicommand.py:844 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib\gui\uicommand.py:866 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib\gui\uicommand.py:889 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib\gui\uicommand.py:910 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib\gui\uicommand.py:916 taskcoachlib\help\uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib\gui\uicommand.py:922 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib\gui\uicommand.py:923 taskcoachlib\gui\uicommand.py:929 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib\gui\uicommand.py:935 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib\gui\uicommand.py:949 msgid "&Clear selection" msgstr "" #: taskcoachlib\gui\uicommand.py:950 msgid "Unselect all items" msgstr "" #: taskcoachlib\gui\uicommand.py:958 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib\gui\uicommand.py:967 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib\gui\uicommand.py:989 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib\gui\uicommand.py:1027 msgid "&Rename viewer..." msgstr "" #: taskcoachlib\gui\uicommand.py:1028 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib\gui\uicommand.py:1033 msgid "New title for the viewer:" msgstr "" #: taskcoachlib\gui\uicommand.py:1033 msgid "Rename viewer" msgstr "" #: taskcoachlib\gui\uicommand.py:1054 msgid "&Hide this column" msgstr "" #: taskcoachlib\gui\uicommand.py:1055 msgid "Hide the selected column" msgstr "" #: taskcoachlib\gui\uicommand.py:1101 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib\gui\uicommand.py:1115 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib\gui\uicommand.py:1136 msgid "&Ascending" msgstr "" #: taskcoachlib\gui\uicommand.py:1137 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib\gui\uicommand.py:1150 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib\gui\uicommand.py:1151 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib\gui\uicommand.py:1164 msgid "Sort by status &first" msgstr "" #: taskcoachlib\gui\uicommand.py:1165 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib\gui\uicommand.py:1201 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:1202 msgid "Show/hide inactive tasks (tasks with a start date in the future)" msgstr "" #: taskcoachlib\gui\uicommand.py:1219 msgid "Hide &active tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:1220 msgid "" "Show/hide active tasks (tasks with a start date in the past that are not " "completed)" msgstr "" #: taskcoachlib\gui\uicommand.py:1232 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:1233 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:1249 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:1250 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib\gui\uicommand.py:1265 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib\gui\uicommand.py:1266 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib\gui\uicommand.py:1313 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib\gui\uicommand.py:1314 taskcoachlib\help\__init__.py:634 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib\gui\uicommand.py:1406 msgid "Create a new task from a template" msgstr "" #: taskcoachlib\gui\uicommand.py:1412 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib\gui\uicommand.py:1413 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib\gui\uicommand.py:1424 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib\gui\uicommand.py:1425 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:1436 msgid "New task with selected tasks as &dependencies..." msgstr "" #: taskcoachlib\gui\uicommand.py:1437 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:1446 msgid "New &subitem..." msgstr "" #: taskcoachlib\gui\uicommand.py:1447 msgid "New &subtask..." msgstr "إضافة &مهمة فرعية..." #: taskcoachlib\gui\uicommand.py:1448 msgid "New &subnote..." msgstr "" #: taskcoachlib\gui\uicommand.py:1449 msgid "New &subcategory..." msgstr "" #: taskcoachlib\gui\uicommand.py:1453 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib\gui\uicommand.py:1471 msgid "&Mark task completed\tCtrl+RETURN" msgstr "" #: taskcoachlib\gui\uicommand.py:1472 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib\gui\uicommand.py:1473 msgid "&Mark task uncompleted\tCtrl+RETURN" msgstr "" #: taskcoachlib\gui\uicommand.py:1474 msgid "Mark the selected task(s) uncompleted" msgstr "" #: taskcoachlib\gui\uicommand.py:1550 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib\gui\uicommand.py:1563 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib\gui\uicommand.py:1576 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib\gui\uicommand.py:1589 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib\gui\uicommand.py:1648 msgid "Toggle %s" msgstr "" #: taskcoachlib\gui\uicommand.py:1675 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib\gui\uicommand.py:1687 msgid "Several things" msgstr "" #: taskcoachlib\gui\uicommand.py:1690 msgid "and" msgstr "" #: taskcoachlib\gui\uicommand.py:1720 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib\gui\uicommand.py:1721 msgid "%s mail error" msgstr "" #: taskcoachlib\gui\uicommand.py:1727 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib\gui\uicommand.py:1742 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib\gui\uicommand.py:1796 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib\gui\uicommand.py:1817 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib\gui\uicommand.py:1840 msgid "(No subject)" msgstr "" #: taskcoachlib\gui\uicommand.py:1843 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib\gui\uicommand.py:1859 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib\gui\uicommand.py:1871 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib\gui\uicommand.py:1873 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib\gui\uicommand.py:1874 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib\gui\uicommand.py:1875 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib\gui\uicommand.py:1876 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib\gui\uicommand.py:1981 msgid "multiple tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:2016 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib\gui\uicommand.py:2034 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib\gui\uicommand.py:2055 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib\gui\uicommand.py:2056 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib\gui\uicommand.py:2087 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib\gui\uicommand.py:2110 msgid "Error opening attachment" msgstr "خطأ خلال فتح الملحق" #: taskcoachlib\gui\uicommand.py:2130 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib\gui\uicommand.py:2172 msgid "&Help contents...\tCtrl+?" msgstr "" #: taskcoachlib\gui\uicommand.py:2175 msgid "&Help contents...\tCtrl+H" msgstr "" #: taskcoachlib\gui\uicommand.py:2177 msgid "Help" msgstr "" #: taskcoachlib\gui\uicommand.py:2183 msgid "&Tips..." msgstr "" #: taskcoachlib\gui\uicommand.py:2184 msgid "Tips about the program" msgstr "" #: taskcoachlib\gui\uicommand.py:2193 msgid "&About %s..." msgstr "" #: taskcoachlib\gui\uicommand.py:2194 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib\gui\uicommand.py:2195 msgid "Help: About %s" msgstr "" #: taskcoachlib\gui\uicommand.py:2202 msgid "&License..." msgstr "" #: taskcoachlib\gui\uicommand.py:2203 msgid "%s license" msgstr "" #: taskcoachlib\gui\uicommand.py:2204 msgid "Help: %s license" msgstr "" #: taskcoachlib\gui\uicommand.py:2211 msgid "Check for update..." msgstr "" #: taskcoachlib\gui\uicommand.py:2212 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib\gui\uicommand.py:2230 msgid "&Frequently asked questions..." msgstr "" #: taskcoachlib\gui\uicommand.py:2231 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib\gui\uicommand.py:2237 msgid "Report a &bug..." msgstr "" #: taskcoachlib\gui\uicommand.py:2238 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib\gui\uicommand.py:2244 msgid "Request a &feature..." msgstr "" #: taskcoachlib\gui\uicommand.py:2245 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib\gui\uicommand.py:2251 msgid "Request &support..." msgstr "" #: taskcoachlib\gui\uicommand.py:2252 msgid "Request user support from the developers" msgstr "" #: taskcoachlib\gui\uicommand.py:2259 msgid "Help improve &translations..." msgstr "" #: taskcoachlib\gui\uicommand.py:2260 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib\gui\uicommand.py:2266 msgid "&Donate..." msgstr "" #: taskcoachlib\gui\uicommand.py:2267 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib\gui\uicommand.py:2273 msgid "&Restore" msgstr "" #: taskcoachlib\gui\uicommand.py:2274 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib\gui\uicommand.py:2367 msgid "Effort details" msgstr "تفاصيل الجهد" #: taskcoachlib\gui\uicommand.py:2367 msgid "Effort per day" msgstr "الجهد خلال اليوم" #: taskcoachlib\gui\uicommand.py:2368 msgid "Effort per month" msgstr "الجهد خلال الشهر" #: taskcoachlib\gui\uicommand.py:2368 msgid "Effort per week" msgstr "الجهد خلال الإسبوع" #: taskcoachlib\gui\uicommand.py:2376 msgid "List of tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:2376 msgid "Tree of tasks" msgstr "" #: taskcoachlib\gui\uicommand.py:2384 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib\gui\uicommand.py:2385 msgid "Filter on any checked category" msgstr "" #: taskcoachlib\gui\uicommand.py:2401 msgid "&Configure" msgstr "" #: taskcoachlib\gui\uicommand.py:2402 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib\gui\uicommand.py:2429 msgid "&Next period" msgstr "" #: taskcoachlib\gui\uicommand.py:2430 msgid "Show next period" msgstr "" #: taskcoachlib\gui\uicommand.py:2436 msgid "&Previous period" msgstr "" #: taskcoachlib\gui\uicommand.py:2437 msgid "Show previous period" msgstr "" #: taskcoachlib\gui\uicommand.py:2443 msgid "&Today" msgstr "" #: taskcoachlib\gui\uicommand.py:2444 msgid "Show today" msgstr "" #: taskcoachlib\gui\uicommand.py:2452 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib\gui\uicommand.py:2453 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:71 msgid "Type" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:81 msgid "Sort by subject" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:81 #: taskcoachlib\gui\viewer\mixin.py:403 msgid "Sub&ject" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:89 msgid "Sort by description" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:89 #: taskcoachlib\gui\viewer\attachment.py:108 #: taskcoachlib\gui\viewer\category.py:126 #: taskcoachlib\gui\viewer\effort.py:237 taskcoachlib\gui\viewer\mixin.py:406 #: taskcoachlib\gui\viewer\note.py:89 taskcoachlib\gui\viewer\note.py:114 #: taskcoachlib\gui\viewer\task.py:838 msgid "&Description" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:109 #: taskcoachlib\gui\viewer\category.py:127 #: taskcoachlib\gui\viewer\effort.py:238 taskcoachlib\gui\viewer\note.py:90 #: taskcoachlib\gui\viewer\task.py:839 msgid "Show/hide description column" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:111 #: taskcoachlib\gui\viewer\category.py:133 taskcoachlib\gui\viewer\task.py:855 msgid "&Notes" msgstr "" #: taskcoachlib\gui\viewer\attachment.py:112 #: taskcoachlib\gui\viewer\category.py:134 taskcoachlib\gui\viewer\task.py:856 msgid "Show/hide notes column" msgstr "" #: taskcoachlib\gui\viewer\category.py:129 taskcoachlib\gui\viewer\note.py:92 #: taskcoachlib\gui\viewer\task.py:850 msgid "&Attachments" msgstr "" #: taskcoachlib\gui\viewer\category.py:130 taskcoachlib\gui\viewer\note.py:93 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib\gui\viewer\category.py:168 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib\gui\viewer\category.py:171 msgid "Status: %d filtered" msgstr "" #: taskcoachlib\gui\viewer\effort.py:167 msgid "Period" msgstr "" #: taskcoachlib\gui\viewer\effort.py:181 msgid "Total time spent" msgstr "" #: taskcoachlib\gui\viewer\effort.py:185 msgid "Total revenue" msgstr "" #: taskcoachlib\gui\viewer\effort.py:191 msgid "Monday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:193 msgid "Tuesday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:195 msgid "Wednesday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:197 msgid "Thursday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:199 msgid "Friday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:201 msgid "Saturday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:203 msgid "Sunday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:240 taskcoachlib\gui\viewer\mixin.py:99 #: taskcoachlib\gui\viewer\note.py:95 taskcoachlib\gui\viewer\note.py:118 #: taskcoachlib\gui\viewer\task.py:859 msgid "&Categories" msgstr "" #: taskcoachlib\gui\viewer\effort.py:241 taskcoachlib\gui\viewer\note.py:96 #: taskcoachlib\gui\viewer\task.py:860 msgid "Show/hide categories column" msgstr "" #: taskcoachlib\gui\viewer\effort.py:243 taskcoachlib\gui\viewer\mixin.py:511 #: taskcoachlib\gui\viewer\task.py:815 msgid "&Time spent" msgstr "" #: taskcoachlib\gui\viewer\effort.py:244 taskcoachlib\gui\viewer\task.py:816 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib\gui\viewer\effort.py:246 taskcoachlib\gui\viewer\mixin.py:516 #: taskcoachlib\gui\viewer\task.py:834 msgid "&Revenue" msgstr "" #: taskcoachlib\gui\viewer\effort.py:247 taskcoachlib\gui\viewer\task.py:835 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib\gui\viewer\effort.py:251 msgid "&Total time spent" msgstr "" #: taskcoachlib\gui\viewer\effort.py:252 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib\gui\viewer\effort.py:255 msgid "&Total revenue" msgstr "" #: taskcoachlib\gui\viewer\effort.py:256 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib\gui\viewer\effort.py:260 msgid "Effort per weekday" msgstr "" #: taskcoachlib\gui\viewer\effort.py:261 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib\gui\viewer\effort.py:314 msgid "Effort: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib\gui\viewer\effort.py:317 msgid "Status: %d tracking" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:211 msgid "&Due tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:212 msgid "&Show all due tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:212 msgid "Show all due tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:214 msgid "&Hide all due tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:214 msgid "Hide all due tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:216 msgid "Only show tasks due &today" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:217 msgid "Only show tasks due today and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:219 msgid "Only show tasks due today or t&omorrow" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:220 msgid "Only show tasks due today or tomorrow and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:222 msgid "Only show tasks due this wo&rk week" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:223 msgid "Only show tasks due this work week and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:225 msgid "Only show tasks due this &week" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:226 msgid "Only show tasks due this week and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:228 msgid "Only show tasks due within &7 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:229 msgid "Only show tasks due within 7 days and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:231 msgid "Only show tasks due within &14 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:232 msgid "Only show tasks due within 14 days and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:234 msgid "Only show tasks due this &month" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:235 msgid "Only show tasks due this month and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:237 msgid "Only show tasks due within &30 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:238 msgid "Only show tasks due within 30 days and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:240 msgid "Only show tasks due this &year" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:241 msgid "Only show tasks due this year and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:243 msgid "&Completed tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:244 msgid "&Show all completed tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:245 msgid "Show all completed tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:246 msgid "&Hide all completed tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:247 msgid "Hide all completed tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:248 msgid "Only show tasks completed &today" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:249 msgid "Only show tasks completed today and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:251 msgid "Only show tasks completed &yesterday and today" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:252 msgid "Only show tasks completed yesterday and today and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:254 msgid "Only show tasks completed this wo&rk week" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:255 msgid "Only show tasks completed this work week and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:257 msgid "Only show tasks completed this &week" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:258 msgid "Only show tasks completed this week and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:260 msgid "Only show tasks completed the last &7 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:261 msgid "Only show tasks completed the last 7 days and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:263 msgid "Only show tasks completed the last &14 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:264 msgid "Only show tasks completed the last 14 days and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:266 msgid "Only show tasks completed this &month" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:267 msgid "Only show tasks completed this month and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:269 msgid "Only show tasks completed the last &30 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:270 msgid "Only show tasks completed the last 30 days and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:272 msgid "Only show tasks completed this &year" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:273 msgid "Only show tasks completed this year and hide older ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:275 msgid "&Inactive tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:276 msgid "&Show all inactive tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:277 msgid "Show all inactive tasks (tasks with a start date in the future)" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:279 msgid "&Hide all inactive tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:280 msgid "Hide all inactive tasks (tasks with a start date in the future)" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:282 msgid "Only show tasks starting &today" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:283 msgid "Only show tasks starting today and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:285 msgid "Only show tasks starting today or t&omorrow" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:286 msgid "Only show tasks starting today or tomorrow and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:288 msgid "Only show tasks starting this wo&rk week" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:289 msgid "Only show tasks starting this work week and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:291 msgid "Only show tasks starting this &week" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:292 msgid "Only show tasks starting this week and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:294 msgid "Only show tasks starting the next &7 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:295 msgid "Only show tasks starting the next 7 days and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:297 msgid "Only show tasks starting the next &14 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:298 msgid "Only show tasks starting the next 14 days and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:300 msgid "Only show tasks starting this &month" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:301 msgid "Only show tasks starting this month and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:303 msgid "Only show tasks starting the next &30 days" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:304 msgid "Only show tasks starting the next 30 days and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:306 msgid "Only show tasks starting this &year" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:307 msgid "Only show tasks starting this year and hide later ones" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:427 msgid "Sort categories by subject" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:428 msgid "Sort categories by description" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:443 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:444 msgid "Sort attachments by description" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:445 msgid "Sort attachments by category" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:449 taskcoachlib\gui\viewer\note.py:110 msgid "Sort notes by subject" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:450 taskcoachlib\gui\viewer\note.py:115 msgid "Sort notes by description" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:451 msgid "Sort notes by category" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:456 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:457 msgid "Sort tasks by description" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:458 msgid "Sort tasks by category" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:502 msgid "Sort tasks by start date" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:502 taskcoachlib\gui\viewer\task.py:789 msgid "&Start date" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:503 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:503 taskcoachlib\gui\viewer\task.py:792 msgid "&Due date" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:504 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:504 taskcoachlib\gui\viewer\task.py:795 msgid "&Completion date" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:505 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:505 taskcoachlib\gui\viewer\task.py:841 msgid "&Prerequisites" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:506 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:506 taskcoachlib\gui\viewer\task.py:844 msgid "&Dependencies" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:507 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:507 taskcoachlib\gui\viewer\task.py:798 msgid "&Time left" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:508 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:508 taskcoachlib\gui\viewer\task.py:847 msgid "&Percentage complete" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:509 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:509 taskcoachlib\gui\viewer\task.py:801 msgid "&Recurrence" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:510 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:510 taskcoachlib\gui\viewer\task.py:806 #: taskcoachlib\gui\viewer\task.py:812 msgid "&Budget" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:511 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:512 msgid "Budget &left" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:512 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:513 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:514 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:514 taskcoachlib\gui\viewer\task.py:828 msgid "&Hourly fee" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:515 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:515 taskcoachlib\gui\viewer\task.py:831 msgid "&Fixed fee" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:516 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:517 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib\gui\viewer\mixin.py:517 taskcoachlib\gui\viewer\task.py:865 msgid "&Reminder" msgstr "" #: taskcoachlib\gui\viewer\note.py:110 msgid "&Subject" msgstr "" #: taskcoachlib\gui\viewer\note.py:119 msgid "Sort notes by categories" msgstr "" #: taskcoachlib\gui\viewer\note.py:148 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib\gui\viewer\note.py:150 msgid "Status: n/a" msgstr "" #: taskcoachlib\gui\viewer\task.py:270 msgid "Timeline" msgstr "" #: taskcoachlib\gui\viewer\task.py:361 msgid "Now" msgstr "" #: taskcoachlib\gui\viewer\task.py:377 msgid "Task square map" msgstr "" #: taskcoachlib\gui\viewer\task.py:611 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib\gui\viewer\task.py:743 msgid "Dependencies" msgstr "" #: taskcoachlib\gui\viewer\task.py:758 msgid "% complete" msgstr "" #: taskcoachlib\gui\viewer\task.py:759 msgid "Time left" msgstr "" #: taskcoachlib\gui\viewer\task.py:782 msgid "&Dates" msgstr "" #: taskcoachlib\gui\viewer\task.py:783 msgid "&All date columns" msgstr "" #: taskcoachlib\gui\viewer\task.py:784 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib\gui\viewer\task.py:790 msgid "Show/hide start date column" msgstr "" #: taskcoachlib\gui\viewer\task.py:793 msgid "Show/hide due date column" msgstr "" #: taskcoachlib\gui\viewer\task.py:796 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib\gui\viewer\task.py:799 msgid "Show/hide time left column" msgstr "" #: taskcoachlib\gui\viewer\task.py:802 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib\gui\viewer\task.py:807 msgid "&All budget columns" msgstr "" #: taskcoachlib\gui\viewer\task.py:808 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib\gui\viewer\task.py:813 msgid "Show/hide budget column" msgstr "" #: taskcoachlib\gui\viewer\task.py:818 msgid "&Budget left" msgstr "" #: taskcoachlib\gui\viewer\task.py:819 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib\gui\viewer\task.py:822 msgid "&Financial" msgstr "" #: taskcoachlib\gui\viewer\task.py:823 msgid "&All financial columns" msgstr "" #: taskcoachlib\gui\viewer\task.py:824 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib\gui\viewer\task.py:829 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib\gui\viewer\task.py:832 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib\gui\viewer\task.py:842 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib\gui\viewer\task.py:845 msgid "Show/hide dependencies column" msgstr "" #: taskcoachlib\gui\viewer\task.py:848 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib\gui\viewer\task.py:851 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib\gui\viewer\task.py:863 msgid "Show/hide priority column" msgstr "" #: taskcoachlib\gui\viewer\task.py:866 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:45 msgid "Comma" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:46 taskcoachlib\help\__init__.py:630 msgid "Tab" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:47 msgid "Space" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:51 msgid "Simple quote" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:52 msgid "Double quote" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:69 msgid "First line describes fields" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:80 msgid "Delimiter" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:83 msgid "Quote character" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:146 msgid "Field #%d" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:180 msgid "Please select a file." msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:191 #: taskcoachlib\persistence\csv\reader.py:72 msgid "ID" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:194 #: taskcoachlib\persistence\csv\reader.py:46 #: taskcoachlib\persistence\csv\reader.py:79 msgid "Category" msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:249 msgid "No field mapping." msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:252 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib\gui\wizard\csvimport.py:255 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib\help\__init__.py:65 msgid "Table of contents" msgstr "" #: taskcoachlib\help\__init__.py:70 taskcoachlib\help\__init__.py:131 msgid "About tasks" msgstr "" #: taskcoachlib\help\__init__.py:71 taskcoachlib\help\__init__.py:137 msgid "Task properties" msgstr "" #: taskcoachlib\help\__init__.py:72 taskcoachlib\help\__init__.py:171 msgid "Task states" msgstr "" #: taskcoachlib\help\__init__.py:73 taskcoachlib\help\__init__.py:189 msgid "Task colors" msgstr "" #: taskcoachlib\help\__init__.py:77 taskcoachlib\help\__init__.py:209 msgid "About effort" msgstr "" #: taskcoachlib\help\__init__.py:78 taskcoachlib\help\__init__.py:216 msgid "Effort properties" msgstr "" #: taskcoachlib\help\__init__.py:82 taskcoachlib\help\__init__.py:235 msgid "About categories" msgstr "" #: taskcoachlib\help\__init__.py:83 taskcoachlib\help\__init__.py:248 msgid "Category properties" msgstr "" #: taskcoachlib\help\__init__.py:87 taskcoachlib\help\__init__.py:270 msgid "About notes" msgstr "" #: taskcoachlib\help\__init__.py:88 taskcoachlib\help\__init__.py:278 msgid "Note properties" msgstr "" #: taskcoachlib\help\__init__.py:90 taskcoachlib\help\__init__.py:289 msgid "Printing and exporting" msgstr "" #: taskcoachlib\help\__init__.py:92 taskcoachlib\help\__init__.py:291 msgid "About printing and exporting" msgstr "" #: taskcoachlib\help\__init__.py:94 taskcoachlib\help\__init__.py:301 msgid "Printing" msgstr "" #: taskcoachlib\help\__init__.py:95 taskcoachlib\help\__init__.py:313 msgid "Exporting" msgstr "" #: taskcoachlib\help\__init__.py:97 taskcoachlib\help\__init__.py:328 msgid "E-mail (Outlook & Thunderbird) integration" msgstr "" #: taskcoachlib\help\__init__.py:99 taskcoachlib\help\__init__.py:330 msgid "About e-mail integration" msgstr "" #: taskcoachlib\help\__init__.py:100 taskcoachlib\help\__init__.py:343 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib\help\__init__.py:101 taskcoachlib\help\__init__.py:350 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib\help\__init__.py:103 taskcoachlib\help\__init__.py:360 msgid "SyncML support" msgstr "" #: taskcoachlib\help\__init__.py:105 taskcoachlib\help\__init__.py:362 msgid "What is SyncML" msgstr "" #: taskcoachlib\help\__init__.py:106 taskcoachlib\help\__init__.py:383 msgid "Setup" msgstr "" #: taskcoachlib\help\__init__.py:107 taskcoachlib\help\__init__.py:403 msgid "Limitations" msgstr "" #: taskcoachlib\help\__init__.py:108 taskcoachlib\help\__init__.py:115 #: taskcoachlib\help\__init__.py:418 taskcoachlib\help\__init__.py:523 msgid "Troubleshooting" msgstr "" #: taskcoachlib\help\__init__.py:109 taskcoachlib\help\__init__.py:430 msgid "Purging deleted items" msgstr "" #: taskcoachlib\help\__init__.py:111 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib\help\__init__.py:113 msgid "Task Coach on the iPhone" msgstr "" #: taskcoachlib\help\__init__.py:114 taskcoachlib\help\__init__.py:469 msgid "Configuration" msgstr "" #: taskcoachlib\help\__init__.py:117 taskcoachlib\help\__init__.py:544 msgid "Task templates" msgstr "" #: taskcoachlib\help\__init__.py:119 taskcoachlib\help\__init__.py:546 msgid "About templates" msgstr "" #: taskcoachlib\help\__init__.py:120 taskcoachlib\help\__init__.py:553 msgid "Using templates" msgstr "" #: taskcoachlib\help\__init__.py:122 taskcoachlib\help\__init__.py:574 msgid "Graphical user interface" msgstr "" #: taskcoachlib\help\__init__.py:124 taskcoachlib\help\__init__.py:584 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib\help\__init__.py:133 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib\help\__init__.py:139 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib\help\__init__.py:141 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib\help\__init__.py:142 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib\help\__init__.py:143 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib\help\__init__.py:145 msgid "" "Start date: the first date on which the task can be started. \n" "The start date defaults to the date the task is created. It can also be " "'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib\help\__init__.py:149 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task " "as \n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib\help\__init__.py:152 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task is inactive until the last prerequisite task " "is \n" "completed. Note that if the task has a specific start date set, that start\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes active." msgstr "" #: taskcoachlib\help\__init__.py:157 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib\help\__init__.py:158 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib\help\__init__.py:159 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib\help\__init__.py:162 taskcoachlib\help\__init__.py:226 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib\help\__init__.py:164 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib\help\__init__.py:165 msgid "" "Dependencies: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib\help\__init__.py:167 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib\help\__init__.py:168 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib\help\__init__.py:169 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib\help\__init__.py:173 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib\help\__init__.py:175 msgid "Active: the start date is in the past and the due date in the future;" msgstr "" #: taskcoachlib\help\__init__.py:176 msgid "" "Inactive: the start date is in the future, and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib\help\__init__.py:178 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib\help\__init__.py:180 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib\help\__init__.py:182 msgid "Over due: the due date is in the past;" msgstr "" #: taskcoachlib\help\__init__.py:183 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib\help\__init__.py:185 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib\help\__init__.py:186 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib\help\__init__.py:187 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib\help\__init__.py:191 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib\help\__init__.py:193 msgid "Over due tasks are red;" msgstr "" #: taskcoachlib\help\__init__.py:194 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib\help\__init__.py:195 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib\help\__init__.py:196 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib\help\__init__.py:197 msgid "Completed tasks are green." msgstr "" #: taskcoachlib\help\__init__.py:198 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib\help\__init__.py:201 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib\help\__init__.py:211 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib\help\__init__.py:218 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib\help\__init__.py:220 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib\help\__init__.py:221 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib\help\__init__.py:222 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib\help\__init__.py:224 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib\help\__init__.py:228 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib\help\__init__.py:229 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib\help\__init__.py:237 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib\help\__init__.py:242 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words " "the \n" "phone calls you need to make." msgstr "" #: taskcoachlib\help\__init__.py:250 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib\help\__init__.py:252 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib\help\__init__.py:253 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib\help\__init__.py:254 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutual exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib\help\__init__.py:258 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib\help\__init__.py:272 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib\help\__init__.py:280 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib\help\__init__.py:282 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib\help\__init__.py:283 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib\help\__init__.py:284 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib\help\__init__.py:293 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib\help\__init__.py:303 taskcoachlib\help\__init__.py:315 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib\help\__init__.py:307 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib\help\__init__.py:319 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib\help\__init__.py:332 msgid "" "%(name)s integrates with both Outlook and Thunderbird mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib\help\__init__.py:340 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib\help\__init__.py:345 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib\help\__init__.py:347 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib\help\__init__.py:348 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib\help\__init__.py:352 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib\help\__init__.py:364 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib\help\__init__.py:372 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib\help\__init__.py:379 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. Debian packages for 32 and 64 bits, Python 2.5 and 2.6\n" "are available on the pysyncml home page." msgstr "" #: taskcoachlib\help\__init__.py:385 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib\help\__init__.py:388 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib\help\__init__.py:397 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib\help\__init__.py:400 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib\help\__init__.py:405 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib\help\__init__.py:409 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib\help\__init__.py:410 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib\help\__init__.py:411 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib\help\__init__.py:412 msgid "" "The conflict detection/resolution system is a work around a \n" "Funambol limitation. It should work in most cases, but if many applications\n" "synchronize with the same server at the same time, problems may rise." msgstr "" #: taskcoachlib\help\__init__.py:416 msgid "Probably some others..." msgstr "" #: taskcoachlib\help\__init__.py:420 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib\help\__init__.py:423 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib\help\__init__.py:424 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib\help\__init__.py:425 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib\help\__init__.py:426 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib\help\__init__.py:432 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib\help\__init__.py:439 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib\help\__init__.py:449 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib\help\__init__.py:451 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib\help\__init__.py:453 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib\help\__init__.py:460 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib\help\__init__.py:462 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib\help\__init__.py:463 msgid "Time tracking" msgstr "" #: taskcoachlib\help\__init__.py:464 msgid "Multiple task files" msgstr "" #: taskcoachlib\help\__init__.py:465 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib\help\__init__.py:467 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib\help\__init__.py:471 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib\help\__init__.py:473 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib\help\__init__.py:476 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib\help\__init__.py:477 msgid "" "Show inactive: whether to show inactive tasks (start date \n" "in the future)." msgstr "" #: taskcoachlib\help\__init__.py:479 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib\help\__init__.py:481 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib\help\__init__.py:483 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib\help\__init__.py:485 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib\help\__init__.py:488 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib\help\__init__.py:490 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib\help\__init__.py:495 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib\help\__init__.py:503 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib\help\__init__.py:506 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib\help\__init__.py:510 msgid "Configuration on Windows" msgstr "" #: taskcoachlib\help\__init__.py:512 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib\help\__init__.py:516 msgid "Configuration on Linux" msgstr "" #: taskcoachlib\help\__init__.py:518 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. " "You \n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib\help\__init__.py:525 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib\help\__init__.py:528 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib\help\__init__.py:532 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib\help\__init__.py:534 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib\help\__init__.py:537 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib\help\__init__.py:539 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib\help\__init__.py:548 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating " "a \n" "template, the created task has its dates replaced with dates relative to " "the \n" "current date." msgstr "" #: taskcoachlib\help\__init__.py:555 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib\help\__init__.py:559 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Add template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where TaskCoach." "ini \n" "is." msgstr "" #: taskcoachlib\help\__init__.py:564 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When " "the \n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create " "a \n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the start date will be replaced by the current date and " "the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib\help\__init__.py:575 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto " "eachother\n" "to create notebooks." msgstr "" #: taskcoachlib\help\__init__.py:586 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib\help\__init__.py:590 msgid "Ctrl-A" msgstr "" #: taskcoachlib\help\__init__.py:591 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib\help\__init__.py:592 msgid "Ctrl-B" msgstr "" #: taskcoachlib\help\__init__.py:593 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib\help\__init__.py:594 msgid "Ctrl-C" msgstr "" #: taskcoachlib\help\__init__.py:595 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib\help\__init__.py:596 msgid "Ctrl-D" msgstr "" #: taskcoachlib\help\__init__.py:597 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib\help\__init__.py:598 msgid "Ctrl-E" msgstr "" #: taskcoachlib\help\__init__.py:599 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib\help\__init__.py:600 msgid "Ctrl-F" msgstr "" #: taskcoachlib\help\__init__.py:601 msgid "Ctrl-G" msgstr "" #: taskcoachlib\help\__init__.py:602 msgid "Ctrl-H" msgstr "" #: taskcoachlib\help\__init__.py:603 msgid "Ctrl-I" msgstr "" #: taskcoachlib\help\__init__.py:604 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib\help\__init__.py:605 msgid "Ctrl-J" msgstr "" #: taskcoachlib\help\__init__.py:606 msgid "Ctrl-M" msgstr "" #: taskcoachlib\help\__init__.py:607 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib\help\__init__.py:608 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib\help\__init__.py:608 taskcoachlib\help\__init__.py:636 msgid "Insert a new subitem" msgstr "" #: taskcoachlib\help\__init__.py:609 msgid "Ctrl-O" msgstr "" #: taskcoachlib\help\__init__.py:610 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib\help\__init__.py:611 msgid "Alt-P" msgstr "" #: taskcoachlib\help\__init__.py:612 msgid "Ctrl-P" msgstr "" #: taskcoachlib\help\__init__.py:613 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib\help\__init__.py:614 msgid "Ctrl-Q" msgstr "" #: taskcoachlib\help\__init__.py:615 msgid "Ctrl-R" msgstr "" #: taskcoachlib\help\__init__.py:616 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib\help\__init__.py:617 msgid "Ctrl-S" msgstr "" #: taskcoachlib\help\__init__.py:618 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib\help\__init__.py:619 msgid "Ctrl-T" msgstr "" #: taskcoachlib\help\__init__.py:620 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib\help\__init__.py:621 msgid "Ctrl-V" msgstr "" #: taskcoachlib\help\__init__.py:622 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib\help\__init__.py:623 msgid "Ctrl-W" msgstr "" #: taskcoachlib\help\__init__.py:624 msgid "Ctrl-X" msgstr "" #: taskcoachlib\help\__init__.py:625 msgid "Ctrl-Y" msgstr "" #: taskcoachlib\help\__init__.py:626 msgid "Ctrl-Z" msgstr "" #: taskcoachlib\help\__init__.py:627 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib\help\__init__.py:627 msgid "Enter" msgstr "" #: taskcoachlib\help\__init__.py:628 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib\help\__init__.py:628 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib\help\__init__.py:629 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib\help\__init__.py:629 msgid "Escape" msgstr "" #: taskcoachlib\help\__init__.py:630 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib\help\__init__.py:631 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib\help\__init__.py:631 msgid "Shift-Tab" msgstr "" #: taskcoachlib\help\__init__.py:632 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib\help\__init__.py:632 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib\help\__init__.py:633 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib\help\__init__.py:633 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib\help\__init__.py:634 msgid "DELETE" msgstr "" #: taskcoachlib\help\__init__.py:635 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib\help\__init__.py:636 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib\help\__init__.py:637 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib\help\__init__.py:638 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib\help\__init__.py:639 msgid "Alt-Down" msgstr "" #: taskcoachlib\help\__init__.py:639 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib\help\__init__.py:647 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, Revision %(revision)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib\help\__init__.py:659 msgid "" "\n" "Version %(version)s, Revision %(revision)s, %(date)s\n" "\n" "By %(author)s <%(author_email)s>\n" "\n" "%(url)s\n" "\n" "%(copyright)s\n" "%(license)s\n" "\n" msgstr "" #: taskcoachlib\help\tips.py:25 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib\help\tips.py:26 msgid "" "%(name)s has a mailinglist where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib\help\tips.py:27 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib\help\tips.py:28 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib\help\tips.py:29 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib\help\tips.py:30 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib\help\tips.py:31 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib\help\tips.py:32 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib\help\tips.py:33 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib\help\tips.py:34 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib\help\tips.py:35 msgid "" "You can turn off some features, such as notes and effort tracking, in the " "Preferences dialog. Features turned off are not accessible via the user " "interface, resulting in a 'smaller' user interface." msgstr "" #: taskcoachlib\help\tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib\help\tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib\help\uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib\help\uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib\help\uicommand.py:28 msgid "Insert a new category" msgstr "إضافة تصنيف جديد" #: taskcoachlib\help\uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib\help\uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib\help\uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib\help\uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib\help\uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib\help\uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib\help\uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib\help\uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "إضافة فترة جهد للمهمة المحددة" #: taskcoachlib\help\uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib\help\uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib\help\uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib\help\uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib\help\uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib\help\uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib\help\uicommand.py:44 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib\help\uicommand.py:45 msgid "Help about the program" msgstr "" #: taskcoachlib\help\uicommand.py:46 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib\help\uicommand.py:47 msgid "Insert a new note" msgstr "إدراج ملاحظة جديدة" #: taskcoachlib\help\uicommand.py:48 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib\help\uicommand.py:49 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib\help\uicommand.py:50 msgid "Print the current file" msgstr "" #: taskcoachlib\help\uicommand.py:51 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib\help\uicommand.py:52 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib\help\uicommand.py:53 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib\help\uicommand.py:54 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib\help\uicommand.py:55 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib\help\uicommand.py:56 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib\help\uicommand.py:57 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib\help\uicommand.py:58 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib\help\uicommand.py:59 msgid "Insert a new task" msgstr "أدرِج مهمّةً جديدة" #: taskcoachlib\help\uicommand.py:60 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib\help\uicommand.py:61 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib\help\uicommand.py:62 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib\help\uicommand.py:63 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib\iphone\protocol.py:478 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib\iphone\protocol.py:598 msgid "Protocol version: %d" msgstr "" #: taskcoachlib\iphone\protocol.py:606 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib\iphone\protocol.py:625 msgid "Hash OK." msgstr "" #: taskcoachlib\iphone\protocol.py:629 msgid "Hash KO." msgstr "" #: taskcoachlib\iphone\protocol.py:642 msgid "Device name: %s" msgstr "" #: taskcoachlib\iphone\protocol.py:657 msgid "GUID: %s" msgstr "" #: taskcoachlib\iphone\protocol.py:686 msgid "Sending file name: %s" msgstr "" #: taskcoachlib\iphone\protocol.py:716 msgid "Full from desktop." msgstr "" #: taskcoachlib\iphone\protocol.py:749 msgid "%d categories" msgstr "" #: taskcoachlib\iphone\protocol.py:757 msgid "Send category %s" msgstr "" #: taskcoachlib\iphone\protocol.py:762 taskcoachlib\iphone\protocol.py:831 msgid "Response: %d" msgstr "" #: taskcoachlib\iphone\protocol.py:775 msgid "%d tasks" msgstr "" #: taskcoachlib\iphone\protocol.py:783 msgid "Send task %s" msgstr "" #: taskcoachlib\iphone\protocol.py:847 msgid "%d efforts" msgstr "" #: taskcoachlib\iphone\protocol.py:855 msgid "Send effort %s" msgstr "" #: taskcoachlib\iphone\protocol.py:872 taskcoachlib\iphone\protocol.py:1310 msgid "Finished." msgstr "" #: taskcoachlib\iphone\protocol.py:988 msgid "%d new categories" msgstr "" #: taskcoachlib\iphone\protocol.py:989 msgid "%d new tasks" msgstr "" #: taskcoachlib\iphone\protocol.py:990 msgid "%d new efforts" msgstr "" #: taskcoachlib\iphone\protocol.py:991 msgid "%d modified categories" msgstr "" #: taskcoachlib\iphone\protocol.py:992 msgid "%d modified tasks" msgstr "" #: taskcoachlib\iphone\protocol.py:993 msgid "%d modified efforts" msgstr "" #: taskcoachlib\iphone\protocol.py:994 msgid "%d deleted categories" msgstr "" #: taskcoachlib\iphone\protocol.py:995 msgid "%d deleted tasks" msgstr "" #: taskcoachlib\iphone\protocol.py:996 msgid "%d deleted efforts" msgstr "" #: taskcoachlib\iphone\protocol.py:1011 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib\iphone\protocol.py:1042 msgid "Delete category %s" msgstr "" #: taskcoachlib\iphone\protocol.py:1062 msgid "Modify category %s" msgstr "" #: taskcoachlib\iphone\protocol.py:1089 taskcoachlib\iphone\protocol.py:1124 #: taskcoachlib\iphone\protocol.py:1160 msgid "New task %s" msgstr "" #: taskcoachlib\iphone\protocol.py:1180 msgid "Delete task %s" msgstr "" #: taskcoachlib\iphone\protocol.py:1236 msgid "Modify task %s" msgstr "" #: taskcoachlib\iphone\protocol.py:1265 msgid "New effort %s" msgstr "" #: taskcoachlib\iphone\protocol.py:1289 msgid "Modify effort %s" msgstr "" #: taskcoachlib\iphone\protocol.py:1303 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib\mailer\__init__.py:60 msgid "Untitled e-mail" msgstr "" #: taskcoachlib\mailer\macmail.py:49 msgid "Mail.app message" msgstr "" #: taskcoachlib\mailer\thunderbird.py:144 msgid "Malformed Thunderbird internal ID: %s. Please file a bug report." msgstr "" #: taskcoachlib\mailer\thunderbird.py:166 msgid "Could not find directory for ID %s. Please file a bug report." msgstr "" #: taskcoachlib\mailer\thunderbird.py:274 msgid "Please enter password for user %(user)s on %(server)s:%(port)d" msgstr "" #: taskcoachlib\mailer\thunderbird.py:292 msgid "Login failed (%s). Please try again." msgstr "" #: taskcoachlib\persistence\csv\reader.py:59 msgid "No subject" msgstr "" #: taskcoachlib\persistence\xml\templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib\persistence\xml\templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib\syncml\basesource.py:58 taskcoachlib\syncml\basesource.py:70 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib\syncml\basesource.py:59 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib\syncml\basesource.py:71 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib\syncml\notesource.py:73 msgid "Note \"%s\" has been deleted on server,\n" msgstr "" #: taskcoachlib\syncml\notesource.py:74 taskcoachlib\syncml\tasksource.py:155 msgid "but locally modified. Should I keep the local version?" msgstr "" #: taskcoachlib\syncml\notesource.py:75 taskcoachlib\syncml\notesource.py:80 #: taskcoachlib\syncml\tasksource.py:156 taskcoachlib\syncml\tasksource.py:161 msgid "Synchronization conflict" msgstr "" #: taskcoachlib\syncml\notesource.py:78 msgid "Note \"%s\" has been locally deleted,\n" msgstr "" #: taskcoachlib\syncml\notesource.py:79 taskcoachlib\syncml\tasksource.py:160 msgid "but modified on server. Should I keep the remote version?" msgstr "" #: taskcoachlib\syncml\sync.py:98 msgid "Synchronization" msgstr "" #: taskcoachlib\syncml\sync.py:99 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib\syncml\sync.py:203 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib\syncml\sync.py:209 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib\syncml\sync.py:214 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib\syncml\tasksource.py:154 msgid "Task \"%s\" has been deleted on server,\n" msgstr "" #: taskcoachlib\syncml\tasksource.py:159 msgid "Task \"%s\" has been locally deleted,\n" msgstr "" #: taskcoachlib\thirdparty\aui\aui_switcherdialog.py:1053 msgid "Pane Switcher" msgstr "" #: taskcoachlib\thirdparty\aui\aui_switcherdialog.py:1178 msgid "\">" msgstr "" #: taskcoachlib\thirdparty\aui\aui_switcherdialog.py:1178 msgid "" msgstr "" #: taskcoachlib\thirdparty\aui\aui_switcherdialog.py:1178 msgid "" msgstr "" #: taskcoachlib\thirdparty\aui\aui_switcherdialog.py:1184 msgid "" msgstr "" #: taskcoachlib\thirdparty\aui\framemanager.py:10255 msgid "Pane Preview" msgstr "" #: taskcoachlib\thirdparty\aui\tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib\thirdparty\aui\tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib\thirdparty\aui\tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib\thirdparty\aui\tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib\thirdparty\aui\tabmdi.py:203 #: taskcoachlib\thirdparty\aui\tabmdi.py:214 #: taskcoachlib\thirdparty\aui\tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:64 msgid "Day(s)" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:65 msgid "Week(s)" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:66 msgid "Month" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:72 msgid "Horizontal" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:73 msgid "Vertical" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:78 msgid "Start and due date" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:81 msgid "All but unplanned" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:82 msgid "All" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:105 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:105 msgid "Span" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:106 msgid "Calendar orientation" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:106 msgid "Orientation" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:107 msgid "Mandatory attributes of displayed tasks" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:108 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:108 msgid "Show now" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:109 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:109 msgid "Highlight" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:110 msgid "Font size" msgstr "" #: taskcoachlib\widgets\calendarconfig.py:110 msgid "Size of the font used to draw the task subject" msgstr "" #: taskcoachlib\widgets\conflict.py:84 msgid "Field name" msgstr "" #: taskcoachlib\widgets\conflict.py:85 msgid "Local" msgstr "" #: taskcoachlib\widgets\conflict.py:87 msgid "Remote" msgstr "" #: taskcoachlib\widgets\conflict.py:89 msgid "Fusion" msgstr "" #: taskcoachlib\widgets\dialog.py:149 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib\widgets\draganddrop.py:110 msgid "" "Unrecognized URL scheme:\n" "\"%s\"" msgstr "" #: taskcoachlib\widgets\searchctrl.py:57 msgid "&Match case" msgstr "" #: taskcoachlib\widgets\searchctrl.py:57 msgid "Match case when filtering" msgstr "" #: taskcoachlib\widgets\searchctrl.py:60 msgid "&Include sub items" msgstr "" #: taskcoachlib\widgets\searchctrl.py:61 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib\widgets\searchctrl.py:64 msgid "&Search description too" msgstr "" #: taskcoachlib\widgets\searchctrl.py:65 msgid "Search both subject and description" msgstr "" #: taskcoachlib\widgets\searchctrl.py:126 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib\widgets\searchctrl.py:127 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib\widgets\searchctrl.py:185 msgid "Recent searches" msgstr "" #: taskcoachlib\widgets\searchctrl.py:193 msgid "Viewer not searchable" msgstr "" #: taskcoachlib\widgets\syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib\widgets\syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib\widgets\syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib\widgets\textctrl.py:77 msgid "Error opening URL" msgstr "" #~ msgid "Edit attachment..." #~ msgstr "تعديل المرفق..." #~ msgid "Edit the selected attachments" #~ msgstr "تعديل المرفقات المحددة" #~ msgid "Delete attachment" #~ msgstr "مسح المرفق" #~ msgid "Delete the selected attachments" #~ msgstr "مسح المرفق المحدد" #~ msgid "New category..." #~ msgstr "تصنيف جديد..." #~ msgid "Edit category..." #~ msgstr "تعديل التصنيف..." #~ msgid "Edit the selected categories" #~ msgstr "تعديل التصنيفات المحددة" #~ msgid "Delete category" #~ msgstr "حذف تصنيف" #~ msgid "Delete the selected categories" #~ msgstr "حذف التصنيفات المحددة" #~ msgid "New subcategory..." #~ msgstr "تصنيف فرعي جديد..." #~ msgid "Insert a new subcategory" #~ msgstr "إضافة تصنيف فرعي جديد" #~ msgid "&Edit effort..." #~ msgstr "&تعديل الجهد..." #~ msgid "Edit the selected effort period(s)" #~ msgstr "تعديل فترة الجهد المحددة" #~ msgid "&Delete effort" #~ msgstr "&حذف الجهد" #~ msgid "Delete the selected effort period(s)" #~ msgstr "حذف فترة الجهد المحددة" #~ msgid "New note..." #~ msgstr "ملاحظة جديدة..." #~ msgid "Edit note..." #~ msgstr "تعديل ملاحظة..." #~ msgid "Edit the selected notes" #~ msgstr "تعديل الملاحظة المحددة" #~ msgid "Delete note" #~ msgstr "حذف الملاحظة" #~ msgid "Delete the selected notes" #~ msgstr "حذف الملاحظات المحددة" #~ msgid "New subnote..." #~ msgstr "ملاحظة فرعية جديدة..." #~ msgid "Insert a new subnote" #~ msgstr "إدراج ملاحظة فرعية جديدة" #~ msgid "&Edit task..." #~ msgstr "&تعديل المهمة..." #~ msgid "Delete the selected task(s)" #~ msgstr "حذف المهام المحددة" #~ msgid "Insert a new subtask into the selected task" #~ msgstr "أدرج مهمة فرعية جديدة داخل المهمة المحددة" #~ msgid "&Help contents\tCtrl+H" #~ msgstr "حذف المهمة‎\tCtrl+H" taskcoach-1.4.3/i18n.in/be.po000066400000000000000000007731371265347643000156250ustar00rootroot00000000000000# Copyright (C) 2004-2005 Frank Niessink # Frank Niessink , 2005. # msgid "" msgstr "" "Project-Id-Version: Task Coach\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:30+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: be\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Памылка" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Адбылася памылка. Дэталі глядзіце ў \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Немагчыма загрузіць наладкі з TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "памылка файла %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Рэдагаваць шлях да ўкладаньняў" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Рэдагаваць шлях да ўкладаньня \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Дадаць укладаньне" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Дадаць укладаньне да \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Новае ўкладаньне" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Выдаліць укладаньне" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Выдаліць укладаньне з \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Капіяваць" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Капіяваць \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Выдаліць" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Выдаліць \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Выразаць" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Выразаць \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Уставіць" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Уставіць \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Уставіць як укладзены элемент" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Уставіць як укладзены элемент \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Перацягнуць" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Перацягнуць \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Зьмяніць тэмы" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Зьмяніць тэму \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Рэдагаваць апісаньні" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Рэдагаваць апісаньне \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Зьмяніць значкі" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Зьмяніць значок \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Зьмяніць шрыфты" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Зьмяніць шрыфт \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Змена асноўнага колеру" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Зьмяніць асноўны колер \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Змена колеру фону" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Зьмяніць колер фону \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Пераключыць катэгорыю" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Зьмяніць катэгорыю \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Новая катэгорыя" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Новыя падкатэгорыі" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Новая падкатэгорыя \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Новая падкатэгорыя" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Рэдагаваць узаемавыключальныя падкатэгорыі" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Рэдагаваць узаемавыключальныя падкатэгорыі \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Выдаліць катэгорыі" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Выдаліць катэгорыю \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Перацягнуць катэгорыі" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Новая праца" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Новая праца над \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Выдаліць працу" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Выдаліць працу \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Зьмяніць задачу працы" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Зьмяніць задачу працы \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Зьмяніць дату і час пачатку працы" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Зьмяніць дату і час пачатку працы \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Зьмяніць дату і час канчатка працы" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Зьмяніць дату і час канчатка працы \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Новая нататка" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Новыя паднататкі" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Новая паднататка \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Новая даччыная нататка" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Выдаліць нататкі" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Выдаліць нататку \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Перацягнуць нататкі" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Перацягнуць нататку \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Дадаць нататку" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Дадаць нататку да \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Дадаць паднататку" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Дадаць паднататку для \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Выдаліць нататку" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Выдаліць нататку з \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Перацягнуць задачы" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Выдаліць задачы" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Выдаліць задачу \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Новая задача" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Новыя падзадачы" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Новая падзадача \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Новая падзадача" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Адзначыць задачу як выкананую" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Адзначыць \"%s\" як выкананую" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Адзначыць задачу як актыўную" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Адзначыць \"%s\" як актыўную" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Адзначыць задачу як неактыўную" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Адзначыць \"%s\" як неактыўную" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Пачаць улік працы" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Пачаць улік працы \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Спыніць улік працы" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Спыніць улік працы \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Усталяваць максімальны прыярытэт" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Максімізаваць прыярытэт \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Усталяваць мінімальны прыярытэт" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Мінімізаваць прыярытэт \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Павялічыць прыярытэт" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Павялічыць прыярытэт \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Паменшыць прыярытэт" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Паменшыць прыярытэт \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Зьмяніць прыярытэт" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Зьмяніць прыярытэт \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Дадаць нататку да задачы" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Зьмяніць планавую дату пачатку" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Зьмяніць планавую дату пачатку для \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Зьмяніць тэрмін" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Зьмяніць тэрмін \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Зьмяніць фактычную дату пачатку" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Зьмяніць фактычную дату пачатку \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Зьмяніць дату выканання" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Зьмяніць дату выканання \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Зьмяніць дату/час напамінку" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Зьмяніць дату/час напамінку \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Зьмяніць паўторы" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Зьмяніць паўтор \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Зьмяніць адсотак выкананьня \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Зьмяніць, калі задачы выкананы" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Зьмяніць, калі задача \"%s\" выканана" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Зьмяніць бюджэты" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Зьмяніць бюджэт \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Зьмяніць пагадзінную аплату" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Зьмяніць пагадзінную аплату \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Зьмяніць фіксаваную аплату" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Зьмяніць фіксаваную аплату \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Пераключыць неабходную задачу" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Пераключыць неабходную задачу \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Памылка пры чытаньні наладак %s-%s з файла %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Значэнне: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Памылка: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s будзе выкарыстоўваць значэнне па змаўчанні для параметру і павінна " "працаваць звычайна." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Памылка наладак" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Памылка захавання %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Памылка захавання" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Паведамленьне Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Новае ўкладаньне..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Уставіць новае ўкладаньне" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Адкрыць укладаньне" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Адкрыць выбраныя ўкладаньні" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 хвілін" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Не адкладаць" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 хвілін" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 хвілін" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 хвілін" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 хвілін" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 гадзіны" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 хвілін" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 гадзіна" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 гадзіны" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 гадзіны" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 гадзіны" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 гадзін" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 гадзін" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 гадзін" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 гадзін" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 гадзіны" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 гадзін" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 гадзіны" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 тыдні" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 тыдзень" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Усяго" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Усяго для %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "Новая праца над задачай...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Неактыўныя задачы" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Схаваць неактыўныя задачы" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Неактыўныя задачы: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Састарэлыя задачы" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Схаваць састарэлыя задачы" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Састарэлых задач: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Паказаць/схаваць састарэлыя задачы (неактыўныя задачы з планавым пачаткам у " "мінулым)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Актыўныя задачы" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Актыўныя задачы: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Схаваць актыўныя задачы" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Мінаючыя задачы" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Мінаючых задач: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Схаваць мінаючыя задачы" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Пратэрмінаваныя задачы" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Схаваць пратэрмінаваныя задачы" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Пратэрмінаваных задач: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Выкананыя задачы" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Выкананыя задачы: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Схаваць выкананыя задачы" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Паказаць/схаваць выкананыя задачы" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Новая задача..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Стрэлка ўніз" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Стрэлка ўніз са станам" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Сінія зацыкленыя стрэлкі" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Зялёныя зацыкленыя стрэлкі" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Стрэлка ўгару" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Стрэлка ўгару са станам" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Бомба" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Кніга" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Кнігі" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Простая рамка" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Багоўка" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Пірожнае" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Калькулятар" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Каляндар" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Кошка" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Кампакт-дыск (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Дыяграмы" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Зносіны" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Галачка" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Гадзіннік" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Таймер" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Секундамер" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Зубчастае кола" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Зубчастыя колы" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Настольны кампутар" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Партатыўны кампутар" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Надалоневы кампутар" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Чырвоны крыж" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Ігральная костка" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Дакумент" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Блакітная Зямля" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Зялёная Зямля" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Канверт" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Канверты" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Блакітная папка" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Светла-блакітная папка" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Зялёная папка" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Шэрая папка" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Памяранцавая папка" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Фіялетавая папка" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Чырвоная папка" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Жоўтая папка" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Блакітная папка са стрэлкай" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Сэрца" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Сэрцы" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Зялёная хата" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Чырвоная хата" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Ключ" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Ключы" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Лямпачка" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Знак пытання" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Інфармацыя" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Блакітны дыёд" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Светла-блакітны дыёд" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Шэры дыёд" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Зялёны дыёд" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Светла-зялёны дыёд" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Памяранцавы дыёд" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Фіялетавы дыёд" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Чырвоны дыёд" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Жоўты дыёд" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Жыццёвы цыкл" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Зачынены замок" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Адкрыты замок" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Павелічальнае шкло" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Фартэпіяна" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Нота" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Нататка" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Палітра" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Сашчэпка" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Аловак" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Чалавек" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Удзельнікі" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Ідэнтыфікатар" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Гаворачы чалавек" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Папераджальны знак" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Мінус" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Плюс" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Чырвоная зорачка" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Жоўтая зорачка" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Святлафор" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Кошык" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Маланка" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Парасон" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Часткова сонечна" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Гаечны ключ" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Без значка" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Закрыць" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Апісанне" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Рэдагаваць, каб зьмяніць усе тэмы" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Тэма" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Зьмяніць, каб зьмяніць усе апісаньні" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Прыярытэт" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Узаемавыключальныя" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Падкатэгорыі" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Рэдагаваць для змены размяшчэньня ўсіх укладаньняў" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Абраць" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Размяшчэньне" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Афармленьне" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Асноўны колер" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Колер фону" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Шрыфт" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Значок" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Даты" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Планавы пачатак прац" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Тэрмін" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Фактычная дата пачатку" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Дата выканання" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Напамінак" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Паўтор" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Прагрэс" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Падлік працэнтаў выкананы" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Выкарыстоўваць глабальныя ўсталёўкі" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Не" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Так" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Адзначыць задачу як выкананую пры выкананьні ўсіх падзадач?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Бюджэт" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Выдаткаваны час" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Рэштка бюджэту" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Пагадзінная аплата" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Фіксаваная аплата" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Прыбытак" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Праца над задачай" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Катэгорыі" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Укладаньні" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Нататкі" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Неабходныя" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Рэдагаваць задачу" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Задача" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Пачаць" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Тыдзень (Тыдні)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Дзень (Дзён)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Спыніць" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Пачаць улік працы з часу апошняга прыпынку" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Спыніць улік працы зараз" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Увага: пачатак павінен быць раней завяршэння" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Некалькі задач" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (задача)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Некалькі катэгорый" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (катэгорыя)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Некалькі нататак" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (нататка)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Некалькі ўкладаньняў" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (укладаньне)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Некалькі прац" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (праца над задачай)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Выкарыстоўваць шрыфт:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Выкарыстоўваць колер:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Адсутнічае" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Штодня" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Штомесяц" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Штотыдзень" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Штогод" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "прытрымлівацца дат таго ж тыдня" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", кожныя" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Спыніць пасля" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "паўторы" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Планаваць паўторы, засноўваючыся на" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "дзён," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "перыяд," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "тыдняў," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "месяц(ы)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "гадоў," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Экспартаваць элементы з:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Экспартаваць толькі абраныя пазіцыі" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Слупкі для экспарту:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Усталюйце дату і час задачы - кожную ў сваіх слупках" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Запісаць інфармацыю пра стыль у асобны CSS файл" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Калі для экспартуемага файла існуе CSS-файл, то %(name)s яго не перазапіша. " "Гэта дазваляе Вам змяняць інфармацыю стыляў без страты яе пры наступным " "экспарце." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Экспартаваць у CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Экспартаваць у iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Экспартаваць у HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Экспарт у Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Прылада iPhone ці iPod спрабуе сінхранізавацца з файлам задач у першы раз. " "Які тып сінхранізацыі выкарыстоўваць?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Абнавіць з працоўнага стала" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Абнавіць з прылады" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Адмена" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "У вас уключана опцыя сінхранізацыі з iPhone, якая\n" "патрабуе Bonjour. Bonjour, здаецца, не ўсталяваны ў\n" "вашай сістэме." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Калі ласка, загрузіце і ўсталюеце Bonjour для Windows з\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "сайта Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Падтрымка Bonjour для Linux звычайна падаецца \n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Вы можаце знайсці падрабязнасці для свайго дыстрыбутыва тут" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Заўважце, што ў некаторых сістэмах (Fedora), вам прыйдзецца ўсталяваць пакет " "Avahi-Compat libdns_sd, а таксама Avahi для таго, каб гэта працавала." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Дадаткова, калі ў Вас усталяваны брандмаўар, праверце, што порты 4096 - 4100 " "адкрыты." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "ОК" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Файлы" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Аўтазахаванне пасля кожнай змены" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Захаваць налады (%s.ini) у тым жа\n" "каталогу, дзе і праграма" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Для запуску %s з пераносных прылад" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Базавы каталог укладаньняў" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Пры даданні ўкладаньня пастарайцеся, каб\n" "яго шлях быў адносны да паказанага." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Перад захаваннем, аўтаматычна імпартаваць з" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Фармат Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Перад захаваннем %s аўтаматычна імпартуе задачы\n" "з файла фармату Todo.txt з тым жа імем, што і файл задач,\n" "але з пашырэннем .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Пасля захавання, аўтаматычна экспартаваць у" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Пры захаванні %s аўтаматычна экспартуе задачы\n" "у файл Todo.txt з тым жа імем, што і файл задач,\n" "але з пашырэннем .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Паводзіны акна" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Паказваць застаўку пры запуску" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Паказваць акно падказак пры запуску" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Запускаць згорнутым у вобласць апавяшчэньняў" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Заўсёды" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Ніколі" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Калі апошняя сесія была згорнутая ў вобласць апавяшчэньняў" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Пры старце правяраць новую версію %(name)s" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Хаваць галоўнае акно пры згортваньні ў вобласць апавяшчэньняў" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Згортваць галоўнае акно пры зачыненьні" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Адлюстроўваць ход часу на панэлі задач пры ўключаным уліку працы над задачай" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Мова" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Хай сістэма вызначыць мову" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Мова не знойдзена?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Выгляд задач" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Асаблівасьці" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Уключыць SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Уключыць сінхранізацыю з iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Выкарыстоўваць кіраванне сесіямі X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Пачатак працоўнага тыдня" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Панядзелак" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Нядзеля" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Час пачатку працоўнага дня" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Час заканчэння працоўнага дня" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Канец дня" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Выкарыстоўваць градыент пры паказе календара.\n" "Гэта можа замарудзіць Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Пры навядзенні на элемент паказваць падказку\n" "з яго апісаньнем" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Даты задачы" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Адзначаць задачы як выкананыя пры выкананьні ўсіх падзадач" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Астатні лік гадзін, які пераводзіць задачы ў 'мінаючыя'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Нічога" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Змена планавай даты пачатку зменіць дату тэрміна" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Змена даты тэрміна зменіць планавую дату пачатку" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Дзеянні для планавай даты пачатку і даты тэрміна, калі адна з іх зменіцца" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Прадусталёўка" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Прапанаваць" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Сёння" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Заўтра" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Паслязаўтра" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Наступная пятніца" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Наступны панядзелак" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Пачатак дня" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Пачатак працоўнага дня" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Бягучы час" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Канец працоўнага дня" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Дата і час па змаўчаньні для планавай даты пачатку" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Дата і час тэрміна па змаўчаньні" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Дата і час па змаўчаньні для фактычнай даты пачатку" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Дата і час завяршэння па змаўчаньні" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Дата і час напамінку па змаўчаньні" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Напамінкі задачы" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Сістэма апавяшчэньняў для выкарыстаньня напамінкаў" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Напамінак прамаўляе кампутар" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Патрабуецца espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Час адтэрміноўкі па змаўчаньні для выкарыстаньня пасля напамінку" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Час сну, прапануемы ў дыялогу напамінку пра задачу" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Пароль для сінхранізацыі з iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Назва службы Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Выгрузка задач на прыладу выканана" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Паказаць часопіс сінхранізацыі" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Рэдактар" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Правяраць арфаграфію" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "напамінак %(name)s - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Дата/час напамінку" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Адкласці" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Адзначыць задачу як выкананую" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML сервер" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Наладжваемае" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "Спасылка сервера SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Імя карыстача/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Уключыць сінхранізацыю задач" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Імя базы дадзеных задач" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Пераважны рэжым сінхранізацыі" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Двунакіраваны" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Павольна" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Аднабакова з кліента" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Абнаўленне з кліента" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Аднабакова з сервера" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Абнаўленне з сервера" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Уключыць сінхранізацыю нататак" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Імя базы дадзеных нататак" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Доступ" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Шаблон новай задачы" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Апавяшчаць мяне пра новыя версіі" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Даступная новая версія %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Вы выкарыстоўваеце %(name)s версіі %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Даступная версія %(version)s %(name)s" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s апошняй версіі" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "Апошняя версія %(name)s - %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Немагчыма знайсці апошнюю версію" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Не магу знайсці апошнюю версію %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Прадрэлізная версія" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Вы выкарыстоўваеце %(name)s прадрэлізнай версіі %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Апошняя выпушчаная версія %(name)s - %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Увага" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach мае вядомыя праблемы з кіраваньнем сесіямі XFCE4.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Калі пры запуску Вы назіраеце выпадковыя замаруджванні, адключыце\n" "\"Выкарыстоўваць кіраваньне сесіямі X11\" на ўкладцы налад Асаблівасьці.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Не паказваць гэты дыялог пры запуску" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Бяздзейнасць карыстача з %s. Наступная задача была\n" "пад назіраннем:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Нічога не рабіць" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Спыніць у %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Спыніць у %s і працягнуць цяпер" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Апавяшчэньне" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s файлы (*.tsk)|*.tsk|Усе файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Файлы %s (*.tsk)|*.tsk|Рэзервовыя копіі (*.tsk.bak)|*.tsk.bak|Усе файлы " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Файлы iCalendar (*.ics)|*.ics|Усе файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Файлы HTML (*.html)|*.html|Усе файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Файлы CSV (*.csv)|*.csv|Тэкставыя файлы (*.txt)|*.txt|Усе файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Файлы Todo.txt (*.txt)|*.txt|Усе файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Адкрыць" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Загружана %(nrtasks)d задач з файла %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Файл %s не знойдзены" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Аб'яднаць з файлам" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Немагчыма адкрыць %(filename)s\n" "бо ён заблакаваны." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Дададзены файл %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Захаваць як" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Захаваць вылучэньне" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Немагчыма захаваць %s\n" "Ён заблакаваны іншай копіяй %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Немагчыма захаваць %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Імпартаваць шаблон" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "Файлы шаблонаў %s (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Не атрымалася імпартаваць шаблон %s\n" " %s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Экспартавана %(count)d запісаў у %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Завершана сінхранізацыя" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Статус сінхранізацыі" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Немагчыма адкрыць %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Файл %s ужо існуе.\n" "Вы ўпэўнены, што жадаеце яго замяніць?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Не ўсе змены захаваны.\n" "Захаваць змены перад зачыненьнем?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: Захаваць змены?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Немагчыма адкрыць %s таму што ён заблакаваны.\n" "\n" "Гэта азначае што іншы экзэмпляр праграмы TaskCoach\n" "запушчаны і трымае гэты файл адкрытым, ці што \n" "раней запушчаны экзэмпляр Task Coach аварыйна \n" "завяршыўся. Калі няма іншых запушчаных экзэмпляраў \n" "вы можаце бяспечна зняць блакаванне.\n" "\n" "Зняць блакаванне?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: файл заблакаваны" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Нельга атрымаць блакаванне, паколькі яно не падтрымліваецца\n" "у месцы размяшчэння %s.\n" "Адкрыць %s незаблакаваным?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Зачынены %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Захавана %(nrtasks)d задач у файл %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Немагчыма адкрыць %(filename)s\n" "бо ён створаны новай версіяй %(name)s.\n" "Калі ласка, абнавіце %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Памылка чытаньня %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Сінхранізацыя..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Сінхранізацыя з %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Сардэчна запрашаем у %(name)s (версія %(version)s)" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Не атрымалася аднавіць шаблон з TaskCoach.ini:\n" "%s\n" "\n" "Будзе скарыстаны бягучы шаблон.\n" "\n" "Калі дадзеная памылка паўторыцца, калі ласка, зрабіце копію Вашага файла " "TaskCoach.ini перад завяршэннем працы ў праграме, адкрыйце журнал памылак, " "і прыкладзяце адкапіяваны TaskCoach.ini да журналу." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s выклікала памылку" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Тып сінхранізацыі" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "iPhone ці iPod Touch спрабаваў сінхранізавацца з гэтым\n" "файлам задач, але пратакол узгадніць не атрымалася. Калі ласка,\n" "паведаміце пра памылку." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Файл" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "П&раўка" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Выгляд" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Стварыць" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Дзеянні" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Дапамога" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Імпарт" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Экспарт" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Вылучэньне" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Дадаць акно" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "Перайсці да &наступнага акна\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Перайсці да &папярэдняга акна\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Фільтр" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Сартаваньне" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Калонкі" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Акругленьне" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Параметры дрэ&ва" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Па&нэль прылад" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Паказаць/схаваць радок статусу" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Ра&док статусу" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Задача" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Адкрыць новую ўкладку, якая адлюстроўвае задачы" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Статыстыка задач" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Адкрыць новую ўкладку прагляду статыстыкі гэтай задачы" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Квадратная карта задач" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Адкрыць новую ўкладку, якая адлюстроўвае задачы на квадратнай карце" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Шкала часу" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "Адкрыць новую ўкладку, якая адлюстроўвае шкалу часу задач і працы" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "Каляндар" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Адкрыць новую ўкладку, у якой задачы паказваюцца ў календары" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Катэгорыя" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Адкрыць новую ўкладку з адлюстраваннем катэгорый" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Праца над задачай" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Адкрыць новую ўкладку, якая адлюстроўвае працу над задачамі" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Адкрыць новую ўкладку, якая адлюстроўвае працу над выбранай задачай" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Нататка" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Адкрыць новую ўкладку з нататкамі" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Схаваць" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Схаваць панэль прылад" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Дробныя значкі" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Дробныя значкі (16x16) на панэлі прылад" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Сяр&эднія значкі" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Сярэднія значкі (22x22) на панэлі прылад" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Буйныя значкі" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Буйныя значкі (32x32) на панэлі прылад" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Новая задача па шаблоне" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Пераключыць катэгорыю" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Змяніць задачу і прыярытэт" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "П&ачать улік працы" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (падкатэгорыі)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (падзадачы)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Прыярытэт" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Старонка" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s напамінак" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d пратэрмінаваных задач" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "адна пратэрмінаваная задача" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "Тэрмін выканання задач %d хутка мінае" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "адна задача хутка мінае" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "улік працы \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "улік працы над %d задачамі" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Адкрыць...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Адкрыць %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "А&б'яднаць з файлам..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Аб'яднаць задачы з іншага файла з бягучым файлам" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Закрыць\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Захаваць\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Захаваць &як...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Захаваць вылучаную задачу як &шаблон" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Захаваць вылучаную задачу як шаблон задачы" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Імпартаваць шаблон..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Імпарт шаблону з файла" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Рэдагаваць шаблоны..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Рэдагаваць існыя шаблоны" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Рэдагаваць шаблоны" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "Ачысціць выдаленыя элементы" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Насамрэч выдаліць выдаленыя задачы і нататкі (гл. частку SyncML у дапамогі)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Ачыстку выдаленых элементаў немагчыма адмяніць.\n" "Калі вы плануеце актываваць функцыю SyncML паўторна\n" "з тым жа серверам, які вы выкарыстоўвалі ў апошні раз,\n" "гэтыя элементы, хутчэй за ўсё, вернуцца ў ранейшы стан.\n" "\n" "Вы ўсё яшчэ жадаеце ачысціць?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Параметры старонкі...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "Папя&рэдні прагляд друку..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Паказаць акно папярэдняга прагляду дакумента для друку" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Папярэдні прагляд" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "Друк...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Экспарт у фармат &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Экспартаваць пазіцыі з праглядніка ў HTML фармат" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Экспарт у фармат &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Экспартаваць пазіцыі ў CSV фармат" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Экспартаваць як &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Экспартаваць пазіцыі ў iCalendar фармат" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Экспарт у &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "Экспарт элементаў з акна ў фармат Todo.txt (гл. todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Імпартаваць CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Імпартаваць задачы з файла са значэннямі, падзеленымі коскамі (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Імпартаваць CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Выбраны файл пусты. Калі ласка, выберыце іншы файл" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Імпарт Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Імпарт задач з файла Todo.txt (гл. todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Імпарт Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "С&інхранізаваць праз SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Сінхранізаваць з серверам SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Вы&хад\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "Ад&мяніць" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Паўта&рыць" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Выра&зать\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Капіяваць\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "Ус&тавіць\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "&Уставіць як падэлемент\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "Наладкі...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Наладкі" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Наладкі SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Рэдагаваць наладкі SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Наладкі SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Усё\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "З&няць вылучэньне" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Адмяніць вылучэньне ўсіх элементаў" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Выдаліць усе фільтры\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Скінуць усе катэгорыі\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Паказаць/схаваць элементы, якія адносяцца да %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Пераназваць акно..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Пераназваць выбранае акно" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Новы загаловак акна:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Пераназваць акно" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "С&хаваць гэту калонку" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Схаваць выбранаю калонку" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Раз&гарнуць усе элементы\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Згарнуць усе элементы\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "Па &узрастаньні" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Сартаваньне па ўзрастаньні (адзначана) ці змяншэньні (не адзначана)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "&Чуллівасць да рэгістру" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Сартаваць задачы па найменню з улікам (адзначана) ці без уліку рэгістра (не " "адзначана)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Сартаваць спачатку па стат&усу" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" "Сартаваць задачы спачатку па статусу (актыўная, неактыўная, выканана)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Схаваць складовыя задачы" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Паказаць/схаваць задачы з падзадачамі ў рэжыме спісу" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Рэдагаваць...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Рэдагаваць вылучаныя пазіцыі" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Рэдагаваць &улічваемае заданне...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Рэдагаваць бягучае ўлічваемае(ыя) заданне(і)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Выдаліць\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Выдаліць выбраныя пазіцыі" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Стварыць новую задачу па шаблоне" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Новая задача з выбранымі &катэгорыямі..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Дадаць новую задачу ў выбраных катэгорыях" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Новая задача з выбранымі задачамі як &неабходнымі..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Уставіць новую задачу з выбранымі задачамі як неабходнымі задачамі" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Уставіць новую задачу з выбранымі задачамі як залежнымі задачамі" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Новы падэлемент..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Новая &падзадача..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Новая паднататка..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Новая &падкатэгорыя..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Уставіць новы даччыны элемент" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Задача &актыўная\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Адзначыць абраныя задачы як актыўныя" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Задача &неактыўная\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Адзначыць абраныя задачы як неактыўныя" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Задача &выканана\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Адзначыць абраныя задачы як выкананыя" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Максімізаваць прыярытэт\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "Мінімізаваць прыярытэт\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "Павялічыць прыярытэт\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Паменшыць прыярытэт\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Пераключыць %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Адправіць па пошце...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Пошта...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Некалькі рэчаў" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "і" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Немагчыма адправіць e-mail:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s паштовая памылка" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Дадаць &нататку...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Адкрыць усе нататкі...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Пачаць улік працы\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Пачаць улік працы па задачы(ам) абранай працы" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Без тэмы)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Пачаць улік працы для %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Абраць задачу праз меню і пачаць улік працы па ёй" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Спыніць ці працягнуць улік працы\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Спы&ніць улік працы %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Спыніць улік працы над актыўнымі задачамі" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Працягнуць улік працы %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Працягнуць улік працы па апошняй улічанай задачы" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "некалькі задач" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Стварыць катэгорыю...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Стварыць нататку...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Новая &нататка для выбраных катэгорый..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Дадаць новую нататку да выбраных катэгорый" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Дадаць укладаньне...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Памылка адкрыцця ўкладаньня" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "Адкрыць усе ўкладаньні...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Змест\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Змест\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Даведка" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Падказкі" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Карысныя парады па выкарыстанні праграмы" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Ананімізаваць" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Ананімізаваць файл задач для далучэньня яго да паведамленьня пра памылку" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Ваш файл задач быў ананімізаваны і захаваны ў:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Завершана" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Пра праграму %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Версія %s і кантактная інфармацыя" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Пра праграму %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Ліцэнзія" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Ліцэнзія %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Праверыць абнаўленьні" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Праверыць даступнасць новай версіі %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Не магу адкрыць спасылку:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s спасылка з памылкай" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Часта задаваныя пытаньні" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Прагледзець часта задаваныя пытаньні" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Паведаміць пра па&мылку..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Паведаміць пра памылку ці прагледзець спіс вядомых памылак" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Запытаць новую функцыю..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" "Запытаць новую функцыю ў распрацоўнікаў ці прагаласаваць за ўжо наяўныя " "запыты" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Запытаць &падтрымку..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Запытаць карыстацкую падтрымку ў распрацоўнікаў" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Дапамагчы палепшыць &пераклад..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Дапамагчы палепшыць пераклад %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Ахвяраваць..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Ахвяраваць сродкі на распрацоўку %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Аднавіць" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Аднавіць акно да папярэдняга стану" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Падрабязнасці працы над задачай" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Працы над задачай за дзень" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Працы над задачай за месяц" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Працы над задачай за тыдзень" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Адфільтраваць усе адзначаныя катэгорыі" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Адфільтраваць любую адзначаную катэгорыю" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "На&ладзіць" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Наладзіць аглядальнік календара" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "Наступны перыяд" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Паказаць наступны перыяд" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Папярэдні перыяд" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Паказаць папярэдні перыяд" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "Сё&ння" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Паказаць сёння" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Аўтаматычны памер слупкоў" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Калі абрана, аўтаматычна змяняць шырыню слупкоў для запаўнення даступнага " "месца" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Не акругляць" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 хвіліна" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d хвілін(ы)" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Заўсёды акругляць да большага" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Заўсёды акругляць да большага значэння" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Тып" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Сартаваць па тэме" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Прадм&ет" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Сартаваць па апісаньні" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Апісаньне" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Паказаць/схаваць слупок апісаньняў" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Нататкі" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Паказаць/Схаваць слупок нататак" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "У&кладанні" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Паказаць/Схаваць калонку ўкладанняў" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Катэгорыі: %d абрана, %d усяго" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Статус: %d адабрана" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Перыяд" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Усяго выдаткавана" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Агульны прыбытак" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Аўторак" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Серада" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Чацвер" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Пятніца" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Субота" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Катэгорыі" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Паказаць/схаваць слупок катэгорый" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Выдаткавана" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Паказаць/схаваць слупок выдаткаванага часу" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Прыбытак" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Паказаць/схаваць слупок прыбытку" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Усяго выдаткавана часу" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Паказаць/схаваць слупок агульнага выдаткаванага часу" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Агульны прыбытак" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Паказаць/схаваць слупок сумарнага прыбытку" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Працы над задачай за будны дзень" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Паказаць/схаваць слупкі часу, выдаткаванага за будны дзень" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Статус: улік - %d" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Сартаваць катэгорыі па тэме" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Сартаваць катэгорыі па апісаньні" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Сартаваць укладаньні па тэме" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Сартаваць укладаньні па апісаньні" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Сартаваць укладаньні па катэгорыі" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Сартаваць нататкі па тэме" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Сартаваць нататкі па апісаньні" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Сартаваць нататкі па катэгорыі" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Сартаваньне задач па прадмеце" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Сартаваць задачы па апісаньні" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Сартаваць задачы па катэгорыях" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Сартаваць задачы па планавай даце пачатку" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Планавая дата пачатку" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Сартаваньне задач па тэрміне" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Тэ&рмін" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Сартаваньне задач па даце выкананьня" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Дата в&ыкананьня" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Сартаваць задачы па неабходных задачах" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Неабходныя" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Сартаваць задачы па залежных задачах" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Сартаваць задачы па астатняму часу" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Астатні час" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Сартаваць задачы па працэнту выкананьня" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Працэнт выкананьня" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Сартаваць задачы па паўторы" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Паўтор" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Сартаваньне задач па бюджэце" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Бюджэт" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Сартаваньне задач па выдаткаваным часе" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Рэштка бюд&жэта" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Сартаваньне задач па рэштцы бюджэту" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Сартаваньне задач па прыярытэце" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Сартаваньне задач па пагадзіннай аплаце" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Па&гадзінная аплата" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Сартаваньне задач па фіксаванай аплаце" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Фіксаваная аплата" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Сартаваньне задач па прыбытку" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Сартаваць задачы па даце і часу напамінку" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Напамінак" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Тэма" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Сартаваць нататкі па катэгорыях" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Нататак: %d вылучана, %d усяго" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Стан: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Задачы: %d абрана, %d адлюстравана, %d усяго" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Статус: %d пратэрмінавана, %d састарэла, %d неактыўна, %d выканана" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Задачы" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Шкала часу" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Зараз" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Квадратная карта задач" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Наладка аглядальніка календара" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% выканана" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Астатні час" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "Даты" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Усе слупкі з датамі" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Паказаць/схаваць усе слупкі, злучаныя з датамі" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Паказаць/схаваць планавую дату пачатку" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Паказаць/схаваць слупок тэрміна" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Фактычная дата пачатку" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Паказаць/схаваць слупок з фактычнай датай пачатку" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Паказаць/схаваць слупок даты выканання" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Паказаць/схаваць слупок астатняга часу" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Паказаць/схаваць слупок паўтораў" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Усе слупкі з бюджэтам" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Паказаць/схаваць усе слупкі, злучаныя з бюджэтам" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Паказаць/схаваць слупок бюджэту" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Засталося бюджэту" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Паказаць/схаваць слупок рэшткі бюджэту" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Фінансавыя" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Усе слупкі з фінансамі" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Паказаць/схаваць усе слупкі, злучаныя з фінансамі" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Паказаць/схаваць слупок пагадзіннай аплаты" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Паказаць/схаваць слупок фіксаванай аплаты" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Паказаць/схаваць слупок неабходных задач" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Паказваць слупок \"працэнт выкананьня\"" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Паказаць/схаваць слупок ўкладаньняў" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Паказаць/схаваць слупок прыярытэту" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Паказаць/Схаваць слупок напамінку" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Статыстыка задач" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Коска (,)" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Табуляцыя" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Прабел" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Двукроп'е (:)" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Кропка з коскай (;)" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Канал" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "ДД/ММ (спачатку дзень)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "ММ/ДД (спачатку месяц)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Адзінарнае двукоссе" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Падвойнае двукоссе" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Падвоіць" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Вылучэнне з" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Імпартаваць толькі вылучаныя радкі" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Першы радок апісвае палі" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Падзельнік" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Фармат даты" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Знак двукоссяў" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Вылучэнне двукосся" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Поле #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Калі ласка, абярыце файл." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Катэгорыя" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Дата напамінку" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Працэнт выканання" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Загаловак калонкі ў CSV файле" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "атрыбут %s" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Няма адпаведнасці палёў." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Поле \"%s\" не можа быць выбрана некалькі разоў." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Палі \"%s\" не могуць быць выбраны некалькі разоў." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Змест" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Пра задачы" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Уласцівасці задачы" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Стан задачы" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Колеры задачы" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Напамінкі" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Пра працу над задачай" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Уласцівасці працы над задачай" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Пра катэгорыі" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Уласцівасці катэгорыі" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Пра нататкі" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Уласцівасці нататкі" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Друк і экспарт" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Пра друк і экспарт" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Друк" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Экспартаваньне" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Інтэграцыя з электроннай поштай" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Пра інтэграцыю з эл.поштай" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Прыкласці эл.паведамленьне да задачы" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Стварыць задачу з эл.паведамленьня" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Падтрымка SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Што такое SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Наладкі" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Абмежаваньні" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Ліквідацыя непаладак" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Ачыстка выдаленых элементаў" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone і IPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s на iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Канфігурацыя" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s пад Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt і Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Імпартаваньне todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Экспартаваньне todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Шаблоны задач" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Пра шаблоны" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Выкарыстанне шаблонаў" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Графічны карыстацкі інтэрфейс" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Спалучэньні клавіш" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Задачы - гэта асноўныя аб'екты, якімі Вы маніпулюеце. Задачы могуць уяўляць " "\n" "што заўгодна, ад якога-небудзь малаважнага даручэння, якое Вы павінны " "выканаць, \n" "да цэлага праекта, які складаецца з розных фаз і шматлікіх мерапрыемстваў." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Задачы маюць наступныя ўласцівасці, якія вы можаце змяніць:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Тэма: адзін радок, якая апісвае задачу." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Апісаньне: некалькі радкоў апісаньня задачы." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Планавая дата пачатку: першая дата, калі задача можа быць пачата. \n" "Планавая дата пачатку па змаўчаньні супадае з датай стварэньня задачы. " "Дапушчаецца значэньне 'Не', \n" "якое кажа пра тое, што насамрэч вы пакуль не жадаеце пачынаць задачу. Гэта " "можа быць зручна, \n" "напрыклад, для рэгістрацыі дзён на бальнічным." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Тэрмін: дата, да якой задача павінна быць выканана. \n" "Яна можа быць не зададзена, што кажа пра тое, \n" "што задача не мае фіксаванага тэрміна." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Фактычная дата пачатку: калі задача была пачата фактычна.\n" "Гэта дата можа быць адрэдагавана напрамую, але таксама яна ўсталёўваецца, " "калі вы \n" "ведзяце ўлік працы ці калі ўсталёўваеце працэнт выкананьня задачы\n" "паміж 0% і 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Дата выкананьня: калі гэта дата не зададзена значыць задача не выканана. \n" "Калі вы адзначаеце задачу выкананай, усталёўваецца бягучая дата.\n" "Дата выкананьня таксама можа быць уведзена ўручную." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Неабходныя: іншыя задачы, якія неабходна выканаць перад тым, як \n" "задача можа быць пачата. Задача застаецца неактыўнай датуль, пакуль апошняя " "неабходная задача \n" "не будзе выканана. Звярніце ўвагу, калі для задачы вызначана планавая дата " "пачатку, то \n" "яна павінна быць у мінулым і усе неабходныя задачы павінны быць " "выкананы\n" "да яе, у адваротным выпадку задача стане састарэлай." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Бюджэт: колькасць гадзін даступных для задачы." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Пагадзінная аплата: колькасць грошай, заробленых з задачай у гадзіну." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Фіксаваная аплата: колькасць грошай, заробленых з задачай, незалежна ад " "выдаткаванага часу." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "Наступныя ўласцівасці разлічваюцца па ўласцівасцях, размешчаным вышэй:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Дзён засталося: колькасць дзён, застаўшыхся да сканчэння тэрміна." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Выдаткаваны час: час, выдаткаваны на задачу." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Рэштка бюджэту: бюджэт задачы мінус час, выдаткаваны на задачу." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" "Прыбыткі: пагадзінная аплата выдаткаваных гадзін плюс фіксаваная аплата." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Задачы заўсёды павінны быць у адным з наступных станаў:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Актыўная: фактычная дата пачатку ў мінулым;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Неактыўная: задача не была пачата і/ці не ўсе\n" "неабходныя задачы былі выкананы;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Выканана: задача была выканана." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Акрамя таго, задачы могуць спасылацца на:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Пратэрмінавана: дата тэрміна ў мінулым;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Мінае: хутка мінае тэрмін выкананьня (наколькі 'хутка', \n" "усталёўваецца ў наладах);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "Састарэлая: планавая дата пачатку ў мінулым і задача не была пачата;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Бюджэт вычарпаны: бюджэту не засталося;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "У рамках бюджэту: яшчэ бюджэт застаўся;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Няма бюджэту: задача не мае бюджэту." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Тэкст задачы афарбаваны ў адпаведнасці з наступнымі правіламі:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Пратэрмінаваныя задачы вылучаны чырвоным;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Задачы з мінаючым тэрмінам вылучаны памяранцавым;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Актыўныя задачы - чорны тэкст з блакітным значком;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Састарэлыя задачы адлюстроўваюцца фіялетавым;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Будучыя задачы шэрыя, і" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Выкананыя задачы зялёныя." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Усё гэта, вядома, мяркуе, што вы не змянілі колер тэксту праз дыялог налад." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Колер фону задач вызначаецца катэгорыямі, да якіх \n" "яны прыналежаць. Гл. частку о \n" "уласцівасцях катэгорыі ніжэй." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Вы можаце ўсталяваць напамінак на вызначаную дату і час. %(name)s\n" "выведзе паведамленьне напамінку ў абраныя дату і час. З дыялогу напамінку\n" "вы можаце адкрыць задачу, пачаць улік працы ці адзначыць задачу\n" "як выкананую. Гэтак жа магчыма пераназначыць напамінак на іншыя дату і час." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Калі ў Вас усталяваны Growl ці Snarl, вы можаце даць указаньні\n" "%(name)s выкарыстоўваць іх для напамінку ў дыялогу налад." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Кожны раз, калі вы марнуеце час на задачы, вы можаце запісваць колькасць \n" "выдаткаванага часу, адсочваючы працу. Абярыце задачу і выклічце 'Пачаць улік " "працы' \n" "у меню 'Праца', выпадальным меню ці з дапамогай кнопкі панэлі прылад \n" "'Пачаць улік працы'." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Запісы пра працу маюць наступныя змяняльныя ўласцівасці:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Задача: задача, якой прыналежыць праца." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Дата/час пачатку: дата і час пачатку працы над задачай." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Дата/час канца: дата і час канца працы над задачай. Яна \n" "можа быць не зададзена датуль пакуль вы працуеце над задачай." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Апісаньне: некалькі радкоў апісаньня працы над задачай." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Выдаткаваны час: колькі часу ў Вас сышло на выкананне задачы." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Прыбытак: грошы, заробленыя за выдаткаваны час." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Задачы і нататкі могуць прыналежаць да адной ці некалькім катэгорыям. Па-" "першае, неабходна стварыць \n" "катэгорыю, якую вы жадаеце выкарыстоўваць з дапамогай меню \"Катэгорыя\". " "Затым, вы можаце дадаваць \n" "элементы ў адну ці некалькі катэгорый шляхам рэдагавання элемента і праверкі " "адпаведных \n" "катэгорый для гэтага элемента ва ўкладцы катэгорый дыялогу рэдагавання." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Вы можаце абмежаваць элементы, якія адлюстроўваюцца ў вокнах задач і нататак " "па адной ці \n" "некалькім катэгорыям, пазначаючы катэгорыі ў акне катэгорый. Напрыклад, калі " "ў вас ёсць \n" "катэгорыя \"тэлефонныя званкі\", і вы пазначыце дадзеную катэгорыю, то ў " "акне задач будуць \n" "паказаны толькі задачы, якія належаць да гэтай катэгорыі; іншымі словамі: \n" "тэлефонныя званкі, якія трэба зрабіць." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Катэгорыі маюць наступныя ўласцівасці, якія вы можаце змяніць:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Тэма: радок, якая абагульняе катэгорыі." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Апісаньне: некалькі радкоў апісаньня катэгорыі." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Узаемавыключальныя падкатэгорыі: сцяжок, паказвае падкатэгорыі \n" "катэгорыі, якія з'яўляюцца ўзаемавыключальнымі. Калі такія ёсць, элементы \n" "могуць прыналежаць толькі адной з падкатэгорый. Пры фільтраваньні, \n" "Вы можаце фільтраваць толькі па адной з падкатэгорый адначасова." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Уласцівасці вонкавага выгляду, такія як значок, шрыфт і колеры:\n" "Уласцівасці вонкавага выгляду выкарыстоўваюцца для адлюстравання катэгорыі, " "але таксама і \n" "элементаў, якія прыналежаць да гэтай катэгорыі. Калі катэгорыя не мае " "ўласных \n" "колеры, шрыфта ці значка, але мае бацькоўскую катэгорыю з такімі " "ўласцівасцямі, \n" "то будуць выкарыстоўвацца бацькоўскія ўласцівасці. Калі элемент прыналежыць " "да некалькіх \n" "катэгорый, кожная з якіх мае колер, злучаны з ёй, то сумесь гэтых колераў " "будзе \n" "выкарыстоўвацца для адлюстравання гэтага элемента." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Нататкі могуць быць скарыстаны для захопу выпадковай інфармацыі, якую \n" "вы жадаеце захаваць у файл задач. Нататкі могуць быць асобнымі ці з'яўляцца " "\n" "часткай іншых элементаў, такіх як задачы і катэгорыі. Асобныя нататкі \n" "адлюстроўваюцца ў акне прагляду нататак. Нататкі, якія з'яўляюцца часткай \n" "іншых элементаў, не адлюстроўваюцца ў акне прагляду нататак." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Нататкі маюць наступныя ўласцівасці, якія вы можаце змяніць:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Тэма: радок, якая абагульняе нататку." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Апісаньне: некалькі радкоў апісаньня нататкі." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Уласцівасці вонкавага выгляду, такія як значок, шрыфт і колеры." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Друк і экспарт працуюць падобным вобразам: пры друку ці экспарце дадзеных, \n" "раздрукоўваюцца ці экспартуюцца дадзеныя з актыўнага акна. Акрамя таго, \n" "дадзеныя раздрукоўваюцца ці экспартуюцца ў тым жа выглядзе, у якім " "адлюстроўваюцца \n" "у акне. Дадзеныя раздрукоўваюцца ці экспартуюцца ў тым жа парадку, у якім " "адлюстроўваюцца. \n" "Слупкі, якія з'яўляюцца бачнымі, вызначаюць, якія дэталі раздрукаваць ці \n" "экспартаваць. Калі Вы фільтруеце элементы, напрыклад, схаваўшы выкананыя " "задачы, \n" "гэтыя элементы не будуць раздрукаваны ці экспартаваны." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Падрыхтуйце ўтрыманні акна, мясцуючы элементы ў правільным парадку, \n" "пакажыце ці схавайце неабходныя слупкі і ўжывайце адпаведныя \n" "фільтры." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Вы можаце папярэдне прагледзець, як будзе выглядаць друк \n" "выкарыстоўваючы элемент меню Файл -> Папярэдні прагляд. Вы можаце \n" "рэдагаваць наладкі старонкі з дапамогай Файл -> Параметры старонкі. \n" "Пры друку і калі платформа падтрымлівае гэта, вы можаце задаць друк \n" "усіх бачных элементаў у актыўным акне, ці толькі абраныя элементы." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Далей, абраць фармат, у які вы жадаеце экспартаваць і, ці жадаеце вы \n" "экспартаваць усе бачныя элементы ці толькі абраныя. Даступныя фарматы \n" "для экспарту ўключаюць CSV (падзяляны коскамі фармат), HTML і iCalendar. \n" "Пры экспарце ў HTML, ствараецца CSS файл, які можна змяніць, каб \n" "змяніць вонкавы выгляд HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s можа ўзаемадзейнічаць з некаторымі паштовымі \n" "праграмамі з дапамогай перацягваньня. Маюцца некаторыя \n" "абмежаваньні: паведамленьні электроннай пошты будуць скапіяваны \n" "у каталог побач з файлам %(name)s , як .eml файлы і могуць быць \n" "пазней адкрыты з выкарыстаньнем праграмы, злучанай з гэтым \n" "тыпам файлаў у вашай сістэме. З іншага боку, гэта дазваляе \n" "адкрыць гэтыя ўкладаньні ў сістэме, якая адрозніваецца ад той, \n" "у якой яны першапачаткова створаны." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Падтрымоўваныя паштовыя праграмы:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "У сувязі з абмежаваньнем Thunderbird, вы не можаце перацягнуць некалькі \n" "паведамленняў электроннай пошты з Thunderbird. Гэта не датычыцца да Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" "Існуе два спосабу прыкласці эл.паштовае паведамленьне да задачы; вы можаце:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Перацягнуць на задачу, або на задачу ў дрэве задач ці спіс задач." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Перацягніце на панэль укладанняў у рэдактары задач." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Перацягваньне эл.паштовага паведамленьня на пустую частку дрэва задач ці " "спіс задач \n" "стварае новую задачу. Яе тэмай з'яўляецца тэма паштовага паведамленьня, яе " "кароткім апісаньнем \n" "- утрыманьні паведамленьня. Акрамя таго, паштовае паведамленьне аўтаматычна\n" "прыкладаецца да зноў створанай задачы." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML з'яўляецца XML пратаколам прызначаным для сінхранізацыі \n" "некалькіх прыкладаньняў з серверам. Папулярны сервер з адкрытым зыходным \n" "кодам з'яўляецца Funambol.\n" "Кліенты сінхранізацыі даступныя для шматлікіх прылад і прыкладаньняў " "(Outlook, \n" "Pocket PC, IPod, iPhone, Evolution, і г.д. ...), а таксама так званых " "\"канектараў\", \n" "якія дазваляюць серверу сінхранізавацца з Exchange, Google Calendar і інш." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s мае падтрымку ўбудаванага SyncML кліента на Windows і Mac OS X \n" "(пры ўмове, што вы выкарыстоўваеце файлы, якія падтрымліваюцца). Гэта " "азначае, \n" "што вы можаце наладзіць %(name)s для сінхранізацыі з тым жа серверам SyncML, " "\n" "з якім сінхранізуеце Outlook і атрымаць усе Outlook задачы і нататкі \n" "у файле %(name)s, а таксама %(name)s заданні і нататкі ў Outlook. \n" "Ці вашым Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Гэта функцыя не з'яўляецца абавязковай і адключана па змаўчанні. Для таго, " "каб \n" "уключыць яе, перайдзіце ў дыялог налад і праверце яе на старонцы " "Асаблівасьці." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Для налады SyncML, адрэдагуйце SyncML параметры ў Рэдагаваць/SyncML\n" "наладках. Запоўніце спасылку для сінхранізацыі, ваш ID на серверы і " "выберыце\n" "якія элементы сінхранізаваць (задачы і/ці нататкі). Спасылка залежыць ад " "сервера,\n" "які вы абралі; некаторыя прыклады:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Імёны баз дадзеныя даволі стандартныя; значэнні па змаўчаньні \n" "павінны працаваць." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Кожны файл задач мае ўласны кліенцкі ID, так што \n" "два розных файла задач будуць разглядацца як розныя \n" "\"прылады\" на серверы." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Некаторыя абмежаванні абумоўлены ляжалым у аснове \n" "тыпам дадзеных vcalendar, таму некаторыя магчымасці \n" "%(name)s не могуць быць прадстаўлены на серверы." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Іерархія задач і катэгорый губляецца на серверы." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Паўторы і напамінкі яшчэ не падтрымліваюцца." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Катэгорыі нататак губляюцца на серверы." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Сістэма выяўлення/вырашэння канфліктаў - спосаб абыходу \n" "абмежаванняў Funambol. Яна павінна працаваць у большасці выпадкаў, \n" "але калі некалькі прыкладаньняў сінхранізуюцца з адным серверам \n" "адначасова, могуць паўстаць праблемы." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Верагодна, некаторыя іншыя..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Элементы меню SyncML прысутнічаюць толькі калі Ваша \n" "платформа падтрымліваецца. У сапраўдны момант падтрымліваюцца \n" "наступныя платформы:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 біта (гл. ніжэй)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 біта" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 і пазней, на Intel і PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "У вас могуць паўстаць праблемы ў Windows, калі ў вас не \n" "усталяваны Microsoft Visual 8 runtime. Вы можаце загрузіць \n" "яго на Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Калі SyncML уключаны, выдаленьне задачы ці нататкі насамрэч \n" "не выдаляе іх, а пазначае як выдаленую. Выдаленая задача ці нататка \n" "у рэчаіснасці выдаляецца са спісу задач ці нататак пры наступнай \n" "сінхранізацыі. Па гэтым прычыне, калі Вы вырашылі выкарыстоўваць функцыю " "SyncML, \n" "то пры адключэньні яе без выкананьня сінхранізацыі ў Вашым файле задач " "могуць \n" "застацца некаторыя выдаленыя нататкі ці задачы. Гэта не праблема, проста \n" "файл займае трохі больш месца на дыску." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "У гэтым выпадку, пункт меню \"Ачысціць выдаленыя элементы\" у меню Файл можа " "быць скарыстаны \n" "для поўнага выдаленьня гэтых задач. Ён уключаецца толькі калі гэта сапраўды " "трэба, гэта значыць, \n" "калі ёсць элементы для ачысткі. Майце на ўвазе, што пасля гэтага, калі вы " "нанова ўключыце SyncML \n" "і зробіце сінхранізацыю з тым жа серверам, які вы выкарыстоўвалі раней, тое " "ўсё гэтыя элементы \n" "будуць з'яўляцца нанова, як быццам сервер не ведае, што яны выдалены." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch і iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s на iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Існуе iPhone/iPod Touch/iPad прыкладаньне неабходнае для %(name)s, \n" "даступнае на Apple's AppStore. (Калі вы не маеце ўсталяванага " "iTunes \n" "на вашым кампутары, вы будзеце накіраваны на старонку дзе можна загрузіць " "iTunes). \n" "Падтрымліваюцца наступныя магчымасці:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Асноўныя атрыбуты задачы: тэма, апісаньне, даты (з \n" "паўторам)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Іерархічныя задачы і катэгорыі" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Улік часу" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Некалькі файлаў задач" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Двухбаковая сінхранізацыя з %(name)s на працоўным стале" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "Прыкладанне з'яўляецца ўніверсальным і мае карыстацкі інтэрфейс iPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Канфігурацыя на iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Існуюць некаторыя налады для iPhone/iPod Touch/iPad прыкладаньня\n" "у Наладка прыкладаньня:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Паказваць выкананыя: ці паказваць выкананыя задачы." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Паказваць неактыўныя: паказваць ці не неактыўныя задачы (планавая дата " "пачатку \n" "у будучыні)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Пазіцыя значка: індыкатар значка можа з'яўляцца ці \n" "злева, ці справа ад экрана." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Кампактны рэжым: калі ён уключаны, спіс задач мае меншы \n" "індыкатар і не адлюстроўваюцца катэгорыі і даты." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Пацвярджаць выкананьне: калі ўключана, будзе з'яўляцца акно паведамленьняў \n" "для пацверджаньня, калі вы адзначыце задачу выкананай, націснуўшы яе " "індыкатар." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# дзён да заканчэння тэрміна - хутка: колькі дзён у будучыні \n" "азначаюць \"хутка\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Канфігурацыя працоўнага стала, усе платформы" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Для сінхранізацыі дадзеных, неабходна наладзіць %(name)s на ПК; \n" "у наладках, на ўкладцы \"Асаблівасьці\", усталюйце сцяжок \"Уключыць \n" "сінхранізацыю з iPhone\". Перазагрузіце %(name)s. Зараз, у наладках, \n" "выберыце ўкладку \"iPhone\" і запоўніце прынамсі пароль." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Пры націску кнопкі \"Сінхранізаваць\" у акне катэгорый, %(name)s \n" "аўтаматычна выяўляе запушчаныя экзэмпляры %(name)s \n" "на вашым ПК і просіць Вас выбраць адзін (вы можаце мець некалькі \n" "экзэмпляраў, запушчаных на розных кампутарах сеткі ці некалькі \n" "экзэмпляраў на адным кампутары). Адлюстроўваемае імя па змаўчаньні - \n" "некаторы радок, ідэнтыфікуючы кампутар, дзе ён працуе. \n" "Для яго наладкі вы можаце змяніць \"Імя службы Bonjour\" у канфігурацыі." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s запамінае выбраны экзэмпляр і паспрабуе злучыцца з ім пры \n" "наступнай сінхранізацыі; калі ён не працуе, вам прапануюць выбраць ізноў." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Заўважым, што гэта сінхранізацыя адбываецца праз сетку; няма \n" "неабходнасці ні для далучэння прылады праз USB, \n" "ні для запуску ITunes." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Канфігурацыя ў Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "У Windows Вы павінны ўсталяваць \n" "Bonjour for Windows і \n" "разблакаваць яго, калі спытае брандмаўар." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Канфігурацыя ў Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "У Linux, вы павінны мець Avahi \n" "дэман усталяваны і запушчаны. Большасць сучасных дыстрыбутываў \n" "ужо маюць яго. Вам таксама неабходна ўсталяваць пакет dnscompat; яго імя \n" "залежыць ад вашага дыстрыбутыва (libavahi-compat-libdnssd1 у Ubuntu да " "прыкладу)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Я не магу знайсці iPhone/IPod Touch прыкладаньне на вэб-сайце \n" "кампаніі Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Вы павінны мець iTunes усталяваны на вашым кампутары для навігацыі \n" "па каталогу прыкладаньняў Apple's App Store. \n" "Атрымаць " "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Мой кампутар не з'яўляецца ў спісе пры спробе сінхранізацыі" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Праверце што ваш iPhone/iPod Touch далучаны да той жа сеткі\n" "кампутара праз WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone не можа далучыцца да майго кампутара" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Калі ў Вас усталяваны брандмаўэр, праверце што порты 4096-4100 адкрыты." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Не, %(name)s не даступны на платформе Android. Але існуе\n" "Todo.txt Touch. \n" "Вы можаце экспартаваць вашы задачы з %(name)s у фармат Todo.txt\n" " і рэдагаваць іх на Android прыладзе." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt -- мэнэджар todo-спісаў з адкрытым кодам, які працуе \n" "з файламі чыстага тэксту, створаны Gina Trapani. У Todo.txt інтэрфейс \n" "каманднага радка. Аднак, паколькі файл у тэкставым выглядзе, вы можаце \n" "рэдагаваць свае задачы з дапамогай любога тэкставага рэдактара. \n" "Todo.txt Touch -- гэта версія Todo.txt для платформы Android. Todo.txt Touch " "\n" "выкарыстоўвае файл todo.txt які знаходзіцца ў вашай Dropbox папцы. \n" "%(name)s падтрымлівае імпарт/экспарт у/з файл todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s імпартуе тэмы задачы, даты планавага пачатку, тэрміна, выканання, \n" "прыярытэт, кантэксты і праекты. Кантэксты і праекты трансфармуюцца %(name)s " "\n" "у катэгорыі. Праекты не могуць быць трансфармаваны ў вышэйстаячыя задачы \n" "з-за таго, што Todo.txt дапушчае прыналежнасць задач некалькім праектам, \n" "у той час як %(name)s дапушчае для задачы толькі адну вышэйстаячую." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Пры імпартаванні %(name)s спрабуе знайсці супадальныя задачы і \n" "катэгорыі і абнавіць іх замест стварэння новых. Ён вырабляе супастаўленьне, " "\n" "разглядаючы тэму задачы (ці праекта, ці кантэкст) і бацькоўскі элемент, \n" "калі такі маецца." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s экспартуе тэмы задачы, даты планавага пачатку, тэрміна, выканання, " "\n" "прыярытэт і катэгорыі ў фармат Todo.txt. Іншыя атрыбуты не экспартуюцца." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s падтрымлівае даты і час, але Todo.txt падтрымлівае \n" "толькі даты, таму час пачатку, тэрміна, выканання \n" "не экспартуецца." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Па змаўчанні фармат Todo.txt падтрымлівае толькі планавыя даты пачатку \n" "і даты выканання, але не тэрмін. Такім чынам, %(name)s выкарыстоўвае " "пашырэнне \n" "для экспарту тэрмінаў задач. Тэрмін у файле todo.txt паказваецца як " "\"due:YYYY-MM-DD\"." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt мае прыярытэты ў выглядзе літар ('A'-'Z'). \n" "%(name)s мае лікавыя прыярытэты. прыярытэт %(name)s 1 пераўтворыцца ў 'A',\n" "2 становіцца 'B' і г.д., 26 - 'Z'. Прыярытэты %(name)s меней 1 і больш 26\n" "не экспартуюцца." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Катэгорыі, тэма якіх пачынаецца з \"+\", экспартуюцца як праекты.\n" "Катэгорыі, тэма якіх пачынаецца з \"@\", экспартуюцца як кантэкст.\n" "Катэгорыі, тэма якіх не пачынаецца з \"+\" ці \"@\", не экспартуюцца.\n" "Падкатэгорыі экспартуюцца, калі экспартуюцца іх катэгорыі." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Шаблоны - праекты для новых задач. Цяпер адзіныя ўласцівасці задачы, \n" "якія могуць быць \"наладжаны\" - толькі даты. Пры выкарыстанні шаблону \n" "створаная задача мае даты, усталяваныя адносна бягучай даты." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Можна стварыць шаблон, выбраўшы задачу (толькі адну) і націснуўшы на пункт \n" "\"Захаваць задачу як шаблон\" у меню \"Файл\". Усе падзадачы, нататкі \n" "і ўкладанні з'яўляюцца часткай шаблону. Не захоўваюцца толькі катэгорыі." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Вы таксама можаце стварыць новы шаблон з гатовых файлаў шаблонаў \n" "(.tsktmpl), проста абярыце \"Імпартаваць шаблон\" у меню Файл і абярыце " "файл. \n" "Файлы шаблонаў захоўваюцца ў падкаталогу каталога, у якім размешчаны \n" "TaskCoach.ini." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Для выкарыстання шаблону выберыце \"Новая задача па шаблоне\" \n" "у меню Задача ці адпаведную кнопку на панэлі прылад.\n" "Пры стварэньні задачы даты пачатку, тэрміна, выканання пераўсталёўваюцца \n" "адносна бягучай даты. Напрыклад, калі Вы стварылі шаблон з задачы, \n" "якая пачынаецца сёння і з тэрмінам заўтра, кожны раз пры выкарыстанні \n" "шаблону планаваная дата пачатку заменіцца на бягучую дату, а тэрмін - \n" "на бягучую плюс адзін дзень." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Таксама вы можаце дадаць шаблоны ў рэдактары шаблонаў \n" "(Файл / Рэдагаваць шаблоны), а таксама рэдагаваць \n" "асноўныя ўласцівасці шаблону (даты і тэму). Даты прыведзены \n" "у чалавека-чытэльным фармаце, рэдактар дат стане чырвоным, \n" "калі %(name)s не можа зразумець, што гэта значыць. Прыклад дат:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Заўважым, што гэта сістэма не лакалізавана; Вы павінны ўводзіць\n" "даты ў англійскім фармаце." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Вы можаце перацягваць вокны прагляду для стварэння практычна любога \n" "макета карыстацкага інтэрфейсу. Калі вы пачняце перацягваць акно, \n" "з'явяцца падказкі, каб паказаць, дзе вы можаце яго пакінуць. Вокны \n" "таксама могуць быць кінуты адно на адно для стварэння запісных кніжак." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "У дыялогах рэдагаваньня вы можаце перацягваць укладкі, \n" "каб змяніць парадак ці стварыць зусім іншы макет \n" "карыстацкага інтэрфейсу шляхам месцаваньня ўкладак адна побач з адной." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Тэмы і апісаньні задач, нататкі і катэгорыі могуць быць зменены \n" "без адкрыцця дыялогу рэдагаваньня. Абярыце пункт, тэму ці \n" "апісаньне якога вы жадаеце змяніць, і націсніце на пункт ізноў, \n" "або ў слупку тэмы ці ў слупку апісаньня. З'явіцца тэкставае \n" "акно, якое дазваляе змяніць тэму ці апісаньне. Націсніце Enter, \n" "каб пацвердзіць змены. Націсніце Escape, каб адмяніць \n" "занесеныя змены. F2 - клавіша для рэдагавання тэмы." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s мае некалькі спалучэнняў клавіш хуткага доступу, пералічаныя ніжэй. " "\n" "Спалучэнні клавіш хуткага доступу не наладжваюцца ў дадзены момант." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux і Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux і Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux і Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Уставіць новы падэлемент" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Зьмяніць вылучаны(я) аб'ект(ы) ці закрыць дыялог" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Адзначыць выбраную(ыя) задачу(ы) як (не)выкананую(ыя)" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Адмяніць дыялог ці перамясціць фокус клавіятуры з пошуку ў аглядальнік" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Перамясьціць фокус клавіятуры ў наступнае поле ў дыялогу" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Перамясьціць фокус клавіятуры ў папярэдняе поле ў дыялогу" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Перамясьціць фокус клавіятуры на наступную ўкладку запісной кніжкі" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Перамясьціць фокус клавіятуры на папярэднюю ўкладку запісной кніжкі" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Усплывальнае меню ці выпадальны спіс" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Змяніць тэму абранага элемента ў акне" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Версія %(version)s, %(date)s
    \n" "

    Аўтар %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s актыўна развіваецца. Хоць распрацоўнікі %(name)s імкнуцца " "пазбегнуць іх, памылкі здараюцца. Такім чынам, настойліва рэкамендуецца " "выконваць рэгулярнае рэзервовае капіяванне вашай працы." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "У %(name)s ёсць спіс рассыланьня, дзе Вы можаце абмеркаваць выкарыстаньне " "%(name)s з іншымі карыстачамі, абмеркаваць і запытаць асаблівасці, а таксама " "паведаміць пра памылкі. Перайдзіце на %(url)s і далучайцеся сёння!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s мае магчымасць неабмежаванай адмены дзеянняў. Любая ўносная змена, " "няхай гэта будзе рэдагаваньне апісання задачы ці выдаленьне запісу пра працу " "над ёй, можна адмяніць. Выкарыстоўвайце пункты меню 'Праўка' -> 'Адмяніць' і " "'Праўка' -> 'Паўтарыць' для пераходу назад ці наперад па ўсёй гісторыі " "занесеных змен." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "У %(name)s убудавана падтрымка розных моў. Выберыце пункт меню 'Праўка' -> " "'Наладкі' для прагляду спісу даступных моў. Калі ваша мова адсутнічае ў " "спісе, ці вы лічыце, што пераклад мае патрэбу ў паляпшэньні, калектыў " "распрацоўнікаў будзе ўдзячны вам за дапамогу ў лакалізацыі %(name)s. " "Інфармацыю пра тое, як вы можаце дапамагчы, можна знайсці па спасылцы: " "%(url)s." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Пры увядзенні інтэрнэт-адрасу (напрыклад, %(url)s) у апісаньне задачы ці " "працы над задачай, ён ператвараецца ў спасылку. Калі вы націснеце на гэту " "спасылку, яна адкрыецца ў вашым браўзары па змаўчаньні." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Калі задачы прадстаўлены ў выглядзе дрэва, вы можаце перацягваць іх з " "дапамогай паказальніка мышы, змяняючы іх узровень і прыналежнасць. Гэта " "функцыя працуе і ў дрэве катэгорый." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Вы можаце перацягваць файлы з Правадніка ў любую задачу для стварэння " "ўкладанняў. Пры перасоўваньні файла над укладкай адкрыецца адпаведная " "старонка, а пры перасоўваньні над згорнутай задачай (адзначанай знакам '+' у " "прастакутніку) у дрэве задач гэта задача разгорнецца і стануць бачныя ўсе яе " "падзадачы." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Вы можаце стварыць любы фармат аглядальніка, пераносячы ўкладкі. Фармат " "будзе захаваны і будзе выкарыстоўвацца ў наступным сеансе." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Тое, што будзе надрукавана пры выбары пункта меню 'Файл' -> 'Друк' залежыць " "ад бягучага ўяўленьня. Калі ў бягучым уяўленьні адлюстроўваецца спіс задач, " "будзе надрукаваны спіс задач. Калі ў бягучым уяўленьні адлюстроўваюцца " "запісы пра працу над задачай па месяцах, будзе надрукаваны менавіта гэты " "спіс. Тое самае ставіцца да ўключаных калонак, спосабу сартаваньня, " "фільтраваньня задач і г.д." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Пстрыкніце левай кнопкай мышы на загаловак слупка для сартавання па гэтым " "слупку. Націсніце на загаловак слупка яшчэ раз, каб змяніць парадак " "сартавання з узрастаньня на змяншэнне і зваротна. Пстрыкніце правай кнопкай " "мышы на загаловак слупка, каб схаваць гэты слупок ці паказу дадатковых " "слупкоў." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Вы можаце стварыць шаблон з задачы, каб паменшыць аб'ём набору пры з'яўленні " "паўтаральных задач." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab пераключае ўкладкі ў дыялогах рэдагавання." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Агляд файлаў для дадання ўкладання ў абраны(я) элемент(ы)" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Дадаць нататку да вылучанага(ых) элементу(аў)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Уставіць новую катэгорыю" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Выразаць вылучаныя элементы ў буфер абмену" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Капіяваць вылучаныя элементы ў буфер абмену" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Уставіць элементы з буфера абмену" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Уставіць элемент(ы) з буфера абмену як падэлемент абранага элемента" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Рэдагаваць налады" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Паўтарыць апошнюю адмененую каманду" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Вылучыць усе элементы ў бягучым уяўленні" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Адмяніць апошнюю каманду" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Дадаць перыяд працы над абранымі задачамі" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Пачаць улік працы для абраных задач" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Спыніць ці аднавіць улік працы" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Закрыць бягучы файл" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Выйсці з %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Адкрыць файл %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Захаваць бягучы файл" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Захаваць бягучы файл пад новым імем" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Даведка пра праграму" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" "Адправіць вылучаны(я) элемент(ы) па пошце, выкарыстоўваючы праграму па " "змаўчаньні" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Уставіць новую нататку" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Адкрыць усе ўкладаньні ў абранага(ых) элемента(ў)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Адкрыць усе нататкі ў абранага(ых) элемента(ў)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Друк бягучага файла" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Параметры старонкі" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Паказваць усе элементы (зняць усе фільтры)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Паказваць усе элементы незалежна ад катэгорыі" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Перамясціць фокус клавіятуры з аглядальніка на пошук" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Паменшыць прыярытэт вылучанай задачы" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Павялічыць прыярытэт вылучаных задач" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Усталяваць выбраным задачам самы высокі прыярытэт" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Усталяваць выбраным задачам самы нізкі прыярытэт" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Уставіць новую задачу" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Згарнуць усе элементы з укладзенымі элементамі" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Разгарнуць усе элементы з укладзенымі элементамі" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Актываваць наступнае адкрытае акно" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Актывуе папярэдняе адкрытае акно" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "iPhone ці iPod Touch спрабуе далучыцца да Task Coach,\n" "але пароль не ўсталяваны. Калі ласка, усталюйце пароль \n" "у частцы налад iPhone і паўтарыце." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Версія пратаколу: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Версія адхіленага пратаколу %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Хэш OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Хэш KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Імя прылады: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Імя файла, які адпраўляецца: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Цалкам з працоўнага стала." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d катэгорыі" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Адправіць катэгорыю %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Адказ: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d задач" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Адправіць задачу %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d прац" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Адправіць працу %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Завершана." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d новых катэгорый" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d новых задач" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d новых прац" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d зьмененых катэгорый" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d зьмененых задач" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d зьмененых прац" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d выдаленых катэгорый" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d выдаленых задач" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d выдаленых прац" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Новая катэгорыя (бацька: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Выдаліць катэгорыю %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Зьмяніць катэгорыю %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Новая задача %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Выдаліць задачу %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Змяніць задачу %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Канец сінхранізацыі задач." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Не знойдзена задача %s для працы." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Новая праца %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Змяніць працу %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "GUID, які адпраўляецца: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Не атрымалася знайсці каталог дадзеных Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Не атрымалася знайсці профіль Thunderbird." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Няма раздзела па змаўчаньні ў profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Скажоны ўнутраны ID Thunderbird:\n" "%s. Калі ласка, адпраўце паведамленьне пра памылку." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Не атрымалася знайсці каталог для ID\n" "%s.\n" "Калі ласка, адпраўце паведамленьне пра памылку." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Нераспазнаная URL схема: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Не атрымалася абраць Уваходныя \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Няма такога ліста: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Фактычны час пачатку" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Планавы час пачатку" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Час тэрміна" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Час завяршэння" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Час напамінку" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Няма тэмы" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Тэрмін новай задачы мінае сёння" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Тэрмін новай задачы мінае заўтра" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d дня(дзён)" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 дзень" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Кожныя %(frequency)d дзён" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Кожныя %(frequency)d тыдняў" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Кожныя %(frequency)d месяцаў" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Кожныя %(frequency)d гадоў" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Праз дзень" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Праз тыдзень" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Праз месяц" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Праз год" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "зараз" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Сінхранізацыя з крыніцай %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "будзе абноўлены з сервера. Усе лакальныя запісы\n" "будуць выдалены. Вы жадаеце працягнуць?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "будзе абноўлены з кліента. Усе запісы на серверы\n" "будуць выдалены. Вы жадаеце працягнуць?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Сінхранізацыя" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Ідзе сінхранізацыя. Чакайце.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d элементаў дададзена.\n" "%d элементаў абноўлена.\n" "%d элементаў выдалена." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Пры сінхранізацыі адбылася памылка.\n" "Код памылкі: %d; Апісанне: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Спачатку вы павінны змяніць вашы налады SyncML, у Праўка/Налады SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Пераключальнік панэляў" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Аднавіць %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Прадпрагляд панэлі" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Зачыніць" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Зачыніць усё" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Наступны" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Папярэдні" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Акно" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Тып адлюстроўваемага перыяду і працягласць" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Месяц" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Арыентацыя календара" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Гарызантальна" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Вертыкальна" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Якія задачы паказваць" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Задачы з планавай датай пачатку і тэрмінам" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Задачы з планавай датай пачатку" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Задачы з датай тэрміна" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Усе задачы" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Усе задачы, акрамя незапланаваных задач" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Красліць лінію, якая паказвае бягучы час" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Колер выкарыстоўваны для вылучэння бягучага дня" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Усе файлы (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Пароль:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Захаваць на бірульцы" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Калі ласка, увядзіце пароль." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Калі ласка, увядзіце пароль" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "З &улікам рэгістра" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Улічваць рэгістр пры фільтраваньні" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Уключыць падэлементы" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Уключаць у вынікі пошуку падпункты прыдатных пунктаў" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Таксама шукаць у апісаньні" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Шукаць у тэме і ў апісаньні" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Гэта няслушны рэгулярны выраз" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Па змаўчаньні для пошуку падрадкоў" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Гісторыя пошуку" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Пошук пры праглядзе адсутнічае" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Папярэджаньне пра сумяшчальнасць" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Функцыя SyncML адключана, бо модуль не быў загружаны.\n" "Гэта магло адбыцца з-за таго, што ваша платформа\n" "не падтрымліваецца ці пад Windows у выпадку адсутнасці\n" "абавязковых DLL. Калі ласка, звярніцеся да часткі SyncML\n" "анлайн даведкі для падрабязнай інфармацыі (\"Ліквідацыя няспраўнасцяў\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Не паказваць гэты дыялог ізноў" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Памылка пры адкрыцці спасылкі" #~ msgid "&Delete\tDEL" #~ msgstr "&Выдаліць\tDEL" taskcoach-1.4.3/i18n.in/bg.po000066400000000000000000005405441265347643000156210ustar00rootroot00000000000000# translation of bg.po to Nederlands # Bulgarian translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2007. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: bg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: vladi \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s файлова грешка" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Добави приложение" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Нов прикрепен файл" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Премахни приложението" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Копирай" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Копирай \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Изтрий" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Изтрий \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Изрежи" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Изрежи \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Постави" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Постави \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Влачене и пускане" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Влачене и пускане \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Редактирай обектите" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Редактирай обект \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Редактирай описанията" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Редактирай описанието на \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Промени икони" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Промени икона \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Промени шрифтовете" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Смени категория" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Смени категорията на \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Нова категория" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Нова подкатегория" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Нова подкатегория на \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Нова подкатегория" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Изтрий категории" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Изтрий категория \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Нова бележка" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Нови подбележки" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Нова подбележка" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Изтрий бележки" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Изтрий бележка \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Добави бележка" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Премахни бележка" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Изтрий задачи" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Изтрий задача \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Нова задача" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Нови подзадачи" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Нова подзадача" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Маркирай задачите като приключени" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Маркирай задача като активна" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Започни проследяване" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Спри проследяване" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Първи по приоритет" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Последен по приоритет" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Повиши приоритета" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Понижи приоритета" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Грешка при запазването %s,ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Грешка при запазване" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Нов прикрепен файл..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Вмъкване на нов прикрепен файл" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Отвори приложение" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Отваряне на избраните прикрепени файлове" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Не изчаквай" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Покажи/Скрий завършените задачи" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Нова задача..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Описание" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Заглавие" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Приоритет" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Местоположение" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Дати" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Насрочена дата" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Дата на завършване" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Напомняне" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Повторение" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Използвай настройка за широка употреба" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Не" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Да" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Маркирай задачата като завършена, когато всички подзадачи са завършени" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Бюджет" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Отделено време" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Остатък бюджет" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Почасово възнаграждение" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Фиксирано възнаграждение" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Приход" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Опит" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Категории" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Приложения" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Бележки" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Редактирай задача" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Задача" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Стартирай" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Спри" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Започни проследяване от времето на последното спиране" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Няма" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Дневно" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Месечно" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Седмично" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Годишно" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Откажи" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "ОК" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Файлове" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Запазвай автоматично след всяка промяна" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Поведение на прозореца" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Покажи начална картинка при стартиране" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Покажи прозорец със съвети при стартиране" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Стартирай с иконизиран главен прозорец" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Винаги" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Никога" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Провери за нова версия of %(name)s при стартиране" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Скрий главния прозорец при иконизиране" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Минимизирай главния прозорец при затваряне" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Тиктакащ часовник при проследяване на опит" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Език" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Възможностти" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Маркирай главна задача като завършена, когато всички подзадачи са завършени" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Редактор" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Провери правописа в редакторите" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Напомняне дата/време" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Изчакай" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Съобщи ми за нови версии" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Има нова версия на %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Версия %(version)s на %(name)s" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar files (*.ics)|*.ics|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML файлове (*.html)|*.html|Всички файлове (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV файлове (*.csv)|*.csv|Текстови файлове (*.txt)|*.txt|Всички файлове " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Отвори" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Заредени %(nrtasks)d задачи от %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Не може да отвори %s защото не съществува" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Сливане" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Слети %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Имате незапазени промени.\n" "Запази преди затваряне?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: запази промените?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Затворен %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Запазени %(nrtasks)d задачи в %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Грешка при четене %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Добре дошли в %(name)s версия %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Файл" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Редактирай" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Изглед" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Помощ" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Експортирай" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Избери" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Нов изглед" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Активирай следващия изглед\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Активирай &предходния изглед\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Филтрирай" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Сортирай" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Колони" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Опции за дървото" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Лента с инструменти" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Показване/скриване на Лента за състоянието" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Лента на &статуса" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Задача" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Категория" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Отвори нов етикет с изглед, показващ категориите" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Бележка" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Отвори нов етикет с изглед който показва бележки" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Скрий" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Сктий лентата с инструменти" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Малки картинки" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Малки картинки (16х16) за лентата с инструменти" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Средни по големина картинки" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Средни по размер картинки (22x22) за лентата с инструменти" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Големи картинки" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Големи картинки (32x32) за лентата с инструменти" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Започни проследяване на опит" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Приоритет" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Страница" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d задачи неизпълнени" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "една задача неизпълнена" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "проследяване на опит за %d задачи" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Отвори...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Отвори %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Сливане..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Слей задачи от друг файл с текущия" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Запази\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Покажи преглед на печата" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Преглед преди печат" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Експортирай като &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Експортирай като &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Излез от програмата\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "Отмени" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Възстанови" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Изрежи\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Копирай\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Постави\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Всички\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Изчисти селекцията" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Изчисти селекцията на всички елементи" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Преименувай филтър..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Преименувай избрания изглед" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Ново заглавие за изглед" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Преименувай изглед" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "Скрий тази колона" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Скрий избраните колони" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Разшири всички елементи\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Събери всички елементи\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Възходящ ред" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Сортирай по нарастване (отметнати) или понижаване (неотметнати)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Когато се ставнява текст, сортирането е чувствително към формата на буквите " "(отметнато) или е нечувствително (неотметнато)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Сортирай по статус &първо" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Сортирай задачите по статус (активни/неактивни/завършени) първо" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Нова &подзадача..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Маркирай избраните задачи като завършени" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Спри проследяване на опит за избраните задачи" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Грешка при отваряне на приложението" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Помощ" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "Съвети" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Съвети относно програмата" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Относно %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Версия и информация за контакт относно %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Лиценз" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s лиценз" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Възстанови" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Възстанови прозореца до предишно състояние" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Детайли за опита" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Опит за ден" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Опит за месец" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Опит за седица" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Днес" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Сортирай по заглавие" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Заглавие" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Сортирай по описание" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Описание" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Покажи/Скрий колоната с описания" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Прикрепени файлове" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Категории: %d избрани, %d общо" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Статус: %d филтрирани" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Период" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Общо използвано време" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Общ приход" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Категории" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Покажи/Скрий колоната на категориите" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Отделено време" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Покажи/Скрий колоната с отделеното време" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Приход" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Покажи/Скрий колона на приходите" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Покажи/Скрий колоната с общия приход" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Статус: %d проследяване" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Сортирай задачите по крайна дата" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Крайна дата" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Сортирай задачите по дата на завършване" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Дата на завършване" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Сортирай задачите по повторение" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Повторение" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Сортирай задачите по бюджет" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Бюджет" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Сортирай задачите по отделено време" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "&Остатък бюджет" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Сортирай задачите по остатъчен бюджет" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Сортирай задачите по приоритет" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Сортирай задачите по часова ставка" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Часова ставка" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Сортирай задачите по фиксирана ставка" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Фиксирана ставка" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Сортирай задачите по доход" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Сортирай задачите по дата и време на напомняне" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Напомняне" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Бележки: %d избрани, %d общо" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Статус: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Задачи: %d избрани, %d видими, %d общо" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Задачи" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Дати" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Покажи/Скрий всички колони свързани с дати" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Покажи/Скрий колона на крайните дати" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Покажи/Скрий колона на датите на завършване" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Покажи/Скрий колоната с повторенията" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Покажи/Скрий всички колони свързани с бюджета" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Покажи/Скрий колона на бюджета" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Покажи/Скрий колоната с остатъка от бюджета" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Финансов" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Покажи/Скрий всички свързани с финанси колони" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Покажи/Скрий колоната с часовата ставка" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Покажи/Скрий колоната с фиксирана ставка" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Покажи/Скрий колона на приложенията" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Покажи/Скрий колоната с приоритети" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Покажи/Скрий колоната с напомняния" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s има неограничен брой 'откажи' и 'повтори'. Всяка промяна която " "правите, била тя описание на задача или изтриване на запис на опит е " "отменима. Изберете 'Редактирай' -> 'Отмени' и 'Редактирай' -> 'Повтори' за " "да се придвижвате напред-назад в историята на Вашите редакции." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s е в наличност за различни езици. Изберете 'Редактирай' -> " "'Предпочитания' за да видите дали вашият език е един от тях. Ако вашият език " "не е в наличност или превода изисква подобрение, можете да помогнете с " "превода на %(name)s. Посетете %(url)s за повече информация относно това как " "можете да помогнете." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Ако въведете URL адрес (напр. %(url)s) в описание на задача или опит, той се " "превръща във връзка. Кликване върху тази връзка ще отвори URL във вашия " "браузър по подразбиране." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Можете да теглите и пускате задачи в дървовидния изглед с цел да " "пренареждате йерархичните взаимоотношения между задачите. Същото се отнася и " "за категориите" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Можете да теглите файлове от файлов браузър върху задача за да създавате " "приложения. Тегленето на файлове върху етикет ще покаже подходящата " "страница, тегленето на файлове върху събрана задача (със знак + отпред) във " "дървовидния изглед ще разгъне задачата за да покаже нейните подзадачи." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Какво точно е принтирано когато изберете 'Файл' -> 'Принтирай' , зависи от " "текущия изглед. Ако последния показва списък със задачи - те ще бъдат " "принтирани, ако показва опити групирани по месец, те ще бъдат принтирани. " "Същото се отнася за видимите колони, реда на сортиране, филтрирани задачи и " "т.н." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Ляв клик на мишката върху заглавие на колона, за да сортирате по тази " "колона. Кликнете отново за промяна от възходящ в низходящ ред на сортиране. " "Десен клик на мишката върху заглавие на колона, за да скриете тази колона " "или да направите други колони видими." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Вмъкни нова категория" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Изрежи избраните елементи и ги постави в клипборда" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Копирай избраните елементи в клипборда" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Постави елементи от клипборда" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Предпочитания за редактиране" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Възстанови последната отменена команда" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Избери всички елементи в текущия изглед" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Отмени последната команда" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Добави време за опит към избраните задачи" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "&Започни проследяване на опит за избраните задачи" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Затвори текущия файл" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Изход %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Отвори като %s файл" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Запази текущия файл" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Запази текущия файл под ново име" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Относно програмата" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Вмъкни нова бележка" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Печат на текущият файл" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Настройка на страницата за принтиране" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Покажи всички елементи (възстанови всички филтри)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Понижи приоритета на избраните задачи" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Повиши приоритета на избраните задачи" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Задай на избраните задачи най-висок приоритет" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Задай на избраните задачи най-нисък приоритет" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Вмъкване на нова задача" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Събери всички елементи със субелементи" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Разшири всички елементи със субелементи" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Активирай следващия отворен изглед" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Активирай предходно отворения изглед" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "сега" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Всички файлове (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Съпоставка на формата на буквите при филтриране" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Включи субелементи от съвпадащите елементи в резултата от търсенето" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Най-нови търсения" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Изгледа не може да се претърсва" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/br.po000066400000000000000000005232031265347643000156250ustar00rootroot00000000000000# Breton translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Breton \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: br\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "fazi restr %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Ouzhpennañ ur restr stag" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Restr stag nevez" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Eilañ" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Dilemel" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Troc'hañ" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Pegañ" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Riklañ-dilec'hiañ" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Rummad nevez" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Isrummad nevez" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Notenn nevez" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Isnotenn nevez" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Kefridi nevez" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Iskefridi nevez" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Loc'añ an heuliañ" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Paouez an heuliañ" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maksimizañ ar briorelezh" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizañ ar briorelezh" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Kreskiñ ar briorelezh" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Digreskiñ ar briorelezh" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Fazi oc'h enrollañ %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Fazi enrollañ" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Restr stag nevez..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Enlakaat ur restr stag nevez" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Digeriñ ar restr stag" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Digeriñ ar restroù stag diuzet" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Diskwel/Kuzhat ar c'hefridioù peurechu" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Kefridi nevez..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Deskrivadur" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Danvez" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Renk" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Furchal" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Deiziadoù" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Deiziad dleet" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Deiziad ar peurechuiñ" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Dalc'her-soñjoù" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Rekurañs" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Implij kefluniadur an arload a-bezh" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ket" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ya" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Merkañ ar gefridi evel peurechu pa vez peurechu ar vugale?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budjed" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Amzer implijet" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budjed hegerz" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Treziad dre eurvezh" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Treziad" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Gounid" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Striv" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Rummadoù" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Restroù stag" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notennoù" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Aozañ ar gefridi" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Kefridi" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Loc'hañ" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Paouez" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Loc'hañ an heuliañ adalek ar c'houlz paouez diwezhañ" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Tra ebet" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Deizek" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Miziek" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Sizhuniek" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", bep" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "deiz(ioù)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "sizhun(ioù)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "miz(ioù)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Nullañ" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Mat eo" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Restroù" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Enrollañ emgefreek goude pep kemm" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Emzalc'h ar prenestr" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Diskwel ar skramm degemer d'al loc'hañ" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Diskwel prenestr an tunioù d'al loc'hañ" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Loc'hañ gant ar prenestr pennañ arlunet" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Bepred" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Morse" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Gwiriekaat bezañs un doare nevez eus %(name)s el loc'hañ" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Kuzhat ar prenestr pennañ pa vez arlunet" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Izelaat ar prenestr pennañ pa vez serret" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Lakaat an horolaj er varrenn gefridi d'ober titirin pa vez heuliet ur striv" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Yezh" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Ne gaver ket ar yezh-se ?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Lun" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Sul" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Merkañ ar gefridi gar evel peurechu pa vez peurechu an holl vugale" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Aozer" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Gwiriekaat ar reizhskrivadur e-barzh aozerioù" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Soñjdegaser deiziad/amzer" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Gorrek" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Kemenn din an doareoù nevez." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Un doare nevez eus %(name)s a c'haller e gaout" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "An doare %(version)s eus %(name)s a c'haller e gaout digant" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Restroù iCalendar (*.ics)|*.ics|An holl restroù (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Restroù HTML (*.html)|*.html|An holl restroù (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Restroù CSV (*.csv)|*.csv|Restroù Testenn (*.txt)|*.txt|An holl restroù " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Digeriñ" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d (g)kefridioù karget eus %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Ne c'haller ket digeriñ %s rak n'eus ket anezhañ" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Kendeuziñ" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s kendeuzet" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s restr patrom (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Kemmoù dienroll ho peus.\n" "Enrollañ a-raok serriñ?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: enrollañ ar c'hemmoù?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s serret" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d enrollet e %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Fazi en ur lenn %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Degemer mat e %(name)s aozadur %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Restr" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Aozañ" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Diskwel" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Skoazell" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Ezporzhiañ" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Diuzañ" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "Gweler &Nevez" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Sil" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Rummañ" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Bannoù" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Barren &Ostilhoù" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Diskwel/Kuzhat ar varren stad" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Barrenn stad" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Kefridi" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Rummad" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Digeriñ ur steudenn nevez gant ur gweler hag a ziskouez ar rummadoù" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Striv" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notenn" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Digeriñ ur steudenn nevez gant ur gweler hag a ziskouez an notennoù" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Kuzhat" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Kuzhat ar varenn ostilhoù" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "Skeudennoù &bihan" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Skeudennoù bihan (16x16) war ar varrenn ostilhoù" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Skeudennoù &krenn" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Skeudennoù krenn (22x22) war ar varrenn ostilhoù" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "Skeudennoù &bras" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Skeudennoù bras (32x32) war ar varrenn ostilhoù" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Loc'hañ an heuliañ striv" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (iskefridioù)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Renk" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Pajenn" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d (c'h)(g)efridi daleet" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "ur gefridi daleet" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "oc'h heuliañ \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "heuliañ striv evit %d (g)(c'h)kefridi" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Digeriñ...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Digeriñ %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Kendeuziñ..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Kendeuziñ kefridioù eus ur restr all gant ar restr red" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Serriñ\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Enrollañ\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "E&nrollañ dindan...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Enrollañ ar gefridi diuzet evel ur &patrom" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Enrollañ ar gefridi diuzet evel ur patrom kefridi" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Diskwel ur rakgwel eus an neuz a vo gant ar mouladur" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Rakgwel ar moullañ" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Ezporzhiañ evel &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Ezporzhiañ evel &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Kuitaat\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Dizober" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Adober" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Troc'hañ\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Eilañ\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Pegañ\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Aozañ ar penndibaboù SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "An &holl\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Goullonderiñ an diuzadenn" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Ezdiuzañ an holl elfennoù" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Adenvel ar gweler..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Adenvel ar gwelerioù diuzet" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Titl nevez d'ar gweler :" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Adenvel ar gweler" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Kuzhat ar bann-mañ" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Kuzhat ar bann diuzet" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Digeriñ gwezenn an holl elfennoù\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Serriñ gwezenn an holl elfennoù\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "Dre &sevel" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Rummañ dre sevel (merket) pe dre ziskenn (diverket)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Pa vez kenveriet skrid, rummañ en ur deuler evezh ouzh ar c'hef (merket) pe " "hep en ober (diverket)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Rummañ dre stad da &gentañ" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Rummañ ar c'hefridioù dre stad (bev/marv/peurechu) da gentañ" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Krouiñ ur gefridi nevez diwar ur patrom" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Enlakaat ur gefridi nevez gant ar rummadoù diuzet merket" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "&Iskefridi nevez..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Merkañ ar g(c'h)efridi(où) evel peurechu" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Loc'hañ an heuliañ striv evit %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Diuzañ ur gefridi dre ar meuziad ha loc'hañ an heuliañ striv eviti" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Paouez an heuliañ striv ar g(c'h)efridi(où) v(b)ev" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Enlakaat un notenn nevez gant ar rummadoù diuzet merket" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Fazi o tigeriñ ar restr stag" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Endalc'h ar skoazell\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Skoazell" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tunioù" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tunioù diwar-benn ar programm" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Diwar-benn %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Aozadur ha titourou darempred diwar-benn %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Aotre" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "aotre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Adsevel" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Adsevel ar prenestr d'e stad kent" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Munudoù ar striv" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Striv dre zeiz" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Striv dre viz" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Striv dre sizhun" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Sil war an holl rummadoù merket" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Sil war pep rummad merket" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Hiziv" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Rummañ dre zanvez" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Danvez" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Rummañ dre zeskrivadur" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Deskrivadur" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Diskwel/Kuzhat bann an deskrivadurioù" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notennoù" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Diskwel/Kuzhat bann an notennoù" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Restroù stag" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Rummadoù: %d diuzet, %d hollad" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Stad: %d silet" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Mare" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Hollad an amzer implijet" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Hollad ar gounidoù" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Meurzh" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Merc'her" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Yaou" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Gwener" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sadorn" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Rummadoù" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Diskwel/Kuzhat bann ar rummadoù" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Amzer implijet" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Diskwel/Kuzhat bann an amzerioù implijet" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Gounid" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Diskwel/Kuzhat bann ar gounidoù" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Diskwel/Kuzhat ar bann hollad an amzer implijet" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Diskwel/Kuzhat bann holladoù ar gounidoù" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Stad: %d heuliañ" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Rummañ ar restroù stag dre zanvez" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Rummañ ar restroù stag dre rummad" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Rummañ an notennoù dre zanvez" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Rummañ an notennoù dre rummad" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Rummañ ar gefridioù dre zanvez" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Rummañ ar c'hefridioù dre zeiziad dleet" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Deiziad &dleet" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Rummañ ar c'hefridioù dre zeiziad peurechuiñ" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Deidiaz &peurechuiñ" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Rummañ ar c'hefridioù dre rekurañs" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Rekurañs" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Rummañ ar c'hefridioù dre vudjed" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budjed" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Rummañ ar gefridioù dre amzer implijet" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Budjed &hegerz" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Rummañ ar c'hefridioù dre vudjed hegerz" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Rummañ ar gefridioù dre renk" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Rummañ ar c'hefridioù dre dreziad dre eurvezh" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Treziad dre &eurvezh" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Rummañ ar c'hefridioù dre dreziad" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Treziad" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Rummañ ar c'hefridioù dre c'hounid" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Rummañ ar c'hefridioù dre soñjdegaser deiziad hag amzer" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Soñjdegaser" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Danvez" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Rummañ an notennoù dre rummad" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notennoù: %d diuzet, %d hollad" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Stad: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Kefridioù: %d diuzet, %d gwelus, %d en holl" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Kefridioù" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Deiziadoù" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Diskwel/Kuzhat an holl vannoù a ra dave d'un deiziad bennak" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Diskwel/Kuzhat bann an deiziadoù" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Diskwel/Kuzhat bann an deiziadoù peurechu" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Diskwel/Kuzhat bann ar rekurañsoù" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Diskwel/Kuzhat an holl vannoù a ra dave d'ur budjed bennak" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Diskwel/Kuzhat bann ar vudjedoù" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Diskwel/Kuzhad bann ar budjed hegerz" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Arc'hanterezh" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Diskwel/Kuzhat an holl vannoù a ra dave d'an arc'hanterezh" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Diskwel/Kuzhat bann an treziadoù dre eurvezh" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Diskwel/Kuzhat bann an treziadoù" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Diskwel/Kuzhat bann ar restroù stag" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Diskwel/Kuzhat bann ar renkoù" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Diskwel/Kuzhat bann an soñjdegaserioù" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Doare %(version)s, %(date)s
    \n" "

    Gant %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "Gant %(name)s e vez diharz an disober hag an adober. Posubl e vez disober " "pep kemm a rafec'h, ma vefe aozañ deskrivadur ur gefridi pe dilemel un " "enrolladur striv. Diuzit 'Aozañ' -> 'Disober' hag \"Aozañ' -> 'Adober' evit " "mont war-gil ha war-raok en hoc'h istoradur aozañ." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "Gallout a reer kaout %(name)s e meur a yezh. Diuzit 'Aozañ' -> 'Penndibaboù' " "da welout hag-eñ eo ho yezh unan anezho. Ma ne c'hallfed ket kaout ho yezh " "pe ma vefe ezhomm da wellaat an droidigezh, klaskit reiñ skoazell evit " "troidigezh %(name)s mar plij. Gweladennit %(url)s evit kaout muioc'h a " "ditouroù diwar-benn an doare ma c'hallfec'h sikour." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Ma skrivit un URL (%(url)s da skouer) e deskrivadur ur gefridi pe " "deskrivadur ur striv e teu anezhi da vezañ ul liamm. Klikañ war al liamm a " "zigero an URL en ho furcher kenrouedad dre ziouer." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Ar pezh a vo moulet e gwirionez pa diuzit 'Restr' -> 'Moulañ' a vez diouzh " "ar gwel red. Ma eo kinniget roll ar c'hefridioù er gwel red e vo moulet ur " "roll kefridioù, ma eo kinniget ar strivoù strollet dre viz er gwel red e vo " "moulet evel-se. Memes tra evit ar vannoù welus, ar renk rummañ, ar " "c'hefridioù silet, h.a." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Enlakaat ur rummad nevez" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Troc'hañ ar g(c'h)efridi(où) diuzet d'ar golver" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Eilañ an elfenn(où) diuzet d'ar golver" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Pegañ an elfenn(où) eus ar golver" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Aozañ ar penndibaboù" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Adober an urzhiad diwezhañ bet disgraet" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Diuzañ an holl elfennoù er gwel red" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Dizober an urzhiad diwezhañ" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Ouzhpennañ ur mare striv d'ar g(c'h)efridi(où) diuzet" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Loc'hañ an heuliañ striv evit ar gefridi(où) diuzet" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Serriñ ar restr red" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Kuitaat %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Digeriñ ur restr %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Enrollañ ar restr red" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Enrollañ ar restr red gant un anv nevez" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Skoazell diwar-benn ar programm" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Enlakaat un notenn nevez" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Moullañ ar restr red" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Kefluniañ perzhioù ar bajenn voulerez" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Diskouez an holl elfennoù" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Digreskiñ priorelezh ar g(c'h)efridi(où) diuzet" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Kreskiñ priorelezh ar g(c'h)efridi(où) diuzet" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" "Grit ar g(c'h)efridi(où) a briorelezh uhelañ diouzh ar g(c'h)efridi(où) " "diuzet" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" "Grit ar g(c'h)efridi(où) a briorelezh izelañ diouzh ar g(c'h)efridi(où) " "diuzet" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Enlakaat ur gefridi nevez" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "&Serriñ gwezenn an holl elfennoù gant an iselfennoù" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Digeriñ gwezenn an holl elfennoù gant an iselfennoù" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Kefridi nevez dleet hiziv" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Kefridi nevez dleet warc'hoazh" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "bremañ" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d elfenn ouzhpennet.\n" "%d elfenn hizivaet.\n" "%d elfenn dilamet." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "An holl restroù (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Teuler evezh ouzh ar c'hef pa vezer o silañ" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "klaskoù fresk" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Ne c'haller ket klask gant ar gweler-mañ" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/bs.po000066400000000000000000005115431265347643000156320ustar00rootroot00000000000000# Bosnian translation for taskcoach # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 07:45+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Bosnian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: bs\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Greška" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Nemoguće učitati postavke sa TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s greška datoteke" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Dodaj prilog" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Novi prilog" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopiraj" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Obriši" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Izreži" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Umetni" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nova kategorija" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nova podkategorija" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nova zabilješka" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nova pod-zabilješka" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Dodaj zabilješku" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Novi zadatak" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Novi podzadatak" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Počni praćenje" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Zaustavi praćenje" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maksimiziraj prioritet" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimiziraj prioritet" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Povećaj prioritet" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Smanji prioritet" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Greška kod spremanja %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Greška kod spremanja" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Novi prilog..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Ubaci novi prilog" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Otvori prilog" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Otvori izabrane priloge" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 sata" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Ukupno" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total za %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Sakrij &neaktivne zadatke" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Sakrij &aktivne zadatke" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Sakrij &kompletirane zadatke" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Pokaži/sakrij kompletirane zadatke" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Novi zadatak..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Opis" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Tema" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritet" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Međusobno isključivo" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Podkategorije" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Potraži" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Lokacija" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datumi" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Datum dospijeća" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Datum dovršetka" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Podsjetnik" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Ponavljanje" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Napredak" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Postotak kompletiran" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ne" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Da" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budžet" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Utrošeno vrijeme" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Satnica" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Prihod" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Napor" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorije" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Prilozi" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Bilješke" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Uredi zadatak" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Zadatak" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Početak" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stop" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nijedan" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Dnevno" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mjesečno" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Sedmično" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Godišnje" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", svaki" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dan(i)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "period," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "sedmica(e)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mjesec(i)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "godina(e)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Poništi" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Molimo preuzmite i instalirajte Bonjour za Windows sa\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple web stranice" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour podrška za Linux je obično obezbijeđen od\n" "Avahi" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Možete pronaći detalje za vašu distribuciju ovdje" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "U redu" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Datoteke" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Auto spremanje nakon svake promjene" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Uvijek" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nikad" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimiziraj glavni prozor kad je zatvoren" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Jezik" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Jezik nije pronađen?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Svojstva" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Omogući SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Omogući iPhone sinhronizaciju" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Ponedjeljak" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Nedjelja" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Sat početka radnog dana" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Sat završetka radnog dana" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Lozinka za sinhronizaciju iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Naziv Bonjour servisa" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Otpremi kompletirane zadatke na uređaj" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Urednik" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Provjeri izgovor u urednicima" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Datum/vrijeme podsjetnika" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Korisničko ime/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Naziv baze podataka zadatka" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Dvosmjerni" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Sporo" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Jednosmjerno od klijenta" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Jednosmjerno od servera" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Naziv baze podataka zabilješki" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Pristup" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Obavijesti me o novim verzijama" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Nova verzija %(name)s dostupna" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Upozorenje" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar datoteke (*.ics)|*.ics|Sve datoteke (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML datoteke (*.html)|*.html|Sve datoteke (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV datoteke (*.csv)|*.csv|Tekstualne datoteke (*.txt)|*.txt|Sve datoteke " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Otvori" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Nemoguće otvoriti %s jer ne postoji" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Spoji" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Nemoguće otvoriti %(filename)s\n" "jer je zaključan." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Nemoguće spremiti %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sinhronizacija završena" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Status sinhronizacije" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: spremi promjene?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: datoteka zaključana" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Zatvoren %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Greška kod čitanja %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sinhroniziranje sa %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Vrsta sinhronizacije" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Datoteka" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Izmijeni" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Pogled" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Pomoć" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Izvoz" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Odaberi" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortiraj" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Stupci" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "A&latna Traka" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Pokaži/sakrij statusnu traku" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Statusna&traka" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Zadatak" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategorija" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Napor" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Bilješka" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Sakrij" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Sakrij alatnu traku" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Male slike" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Slike &srednje veličine" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Velike slike" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (podkategorije)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (pod-zadaci)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Stranica" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Podsjetnik" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d zadatak zastario" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "jedan zadatak zastario" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d zadatak dospijeva uskoro" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "jedan zadatak dospijeva uskoro" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Otvori %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Spoji..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Pregled štampanja" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Izvezi kao &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Izvezi kao &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Poništi" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Vrati" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Isijeci\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Uredi SyncML povlastice" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Sakrij ovaj stubac" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Sakrij izabrani stubac" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Uzlazni" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Novi &pod-zadatak..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Označi izabrane zadatke kompletiranim" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Nemoguće poslati e-mail:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Greška u otvaranju priloga" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Pomoć" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Savjeti" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Savjeti u vezi programa" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&O %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Verzija i kontaktna informacija o %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licenca" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licenca" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Obnovi" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Obnovi prozor u prijašnjem stanju" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Danas" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Vrsta" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Svrstaj po predmetu" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Pred&met" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Svrstaj po opisu" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Opis" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Zabilješke" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Prilozi" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Period" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Ukupno provedeno vrijeme" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Ukupan prihod" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Utorak" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Srijeda" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Četvrtak" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Petak" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Subota" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorije" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "Provedeno &vijeme" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Prihod" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Ukupno provedeno vrijeme" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Svrstaj kategorije po predmetu" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Svrstaj kategorije po opisu" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Svrstaj priloge po predmetu" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Svrstaj priloge po opisu" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Svrstaj priloge po kategoriji" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Svrstaj zabilješke po predmetu" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Svrstaj zabilješke po opisu" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Svrstaj zabilješke po kategoriji" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Svrstaj zadatke po predmetu" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Svrstaj zadatke po opisu" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Svrstaj zadatke po kategoriji" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Svrstaj zadatke po datumu dospijeća" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Datum dospijeća" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Zadaci" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Ubaci novu kategoriju" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Uredi povlastice" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Vrati komandu koja je poništena" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Poništi zadnju komandu" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Zatvori aktivnu datoteku" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Napusti %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Otvori %s datoteku" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Spremi aktivnu datoteku" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Pomoć u vezi programa" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Ubaci novu zabilješku" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Štampaj trenutnu datoteku" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Ubaci novi zadatak" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Novi zadatak za danas" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Novi zadatak za sutra" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Svakih %(frequency)d dana" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Svake %(frequency)d nedjelje" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Svaka %(frequency)d mjeseca" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Svake %(frequency)d godine" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Svaki drugi dan" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Svake druge sedmice" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Svaki drugi mjesec" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Svake druge godine" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "sada" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Sinhroniziranje izvora %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sinhronizacija" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Sinhroniziranje. Molimo sačekajte.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Za&tvori" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Zatvori Sve" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Slijedeći" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Prethodni" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Prozor" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Sve datoteke (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Pretraži i predmet i opis" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Ovo je nevažeći regularni izraz." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Nedavne pretrage" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Upozorenje podudarnosti" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Nemoj više pokazivati ovaj dijalog" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/ca.po000066400000000000000000005254741265347643000156210ustar00rootroot00000000000000# Catalan translation for taskcoach # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the taskcoach package. # Ferran Roig , 2006. # # msgid "" msgstr "" "Project-Id-Version: Task Coach català 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Sergi \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: ca\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Error" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "S'han produït errors. Mireu \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "No es pot carregar la configuració des de TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s error d'arxiu" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Editar ubicació dels adjunts" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Editar ubicació \"%s\" dels adjunts." #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Afegir adjunt" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Afegeix fitxer adjunt a \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nou adjunt" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Eliminar adjunt" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Elimina adjunt de \"%s%" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copia" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copia \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Elimina" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Elimina \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Talla" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Talla \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Enganxa" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Enganxa \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Enganxa com a subelement" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Enganxa com a subelement de \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Arossega i deixa anar" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Arrossegar i deixar anar \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Edita temes" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Edita tema \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Edita descripcions" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Edita descriptió \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Canvia icones" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Canvia icona \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Canvia fonts" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Canvia font \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Canviar categoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Commuta categoria de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nova categoria" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Noves subcategories" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nova subcategoria de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nova subcategoria" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Elimina categories" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Elimina categoria \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Arrossega categories" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nova nota" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Noves subnotes" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nova subnota de \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nova subnota" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Elimina notes" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Elimina nota \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Arrossega notes" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Arrossega notes \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Afegeix nota" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Afegeix nota a \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Arrossega tasques" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Elimina tasques" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Elimina tasca \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nova tasca" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nova subtasca" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nova subtasca a \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nova subtasca" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marca la tasca com a enllestida" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marca \"%s\" com a enllestida" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Inicia seguiment" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Inicia segiment \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Atura seguiment" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Atura segiment \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximitza prioritat" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximitza prioritat de \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimitza prioritat" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Augmenta prioritat" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Disminueix prioritat" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Canvia pressupost de \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Errada mentre es desava %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Error al desar" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Obre adjunt" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "No adormis" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Mostra/amaga tasques enllestides" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Tasca nova..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descripció" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Assumpte" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritat" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Dates" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Termini" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data final" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Recordatori" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Periodicitat" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Utilitza els paràmetres globals de l'aplicació" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "No" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Sí" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Voleu marcar com a enllestida la tasca quan totes les subtasques estiguin " "fetes?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Pressupost" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Temps emprat" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Pressupost restant" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Preu per hora" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Preu fixat" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Ingressos" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Procés" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categories" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Adjuncions" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notes" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Edita la tasca" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tasca" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Inici" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Atura" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Inicia seguiment des de la darrera aturada" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Cap" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Diari" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mensualment" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Cada setmana" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Anualment" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "Manté les dates al mateix dia de la setmana" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", cada" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dia(es)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "període," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "setmana(es)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mes(os)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "any(s)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancel·la" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "D'acord" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Fitxers" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Desa automàticament després de cada canvi" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Desa configuració (%s.ini) al mateix\n" "directori del programa" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Directori base de les adjuncions" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Quan afegeixi una adjunció, intenta fer-ho\n" "el camí relatiu d'aquesta" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Comportament de les finestres" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Mostrar la pantalla d'inici quant comenci" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Mostra consells quant comenci" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Inicia amb la pantalla principal amb icones" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Sempre" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Mai" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Si s'ha iconitzat la darrera versió" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Quan comenci comprova si hi ha una versió nova del %(name)s" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Amaga la pantalla principal quan iconitzi" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimitza la finestra principal quan tanqui" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Ressalta el rellotge a la barra de tasques en procés" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Idioma" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "No trobeu l'idioma?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Característiques" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hora d'inici de la feina diària." #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hora de plegar de la feina diària" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Mostra un missatge emergent quan la descripció\n" "d'algun element faci referència a això" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Marca la tasca principal com a enllestida quan totes les dependents estiguin " "fetes" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Comprova ortografia" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Recordatori data/hora" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Adorm" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Avisa'm si hi ha una versió nova." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Disponible una versió nova de %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Disponible la versió %(version)s de %(name)s des de" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Arxius %s (*.tsk)|*.tsk|Arxius Backup (*.tsk.bak)|*.tsk.bak|Tots els arxius " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Arxius iCalendar (*.ics)|*.ics|Tots els arxius (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Arxius HTML (*.html)|*.html|Tots els arxius (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Arxius CSV (*.csv)|*.csv|Arxius de Text (*.txt)|*.txt|Tots els arxius " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Obre" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Obre %(nrtasks)d tasques des de %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "%s inexistent" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Fusiona" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s fusionat" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "No heu desat els canvis.\n" "Voleu desar abans de tancar?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: desar canvis?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Tancat %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Tasques %(nrtasks)d desades a %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Errada al llegir %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Benvingut/da a %(name)s versió %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Arxiu" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Edita" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Visualitza" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "A&juda" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exporta" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Selecciona" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "Finestra &nova" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Finestra següent \tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Finestra anterior\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtre" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Endreça" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Columnes" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Opcions d'estructura" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Barra d'eines" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Mostra/amaga la barra d'estat" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Barra de tasques" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tasca" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Obre una finestra nova amb pestanya que mostri aquesta tasca" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categoria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Obre una finestra nova amb pestanya que mostri les categories" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Procés" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Nota" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Obre una finestra nova amb pestanya que mostri les notes" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Amaga" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Amaga la barra d'eines" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Icones petites" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Icones petites (16x16) a la barra d'eines" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Icones &mitjanes" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Icones mitjanes (22x22) a la barra d'eines" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "Icones grans" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Icones grans (32x32) a la barra d'eines" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Inicia seguiment de procés" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtasques)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioritat" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Pàgina" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tasques fora de termini" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "una tasca fora de termini" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "seguiment del procés per %d tasques" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Obre...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Obre %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Fusiona..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Fusiona tasques des d'un altre arxiu al actual" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Tanca\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Desa\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "A&nomena i desa...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Mostra una visió prèvia de com quedarà imprès el full" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Vista prèvia" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exporta com &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exporta com &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Surt\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Desfés" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Refés" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Retalla\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copia\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Enganxa\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Tot\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Neteja selecció" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "De-selecciona tots els elements" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Canvia nom de la finestra..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Canvia el nom de la finestra seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Títol nou per la finestra:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Canvia nom de la finestra" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "A&maga aquesta columna" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Amaga la columna seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Desplega tots els elements\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Plega tots els elements\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascendent" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Ordre ascendent (marcat) o descendent (desmarcat)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Quan compareu text, es pot distingir entre majúscules i minúscules (marcar) " "o no (desmarcat)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "&Ordena primer per estatus" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Ordena les tasques primer per estatus (actiu/inactiu/enllestit)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Mostra/Amaga tasques amb subtasques a la llista de mode" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "&Subtasca nova..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marca les tasques seleccionades com a enllestides" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Comença el seguiment de procés per a %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" "Selecciona una tasca via menú i inicia seguiment del procés d'aquesta" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Atura el seguiment del procés de les tasques actives" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Errada al obrir adjunt" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Continguts d'a&juda\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Ajuda" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Consells" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Consells del programa" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Quant %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versió i informació de contacte quant a %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Llicència" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s llicència" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restaura" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restaura la finestra al seu estat previ" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detalls del procés" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Procés diari" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Procés mensual" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Procés setmanal" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtra les categories seleccionades" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtra-ho en qualsevol categoria seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Avui" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Ordena per assumpte" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Assumpte" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Ordena per descripció" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Descripció" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Mostra/Amaga las columna de descripció" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Adjuncions" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categories: %d seleccionades, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Estatus: %d filtrat" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Període" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Temps total emprat" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Total ingressos" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categories" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Mostra/amaga las columna de categories" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Temps emprat" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Mostra/amaga columna del temps emprat" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Ingressos" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Mostra/amaga columna d'ingressos" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Mostra/amaga columna d'ingressos totals" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Estatus: %d seguiment" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Endreça notes per assumpte" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Endreça notes per descripció" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Ordena tasques per termini" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Termini" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Endreça tasques per data final" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Data final" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Endreça tasques per repeticions" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Repetició" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Endreça tasques per pressupost" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Pressupost" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Endreça tasques per temps emprat" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Pressupost &restant" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Endreça tasques per pressupost restant" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Endreça tasques per prioritat" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Endreça tasques per preu hora" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Preu hora" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Endreça tasques per preu fixat" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Preu &fixat" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Endreça tasques per ingressos" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Endreça tasques per recordatori de data i hora" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Recordatori" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "Ass&umpte" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Endreça notes per categoria" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notes: %d seleccionades, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Estatus: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tasques: %d seleccionades, %d visibles, %d total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tasques" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Dates" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Mostra/amaga columnes de dates relacionades" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Mostra/amaga columna pendents" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Mostra/amaga columna de data final" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Mostra/amaga columna de repeticions" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Mostra/amaga totes les columnes relacionades amb el pressupost" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Mostra/amaga columna de pressupost" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Mostra/amaga columna pressupost restant" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finances" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Mostra/amaga totes les columnes relacionades amb finances" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Mostra/amaga columna de preu hora" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Mostra/amaga columna del preu fixat" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Mostra/amaga columna d'adjunts" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Mostra/Amaga columna de prioritat" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Mostra/amaga columna recordatori" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s pot desfer i refer tantes vegades com calgui. Qualsevol canvi que " "feu pot ser desfet. Seleccioneu 'Edita' -> 'Desfés i Edita' -> 'Refés' per " "anar endavant i endarrere en el vostre historial de canvis." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s està disponible en diversos idiomes. Seleccione 'Edita' -> " "'Preferències' per triar el vostre preferit. Si no hi és pas, o bé cal " "revisar la traducció, podeu ajudar-nos en la traducció de %(name)s. Visiteu " "%(url)s per a més informació de com podeu ajudar-nos." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Si introduïu una adreça URL (ex. %(url)s) en una tasca o descripció del " "procés és converteix automàticament en un enllaç. Fent clic al enllaç " "s'obrirà la URL en el vostre navegador web." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Podeu arrossegar i deixar les tasques en la finestra d'estructura per " "reorganitzar la relació principal-dependent entre les tasques. El mateix " "succeeix amb les categories." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Per adjuntar arxius a les tasques podeu arrossegar-los des del navegador " "d'arxius a la tasca. Arrossegant l'arxiu sobre la pestanya provocarà que " "s'obri, arrossegant l'arxiu sobre una tasca plegada (sobre el signe +) en la " "finestra d'estructura provocarà que la tasca es desplegui i mostri les " "subtasques." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "El contingut de la impressió quan seleccioneu 'Arxiu' -> 'Imprimeix' " "dependrà de la finestra actual. Tot el que aparegui la finestra i amb " "l'ordre que es mostri és tal i com s'imprimirà. El mateix succeeix amb les " "columnes visibles, ordres, filtres. etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Si feu clic amb el botó esquerre del ratolí sobre l'encapçalament d'una " "columna, aquesta quedarà ordenada. Clicant un altre cop canviareu l'ordre " "entre ascendent o descendent. Fent clic amb el botó dret a l'encapçalament " "d'una columna podreu amagar-la o mostrar-ne d'altres." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Insereix una categoria nova" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Retalla els elements seleccionats i els deixa al porta-retalls" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copia els elements seleccionats al porta-retalls" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Enganxa elements des del porta-retalls" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Edita preferències" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Refà la darrera ordre que s'ha desfet" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Selecciona tots els elements de la vista actual" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Desfà la darrera ordre" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Afegeix un procés nou" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Inicia el seguiment del procés per a una tasca seleccionada" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Tanca l'arxiu actual" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Tanca %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Obre com arxiu %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Desa arxiu actual" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Desa l'arxiu actual amb un nom nou" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Ajuda del programa" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Afegeix una nota" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Imprimeix l'arxiu actual" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Configura la pàgina per imprimir-la" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Mostra tots els elements (treu filtres)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Disminueix la prioritat de les tasques seleccionades" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Augmenta la prioritat de les tasques seleccionades" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Prioritza al màxim les tasques seleccionades" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Dóna la prioritat menor a les tasques seleccionades" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Insereix una tasca nova" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Plega tots els elements amb els dependents" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Desplega tots els elements amb dependents" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activa la següent finestra oberta" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activa la finestra oberta anteriorment" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Cada %(frequency)d dies" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Cada %(frequency)d setmanes" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Cada %(frequency)d mesos" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Cada %(frequency)d anys" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Cada dos dies" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Cada dues setmanes" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Cada dos mesos" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Un cop a l'any" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "ara" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Edita" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Tots els arxius (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Distingeix entre majúscules i minúscules quan filtra" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" "Inclou sub-elements dels elements marcats en els resultats de la cerca" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Cerques recents" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "No es pot cercar en aquesta finestra" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Error en obrir l'URL" taskcoach-1.4.3/i18n.in/cs.po000066400000000000000000007055061265347643000156370ustar00rootroot00000000000000# Czech translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-11-09 14:37+0000\n" "Last-Translator: Pavel Borecki \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: cs\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Byly zjištěny chyby. Prohlédněte si soubor taskcoachlog.txt ve své složce " "Dokumenty." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Chyba" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Vyskytly se chyby. Prohlédněte si %s" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Nelze načíst nastavení ze souboru TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Chyba v souboru %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "%s se stal nejvyšší úrovní protože jeho nadřazený byl místně smazán." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "V %s zjištěny konflikty.\n" "Byla použita místní verze." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Změnit umístění příloh" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Změnit umístění přílohy %s" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Přidat přílohu" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Přidat přílohu k %s" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nová příloha" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Odstranit přílohu" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Odstranit přílohu u %s" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopírovat" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopírovat %s" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Smazat" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Smazat %s" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Vyjmout" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Vyjmout %s" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Vložit" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Vložit %s" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Vložit jako podpoložku" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Vložit jako podpoložku položky %s" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Táhnout a pustit" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Přetáhnout %s" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Upravit předměty" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Upravit předmět %s" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Upravit popisy" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Upravit popis %s" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Změnit ikony" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Změnit ikonu %s" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Změnit písma" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Změnit písmo %s" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Změnit barvy popředí" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Změnit barvu popředí %s" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Změnit barvy pozadí" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Změnit barvu pozadí %s" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Přepnout kategorii" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Přepnout kategorii %s" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nová kategorie" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nové podkategorie" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nová podkategorie kategorie %s" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nová podkategorie" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Upravit výhradní podkategorie" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Upravit výhradní podkategorie kategorie %s" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Odstranit kategorie" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Odstranit kategorii %s" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Přetáhnout kategorie" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nový pracovní plán" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Nový pracovní plán %s" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Odstranit pracovní plán" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Odstranit úsilí %s" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Změnit úkol pracovního plánu" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Změnit úkol pracovního plánu %s" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Změnit počáteční datum a čas pracovního plánu" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Změnit počáteční datum a čas pracovního plánu %s" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Změnit konečné datum a čas pracovního plánu" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Změnit datum a čas okamžiku, do kterého se doposud pracovalo na %s" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nová poznámka" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nové podpoznámky" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nové vnořené poznámky %s" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nová vnořená poznámka" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Smazat poznámky" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Smazat poznámku %s" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Přetáhnout poznámky" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Přetáhnout poznámku %s" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Přidat poznámku" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Přidat poznámku k %s" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Přidat vnořenou poznámku" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Přidat vnořenou poznámku k %s" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Odstranit poznámku" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Odstranit poznámku z %s" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Přetáhnout úkoly" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Smazat úkoly" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Smazat úkol %s" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nový úkol" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nové podúkoly" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nový podúkol %s" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nový podúkol" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Označit úkoly jako splněné" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Označit \"%s\" jako dokončený" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Onačit úkol jako aktivní" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Onačit \"%s\" jako aktivní" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Onačit úkol jako neaktivní" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Označit \"%s\" jako neaktivní" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Začít sledovat" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Začít sledovat \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Přestat sledovat" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Přestat sledovat \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Nastavit nejvyšší prioritu" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Nastavit maximální prioritu \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Nastavit nejnižší prioritu" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Nastavit minimální prioritu \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Zvýšit prioritu" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Zvýšit prioritu \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Snížit prioritu" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Snížit prioritu \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Změnit prioritu" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Změnit prioritu \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Přidat poznámku k úkolům" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Změnit plánované datum zahájení" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Změnit plánované datum zahájení \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Změnit termín" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Změnit termín \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Změnit skutečné datum zahájení" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Změnit skutečné datum zahájení \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Změnit datum dokončení" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Změnit datum dokončení \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Změnit data/čas připomenutí" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Změnit data/čas připomenutí \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Změnit opakování" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Změnit opakování \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Změnit procento dokončení \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Změnit, když jsou úkoly označeny jako dokončené" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Změnit, když je \"%s\" označeno jako dokončený" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Změnit rozpočet" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Změnit rozpočet %s" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Změnit hodinové sazby" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Změnit hodinové sazby \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Změnit pevné sazby" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Změnit pevné sazby \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Přepnout podmínku" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Přepnout podmínku \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Chyba při čtení nastavení %s-%s ze souboru %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Hodnota je: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Chyba je: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "%s použije výchozí hodnotu nastavení a měl by normálně pokračovat." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Chyba nastavení" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Chyba při ukládání %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Chyba při ukládání" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Zpráva Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nová příloha..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Vložit novou přílohu" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Otevřít přílohu" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Otevřít vybrané přílohy" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minut" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Neuspávat" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minut" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minut" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minut" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minut" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 hodiny" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minut" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hodina" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 hodiny" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 hodiny" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 hodiny" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 hodin" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 hodin" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 hodin" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 hodin" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 hodin" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 hodin" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 hodin" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 týdny" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 týden" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Celkem" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Celkem za %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Nové úsilí...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Neaktivní úkoly" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "&Skrýt neaktivní úkoly" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Neaktivní úkoly: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Zobrazit/skrýt neaktivní úkoly (nedokončené úkoly bez skutečného data " "zahájení)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Opožděné úkoly" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Skrýt &opožděné úkoly" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Opožděné úkoly: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Zobrazit/skrýt opožděné úkoly (neaktivní úkoly s naplánovaným datem zahájení " "v minulosti)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktivní úkoly" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktivní úkoly: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Skrýt &aktivní úkoly" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Zobrazit/skrýt aktivní úkoly (nedokončené úkoly se skutečným datem zahájení " "v minulosti)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Úkoly blížící se termínu" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Úkoly blížící se termínu: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Skrýt úkoly &blížící se termínu" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Zobrazit/skrýt úkoly blížící se termínu (nedokončené úkoly mající termín v " "blízké budoucnosti)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Úkoly po termínu" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Skrýt úkoly &po termínu" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Úkoly po termínu: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Zobrazit/skrýt úkoly po termínu (nedokončené úkoly mající termín v minulosti)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Dokončené úkoly" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Dokončené úkoly: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Skrýt &dokončené úkoly" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Zobrazit/skrýt dokončené úkoly" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nový úkol..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Šipka dolů" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Šipka dolů se stavem" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Modré šipky do kruhu" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Zelené šipky do kruhu" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Šipka nahoru" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Šipka nahoru se stavem" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Kniha" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Knihy" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Krabice" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Beruška" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Dort" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Kalkulačka" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalendář" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Kočka" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Kompaktní disk (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Grafy" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Rozhovor" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Zaškrtnutí" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Zaškrtnutí" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Hodiny" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Budík" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopky" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Ozubené kolo" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Ozubená kola" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Stolní počítač" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Přenosný počítač" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Kapesní počítač" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Červený kříž" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Kostka" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokument" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Modrá planeta" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Zelená planeta" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Obálka" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Obálky" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Modrá složka" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Světle modrá složka" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Zelená složka" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Šedá složka" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Oranžová složka" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Fialová složka" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Červená složka" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Žlutá složka" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Modrá složka se šipkou" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Srdce" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Srdce" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Zelený dům" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Červený dům" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Klíč" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Klíče" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Žárovka" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Otazník" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informace" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Modrá kontrolka" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Světle modrá kontrolka" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Šedá kontrolka" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Zelená kontrolka" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Světle zelená kontrolka" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Oranžová kontrolka" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Fialová kontrolka" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Červená kontrolka" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Žlutá kontrolka" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Záchranný kruh" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Uzamčený zámek" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Odemčený zámek" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupa" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piáno" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Poznámka" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Sponka" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Tužka" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Osoba" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Lidé" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Doklad" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Mluvící osoba" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Výstražná značka" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Mínus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Červená hvězda" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Žlutá hvězda" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semafor" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Koš" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Blesk" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Deštník" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Polojasno" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Hasák" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Bez ikony" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Soubor" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Úplný popis umístění" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Datum" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Obnovit" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Zavřít" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Zvolte umístění, do kterého obnovit" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Zpráva od vývojářů %s" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Viz:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Popis" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Úpravou tohoto změníte všechny subjekty" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Předmět" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Úpravou tohoto změníte všechny popisy" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Datum vytvoření" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Datum změny" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priorita" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Vzájemně se vylučující" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Podkategorie" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Úpravou tohoto změníte umístění všech příloh" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Procházet" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Umístění" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Vzhled" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Barva popředí" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Barva pozadí" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Písmo" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ikona" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Termíny" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Plánované datum zahájení" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Termín dokončení" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Skutečné datum zahájení" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Datum dokončení" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Upomínka" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Opakování" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Postup" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Dokončeno procent" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Použít nastavení aplikace" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ne" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ano" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Označit úkol za dokončený v případě dokončení všech vnořených úkolů?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Rozpočet" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Strávený čas" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Z rozpočtu zbývá" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Hodinová sazba" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fixní část mzdy" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Příjmy" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Vynaložená práce" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorie" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Přílohy" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Poznámky" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Podmínky" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Upravit úkol" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Úkol" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Týdnů" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Dnů" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hodin(a)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minut(a)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Zastavit" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Začít měřit od posledního přerušení" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Zastavit sledování nyní" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Varování: začátek musí být dřív než konec" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Mnoho úkolů" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (úkol)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Mnoho kategori" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (kategorie)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Mnoho poznámek" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (poznámka)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Mnoho příloh" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (příloha)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Práce, vynakládané na vícero úkolů" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (vynaložená práce)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Použít písmo:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Použít barvu:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Žádné" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Denně" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Měsíčně" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Týdně" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Ročně" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "udržení dat ve stejném dnu v týdnu" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", každý" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Zastavit po" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "opakování" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Naplánovat další opakování na základě" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "předešlé plánované počáteční datum zahájení a/nebo dokončení" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "poslední datum dokončení" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "den(dny)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "interval," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "týdnů" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "měsíc(e/ů)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "rok(ů)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportovat položky z:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Exportovat pouze vybrané položky" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Sloupce, které exportovat:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Data a časy umístěte do oddělených sloupců" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Zapsat informaci o stylech do samostatného souboru CSS" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Jestliže soubor CSS pro exportovaný soubor existuje, %(name)s ho nepřepíše. " "To Vám umožňuje zachovat informace pro další export, aniž byste ztratili " "Vaše změny." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportovat do CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportovat ve formátu iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportovat jako ToDo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Dotykové zařízení iPhone nebo iPod se poprvé\n" "snaží synchronizovat se se souborem úlohy.\n" "Jaký druh synchronizace chcete použít?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Obnovit z počítače" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Obnovit ze zařízení" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Storno" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Povolili jste synchronizaci s iPhone, která\n" "vyžaduje Bonjour. Bonjour patrně nemáte\n" "nainstalován v systému." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Prosím stáhněte a nainstlaujte Bonjour pro Windows z\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Web Applu" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Podpora protokolu Bonjour je v GNU/Linux typicky poskytována komponentou " "Avahi" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Zde můžete najít detaily dle vašeho distra" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Pamatujte, že pod některými systémy (Fedora) můžete být\\n\n" "nuceni nainstalovat balíky avahi-compat-libdns_sd\\n\n" "a Avahi, jinak to nebude fungovat." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "Dále, pokud máte firewall, ověřte, že máte otevřeny porty 4096-4100." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Toto nastavení se projeví až po restartu %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Toto nastavení lze potlačit v jednotlivých úkolech\n" "pomocí dialogového okna úpravy úkolu." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Soubory" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Automaticky uložit po každé změně" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Automaticky načíst když se soubor na disku změní" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Chytré sledování souborového systému" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Pokusit se zjistit změny souboru úkolu v reálném čase.\n" "Toto nezaškrtávejte, pokud se soubor nachází v síťovém sdílení.\n" "Po tomto musíte %s restartovat." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Uložit nastavení (%s.ini)\n" "do složky aplikace" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Pro spouštění %s z přenosného média" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Adresář pro přílohy" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Při přidání přílohy, vyzkoušet\n" "možnost relativní cesty." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Před uložením automaticky importovat z" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Formát Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Před uložením %s automaticky importuje úkoly\n" "ze souboru Todo.txt se stejným názvem, jako\n" "soubor úkolu, ale s příponou .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Při uložení automaticky exportovat do" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Při uložení, %s automaticky exportuje úkoly\n" "do souboru Todo.txt se stejným názvem, jako\n" "soubor úkolu, ale s příponou .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Chování okna" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Při spouštění aplikace zobrazit úvodní obrazovku" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Při spouštění aplikace zobrazit okno s tipy" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Spustit minimalizované v systémové liště" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Vždy" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nikdy" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Pokud bylo minimalizované při předchozím ukončení" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Kontrolovat nové verze %(name)s při startu" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Při spuštění zkontrolovat zprávy od vývojářů %(name)s" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Schovat hlavní okno aplikace při minimalizaci" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimalizovat hlavní okno aplikace při zavření" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Znázorňovat zaznamenávání odpracovaného času tikáním hodin, nacházejích se " "na listě úkolů" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Jazyk" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Převzít nastavení jazyka z operačního systému" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Pokud aplikace ještě není přeložena do vašeho jazyka, nebo je na překladu co " "zlepšit, pomoc vítáme. Viz:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Jazyk nebyl nalezen?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Vzhled úkolu" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Tyto nastavení vzhledu lze potlačit v jednotlivých úkolech pomocí " "dialogového okna úpravy úkolu." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funkce" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Všechna nastavení na tomto panelu vyžadují restart %s aby nabyla účinku" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Povolit SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Povolit synchronizaci iPhonu" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Použít správu sezení X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Začátek pracovního týdne" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "pondělí" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "neděle" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hodina, kterou začíná pracovní den" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hodina, kterou končí pracovní den" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Konec dne" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Použít gradienty v zobrazeních kalendáře.\n" "Toto může zpomalit Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Ve vyskakovacích menu pro výběr času (např. pro nastavení \n" "času zahájení úsilí) bude %(name)s navrhovat časy pomocí \n" "tohoto nastavení. Čím menší je počet minut, tím více dob \n" "bude navrhnuto. Samozřejmě můžete také zadat jakoukoli \n" "dobu, kterou chcete." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Doba upozornění při nečinnosti" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Pokud po tuto dobu (v minutách) nebude patrná žádná aktivita uživatele, \n" "aplikace %(name)s zobrazí dotaz, jak postupovat se záznamem odváděné práce." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "U položek pracovního plánu uvádět časy v desetinném vyjádření." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Zobrazit jednu hodinu, patnáct minut jako 1.25 namísto 1:15\n" "Oproti šedesátkové soustavě se takto snáze počítá – užitečné např. pro " "vyúčtování faktur." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Při umístění ukazatele na prvek ukázat \\n\n" "bublinu s jeho popisem" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Termíny úkolu" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Označit nadřazený úkol za hotový, pokud jsou dokončeny všechny vnořené úkoly" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" "Počet hodin, po kterých jsou úkoly považovány za 'blížící se termínu'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nic" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Změna plánovaného data zahájení změní datum termínu" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Změna data termínu změní plánované datum zahájení" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Co provést s plánovaným datem zahájení a termínem, pokud je druhý změněn" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Předvolba" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Navrhnout" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Dnes" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Zítra" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Pozítří" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Příští pátek" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Příští pondělí" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Začátek dne" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Začátek pracovního dne" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Aktuální čas" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Konec pracovního dne" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Výchozí datum a čas plánovaného zahájení" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Výchozí datum a čas termínu" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Výchozí datum a čas skutečného zahájení" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Výchozí datum a čas dokončení" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Výchozí datum a čas připomínky" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Nové úkoly začínají s vyplněnými a zkontrolovanými \"Přednastavenými\" daty " "a časy. \"Navrhovaná\" data a časy jsou vyplněna,\n" "ale nezkontrolována.\n" "\n" "\"Začátek dne\" je půlnoc a \"Konec dne\" je těsně před půlnocí. Když toto " "používáte, prohlížeči úkolů kryjí čas a zobrazují pouze datum.\n" "\n" "\"Začátek\" a \"Konec pracovního dne\" používají pracovní dny zadané v kartě " "Funkce tohoto dialogového okna nastavení." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Připomínky úkolu" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Používaný systém oznámení pro upomínky" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Ať počítač sdělí připomínku" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Vyžaduje espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Výchozí čas odložení po použití upomínky" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Časy odložení, které budou nabídnuty v okně připomenutí úkolu" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Helso pro synchronizaci s iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "Při synchronizaci zadejte toto heslo v iPhone pro jeho ověření" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Název služby Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Nahrát do zařízení dokončené úkoly" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Zobrazit protokol o synchronizaci" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Kontrolovat v editoru pravopis" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Písmo, které použít v poli popisu v dialogových oknech úprav" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Získat předměty e-mailu z Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Při tažení e-mailu z Mail.app se pokusit získat jeho předmět.\n" "To může trvat až 20 vteřin." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "GNU/Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Zaměřit předmět úkolu v editoru" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Při otevírání editoru úkolu, vyberte předmět úkolu a zaměřte ho.\n" "Toto přepíše výběr X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "připomínka %(name)s - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Upomínka (datum/čas)" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Uspat" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Také nastavit tuto dobu uspání jako výchozí pro další upomínky." #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Označit úkol jako splněný" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Server SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Vlastní" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Založeno na Horde" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL serveru SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Uživatelské jméno/identifikátor" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Zapnout synchronizaci úkolů" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Jméno databáze úkolů" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Upřednostňovaný režim synchronizace" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Obousměrná" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Pomalu" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Jednosměrně z klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Obnovit z klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Jednosměrně ze serveru" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Obnovit ze serveru" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Zapnout synchronizaci poznámek" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Název databáze poznámek" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Přístup" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Šablona nového úkolu" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Náhled" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Nástroje k dispozcici" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Zobrazit tento nástroj v liště" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Skrýt tento nástroj z lišty" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Nástroje" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Přesunout nástroj nahoru (doleva na liště)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Přesunout nástroj dolů (doprava na liště)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Změňte pořadí tlačítek v liště jejich přetažením v tomto seznamu." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Oddělovač" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Mezera" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Upozorňovat na nové verze" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Nová verze %(name)s je k dispozici" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Používáte %(name)s verzi %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Verze %(version)s %(name)s je nyní přístupný z" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s je aktuální" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s je aktuální ve verzi %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Nebylo možno nalézt poslední verzi" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Nebylo možno zjistit poslední verzi %(name)s" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Předprodukční verze" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Používáte %(name)s předprodukční verze %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Poslední vydanou verzí %(name)s je %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Varování" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach má známé problémy se správou sezení prostředí XFCE4.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Pokud při spuštění dojde k náhodnému zaseknutí, odškrtněte\n" "prosím, \"Použít správu sezení X11\" v kartě Funkce v nastavení.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Nezobrazovat toto okno při startu" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Od %s nedošlo k žádnému uživatelskému vstupu. Byl sledován\n" "následující úkol:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Nedělat nic" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Zastavit na %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Zastavit na %s a pokračovat hned" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Oznámení" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "Soubory %s (*.tsk)|*.tsk|Všechny soubory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s Soubory TaskCoach (*.tsk)|*.tsk|Záložní soubory " "(*.tsk.bak)|*.tsk.bak|Všechny soubory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Soubory iCalendar (*.ics)|*.ics|Všechny soubory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML soubory (*.html)|*.html|Všechny soubory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV soubory (*.csv)|*.csv|Textové soubory (*.txt)|*.txt|Všechny soubory " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Soubory Todo.txt (*.txt)|*.txt|Všechny soubory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Otevřít" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Nahráno %(nrtasks)d úkolů z %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Nelze otevřít %s, protože neexistuje" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Sloučit" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Nemohu otevřít %(filename)s\n" "protože je zamčený." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Soubory %(filename)s sloučeny" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Uložit jako" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Uložit výběr" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Nelze uložit %s\n" "Uzamčeno jinou instancí %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Nemohu uložit %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importovat šablonu" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s soubory šablony (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Nelze importovat šablonu %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Exportováno %(count)d položek do %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Dokončena synchronizace" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Stav synchronizace" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Nelze otevřít %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Soubor s názvem %s již existuje.\n" "Chcete jej nahradit?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Máte neuložené změny.\n" "Uložit před ukončením?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: uložit změny?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Nelze otevřít %s, protože je zamčený\n" "\n" "To může znamenat, že buď běží jiná instance programu\n" "a má tento soubor otevřený, nebo předchozí instance\n" "programu spadla. Pokud neběží žádná jiná instance,\n" "lze bez rizika zámek rozbít.\n" "\n" "Rozbít zámek?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: soubor uzamčen" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Nelze získat zámek protože uzamykání není v umístění %s\n" "podporováno.\n" "Otevřít %s jako odemknutý?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Zavřeno %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Uloženo %(nrtasks)d úkolů do %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Nemohu otevřít %(filename)s\n" "protože byl vytvořen novější verzí %(name)s.\n" "Prosím aktualizujte %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Chyba při čtení %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Nyní se otevře správce záloh, pomocí kterého bude možné obnovit starší verzi " "tohoto souboru." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronizování..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronizuji s %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Vítejte v nové verzi %(name)s - %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Nelze obnovit rozložení panelů z TaskCoach.ini:\n" "%s\n" "\n" "Bude použito výchozí rozložení.\n" "\n" "Pokud k tomuto dojde znovu, vytvořte si prosím kopii tohoto souboru před " "zavřením programu, vytvořte hlášení o chybě a připojte k němu zkopírovaný " "soubor." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "chyba nastavení %s" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Typ synchronizace" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Dotykové zařízení iPod se pokusilo synchronizovat se\n" "se souborem úkolů, ale vyjednávání skončilo chybou.\n" "Prosíme nahlašte chybu." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Soubor" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Upravit" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Zobrazit" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nový" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "Č&innosti" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "Náp&ověda" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Import" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportovat" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Vybrat" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Nový prohlížeč" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Aktivovat další prohlížeč\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Aktivovat &předchozí prohlížeč\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Režim" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtr" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Setřídit" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "Sloup&ce" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Zaokrouhlování" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Nastavení s&tromu" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Nástr&oje" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Zobrazit/skrýt stavový řádek" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "S&tavový řádek" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "Ú&kol" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Otevřít novou záložku s prohlížečem, který zobrazí úkoly" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "&Statistiky úkolu" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Otevřít novou kartu s prohlížečem zobrazující statistiky úkolů" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Čtvercová &mapa úkolů" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Otevřít novou záložku s prohlížečem, který zobrazuje úkoly ve čtvercové mapě" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "&Osa času" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Otevřít v nové záložce s prohlížečem, který zobrazuje časovou osu úkolů a " "práce" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalendář" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Otevřít nový panel s prohlížečem zobrazující úkoly v kalendáři." #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hierarchický kalendář" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Otevřít nový panel s prohlížečem, který zobrazí hierarchii úloh v kalendáři" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategorie" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Otevřít novou záložku s prohlížečem, který zobrazuje kategorie" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "Ú&silí" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Otevřít novou záložku s prohlížečem, který zobrazuje práci" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Pracovní plán pro zvolené úlohy" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Otevři novou záložku, která zobrazuje práci na vybraném úkolu" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "Poz&námka" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Otevřít novou záložku, která ukazuje poznámky" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "Sc&hovat" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Skrýt nástrojovou lištu" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Malé obrázky" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Malé obrázky (16x16) na nástrojové liště" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Obrázky nor&Mální velikosti" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Obrázky střední velikosti (22x22) na nástrojové liště" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Velké obrázky" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Velké obrázky (32x32) na nástrojové desce" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nový úkol ze š&ablony" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Přepnout kategorii" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Změnit &prioritu úkolu" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Začít sledovat úsilí" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (podkategorie)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (podúkoly)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priorita" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Strana" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "Připomínka %s" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d úkolů po termínu" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "jeden úkol po termínu" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d úkolů, které mají být brzy odevzdány" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "jeden úkol, který má být brzy odevzdán" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "sledování %s" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "sleduji práci pro %d úkolů" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Otevřít…\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Otevřít %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "Sloučit…" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Spoj úlohy z jiného souboru s aktuálním souborem" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Zavřít\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Uložit\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Sloučti změny &disku\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Uložit j&ako...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "&Uložit zvolené úkoly do nového souboru s úkoly..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Uložit zvolené úkoly do jiného souboru s úkoly" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Uloži&t vybraný úkol jako šablonu" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Uložit vybraný úkol jako šablonu úkolů" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importovat šablonu..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importovat novou šablonu ze souboru šablony" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Upravit šablony..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Upravit stávající šablony" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Upravit šablony" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Vymazat odstraněné položky" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Opravdu smazat smazané úkoly a poznámky (viz kapitola SyncML v nápovědě)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Vymazání odstraněných položek nelze vrátit zpět.\n" "Pokud chcete později znovu použít\n" "funkci SyncML s již dřívě použitým serverem,\n" "tyto položky se pravděpodobně vrátí zpět.\n" "\n" "Chcete je stále smazat?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Nastavení &stránky...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Náhled tisku..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Zobraz náhled jak bude vypadat tisk" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Náhled tisku" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Tisk...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Spravovat zálohy…" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Spravovat všechny zálohy souborů s úkoly" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportovat jako &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exportovat položky z prohlížeče ve formátu HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportovat jako &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Exportovat položky z prohlížeče ve formátu CSV (čárkami oddělené hodnoty)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exportovat jako &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exportovat položky z prohlížeče ve formátu iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exportovat jako &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Exportovat položky z prohlížeče ve formátu Todo.txt (viz todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importovat CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importovat úkoly ze souboru CSV (čárkami oddělené hodnoty)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importovat CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Zvolený soubor je prázdný. Prosím vyberte jiný." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importovat Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "&Importovat úkoly ze souboru Todo.txt (viz todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importovat Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Synchronizace S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synchronizovat s SyncML serverem" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Ukončit \tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Zpět" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Z&novu" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Vyjmou&t\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "Kopírovat (&C)\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "Vložit (&P)\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "&Vložit jako podpoložku\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Nastavení...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Nastavení" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Nastavení &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Editovat možnosti SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Nastavení SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Upravit lištu" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Přizpůsobit" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Vše\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "V&yčistit výběr" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Odznačit všechny položky" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "Vyčistit všechny &filtry\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Resetovat všechny kategorie\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Zobrazit/skrýt položky patřící %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "Přejmenovat p&rohlížeč..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Přejmenovat vybraný prohlížeč" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nový název pro prohlížeč" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Přejmenovat prohlížeč" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "Sc&hovej sloupec" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Schová označený sloupec" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Rozbal vš&echny položky\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "Sluč vše&chny položky\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Vzestupně" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Uspořádat vzestupně (zaškrtnuto) nebo sestupně (nezaškrtnuto)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "&Třídění podle velikosti písmen" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Při prorovnávání textu srovnej položky s ohledem na malá a velká písmena " "(zaškrtnuto) nebo bez ohledu na ně (nezaškrtnuto)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Uspořádej nejprve podle stavu (&f)" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Uspořádej podle stavu (aktivní/neaktivní/hotové)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Skrýt &dokončené úkoly" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Zobraz/skryj úkoly včetně podúkolů jako seznam" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Upravit...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Upravit zvolenou položku" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "&Upravit sledovaný úkol...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Upravit aktuálně sledovaný(é) úkol(y)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Smazat\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Smazat zvolené položky" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Vytvořit nový úkol ze šablony" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nový úkol s vybranými &kategoriemi..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Vložit nový úkol, který bude mít nastaveny vybrané kategorie" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nový úkol s vybranými úkoly jako &podmínkami..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Vložit nový úkol s vybranými úkoly jako &podmínkami" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nový úkol se zvolenými úkoly jako &závislostmi..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Vloží nový úkol s vybranými úkoly jako závisejícími úkoly" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nová &podpoložka..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nový &podřazený úkol..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nová &podpoznámka..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nová &podkategorie..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Vložit novou podpoložku do zvolené položky" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Označit úkol jako &aktivní\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Označit vybrané úkoly jako aktivní" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Označit úkol jako &neaktivní\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Označit vybrané úkoly jako neaktivní" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Označit úkol jako &dokončený\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Označní vybrané úkoly jako dokončené" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximalizovat prioritu\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimializovat prioritu\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Zvýšit prioritu\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Snížit prioritu\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Přepnout %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Pošta...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Pošta...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Více věcí" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "a" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "E-mail nelze poslat:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s chyba e-mailu" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Přidat poz&námku…\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Otevřít všechny poznámky…\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Spustit sledování úsilí\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Začít sledovat úsilí pro vybrané úkoly" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Žádný předmět)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Začít sledovat úsilí pro %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Vybrat úkol pomocí menu a začít sledovat jeho úsilí" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Zastavit nebo obnovit sledování úsilí\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "&Zastavit sledování %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Zastavit sledování úsilí pro aktivní úkol(y)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Obnovit sledování %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Obnovit sledování plánu pro posledně sledovaný úkol" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "více úkolů" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nová kategorie…\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nová poznámka…\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "&Nová poznámka se zvolenými kategoriemi..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Vložit novou poznámku s již nastavenými zvolenými kategoriemi" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Přidat přílohu…\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Chyba při otevírání přílohy" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Otevřít všechny přílohy…\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Obsah &nápovědy\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Obsah &nápovědy\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Nápověda" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tipy" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tipy k používání aplikace" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymizovat" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Anonymizovat soubor úkolu, aby bylo možné jej připojit k hlášení o chybě" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Váš soubor úkolu byl zanonymizován a uložen do:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Hotovo" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "O &aplikaci %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Verze a kontakt o %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "O aplikaci %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licence" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licence" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Zkontrolovat aktualizace" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Zkontrolovat dostupnost nové verze %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Nelze otevřít URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s chyba URL" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Často &kladené dotazy" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Procházet často kladené dotazy a odpovědi na ně" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Nahlásit chy&bu…" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Nahlásit chybu nebo procházet již známé chyby" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Požádat o přidání &funkcionality…" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" "Požádat o přidání nové funkcionality nebo hlasovat pro již existující žádosti" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Požádat o technickou &podporu…" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Požádat vývojáře aplikace o technickou podporu" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Zapojit se do vylepšování &překladu…" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Zapojit se do vylepšování překladu %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Podpořit vývoj…" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Podpořit vývoj %s darem" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Obnovit" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Vrátit okno do předchozího stavu" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Hledat" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Podrobnosti pracovního plánu" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Odpracováno za den" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Odpracováno za měsíc" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Odpracováno za týden" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Režim seskupení" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Seznam" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Strom" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Je-li zaškrtnuto, jsou úkoly zobrazovány jako strom. V opačném případě jako " "seznam." #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrovat ve všech zvolených kategoriích" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrovat podle kterékoli zvolené kategorie" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Při zaškrtnutí filtruje všechny zaškrtnuté kategorie, jinak jakoukoli " "zaškrtnutou kategorii" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Volba pořadí" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Nastavit" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Nastavení prohlížeče kalendáře" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Nastavení prohlížeče hierarchického kalendáře" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Následující období" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Zobrazit následující období" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Předchozí období" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Zobrazit předchozí období" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Dnes" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Zobrazit dnešek" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "S&amočinná změna šířky sloupců" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Je-li zvoleno, samočinně upravuje šířku sloupců tak, aby byl celý dostupný " "prostor využit pro zobrazení údajů." #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Nastavit úhel koláčového grafu" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Bez zaokrouhlování" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuta" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minut" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Přesnost zaokrouhlování" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Vždy zaokrouhlit nahoru" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Vždy zaokrouhlit nahoru na další přírůstek zaokrouhlení" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Typ" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Řadit dle předmětu" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Předmět" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Řadit podle popisu" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Popis" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Datum vytvoření" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Řadit dle data vytvoření" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Datum změny" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Řadit dle posledního data změny" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Zobrazit/skrýt sloupec popisu" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "Poz&námky" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Zobrazit/skrýt sloupec poznámek" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Zobrazit/skrýt sloupec s datem vytvoření" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Zobrazit/skrýt sloupec data změny" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Nástrojové lišty lze přizpůsobit" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Klikněte na ikonku kolečka vpravo pro přidání a přeskupení tlačítek ." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Opětovné uspořádání ve stromovém řežimu" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "Ve stromovém režimu, ručně řadit je možné jen v případě, když jsou všechny " "zvolené položky na stejné úrovni." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "Ve stromovém režimu je možné umisťovat objekty na stejnou úroveň " "(nadřazenou)." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Ruční řazení" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Zobrazit/skrýt sloupec ručního řazení" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Přílohy" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Skrýt/zobrazit sloupec příloh" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategorie: %d zvoleno, %d celkem" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Stav: %d filtrováno" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Období" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Celkový strávený čas" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Celkové příjmy" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "úterý" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "středa" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "čtvrtek" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "pátek" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "sobota" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorie" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Skrýt/zobrazit sloupec kategorií" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "S&trávený čas" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Skrýt/zobrazit sloupec stráveného času" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "Příjm&y" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Skrýt/zobrazit sloupec příjmů" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Celkový s&trávený čas" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Skrýt/zobrazit sloupec celkem stráveného času" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Příjmy celkem" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Skrýt/zobrazit sloupec příjmů celkem" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Odpracováno za všední den" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Skrýt/zobrazit sloupce stráveného času za všední den" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Seskupení úsilí" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Úsilí: %d zvoleno, %d viditelné, %d celkem. Strávený čas: %s zvoleno, %s " "viditelné, %s celkem" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Stav: %d sledováno" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Podrobnosti:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Odpracováno pro vybrané úkoly" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Řadit kategorie podle předmětu" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Setřídit kategorie podle popisu" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Seřadit kategorie podle data vytvoření" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Seřadit kategorie podle posledního data změny" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Setřídit kategorie manuálně" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Setřídit přílohy podle předmětu" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Setřídit přílohy podle popisu" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Setřídit přílohy podle kategorie" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Seřadit přílohy podle data vytvoření" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Seřadit přílohy podle data poslední změny" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Seřadit poznámky podle předmětu" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Seřadit poznámky podle popisu" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Seřadit poznámky podle kategorie" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Seřadit poznámky podle data vytvoření" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Seřadit poznámky podle data poslední změny" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Seřadit poznámky ručně" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Seřadit úkoly podle předmětu" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Seřadit úkoly podle popisu" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Seřadit úkoly podle kategorie" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Seřadit úkoly podle data vytvoření" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Seřadit úkoly podle data poslední změny" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Seřadit úkoly ručně" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Seřadit úkoly podle data plánovaného zahájení" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Plánované datum zahájení" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Seřadit úkoly podle termínu dokončení" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Termín dokončení" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Seřadit úkoly podle data dokončení" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Datum dokončení" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Seřadit úkoly podle podmínek" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Podmínky" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Seřadit úkoly podle závisejících úkolů" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Závisející" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Seřadit úkoly podle zbývajícího času" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "Z&bývající čas" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Seřadit úkoly podle stupně dokončení" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Procento dokončení" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Seřadit úkoly podle opakování" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Opakování" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Seřadit úkoly podle rozpočtu" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Rozpočet" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Seřadit úkoly podle strávného času" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Zbýva&jící rozpočet" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Seřadit úkoly podle zbývajícího rozpočtu" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Seřadit úkoly podle priority" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Seřadit úkoly podle hodinové mzdy" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Hodinová mzda" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Seřadit úkoly podle pevné mzdy" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Pevná mzda" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Seřadit úkoly podle příjmu" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Setřídit úkoly podle data a času upomínky" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Připomínač" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Předmět" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Setřídit poznámky podle kategorií" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Poznámky: %d vybráno, %d celkem" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Stav: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Úkoly: %d vybráno, %d viditelných, %d celkem" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Stav: %d po termínu, %d opožděné, %d neaktivní, %d hotové" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Chcete-li zobrazit pouze úkoly s takovým stavem, přidržte klávesu Shift a " "klikněte na nástroj filtr." #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Úkoly" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Časová osa" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Nyní" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Čtvercová mapa úkolů" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Rozložit úkoly podle" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hierarchický kalendář" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Nastavení prohlížeče hierarchického kalendáře" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Nastavení prohlížeče kalendáře" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ruční řazení" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Zobrazte sloupec Ruční řazení, pak z něho přetahujte položky a řaďte je tak " "dle libosti." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Závisející" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% dokončeno" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Zbývající čas" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "Termíny" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Všechny datumové sloupce" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Zobrazit/skrýt všechny sloupce týkající se datumů" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Zobrazit/skrýt sloupec plánovaného data zahájení" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Zobrazit/skrýt sloupec termínu" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Skutečné datum zahájení" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Zobrazit/skrýt sloupec skutečného data zahájení" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Zobrazit/skrýt sloupec data dokončení" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Zobrazit/skrýt sloupec zbývajícího času" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Zobrazit/skrýt sloupec opakování" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Všechny sloupce rozpočtu" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Zobrazit/skrýt všechny sloupce týkající se rozpočtu" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Zobrazit/skrýt sloupec rozpočtu" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "Zbývající &rozpočet" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Zobrazit/skrýt sloupec zbývajícího rozpočtu" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanční" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Všchny finanční sloupce" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Zobrazit/skrýt všechny sloupce týkající se financí" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Zobrazit/skrýt sloupec hodinové mzdy" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Zobrazit/skrýt sloupec pevné mzdy" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Zobrazit/skrýt sloupec podmínek" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Zobrazit/skrýt sloupec závisejících" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Zobrazit/skrýt sloupec procent hotovo" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Zobrazit/skrýt sloupec příloh" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Zobrazit/skrýt sloupec priority" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Zobrazit/skrýt sloupec upomínky" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Zobrazit úkoly jako" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Statistiky úkolu" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Čárka" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Panel" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Mezera" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Dvojtečka" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Středník" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Svislá čára („roura“)" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (den první)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (měsíc první)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Jednoduchá uvozovka" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Dvojitá uvozovka" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Zdvojit" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Zbavit významu pomocí" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importovat pouze vybrané řádky" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "První řádek popisuje pole" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Oddělovač" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Formát data" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Znak uvozovky" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Významu zbavující uvozovka" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Pole #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Vyberte soubor." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "Identifikátor" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategorie" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Datum připomínky" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Procent dokončeno" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Hlavička sloupce v souboru CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "Vlastnost %s" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Žádné mapování polí." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Pole %s nemůže být zvoleno vícekrát." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Pole %s nemohou být zvolena vícekrát." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Obsah" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "O úkolech" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Vlastnosti úkolu" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Stavy úkolu" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Barvy úkolu" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Upomínky" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "O odpracované době" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Vlastnosti úsilí" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "O kategoriích" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Vlastnosti kategorie" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "O poznámkách" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Vlastnosti poznámky" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Tisk a export" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "O tisku a exportu" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Tisk" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportování" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Používání vícero uživateli" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "O používání vícero uživateli" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Možnosti uložení" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Posílání úkolů e-mailem" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Vlastní atributy pro e-maily" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Začlenění e-mailu" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "O začlenění e-mailu" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Připojení e-mailu k úkolu" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Vytvoření úkolu z e-mailu" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Podpora SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Co je SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Nastavení" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Omezení" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Řešení problémů" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Definitivní odstranění smazaných položek" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone a iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s na iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Nastavení" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s na Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt a Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Import todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Export todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Šablony úkolu" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "O šablonách" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Použití šablon" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Grafické uživatelské rozhraní" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Klávesové zkratky" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Úkoly jsou základní objekty, se kterými pracujete. Úkoly mohou představovat " "cokoliv. Od jednotlivé drobnosti, kterou je třeba udělat, až po rozsáhlý " "projekt, mající více různých fází a představující mnoho aktivit." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Úkoly mají následující vlastnosti, které můžete změnit:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Předmět: jeden řádek, který úkol shrnuje." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Popis: víceřádkový popis úkolu." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Plánované datum zahájení: nejbližší datum, kdy může být úkol zahájen. \n" "Výchozí hodnota plánovaného data zahájení odpovídá datu vytvoření úkolu. " "Může být také prázdná, což naznačuje, že nechcete zahájit úkol. To může být " "vhodné například k zaznamenání nemocenské." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Termín: Datum, kdy by měl být úkol hotový. \n" "Může být nastaveno na Žádné, což naznačuje, že tento úkol nemá žádný pevný " "termín." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Skutečné datum zahájení: datum. kdy úkol byl opravdu zahájen.\n" "Skutečné datum zahájení může být upraveno přímo, ale je také nastaveno když " "\n" "sledujete úsilí v úkolu nebo když nastavíte procentuální dokončení úkolu\n" "na hodnotu mezi 0% a 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Požadavky: jiné úkoly, které potřebují být splněny předtím,\n" "než tento úkol může být zahájen, Úkol zůstane neaktivní, dokud poslední " "požadavek \n" "není dokončen. Nezapomeňte, že pokud má úkol nastaven určité naplánované\n" "datum začátku, toto datum musí být v minulosti a všechny požadavky\n" "musí být splněny předtím, než se tento úkol opozdí." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Rozpočet: kolik hodin je možné pro tento úkol vyčlenit." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Hodinová mzda: Množství peněz vydělaných v úkolu za hodinu." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Pevná mzda: Množství peněz, vydělaných za splnění úkolu, bez ohledu na " "strávený čas." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Následující vlastnosti jsou vypočítávány z vlastností výše:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Zbývá dní: počet zbývajících dní do termínu." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Závisející: ostatní úkoly, které mohou být zahájeny až tehdy, kdy je splněn " "úkol, na který navazují." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Strávený čas: práce vynaložená na daný úkol." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Zbývající rozpočet: rozpočet úkolu mínus čas, doposud strávený na úkolu." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Příjem: hodinová mzda krát strávené hodiny plus pevná mzda" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Úkoly mají vždy přesně jeden z následujících stavů:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktivní: skutečné datum zahájení je v minulosti;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Neaktivní: úkol nebyl zahájen a/nebo nebyly \n" "dokončeny všechny požadavky;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Dokončeno: úkol byl dokončen." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Navíc, je úkoly možné označit jako:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Po termínu: termín je v minulosti;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Blížící se termín: termín je blízko (co je 'blízko', může být \n" "změněno v nastaveních);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Opožděný: plánované datum zahájení je v minulosti \n" "a úkol nebyl zahájen;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Přes rozpočet: nezbývá žádný rozpočet" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "V rámci rozpočtu: z rozpočtu stále ještě něco zbývá;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Bez rozpočtu: úkol nemá žádný rozpočet." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Text úkolu je vybarven podle následujících pravidel:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Úkoly po termínu jsou červené;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Úkoly blížící se termínu jsou oranžové;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Aktivní úkoly mají modrou ikonu a černý text;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Opožděné úkoly jsou fialové;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Budoucí úkoly jsou šedé a" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Dokončené úkoly jsou zelené." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Toto vše pochopitelně za předpokladu, že jste ponechali výchozí \n" "nastavení barev textu." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Barva pozadí úkolu je určena podle kategorií \n" "do které úkol patří. Podívejte se na číst o \n" "vlastnostech kategorií níže." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Upomínky můžete nastavit pro konkrétní datum a čas. %(name)s Vám\n" "v tento čas ukáže zprávu upomínky. Z dialogového okna upomínky můžete " "otevřít\n" "úkol, začít sledovat úsilí úkolu, nebo označit úkol jako dokončený. Je také " "možně\n" "upomínku uspat." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Pokud máte nainstalován Growl nebo Snarl, můžete požádat\n" "%(name)s aby tyto používal pro upomínky v dialogovém okně\n" "nastavení." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Kdykoliv strávíte čas nad úkolem, můžete zaznamenat množství stráveného\n" "času sledováním úsilí. Vyberte úkol a zvolte 'Začít sledovat úsilí' v\n" "menu Úsilí nebo kontextového menu nebo pomocí tlačítka \n" "'Začít sledovat úsilí' v panelu nástrojů." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "U záznamů o vynaložené práci je možné měnit tyto vlastnosti:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Úkol: úkol, ke kterému tato vynaložená práce patří." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Datum/čas zahájení: datum a čas započetí prací." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Konečné datum/čas: končené datum a čas úsilí. Toto může být \n" "'Žádné' pokud stále pracujete na úkolu." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Popis: víceřádkový popis odpracovaného." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Strávený čas: kolik času jste strávili prací na úkolu." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Příjem: peníze vydělané stráveným časem." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Úkoly a poznámky mohou spadat do jedné či více kategorií. Potřebnou " "kategorii nejprve vytvořte prostřednictvím nabídky Kategorie. Položky pak do " "této či vícero kategorií přidávejte prostřednictvím úpravy položky, kde na " "panelu Kategorie zaškrtněte ty, do kterých má položka spadat." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Zobrazené položky můžete omezit v zobrazení úkolů a poznámek na jednu \n" "nebo více kategorií zaškrtnutím kategorie v prohlížeči kategorií. Například, " "\n" "pokud máte kategorii 'telefonní hovory' a tuto kategorii zaškrtnete, " "prohlížeče \n" "úkolu zobrazí pouze ty, co patří do této kategorie; jinými slovy \n" "telefonní hovory, které musíte vyřídit." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Kategorie mají následující vlastnosti, které můžete změnit:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Předmět: jeden řádek, který shrnuje kategorii." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Popis: víceřádkový popis kategorie." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Vzájemně se vylučující podkategorie: zaškrtávací políčko označující\n" "zdali podkategorie kategorie se vzájemně vylučují. Pokud ano,\n" "položky mohou patřit pouze do jedné z podkategorií. Při filtrování můžete\n" "filtrovat pouze jednu podkategorii najednou." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Vlastnosti vzhledu jako ikona, písmo a barvy: \n" "vlastnosti vzhledu jsou použity k vykreslení kategorie, ale také položky\n" "které do této kategorie patří. Pokud kategorie nemá žádnou vlastní barvu, " "písmo či ikonu, \n" "ale mí nadřazenou kategorii, s takovýmito vlastnostmi, bude použita \n" "nadřazená vlastnost. Pokud položka patří do mnoha kategorií a každá má svoji " "\n" "přidělenou barvu, bude k vykreslení položky použito smísení těchto \n" "barev." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Poznámky mohou být použity pro zachycení náhodných informací, které si\n" "chcete ponechat ve Vašem souboru úkolu. Poznámky mohou být samostatné nebo " "součástí jiných položek,\n" "jako např. úkoly a kategorie. Samostatné poznámky jsou zobrazeny v " "prohlížeči\n" "poznámek. Poznámky, které jsou součástí jiných položek nejsou v prohlížeči\n" "zobrazeny." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Poznámky mají následující vlastnosti, které můžete změnit:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Předmět: jeden řádek, který poznámku shrnuje." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Popis: víceřádkový popis poznámky." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Vlastnosti vzhledu jako jsou ikona, typ písma a barvy." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Jak tisk, tak i exportování fungují stejným způsobem: když tisknete\n" "nebo exportujete data, jejich zdrojem jsou data z aktivního prohlížeče.\n" "Navíc jsou tisknuta či exportována tak, jak jsou zobrazena v prohlížeči, \n" "to znamená stejným způsobem i pořadím. Sloupce, které jsou zobrazeny \n" "rozhodují, jaké podrobnosti budou vytisknuty a exportovány. Při filtru " "položek\n" "například skrytí dokončených úkolů, nebudou tyto položky vytisknuty ani " "exportovány." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Připravte obsah prohlížeče umístěním položek ve \n" "správném pořadí, zobrazte či skryjte odpovídající sloupce a použijte " "příslušné \n" "filtry." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Můžete si prohlédnout, jak tisk bude vypadat\n" "pomocí položky menu náhled v Soubor -> Tisk. Můžete upravit nastavení " "stránky\n" "použitím Soubor -> Nastavení stránky. Pro tisk si můžete vybrat pouze \n" "všechny viditelné položky v aktivním prohlížeči nebo pouze \n" "vybrané položky, pokud to platforma podporuje." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Dále zvolte formát, do kterého chcete exportovat a zdali\n" "chcete exportovat všechny zobrazené položky nebo pouze vybrané. Dostupné " "formáty\n" "pro export zahrnují CSV (čárkou oddělené hodnoty), HTMl a iCalendar. Když\n" "exportujete do HTML, je vytvořen soubor CSS, který můžete upravit pro změnu\n" "vzhledu HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Vlastní atributy pro posílání úloh e-maily" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "Chování příkazu e-mail je možné pozměnit pomocí vlastních atributů v popisu " "\n" "úkolu. Je třeba, aby tyto atributy byly na samostatném řádku. Podporované \n" "atributy jsou „to“ (komu poslat) a „cc“ (komu poslat kopii). Příklady:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=nekdo@examle.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Soubor úkolu může být otevřen několika instancemi %(name)s, které\n" "buď běží na stejném počítači nebo na jiných, například v síťovém\n" "sdílení. Když ukládáte, %(name)s ve skutečnosti sloučí Vaší práci s tím, co\n" "bylo uloženo na disku od posledního uložení. Konflikty jsou automaticky\n" "vyřešeny, většinou tím, co ukládáte Vy. Toto slouží ke dvěma účelům:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Jeden uživatel, který úkol otevírá na několika počítačích (v práci,\n" "doma, na laptopu)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Několik uživatelů pracujících na stejném úkolu." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "První případ je nejběžnější a nejbezpečnější. Druhý\n" "případ může být nebezpečný. Většina protokolů pro sdílení síťového disku " "nepodporuje\n" "takový druh uzamčení souboru, který by byl 100% bezpečný. Následuje seznam " "běžných\n" "protokolů a jejich chování." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Žádná z možností sdílení zde uvedená nefunguje úplně. Pokud dva\n" "uživatelé uloží své změny v časovém horizontu několika stovek milisekund,\n" "data budou ztracena." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "Toto je nejběžnější protokol: Sdílení ve Windows a jejich nápodoby\n" "(Samba). Pokud server a klient nepodporují určité přípony, Task Coach " "nebude\n" "moci automaticky zjistit, jestli byl soubor změněn někým jiným." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Ještě neotestováno." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Oblíbený způsob, jak přistupovat k souborům z několika počítačů (viz také " "SpiderOak\n" "pro bezpečnější alternativu). Změny v úkolu jsou %(name)s úspěšně zjištěny\n" "když je aktualizován." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s může být začleněn s několika poštovními\n" "klienty, pomocí přetažení. Toto má svá omezení; emaily jsou\n" "zkopírovány do adresáře vedle souboru %(name)s, jako\n" "soubory .eml a jsou později otevřeny pomocí jakéhokoliv\n" "programu přidruženého k tomuto typu souboru ve Vašem\n" "systému. Na druhou stranu Vám toto umožňuje otevřít\n" "tyto emailové přílohy v systému, který je jiný od toho,\n" "který ho vytvořil jako první." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Podporovaní e-mailoví klienti jsou:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Kvůli omezením v Thunderbird, nemůžete přetáhnout několik\n" "emailů v Thunderbird. Toto se netýká Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Existují dva způsoby jak přiložit e-mail k úkolu; můžete:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Přetáhněte ho buď na úkol ve stromu úkolů nebo do seznamu úkolů." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Přetáhněte ho do panelu příloh v editoru úkolu." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Přetáhnutím emailu na prázdnou část stromu nebo seznamu úkolů\n" "vytvoří nový úkol. Jeho předmět je předmět emailu,\n" "popis je jeho obsah. Dále je email automaticky\n" "připojen k nově vytvořenému úkolu." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML je XML protokol navržený pro synchronizaci několika\n" "aplikací pomocí serveru. Populární open-source sever je Funambol. Klienty \n" "synchronizace jsou dostupné na mnoha zařízeních a aplikacích (Outlook, " "Pocket PC,\n" "iPod, iPhone, Evolution, atd...), a také tzv. \"konektory\"\n" "které umožňují serveru synchronizovat s Exchange, Google Calendar,\n" "atd." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s má zabudovanou podporu klienta SyncML ve Windows a Mac OS X\n" "(za předpokladu, že používáte vydané binární soubory). To znamená, že\n" "můžete nastavit %(name)s pro synchronizaci se stejným serverem SyncML\n" "s kterým synchronizujete Outlook a mít všechny úkoly a poznámky ve\n" "Vašem souboru %(name)s a také úkoly a poznámky z %(name)s v Outlook. Nebo\n" "ve Vašem Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "V systému GNU/Linux je třeba pro interpret jazyka Python nainstalovat " "můstek, \n" "konkrétně SyncML klienta. Balíček pro distribuci Debian a odvozené \n" "(pro architekturu x86 64 bit) pro Python 2.7 je k dispozici na\n" "taskcoach.org,\n" "na konci sekce Ke stažení pro GNU/Linux." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Tato funkce je volitelná a standardně vypnutá. Zapnout ji můžete \n" "v okně Předvolby, jejím zaškrtnutím na panelu Funkce." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Pro nastavení SyncML, upravte nastavení SyncML v Upravit/Nastavení \n" "SyncML. Vyplňte URL pro synchronizaci, Vaše ID na serveru a zvolte \n" "položky k synchronizaci (úkoly a/nebo poznámky). URL závisí na serveru,\n" "který zvolíte; některé příklady jsou:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Názvy databází jsou vcelku standardní; výchozí hodnoty \n" "by měly fungovat." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Každý soubor úkolu má svůj vlastní identifikátor klienta, takže dva různé " "úkoly \n" "budou serverem považovány za různá „zařízení“." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Jistá omezení plynou ze skutečnosti, že typ příslušných \n" "dat je vcalendar, některé funkce %(name)s nemohou být předloženy \n" "serveru." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Hierarchie úkolu a kategorie jsou na serveru ztraceny." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Opakování a upomínky zatím nejsou podporovány." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Kategorie poznámek jsou na serveru ztraceny." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Systém zjišťování/řešení konfliktů je řešením \n" "omezení Funambol. Ve většině případů by měl fungovat, ale pokud \n" "spousta aplikací synchronizuje se stejným serverem najednou, mohou se \n" "vyskytnout problémy." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Pravděpodobně některé jiné..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Položky nabídky SyncML jsou přítomny pouze tehdy, pokud je v tomto ohledu \n" "podporován vámi používaný operační systém. V současnosti podporovanými jsou:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bitů (viz níže)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "GNU/Linux, 32 bitů" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS verze 10.3 a vyšší, architektury procesorů x86 i PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Ve Windows můžete narazit na problémy, pokud nemáte nainstalován \n" "Microsoft Visual 8 runtime. Můžete si ho stáhnout na\n" "centru stahování Microsoft." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Když je SyncML povolen, mazání úkolu nebo poznámky ho ve skutečnosti\n" "nesmaže, pouze ho označí jako smazaný. Ve skutečnosti \n" "je odstraněn ze seznamu úkolů nebo poznámek při další synchronizaci. Z " "tohoto \n" "důvodu, pokud se stane, že použijete funkci SyncML, pak ji zakážete, aniž " "byste \n" "provedly synchronizaci, může se ve Vašem souboru úkolů vyskytnout jisté " "smazané \n" "úkoly či poznámky. Toto není problém, ale zabírá trochu více místa na disku." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "V tomto případě položka \"Vymazat odstraněné položky\" v menu Soubor \n" "může být použita pro skutečné odstranění těchto úkolů. Je povolena pouze, " "když\n" "ji potřebujete, to je, když existují položky ke smazání. Nezapomeňte, že " "pokud později\n" "znovu povolíte SyncML a provedete synchronizaci se stejným serverem, který " "jste\n" "předtím použili, všechny tyto položky se znovu objeví, protože server\n" "neví, že byly smazány." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iOS (iPhone, iPod Touch a iPad)" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s na iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Existuje Companion app na iPhone/iPod Touch/iPad pro %(name)s, \n" "dostupná na Apple AppStore. (Pokud na Vašem počítači nemáte \n" "nainstalován iTunes, bude Vám zobrazena stránka, kde si je můžete stáhnout). " "\n" "Podporuje následující funkce:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Základní vlastnosti úkolu: předmět, popis, data (s \n" "opakováním)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchické úkoly a kategorie" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Sledování času" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Soubory vícenásobného úkolu" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Obousměrná synchronizace mezi instalacemi %(name)s na počítačích" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "Aplikace je multiplatformní a je k dispozici i v podobě pro zařízení se " "systémem Apple iOS." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Nastavení na iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Existují jistá nastavení na aplikaci pro iPhone/iPod Touch/iPad \n" "v aplikaci nastavení:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Zobrazit dokončené: zda zobrazit dokončené úkoly." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Zobrazit neaktivní: zdali zobrazit neaktivní úkoly (plánované datum \n" "zahájení v budoucnu)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Umístění ikony: ikona kontrolky může být zobrazena buď na \n" "levé nebo pravé straně obrazovky." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Kompaktní režim: pokud je toto zapnuto, seznam úkolů má menší \n" "LED a nezobrazuje kategorie ani data." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Potvrzení dokončení: pokud je povoleno, bude zobrazen rámeček \n" "pro potvrzení, když označíte úkol jako dokončený kliknutím na jeho LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "pč. dní do termínu: Kolik dní v budoucnu je \n" "považováno za \"blížící se\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Nastavení počítače, všechny platformy" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Před synchronizací musíte také nastavit %(name)s na \n" "počítači; v nastaveních, v kartě \"Funkce\", zaškrtněte \"Povolit \n" "synchronizaci iPhone\". Restartuje %(name)s. Nyní v nastaveních zvolte \n" "kartu \"iPhone\" a vyplňte alespoň jedno heslo." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Když klepnete na tlačítko \"Sync\" v zobrazení kategorií, %(name)s\n" "automaticky zjistí spuštěné instance %(name)s na Vašem\n" "počítači a zeptá se Vás, kterou chcete (můžete mít několik instancí\n" "spuštěných na různých počítačích ve Vaší síti, nebo na stejném\n" "počítači). Zobrazený název je, standardně, určitý řetězec\n" "identifikující počítač, na kterém je spuštěn. Abyste toto upravili,\n" "můžete změnit \"Název služby Bonjour\" v nastavení." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s si zapamatuje vybranou instanci a kusí ji při\n" "příští synchronizaci; pokud není spuštěna, zeptá se Vás znovu." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Nezapomeňte, že tato synchronizace se provádí přes síť; není \n" "třeba , aby bylo zařízení zapojeno přes USB nebo, aby bylo\n" "spuštěno iTunes." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Nastavení ve Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Při provozování v operačním systému Windows je třeba nainstalovat komponentu " "\n" "Bonjour pro Windows \n" "a odblokovat její síťovou komunikaci, pokud jste o to požádáni dialogem " "brány firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Nastavení v GNU/Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "V Linux musíte mít nainstalován daemona a spuštěn \n" "Avahi. Většina moderních distribucí ho už " "má. \n" "Musíte mít také nainstalován balíček dnscompat; jeho název závisí na Vaší " "distribuci \n" "(například v Ubuntu to je libavahi-compat-libdnssd1)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Zdá se, že aplikace pro iPhone/iPod Touch není na \n" "webových stránkách fy Apple k nalezení." #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Můj počítač se při pokusu o synchronizaci nezobrazí v seznamu" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Ověřte, že vaše zařízení iPhone/iPod Touch je (prostřednictvím technologie " "WiFi) \n" "připojeno do stejného segmentu sítě, jako váš počítač." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone se nedokáže připojit k počítači" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "Pokud používáte firewall, ověřte, že porty 4096-4100 jsou otevřené." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Ne, %(name)s není dostupné pro platformu Android. Ale,\n" "Todo.txt Touch je. \n" "Můžete exportovat Vaše úkoly z %(name)s do formátu \n" "Todo.txt a pak Vaše úkoly upravit na Vašem zařízení Android." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt je aplikace pro správu úkolů, opět s otevřeným zdrojovým kódem. \n" "Autorkou je Gina Trapani a její aplikace pracuje se soubory, obsahujícími \n" "prostý text. Uživatelské rozhraní má podobu příkazového řádku. Své úkoly \n" "ovšem můžete upravovat i pomocí libovolného textového editoru. A to právě \n" "díky tomu, že informace jsou uloženy v podobě prostého textu.\n" "Existuje i varianta pro systém Android – Todo.txt Touch, která data (soubor " "\n" "todo.txt) ukládá ve složce, synchronizované vůči službě Dropbox.\n" "Naše aplikace %(name)s umí import i export z/do tohoto todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "Při exportu do aplikace Todo.txt, %(name)s vytvoří vedle toho cílového \n" "ještě další soubor, jehož název je zakončen na -meta. Tento soubor nemažte; " "\n" "%(name)s jej používá pro sledování změn úkolů, provedených v jiné aplikaci. " "\n" "V případě, že dojde ke konfliktu (při importu se zjistí, že úkol byl mezitím " "\n" "upraven jak v Task Coach, tak v jiné aplikaci), jsou zahrnuty změny, " "provedené \n" "v aplikaci Todo.txt a ty z Task Coach zahozeny." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "Tip: pokud svůj soubor s úkoly ukládáte do složky todo, vytvořené aplikací \n" "Todo.txt Touch ve vaší Dropbox složce, a máte zapnutý samočinný \n" "import a export z/do aplikace Todo.txt, %(name)s bude synchronizovat \n" "svůj soubor s úkoly a todo.txt. Všimněte si, že je též vytvořen další " "soubor, nazvaný\n" "stejně, jako .txt soubor, jen s přidaným -meta. Ten je %(name)s používán pro " "sledování\n" "změn v .txt souboru; tento -meta soubor neupravujte ani nemažte." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importuje předměty úkolu, plánované datum zahájení, termín, datum \n" "dokončení, prioritu, souvislosti a projekty. Souvislosti a projekty jsou v " "%(name)s \n" "převedeny na kategorie. Projekty nemohou být převedeny do nadřazených úkolů, " "\n" "protože zatímco Todo.txt umožňuje úkolům patřit do vícero projektů, %(name)s " "\n" "umožňuje pouze jeden nadřazený úkol." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Při importu do %(name)s jsou hledány stejné, zde již existující úkoly a \n" "kategorie. Snahou je aktualizovat tyto stávající, namísto vytváření nových. " "\n" "Shoda je přitom hledána v předmětu úkolu (nebo projektu, či souvislosti) \n" "a nadřazené položce, pokud existuje." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exportuje do formátu aplikace Todo.txt pouze předmět úkolu, " "plánované datum zahájení, termín, datum dokončení, prioritu a kategorie. " "Ostatní vlastnosti exportovány nejsou." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "Krom dat, %(name)s pracuje i s časy – aplikace Todo.txt nikoli. Proto jsou " "údaje o zahájení, termínu a datu dokončení exportovány do jejího formátu bez " "této časové části." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Výchozí formát Todo.txt podporuje pouze plánovaná data zahájení a \n" "dokončení, ale ne termíny. Proto, %(name)s využívá rozšíření pro\n" "export termínů úkolů. Termíny jsou zobrazeny jako\"due:RRRR-MM-DD\"\n" "v souboru todo.txt" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt používá k označování stupně priority úkolů písmen A až Z. \n" "%(name)s ke stejnému účelu používá číslice. Priorita 1 z %(name)s \n" "odpovídá (a je převedena na) A v Todo.txt, 2 je B atd. až po 26,\n" "nebo-li Z. Stupně priority v %(name)s nižší než 1 a vyšší než 26\n" "exportovány nejsou." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Kategorie, jejichž předmět začíná '+' jsou exportovány jako projekty. \n" "Kategorie, jejichž předmět začíná znakem '@' jsou exportovány jako kontext. " "\n" "Kategorie, jejichž předmět nezačíná '+' či '@' exportovány nejsou. \n" "Podkategorie jsou exportovány, pokud je exportována jejich nadřazená " "kategorie." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Šablony jsou předlohy nových úkolů. Vlastnosti úkolu, které mohou být takto " "\n" "parametrizovány, jsou v tuto chvíli pouze data. Ta budou u úkolu, " "vytvořeného \n" "ze šablony, nastavena dle určeného vztahu k aktuálnímu datu." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Také je možné použít soubor s již dříve vytvořenou šablonou (přípona " ".tsktmpl). Stačí v nabídce Soubor kliknout na volbu Importovat šablonu a " "vybrat příslušný soubor. Soubory se šablonami jsou uchovávány v podsložce té " "složky, ve které se nachází soubor TaskCoach.ini." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Šablonu úkolu použijete kliknutím buď na volbu Nový úkol ze šablony v " "nabídce Úkol, nebo na odpovídající tlačítko na liště nástrojů. Data takto " "vytvořeného úkolu – termín, datum zahájení a dokončení – pokud existují, " "jsou odvozena od současného data. Řekněme, že šablonu vytvoříte z úkolu, " "začínajícího dnes a s termínem zítra. Pak pokaždé, když z této šablony bude " "vytvořen úkol, bude do plánovaného data zahájení dosazeno současné datum a " "do termínu totéž plus jeden den." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Šablony je též možné přidávat pomocí editoru šablon (Nabídka Soubor, volba " "Upravit šablony). Krom vytváření nových, v něm také můžete upravovat " "základní vlastnosti (data a předmět) již existujících šablon. Data jsou " "vyjádřena ve formátu, srozumitelném člověku. Pokud naopak %(name)s nedokáže " "interpretovat vaše zadání, oznámí to tak, že se editor zbarví do červena. " "Příklady zadání dat:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Upozorňujeme, že tento sytém není lokalizován – jakékoli datum je třeba " "zadat v anglickém formátu." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Rozvržení uživatelského rozhraní může být téměř libovolné. Svým potřebám ho " "přizpůsobíte přemístěním jednotlivých prohlížečů metodou táhni a pusť. Při " "přetahování těchto prvků jsou zobrazovány značky pozic, do kterých je lze " "umístit. Prohlížeče je též možné vrstvit na sebe a vytvářet tak karty." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "Pořadí karet v dialogových oknech můžete měnit přetahováním. Případně je " "možné vytvořit úplně odlišné rozvržení uživatelského rozhraní umístěním " "karet vedle sebe." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Předměty a popisy úkolů, poznámek a kategorií mohou být upravovány i bez " "otevření dialogového okna úprav. Položku, jejíž předmět nebo popis chcete " "změnit, prostě označte a pak na ní klikněte ještě jednou – buď ve sloupci " "předmětu nebo popisu. Přejdete tak do režimu zadávání textu, ve kterém " "můžete konkrétní prvek změnit. Změnu následně potvrďte stisknutím klávesy " "Enter či zrušte klávesou Esc. A ještě k úpravám předmětu úkolu. Krom " "zmíněného, existuje ještě jeden způsob, jak se k nim dostat – použitím " "klávesové zkratky F2." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "Provádění některých častých úkonů v aplikaci %(name)s lze zefektivnit " "použitím klávesových zkratek, zobrazených níže. Klávesové zkratky jsou v " "tuto chvíli pevně dané (nelze si nastavit vlastní)." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (GNU/Linux a MS Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (GNU/Linux a Apple Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (GNU/Linux a Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Vložit novou podpoložku" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Upravit zvolené položky nebo zavřít dialogové okno" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Označit zvolené položky jako (ne)dokončené" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Zrušit dialogové okno nebo přesunout zaměření klávesnice z ovládání hledání " "zpět na průzkumníka" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Přesunout zaměření klávesnice na další pole v dialogovém okně" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Přesunout zaměření klávesnice na předchozí pole v dialogovém okně" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Přesunout zaměření klávesnice na další kartu v ovládání poznámek" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" "Přesunout zaměření klávesnice na předchozí záložku v ovládání poznámek" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (pouze Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (pouze Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Vyskakovací nabídka nebo rozbalovací seznam" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Upravit předmět zvolené položky v prohlížeči" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s – %(description)s

    \n" "
    Verze %(version)s, %(date)s
    \n" "

    Vytvořil %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s je aktivně vyvíjen. Ale i když se vývojáři %(name)s snaží " "předcházet chybám, přesto se stávají. Proto je důrazně doporučeno si svou " "práci pravidelně zálohovat." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "Problematice aplikace %(name)s se věnuje e-mailová konference, ve které " "můžete probírat používání %(name)s s ostatními uživateli, diskutovat o " "jejích funkcích, požádat o začlenění nových a hlásit chyby. Jděte na adresu " "%(url)s a přidejte se ještě dnes!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s má funkce Zpět a Znovu neomezeny. Každou změnu, kterou provedete, " "ať už je to úprava popisu úkolu, nebo smazání záznamu úsilí, se dá vrátit " "zpět. Vyberte 'Upravit' -> 'Zpět' a 'Upravit' -> 'Znovu' abyste Vaší " "historii úprav procházeli dopředu i dozadu." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "Texty uživatelského rozhraní aplikace %(name)s jsou dostupné v mnoha různých " "jazycích. Zda i v tom vašem zjistíte v nabídce Upravit -> Předvolby. Pokud " "zde váš jazyk není uveden nebo překlad potřebuje vylepšit, je i vaše pomoc " "vítána. Navštivte %(url)s, kde se dozvíte jak se zapojit." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Pokud zadáte URL (např. %(url)s) v popisu úkolu nebo úsilí, stane se z ní " "odkaz. Kliknutím na odkaz URL otevře ve Vašem výchozím internetovém " "prohlížeči." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Úkoly můžete v zobrazení stromu přetáhnout, abyste mezi úkoly přeskupili " "vztah nadřazený-podřazený. To stejné platí i v kategoriích." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Soubory můžete přetáhnout z prohlížeče na úkol pro vytvoření příloh. " "Přetažením souborů na záložku se otevře příslušná stránka, přetažením " "souborů na sbalený úkol (znaménko + v rámečku) ve stromovém zobrazení úkol " "rozbalí, aby byly zobrazeny jeho podúkoly." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Přetažením záložek můžete vytvořit jakékoli rozvržení prohlížeče. Rozvržení " "je ukládáno a použito v příští relaci." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Co se ve skutečnosti při zvolení 'Soubor' -> 'Tisk' vytiskne, závisí na " "současném zobrazení. Pokud je nyní zobrazen seznam úkolů, bude toto " "vytištěno, pokud je zobrazeno úsilí seskupené podle měsíce, bude vytištěno " "úsilí. Stejné je to v případě viditelných sloupců, seřazení, filtrovaných " "úkolů, atd." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Kliknutím levého tlačítka myši na hlavičku sloupce podle tohoto sloupce " "seřadíte. Při druhém kliknutí změníte seřazení ze vzestupného na sestupné a " "naopak. Kliknutím pravého tlačítka myši na hlavičku sloupce ho skryjete, " "nebo další sloupce zobrazíte." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Můžete vytvořit šablonu z úkolu, abyste snížili psaní, když se objeví stejné " "údaje" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab přepíná mezi záložkami v dialogových oknech úprav." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Rada dne" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Další rada" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Zobrazit rady při startu" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Procházet soubory pro přidání jako přílohy ke zvoleným položkám" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Přidat poznámku ke zvoleným položkám" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Vložit novou kategorii" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Vyjmout vybrané položky do schránky" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopírovat vybrané položky do schránky" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Vložit položky ze schránky" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Vložit položky ze schránky jako podpoložku ke zvolené položce" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Upravit nastavení" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Znovu provést poslední vrácený příkaz" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Označit všechny položky v aktuálním zobrazení" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Odvolat poslední příkaz" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Přidat dobu trvání pracovního plánu pro vybraný úkol" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Začít sledovat práci, odvedenou ve vybraných úkolech" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Zastavit nebo pokračovat v zaznamenávání odpracovaného času" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Zavřít aktuální soubor" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Konec %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Otevřít soubor %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Uložit aktuální soubor" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Načíst to, co bylo na disku změněno" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Uložit aktuální soubor pod novým jménem" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Nápověda programu" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Poslat zvolené položky použitím výchozího klienta" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Vložit novou poznámku" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Otevřít všechny přílohy zvolených položek" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Otevřít všechny poznámky zvolených položek" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Tisk aktuálního souboru" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Nastavit vlastnosti tisknuté stránky" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Zobrazit všechny položky (bez jakýchkoli filtrů)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Zobrazit všechny položky bez ohledu na kategorii" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Přesunout zaměření klávesnice z prohlížeče na ovládání hledání" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Snížit prioritu vybraných úkolů" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Zvýšit prioritu vybraných úkolů" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Dát vybraným úkolům nejvyšší prioritu" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Dát vybraným úkolům nejnižší prioritu" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Vložit nový úkol" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Sbalit všechny podpoložky" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Rozbalit všechny podpoložky" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktivovat následující otevřený prohlížeč" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktivovat předchozí otevřený prohlížeč" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "K aplikaci Task Coach se pokusilo připojit zařízení iPhone \n" " nebo iPod Touch, ale v Task Coach není nastaveno \n" "potřebné heslo. Přejděte do dialogu nastavení, \n" "zde v části iPhone heslo nastavte a zkuste to znovu." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Verze protokolu: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Odmítnutá verze protokolu %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Otisk je v pořádku." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Otisk není v pořádku." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Název zařízení: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Odesílání souboru: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Úplné z počítače." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d kategorií" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Poslat kategorii %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Odpověď: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d úkolů" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Poslat úkol %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d úsilí" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Poslat úsilí %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Hotovo." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nových kategorií" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nových úkolů" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nových úsilí" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d změněných kategorií" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d změněných úkolů" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d změněných úsilí" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d smazaných kategorií" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d smazaných úkolů" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d smazaných úsilí" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nová kategorie (nadřazená: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Smazat kategorii %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Změnit kategorii %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nový úkol %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Smazat úkol %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Změnit úkol %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Konec synchronizace úkolu." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Nelze najít úkol %s pro úsilí." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Nové úsilí %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Změnit úsilí %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Posílání GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Načítání informací o e-mailu…" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Načítání informací o e-mailu. Čekejte prosím." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Nelze najít složku s daty aplikace Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Nelze najít profil v aplikci Thunderbird" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Žádná výchozí volba v profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Poškozené vnitřní ID Thunderbird:\n" "%s. Prosíme, nahlaste tuto chybu." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Nelze najít složku pro ID\n" "%s.\n" "Prosíme, nahlaste tuto chybu." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Nerozpoznané schéma URL: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Nelze otevřít spojení IMAP pro %(server)s:%(port)s\n" "k získání emailové zprávy Thunderbird:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Zadejte doménu pro uživatele %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Nelze zvolit složku doručené %s\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Žádná taková pošta: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Skutečné datum zahájení" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Plánované datum zahájení" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Termín" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Čas dokončení" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Čas připomínky" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Čas vytvoření" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Konečné datum období" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Počáteční datum období" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Začátek období" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Žádný předmět" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Dnes má termín nový úkol" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Zítra má termín nový úkol" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dnů" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 den" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Každých %(frequency)d dnů" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Každých %(frequency)d týdnů" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Každých %(frequency)d měsíců" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Každých %(frequency)d let" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Každý druhý den" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Každý druhý týden" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Každý druhý měsíc" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Každý druhý rok" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Včera" #: taskcoachlib/render.py:284 msgid "now" msgstr "teď" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Synchronizace pro zdroj %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "bude obnovení ze serveru. Všechny místní položky budou\n" "smazány. Opravdu si přejete pokračovat?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "bude obnovení z klienta. Všechny vzdálené položky\n" "budou smazány. Přejete si pokračovat?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronizace" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Probíhá synchronizace. Prosím čekejte.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d položek přidáno.\n" "%d položek aktualizováno.\n" "%d položek smazáno." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Při synchronizaci došlo k chybě.\n" "Kód chyby: %d; zpráva: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Nejprve je třeba upravit nastavení SyncML, v nabídce Upravit – Předvolby " "SyncML" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Přepínač panelů" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Obnovit %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Náhled panelu" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Zavřít" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Zavřít vše" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Další" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Předchozí" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Okno" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Upravit" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d týdnů" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d hodin" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Hotovo" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Druh zobrazeného období a jeho počet" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Měsíc" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientace kalendáře" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Vodorovně" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Svisle" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Které úkoly zobrazit" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Úkoly s plánovaným datem zahájení a termínem" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Úkoly s plánovaným datem zahájení" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Úkoly s termínem" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Všechny úkoly" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Všechny úkoly, kromě nenaplánovaných" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Vykreslit křivku zobrazující aktuální čas" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Barva použitá ke zvýraznění dnešního dne" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Všechny soubory (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Hlavičky" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Číslo týdne" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Časové rozpětí kalendáře" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Týden" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Pracovní týden" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Heslo:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Uložit do klíčenky" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Při pokusu o nalezení klíčenky vašeho systému došlo k chybě.\n" "Chybu prosím nahlaste vývojářům aplikace (viz nabídka Nápověda) a připojte " "též snímek obrazovky s touto zprávou.\n" "Zjištěná chyba:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Zadejte své heslo." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Zadejte své heslo" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Rozlišovat velikost písmen" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Při filtrování dávat důraz na velikost písmen" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Zahrnout vnořené položky" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Zahrnout podpoložky shodných položek ve výsledcích hledání" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Prohledat také popis" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Hledat v předmětu i popisu" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Regulární výraz" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Považovat hledaný text za regulární výraz" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Toto je neplatný regulární výraz." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Bude použito hledání podřetězců." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Nedávná hledání" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "V prohlížeči nelze vyhledávat" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Varování slučitelnosti" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Funkce SyncML je vypnutá, protože nebylo možné načíst \n" "příslušný modul. Důvodem může být, že vaše platforma \n" "není podporována. Nebo, v případě MS Windows, \n" "ve vaší instalaci schází potřebné dynamické knihovny (.dll). \n" "Podrobnosti naleznete v online nápovědě, sekci SyncML \n" "(v části Řešení problémů)." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Příště toto okno nezobrazovat" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Chyba při otevírání URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Smazat\tDEL" taskcoach-1.4.3/i18n.in/da.po000066400000000000000000006334621265347643000156170ustar00rootroot00000000000000# translation of da.po to Nederlands # Danish translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2007. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: da\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:30+0000\n" "Last-Translator: Aputsiaĸ Niels Janussen \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Der er opstået fejl. Se venligst \"taskcoachlog.txt\" i din mappe \"Mine " "dokumenter\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Fejl" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Der er sket en fejl. Se \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Kan ikke indlæse indstillingerne fra TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s fil fejl" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" fik højeste niveau, fordi dens overordnede blev slettet lokalt." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Konflikter registreret for \"%s\".\n" "Den lokale version blev anvendt." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Rediger placering af bilag" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Rediger bilag \"%s\"'s placering" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Tilføj bilag" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Tilføj bilag til \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nyt bilag" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Fjern bilag" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Fjern bilag fra \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopier" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopier \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Slet" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Slet \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Klip" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Klip \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Indsæt" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Indsæt \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Indsæt som underelement" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Indsæt som underelement til \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Træk og slip" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Træk og slip \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Rediger emner" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Rediger emne \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Rediger beskrivelser" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Rediger beskrivelse \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Skift ikon" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Skift ikon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Skift skrifttyper" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Skift skrifttype \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Skift forgrundsfarver" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Skift forgrundsfarve \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Skift baggrundsfarver" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Skift baggrundsfarve \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Slå kategori til/fra" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Slå kategorien til/fra for \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Ny kategori" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nye underkategorier" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Ny underkategori for \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Ny underkategori" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Rediger eksklusive underkategorier" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Rediger eksklusive underkategorier for \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Slet kategorier" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Slet kategori \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Træk og slip kategorier" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nye indsatser" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Ny indsats for \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Slet indsatser" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Slet indsats \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Skift opgave for indsats" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Skift opgave for indsats \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Skift indsats startdato og tidspunkt" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Skift indsats startdato og tidspunkt for \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Skift indsats slutdato og tidspunkt" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Skift indsats slutdato og tidspunkt for \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Ny note" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nye undernoter" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Ny undernote til \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Ny undernote" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Slet noter" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Slet note \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Træk og slip noter" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Træk og slip note \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Tilføj note" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Tilføj note til \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Tilføj undernote" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Tilføj undernote til \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Fjern note" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Fjern note fra \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Træk og slip opgaver" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Slet opgaver" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Slet opgave \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Ny opgave" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nye underopgaver" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Ny underopgave til \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Ny underopgave" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marker opgaver som færdige" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marker \"%s\" som færdig" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Marker opgave som aktiv" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Marker \"%s\" som aktiv" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Marker opgave som inaktiv" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Markér \"%s\" som inaktiv" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Start registrering" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Start registrering af \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stop sporing" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Stop sporing \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maksimér prioritet" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maksimér prioriteten af \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimer prioritet" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimér prioriteten for \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Forøg prioritet" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Forøg proriteren for \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Sænk prioritet" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Sænk prioritet for \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Skift prioritet" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Skift prioritet for \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Tilføj note til opgaver" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Skift planlagt startdato" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Kunne ikke ændre den planlagte startdato for \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Skift forfaldsdato" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Skift forfaldsdato for \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Skift reel startdato" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Skift reel startdato for \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Skift færdiggørelsesdato" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Skift færdiggørelsesdato for \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Skift påmindelsesdatoer/-tidspunkter" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Skift påmindelsesdato/-tid for \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Skift gentagelser" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Skift gentagelse for \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Skift færdiggørelsesprocent for \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Skift når opgaver er markeret som fuldførte" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Skift når \"%s\" er markeret som fuldført" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Skift budgetter" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Skift budget for \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Skift timetakster" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Skift timetakst for \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Skift faste takster" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Skift fast takst for \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Skift forudsætning" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Skift forudsætning for \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" "Der er opstået en fejl under indlæsning af indstilling for %s-%s fra %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Værdien er: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Fejlen er: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s vil bruge standardværdien for denne indstilling og skulle fortsætte som " "vanligt." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Opsætningsfejl" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Fejl under skrivning til %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Fejl ved skrivning" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app besked" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nyt bilag..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Indsæt et nyt bilag" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Åbn bilag" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Åbn de valgte bilag" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutter" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Udsæt ikke" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutter" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutter" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutter" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutter" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1½ time" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutter" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 time" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 timer" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 timer" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 timer" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 timer" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 timer" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 timer" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 timer" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 timer" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 timer" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 timer" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 uger" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 uge" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "I alt" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "I alt for %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Ny indsats... \tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Inaktive opgaver" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Gem &inaktive opgave" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Inaktive opgaver: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Vis/skjul inaktive opgaver (opgaver som ikke er udført uden faktisk " "startdato)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Forsinkede opgaver" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Skjul &forsinkede opgaver" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Forsinkede opgaver: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Vis/skjul forsinkede opgaver (ikke-aktive opgaver uden planlagt startdato i " "fortiden)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktive opgaver" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktive opgaver: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Gem &aktive opgaver" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Vis/skjul inaktive opgaver (opgaver som ikke er udført med faktisk, " "foregående startdato)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Opgaver tæt på tidsfristen" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Opgaver tæt på tidsfristen: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Skjul opgaver &tæt på tidsfristen" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Vis/skjul opgaver som snart forfalder (opgaver som ikke er udført med en " "forfaldsdato i nær fremtid)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Opgaver med overskredet deadline" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Skjul &forsinkede opgaver" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Forsinkede opgaver: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Vis/skjul forfaldne opgaver (opgaver som ikke er udført med en foregående " "forfaldsdato)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Afsluttede opgaver" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Afsluttede opgaver: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Skjul &færdige opgaver" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Vis/skjul fuldførte opgaver" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Ny opgave..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Pil ned" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Pil ned med status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blå pile i ring" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Grønne pile i ring" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Pil op" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Pil op med status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bombe" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Bog" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Bøger" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Kasse" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Mariehøne" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Kage" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Lommeregner" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalender" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Kat" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Diagrammer" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Snakker" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Afkrydsning" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Tjekpunkter" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Ur" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarmklokke" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopur" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Tandhjul" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Flere tandhjul" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Stationær computer" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Bærbar computer" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Håndholdt computer" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Rødt kors" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Terning" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokument" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blå planet" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Grøn planet" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Konvolut" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Konvolutter" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blå mappe" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Lyseblå mappe" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Grøn mappe" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grå mappe" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Orange mappe" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Lilla mappe" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Rød mappe" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Gul mappe" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blå mappe med pil" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Hjerte" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Hjerter" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Grønt hus" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Rødt hus" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Nøgle" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Nøgler" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lampe" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Spørgsmålstegn" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Information" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Blå pære" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Lyseblå pære" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Grå pære" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Grøn pære" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Lysegrøn pære" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Orange pære" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Lilla pære" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Rød pære" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Gul pære" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Redningskrans" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Låst lås" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Åben hængelås" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Forstørrelsesglas" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Klaver" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Node" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Note" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palet" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Papirclips" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Blyant" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Person" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Mennesker" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identifikation" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Person der taler" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Advarselsskilt" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Rød stjerne" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Gul stjerne" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Trafiklys" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Skraldespand" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Lyn" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Paraply" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Delvist solrigt" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Svensknøgle" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Intet ikon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Fil" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Fuld sti" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Dato" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Gendan" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Luk" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Vælg destinationen for gendannelsen" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Besked fra %s-udviklerne" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Se:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Beskrivelse" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Rediger for at ændre alle emner" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Emne" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Rediger for at ændre alle beskrivelser" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Oprettet den" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Ændret den" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritet" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Gensidigt udelukket" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Underkategorier" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Rediger for at ændre placering af alle bilag" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Gennemse" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Placering" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Udseende" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Forgrundsfarve" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Baggrundsfarve" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Skrifttype" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ikon" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datoer" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Planlagt startdato" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Forfaldsdato" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Virkelig startdato" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Fuldførelsesdato" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Påmindelse" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Gentagelse" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Fremskridt" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Procent færdiggjort" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Brug global indstilling" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nej" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ja" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Marker opgave som fuldført når alle underpunkter er fuldførte?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Forbrugt tid" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budget tilbage" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Timetakst" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fast takst" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Indkomst" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Indsats" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorier" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Bilag" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Noter" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Forudsætninger" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Redigér opgave" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Opgave" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Uge(r)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Dag(e)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Time(r)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minut(er)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stop" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Start registrering fra sidste stoptid" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Stop registrering nu" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Advarsel: start skal ligge før stop" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Flere opgaver" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (opgave)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Flere kategorier" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (kategori)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Flere noter" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (note)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Flere bilag" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (bilag)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Flere indsatser" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (indsats)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Brug skrifttype:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Brug farve:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Ingen" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Dagligt" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Månedlig" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Ugentligt" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Årlig" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "holder datoer på samme ugedag" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", hver" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Stop efter" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "Gentagelser" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Planlæg næste gentagelse baseret på" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "tidligere planlagte start- og/eller forfaldsdatoer" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "dato for seneste fuldførelse" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dag(e)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periode," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "uge(r)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "måned(er)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "år," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Eksporter elementer fra:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Eksportér kun de vaglte elementer" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Kolonner til eksport:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Angiv datoer og tidspunkter for opgaver i separate kolonner" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Skriv layoutinformationerne i en seperat CSS fil" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Hvis der eksisterer en CSS fil til den eksporterede fil, vil %(name)s " "overskrive den. Dette giver dig mulighed for at ændre layoutet uden at miste " "dine ændringer ved næste eksportering." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Eksporter som CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Eksporter som iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Eksporter som HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Eksporter som Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "En iPhone eller iPod Touch enhed prøver\n" "at synkronisere med denne opgavefil for\n" "første gang. Hvilken slags synkronisering\n" "ønsker du at bruge?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Opdater fra desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Opdater fra enhed" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Annuller" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Du har aktiveret iPhone-synkroniseringsfunktionen, som\n" "bruger Bonjour. Bonjour ser ikke ud til at være installeret på\n" "dit system." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Download og installér venligst Bonjour til Windows fra\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apples hjemmeside" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour-understøttelse til Linux leveres normalt af\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Du kan finde detaljer til din distribution here" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Bemærk at under visse systemer (Fedora) kan du være nødt til\n" "at installere avahi-compat-libdns_sd pakken såvel som Avahi for\n" "at få dette til at virke." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "Og hvis du har en firewall, tjek at portene 4096-4100 er åbne." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Ok" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Denne indstilling vil træde i kraft efter at du genstarter %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Denne indstilling kan tilsidesættes for individuelle opgaver\n" "i vinduet for opgaveredigering." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Filer" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Gem automatisk efter hver ændring" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Autoindlæs når filen ændres på disken" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Smart overvågning af filsystemet" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Forsøg at registrere ændringer i opgavefilen i realtid.\n" "Undlad at tjekke om din opgavefil er på et netværkslager.\n" "Du er nødt til at genstarte %s efter ændring af dette." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Gem indstillinger (%s.ini) i den samme\n" "mappe som programmet" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Gør det muligt at køre %s fra et flytbart drev" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Bilag basismappe" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Når du tilføjer et nyt bilag, prøv at lave\n" "placeringen relativ til denne." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Før der gemmes, importer automatisk fra" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt format" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Før gem, vil %s automatisk importere opgaver\n" "fra en Todo.txt fil med samme navn som opgavefilen,\n" "men med fil-endelse \".txt\"" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Efter gem, eksporter automatisk til" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Når en fil gemmes vil %s automatisk eksportere opgaver\n" "til en Todo.txt fil med samme navn som opgave filen,\n" "men med fil-endelse \".txt\"" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Vindue opførsel" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Vis splashskærm ved opstart" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Vis tips-vindue ved opstart" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Start med hovedvinduet omdannet til ikon" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Altid" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Aldrig" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Hvis det var ikoniseret ved sidste session" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Søg efter en ny version af %(name)s ved opstart" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Tjek om der er beskeder fra %(name)s-udvikerne ved start" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Skjul hovedvindue når ikoniseret" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimér hovedvindue ved lukning" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Få uret i systembakken til at tikke når indsatsen bliver sporet" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Sprog" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Lad systemet afgøre sprogvalget" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Hvis dit sprog ikke er tilgængeligt, eller oversættelsen kræver " "forbedringer, så overvej venligst om du kan bidrage. Se:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Blev sproget ikke fundet?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Visning af opgave" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Disse indstillinger for udseendet kan tilsidesættes for individuelle opgaver " "i vinduet for opgaveredigering." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funktioner" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Alle indstillinger i denne fane kræver en genstart af %s, før de træder i " "kraft" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Slå SyncML til" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Slå iPhone-synkronisering til" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Anvend X11s session-håndtering" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Arbejdsugens start" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Mandag" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Søndag" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Tid hvor arbejdsdagen starter" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Tid hvor arbejdsdagen slutter" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Dagens slutning" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Brug gradienter i kalendervisninger.\n" "Dette kan sænke hastigheden på Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutter mellem foreslåede tidspunkter" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "I popop-menuer for tidsudvælgelse (fx indstilling af \n" "starttidspunktet for en indsats), så vil %(name)s foreslå \n" "tider med brug af denne indstilling. Jo mindre antal af \n" "minutter, des mere tid vil der blive foreslået. Du kan \n" "naturligvis også angive ethvert tidsinterval, som du \n" "ønsker at have stående ved siden af de anbefalede tider." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Notits om inaktiv tid" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Hvis der ikke er brugerinput i denne mængde af tid\n" "(i minutter), så vil %(name)s spørge til hvad der skal ske \n" "med igangværende indsatser." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Anvend decimale tidsangivelser i for poster med indsatser." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Vis én time og femten minutter som 1.25 i stedet for 1:15\n" "Denne er nyttigt i forbindelse med oprettelse af fakturaer." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Vis en pop-op med beskrivelse af et element\n" "når musen holdes over det" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Opgavedatoer" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Marker overordnet opgave som fuldført når alle underopgaver er fuldført" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Antal timer før at en opgave betragtes som 'skal snart være færdig'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Intet" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Ændringer i den planlagte startdato ændrer samtidigt tidsfristen" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Ændring på tidsfristen ændrer samtidigt den planlagte startdato" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "Hvad sker med planlagt startdato og tidsfrist, hvis den ene ændres" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Forvalgt" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Forslag" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "I dag" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "I morgen" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "I overmorgen" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Næste fredag" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Næste mandag" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Dagens begyndelse" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Arbejdsdagens begyndelse" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Nuværende tidspunkt" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Arbejdsdagens slutning" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Standard for planlagt startdato og -tidspunkt" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Forvalg for forfaldsdato og -tidspunkt" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Forvalg for faktisk startdato og -tidspunkt" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Forvalg for fuldførelsesdato og -tidspunkt" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Forvalg for påmindelsesdato og -tidspunkt" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Nye opgaver starter med \"Forvalgte\" datoer og tider, der er fyldt ud og " "markeret. \"Foreslåede\" datoer og tidspunkter udfyldes, men bliver ikke " "markeret.\n" "\n" "\"Start på dagen\" er midnat og \"Slut på dagen\" er lige før midnat. Når " "disse anvendes, så vil opgavevisninger skjule tidspunktet og blot vise " "datoen.\n" "\n" "\"Start på arbejdsdagen\" og \"Slut på arbejdsdagen\" anvender arbejdsdagen, " "der angives i fanen Egenskaber på dette vindue med indstillinger." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Opgavepåmindelser" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Påmindelsessystem som skal anvendes til påmindelser" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Lader computeren fortælle om påmindelsen" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Kræver espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Forvalgt interval for slumretid, der anvendes efter påmindelse" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Udsæt-tider der kan vælges i opgave-påmindelses-dialogboksen" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Kodeord for synkronisering med iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Under synkronisering, så angiv denne adgangskode i din iPhone, for at " "godkende den" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour servicenavn" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Upload fuldførte opgaver til enhed" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Vis synkroniserings-loggen" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Redigering" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Tjek stavning i redigeringen" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Skrift som skal brugees i beskrivelsesfeltet på redigeringsvinduer" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Hent e-mail-emnet fra Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Når der smides en e-mail fra Mail.app, så prøv at fremskaffe dets emne.\n" "Det tager op til 20 sekunder." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Fokusér opgaveemnet i opgaveredigeringen" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Når der åbnes i opgaveredigeringen, så vælg opgaveemnet og sæt fokus på " "det.\n" "Dette overskriver tilvalget i X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s-påmindelse - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Påmindelse dato/tid" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Slumrefunktion" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Gør også dette til standard slumretid for fremtidige påmindelser" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Marker opgave fuldført" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML-server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Brugerdefineret" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Horde-baseret" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server-URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Brugernavn/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Aktiver synkronisering af opgaver" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Opgaver-databasenavn" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Foretrukne form for synkronisering" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "To-vejs" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Langsom" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "En-vejs fra klient" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Opdater fra klient" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "En-vejs fra server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Opdater fra server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Aktiver synkronisering af noter" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Noter-databasenavn" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Adgang" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Ny opgaveskabelon" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Forhåndsvisning" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Tilgængelige værktøjer" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Gør dette værktøj synligt i værktøjslinjen" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Skjul dette værktøj i værktøjslinjen" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Værktøjer" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Flyt værktøjet op (til venstre for værktøjslinjen)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Flyt værktøjet ned (til højre for værktøjslinjen)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Tilpas rækkefølge på knapper i værktøjslinjen ved at trække og slippe dem i " "denne liste." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Adskiller" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Mellemrumselement" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Advisér mig om nye versioner." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Ny version af %(name)s er tilgængelig" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Du bruger %(name)s version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Version %(version)s af %(name)s er tilgængelig fra" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s er nyeste version" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s er den nyeste version %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Kunne ikke finde nyeste version" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Kunne ikke finde ud af hvad den nyeste version af %(name)s er." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Forhåndsudgivet version" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Du bruger %(name)s forhåndsudgivet version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Den senest udgivede version af %(name)s er %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Advarsel" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach har kendte problemer med XFCE4-sessionshåndteringen.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Hvis du oplever at maskin fryser vilkårligt under opstart, så fravælg\n" "\"Brug X11-sessionhåndtering\" i fanen Egenskaber for indstillingerne.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Vis ikke dette vindue ved opstart" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Intet brugerinput siden %s. Den følgende opgave\n" "var i gang:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Gør intet" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Stop den ved %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Stop den ved %s og fortsæt nu" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Påmindelse" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s filer (*.tsk)|*.tsk|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s filer (*.tsk)|*.tsk|Backup-filer (*.tsk.bak)|*.tsk.bak|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar filer (*.ics)|*.ics|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML filer (*.html)|*.html|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV-filer (*.csv)|*.csv|Tekstfiler (*.txt)|*.txt|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt-filer (*.txt)|*.txt|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Åbn" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d opgaver hentet fra %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Kan ikke åbne %s da denne ikke eksisterer" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Sammenflet" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Kan ikke åbne %(filename)s\n" "da den er låst." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Sammenflettede %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Gem som" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Gem markering" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Kan ikke gemme %s\n" "Den er låst af en anden aktiv %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Kan ikke gemme %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importer skabelon" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s skabelonfiler (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Kan ikke importere skabelon %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Eksporterede %(count)d elementer til %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synkronisering fuldført" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synkroniseringsstatus" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Kan ikke åbne %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Der eksisterer allerede en fil med navnet %s.\n" "Ønsker du at erstatte den?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Du har ikke gemte ændringer.\n" "Gem før du lukker?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: gem ændringer?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Kan ikke åbne %s fordi den er låst.\n" "\n" "Dette betyder enten at endnu et eksemplar af TaskCoach\n" "kører og har filen åben, eller at et tidligere eksemplar af\n" "Task Coach gik ned under kørsel. Hvis der ikke kører andre \n" "eksemplarer lige nu, kan du roligt bryde låsningen.\n" "\n" "Bryd låsen op?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: fil låst" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Kan ikke indsætte en lås da låsning ikke understøttes\n" "på placeringen %s.\n" "Åbn %s ulåst?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Lukket %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Gemte %(nrtasks)d opgaver til %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Kan ikke åbne %(filename)s\n" "da den er oprettet med en nyere version af %(name)s.\n" "Opgradér %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Fejl under læsning af %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Sikkerhedskopi-håndteringen vil nu åbne, så du får mulighed\n" "for at gendanne en tidligere version af denne fil." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synkroniserer..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synkroniserer med %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Velkommen til %(name)s version %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Kunne ikke genskabe panellayoutet fra TaskCoach.ini:\n" "%s\n" "\n" "Det forvalgte panellayout vil blive benyttet.\n" "\n" "Hvis dette sker igen, så sørg for at oprette en kopi af din fil " "TaskCoach.ini før programmet lukkes, åbn en fejlrapport og vedhæft den " "kopierede TaskCoach.ini-fil til feljrapporten." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s-indstillingsfejl" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synkroniseringstype" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "En iPhone- eller iPod Touch-enhed forsøgte at synkronisere med denne\n" "opgavefil, men protokolforhandlingen fejlede. Indsend venligst en\n" "fejlrapport." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Filer" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Redigér" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Vis" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Ny" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Handlinger" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Hjælp" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importer" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Eksportér" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Vælg" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Ny visning" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Gå til næste skærm\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Aktivere &tidligere visning\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Tilstand" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortér" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolonner" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "Af&runding" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Træ-indstillinger" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "V&ærktøjslinje" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Vis/skjul statuslinje" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Stat&uslinje" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Opgave" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Åbn en ny fane med en visning der viser opgaver" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Opgave&statistikker" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Åbn en ny fane med en fremviser, der viser opgavestatistikker" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Opgave oversigt&skort" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Åbner ny fane med en visning der viser opgaver i et oversigtskort med " "firkanter" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&idslinje" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Åbner ny fane med en visning der viser en tidslinje med opgaver og indsatser" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalender" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Åbner ny fane med en visning der viser opgaver i en kalender" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hierarkisk kalender" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Åbn en ny fane med en fremviser, der viser opgavehierarkiet i en kalender" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Katagori" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Åbner ny fane med en visning der viser kategorier" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Indsats" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Åbner ny fane med en visning der viser indsatser" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "_Indsats for valgt opgave(r)" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Åbner ny fane med en visning der viser indsatser for den valgte opgave" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Note" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Åbner ny fane med en visning der viser noter" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Skjul" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Skjul værktøjslinjen" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Små billeder" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Små billeder (16x16) på værktøjslinjen" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Mellemstørrelse billeder" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Mellemstørrelse billeder (22x22) på værktøjslinjen" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Store billeder" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Store billeder (32x32) på værtøjslinjen." #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Ny opgave fra ska&belon" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Skif&t kategori" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Skift opgave &prioritet" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Start registrering af arbejdsindsats" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (underkategorier)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (underopgaver)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioritet" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Side" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Påmindelse" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d opgaver har overskredet deadline" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "en opgave har overskredet deadline" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d opgaver forfalder snart" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "Én opgave forfalder snart" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "Monitorerer \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "Registerer indsats for %d opgaver" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Åben... \tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Åbn %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Sammenflet..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Sammenflet opgaver fra en anden fil med den nuværende fil" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "Lu&k \tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Gem\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Sammenflet &diskændringer\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Gem &som...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Gem &valgte opgaver til ny opgavefil ..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Gem valgte opgaver til en separat opgavefil" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Gem valg&te opgave som skabelon" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Gem den valgte opgave som opgaveskabelon" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importer skabelon..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importer en ny skabelon fra en skabelonfil" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Rediger skabeloner..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Rediger eksisterende skabeloner" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Rediger skabeloner" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Ryd slettede elementer op" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Foretag egentlig sletning af slettede opgaver og noter (se SyncML-kapitlet i " "Hjælp)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Det er ikke muligt at rydde de slettede elementer op.\n" "Hvis du planlægger at slå\n" "SyncML funktionen til igen med den\n" "samme server som du brugte sidst,\n" "vil disse elementer nok komme tilbage.\n" "\n" "Vil du stadigvæk gerne rydde op?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Sideopsætning...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Vis udskrift..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Vis hvordan udskriften vil se ud" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Vis udskrift" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Udskriv...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Administration af sikkerhedskopier ..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Håndtér alle opgavefil-sikkerhedskopier" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Eksport som &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Eksporter elementer fra en oversigt til HTML format" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Eksport som &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Eksporter elementer fra en oversigt til Komma Sepererede Værdier (CSV) " "formatet" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Eksporter som &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Eksporter elementer fra en oversigt til iCalendarn formatet" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Ekportér som &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Eksportér elementer fra en fremviser i formatet Todo.txt (se todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importer CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importer opgaver fra en Komma Sepereret Værdi (CSV) fil" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importer CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Den valgte fil er tom. Vælg venligst en anden fil." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importer Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importer opgaver fra en Todo.txt-fil (se todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importer Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML synkronisering..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synkroniser med en SyncML server" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Luk\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Fortryd" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Ann&ullér fortryd" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Klip\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopier\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Indsæt\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Indsæt som underpunkt\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Indstillinger...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Indstillinger" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML indstillinger..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Rediger SyncML indstillinger" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML indstillinger" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Tilpas værktøjslinjen" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Tilpas" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Alle\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Ryd markering" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Rydder markeringen" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Ryd alle filtre\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Nulstil alle kategorier\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Vis/skjul elementer der hører til %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Omdøb visning..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Omdøb den valgte visning" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Ny title for visningen" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Omdøb visningen" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Skjul denne kolonne" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Skjul den valgte kolonne" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Udvid alle\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Sammenfold alle\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "Stigende" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sotere stigende (afkrydset) eller faldende (uafkrydset)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Sorter &forskel på små/store bogstaver" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Ved sammenligning af text, er der sorteret med forskel på små/store " "bogstaver (markeret) eller uden forskel på små/store bogstaver (umarkeret)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Sorter efter status &først" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sorter efter status (aktiv/inaktiv/fuldført) først" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Skjul &sammensatte opgaver" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Vis/skjul opgaver med underopgaver i listetilstand" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Rediger...\tENTER" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Rediger de valgte element(er)" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Rediger igangværende opgave...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Rediger de(n) igangværende opgave(r)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Slet\tCtrl+DELETE" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Slet de valgte element(er)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Opret en ny opgave fra skabelon" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Ny opgave med valgte &kategorier..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Indsæt en ny opgave med de valgte kategorier afkrydset" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Ny opgave med valgte opgaver som &forudsætninger..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Indsæt en ny opgave med de valgte opgaver som forudsatte opgaver" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Ny opgave med valgte opgaver som af&hængigheder ..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Indsæt en ny opgave med de valgte opgaver som afhængige opgaver" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nyt &underelement..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Ny &underopgave..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Ny &undernote..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Ny &kategori..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Indsæt et nyt underelement til det valgte element" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Markér opgave som &aktiv\tAlt+RETUR" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Markér den valgte opgave(r) som aktiv" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marker valgte opgave(r) som fuldførte" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maksimer prioritet\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimer prioritet\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Forøg prioritet\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Formindsk prioritet\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Slå %s til/fra" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Flere ting" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "og" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Kan ikke sende email:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s mail fejl" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Tilføj ¬e...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Åben alle noter...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Start registrering af arbejdsindsats\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Start registrering af arbejdsindsats for opgaven(erne) fra de valgte " "arbejdsindsatser(er)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Intet emne)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Start registrering af arbejdsindsats for %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" "Vælg en opgave via menuen og start registrering af arbejdsindsats for den" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" "Stop registrering eller fortsæt registrering af indsats\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Af&slut registrering %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Ophør med at registrere arbejdsindsats for den aktive opgave" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Fortsæt registrering %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Fortsæt registrering af indsats for den opgave der sidst var i gang" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "flere opgaver" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Ny kategori...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Ny note...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Ny ¬e med valgte kategorier..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Indsæt en ny note med de valgte kategorier markeret" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Tilføj bilag...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Fejl ved åbning af det vedhæftede" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Åben alle bilag...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Hjælp indhold\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Hjælp indhold\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Hjælp" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tips" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tips om programmet" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymisering" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Gør en opgavefil anonym, så den kan vedhæftes til en fejlrapport" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Din opgavefil er blevet gjort anonym og gemt her:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Færdig" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Om %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Version og kontakt information for %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Om %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licens" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licens" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Søg efter opdatering" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Søg efter om der er en ny version tilgængelig af %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Kan ikke åbne adressen:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s-adressefejl" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "O&ftest stillede spørgsmål" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Gennemse de ofte stillede spørgsmål og svar" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Rapportér en &fejl..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Rapportér en fejl eller gennemse kendte fejl" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Anmod om en &funktion..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Anmod om en ny funktion eller stem på eksisterende anmodninger" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Anmod om &hjælp..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Anmod om brugerhjælp fra udviklerne" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Hjælp med at forbedre &oversættelserne..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Hjælp med at forbedre oversættelserne af %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Donér..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Donér for at støtte udviklingen af %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "Gendan" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Gendan vinduet til tidligere stand" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Søg" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Indsats" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Indsats pr. dag" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Indsatser pr. måned" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Indsatser pr. uge" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Liste" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Træ" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrer på alle markerede kategorier" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrer på hvilken som helst af de markerede kategorier" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Konfigurer" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Konfigurer kalender fremviseren" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Næste periode" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Vis næste periode" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Forige periode" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Vis forige periode" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&I dag" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Vis i dag" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatisk tilpasning af kolonner" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Hvis markeret, tilpas automatisk kolonnebredden til at fylde alt tilgængelig " "plads" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Ingen afrunding" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minut" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutter" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Præcision af afrunding" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Rund &altid op" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Rund altid op til næste afrunding" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Type" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sorter efter emne" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Emne" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sortér efter beskrivelse" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Beskrivelse" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Oprettelsesdato" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Sortér efter oprettelsesdato" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Ændringsdato" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Sortér efter ændringsdato" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Vis/skjul beskrivelse kolonne" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Noter" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Vis/skjul noter kolonnen" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Vis/skjul kolonne med oprettelsesdato" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Vis/skjul kolonne med ændringsdato" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Værktøjslinjerne kan tilpasses" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "&Manuel angivelse af rækkefølge" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Vis/skjul kolonnen for manuel angivelse af rækkefølge" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Bilag" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Vis/skjul bilags kolonnen" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Katagorier: %d valgt, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filterert" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periode" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Total forbrugt tid" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Total fortjeneste" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Tirsdag" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Onsdag" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Torsdag" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Fredag" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Lørdag" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Katagorier" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Vis/skjul katagorier kolonne" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Tid brugt" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Vis/skjul tid brugt kolonne" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "Fo&rtjenneste" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Vis/skjul fortjenneste kolonne" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Samlet tid brugt" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Vis/skjul kolonnen total tid brugt kolonnen" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Samlede indtægter" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Vis/skjul totalt fo&rtjenneste kolonne" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Indsats per ugedag" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Vis/skjul kolonnen tid brugt pr ugedag" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Indsatsaggregering" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Indsats: %d valgt, %d synlige, %d i alt. Tidsforbrug: %s valgt, %s synlige, " "%s i alt" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d registrer" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Detaljer:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Indsats for valgte opgave(r)" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sorter kategorier efter emne" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sorter kategorier efter beskrivelse" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Sortér kategorier efter oprettelsesdato" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Sortér kategorier efter seneste ændringsdato" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sortér kategorierne manuelt" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sorter bilag efter emne" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sorter bilag efter beskrivelse" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sorter bilag efter kategori" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Sortér vedhæftninger efter oprettelsesdato" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Sortér vedhæftninger efter seneste ændringsdato" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sorter noter efter emne" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sorter noter efter beskrivelse" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sorter noter efter kategori" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Sortér noter efter oprettelsesdato" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Sortér noter efter seneste ændringsdato" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sortér noter manuelt" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sorter opgaver efter emne" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sorter opgaver efter beskrivelse" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sorter opgaver efter kategori" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Sortér opgaver efter oprettelsesdato" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Sortér opgaver efter seneste ændringsdato" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sortér opgaver manuelt" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Sortér opgaver efter planlagt startdato" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Planlagt startdato" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sorter opgaver efter deadline" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Deadline" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sorter efter fuldførsels dato" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Deadline" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sorter opgaver efter forudsatte opgaver" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Forudsætninger" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sorter opgaver efter afhængige opgaver" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Sorter opgaver efter tid tilbage" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Tid tilbage" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Sorter opgaver efter procent færdig" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Procent færdig" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sorter opgaver efter gentagelse" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Gentagelse" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sorter opgaver efter budget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sorter opgaver efter brugt tid" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Resterende b&ugdet" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sorter opgaver efter budget" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sorter opgaver efter prioritet" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sorter opgaver efter time aflønning" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Time aflønning" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sorter opgaver efter fast aflønning" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fast aflønning" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sorter opgaver efter fortjeneste" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sorter opgaver efter påmindelse dato og tid" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Påmindelse" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Emne" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sorter noter efter kategorier" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Noter: %d valgt, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: Ikke tilgængelig" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Opgaver %d valgte, %d synlige, %d I alt" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d overskredet, %d forsinkede, %d inaktive, %d fuldførte" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Skift-klik på et filterværktøj for blot at se opgaver, der tilhører den " "tilsvarende status" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Opgaver" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Tidslinje" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Nu" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Opgave kasse kort" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Læg opgaver ud efter" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hierarkisk kalender" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Konfiguration af fremviser for hierarkisk kalender" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "kalender fremviser konfiguration" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Manuel rækkefølge" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% færdig" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Tid tilbage" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Datoer" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Alle dato kolonner" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Vis/skjul alle dato relaterede kolonner" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Vis/skjul deadline kolonne" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Aktuel startdato" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Vis/skjul kolonne med aktuel startdato" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Vis/skjul deadline" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Vis/skjul kolonnen tid tilbage" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Vis/skjul kolonnen gentagelse" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Alle budget kolonner" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Vis/skjul alle budget relaterede kolonner" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Vis/skjul budget kolonne" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Budget tilbage" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Vis/skjul budget tilbage kolonne" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finansiel" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Alle finansielle kolonner" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Vis/skjul alle financielle kolonner" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Vis/skjul time aflønnings kolonne" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Vis/skjul fast aflønning kolonne" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Vis/skjul kolonnen forudsætninger" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Vis/skjul kolonnen procent færdig" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Vis/skjul vedhæftet kolonne" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Vis/skjul prioriteringens kolonne" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Vis/skjul påmindelse kolonne" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Vis opgaver som" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Opgavestatistikker" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Komma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tabulatortast" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Mellemrumstast" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Kolon" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Semikolon" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (dage først)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (måneder først)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Enkelt citationstegn" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Dobbelt citationstegn" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importer kun de valgte rækker" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Første linje beskriver felter" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Afgrænser" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Datoformat" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Citationstegn" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Felt #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Vælg venligst en fil." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategori" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Påmindelsesdato" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Procent færdig" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Kolonneoverskrift i CSV-fil" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s-attribut" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Ingen fejltilknytning." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Feltet \"%s\" kan ikke vælges flere gange." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Felterne \"%s\" kan ikke vælges flere gange." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Indholdsfortegnelse" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Om opgaver" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Opgave egenskaber" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Opgave tilstande" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Opgave farver" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Påmindelser" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Om arbejdsindsats" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Arbejdsindsats egenskaber" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Om kategorier" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Kategori egenskaber" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Om noter" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Note egenskaber" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Udskrivning og eksportering" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Om udskrivning og eksportering" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Udskrivning" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Eksportering" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Anvendelse med flere brugere" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "Om flere brugere" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Tilvalg for lagring" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Om at e-maile opgaver" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Brugerdefinerede attributter til at e-maile" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integration af e-mail" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Om e-mail integration" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Vedhæftning af e-mail til en opgave" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Oprette en opgave ud fra en e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML support" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Hvad er SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Opsætning" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Begrænsninger" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Problemløsning" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Ryd slettede elementer" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone og iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s på iPhone'en" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Konfiguration" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s på Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt og Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importerer todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Eksporterer todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Opgave skabeloner" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Om skabeloner" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Brug af skabeloner" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Grafisk brugerflade" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Tastatur genveje" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Opgaver er grund objekter som du kan manipulere. Opgaver kan\n" "udgøre alt fra en enkelt lille ting du skal gøre, til et komplet\n" "projekt der består af forskellige faser, og mange aktiviteter." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Du kan ændre følgende egenskaber for opgaver:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Emne: en enkelt linje der summerer opgaven." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Beskrivelse: en beskrivelse af opgaven på flere linjer." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Forfalds dato: den dato at opgaven skal være færdig. \n" "Denne kan sættes til 'Ingen' hvilket vil sige at opgaven ikke har en fast " "forfalds dato." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Afslutnings dato: denne dato er 'Ingen' så længe opgaven \n" "ikke er færdig. Den bliver sat til dags dato, når du markerer opgaven som \n" "færdig. Afslutnings datoen kan også indtastes manuelt." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: antallet af timer som er tilgængelig til opgaven." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Time pris: mængden af penge, der tjenes i timen med opgaven." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Fast pris: mængden af penge, der tjenes med den opgave \n" " nuanset den tid der bruges." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "De følgende egenskaber er beregnet ud fra ovenstående egenskaber:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Dage tilbage: antallet af dage tilbage indtil forfalds datoen." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Tid brugt: arbejdsindsats der er brugt på opgaven." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Budget tilbage: opgave budget minus tiden der er brugt på opgaven." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Indtægter: time prisen gange timer brugt plus fast pris." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Opgaver har altid nøjagtig én af følgende tilstande:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktiv: den aktuelle startdato er tilbage i tid;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inaktiv: opgaven er ikke påbegyndt og/eller det er ikke \n" "alle påkrævede opgaver, der er blevet gjort færdige." #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Færdig: opgaven er færdig." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Opgaver kan også blive refereret til som:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Overskredet: Deadline er passeret;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Forfalder snart: forfalds datoen er snart (hvad 'snart' er, kan \n" "rettes til under indstillinger);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Forsinket: den planlagte start er tilbage i tid og \n" "opgaven er ikke blevet påbegyndt;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Over budget: intet budget tilbage;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Under budget: der er stadigvæk budget tilbage;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Intet budget: opgaven har ikke noget budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Opgavens tekst er farvet efter følgende regler:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Overskredne opgaver er røde" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Opgaver der snart har forfald er orange;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Aktive opgaver har sort tekst med et blåt ikon;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Forsinkede opgaver har farven lilla" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Fremtidige opgaver er grå, og" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Færdige opgaver er grønne." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Alt dette forudsætter selvfølgelig, at du ikke har ændret tekst farverne via " "dialogboksen indstillinger." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "En opgaves baggrundsfarve bestemmes af kategorierne \n" "som opgaven tilhører. Se sektionen om \n" "kategori egenskaber neden under." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Når du bruger tid på over, kan du optage den mængde af tid\n" "der bruges, ved at registrere arbejdsindsatsen. Vælg en opgave og klik på " "'Start registrering af arbejdsindsats' under\n" "Arbejdsindsats menuen eller sammenhængs menu eller 'Start registrering af " "arbejdsindsats' værktøjslinje \n" "knappen." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "Optagelser af arbejdsindsats har de følgende indstillinger du kan ændre:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Opgave: opgaven som arbejdsindsatsen tilhører." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Start dato/tid: arbejdsindsatsens start dato og tid." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Stop dato/tid: stop dato tid for arbejdsindsatsen. Dette kan være \n" "'Ingen' så længe du stadigvæk arbejder på opgaven." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Beskrivelse: en beskrivelse af arbejdsindsatsen over flere linjer." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Tidsforbrug: hvor meget tid du har brugt på at arbejde på opgaven." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Indtægter: penge tjent ved tidsforbruget." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Opgaver og noter kan tilhøre en eller flere kategorier. Først skal \n" "du oprette kategorien du vil bruge via 'Kategori' menuen. Så, \n" "kan du tilføje elementer til en eller flere kategorier ved at redigere " "elementet og slå \n" "de relevante kategorier for det element til på i kategori-ruden i redigér " "dialogvinduet." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Du kan begrænse antallet af elementer der er vist i opgave og note-" "visningerne til en \n" "eller flere kategorier ved at slå en kategori til i kategori-visningen. For " "eksempel, \n" "hvis du har en kategori der hedder 'telefon opkald' og du slår den kategori " "til, vil \n" "opgave-visningen kun vise de opgaver der tilhører den kategori; altså \n" "de telefonopkald du kan foretage." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Kategorier har følgende egenskaber du kan ændre:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Emne: en enkelt linje der summerer kategorien." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Beskrivelse: en beskrivelse af kategorien over flere linjer." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Egenskaber for udseende såsom ikon, skriftstype og farver: \n" "egenskaberne for udseendet bruges til at gengive kategorien, men også de " "elementer\n" "der hører til den kategori. Hvis en kategori ikke har en farve, vil den " "forriges egenskaber \n" "blive brugt. Hvis et element hører til flere kategorier der hver især har en " "farve \n" "forbundet til sig, vil en blanding af disse farver blive brugt til at " "gengive det \n" "element." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Noter kan bruges til at fange tilfældig information som du vil \n" "beholde i din opgave-fil. Noter kan stå alene eller være en del af andre " "elementer,\n" "såsom opgaver og kategorier. Noter der står alene vises i note\n" "visningen. Noter der er en del af andre elementer vises ikke i note\n" "visningen." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Noter har følgende egenskaber du kan ændre:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Emne: en enkelt linje der summerer noten." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Beskrivelse: en beskrivelse af noten over flere linjer." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Indstillinger for udseende såsom ikon, skrifttype og farver." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Både udskrivning og eksportering virker på samme måde: når du udskriver\n" "eller eksporterer data, bliver data fra den aktive visning udskrevet eller " "eksporteret.\n" "Endvidere, bliver data udskrevet eller eksporteret i samme rækkefølge som\n" "de vises i visningen. Kolonnerne der er synlige bestemmer hvilke \n" "detaljer der udskrives eller eksporteres. Når du filtrere elementer, for " "eksempel skjul\n" "færdige opgaver, bliver disse elementer ikke udskrevet eller eksporteret." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Forbered indholdet af en visning, ved at sætte elementerne i den \n" "rigtige rækkefølge, vis eller skjul de hensigtsmæssige kolonner og anvend de " "relevante \n" "filtre." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Du kan se hvordan udskriften vil se ud\n" "via Filer -> Vis udskrift menupunktet. Du kan redigere sideopsætningen\n" "via Filer -> Sideopsætning. Når du udskriver og platformen understøtter det, " "kan du \n" "vælge at udskrive alle synlige elementer i den aktive visning, eller bare de " "\n" "markerede elementer." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Efterfølgende, vælg det format du vil eksporterer til og om du\n" "ønsker at eksportere alle synlige elementer eller kun de markerede. " "Tilgængelige formater\n" "til at eksportere til inkluderer CSV (komma sepereret format), HTML og " "iCalendar. Når\n" "du eksporterer til HTML, oprettes en CSS fil som du kan redigere\n" "for at ændre udseendet af HTMLen." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Test er endnu ikke foretaget." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "Dropbox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws - postprogram" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "På grund af en begrænsning i Thunderbird, kan du ikke trække og slippe " "flere\n" "e-mails fra Thunderbird. Dette gælder ikke Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Der er to måder at vedhæfte en e-mail til en opgave på; du kan:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Slip den på en opgave enten i opgave træet eller opgave listen." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Slip den i bilagsruden i opgavebehandleren." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Hvis du slipper en e-mail på en top del af opgavetræet eller opgavelisten\n" "oprettes der en ny opgave. Dens emne er mailens emne, dens\n" "beskrivelse er den indhold. Yderligere, vedhæftes mailen automatisk\n" "til den nyoprettede opgave." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML er en XML protokol der er designet til at synkronisere flere\n" "programmer med en server. En populær open-source server er Funambol. " "Synkroniserings \n" "klienter er tilgængelige til mange enheder og programmer (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, osv...), såvel som såkaldte \"forbindere\"\n" "som tillader serveren at synkronisere med Exchange, Google Calendar,\n" "osv." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s har indbygget SyncML klient understøttelse på Windows og Mac OS X\n" "(under forudsætning af at du bruger de medfølgende binære filer). Dette " "betyder at du kan\n" "indstille %(name)s til at synkronisere med den samme SyncML server du\n" "synkronisere Outlook med og få alle Outlook opgaver og noter i\n" "din %(name)s fil, såvel som %(name)s opgaver og noter i Outlook. Eller\n" "din Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Denne funktion er valgfri og slået fra som standard. For at slå den til, \n" "skal du åbne indstillinger og afkrydse den på Funktioner siden." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "For at indstille SyncML, redigér da SyncML indstillingerne i Redigér/SyncML " "\n" "indstillinger. Indtast synkroniserings URLen, dit ID på serveren og vælg \n" "hvilke elementer der skal synkroniseres (opgaver og/eller noter). URLen " "afhænger af serveren\n" "du vælger; nogle eksempler er:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "Databasenavnene er ret almindelige; standard værdierne burde virke." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Hver opgavefil har sit eget klient ID, så to forskellige opgave \n" "filer vil blive opfattet som forskellige \"enheder\" af serveren." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Nogle begrænsninger på grund af det faktum, at den underliggende datatype er " "\n" "vcalendar, er at nogle af %(name)s funktioner ikke kan overføres til \n" "serveren." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Opgave og kategori hierarkiet er tabt til serveren." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Gentagelse og påmindelser er ikke undstøttet endnu." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Note kategorier er tabt til serveren." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Sandsynligvis nogle andre..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "SyncML menu-elementer er kun præsenteret hvis din platform er \n" "understøttet. Nuværende understøttede platforme er:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (se nedenunder)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10,3 og senere, både Intel og PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Du kan opleve problemer under Windows hvis du ikke har \n" "Microsoft Visual 8 runtime installeret. Du kan downloade det på\n" " Microsoft download siden." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Når SyncML er slået til, vil sletning af en opgave eller note ikke slette " "den\n" "rigtigt, men nærmere markere den som slettet. Den slettede opgave eller note " "er faktisk \n" "fjernet fra opgave eller note listen ved næste synkronisering. På grund af " "dette, \n" "kan der hvis du bruger SyncML funktionen, og slår den fra uden at have \n" "synkroniseret, være nogle slette noter eller opgaver i din opgavefil. Dette " "er ikke et \n" "problem, men det bruger lidt mere diskplads." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "I dette tilfælde, kan \"fjern slettede elementer\" menupunktet i Filer " "menuen \n" "bruges til rent faktisk at slette disse opgaver. Den er kun slået til når " "du\n" "har brug for den, det er når der er elementer at fjerne. Vær opmærksom på at " "at hvis du gør dette,\n" "og slår SyncML til igen og synkroniserer med den samme server du brugte\n" "tidligere, vil de elementer dukke op igen, da serveren\n" "ikke ved at de er slettede." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch og iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s på iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Der er en iPhone/iPod Touch/iPad medfølgende app til %(name)s, \n" "tilgængelig på Apple's AppStore. (Hvis du ikke har iTunes installeret " "på \n" "din computer, får du vist en side hvor du kan downloade iTunes). \n" "Den understøtter følgende funktioner:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Grundlæggende opgave egenskaber: emne, beskrivelse, datoer (med \n" "gentagelse)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarkiske opgaver og kategorier" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Tidsregistrering" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Flere opgavefiler" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "To-vejs synkronisering med %(name)s på skrivebordet" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "Programmet er universalt og har en brugerdefineret iPad brugerflade." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Konfiguration på iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Der er nogle indstillinger for iPhone/iPod Touch/iPad appen i \n" "Indstillinger programmet:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Vis færdige: om færdige opgaver skal vises." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Ikon position: LED ikonet kan dukke op i enten den \n" "venstre side eller den højre side af skærmen." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Kompakt tilstand: hvis dette er slået til, har opgavelisten mindre \n" "LEDer og viser ikke kategorier eller datoer." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Bekræft færdig: hvis slået til, vil en beskedboks dukke op til \n" "bekræftelse når du markere en opgave som færdig ved at trykke på dens LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# før dage snarlig forfald: Hvor mange dage i fremtiden er \n" "betragtet som \"snarlig\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Konfiguration på skrivebordet, alle platforme" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Før synkronisering, skal du også konfigurere %(name)s på \n" "skrivebordet; i indstillinger, under \"Funktioner\" fanen, slå \"Aktiver " "iPhone\n" "synkronisering\" til. Genstart %(name)s. Nu, under indstillinger, vælg \n" "\"iPhone\" fanen og udfyld som minimum kodeordet." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Når du trykker på \"Synkroniser\" knappen i kategorivisningen, vil %(name)s\n" "automatisk genkende kørende instanser af %(name)s på dit\n" "skrivebord og bede dig vælge en (du kan have flere instanser\n" "på den samme computer). Det viste navn er, som standard, en streg\n" "der identificerer computeren den kører på. For at tilpasse dette, kan du\n" "ændre \"Bonjour service navnet\" i konfigurationen." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s vil huske den valgte instans og prøve den næste gang\n" "du synkronisere; hvis den ikke kører, vil den spørge dig igen." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Bemærk at denne synkronisering sker gennem netværket; der \n" "er ingen grund til at enheden er forbundet via USB eller at iTunes\n" "kører." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Konfiguration på Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "På Windows, skal du installere Bonjour til Windows og\n" "fjerne blokeringen når du bliver spurgt af din firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Konfiguration på Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Min computer vises ikke på listen når jeg forsøger at synkronisere" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhonen kan ikke forbinde til min computer" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Hvis du har en firewall, skal du sørge for at portene 4096-4100 er åbne." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt er et open source todo-liste-værktøj, lavet af Gina Trapani, \n" "som arbejder på flade tekst filer. Todo.txt har en kommandolinje- \n" "grænseflade. Men, da filformatet er ren tekst, så kan du også redigere \n" "dine opgaver med en vilkårlig tekstbehandler. \"Todo.txt Touch\" er en \n" "version af Todo.txt til Android. Todo.txt Touch bruger en todo.txt fil \n" "som bor i din Dropbox folder. %(name)s kan importere fra og eksportere \n" "til denne todo.txt fil." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Når du importerer, vil %(name)s forsøge at finde lignende opgaver og \n" "kategorier og opdaterer dem i stedet for at skabe nye. Den finder dem \n" "ved at se på emnet for opgaven (eller projektet eller konteksten) og \n" "forælder-opaven, hvis der er nogen." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Skabeloner er blåkopier for nye opgaver. Indtil videre er den eneste \n" "opgave-egenskab der kan parameteriseres, datoerne. Når man instantierer \n" "en skabelon, så får den nye opgave sine datoer udskiftet med datoer relativt " "til \n" "den nuværende dato." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux og Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux og Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Indsæt et nyt underelement" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Redigér de valgte element(er) eller luk et vindue" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Markér de valgte opgave(r) færdig/ikke færdig" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Annuller et vindue eller flyt tastaturfokus fra søgeboksen tilbage til " "visningen" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Flyt tastaturfokus til det næste felt i vinduet" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Flyt tastaturfokus til det forrige felt i vinduet" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Ned" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Du kan trække og slippe opgaver i træ vinduet for at omarrangerer forældre-" "barn relationen mellem opgaver. Det samme gælder for kategorier" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Indsæt en ny kategori" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Klip valgte til udklipsholderen" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopier valgte til udklipsholder" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Indsæt fra udklipsholder" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Rediger indstillinger" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Anuller den sidste kommando som var fortrudt" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Vælg alle i nuværende visning" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Fortryd sidste handling" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Tilføj en indsats til valgte opgave(r)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Start registrering af arbejdsindsats for den valgte opgave(r)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Luk den aktuelle fil" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Luk %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Åben en %s fil" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Gem den aktuelle fil" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Gem den aktuelle fin under et nyt navn" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Hjælp om programmet" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Indsæt en ny note" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Udskriv den aktuelle fil" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Opsæt indstillinger for udskrift" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Vis alle (nulstiller alle filtre)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Indsæt en ny opgave" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Sammenfold alle med underpunkter" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Udvid alle underpunkter" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Gå til næste skærm" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktiver den tidligere åbnede visning" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protokol version: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Enhedsnavn: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Sender filnavn: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d kategorier" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Send kategori %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Svar: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d opgaver" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Send opgave %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d indsatser" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Send indsats %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Færdig." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nye kategorier" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nye opgaver" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nye indsatser" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d ændrede kategorier" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d ændrede opgaver" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d ændrede indsatser" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d slettede kategorier" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d slettede opgaver" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d slettede indsatser" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Slet kategori %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Redigér kategori %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Ny opgave: %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Slet opgave %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Redigér opgave %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Ny indsats %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Redigér indsats %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Sender GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Intet emne" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Ny opgave forfalder i dag" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Ny opgave forfalder i morgen" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dage" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 dag" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Hver %(frequency)d dag" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Hver %(frequency)d uger" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Hver %(frequency)d måneder" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Hvert %(frequency)d år" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Hver anden dag" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Hver anden uge" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Hver anden måned" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Hver andet år" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "nu" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Synkroniseringen af kilden %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synkronisering" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synkroniserer. Vent venligst.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d elementer tilføjet.\n" "%d elementer opdateret.\n" "%d elementer slettet." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "L&uk" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Luk alle" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Næste" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Forrige" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Vindue" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Rediger" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Måned" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertikal" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Alle filer (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "Forskel på &store og små bogstaver" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Sammenlign store og små bogstaver ved filtrering" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Inkludér underelementer" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Inkluder underpunkter som matcher søge resultaterne" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Søg også i beskrivelse" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Sidste søgninger" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Visning ikke søgbar" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Kompatibilitets advarsel" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Vis aldrig denne besked igen" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Fejl under åbning af URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Slet\tDELETE" taskcoach-1.4.3/i18n.in/de.po000077500000000000000000006564411265347643000156300ustar00rootroot00000000000000# translation of de.po to Nederlands # Task Coach # Copyright (C) 2004-2005 Frank Niessink # Frank Niessink # # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:31+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: GERMANY\n" "Language: \n" "X-Poedit-Language: German\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Es sind Fehler aufgetreten. Weitere Details wurden in der Datei " "\"taskcoachlog.txt\" im Benutzerverzeichnis \"Eigene Dateien\" gespeichert." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Fehler" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Es sind Fehler aufgetreten. Weitere Details siehe: \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Konnte folgende Einstellungen nicht aus der TaskCoach.ini laden:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s Dateifehler" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" ist jetzt eine Hauptkategorie, da die übergeordnete Kategorie lokal " "gelöscht wurde." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Konflikte für \"%s\" sind aufgetreten.\n" "Die lokale Version wird verwendet." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Speicherort für Anhänge bearbeiten" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Speicherort für \"%s\" bearbeiten" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Anlage hinzufügen" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Hinzufügen der Anlage zu \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Neuer Anhang" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Anhang entfernen" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Anhang von \"%s\" entfernen" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopieren" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopiere \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Löschen" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Lösche \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Ausschneiden" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Ausschneiden \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Einfügen" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Einfügen \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Einfügen als Unterpunkt" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Einfügen als Unterpunkt von \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Ziehen und Ablegen" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Verschiebe \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Betreffs bearbeiten" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Ändere Betreff \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Beschreibung bearbeiten" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Beschreibung \"%s\" bearbeiten" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Icon ändern" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "ändern von Icon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Schriftart wechseln" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "wechseln von Schriftart \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Vordergrundfarbe wechseln" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "ändere Vordergrundfarbe \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Hintergrundfarbe ändern" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "ändere Hintergrundfarbe \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Wechsle Kategorie" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Kategorie von \"%s\" umschalten" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Neue Kategorie" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Neue Unterkategorie" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Neue Unterkategorie von \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Neue Unterkategorie" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Exklusive Unterkategorien bearbeiten" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Exklusive Unterkategorien von \"%s\" bearbeiten" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Kategorien löschen" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Lösch Kategorie \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Verschieben der Kategorien" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Neuer Aufwand" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Neuer Aufwand von \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Aufwände löschen" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Lösche Aufwand \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Ändere Aufgabe vom Aufwand" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Ändere Aufgabe vom Aufwand von \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Startdatum und -zeit des Aufwands bearbeiten" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Startdatum und -zeit von \"%s\" bearbeiten" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Enddatum und -zeit des Aufwands bearbeiten" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Enddatum und -zeit von \"%s\" bearbeiten" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Neue Notiz" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Neue Unternotiz" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Neue Unternotiz von \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Neue Unternotiz" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Notizen löschen" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Lösche Notiz \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Notiz verschieben" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "verschiebe Notiz \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Notiz hinzufügen" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Hinzufügen einer Notiz zu \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Unterpunkt hinzufügen" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Unterpunkt hinzufügen zu \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Notiz entfernen" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Notiz entfernen von \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Aufgaben ziehen und ablegen" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Aufgaben löschen" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Lösche Aufgabe \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Neue Aufgabe" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Neue Teilaufgaben" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Neue Teilaufgabe von \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Neue Teilaufgabe" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Aufgabe(n) als erledigt markieren" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Markiere \"%s\" als erledigt" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Als aktiv markieren" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "\"%s\" als aktiv markieren" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Aufgabe als inakziv markieren" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "\"%s\" als inaktiv markieren" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Stoppuhr starten" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Verfolgen von \"%s\" beginnen" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stoppuhr anhalten" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Verfolgen von \"%s\" beenden" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Höchste Priorität" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximiere Priorität von \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Niedrigste Priorität" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimiere Priorität von \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Priorität erhöhen" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Erhöhe Priorität von \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Priorität verringern" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Verringere Priorität von \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Priorität wechseln" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "wechsel Priorität von \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Notizen zu Aufgaben hinzufügen" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Ändert das geplante Startdatum" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Ändere das geplante Startdatum von \\\"%s\\\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Fälligkeitsdatum ändern" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Fälligkeitsdatum von \"%s\" ändern" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Ändere das tatsächliche Startdatum" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Ändere das tatsächliche Startdatum von \\\"%s\\\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "ändere Fertigstellungsdatum" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "ändere Ferigstellungsdatum von \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Erinnerungsdaten/-zeiten ändern" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Erinnerungsdaten/-zeiten von \"%s\" ändern" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Wiederholungen ändern" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Wiederholungen von \"%s\" ändern" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Fertigstellungsgrad von \"%s\" ändern" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Ändern, wann Aufgaben als erledigt markiert werden" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Ändern, wann \"%s\" als erledigt markiert wird" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Budget ändern" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "ändere Budget von \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Stundensatz ändern" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Stundensatz von \"%s\" ändern" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Festbetrag ändern" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Festbetrag von \"%s\" ändern" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Bedingungen umschalten" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Bedingungen von \"%s\" umschalten" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Fehler bei lesen von %s-%s Einstellung aus %s.ini" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Der Wert ist: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Der Fehler ist: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s nutzt die Standardeinstellung und sollte normal fortgesetzt werden." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Fehler in den Einstellungen" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Fehler beim Speichern von %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Fehler beim Speichern" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app Nachricht" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Neuer Anhang..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Neuen Anhang einfügen" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Anlage öffnen" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Ausgewählte Anhänge öffnen" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 Minuten" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Nicht schlummern" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 Minuten" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 Minuten" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 Minuten" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 Minuten" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 Stunden" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 Minuten" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 Stunde" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 Stunden" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 Stunden" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 Stunden" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 Stunden" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 Stunden" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 Stunden" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 Stunden" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 Stunden" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 Stunden" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 Stunden" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 Wochen" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 Woche" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Gesamt" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Gesamt für %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Neuer Aufwand...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Deaktivierte Aufgaben" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Verstecke &deaktivierte Aufgaben" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Inaktive Aufgaben: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Zeige/Verberge deaktivierte Aufgaben (unvollständige Aufgaben ohne " "tatsächliches Startdatum)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Verspätete Aufgaben" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Verstecke &verspätete Aufgaben" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Bald endende Aufgaben: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Ein-/Ausblenden vergangener Aufgaben(Inaktive Aufgaben mit geplantem Start " "in der Vergangenheit)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktivierte Aufgaben" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktive Aufgaben: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Verstecke &aktive Aufgaben" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Zeige/Verberge aktive Aufgaben (unvollständige Aufgaben mit tatsächlichem " "Startdatum in der Vergangenheit)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Bald fällige Aufgaben" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Bald fällige Aufgaben: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Verstecke &bald fällige Aufgaben" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Zeige/Verberge bald fällige Aufgaben (unvollständige Aufgaben mit " "Fälligkeitsdatum in naher Zukunft)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Überfällige Aufgaben" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Verstecke &überfällige Aufgaben" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Überfällige Aufgaben: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Zeige/Verberge überfällige Aufgaben (unvollständige Aufgaben mit " "Fälligkeitsdatum in der Vergangenheit)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Erledigte Aufgaben" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Erledigte Aufgaben: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Verstecke &erledigte Aufgaben" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Anzeigen/Ausblenden erledigter Aufgaben" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Neue Aufgabe..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Pfeil nach unten" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Pfeil nach unten mit Status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blaue Pfeile im Kreis" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Grüne Pfeile im Kreis" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Pfeil nach oben" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Pfeil nach oben mit Status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bombe" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Buch" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Bücher" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Box" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Marienkäfer" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Kuchen" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Taschenrechner" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalender" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Katze" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Diagramme" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Chat" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Häkchen" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Häkchen" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Uhr" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Wecker" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stoppuhr" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Zahnrad" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Zahnräder" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Computer" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Notebook" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Pocket PC" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Rotes Kreuz" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Würfel" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokument" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blaue Erde" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Grüne Erde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Briefumschlag" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Briefumschläge" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blauer Ordner" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Hellblauer Ordner" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Grüner Ordner" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grauer Ordner" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Oranger Ordner" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Violetter Ordner" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Roter Ordner" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Gelber Ordner" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blauer Ordner mit Pfeil" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Herz" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Herzen" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Grünes Haus" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Rotes Haus" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Schlüssel" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Schlüssel" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lampe" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Fragezeichen" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Hinweis" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Blaue LED" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Hellblaue LED" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Graue LED" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Grüne LED" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Hellgrüne LED" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Orange LED" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Violette LED" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Rote LED" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Gelbe LED" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Rettungsring" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Geschlossenes Schloss" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Offenes Schloss" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Vergrößerungsglas" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Klavier" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Musik-Note" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Notiz" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palette" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Büroklammer" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Bleistift" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Person" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Personen" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Ausweis" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Sprechende Person" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Warnschild" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Roter Stern" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Gelber Stern" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Ampel" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Papierkorb" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Blitz" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Regenschirm" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Teilweise sonnig" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Schraubenschlüssel" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Kein Symbol" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Datei" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Vollständiger Pfad" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Datum" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Wiederherstellen" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Schließen" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Speicherort für die Wiederherstellung auswählen" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Nachricht von den %s Entwicklern" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Siehe:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Beschreibung" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Bearbeiten um alle Betreffs zu ändern" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Betreff" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Bearbeiten um alle Beschreibungen zu ändern" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Erstellungsdatum" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Änderungsdatum" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priorität" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Gegenseitig ausschließend" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Unterkategorien" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Bearbeiten um den Speicherort aller Anhänge zu ändern" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Durchsuchen" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Ort" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Darstellung" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Vordergrundfarbe" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Hintergrundfarbe" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Schrift" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Symbol" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Termine" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Geplantes Startdatum" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Fällig am" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Tatsächliches Startdatum" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Erledigt am" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Erinnerung" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Wiederholung" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Fortschritt" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Prozent fertig" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Systemeinstellung verwenden" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nein" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ja" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Aufgabe als erledigt markieren, wenn alle Teilaufgaben erledigt sind?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Aufwand" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Restzeit" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Stundensatz" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Festbetrag" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Umsatz" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Aufwand" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorien" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Anlagen" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notizen" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Bedingungen" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Aufgabe bearbeiten" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Aufgabe" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Begonnen" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Woche(n)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Tag(e)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Stunde(n)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minute(n)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Angehalten am" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Zeit rückwirkend ab letztem Zeitstopp erfassen" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Nachverfolgung jetzt beenden" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Warnung: Startzeitpunkt muss vor dem Endzeitpunkt liegen" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Mehrere Aufgaben" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (Aufgabe)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Mehrere Kategorien" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (Kategorie)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Mehrere Notizen" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (Notiz)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Mehrere Anhänge" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (Anhang)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Mehrere Aufwendungen" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (Aufwand)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Verwende Schriftart:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Benutze Farbe:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Keine" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "täglich" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Monatlich" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "wöchentlich" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Jährlich" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "gleichen Wochentag beibehalten" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", jeden" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Anhalten nach" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "Wiederholungen" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Jede weitere Wiederholung planen auf Basis von" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "vorigem geplante Start- und/oder Fälligkeitsdatum" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "letztem Erledigungsdatum" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "Tag(e)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "Zeitspanne" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "Woche(n)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "Monat(e)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "Jahr(e)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportiere Einträge von:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Nur ausgewählte Elemente exportieren" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Spalten für Export:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Datum und Zeit in separaten Spalten anzeigen" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Style-Informationen in eine separate CSS-Datei schreiben" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Wenn eine CSS-Datei für die exportierte Datei besteht, dann werden %(name)s " "diese nicht überschreiben. Dadurch können Sie die Style-Informationen " "ändern, ohne Ihre Änderungen beim nächsten Export zu verlieren." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Als CSV exportieren" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Als iCalendar exportieren" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Als HTML exportieren" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Als Todo.txt exportieren" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Ein iPhone oder iPod Touch Gerät versucht\n" "sich das erste Mal mit dieser Task-File zu\n" "synchronisieren. Welche Art von Synchronisation\n" "möchten sie durchführen?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Aktualisiere vom Desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Aktualisiere vom Gerät" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Abbrechen" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Sie haben die iPhone Synchronisation aktiviert.\n" "Diese benötigt Bonjour. Bonjour scheint nicht installiert\n" "zu sein." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Bitte laden und installieren Sie Bonjour für Windows von\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Webseite von Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "Support für Bonjour für Linux wird geleistet von" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Sie finden Details über ihre Distribution hier" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Beachten Sie, dass Sie bei manchen Betriebssystemen (Fedora),\n" "das \"avahi-compat-libdns_sd\"-Paket, wie auch \"avahi\" installieren " "müssen,\n" "damit diese Funktion gewährleistet wird." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Wenn sie eine Firewall verwenden, achten Sie dass die Ports 4096-4100 offen " "sind." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Diese Einstellung wird erst aktiv, wenn du %s neu startest" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Die Einstellung kann für bestimmte Aufgaben\n" "im Aufabeneditor überschrieben werden" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Dateien" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Nach jeder Änderung automatisch speichern" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Automatisch laden, wenn sich die Datei auf dem Speichermedium ändert" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "smarte Überwachung des Dateisystems" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Versuche Änderungen an der Aufgabendatei in Echtzeit zu erkennen. Bitte " "nicht auswählen, wenn sich die Datei auf einem Netzwerklaufwerk befindet. " "Neustart von %s nach einer Änderung erforderlich." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Einstellungen (%s.ini)\n" "im Programmverzeichnis abspeichern" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "%s auf einem Wechseldatenträger nutzen" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Grundverzeichnis für Anhänge" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Wenn ein Anhang hinzugefügt wird,\n" "versuche, den Pfad relativ dazu zu wählen." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Importiere vor dem speichern automatisch von" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt-Format" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Vor dem Speichern importiert %s automatisch Aufgaben von einer Todo.txt-" "Datei, die wie die Task-Datei benannt wurde, aber die Erweiterung .txt trägt." #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Beim Speichern automatisch hierhin exportieren" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Beim Speichern exportiert %s automatisch Aufgaben in eine Todo.txt-Datei, " "die wie der Task benannt wird, aber die Erweiterung .txt trägt." #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Fenster" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Startseite zeigen" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Tipp des Tages beim Starten anzeigen" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Starten mit dem Hauptfenster minimiert" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Immer" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nie" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "wie beim letzten Programmaufruf" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Nach neuen Versionen beim Starten von %(name)s suchen" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Beim starten auf neue Meldungen der %(name)s Entwickler sehen." #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Hauptfenster ausblenden wenn minimiert" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Hauptfenster beim Schließen minimieren" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Uhr tickt beim Erfassen der Zeit" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Sprache" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Sprache wird durch System ermittelt" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Wenn deine Sprache nicht verfügbar ist, oder die Übersetzung " "verbesserungsfähig ist, hilf uns bitte! Siehe:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Sprache nicht gefunden?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Aufgabe Darstellung" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Diese Darstellungseinstellung kann für jede Aufgabe im Aufgabe Bearbeiten " "Dialog überschrieben werden" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Features" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "Alle Einstellungen werden erst nach einem Neustart von %s übernommen" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "SyncML aktivieren" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Aktiviere iPhone Synchronisation" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Benutze X11 Sitzungsverwaltung" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Start der Arbeitswoche" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Montag" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Sonntag" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Anfangszeit für einen Arbeitstag" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Stunde des Endes des Werktags" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Tages-Ende" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Verwende Farbverläufe in Kalenderansicht\n" "Dies könnte Task Coach verlangsamen." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Zeitintervall zwischen Vorschlagszeiten" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "In Popup-Menüs für Zeitenauswahlen (z.B. für das Setzen der Startzeit\n" "eines Aufwands) wird %(name)s unter Berücksichtiung dieser\n" "Einstellung Zeiten vorschlagen. Je kleiner die Minutenzahl ist, desto\n" "mehr Zeiten werden vorgeschlagen. Natürlich kann man neben denVorschlägen " "jede beliebige Zeit eingeben." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Inaktivitätsbenachrichtigung" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Wenn es für die Anzahl keine Benutzereingabe (in\n" "Minuten) gibt, wird %(name)s fragen, wie mit\n" "aktuellen Aufwänden verfahren werden soll." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Aufwände mit Dezimalzahlen darstellen." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Darstellung von einer Stunde und fünfzehn Minuten als 1.25 anstatt 1:15\n" "Dies ist nützlich zur Erstellung von Rechnungen." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Zum Objekt unter dem Mauszeiger\n" "Informationsfenster aufklappen" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Aufgabe Termine" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Aufgabe als erledigt kennzeichnen, wenn alle Teilaufgaben erledigt sind" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Anzahl Stunden, bis Aufgaben als 'bald fällig' angesehen werden" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nichts" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Das Ändern des geplanten Startdatums ändert das Fälligkeitsdatum" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Das Ändern des Fälligkeitsdatum ändert das geplante Startdatum" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Was passiert mit dem geplanten Startdatum und Fälligkeitsdatum, wenn das " "jeweils andere geändert wird" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Voreinstellung" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Vorschlag" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Heute" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Morgen" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Übermorgen" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Nächsten Freitag" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Nächsten Montag" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Tages-Anfang" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Werktages-Anfang" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Aktuelle Zeit" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Werktages-Ende" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "standardmäßiges geplantes Startdatum und Zeit" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Standardfälligkeitsdatum und -zeit" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "standardmäßiges tatsächliches Startdatum und Zeit" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Standarderledigungsdatum und -zeit" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Standarderinnerungsdatum und -zeit" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Aufgabe Erinnerungen" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Zu verwendendes Erinnerungssystem" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Sprachausgabe für Erinnerungen" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Benötigt espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Standard Schlummerzeit nach der Erinnerung" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Angebotene Zeitspangen für Schlummern im Erinnerungs-Dialog" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Passwort für die Synchronisation mit dem iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "Bei Synchronisierung dieses Passwort auf dem iPhone eingeben" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour Service Name" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "abgeschlossene Prozesse zum Gerät hochladen" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "zeige das Synchronisations Protokoll" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Rechtschreibung in Editoren prüfen" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Schriftart für die das Feld Beschreibung im Bearbeitgunsdialog" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Lese Betreff der e-mail aus Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Fokusiere den Aufgabennamen im Aufgabeneditor" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s Erinnerung - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Erinnerungszeit:" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Schlummern" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" "Setze diese Angabe als Standardschlummerzeit für zukünftige Erinnerungen" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Aufgabe als erledigt markieren" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML Server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Benutzerdefiniert" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML Server URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Benutzer Name/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Aktiviere Task Synchronisation" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Datenbankname für Aufgaben" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Bevorzugter Synchronisationsmodus" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "in beide Richtungen" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Langsam" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Einseitig vom Client" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Aktualisiere vom Client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Einseitig vom Server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Neu laden vom Server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Synchronisation von Notizen aktivieren" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Datenbankname für Notizen" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Zugang" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Neue Aufgabenvorlage" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Vorschau" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Verfügbare Symbole" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Zeige dieses Symbol in der Symbolleiste an" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Verberge dieses Symbol in der Symbolleiste" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Symbole" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Verschiebe das Symbol aufwärts (nach links in der Symbolleiste)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Verschiebe das Symbol abwärts (nach rechts in der Symbolleiste)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Verschiebe Symole in der Liste per ziehen und loslassen" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Trenner" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Abstand" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Über neue Versionen informieren." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Eine neue Version von %(name)s ist verfügbar" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Sie verwenden %(name)s Version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Version %(version)s von %(name)s ist verfügbar bei" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s ist auf dem neusten Stand" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s ist auf dem neusten Stand in der Version %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Konnte die neueste Version nicht ermitteln." #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Konnte nicht ermitteln, welche die neuste Version von %(name)s ist." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Pre-Release-Version" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Sie benutzen %(name)s Pre-Release-Version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Die letzte freigegebene Version von %(name)s ist %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Warnung" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach hat noch unbehobene Fehler in Verbindung mit XFCE4 session " "management.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Wenn Task Coach beim starten gelegentlich einfriert, deaktiviere bitte\n" "die Option \"Benutze X11 Sitzungsverwaltung\" im \"Features\"-Tab der " "Programmeinstellungen.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Den Dialog beim starten nicht zeigen" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "Keine Benutzereingabe seit %s. Die folgende Aufgabe wurde erfasst:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Nichts machen" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Anhalten um %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Stoppe %s und jetzt wiederaufnehmen" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Benachrichtigung" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s Dateien (*.tsk)|*.tsk|Alle Dateien (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s Dateien (*.tsk)|*.tsk|Sicherungs-Dateien (*.tsk.bak)|*.tsk.bak|All files " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar-Dateien (*.ics)|*.ics|Alle Dateien (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML-Dateien (*.html)|*.html|Alle Dateien (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV-Dateien (*.csv)|*.csv|Textdateien (*.txt)|*.txt|Alle Dateien (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt Dateien (*.txt)|*.txt|Alle Dateien (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Öffnen" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d Aufgaben von %(filename)s geladen" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Kann %s nicht öffnen, da nicht existent." #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Einfügen" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "%(filename)s konnte nicht geöffnet werden, \n" "weil die Datei gesperrt ist." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s eingefügt" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Speichern als" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Auswahl speichern" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Konnte %s nicht speichern, weil es von einer anderen Instanz von %s " "blockiert wird\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Kann %s nicht speichern\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Vorlage importieren" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s Vorlagendateien (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Vorlage %s\n" "%s kann nicht importiert werden." #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d Elemente wurden nach %(filename)s exportiert" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synchronisierung abgeschlossen" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synchronisationsstatus" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Kann \"%s\" nicht öffnen\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Eine Datei mit dem Namen %s existiert bereits.\n" "Möchten Sie sie ersetzen?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Die Datei wurde verändert.\n" "Änderungen vor dem Schließen speichern?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: Änderungen speichern?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Kann %s nicht öffnen, da der Zugriff gesperrt ist.\n" "\n" "Damit ist gemeint, dass wahrscheinlich eine andere \n" "Instanz von Task Coach läuft und die Datei geöffnet ist, \n" "oder eine vormals laufende Instanz von Task Coach ist abgestürzt.\n" "Wenn keine weiter Instanz von Task Coach läuft können \n" "Sie beruhigt die Sperre aufheben.\n" "\n" "Möchte Sie die Sperre aufheben?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: Datei ist gesperrt" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Kann die Datei nicht sperren, da Sperrung an diesem \n" "Ort (%s) nicht unterstützt wird.\n" "%s ohne Sperre öffnen?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s wurde geschlossen." #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d Aufgaben in %(filename)s gespeichert" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Kann %(filename)s nicht öffnen, \n" "da die Datei mit einer neueren Version von %(name)s erstellt wurde.\n" "Bitte upgraden Sie %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Fehler beim Lesen von %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Der Assistent wird sich jetzt öffnen, um die Wiederherstellung\n" "einer älteren Version dieser Datei zu ermöglichen." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronisiere…" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronisiere mit %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Willkommen zu %(name)s Version %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Konnte das Fensterlayout aus TaskCoach.ini nicht\n" "wiederherstellen:\n" "%s\n" "\n" "Das Standardlayout wird angewandt.\n" "\n" "Sollte dieser Fehler wiederholt auftreten, erstellen Sie eine Kopie Ihrer " "TaskCoach.ini Datei bevor Sie TaskCoach schließen, öffenen Sie einen " "Fehlerreport und fügen sie die Kopie der TaskCoach.ini Datei an." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s Einstellungsfehler" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synchronisationsart" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Ein iPhone oder iPod Touch versuchte sich mit dieser Task-Datei\n" "zu synchronisieren, aber die \"Protokoll-Verhandlung\" schlug fehl.\n" "Bitte schreiben sie eine Bug-Report." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Datei" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Bearbeiten" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Ansicht" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Hinzufügen" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Aktionen" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Hilfe" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importieren" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "E&xportieren" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "Auswä&hlen" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Neue Ansicht" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "Nächste Ansicht &aktivieren\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Vorherige Ansicht &aktivieren\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Modus" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortieren" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Spalten" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Runden" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Aufgaben&baum-Optionen" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "S&ymbolleiste" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Anzeigen/Ausblenden der Statuszeile" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Status&zeile" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "Auf&gabe" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Öffne ein neues Register mit einer Übersicht der Aufgaben" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Aufgaben &Statistik" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Öffne einen neuen Tab mit einer Anzeige der Aufgabenstatistik" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Programmprozess &quadratische Karte" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Eine neue Registerkarte mit einer Anzeige, die die Programmprozesse in einer " "quadratischen Karte anzeigt." #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "&Zeitleiste" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Öffne einen neuen Tab mit einer Ansicht, welche eine Zeitachse über Aufgaben " "und Aufwand darstellt" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalender" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "Einen neuen Reiter mit einem Betrachter öffnen, der Aufgaben in einem " "Kalender anzeigt" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hierarchischer Kalender" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Öffnet einen neuen Tab, der die Aufgabenhierarchie in einem Kalender anzeigt." #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategorie" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Einen neuen Reiter mit Kategorien öffnen" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "Aufwand" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Öffne ein neues Register mit einer Übersicht der Aufwände" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Aufwand für gewählte Aufgaben" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Öffne einen neuen Tab zum Betrachten der Aufwände für die gewählte Aufgabe" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notiz" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Einen neuen Reiter mit den Notizen öffnen" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Ausblenden" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Symbolleiste ausblenden" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Kleine Symbole" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Kleine Symbole (16x16) in der Symbolleiste" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Mittelgroße Symbole" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Mittelgroße Symbole (22x22) in der Symbolleiste" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Große Symbole" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Große Symbole (32x32) in der Symbolleiste" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Neue Aufgabe aus &Vorlage" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Wechsle Ka&tegorie" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "&Priorität der Aufgabe ändern" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Stoppuhr starten" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (Unterkategorien)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (Unteraufgaben)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priorität" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Seite" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "Erinnerung an %s" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d Aufgaben sind überfällig" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "Eine Aufgabe ist überfällig" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d Aufgaben sind bald fällig" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "Eine Aufgabe ist bald fällig" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "Stoppe Zeit für \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "Erfasse Zeitaufwand für %d Aufgabe" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Öffnen...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "%s öffnen" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Einfügen..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Aufgaben einer anderern .tsk-Datei in die aktuelle Liste einfügen" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "S&chließen\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Speichern\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Speichern &als...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "S&peichern ausgewählter Aufgaben in neuer Datei..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Speichern ausgewählter Aufgaben in getrennter Datei" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Gewählte Aufgabe als Vorlage speichern" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Ausgewählte Aufgabe als Vorlage abspeichern" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Vorlage importieren..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Neue Vorlage aus Datei importieren" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Vorlagen bearbeiten..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Bearbeite eine bereits vorhandene Vorlage" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Vorlagen bearbeiten" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Gelöschte Einträge entfernen" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Gelöschte Aufgaben und Notizen wirklich entfernen (siehe SynML Kapitel in " "der Hilfe)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Löschen von gelöschten Objekten kann nicht rückgängig gemacht werden.\n" "Wenn Sie planen die Funktionalität SyncML wieder mit demselben Server,\n" "die Sie bereits verwendet haben, zu aktivieren,\n" "dann werden diese Objekte wahrscheinlich zurückkehren.\n" "\n" "Wollen Sie immer noch löschen?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Seitenlayout...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Druckvorschau..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Eine Ansicht anzeigen, wie der Ausdruck aussehen wird" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Seitenansicht" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Drucken...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Sicherungen verwalten..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Sicherungen aller Aufgabendateien verwalten" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Als &HTML-Datei exportieren..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Elemente aus einer Ansicht im HTML-Format exportieren" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Als &CSV-Datei exportieren..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Elemente aus einer Ansicht im CSV-Format (Komma-getrennte Werte) exportieren" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Als &iCalender exportieren..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Elemente aus einer Ansicht im iCalendar-Format exportieren" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Als &Todo.txt exportieren..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Elemente aus einer Ansicht im Todo.txt-Format (siehe todotxt.com) exportieren" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "CSV-Datei &importieren ..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Einträge aus einer CSV Datei importieren" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importiere CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Die gewählte Datei ist leer. Bitte eine andere Datei wählen." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Todo.txt importieren..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Aufgaben aus einer Todo.txt-Datei (siehe todotxt.com) importieren" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Todo.txt importieren" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML-Synchronisierung..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Mit einem SyncML-Server abgleichen" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Beenden\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Rückgängig" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Wiederherstellen" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Ausschneiden\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopieren\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "E&infügen\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Ein&fügen als Untereintrag\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Einstellungen...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Einstellungen" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML Einstellungen..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "SyncML Einstellungen bearbeiten" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML Einstellungen" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Symbolleiste anpassen" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Anpassen" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Alle\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "A&uswahl aufheben" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Auswahl aufheben" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "Alle Filter &deaktivieren\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "Alle Kategorien zu&rücksetzen\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Elemente, die zu %s gehören, anzeigen/ausblenden" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "Ansicht &umbenennen..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Die ausgewählte Ansicht umbenennen" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Neuer Titel für die Ansicht:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Ansicht umbenennen" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "Diese Spalte &ausblenden" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Ausgewählte Spalten ausblenden" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Alle Elemente e&inblenden\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "Alle Elemente a&usblenden\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Aufsteigend" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Aufsteigend (angekreuzt) oder absteigend (nicht angekreuzt)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Nach Groß- und Kleinschreibung sortieren" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Wenn Text sortiert wird, wird die Groß-/Kleinschreibung ignoriert " "(aktiviert) oder berücksichtigt (nicht aktiviert)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "&Zuerst nach Status sortieren" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Zuerst nach Status (aktiv/inaktiv/erledigt) sortieren" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Verstecke Aufgaben mit &Teilaufgaben" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Zeige/Verstecke Aufgaben mit Unteraufgaben im Listenmodus" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Bearbeiten...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Ausgewählte Einträge bearbeiten" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" "Aufgabe, deren Aufwand aufgezeichnet wurde, bearbeiten... \tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Aufgabe(n), deren Aufwand gerade aufgezeichnet wird, bearbeiten" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Löschen\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Ausgewählte Einträge löschen" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Neue Aufgabe nach einer Vorlage erzeugen" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Neue Aufgabe mit ausgewählten &Kategorien..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" "Neue Aufgabe hinzufügen, der die ausgewählten Kategorien zugeordnet sind" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Neue Aufgabe mit ausgewählten Aufgaben als &Vorbedingungen..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Eine neue Aufgabe mit ausgewählten Aufgaben als Vorbedingungen einfügen" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Neue Aufgabe mit ausgewählten Aufgaben als Abhängige..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" "Eine neue Aufgabe mit ausgewählten Aufgaben als abhängige Aufgaben einfügen" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Neue &Teilaufgabe..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Neue &Teilaufgabe..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Neue &Unternotiz..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Neue &Unterkategorie..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Neues Sub-Element des gewählten Elements einfügen" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Markiere Aufgabe &aktiv\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Markierte Aufgabe(n) als aktiv kennzeichnen" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Aufgabe als &inaktiv markieren\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Markierte Aufgabe(n) als inaktiv kennzeichnen" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Aufgabe als &erledigt markieren\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Ausgewählte Aufgabe(n) als erledigt kennzeichnen" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Priorität ma&ximieren \tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "Priorität mi&nimieren\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Priorität erhöhen\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Priorität ve&rringern\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Wechsle %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&E-Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&E-Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Diverse Dinge" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "und" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Kann E-Mail nicht senden:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s E-Mail Fehler" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Text¬iz hinzufügen...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Alle Textnotizen öffnen...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Aufwands-Erfassung für ausgewählte Aufgabe(n) starten\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Aufwand-Erfassung für ausgewählte Aufgabe(n) starten" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Kein Betreff)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Beginne, den Aufwand für %s aufzuzeichnen" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Wähle eine Aufgabe im Menü aus und zeichne den Aufwand auf" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Aufwandserfassung anhalten oder wieder aufnehmen\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "&Aufwandserfassung für %s anhalten\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Aufwand-Erfassung für ausgewählte Aufgabe(n) beenden" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Stoppuhr fortsetzen %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Aufwand-Erfassung für die zuletzt erfasste Aufgabe wiederaufnehmen" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "mehrere Aufgaben" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Neue Kategorie...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Neue Notiz...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Neue &Notiz mit ausgewählten Kategorien..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" "Neue Notiz hinzufügen, der die ausgewählten Kategorien zugeordnet sind" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Datei anfügen...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Fehler beim Öffnen der Anlage" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Alle Dateianhänge öffnen...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Inhaltsverzeichnis der &Hilfe\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Inhaltsverzeichnis der &Hilfe\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Hilfe" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tipp des Tages" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Kurze Tipps zur Nutzung des Programms" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymisiere" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Aufgabendatei anonymiseren zum anhangen an einer Fehlermeldung" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Deine Aufgabendatei wurde anonymisiert und gespeichert nach:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Fertig" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "Ü&ber %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Version und Kontaktinformationen zu %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Über %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Lizenz" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s-Lizenz" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Auf Updates prüfen" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Prüfen, ob eine neue Version von %s vorhanden ist" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "URL kann nicht geöffnet werden:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URL Fehler" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Häufig gestellte &Fragen" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Häufige Fragen und Antworten (FAQ) ansehen" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "&Fehler melden (englisch)..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Webseite für Fehlermeldungen" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Ideen und &Vorschläge (englisch)..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Vorschlag von bzw. Abstimmung über neue(n) Features" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "&Support-Anfrage..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Support-Anfrage an die Entwickler" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "&Verbesserung der Übersetzung..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Helfen Sie die Übersetzung von %s zu verbessern" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Spenden..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Spenden für die Unterstützung der Entwicklung von %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Wiederherstellen" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Fenster in den vorherigen Zustand zurückversetzen" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Suchen" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Aufwand-Details" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Aufwand pro Tag" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Aufwand pro Monat" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Aufwand pro Woche" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Liste" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Baum" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Wenn Häkchen gesetzt, werden Aufgaben in Baumstruktur angezeigt, sonst als " "Liste" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Nach allen ausgewählten Kategorien filtern" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Nach allen markierten Kategorien einzeln filtern" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Einrichten" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Die Kalender-Ansicht konfigurieren" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Hierarchische Kalenderansicht konfigurieren" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Nächste Frist" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Zeige nächste Frist" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Vorheriger Zeitraum" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "&Zeige vorherigen Zeitraum" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Heute" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Heute anzeigen" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Spaltenbreite &automatisch anpassen" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "Wenn gewählt, füllen die Spalten automatisch die gesamte Breite aus" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Neigungswinkel des Tortendiagramms ändern" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Nicht runden" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 Minute" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d Minuten" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Rundungsgenauigkeit" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Immer aufrunden" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Zum nächst höheren Wert aufrunden" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Typ" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Nach Betreff sortieren" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Betre&ff" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Nach Beschreibung sortieren" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Beschreibung" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Erstellungsdatum" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Sortiere nach Erstellungsdatum" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Änderungsdatum" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Sortiere nach letztem Änderungsdatum" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Anzeigen/Ausblenden der Beschreibung-Spalte" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notizen" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Notizenspalte anzeigen/ausblenden" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Zeige/Verberge Spalte Erstellungsdatum" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Zeige/Verberge Spalte Letztes Änderungsdatum" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Werkzeugleisten sind anpassbar" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Klicke auf das Zahnradsymbol (rechts) um Symbole hinzuzufügen oder zu " "verschieben." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "In der Baumansicht ist eine manuelle Sortierung nur innerhalb der gleichen " "Hierarchieebene möglich." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "In der Baumansicht ist eine manuelle Sortierung nur innerhalb der gleichen " "Hierarchieebene möglich." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Manuelle Sortierung" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Anzeigen/Verstecken der manuellen Sortierspalten" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Anlagen" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Spalte für Anhänge anzeigen/verbergen" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategorien: %d ausgewählt, %d gesamt" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d gefiltert" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Zeitraum" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Aufwand gesamt" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Umsatz gesamt" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Dienstag" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Mittwoch" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Donnerstag" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Freitag" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Samstag" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorien" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Anzeigen/Ausblenden der Kategorien-Spalte" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Aufwand" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Anzeigen/Ausblenden der Aufwand-Spalte" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Umsatz" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Anzeigen/Ausblenden der Umsatz-Spalte" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Gesamtzeitverbrauch" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Anzeigen/Ausblenden der 'Aufwand gesamt'-Spalte" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Umsatz" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Anzeigen/Ausblenden der Gesamtumsatz-Spalte" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Aufwand pro Wochentag" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Anzeigen/Verstecken der Spalte 'pro Tag aufgewendete Zeit'" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Aufwand: %d ausgewählt, %d sichtbar, %d gesamt. Zeitverbrauch: %s " "ausgewählt, %s sichtbar, %s gesamt" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d verfolgen" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Details:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Aufwände für gewählte Aufgabe(n)" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sortiere Kategorien nach dem Thema" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sortiere Kategorien nach der Beschreibung" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Sortiere Kategorien nach Erstellungsdatum" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Kategorien nach letztem Änderungszeitpunkt sortieren" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Kategorien manuell sortieren" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Anhänge nach Betreff sortieren" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Anhänge nach Beschreibung sortieren" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Anhänge nach Kategorie sortieren" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Sortiere Anhänge nach Erstellungsdatum" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Anhänge nach letztem Änderungszeitpunkt sortieren" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Notizen nach Betreff sortieren" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Notizen nach Beschreibung sortieren" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Notizen nach Kategorie sortieren" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Sortiere Notizen nach Erstellungsdatum" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Notizen nach letztem Änderungszeitpunkt sortieren" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Notizen manuell sortieren" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sortiere nach Betreff" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sortiere Aufgaben nach der Beschreibung" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sortiere Aufgaben nach der Kategorie" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Sortiere Aufgaben nach letztem Änderungsdatum" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Aufgaben nach letztem Änderungszeitpunkt sortieren" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Aufgaben manuell sortieren" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Aufgaben nach geplanten Startdatum sortieren" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&geplantes Startdatum" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sortieren nach Fälligkeitsdatum" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Fällig am" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sortieren nach Tag der Erledigung" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Erledigt am" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sortieren die Aufgaben nach Vorbedinungen" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Vorbedinungen" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sortiere die Aufgaben nach abhängigen Aufgaben" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "Abhängige" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "sortiere Aufgaben nach verbleibender Zeit" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Verbleibende Zeit" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "sortiert Aufgaben nach Fertigstellungsgrad" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "Fertigstellungsgrad" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Nach Wiederholung sortieren" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Wiederholung" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sortieren nach Budget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sortieren nach aufgewendeter Zeit" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Rest&budget" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sortieren nach verbleibendem Budget" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sortieren nach Priorität" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sortieren nach Stundensatz" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Stundensatz" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sortieren nach Festbetrag" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Festbetrag" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sortieren nach Umsatz" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sortieren nach Erinnerungsdatum" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Erinnerung" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Betreff" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Notizen nach Kategorien sortieren" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notizen: %d ausgewählt, %d gesamt" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n.Z." #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Aufgaben: %d ausgewählt, %d sichtbar, %d gesamt" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d überfällig, %d verspätet, %d inaktive, %d erledigte" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Bei gedrückter Umschalt-Taste auf eine Filter-Einstellung klicken, um nur " "Aufgaben mit gleichem Status zu zeigen." #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Aufgaben" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Zeitleiste" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Sofort" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Quadratische Aufgabenkarte" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hierarchischer Kalender" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Konfiguration der Kalender-Ansicht" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Manuelle Sortierung" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Abhängige" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "Fertigstellungsgrad" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Verbleibende Zeit" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Termine" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Alle Datumsspalten" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Anzeigen/Ausblenden aller Datums-Spalten" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Zeige/Verstecke Spalte für geplantes Startdatum" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Anzeigen/Ausblenden der 'Fällig am'-Spalte" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Tatsächliches Startdatum" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Zeige/verstecke Spalte für tatsächliches Startdatum" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Anzeigen/Ausblenden der 'Erledigt am'-Spalte" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Zeige/verstecke Spalte \"Zeit verbleibend\"" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Spalte \"Wiederholung\" anzeigen/ausblenden" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Alle Budgetspalten" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Anzeigen/Ausblenden aller Budget-Spalten" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Anzeigen/Ausblenden der Budget-Spalte" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Zur Verfügung stehendes Budget" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Anzeigen/Ausblenden der Restbudget-Spalte" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanzen" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Alle Finanzspalten" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Anzeigen/Ausblenden aller Finanzen-Spalten" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Anzeigen/Ausblenden der Stundensatz-Spalte" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Anzeigen/Ausblenden der Festbetrag-Spalte" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Zeige/verstecke Vorbedingungsspalten" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Zeige/verstecke die Abhängigkeiten-Spalte" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Anzeigen/Verstecken der abgeschlossenen Spalten" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Anzeigen/Ausblenden der Anlagen-Spalte" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Anzeigen/Ausblenden der Prioritäts-Spalte" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Erinnerungsspalten anzeigen/ausblenden" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Aufgaben zeigen als" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Aufgabenstatistik" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Komma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Leerzeichen" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Kolon" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Semikolon" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Umleitung" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (Tag zuerst)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (Monat zuerst)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Einfaches Anführungszeichen" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Doppeltes Anführungszeichen" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Duplizieren" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Aussteigen mit" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importiert einzig die ausgewählten Spalten" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Erste Zeile enthält Feldnamen" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Trennzeichen" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Datumsformat" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Anführungszeichen" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Ausstiegsrate" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Feld #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Bitte wählen Sie eine Datei aus." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategorie" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Erinnerungsdatum" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Prozent abgeschlossen" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Spaltenüberschriften in CSV-Datei" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "Attribute von %s" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Keine Feldzuordnung." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Das \"%s\" Feld kann nicht mehrfach gewählt werden." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Die Felder %s können nicht mehrfach gewählt werden." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Inhaltsverzeichnis" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Über Aufgaben" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Aufgabeneinstellungen" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Aufgabenstatus" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Aufgabenfarben" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Erinnerungen" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Über Aufwand" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Aufwandseinstellungen" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Über Kategorien" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Kategorieeinstellungen" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Über Notizen" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Notizeinstellungen" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Drucken und Exportieren" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Über das Drucken und Exportieren" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Drucken" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportieren" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Mehrbenutzerverwendung" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Speicheroptionen" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "E-Mail Aufgaben" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "E-mail Integration" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Über E-Mail-Integration" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Hinzufügen einer E-Mail zu einer Aufgabe" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Eine Aufgaben aus einer E-Mail erstellen" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML Unterstützung" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Was ist SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Konfiguration" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Einschränkungen" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Probleme finden und beseitigen" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Gelöschte Einträge entfernen" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone und iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s auf dem iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Einstellung" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s auf Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt und Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Todo.txt importieren" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Todo.txt exportieren" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Aufgabenvorlagen" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Über Vorlagen" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Vorlagen benutzen" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Grafische Benutzerschnittstelle" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Tastenkürzel" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Aufgaben sind die Basisobjekte, die Sie bearbeiten. Aufgaben können \n" "alles repräsentieren, angefangen von einer Kleinigkeit bis zum \n" "komplette Projekt mit verschiedenen Phasen und zahlreichen Aktivitäten." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Aufgaben haben die folgenden Eigenschaften, die Sie ändern können:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Betreff: eine Zeile, welche die Aufgabe zusammenfasst" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Beschreibung: über mehrere Zeilen gehende Beschreibung der Aufgabe" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Geplantes Startdatum: Datum, ab welchem die Aufgabe begonnen werden kann. \n" "Das geplante Startdatum ist standartmäßig das Datum, an dem die Aufgabe " "erstellt wurde. Es muss nicht festgelegt werden, woraus resultiert, dass die " "Aufgabe nicht wirklich gestartet werden soll. Dies kann nützlich sein, um " "z.B. Krankenstände zu erfassen." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Fälligkeitsdatum: Datum, wann die Aufgabe erledigt sein sollte.\n" "Es kann 'Keines' sein, um anzuzeigen, dass diese Aufgabe kein festes " "Fälligkeitsdatum hat." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Tatsächliches Startdatum: Datum, an dem die Aufgabe tatsächlich begonnen " "wurde.\n" "Das tatsächliches Startdatum kann direkt gesetzt werden, es wird jedoch " "automatisch gesetzt, wenn Aufwende für Aufgaben erfasst werden oder wenn der " "Fertigstellungsgrad (0-100%) geändert wird." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Fälligkeitsdatum: dieses Datum ist 'keines', solange die Aufgabe nicht\n" "abgeschlossen worden ist. Es wird auf das aktuelle Datum gesetzt, sobald\n" "Sie die Aufgabe als beendet markieren. Es kann auch manuell eingegeben " "werden." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Voraussetzungen: Andere Aufgaben müssen erledigt werden,\n" "bevor eine andere beginnen kann. Die Aufgabe bleibt inaktiv bis die letzte " "Aufgabe erfüllt wurde, die als Voraussetzung definiert wurde. Beachte, dass " "wenn für eine Aufgabe ein bestimmtes geplantes Startdatum definiert wurde, " "es in der Vergangenheit liegen muss und alle Voraussetzungen " "erfüllt sein müssen, bevor diese Aufgabe als verspätet gekennzeichnet wird" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: Anzahl an Stunden, die für die Aufgabe zu Verfügung steht" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Stundensatz: Geldmenge, die pro Stunde mit der Aufgabe verdient wird" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Festbetrag: der Geldbetrag, der mit der Aufgabe\n" "unabhängig von der aufgewendeten Zeit verdient wird." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "Die folgenden Eigenschaften werden von den Eigenschaften oben berechnet:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Tage übrig: Anzahl der Tage bis zum Fälligkeitsdatum." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Verwendete Zeit: Aufwand, der für die Aufgabe verwendet wurde." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Restzeit: Budget minus die mit der Aufgabe verbrachte Zeit." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Umsatz: Studensatz mal Aufwand plus Festbetrag." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Aufgaben haben immer genau einen der folgenden Status:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktiv: Das aktuelle Startdatum ist vergangen;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inaktiv: Die Aufgabe wurde noch nicht begonnen und/oder \n" "die Voraussetzungen sind nicht erfüllt." #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Erledigt: Die Aufgabe wurde erledigt." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Zusätzlich können Aufgaben referenziert werden als:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Überfällig: Das Fälligkeitsdatum liegt in der Vergangenheit;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Bald fällig: Das Fälligkeitsdatum ist bald (wann\n" "'bald' ist, kann in den Einstellungen festgelegt werden);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Verspätet: Der geplante Start ist schon vergangen, \n" "aber die Aufgabe wurde noch nicht begonnen." #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Über Budget: Kein Budget übrig" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Unter Budget: Noch Budget übrig" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Kein Budget: Die Aufgabe hat kein Budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Der Aufgabentext wird nach den folgenden Regeln eingefärbt:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Überfällige Aufgaben sind rot;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Bald fällige Aufgaben sind orange;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Aktive Aufgaben sind schwarz mit blauem Symbol" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Verspätete Aufgaben sind lila;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Zukünftige Aufgaben sind grau" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Erledigte Aufgaben sind grün" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Dies setzt voraus, dass die Einstellungen der Textfarbe \n" "nicht geändert wurden." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Die Hintergrundfarbe von Aufgaben wird über \n" "die Kategorie festgelegt, zu der die Aufgabe gehört.\n" "Kategorie-Eigenschaften unten." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Wann immer Sie Zeit mit Aufgaben verbringen, können Sie die aufgewendete\n" "Zeit per Aufwand-Erfassung registrieren. Markieren Sie eine Aufgabe und\n" "wählen Sie 'Stoppuhr starten' im Aufwand- oder Kontextmenü oder mit dem\n" "entsprechenden Button in der Werkzeugleiste." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "Aufwandseinträge haben die folgenden Eigenschaften, die Sie ändern können:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Aufgabe: Aufgabe, zu der welcher Aufwand gehört" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Begonnen: Startdatum und -zeit des Aufwands" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Angehalten am: Stoppdatum und -zeit des Aufwands. Dies kann\n" "'Keines' sein, solange Sie noch an der Aufgabe arbeiten." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Beschreibung: über mehrere Zeilen gehende Beschreibung des Aufwands" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" "Aufgewendete Zeit: wieviel Zeit Sie mit dem Arbeiten an der Aufgabe " "verbracht haben." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Einkommen: Geld, das mit der verwendeten Zeit verdient wurde" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Aufgaben und Notizen können zu einer oder mehreren Kategorien gehören. Als " "Erstes \n" "müssen Sie die Kategorie, die Sie verwenden wollen, über das Menü " "'Kategorie' anlegen. \n" "Anschließend können Sie Elemente einer oder mehreren Kategorien zuweisen, " "indem \n" "Sie diese Elemente bearbeiten und im Kategorien-Reiter des Bearbeiten-" "Dialoges die \n" "relevanten Kategorien mit einem Haken versehen." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Sie können die im Aufgaben- und Notizen-Fenster gezeigten Einträge auf eine " "oder mehrere Kategorien \n" "einschränken, indem Sie eine (bzw. mehrere) Kategorie(n) im Kategorien-" "Fenster anhaken. \n" "Zum Beispiel, wenn Sie eine Kategorie \"Telefonate\" haben und Sie haken " "diese Kategorie an, \n" "so werden die Aufgabenfenster nur Aufgaben dieser Kategorie anzeigen, mit " "anderen Worten die Telefonate, \n" "die Sie machen müssen." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Kategorie haben die folgenden Eigenschaften, die Sie ändern können:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Betreff: eine Zeile, welche die Kategorie zusammenfasst" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Beschreibung: über mehrere Zeilen gehende Beschreibung der Kategorie" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Gegenseitig ausschließende Unterkategorien: ein Kontrollfeld,\n" "das anzeigt, ob die Unterkategorien einer Kategorie sich gegenseitig " "ausschließen.\n" "In dem Fall können Objekte nur zu einer dieser Unterkategorien gehören. Es " "kann\n" "immer nur eine der Unterkategorien als Filterkriterium genutzt werden." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Erscheinungseigenschaften wie Symbol, Schrift und Farben: \n" "Die Erscheinungseigenschaften werden verwendet, um die Kategorie " "darzustellen, \n" "aber auch für die Darstellung der Einträge, die zu dieser Kategorie gehören. " "Wenn \n" "eine Kategorie selbst keine Farbe, Schrift oder Symbol hat, sein " "Elternelement aber \n" "eine solche Eigenschaft besitzt, dann wird diese Eigenschaft verwendet. Wenn " "ein \n" "Element zu mehreren Kategorien gehört, welche jeweils separate Farben " "besitzen, \n" "dann wird eine Mischung dieser Farben für den aktuellen Eintrag verwendet." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notizen können zur Erfassung verschiedenster Informationen verwendet\n" "werden. Notizen können alleinstehend oder Teil von anderen Elementen sein,\n" "wie Aufgaben oder Kategorien. Alleinstehende Notizen werden in der " "Notizanzeige\n" "aufgeführt. Notizen, die Teil anderer Elemente sind, werden nicht in der\n" "Notizanzeige aufgeführt." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notizen haben die folgenden Eigenschaften, die Sie anpassen können:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Betreff: eine Zeile, welche die Notiz zusammenfasst" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Beschreibung: über mehrere Zeilen gehende Beschreibung der Notiz" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" "Eigenschaften des Erscheinungsbildes wie Icon, Schriftart und Farben." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Drucken und Exportieren funktionieren auf dieselbe Weise: Wenn Sie\n" "Daten drucken oder exportieren, werden die Daten der aktuellen Ansicht\n" "gedruckt oder exportiert. Die Daten werden genauso gedruckt bzw.\n" "exportiert, wie sie in der Ansicht angezeigt werden. Die sichtbaren\n" "Spalten bestimmen, welche Details gedruckt bzw. exportiert werden.\n" "Wenn Sie Elemente filtern, z.B. erledigte Aufgaben verstecken, werden\n" "diese Elemente nicht gedruckt bzw. exportiert." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Bereiten Sie den Inhalt einer Ansicht vor, indem Sie die Elemente\n" "in die richtige Reihenfolge bringen, blenden Sie Spalten ein oder aus\n" "und wenden Sie die gewünschten Filter an." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Eine Voransicht des Ausdrucks können Sie über Datei -> Druckvorschau\n" "erhalten. Sie können die Seiteneinstellungen unter Datei -> Seitenlayout\n" "vornehmen. Beim Drucken können Sie, wenn Ihre Plattform dies unterstützt,\n" "auswählen, ob alle oder nur die ausgewählten Elemente der aktuellen Ansicht\n" "gedruckt werden." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Wählen Sie als nächstes das Format, in das Sie exportieren möchten, und ob " "Sie\n" "alle sichtbaren oder nur die ausgewählten Elemente exportieren möchten.\n" "Verfügbare Export-Formate sind u.a. CSV (Komma-getrenntes Format), HTML und\n" "iCalendar. Wenn Sie in HTML exportieren, wird eine CSS-Datei erzeugt, die " "Sie\n" "verändern können, um das Erscheinungsbild der HTML-Seite zu anzupassen." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Ein Einzelbenutzer, der die Aufgabendatei auf mehreren Computern\n" "öffnet (im Büro, zu Hause, Laptop)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Mehrere Benutzer, die mit der selben Aufgabendatei arbeiten." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Noch nicht getestet." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s fügt sich in verschiedene Mailclients\n" "per drag-aund-drop ein. Dies hat einige Einschränkungen; E-Mails werden\n" "in ein Verzeichnis neben der %(name)s Datei als .eml Dateien copiert und " "werden\n" "später mit irgendeinem Programm geöffnet, welches mit diesem Dateityp\n" "auf Ihrem System verbunden ist. Dies erlaubt Ihnen andererseits, diese\n" "E-Mail Anhänge auf einem anderen System zu öffnen als dem System, auf dem " "Sie sie erstellten." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Unter anderem werden folgende Mailclients unterstützt:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Aufgrund einer Einschränkung in Thunderbird können Sie nicht mehrere E-" "Mails\n" "aus Thunderbird per drag-and-drop übernehmen. Dies trifft nicht auf Outlook " "zu." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" "Es gibt zwei Wege, wie eine E-Mail zu einer Aufgabe hinzugefügt werden kann:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" "Lassen Sie sie auf eine Aufgabe im Aufgabenbaum oder der Aufgabenliste " "fallen." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Lassen Sie sie auf die Registerkarte 'Anlagen' fallen." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Das Einfügen einer E-Mail an einer leeren Stelle des Aufgabenbaums oder der " "Aufgabenliste\n" "erzeugt eine neue Aufgabe, deren Betreff dem Betreff der Mail und deren " "Beschreibung dem\n" "Inhalt der Mail entspricht. Zusätzlich wird die Mail automatisch der neuen " "Aufgabe als Anhang\n" "hinzugefügt." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML ist ein XML Protokoll, dazu bestimmt, verschiedene Anwendungen \n" "mit einem Server zu synchronisieren. Ein bekannter Open-Source Server ist\n" "Funambol. Clients " "für die Synchronisation \n" "sind für viele Plattformen und Anwendungen (Outlook, Pocket PC,\n" "iPod, iPhone, Evolution, etc...) verfügbar, sowei als sogenannte " "\"Connektoren\",\n" "die es dem Server erlauben mit Exchange, Google Calendar, etc\n" "zu synchronisieren" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s unterstützt unter Windows und Mac OS X von Hause aus den\n" "SyncML-Standard (vorausgesetzt, dass Sie die mitgelieferten\n" "Programmdateien verwenden). Das bedeutet, dass Sie %(name)s für das\n" "Abgleichen mit dem selben SyncML-Server einrichten können, mit dem\n" "Sie Outlook abgleichen. Dadurch befinden sich alle Outlook-Aufgaben\n" "und -Notizen in Ihrer %(name)s-Datei und die %(name)s-Aufgaben und\n" "-Notizen in Outlook – oder in Ihrem »Pocket PC«." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Diese Eigenschaft ist optional und standardmäßig ausgeschaltet. Um die " "Eigenschaft einzuschalten,\n" " gehe in die Einstellungen und aktiviere die Eigenschaft auf der " "Eigenschaftsseite." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Um SyncML einzurichten, bearbeiten Sie die SyncML Einstellungen \n" "über Bearbeiten/SyncML Einstellungen. Tragen Sie die Synchronisations-URL \n" "und Ihre ID für den Server ein und wählen Sie, welche Daten (Aufgaben " "und/oder Notizen) \n" "Sie synchronisierenen möchten. Die URL hängt von dem Server ab, den Sie\n" "verwenden; einige Beispiele hierfür sind:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Die Datenbanknamen sind ziemlich standardmäßig; die voreingestellten Werte\n" "sollten funktionieren." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Einige Einschränkungen bestehen auf Grund der Tatsache, dass der\n" "zugrundeliegende Datentyp vcalendar ist, weshalb dem Server einige %(name)s\n" "Funktionalitäten nicht übergeben werden können." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" "Die Aufgaben- und Kategorien-Hierarchie kann nicht auf den Server übernommen " "werden." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Rekursionen und Erinnerungen werden aktuell nicht unterstützt." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Notizen-Kategorien können nicht auf den Server übernommen werden." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Wahrscheinlich einige andere..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Die SyncML-Menüeinträge sind nur vorhanden, wenn Ihre Plattform\n" "unterstützt wird. Zur Zeit werden folgende Plattformen unterstützt:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 Bit (siehe unten)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bit" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 and neuer, Intel und PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Unter Windows können Probleme auftreten, wenn Sie die \n" "Microsoft Visual 8 Runtime nicht installiert haben. Sie können diese von \n" "der Microsoft Download-Seite " "herunterladen." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch und iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s auf dem iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Grundlegende Aufgabenattribute: Betreff, Beschreibung, Termine (mit\n" "Wiederholung)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchische Aufgaben und Kategorien" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Zeitverfolgung" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Mehrere Aufgabendateien" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Beidseitige Synchronisation mit %(name)s auf dem Desktop" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "Die Anwendung ist universal und eine eigene iPad-Benutzerschnittstelle." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Konfiguration auf dem iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Erledigte anzeigen: Erledigte Aufgaben anzeigen oder nicht" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Icon-Position: das LED-Icon kann entweder auf der\n" "linken oder rechten Bildschirmseite erscheinen." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Kompaktmodus: wenn ausgewählt, hat die Aufgabenliste \n" "kleinere LEDs und zeigt keine Kategorien oder Datumswerte." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Bestätige Abschluss: wenn ausgewählt, erscheint jedesmal, \n" "wenn eine Aufgabe abgeschlossen wird, ein Bestätigungsdialog." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# Tage bald fällig: wie viele Tage bis zur Fälligkeit \n" "werden als \"bald\" betrachtet." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Konfiguration auf dem Desktop, alle Betriebssysteme" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Konfiguration unter Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Konfiguration unter Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "Unter Linux muss der Avahi-Dämon " "installiert sein und laufen. Er ist in den meisten modernen Distributionen " "enthalten. Sie müssen außerdem das dnscompat-Paket installieren; seine " "genaue Bezeichnung hängt von Ihrer Distribution ab (z.B. libavahi-compat-" "libdnssd1 bei Ubuntu)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "Ich kann die iPhone/iPod-App nicht auf Apples Homepage finden" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" "Mein Computer erscheint nicht in der Liste, wenn ich versuche zu " "synchronisieren" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Überprüfen Sie, ob das/der iPhone/iPod Touch mit demselben WLAN-Netz \n" "verbunden ist wie Ihr Computer." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "Das iPhone kann sich nicht mit meinem Computer verbinden" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Wenn Sie eine Firewall haben, kontrollieren Sie das die Ports 4096 - 4100 " "offen sind" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Kategorien, deren Betreff mit '+' beginnt, werden als Projekte exportiert. \n" "Kategorien, deren Betreff mit '@' beginnt, werden als Kontext exportiert. \n" "Kategorien, deren Betreff nicht mit '+' oder '@' beginnt, werden nicht " "exportiert. \n" "Unterkategorien werden exportiert, wenn auch die Hauptkategorie exportiert " "wird." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s hat verschiedene Tastenkombinationen unten aufgeführt. \n" "Im Moment sind diese Tastenkombinationen nicht konfigurierbar." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Strg+A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Umschalt+Strg+A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Strg+B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Umschalt+Strg+B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Strg+C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Umschalt+Strg+C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Strg+D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Umschalt+Strg+D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Strg+E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Umschalt+Strg+E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Strg+F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Strg+G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Strg+H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Strg+I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Umschalt+Strg+I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Strg+J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Strg+M (Linux und Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Umschalt+Strg+M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Umschalt+Strg+M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Strg+N (Linux und Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Umschalt+Strg+N (Linux und Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Ein Unterelement einfügen" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Strg+O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Umschalt+Strg+O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Strg+P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Umschalt+Strg+P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Strg+Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Strg+R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Umschalt+Strg+R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Strg+S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Umschalt+Strg+S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Strg+T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Umschalt+Strg+T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Strg+V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Umschalttaste-Strg-T" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Strg+W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Strg+X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Strg+Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Strg+Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" "Bearbeite den/die gewählten Eintrag/Einträge oder schließe den Dialog" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Strg+Eingabe" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Gewählte Aufgabe(n) als (nicht) erledigt markieren" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Bewege den Tastatur-Focus zum nächsten Feld im Dialog" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Bewege den Tastatur-Focus zum vorherigen Feld im Dialog" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Umschalttaste-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Strg+Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Eingabefokus zum nächsten Tab in einem Notizblock bewegen" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Eingabefokus zum vorherigen Tab in einem Notizblock bewegen" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Umschalt+Strg+Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "ENTF" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "EINFG (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Umschalt-Einfg (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Umschalttaste-Strg-BildAb" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Umschalttaste-Strg-BildAuf" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Pfeil-nach-unten" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Pop-up Menü oder Drop-Down-Box" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Ändert den Betreff des ausgewählten Eintrages in der Anzeige." #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    Von %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s wird aktiv weiterentwickelt. Auch wenn %(name)s Entwickler bemüht " "sind, Fehler zu verhindern, passieren diese gelegentlich trotzdem. Daher " "wird eine regelmäßige Sicherung Ihrer Arbeit wärmstens empfohlen." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s hat eine Mailingliste, auf der Sie die Nutzung von %(name)s mit " "freundlichen Benutzern diskutieren können, Leistungsmerkmale diskutieren und " "anfordern und Softwarefehler reklamieren. Gehen Sie auf %(url)s und treten " "Sie heute bei." #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "Mit %(name)s kann man Aktionen beliebig oft rückgängig machen bzw. " "wiederholen. Egal was Sie machen, sei es die Beschreibung einer Aufgabe " "ändern oder einen Aufwands-Datensatz löschen, kann rückgängig gemacht " "werden. Wählen Sie 'Bearbeiten' -> 'Rückgängig' oder 'Wiederholen', um " "rückwärts bzw. vorwärts durch das Änderungsprotokoll zu steigen." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s ist in mehreren Sprachen verfügbar. 'Bearbeiten' -> 'Eigenschaften' " "auswählen um zu sehen, ob Ihrer Sprache verfügbar ist. Sollte Ihre Sprache " "nicht verfügbar sein oder die Übersetzung verbesserungswürdig sein, " "überlegen Sie sich, uns beim Übersetzen von %(name)s zu unterstützen. " "Besuchen Sie uns unter %(url)s." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Wenn Sie eine URL (e.g. %(url)s) in eine Aufgabe oder Aufwandsbeschreibung " "eingeben, wird sie in ein Link umgewandelt. Wenn Sie auf diesem Link " "klicken, wird die Seite im Standardbrowser geöffnet." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Sie können Aufgaben innerhalb eines Aufgabenbaums per Drag und Drop ziehen, " "um die Beziehungen der Aufgaben anzupassen. Das Gleiche gilt für Kategorien." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Sie können Dateien von einem Datei-Browser (z.B. Windows Explorer) auf eine " "Aufgabe ziehen, um Anlagen zu erstellen. Wenn Sie die Dateien über einen " "Reiter ziehen, wird die entsprechende Seite angezeigt. Wenn Sie die Dateien " "über eine ausgeblendete Aufgabe (das + Symbol) ziehen, werden alle " "Teilaufgaben eingeblendet." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Mit Hilfe von Drag'n'Drop der Tabs kann jedes beliebige Anzeigelayout " "erstellt werden. Das Layout wird gespeichert und in der nächsten Sitzung " "wiederverwendet." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Was tatsächlich gedruckt wird, wenn Sie 'Datei' -> 'Drucken' auswählen hängt " "von der aktuellen Ansicht ab. Wenn die Aufgabenliste anzeigt wird, wird eine " "Liste der Aufgaben gedruckt. Wenn die Aufwände pro Monat anzeigt werden, " "werden diese gedruckt. Das Gleiche gilt für angezeigte Spalten, " "Sortierungsreihenfolge, gefilterte Aufgaben, usw." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Links-Klick auf eine Spaltenüberschrift sortiert die Einträge nach dieser " "Spalte. Nochmal auf die Überschrift klicken, um die Reihenfolge umzukehren. " "Rechts-Klick um die Spalte auszublenden oder andere Spalten einzublenden." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Sie können aus einer Aufgabe eine Vorlage erstellen. Damit verringern Sie " "den Schreibaufwand, wenn wiederholt ähnliche Aufgaben auftreten." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" "Strg+Tab schaltet zwischen den Reitern in den Bearbeitungsdialogen um." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Tipp des Tages" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Nächster Tipp" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Zeige Tipps beim Programmstart." #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "Dateien durchsuchen, die als Anhang an die gewählten Elemente angefügt " "werden sollen" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Eine Notiz zu ausgewählten Elementen hinzufügen" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Eine neue Kategorie hinzufügen" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Ausgewählte Aufgabe(n) in Zwischenablage verschieben" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Ausgewählte Elemente in die Zwischenablage kopieren" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Elemente aus der Zwischenablage einfügen" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Füge Einträge aus der Zwischenablage als Untereintrag des ausgewählten " "Eintrages ein" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Einstellungen bearbeiten" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Letzte Änderung wiederholen" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Alle Elemente in dieser Ansicht auswählen" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Letzte Änderung rückgängig machen" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Aufwand auf das Budget der ausgewählten Aufgabe(n) buchen" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Aufwand-Erfassung für ausgewählte Aufgabe(n) starten" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Aufwandserfassung anhalten oder wieder aufnehmen" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Aktuelle Datei schließen" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "%s verlassen" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Eine %s-Datei öffnen" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Aktuelle Datei speichern" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Aktuelle Datei unter einem anderen Namen speichern" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Hilfe zu dem Programm" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Gewählte Elemente mit dem Standard-Mailprogramm senden" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Eine neue Notiz anlegen" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Alle Anhänge der gewählten Elemente öffnen" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Alle Notizen der gewählten Elemente öffnen" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Aktuelle Datei drucken" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Eigenschaften der Druckseite einstellen" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Alle Einträge anzeigen (alle Filter zurücksetzen)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Alle Einträge unabhängig der gewählten Kategorie anzeigen" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Setze Focus vom Viewer zur Suchbox" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Priorität der ausgewählten Aufgaben verringern" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Priorität der ausgewählten Aufgaben erhöhen" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Ausgewählte Aufgaben auf höchste Priorität setzen" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Ausgewählte Aufgaben auf geringste Priorität setzen" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Neue Aufgabe einfügen" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Alle Elemente mit Unterelementen ausblenden" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Alle Elemente mit Unterelementen einblenden" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Die nächste offene Ansicht aktivieren" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Wähle die vorherige Ansicht aus" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Ein iPhone oder iPod Touch versuchte sich mit Task Coach zu verbinden,\n" "aber es wurde kein Passwort festgelegt. Bitte setzen Sie ein Passwort\n" "im Bereich iPhone der Einstellungen und versuchen Sie es erneut." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protokoll-Version: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Entfernte Protokoll-Version %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Gerätename: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Sende Dateiname: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Voll vom Desktop." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d Kategorien" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Sende Kategorie %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Antwort: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d Aufgaben" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Sende Aufgabe %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d Aufwände" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Sende Aufwände %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Abgeschlossen." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d neue Kategorien" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d neue Aufgaben" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d neue Versuche" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d geänderte Kategorien" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d geänderte Aufgaben" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d geänderte Aufwände" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d gelöschte Kategorien" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d gelöschte Aufgaben" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d gelöschte Aufwände" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Neue Kategorie (von: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Lösche Kategorie %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Ändere Kategorie %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Neue Aufgabe %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Lösche Aufgabe %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Ändere Aufgabe %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Ende der Aufgabensynchronisation." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Neuer Versuch %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Ändere Aufwand %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Sende GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Lese Nachricht, bitte warten." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Konnte Thunderbird Datenverzeichnis nicht finden." #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Konnte Thunderbird Profilverzeichnis nicht finden." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Nicht erkenate URL Schema: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Keine solche Mail: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Tatsächliche Startzeit" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Geplanter Startzeitpunkt" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Fälligkeitszeitpunkt" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Fertigstellungszeitpunkt" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Erinnerungszeit" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Erstellungszeit" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Wiederkehrendes Abschlussdatum" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Wiederkehrende Abschlussuhrzeit" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Wiederkehrendes Beginndatum" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Wiederkehrende Beginnuhrzeit" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Kein Betreff" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Neue Aufgabe heute fällig" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Neue Aufgabe morgen fällig" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d Tage" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 Tag" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Alle %(frequency)d Tage" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Alle %(frequency)d Wochen" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Alle %(frequency)d Monate" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Alle %(frequency)d Jahre" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Alle 2 Tage" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Alle 2 Wochen" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Alle 2 Monate" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Alle 2 Jahre" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Gestern" #: taskcoachlib/render.py:284 msgid "now" msgstr "jetzt" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Die Synchronisation für Quelle %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "wird vom Server aktualisiert. Alle lokal gespeicherten\n" "Daten werden gelöscht. Wollen Sie fortfahren?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "wird vom Client aktualisiert. Alle Serverdaten\n" "werden gelöscht. Wollen Sie fortfahren?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronisation" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synchronisiere. Bitte warten.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d Einträge hinzugefügt.\n" "%d Einträge aktualisiert.\n" "%d Einträge gelöscht." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Ein Fehler ist bei der Synchronisation aufgetreten.\n" "Fehlercode: %d; Nachricht: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Sie müssen zuerst Ihre SyncML Einstellungen editieren; in Editieren/SyncML " "Voreinstellungen" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Fensterwechsler" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Wiederherstellung %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Fenstervorschau" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Schließen" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Alle Schließen" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Weiter" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Zurück" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Fenster" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Bearbeiten" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d Wochen" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d Stunden" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Erledigt" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Monat" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Kalenderausrichtung" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertikal" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Welche Aufgaben anzeigen" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Aufgaben mit einem geplanten Beginn- und Fälligkeitsdatum" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Aufgaben mit geplantem Startdatum" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Aufgaben mit einem Fälligkeitsdatum" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Alle Aufgaben" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Alle Aufgaben, ausser ungeplante Aufgaben" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Eine Linie zeichnen, um die aktuelle Zeit zu zeigen" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Farbe für den heutigen Tag" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Alle Dateien (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Kopfzeilen" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Kalenderwoche" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Kalenderansicht" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Woche" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Arbeitswoche" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Passwort:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "In KeyChain speichern" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Bitte geben Sie ihr Passwort ein." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Bitte geben Sie Ihr Passwort ein" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "Groß-/Kleinschreibung beachten" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Groß-/Kleinschreibung beachten" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Alle Untereinträge einbeziehen" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Untereinträge der Suchergebnisse berücksichtigen" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Auch in der Beschreibung suchen" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Durchsuche Titel und Beschreibung" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Regulärer Ausdruck" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Betrachte Suchtext als Regulären Ausdruck" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Dies ist ein falscher regulärer Ausdruck." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Standardmäßig nur Teilausdrücke suchen." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Letzte Suche" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Ansicht kann nicht durchsucht werden" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Kompatibilitätswarnung" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Die SyncML-Funktion ist abgeschaltet, weil das Modul\n" "nicht geladen werden konnte. Ein möglicher Grund ist die\n" "fehlende Unterstützung für Ihre Ihre Plattform. Unter Windows\n" "kann es an fehlenden DLLs liegen. Bitte schlagen Sie Einzelheiten\n" "im SyncML-Abschnitt der Online-Hilfe (unter \"Fehlerbehebung\") nach." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Dialog nicht wieder anzeigen" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Fehler beim Öffnen einer WebAdresse" #~ msgid "&Delete\tDEL" #~ msgstr "&Löschen\tDEL" taskcoach-1.4.3/i18n.in/el.po000066400000000000000000005272731265347643000156350ustar00rootroot00000000000000# Greek translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-02-01 09:10+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: el\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Συνέβησαν σφάλματα.Παρακαλώ ανατρέξτε στο αρχείο \"taskcoachlog.txt\" στον " "φάκελο \"Τα Έγγραφα Μου\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Σφάλμα" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Προέκυψαν σφάλματα. Παρακαλώ δείτε το \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Δεν ήταν δυνατή η φόρτωση των ρυθμίσεων από το TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s σφάλμα αρχείου" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Βοηθός Εργασιών" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Εντοπίστηκαν διενέξεις για το \"%s\"." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Επεξεργασία τοποθεσίας των συνημμένων" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Επεξεργασία της τοποθεσίας του συνημμένου \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Προσθήκη συνημμένου" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Προσθήκη συνημμένου στο \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Νέα επισύναψη" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Αφαίρεση συνημμένου" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Αφαίρεση συνημμένου από το \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Αντιγραφή" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Αντιγραφή του \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Διαγραφή" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Διαγραφή του \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Αποκοπή" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Αποκοπή του \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Επικόλληση" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Επικόλληση του \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Επικόλληση ως υποαντικείμενο" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Επικόλληση ως υποαντικείμενο του \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Μεταφορά και απόθεση" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Μεταφορά και απόθεση του \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Επεξεργασία θεμάτων" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Επεξεργασία θέματος \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Επεξεργασία περιγραφών" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Επεξεργασία της περιγραφής του \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Αλλαγή εικονιδίων" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Αλλαγή εικονιδίου του \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Αλλαγή γραμματοσειρών" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Αλλαγή γραμματοσειράς του \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Αλλαγή χρωμάτων προσκηνίου" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Αλλαγή χρώματος προσκηνίου \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Αλλαγή χρωμάτων φόντου" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Αλλαγή χρώματος φόντου \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Αλλαγή κατηγορίας" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Αλλαγή κατηγορίας του \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Νέα κατηγορία" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Νέες υποκατηγορίες" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Νέα υποκατηγορία του \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Νέα υποκατηγορία" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Επεξεργασία αποκλειστικών υποκατηγοριών" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Επεξεργασία αποκλειστικών υποκατηγοριών του \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Διαγραφή κατηγοριών" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Διαγραφή κατηγορίας \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Μετέφερε και απόθεσε κατηγορίες" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Καινούργιες προσπάθειες" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Καινούργια προσπάθεια του \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Διαγραφή προσπαθειών" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Διαγραφή προσπάθειας \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Αλλαγή εργασίας της προσπάθειας" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Αλλαγή εργασίας της \"%s\" προσπάθειας" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Αλλαγή ημερομηνίας και ώρας εκκίνησης προσπάθειας" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Αλλαγή ημερομηνίας και ώρας εκκίνησης προσπάθειας του \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Αλλαγή προθεσμίας προσπάθειας" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Αλλαγή προθεσμίας της \"%s\" προσπάθειας" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Νέα σημείωση" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Νέες υποσημειώσεις" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Νέα υποσημείωση του \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Νέα υποσημείωση" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Διαγραφή σημειώσεων" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Διαγραφή σημείωσης \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Μεταφορά και απόθεση σημειώσεων" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Μεταφορά και απόθεση σημείωσης \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Προσθήκη σημείωσης" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Προσθήκη σημείωσης στο \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Προσθήκη υποσημείωσης" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Προσθήκη υποσημείωσης στο \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Αφαίρεση σημείωσης" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Αφαίρεση σημείωσης από το \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Μεταφορά και απόθεση εργασιών" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Διαγραφή εργασιών" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Διαγραφή εργασίας \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Νέα εργασία" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Νέες υπoεργασίες" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Νέα υποεργασία του \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Νέα υποεργασία" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Σημείωσε τις εργασίες ως ολοκληρωμένες" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Σημείωσε το \"%s\" ως ολοκληρωμένο" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Σημείωση εργασίας ως ενεργή" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Σημείωση του \"%s\" ως ενεργό" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Σημείωση εργασίας ως μη ενεργή" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Σημείωση του \"%s\" ως μη ενεργού" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Εκκίνηση παρακολούθησης" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Εκκίνηση παρακολούθησης του \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Διακοπή παρακολούθησης" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Διακοπή παρακολούθησης του \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Μεγιστοποίηση προτεραιότητας" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Μεγιστοποίηση προτεραιότητας του \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Ελαχιστοποίηση προτεραιότητας" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Ελαχιστοποίηση προτεραιότητας του \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Αύξηση προτεραιότητας" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Αύξηση προτεραιότητας του \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Μείωση προτεραιότητας" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Μείωση προτεραιότητας του \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Αλλαγή προτεραιότητας" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Αλλαγή προτεραιότητας του \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Προσθήκη σημείωσης στις εργασίες" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Αλλαγή σχεδιασμένης ημερομηνίας έναρξης" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Αλλαγή σχεδιασμένης ημερομηνίας έναρξης του \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Αλλαγή προθεσμίας λήξης" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Αλλαγή προθεσμίας λήξης του \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Αλλαγή πραγματικής ημερομηνίας εκκίνησης" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Αλλαγή πραγματικής ημερομηνίας εκκίνησης του \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Αλλαγή ημερομηνίας ολοκλήρωσης" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Αλλαγή ημερομηνίας ολοκλήρωσης του \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Αλλαγή ημερομηνίας/ώρας υπενθύμισης" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Αλλαγή ημερομηνίας/ώρας υπενθύμισης του \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Σφάλμα κατά την αποθήκευση του %s.ini\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Σφάλμα αποθήκευσης" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Νέα επισύναψη..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Εισαγωγή νέας επισύναψης" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Άνοιγμα συνημμένου" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Άνοιγμα επιλεγμένων συνημμένων" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 λεπτά" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 λεπτά" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 λεπτά" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 λεπτά" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 λεπτά" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 ώρα" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 λεπτά" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 ώρα" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 ώρες" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 ώρες" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 ώρες" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 ώρες" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 ώρες" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 ώρες" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 ώρες" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 ώρες" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 ώρες" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 ώρες" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 εβδομάδες" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 εβδομάδα" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Νέα εργασία..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Βόμβα" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Βιβλίο" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Βιβλία" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Κουτί" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Πασχαλίτσα" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Κέικ" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Αριθμομηχανή" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Ημερολόγιο" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Γάτα" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Ξυπνητήρι" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Χρονόμετρο" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Κόκκινος σταυρός" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Ζάρι" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Έγγραφο" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Μπλε γη" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Μπλε φάκελος" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Γαλάζιος φάκελος" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Γκρι φάκελος" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Πορτοκαλί φάκελος" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Μωβ φάκελος" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Κόκκινος φάκελος" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Κίτρινος φάκελος" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Μπλε φάκελος με βέλος" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Καρδιά" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Καρδιές" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Κόκκινο σπίτι" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Κλειδί" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Κλειδιά" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Ερωτηματικό" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Πληροφορία" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Παλέττα" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Συνδετήρας" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Άτομο" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Άνθρωποι" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Προειδοποιητικό σήμα" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Μείον" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Συν" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Κόκκινο αστέρι" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Κίτρινο αστέρι" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Κεραυνός" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Ομπρέλα" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Κλείσιμο" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Περιγραφή" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Θέμα" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Ημερομηνία δημιουργίας" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Ημερομηνία τροποποίησης" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Προτεραιότητα" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Αλληλοαποκλειόμενα" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Υποκατηγορίες" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Περιήγηση" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Τοποθεσία" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Εμφάνιση" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Γραμματοσειρά" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Εικονίδιο" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Ημερομηνίες" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Ημερομηνία λήξης" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Ημερομηνία ολοκλήρωσης" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Υπενθύμιση" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Επανάληψη" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Πρόοδος" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Όχι" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ναι" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Έσοδα" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Εισόδημα" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Προσπάθεια" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Κατηγορίες" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Συνημμένα" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Σημειώσεις" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Προαπαιτούμενα" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Επεξεργασία εργασίας" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Εργασία" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Έναρξη" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Εβδομάδα(-ες)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Ημέρα(-ες)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Ώρα(-ες)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Λεπτό(-α)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Διακοπή" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Κανένα" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Ημερησίως" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Μηνιαίως" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Εβδομαδιαία" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Ετησίως" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "διατήρηση ημερομηνίας στην ίδια εργάσιμη μέρα της εβδομάδας" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", κάθε" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "μkhgkjfjhtfjyufjhgfkj" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "περίοδος," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "εβδομάδα(-ες)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "μήνας(-ες)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "έτος(-η)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Άκυρο" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Ιστοσελίδα της Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Εντάξει" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Αρχεία" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Πάντα" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Ποτέ" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Γλώσσα" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Χαρακτηριστικά" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Δευτέρα" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Κυριακή" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Σήμερα" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Αύριο" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Μεθαύριο" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Επόμενη Παρασκευή" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Επόμενη Δευτέρα" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Επεξεργαστής" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Αναβολή" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Αργά" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Πρόσβαση" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Διαθέσιμα εργαλεία" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Εργαλεία" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Ειδοποίηση για νέες εκδόσεις." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Νέα έκδοση του%(name)s διαθέσιμο(α)" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Έκδοση %(version)s του %(name)s είναι διαθέσιμα από" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Προειδοποίηση" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s αρχεία (*.tsk)|*.tsk|Backup αρχείων (*.tsk.bak)|*.bak|Όλα τα αρχεία " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Αρχεία iCalendar (*.ics)|*.ics|Όλα τα αρχεία (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Αρχεία HTML (*.html)|*.html|Όλα τα αρχεία (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Αρχεία CSV (*.csv)|*.csv|Αρχεία κειμένου (*.txt)|*.txt|Όλα τα αρχεία " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Άνοιγμα" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Φόρτωση %(nrtasks)d καθηκόντων από %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Δεν είναι δυνατό το άνοιγμα %s διότι δεν υπάρχουν" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Συγχώνευση" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Συγχωνευμένο %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Αποθήκευση ως" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Αποθήκευση επιλογής" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Δεν μπορείτε να αποθηκεύσετε %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s αρχεία προτύπων (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Ολοκληρωμένος συγχρονισμός" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Επίπεδο συγχρονισμού" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "Έχετε μη αποθηκευμένες αλλαγές." #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Σφάλμα κατά την ανάγνωση %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Συγχρονισμός..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Συγχρονισμός με %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Τύπος συγχρονισμού" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Αρχείο" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Επεξεργασία" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Προβολή" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Βοήθεια" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Εξαγωγή" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Επιλογή" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Φίλτρο" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Στήλες" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Εμφάνιση/απόκρυψη γραμμής κατάστασης" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Εργασία" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Κατηγορία" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Απόκρυψη" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Απόκρυψη γραμμής εργαλειών" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Προτεραιότητα" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Σελίδα" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Άνοιγμα %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Συγχώνευση..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Προεπισκόπηση εκτύπωσης" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Αναίρεση" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Επαναφορά" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Αύξουσα" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Νέα &υποεργασία..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "και" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Χωρίς θέμα)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Βοήθεια" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Περί %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Σχετικά %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s άδεια" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Επαναφορά" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Αναζήτηση" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Προσπάθεια ανά μήνα" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Προσπάθεια ανά εβδομάδα" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Λίστα" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Δέντρο" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Σήμερα" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 λεπτό" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d λεπτά" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Τύπος" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Ταξινόμηση κατά περιγραφή" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Σημειώσεις" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Περίοδος" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Τρίτη" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Τετάρτη" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Πέμπτη" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Παρασκευή" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Σάββατο" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Επανεμφάνιση" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Υπενθύμιση" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Θέμα" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Εργασίες" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Τώρα" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Εξαρτάται" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Υπολειπόμενος χρόνος" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Κόμμα" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Κενό" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Κατηγορία" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Υπενθυμίσεις" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Συντομεύσεις πληκτρολογίου" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Εισαγωγή νέας κατηγορίας" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Προσθήκη περιόδου προσπάθειας στις επιλεγμένες εργασίες" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Κλείσιμο του τρέχοντος αρχείου" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Αποθήκευση του τρέχοντος αρχείου" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Εισαγωγή νέας σημείωσης" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Εκτύπωση του τρέχοντος αρχείου" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Εισαγωγή μιας νέας εργασίας" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Συγχρονισμός" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Όλες οι εργασίες" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Πρόσφατες αναζητήσεις" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/en_AU.po000066400000000000000000006600661265347643000162220ustar00rootroot00000000000000# English (Australia) translation for taskcoach # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:28+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Errors have occurred. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Error" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Errors have occurred. Please see \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Couldn't load settings from TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s file error" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" became top-level because its parent was locally deleted." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Conflicts detected for \"%s\".\n" "The local version was used." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Edit location of attachments" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Edit attachment \"%s\" location" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Add attachment" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Add attachment to \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "New attachment" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Remove attachment" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Remove attachment to \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copy" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copy \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Delete" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Delete \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Cut" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Cut \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Paste" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Paste \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Paste as sub-item" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Paste as sub item of \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Drag and drop" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Drag and drop \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Edit subjects" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Edit subject \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Edit descriptions" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Edit description \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Change icons" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Change icon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Change fonts" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Change font \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Change foreground colours" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Change foreground colour \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Change background colours" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Change background colour \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Toggle category" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Toggle category of \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "New category" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "New subcategories" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "New subcategory of \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "New subcategory" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Edit exclusive subcategories" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Edit exclusive subcategories of \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Delete categories" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Delete category \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Drag and drop categories" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "New efforts" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "New effort of \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Delete efforts" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Delete effort \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Change task of effort" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Change task of \"%s\" effort" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Change effort start date and time" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Change effort start date and time of \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Change effort stop date and time" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Change effort stop date and time of \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "New note" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "New sub-notes" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "New sub-note of \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "New sub-note" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Delete notes" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Delete note \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Drag and drop notes" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Drag and drop note \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Add note" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Add note to \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Add sub-note" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Add sub-note to \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Remove note" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Remove note from \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Drag and drop tasks" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Delete tasks" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Delete task \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "New task" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "New subtasks" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "New subtask of \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "New subtask" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Mark tasks completed" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Mark \"%s\" completed" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Mark task active" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Mark \"%s\" active" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Mark task inactive" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Mark \"%s\" inactive" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Start tracking" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Start tracking \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stop tracking" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Stop tracking \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximise priority" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximise priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimise priority" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimise priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Increase priority" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Increase priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Decrease priority" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Decrease priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Change priority" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Change priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Add note to tasks" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Change planned start date" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Change planned start date of \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Change due date" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Change due date of \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Change actual start date" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Change actual start date of \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Change completion date" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Change completion date of \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Change reminder dates/times" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Change reminder date/time of \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Change recurrences" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Change recurrence of \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Change percentage complete of \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Change when tasks are marked completed" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Change when \"%s\" is marked completed" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Change budgets" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Change budget of \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Change hourly fees" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Change hourly fee of \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Change fixed fees" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Change fixed fee of \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Toggle prerequisite" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Toggle prerequisite of \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Error while reading the %s-%s setting from %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "The value is: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "The error is: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s will use the default value for the setting and should proceed normally." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Settings error" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Error while saving %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Save error" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app message" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "New attachment..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Insert a new attachment" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Open attachment" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Open the selected attachments" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutes" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Don't snooze" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutes" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutes" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 hour" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutes" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hour" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 hours" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 hours" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 hours" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 hours" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 hours" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 hours" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 hours" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 weeks" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 week" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total for %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&New effort...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Inactive tasks" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Hide &inactive tasks" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Inactive tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Show/hide inactive tasks (incomplete tasks without actual start date)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Late tasks" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Hide &late tasks" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Late tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Show/hide late tasks (inactive tasks with a planned start in the past)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Active tasks" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Active tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Hide &active tasks" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Due soon tasks" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Due soon tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Hide &due soon tasks" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Overdue tasks" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Hide &over due tasks" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Overdue tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Completed tasks" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Completed tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Hide &completed tasks" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Show/hide completed tasks" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&New task..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Arrow down" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Arrow down with status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blue arrows looped" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Green arrows looped" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Arrow up" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Arrow up with status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomb" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Book" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Books" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Box" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Ladybug" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Cake" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendar" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Cat" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Charts" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Chatting" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Check mark" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Check marks" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Clock" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarm clock" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopwatch" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Cogwheel" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Cogwheels" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Desktop computer" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Laptop computer" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handheld computer" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Red cross" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Die" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Document" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blue earth" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Green earth" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelope" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envelopes" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blue folder" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Light blue folder" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Green folder" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grey folder" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Orange folder" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Purple folder" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Red folder" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Yellow folder" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blue folder with arrow" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Heart" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Hearts" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Green house" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Red house" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Key" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Keys" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lamp" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Question mark" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Information" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Blue led" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Light blue led" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Grey led" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Green led" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Light green led" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Orange led" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Purple led" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Red led" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Yellow led" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Life ring" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Locked lock" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Unlocked lock" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Magnifier glass" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Music note" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Note" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palette" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Paperclip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Pencil" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Person" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "People" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identification" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Person talking" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Warning sign" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Red star" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Yellow star" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Traffic light" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Trashcan" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Lightning" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Umbrella" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Partly sunny" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Wrench" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "No icon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Close" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Message from the %s developers" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "See:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Description" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Edit to change all subjects" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Subject" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Edit to change all descriptions" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Creation date" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Modification date" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priority" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutually exclusive" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategories" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Edit to change location of all attachments" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Browse" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Location" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Appearance" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Foreground colour" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Background colour" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Font" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icon" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Dates" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Planned start date" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Due date" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Actual start date" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Completion date" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Reminder" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recurrence" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progress" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Percentage complete" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Use application-wide setting" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "No" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Yes" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Mark task completed when all children are completed?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Time spent" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budget left" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Hourly fee" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fixed fee" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Revenue" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Effort" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categories" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Attachments" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notes" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Prerequisites" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Edit task" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Task" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Week(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Day(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hour(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minute(s)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stop" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Start tracking from last stop time" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Stop tracking now" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Warning: start must be earlier than stop" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Multiple tasks" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (task)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Multiple categories" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (category)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Multiple notes" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (note)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Multiple attachments" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (attachment)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Multiple efforts" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (effort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Use font:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Use colour:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "None" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Daily" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Monthly" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Weekly" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Yearly" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "keeping dates on the same weekday" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", every" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Stop after" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "recurrences" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Schedule each next recurrence based on" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "day(s)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "period," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "week(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "month(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "year(s)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Export items from:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Export only the selected items" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Columns to export:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Put task dates and times in separate columns" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Write style information to a separate CSS file" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Export as CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Export as iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Export as HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Export as Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "An iPhone or iPod Touch device is trying\n" "to synchronise with this task file for\n" "the first time. What kind of synchronisation\n" "would you like to use?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Refresh from desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Refresh from device" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancel" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "You have enabled the iPhone synchronisation feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Please download and install Bonjour for Windows from\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple's web site" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour support for Linux is generally provided by\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "You may find details for your distribution here" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "In addition, if you have a firewall, check that ports 4096-4100 are open." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "This setting will take effect after you restart %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Files" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Auto save after every change" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Auto load when the file changes on disk" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Smart filesystem monitoring" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Save settings (%s.ini) in the same\n" "directory as the program" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "For running %s from a removable medium" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Attachment base directory" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "When adding an attachment, try to make\n" "its path relative to this one." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Before saving, automatically import from" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt format" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "When saving, automatically export to" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Window behaviour" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Show splash screen on start-up" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Show tips window on start-up" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Start with the main window iconised" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Always" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Never" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "If it was iconised last session" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Check for new version of %(name)s on start-up" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Check for messages from the %(name)s developers on start-up" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Hide main window when iconised" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimise main window when closed" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Make clock in the task bar tick when tracking effort" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Language" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Let the system determine the language" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Language not found?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Task appearance" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Features" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "All settings on this tab require a restart of %s to take effect" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Enable SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Enable iPhone synchronisation" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Use X11 session management" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Start of work week" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Monday" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Sunday" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hour of start of work day" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hour of end of work day" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "End of day" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Use gradients in calendar views.\n" "This may slow down Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutes between suggested times" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "In pop-up menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Idle time notice" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Show a popup with the description of an item\n" "when hovering over it" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Task dates" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Mark parent task completed when all children are completed" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Number of hours that tasks are considered to be 'due soon'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nothing" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Changing the planned start date changes the due date" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Changing the due date changes the planned start date" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "What to do with planned start and due date if the other one is changed" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Preset" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Propose" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Today" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Tomorrow" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Day after tomorrow" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Next Friday" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Next Monday" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Start of day" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Start of working day" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Current time" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "End of working day" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Default planned start date and time" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Default due date and time" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Default actual start date and time" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Default completion date and time" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Default reminder date and time" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Task reminders" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Notification system to use for reminders" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Let the computer say the reminder" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Needs espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Default snooze time to use after reminder" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Snooze times to offer in task reminder dialog" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Password for synchronisation with iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "When synchronising, enter this password on the iPhone to authorise it" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour service name" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Upload completed tasks to device" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Show the synchronisation log" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Check spelling in editors" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Font to use in the description field of edit dialogs" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Get e-mail subject from Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Focus task subject in task editor" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s reminder - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Reminder date/time" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Snooze" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Also make this the default snooze time for future reminders" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Mark task completed" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Custom" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "User name/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Enable tasks synchronisation" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Tasks database name" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Preferred synchronisation mode" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Two way" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Slow" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "One way from client" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Refresh from client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "One way from server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Refresh from server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Enable notes synchronisation" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Notes database name" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Access" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "New task template" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Preview" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Available tools" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Make this tool visible in the toolbar" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Hide this tool from the toolbar" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Tools" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Move the tool up (to the left of the toolbar)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Move the tool down (to the right of the toolbar)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Reorder toolbar buttons by drag and dropping them in this list." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separator" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Spacer" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Notify me of new versions." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "New version of %(name)s available" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "You are using %(name)s version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Version %(version)s of %(name)s is available from" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s is up to date" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s is up to date at version %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Couldn't find out latest version" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Couldn't find out what the latest version of %(name)s is." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Pre-release version" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "You are using %(name)s pre-release version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "The latest released version of %(name)s is %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Warning" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach has known issues with XFCE4 session management.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "If you experience random freeze at start-up, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Do not show this dialog at start-up" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "No user input since %s. The following task was\n" "being tracked:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Do nothing" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Stop it at %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Stop it at %s and resume now" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notification" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s files (*.tsk)|*.tsk|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar files (*.ics)|*.ics|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML files (*.html)|*.html|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Open" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Loaded %(nrtasks)d tasks from %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Cannot open %s because it doesn't exist" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Merge" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Cannot open %(filename)s\n" "because it is locked." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Merged %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Save as" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Save selection" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Cannot save %s\n" "It is locked by another instance of %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Cannot save %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Import template" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s template files (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Cannot import template %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Exported %(count)d items to %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Finished synchronisation" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synchronisation status" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Cannot open %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "A file named %s already exists.\n" "Do you want to replace it?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "You have unsaved changes.\n" "Save before closing?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: save changes?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: file locked" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Closed %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Saved %(nrtasks)d tasks to %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Error while reading %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronising..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronising with %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Welcome to %(name)s version %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s settings error" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synchronisation type" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "An iPhone or iPod Touch device tried to synchronise with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&File" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Edit" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&View" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&New" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Actions" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Help" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Import" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Export" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Select" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&New viewer" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activate next viewer\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activate &previous viewer\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Mode" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sort" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Columns" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Rounding" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Tree options" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "T&oolbar" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Show/hide status bar" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Status&bar" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Task" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Open a new tab with a viewer that displays tasks" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Task &statistics" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Open a new tab with a viewer that displays task statistics" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Task &square map" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Open a new tab with a viewer that displays tasks in a square map" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&imeline" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Open a new tab with a viewer that displays a timeline of tasks and effort" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendar" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Open a new tab with a viewer that displays tasks in a calendar" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Category" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Open a new tab with a viewer that displays categories" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Effort" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Open a new tab with a viewer that displays efforts" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Open a new tab with a viewer that displays efforts for the selected task" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Note" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Open a new tab with a viewer that displays notes" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Hide" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Hide the toolbar" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Small images" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Small images (16x16) on the toolbar" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Medium-sized images" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Medium-sized images (22x22) on the toolbar" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Large images" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Large images (32x32) on the toolbar" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "New task from &template" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Toggle category" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Change task &priority" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Start tracking effort" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategories)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtasks)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priority" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Page" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Reminder" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tasks overdue" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "one task overdue" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tasks due soon" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "one task due soon" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "tracking \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "tracking effort for %d tasks" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Open...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Open %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Merge..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Merge tasks from another file with the current file" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Close\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Save\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Merge &disk changes\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&ave as...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Sa&ve selected tasks to new taskfile..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Save the selected tasks to a separate taskfile" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Save selected task as &template" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Save the selected task as a task template" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Import template..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Import a new template from a template file" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Edit templates..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Edit existing templates" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Edit templates" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Purge deleted items" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Page setup...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Print preview..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Show a preview of what the print will look like" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Print preview" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Print...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Export as &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Export items from a viewer in HTML format" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Export as &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Export items from a viewer in Comma Separated Values (CSV) format" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Export as &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Export items from a viewer in iCalendar format" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Export as &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "Export items from a viewer in Todo.txt format (see todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Import CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Import tasks from a Comma Separated Values (CSV) file" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Import CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "The selected file is empty. Please select a different file." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Import Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Import tasks from a Todo.txt (see todotxt.com) file" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Import Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML synchronisation..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synchronise with a SyncML server" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Quit\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Undo" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Redo" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Cu&t\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copy\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Paste\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "P&aste as sub-item\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferences...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferences" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML preferences..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Edit SyncML preferences" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML preferences" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Customise toolbar" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Customise" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&All\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Clear selection" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Unselect all items" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Clear all filters\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Reset all categories\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Show/hide items belonging to %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Rename viewer..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Rename the selected viewer" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "New title for the viewer:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Rename viewer" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Hide this column" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Hide the selected column" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Expand all items\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Collapse all items\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascending" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sort ascending (checked) or descending (unchecked)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Sort &case sensitive" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Sort by status &first" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sort tasks by status (active/inactive/completed) first" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Hide c&omposite tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Show/hide tasks with subtasks in list mode" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Edit...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Edit the selected item(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Edit &tracked task...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Edit the currently tracked task(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Delete\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Delete the selected item(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Create a new task from a template" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "New task with selected &categories..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Insert a new task with the selected categories checked" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "New task with selected tasks as &prerequisites..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Insert a new task with the selected tasks as prerequisite tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "New task with selected tasks as &dependants..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Insert a new task with the selected tasks as dependent tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "New &sub-item..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "New &subtask..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "New &sub-note..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "New &subcategory..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Insert a new sub-item of the selected item" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Mark task &active\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Mark the selected task(s) active" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Mark task &inactive\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Mark the selected task(s) inactive" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Mark task &completed\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Mark the selected task(s) completed" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximise priority\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimise priority\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Increase priority\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Decrease priority\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Toggle %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Several things" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "and" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Cannot send email:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s mail error" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Add ¬e...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Open all notes...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Start tracking effort\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Start tracking effort for the task(s) of the selected effort(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(No subject)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Start tracking effort for %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Select a task via the menu and start tracking effort for it" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Stop tracking or resume tracking effort\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "St&op tracking %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Stop tracking effort for the active task(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Resume tracking %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Resume tracking effort for the last tracked task" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "multiple tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "New category...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "New note...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "New ¬e with selected categories..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Insert a new note with the selected categories checked" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Add attachment...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Error opening attachment" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Open all attachments...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Help contents\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Help contents\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Help" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tips" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tips about the program" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymise" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Anonymise a task file to attach it to a bug report" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Your task file has been anonymised and saved to:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Finished" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&About %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Version and contact information about %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "About %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&License" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s license" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Check for update" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Check for the availability of a new version of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Cannot open URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URL error" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Frequently asked questions" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Browse the frequently asked questions and answers" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Report a &bug..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Report a bug or browse known bugs" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Request a &feature..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Request a new feature or vote for existing requests" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Request &support..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Request user support from the developers" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Help improve &translations..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Help improve the translations of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Donate..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Donate to support the development of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restore" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restore the window to its previous state" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Search" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Effort details" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Effort per day" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Effort per month" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Effort per week" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Aggregation mode" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "List" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Tree" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "When checked, show tasks as tree, otherwise show tasks as list" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filter on all checked categories" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filter on any checked category" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "When checked, filter on all checked categories, otherwise on any checked " "category" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Order choice" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configure" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configure the calendar viewer" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Next period" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Show next period" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Previous period" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Show previous period" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Today" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Show today" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatic column resizing" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "When checked, automatically resize columns to fill available space" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Set pie chart angle" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "No rounding" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minute" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutes" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Rounding precision" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Always round up" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Always round up to the next rounding increment" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Type" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sort by subject" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Sub&ject" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sort by description" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Description" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Creation date" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Sort by creation date" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Modification date" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Sort by last modification date" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Show/hide description column" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notes" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Show/hide notes column" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Show/hide creation date column" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Show/hide last modification date column" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Toolbars are customisable" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Click on the gear icon on the right to add buttons and rearrange them." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Attachments" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Show/hide attachments column" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categories: %d selected, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtered" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Period" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Total time spent" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Total revenue" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Tuesday" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Wednesday" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Thursday" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Friday" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Saturday" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categories" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Show/hide categories column" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Time spent" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Show/hide time spent column" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Revenue" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Show/hide revenue column" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Total time spent" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Show/hide total time spent column" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Total revenue" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Show/hide total revenue column" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Effort per weekday" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Show/hide time spent per weekday columns" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Effort aggregation" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d tracking" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sort categories by subject" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sort categories by description" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Sort categories by creation date" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Sort categories by last modification date" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sort categories manually" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sort attachments by subject" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sort attachments by description" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sort attachments by category" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Sort attachments by creation date" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Sort attachments by last modification date" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sort notes by subject" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sort notes by description" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sort notes by category" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Sort notes by creation date" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Sort notes by last modification date" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sort notes manually" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sort tasks by subject" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sort tasks by description" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sort tasks by category" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Sort tasks by creation date" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Sort tasks by last modification date" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sort tasks manually" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Sort tasks by planned start date" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Planned start date" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sort tasks by due date" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Due date" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sort tasks by completion date" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Completion date" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sort tasks by prerequisite tasks" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Prerequisites" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sort tasks by dependent tasks" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dependants" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Sort tasks by time left" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Time left" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Sort tasks by percentage complete" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Percentage complete" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sort tasks by recurrence" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Recurrence" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sort tasks by budget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sort tasks by time spent" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Budget &left" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sort tasks by budget left" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sort tasks by priority" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sort tasks by hourly fee" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Hourly fee" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sort tasks by fixed fee" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fixed fee" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sort tasks by revenue" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sort tasks by reminder date and time" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Reminder" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Subject" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sort notes by categories" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notes: %d selected, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tasks: %d selected, %d visible, %d total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d overdue, %d late, %d inactive, %d completed" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tasks" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Timeline" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Now" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Task square map" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Lay out tasks by" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Calendar viewer configuration" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dependants" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% complete" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Time left" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Dates" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&All date columns" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Show/hide all date-related columns" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Show/hide planned start date column" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Show/hide due date column" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Actual start date" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Show/hide actual start date column" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Show/hide completion date column" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Show/hide time left column" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Show/hide recurrence column" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&All budget columns" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Show/hide all budget-related columns" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Show/hide budget column" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Budget left" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Show/hide budget left column" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Financial" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&All financial columns" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Show/hide all finance-related columns" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Show/hide hourly fee column" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Show/hide fixed fee column" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Show/hide prerequisites column" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Show/hide dependants column" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Show/hide percentage complete column" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Show/hide attachment column" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Show/hide priority column" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Show/hide reminder column" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Show tasks as" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Task statistics" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Comma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Space" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Colon" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Semicolon" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Pipe" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (day first)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (month first)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Simple quote" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Double quote" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Double it" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Escape with" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Import only the selected rows" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "First line describes fields" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Delimiter" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Date format" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Quote character" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Escape quote" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Field #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Please select a file." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Category" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Reminder date" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percent complete" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Column header in CSV file" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s attribute" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "No field mapping." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "The \"%s\" field cannot be selected several times." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "The fields %s cannot be selected several times." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Table of contents" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "About tasks" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Task properties" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Task states" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Task colours" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Reminders" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "About effort" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Effort properties" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "About categories" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Category properties" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "About notes" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Note properties" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Printing and exporting" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "About printing and exporting" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Printing" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exporting" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Multi-user usage" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "About multi-user" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Storage options" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "E-mail integration" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "About e-mail integration" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Attaching an e-mail to a task" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Creating a task from an e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML support" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "What is SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Setup" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitations" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Troubleshooting" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Purging deleted items" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone and iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s on the iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuration" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s on Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt and Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importing todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exporting todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Task templates" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "About templates" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Using templates" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Graphical user interface" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Keyboard shortcuts" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Tasks have the following properties you can change:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Subject: a single line that summarises the task." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Description: a multi-line description of the task." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: amount of hours available for the task." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Hourly fee: the amount of money earned with the task per hour." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "The following properties are calculated from the properties above:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Days left: the number of days left until the due date." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dependants: other tasks that can be started when the \n" "prerequisite task has been completed." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Time spent: effort spent on the task." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Budget left: task budget minus time spent on the task." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Revenue: hourly fee times hours spent plus fixed fee." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Tasks always have exactly one of the following states:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Active: the actual start date is in the past;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Completed: the task has been completed." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "In addition, tasks can be referenced as:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Overdue: the due date is in the past;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Late: the planned start is in the past and the task has \n" "not been started;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Over budget: no budget left;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Under budget: still budget left;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "No budget: the task has no budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "The text of tasks is coloured according to the following rules:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Overdue tasks are red;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Tasks due soon are orange;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Active tasks are black text with a blue icon;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Late tasks are purple;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Future tasks are grey, and" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Completed tasks are green." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "This all assumes you have not changed the text colours through the \n" "preferences dialog, of course." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "The background colour of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Effort records have the following properties you can change:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Task: the task the effort belongs to." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Start date/time: start date and time of the effort." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Description: a multi-line description of the effort." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Time spent: how much time you have spent working on the task." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Revenue: money earned with the time spent." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Categories have the following properties you can change:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Subject: a single line that summarises the category." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Description: a multi-line description of the category." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Appearance properties such as icon, font and colours: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no colour, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "colour \n" "associated with it, a mixture of those colours will be used to render that \n" "item." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notes have the following properties you can change:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Subject: a single line that summarises the note." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Description: a multi-line description of the note." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Appearance properties such as icon, font and colours." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Several users working on the same task file." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Not tested yet." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Mail user agents supported include:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "There are two ways to attach an e-mail to a task; you can:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Drop it on a task either in the task tree or the task list." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Drop it in the attachment pane in the task editor." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML is an XML protocol designed to synchronise several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronisation \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronise with Exchange, Google Calendar,\n" "etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronise with the same SyncML server you\n" "synchronise Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronisation URL, your ID on the server and " "choose \n" "which items to synchronise (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "The database names are pretty standard; the default values \n" "should work." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Task and category hierarchy are lost to the server." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Recurrence and reminders are not supported yet." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Note categories are lost to the server." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronise with the same server at the same time, problems may " "\n" "arise." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Probably some others..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (see below)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 and later, both Intel and PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronisation. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch and iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s on the iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchical tasks and categories" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Time tracking" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Multiple task files" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Two-way synchronisation with %(name)s on the desktop" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "The application is universal and has a custom iPad UI." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuration on the iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Show completed: whether to show completed tasks." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# days due soon: How many days in the future is \n" "considered \"soon\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configuration on the desktop, all platforms" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Before synchronising, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronisation\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customise this, you may\n" "change the \"Bonjour service name\" in the configuration." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronise; if it's not running, it will prompt you again." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Note that this synchronisation happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuration on Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuration on Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "My computer doesn't appear in the list when trying to sync" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "The iPhone can't connect to my computer" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "If you have a firewall, check that ports 4096-4100 are open." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parametrised\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "re-evaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Please note that this system is not localised; you must enter\n" "the dates in English." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to each other." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux and Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Insert a new sub-item" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Edit the selected item(s) or close a dialog" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Mark the selected task(s) (un)completed" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Cancel a dialog or move keyboard focus from search control back to viewer" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Move keyboard focus to the next field in the dialog" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Move keyboard focus to the previous field in the dialog" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Move keyboard focus to the next tab in a notebook control" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Move keyboard focus to the previous tab in a notebook control" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Pop up menu or drop down box" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Edit the subject of the selected item in a viewer" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab switches between tabs in edit dialogs." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Tip of the day" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Next tip" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Show tips on startup" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Browse for files to add as attachment to the selected item(s)" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Add a note to the selected item(s)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Insert a new category" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Cut the selected item(s) to the clipboard" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copy the selected item(s) to the clipboard" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Paste item(s) from the clipboard" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Paste item(s) from the clipboard as sub-item of the selected item" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Edit preferences" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Redo the last command that was undone" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Select all items in the current view" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Undo the last command" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Add an effort period to the selected task(s)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Start tracking effort for the selected task(s)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Stop tracking effort or resume tracking effort" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Close the current file" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Exit %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Open a %s file" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Save the current file" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Load what has changed on disk" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Save the current file under a new name" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Help about the program" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Mail the selected item(s), using your default mailer" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Insert a new note" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Open all attachments of the selected item(s)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Open all notes of the selected item(s)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Print the current file" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Setup the characteristics of the printer page" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Show all items (reset all filters)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Show all items regardless of category" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Move keyboard focus from viewer to search control" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Decrease the priority of the selected task(s)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Increase the priority of the selected task(s)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Make the selected task(s) the highest priority task(s)" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Make the selected task(s) the lowest priority task(s)" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Insert a new task" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Collapse all items with sub-items" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Expand all items with sub-items" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activate the next open viewer" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activate the previous open viewer" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protocol version: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Rejected protocol version %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Device name: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Sending file name: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Full from desktop." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categories" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Send category %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Response: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tasks" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Send task %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d efforts" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Send effort %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Finished." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d new categories" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d new tasks" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d new efforts" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d modified categories" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d modified tasks" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d modified efforts" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d deleted categories" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d deleted tasks" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d deleted efforts" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "New category (parent: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Delete category %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modify category %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "New task %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Delete task %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modify task %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "End of task synchronisation." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Could not find task %s for effort." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "New effort %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modify effort %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Sending GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Reading mail info..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Reading mail information. Please wait." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Could not find Thunderbird data dir" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Could not find Thunderbird profile." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "No default section in profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Unrecognised URL scheme: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Please enter the domain for user %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Could not select inbox \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "No such mail: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Actual start time" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Planned start time" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Due time" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Completion time" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Reminder time" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Creation time" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "No subject" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "New task due today" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "New task due tomorrow" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d days" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 day" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Every %(frequency)d days" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Every %(frequency)d weeks" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Every %(frequency)d months" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Every %(frequency)d years" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Every other day" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Every other week" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Every other month" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Every other year" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Yesterday" #: taskcoachlib/render.py:284 msgid "now" msgstr "now" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "The synchronisation for source %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronisation" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synchronising. Please wait.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d items added.\n" "%d items updated.\n" "%d items deleted." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "An error occurred in the synchronisation.\n" "Error code: %d; message: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "You must first edit your SyncML Settings, in Edit/SyncML preferences." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Pane Switcher" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restore %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Pane Preview" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Cl&ose" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Close All" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Next" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Previous" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Window" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Edit" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d weeks" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d hours" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Done" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Kind of period displayed and its count" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Month" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Calendar orientation" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Which tasks to display" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tasks with a planned start date and a due date" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tasks with a planned start date" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tasks with a due date" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "All tasks" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "All tasks, except unplanned tasks" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Draw a line showing the current time" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Colour used to highlight the current day" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "All files (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Password:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Store in keychain" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Please enter your password." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Please enter your password" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Match case" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Match case when filtering" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Include sub items" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Include sub items of matching items in the search results" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Search description too" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Search both subject and description" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Regular Expression" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Consider search text as a regular expression" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "This is an invalid regular expression." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Defaulting to substring search." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Recent searches" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Viewer not searchable" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Compatibility warning" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Never show this dialog again" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Error opening URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Delete\tDEL" taskcoach-1.4.3/i18n.in/en_CA.po000066400000000000000000006600611265347643000161730ustar00rootroot00000000000000# English (Canada) translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:28+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: English (Canada) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Errors have occurred. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Error" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Errors have occurred. Please see \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Couldn't load settings from TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s file error" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" became top-level because its parent was locally deleted." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Conflicts detected for \"%s\".\n" "The local version was used." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Edit location of attachments" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Edit attachment \"%s\" location" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Add attachment" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Add attachment to \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "New attachment" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Remove attachment" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Remove attachment to \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copy" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copy \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Delete" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Delete \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Cut" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Cut \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Paste" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Paste \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Paste as sub-item" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Paste as sub item of \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Drag and drop" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Drag and drop \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Edit subjects" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Edit subject \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Edit descriptions" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Edit description \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Change icons" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Change icon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Change fonts" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Change font \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Change foreground colours" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Change foreground colour \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Change background colours" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Change background colour \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Toggle category" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Toggle category of \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "New category" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "New subcategories" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "New subcategory of \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "New subcategory" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Edit exclusive subcategories" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Edit exclusive subcategories of \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Delete categories" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Delete category \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Drag and drop categories" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "New efforts" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "New effort of \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Delete efforts" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Delete effort \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Change task of effort" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Change task of \"%s\" effort" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Change effort start date and time" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Change effort start date and time of \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Change effort stop date and time" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Change effort stop date and time of \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "New note" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "New sub-notes" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "New sub-note of \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "New sub-note" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Delete notes" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Delete note \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Drag and drop notes" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Drag and drop note \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Add note" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Add note to \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Add sub-note" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Add sub-note to \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Remove note" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Remove note from \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Drag and drop tasks" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Delete tasks" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Delete task \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "New task" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "New subtasks" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "New subtask of \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "New subtask" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Mark tasks completed" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Mark \"%s\" completed" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Mark task active" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Mark \"%s\" active" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Mark task inactive" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Mark \"%s\" inactive" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Start tracking" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Start tracking \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stop tracking" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Stop tracking \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximise priority" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximise priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimise priority" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimise priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Increase priority" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Increase priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Decrease priority" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Decrease priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Change priority" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Change priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Add note to tasks" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Change planned start date" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Change planned start date of \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Change due date" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Change due date of \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Change actual start date" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Change actual start date of \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Change completion date" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Change completion date of \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Change reminder dates/times" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Change reminder date/time of \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Change recurrences" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Change recurrence of \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Change percentage complete of \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Change when tasks are marked completed" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Change when \"%s\" is marked completed" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Change budgets" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Change budget of \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Change hourly fees" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Change hourly fee of \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Change fixed fees" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Change fixed fee of \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Toggle prerequisite" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Toggle prerequisite of \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Error while reading the %s-%s setting from %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "The value is: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "The error is: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s will use the default value for the setting and should proceed normally." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Settings error" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Error while saving %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Save error" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app message" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "New attachment..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Insert a new attachment" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Open attachment" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Open the selected attachments" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutes" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Don't snooze" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutes" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutes" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 hour" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutes" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hour" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 hours" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 hours" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 hours" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 hours" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 hours" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 hours" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 hours" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 weeks" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 week" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total for %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&New effort...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Inactive tasks" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Hide &inactive tasks" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Inactive tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Show/hide inactive tasks (incomplete tasks without actual start date)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Late tasks" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Hide &late tasks" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Late tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Show/hide late tasks (inactive tasks with a planned start in the past)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Active tasks" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Active tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Hide &active tasks" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Due soon tasks" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Due soon tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Hide &due soon tasks" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Overdue tasks" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Hide &over due tasks" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Overdue tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Completed tasks" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Completed tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Hide &completed tasks" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Show/hide completed tasks" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&New task..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Arrow down" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Arrow down with status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blue arrows looped" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Green arrows looped" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Arrow up" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Arrow up with status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomb" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Book" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Books" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Box" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Ladybug" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Cake" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendar" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Cat" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Charts" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Chatting" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Check mark" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Check marks" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Clock" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarm clock" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopwatch" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Cogwheel" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Cogwheels" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Desktop computer" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Laptop computer" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handheld computer" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Red cross" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Die" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Document" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blue earth" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Green earth" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelope" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envelopes" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blue folder" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Light blue folder" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Green folder" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grey folder" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Orange folder" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Purple folder" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Red folder" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Yellow folder" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blue folder with arrow" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Heart" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Hearts" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Green house" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Red house" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Key" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Keys" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lamp" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Question mark" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Information" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Blue led" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Light blue led" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Grey led" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Green led" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Light green led" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Orange led" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Purple led" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Red led" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Yellow led" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Life ring" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Locked lock" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Unlocked lock" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Magnifier glass" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Music note" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Note" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palette" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Paperclip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Pencil" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Person" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "People" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identification" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Person talking" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Warning sign" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Red star" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Yellow star" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Traffic light" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Trashcan" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Lightning" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Umbrella" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Partly sunny" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Wrench" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "No icon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Close" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Message from the %s developers" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "See:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Description" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Edit to change all subjects" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Subject" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Edit to change all descriptions" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Creation date" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Modification date" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priority" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutually exclusive" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategories" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Edit to change location of all attachments" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Browse" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Location" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Appearance" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Foreground colour" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Background colour" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Font" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icon" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Dates" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Planned start date" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Due date" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Actual start date" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Completion date" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Reminder" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recurrence" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progress" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Percentage complete" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Use application-wide setting" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "No" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Yes" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Mark task completed when all children are completed?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Time spent" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budget left" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Hourly fee" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fixed fee" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Revenue" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Effort" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categories" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Attachments" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notes" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Prerequisites" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Edit task" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Task" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Week(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Day(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hour(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minute(s)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stop" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Start tracking from last stop time" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Stop tracking now" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Warning: start must be earlier than stop" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Multiple tasks" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (task)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Multiple categories" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (category)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Multiple notes" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (note)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Multiple attachments" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (attachment)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Multiple efforts" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (effort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Use font:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Use colour:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "None" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Daily" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Monthly" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Weekly" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Yearly" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "keeping dates on the same weekday" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", every" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Stop after" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "recurrences" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Schedule each next recurrence based on" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "day(s)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "period," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "week(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "month(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "year(s)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Export items from:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Export only the selected items" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Columns to export:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Put task dates and times in separate columns" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Write style information to a separate CSS file" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Export as CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Export as iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Export as HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Export as Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "An iPhone or iPod Touch device is trying\n" "to synchronise with this task file for\n" "the first time. What kind of synchronisation\n" "would you like to use?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Refresh from desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Refresh from device" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancel" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "You have enabled the iPhone synchronisation feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Please download and install Bonjour for Windows from\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple's web site" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour support for Linux is generally provided by\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "You may find details for your distribution here" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "In addition, if you have a firewall, check that ports 4096-4100 are open." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "This setting will take effect after you restart %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Files" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Auto save after every change" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Auto load when the file changes on disk" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Smart filesystem monitoring" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Save settings (%s.ini) in the same\n" "directory as the program" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "For running %s from a removable medium" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Attachment base directory" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "When adding an attachment, try to make\n" "its path relative to this one." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Before saving, automatically import from" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt format" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "When saving, automatically export to" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Window behaviour" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Show splash screen on start-up" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Show tips window on start-up" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Start with the main window iconised" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Always" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Never" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "If it was iconised last session" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Check for new version of %(name)s on start-up" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Check for messages from the %(name)s developers on start-up" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Hide main window when iconised" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimise main window when closed" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Make clock in the task bar tick when tracking effort" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Language" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Let the system determine the language" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Language not found?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Task appearance" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Features" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "All settings on this tab require a restart of %s to take effect" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Enable SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Enable iPhone synchronisation" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Use X11 session management" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Start of work week" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Monday" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Sunday" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hour of start of work day" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hour of end of work day" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "End of day" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Use gradients in calendar views.\n" "This may slow down Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutes between suggested times" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "In pop-up menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Idle time notice" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Show a pop-up with the description of an item\n" "when hovering over it" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Task dates" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Mark parent task completed when all children are completed" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Number of hours that tasks are considered to be 'due soon'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nothing" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Changing the planned start date changes the due date" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Changing the due date changes the planned start date" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "What to do with planned start and due date if the other one is changed" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Preset" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Propose" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Today" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Tomorrow" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Day after tomorrow" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Next Friday" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Next Monday" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Start of day" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Start of working day" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Current time" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "End of working day" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Default planned start date and time" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Default due date and time" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Default actual start date and time" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Default completion date and time" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Default reminder date and time" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Task reminders" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Notification system to use for reminders" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Let the computer say the reminder" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Needs espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Default snooze time to use after reminder" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Snooze times to offer in task reminder dialog" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Password for synchronisation with iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "When synchronising, enter this password on the iPhone to authorise it" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour service name" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Upload completed tasks to device" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Show the synchronisation log" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Check spelling in editors" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Font to use in the description field of edit dialogs" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Get e-mail subject from Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Focus task subject in task editor" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s reminder - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Reminder date/time" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Snooze" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Also make this the default snooze time for future reminders" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Mark task completed" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Custom" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "User name/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Enable tasks synchronisation" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Tasks database name" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Preferred synchronisation mode" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Two way" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Slow" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "One way from client" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Refresh from client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "One way from server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Refresh from server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Enable notes synchronisation" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Notes database name" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Access" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "New task template" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Preview" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Available tools" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Make this tool visible in the toolbar" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Hide this tool from the toolbar" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Tools" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Move the tool up (to the left of the toolbar)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Move the tool down (to the right of the toolbar)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Reorder toolbar buttons by drag and dropping them in this list." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separator" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Spacer" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Notify me of new versions." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "New version of %(name)s available" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "You are using %(name)s version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Version %(version)s of %(name)s is available from" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s is up to date" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s is up to date at version %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Couldn't find out latest version" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Couldn't find out what the latest version of %(name)s is." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Pre-release version" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "You are using %(name)s pre-release version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "The latest released version of %(name)s is %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Warning" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach has known issues with XFCE4 session management.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "If you experience random freeze at start-up, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Do not show this dialog at start-up" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "No user input since %s. The following task was\n" "being tracked:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Do nothing" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Stop it at %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Stop it at %s and resume now" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notification" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s files (*.tsk)|*.tsk|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar files (*.ics)|*.ics|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML files (*.html)|*.html|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Open" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Loaded %(nrtasks)d tasks from %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Cannot open %s because it doesn't exist" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Merge" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Cannot open %(filename)s\n" "because it is locked." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Merged %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Save as" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Save selection" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Cannot save %s\n" "It is locked by another instance of %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Cannot save %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Import template" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s template files (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Cannot import template %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Exported %(count)d items to %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Finished synchronisation" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synchronisation status" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Cannot open %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "A file named %s already exists.\n" "Do you want to replace it?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "You have unsaved changes.\n" "Save before closing?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: save changes?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: file locked" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Closed %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Saved %(nrtasks)d tasks to %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Error while reading %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronising..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronising with %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Welcome to %(name)s version %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s settings error" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synchronisation type" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "An iPhone or iPod Touch device tried to synchronise with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&File" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Edit" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&View" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&New" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Actions" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Help" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Import" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Export" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Select" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&New viewer" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activate next viewer\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activate &previous viewer\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Mode" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sort" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Columns" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Rounding" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Tree options" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "T&oolbar" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Show/hide status bar" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Status&bar" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Task" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Open a new tab with a viewer that displays tasks" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Task &statistics" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Open a new tab with a viewer that displays task statistics" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Task &square map" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Open a new tab with a viewer that displays tasks in a square map" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&imeline" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Open a new tab with a viewer that displays a timeline of tasks and effort" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendar" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Open a new tab with a viewer that displays tasks in a calendar" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Category" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Open a new tab with a viewer that displays categories" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Effort" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Open a new tab with a viewer that displays efforts" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Open a new tab with a viewer that displays efforts for the selected task" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Note" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Open a new tab with a viewer that displays notes" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Hide" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Hide the toolbar" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Small images" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Small images (16x16) on the toolbar" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Medium-sized images" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Medium-sized images (22x22) on the toolbar" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Large images" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Large images (32x32) on the toolbar" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "New task from &template" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Toggle category" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Change task &priority" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Start tracking effort" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategories)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtasks)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priority" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Page" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Reminder" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tasks overdue" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "one task overdue" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tasks due soon" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "one task due soon" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "tracking \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "tracking effort for %d tasks" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Open...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Open %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Merge..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Merge tasks from another file with the current file" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Close\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Save\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Merge &disk changes\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&ave as...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Sa&ve selected tasks to new taskfile..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Save the selected tasks to a separate taskfile" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Save selected task as &template" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Save the selected task as a task template" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Import template..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Import a new template from a template file" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Edit templates..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Edit existing templates" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Edit templates" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Purge deleted items" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Page setup...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Print preview..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Show a preview of what the print will look like" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Print preview" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Print...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Export as &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Export items from a viewer in HTML format" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Export as &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Export items from a viewer in Comma Separated Values (CSV) format" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Export as &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Export items from a viewer in iCalendar format" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Export as &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "Export items from a viewer in Todo.txt format (see todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Import CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Import tasks from a Comma Separated Values (CSV) file" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Import CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "The selected file is empty. Please select a different file." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Import Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Import tasks from a Todo.txt (see todotxt.com) file" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Import Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML synchronisation..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synchronise with a SyncML server" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Quit\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Undo" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Redo" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Cu&t\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copy\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Paste\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "P&aste as sub-item\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferences...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferences" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML preferences..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Edit SyncML preferences" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML preferences" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Customise toolbar" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Customise" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&All\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Clear selection" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Unselect all items" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Clear all filters\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Reset all categories\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Show/hide items belonging to %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Rename viewer..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Rename the selected viewer" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "New title for the viewer:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Rename viewer" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Hide this column" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Hide the selected column" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Expand all items\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Collapse all items\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascending" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sort ascending (checked) or descending (unchecked)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Sort &case sensitive" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Sort by status &first" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sort tasks by status (active/inactive/completed) first" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Hide c&omposite tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Show/hide tasks with subtasks in list mode" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Edit...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Edit the selected item(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Edit &tracked task...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Edit the currently tracked task(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Delete\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Delete the selected item(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Create a new task from a template" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "New task with selected &categories..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Insert a new task with the selected categories checked" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "New task with selected tasks as &prerequisites..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Insert a new task with the selected tasks as prerequisite tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "New task with selected tasks as &dependants..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Insert a new task with the selected tasks as dependent tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "New &sub-item..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "New &subtask..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "New &sub-note..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "New &subcategory..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Insert a new sub-item of the selected item" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Mark task &active\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Mark the selected task(s) active" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Mark task &inactive\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Mark the selected task(s) inactive" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Mark task &completed\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Mark the selected task(s) completed" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximise priority\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimise priority\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Increase priority\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Decrease priority\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Toggle %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Several things" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "and" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Cannot send email:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s mail error" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Add ¬e...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Open all notes...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Start tracking effort\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Start tracking effort for the task(s) of the selected effort(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(No subject)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Start tracking effort for %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Select a task via the menu and start tracking effort for it" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Stop tracking or resume tracking effort\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "St&op tracking %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Stop tracking effort for the active task(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Resume tracking %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Resume tracking effort for the last tracked task" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "multiple tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "New category...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "New note...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "New ¬e with selected categories..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Insert a new note with the selected categories checked" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Add attachment...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Error opening attachment" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Open all attachments...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Help contents\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Help contents\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Help" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tips" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tips about the program" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymise" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Anonymise a task file to attach it to a bug report" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Your task file has been anonymised and saved to:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Finished" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&About %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Version and contact information about %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "About %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&License" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s license" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Check for update" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Check for the availability of a new version of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Cannot open URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URL error" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Frequently asked questions" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Browse the frequently asked questions and answers" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Report a &bug..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Report a bug or browse known bugs" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Request a &feature..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Request a new feature or vote for existing requests" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Request &support..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Request user support from the developers" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Help improve &translations..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Help improve the translations of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Donate..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Donate to support the development of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restore" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restore the window to its previous state" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Search" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Effort details" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Effort per day" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Effort per month" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Effort per week" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Aggregation mode" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "List" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Tree" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "When checked, show tasks as tree, otherwise show tasks as list" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filter on all checked categories" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filter on any checked category" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "When checked, filter on all checked categories, otherwise on any checked " "category" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Order choice" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configure" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configure the calendar viewer" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Next period" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Show next period" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Previous period" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Show previous period" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Today" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Show today" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatic column resizing" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "When checked, automatically resize columns to fill available space" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Set pie chart angle" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "No rounding" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minute" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutes" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Rounding precision" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Always round up" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Always round up to the next rounding increment" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Type" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sort by subject" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Sub&ject" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sort by description" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Description" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Creation date" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Sort by creation date" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Modification date" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Sort by last modification date" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Show/hide description column" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notes" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Show/hide notes column" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Show/hide creation date column" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Show/hide last modification date column" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Toolbars are customisable" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Click on the gear icon on the right to add buttons and rearrange them." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Attachments" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Show/hide attachments column" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categories: %d selected, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtered" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Period" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Total time spent" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Total revenue" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Tuesday" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Wednesday" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Thursday" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Friday" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Saturday" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categories" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Show/hide categories column" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Time spent" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Show/hide time spent column" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Revenue" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Show/hide revenue column" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Total time spent" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Show/hide total time spent column" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Total revenue" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Show/hide total revenue column" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Effort per weekday" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Show/hide time spent per weekday columns" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Effort aggregation" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d tracking" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sort categories by subject" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sort categories by description" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Sort categories by creation date" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Sort categories by last modification date" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sort categories manually" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sort attachments by subject" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sort attachments by description" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sort attachments by category" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Sort attachments by creation date" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Sort attachments by last modification date" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sort notes by subject" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sort notes by description" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sort notes by category" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Sort notes by creation date" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Sort notes by last modification date" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sort notes manually" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sort tasks by subject" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sort tasks by description" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sort tasks by category" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Sort tasks by creation date" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Sort tasks by last modification date" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sort tasks manually" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Sort tasks by planned start date" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Planned start date" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sort tasks by due date" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Due date" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sort tasks by completion date" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Completion date" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sort tasks by prerequisite tasks" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Prerequisites" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sort tasks by dependent tasks" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dependants" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Sort tasks by time left" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Time left" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Sort tasks by percentage complete" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Percentage complete" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sort tasks by recurrence" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Recurrence" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sort tasks by budget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sort tasks by time spent" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Budget &left" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sort tasks by budget left" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sort tasks by priority" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sort tasks by hourly fee" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Hourly fee" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sort tasks by fixed fee" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fixed fee" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sort tasks by revenue" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sort tasks by reminder date and time" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Reminder" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Subject" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sort notes by categories" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notes: %d selected, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tasks: %d selected, %d visible, %d total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d overdue, %d late, %d inactive, %d completed" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tasks" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Timeline" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Now" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Task square map" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Lay out tasks by" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Calendar viewer configuration" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dependants" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% complete" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Time left" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Dates" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&All date columns" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Show/hide all date-related columns" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Show/hide planned start date column" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Show/hide due date column" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Actual start date" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Show/hide actual start date column" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Show/hide completion date column" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Show/hide time left column" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Show/hide recurrence column" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&All budget columns" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Show/hide all budget-related columns" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Show/hide budget column" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Budget left" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Show/hide budget left column" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Financial" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&All financial columns" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Show/hide all finance-related columns" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Show/hide hourly fee column" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Show/hide fixed fee column" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Show/hide prerequisites column" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Show/hide dependants column" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Show/hide percentage complete column" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Show/hide attachment column" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Show/hide priority column" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Show/hide reminder column" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Show tasks as" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Task statistics" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Comma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Space" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Colon" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Semicolon" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Pipe" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (day first)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (month first)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Simple quote" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Double quote" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Double it" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Escape with" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Import only the selected rows" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "First line describes fields" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Delimiter" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Date format" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Quote character" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Escape quote" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Field #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Please select a file." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Category" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Reminder date" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percent complete" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Column header in CSV file" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s attribute" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "No field mapping." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "The \"%s\" field cannot be selected several times." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "The fields %s cannot be selected several times." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Table of contents" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "About tasks" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Task properties" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Task states" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Task colours" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Reminders" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "About effort" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Effort properties" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "About categories" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Category properties" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "About notes" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Note properties" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Printing and exporting" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "About printing and exporting" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Printing" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exporting" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Multi-user usage" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "About multi-user" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Storage options" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "E-mail integration" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "About e-mail integration" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Attaching an e-mail to a task" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Creating a task from an e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML support" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "What is SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Setup" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitations" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Troubleshooting" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Purging deleted items" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone and iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s on the iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuration" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s on Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt and Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importing todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exporting todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Task templates" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "About templates" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Using templates" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Graphical user interface" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Keyboard shortcuts" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Tasks have the following properties you can change:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Subject: a single line that summarises the task." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Description: a multi-line description of the task." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: amount of hours available for the task." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Hourly fee: the amount of money earned with the task per hour." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "The following properties are calculated from the properties above:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Days left: the number of days left until the due date." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dependants: other tasks that can be started when the \n" "prerequisite task has been completed." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Time spent: effort spent on the task." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Budget left: task budget minus time spent on the task." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Revenue: hourly fee times hours spent plus fixed fee." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Tasks always have exactly one of the following states:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Active: the actual start date is in the past;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Completed: the task has been completed." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "In addition, tasks can be referenced as:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Overdue: the due date is in the past;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Late: the planned start is in the past and the task has \n" "not been started;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Over budget: no budget left;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Under budget: still budget left;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "No budget: the task has no budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "The text of tasks is coloured according to the following rules:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Overdue tasks are red;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Tasks due soon are orange;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Active tasks are black text with a blue icon;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Late tasks are purple;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Future tasks are grey, and" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Completed tasks are green." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "This all assumes you have not changed the text colours through the \n" "preferences dialog, of course." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "The background colour of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Effort records have the following properties you can change:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Task: the task the effort belongs to." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Start date/time: start date and time of the effort." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Description: a multi-line description of the effort." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Time spent: how much time you have spent working on the task." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Revenue: money earned with the time spent." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Categories have the following properties you can change:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Subject: a single line that summarises the category." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Description: a multi-line description of the category." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Appearance properties such as icon, font and colours: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no colour, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "colour \n" "associated with it, a mixture of those colours will be used to render that \n" "item." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notes have the following properties you can change:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Subject: a single line that summarises the note." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Description: a multi-line description of the note." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Appearance properties such as icon, font and colours." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Several users working on the same task file." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Not tested yet." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Mail user agents supported include:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "There are two ways to attach an e-mail to a task; you can:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Drop it on a task either in the task tree or the task list." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Drop it in the attachment pane in the task editor." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML is an XML protocol designed to synchronise several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronisation \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronise with Exchange, Google Calendar,\n" "etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronise with the same SyncML server you\n" "synchronise Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronisation URL, your ID on the server and " "choose \n" "which items to synchronise (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "The database names are pretty standard; the default values \n" "should work." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Task and category hierarchy are lost to the server." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Recurrence and reminders are not supported yet." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Note categories are lost to the server." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronise with the same server at the same time, problems may " "\n" "arise." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Probably some others..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (see below)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 and later, both Intel and PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronisation. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch and iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s on the iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchical tasks and categories" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Time tracking" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Multiple task files" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Two-way synchronisation with %(name)s on the desktop" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "The application is universal and has a custom iPad UI." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuration on the iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Show completed: whether to show completed tasks." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# days due soon: How many days in the future is \n" "considered \"soon\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configuration on the desktop, all platforms" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Before synchronising, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronisation\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customise this, you may\n" "change the \"Bonjour service name\" in the configuration." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronise; if it's not running, it will prompt you again." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Note that this synchronisation happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuration on Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuration on Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "My computer doesn't appear in the list when trying to sync" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "The iPhone can't connect to my computer" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "If you have a firewall, check that ports 4096-4100 are open." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parametrised\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "re-evaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Please note that this system is not localised; you must enter\n" "the dates in English." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to each other." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux and Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Insert a new sub-item" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Edit the selected item(s) or close a dialog" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Mark the selected task(s) (un)completed" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Cancel a dialog or move keyboard focus from search control back to viewer" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Move keyboard focus to the next field in the dialog" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Move keyboard focus to the previous field in the dialog" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Move keyboard focus to the next tab in a notebook control" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Move keyboard focus to the previous tab in a notebook control" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Pop up menu or drop down box" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Edit the subject of the selected item in a viewer" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab switches between tabs in edit dialogs." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Tip of the day" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Next tip" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Show tips on startup" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Browse for files to add as attachment to the selected item(s)" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Add a note to the selected item(s)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Insert a new category" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Cut the selected item(s) to the clipboard" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copy the selected item(s) to the clipboard" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Paste item(s) from the clipboard" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Paste item(s) from the clipboard as sub-item of the selected item" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Edit preferences" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Redo the last command that was undone" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Select all items in the current view" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Undo the last command" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Add an effort period to the selected task(s)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Start tracking effort for the selected task(s)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Stop tracking effort or resume tracking effort" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Close the current file" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Exit %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Open a %s file" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Save the current file" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Load what has changed on disk" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Save the current file under a new name" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Help about the program" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Mail the selected item(s), using your default mailer" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Insert a new note" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Open all attachments of the selected item(s)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Open all notes of the selected item(s)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Print the current file" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Setup the characteristics of the printer page" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Show all items (reset all filters)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Show all items regardless of category" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Move keyboard focus from viewer to search control" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Decrease the priority of the selected task(s)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Increase the priority of the selected task(s)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Make the selected task(s) the highest priority task(s)" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Make the selected task(s) the lowest priority task(s)" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Insert a new task" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Collapse all items with sub-items" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Expand all items with sub-items" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activate the next open viewer" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activate the previous open viewer" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protocol version: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Rejected protocol version %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Device name: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Sending file name: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Full from desktop." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categories" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Send category %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Response: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tasks" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Send task %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d efforts" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Send effort %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Finished." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d new categories" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d new tasks" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d new efforts" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d modified categories" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d modified tasks" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d modified efforts" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d deleted categories" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d deleted tasks" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d deleted efforts" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "New category (parent: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Delete category %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modify category %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "New task %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Delete task %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modify task %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "End of task synchronisation." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Could not find task %s for effort." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "New effort %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modify effort %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Sending GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Reading mail info..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Reading mail information. Please wait." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Could not find Thunderbird data dir" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Could not find Thunderbird profile." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "No default section in profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Unrecognised URL scheme: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Please enter the domain for user %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Could not select inbox \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "No such mail: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Actual start time" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Planned start time" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Due time" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Completion time" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Reminder time" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Creation time" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "No subject" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "New task due today" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "New task due tomorrow" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d days" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 day" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Every %(frequency)d days" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Every %(frequency)d weeks" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Every %(frequency)d months" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Every %(frequency)d years" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Every other day" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Every other week" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Every other month" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Every other year" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Yesterday" #: taskcoachlib/render.py:284 msgid "now" msgstr "now" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "The synchronisation for source %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronisation" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synchronising. Please wait.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d items added.\n" "%d items updated.\n" "%d items deleted." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "An error occurred in the synchronisation.\n" "Error code: %d; message: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "You must first edit your SyncML Settings, in Edit/SyncML preferences." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Pane Switcher" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restore %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Pane Preview" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Cl&ose" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Close All" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Next" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Previous" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Window" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Edit" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d weeks" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d hours" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Done" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Kind of period displayed and its count" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Month" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Calendar orientation" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Which tasks to display" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tasks with a planned start date and a due date" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tasks with a planned start date" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tasks with a due date" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "All tasks" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "All tasks, except unplanned tasks" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Draw a line showing the current time" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Colour used to highlight the current day" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "All files (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Password:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Store in keychain" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Please enter your password." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Please enter your password" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Match case" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Match case when filtering" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Include sub items" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Include sub items of matching items in the search results" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Search description too" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Search both subject and description" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Regular Expression" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Consider search text as a regular expression" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "This is an invalid regular expression." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Defaulting to substring search." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Recent searches" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Viewer not searchable" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Compatibility warning" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Never show this dialog again" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Error opening URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Delete\tDEL" taskcoach-1.4.3/i18n.in/en_GB.po000066400000000000000000006651541265347643000162100ustar00rootroot00000000000000# English (United Kingdom) translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:28+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Errors have occurred. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Error" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Errors have occurred. Please see \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Couldn't load settings from TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s file error" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" became top-level because its parent was locally deleted." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Conflicts detected for \"%s\".\n" "The local version was used." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Edit location of attachments" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Edit attachment \"%s\" location" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Add attachment" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Add attachment to \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "New attachment" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Remove attachment" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Remove attachment to \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copy" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copy \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Delete" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Delete \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Cut" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Cut \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Paste" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Paste \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Paste as sub-item" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Paste as sub item of \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Drag and drop" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Drag and drop \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Edit subjects" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Edit subject \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Edit descriptions" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Edit description \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Change icons" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Change icon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Change fonts" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Change font \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Change foreground colours" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Change foreground colour \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Change background colours" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Change background colour \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Toggle category" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Toggle category of \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "New category" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "New subcategories" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "New subcategory of \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "New subcategory" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Edit exclusive subcategories" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Edit exclusive subcategories of \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Delete categories" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Delete category \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Drag and drop categories" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "New efforts" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "New effort of \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Delete efforts" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Delete effort \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Change task of effort" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Change task of \"%s\" effort" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Change effort start date and time" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Change effort start date and time of \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Change effort stop date and time" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Change effort stop date and time of \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "New note" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "New sub-notes" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "New sub-note of \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "New sub-note" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Delete notes" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Delete note \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Drag and drop notes" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Drag and drop note \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Add note" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Add note to \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Add sub-note" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Add sub-note to \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Remove note" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Remove note from \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Drag and drop tasks" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Delete tasks" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Delete task \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "New task" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "New subtasks" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "New subtask of \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "New subtask" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Mark tasks completed" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Mark \"%s\" completed" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Mark task active" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Mark \"%s\" active" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Mark task inactive" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Mark \"%s\" inactive" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Start tracking" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Start tracking \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stop tracking" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Stop tracking \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximise priority" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximise priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimise priority" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimise priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Increase priority" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Increase priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Decrease priority" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Decrease priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Change priority" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Change priority of \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Add note to tasks" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Change planned start date" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Change planned start date of \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Change due date" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Change due date of \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Change actual start date" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Change actual start date of \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Change completion date" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Change completion date of \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Change reminder dates/times" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Change reminder date/time of \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Change recurrences" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Change recurrence of \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Change percentage complete of \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Change when tasks are marked completed" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Change when \"%s\" is marked completed" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Change budgets" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Change budget of \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Change hourly fees" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Change hourly fee of \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Change fixed fees" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Change fixed fee of \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Toggle prerequisite" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Toggle prerequisite of \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Error while reading the %s-%s setting from %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "The value is: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "The error is: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s will use the default value for the setting and should proceed normally." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Settings error" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Error while saving %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Save error" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app message" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "New attachment..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Insert a new attachment" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Open attachment" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Open the selected attachments" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutes" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Don't snooze" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutes" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutes" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 hour" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutes" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hour" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 hours" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 hours" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 hours" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 hours" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 hours" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 hours" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 hours" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 hours" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 weeks" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 week" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total for %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&New effort...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Inactive tasks" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Hide &inactive tasks" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Inactive tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Show/hide inactive tasks (incomplete tasks without actual start date)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Late tasks" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Hide &late tasks" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Late tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Show/hide late tasks (inactive tasks with a planned start in the past)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Active tasks" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Active tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Hide &active tasks" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Due soon tasks" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Due soon tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Hide &due soon tasks" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Overdue tasks" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Hide &over due tasks" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Overdue tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Completed tasks" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Completed tasks: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Hide &completed tasks" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Show/hide completed tasks" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&New task..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Arrow down" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Arrow down with status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blue arrows looped" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Green arrows looped" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Arrow up" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Arrow up with status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomb" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Book" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Books" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Box" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Ladybug" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Cake" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendar" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Cat" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Charts" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Chatting" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Check mark" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Ticks" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Clock" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarm clock" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopwatch" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Cogwheel" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Cogwheels" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Desktop computer" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Laptop computer" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handheld computer" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Red cross" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Die" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Document" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blue earth" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Green earth" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelope" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envelopes" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blue folder" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Light blue folder" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Green folder" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grey folder" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Orange folder" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Purple folder" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Red folder" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Yellow folder" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blue folder with arrow" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Heart" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Hearts" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Green house" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Red house" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Key" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Keys" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lamp" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Question mark" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Information" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Blue led" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Light blue led" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Grey led" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Green led" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Light green led" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Orange led" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Purple led" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Red led" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Yellow led" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Life ring" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Locked lock" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Unlocked lock" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Magnifier glass" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Music note" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Note" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palette" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Paperclip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Pencil" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Person" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "People" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identification" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Person talking" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Warning sign" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Red star" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Yellow star" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Traffic light" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Trashcan" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Lightning" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Umbrella" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Partly sunny" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Wrench" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "No icon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "File" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Full path" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Date" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Restore" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Close" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Choose the restoration destination" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Message from the %s developers" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "See:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Description" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Edit to change all subjects" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Subject" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Edit to change all descriptions" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Creation date" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Modification date" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priority" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutually exclusive" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategories" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Edit to change location of all attachments" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Browse" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Location" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Appearance" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Foreground colour" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Background colour" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Font" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icon" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Dates" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Planned start date" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Due date" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Actual start date" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Completion date" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Reminder" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recurrence" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progress" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Percentage complete" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Use application-wide setting" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "No" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Yes" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Mark task completed when all children are completed?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Time spent" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budget left" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Hourly fee" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fixed fee" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Revenue" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Effort" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categories" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Attachments" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notes" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Prerequisites" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Edit task" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Task" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Week(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Day(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hour(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minute(s)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stop" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Start tracking from last stop time" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Stop tracking now" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Warning: start must be earlier than stop" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Multiple tasks" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (task)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Multiple categories" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (category)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Multiple notes" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (note)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Multiple attachments" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (attachment)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Multiple efforts" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (effort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Use font:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Use colour:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "None" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Daily" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Monthly" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Weekly" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Yearly" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "keeping dates on the same weekday" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", every" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Stop after" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "recurrences" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Schedule each next recurrence based on" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "previous planned start and/or due date" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "last completion date" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "day(s)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "period," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "week(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "month(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "year(s)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Export items from:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Export only the selected items" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Columns to export:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Put task dates and times in separate columns" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Write style information to a separate CSS file" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Export as CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Export as iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Export as HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Export as Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "An iPhone or iPod Touch device is trying\n" "to synchronise with this task file for\n" "the first time. What kind of synchronisation\n" "would you like to use?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Refresh from desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Refresh from device" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancel" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "You have enabled the iPhone synchronisation feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Please download and install Bonjour for Windows from\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple's web site" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour support for Linux is generally provided by\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "You may find details for your distribution here" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "In addition, if you have a firewall, check that ports 4096-4100 are open." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "This setting will take effect after you restart %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Files" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Auto save after every change" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Auto load when the file changes on disk" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Smart filesystem monitoring" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Save settings (%s.ini) in the same\n" "directory as the program" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "For running %s from a removable medium" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Attachment base directory" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "When adding an attachment, try to make\n" "its path relative to this one." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Before saving, automatically import from" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt format" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "When saving, automatically export to" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Window behaviour" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Show splash screen on start-up" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Show tips window on start-up" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Start with the main window iconised" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Always" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Never" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "If it was iconised last session" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Check for new version of %(name)s on start-up" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Check for messages from the %(name)s developers on startup" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Hide main window when iconised" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimise main window when closed" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Make clock in the task bar tick when tracking effort" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Language" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Let the system determine the language" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Language not found?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Task appearance" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Features" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "All settings on this tab require a restart of %s to take effect" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Enable SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Enable iPhone synchronisation" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Use X11 session management" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Start of work week" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Monday" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Sunday" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hour of start of work day" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hour of end of work day" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "End of day" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Use gradients in calendar views.\n" "This may slow down Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutes between suggested times" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Idle time notice" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Use decimal times for effort entries." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Show a popup with the description of an item\n" "when hovering over it" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Task dates" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Mark parent task completed when all children are completed" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Number of hours that tasks are considered to be 'due soon'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nothing" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Changing the planned start date changes the due date" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Changing the due date changes the planned start date" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "What to do with planned start and due date if the other one is changed" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Preset" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Propose" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Today" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Tomorrow" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Day after tomorrow" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Next Friday" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Next Monday" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Start of day" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Start of working day" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Current time" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "End of working day" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Default planned start date and time" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Default due date and time" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Default actual start date and time" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Default completion date and time" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Default reminder date and time" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Task reminders" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Notification system to use for reminders" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Let the computer say the reminder" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Needs espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Default snooze time to use after reminder" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Snooze times to offer in task reminder dialog" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Password for synchronisation with iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "When synchronising, enter this password on the iPhone to authorise it" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour service name" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Upload completed tasks to device" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Show the synchronisation log" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Check spelling in editors" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Font to use in the description field of edit dialogs" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Get e-mail subject from Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Focus task subject in task editor" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s reminder - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Reminder date/time" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Snooze" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Also make this the default snooze time for future reminders" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Mark task completed" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Custom" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Horde-based" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "User name/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Enable tasks synchronisation" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Tasks database name" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Preferred synchronisation mode" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Two way" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Slow" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "One way from client" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Refresh from client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "One way from server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Refresh from server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Enable notes synchronisation" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Notes database name" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Access" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "New task template" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Preview" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Available tools" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Make this tool visible in the toolbar" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Hide this tool from the toolbar" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Tools" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Move the tool up (to the left of the toolbar)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Move the tool down (to the right of the toolbar)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Reorder toolbar buttons by drag and dropping them in this list." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separator" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Spacer" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Notify me of new versions." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "New version of %(name)s available" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "You are using %(name)s version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Version %(version)s of %(name)s is available from" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s is up to date" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s is up to date at version %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Couldn't find out latest version" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Couldn't find out what the latest version of %(name)s is." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Pre-release version" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "You are using %(name)s pre-release version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "The latest released version of %(name)s is %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Warning" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach has known issues with XFCE4 session management.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Do not show this dialog at startup" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "No user input since %s. The following task was\n" "being tracked:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Do nothing" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Stop it at %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Stop it at %s and resume now" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notification" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s files (*.tsk)|*.tsk|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar files (*.ics)|*.ics|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML files (*.html)|*.html|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Open" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Loaded %(nrtasks)d tasks from %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Cannot open %s because it doesn't exist" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Merge" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Cannot open %(filename)s\n" "because it is locked." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Merged %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Save as" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Save selection" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Cannot save %s\n" "It is locked by another instance of %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Cannot save %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Import template" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s template files (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Cannot import template %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Exported %(count)d items to %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Finished synchronisation" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synchronisation status" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Cannot open %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "A file named %s already exists.\n" "Do you want to replace it?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "You have unsaved changes.\n" "Save before closing?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: save changes?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: file locked" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Closed %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Saved %(nrtasks)d tasks to %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Error while reading %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "The backup manager will now open to allow you to restore\n" "an older version of this file." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronising..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronising with %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Welcome to %(name)s version %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s settings error" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synchronisation type" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "An iPhone or iPod Touch device tried to synchronise with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&File" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Edit" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&View" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&New" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Actions" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Help" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Import" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Export" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Select" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&New viewer" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activate next viewer\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activate &previous viewer\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Mode" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sort" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Columns" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Rounding" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Tree options" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "T&oolbar" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Show/hide status bar" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Status&bar" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Task" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Open a new tab with a viewer that displays tasks" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Task &statistics" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Open a new tab with a viewer that displays task statistics" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Task &square map" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Open a new tab with a viewer that displays tasks in a square map" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&imeline" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Open a new tab with a viewer that displays a timeline of tasks and effort" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendar" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Open a new tab with a viewer that displays tasks in a calendar" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hierarchical calendar" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Open a new tab with a viewer that displays task hierarchy in a calendar" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Category" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Open a new tab with a viewer that displays categories" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Effort" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Open a new tab with a viewer that displays efforts" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Eff&ort for selected task(s)" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Open a new tab with a viewer that displays efforts for the selected task" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Note" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Open a new tab with a viewer that displays notes" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Hide" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Hide the toolbar" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Small images" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Small images (16x16) on the toolbar" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Medium-sized images" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Medium-sized images (22x22) on the toolbar" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Large images" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Large images (32x32) on the toolbar" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "New task from &template" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Toggle category" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Change task &priority" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Start tracking effort" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategories)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtasks)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priority" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Page" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Reminder" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tasks overdue" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "one task overdue" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tasks due soon" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "one task due soon" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "tracking \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "tracking effort for %d tasks" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Open...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Open %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Merge..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Merge tasks from another file with the current file" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Close\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Save\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Merge &disk changes\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&ave as...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Sa&ve selected tasks to new taskfile..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Save the selected tasks to a separate taskfile" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Save selected task as &template" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Save the selected task as a task template" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Import template..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Import a new template from a template file" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Edit templates..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Edit existing templates" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Edit templates" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Purge deleted items" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Page setup...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Print preview..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Show a preview of what the print will look like" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Print preview" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Print...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Manage backups..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Manage all task file backups" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Export as &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Export items from a viewer in HTML format" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Export as &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Export items from a viewer in Comma Separated Values (CSV) format" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Export as &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Export items from a viewer in iCalendar format" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Export as &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "Export items from a viewer in Todo.txt format (see todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Import CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Import tasks from a Comma Separated Values (CSV) file" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Import CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "The selected file is empty. Please select a different file." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Import Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Import tasks from a Todo.txt (see todotxt.com) file" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Import Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML synchronisation..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synchronise with a SyncML server" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Quit\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Undo" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Redo" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Cu&t\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copy\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Paste\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "P&aste as sub-item\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferences...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferences" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML preferences..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Edit SyncML preferences" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML preferences" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Customise toolbar" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Customise" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&All\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Clear selection" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Unselect all items" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Clear all filters\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Reset all categories\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Show/hide items belonging to %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Rename viewer..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Rename the selected viewer" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "New title for the viewer:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Rename viewer" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Hide this column" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Hide the selected column" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Expand all items\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Collapse all items\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascending" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sort ascending (checked) or descending (unchecked)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Sort &case sensitive" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Sort by status &first" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sort tasks by status (active/inactive/completed) first" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Hide c&omposite tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Show/hide tasks with subtasks in list mode" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Edit...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Edit the selected item(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Edit &tracked task...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Edit the currently tracked task(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Delete\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Delete the selected item(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Create a new task from a template" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "New task with selected &categories..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Insert a new task with the selected categories checked" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "New task with selected tasks as &prerequisites..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Insert a new task with the selected tasks as prerequisite tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "New task with selected tasks as &dependents..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Insert a new task with the selected tasks as dependent tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "New &sub-item..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "New &subtask..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "New &sub-note..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "New &subcategory..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Insert a new sub-item of the selected item" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Mark task &active\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Mark the selected task(s) active" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Mark task &inactive\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Mark the selected task(s) inactive" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Mark task &completed\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Mark the selected task(s) completed" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximise priority\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimise priority\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Increase priority\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Decrease priority\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Toggle %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Several things" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "and" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Cannot send email:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s mail error" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Add ¬e...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Open all notes...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Start tracking effort\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Start tracking effort for the task(s) of the selected effort(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(No subject)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Start tracking effort for %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Select a task via the menu and start tracking effort for it" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Stop tracking or resume tracking effort\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "St&op tracking %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Stop tracking effort for the active task(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Resume tracking %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Resume tracking effort for the last tracked task" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "multiple tasks" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "New category...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "New note...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "New ¬e with selected categories..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Insert a new note with the selected categories checked" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Add attachment...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Error opening attachment" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Open all attachments...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Help contents\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Help contents\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Help" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tips" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tips about the program" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymise" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Anonymise a task file to attach it to a bug report" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Your task file has been anonymised and saved to:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Finished" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&About %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Version and contact information about %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "About %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&License" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s license" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Check for update" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Check for the availability of a new version of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Cannot open URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URL error" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Frequently asked questions" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Browse the frequently asked questions and answers" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Report a &bug..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Report a bug or browse known bugs" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Request a &feature..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Request a new feature or vote for existing requests" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Request &support..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Request user support from the developers" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Help improve &translations..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Help improve the translations of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Donate..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Donate to support the development of %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restore" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restore the window to its previous state" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Search" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Effort details" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Effort per day" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Effort per month" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Effort per week" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Aggregation mode" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "List" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Tree" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "When checked, show tasks as tree, otherwise show tasks as list" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filter on all checked categories" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filter on any checked category" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "When checked, filter on all checked categories, otherwise on any checked " "category" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Order choice" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configure" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configure the calendar viewer" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Configure the hierarchical calendar viewer" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Next period" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Show next period" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Previous period" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Show previous period" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Today" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Show today" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatic column resizing" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "When checked, automatically resize columns to fill available space" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Set pie chart angle" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "No rounding" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minute" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutes" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Rounding precision" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Always round up" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Always round up to the next rounding increment" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Type" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sort by subject" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Sub&ject" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sort by description" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Description" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Creation date" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Sort by creation date" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Modification date" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Sort by last modification date" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Show/hide description column" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notes" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Show/hide notes column" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Show/hide creation date column" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Show/hide last modification date column" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Toolbars are customisable" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Click on the gear icon on the right to add buttons and rearrange them." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Reordering in tree mode" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "When in tree mode, you can only put objects at the same level (parent)." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "&Manual ordering" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Show/hide the manual ordering column" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Attachments" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Show/hide attachments column" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categories: %d selected, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtered" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Period" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Total time spent" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Total revenue" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Tuesday" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Wednesday" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Thursday" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Friday" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Saturday" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categories" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Show/hide categories column" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Time spent" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Show/hide time spent column" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Revenue" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Show/hide revenue column" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Total time spent" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Show/hide total time spent column" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Total revenue" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Show/hide total revenue column" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Effort per weekday" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Show/hide time spent per weekday columns" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Effort aggregation" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d tracking" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Details:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Effort for selected task(s)" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sort categories by subject" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sort categories by description" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Sort categories by creation date" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Sort categories by last modification date" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sort categories manually" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sort attachments by subject" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sort attachments by description" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sort attachments by category" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Sort attachments by creation date" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Sort attachments by last modification date" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sort notes by subject" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sort notes by description" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sort notes by category" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Sort notes by creation date" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Sort notes by last modification date" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sort notes manually" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sort tasks by subject" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sort tasks by description" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sort tasks by category" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Sort tasks by creation date" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Sort tasks by last modification date" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sort tasks manually" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Sort tasks by planned start date" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Planned start date" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sort tasks by due date" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Due date" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sort tasks by completion date" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Completion date" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sort tasks by prerequisite tasks" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Prerequisites" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sort tasks by dependent tasks" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dependents" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Sort tasks by time left" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Time left" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Sort tasks by percentage complete" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Percentage complete" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sort tasks by recurrence" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Recurrence" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sort tasks by budget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sort tasks by time spent" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Budget &left" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sort tasks by budget left" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sort tasks by priority" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sort tasks by hourly fee" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Hourly fee" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sort tasks by fixed fee" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fixed fee" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sort tasks by revenue" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sort tasks by reminder date and time" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Reminder" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Subject" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sort notes by categories" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notes: %d selected, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tasks: %d selected, %d visible, %d total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d overdue, %d late, %d inactive, %d completed" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tasks" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Timeline" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Now" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Task square map" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Lay out tasks by" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hierarchical calendar" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Hierarchical calendar viewer configuration" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Calendar viewer configuration" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Manual ordering" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dependents" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% complete" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Time left" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Dates" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&All date columns" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Show/hide all date-related columns" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Show/hide planned start date column" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Show/hide due date column" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Actual start date" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Show/hide actual start date column" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Show/hide completion date column" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Show/hide time left column" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Show/hide recurrence column" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&All budget columns" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Show/hide all budget-related columns" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Show/hide budget column" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Budget left" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Show/hide budget left column" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Financial" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&All financial columns" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Show/hide all finance-related columns" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Show/hide hourly fee column" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Show/hide fixed fee column" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Show/hide prerequisites column" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Show/hide dependents column" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Show/hide percentage complete column" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Show/hide attachment column" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Show/hide priority column" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Show/hide reminder column" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Show tasks as" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Task statistics" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Comma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Space" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Colon" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Semicolon" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Pipe" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (day first)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (month first)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Simple quote" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Double quote" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Double it" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Escape with" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Import only the selected rows" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "First line describes fields" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Delimiter" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Date format" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Quote character" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Escape quote" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Field #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Please select a file." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Category" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Reminder date" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percent complete" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Column header in CSV file" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s attribute" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "No field mapping." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "The \"%s\" field cannot be selected several times." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "The fields %s cannot be selected several times." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Table of contents" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "About tasks" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Task properties" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Task states" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Task colours" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Reminders" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "About effort" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Effort properties" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "About categories" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Category properties" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "About notes" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Note properties" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Printing and exporting" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "About printing and exporting" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Printing" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exporting" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Multi-user usage" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "About multi-user" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Storage options" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "E-mailing tasks" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Custom attributes for e-mailing" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "E-mail integration" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "About e-mail integration" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Attaching an e-mail to a task" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Creating a task from an e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML support" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "What is SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Setup" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitations" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Troubleshooting" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Purging deleted items" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone and iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s on the iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuration" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s on Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt and Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importing todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exporting todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Task templates" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "About templates" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Using templates" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Graphical user interface" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Keyboard shortcuts" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Tasks have the following properties you can change:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Subject: a single line that summarises the task." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Description: a multi-line description of the task." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: amount of hours available for the task." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Hourly fee: the amount of money earned with the task per hour." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "The following properties are calculated from the properties above:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Days left: the number of days left until the due date." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Time spent: effort spent on the task." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Budget left: task budget minus time spent on the task." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Revenue: hourly fee times hours spent plus fixed fee." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Tasks always have exactly one of the following states:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Active: the actual start date is in the past;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Completed: the task has been completed." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "In addition, tasks can be referenced as:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Overdue: the due date is in the past;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Late: the planned start is in the past and the task has \n" "not been started;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Over budget: no budget left;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Under budget: still budget left;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "No budget: the task has no budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "The text of tasks is coloured according to the following rules:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Overdue tasks are red;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Tasks due soon are orange;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Active tasks are black text with a blue icon;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Late tasks are purple;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Future tasks are grey, and" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Completed tasks are green." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "This all assumes you have not changed the text colours through the \n" "preferences dialog, of course." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "The background colour of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Effort records have the following properties you can change:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Task: the task the effort belongs to." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Start date/time: start date and time of the effort." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Description: a multi-line description of the effort." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Time spent: how much time you have spent working on the task." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Revenue: money earned with the time spent." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Categories have the following properties you can change:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Subject: a single line that summarises the category." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Description: a multi-line description of the category." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Appearance properties such as icon, font and colours: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no colour, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "colour \n" "associated with it, a mixture of those colours will be used to render that \n" "item." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notes have the following properties you can change:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Subject: a single line that summarises the note." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Description: a multi-line description of the note." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Appearance properties such as icon, font and colours." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Custom attributes for e-mailing tasks" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. \n" "Supported attributes are 'cc' and 'to'. Examples:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Several users working on the same task file." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Not tested yet." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Mail user agents supported include:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "There are two ways to attach an e-mail to a task; you can:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Drop it on a task either in the task tree or the task list." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Drop it in the attachment pane in the task editor." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML is an XML protocol designed to synchronise several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronisation \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronise with Exchange, Google Calendar,\n" "etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronise with the same SyncML server you\n" "synchronise Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronisation URL, your ID on the server and " "choose \n" "which items to synchronise (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "The database names are pretty standard; the default values \n" "should work." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Task and category hierarchy are lost to the server." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Recurrence and reminders are not supported yet." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Note categories are lost to the server." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronise with the same server at the same time, problems may " "\n" "arise." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Probably some others..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (see below)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 and later, both Intel and PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronisation. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch and iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s on the iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchical tasks and categories" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Time tracking" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Multiple task files" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Two-way synchronisation with %(name)s on the desktop" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "The application is universal and has a custom iPad UI." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuration on the iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Show completed: whether to show completed tasks." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# days due soon: How many days in the future is \n" "considered \"soon\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configuration on the desktop, all platforms" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Before synchronising, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronisation\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customise this, you may\n" "change the \"Bonjour service name\" in the configuration." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronise; if it's not running, it will prompt you again." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Note that this synchronisation happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuration on Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuration on Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "My computer doesn't appear in the list when trying to sync" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "The iPhone can't connect to my computer" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "If you have a firewall, check that ports 4096-4100 are open." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parametrised\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Please note that this system is not localised; you must enter\n" "the dates in English." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux and Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Insert a new sub-item" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Edit the selected item(s) or close a dialog" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Mark the selected task(s) (un)completed" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Cancel a dialog or move keyboard focus from search control back to viewer" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Move keyboard focus to the next field in the dialog" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Move keyboard focus to the previous field in the dialog" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Move keyboard focus to the next tab in a notebook control" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Move keyboard focus to the previous tab in a notebook control" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Pop up menu or drop down box" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Edit the subject of the selected item in a viewer" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab switches between tabs in edit dialogs." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Tip of the day" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Next tip" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Show tips on startup" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Browse for files to add as attachment to the selected item(s)" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Add a note to the selected item(s)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Insert a new category" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Cut the selected item(s) to the clipboard" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copy the selected item(s) to the clipboard" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Paste item(s) from the clipboard" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Paste item(s) from the clipboard as sub-item of the selected item" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Edit preferences" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Redo the last command that was undone" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Select all items in the current view" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Undo the last command" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Add an effort period to the selected task(s)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Start tracking effort for the selected task(s)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Stop tracking effort or resume tracking effort" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Close the current file" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Exit %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Open a %s file" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Save the current file" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Load what has changed on disk" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Save the current file under a new name" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Help about the program" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Mail the selected item(s), using your default mailer" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Insert a new note" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Open all attachments of the selected item(s)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Open all notes of the selected item(s)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Print the current file" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Setup the characteristics of the printer page" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Show all items (reset all filters)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Show all items regardless of category" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Move keyboard focus from viewer to search control" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Decrease the priority of the selected task(s)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Increase the priority of the selected task(s)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Make the selected task(s) the highest priority task(s)" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Make the selected task(s) the lowest priority task(s)" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Insert a new task" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Collapse all items with sub-items" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Expand all items with sub-items" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activate the next open viewer" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activate the previous open viewer" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protocol version: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Rejected protocol version %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Device name: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Sending file name: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Full from desktop." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categories" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Send category %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Response: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tasks" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Send task %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d efforts" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Send effort %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Finished." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d new categories" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d new tasks" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d new efforts" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d modified categories" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d modified tasks" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d modified efforts" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d deleted categories" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d deleted tasks" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d deleted efforts" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "New category (parent: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Delete category %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modify category %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "New task %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Delete task %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modify task %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "End of task synchronisation." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Could not find task %s for effort." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "New effort %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modify effort %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Sending GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Reading mail info..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Reading mail information. Please wait." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Could not find Thunderbird data dir" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Could not find Thunderbird profile." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "No default section in profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Unrecognised URL scheme: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Please enter the domain for user %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Could not select inbox \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "No such mail: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Actual start time" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Planned start time" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Due time" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Completion time" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Reminder time" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Creation time" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Period end date" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Period end time" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Period start date" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Period start time" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "No subject" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "New task due today" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "New task due tomorrow" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d days" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 day" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Every %(frequency)d days" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Every %(frequency)d weeks" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Every %(frequency)d months" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Every %(frequency)d years" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Every other day" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Every other week" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Every other month" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Every other year" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Yesterday" #: taskcoachlib/render.py:284 msgid "now" msgstr "now" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "The synchronisation for source %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronisation" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synchronising. Please wait.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d items added.\n" "%d items updated.\n" "%d items deleted." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "An error occurred in the synchronisation.\n" "Error code: %d; message: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "You must first edit your SyncML Settings, in Edit/SyncML preferences." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Pane Switcher" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restore %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Pane Preview" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Cl&ose" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Close All" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Next" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Previous" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Window" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Edit" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d weeks" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d hours" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Done" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Kind of period displayed and its count" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Month" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Calendar orientation" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Which tasks to display" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tasks with a planned start date and a due date" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tasks with a planned start date" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tasks with a due date" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "All tasks" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "All tasks, except unplanned tasks" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Draw a line showing the current time" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Colour used to highlight the current day" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "All files (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Headers" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Week number" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Calendar span" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Week" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Work week" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Password:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Store in keychain" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Please enter your password." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Please enter your password" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Match case" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Match case when filtering" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Include sub items" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Include sub items of matching items in the search results" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Search description too" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Search both subject and description" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Regular Expression" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Consider search text as a regular expression" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "This is an invalid regular expression." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Defaulting to substring search." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Recent searches" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Viewer not searchable" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Compatibility warning" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Never show this dialog again" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Error opening URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Delete\tDEL" taskcoach-1.4.3/i18n.in/eo.po000066400000000000000000005073521265347643000156340ustar00rootroot00000000000000# Esperanto translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2016-01-30 14:26+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Esperanto \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: eo\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Okazis eraroj. Bonvolu legi \"taskcoaching.txt\" en via dosierujo \"Miaj " "Dosieroj\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Eraro" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Eraroj okazis. Bonvolu vidi \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Ne eblas ŝarĝi agordoj de TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Eraro de dosiero %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task-Trejnisto" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" moviĝas altnivelen ĉar ĝia patro estis forviŝita." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Konflikto malkovrita por \"%s\"." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Redakti lokon de kunsendaĵoj" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Redakti lokon de kunsendaĵo \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Aldonu kunsendaĵon" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Aldoni kunsendaĵon al \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nova kunsendaĵo" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Forĵeti kunsendaĵon" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Movi kunsendaĵon al \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopii" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopii \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Forĵeti" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Forigi \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Tranĉi" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Alglui" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Alglui \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Alglui kiel subero" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Alglui kiel subero de \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Ŝovi kaj demeti" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Ŝovi kaj demeti \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Redakti temojn" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Redakti la temon \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Redakti priskribojn" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Redakti la priskribon de \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Ŝanĝi bildsimbolojn" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Ŝanĝi bildsimbolon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Ŝanĝi tiparojn" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Ŝanĝi la tiparon \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Ŝanĝi malfonajn kolorojn" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Ŝanĝi la malfonan koloron \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Ŝanĝi fonajn kolorojn" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Ŝanĝi la fonan koloron \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Ŝanĝi katogorion" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Ŝanĝi la katogorion de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nova kategorio" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Novaj subkatogorioj" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nova subkatogorio de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nova subkategorio" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Redakti ekklusivajn subkatogoriojn" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Redakti ekklusivajn subkatogoriojn de \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Forviŝi kategoriojn" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Forviŝi kategorion de \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Ŝovi kaj demeti kategoriojn" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Novaj fortostreĉoj" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Novaj fortostreĉoj de \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Forĵeti fortostreĉojn" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Forĵeti fortostreĉon \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Ŝanĝi la taskon de fortostreĉo" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Ŝanĝi la taskon de fortostreĉo \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Ŝanĝi la komencan daton kaj la horon de la tasko" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Ŝanĝi la komencan daton kaj la horon de la tasko \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Ŝanĝi la finan daton kaj la horon de la tasko" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Ŝanĝi la finan daton kaj la horon de la tasko \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nova noto" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Novaj sunotoj" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nova subnoto" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Forvŝi notojn" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Forvŝi noton \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Ŝovi kaj demeti notojn" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Ŝovi kaj demeti notojn \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Aldoni notojn" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Aldoni noton al \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Aldoni subnoton" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Aldoni subnoton \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Forviŝi noton" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Forviŝi noton de \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Ŝovi kaj demeti taskojn" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Forviŝi taskojn" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Forviŝi taskon \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nova tasko" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Novaj subtaskoj" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Novaj subtaskoj de \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nova subtasko" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marki \"%s\" kiel kompletigita" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Marki taskon kiel activa" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Marki \"%s\" kiel activa" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Marki taskon kiel ne activa" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Marki \"%s\" kiel ne activa" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Eki la sekvadon" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Eki la sekvadon de \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Ĉesi la sekvadon" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Ĉesi la sekvadon de \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Plejgrandigu prioritaton" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maksimumigi prioriteton de \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Malplejgrandigu prioritaton" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimumigi prioriteton de \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Pligrandigu prioritaton" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Kreski prioriteton de \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Malpligrandigu prioritaton" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Malkreski prioriteton de \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Ŝanĝi prioriteton" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Ŝanĝi prioriteton de \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Aldoni noton al tasko" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Ŝanĝi la planitan ekdaton" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Ŝanĝi la planitan ekdaton de \"%s" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Ŝanĝi la limdaton" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Ŝanĝi la limdaton de \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Ŝanĝi la limdaton" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Ŝanĝi la aktualan ekdaton de \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Ŝanĝi la plenumdaton" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Ŝanĝi la plenumdaton de \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Ŝanĝi la memorigajn datojn/tempojn" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Ŝanĝi la memorigan daton/tempon de \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Ŝanĝi rekurojn" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Ŝanĝi rekuron de \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Ŝanĝi elcentan kompletigadon de \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Ŝanĝi kiam taskoj estas markitaj kiel kompletigitaj" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Ŝanĝi kiam \"%s\" estas markitaj kiel kompletigitaj" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Ŝanĝi budĝetojn" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Eraro konservante %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Konserveraro" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nova tasko..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Priskribo" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Temo" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritato" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datoj" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Limdato" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Fina dato" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Memorigo" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Ripeteco" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ne" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Buĝeto" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Hora kosto" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fiksita kosto" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorioj" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Kunsendaĵoj" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notoj" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Redaktu taskon" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Neniu" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Ĉiutage" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Monate" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Ĉiusemajne" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Jare" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", ĉiu" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "tago(j)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periodo," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "semajno(j)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "monato(j)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "jaro(j)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nova &subtasko..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Aldonu novan kategorion" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Aldonu laborperiodon al elektita(j) tasko(j)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Aldonu la novan noton" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Aldonu la novan taskon" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Redakti" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/es.po000077500000000000000000006661341265347643000156470ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: Task Coach 0.45\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-09-01 05:16+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: jjramos \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: SPAIN\n" "Language: \n" "X-Poedit-Language: Spanish\n" "X-Poedit-SourceCharset: utf-8\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Ha ocurrido un error. Por favor vea \"taskcoachlog.txt\" en su carpeta \"Mis " "Documentos\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Error" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Han ocurrido errores. Por favor vea «%s»" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "No se pudo cargar la configuración desde TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s error de archivo" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" fue puesto en el nivel superior, ya que su padre fue suprimido " "localmente." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Se ha detectado conflictos para \"%s\"." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Modificar ubicación de los adjuntos" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Modificar ubicación del adjunto \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Añadir adjunto" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Añadir Adjunto a \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nuevo adjunto" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Eliminar adjunto" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Eliminar adjunto a \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copiar" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copiar \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Eliminar" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Borrar \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Cortar" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Cortar \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Pegar" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Pegar \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Pegar como subelemento" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Pegar como subelemento de \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Arrastrar y soltar" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Arrastre y suelte \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Editar los asuntos" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Editar los asuntos \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Editar las descripciones" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Editar descripcion \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Cambiar iconos" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Cambiar icono \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Cambiar fuentes" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Cambiar fuente \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Cambiar los colores del primer plano" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Cambiar el color del primer plano \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Cambiar los colortes de fondo" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Cambiar el color de fondo \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Intercambiar categoría" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Activar categoría de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nueva categoría" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nueva Sub-Categorias" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nueva Sub-Categorias de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nueva subcategoría" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Editar subcategorias exclusivas" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Editar subcategorias exclusivas de \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Borrar Categorías" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Borrar Categoría \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Arrastre y suelte las categorías" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "nuevas actividades" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "nueva actividad de \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Borrar actividades" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Borrar actividad \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Cambiar la tarea de la actividad" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Cambiar la tarea del esfuerzo de \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Cambiar la fecha y hora de inicio de la actividad" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Cambiar la fecha y hora de inicio de la actividad de \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Cambiar la fecha y hora de final de la actividad" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Cambiar la fecha y hora de final de la actividad de \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nota nueva" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nueva sub-notas" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nueva sub-notas de \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nueva subnota" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Borrar Notas" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Borrar Nota \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Arrastrar y soltar notas" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Arrastre y suelte la nota \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Añadir nota" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Añadir nota a \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Añadir subnota" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Añadir subnot a \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Eliminar nota" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Eliminar nota de \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Arrastre y suelte las tareas" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Borrar Tareas" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Borrar Tarea \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nueva tarea" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nueva Sub-tarea" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nueva Sub-tarea de \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nueva subtarea" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marcar Tareas Completadas" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marcar \"%s\" como completada" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Marcar tarea activa" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Marcar \"%s\" activa" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Marcar tarea inactiva" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Marcar \"%s\" inactiva" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Comenzar seguimiento" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "seguimiento de inicio \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Detener el seguimiento" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Detener el seguimiento de \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Asignar prioridad máxima" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximizar la prioridad de \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Asignar prioridad mínima" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimizar la prioridad de \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Aumentar la prioridad" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Incrementar la prioridad de \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Disminuir la prioridad" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Reducir la prioridad de \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Cambiar la prioridad" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Cambiar la prioridad de \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Añadir notas a las tareas" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Cambiar la fecha prevista de inicio" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Cambio planificado la fecha de inicio de \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Cambiar la fecha de vencimiento" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Cambio de fecha de vencimiento de \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Cambiar la fecha de inicio real" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Cambiar la fecha de inicio real de \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Cambiar la fecha de finalización" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Cambiar la fecha de finalización de \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Cambiar la fecha y hora del recordatorio" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Cambiar la fecha y hora del recordatorio de \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Cambiar la repeticiones" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Cambiar la repeticiones de \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Cambiar el porcentaje completado de \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Cambiar cuando las tareas esten marcadas como completadas" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Cambia cuando \"%s\" se marque completado" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Cambiar los presupuestos" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Cambiar el presupuesto de \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Cambiar coste por hora" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Cambiar coste por hora de \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Cambiar costes fijos" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Cambiar costes fijos de \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Activar prerequisito" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Activar prerequisito de \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Error mientras se leia la configuración %s-%s de %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "El valor es: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "El error es: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s usara el valor por defecto para la configuración y continuara normalmente." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Error de configuración" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Error al guardar %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Error al guardar" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mensaje Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nuevo adjunto..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Adjuntar un nuevo archivo" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Abrir adjunto" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Abrir los adjuntos seleccionados" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutos" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "No posponer" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutos" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutos" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 horas" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutos" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hora" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 horas" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 semanas" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "semana" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total para %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Nueva actividad...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Tareas inactivas" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Ocultar tareas inactivas" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Tareas inactivas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Ver/Ocultar tareas inactivas (Tareas incompletas sin fecha de inicio real)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "tareas atrasada" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "ocultar tareas atrasadas" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "tareas atrasadas %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "Muestra/tareas atrasadas ocultas" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Tareas activas" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Tareas activas: %d (%d %%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Ocultar tareas activas" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Ver/Ocultar tareas activas (Tareas incompletas con fecha de inico en fechas " "anteriores)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Tareas recientes" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Las tareas que vencen pronto: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Ocultar &Tareas de próximo vencimiento" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Mostrar/ocultar tareas de próximo vencimiento (tareas incompletas que tienen " "fecha de vencimiento en un futuro cercano)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Tareas vencidas" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Ocultar tareas vencidas" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Las tareas vencidas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Mostrar/ocultar tareas vencidas (tareas incompletas que tienen fecha de " "vencimiento pasada)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Tareas completadas" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Tareas completadas: %d (%d %%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Ocultar procesos &completados" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Mostrar/ocultar las tareas completadas" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Tarea nueva..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Flecha hacia abajo" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Flecha hacia abajo con estado" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Flechas azules en bucle" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Flechas verdes en bucle" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Flecha hacia arriba" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Flecha hacia arriba con estado" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Libro" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Libros" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Caja" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Mariquita" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Pastel" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculadora" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendario" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Gato" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Disco compacto (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Gráficos" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Charlar" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Marca de tic" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Marca las casillas" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Reloj" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarma" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Cronómetro" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Rueda dentada" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Ruedas dentadas" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Computador personal" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Equipo portátil" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Computador de mano" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Cruz roja" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Dado" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Documento" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Tierra azul" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Tierra verde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Sobre" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Sobres" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Carpeta azul" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Folder azul" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Carpeta verde" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Carpeta Gris" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Carpeta naranja" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "folder purpura" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Carpeta Roja" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Carpeta amarilla" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Carpeta azul con una flecha" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Corazón" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Corazones" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Casa verde" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Casa roja" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Llave" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Llaves" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lámpara" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Signo de interrogación" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Información" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "LED azul" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "LED de azul claro" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "LED gris" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "LED verde" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "LED verde claro" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "LED naranja" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "LED morado" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "LED rojo" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "LED amarillo" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Salvavidas" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Cerrojo cerrado" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Cerrojo abierto" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupa" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota musical" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Nota" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Clip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Lápiz" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Persona" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Personas" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificación" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Persona hablando" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Señal de advertencia" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Menos" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Más" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Estrella roja" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Estrella amarilla" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semáforo" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Papelera" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Relámpago" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Paraguas" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Parcialmente soleado" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Llave inglesa" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Sin icono" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Archivo" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Ruta completa" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Fecha" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Restaurar" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Cerrar" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Seleccione el destino de la restauración" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Mensaje de los %s desarrolladores" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Vea:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descripción" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Editar para cambiar todos temas" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Asunto" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Editar para cambiar todas las descripciones" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Fecha de creación" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Fecha de modificación" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioridad" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutuamente exclusivo" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategorías" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Editar para cambiar la locación de todos los adjuntos" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Explorar" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Ubicación" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Apariencia" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Color de primer plano" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Color de fondo" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Tipografía" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icono" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Fechas" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Fecha prevista de inicio" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Fecha vencimiento" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Fecha de inicio real" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Fecha de finalización" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Recordar" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Repetir" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progreso" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Porcentaje completo" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Usar parámetros globales de la aplicación" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "No" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Sí" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "¿Marcar como completada cuando todas sus subtareas lo estén?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Presupuesto" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Tiempo dedicado" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Presupuesto disponible" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Coste por hora" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Coste fijo" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Ingresos" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Actividad" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorías" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Archivos adjuntos" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notas" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Requisitos" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Editar tarea" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tarea" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Comenzar" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Semana(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Día(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hora(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minuto(s)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Parar" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Comenzar seguimiento desde el último tiempo de parada" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Detener el seguimiento ahora" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Advertencia: el comienzo debe de ser antes que el final" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Multiples tareas" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (tarea)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Multiples categorias" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (categoria)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Multiples notas" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (nota)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Multiples adjuntos" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (adjunto)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Multiples esfuerzos" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (esfuerzo)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Usar tipografía:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Usar color:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nunca" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Diariamente" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mensualmente" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Semanalmente" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Anualmente" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "manteniendo las fechas en el mismo día de semana" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", cada" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Detener después" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "repeticiones" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Programar cada recurrencia siguiente basándose en" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "fecha de comienzo y/o vencimiento anterior" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "última fecha completada" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "días," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periodo," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "semanas," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "meses," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "años," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportar elementos desde:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Exportar solamente los elementos seleccionados" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Columnas a exportar:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Asignar fechas y horario en columnas separadas" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Escribir información de estilos en un fichero CSS externo" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Si existe un archivo CSS para el archivo exportado, %(name)s no lo " "reescribirá. Esto le permitirá cambiar la información del estilo sin perder " "los cambios cuando realice la próxima exportación." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportar como CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportar como iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exporar como HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportar como Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Un dispositivo iPhone o iPod Touch está tratando\n" "de sincronizarse con este archivo de tarea por\n" "por primera vez. ¿Qué tipo de sincronización\n" "desea usar?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Acualizar desde escritorio" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Actualizar desde dispositivo" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancelar" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Has activado la función de sincronización con el iPhone, la cual\n" "hace uso de Bonjour. Pero no parece que Bonjour esté instalado\n" "en tu sistema." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Descarga e instala Bonhour para Windows desde\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Sitio web de Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "El soporte para Linux de Bonjour es proporicionado, en general, por\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Puede encontrar los detalles para su distribución aquí" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Note que en algunos sistemas (Fedora), puede que tenga que\n" "instalar el paquete avahi-compat-libdns_sd así como Avahi para poder\n" "hacer funcionar esto." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Además, sí tienen un cortafuegos, revise que los puertos 4096-4100 están " "abiertos." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Este ajuste tendrá efecto despues de reiniciar %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Estos ajustes pueden ser corregidos en forma\n" "individual en el editor de tareas." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Archivos" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Guardar automáticamente tras cada cambio" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Auto cargar cuando el archivo en el disco cambie" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Monitoreo de archivos inteligente" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Intentar detectar los cambios del archivos de tareas en tiempo real.\n" "No verifique esto si su archivos de tareas esta en una red compartida.\n" "Debes reiniciar %s después de hacer los cambios." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Guardar configuraciones (%s.ini) en el mismo\n" "directorio del programa" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Para ejecutar %s desde un medio extraible" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Carpeta base de adjuntos" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Cuando se añada un adjunto, intentar que\n" "su ruta sea relativa a esta carpeta." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Antes de guardar, importar automáticamente desde" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "formato Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Antes de guardar, %s importa automáticamente las tareas\n" "desde un archivo Todo.txt con el mismo nombre que el\n" "archivo de la tarea, pero con extensión .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Cuando se guarde, exportar automáticamente a" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Cuando guarda, %s exporta automáticamente las tareas\n" "a un archivo Todo.txt con el mismo nombre que el archivo\n" "de la tarea, pero con extensión .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Comportamiento de la ventana" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Mostrar pantalla de inicio" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Mostrar consejos al inicio" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Iniciar con la ventana principal minimizada" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Siempre" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nunca" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Si lo estaba en la sesión anterior" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Buscar versiones nuevas de %(name)s al inicio" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Revise los mensajes de %(name)s desarrolladores al inicio" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Ocultar ventana princial cuando se minimiza" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimizar ventana principal cuando cierre" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Animar reloj de la barra de tareas durante el\r\n" "seguimiento de actividad" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Idioma" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Dejar que el sistema de determine el idioma" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Si su lenguaje no esta disponible, o la traucción necesita mejorarse, por " "favor considere ayudar, Vea:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "¿El idioma no se encuentra?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Apariencia de tarea" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Estos ajustes de aspecto pueden ser sobre escritos en forma individual en el " "editor de tareas." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Características" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Todas la configuraciones de esta pestaña requieren el reinicio de %s para " "tener efecto" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Activar SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Habilitar sincronización con iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Usar gestión de sesiones de X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Iniciar semana de trabajo" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "lunes" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "domingo" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hora de comienzo de la jornada laboral" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hora de finalización de la jornada laboral" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Final del día" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Usar gradientes en las vistas del calendario.\n" "Esto puede enlentecer Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutos entre tiempo sugerido" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "En los menús emergentes para la asignación de tiempo\n" "(para el tiempo de trabajo) %(name)s le sugiere estos\n" "ajustes. Es preferible usar periodos cortos de tiempo.\n" "Por supuesto que usted puede asignar el tiempo\n" "que usted considere adecuado." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Alerta, tiempo inactivo." #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Si no se asigna el tiempo (en minutos), %(name)s le solicitará el tiempo " "correspondiente para la tarea." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Utilice tiempos decimales para las entradas de esfuerzo." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Mostrar una hora, quince minutos como 1.25 en vez de 1:15\n" "Esto es útil cuando se crean facturas." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Mostrar una notificación con la descripción de un\n" "elemento al colocar el puntero encima" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Fechas de tarea" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Marcar tareas primarias como completadas cuando todas las secundarias estén " "completas" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" "Numero de horas en que las tareas son consideradas «casi completadas»" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Ninguno" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "El cambio de la fecha de inicio modifica la de finalización." #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "El cambio de la fecha de finalización afecta la de inicio" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "¿Que hacer con la fecha de inicio si la otra cambia?" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Predeterminado" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Proponer" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Hoy" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Mañana" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Pasado mañana" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Próximo Viernes" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Próximo Lunes" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Comienzo del día" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Comienzo de día de trabajo" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Hora actual" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Final de día laborable" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Fecha y hora de inicio planeada por defecto" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Previsión de fecha y hora por defecto" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Fecha y hora actual de inicio por defecto" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Fecha y hora de finalización por defecto" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Fecha y hora de recordatorio por defecto" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Las tareas nuevas se sobreponen a unas ya existentes. Se proponen fechas " "alternas pero se requiere su autorización.\n" "El día de inicio esta a la mitad del tiempo total, un poco despues de la " "mitad. Cuando esto sucede, el visor de tareas ocultará el tiempo y solo " "mostrará la fecha.\n" "\"Inicio día de trabajo\" y \"Final día de trabajo\" fije estos parametros " "en el menu de preferencias." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Recordatorios de tarea" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Sistema de notificación usado para los recordatorios" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Permitir que la computadora diga los recordatorios" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Necesita espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Tiempo de aplazamiento por defecto a usar después del recordatorio" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" "Repetir varias veces para ofrecer en el diálogo de recordatorio de tareas" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Contraseña para sincronizar con el iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Cuando sincronice, introduzca esta contraseña en el iPhone para autorizarla" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nombre del servicio de Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Subir las tareas completas al dispositivo" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Mostrar el registro de sincronizaciones" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Comprobar la ortografía en los editores" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Fuenta a usar en los cuadros de díalogo." #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Obtener asunto del mensaje de Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Cuando pegue un e-mail desde Mail.app, tratar de conseguir su propósito.\n" "Esto tomará máximo 20 segundos." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Al abrir el editor de tareas, seleccione el tema de la tarea y haga foco en " "el.\n" "Hacer esto sobrescribirá la selección X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s recordatorio - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Recordatorio de fecha y hora" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Permitir postoner" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Tiempo por defecto para posponer avisos futuros" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Marcar tarea como completada" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Servidor SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Personalizar" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Basado en Horde" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL servidor SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nombre de usuario/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Activar sincronización de tareas" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nombre de la base de datos de tareas" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Modo de sincronización preferido" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Ambas direcciones" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lenta" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Sincronizar desde el cliente" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Actualizar desde el cliente" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Sincronizar desde el servidor" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Actualizar desde el servidor" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Activar la sincronización de notas" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Nombre de la base de datos de notas" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Acceso" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Nueva plantilla de tareas" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Vista Previa" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Herramientas disponibles" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Hacer esta herramienta visible en la barra de herramientas" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Ocultar esta herramienta de la barra de herramientas" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Herramientas" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Subir la herramienta (a la izquierda de la barra de herramientas)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Bajar la herramienta (a la derecha de la barra de herramientas)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Reorganizar los botones de la barra de herramientas arrastrando y soltando " "elementos en esta lista." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separador" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Espaciador" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Avisar de las versiones nuevas." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Disponible nueva versión de %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Usted está empleando %(name)s versión %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "La versión %(version)s de %(name)s está disponible desde" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s está actualizado" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s está actualizado a la versión %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "No se pudo localizar la última versión." #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "No se pudo encontrar cuál sería la última versión de %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Versión pre-release" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Estás utilizando %(name)s versión pre-release %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "La última versión publicada de %(name)s es %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Aviso" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach tiene algunos problemas con el adiministrador de sesiones XFCE4\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Si experimenta \"congelamientos\" aleatorios por favor de-seleccione\n" "el administrador de sesiones X11, en la sección de preferencias.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "No mostrar este diálogo al iniciar" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Sin actividad desde %s. La siguiente tarea estaba\n" "siendo seguida:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "No hacer nada" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Pararla en %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Pararla en %s y continuar ahora" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notificación" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "Archivo %s (*.tsk)|*.tsk|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s archivos (*.tsk)|*.tsk|Archivos de resguardo (*.tsk.bak)|*.tsk.bak|Todos " "los archivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Archivo iCalendar (*.ics)|*.ics|Todos los archivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Archivos HTML (*.html)|*.html|Todos los archivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Archivos CSV (*.csv)|*.csv|Archivos de texto (*.txt)|*.txt|Todos los " "archivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Archivos Todo.txt (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Abrir" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Cargadas %(nrtasks)d tareas de %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "No se puede abrir %s porque no existe" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Combinar" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "No se puede abrir %(filename)s\n" "porque está bloqueado." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Mezclados %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Guardar como" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Guardar selección" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "No se puede guardar %s\n" "está bloqueado por otra instancia de %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "No se puede guardar %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importar plantilla" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s archivos de plantilla (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "No es posible importar la plantilla %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d elementos exportados a %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sincronización terminada" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Estado de sincronización" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "No se ha podido abrir %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Ya existe un fichero llamado %s.\n" "¿Desea reemplazarlo?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Hay cambios no guardados.\n" "¿Guardarlos antes de cerrar?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: ¿guardar cambios?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "No se puede abrir %s porque esta bloqueado" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: archivo bloqueado" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "No se puede bloquear porque el bloqueo no está soportado en la localización " "de %s. \n" "¿Desea abrir %s como desbloqueado?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s cerrado" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d tareas guardadas en %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "No se puede abrir %(filename)s\n" "porque se ha creado con una nueva versión de %(name)s.\n" "Por favor, actualice %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Error al leer %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "El gestor de respaldo se abrirá ahora para que pueda restaurar\n" "una versión anterior de este archivo." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Sincronizando..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sincronizando con %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Bienvenido/a a %(name)s versión %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "No se puede leer el archivo TaskCoach.ini para restaurar el panel:\n" "%s\n" "El panel por defecto será usado.\n" "Si esto vuelve a suceder, por favor realize una copia del archivo " "TaskCoach.ini antes de cerrar el programa, abra un reporte de errores y " "adjunte el archivo TaskCoach.ini." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s error en la configuración" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Tipo de sincronización" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Un iPhone o un iPod Touch intentó sincronizar este \n" "fichero de tareas pero la negociación de protocolo falló.\n" "Por favor, cree un informe de error." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Archivo" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Editar" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Ver" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nuevo" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Acciones" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Ayuda" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importar" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportar" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Seleccionar" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Nueva pestaña" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activar siguiente visor\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activar el visor &anterior\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Modo" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtrar" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Ordenar" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Columnas" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Redondeado" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Opciones de árbol" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Barra de &herramientas" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Mostrar/ocultar barra de estado" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Barra de estado" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tarea" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Abrir una nueva ficha con un visor que muestre las tareas" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Estadísticas de la tarea" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" "Abrir una nueva pestaña con un visor que muestre las estadisticas de la tarea" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "&Cuadro de tareas" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Abrir una solapa nueva con un visor que muestre las tareas en un cuadro" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "L&inea de tiempo" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Abre una nueva pestaña con un visor que muestra una línea de tiempo de " "tareas y esfuerzo" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendario" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "Abre una nueva pestaña con un visor que muestra las tareas en un calendario" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&H Calendario jerárquico" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Abre una nueva pestaña con un visor que muestra la jerarquía de tareas en un " "calendario" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categoría" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Abrir un nuevo espacio con un visor que muestre las categorías" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Esfuerzo" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Abrir una nueva pestaña con un visor que muestra recursos" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Esfuerz&o para la(s) tarea(s) seleccionada(s)" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Abrir una solapa nueva con un visor que muestre las actividades de la tarea " "seleccionada" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Nota" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Abrir un nuevo espacio con un visor que muestre las notas" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Ocultar" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Ocultar the barra de herramientas" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Imágenes pequeñas" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Imágenes pequeñas (16x16) en la barra de herramientas" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Imágenes &medianas" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Imágenes medianas (22x22) en la barra de herramientas" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "Imágenes &grandes" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Imágenes grandes (32x32) en la barra de herramientas" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nueva tarea de &plantilla" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Ac&tivar desactivar categoría" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Cambiar &prioridad de la tarea" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Comenzar el seguimiento del esfuerzo" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategorias)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtareas)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioridad" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Página" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "Recuerdo %s" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d de tareas pasadas de fecha" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "una tarea pasada de fecha" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tareas vencen pronto" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "una tarea vence pronto" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "siguiendo \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "seguimiento de esfuerzo para tareas %d" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Abrir...\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Abrir %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "Co&mbinar..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Mezclar tareas de otro fichero con las del actual" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Cerrar\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Guardar\tCtrl+G" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Fusionar cambios en &disco\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Guardar como...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Guarde en un nuevo archivo de trabajo..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Guardar la tarea seleccionada en un archivo de trabajo por separado" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Guardar tarea seleccionada como &plantilla" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Guardar la tarea seleccionado como una plantilla de tareas" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importar plantilla..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importar nueva plantilla del archivo de plantillas" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Editar plantillas..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Editar plantillas existentes" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Editar plantillas" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Limpiar items eliminados" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Actualmente eliminar tareas y notas eliminadas (ver el capítulo SyncML en la " "Ayuda)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Purgar los elementos borrados es irreversible.\n" "Si pretende activar la característica de\n" "SyncML nuevamente con el mismo servidor \n" "que usó anteriormente, es probable que \n" "estos elementos reaparezcan.\n" "\n" "¿Realmente quiere purgarlos?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Configuración de página...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Previsualizar impresión..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Mostrar una vista previa del aspecto que tendrá la impresión" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Previsualizar la impresión" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Imprimir...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Administrar respaldos..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Administrar todos los respaldos de archivos de tareas" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportar como &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exportar elementos desde un visor en formato HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportar como &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Exportar elementos desde una vista en formato de Valores Separados por Comas " "(CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exportar como &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exportar elementos de una vista en formato iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exportar como &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Exportar elementos desde una vista en el formato Todo.txt (ver todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importar CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" "Importar tareas desde un archivo de Valores Separados por Comas (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importar CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" "El archivo seleccionado esta vacio. Por favor seleccione un archivo diferente" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importar Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importar tareas desde un archivo Todo.txt (ver todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importar Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Sincronización S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Sincronizar con un servidor SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Salir\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Deshacer" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Rehacer" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Cor&tar\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copiar\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Pegar\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "&Pegar como subelemento \tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferencias...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferencias" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Preferencias &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Editar preferencias de SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Preferencias de SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Personalizar barra de tareas" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Personalizar" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "T&odo\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Cancelar selección" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Deseleccionar todo" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "Desa&ctivar todos los filtros\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Reiniciar todas las categorias\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Mostrar/ocultar elementos pertenecientes a %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Renombrar pestaña..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Renombrar la pestaña seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nuevo nombre para la pestaña:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Renombrar pestaña" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Ocultar esta columna" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Ocultar la columna seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Expandir todos los elementos\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Contraer todos los elementos\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascendente" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Ordenar ascendente (marcado) o descendente (desmarcado)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Ordenar distinguiendo mayúsculas y minús&culas" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Cuando compare texto, ordenar si es sensible al tipo de letra (marcado) o no " "(desmarcado)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Ordenar primero por estado" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Orden de tareas por estado (activas/inactivas/completadas) primero" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Ocultar tareas c&ompuestas" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Mostrar/ocultar las tareas con subtareas en el modo de lista" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Editar...\tENTER" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Editar elementos seleccionados" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Editar seguimiento de &tarea...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Editar la(s) tarea(s) actualmente en seguimiento" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Borrar\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Eliminar elemento(s) seleccionado(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Crear una nueva tareas desde una plantilla" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nuevas tareas con las & categorías seleccionadas..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Insertar una nueva tarea con las categorías seleccionadas marcadas" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nueva tarea tomando las tareas seleccionadas como &pre-requisitos..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Insertar una nueva tarea con la tarea seleccionada como pre-requisito de la " "tarea" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nueva tarea con las tareas seleccionadas como dependientes..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" "Insertar una nueva tarea con los elementos seleccionados como tareas " "independientes" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nuevo &subelemento..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "&Subtarea nueva..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nueva &subnota..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nueva &subcategoría..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Insertar un nuevo subitem del item seleccionado" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Marcar tarea &activa\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Marcar la(s) tarea(s) seleccionada(s) como activa(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Marcar tarea &inactiva\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Marcar la(s) tarea(s) seleccionada(s) como inactiva(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Marcar tarea &completada\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marcar la tarea(s) selecionada(s) como completa(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximizar prioridad\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimizar prioridad\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Aumentar prioridad \tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Disminuir prioridad \tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Activar/Desactivar %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Correo...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Varios elementos" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "y" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "No se pudo enviar el correo electrónico:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "Error de correo %s" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Agregar ¬a...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Abrir todas las notas...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "Iniciar el &seguimiento de esfuerzo\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Inicia el seguimiento de esfuerzo para las tareas de los esfuerzos " "seleccionados" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Sin asunto)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Iniciar el seguimiento de esfuerzo para %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" "Seleccione una tarea a través del menú y comience el seguimiento de los " "esfuerzos para la misma" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Parar o reanudar el seguimiento de esfuerzo\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Detener el seguimient&o %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Parar el seguimiento del esfuerzo de las tareas activas" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "Continua&r el seghimiento %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" "Continuar el seguimiento de esfuerzo de la última tarea en seguimiento" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "tareas múltiples" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nueva categoria...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nueva nota...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nueva ¬a con las categorías seleccionadas..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Insertar una nueva nota con las categorías seleccionadas marcadas" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Agregar archivo adjunto...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Error al abrir anexo" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "Abrir t&odos los archivos adjuntos...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Contenidos de la ayuda\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Ayuda de contenido\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Ayuda" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Consejos" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Consejos acerca del programa" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonimizar" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Hace anónimo un archivo de tareas para adjuntarlo a un informe de error" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "El archivo de la tarea ha sido anónima y se guardará en:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Terminada" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Sobre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versión e información de contacto sobre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Acerca de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licencia" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Licencia de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Comprobar si hay actualizaciones" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Revisar la disponibilidad de una nueva versión de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "No se ha podido abrir la URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s error de URL" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Preguntas frecuentes (&FAQ)" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Examine las preguntas frecuentes y sus respuestas" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Informe de un &error..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Informar de un error o ver errores conocidos" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Solicitar una &función..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" "Solicite una nueva característica o vote por las solicitudes existentes" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Pedir &soporte..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Solicitud de soporte de usuario de los desarrolladores" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Ayude a mejorar las &traducciones..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Ayude a mejorar las traducciones de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Donar..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Haga un donativo para apoyar el desarrollo de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restaurar" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restaurar la ventana a su estado anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Búsqueda" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detalles de esfuerzo" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Esfuerzo por día" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Esfuerzo por mes" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Esfuerzo por semana" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Modo de agregación" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Lista" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Árbol" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Cuando marcada, mostrar tareas como árbol, en caso contrario hacerlo como " "lista" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrar en todas las categorías marcadas" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrar en cualquier categoría marcada" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Cuando se activa, se filtra en todas las categorías marcadas, o en " "cualquiera seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Elección de órden" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configurar" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configurar el visor de calendario" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Configurar el visor de calendario jerárquico" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Proximo Periodo" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Mostrar proximo periodo" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Periodo Anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Mostrar peiorodo anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Hoy" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Mostrar el día de hoy" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Ajuste de tamaño de columnas automático" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Cuando está marcado, automaticamente ajusta las columnas para rellenar el " "espacio disponible" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Establecer ángulo del gráfico circular (pie)" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "sin redondeo" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuto" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutos" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Precisión de redondeo" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Siempre redonde&ar hacia arriba" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Siempre se redondea al siguiente incremento en redondeo" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tipo" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Ordenar por asunto" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "A&sunto" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Odenar por descripción" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Descripción" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Fecha de creación" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Ordenar por fecha de creación" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Fecha de modificación" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Ordenar por la útima fecha de modificación" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Mostrar/ocultar columna de descripción" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notas" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Mostrar/ocultar columna de notas" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Mostrar/ocultar la columna de fecha de creación" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Mostrar/ocultar la columna de última modificación" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Las barras de herramientas son personalizables" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Pinche en el icono del engranaje de la derecha para añadir botones o " "reorganizarlos" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Reordenando en modo de árbol" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "En el modo de árbol, el orden manual sólo es posible cuando todos los " "elementos seleccionados son hermanos." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "En el modo de árbol, sólo se puede poner los objetos en el mismo nivel (de " "los padres)." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Orden &Manual" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Mostrar/esconder la columna de ordenación manual" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Anexos" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Mostar/ocultar columna de adjuntos" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categorías: %d seleccionadas, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Estado: %d filtrado" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periodo" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Total del tiempo invertido" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Ingresos totales" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "martes" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "miércoles" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "jueves" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "viernes" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "sábado" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categorías" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Mostrar/ocultar columna de categorías" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Tiempo invertido" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Mostrar/ocultar la columna del tiempo invertido" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Ingresos" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Mostrar/ocultar columna de ingresos" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Tiempo total empleado" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Mostrar/Ocultar la columna de total tiempo consumido" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "Ingresos &Totales" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Mostrar/ocultar columna de ingresos" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Esfuerzo por día de la semana" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Mostrar/ocultar columnas de tiempo empleado por día de la semana" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Agregación de esfuerzo" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Esfuerzo: %d seleccionados, %d visibles, %d en total. Tiempo usado: %s " "seleccionado, %s visible, %s en total" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Estado: %d seguimiento" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Detalles:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Esfuerzo de la(s) tarea(s) seleccionada(s)" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Ordenar las categorías por asunto" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Ordenar las categorías por descripción" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Ordenar categorias por fecha de creación" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Ordenar categorías por última fecha de modificación" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Ordenar categorías manualmente" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Ordenar adjuntos por asunto" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Ordenar adjuntos por descripción" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Ordenar adjuntos por categoría" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Ordenar adjuntos por fecha de creación" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Ordenar adjuntos por ultima fecha de modificación" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Ordenar notas por asunto" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Ordenar notas por descripción" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Ordenar notas por categoría" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Ordenar notas por fecha de creación" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Ordenar notas por ultima fecha de modificación" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Ordenar notas manualmente" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Ordenar tareas por asunto" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Ordenar las tareas por descripción" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Ordenar las tareas por categoría" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Ordenar tareas por fecha de creación" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Ordenar tareas por ultima fecha de modificación" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Ordenar tareas manualmente" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Ordenar las tareas por fecha de inicio prevista" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&fecha prevista de inicio" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Ordenar tareas por fecha límite" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Fecha límite" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Ordenar tareas por fecha de finalización" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Fecha de &finalización" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Ordenar tareas por tareas prerequisito" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Prerequisitos" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Ordenar tareas por dependencias" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dependientes" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Ordenar tareas por tiempo restante" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Tiempo Restante" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Ordenar tareas por porcentaje completado" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Porcentaje completado" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Odenar tareas por repetición" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Repetición" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Ordenar tareas por tiempo asignado" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Asignación de tiempo" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Ordenar tareas por el tiempo invertido" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Ti&empo asignado restante" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Ordenar tareas por tiempo asignado restante" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Ordenar tareas por prioridad" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Ordenar tareas por coste hora" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Coste hora" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Ordenar tareas por coste fijo" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Coste fijo" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Ordenar tareas por ingresos" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Ordenar las tareas por la fecha y hora del recordatorio" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Recordar" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Asunto" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Ordenar notas por categorias" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notas: %d seleccionadas, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Estado: n/d" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tareas: %d seleccionadas, %d visibles, %d totales" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Estado: %d vencido, %d retrasado, %d inactivo, %d completado" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Shift+clic en una herramienta de filtro para ver únicamente las tareas con " "el estado correspondiente." #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tareas" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Línea de tiempo" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Ahora" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Cuadro de tareas" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Calendario jerárquico" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Configuración del visor de calendario" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ordenación manial" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dependientes" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% completado" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Tiempo restante" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Fechas" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "Todas l&as columnas de fecha" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Mostrar/ocultar todas las columnas relativas a fechas" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Mostrar / ocultar la fecha de inicio prevista" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Mostrar/ocultar la columan de fecha límite" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Fecha de inicio real" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Mostrar / ocultar la fecha de inicio real" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Mostrar/ocultar la columna de fecha de finalización" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Mostrar/esconder la conlumna del tiempo faltante" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Mostrar/ocultar la columna repetición" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "Todas l&as columnas de presupuesto" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Mostrar/ocultar columnas relacionadas con presupuesto" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Mostrar/ocultar la columna de presupuesto" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Presupuesto disponible" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Mostrar/ocultar la columna del tiempo asignado restante" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanzas" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Todas las columnas financieras" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Mostrar/ocultar todas las columnas relacionadas con finanzas" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Mostrar/ocultar columna de coste hora" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Mostrar/ocultar columna de coste fijo" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Mostar/ocultar columna de prerequisitos" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Mostrar/Ocultar la columna de porcentaje completado" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Mostrar/ocultar columna de anexos" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Mostrar/ocultar columna de prioridad" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Mostrar/ocultar la columna recordatorio" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Mostrar tareas como" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Estadísticas de la tarea" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Coma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tabulador" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Espacio" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Dos puntos" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Punto y coma" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Tubería" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (primero el día)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (primero el mes)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Comillas simples" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Comilla doble" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Doblarlo" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Escapar con" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importar solo las filas seleccionadas" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "La primera linea describe los campos" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Delimitador" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Formato de la Fecha" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "caracter comilla" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Escapar comilla" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Campo #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Por favor, seleccione un archivo." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Categoría" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "recordatorio de la fecha" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Porcentaje completado" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Cabecera de columna en archvo CVS" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s atributo" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Sin asignación de campos." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "El campo \"%s\" no puede ser selecciondado varias veces." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Los campos %s no pueden ser seleccionados varias veces." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Tabla de contenidos" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Acerca de las tareas" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Propiedades de las tareas" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Estados de las tareas" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Colores de las tareas" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Recordatorios" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Acerca del esfuerzo" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Propiedades del esfuerzo" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Acerca de las categorías" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Propiedades de las categorías" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Acerca de las notas" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Propiedades de las notas" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Impresión y exportación" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Acerca de la impresión y exportación" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Impresión" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportación" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Opciones de almacenamiento" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integración de e-mail" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Acerca de la integración con correos electrónicos" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Adjuntando un correo electrónico a una tarea" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Crear una nueva tarea por" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "soporte SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Que es SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Configuración" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitaciones" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Resolución de problemas" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Depuración de elementos eliminados" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone e iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s en el iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuración" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "¿%(name)s en Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Tocar Todo.txt y Todo.txt" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importando todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exportando todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Plantillas de tareas" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Sobre las plantillas" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Utilizando plantillas" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Interfaz gráfica de usuario" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Atajos de teclado" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Las tareas son los objetos básicos que puede manipular. Las tareas pueden\n" "representar cualquier cosa desde una pequeña cosa simple que tiene que hacer " "para completar \n" "un proyecto que consiste en diferentes fases y varias actividades." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Las tareas tienen las siguientes propiedades que puede cambiar:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Asunto: una línea simple que resume la tarea." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Descripcion: una descripción en varias líneas de la tarea." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Fecha de vencimiento: la fecha en la que la tarea debería estar terminada. \n" "Puede ser 'Ninguna' indicando que la tarea no tiene fecha fija de " "vencimiento." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Fecha de finalización: esta fecha es 'Ninguna' mientras la tarea \n" "no haya sido terminada. Se establece a la fecha actual cuando marque la " "tarea como \n" "finalizada. La fecha de finalización también puede ser introducida " "manualmente." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Prerequisitos: otras tareas que es necesario completar antes\n" "de que una tarea pueda empezar. La tarea permanece inactiva hasta que el " "ultimo prerequisito es \n" "completado. Note que si la tarea tiene una fecha de inicio planeada " "especifica, esa\n" "fecha tiene que estar en el pasado y todos los prerequisitos deben " "ser\n" "completados antes de sea tarde." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Presupuesto: La cantidad de horas disponibles para la tarea." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "tarifa por hora: la cantidad de dinero ganado con el trabajo por hora." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Costes fijos: la cantidad de dinero ganada con la tarea \n" "sin tener en cuenta el tiempo empleado." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "Las siguientes propiedades se calculan a partir de las propiedades " "anteriores:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" "Días restantes: el número de días que quedan hasta la fecha de vencimiento." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dependientes: otras tareas pueden empezar cuando el \n" "prerequisito sea completado." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Tiempo empleado: esfuerzo empleado en la tarea." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Presupuesto disponible: presupuesto de la tarea menos el tiempo dedicado a " "la tarea." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Ingresos: coste por hora de horas empleadas más coste fijo." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Las tareas siempre tienen uno de los siguientes estados:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Activa: la fecha de inicio actual está en el pasado;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactivo: la tarea no ha sido iniciada y/o no todas \n" "las tareas previas han sido completadas;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Finalizada: la tarea ha sido finalizada." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Además, las tareas pueden ser referenciadas como:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Atrasados: la fecha de vencimiento está en el pasado;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Realizar pronto: la fecha de finalización es en breve (la definición de " "'pronto', puede ser \n" "modificada en las opciones);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Por encima de presupuesto: no queda presupuesto disponible;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "En presupuesto: aún queda presupuesto disponible;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Sin presupuesto: la tarea no tiene presupuesto." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "El texto de las tareas está coloreado según las siguientes reglas:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Tareas pendientes son de color rojo;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Tareas a realizar en breve son naranja;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Las tareas activas tienen texto negro con un icono azul;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Las tareas retrasadas son de color morado" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Las tareas futuras son grises, y" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Las tareas completadas son verdes." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Por supuesto, esto asume que no ha cambiado los colores del texto mediante " "la\n" "ventana de preferencias." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "El color de fondo de las tareas está determinado por las categorías a las \n" "que la tarea pertenezca. Compruebe abajo la sección sobre\n" "propiedades de las categorías." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Si tienes Growl o Snarl instalado, puedes introducir\n" "%(name)s para usar estos recordatorios en la ventana de preferencias." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Siempre que dedique tiempo en tareas, puede guardar la cantidad de tiempo\n" "dedicado realizando un seguimiento de la actividad. Seleccione una tarea y " "ejecute \"Empezar seguimiento de actividad\" en \n" "el menú Actividad o menú contextual o mediante el botón de la barra de menú " "\"Empezar seguimiento de actividad\"." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "Los registros de esfuerzo tienen las siguientes propiedades que puede " "cambiar:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Tarea: la tarea a la que pertenece la actividad." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Inicio fecha/hora: Fecha y hora de inicio del esfuerzo." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Fecha/Hora de parada: fecha y hora de parada del esfuerzo. Ésta puede ser \n" "'Ninguna' durante tanto tiempo como esté aún trabajando en la tarea." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Descripción: una descripción multilínea del esfuerzo." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Tiempo empleado: cuanto tiempo ha empleado trabajando en la tarea." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Ingresos: dinero ganado con el tiempo empleado." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Las tareas y las notas puede pertenecer a una o más categorías. Primero, \n" "necesita crear la categoría que quiera utilizar mediante el menú " "'Categoría'. Entonces, \n" "puede añadir elementos a una o más categorías editando el elemento y " "marcando las \n" "categorías correspondientes para ese elemento en el panel de categorías del " "dialogo de edición." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Puede limitar los elementos mostrados en los visores de tareas y notas a una " "\n" "o más categorías marcando una categoría en el visor de categoría. Por " "ejemplo, \n" "si tiene una categoría 'llamadas telefónicas' y marca esa categoría, los " "visores \n" "de tareas sólo mostrarán tareas que pertenezcan a esa categoría; en otras " "palabras las\n" "llamadas telefónicas que tiene que realizar." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Las categorías tienen las siguientes propiedades que puede cambiar:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Asunto: una línea que resumen la categoría." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Descripción: una descripción multilínea de la categoría." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Categorías mutuamente excluyentes: marque para indicar\n" "si las subcategorías de una categoría son mutuamente excluyentes.\n" "Si lo son, sus objetos sólo pueden pertenecer a una de sus subcategorías.\n" "Cuando se filtra, sólo puedes hacerlo por una subcategoría a la vez." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Propiedades de apariencia tales como icono, fuente y colores: \n" "las propiedades de apariencia son utilizadas para presentar la categoría y " "también los elementos\n" "que pertenecen a dicha categoría. Si la categoría en si misma no tiene " "color, fuente o icono, \n" "pero tiene una categoría padre con tal propiedad, se utilizará la \n" "propiedad del padre. Si un elemento pertenece a múltiples categorías las " "cuales tienen un color \n" "asociado a ella, se utilizará una mezcla de colores para presentar ese \n" "elemento." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Las notas puedes ser utilizadas para captar información aleatoria que desea\n" "almacenar en su fichero de tarea. Las notas pueden ser independientes o " "pertener a otros elementos,\n" "tales como tareas y categorías. Las notas independientes son mostradas en el " "visor\n" "de notas.Las notas que son parte de otros elementos no son mostradas en el " "visor\n" "de notas." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Las notas tienen las siguientes propiedades que puede cambiar:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Asunto: una línea que resume la nota." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Descripción: una descripción multilínea de la nota." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Propiedades de apariencia tales como icono, fuente y colores." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "La impresión y la exportación funcionan de la misma manera: cuando imprime\n" "o exporta información, la información del visor activo es impresa o " "exportada.\n" "Además, la información es impresa o exportada de la misma manera en la que " "el visor\n" "la está mostrando. La información es impresa o exportada en el mismo orden " "en la que\n" "el visor la está mostrando. Las columnas que son visibles determinan que\n" "detalles se imprimirán o exportarán. Cuando filtre elementos, estos no serán " "impresos\n" "o exportados (por ejemplo cuando oculte las tareas completadas)." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Prepara el contenido de un visor, poniendo los elementos en el \n" "orden adecuado, mostrar o ocultar las columnas apropiadas y aplicar los " "filtros \n" "relevantes." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Puede realizar una previsualización de como se visualizará la impresión\n" "utilizando el elemento de menú Archivo -> Previsualizar. Puede editar la " "configuración de página\n" "utilizando Archivo -> Configurar página. Cuando esté imprimiendo y la " "plataforma lo soporte, puede \n" "elegir imprimir todos los elementos visibles en el visor activo, o sólo los " "\n" "elementos seleccionados." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Siguiente, elija el formato en el que desea exportar y si\n" "desea exportar todos los elementos visibles o sólo los seleccionados. Los " "formatos disponibles\n" "para exportar incluyen el CSV (formato separado por comas), HTML y " "iCalendar. Cuando\n" "exporte a HTML, se creará un fichero CSS que puede editar para cambiar\n" "la apariencia del HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Atributos personalizados para tareas de correo" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Un sólo usuario, abriendo el archivo de tareas en varias computadoras\n" "(trabajo, casa, laptop)" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Varios usuarios trabajando en el mismo archivo de tareas" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Programas de correo electrónico soportadas incluyen:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Correo Claws" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Debido a una limitación de Thunderbird, no puede arrastrar y soltar varios\n" "correos electrónicos desde Thunderbird. Esto no aplica a Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" "Hay dos maneras de adjuntar un correo electrónico a una tarea; puede:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Sueltelo en una tarea en el árbol de tareas o en la lista de tareas." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Soltarlo en el panel de adjuntos en el editor de tarea." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Soltar un correo electrónico en una parte vacía del árbol de tareas o lista " "de tareas\n" "crea una nueva tarea. Su asunto es el asunto del correo electrónico, su\n" "descripción es su contenido. Además, el correo es automáticamente\n" "adjuntado a la tarea recién creada." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML es un protocolo XML diseñado para sincronizar múltiples\n" "aplicaciones con un servidor. Un servidor popular de código libre es Funambol. Hay " "disponible \n" "clientes de sincronización para muchos dispositivos y aplicaciones (Outlook, " "Pocket PC,\n" "iPod, iPhone, Evolution, etc...), así como los llamados \"conectores\"\n" "los cuales permiten al servidor sincronizar con Exchange, Google Calendar,\n" "etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s tiene integrado soporte client SyncML para Windows y Mac OS X\n" "(siempre que utilice los binarios suministrados). Esto significa que puede\n" "configurar %(name)s para sincronizar con el mismo servidor SyncML con el " "que\n" "sincroniza Outlook, y tener todas las tareas y notas del Outlook en\n" "en su fichero %(name)s, así como las tareas y notas de %(name)s en Outlook. " "O\n" "en su Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Esta característica es opcional y está desactivada por defecto. Para " "activarla,\n" "vaya a la ventana de preferencias y compruebelá en la página de " "Características." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Para configurar SyncML, edite la configuración de SyncML en " "Editar/configuración \n" "SyncML. Cumplimente la URL de sincronización, su ID en el servidor y elija \n" "que elementos desea sincronizar (tareas y/o notas). La URL depende del " "servidor\n" "que elija; algunos ejemplos son:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Los nombre de la base de datos son bastante estándares; los valores por " "defecto \n" "deberían funcionar." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Cada fichero de tarea tiene su propio ID de cliente, por lo que dos ficheros " "de tareas \n" "diferentes serán considerados \"dispositivos\" diferentes por el servidor." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Algunas limitaciones son debidas al hecho que, los tipos de datos \n" "subyacentes son vcalendar, algunas características de %(name)s no pueden ser " "presentadas al\n" "servidor." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" "La jerarquía de tareas y categorías no son soportadas por el servidor." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Las repeticiónes y los recordatorios no están soportados aún." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" "Tenga en cuenta que las categorías no son soportadas por el servidor." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Probablemente algunas más..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Los elementos del menú SyncML sólo están disponibles si su plataforma está \n" "soportada. Las plataformas soportadas actualmente son:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (compruebe abajo)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 y posterior, Intel y PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Puede experimentar problemas bajo Windows si no tiene el\n" "runtime de Microsoft Visual 8 instalado. Puede descargarlo en el\n" " sítio de descargas de Microsoft." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Cuando se activa SyncML borrar una tarea o una nota no la borra\n" "realmente, más bien la marca como borrada. La tarea o nota borrada es " "realmente\n" "eliminada de la lista de tareas o notas en la siguiente sincronización. Por " "esta razón,\n" "si por casualidad utiliza la característica SyncML y la deshabilita sin " "realizar una \n" "sincronización, puede que se queden algunas tareas o notas borradas en su " "fichero de tareas. Esto no es \n" "un problema, pero utiliza un poco más de espacio en disco." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "En este caso, el elemento de menú \"Purgar elementos eliminados\" en el menú " "Archivo \n" "puede ser utilizado en realidad para esas tareas. Está sólo activado cuando " "lo\n" "necesita, es decir cuando hay elementos para purgar. Tenga en cuenta que " "después de hacer esto,\n" "si vuelve a activar SyncML y realiza una sincronización con mismo servidor " "que ha utilizado\n" "anteriormente, todos esos elementos reapareceran, ya que el servidor\n" "no sabe que han sido eliminados." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch y iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s en el iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Existe una aplicación para iPhone/iPod Touch/iPad para %(name)s, \n" "disponible en la Apple's AppStore. (Si no tiene instalado iTunes en \n" "su ordenador, se le mostrará una página donde puede descargar iTunes). \n" "Soporta las siguientes características:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Atributos básicos de tarea: asunto, descripción, fechas (con \n" "repetición)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Tareas y categorías jerárquicas" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Seguimiento de tiempo" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Multiples ficheros de tarea" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Sincronización bidirecciónal con %(name)s en el escritorio" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "La aplicación es universal y tiene un interfaz de usuario personalizado para " "iPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuración en el iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Existen algunas configuraciones para la app del iPhone/iPad Touch/iPad en la " "aplicación de Configuraciones:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Mostrar completadas: muestra las tareas completadas." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Mostrar inactivos: ya sea para mostrar las tareas inactivas (fecha prevista " "de inicio\n" "en el futuro)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Posición del icono: el icono LED puede mostrarse en la \n" "parte izquierda o en la parte derecha de la pantalla." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Modo compacto: si esto se activa, la lista de tareas tiene LEDs más \n" "pequeños y no muestra categorías o fechas." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirmar finalización: si se activa, se mostrará una ventana de información " "\n" "para confirmar cuando marque una tarea como completada pulsando su LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# dias para realizar en breve: Cuantos días en el futuro \n" "son considerados \"pronto\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configuración en el escritorio, todas las plataformas" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Antes de sincronizar, debe configurar también %(name)s en el \n" "escritorio; en las preferencias, en la pestaña \"Características\", marque " "\"Activar sincronización\n" "con iPhone\". Reinicie %(name)s. Ahora, en las preferencias, seleccione la\n" "pestaña \"iPhone\" y rellene por lo menos la contraseña." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Cuando pulse el botón \"Sincronizar\" en la vista de categoría, %(name)s\n" "detectará automáticamente instancias en funcionamiento de %(name)s en su\n" "escritorio y le pedirá que seleccione una (puede tener varias instancias\n" "funcionando en diferentes ordenadores de su red, o muchas instancias\n" "en el mismo ordenador). El nombre mostrado es, por defecto, algún texto\n" "que identifica el ordenador en el que está funcionando. Para personalizar " "esto, puede\n" "cambiar el \"Nombre del servicio Bonjour\" en la configuración." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s recordará la instancia seleccionada y la comproborará la próxima " "vez\n" "que sincronice; si no está funcionando, le volverá a preguntar de nuevo." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Observe que esta sincronización se realiza a través de la red; no existe \n" "necesidad de que el dispositivo esté conectado mediante USB y no hace falta\n" "que iTunes esté funcionando." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuración en Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "En Windows, debe instalar Bonjour para Windows y\n" "desbloquearlo cuando le sea preguntado por el cortafuegos." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuración en Linux." #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "En Linux, tiene que tener el demonio Avahi " "\n" "instalado y funcionando. La mayoría de distribuciones modernas lo tienen ya. " "Además \n" "debe instalar el paquete dnscompat; el nombre del paquete depende de su " "distribución \n" "(libavahi-compat-libdnssd1 en Ubuntu por ejemplo)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Parece que no puedo encontrar la app para iPhone/iPod Touch en la web \n" "de Apple." #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Necesita tener iTunes instalado en su ordenador para navegar \n" "por la App Store de Apple. Descargar \n" "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Mi ordenador no aparece en la lista cuando intento sincronizar" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Compruebe que su iPhone/iPod Touch esté conectado a la misma red \n" "que está su ordenador mediante WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "El iPhone no puede conectarse a mi ordenador" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Si tiene un cortafuegos, compruebe que los puertos 4096-4100 están abiertos." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt es un gestor de tareas de código abierto creado por Gina \n" "Trapani, que funciona con archivos de texto plano. Todo.txt tiene interfaz " "de linea de \n" "comandos. No obstante, si el formato del archivo es de texto plano, puedes " "editar tus \n" "tareas sin ningún editor de texto. Todo.txt Touch es una versión de Todo.txt " "para la \n" "plataforma Android. Todo.txt Touch usa un archivo todo.txt que se encuentra " "en tu\n" "carpeta Dropbox. %(name)s puede importar y exportarse a este archivo \n" "todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Las plantillas son modelos para nuevas tareas. Por ahora, la única propiedad " "\n" "de tarea que puede ser \"parametrizada\" son las fechas. Cuando se crea una " "instancia \n" "de plantilla, las fechas de la tarea creada son reemplazadas por las fechas " "relativas a la \n" "fecha actual." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Se puede crear una plantilla seleccionando una tarea (sólo una) y pulsando \n" "en el elemento del menú Fichero \"Guardar tarea como plantilla\". Todas las " "subtareas, notas y \n" "adjuntos serán parte de la plantilla. Sólo las categorías no son guardadas." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Por favor tenga en cuenta que este sistema no está\n" "internacionalizado; debes introducir las fechas en inglés." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Títulos y descripciones de tareas, notas y categorías pueden ser\n" "editadas sin abrir ventana de edición. Selecciona el item cuyo titulo o \n" "descripción quieres cambiar y haz click en el item de nuevo, en el titulo de " "la columna\n" "o en la descripción de la columna. Un control de texto aparecerá que " "permite \n" "cambiar el titulo o descripción. Dar para confirmar cambios. " "\n" "cancela los cambios. F2 es un atajo de teclado para editar el titulo." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s tiene varios atajos de teclado que se enlistan abajo. Los \n" "atajos no pueden ser configurados por el momento." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl+A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl+C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Mayús+Ctrl+C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl+D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Mayús+Ctrl+D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl+E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Mayús+Ctrl+E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl+F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl+H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl+I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Mayús+Ctrl+I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "+M" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "++M" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux y Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Mayús-Ctrl-N (Linux y Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Insertar nuevo subitem" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl+O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Mayús-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt+P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl+P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Mayús+Ctrl+P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl+Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Mayús-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl+S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Mayús+Ctrl+S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl+T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Mayús+Ctrl+T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl+V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Mayús+Ctrl+V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl+W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl+X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl+Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl+Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Editar las líneas seleccionadas o cerrar un díalogo" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Intro" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl+Intro" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Marcar la(s) tarea(s) (in)completas" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Cacela un diálogo o mueve el enfoque del teclado del control de búsqueda de " "nuevo al visor." #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Mover el enfoque del teclado al próximo campo del diálogo" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Mover el enfoque del teclado al campo anterior en del diálogo" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Mayús+Tabulador" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl+Tabulador" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" "Mover el enfoque del teclado a la próxima pestaña en un control de cuaderno" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" "Mover el enfoque del teclado a la pestaña anterior en un control de cuaderno" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Mayús+Ctrl+Tabulador" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "BORRAR" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERTAR (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "+INSERT" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl+AvPág" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl+RePág" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt+Abajo" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Menú emergente o caja de selección" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versión %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s se está desarrollando activamente. Aunque los desarrolladores " "%(name)s intentan evitarlos, los errores existen. Por ello, se recomienda " "encarecidamente realizar copias de resguardo de su trabajo." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s tiene ilimitada cantidad de deshacer y rehacer. Cualquier cambio " "que haga, ya sea una tarea de edición de la descripción, o la supresión de " "un registro de esfuerzo, se puede deshacer. Seleccione 'Edición' -> " "'deshacer' y 'Editción' -> 'Rehacer' para ir hacia atrás y hacia delante a " "través de la historia de edición." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s está disponible en diferentes idiomas. Seleccione 'Edición'-" ">'Preferencias' para ver si su idioma es uno de ellos. Si su idioma no está " "disponible o la traducción necesita mejorarse, por favor considere colaborar " "en la traducción de %(name)s. Visite %(url)s para obtener más información " "sobre como puede ayudar." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Si introduces una URL (p.e. %(url)s) en una tarea o en una descripción de " "esfuerzo, se crea un vínculo. Presionando sobre el vínculo se abre la URL en " "el navegador por defecto." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Puedes arrastrar y soltar tareas en la vista de árbol de tareas para " "reestructurar las relaciones entre btareas principales y secundarias. Lo " "mismo sucede para las categorías." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Puedes arrastrar archivos desde un explorador de archivos a la tarea para " "crear anexos. Arrastrando los archivos encimade la pestaña se presentará la " "página correspondiente, arrastrando los archivos encimade una tarea " "contraída en la vista de árbol de tareas (signo dentro de la caja), se " "expandirá para mostrar sus subtareas." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Puede crear cualqueir arreglo de visores que desee arrastrando y soltando " "las pestañas. El arreglo se guarda y se reusará en la próxima sesión." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Lo que se imprime cuando seleccionas 'Archivo' -> 'Impresión' depende de la " "vista actual. Si la vista actual muestra la lista de tareas, se imprimirá la " "lista de tareas, si la vista actual muestra el esfuerzo agrupado por mes, " "esto es loque se imprimirá. Lo mismo vale para las columnas visibles, el " "criterio de ordenación, las tareas filtradas, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Presione el encabezado de una columna con el botón izquierdo para ordenar " "por esa columna. Presione nuevamente para cambiar el orden entre ascendente " "y descendente. Presione el encabezado con el botón derecho para ocultar esa " "columna o volver visibles columnas adicionales." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Puede crear una plantilla a partir de una tarea, evitando así tener que " "introducir los datos que se repitan." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab cambia entre las pestañas en los dialogos de edición." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Consejo del día" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Siguiente consejo" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Agregar una nota a los elementos seleccionados" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Insertar una categoría nueva" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Cortar el(los) elemento(s) seleccionado(s) al portapapeles" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copiar el(los) elemento(s) seleccionado(s) al portapapeles" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Pegar elemento(s) desde el portapapeles" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Pegar elemento(s) del portapapeles como subelementos del actualmente " "seleccionado" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Editar preferencias" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Rehacer la última operación que fue deshecha" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Seleccionar todos los elementos de la vista actual" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Deshacer la última operación" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Añadir un periodo de actividad a las tareas seleccionadas" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Comenzar el seguimiento del esfuerzo para las tareas seleccionadas" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" "Detener el seguimiento de esfuerzo o resumir el seguimiento de esfuerzo" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Cerrar el fichero actual" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Salir %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Abrir un fichero %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Guardar el fichero actual" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Guardar el fichero actual con otro nombre" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Ayuda acerca del programa" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Insertar una nota nueva" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Abrir todos los adjuntos de los elementos seleccionados" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Abrir todas las notas de los elementos seleccionados" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Imprimir el archivo actual" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Configurar las características de la página de impresión" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Mostrar todos los items (reiniciar todos los filtros)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Mostrar todos los elementos sin importar la categoría" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Mover el enfoque del teclado del visor al control de búsqueda" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Disminuir la prioridad de la(s) tarea(s) seleccionada(s)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Aumentar la prioridad de la(s) tarea(s) seleccionada(s)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Poner la(s) tarea(s) seleccionada(s) como la(s) prioritaria(s)" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" "Establecer la(s) tarea(s) seleccionada(s) la(s) tarea(s) de prioridad más " "baja" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Insertar una tarea nueva" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Contraer todos los elementos y subelementos" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Expandir todos los elementos y subelementos" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activar el siguiente visor abierto" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activar el anterior visor abierto" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Un iPhone o un iPod Touch ha intentado conectar con Task Coach\n" "pero no tiene establecida una contraseña. Por favor, establezca una \n" "contraseña en la sección de configuración del iPhone e inténtelo de nuevo." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Versión del protocolo: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Versión %d del protocolo rechazada" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Nombre de dispositivo: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Enviando nombre de archivo: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Completo desde escritorio." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categorías" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Enviar categoría %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Respuesta: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tareas" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Enviar tarea %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d esfuerzos" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Enviar esfuerzo %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Finalizado." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nuevas categorías" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nuevas tareas" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nuevos esfuerzos" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d categorías modificadas" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d tareas modificadas" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d esfuerzos modificados" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d categorías eliminadas" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d tareas eliminadas" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d esfuerzos eliminados" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nueva categoría (padre: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Eliminar categoría %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modificar categoría %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nueva tarea %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Eliminar tarea %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modificar tarea %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Final de la sincronización de tareas." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Nuevo esfuerzo %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modificar esfuerzo %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Enviando GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "No se pudo encontrar directorio de datos de Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "No se pudo encontrar el perfil de Thunderbird." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Ninguna sección por defecto en profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Por favor ingresar el dominio para el usuario %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "No se pudo seleccionar la bandeja de entrada \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Hora de comienzo planificada" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Tiempo atrasado" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Plazo de terminación" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "recordatorio de tiempo" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Hora de fin del período" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Hora de inicio del periodo" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Sin asunto" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nueva tarea para hoy" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nueva tarea para mañana" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d días" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 día" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Cada %(frequency)d días" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Cada %(frequency)d semanas" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Cada %(frequency)d meses" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Cada %(frequency)d años" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Cada dos días" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Cada dos semanas" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Cada dos meses" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Cada dos años" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Ayer" #: taskcoachlib/render.py:284 msgid "now" msgstr "ahora" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "La sincronización de la fuente %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "se actualizarán datos desde el servidor. Todos los\n" "elementos locales se borrarán. ¿Quiere continuar?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "se actualizarán datos desde el cliente. Todos los\n" "elementos remotos se borrarán. ¿Quiere continuar?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sincronización" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Sincronizando. Por favor espere.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d elementos añadidos\n" "%d elementos actualizados\n" "%d elementos borrados." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Ha ocurrido un error durante la sincronización.\n" "Código de error: %d; mensaje: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Primero debe editar las opciones de SyncML, en Edit/SynckML preferencias." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Cambio de Panel" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restaurar %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Vista previa del panel" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Cerrar" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Cerrar todos" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "Siguie&nte" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Previo" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "Ventana" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Editar" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d semanas" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d horas" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Clase de período mostrado y cantidad" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Mes" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientación del calendario" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "¿Qué tareas para mostrar" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tareas con una fecha prevista de inicio y una fecha de vencimiento" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tareas con una fecha de inicio prevista" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tareas con una fecha de vencimiento" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Todas las tareas" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Todas las tareas, con excepción de las tareas no planificadas" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Dibujar una línea mostrando la hora actual" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Color usado para resaltar el día actual" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Todos los archivos(*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Encabezados" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Contraseña:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Guardado en llavero" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Por favor, introduzca su contraseña." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Por favor, introduzca su contraseña" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Mayúsculas y minúsculas exactas" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Verificar el tipo de letra cuando se filtre" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Incluir sub elementos." #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" "incluir subitems de items coincidentes en los resultados de la búsqueda" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Buscar también en la descripción" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Buscar tanto en asunto como en descripción" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Expresión ®ular" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Esta expresión regular no es válida." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Por defecto, buscando en subcadenas." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Búsquedas recientes" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "No se puede buscar en este visor" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Advertencia de compatibilidad" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "La característica SyncML está deshabilitada, porque el módulo no pudo " "cargarse. Esto podría deberse a que su plataforma no está soportada, o bajo " "Windows,que podrían faltar algunas DLL necesarias. Por favor consulte la " "sección sobre SyncML de la ayuda en línea para más detalles (sección " "\"Troubleshotting\")" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Nunca más mostrar este cuadro de diálogo" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Error al abrir la URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Borrar\tDEL" taskcoach-1.4.3/i18n.in/et.po000066400000000000000000005053161265347643000156370ustar00rootroot00000000000000# Estonian translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: et\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s faili viga" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Lisa manus" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Uus lisatud fail" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopeeri" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Kustuta" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Lõika" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Aseta" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Uus kategooria" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Uus alamkategooria" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Uus märkus" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Uus alammärkus" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Uus ülesanne" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Uus alamülesanne" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Alusta jälgimist" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Lõpeta jälgimine" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Vähenda tähsust" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Tõsta tähtsust" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Vöhenda tähtsust" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Viga %s.ini salvestamisel:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Viga salvestamisel" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Ava manus" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Ära lükka edasi" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Uus ülesanne..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Kirjeldus" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Pealkiri" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Tähtsus" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Sirvi" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Asukoht" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Kuupäevad" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Tähtaeg" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Lõpetamise kuupäev" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Meeldetuletus" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Korduvus" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Kasuta rakenduse vaikimisi seadeid" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ei" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Jah" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Märgi ülesanne lõpetatuna, kui kõik alamülesanded on lõpetatud?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Eelarve" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Kulutatud aeg" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Eelarvest järgi" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Tunnitasu" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Kindlaksmääratud tasu" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Tulu" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategooriad" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Manused" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Märkmed" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Muuda ülesannet" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Ülesanne" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Alusta" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Lõpeta" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "(puudub)" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Iga päev" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Iga kuu" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Iga nädal" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Iga aasta" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "päev(a)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periood," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Loobu" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Failid" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Akna käiumine" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Alati" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Mitte kunagi" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Kontrolli käivitumisel %(name)s uue versiooni olemasolu" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Pane jõupingutuse jälgimisel kell tööribal tiksuma" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Keel" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Ei leidnud keelt?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Redaktor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Meeldetuletuse kuupäev/aeg" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Lükka edasi" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Kasutajanimi/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Ülesannete andmebaasi nimi" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Aeglane" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Juurdepääs" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Teavita mind uutest versioonidest." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV failid (*.csv)|*.csv|Tekstifailid (*.txt)|*.txt|Kõik failid (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Ava" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Ühenda" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sünkorniseerimine on lõpetatud" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Sünkroniseerimise staatus" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fail" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Muuda" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Vaade" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Abi" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Vali" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sorteeri" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "Veeru&d" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "T&ööriistariba" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Näita/peida staatuseriba" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Staatuse&riba" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "Ül&esanne" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "Kategooria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "Märkus" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Peida" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Peida tööriistariba" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Väikesed pildid" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Tähtsus" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Leht" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Ava %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "Ühe&nda..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Salvesta\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Printimise eelvaade" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Võta tagasi" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Tee uuesti" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopeeri\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Nimeta vaade ümber..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Nimeta valitud vaade ümber" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Vaate uus nimi:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Nimeta vaade ümber" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Uus &alamülesanne..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Viga manuse avamisel" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "Lis&atud failid" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sorteeri ülesandeid pealkirja järgi" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sorteeri ülesandeid kuupäeva järgi" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Lõpetamise kuupäev" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sorteri ülesandeid kordumise järgi" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "Ko&rdumine" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sorteeri ülesandeid eelarve järgi" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Eelarve" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Ee&larvet järgi" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sorteeri ülesandeid tähtsuse järgi" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Tunnitasu" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Meelespea" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Pealkiri" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sorteeri märkmeid kategooriate järgi" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Märkmed: %d valitud, %d kokku" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Staatus: pole määratud" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Ülesanded: %d valitud, %d nähtavad, %d kokku" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Ülesanded" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Kuupäevad" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Lisa uus kategooria" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Muuda seadistusi" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Sulge käesolev fail" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Ava %s fail" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Salvesta käesolev fail" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Lisa uus märkus" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Prindi käesolev fail" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Lisa uus ülesanne" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "praegu" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sünkroniseerimine" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d kirjet lisatud.\n" "%d kirjet uuedatud.\n" "%d kirjet kustutatud." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Kõik failid (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Hiljutised otsingud" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/eu.po000066400000000000000000005013261265347643000156350ustar00rootroot00000000000000# Basque translation for taskcoach # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Basque \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: eu\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Ezin da TaskCoach.ini-tik konfigurazioa kargatu:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s fitxategi akatsa" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Eranskin berria" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopiatu" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Ezabatu" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Ebaki" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Itsatsi" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Zeregin berria" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "" #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Deskribapena" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Gaia" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Lehentasuna" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Iraungipen-data" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ez" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Bai" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Eranskinak" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Oharrak" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Egunero" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Hilero" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Astero" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Urtero" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Fitxategiak" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Beti" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Inoiz ez" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Hizkuntza" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editorea" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Txertatu zeregin berria" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/fa.po000066400000000000000000006236161265347643000156210ustar00rootroot00000000000000# Persian translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-10-29 07:18+0000\n" "Last-Translator: Marhoomagha \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: fa\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "خطا! لطفاً فایل \"taskcoachlog.txt\" واقع در پوشه \"My Documents\" را مطالعه " "فرمایید." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "خطا" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "خطاهایی روی داده است. لطفا \"%s\" را مشاهده نمایید." #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "ناتواني در بارگذاري تنظيمات از فايل TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "\"%s\" خطای فایل" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "مدیریت فعالیت ها" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" به بالاترین رتبه تبدیل شد زیرا موقعیت منبع آن پاک گردیده است." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "ويرايش مكان ضميمه ها" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "ويرايش مكان ضميمه \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "افزودن ضمیمه" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "افزودن ضميمه به \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "ضمیمه‌ی جدید" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "حذف ضميمه" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "انتقال ضميمه به \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "کپی" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "كپي كردن \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "حذف" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "حذف\"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "برش" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "برش \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "چسباندن" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "چسباندن \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "چسباندن به عنوان زیرآیتم" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "چسباندن به عنوان زیرآیتم \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "کشیدن و رها کردن" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "كشيدن و رها كردن \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "ويرايش موضوعات" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "ويرايش موضوع \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "ويراش توصيفات" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "ويرايش توصيفات \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "تغییر آیکون ها" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "تغيير آيكون \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "تغییر فونت ها" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "تغيير فونت \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "تغيير رنگ هاي پيش زمينه" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "تغيير رنگ 1پيش زمينه \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "تغییر رنگ های پیش زمینه" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "تغيير رنگ پس زمينه \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "تعویض دسته" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "تعویض دسته\"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "دسته‌ی جدید" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "زيردسته هاي جديد" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "زيردسته جديد براي \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "زيردسته جديد" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "ويرايش زيردسته هاي انحصاري" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "ويرايش زيردسته انحصاري براي \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "حذف دسته ها" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "حذف دسته \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "تغييرمكان دسته ها" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "تلاش جديد" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "تلاش جديد براي \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "حذف تلاش ها" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "حذف تلاش \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "تغییر فعالیت تلاش" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "تغییر فعالیت تلاش \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "تغییر زمان و تاریخ آغاز تلاش" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "تغییر زمان و تاریخ آغاز تلاش \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "تغییر زمان و تاریخ پایان تلاش" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "تغییر زمان و تاریخ پایان تلاش \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "یادداشتِ جدید" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "ایجاد زیر یادداشت" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "ایجاد زیر یادداشت \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "ريزيادداشت جديد" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "حذف یادداشت" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "حذف یادداشت \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "کشیدن و رها کردن یادداشت ها" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "کشیدن و رها کردن یادداشت \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "افزودن يادداشت" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "افزودن يادداشت به \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "افزودن ريزيادداشت(يادداشت جزئي)" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "افزودن ريزيادداشت(يادداشت جزئي) به \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "برداشت يادداشت" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "برداشت يادداشت از \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "کشیدن و رها کردن وظیفه ها" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "حذف فعالیت" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "حذف فعالیت \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "تکلیف جدید" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "ایجاد زیر فعالیت" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "ایجاد زیر فعالیت \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "ایجاد زیر فعالیت" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "اعلان تکمیل فعالیت" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "اعلان تکمیل فعالیت \"%s\"" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "فعال کردن فعالیت" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "فعال کردن فعالیت \"%s\"" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "غیر فعال کردن فعالیت" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "غیر فعال کردن فعالیت \"%s\"" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "آغاز پیگردی" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "آغاز پیگردی \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "توقف پیگردی" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "توقف پیگردی \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "حداکثر کردن اولویت" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "حداکثر کردن اولویت \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "حداقل کردن اولویت" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "حداقل کردن اولویت \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "افزایش اولویت" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "افزایش اولویت \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "کاهش اولویت" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "کاهش اولویت \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "تغییر اولویت" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "تغییر اولویت \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "اضافه کردن پادداشت به فعالیت" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "تغییر رمان آغاز برنامه ریزی شده" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "تغییر رمان آغاز برنامه ریزی شده \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "تغییر زمان سررسید" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "تغییر زمان سررسید \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "تغییر زمان آغاز واقعی" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "تغییر زمان آغاز واقعی \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "تغییر زمان تکمیل" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "تغییر زمان تکمیل \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "تغییر زمان باقیمانده" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "تغییر زمان باقیمانده \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "تغییر بازرخداد" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "تغییر بازرخداد \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "تغییر درصد تکمیل \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "تغییر زمان اعلان تکمیل فعالیت" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "تغییر زمان اعلان تکمیل فعالیت \"%s\"" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "تغییر بودجه" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "تغییر بودجه \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "تغییر هزینه ساعتی" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "تغییر هزینه ساعتی \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "تغییر هزینه ثابت" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "تغییر هزینه ثابت \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "تعویض پیش شرایط" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "تعویض پیش شرایط \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "خطا در زمان خواندن %s-%s تنظیمات از %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "این مقدار است : %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "خطا است : %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s استفاده خواهد شد مقدار دیفالت برای تنظیمات و باید به صورت معمول پردازش " "شود." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "خطا در تنظیمات" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "خطا در زمان ذخیره سازی %s.ini\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "ذخیره‌ کردن خطا" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "پیغام اپلیکیشن ایمیل" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "ایجاد ضمیمه..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "درج ضمیمه جدید" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "بازکردن ضمیمه" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "باز کردن ضمیمه‌های انتخابی" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "۵ دقیقه" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "وقت را تلف نکنید." #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "۱۰ دقیقه" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "۱۵ دقیقه" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "۲۰ دقیقه" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "۳۰ دقیقه" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "۱.۵ ساعت" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "۴۵ دقیقه" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "۱ ساعت" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "۲ ساعت" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "۳ ساعت" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "۴ ساعت" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "۱۲ ساعت" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "۶ ساعت" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "۸ ساعت" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "۱۸ ساعت" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "۲۴ ساعت" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "۴۸ ساعت" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "۷۲ ساعت" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "۲ هفته" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "۱ هفته" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "مجموع" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "مجموع برای %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&تلاش جدید...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "فعالیت‌های غیر فعال" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "مخفی کردن فعالیت‌های &غیر فعال" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "فعالیت‌های غیر فعال: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "نمایش/عدم نمایش وظیفه های غیرفعال ( وظیفه های تکمیل نشده بدون زمان واقعی " "شروع )" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "فعالیت‌های تاخیر دار" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "مخفی کردن فعالیت‌های &تاخیر دار" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "فعالیت‌های تاخیر دار: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "نمایش / عدم نمایش وظیفه های عقب افتاده" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "فعالیت‌های فعال" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "فعالیت‌های فعال: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "مخفی کردن فعالیت‌های &فعال" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "نمایش / عدم نمایش وظیفه های فعال ( وظیفه های تکمیل نشده با زمان شروع واقعی " "در گذشته )" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "فعالیت‌های تعجیل دار" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "فعالیت‌های تعجیل دار: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "مخفی کردن فعالیت‌های &تعجیل دار" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "نمایش / عدم نمایش وظیفه های آینده ( وظیفه های تکمیل نشده با زمان آغاز در " "اینده )" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "فعالیت‌های سرموقع" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "مخفی کردن فعالیت‌های &سرموقع" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "فعالیت‌های سرموقع: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "نمایش / عدم نمایش وظیفه های تمام شده ( وظیفه های تکمیل نشده با موعد مقرر در " "گذشته )" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "فعالیت‌های تکمیل شده" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "فعالیت‌های تکمیل شده: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "مخفی کردن فعالیت‌های &تکمیل شده" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "نمایش/مخفی کردن فعالیت‌های تکمیل شده" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&ایجاد فعالیت..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "فلش رو به پایین" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "فلش رو به پایین با وضعیت" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "فلش های آبی با تکرار" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "فلش های سبز با تکرار" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "فلش رو به بالا" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "فلش رو به بالا با وضعیت" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "بمب" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "کتاب" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "کتاب ها" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "جعبه" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "کفشدوزک" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "کیک" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "ماشین حساب" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "تقویم‌" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "گربه" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "سی دی" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "نمودارها" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "چت کردن" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "چک مارک" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "چک مارک ها" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "ساعت" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "ساعت هشدار" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "ثانیه‌شمار" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "چرخ دندانه دار" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "چرخ های دندانه دار" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "کامپیوتر رومیزی" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "لپ تاپ" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "کامپیوتر دستی" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "صلیب سرخ" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "مرگ" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "سند" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "زمین آبی" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "زمین سبز" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "پاکت" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "پاکتها" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "پوشه آبی" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "پوشه آبی کمرنگ" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "پوشه سبز" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "پوشه خاکستری" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "پوشه نارنجی" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "پوشه بنفش" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "پوشه قرمز" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "پوشه زرد" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "پوشه آبی با فلش" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "قلب" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "قلب ها" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "خانه سبز" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "خانه قرمز" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "کلید" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "کلیدها" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "لامپ" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "علامت سئوال" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "اطلاعات" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "نور آبی" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "نور آبی روشن" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "نور آبی خاکستری" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "نور سبز" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "نور سبز کمرنگ" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "نور نارنجی" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "نور بنفش" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "نور قرمز" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "نور زرد" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "حلقه زندگی" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "قفل بسته" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "قفل باز" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "ذره بین" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "پیانو" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "نت موسیقی" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "یادداشت" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "پالت" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Paperclip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "مداد" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "شخص" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "مردم" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "شناسایی" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Person talking" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "نشانه خطر" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "منفی" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "جمع" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "ستاره قرمز" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "ستاره زرد" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "ترافیک سبک" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "سطل آشغال" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "آذرخش" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "چتر" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "تا کمی ابری" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "آچار" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "بدون آیکون" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "فایل" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "تاریخ" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "بازیابی" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "بستن" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "مسیر بازیابی را انتخاب کن" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "پیغام از %s توسعه دهندگان" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "دیدن :" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "شرح" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "ویرایش برای تغییر تمامی موضوعات" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "موضوع‌" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "ویرایش برای تغییر تمامی توضیحات" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "تاریخ ایجاد" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "تاریخ ویرایش" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "اولویت" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "دو به دو ناسازگار" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "زیرشاخه ها" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "ویرایش برای تغییر تمامی ضمیمه ها" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "انتخاب" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "موقعیت" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "ظاهر" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "رنگ پیش‌زمینه" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "رنگ پس‌زمینه" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "فونت" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "آیکون" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "تاریخ ها" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "تاریخ شروع برنامه ریزی" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "تاریخ مقرر" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "تاریخ شروع واقعی" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "تاریخ انجام" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "یادآوری" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "تکرار" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "پیشرفت" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "درصد تکمیل" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "استفاده از تنظیمات گسترده نرم افزار" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "خیر" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "بله" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "آیا زمانیکه تمام زیر فعالیت‌ها تکمیل شدند این فعالیت را تکمیل شده اعلان شود؟" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "بودجه" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "زمان صرف شده" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "بودجه باقی مانده" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "هزینه ساعتی" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "هزینه ثابت" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "درآمد" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "تلاش" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "دسته بندیها" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "ضمیمه‌ها" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "یادداشت‌ها" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "پیش نیازها" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "ویرایش وظیفه" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "تکلیف" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "شروع" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "هفته" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "روز" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "ساعت" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "دقیقه" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "توقف" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "شروع پیگیری از آخرین زمان توقف" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "توقف پیگیری" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "اخطار : شروع باید زودتر از توقف باشد" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "وظایف چندگانه" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (وظیفه)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "دسته بندی های چندگانه" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (دسته)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "یاداشت های چندگانه" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (یادداشت)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "ضمیمه های چندگانه" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (ضمیمه)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "تلاش های چندگانه" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (تلاش)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "استفاده از فونت :" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "استفاده از رنگ :" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "هیچ‌کدام" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "روزانه‌" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "ماهانه" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "هفتگی‌" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "سالانه" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "، هر" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "توقف بعد از" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "بازگشت" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "برنامه ریزی هر رویداد مجدد بر اساس" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "آخرین تاریخ تکمیل" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "روز(s)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "مدت ،" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "هفته(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "ماه(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "سال(s)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "خروجی آیتم ها از :" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "خروجی گرفتن از آیتم های انتخاب شده" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "ستون ها برای خروجی گرفتن" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "قرار دادن تاریخ و زمان در ستون های جداگانه" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "نوشتن استایل در یک فایل جداگانه" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "برون‌ریزی با فرمت CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "خروجی به صورت iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "خروجی گرفتن به html" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "خروجی به Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "تازه سازی از دسکتاپ" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "تازه سازی از دستگاه" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "لغو" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "شما همگام سازی با آیفون را فعال کرده اید در حالی که\n" "به بونژور نیاز است ، بونژور بر روی سیستم شما \n" "نصب نمیباشد." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "لطفا بونژور را دانلود و نصب کنید از\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "سایت اپل" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "شما میتوانید از توزیع خود آگاه شوید در اینجا" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "اگر شما فایروال دارید از باز بودن پورت های 4096-4100 مطمئن شوید." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "تأیید" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "این تنظیمات بعد از رستارت کردن نرم افزار اعمال خواهند شد %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "پرونده‌ها" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "ذخیره در هر بار تغییر" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "نوشتن تنظیمات (%s.ini) در همان\n" "دایرکتوری برنامه" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "For running %s from a removable medium" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "دایرکتوری ضمیمه ها" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "قبل از ذخیره کردن ، ایمپورت از" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt فرمت" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "موقع ذخیره کردن ، خروجی اتوماتیک به" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "رفتار پنجره" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "نمايش پرده اسپلاش در هنگام شروع" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "نمایش نکته ها در زمان شروع برنامه" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "همیشه" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "هرگز‌" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "چک کردن ورژن جدید %(name)s در زمان شروع برنامه" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "چک کردن پیغام %(name)s دولوپر در زمان شروع برنامه" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "مینیمایز کردن پنجره اصلی زمان بستن" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "زبان" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "اجازه به سیستم برای انتخاب زبان" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "اگر زبان شما موجود نبود ، یا ترجمه نیاز به بهین هشدن داشت ، لطفا به ما کمک " "کنید . ببینید :" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "زبان مورد نظر شما پیدا نشد ؟" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "ظاهر وظیفه" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "ویژگیها" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "تمامی این تنظیمات نیاز به ریستارت نرم افزار دارد %s تا اعمال گردند" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "فعال سازی SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "فعال سازی همگام سازی با آیفون" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "استفاده از X11 session management" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "شروع هفته کاری" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "دوشنبه" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "یکشنبه" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "ساعت شروع روز کاری" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "ساعت پایان روز کاری" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "پایان روز" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "استفاده از گرادینت در مشاهده تقویم\n" "این ممکن است باعث کاهش سرعت نرم افزار گردد" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "دقایق بین تایم های پیشنهادی" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "پیغام زمان بیکاری" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "نمایش پاپ آپ با توضیحات یک آیتم\n" "زمانی که ماوس روی آن می رود" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "تاریخ وظیفه" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "زمانیکه تمام زیر فعالیت‌ها تکمیل شدند این فعالیت پدر تکمیل شده اعلان می‌شود" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "هیچ‌چیز" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "تغییر تاریخ شروع پلن تغییر می دهد تاریخ مقرر را" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "تغییر تاریخ مقرر تغییر میدهد تاریخ پلن شروع را" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "پیش تنظیم" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "ارائه" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "امروز" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "فردا" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "پس فردا" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "جمعه بعدی" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "دوشنبه بعدی" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "آغاز روز" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "آغاز روز کاری" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "زمان فعلی" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "پایان روز کاری" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "تاریخ و زمان پلن شروع" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "زمان و تاریخ پیش فرض سررسید وظیفه" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "زمان و تاریخ پیش فرض شروع واقعی وظیفه" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "تاریخ و زمان پیشفرض اتمام کار" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "تازخ و زمان پیشفرض یادآوری" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "یادآورهای وظیفه" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "سیستم تذکر برای استفاده ی یادآورها" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "اجزاه به کامپیوتر برای گفتن یادآور" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "زمان پیش فرض استراحت برای استفاده بعد از یادآور" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "زمان استراحت برای پیشنهاد دادن در پنجره یادآور وظیفه" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "آی‌فون" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "پسورد برای همگام سازی با آیفون" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "زمان همگام سازی ، این رمز عبور را در آیفون وارد کنید" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "نام سرویس بونژور" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "آپلود وظیفه های تکمیل شده به دستگاه" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "نمایش لاگ همگام سازی" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "ویرایشگر" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "چک کردن خطاها در ادیتور" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "فونت مورد استفاده در فیلد توضیحات بخش ویرایش دیالوگ ها" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "os x" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "گرفتن موضوع ایمیل از mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "لینوکس" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "تمرکز بر موضوع وظیفه در ویرایشگر وظیفه" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s یادآور - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "زمان / تاریخ یادآور" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "خواب كوتاه" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "همچنین این زمان پیشفرض تعیین شود برای زمان استراحت یادآورهای آینده" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "علام کردن به عنوان تکمیل شده ( اتمام کار )" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "دلخواه" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "نام / شناسه کاربر" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "فعال سازی همگام کردن وظیفه ها" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "گرفتن نام دیتابیس" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "حالت همگام سازی مرجع" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "دو راه" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "آهسته" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "یک روش از کلاینت" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "تازه سازی از کلاینت" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "یک روش از سرور" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "تازه سازی از سرور" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "فعال سازی همگام کردن یادداشت ها" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "نام دیتابیس یادداشت ها" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "دسترسی" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "قالب وظیفه جدید" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "پیش نمایش" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "ابزار در دسترس" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "نمایش این ابزار در نوار ابزار" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "پنهان کردن این ابزار در نوار ابزار" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "ابزارها" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "بالا بردن ابزار ( به سمت چپ تولبار )" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "پایین بردن ابزار ( به سمت راست تولبار )" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "دوباره چیدن دکمه های تولبار با کسیدن و رها کردن آنها در لیست" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "جداکننده" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "فاصله‌انداز" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "خبر دادن به من در صورت وجود نسخه جدید" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "ورژن جدید %(name)s موجود است" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "شما در حال استفاده از %(name)s ورژن هستید %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "ورژن %(version)s %(name)s موجود است از" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s بروز می باشد" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s بروز می باشد در ورژن %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "ورژن جدید پیدا نشد" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "ناتوان در پیدا کردن اینکه کدام نسخه از %(name)s آخرین نسخه می باشد." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "نسخه ماقبل انتشار" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" "شما در حال استفاده از %(name)s در نسخه ماقبل انتشار هستید %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "آخرین ورژن %(name)s است %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "هشدار" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "نمایش ندادن این دیالوگ در شروع برنامه" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "هیچ کاری انجام نده" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "توقف در %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "توقف در %s و ادامه دادن ، هم اکنون" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "هشدار" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s files (*.tsk)|*.tsk|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar files (*.ics)|*.ics|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML files (*.html)|*.html|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "باز کردن" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Loaded %(nrtasks)d tasks from %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "ناتوان در باز کردن %s چون وجود ندارد ." #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "ادغام" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "ناتوان در باز کردن %(filename)s\n" "چون قفل شده است." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Merged %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "ذخیره به عنوان" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "ذخیره انتخاب شده" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "ناتوان در ذخیره %s\n" "It is locked by another instance of %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "ناتوان در ذخیره %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "واردسازی قالب" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s template files (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "ناتوان در واردسازی قالب %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "خروجی گرفته شده %(count)d ایتم ها به %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "پایان همگام سازی" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "وضعیت همگام سازی" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "ناتوان در باز کردن %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "فایل با نام %s قبلا ایجاد شده است.\n" "آیا میخواهید جایگزین کنید ؟" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "تغییراتی برای ذخیره کردن دارید\n" "آیا میخواهید قبل از بستن ، ذخیره کنید ؟" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: ذخیره تغییرات?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: فایل قفل شده است" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "بسته شده %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "ناتوان در باز کردن %(filename)s\n" "چون آن با نسخه جدیدی از %(name)s. ساخته شده است\n" "لطفا %(name)s. را بروزرسانی کنید" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "خطا زمان خواندن %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "در حال همگام سازی..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "همگام سازی با %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "به %(name)s ورژن %(version)s خوش آمدید" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s خطای تنظیمات" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "آیفون / آیپد" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "نوع همگام سازی" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "فایل" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&ویرایش" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&نما‌" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&جدید‌" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&کنش ها" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&راهنما" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&واردسازی" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&خارج کردن" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&انتخاب" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&بیننده جدید" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&فعال کردن بیننده جدید\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&حالت" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&فیلتر" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&چیدمان" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&ستون ها" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&رند کردن" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&تنظیمات لیست درختی" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "ت&ولبار" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "نمایش / مخفی کردن نوار وضعیت" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "نوار&وضعیت" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&وظیفه" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "باز کردن زبانه جدید با یک بیننده که وظیفه ها را نمایش می دهد" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "باز کردن زبانه جدید با یک بیننده که وضعیت وظیفه ها رو نمایش می دهد" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&تقویم" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "باز کردن یک زبانه جدید با یک بیننده که وظیفه ها را در تقویم نمایش می دهد" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&دسته بندی" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "باز کردن زبانه جدید با یک بیننده که دسته بندی را نمایش می دهد" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&تلاش" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "باز کردن یک زبانه جدید با یک بیینده که تلاش ها را نمایش می دهد" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "باز کردن یک زبانه جدید با یک بیننده که تلاش های یک وظیفه انتخاب شده را نمایش " "می دهد" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&یادداشت" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "باز کردن یک زبانه جدید که یادداشت ها را نمایش می دهد" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&مخفی کردن" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "عدم نمایش تولبار" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&عکس های کوچک" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "عکس کوچک ( 16*16 ) در تولبار" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&عکس های متوسط" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "عکس های متوسط ( 22*22 ) در تولبار" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&عکس های بزرگ" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "عکس های بزرگ ( 32*32 ) در تولبار" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "وظیفه جدید از &قالب ها" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&نمایش شاخه" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&شروع پیگیری تلاش" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategories)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtasks)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&اولویت" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "صفحه" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s یادآور" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d وظایف سررسیده" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "پیگیری \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&باز کردن...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "باز کردن %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&ادغام کردن..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "ادغام وظایف از یک فایل دیگر با فایل کنونی" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&بستن\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&ذخیره\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "ذخیره وظیفه انتخاب شده در یک فایل جداگانه" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "ذخیره وظیفه انتخاب شده بع عنوان &قالب" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "ذخیره وظیفه انتخاب شده به عنوان قالب وظیفه" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&واردسازی قالب..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "واردسازی قالب جدید از فایل قالب" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "ویرایش قالب ها ..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "ویراش قالب های موجود" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "ویرایش قالب ها" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&پالایش آیتم های حذف شده" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&تنظیمات صفحه...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&پیش نمایش پرینت..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "پیش نمایش چگونگی نمایش در صورت پرینت شدن" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "پیش نمایش چاپ" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&پرینت...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "خروجی گرفتن &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "خروجی گرفتن آیتم از ببیننده به فرمت html" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "خروجی گرفتن &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "خروجی گرفتن آیتم ها با فرمت CSV" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "خروجی گرفتن به صورت &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "خروجی گرفتن آیتم ها با فرمت iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "خروجی گرفتن به صورت &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "خروجی گرفتن آیتم ها در فرمت iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&واردسازی CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "واردسازی وظیفه ها از یک فایل CSV" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "واردسازی CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "فایل انتخاب شده خالی می باشد . لطفا یک فایل دیگری را انتخاب کنید" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&واردسازی Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "واردسازی وظیفه ها از فایل Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "واردسازی Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&خروج\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&واگرد" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&پیش گرد" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&کپی\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&چسباندن\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&تنظیمات...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "تنظیمات" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "شخصی سازی تولبار" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "شخصی سازی" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&همه\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&پاک کردن انتخاب" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "از حالت انتخاب خارج کردن تمامی آیتم ها" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&حذف تمامی فیلترها\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&بازنشانی تمامی شاخه ها\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "نمایش / عدم نمایش آیتم های متعاق به %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&تغییر نام بیننده..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "تغییر نام بیننده انتخاب شده" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "عنوان جدید برای بیننده" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "تغییر نام بیننده" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&مخفی سازی ستون" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "مخفی سازی ستون انتخاب شده" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&باز کردن تمامی آیتم ها\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&بستن تمامی آیتم ها\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&صعودی" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "نمایش / عدم نمایش وظیفه ها با زیروظیفه در حالت لیست" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&ویرایش ...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "ویرایش آیتم انتخاب شده(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "ویرایش وظیفه کنونی پیگیری شده" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&حذف\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "حذف آیتم انتخاب شده(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "ایجاد وظیفه جدید از یک قالب" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "انتخاب وظیفه انتخاب شده(s) به عنوان فعال" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "علامت زدن وظیفه انتخاب شده(s) به عنوان غیرفعال" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "علامت زدن وظیفه انتخاب شده(s) به عنوان تکمیل شده" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&حداکثر اولویت\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&حداقل اولویت\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&افزایش اولویت\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&کاهش اولویت\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&ایمیل...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&ایمیل...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "چندین چیز" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "و" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "ناتوان در ارسال ایمیل:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s خطای ایمیل" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "باز کردن تمامی یادداشت ها...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&شروع پیگیری تلاش\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "شروع پیگیری تلاش برای وظیفه(s) تلاش انتخاب شده(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(No subject)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "شروع پیگیری تلاش برای %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "انتخاب وظیفه از منو و شروع پیگیری تلاش برای آن" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "توقف پیگیری یا ادامه پیگیری تلاش\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "توقف پیگیری تلاش برای وظیفه فعال(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&ادامه پیگیری %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "ادامه پیگیری تلاش برای آخرین وظیفه پیگیری شده" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "وظایف چندگانه" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "شاخه جدید...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "یادداشت جدید...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "قرادادن یک یادداشت جدید با شاخه انتخاب شده" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&افزودن ضمیمه...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "خطا در باز کردن ضمیمه" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&باز کردن تمامی ضمیمه ها...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&راهنمای کلی\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&راهنمای کلی\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "راهنما" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&نکته ها" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "نکته ها در مورد برنامه" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "گمنام" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "به اتمام رسیده" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&درباره ما %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "ورژن و اطلاعات تماس %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "درباره %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&لایسنس" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s لایسنس" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "بررسی برای وجود به روزرسانی" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "بررسی برای موجود بودن نسخه جدید %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "ناتوان در باز کردن آدرس:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s خطای آدرس" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&سوالات متداول" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "مشاهده سوالات متداول و جواب ها" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "گزارش یک &باگ..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "گزارش یک باگ یا مشاهده باگ های کشف شده" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "درخواست یک &امکان..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "درخواست یک امکان جدید یا امتیاز دادن به امکانات موجود" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "درخواست &پشتیبانی..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "درخواست پشتیبانی از توسعه دهنگان" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "کمک در &ترجمه..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "کمک در ترجمه %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&حمایت مالی..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "حمایت مالی و پشتیبانی %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&بازگرداندن" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "بازگرداندن پنجره به حالت قبلی" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "جستجو‌" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "جزئیات تلاش" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "تلاش به ازای روز" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "تلاش به ازای ماه" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "تلاش به ازای هفته" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "حالت ادغام" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "فهرست" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "درخت" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "زمانی که تیک زده شود ، وظیفه ها در حالت درختی نمایش داده میشوند ، در غیر این " "صورت ب هصورت لیست نشان داده خواهند شد" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "فیلتر روی تمامی شاخه های نتخاب شده" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&پیکربندی" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "تنظیم مشاهده گر تقویم" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&مدت بعدی" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "نمایش مدت بعدی" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&مدت قبلی" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "نمایش مدت قبلی" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&امروز" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "نمایش امروز" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&تغییراندازه اتوماتیک ستون" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "زمانی که تیک زده شود ، اندازه ستون ها اتوماتیک ست خواهند شد" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "یک دقیقه" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d دقیقه" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&رند کردن همیشگی" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "نوع" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "چیدن براساس موضوع" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "مو&ضوع" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "چیدمان براساس توضیحات" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&توضیحات" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&تاریخ ایجاد" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "چیدمان براساس تاریخ ایجاد" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&تاریخ ویرایش" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "چیدمان براساس آخرین تاریخ ویرایش" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "نمایش / عدم نمایش ستون توضیحات" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&یادداشت ها" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "نمایش / عدم نمایش ستون یادداشت ها" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "نمایش / عدم نمایش ستون زمان ایجاد" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "نمایش / عدم نمایش ستون آخرین تاریخ ویرایش" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "تولبار قابل ویرایش" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "روی آیکون چرخ کلیک کنید و تولبار را شخصی سازی کنید" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&ضمیمه ها" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "نمایش / عدم نمایش ستون ضمیمه ها" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "شاخه ها: %d انتخاب شده, %d جمع" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "وضعیت: %d فیلتر شده" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "دوره" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "جمع مدت زمان صرف شده" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "سه‌‌شنبه" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "چهارشنبه" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "پنج شنبه" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "جمعه" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "شنبه" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&شاخه ها" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "نمایش / عدم نمایش ستون شاخه ها" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&زمان صرف شده" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "نمایش / عدم نمایش ستون زمان صرف شده" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&بازده ( سود )" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "نمایش / عدم نمایش ستون بازده" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&زمان صرف شده" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "نمایش عدم نمایش ستون زمان صرف شده" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&جمع بازده" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "نمایش / عدم نمایش ستون جمع بازده" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "تلاش به ازای روز هفته" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "نماش / عدم نمایش ستون زمان صرف شده به ازای روز های هفته" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "چیدمان شاخه ها براساس موضوع" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "چیدمان شاخه ها براساس توضیحات" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "چیدمان شاخه ها براساس تاریخ ایجاد" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "چیدمان شاخه ها براساس تاریخ ویرایش" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "چیدمان ضمیمه ها براساس موضوع" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "چیدمان ضمیمه ها براساس توضیحات" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "چیدمان ضمیمه ها براساس شاخه" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "چیدمان ضمیمه ها براساس تاریخ ایجاد" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "چیدمان ضمیمه ها براساس تاریخ ویرایش" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "چیدمان یاداشت ها براساس موضوع" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "پیدمان یادداشت ها براساس توضیحات" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "چیدمان یادداشت ها براساس شاخه" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "چیدمان یادداشت ها براساس تاریخ ایجاد" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "چیدمان یادداشت ها براساس تاریخ آخرین ویرایش" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "چیدمان وظیفه ها براساس موضوع" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "چیدمان وظیفه ها براساس توضیحات" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "چیدمان وظیفه ها براساس شاخه" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "چیدمان وظیفه ها براساس تاریخ ایجاد" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "چیدمان وظیفه ها براساس تاریخ آخرین ویرایش" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "چیدمان وظیفه ها براساس تاریخ سررسید" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&تاریخ مقرر" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "چیدمان وظیفه ها براساس تاریخ تکمیل" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&تاریخ تکمیل" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "چیدمان وظیفه ها براساس زمان باقی مانده" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&زمان باقیمانده" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "چیدمان وظیفه ها براساس درصد پیشرفت" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&درصد پیشرفت" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "چیدمان وظیفه ها براساس بودجه" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&بودجه" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "چیدمان وظیفه ها براساس زمان صرف شده" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "بودجه &باقیمانده" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "چیدمان وظیفه ها براساس بودجه باقیمانده" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "چیدمان وظیفه ها براساس اولویت" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "چیدمان وظیفه ها براساس اجرت ساعتی" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&اجرت ساعتی" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "چیدمان وظیفه ها براساس اجرت ثابت" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&اجرت ثابت" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "چیدمان وظیفه ها براساس درآمد" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "چیدمان وظیفه ها براساس تاریخ و زمان یادآور" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&یادآور" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&موضوع" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "چیدمان یادداشت ها براساس شاخه ها" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "یادداشت ها: %d انتخاب شده, %d جمع" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "وضعیت: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "وظیفه ها: %d انتخاب شده, %d قابل دید, %d جمع کل" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "وظایف" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "خط زمانی" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "اکنون" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% تکمیل" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "زمان باقی مانده" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&تاریخ" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&تمامی ستون های تاریخ" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "نمایش / عدم نمایش تمامی ستون های مرتبط با تاریخ" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "نمایش / عدم نمایش تاریخ مقرر" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&زمان واقعی شروع" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "نمایش / عدم نمایش ستون زمان واقعی شروع" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "نمایش / عدم نمایش ستون تاریخ تکمیل" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "نمایش / عدم نمایش ستون زمان باقیمانده" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "نمایش / عدم نمایش ستون درآمد" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&تمامی ستون های بودجه" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "نمایش / عدم نمایش تمامی ستون های مرتبط با بودجه" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "نمایش / عدم نمایش ستون بودجه" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&بودجه باقیمانده" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "نمایش / عدم نمایش ستون بودجه باقیمانده" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&مالی" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&تمامی ستون های مالی" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "نمایش / عدم نمایش ستون های مرتبط مالی" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "نمایش / عدم نمایش ستون اجرت ساعتی" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "نمایش / عدم نمایش ستون اجرت ساعتی" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "نمایش / عدم نمایش ستون پیش نیازها" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "نمایش / عدم نمایش ستون درصد تکمیل شده" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "نمایش / عدم نمایش ستون ضمیمه" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "نمایش / عدم نمایش ستون اولویت" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "نمایش / عدم نمایش ستون یادآور" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "نمایش وظیفه به عنوان" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "آمار وظیفه" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "کاما" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "زبانه" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "فاصله" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "دونقطه" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "نقطه ویرگول" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "پایپ" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (month first)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "نقل قول ساده" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "واردسازی سطرهای ا نتخاب شده" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "جداساز" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "قالب تاریخ" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "لطفاً یک فایل انتخاب کنید." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "شناسه" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "دسته" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "تاریخ یادآوری" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "درصد تکمیل شده" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "هدر ستون در فایل csv" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s ویژگی" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "\"%s\" فیلد چندین بار نمیتواند انتخاب شود." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "فیلدها %s نمیتوانند چندین بار انتخاب شوند." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "جدول محتویات" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "درباره وظیفه ها" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "تنظیمات وظیفه" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "وضعیت وظیفه" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "رنگ وظیفه" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "یادآورها" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "درباره تلاش" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "تنظیمات تلاش" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "درباره شاخه ها" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "تنظیمات شاخه ها" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "درباره یادداشت" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "تنظیمات یادداشت ها" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "پرینت و خروجی گرفتن" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "درباره پرینت و خروجی گرفتن" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "چاپ" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "خروجی گرفتن" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "ادغام با ایمیل" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "درباره ادغام با ایمیل" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "ضمیمه کردن یک ایمیل به یک وظیفه" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "ایجاد یک وظیفه از یک ایمیل" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "تنظیمات" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "محدودیت" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "رفع مشکلات" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "آیفون و آیپد" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s در آیفون" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "پیکربندی" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "آندرویید" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s در آندرویید?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "واردسازی todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "خروجی گرفتن todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "قالب وظیفه" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "درباره قالب ها" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "استفاده از قالب ها" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "رابط کاربری" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "میانبرهای صفحه‌کلید" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "وظیفه ها تنظیمات زیر را دارند که شما میتوانید تغییر دهید" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "زمان تحویل : زمانی که باید وظیفه تحویل گردد. \n" "شما میتوانید زمانی را برای تحویل انتخاب نکنید." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "زمان شروع واقعی : زمانی که وظیفه واقعا استارت میخورد.\n" "زمان شروع واقعی میتواند ویرایش شود \n" "پیگیری تلاش برای وظیفه یا زمانی که شما درصد پیشرفت کار را مشخص میکنید\n" "مقدار بین 0 تا 100 درصد ." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "بودجه : مقدار ساعتی که برای وظیفه در دسترس است" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "اجرت ساعتی : مقدار دستمزدی که به ازای هر ساعت برای یک وظیفه دریافت میگردد ." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "اجرت ثابت: مقدار دستمزدی که کسب میشود \n" "به زاای زمانی که صرف میگردد." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "روزهای باقیمانده : شمار روزهایی که به تاریخ مقرر وظیفه باقی مانده." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "زمان صرف شده : تلاشی که روی وظیفه انجام شده" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "فعال : زمان شروع واقعی در گذشته ،" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "تکمیل شده : وظیفه تکمیل شده است." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "دیرشده : زمان مقرر در گذشته ،" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "اتمام بودجه : بودجه ای باقی نمانده" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "زیربودجه : هنوز بودجه موجود است" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "بدون بودجه : وظیفه هیچ بودجه ای ندارد." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "وظایف عقب افتاده قرمز هستند ،" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "وظایفی که تاریخ مقرر آنها نزدیک هست نارنجی هستند" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "وظایف فعال متن سایه رنگ و آیکون آبی دارند ،" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "وظایف دیر شده بنفش هستند ،" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "وظایف آینده خاکستری هستند و" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "وظایف تکمیل شده سبز هستند ." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "توضیحات : توضیحات مولتی لاین برای تلاش" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "زمان صرف شده : مقدار زمانی که شما روی وظیفه کار کرده اید." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "درآمد : مقدار پولی که براساس زمانی که صرف کرده اید بدست آورده اید ." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "تنظیمات یاداشت ها که شما میتوانید تغییر دهید :" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "موضوع : یک خط موضوع برای یادداشت" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "توضویحات : توضیحات چند خطی برای یادداشت." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "تنظیمات ظاهر اعم از آیکون ، فونت و رنگ" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "تاندربرد موزیلا" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "اوت لوک مایکروسافت" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "پست‌الکترونیکی Claws" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "ایمیل اپل" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "دو روش برای ضمیمه کردن ایمیل به یک وظیفه وجود دارد ، شما میتوانید :" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "آن را کشیده و در حالت درختی یا لیستی وظیفه رها کنید." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "آن را کشیده و در بخش ضمیمه های وظیفه در تنظیمات وظیفه رها کنید." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "ویندوز 32 بیت ( پایین را ببینید )" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "لینوکش ، 32 بیت" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "مک او .اس 10 یا بهتر" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "آیفون ، آیپاد لمسی یا آیپد" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s در آیفون/آیپاد لمسی/آیپاد" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "سلسه مراتب وظیفه ها و شاخه ها" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "پیگیری زمان" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "فایل وظیفه چندگانه" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "تنظمیات روی آیفون/آیپاد لمسی/آیپد" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "تنظیمات در دسکتاپ ، برای تمامی پلتفرم ها" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "تنظظیمات در ویندوز" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "تنظیمات در لینوکس" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "آیفون نمیتواند به کامپیوتر من متصل گردد" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "اگر شما فایروال دارید ، پورت های4096-4100 رو چک کنید تا باز باشند." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "لطفا توجه کنید این سیستم بومی سازی نشده است ، شما باید\n" "تاریخ ها را به صورت انگلیسی وارد کنید" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux and Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "قرار دادن زیرآیتم جدید" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "ویرایش آیتم های انتخاب شده یا بستم پنجره" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "ورود" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "علامت گذاری وطیفه انجام شده(s) (un) به عنوان تکمیل شده" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "خارج شدن" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "انتقال فوکوس کیبورد به فیلد بعدی در پنجره" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "انتقال فوکوس کیبورد به فیلد قبلی در پنجره" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "انتقال فوکوس کیبورد به زبانه بعدی در کنترل نوت بوک" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "انتقال فوکوس کیبورد به زبانه قبلی در کنترل نوت بوک" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "حذف" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "قرار دادن" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "منوی پاپ آپ یا باکس کشویی" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab سوییچ کردن بین زبانه ها در پنجره." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "نکته ی روز" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "نکته بعدی" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "نمایش نکته ها در زمان شروع برنامه" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "فایل مورد نظر را برای افزودن به عنوان ضمیمه به آیتم انتخاب شده انتخاب کنید" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "افزودن یادداشت به آیتم انتخاب شده(s)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "قرار دادن شاخه جدید" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "بریدن آیتم انتخاب شده(s) به کلیبورد" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "کپی آیتم های انتخاب شده به کلیبورد" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "چسباندن آیتم های انتخاب شده از کلیبورد" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "چسباندن ایتم های انتخاب شده از کلیبورد به عنوان زیرآیتم ، آیتم انتخاب شده" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "ویرایش تنظیمات" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "انتخاب تمامی آیتم هایی که دیده میشوند" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "بازگرداندن آخرین فرمان" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "شروع پیگیری تلاش برای وظیفه انتخاب شده" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "توقف پیگیری تلاش یا ادامه پیگیری تلاش" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "بستن پرونده‌ی فعلی" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "خروج %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "باز کردن یک %s فایل" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "ذخیره کردن پرونده کنونی" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "ذخیره کردن پرونده کنونی با اسمی دیگر" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "راهنمایی در مورد نرم افزار" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "ایمیل کردن آیتم انتخاب شده ، با استفاده از برنامه ایمیل دیفالت شما" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "قرار دادن یادداشت جدید" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "باز کردن تمامی ضمیمه های آیتم انتخاب شده" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "باز کردن تمامی یادداشت های آیتم انتخاب شده" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "چاپ پرونده‌ی جاری" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "نمایش تمامی آیتم ها ( ریست کردن فیلترها )" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "کاهش اولویت وظیفه انتخاب شده" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "افزایش اولویت وظیفه انتخاب شده" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "دادن حداکثر اولویت به وظیفه" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "دادن حداقل اولویت به وظیفه" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "درچ یک تکلیف جدید" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "باز کردن تمامی آیتم ها با زیر آیتم ها" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "باز کردن تمامی آیتم ها با زیر آیتم ها" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "ورژن پروتکل: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "نام دستگاه: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "نام فایل ارسالی: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "کامل از دسکتاپ" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d شاخه ها" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "ارسال شاخه %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "پاسخ: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d وظایف" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "ارسال وظیفه %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d تلاش ها" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "ارسال تلاش %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "تمام شد." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d شاخه های جدید" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d وظایف جدید" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d تلاش های جدید" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d شاخه های ویرایش شده" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d وظایف ویرایش شده" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d تلاش های ویرایش شده" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d شاخه های حذف شده" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d وظایف حذف شده" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d تلاش های حذف شده" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "شاخه جدید (مادر: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "حذف شاخه %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "ویرایش شاخه %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "وظیفه جدید %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "حذف وظیفه %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "ویرایش وظیفه %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "پایان همگام سازی وظیفه" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "ناتوان در پیدا کردن وظیفه %s برای تلاش." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "تلاش جدید %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "ویرایش تلاش %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "ارسال GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "خواندن اطلاعات ایمیل ..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "در حال خواندن اطلاعات ایمیل . لطفا صبور باشید." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "ناتوان در پیدا کردن دایرکتوری اطلاعات تاندربیرد" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "ناتوان در پیدا کردن پروفایل تاندربیرد" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "لطفا دامین را وارد کنید برای کاربر %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "ناتوان در انتخاب اینباکس \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "ایمیل اینچنینی وجود ندارد: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "زمان شروع واقعی" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "زمان مقرر" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "زمان تکمیل" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "زمان یادآوری" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "زمان ایجاد" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "بدون عنوان" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "وظیفه جدید در طول امروز" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "وظیفه جدید در فردا" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d روز" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 روز" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "هر %(frequency)d روز" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "هر %(frequency)d هفته" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "هر %(frequency)d ماه" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "هر %(frequency)d سال" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "هر روز دیگر" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "هر هفته دیگر" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "هر ماه دیگر" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "هر سال دیگر" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "دیروز" #: taskcoachlib/render.py:284 msgid "now" msgstr "اکنون" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "همگام سازی" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "در حال همگام سازی ، لطفا منتظر بمانید.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d آیتم ها افزوده شده.\n" "%d آیتم ها بروز شد.\n" "%d آیتم ها حذف شد." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "خطایی در همگام سازی رخ داده است.\n" "کد خطا: %d; پیغام: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "بازگشت %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "بس&تن" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "بستن همه‌" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&بعدی‌" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&قبلی‌" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&پنجره‌" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "ویرایش" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d هفته" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d ساعت" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "انجام شد" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "ماه" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "جهت تقویم" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "افقی" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "عمودی" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "نمایش کدام وظایف" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "وظایف با موعد انجام مقرر" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "تمامی وظایف" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "رنگ مورد استفاده برای هایلایت روز فعلی" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "All files (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "کلمه‌ی عبور:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "لطفاً رمز عبور خود را وارد کنید." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "لطفاً رمز عبور خود را وارد کنید" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&انطباق" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&به حساب آوردن زیرآیتم ها" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&همچنین جستجوی توضیحات" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "جستجوی همزمان موضوع و همچنین توضیحات" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&حالت منظم" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "جستجوهای اخیر" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "خطای سازگاری" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "این پنجره را دیگر نشان نده" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "خطا در باز کردن آدرس" #~ msgid "&Delete\tDEL" #~ msgstr "&حذف\tDEL" taskcoach-1.4.3/i18n.in/fi.po000066400000000000000000007050711265347643000156250ustar00rootroot00000000000000# Finnish translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # Ari Voutilainen , 2009-2011. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:31+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: fi\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Tapahtui virheitä. Katso \"taskcoachlog.txt\" \"Omat Tiedostot\" kansiossa." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Virhe" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Tapahtui virheitä. Ole hyvä ja katso \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Ei voitu ladata asetuksia tiedostosta TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s tiedostovirhe" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\":sta tuli ylin taso, koska sitä ylempi taso on poistettu paikallisesti." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Ristiriitoja on havaittu: \"%s\".\n" "Käytettiin paikallista versiota." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Muuta liitteiden sijaintia" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Muuta liitteeen \"%s\" sijaintia" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Lisää liite" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Lisää liite kohteelle \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Uusi liite" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Poista liite" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Poista liite \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopioi" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopioi \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Poista" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Poista \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Leikkaa" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Leikkaa \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Liitä" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Liitä \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Liitä alitietona" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Liitä \"%s\":n alitietona" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Raahaa ja pudota" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Raahaa ja pudota \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Muokkaa otsikkoa" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Muokkaa otsikkoa \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Muokkaa kuvauksia" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Muokkaa kuvausta \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Vaihda kuvakkeita" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Vaihda kuvaketta \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Vaihda kirjasimia" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Vaihda kirjasinta \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Vaihda edustavärejä" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Vaihda edustaväriä \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Vaihda taustavärejä" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Vaihda taustaväriä \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Vaihda kategoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Vaihda \"%s\" kategoria" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Uusi kategoria" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Uudet alikategoriat" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Kategorian \"%s\" uusi alikategoria" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Uusi alikategoria" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Muokkaa pois sulkevia alikategorioita" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Muokkaa \"%s\" :n pois sulkevia alikategorioita" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Poista kategoriat" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Poista kategoria \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Raahaa ja pudota kategoriat" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Uudet työmäärät" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Uusi työmäärä \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Poista työmäärät" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Poista työmäärä \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Vaihda työmäärän tehtävä" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Vaihda työmäärän \"%s\" tehtävä" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Vaihda työmäärän aloituspäivä ja -aika" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Vaihda työmäärän \"%s\" aloituspäivä ja -aika" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Vaihda työmäärän lopetuspäivä ja -aika" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Vaihda työmäärän \"%s\" lopetuspäivä ja -aika" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Uusi huomautus" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Uudet alihuomautukset" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Uusi \"%s\":n alihuomautus" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Uusi alihuomautus" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Poista huomautukset" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Poista huomautus \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Raahaa ja pudota huomautukset" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Raahaa ja pudota huomautus \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Lisää huomautus" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Lisää huomautus \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Lisää alihuomautus" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Lisää alihuomautus \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Poista huomautus" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Poista huomautus \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Raahaa ja pudota tehtävät" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Poista tehtävät" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Poista tehtävä \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Uusi tehtävä" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Uudet alitehtävät" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Uusi \"%s\":n alitehtävä" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Uusi alitehtävä" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Merkitse tehtävät suoritetuksi" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Merkitse \"%s\" suoritetuksi" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Merkitse tehtävä aktiiviseksi" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Merkitse \"%s\" aktiiviseksi" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Merkitse tehtävä ei-aktiiviseksi" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Merkitse \"%s\" ei-aktiiviseksi" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Aloita seuranta" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Aloita tehtävän \"%s\" seuranta" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Lopeta seuranta" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Lopeta tehtävän \"%s\" seuranta" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Aseta tärkeys maksimiin" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Aseta tehtävän \"%s\" tärkeys maksimiin" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Aseta tärkeys minimiin" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Aseta tehtävän \"%s\" tärkeys minimiin" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Nosta tärkeyttä" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Nosta tehtävän \"%s\" tärkeyttä" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Pienennä tärkeyttä" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Pienennä tehtävän \"%s\" tärkeyttä" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Vaihda tärkeyttä" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Vaihda \"%s\":n tärkeyttä" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Lisää huomautus tehtävään" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Muuta suunniteltu aloituspäivä" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Muuta suunniteltu \"%s\":n aloituspäivä" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Vaihda määräaika" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Vaihda \"%s\":n määräaika" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Vaihda varsinainen aloituspäivä" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Vaihda varsinainen \"%s\":n aloituspäivä" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Vaihda valmistumispäivä" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Vaihda \"%s\":n valmistumispäivä" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Vaihda muistutuksen päivät/ajat" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Vaihda \"%s\":n muistutuksen päivä/aika" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Vaihda toistot" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Vaihda \"%s\":n toisto" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Vaihda \"%s\":n valmiusaste" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Vaihda, kun tehtävät on merkitty valmiiksi" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Vaihda, kun \"%s\" on merkitty valmiiksi" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Vaihda arvioitu aika" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Vaihda \"%s\":n arvioitu aika" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Vaihda tuntitaksa" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Vaihda \"%s\":n tuntitaksa" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Vaihda kiinteä taksa" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Vaihda \"%s\":n kiinteä taksa" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Vaihda vaatimus" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Vaihda \"%s\":n vaatimus" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Virhe luettaessa %s-%s asetusta tiedostosta %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Arvo on: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Virhe on: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s:lle käytetään asetuksen oletusarvoa ja käsittelyn pitäisi edetä " "normaalisti." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Asetusvirhe" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Virhe tallennettaessa tiedostoon %s.ini\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Virhe tallentaessa" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app-viesti" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Uusi liite..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Lisää uusi liite" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Avaa liite" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Avaa valitut liitteet" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minuuttia" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Älä käytä torkkutoimintoa" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minuuttia" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minuuttia" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minuuttia" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minuuttia" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 tuntia" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minuuttia" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 tunti" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 tuntia" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 tuntia" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 tuntia" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 tuntia" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 tuntia" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 tuntia" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 tuntia" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 tuntia" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 tuntia" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 tuntia" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 viikkoa" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 viikko" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Yhteensä" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Yhteensä: %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "Uusi &työmäärä...\tCtrl+T" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Ei-aktiiviset tehtävät" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "P&iilota ei-aktiiviset tehtävät" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Ei-aktiiviset tehtävät: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Näytä/piilota epäaktiiviset tehtävät (keskeneräiset tehtävät joita ei ole " "aloitettu)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Myöhässä olevat tehtävät" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Piilota myöhässä olevat tehtävät" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Myöhässä olevat tehtävät: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Näytä/piilota myöhässä olevat tehtävät (ei-aktiiviset tehtävät joiden " "suunniteltu aloitusaika on mennyt)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktiiviset tehtävät" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktiiviset tehtävät: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Piilota &aktiiviset tehtävät" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Näytä/piilota aktiiviset tehtävät (keskeneräiset tehtävät jotka on jo " "aloitettu)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Tehtävät joiden määräaika on lähellä" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Tehtävät joiden määräaika on lähellä: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Piilota tehtävät, joiden määräaika on lähellä" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "Näytä/piilota keskeneräiset tehtävät, joiden määräaika on lähellä" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Yliajalla olevat tehtävät" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Piilota yliajalla olevat tehtävät" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Yliajalla olevat tehtävät: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Näytä/piilota yliajalla olevat tehtävät (keskeneräiset tehtävät joiden " "määräaika on mennyt)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Valmiit tehtävät" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Valmiit tehtävät: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Piilota valmiit tehtävät" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Näytä/piilota valmiit tehtävät" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Uusi tehtävä..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Nuoli alas" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Nuoli alas tilatiedolla" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Siniset nuolet kierretty" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Vihreät nuolet kierretty" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Nuoli ylös" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Nuoli ylös tilatiedolla" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Pommi" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Kirja" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Kirjat" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Laatikko" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Leppäkerttu" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Kakku" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Laskin" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalenteri" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Kissa" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "CD-levy" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Kaaviot" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Keskustelu" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Tarkistusmerkki" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Tarkastusmerkit" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Kello" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Herätyskello" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Sekuntikello" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Hammaspyörä" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Hammaspyörät" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Pöytätietokone" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Kannettava tietokone" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Käsitietokone" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Punainen risti" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Arpakuutio" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokumentti" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Sininen maa" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Vihreä maa" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Kirjekuori" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Kirjekuoret" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Sininen kansio" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Vaalean sininen kansio" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Vihreä kansio" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Harmaa kansio" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Oranssi kansio" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Violetti kansio" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Punainen kansio" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Keltainen kansio" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Sininen kansio nuolella" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Sydän" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Sydämet" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Vihreä talo" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Punainen talo" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Avain" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Avaimet" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lamppu" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Kysymysmerkki" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Tiedonanto" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Sininen led" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Vaalean sininen led" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Harmaa led" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Vihreä led" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Vaalean vihreä led" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Oranssi led" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Violetti led" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Punainen led" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Keltainen led" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Pelastusrengas" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Lukittu lukko" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Avattu lukko" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Suurennuslasi" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nuotti" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Muistilappu" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paletti" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Klemmari" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Kynä" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Henkilö" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Ihmiset" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Henkilökortti" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Puhuva henkilö" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Varoitusmerkki" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Miinus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Punainen tähti" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Keltainen tähti" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Liikennevalo" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Roskakori" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Salama" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Sateenvarjo" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Puolipouta" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Jakoavain" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Ei kuvaketta" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Tiedosto" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Polku" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Päivämäärä" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Palauta" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Sulje" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Valitse palautuksen kohde" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Viesti %s:n kehittäjiltä" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Katso:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Selite" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Muuta vaihtaaksesi kaikki otsikot" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Aihe" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Muuta vaihtaaksesi kaikki selitteet" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Luomisaika" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Muokkausaika" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Tärkeys" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Toisensa poissulkeva" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Alikategoriat" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Muuta vaihtaaksesi kaikkien liitteiden paikat" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Selaa" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Paikka" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Ulkonäkö" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Edustaväri" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Taustaväri" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Kirjasin" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Kuvake" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Päiväykset" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Suunniteltu aloituspäivä" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Määräaika" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Varsinainen aloituspäivä" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Valmistumispäivä" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Muistutus" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Toistettavuus" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Edistyminen" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Prosenttia valmiina" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Käytä sovelluksen asetuksia" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ei" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Kyllä" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Merkitse tehtävä suoritetuksi, kun kaikki alitehtävät ovat valmiita?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Arvioitu aika" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Kulutettu aika" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Arvioitua aikaa jäljellä" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Tuntitaksa" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Kiinteä taksa" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Tulot" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Työmäärä" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategoriat" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Liitteet" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Huomautukset" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Vaatimukset" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Muokkaa tehtävää" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tehtävä" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Aloita" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Viikkoa" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Päivää" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Tunnit" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minuutit" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Lopeta" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Aloita seuranta viimeisestä lopetusajasta" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Lopeta seuranta nyt" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Varoitus: aloituksen täytyy olla ennen lopetusta" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Useita tehtäviä" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (tehtävä)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Useita kategorioita" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (kategoria)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Useita huomautuksia" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (huomautus)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Useita liitteitä" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (liite)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Useita työmääriä" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (työmäärä)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Käytä kirjasinta:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Käytä väriä:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Ei mitään" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Päivittäin" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Kuukausittain" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Viikoittain" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Vuosittain" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "pitäen päiväykset samalla viikon päivällä" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", joka" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Keskeytä" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "toiston jälkeen" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Aikatauluta jokainen seuraava toisto perustuen:" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "aiemmin suunniteltuun aloitus/lopetusaikaan" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "edelliseen valmistumisaikaan" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "päivä," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "jakso," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "viikko" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "kuukausi" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "vuosi" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Vie tiedot:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Vie vain valitut tiedot" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Sarakkeet, jotka viedään:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Laita tehtävän päivämäärät ja kellonajat eri sarakkeisiin" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Tallenna tyylitiedot erilliseen CSS-tiedostoon" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Jos CSS-tiedosto on olemassa viedylle tiedostolle, %(name)s ei ylikirjoita " "sitä. Tämä mahdollistaa tyylitietojen muuttamisen ilman että menetät " "muutoksesi seuraavalla vientikerralla." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Vie CSV-formaattiin" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Vie iCalendar-formaattiin" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Vie HTML-formaattiin" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Vie Todo.txt-formaattiin" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "iPhone tai iPod Touch yrittää synkronoida\n" "tämän tehtävätiedoston ensimmäistä kertaa.\n" "Millaista synkronointia haluat käyttää?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Päivitä työpöydältä" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Päivitä laitteelta" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Keskeytä" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Olet sallinut iPhone synkronoinnin, mikä tarvitsee\n" "Bonjour-ohjelman. Tätä ohjelmaa ei näytä olevan asennettuna\n" "järjestelmässäsi." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" "Ole hyvä ja lataa ja asenna Bonjour-ohjelma Windowsille osoitteesta\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Applen web-sivu" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour-tuen Linuxille tarjoaa tavallisesti\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Löydät lisää yksityiskohtia jakelupaketistasi täältä" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Huomaa, että joissakin järjestelmissä (Fedora) joudut asentamaan\n" "\"avahi-compat-libdns_sd\"-paketin sekä Avahi:n saadaksesi tämän toimimaan." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Lisäksi, jos sinulla on palomuuri, varmista, että portit 4096-4100 ovat auki." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Tämä asetus tulee voimaan kun uudelleenkäynnistät %s :n" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Tämä asetus voidaan ohittaa yksittäisille tehtäville tehtävien " "muokkausikkunassa" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Tiedostot" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Automaattitallennus joka muutoksen jälkeen" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Lataa automaattisesti, kun tiedosto muuttuu levyllä" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Älykäs tiedostojärjestelmän monitorointi" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Yrittää huomata tehtävätiedoston muutokset reaaliaikaisesti.\n" "Älä aseta tätä, jos tehtävätiedostosi on verkkolevyllä.\n" "%s täytyy käynnistää tämän muutoksen jälkeen." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Tallenna asetukset (%s.ini) samaan\n" "hakemistoon kuin itse ohjelma" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Ohjelman %s ajamiseksi siirrettävältä medialta" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Liitteiden perushakemisto" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Liitettä lisättäessä yritä tehdä\n" "polku suhteelliseksi." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Ennen tallennusta automaattisesti tuo:" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt-formaatti" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Ennen tallennusta %s tuo automaattisesti tehtävät\n" "Todo.txt-tiedostosta samalla nimellä kuten tehtävätiedosto,\n" "mutta päätteellä .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Tallennuksen yhteydessä vie:" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Tallennuksen aikana %s vie automaattisesti tehtävät\n" "Todo.txt-tiedostostoon samalla nimellä kuten tehtävätiedosto,\n" "mutta päätteellä .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Ikkunan toiminta" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Näytä käynnistysruutu ohjelman käynnistyessä" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Näytä vinkki-ikkuna ohjelman käynnistyessä" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Käynnistä pääikuna pienennettynä" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Aina" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Ei koskaan" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Jos se oli pienennettynä edellisellä käyttökerralla" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Tarkista käynnistyessä, onko %(name)s:sta uutta versiota" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Piilota pääikkuna, kun se on pienennetty" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Pienennä pääikkuna, kun se suljetaan" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Näytä kello tehtävärivillä työmääriä seurattaessa" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Kieli" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Anna järjestelmän määrittää kieli" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "Jos halaumasi kieli ei ole saatavilla, harkitse auttamista. Katso:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Kieltä ei löydy?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Tehtävän ulkonäkö" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Nämä asetukset voidaan ohittaa yksittäisten tehtävien kohdalla tehtävän " "muokkausikkunassa." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Ominaisuudet" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "%s täytyy käynnistää uudelleen, jotta nämä asetukset tulevat voimaan." #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Salli SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Salli iPhone syknronointi" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Käytä X11 istunnon hallintaa" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Työviikon aloitus" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Maanantai" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Sunnuntai" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Työpäivän aloitustunti" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Työpäivän lopetustunti" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Päivän loppu" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Käytä häivytystä kalenterinäkymässä.\n" "Tämä voi hidastaa Task Coach:ia." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minuutit esitettyjen aikojen välillä" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Ajan valitsemisen ponnahdusikkunoissa (esim. aloitusajan \n" "määrittämisessä %(name)s ehdottaa aikoja käyttäen tätä asetusta. \n" "Mitä pienempi minuuttien määrä, sitä enemmän aikoja ehdotetaan. \n" "Voit myös asettaa minkä tahansa ajan esitettyjen lisäksi." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Joutoajan huomautus" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Jos käyttäjä ei tee mitään tässä määritettynä aikana (minutteina), \n" "%(name)s kysyy käyttäjältä mitä olemassaoleville työmäärille tehdään." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Käytä desimaaliaikoja" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Näytä esimerkiksi tunti ja viisitoista minuuttia muodossa 1.25. \n" "Hyödyllinen esim. laskuja laatiessa." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Näytä ponnahdusikkuna selitteen kanssa,\n" "kun tietoa osoitetaan hiirellä" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Tehtäväpäivät" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Merkitse päätehtävä suoritetuksi, kun kaikki alitehtävät on suoritettu" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Tuntien lukumäärä, jolloin tehtävät 'vanhenevat pian'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Ei mitään" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Suunnitellun aloitupäivän muuttaminen muuttaa päättymisaikaa" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Päättymispäivän muuttaminen muuttaa suunniteltua aloituspäivää" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Mitä tehdään suunnitellulla aloitus- ja päättymispäivällä, jos toista " "muutetaan" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Esiasetus" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Ehdotus" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Tänään" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Huomenna" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Ylihuomenna" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Seuraava perjantai" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Seuraava maanantai" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Päivän alku" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Työpäivän alku" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Nykyinen aika" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Työpäivän loppu" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Oletus suunniteltu alkupäivä ja -aika" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Oletus lopetuspäivä ja -aika" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Oletus todellinen alkupäivä ja -aika" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Oletus valmistumispäivä ja -aika" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Oletus muistutuspäivä ja -aika" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Uudet tehtävät alkavat \"esiasetus\" -päivämäärät ja ajat täytettynä ja " "valittuna. \"ehdotus\" -päivämäärät ja ajat on täytetty valmiiksi, mutta ei " "valittu.\n" "\n" "\"Päivän alku\" on keskiyöllä ja \"Päivän loppu\" on juuri ennen keskiyötä. " "Jos näitä käytetään ovat ainoastaan päivämäärät näkyvillä ja kellonajat " "piilotetaan.\n" "\n" "\"Työpäivän alku\" ja \"työpäivän loppu\" käyttävät tämän ikkunan " "Ominaisuudet-välilehdellä olevia asetuksia." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Tehtävämuistuttajat" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Ilmoitusjärjestelmä muistuttajille" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Anna tietokoneen sanoa muistutus" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Tarvitaan 'espeak')" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Oletus torkkuaika muistutuksen jälkeen" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Tehtävän muistutusdialogissa olevat torkkuajat" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Salasana iPhone synkronointia varten" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "Kun aletaan synkronoida, syötä salasana iPhoneen valtuuttaaksesi sen" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour-palvelun nimi" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Lataa valmiit tehtävät laitteelle" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Näytä synkronointiloki" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editori" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Tarkista kieliasu editoreissa" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Muokkausikkunoissa käytettävä kirjasin" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Tuo sähköpostin otsikko ohjelmasta Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Yritä saada sähköpostin otsikko Mail.app -ohjelmasta. Tämä voi kestää noin " "20 sekuntia." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Korosta tehtävän otsikko muokkausikkunassa" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Avattaessa tehtävän muokkausikkunaa, valitse tehtävän otsikko ja kohdista " "siihen. Tämä korvaa X -valinnan." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s muistuttaja - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Muistuttajan päiväys/aika" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Torkku" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Tee tästä oletustorkkuaika tuleville muistutuksille" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Merkitse tehtävä valmiiksi" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML-palvelin" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Yksilöi" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Hordeen pohjautuva" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML palvelimen URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Käyttäjänimi/tunnusnumero" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Salli tehtävien synkronointi" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Tehtävien tietokannan nimi" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Haluttu synkronointitapa" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Kaksisuuntainen" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Hidas" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Yksisuuntainen päätelaitteelta" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Päivitä päätelaitteelta" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Yksisuuntainen palvelimelta" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Päivitä palvelimelta" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Salli huomautusten synkronointi" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Huomautusten tietokannan nimi" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Pääsy" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Uusi tehtävämallipohja" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Esikatselu" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Käytösssä olevat työkalut" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Näytä tämä työkalu työkalupalkissa" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Piilota tämä työkalu työkalupakista" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Työkalut" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Siirrä työkalua ylös (työkalupalkissa vasemmalle)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Siirrä työkalua ylös (työkalupalkissa oikealle)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Muuta työkalupalkin järjestystä raahaamalla ja pudottamalla." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Välimerkki" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Väli" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Ilmoita uusista versioista." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Uusi versio saatavilla: %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Käytät %(name)s:in versiota %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s:n versio %(version)s on saatavilla:" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s on päivitetty" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s on päivitetty versioon %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Viimeisintä versiota ei löytynyt" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "%(name)s:n viimeisintä versiota ei löytynyt." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Esiversio" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Käytät %(name)s:n esiversiota %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Viimeisin virallinen %(name)s:n versio on %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Varoitus" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach:lla on tiedettyjä tapauksia XFCE4 istunnon hallinnan kanssa.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Jos ilmenee satunnaista jumittumista käynnistyksessä, poista valinta " "kohdasta \n" "\"Use X11 session management\", joka löytyy asetusten Features-" "välilehdeltä.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Älä näytä tätä ikkunaa aloituksessa" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Ei käyttäjän toimenpiteitä %s jälkeen. Seuraavaa tehtävää\n" "jäjitettiin:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Älä tee mitään" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Pysäytä hetkellä %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Pysäytä hetkellä %s ja jatka nyt" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Ilmoitus" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s tiedostot (*.tsk)|*.tsk|Kaikki tiedostot (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s-tiedostot (*.tsk)|*.tsk|Varmuuskopiotiedostot " "(*.tsk.bak)|*.tsk.bak|Kaikki tiedostot (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar-tiedostot (*.ics)|*.ics|Kaikki tiedostot (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML-tiedostot (*.html)|*.html|Kaikki tiedostot (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV-tiedostot (*.csv)|*.csv|Tekstitiedostot (*.txt)|*.txt|Kaikki tiedostot " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt-tiedostot (*.txt)|*.txt|Kaikki tiedostot (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Avaa" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Ladattu %(nrtasks)d tehtävää tiedostosta %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Ei voida avata %s, koska sitä ei ole olemassa" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Yhdistä" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Ei voitu avata tiedostoa %(filename)s,\n" "koska se on lukittu." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Yhdistetty %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Tallenna nimellä" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Tallenna valinta" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Ei voida tallentaa %s\n" ",koska %s on lukinnut sen.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Ei voida tallentaa %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Tuo mallipohja" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s mallipohjatiedostot (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Ei voida tuoda mallipohjaa %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Viety %(count)d tietoa tiedostoon %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synkronointi päättynyt" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synkronoinnin tila" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Ei voi avata %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Tiedosto: %s on jo olemassa.\n" "Haluatko korvata sen?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Sinulla on tallentamattomia muutoksia.\n" "Tallennetaanko ennen sulkemista?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: tallennetaanko muutokset?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Ei voida avata %s, koska se on lukittu.\n" "\n" "Tämä tarkoittaa, että TaskCoachin toinen kopio\n" "on käynnissä ja sillä on tämä tiedosto auki tai\n" "TaskCoachin edellinen kopio on kaatunut. Jos\n" "muita kopioita ei ole käynnissä, voit rikkoa lukituksen.\n" "\n" "Rikotaanko lukitus?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: tiedosto lukittu" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Ei voida lukita, koska lukitusta ei ole tuettu:\n" "%s.\n" "Avataanko %s lukitsemattomana?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Suljettu %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Tallennettu %(nrtasks)d tehtävää tiedostoon %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Ei voitu avata %(filename)s,\n" "koska se on luotu %(name)s:n uudemmalla versiolla.\n" "Ole hyvä ja päivä päivitä %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Virhe luettaessa %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Varmuuskopioiden hallintatyökalu avataan jotta voit palauttaaaiemman version " "tästä tiedostosta." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synkronoidaan..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synkronoidaan %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Tervetuloa ohjelmaan %(name)s versio %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Ulkoasua ei voitu palauttaa TaskCoach.ini:stä\n" "%s\n" "\n" "Käytetään oletusulkoasua.\n" "\n" "Jos tämä tapahtuu udestaan, tee kopio TaskoCoach.ini:stä ennen kuin suljet " "ohjelman. Lähetä sitten bugi-raportti ja lisää TaskCoach.ini -tiedosto " "raporttiin." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s virhe asetuksissa" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synkronoinnin tyyppi" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "iPhone tai iPod Touch yritti synkroida tämän\n" "tehtävätiedoston, mutta yhteydenmuodostus epäonnistui.\n" "Ole hyvä ja tee virheraportti." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Tiedosto" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Muokkaa" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Näytä" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "Uusi" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "Toimenpiteet" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Ohje" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "Tuo" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Vie" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Valitse" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Uusi näkymä" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Aktivoi seuraava näkymä\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Aktivoi &edellinen näkymä\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "Tila" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "S&uodin" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Lajittele" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Sarakkeet" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Pyöristys" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Puurakenteen asetukset" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "T&yökalurivi" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Näytä/piilota tilarivi" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Tilarivi" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "T&ehtävä" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Avaa uusi välilehti tehtävänäkymällä" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Tehtävätilastot" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" "Avaa uusi välilehti uudella näkymällä, joka näyttää tehtävän tilastot" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "&Tehtävien laatikkonäyttö" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Avaa uuden näkymän välilehteen, jossa tehtävät ovat laatikoissa" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "A&ikajana" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "Avaa uuden välilehden tehtävien ja työmäärien aikajananäkymällä" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalenteri" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Avaa uusi näkymä välilehdessä, jossa on tehtävät kalenterissa" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hierarkinen kalenteri" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "Avaa uusi välilehti joka näyttää hierarkian kalenterissa" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategoria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Avaa uuden välilehden kategorianäkymällä" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "T&yömäärä" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Avaa uuden välilehden työmääränäkymällä" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Valittujen tehtävien työmäärä" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Avaa uuden välilehden valitun tehtävän työmääränäkymällä" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Huomautus" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Avaa uuden välilehden huomautusnäkymällä" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "Piilota" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Piilota työkalurivi" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "Pienet kuvakkeet" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Pienet kuvakkeet (16x16) työkalurivillä" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Keskikokoiset kuvakkeet" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Keskikokoiset kuvakkeet (22x22) työkalurivillä" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "Isot kuvakkeet" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Isot kuvakkeet (32x32) työkalurivillä" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Uusi tehtävä mallipohjasta" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Vaih&da kateforia" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Muuta tehtävän tärkeyttä" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Aloita työmäärän &seuranta" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (alikategoriat)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (alitehtävät)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "Tärkeys" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Sivu" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Muistuttaja" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tehtävää myöhästyy" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "yksi tehtävä myöhästyy" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tehtävää päättyy pian" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "yksi tehtävä päättyy pian" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "seurataan \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "seurataan työmäärää %d tehtävälle" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Avaa...\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Avaa %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Yhdistä..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Yhdistä tehtävät toisesta tiedostosta nykyisen tiedoston kanssa" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Sulje\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Tallenna\tCtrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Yhdistä levymuutokset\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Tallenna &nimellä...\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Tallenna valitut tehtävät uuteen tiedostoon..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Tallenna valitut tehtävät erilliseen tiedostoon" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Tallenna valittu tehtävä &mallipohjaksi" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Tallenna valittu tehtävä tehtävän mallipohjaksi" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "Tuo mallipohja..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Tuo uusi mallipohja tiedostosta" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Muokkaa mallipohjia..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Muokkaa olemassaolevia mallipohjia" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Muokkaa mallipohjia" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "Tyhjennä poistetut tiedot" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Poistaa lopullisesti poistetut tehtävät ja huomautukset (katso SyncML-" "kappale avusteessa)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Poistettujen tietojen tyhjentäminen on peruuttamaton.\n" "Jos aiot ottaa SyncML:n käyttöön uudelleen\n" "samalla palvelimella kuten aikaisemmalla kerralla,\n" "nämä tiedot tulevat luultavasti takaisin.\n" "\n" "Haluatko edelleen tyhjentää?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Sivun asetukset...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "Tulostuksen &esikatselu..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Näytä, miltä sivu näyttää esikatselussa" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Tulostuksen esikatselu" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "T&ulosta...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Hallitse varmuuskopioita..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Hallitse kaikkia tehtävätiedostojen varmuuskopioita" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "&HTML-tiedostoon..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Vie tiedot näkymältä HTML-formaatissa" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Vie &CSV-tiedostoon..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Vie tiedot näkymältä CSV-formaatissa (Comma Separated Values)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "&iCalendar-tiedostoon..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Vie tiedot näkymältä iCalendar-formaatissa" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Vie Todo.txt-formaattiin..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "Vie tiedot näkymästä Todo.txt formaattiin (katso todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "Tuo CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Tuo tehtävät CSV (Comma Separated Values) -tiedostosta" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Tuo CSV-formaatista" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Valittu tiedosto on tyhjä. Valitse joku muu tiedosto." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "Tuo Todo.txt-formaatista..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Tuo tehtävät Todo.txt (katso todotxt.com) -tiedostosta" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Tuo Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML synkronointi..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synkronoi SyncML palvelimen kanssa" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Lopeta\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "K&umoa" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Tee uudelleen" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Leikkaa\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopioi\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "L&iitä\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Liitä alitietona\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Asetukset...\tAlt+A" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Asetukset" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "SyncML asetukset..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Muokkaa SyncML asetuksia" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML asetukset" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Muokkaa työkalupalkkia" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Muokkaa" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Kaikki\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Peru valinta" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Peru kaikkien tietojen valinnan" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Tyhjennä kaikki suodattimet\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "Poista kaikki valinnat\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Näytä/piilota tiedot, jotka kuuluvat: %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "Nimeä näkymä..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Nimeä valittu näkymä" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Uusi otsikko näkymälle:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Nimeä näkymä" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "Piilota tämä sarake" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Piilota valittu sarake" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "L&aajenna kaikki tiedot\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "S&upista kaikki tiedot\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "Nouseva" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" "Lajittele nousevaan (valittu) tai laskevaan (ei-valittu) järjestykseen" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Lajittele ja ota kirjainkoko huomioon" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Verrattaessa tekstiä lajittelussa otetaan huomioon kirjainkoko (valittu)\n" "tai ei oteta huomioon kirjainkokoa (ei-valittu)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Lajittele tilan mukaan" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Lajittele tehtävät tilan (aktiivinen/ei-aktiivinen/valmis) mukaan" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Piilota koostetut tehtävät" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Näytä/piilota tehtävät alitehtävineen listassa" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "Muuta...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Muuta valittuja tietoja" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Muuta seurattavaa tehtävää...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Muuta tällä hetkellä seurattavia tehtäviä" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "Poista\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Poista valitut tiedot" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Luo uusi tehtävä mallipohjasta" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Uusi tehtävä valituilla kategorioilla..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Lisää uusi tehtävä valitut kategoriat asetettuna" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Uusi tehtävä valituilla tehtävillä, joista tulee vaatimuksia..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Lisää uusi tehtävä valituilla tehtävillä, joista tulee vaatimuksia" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Lisää uusi tehtävä valituista tehtävistä, joista tulee alitehtäviä" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Uusi alitieto..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Uusi &alitehtävä..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Uusi alihuomautus..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Uusi alikategoria..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Sijoita uusi alitieto valittuun tietoon" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Merkitse tehtävät aktiiviseksi\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Merkitse valitut tehtävät aktiivisiksi" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Merkitse tehtävät ei-aktiiviseksi\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Merkitse valitut tehtävät ei-aktiivisiksi" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Merkitse tehtävä valmiiksi\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Merkitse valitut tehtävät valmiiksi" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "M&aksimoi tärkeys\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "M&inimoi tärkeys\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Lisää tärkeyttä\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Vähennä tärkeyttä\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Vaihda: %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "Sähköposti...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "Lähetä sähköposti...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Useita asioita" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "ja" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Sähköpostia ei voi lähettää:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s sähköpostivirhe" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Lisää huomautus...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Avaa kaikki huomautukset...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "Aloita työmäärän seuranta\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Aloita työmäärän seuranta valittujen työmäärien tehtäville" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Ei otsikkoa)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Aloita seuranta työmäärälle %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Valitse tehtävä menusta ja aloita sen työmäärän seuranta" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Lopeta työmäärän seuranta tai jatka seurantaa\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Lopeta seuranta: %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Lopeta aktiivisten tehtävien työmäärien seuranta" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "Jatka seurantaa: %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Jatka työmäärän seurantaa edelliselle seuratulle tehtävälle" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "useita tehtäviä" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Uusi kategoria...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Uusi huomautus...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Uusi huomautus valituilla kategorioilla..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Lisää uusi huomautus uudet kategoriat asetettuna" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "Li&sää liite...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Virhe liitteen aukaisussa" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "Avaa kaikki liitteet...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Ohjeen &sisältö\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Ohjeen &sisältö\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Ohje" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Vihjeet" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Vihjeitä ohjelmasta" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Tee tunnistamattomaksi" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Tee tehtävätiedosto tunnistamattomaksi, jotta se voidaan liittää " "virheraporttiin" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Tehtävätiedostosi on tehty tunnistamattomaksi ja on tallennettu:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Valmis" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Tietoja %s:sta" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versio- ja yhteystietoja: %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Tietoja %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Lisenssi" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s:n lisenssi" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Tarkista päivitykset" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Tarkista %s:n uuden version saatavuus" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Ei voida avata osoitetta:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s osoitevirhe" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Usein kysyttyjä kysymyksiä (ENG)" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Selaa usein kysyttyjä kysymyksiä ja vastauksia (ENG)" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Raportoi virheestä (ENG)..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Raportoi virheestä ja selaa tiedossa olevia virheitä (ENG)" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Ehdota ominaisuutta (ENG)..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Ehdota ominaisuutta tai äänestä ominaisuuksia (ENG)" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Pyydä tukea (ENG)..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Pyydä käyttäjätukea kehittäjiltä (ENG)" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Avusta parantamaan käännöksiä (ENG)..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Avusta parantamaan %s:n käännöksiä (ENG)" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "Lahjoita..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Tee lahjoitus %s:n kehittämiseksi" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Palauta" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Palauta ikkuna aikaisempaan tilaansa" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Haku" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Työmäärän tiedot" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Päivän työmäärä" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Kuukauden työmäärä" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Viikon työmäärä" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Koostamistila" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Lista" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Puu" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "Kun valittu, näytä tehtävät puuna, muuten listana" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Suodatus kaikille valituille kategorioille" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Suodatus mille tahansa valitulle kategorialle" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Kun valittu, suodata kaikki merkityt tehtävät, muuten merkityt kategoriat" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Järjestyksen valinta" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "Asetukset" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Asetukset kalenterinäkymälle" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Muokkaa hierarkisen kalenterin näyttöä" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Seuraava jakso" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Näytä seuraava jakso" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Edellinen jakso" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Näytä edellinen jakso" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "Tätä päivää" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Näytä tämä päivä" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automaattinen sarakkeiden koon muutos" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Kun valittuna, muuttaa sarakkeiden kokoa automaattisesti täyttämään koko " "tilan" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Aseta sektoridiagrammin kulma" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Ei pyöristystä" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuutti" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minuuttia" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Pyöristyksen tarkkuus" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Pyöristä aina ylöspäin" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Pyöristä aina ylöspäin lähimpään pyöristyskohtaan" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tyyppi" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Lajittele otsikon mukaan" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Otsikko" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Lajittele selitteen mukaan" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "Selite" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Luomisaika" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Lajittele luomisajan mukaan" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Muokkausaika" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Lajittele viimeisimmän muokkausajan mukaan" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Näytä/piilota selitesarake" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "Huomautukset" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Näytä/piilota huomautussarake" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Näytä/piilota luomisajan sarake" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Näytä/piilota muokkausajan sarake" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Työkalupalkkeja voi muokata" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Klikkaa hammasratasikonia oikealla lisätäksesi ja järjestelläksesi " "painikkeita." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Järjestely puutilassa" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "Kun käytetään puutilaa, järjestyksen muuttaminen on mahdollista vain kun " "kaikki valitut kohteet ovat sisaruksia." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "Kun käytetään puutilaa, kohteita voidaan laittaa vain samalle tasolle." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "&Manuaalinen järjestys" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Näytä/piilota manuaalisen järjestyksen sarake" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "Liitteet" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Näytä/piilota liitteiden sarake" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "kategoriat: %d valittu, %d yhteensä" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Tila: %d suodatettu" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Aikajakso" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Kulutettu kokonaisaika" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Kokonaistuotto" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Tiistai" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Keskiviikko" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Torstai" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Perjantai" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Lauantai" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "kategoriat" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Näytä/piilota kategorioiden sarake" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "Kulutettu aika" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Näytä/piilota kulutetun ajan sarake" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "Tuotto" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Näytä/piilota tuottosarake" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Kulutettu kokonaisaika" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Näytä/piilota kulutetun kokonaisajan sarake" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "Kokonaistuotto" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Näytä/piilota kokonaistuoton sarake" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Työmäärä viikossa" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Näytä/piilota viikossa käytetyn ajan sarakkeet" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Työmäärien koostaminen" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Työmäärä: %d valittu, %d näkyvissä, %d yhteensä. Aikaa käytetty: %s valittu, " "%s näkyvissä, %s yhteensä" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Tila: %d seurannassa" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Yksityiskohdat:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Valittujen tehtävien työmäärät" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Lajittele kategoriat otsikon mukaan" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Lajittele kategoriat selitteen mukaan" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Lajittele kategoriat luontiajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Lajittele kategoriat muokkausajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Lajittele kategoriat manuaalisesti" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Lajittele liitteet otsikon mukaan" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Lajittele liitteet selitteen mukaan" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Lajittele liitteet kategorian mukaan" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Lajittele liitteet luontiajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Lajittele liitteet muokkausajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Lajittele huomautukset otsikon mukaan" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Lajittele huomautukset selitteen mukaan" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Lajittele huomautukset kategorian mukaan" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Lajittele huomautukset luontiajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Lajittele huomautukset muokkausajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Lajittele huomautukset manuaalisesti" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Lajittele tehtävät otsikon mukaan" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Lajittele tehtävät selitteen mukaan" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Lajittele tehtävät kategorian mukaan" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Lajittele tehtävät luomisajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Lajittele tehtävät muokkausajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Lajittele tehtävät manuaalisesti" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Lajittele suunnitellun aloituspäivän mukaan" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "Suunniteltu aloituspäivä" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Lajittele päättymispäivän mukaan" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Päättymispäivä" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Lajittele tehtävät valmistumispäivän mukaan" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Valmistumispäivä" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Lajittele tehtävät vaadittavien tehtävien mukaan" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "Vaatimukset" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Lajittele tehtävät riippuvien tehtävien mukaan" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "Riippuvuudet" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Lajittele tehtävät jäljellä olevan ajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "Aikaa jäljellä" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Lajittele tehtävät valmiusaste prosentteina mukaan" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "Valmiusaste &prosentteina" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Lajittele tehtävät toiston mukaan" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "Toisto" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Lajittele arvioidun ajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "Arvioitu aika" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Lajittele tehtävät kulutetun ajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Jäljellä oleva arvioitu aika" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Lajittele tehtävät jäljellä olevan arvioidun ajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Lajittele tehtävät tärkeyden mukaan" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Lajittele tehtävät tuntitaksan mukaan" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Tuntitaksa" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Lajittele tehtävät kiinteän taksan mukaan" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Kiinteä taksa" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Lajittele tehtävät tuoton mukaan" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Lajittele tehtävät muituttajan päiväyksen ja kellonajan mukaan" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "Muistuttaja" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "Otsikko" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Lajittele huomautukset kategorioiden mukaan" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Huomautukset: %d valittu, %d yhteensä" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Tila: (ei tiedossa)" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tehtävät: %d valittu, %d näkyvissä, %d yhteensä" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Tila: %d yliajalla, %d myöhässä, %d ei-aktiivisena, %d valmiina" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Klikkaa shift pohjassa suodintyökalua nähdäksesi ainoastaan vastaavat " "tehtävät" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tehtävät" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Aikajana" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Nyt" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Tehtävien ruutukartta" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Tehtävien näyttöperuste" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hierarkinen kalenteri" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Hierarkisen kalenterin asetukset" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Kalenterinäkymän asetukset" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Manuaalinen järjestys" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Näytä \"Manuaalinen järjestys\" -sarake, raahaa ja pudota kohteita tästä " "sarakkeesta lajitellaksesi ne." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Riippuvaisuudet" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% valmiina" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Aikaa jäljellä" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "Päiväykset" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "Kaikki päiväyssarakkeet" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Näytä/piilota kaikki päiväyksiin liittyvät sarakkeet" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Näytä/piilota suunniteltu aloituspäivän sarake" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Näytä/piilota päättymispäivän sarake" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Varsinainen aloituspäivä" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Näytä/piilota varsinaisen aloituspäivän sarake" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Näytä/piilota valmistumispäivän sarake" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Näytä/piilota jäljellä olevan ajan sarake" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Näytä/piilota toiston sarake" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "Kaikki arvioidun ajan sarakkeet" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Näytä/piilota kaikki arvioituun aikaan liittyvät sarakkeet" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Näytä/piilota arvioidun ajan sarake" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "Arvioitua aikaa jäljellä" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Näytä/piilota jäljellä olevan arvioidun ajan sarake" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "Talous" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "Kaikki talouteen liittyvät sarakkeet" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Näytä/piilota kaikki talouteen liittyvät sarakkeet" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Näytä/piilota tuntitaksan sarake" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Näytä/piilota kiinteän taksan sarake" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Näytä/piilota vaatimukset -sarake" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Näytä riippuvaisuudet -sarake" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Näytä/piilota valmiusaste prosentteina sarake" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Näytä/piilota liitteen sarake" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Näytä/piilota tärkeyssarake" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Näytä/piilota muistuttajan sarake" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Näytä tehtävät" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Tehtävän tilastot" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Pilkku" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tabulointi-merkki" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Välilyönti" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Kaksoispiste" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Puolipiste" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Putki" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "PP/KK (päivä ensin)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "KK/PP (kuukausi ensin)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Yksinkertainen lainausmerkki" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Kaksinkertainen lainausmerkki" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Kaksinkertaista se" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Merkki" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Tuo vain valitut rivit" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Ensimmäinen rivi kuvaa kentät" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Erotin" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Päiväyksen formaatti" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Lainausmerkki" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Ecape-merkki" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Kenttä #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Ole hyvä ja valitse tiedosto" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategoria" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Muistuttajan päivä" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Prosenttia valmiina" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Sarakkeen otsikko CSV-tiedostossa" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s attribuutti" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Ei kenttien täsmäystä" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Kenttää \"%s\" ei voi valita useita kertoja." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Kenttiä %s ei voi valita useita kertoja." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Sisällysluettelo" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Tietoa tehtävistä" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Tehtävän ominaisuudet" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Tehtävän tilat" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Tehtävän värit" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Muistutukset" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Tietoa työmäärästä" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Työmäärän ominaisuudet" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Tietoa kategorioista" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "kategorian ominaisuudet" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Tietoa huomautuksista" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Huomautuksen ominaisuudet" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Tulostus ja vienti" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Tietoa tulostuksesta ja viennistä" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Tulostaa" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Vienti menossa" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Monikäyttäjä käyttö" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "Tietoja monikäyttäjä käytöstä" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Tallennus optiot" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Tehtävien lähettäminen sähköpostilla" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Muokattavat ominaisuudet sähköpostitukseen" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Sähköpostiliitännät" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Tietoa sähköpostiliitännästä" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Sähköpostin liittäminen tehtävään" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Tehtävän luominen sähköpostista" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML-tuki" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Mitä on SyncML?" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Asetukset" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Rajoitukset" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Vianmääritys" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Poistettujen tietojen tyhjentäminen" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone ja iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s iPhone:ssa" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Asetukset" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s Android:ssa?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt ja Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Todo.txt:n tuonti" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Todo.txt:n vienti" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Tehtävien mallipohjat" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Tietoa mallipohjista" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Mallipohjien käyttäminen" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Graafinen käyttöliittymä" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Näppäimistön pikanäppäimet" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Tehtävät ovat perusasioita, joita käsittelet. Tehtävät voivat olla\n" "mitä tahansa pienimmästä asiasta, mikä sinun täytyy tehdä,\n" "kokonaiseen projektiin koostuen erilaisista vaiheista ja useista " "toimenpiteistä." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Tehtävillä on seuraavia ominaisuuksia, joita voit muuttaa:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Otsikko: yksi rivi, joka kuvaa tehtävän lyhyesti." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Selite: monirivinen kuvaus tehtävästä." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Suunniteltu aloituspäivä: ensimmäinen päivä, jolloin tehtävä voidaan " "aloittaa.\n" "Suunnitellun aloituspäivän oletus on tehtävän luontipäivä. Se voi olla 'Ei " "mitään',\n" "mikä tarkoittaa, että et halua aloittaa tätä tehtävää. Tämä voi soveltua\n" "käytettäväksi esimerkiksi sairasloman osoittamiseksi." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Päättymispäivä: päivä, jolloin tehtävän pitäisi valmistua.\n" "Tämä voi olla 'Ei mitään', mikä tarkoittaa, että tälle tehtävälle \n" "ei ole kiinteää päättymispäivää." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Varsinainen aloituspäivä: päivä, jolloin tehtävä oli varsinaisesti " "aloitettu.\n" "Varsinaista aloituspäivää voidaan muuttaa suoraan, mutta se muuttuu myös \n" "silloin, kun seuraat tehtävän työmäärää tai kun asetat tehtävän " "valmiusasteen \n" "prosentteina (arvo välillä 0% ja 100%)." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Valmistumispäivä: tämä on 'Ei mitään' niin kauan, kun tehtävä\n" "ei ole valmis. Tämä asetetaan sille päivälle, milloin merkitset sen\n" "valmiiksi. Valmistumispäivä voidaan asettaa myös käsin." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Vaatimukset: muut tehtävät, jotka täytyy saada valmiiksi\n" "ennenkuin tehtävä voidaan aloittaa. Tehtävä jää ei-aktiiviseksi niin \n" "kauaksi aikaa kunnes viimeinen vaadittava tehtävä on valmistunut.\n" "kunnes viimeinenkin vaadittu tehtävä on valmis. Huomaa, että jos tehtävällä\n" "on erityinen suunniteltu aloituspäivä asetettuna, aloituspäivän täytyy olla " "menneisyydessä\n" "ja kaikkien vaadittujen tehtävien täytyy olla valmiina ennenkuin \n" "tehtävästä tulee myöhässä oleva." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Arvioitu aika: tehtävälle varatut tunnit." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Tuntitaksa: rahamäärä, jonka tehtävä tuottaa tunnissa." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Kiinteä taksa: rahamäärä, jonka tehtävä tuottaa riippumatta\n" "siitä, kuinka kauan siihen menee." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Seuraavat tiedot lasketaan ylläolevista tiedoista:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Päiviä jäljellä: jäljellä olevien päivien määrä ennen päättymistä." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "Riippuvuudet" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Käytetty aika: tehtävään käytetty työmäärä." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Arvioitu aika jäljellä: tehtävän arvioitu aika vähennettynä tehtävään " "käytetyllä ajalla." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" "Tuotto: tuntitaksa kertaa käytetty aika lisättynä kiinteällä taksalla." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Tehtävillä on aina tarkalleen yksi seuraavista tiloista:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktiivinen: varsinainen aloitusaika on menneessä ajassa;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Ei-aktiivinen: tehtävää ei ole aloitettu ja/tai \n" "kaikki vaadittavat tehtävät eivät ole valmistuneet;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Valmis: tehtävä on valmis." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Lisäksi tehtäviä voidaan merkitä seuraavasti:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Yliaika: päättymisaika on menneisyydessä" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Päättyy pian: päättymisaika on pian (mitä 'pian' on, \n" "voidaan muuttaa asetuksissa)" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Myöhässä: suunniteltu aloitus on menneessä ajassa ja tehtävää \n" "ei ole aloitettu;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Yli arvioidun ajan: ei arvioitua aikaa jäljellä" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Alle arvioidun ajan: arvioitua aikaa on jäljellä" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Ei arvioitua aikaa: tehtävällä ei ole arvioitua aikaa." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Tehtävien teksti värjätään seuraavien sääntöjen mukaan:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Yli ajan olevat tehtävät ovat punaisia" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" "Tehtävät, jotka päättyvät pian, ovat oranssilla" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" "Aktiiviset tehtävät ovat mustalla ja sinisellä " "kuvakkeella" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Myöhässä olevat tehtävät ovat violetteja;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Tulevat tehtävät ovat harmaalla" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Valmiit tehtävät ovat vihreällä." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Nämä väritykset pätevät tietysti, jos et ole muokannut värejä Asetukset-" "ikkunan kautta." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Tehtävien taustaväri määräytyy sen mukaan, mihin kategoriaan tehtävä kuuluu, " "katso kappale kategorian ominaisuudet." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Voit asettaa muistutuksen päivälle ja ajalle. %(name)s näyttää\n" "muistutuksen asetettuna aikana. Voit avata tehtävän, ryhtyä seuraamaan\n" "työmäärää tai merkitä tehtävän valmiiksi muistutusikkunassa. Muistutusta\n" "voi myös torkuttaa." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Jos sinulla on Growl tai Snarl käytössä, voit määrätä asetuksista\n" "%(name)s :n käyttämään niitä muistutuksissa." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Aina, kun käytät aikaa tehtäville, voit tallentaa tehtävälle käytetyn \n" "ajan seuraamalla työmäärää. Valitse tehtävä ja valitse 'Aloita työmäärän " "seuranta' Työmäärä-valikossa tai popup-valikossa tai paina 'Aloita työmäärän " "seuranta' työkalurivin painiketta." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Työmäärä sisältää seuraavat tiedot, joita voit muuttaa:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Tehtävä: tehtävä, johon työmäärä kuuluu." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Aloitupäivä/aika: työmäärän aloituspäivä ja -aika." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Lopetuspäivä/aika: työmäärän lopetuspäivä ja -aika. \n" "Tämä voi olla 'Ei mitään' niin kauan, kun työskentelet \n" "tehtävän parissa." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Selite: työmäärän monirivinen kuvaus." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Kulutettu aika: kuinka kauan aikaa on kulunut tehtävän parissa." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Tuotto: tehtävään kulutetun ajan tuotto." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Kategoriaa käytetään asioiden luokitteluun eli ryhmittelyyn \n" "eli asioita voidaan erotella toisistaan kategorioiden avulla. Tehtävät \n" "kuuluvat yhteen tai useampaan kategoriaan. Ensin täytyy luoda kategoria, " "jota \n" "haluat käyttää 'kategoria'-valikon kautta. Sitten lisäät \n" "tehtävän yhteen tai useampaan kategorian muokkaamalla \n" "tehtävää ja valitsemalla halutut kategoriat tälle \n" "tehtävälle tehtävämuokkaimen kategoria-ikkunassa." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Voit rajoittaa tehtävän näkyvyyttä yhdelle tai \n" "useammalle kategorialle valitsemalla kategorian kategorianäkymässä. \n" "Esimerkiksi, jos sinulla on kategoria 'Puhelut' ja valitset tuon kategorian, " "\n" "tehtävänäkymissä näkyvät ainoastaan ne \n" "tehtävät, jotka kuuluvat tuohon kategoriaan. Toisin sanoen ne puhelut, \n" "jotka sinun täytyy soittaa." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Kategorioilla on seuraavia ominaisuuksia, joita voit muuttaa:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Otsikko: yksi rivi, joka kuvaa kategorian yleisesti." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Seliet: monirivinen kategorian kuvaus." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Toisensa poissulkevat alikategoriat: valintaruutu, jolla osoitetaan, onko \n" "kategorian alikategoriat toisensa poissulkevia. Mikäli näin on, " "alikategoriat voivat \n" "kuulua vain yhteen alikategoriaan. Suodatettaessa voit suodattaa " "alikategoria \n" "kerrallaan." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Ulkonäköön liittyvät ominaisuudet kuten kuvake, kirjasin tai värit:\n" "näitä ominaisuuksia käytetään näytettäessä kategoria, mutta myös " "näytettäessä \n" "tietoja, jotka kuuluvat kyseiseen kategoriaan. Mikäli alikategorialla ei ole " "omaa \n" "väriä, kirjasinta tai kuvaketta, mutta isäntäkategorialla on kyseinen " "omainaisuus, \n" "isäntäkategorian omainaisuutta käytetään. Mikäli tehtävä kuuluu useisiin \n" "kategorioihin, joissa kussakin on oma yksiköllinen väri, värien sekoitusta " "käytetään \n" "esittämään tieto." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Huomautuksia voidaan käyttää liittämään haluamaasi satunnaista tietoa \n" "tehtävätiedostoon. Huomautukset voivat olla itsenäisiä tai ne voivat liittyä " "\n" "muuhun tietoon kuten tehtäviin tai kategorioihin. Yksittäiset huomautukset \n" "näytetään erillisessä huomautusikkunassa." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Huomautuksella on seuraavia ominaisuuksia, joita voit muuttaa:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Otsikko: yksi rivi, joka kuvaa tehtävän lyhyesti." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Selite: monirivinen kuvaus tehtävästä." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Näkyvyyteen liittyvät ominaisuudet kuten kuvake, kirjasin ja värit." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Sekä tulostus ja vienti toimivat samalla tavalla: kun tulostat\n" "tai viet tietoa, tieto aktiivisesta ikkunasta tulostetaan tai viedään.\n" "Lisäksi tieto tulostetaan ja viedään sellaisena kuin se näytetään.\n" "Tieto tulostetaan ja viedään samassa järjestyksessä kuin se näytetään.\n" "Ne sarakkeet, jotka ovat näkyvissä määräävät sen, mitä tulostetaan tai \n" "viedään. Kun suodatat tietoa, esimerkiksi piilotat tehtäviä, tiedot eivät\n" "tulostu tai niitä ei viedä." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Valmistele näyttöikkunan sisältö laittamalla tiedot oikeaan\n" "järjestykseen, näytä tai piilota halutut sarakkeet ja aseta vaaditut\n" "suodattimet." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Voit esikatsella miltä tulostus näyttää valitsemalla Tiedosto -> " "Tulostuksen\n" "esikatselu. Voit muuttaa sivun asetteluja valitsemalla Tiedosto -> Sivun\n" "asetukset. Mikäli tulostus ja käyttöjärjestelmä tukevat voit valita\n" "tulostukseen joko kaikki tai vain valitut tiedot." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Valitse seuraavaksi vientiformaatti ja haluatko viedä kaikki tiedot vai\n" "pelkästään valitut. Tarjolla olevat formaatit: CSV (comma separated values;\n" "pilkulla erotetut arvot), HTML ja iCalendar. Kun viet HTML-formaatissa,\n" "myös CSS tiedosto luodaan. Voit muuttaa sitä mikäli haluat muuttaa\n" "oletusulkoasua." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Muokkaa tehtävän sähköpostilla lähettämisen asetuksia" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "Voit muokata sähköpostituksen käyttäytymistä käyttämällä tehtävän \n" "kuvauksessa komentoja, kuten 'cc' ja 'to'. Esimerkkejä" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Tehtävätiedoston voi avata %(name)s:n usea ilmentymä joko samalla tai eri\n" "koneella tai verkkolevyn kautta. Kun tallennat, %(name)s itse asiassa \n" "yhdistää työsi sen kanssa, joka on tallennettu sinun tallennuksen jälkeen.\n" "Ristiriidat tiedostossa ratkaistaan automaattisesti yleensä niin, että\n" "sinun tallennus ratkaisee. Tämä käsittää kaksi käyttötapausta:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Yksittäinen käyttäjä, joka avaa tehtävätiedoston useilla \n" "tietokoneilla (työ-, koti-, kannettava kone)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Useat käyttäjät työskennellen samalla tehtävätiedostolla." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "Ensimmäinen tapaus on yleisin ja turvallisin. Toinen tapaus voi olla\n" "vaarallinen. Useimpien verkkojen levynjakoprotokollat eivät tue\n" "tiedostojen lukitusta niin, että se olisi 100%:n varma. Seuraavassa on\n" "listaus yleisimmistä protokollista ja niiden toiminnallisuuksista." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Mikään tässä mainituista jako-optioista ei toimi täysin. Jos kaksi\n" "käyttäjää tallentaa muutoksensa muutaman sadasosa milliskunnin aikana,\n" "data voi hävitä." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "Tämä on yleisin protokolla: Windows-jaot ja sitä vastaavat (Samba). Jos\n" "palvelin ja asiakas eivät tue tiettyjä laajennoksia, Task Coach ei pysty\n" "havaitsemaan automaattisesti, jos joku muu on muuttanut tiedostoa." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Ei ole testattu vielä." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Suosittu tapa päästä kiinni tiedostoihin usealta tietokoneelta (katso\n" "myös SpiderOak turvallisempana vaihtoehtona). %(name)s havaitsee oikein\n" "tehtävätiedoston muutokset, kun sitä päivitetään." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integroi useita sähköpostitohjelmistoja \n" "raahaa-ja-pudota -menetelmällä. Tällä käytöllä on muutamia \n" "rajoituksia: sähköpostit kopioidaan samaan hakemistoon ohjelmiston %(name)s " "kanssa \n" "*.eml-tiedostoiksi. Nämä tiedostot avataan myöhemmin sillä ohjelmalla, \n" "joka on liitetty näihin tiedostopäätteisiin. Toisin sanoen tämä \n" "mahdollistaa näiden sähköpostin liitetiedostojen avaamisen eri \n" "järjestelmässä kuin missä tiedostot luotiin." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Tuettuja sähköpostiohjelmistoja:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Thunderbirdin rajoituksen vuoksi et voi raahata ja pudottaa useita " "sähköposteja \n" "Thunderbirdistä. Tämä ei koske Outlookia." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" "Sähköposti on mahdollista liittää tehtävään \n" "kahdella tavalla. Voit:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" "pudottaa sen tehtävään joko tehtävän puunäkymässä tai tehtävälistassa" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "pudottaa sen liitealueelle tehtävämuokkaimessa." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Pudottamalla sähköposti tyhjään kohtaan tehtävien \n" "puunäkymässä tai tehtävälistassa luo uuden \n" "tehtävän. Sen otsikko on sähköpostin otsikko ja \n" "selite on sen sisältö. Sähköposti liitetään \n" "automaattisesti juuri luotuun tehtävään." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML on XML-pohjainen protokolla, joka on suunniteltu useiden " "ohjelmistojen synkronointiin palvelimen kanssa. Suosittu avoimen koodin " "palvelin on Funambol. Synkronointiohjelmia on useille laitteille " "ja ohjelmille (Outlook, Pocket PC, iPod, iPhone, Evolution, jne...) kuten " "myös niin sanotuille \"liitosohjelmille\", jotka mahdollistavat palvelimen " "synkronoinnin mm. seuraavien ohjelmien ja järjestelmien kanssa: Exchange, " "Google Calendar, jne." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s:ssa on sisäänrakennettu SyncML-asiakastuki Windowsille\n" "ja Mac OS X:lle (edellyttäen, että käytät toimitettuja binääritiedostoja).\n" "Tämä tarkoittaa, että voit asettaa %(name)s:n synkronoitumaan saman\n" "SyncML-palvelimen kanssa, jota käytät Outlookin kanssa. Sinulla voi olla\n" "kaikki Outlookin tehtävät ja huomautukset %(name)s-tiedostossa kuten\n" "kaikki %(name)s:n tehtävät ja huomautukset Outlookissa. Tai Pocket PC:ssä." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "Linuxia käytettäessä täytyy asentaa SyncML Pythoniin. 64 bittinen\n" "Debian-paketti Python 2.7:lle on ladattavissa osoitteessa \n" "taskcoach.org, \n" "Linux-osion loppuosassa." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Tämä ominaisuus on valinnainen ja se on poissa päältä oletuksena. Saadaksesi " "\n" "sen päälle, avaa Asetus-ikkuna ja valitse se Ominaisuudet-sivulla." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Tehdäksesi SyncML-asetuksia, muokkaa SyncML-asetuksia ikkunassa \n" "Muokkaa/SyncML asetukset. Täytä synkronointi osoite (URL), ID-tunnuksesi \n" "palvelimella ja valitse kohteet, jotka haluat synkronoida (tehtävät ja/tai \n" "huomautukset). URL riippuu siitä, minkä palvelimen valitset. Tässä muutamia " "\n" "esimerkkejä:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Tietokannat ovat yleensä kohtuullisen standardeja; oletusarvojen pitäisi \n" "toimia." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Jokainen tehtävätiedosto sisältää oman asiakas-ID:n, joten kaksi \n" "erilaista tehtävätiedostoa katsotaan erillisiksi \"laitteiksi\" \n" "palvelimella." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Joitakin ominaisuuksia ei voida käyttää palvelimella, koska \n" "%(name)s käyttää tiedon esittämiseen vcalendar:ia. Tästä johtuu muutamia \n" "rajoituksia." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Tehtävä- ja kategoriahierarkia häviää palvelimella." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Toisto ja muistuttajat eivät ole tuettuja vielä." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Huomautuskategoriat häviävät palvelimella." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Ristiriitaisuuksien havainnointi/korjaaminen on Funambol-\n" "rajoituksen kiertotie. Sen pitäisi toimia useimmissa tapauksissa, \n" "mutta, jos useat ohjelmat synkronoivat samalle palvelimelle yhtä \n" "aikaa, ongelmia voi syntyä." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Mahdollisesti joitakin muita..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "SyncML-valikon valinnat ovat näkyvissä vain, jos käyttöjärjestelmäsi on " "tuettu. Tämän hetkiset tuetut käyttöjärjestelmät ovat:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32-bittinen (katso huomautus alla)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32-bittinen" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 ja myöhempi, sekä Intel että PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Voit kohdata ongelmia Windowsissa, jos sinulla ei ole \n" "asennettuna Microsoftin Visual 8 ajoaikaista kirjastoa. Voit \n" "ladata sen osoitteesta Microsoft download " "site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Kun SyncML on toiminnassa, tehtävän tai huomautuksen poisto ei poista \n" "sitä oikeasti vaan se merkitään poistetuksi. Poistettu tehtävä tai huomautus " "\n" "poistetaan oikeasti tehtävä- tai huomautuslistasta seuraavassa \n" "synkronoinnissa. Tämän vuoksi, jos sattumoisin käytät SyncML-ominaisuutta, \n" "ja sitten poistat sen käytöstä tekemättä synkronointia, tehtävätiedostossa \n" "saattaa olla joitakin poistamattomia tehtäviä tai huomautuksia. Tämä ei ole " "\n" "ongelma, mutta se vie hieman lisää levytilaa." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "Tässä tapauksessa valikon valintaa \"Tyhjennä poistetut tiedot\" Tiedosto-\n" "valikossa voidaan käyttää tehtävien poistoon. Toiminto on sallittu vain, kun " "\n" "tarvitset sitä eli vain silloin, kun tyhjennettäviä tietoja on olemassa. Ole " "\n" "kuitenkin varovainen, sillä tämän toiminnon jälkeen, jos sallit SyncML:n \n" "uudelleen ja teet synkronoinnin saman palvelimen kanssa, jota käytit \n" "aikaisemmin, kaikki nuo tiedot tulevat näkyviin uudelleen, koska palvelin ei " "\n" "tiedä, että ne on poistettu." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch ja iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s iPhonessa/iPod Touch:ssa/iPad:ssa" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "%(name)s:lle on kumppaniohjelma iPhonelle/iPod Touch:lle/iPad:lle Apple:n AppStoressa. \n" "(Jos koneellesi ei ole asennettuna iTunes:ia, sinut ohjataan sivulle, josta " "voit ladata ohjelman.)\n" "\n" "Ohjelma sisältää seuraavat ominaisuudet:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Tehtävien perusominaisuudet: otsikko, selite, päiväykset \n" "(mukaan lukien toistettavauus)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarkiset tehtävät ja kategoriat" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Ajan seuranta" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Useat tehtävätiedostot" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Kaksisuuntainen syknronointi %(name)s:n kanssa työpöydältä" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "Sovellus on yleiskäyttöinen ja siinä on oma iPad käyttöliittymä" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Asetukset iPhonessa/iPod Touch:ssa/iPad:ssa" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "iPhone/iPod Touch/iPad-sovellusta varten on muutamia asetuksia \"Asetukset\" " "(\"Settings\") -ohjelmassa:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Show completed (Näytä valmiit): näytetäänkö valmiit tehtävät." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Show inactive (Näytä ei-aktiiviset): näytetäänkö ei-aktiiviset \n" "(suunniteltu aloituspäivä tulevaisuudessa)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Icon position (Kuvakkeen paikka): LED-kuvake voi esiintyä ruudun vasemmalla " "tai oikealla puolella." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Compact mode (Suppea näyttötila): jos tämä on käytössä, tehtävälistassa on " "pienemmät LEDit ja näkyvissä ei ole kategorioita eikä päiväyksiä." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirm complete (Vahvista valmiit): jos käytössä, kun merkitset tehtävän " "valmiiksi napsauttamalla sen LEDiä, viesti-ikkuna tulee näkyviin " "varmistukseksi." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "Päivien määrä määreelle \"pian\": Kuinka monta päivää tulevaisuudessa \n" "katsotaan tapahtuvaksi \"pian\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Asetusten teko työpöydällä, kaikki käyttöjärjestelmät" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Ennen synkronointia sinun täytyy tehdä asetuksia %(name)s:ssa: valitse \n" "\"Asetukset\" päävalikon valinnasta ja valitse painikkeesta \"Ominaisuudet\"-" "\n" "ikkuna. Laita rasti ruutuun \"Salli iPhone synkronointi\". Käynnistä \n" "%(name)s uudelleen. Nyt asetuksissa valitse \"iPhone\"-välilehti ja täytä \n" "vähintään salasana." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Kun painat \"Sync\"-painiketta kategoria-näkymässä, %(name)s tunnistaa \n" "automaattisesti käynnissä olevat %(name)s-ohjelmat ja pyytää sinua \n" "valitsemaan yhden (sinulla voi olla käynnissä useita ohjelmia joko useilla \n" "tietokoneilla verkossasi tai useita ohjelmia samalla tietokoneella). \n" "Oletuksena näytettävä nimi on jokin merkkijono, joka yksilöi tietokoneen, \n" "jossa ohjelma toimii. Jos haluat muokata tätä, muuta merkkijonoa kohdassa \n" "\"Bonjour-palvelun nimi\", joka löytyy asetuksista." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s muistaa valitun ohjelman ja yrittää käyttää sitä seuraavalla \n" "kerralla, kun synkronoit. Jos se ei ole käynnissä, se kysyy sitä \n" "sinulta." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Huomaa, että synkronointi tapahtuu verkon yli: ei ole tarpeen kytkeä \n" "laitetta USB-johdon kautta eikä iTunes:iin." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Asetukset Windowsissa" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Windowsissa sinun täytyy asentaa Bonjour for Windows ja\n" "sallia sen käyttö, kun palomuuri kysyy sen käyttöä." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Asetukset Linuxissa" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "Linuxissa sinulla täytyy olla asennettuna Avahi\n" "ja käynnissä. Useimmissa nykyisissä uusissa jakeluissa tämä on mukana.\n" "Asennettuna täytyy olla myös dnscompat-paketti; sen nimi riippuu\n" "käyttämästäsi Linux-jakelusta (esimerkiksi libavahi-compat-libdnssd1 \n" "Ubuntuntussa)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "En löydä iPhone/iPod Touch sovellusta Applen web-sivulta" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Kun selaat AppStore:a tietokoneella, sinulla täytyy olla iTunes asennettuna. " "\n" "Lataa iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Tietokoneeni ei esiinny listassa, kun yritän synkronoida" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Tarkista, että iPhone/iPod Touch on kytkettynä WiFin kautta samaan \n" "verkkoon kuin tietokoneesi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone ei voi kytkeytyä tietokoneeseeni" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Jos sinulla on palomuuri koneellasi, tarkista, että portit \n" "4096-4100 ovat avoinna." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "%(name)s ei ole valitettavasti saatavana Android alustalle. Mutta,\n" "Todo.txt Touch on.\n" "Voit viedä tehtäväsi %(name)s:sta Todo.txt-formaattiin ja sen jälkeen voi muokata\n" "Androidilla." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt on open source tehtävälistaohjelma (tekijä: Gina Trapani),\n" "joka toimii pelkillä tekstitiedostoilla. Todo.txt sisältää\n" "komentorivikäyttöliittymän. Koska tiedostoformaatti on pelkkä teksti, voit\n" "muokata tehtäviäsi millä tahansa tekstieditorilla. Todo.txt Touch \n" "on Todo.txt:n versio Android-alustalle. Todo.txt Touch käyttää\n" "todo.txt-tiedostoa, joka sijaitsee Dropbox-hakemistossa. %(name)s\n" "osaa tuoda ja viedä todo.txt-tiedoston tuon hakemiston kautta." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "Muokatessa Todo.txt:tä. %(name)s lup uuden tiedoston kohteen \n" "rinnalle lisäten siihen \"meta\". Älä poista tätä tiedostoa; %(name)s \n" "käyttää sitä pitääkseen kirjaa ulkopuolisista muutoksista. Jos syntyy \n" "ristiriitoja, Todo.txt voittaa ristiriidan." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s tuo tehtäväotsikot, suunnitellut aloitus- ja valmistumispäivät, \n" "tärkeystason, kontekstit ja projektit. Kontekstit (asiayhteydet) ja " "projektit \n" "molemmat muutetaan kategorioiksi %(name)s:ssa. Projekteja ei voi tuoda \n" "isäntätehtäviin, koska Todo.txt sallii tehtävien kuulua moniin projekteihin, " "kun \n" "taas %(name)s sallii vain yhden isäntätehtävän per tehtävä." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Kun viet, %(name)s yrittää löytää vastaavat tehtävät ja kategoriat ja " "päivittää\n" "nuo sen sijaan että loisi uudet. Ohjelma etsii vastaavat katsomalla " "tehtävän\n" "(tai projektin tai kontekstin) otsikkoa ja isäntäaihetta, mikäli löytyy." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s vie tehtäväotsikot, suunnitellut aloitus- ja valmistumispäivät, \n" "tärkeystason ja kategoriat Todo.txt formaatissa. Muista attribuutteja ei " "viedä." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s tukee päiviä ja aikoja, mutta Todo.txt tukee vain päiviä, joten\n" "ajan osuutta aloituksessa, päättymisessä ja valmistumisessa ei voi viedä." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Oletus Todo.txt formaatti tukee suunniteltuja aloitus- ja " "valmistumispäiviä,\n" "mutta ei päättymisaikoja. Tämän vuoksi %(name)s käyttää laajennosta " "tehtävien\n" "päättymisaikojen vientiin. Päättymisajat näytetään muodossa \"due:YYYY-MM-" "DD\"\n" "todo.txt-tiedostossa." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt:ssä tärkeystasot ovat kirjainmuodossa ('A'-'Z').\n" "%(name)s:ssa on numeeriset tärkeystasot. %(name)s:n tärkeystaso 1 " "muunnetaan\n" "kirjaimeksi 'A', 2 kirjaimeksi 'B' jne. ja 26 kirjaimeksi 'Z'. %(name)s:n\n" "tärkeystasoja pienemmät kuin 1 ja suuremmat kuin 26 ei viedä ulos ohjelmasta." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "kategoriat, joiden otsikko alkaa '+'-merkillä viedään projekteina.\n" "kategoriat, joiden otsikko alkaa '@'-merkillä viedään sisältönä.\n" "kategoriat, joiden otsikko ei ala '+'- eikä '@'-merkillä, ei viedä " "tiedostoon.\n" "Alikategoriat viedään, jos isäntäkategoria viedään." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Mallipohjat ovat kopioita uusille tehtäville. Tällä hetkellä ainoat \n" "tehtävän ominaisuudet, jotka voidaan parametrisoida, ovat päiväykset. Kun \n" "mallipohjaa käytetään, luodun tehtävän päiväykset korvataan luontihetken \n" "päiväyksillä." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Voit luoda mallipohjan valitsemalla tehtävän (vain yksi) ja valitsemalla \n" "sitten Tiedosto-valikosta valinnan \"Tallenna mallipohjana\". Kaikki \n" "alitehtävät, huomautukset ja liitteet kuuluvat mallipohjaan. Vain " "kategorioita ei \n" "talleteta." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Voit myös luoda uuden mallipohjan etukäteen tehdystä \n" "mallipohjatiedostosta (.tsktmpl); valitse \"Tuo mallipohja\" Tiedosto-\n" "valikossa ja valitse tiedosto. Mallipohjatiedostot talletetaan samaan \n" "alihakemistoon kuin missä TaskCoach.ini on." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Tehdäksesi tehtävän mallipohjasta käytä \"Uusi tehtävä mallipohjasta\" \n" "valintaa Tehtävä-valikossa tai vastaavaa työkalurivin painiketta. Kun \n" "tehtävä on luotu, lopetus-, aloitus- ja valmistumispäivät, mikäli ovat \n" "käytettävissä, arvioidaan uudelleen suhteellisena luontipäivälle. Tämä \n" "tarkoittaa sitä, että jos luot mallipohjan tehtävästä, joka alkaa \n" "tänään ja päättyy huomenna, joka kerta kun mallipohjaa käytetään, \n" "aloituspäiväksi tulee sen hetkinen päivä ja \n" "lopetuspäiväksi tulee sen hetkinen päivä lisättynä yhdellä päivällä." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Voit myös lisätä mallipohjia mallipohjaeditorissa (Tiedosto/Muokkkaa\n" "mallipohjia) kuten myös voit muokata mallin perusominaisuuksia (päivät ja\n" "aiheet). Päivät ilmoitetaan luettavassa formaatissa; päiväyseditori\n" "muuttuu punaiseksi, jos %(name)s ei voi se ei tunnista syötettyä päivää.\n" "Esimerkiksi päivät:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Ota huomioon, että tämä järjestelmä ei ole kansallistettu: sinun\n" "täytyy antaa päiväykset englantilaittain." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Voit raahata ja pudottaa näkymiä luodaksesi millaisen tahansa \n" "käyttöliittymäasettelun. Kun aloitat näkymän raahaamisen, näkyviin tulee \n" "pudota-vinkit, mitkä näyttävät, minne voit pudottaa näkymän. Näkymiä\n" "voidaan pudottaa myös toistensa sisään muistikirjan luomiseksi." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "Dialogien editoinnissa voit raahata ja pudottaa välilehtiä järjestelläksesi\n" "järjestystä uudelleen tai jos haluat luoda kokonaan uuden käyttöliittymän\n" "sijoittamalla välilehdet toistensa viereen." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Otsikoita ja tehtävien kuvauksia, huomautuksia ja kategorioita voidaan " "editoida\n" "ilman että editori-ikkuna avataan. Valitse kohde, minkä otsikkoa tai " "kuvausta\n" "haluat muuttaa ja valitse kohde uudelleen joko otsikko- tai " "kuvaussaraketta.\n" "Tekstikontrolli ilmestyy nkyviin, joka mahdollistaa otsikon tai kuvauksen\n" "muuttamisen. Paina Enter kuittaaksesi muutokset. Paina Esc peruuttaaksesi\n" "muutokset. F2 näppäimistön pikanäppäin otsikon muuttamiselle." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s:ssa on useita näppäimistö pikanäppäimiä. Nämä on listattu \n" "alla. Pikanäppäimet eivät aseteltavissa tällä hetkellä." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux ja Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux ja Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux ja Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Sijoita uusi alitieto" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Muuta valittuja aiheita tai sulje ikkuna" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Merkitse valitut tehtävät keskeneräisiksi" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Peruuta ikkuna tai siirrä näppäimistön fokus etsintäkontrollilta takaisin " "näkymään" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Siirrä näppäimistön fokus seuraavaan kenttään ikkunalla" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Siirrä näppäimistön fokus edelliseen kenttään ikkunalla" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" "Siirrä näppäimistön fokus seuraavaan välilehteen muistikirjan kontrolliin" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" "Siirrä näppäimistön fokus edelliseen välilehteen muistikirjan kontrolliin" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Ponnahdusvalikko tai alasvetolista" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Muokkaa valitun tiedon otsikkoa näkymässä" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versio %(version)s, %(date)s
    \n" "

    Tekijät: %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s:ia kehitetään aktiivisesti. Vaikka %(name)s -kehittäjät yrittävät " "estää, virheitä tapahtuu. Joten merkintöjesi varmuuskopioiminen " "säännöllisesti on erittäin suositeltavaa." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "Ohjelmalla %(name)s on sähköpostilista, jossa voit keskustella %(name)s " "ohjelmasta kumppanikäyttäjien kanssa, keskustella ja pyytää uusia " "ominaisuuksia ja tehdä bugiraportin. Mene osoitteeseen %(url)s ja liity " "tänään!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "Ohjelmassa %(name)s on rajoittamaton kumoa ja tee uudelleen -toiminnot. Mikä " "tahansa muutos, olipa se sitten tehtävän kuvauksen muutos tai työmäärän " "seurannan poisto, on peruutettavissa. Valitse 'Muokkaa' -> 'Kumoa' ja " "'Muokkaa' -> 'Tee uudelleen' mennäksesi taakse- tai eteenpäin " "muutoshistoriassa." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s on saatavissa usealla kielellä. Valitse 'Muokkaa' -> 'Asetukset' " "nähdäksesi, onko kielesi listalla. Jos kielesi ei ole saatavilla tai käännös " "tarvitsee parannusta, harkitse avustamista käännöksessä %(name)s. Vieraile " "osoitteessa %(url)s saadaksesi lisätietoa kuinka voit auttaa." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Jos annat web-osoitteen (URL) (esimerkiksi %(url)s) tehtävässä tai työmäärän " "selitteessä, osoitteesta tulee linkki. Valitsemalla linkin hiirellä linkki " "avautuu oletusselaimessasi." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Voit raahata ja pudottaa tehtäviä puunäkymässä järjestääksesi uudelleen " "pää/alitaso-yhteyksiä tehtävien välillä. Sama koskee kategorioita." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Voit raahta tiedostoja tiedostonhallinnasta tehtävään luodaksesi liitteitä. " "Raahaamalla tiedostoja välilehden päälle avaa kyseisen sivun, raahamalla " "tiedostoja suljetun tehtävärakennenäkymän päälle (neliöity plus-merkki), " "puunäkymä avautuu ja se näyttää alitehtävät." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Voit luoda erilaisia näkymiä raahaamalla ja pudottamalla välilehtiä. Näkymä " "tallennetaan ja käytetään uudelleen seuravalla käyttökerralla." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Mitä itse asiassa tulostetaan, kun valitset 'Tiedosto' -> 'Tulosta', riippuu " "sen hetkisestä näkymästä. Jos nykyinen näkymä sisältää tehtävälistan, " "tehtävälista tulostetaan. Jos nykyinen näkymä sisältää työmäärän " "ryhmiteltynä kuukausittain, se tulostetaan. Sama pätee näkyville " "sarakkeille, lajittelyjärjestykselle, suodatetuille tehtäville jne." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Valitse sarakkeen otsikko hiiren vasemmalla painikkeella, jolloin lista " "lajittuu sen sarakkeen mukaan. Valitse sama sarakkeen otsikko uudelleen, " "jolloin lajittelu muuttuu nousevasta laskevaan ja päinvastoin. Valitse " "sarakkeen otsikko hiiren oikealla painikkeella, niin sarake häviää näkyvistä " "tai tee ylimääräisiä sarakkeita näkyväksi." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Voit luoda mallipohjan tehtävästä vähentääksesi kirjoitusvaivaa, kun " "toistettava malli tulee esille." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab vaihtaa välilehtien välillä editointi-ikkunoissa." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Päivän vinkki" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Seuraava vinkki" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Näytä vinkkejä käynnistettäessä" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Selaa tiedostoja ja lisää liitteenä valittuihin tietoihin" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Lisää huomautus valittuihin tietoihin" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Lisää uusi kategoria" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Leikkaa valitut tiedot leikepöydälle" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopioi valitut tiedot leikepöydälle" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Liittää tiedot leikepöydältä" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Liitä tiedot leikepöydältä alitietona valittuun tietoon" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Muokkaa asetuksia" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Tee uudelleen viimeisin komento, joka oli tekemättä" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Valitse kaikki tiedot nykyisessä näkymässä" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Kumoa viimeisin komento" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Lisää työmääräjakso valittuihin tehtäviin" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Aloita valittujen tehtävien seuranta" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Lopeta työmäärän jäljitys tai jatka työmäärän jäljittämistä" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Sulje nykyinen tiedosto" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Poistu %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Avaa tiedosto %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Tallenna nykyinen tiedosto" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Lataa mikä on muuttunut levyllä" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Tallenna nykyinen tiedosto uudella nimellä" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Ohjelman ohje" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Lähetä valitut tiedot käyttäen oletussähköpostiohjelmaa" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Lisää uusi huomautus" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Avaa valittujen tietojen kaikki liitteet" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Avaa valittujen tietojen kaikki huomautukset" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Tulosta nykyinen tiedosto" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Aseta kirjoittimen sivun asetukset" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Näytä kaikki tiedot (nollaa kaikki suodattimet)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Näytä kaikki tiedot riippumatta kategoriasta" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Siirrä näppäimistön fokus näkymästä etsintä kontrolliin" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Vähennä valittujen tehtävien tärkeyttä" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Lisää valittujen tehtävien tärkeyttä" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Aseta valittujen tehtävien tärkeys korkeimmaksi" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Aseta valittujen tehtävien tärkeys matalimmamksi" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Lisää uusi tehtävä" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Supista kaikki tiedot alitietoineen" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Laajenna kaikki tiedot alitietoineen" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktivoi seuraava avoin näkymä" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktivoi edellinen avoin näkymä" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "iPhone tai iPod Touch yritti yhteyttä Task Coach:iin,\n" "mutta salasanaa ei ole asetettu. Aseta salasana\n" "asetusten iPhone-osuudessa ja yritä uudelleen." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protokollaversio: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Hylätty protokollaversio: %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash-arvo OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash-arvo KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Laitenimi: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Lähetetään tiedostoa: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Täynnä työpöydältä." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d kategoria" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Lähetä kategoria %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Vastaus: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tehtävää" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Lähetä tehtävä %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d työmäärää" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Lähetä työmäärä %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Valmis." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d uutta kategoria" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d uutta tehtävää" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d uuttaa työmäärää" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d muutettua kategoriaa" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d muokattua tehtävää" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d muokattua työmäärää" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d poistettua kategoriaa" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d poistettua tehtävää" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d poistettua työmäärää" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Uusi kategoria (pääkategoria: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Poista kategoria %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Muokkaa kategoriaa %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Uusi tehtävä %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Poista tehtävä %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Muokkaa tehtävää %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Synkronointi on päättynyt." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Työmäärälle ei löytynyt tehtävää %s." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Uusi työmäärä %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Muokkaa työmäärää %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Lähetetään GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Luetaan sähköpostin tietoja..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Luetaan sählöpostin tietoja. Ole hyvä ja odota." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Thunderbird:n datahakemistoa ei löydy" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Thunderbird:n profiilia ei löydy" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Ei oletuslohkoa profiles.ini-tiedostossa" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Vääränlainen Thunderbird:n sisäinen ID:\n" "%s. Ole hyvä ja tee virheraportti." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Hakemistoa ei löytynyt ID:lle:\n" "%s.\n" "Ole hyvä ja tee vikaraportti." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Tunnistamaton URL-osoite: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Ei voitu luoda IMAP yhteyttä %(server)s:%(port)s\n" " palvelimelle Thunderbirdin sähköpostiviestiä: %(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Ole hyvä ja anna domain käyttäjälle %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Ei voitu valita tulevan postin kansiota \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Ei sellaista sähköpostia: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Varsinainen aloitusaika" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Suunniteltu aloitusaika" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Päättymisaika" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Valmistumisaika" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Muistutusaika" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Luomisaika" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Jakson päättymispäivä" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Jakson päättymisaika" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Jakson aloituspäivä" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Jakson päättymisaika" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Ei otsikkoa" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Uusi tänään päättyvä tehtävä" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Uusi huomenna päättyvä tehtävä" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d päivää" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 päivä" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Joka %(frequency)d:s päivä" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Joka %(frequency)d:s viikko" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Joka %(frequency)d:s kuukausi" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Joka %(frequency)d:s vuosi" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Joka muu päivä" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Joka muu viikko" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Joka muu kuukausi" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Joka muu vuosi" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Eilen" #: taskcoachlib/render.py:284 msgid "now" msgstr "nyt" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Synkronointi lähteelle %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "päivitetään palvelimelta. Kaikki paikalliset tiedot\n" "poistetaan. Haluatko jatkaa?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "päivitetään päätelaitteelta. Kaikki paikalliset tiedot\n" "poistetaan. Haluatko jatkaa?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synkronointi" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synkronoidaan. Ole hyvä ja odota.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d tietoa lisätty.\n" "%d tietoa päivitetty.\n" "%d tietoa poistettu." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Synkronoinnin aikana on tapahtunut virhe.\n" "Virhekoodi: %d; viesti: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Sinun täytyy muokata ensin SyncML Asetuksia (ks. Muokkaa/SyncML asetukset)." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Panelin vaihtaja" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Palauta %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Paneeliesikatselu" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Sulje" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Sulje kaikki" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Seuraava" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Edellinen" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Ikkuna" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Muokkaa" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d viikko" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d tuntia" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Valmis" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Näytetyn jakson tyyppi ja sen lukumäärä" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Kuukausi" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Kalenterin suunta" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Vaakasuuntainen" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Pystysuuntainen" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Näytettävät tehtävät" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tehtävät suunnitellulla aloitus- ja lopetuspäivällä" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tehtävät suunnitellulla aloituspäivällä" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tehtävät päättymispäivällä" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Kaikki tehtävät" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Kaikki tehtävät paitsi suunnittelemattomat" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Piirrä jana näyttäen tämänhetkinen aika" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Tämänhetkisen päivän korostamiseen käytettävä väri" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Kaikki tiedostot (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Otsikot" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Viikkonumero" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Kalenterin aikajana" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Viikko" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Työviikko" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Salasana:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Tallenna avainketjuun" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Tapahtui virhe kun yritettiin löytää järjestelmäsi avainnippua. \n" "Ole hyvä ja lähetä bugi-raportti (katso ohje) ja lisää ruutukaappaus tästä " "viestistä.\n" "Virhe:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Ole hyvä ja anna salasanasi." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Ole hyvä ja anna salasanasi" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "Huomioi kirjainkoko" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Huomioi kirjainkoko, kun suodatetaan" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "Sisällytä alitiedot" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Sisällytä löydettyjen tietojen alitiedot etsintätuloksiin" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "Etsi myös selitteestä" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Etsi sekä otsikko että selite" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Kaava" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Käsittele hakutekstiä kaavana" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Tämä on väärä hakuehto (regular expression)." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Alimerkkijonojen haku oletuksena." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Viimeaikaiset haut" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Näkymässä ei voi tehdä hakua" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Yhteensopivuus varoitus" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "SyncML ominaisuus on poissa päältä, koska moduulia ei\n" "voitu ladata. Tämä voi johtua siitä, että alustasi\n" "ei ole tuettu tai Windowsissa sinulta puuttuu tarvittavia\n" "DLL:iä. Katso on-line -ohjeen SyncML-osuus lisätietojen\n" "saamiseksi (\"Vianmääritys\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Älä näytä tätä ikkunaa enää" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Virhe avattaessa URL-osoitetta" #~ msgid "&Delete\tDEL" #~ msgstr "Poista\tDEL" taskcoach-1.4.3/i18n.in/fr.po000077500000000000000000007162761265347643000156520ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: TaskCoach\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-10-24 17:31+0000\n" "Last-Translator: Jean-Marc \n" "Language-Team: Français \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: France\n" "Language: \n" "X-Poedit-Language: fr_FR\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Des erreurs se sont produites. Veuillez consulter \"taskcoachlog.txt\" dans " "votre dossier \"Mes Documents\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Erreur" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Il y a eu des erreurs. Veuillez consulter \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Impossible de charger la configuration depuis TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Erreur avec le fichier %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" est passé au plus haut niveau car son parent a été supprimé " "localement." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Conflits détectés pour \"%s\"" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Choisir l'emplacement des pièces jointes" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Choisir l'emplacement de la pièce jointe \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Ajouter une pièce jointe" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Ajouter une pièce jointe à \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nouvelle pièce jointe" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Supprimer la pièce jointe" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Supprimer la pièce jointe à \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copier" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copier \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Supprimer" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Supprimer \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Couper" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Couper \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Coller" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Coller \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Coller en tant qu'objet fils" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Coller en tant qu'objet fils de \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Glisser/déposer" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Glisser et déposer \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Éditer les sujets" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Éditer le sujet \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Editer les descriptions" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Editer la description de \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Modifier les icônes" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Modifier l'icône de \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Modifier les polices" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Modifier la police de \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Modifier les couleurs d'avant-plan" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Modifier la couleur d'avant-plan de \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Modifier les couleurs d'arrière-plan" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Modifier la couleur d'arrière-plan de \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Changer la catégorie" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Changer la catégorie de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nouvelle catégorie" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nouvelles sous-catégories" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nouvelle sous-catégorie de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nouvelle sous-catégorie" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Editer les sous-catégories exclusives" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Editer les sous-catégories exclusives de \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Supprimer les catégories" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Supprimer la catégorie \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Déplacer les catégories" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nouveau suivi" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Nouveau suivi de \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Supprimer les suivis" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Supprimer le suivi \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Modifier la tâche du suivi" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Modifier la tâche du suivi \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Modifier la date et heure de début du suivi" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Modifier la date et heure de début du suivi \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Modifier la date et heure de fin du suivi" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Modifier la date et heure de fin du suivi \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nouvelle note" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nouvelles sous-notes" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nouvelle sous-note de \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nouvelle sous-note" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Supprimer le commentaire" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Supprimer le commentaire \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Glisser-déplacer les notes" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Glisser-déplacer la note \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Ajouter une note" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Ajouter une note à \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Ajouter une sous-note" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Ajouter une sous-note à \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Supprimer la note" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Supprimer la note \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Glisser-déplacer les tâches" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Supprimer la tâche" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Supprimer la tâche \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nouvelle tâche" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nouvelle sous-tâche" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nouvelle sous-tâche de \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nouvelle sous-tâche" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marquer la tâche comme terminée" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marquer \"%s\" terminée" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Activer la tâche" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Activer \"%s\"" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Désactiver la tâche" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Désactiver \"%s\"" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Démarrer le suivi" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Démarrer le suivi de \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stopper le suivi" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Stopper le suivi de \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximiser la priorité" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximiser la priorité de \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimiser la priorité" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimiser la priorité de \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Augmenter la priorité" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Augmenter la priorité de \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Diminuer la priorité" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Diminuer la priorité de \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Modifier la priorité" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Modifier la priorité de \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Ajouter la note aux tâches" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Modifier la date de début prévue" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Modifier la date de début prévue de \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Modifier la date due" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Modifier la date due de \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Modifier la date de début effective" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Modifier la date de début effective de \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Modifier la date de fin" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Modifier la date de complétion de \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Modifier la date et heure de rappel" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Modifier la date et heure de rappel de \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Modifier les récurrences" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Modifier la récurrence de \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Modifier le pourcentage de complétion de \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Changer le critère de complétion des tâches" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Modifier le critère de complétion de \"%s\"" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Modifier les budgets" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Modifier le budget de \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Modifier le tarif horaire" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Modifier le tarif horaire de \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Modifier le tarif fixe" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Modifier le tarif fixe de \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Permuter pré-requis" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Permuter pré-requis de \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Erreur lors de la lecture du paramètre %s-%s depuis %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "La valeur est: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "L'erreur est: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s utilisera la valeur par défaut et devrait fonctionner normalement." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Erreur de paramètre" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Erreur lors de la sauvegarde de %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Erreur de sauvegarde" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Message Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nouvelle pièce jointe..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Insérer une nouvelle pièce jointe" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Ouvrir la pièce jointe" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Ouvrir les pièces jointes sélectionnées" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutes" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Ne pas mettre en veille" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutes" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutes" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutes" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 heure" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutes" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 heure" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 heures" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 heures" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 heures" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 heures" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 heures" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 heures" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 heures" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 heures" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 heures" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 heures" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 semaines" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 semaine" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total pour %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Nouvel effort...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Tâches inactives" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Cacher les tâches &inactives" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Tâches inactives: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Afficher/masquer les tâches inactives (tâches non terminées sans date de " "début effective)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Tâches en retard" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Masquer les tâches en retard" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Tâches en retard : %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Afficher/masquer les tâches en retard (tâches inactives avec un date prévue " "de démarrage dans le passé)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Tâches actives" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Tâches actives: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Cacher les tâches &actives" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Afficher/masquer les tâches actives (tâches non terminées avec une date de " "début effective dans le passé)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Tâches prochainement dues" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Tâches dues bientôt: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Masquer les tâches prochainement dues" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Afficher/masquer les tâches dues bientôt (tâches non terminées avec une date " "d'échéance dans l'avenir proche)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Tâches en dépassement" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Cacher les tâches en &dépassement" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Tâches en dépassement: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Afficher/masquer les tâches en dépassement (tâches non terminées avec une " "date d'échéance dans le passé)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Tâches terminées" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Tâches terminées: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Cacher les tâches &terminées" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Afficher/masquer les tâches terminées" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nouvelle tâche..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Flèche bas" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Flèche bas avec état" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Flèches bleues circulaires" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Flèches vertes circulaires" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Flèche haut" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Flèche haut avec état" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bombe" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Livre" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Livres" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Boîte" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Coccinelle" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Gâteau" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculatrice" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendrier" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Chat" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Disque compact (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Graphiques" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Discussion" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Coche" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Coches" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Horloge" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarme" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Chronomètre" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Roue dentée" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Roues dentées" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Ordinateur de bureau" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Ordinateur portable" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Ordinateur de poche" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Croix rouge" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Dé" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Document" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Terre bleue" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Terre verte" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Enveloppe" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Enveloppes" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Dossier bleu" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Dossier bleu clair" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Dossier vert" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Dossier gris" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Dossier orange" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Répertoire pourpre" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Dossier rouge" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Dossier jaune" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Dossier bleu avec flèche" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Cœur" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Cœurs" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Maison verte" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Maison rouge" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Clef" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Clefs" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lampe" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Point d'interrogation" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Information" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Led bleue" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Led bleu clair" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Led grise" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Led verte" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Led vert clair" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Led orange" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Led pourpre" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Led rouge" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Led jaune" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Bouée de sauvetage" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Cadenas fermé" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Cadenas ouvert" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Loupe" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Note de musique" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Note" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palette" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Trombone" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Crayon" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Personne" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Gens" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identification" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Personne qui parle" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Signe d'avertissement" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Moins" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Étoile rouge" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Étoile jaune" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Feux de circulation" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Corbeille à papier" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Éclair" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Parapluie" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Partiellement ensoleillé" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Clef à écrou" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Pas d'icône" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Fichier" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Chemin complet" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Date" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Rétablir" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Fermer" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Choisisez la déstination du fichier rétabli" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Message de la part des développeurs de %s" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Voir:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Description" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Editer pour modifier tous les sujets" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Sujet" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Editer pour changer toutes les descriptions" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Date de création" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Date de modification" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priorité" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutuellement exclusives" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Sous-catégories" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Editer pour modifier l'emplacement de toutes les pièces jointes" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Parcourir" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Emplacement" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Apparence" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Couleur d'avant plan" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Couleur d'arrière plan" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Police de caractères" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icône" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Dates" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Date de début prévue" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Date d'échéance" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Date de début effective" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Date d'achèvement" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Rappel" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Récurrence" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Etat d'avancement" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Pourcentage terminé" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Utiliser la configuration globale de l'application" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Non" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Oui" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Marquer la tâche terminée lorsque toutes les filles sont terminées?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Temps écoulé" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budget restant" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Montant horaire" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Montant fixe" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Revenu" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Effort" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Catégories" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Pièces jointes" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notes" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Prérequis" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Editer la tâche" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tâche" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Démarrer" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Semaine(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Jour(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Heure(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minute(s)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Arrêter" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Démarrer le suivi depuis la dernière date d'arrêt" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Stopper le suivi maintenant" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Attention : Le départ doit être plus tôt que l'arrêt" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Tâches multiples" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (tâche)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Catégories multiples" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (catégorie)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Notes multiples" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (note)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Pièces jointes multiples" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (pièce jointe)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Efforts multiples" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (effort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Police de caractères:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Utiliser la couleur:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Aucun" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Quotidiennement" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mensuel" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Hebdomadaire" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Annuellement" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "En conservant les dates sur le même jour de la semaine" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", tous les" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Arrêter après" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "Récurrences" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Planifier chaque prochaine récurrence en se basant sur" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "La date de début et/ou d'écheance planifiée avant" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "La dernière date de complétion" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "jour(s)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "Période" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "semaine(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mois," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "année(s)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exporter depuis:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "N'exporter que la sélection" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Colonnes à exporter:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Mettre les dates et temps dans des colonnes séparées" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Ecrire les informations de style dans un fichier CSS séparé" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Si un fichier CSS existe pour le fichier exporté, %(name)s ne l'écrasera " "pas. Ceci vous permet de modifier le style sans perdre vos modification lors " "de l'exportation suivante." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exporter en CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exporter au format iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exporter en HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exporter en tant que Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Un iPhone ou iPod touch tente de se\n" "synchroniser avec ce fichier de tâches\n" "pour la première fois. Quel type de\n" "synchronisation voulez-vous utiliser ?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Rafraîchir depuis le bureau" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Rafraîchir depuis le périphérique" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Annuler" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Vous avez activé la fonction de synchronisation pour iPhone, laquelle \n" "nécessite Bonjour. Bonjour ne semble pas avoir été installé sur\n" "votre système." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" "Veuillez s.v.p. télécharger et installer Bonjour pour Windows depuis\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Site Internet d'Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Le support de Bonjour pour Linux est \n" "principalement fourni par Avahi.org" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Vous pourrez trouver les détails pour votre distribution ici" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Veuillez noter que sous certains systèmes (Fedora), vous\n" "devez installer le paquet avahi-compat-libdns_sd en plus\n" "d'Avahi pour que cela fonctionne." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "De plus, si vous avez un pare-feu, vérifiez que les ports 4096-4100 sont " "ouverts." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Ce réglage prendra effet après le redémarrage de %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Ce réglage peut être supplanté pour chaque tâche\n" "dans le dialogue d'édition des tâches." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Fichiers" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Sauvegarder automatiquement aprés chaque modification" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Rechargement automatique si le fichier est modifié sur le disque" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Surveillance intelligente du système de fichiers" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Essayer de détecter les changements effectués dans le fichier de tâches en " "temps réel.\n" "Ne cochez pas cette option si votre fichier de tâches est situé sur un " "partage réseau.\n" "Vous devez redémarrer %s pour que cette option soit prise en compte." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Sauvegarder les préférences (%s.ini)\n" "dans le même répertoire que le programme" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Pour éxécuter %s depuis un périphérique amovible" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Répertoire de base des pièces jointes" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Lors de l'ajout d'une pièce jointe, tenter de transformer\n" "son chemin en chemin relatif par rapport à ce\n" "répertoire." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Avant la sauvegarde, importer automatiquement à partir de" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Format Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Avant la sauvegarde, %s importe automatiquement\n" "les tâches depuis un fichier Todo.txt avec le même nom\n" "que le fichier de tâches mais sans l'extension .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Lors de l'enregistrement, exporte automatiquement vers" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Pendant la sauvegarde, %s exporte automatiquement\n" "les tâches vers un fichier Todo.txt avec le même nom\n" "que le fichier de tâches, mais sans l'extension .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Comportement des fenêtres" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Afficher l'écran d'accueil au démarrage" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Afficher les astuces au démarrage" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Démarrer en réduisant la fenêtre principale" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Toujours" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Jamais" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Si elle a été réduite lors de la session précédente" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Vérifier les nouvelles versions de %(name)s au démarrage" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" "Vérifier les messages de la part des développeurs de %(name)s au démarrage" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Cacher la fenêtre principale lorsqu'elle est minimisée" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimiser la fenêtre principale lorsqu'elle est fermée" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Animer l'horloge dans la barre des tâches lors du suivi d'un effort" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Langue" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Laisser le système déterminer la langue" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Si votre langue n'est pas disponible, ou que la traduction laisse à désirer, " "vous pouvez aider. Voir:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Langue non trouvée?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Apparence de la tâche" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Ces réglages d'apparence peuvent être supplantés pour chaque tâche dans\r\n" "le dialogue d'édition des tâches." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Fonctionnalités" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "Tous les réglages de cet onglet nécessitent un redémarrage de %s" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Activer SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Activer la synchronisation avec l'iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Utiliser le gestionnaire de session X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Début de semaine de travail" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Lundi" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Dimanche" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Première heure de la journée de travail" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Dernière heure de la journée de travail" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Fin du jour" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Utiliser des gradients dans la vue calendrier.\n" "Peut ralentir Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutes entre les temps suggérés" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Dans les menus contextuels pour la sélection du temps (par exemple\n" "pour régler le début d'un effort) %(name)s suggèrera des temps en\n" "utilisant ce réglage. Plus celui-ci est petit, plus il y aura de " "suggestions.\n" "Bien entendu, vous pouvez aussi entrer un temps arbitraire." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Notification de veille" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "S'il n'y a pas d'activité de la part de l'utilisateur pendant\n" "autant de temps (en minutes), %(name)s demandera quoi\n" "faire des efforts en cours." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Utiliser la notation décimale pour les efforts." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Affiche une heure, quinze minutes sous la forme 1.25 au lieu de 1:15\n" "Utile lors de l'édition de factures." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Afficher la description d'un objet dans une fenêtre popup lorsqu'on le " "survole avec la souris" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Dates de la tâche" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Marquer la tâche parente terminée lorsque toutes les filles sont terminées" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Nombre d'heures pour qu'une tâche soit considérée dûe bientôt" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Rien" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Modifier la date de début prévue modifiera la date d'échéance" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Modifier la date d'échéance modifiera la date de début prévue" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "Que faire des dates dûes de et début prévu si l'une est modifiée" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Pré-réglage" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Proposer" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Aujourd'hui" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Demain" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Après-demain" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Vendredi prochain" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Lundi prochain" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Début du jour" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Début du jour de travail" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Heure actuelle" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Fin du jour de travail" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Date et heure de début prévues par défaut" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Date et heure d'échéance par défaut" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Date et heure actuelles de début par défaut" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Date et heure d'achèvement par défaut" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Date et heure de rappel par défaut" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Les nouvelles tâches sont créées avec des temps \"par défaut\" renseignés et " "activés. Les dates et temps \"suggérés\" sont renseignés mais pas activés.\n" "\n" "Le \"début de la journée\" est minuit et la \"fin de la journée\" juste " "avant minuit. Lorsqu'ils sont utilisés, les vues cachent le temps et ne " "montrent que la date.\n" "\n" "Le \"début de la journée de travail\" et la \"fin de la journée de travail\" " " utilisent les réglages de l'onglet Fonctionnalités du dialogue de " "préférences." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Rappels des tâches" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Notification système pour les rappels" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Laisser l'ordinateur faire le rappel" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Nécessite espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Délai par défaut pour effectuer le rappel" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Délais de répétition à proposer lors du rappel" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Mot de passe pour la synchronisation avec l'iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "Lors d'une synchronisation, entrer ce mot de passe sur l'iPhone" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nom du service Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Tâche d'envoi terminée sur le périphérique" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Afficher le journal de synchronisation" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Éditeur" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Vérifier l'orthographe dans les champs de saisie" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" "Police de caractères à utiliser dans le champ description des dialogues " "d'édition" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Récupérer le sujet des Emails depuis Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Lorsqu'un Email est déposé depuis Mail.app, essayer de récupérer\n" "son sujet. Ceci peut prendre jusqu'à 20 secondes." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Donner le focus au sujet dans l'éditeur de tâches" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "À l'ouverture de l'éditeur de tâche, sélectionner le sujet et lui\n" "donner le focus. Ceci écrase la sélection X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s rappel - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Rappel de la date/heure" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Veille" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" "Faire de ceci le temps de rappel par défaut pour les rappels ultérieurs" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Marquer la tâche terminée" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Serveur SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Personnalisé" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Basé sur Horde" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL du serveur SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nom/ID d'utilisateur" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Activer la synchronisation des tâches" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nom de la base de données des tâches" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Mode de synchronisation préféré" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Bidirectionnel" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lent" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Unidirectionnel, depuis le client" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Rafraîchissement depuis le client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Unidirectionnel, depuis le serveur" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Rafraîchissement depuis le serveur" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Activer la synchronisation des notes" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Nom de la base de données des notes" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Accès" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Nouveau modèle de tâche" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Aperçu" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Outils disponibles" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Faire apparaître cet outil dans la barre d'outils" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Ne pas faire apparaître cet outil dans la barre d'outils" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Outils" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Déplacer l'outil vers le haut (vers la gauche de la barre d'outils)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Déplacer l'outil vers le bas (vers la droite de la barre d'outils)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Réordonnez les boutons de la barre d'outil par glisser/déplacer dans cette " "liste." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Séparateur" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Espacement" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Me prévenir lorsqu'une nouvelle version est disponible" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Une nouvelle version de %(name)s est disponible" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Vous utilisez %(name)s version %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "La version %(version)s de %(name)s est disponible sur" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s est à jour" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s est à jour avec cette version %(version)s" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Impossible de déterminer la dernière version" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Impossible de déterminer quelle est la dernière version de %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Version de pré-distribution" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" "Vous utilisez %(name)s en version de pré-distribution %(currentVersion)s" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "La dernière version de distribution de %(name)s est %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Avertissement" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach rencontre des problèmes connus avec le gestionnaire de session " "XFCE4\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Si vous constatez des gels aléatoires au démarrage, veuillez\n" "décocher \"Utiliser la gestion de session X11\" dans l'onglet\n" "Fonctionnalités des préférences\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Ne plus afficher cette boîte de dialogue au démarrage" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Pas d'activité utilisateur depuis %s. La tâche suivante\n" "était suivie:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Ne rien faire" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Arrêter le suivi à %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Arrêter le suivi à %s et recommencer maintenant" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notification" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "Fichiers %s (*.tsk)|*.tsk|Tous les fichiers (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Fichiers %s (*.tsk)|*.tsk|Fichiers de sauvegarde (*.tsk.bak)|*.tsk.bak|Tous " "les fichiers (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Fichiers iCalendar (*.ics)|*.ics|Tous les fichiers (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Fichiers HTML (*.html)|*.html|Tous les fichiers (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Fichiers CSV (*.csv)|*.csv|Fichiers texte (*.txt)|*.txt|Tous les fichiers " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Fichiers Todo.txt (*.txt)|*.txt|Tous les fichiers (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Ouvrir" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d tâches chargées depuis %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Impossible d'ouvrir %s car il n'existe pas" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Fusionner" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Impossible d'ouvrir le fichier %(filename)s\n" "car il est verrouillé." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s fusionné" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Enregistrer sous" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Enregistrer la sélection" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Impossible de sauvegarder %s\n" "Il est verrouillé par une autre instance de %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Impossible de sauvegarder %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importer un modèle" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "Fichier de modèle %s (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Impossible d'importer le modèle %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d éléments exportés dans le fichier %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synchronisation terminée" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Etat de la synchronisation" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Impossible d'ouvrir %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Un fichier nommé %s existe.\n" "Voulez-vous l'écraser ?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Vous avez des modifications non enregistrées.\n" "Sauvegarder avant de fermer ?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: sauvegarder les modifications ?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Impossible d'ouvrir %s car il est verrouillé.\n" "\n" "Cela signifie soit qu'une autre instance de Task Coach\n" "est lancée et a ouvert ce fichier, soit qu'une instance\n" "passée a planté. Si aucune autre instance n'est démarrée,\n" "vous pouvez briser le verrou en toute sécurité.\n" "\n" "Briser le verrou ?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: fichier verrouillé" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Impossible d'obtenir un verrou car le verrouillage n'est pas supporté\n" "à l'emplacement de %s.\n" "Ouvrir %s pas de verrou?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s fermé" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d sauvegardées dans %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Impossible d'ouvrir le fichier %(filename)s\n" "car il a été créé par une version plus récente de %(name)s.\n" "Veuillez svp mettre à jour %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Erreur lors de la lecture de %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Le module de sauvegarde va démarrer pour vous permettre de rétablir\n" "une version ancienne du fichier." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronisation en cours..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronisation avec %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Bienvenue dans %(name)s version %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Impossible de restaurer la mise en page depuis TaskCoach.ini:\n" "%s\n" "\n" "La mise en page par défaut sera utilisée.\n" "\n" "Si ceci arrive de nouveau, veuillez faire une copie de votre fichier " "TaskCoach.ini avant de fermer le programme et faire un rapport de bogue en y " "joignant ce fichier." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "Erreur de configuration %s" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Type de synchronisation" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Un périphérique iPhone ou iPod Touch a tenté de se\n" "synchroniser avec ce fichier de tâches, mais la\n" "négotiation du protocole a échoué. Veuillez remplir un\n" "rapport de bogue." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fichier" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Editer" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Affichage" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nouveau" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Actions" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "A&ide" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importer" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exporter" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Sélectionner" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Nouvelle vue" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activer la vue suivante\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activer la vue &précédente\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Mode" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtrer" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Trier" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Colonnes" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "A&rrondi" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Options de l'&arbre" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Barre d'&outils" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Afficher/masquer la barre d'état" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Barre d'état" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tâche" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Ouvrir un nouvel onglet avec une vue affichant les tâches" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "&Statistiques des tâches" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Nouvel onglet avec une vue des statistiques des tâches" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Tâches en &carrés" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Ouvrir un nouvel onglet avec une vue affichant les tâches en carrés" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Chronologie" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Afficher dans un nouvel onglet la chronologie des tâches et des efforts" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendrier" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Ouvre un nouvel onglet avec une vue de type calendrier" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "Calendrier &hiérarchique" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Ouvre un nouvel onglet avec une vue qui affiche les tâches sous forme " "hiérarchique dans un calendrier" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Catégorie" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Ouvre un nouvel onglet avec une vue affichant les catégories" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Effort" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Ouvrir un nouvel onglet avec une vue affichant les efforts" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Eff&ort pour la (les) tâche(s) sélectionnée(s)" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Ouvrir un nouvel onglet avec une vue affichant les efforts pour la tâche " "sélectionnée" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Note" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Ouvrir un nouvel onglet avec une vue affichant les notes" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "Cac&her" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Cacher la barre d'outils" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "Petite&s images" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Afficher de petites images (16x16) dans la barre d'outils" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Images &Moyennes" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Afficher des images moyennes (22x22) dans la barre d'outils" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Grandes images" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Afficher de grandes images (32x32) dans la barre d'outils" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nouvelle tâche depuis un &modèle" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Permuter la catégorie" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Modifier la &priorité de la tâche" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Démarrer le &suivi de l'effort" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (sous-catégories)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (sous-tâches)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priorité" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Page" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Rappel" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tâches en dépassement" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "une tâche en dépassement" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tâches dûes bientôt" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "une tâche arrivant bientôt à échéance" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "suivi de \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "suivi de l'effort pour %d tâches" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Ouvrir...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Ouvrir %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "F&usionner..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Fusionner les tâches d'un autre fichier avec le fichier courant" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Fermer\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Sauvegarder\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Fusionner les mo&difications sur le disque\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&auvegarder sous...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Sau&vegarder les tâches sélectionnées dans un nouveau fichier..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" "Sauvegarder les tâches sélectionnées dans un fichiers de tâches séparé" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Sauvegarder la tâche sélectionnée en tant que &modèle" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Sauvegarder la tâche sélectionnée comme modèle de tâche" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importer un modèle..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importer un nouveau modèle depuis un fichier" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Editer les modèles..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Editer les modèles existants" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Editer les modèles" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Purger les objets supprimés" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Vraiment supprimer des tâches et notes supprimées (voir le chapitre SyncML " "dans l'aide)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "La purge des objets supprimés est définitive.\n" "Si vous comptez activer l'option SyncML de\n" "nouveau avec le même serveur que celui\n" "que vous utilisiez, ces tâches et notes\n" "seront à nouveau ajoutées.\n" "\n" "Voulez-vous continuer ?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Mise en page...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "A&perçu d'impression..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Afficher un aperçu de ce à quoi l'impression ressemblera" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Prévisualisation de l'impression" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Imprimer...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Gérer les fichiers sauvegardés..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Gérer tous les fichiers des tâches sauvegardés" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exporter en &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exporter les objets d'une vue au format HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exporter en &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Exporter les objets d'une vue au format CSV (champs séparés par virgule)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exporter au format &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exporter les objets d'une vue au format iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exporter en tant que &Todo.txt ..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Exporter les objets visualisés dans un format Todo.txt (Voir todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importer un fichier CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importer des tâches depuis un fichier CSV" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importation CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Le fichier sélectionné est vide. Veuillez en choisir un autre." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importer Todo.txt ..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importer des tâches depuis un fichier Todo.txt (Voir todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importer Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&ynchronisation SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synchronisation avec un serveur SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Quitter\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Défaire" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Refaire" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Cou&per\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copier\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "Co&ller\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "C&oller en tant qu'objet fils\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Préférences...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Préférences" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Préférences &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Editer les préférences SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML préférences" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Personnaliser la barre d'outils" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Personnaliser" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Tout\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Supprimer la sélection" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Tout déselectionner" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Supprimer tous les filtres\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Réinitialiser toutes les catégories\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Afficher/masquer les objets appartenant à %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Renommer la vue..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Renomme la vue sélectionnée" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nouveau titre pour la vue:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Renommer la vue" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "Cac&her cette colonne" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Cacher la colonne sélectionnée" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Déployer tous les objets\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Effondrer tous les objets\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "Croiss&ant" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Tri ascendant (coché) ou descendant (non coché)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Tri sensible à la &casse" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Lors d'une comparaison de texte, le tri est sensible à la casse (coché) ou " "insensible à la casse (non coché)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "T&rier par état d'abord" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Trier par état (actif/inactif/terminé) d'abord" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Cacher les tâches c&omposites" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Afficher/masquer les tâches ayant des sous-tâches en liste" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Editer...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Editer les objets sélectionnés" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Editer la &tâche suivie...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Editer les tâches actuellement suivies" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Supprimer\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Supprimer les objets sélectionnés" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Créer une nouvelle tâche à partir d'un modèle" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nouvelle tâche avec les &catégories sélectionnées..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Crée une nouvelle tâche appartenant aux catégories sélectionnées" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nouvelle tâche avec les tâches sélectionnées comme &pré-requis..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Insère une nouvelle tâche ayant les tâches sélectionnées comme pré-requis" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nouvelle tâche ayant la sélection comme &dépendances..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" "Insère une nouvelle tâche ayant les tâches sélectionnées comme dépendances" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nouveau &sous-objet..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nouvelle &sous-tâche..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nouvelle &sous-note..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nouvelle &sous-catégorie..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Créer un nouveau sous-objet de l'objet sélectionné" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Marquer les tâches &actives\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Activer les tâches sélectionnées" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Marquer les tâches &inactives\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Désactiver les tâches sélectionnées" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Marquer les tâches a&chevées\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marquer les tâches sélectionnées comme terminées" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximiser la priorité\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimiser la priorité\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Incrémenter la priorité\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Décrémenter la priorité\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Permuter %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Email...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Courrier...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Plusieurs choses" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "et" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Impossible d'envoyer l'Email:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "Erreur avec l'Email %s" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Ajouter une ¬e...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Ouvrir toutes les notes...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "Démarrer le &suivi de l'effort\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Démarrer le suivi de l'effort pour les tâches de l'effort sélecté" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Pas de sujet)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Démarrer le suivi pour %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" "Sélectionnez une tâche depuis le menu et commencez à enregistrer un effort " "pour celle-ci" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Arrêter ou reprendre le suivi d'effort\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "St&opper le suivi de %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Arrêter le suivi de l'effort pour les tâches actives" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "Pour&suivre le suivi de %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Poursuivre le suivi de l'effort de la dernière tâche suivie" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "tâches multiples" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nouvelle catégorie...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nouvelle note...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nouvelle ¬e avec les catégories sélectionnées..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Crée une nouvelle note appartenant aux catégories sélectionnées" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Ajouter une pièce jointe...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Erreur lors de l'ouverture d'une pièce jointe" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Ouvrir toutes les pièces jointes...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Contenu de l'&aide\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Contenu de l'&aide\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Aide" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Astuces" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Astuces du programme" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymiser" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Rendre anonyme un fichier de tâches pour le joindre à un rapport de plantage" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Votre fichier de tâches a été anonymisé et sauvegardé dans:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Terminé" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&A propos de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Version et information de contact à propos de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "A propos de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licence" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Licence de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Vérifier les mises à jour" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Vérifier la disponibilité d'une nouvelle version de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Impossible d'ouvrir l'adresse URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "Erreur d'adresse URL %s" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Questions fréquemment posées" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Naviguer dans les questions fréquemment posées et leurs réponses" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Rapport de &bogue..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Rapporter un bogue ou consulter les bogues connus" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "&Demande d'évolution..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" "Demander une nouvelle fonctionnalité ou voter pour une demande existante" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Demande d'&aide..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Demander un support utilisateur de la part des développeurs" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Aider à &traduire..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Aider à améliorer la traduction de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "Faire un &don..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Faire un don pour aider au développement de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restaurer" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restaure la fenêtre à son état précédent" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Rechercher" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Détails des efforts" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Efforts par jour" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Efforts par mois" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Efforts par semaine" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Mode d'aggrégation" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Liste" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Arborescence" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "Si coché, affiche les tâches en arbre, sinon en liste." #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrer sur toutes les catégories cochées" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrer sur n'importe laquelle des catégories cochées" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Si coché, filtrer sur toutes les catégories cochées, sinon sur n'importe " "laquelle" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Choix de l'ordre" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configurer" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configurer le calendrier" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Configurer le calendrier hiérarchique" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "Période &suivante" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Afficher la période suivante" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Période &précédente" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Afficher la période précédente" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Ajourd'hui" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Aujourd'hui" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Dimensionnement &automatique des colonnes" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Lorsque cette option est cochée, redimensionner automatiquement les colonnes " "afin de remplir tout l'espace disponible" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Régler l'angle du camembert" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Ne pas arrondir" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minute" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutes" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Précision de l'arrondi" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Toujours &arrondir" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Toujours arrondir au prochain incrément" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Type" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Trier par sujet" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Su&jet" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Trier par description" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Description" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Date de &création" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Trier par date de création" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Date de &modification" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Trier par date de dernière modification" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Afficher/masquer la colonne description" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notes" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Afficher/masquer la colonne des notes" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Afficher/masquer la colonne de date de création" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Afficher/masquer la colonne de date de dernière modification" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Les barres d'outils sont personnalisables" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Cliquez sur l'icône Engrenage à droite pour ajouter des boutons et les " "réordonner." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Réordonnancement en mode arbre" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "En mode arbre, l'ordonnancement manuel n'est possible que lorsque tous\r\n" "les objets sélectionnés sont voisins." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "En mode arbre, vous ne pouvez glisser les objets qu'au même niveau (parent)." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Ordonnancement &manuel" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Afficher/masquer la colonne d'ordonnancement manuel" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Pièces jointes" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Afficher/masquer la colonne des pièces jointes" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Catégories: %d sélectionnées sur %d" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Etat: %d filtrées" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Période" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Temps passé au total" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Revenu total" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Mardi" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Mercredi" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Jeudi" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Vendredi" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Samedi" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Catégories" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Afficher/masquer la colonne des catégories" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Temps passé" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Afficher/masquer la colonne temps passé" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Revenu" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Afficher/masquer la colonne revenu" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Temps total passé" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Afficher/masquer la colonne temps passé total" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "Revenu &total" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Afficher/masquer la colonne revenu total" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Effort par jour de la semaine" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Afficher/masquer la colonne du temps passé par jour de la semaine" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Aggrégation des efforts" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Effort: %d sélectionné(s), %d visible(s), %d total. Temps écoulé: %s " "selectionné(s), %s visible(s), %s total" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Etat: suivi de %d" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Détails :" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Effort pour la (les) tâche(s) sélectionnée(s)" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Trier les catégories par sujet" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Trier les catégories par description" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Trier les catégories par date de création" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Trier les catégories par date de dernière modification" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Trier les catégories manuellement" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Trier les pièces jointes par sujet" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Trier les pièces jointes par description" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Trier les pièces jointes par catégorie" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Trier les pièces jointes par date de création" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Trier les pièces jointes par date de dernière modification" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Trier les notes par sujet" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Trier les notes par description" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Trier les notes par catégorie" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Trier les notes par date de création" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Trier les notes par date de dernière modification" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Trier les notes manuellement" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Trier par sujet" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Trier les tâches par description" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Trier les tâches par catégories" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Trier les tâches par date de création" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Trier les tâches par date de dernière modification" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Trier les tâches manuellement" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Trier les tâches par date de début prévue" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "Date de début &prévue" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Trier par date d'échéance" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Date d'échéance" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Trier par date d'achèvement" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Date de &complétion" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Trier les tâches par pré-requis" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Pré-requis" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Trier les tâches par dépendances" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dépendances" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Trier les tâches par temps restant" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Temps avant" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Trier les tâches par pourcentage terminé" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Pourcentage effectué" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Trier les taches par récurrence" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Répétition" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Trier par budget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Trier par temps passé" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Budget &restant" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Trier par budget restant" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Trier les tâches par priorité" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Trier par montant horaire" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Montant &horaire" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Trier par montant fixe" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Montant &fixe" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Trier par revenu" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Trier les tâches par date et heure de rappel" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Rappel" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Sujet" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Trier les notes par catégories" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notes: %d sélectionnées sur %d" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Etat: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tâches: %d sélectionnée(s), %d visible(s), %d au total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" "Récap : %d en dépassement, %d en retard, %d inactive(s), %d terminé(e)s" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Maj-cliquer sur un bouton de filtrage pour voir uniquement les tâches dans " "l'état correspondant" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tâches" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Chronologie" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Maintenant" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Tâches en carré" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Organiser les tâches par" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Calendrier hiérarchique" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Configuration du calendrier hiérarchique" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Configuration de la vue calendrier" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ordonnancement manuel" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Afficher la colonne \"ordonnancement manuel\", puis glisser-déposer les " "objets depuis cette colonne pour\r\n" "les réordonner de manière arbitraire." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dépendances" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% effectué" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Temps restant" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Dates" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "Colonne avec toutes les &dates" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Afficher/masquer les colonnes dates" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Afficher/masquer la colonne date de début prévue" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Afficher/masquer la colonne date d'échéance" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Date de début &effectif" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Afficher/masquer la colonne date de début effectif" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Afficher/masquer la colonne date de fin" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Afficher/masquer la colonne du temps restant" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Afficher/masquer la colonne récurrence" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "Colonne avec tous les &budgets" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Afficher/masquer les colonnes budget" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Afficher/masquer la colonne budget" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Budget restant" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Afficher/masquer la colonne budget restant" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finances" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Toutes les colonnes financières" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Afficher/masquer les colonnes finances" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Afficher/masquer la colonne montant horaire" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Afficher/masquer la colonne montant fixe" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Afficher/masquer la colonne des pré-requis" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Afficher/masquer la colonne des dépendances" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Afficher/masquer la colonne Pourcentage terminé" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Afficher/masquer la colonne des pièces jointes" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Afficher/masquer la colonne priorité" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Afficher/masquer la colonne rappel" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Afficher les tâches comme" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Statistiques des tâches" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Virgule" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tabulation" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Espace" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Deux points" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Point virgule" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Tube" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "JJ/MM (jour en premier)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/JJ (mois en premier)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Guillemet simple" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Guillemet double" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Le doubler" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "L'échapper avec" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importer que les colonnes sélectionnées" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "La première ligne décrit les champs" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Séparateur" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Format de la date" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Caractère d'échappement" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Echapper les quotes" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Champ #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Veuillez sélectionner un fichier." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "Identifiant" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Catégorie" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Date de rappel" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Pourcentage d'avancement" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "En-têtes de colonnes dans le fichier CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "Attribut %s" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Pas de correspondance de champs." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Le champ \"%s\" ne peut pas être sélectionné plusieurs fois." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Les champs %s ne peuvent pas être sélectionnés plusieurs fois." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Table des matières" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "A propos des tâches" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Propriétés des tâches" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Etats des tâches" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Couleurs des tâches" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Rappels" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "A propos des efforts" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Propriétés des efforts" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "A propos des catégories" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Propriétés des catégories" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "A propos des notes" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Propriétés des notes" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Impression et Export" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "A propos de l'impression et de l'export" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Impression" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Export" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Utilisation multi-utilisateurs" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "À propos du multi-utilisateur" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Options de stockage" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Envoyer les tâches par courriel" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Attributs personnalisés pour le courriel" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Intégration avec les Emails" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "A propos de l'intégration avec les Emails" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Joindre un Email à une tâche" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Créer une tâche à partir d'un Email" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Support SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Qu'est-ce que SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Configuration" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitations" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Dépannage" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Purge des objets supprimés" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone et iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s sur l'iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuration" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s sur Android" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt et Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importation de Todo.txt en cours" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exportation de Todo.txt en cours" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Modèles de tâche" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "A propos des modèles" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Utilisation des modèles" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Interface graphique" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Raccourcis clavier" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Les tâches sont les objets de base que vous manipulez. Elles peuvent\n" "représenter n'importe quoi, depuis une simple petite chose que vous\n" "devez faire jusqu'à un projet complet incluant plusieurs phases et\n" "de nombreuses activités." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Les tâches ont les propriétés configurables suivantes:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Sujet: une ligne qui résume la tâche." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Description: une description de la tâche sur plusieurs lignes." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Date de début prévue: la date à partir de laquelle la tâche peut démarrer.\n" "La valeur par défaut de la date de début prévue est sa date de création. " "Elle peut aussi\n" "être 'None', ce qui indique que vous ne voulez pas démarrer cette tâche. " "Cela peut\n" "être utile par exemple pour les arrêts maladie." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Date d'échéance: la date à laquelle la tâche devrait être terminée.\n" "Cela peut valoir 'Aucune', signifiant que la tâche n'a pas de date " "d'échéance fixe." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Date effective de début: la date à laquelle la tâche a réellement débuté.\n" "La date effective de début peut être éditée manuellement. Elle est aussi " "automatiquement fixée quand vous activez le suivi d'effort ou quand vous " "précisez le degré d'avancement d'une tâche." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Date de fin: cette date est à 'Aucune' tant que la tâche n'est pas " "terminée.\n" "Elle est mise à la date courante lorsque vous marquez la tâche terminée. \n" "La date de fin peut évidemment aussi être spécifiée manuellement." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Prérequises: ce sont les autres tâches qui doivent être accomplies avant \n" "qu'une tâche puisse être démarrée. La tâche demeure inactive jusqu'à ce \n" "que la dernière de ces tâches prérequises soit terminée.\n" "NB : si une tâche possède une date de début planifiée spécifique, cette date " "doit être antérieure. Par ailleurs toutes les tâches prérequises " "doivent être réalisées avant que la tâche devienne en retard." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: nombre d'heures disponibles pour la tâche." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Revenu horaire: la quantité d'argent gagnée en une heure passée sur cette " "tâche." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Revenu fixe: la quantité d'argent gagnée pour cette tâche,\n" "indépendamment du temps passé dessus." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Les propriétés suivantes sont calculées depuis celles ci-dessus:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" "Jours restant: le nombre de jours restant jusqu'à la date d'échéance." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dépendances: autre tâches qui peuvent être démarrées lorsque la\n" "tâche prérequise est terminée." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Temps passé: temps passé sur cette tâche." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Budget restant: le budget de la tâche moins le temps passé dessus." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Revenu: revenu fixe plus revenu horaire fois temps passé." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Une tâche est toujours dans un seul de ces états:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Active : La date réelle de début est antérieure" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactive : la tâche n'a pas débuté et/ou l'ensemble des tâches liées n'a pas " "été réalisé;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Terminée: la tâche est terminée." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "De plus, une tâche peut être qualifiée de:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "En dépassement: la date d'échéance est dans le passé;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Echéance proche : la date d'échéance est proche (la signification de " "'proche'\n" "peut être modifiée dans les préférences)." #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "En retard : la date de début prévue est antérieure et la tâche n'a pas débuté" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "En dépassement de budget: plus de budget restant;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Dans le budget: il reste du budget;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Pas de budget: cette tâche n'a pas de budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Le texte des tâche est colorié selon les règles suivantes:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Les tâches en dépassement sont rouges;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Les tâches dues bientôt sont orange;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Les tâches actives on un texte noir et une icône bleue;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Les tâches en retard sont indiquées en violet" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Les tâches inactives sont grises, et" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Les tâches terminées sont vertes." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Tout ceci présuppose que vous n'avez pas modifié les couleurs\n" "dans les préférences, bien sûr." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "La couleur d'arrière plan des tâches est déterminée par les catégories\n" "auquelles elle appartient. Voir la section à propos des propriétés\n" "des catégories ci-dessous." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Vous pouvez configurer un rappel pour une date et heure données. %(name)s\n" "montrera un message à cette date et heure. Depuis le dialogue de rappel " "vous\n" "pourrez ouvrir la tâche, commencer à la suivre ou la marquer terminée. Vous\n" "pourrez aussi la retarder." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Si vous avez installé Growl ou Snarl, vous pouvez configurer %(name)s\n" "pour les utiliser, depuis le dialogue des préférences." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Lorsque vous passez du temps sur une tâche, vous pouvez enregistrer combien\n" "en suivant l'effort. Sélectionnez une tâche et invoquez \"Démarrer le " "suivi\" dans\n" "la barre d'outils." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Les efforts ont les propriétés modifiable suivantes:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Tâche: la tâche à laquelle se réferre cet effort." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Date/heure de démarrage: le moment où l'effort a commencé." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Date/heure d'arrêt: le moment où l'effort s'est arrêté. Ceci peut être\n" "'Aucune' si vous êtes encore en train de travailler sur cette tâche." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Description: une description de l'effort sur plusieurs lignes." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" "Temps passé: combien de temps vous avez passé à travailler sur cette tâche." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Revenu: argent gagné lors du temps passé sur cette tâche." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Les tâches et les notes peuvent appartenir à une ou plusieurs catégories. " "Tout d'abord,\n" "vous devez créer la catégorie que vous voulez utiliser via le menu " "\"Catégories\". Ensuite,\n" "vous pouvez ajouter un objet à une ou plusieurs catégories en éditant " "l'objet et en\n" "cochant les catégories voulues pour cet objet dans l'onglet \"Catégories\" " "de la fenêtre d'édition." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Vous pouvez limiter les objets montrés dans les vues tâches et notes à une\n" "ou plusieurs catégories en cochant celles-ci dans la vue catégories. Par\n" "exemple, si vous avez une catégorie \"Appels téléphoniques\" et que vous la\n" "cochez, seules les tâches appartenant à cette catégorie seront montrées\n" "dans la vue tâche; en d'autres mots les appels que vous devez faire." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Les catégories ont les propriétés modifiables suivantes:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Sujet: une ligne qui résume la catégorie." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Description: une description de la catégorie sur plusieurs lignes." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Sous-catégories mutuellement exclusives: une case à cocher qui\n" "indique si les sous-catégories d'une catégorie sont mutuellement\n" "exclusives. Si elles le sont, un objet ne peut appartenir qu'à l'une\n" "de ces sous-catégories. En filtrant, vous ne pouvez filtrer que sur\n" "l'une des sous-catégories à la fois." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Les propriétés d'apparence comme l'icône, la fonte et les couleurs:\n" "celles-ci sont utilisées pour dessiner la catégories, mais aussi les objets\n" "appartenant à cette catégorie. Si une catégorie n'a pas d'icône, de fonte " "ou\n" "de couleur à elle mais qu'elle a une catégorie mère en ayant, les " "propriétés\n" "de la catégorie mère seront uttilisées. Si un objet appartient à plusieurs\n" "catégories définissant ces propriétés, un mélange des couleurs sera utilisé\n" "pour la dessiner." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Les notes peuvent être utilisées pour noter diverses informations que vous\n" "voulez conserver dans votre fichier de tâche. Elles peuvent être autonomes\n" "ou faire partie d'un autre objet, comme une tâche ou une catégorie. Les " "notes\n" "autonomes sont affichées dans la vue notes, au contraire des notes " "appartenant\n" "à un autre objet." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Les notes ont les propriétés modifiables suivantes:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Sujet: une ligne qui résume la note." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Description: une description de la note sur plusieurs lignes." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Propriétés d'apparence comme l'icône, la fonte et les couleurs." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "L'impression et l'exportation fonctionnent de la même manière: lorsque vous\n" "imprimez ou exportez des données, les données de la vue active sont " "imprimées\n" "ou exportées.\n" "De plus, les données sont imprimées ou exportées de la même manière que la " "vue\n" "les affiche. Elles sont imprimées ou exportées dans l'ordre dans lequel la " "vue les\n" "affiche. Les colonnes affichées déterminent quels détails sont imprimés ou " "exportés.\n" "Lorsque vous filtrez des objets, par exemple en cachant les tâches " "terminées, ces\n" "objets ne seront pas imprimés ou exportés." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Prépare le contenu d'une vue, en plaçant les objets dans le bon ordre, " "montrant\n" "ou cachant les colonnes appropriées et appliquant le filtre en cours." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Vous pouvez prévisualiser l'impression en utilisant le menu\n" "Fichier => Mise en page. En imprimant, si la plateforme le permet,\n" "vous pouvez choisir d'imprimer tous les objets visibles dans la\n" "vue active, ou seulement ceux sélectionnés." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Ensuite, choisissez le format dans lequel vous désirez exporter et si\n" "vous voulez exporter tous les objets visibles ou seulement la sélection.\n" "Les format d'exportation disponibles sont CSV (valeurs séparées par des\n" "virgules), HTML et iCalendar. Lorsque vous exportez en HTML, un fichier\n" "CSS est créé que vous pouvez éditer pour modifier l'apparence du HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Attributs personnalisés pour envoyer des tâches par courriel" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "Vous pouvez modifier le comportement de la commande de courriel en utilisant " "des\n" "attributs personnalisés dans la description de la tâche. Ces attributs " "doivent se trouver\n" "seuls sur une ligne. Les attributs supportés sont 'cc' et 'to'. Exemples:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Un fichier de tâches peut être ouvert par plusieurs instances de %(name)s,\n" "s'exécutant sur le même ordinateur ou sur des ordinateurs différents, sur\n" "un partage réseau par exemple. Lorsque vous sauvegardez, %(name)s va en\n" "fait fusionner votre travail avec ce qui a été sauvegardé sur le disque " "depuis la\n" "dernière fois. Les conflits sont résolus automatiquement, généralement à " "votre\n" "profit. Ceci est utile dans deux cas d'utilisation:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Un utilisateur unique, utilisant le fichier sur plusieurs ordinateurs " "(travail,\n" "maison, portable)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Plusieurs utilisateurs travaillant sur le même fichier." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "Le premier cas est le plus commun et le plus fiable. Le second peut être " "dangereux.\n" "La plupart des protocoles de partage de fichier ne supportent pas le genre " "de\n" "verrouillage de fichiers qui rendrait ceci fiable à 100%. Une liste de " "protocoles\n" "communément utilisés et leur comportement suit." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Aucune des options discutées ici ne fonctionne parfaitement. Si deux\n" "utlisateurs sauvegardent leurs modifications dans une fenêtre de quelques\n" "centaines de millisecondes, certaines données seront perdues." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "C'est le protocole le plus répandu: les partages Windows et assimilés " "(Samba).\n" "Si le serveur et le client ne supportent pas certaines extensions, Task " "Coach ne sera\n" "pas capable de détecter automatiquement lorsque le fichier a été modifié " "par\n" "quelqu'un d'autre." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Pas encore testé." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Un moyen répandu pour accéder à des fichiers depuis plusieurs ordinateurs " "(voir aussi\n" "SpiderOak pour une alternative plus sécurisée). Les modifications du fichier " "sont détectées\n" "correctement par %(name)s lorsqu'il est mis à jour." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s s'intègre avec plusieurs logiciels de messagerie, par " "glisser/déposer.\n" "Cela a certaines limitations; les Emails sont copiés dans un répertoire " "voisin\n" "du fichier %(name)s en tant que fichiers .eml et sont ensuite ouverts avec\n" "le programme associé à cette extension. D'un autre côté, cela vous permet " "d'ouvrir\n" "ces pièces jointes sur un autre système que celui sous lequel vous les avez " "créés." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Les logiciels de messagerie supportés sont:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Messagerie Claws" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "A cause d'une limitation de Thunderbird, vous ne pouvez pas glisser-déposer\n" "plusieurs Email à la fois depuis ce client. Ceci ne s'applique pas à Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Il y a deux moyens de joindre un Email à une tâche; vous pouvez:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Le déposer directement sur une tâche dans la vue des tâches." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" "Le déposer dans la liste des pièces jointes dans l'éditeur de tâches." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Déposer un Email sur une partie vide de la vue des tâches ou de la liste des " "tâches\n" "crée une nouvelle tâche. \n" "Son sujet est celui de l'Email et sa description est le contenu de l'Email.\n" "De plus, l'Email est automatiquement ajouté en pièce jointe à la nouvelle " "tâche créée." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML est un protocole XML conçu pour synchroniser plusieurs applications\n" "avec un serveur. Un tel serveur Open-source populaire est Funambol.\n" "Des clients sont disponibles pour beaucoup d'applications et de " "périphériques (Outlook,\n" "Pocket PC, iPod, iPhone, Evolution, etc...), de même que des \"connecteurs\" " "qui permettent\n" "au serveur de se synchroniser avec Exchange, Google Calendar, etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s supporte nativement le protocole SyncML sous Windows et Mac OS X\n" "(si vous utilisez les binaires fournis). Cela signifie que vous pouvez " "configurer\n" "%(name)s pour se synchroniser avec le même serveur SyncML que vous utilisez\n" "avec Outlook, et ainsi disposer de toutes vos tâches et notes Outlook dans " "%(name)s,\n" "ainsi que les tâches et notes de %(name)s dans Outlook. Ou votre Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "Sous Linux, vous devez installer vous-même la liaison pour le client SyncML " "\n" "Python. Un paquet Debian 64 bits pour Python 2.7 est disponible sur \n" " taskcoach.org , " "\n" "à la fin de la section des téléchargements Linux." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Cette fonctionnalité est optionnelle et désactivée par défaut. Pour " "l'activer,\n" "cochez-la dans l'onglet Fonctionnalités des préférences." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Pour configurer SyncML, éditer les préférences SyncML dans Editer/SyncML.\n" "Renseignez l'URL de synchronisation, quels objets vous voulez synchroniser " "(tâches\n" "et/ou notes). L'URL dépend du serveur que vous utilisez; quelques exemples " "sont:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Les noms de base de données sont assez standard; les valeurs par défaut\n" "devraient fonctionner." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Chaque fichier de tâche a son propre identifiant client; deux fichiers\n" "différents seront considérés commes des \"périphériques\" différents\n" "par le serveur." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Un certain nombre de limitations sont dues au fait que comme\n" "le type de données sous-jacent est vCalendar, certaines\n" "fonctionnalités de %(name)s ne peuvent pas être stockées\n" "par le serveur." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" "La hiérarchie des tâches et des catégories est perdue pour le serveur." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "La récurrence et les rappels ne sont pas encore supportés." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Les catégories des notes sont perdues pour le serveur." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Le système de détection et de résolution des conflits est un\n" "contournement d'une limitation de Funambol. Il devrait fonctionner\n" "dans la plupart des cas, mais si plusieurs applications se synchronisent\n" "en même temps avec un compte, il peut y avoir des problèmes." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Probablement d'autres..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Les menus liés à SyncML ne sont présents que si votre système le permet.\n" "Actuellement, les systèmes supportés sont:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (voir ci-dessous)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 et plus, Intel et PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Vous pouvez avoir des problèmes sous Windows si vous n'avez pas\n" "le runtime Visual 8 installé. Vous pouvez le télécharger depuis\n" "le site de Microsoft." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Lorsque SyncML est activé, lorsque vous supprimez une tâche ou une note, " "celle-ci\n" "n'est pas vraiment supprimée, juste marquée comme tel. Elle ne sera vraiment " "supprimée\n" "que lors de la prochaine synchronisation. Pour cette raison, si vous avez " "activé puis désactivé\n" "SyncML, il peut rester certaines notes ou tâches dans cet état. Ceci n'est " "pas un problème\n" "mais prend un peu d'espace disque." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "Dans ce cas, l'item \"Purger les objets supprimés\" dans le menu Fichier\n" "peut être utilisé pour supprimer définitivement ces objets. Il n'est activé " "que\n" "si vous en avez besoin, c'est à dire s'il y a de tels objets. Notez qu'aprés " "avoir fait\n" "ceci, si vous réactivez SyncML et faites un synchronisation avec le même " "serveur\n" "qu'auparavant, ces objets réapparaîtront, puisque le serveur ne peut pas " "savoir\n" "qu'ils ont été supprimés." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch et iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s sur l'iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Une version iPhone/iPod Touch/iPad de %(name)s est disponible\n" "sur l'AppStore. (Si iTunes n'est pas installé sur " "votre ordinateur, vous\n" "arriverez sur une page où vous pourrez le télécharger).\n" "Les fonctionnalités supportées sont les suivantes:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Attributs de base des tâches: sujet, description, dates (avec récurrence)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Tâches et catégories hiérarchiques" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Suivi du temps" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Fichiers de tâches multiples" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Synchronisation avec %(name)s sur le bureau" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "L'application est universelle et a une version spécialement conçue pour " "l'iPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuration sur l'iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Il y a quelques comportements configurables dans l'application Réglages:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Afficher terminée : montrer ou non les tâches terminées." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Afficher les inactives : montrer ou pas les tâches inactives (date de début\n" "prévue dans l'avenir)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "Position icône: l'icône LED peut apparaître à gauche ou à droite." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Mode compact: si activé, la liste des tâches a des LEDs plus petites et ne " "montre\n" "pas les catégories ou les dates." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirmer terminée: si activée, une alerte apparaîtra afin de confirmer\n" "que vous voulez terminer une tâche lorsque sa LED est touchée." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# jours d'échéance proche : combien de jours dans l'avenir est considéré " "comme \"proche\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configuration sur le bureau, toutes plateformes" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Avant de synchroniser, vous devez aussi configurer %(name)s sur le bureau; " "dans\n" "les préférences, onglet \"Fonctionnalités\", cochez \"Activer la " "synchronisation iPhone\".\n" "Redémarrez %(name)s. Ensuite, dans les préférences, allez dans l'onglet " "\"iPhone\" et\n" "renseignez au minimum le mot de passe." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Lorsque vous touchez le bouton \"Sync\" dans la vue des catégories, " "%(name)s\n" "détectera automatiquement les instances de %(name)s tournant sur vos " "ordinateurs et vous demandera\n" "d'en sélectionner une (vous pouvez avoir plusieurs instances sur des " "ordinateurs séparés,\n" "ou sur un seul). Le nom affiché est, par défaut, une chaîne censée " "identifier votre ordinateur.\n" "Pour le personnaliser, modifier le \"Nom du service Bonjour\" dans les " "préférences." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s se souviendra de l'instance choisie et tentera de s'y connecter la\n" "prochaine fois. Si elle n'existe pas alors, vous pourrez choisir de nouveau." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Notez que la synchronisation se passe à travers le réseau; l'appareil\n" "n'a pas besoin d'être branché au port USB et iTunes n'a pas besoin\n" "d'être lancé." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuration sous Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Sous Windows, vous devez installer Bonjour pour Windows\n" "et le débloquer lorsque le firewall vous le demande." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuration sous Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "Sous Linux, vous devez avoir le démon Avahi lancé.\n" "Ce sera déjà le cas sur la plupart des distributions modernes. Vous devez " "aussi installer\n" "le paquet dnscompat; son nom exact dépend de votre distribution (libavahi-" "compat-libdnssd1\n" "sur Ubuntu par exemple)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "Je n'arrive pas à trouver l'application sur le site Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Vous devez avoir installé iTunes sur votre ordinateur pour naviguer\n" "sur l'AppStore. Télécharger\n" "iTunes" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Mon ordinateur n'apparaît pas dans la liste" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Vérifiez que votre iPhone/iPod Touch est connecté au mêle réseau que\n" "votre ordinateur." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "L'iPhone n'arrive pas à se connecter à l'ordinateur" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Si vous avez un pare-feu, vérifiez que les ports 4096-4100 sont ouverts." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Non, %(name)s n'est pas disponible sur la plateforme Android. Mais,\n" "Todo.txt Touch l'est.\n" "Vous pouvez exporter vos tâches de %(name)s vers Todo.txt\n" "format et les éditer sur votre appareil Android." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt est un gestionnaire open source de tâches, créé par Gina\n" "Trapani, qui fonctionne avec des fichiers text. Todo.txt a une interface en " "ligne de commande. \n" "Cependant, tant que le format de fichier est de type text, vous pouvez " "éditer vos \n" "tâches avec un éditeur de text. Todo.txt Touch est une version de Todo.txt " "pour\n" "la plateforme Android. Todo.txt Touch utilise un fichier todo.txt qui est " "présent dans\n" "le dossier Dropbox. %(name)s peut importer et exporter ce fichier todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "Lors de l'exportation vers todo.txt, %(name)s crée un autre fichier à côté\n" "du fichier \"todo.txt\" suivi par \"-meta\". Ne supprimez pas ce fichier; " "%(name)s l'utilise\n" "pour suivre les changéments externes des tâches. Quand un conflit surgit " "(une tâche\n" "est modifié à la fois par Task Coach et par une application externe lors de " "l'importation),\n" "le fichier todo.txt gagne le conflit." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "Astuce: si vous sauvez votre fichier de tâche dans le répertoire Todo que " "Todo.txt\n" "Touch crée dans votre répertoire Dropbox, et que vous activez l'importation " "et\n" "exportation automatique, %(name)s conservera les deux fichiers synchronisés. " "Notez\n" "qu'un autre fichier, nommé comme le fichier .txt mais avec le suffixe -meta, " "est aussi\n" "généré. Ce fichier est utilisé en interne par %(name)s pour suivre les " "modifications du\n" "fichier .txt; ne le modifiez pas et ne le supprimez pas." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importe les sujets, dates de début prévues, dates d'échéance, dates " "de fin,\n" "priorités, contextes et projets. Les contextes et projets sont transformés " "en\n" "catégories dans %(name)s. Les projets ne peuvent être transformés en tâches\n" "mères car Todo.txt autorise les tâches à faire partie de plusieurs projets, " "alors\n" "que %(name)s ne permet qu'une tâche mère par tâche." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Lors de l'import, %(name)s essaye de trouver les tâches et \n" "catégories correspondantes et les met à jour au lieu d'en créer de " "nouvelles. La correspondance est faite\n" "grâce au sujet (ou projet, ou contexte) de la tâche et du parent\n" "s'il y en a un." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exporte les sujets, dates de début prévues, dates d'échéance, " "dates\n" "de fin, priorités et catégories dans le format Todo.txt. Les autres " "attributs ne\n" "sont pas exportés." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s accepte les dates et les heures, mais Todo.txt n'accepte que les " "dates, donc la partie heure des dates de début, d'échéance et d'achèvement " "ne seront pas exportées." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Par défaut, le format Todo.txt ne supporte que les dates de début et " "d'achèvement,\n" "mais pas les dates dûes. Par conséquent, %(name)s utilise une extension pour " "exporter\n" "les dates dûes des tâches. Celles-ci apparaissent comme \"due:AAAA-MM-JJ\" " "dans le\n" "fichier todo.txt." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt gère les priorités avec les lettres ('A'-'Z'). \n" "%(name)s a des priorités numériques. La priorité 1 de %(name)s est changée " "en 'A',\n" "é devient 'B',etc., et 26 est changée en 'Z'. Les priorités de %(name)s " "inférieure à 1 \n" "et supérieures à 26 ne sont pas exportées." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Les catégories dont le sujet comme par un '+' sont exportées comme projets. " "\n" "Les catégories dont le sujet comme par un signe '@' sont exportées comme " "contextes. \n" "Les catégories dont le sujet ne commence pas par '+' ou '@' sont sont pas " "exportées. \n" "Les sous-catégories sont exportées si leur catégorie parente l'est." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Les modèles sont des \"chablons\" pour les nouvelles tâches. Actuellement, " "les\n" "seules propriétés qui peuvent être \"paramétrées\" sont les dates. Lorsque " "vous\n" "instanciez un modèle, les dates de la nouvelle tâche sont remplacées par " "des\n" "dates relatives à la date actuelle." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Un modèle peut être créé en sélectionnant une tâche (une seule) et en\n" "sélectionnant \"Sauver en tant que modèle\" dans le menu Fichier. Toutes " "les\n" "sous-tâches, notes et pièces jointes sont inclues dans le modèle. Seules " "les\n" "catégories ne sont pas sauvegardées." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Vous pouvez aussi créer un nouveau modèle à partir d'un fichier de modèle \n" "existant (.tsktmpl); sélectionnez \"Importer un modèle\" dans le menu " "Fichier\n" "et sélectionnez le fichier. Les fichiers de modèle sont stockés dans un\n" "sous-répertoire du répertoire dans lequel le fichier TaskCoach.ini est sauvé." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Pour instancier un modèle de tâche, utilisez le menu \"Nouvelle tâche depuis " "un modèle\"\n" "du menu Tâche, ou le bouton de la barre d'outils. Lorsque la tâche est " "créée, les dates\n" "de début, d'échéance et de fin, s'il y a lieu, sont recalculées en fonction " "de la date courante.\n" "Donc si vous créez un modèle à partir d'une tâche démarrant aujourd'hui et " "arrivant à\n" "échéance demain, à chaque fois que le modèle est utilisé, la date de début " "prévue sera remplacée par la date courante et la date d'échéance par la date " "courante plus un jour." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Vous pouvez aussi ajouter des modèles depuis l'éditeur de modèles \n" "(Fichier/Editer les modèles), ainsi qu'éditer les propriétés de base (dates\n" "et sujet). Les dates sont spécifiées sous forme intuitive; l'éditeur de\n" "date devient rouge si %(name)s n'arrive pas à déterminer ce qu'une date\n" "signifie. Exemples de dates:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Veuillez noter que ce système n'est pas localisé; vous devez\n" "entrer les dates en anglais." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Vous pouvez glisser et déplacer les vues pour créer pratiquement n'importe\n" "quelle mise en page. Lorsque vous commencez à glisser une vue, des indices\n" "apparaîssent pour vous montrer où vous pouvez la déposer. Les vues peuvent\n" "aussi être déposées les unes sur les autres pour créer une interface par " "onglet." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "Dans les dialogues d'édition, vous pouvez glisser-déposer les\n" "onglets pour les réordonner." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Les sujets et descriptions des tâches, notes et catégories peuvent être " "édités\n" "sans ouvrir un dialogue. Sélectionner l'objet à éditer et cliquez une " "seconde fois,\n" "soit dans la colonne sujet soit dans la colonne description. Vous pouvez " "alors éditer\n" "la valeur. Tapez Retour pour confirmer vos modifications, ou Escape pour " "les\n" "annuler. F2 est un raccourci clavier pour éditer le sujet." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s a plusieurs raccourcis clavier, dont la liste suit. Ceux-ci\n" "ne sont pas personnalisables pour l'instant." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Maj-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Maj-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Maj-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Maj-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Maj-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Maj-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux et Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux et Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Maj-Ctrl-N (Linux et Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Insérer un nouveau sous-objet" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Maj-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Maj-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Maj-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Maj-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Maj-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Editer les objets sélectionnés ou fermer un dialogue" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Entrée" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Entrée" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Marquer les tâches sélectionnées terminées ou non terminées" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Annuler un dialogue ou déplacer le focus du clavier de la recherche à la vue" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Échappement" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Déplacer le focus du clavier vers le prochain champ du dialogue" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Déplacer le focus du clavier vers le précédent champ du dialogue" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Maj-Tabulation" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" "Déplacer le focus clavier au prochain onglet dans un contrôle d'onglets" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" "Déplacer le focus clavier à l'onglet précédent dans un contrôle d'onglets" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "SUPPR" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INS (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Maj-INS (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PageSuiv" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PagePrec" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Bas" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Afficher le menu popup ou la liste déroulante" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Editer le sujet de l'objet sélectionné dans un éditeur" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    De %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s est constamment en cours de développement. Bien que les " "développeurs de %(name)s se donnent du mal pour les éviter, des bogues " "peuvent apparaître. Il est donc fortement conseillé de faire régulièrement " "une copie de sauvegarde de votre travail." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s dispose d'une liste de diffusion sur laquelle vous pouvez dialoguer " "au sujet de l'utilisation de %(name)s avec d'autres utilisateurs, parler et " "demander des nouvelles fonctionnalités ou encore vous plaindre des bogues. " "Allez sur %(url)s et rejoignez-nous aujourd'hui!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s a la capacité de défaire/refaire à l'infini. Toute modification, " "que ce soit l'édition de la description d'une tâche, ou la suppression d'un " "effort, est défaisable. Sélectionnez 'Editer' -> 'Défaire' et 'Editer' -> " "'Refaire' pour aller en arrière et en avant à travers votre historique " "d'actions." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s est disponible dans plusieurs langages différents. Sélectionnez " "'Editer' -> 'Préférences' pour voir si votre langage est inclus. S'il n'est " "pas disponible ou que la traduction mérite des améliorations, veuillez " "considérer la possibilité d'aider à traduire %(name)s. Visitez %(url)s pour " "plus d'informations sur la manière dont vous pouvez aider." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Lorsque vous entrez une URL (par exemple %(url)s) dans la description d'une " "tâche ou d'un effort, le lien vers cette adresse devient cliquable. Cliquer " "sur un tel lien ouvre la page Web avec votre navigateur par défaut." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Vous pouvez glisser/déplacer des tâches dans l'arborescence pour réorganiser " "les relations parent-descendant entre les tâches. Il en va de même pour les " "catégories." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Vous pouvez glisser des fichiers depuis un navigateur de fichiers sur une " "tâche pour créer des pièces jointes. Glisser les fichiers au-dessus d'un " "onglet ouvre la page appropriée; glisser des fichiers dans la vue " "arborescente au-dessus d'une tâche fermée ouvre la tâche afin d'afficher ses " "sous-tâches." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Vous pouvez créer n'importe quelle mise en page en glissant/déplaçant les " "onglets. La mise en page est sauvegardée et restaurée d'une session à " "l'autre." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Ce qui est réellement imprimé lorsque vous sélectionnez 'Fichier' -> " "'Imprimer' dépend de la vue courante. Si la vue courante est la liste de " "tâches, toutes les tâches seront imprimées; si c'est la liste des efforts " "groupés par mois, c'est cette liste qui sera imprimée. Il en va de même pour " "les colonnes visibles, l'ordre de tri, les tâches filtrées, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Tri des listes: Cliquer avec le bouton gauche sur un titre de colonne trie " "la liste à partir de cette colonne. Cliquer à nouveau sur ce même titre de " "colonne change l'ordre de tri d'ascendant à descendant et inversement. " "Cliquer avec le bouton droit cache cette colonne ou rend d'autres colonnes " "visibles." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Vous pouvez créer un modèle à partir d'une tâche afin de simplifier la " "saisie des informations répétitives." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" "Ctrl-Tab vous permet de naviguer dans les onglets dans un dialogue d'édition." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Astuce du jour" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Astuce suivante" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Afficher les astuces au démarrage" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "Naviguer parmi les fichiers pour ajouter une pièce jointe\r\n" "aux objects sélectionnés" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Ajouter une note aux objets sélectionnés" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Insérer une nouvelle catégorie" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Coupe les objets sélectionnés dans le presse-papier" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copie les objets sélectionnés dans le presse-papier" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Coller des objets depuis le presse-papier" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Coller les objets du presse-papier an tant qu'objets fils de la sélection" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Editer les préférences" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Refaire la dernière commande défaite" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Sélectionner tous les objets dans la vue courante" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Défaire la dernière commande" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Ajoute une période d'effort aux tâches sélectionnées" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Démarrer le suivi de l'effort pour les tâches sélectionnées" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Arrêter le suivi de l'effort ou le reprendre" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Fermer le fichier courant" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Sortir de %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Ouvrir un fichier %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Enregistrer le fichier actuel" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Charger les modifications depuis le disque" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Sauvegarder le fichier courant sous un autre nom" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Aide sur le programme" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Envoyer les éléments sélectionnés par Email" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Insérer une nouvelle note" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Ouvrir toutes les pièces jointes des objets sélectionnés" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Ouvrir toutes les notes des objets sélectionnés" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Imprimer le fichier courant" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Configurer la page d'impression" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Afficher tous les objets (réinitialise tous les filtres)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Afficher tous les objets quelles que soient leurs catégories" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Déplacer le focus du clavier de la vue à la recherche" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Diminuer la priorité des tâches sélectionnées" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Augmenter la priorité des tâches sélectionnées" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Donner la plus haute priorité aux tâches sélectionnées" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Donner la priorité la plus basse aux tâches sélectionnées" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Insérer une nouvelle tâche" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Effondre tous les objets ayant des sous-objets" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Déployer tous les objets ayant des sous-objets" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Active la prochaine vue ouverte" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Active la vue ouverte pécédente" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Un iPhone ou iPod Touch a tenté de se connecter à\n" "Task Coach, mais aucun mot de passe n'est défini.\n" "Veuillez définir un mot de passe dans la section\n" "iPhone de la configuration et réessayez." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Version du protocole: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Rejet de la version %d du protocole" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Nom du périphérique: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Envoi du nom de fichier: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Complète depuis le bureau." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d catégories" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Envoi de la catégorie %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Réponse: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tâches" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Envoi de la tâche %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d suivis" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Envoi du suivi %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Terminé." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nouvelles catégories" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nouvelles tâches" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nouveaux suivis" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d catégories modifiées" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d tâches modifiées" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d suivis modifiés" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d catégories supprimées" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d tâches supprimées" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d suivis supprimés" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nouvelle catégorie (parent: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Suppression de la catégorie %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modification de la catégorie %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nouvelle tâche %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Suppression de la tâche %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modification de la tâche %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Synchronisation terminée" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Impossible de trouver la tâche %s pour l'effort." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Nouveau suivi %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modification du suivi %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Envoi du GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Lecture des informations de l'Email..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Lecture des informations de l'Email. Veuillez patienter." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Impossible de trouver le répertoire de Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Impossible de trouver le profil Thunderbird" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Pas de section par défaut dans le fichier profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Anomalie sur l'ID interne de Thunderbird :\n" "%s. Merci de faire un rapport d'anomalie." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Impossible de trouver le répertoire pour l'ID\n" "%s." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Adresse URL inconnue : \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Impossible d'ouvrir une connexion IMAP vers\n" "%(server)s:%(port)s\n" "afin de récupérer l'Email depuis Thunderbird:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Veuillez indiquer le domaine de l'utilisateur %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Impossible de sélectionner la boîte de réception \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Aucun mail correspondant: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Date réelle de début" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Date de début prévu" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Heure due" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Heur d'achèvement" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Heure de rappel" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Heure de création" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Date de fin de la période" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Heure de fin de la période" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Date de début de la période" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Heure de début de la période" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Pas de sujet" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nouvelle tâche arrivant à échéance aujourd'hui" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nouvelle tâche arrivant à échéance demain" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d jours" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 jour" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Tous les %(frequency)d jours" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Toutes les %(frequency)d semaines" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Tous les %(frequency)d mois" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Tous les %(frequency)d ans" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Tous les deux jours" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Toutes les deux semaines" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Tous les deux mois" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Tous les deux ans" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Hier" #: taskcoachlib/render.py:284 msgid "now" msgstr "maintenant" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "La synchronisation depuis la source %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "sera un rafraîchissement depuis le serveur. Tous les éléments locaux seront\n" "effacés. Voulez-vous continuer ?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "sera un rafraîchissement depuis le client. Tous les éléments distants\n" "seront effacés. Voulez-vous continuer ?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronisation" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synchronisation en cours. Veuillez patienter.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d objets ajoutés.\n" "%d objets mis à jour.\n" "%d objets supprimés." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Une erreur s'est produite lors de la synchronisation.\n" "Code d'erreur: %d; message: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Vous devez tout d'abord éditer vos préférences SyncML, dans " "Editer/Préférences SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Bascule Volets" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restaurer %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Panneau de prévisualisation" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Fermer" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Tout fermer" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Suivant" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Précédent" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Fenêtre" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Éditer" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d semaines" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d heures" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Terminé" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Type de période affichée et son compte" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Mois" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientation du calendrier" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Les tâches à afficher" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tâches ayant une date de début prévue et une date d'échéance" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tâches ayant une date de début prévue" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tâches avec une date d'échéance" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Toutes les tâches" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Toutes les tâches, à l'exception des tâches non datées" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Dessiner une ligne affichant l'instant présent" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Couleur utilisée pour aujourd'hui" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Tous les fichiers (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "En-têtes" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Numéro de la semaine" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Portée du calendrier" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Semaine" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Semaine de travail" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Mot de passe:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Stocker dans le trousseau de clés" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Il y a eu un problème en essayant de trouver le trousseau de\n" "votre système. Veuillez soumettre un rapport de bogue (voir\n" "dans le menu Aide) et joindre une capture d'écran de ce message.\n" "Erreur:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Veuillez saisir votre mot de passe." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Veuillez saisir votre mot de passe" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Sensible à la casse" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Tenir compte de la casse en filtrant" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Inclure les objets fils" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" "Inclus les sous-objets des objets correspondant dans les résultats de la " "recherche" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Rechercher dans la description aussi" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Rechercher dans les sujets et les descriptions" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Expression &régulière" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Considérer cette recherche comme une expression régulière" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Ceci n'est pas un expression régulière valide." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Recherche des sous-chaînes par défaut" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Recherches récentes" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Recherche impossible dans cette vue" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Avertissement de compatibilité" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "La fonctionnalité SyncML est désactivée car le module\n" "ne peut être chargé. Il se peut que votre plate-forme\n" "ne soit pas supportée, ou bien si vous utilisez Windows,\n" "il vous manque peut-être certaines bibliothèques partagées.\n" "Veuillez consulter la section SyncML de l'aide en ligne\n" "pour avoir des détails (dans \"Résolution des problèmes\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Ne plus jamais afficher ce dialogue" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Erreur lors de l'ouverture de l'URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Supprimer\tDEL" taskcoach-1.4.3/i18n.in/gl.po000066400000000000000000005134261265347643000156320ustar00rootroot00000000000000# translation of gl.po to Nederlands # Galician translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2008. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: gl\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 07:55+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Non foi posíbel carregar a configuración dende TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Produciuse un erro no ficheiro %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Editar a localización dos anexos" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Editar a localización do anexo \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Engadir anexo" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Engadir anexos a \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Novo anexo" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Eliminar anexos" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Eliminar anexo a \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copiar" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copiar \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Eliminar" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Eliminar \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Cortar" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Cortar \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Pegar" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Pegar \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Pegar como subtarefa" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Pegar como subtarefas de \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Arrastrar e soltar" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Arrastrar e soltar o \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Editar asunto" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Editar asunto \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Editar descricións" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Editar descrición \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Mudar iconas" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Mudar a icona \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Mudar fontes" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Mudar a fonte \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Mudar cores do primeiro plano" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Mudar o \"%s\" coma cor do primeiro plano" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Mudar as cores de fondo" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Mudar o \"%s\" coma cor de fondo" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Conmutar a categoría" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Conmutar a categoría de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nova categoría" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Novas subcategorías" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nova subcategoría de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nova subcategoría" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Editar subcategorías exclusivas" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Editar subcategorías exclusivas de \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Eliminar categorías" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Eliminar a categoría \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Arrastrar e soltar categorías" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Novo esforzo" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Novo esforzo de \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Eliminar esforzos" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Eliminar o esforzo \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Mudar a tarefa do esforzo" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Mudar a data e hora do esforzo" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Mudar a data e hora da finalización do esforzo" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nova nota" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Novas subnotas" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nova subnota de \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nova subnota" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Eliminar notas" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Eliminar a nota \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Arrastrar e soltar as notas" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Arrastrar e soltar a nota \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Engadir unha nota" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Engadir unha nota a \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Engadir unha subnota" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Engadir unha subnota a \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Eliminar nota" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Eliminar nota de \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Arrastrar e soltar tarefas" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Eliminar tarefas" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Eliminar a tarefa \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nova tarefa" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Novas subtarefas" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nova subtarefa de \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nova subtarefa" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marcar as tarefas completadas" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marcar \"%s\" como completada" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Comezar pista" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Comezar o seguimento de \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Parar pista" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Deter o seguimento de \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximizar prioridade" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Darlle máis prioridade a \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizar prioridade" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Darlle menos prioridade a \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Incrementar prioridade" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Aumentar a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Disminuir prioridade" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Diminuír a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Mudar a prioridade" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Mudar a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Engadir unha nota as tarefas" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Mudar a data de finalización" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Mudar a data de finalización de \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Mudar datas/horas do recordatorio" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Mudar a data/hora do recordatorio de \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Mudar as recorrencias" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Mudar a recorrencia de \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Mudar o porcentaxe completado de \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Erro mentres se gardaba %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Erro ó gardar" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Novo adxunto..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Inserir novo adxunto" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Abir adxunto" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Abrir os anexos seleccionados" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutos" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Non pospor" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutos" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutos" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 horas" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutos" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hora" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 horas" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 semanas" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 semana" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total para %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Novo esforzo...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nova tarefa..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Computador persoal" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Computador portátil" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Dispositivo móbil" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Cruz vermella" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Morrer" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Terra azul" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Terra verde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Sobre" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Sobres" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Cartafol azul" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Cartafol verde" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Cartafol gris" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Cartafol laranxa" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Cartafol púrpura" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Cartafol vermello" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Cartafol amarelo" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Corazón" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Corazóns" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Casa verde" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Casa vermella" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Chave" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Teclas" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Información" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota musical" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Nota" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Clip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Lapis" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Persoa" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Xente" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificación" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Subtracción" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Suma" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Paraugas" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Sen icona" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descrición" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Editar para mudar todos os asuntos" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Asunto" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioridade" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategorías" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Explorar" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Localización" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Aparencia" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Cor de primeiro plano" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Cor de fondo" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Tipo de letra" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icona" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datas" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Data Límite" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data de finalización" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Lembranza" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recorrencia" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Porcentaxe acadado" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Non" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Sí" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Marcar a tarefa como completada cando todos os seus fillos o estean?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Presuposto" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Tempo" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Presuposto rexeitado" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Honorario por hora" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Coste fixo" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Redito" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Esforzo" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorías" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Adxuntos" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Anotacións" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Prerequisitos" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Editar tarefa" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tarefa" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Inicio" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Parar" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Comezar seguimento desde o último tempo de parada" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Multiples tarefas" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (tarefa)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Multiples categorías" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (categoría)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Multiples notas" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (nota)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Multiples anexos" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (anexo)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Multiples esforzos" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (effort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Usar o tipo de letra:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Usar a cor:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nada" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Unha vez ao día" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mensual" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Semanal" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Anual" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", cada" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Dester despois" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "día(s)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "Periodo" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "semana(s)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mes(es)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "ano(s)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Un iPhone ou iPod Touch está a tentar\n" "sincronizar có ficheiro de tarefas por\n" "primeira vez. Que tipo de sincronización\n" "quere usar?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "PermitiuYou have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Ten de descarregar e instalar Bonjour para Windows dende\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Sitio web de Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "O soporte en Linux para Bonjour é fornecido\n" "xeralmente por Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Pode atopar máis detalles para a súa distribución aquí" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Salvar automáticamente tras cada cambio" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Gardar a configuracion (%s.ini) no mesmo\n" "directorio ca o programa" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Sempre" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nunca" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Idioma" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Características" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Abrir" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Fusionar" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Ficheiro" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Editar" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Vista" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Axuda" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportar" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Escoller" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtro" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Ordenar" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Colunas" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tarefa" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Páxina" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Abrir %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Fusionar..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nova &subtarefa..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Erro ao abrir anexo" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detalles do esforzo" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Esforzo por día" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Esforzo por mes" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Esforzo por semana" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Insertar nova categoría" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Engadir un periodo de esforzo na(s) tarefa(s) seleccionada(s)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Gardar o ficheiro actual" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Insertar nova nota" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Insertar unha nova tarefa" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "agora" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Todos os ficheiros (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Verificar o tipo de letra cando se filtre" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "incluir subitems de items coincidentes nos resultados da procura" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Expresión regular non válida." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Procuras recentes" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Visor non buscable" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "A funcionalidade SyncML non está habilitada xa que o módulo\n" "non se puido carregar, isto poder ser debido a que a súa\n" "plataforma non está soportada ou é Windows ou é posíbel\n" "que falte algunha DLLs. Por favor vexa a sección sobre SyncML\n" "na axuda online para máis detalles (baixo \"Troubleshooting\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Non mostrar de novo esta caixa de diálogo" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Produciuse un erro ao abrir a URL" taskcoach-1.4.3/i18n.in/he.po000066400000000000000000005541151265347643000156240ustar00rootroot00000000000000# translation of he.po to Nederlands # Hebrew translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2007. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: he\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 07:56+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "שגיאה" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "הופיעו שגיאות. ראה \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "נכשלה טעינת קובץ ההגדרות TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "שגיאה בקובץ %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "ערוך מיקום של קבצים מצורפים" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "ערוך מיקום של קובץ מצורף \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "צרף קובץ" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "הוסף קובץ מצורף ל \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "נספח חדש" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "הסר קובץ מצורף" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "הסר קובץ מצורף ל \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "העתק" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "העתק \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "מחק" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "מחק \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "גזור" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "גזור \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "הדבק" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "הדבק \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "הדבק כפריט משנה" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "הדבק כפריט משנה של \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "גרור ושחרר" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "גרור והשלך \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "ערוך נושאים" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "ערוך נושא \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "ערוך תאורים" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "ערוך תאור \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "שנה צלמיות" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "שנה צלמית \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "שנה גופן" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "שנה גופן \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "שנה צבע רקע קידמי" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "שנה צבע רקע קידמי \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "שנה צבע רקע אחורי" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "שנה צבע רקע אחורי \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "החלף קטגוריה" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "מתג קטגוריה של \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "קטגוריה חדשה" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "קטגורית משנה חדשה" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "קטגורית משנה חדשה של \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "תת-קטגוריה חדשה" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "ערוך קטגוריות משנה בלעדיים" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "ערוך קטגוריות משנה בלעדיים של \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "מחק קטגוריות" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "מחק קטגוריה \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "גרור והשלך קטגוריות" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "מאמצים חדשים" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "מאמץ חדש של \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "מחק משימות מאמץ" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "מחק מאמץ \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "שנה משימת מאמץ" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "שנה משימה של \"%s\" מאמץ" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "שנה תאריך ושעת התחלה של מאמץ" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "שנה תאריך ושעת התחלה של מאמץ \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "שנה תאריך ושעת סיום של מאמץ" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "שנה תאריך ושעת סיום של מאמץ \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "פתק חדש" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "תת הערות חדשות" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "תת הערות חדשות של \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "פתקית חדשה" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "מחק הערות" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "מחק הערה \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "גרור והשלך הערות" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "גרור והשלך הערה \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "הוספת הערה" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "הוסף הערה ל-\"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "הוסף תת-הערה" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "הוסף תת-הערה ל-\"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "הסר הערה" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "הסר הערה מ-\"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "גרור והשלך משימות" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "מחק משימות" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "מחק משימה \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "משימה חדשה" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "תת משימה חדשה" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "תת משימה חדשה של \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "תת-משימה חדשה" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "סמן משימות כמושלמות" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "סמן \"%s\" כמושלמת" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "סמן משימה כפעילה" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "סמן \"%s\" כפעילה" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "סמן משימה כלא פעילה" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "סמן \"%s\" כלא פעילה" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "התחל מעקב" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "התחל לעקוב אחר \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "הפסק מעקב" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "הפסק לעקוב אחר \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "עדיפות מקסימלית" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "מקסם עדיפות של \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "עדיפות מינימלית" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "הקטן למינימום עדיפות של \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "העלה עדיפות" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "הגדל עדיפות של \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "הפחת עדיפות" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "הקטן עדיפות של \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "שנה עדיפות" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "שנה עדיפות של \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "הוסף הערה למשימות" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "שנה תאריך תחילה מתוכנן" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "שנה תאריך תחילה מתוכנן של \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "שנה תאריך יעד" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "שנה תאריך יעד של \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "שנה תאריך תחילה בפועל" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "שנה תאריך תחילה בפועל של \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "שנה תאריך סיום" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "שנה תאריך סיום של \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "שנה תאריך/זמן תזכורת" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "שנה תאריך/זמן תזכורת \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "שנה חזרות" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "שנה חזרות של \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "שנה אחוזי השלמה של \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "שנה כאשר משימות יסומנו כמושלמות" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "שנה כאשר \"%s\" יסומן כמושלם" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "שנה תקציבים" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "שנה תקציב של \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "שנה תשלומים שעתיים" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "שנה תשלום שעתי של \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "שנה תשלומים קבועים" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "שנה תשלום קבוע של \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "מתג דרישת קדם" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "מתג דרישת קדם של \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "שגיאה בקריאת ה- %s-%s הנקבע מ-%s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "הערך הוא: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "השגיאה היא: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "%s ישמש כברירת מחדל וימשיך בצורה רגילה" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "שגיאת הגדרות" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "שגיאה בשמירת %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "שגיאה בשמירה" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "נספח חדש..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "הכנס נספח חדש" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "פתח קובץ מצורף" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "פתח את הנספחים שנבחרו" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 דקות" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "ללא תזכורת" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 דקות" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 דקות" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 דקות" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 דקות" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 שעות" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 דקות" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "שעה אחת" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 שעות" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 שעות" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 שעות" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 שעות" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 שעות" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 שעות" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 שעות" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 שעות" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 שעות" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 שעות" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "שבועיים" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "שבוע אחד" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "סה\"כ" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "סה\"כ עבור %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&מעקב זמנים חדש...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "משימות לא פעילות" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "הסתר &משימות לא פעילות" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "מטלות לא פעילות: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "משימות אחרונות" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "הסתר מטלות באיחור" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "מטלות באיחור: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "הצג/הסתר מטלות באיחור (מטלות לא פעילות שתאריך ההתחלה המיועד עבר)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "משימות פעילות" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "משימות פעילות: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "הסתר מטלות פעילות" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "מטלות המיועדות לסיום בקרוב" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "הסתר בטלות המיועדות לסיום בקרוב" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "מטלות באיחור" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "הסתר מטלות באיחור" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "משימות שהסתיימו" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "משימות שהסתיימו: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "הסתר &משימות שהסתיימו" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "הגג/הסתר משימות שהושלמו" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&משימה חדשה..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "חץ למטה" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "חץ למטה עם סטטוס" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "חצים כחולים בלולאה" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "חצים ירוקים בלולאה" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "חץ למעלה" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "חץ למעלה עם סטטוס" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "פצצה" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "ספר" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "ספרים" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "תיבה" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "פרת משה רבנו" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "עוגה" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "מחשבון" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "לוח-שנה" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "חתול" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "כונן אופטי" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "תרשימים" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "משוחח" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "בדוק סימונים" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "שעון" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "שעון מעורר" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "עצור מעקב" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "גלגל שיניים" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "גלגלי שיניים" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "מחשב שולחני" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "מחשב נייד" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "מחשב כף יד" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "צלב אדום" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "מת" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "מסמך" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "אדמה כחולה" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "אדמה ירוקה" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "מעטפה" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "מעטפות" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "תיקיה כחולה" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "תיקיה בצבע תכלת" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "תיקיה ירוקה" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "תיקיה אפורה" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "תיקיה כתומה" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "תיקיה סגולה" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "תיקיה אדומה" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "תיקיה צהובה" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "תיקיה כחולה עם חץ" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "לב" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "לבבות" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "בית ירוק" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "בית אדום" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "מפתח" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "מפתחות" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "נורה" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "סימן שאלה" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "מידע" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "לד כחול" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "לד כחול בהיר" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "לד אפור" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "לד ירוק" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "לד ירוק בהיר" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "לד כתום" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "לד סגול" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "לד אדום" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "לד צהוב" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "גלגל הצלה" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "נעול במנעול" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "פתיחת נעילה" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "זכוכית מגדלת" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "פסנתר" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "תו מוזיקלי" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "הערה" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "לוח צבעים" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "מהדק" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "עיפרון" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "אדם" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "אנשים" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "זיהוי" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "אדם מדבר" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "סימן אזהרה" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "מינוס" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "פלוס" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "כוכב אדום" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "כוכב צהוב" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "רמזור" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "פח אשפה" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "ברק" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "מטריה" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "שמש חלקית" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "עקום" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "אין סמל" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "תיאור" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "ערוך לשינוי כל הנושאים" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "נושא" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "ערוך לשינוי כל התיאורים" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "עדיפות" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "תת קטגוריה" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "ערוך לשינוי כל הקבצים המצורפים" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "עיון" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "מיקום" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "מראה" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "צבע טקסט" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "צבע רקע:" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "גופן" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "סמל" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "תאריכים" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "תאריך תחילה מתוכנן" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "תאריך יעד" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "תאריך תחילה בפועל" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "תאריך השלמה" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "תזכורת" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "מופע חוזר" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "התקדמות" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "אחוזים הושלמו" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "השתמש בהגדרה כוללת ליישום" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "לא" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "כן" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "האם לסמן את המשימה כהושלמה כשכל הסעיפים תחתיה הושלמו?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "תקציב" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "זמן שהושקע" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "תקציב שנשאר" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "משכורת לשעה" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "משכורת קבועה" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "רווח" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "השקעת זמן" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "קטגוריות" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "קבצים מצורפים" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "פתקים" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "דרישות קדם" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "ערוך משימה" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "משימה" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "התחל" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "עצור" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "התחל לעקוב מנקודת הזמן האחרונה שבה עצרת" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "הפסק מעקב עכשיו" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "אזהרה: ההתחלה חייבת להיות מוקדמת יותר מהסיום" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "משימות מרובות" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (משימות)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "קטגוריות מרובות" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (קטגוריה)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "הערות מרובות" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (הערה)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "קבצים מצורפים מרובים" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (קובץ מצורף)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "מאמצים מרובים" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (effort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "גופן:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "השתמש בצבע:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "ללא" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "מידי יום" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "חודשי" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "שבועי" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "שנתי" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "תוך שימור תאריך ביום בשבוע" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "כל" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "עצור אחרי" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "חזרות" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "ימים" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "תקופה" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "שבועות" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "חודשים" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "שנים" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "ייצא פריטים מ-" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "ייבא רק פריטים נבחרים" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "עמודות ליצוא" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "יצוא כ-CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "ייצא כ-iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "ייצא כ-HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "ייצא כ-Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "מכשיר iPhone או iPod Touch מנסה להסתנכרן עם קובץ זה בפעם הראשונה.\n" "באיזה סוג סנכרון להשתמש?!" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "רענן משולחן העבודה" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "רענן מהמכשיר" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "ביטול" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "הגדרתם סנכרון עם iPhone. סנכרון זה מצריך תוכנת Bonjour מותקנת במחשב.\n" "אך תוכנת Bonjour אינה מותקנת." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "נא הורידו והתקינו את תוכנת Bonjour מ\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "אתר האינטרנט של Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "תמיכת Bonjour עבור לינוקס הינה על ידי: Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "תוכל למצוא פרטים נוספים לגבי ההפצה שלך כאן" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "שים לב שבהפצות שונות (פדורה), עליך להתקין את החבילות: avahi-compat-" "libdns_sd ו- Avahi בכדי שזה יעבוד" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "בנוסף, אם יש לך חומת אש, בדוק שהשערים (פורטים) 4096-4100 פתוחים." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "אישור" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "קבצים" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "שמור אוטומטית לאחר כל שינוי" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "שמור שינויים (ini.%s) בתיקיית התוכנה" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "נתיב מוצא לקבצים מצורפים" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "בהוספת קובץ מצורף, שמור על נתיב יחסי לנתיב הבא" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "לפני שמירה יבא אוטומטית מ-" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "פורמט Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "לפני שמירה, %s מייבא משימות אוטומטית מקובץ Todo.txt עם שם זהה לקובץ המשימה " "רק עם סיומת .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "בעת השמירה , אוטומטית ייצא ל-" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "בעת השמירה, %s מייצא משימות אוטומטית לקובץ Todo.txt עם שם זהה לקובץ המשימה " "רק עם סיומת .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "התנהגות חלונות" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "הצגת מסך פתיח בעת הפעלת התוכנה" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "הצגת חלון הטיפים בהפעלת התוכנה" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "הפעלה כשהחלון הראשי ממוזער" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "תמיד" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "לעולם לא" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "במידה והחלון היה ממוזער בהפעלה הקודמת" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "בדוק עבור גירסה חדשה של %(name)s בהפעלת התוכנה" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "החבא את החלון הראשי כאשר נמצא במצב ממוזער" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "מזער את החלון הראשי בסגירה" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "כאשר מתבצע מעקב זמנים, השעון בשורת המשימות יתקתק" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "שפה" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "תן למערכת לקבוע את השפה" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "שפה לא נמצאה?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "סדר הופעת משימה" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "תכונות" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "אפשר סינכרון SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "אפשר סינכרון עם iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "תחילת שבוע עבודה" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "יום שני" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "יום ראשון" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "תחילת יום עבודה בשעה" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "סיום יום עבודה בשעה" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "סיום יום" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "הצג פופ-אפ עם תיאור הפריט, כאשר סמן העכבר מעליו" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "תאריכי משימות" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "סמן משימה כהושלמה לאחר שכל הפריטים תחתיה הושלמו" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "מספר השעות שהמשימה נחשבת לעומדת להסתיים בקרוב" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "שום דבר" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "מוגדר מראש" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "הצע" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "היום" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "מחר" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "מחרתיים" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "יום שישי הבא" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "יום ראשון הבא" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "התחלה של יום" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "התחלה של יום עבודה" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "שעון מערכת" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "סיום יום עבודה" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "ברירת מחדל של תאריך ושעת התחלה" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "תזכורת משימות" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "כמה פעמים לנדנד בתזכורת" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "אייפון" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "סיסמת סינכרון עם iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "שם שרות לBonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "העלה את כל המשימות למכשיר" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "הראה את יומן הסנכרון" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "עורך" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "בדוק איות" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "תאריך/שעת תזכורת" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "תזכורת" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "סמן משימות כהושלמו" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "מותאם אישית" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL לשרת SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "שם משתמש/זיהוי" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "אפשר סנכרון משימות" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "שם מסד הנתונים של המשימות" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "דו צידי" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "איטי" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "דרך אחת ממחשב לקוח" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "כפה נתוני צד לקוח" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "דרך אחת משרת" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "עדכן מהשרת" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "אפשר סנכרון פתקיות" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "שם מסד נתונים לפתקיות" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "גישה" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "הודע לי על גירסאות חדשות" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "גירסה חדשה של %(name)s זמינה!" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "גירסה %(version)s של %(name)s זמינה מ-" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "אזהרה" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "אל תציג את הדיאלוג בפתיחה" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "אל תעשה דבר" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "עצור את זה ב-%s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "עצור את זה ב-%s והמשך עכשיו" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "קבצי %s (*.tsk)|*.tsk|קבצי גיבוי (*.tsk.bak)|*.tsk.bak|כל הקבצים (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar (*.ics)|*.ics|כל הקבצים קבצי (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML(*.html)|*.html|כל הקבצים קבצי(*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV (*.csv)|*.csv|קבצי טקסט (*.txt)|*.txt|כל הקבצים קבצי(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "פתח" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "נטענו %(nrtasks)d משימות מתוך %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "לא מצליח לפתוח את %s הקובץ לא קיים" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "מזג" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "לא ניתן לפתוח את %(filename)s\n" "מאחר והקובץ נעול." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "מוזג %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "שמירה בשם" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "שמור בחירה" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "לא ניתן לשמור את %s\n" "הקובץ נעול על ידי מופע אחר של %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "לא ניתן לשמור את %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s קבצי תבנית (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "הסנכרון הסתיים" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "מצב הסנכרון" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "יש לך שינויים שלא נשמרו.\n" "האם ברצונך לשמור את השינויים לפני הסגירה?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: שמור שינויים?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "נסגר %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "נשמרו %(nrtasks)d משימות לקובץ %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "שגיאה בעת נסיון לפתיחת %(filename)s\n" "מאחר שהוא נוצר על ידי גירסה לא מוכרת של %(name)s.\n" "נא שדרגו את %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "שגיאה בקריאת %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "בסנכרון..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "מסתנכרן עם %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "ברוך הבא אל %(name)s גירסה %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "סוג הסנכרון" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&קובץ" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "ער&יכה" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&תצוגה" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&חדש" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&פעולות" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&עזרה" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&ייבא" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "ייצו&א" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&בחר" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&לשונית תצוגה חדשה" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "ה&פעל את חלונית התצוגה הבאה\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "הפעל את חלונית התצוגה ה&קודמת\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&סינון" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "מיון" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&טורים" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&עיגול" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "אפשרויות עץ" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "סר&גל כלים" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "הצג/הסתר את שורת המצב" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "שורת מצב" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&משימה" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "פתח לשונית חדשה שתציג משימות" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "משימות &סטיסטיקה" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "משימה &מפת משבצת" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "פתיחת כרטיסיה חדשה עם תצוגת ציר זמן של משימות ומעקב הזמנים שלהם" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&לוח שנה" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "פתיחת כרטיסיה חדשה המציגה את המשימות בתצוגת לוח שנה" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&קטגוריה" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "פתח לשונית חדשה בחלון שמציגה קטגוריות" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "ה&שקעת זמנים" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "פתיחת כרטיסיה חדשה המציגה מעקב זמנים" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "פתיחת כרטיסיה חדשה המציגה את מעקב הזמנים למשימה נבחרת" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&פתק" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "פתח לשונית חדשה שתציג פתקים" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&הסתר" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "הסתר את סרגל הכלים" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "סמלים קטנים" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "סמלים קטנים (16X16) בסרגל הכלים" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "סמלים בינוניים" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "סמלים בינוניים (22X22) בסרגל הכלים" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "סמלים גדולים" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "סמלים גדולים (32X32) בסרגל הכלים" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "משימה חדשה מ- &תבנית" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&מתג קטגוריות" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "שנה &עדיפות המשימה" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&התחל מעקב זמנים" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (תת משימות)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&עדיפות" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "עמוד" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "תזכורת %s" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d משימות שעבר זמנן" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "משימה אחת שעבר זמנה" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "משימה אחת מוקדמת מידי" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "מעקב זמנים ל-%d משימות" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&פתח...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "פתח %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "מי&זוג..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "מזג משימות מקובץ אחר לקובץ הנוכחי" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&סגור \tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&שמור\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "ש&מור בשם... \tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "שמור משימה נבחרת כ &template" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&מחק פריטים מבטולים" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "מחק פריטים מבטולים סופית" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&הצג לפני הדפסה..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "תצוגה מקדימה של הדף לפני הדפסה" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "תצוגה לפני הדפסה" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "ייצא כ-&HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "ייצא כ-&CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "ייצא כ-&iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "ייצא כ-& ...Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&ייצא CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "ייבוא CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&ייבוא Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "ייבוא Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "צא\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&בטל" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "בצע &שוב" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&גזור\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "ה&עתק\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "ה&דבק\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&העדפות...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "העדפות" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&בחר הכל\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&נקה בחירה" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "ביטול בחירת כל הפריטים" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "שנה שם לשונית תצוגה..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "שינוי שם לשונית התצוגה הנוכחית" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "כותרת חדשה ללונית התצוגה:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "שינוי שם לשונית תצוגה" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "החבא עמודה" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "החבא את העמודה שנבחרה" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&הרחב את כל הפריטים\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "צמצם את כל הפריטים\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "בסדר &עולה" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "מיון בסדר עולה (מסומן) או יורד (לא מסומן)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "הצג/הסתר עמודת תקציב כולל שנשאר (תקציב כולל שנשאר מכיל את את התקציב שנשאר " "לתת המשימות)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "מיין לפי סטטוס תחילה" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "מיין משימות לפי סטטוס (פעיל/לא פעיל/הושלם) תחילה" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "הצג/הסתר משימות בעלות תת-משימות, בעת תצוגה ברשימה" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "ערוך פריט/ים נבחר/ים" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "צור משימה חדשה מתבנית" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "&תת-משימה חדשה..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "סימון המשימות הנבחרות כהושלמו" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "החל במעקב זמנים ל-%s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "בחר משימה באמצעות התפריט והחל במעקב זמנים" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "הפסק מעקב זמנים למשימות שנבחרו" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "שגיאה בפתיחת הקובץ המצורף" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "תוכן עניינים של &עזרה\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "עזרה" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&טיפים" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "טיפים לשימוש בתוכנה" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&אודות %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "גירסה ויצירת קשר אודות %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&רישיון" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "רישיון %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&שחזר" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "שחזר את החלון למצבו הקודם" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "פרטי מעקב זמנים" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "השקעת זמנים יומית" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "השקעת זמנים חודשית" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "השקעת זמנים שבועית" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "סנן על פי קטגוריות שנבחרו" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "סנן על פי קגוריות שנבחרו" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&היום" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "מיין לפי נושא" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "נושא" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "מיין לפי תיאור" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&תיאור" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "הצג/הסתר עמודת תיאור" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "קבצים מצורפים" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "קטגוריות: %d נבחרו, %d סה\"כ" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "מצב: %d סוננו" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "תקופה" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "סה\"כ זמן שהושקע" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "סה\"כ תשואה" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "קטגוריות" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "הצג/הסתר עמודת קטגוריות" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "זמן שבוזבז" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "הצג/הסתר עמודת זמן שבוזבז" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "רווח" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "הצג/הסתר עמודת רווח" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "הצג/הסתר עמודת רווח כולל" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "עוקב אחר %d" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "מיין פתקים לפי נושא" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "מיין פתקים לפי תיאור" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "מיין משימות לפי תאריך ביצוע" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&תאריך ביצוע" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "מיין משימות לפי תאריך סיום" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "תאריך סיום" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "מיין משימות על פי הישנות" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&הישנות" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "מיין משימות לפי תקציב" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "תקציב" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "מיין משימות לפי זמן שבוזבז" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "תקציב שנשאר" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "מיין משימות לפי תקציב שנשאר" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "מיין משימות לפי עדיפות" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "מיין משימות לפי שכר לשעה" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "שכר לשעה" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "מיין משימות לפי שכר קבוע" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "שכר קבוע" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "מיין משימות לפי רווח" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "מיין משימות לפי תאריך וזמן תזכורת" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&תזכורת" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&נושא" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "מיין פתקים לפי קטגוריות" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "פתקים: %d נבחרו, %d סה\"כ" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "סטטוס: אין" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "משימות: %d נבחרו, %d נראות, %d סה\"כ" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "משימות" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&תאריכים" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "הצג/הסתר את כל עמודות התאריכים" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "הצג/הסתר עמודת תאריך ביצוע" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "הצג/הסתר עמודת תאריך סיום" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "הצג/הסתר עמודה של הישנות" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "הצג/הסתר את כל עמודות התקציב" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "הצג/הסתר עמודת תקציב" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "הצג הסתר עמודת תקציב שנשאר" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&כלכליות" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "הצג/הסתר את כל העמודות הכלכליות" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "הצג/הסתר עמודת שכר לשעה" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "הצג/הסתר עמודת שכר קבוע" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "הצג/הסתר עמודת קבצים מצורפים" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "הצג/הסתר עמודת עדיפות" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "הצג/הסתר עמודת תזכורת" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    גרסא %(version)s, %(date)s
    \n" "

    ע\"י %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "אם תזין כתובת (לדוגמה: %(url)s) במטלה או תיאור המאמצים, היא תהפך לקישור. " "לחיצה על הקישור תפתח את הכתובת בדפדפן ברירת המחדל שלך." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "הערה: ההדפסה תציג את תוכן המסך הפעיל.\r\n" "זאת אומרת, שאם המסך הפעיל מציג רשימת משימותף תודפס רשימת משימות, ואילו אם " "המסך הפעיל מציג רשימת מעקב זמנים חודשית, תודפס רשימת מעקב זמנים חודשית.\r\n" "בהדפסה יישמרו העמודות המוצגות, מיון הרשימה, הסינון הפעיל וכו'." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "הוסף קטגוריה חדשה" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "גזירת הפריט(ים) הנבחר(ים) ללוח" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "העתקת הפריט(ים) הנבחר(ים) ללוח" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "הדבקת פריט(ים) מהלוח" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "ערוך העדפות" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "חזור על הפעולה האחרונה שבוצעה" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "בחירת כל הפריטים בתצוגה הנוכחית" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "ביטול פעולה אחרונה" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "הוסף מעקב זמנים למשימות שנבחרו" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "החל במעקב זמנים למשימה שנבחרה" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "סגור את הקובץ הנוכחי" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "יציאה מ-%s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "פתח קובץ %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "שומר את הקובץ הנוכחי" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "שומר את הקובץ הנוכחי בשם חדש" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "עזרה לתוכנית" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "הוסף פתק חדש" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "הדפס את הקובץ הנוכחי" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "הגדר את המאפיינים של דף המדפסת" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "הראה הכל (נקה פילטרים)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "הורד עדיפות למשימות שנבחרו" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "העלה עדיפות למשימות שנבחרו" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "הפוך את המשימות שנבחרו לעדיפות הגבוהה ביותר" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "הפוך את המשימות שנבחרו לעדיפות הנמוכה ביותר" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "הוסף משימה חדשה" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "צמצם את כל הפריטים ותת הפריטים" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "הרחב את כל הפריטים ותת הפריטים" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "הפעל את חלונית התצוגה הפתוחה הבאה" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "הפעל את חלונית התצוגה הפתוחה הקודמת" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d ימים" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "יום אחד" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "כל %(frequency)d ימים" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "כל %(frequency)d שבועות" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "כל %(frequency)d חודשים" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "כל %(frequency)d שנים" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "יום כן יום לא" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "כל שבוע שני" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "כל חודש שני" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "כל שנה שנייה" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "עכשיו" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "כל הקבצים (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "התאם אותיות גדולות/קטנות בסינון" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "כלול תת-פריטים של פריטים מתאימים בתוצאות החיפוש" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "חיפושים אחרונים" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "החלון אינו מיועד לחיפוש" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/hi.po000066400000000000000000005040361265347643000156250ustar00rootroot00000000000000# Hindi translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: hi\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "TaskCoach.ini से सेटिंग्स लोड नहीं कर सकता:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s फाइल त्रुटी" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "अटैचमेंट जोड़ें" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "\"%s\" में अटैचमेंट जोड़ें" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "नया अटैचमेंट" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "प्रतिलिपि(कॉपी) करें" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "प्रतिलिपि \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "मिटायें" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "\"%s\" को मिटायें" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "कट करें" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "कट \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "चिपकाएँ(पेस्ट )" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "चिपकाएँ \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "खींचें और छोड़ें(ड्रेग ड्रॉप करें)" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "खींचें और छोड़ें(ड्रेग ड्रॉप करें) \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "नयी श्रेणी" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "नयी उपश्रेणी" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "नयी टिप्पणी" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "नयी उपटीप्पणी" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "नोट जोड़ें" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "\"%s\" में नोट जोड़ें" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "नया कार्य" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "नया उपकार्य" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "अधिकतम प्राथमिकता" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "न्यूनतम प्राथमिकता" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "प्राथमिकता बढ़ाएँ" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "प्राथमिकता घटायें" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "सेव करते समय त्रुटि %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "सेव त्रुटि" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "कुलयोग" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "एवं नया कार्य..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "कार्य को संपादित करें" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "नया एवं उपकार्य..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "नयी श्रेणी डालें" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "चुने हुवे कार्यों के प्रयास में लगा समय" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "नयी टिप्पणी डालें" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "नया कार्य डालें" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/hu.po000077500000000000000000006216231265347643000156460ustar00rootroot00000000000000# Task Coach # Copyright (C) 204-2005 Frank Niessink # Frank Niessink , 2005. # msgid "" msgstr "" "Project-Id-Version: Task Coach\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:29+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Majsa Norbert \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" "X-Poedit-SourceCharset: utf-8\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Hibák léptek fel. Ellenőrizze a \"taskcoachlog.txt\" fájlt a \"My " "Documents\" vagy \"Dokumentumok\" mappában." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Hiba" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Hiba lépett fel. Lásd \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Nem sikerült betölteni a beállításokat: TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s fájlhiba" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" felső szintű lett, mert a szülője törölve lett." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Konfliktus észlelve itt: \"%s\".\n" "Helyi változat lett használva." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Mellékletek helyének szerkesztése" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "\"%s\" melléklet helyének szerkesztése" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Melléklet hozzáadása" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Melléklet hozzáadása: \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Új melléklet" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Melléklet visszavonása" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "\"%s\" mellékletének eltávolítása" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Másolás" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "\"%s\" másolása" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Törlés" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "\"%s\" törlése" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Kivágás" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "\"%s\" kivágása" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Beillesztés" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "\"%s\" beillesztése" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Beillesztés résztételként" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Beillesztés \"%s\" résztételeként" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Fogd és vidd" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Fogd és vidd \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Tárgy rovatok szerkesztése" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "\"%s\" tárgy szerkesztése" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Leírások szerkesztése" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "\"%s\" leírásának szerkesztése" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Ikonok megváltoztatása" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "\"%s\" ikonjának megváltoztatása" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Betűtípus megváltoztatása" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Betűtípus \"%s\" megváltoztatása" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Előtérszínek megváltoztatása" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Előtérszín megváltoztatása: \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Háttérszínek megváltoztatása" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Háttérszín megváltoztatása: \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Kategória váltása" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "\"%s\" kategóriájának váltása" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Új kategória" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Új részkategóriák" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "\"%s\" új részkategóriája" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Új részkategória" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Kizárólagos kategóriák szerkesztése" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "\"%s\" kizárólagos kategóriáinak szerkesztése" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Kategóriák törlése" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "A(z) \"%s\" kategória törlése" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Fogd és vidd kategóriák" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Új ráfordítások" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "\"%s\" új ráfordítása" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Ráfordítások törlése" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "\"%s\" ráfordításának törlése" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Ráfordítás feladatának módosítása" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "\"%s\" ráfordítás feladatának módosítása" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Ráfordítás kezési dátumának és időpontjának módosítása" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "\"%s\" ráfordítás kezési dátumának és időpontjának módosítása" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Ráfordítás leállítási dátumának és időpontjának módosítása" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "\"%s\" ráfordítás leállítási dátumának és időpontjának módosítása" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Új jegyzet" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Új részjegyzetek" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "\"%s\" új részjegyzete" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Új részjegyzet" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Jegyzet törlése" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "\"%s\" jegyzet törlése" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Fogd és vidd jegyzetek" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Fogd és vidd jegyzet \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Jegyzet hozzáadása" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Jegyzet hozzáadása: \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Részjegyzet hozzáadása" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Részjegyzet hozzáadása ide: \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Jegyzet eltávolítása" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Jegyzet eltávolítása innen: \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Fogd és vidd feladatok" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Feladatok törlése" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "\"%s\" feladat törlése" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Új feladat" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Új részfeladatok" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "\"%s\" új részfeladata" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Új részfeladat" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Feladatok bejelölése befejezettnek" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "\"%s\" bejelölése befejezettnek" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Feladat megjelölése aktívként" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "\"%s\" megjelölése aktívként" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Feladat megjelölése inaktívként" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "\"%s\" megjelölése inaktívként" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Követés indítása" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "\"%s\" követésének indítása" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Követés leállítása" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "\"%s\" követésének leállítása" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Prioritás maximumra" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "\"%s\" prioritása maximumra" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Prioritás minimumra" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "\"%s\" prioritása minimumra" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Prioritás növelése" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "\"%s\" prioritásának növelése" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Prioritás csökkentése" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "\"%s\" prioritásának csökkentése" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Prioritás módosítása" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "\"%s\" prioritásának módosítása" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Jegyzet hozzáadása a feladathoz" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Tervezett induló dátum módosítása" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "\"%s\" tervezett induló dátum módosítása" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Határidő módosítása" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "\"%s\" határidejének módosítása" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Tényleges kezdési időpont módosítása" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "\"%s\" tényleges kezdési időpontjának módosítása" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Teljesítés dátumának módosítása" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "\"%s\" teljesítés dátumának módosítása" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Emlékeztető dátumok/idők módosítása" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Emlékeztető dátumok/idők módosítása: \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Ismétlődések módosítása" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "\"%s\" ismétlődéseinek módosítása" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "\"%s\" százalékos készültségének módosítása" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Változtassa meg mikor legyenek a feladatok befejezettre váltva" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Változtassa meg mikor legyen a(z) \"%s\" befejezettre váltva" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Költségvetés módosítás" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "\"%s\" költségvetésének módosítása" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Óradíjak megváltoztatása" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "\"%s\" óradíjának megváltoztatása" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Fix díjak megváltoztatása" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "\"%s\" fix díjának megváltoztatása" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Előfeltétel váltása" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "\"%s\" előfeltételének váltása" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Hiba a %s-%s beállítás olvasásakor a(z) %s.ini fájlból" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Az érték: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "A hiba: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s az alapértelmezett értéket fogja használni a beállításhoz és rendben " "folytatódik." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Hiba a beállításokban" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Mentés közbeni hiba %s.ini\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Mentési hiba" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app üzenet" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Új melléklet..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Új melléklet beszúrása" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Melléklet megnyitása" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "A kijelölt mellékletek megnyitása" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 perc" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Nincs szundi" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 perc" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 perc" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 perc" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 perc" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1 óra 30 perc" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 perc" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 óra" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 óra" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 óra" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 óra" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 óra" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 óra" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 óra" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 óra" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 óra" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 óra" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 óra" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 hét" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 hét" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Összes" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "%s összesen" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Új ráfordítás...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Inaktív feladatok" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "&Inaktív feladatok elrejtése" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Inaktív feladatok: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Megmutatja/elrejti az inaktív feladatokat (befejezetlen feladatok tényleges " "induló dátum nélkül)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Késésben lévő feladatok" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Késésben lévő feladatok elrejtése" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Késésben lévő feladatok: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Megmutatja/elrejti a késésben lévő feladatokat (inaktív feladatok a múltban " "lévő tervezett indulással)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktív feladatok" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktív feladatok: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Aktív &feladatok elrejtése" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Megmutatja/elrejti az aktív feladatokat (befejezetlen feladatok a múltban " "lévő tényleges indulási időponttal)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Hamarosan esedékes feladatok" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Hamarosan esedékes feladatok: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Hamarosan esedékes feladatok elrejtése" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Megmutatja/elrejti a hamarosan esedékes feladatokat (befejezetlen feladatok " "a közeljövőben lévő határidővel)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Lejárt feladatok" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Lejárt feladatok elrejtése" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Lejárt feladatok: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Megmutatja/elrejti a lejárt feladatokat (befejezetlen feladatok a múltban " "lévő határidővel)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Befejezett feladatok" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Befejezett feladatok: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "&Befejezett feladatok elrejtése" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Megjeleníti/elrejti a befejezett feladatokat" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "Új &feladat..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Lefele mutató nyíl" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Lefele mutató nyíl állapotjelzéssel" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Kék nyilak hurokban" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Zöld nyilak hurokban" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Felfele mutató nyíl" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Felfele mutató nyíl állapotjelzéssel" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Könyv" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Könyvek" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Doboz" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Katicabogár" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Torta" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Számológép" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Naptár" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Macska" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "CD" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Diagrammok" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Csevegés" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Helyes válasz" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Helyes válaszok" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Óra" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Ébresztőóra" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopperóra" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Fogaskerék" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Fogaskerekek" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Asztali számítógép" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Noteszgép" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Kézi számítógép" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Helytelen válasz" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Játékkocka" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokumentum" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Kék föld" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Zöld föld" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Boríték" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Borítékok" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Kék mappa" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Világoskék mappa" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Zöld mappa" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Szürke mappa" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Narancssárga mappa" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Lila mappa" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Piros mappa" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Sárga mappa" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Kék mappa nyíllal" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Szív" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Szívek" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Zöld ház" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Piros ház" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Kulcs" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Kulcsok" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Villanykörte" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Kérdőjel" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Információ" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Kék led" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Világoskék led" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Szürke led" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Zöld led" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Világoszöld led" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Narancssárga led" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Lila led" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Piros led" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Sárga led" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Mentőöv" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Zárt lakat" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Nyitott lakat" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Nagyító" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Zongora" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Hangjegy" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Jegyzet" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paletta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Iratkapocs" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Ceruza" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Személy" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Személyek" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Azonosító" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Beszélő személy" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Figyelmeztető jel" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Mínuszjel" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Pluszjel" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Vörös csillag" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Sárga csillag" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Közlekedési lámpa" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Szemétkosár" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Villám" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Esernyő" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Részleges napsütés" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Csavarkulcs" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Nincs ikon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Fájl" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Teljes elérési út" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Dátum" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Helyreállítás" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Bezárás" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Válassza ki a helyreállítás célhelyét" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Üzenet a %s fejlesztőktől" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Lásd:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Leírás" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Az összes tárgyat megváltoztató szerkesztés" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Tárgy" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Az összes leírást megváltoztató szerkesztés" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Létrehozás dátuma" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Módosítás dátuma" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritás" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Kölcsönösen kizárólagos" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Alkategóriák" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Az összes melléklet fájljainak szerkesztése" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Tallózás" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Hely" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Megjelenítés" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Előtérszín" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Háttérszín" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Betűtípus" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ikon" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Dátumok" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Tervezett kezdési időpont" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Határidő" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Tényleges kezdési időpont" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Teljesítés dátuma" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Emlékeztető" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Ismétlődés" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Haladás" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Százalék kész" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Alkalmazásszintű beállítás" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nem" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Igen" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "A feladat bejelölése befejezettnek, ha minden részfeladat befejezésre került?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Költségvetés" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Ráfordított idő" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Maradék költségvetés" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Óradíj" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fix díj" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Bevétel" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Ráfordítás" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategóriák" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Mellékletek (fájlok)" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Jegyzetek" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Előfeltételek" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Feladat szerkesztése" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Feladat" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Indítás" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "hét" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "nap" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Óra(k)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Perc(ek)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Leállítás" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Követés kezdése a legutolsó leállítás idejétől" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Követés leállítása most" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Figyelmeztetés: korábban kell kezdődnie mint befejeződnie" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Többszörös feladatok" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (feladat)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Többszörös kategóriák" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (kategória)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Többszörös jegyzetek" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (jegyzet)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Többszörös csatolmányok" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (melléklet)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Többszörös ráfordítás" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (ráfordítás)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Használandó betű:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Használandó szín:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nincs" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Naponta" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Havonta" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Hetente" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Évente" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "a hét azonos napján" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", valamennyi" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Megállít ezután:" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "ismétlődések" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Időzítsen minden ismétlődést ez szerint:" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "előző tervezett kezdési és/vagy határidő" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "teljesítés legutolsó dátuma" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "nap(ok)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periódus" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "hét" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "hónap(ok)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "év(ek)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Elemek exportálása innen:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Csak a kijelölt elemek exportálása" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Exportálandó oszlopok:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Tegye a feladatok dátumát és idejét külön oszlopba" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Stílus leírása külön CSS fájlba" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Ha már létezik egy CSS fájl az exportált fájlhoz, azt %(name)s nem fogja " "felülírni. Ez lehetővé teszi, hogy a stílusra vonatkozó információt anélkül " "módosítsa, hogy a változtatások a következő exportálásnál elvesznének." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportálás CSV-be" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportálás iCalendar formátumba" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exportálás HTML-be" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportálás Todo.txt-be" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Egy iPhone vagy iPod Touch eszköz első\n" "alkalommal próbál szinkronizálni\n" "ezzel a feladatfájllal. Milyen típusú\n" "szinkronizációt szeretne?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Frissítés az asztalról" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Frissítés eszközről" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Mégsem" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Ön bekapcsolta az iPhone szinkronizáció funkciót, amelynek szüksége van a " "Bonjour-ra. Úgy tűnik azonban, hogy a Bonjour nincs installálva a rendszeren." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Töltse le és installálja a Bonjour for Windows programot\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "az Apple weboldaláról." #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "A Bonjour Linux támogatásának forrása általában az\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "A disztribúciójára vonatkozó részleteket itt megtalálhatja." #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Fontos, hogy néhány rendszeren (Fedora) lehet, hogy installálni kell mind az " "avahi-compat-libdns_sd csomagot, mint az Avahi-t a működés érdekében." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Ezenkívül, ha működik tűzfal a számítógépén, akkor ellenőrizze, hogy a 4096-" "4100 portok nyitva vannak." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Ez a beállítás a %s újraindítása után fog életbe lépni" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Ez a beállítás felülírható az egyes feladatoknál\n" "a feladatszerkesztési párbeszédablakban." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Fájlok" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Automatikus mentés minden változásnál" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Automatikes betöltés amikor a fájl változik a lemezen" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Intelligens rendszerfigyelés" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Érzékelje a feladat-akta változásait azonnal.\n" "Ne jelölje be, ha feladat-aktája hálózati meghajtón van.\n" "Változtatás után újraindítás szükséges %s." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "(%s.ini) beállítások mentése\n" "a program könyvtárában" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "%s eltávolítható adathordozóról történő futtatásához" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Mellékletek alapkönyvtára" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "A melléklet hozzáadását ehhez\n" "a könyvtárhoz képest kísérelje meg." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Mentés előtt, automatikus importálás innen:" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt formátum" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Mentéskor, automatikus exportálás ide:" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Ablak viselkedése" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Nyitóképernyő mutatása indításkor" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Nap tippjét induláskor megmutatni" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Indítás ikon állapotban" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Mindig" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Soha" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Utoljára ikon állapotban maradt" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Induláskor keresse a %(name)s új verzióját" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Új üzenetek keresése a %(name)s nevű fejlesztő(k)től Indításkor" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Nyitókép elrejtése ikon állapotban" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Ablak minimalizálása becsukáskor" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Ráfordítás követésekor az óra ketyegjen a jelzősávban" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Nyelv" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "A rendszer határozza meg a nyelvet" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Ha az ön által beszélt nyelv nem elérhető, vagy a fordítás javítást igényel, " "segítsen nekünk. Lásd:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Nincs fordítás?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Feladatmegjelenés" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Egyéni feladatok megjelenési beállításai felülírhatók a feladat " "szerkesztésénél" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Lehetőségek" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "A fül minden beállításának megváltoztatása újraindítást igényel %s" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "SyncML engedélyezés" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "iPhone szinkronizáció engedélyezése" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "X11 munkamenet-kezelés használata" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Munkahét kezdete" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Hétfő" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Vasárnap" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Napi munkakezdés időpontja" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Napi munka befejezésének időpontja" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Nap vége" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Színátmenetek használata naptár nézetben.\n" "Ez lelassíthatja a Task Coach-ot." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Javasolt időpontok közötti percek" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Inaktív idő értesítés" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Tizedesjegyű számok használata a ráfordítás bejegyzéseknél" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Az egy óra, tizenöt percet 1.25-ként mutatja 1:15 helyett.\n" "Ez számlák készítésekor lehet hasznos." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "A tétel leírását mutassa meg\n" "amikor az egérrel rámegyünk" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Feladat dátumok" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Fölérendelt feladat bejelölése befejezettnek, ha az összes részfeladat " "befejezésre került" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Hány órától lesz a feladat \"hamarosan esedékes\"?" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Semmi" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "A tervezett kezdési dátum megváltoztatása módosítja a határidőt" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "A határidő megváltoztatása módosítja a tervezett kezdési dátumot" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Mi a teendő a tervezett kezdés és esedékesség dátumával, ha a másik " "megváltozott" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Előre beállított" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Felajánlás" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Ma" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Holnap" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Holnapután" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Következő péntek" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Következő hétfő" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Nap kezdete" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Munkanap kezdete" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Jelenlegi idő" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Munkanap vége" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Alapértelmezett tervezett kezdési dátum és időpont" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Alapértelmezett határidő és időpont" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Alapértelmezett tényleges kezdési dátum és időpont" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Alapértelmezett teljesítési dátum és időpont" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Emlékeztető alapértelmezett dátuma és ideje" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Feladatemlékeztető" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Az emlékeztetőkhöz használandó értesítési rendszer" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Mondassa ki a számítógéppel az emlékeztetőt" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "Szükség van az eSpeak-re" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Alapértelmezett szundi idő emlékeztető után" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Felajánlandó szundi időtartamok a figyelmeztető ablakban" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Jelszó iPhone-nal történő szinkronizáláshoz" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Szinkronizáláskor adja meg ezt a jelszót az iPhone-on a hitelesítéshez" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour szolgáltatás neve" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Befejezett feladatok feltöltése egy eszközre" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "A szinkronizációs naplófájl megjelenítése" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Szerkesztő" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Helyesírás ellenőrzés" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" "A szerkesztésre szolgáló ablakok leírás mezejében használandó betűtípus" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Importálja az email tárgyát a Mail.app-ból" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Importálja a levél tárgyát a Mail.app-ból való behúzáskor\n" "Ez 20 másodpercig is eltarthat." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Fókuszáljon a feladat tárgyára a feladat szerkesztőben." #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Emlékeztetés dátuma/időpontja" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Szundi" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" "Ez legyen az alapértelmezett szundi idő a jövőbeli emlékeztetők számára is" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Feladat bejelölése befejezettnek" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML szerver" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Egyéni" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "Memotoo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Horde alapú" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML szerver URL-je" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Felhasználó neve/azonosítója" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Feladatok szinkronizálásának engedélyezése" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Feladatok adatbázisának neve" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "A szinkronizálás választott módja" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Kétféleképpen" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lassú" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Egyirányú a kliensről" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Frissítés a kliensről" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Egyirányú a szerverről" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Frissítés a szerverről" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Jegyzetek szinkronizálásának engedélyezése" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Jegyzetek adatbázisának neve" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Hozzáférés" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Új feladat sablon" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Előnézet" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Elérhető szeközök" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Legyen látható ez az eszköz az eszköztárban" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Rejtse el ezt az eszközt az eszköztárból" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Eszközök" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Mozgassa az eszközt felfelé (az eszköztáron balra)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Mozgassa az eszközt lefelé (az eszköztáron jobbra)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Húzza és ejtse az eszköztár ikonjait a megfelelő helyre, ebben a listában." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Elválasztó" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Üres hely" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Értesítsen az új verziókról." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "%(name)s új verziója elérhető" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Használt verzió: %(name)s, jelenlegi verzió: %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s , %(version)s elérhető:" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "A %(name)s naprakész." #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "A jelenlegi %(version)s verzióval a %(name)s naprakész." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Nem sikerült megtalálni a legfrissebb verziót." #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Nem sikerült megtudni, hogy mi a %(name)s legfrissebb verzója." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Hivatalos kiadás előtti verzió." #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Ön a %(name)s kiadás előtti %(currentVersion)s verzióját használja." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "A %(name)s legfrissebb kiadott verziója %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Figyelmeztetés" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "A Task Coach-nak kompatibilitási problémái vannak az XFCE4 munkamenet-" "kezelőjével\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Ha a program indításakor fagyást észlel, törölje a \"Használja az X11 " "munkamenet-kezelőjét\" a \"Beállítások\"-on belül a \"Funkciók\" fülön.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Ne mutassa ezt a párbeszédablakot induláskor" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Nem volt bevitel %s óta. A következő feladat\n" "követve lett:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Ne tegyen semmit" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Állítsa meg ekkor: %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Állítsa meg ekkor: %s és folytassa most" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Értesítés" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s fájlok (*.tsk)|*.tsk|Minden fájl (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s fájlok (*.tsk)|*.tsk|Mentés fájlok (*.tsk.bak)|*.tsk.bak|Összes fájl " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar fájlok (*.ics)|*.ics|Összes fájl (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML fájlok (*.html)|*.html|Összes fájl(*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV fájlok (*.csv)|*.csv|Szövegfájlok (*.txt)|*.txt|Összes fájl (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt fájlok (*.txt)|*.txt|Minden fájl (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Megnyitás" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Betöltve %(nrtasks)d feladat a %(filename)s fájlból" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "%s nem nyitható meg, mert nem létezik" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Hozzáfűzés" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Nem sikerült megnyitni a %(filename)s fájlt\n" "mert zárolva van." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s hozzáfűzve" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Mentés másként" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Kijelölés mentése" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Nem sikerült elmenteni a %s fájlt.\n" "Zárolva van a %s egy másik példánya által.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Nem sikerült elmenteni a %s fájlt.\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Sablon importálása" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s sablon fájlok (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Nem sikerült a %s sablont importálni\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d tétel exportálva a %(filename)s fájlba" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Szinkronizálás befejezve" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Szinkronizálás állapota" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Nem sikerült megnyitni a %s fájlt.\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "%s nevű fájl már létezik.\n" "Felülírja?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Még vannak elmentetlen változások.\n" "Elmenti őket kilépés előtt?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: menti a változásokat?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Nem sikerült megnyitni a %s fájlt, mivel zárolva van.\n" "\n" "Ez vagy azt jelenti, hogy a Task Coach egy másik példánya\n" "is fut és nyitva tartja ezt a fájlt, vagy azt, hogy a Task Coach előző\n" "alkalommal összeomlott. Ha nem fut másik példány, akkor nyugodtan\n" "feltörheti a zárolást.\n" "\n" "Feltöri a zárolást?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s file nem írható" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s lezárva" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d feladat %(filename)s fájlba elmentve" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Nem sikerült megnyitni a %(filename)s fájlt\n" "mert az a %(name)s egy újabb verziója által lett létrehozva.\n" "Frissítse a %(name)s programot!" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Hiba %s olvasása közben:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "A Mentéskezelő most meg megnyílik, hogy Ön vissza tudja állítani\n" "e fájl régebbi verzióját." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Szinkronizálás..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Szinkronizálás ezzel %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Üdvözöllek a %(name)s -ban verzió %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s beállítási hiba" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Szinkronizáció típusa" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Egy iPhone vagy iPod Touch Eszköz megpróbált szinkronizálni ezzel a\n" "feladat fájllal, de a protokoll tárgyalás sikertelen volt. Írjon egy " "hibajelentést!" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fájl" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Szerkesztés" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Nézet" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "Ú&j" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Műveletek" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "Sú&gó" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importálás" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportálás" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Kijelölés" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Új ablak" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Következő ablak bekapcsolása\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Előző &ablak bekapcsolása\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Mód" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Szűrő" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Rendezés" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Oszlopok" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "Kerekítés" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Könyvtárszerkezet" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Eszköztár" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Megmutatja/elrejti az állapotsort" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Állapotsor" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "F&eladat" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Új fül nyitása feladatok megjelenítésével" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Feladatstatisztika" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" "Nyisson meg egy új fület, amelyen megtekintheti a feladat kimutatásokat." #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "&Négyzettérkép" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Új fül megnyitása a feladatokat négyzettérképen mutató ablakkal" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "I&dővonal" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Új lap megnyitása a feladatok és a ráfordítás idővonalát mutató ablakkal" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Naptár" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Új fül nyitása a feladatoknak naptár megjelenítésével" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "Hierarchikus naptár" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Nyisson meg egy új lapot, amely megjeleníti a feladathierarchiát egy " "naptárban" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategória" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Új fül nyitása kategóriák megjelenítésével" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Ráfordítás" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Új lap megnyitása a ráfordításokat megjelenítő nézettel" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Ráfordítás kijelölt feladatokra" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Új fül megnyitása a kijelölt feladathoz tartozó időráfordítást mutató " "ablakkal" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Jegyzet" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Új fül nyitása jegyzetek megjelenítésével" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Elrejtés" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Eszköztár elrejtése" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Kis ikonok" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Kis (16x16) ikonok az eszköztáron" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Kö&zepes ikonok" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Közepes (22x22) ikonok az eszköztáron" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Nagy ikonok" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Nagy (32x32) ikonok az eszköztáron" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Új feladat &sablon alapján" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Kategória váltása" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "A feladat &prioritásának megváltoztatása" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Ráfordítás követésének indítása" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (alkategóriák)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "(részfeladat) %s" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priorítás" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Oldal" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Emlékeztető" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d feladat határideje lejárt" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "egy feladat határideje lejárt" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d hamarosan esedékes feladat" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "egy hamarosan esedékes feladat" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "\"%s\" követése" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "Ráfordítás követése %d feladatoknál" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Megnyitás...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "%s megnyitása" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Hozzáfűzés..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Feladatok hozzáfűzése másik fájlból" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Bezárás\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "M&entés\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "A lemezen lévő változások hozzáfűzése\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "M&entés másként...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Mentse a kiválasztott feladatokat egy új feladat-aktába" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Kijelölt feladat mentése &sablonként" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Kijelölt feladat mentése feladat-sablonként" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Sablon importálása..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Új sablon importálása sablon fájlból" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Sablonok szerkesztése..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Létező sablonok szerkesztése" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Sablonok szerkesztése" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Törölt elemek kitisztítása" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "A törölt elemek kitisztítását nem lehet visszavonni.\n" "Ha tervezi a SyncML funkció\n" "újbóli engedélyezését ugyanazzal a\n" "szerverrel, melyet korábban már használt,\n" "ezek a tételek valószínűleg újból megjelennek.\n" "\n" "Továbbra is ki akarja tisztítani őket?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Oldal beállítása...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Nyomtatási kép..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Mutassa me, hogyan fog a nyomtatás kinézni" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Nyomtatási kép" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "Nyomt&atás...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Biztonsági másolatok kezelése..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Kezelje a feladat-akták mentéseit" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportálás &HTML-be..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Tételek exportálása egy ablakból HTML formátumba" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportálás &CSV-be..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Tételek exportálása egy ablakból CSV formátumba" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exportálás mint &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Tételek exportálása egy ablakból iCalendar formátumba" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exportálás Todo.txt-be..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Elemek exportálása egy nézetből Todo.txt formátumba (lásd todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "CSV fájl &importálása..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Feladatok importálása CSV fájlból" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "CSV fájl importálása" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "A kijelölt fájl üres. Kérjük, jelöljön ki egy másik fájlt." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "Todo.txt fájl importálása..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Feladatok importálása egy Todo.txt fájlból (lásd todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Todo.txt fájl importálása" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML szinkronizáció..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Szinkronizálás egy SyncML szerverrel" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Kilépés\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Visszavonás" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Ú&jra" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "K&ivágás\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "Má&solás\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Beillesztés\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Beillesztés &résztételként\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Beállítások...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Beállítások" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML beállítások..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "SyncML beállítások szerkesztése" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML beállítások" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Eszköztár testreszabás" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Testreszabás" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Mind\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Kijelölés megszüntetése" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Minden elem kiválasztásának törlése" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Az összes szűrő megszüntetése\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Összes kategória visszaállítása\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Megmutatja/elrejti %s kapcsolódó tételeit" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Ablak átnevezése..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Kiválasztott ablak átnevezése" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Ablak új neve" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Ablak átnevezése" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Oszlop elrejtése" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "A kiválasztott oszlop elrejtése" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Tételek kibontása\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "Tételek &kibontásának megszüntetése\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Növekvő" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Rendezés növekvő, vagy csökkenő sorrendbe" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Kis- és nagybetűk megkülönböztetése" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Szöveg összehasonlításakor kis- és nagybetűk megkülönböztetése vagy nem" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Állapot szerinti rendezés" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Állapot (aktív/inaktív/befejezett) szerinti rendezés" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Összetett feladatok elrejtése" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" "Megmutatja/elrejti a részfeladatokkal rendelkező feladatokat lista módban" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Szerkesztés...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "A kijelölt tétel(ek) szerkesztése" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Követett feladat &szerkesztése...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "A jelenleg követett feladatok szerkesztése" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Törlés\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "A kijelölt tétel(ek) törlése" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Új feladat létrehozása sablonból" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Új feladat kijelölt &kategóriákkal..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Új feladat beillesztése a kijelölt kategóriákkal" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Új feladat a kijelölt feladatokkal mint &előfeltételekkel..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Új feladat beszúrása a kijelölt feladatokkal mint előfeltételekkel" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Új feladat beszúrása a kijelölt feladatokkal mint függőségekkel" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Új &résztétel..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Új &részfeladat..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Új &részjegyzet..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Új &részkategória..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "A kijelölt tétel új résztételének beszúrása" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Jelölje a kiválasztott feladato(ka)t aktívnak" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Feladat bejelölése befejezettnek\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Kijelölt feladat(ok) bejelölése befejezettnek" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Prioritás m&aximumra\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "Prioritás m&inimumra\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "Prioritás &növelése\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Prioritás &csökkentése\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Váltás %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&E-mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Több dolog" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "és" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Nem sikerült e-mail-t küldeni:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s e-mail hiba" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "&Jegyzet hozzáadása...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Összes jegyzet megnyitása...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Ráfordítás övetésének indítása\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "A kijelölt ráfordítások feladatainak követésének indítása" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Nincs tárgy)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "%s ráfordításának követésének indítása" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Feladat kijelölése a menüből és a ráfordítás követésének indítása" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Ráfordítás követésének leállítása vagy folytatása\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "%s követésének &leállítása\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Ráfordítás követésének leállítása az aktív feladatoknál" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "%s követésének &folytatása\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Ráfordítás követésének folytatása a legutoljára követett feladatnál" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "többszörös feladatok" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Új kategória...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Új jegyzet...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Új &jegyzet a kijelölt kategóriákkal..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Új jegyzet beszúrása a kijelölt kategóriákhoz" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Melléklet hozzáadása...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Melléklet megnyitási hiba" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Összes melléklet megnyitása...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Súgó\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Súgó\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Súgó" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tipp" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tippek a program használatához" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Névtelenítés" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Egy feladatfájl névtelenítése, hogy hibajelentéshez lehessen csatolni" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "A feladatfájl névtelenitve lett és elmentve:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Befejezve" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "%s &Névjegy" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "%s verzió és kapcsolat információk" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "A %s névjegye" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Liszensz" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s liszensz" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Frissítések keresése" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Új %s verzió elérhetőségének ellenőrzése" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "URL nem megnyitható:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URL hiba" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Gyakran ismétlődő kérdések" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "A gyakran ismétlődő kérdések és válaszok böngészése" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "&Hibabejelentés..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Hibabejelentés vagy az ismert hibák közti keresés" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "&Támogatás kérése..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Támogatás kérése a fejlesztőktől" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Közreműködés a &fordítások javításában..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Közreműködés a %s fordításának javításában" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "Adományozás..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Adományozzon a %s fejlesztésének támogatására" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Visszaállítás" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Ablak visszaállítása előző állapotába" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Keresés" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Ráfordítás részletezése" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Ráfordítás per nap" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Ráfordítás per hó" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Ráfordítás per hét" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Összesítési mód" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Lista" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Fa" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Kijelöléskor a feladatokat fa-struktúrában mutatja, különben listában" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Valamennyi kiválasztott kategória szűrése" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "A kiválasztott kategória szűrése" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "Kijelöléskor minden kategóriát szűr, különben valamennyi kijelöltet" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Rendezés választása" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Beállítás" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "A naptár-nézet beállítása" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Állítsa be a hierarchikus naptár nézetet" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Következő időszak" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Következő időszak megjelenítése" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Előző időszak" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Előző időszak megjelenítése" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Ma" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Mai nap megjelenítése" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Oszlop &automatikus átméretezése" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "A kiválasztott oszlop automatikus átméretezése a rendelkezésre álló hely " "szerint" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Kördiagram szögének beállítása" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Nincs kerekítés" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 perc" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d perc" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Kerekítési pontosság" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Mindig felkerekít" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Mindig felfelé kerekít a következő kerekítési növekményhez" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Típus" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Rendezés tárgy szerint" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Tárgy" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Rendezés leírás szerint" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Leírás" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Létrehozás dátuma" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Létrehozás dátuma szerint rendez" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Módosítás dátuma" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Változtatás dátuma szerint rendez" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Megmutatja/elrejti a leírás oszlopot" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "Meg&jegyzések" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Megmutatja/elrejti a jegyzetek oszlopot" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Megmutatja/elrejti a létrehozás dátuma oszlopot" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Megmutatja/elrejti at utolsó módosítás dátuma oszlopot" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Az eszköztárak testreszabhatók" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Gombok hozzáadásához és rendezéséhez kattintson a fogaskerékre a jobb oldalon" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Újrarendezés fa-struktúrában" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "Fa-struktúrában, a kézi rendezés csak akkor lehetséges, ha minden kijelölt " "tétel kötődik egymáshoz." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "Fa-struktúrában, csak ugyanazon szülőbe tehet objektumokat." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Kézi rendezés" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Megjeleníti/elrejti a kézi rendezés oszlopot" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Mellékletek" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Megmutatja/elrejti a mellékletek oszlopot" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategóriák: kijelölt %d, összesen %d" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Állapot: %d kiszűrve" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periódus" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Ráfordított összes idő" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Összbevétel" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Kedd" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Szerda" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Csütörtök" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Péntek" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Szombat" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategóriák" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Megmutatja/elrejti a kategóriák oszlopot" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Ráfordított idő" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Megjeleníti/elrejti a ráfordított idő oszlopot" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Bevétel" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Megmutatja/elrejti a bevétel oszlopot" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Összes ráfordított idő" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Megmutatja/elrejti az összes ráfordított idő oszlopot" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "Összbevétel" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Megmutatja/elrejti az összes bevétel oszlopot" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Ráfordítás per munkanap" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Megmutatja/elrejti a munkanaponként ráfordított idő oszlopot" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Ráfordításösszesítés" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Ráfordítás: %d kijelölt, %d látható, %d összes. Eltöltött idő: %s " "kiválasztott, %s látható, %s összes." #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Állapot: %d követés" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Részletek:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Ráfordítás kijelölt feladat(ok)ra" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Kategóriák rendezése tárgy szerint" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Kategóriák rendezése leírás szerint" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Létrehozás dátuma szerint rendezi a kategóriákat" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Változtatás dátuma szerint rendezi a kategóriákat" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Kategóriák rendezése kézzel" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Mellékletek rendezése tárgy szerint" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Mellékletek rendezése leírás szerint" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Mellékletek rendezése kategória szerint" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Mellékletek rendezése létrehozás dátuma szerint" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Mellékletek rendezése utolsó módosítás dátuma szerint" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Jegyzetek rendezése kategória szerint" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Jegyzetek rendezése leírás szerint" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Jegyzetek rendezése kategória szerint" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Létrehozás dátuma szerint rendezi a jegyzeteket" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Változtatás dátuma szerint rendezi a jegyzeteket" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Jegyzetek rendezése kézzel" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Feladatok rendezése tárgy szerint" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Feladatok rendezése leírás szerint" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Feladatok rendezése kategóriák szerint" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Létrehozás dátuma szerint rendezi a feladatokat" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Változtatás dátuma szerint rendezi a feladatokat" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Feladatok rendezése kézzel" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Tervezett kezdés dátuma szerint rendezi a feladatokat" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Tervezett kezdés dátuma" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Feladatok rendezése határidő szerint" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "H&atáridő" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Feladatok rendezése teljesítés dátuma szerint" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "T&eljesítés dátuma" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Feladatok rendezése előfeltétel feladatok szerint" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Előfeltételek" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Feladatok rendezése függő feladatok szerint" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Alárendeltek" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Feladatok rendezése hátralévő idő szerint" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Hátralévő idő" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Feladatok rendezése százalék kész szerint" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Százalék kész" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Feladat rendezése ismétlődés szerint" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Ismétlődés" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Feladatok rendezése ráfordítható idő szerint" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Ráfordítható idő" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Feladatok rendezése ráfordított idő szerint" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Maradék ráfordítható idő" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Feladatok rendezése maradék ráfordítható idő szerint" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Feladatok rendezése prioritás szerint" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Feladatok rendezése óradíj szerint" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Óradíj" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Feladatok rendezése fix díj szerint" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fix díj" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Feladatok rendezése bevétel szerint" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Feladatok rendezése az emlékeztető dátuma és időpontja szerint" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "Emléke&ztető" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Tárgy" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Jegyzetek rendezése kategória szerint" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Jegyzetek: kijelölve %d, összesen %d" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Állapot: nincs megadva" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Feladatok: %d kijelölt, %d látható, %d összesen" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Állapot: %d lejárt, %d késésben lévő, %d inaktív, %d befejezett" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Megegyező állapotú feladatok megtekintéséhez, nyomja le a Shift és bal egér " "gombokat egyszerre a szűrőeszköz felett" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Feladatok" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Idővonal" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Most" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Négyzettérkép" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Feladatrendezés módja" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hierarchikus naptár" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Hierarchikus naptár nézet beállítása" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Naptár nézet beállítása" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Kézi rendezés" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Mutassa a \"Kézi rendezés\" oszlopot, majd húzza és ejtse a tételeket " "tetszőleges sorrendbe" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Alárendeltek" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% kész" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Hátralévő idő" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Dátumok" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Összes dátum oszlop" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Megmutatja/elrejti az összes dátum-függő oszlopot" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Megmutatja/elrejti a tervezett kezdési dátum oszlopot" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Megmutatja/elrejti a határidő oszlopot" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Tényleges kezdési időpont" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Megmutatja/elrejti a tényleges kezdési dátum oszlopot" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Megmutatja/elrejti a teljesítés dátuma oszlopot" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Megmutatja/elrejti a hátralévő idő oszlopot" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Megmutatja/elrejti az ismétlődés oszlopot" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Összes költségvetési oszlop" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Megmutatja/elrejti az időráfordítás-függő oszlopokat" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Megmutatja/elrejti a ráfordítható idő oszlopot" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Fennmaradt keret" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Megmutatja/elrejti a maradék ráfordítható idő oszlopot" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Pénzügyi" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Összes pénzügyi oszlop" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Megmutatja/elrejti a pénzüggyel összefüggő oszlopokat" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Megmutatja/elrejti az óradíj oszlopokat" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Megmutatja/elrejti a fix díj oszlopokat" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Mutatja/elrejti az előfeltételek oszlopot" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Mutatja/Elrejti az alárendeltek oszlopot" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Megmutatja/elrejti a százalék kész oszlopot" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Megmutatja/elrejti a melléklet oszlopot" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Megmutatja/elrejti a prioritás oszlopot" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Megmutatja/elrejti az emlékeztető oszlopot" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Feladatok megjelenítése mint" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Feladat kimutatások" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Vessző" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tabulátor" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Szóköz" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Kettőspont" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Pontosvessző" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "NN/HH (napot előre)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "HH/NN (hónapot előre)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Duplázza" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Csak a kijelölt sorok importálása" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Az első sor a mezők leírása" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Elválasztókarakter" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Dátum formátum" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Mező #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Válasszon egy fájlt." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "Azonosító" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategória" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Emlékeztető dátuma" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Százalék kész" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Oszlop fejléc CSV fájlban" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s attribútum" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Nincs párosított elem." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "A \"%s\" mezőt nem lehet többször is kijelölni." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "A %s mezőket nem lehet többször is kijelölni." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Tartalomjegyzék" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "A feladatokról" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Feladattulajdonságok" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Feladatállapotok" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Feladatszínek" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Emlékeztetők" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "A ráfordításról" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Ráfordítástulajdonságok" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "A kategóriákról" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Kategóriatulajdonságok" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "A jegyzetekről" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Jegyzettulajdonságok" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Nyomtatás és exportálás" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "A nyomtatásról és az exportálásról" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Nyomtatás" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportálás" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Többfelhasználós mód" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "Többfelhasználós módról" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Tárolási opciók" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Emailezés egyéni jellemzői" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "A levelezőprogramokkal történő együttműködésről" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "E-mail csatolása egy feladathoz" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Feladat létrehozása egy e-mail-ből" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML támogatás" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Mi az a SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Beállítás" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Korlátok" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Hibaelhárítás" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Törölt elemek kitisztítása" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone és iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s az iPhone-on" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Beállítás" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s Androidon?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt és Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Todo.txt importálása" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Todo.txt exportálása" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Feladat sablonok" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "A sablonokról" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Sablonok használata" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Grafikus felhasználói interfész" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Gyorsbillentyűk" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" "A feladatok a következő megváltoztatható tulajdonságokkal rendelkeznek:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Tárgy: a feladat egysoros összefoglalása." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Leírás: A feladat többsoros leírása." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Határidő: az az időpont ameddig a feladatot be kell fejezni.\n" "Ennek értéke lehet \"Nincs\", amely azt jelzi, hogy nincs megadva." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Keret: feladatra fordítható órák mennyisége" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Óradíj: a feladattal egy óra alatt megkeresett pénz összege." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Fix díj: a feladattal az eltelt időtől függetlenül\n" "megkeresett pénz összege." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Ezen tulajdonságok a következő tulajdonságokból lettek kiszámítva:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Hátralévő napok: a napok száma a határidőig." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Eltöltött idő: a feladatra fordított ráfordítás." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Bevétel: óraszámszor óradíj és fix díj." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "A feladatok mindig a következő állapotok egyikében vannak:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktív: a tényleges kezdési idő a múltban van;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inaktív: a feladat még nem kezdődött el és/vagy nem minden\n" "előfeltétel feladat lett befejezve;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Befejezett: a feladat be van fejezve." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Továbbá úgy is lehet utalni a feladatokra mint:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Lejárt: a határidő a múltban van;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Hamarosan esedékes: a határidő hamarosan esedékes. Hogy mi számít annak,\n" "az megváltoztatható a beállításoknál." #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Késésben lévő: a tervezett kezdet a múltban van és a feladat \n" "nem lett elkezdve;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Túlköltés: keret túllépve;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Alulköltés: fennmaradó keret;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Nincs költségvetés: a feladatnak nincs költségvetése" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "A feladatok színét a következő szabályok határozzák meg:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "A lejárt feladatok pirosak;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "A hamarosan esedékes feladatok narancssárgák;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" "Az aktív feladatok fekete színű szöveggel és kék ikonnal jelennek meg;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "A késésben lévő feladatok lilák;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "A jövőbeni feladatok szürkék és" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "A befejezett feladatok zöldek." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Mindez természetesen azt feltételezi, hogy a szövegek színe nem került " "megváltoztatásra a beállításoknál." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "A ráfordítások a következő megváltoztatható tulajdonságokkal rendelkeznek:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Feladat: a feladat, amelyhez a ráfordítás tartozik." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Kezdési dátum/időpont: a ráfordítás kezdési dátuma és időpontja" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Leírás: A ráfordítás többsoros leírása." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Eltöltött idő: mennyi időt töltött a feladattal." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Bevétel: az eltelt idő szerint keresett pénz összege." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" "A kategóriák a következő megváltoztatható tulajdonságokkal rendelkeznek:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Tárgy: a kategória egysoros összefoglalása." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Leírás: A kategória többsoros leírása." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" "A jegyzetek a következő megváltoztatható tulajdonságokkal rendelkeznek:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Tárgy: a jegyzet egysoros összefoglalása." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Leírás: A kategória többsoros leírása." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Megjelenés tulajdonságai: ikon, betűtípus és szinek." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Emailezési feladatok sajátosságai" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Több felhasználó is dolgozik ugyanazon a feladat fájlon" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Még nincs tesztelve." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Húzza bele a melléklet-panelbe a feladatszerkesztőben" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "A feladat és kategória hierarchiák elvesznek a szerver számára." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Az ismétlődések és emlékeztetők még nincsenek támogatva." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "A jegyzet kategóriák elvesznek a szerver számára." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Valószínűleg van még néhány..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch és iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchikus feladatok és kategóriák" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Idő követése" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Többszörös feladat fájlok" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "A számítógépem szinkronizálási kísérletkor nem jelenik meg a listán" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "Az iPhone nem tud csatlakozni a számítógépemhez" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Ha működik tűzfal a számítógépén, akkor ellenőrizze, hogy a 4096-4100 portok " "nyitva vannak." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux és Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux és Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Új résztétel beszúrása" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Kijelölt feladat(ok) bejelölése (nem) befejezettnek" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "A nap tippje" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Következő tipp" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Tippek megjelenítése induláskor" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Jegyzet hozzáadása a kijelölt tételekhez" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Új kategória beszúrása" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Kijelölt tétel(ek) vágólapra helyezése" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kijelölt tétel(ek) vágólapra másolása" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Tételek másolása a vágólapról" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "A vágólapon lévő tétel(ek) beillesztése a kijelölt tétel résztételeként" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Beállítások szerkesztése" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Utolsó visszavont parancs lefuttatása" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Minden elem kijelölése az aktuális nézetben" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Utolsó parancs visszavonása" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Ráfordítási időtartam hozzáadása a kijelölt feladat(ok)hoz" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Ráfordítás követésének indítása a kijelölt feladat(ok)nál" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Ráfordítás követésének leállítása vagy folytatása" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Aktuális fájl bezárása" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Kilépés %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "%s fájl megnyitása" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Aktuális fájl mentése" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Aktuális fájl mentése más néven" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Súgó a programhoz" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "A kijelölt tételek elküldése az alapértelmezett levelező programmal" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Új jegyzet beszúrása" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "A kijelölt tétel(ek) összes mellékletének megnyitása" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "A kijelölt tétel(ek) összes jegyzetének megnyitása" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "A jelenlegi fájl nyomtatása" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Nyomtatandó lap jellemzőinek beállítása" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Minden tétel megjelenítése (összes szűrő törlése)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Összes tétel megjelenítése kategóriától függetlenül" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Kijelölt feladat(ok) prioritásának csökkentése" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Kijelölt feladat(ok) prioritásának növelése" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "A kijelölt feladat legyen a legmagasabb prioritású" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "A kijelölt feladat legyen a legalacsonyabb prioritású" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Új feladat beszúrása" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Minden résztétellel rendelkező tétel kibontásának megszüntetése" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Minden résztétellel rendelkező tétel kibontása" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Következő nyitott ablak bekapcsolása" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Előző nyitott ablak bekapcsolása" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Eszköz neve: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Fájlnév küldése: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d kategória" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "%s kategória küldése" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Válasz: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d feladat" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "%s feladat küldése" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d ráfordítás" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "%s ráfordítás küldése" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Kész." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d új kategória" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d új feladat" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d új ráfordítások" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d módosított kategória" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d módosított feladat" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d módosított ráfordítások" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d törölt kategória" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d törölt feladat" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d törölt ráfordítások" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Új kategória (szülő: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "%s kategória törlése" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "%s kategória módosítása" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Új feladat %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "%s feladat törlése" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "%s feladat módosítása" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Új ráfordítás %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "%s ráfordítás módosítása" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "GUID küldése: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Tényleges kezdési időpont" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Tervezett kezdési idő" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Határidő" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Létrehozás ideje" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Nincs tárgy megadva" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Ma esedékes új feladat" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Holnap esedékes új feladat" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d nap" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 nap" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Minden %(frequency)d-dik napon" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Minden %(frequency)d-dik héten" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Minden %(frequency)d-dik hónapban" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Minden %(frequency)d-dik évben" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Következő napon" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Következő héten" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Következő hónapban" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Következő évben" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Tegnap" #: taskcoachlib/render.py:284 msgid "now" msgstr "most" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "egy frissítés a szerverről. Az összes helyi elem törlődik.\n" "Kívánja folytatni?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Szinkronizálás" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Szinkronizálás.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d elem hozzáadva.\n" "%d elem frissítve.\n" "%d elem törölve." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Hiba szinkronizálás közben.\n" "Hibakód: %d; üzenet: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Először meg kell adnia a SyncML Beállításokat a Szerkesztés -> SyncML " "Beállítások menüpontban." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Visszaállítás %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Panel előnézet" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Bezárás" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Összes bezárása" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Következő" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Előző" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Ablak" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Szerkesztés" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d hét" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d óra" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Kész" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "A megjelenített időtartam egysége és száma" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "hónap" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "A naptár elhelyezkedése" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Vízszintes" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Függőleges" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Melyik feladatokat mutassam" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tervezett kezdési és esedékeségi dátummal rendelkező feladatok" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tervezett kezdési dátummal rendelkező feladatok" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Esedékeségi dátummal rendelkező feladatok" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Összes feladat" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Összes feladat, kivéve a nemtervezettek" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "A jelen vonallal történő jelzése" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "A jelenlegi nap kiemeléséhez használt szín" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Minden fájl (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Fejlécek" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Hetek" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Naptár lépték" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Hét" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Munkahét" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Jelszó:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Mentse a \"kulcstartó\"-ba" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Probléma volt az ön számítógépének \"kulcstartó\"-jával.\n" "Kérjük küldjön hibajelentést (Segítség menü) és csatoljon egy pillanatképet " "az üzenetről.\n" "Hiba:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Kérem adja meg jelszavát." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Kérem adja meg jelszavát" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "K&is- és nagybetűk megkülönböztetése" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Kis- és nagybetűk megkülönböztetése szűrők alkalmazásakor" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Résztételeket is beleértve" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Altételek megjelenítése a keresés eredményeiben" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Keresés a leírásban is" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Keressen a tárgyban és a leírásban is." #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Szokásos Kifejezés" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Kezelje a keresési szöveget szokásos kifejezésként" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Ez egy érvénytelen \"szokásos kifejezés\"" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Töredékszó-keresésre alapértelmezve" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Legutóbbi keresések" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Keresésre nem alkalmas ablak" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Kompatibilitási figyelmeztetés" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "A SyncML funkció ki van kapcsolva, mert a modult\n" "nem sikerült betölteni. Ennek oka lehet az, hogy a\n" "használt platformhoz nincs támogatás, vagy Windows alatt\n" "az, hogy szükséges DLL fájlok hiányoznak. Olvassa el a\n" "SyncML-re vonatkozó részt az online segítségben (\"Hibaelhárítás\" cím " "alatt)." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Ezt a párbeszédablakot többet ne mutassa" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Hiba az URL megnyitásakor" #~ msgid "&Delete\tDEL" #~ msgstr "&Törlés\tDEL" taskcoach-1.4.3/i18n.in/id.po000066400000000000000000005130631265347643000156210ustar00rootroot00000000000000# Indonesian translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 07:57+0000\n" "Last-Translator: Emmanuel Simond \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: id\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Beberapa Kesalahan Telah Terjadi, Silahkan Lihat file \"taskcoachlog.txt\" " "di dalam Folder \"My Documents\"" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Terjadi Kesalahan" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Bebarapa Kesalahan Telah terjadi, Silahkan lihat \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Error saat menyimpan TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "berkas %s error" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Sunting lokasi lampiran" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Sunting lokasi lampiran \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Tambah lampiran" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Tambah lampiran ke \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Lampiran baru" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Hapus lampiran" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Hapus lampiran ke \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copy" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Salin \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Hapus" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Hapus \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Potong" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Potong \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Tempel" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Tempel \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Tempel sebagai subitem" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Tempel sebagai subitem \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Tarik dan lepas" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Tarik dan Lepas \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Sunting subyek" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Sunting subyek \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Sunting keterangan" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Sunting keterangan \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Ganti ikon" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Ganti ikon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Ganti fonta" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Ganti fonta \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Ganti warna" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Ganti warna \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Ganti warna latar" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Ganti warna latar \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Beralih kategori" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Beralih kategori \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Kategori baru" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Sub kategori baru" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Sub kategori \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Subkategori baru" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Sunting subkategori eksklusif" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Sunting subkategori eksklusif \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Hapus kategori" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Hapus kategori \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Ambil dan taruh kategori" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Upaya baru" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Upaya baru \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Hapus upaya" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Hapus upaya \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Ubah tugas upaya" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Ubah tugas upaya \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Ubah tanggal dan waktu mulai upaya" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Ubah tanggal dan waktu mulai upaya \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Ubah tanggal dan waktu pemberhentian upaya" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Ubah tanggal dan waktu pemberhentian upaya \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Catatan baru" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Sub catatan baru" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Sub catatan baru \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Subcatatan baru" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Hapus catatan-catatan" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Hapus catatan \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Ambil dan taruh catatan-catatan" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Ambil dan taruh catatan \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Tambah catatan" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Tambah catatan ke \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Tambah sub catatan" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Tambah sub catatan ke \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Pindahkan catatan" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Pindahkan catatan dari \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Ambil dan taruh tugas-tugas" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Hapus tugas-tugas" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Hapus tugas \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Tugas baru" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Sub tugas baru" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Sub tugas baru \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Subtugas baru" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Tandai tugas yang selesai" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Tandai \"%s\" yang selesai" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Tandai Tugas yang aktif" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Mulai melacak" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Mulai melacak \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Berhenti melacak" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Berhenti melacak \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maksimalkan prioritas" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maksimalkan prioritas \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimalkan prioritas" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimalkan prioritas \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Naikkan prioritas" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Naikkan prioritas \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Turunkan prioritas" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Turunkan prioritas \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Ganti Prioritas dari \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Tambahkan Catatan Kedalam Tugas - Tugas" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Error saat menyimpan %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Kesalahan penyimpanan" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Lampiran baru..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Sisipkan lampiran baru" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Buka lampiran" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Buka lampiran terpilih" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Tugas baru..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Keterangan" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Subyek" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritas" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Saling eksklusif" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Jelajah" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Lokasi" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Tanggal" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Tanggal harus selesai" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Tanggal penyelesaian" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Pengingat" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Pengulangan" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Tidak" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ya" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Tandai tugas selesai saat semua anak tugas terselesaikan?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Anggaran" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Waktu terpakai" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Anggaran tersisa" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Tarif perjam" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Tarif tetap" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Penerimaan" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Usaha" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategori-kategori" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Lampiran" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Catatan" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Ubah tugas" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tugas" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Mulai" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Berhenti" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Mulai melacak dari waktu berhenti terakhir" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Tidak ada" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Harian" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Bulanan" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Mingguan" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Tahunan" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", setiap" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "hari," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periode," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "minggu" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "bulan" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "tahun," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Berkas" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Simpan otomatis pada setiap pengubahan" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Simpan setting (%s.ini) pada direktori\n" "yang sama dengan program" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Direktori acuan lampiran" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Saat menambahkan lampiran, coba pakai\n" "path relatif dengan yang ini." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Perilaku jendela" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Perlihatkan splash screen pada saat mulai" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Tampilkan jendela tips pada saat mulai" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Selalu" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Jangan Pernah" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Periksa versi baru dari %(name)s saat mulai" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimize jendela utama saat ditutup" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Buat jam pada task bar berdetik saat melacak usaha" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Bahasa" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Bahasa tidak ditemukan?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Fitur" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Aktifkan SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Waktu mulai jam kerja" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Waktu berakhir jam kerja" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Penyunting" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Periksa ejaan pada editor" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Pengingat tanggal/waktu" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL server SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nama pengguna/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Aktifkan sinkronisasi tugas" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nama basisdata tugas" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Dua arah" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Satu arah dari klien" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Perbarui dari klien" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Satu arah dari server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Perbarui dari server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Aktifkan sinkronisasi catatan" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Nama basisdata catatan" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Akses" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Berutahu saya bila ada versi baru." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Versi baru %(name)s telah tersedia" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s versi %(version)s tersedia dari" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Berkas %s (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "berkas iCalendar (*.ics)|*.ics|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Berkas HTML (*.html)|*.html|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "Berkas CSV (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Buka" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d tugas dimuat dari %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Tidak dapat membuka %s karena ini tidak ada" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Gabung" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s digabungkan" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "Berkas templat %s (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Status sinkronisasi" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Anda memiliki pengubahan yang belum disimpan.\n" "Simpan sebelum menutup?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: Simpan perubahan?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Tutup %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d tugas disimpan ke %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Kesalahan ketika membaca %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Selamat datang di %(name)s versi %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Berkas" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Sunting" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Lihat" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Bantuan" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Ekspor" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Pilih" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortir" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolom" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tugas" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategori" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Catatan" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Sembunyikan" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Sembunyikan toolbar" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "Gambar ke&cil" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Gambar kecil (16x16) pada toolbar" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Ga&mbar ukuran sedang" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Gambar ukuran sedang (22x22) pada toolbar" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Gambar ukuran besar (32x32) pada toolbar" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Mulai melacak u&saha" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Halaman" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Buka...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Buka %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Tutup\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Simpan\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&impan sebagai...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Tampilan cetak" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Ekspor sebagai &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Ekspor sebagai &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Keluar\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Batalkan" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Kerjakan Lagi" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Salin\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Semua\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Hapus pilihan" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Sembunyikan kolom ini" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Sembunyikan kolom terpilih" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tugas" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Masukkan kategori baru" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Rubah Acuan" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Batalkan perintah terakhir" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Tambahkan usaha baru ke tugas terpilih" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Tutup berkas yang aktif sekarang" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Keluar %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Buka sebuah %s berkas" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Simpan file yang sedang aktif saat ini" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Masukkan catatan baru" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Cetak berkas yang aktif sekarang" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Sisipkan tugas baru" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Setiap %(frequency)d hari" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Setiap %(frequency)d minggu" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Setiap %(frequency)d bulan" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Setiap %(frequency)d tahun" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "saat ini" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Jangan tunjukkan dialog ini lagi" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Terjadi kesalahan saat membuka URL" taskcoach-1.4.3/i18n.in/it.po000066400000000000000000006416631265347643000156510ustar00rootroot00000000000000# translation of it.po to Nederlands # Task Coach # Copyright (C) 2004-2006 Frank Niessink # # Frank Niessink , 2006, 2008. msgid "" msgstr "" "Project-Id-Version: it\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:27+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Si è verificato un errore. Vedere il file \"taskcoachlog.txt\" nella propria " "cartella Documenti" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Errore" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Si sono verificati errori. Per favore vedi \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Impossibile caricare i parametri da TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "errore file %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Individuati conflitti per \"%s\"." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Inserisci la posizione degli allegati" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Modifica la posizione dell'allegato\"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Aggiungi allegato" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Aggiungi un allegato a \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nuovo allegato" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Rimuovi allegato" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Rimuovi allegato di \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copia" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copia \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Elimina" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Elimina \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Taglia" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Taglia \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Incolla" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Incolla \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Incolla come sottoattività" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Incolla come sottoattività di \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Trascina e rilascia" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Trascina e rilascia \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Modifica oggetto" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Modifica oggetto \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Modifica descrizioni" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Modifica descrizione \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Cambia icone" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Cambia icona \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Cambia caratteri" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Cambia carattere \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Cambia i colori in primo piano" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Cambia il colore in primo piano \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Cambia colori di sfondo" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Cambia colori di sfondo \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Cambia categoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Cambia categoria di \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nuova categoria" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nuove sotto-categorie" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nuova sotto-categoria di \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nuova sotto-categoria" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Modifica sottocategorie esclusive" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Modifica sottocategorie esclusive di \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Elimina le categorie" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Elimina la categoria \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Trascina e rilascia le categorie" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nuovi impegni" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Nuovo impegno di \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Elimina impegni" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Elimina l'impegno \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Cambia task dell'impegno" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Modifica attività dell'impegno \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Cambia data e ora di inizio dello sforzo" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Cambia data e ora di inizio dello sforzo \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Cambia data e ora della fine dello sforzo" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Cambia data e ora della fine dello sforzo\"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nuova nota" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nuove sotto-note" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nuova sotto-nota di \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nuova sotto-nota" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Elimina note" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Elimina la nota \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Trascina e rilascia note" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Trascina e rilascia la nota \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Aggiungi nota" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Aggiungi nota a \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Aggiungi una sotto-nota" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Aggiungi una sotto-nota a \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Elimina nota" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Elimina nota da \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Trscina e rilascia attività" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Elimina attività" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Elimina l'attività \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nuova attività" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nuove sotto-attività" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nuova sotto-attività di \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nuova sotto-attività" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Segna le attività come completate" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Segna \"%s\" come completata" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Segna attività come attiva" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Segna \"%s\" come attiva" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Segna attività come sospesa" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Segna attività \"%s\" come sospesa" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Avvia monitoraggio" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Inizia a monitorare \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Ferma monitoraggio" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Ferma monitoraggio di \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Massimizza la priorità" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Massimizza priorità di \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizza priorità" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimizza priorità di \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Incrementa priorità" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Incrementa priorità di \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Decrementa priorità" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Descrementa priorità di \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Cambia priorità" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Cambia priorità di \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Aggiungi una nota alle attività" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Modifica data pianificata di inizio" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Modifica data pianificata di inizio di \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Cambia data di scadenza" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Cambia data di scadenza in \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Modifica data effettiva di inizio" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Modifica data effettiva di inizio di \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Cambia data completamento" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Cambia data di completamento di \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Cambia data/ora promemoria" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Cambia data/ora promemoria di \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Cambia ricorrenze" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Cambia ricorrenza di \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Modifica percentuale di completamento di \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Cambia quando le attività sono completate" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Cambia quando \"%s\" è completata" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Modifica budget" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Modifica budget di \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Cambia tariffer orarie" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Cambia la tariffa oraria di\"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Cambia i costi fissi" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Cambia i costi fissi di \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Seleziona i prerequisiti" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Seleziona i prerequisiti \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Errore durante la lettura dell'impostazione %s-%s da %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Il valore è: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "L'errore è: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s sarà settato al valore di default e dovrebbe funzionare normalmente." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Errore delle impostazioni" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Si è verificato un errore durante il salvataggio di %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Errore durante il salvataggio" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Messaggio Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nuovo allegato..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Inserisci un nuovo allegato" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Apri allegato" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Apri gli allegati selezionati" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minuti" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Non postporre" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minuti" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minuti" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minuti" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minuti" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 ore" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minuti" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 ora" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 ore" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 ore" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 ore" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 ore" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 ore" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 ore" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 ore" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 ore" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 ore" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 ore" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 settimane" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 settimana" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Totale" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Totale per %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Nuovo Impegno... \tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Attività inattive" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Nascondi compiti &inattivi" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Attività sospese: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Mostra/Nascondi attività inattive (attività incomplete senza la data " "d'inizio)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Attività in ritardo" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Nascondi attività in ritardo" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Attività in ritardo: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Mostra/nascondi attività in ritardo (attività con inizio pianificato nel " "passato)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Attività attive" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Attività attive: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Nascondi i compiti &attivi" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Mostra/Nascondi attività attive (ossia attività incomplete con una data " "d'inizio definita nel passato)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Attività a scadenza breve" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Attività a scadenza breve: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Nascondi le Attività a scadenza breve" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Mostra/Nascondi attività prossime a scadere (ossia attività incomplete con " "data di scadenza nel prossimo futuro)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Attività in ritardo" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Nascondi le Attività scadute" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Attività scadute: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Mostra/Nascondi attività scadute (attività incomplete con una data di " "scadenza già trascorsa)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Attività completate" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Attività completate: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Nascondi i compiti &completati" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Mostra/nascondi le attività completate" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nuova attività..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Freccia giù" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Freccia giù con stato" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Frecce blu circolari" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Frecce verdi circolari" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Freccia su" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Freccia su con stato" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Libro" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Libri" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Scatola" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Coccinella" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Torta" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calcolatrice" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendario" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Gatto" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Grafici" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Conversare" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Segno di spunta" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Segni di spunta" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Orologio" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Sveglia" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Cronometro" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Ruota dentata" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Ruote dentate" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Computer Desktop" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Computer portatile" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Computer palmare" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Croce Rossa" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Dado" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Documento" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Cuore blu" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Cuore verde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Busta" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Buste" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Cartella blu" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Cartella blu chiaro" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Cartella verde" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Cartella grigia" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Cartella arancio" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Cartella viola" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Cartella rossa" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Cartella gialla" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Cartella blu con freccia" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Cuore" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Cuori" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Casa verde" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Casa rossa" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Chiave" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Tasti" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lampada" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Punto interrogativo" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informazioni" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "LED blu" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "LED blu illuminato" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "LED grigio" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "LED verde" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "LED verde illuminato" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "LED arancio" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "LED viola" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Led rosso" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Led giallo" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Salvagente" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Lucchetto chiuso" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Lucchetto aperto" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lente di ingrandimento" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Pianoforte" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota musicale" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Annotazione" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Tavolozza" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Graffetta" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Matita" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Persona" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Persone" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificazione" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Persona che parla" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Segnale di pericolo" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Meno" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Più" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Stella rossa" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Stella gialla" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semaforo" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Cestino" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Lampeggiante" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Ombrello" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Parzialmente soleggiato" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Chiave inglese" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Nessuna icona" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "File" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Percorso completo" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Data" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Ripristina" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Chiudi" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Messaggio dagli sviluppatori %s" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Guarda:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descrizione" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Modifica per cambiare tutti i soggetti" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Oggetto" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Compila per cambiare tutte le descrizioni" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Data di creazione" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Data di modifica" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priorità" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Reciprocamente esclusivo" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategorie" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Compila per cambiare tutti gli allegati" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Naviga" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Posizione" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Aspetto" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Colore di primo piano" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Colore di sfondo" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Carattere" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icona" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Date" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Data di inizio pianificata" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Data scadenza" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Data di inizio effettiva" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data completamento" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Promemoria" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Ricorrenza" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progresso" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Percentuale completamento" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Usa impostazioni predefinite" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "No" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Sì" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Segno questa attività come completata quando tutte le sotto-attività sono " "completate?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Tempo impiegato" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budget residuo" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Costo orario" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Costo fisso" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Reddito" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Impegno" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorie" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Allegati" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Note" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Prerequisiti" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Modifica attività" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Attività" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Avvia" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Settimana(e)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Giorno(i)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Ora(e)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minuto(i)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Arresta" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Parti a tracciare dall'ultimo stop" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Ferma il monitoraggio" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Attenzione: l'inizio deve essere precedente alla fine" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Attività muliple" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (compito)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Categorie multiple" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (categoria)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Note multiple" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (nota)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Allegati multipli" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (allegato)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Sforzi multipli" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (sforzo)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Usa carattere:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Usa colore:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nessuna" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Giornaliera" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mensile" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Settimanale" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Annuale" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "mantieni gli appuntamenti nello stesso giorno della settimana" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", ogni" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Ferma dopo" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "ricorrenze" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Pianifica ogni prossima ricorrenza sulla base di" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "giorno(i)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periodo," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "settimana(e)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mese(i)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "anno(i)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Esporta oggetti da:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Esporta solamente gli oggetti selezionati" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Colonne da esportare:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Metti le date e le ore delle attività in colonne separate" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Scrivi le informazioni sullo stile in un file CSS separato" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Se un file CSS esiste per il file esportato, %(name)s non lo sovrascriverà. " "Questo ti permette di cambiare le informazioni di stile senza perdere i tuoi " "cambiamenti sulla prossima esportazione." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Esporta come CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Esporta come iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Esporta come HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Esporta come Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Un dispositivo iPhone o iPod sta cercando \n" "di sincronizzarsi con questo file di lavoro \n" "per la prima volta. Che tipo di sincronizzazione\n" "si desidera utilizzare?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Rinfresca dal desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Rinfresca dal dispositivo" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancella" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "E' stata attivata la sincronizzazione con iPhone. \n" "Questa funzionalità richiede la presenza del servizio\n" "Bonjour. Il servizio Bonjour non sembra essere \n" "presente nel sistema." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Si prega di scaricare ed installare Bonjour per Windows da\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Indirizzo web di Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Il supporto di Bonjour per Linux è generalmente\n" "fornito da Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Informazioni dettagliate per la vostra distribuzione si trovano qui" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Prendere nota che in alcuni sistemi (Fedora), è necessario\n" "installare il package avahi-compat-libdns_sd come pure Avahi affinchè\n" "questo funzioni" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Inoltre, se avete un firewall, controllate che le porte 4096-4100 siano " "aperte" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Questa impostazione avrà effetto dopo che riavvii %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Questa impostazione potrà essere scavalcata a seguito di operazioni " "individuali\n" "nella finestra di modifica dell'attività." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "File" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Salva automaticamente ad ogni cambiamento" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Salva le impostazioni (%s.ini) nella stessa\n" "cartella del programma" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Per eseguire %s da un dispositivo mobile" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Cartella base degli allegati" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Quando aggiungi un allegato, prova a\n" "considerare il suo percorso relativo rispetto a questo." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Prima di salvare, &importa automaticamente da" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Formato Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Prima di salvare, %s automaticamente importa task\n" "da un file Todo.txt con lo stesso nome del file dei task,\n" "ma con estensione .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Durante il salvataggio, esporta automaticamente in" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Durante il salvataggio, %s esporta automaticamente le attività\n" "in un file Todo.txt con lo stesso nome del file dell'attività,\n" "ma senza l'estensione .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Comportamento della finestra" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Mostra lo splash screen all'avvio" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Mostra la finestra dei suggerimenti all'avvio" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Avvia il programma con la finestra principale ridotta ad icona" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Sempre" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Mai" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "se è stato ridotto ad icona nell'ultima sessione" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Controlla se esiste una nuova versione di %(name)s all'avvio" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" "Controlla se ci sono nuovi messaggi dagli sviluppatori %(name)s all'avvio" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Nascondi la finestra principale quando viene ridotta ad icona" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimizza la finestra principale alla chiusura" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Orologio animato nella task bar durante il tracking di una attività" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Lingua" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Permetti al sistema di scegliere la lingua" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Se la tua lingua non è disponibile, o la traduzione ha bisogno di migliorie, " "per favore considera di aiutare. Guarda:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Lingua non trovata?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Aspetto dell'attività" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Questo settaggio di visualizzazione potrà essere scavalcata a seguito di " "operazioni individuali nella finestra di modifica dell'attività." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funzionalità" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Tutti le impostazioni su questa scheda richiedono un riavvio di %s per avere " "effetto" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Abilitare SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Abilita la sincronizzazione con iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Usa il gestore della sessione X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Inizio della settimana di lavoro" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Lunedì" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Domenica" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Ora di inizio del giorno lavorativo" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Ora di fine del giorno lavorativo" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Fine del giorno" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Usare i gradienti nella visualizzazione del calendario.\n" "Questo potrebbe rallentare Task Coach" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minuti tra gli orari suggeriti" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Nei menu a scomparsa per la selezione dell'orario (es. per \n" "l'impostazione dell'orario d'inizio di un impegno) %(name)s verranno \n" "suggeriti gli orari usando questa impostazione. Più piccolo è il numero \n" "dei minuti, più orari verranno suggeriti. Ovviamente, si può anche \n" "inserire qualsiasi orario si preferisce accanto agli orari suggeriti." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Avviso del tempo di inattività" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Se non c'è input da parte dell'utente per questa quantità di tempo\n" "(in minuti), %(name)s chiederà cosa fare degli impegni correnti." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Mostra un'ora e quindici minuti come 1.25 anziché 1:15\n" "Utile nella generazione di fatture." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Mostra un fumetto con la descrizione di un oggetto\n" "passando sopra con il cursore" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Date dell'attività" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Segna i task padri come completi quando sono completi tutti i task figli" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" "Numero di ore per cui le attività devono considerate 'da svolgere presto'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Niente" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Cambiare la data d'inizio pianificata cambia la data di scadenza" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Cambiare la data di scadenza cambia la data d'inizio pianificata" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Cosa fare con le date d'inizio e scadenza se l'altra è stata cambiata" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Impostazione predefinita" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Proporre" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Oggi" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Domani" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Dopodomani" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Prossimo venerdì" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Prossimo lunedì" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Inizio della giornata" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Inizio della giornata lavorativa" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Data corrente" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Fine del giorno lavorativo" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Data e ora d'inizio pianificata predefinita" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Data e orario di termine predefinite" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Effettiva data e ora d'inizio predefinita" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Data e ora predefinita di completamento" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Data e ora predefinita del promemoria" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Le nuove attività iniziano con date e ore \"Preimpostate\" già compilate e " "convalidate. Date e ore \"Proposte\" sono compilate ma non convalidate\n" "\n" "L' \"Inizio della giornata\" avviene alla mezzanotte e la \"Fine della " "giornata\" è appena prima della mezanotte. Quando vengono usate, i " "visualizzatori d'attività nascondono l'orario e mostrano solo la data.\n" "\n" "L' \"Inizio della giornata lavorativa\" e la \"Fine della giornata " "lavorativa\" utilizzano la giornata lavorativa come impostato nella scheda " "\"Funzionalità\" di questa finestra \"Preferenze\"." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Promemoria dell'attività" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Sistema di notifica da usare per i promemoria" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Consenti al computer di avvisarti con il promemoria" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Necessita di sintetizzatore vocale - espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" "Periodo di Snooze (silenziamento temporaneo) da usare dopo il promemoria" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Elenco dei tempi da posporre nella finestra di promemoria" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Password per la sincronizzazione con iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "In fase di sincronizzazione, inserire questa password sull'iPhone per " "autorizzarla" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nome del servizio Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Caricamento impegni sul dispositivo completato" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Mostra il registro di sincronizzazione" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Controlla l'ortografia nell'editor" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" "Carattere da usare nel campo di descrizione delle finestre di dialogo della " "modifica" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Ricava l'oggetto della mail da Mail" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Prova ad importare l'oggetto della mail quando rilasci un'e-mail da Mail.\n" "Potrebbero volerci fino a 20 secondi." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Evidenzia l'oggetto dell'attività nell'Editor attività" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Seleziona ed evidenzia l'oggetto dell'attività quando apri l'Editor " "attività.\n" "Questo sovrascriverà le X selezionate." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s promemoria - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Ricorda data/orario" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Postponi" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Rendi questo periodo di posposizione per i prossimi promemoria" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Segna l'attività come completata" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "server SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Personalizzato" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL del server SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "User name/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Abilita la sincronizzazione delle attività" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nome del database attività" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Modalità di sincronizzazione preferita" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "due modi" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lento" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Unidirezionale da client" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Aggiorna dal client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Unidirezionale da server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Aggiorna da server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Abilita la sincronizzazione delle note" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Nome database note" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Accesso" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Nuovo modello di attività" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Anteprima" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Strumenti dipsonibili" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Rendi questo strumento visibile nella barra degli strumenti" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Rimuovi dalla Barra degli Strumenti" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Strumenti" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Sposta in su (verso sinistra sulla Barra degli Strumenti)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Sposta in giù (verso destra sulla Barra degli Strumenti)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Riordina i pulsanti della barra strumenti trascinandoli nella lista" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separatore" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Spaziatore" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Notifica nuove versioni" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "E' disponibile una nuova versione di %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Si sta usando %(name)s versione %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "La versione %(version)s di %(name)s è disponibile in" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s è aggiornato" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s è aggiornato alla versione %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Impossibile trovare l'ultima versione" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Impossibile trovare quale sia l'ultima versione di %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "versione prerelease" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" "Si sta utilizzando %(name)s versione temporanea (prerelease) " "%(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "L'ultima versione rilaciata di %(name)s è %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Attenzione" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach presenta problemi conosciuti con il gestore della sessione " "XFCE4.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Se si sono verificati dei blocchi all'avvio, controlla e disabilita " "l'opzione \"Utilizza la gestione della sessione X11\" nella scheda " "\"Funzionalità\" nelle preferenze\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Non mostrare più questa finestra all'avvio" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Nessun input dell'utente da %s minuti. Si stava tracciando il tempo " "impiegato per la seguente attività" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Non fare nulla" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Interrompi a %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Interrompi a %s e continua ora" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notifica" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s file (*.tsk)|*.tsk|tutti i file (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s file (*.tsk)|*.tsk|Backup file (*.tsk.bak)|*.tsk.bak|Tutti i file (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "File iCalendar (*.ics)|*.ics|Tutti i file (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "File HTML (*.html)|*.html|Tutti i file (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "File CSV (*.csv)|*.csv|File di Testo (*.txt)|*.txt|Tutti i file (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "File Todo.txt (*.txt)|*.txt|Tutti i file (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Apri" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Caricati %(nrtasks)d impegni da %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Impossibile aprire %s perché inesistente" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Unisci" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Impossibile aprire il file %(filename)s\n" "perchè è bloccato." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Unito %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Salva come" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Salva la selezione" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Impossbile salvare %s\n" "E' bloccato da un'altra copia in esecuzione di %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Impossibile salvare %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importa modello" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s file modello (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Impossibile importare il modello %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Esportate %(count)d voci nel file %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sincronizzazione completata" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Stato sincronizzazione" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Impossibile aprire %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Esiste già un file chiamato %s.\n" "Vuoi sovrascriverlo?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Le modifiche non sono state salvate.\n" "Salvare prima di chiudere?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: salvare modifiche?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Non è possibile aprire %s poichè bloccato.\n" "\n" "Questo significa che un'altra sessione di Task Coach\n" "è attiva ed ha un file aperto, oppure che una precedente\n" "sessione di Task Coach si è interrotta in modo imprevisto. Se non ci sono " "altre sessioni\n" "aperte puoi forzare il blocco in sicurezza.\n" "\n" "Vuoi forzare il blocco?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: file bloccato" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Impossibile aprire in modo esclusivo perchè non è \n" "supportato nella posizione di %s.\n" "Aprire %s in modalità condivisa?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Chiuso %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Salvati %(nrtasks)d impegni in %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Impossibile aprire %(filename)s\n" "perchè è stato creato da una nuova versione di %(name)s.\n" "Si prega di aggiornare %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Errore mentre leggi %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Il backup manager si aprirà per consentire il ripristino\n" "di una versione precedente del file." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Sincronizzazione in corso..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sincronizzare con %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Benvenuto alla versione %(name)s %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Impossibile ripristinare il pannello di visualizzazione dal TaskCoach.ini:\n" "%s\n" "\n" "Verrà usato il pannello di visualizzazione predefinito.\n" "\n" "Se questo problema dovesse ripresentarsi, cortesemente fate una copia del " "vostro file TaskCoach.ini prima di chiudere il programma, aprite poi un " "\"bug report\" (descrizione del problema), e allega allo stesso il file " "copiato TaskCoach.ini." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s errore nei settaggi" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "Iphone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Tipo di sincronizzazione" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Un iPhone o iPod Touch ha cercato di sincronizzarsi con questo\n" "elenco di impegni, ma il protocollo di negoziazione è fallito.\n" "Per favore segnalare un report di errore." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&File" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Modifica" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Visualizza" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nuovo" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Azioni" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Aiuto" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importa" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Esporta" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Seleziona" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Nuova vista" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Attiva nuova vista\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Attiva vista &precedente \tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Modalità" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtro" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Ordina" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Colonne" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "A&rrotondamento" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Opzione &albero" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Barra s&trumenti" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Mostra/nascondi la barra di stato" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Barra di stato" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Attività" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Apre una nuova scheda con un viewer che mostra i tasks" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "&Statistiche dell'attività" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" "Apri una nuova scheda con una visualizzazione che mostra le statistiche " "dell'attività" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Mappa dei compiti" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Apre una nuova scheda con la mappa dei compiti" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&imeline" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Apre una nuova scheda che mostra una pianificazione delle attività e del " "costo" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendario" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "Apre una nuova scheda che consente di visualizzare le attività in calendario" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categoria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Apre una nuova scheda con un viewer che mostra le categorie" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Impegno" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Apre una nuova scheda con gli impegni" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Apre una nuova scheda con gli impegni dell'attività" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Note" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Apre un nuovo tab con un viewer che mostra le note" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Nascondi" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Nasconde la toolbar" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Icone piccole" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Immagini piccole (16x16) nella toolbar" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Icone Medie" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Immagini medie (22x22) nella toolbar" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Grandi icone" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Immagini grandi (32x32) nella toolbar" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nuova attività da template" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Cambio categoria" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Cambia &priorità compito" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Inzia a marcare l'impegno" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (sottocategoria)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (sottocompiti)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priorità" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Pagina" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Promemoria" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d compiti in ritardo" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "un task scaduto" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d compiti da fare a breve" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "un compito da fare a breve" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "monitoraggio \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "monitoraggio impegno per %d compiti" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Apri...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Apri %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Unisci..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Unisci i tasks da un altro file nel file corrente" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Chiudi\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Salva\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&alva come...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Sal&va le attività selezionate su un nuovo file attività..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Salva le attività selezionate in un file di attività separato" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Salva l'attività selezionata come modello" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Salva l'attività selezionata come modello attività" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importa modello..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importa un nuovo modello da un file modello" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Modifica i modelli..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Modifica i modelli esistenti" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Modifica il modello" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Elimina le unità cancellate" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Cancella effettivamente le attività e le note rimosse (leggi il capitolo " "SyncML nella Guida)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "La pulizia degli elementi cancellati non è\n" "annullabile. Se pensi di usare la funzione \n" "SyncML un'altra volta con con lo stesso\n" "server, questi elementi probabilmente\n" "saranno ripristinati.\n" "\n" "Vuoi ancora avviare la pulizia?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Imposta pagina...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "Anteprima di &stampa..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Mostra un'anteprima di come apparirà la stampa" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Anteprima di stampa" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Stampa...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Esporta come &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Esporta gli elementi da una vista in formato HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Esporta come &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Esporta gli elementi da una vista in formato CSV (Comma Separated Values)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Esporta come &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Esporta gli elementi da una vista in formato iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Esporta com &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Esporta gli elementi da una vista in formato Todo.txt (vai su todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importa CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importa le attività da un file Comma Separated Values (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importa CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Il file selezionato è vuoto. Seleziona un file differente." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importa Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importa le attività da un file Todo.txt (vedi todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importa Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Sincronizzazione S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Sincronizzazione con server S&yncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Esci\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Annulla" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Ripeti" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Tag&lia\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copia\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Incolla\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "I&ncolla come sotto attività \tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferenze...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferenze" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "& Preferenze di SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Modifica impostazioni SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Preferenze di SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Personalizza la barra strumenti" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Personalizzazione" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Tutto\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Cancella Selezione" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Deseleziona tutti gli oggetti" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Togli tutti i filtri\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Togli tutte i filtri sulle categorie\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Mostra/nascondi oggetti appartenenti a %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Rinomina vista..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Rinomina il viewer selezionato" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nuovo titolo per il viewer" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Rinomina vista" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Nascondi questa colonna" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "&Nascondi la colonna selezionata" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Espandi tutti gli elementi\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Comprimi tutti gli elementi\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Crescente" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Ordine Crescente (selezionato) o decrescente (non selezionato)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Ordina in Maiuscolo-minuscolo" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Quando confronta il testo l'ordine distingue Maiuscole/minuscole " "(selezionato) o non distingue (non selezionato)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Ordina &prima per stato" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Ordina le attività per stato (attiva/inattiva/completata) prima" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Nascondere le attività c&omposite" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Mostra/nascondi le attività con sotto attività elencate" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Modifica... \tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Modifica gli oggetti selezionati" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Modifica &attività monitorate...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Modifica l'attività attualmente tracciata (in monitoraggio)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Elimina\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Elimina gli oggetti selezionati" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Crea una nuova attività da un modello" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nuova attività con le &categorie selezionate..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Inserisci una nuova attività con le categorie selezionate" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nuova attività con le attività selezionate come prerequisiti..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Inserisci una nuova attività con le attività selezionate come prerequisiti" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" "Nuova attività con le attività selezionate impostate come &dipendenti..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" "Inserisci una nuova attività con le attività selezionatà come dipendenti" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nuovo &sotto-elemento..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nuova &sottoattività..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nuova &sotto-nota..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nuova &sottocategoria..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Inserisci un nuovo sotto-elemento dell'elemento" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Segna l'attività come &attiva\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Segna la/le attività come attiva/e" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Segna l'attività come &inattiva\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Segna la/le attività come inattiva/e" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Segna l'attività come &completata\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Contrassegna le attività selezionate come completate" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Massimizza la priorità\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimizza la priorità\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Aumenta la priorità\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Riduci la priori\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Cambia %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Diversi oggetti" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "e" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Non è possibile inviare e-mail:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s errore email" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Aggiungi una ¬a...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Apri tutte le note...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "Inizia a tracciare il tempo dell'impegno\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Inizia a tracciare il tempo dell'impegno per le attività degli impegni " "selezionati" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Nessun oggetto)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Inizia a tracciare il tempo dell'impegno per %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" "Selezionare un'attività attraverso il menu di avvio e inizia a tracciare il " "tempo del suo impegno" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" "Interrompi il tracciamento o continua il tracciamento del tempo impiegato \t" "Shift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Interr&ompi il tracciamento %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Interrompi la misurazione dell'impegno per il lavoro(i) attivo(i)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "Continua il t&racciamento %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Riprendi il monitoraggio per le ultime attività" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "attività multiple" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nuova categoria...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nuova nota...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nuova ¬a con le categorie selezionate..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Inserire una nuova nota con le categorie selezionate" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Aggiungi allegato...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Errore di apertura allegato" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Apri tutti gli allegati...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Countenuti della Guida (&Help)\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Indice dell'aiuto\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Aiuto" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Suggerimenti" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Consigli sul programma" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Rendi anonimo" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Rendi anonimo un file di attività da allegare ad un \"bug report\" " "(segnalazione d'errore)" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Il file di attività è stato reso anonimo ed è stato salvato in:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Completata" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "In&formazioni su %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versione e informazioni di contatto su %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Riguardo a %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licenza" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licenze" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Verifica la presenza di aggiornamenti" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Controlla la disponibilità di una nuova versione di %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Impossibile aprire l'indirizzo internet (URL):\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s errore URL" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&FAQ - domande frequenti" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Sfoglia le FAQ" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Notifica &errori..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Notifica un errore o visualizza gli errori conosciuti" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Richiedi una nuova &funzione..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Richiedi nuove funzioni o vota quelle già presenti" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Richiedi &assistenza..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Richiedi assistenza dagli sviluppatori" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Contribuisci a migliorare la &traduzione..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Aiuta a migliorare le traduzioni di %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Dona..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Fai una donazione per sostenere lo sviluppo di %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Ripristina" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Ripristina la finestra al suo stato precedente" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Cerca" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Dettagli impegno" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Impegni giornalieri" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Impegni mensili" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Impegni settimanali" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Modalità Aggregazione" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Elenco" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Albero" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Quando è contrassegnata, mostra le attività come albero, altrimenti come " "lista" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtro su tutte le categorie selezionate" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtro su ogni categoria" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Quando è contrassegnata, filtra con tutte le categorie segnate, altrimenti " "con qualsiasi categoria" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Ordine di scelta" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configura" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configura il visualizzatore del calendario" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Prossimo periodo" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Mostra prossimo periodo" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Periodo precedente" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Mostra periodo precedente" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Oggi" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Mostra oggi" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Ridimenzionamento &Automatico delle colonne" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Se selezionato, ridimensiona automaticamente le colonne per riempire lo " "spazio disponibile" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Imposta l'angolo del diagramma a torta" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Nessun arrotondamento" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuto" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minuti" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Precisione di arrotondamento" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Arrotonda sempre" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Sempre arrotondare al successivo incremento di arrotondamento" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tipo" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Ordina per soggetto" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Sog&getto" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Ordina per descrizione" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Descrizione" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Data di &Creazione" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Ordina per data di creazione" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Data di &Modifica" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Ordina per data di ultima modifica" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Mostra / Nascondi colonna Descrizione" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Note" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Mostra / Nascondi colonna Note" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Mostra/nascondi la colonna della data di creazione" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Mostra/Nascondi la colonna della data di ultima modifica" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Le barre degli strumenti sono personalizzabili" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Fare clic sull'icona con l'ingranaggio sulla destra per aggiungere pulsanti " "e riorganizzarli." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Mostra/Nascondi ordine manuale delle colonne" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Allegati" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Mostra / Nascondi colonna allegati" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categorie: %d selezionate, %d totali" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Stato: %d filtrato" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periodo" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Tempo totale impiegato" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Totale Entrate" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Martedì" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Mercoledì" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Giovedì" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Venerdì" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sabato" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categorie" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Mostra / Nascondi colonna categoria" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "%Tempo utilizzato" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Mostra / Nascondi colonna Tempo utilizzato" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Reddito" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Mostra / Nascondi colonna reddito" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Tempo totale utilizzato" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Mostra / Nascondi colonna tempo totale utilizzato" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Totale Entrate" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Mostra / Nascondi colonna del totale delle entrate" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Impegni per giorni della settimana" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Mostra / Nascondi colonna tempo speso per giorno della settimana" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Aggregazione Impegni" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Impegno: %d selezionate, %d visibili, %d totale. Tempo impiegato: %s " "selezionate, %s visibili, %s totale" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Stato: %d in monitoraggio" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Dettagli:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Ordina le categorie per oggetto" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Ordina le categorie per descrizione" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Ordina le categorie per data di creazione" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Ordina le categorie per data di ultima modifica" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Ordina categorie manualmente" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Ordina gli allegati per soggetto" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Ordina gli allegati per descrizione" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Ordina gli allegati per categoria" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Ordina gli allegati per data di creazione" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Ordina gli allegati per data di ultima modifica" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Ordina le note secondo l'oggetto" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Ordina le note secondo la descrizione" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Ordina le note secondo la categoria" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Ordina le note per data di creazione" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Ordina le note per data di ultima modifica" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Ordina note manualmente" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Ordina le attività per oggetto" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Ordina le attività per descrizione" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Ordina le attività per categoria" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Ordina le attività per data di creazione" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Ordina le attività per data ultima modifica" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Ordina tasks manualmente" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Ordina le attività per data d'inizio pianificata" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "Data d'inizio &pianificata" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Ordina le attività per data di scadenza" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Data di scadenza" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Ordina per data di completamento" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Data di &Completamento" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Estrai le attività in base ai prerequisti" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Prerequisiti" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Ordina le attività in base alle attività dipendenti" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dipendenti" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Ordina le attività per tempo rimanente" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Tempo rimasto" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Ordina per percentuale di completamento" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Percentuale di completamento" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Ordina le attività per ricorrenza" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Ricorrenza" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Ordina le attività per budget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Ordina le attività per tempo impiegato" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Budget &rimasto" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Ordina le attività per budget rimasto" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Ordina le attività per priorità" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Ordina le attività per tariffa oraria" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Tariffa oraria" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Ordina le attività per tariffa fissa" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Tariffa &Fissa" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Ordina le attività per entrate" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Ordina i tasks per data e ora del promemoria" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "P&romemoria" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Oggetto" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Ordina le note per categorie" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Note: %d selezionate, %d totali" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Stato: non disponibile" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Attività: %d selezionate, %d visibili, %d totali" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Stato: %d in ritardo, %d scadute, %d inattive, %d completate" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Maiusc-clic su uno strumento di filtro per visualizzare solo le attività che " "appartengono allo stato corrispondente" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Attività" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Timeline" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Adesso" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Mappa delle attività" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Presenta le attività per" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Configurazione del visualizzatore del calendario" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dipendenti" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% completato" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Tempo rimasto" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Date" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Tutte le colonne delle date" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Mostra / Nascondi tutte le colonne relative alla data" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Mostra/nascondi la colonna della data d''inizio pianificata" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Mostra / Nascondi colonna data di scadenza" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Data d'inizio &effettiva" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Mostra/nascondi la colonna della data d'inizio effettiva" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Mostra / Nascondi colonna data di completamento" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Mostra/nascondi la colonna del tempo rimanente" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Mostra/nascondi la colonna della ricorrenza" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "Tutte le colonne &Budget" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" "Mostra/nascondi tutte le colonne relative al budget (disponibilità economica)" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Mostra/nascondi colonna budget" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Budget restante" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Mostra/nascondi colonna budget restante" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanziari" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Tutte le colonne finanziarie" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Mostra/nascondi tutte le colonne finanziarie" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Mostra/Nascondi la colonna costo orario" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Mostra/nascondi la colonna tariffa" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Mostra/Nascondi colonna prerequisiti" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Mostra/nascondi le colonne dipendenti" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Mostra / Nascondi colonna percentuale completata" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Visualizza/nascondi colonna allegati" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Mostra/Nascondi colonna priorità" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Mostra/nascondi la colonna promemoria" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Mostra attività come" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Statistiche dell'attività" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Virgola" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Spazio" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Due punti" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Punto e virgola" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Tubo" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "GG/MM (giorno prima)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/GG (mese prima)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Aforisma" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Doppio apice" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Raddoppialo" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Esci con" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importa solo le righe selezionate" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "La prima riga descrive i campi" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Delimitatore" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Formato Data" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Campo #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Selezionare un file." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Categoria" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Data promemoria" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percentuale completata" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Intestazione colonna nel file CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s attributo" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Nessuna mappatura campo" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Il campo \"%s\" non può essere selezionato più volte." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "I campo %s non possono essere selezionati più volte." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Indice dei contenuti" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Info sulle attività" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Proprietà attività" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Stato attività" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Colori attività" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Promemoria" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Info sugli errori" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Proprietà impegno" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Info sulle categorie" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Proprietà della categoria" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Info sulle note" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Proprietà della note" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Stampa e esportazione" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Info su stampa e esportazione" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Stampa" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Esportare" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integrazione E-mail" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Info sulle e-mail" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Allega una Mail all'attività" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Creazione attività da una e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Assistenza SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Cosa è SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Configurazione" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitazioni" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Risoluzione dei problemi" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Pulisci elementi cancellati" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone e iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s sull' iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configurazione" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s in Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt e Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importazione todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Sto esportando todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Modelli attività" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Info sui modelli" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Utilizza template" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Interfaccia grafica" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Tasti scorciatoia" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Le Attività sono gli oggetti base che possono essere gestiti. Sono " "considerate\n" "attività sia una singola cosa da fare fino a un progetto completo \n" "composto da singole fasi e numerose attività." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Le Attività hanno le seguenti proprietà modificabili" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Oggetto: una singola riga che riepiloga l'attività." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Descrizione: una descrizione di più righe dell'attività." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Data di inizio pianificata: la prima data in cui l'attività può iniziare. \n" "La data di inizio pianificata viene impostata per default uguale alla data " "di creazione della attività.\n" "Può anche essere vuota e questo significa non è previsto l'inizio della " "attività.\n" "Questo può essere utile ad esempio per registrare assenze per malattia." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Data scadenza: la data entro la quale l'attività dovrebbe essere completata. " "\n" "Può essere vuota e questo indica che questa attività non ha una data " "stabilita di completamento." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Data inizio effettiva: la data nella quale l'attività è effettivamente " "iniziata.\n" "La data inizio effettiva può essere modificata manualmente,ma spesso viene " "impostata quando\n" "viene tracciato un impegno per questa attività, oppure quando l'attività " "viene impostata \n" "la percentuale di completamento ad un valore tra 0% e 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Data completamento: questa data è vuota fino a quando l'attività \n" "non è stata completata. Viene impostata uguale alla data attuale quando " "l'attività\n" "viene impostata come completata.\n" "La data di completamento può essere anche inserita manualmente." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Prerequisiti: altre attività che devono essere completate prima dell'inizio " "\n" "di una attività. L'attività rimarrà inattiva finché l'ultima attività " "prerequisita non \n" "viene completata. Attenzione: se un'attività ha impostata una data di " "inizio, \n" "l'attività sarà considerata in ritardo solo quando la data di inizio " "pianificata è \n" "trascorsa e tutte le attività prerequisite sono state completate." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: numero di ore disponibili per questa attività." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Tariffa oraria: l'importo orario guadagnato per lo svolgimento dell'attività." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Tariffa fissa: importo guadagnato per lo svolgimento dell'attività \n" "indipendentemente dal tempo impiegato." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Le seguenti proprietà sono calcolate partendo da quelle sopra:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Giorni rimanenti: il numero di giorni rimanenti alla data dovuta." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dipendenze: altri task che possono essere avviati quando il\n" "task prerequisito è stato completato." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Tempo speso: impegno speso per l'attività." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Budget rimasto: budget attività meno tempo speso." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Guadagno: tariffa oraria x ore impiegate + tariffa fissa." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Le Attività hanno sempre almeno un dei seguenti stati:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Attiva: la data di inizio è nel passato" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inattiva: l'attività non è iniziata e/o le attività\n" "prerequisite non sono state completate;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Completata: l'attività è stata completata." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Inoltre, le attività possono essere identificate come:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "In ritardo: la data di scadenza è già passata;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "in scadenza: la data di scadenza è imminente (quanto 'imminente'\n" "può essere modificato nelle preferenze);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "In ritardo: la data di inizio programmata è trascorsa, ma \n" "l'attività non è stata iniziata;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Fuori budget: non è rimasto budget;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Sotto budget: è rimasto ancora budget" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Nessun budget: l'attività non ha budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" "Il Testo delle attività è colorato in funzione delle seguenti regole:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Attività in ritardo in rosso;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Le Attività in scadenza sono arancione" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Le attività attive hanno il testo di colore nero con una icona blu;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Le attività future sono in grigio, e" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Le attività completate sono verdi." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Quanto sopra, ovviamente, se non sono stati modificati i colori di default\n" "nelle preferenze." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Il colore di sfondo delle attività è determinato dalle categorie di \n" "appartenenza. Vedere la sezione proprietà " "categorie ." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "E' possibile impostare un promemoria per una data e un'ora specifica. " "%(name)s mostrerà\n" "un messaggio di promemoria a tale data e ora. Dalla finestra di dialogo del " "promemoria\n" "è possibile aprire l'attività, iniziare a tracciare il tempo dell'impegno " "per l'attività, oppure\n" "contrassegnare l'attività come completata. E' anche possibile posporre il " "promemoria." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Se si ha Growl o Snarl installati, è possibile indicare a\n" "%(name)s di usare questi per i promemoria nelle preferenze." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Ogni volta che s'impegna il tempo in un'attività, è possibile registrare la " "quantità di tempo\n" "trascorso nel tracciamento dell'impegno. Selezionare un'attività e " "richiamare 'Inizia il tracciamento del tempo impegnato' nel menu " "dell'impegno o menu di scelta rapida o tramite il pulsante\n" "'Inizia il tracciamento del tempo impegnato' nella la barra degli strumenti." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "GLi impegni hanno le seguenti proprietà che possono essere modificate:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Attività: l'attività a cui si riferisce l'impegno." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Data/ora inizio: data e ore di inizio dell'impegno" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "data/ora fine: data e ore di termine dell'impegno. Può essere \n" "'None' se si è ancora al lavoro per l'attività." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Descrizione: una descrizione di più righe dell'impegno." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Tempo impiegato: tempo impiegato per lavorare sull'attività." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Profitto: il denaro guadagnato con il tempo speso" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Attività e note possono appartenere a una o più categorie. Prima,\n" "devi creare la categoria che vuoi usare dal menù \"Categorie\". Poi,\n" "puoi aggiungere oggetti a una o più categorie editando l'oggetto e " "selezionando\n" "le categorie rilevanti per quell'oggetto nel pannello delle categorie del " "menu edit." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" "Le Categorie hanno le seguenti proprietà che possono essere modificate:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Oggetto: una singola linea che riassume la categoria." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Descrizione: descrizione della categoria in più righe." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Sottocategorie reciprocamente esclusive: una casella di controllo che indica " "\n" "se le sottocategorie della categoria si escludono a vicenda. In tal caso, \n" "gli elementi possono appartenere solo a una delle sottocategorie. Durante il " "filtraggio, si può solo filtrare da una sottocategoria alla volta." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Proprietà dell'aspetto come icona, dipo di carattere e colori:\n" "le proprietà dell'aspetto sono utilizzate per il rendering (visualizzazione) " "della categoria, \n" "e degli elementi che appartengono alla specifica categoria. Se una categoria " "non ha colore, tipo di carattere o una propria icona, ma ha una categoria " "principale con tale proprietà d'aspetto specificata, verranno visualizzate " "le proprietà d'aspetto della categoria madre (da cui deriva come sotto " "categoria). Se un elemento (categoria) appartiene a più categorie (madri) " "che hanno ciascuna un colore associato, verrà visualizzata con un colore che " "risulta una miscela dei colori assegnati alle categorie da cui discende " "(appartiene)." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Le Note hanno le seguenti proprietà che possono essere modificate:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Oggetto: una riga che riepiloga la nota." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Descrizione: una descrizine di più righe della nota." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Proprietà dell'aspetto come icona, tipo di carattere e colori." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Più utenti accedono allo stesso task." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Non ancora testato." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "A causa di una limitazione di Thunderbird, non è possibile trasinare più e-" "mail\n" "da Thunderbird. Questa limitazione non riguarda Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Ci sono due modi per collegare una e-mail a un impegno, è possibile:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" "Rilascialo su un'attività, sia nell'albero delle attività che nella lista." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Ricorrenze e promemoria non sono ancora supportati." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (vedi sotto)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 e superiore, Intel e PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch e iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s sull' iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Registro delle consuntivazioni" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "File Attività multipli" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "L'applicazione è universale e ha un'interfaccia utente personalizzata per " "iPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configurazione su iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Alcune preferenze dell'applicazione per iPhone/iPod Touch/iPad si trovano \n" "nell'applicazione Preferenze." #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Mostra completati: mostra o nascondi attività completate" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configurazione su Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Su Windows, è necessario installare Bonjour per Windows e\n" "sbloccarlo quando è richiesto dal firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configurazione su Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Non riesco a trovare la App per iPhone/iPod Touch \n" "sul sito di Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "E' necessario avere iTunes installato sul computer per accedere all'Apple " "Store. \n" "Scarica " "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Il mio computer non appare nell'elenco quando cerco di sincronizzare" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Controlla che il tuo iPhone/iPod Touch sia connesso alla stessa rete WiFi \n" "alla quale è connesso il tuo computer." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "L' iPhone non si può connettere al mio Computer" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "Se hai un firewall, controlla che le porte 4096-4100 siano aperte." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt è un gestore open source delle liste di cose da fare, realizzato da " "Gina \n" "Trapani, il quale lavora con file di testo. Todo.txt ha una interfaccia a " "riga di comando. \n" "Comunque, poiché che il formato del file è di semplice testo, è possibile " "modificare la vostra \n" "attività con qualsiasi editor di testo. Todo.txt Touch è una versione di " "Todo.txt per la\n" "Piattaforma Android. Todo.txt Touch utilizza un file todo.txt che risiede " "nella vostra\n" "cartella Dropbox. %(name)s è in grado di importare ed esportare sul questo " "file todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s esporta oggetto, data inizio pianificata, data scadenza, data " "completamento \n" "priorità e categorie dell'attività verso il formato Todo.txt. \n" "Altri attributi non vengono esportati." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s supporta date e ore, ma Todo.txt supporta soltanto date,\n" "per cui le informazioni orarie relative a inizio, scadenza e completamento \n" "non sono esportate." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Il formato Todo.txt supporta solo data inizio pianificata e data " "completamento, \n" "ma non data scadenza. Perciò, %(name)s utilizza un'estensione per esportare " "\n" "la data di scadenza delle attività.\n" "Le date di scadenza sono esportate come \"due:YYYY-MM-DD\" nel\n" "file todo.txt." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Il sistema non è localizzato; le date devono essere\n" "inserite in formato inglese." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s ha parecchie scorcatoie di tastiera, elencate di seguito. \n" "Al momento le scorciatoie di tastiera non sono configurabili." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux e Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux e Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux e Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Inserisci un nuovo sottoelemento" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Modifica elementi selezionati oppure chiudi la finestra" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Imposta la/le attività selezionate come completate/non completate" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Sposta il focus al campo successivo" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Sposta il focus al campo precedente" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Modifica l'oggetto dell'elemento selezionato in un visualizzatore" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versione %(version)s, %(date)s
    \n" "

    Da %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s è stato sviluppato in modo attivo. Gli sviluppatori di %(name)s si " "sforzano di evitare che ci siano bug. Ma nonostante ciò è fortemente " "consigliato di eseguire regolarmente il backup del lavoro." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s ha una mailing list dove si può discutere sull'uso di %(name)s con " "gli altri utenti, discutere e richiedere nuove funzionalità e lamentarsi dei " "bug. Vai su %(url)s e unisciti a noi oggi!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s ha illimitati undo e redo (annulla ultima operazione, ripristina " "ultima operazione). Qualsiasi cambiamento eseguito è annullabile, che si " "tratti di modifica di una descrizione dell'attività, o l'eliminazione della " "registrazione di un impegno. Selezionare 'Edit' -> 'Annulla' e 'Modifica' -> " "'Ripristina' per andare avanti e indietro nella cronologia di modifica." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Puoi spostare i task nella vista ad albero per riorganizzare le relazioni " "tra i task. Lo stesso vale per le categorie." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Cosa viene effettivamente stampato quando si seleziona 'File' -> 'Stampa' " "dipende dalla vista corrente. Se la vista corrente mostra l'elenco delle " "attività, verrà stampato un elenco di attività, se la vista corrente mostra " "impegno raggruppati per mese, questo verrà stampato.. Lo stesso vale per le " "colonne visibili, l'ordinamento, le attività filtrate, ecc" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Click-sinistro del mouse su una colonna per ordinare in base a tale colonna. " "Fare clic sull'intestazione della colonna di nuovo per cambiare il criterio " "di ordinamento da ascendente a discendente e viceversa. Click-destro del " "mouse su una colonna per nascondere la colonna o rendere visibili ulteriori " "colonne." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Suggerimento del giorno" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Prossimo suggerimento" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Mostra suggerimenti all'avvio" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Sfoglia i file da aggiungere come allegato alla voci selezionate" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Aggiungi una nota agli elementi selezionati" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Inserisci nuova categoria" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Taglia gli oggetti selezionati negli appunti" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copia gli oggetti selezionati negli appunti" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Incolla gli oggetti dagli appunti" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Modifica Preferenze" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Ripristina l'ultimo comando annullato" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Seleziona tutti gli oggetti nella vista corrente" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Annulla l'ultimo comando" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Aggiungi un impegno alle categorie selezionate" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Inizia a monitorare l'impegno per la/le attività selezionata/e" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Chiude il file corrente" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Esci %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Apre il file %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Salva il file corrente" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Salva il file corrente con un altro nome" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Aiuto sul programma" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" "Invia gli oggetti selezionati via mail, utilizzando la tua applicazione " "predefinita" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Inserisci una nuova nota" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Apri tutti gli allegati delle voci selezionate" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Apri tutte le note degli elementi selezionati" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Stampa il file corrente" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Imposta le proprietà della pagina della stampante" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Mostra tutti gli oggetti (resetta tutti i filtri)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Mostra tutte le voci indipendentemente dalla categoria" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Decrementa la priorità delle attività selezionate" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Incrementa la priorità delle attività selezionate" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Alzare la priorità al compito selezionato(i)" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Abbassare la priorità al compito selezionato(i)" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Inserisci una nuova attività" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Comprimi tutti gli elementi con elementi secondari" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Espandi tutti gli elementi con elementi secondari" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Attiva la prossima vista aperta" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Attiva l'ultima vista aperta" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Un iPhone o iPod Touch hanno tentato di connettersi con Task Coach,\n" "ma nessuna password è stata impostata. Occorre impostare una password nella\n" "sezione iPhone delle preferenze e quindi riprovare." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Versione protocollo: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash non valido." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Nome device: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Invio file: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categoria" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Invia categoria %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Risposta: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d attività" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Invia attività %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d impegni" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Invia impegno %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Finito." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nuova categoria" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nuove attività" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nuovi impegni" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d categorie modificate" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d attività modificate" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d impegni modificati" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d elimina categorie" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d elimina impegni" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d impegni cancellati" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nuova categoria (%s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Elimina categoria %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modifica categoria %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nuova attività \"%s\"" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Elimina impegno %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modifica attività %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Fine sincronizzazione attività." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Nuovo impegno %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modifica impegno %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Invio GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Lettura informazioni mail..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Lettura informazioni mail. Attendere." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Directory dati di Thunderbird non trovata" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Profilo Thunderbird non trovato." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Non esiste la sezione default nle file profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Non trovo la directory per l'ID\n" "%s.\n" "Per favore compila una segnalazione" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Nessuna mail : %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Orario d'inizio attuale" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Orario d'inizio previsto" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Ora scadenza" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Ora comletamento" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Ora rpomemoria" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Ora di creazione" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Senza oggetto" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nuova attività per oggi" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nuova attività per domani" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d giorni" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 giorno" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Ogni %(frequency)d giorni" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Ogni %(frequency)d settimane" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Ogni %(frequency)d mesi" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Ogni %(frequency)d anni" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Ogni altro giorno" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Ogni altra settimana" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Ogni altro anno" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Ogni altro anno" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Ieri" #: taskcoachlib/render.py:284 msgid "now" msgstr "ora" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "ci sarà un aggiornamento dal server. Tutti gli articoli \n" "locali verranno eliminati. Vuoi continuare?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "ci sarà un aggiornamento locale. Tutti gli articoli \n" "remoti verranno eliminati. Vuoi continuare?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sincronizzazione" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Sincronizzazione. Attendere.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d voci aggiunte.\n" "%d voci aggiornate.\n" "%d voci eliminate." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Si è verificato un errore durante la sincronizzazione.\n" "Codice errore: %d; messaggio: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Devono prima essere modificate le impostazioni SyncML, in " "Modifica/Preferenze SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Ripristina %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Ch&iudi" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Chiudi tutto" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Successivo" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Precedente" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Finestra" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Modifica" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d settimane" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d ore" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Completato" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Tipo e numero di periodi" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "mese" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientamento calendario" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Orizzontale" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Verticale" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Attività da visualizzare" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Attività con data inizio e data scadenza pianificate" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Attività con data inizio pianificata" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Attività con data scadenza" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Tutte le attività" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Tutte le attività eccetto quello non pianificate" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Diesgna una linea che mostra l'ora corrente" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Colore da utilizzare per evidenziare oggi" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Tutti i file (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Numero settimana" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Settimana" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Settimana lavorativa" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Password:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Salva in Porachiavi" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Digitare la password." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Digitare la password" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Considera maiuscole/minuscole sul filtro" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Includi sotto-attività" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Includi oggetti figli nelle ricerche" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Cerca anche nella descrizione" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Cerca sia nell'oggetto che nella descrizione" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Espressione &Regolare" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Considera il testo di ricerca come espressione regolare" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Questa è una espressione regolare non valida." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Ricerche recenti" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Avviso di compatibilità" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "La funzionalità SyncML è disabilitata, perchè il modulo\n" "non può essere caricato. la causa può essere che la piattaforma\n" "non è supportata, oppure in Windows, una o più DLL\n" "obbligatorie risultano mancanti. Verificare la sezione SyncML della\n" "guida online per ulteriori dettagli (sezione \"Risoluzione problemi\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Non mostrare più questo dialogo" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Errore nell'apertura dell'URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Elimina\tDEL" taskcoach-1.4.3/i18n.in/ja.po000077500000000000000000005706541265347643000156330ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: TaskCoach\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:31+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: JAPAN\n" "Language: ja\n" "X-Poedit-Language: Japanese\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "エラーが発生しました。”ドキュメント”フォルダの”taskcoachlog.txt”を参照してください。" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "エラー" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "エラーが発生しました。ファイル \"%s\"を参照してください。" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "TaskCoach.ini から設定を読み込めません :\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s ファイルエラー" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "上位が削除されたので、\"%s\"が上位になります。" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "ローカルバージョンが使われたため、\n" "\"%s\"が競合しています。" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "添付ファイルの場所を変更" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "添付ファイル \"%s\" の場所を変更" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "添付ファイルを追加" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "\"%s\" に添付を追加" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "新しい添付ファイル" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "添付ファイルを削除する" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "\"%s\"から、添付ファイルを削除する" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "コピー" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "\"%s\" をコピー" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "削除" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "\"%s\" を削除" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "カット" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "\"%s\" を切り取り" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "貼り付け" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "\"%s\" を貼り付け" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "サブアイテムに貼り付ける" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "\"%s\"のサブタスクとして貼り付け" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "ドラッグ&ドロップ" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "\"%s\" をドラッグアンドドロップ" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "サブジェクトの編集" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "サブジェクトの編集 \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "説明の編集" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "説明の編集 \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "アイコンの変更" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "アイコンを変更 \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "フォントの変更" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "フォントを変更 \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "文字色を変更" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "文字色 \"%s\" を変更" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "背景色を変更" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "背景色 \"%s\" を変更" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "カテゴリ割り当て" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "新規カテゴリ" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "新規サブカテゴリー" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "新規サブカテゴリ" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "カテゴリーの削除" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "\"%s\"カテゴリーの削除" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "カテゴリーをドラッグ&ドロップ" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "新規エフェクト" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "新規ノート" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "新規サブノート" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "新規ノート" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "タスクの削除" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "\"%s\"タスクの削除" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "タスクの新規作成" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "新規サブタスク" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "サブタスクの新規作成" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "タスクの完了" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "タスクのアクティブ化" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "タスクの非アクティブ化" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "トラッキング開始" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "「%s」のトラッキング開始" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "トラッキング終了" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "「%s」のトラッキング停止" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "優先度を最高にする" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "「%s」の優先度の最大化" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "優先度を最低にする" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "「%s」の優先度の最小化" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "優先度を上げる" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "「%s」の優先度を上げる" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "優先度を下げる" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "「%s」の優先度を下げる" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "優先度の変更" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "\"%s\"の優先度変更" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "メモをタスクに追加" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "開始予定日の変更" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "締切日変更" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "\"%s\"の締切日変更" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "実行日の変更" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "完了日変更" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "リマインダーの日時を変更" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "\"%s\"のリマインダーの日時を変更" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "繰り返し設定の変更" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "\"%s\"の繰り返し設定の変更" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "\"%s\"の進捗度を変更" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "予算変更" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "\"%s\"の予算変更" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "時給変更" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "\"%s\"の時給変更" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "値:%s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "エラー:%s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "エラー設定" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "%s.ini: 保存エラー\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "保存エラー" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.appからのメッセージ" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "新規添付ファイル..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "添付ファイルの挿入" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "添付ファイルを開く" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "選択中の添付ファイルを開く" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5分後" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "スヌーズしない" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10分後" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15分後" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20分後" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30分後" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1時間半後" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45分後" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1時間後" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2時間後" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3時間後" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4時間後" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12時間後" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6時間後" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8時間後" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18時間後" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24時間" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48時間後" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72時間後" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2週間後" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1週間後" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "合計" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "%s の合計" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "新規エフォート(&N)...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "非アクティブ" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "非アクティブタスクを隠す (&I)" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "遅延タスク" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "遅延タスクを非表示にする" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "遅延タスク: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "遅延タスクの表示/非表示(開始予定日を過ぎている非実行タスク)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "アクティブ" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "アクティブタスクを隠す (&A)" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "締め切り間近のタスク" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "締め切り間近のタスク: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "締め切りが近いタスクを隠す" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "期限切れ状態" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "期限が過ぎたタスクを隠す" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "期限が過ぎたタスク: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "完了状態" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "完成したタスク:%d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "完了タスクを隠す (&C)" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "完了タスクを表示/隠す" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "新規タスク(&N)..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "下矢印" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "下矢印と状況" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "環状矢印(青)" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "環状矢印(緑)" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "上矢印" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "上矢印とステータス" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "爆弾" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "本" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "本(複数)" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "箱" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "テントウムシ" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "ケーキ" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "電卓" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "カレンダー" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "猫" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "CD" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "チャート" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "チャット" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "チェックマーク" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "時計" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "目覚まし時計" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "ストップウオッチ" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "歯車" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "歯車(複数)" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "デスクトップパソコン" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "ラップトップパソコン" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "ハンドヘルドコンピュータ" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "ペケ(赤)" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "サイコロ" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "ドキュメント" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "地球(青)" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "地球(緑)" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "封筒" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "封筒(複数)" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "フォルダ(青)" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "水色のフォルダー" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "フォルダ(緑)" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "フォルダ(灰色)" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "フォルダ(オレンジ)" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "フォルダ(紫)" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "フォルダ(赤)" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "フォルダ(黄色)" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "フォルダ(青)と矢印" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "ハート" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "ハート(複数)" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "ハウス(緑)" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "ハウス(赤)" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "鍵" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "鍵(複数)" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "電球" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "はてな" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "インフォメーション" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "LED(青)" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "LED(薄青)" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "LED(灰色)" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "LED(緑)" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "LED(薄緑)" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "LED(オレンジ)" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "LED(紫)" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "LED(赤)" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "LED(黄色)" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "浮き輪" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "閉じた鍵" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "開いた鍵" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "虫眼鏡" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "ピアノ" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "音符" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "付箋" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "パレット" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "クリップ" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "鉛筆" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "人" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "人(複数)" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "身分証明書" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "人(会話中)" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "警告" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "マイナス" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "プラス" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "星(赤)" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "星(黄色)" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "信号機" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "ごみ箱" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "雷" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "傘" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "曇時々晴" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "レンチ" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "なし" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "閉じる" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "参照:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "説明" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "タイトル" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "作成日" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "変更日" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "優先度" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "相互排他" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "サブカテゴリ" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "ブラウズ" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "場所" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "表示" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "文字表示色" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "背景色" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "書体" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "アイコン" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "日付" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "開始予定日" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "完了予定日" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "実行日" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "完了日" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "アラーム" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "繰り返し" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "進捗状況" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "達成率" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "アプリケーション全体設定" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "いいえ" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "はい" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "下位階層の全サブタスクが完了時に、タスクが完了させる" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "予定時間" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "経過時間" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "残り時間" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "時間報酬" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "固定報酬" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "収入" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "エフォート" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "カテゴリー" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "添付" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "ノート" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "前提条件" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "タスクを編集" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "タスク" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "スタート" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "週" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "日" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "時" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "分" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "ストップ" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "最終ストップ時間からトラッキングをスタートする" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "トラッキングを停止する" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "警告:まず開始してください。" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "複数のタスク" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (タスク)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "複数のカテゴリー" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (カテゴリー)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (メモ)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "複数の添付ファイル" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (添付ファイル)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "フォント" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "この色を使う:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "なし" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "毎日" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "毎月" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "毎週" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "毎年" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "平日に繰り返すようにする" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "日" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "期間," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "週" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "月" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "年" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "選択中の項目のみ" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "スタイル情報を別ファイルへ書き出す" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "%(name)sは既存のCSSファイルを上書きしません。これにより、もしもスタイル情報をカスタマイズした場合、再度エクスポートしたときにその変更を失うこと" "がありません。" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "CSV形式エクスポート" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "iCalander形式エクスポート" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "HTML形式エクスポート" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Todo.txt形式でエクスポート" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "iPhoneやiPodで初めて\n" "タスクファイルを同期しようとしています。\n" "どのような同期方法を使用しますか?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "デスクトップのデータに合わせる" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "デバイスのデータに合わせる" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "キャンセル" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Bonjourを必要とするiPhone同期機能が有効になっていますが、\n" "お使いのコンピュータにBonjourがインストールされていないようです。" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Bonjour をダウンロードし、インストールして下さい。\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple のウェブサイト" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Linux では Bonjour と互換性が高い Avahi というソフトが\n" "広く使われています。" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "搭載されているディストリビューションについて" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "ご注意:一部の環境(特にFedora)では、Avahi に加えて\n" "avahi-compat-libdns_sd というパッケージもインストールする\n" "必要があるかもしれません。" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "尚、ファイヤーウォールをご利用の場合は、ポートの4096-4100番を開放する必要があります。" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "ファイル" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "変更後自動保存" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "本アプリと同じディレクトリの配下に\n" "設定ファイル (%s.ini) を保存する" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "添付ファイルの基準ディレクトリ" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "ファイルを添付する際は\n" "相対パスを用いてください。" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt フォーマット" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "保存時に、自動的にエクスポートする" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "ウィンドウ" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "起動時にスプラッシュスクリーンを表示" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "起動時にTIPSを表示する" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "スタート時にアイコン化" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "常に" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "しない" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "前回終了時と同様" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "スタート時に %(name)s の更新を確認する" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "アイコン化したときメインウィンドウを隠す" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "閉じたときにメインウィンドウを最小化" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "タスクバーで時計表示する" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "言語" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "自動選択" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "言語が見つかりませんか?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "機能" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "SyncML を有効にする" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "iPhone 同期を有効にする" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "週の始まり" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "月曜日" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "日曜日" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "作業日の作業開始時間" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "作業日の作業終了時間" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "1日の終わり" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "カレンダ表示でグラデーションを使う。\n" "※操作が重くなる可能性がある" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "タスクにマウスを乗せた際に\n" "タスクの詳細をポップアップ表示する" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "サブタスクが全て完了したとき、親タスクも完了させる" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "期限間近の判断基準(時間)" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "特に何もしない" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "プリセット" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "本日" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "明日" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "明後日" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "今度の金曜" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "今度の月曜" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "一日の始まり" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "一日の始まり" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "現在時刻" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "一日の終わり" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "標準予定開始日時" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "通知" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "リマインダー・ダイアログで表示する時間" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "iPhone と同期するためのパスワード" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour サービス名" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "完了タスクはディバイスへ送る" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "同期のログを表示する" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "エディタ" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "スペルチェックを有効にする" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "リマインダー 日付/時間" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "スヌーズ" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "完了にする" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncMLサーバー" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "カスタム" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML サーバー URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "ユーザー名/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "タスクの同期を有効にする" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "タスクのデータベース名" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "双方向" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "遅く" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "クライアントからのみの一方向" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "クライアントからのみの更新" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "サーバからのみの一方向" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "サーバからのみの更新" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "ノートの同期を有効にする" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "ノートのデータベース名" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "アクセス" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "新規テンプレート" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "プレビュー" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "ツールバーから隠す" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "ツール" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "区切り" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "スペース" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "更新を通知する。" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "%(name)s の新しいバージョンが利用可能です" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "お使いの%(name)sのバージョンは%(currentVersion)sです。" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s のバージョン %(version)s が入手可能です" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)sは最新版です" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "お使いの%(name)sはバージョン%(version)sで最新版です。" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "最新版の確認が失敗しました" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "%(name)sの最新版の確認が失敗しました。" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "プレリリース版" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "お使いの%(name)sはプレリリース版%(currentVersion)sです。" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "%(name)sの最新版は%(version)sです。" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "警告" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "起動時にこのメッセージを表示しない" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "何もしない" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "通知" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s ファイル (*.tsk)|*.tsk|バックアップファイル (*.tsk.bak)|*.tsk.bak|すべてのファイル (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar ファイル (*.ics)|*.ics|すべてのファイル (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML ファイル (*.html)|*.html|全てのファイル (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV ファイル (*.csv)|*.csv|テキストファイル (*.txt)|*.txt|全てのファイル (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "開く" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d 件のタスクを %(filename)s から読み込みました" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "%s を開けません。(ファイルが存在しません)" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "マージ" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "%(filename)s を開くことができません。\n" "ファイルがロックされています。" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s をマージしました" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "別名で保存" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "選択した項目のみ保存" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "%s を保存することができません。\n" "ファイルが別の %s のインスタンスによってロックされています。\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "%s を保存することができません\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "テンプレートのインポート" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s テンプレートファイル (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(filename)s へ %(count)d 個の項目を出力しました" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "同期を終了しました" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "同期ステータス" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "%s は既に存在するファイルです。\n" "上書きしますか?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "保存していない変更があります。\n" "保存しますか?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: 変更を保存しますか?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "ロックされている為、%sを開けません。\n" "\n" "原因は、他に現在起動しているTask Coachが既に開いているか、\n" "または以前にTask Coachが異常終了してしまったと考えられます。\n" "現在起動中のTask Coachが他にない場合は、ロックを強制解除し\n" "ても良いです。\n" "\n" "ロックを強制解除しますか?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: ファイルがロックされています" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "%s の場所ではロックがサポートされていないため\n" "ロックすることができません。\n" "%s をロックせずに開きますか?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%sを閉じました" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d 件のタスクを %(filename)s に保存しました" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "お使いの %(name)s よりも新しいバージョンで生成された為、\n" "%(filename)s を開けません。\n" "%(name)s を最新版に更新してください。" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "%s: 読み込みエラー:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "同期中..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "%s と同期中..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "%(name)s バージョン %(version)s へようこそ!" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "同期の種類" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "このタスク・ファイルで iPhone または iPod Touch が同期しようとしていますが、\n" "プロトコールのネゴシエーションに失敗しました。\n" "バグ報告にご協力願います。" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "ファイル(&F)" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "編集(&E)" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "ビュー(&V)" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "新規作成(&N)" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "操作(&A)" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "ヘルプ(&H)" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "インポート" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "エクスポート(&E)" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "選択(&S)" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "新規ビュー(&N)" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "次のビューへ(&A)\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "前のビューへ(&P)\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "モード(&M)" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "フィルタ(&F)" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "整列(&S)" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "カラム(&C)" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "ツリーオプション(&T)" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "ツールバー(&o)" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "ステータスバー表示/非表示" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "ステータスバー(&b)" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "タスク(&T)" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "タスクを表示するタブを開きます" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "タスクスクエア マップ(&S)" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "スクウェア・マップでタスクを表示するタブを開きます" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "タイムライン(&I)" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "タイムラインでタスクとエフォートを表示するタブを開きます" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "カレンダー (&C)" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "カレンダーでタスクを表示するタブを開きます" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "カテゴリ(&C)" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "カテゴリ表示タブを開く" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "エフォート(&E)" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "エフォートを表示するタブを開きます" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "選択中のタスクに絞ってエフォートを表示するタブを開きます" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "ノート(&N)" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "ノートを表示するタブを開きます" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "隠す(&H)" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "ツールバーを隠す" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "アイコンサイズ小(&S)" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "ツールバーのアイコン小サイズ(16x16)" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "アイコンサイズ中(&M)" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "ツールバーのアイコン中サイズ(22x22)" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "アイコンサイズ大(&L)" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "ツールバーのアイコン大サイズ(32x32)" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "テンプレートから新規タスク(&T)" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "カテゴリ割り当て(&T)" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "タスク優先度の変更(&P)" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "トラッキングスタート(&S)" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (サブカテゴリー)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (サブタスク)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "優先度(&P)" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "ページ" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s のリマインダー" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d件のタスクが期限遅れ" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "1件のタスクが期限遅れ" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "期限間近 %d 件" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "期限間近 1 件" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "\"%s\" をトラッキング中" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "%d件のタスクにトラッキングエフォート" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "開く(&O)...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "%sを開く" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "マージ(&M)..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "他のファイルのタスクと現在のファイルを結合" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "閉じる(&C)\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "保存(&s)\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "別名で保存(&A)...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "選択したタスクのみ保存..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "選択したタスクのみを抜き出して保存します" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "選択したタスクをテンプレートとして保存(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "選択したタスクをタスクテンプレートとして保存" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "テンプレートのインポート(&I)..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "テンプレートファイルから新規インポート" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "テンプレートの編集..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "既存のテンプレートを編集します" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "テンプレートの編集" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "完全消去" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "ページ設定(&P)...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "印刷プレビュー(&P)..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "印刷プレビューを表示" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "印刷プレビュー" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "印刷(&P)...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "&HTMLにエクスポート..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "ビューの項目をHTML形式でエクスポートします" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "&CSVにエクスポート..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "CSV形式でビューの項目をエクスポートします" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "iCalendar形式で出力(&I)..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "iCalendar形式でビューの項目をエクスポートします" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "&Todo.txtとしてエクスポート..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "CSVのインポート(&I)..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "CSV形式のファイルからタスクをインポートします" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "CSVのインポート" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "Todo.txtのインポート..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Todo.txtからタスクをインポートします" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Todo.txtのインポート" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "SyncML同期(&Y)..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "SyncML サーバーと同期" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "終了(&Q)\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "アンドゥ(&U)" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "やり直す(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "カット(&t)\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "コピー(&C)\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "貼り付け(&P)\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "サブタスクとして貼り付け(&A)\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "オプション(&P)...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "オプション" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "SyncML設定(&S)..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "SyncML 設定を編集" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML設定" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "カスタマイズ" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "全て選択(&A)\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "クリア(&C)" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "全ての選択をクリアします" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "フィルタを全て解除(&C)\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "カテゴリフィルタの解除(&R)\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "%sの項目の表示切り替え" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "ビューの名称を変更(&R)..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "選択したビューの名前を変更" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "ビューの新しいタイトル:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "ビューの名称を変更" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "このコラムを隠す(&H)" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "選択した項目を隠す" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "全てのアイテムを広げる(&E)\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "全てのアイテムを折りたたむ(&C)\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "昇順(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "昇順 (チェック) / 降順 (チェックなし)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "大文字小文字の区別(&C)" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "大小文字区別する(チェック)/区別なし(チェックなし)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "ステータス優先で整列(&f)" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "アクティブ/非アクティブ/完了順に整列" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "親タスクを隠す" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "リストモードでサブタスクのあるタスクを表示/隠す" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "編集(&E)...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "選択中の項目を編集します" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "トラッキング中のタスクの編集(&T)...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "現在トラッキング中のタスクを編集します" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "削除(&D)\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "選択中の項目を削除します" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "テンプレートから新規タスクを作成(&F)" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "選択中のカテゴリで新規タスク(&C)..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "選択されたカテゴリで新規タスクを作成します" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "選択中のタスクを前提条件として新規タスク(&P)..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "選択されたタスクを前提条件として新規タスクを作成します" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "選択されたタスクを依存として新規タスクを作成します" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "新規サブタスク(&S)..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "新規サブタスク(&s)..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "新規サブノート(&S)..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "新規サブカテゴリ(&S)..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "新規サブタスクを挿入" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "選択したタスクの完了を入力" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "優先度の最大化(&M)\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "優先度の最小化(&M)\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "優先度を上げる(&I)\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "優先度を下げる(&D)\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "%s の切り替え" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "メール(&M)...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "メール(&M)...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "メールを送ることができません:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s メールエラー" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "ノートの追加(&N)...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "ノートを全て開く...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(タイトルなし)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "トラッキングの開始・停止\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "アクティブタスクのトラッキングを停止する" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "前回停止した時間からトラッキングを再開します" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "新規カテゴリ...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "新規ノート...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "添付ファイルの追加(&A)...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "添付ファイルエラー" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "全ての添付ファイルを開く(&O)...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "ヘルプ(&H)\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "ヘルプ(&H)\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "ヘルプ" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "ヒント(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "プログラムのチップス" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "匿名化" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "完了" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "%s について(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "%sのバージョンとコンタクトインフォメーション" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "%s の情報" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "ライセンス(&L)" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s ライセンス" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "アップデートの確認" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "より新しいバージョンの%sがリリースされていないか確認します" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "このURLは開けません。:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URLエラー" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "よくある質問(&F)" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "よくある質問とその解答を閲覧できます" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "バグ報告(&B)..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "バグを報告したり、既存のバグを閲覧したりできます" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "新機能提案(&F)..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "新機能を提案したり、既存の提案に投票したり出来ます" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "ユーザーサポート(&S)..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "開発者によるユーザーサポートの問い合わせができます" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "翻訳の向上を手伝う(&T)..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "%sの翻訳の向上を手伝うことができます" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "寄付(&D)..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "%sの開発を支援する為に寄付しましょう" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "復元(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "ウィンドウを復元" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "検索" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "エフォート詳細" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "1日のエフォート" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "月のエフォート" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "週のエフォート" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "リスト" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "ツリー" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "設定(&C)" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "カレンダービューの設定を編集します" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "次の期間 (&N)" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "次の期間を表示します (&N)" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "前の期間 (&P)" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "前の期間を表示します" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "今日(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "本日を表示します" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "カラム幅の自動調整(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "チェックを付けると、カラムの幅を自動的に調整します。" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1分" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "タイプ" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "タイトルで整列" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "タイトル(&S)" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "説明で整列" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "説明(&D)" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "説明列を表示/隠す" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "ノート(&N)" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "ノートを表示/隠す" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "添付ファイル(&A)" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "添付を表示/隠す" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "カテゴリ: 選択 %d件, 合計 %d件" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "ステータス: フィルタ %d件" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "期間" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "合計経過時間" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "合計収入" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "火曜日" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "水曜日" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "木曜日" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "金曜日" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "土曜日" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "カテゴリ(&C)" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "カテゴリを表示/隠す" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "経過時間(&T)" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "経過時間を表示/隠す" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "収入(&R)" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "収入を表示/隠す" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "合計経過時間 (&T)" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "合計経過時間を表示/隠す" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "合計収益(&T)" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "収入を表示/隠す" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "ステータス: トラッキング中%d件" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "タイトルでカテゴリを整列します" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "説明でカテゴリを整列します" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "タイトルで添付ファイルを整列" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "説明で添付ファイルを整列" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "カテゴリで添付ファイルを整列" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "タイトルでノートを整列" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "説明でノートを整列" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "カテゴリでノートを整列" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "タイトルでタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "説明でタスクを整列します" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "カテゴリでタスクを整列します" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "完了予定日でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "完了予定日(&D)" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "完了日でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "完了日(&C)" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "前提条件でタスクを整列します" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "前提条件タスク(&P)" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "依存でタスクを整列します" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "残り時間でタスクを整列します" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "残り時間(&T)" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "達成率でタスクを整列します" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "達成率 (&P)" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "繰り返しでタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "繰り返し(&R)" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "予定時間でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "予定時間(&B)" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "経過時間でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "残り日数(&D)" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "残り時間でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "優先度でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "時間報酬でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "時間報酬(&H)" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "固定報酬でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "固定報酬(&F)" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "収入でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "リマインダの日時でタスクを整列" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "リマインダ(&R)" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "タイトル(&S)" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "カテゴリでノートを整列" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "ノート: 選択 %d 件、合計 %d 件" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "ステータス: 該当なし" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "タスク: 選択済み%d 件, 可視%d件, 合計%d件" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "タスク" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "タイムライン" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "現在" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "タスクのスクエア・マップ" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "カレンダービューの設定" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "達成率 (%)" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "残り時間" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "日付(&D)" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "全ての日付欄(&A)" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "日付に関連した項目をすべて表示/隠す" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "完了予定日を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "完了日を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "残り時間欄の表示・非表示を切り替えます" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "繰り返しを表示/隠す" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "時間に関連した項目をすべて表示/隠す" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "予定時間を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "残り時間を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "報酬(&F)" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "収入に関連した項目を全て表示/隠す" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "時間報酬を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "固定報酬を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "達成率を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "添付ファイルを表示/隠す" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "優先度を表示/隠す" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "リマインダーを表示/隠す" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "半角コンマ" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "タブ" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "スペース" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "半角コロン" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "半角セミコロン" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "半角シングルクォート" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "半角ダブルクオート" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "繰り返し" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "特定の文字" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "選択された行のみインポートする" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "最初の行がフィールドの説明である" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "区切り" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "クオート" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "クオートのエスケープ方法" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "フィールド%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "カテゴリ" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "進捗度" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "CSVのフィールド" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%sのフィールド" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "フィールドのマッピングが必要です。" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "フィールド%sは一つだけマッピングしてください。" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "%sのフィールドはそれぞれ一つだけマッピングしてください。" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "目次" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "タスクについて" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "タスクの属性" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "タスクの状態" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "タスクの表示色" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "エフォートについて" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "エフォートの属性" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "カテゴリについて" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "カテゴリの属性" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "ノートについて" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "ノートの属性" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "印刷とエクスポート" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "印刷とエクスポートについて" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "印刷" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "エクスポート" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "メーラー統合について" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "タスクにメールの添付方法" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "メールからタスクの作成方法" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncMLのサポート" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "SyncMLとは" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "セットアップ" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "操作限界" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "トラブルシューティング" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhoneとiPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "iPhone上で%(name)s" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "設定" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "タスクのテンプレート" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "テンプレートについて" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "テンプレートの使い方" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "グラフィカルユーザーインターフェース" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "キーボードショートカット" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    バージョン%(version)s(%(date)s)
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)sは常に改善されつつあります。%(name)sの開発者は可能な限りバグの無いよう心がけて開発を図っているものの、 " "人間なのでひょっとしてバグがどこかに潜んでいるのかもしれません。よって、定期的にバックアップを取ることを強く推奨します。" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s では何度でも undoとredo動作を行えます。タスクの編集やエフォートの削除など、どのような変更もundoできます。'編集'-" ">'Undo'メニュー、または'編集'->'Redo'メニューを使用してください。" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s をさまざまな言語で使用できます。'編集' -" "> '設定' メニューで使いたい言語がないか見てみましょう。もし使いたい言語がないか、翻訳に修正が必要なら、%(name)s " "の翻訳の手伝いを考えてみてください。詳しくは %(url)s を参照してください。" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "%(url)s のようにURLを入力した場合、クリックすれば開きます。" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "タスク間の親子関係は、ツリービューでドラッグ&ドロップすれば変更できます。カテゴリも同じです。" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "ファイルをドラッグ&ドロップして、添付ファイルにすることができます。" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "ファイルメニューの印刷では、現在表示されている画面が印刷できます。" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "選択されたファイルを添付ファイルとして追加します" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "新規カテゴリを挿入" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "切り取ります" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "クリップボードにコピーします" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "クリップボードから貼り付けます" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "設定変更" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "取り消した最後のコマンドを再実行" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "すべて選択します" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "最後のコマンドをアンドゥ" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "選択したタスクにエフォートを追加" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "アクティブタスクのトラッキングを開始" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "トラッキングを開始または停止します" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "現在のファイルを閉じる" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "終了 %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "%sファイルを開く" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "現在のファイルを保存" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "現在のファイルを新しい名前で保存" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "ヘルプ" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "新規ノートの挿入" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "現在のファイルを印刷" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "印刷設定" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "全てのアイテムを表示(フィルタのリセット)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "選択したタスクの優先度を下げます" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "選択したタスクの優先度を上げます" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "選択したタスクの優先度を最高にします" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "選択したタスクの優先度を最低にします" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "新しいタスクを挿入" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "サブアイテムのある全てのアイテムを折りたたむ" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "サブアイテムのある全てのアイテムを広げる" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "次に開いたビューへ" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "前に開いたビューへ" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "iPhoneまたはiPod TouchがTask Coachに接続しようとしたようですが、\n" "まだパスワードが設定されていません。オプションのiPhoneタブにて\n" "パスワードを設定してからもう一度お試しください。" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "プロトコールバージョン: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "プロトコールバージョンの%dが却下されました" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "ディバイス名: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "ファイル名の送信: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "カテゴリ%d件" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "カテゴリ%sの送信" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "レスポンス結果: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "タスク%d件" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "タスク%sの送信" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "エフォート%d件" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "エフォート%sの送信" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "完了しました。" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "新しいカテゴリは%d件" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "新しいタスクは%d件" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "新しいエフォートは%d件" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "変更されたカテゴリは%d件" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "変更されたタスクは%d件" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "変更されたエフォートは%d件" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "削除されたカテゴリは%d件" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "削除されたタスクは%d件" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "削除されたエフォートは%d件" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "新しいカテゴリ(親カテゴリ:%s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "カテゴリ%sの削除" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "カテゴリ%sの変更" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "新しいタスク%s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "タスク%sの削除" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "タスク%sの変更" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "新しいエフォート%s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "エフォート%sの変更" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "GUIDの送信: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "無題" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "今日が期限の新規タスク" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "明日が期限の新規タスク" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d日" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1日" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "%(frequency)d 日ごと" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "%(frequency)d 週ごと" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "%(frequency)d 月ごと" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "%(frequency)d 年ごと" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "隔日" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "隔週" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "隔月" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "隔年" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "現在" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "同期" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "同期中・・・暫くお待ち下さい\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "追加: %d 件\n" "更新: %d 件\n" "削除: %d 件" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "同期中にエラーが発生しました。\n" "エラーコード: %d、メッセージ: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "閉じる (&O)" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "全て閉じる" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "次へ (&N)" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "前へ (&P)" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "ウィンドウ (&W)" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "編集" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "表示期間とその単位" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "月次" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "カレンダの方向" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "横" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "縦" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "すべてのタスク" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "現時刻を示す線を表示する" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "本日のハイライト色" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "All files (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "パスワード :" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "パスワードを入力して下さい" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "大文字小文字の区別(&M)" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "フィルタ時に大文字・小文字を区別する" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "サブ項目を含む(&I)" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "一致した項目のサブ項目も検索結果に表示する" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "説明も検索対象" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "タイトルと説明で検索" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "無効な正規表現です" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "最近の検索" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "ビューは検索不可能です" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "互換性警告" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "以後このダイアログを表示しない" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "URLを開けませんでした" #~ msgid "&Delete\tDEL" #~ msgstr "削除(&D)\tDEL" taskcoach-1.4.3/i18n.in/ko.po000066400000000000000000005217701265347643000156420ustar00rootroot00000000000000# translation of ko.po to Nederlands # Korean translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2008. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: ko\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Sang-hyeon Lee \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s 파일 오류" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "첨부화일 추가" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "새 첨부파일" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "복사" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "복사 \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "삭제" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "삭제 \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "잘라내기" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "잘라내기 \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "붙여넣기" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "붙여넣기 \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "끌어다 놓기" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "제목 수정" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "제목 수정 \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "새 분류" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "새 하위분류" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "카테고리 삭제" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "카테고리 삭제 \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "새 노트" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "새 하위노트" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "메모 삭제" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "메모 삭자 \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "메모 추가" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "업무 삭제" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "업무 삭제 \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "새 작업" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "새 하위작업" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "추적 시작" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "추적 정지" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "최고 우선순위" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "최저 우선순위" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "우선순위 올림" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "우선순위 내림" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "업무에 메모 추가" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "%s.ini 저장중 오류:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "저장 에러" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "새 첨부파일..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "새 첨부파일 삽입" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "첨부파일 열기" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "선택한 첨부파일 열기" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "알림해제 할수없음" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "완료 작업 보임/감춤" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "새 작업(&N)..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "무당벌레" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "케이크" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "계산기" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "달력" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "고양이" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "CD" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "대화" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "시계" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "자명종 시계" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "데스크탑 컴퓨터" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "랩탑 컴퓨터" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "적십자" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "편지봉투" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "파란색 폴더" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "녹색 폴더" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "회색 폴더" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "주황색 폴더" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "빨간색 폴더" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "노란색 폴더" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "하트" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "키" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "물음표" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "정보" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "잠긴 자물쇠" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "피아노" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "메모" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "팔레트" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "종이 클립" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "연필" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "사람" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "설명" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "제목" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "우선순위" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "탐색" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "위치" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "날짜" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "마감일" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "완료일" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "알림" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "반복" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "어플리케이션 포괄설정 사용" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "아니오" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "예" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "모든 아이가 완료하였을때 작업 완료를 마크" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "예산" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "시간지출" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "남은 예산" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "시간당 지출" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "고정 지출" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "수입" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "노력" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "분류" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "첨부파일" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "메모" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "작업 수정" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "작업" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "시작" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "중지" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "마지막 작업에서 추적 시작" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "없음" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "매일" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "월간" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "매주" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "연간" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "같은 요일일때 날짜 보관" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", 모두" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "일," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "기간," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "주," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "달," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "년," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "취소" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "확인" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "파일" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "모든 수정사항 자동저장" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "프로그램과 같은 디렉토리에 설정파일(%s.ini) 저장" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "첨부파일 기본 디렉토리" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "첨부파일을 추가할때, 경로만들기 시도)" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "창 동작" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "시작시 스플래시 화면 보이기" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "시작시 팁 보기" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "메인창 아이콘으로 시작" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "항상" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "전혀" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "마지막 세선이 아이콘일 경우" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "%(name)s 시작시 새로운 버전 검사" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "아이콘화시 메인창 감추기" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "닫을때 메인창 최소화" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "노력 추적시 상태표시줄에 시간 표시" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "언어" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "언어파일 찾을수없음?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "특징" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "syncML 활성화" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "월별" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "일요일" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "매주 작업 시작시각" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "매주 작업 완료시각" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "마우스 오버시 해당 항목의 설명 팝업 보기" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "모든 하위작업 완료시 상위작업 완료 표시" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "편집기" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "편집기 철자 검사" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "날짜/시간 알림" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "알림해제" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML 서버 URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "사용자 아이디" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "작업 동기화 활성" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "작업 데이타베이스 이름" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "양방향" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "천천히" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "클라이언트에서 한방향" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "클라이언트 리프레시" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "서버에서 한방향" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "서버 리프레시" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "노트 동기화 가능" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "데이타베이스 이름" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "접근" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "새버전 알림" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "%(name)s 새버전 가능" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s 버전 %(version)s 가능" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "%s 파일 (*.tsk)|*.tsk|백업파일 (*.tsk.bak)|*.tsk.bak|모든 파일 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar 파일 (*.ics)|*.ics|모든 파일 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML 파일 (*.html)|*.html|모든 파일 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV 파일 (*.csv)|*.csv|텍스트파일 (*.txt)|*.txt|모든 파일 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "열기" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(filename)s에서 %(nrtasks)d 작업 불러옴" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "%s 파일 없음." #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "병합" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s 병합" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s 서식파일 (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "동기화 상태" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "수정사항이 저장되지 않았습니다.\n" "닫기전에 저장하시겠습니까?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: 수정사항 저장?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s 닫음" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(filename)s의 %(nrtasks)d 작업 저장" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "읽는 도중 에러 %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "%(name)s 버전 %(version)s 환영합니다." #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "파일(&F)" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "편집(&E)" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "보기(&V)" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "도움말(&H)" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "내보내기(&E)" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "선택(&S)" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "새로운 보기(&N)" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "다음 뷰어 활성(&A)\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "이전 뷰어 활성(&A)\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "필터(&F)" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "정렬(&S)" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "컬럽(&C)" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "트리옵션(&T)" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "도구상자(&T)" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "상태바 보기/감추기" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "상태바(&B)" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "작업(&T)" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "화면 작업 뷰어 새탭으로 열기" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "분류(&C)" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "화면상 분류 뷰어 새탭으로 열기" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "노력(&E)" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "화면상 노력 뷰어 새탭으로 열기" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "노트(&N)" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "화면상 노트 뷰어 새탭으로 열기" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "숨기기" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "도구모음 감추기" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "작은 이미지" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "작은 이미지(16x16) 도구모음" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "중간크기 이미지" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "중간 이미지(22x22) 도구모음" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "큰 이미지" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "큰 이미지(32x32) 도구모음" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "노력 추적 시작(&S)" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (하위작업)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "우선순위 (&P)" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "페이지" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "지난 작업 %d" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "지난 작업" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "추적중 \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "%d 작업의 노력 추적중" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "%s 열기" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "병합(&M)..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "현재파일과 다른 파일 병합" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "닫기(&C)\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "저장(&S)\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "새이름으로(&a)...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "선택한 작업 서식(&t) 저장" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "선택한 작업 서식으로 저장" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "인쇄될 화명으로 미리보기" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "인쇄 미리보기" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "&HTML 내보내기..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "&CSV 내보내기..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "SyncML서버d와 동기화" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "나가기(&Q)\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "실행 취소(&U)" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "다시 실행(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "복사(&C)\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "붙여넣기(&P)\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "SyncML 설정 편집" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "모두(&A)\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "선택 지우기 (&C)" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "모든 항목 선택하지 않음" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "뷰어이름 바꾸기(&R)..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "선택한 뷰어 이름 바꾸기" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "뷰어의 새로운 이름:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "뷰어 이름 바꾸기" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "컬럼 감추기(&H)" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "선택한 컬럼 감추기" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "모든 항목 펼치기(&E)\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "모든 항목 접기(&C)\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "순차정렬(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "(선택된) 순차정렬이거나 (미선택된)역순정렬 정렬" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "상태우선 정렬(&f)" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "서식에 새 작업 작성" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "체크한 선택한 분류에서 새 작업추가" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "새 하위작업(&s)..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "선택한 작업 완료 표시" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "%s 노력 추적 시작" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "활성화된 작업의 노력 추적 중지" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "체크한 선택한 분류에 새 노트 삽입" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "열린 첨부파일 오류" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "도움말(&H)\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "도움말(&H)\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "도움말" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "팁(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "이 프로그램 팁" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "%s에 대하여(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "%s의 버전과 연락정보" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "라이센스(&L)" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s 라이센스" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "복구(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "이전 상태로 창 복구" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "노력 세부" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "하루 노력" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "한달 노력" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "한주 노력" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "오늘" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "타입" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "제목 정렬" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "제목(&j)" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "설명순 정렬" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "설명 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "노트(&N)" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "노트 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "첨부파일(&A)" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "첨부파일 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "분류: 선택 %d개, 전체 %d개" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "상태: %d개 필터링 됨." #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "기간" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "전체 소요시간" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "전체 수입" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "화요일" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "수요일" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "목요일" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "금요일" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "토요일" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "분류(&C)" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "분류 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "소요시간(&T)" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "소요시간컬럼 보임/감춤" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "수입(&R)" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "수입 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "전체 소요시간(&T)" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "전체 소요시간 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "전체수입 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "일주간 노력" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "일주간일간 소요시간 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "상태: %d 추적" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "제목순 첨부파일 정렬" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "분류순 첨부파일 정렬" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "제목순 노트 정렬" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "설명순 노트 정렬" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "분류순 노트 정렬" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "제목별 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "예상일 정렬" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "예상일(&D)" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "완료일순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "완료일(&C)" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "반복순 정렬" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "반복(&R)" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "예산순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "예산(&B)" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "소요시간순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "남은 예산(&l)" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "남은 예산순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "우선순위순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "시급 비용순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "시급 비용(&H)" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "고정 비용순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "고정 비용(&F)" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "수입순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "알림 시간대순 작업 정렬" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "알림 (&R)" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "제목(&S)" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "분류순 노트 정렬" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "메모: 선택 %d개, 전체 %d개" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "상태: 없음" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "작업: 선택 %d, 보기 %d, 전체 %d" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "작업" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "날짜(&D)" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "모든 날짜관련 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "기간 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "완료일 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "반복컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "모든 예산관련 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "예산컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "남은 예산일 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "재정 (&F)" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "모든 재정관련 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "시급 비용 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "고정 비용 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "첨부파일 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "우선순위 컬럼 보임/감춤" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "새 분류넣기" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "선택한 항목 클립보드로 잘라내기" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "선택한 항목을 클립보드로 복사" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "클립보드로부터 항목 붙여넣기" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "기본 설정 편집" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "실행취소된 마지막 구문 실행" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "현재 모든 항목 선택" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "마지막 구문 실행 취소" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "선택한 작업(들)에 노력기간 추가" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "선택한 작업의 노력 추적" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "현재 파일 닫기" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "나가기 %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "%s 파일 열기" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "현재 파일 저장" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "새로운 이름으로 현재파일 저장" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "이 프로그램에 대한 도움말" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "새 노트 넣기" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "현재 파일 인쇄" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "모든 항목 보기(모든 필터 제외)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "선택한 작업 우선순위 내림" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "선택한 작업 우선순위 올림" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "선택한 작업 최우선권 표시" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "선택한 작업 최하위권 표시" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "새 작업 추가" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "하위항목포함 모든 항목 접기" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "하위항목포함 모든 항목 펼치기" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "다음 열린 뷰어 활성" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "이전 열린 뷰어 활성" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "오늘 새작업" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "내일 새작업" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "%(frequency)d 일 마다" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "%(frequency)d 주 마다" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "%(frequency)d 월 마다" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "%(frequency)d 년 마다" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "다른 모든 날" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "다른 모든 주" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "다른 모든 달" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "다른 모든 년" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "현재" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "소스 %s 의 동기화" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "동기화중. 잠시 기다려주세요.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d 항목 추가.\n" "%d 항목 업데이트.\n" "%d 항목 삭제." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "동기화중 에러 발생.\n" "에러코드: %d; 메세지: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "먼저 Edit/SyncML 의 SyncML 설정을 수정해야합니다." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "모든 파일 (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "필터링할 때 대소문자 구분" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "검색결과중 같은 이름의 모든 하위항목 포함" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "최근 검색" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "검색불가능 뷰어" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "호환성 경고" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "다음부터 이 대화상자 보여주지 않음" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/lt.po000066400000000000000000005145711265347643000156510ustar00rootroot00000000000000# Lithuanian translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:01+0000\n" "Last-Translator: Antanas Budriūnas \n" "Language-Team: Ričardas V. \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: LITHUANIA\n" "Language: \n" "X-Poedit-Language: Lithuanian\n" "X-Poedit-SourceCharset: utf-8\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Klaida" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s bylos klaida" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Prisegti priedą" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopijuoti" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopijuoti „%s“" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Šalinti" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Šalinti „%s“" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Iškirpti" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Iškirpti „%s“" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Įdėti" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Įdėti „%s“" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Nuvilkti" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Nuvilkti „%s“" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Taisyti temą" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Taisyti temą „%s“" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Keisti kategorijas" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nauja kategorija" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nauja pokategorė" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nauja pastaba" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nauja popastabė" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Pridėti pastabą" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nauja užduotis" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nauja įdėtinė užduotis" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Pradėti skaičiuoti darbo laiką" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Nustoti skaičiuoti darbo laiką" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Didžiausia pirmenybė" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Mažiausia pirmenybė" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Padidinti pirmenybę" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Sumažinti pirmenybę" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Klaida išsaugant %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Išsaugojimo klaida" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Atverti priedą" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 valandos" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Parodyti/paslėpti baigtas užduotis" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nauja užduotis..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Apibūdinimas" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Tema" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Pirmenybė" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datos" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Paskirta data" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Užbaigimo data" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Priminimas" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Pasikartojimas" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Eiga" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Baigta procentų" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ne" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Taip" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Ar užbagti užduotį kai visos įdėtinės užduotis baigtos?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Skirta laiko" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Išnaudotas laikas" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Liko laiko" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Valandos kaina" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Numatyta kaina" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Pajamos" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Darbai" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorijos" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Priedai" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Pastabos" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Taisyti užduotį" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Užduotis" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Pradėti" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stabdyti" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Joks" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Kasdieniniai" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Kas mėnesį" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Kas savaitę" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Kasmet" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", kiekvienas" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "diena(os)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "laikotarpis," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "savaitė(ės)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mėnesis(iai)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "metai," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Nutraukti" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Gerai" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Bylos" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Savaime išsaugoti po kiekvieno pakeitimo" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Išsaugoti nustatymus (%s.ini) tam pačiam\n" "kataloge kaip ir programą" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Priedų pagrindinis katalogas" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Prisegant priedą, pabandyti padaryti\n" "jo kelia relative to this one." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Rodyti pristatymo langą programos paleidimo metu" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Rodyti patarimų langą programos paleidimo metu" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Visada" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Niekada" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Ieškoti naujos %(name)s versijos programos paleidimo metu" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Kalba" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Kalba nerasta?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Savybės" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Pirmadienis" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Sekmadienis" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Darbo diena prasideda šią valandą" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Darbo diena pasibaigia šią valandą" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Užbaigti užduoti kai visos įdėtinės užduotys pabaigtos" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Redaktorius" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Priminimo data/laikas" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Pranešti apie naują versija." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Yra nauja %(name)s versija" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s versija %(version)s yra iš" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s bylos (*.tsk)|*.tsk|Nuorašų bylos (*.tsk.bak)|*.tsk.bak|Visos bylos " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar bylos (*.ics)|*.ics|Visos bylos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML bylos (*.html)|*.html|Visos bylos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV bylos (*.csv)|*.csv|Teksto bylos (*.txt)|*.txt|Visos bylos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Atverti" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Įdėtos %(nrtasks)d užduotys iš %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Negalima atidaryti %s nes jo nėra" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Sujungti" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Sujungti %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Neišsaugojot pakeitimų.\n" "Išsaugoti prieš uždarant?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: išsaugoti pakeitimus?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Uždaryti %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Išsaugota %(nrtasks)d užduočių %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Klaida skaitant %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Byla" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "K&eisti" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Rodyti" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "Pagalba" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Eksportuoti" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "Pa&sirinkti" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Naujas langas" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Aktyvuoti kitą langą\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Aktyvuoti ankstesnį langą\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtras" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "Rikiavima&s" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "Stulpeliai" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Medžio nustatymai" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Mygtukų ju&osta" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Užduotis" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Atverti naują kortelę su užduotimis" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "Atverti naują kortelę su užduočių ir darbų laiko skale" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategorija" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Atverti naują kortelę su kategorijomis" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Darbas" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Atverti naują kortelę su darbais" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Atverti naują kortelę su pažymėtos užduoties darbais" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Pastaba" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Atverti naują kortelę su pastabomis" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Keis&ti kategorijas" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Pradėti &skaičiuoti darbo laiką" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (įdėtinės užduotys)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Pirmenybė" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Puslapis" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d užduotys vėluoja" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "viena užduotis vėluoja" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "skaičiuoti %d užduočių darbo laiką" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "Atverti...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Atverti %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Sujungti..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Prijungti prie užduoties užduoti iš šios bylos" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "Užverti\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "Iš&saugoti\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Išs&augot taip...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Spaudinio peržiūra" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Eksportuoti kaip &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Eksportuoti kaip &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Baigti\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "Atša&ukti" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Atstatyti" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Iškirp&ti\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "Kopijuoti\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "Įdėti\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "Visk&as\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Panaikinti visus žymėjimus" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "Pakeisti lango pavadinimą..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Pakeisti pažymėto lango pavadinimą" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nauja lango antraštė:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Pervadinti langą" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Slėpti šį stulpelį" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Slėpti pažymėtus stulpelius" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Išskl&eisti visus\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Rikiuoti didėjančiai (pažymėta) ar mažėjančiai (nepažymėta)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Palyginant tekstus, rikiuojama skiriant (pažymėta) arba neskiriant " "(nepažymėta) didžiųjų raidžių nuo mažųjų" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nauja įdėtinė užduoti&s..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Pabaigti pažymėtą(as) užduotį(is)" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Keisti %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Pradėti skaičiuoti darbo laiką %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Pažymėti darbą meniu ir pradėti skaičiuoti jam darbo laiką" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Baigti skaičiuoti darbo laiką aktyviai(ioms) užduočiai(ims)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Priedo atidarymo klaida" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "Licencija" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licencija" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Darbo detalės" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Darbai per dieną" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Darbai per mėnesį" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Darbai per savaitę" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Rikiuoti pagal temą" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Rikiuoti pagal aprašą" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Pastabos" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Parodyti/paslėpti pastabų stulpelį" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategorijos: %d pažymėtos, %d visos" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Antradienis" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Trečiadienis" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Ketvirtadienis" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Penktadienis" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Šeštadienis" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorijos" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Darbai per savaitės dieną" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Rikiuoti kategorijas pagal temą" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Rikiuoti kategorijas pagal aprašą" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Rūšiuoti pastabas pagal kategoriją" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Rūšiuoti užduotis pagal skirtas datas" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Paskirta &data" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Rūšiuoti užduotis pagal užbaigimo procentus" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "Baigimo &procentai" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Rūšiuoti užduotis pagal sunaudotą laiką" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Rūšiuoti užduotis pagal pirmenybę" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Rūšiuoti pastabas pagal kategoriją" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Pastabos: %d pažymėtos, %d viso" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Užduotys" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Rodyti/paslėpti skirtos datos stulpelį" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Rodyti/slėpti pirmenybės stulpelį" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Įterpti naują kategoriją" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Iškirpti pažymetus iškarpinėn" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopijuoti pažymėta iškarpinėn" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Įdėti pažymėta iškarpinėn" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Taisyti nustatymus" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Atstatyti paskutinę komandą" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Pažymėti viską šioje peržiūroje" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Atšaukti paskutinę komandą" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Pridėti darbo laikotarpį į pažymėtą užduotį(is)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Pradėti skaičiuoti darbo laiką pažymėtai užduočiai(ims)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Užverti šią bylą" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Užverti %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Atverti bylą %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Išsaugoti šią bylą" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Išsaugoti šią bylą kitu pavadinimu" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Įterpti naują pastabą" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Spausdinti šią bylą" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Spaudinio nustatymai" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Sumažinti pažymėtos(ų) užduoties(ių) pirmenybę" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Padidinti pažymėtos(ų) užduoties(ių) pirmenybę" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Nustatyti pažymėtai(oms) užduočiai(ims) aukščiausią pirmenybę" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Nustatyti pažymėtai(oms) užduočiai(ims) žemiausią pirmenybę" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Įterpti naują užduotį" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktyvuoti kitą atvertą langą" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktyvuoti ankstesnį atvertą langą" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Naujai užduočiai skirtas laikas baigiasi šiandien" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Naujai užduočiai skirtas laikas baigiasi rytoj" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Kiekvienai %(frequency)d dienai" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Kiekvienai %(frequency)d savaitei" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Kiekvienam %(frequency)d mėnesiui" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Kiekvieniems %(frequency)d metams" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Kiekviena kita diena" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Kiekviena kita savaitė" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Kiekvienas kitas mėnuo" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Kiekvieni kiti metai" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "dabar" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/lv.po000066400000000000000000005254031265347643000156470ustar00rootroot00000000000000# translation of lv.po to Nederlands # Latvian translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2007. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: lv\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:01+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,502,-1,-1\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Kļūda" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Nav iespējams ielādēt parametrus no TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s faila kļūda" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Pievienot pielikumu" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Jauns pielikums" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopēt" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Dzēst" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Izgriezt" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Ielīmēt" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Vilkt un nomest" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Pievienot kategoriju" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Jauna kategorija" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Jauna apakškategorija" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Jauna piezīme" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Jauna apakšpiezīme" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Pievienot piezīmi" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Jauns uzdevums" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Jauns apakšuzdevums" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Sākt izpildes reģistrēšanu" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Apturēt izpildes reģistrēšanu" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maksimizēt prioritāti" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizēt prioritāti" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Palielināt prioritāti" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Samazināt prioritāti" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Kļūda saglabājot %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Kļūda saglabājot" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Jauns pielikums..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Pievienot jaunu pielikumu" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Atvērt pielikumu" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Atvērt atzīmētos pielikums" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minūtes" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Nesnaust" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minūtes" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minūtes" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minūtes" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minūtes" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 stundas" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minūtes" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 stunda" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 stundas" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 stundas" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 stundas" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 stundas" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 stundas" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 stundas" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 stundas" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 stundas" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 stundas" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 stundas" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Kopā" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Kopā priekš %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Jauna izpilde...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Slēpt &neaktīvos uzdevumus" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Slēpt &aktīvos uzdevumus" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Slēpt &pabeigtos uzdevumus" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Rādīt slēp pabeigtos uzdevumus" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Jauns uzdevums..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Apraksts" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Tēma" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritāte" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Apakškategorijas" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Pārlūkot" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Atrašanās vieta" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Fonts" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datumi" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Termiņš" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Pabeigšanas datums" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Atgādinājums" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Atkārtošanās" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progress" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Pabeigts procentos" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Izmantot programmas noklusētos parametrus" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nē" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Jā" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Atzīmēt uzdevumu kā pabeigtu, kad ir pabeigti visi apakšuzdevumi?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budžets" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Patērētais laiks" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Atlikušais budžets" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Stundas likme" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fiksēta likme" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Ieņēmumi" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Izpilde" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorijas" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Pielikumi" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Piezīmes" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Rediģēt uzdevumu" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Uzdevums" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Sākt" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Apturēt" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Sākt izpildes reģistrēšanu no pēdējā apturētā laika" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Izmantot fontu:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nav" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Katru dienu" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Katru mēnesi" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Katru nedēļu" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Katru gadu" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", katru" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dienas(-as)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periods," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "nedēļa(-as)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mēnesis(-i)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "gads(-i)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Atcelt" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Jūs esat aktivējis sinhronizāciju ar iPhone, kuram ir\n" "nepieciešams Bonjour. Izskatās, ka Bonjour nav\n" "instalēts Jūsu sistēmā." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Labi" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Faili" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Automātiski saglabāt pēc katras izmaiņas" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Saglabāt parametrus (%s.ini) tajā pašā\n" "direktorijā, kur atrodas programma" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Loga izturēšanās" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Rādīt uzplaiksnījuma ekrānu startējot programmu" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Rādīt padomu logu startējot programmu" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Sākt ar samazinātu galveno logu" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Vienmēr" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nekad" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Ja tas bija samazināts pēdējā sesijā" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Pārbaudīt %(name)s jauno versiju startējot programmu" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Slēpt galveno logu, kad logs tiek samazināts" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Aizverot minimizēt galveno logu" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Lai pulkstenis uzdevumu joslā tikšķ, reģistrējot noslodzi" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Valoda" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Valoda nav atrasta?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Iespējas" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Aktivēt SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Aktivēt iPhone sinhronizāciju" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Pirmdiena" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Svētdiena" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Atzīmēt uzdevumu kā pabeigtu, kad pabeigti visi apakšudevumi" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Laiki, kurus piedāvāt atlikšanai uzdevumu atgādināšanas logā" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour servisa nosaukums" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Redaktors" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Pārbaudīt pareizrakstību redaktoros" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Datuma/laika atgādinājums" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Atlikt" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Atzīmēt uzdevumu kā pabeigtu" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML servera URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Lietotāja nosaukums/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Aktivēt uzdevumu sinhronizāciju" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Uzdevumu datu bāzes nosaukums" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Aktivēt piezīmju sinhronizāciju" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Piezīmju datu bāzes nosaukums" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Informēt mani par jaunām versijām." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Pieejama jauna %(name)s versija" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s versija %(version)s ir pieejama adresē" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Brīdinājums" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s faili (*.tsk)|*.tsk|Rezerves kopiju faili (*.tsk.bak)|*.tsk.bak|Visi " "faili (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar faili (*.ics)|*.ics|Visi faili (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML faili (*.html)|*.html|Visi faili (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV faili (*.csv)|*.csv|Teksta faili (*.txt)|*.txt|Visi faili (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Atvērt" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Ielādēti %(nrtasks)d uzdevumi no %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Apvienot" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s apvienoti" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sinhronizācij pabeigta" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Sinhronizācijas statuss" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Jums ir izmaiņas, kas nav saglabātas.\n" "Vai saglabāt pirms aizvēršanas?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: saglabāt izmaiņas?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s aizvērts" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Saglabāti %(nrtasks)d uzdevumi failā %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Kļūda nolasot %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sinhronizācija ar %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Laipni lūdzam %(name)s versijā %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Sinhronizācijas tips" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fails" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Rediģēt" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Skats" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Palīdzība" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Eksportēt" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Atzīmēt" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Jauns skats" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Aktivēt nākošo skatu\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Aktivēt &iepriekšējo skatu\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtrēt" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Kārtot" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolonnas" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Koka opcijas" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Rīkjosla" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Rādīt/slēpt stāvokļa joslu" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Stāvokļa josla" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Uzdevums" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Atvērt jaunu cilni skatam, kas parāda uzdevumus" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "&Uzdevumu laukuma plāns" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Atvērt jaunu cilni skatam, kas parāda uzdevuma laukuma plānu" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategorija" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Atvērt jaunu cilni skatam, kas parāda kategorijas" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Izpilde" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Atvērt jaunu cilni skatam, kas parāda izpildes" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Atvērt jaunu cilni skatam, kas parāda atzīmētā uzdevuma izpildes" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Piezīme" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Atvērt jaunu cilni skatam, kas parāda piez'imes" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Slēpt" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Slēpt rīkjoslu" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Mazi attēli" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "mazi attēli (16x16) rīkjoslā" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Vidēja lieluma attēli" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Vidēja lieluma (22x22) attēli rīkjoslā" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Lieli attēli" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Lieli attēli (32x32) rīkjoslā" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Pievienot kategoriju" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Sākt izpildes reģistrēšanu" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (apakškategorijas)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (apakšuzdevumi)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioritāte" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Lapa" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Atgādinājums" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d uzdevumi nokavēti" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "viens uzdevums nokavēts" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d uzdeviemiem drīz beigsies termiņš" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "vienam uzdevumam drīz beigsies termiņš" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "izpildes reģisrēšana \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "izpildes reģistrēšana %d uzdevumiem" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Atvērt...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Atvērt %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Apvienot..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Apvienot uzdevumus no cita faila ar pašreizējo failu" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Aizvērt\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Saglabāt\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Saglabāt &kā...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Saglabāt atzīmēto uzdevumu kā &veidni" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Saglabāt atzīmēto uzdevumu kā uzdevumu veidni" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Ļauj palūkoties, kā izskatīsies izdruka" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Drukāšanas priekšskatījums" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Eksportēt kā &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Eksportēt kā &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Eksportēt kā iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Sinhronizēt ar SyncML serveri" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Aizvērt\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Atsaukt" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Atcelt atsaukšanu" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Izgriez&t\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopēt\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Ielīmēt\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Rediģēt SyncML uzstādījumus" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Visi\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Novākt atlasi" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Pārdēvēt skatu..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Pārdēvēt atzīmēto skatu" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Jauns nosaukums skatam:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Pārdēvēt skatu" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Slēpt kolonnu" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Slēpt atzīmēto kolonnu" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Izvērst visas vienības\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Savērst visas vienības\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Augošā secībā" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Kārtot &vispirms pēc statusa" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Kārtot uzdevumus vispirms pēc statusa (aktīvs/neaktīvs/pabeigts)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "&Slēpt kompozītus uzdevumus" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Rādīt/slēpt uzdevumus ar apakšuzdevumiem saraksta režīmā" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Izveidot jaunu uzdevumu no veidnes" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Pievienot jaunu uzdevumu ar atzīmētajām kategorijām" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Jauns apakšuzdevums..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Atzīmēt izvēlēto(-os) uzdevumu(-us) kā pabeigtus" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Pievienot %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Nevar nosūtīt epastu:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s sūtīt klūdu pa epastu" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Nav tēmas)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Sākt %s izpildes reģistrēšanu" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Apturēt izpildes reģistrēšanu aktīvajam(-iem) uzdevumam(-iem)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Pievienot jaunu piezīmi ar atzīmētajām kategorijām" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Kļūda atverot pielikumu" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Palīdzības saturs\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Palīdzības saturs\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Palīdziba" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Padomi" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Padomi par programmu" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Par %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versija un kontaktinformācija par %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licence" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licence" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Atjaunot" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Izpildes detaļas" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Izpilde par dienu" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Izpilde par mēnesi" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Izpilde par nedēļu" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Šodien" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tips" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Kārtot pāc tēmas" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Tēma" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Kārtot pēc aprakstiem" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Apraksts" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Rādīt/slēpt apraksta kolonnu" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Piezīmes" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Rādīt/slēpt piezīmju kolonnu" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Pielikumi" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Rādīt/slēpt pielikumu kolonnu" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kateorijas: %d atzīmētas, %d kopā" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periods" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Kopējais patērētais laiks" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Kopējie ieņēmumi" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Otrdiena" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Trešdiena" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Ceturtdiena" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Piektdiena" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sestdiena" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorijas" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Rādīt/slēpt kategoriju kolonnu" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Patērētais laiks" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Rādīt/slēpt patērētā laika kolonnu" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Ieņēmumi" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Rādīt/slēpt ieņēmumu kolonnu" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Kopējais patērētais laiks" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Rādīt/slēpt kopējā pātērētā laika kolonnu" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Rādīt/slēpt kopējo ieņēmumu kolonnu" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Izpilde par darbdienu" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Rādīt/slēpt darbdienā patērētā laika kolonnas" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d izpildes reģistrēšana" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Kārtot kategorijas pēc tēmām" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Kārtot kategorijas pēc aprakstiem" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Kārtot pielikumus pēc tēmam" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Kārtot pilikumus pēc aprakstiem" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Kārtot pielikumus pēc kategorijām" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Kārtot piezīmes pa tēmām" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Kārtot piezīmes pēc aprakstiem" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Kārtot piezīmes pēc kategorijām" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Kārtot uzdevumus pēc tēmām" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Kārtot uzdevumus pēc aprakstiem" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Kārtot uzdevumus pēc kategorijām" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Kārtot uzdevumus pēc termiņa" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Termiņš" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Kārtot uzdevumus pēc pabeigšanas datuma" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Pabeigšanas datums" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Kārtot uzdevumus pēc pabeigtiem procentiem" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Pabeigts procentos" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Kārtot uzdevumus pēc atkārtošanās" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Atkārtošanās" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Kārtot uzdevumus pēc budžeta" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budžets" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Kārtot uzdevumus pēc patērētā laika" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "&Atlikušais budžets" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Kārtot uzdevumus pēc atlikušā budžeta" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Kārtot uzdevumus pēc prioritātes" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Kārtot uzdevumus pēc stundas likmes" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Stundas likme" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Kārtot uzdevumus pēc fiksētās likmes" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fiksēta likme" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Kārtot uzdevumus pēc ieņēmumiem" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Kārtot uzdevumus pēc datuma un laika atgādinājuma" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Atgādinājums" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Tēma" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Kārtot piezīmes pēc kategorijām" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Piezīmes: %d atzīmētas, %d kopā" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Statuss: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Uzdevumi: %d atzīmēti, %d redzami, %d kopā" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Uzdevumi" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Tagad" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Uzdevuma laukuma karte" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% pabeigti" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Datumi" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Rādīt/slēpt visus ar datumiem saistītās kolonnas" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Rādīt/slēpt termiņa kolonnu" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Rādīt/slēpt pabeigšanas datuma kolonnu" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Rādīt/slēpt atkārtošanās kolonnu" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Rādīt/slēpt visus ar budžetu saistītās kolonnas" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Rādīt/slēpt budžeta kolonnu" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Rādīt/slēpt atlikušā budžeta kolonnu" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finansu" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Rādīt/slēpt visus ar finansēm saistītās kolonnas" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Rādīt/slēpt stundas likmes kolonnu" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Rādīt/slēpt fiksētās likmes kolonnu" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Rādīt/slēpt pabeigto procentu kolonnu" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Rādīt/slēpt pielikuma kolonnu" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Rādīt/slēpt prioritātes kolonnu" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Rādīt/slēpt atgādinājuma kolonnu" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Pievienot jaunu kategoriju" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Izgriezt atzīmēto(-ās) vienību(-as) no starpliktuves" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopēt atzīmēto(-ās) vienību(-as) no starpliktuves" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Ielīmēt vienību(-as) no starpliktuves" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Rediģēt uzstādījumus" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Atkārtot pēdējo atsaukto komandu" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Atcelt pēdējo komandu" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Pievienot izpildes periodu izvēlētajam(-iem) uzdevumam(-iem)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Sākt izpildes reģistrēšanu atzīmētajam(-iem) uzdevumam(-iem)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Aizvērt pašreizējo failu" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Iziet %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Atvērt %s failu" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Saglabāt pašreizējo failu" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Saglabāt pašreizējo failu ar jaunu nosaukumu" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Palīdzība par programmu" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Pievienot jaunu piezīmi" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Drukāt pašreizējo failu" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Norādīt izdrukas lapas raksturlielumus" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Rādīt visas vienības (atcelt visus filtrus)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Samazināt atzīmētā(-o) uzdevuma(-u) prioritāti" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Palielināt prioritāti atzīmētajam(-iem) uzdevumam(-iem)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Pievienot jaunu uzdevumu" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Savērst visas vienības ar apakšvienībām" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Izvērst visas vienības ar apakšvienībām" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktivēt nākošo atvērto skatu" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktivēt iepriekšējo atvērto skatu" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Jauns uzdevums ar termiņu līdz šodienai" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Jauns uzdevums ar termiņu līdz rītdienai" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Katras %(frequency)d dienas" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Katras %(frequency)d nedēļas" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Katrus %(frequency)d mēnešus" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Katrus %(frequency)d gadus" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Katru otro dienu" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Katru otro nedēļu" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Katru otro mēnesi" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Katru otro gadu" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "tagad" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Sinhronizācija no avota %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sinhronizācija" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Sinhronizēju. Lūdzu uzgaidiet.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d vienības pievienotas.\n" "%d vienības atjaunotas.\n" "%d vienības izdzēstas." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Drukāšanas priekšskatījums" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Aizvērt" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Aivērt visu" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Nākošo" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Iepriekšējo" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Logs" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Visi faili (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Meklēt gan tēmu, gan aprakstu" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Vairāk nerādīt šo dialoglogu." #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/make.py000066400000000000000000000042441265347643000161500ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import glob, shutil, sys, os, urllib, tarfile, glob projectRoot = os.path.abspath('..') if projectRoot not in sys.path: sys.path.insert(0, projectRoot) from taskcoachlib.i18n import po2dict def downloadTranslations(url): def po_files(members): for member in members: if os.path.splitext(member.name)[1] == ".po": yield member filename, info = urllib.urlretrieve(url) tarFile = tarfile.open(filename, 'r:gz') folder = [member for member in tarFile if member.isdir()][0].name tarFile.extractall(members=po_files(tarFile)) tarFile.close() os.remove(filename) for poFile in glob.glob('*.po'): newPoFile = os.path.join(folder, 'i18n.in-%s'%poFile) shutil.copy(newPoFile, poFile) print 'Updating', poFile shutil.rmtree(folder) def downloadTranslation(url): # http://launchpadlibrarian.net/70943850/i18n.in_i18n.in-nl.po filename, info = urllib.urlretrieve(url) shutil.move(filename, url.split('-')[1]) def createPoDicts(): for poFile in sorted(glob.glob('*.po')): print 'Creating python dictionary from', poFile pyFile = po2dict.make(poFile) shutil.move(pyFile, '../taskcoachlib/i18n/%s'%pyFile) if __name__ == '__main__': if len(sys.argv) == 2: url = sys.argv[1] if url.endswith('.po'): downloadTranslation(url) else: downloadTranslations(url) else: createPoDicts() taskcoach-1.4.3/i18n.in/mn.po000066400000000000000000005250731265347643000156430ustar00rootroot00000000000000# Mongolian translation for taskcoach # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:02+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Mongolian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: mn\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Алдаа" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "TaskCoach.ini-ээс тохиргоог унших боломжгүй байна:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s файлын алдаа" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Хавсралт нэмэх" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Шинэ хавсралт" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Хуулах" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Устгах" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Тасдах" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Буулгах" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Чирч зөөх" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Ангилалыг сэлгэх" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Шинэ ангилал" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Шинэ дэд ангилал" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Шинэ тэмдэглэгээ" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Шинэ дэд тэмдэглэгээ" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Тэмдэглэгээ нэмэх" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Шинэ даалгавар" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Шинэ дэд даалгавар" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Мөшгиж эхлэх" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Мөшгилт зогсоох" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Чухалчлалыг хамгийн өндөр болгох" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Чухалчлалыг хамгийн бага болгох" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Чухалчлалыг нэмэх" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Чухалчлал бууруулах" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "%s.ini-ийг хадгалж байхад алдаа гарлаа:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Хадгалах алдаа" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Шинэ хавсралт..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Шинэ хавсралт оруулах" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Хавсралтыг нээх" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Сонгосон хавсралтуудыг нээх" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Бүү хүлээлгэ" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 цаг" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Нийт" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "%s-ийн нийт" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Шинэ даалгавар..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Тайлбар" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Сэдэв" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Чухалчлал" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Дэд ангилалууд" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Хөтлөх" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Байршил" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Огноо" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Тулсан огноо" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Хийж дуусгасан огноо" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Сануулга" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Давталт" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Явц" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Биелэлтийн хувь" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Програм даяарх тохиргоог хэрэглэх" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "&Үгүй" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Тийм" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Бүх дэд даалгаварууд нь биелэлэхэд даалгаварыг биелэсэнд тооцох уу?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Төсөв" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Зарцуулсан хугацаа" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Үлдсэн төсөв" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Цагийн төлбөр" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Тогтмол төлбөр" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Орлого" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Хөдөлмөрлөлт" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Ангилалууд" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Хавсралтууд" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Тэмдэглэлүүд" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Даалгаварыг өөрчлөх" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Даалгавар" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Эхлэх" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Зогсох" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Хамгийн сүүлд зогссонгоо үргэлжлүүлэн мөрдөж эхлэх" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Хоосон" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Өдөр тутмын" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Сар тутмын" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Долоо тутмын" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Жил тутмын" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "огноог долоо хоногийн ижил өдөр байлгах" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", бүх" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "өдөр," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "үе," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "долоо хоног," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "сар," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "жил," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "iPhone эсвэл iPod Touch төхөөрмжүүдийн\n" "нэг нь анх удаа энэ даалгаварын файлтай\n" "мэдээлэл зэрэгцүүлэх гэж байна.\n" "Та ямар төрлийн зэрэгцүүлэлт хийх вэ?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Компьютерээс сэргээх" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Төхөөрөмжөөс сэргээх" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Цуцлах" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Та Bonjour-ийг шаарддаг iPhone зэрэгцүүлэлт үйлдлийг идэвхжүүллээ.\n" "Таны системд Bonjour суугаагүй бололтой." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Windows-т зориулсан Bonjour-ийг татаж аваад суулгана уу.\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple-ийн вэб сайтаас татах" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Linux-ийн Bonjour-ийн дэмжлэгийг \n" "Avahi үзүүлдэг." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Та өөрийн тархалтдаа тохирох нарийвчлалыг эндээс олж болох юм" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Зарим системүүдэд (Fedora) та Avahi-ийг суулгасан ч \n" "гэсэн нэмж avahi-compat-libdns_sd багцыг суулгах \n" "шаардлагатай байж магадгүй" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Нэмж хэлэхэд, файрвол хэрэглэж байгаа бол 4096-4100 портууд нээлтэй байгаа " "эсэхийг шалгаарай" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Файлууд" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Өөрчлөлт гарах бүрт автоматаар хадгалж байх" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Тохиргоог (%s.ini) програмтай \n" "ижил хавтсанд хадгалж байх" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Хавсралтын үндсэн хавтас" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Хавсралт нэмж байхад замыг нь \n" "үүнтэй хамааралтай байлгахыг хичээх." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Цонхны байдал" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Эхлэхэд нь эхлэл дэлгэц харуулах" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Эхлэхэд зөвлөгөө харуулах" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Гол цонхыг жижигрүүлж эхлэх" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Үргэлж" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Хэзээч үгүй" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Хэрэв сүүлийн ачаалалтанд жижигрүүлсэн байсан бол" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Эхлэхэд %(name)s шинэ хувилбарыг шалгах" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Үндсэн цонхыг жижигрүүлэхэд нь нуух" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Цонхыг хаахад жижигрүүл" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Хөдөлмөрлөлт бүртгэлийн үед ажлын мөрөн дэх цагийг өргөн болго" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Хэл" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Хэл олдсонгүй?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Чанарууд" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "SyncML-ийн идэвхжүүлэх" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "iPhone-той зэрэгцүүлэхийг идэвхжүүлэх" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Даваа" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Ням" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Ажлын өдөр эхлэх цаг" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Ажлын өдөр дуусах цаг" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Дээгүүр нь очиход тайлбар \n" "бүхий жижиг цонх харуулах" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Дэд даалгаварууд биелэхэд үндсэн даалгаварыг биелэсэн гэх" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "iPhone-той зэрэгцүүлэх нууц үг" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour сервисийн нэр" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Биелэсэн даалгаваруудыг төхөөрөмжинд ачаалах" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Засварлагч" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Засварлагчид үг, үсгийн алдаа засах" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Сануулах огноо/цаг" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Хүлээлгэ" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML серверийн URL хаяг" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Хэрэглэгчийн нэр/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Даалгавар зэрэгцүүлэлтийг идэвхжүүлэх" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Даалгаврын өгөгдлийн сангийн нэр" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Хоёр тийш нь" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Удаан" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Клиентээс нэг чиглэлд" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Клиентээс сэргээх" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Cерверээс нэг чиглэлд" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Серверээс сэргээх" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Тэмдэглэл зэрэгцүүлэлтийг идэвхжүүл" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Тэмдэглэлийн өгөгдлийн сангийн нэр" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Хандалт" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Шинэ хувилбарыг надад мэдэгд" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "%(name)s-ийн шинэ хувилбар байна" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s-ийн %(version)s хувилбар байна -аас" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Анхааруулга" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s файл (*.tsk)|*.tsk|Нөөц файл (*.tsk.bak)|*.tsk.bak|Бүх файл (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar файл (*.ics)|*.ics|Бүх файл (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML файл (*.html)|*.html|Бүх файл (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV файл (*.csv)|*.csv|Текст файл(*.txt)|*.txt|Бүх файл(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Нээх" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(filename)s-аас %(nrtasks)d даалгавар ачааллаа" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "%s-г байхгүй байгаа учраас нээж чадахгүй байна" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Нэгтгэх" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "%(filename)s файл түгжигдсэн\n" "тул нээж чадахгүй." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Нэгтгэгдсэн %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "%s хадгалж чадахгүй\n" "Өөр ачаалалтаар түгжигдсан %s байна.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Хадгалж чадахгүй %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s загвар файлууд (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(filename)s руу %(count)d ширхэг бичлэг экспортлогдлоо" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Зэрэгцүүлэлт дууслаа" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Зэрэгцүүлэлтийн төлөв" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Хадгалагдаагүй өөрчлөлтүүд байна.\n" "Хаахаасаа өмнө хадгалах уу?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: өөрчлөлтийг хадгалах уу?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: файл түгжигдсэн" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "%s-ийн байрлалд түгжилт дэмжигддэггүй тул \n" "түгжиж чадахгүй байна.\n" "Түгжихгүйгээр нээх үү %s?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s хаагдсан" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(filename)s-д %(nrtasks)d даалгавар хадгалагдлаа" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "%(filename)s файлыг нээж чадахгүй байна\n" "Учир нь энэ файлыг %(name)s-ийн шинэ хувилбараар үүсгэсэн.\n" "Та %(name)s-г шинэчлэнэ үү!" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "%s-г уншихад алдаа гарлаа:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "%s-тай зэрэгцүүлэлт..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "%(name)s-ийн %(version)s хувилбарт тавтай морилно уу" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Зэрэгцүүлэлтийн төрөл" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Файл" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Засварлах" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Харах" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Тусламж" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Экспортлох" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Сонгох" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Шинэ харагч" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Дараагийн харагдацыг идэвхжүүлэх\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "&Өмнөх харагдацыг идэвхжүүлэх\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Шүүлт" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Эрэмбэлэх" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Баганууд" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Модны сонголтууд" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Хэрэгслүүд" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Төлвийн мөр ил/далд" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Төлвийн мөр" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Даалгавар" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Даалгаваруудыг харуулах шинэ самбар нээх" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Цагийн шугам" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Ангилал" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Ангилалуудыг харуулах шинэ самбар нээх" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Хөдөлмөр" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Хөдөлмөрлөлтийг харуулах шинэ самбар нээх" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Тэмдэглэл" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Тэмдэглэлүүдийг харуулах шинэ самбар нээх" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Далдлах" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Хэрэгслүүдийг далдлах" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Жижиг зургууд" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Хэрэгслүүдэд жижиг зураг (16x16)" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Дунд хэмжээтэй зургууд" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Хэрэгслүүдэд дунд хэмжээний зураг (22x22)" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Том зургууд" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Хэрэгслүүдэд том зураг (32x32)" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Ангилал сэлгэх" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (дэд даалгавар)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Чухалчлал" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Хуудас" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "%s нээх" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Нэгтгэх..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Хадгалах\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Хэвлэхээр тольдох" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Буцаа" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Дахин хий" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Буулгах\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "SyncML тохиргоо өөрчлөх" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "Сонголтыг &цэвэрлэх" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "Энэ баганыг &далдлах" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Сонгосон баганыг далдлах" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Өсөхөөр" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Шинэ &дэд даалгавар..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Сонгосон даалгавруудыг биелэсэн болго" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Тусламж" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Лиценз" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s лиценз" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Сэргээх" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Өнөөдөр" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Төрөл" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Үе" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Мягмар" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Лхагва" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Пүрэв" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Баасан" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Бямба" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Орлого" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Д&уусах огноо" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Биелэсэн огноо" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "Биелэлтийн &хувь" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Төсөв" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Ү&лдсэн төсөв" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Цагийн төлбөр" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Тогтмол төлбөр" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Сануурга" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Сэдэв" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Төлөв: т/гүй" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Даалгаврууд: сонгогдсон %d, ил %d, биелэсэн %d" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Даалгаврууд" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Одоо" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Шинэ ангилал оруулах" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Тохиргоо өөрчлөх" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Сонгосон даалгавар(ууд)т хөдөлмөрлөлтийн шинэ үе оруулах" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Идэвхтэй файлыг хаах" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Идэвхитэй файлыг хадгалах" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Шинэ тэмдэглэгээ оруулах" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Идэвхитэй файлыг хэвлэх" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Шинэ даалгавар оруулах" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Дараагийн нээлттэй харагчийг идэвхжүүлэх" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Өмнөх нээлттэй харагдацыг идэвхжүүлэх" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "одоо" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/mr.po000066400000000000000000005012071265347643000156400ustar00rootroot00000000000000# Marathi translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-02-20 15:48+0000\n" "Last-Translator: Wishwas \n" "Language-Team: Marathi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: mr\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "प्रतिलिपी" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "काढून टाका" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "कापा" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "चिटकवा" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "ओढा आणि सोडा" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "नवीन वर्ग" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "नवीन अंतरवर्ग" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "उपनोंद जोडा" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "" #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/nb.po000066400000000000000000005330501265347643000156220ustar00rootroot00000000000000# translation of nb.po to Nederlands # Norwegian Bokmal translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # # Amund Amundsen , 2008. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: nb\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:03+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: NORWAY\n" "Language: \n" "X-Poedit-Language: Norwegian Bokmal\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Feil" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Feil ved henting av oppsett fra TaskCoach.ini\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Filfeil: %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Legg til vedlegg" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nytt vedlegg" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopier" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Slett" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Klipp ut" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Lim inn" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Dra og slipp" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Bytt kategori" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Ny kategori" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Ny underkategori" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nytt notat" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nytt undernotat" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Legg til notat" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Ny oppgave" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Ny underoppgave" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Start timeregistrering" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stopp timeregistrering" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Sett høyeste prioritet" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Sett laveste prioritet" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Øk prioritet" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Reduser prioritet" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Det oppsto en feil ved lagring av %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Feil ved lagring" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nytt vedlegg..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Legg til et nytt vedlegg" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Åpne vedlegg" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Åpne de valgte vedleggene" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Ikke utsett varsling" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 timer" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Sum" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Sum av %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Vis eller skjul avsluttede oppgaver" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Ny oppgave..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Bok" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Bøker" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Kake" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Kalkulator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Beskrivelse" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Emne" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritet" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Bla gjennom" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Plassering" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datoer" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Forfallsdato" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Ferdigstillingsdato" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Påminnelse" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Gjentakelse" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Bruk oppsett for hele applikasjonen" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nei" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ja" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Skal oppgave merkes som fullført når alle underoppgaver er fullført?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budsjett" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Brukt tid" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Ubenyttet budsjettbeløp" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Timesats" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fast beløp" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Fortjeneste" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Timeregistrering" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorier" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Vedlegg" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notater" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Rediger oppgave" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Oppgave" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stopp" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Start timeregistrering fra forrige registrerings slutt" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Ingen" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Daglig" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Månedlig" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Ukentlig" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Årlig" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "behold datoer på samme ukedag" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", hver" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dag(er)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periode," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "uke(r)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "måned(er)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "år" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Oppdater fra skrivebord" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Oppdater fra enhet" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Avbryt" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Du har aktivert synkronisering med iPhone. Dette\n" "krever at Bonjour er installert. Task Coach kan ikke\n" "finne Bonjour på denne maskinen." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Du kan laste ned og installere Bonjour for Windows fra\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apples nettsted" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "Avahi støtter Bonjour i Linux." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Filer" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Automatisk lagring etter hver endring" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Lagre innstillinger (%s.ini) i samme\n" "mappe som progammet er installert i." #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Rotmappe for vedlegg" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Prøv å lagre vedlegg med\n" "filsti relativ til denne." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Vindusoppførsel" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Vis intro-bilde på skjermen ved oppstart" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Vis programtips ved oppstart" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Start med programmet minimert" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Alltid" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Aldri" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Når det var minimert sist gang programmet kjørte" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Se etter ny versjon av %(name)s ved oppstart" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Skjul hovedvindu ved minimering til oppgavelinjen" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimer hovedvindu til oppgavelinjen ved lukking" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Vis klokken på oppgavelinjen mens tid registreres" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Språk" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Språket ble ikke funnet" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funksjoner" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Aktiver SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "mandag" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "søndag" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Arbeidstidsstart" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Arbeidstidslutt" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Vis popup med beskrivelse av et element\n" "når musen beveges over det" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Merk overordnet oppgave som avsluttet når alle underoppgaver er avsluttet" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Passord for synkronisering med iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Servicenavn for Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Tekstredigering" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Kontroller staving i tekstfelt" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Påminnelse dato/klokkeslett" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Utsett varsling" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "Server-URL for SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Brukernavn/-id" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Start synkronisasjonsoppgave" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Databasenavn for oppgaver" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Toveis" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Langsom" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Enveis fra klient" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Oppdater fra klient" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Enveis fra server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Oppdater fra server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Aktiver synkronisering av notater" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Databasenavn for notater" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Tilgang" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Gi meg beskjed om nye versjoner" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Ny versjon av %(name)s er tilgjengelig" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Versjon %(version)s av %(name)s er tilgjengelig fra" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Advarsel" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s filer (*.tsk)|*.tsk|Sikkerhetskopifiler (*.tsk.bak)|*.tsk.bak|Alle filer " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar-filer (*.ics)|*.ics|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML-filer (*.html)|*.html|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV-filer (*.csv)|*.csv|Tekstfiler (*.txt)|*.txt|Alle filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Åpne" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Hentet %(nrtasks)d oppgave(r) fra %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Kan ikke åpne %s fordi den ikke eksisterer" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Slå sammen" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Kan ikke åpne %(filename)s\n" "fordi filen er låst." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Satt inn %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Kan ikke lagre %s\n" "Filen er låst av en annen instans av %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Kunne ikke lagre %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s mal-fil (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Eksportert %(count)d enheter til %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Ferdig synkronisert" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Status for synkronisering" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Du har ulagrede endringer.\n" "Lagre før avslutning?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: Lagre endringer?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: filen er låst" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Låsing er ikke mulig på enheten\n" "der %s er lagret.\n" "Vil du åpne %s uten låsing?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Lukket %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Lagret %(nrtasks)d oppgaver i %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Kan ikke åpne %(filename)s\n" "fordi filen er opprettet av en nyere versjon av %(name)s.\n" "Vennligst oppgrader %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Feil ved lesing i %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Snkroniserer med %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Velkommen til %(name)s versjon %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synkroniseringstype" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fil" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Rediger" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Vis" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Hjelp" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Eksport" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Velg" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Ny visning" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "Gå til &neste åpne visning\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Gå til forrige å&pne visning\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortér" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "Kolonner" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Tre-innstillinger" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Verktøylinje" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Vis eller skjul statuslinjen" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Status&linje" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Oppgave" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Åpne en ny fane med visning av oppgaver" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Oppgaver i rutenett" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Åpne nytt vindu for visning av oppgaver i rutenett" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&idslinje" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Åpner en ny fane med visning av tidslinje for oppgaver og timeregistreringer" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategori" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Åpne en ny fane med visning av kategorier" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "Tim&eregistrering" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Åpne ny fane for visning av timeregistreringer" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Åpne ny fane med visning av timeregistreringer for den valgte oppgaven" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notat" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Åpne en ny fane med visning av notater" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "Skj&ul" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Skjul verktøylinjen" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Små ikoner" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Små ikoner (16x16) på verktøylinjen" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Mellomstore ikoner" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Mellomstore ikoner (22x22) på verktøylinjen" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "S&tore ikoner" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Små ikoner (32x32) på verktøylinjen" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "By&tt kategori" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Start timeregistrering" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (underkategorier)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (underoppgaver)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioritet" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Side" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d forfalte oppgaver" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "en forfalt oppgave" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "søker \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "registrerer tidsforbruk for %d oppgaver" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Åpne...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Åpne %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "Slå sa&mmen ..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Slå sammen oppgaver fra en annen fil med den aktive" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Lukk\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Lagre\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "L&agre som...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Lagre valgt oppgave som &mal" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Lagre valgt oppgave som oppgavemal" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Slettede elementer kan ikke fjernes.\n" "Hvis du aktiverer SyncML igjen\n" "mot samme server senere, vil\n" "disse elementene sannsynligvis\n" "duke opp igjen.\n" "\n" "Vil du fortsatt fjerne dem?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Viser hvordan en utskrift vil se ut" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Forhåndsvisning" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Eksporter som &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Eksporter som &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synkroniser med en SyncML-server" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Avslutt\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Angre" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Gjør på ny" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Klipp &ut\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopier\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Lim inn\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Endre oppsett for SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Alle\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Nullstill utvalg" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Velg ingen" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Omdøp visning..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Gi nytt navn til den valgte visningen" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Ny tittel for visningen:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Gi nytt navn til visning" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Skjul denne kolonnen" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Skjul den valgte kolonnen" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Utvid all&e noder\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Minimer alle elementer\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Stigende" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sorter stigende (avkrysset) eller synkende (ikke avkrysset)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Sortering av tekst tar hensyn til store/små bokstaver (avkrysset) eller " "ignorerer store/små bokstaver (ikke avkrysset)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Sortér etter status &først" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sorter oppgaver etter status (aktiv/inaktiv/avsluttet) først" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Vis eller skjul oppgaver med underoppgaver i listemodus" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Velg ny oppgave fra malfil" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Sett inn ny oppgave som valgt kategori" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Ny &underoppgave..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Merk de(n) valgte oppgaven(e) som avsluttet" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Bytt %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Kunne ikke sende epost:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s feil ved epost" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Ingen emner)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Start timeregistrering for %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Velg en oppgave fra menyen og start timeregistrering for den" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Stopp timeregistrering for de(n) aktive oppgaven(e)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Sett inn nytt notat med valgte kategorier avmerket" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Feil ved åpning av vedlegg" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Hjelpemeny\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Innhold i &hjelp\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Hjelp" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tips" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Programtips" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Om %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versjon og kontaktinformasjon for %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Lisens" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s-lisens" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "Gjenopp&rett" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Gjenopprett vinduet slik det var" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Tidsforbruksdetaljer" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Timeregistreringer pr. dag" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Timeregistreringer pr. måned" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Timeregistreringer pr. uke" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filter på valgte kategorier" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrer på merkede kategorier" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "I &dag" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatisk kolonnebredde" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "Hvis valgt vil kolonner automatisk fylle tilgjengelig plass" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Type" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sorter etter emne" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Emne" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sorter etter beskrivelse" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Beskrivelse" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Vis eller skjul kolonne for beskrivelse" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notater" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Vis eller skjul notatkolonne" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Vedlegg" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Vis eller skjul kolonne for vedlegg" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategorier: %d valgt(e), %d totalt" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtrerte" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periode" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Sum av timeforbruk" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Sum av fortjeneste" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "tirsdag" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "onsdag" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "torsdag" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "fredag" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "lørdag" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorier" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Vis eller skjul kolonne for kategorier" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Tid brukt" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Vis eller skjul kolonne for tidsforbruk" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Fortjeneste" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Vis eller skjul kolonne med fortjeneste" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Total tid brukt" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Vis eller skjul total kolonne for brukt tid" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Vis eller skjul kolonne med sum av fortjeneste" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Timer pr. ukedag" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Vis eller skjul kolonner for brukt tid pr. ukedag" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d registreres nå" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sorter vedlegg etter emne" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sorter vedlegg etter beskrivelse" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sorter vedlegg etter kategori" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sorter notater etter emne" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sorter notater etter beskrivelse" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sorter notater etter kategori" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sorter oppgaver etter emne" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sorter oppgaver etter forfallsdato" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Forfalls&dato" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sorter oppgaver etter avsluttetdato" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Avsluttetdato" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sorter oppgaver etter gjentakelse" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Gjentakelse" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sorter oppgaver etter budsjett" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budsjett" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sorter oppgaver etter tidsforbruk" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "&Gjenværende budsjett" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sorter oppgaver etter gjenstående budsjett" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sorter oppgaver etter prioritet" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sorter oppgaver etter timesats" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Timesats" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sorter oppgaver etter fastpris" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fastbeløp" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sorter oppgaver etter fortjeneste" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sorter oppgaver etter påminnelsestid" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Påminnelse" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "Emne" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sorter notater etter etter kategori" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notater: %d valgte, %d totalt" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Oppgaver: %d valgt(e), %d vises, %d totalt" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Oppgaver" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Tidslinje" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Nå" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Oversiktskart for oppgaver" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Datoer" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Vis eller skjul alle datokolonner" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Vis eller skjul kolonne for forfallsdato" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Vis eller skjul kolonne for avslutningsdato" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Vis eller skjul kolonne for gjentakelse" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Vis eller skjul alle budsjettkolonner" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Vis eller skjul kolonne for budsjett" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Vis eller skjul kolonne for gjenværende budsjett" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Økonomisk" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Vis eller skjul alle økonomirelaterte kolonner" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Vis eller skjul kolonne med timesats" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Vis eller skjul kolonne med fast beløp" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Vis eller skjul kolonne for vedlegg" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Vis eller skjul kolonne med prioritet" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Vis eller skjul kolonne for påminnelse" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versjon %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s har ubegrenset endringshistorikk. Enhver endring, enten det er en " "oppgavebeskrivelse eller sletting av en timeregistrering kan angres. Velg " "Rediger/Angre eller Rediger/Gjør på ny for å gå bakover eller forover i " "endringshistorikken." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s er tilgjengelig med forskjellige språk. Velg Rediger/Innstillinger " "for å se om ditt språk er tilgjengelig. Dersom det ikke er det, eller hvis " "oversettelsen har mangler, ber vi deg vurdere om du kan bidra til " "oversettelsen av %(name)s. Gå til %(url)s for nærmere informasjon om hvordan " "du kan hjelpe." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Dersom man angir en URL (f.eks %(url)s) i beskrivelsen av en oppgave eller " "en timeregistrering blir den en link. Denne linken kan klikkes på og vil da " "åpnes i standard nettleser." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Oppgaver kan dras og slippes i en trevisning for å endre plassering i " "hierarkiet. Det samme gjelder for kategorier." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Filer kan dras fra en filutforsker og slippes på en oppgave for å opprette " "vedlegg. Ved å dra en fil over en fane vil den tilhørende siden aktiveres, " "og ved å dra en fil over en minimert node i en trevisning vil noden bli " "ekspandert slik at underoppgavene vises." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Når man velger 'Fil' -> 'Skriv ut' er det innholdet i den aktive visningen " "som skrives ut. Innholdet skrives ut med den grupperingen/sorteringen og de " "synlige kolonnene som visningen har." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Venstreklikk på kolonneoverskrifter for å sortere. Klikk en gang til for å " "endre sorteringsretning fra stigende til synkende eller omvendt. Høyreklikk " "en kolonneoverskrift for å skjule den, eller for å velge flere kolonner." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Du kan opprette en oppgavemal for å unngå å måtte taste inn de samme " "opplysningene mange ganger." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Sett inn en ny kategori" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Klipp ut valgt(e) element(er) og plasserer det/dem på utklippstavlen" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopier valgt(e) element(er) til utklippstavlen" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Lim inn elementer fra utklippstavlen" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Rediger innstillinger" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Annuller siste angrete handling" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Velg alle elementer i aktiv visning" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Angre siste handling" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Registrer tid på de(n) valgte oppgaven(e)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Start timeregistrering for de(n) aktive oppgaven(e)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Lukk aktiv fil" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Avslutt %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Åpne en %s-fil" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Lagre aktiv fil" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Lagre aktiv fil med nytt navn" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Hjelp om programmet" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Sett inn et nytt notat" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Skriv ut aktiv fil" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Sideoppsett for utskrift" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Vis alle elementer (tilbakestill alle filtre til standard)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Reduser prioriteten for de(n) valgte oppgaven(e)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Øk prioriteten for de(n) valgte oppgaven(e)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Gi de(n) valgte oppgaven(e) høyeste prioritet" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Gi de(n) valgte oppgaven(e) laveste prioritet" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Sett inn en ny oppgave" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Minimer alle elementer med underelementer" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Vis alle undernoder" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Gå til neste åpne visning" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktiver den forrige åpne visningen" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Oppgave som forfaller i dag" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Oppgave som forfaller i morgen" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Hver %(frequency)d. dag" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Hver %(frequency)d. uke" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Hver %(frequency)d. måned" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Hver %(frequency)d. år" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Annenhver dag" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Annenhver uke" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Annenhver måned" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Annenhvert år" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "nå" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Synkroniseringen med %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "vil bli en oppdatering fra serveren. Alle lokale\n" "elementer vil bli slette. Vil du fortsette?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "vil li en oppdatering fra klienten. Alle elementer \n" "på serveren blir slettet. Vil du fortsette?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synkronisering" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synkoniserer. Vennligst vent.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d elementer opprettet.\n" "%d elementer oppdatert.\n" "%d elementer slettet." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Det oppsto en feil i synkroniseringen.\n" "Feilkode: %d; melding: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "Du må først redigere oppsettet for SyncML, i Rediger/SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Alle filer (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Behandle store/små bokstaver som ulike i filtrering" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Inkluder underelementer til elementer i søkeresultatet" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Søk både i emne og beskrivelse" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Det regelbaserte uttrykket er ikke gyldig" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Faller tilbake til søk med del av tekststreng" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Sist utførte søk" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Kan ikke søke i denne visningen" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Kompatibilitetsadvarsel" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "SyncML-funksjonen er skrudd av fordi tilhørende\n" "modul ikke kunne startes. Dette kan skyldes at\n" "operativsystemet ikke er støttet eller, dersom du\n" "bruker Windows, at noen dll-filer mangler. Detaljer\n" "finner du i SyncML-seksjonen i hjelp (under \"Feilsøking\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Ikke vis denne dialogen igjen" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/nds.po000066400000000000000000005040121265347643000160030ustar00rootroot00000000000000# German, Low translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:03+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: German, Low \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Es sind Fehler aufgetreten. Weitere Informationen wurde in der Datei " "\"taskcoachlog.txt\" im Ordner \"Eigene Dateien\" gespeichert." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Failer" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Es sind Fehler aufgetreten. Weitere Informationen siehe \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Konnte Einstellungen von TaskCoach.ini nicht laden:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s Dateifehler" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Bearbeite den Ort des Anhangs" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Bearbeite Speicherort des Anhangs \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Anhang hinzufügen" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Anhang hinzufügen zu \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Neuer Anhang" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Anhang entfernen" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopieren" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopiere \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Entfernen" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Ausschneiden" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Einfügen" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Ziehen und Ablegen" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Neue Kategorie" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Neue Unterkategorie" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Neue Notiz" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Neue Unternotiz" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Neue Aufgabe" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Neue Unteraufgabe" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Stoppuhr starten" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stoppuhr anhalten" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Höchste Priorität" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Niedrigste Priorität" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Priorität erhöhen" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Priorität verringern" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Fehler beim Speichern von %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Fehler beim Speichern" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Neuer Anhang..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Neue Datei hinzufügen" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Anhang öffnen" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Ausgewählte Anhängen öffnen" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Neue Aufgabe..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Beschreibung" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Betreff" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priorität" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Durchsuchen" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Ort" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Daten" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Fälligkeitsdatum" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Abschlussdatum" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Erinnerung" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Wiederholung" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nein" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ja" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Stundensatz" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorien" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Anhänge" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notizen" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Aufgabe editieren" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Aufgabe" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stop" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Keine" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Täglich" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Monatlich" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Wöchentlich" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Jährlich" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "gleichen Wochentag beibehalten" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", jeden" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "Tag(e)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "Zeitspanne" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "Woche(n)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "Monat(e)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "Jahr(e)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Nach jeder Änderung speichern" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Fensterverhalten" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Hilfefenster beim Start anzeigen" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Immer" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nie" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Beim Start auf neue Version von %(name)s prüfen" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Sprache" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Sprache nicht gefunden?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "SyncML aktivieren" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Benutzername/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Langsam" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Zugriff" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Neue Version von %(name)s verfügbar" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Öffnen" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s geschlossen" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Fehler beim Lesen %s\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Neue &Teilaufgabe..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Aufgaben" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Neue Kategorie einfügen" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Aufwand auf das Budget der ausgewählten Aufgabe(n) buchen" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Neue Notiz einfügen" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Neue Aufgabe einfügen" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/nl.po000077500000000000000000006750031265347643000156440ustar00rootroot00000000000000# Task Coach # Copyright (C) 2004-2005 Frank Niessink # Frank Niessink , 2005. # msgid "" msgstr "" "Project-Id-Version: Task Coach\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:31+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: NETHERLANDS\n" "Language: nl\n" "X-Poedit-Language: dutch\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Er zijn fouten ontstaan. Raadpleeg \"taskcoachlog.txt\" in \"Mijn " "Documenten\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Fout" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Er zijn fouten ontstaan. Zie \"%s\"." #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "De instellingen uit TaskCoach.ini konden niet worden gelezen:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s bestand fout" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Bewerk locatie van bijlagen" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Bewerk locatie van bijlage \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Bijlage toevoegen" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Bijlage toevoegen aan \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nieuwe bijlage" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Verwijder bijlage" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Verwijder bijlage van \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopiëren" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "\"%s\" kopiëren" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Verwijderen" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "\"%s\" verwijderen" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Knippen" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "\"%s\" knippen" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Plakken" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "\"%s\" plakken" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Plak als subitem" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Plak als subitem van \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Slepen en neerzetten" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "\"%s\" slepen en plaatsen" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Onderwerpen bewerken" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Onderwerp \"%s\" bewerken" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Bewerk beschrijvingen" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Bewerk beschrijving \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Verander iconen" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Verander icoon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Verander fonts" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Verander font \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Verander voorgrondkleuren" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Verander voorgrondkleur \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Verander achtergrondkleuren" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Verander achtergrondkleur \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Categorie omzetten" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Categorie van \"%s\" omzetten" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nieuwe categorie" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nieuwe subcategorieën" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nieuwe subcategorie van \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nieuwe subcategorie" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Bewerk uitsluitende subcategorieën" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Bewerk uitsluitende subcategorieën van \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Categorieën verwijderen" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Categorie \"%s\" verwijderen" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Categorieën slepen en plaatsen" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nieuwe tijdsbestedingen" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Nieuwe tijdsbesteding van \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Tijdsbestedingen verwijderen" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Tijdsbesteding \"%s\" verwijderen" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Verander taak van tijdsbesteding" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Verander taak van \"%s\" tijdsbesteding" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Verander startdatum en -tijd van tijdsbesteding" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Verander startdatum en -tijd van tijdsbesteding van \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Verander stopdatum en -tijd van tijdsbesteding" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Verander stopdatum- en tijd van tijdsbesteding van \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nieuwe notitie" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nieuwe subnotities" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nieuwe subnotitie van \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nieuwe subnotitie" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Notities verwijderen" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Notitie \"%s\" verwijderen" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Notities slepen en plaatsen" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Notitie \"%s\" slepen en plaatsen" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Notitie toevoegen" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Notitie toevoegen aan \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Voeg subnotitie toe" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Voeg subnotitie toe aan \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Verwijder notitie" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Verwijder notitie van \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Taken slepen en plaatsen" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Taken verwijderen" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Taak \"%s\" verwijderen" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nieuwe taak" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nieuwe subtaken" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nieuwe subtaak van \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nieuwe subtaak" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Taken als gereed markeren" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "\"%s\" als gereed markeren" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Markeer taak als actief" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Markeer \"%s\" als actief" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Markeer taak als inactief" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Markeer \"%s\" als inactief" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Tijdsbesteding starten" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Tijdsbesteding voor \"%s\" starten" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Tijdsbesteding stoppen" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Tijdsbesteding voor \"%s\" stoppen" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Hoogste prioriteit" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Prioriteit van \"%s\" maximaliseren" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Laagste prioriteit" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Prioriteit van \"%s\" minimaliseren" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Prioriteit verhogen" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Prioriteit van \"%s\" verhogen" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Prioriteit verlagen" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Prioriteit van \"%s\" verlagen" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Verander prioriteit" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Verander prioriteit van \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Notitie aan taken toevoegen" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Verander geplande startdatum" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Verander geplande startdatum van \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Verander geplande einddatum" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Verander geplande einddatum van \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Verander werkelijke startdatum" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Verander werkelijke startdatum van \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Verander werkelijke einddatum" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Verander werkelijke einddatum van \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Verander herinneringsdatums en -tijden" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Verander herinneringsdatum en -tijd van \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Varander herhalingen" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Verander herhaling van \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Verander het percentage gereed van \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Verander wanneer taken als afgerond worden gemarkeerd" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Verander wanneer \"%s\" als afgerond wordt gemarkeerd" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Verander budgetten" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Verander het budget van \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Verander tarieven per uur" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Verander het tarief per uur van \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Verander vaste tarieven" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Verander het vaste tarief van \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Zet voorwaardelijke taak om" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Zet voorwaardelijke taak van \"%s\" om" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Fout bij het lezen van de %s-%s instelling uit %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "De waarde is: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "De fout is: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s zal de standaard waarde voor de instelling gebruiken en zou verder " "normaal moeten functioneren." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Instellingsfout" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Fout bij het opslaan van %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Fout bij het opslaan" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app bericht" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nieuwe bijlage..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Nieuwe bijlage invoegen" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Bijlage openen" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "De geselecteerde bijlagen openen" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minuten" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Sluimer niet" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minuten" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minuten" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minuten" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minuten" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 uur" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minuten" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 uur" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 uur" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 uur" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 uur" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 uur" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 uur" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 uur" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 uur" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 uur" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 uur" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 uur" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 weken" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 week" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Totaal" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Totaal voor %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Nieuwe tijdsbesteding...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Inactieve taken" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "&Inactieve taken verbergen" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Inactieve taken: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Inactieve taken (taken die niet gestart en niet afgerond zijn) " "tonen/verbergen" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Late taken" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Taken met &late start verbergen" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Taken met late start: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Taken met late start (inactieve taken met een geplande startdatum in het " "verleden) tonen/verbergen" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Actieve taken" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Actieve taken: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "&Actieve taken verbergen" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Actieve taken (reeds gestarte taken die niet zijn afgerond) tonen/verbergen" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Binnenkort af te ronden taken" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Binnenkort af te ronden taken: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "&Binnenkort af te ronden taken verbergen" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Binnenkort af te ronden taken (taken met geplande einddatum in de nabije " "toekomst) tonen/verbergen" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Taken die te laat zijn" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Te &late taken verbergen" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Taken te laat: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Te late taken (niet afgeronde taken met een geplande einddatum in het " "verleden) tonen/verbergen" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Afgeronde taken" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Afgeronde taken: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "A&fgeronde taken verbergen" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Afgeronde taken tonen/verbergen" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nieuwe taak..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Pijl naar beneden" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Pijl naar beneden met status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blauwe pijlen in een cirkel" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Groene pijlen in een cirkel" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Pijl naar boven" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Pijl naar boven met status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bom" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Boek" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Boeken" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Doos" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Lieveheersbeestje" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Taart" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Rekenmachine" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalender" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Kat" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Grafieken" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Kletsen" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Vinkje" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Vinkjes" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Klok" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Wekker" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopwatch" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Tandwiel" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Tandwielen" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Burocomputer" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Laptop computer" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handcomputer" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Rood kruis" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Dobbelsteen" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Document" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blauwe aarde" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Groene aarde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelop" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Enveloppen" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blauwe map" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Lichtblauwe map" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Groene map" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grijze map" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Oranje map" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Paarse map" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Rode map" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Gele map" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blauwe map met pijl" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Hart" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Harten" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Groen huis" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Rood huis" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Sleutel" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Sleutels" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lamp" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Vraagteken" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informatie" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Blauw lampje" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Lichtblauw lampje" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Grijs lampje" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Groen lampje" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Lichtgroen lampje" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Oranje lampje" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Paars lampje" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Rood lampje" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Geel lampje" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Reddingsband" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Gesloten slot" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Open slot" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Vergrootglas" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Muzieknoot" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Notitie" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palet" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Paperclip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Potlood" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Persoon" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Mensen" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificatie" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Pratend persoon" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Waarschuwingsbord" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Rode ster" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Gele ster" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Stoplicht" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Prullenbak" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Bliksem" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Paraplu" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Deels zonnig" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Steeksleutel" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Geen icoon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Sluiten" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Bericht van de %s ontwikkelaars" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Zie:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Beschrijving" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Bewerk om alle onderwerpen te veranderen" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Onderwerp" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Bewerk om alle omschrijvingen te veranderen" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Aanmaakdatum" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Wijzigingsdatum" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioriteit" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Elkaar uitsluitend" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategoriën" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Bewerk om de locatie van alle bijlagen te veranderen" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Bladeren" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Locatie" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Uiterlijk" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Voorgrondkleur" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Achtergrondkleur" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Lettertype" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icoon" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Data" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Geplande startdatum" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Geplande einddatum" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Werkelijke startdatum" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Werkelijke einddatum" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Herinnering" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Herhaling" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Voortgang" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Percentage compleet" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Gebruik de applicatie-brede instelling" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nee" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ja" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "De taak als afgerond markeren als alle subtaken afgerond zijn?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Bestede tijd" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Budget over" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Tarief per uur" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Vast tarief" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Opbrengst" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Tijdsbesteding" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorieën" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Bijlagen" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notities" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Voorwaardelijke taken" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Taak bewerken" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Taak" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "We(e)k(en)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Dag(en)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "U(u)r(en)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minu(u)t(en)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stop" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Tijdsbesteding starten vanaf einde laatste tijdsbesteding" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Stop tijdsbesteding nu" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Waarschuwing: starttijd moet vroeger dan stoptijd zijn" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Meerdere taken" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (taak)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Meerdere categorieën" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (categorie)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Meerdere notities" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (notitie)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Meerdere bijlagen" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (bijlage)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Meerdere tijdsbestedingen" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (tijdsbesteding)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Gebruik lettertype:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Gebruik kleur:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Geen" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Dagelijks" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Maandelijks" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Wekelijks" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Jaarlijks" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "altijd op dezelfde dag van de week" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", elke" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Stop na" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "herhalingen" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Plan elke volgende herhaling op basis van" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dag(en)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periode," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "week(en)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "maand(en)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "jaar(en)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exporteer items uit:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Alleen de geselecteerde items exporteren" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Te exporteren kolommen:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Plaats taakdatums en -tijden in aparte kolommen" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Stijlinformatie in een apart CSS-bestand opslaan" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "%(name)s zal een bestaand CSS-bestand, dat bij het te exporteren bestand " "hoort, niet overschrijven.\r\n" "Dit maakt het mogelijk de stijlinformatie te veranderen zonder dat de " "aanpassingen bij de volgende export worden overschreven." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exporteer als CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exporteer als iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exporteer als HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exporteren als Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Een iPhone of iPod Touch apparaat probeert\n" "voor het eerst met dit takenbestand te synchroniseren.\n" "Wat voor soort synchronisatie wilt u gebruiken?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Ververs vanaf de desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Ververs vanaf het apparaat" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Annuleren" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "U heeft iPhone synchronisatie aangezet, hiervoor is\n" "Bonjour nodig. Bonjour lijkt echter niet te zijn\n" "geïnstalleerd op uw systeem." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Download en installeer a.u.b. Bonjour voor Windows vanaf\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple's website" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour ondersteuning voor Linux wordt onder andere\n" "geleverd door Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "U kunt details voor uw distributie hier vinden" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Merk op dat op sommige systemen (Fedora) het\n" "nodig kan zijn naast Avahi ook het avahi-compat-libdns_sd\n" "pakket te installeren." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Daarnaast, controleer als u een firewall heeft dat poorten 4096-4100 open " "staan." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Deze instelling wordt van kracht nadat %s opnieuw is opgestart" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Deze instelling kan voor individuele taken worden overschreven\n" "in de taak dialoog." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Bestanden" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Automatisch opslaan na elke wijziging" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Sla de instellingen (%s.ini) op in \n" "dezelfde folder als het programma" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Voor het gebruik van %s vanaf een verwijderbaar medium" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Standaardmap voor bijlagen" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Probeer het pad van toegevoegde bijlagen relatief \n" "aan dit pad te maken" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Voor het opslaan, importeer automatisch uit" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt formaat" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Voor het opslaan importeert %s eerst automatisch\n" "taken uit een Todo.txt bestand met dezelfde naam\n" "als het takenbestand, maar met de extensie .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Bij het opslaan, exporteer automatisch naar" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Bij het opslaan exporteert %s automatisch\n" "taken naar een Todo.txt bestand met dezelfde naam\n" "als het takenbestand, maar met de extensie .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Window gedrag" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Openingsscherm tonen bij starten" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Tips tonen bij starten" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Start met het hoofdscherm geminimaliseerd" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Altijd" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nooit" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Als het hoofdscherm de laatste keer geminimaliseerd was" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" "Controleer bij het opstarten of een nieuwe versie van %(name)s beschikbaar is" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" "Controleer op berichten van de %(name)s ontwikkelaars bij het starten" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Het window verbergen bij minimaliseren" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Het window minimaliseren bij sluiten" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Animeer de klok in de werkbalk bij het registreren van tijdsbesteding" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Taal" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Laat het systeem de taal bepalen" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Als uw taal niet aanwezig is, of als de vertaling verbetering behoeft, help " "dan alstublieft mee. Zie:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Taal niet gevonden?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Taak uiterlijk" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Deze instellingen kunnen voor individuele taken worden overschreven in de " "taak dialoog." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Functies" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "Alle instellingen op dit tabblad vereisen een herstart van %s" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "SyncML aanzetten" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Schakel iPhone synchronisatie in" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "X11-sessiemanagement gebruiken" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Start van de werkweek" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Maandag" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Zondag" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Starttijd van de werkdag" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Eindtijd van de werkdag" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Eind van de dag" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Gebruik verlopende kleuren in kalender tabs.\n" "Dit zou Task Coach trager kunnen maken." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minuten tussen gesuggereerde tijden" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "In popup menu's voor tijdselectie (bijvoorbeeld voor de starttijd \n" "van een tijdsbesteding) zal %(name)s tijden suggereren op basis\n" "van deze instelling. Hoe kleiner het aantal minuten, hoe meer tijden\n" "worden gesuggereerd. Uiteraard kunt u in plaats van de gesuggereerde\n" "tijden ook een andere tijd invoeren." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Inactief periode" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Als er geen gebruikersinvoer is gedurende deze tijd (in minuten) dan zal \n" "%(name)s vragen wat er met de huidige tijdsbesteding moet gebeuren." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Toon een popup met de beschrijving van het item \n" "als de cursor erboven hangt" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Taak datums" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "De taak als afgerond markeren als alle subtaken zijn afgerond" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Aantal uren dat taken als 'binnenkort af te ronden" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Niets" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "De geplande einddatum verandert mee met de geplande startdatum" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "De geplande startdatum verandert mee met de geplande einddatum" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Wat te doen met de geplande start- en einddatum als de ander wordt veranderd" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Stel in" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Stel voor" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Vandaag" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Morgen" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Overmorgen" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Volgende vrijdag" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Volgende maandag" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Begin van de dag" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Begin van de werkdag" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Huidige tijd" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Eind van de werkdag" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Standaard geplande startdatum en -tijd" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Standaard geplande einddatum en -tijd" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Standaard werkelijke startdatum en -tijd" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Standaard werkelijke einddatum en -tijd" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Standaard herinneringsdatum en -tijd" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Nieuwe taken starten met de \"Stel in\" datums en tijden ingevuld en " "aangevinkt. \"Stel voor\" datums en tijden zijn ingevuld, maar niet " "aangevinkt.\n" "\n" "\"Begin van de dag\" is middernacht en \"Einde van de dag\" is net voor " "middernacht. Gebruik deze om in tabbladen met taken alleen datums te zien, " "zonder tijden erbij.\n" "\n" "\"Begin van de werkdag\" en \"Eind van de werkdag\" zijn de werkdagtijden " "zoals ingesteld op de Functies tab van deze voorkeurendialoog." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Taak herinneringen" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Notificatiesysteem te gebruiken voor herinneringen" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Laat de computer de herinnering zeggen" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Vereist espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Standaard sluimertijd te gebruiken na een herinnering" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Aan te bieden sluimertijden in de taakherinneringdialoog" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Wachtvoor voor synchronisatie met iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Voer bij het synchroniseren dit wachtwoord in op de iPhone om deze te " "autoriseren" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour service naam" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Upload complete taken naar apparaat" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Toon het synchronisatie logbestand" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Controleer spelling in editors" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" "Font dat in het \"Beschrijving\"-tekstveld in dialogen wordt gebruikt" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Gebruik het e-mailonderwerp van Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Probeer bij het gebruiken van een e-mail uit Mail.app het onderwerp ervan te " "gebruiken.\n" "Dit kan tot 20 seconden duren" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Zet de focus op het taakonderwerp in de taak bewerker" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Bij het openen van de taakeditor het onderwerp selecteren en activeren.\n" "Deze instelling overschrijft de huidige instelling." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s herinnering - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Datum en tijd van de herinerring" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Sluimer" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Maak dit ook de standaard sluimertijd voor toekomstige herinneringen" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Taak als afgerond markeren" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Aangepast" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Gebruikersnaam/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Taak synchronisatie aanzetten" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Naam van takendatabase" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Geprefereerde synchronisatiemodus" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Beide richtingen" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Langzaam" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Alleen van de client naar de server" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Verversen vanaf de client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Alleen van de server naar de client" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Verversen vanaf de server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Synchronisatie van notities aanzetten" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Naam van notitiedatabase" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Toegang" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Nieuw takentemplate" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Voorbeeld" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Beschikbare tools" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Maak deze tool zichtbaar in de toolbar" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Verberg deze tool uit de toolbar" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Tools" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Verplaats het gereedschap omhoog. (Naar links op de werkbalk)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Verplaats het gereedschap omlaag (Naar rechts op de werkbalk)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Sorteer toolbarknoppen door ze in deze lijst te verslepen." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Scheidingsteken" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Afstand" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Houd me op de hoogte van nieuwe versies." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Een nieuwe versie van %(name)s is beschikbaar" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "U gebruikt %(name)s versie %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Versie %(version)s van %(name)s is beschikbaar via" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s is actueel" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s is actueel met versie %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Kon de meest recente versie niet bepalen" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Kon niet bepalen wat de meest recente versie van %(name)s is." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Prerelease versie" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "U gebruikt %(name)s prerelease versie %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "De meest recente versie van %(name)s is %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Waarschuwing" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach werkt niet altijd goed met XFCE4-sessiemanagement.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Als het programma soms vastloopt bij het opstarten, zet dan het \n" "\"Gebruik X11-sessiemanagement\" uit in de functionaliteittab van \n" "de voorkeurendialoog.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Deze dialoog niet tonen bij het opstarten" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Geen gebruikersinvoer sinds %s. Voor de volgende taak\n" "werd tijdsbesteding bewaakt:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Doe niets" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Stop om %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Stop om %s and herstart nu" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Melding" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s bestanden (*.tsk)|*.tsk|Alle bestanden (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s bestanden (*.tsk)|*.tsk|Backup bestanden (*.tsk.bak)|*.tsk.bak|Alle " "bestanden (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar bestanden (*.ics)|*.ics|Alle bestanden (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML bestanden (*.html)|*.html|Alle bestanden (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV bestanden (*.csv)|*.csv|Tekstbestanden (*.txt)|*.txt|Alle bestanden " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt bestanden (*.txt)|*.txt|Alle bestanden (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Openen" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d taken geladen uit %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Kan %s niet openen omdat het bestand niet bestaat" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Invoegen" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Kan %(filename)s niet openen\n" "omdat het vergrendeld is." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Taken uit %(filename)s ingevoegd" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Opslaan als" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Selectie opslaan" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Kan %s niet opslaan\n" "omdat het vergrendeld is door een andere instantie van %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Kan %s niet opslaan\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Template importeren" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s template bestanden (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Kan template %s niet importeren\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d items naar %(filename)s geëxporteerd" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synchronisatie gereed" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synchronisatie status" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Kan %s niet openen\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Er bestaat al een bestand met de naam %s\n" "Wilt u het vervangen?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "U heeft niet-opgeslagen veranderingen.\n" "Opslaan voor het afsluiten?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: veranderingen opslaan?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Kan %s niet openen omdat toegang is geblokkeerd.\n" "\n" "Dit betekent dat ofwel een andere instantie van Task Coach\n" "draait en dit bestand heeft geopend, of dat een eerdere instantie\n" "van Task Coach onverwacht is gestopt. Als er geen andere\n" "instantie draait, kunt u de blokkering veilig opheffen.\n" "\n" "Blokkering opheffen?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: bestand vergrendeld" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Kan niet vergrenden omdat vergrendelen niet mogelijk is\n" "op de locatie van %s.\n" "%s onvergrendeld openen?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s gesloten" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d taken opgeslagen in %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Kan %(filename)s niet openen omdat het door \n" "een nieuwere versie van %(name)s is gemaakt.\n" "Installeer a. u.b. de laatste versie van %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Fout bij het lezen van %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchroniseren…" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchroniseren met %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Welkom bij %(name)s versie %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "De schermlayout zoals in TaskCoach.ini opgeslagen kon niet worden gebruikt:\n" "%s\n" "\n" "De standaard layout zal worden gebruikt.\n" "\n" "Als dit opnieuw gebeurt, maak dan a.u.b. een kopie van uw TaskCoach.ini-" "bestand voordat u Task Coach sluit, rapporteer de fout en voeg het " "gekopieerde TaskCoach.ini-bestand als bijlage bij de foutrapportage." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s instellingenfout" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synchronisatie type" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Een iPhone of iPod Touch apparaat probeerde met dit \n" "takenbestand te synchroniseren, maar de protocol afstemming\n" "faalde. Dien a.u.b. een foutrapportage in." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Bestand" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "Be&werken" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "Bee&ld" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nieuw" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Acties" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Help" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importeren" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exporteren" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Selecteren" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Nieuw tabblad" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activeer volgende tabblad\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activeer &vorige tabblad\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Modus" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sorteren" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolommen" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Afronding" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Boom opties" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Werkbalk" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Statusbalk tonen/verbergen" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Stat&usbalk" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Taak" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Open een nieuw tabblad dat taken laat zien" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Taak&statistieken" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Open een nieuwe tab met taakstatistieken" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Taken&kaart" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Open een nieuwe tab met een takenkaart" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&ijdslijn" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "Open een nieuwe tab met een tijdslijn van taken en tijdsbestedingen" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalender" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Een nieuwe tab openen met een takenkalender" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categorie" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Open een nieuw tabblad met categoriën" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Tijdsbesteding" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Open een nieuw tabblad met tijdsbestedingen" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Open een nieuwe tab met de tijdsbestedingen voor de geselecteerde taak" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notitie" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Open een nieuw tabblad met notities" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Verbergen" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "De werkbalk verbergen" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Kleine iconen" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Kleine iconen (16x16) op de werkbalk" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Gemiddelde omvang iconen" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Gemiddelde omvang iconen (22x22) op de werkbalk" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "G&rote iconen" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Grote iconen (32x32) op de werkbalk" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nieuwe taak op basis van &template" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Categorie &omzetten" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Taak &prioriteit veranderen" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Tijdsbesteding &starten" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategorieën)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtaken)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioriteit" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Pagina" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Herinnering" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d taken die te laat zijn" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "één taak die te laat is" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d taken binnenkort af te ronden" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "één taak binnenkort af te ronden" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "\"%s\" bewaken" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "tijdsbesteding registreren voor %d taken" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Openen...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Open %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Invoegen..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Taken uit een ander bestand in het huidige bestand invoegen" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Sluiten\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "O&pslaan\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "O&pslaan als...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Sla &geselecteerde taken op in nieuw takenbestand..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Sla de geselecteerde taken op in een ander takenbestand" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Geselecteerde taak als &template opslaan" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "De geselecteerde taak als een template voor taken opslaan" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Template importeren..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Een nieuw template uit een templatebestand importeren" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Bewerk templates..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Bestaande templates bewerken" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Bewerk templates" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Verwijderde items definitief verwijderen" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Verwijder reeds verwijderde taken en notities permanent (zie het SyncML " "hoofdstuk in de Help)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Het definitief verwijderen van verwijderde items\n" "kan ongedaan worden gemaakt. Als u later \n" "SyncML weer gebruikt met de dezelfde server \n" "zullen de items waarschijnlijk weer terug komen.\n" "\n" "Wilt u de items definitief verwijderen?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Pagina-instellingen...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "Afdruk&voorbeeld..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Geef een afdrukvoorbeeld" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Afdrukvoorbeeld" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Afdrukken...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Als &HTML exporteren..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Items uit een tab in HTML-formaat exporteren" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exporteren als &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Items uit een tab in komma-gescheiden-waarden (CSV) formaat exporteren" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exporteren als &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Items uit een tab in iCalendarformaat exporteren" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exporteren als &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Items uit een tabblad in Todo.txt formaat (zie todotxt.com) exporteren" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "CSV &importeren..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Taken uit een kommagescheiden bestand (CSV) importeren" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importeer CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Het geselecteerde bestand is leeg. Selecteer een ander bestand." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Todo.txt importeren..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Taken uit een Todo.txt (zie todotxt.com) bestand importeren" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Todo.txt importeren" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML synchronisatie..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Met een SyncML server synchroniseren" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "A&fsluiten\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Ongedaan maken" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Opnie&uw doen" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "K&nippen\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopiëren\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Plakken\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Als &subitem plakken\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Voorkeuren...\tAlt+V" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Voorkeuren" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML voorkeuren..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "SyncML voorkeuren bewerken" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML voorkeuren" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Pas toolbar aan" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Aanpassen" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Alles\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "Selectie op&heffen" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Alle items deselecteren" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "Alle filters &wissen\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "Alle categorieën &resetten\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Items die bij %s horen tonen/verbergen" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Hernoem tabblad..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Hernoem het geselecteerde tabblad" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nieuwe titel voor het tabblad:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Hernoem tabblad" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Deze kolom verbergen" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "De geselecteerde kolom verbergen" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Alle items &uitklappen\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "Alle items in&klappen\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Oplopend" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Oplopend (gevinkt) of aflopend (niet gevinkt) sorteren" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "&Hoofdlettergevoelig sorteren" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Sorteren is hoofdlettergevoelig (aangevinkt) of niet hoofdlettergevoelig " "(niet aangevinkt)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Eerst op status sorteren" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Taken eerst op status (actief/inactief/afgerond) sorteren" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "&Samengestelde taken verbergen" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Taken met subtaken tonen/verbergen in lijstmodus" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Bewerken...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "De geselecteerde items bewerken" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "&Taak waaraan nu tijd besteed wordt bewerken...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "De taak of taken waaraan nu tijd besteed wordt bewerken" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Verwijderen\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "De geselecteerde items verwijderen" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Een nieuwe taak maken op basis van een template" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nieuwe taak met geselecteerde &categorieën..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Een nieuwe taak invoegen met de geseleceerde categorieën aangevinkt" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nieuwe taak met geselecteerde taken als &voorwaardelijke taken..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Voeg een nieuwe taak toe met de geselecteerde taken als voorwaardelijke taken" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nieuwe taak met geselecteerde taken als &afhankelijke taken..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" "Voeg een nieuwe taak toe met de geselecteerde taken als afhankelijke taken" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nieuw &subitem..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nieuwe &subtaak..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nieuwe &subnotitie..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nieuwe &subcategorie..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Een nieuw subitem toevoegen aan het geselecteerde item" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Markeer taak als &actief\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Markeer de geselecteerde taken als actief" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Markeer de taak als &inactief\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Markeer de geselecteerde taken als inactief" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Markeer taak als &afgerond\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "De geselecteerde taak als afgerond markeren" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Ma&ximaliseer prioriteit\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimaliseer prioriteit\tShift+Ctrl+L" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Increase priority\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Ver&laag prioriteit\tCtrl+L" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "%s omzetten" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Mailen...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Verzenden...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Verscheidene zaken" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "en" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Kan geen e-mail versturen:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s mail fout" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "&Notitie toevoegen...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Alle notities openen...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Tijdsbesteding starten\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Start tijdsbesteding aan de taak/taken van de geselecteerde " "tijdsbesteding(en)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Geen onderwerp)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Start met het bijhouden van de tijd besteed aan %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Selecteer een taak via het menu en start de tijdsbesteding" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Tijdsbesteding stoppen of hervatten\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Tijdsbesteding %s &stoppen\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Tijdsbesteding stoppen voor de lopende taak" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "Tijdsbesteding %s &herstarten\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" "Tijdsbesteding herstarten voor de taak waar het laatst aan gewerkt is" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "meerdere taken" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nieuw categorie...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nieuwe notitie...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nieuwe ¬itie met geselecteerde categorieën..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" "Een nieuwe notitie invoegen met de geselecteerde categoriën aangevinkt" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Bijlage toevoegen...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Fout bij het openen van de bijlage" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "Alle bijlagen &openen...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Helpinhoud\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Helpinhoud\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Help" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tips" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tips over het programma" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonimiseer" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Anonimiseer een takenbestand om het bij een foutrapport te voegen" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Uw takenbestand is geanonimiseerd en opgeslagen in:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Gereed" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Over %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versie- en contactinformatie over %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Over %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licentie" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licentie" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Controleren op updates" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Controleer of er een nieuwe versie van %s beschikbaar is" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Kan URL niet openen:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URL fout" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Vaak gestelde vragen" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "De vaak gestelde vragen en antwoorden bekijken" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "&Fout rapporteren..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Een fout rapporteren of bekende fouten bekijken" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Functionaliteit &verzoeken..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Nieuwe functionaliteit verzoeken of op bestaande verzoeken stemmen" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "&Ondersteuning vragen..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Ondersteuning vragen aan de ontwikkelaars" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Help &vertalingen verbeteren..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Help de vertalingen van %s te verbeteren" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Doneren..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Doneren om de ontwikkeling van %s te ondersteunen" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Herstel scherm" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Het scherm in zijn oorspronkelijke toestand herstellen" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Zoek" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Tijdsbestedingenlijst" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Tijdsbesteding per dag" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Tijdsbesteding per maand" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Tijdsbesteding per week" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Optelmodus" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Lijst" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Boomstructuur" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "Toon taken als boom indien aangevinkt, anders als lijst" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filter op alle aangevinkte categoriën" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filter op minimaal één van de aangevinkte categoriën" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Wanneer aangevinkt, filter op alle aangevinkte categorieën tegelijkertijd" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Volgorde keuze" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Instellen" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Stel de kalender in" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Volgende periode" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Toon volgende periode" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Vorige &periode" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Toon vorige periode" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Vandaag" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Toon vandaag" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatisch de kolombreedte aanpassen" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Indien aangevinkt wordt de kolombreedte automatisch aangepast aan de " "beschikbare ruimte" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Hoek van de taartgrafiek instellen" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Niet afronden" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuut" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minuten" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Afrondingsprecisie" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Rond altijd af naar boven" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Rond altijd af naar het volgende, grotere, aantal" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Type" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Op onderwerp sorteren" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Onderwerp" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Op beschrijving sorteren" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Beschrijving" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Aanmaakdatum" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Op aanmaakdatum sorteren" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Wijzigingsdatum" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Op laatste wijzigingsdatum sorteren" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Kolom met beschrijving tonen/verbergen" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notities" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Notitiekolom tonen/verbergen" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Aanmaakdatumkolom tonen/verbergen" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Laatste wijzigingsdatumkolom tonen/verbergen" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Toolbars zijn aanpasbaar" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Klik op het tandwiel rechts om knoppen toe te voegen en de volgorde aan te " "passen." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "Bijl&agen" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Bijlagekolom tonen/verbergen" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categoriën: %d geselecteerd, %d totaal" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d gefilterd" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periode" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Totaal bestede tijd" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Totale opbrengst" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Dinsdag" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Woensdag" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Donderdag" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Vrijdag" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Zaterdag" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categorieën" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Categorie kolom kolom tonen/verbergen" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "B&estede tijd" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Bestede tijd kolom tonen/verbergen" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Opbrengst" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Opbrengst kolom tonen/verbergen" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Totale tijdsbesteding" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Totaal bestede tijd kolom tonen/verbergen" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Totale opbrengst" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Totale opbrengst kolom tonen/verbergen" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Tijdsbesteding per dag van de week" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Kolommen met tijdsbesteding per dag van de week tonen/verbergen" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Optelling van tijdsbesteding" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Taken: %d geselecteerd, %d zichtbaar, %d totaal. Tijdsbesteding: %s " "geselecteerd, %s zichtbaar, %s totaal" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d gestart" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Categoriën sorteren op onderwerp" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Categoriën op beschrijving sorteren" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Categorieën op aanmaakdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Categorieën op laatste wijzigingsdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sorteert categorieën handmatig" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Bijlagen op onderwerp sorteren" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Bijlagen op omschrijving sorteren" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Bijlagen op categorie sorteren" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Bijlagen op aanmaakdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Bijlagen op laatste wijzigingsdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Notities op onderwerp sorteren" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Notities op beschrijving sorteren" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Notities op categorie sorteren" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Notities op aanmaakdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Notities op laatste wijzigingsdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sorteer notities handmatig" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Taken op onderwerp sorteren" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Taken op beschrijving sorteren" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Taken op categorie sorteren" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Taken op aanmaakdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Taken op laatste wijzigingsdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sorteer taken handmatig" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Taken op geplande startdatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Geplande startdatum" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Taken op geplande einddatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Geplande einddatum" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Taken op werkelijke einddatum sorteren" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Werkelijke einddatum" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sorteer taken op voorwaardelijke taken" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Voorwaardelijke taken" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sorteer taken op afhankelijke taken" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Afhankelijke taken" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Taken sorteren op tijd over" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Tijd over" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Taken op percentage afgerond sorteren" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Percentage compleet" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Taken op herhaling sorteren" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Herhaling" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Taken op budget sorteren" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Taken op bestede tijd sorteren" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Budget &over" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Taken op budget over sorteren" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Taken sorteren op prioriteit" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Taken op tarief per uur sorteren" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Tarief per uur" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Taken op vast tarief sorteren" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Vaste prijs" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Taken op opbrengst sorteren" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Taken op datum en tijdstop van herinnering sorteren" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Herinnering" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Onderwerp" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Notities op categorie sorteren" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notities: %d geselecteerd, %d totaal" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: nvt" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Taken: %d geselecteerd, %d zichtbaar, %d totaal" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d te laat, %d late start, %d inactief, %d afgerond" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Klik met de shiftknop ingedrukt op een filterknop om alleen taken te tonen " "die bij de knop horen" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Taken" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Tijdslijn" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Nu" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Takenkaart" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Orden taken op" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Kalender instellingen" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Afhankelijke taken" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% compleet" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Tijd over" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Data" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Alle datum kolommen" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Alle datum-gerelateerde kolommen tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Geplande startdatum kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Geplande einddatum kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Werkelijke startdatum" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Werkelijke startdatum kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Werkelijke einddatum kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Tijd over kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "De herhaling kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Alle budget kolommen" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Alle budget-gerelateerde kolommen tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Budget kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Budget over" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Budget over kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Financieel" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Alle financiële kolommen" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Alle financiën-gerelateerde kolommen tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Tarief per uur kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Vast tarief kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Kolom met voorwaardelijke taken tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Kolom met afhankelijke taken tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Toon/verberg percentage compleet kolom" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Bijlage kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Prioriteit kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Herinneringen kolom tonen/verbergen" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Toon taken als" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Taakstatistieken" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Komma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Spatie" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Dubbele punt" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Puntkomma" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Verticaal streeptje" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (dag eerst)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (maand eerst)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Enkel aanhalingsteken" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Dubbel aanhalingsteken" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Verdubbel" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Omzeil met" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Alleen de geselecteerde rijen importeren" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Eerste regel beschrijft de velden" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Scheidingsteken" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Datumformaat" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Quote karakter" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Omzeil quote" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Veld #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Selecteer een bestand." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Categorie" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Herinneringsdatum" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percentage afgerond" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Kolomtitel in het CSV-bestand" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s attribuut" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Geen toekenning van alle velden" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Het \"%s\" veld kan niet meerdere keren worden geselecteerd." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "De velden %s kunnen niet meerdere keren worden geselecteerd." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Inhoudsopgave" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Over taken" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Eigenschappen van taken" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Toestanden van taken" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Kleuren van taken" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Herinneringen" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Over tijdsbesteding" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Eigenschappen van tijdsbesteding" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Over categorieën" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Eigenschappen van categorieën" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Over notities" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Eigenschappen van notities" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Afdrukken en exporteren" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Over afdrukken en exporteren" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Afdrukken" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exporteren" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "E-mail integratie" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Over e-mailintegratie" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Een e-mail als bijlage aan een taak toevoegen" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Een taak maken op basis van een e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML ondersteuning" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Wat is SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Configuratie" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Beperkingen" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Probleemoplossing" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Verwijderde items definitief verwijderen" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone en iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s op de iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuratie" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s op Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt en Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Todo.txt importeren" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Todo.txt exporteren" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Taaktemplates" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Over templates" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Templates gebruiken" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Grafische gebruikersinterface" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Sneltoetsen" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Taken zijn de belangrijkste items die u kunt bewerken. Taken kunnen\n" "van alles zijn, van één eenvoudige actie tot een compleet project \n" "dat bestaat uit verschillende fasen en honderden activiteiten." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Taken hebben de volgende eigenschappen die u kunt veranderen:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Onderwerp: één regel die de taak samenvat." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Omschrijving: een meerregelige beschrijving van de taak." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Geplande startdatum: de vroegste datum dat de taak kan worden gestart.\n" "De geplande startdatum is standaard de datum waarop de taak is gemaakt.\n" "De geplande startdatum kan ook 'Geen' zijn om aan te geven dat het niet\n" "de bedoeling is aan de taak te beginnen. Dit kan handig zijn voor het \n" "registreren van afwezigheid door ziekte bijvoorbeeld." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Geplande einddatum: de datum dat de taak afgerond moet zijn.\n" "De geplande einddatum kan ontbreken voor taken die geen vaste einddatum " "hebben." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Werkelijke startdatum: de datum dat de taak werkelijk gestart is.\n" "De werkelijke startdatum kan direct worden ingevoerd, maar wordt\n" "ook aangepast als u tijdsbesteding voor een taak bijhoudt of als\n" "u het percentage afgerond van een taak instelt op een waarde tussen\n" "0% en 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Werkelijke einddatum: deze datum ontbreekt zolang de taak nog niet is\n" "afgerond. Als u de taak als afgerond markeert wordt de huidige datum\n" "ingevuld als einddatum. De einddatum kan handmatig worden aangepast." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Voorwaardelijke taken: andere taken die moeten worden afgerond voordat\n" "een taak kan worden gestart. De taak blijft inactief totdat de laatste " "voorwaardelijke\n" "taak is afgerond. Merk op dat als de taak een specifieke geplande startdatum " "heeft,\n" "die datum in het verleden moet liggen en alle voorwaardelijke " "taken\n" "moeten zijn afgerond voordat de taak gezien wordt als een taak met een late " "start." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "budget: hoeveelheid uren beschikbaar voor de taak." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Tarief per uur: de hoeveelheid geld die per uur met de taak verdiend wordt." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Vast tarief: de hoeveelheid geld die met de taak verdiend wordt\n" "onafhankelijk van hoeveel tijd er wordt besteed." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "De volgende eigenschappen worden berekend aan de hand van de eigenschappen " "hierboven:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Dagen over: het aantal dagen tot de geplande einddatum." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Afhankelijke taken: taken die kunnen worden gestart\n" "als de voorwaardelijke taak is afgerond." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Bestede tijd: tijd besteed aan de taak." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Budget over: taak budget minus de tijd besteed aan de taak." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" "Opbrengst: tarief per uur maal het aantal bestede uren plus het vaste tarief." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" "Taken bevinden zich altijd in precies één van de volgende toestanden:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Actief: de werkelijke startdatum ligt in het verleden;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactief: de taak is nog niet gestart en/of niet alle \n" "voorwaardelijke taken zijn afgerond;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Afgerond: de taak is afgerond." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Daarnaast kunnen taken worden aangeduid als:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Te laat: de geplande einddatum ligt in het verleden;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Binnenkort af te ronden: de geplande einddatum is binnenkort\n" "(wat 'binnenkort' is, kan worden veranderd in de voorkeuren);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Late start: de geplande startdatum ligt in het verleden en de\n" "taak is niet gestart;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Over budget: er is geen budget meer over;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Onder budget: er is nog budget over;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Geen budget: de taak heeft geen budget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "De tekst van taken krijgt een kleur volgens de volgende regels:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Taken die te laat zijn zijn rood;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Taken die binnenkort af moeten zijn oranje;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Actieve taken hebben zwarte tekst met een blauw icoon;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Taken met een late start zijn paars;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Toekomstige taken zijn grijs, en" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Afgeronde taken zijn groen." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Dit alles onder de aanname dat u de tekstkleuren niet via de voorkeuren\n" "heeft gewijzigd, uiteraard." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "De achtergrondkleur van taken wordt bepaald door de categorieën waartoe\n" "de taak behoort. Zie de sectie over\n" "eigenschappen van categorieën hieronder." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "U kunt een herinnering voor een specifieke datum en tijd maken. %(name)s " "zal\n" "op die datum en tijd een herinnering tonen. Vanuit de herinneringsdialoog " "kunt\n" "u de taak openen, tijdsbesteding voor de taak starten of de taak als " "afgerond\n" "markeren. De herinnering kan ook worden uitgesteld." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Als u Growl of Snarl heeft geïnstalleerd kunt u in de voorkeurendialoog\n" "%(name)s instrueren Growl of Snarl te gebruiken voor herinneringen." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Als u tijd besteed aan taken, kunt u de hoeveelheid bestede tijd bijhouden. " "\n" "Selecteer een taak en kies 'Tijdsbesteding starten' in het tijdsbestedingen " "menu\n" "of contextmenu of via de 'Tijdsbesteding starten' knop op de toolbar." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "Tijdsbestedingen hebben de volgende eigenschappen die u kunt wijzigen:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Taak: de taak waartoe de tijdsbesteding behoort." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Startdatum/tijd: startdatum en -tijd van de tijdsbesteding." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Stopdatum/tijd: stopdatum en -tijd van de tijdsbesteding. Deze kan " "ontbreken\n" "zolang u nog aan de taak werkt." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Omschrijving: een meerregelige omschrijving van de tijdsbesteding." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" "Bestede tijd: hoeveel tijd u heeft besteed aan het werken aan de taak." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Opbrengst: geld verdiend met de bestede tijd." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Taken en notities kunnen tot één of meer categorieën behoren. Eerst moet u\n" "de categorie die u wilt gebruiken creëren via het 'Categorie' menu. " "Vervolgens\n" "kunt u items aan de categorie toevoegen door het item te bewerken en de " "relevante\n" "categorieën aan te vinken in de categorie tab van de dialoog." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "U kunt de items die in de taak- en notitieschermen worden getoond\n" "beperken tot items die tot specifieke categorieën behoren. Bijvoorbeeld,\n" "als u een categorie 'telefoontjes' heeft en u vinkt deze categorie aan " "zullen\n" "de taakschermen alleen taken tonen die tot die categorie behoren. Met " "andere\n" "woorden, de te plegen telefoontjes." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Categorieën hebben de volgende eigenschappen die u kunt wijzigen:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Onderwerp: één regel die de categorie samenvat." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Omschrijving: een meerregelige beschrijving van de categorie." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Elkaar uitsluitende subcategorieën: een vinkje dat aanduidt of de " "subcategorieën van de categorie elkaar uitsluiten. Als dat het geval is " "kunnen items maar tot één van de subcategorieën behoren. Ook kan maar op één " "van de subcategorieën tegelijkertijd gefilterd worden." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Uiterlijke eigenschappen zoals icoon, font en kleuren:\n" "de uiterlijke eigenschappen worden gebruikt om de categorie weer\n" "te geven, maar ook voor de items die tot de categorie behoren. Als een\n" "categorie zelf geen kleur, font of icoon heeft, maar het is de subcategorie\n" "van een categorie die wel zulke eigenschappen heeft, worden die " "eigenschappen\n" "gebruikt. Als een item tot meerdere categorieën behoort, die elk een eigen " "kleur\n" "hebben, wordt een mengsel van die kleuren gebruikt om dat item weer te geven." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notities kunnen worden gebruikt om willekeurige informatie op te slaan die \n" "u in uw takenbestand wilt bewaren. Notities kunnen op zichzelf staan of \n" "onderdeel van andere items zijn, zoals taken en categorieën. Op zichzelf\n" "staande notities worden in het notitiescherm weergegeven. Notities die\n" "onderdeel zijn van andere items worden daar niet weergegeven." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notities hebben de volgende eigenschappen die u kunt wijzigen:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Onderwerp: één regel die de notitie samenvat." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Omschrijving: een meerregelige beschrijving van de notitie." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Uiterlijke eigenschappen zoals icoon, font en kleuren." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Afdrukken en exporteren werken op dezelfde manier: bij het afdrukken of " "exporteren\n" "wordt de informatie uit de actieve tab afgedrukt of geëxporteerd. Bovendien " "wordt de\n" "informatie op dezelfde manier afgedrukt of geëxporteerd als de tab deze " "weergeeft. \n" "De informatie wordt in dezelfde volgorde afgedrukt of geëxporteerd als de " "tab deze\n" "weergeeft. De kolommen die zichtbaar zijn bepalen welke details worden " "afgedrukt of\n" "geëxporteerd. Als items zijn gefilterd, bijvoorbeeld als afgeronde taken " "zijn verborgen,\n" "worden deze items ook niet afgedrukt of geëxporteerd." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Bereid de inhoud van een tab voor, door de items in de juiste volgorde te " "sorteren, \n" "relevante kolommen te tonen of verbergen en door de relevante filters toe te " "passen." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "U kunt een voorvertoning van de afdruk krijgen door het Bestand -> " "Afdrukvoorbeeld\n" "menu item te gebruiken. U kunt de pagina-instellingen bewerken via Bestand -" "> \n" "Pagina-instellingen. Als uw platform het ondersteunt kunt u bij afdrukken " "kiezen om\n" "alle zichtbare items of alleen geselecteerde items af te drukken." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Kies vervolgens het formaat waarin u wilt exporteren en of u alle zichtbare\n" "items of alleen de geselecteerde items wilt exporteren. Beschikbare " "formaten\n" "om naar te exporteren zijn CSV (door komma's gescheiden formaat), HTML\n" "en iCalendar. Als u exporteert naar HTML wordt er ook een CSS bestand \n" "gemaakt dat u kunt bewerken om het weergave van de HTML te veranderen." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integreert met verschillende e-mail programma's via slepen\n" "en plaatsen. Dit heeft enkele beperkingen; e-mails worden gekopieerd\n" "in een folder naast het %(name)s bestand als .eml bestand en worden\n" "geopend met het programma dat op uw systeem geassocieerd is met dit \n" "bestandstype. Dit heeft als voordeel dat deze e-mail bijlagen ook \n" "geopend kunnen worden op een ander systeem dan waar u de bijlagen \n" "heeft gemaakt." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Ondersteunde e-mail programma's:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Door een beperking van Thunderbird, kunt u niet meerdere e-mails in één " "keer\n" "slepen vanuit Thunderbird. Deze beperking geldt niet voor Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" "Er zijn twee manieren om een e-mail als bijlage aan een taak toe te voegen; " "u kunt:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Zet de e-mail op een taak in de takenboom of takenlijst." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Zet de e-mail op de bijlage tab in de takeneditor." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Door een e-mail op een leeg deel van de takenboom of takenlijst te plaatsen\n" "creëert u een nieuwe taak. Het onderwerp van de taak is het onderwerp van " "de\n" "e-mail, de beschrijving van de taak is de inhoud van de e-mail. Daarnaast " "wordt\n" "de e-mail automatisch een bijlage van de nieuwe taak." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML is een XML protocol dat is ontworpen om verschillende applicaties\n" "te laten synchroniseren met een server. Een populaire open-source is Funambol. " "Synchronisatie \n" "is beschikbaar voor verschillende apparaten en applicaties (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), evenals zogenaamde \"connectoren\"\n" "die het mogelijk maakt dat de server synchroniseert met Exchange, Google\n" "Calendar, etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s heeft ingebouwde SyncML client ondersteuning onder Windows en Mac " "OS X\n" "(aangenomen dat u de meegeleverde binaries gebruikt). Dit betekent dat u " "%(name)s\n" "kan instellen om te synchroniseren met dezelfde SyncML server waarmee u \n" "Outlook synchroniseert en daardoor al uw Outlook taken en notities in uw \n" "%(name)s bestand krijgt, en %(name)s taken en notities in Outlook. Of\n" "uw Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "OP Linux moet je de SyncML client installeren voor\n" " Python. A 64 bits Debian pakket for Python 2.7 is beschikbaar op\n" " taskcoach.org,\n" " op het einde van de downloadsectie." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Deze functie is optioneel en staat standaard uit. Om de functie aan te\n" "zetten gaat u naar de opties dialoog en vinkt de functie aan op\n" "de functies tab." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Om SyncML in te stellen, bewerkt u de SyncML voorkeuren via Edit -> SyncML " "voorkeuren.\n" "Vul de synchronisatie URL in, uw ID op de server en kies welke items moeten " "worden\n" "gesynchroniseerd (taken en/of notities). De URL hangt af van de server die u " "gebruikt;\n" "enkele voorbeelden zijn:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "De database namen zijn vrij standaard; de default waarden zouden moeten " "werken." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Elk takenbestand heeft een eigen client ID, zodat twee verschillende\n" "takenbestanden als twee verschillende \"apparaten\" worden beschouwd door\n" "de server." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Omdat het onderliggende gegevenstype vcalendar is kunnen niet alle %(name)s " "functies en\n" "gegevens worden doorgegeven naar de server." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" "Taak- en categoriehiërarchieën worden niet doorgegeven aan de server." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Herhalingen en herinneringen worden nog niet ondersteund." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Notitiecategorieën worden niet doorgegeven aan de server" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Het conflictdetectie en -resolutiesysteem is een omzeiling van een Funambol " "beperking. Het zou moeten werken in de meeste omstandigheden, maar als veel " "applicaites met dezelfde server op hetzelfde moment synchroniseren kunnen er " "problemen optreden." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Waarschijnlijk nog andere..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "De SyncML-menuitems worden alleen getoond als uw platform \n" "wordt ondersteund. Op dit moment ondersteunde platforms zijn:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (zie hieronder)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 en nieuwer, zowel Intel als PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "U kunt problemen onder Windows ondervinden als u niet de Microsoft\n" "Visual 8 runtime heeft geïnstalleerd. U kunt het downloaden van de\n" "Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Als SyncML is aangezet, wordt een taak of notitie bij het verwijderen niet " "echt\n" "verwijderd, maar in plaats daarvan als verwijderd gemarkeerd. The " "verwijderde\n" "taak of notitie wordt daadwerkelijk verwijder van de taken- of notitielijst " "bij de \n" "volgende synchronisatie. Als u de SyncML functie gebruikt, en deze functie\n" "vervolgens uitzet zonder te synchroniseren, kunnen er dus verwijderde " "notities of\n" "tasken in uw takenbestand achterblijven. Dit is geen probleem, maar kost " "wat\n" "extra schijfruimte." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "In dit geval kan het \"Verwijderde items definitief verwijderden\" menuitem " "in het bestandsmenu \n" "worden gebruikt om deze items echt te verwijderen. Het menuitem is allen " "zichtbaar aks u\n" "het kunt gebruiken, dat wil zeggen als er verwijderde items zijn. Merk op " "dat als u dit doet en\n" "vervolgens SyncML weer aanzet en weer synchroniseert met dezelfde server als " "eerder, \n" "al deze items weer kunnen terugkeren omdat de server niet weet dat ze " "verwijderd zijn." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch en iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s op de iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Er is een vergezellende iPhone/iPod Touch/iPad app voor %(name)s,\n" "beschikbaar in Apple's AppStore. (Als u geen iTunes heeft " "geïnstalleerd op uw computer\n" "krijgt u een pagina te zien waar u iTunes kunt downloaden).\n" "De app ondersteunt de volgende functies:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Basis taakattributen: onderwerp, omschrijving, datums (met herhaling)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hiërarchische taken en categorieën" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Tijdsbesteding bewaken" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Meerdere takenbestanden" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Twee-weg synchronisatie met %(name)s op de desktop" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "De applicatie is universeel en heeft een op maat gemaakte " "gebruikersinterface voor de iPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuratie op de iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Er zijn enkele instellingen voor de iPhone/iPod Touch/iPadd app in de\n" "Settings applicatie:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Toon afgerond: of afgeronde taken moeten worden getoond." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Toon inactief: of inactieve taken (geplande startdatum in de toekomst)\n" "getoond moeten worden;" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Icoon positie: het LED icoon kan aan de linkerkant of aan de rechterkant\n" "van het scherm geplaatst worden." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Compacte modus: als deze modus aanstaat heeft de takenlijst\n" "kleinere LEDs en worden categorieën en data niet getoond." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Afronding bevestigen: als dit aanstaat wordt er een dialoog ter bevestiging\n" "getoond als u een taak als afgerond markeert door de LED aan te tikken." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# dagen binnenkort af te ronden: Hoeveel dagen in de toekomst als\n" "\"binnenkort\" wordt beschouwd." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configuratie op de desktop, alle platformen" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Voor synchronisatie moet u %(name)s op de desktop instellen; in de opties, " "in de \"Functies\" tab,\n" "vink \"iPhone synchronisatie activeren\" aan. Herstart %(name)s. Kies nu in " "de opties de \"iPhone\"\n" "tab en vul tenminste het wachtwoord in." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Als u de \"Sync\" knop in het categoriescherm aantikt, zal %(name)s " "automatisch\n" "draaiende instanties van %(name)s op de desktop ontdekken en u vragen er één " "te\n" "selecteren (u zou verschillende instanties op verschillend computers in uw " "netwerk\n" "kunnen hebben draaien, of verschillende instanties op dezelfde computer). De " "naam\n" "die wordt getoond is standaard een tekst die de computer identificeert " "waarop de\n" "instantie draait. Om dit aan te passen kunt u de \"Bonjour service naam\" in " "de\n" "instellingen veranderen." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s zal de gekozen instantie onthouden en deze proberen de volgende\n" "keer dat u synchroniseert; als deze niet draait wordt u opnieuw gevraagd te " "kiezen." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Merk op dat synchronisatie via het netwerk plaatsvindt; het is niet nodig " "dat het\n" "apparaat via USB verbonden is of dat iTunes draait" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuratie op Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Op Windows moet u Bonjour voor Windows " "installeren \n" "en het toestemming geven wanneer uw firewall daar om vraagt." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuratie op Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "Op Linux moet u de Avahi \n" "daemon hebben geïnstalleerd en draaien. De meeste moderne distributies\n" "bevatten Avahi. U moet ook het dnscompat pakket installeren; de precieze " "naam \n" "hangt af van uw distributie (in Ubuntu heet het libavahi-compat-libdnssd1 " "bijvoorbeeld)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Ik kan de iPhone/iPod Touch applicatie niet vinden op Apple's website" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "U moet iTunes op uw computer hebben geïnstalleerd om Apple's App Store te\n" "kunnen bekijken. iTunes verkrijgen." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" "Mijn computer verschijnt niet in de lijst als ik probeer te synchroniseren" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Controleer dat uw iPhone/iPod Touch via WiFi met hetzelfde netwerk is " "verbonden \n" "als uw computer." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "De iPhone kan niet verbinden met mijn computer" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Als u een firewall heeft, controleer dat poorten 4096-4100 open staan." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Nee, %(name)s is niet beschikbaar voor het Android platform. Maar,\n" "Todo.txt Touch is dat " "wel. \n" "U kunt uw taken exporteren vanuit %(name)s naar het Todo.txt \n" "formaat en ze dan bewerken op uw Android apparaat." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt is een open source takenmanager, gemaakt door Gina \n" "Trapani, die werkt met eenvoudige tekstbestanden. Todo.txt heeft een \n" "opdrachtregelinterface. Omdat het bestandsformaat eenvoudige tekst is,\n" "kunt u uw taken ook met elke teksteditor bewerken. Todo.txt Touch is een \n" "versie van Todo.txt voor het Android platform. Todo.txt Touch gebruikt\n" "een todo.txt bestand in uw Dropbox folder. %(name)s kan importeren\n" "vanuit en exporteren naar dat todo.txt bestand." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importeert taakonderwerpen, geplande startdatum, geplande " "einddatum,\n" "werkelijke einddatum, prioriteit, contexten en projecten. Contexten en " "projecten worden\n" "allebei omgezet in categorieën in %(name)s. Projecten kunnen niet worden " "omgezet \n" "in taken met subtaken omdat Todo.txt het toestaat dat taken bij " "verschillende projecten\n" "horen, terwijl %(name)s ervan uitgaat dat elke subtaak bij precies één taak " "hoort." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Bij het importeren probeert %(name)s bestaande taken en\n" "categorieën te vinden en die bij te werken in plaats van nieuwe\n" "te maken. Het zoeken van bestaande taken en categorieën\n" "gebeurt op basis van het onderwerp van de taak (of het project\n" "of de context) en de ouder, indien van toepassing." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exporteert taakonderwerpen, geplande startdatum, geplande " "einddatum, \n" "werkelijke einddatum, prioriteit en categorieën naar het Todo.txt-formaat. " "Andere\n" "attributen worden niet geëxporteerd." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s ondersteunt datums en tijden, maar Todo.txt ondersteunt\n" "alleen datums. Tijden worden dus niet geëxporteerd." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Het standaard Todo.txt-formaat ondersteunt alleen geplande startdatum en\n" "werkelijke einddatum, maar geen geplande einddatum. Daarom gebruikt " "%(name)s\n" "een extensie van het Todo.txt-formaat om geplande einddatum te kunnen " "exporteren.\n" "De geplande einddatum van een taak komt als \"due:JJJJ-MM-DD\" in het " "todo.txt-bestand." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt gebruikt letters ('A'-'Z') voor prioriteiten. \n" "%(name)s gebruikt cijfers. %(name)s prioriteit 1 \n" "wordt omgezet in 'A', 2 wordt 'B', etc., en 26 wordt\n" "'Z'. %(name)s prioriteiten lager dan 1 en hoger dan 26\n" "worden niet geëxporteerd." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Categorieën waarvan het onderwerp begint met '+' worden als project " "geëxporteerd.\n" "Categorieën waarvan het onderwerp begint met '@' worden als context " "geëxporteerd. \n" "Categorieën waarvan het onderwerp niet begint met '+' of '@' worden niet " "geëxporteerd.\n" "Subcategorieën worden geëxporteerd als hun oudercategorie wordt geëxporteerd." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Templates zijn blauwdrukken voor nieuwe taken. Op dit moment zijn de enige\n" "taakeigenschappen die kunnen worden \"geparameteriseerd\" datums. Als een " "template\n" "wordt geïnstantieerd worden de datums van de gecreëerde taak vervangen door " "datums\n" "relatief ten opzichte van de huidige datum." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Men kan een template maken door (precies) één taak te selecteren en\n" "het \"Sla taak als template op\" menuitem in het bestandsmenu te " "selecteren.\n" "Alle subtaken, notities en bijlagen worden onderdeel van de template. " "Alleen\n" "categorieën worden niet opgeslagen." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "U kunt ook een nieuw template maken op basis van een eerder gemaakt\n" "templatebestand (.tsktmpl); activeer \"Template importeren\" in het menu " "Bestand\n" "en open het templatebestand. Templatebestanden worden opgeslagen in een\n" "subfolder van de folder waar het TaskCoach.ini-bestand wordt opgeslagen." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Met de \"Nieuwe taak op basis van template\" menuoptie, of de equivalente " "toolbarknop, \n" "kan een template gebruikt worden. Bij het aanmaken van de taak worden de " "geplande\n" "en werkelijke start- en einddata ingevuld relatief ten opzichte van de " "huidige datum. \n" "Stel dat u een template maakt op basis van een taak die vandaag start en " "morgen\n" "af moet. Elke keer als de template wordt gebruikt krijgt de nieuwe taak een " "startdatum \n" "met wat dan de huidige datum is en een geplande einddatum met wat dan de " "datum van \n" "morgen is." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Ook via de template editor kunnen templates worden toegevoegd \n" "(Bestand/Templates bewerken) en kunnen daarnaast eigenschappen \n" "van templates worden bewerkt (datum en onderwerp). Datums worden \n" "in een voor mensen leesbaar formaat weergegeven; de datumeditor\n" "wordt rood als %(name)s de betekenis niet kan bepalen. Voorbeeld\n" "datums zijn:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Merk op dat dit systeem niet vertaald is; datums moeten in \n" "het Engels worden ingevoerd." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "U kunt tabbladen slepen en neerzetten om zo bijna elke layout van de " "gebruikersinterface te creëren die u wilt. Als u begint met het slepen van " "een tabblad, verschijnen er hints om aan te geven waar u het tabblad kunt " "plaatsen. Tabbladen kunnen ook op elkaar worden geplaatst om zo notebooks te " "maken." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "In de dialogen kunnen tabs worden versleept om de volgorde\n" "van tabs te veranderen of kunnen tabs naast elkaar worden \n" "geplaatst om een heel andere indeling van de gebruikersinterface\n" "te maken." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Onderwerpen en beschrijvingen van taken, notities en categorieën kunnen\n" "worden bewerkt zonder een dialoog te openen. Selecteer het item dat u wilt\n" "bewerken en klik het item nog een keer, ofwel in de onderwerpkolom of\n" "in de beschrijvingkolom. Een tekstvak verschijnt waarmee u onderwerp of\n" "beschrijving kunt veranderen. Door op enter te drukken bevestigt u de\n" "wijziging. Door op escape te drukken sluit het tekstvak zonder wijziging. " "F2\n" "is een sneltoets om het onderwerp te bewerken." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s heeft verschillende sneltoetsen, zie hieronder. \n" "Sneltoetsen zijn momenteel niet instelbaar." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux en Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux en Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux en Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Voeg een nieuw subitem in" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Bewerk het geselecteerde item of sluit de dialoog" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Markeer de geselecteerde taak/taken als (niet) gereed" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Annuleer een dialoog of verplaats toetsenbordfocus van het zoekveld terug " "naar de tab" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Verplaats toetsenbordfocus naar het volgende veld in de dialoog" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Verplaats toetsenbordfocus naar het vorige veld in de dialoog" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Verplaats toetsenbordfocus naar het volgende tabblad in een notebook" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Verplaats toetsenbordfocus naar het vorige tabblad in een notebook" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Toon menu of dropdown box" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Het onderwerp van het geselecteerde item bewerken" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versie %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s is werk in uitvoering. Hoewel de %(name)s ontwikkelaars hun best " "doen om het te voorkomen, treden toch nu en dan fouten op. We raden dan ook " "sterk aan regelmatig backups te maken." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s heeft een mailinglijst waar het gebruik van %(name)s met " "medegebruikers kan worden besproken (in het Engels), huidige en gewenste " "features kunnen worden besproken en over fouten kan worden geklaagd. Bezoek " "%(url)s en abonneer u vandaag!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s bewerkingen kunnen onbeperkt ongedaan worden gemaakt. Elke " "verandering, zoals het bewerken van een taak of het verwijderen van een " "tijdsbesteding, kan ongedaan worden gemaakt. Selecteer 'Bewerken' -> " "'Ongedaan maken' en 'Bewerken' -> 'Opnieuw doen' om achteruit en vooruit " "door de geschiedenis van gemaakte bewerkingen te gaan." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s is beschikbaar in een aantal verschillende talen. Selecteer " "'Bewerk' -> 'Instellingen' om te zien of uw taal beschikbaar is. Als uw taal " "niet beschikbaar is, of als de vertaling verbetering behoeft, overweegt u " "dan a.u.b. te helpen bij het vertalen van %(name)s. Zie %(url)s voor meer " "informatie over hoe u kunt helpen." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Als u een URL (bijvoorbeeld %(url)s) in de beschrijving van een taak of " "inspanning opneemt wordt het een link. Door te klikken op de link zal de URL " "in uw standaard browser worden geopend." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Taken in de takenboom kunnen worden versleept om de taak-subtaak relaties te " "reorganiseren. Datzelfde geldt ook voor categoriën." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "U kunt bestanden vanuit een filebrowser op een taak slepen om bijlagen te " "maken. Door een bestand boven een tab te slepen zal de bijbehorende pagina " "naar boven komen. Door een bestand boven een ingeklapte taak te houden (het " "+ teken met een vierkantje eromheen) in de takenboom zal de taak worden " "uitgeklapt om de subtaken te tonen." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "U kunt elke tabbladlayout maken die u wilt door het slepen en plaatsen van " "tabbladen. De layout wordt opgeslagen en in de volgende sessie opnieuw " "gebruikt." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Wat precies wordt afgedrukt als u 'Bestand' -> 'Afdrukken' selecteert hangt " "af van het huidige beeld. Als het huidige beeld de takenlijst toont, zal de " "lijst van taken worden afgedrukt. Als het huidige beeld inspanning per maand " "laat zien, zal dat worden geprint. Dit gaat ook op voor zichtbare kolommen, " "sorteer volgorde, gefiltered taken, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Klik met de muis op een kolomkop om volgens die kolom te sorteren. Klik nog " "een keer op de kolomkop om de sorteervolgorde te veranderen van oplopend " "naar afdalend en andersom. Klik met de rechtermuisknop op een kolomkop om " "die kolom te verbergen of extra kolommen zichtbaar te maken." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "U kunt een template maken voor taken om de invoer te vergemakkelijken " "wanneer u veel soortgelijke taken wilt invoeren." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab wisselt tussen tabs in dialogen." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Tip van de dag" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Volgende tip" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Toon tips bij het starten" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "Selecteer bestanden om als bijlage aan de geselecteerde items toe te voegen" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Een notitie aan de gelecteerde items toevoegen" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Een nieuwe categorie toevoegen" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "De geselecteerde items knippen en op het klembord plaatsen" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "De gelecteerde items naar het klembord kopiëren" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Item(s) van het klembord plakken" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Plak item(s) van het klembord als subitem van het geselecteerde item." #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Opties bewerken" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "De laatste ongedaan gemaakte bewerking opnieuw uitvoeren" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Alle items in het huidige tabblad selecteren" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "De laatste bewerking ongedaan maken" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Een tijdsbesteding aan de geselecteerde ta(a)k(en) toevoegen" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Tijdsbesteding starten voor de geselecteerde taak" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Stop tijdsbesteding of herstart tijdsbesteding" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Het huidige bestand sluiten" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "%s beëindigen" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Open een %s bestand" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Het huidige bestand opslaan" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Het huidige bestand onder een nieuwe naam opslaan" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Helpinformatie over het programma" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Verstuur de geselecteerde items met uw standaard emailprogramma" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Een nieuwe notitie toevoegen" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Alle bijlagen van de geselecteerde items openen" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Alle notities van de geselecteerde items openen" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Het huidige bestand afdrukken" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Bewerk de pagina-instellingen" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Toon alle items (wis alle filters)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Alle items tonen, onafhankelijk van hun categorie" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Verplaats toetsenbordfocus van tab naar zoekveld" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Verlaag de prioriteit van de geselecteerde taken" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Verhoog de prioriteit van de geselecteerde taken" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Maak de geselecteerde taken de hoogste prioriteit taken" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Maak de geselecteerde taken de laagste prioriteit taken" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Een nieuwe taak invoegen" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Alle items met subitems inklappen" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Alle items met subitems uitklappen" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activeer het volgende open tabblad" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activeer het vorige open tabblad" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Een iPhone of iPod Touch probeerde verbinding te maken met Task Coach,\n" "maar er is geen wachtwoord ingesteld. Stel a.u.b. een wachtwoord in, in\n" "de iPhone sectie van de configuratie, en probeer nogmaals." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protocol versie: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Geweigerd protocol versie %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Apparaat naam: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Bestandsnaam versturen: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Volledig vanaf de burocomputer." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categorieën" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Verstuur categorie %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Antwoord: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d taken" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Verstuur taak %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d tijdsbestedingen" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Verstuur tijdsbesteding %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Voltooid." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nieuwe categorieën" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nieuwe taken" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nieuwe tijdsbestedingen" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d gewijzigde categorieën" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d gewijzigde taken" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d gewijzigde tijdsbestedingen" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d verwijderde categorieën" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d verwijderde taken" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d verwijderde tijdsbestedingen" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nieuwe categorie (subcategorie van: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Verwijder categorie %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Wijzig categorie %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nieuwe taak %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Verwijder taak %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Wijzig taak %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Einde van taaksynchronisatie." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Kon taak %s voor tijdbesteding niet vinden." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Nieuwe tijdsbesteding %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Wijzig tijdsbesteding %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "GUID versturen: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "E-mail informatie lezen..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "E-mail informatie lezen. Een ogenblik alstublieft." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Kon de gegevensfolder van Thunderbird niet vinden" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Kon het profiel van Thunderbird niet vinden." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Geen standaardsectie in profiles.ini gevonden" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Corrupt Thunderbird intern ID:\n" "%s. Dien a.u.b. een foutrapport in." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Kon geen folder voor ID\n" "%s vinden." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Onbekend URL formaat: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Kon geen IMAP-verbinding maken met %(server)s:%(port)s\n" "om het Thunderbird email bericht op te halen:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Voer het domein voor gebruiker %s in" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Kon inbox \"%s\" niet selecteren\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Geen email: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Werkelijke starttijd" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Geplande starttijd" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Geplande eindtijd" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Werkelijke eindtijd" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Herinneringstijd" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Aanmaaktijd" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Eindtijd periode" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Eindtijd periode" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Start tijd periode" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Starttijd periode" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Geen onderwerp" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nieuwe taak die vandaag af moet" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nieuwe taak die morgen af moet" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dagen" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 dag" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Elke %(frequency)d dagen" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Elke %(frequency)d weken" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Elke %(frequency)d maanden" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Elke %(frequency)d jaar" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Om de dag" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Om de week" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Om de maand" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Om het jaar" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Gisteren" #: taskcoachlib/render.py:284 msgid "now" msgstr "nu" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "De synchronisatie voor bron %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "zal een verversing vanaf de server zijn. Alle lokale \n" "items zullen worden verwijderd. Wilt u verder gaan?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "zal een verversing vanaf de client zijn. Alle items op de \n" "server zullen worden verwijderd. Wilt u verder gaan?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronisatie" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Aan het synchroniseren. Even geduld a.u.b.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d items toegevoegd.\n" "%d items gewijzigd.\n" "%d items verwijderd." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Er is een fout opgetreden bij het synchroniseren.\n" "Foutcode: %d; foutbericht: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "U moet eerst SyncML instellen, in Bewerk/SyncML voorkeuren." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Tab wisselaar" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Herstel %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Tab voorbeeld" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Sluiten" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Alle sluiten" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Volgende" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "Vo&rige" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Venster" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Bewerk" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d weken" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d uren" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Gereed" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Soort periode en aantal getoonde perioden" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Maand" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Kalender oriëntatie" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontaal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Verticaal" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Welke taken tonen" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Taken met een geplande startdatum en een geplande einddatum" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Taken met een geplande startdatum" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Taken met een geplande einddatum" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Alle taken" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Alle taken, behalve ongeplande taken" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Trek een lijn die de huidige tijd laat zien" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Kleur voor het markeren van de huidige dag" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Alle bestanden (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Wachtwoord:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "In sleutelketting opslaan" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Er was een probleem met het vinden van het wachtwoord.\n" "Stuur ons alstublieft het rapport op (zie het Help menu) en voeg een " "screenshot van deze melding toe.\n" "Het probleem is:\n" "\n" " %s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Voer astublieft uw wachtwoord in." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Voer alstublieft uw wachtwoord in" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Hoofdlettergevoelig" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Filter hoofdlettergevoelig" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Subitems toevoegen" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Subitems van gevonden items aan de zoekresultaten toevoegen" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Omschrijving ook doorzoeken" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Doorzoek zowel onderwerp als beschrijving" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Reguliere expressie" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Interpreteer zoektekst als reguliere expressie" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Dit is een ongeldige reguliere expressie." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Val terug op eenvoudig tekst doorzoeken." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Recente zoekvragen" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Tab niet doorzoekbaar" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Compatibiliteitswaarschuwing" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "De SyncML feature is uitgezet omdat de benodigde\n" "module niet kon worden ingeladen. Dit kan gebeuren omdat\n" "uw platform niet wordt ondersteund, of onder Windows, omdat\n" "niet alle benodigde DLLs aanwezig zijn. Zie de SyncML sectie\n" "van de online hulp voor details (onder \"Probleemoplossing\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Deze dialoog niet meer tonen" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Fout bij openen van URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Verwijderen\tDEL" taskcoach-1.4.3/i18n.in/nn.po000066400000000000000000005027141265347643000156410ustar00rootroot00000000000000# Norwegian Nynorsk translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:04+0000\n" "Last-Translator: Håkon Malmedal \n" "Language-Team: Norwegian Nynorsk \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: nn\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Filfeil: %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Legg til vedlegg" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nytt vedlegg" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopiér" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Fjern" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Klypp ut" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Lim inn" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Dra og slepp" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Ny kategori" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Ny underkategori" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nytt notat" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nytt undernotat" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Ny oppgåve" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Ny underoppgåve" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Start timeregistrering" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stogg timeregistrering" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Set høgste prioritet" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Sett lægste prioritet" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Auk prioritet" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Mink prioritet" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Noko gjekk gale under lagring av %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Kunne ikkje lagra" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nytt vedlegg..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Legg til nytt vedlegg" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Opna vedlegg" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Opna dei valde vedlegga" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Ny oppgåve..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datoar" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Påminning" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Repetering" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nei" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Jau" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Forteneste" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategoriar" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notatar" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Endra oppgåva" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Oppgåve" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stogg" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Dagleg" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Kvar månad" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Kvar veke" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Årleg" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periode," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "veke(r)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "månad(ar)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "år" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Kvar gång" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funksjonar" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Opne" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Slå saman" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Vel" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolonnar" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Oppgåve" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategori" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notat" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Gøym" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Side" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Opne...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Slå saman …" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Førehandsvising av utskrift" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "A&ngra" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Gjer om" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Stigande" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Ny &underoppgåve..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "S&kildring" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Gjentaking" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Påminning" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Oppgåver" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Sett inn ein ny kategori" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Lukk noverande fil" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Sett inn ny oppgåve" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Kvar %(frequency)d. dag" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Kvar %(frequency)d. veke" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Kvar %(frequency)d. månad" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Kvart %(frequency)d. år" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Annankvar dag" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Annakvar veke" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Annankvar månad" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Annakvart år" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "no" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/oc.po000066400000000000000000005120671265347643000156310ustar00rootroot00000000000000# Occitan (post 1500) translation for taskcoach # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:04+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Error" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Impossible de legir la configuracion dempuèi TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s error de fichièr" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Apondre una pèça junta" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Apondre una pèça junta a \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Novèla pèça junta" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copiar" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copiar \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Suprimir" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Suprimir \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Copar" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Copar \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Empegar" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Empegar \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Lisar / depausar" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Lisar e depausar \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Cambiar la categoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Permutar la categoria de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Categoria novèla" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Soscategoria novèla" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Soscategoria novèla de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Soscategoria novèla" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Suprimir la categoria" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Suprimir la categoria \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Lisar-desplaçar las categorias" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Esfòrç novèl" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Seguiment novèl de \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Suprimir los seguiments" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Suprimir lo seguiment \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nòta novèla" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Sosnòtas novèlas" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Sosnode novèl de \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Sosnòta novèla" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Suprimir lo comentari" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Suprimir lo comentari \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Lisar-desplaçar las nòtas" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Lisar-desplaçar la nòta \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Apondre una nòta" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Apondre un comentari a \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Apondre una sosnòta a \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Suprimir la nòta" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Suprimir la nòta \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Lisar-desplaçar los prètzfaches" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Suprimir lo prètzfach" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Suprimir lo prètzfach \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Prètzfach novèl" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Sosprètzfach novèl" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Sosprètfach novèl de \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Sosprètzfach novèl" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marcar lo prètzfach coma fach" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marcar \"%s\" coma acabat" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Aviar lo seguiment de \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Arrestar lo seguiment" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Arrestar lo seguiment de \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximizar la prioritat" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximizar la prioritat de \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizar la prioritat" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimizar la prioritat de \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Augmentar la prioritat" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Augmentar la prioritat de \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Demesir la prioritat" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Demesir la prioritat de \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Apondre la nòta als prètzfaches" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Error al moment del salvament de %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Error de salvament" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Pèça junta novèla..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Inserir una pèça junta novèla" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Dobrir la pèça junta" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Dobrir las pèças juntas seleccionadas" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutas" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutas" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutas" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutas" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutas" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutas" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 ora" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 oras" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 oras" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 oras" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 oras" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 oras" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 oras" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 oras" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 oras" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 oras" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 oras" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 setmanas" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 setmana" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total per %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "Esfòrç &novèl...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "Prètzfach &novèl..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Libre" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Libres" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculadoira" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendièr" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Gat" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Disc compacte (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "En discussion" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Relòtge" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarma de relòtge" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Cronomètre" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Ordenador de poche" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Crotz roja" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Dat" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Tèrra blava" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Tèrra verda" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envolopa" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envolopas" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Dorsièr blau" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Dorsièr verd" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Dorsièr gris" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Dorsièr irange" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Dorsièr roge" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Dorsièr jaune" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Dorsièr blau amb sagèta" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Còr" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Còrs" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Ostal verd" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Ostal roge" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Clau" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Claus" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Punt d'interrogacion" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informacion" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Led blava" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Led blau clar" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Led grisa" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Led verda" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Led verd clar" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Led iranja" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Led porpra" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Led roja" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Led jauna" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Cadenàs tampat" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Cadenàs dobèrt" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lópia" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Pianò" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nòta de musica" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Nòta" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Trombòne" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Gredon" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Persona" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Personas" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificacion" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Persona que parla" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Signe d'avertiment" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Mens" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Mai" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Estela roja" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Estela jauna" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Banasta" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Lhauces" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Parapluèja" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Pas d'icòna" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descripcion" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Subjècte" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritat" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutualaement exclusivas" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Soscategorias" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Percórrer" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Emplaçament" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Aparéncia" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Color de primièr plan" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Color de rèire plan" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Poliça" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Icòna" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datas" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Data de tèrme" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data d'acabament" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Bremba-te" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recurréncia" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progression" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Percentatge acabat" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Non" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Òc" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budgèt" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Temps passat" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Montant fixe" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Revengut" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Esfòrç" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorias" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Pèças juntas" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Nòtas" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Prerequesits" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Prètzfach" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Començar" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Setmana(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Jorn(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Arrestar" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Categorias multiplas" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Poliça de caractèrs :" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Pas cap" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Cada jorn" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Cada mes" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Cada setmana" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Cada an" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", cada" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "jorn(s)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periòde" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "setmana(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mes(es)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "annada(s)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Anullar" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Site Internet d'Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "D'acòrdi" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Fichièrs" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Totjorn" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Pas jamai" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Lenga" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Foncionalitats" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Activar SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Diluns" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Dimenge" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nom del servici Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL del servidor SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nom/ID d'utilizaire" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Bidireccional" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lenta" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Accès" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Avertiment" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Fichièrs HTML (*.html)|*.html|Totes los fichièrs (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Fichièrs CSV (*.csv)|*.csv|Fichièrs tèxte (*.txt)|*.txt|Totes los fichièrs " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Dobrir" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Fusionar" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s fusionat" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Impossible de salvar %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s tampat" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Sincronizacion..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sincronizacion amb %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fichièr" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Editar" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Afichar" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Ajuda" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportar" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Seleccionar" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtrar" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Triar" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Colomnas" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendièr" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categoria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "A&magar" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Grandes imatges" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (soscategorias)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioritat" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Pagina" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "D&obrir...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Dobrir %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "F&usionar..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Apercebut abans estampatge" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportar en &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportar en &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Quitar\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Anullar" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Restablir" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Co&par\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copiar\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "Pe&gar\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferéncias...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Preferéncias &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Tot\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "Deseleccionar" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Deseleccionar tot" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "To&rnar nomenar la vista..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Tornar nomenar la vista" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "Croiss&ent" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "&Sosprètzfach novèl..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Permutar %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Pas de subjècte)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Contengut de l'&ajuda\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Contengut de l'&ajuda\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Ajuda" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&A prepaus de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licéncia" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restablir" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Uèi" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Uèi" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tipe" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Sub&jècte" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Descripcion" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periòde" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Dimars" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Dimècres" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Dijòus" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Divendres" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Dissabte" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categorias" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Temps passat" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Revengut" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Prerequesits" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Montant &orari" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Montant &fixe" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Subjècte" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Estat : n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Prètzfaches" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Cronologia" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Ara" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Temps restant" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Datas" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanças" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Ensenhador" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Inserir una catgoria novèla" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Editar las preferéncias" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Tampar lo fichièr actual" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Sortir de %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Enregistrar lo fichièr actual" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Ajuda sul programa" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Estampar lo fichièr actiu" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Inserir un prètzfach novèl" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d jorns" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 jorn" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "ara" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Mes" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Orizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Recèrcas recentas" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Error al moment de la dobertura de l'URL" taskcoach-1.4.3/i18n.in/pap.po000066400000000000000000005370131265347643000160060ustar00rootroot00000000000000# Papiamento translation for taskcoach # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:05+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Papiamento \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: pap\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Eror" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "No por a karga e konfigurashon di TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Eror di dokumento %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Añadí dokumento" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Añadí dokumento serka \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Dokumento nobo" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopia" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopia \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Eliminá" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Eliminá \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Kòrta" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Kòrta \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Plak" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Plak \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Move i pone otro kaminda" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Move i pone otro kaminda \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Redaktá tópikonan" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Redaktá tópiko \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Kambia kategoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Kambia kategoria di \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Kategoria nobo" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Supkategoria nobo" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Supkategoria nobo di \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Supkategoria nobo" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Eliminá kategoria" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Eliminá e kategoria \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Move kategoria" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Esfuersonan nobo" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Esfuerso nobo di \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Eliminá e esfuersonan" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Eliminá esfuerso \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nota nobo" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Subnotanan nobo" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Subnota nobo di \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Subnota nobo" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Eliminá nota" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Eliminá nota \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Move i kambia logá di nota" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Move i kambia logá di nota \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Añadí nota" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Añadí nota na \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Move i kambia logá di tarea" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Eliminá tarea" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Eliminá tarea \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Tarea nobo" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Subtarea nobo" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Subtarea nobo di \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Subtarea nobo" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marka tarea komo kompletá" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marka \"%s\"komo kompletá" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Kuminsá monitòr" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Kuminsá monitòr \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stòp di monitòr" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Stòp di monitòr \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Pone prioridat máksimo" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Pone prioridat máksimo pa \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Pone prioridat mínimo" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Pone prioridat mínimo pa \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Oumentá prioridat" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Oumentá priorida di \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Baha prioridat" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Baha prioridat di \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Añadí nota na tarea" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Eror durante wardamentu di %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Eror durante wardamentu" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "mensahe di Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Dokumento nobo..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Hinka dokumento nobo" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Habri dokumneto" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Habri dokumentonan selektá" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minüt" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "No pousa" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minüt" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minüt" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minüt" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minüt" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 ora" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minüt" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 ora" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 ora" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 ora" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 ora" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 ora" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 ora" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 ora" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 ora" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 ora" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 ora" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 ora" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total pa \"%s\"" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Esfuerso nobo... \tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Skonde tareanan &inaktivo" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Skonde tareanan &aktivo" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Skonde tareanan &kompletá" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Mustra/skonde tareanan kompletá" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Tarea nobo..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Flecha pa bai abou" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Flecha pa bai abou ku status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Flecha blou sirkular" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Flecha bèrdè sirkular" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Flecha pa bai ariba" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Flecha pa bai ariba ku status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bòm" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Buki" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Buki" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Bakatòr" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Bolo" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Kalkuladó" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalènder" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Pushi" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "chèt" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "marka di ta komplet" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Oloshi" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Wèker" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stòpwòch" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Wil ku djente" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Wil ku djente" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Kòmpiuter" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Lèptòp" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "kòmpiuter di man" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Krus kòrá" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Dòu" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Tera blou" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Tera bèrdè" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelòp" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envelòp" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Folder blou" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Folder bèrdè" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Folder shinishi" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Folder oraño" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Folder kòrá" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Folder hel" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Folder blou ku flecha" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Kurason" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Kurason" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Kas bèrdè" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Kas kòrá" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Yabi" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Yabi" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Signo di pregunta" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informashon" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Led blou" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Led blou kla" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Led shinishi" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Led bèrdè" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Led bèrdè kla" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Led oraño" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Led lila" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Led kòrá" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Led hel" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Kandal será" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Kandal habrí" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupa" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota musikal" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Nota" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palèt" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Paperclip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Pòtlot" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Un hende" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Hende" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identifikashon" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Hende ku ta papia" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Señal di aviso" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Menos" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Mas" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Strea kòrá" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Strea hel" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Lus di tráfiko" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Barí di shushi" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Werlek" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Paraplü" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Solo parsial" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Yabi" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "No tin símbolo" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Deskripshon" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Tópiko" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioridat" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Ta ekskluí otro" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subkategoria" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Nabegá" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Logá" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Apariensia" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Tipo di lèter" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Emblema" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Fecha" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Fecha di entrega" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Fecha ku a kaba" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Rekordatorio" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Ripitishon" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progreso" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Porsentahe kabá" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Usa formato di henter e program" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nò" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Si" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Presupuesto" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Tempu dediká" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Presupuesto ku a sobra" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Prèis pa ora" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Prèis fiho" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Ganashi" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Esfuerso" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategoria" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Dokumento" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Nota" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tarea" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Kuminsá" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stòp" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Kuminsá monitòr for di lastu bia ku a stòp" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Uza tipo di lèter" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nigun" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Kada dia" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Kada luna" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Kada siman" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Kada aña" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "Mantené fecha riba e mes dia di siman" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", kada" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dia" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periodo" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "siman" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "luna" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "aña" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Un iPhone òf un iPod Touch ta purba\n" "sinkronisá ku e fail di tarea aki pa\n" "di promé bia. Ki tipo di sinkronisashon\n" "bo ke uza?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Refreská for di kòmpiuter" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Refreská for di e aparato" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Kanselá" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Bo a aktivá e posibilidat di sinkronisashon ku iPhone, loke\n" "ta basá riba Bonjour. Bonjour no ta instalá riba bo sistema." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Por fabor baha i instalá Bonjour pa Windows for di\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "E wèpsait di Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "En general, Avahi ta duna yudansa ku \n" "Bonjour pa Linux" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Bo por haña detaye pa bo distibushon aki" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Nota ku pa sierto sistema (Fedora), por ta ku bo mester\n" "instalá e pakete avahi-compat-libdns_sd ademas di Avhai\n" "pa esaki por traha" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "Ademas, si bo tin un firewall, chèk ku portanan 4096-4100 ta habrí." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Fail" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Warda outomátikamente despues di kada kambio" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Warda e konfigurashon (%s.ini) den mes\n" "direktorio ku e programa" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Direktorio básiko a dokumento" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Ora ta pone un dolumento aserka\n" "purba hasi su direktorio relativo na esun aki" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Funshonamentu di bentana" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Mustra e \"splash screen\" ora habri e programa" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Mustra e bentana di sugerensha ora habri e programa" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Kuminsá ku e bentana prinisipal den forma di emblema" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Semper" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nunka" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "si e tabata den forma di emblema den e seshon anterior" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Chèk si tin vershon nobo di %(name)s ora habri e programa" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Skonde e bentana prinsipal ora e ta den forma di emblema" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimisá e bentana prinsipal ora e ta será" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Pone e oloshi den e bara di tarea tek ora ta monitòr esfuerso" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Idioma" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "No por haña e idioma?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Karakterístika" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Hasi SyncML posibel" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Hasi sinkronisashon di iPhone posibel" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Djaluna" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Djadumingu" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Ora ku dia di trabou ta kuminsá" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Ora ku dia di trabou ta kaba" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Uza gradashon den e pantaya di kalènder.\n" "Esaki por hasi Task Coach traha mas poko poko" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Mustra un \"popup\" ku deskripshon di algu\n" "ora pasa riba dje" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Marka tarea mayó komo kompletá ora tur e yunan ta kompletá" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" "Oranan di pousa pa ofresé den e diálogo di rekordatorio tokante tarea" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "kódigo sekreto pa sinkronisashon ku iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nòmber di servisio di Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Pone tareanan kompletá riba e aparato" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Mustra e lòg di sinkronisashon" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Redaktor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Chèk ortografia den redaktornan" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Fecha/ora di rekordatorio" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Pousa" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Marka tarea komo kompletá" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL di e sirbidó di SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nòmber/ID di uzadó" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Hasi sinkronisashon di tarea posibel" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nòmber di database di e tarea" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Tur dos direkshon" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Poko poko" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Di un direkshon so, di parti di e kliente" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Refreská di parti di e kliente" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Solamente di direkshon di e sirbidó" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Refreská di parti di e sirbidó" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Hasi sinkronisashon di nota posibel" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Nòmber di base di dato di nota" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Akseso" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Notifiká mi ora tin vershonnan nobo." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Tin un vershon nobo di %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Vershon %(version)s di %(name)s ta disponibel di" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Aviso" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Fail %s (*.tsk)|*.tsk|Fail di \"backup\" (*.tsk.bak)|*.tsk.bak|Tur fail " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Fail di iCalendar (*.ics)|*.ics|Tur fail (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Fail HTML (*.html)|*.html|Tur fail (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "Fail CSV (*.csv)|*.csv|Fail di teksto (*.txt)|*.txt|Tur fail (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Habri" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "A karga tareanan %(nrtasks)d di %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "No por habri %s pasobra e no ta eksistí" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Uni" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "No por habri %(filename)s\n" "pasobra e ta na yabi." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "No por warda %s\n" "E ta na yabi den un otro instansha di %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "No por warda %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s fail di malchi (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "A eksportá %(count)d \"item\"pa %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sinkronisashon kompletá" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Status di sinkronisashon" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Bo tin kambio no wardá.\n" "Warda promé ku sera?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: warda e kambionan?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: fail na kandal" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "No por krea kandal pasobra seramentu na kandal no ta pèrmití\n" "na e espasio di %s.\n" "Habri %s sin ta na kandal?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Sera %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "A warda tareanan %(nrtasks)d den %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "No por habri %(filename)s\n" "pasobra a kre'é ku un vershon mas nobo di %(name)s.\n" "Por fabor instalá vershon nobo di %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Eror durante lesamentu di %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Sinkronisando..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sinkronisando ku %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Bon biní na %(name)s vershon %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Tipo di sinkronisashon" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Un iPhone o iPod ta purba sinkronisá ku e fail di tarea aki\n" "pero e negoshamentu di protokòl a faya. Por fabor\n" "entregá un rapòrt di mal funshonamentu." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fail" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Redaktá" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Mira" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Yudansa" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Eksportá" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Selektá" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Bista nobo" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Aktivá próksimo bista\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Aktivá bista anterior\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Felter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Surti" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolòm" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Opshon di taki" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Bara di hèrmènt" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Mustra/skonde e bara di status" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Bara& di status" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tarea" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Habri un tab ku un bista pa mustra tarea" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Mapa &di tarea i kuadro" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Habri un tab nobo ku un bista ku ta mustra tarea den un mapa kuadro" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "L&iña di tempu" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Habri un tab nobo ku un bista ku ta mustra e liña di tempu pa tarea i " "esfuerso" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalènder" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Habri un tab nobo ku un bista ku ta mustra tarea den un kalènder" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategoria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Habri un tab nobo ku un bista ku ta mustra kategoria" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Esfuerso" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Habri un tab nobo ku un bista ku ta mustra esfuerso" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Habri un tab nobo ku un bista ku ta mustra esfuerso pa e tarea skohí" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Nota" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Habri un tab nobo ku un bista ku ta mustra nota" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Skonde" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Skonde e bara di hèrmènt" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Imáhen chikí" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Imáhen chikí (16x16) riba e bara di hèrmènt" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Imáhen tamaño mediano" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Imáhen tamaño mediano (22x22) riba e bara di hèrmènt" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Imáhen grandi" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Imáhen grandi (32x32) riba e bara di hèrmènt" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Kambia kategoria" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Kuminsá monitòr esfuerso" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subkategoria)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtarea)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioridat" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Página" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Rekordatorio" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tarea a pasa término" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "un tarea a pasa término" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tarea serka di yega término" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "un tarea serka di yega término" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "monitòr \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "monitòr esfuerso pa %d tarea" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Habri...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Habri %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Uni..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Uni tarea di otro fail ku e fail aki" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Sera\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Warda\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "W&arda komo...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Warda e tarea skohí komo malchi di tarea" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Bo no por deshasí kitamentu di kosnan eliminá.\n" "Si bo ke hasi SynchML posibel atrobe den futuro\n" "ku mesun sirbidó ku bo a uza anteriormente\n" "e kosnan aki probablemente lo bini bèk.\n" "\n" "Bo ke kita e kosnan tòg?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Mustra un bista previo di kon e imprenta lo ta" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Bista previo di imprenta" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Eksportá komo &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Eksportá komo &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Eksportá komo &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Sinkronisá ku un sirbidó SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Bandoná\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Deshasí" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Hasi di nobo" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "K&òrta\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopia\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Plak\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Redaktá preferenshanan di SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Tur\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Des-selektá" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Des-selektá tur kos" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Kambia nòmber di bista..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Kambia nòmber di e bista selektá" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Título nobo pa e bista:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Duna e bista un nòmber nobo" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Skonde e klòm aki" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Skonde e kolòm skohí" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Ekspandé tur kos\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Redusí tur obheto\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Oumentando" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Surti oumentando (marká) o disminuyendo (no marká)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Ora kompará teksto, surtimentu ta sensitivo(si e ta marká) on no sensitivo " "(si e no ta narká) pa mayúskulo i minúskulo" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Surti &promé pa status" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Surti e tareanan pa status (aktivo/inaktivo/kompletá) promé" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Skonde tareanan k&ompuesto" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Mustra/skonde tareanan ku subtarea den e formato di lista" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Krea un tarea noboi for di malchi" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Hinka un tarea nobo ku e kategorianan skohí marká" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "&Subtarea nobo..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marka e tareanan skohí komo kompletá" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Kambia %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "No por manda email:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "Eror di email di %s" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Ningun tópiko)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Kuminsá monitòr esfuerso pa %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Skohe un tarea via e menu i kuminsá monitòr esfuerso p'e" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Stòp di monitòr esfuerso pa tarea(nan) aktivo" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Hinka un nota nobo i marka e kategorianan skohí" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Eror durante habrimentu di dokumento" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Kontenido di &Yudansa\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Kontenido di &Yudansa\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Yudansa" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tep" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tep tokante e programa" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Tokante %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Vershon i informashon tokante kontakto pa %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Lisensia" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Lisensia pa %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Trese bèk" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Trese e bentana bèk na su estado anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detaye di esfuerso" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Esfuerso pa dia" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Esfuerso pa luna" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Esfuerso pa siman" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Felter na tur e kategorianan marká" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Felter na kualke kategoria marká" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Próksimo periodo" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Mustra e próksimo periodo" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "E periodo &Anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Mustra e periodo anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Awe" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Mustra awe" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Kambio di tamaño di klòm outomátiko" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Ora e ta marká, kambia tamaño di klòm outomátikamente pa yena e espasio " "disponibel" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tipo" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Surti segun tipo" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Tó&piko" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Surti segun deskripshon" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Deskripshon" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Mustra/skonde e kolòm di deskripshon" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Nota" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Mustra/skonde e kolòm di nota" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Dokumento" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Mustra/skonde e kolòm di dokumento" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategorianan: %d selectá, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtrá" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Periodo" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Tempu total dediká" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Ganashi total" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Djamars" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Djarason" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Djaweps" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Djabièrnè" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Djasabra" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategoria" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Mustra/skonde e kolòm di kategoria" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Tempu dediká" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Mustra/skonde e kolòm di tempu dediká" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Ganashi" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Mustra/skonde e kolòm di ganashi" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Tempu &total dediká" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Mustra/skonde e kolòm di tempu total dediká" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Mustra/skonde e kolòm di ganashi total" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Esfuerso pa dia di siman" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Mustra/skonde e kolòm di esfuerso pa dia di siman" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: ta monitòr %d" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Surti kategorianan segun tópiko" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Surti kategorianan segun deskripshon" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Surti dokumentonan segun tópiko" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Surti dokumentonan segun deskripshon" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Surti dokumentonan segun kategoria" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Surti notanan segun tópiko" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Surti nota segun deskripshon" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Surti nota segun kategorio" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Surti nota segun tópiko" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Surti tarea segun deskripshon" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Surti tarea segun kategoria" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Surti tarea segun fecha ku e mester ta kla" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Fecha ku &mester ta kla" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Surti tarea segun fecha ku nan ta kompletá" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Fecha ku a &kompletá" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Surti tarea segun porshentu kompletá" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Porshentu kompletá" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Surti tarea segun ripitishon" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "Ripitishon" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Surti tarea segun persupuesto" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Presupuesto" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Surti tarea segun tempu dediká" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Presupuesto ku a &sobra" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Surti tarea segun presupuesto ku a sobra" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Surti tarea segun prioridat" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Surti tarea segun preis pa ora" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Prèis &pa ora" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Surti tarea segun prèi fiho" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Preis &fiho" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Surti tarea segun ganashi" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Surti tarea segun dia i ora di rekordatorio" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Rekordatorio" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Tópiko" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Surti nota segun kategoria" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Nota: %d skohí, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tarea: %d, skohí, %d visibel, %d total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tarea" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Liña di tempu" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Awor" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Mapa kuadra di tarea" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% kompletá" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Fechanan" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Mustra/skonde tur kolòm relashoná ku fecha" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Mustra/skonde e kolòm di fecha ku mester kompletá" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Mustra/skonde e kolòm di di fecha na kua a kompletá" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Mustra/skonde e kolòm di ripitishon" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Mustra/skonde tur kolòm relashoná ku presupuesto" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Mustra/skonde e kolòm di presupuesto" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Mustra/skonde e kolòm di presupuesto ku a sobra" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finansiero" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Mustra/skonde e kolòm relashoná ku finansa" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Mustra/skonde e kolòm di prèis pa ora" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Mustra/skonde e kolòm di prèis fiho" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Mustra/skonde e kolòm di porshentu kompletá" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Mustra/skonde e kolòm di dokumento" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Mustra/skonde e kolòm di prioridat" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Mustra/skonde e kolòm di rekordatorio" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Hinka un kategoria nobo" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Kòrta kosnan skohí i pone nan den e area di rekorte" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopia e kosnan skohí i pone nan den e area di rekorte" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Plak for di e area di rekorte" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Redaktá preferenshanan" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Bolbe hasi e lastu òrdu ku a keda deshasí" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Skohe tur kos den e bista aktual" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Deshasí e lastu òrdu" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Añadí un periodo pa e esfuerso na e tareanan skohí" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Kuminsá monitòr esfuerso pa e tarea(nan) selektá" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Sera e fail aki" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Sali for di %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Habri un fail %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Warda e fail aki" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Warda e fail aki ku un otro nòmber" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Yudansa tokante e programa" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Hinka un nota nobo" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Imprimí e fail aki" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Establesé e karakterístikanan di e página di imprenta" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Mustra tur kos (re-establesé tur felter original)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Baha prioridat di tareanan skohí" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Alsa prioridat di e tareanan skohí" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Hasi e tareanan skohí tareanan di prioridat di mas haltu" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Hasi e tareanan skohí tareanan di prioridat di mas abou" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Hinka tarea nobo" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Redus" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Ekspandé tur obheto ku subobheto" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktivá e próksimo bista habrí" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktivá e bista habrí anterior" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Mandando fail: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Kompletu, for di kòm.piuter" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "kategorianan %d" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Manda kategoria %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "rospondi: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "tarea %d" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Manda tarea %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "esfuerso %d" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Manda esfuerso %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Kompletá." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d kategoria nobo" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d tarea nobo" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d esfuereso nobo" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d kategoria modifiká" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d tarea modifiká" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d esfuerso modifiká" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d kategoria modifiká" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d tarea eliminá" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d esfuerso eliminá" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Kategoria nobo (mayor: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Eliminá kategoria %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modifiká kategoria %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Tarea nobo %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Eliminá tarea %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modifiká tarea %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Esfuerso nobo %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modifiká esfuerso %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Mandando GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Tarea nobo ku mester kompletá awe" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Tarea nobo ku mester kompletá mañan" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Kada %(frequency)d dia" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Kada %(frequency)d siman" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Kada %(frequency)d luna" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Kada %(frequency)d aña" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Kada dia pasa" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Kada dos siman" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Kada dos luna" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Kada dos aña" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "awor" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Sinkronisashon oa fuente %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "lo ta un re-apertura for di kliente. Lo eliminá tur obheto\n" "riba e otro mashin. Bo ke sigui?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sinkronisashon" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Sinkronisando. Warda, por fabor.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "a añadí %d obheto.\n" "a aktualisá %d obheto.\n" "a eliminá %d obheto." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Un eror a sosodé durante sinkronisashon.\n" "Kòdigo di eror: %d; mensahe: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Bo mester redaktá bo konfigurashon di SyncML promé, den " "Redaktá/Preferenshanan di SyncML" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "S&era" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Sera tur" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Próksimo" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Anterior" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Bentana" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Luna" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Tur fail (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Ora uza felter, rekonosé mayúskulo i minúskulo." #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Inkluí sub-obheto di obhetonan ku ta kuadra den e resultadonan" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Buska tantu den tópiko komo den deskripshon" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Esakita un ekspreshon regular ku no ta bálido." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Búskedanan resien" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "No por buska den e bista" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Aviso di komaptibilidat" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "No mustra e diálogo aki nunka mas" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Eror durante habrimentu di e URL" taskcoach-1.4.3/i18n.in/pl.po000066400000000000000000007026661265347643000156510ustar00rootroot00000000000000# translation of pl.po to Nederlands # Polish translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2007. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:27+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Wystąpiły błędy. Sprawdź plik \"taskcoachlog.txt\" w folderze \"Moje " "Dokumenty\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Błąd" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Wystąpiły błędy. Proszę zobaczyć \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Nie można wczytać ustawień z pliku TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Błąd pliku %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" stało się głównym zadaniem ponieważ zadanie nadrzędne zostało " "usunięte." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Wykryto konflikty dla \"%s\"." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Edytuj położenie załączników" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Edytuj położenie załącznika \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Dodaj załącznik" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Dodaj załącznik do \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nowy załącznik" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Usuń załącznik" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Usuń załącznik \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopiuj" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopiuj \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Usuń" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Usuń \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Wytnij" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Wytnij \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Wklej" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Wklej \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Wklej j&ako podelement" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Wklej jako podelement \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Przeciągnij i upuść" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Przeciągnij i upuść \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Edytuj tematy" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Edytuj temat \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Edytuj opisy" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Edytuj opis \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Zmień ikony" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Zmień ikonę \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Zmień czcionki" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Zmień czcionkę \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Zmień pierwszoplanowe kolory" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Zmień pierwszoplanowy kolor \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Zmień kolor tła" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Zmień kolor tła \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Przełącz kategorię" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Przełącz kategorię \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nowa kategoria" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nowe podkategorie" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nowa podkategoria \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nowa podkategoria" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Edytuj wyłączne podkategorie" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Edytuj wyłączne podkategorie dla \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Usuń kategorie" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Usuń kategorię \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Przeciągnij i upuść kategorie" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nowy nakład pracy" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Nowy nakład pracy \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Usuń nakłady pracy" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Usuń nakład pracy \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Zmień zadanie działania" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Zmień działanie zadania \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Zmień datę i czas rozpoczęcia nakładu pracy" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Zmień datę i czas rozpoczęcia nakładu pracy dla \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Zmień datę i czas zakończenia nakładu pracy" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Zmień datę i czas zakończenia nakładu pracy dla \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nowa notatka" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nowe podnotatki" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nowa podnotatka dla \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nowa podnotatka" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Usuń notatki" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Usuń notatkę \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Przeciągnij i upuść notatki" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Przeciągnij i upuść notatkę \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Dodaj notatkę" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Dodaj notatkę do \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Dodaj podnotatkę" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Dodaj podnotatkę \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Usuń notatkę" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Usuń notatkę z \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Przeciągnij i upuść zadania" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Usuń zadania" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Usuń zadanie \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nowe zadanie" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nowe podzadania" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nowe podzadanie dla \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nowe podzadanie" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Oznacz zadania jako wykonane" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Oznacz \"%s\" jako wykonane" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Oznacz zadanie jako aktywne" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Oznacz \"%s\" jako aktywne" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Oznacz zadanie jako nieaktywne" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Oznacz \"%s\" jako nieaktywne" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Rozpocznij mierzenie" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Rozpocznij mierzenie \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Zakończ mierzenie" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Zatrzymaj mierzenie \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maksymalizuj priorytet" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Ustaw najwyższy priorytet dla \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimalizuj priorytet" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Ustaw najniższy priorytet dla \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Zwiększ priorytet" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Zwiększ priorytet dla \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Zmniejsz priorytet" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Zmniejsz priorytet dla \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Zmień priorytet" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Zmień priorytet dla \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Dodaj notatkę do zadań" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Zmień planowaną datę rozpoczęcia" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Zmień planowaną datę rozpoczęcia dla \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Zmień datę końcową" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Zmień datę końcową dla \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Zmień faktyczną datę rozpoczęcia" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Zmień faktyczną datę rozpoczęcia dla \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Zmień datę zakończenia" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Zmień datę zakończenia dla \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Zmień datę/czas przypomnienia" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Zmień datę/czas przypomnienia \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Zmień powtórzenia" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Zmień powtórzenie dla \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Zmień procent zakończenia \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Zmień kiedy zadanie bedzie oznaczone jako zakończone" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Zmień kiedy \"%s\" będzie oznaczone jako zakończone" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Zmiana budżetu" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Zmień budżet \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Zmiana stawek godzinnych" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Zmień stawkę godzinną \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Zmień stałe stawki" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Zmień stałą stawkę \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Przełącz wymagania" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Przełącz wymagania dla \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Wystąpił błąd podczas odczytu ustawień %s-%s z %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Wartość: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Błąd: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "%s użyje domyślnych ustawień i powinien działać normalnie." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Błąd ustawień" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Błąd podczas zapisywania %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Błąd podczas zapisu" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Wiadomość programu pocztowego" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nowy załącznik..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Dodaj nowy załącznik" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Otwórz załącznik" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Otwórz zaznaczone załączniki" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minut" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Nie śpij" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minut" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minut" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minut" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minut" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 godziny" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minut" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 godzina" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 godziny" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 godziny" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 godziny" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 godzin" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 godzin" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 godzin" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 godzin" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 godziny" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 godzin" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 godziny" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 tygodnie" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 tydzień" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Ogółem" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Ogółem z %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "Nowy nakład &pracy...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Nieaktywne zadania" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Ukryj &nieaktywne zadania" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Zadania nieaktywne: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Pokaż/ukryj nieaktywne zadania (niekompletne zadania bez aktualnej daty " "rozpoczęcia)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Opóźnione zadania" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Ukryj &opóźnione zadania" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Opóźnione zadania: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Pokaż/ukryj opóźnione zadania (nieaktywne zadania z zaplanowanym " "rozpoczęciem w przeszłości)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktywne zadania" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktywne zadania: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Ukryj &aktywne zadania" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Pokaż/ukryj aktywne zadania (niekompletne zadania z zaległą faktyczną datą " "rozpoczęcia)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Zadania do wykonania wkrótce" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Zadania do wykonania wkrótce: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Ukryj za&dania do wykonania wkrótce" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Pokaż/ukryj zadania do wykonania wkrótce (niekompletne zadania z datą " "wykonania w najbliższej przyszłości)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Zaległe zadania" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Ukryj za&ległe zadania" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Zaległe zadania: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Pokaż/ukryj zadania zaległe (niekompletne zadania z datą wykonania w " "przeszłości)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Zakończone zadania" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Zakończone zadania: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Ukryj zakoń&czone zadania" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Pokaż/ukryj zakończone zadania" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nowe zadanie..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Strzałka w dół" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Strzałka w dół z statusem" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Niebieskie strzałki pętli" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Zielone strzałki pętli" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Strzałka w górę" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Strzałka w górę z statusem" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Książka" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Książki" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Pudełko" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Biedronka" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Ciastko" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Kalkulator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalendarz" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Kot" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Płyta CD" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Wykresy" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Rozmowa" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Sprawdź zaznaczenie" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Sprawdź zaznaczenia" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Zegar" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Budzik" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stoper" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Tryb" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Tryby" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Komputer stacjonarny" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Komputer przenośny" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Komputer kieszonkowy" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Czerwony krzyż" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Umierać" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokument" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Niebieska ziemia" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Zielona ziemia" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Koperta" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Koperty" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Niebieski folder" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Jasnoniebieski folder" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Zielony folder" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Szary folder" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Pomarańczowy folder" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Fioletowy folder" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Czerwony folder" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Żółty folder" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Niebieski folder ze strzałką" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Serce" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Serca" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Zielony dom" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Czerwony dom" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Klucz" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Klucze" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Żarówka" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Znak zapytania" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informacja" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Niebieska dioda LED" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Jasno niebieska dioda" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Szara dioda LED" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Zielona dioda LED" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Jasno zielona dioda" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Pomaranczowa dioda LED" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Fioletowa dioda LED" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Czerwona dioda LED" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "żółta dioda LED" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Koło ratunkowe" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Zamknięty zamek" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Otwarty zamek" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupa" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Fortepian" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Muzyczna notatka" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Notatka" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Spinacz" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Ołówek" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Osoba" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Ludzie" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identyfikacja" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Osoba mówi" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Znak ostrzegawczy" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Czerwona gwiazda" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Żółta gwiazda" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semafor" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Śmietnik" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Błyskawica" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Parasolka" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Częściowo słonecznie" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Klucz" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Bez ikon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Plik" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Pełna ścieżka" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Data" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Przywróć" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Zamknij" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Wybierz miejsce do którego przywrócić" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Wiadomość od deweloperów %s" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Zobacz:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Opis" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Edytuj, aby zmienić wszystkie tematy" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Temat" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Edytuj, aby zmienić wszystkie opisy" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Data utworzenia" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Data modyfikacji" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priorytet" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Wykluczają się wzajemnie" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Podkategorie" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Edytuj, aby zmienić lokalizację wszystkich załączników" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Przeglądaj" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Miejsce" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Wygląd" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Kolor pierwszoplanowy" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Kolor tła" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Czcionka" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ikona" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Daty" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Planowana data rozpoczęcia" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Data wykonania" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Faktyczna data rozpoczęcia" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data zakończenia" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Przypomnienie" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Powtórzenia" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Postęp" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Stopień zaawansowania" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Użyj domyślnych ustawień aplikacji" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nie" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Tak" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Zaznaczyć zadanie jako zakończone, gdy wszystkie podzadania zostaną " "zakończone?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budżet" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Spędzony czas" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Pozostały budżet" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Stawka godzinowa" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Stała stawka" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Przychód" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Nakład pracy" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorie" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Załączniki" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notatki" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Wymagania" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Edytuj zadanie" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Zadanie" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Rozpocznij" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Tydzień/Tygodnie" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Dzień/Dni" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Godzina(y)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minuta(y)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Zatrzymaj" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Rozpocznij mierzenie od ostatniego zatrzymania" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Zatrzymaj mierzenie czasu" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Uwaga: start może być wcześniejszy niż stop" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Wiele zadań" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (zadanie)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Wiele kategorii" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (kategorię)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Wiele notatek" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (uwaga)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Kilka załączników" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (załącznik)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Wiele działań" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (działanie)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Użyj czcionki:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Użyj koloru:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Brak" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Codziennie" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Miesięcznie" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Co tydzień" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Rocznie" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "zachowaj dzień tygodnia" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", każdy" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Zatrzymaj po" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "nawroty" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Zaplanuj każde kolejne powtórzenie w oparciu o" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "poprzedni planowany start i/lub termin" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "ostatnia data zakończenia" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dzień/dni" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "okres," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "tydzień/tygodnie" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "miesiąc/miesiące" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "rok/lata" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Eksportuj elementy z:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Eksportuj tylko zaznaczone elementy" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Kolumny do eksportu:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Umieść daty i czasy zadań w osobnych kolumnach" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Zapisz informacje o stylu do oddzielnego pliku CSS" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Jeżeli istnieje już plik CSS %(name)s nie nadpisze go przy eksportowanego " "pliku. Dzięki temu można zmieniać style bez utraty dokonanych zmian przy " "kolejnych eksportach." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Eksportuj jako plik CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Eksportuj jako iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Eksportuj jako HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Eksportuj jako Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Urządzenie iPhone lub iPod próbuje\n" "zsynchronizować ten plik zadań\n" "po raz pierwszy. Jakiego trybu\n" "synchronizacji użyć?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Odśwież z komputera" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Odśwież z urządzenia" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Anuluj" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Aktywowałeś usługę synchronizacji iPhone, która wymaga Bonjour. \n" "Bonjour nie jest zainstalowane na twoim systemie." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Należy pobrać i zainstalować Bonjour dla Windows ze\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "strony Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour dla Linuxa jest dostarczany przez\n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" "Tutaj możesz znaleźć szczegółowe informacje dotyczące twojej dystrybucji" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Należy pamiętać, że na niektórych systemach (Fedora), musisz\n" "zainstalować pakiet avahi-compat-libdns_sd jak również Avahi\n" "w celu działania." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Ponadto, jeżeli używasz firewall'a upewnij się, że porty 4096-4100 są " "otwarte." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Ok" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "To ustawienie zostanie włączone po ponownym uruchomieniu programu %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Te ustawienia mogą być zmienione dla każdego zadania\n" "w jego oknie edycyjnym." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Pliki" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Zapisuj automatycznie po każdej zmianie" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Automatycznie ładuj zmiany kiedy plik zostanie zmieniony" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Rozpocznij monitorowanie systemu plików" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Spróbuj wykryć zmiany pliku zadania w czasie rzeczywistym.\n" "Nie zaznaczaj tego jeśli twoje zadanie jest na udziale sieciowym.\n" "Musisz ucuchomić ponownie %s po zmianie." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Zapisz ustawienia (%s.ini) w tym samym \n" "katalogu co program" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Dla %s uruchamianego z wymiennego nośnika" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Katalog bazy załączników" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Dodając załącznik spróbuj zamienić\n" "jego ścieżkę dostępu relatywnie do tej." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Zanim zapiszesz, automatycznie importuj z" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Format Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Przed zapisaniem %s automatycznie importuje zadania\n" "z pliku Todo.txt z tą samą nazwą jak plik z zadaniami,\n" "ale z rozszerzeniem .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Podczas zapisywania automatycznie eksportuj do" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Podczas zapisywania %s automatycznie eksportuj zadania\n" "do pliku Todo.txt z tą samą nazwą jak plik z zadaniami,\n" "ale z rozszerzeniem .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Zachowanie okna" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Pokazuj ekran powitalny przy uruchomieniu" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Pokaż porady dnia przy uruchomieniu" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Startuj z oknem zminimalizowanym do ikony" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Zawsze" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nigdy" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Jeśli został zminimalizowany w poprzedniej sesji" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Sprawdź przy starcie dostępność nowszej wersji %(name)s" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Przy uruchamianiu %(name)s sprawdzaj wiadomości od deweloperów" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Ukryj główne okno przy minimalizacji" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimalizuj główne okno przy zamykaniu" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Animuj ikonę zegara na pasku powiadomień podczas mierzenia nakładu pracy" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Język" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Niech system określi język" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Jeżeli Twój język jest nieobsługiwany lub tłumaczenie wymaga poprawienia, " "prosimy o pomoc. Zobacz:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Nie znaleziono języka?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Wygląd zadania" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Te ustawienia wyglądu mogą być zmienione dla każdego zadania w jego oknie " "edycyjnym." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Cechy" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Wszystkie ustawienia w tej zakładce wymagają ponownego uruchomienia %s" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Aktywuj SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Włącz synchronizację z urządzeniem iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Użyj X11 do zarządzania sesjami" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Początek tygodnia pracy" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Poniedziałek" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Niedziela" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Godzina rozpoczęcia dnia pracy" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Godzina końca dnia pracy" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Koniec dnia" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Użyj gradientów w widokach kalendarza.\n" "Może to spowolnić Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minut pomiędzy sugerowanymi czasami" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "W wyskakującym menu do wyboru czasu (np. do ustawienia czasu \n" "rozpoczęcia nakładu pracy) %(name)s zaproponuje listę czasów do wybrania. \n" "Mniejsza liczba minut spowoduje wyświetlenie na liście więcej propozycji " "czasów. \n" "Oczywiście oprócz wartości z listy można wprowadzić dowolny czas \n" "niezależnie od wyświetlonych propozycji." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Czas bezczynności" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Jeżeli nie ma aktywności użytkownika w tym czasie\n" "(w minutach), %(name)s zapyta co zrobić z obecnym nakładem pracy." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Użyj dzieśiętnych czasów dla wpisów wysiłków." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Wyświetl godzinę, piętnaście minut jako 1.25 zamiast 1:15\n" "Jest to przydatne przy tworzeniu faktur." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Pokaż dymek z opisem elementu, kiedy\n" "jest zaznaczony kursorem myszy" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Daty zadania" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Oznacz zadanie jako ukończone jeśli wszystkie podzadania zostaną ukończone" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" "Liczba godzin po których zadania traktowane są jako \"do wykonania wkrótce\"" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nic" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Zmiana planowanej daty rozpoczęcia zmieni datę wykonania" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Zmiana daty wykonania zmieni planowaną datę rozpoczęcia" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Co zrobić z datą wykonania i planowanego rozpoczęcia jeżeli jedna z nich się " "zmienia" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Ustawienie" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Propozycja" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Dzisiaj" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Jutro" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Pojutrze" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Następny piątek" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Następny poniedziałek" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Początek dnia" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Początek dnia roboczego" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Aktualny czas" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Koniec dnia roboczego" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Domyślna data i czas planowanego rozpoczęcia" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Domyślna data i czas wykonania" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Domyślna faktyczna data i czas rozpoczęcia" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Domyślna data i czas zakończenia" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Domyślna data i czas przypomnienia" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Nowe zadania dla parametru \"Ustawienie\" mają wypełnione daty i czas oraz " "są zaznaczone. Dla \"Propozycja\" mają tylko wypełnione daty i czas.\n" "\n" "\"Początek dnia\" to północ 00:00, zaś \"Koniec dnia\" to tuż przed północą " "23:59.\n" "\n" "Dla parametrów \"Początek dnia roboczego\" i \"Koniec dnia roboczego\" " "używane są czasy dla dni roboczych ustawionych w zakładce Właściwości w " "Preferencjach." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Przypomnienia zadania" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "System powiadomień używany do przypomnień" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Pozwól komputerowi zgłaszać przypomnienia" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Wymaga espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Domyślny czas drzemki między przypomnieniami" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Czas drzemki do zaoferowania w zadaniu okna przypomnienia" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Hasło dla synchronizacji z iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Podczas synchronizacji należy wpisać to hasło na iPhone w celu autoryzacji" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nazwa usługi Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Prześlij zakończone zadania do urządzenia" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Pokaż dziennik synchronizacji" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Edytor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Sprawdzaj pisownię w edytorach" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Czcionka używana w polu opisu okien dialogowych" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Pobierz temat e-maila z Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Przeciągając e-mail z Mail.app następuje próba pobrania jego tematu.\n" "Może to trwać do 20 sekund." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Wybierz temat zadania z edytorze" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Po otwarciu edytora zadań wybierz i zaznacz temat zadania.\n" "To zmieni domyślny wybór." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s przypomnienie - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Przypominacz data/czas" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Drzemka" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Ustaw ten czas drzemki jako domyślny dla przyszłych przypomnień" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Oznacz zadanie zakończone" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Serwer SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Własne" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Horde-based" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "Adres URL serwera SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Użytkownik/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Aktywuj synchronizację zadań" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nazwa bazy danych zadań" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Preferowany tryb synchronizacji" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "W dwie strony" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Powolne" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "W jedną stronę od klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Odśwież od klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "W jedną stronę z serwera" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Odśwież z serwera" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Uruchom synchronizację notatek" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Baza danych notatek" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Dostęp" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Szablon nowego zadania" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Podgląd" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Dostępne narzędzia" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Dodaj na pasek narzędzi" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Usuń z paska narzędzi" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Narzędzia" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Przesuń w górę (w lewo na pasku narzędzi)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Przesuń w dół (w prawo na pasku narzędzi)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Zmień kolejność narzędzi na pasku przeciągając je." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separator" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Odstęp" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Informuj mnie o nowych wersjach." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Nowa wersja %(name)s jest dostępna" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Aktualnie używasz %(name)s w wersji %(currentVersion)s" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Wersja %(version)s %(name)s jest dostępna z" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s jest aktualny." #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s jest aktualny wersja %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Nie mogę znaleźć najnowszej wersji" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Nie mogę znaleźć najnowszej wersji %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Wersja wstępna" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Używana jest wersja wstępna %(name)s wersji %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Najnowsza wydana wersja %(name)s to %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Ostrzeżenie" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach ma znane problemy z menadżerem sesji XFCE4.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Jeżeli przy starcie występuje losowe zamrożenie aplikacji należy od znaczyć " "\"Użyj X11 do zarządzania sesjami\" w zakładce Właściwości w Preferencjach.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Nie wyświetlaj tego okna przy uruchamianiu" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Brak aktywności użytkownika od %s. Mierzono czas wykonania\n" "następującego zadania:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Nic nie rób" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Zakończ o %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Zakończ o %s i wznów teraz" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Powiadomienie" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s pliki (*.tsk)|*.tsk|Wszystkie pliki (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Pliki %s (*.tsk)|*.tsk|Pliki zapasowe (*.tsk.bak)|*.tsk.bak|Wszystkie pliki " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Pliki iCalendar (*.ics)|*.isc|Wszystkie pliki (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Pliki HTML (*.html)|*.html|Wszystkie pliki (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Pliki CSV (*.csv)|*.csv|Pliki Tekstowe (*.txt)|*.txt|Wszystkie pliki (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Pliki tekstowe (*.txt)|*.txt|Wszystkie pliki (*.*)|*.*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Otwórz" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Wczytano %(nrtasks)d zadań z pliku %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Nie można otworzyć %s, ponieważ nie istnieje" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Połącz" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Nie można otworzyć %(filename)s\n" "ponieważ jest zablokowany." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Dołączono %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Z&apisz jako" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Zapisz zaznaczenie" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Nie można zapisać %s\n" "Zablokowany jest przez inną instancję %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Nie można zapisać %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importuj szablon" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s pliki szablonu (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Nie można zaimportować szablonu %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Eksportowanych %(count)d elementów do %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synchronizacja zakończona" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Status synchronizacji" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Nie można otworzyć %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "Plik %s istnieje." #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Pewne zmiany nie zostały zapisane.\n" "Zapisać przed wyjściem?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: zapisać zmiany?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Nie można otworzyć %s ponieważ jest zablokowane.\n" "\n" "To oznacza, że inna kopia Task Coach\n" "jest uruchomiona i otworzyła ten plik lub w poprzedniej\n" "kopii Task Coach wystąpił błąd. Jeśli nie ma uruchomionej\n" "innej kopii, to można bezpiecznie wyłączyć blokadę.\n" "\n" "Wyłączyć blokadę?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "plik %s jest zablokowany" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Nie można włączyć blokady, ponieważ blokowanie nie jest wspierane\n" "w miejscu %s.\n" "Otworzyć %s odblokowane?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Zamknij %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Zapisano %(nrtasks)d zadań do %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Nie można otworzyć %(filename)s\n" "ponieważ został utworzony przez nowszą wersję %(name)s.\n" "Proszę zaktualizuj %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Błąd przy odczytywaniu %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Menedżer kopii zapasowych zostanie otwarty w celu przywrócenia\n" "starszej wersji tego pliku." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronizacja..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronizacja z %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Witamy w %(name)s wersja %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Nie można przywrócić wyglądu okien z TaskCoach.ini:\n" "%s\n" "\n" "Zastosowany zostanie domyślny wygląd okien.\n" "\n" "Jeżeli to się powtórzy ponownie należy zrobić kopie pliku TaskCoach.ini " "przed zamknięciem programu. Następnie zgłosić błąd i dołączyć kopię pliku " "TaskCoach.ini do zgłoszenia." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s błąd ustawień" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Rodzaj synchronizacji" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Urządzenie iPhone lub iPod Touch próbowało zsynchronizować się\n" "z plikiem tego zadania, próba połączenia nie powiodła się.\n" "Prześlij plik z raportem błędu." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Plik" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Edycja" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Widok" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nowy" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Akcje" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "Pomo&c" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importuj" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Eksportuj" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Wybierz" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Nowa karta podglądu" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Aktywuj kolejną kartę podglądu\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "&Aktywuj poprzednią kartę podglądu\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "Tryb" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtruj" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortuj" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolumny" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Zaokrąglanie" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Opcje &drzewa" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Pasek &narzędzi" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Pokaż/ukryj pasek statusu" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Pasek s&tanu" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Zadania" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Otwórz nową zakładkę z listą zadań" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "&Statystyk zadań" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Otwórz nową zakładkę z widokiem statystyk zadania" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "&Mapy zadań" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Otwiera nową zakładkę zawierającą mapę kwadratów symbolizujących zadania" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Ś&cieżek czasu" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Otwórz nową zakładkę z podglądem na ścieżkę czasu dla zadań i nakładu pracy" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "K&alendarza" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Otwórz nową kartę z widokiem, który wyświetla zadania w kalendarzu" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hierarchiczny kalendarz" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Otwórz nową zakładkę z widokiem, który wyświetla hierarchię w kalendarzu" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategorie" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Otwórz nową kartę z widokiem wyświetlającym kategorie" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Nakładu pracy" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Otwórz nową zakładkę z listą nakładu pracy" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Wysi&łek dla wybranego zadania/ń" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Otwiera nową zakładkę pokazującą nakład pracy dla wybranego zadania" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notatka" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Otwórz nową kartę z podglądem wyświetlającym notatki" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Ukryj" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Ukryj pasek narzędzi" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Małe obrazki" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "&Małe obrazki (16x16) na pasku narzędzi" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Ś&rednie obrazki" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Obrazki średniego rozmiaru (22x22) na pasku narzędzi" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Duże obrazki" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Duże obrazki (32x32) na pasku narzędzi" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nowe zadanie z &szablonu" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Przełącz ka&tegorię" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Z&mień priorytet zadania" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Rozpocznij mierzenie nakładu pracy" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (podkategorie)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (podzadań)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priorytet" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Strona" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Przypomnienie" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d zaległych zadań" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "jedno zaległe zadanie" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "Dla %d zadań zbliża sie termin zakończenia" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "dla jednego zadania zbliza się termin zakończenia" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "mierzenie \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "mierzenie nakładu pracy dla %d zadań" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Otwórz...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Otwórz %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Dołącz..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Dołącz zadania z innego pliku z zadaniami z aktualnego pliku" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Zamknij\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "Z&apisz\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Włą&cz zmiany z dysku\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Z&apisz jako...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Zapisz wybrane zadania w &nowym pliku zadań..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Zapisz wybrane zadania do osobnego pliku zadań" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Zapisz &wybrane zadanie jako szablon" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Zapisz wybrane zadanie jako szablon zadania" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "I&mportuj szablon..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importuj nowy szablon z pliku z szablonem" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Edytuj szablony..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Edytuj istejce szablony" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Edytuj szablony" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Wymazywanie usuniętych elementów" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Faktycznie usuwa skasowane zadania i notatki (zobacz opis SyncML w Pomocy)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Wymazywanie usuniętych elementów można cofnąć.\n" "W przypadku ponownego uruchomienia\n" "funkcji SyncML w przyszłości przy użyciu\n" "tego samego serwera, jaki był używany,\n" "usunięte wpisy mogą zostać przywrócone.\n" "\n" "Czy wymazać dane?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Ustawienia strony... \tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Podgląd wydruku..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Pokaż podgląd wydruku" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Podgląd wydruku" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "D&rukuj...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Zarządzaj kopimi zapasowymi..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Zarządzaj wszystkimi plikami kopii zapasowych" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Eksportuj jako &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Eksport elementów z podglądu w formacie HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Eksportuj jako &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Eksport elementów z podglądu w formacie Wartości Rozdzielanych Przecinkami " "(CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Eksportuj jako &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Eksport elementów z podglądu w formacie iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Eksportuj jako &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Eksport elementów z podglądu w formacie Todo.txt (zobacz todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importuj z CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importuj zadania z pliku CSV" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importuj CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Wybrany plik jest pusty. Proszę wybrać inny plik." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "Importuj &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importuj zadania z pliku Todo.txt (zobacz todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importuj Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Synchronizacja S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synchronizuj z serwerem SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Za&kończ\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Cofnij" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Ponów" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Wytnij\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopiuj\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "Wkl&ej\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Wklej j&ako podelement\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "P&referencje...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferencje" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Preferencje &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Edytuj preferencje SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Preferencje SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Dostosuj pasek narzędzi" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Dostosuj" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Wszystko\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "Wyczyść &zaznaczenie" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Nie wybieraj żadnego elementu" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Wyczyść wszystkie filtry\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Resetuj wszystkie kategorie\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Pokaż/ukryj elementy należące do %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "Z&mień nazwę karty podglądu..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Zmień nazwę karty wybranego podglądu" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nowa nazwa karty podglądu:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Zmień nazwę karty podglądu" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Ukryj kolumnę" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Ukryj wybraną kolumnę" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Rozwiń wszystkie elementy\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "Zwiń wszystkie elementy\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Rosnąco" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sortuj rosnąco (zaznaczone) lub malejąco (niezaznaczone)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Według &wielkości liter" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Przy porównywaniu tekstu, sortowanie rozróżnia duże i małe litery " "(zaznaczone) lub nie (odznaczone)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Według &statusu" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sortuj według statusu (aktywne/nieaktywne/zakończone)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Ukryj złożon&e zadania" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Pokaż/ukryj zadania z podzadaniami w trybie listy" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Edytuj...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Edytuj wybrane elementy" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "&Edytuj mierzenie zadania...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Edytuj aktualnie mierzone zadanie(a)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Usuń\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Usuń wybrane elementy" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Utwórz nowe zadanie z szablonu" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nowe zadanie w wybranej &kategorii..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Wstaw nowe zadanie i zaznacz wybrane kategorie" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nowe zadanie z wybranymi zadaniami wymaganymi..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Wprowadź nowe zadanie z wybranymi zadaniami jako wymaganymi zadaniami" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nowe zadania z wybranymi zadaniami jako zależnymi..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Wprowadź nowe zadanie z wybranymi zadaniami jako zależnymi" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nowy pode&lement..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nowe po&dzadanie..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nowa po&dnotatka..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "N&owa podkategoria..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Wprowadź nowy podelement dla wybranego elementu" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Oznacz zadanie jako &aktywne\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Oznacz wybrane zadanie(a) jako aktywne" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Oznacz zadanie jako &nieaktywne\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Oznacz wybrane zadanie(a) jako nieaktywne" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Oznacz zadanie jako &zakończone\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Oznacz wybrane zadania jako zakończone" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Ustaw najwyższy priorytet\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "Ustaw najniższy priorytet\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "Podnieś priorytet\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Obniż priorytet\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Przełącz %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "Poczta...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Poczta...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Kilka rzeczy" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "i" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Nie można wysłać email-a:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s błąd mail" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Dodaj no&tatkę...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Otwórz wszystkie notatki...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Rozpocznij mierzenie nakładu pracy\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Rozpocznij mierzenie nakładu pracy dla zadań z zaznaczonym nakładem pracy" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Brak tematu)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Rozpocznij mierzenie nakładu pracy dla %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Wybierz zadanie przez menu i rozpocznij mierzenie nakładu pracy" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Zatrzymaj/&wznów mierzenie nakładu pracy\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "&Zatrzymaj mierzenie %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Zatrzymaj mierzenie nakładu pracy dla aktywnych zadań" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Wznów mierzenie %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Wznów mierzenie nakładu pracy dla ostatnio mierzonego zadania" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "wiele zadań" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nowa kategoria...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nowa notatka...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nowa ¬atka w wybranej kategorii..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Wstaw nową notatkę z zaznaczonymi wybranymi kategoriami" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Dodaj załącznik...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Błąd podczas otwierania załącznika" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Otwórz wszystkie załączniki...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Zawartość pliku pomocy\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Zawartość pliku pomocy\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Pomoc" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "Po&dpowiedzi" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Podpowiedzi dotyczące programu" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Zamazywanie" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Do raportu o błędzie dołącz plik z Zamazanymi danymi" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Twój plik zadań został Zamazany i zapisany w:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Zakończono" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&O %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Dane kontaktowe i informacje o wersji %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "O programie %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licencja" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Licencja %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Sprawdź dostępność aktualizacji" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Sprawdź dostępność nowej wersji %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Nie można otworzyć URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "Błąd URL %s" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Najczęściej zadawane pytania" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Przeglądaj najczęściej zadawane pytania i odpowiedzi" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Zgłoś &błąd..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Zgłoś błąd lub przeglądaj znane błędy" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Wnioskuj o &funkcjonalność..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Wnioskuj o nową funkcjonalność lub głosuj na istniejące zgłoszenie" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Wnioskuj o &wsparcie..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Wnioskuj o wsparcie przez deweloperów" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Pomóż ulepszyć &tłumaczenia..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Pomóż ulepszyć tłumaczenie %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Wesprzyj projekt..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Darowizna na wsparcie rozwoju %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Przywróć" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Przywróć okno do poprzedniego stanu" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Szukaj" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Szczegóły nakładu pracy" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Dzienny nakład pracy" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Miesięczny nakład pracy" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Tygodniowy nakład pracy" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Tryb agregacji" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Lista" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Drzewo" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "Przełączanie widoku zadań między drzewem i listą" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "&Filtruj dla wszystkich zaznaczonych kategorii" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtruj dla dowolnej z zaznaczonych kategorii" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "Przełączanie filtrowania po kategoriach" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Wybór danych" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Konfiguruj" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Skonfiguruj podgląd kalendarza" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Konfiguruj widok kalendarza hierarchicznego" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Następny okres" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Pokaż następny okres" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Poprzedni okres" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Pokaż poprzedni okres" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Dziś" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Pokaż dzisiaj" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatyczne dopasowanie kolumn" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Zaznaczenie powoduje automatyczne dopasowanie kolumn, aby zajmowały całe " "dostępne miejsce" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Ustaw kąt wykresu kołowego" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Nie zaokrąglaj" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuta" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minut(y)" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Precyzja zaokrąglania" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Zawsze zaokrąglaj w górę" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Zawsze zaokrąglaj w górę do następnej wielkości zaokrąglania" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Typ" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sortuj według tytułu" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Tematu" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sortuj według opisu" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Opis" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Data utworzenia" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Sortuj według daty utworzenia" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Data &modyfikacji" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Sortuj według daty modyfikacji" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Pokaż/ukryj kolumnę opisu" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notatki" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Pokaż/ukryj kolumnę notatek" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Pokaż/ukryj kolumnę daty utworzenia" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Pokaż/ukryj kolumnę daty ostatniej modyfikacji" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Paski narzędzi można konfigurować" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Kliknij na ikonę koła zębatego by dodać przyciski i zmieniać ich kolejność." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Reorganizuj w trybie drzewa" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "W trybie drzewa ręczne ozycjonowanie jest możliwe tylko kiedy wszystkie " "zaznaczone elementy są rodzeńtwem." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "W trybie drzewa możesz wstawiać obiekty tylko na tym samym poziomie " "(nadrzędne)" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "&Ręczna kolejność" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Pokaż/ukryj kolumnę ręcznej kolejności" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "Z&ałączniki" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Pokaż/ukryj kolumnę załączników" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategorie: %d - zaznaczone, %d - wszystkie" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d - przefiltrowane" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Okres" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Całkowity spędzony czas" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Dochód całkowity" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Wtorek" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Środa" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Czwartek" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Piątek" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sobota" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorie" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Pokaż/ukryj kolumnę kategorii" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Spędzony czas" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Pokaż/ukryj kolumnę spędzonego czasu" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Przychód" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Pokaż/ukryj kolumnę przychodu" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Łączny spędzony czas" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Pokaż/ukryj kolumnę łącznego spędzonego czasu" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Całkowity przychód" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Pokaż/ukryj kolumnę całkowitego przychodu" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Nakład tygodniowy" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Pokaż/ukryj kolumnę nakładu tygodniowego" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Agregacja nakładu pracy" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Nakład pracy: %d zaznaczone, %d widoczne, %d wszystkie. Spędzony czas: %s " "zaznaczone, %s widoczne, %s wszystkie" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d mierzenia" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Szczegóły:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Wysiłek dla wybranego zadania/ń" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sortuj kategorie według tytułu" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sortuj kategorie według opisu" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Sortuj kategorie według daty utworzenia" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Sortuj kategorie według daty ostatniej modyfikacji" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sortuj kategorie ręcznie" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sortuj załączniki według tematu" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sortuj załączniki przez opis" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sortuj załączniki według kategorii" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Sortuj załączniki według daty utworzenia" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Sortuj załączniki według daty ostatniej modyfikacji" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sortuj notatki według tematu" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sortuj notatki według opisu" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sortuj notatki według kategorii" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Sortuj notatki według daty utworzenia" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Sortuj notatki według daty ostatniej modyfikacji" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sortuj notatki ręcznie" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sortuj zadania według tematu" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sortuj zadania według opisu" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sortuj zadania według kategorii" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Sortuj zadania według daty utworzenia" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Sortuj zadania według daty ostatniej modyfikacji" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sortuj zadania ręcznie" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Sortuj zadania według planowanej daty rozpoczęcia" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Planowanej daty rozpoczęcia" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sortuj zadania według daty wykonania" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Data wykonania" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sortuj zadania według daty zakończenia" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "D&aty zakończenia" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sortuj zadania według wymaganych zadań" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "Wy&magań" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sortuj zadania według zadań zależnych" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "Zależne" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Sortuj zadania według pozostałego czasu" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "Pozostałego czas&u" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Sortuj zadania według procentowego zakończenia" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Procent zakończenia" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sortuj zadania według powtórzeń" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Powtórzenia" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sortuj zadania według budżetu" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Budżetu" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sortuj zadania według spędzonego czasu" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "&Pozostały budżet" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sortuj zadania według pozostałego budżetu" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sortuj zadania według priorytetów" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sortuj zadania według stawki godzinowej" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Stawka godzinowa" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sortuj zadania według stałej stawki" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Stała stawka" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sortuj zadania według przychodu" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sortuj zadania według daty i czasu przypomnień" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Przypomnienie" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Tematu" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sortuj notatki według kategorii" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notatki: %d - zaznaczone, %d - wszystkie" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: nie dotyczy" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Zadania: %d - wybrane, %d - widoczne, %d - wszystkie" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d zaległe, %d opóźnione, %d nieaktywne, %d zakończone" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Kliknij z Shift przycisk filtra by wyświetlić tylko zadania mające " "odpowiadający mu status" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Zadania" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Linia czasu" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Teraz" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Mapa kwadratowa zadań" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Rozłóż zadania przez" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Kalendarz hierarchiczny" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Konfiguracja widoku kalendarza hierarchicznego" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Konfiguracja podglądu kalendarza" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ręczna kolejność" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Pokaż kolumnę ręczna kolejność, następnie złap i upuść elementy dla tej " "kolumny aby sortować je arbitralnie." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Zależne" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% zakończone" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Pozostały czas" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Daty" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Wszystkie kolumny dat" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Pokaż/ukryj wszystkie kolumny dotyczące dat" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Pokaż/ukryj kolumnę planowanej daty rozpoczęcia" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Pokaż/ukryj kolumnę daty wykonania" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Faktycznej daty rozpoczęcia" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Pokaż/ukryj kolumnę faktycznej daty rozpoczęcia" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Pokaż/ukryj kolumnę daty zakończenia" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Pokaż/ukryj kolumnę pozostałego czasu" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Pokaż/Ukryj kolumnę powtórzeń" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Wszystkie kolumny budżetu" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Pokaż/ukryj wszystkie kolumny dotyczące budżetu" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Pokaż/ukryj kolumnę budżetu" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "Pozostałego budżetu" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Pokaż/ukryj kolumnę pozostałego budżetu" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanse" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Wszystkie kolumny finansowe" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Pokaż/ukryj wszystkie kolumny związane z finansami" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Pokaż/ukryj kolumnę stawki godzinowej" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Pokaż/ukryj kolumnę stałej stawki" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Pokaż/ukryj kolumnę wymagań" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Pokaż/ukryj kolumnę zależności" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Pokaż/ukryj kolumnę procentowego zakończenia" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Pokaż/ukryj kolumnę załączników" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Pokaż/ukryj kolumnę priorytetu" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Pokaż/ukryj kolumnę przypomnień" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Wyświetl zadania jako" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Statystyki zadania" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Przecinek" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Spacja" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Dwukropek" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Średnik" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Potok" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (pierwszy dzień)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (pierwszy miesiąc)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Apostrof" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Cudzysłów" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Podwoić" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Znak końca" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importuj tylko wybrane wiersze" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Pierwszy wiersz opisuje pola" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Separator" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Format daty" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Znaki cytowania" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Znak rozdzielania" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Pole #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Wybierz plik." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategoria" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Data przypomnienia" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Procent zakończenia" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Nagłówek kolumny w pliku CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s atrybut" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Brak mapowania pola." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Pole \"%s\" nie może być wybrane kilka razy." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Pola \"%s\" nie mogą być wybrane kilka razy." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Spis treści" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "O zadaniach" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Właściwości zadania" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Stany zadania" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Kolory zadania" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Przypomnienia" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "O nakładzie pracy" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Właściwości nakładu pracy" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "O kategoriach" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Właściwości kategorii" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "O notatkach" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Właściwości notatki" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Drukowanie i eksportowanie" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "O drukowaniu i eksportowaniu" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Drukowanie" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Eksportowanie" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Tryb wielo-użytkownikowy" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "Anuluj tryb wielo-użytkownikowy" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Opcje przechowywania" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Zadania z e-mailingiem" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Indywidualne ustawienia dla e-mailingu" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integracja e-mail" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "O integracji z e-mail" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Dołączanie załącznika do e-mail" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Tworzenie zadanie z e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Wsparcie SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Co to jest SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Konfiguracja" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Ograniczenia" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Rozwiązywanie problemów" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Kasowanie usuniętych elementów" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone i iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s na iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Konfiguracja" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s na Androida?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt i Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importowanie Todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Eksportowanie Todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Szablony zadania" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "O szablonach" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Używanie szablonów" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Graficzny interfejs użytkownika" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Skróty klawiszowe" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Zadania to podstawowe obiekty, którymi można zarządzać. Zadaniami mogą być " "dowolne sprawy od pojedynczych i małych, aż do dużych złożonych projektów " "składających się z różnych faz, wielu działań i podzadań." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Zadania posiadają następujące właściwości, które można zmienić:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Temat: pojedyncza linia streszczająca zadanie." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Opis: wiele linii opisujących zadanie." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Planowana data rozpoczęcia: pierwszy dzień, w którym zadanie powinno zostać " "rozpoczęte. \n" "Domyślnie jest to data utworzenia zadania. Może być także ustawiona jako " "'None' co wskazuje, że nie jest planowana data rozpoczęcia zadania. Takie " "ustawienie może być przydatne do np. rejestracji zwolnień lekarskich." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Data wykonania: data kiedy zadanie powinno zostać zakończone. \n" "Może mieć wartość 'None' wskazującą, że to zadanie nie ma ustawionej daty " "wykonania." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Faktyczna data rozpoczęcia: data kiedy zadanie faktycznie zostało " "rozpoczęte.\n" "Faktyczna data rozpoczęcia może być ustawiona samodzielnie. Jest także " "ustawiana kiedy włączone zostanie mierzenie nakładów pracy dla zadania lub " "kiedy ustawione zostanie jego procentowe wykonanie na wartość pomiędzy 0% i " "100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Data zakończenia: data jest 'None' dopóki zadanie nie zostanie zakończone. " "Jest ustawiana na bieżącą datę kiedy zadanie oznaczane jest jako zakończone. " "Datę zakończenia można ustawić także ręcznie." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Wymagania: inne zadania, które muszą zostać zakończone przed uruchomieniem " "zadania. \n" "Zadanie pozostaje nieaktywne dopóki ostatnie wymagane zadanie nie zostanie " "zakończone. \n" "Pamiętaj, że jeżeli zadanie ma ustawioną planowaną datę rozpoczęcia, która " "jest w przeszłości i wszystkie wymagane zadania muszą być zakończone nim " "zadanie stanie się opóźnione." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budżet: liczba godzin dostępna dla zadania." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Stawka godzinowa: kwota pieniędzy zarobiona za godziny pracy nad zadaniem." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Stała stawka: kwota zarobionych pieniędzy za zadanie \n" "niezależnie od spędzonego nad nim czasu." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "Następujące wartości są obliczone na podstawie powyższych właściwości:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Pozostało dni: liczba dni jakie pozostały do terminu wykonania." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Zależne: kolejne zadanie może zostać rozpoczęte kiedy zadanie wymagane " "zostało zakończone." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Spędzony czas: nakład pracy poświęcony na zadanie." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Pozostały budżet: budżet zadania minus czas poświęcony na jego realizację." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Przychód: opłata za godzinę razy liczba godzin plus stała opłata." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Zadania mają zawsze tylko jeden z poniższych stanów:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktywne: faktyczna data rozpoczęcia już minęła;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Nieaktywne: zadanie nie zostało rozpoczęte i/lub nie wszystkie \n" "wymagane zadania zostały zakończone;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Zakończone: zadanie zostało zakończone." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Ponadto zadania mogą być określane jako:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Zaległy: data wykonania już minęła;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Do wykonania wkrótce: (gdzie 'wkrótce' może być \n" "zmieniony w preferencjach);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Opóźnione: planowane rozpoczęcie już minęło i zadanie \n" "nie zostało jeszcze rozpoczęte;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Przekroczony budżet: brak budżetu;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "W budżecie: nadal w budżecie;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Brak budżetu: zadanie nie ma budżetu." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Tekst zadań jest kolorowany według następujących zasad:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Zaległe zadania są czerwone;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Zadania do wykonania wkrótce są pomarańczowe;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Aktywne zadania mają czarny tekst i niebieską ikonę;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Opóźnione zadania są fioletowe;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Przyszłe zadania są szare" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Zakończone zadania są zaznaczone na zielono." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Oczywiście przy założeniu, że nie zmieniono ustawień w Preferencjach." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Kolor tła zadań zależy od kategorii do jakiej należy dane zadanie. \n" "Zobacz rozdział Właściwości kategorii " "poniżej." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Można ustawić przypomnienia na wybraną datę i czas. %(name)s będzie " "wyświetlał komunikat o tej dacie i czasie. Z okna przypomnienia można " "otworzyć zadanie, rozpocząć mierzenie nakładu pracy lub oznaczyć je jako " "zakończone. Można także uśpić przypomnienie na wybrany czas." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Jeżeli na komputerze zainstalowany jest Growl lub Snarl, to można " "skonfigurować %(name)s tak by z nich korzystał dla przypomnień." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Czas spędzany nad realizacją zadania może być rejestrowany jako nakład " "pracy. Wybierz zadanie i kliknij 'Rozpocznij mierzenie nakładu pracy' w menu " "lub przycisk 'Rozpocznij mierzenie nakładu pracy' na pasku z narzędziami." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "Rekordy nakładu pracy posiadają następujące właściwości, które można zmienić:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Zadanie: zadanie z nakładem pracy." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" "Data/czas rozpoczęcia: data i czas rozpoczęcia mierzenia nakładu pracy." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Data/czas zatrzymania: data i czas zakończenia mierzenia nakładu pracy.\n" "Może mieć wartość 'None' tak długo jak trwa praca nad zadaniem." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Opis: wiele linii opisujących nakład pracy." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Spędzony czas: jak dużo czasu poświęcono na pracę nad zadaniem." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Przychód: zarobione pieniądze za spędzony czas." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Zadania i notatki mogą należeć do jednej lub wielu kategorii. Po pierwsze, " "należy utworzyć kategorię, którą planuje się użyć. Następnie można dodać " "elementy do jednej lub wielu kategorii poprzez edycję elementu i zaznaczenie " "odpowiednich kategorii dla tego elementu w zakładce kategorii okna " "edycyjnego." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Można ograniczyć elementy pokazywane w karcie podglądu zadań i notatek do " "jednej lub wielu kategorii poprzez ich zaznaczenie w panelu podglądu " "kategorii. Na przykład, jeżeli istnieje kategoria 'telefony' i zostanie " "zaznaczona, to w panelu podglądu zostaną wyświetlone tylko zadania do niej " "należące." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Kategorie posiadają następujące właściwości, które można zmienić:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Temat: pojedyncza linia streszczająca kategorię." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Opis: wiele linii opisujących kategorię." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Wzajemnie wykluczające się podkategorie: pole wyboru wskazujące czy " "podkategorie się wzajemnie wykluczają dla danej kategorii. Jeśli się " "wykluczają to element może należeć do jednej z tych podkategorii. Filtrując " "można wybrać tylko jedną z wykluczających się podkategorii." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Właściwości wyglądu takie jak ikony, czcionki i kolory: \n" "właściwości wyglądu służą do wyróżniania kategorii, ale także elementów " "należących do kategorii. Jeżeli kategoria nie ma własnego koloru, czcionki " "lub ikon, a kategoria rodzica ma te ustawienia, to używane są właściwości " "rodzica. Jeżeli element należy do wielu kategorii, które posiadają ustawiony " "kolor, to będzie używana mieszanka ich kolorów do jego wyróżnienia." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notatki mogą być użyte do zapisywania informacji w pliku zadań. Notatki mogą " "być samodzielne lub należeć do innych elementów takich jak zadania i " "kategorie. Samodzielne notatki są wyświetlane w panelu przeglądania notatek. " "Notatki, które są częścią innych elementów nie są wyświetlane w panelu " "przeglądania notatek." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notatki posiadają następujące właściwości, które można zmienić:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Temat: pojedyncza linia streszczająca notatkę." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Opis: wiele linii opisujących notatkę." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Opcje wyglądu takie jak ikona, czcionka i kolory." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Drukowanie i eksportowanie działają w podobny sposób: dane do druku lub " "eksportu są brane z aktywnego panelu przeglądania. Ponadto dane są drukowane " "i eksportowane w taki sposób w jaki są wyświetlane. Zachowana jest ich " "kolejność oraz te same kolumny co w panelu przeglądania. Jeżeli przy pomocy " "filtru ukryte zostaną jakieś elementy, to nie będą one wydrukowane lub " "wyeksportowane." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Przygotuj zawartość panelu podglądu poprzez umieszczenie elementów we " "właściwej kolejności, ukryj lub wyświetl odpowiednie kolumny i zastosuj " "odpowiednie filtry." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Można zobaczyć, jak będzie wyglądał wydruk za pomocą polecenia z menu Plik -" "> Podgląd wydruku. Można edytować ustawienia strony za pomocą Plik -> " "Ustawienia strony. Jeżeli używany system umożliwia, to można wydrukować " "wszystkie widoczne elementy w aktywnym panelu podglądu lub tylko wybrane " "elementy." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Należy wybierać format eksportu danych oraz ich zakres - wszystkie widoczne " "elementy lub tylko wybrane. Dostępne formaty eksportu to między innymi CSV " "(dane rozdzielone przecinkami), HTML i iCalendar. Podczas eksportu w " "formacie HTML tworzony jest plik CSS, który można edytować i zmienić wygląd " "danych w formacie HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Indywidualne atrybuty dla zadań z e-mailingiem" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "Możesz zmienić zachowanie polecenia e-mail używając indywidualnych " "atrybutów\n" "w opisie zadania. Atrybuty muszą być w linii. Obsługiwane atrybuty to 'cc' i " "'to'. Przykłady:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Plik zadań może być otwarty przez kilka instancji %(name)s, uruchomionych\n" "na tym samym komputerze lub na innych komputerach poprzez sieć.\n" "Kiedy zapisujesz, %(name)s zmiany zostaną automatycznie włączone do zmian\n" "zapisanych już na dysku od ostatniego razu. Konflikty są rozwiązywane\n" "automatycznie, zwykle przez nadpisanie. To rodzi dwa przypadki użycia:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Pojedyńczy użytkownik, otwierający plik na wielu komputerach (praca,\n" "dom, laptop)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Wieluużytkownikow pracujących na tym samym pliku zadań." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "Pierwszy przypadek jest najczęstszy i najbardziej bezpieczny. Drugi\n" "przypadek może być niebezpieczny. Większość protokołów współdzielenia dysków " "sieciowych\n" "nie wspiera blokowania plików, dającego 100% pewności. Lista powszechnych " "protokołów i\n" "ich zachowania." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Zadńa z opcji współdzielenia nie działa w pełni. Jeśli dwóch użytkowników\n" "zapisze swoje zmiany w przedziale kilkuset milisekund, dane zostaną utracone." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "To jest najczęsszy protoków: protoków Widows i sobowtóry (Samba).\n" "Jeśli serwer i klient nie wspierają tego rozszerzenia, Task Coach nie " "będzie\n" "w stanie wykryć automatycznie, kiedy plik został zmieniony przez kogoś " "innego." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Nie testowanie jeszcze." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Popularna metoda dostępu do pliku z wielu komputerów (zobacz SpiderOak\n" "jako bezpieczniejszą alternatywę). Zmiany w pliku zadań są prawidłowo " "wykrywane po %(name)s." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integruje się z wieloma programami pocztowymi, poprzez przeciąganie " "i upuszczanie. Ma to pewne ograniczenia; e-mail jest kopiowany do katalogu z " "plikami %(name)s jako plik .eml, który można później otworzyć używając " "programu powiązanego z takim rozszerzeniem w twoim systemie. Z drugiej " "strony, można dzięki temu otwierać te wiadomości e-mail w innym programie " "niż ten co je utworzył." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Wspierane są programy pocztowe:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Z powodu ograniczeń w programie Thunderbird nie można przeciągnąć i upuścić " "jednocześnie kilka wiadomości. Powyższe ograniczenie nie dotyczy programu " "Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Istnieją dwa sposoby dołączania wiadomość e-mail do zadania:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Przeciągnąć ją na zadanie w drzewie zadań lub na liście zadań." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Przeciągnąć ją na zakładkę załącznika w edycji zadania." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Przeciągnięcie e-maila na pustą części drzewa zadań lub listy zadań tworzy " "nowe zadanie, którego tematem jest temat wiadomości, a jego opis jest " "zawartością wiadomości. Dodatkowo e-mail jest automatycznie dołączany do " "nowo utworzonego zadania." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML jest to protokół korzystający z XML przeznaczony do synchronizacji " "danych z rożnych aplikacji z serwerem. Popularnym serwerem open-source jest " "Funambol. Klienci " "do synchronizacji są dostępni dla wielu urządzeń i aplikacji (Outlook, " "Pocket PC, iPod, iPhone, Evolution, itp...), które pozwalają na " "synchronizację z serwerami: Exchange, Google Calendar, itp." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s ma wbudowanego klienta SyncML dla systemów Windows i Mac OS X (pod " "warunkiem instalacji niezbędnych plików). Oznacza to, że można " "synchronizować %(name)s z tym samym serwerem SyncML, z którym " "synchronizowany jest Outlook lub inny program oraz że można mieć w nim " "wszystkie zadania i notatki z pliku %(name)s. Oczywiście można także " "synchronizować dane w drugą stronę z serwera do %(name)s." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "W systemie Linux, należy zainstalować klienta SyncML wraz z Python-em.\n" "Dla Debiana 64-bitowy pakiet Pythona 2.7 jest dostępny na\n" " taskcoach.org ,\n" "na końcu sekcji download Linux." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Ta funkcja (SyncML) jest opcjonalna i domyślnie wyłączona. Można ją włączyć " "poprzez Preferencje -> Funkcje poprzez zaznaczenie właściwej opcji." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Konfiguracja SyncML dostępna jest poprzez Edycja -> Preferencje SyncML.\n" "Wypełnij pola: Adres URL serwera SyncML, identyfikator użytkownika na " "serwerze \n" "oraz wybierz elementy i parametry synchronizacji (zadania i/lub notatki). " "Adres URL \n" "zależny jest od wybranego serwera, poniżej przykłady:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Nazwy baz danych są dobrze zestandaryzowane; powinny działać wartości " "domyślne." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Każdy plik zadań ma swój własny ID klienta, dzięki którym serwer potrafi " "rozróżnić dane z różnych źródeł." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Pewne ograniczenia wynikają z faktu, że podstawowym typem danych jest " "vcalendar, dlatego niektóre funkcje %(name)s nie mogę być przekazane do " "serwera." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Hierarchia zadań i kategorii są tracone na serwerze." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Powtórzenia i przypomnienia nie są jeszcze wspierane." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Notatki kategorie są tracone na serwerze." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "System wykrywania/rozwiązywania konfliktów jest obejściem ograniczeń " "Funambol. Powinien działać dla większości przypadków, jednak przy " "synchronizacji wielu aplikacji z serwerem w tym samym czasie mogą wystąpić " "problemy." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Prawdopodobnie jeszcze jakieś..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Pozycje w menu dotyczące SyncML są pokazywane tylko na wspieranych " "systemach. Obecnie wspierane są następujące systemy:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bitowy (zobacz poniżej)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bitowy" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 i nowsze, zarówno Intel i PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Mogą występować problemy w systemie Windows jeżeli nie jest zainstalowany " "Microsoft Visual 8 runtime. Można go ściągnąć z strony Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Kiedy jest włączony SyncML, to skasowane zadania lub notatki nie są " "faktycznie usuwane, ale oznaczane jako skasowane. Skasowane zadania lub " "notatki są rzeczywiście usuwane z list przy najbliższej synchronizacji. Z " "tego powodu, wyłączenie SyncML bez wykonania wcześniej synchronizacji, może " "spowodować pozostawienie w pliku zadań jakiś skasowanych zadań i notatek. To " "nie jest problem, ale zajmuje trochę więcej miejsca na dysku." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "W takim przypadku można użyć polecenie z menu Plik -> \"Wymazywanie " "usuniętych elementów\", aby faktycznie usunąć takie zadania. Polecenie to " "jest aktywne tylko wtedy, kiedy są elementy do wymazania. Należy pamiętać, " "że jeżeli ponownie zostanie aktywowany SyncML i ustawiona synchronizacja z " "tym samym serwerem, to wszystkie elementy mogą zostać przewrócone z serwera, " "jeśli nie otrzymał on wcześniej informacji o skasowaniu tych elementów." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch i iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s na iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Dla iPhone/iPod Touch/iPad jest aplikacja %(name)s dostępna na Apple's AppStore. (Jeżeli nie jest zainstalowany " "iTunes na komputerze, to nastąpi przekierowanie na stronę, z której można go " "pobrać). \n" "Wspierane są następujące funkcje:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Podstawowe atrybuty zadania: tytuł, opis, daty \n" "(z powtórzeniami)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchiczne zadania i kategorie" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Mierzenie czasu" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Wiele plików zadań" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Dwukierunkowa synchronizacja z %(name)s na komputerze" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "Aplikacja jest uniwersalna i ma własny interfejs użytkownika." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Konfiguracja dla iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Istnieją pewne ustawienia aplikacji dla iPhone / iPod Touch / iPad dostępne " "w ustawieniach aplikacji:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Pokaż zakończone: czy pokazać zakończone zadania." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Pokaż nieaktywne: czy pokazywać nieaktywne zadania (planowaną datą\n" "rozpoczęcia w przyszłości)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Pozycja ikon: ikona diody może być umieszczona dowolnie z lewej lub z prawej " "strony ekranu." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Typ zagęszczony: włączenie powoduje wyświetlenie listy zadań z małymi " "diodami oraz ukryje kategorie i daty." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Potwierdzenie zakończenia: włączenie powoduje wyświetlanie okna " "potwierdzenia po kliknięciu na diodę zadania oznaczające jego zakończenie." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "N dni do wykonania wkrótce: Liczba dni, która definiuje co jest \"wkrótce\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Konfiguracja na komputerze, wszystkie systemy" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Przed rozpoczęciem synchronizacji należy skonfigurować %(name)s na " "komputerze; w preferencjach w zakładce Właściwości należy zaznaczyć \"Włącz " "synchronizację z urządzeniem iPhone\". Po ponownym uruchomieniu %(name)s w " "preferencjach w zakładce \"iPhone\" należy ustawić hasło." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Po kliknięciu przycisku \"Sync\" w widoku kategorii, %(name)s\n" "automatycznie wykryje działające %(name)s na twoim komputerze \n" "oraz poprosi o wybranie jednego (można mieć kilka aktywnych \n" "programów na jednym komputerze lub na różnych komputerach). \n" "Wyświetlana nazwa, domyślnie, zawiera opis identyfikujący \n" "komputer na którym jest uruchomiona. Można zmienić nazwę \n" "poprzez zmianę w konfiguracji \"Bonjour service name\"." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s będzie pamiętać wybrane elementy i próbował je użyć\n" "przy następnej synchronizacji; jeżeli się nie uda, to zapyta ponownie." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Należy pamiętać, że synchronizacja obywa się poprzez sieć; w takim przypadku " "nie ma potrzeby podłączania urządzenia poprzez USB, czy uruchamiania iTunes." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Konfiguracja dla Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "W systemie Windows należy zainstalować Bonjour dla Windows \n" "i odblokować połączenia na firewall'u w razie potrzeby." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Konfiguracja dla Linix" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "W systemie Linux wymagane jest zainstalowanie Avahi \n" "oraz działanie jego demona. Większość nowych dystrybucji wykonuje to " "domyślnie.\n" "Należy także zainstalować pakiet dnscompat, którego nazwa zależy od " "dystrybucji \n" "(np. dla Ubuntu to libavahi-compat-libdnssd1)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "Nie znalazłem aplikacji dla iPhone/iPod Touch na stronach Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Na komputerze musi być zainstalowany iTunes, aby móc przeglądać \n" "Apple's App Store. pobierz \n" "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Komputer nie pojawia się na liście przy próbie synchronizacji" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Należy sprawdzić, czy iPhone/iPod Touch jest podłączony do tej samej sieci " "poprzez WiFi co komputer." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone nie może się połączyć z komputerem" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Jeżeli aktywny jest firewall należy upewnić się, że porty 4096-4100 są " "otwarte." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Nie ma aplikacji %(name)s dla systemu Android. \n" "Jednak jest Todo.txt " "Touch.\n" "Przy jego pomocy można eksportować zadania z %(name)s do formatu Todo.txt, który pozwala na edytowanie zadań na " "urządzeniach z Androidem." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt jest menadżerem zdań (open source) stworzonym przez Gina Trapani, " "pracującym na plikach tekstowych. Todo.txt posiada interfejs wiersza " "poleceń. Ponieważ zawartością pliku jest to zwykły tekst, można użyć " "dowolnego edytora tekstu do jego edycji. Todo.txt Touch to wersja Todo.txt " "przeznaczona dla systemu Android. Todo.txt Touch korzysta z plików todo.txt " "umieszczonych w folderze Dropbox. %(name)s może importować i eksportować " "pliki todo.txt do tego folderu." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "Kiedy eksportujemy do Todo.txt, %(name)s tworzy obok drugi plik\n" "z suffiksem \"-meta\". Nie usówaj tego pliku. %(name)s używa go\n" "do śledzenia zewnętrznych zmian w zadaniach. W przypadku konfliktu (zadanie\n" "zmodyfikowane przez Task Coach i aplikację zewnętrzną w czasie importu)\n" "plik Todo.txt nadpisuje konflikty." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "Wskazówka: jeśli zapiszesz plik zadania w folderze z plikiem Todo.txt\n" "stworzonym w folderze Dropbox i włączysz automatyczne importowanie\n" "i eksportowanie Todo.txt, %(name)s będzie synchronizował plik zadań i plik\n" "todo.txt. Zauważ, że inny plik z sufiksem \"-meta\" zostanie także " "wygenerowany.\n" "Jest on używany wewnetrznie przez %(name)s w celu śledzenia zmian pliku " ".txt;\n" "nie modyfikuj i nie usówaj go." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importuje tytuły zadań, planowany czas rozpoczęcia, datę wykonania, " "datę zakończenia, priorytet, konteksty i projekty. Konteksty i projekty są " "razem zamieniane na kategorie w %(name)s. Projekty nie mogą być " "przekształcone w zadania nadrzędne ponieważ Todo.txt pozwala na przypisanie " "zadań do wielu projektów, zaś %(name)s pozwala by zadanie miało tylko jedno " "zadanie nadrzędne." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Przy imporcie %(name)s usiłuje dopasować zadania i kategorie oraz je " "zaktualizować zamiast tworzyć kolejne. Robi to poprzez sprawdzenie " "dopasowania tematu zadania (projektu lub kontekstu) oraz elementu rodzica " "jeśli występuje." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s eksportuje tytuły zadań, planowany czas rozpoczęcia, datę " "wykonania, datę zakończenia, priorytet i kategorią do formatu Todo.txt. " "Pozostałe atrybuty nie są eksportowane." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s obsługuje daty i czas, zaś Todo.txt tylko daty, co oznacza, że czas " "nie jest eksportowany." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Domyślnie format Todo.txt wspiera planowany czas rozpoczęcia i wykonania, " "ale nie datę zakończenia. Dlatego %(name)s rozszerza zakres eksportu o datę " "wykonania. W pliku todo.txt ma ona postać \"due:YYYY-MM-DD\"." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt ma priorytety oznaczane literami z zakresu ('A'-'Z'). \n" "%(name)s używa priorytetów oznaczonych numerami. \n" "W związku z powyższym %(name)s priorytet 1 jest zamieniany na 'A', \n" "2 na 'B', itd. aż do 26 na 'Z'. %(name)s nie eksportuje priorytetów o \n" "wartościach poniżej 1 i powyżej 26." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Kategorie, których temat zaczyna się od '+' są eksportowane jako projekty.\n" "Kategorie, których temat zaczyna się od '@' są eksportowane jako konteksty.\n" "Kategorie, których temat nie zaczyna się od '+' lub '@' nie są " "eksportowane.\n" "Podkategorie są eksportowane pod warunkiem, że ich rodzice są eksportowani." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Szablony są wzorem dla nowych zadań. Obecnie jedyną właściwością, która może " "być parametryczna są daty. Skorzystanie z szablonu powoduje powstanie " "zadania, którego daty mają zdefiniowane w szablonie odniesienie do aktualnej " "daty." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Można utworzyć szablon poprzez wybranie zadania (tylko jednego) oraz " "wybranie w menu Plik \"Zapisz wybrane zadanie jako szablon\". Wszystkie " "podzadania, notatki o załączniki są częścią szablonu, jedynie pomijane są " "kategorie." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Można także utworzyć nowy szablon w oparciu o plik szablonów (.tsktmpl). " "Wystarczy wybrać \"Importuj szablon\" z menu Plik i wskazać plik. Pliki " "szablonów są przechowywane w podkatalogu miejsca gdzie znajduje się plik " "TaskCoach.ini." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "W celu utworzenia zadania z szablonu należy z menu Utwórz wybrać \"Nowe " "zadanie z szablonu\" lub kliknąć odpowiedni przycisk pasku narzędzi. Kiedy " "tworzone jest nowe zadanie to daty planowanego rozpoczęcia, wykonania i " "zakończenia, są w razie potrzeby odnoszone do bieżącej daty. Oznacza to, że " "jeżeli utworzony zostanie szablon z zadania rozpoczynającego się dzisiaj z " "wykonaniem jutro, to przy każdym utworzeniu zadania z takiego szablonu data " "planowanego rozpoczęcia będzie ustawiona na bieżącą datę, a data wykonania " "na bieżącą plus jeden dzień." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Można dodać szablony poprzez edytor szablonów (Plik >> Edytuj szablony) " "poprzez edycję ich właściwości (temat i daty). Daty są wprowadzane " "standardowym formacie, jeżeli %(name)s nie będzie w stanie jej rozpoznać tło " "pola edycji zmieni kolor na czerwony. Przykładowe daty:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Należy pamiętać, że jeżeli system nie jest zlokalizowany, to daty należy " "ustawiać w formacie jak w języku angielskim." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Można za pomocą przeciągania i puszczania przestawiać okna podglądu nadając " "interfejsowi niemal dowolny wygląd. Kiedy zaczyna się ciągnąć jakiś podgląd, " "to pojawiają się pola pokazujące miejsca, gdzie dany podgląd można umieścić. " "Okna podglądu mogą być umieszczone na sobie i utworzą wtedy arkusz z " "zakładkami." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "W oknach dialogowych można przeciągać zakładki i zmieniać dowolnie ich " "kolejność." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Tematy i opisy zadań, notatek i kategorii mogą być edytowane bez otwierania " "okna edycji. Należy wybrać element zawierający temat lub opis do zmiany i " "kliknąć ponownie w odpowiedniej kolumnie. Pojawi się okno tekstowe " "pozwalające zmienić temat lub opis. Naciśnięcie Enter potwierdza zmiany. Zaś " "klawisz Esc pozwala zamknąć okno bez zmian. Klawisz F2 pozwala na edycję " "tematu w aktywnym oknie podglądu." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s obsługuje skróty klawiaturowe wymienione poniżej. Obecnie nie ma " "możliwości definiowania własnych skrótów klawiaturowych." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl+A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift+Ctrl+A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl+B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift+Ctrl+B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl+C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift+Ctrl+C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl+D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift+Ctrl+D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl+E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift+Ctrl+E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl+F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl+G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl+H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl+I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift+Ctrl+I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl+J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl+M (Linux i Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift+Ctrl+M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift+Ctrl+M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl+N (Linux i Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift+Ctrl+N (Linux i Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Wprowadź nowy podelement" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl+O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift+Ctrl+O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl+P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift+Ctrl+P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl+Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl+R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift+Ctrl+R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl+S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift+Ctrl+S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl+T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift+Ctrl+T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl+V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift+Ctrl+V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl+W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl+X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl+Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl+Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Edytuj wybrany element lub zamknij okno" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl+Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Oznacz wybrane zadania jako (nie)zakończone" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "Anuluj okno lub przejdź z kontroli wyszukiwania do podglądu" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Przechodzi do następnego pola w oknie" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Przechodzi do poprzedniego pola w oknie" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl+Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Przechodzi do kolejnej zakładki w arkuszu" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Przechodzi do poprzedniej zakładki w arkuszu" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift+Ctrl+Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "USUNĄĆ" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl+PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl+PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt (lewy)" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Menu rozwijane lub wyskakujące" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Edytuj temat wybranego elementu w podglądzie" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Wersja %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s jest ciągle rozwijany. Pomimo tego, że twórcy %(name)s pracują nad " "tym, aby zapobiec błędom, czasami one się zdarzają. Zalecane jest regularne " "robienie kopii zapasowej Twojej pracy." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s ma grupę mailową na której można %(name)s uzyskać pomoc dotyczącą " "jego użytkowania, wystąpić o nowe funkcje lub zgłosić błędy. Przejdź do " "%(url)s i dołącz się dzisiaj!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s posiada nieograniczoną funkcję cofania i ponawiania. Wszystkie " "dokonane zmiany: edytowanie opisu zadania lub nawet usuwanie rekordu o " "nakładzie można cofnąć. Wybierz 'Edytuj' -> 'Cofnij' i 'Edytuj' -> 'Ponów' " "aby przemieszczać się przez historię operacji." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s jest dostępny w wielu językach. Przejdź do 'Edycja' -> " "'Preferencje' aby zobaczyć czy twój język znajduje się na liście " "obsługiwanych języków. Jeśli twojego języka nie ma na liście lub tłumaczenie " "jest niepoprawne, prosimy rozważ czy mógłbyś nam pomóc w tłumaczeniu " "programu %(name)s. Odwiedź %(url)s w celu uzyskania dodatkowych informacji." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Wpisanie adresu URL (np. %(url)s) w opis zadania lub nakładu powoduje " "przekształcenie go w link. Kliknięcie w ten link spowoduje otwarcie go w " "domyślnej przeglądarce internetowej." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Można przeciągać zadania na drzewo zadań w celu utworzenia zależności " "pomiędzy nimi typu rodzic-dziecko. Tak samo możliwe jest dla kategorii." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Można przeciągać pliki z przeglądarki plików na zadania tworząc w ten sposób " "załączniki. Przeciągnięcie pliku na zakładkę spowoduje jej zmienienie, a " "przeciągnięcie pliku na zwinięte zadanie w widoku drzewa spowoduje jego " "rozwinięcie i ukazanie podzadań." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Można zmienić wygląd okien podglądu poprzez przeciąganie zakładek. Wygląd " "jest zapisywany." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Zawartość wydruku wykonanego poprzez polecenie 'Plik' -> 'Drukuj' " "uzależnione jest od aktualnego widoku. Jeśli wyświetlana jest lista zadań, " "to wydrukowana zostanie lista zadań. Jeśli wyświetlany jest nakład " "miesięczny, to zostanie on wydrukowany. Takie same zasady obowiązują przy " "kolumnach, kolejności drukowanych elementów, filtrowaniu zadań itp." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Kliknij lewym przyciskiem myszy nagłówek kolumny, aby dokonać sortowania. " "Kliknij w nagłówek ponownie, aby dokonać sortowania w przeciwnym kierunku. " "Kliknij prawym przyciskiem myszy, aby wybrać wyświetlane kolumny." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Można utworzyć szablon z zadania w celu zredukowania ilości wpisywania " "informacji, które się powtarzają." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl+Tab przełącza pomiędzy zakładkami w oknie edycyjnym." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Porada dnia" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Następna porada" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Pokaż porady po uruchomieniu" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Przeglądaj pliki do dodania jako załącznik do wybranego elementu" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Dodaj notatkę do wybranego elementu" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Wprowadź nową kategorię" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Wytnij wybrane elementy do schowka" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Skopiuj wybrane elementy do schowka" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Wklej elementy ze schowka" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Wstaw element ze schowka jako podelement wybranego elementu" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Edytuj preferencje" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Przywróć ostatnią cofniętą operację" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Zaznacz wszystkie elementy z aktualnego widoku" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Cofnij ostatnie polecenie" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Dodaj okres trwania nakładu pracy do wybranych zadań" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Rozpocznij mierzenie nakładu pracy dla wybranych zadań" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Zatrzymaj/wznów mierzenie nakładu pracy" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Zamknij bieżący plik" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Wyjdź z %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Otwórz plik %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Zapisz bieżący plik" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Załaduj zmiany z dysku" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Zapisz aktualny plik pod inną nazwą" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Pomoc programu" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Wyślij wybrane elementy za pomocą domyślnego programu mailowego" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Dodaj nową notatkę" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Otwórz wszystkie załączniki dla zaznaczonych pozycji" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Otwórz wszystkie notatki dla zaznaczonych elementów" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Drukuj bieżący plik" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Ustaw parametry strony dla drukarki" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Pokaż wszystkie elementy (usuń wszystkie filtry)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Pokaż wszystkie elementy niezależnie od kategorii" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Przejdź do okna szukania" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Zmniejsz priorytet wybranych zadań" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Zwiększ priorytet wybranych zadań" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Oznacz wybrane zadania jako zadania o najwyższym priorytecie" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Oznacz wybrane zadania jako zadania o najniższym priorytecie" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Wstaw nowe zadanie" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Zwiń wszystkie elementy z podelementami" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Rozwiń wszystkie elementy z podelementami" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktywuj kolejne otwarte okno podglądu" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktywuj poprzednio otwartą kartę podglądu" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "iPhone lub iPod Touch próbował nawiązać połączenie z Task Coach,\n" "ale nie zostało ustawione żadne hasło. Wprowadź hasło\n" "w iPhone w sekcji konfiguracyjnej i spróbuj ponownie." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Wersja protokołu: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Odrzucona wersja protokołu %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Nazwa urządzenia: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Wysyłanie pliku: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Kompletna z komputera." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d kategorie" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Wyślij kategorie %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Odpowiedź: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d zadań" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Wyślij zadania %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d nakłady pracy" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Wyślij nakład pracy %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Zakończono." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nowych kategorie" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nowych zadań" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nowe nakłady pracy" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d zmodyfikowanych kategorii" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d zmodyfikowanych zadań" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d zmodyfikowanych nakładów pracy" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d usuniętych kategorii" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d usuniętych zadań" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d usuniętych nakładów pracy" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nowa kategoria (rodzic: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Usuń kategorię %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modyfikuj kategorię %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nowe zadanie %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Usuń zadanie %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modyfikuj zadanie %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Koniec synchronizacji zadania." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Nie można znaleźć zadania %s dla nakładu pracy." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Nowy nakład pracy %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modyfikuj nakład pracy %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Wysyłanie GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Czytanie poczty..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Odczytywanie poczty. Proszę czekać." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Nie można znaleźć folderu z danymi Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Nie można znaleźć profilu Thunderbird." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Brak domyślnej sekcji w profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Nieprawidłowy identyfikator wewnętrzny Thunderbird:\n" "%s. Proszę zgłosić błąd." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Nie można znaleźć katalogu dla identyfikatora\n" "%s.\n" "Proszę zgłosić błąd." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Nierozpoznany styl URL: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Nie można otworzyć połączenia IMAP do %(server)s:%(port)s\n" "do pobrania wiadomości Thunderbird email:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Proszę podać domenę dla użytkownika %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Nie można wybrać skrzynki \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Nie ma takiej wiadomości: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Faktyczny czas rozpoczęcia" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Planowany czas rozpoczęcia" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Czas wykonania" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Czas zakończenia" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Czas przypomnienia" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Czas utworzenia" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Data zakończenia okresu" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Czas zakończenia okresu" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Data rozpoczęcia okresu" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Czas rozpoczęcia okresu" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Brak tematu" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nowe zadanie na dzisiaj" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nowe zadanie do jutra" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dni" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 dzień" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Każde %(frequency)d dni" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Każde %(frequency)d tygodni" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Każde %(frequency)d miesięcy" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Każde %(frequency)d lata" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Każdy inny dzień" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Każdy inny tydzień" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Każdy inny miesiąc" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Każdy inny rok" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Wczoraj" #: taskcoachlib/render.py:284 msgid "now" msgstr "teraz" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Synchronizacja dla źródła %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "zostanie odświeżona z serwera. Wszystkie lokalne elementy\n" "zostaną usunięte. Czy kontynuować?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "zostanie odświeżona z klienta. Wszystkie zdalne elementy\n" "zostaną usunięte. Czy kontynuować?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronizacja" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synchronizowanie. Proszę czekać.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d elementów dodano.\n" "%d elementów zaktualizowano.\n" "%d elementów usunięto." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Synchronizacja zakończona niepowodzeniem.\n" "Kod błędu: %d; komunikat: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Należy najpierw edytować ustawienia SyncML w Preferencjach Edytuj/SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Przełącznik paneli" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Przywróć %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Okno podglądu" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Zamknij" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Zamknij wszystko" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Dalej" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Wstecz" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Okno" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Edytuj" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d tygodni" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d godzin" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Zrobione" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Wyświetlany okres i liczba jego wystąpień" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Miesiąc" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Układ kalendarza" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Poziomy" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Pionowy" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Wyświetlane zadania" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Zadanie z planowaną datą rozpoczęcia i datą wykonania" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Zadanie z planowaną datą rozpoczęcia" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Zadanie z datą wykonania" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Wszystkie zadania" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Wszystkie zadania, z wyjątkiem nie planowanych" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Rysuj linię pokazującą aktualny czas" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Kolor używany do zaznaczenia aktualnego dnia" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Wszystkie pliki (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Nagłówki" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Słaby numer" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Podział kalendarza" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Tydzień" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Tydzień pracy" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Hasło:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Przechowuj w pęku kluczy" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Wystąpił problem w znalezieniu pęku kluczy systemu.\n" "Proszę zgłosić ten błąd (patrz menu Pomoc) i dołączyć zrzut ekranu tej " "wiadomości.\n" "Wystąpił błąd:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Podaj swoje hasło." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Podaj swoje hasło" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Uwzględnij wielkość liter" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Rozróżniaj litery gdy filtrujesz" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Uwzględnij podelementy" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Uwzględnij podelementy elementów zgodnych z wynikami wyszukiwania" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Szukaj także w opisach" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Szukaj w tytułach i opisach" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Wyrażenie regularne" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Potraktuj tekst wyszukiwania jako wyrażenie regularne" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "To nie jest właściwe wyrażenie regularne." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Domyślnie wyszukiwany jest podciąg." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Ostatnie wyszukiwania" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Nie można przeszukiwać podglądu" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Ostrzeżenie o kompatybilności" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Funkcja SyncML jest wyłączona, ponieważ jej moduły nie\n" "mogły zostać załadowane. Możliwe, że twój system operacyjny\n" "nie jest wspierany lub brakuje w twoim Windows\n" "kilku ważnych plików DLL. Proszę zobaczyć sekcję SyncML w\n" "internetowej pomocy programu (dział \"Rozwiązywanie problemów\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Nie pokazuj tego okna ponownie" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Błąd podczas otwierania adresu URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Usuń\tDEL" taskcoach-1.4.3/i18n.in/pt.po000066400000000000000000007005601265347643000156500ustar00rootroot00000000000000# translation of pt.po to Nederlands # Portuguese translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2007. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: pt\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:29+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Ocorreram erros. Verifique no ficheiro \"taskcoachlog.txt\" na pasta \"Os " "Meus Documentos\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Erro" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Ocorreram erros. Por favor, verifique \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Não foi possível carregar as definições de TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s erro de ficheiro" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" tornou-se de nível superior porque o seu \"pai\" foi eliminado " "localmente." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Foram detectados conflitos em \"%s\".\n" "A versão local foi utilizada." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Editar a localização dos anexos" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Editar a localização do anexo \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Adicionar anexo" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Adicionar anexo a \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Novo anexo" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Remover anexo" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Remover o anexo para \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copiar" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copiar \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Eliminar" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Apagar \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Cortar" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Cortar \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Colar" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Colar \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Colar como sub-item" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Colar como sub-item de \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Arrastar e largar" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Arrastar e largar \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Editar assuntos" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Editar assunto \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Editar decrições" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Editar a descrição \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Alterar ícones" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Alterar o ícone \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Alterar o tipo de letra" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Alterar o tipo de letra \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Alterar cor principal" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Alterar cor principal \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Alterar cor de fundo" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Alterar cor de fundo \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Alterar categoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Alternar a categoria de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nova categoria" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Novas sub-categorias" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nova sub-categoria de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nova subcategoria" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Editar subcategorias exclusivas" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Editar subcategorias exclusivas de \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Apagar categorias" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Apagar categoria \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Arrastar e largar categoria" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Novos empenhos" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Novo empenho de \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Apagar empenhos" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Apagar empenho \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Alterar tarefa de esforço" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Alterar tarefa de esforço \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Alterar data e hora de início de esforço" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Alterar data e hora de início de esforço de \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Alterar data e hora de paragem de esforço" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Alterar data e hora de paragem de esforço de \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nova nota" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Novas sub-notas" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nova sub-nota de \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nova subnota" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Apagar notas" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Apagar nota \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Arrastar e largar notas" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Arrastar e largar nota \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Adicionar nota" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Adicionar nota a \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Adicionar sub-nota" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Adicionar subnota para \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Remover nota" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Remover nota de \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Arrastar e largar tarefas" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Apagar tarefas" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Apagar tarefa \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nova tarefa" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Novas sub-tarefas" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nova sub-tarefa \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nova subtarefa" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marcar tarefas concluídas" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marcar \"%s\" como concluída" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Marcas a tarefa como activa" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Marcar \"%s\" como ativa" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Marcar a tarefa como inativa" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Marcar \"%s\" como inativa" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Começar acompanhamento" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Iniciar o acompanhamento de \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Parar acompanhamento" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Parar de acompanhar \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximizar prioridade" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximizar a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizar prioridade" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "MInimizar a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Aumentar prioridade" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Aumentar a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Reduzir prioridade" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Diminuir a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Alterar a prioridade" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Alterar a prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Adicionar nota às tarefas" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Mudar data de início planeada" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Mudar data de início planeada de \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Alterar data limite" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Alterar data limite de \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Mudar data de início efectivo" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Mudar data de início efectivo de \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Alterar data de conclusão" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Alterar data de conclusão de \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Alterar datas/horas dos lembretes" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Alterar data/hora do lembretes de \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Alterar recorrências" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Alterar recorrência de \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Alterar percentagem terminada de \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Alterar quando as tarefas são marcadas como terminadas" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Alterar quando \"%s\" é marcada como terminada" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Alterar orçamento" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Alterar orçamento de \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Alterar valores por hora" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Alterar a taxa de cobrança horária de \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Alterar as taxas fixas" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Alterar a taxa fixa de \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Alternar pré-requisito" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Alternar pré-requisito de \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Erro ao ler a definição %s-%s do ficheiro %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "O valor é: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "O erro é: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s irá usar o valor pré-definido para a definição e deverá continuar " "normalmente." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Erro de configurações" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Erro ao gravar %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Erro de gravação" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mensagem Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Novo anexo..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Inserir novo anexo" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Abrir anexo" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Abrir os anexos seleccionados" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutos" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "não adormecer" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutos" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutos" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "Hora e meia" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutos" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hora" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 horas" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 semanas" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 semana" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total para %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Novo empenho...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Tarefas inativas" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Ocultar tarefas &inactivas" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Tarefas inativas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Mostrar/esconder tarefas inactivas (tarefas incompletas sem data de início " "definida)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Tarefas atrasadas" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Esconder tarefas &atrasadas" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Tarefas atrasadas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Mostrar/esconder tarefas atrasadas (tarefas inactivas com início planejado " "no passado)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Tarefas ativas" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Tarefas ativas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Ocultar tarefas &activas" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Mostrar/esconder tarefas activas (tarefas incompletas com data de início " "definida no passado)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Tarefas a vencer" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Tarefas a vencer: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Ocultar tarefas a vencer" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Mostrar/esconder tarefas a vencer em breve (tarefas incompletas com data de " "vencimento no futuro próximo)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Tarefas em atraso" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Ocultar tarefas atrasadas" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Tarefas atrasadas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Mostrar/esconder tarefas atrasadas (tarefas incompletas com data de " "vencimento no passado)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Tarefas concluídas" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Tarefas concluídas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Ocultar tarefas &concluídas" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Mostrar/esconder tarefas concluídas" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nova tarefa..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Seta para baixo" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Seta para baixo com estado" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Setas azuis curvadas" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Setas verdes curvadas" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Seta para cima" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Seta para cima com estado" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Livro" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Livros" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Caixa" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Joaninha" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Bolo" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculadora" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendário" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Gato" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Disco compacto (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Gráficos" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "A Conversar" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Verificar marca" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Verificar marcas" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Relógio" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarme de Relógio" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Cronómetro" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Roda dentada" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Rodas dentadas" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Computador de secretária" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Portátil" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Computador de mão (PDA)" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Cruz vermelha" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Morte" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Documento" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Terra azul" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Terra Verde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelope" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envelopes" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Pasta azul" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Pasta azul claro" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Pasta verde" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Pasta cinzenta" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Pasta laranja" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Pasta Roxa" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Pasta vermelha" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Pasta amarela" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Pasta azul com seta" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Coração" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Corações" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Casa verde" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Casa vermelha" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Chave" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Chaves" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lâmpada" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Ponto de interrogação" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informação" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Luz azul" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Luz azul clara" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Lur cinzenta" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Luz cerde" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Luz verde clara" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Luz laranja" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Luz violeta" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Luz vermelha" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Luz amarela" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Boia" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Cadeado fechado" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Cadeado aberto" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupa de vidro" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota musical" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Nota" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Clip" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Lápis" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Pessoa" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Pessoas" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificação" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Conversa pessoal" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Sinal de aviso" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Menos" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Mais" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Estrela vermelha" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Estrela amarela" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semáforo" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Lixo" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Relâmpago" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Chapéu de chuva" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Parcialmente ensolarado" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Chave inglesa" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Sem ícone" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Ficheiro" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Caminho completo" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Data" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Restaurar" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Fechar" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Escolha o destino do restauro" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Mensagem dos programadores de %s" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Consulte:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descrição" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Editar para alterar todos os assuntos" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Assunto" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Editar para alterar todas as descrições" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Data da Criação" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Data de modificação" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioridade" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutuamente exclusivos" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Sub-categorias" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Editar para alterar a localização de todos os anexos" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Explorar" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Localização" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Aparência" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Cor principal" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Cor de fundo" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Fonte" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ícone" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datas" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Data inicial prevista" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Data limite" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Data de início efectivo" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data de conclusão" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Lembrete" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recorrência" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progresso" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Percentagem de acabamento" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Usar aplicação modo panoramico" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Não" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Sim" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Marcar tarefa como terminada quando todas as subtarefas estiverem terminadas?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Orçamento" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Tempo despendido" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Orçamento restante" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Honorários por hora" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Honorários fixo" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Rendimento" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Empenho" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorias" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Anexos" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notas" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Pré-requisitos" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Editar tarefa" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tarefa" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Iniciar" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Semana(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Dia(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hora(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minuto(s)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Parar" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Iniciar acompanhamento a partir da ultima hora de paragem" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Parar monitorização agora" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Atenção: o início deve ser anterior ao fim" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Tarefas múltiplas" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (tarefa)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Categorias múltiplas" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (categoria)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Notas múltiplas" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (nota)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Anexos múltiplos" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (anexo)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Vários esforços" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (esforço)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Usar fonte:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Utilizar a cor:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nenhum" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Diário" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mensal" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Semanal" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Anual" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "manter datas no mesmo dia da samana" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", cada" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Parar após" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "recorrências" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Agendar cada nova ocorrência com base em" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "data anterior planeada para início e/ou fim" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "última data de conclusão" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dia(s)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "periodo" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "semana(s)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mes(es)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "ano(s)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportar itens de:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Exportar apenas os items selecionados" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Colunas a exportar:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Inserir datas e horas de tarefa em colunas separadas" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Gravar informação de estilo para um ficheiro CSS separado" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Se o ficheiro CSS já existe para o ficheiro exportado, %(name)s não " "escreverá por cima. Isto permiti-lhe mudar a informação de estilo sem perder " "as modificações na próxima exportação." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportar como CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportar como ICalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exportar como HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportar como Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Um iPhone ou iPod Touch está tentando\n" "sincronizar-se com esta tarefa pela\n" "primeira vez. Que tipo de sincronização\n" "pretende utilizar?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Actualizar a partir do ambiente de trabalho" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Actualizar a partir do dispositivo" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancelar" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Você activou a sincronização do iPhone, que precisa de Bonjour.\n" "Parece que o Bonjour não está instalado no seu sistema." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Por favor, transfira e instale o Bonjour para Windows de\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Website da Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "O suporte de Bonjour em Linux é fornecido pelo Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Pode encontrar mais detalhes para a sua distro aqui" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Tenha em atenção que para alguns sistemas (Fedora) pode ter\n" "que instalar o pacote avahi-compat-libdns_sd e o Avahi para que funcione." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Adicionalmente, se tiver uma firewall, verifique se as portas 4096-4100 " "estão abertas." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Esta configuração terá efeito após reiniciar %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Esta configuração pode ser alterada para tarefas individuais\n" "na caixa de diálogo da tarefa." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Ficheiros" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Gravação automática após cada alteração" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Carregar automaticamente quando o ficheiro for alterado" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Monitor de ficheiros Inteligente" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Guardar alterações (%s.ini) na mesma\n" "pasta do programa" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Para executar %s num disco amovível" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Pasta de anexos" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Quando adicionar um anexo, tente \n" "que o caminho seja relativo a este." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Antes de gravar, importar automaticamente de" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Formato Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Antes de gravar, %s importa tarefas automaticamente\n" "de um ficheiro Todo.txt com o mesmo nome do ficheiro de tarefas,\n" "mas sem a extensão .txt." #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Ao gravar, exportar automaticamente para" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Ao gravar, %s exporta tarefas automaticamente\n" "para um ficheiro Todo.txt com o mesmo nome do ficheiro de tarefas,\n" "mas sem a extensão .txt." #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Comportamento da janela" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Mostrar ecrã de entrada no arranque" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Mostrar dicas ao iniciar o programa" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Arranque com a janela principal iconizada" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Sempre" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nunca" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Se foi iconizada na última sessão" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" "Verificar a existência de nova versão de %(name)s ao iniciar a aplicação" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Verificar mensagens dos programadores de %(name)s ao iniciar" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Esconder a janela principal quando iconizada" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Ao fechar, minimizar a janela principal" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Fazer piscar o relógio na barra de tarefas ao acompanhar empenho" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Idioma" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Deixar o sitema determinar o idioma" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Se o seu idioma não estiver disponível ou possuir incorreções, ajude-nos. " "Consulte:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "O idioma não foi encontrado?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Aparência da tarefa" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Estas configuração de aparência podem ser alteradas para tarefas individuais " "na caixa de edição da tarefa." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funções" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Todas as configuração neste separador requerem o reinício de %s para tomar " "efeito." #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Activar SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Habilitar sicronização com iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Utilizar gestor de sessão X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Início da semana" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Segunda-feira" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Domingo" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hora de inicío do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hora final do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Fim do dia" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Use gradientes na vista de calendário:\n" "Pode atrasar o desempenho." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutos entre tempos sugeridos" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Nos menus de contexto para selecção do tempo (ex. para configurar a \n" "hora de início dum esforço) %(name)s irá sugerir horas usando esta \n" "configuração. Quanto menor for o número de minutos, maior será a \n" "lista de tempos sugerida. Obviamente, pode introduzir a hora que \n" "desejar para além das horas sugeridas." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Aviso de tempo de inactividade" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Se não houver actividade do utilizador durante este tempo\n" "(em minutos), %(name)s irá perguntar o que fazer em relação aos esforços " "actuais." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Use tempos decimais para valores de esforço." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Mostrar uma hora e quinze minutos como 1.25 em vez de 1:15\n" "Isto é útil para a criação de faturas." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Mostrar alerta com a descrição de um item\n" "quando lhe passar por cima" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Datas das tarefas" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Marcar tarefa principal como terminada quando todas as subtarefas estiverem " "terminadas" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" "Número de horas para que as tarefas sejam consideradas como a vencer " "brevemente" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nada" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Alterar a data inicial prevista altera a data limite" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Alterar a data limite altera a data inicial prevista" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "O que fazer às datas iniciais e finais se uma delas for alterada" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Pré-definido" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Propor" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Hoje" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Amanhã" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Depois de amanhã" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Próxima sexta-feira" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Próxima segunda-feira" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Início do dia" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Início do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Hora atual" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Fim do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Data e hora inicial prevista pré-definida" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Data e hora de conclusão pré-definida" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Data e hora inicial efetiva pré-definida" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Data e hora de conclusão pré-definida" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Data e hora do lembrete pré-definida" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Novas tarefas iniciam com datas \"Pré-definidas\" e horas preenchidas e " "assinaladas. Datas e horas \"Propostas\" são preenchidas, mas não são " "assinaladas.\n" "O \"Início do dia\" é à meia-noite e \"Fim do dia\" é mesmo antes da meia-" "noite. Ao usar estes campos, os visualizadores de tarefas escondem a hora e " "mostram apenas a data.\n" "O \"Início do dia de trabalho\" e \"Fim do dia de trabalho\" usam o dia de " "trabalho configurado no separador Recursos desta caixa de diálogo de " "preferências." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Lembretes de tarefas" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Sistema de notificação para os lembretes" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Deixar o computador dizer o lembrete" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Necessita do espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Tempo de repetição a usar após lembrete" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Pausas entre lembranças de tarefas" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Senha para sincronização com o iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Ao sincronizar, introduza esta palavra-passe no iPhone para autorizar" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nome do serviço Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Enviar para o dispositivo as tarefas concluídas" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Mostrar o registo de sincronização" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Verificar ortografia nos editores" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Tipo de letra a usar no campo de descrição das caixas de edição" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Obter assunto do e-mail de Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Tentar obter o assunto de um mail arrastado do Mail.app.\n" "Isto pode levar até 20 segundos." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Realçar o assunto da tarefa no editor de tarefas" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Ao abrir o editor de tarefas, seleccionar e realçar o assunto da tarefa.\n" "Isto sobrescreve a selecção X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "Lembrete %(name)s - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Lembrar data/hora" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Adormecer" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" "Tornar este tempo de espera o valor por defeito para futuros lembretes" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Marcar as tarefas concluídas" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Servidor SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Personalizado" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL do servidor SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nome/ID Utilizador" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Activar a sincronização de tarefas" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nome da base de dados de tarefas" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Modo de sincronização predefenido" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Ambos os sentidos" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lento" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Um sentido a partir do cliente" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Refrescar a partir do cliente" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Um sentido a partir do servidor" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Refrescar a partir do servidor" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Activar notas de sincronização" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Nome da base de dados de Notas" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Acesso" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Novo modelo de tarefa" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Pré-visualizar" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Ferramentas disponíveis" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Tornar esta ferramenta visível na barra de ferramentas" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Ocultar esta ferramenta da barra de ferramentas" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Ferramentas" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" "Deslocar a ferramenta para cima (para a esquerda da barra de ferramentas)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" "Deslocar a ferramenta para baixo (para a direita da barra de ferramentas)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Reordenar items da barra de ferramentas arrastando e largando os botões " "nesta lista." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separador" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Separador" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Notificar-me de novas versões." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Nova versão de %(name)s disponível" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Está a usar %(name)s versão %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Versão %(version)s de %(name)s está disponível a partir de" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "O %(name)s está atualizado" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "O %(name)s está atualizado na versão %(version)s" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Não foi possível encontrar a última versão" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Não foi possível encontrar qual a última versão do %(name)s" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Versão de testes" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Está a utilizar a versão de testes %(name)s %(currentVersion)s" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "A última versão publicada do %(name)s é a %(version)s" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Aviso" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "O Task Coach tem problemas identificados com o gestor de sessões XFCE4\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Se encontrar paragens aleatorias durante o arranque do programa, por favor " "desmarque \n" "a opção \"Utilizar gestor de sessões X11\" nas preferências.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Não mostrar este diálogo ao iniciar" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Não houve interacão do utilizador desde %s. A tarefa seguinte\n" "estava a ser acompanhada:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Não fazer nada" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Parar a %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Parar a %s e retomar agora" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notificação" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "Ficheiros %s (*.tsk)|*.tsk|Todos os ficheiros (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s ficheiros (*.tsk)|*.tsk|Ficheiros de Backup (*.tsk.bak)|*.tsk.bak|Todos " "os Ficheiros (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Ficheiros iCalendar(*.ics)|*.ics|Todos os Ficheiros (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Ficheiros HTML(*.html)|*.html|Todos os Ficheiros (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Ficheiros CSV (*.csv)|*.csv|Ficheiros de Texto (*.txt)|*.txt|Todos os " "Ficheiros (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Ficheiros Todo.txt (*.txt)|*.txt|Todos os ficheiros (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Abrir" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Carregadas %(nrtasks)d tarefas de %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Não é possivel abrir %s porque não existe" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Fundir" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Não é possível abrir %(filename)s\n" "porque está bloqueada." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s Fundidos" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Guardar como" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Guardar selecção" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Não é possível guardar %s. \n" "Está bloqueada por outra instância de %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Não é possível guardar %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importar modelo" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s ficheiros template (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Não foi possível importar o modelo %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Exportados %(count)d itens para %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sincronização Concluída" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Estado da sincronização" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Não foi possível abrir %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Já existe um ficheiro com o nome %s.\n" "Deseja substituir?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "As alterações não foram gravadas.\n" "Deseja gravar antes de fechar?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: guardar alterações?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Não é possível abrir %s pois está bloqueado.\n" "\n" "Isto significa que já existe uma instância do TaskCoach\n" "em execução e que este ficheiro está aí aberto ou que \n" "ocorreu um erro com a anterior instância do TaskCoach.\n" "Se não existir nenhuma instância em execução pode cancelar o bloqueio.\n" "\n" "Cancelar o bloqueio?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: ficheiro bloqueado" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Não foi possível adquirir um bloqueador pois esta operação não\n" "é suportada em %s.\n" "Abrir %s desbloqueado?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Fechado %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Salvas %(nrtasks)d tarefas para %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Não é possível abrir %(filename)s\n" "porque foi criado com uma versão mais recente de %(name)s.\n" "Por favor, actualize o %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Erro na leitura de %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Sincronizando..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sincronizar com %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Bem-vindo(a) a %(name)s versão %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Não foi possível restaurar a disposição de painel a partir de " "TaskCoach.ini:\n" "%s\n" "\n" "Será usada a disposição de painel por defeito.\n" "\n" "Se isto tornar a acontecer, por favor faça uma cópia do seu ficheiro " "TaskCoach.ini antes de encerrar o programa, abra um relatório de erro, e " "anexe a cópia do ficheiro TaskCoach.ini ao relatório." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "Erro de configurações de %s" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Tipo de sincronização" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Um dispositivo iPhone ou iTouch tentou a sincronização com esta \n" "tarefa, mas o protocolo de negociação falhou. Por favor, preencha\n" "um relatório de erros." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Ficheiro" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Editar" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Ver" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Novo" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Acções" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Ajuda" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importar" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportar" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Seleccionar" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Novo visualizador" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activar o próximo visualizador\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activar visualizador &anterior\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Modo" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtro" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Ordenar" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Colunas" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "A&rredondamento" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Opções de ár&vore" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Barra de ferramentas" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Mostrar/ocultar barra de estado" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Barra de Estado" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tarefa" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Abrir uma nova tab com um visualizador que mostra tarefas" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "E&statísticas de tarefas" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Abrir um novo separador com as estatísticas das tarefas" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Mapa Quadrado de Tarefas" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Abrir uma nova tab com um visualizador que mostra tarefas num mapa quadrado" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Data l&imite" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Abrir novo separador com um visualizador que apresente a data limite das " "tarefas e do empenho" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendário" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "Abrir novo separador com um visualizador que mostre as tarefas no calendário" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "Calendário &hierárquico" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categoria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Abrir uma nova aba com visualização que exibe categorias" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Empenho" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" "Abrir um novo separador com um visualizador que apresente os empenhos" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Esf&orço para a(s) tarefa(s) seleccionada(s)" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Abrir um novo separador com um visualizador que apresente os empenhamentos " "na tarefa seleccionada" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Nota" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Abrir uma nova aba com visualização que exibe notas" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Ocultar" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Ocultar a barra de ferramentas" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Imagens Pequenas" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Imagens pequenas" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Imagens de tamanho médio" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Imagens de tamanho médio (22x22) na barra de ferramentas" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Imagens Grandes" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Imagens grandes(32x32) na barra de ferramentas" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nova &tarefa com base no modelo" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "A<ernar de categoria" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Alterar &prioridade da tarefa" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Iniciar acompanhamento de empenho" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (sub-categorias)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtarefas)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioridade" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Página" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Lembranças" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tarefas atrasadas" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "uma tarefa atrasada" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tarefas com data-limite próxima" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "uma tarefa com data-limite próxima" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "a rastrear \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "acompanhar empenho para %d tarefas" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Abrir...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Abrir %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Reunir..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Reunir as tarefas de outro ficheiro com o actual" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Fechar\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Guardar \tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "&Guardar como...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Guardar as tarefas seleccionadas para novo ficheiro de tarefas..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Salvar as tarefas seleccionadas para outro ficheiro de tarefas" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Guardar &tarefa seleccionada como template" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Guardar a tarefa seleccionada como template" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importar modelo..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importar novo modelo de um ficheiro de modelos" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Editar modelos..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Editar modelos existentes" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Editar modelos" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Remover os itens apagados" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Apagar definitivamente tarefas e notas (ver o capítulo sobre SyncML na Ajuda)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Não consegue eliminar os itens apagados.\n" "Se estiver a planear activar a função\n" "SyncML com o servidor usado \n" "anteriormente estes itens irão voltar.\n" "\n" "Ainda assim quer eliminar?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Configuração de &Página...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "Pré-visualizar im&pressão..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Mostrar qual será o aspecto da impressão" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Antever impressão" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Imprimir...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportar como &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exportar items de um visualizador em formato HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportar como &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Exportar items de um visualizador em formato CSV" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exportar como &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exportar items de um visualizador em formato iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exportar como &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Exportar items de um visualizador em formato Todo.txt (ver todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importar CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" "Importar tarefas de um ficheiro de Valores Separados por Vírgulas (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importar CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "O ficheiro escolhido está vazio. Por favor escolha outro ficheiro." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importar Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importar tarefas de um ficheiro Todo.txt (ver todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importar Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Sincronização S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Sincronizar com servidor SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Sair\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Anular" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Refazer" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Cor&tar\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copiar\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Colar\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Col&ar como sub-item\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferências...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferências" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Preferências &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Editar preferências SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Preferências SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Personalizar barra de ferramentas" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Personalizar" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Tudo\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Limpar selecção" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "De-seleccionar todos itens" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Limpar todos os filtros\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Reiniciar todas as categorias\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Mostrar/ocultar todos os items pertencentes a %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Renomear visualizador..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Renomear a visualização seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Novo título para a visualização:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Renomear visualização" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Escondes esta coluna" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Esconder a coluna seleccionada" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Expandir todo itens\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Fechar todos os itens\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascendente" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Ordenar ascendente (marcado) ou descendente (desmarcado)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Ordenar por &capitalização" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Ao comparar texto, a ordenação é com distinção de maiúsculas de minúsculas " "(mercado) ou sem distinção maiúsculas de minúsculas (unchecked)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Ordenar por estado" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Classificar tarefas por status (activo/inactivo/completo) primeiro" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Ocultar tarefas c&ompostas" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Mostrar/ocultar as tarefas com sub-tarefas em lista" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Editar...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Editar itens selecionados" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Edi&tar tarefa acompanhada...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Editar tarefas atualmente acompanhadas" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Eliminar\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Eliminar itens selecionados" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Criar nova tarefa a partir de modelo" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nova tarefa com as &categorias seleccionadas..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Inserir nova tarefa com marcas nas categorias seleccionadas" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nova tarefa com as tarefas seleccionadas como &pré-requisitos..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Inserir uma nova tarefa com as tarefas seleccionadas como pré-requisitos das " "tarefas" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nova tarefa com tarefas escolhidas como &dependentes..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Inserir nova tarefa com as tarefas seleccionadas como dependências" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Novo &subitem..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nova &subtarefa..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nova &subnota..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nova &subcategoria..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Inserir um novo subitem para o item seleccionado" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Marcar tarefa como &ativa\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Marcar as tarefas seleccionadas como activas" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Marcar tarefa como &inativa\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Marcar as tarefas seleccionadas como inactivas" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Marcar tarefa como &finalizada\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marcar a(s) tarefa(s) seleccionada(s) como concluída(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximizar prioridade\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimizar prioridade\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Aumentar prioridade\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Diminuir prioridade\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Alternar %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "E&mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "Correio...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Vários items" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "e" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Não foi possível enviar:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s erro de mail" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Adicionar ¬a...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Abrir todas as notas...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Iniciar rastreamento de esforço\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Iniciar rastreamento de esforço para tarefa(s) do(s) esforço(s) " "seleccionado(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Sem assunto)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Iniciar acompanhamento de empenho para %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Seleccione uma tarefa pelo menu e inicie o seu acompanhamento" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Parar ou retomar rastreamento de esforço\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Parar rastreament&o de %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Parar o acompanhamento do empenho da a(s) tarefa(s) activa(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Retomar rastreamento de %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Retomar rastreamento de esforço para a última tarefa rastreada" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "múltiplas tarefas" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nova categoria...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nova nota...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nova ¬a com as categorias seleccionadas..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Inserir uma nova nota com as categorias seleccionadas marcadas" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Adicionar anexo...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Erro ao abrir anexo" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Abrir todos os anexos...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Conteudos da Ajuda\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Conteúdos de &Ajuda\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Ajuda" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Dicas" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Dicas sobre o programa" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonimizar" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Anonimizar um ficheiro de tarefas para anexar a um relatório de falhas" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "O seu ficheiro de tarefas foi anonimizado e gravado em:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Concluída" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Acerca %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versão e contactos sobre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Acerca de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licença" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licença" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Verificar se existem actualizações" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Verificar a existência de nova versão de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Não foi possível abrir URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "Erro de URL %s" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Perguntas &frequentes" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Navegar as perguntas frequentes e respostas" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Reportar uma falha..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Reportar uma falha ou consultar falhas conhecidas" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Pedir nova &funcionalidade..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Pedir uma nova funcionalidade ou votar pedidos existentes" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Pedido de &suporte..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Pedir suporte de utilizador aos programadores" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Ajudar na melhoria das &traduções..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Ajudar na melhoria das traduções de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Doar..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Doar para ajudar no desenvolvimento de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restaurar" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restaurar a janela ao seu estado anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Procurar" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detalhes de empenho" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Empenho por dia" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Empenho mensal" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Empenho semanal" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Modo de agregação" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Lista" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Árvore" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Após marcar opção, mostrar tarefas em árvore, caso contrário mostrar tarefas " "em lista" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtro em todas as categorias marcadas" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtro em qualquer categoria marcada" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Após marcar opção, filtrar por todas as categorias marcadas, caso contrário " "em qualquer categoria marcada" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Escolha de ordenação" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configurar" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configurar o visualizador de calendário" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Configurar a vista hierárquica de calendário" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "Período &seguinte" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Mostrar o período seguinte" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Período anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Mostrar o perído anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Hoje" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Mostrar hoje" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Redimensionar automaticamente as colunas" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "Se marcada, redimensionar automaticamente as colunas" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Escolher ângulo do gráfico circular" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Sem arredondamento" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuto" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutos" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Precisão de arredondamento" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Sempre &arredondar para cima" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Sempre arrendondar para o incremento de arredondamento seguinte" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tipo" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Classificar por assunto" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Assun&to" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Ordenar por descrição" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Descrição" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Data de &criação" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Ordenar por data de criação" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Data de modificação" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Ordenar pela última data de modificação" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Mostrar/esconder coluna descrição" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notas" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Mostrar/ocultar coluna de notas" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Mostrar/esconder coluna da data de criação" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Mostrar/esconder a coluna da última data de modificação" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "As barras de ferramentas são personalizáveis" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Clicar no ícone da roda dentada para adicionar botões e mudar a sua " "ordenação." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Ordenação &manual" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Mostrar/esconder a coluna de ordenação manual" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Anexos" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Mostrar/ocultar coluna de anexos" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categorias: %d seleccionadas, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtro activo" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Período" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Total de tempo dispendido" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Receita total" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Terça-feira" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Quarta-feira" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Quinta-feira" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Sexta-feira" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sábado" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categorias" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Mostrar/esconder coluna categorias" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Tempo despendido" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Mostrar/esconder coluna tempo despendido" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Receita" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Mostrar/ocultar coluna das receitas" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Tempo total dispensado" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Mostrar/ocultar coluna do tempo total dispensado" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Total da receita" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Mostrar/ocultar coluna do rendimento total" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Empenho por dia de semana" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Mostrar/ocultar colunas de tempo dispendido por dia de semana" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Agregação de esforço" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Esforço: %d seleccionado, %d visível, %d total. Tempo dispendido: %s " "seleccionado, %s visível, %s total" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Estado: %d em monitorização" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Detalhes:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Esforço para a(s) tarefa(s) seleccionada(s)" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Ordenar categorias por assunto" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Ordenar categorias por descrição" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Ordenar categorias por data de criação" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Ordenar categorias pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Ordenar categorias manualmente" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Ordenar anexos por assunto" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Ordenar anexos por descrição" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Ordenar anexos por categoria" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Ordenar anexos por data de criação" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Ordenar anexos pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Ordenar notas por assunto" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Ordenar notas por descrição" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Ordenar notas por categoria" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Ordenar notas por data de criação" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Ordenar notas pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Ordenar notas manualmente" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Ordenar tarefas por assunto" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Ordenar tarefas por descrição" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Ordenar tarefas por categoria" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Ordenar tarefas por data de criação" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Ordenar tarefas pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Ordenar tarefas manualmente" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Ordenar tarefas por data planejada de início" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "Data &planejada de início" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Ordenar tarefas por data-limite" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Data-limite" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Ordenar tarefas por data de conclusão" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Data de conclusão" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Ordenar tarefas por pré-requisitos" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Pré-requisitos" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Ordenar tarefas por dependências" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dependentes" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Ordenar tarefas por tempo restante" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Tempo restante" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Ordenar tarefas por percentagem de acabamento" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Percentagem de acabamento" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Ordenar tarefas por reincidência" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Recorrência" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Ordenar tarefas por orçamento" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Orçamento" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Ordenar tarefas por tempo gasto" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Orçamento r&estante" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Ordenar tarefa por orçamento restante" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Ordenar tarefas por prioridade" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Ordenar tarefas por honorários/hora" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Honorários por hora" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Ordenar tarefas por honorários fixos" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Honorários &Fixos" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Ordenar tarefas por receita" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Ordenar tarefas por lembrete data e hora" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Chamada de Atenção" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "A&ssunto" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Ordenar notas por categoria" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notas: %d seleccionadas, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tarefas: %d seleccionadas, %d visíveis, %d total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d vencidas, %d atrasadas, %d inativas, %d finalizadas" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Pressione a tecla Shift e no botão esquerdo do rato sobre a ferramenta de " "filtro para visualizar apenas as tarefas que pertencem ao estado " "correspondente" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tarefas" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Data limite" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Agora" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Mapa de tarefa" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Dispor tarefas por" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Calendário hierárquico" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Configuração do visualizador de calendário" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ordenação manual" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dependentes" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% concluída" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Tempo restante" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Datas" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Todas as colunas de data" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Mostrar/ocultar todas as colunas relacionadas com datas" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Mostrar/ocultar coluna de data planejada de início" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Mostrar/ocultar coluna de data-limite" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Data &real de início" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Mostrar/ocultar coluna de data real de início" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Mostrar/ocultar coluna das datas de conclusão" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Mostrar/ocultar a coluna Tempo Restante" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Mostrar/ocultar coluna de reincidência" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Todas as colunas de orçamento" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Mostrar/ocultar colunas relacionadas com orçamento" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Mostrar/esconder coluna orçamento" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Orçamento restante" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Mostrar/ocultar coluna de orçamento restante" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "Financeiro" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Todas as colunas financeiras" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Mostrar/ocultar colunas relacionadas com finanças" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Mostrar/ocultar coluna da honorários por hora" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Mostrar/ocultar coluna de honorários fixos" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Mostrar/ocultar coluna de pré-requisitos" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Mostrar/esconder coluna de dependentes" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "MOstrar/ocultar coluna de percentagem de acabamento" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Mostrar/esconder coluna anexo" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Mostrar/esconder coluna prioridade" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Mostrar/ocultar colunas de lembranças" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Mostrar tarefas como" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "E&statísticas de tarefas" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Vírgula" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tabulação" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Espaço" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Dois pontos" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Ponto e vírgula" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Canal" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (dia primeiro)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (mês primeiro)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Plica" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Aspas" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Duplicar" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Substituir com" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importar apenas as linhas seleccionadas" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "A primeira linha descreve os campos" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Delimitador" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Formato da data" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Caractér de citação" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Caractér de controlo/escape" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Campo #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Por favor seleccione um ficheiro." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "Identificador" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Categori­a" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Data de lembrete" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percentagem concluída" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Cabeçalho da coluna em ficheiro CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "Atributo %s" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Não existe mapeamento de campos." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "O campo \"%s\" não pode ser seleccionado várias vezes." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Os campos %s não podem ser seleccionados várias vezes." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Tabela de conteúdos" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Sobre as tarefas" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Propriedades da tarefa" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Estado das tarefas" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Cores das tarefas" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Lembretes" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Sobre o empenho" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Propriedades do empenho" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Sobre as categorias" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Propriedades das categorias" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Sobre as notas" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Propriedades das notas" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Impressão e exportação" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Sobre a impressão e exportação" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Imprimindo" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportando" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Opões de armazenamento" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integração com e-mail" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Sobre a integração de e-mail" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Anexando um e-mail à tarefa" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Criar uma tarefa a partir de um e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Suporte SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "O que é o SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Configuração" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitações" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Resolução de problemas" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Removendo os itens apagados" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone e iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s no iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuração" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s no Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt e Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importando todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exportando todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Modelos de tarefa" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Sobre os modelos" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Utilização dos modelos" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Interface gráfica de utilizador" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Atalhos de teclado" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Tarefas são os objectos básicos que pode manipular. As tarefas podem\n" "representar qualquer coisa desde uma única coisa a fazer até um projecto \n" "completo consistindo em diferentes fases e numerosas actividades." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Pode alteras as seguintes propriedades das tarefas:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Assunto: uma linha que resume a tarefa." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Descrição: várias linhas que descrevem a tarefa" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Data de início planeada: a primeira data em que a tarefa pode ser iniciada. " "\n" "A data de início planeada é por defeito a data de criação da tarefa. Também " "pode ser \n" "'None' ('Nenhuma') indicando que não deseja realmente iniciar a tarefa. Isto " "pode \n" "ser conveniente para, por exemplo, registar uma ausência por doença." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "data-limite: a data em que a tarefa tem que estar concluída. \n" "Pode indicar \"Nenhuma\" se não existir uma data limite." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Data de início efectivo: a data em que a tarefa foi realmente iniciada.\n" "A data de início efectivo pode ser editada directamente, mas pode também ser " "editada quando \n" "rastreia o esforço da tarefa ou quando edita a percentagem completada de uma " "tarefa\n" "para um valor entre 0% e 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Data de conclusão: será sempre \"Nenhuma, até que termine a tarefa. \n" "Se for definida a data actual, a tarefa será considerada concluída.\n" "A data de conclusão pode ser introduzida manualmente." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Pré-requisitos: outras tarefas que têm que ser completadas antes\n" "de uma tarefa poder ser iniciada. A tarefa permanece inactiva até que a " "última tarefa \n" "pré-requerida esteja terminada. Note que caso a tarefa tenha uma data de " "início pleneado,\n" "essa data tem que estar no passado e todos as tarefas pré-" "requeridas têm que\n" "estar completas antes da tarefa ser marcada como atrasada." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Orçamento: quantidade de horas disponíveis para a tarefa." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Rendimento horário: o valor ganho com a tarefa, por hora." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Rendimento fixo: o valor ganho com a tarefa, independentemente \n" "do tempo de execução." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "As seguintes propriedades são calculadas das propriedades anteriores:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Dias restantes: o número de dias até à data de vencimento." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dependentes: outras tarefas que podem ser iniciadas quando a \n" "tarefa pré-requerida for terminada." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Tempo dispendido: esforço utilizado na tarefa." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Orçamento restante: orçamento da tarefa menos o tempo dispendido na tarefa." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" "Receita: taxa horária multiplicada pelo número de horas utilizadas mais uma " "taxa fixa." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "As tarefas têm sempre exactamente um dos seguintes estados:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Activa: a data de início efectivo está no passado;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactiva: a tarefa não foi iniciada e/ou nem todas \n" "as tarefas pré-requeridas foram terminadas;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Concluída: a tarefa foi concluída" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Adicionalmente, as tarefas podem ser referenciadas como:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Atrasada: a data de vencimento está no passado;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Vence em breve: a data de vencimento será atingida brevemente \n" "(quanto é 'brevemente' pode ser definido nas Preferências);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Em atraso: o início planeado está no passado e a tarefa \n" "não foi iniciada;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Orçamento excedido: não resta orçamento;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Abaixo do orçamento: ainda há orçamento disponível;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Sem orçamento: a tarefa não tem orçamento." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "O texto das tarefas está colorido de acordo com estas regras:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "As tarefas atrasadas estão a vermelho;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "As tarefas com data limite próxima estão a laranja;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "As tarefas activas têm texto preto e um ícone azul;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Tarefas em atraso têm côr púrpura;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Tarefas futuras estão a cinzento e" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "As tarefas concluídas estão a verde." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Isto assume, é claro, que não alterou as cores do texto \n" "através do menú Preferências." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "A côr de fundo das tarefas é determinada pelas categorias a que \n" "a tarefa pertença. Consulte a secção acerca de \n" "propriedades das categorias a seguir." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Pode configurar um lembrete para uma data e hora específica. %(name)s irá\n" "mostrar um lembrete nessa data e hora. A partir da caixa de diálogo do " "lembrete\n" "poderá abrir a tarefa, iniciar o seguimento de esforço da tarefa, ou marcar " "a tarefa\n" "como concluída. É também possível adiar o lembrete." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Se tiver o Growl ou Snarl instalados, pode instruir\n" "%(name)s para usá-los para lembretes na caixa de diálogo de preferências." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Sempre que dispende tempo numa tarefa, pode registar o tempo\n" "dispendido por registo de esforço. Seleccione uma tarefa e invoque\n" "'Iniciar registo de esforço' no menú Esforço ou no menú de contexto \n" "ou através do botão 'Iniciar registo de esforço' na barra de menú." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Os registos de esforço têm as seguintes propriedades que pode mudar:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Tarefa: a tarefa a que o esforço pertence." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Data/hora de início: data e hora de início do esforço." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Data/hora de fim: data e hora de fim do esforço. Pode ser \n" "'Nenhum' desde que ainda esteja a trabalhar na tarefa." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Descrição: uma descrição do esforço, em várias linhas." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Tempo dispendido: quando tempo usou para trabalhar na tarefa." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Receita: dinheiro ganho com o trabalho dispendido." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Tarefas e notas pertencem a uma ou mais categorias. Primeiro, tem \n" "que criar a categoria que deseja através do menú 'Categoria'. Em seguida, \n" "pode adicionar items a uma ou mais categorias editando o item e marcando as " "\n" "categorias relevantes para esse item no painel de categoria ou na caixa de " "edição." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Pode limitar os items exibidos na tarefa e visualizadores de notas a uma \n" "ou mais categorias marcando a categoria no visualizador de categorias. Por " "exemplo, \n" "se tiver uma categoria 'telefonemas' e marcar essa categoria, os " "visualizadores \n" "de tarefas apenas mostrarão tarefas pertencentes a essa categoria; por " "outras palavras \n" "os telefonemas que necessita de realizar." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "As categorias têm as seguintes propriedades que pode mudar:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Assunto: uma única linha que sumariza a categoria." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Descrição: uma descrição de várias linhas para a categoria." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Categorias mutuamente exclusivas: uma caixa de verificação que indica\n" "se as subcategorias dessa categoria são mutuamente exclusivas. Se forem,\n" "os items podem pertencer a apenas uma das subcategorias. Ao filtrar, poderá\n" "filtrar apenas uma das subcategorias de cada vez." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "As propriedades de aparência tais como ícone, fonte e cores: \n" "as propriedades de aparência são usadas para representar a categoria, assim " "como\n" "os items pertencentes à categoria. Se uma categoria não tiver cores, fontes " "ou ícones \n" "próprios, mas tiver uma categoria no nível superior com essa propriedade, " "então serão \n" "usadas as propriedades da categoria superior. Se um item pertence a várias " "categorias \n" "e cada uma tem uma côr associada, uma mistura dessas cores irá ser usada " "para \n" "representar esse item." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "As notas podem ser usadas para conter informação variada que pretenda\n" "manter no ficheiro de tarefas. Notas podem ser independentes ou parte de " "outros items,\n" "tais como tarefas e categorias. Notas independentes são mostradas no " "visualizador de \n" "notas. Notas que pertençam a outros items não são mostradas no visualizador " "de notas." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "As notas têm as seguintes propriedades que pode mudar:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Assunto: uma única linha que sumariza a nota." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Descrição: várias linhas que descrevem a nota." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Propriedades de aparência como ícone, tipo de letra e cores." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Quer a impressão quer a exportação funcionam do mesmo modo: ao imprimir\n" "ou exportar dados, os dados do visualizador activo são imprimidos ou " "exportados.\n" "Além disso, os dados são imprimidos ou exportados da mesma maneira que o " "visualizador \n" "os mostra. Os dados são impressos ou exportados na mesma ordem que o " "visualizador\n" "os mostra. As colunas visíveis determinam quais os detalhes que são " "impressos ou \n" "exportados. Ao filtrar items, por exemplo escondendo tarefas concluídas, " "esses items \n" "não são impressos ou exportados." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Preparar o conteúdo de um visualizador, colocando os items na ordem \n" "correcta, mostrando ou ocultando as colunas apropriadas e aplicando \n" "os filtros relevantes." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Pode pré-visualizar o aspecto da impressão usando \n" "a opção Ficheiro -> Pré-visualizar impressão. Pode editar as configurações \n" "da página usando Ficheiro -> Configuração de página. Se a plataforma o " "suportar, \n" "ao imprimir pode escolher imprimir todos os items visíveis no visualizador " "activo, \n" "ou apenas os items seleccionados." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "De seguida, escolha o formato para o qual pretende exportar e\n" "se deseja exportar todos os items visíveis ou apenas os seleccionados. Os " "formatos\n" "disponíveis para exportação incluem CSV (formato de separação por vírgulas), " "HTML \n" "e iCalendar. Ao exportar para HTML, um ficheiro CSS é criado e pode editá-lo " "e \n" "alterar a aparência do ficheiro HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Vários utilizadores a trabalhar no mesmo ficheiro de tarefas." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Ainda não testado." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s é integrado com vários programas de email,\n" "através de Arrastar e Largar. Isto tem algumas limitações; os emails são\n" "copiados para um directório ao lado do ficheiro %(name)s, em ficheiro \n" "com extensão .eml e são posteriormente abertos usando o programa \n" "associado a este tipo de ficheiros no seu sistema. Por outro lado, isto\n" "permite-lhe abrir os anexos de email num sistema potencialmente\n" "diferente do originalmente usado para os criar." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Programas de email suportados incluem:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Devido a uma limitação no Thunderbird, não pode arrastar e largar\n" "vários emails do Thunderbird. Isto não se aplica ao Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Existem duas maneiras de anexar um email a uma tarefa; pode:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" "Largá-lo numa tarefa quer na árvore de tarefas quer na lista de tarefas." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Largá-lo no painel de anexos no editor de tarefas." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Largar um email numa área vazia da árvore de tarefas ou lista de tarefas\n" "cria uma tarefa. O seu assunto é o assunto do email, e a sua descrição\n" "é o seu conteúdo. Adicionalmente, o email é automaticamente anexado\n" "à nova tarefa." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML é um protocolo XML desenhado para sincronizar várias aplicações\n" "com um servidor. Um popular servidor open-source é o Funambol. \n" "Existem clientes de sincronização disponíveis para vários dispositivos e " "aplicações \n" "(Outlook, Pocket PC, iPod, iPhone, Evolution, etc...), bem como " "\"conectores\" que\n" "permitem ao servidor sincronizar com o Exchange, Google Calendar, etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s dispõe de suporte interno para SyncML em Windows e Mac OS X\n" "(desde que use as bibliotecas fornecidas). Isto significa que pode " "configurar\n" "%(name)s para sincronizar com o mesmo servidor SyncML que usa com o\n" "Outlook e tenha todas as tarefas e notas Outlook no seu ficheiro %(name)s,\n" "bem como tarefas e notas %(name)s no Outlook. Ou no seu Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Esta característica é opcional e está desligada por omissão. Para a ligar,\n" "aceda às Preferências e ligue-a no separador Características." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Para configurar o SyncML, aceda ao menú Editar/Preferências SyncML. \n" "Preencha o URL de sincronização, a sua identificação no servidor e escolha \n" "quais os items a sincronizar (tarefas e/ou notas). O URL depende do " "servidor\n" "escolhido; exemplos:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Os nomes para base de dados são bastante comuns; os valores configurados \n" "por omissão deverão funcionar." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Cada ficheiro de tarefas tem o seu identificador de cliente próprio, pelo " "que dois \n" "ficheiros de tarefas diferentes são considerados como \"dispositivos\" " "diferentes pelo servidor." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Algumas limitações devem-se ao facto de, sendo os dados subjacentes \n" "do tipo vcalendar, algumas características %(name)s não podem ser " "apresentadas \n" "ao servidor." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "A hierarquia de tarefas e categorias é perdida pelo servidor." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Recorrência e lembretes ainda não são suportados." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Categorias de notas são perdidas pelo servidor." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "O sistema de detecção/resolução de conflitos é uma solução alternativa \n" "para a limitação do Funambol. Deverá funcionar na maioria dos casos, mas se " "muitas \n" "aplicações sincronizarem com o mesmo servidor ao mesmo tempo, poderão surgir " "\n" "alguns problemas." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Provavelmente outros..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Os items de menú SyncML apenas estarão presentes se a sua plataforma \n" "for suportada. As plataformas actualmente suportadas são:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (ver de seguida)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 e posterior, quer Intel e PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Poderá ter problemas em Windows se não tiver instalada a \n" "biblioteca Microsoft Visual 8. Pode descarregá-la no\n" "sítio de descarregamentos da Microsoft." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Quando o SyncML está ligado, apagar uma tarefa ou nota não a apaga\n" "realmente, apenas a marca como apagada. A tarefa ou nota é realmente \n" "removida da lista de tarefas ou notas na próxima sincronização. Por esta " "razão, \n" "se estiver a usar a extensão SyncML, então desligue-a sem ter sincronizado, " "\n" "pois podem existir algumas notas ou tarefas apagadas no seu ficheiro de " "tarefas. \n" "Isto não é um problema, mas consome mais espaço em disco." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "Neste caso, o item de menú \"Purgar items apagados\" no menú Ficheiro \n" "pode ser usado para apagar efectivamente as tarefas. Está apenas disponível\n" "quando necessitar dele, ou seja quando houver items a purgar. Tenha " "atenção,\n" "após fazê-lo, se reactivar o suporte para SyncML e sincronizar com o mesmo \n" "servidor usado anteriormente, todos os items irão reaparecer, pois o " "servidor \n" "desconhece que tenham sido apagados." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch e iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s no iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Existe uma aplicação para %(name)s em iPhone/iPod Touch/iPad, \n" "disponível na Apple AppStore. (Se não tiver o iTunes instalado no " "seu \n" "computador, ser-lhe-á apresentada uma página de onde pode descarregar o " "iTunes). \n" "Ela suporta as seguintes características:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Atributos básicos: assunto, descrição, datas (com \n" "recorrência)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Tarefas e categorias hierárquicas" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Controlo de tempo" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Vários ficheiros de tarefas" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Sincronização em dois sentidos com %(name)s no computador" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "A aplicação é universal e tem uma interface iPad adaptada." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuração no iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Existem algumas configuração para a aplicação iPhone/iPod Touch/iPad \n" "na aplicação Configurações:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Mostrar concluídas: para mostrar tarefas concluídas." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Mostrar inactivas: mostrar ou não tarefas inactivas (cuja data de \n" "início planeado está no futuro)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Posição do ícone: o ícone LED pode aparecer no lado esquerdo \n" "ou no lado direito do ecran." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Modo compacto: se estiver ligado, a lista de tarefas terá \n" "LEDs mais pequenos e não mostra categorias ou datas." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirmar concluída: se ligada, surge uma caixa de diálogo para confirmar \n" "quando marcar uma tarefa como concluída ao tocar no respectivo LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# dias até vencimento: Quantos dias contar até que considerar \n" "que uma tarefa vence \"em breve\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configurar no computador, todas as plataformas" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Antes de sincronizar, deve também configurar %(name)s no computador; \n" "nas preferências, no separador \"Características\", ligue a opção \"Ligar \n" "sincronização com iPhone\". Reinicie %(name)s. Então, nas preferências, \n" "escolha o separador \"iPhone\" e preencha pelo menos a palavra-passe." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Ao carregar no botão \"Sync\" na vista de categorias, %(name)s irá detectar\n" "automaticamente instâncias de %(name)s em execução no seu computador\n" "e pedir-lhe para escolher uma delas (podem existir várias instâncias em " "execução\n" "em diferentes computadores na sua rede, ou diferentes instâncias no mesmo\n" "computador). O nome exibido é, por omissão, uma cadeia de caracteres que\n" "identifica o computador em que está a ser executada. Para personalizá-la, " "pode\n" "mudar o \"Nome de serviço Bonjour\" na configuração." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s recordar-se-á da instância escolhida e tentará usá-la na\n" "próxima sincronização; se não estiver em execução, perguntar-lhe-á novamente." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Note que a sincronização acontece através da rede; não é necessário \n" "que o dispositivo esteja ligado por USB nem é necessário que o iTunes \n" "esteja em execução." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuração no Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "No Windows, deve instalar Bonjour for Windows e\n" "desbloqueá-lo quando pedido pela firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuração no Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "No Linux, deve ter o daemon Avahi \n" "instalado e em execução. A maioria das distribuições modernas já dispõe " "dele. \n" "Deve também instalar o pacote dnscompat; o nome dependerá da distribuição \n" "(por exemplo, libavahi-compat-libdnssd1 no Ubuntu)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Não consigo eoncntrar a aplicação iPhone/iPod Touch na \n" "página da Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Necessita instalar o iTunes no seu computador para navegar na \n" "Apple's App Store. Descarregar \n" "o iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "O Meu Computador não aparece na lista ao tentar sincronizar" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Verifique que o seu iPhone/iPod Touch está ligado à mesma rede \n" "que o seu computador através de Rede Sem Fios (WiFi)." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "O iPhone não consegue conectar ao meu computador" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Se tem uma firewall, verifique que os portos 4096 a 4100 estão abertos." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Não, %(name)s não está disponível para a plataforma Android. Mas,\n" "Todo.txt Touch está. \n" "Pode exportar as suas tarefas de %(name)s para o formato \n" "Todo.txt e então editar as suas tarefas no seu dispositivo Android." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt é um gestor em código livre de lista de tarefas, criado por Gina " "Trapani, \n" "que trabalha com ficheiros de texto. Todo.txt tem uma interface de linha de " "\n" "comandos. Porém, porque o formato é texto simples, pode editar as tarefas " "com \n" "qualquer editor de texto. Todo.txt Touch é uma versão do Todo.txt para a \n" "plataforma Android. Todo.txt Touch usa um ficheiro todo.txt existente no seu " "\n" "directório Dropbox. %(name)s pode importar e exportar para esse ficheiro " "todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importa assuntos de tarefas, data de início planeado, data de " "vencimento, data de \n" "conclusão, prioridade, contextos e projectos. Contextos e projectos são " "ambos transformados \n" "em categorias em %(name)s. Projectos não podem ser transformados em tarefas-" "mãe porque \n" "Todo.txt permite que tarefas pertençam a vários projectos, enquanto %(name)s " "apenas permite \n" "uma tarefa-mãe por tarefa." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Ao importar, %(name)s tenta localizar tarefas coincidentes e categorias \n" "para actualizá-las em vez de criar novas. Faz a correspondência pesquisando " "\n" "pelo título da tarefa (ou projecto, ou contexto) e o item-pai se existir." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exporta assuntos de tarefa, data de início planeado, data de " "vencimento, data \n" "de conclusão, prioridade e categorias para o formato Todo.txt. Outros " "atributos não são \n" "exportados." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s suporta datas e horas, mas o formato Todo.txt apenas suporta \n" "datas, pelo que a hora de início, hora de vencimento e data/hora de \n" "conclusão não são exportadas." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "O formato Todo.txt por defeito apenas suporta datas de início planeado e de " "\n" "conclusão, mas não datas de vencimento. Portanto, %(name)s usa uma extensão " "\n" "para exportar as datas de vencimento das tarefas. Datas de vencimento são " "exibidas \n" "como \"due:YYYY-MM-DD\" no ficheiro todo.txt." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt mostra prioridades na forma de uma letra ('A' a 'Z'). \n" "%(name)s tem prioridades em formato numérico. %(name)s transforma\n" "a prioridade 1 para 'A', 2 para 'B', etc., e 26 para 'Z'. %(name)s não " "exporta \n" "prioridades abaixo de 1 ou acima de 26." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Categorias cujo título começa com '+' são exportadas como projectos. \n" "Categorias cujo título começa com '@' são exportadas como contexto. \n" "Categorias cujo título começa não começa com '+' ou '@' não são exportadas. " "\n" "Subcategorias são exportadas se a categoria de que dependem também o fôr." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Modelos são esquemas preparados para novas tarefas. Neste momento, \n" "as únicas propriedades de tarefas que podem ser \"parametrizadas\" são \n" "as datas. Para criar uma instância a partir de um modelo, a tarefa criada \n" "terá as suas datas substituídas por datas relativas à data actual." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Pode criar um modelo seleccionando uma tarefa (apenas uma) e clicando \n" "no item \"Salvar como modelo\" no menú Ficheiro. Todas as subtarefas, notas " "e \n" "anexos fazem parte do modelo. Apenas as categorias não são guardadas." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Pode também crear um novo modelo a partir de um ficheiro de modelo pré-" "fabricado \n" "(.tsktmpl); basta seleccionar \"Importar modelo\" no menú Ficheiro e " "seleccionar o ficheiro. \n" "Ficheiros de modelo são guardados num subdirectório do directório onde o " "ficheiro TaskCoach.ini \n" "reside." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Para instanciar um modelo de tarefa, use o menú \"Nova tarefa com base no " "modelo\" \n" "no menú Acções, ou botão de barra de ferramentas equivalente. Quando a " "tarefa é \n" "criada, as datas de início, vencimento e conclusão, se aplicável, são " "recalculadas \n" "relativamente à data actual. Isto significa que se criar um modelo a partir " "de uma \n" "tarefa com início hoje e vencimento amanhã, sempre que o modelo for " "instanciado, \n" "a data de início planeado será substituída pela data actual e a data de " "vencimento pela \n" "data actual mais um dia." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Pode também adicionar modelos ao editor de modelos (Ficheiro/Editar \n" "modelos), bem como editar as propriedades básicas do modelo (datas e \n" "assunto). As datas são fornecidas em formato legível; o editor de data \n" "muda para côr vermelha se %(name)s não conseguir interpretar o valor. \n" "Exemplos de datas:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Por favor note que este sistema não está internacionalizado; deve \n" "escrever as data em inglês." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Pode arrastar e largar visualizadores para criar praticamente qualquer \n" "disposição de interface que pretenda. Quando começa a arrastar um " "visualizador,\n" "dicas para largar irão aparecer para mostrar onde pode largar o " "visualizador. Os \n" "visualizadores podem também ser largados dentro de outros para criar livros " "de notas." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "Nas caixas de edição, pode arrastar e largar separadores para rearranjar \n" "a ordem ou criar uma disposição da interface totalmente diferente colocando " "\n" "separadores próximos uns dos outros." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Assuntos e descrições de tarefas, notas e categorias podem ser editadas\n" "sem abrir uma caixa de edição. Seleccione o item cujo assunto ou descrição \n" "queira modificar e clique no item novamente, quer na coluna de assunto quer " "\n" "na coluna de descrição. Uma caixa de texto irá aparecer para que possa \n" "alterar o assunto ou descrição. Carregue em Enter para confirmar as " "modificações. \n" "Carregue em Escape para cancelar as modificações. F2 é um atalho de teclado " "\n" "para editar o assunto." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s dispõe de vários atalhos de teclado, listados em baixo. \n" "Os atalhos de teclado ainda não são configuráveis." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux e Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux e Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux e Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Inserir um novo subitem" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Editar o(s) item(s) seleccionado(s) ou fechar uma caixa de diálogo" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Marcar a(s) tarefa(s) seleccionadas como (in)completa(s)" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Cancelar uma caixa de diálogo ou mover o foco do teclado do controlo de " "pesquisa de volta para o visualizador" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Mover o foco do teclado para o campo seguinte na caixa de diálogo" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Mover o foco do teclado para o campo anterior na caixa de diálogo" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" "Mover o foco do teclado para o separador seguinte num controlo de livro de " "notas" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" "Mover o foco do teclado para o separador anterior num controlo de livro de " "notas" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "Delete" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "Insert (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-Insert (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-SetaParaBaixo" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Menú de contexto ou menú de sobreposição" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Editar o assunto do item seleccionado num visualizador" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versão %(version)s, %(date)s
    \n" "

    por %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s está em desenvolvimento. Apesar dos programadores de %(name)s " "tentarem prevenir os erros, estes ocorrem. Assim, recomenda-se que faça " "cópias de segurança regularmente." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s tem uma lista de subscrição de correio onde pode discutir a " "utilização de %(name)s com outros utilizadores, discutir e pedir novas " "funcionalidades e reportar falhas. Vá a %(url)s e inscreva-se hoje!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s tem refazer/desfazer ilimitados. Qualquer alteração que fizer, como " "editar descrição da tarefa ou apagar o registo de empenho é impossível. " "Seleccione Editar -> Desfazer e Editar ->Refazer para avançar ou retroceder " "no histórico." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s está disponível em diversos idiomas. Seleccione Editar -> " "Preferências para ver se o seu é um deles. Se o seu idioma não estiver " "disponível ou precisar de melhoramentos, ajude na tradução de %(name)s. " "Visite %(url)s para mais informações sobre como pode ajudar." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Se introduzir uma URL (ex. %(url)s) na descrição da tarefa ou empenho, " "tornar-se-á uma ligação. Ao clicar na ligação irá abrir a URL com o seu " "navegador por omissão." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Pode arrastar e largar as tarefas na vista em árvore para arranjar relações " "entre tarefas e sub-tarefas. O mesmo serve para as categorias." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Pode arrastar ficheiros a partir de um gestor de ficheiros para uma tarefa " "para criar anexos. Se arrastar os ficheiros sobre um separador irá levantar " "a página adequada, se os arrastar sobre uma tarefa recolhida (marcada com um " "sinal +) na vista em árvore irá expandir a tarefa e mostrar todas as sub-" "tarefas." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Pode criar uma disposição de visualizador arrastando e largando separadores. " "A disposição é guardada e será reutilizada na próxima sessão." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "O que é impresso em Ficheiro -> Imprimir depende da vista actual. Se a vista " "mostrar a lista de tarefas, esta será impressa. Se a vista actual mostrar " "empenhos agrupados por mês, estes serão impressos. O mesmo é válido para " "colunas, ordenação filtros, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Clique esquerdo no cabeçalho da coluna para ordenar por coluna. Clique " "novamente no cabeçalho para alterar a ordenação de ascendente para " "descendente e vice-versa. Clique direito no cabeçalho da coluna para ocultar " "essa coluna ou mostrar colunas adicionais." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Pode criar um modelo a partir de uma tarefa de modo a reduzir a introdução " "de tarefas padrão." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab alterna entre tabuladores em caixas de diálogo de edição." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Dica do dia" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Seguinte" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Mostrar dicas ao iniciar" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "Navegar ficheiros para adicionar como anexo ao(s) item(s) seleccionado(s)" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Adicionar uma nota ao(s) item(s) seleccionado(s)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Inserir uma nova categoria" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Cortar o(s) iten(s) seleccionados para o clipboard" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copiar o(s) iten(s) seleccionados para o clipboard" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Colar iten(s) a partir do clipboard" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Colar item(ns) na área de transferência como um sub-item do item seleccionado" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Editar preferências" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Refazer o último comando que foi desfeito" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Seleccionar todos itens da visualização actual" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Desfazer o último comando" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Adicionar período de empenho à(s) tarefa(s) seleccionadas" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Iniciar acompanhamento de empenho da(s) tarefa(s) seleccionada(s)" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Parar ou retomar o rastreamento de esforço" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Fechar o ficheiro actual" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Sair %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Abrir um arquivo %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Gravar o ficheiro actual" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Guardar o ficheiro actual com outro nome" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Ajuda sobre o programa" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" "Enviar o(s) item(s) escolhido(s) por email, usando o cliente de email por " "omissão" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Inserir uma nova nota" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Abrir todos os anexos do(s) item(s) seleccionado(s)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Abrir todas as notas do(s) item(s) seleccionado(s)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Imprimir o ficheiro actual" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Configurar as características da página da impressora" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Mostrar todos itens (reset a todos os filtros)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Mostrar todos os items independentemente da categoria" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Mover o foco do teclado do visualizador para o controlo de pesquisa" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Diminuir a prioridade da(s) tarefa(s) selecionada(s)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Aumentar a prioridade da(s) tarefa(s) selecionada(s)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Marcar as tarefa(s) seleccionadas como tarefa(s) de maior prioridade" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Marcar as tarefa(s) seleccionadas como tarefa(s) de menor prioridade" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Inserir uma nova tarefa" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Recolher todos itens com subitens" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Expandir todos itens com subitens" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activar o próximo visualizador aberto" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activar visualizador anterior aberto" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Um iPhone ou iPod tentou ligar-se ao Task Couch, mas a\n" "palavra-passe não está definida. por favor, defina-a na\n" "secção de configuração do iPhone e tente novamente." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Versão do protocolo: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Rejeitada a versão de protocolo %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Nome do dispositivo : %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Enviando nome de ficheiro: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Total do ambiente de trabalho." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categorias" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Enviar categoria %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Resposta: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tarefas" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Enviar tarefa %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d empenhos" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Enviar empenho %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Terminado." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d novas categorias" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d novas tarefas" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d novos empenhos" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d categorias modificadas" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d tarefas modificadas" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d empenhos modificados" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d categorias apagadas" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d tarefas apagadas" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d empenhos apagados" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nova categoria (descendente de: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Apagar categoria %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modificar categoria %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nova tarefa %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Apagar tarefa %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modificar tarefa %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Terminar a sincronização da tarefa." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Não foi possível localizar a tarefa %s para o esforço." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Novo empenho %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modificar empenho %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Enviando GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "A ler informação do mail..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "A ler informação do mail. Por favor espere" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Não foi possível localizar o directório de dados do Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Não foi possível encontrar o perfil de Thunderbird." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Não existe secção por defeito no ficheiro profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Erro de formatação em identificador interno do Thunderbird:\n" "%s. Por favor submeta um relatório de falha." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Não foi possível encontrar directório para o identificador\n" "%s.\n" "Por favor submeta um relatório de falha." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Esquema URL não reconhecido: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Não foi possível a ligação IMAP ao servidor %(server)s:%(port)s\n" "para obter a mensagem do Thunderbird:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Indique o domínio para o utilizador %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Não foi possível seleccionar caixa de entrada \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Email não encontrado: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Hora de início efectivo" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Hora de início planeado" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Hora de vencimento" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Hora de conclusão" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Hora de lembbrete" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Hora de criação" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Data final do intervalo" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Hora final do intervalo" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Data inicial do intervalo" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Hora inicial do intervalo" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Sem assunto" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nova tarefa acaba hoje" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nova tarefa acaba amanhã" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dias" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 dia" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Todos os %(frequency)d dias" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Todas as %(frequency)d semanas" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Todos os %(frequency)d meses" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Todos os %(frequency)d anos" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Dia sim dia não" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Semana sim semana não" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Mês sim mês não" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Ano sim ano não" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Ontem" #: taskcoachlib/render.py:284 msgid "now" msgstr "agora" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Sincronização para a fonte %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "será uma actualização a partir do servidor. Todos os \n" "itens locais serão apagados. Continuar?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "será uma actualização a partir do cliente. Todos os \n" "itens remotos serão apagados. Continuar?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sincronização" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Sincronizando. Aguarde.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d itens adicionados.\n" "%d itens actualizados.\n" "%d itens apagados." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Ocorreu um erro durante a sincronização.\n" "Código do erro: %d; mensagem: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "Deve editar as Definições SyncML, em Editar/ preferências SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Alternador de Paineis" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restaurar %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Pré-visualizar painel" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Fechar" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Fechar tudo" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Seguinte" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Anterior" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Janela" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Editar" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d semanas" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d horas" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Concluído" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Tipo de período mostrado e sua contagem" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Mês" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientação do calendário" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Quais tarefas a exibir" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tarefas com uma data de início planeado e uma data de vencimento" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tarefas com uma data de início planeado" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tarefas com data de vencimento" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Todas as tarefas" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Todas as tarefas, excepto tarefas não planeadas" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Desenhar uma linha mostrando a hora actual" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Côr usada para realçar o dia actual" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Todos ficheiros (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Cabeçalhos" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Palavra-Passe:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Guardar no registo de chaves" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Ocorreu um problema ao tentar encontrar a cadeia de chaves do seu sistema.\n" "Por favor submeta um relatório de falha (veja o menú Ajuda) e anexe uma " "captura de écran a esta mensagem.\n" "O erro foi:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Por favor introduza a sua password." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Por favor introduza a sua password" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "Diferenciar &maiúsculas/minúsculas" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Maiúsculas/minúsculas ao filtrar" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Incluir subitems" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" "Incluir sub itens dos itens correspondentes nos resultados de pesquisa" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "Pe&squisar também na descrição" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Procurar no assunto e na descrição" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Expressão ®ular" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Interpretar texto de pesquisa como expressão regular" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Esta expressão é inválida." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Retornando para procura de sub-texto" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Pesquisas recentes" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Visualizador não pesquisável" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Aviso de compatibilidade" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "A funcionalidade SyncML está desactivada, porque o módulo\n" "não foi carregado. Isto pode acontecer se a sua plataforma não\n" "for suportada. Se for Windows, podem faltar algumas DLLS.\n" "Veja na ajuda online, a secção do SyncML (em:\"Troubleshooting\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Não mostre esta mensagem novamente" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Erro ao abrir a URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Eliminar\tDEL" taskcoach-1.4.3/i18n.in/pt_BR.po000066400000000000000000006740721265347643000162430ustar00rootroot00000000000000# Brazilian Portuguese translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:28+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: pt_BR\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Erros ocorreram. Por favor verifique \"taskcoachlog.txt\" na sua pasta " "\"Meus Documentos\"" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Erro" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Alguns erros ocorreram. Por favor, veja \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Não foi possível ler as configurações em TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Erro de arquivo: %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Editar localização dos anexos" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Editar localização dos anexos \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Adicionar anexo" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Adicionar anexo para \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Novo anexo" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Remover anexo" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Remover anexo para \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copiar" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copiar \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Excluir" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Excluir \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Recortar" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Recortar \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Colar" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Colar \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Colar como subitem" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Colar como subitem de \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Arrastar e soltar" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Arrastar e soltar \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Editar assuntos" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Editar assuntos \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Editar descrições" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Editar descrições \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Alterar ícones" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Alterar ícones \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Alterar fontes" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Alterar fontes \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Alterar cores de primeiro plano" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Alterar cor de primeiro plano \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Alterar cores do plano de fundo" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Alterar cores do plano de fundo \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Mudar categoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Mudar categoria de \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nova categoria" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Novas subcategorias" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Novas subcategorias de \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nova subcategoria" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Editar subcategorias exclusivas" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Editar subcategorias exclusivas de \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Excluir categorias" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Excluir categorias \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Arrastar e soltar categorias" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Novo esforço" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Novo esforço de \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Excluir esforço" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Excluir esforço \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Alterar tarefa do esforço" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Alterar tarefa do esforço \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Alterar data de início e fim do esforço" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Alterar data de início e fim do esforço de \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Alterar data e hora de parada do esforço" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Alterar data e hora de parada do esforço de \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nova nota" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Novas subnotas" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Novas subnotas de \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nova subnota" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Excluir notas" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Excluir notas \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Arrastar e soltar notas" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Arrastar e soltar notas \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Adicionar nota" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Adicionar nota para \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Adicionar subnota" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Adicionar subnota para \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Remover nota" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Remover nota de \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Arrastar e soltar tarefas" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Excluir tarefas" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Excluir tarefas \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nova tarefa" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Novas subtarefas" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nova subtarefa de \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nova subtarefa" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marcar tarefas completadas" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marcar \"%s\" completadas" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Marcar tarefa como ativa" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Marcar \"%s\" como ativa" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Marcar tarefa como inativa" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Marcar \"%s\" como inativa" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Iniciar acompanhamento" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Iniciar acompanhamento \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Parar acompanhamento" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Parar acompanhamento \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximizar prioridade" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximizar prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizar prioridade" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimizar prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Aumentar prioridade" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Aumentar prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Diminuir prioridade" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Diminuir prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Alterar prioridade" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Alterar prioridade de \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Adicionar nota às tarefas" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Alterar data de início planejada" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Alterar data de início planejada de \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Alterar data final" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Alterar data final de \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Alterar data real de início" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Alterar data real de início de \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Alterar data de finalização" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Alterar data de finalização de \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Alterar lembrete de data/hora" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Alterar lembrete de data/hora de \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Alterar recorrências" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Alterar recorrências de \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Alterar poncentagem finalizada de \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Alterar quando as tarefas forem marcadas como finalizadas" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Alterar quando \"%s\" for marcado finalizado" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Alterar orçamentos" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Alterar orçamentos de \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Alterar remuneração por hora" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Alterar remuneração por hora de \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Alterar remuneração fixa" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Alterar remuneração fixa de \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Alterar pré-requisito" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Alterar pré-requisito de \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Erro ao ler a configuração %s-%s do arquivo %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "O valor é: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "O erro é: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s usará o valor padrão para a configuração e deverá continuar normalmente." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Erro de configuração" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Erro enquanto salvando %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Erro de gravação" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mensagem Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Novo anexo..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Inserir um novo anexo" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Abrir anexo" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Abrir anexos selecionados" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minutos" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Não pausar" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minutos" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minutos" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minutos" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 horas" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minutos" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hora" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 horas" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 horas" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 horas" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 horas" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 horas" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 semanas" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 semana" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total para %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Novo esforço...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Tarefas inativas" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Ocultar tarefas &inativas" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Tarefas inativas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Mostrar/ocultar tarefas inativas (tarefas incompletas sem data atual de " "início)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Tarefas atrasadas" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Ocultar tarefas &atrasadas" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Tarefas atrasadas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Mostrar/ocultar tarefas atrasadas (tarefas inativas com data planejada de " "início no passado)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Tarefas ativas" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Tarefas ativas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Ocultar tarefas &ativas" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Mostrar/ocultar tarefas ativas (tarefas incompletas com data atual de início " "no passado)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Tarefas que vencem logo" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Tarefas que vencem logo: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Ocultar tarefas que &vencem logo" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Mostrar/ocultar tarefas que vencem logo (tarefas incompletas com data de " "vencimento em futuro próximo)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Tarefas com prazo expirado" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Ocultar tarefas &vencidas" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Tarefas vencidas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Mostrar/ocultar tarefas vencidas (tarefas incompletas com data de vencimento " "no passado)T" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Tarefas concluídas" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Tarefas finalizadas: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Ocultar tarefas &finalizadas" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Mostrar/ocultar tarefas finalizadas" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nova tarefa..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Seta abaixo" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Seta abaixo com status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Setas azuis contínuas" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Setas verdes contínuas" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Seta acima" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Seta acima com status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Livro" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Livros" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Caixa" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Joaninha" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Bolo" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculadora" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendário" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Gato" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact Disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Gráficos" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Conversando" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Marcar" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Verifique marcadores" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Hora" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarme de tempo" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Parar assistência" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Engrenagem" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Engrenagens" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "PC Desktop" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Laptop" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handheld PC" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Cruz vermelha" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Dado" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Documento" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Terra azul" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Terra verde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelope" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envelopes" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Pasta azul" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Pasta azul clara" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Pasta verde" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Pasta cinza" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Pasta laranja" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Pasta roxa" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Pasta vermelha" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Pasta amarela" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Pasta azul com seta" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Coração" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Corações" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Casa verde" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Casa vermelha" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Tecla" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Teclas" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lâmpada" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Marcar questão" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informação" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Led Azul" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Led azul claro" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Led cinza" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Led verde" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Led verde claro" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Led laranja" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Led roxo" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Led vermelho" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Led amarelo" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Salva vidas" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Travar" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Destravar" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupa" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota musical" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Nota" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Clipe de papel" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Lápis" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Pessoa" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Povo" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificação" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Pessoa falando" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Sinal de Alerta" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Menos" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Mais" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Estrela vermelha" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Estrela amarela" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semáforo" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Lixeira" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Relâmpago" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Guarda-chuva" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Nublado" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Chave inglesa" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Sem ícone" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Fechar" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Mensagem dos %s desenvolvedores" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Veja:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descrição" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Editar para alterar todos os assuntos" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Assunto" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Editar para alterar todas as descrições" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Data de criação" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Data de modificação" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioridade" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Mutuamente exclusivos" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategorias" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Editar para alterar a localização de todos os anexos" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Procurar" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Localização" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Aparência" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Cor de primeiro plano" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Cor de plano de fundo" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Fonte" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ícone:" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datas" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Data de início planejada" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Prazo de conclusão" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Data real de início" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data de conclusão" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Lembrete" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recorrência" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Andamento" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Porcentagem completa" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Usar configuração geral" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Não" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Sim" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Marcar tarefa como completa quando todas suas subtarefas forem completadas?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Orçamento" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Tempo gasto" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Orçamento baixo" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Taxa horária" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Taxa fixada" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Receita" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Esforço" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorias" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Anexos" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notas" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Pré-requisitos" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Editar tarefa" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Tarefa" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Iniciar" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Semana(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Dia(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hora(s)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minuto(s)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Parar" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Iniciar contagem a partir do último tempo de parada" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Parar monitoramento agora" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Alerta: o começo deve ser anterior à parada." #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Tarefas múltiplas" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (tarefa)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Categorias múltiplas" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (categoria)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Notas múltiplas" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (nota)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Anexos múltiplos" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (anexo)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Esforços múltiplos" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (esforço)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Usar fonte:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Usar cor:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nenhum" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Diariamente" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mensalmente" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Semanalmente" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Anualmente" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "Manter datas no mesmo dia da semana" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", tudo" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Parar após" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "recorrências" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Programar cada próxima recorrência baseada em" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dia(s)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "período," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "semana(s)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mês(es)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "ano(s)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportar itens de:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Exportar somente os itens selecionados" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Colunas para exportar:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Ponha datas e horários de tarefas em colunas separadas" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Escrever informações de estilo para um arquivo CSS separado" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Se um arquivo CSS existir para o arquivo exportado, %(name)s não irá " "sobreescrevê-lo. Você pode alterar o estilo da informação sem perder as " "alterações na próxima exportação." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportar como CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportar como iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exportar como HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportar como Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Um iPhone ou iPod Touch está tentando\n" "sincronizar com este arquivo de tarefas\n" "pela primeira vez. Que tipo de sincronização\n" "você gostaria de usar?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Atualizar do desktop" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Atualizar do dispositivo" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Cancelar" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Você ativou a sincronização de iPhone, que\n" "precisa do Bonjour. O Bonjour não parece estar instalado\n" "em seu sistema." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Por favor baixe e instale o Bonjour para Windows do\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Site da Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "O Bonjour para Linux é geralmente fornecido por\n" "Avahi" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Você pode encontrar detalhes para sua distribuição aqui" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Note que em alguns sistemas operacionais (Fedora), você terá que\n" "instalar o pacote avahi-compat-libdns_sd assim como o Avahi \n" "para que funcione corretamente." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Além disso, se você tiver um firewall, cheque se as portas 4096-4100 estão " "abertas." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Esta configuração será efetuada após reiniciar %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Esta configuração pode ser sobreescrita por tarefas individuais\n" "no diálogo de edição de tarefas" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Arquivos" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Salvar automaticamente após cada mudança" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Salvar configurações (%s.ini) no mesmo\n" "diretório do programa" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Para executar %s de uma mídia removível" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Anexar ao diretório principal" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Quando adicionar um anexo, tente fazer\n" "seu caminho direcionado para ele" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Antes de salvar, importar automaticamente de" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Formato Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Antes de salvar, %s automaticamente importa taredas\n" "de um arquivo Todo.txt com o mesmo nome do arquivo de tarefas,\n" "mas com extensão .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Ao salvar, exportar automaticamente para" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Quando salvar, %s automaticamente exporta as tarefas\n" "para um arquivo Todo.txt com o mesmo nome do arquivo de tarefas,\n" "mas com extensão .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Comportamento da janela" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Mostrar tela inicial do programa" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Mostrar dicas ao iniciar" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Inicie com a janela principal iconificada" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Sempre" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nunca" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Se estava iconificada na última sessão" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Checar por nova versão de %(name)s ao iniciar" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Verificar mensagens dos %(name)s desenvolvedores ao iniciar" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Esconder tela principal quando iconificado" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimizar tela principal quando fechar" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Faça o relógio na barra de tarefas piscar quando estiver contando esforço" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Idioma" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Deixar o sistema determinar o idioma" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Se seu idioma não está disponível, ou a tradução precisa melhorar, por favor " "considere nos ajudar. Veja:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Idioma não encontrado?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Aparência da tarefa" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Estas configurações de aparência podem ser sobreescritas por tarefas " "individuais\r\n" "no diálogo de edição de tarefas." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Recursos" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Todas as configurações nesta aba requerem o reinício de %s para ter efeito" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Habilitar SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Habilitar sincronização com iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Usar gerenciador de sessões X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Início da semana de trabalho" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Segunda-feira" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Domingo" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hora de início do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hora de término do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Fim do dia" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Usar gradientes nas visualizações de calendário.\n" "Isso pode deixar o Task Coach mais lento." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minutos entre os tempos sugeridos" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Nos menus pop-ups de seleção de tempo (ex. para configuração de início\n" "de tempo em quaisquer esforços) %(name)s irá sugerir tempos utilizando esta\n" "configuração. Quanto menor for o número de minutos, maior será o tempo\n" "sugerido. É claro que, você também poderá digitar o tempo que quiser\n" "sobre o tempo sugerido." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Aviso de tempo ocioso" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Se não houver nenhuma entrada do usuário entre esta faixa de tempo\n" "(em minutos), %(name)s irá perguntar o que fazer com os esforços atuais." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Mostrar popup com descrição do item\n" "ao passar mouse sobre ele" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Datas da tarefa" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Marcar tarefa-pai como finalizada quando todas subtarefas estiverem " "finalizadas" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Número de horas para que as tarefas sejam consideradas 'a vencer'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nada" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Ao alterar a data planejada de início alterar a data de término" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Ao alterar a data de término alterar a data planejada de início" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "O que fazer com a data planejada de início e a data de término se uma delas " "for alterada" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Pré-definido" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Proposta" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Hoje" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Amanhã" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Depois de amanhã" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Próxima sexta-feira" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Próxima segunda-feira" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Início do dia" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Início do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Hora atual" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Fim do dia de trabalho" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Data e hora de início planejado padrão" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Data e hora padrão de vencimento" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Padrão de data e hora de início reais" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Data e hora padrão de finalização" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Data e hora padrão de lembrete" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Lembretes de tarefas" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Sistema de notificação usado para lembretes" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Deixar o computador dizer o lembrete" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Precisa alto-falante)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Tempo padrão de espera após lembretes" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Tempo de espera para lembrete de tarefa" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Senha para sincronizar com iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Quando estiver sincronizando, insira sua senha no iPhone para autorizá-lo" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Nome no Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Transferir tarefas completas para o dispositivo" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Mostrar o log de sincronização." #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Verificar ortografia em editores" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Fonte a usar na descrição dos campos dos diálogos de edição" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Quando baixar um email de Mail.app, tente obter pelo assunto.\n" "Isso leva até 20 segundos." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "lembrete %(name)s - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Lembrete data/hora" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Pausa" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Também fazer deste, o tempo de soneca padrão para avisos futuros" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Marcar tarefa como finalizada" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Servidor SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Personalizar" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL do servidor SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nome de usuário/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Ativar sincronização de tarefas" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Nome do banco de dados de tarefas" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Modo de sincronização preferido" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Dois caminhos" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lenta" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Sincronizar do cliente" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Atualizar do cliente" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Sincronizar do servidor" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Atualizar do servidor" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Habilitar sincronização de notas" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Nome do banco de dados de notas" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Acesso" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Novo modelo de tarefa" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Visualizar" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Ferramentas disponíveis" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Exibir esta ferramenta na barra de ferramentas" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Oculte essa ferramenta da barra de ferramentas" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Ferramentas" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" "Mova a ferramenta para cima (para a esquerda da barra de ferramentas)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" "Mova a ferramenta para baixo (para a direita da barra de ferramentas)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Reordenar a barra de ferramentas arrastando-a e soltando-a nesta lista." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separador" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Espaçador" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Avise-me sobre novas versões" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Nova versão de %(name)s disponível" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Você está usando %(name)s versão %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Versão %(version)s de %(name)s está diponível em" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s está atualizado" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s está atualizado para a versão %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Não foi possível encontrar a última versão" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Não foi possível descobrir qual é a última versão de %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Versão Pré-release" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Você está usando %(name)s versão pré-release %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "A última versão estável de %(name)s é %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Aviso" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach possui problemas conhecidos com o ambiente gráfico XFCE4.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Se você teve travamentos aleatórios ao iniciar, por favor desmarque\n" "\"Usar gerenciador de sessão X11\" na aba Recursos das preferências.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Não mostrar este diálogo ao iniciar" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Sem entrada do usuário desde %s. A seguinte tarefa\n" "foi traçada:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Não fazer nada" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Parar em %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Parar em %s e resumir agora" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notificação" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s arquivos (*.tsk)|*.tsk|Todoso os arquivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Arquivos %s (*.tsk)|*.tsk|Arquivos de backup (*.tsk.bak)|*.tsk.bak|Todos os " "arquivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Arquivos iCalendar (*.ics)|*.ics|Todos os arquivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Arquivos HTML (*.html)|*.html|Todos os arquivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Arquivos CSV (*.csv)|*.csv|Arquivos de texto (*.txt)|*.txt|Todos os arquivos " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt arquivos (*.txt)|*.txt|Todos arquivos (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Abrir" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d tarefas carregadas de %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Não foi possível abrir %s porque ele não existe" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Mesclar" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "Não pode abrir %(filename)s porque ele está travado." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s mesclado" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Salvar como" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Salvar a seleção" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Não pode salvar %s\n" "Ele está travado por outra instância de %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Não foi possível salvar %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importar modelo" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s arquivos de modelos (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Não foi possível importar modelo %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Exportado %(count)d ítens para %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sincronização finalizada" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Status da sincronização" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Não é possível abrir %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Um arquivo chamado %s já existe.\n" "Você quer substituí-lo?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Você tem alterações não salvas.\n" "Salvar antes de fechar?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: salvar alterações?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Não é possível abrir %s porque ele está travado.\n" "\n" "Isto significa ou que outra instância do TaskCoach\n" "está em execução e tem este arquivo aberto, ou que o\n" "Task Coach travou com esse arquivo aberto. Se não houver\n" "outra instância aberta, você pode quebrar o bloqueio de forma segura.\n" "\n" "Destravar o arquivo?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: arquivo protegido" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Não foi possível bloquear porque o bloqueio não é suportado\n" "na localização de %s.\n" "Abrir %s desbloqueado?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Fechado %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d tarefas salvas em %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Não foi possível abrir %(filename)s\n" "porque ele foi criado por uma versão mais nova do %(name)s.\n" "Por favor, atualize %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Erro ao abrir %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Sincronizando..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sincronizando com %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Bem-vindo a %(name)s versão %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Não foi possível restaurar o layout do painel de TaskCoach.ini:\n" "%s\n" "\n" "O layout padrão do painel será usado.\n" "\n" "Se isso acontecer novamente, por favor faça uma cópia do seu arquivo " "TaskCoach.ini antes de fechar o programa, abra um relatório de erro, e anexe " "o arquivo TaskCoach.ini copiado ao relatório de erro." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s erros de configuração" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Tipo de sincronização" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Um iPhone ou iPod Touch tentou sincronizar com este\n" "arquivo de tarefa, mas o protocolo de negociação falhou. Por favor\n" "envie um arquivo reportando a falha." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Arquivo" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Editar" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Exibir" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Novo" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Ações" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Ajuda" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importar" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportar" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Selecionar" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Novo visualizador" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Ativar próximo visualizador\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Habilitar o visualizador &anterior\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Modo" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtrar" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Ordenar" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Colunas" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Arredondamento" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Opções de árvore" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Barra de ferramentas" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Exibir/ocultar barra de status" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Barra de status" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Tarefa" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Abrir nova aba com um visualizador de tarefas" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "E&statíticas das tarefas" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" "Abrir uma nova aba com um visualizador que mostre as estatísticas das tarefas" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "&Quadro de tarefas" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Abrir uma nova aba com um visualizador que exiba as tarefas em um quadro" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "L&inha de tempo" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Abrir uma nova aba com um visualizador que mostre a linha de tempo de " "tarefas e esforços" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendário" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "Abrir uma nova aba com um visualizador mostrando as tarefas num calendário" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categoria" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Abrir nova aba com um visualizador que mostre as categorias" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Atividade" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Abrir uma nova aba com um visualizador que mostre as atividades" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Abrir uma nova aba com visualizador que mostre atividades para a tarefa " "selecionada" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Nota" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Abrir nova aba com um visualizador que mostre as notas" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Ocultar" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Ocultar a barra de ferramentas" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "Imagens &pequenas" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Imagens pequenas (16x16) na barra de ferramentas" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Imagens de tamanho &médio" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Imagens de tamanho médio (22x22) na barra de ferramentas" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "Imagens &grandes" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Imagens grandes (32x32) na barra de ferramentas" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nova tarefa do &modelo" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Alterar categoria" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Alterar &prioridade da tarefa" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Iniciar acompanhamento de esforço" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategorias)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subtarefas)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioridade" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Página" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Lembrar" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d tarefas atrasadas" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "uma tarefa atrasada" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d tarefas que vencem logo" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "uma tarefa que vence logo" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "acompanhamento \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "contando esforço de %d tarefas" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Abrir... \tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Abrir %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Mesclar..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Mesclar tarefas de outro arquivo com o arquivo atual" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Fechar\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Salvar\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&alvar como...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "S&alvar tarefas selecionadas para novo arquivo de tarefas..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Salvar as tarefas selecionadas para um arquivo de tarefas separadas" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Salvar a tarefa selecionada como &modelo" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Salvar a tarefa selcionada como um modelo de tarefa" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importar modelo..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importar um novo modelo de um arquivo de modelo" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Editar modelos..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Editar modelos existentes" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Editar modelos" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Excluir ítens apagados" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Realmente excluir tarefas e notas apagadas (veja o capítulo sobre SyncML na " "Ajuda)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Se apagar itens deletados será impossível recuperar.\n" "Se estiver planejando ativar\n" "o SyncML novamente com o\n" "mesmo servidor que usou anteriormente\n" "estes itens provavelmente voltarão.\n" "Você ainda quer apagar?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Configurar &página...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "Visualizar &impressão..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Mostrar como a página será impressa" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Visualizar impressão" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Imprimir...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportar como &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exportar itens de um visualizador em formato HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportar como &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Exportar itens de um visualizador em formato Comma Separated Values (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exportar como &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exportar itens de um visualizador em formato iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exportar como &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Exportar itens de um visualizador em formato Todo.txt (veja em todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importar CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importar tarefas de um arquivo Comma Separated Values (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importar CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" "O arquivo selecionado está vazio. Por favor, selecione um arquivo diferente." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importar Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importar tarefas do arquivo Todo.txt (veja todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importar Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Sincronizar pelo S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Sincronizar com um servidor SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Finalizar\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "Desfazer" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Refazer" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Recor&tar\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copiar\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Colar\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "C&olar como subitem\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferências...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferências" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Preferẽncias do &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Editar preferências de SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Preferẽncias do SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Personalizar barra de ferramenta" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Personalizar" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Todos\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Limpar seleção" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Desmarcar todos os ítens" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Limpar todos os filtros\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Reiniciar todas as categorias\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Mostrar/ocultar itens pertencentes a %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Renomear visualizador..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Renomear o visualizador selecionado" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Novo título para o visualizador:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Renomear visualizador" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Ocultar esta coluna" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "&Ocultar a coluna selecionada" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Expandir todos os ítens\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Recolher os ítens\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascendente" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Ordem crescente (marcados) ou descendente (desmarcados)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Ordenar distinguindo entre maiúsculas e &minúsculas" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Quando comparar texto, ordenar diferenciando maiúsculas de minúsculas " "(marcados) ou não diferenciando (desmarcados)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Odenar por status primeiro" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Ordenar tarefas inicialmente pelo status (ativa/inativa/completa)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Ocultar tarefas c&ompostas" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Mostrar/ocultar lista de tarefas com subtarefas" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Editar...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Editar o(s) item(ns) selecionado(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Editar &monitorar tarefa...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Editar o monitoramento atual da(s) tarefa(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Excluir\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Excluir o(s) item(ns) selecionado(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Criar uma nova tarefa de um modelo" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nova tarefa com &categorias selecionadas..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Inserir uma nova tarefa com as categorias selecionadas marcadas" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nova tarefa com tarefas selecionadas como &pré-requisitos..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Inserir uma nova tarefa com as tarefas selecionadas como tarefas pré-" "requisito" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nova tarefa com tarefas selecionadas como &dependentes..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" "Inserir uma nova tarefa com as tarefas selcionadas como tarefas dependentes" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Novo &subitem..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nova &subtarefa..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nova &subnota..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nova &subcategoria..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Inserir um novo subitem para o item selecionado" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Marcar tarefas &ativas\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Marcar a(s) tarefa(s) selecionada(s) como ativa(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Marcar tarefas &inativas\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Marcar tarefa(s) selecionada(s) como inativa(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Marcar tarefas &finalizadas\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marcar a(s) tarefa(s) selecionada(s) como finalizada(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Aumentar prioridade\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Diminuir prioridade\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Incrementar prioridade\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Decrementar prioridade\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Alterar %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Correio...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Diversas coisas" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "e" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Não foi possível enviar a mensagem:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "Erro de caixa postal %s" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Adicionar ¬a...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Abrir todas as notas...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Iniciar acompanhamento de esforço\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Iniciar monitoramento de esforço para a(s) tarefa(s) do(s) esforço(s) " "selecionado(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Sem assunto)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Iniciar acompanhamento de esforço %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" "Selecionar uma tarefa pelo menu e iniciar acompanhamento de seu esforço" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Parar ou recomeçar monitoramento de atividade\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Pa&rar acompanhamento %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Parar acompanhamento do esforço para a(s) tarefa(s) ativa(s)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Reiniciar acompanhamento %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Reiniciar acompanhamento de esforço para a última tarefa acompanhada" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "múltiplas tarefas" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nova categoria...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nova nota...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nova &anotação com categorias selecionadas..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Inserir nova nota com as categorias selecionadas verificadas" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Adicionar anexo...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Erro ao abrir anexo" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Abrir todos os anexos...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Conteúdo de ajuda\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Conteúdo de &ajuda \tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Ajuda" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Dicas" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Dicas sobre o programa" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Deixar anônima" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Deixar anônimo um arquivo de tarefa anexado a um relatório de erro" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Seu arquivo de tarefa foi tornado anônimo e salvo em :" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Finalizado" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Sobre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versão e informações de contato sobre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Sobre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licença" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licença" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Verificar atualizações" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Verificar a existência de nova versão de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "Não foi possível abrir URL %s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s erro de URL" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Perguntas &frequentes" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Pesquisar perguntas frequentes e respostas" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Reportar um &erro..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Reportar um erro ou pesquisar erros conhecidos" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Requisitar um &recurso..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Requisitar um novo recurso ou votar nas requisições existentes" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Requisitar &suporte..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Requisitar suporte de usuário dos desenvolvedores" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Ajudar na &tradução..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Ajudar na &tradução de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Doar..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Doar para suporte de desenvolvimento de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restaurar" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restaurar janela ao seu estado anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Pesquisar" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detalhes do esforço" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Esforço por dia" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Esforço por mês" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Esforço por semana" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Modo de agregação" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Listar" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Árvore" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Quando marcada, mostra tarefas como árvore, caso contrário mostra tarefas " "como lista." #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrar todas as categorias selecionadas" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrar qualquer categoria selecionada" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Quando verificado, filtrar dentro de todas as categorias verificadas, senão " "dentro de qualquer categoria verificada" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Ordenar escolha" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configurar" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configurar o visualizador de calendário" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Próximo período" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Mostrar próximo período" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Período &anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Mostrar o período anterior" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Hoje" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Mostrar hoje" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Ajuste automático do tamanho de colunas" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Quando marcado, automaticamente redimensionar colunas para usarem o espaço " "disponível" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Configure gráfico de pizza." #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Não arredondar" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minuto" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minutos" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Sempre arrendor" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Sempre arredondar para mais" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tipo" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Odenar por assunto" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Assunto" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Ordenar por descrição" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Descrição" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Data de &criação" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Ordenar por data de criação" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Data de &modificação" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Ordenar por data da última modificação" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Exibir/ocultar coluna de descrição" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notas" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Mostrar/ocultar coluna de notas" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Mostrar/ocultar coluna de data de criação" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Mostrar/ocultar coluna de data de última modificação" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Barras de ferramentas são personalizáveis" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Clique no ícone da engrenagem à direita para adicionar botões e reodená-los." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Anexos" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Exibir/ocultar coluna de anexos" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categorias: %d selecionadas, %d total" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtrado" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Período" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Tempo total gasto" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Rendimento total" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Terça-feira" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Quarta-feira" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Quinta-feira" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Sexta-feira" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sábado" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categorias" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Exibir/ocultar coluna de categorias" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Tempo gasto" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Exibir/ocultar coluna de tempo gasto" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Rendimento" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Exibir/ocultar coluna de rendimento" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Tempo gasto total" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Exibir/ocultar a coluna de tempo total gasto" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Receita total" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Exibir/ocultar coluna de rendimento total" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Esforço por dia da semana" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Exibir/ocultar colunas de tempo gasto por dia da semana" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Agregar esforço" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d em acompanhamento" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Ordenar tarefas por assunto" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Ordenar categorias pela descrição" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Ordenar categorias por data de criação" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Ordenar categorias pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Ordenar categorias manualmente" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Organizar anexos por assunto" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Organizar anexos por descrição" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Organizar anexos por categoria" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Ordenar anexos por data de criação" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Ordenar anexos pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Ordenar notas por assunto" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Ordenar notas por descrição" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Ordenar notas por categoria" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Ordenar notas por data de criação" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Ordenar notas pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Ordenar notas manualmente" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Ordenar tarefas por assunto" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Ordenar tarefas por descrição" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Ordenar tarefas por categoria" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Ordenar tarefas por data de criação" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Ordenar tarefas pela última data de modificação" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Ordenar tarefas manualmente" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Ordenar tarefas por data planejada de início" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "Data &planejada de início" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Ordenar tarefas por data final" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Data final" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Ordenar tarefas por data de término" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Data de término" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Ordenar tarefas por tarefas pré-requisito" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Pré-requisitos" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Ordenar tarefas por tarefas dependentes" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Dependentes" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Ordenar tarefas por tempo restante" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Tempo restante" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Ordenar tarefas por porcentagem completa" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Porcentagem completa" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Ordenar tarefas por recorrência" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Recorrência" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Ordenar tarefas por orçamento" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "Orçamento" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Ordenar tarefas por tempo gasto" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Orçamento &restante" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Ordenar tarefas por orçamento restante" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Ordenar tarefas por prioridade" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Ordenar tarefas pela taxa horária" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Taxa &horária" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Ordenar tarefas pela taxa horária" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Taxa &fixada" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Ordenar tarefas por rendimento" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Ordenar tarefas por data e hora de lembrete" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Lembrete" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Assunto" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Ordenar notas por categoria" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notas: %d selecionadas, %d total" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/d" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Tarefas: %d selecionadas, %d visíveis, %d total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Status: %d vencidas, %d atrasadas, %d inativas, %d finalizadas" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Tarefas" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Linha de tempo" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Agora" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Quadro de tarefas" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Organizar por tarefas" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Configuração do visualizador de calendário" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dependentes" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% completa" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Tempo restante" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Datas" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Todas as colunas de data" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Exibir/ocultar todas as colunas relacionadas a datas" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Mostrar/ocultar a coluna de data planejada de início" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Exibir/ocultar a coluna de data final" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Data &real de início" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Mostrar/ocultar coluna de data real de início" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Exibir/ocultar a coluna data de término" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Mostrar/Ocultar coluna de tempo restante" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Exibir/ocultar a coluna de recorrência" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Todas as colunas de orçamento" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Exibir/ocultar todas as colunas relacionadas a orçamento" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Exibir/ocultar a coluna de orçamento" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Orçamento restante" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Exibir/ocultar a coluna de orçamento restante" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanças" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Todas as colunas financeiras" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Exibir/ocultar todas colunas relacionadas a finanças" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Exibir/ocultar a coluna de taxa horária" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Exibir/ocultar a coluna de taxa fixada" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Mostrar/ocultar colunas de pré-requisitos" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Mostrar/ocultar coluna dependentes" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Mostrar/ocultar a coluna de porcentagens completas" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Exibir/ocultar a coluna de anexos" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Exibir/ocultar a coluna prioridade" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Exibir/ocultar a coluna de lembrete" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Mostrar tarefas como" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Estatísticas das tarefas" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Vírgula" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Espaço" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Dois pontos" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Ponto-e-vírgula" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Canal" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (dia antes)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (mês antes)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Aspa simples" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Aspas" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Dobrar" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Sair com" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importar somente as linhas selecionadas" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "A primeira linha descreve os campos" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Separador" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Formato de data" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Vírgula" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Retirar citação" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Campo #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Por favor, selecione um arquivo." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Categoria" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Data do lembrete" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percentagem concluída" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Cabeçalho da coluna em arquivo CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s atributo" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Nenhum campo mapeado" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "O campo \"%s\" não pode ser selecionado diversas vezes." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Os campos \"%s\" não podem ser selecionados diversas vezes." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Índice" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Sobre as tarefas" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Propriedades das tarefas" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Estado das tarefas" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Cores das tarefas" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Lembretes" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Sobre esforços" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Propriedades dos esforços" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Sobre as categorias" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Propriedades das categorias" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Sobre as anotações" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Propriedades das anotações" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Imprimir e exportar" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Sobre Imprimir e exportar" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Imprimir" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportar" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integração de e-mail" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Sobre a integração de e-mail" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Anexando um e-mail a uma tarefa" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Criando uma tarefa de um e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Suporte SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "O que é SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Configuração" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitações" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Resolução de problemas" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Excluindo ítens apagados" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone e iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s no iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configuração" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s no Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt e Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importando todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exportando todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Modelos de tarefas" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Sobre os modelos" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Usando modelos" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Interface gráfica do usuário" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Atalhos do teclado" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "As tarefas são os objetos básicos que você manipula. Tarefas podem\n" "representar qualquer coisa desde alguma coisa pequena e simples que \n" "você tenha que fazer a um projeto completo consistindo de diferentes \n" "fases e numerosas atividades." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "As tarefas tem as seguintes propriedades que você pode alterar:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Assunto: uma linha que sintetiza a tarefa" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Descrição: várias linhas de texto que descrevem a tarefa" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Data de início planejada: a primeira data na qual a tarefa pode ser " "iniciada. \n" "A data de planejada de início padrão é a data de criação da tarefa. Também " "pode ser 'Nenhuma' \n" "indicando que você realmente não quer iniciar esta tarefa. Isso pode ser " "conveniente\n" "para, por exemplo, registrar que você está doente." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Data final: a data em que a tarefa deve ser terminada.\n" "Esta pode ser 'Nenhuma' indicando que a tarefa não tem data de término " "fixada." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Data real de início: a data em que a tarefa foi realmente começada.\n" "A data real de início pode ser editada diretamente, mas também é marcada\n" "quando você inicia o monitoramento de esforço para a tarefa ou quando você\n" "marca a porcentagem de finalização da tarefa para um valor entre 0% e 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Data de término: esta é 'Nenhuma' enquanto a tarefa não é finalizada.\n" "Ela será atualizada para a data corrente quando você marcar a tarefa como\n" "terminada. A data de término também pode ser incluída manualmente." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Pré-requisitos: outras tarefas que precisam ser completadas antes\n" "que a tarefa possa ser iniciada. A tarefa permanece como inativa até que o " "último pré-requisito\n" "seja completado. Note que se a tarefa tem uma data específica planejada para " "seu início, que\n" "a data esteja no passado e todos os pré-requisitos da tarefa " "precisam ser \n" "completados antes que a tarefa torne-se atrasada." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Orçamento: quantidade de horas disponíveis para a tarefa." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Taxa horária: valor a receber por hora de tarefa" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "Taxa fixa: valor a ser recebido pela tarefa" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "As seguintes propriedades são calculadas a partir das propriedades acima:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Dias restantes: o número de dias que restam até o prazo final." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dependentes: outras tarefas que podem ser iniciadas quando as\n" "tarefas pré-requisito tiverem sido finalizadas." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Tempo gasto: esforço gasto na tarefa" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Orçamento restante: orçamento da tarefa menos o tempo gasto na tarefa." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Receitas: custo por hora das horas gastas mais custe fixo." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "As tarefas sempre tem exatamente um dos seguintes estados:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Ativa: a data real de início é no passado;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inativa: a tarefa não foi iniciada e/ou nem todos\n" "os pré-requisitos da tarefa foram completados;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Completa: a tarefa foi terminada." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Adicionalmente, as tarefas podem ser referenciadas como:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Atrasada: o prazo de conclusão está no passado" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Prazo final próximo: o prazo final está próximo (e 'próximo', pode ser\n" "alterado nas preferências);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Atrasada: a data de início planejada está no passado a a tarefa\n" "ainda não foi iniciada;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Orçamento estourado: não há mais dinheiro;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Abaixo do orçamento: ainda há dinheiro;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Sem orçamento: a tarefa não tem orçamento." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "O texto das tarefas é colorizado de acordo com as seguintes regras:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Tarefas atrasadas são em vermelho" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Tarefas que vencem logo são laranja;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Tarefas ativas são em texto preto com um ícone azul;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Tarefas atrasadas são roxas;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Tarefas a começar são cinza, e" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Tarefas terminadas são verde." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Desde que você não tenha alterado as cores através do\n" "diálogo de preferências, naturalmente." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "As cores de fundo das tarefas são determinadas pelas categorias a que\n" "as tarefas pertencem. Veja a seção sobre\n" "propriedades da categoria abaixo." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Você pode marcar um lembrete para uma hora e data específicas. %(name)s irá\n" "mostrar uma mensagem de lembrete naquela data e hora. A partir do lembrete\n" "você pode abrir uma tarefa, começar o monitoramento de esforço para a " "tarefa,\n" "ou marcar a tarefa como finalizada. Também é possível colocar o lembrete em " "espera." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Se você tiver Growl ou Snarl instalados, você pode can instruir\n" "%(name)s para usá-los para lembretes no diálogo de preferências." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Quando você dispende tempo nas tarefas, você pode gravar a quantidade de " "tempo\n" "gasto durante o esforço. Selecione a tarefa e clique 'Iniciar acompanhamento " "de esforço' no\n" "menu Esforço ou no menu de contexto ou através do botão 'Iniciar " "acompanhamento de esforço'\n" "na barra de ferramentas." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "Esforços gravados tem as seguintes propriedades que você pode alterar:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Tarefas: a tarefa á qual o esforço pertence." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Data/hora de começo: data e hora em que o esforço começou." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Parar data/tempo: parar data e tempo do esforço. Isto pode ser \n" "'Nenhum' enquanto você ainda estiver trabalhando na tarefa." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Descrição: um texto em várias linhas que descreve o esforço." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Tempo gasto: quanto tempo você dispendeu trabalhando na tarefa." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Receita: valor em dinheiro ganho com o tempo gasto." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Tarefas e anotações podem pertencer a uma ou mais categorias. Primeiro, " "você\n" "precisa criar a categoria que quer usar através do menu 'Categoria'. Então,\n" "você pode adicionar ítens para uma ou mais categorias editando o ítem e " "marcando\n" "as categorias relevantes para aquele item no painel categoria da caixa de " "diálogo de edição." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Você pode limitar os ítens mostrados nos visualizadores de tarefas ou de " "anotações para uma\n" "ou mais categorias escolhendo categoria no visualizador de categoria. Por " "exemplo,\n" "se você tem uma categoria 'chamadas telefônicas' e você marcou esta " "categoria, o visualzador\n" "de tarefas mostrará apenas as tarefas que pertencerem a esta categoria; em " "outras palavras,\n" "as chamadas telefônicas que você precisa fazer." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Categorias tem as seguintes propriedades que você pode alterar:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Assunto: uma linha de texto que sintetiza a categoria." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Descrição: várias linhas de texto que descrevem a categoria." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Categorias mutuamente exclusivas: uma marca indica\n" "onde as subcategorias da categoria são mutuamente exclusiva. Se houver,\n" "os itens podem pertencer a somente uma das subcategorias. Ao filtrar, você " "pode somente\n" "filtrar por uma subcategoria de cada vez." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Propriedades de aparência como ícones, fontes e cores: \n" "As propriedades de aparência são usadas identificar a categoria, mas também " "os ítens\n" "que pertencem a esta categoria. Se uma categoria não tem cor, fonte ou ícone " "definido,\n" "mas tem uma categoria anterior que possui essa propriedade, a propriedade da " " \n" "categoria anterior será usada. Se um item pertencem a múltiplas categorias " "que cada uma tenha uma cor \n" "associada com ela, uma mistura dessas cores será usada para representar o\n" "item." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notas podem ser usadas para recolher informações aleatórias que você quer\n" "guardar em seu arquivo de tarefas. Notas podem ser únicas ou parte de outros " "ítens,\n" "como tarefas e categorias. Notas únicas são mostradas o visualizador de " "notas.\n" "Notas que são parte de outros ítens não são mostradas o visualizador de " "notas." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notas tem as seguintes propriedades que você pode alterar:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Assunto: uma linha de texto que sintetiza a nota." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Descrição: várias linhas de texto que descrevem a nota." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Propriedades de aparência como ícones, fontes e cores." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Impressão e exportação trabalham ambos do mesmo modo: quando você imprime\n" "ou exporta dados, os dados do visualizador ativo são impressos ou " "exportados.\n" "Entretanto, os dados são impressos ou exportados do mesmo modo que o " "visualizador\n" "está mostrando. Os dados são impressos ou exportados na mesma ordem " "mostrada\n" "no visualizador. As colunas que estão visíveis determinam quais detalhes \n" "serão impressos ou exportados. Quando você filtrar ítens, por exemplo " "ocultar\n" "tarefas finalizadas, estes ítens não serão impressos ou exportados." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Prepare os conteúdos de um visualizador, colocando os ítens na \n" "ordem correta, mostrando ou ocultando as colunas apropriadas e aplicando os " "filtros\n" "necessários." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Você pode visualizar a impressão\n" "pelo menu em Arquivo->Visualizar impressão. Você pode editar as " "configurações da página\n" "em Arquivo->Configurar página. Quando for imprimir, se a plataforma " "suportar, você poderá\n" "escolher imprimir todos os ítens visíveis na visualização ativa, ou apenas " "os\n" "ítens selecionados." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Após isso. escolha o formato que você quer para exportar e onde você\n" "quer exportar todos os ítens visíveis ou apenas os selecionados. Formatos " "disponíveis\n" "para exportar incluem CSV (formato separado por vírgulas), HTML e iCalendar. " "Quando\n" "você exportar para HTML, um arquivo CSS será criado para que você possa " "editá-lo e mudar\n" "a aparência do HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integra com vários agentes de email\n" "utilizando arrastar e soltar. Isto tem algumas limitações; os emails\n" "são copiados no diretório junto ao arquivo %(name)s, e arquivos .eml\n" "são depois abertos usando o programa associado no seu sistema.\n" "De qualquer forma, isto habilita com que você abra estes anexos\n" "de e-mail em um sistema que é diferente do que voce criou\n" "primeiramente." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Agentes de email suportados incluem:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Devido a uma limitação do Thunderbird, você não pode arrastar e soltar " "diversos\n" "e-mails do Thunderbird. Isto não se aplica ao Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Há dois modos de anexar um e-mail a uma tarefa; você pode:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Soltá-lo numa tarefa na árvore de tarefas ou na lista de tarefas." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Soltá-lo no painel de anexos do editor de tarefas." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Arrastar um e-mail para uma parte vazia da árvore de tarefas ou lista de " "tarefas\n" "cria uma nova tarefa. Seu assunto é o assunto do e-mail, sua\n" "descrição é o conteúdo. Além disso, o e-mail é automaticamente\n" "anexado à nova tarefa criada." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML é um protocolo XML desenvolvido para sinchronizar diversas\n" "aplicações com um servidor. Um servidor de código aberto muito popular é Funambol. Clientes " "de\n" "sincronização estão disponíveis para diversos dispositivos e aplicativos " "(Outlook, Pocket PC,\n" "iPod, iPhone, Evolution, etc...), tanto quanto para os chamados " "\"conectores\"\n" "que permitem ao servidor sincronizar com Exchange, Google Calendar,\n" "etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s possui cliente SyncML com suporte integrado para Windows e Mac OS " "X\n" "(sempre que utilize os binários fornecidos). Isto significa que pode\n" "configurar %(name)s para sincronizar com o mesmo servidor SyncML com que\n" "sincroniza o Outlook, e ter todas as tarefas e notas do Outlook em\n" "seu arquivo %(name)s, assim como as tarefas e notas de %(name)s no Outlook. " "Ou\n" "em seu Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Este recurso é opcional e desativado por padrão. Para ativá-lo,\n" "vá em preferências e marque-o na página de Recursos." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Para configurar o SyncML, edite as preferências do SyncML em " "Editar/preferências \n" "do SyncML. Preencha a URL de sincronização, seu ID no servidor e escolha \n" "quais itens sincronizar (tarefas e/ou anotações). A URL depende do servidor\n" "que você escolheu; alguns exemplos são:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Os nomes do banco de dados estão muito padronizados; os valores padrão\n" "devem funcionar." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Cada arquivo de tarefas tem seu próprio cliente ID, então se houver dois " "arquivos \n" "de tarefas diferentes eles serão considerados dispositivos diferentes pelo " "servidor." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Algumas limitações devem-se ao fato de que, o formato dos tipos de\n" "dados sendo vcalendar, alguns %(name)s recursos podem não ser apresentados " "ao \n" "servidor." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "A hierarquia de tarefa e categoria estão perdidas para o servidor" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Recorrência e lembretes ainda não são suportados." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Notas de categoria estão perdidas para o servidor" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Os conflitos de detecção/resolução do sistema devem-se a uma\n" "limitação do Funambol. Deveria funcionar na maioria dos casos, mas se " "muitos\n" "aplicativos sincronizarem ao mesmo tempo no mesmo servidor, podem ocorrer\n" "problemas." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Provavelmente alguns outros..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "O menu de ítens do SyncML só é apresentado se sua plataforma for\n" "suportada. Atualmente as plataformas suportadas são:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (veja abaixo)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 e posteriores, Intel e PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Você pode ter alguns problemas no Windows se não tiver o\n" "Microsoft Visual 8 runtime instalado. Você pode baixá-lo em\n" " Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Quando o SyncML estiver ativado, excluir uma tarefa ou uma nota não a apaga " "\n" "realmente, apenas a marca como apagada. A tarefa ou nota excluída é " "realmente\n" "removida da lista de tarefas ou notas na próxima sincronização. Por esta " "razão,\n" "se você usar o recurso SyncML e desativá-lo sem ter feito uma " "sincronização,\n" "podem haver tarefas ou notas excluídas em seu arquivo de tarefas. Isto não é " "um\n" "problema, mas ocupa um pouco mais de espaço em disco." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "Neste caso, pode-se usar \"Eliminar ítens excluídos\" no menu Arquivo\n" "para realmente excluir estas tarefas. Ele só é ativado quando você\n" "precisa, que é quando há ítens para eliminar. Tenha cuidado pois após fazer " "isso,\n" "se você reativar o SyncML e fizer uma nova sincronização com o mesmo " "servidor\n" "que você usou anteriormente, todos estes ítens reaparecerão, pois o " "servidor\n" "não sabe que eles foram excluídos." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch and iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s no iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Há um aplicativo para iPhone/iPod Touch/iPad %(name)s, \n" "disponível em Apple's AppStore. (Se você não tiver o iTunes " "instalado no \n" "seu computador, será apresentada uma página onde poderá fazer o download do " "iTunes). \n" "Ele suporta os seguintes recursos:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Atributos básicos das tarefas: assunto, descrição, dados (com \n" "recorrências)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarquia de tarefas e categorias" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Tempo de rastreamento" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Múltiplos arquivos de tarefas" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Dois modos de sincronização com %(name)s no desktop" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "O aplicativo é universal e tem uma versão para iPad" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configuração no iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Há algumas configurações para aplicativos de iPhone/iPod Touch/iPad nas \n" "Configurações do aplicativo:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Mostrar finalizadas: onde mostrar as tarefas finalizadas." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Mostrar inativas: onde mostrar as tarefas inativas (data de início " "planejada\n" "no futuro)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Posição do ícone: o ícone do LED pode ser mostrado tanto no\n" "lado esquerdo quanto no direito da tela." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Modo compacto: se estiver ativado, a lista de tarefas terá LEDs\n" "menores e não mostrará categorias ou dados." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirmação completa: se ativada, uma mensagem aparecerá para\n" "pedir confirmação quando você marcar uma tarefa como conluída\n" "ao clicar em seu LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# dias próximos do prazo final: Quantos dias no futuro são \n" "considerados \"próximos\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configuração no desktop, todas as plataformas" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Antes de sincronizar, você deve também configurar %(name)s no\n" "desktop; em preferências, na aba \"Recursos\", marque \"Ativar " "sincronização\n" "com iPhone\"; Reinicie %(name)s. Agora, em preferências, escolha a \n" "aba \"iPhone\" e insira sua senha." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Quando vocë clica no botão \"Sincronizar\" no visualizador de categoria, " "%(name)s\n" "detectará automaticamente as instâncias em execução de %(name)s no seu\n" "desktop e solicitará que você selecione uma (você pode ter diversas " "instâncias\n" "em execução em diferentes computadores em sua rede, ou diversas instâncias\n" "no mesmo computador). O nome mostrado será, por padrão, alguma palavra\n" "identificando o computador que a está executando. Para personalizá-lo, você " "pode\n" "alterar o \"Nome do serviço Bonjour\" na configuração." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s lembrará a instância escolhida e tentará conectar da próxima vez\n" "que você sincronizar; se não estiver rodando, ele perguntará novamente." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Veja que esta sincronização ocorre através da rede; não há\n" "necessidade do dispositivo ser conectado através da USB nem do iTunes\n" "estar rodando." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configuração no Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "No Windows, você deve instalar Bonjour para Windows e\n" "desbloqueá-lo quando solicitado pelo firewall." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configuração no Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "no Linux, vocẽ deve ter Avahi \n" "daemon instalado e rodando. Muitas distribuições modernas já o tem. Você \n" "deve instalar também o pacote dnscompat; seu nome dependerá da sua " "distribuição \n" "(libavahi-compat-libdnssd1 no Ubuntu, por exemplo)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Não posso encontrar aplicativo para iPhone/iPod no website\n" "da Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Você precisa ter o iTunes instalado no seu computador para pesquisar na \n" "Apple's App Store. Pegue o \n" "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Meu computador não aparece na lista quando tento sincronizar" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Cerifique-se que seu iPhone/iPod Touch esteja conectado na mesma rede \n" "que seu computador se usar WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "O iPhone não consegue conectar ao meu computador" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Se você tiver um firewall, verifique se as portas 4096-4100 estão abertas" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Não, %(name)s não está disponível para a plataforma Android. Mas,\n" "Todo.txt Touch está. \n" "Você pode exportar suas tarefas de %(name)s para o formato \n" "Todo.txt e então editar suas tarefas no seu dispositivo Android." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt é um geranciador de listas de afazeres de código aberto, criado " "por Gina \n" "Trapani, que trabalha com arquivos texto simples. Todo.txt tem uma " "interface em \n" "linha de comando. Entretanto, desde que o formato do arquivo seja texto " "simples, \n" "você pode editar suas tarefas usando qualquer editor de textos. Todo.txt " "Touch é \n" "a versão do Todo.txt para a plataforma Android. Todo.txt Touch usa um " "arquivo\n" "todo.txt salvo em sua pasta Dropbox %(name)s que pode ser importado de e \n" "exportado para aquele arquivo todo.txt \n" "file." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importa assuntos de tarefas, data planejada de início, data de " "vencimento, data de \n" "finalização, prioridades, contextos e projetos. Contextos e projetos são " "ambos \n" "transformados dentro de categorias em %(name)s. Projetos não podem ser " "transformados dentro \n" "de tarefas-pai porque Todo.txt permite que as tarefas tenham múltiplos " "projetos, \n" "enquanto %(name)s somente permite uma tarefa-pai por tarefa." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Ao importar, %(name)s tenta encontrar tarefas e categorias \n" "correspondentes e atualizá-las ao invés de criar novas.\n" "A correspondência é feita através da análise do assunto da\n" "tarefa/projeto/contexto e do item-pai (se existente)." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exporta assuntos de tarefas,data planejada de início, data de " "vencimento, data de \n" "finalização, prioridades e categorias para o formato Todo.txt. Outros " "atributos não são\n" "exportados." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s suporta datas e horários, mas Todo.txt somente suporta \n" "datas, então os tempos de início, vencimento e conclusão data/hora não\n" "serão exportados." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "O padrão do formato Todo.txt somente suporta datas planejada de início e " "datas de \n" "finalização, mas não datas de vencimento. Entretanto, %(name)s usa uma " "extensão para\n" "exportar as datas de vencimento das tarefas. Datas de vencimento são " "mostradas como\n" "\"vencimento:YYYY-MM-DD\" no arquivo todo.txt." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt possui prioridades em forma de letras ('A'-'Z').\n" "%(name)s tem prioridades numéricas. A prioridade 1 de %(name)s é " "transformada em 'A',\n" "2 torna-se 'B', etc., e 26 é 'Z'. %(name)s com prioridades abaixo de 1 e " "acima de 26\n" "não são exportadas." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Categorias cujo assunto comece com a '+' são exportadas como projetos. \n" "Categorias cujo assunto comece com um sinal '@' são exportadas como " "contexto. \n" "Categorias cujo assunto não comece com '+' or '@' não são exportadas. \n" "Subcategorias são exportadas se suas categorias-pai também forem." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Modelos são esquemas para novas tarefas. Atualmente, a única propriedade\n" "das tarefas que podem ser \"parametrizadas\" são as datas. Quando iniciado " "um\n" "modelo, a tarefa criada tem suas datas ajustadas com datas relativas à\n" "data atual." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Você pode criar um modelo selecionando uma tarefa (apenas uma) e clicando\n" "em \"Salvar tarefa como modelo\" no menu Arquivo. Todas as subtarefas, notas " "e\n" "anexos são parte do modelo. Somente categorias não são salvas." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Você pode criar um novo modelo a partir de um arquivo de modelo pronto\n" "(.tsktmpl); apenas selecione \"importar modelo\"no menu Arquivo e selecione " "o arquivo.\n" "Arquivos de modelo são armazenados num subdiretório dentro do diretório " "onde\n" "TaskCoach.ini está." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Para criar uma nova instância de um arquivo de modelo, use o menu \"Nova " "tarefa do\n" "modelo\" no menu Tarefas, ou o botão equivalente da barra de ferramentas. " "Quando a\n" "tarefa for criada, as datas de vencimento, início e finalização, se " "aplicável, são \n" "reavaliadas relativamente à data corrente. Isto significa que se voc6e criar " "um modelo\n" "de uma tarefa começando hoje e com vencimento amanhã, cada vez que o modelo " "for\n" "aberto, a data planejada de início será a data corrente (hoje) e a data de " "vencimento \n" "será a data corrente mais um dia (amanhã)." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Você tanto pode adicionar modelos a partir do editor de modelos " "(Arquivo/Editor\n" "de modelos), quanto editar as propriedades básicas dos modelos (datas e \n" "assunto). Use as datas em formato legível; o editor de datas\n" "ficará vermelho se %(name)s não puder entender o que você digitou. Exemplos\n" "de datas:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Por favor, veja que o sistema não está localizado; você deve colocar\n" "as datas em inglês." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Você pode arrastar e soltar visualizadores para criar qualquer layout de " "interface\n" "de usuário que quiser. Quando você começa a arrastar um visualizador, dicas " "aparecerão\n" "para mostrar onde você pode soltar o visualizador. Visualizadores podem ser " "soltos dentro\n" "de outros visualizadores para criar cadernos." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "Nos diálogos de edição, você pode arrastar e soltar as abas para alterar \n" "a ordem ou para criar um layout diferente da interface de usuário colocando " "as abas \n" "próximas uma da outra." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Assuntos e descrições de tarefas, notas e categorias podem ser\n" "editados sem abrir um diálogo de edição. Selecione o item do qual queira\n" "alterar o assunto ou descrição e clique no item novamente, na coluna de\n" "assunto ou na de descrição. Uma caixa de texto aparecerá para que você \n" "altere o assunto ou descrição. Pressione enter para confirmar suas " "alterações. Pressione \n" "escape (ESC) para cancelar as mudanças. F2 é um atalho de teclado para " "editar o \n" "assunto." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s tem diversos atalhos de teclado, listados abaixo. Os atalhos \n" "de teclado não são configuráveis no momento." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux e Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux and Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Inserir um novo subitem" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Editar o(s) item(ns) selecionado(s) ou fechar a caixa de diálogo" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Entrar" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Marcar a(s) tarefa(s) selecionada(s) como (in)completa(s)" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Fechar a caixa de diálogo ou mudar o foco do teclado do controle de procura " "de volta para o visualizador" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Saída" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Mudar o foco do teclado para o próximo campo na caixa de diálogo" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Mudar o foco do teclado para o campo anterior da caixa de diálogo" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Mudar o foco do teclado para a próxima aba no controle do caderno." #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Mudar o foco do teclado para a aba anterior no controle do caderno." #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Pop up menu ou drop down box" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Editar o assunto do ítem selecionado num visualizador" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versão %(version)s, %(date)s
    \n" "

    Por %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s é ativamente desenvolvido. Embora os %(name)s desenvolvedores " "trabalhem duro para prevení-los, erros acontecem. Então, fazer backup do seu " "trabalho regularmente é fortemente recomendado." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s tem uma lista de e-mail onde você pode discutir o uso de %(name)s " "com outros usuários, discutir e solicitar recursos e notificar sobre bugs. " "Vá para %(url)s e registre-se hoje!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s tem opção ilimitada de desfazer e refazer. Qualquer alteração que " "você faça, seja na edição da descrição de uma tarefa, ou apagando um " "registro de esforço, é reversível. Selecione \"Editar\" -> \"Desfazer\" e " "\"Editar\" -> \"Refazer\" ir para frente e para trás no histórico de edição." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s está disponível em diversos idiomas. Selecione 'Editar' -> " "'Preferências' para ver se o seu idioma é um deles. Se o seu idioma não está " "disponível ou a tradução precisa melhorar, por favor considere ajudar com a " "tradução do %(name)s. Visite %(url)s para obter mais informações sobre como " "você pode ajudar." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Se você digitar uma URL (por exemplo %(url)s) em uma tarefa ou descrição do " "esforço, ela torna-se um link. Clicando no link, a URL será aberta no " "navegador da Web padrão." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Você pode arrastar e soltar as tarefas na exibição em árvore para " "reorganizar as relações pai-filho entre tarefas. O mesmo é válido para as " "categorias." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Você pode arrastar arquivos do gerenciador de arquivos para uma tarefa para " "criar anexos. Arrastando os arquivos em uma aba colocará foco nesta página, " "arrastando os arquivos em uma tarefa recolhida (a caixa com sinal +) na " "exibição em árvore irá expandir a tarefa para mostrar suas subtarefas." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Você pode criar os layouts de visualização que quiser arrastando e soltando " "as abas. Os layouts são salvos e reusados na próxima sessão." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "O que é realmente impresso quando você selecionar \"Arquivo\" -> " "\"Imprimir\" depende da visualização atual. Se a visualização atual mostra a " "lista de tarefas, uma lista de tarefas será impressa, se a vista atual " "mostra o esforço agrupado por mês, isso será impresso. O mesmo vale para " "colunas visíveis, ordem de classificação, tarefas filtradas, etc" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Clique com o botão esquerdo um cabeçalho da coluna para classificar por essa " "coluna. Clique no cabeçalho da coluna novamente para alterar a ordem de " "classificação de ascendente para descendente e vice-versa. Clique com o " "botão direito no cabeçalho da coluna para ocultar esta coluna ou tornar " "visível colunas adicionais." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Você pode criar um modelo de uma tarefa para reduzir digitação quando " "padrões repetitivos aparecem." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab alterna entre abas no diálogo de edição." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Dica do dia" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Próxima dica" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Mostrar dicas ao iniciar" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "Pesquisar arquivos para adicionar como anexos ao(s) item(ns) selecionado(s)" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Adicionar uma nota ao(s) item(ns) selecionado(s)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Inserir uma nova categoria" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Recortar itens selecionados para a área de transferência" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copiar itens selecionados para a área de transferência" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Colar os ítens da área de transferência" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Colar item (ns) da área de transferência como subitem do ítem selecionado" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Editar preferências" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Refazer o último comando que foi desfeito" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Selecionar todos os ítens no visualizador atual" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Desfazer o último comando" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Acrescentar um período de esforço para a(s) tarefa(s) selecionada(s)" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Iniciar acompanhamento de esforço para tarefas selecionadas" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Parar ou reiniciar acompanhamento de esforço" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Fechar o arquivo atual" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Sair %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Abrir arquivo %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Salvar o arquivo atual" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Salvar o arquivo atual com novo nome" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Ajuda sobre o programa" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" "Enviar o(s) item(ns) selecionado(s), usando seu programa de e-mail padrão." #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Inserir uma nova nota" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Abrir todos os anecos do(s) item(ns) selecionado(s)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Abrir todas as notas do(s) item(ns) selecionado(s)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Imprimir o arquivo atual" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Configurar as características da página para impressão" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Exibir todos os ítens (reiniciar todos os filtros)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Mostrar todos os itens sem importar a categoria" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Muda o foco do teclado do visualizador para o controle de procura" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Diminuir prioridade da(s) tarefa(s) selecionada(s)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Aumentar prioridade da(s) tarefa(s) selecionada(s)" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Marcar a(s) tarefa(s) selecionada(s) com maior prioridade" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Marcar a(s) tarefa(s) selecionada(s) com menor prioridade" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Inserir uma nova tarefa" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Recolher todos ítens e subitens" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Expandir todos os ítens e subítens" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Ativar o próximo visualizador aberto" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Ativar o visualizador aberto anteriormente" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Um iPhone ou iPod Touch tentou conectar-se ao Task Coach,\n" "mas nenhuma senha foi encontrada. Por favor, configure uma senha na\n" "seção de configuração do iPhone e tente novamente." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protocolo versão: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Protocolo versão %d rejeitado" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Nome do dispositivo: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Enviando arquivo: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Tudo do desktop." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categorias" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Enviar categoria %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Resposta: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d tarefas" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Enviar tarefa %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d esforço" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Enviar esforço %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Finalizado." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d novas categorias" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d novas tarefas" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d novos esforços" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d categorias modificadas" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d tarefas modificadas" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d esforços modificados" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d categorias apagadas" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d tarefas apagadas" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d esforços apagados" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nova categoria (parent: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Apagar categoria %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modificar categoria %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nova tarefa %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Apagar tarefa %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modificar tarefa %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Término da sincronização de tarefas" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Não foi possível encontrar a tarefa %s para monitorar." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Novo esforço %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modificar esforço %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Enviando GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Lendo informação de correio...." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Lendo informação de correio. Por favor, espere." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Não foi possível encontrar o diretório data do Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Não foi possível encontrar o perfil do Thunderbird." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Não há seção default em profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "ID interna do Thunderbird mal formada:\n" "%s. Por favor envie um relatório de erro." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Não foi possível encontrar o diretório para ID\n" "%s.\n" "Por favor envie um relatório de erros." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "URL não reconhecida: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Não foi possível abrir uma conexão IMAP para %(server)s:%(port)s\n" "para receber as mensagens de email através do Thunderbird:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Por favor, entre com o nome de domínio para o usuário %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Não foi possível selecionar a caixa de entrada \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Não há e-mails: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Hora real de início" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Hora inicial planejada" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Hora do prazo" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Hora de finalização" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Hora do lembrete" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Hora de criação" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Sem assunto" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nova tarefa para hoje" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nova tarefa para amanhã" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dias" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 dia" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Todos %(frequency)d os dias" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Toda %(frequency)d as semanas" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Todos %(frequency)d os meses" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Todos %(frequency)d os anos" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Todos os outros dias" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Todas as outras semanas" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Todos os outros meses" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Todos os outros anos" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Ontem" #: taskcoachlib/render.py:284 msgid "now" msgstr "agora" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "A sincronização para a origem %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "será atualizada do servidor. Todos os ítens locais\n" "serão deletados. Deseja continuar?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "serão atualizados do cliente. Todos os ítens remotos\n" "serão deletados. Deseja continuar?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sincronização" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Sincronizando. Por favor, aguarde.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d ítens adicionados.\n" "%d ítens atualizados.\n" "%d ítens deletados." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Um erro ocorreu durante a sincronização.\n" "Código do erro: %d; mensagem: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Você deve primeiro editar suas configurações de SyncML, em " "Editar/Preferências SyncML" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Alternar painel" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restaurar %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Visualizar painel" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "F&echar" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Fechar tudo" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Próximo" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Anterior" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Janela" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Editar" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d semanas" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d horas" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Concluído" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Espécie de período mostrado e sua contagem" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Mês" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientação do calendário" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Quais tarefas mostrar" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Tarefas com data planejada de início e data de vencimento" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Tarefas com data planejada de início" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Tarefas com data de término" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Todas as Tarefas" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Todas as tarefas, exceto tarefas não planejadas" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Desenhar uma linha mostrando a hora atual" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Cor usada para realçar o dia atual" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Todos os arquivos (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Senha:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Armazenar no chaveiro" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Houve um problema enquanto tentavamos encontrar sua chave de sistema.\n" "Por favor, reporte um bug (veja o menu Ajuda) e anexe um screenshot desta " "mensagem.\n" "O erro foi:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Por favor, digite a sua senha." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Por favor, digite sua senha" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Diferenciar maiúsculas/minúsculas" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Diferenciar maiúsculas de minúsculas quando filtrar" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Incluir subitems" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Incluir sub-ítens de ítens resultantes da pesquisa" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Procurar descrição também" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Procurar descrição e assunto" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Expressão &Regular" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Considerar a procura de texto como uma expressão regular" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Esta é uma expressão regular inválida." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Procura padrão para substring" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Pesquisas recentes" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Visualizador não pesquisável" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Alerta de compatibilidade" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "O recurso SyncML está desabilitado, porque o módulo\n" "não pôde ser carregado. Talvez seja porque sua plataforma\n" "não é suportada, ou sob Windows, você pode ter perdido\n" "algumas DLLs necessárias. Por favor veja a seção SyncML da\n" "ajuda on-line para mais detalhes (em \"Problemas\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Não mostrar esse diálogo novamente" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Erro ao abrir URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Excluir\tDEL" taskcoach-1.4.3/i18n.in/ro.po000066400000000000000000007215721265347643000156530ustar00rootroot00000000000000# Romanian translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # # Vă rugăm să nu actualizaţi fișierul, cu excepția cazului în care sînteți # sigur de calitatea traducerii dumneavoastră, de gramatică și de ortografie. # Acestea din urmă sînt de prea multe ori aproximative. # Corectarea lor ulterioară nu are nici un alt rezultat decît acela de # pierdere de timp pentru toata lumea. # # VĂ RUGĂM SĂ RESPECTAȚI SEMNELE DE PUNCTUAȚIE ALE LIMBII ROMÂNE! # # Nu suprimați spațiul care urmează unui semn de punctuație de sfîrșit de # frază; trebuie respectată versiunea originală. În acest caz, este foarte # probabil ca programul să afișeze un mesaj la sfîrșit. Suprimînd acel spațiu, # cele două cuvintele vor fi afișate legat. # # Traduceți de manieră INTELIGENTĂ (de ce nu și prin comparație cu alte # traduceri ale acestui fișier în alte limbi) și nu cuvînt cu cuvînt. Unele # astfel de traduceri nu au nici un sens în limba română. # # ATENȚIE LA FONTURILE UTILIZATE! Pentru a reda corect diacriticele folosiți # disponerea tastaturii românească standard, codarea de caractere UTF-8 și # asigurați-vă că fonturile utilizate sînt cu virgulițe, NU CU SEDILE! # Exemplu: # font incorect (cu sedile): şŞ ţŢ # font corect (cu virgule): șȘ țȚ # # Pentru a vă asigura că folosiți fonturile corecte, vizitați: # http://i18n.ro/Fonturi_romanesti/testare # # Vă mulțumim pentru înțelegere. # # Traducători de-a lungul timpului: # Frank Niessink , 2008. # Florin Cătălin RUSSEN , 2010. msgid "" msgstr "" "Project-Id-Version: TaskCoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:27+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: ROMANIA\n" "Language: ro\n" "X-Poedit-Language: Romanian\n" "X-Poedit-SourceCharset: utf-8\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "S-a produs o eroare. Verificaţi fişierul \"taskcoachlog.txt\" din directorul " "\"My Documents\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Eroare" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "S-a produs o eroare. Verificaţi \"%s\"." #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Nu s-au putut încărca configurările din TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s eroare de fișier" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" a ajuns in vârful ierarhiei pentru că părintele sau a fost şters " "local." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Au fost detectate confilcte în \"%s\".\n" "A fost utilizată versiunea locală." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Editează locația atașamentelor" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Editează locația atașamentului „%s”" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Adaugă un atașament" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Adaugă atașament la „%s”" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Atașament nou" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Înlătură atașamentul" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Înlătură atașamentul de la „%s”" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Copiază" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Copiază \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Șterge" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Șterge „%s”" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Taie" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Taie „%s”" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Lipește" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Inserează \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Inserează ca subelement" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Inserează ca subelement al \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Trage și pune" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Trage și depune \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Editează subiectele" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Editează subiecturl „%s”" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Editează descrierile" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Editează descrierea „%s”" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Schimbă pictogramele" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Schimbă pictograma „%s”" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Schimbă fonturile" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Schimbă fontul „%s”" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Schimbă culorile de prim-plan" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Schimbă culoarea „%s” de prim-plan" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Schimbă culorile de fundal" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Schimbă culoarea „%s” de fundal" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Schimbă categoria" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Schimbă categoria lui „%s”" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Categorie nouă" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Subcategorii noi" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Subcategorie nouă a lui „%s”" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Subcategorie nouă" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Editează categoriile exclusive" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Editează categoriile exclusive ale lui „%s”" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Șterge categoriile" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Șterge categoria „%s”" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Trage și pune categoriile" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Eforturi noi" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Efort nou pentru \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Șterge eforturile" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Șterge efortul „%s”" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Schimbă sarcina efortului" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Schimbă sarcina efortului „%s”" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Schimbă data/ora de început a efortului" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Schimbă data/ora de început a efortului „%s”" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Schimbă data/ora de sfîrșit a efortului" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Schimbă data/ora de sfîrșit a efortului „%s”" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Notiță nouă" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Subnotițe noi" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Subnotiță nouă a lui „%s”" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Subnotiță nouă" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Șterge notițele" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Șterge notița „%s”" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Trage și pune notițele" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Trage și depune notița \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Adaugă notiță" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Adaugă notiță la „%s”" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Adaugă subnotiță" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Adaugă subnotiță la „%s”" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Înlătură notița" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Înlătură notița din „%s”" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Trage și pune sarcinile" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Șterge sarcinile" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Șterge sarcina „%s”" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Sarcină nouă" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Subsarcini noi" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Subsarcină nouă a \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Subsarcină nouă" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Marchează sarcinile ca încheiate" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Marchează \"%s\" ca încheiată" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Marcaţi sarcina ca fiind activă." #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Marcaţi \"%s\" ca activă." #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Marcaţi sarcina ca fiind inactivă." #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Marcaţi \"%s\" ca inactivă." #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Pornește urmărirea" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Pornește urmărirea \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Oprește urmărirea" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Oprește urmărirea \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximizează prioritatea" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Maximizează prioritatea lui „%s”" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimizează prioritatea" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Minimizează prioritatea lui „%s”" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Incrementează prioritatea" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Incrementează prioritatea lui „%s”" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Decrementează prioritatea" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Decrementează prioritatea lui „%s”" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Schimbă prioritatea" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Schimbă prioritatea lui „%s”" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Adaugă notiță la sarcini" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Schimbaţi data la care planificaţi să începeţi." #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Schimbaţi data la care planificaţi să începeţi \"%s\"." #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Schimbă data scadentă" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Schimbă data scadentă a \"%s”" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Schimbaţi data la care a început." #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Schimbaţi data la care a început \"%s\"." #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Schimbă data de încheiere" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Schimbă data de încheiere a \"%s”" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Schimbă datele/orele rapelului" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Schimbă data/ora rapelului lui „%s”" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Schimbă recurențele" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Schimbă recurența lui „%s”" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Schimbă procentajul completat a \"%s”" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Schimbă când sarcinile sunt marcate ca fiind încheiate" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Schimbă când \"%s\" sunt marcate ca fiind încheiate" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Schimbă bugetele" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Schimbă bugetul lui „%s”" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Schimbă tariful orar" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Schimbă tariful orar al lui „%s”" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Schimbă tarifele fixe" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Schimbă tariful fix al lui „%s”" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Schimbă precerințele" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Schimbă precerințele lui „%s”" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Eroare la citirea setărilor%s-%s de la %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Valoarea este: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Valoarea este: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s va utiliza valoarea implicită pentru setare și ar trebui să continue " "normal." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Eroare de setări" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Eroare la salvarea %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Eroare la salvare" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mesaj Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Atașament nou..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Inserați un atașament nou" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Deschide atașamentul" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Deschide atașamentele selectate" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minute" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Fără ațipire" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minute" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minute" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 de minute" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 de minute" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 ore" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 de minute" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 oră" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 ore" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 ore" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 ore" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 ore" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 ore" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 ore" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 ore" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 de ore" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 de ore" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 de ore" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 săptămîni" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 săptămînă" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Total" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Total pentru %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "Efort &nou...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Sarcini inactive" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Ascunde sarcinile &inactive" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Sarcini inactive: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Afişaţi/ascundeţi sarcinile inactive (sarcini incomplete care nu au început)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Sarcini întârziate" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Ascunde sarcinile î&ntârziate" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Sarcini întârziate: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Afişaţi/ascundeţi sarcinile întârziate (sarcini a căror dată de început " "planificată a trecut)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Sarcini active" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Sarcini active: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Ascunde sarcinile &active" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Afişaţi/ascundeţi sarcinile active (sarcini incomplete care au început deja)." #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Sarcini care trebuie completate în curând" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Sarcini care trebuie completate în curând: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Ascunde sarcinile al căror termen se apropie" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Afişaţi/ascundeţi sarcinile care trebuie completate în curând (sarcini " "incomplete al căror termen este aproape)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Sarcini cu termen de încheiere depăşit" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Ascunde sarcinile care au &depăşit termenul" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Sarcini cu termen depăşit: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Afişaţi/ascundeţi sarcinile care au depăşit termenul (sarcini incomplete a " "căror dată limită a trecut)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Sarcini încheiate" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Sarcini completate: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "As&cunde sarcinile terminate" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Arată/ascunde sarcinile terminate" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "Sarcină &nouă..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Săgeată jos" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Săgeată jos cu stare" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Săgeți albastre circulare" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Săgeți verzi circulare" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Săgeată sus" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Săgeată sus cu stare" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bombă" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Carte" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Cărți" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Căsuță" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Gărgăriță" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Prăjitură" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Calendar" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Pisică" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Diagrame" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Discuții" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Bifare" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Bife" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Ceas" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Ceas cu alarmă" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Cronometru" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Roată dințată" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Roți dințate" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Calculator de birou" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Calculator portabil" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Calculator de buzunar" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Cruce roșie" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Zar" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Document" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Pămînt albastru" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Părmînt verde" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Plic" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Plicuri" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Dosar albastru" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Dosar albastru deschis" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Dosar verde" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Dosar gri" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Dosar portocaliu" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Dosar purpuriu" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Dosar roșu" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Dosar galben" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Dosar albastru cu săgeată" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Inimă" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Inimi" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Casă verde" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Casă roșie" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Cheie" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Chei" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lampă" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Semn de întrebare" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informație" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Led albastru" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Led albastru aprins" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Led gri" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Led verde" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Led verde aprins" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Led portocaliu" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Led purpuriu" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Led roșu" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Led galben" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Cerc vital" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Lacăt închis" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Lacăt deschis" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupă de mărit" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Pian" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Notă muzicală" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Notiță" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paletă" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Agrafă" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Creion" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Persoană" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Persoane" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identificare" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Persoană vorbind" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Semn de avertizare" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Stea roșie" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Stea galbenă" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semafor" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Coș de gunoi" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Fulger" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Umbrelă" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Parțial însorit" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Cheie" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Fără pictogramă" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Fișier" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Cale completă" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Dată" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Restabilește" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Închide" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Alege destinaţia" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Mesaj de la cei care au dezvoltat %s." #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Vedeţi:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Descriere" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Editează pentru a schimba toate subiectele" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Subiect" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Editează pentru a schimba toate descrierile" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Data creării" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Data modificării" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritate" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Excludere reciprocă" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Subcategorii" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Editează pentru a schimba locația tuturor atașamentelor" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Răsfoiește" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Locație" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Aspect" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Culoare de prim plan" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Culoare de fundal" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Font" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Pictogramă" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Date" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Data de început planificată" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Data scadentă" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Data la care a început" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Data de terminare" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Rapel" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Recurență" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Progres" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Procentaj terminat" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Utilizează configurația globală a aplicației" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nu" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Da" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Se marchează sarcina ca terminată cînd toate subsarcinile sînt terminate?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Buget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Timp consumat" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Buget rămas" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Tarif orar" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Tarif fix" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Venit" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Efort" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Categorii" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Atașamente" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notițe" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Precerințe" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Editează sarcina" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Sarcină" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Pornește" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Săptămîni" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Zile" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Ora (ore)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minut(e)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Sfîrșit" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Reia urmărirea de la ultima dată de oprire" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Opreşte urmărirea acum" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Avertisment: începutul trebuie să fie anterior sfîrșitului" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Sarcini multiple" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (sarcină)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Categorii multiple" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (categorie)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Notițe multiple" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (notiță)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Atașamente multiple" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (atașament)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Eforturi multiple" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (efort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Utilizează fontul:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Utilizează culoarea:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Neant" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Zilnică" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Lunară" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Săptămînală" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Anuală" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "păstrînd datele în aceeași zi a săptămînii" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", toate" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Oprește după" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "recurențe" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Planificați fiecare repetare viitoare în funcție de" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "Data de început şi/sau sfârşit planificată anterior" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "Ultima dată de încheiere" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "zi(le)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "perioadă," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "săptămînă(i)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "lună(i)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "an(i)," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportaţi elemente din:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Exportați doar elementele selectate" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Coloanele care vor fi exportate:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Puneţi data si timpul sarcinii în coloane separate" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Scrieți informațiile despre stil într-un fișier CSS separat" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Dacă există un fișier CSS pentru fișierul exportat, %(name)s nu îl va " "suprascrie. Aceasta vă permite să modificați informația de stil fără a " "pierde modificările la următoarea exportare." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportă ca CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportă ca iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exportă ca HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportați ca și Deefectuat.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Un dispozitiv iPhone sau iPod Touch încearcă\n" "să sincronizeze cu acest fișier de sarcini\n" "pentru prima dată. Ce tip de of sincronizare\n" "doriți să utilizați?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Împrospătează de pe birou" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Împrospătează de pe dispozitiv" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Anulează" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Ați activat funcția de sincronizare pentru iPhone, care\n" "necesită Bonjour. Bonjour nu pare a fi instalat\n" "pe sistemul vostru." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Descărcați și instalați Bonjour pentru Windows de pe\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Situl web Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Suport Bonjour pentru Linux este furnizat în\n" "general de Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Detalii referitoare la distribuția voastră puteți găsi aici" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Notați că pe unele sisteme (Fedora), trebuie să\n" "instalați pachetul avahi-compat-libdns_sd în plus de\n" "Avahi pentru ca acesta să funcționeze." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "În plus, dacă aveți un parafoc, verificați că porturile 4096-4100 sînt " "deschise." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Această schimbare se va efectua după ce reporniţi %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Această configurare poate fi suprascrisă, pentru fiecare sarcină în parte, \n" "în dialogul de modificare al sarcinii." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Fișiere" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Salvează automat după fiecare modificare" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Încarcă automat atunci când fişierul stocat pe disc este modificat" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Monitorizare inteligentă a sistemului de fişiere" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Detectează modificarile fişierului de sarcini in timp real.\n" "Nu o bifaţi dacă fişierul de sarcini se află pe un disc partajat în reţea.\n" "Trebuie să reporniţi %s dupa ce modificaţi această setare." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Salvează configurările (%s.ini) în același\n" "director cu programul" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Pentru a rula %s de pe un mediu amovibil" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Directorul de bază al atașamentului" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Cînd se adaugă un atașament, se creează\n" "calea sa relativă la acesta." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Înainte de a salva, importați automat din" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Formatul Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Înaintea salvării, %s importă automat sarcini\n" "dintr-un fişier Todo.txt care are acelaşi nume ca şi fişierul de sarcini,\n" "dar are extensia .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "La salvare, exportați automat în" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "La salvare, %s exportă automat sarcinile\n" "într-un fişier Todo.txt cu acelaşi nume ca şi fişierul de sarcini,\n" "dar cu extensia .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Comportament fereastră" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Afișează imaginea de pornire" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Afișează fereastra cu sfaturi la pornire" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Pornește cu fereastra principală iconizată" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Totdeauna" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Niciodată" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Dacă a fost iconizat ultima sesiune" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Verifică la pornire pentru noi versiuni de %(name)s" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Verificaţi mesajele de la dezvoltatorii %(name)s la pornire" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Ascunde fereastra principală la iconizare" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimizează fereastra principală la închidere" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Fă să ticăie ceasul din bara de sarcini cînd se urmărește efortul" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Limbă" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Lăsați sistemul să determine limba" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Dacă traducerea în limba dvs. nu este disponibilă sau necesită îmbunătăţiri, " "vă rugăm sa ne ajutaţi. Vedeţi:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Limbă negăsită?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Afişarea sarcinilor" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Configurările aspectului pot fi suprascrise, pentru fiecare sarcină în " "parte, în dialogul de modificare al sarcinii." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funcționalități" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Toate modificările din aceasta filă necesită repornirea %s pentru a fi " "efectuate." #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Activează SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Activează sincronizarea iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Utilizati controlul sesiunii sub X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Începutul săptămânii de lucru" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Luni" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Duminică" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Ora de început a zilei de lucru" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Ora de sfîrșit a zilei de lucru" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Sfârșitul zilei" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Utilizează gradienți în vederile de calendar.\n" "Aceasta poate încetini Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minute între orele propuse" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "În meniurile de selecţie a timpuui (de ex. pentru definirea momentului de " "început \n" "al unui efort) %(name)s va sugera orele utilizând această configurare. \n" "Cut cât numărul de minute este mai mic, cu atât mai multe intervale \n" "vor fi sugerate. Puteti, desigur, introduce orice ora doriti, pe lingă cele " "sugerate." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Atenţionare de timp nefolosit" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Dacă utilizatorul nu introduce o durată\n" "(în minute), %(name)s va întreba ce este de făcut cu eforturile în cauză." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Utilizaţi timpul în format zecimal pentru eforturi." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Afişaţi o oră şi cinzsprezece minute ca 1.25 în loc de 1:15\n" "Este folositor când creeaţi facturi." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Afișează o fereastră cu descrierea unui element\n" "cînd este planat" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Date ore în sarcini" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Marchează terminată sarcina părinte cînd toate sarcinile copil sînt terminate" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Numărul de ore în care sarcinile sînt considerate „scadente curînd”" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nimic" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" "Dacă schimbaţi data de început planificată, se schimbă şi data de încheiere" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" "Dacă schimbaţi data de încheiere, se schimbă şi data de început planificată" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Ce facem cu data de început planificată şi cea de încheiere dacă una dintre " "ele este schimbată" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Prestabilit" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Scop" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Astăzi" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Mâine" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Poimâine" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Vinerea viitoare" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Lunea viitoare" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Începutul zilei" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Începutul zilei de lucru" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Ora curentă" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Sfârșitul zilei de lucru" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Valorile implicite pentru data si ora de început planificate" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Valorile implicite pentru data și ora de scadenţă" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Valorile implicite pentru data si ora de început efective" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Valorile implicite pentru data și ora de încheiere" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Valorile implicite pentru data și ora memento-ului" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Sarcinile noi încep cu valorile \"predefinite\" pentru date şi ore " "completate si activate. Valorile \"propuse\" pentru date şi ore sunt " "completate, dar nu sunt activate.\n" "\n" "\"Începutul zilei\" este la miezul nopţii şi \"Sfârşitul zilei\" este chiar " "înainte de miezul nopţii. Când aceste valori sunt utilizate, ferestrele de " "vizualizare a sarcinilor ascund orele si afişează numai data.\n" "\n" "\"Începutul zilei de lucru\" şi \"Sfârşitul zilei de lucru\" utilizează ziua " "de lucru definită in fila \"Functionalităţi\" a acestei ferestre de dialog " "(\"Preferinţe\")." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Memento-uri" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Sistemul de notificare utilizat pentru memento-uri" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Lăsaţi calculatorul sa facă anunţul" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Necesită espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Durata implicită de timp după care un memento este repetat" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Duratele de repetiție propuse în dialogul de rapel" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Parola pentru sincronizarea cu iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Când sincronizaţi, intrduceţi această parolă pe iPhone pentru a autoriza " "procesul." #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Serviciul de nume Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Încarcă pe dispozitiv sarcinile complete" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Afișează jurnalul de sincronizare" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Verificare ortografică în editoare" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" "Corpul de literă utilizat în câmpul de descriere al dialogurilor de " "editare/modficare" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Luaţi subiectul e-mail-ului din Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Când transferaţi un e-mail din Mail.app, încercaţi să luaţi şi subiectul " "său.\n" "Durează maxim 20 de secunde." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Selectaţi subiectul sarcinii în editorul de sarcini" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Când deschideţi editorul de sarcini, selectaţi subiectul sarcinii.\n" "Aceasta suprascrie selecţia implicită in X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "Memento pentru %(name)s - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Dată/oră rapel" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Ațipește" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Folosiţi-o de aici inainte ca valoare implictă" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Marchează sarcina terminată" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Server SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Personalizat(ă)" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Bazat pe Horde" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL server SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Nume/ID utilizator" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Activează sincronizarea sarcinilor" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Denumirea bazei de date de sarcini" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Modul de sincronizare preferat" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Ambele sensuri" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Lent" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Sens unic de la client" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Împrospătează de la client" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Sens unic de la server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Împrospătează de la server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Activează sincronizarea notițelor" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Denumirea bazei de date de notițe" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Acces" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Şablon de sarcină nou" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Previzualizare" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Unelte disponibile" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Fă unealta vizibilă în bara de unelte" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Ascunde acestă unealta în bara de unelte" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Unelte" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Mută unealta în sus (către partea stângă a barei de unelte)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Mută unealta în jos (la dreapta barei de unelte)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Reorganizaţi butoanele trăgându-le şi plasându-le in această listă." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Separator" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Spaţiu" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Anunță-mă de noi versiuni." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Nouă versiune disponibilă de %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Utilizați %(name)s versiunea %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Versiunea %(version)s de %(name)s este disponibilă din" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s este la zi" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s este la zi la versiunea %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Nu s-a putut afla ultima versiune" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Nu s-a putut afla care este ultima versiune a %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Versiunea pre-lansare" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Utilizați %(name)s versiunea pre-lansare %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Ultima veriune lansată a %(name)s este %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Avertisment" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach are probleme care sunt cunoscute cu administratorul de sesiune " "din XFCE4 .\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Dacă aplicaţia se blochează din când în când la pornire, debifaţi\n" "\"Utilizati administratorul de sesiune din X11\" din fila " "\"Funcţionalităţi\" din preferinţe.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Nu afişaţi acest dialog la pornire" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Fără date introduse de %s. Următoarea operație era\n" "urmărită:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Nu faceți nimic" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Opriți la %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Opriți la %s și reluați acum" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notificare" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s fișiere (*.tsk)|*.tsk|Toate fișierele (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s fișiere (*.tsk)|*.tsk|Fișiere salvgardare (*.tsk.bak)|*.tsk.bak|Toate " "fișierele (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Fișiere iCalendar (*.ics)|*.ics|Toate fișierele (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Fișiere HTML (*.html)|*.html|Toate fișierele (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Fișiere CSV (*.csv)|*.csv|Fișiere text (*.txt)|*.txt|Toate fișierele (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Fișiere Deefectuat.txt (*.txt)|*.txt|All files (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Deschide" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(nrtasks)d sarcini încărcate din %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Nu se poate deschide %s pentru că nu există" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Unește" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Nu se poate deschide %(filename)s\n" "pentru că este blocat." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s unite" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Salvează ca" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Salvează selecția" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Nu se poate salva %s\n" "Este blocat de o altă instanță de %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Nu se poate salva %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importă şablon" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s fișiere șablon (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Nu se poate importa șablonul %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d elemente exportate în %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Sincronizare terminată" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Stare sincronizare" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Nu se poate deschide %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Un fișier numit %s există deja.\n" "Doriți să-l înlocuiți?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Aveți modificări nesalvate.\n" "Salvați înainte de închidere?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: salvați modificările?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Nu se poate deschide %s pentru că este blocat.\n" "\n" "Asta înseamnă ori că o altă instanță TaskCoach este\n" "este activă și are acest fișier deschis, ori că o instanță\n" "anterioară de Task Coach a crăpat. Dacă nu rulează nici\n" "o altă instanță, puteți debloca fișierul în siguranță.\n" "\n" "Deblocați fișierul?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: fișier blocat" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Nu se poate obține o blocare pentru că blocarea nu este\n" "suportată pe locația lui %s.\n" "Deschideți %s neblocat?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Închise %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(nrtasks)d sarcini salvate în %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Nu se poate deschide %(filename)s\n" "deoarece a fost creat de o versiune mai nouă de %(name)s.\n" "Actualizați %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Eroare la citirea %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Modulul de administrare al copiilor de rezervă va porni pentru a vă permite " "să restabiliţi\n" "o versiune mai veche a fişierului." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Sincronizare..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Sincronizare cu %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Bun venit în %(name)s versiunea %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Nu s-a putut restaura aşezarea panourilor în fereastră din TaskCoach.ini:\n" "%s\n" "\n" "Va fi utilizată aşezarea implicită.\n" "\n" "Dacă problema se repetă, vă rugăm să faceţi o copie a fişierului " "TaskCoach.ini înainte de-a închide programul, să raportaţi problema ca un " "\"bug\" şi să ataşaţi copia fişierului TaskCoach.ini la raport." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s eroare în configurare" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Tip de sincronizare" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Un dispozitiv iPhone sau iPod Touch a încercat să sincronizeze cu\n" "acest fișier de sarcini, dar protocolul de negociere a eșuat.\n" "Trimiteți un raport de eroare." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Fișier" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Editează" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Vizualizare" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nou" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Acțiuni" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Ajutor" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importă" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportă" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Selectează" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "Vedere &nouă" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Activează vederea următoare\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Activează vederea &precedentă\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Mod" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtrează" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortează" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Coloane" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Rotunjire" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Opțiuni &arborescență" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Bara de &unelte" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Arată/ascunde bara de stare" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Bara de stare" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Sarcină" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Deschide un tab nou cu o vedere ce afișează sarcinile" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "&Statistica sarcinii" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" "Deschide o fila nouă cu un modul de vizualizare care afişează statistica " "sarcinii" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "&Sarcini în pătrat" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Deschide un tab nou cu o vedere ce afișează sarcinile în pătrat" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Cronolog&ie" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Deschide un tab nou cu o vedere ce afișează o cronologie a sarcinilor și " "efortului" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Calendar" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "Deschide un tab nou cu o vedere ce afișează sarcinile într-un calendar" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "Calendar ierar&hizat" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "Deschide o fila nouă cu un modul de vizualizare care afişează ierarhia " "sarcinii într-un calendar" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Categorie" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Deschide un tab nou cu o vedere ce afișează categoriile" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Efort" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Deschide un tab nou cu o vedere ce afișează eforturile" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Ef&ortul asociat cu sarcina(ile) selectate" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" "Deschide un tab nou cu o vedere ce afișează eforturile pentru sarcinile " "selectate" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notiță" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Deschide un tab nou cu o vedere ce afișează notițele" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Ascunde" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Ascunde bara de unelte" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "Imagini mi&ci" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Imagini mici (16x16) în bara de unelte" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Imagini &medii" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Imagini medii (22x22) în bara de unelte" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "Imagini &largi" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Imagini largi (32x32) în bara de unelte" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Sarcină nouă din șablon" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Schimbă ca&tegoria" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Schimbă &prioritatea sarcinii" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Pornește urmărirea efortului" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (subcategorii)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (subsarcini)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioritate" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Pagină" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Rapel" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d sarcini depășite" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "o sarcină despășită" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d sarcini scadente curînd" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "o sarcină scadentă curînd" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "urmărire „%s”" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "urmărire efort pentru %d sarcini" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Deschide...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Deschide %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "%Unește..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Unește sarcinile dintr-un alt fișier cu fișierul curent" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "În&chide\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Salvează\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Comasaţi &disk modificările\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S&alvează ca...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Sal&vaţi sarcinile selectate intr-un fişier de sarcini nou..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Salvaţi sarcinile selectate intr-un fişier de sarcini separat" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Salvează ca șablon sarcinile selectate" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Salvează sarcina selectată ca un șablon de sarcină" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importă șablon..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importă un șablon nou dintr-un fișier șablon" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Editare șabloane..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Editează șabloanele existente" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Editează șabloanele" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "Curăță elementele șterse" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Şterge efectiv sarcinile si notele marcate anterior ca \"şterse\" (vedeţi " "capitolul \"SyncML\" din Ajutor)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Curățarea elementelor șterse este\n" "ireversibilă. Dacă plănuiți sau\n" "activați din nou facilitatea SyncML\n" "cu aleași server utilizat precedent,\n" "aceste elemente probabil vor reveni.\n" "\n" "Doriți totuși curățarea?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Configurare pagină...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Previzualizare tipărire..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Arată o previzualizare a cum va arăta tipărirea" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Pevizualizare tipărire" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "Ti&părire...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Organizaţi copiile de rezervă..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Organizaţi toate copiile de rezervă ale fişierului de sarcini" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportă ca &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exportați elemente dintr-un vizualizator în format HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportă ca &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Exportați elemente dintr-un vizualizator în format CSV (Valori separate prin " "virgulă)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exportă ca &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exportați elemente dintr-un vizualizator în format iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Se exportă ca și &Deefectuat.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Exportați elemente dintr-un vizualizator în format Deefectuat.txt (vezi " "todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importă CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importă sarcini dintr-un fișier CSV (Comma Separated Values)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importă CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Fişierul selectat est gol. Selectaţi altul." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importă Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importați sarcini dintr-un fișier Todo.txt (consultați todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importă Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Sincronizare S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Sincronizează cu un server SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Terminare\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Desfă" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Refă" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Taie\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Copiază\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Inserează\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Lipește c&a subelement\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Preferințe...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Preferinţe" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Preferințe &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Editează preferințele SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML preferinţe" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Personalizaţi bara de unelte." #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Personalizează" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "To&ate\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Curăță selecția" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Deselectează toate elementele" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "An&ulează toate filtrele\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Reinițializează toate categoriile\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Afișează/ascunde elementele aparținînd lui %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Redenumește afișarea..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Redenumește afișarea selectată" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Titlu nou pentru afișare:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Redenumește afișarea" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Ascunde coloana aceasta" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Ascunde coloana selectată" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Expandează toate elementele\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Colbatează toate elementele\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Ascendent" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sortare ascendentă (bifat) sau descendentă (nebifat)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Sortare sensibilă la majus&cule" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Cînd se compară textul, sortarea este sensibilă la majuscule (bifat) sau " "insensibilă (nebifat)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Sortează mai întîi după stare" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sortează sarcinile mai întîi după stare (active/inactive/terminate)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Ascunde sarcinile c&ompuse" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Arată/ascunde sarcinile cu subsarcini în modul listă" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Modifică...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Editează elementele selectare" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Editați sarcina &urmărită...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Editează sarcina(ile) urmărite" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Șterge\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Șterge elementele selectate" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Creează o sarcină nouă dintr-un șablon" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Sarcină nouă cu &categoriile selectate..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Creează o sarcină nouă aparținînd categoriilor selecționate" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Sarcină nouă cu sarcinile selectare ca cerințe obligatorii..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Inserează o sarcină nouă cu sarcinile selectate ca sarcini obligatorii" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Sarcină nouă cu sarcinile selectate ca &dependinţe..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" "Inserează o sarcină nouă cu sarcinile selectate ca sarcini dependente" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "&Subelement nou..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "&Subsarcină nouă..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "&Subnotiță nouă..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "&Subcategorie nouă..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Inserează un subelement nou pentru elementul selectat" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Marcaţi sarcina ca &activă\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Marcaţi sarcinile selectate ca active" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Marchează sarcina ca &inactivă\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Marchează sarcina(ile) selectate ca inactive" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Marcaţi sarcina ca şi î&ncheiată\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Marchează sarcinile selectate ca terminate" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximizează prioritatea\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimizează prioritatea\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Incrementează prioritatea\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Decrementează prioritatea\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Schimbă %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "e-&Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Poştă...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Cîteva lucruri" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "și" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Imposibil de trimis e-mail:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "Eroare de e-mail %s" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Adaugă ¬iță...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Deschide toate notițele...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "Pornește înregi&strarea efortului\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Pornește înregistrarea efortului pentru sarcinile eforturilor selectate" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Fără subiect)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Pornește urmărirea efortului pentru %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" "Selectați o sarcină din meniu și porniți urmărirea efortului pentru ea" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Oprește urmărirea sau reia urmărirea efortului\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "&Oprește urmărirea %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Oprește urmărirea efortului pentru sarcinile active" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Rreia urmărirea %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Reia înregistrarea efortului pentru ultima sarcină urmărită" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "sarcini multiple" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Categorie nouă...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Notiță nouă...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "&Notiță nouă cu categoriile selectate..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Creează o notiță nouă aparținînd categoriilor selectate" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Adaugă atașament...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Eroare la deschiderea atașamentului" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "Deschide t&oate atașamentele...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Cuprins ajutor\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Cuprins ajutor\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Ajutor" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "Sfa&turi" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Sfaturi despre program" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonimizați" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Anonimizează un fișier cu sarcini pentru a-l atașa unui raport de eroare " "(\"bug\")" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Fișierul de sarcini a fost anonimizat și salvat în:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Terminat" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Despre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Versiune și informații de contact despre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Despre %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licență" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Licență %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Verificaţi dacă există actualizări" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Verificați disponibilitatea unei noi veriuni de %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "URL-ul nu poate fi deschis:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "Eroare URL %s" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Întrebări adresate frecvent" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Explorați întrebările frecvente și răspunsurile" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Raportați o eroare..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Raportați o eroare sau consultați pe cele știute" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Cereți o &funcționalitate..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Cereți o funcționalitate nouă sau votați cererile existente" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Cereți &suport..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Cereți suport utilizator de la dezvoltatori" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Ajutați la îmbunătățirea &traducerilor..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Ajutați la îmbunătățirea traducerilor %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Donați..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Donați pentru a susține dezvoltarea lui %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Restaurează" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Restaurează fereastra la starea sa precedentă" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Căutare" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detalii efort" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Efort pe zi" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Efort pe lună" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Efort pe săptămînă" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Mod agregare" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Listă" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Arbore" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Când este bifată, afişează sarcinile ca un arbore, altfel le afişează într-o " "listă" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrează pe toate categoriile bifate" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrează pe oricare din categoriile bifate" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Când e bifată, filtrul se aplică pe toate categoriile bifate, altfel se " "aplică pe orice categorie bifată" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Ordonează alegerea" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Configurează" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Configurează vederea calendar" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Configurează modulul de vizualizare ierarhică a calendarului" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "Perioada &următoare" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Arată perioada următoare" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Perioada &precedentă" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Arată perioada precedentă" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Astăzi" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Arată astăzi" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Redimensionare &automată de coloane" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Dacă bifată, coloanele vor fi redimensionate automat spre ocuparea spațiului " "disponibil" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Defineşte unghiul diagramei radiale" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Fară rotunjire" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minut" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minute" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Precizia de rotunjire" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Rotunjeste în plus mereu" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Rotunjeste în plus mereu, până la incrementul de rotunjire următor" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tip" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sortează după subiect" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Sub&iect" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sortează după descriere" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Descriere" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Data de creare" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Sortează după data de creare" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Data de modificare" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Sortează după data ultimei modificări" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Arată/ascunde coloana descrierii" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notițe" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Arată/ascunde coloana notițelor" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Afişează/ascunde coloana cu data creării" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Afişează/ascunde coloana cu data ultimei modificări" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Barele cu unelte pot fi personalizate" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Faceţi clic pe simbolul cu roata dinţată aflat la dreapta pentru a adăuga si " "rearanja butoane." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Rearanjare in mod arbore" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "In mod arbore, ordonarea manuală este posibilă numai când toate elementele " "selectate au acelaşi părinte." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "In mod arbore, puteţi plasa obiecte numai la acelaşi nivel (părinte)." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Ordonare manuală" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Afişează/ascunde coloana pentru ordonare manuală" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Atașamente" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Arată/ascunde coloana atașamentelor" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Categorii: %d selectate din %d" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Stare: %d filtrate" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Perioadă" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Timp total consumat" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Venit total" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Marți" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Miercuri" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Joi" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Vineri" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sîmbătă" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Categorii" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Arată/ascunde coloana categoriilor" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Timp consumat" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Arată/ascunde coloana timpului consumat" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Venit" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Arată/ascunde coloana venitului" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Timp total consumat" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Arată/ascunde coloana timpului total consumat" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "Venit &total" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Arată/ascunde coloana venitului total" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Efort pe zi a săptămînii" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Arată/ascunde coloana timpului consumat pe zi a săptămînii" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Agregarea efortului" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Efort: %d selectat, %d vizibil, %d total. Timp folosit: %s selectat, %s " "vizibil, %s total." #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Stare: urmărirea lui %d" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Detalii:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Efortul asociat cu sarcina(ile) selectate" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sortează categoriile după subiect" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sortează categoriile după descriere" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Sortează categoriile după data creării" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Sortează categoriile după data ultimei modificări" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sortează categoriile manual" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sortează atașamentele după subiect" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sortează atașamentele după descriere" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sortează atașamentele după categorie" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Sortează fişierele ataşate după data creării" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Sortează fişierele ataşate după data ultimei modificări" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sortează notițele după subiect" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sortează notițele după descriere" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sortează notițele după categorie" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Sortează notiţele după data creării" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Sortează notele după data ultimei modificări" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sortează notele manual" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sortează sarcinile după subiect" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sortează sarcinile după descriere" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sortează sarcinile după categorie" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Sortează sarcinile după data creării" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Sortează sarcinile după data ultimei modificări" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sortează sarcinile manual" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Sortează sarcinile după data planificată de început" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "Data &planificată de început" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sortează sarcinile după data scadentă" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Data sca&dentă" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sortează sarcinile după data de terminare" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Data de &terminare" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sortează sarcinile după sarcinile obligatorii" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Precerințe" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sortează sarcinile după sarcinile dependente" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "Depedenţi" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Sortează sarcinile după timpul rămas" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Timp rămas" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Sortează sarcinile după procentajul terminat" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Procentaj terminat" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sortează sarcinile după recurență" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Recurență" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sortează sarcinile după buget" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Buget" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sortează sarcinile după timpul consumat" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Buget &rămas" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sortează sarcinile după bugetul rămas" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sortează sarcinile după prioritate" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sortează sarcinile după tariful orar" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "Tarif &orar" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sortează sarcinile după tariful fix" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Tarif &fix" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sortează sarcinile după venit" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sortează sarcinile după data și ora rapelului" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Rapel" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Subiect" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sortează notițele după categorii" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notițe: %d selectate din %d" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Stare: n/d" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Sarcini: %d selectate, %d vizibile, %d în total" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Stare: %d depăşită, %d întârziată, %d inactivă, %d completă" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Shift-click pe o unealtă de filtrare pentru a vedea numai sarcinile din acea " "categorie" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Sarcini" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Cronologie" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Acum" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Sarcină în pătrat" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Aranjează sarcinile după" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Calendar ierarhizat" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Configurarea modulului de afişare a calendarului ierarhizat" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Configurația vederii calendar" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ordonare manuală" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Afişaţi coloana \"Ordonare manuală\", apoi trageţi elemente din această " "coloană pentruu a le sorta după dorinţă." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Dependenţi(te)" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% terminată" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Timp rămas" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Date" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "To&ate coloanele dată" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Arată/ascunde toate coloanele dată" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Afişează/ascunde coloana cu data de început planificată" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Arată/ascunde coloana datei scadente" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Data de început re&ală" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Afişează/ascunde coloana cu data de început reală" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Arată/ascunde coloana datei de terminare" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Arată/ascunde coloana timpului rămas" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Arată/ascunde coloana recurenței" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "To&ate coloanele buget" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Arată/ascunde toate coloanele buget" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Arată/ascunde coloana buget" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Buget rămas" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Arată/ascunde coloana bugetului rămas" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finanțe" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "To&ate coloanele financiare" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Arată/ascunde toate coloanele financiare" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Arată/ascunde coloana tarifului orar" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Arată/ascunde coloana tarifului fix" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Arată/ascunde coloana de precerințe" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Afişează/ascunde coloana cu dependinţe" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Arată/ascunde coloana procentajului terminat" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Arată/ascunde coloana atașamentului" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Arată/ascunde coloana priorității" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Arată/ascunde coloana rapelului" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Afişează sarcinile în" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Statistica sarcinii" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Virgulă" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Spațiu" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Două puncte" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Punct și virgulă" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Redirecţionare" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "ZZ/LL (ziua/luna)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "LL/ZZ (luna/ziua)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Ghilimele simple" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Ghilimele duble" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Dublați" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Renuntati cu" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importați doar liniile selectate" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Prima linie descrie cîmpurile" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Delimitator" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Format dată" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Caracter de citare" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Ieşire din citat" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Cîmpul #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Selectați un fișier." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Categorie" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Data memento-ului" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Procente completată" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Capul coloanei în fișier CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s atribut" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Nici o asociere de cîmpuri." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Cîmpul „%s” nu poate fi selectat de mai multe ori." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Cîmpurile %s nu pot fi selectate de mai multe ori." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Cuprins" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Despre sarcini" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Prorpietăți sarcină" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Stări sarcină" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Culori sarcină" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Memento-uri" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Despre efort" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Proprietăți efort" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Despre categorii" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Proprietăți categorie" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Despre notițe" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Proprietăți notiță" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Tipărire și exportare" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Despre tipărire și exportare" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Tipărire" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportare" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Utilizare în regim multi-utilizator" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "Despre regimul multi-utilizator" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Opţiuni de stocare" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Sarcini de poştă electronică" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Atribute personalizate pentru poşta electronică" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integrare e-mail" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Despre integrarea e-mail" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Atașarea unui e-mail la o sarcină" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Crearea unei sarcini dintr-un e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Suport SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Ce este SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Instalare" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Limitări" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Depanare" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Curățarea elementelor șterse" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone și iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s pe iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Configurare" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s pe Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Deefectuat.txt and Deefectuat.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Se importă Todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Se exportă defăcut.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Șabloane de sarcini" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Despre șabloane" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Utilizarea șabloanelor" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Interfață grafică utilizator" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Taste rapide" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Sarcinile sînt obiectele de bază pe care le manipulați. Sarcinile pot\n" "reprezenta orice, de la o mic lucru de făcut pînă la un proiect complet \n" "alcătuit din diferite faze și activități numeroase." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Sarcinile au următoarele proprietăți ce pot fi schimbate:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Subiect: o singură linie care rezumă sarcina." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Descriere: o descriere a sarcinii pe mai multe linii." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Data de început planificată: ziua în care se începe lucrul la o sarcină. \n" "Implicit, data de început planificată este data la care a fost creată " "sarcina. Poate fi 'Fără', \n" "însemnând că sarcina este nelucrativă. O asemenea sarcină poate fi de folos, " "\n" "de exemplu, pentru a înregistra absenţe pe caz de boală." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Data scadentă: data la care sarcina ar trebui să fie terminată. \n" "Aceasta poate fi „Neant” indicînd că sarcina nu are dată scadentă fixată." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Data de început reală: prima zi în care s-a lucrat efectiv la o anume " "sarcină.\n" "Data de început reală poate fi modificată direct şi este definită automat " "atunci când \n" "începeţi să urmăriţi efortul asociat cu acea sarcină sau când puneţi " "procentul până la care sarcina a fost completată\n" "la o valoare între 0% ăşi 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Data de terminare: această dată este „Neant” atîta timp cît sarcina \n" "nu a fost terminată. Se poziționează pe data curentă cînd marcați sarcina ca " "\n" "terminată. Data de terminare poate fi introdusă și manual." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Prerechizite: sarcini care trebuie completate înainte\n" "ca o anumita sarcină să poată fi începută. Acea sarcină rămâne inactivă " "până când şi ultima sarcină prerechizită este \n" "completată. Remarcaţi că, atunci când o anume sarcină are o dată de început " "planificată, acea\n" "dată trebuie sa fie în trecut şi toate sarcinile prerechizite " "trebuie sa fie\n" "completate pentru ca acea sarcina sa devină o sarcină întârziată." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Buget: cantitatea de ore disponibile pentru sarcină." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Tarif orar: suma de bani cîștigată pe oră cu sarcina." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Tarif fix: suma de bani cîștigată cu sarcina \n" "indiferent de timpul petrecut." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Următoarele proprietăți sînt calculate din proprietățile de mai sus:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Zile rămase: numărul de zile rămase pînă la data scadentă." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Dependente: sarcini care pot să înceapă atunci când \n" "sarcina prerechizită a fost completată." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Timp consumat: efortul consumat cu sarcina." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Buget rămas: bugetul sarcinii minus timpul consumat cu sarcina." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Venit: tariful orar pe orele consumate plus tariful fix." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Sarcinile au mereu exact una din stările următoare:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Activă: data efectivă de început este în trecut;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Inactivă: sarcina la care lucrul nu a început şi/sau mai sunt \n" "încă sarcini prerechizite care trebuie completate;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Terminată: sarcina a fost terminată." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "În plus, sarcinile pot fi referite ca:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Scadență depășită: data scadentă a trecut;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Scadentă curînd: data scadentă este în curînd (ce înseamnă „curînd” \n" "poate fi schimbat în preferințe);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Întârziată: data de început planificată este în trecut şi lucrul la sarcina " "\n" "nu a îceput;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Peste buget: fără buget rămas;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Sub buget: cu buget rămas;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Fără buget: sarcina nu are buget." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Textul sarcinilor este colorat în funcție de următoarele reguli:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Sarcinile cu scadența depășită sunt colorate în roșu;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Sarcinile scadente curînd sînt portocalii;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Sarcinile active sînt cu text negru și pictogramă albastră;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Sarcinile întârziate sunt purpurii/mov deschis" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Sarcinile viitoare sînt gri, și" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Sarcinile terminate sînt verzi." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Asta presupunînd că nu ați schimbat culorile textului din caseta \n" "de preferințe, bineînțeles." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Culoarea fundalului sarcinilor este determinată de categoriile cărora " "sarcina \n" "aparține. Vedeți în secțiunea despre \n" "proprietățile categoriei de mai jos." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Puteţi pune un memento la a anumită dată şi oră. %(name)s va afişa\n" "un mesaj pentru a vă reaminti la acea dată şi oră. Din dialogul memento-" "ului\n" "puteţi deschide sarcina, incepe sa urmăriţi efortul asociat cu sarcina, sau " "puteţi marca sarcina\n" "ca fiind completată. Este deasemenea posibil să repetaţi memento-ul mai " "târziu." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Dacă aveţi Growl sau Snarl instalate, puteţi cere\n" "%(name)s să le utilzeze pentru memento-uri in dialogul de preferinţe." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Cînd consumați timp cu o sarcină, puteți înregistra perioada de timp\n" "petrecută prin urmărirea efortului. Selectați o sarcină și invocați " "„Pornește\n" "înregistrarea efortului” din meniul „Efort” sau din meniul contextual prin \n" "butonul „Pornește înregistrarea efortului” din bara de unelte." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" "Înregistrările efortului au următoarele proprietăți ce pot fi schimbate:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Sarcină: sarcina căreia îi aparține efortul." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Data/ora de început: data și ora de început a efortului." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Data/ora de sfîrșit: data și ora de sfîrșit a efortului. Aceasta poate \n" "fi „Neant” cît timp lucrați la sarcină." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Descriere: o descriere a efortului pe mai multe linii." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Timp consumat: cît timp ați consumat lucrînd la sarcină." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Venit: banii cîștigați pe timpul consumat." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Sarcinile și notițele pot aparține uneia sau mai multor categorii. Mai întîi " "\n" "trebuie să creați categoria pe care doriți s-o utilizați, din meniul " "„Categorie”.\n" "Apoi puteți adăuga elemente la una sau mai multe categorii prin editarea \n" "elementului și bifarea categoriilor relevante pentru acel element în panoul " "\n" "categoriei din dialogul de editare." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Puteți limita elementele afișate în sarcină și afișarea notițelor la una sau " "mai \n" "multe categorii prin bifarea unei categorii în vederea categoriei. De " "exemplu, \n" "dacă aveți o categorie „apeluri telefonice” și bifați acea categorie, " "vederile de \n" "sarcină vor afișa numai sarcinile aparținînd acelei categorii; cu alte " "cuvinte telefoanele \n" "pe care trebuie să le dați." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Categoriile au următoarele proprietăți ce pot fi schimbate:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Subiect: o singură linie ce rezumă categoria." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Descriere: o descriere a categoriei pe mai multe linii." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Subcategorii care se exclud reciproc: o căsuță de bifat indicând\n" "dacă subcategoriile categoriei se exclud reciproc. Dacă da,\n" "elementele pot aparține doar uneia dintre subcategorii. La filtrare, puteți " "filtra\n" "doar în funcție de o singură categorie odată." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Proprietățile aspectului pictogramelor, fonturilor și culorilor: \n" "proprietățile aspectului sînt utilizate pentru randarea categoriei, dar și a " "elementelor\n" "ce aparțin acelei categorii. Dacă o categorie nu are o culoare, font sau " "pictogramă\n" "proprie, dar are o categorie părinte cu o astfel de proprietate, se va " "utiliza proprietatea\n" "părintelui.Dacă un element aparține mai multor categorii care au fiecare o " "culoare\n" "asociată, un amestec al acelor culori va fi utilizat pentru a randa acel \n" "element." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notițele pot fi utilizate pentru a captura diverse informații pe care " "doriți\n" "să le păstrați în fișierul sarcinii. Notițele pot fi autonome sau parte din " "alte\n" "elemente, precum sarcini și categorii. Notițele autonome sînt afișate în " "vederea\n" "notițelor. Notițele care sînt parte din alte elemente nu sînt afișate în " "vederea\n" "notițelor" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notițele au următoarele proprietăți ce pot fi schimbate:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Subiect: o singură linie ce rezumă notița." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Descriere: o descriere pe mai multe linii a notiței." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Proprietățile aspectului pictogramelor, fonturilor și culorilor." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Tipărirea și exportarea funcționează în același fel: cînd tipăriți sau\n" "exportați date, datele din vederea activă sînt tipărite sau exportate.\n" "În plus, datele sînt tipărite sau exportate în același fel în care sînt " "afișate \n" "pe ecran. Datele sînt tipărite sau exportate în aceeași ordine în care sînt\n" "afișate pe ecran. Coloanele vizibile determină care din detalii vor fi " "tipărite\n" "sau exportate. Cînd filtrați elemente, de exemplu ascundeți sarcinile\n" "terminate, acelea nu vor fi tipărite sau exportate." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Pregătește conținutul unei vederi prin punerea elementelor în ordinea \n" "corectă, arată sau ascunde coloanele potrivite și aplică filtrele \n" "relevante." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Puteți previzualiza cum va arăta tipărirea\n" "utilizînd elementul Fișier -> Previzualizare tipărire. Puteți edita " "parametrii paginii\n" "utilizînd Fișier -> Configurare pagină. Cînd tipăriți și platforma o " "suportă, puteți alege \n" "să tipăriți toate elementele vizibile în vederea activă, sau doar \n" "elementele selectate." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Pe urmă, alegeți formatul în care doriți să exportați și dacă doriți să\n" "exportați toate elementele vizibile sau doar pe cele selectate. Printre " "formatele de\n" "export disponibile se găsește CSV (format separat prin virgulă), HTML și " "iCalendar.\n" "Cînd exportați în HTML, se creează un fișier CSS care poate fi editat " "pentru\n" "a schimba aspectul fișierului HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Atribute personalizate pentru sarcini de poştă electronică." #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "Puteţi să modificaţi comportamentul comenzii de poştă electronică utilizând " "atribute personalizate\n" "în descrierea unei sarcini. Acele atribute trebuie să fie pe o linie " "separată. Atributele\n" "acceptate sunt 'cc' şi 'to'. Exemple:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Un fişier de sarcini poate fi deschis de mai multe instanţe ale %(name)s, " "care pot\n" "rula pe acelaşi calculator sau pe calculatoare diferite, de exemplu atunci " "când este\n" "partajat ìn reţea. Când salvaţi, %(name)s va comasa datele dvs. cu ceeace a " "fost\n" "salvat pe disc între timp. Conflictele sunt rezolvate automat, de obicei " "dându-se\n" "prioritate datelor dvs. Această soluţie este utilă în două cazuri:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Un singur utilizator, care deschide fişierul de sarcini pe mai multe " "calculatoare (la lucru,\n" "acasă, pe portabil)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" "Mai mulţi utilizatori care lucrează pe acelaşi fişier de sarcini, în acelaşi " "timp." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "Primul caz este cel mai comun si cel mai sigur. A doilea caz pote fi " "riscant.\n" "Cele mai multe protocoale de partajare în reţea nu suportă tipul de blocare " "\n" "al accesului la fişier care ar face utilizarea multiplă 100% sigură. În " "continuare \n" "găsiţi o listă cu protocoalele uzuale şi comportamentul lor în această " "situaţie." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Nici una dintre opţiunile de partajare discutate aici nu functionează 100%. " "Dacă doi utilizatori\n" "îşi salvează modificările într-un interval de citeva zecimi de secundă, " "datele vor fi pierdute." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "Acesta este cel mai comun protocol: partajările în Windows şi cele similare\n" "(Samba). Dacă server-ul şi clientul nu suportă anumite extensii, Task Coach " "nu va\n" "putea să detecteze automat când fişierul a fost modificat de altcineva." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Nu a fost încă testat." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Un mod popular de a accesa fişiere de pe mai multe calculatoare (vedeţi " "SpiderOak\n" "pentru o alternativă mai sigură). Schimbările fişierului de sarcini sunt " "detectate corect de %(name)s\n" "atunci cînd acesta este actualizat." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s se integrează cu mai multe aplicații\n" "de poștă electronică, prin „drag and drop”. Aceasta are câteva limitări: " "mesajele sunt\n" "copiate într-un director alături de fișierul %(name)s, ca și fișiere .eml și " "sunt\n" "ulterior deschise utilizând orice program asociat cu acest tip de fișier\n" "din sistemul dumneavoastră. Pe de altă parte, aceasta vă permite să " "deschideți aceste\n" "mesaje pe un sistem de operare care este diferit de cel inițial." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Programele de poştă electronică acceptate includ:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Datorită unei limitări a lui Thunderbird, nu puteți trage și pune mai\n" "multe mesaje din Thunderbird. Aceasta nu se aplică la Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" "Există două moduri prin care puteți atașa un e-mail la o sarcină; îl puteți:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" "Depune într-o sarcină, ori în arborele de sarcini, ori în lista de sarcini." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Depune în panoul atașamentului în editorul de sarcină." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Depunerea unui e-mail, în partea liberă a arborelui de sarcini sau\n" "listei de sarcini, creează o sarcină nouă. Subiectul ei este subiectul\n" "mesajului, iar descrierea ei va fi conținutul lui. În plus, mesajul va fi\n" "atașat automat la sarcina nou creată." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML este un protocol XML protocol conceput pentru sincronizarea\n" "mai multor aplicații cu un server. Un server popular cu sursă deschisă\n" "este Funambol. Clienți de \n" "sincronizare sînt disponibili pentru multe dispozitive și aplicații " "(Outlook, calculator\n" "de buzunar, iPod, iPhone, Evolution, etc...), cît și așa numiții " "„conectori”\n" "ce permit serverului să sincronizeze cu Exchange, Google Calendar,\n" "etc." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s dispune de suport integrat pentru client SyncML pe Windows și Mac " "OS X\n" "(cu condiția să utilizați binarele furnizate). Asta înseamnă că puteți " "configura\n" "%(name)s să sincronizeze cu același server SyncML cu care sincronizați " "Outlook\n" "și să aveți toate sarcinile și notițele Outlook în fișierul vostru %(name)s " "file,\n" "cît și sarcinile și notițete %(name)s în Outlook. Sau în calculatorul vostru " "de buzunar." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "Pentru Linux trebuie să instalaţi biblioteca Python pentru SyncML. Un pachet " "Debian pe 64 biţi pentru Python 2.7 este disponibil la\n" "taskcoach.org\n" "la sfârşitul secţiunii de descărcări pentru Linux." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Această funcționalitate este opțională și dezactivată implicit. Pentru a\n" "o activa mergeți în fereastra de preferințe și bifați-o în pagina de " "funcționalități." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Pentru a instala SyncML, editați preferințele SyncML în Editare/Preferințe \n" "SyncML.Completați adresa URL de sincronizare, ID-ul vostru de pe server și " "alegeți \n" "care din elemente să sincronizați (sarcini și/sau notițe). Adresa URL " "depinde de \n" "serverul ales; iată cîteva exemple:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Denumirile bazelor de date sînt destul de standard; valorile implicite \n" "ar trebui să meargă." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Fiecare fișier de sarcină are propriul ID client, astfel încît două fișiere " "\n" "diferite de sarcină vor fi considerate „dispozitive” diferite de către " "server." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Unele limitări sînt datorate faptului că, tipul de date care stă la bază \n" "fiind vcalendar, unele funcționalități %(name)s nu pot fi prezente pe \n" "server." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Ierarhia sarcinilor și categoriilor este pierdută." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Recurența și rapelurile nu sînt încă suportate." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Categoriile notițelor sînt pierdute." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Sistemul de detecție/rezolvare a conflictelor este în lucru \n" "din cauza unei limitări Funambol. Ar trebui să funcționeze în majoritatea " "cazurilor, dar dacă mai multe \n" "aplicații se sincronizează cu același server în același timp, pot apărea \n" "probleme." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Probabil și altele..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Elementele din meniul SyncML sînt prezente numai dacă platforma voastră \n" "este suportată. Platformele suportate curent sînt:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 de biți (vezi mai jos)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 de biți" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 și superior, ambele Intel și PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Puteți întîmpina probleme pe Windows dacă nu aveți instalat motorul de \n" "execuție Microsoft Visual 8. Îl puteți descărca de pe\n" "situl Microsoft de descărcări." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Cînd SyncML este activat, ștergerea unei sarcini sau a unei notițe nu este\n" "o ștergere efectivă, doar o marcare ca element șters. Sarcina sau notița " "ștearsă \n" "este în realitate înlăturată din lista de sarcini sau notițe la viitoarea " "sincronizare. Pentru \n" "acest motiv, dacă folosiți funcționalitatea SyncML, apoi o dezactivați fără " "a face o \n" "sincronizare, vă puteți trezi cu notițe și sarcini șterse din fișierul " "vostru de sarcini. \n" "Acest lucru nu este o problemă, doar că fișierul va ocupa ceva mai mult " "spațiu pe disc." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "În acest caz, opțiunea „Curăță elementele șterse” din meniul „Fișier” \n" "poate fi utilizată pentru ștergerea efectivă a acestor sarcini. Este activat " "numai\n" "cînd aveți nevoie de ea, adică atunci cînd sînt elemente de curățat. " "Atenție,\n" "după ce ați făcut asta, dacă reactivați SyncML și sincronizați cu serverul " "utilizat\n" "precedent, toate acele elemente vor reapărea, pentru că serverul nu știe că " "au\n" "fost șterse." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch și iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s pe iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Există o aplicație iPhone/iPod Touch pentru %(name)s, disponibilă pe \n" "Apple AppStore. (Dacă nu aveți iTunes instalat pe " "\n" "calculator, veți fi trimis la o pagină de unde puteți descărca iTunes).\\" "n\"\n" "Aplicația dispune de următoarele funcționalități:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Atribute de bază ale sarcinii: subiect, descriere, date (cu \n" "recurență)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Sarcini ierarhizate și categorii" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Gestionarea timpului" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Fișiere multiple de sarcini" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Sincronizare în ambele sensuri cu %(name)s pe birou" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "Aplicația este universală și are o interfață iPad personalizată." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Configurarea pe iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Sînt cîteva configurări pentru aplicația iPhone/iPod Touch/iPad în \n" "aplicația Settings:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Arată terminate: dacă să se afișeze sarcinile terminate." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Afişează sarcinile inactive: dacă va afişa sarcinile inactive (data " "planificată de început \n" "este în viitor)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Poziția pictogramei: pictograma LED poate apărea fie pe partea \n" "stîngă sau dreaptă a ecranului." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Mod compact: dacă este activat, lista de sarcini are LED-uri mai \n" "mici și nu afișează categorii sau date." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Confirmare de terminare: dacă este activată, o căsuță de dialog va apărea \n" "pentru confirmare cînd marcați o sarcină terminată prin apăsarea LED-ului " "său." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# zile scadente curînd: cîte zile în viitor sînt considerate \n" "„curînd”." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Configurarea biroului, toate platformele" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Înainte de sincronizare, trebuie să configurați %(name)s pe birou; în\n" "preferințe, în categoria „Funcționalități”, bifați „Activează sincronizarea\n" "iPhone”. Reporniți %(name)s. Acum, în preferințe, alegeți categoria \n" "„iPhone” și introduceți cel puțin parola." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Cînd apăsați butonul „Sync” din categoria de vizualizare, %(name)s\n" "va detecta automat instanțele de %(name)s ce rulează pe biroul vostru\n" "și vă va cere să selectați una (puteți avea mai multe instanțe lansate\n" "pe diferite calculatoare din rețea, sau mau multe instanțe pe același\n" "calculator). Numele afișat este, implicit, un șir prin care se identifică\n" "mașina pe care rulează. Pentru a personaliza acest lucru, puteți\n" "modifica „Serviciul de nume Bonjour” din configurare." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s își va aminti instanța aleasă și o va încerca data\n" "viitoare cînd sincronizați; dacă nu rulează, vă va solicita din nou." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Notați că sincronizarea se face prin rețea; nu este nevoie ca\n" "dispozitivul să fie conectat prin USB, nici ca iTunes să ruleze." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Configurarea pe Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Pe Windows trebuie să instalați Bonjour pentru Windows și\n" "să-l deblocați cînd sînteți întrebat de către parafoc." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Configurarea pe Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "Pe Linux, trebuie să aveți instalat și să rulați demonul \n" "Avahi. Majoritatea distribuțiilor actuale " "îl au deja. Trebuie \n" "să mai instalați și pachetul dnscompat; numele său depinde de distribuția " "voastră \n" "(libavahi-compat-libdnssd1 pe Ubuntu de exemplu)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Se pare că nu găsesc aplicația iPhone/iPod Touch pe situl \n" "Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Trebuie să aveți instalat iTunes pe calculator pentru a naviga prin \n" "magazinul de aplicații Apple. \n" "Obțineți iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Calculatorul menu nu apare în listă cînd încerc să sincronizez" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Verificați dacă iPhone/iPod Touch este conectat în aceiași rețea WiFi ca și " "\n" "calculatorul vostru." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone nu se poate conecta la calculatorul meu" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Dacă aveți un parafoc, verificați dacă porturile 4096-4100 sînt deschise." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Nu, %(name)s nu este disponibil pentru platforma Android. Dar,\n" "Todo.txt Touch este. \n" "Puteți exporta sarcinile dumneavoastră din %(name)s în Todo.txt \n" "format și apoi să editați sarcinile pe dispozitivul dumneavoastră " "Android." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt este un manager de liste „open source”, creat de către Gina \n" "Trapani, care utilizează fișiere text. Todo.txt are o interfață prin linie " "de comandă. \n" "Dar, din moment ce fișierele conţin text lizibil, puteți să vă editați \n" "sarcinile cu orice editor de text. Todo.txt Touch este o versiune a Todo.txt " "pentru \n" "platforma Android. Todo.txt Touch utlizează un fișier todo.txt care se " "găseşte în\n" "folderul dumneavoastră Dropbox. %(name)s poate să importe și să exporte în " "și din acel fișier \n" "todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "Cînd exportă în Todo.txt, %(name)s crează un alt fişier alături, având " "sufixul\n" "\"-meta\". Nu ştergeţi acest fişier; %(name)s îl foloseşte pentru a urmări \n" "schimbările sarcinilor efectuate din exterior. Cînd apare un conflict (o " "sarcină\n" "este modificată de Task Coach si de o aplicaţie externă în timpul " "importului),\n" "fişierul Todo.txt are prioritate." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "Un sfat: dacă salvaţi fişierul de sarcini în directorul 'todo' pe care " "Todo.txt\n" "Touch îl crează în dirctorul dvs. din Dropbox, şi activaţi importul şi \n" "exportul automat al Todo.txt, %(name)s va menţine fişierul de sarcini şi \n" "fişierul todo.txt sincronizate. Remarcaţi că va mai fi creat un fişier, care " "va fi denumit după fişierul .txt\n" "la care se adaugă '-meta'. Acesta este utilizat intern de catre %(name)s\n" "pentru a urmări ce s-a schimbat în fiăşierul .txt; nu modificaţi\n" "si nu ştergeţi acest fişier." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importă subiectele sarcinilor, datele de început, de scadenţă, de " "încheiere, \n" "priorităţile, contextele şi proiectele. Contextele şi proiectele sunt ambele " "\n" "transformate in categorii in %(name)s. Proiectele nu pot fi transformate in " "\n" "sarcini părinte pentru că, în timp ce Todo.txt permite sarcinilor să " "aparţină mai multor proiecte, \n" "%(name)s permite numai un singur părinte per sarcină." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Când importă, %(name)s încearcă să găsească operațiile și categoriile \n" "compatibile pe care le actualizează în locul creării altora noi. Potrivirea " "se face\n" "analizând subiectul sarcinii (ori al proiectului sau al contextului) și al " "elementului\n" "părinte, dacă acesta există." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exportă subiectele sarcinilor, data de început planificată, datele " "de scadenţă şi încheiere, \n" "prioritatea şi categoriile în format Todo.txt. Celelalte atribute nu sunt\n" "exportate." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s suportă date și ore, dar Todo.txt suportă doar \n" "date, așa că partea orară a datei de început, a celei de scadenţă și de " "încheiere nu este\n" "exportată." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Formatul implicit al Todo.txt suportă numai date de început planificate şi \n" "date de încheiere, dar nu şi date de scadenţă. Ca atare, %(name)s foloseşte " "o extensie pentru\n" "a exporta datele de scadenţă ale sarcinilor. Datele de scadenţă sunt afişate " "ca \"due:YYYY-MM-DD\" în\n" "fişierul todo.txt." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt are prioritățile sub forma unei litere („A” - „Z”). \n" "%(name)s are priorități numerice. Prioritatea 1 a %(name)s este transformată " "în „A”,\n" "2 devine „B”, etc., și 26 este „Z”. Prioritățile sub 1 și peste 26 ale " "%(name)s\n" "nu sunt exportate." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Categoriile ale căror subiect începe cu un „+” sunt exportate ca proiecte. \n" "Categoriile ale căror subiect începe cu un „@” sunt exportate ca și context. " "\n" "Categoriile ale căror subiect nu începe cu „+” sau „@” nu sunt exportate. \n" "Subcategoriile sunt exportate dacă și categoria superioară este exportată." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Șabloanele sînt planurile pentru noile sarcini. Chiar acum, singurele \n" "proprietăți ale sarcinii ce pot fi „parametrizate” sînt datele. Cînd " "instanțiați \n" "un șablon, sarcina creată are datele înlocuite cu date relative la data \n" "curentă." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Puteți crea un șablon prin selectarea unei (singure) sarcini și faceți clic " "\n" "pe elementul \\\"Salvează sarcina ca șablon\\\" din meniul fișier. Toate " "subsarcinile, \n" "notițele și atașamentele \"vor face parte din șablon. Numai categoriile nu " "sînt salvate." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Puteţi crea un şablon nou dintr-un fişier şablon pre-existent \n" "(.tsktmpl); selectaţi \"Importă şablon\" din meniul \"Fişier\" şi apoi " "selectaţi fişierul. \n" "Fişierele şablon sunt păstrate într-un subdirector al directorului unde se " "află TaskCoach.ini." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Pentru a crea o nouă instanţă a unui şablon de sarcină, folosiţi \"Sarcină " "nouă din \n" "şablon\" din meniul Nou, sau butonul corespunzător din bara cu unelte. Când " "\n" "sarcina este creată, datele de scadenţă, început si încheiere, dacă există, " "sunt \n" "recalculate relativ la data curentă. Ca atare, dacă generaţi un şablon \n" "pornind de la o sarcină care începe azi şi este scadentă mâine, de fiecare " "dată când \n" "veţi crea o instanţă a acelui şablon, data de început planificată va fi " "înlocuită cu data curentă, \n" "iar data de scadenţă cu data curentă plus o zi." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Puteți deasemenea adăuga șabloane precum și edita proprietățile de bază\n" "ale șablonului (dată și subiect) cu editorul de șabloane (Fișier/Editare\n" "șabloane). Datele sunt furnizate într-un format ușor de înțeles; editorul de " "dată\n" "va deveni roșu dacă %(name)s nu poate interpreta datele introduse. Exemple\n" "de date:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Nu uitați că sistemul nu este localizat; trebuie să introduceți\n" "datele în engleză." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Puteţi muta modulele de vizualizare pentru a crea aproape orice aranjament " "al interfeţei cu utilizatorul \n" "doriti. Cind începeţi să deplasaţi (\"trageţi\" de) un modul de vizualizare, " "aplicatia va afişa indicaţii\n" "pentrua vă arăta unde puteţi să plasaţi modulul. Modulele de vizualizare pot " "fi plasate unul peste altul\n" "pentru a crea \"carnete\"." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "În dialogurile de editare, puteţi deplasa (trage) filele (\"tabs\") pentru a " "le rearanja \n" "în ordinea care vă convine sau a le plasa una lângă alta." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Subiectele şi descrierile sarcinilor, notele si categoriile pot fi\n" "editate fără a deschide un dialog. Selectaţi elementul al cărui subiect ori\n" "descriere vreţi s-o schimbaţi si faceţi clic încă o dată, fie pe subiect,\n" "fie pe descriere. Textul corespunzător va deveni activ şi va putea fi " "editat. \n" "Apăsaţi tasta \"Enter\" pentru a confirma schimbările. Apăsaţi \n" "tasta \"Esc\" pentru a anula schimbările. F2 este tasta activă pentru a " "edita direct \n" "subiectul." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s are cîteva taste rapide, listate mai jos. Tastele \n" "rapide nu sînt configurabile pentru moment." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux şi Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux și Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux și Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Inserează un subelement nou" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Editați elementele selectate sau închideți dialogul" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Marchează sarcinile selectate ca (ne)terminate" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Anulează un dialog sau mută focalizarea tastaturii de la controlul căutării " "înapoi la vizualizator" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Mută focalizarea tastaturii la cîmpul următor din dialog" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Mută focalizarea tastaturii la cîmpul precedent din dialog" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" "Mută focalizarea tastaturii în tabul următor din controlul carnețelului" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" "Mută focalizarea tastaturii în tabul precedent din controlul carnețelului" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Meniu pop-up sau casetă derulantă" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Editaţi subiectul elementului selectat într-un modul de afişare" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Versiune %(version)s, %(date)s
    \n" "

    De %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s este dezvoltat în mod activ. Deși dezvoltatorii %(name)s încearcă " "din greu să le prevină, erorile se pot ivi. Deci, salvarea muncii voastre de " "manieră regulată este recomandată." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s are un forum unde puteți discuta experienta de lucru cu %(name)s cu " "alti utilizatori, puteți discuta și cere funcții noi precum și să vă " "plângeți de erori ale aplicatiei. Mergeți la %(url)s și alăturați-vă astăzi!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s are desfaceri și refaceri nelimitate. Fiecare schimbare pe care o " "faceți, fie editarea descrierii unei sarcini, sau ștergerea unui efort " "înregistrat, sînt ireversibile. Selectați „Editare” -> „Desfă” și „Editare” -" "> „Refă” pentru a merge înainte și înapoi prin istoricul vostru de editare." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s este disponibil în mai multe limbi. Selectați „Editare” -> " "„Preferințe” să vedeți dacă limba voastră este printre ele. Dacă nu este " "disponibilă, sau traducerea necesită îmbunătățiri, ne puteți ajuta la " "traducerea lui %(name)s. Vizitați %(url)s pentru informații suplimentare " "despre cum ne puteți ajuta." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Dacă introduceți o adresă URL (ex: %(url)s) în descrierea unei sarcini sau a " "unui efort, aceasta devine o legătură. Făcînd clic pe legătură se va " "deschide adresa URL în navigatorul vostru implicit." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Puteți trage și pune sarcinile în vederea arborescentă pentru a rearanja " "relațiile părinte-copil dintre sarcini. Funcționează la fel și pentru " "categorii." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Puteți trage fișiere dintr-un explorator într-o sarcină pentru a crea " "atașamente. Tragerea fișierelor peste un tab va deschide pagina " "corespunzătoare, tragerea fișierelor peste o sarcină colbatată din vederea " "arborescentă va expanda sarcina și-i va afișa subsarcinile." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Puteți crea orice dispunere de ferestre prin tragerea și plasarea taburilor. " "Dispunerea este salvată și reutilizată în sesiunea viitoare." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Ce este tipărit cînd selectați „Fișier” -> „Tipărește” depinde de afișarea " "curentă. Dacă vederea curentă afișează lista de sarcini, o listă de sarcini " "va fi tipărită; dacă vederea curentă afișează regruparea efortului pe lună, " "aceasta se va tipări. Funcționează la fel cu coloanele vizibile, ordinea de " "sortare, sarcinile filtrate, etc." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Faceți clic stînga pe antetul unei coloane pentru a sorta după acea coloană. " "Faceți din nou clic pe antetul coloanei pentru a schimba ordinea sortării " "din ascendentă în descendentă și invers. Faceți clic dreapta pe antetul unei " "coloane pentru a o ascunde sau să faceți vizibile coloanele adiționale." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Puteți crea un șablon dintr-o sarcină în scopul de a reduce tastarea cînd " "apar modele repetitive." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab comută între categorii în dialogurile de editare." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Sfatul zilei" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Sfatul următor" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Afişează fereastra cu sfaturi la pornire" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "Căutați fișiere pentru a le adăuga ca atașamente la elementele selectate" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Adaugă o notiță la elementele selectate" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Inserează o categorie nouă" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Taie elementele selectate în cliplanșetă" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Copiază elementele selectate în cliplanșetă" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Lipește elementele din cliplanșetă" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Lipește elementele din cliplanșetă ca subelement al elementului selectat" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Editare preferințe" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Refă ultima comandă desfăcută" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Selectează toate elementele din afișarea curentă" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Desfă ultima comandă" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Adaugă o perioadă de efort pentru sarcinile selectate" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Pornește urmărirea efortului pentru sarcinile selectate" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Oprește sau reia înregistrarea efortului" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Închide fișierul curent" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Ieșire %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Deschide un fișier %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Salvează fișierul curent" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Îcarcă ceeace s-a schimbat pe disc." #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Salvează fișierul curent sub un nou nume" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Ajutor despre program" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" "Trimiteți pe e-mail elementele selectate, utilizînd aplicația implicită de " "poștă electronică" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Inserează o notiță nouă" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Deschide toate atașamentele elementelor selectate" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Deschide toate notițele elementelor selectate" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Tipărește fișierul curent" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Configurați caracteristicile paginii de tipărit" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Arată toate elementele (resetează toate filtrele)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Afișează toate elementele indiferent de categorie" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Mută focalizarea tastaturii de la vizualizator la controlul căutării" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Decrementează prioritatea sarcinilor selectate" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Incrementează prioritatea sarcinilor selectate" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Dă prioritatea cea mai mare sarcinilor selectate" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Dă prioritatea cea mai mică sarcinilor selectate" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Inserează o sarcină nouă" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Colbatează toate elementele cu subelemente" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Expandează toate elementele cu subelemente" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Activează următoarea vedere deschisă" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Activează precedenta vedere deschisă" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Un iPhone sau iPod Touch a încercat să se conecteze la Task Coach,\n" "dar nu este configurată nici o parolă. Configurați o parolă în secțiunea\n" "iPhone a configurării și încercați din nou." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Versiune protocol: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Versiunea protocolului respins %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Nume dispozitiv: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Trimitere fișier: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Complet de pe birou." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d categorii" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Trimite categoria %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Răspuns: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d sarcini" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Trimite sarcina %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d eforturi" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Trimite efortul %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Încheiat." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d categorii noi" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d sarcini noi" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d eforturi noi" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d categorii modificate" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d sarcini modificate" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d eforturi modificate" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d categorii șterse" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d sarcini șterse" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d eforturi șterse" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Cetegorie nouă (părinte: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Șterge categoria %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Modifică categoria %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Sarcina nouă %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Șterge sarcina %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Modifică sarcina %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Sfârşitul operaţiei de sincronizare a sarcinilor." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Sarcina %s corespunzătoare efortului nu poate fi găsită." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Efortul nou %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Modifică efortul %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Trimitere GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Programul citeşte informaţia de poştă..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Programul citeşte informaţia de poştă. Vă rugăm să aşteptaţi." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Dosarul de date al Thunderbird nu a fost găsit" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Profilul Thunderbird nu a fost găsit." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Nu exista o secțiune implicită în profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Identificator intern Thunderbird eronat:\n" "%s. Vă rugăm să raportaţi despre 'bug'." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Dosarul pentru ID nu a fost găsit\n" "%s.\n" "Va rog trimiteti o descriere a erorii de program intalnita." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Schemă URL nerecunoscută: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Nu se poate stabili conexiunea IMAP cu %(server)s:%(port)s\n" "pentru a prelua mesajul de poştă electronică Thunderbird:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Introduceţi numele domeniului pentru utilizatorul %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Căsuța de recepție nu a putut fi selectată „%s” \n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Poşta electronică nu există: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Timpul (ora) de început efectiv" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Timpul (ora) de început planificat" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Timpul (ora) la care trebuie completată" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Timpul (ora) la care a fost completată" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Timpul (ora) memento-ului" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Timpul (ora) la care a fost creată" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Data de sfârşit a perioadei" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Timpul (ora) de sfârşit a perioadei" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Data de început a perioadei" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Timpul (ora) de început a perioadei" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Fără subiect" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Sarcină nouă scadentă astăzi" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Sarcină nouă scadentă mîine" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d zile" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 zi" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Fiecare %(frequency)d zile" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Fiecare %(frequency)d săptămîni" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Fiecare %(frequency)d luni" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Fiecare %(frequency)d ani" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Orice altă zi" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Orice altă săptămînă" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Orice altă lună" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Orice alt an" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Ieri" #: taskcoachlib/render.py:284 msgid "now" msgstr "acum" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Sincronizarea pentru sursa %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "va fi o împrospătare de pe server. Toate elementele\n" "locale vor fi șterse. Doriți să continuați?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "va fi o împrospătare de pe client. Toate elementele\n" "distante vor fi șterse. Doriți să continuați?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Sincronizare" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Se sincronizează. Așteptați vă rog.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d elemente adăugate.\n" "%d elemente actualizate.\n" "%d elemente șterse." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "O eroare s-a produs în sincronizare.\n" "Cod de eroare: %d; mesaj: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Trebuie mai întîi să vă editați configurările SyncML, în Editează/Preferințe " "SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Comutator de panou" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Restaurează %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Panou de previzualizare" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "În&chide" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Închide tot" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "Î&nainte" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "Îna&poi" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Fereastră" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Editează" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d săptămâni" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d ore" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Terminat" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Tipul perioadei afișate și durata sa" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Lună" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientarea calendarului" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Orizontal" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertical" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Care sunt sarcinile de afişat" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Sarcini care au o dată de început planificată şi o dată de scadenţă" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Sarcini care au o dată de început planificată" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Sarcini care au o dată de scadenţă" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Toate sarcinile" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Toate sarcinile, mai puţin cele neplanificate" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Desenează o linie arătînd ora curentă" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Culoarea utilizată pentru evidențierea zilei curente" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Toate fișierele (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Antete" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Numărul săptămânii" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Durata clendarului" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Săptămână" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Săptămână de lucru" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Parolă:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Păstrează în inelul de chei" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "A apărut o problemă în timp ce aplicaţia încerca să găsească \"cheile\" " "(sistemul securizat de administrare al parolelor) pe sistemul dvs.\n" "Vă rugăm sa raportaţi o eroare (\"bug\" - vedeţi în meniul Ajutor) şi să " "ataşaţi o imagine a ecranului cu acest mesaj.\n" "Eroarea a fost:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Introduceți parola." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Introduceți parola" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "Sensibil la &majuscule" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Sensibil la majuscule în filtrare" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Include subelementele" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" "Include în rezultatele căutării subelementele elementelor corespunzătoare" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "Caută și în de&scriere" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Caută în subiecte și descrieri" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Expresie no&rmală" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Trataţi textul căutat ca pe o expresie normală" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Aceasta este o expresie regulată invalidă." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Căutare implicită de subșiruri." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Căutări recente" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Căutare imposibilă în această vedere" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Avertisment de compatibilitate" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Funcționalitatea SyncML este dezactivată, deoarece\n" "modulul nu poate fi încărcat. Asta poate din cauză că\n" "platforma voastră nu este suportată, sau pe Windows, vă\n" "lipsesc DLL-uri obligatorii. Consultați secțiunea SyncML a\n" "ajutorului online pentru detalii (sub \"Troubleshooting\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Nu mai arăta deloc acest dialog" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Eroare la deschiderea URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Șterge\tDEL" taskcoach-1.4.3/i18n.in/ru.po000077500000000000000000010404501265347643000156520ustar00rootroot00000000000000# Task Coach # Copyright (C) 2004-2005 Frank Niessink # Frank Niessink , 2005. # msgid "" msgstr "" "Project-Id-Version: Task Coach\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:29+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: ru\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Произошла ошибка. Подробности в файле \"taskcoachlog.txt\" в папке " "\"Документы\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Ошибка" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Произошла ошибка. Детали смотрите в \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Невозможно загрузить настройки из TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "ошибка файла %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "\"%s\" перешёл на верхний уровень, так как родительская задача была локально " "удалена." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Обнаружены конфликты с \"%s\".\n" "Была использована локальная версия." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Редактировать путь к вложениям" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Редактировать путь к вложению \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Добавить вложение" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Добавить вложение к \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Новое вложение" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Удалить вложение" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Удалить вложение \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Копировать" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Копировать \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Удалить" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Удалить \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Вырезать" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Вырезать \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Вставить" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Вставить \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Вставить как вложенный элемент" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Вставить как вложенный элемент \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Перетащить" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Перетащить \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Изменить темы" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Изменить тему \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Редактировать описания" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Редактировать описание \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Изменить иконки" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Изменить иконку \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Изменить шрифты" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Изменить шрифт \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Изменение цвета переднего плана" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Измененить цвет переднего плана \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Изменение цвета заднего плана" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Измененить цвет заднего плана \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Переключить категорию" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Изменить категорию \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Новая категория" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Новые подкатегории" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Новая подкатегория \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Новая подкатегория" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Редактировать взаимоисключающие категории" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Редактировать взаимоисключающие категории \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Удалить категории" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Удалить категорию \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Перетащить категории" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Новые учёты" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Новый учёт \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Удалить учёты" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Удалить учёт \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Изменить задачу работы" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Изменить задачу работы \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Изменить начальную дату и время работы" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Изменить начальную дату и время работы \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Изменить дату и время окончания работы" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Изменить дату и время окончания работы \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Новая заметка" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Новые подзаметки" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Новая подзаметка \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Новая подзаметка" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Удалить заметки" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Удалить заметку \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Перетащить заметки" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Перетащить заметку \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Добавить заметку" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Добавить заметку к \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Добавить подзаметку" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Добавить подзаметку для \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Удалить заметку" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Удалить заметку из \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Перетащить задачи" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Удалить задачи" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Удалить задачу \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Новая задача" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Новые подзадачи" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Новая подзадача \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Новая подзадача" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Отметить задачу как завершённую" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Отметить \"%s\" как завершённую" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Отметить задачу как активную" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Отметить \"%s\" как активную" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Отметить задачу как неактивную" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Отметить \"%s\" как неактивную" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Начать учет" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Начать отслеживание \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Остановить учет" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Завершить отслеживание \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Установить максимальный приоритет" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Максимизировать приоритет \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Установить минимальный приоритет" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Минимизировать приоритет \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Увеличить приоритет" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Увеличить приоритет \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Уменьшить приоритет" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Уменьшить приоритет \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Изменить приоритет" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Изменить приоритет \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Добавить заметку к задаче" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Изменить плановую дату начала" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Изменить плановую дату начала для \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Изменить срок" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Изменить срок \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Изменить фактическую дату начала" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Изменить фактическую дату начала \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Изменить дату выполнения" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Изменить дату выполнения \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Изменить дату/время надпоминания" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Изменить дату/время надпоминания \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Изменить повторы" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Изменить повтор \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Изменить процент выполнения \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Изменить когда задачи завершатся" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Изменить когда задача \"%s\" завершится" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Изменить бюджеты" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Изменить бюджет \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Изменить почасовую оплату" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Изменить почасовую оплату \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Изменить фиксированную оплату" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Изменить фиксированную оплату \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Переключить предзадачу" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Переключить предзадачу \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Ошибка при чтении настроек %s-%s из файла %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Значение: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Ошибка: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s будет использовать значение по умолчанию для параметра и должно работать " "нормально." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Ошибка настроек" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Ошибка сохранения %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Ошибка сохранения" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Сообщение Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Новое вложение..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Вставить новое вложение" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Открыть вложение" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Открыть выделенное вложение" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 минут" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Не откладывать" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 минут" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 минут" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 минут" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 минут" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 часа" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 минут" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 час" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 часа" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 часа" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 часа" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 часов" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 часов" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 часов" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 часов" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 часа" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 часов" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 часа" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 недели" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 неделя" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Всего" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Всего для %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "Новая работа над задачей...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Неактивные задачи" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Скрыть неактивные задачи" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Неактивные задачи: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Показать/скрыть неактивные задачи (незавершённые задачи без фактической даты " "начала)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Устаревшие задачи" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Скрыть устаревшие задачи" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Устаревших задач: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Показать/скрыть устаревшие задачи (неактивные задачи с плановым началом в " "прошлом)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Активные задачи" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Активные задачи: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Скрыть активные задачи" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Показать/скрыть активные задачи (незавершённые задачи с фактической датой " "начала в прошлом)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Истекающие задачи" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Истекающих задач: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Скрыть истекающие задачи" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Показать/скрыть задачи с истекающим сроком завершения (незавершенные задачи " "с датой завершения в ближайшем будущем)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Просроченные задачи" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Скрыть просроченные задачи" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Просроченных задач: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Показать/скрыть просроченные задачи (незавершенные задачи с датой завершения " "в прошлом)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Завершённые задачи" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Выполненные задачи: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Скрыть завершённые задачи" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Показать/скрыть выполненные задачи" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Новая задача..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Стрелка вниз" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Стрелка вниз с состоянием" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Синие зацикленные стрелки" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Зелёные зацикленные стрелки" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Стрелка вверх" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Стрелка вверх с состоянием" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Бомба" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Книга" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Книги" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Простая рамка" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Божья коровка" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Пирожное" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Калькулятор" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Календарь" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Кошка" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Компакт-диск (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Диаграммы" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Общение" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Галочка" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Галочки" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Часы" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Таймер" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Секундомер" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Зубчатое колесо" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Зубчатые колеса" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Настольный компьютер" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Портативный компьютер" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Наладонный компьютер" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Красный крест" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Игральная кость" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Документ" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Голубая Земля" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Зелёнбая Земля" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Конверт" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Конверты" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Голубая папка" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Светло-голубая папка" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Зелёная папка" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Серая папка" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Оранжевая папка" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Фиолетовая папка" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Красная папка" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Жёлтая папка" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Голубая папка со стрелкой" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Сердце" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Сердца" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Зелёный дом" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Красный дом" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Ключ" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Ключи" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Лампа" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Знак вопроса" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Информация" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Голубой диод" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Светлоголубой диод" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Серый диод" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Зелёный диод" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Светлозелёный диод" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Оранжевый диод" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Фиолетовый диод" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Красный диод" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Желтый диод" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Жизненный цикл" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Закрытый замок" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Открытый замок" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Увеличительное стекло" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Фортепьяно" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Нота" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Примечание" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Палитра" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Скрепка" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Карандаш" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Человек" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Участники" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Идентификатор" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Говорящий человек" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Предупреждающий знак" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Минус" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Плюс" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Красная звёздочка" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Жёлтая звёздочка" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Светофор" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Корзина" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Молния" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Зонт" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Частично солнечно" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Гаечный ключ" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Без значка" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Файл" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Полный путь" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Дата" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Восстановить" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Закрыть" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Сообщение от разработчиков %s" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "См.:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Описание" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Редактировать чтобы изменить все темы" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Тема" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Изменить, чтобы изменить все описания" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Дата создания" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Дата изменения" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Приоритет" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Взаимоисключающие" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Подкатегории" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Изменить, чтобы изменить расположение всех вложений" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Выбрать" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Расположение" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Оформление" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Основной цвет" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Цвет фона" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Шрифт" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Значок" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Даты" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Плановое начало работ" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Срок" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Фактическая дата начала" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Дата выполнения" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Напоминание" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Повтор" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Прогресс" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Подсчёт процентов выполнен" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Использовать глобальные установки" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Нет" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Да" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Отметить задачу как выполненную при выполнении всех подзадач?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Бюджет" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Потраченное время" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Остаток бюджета" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Почасовая оплата" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Фиксированная оплата" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Доход" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Работа над задачей" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Категории" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Вложения" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Заметки" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Предзадачи" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Редактировать задачу" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Задача" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Начать" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Неделя (Недели)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "День (Дней)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Час(ов)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Минута(ы)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Остановить" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Начать учет с времени последней остановки" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Остановить учёт работы сейчас" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Внимание: начало должно быть раньше завершения" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Несколько задач" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (задача)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Несколько категорий" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (категория)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Несколько заметок" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (заметка)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Несколько вложений" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (вложение)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Несколько работ" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (работа над задачей)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Использовать шрифт:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Использовать цвет:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Отсутствует" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Ежедневно" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Ежемесячно" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Еженедельно" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Ежегодно" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "придерживаться дат той же недели" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", каждые" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Остановить после" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "повторения" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Планировать повторы, основываясь на" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "предыдущий запланированный старт и/или срок" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "последняя дата выполнения" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "дней," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "период," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "недель," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "месяц(ы)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "лет," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Экспортировать элементы из:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Экспортировать только выбранные позиции" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Столбцы для экспорта:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Установите дату и время задачи - каждую в своих колонках" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Записать информацию о стиле в отдельный CSS файл" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Если для экспортируемого файла существует CSS-файл, то %(name)s его не " "перезапишет. Это позволяет Вам изменять информацию стилей без потери её при " "следующем экспорте." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Экспортировать в CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Экспортировать в iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Экспортировать в HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Экспорт в Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Устройство Iphone или Ipod пытается синхронизироваться с файлом задач в " "первый раз. Какой тип синхронизации использовать?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Обновить с рабочего стола" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Обновить с устройства" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Отмена" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "У вас включена опция синхронизации с iPhone, которая\n" "требует Bonjour. Bonjour, кажется, не установлен в\n" "вашей системе." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Пожалуйста загрузите и установите Bonjour для Windows с\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "сайта Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Поддержка Bonjour для Linux обычно предоставляется \n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Вы можете найти подробности для своего дистрибутива здесь" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Заметьте, что в некоторых системах (Fedora), вам придется установить пакет " "Avahi-Compat libdns_sd, а также Avahi для того, чтобы это работало." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Дополнительно, если установлен файервол, проверьте, что порты 4096 - 4100 " "открыты." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "ОК" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Этот параметр вступит в силу после перезагрузки %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Этот параметр может быть переопределен для отдельных задач\n" "в диалоге редактирования." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Файлы" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Автосохранение после каждого изменения" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Автозагрузка при изменении файла на диске" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Интеллектуальный мониторинг файловой системы" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Пробовать обнаруживать изменения в файле задач в реальном времени.\n" "Не отмечайте, если ваш файл задач находится на сетевом ресурсе.\n" "Вы должны перезагрузить %s после этого изменения." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Сохранить настройки (%s.ini) в том же\n" "каталоге, где и программа" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Для запуска %s с переносных устройств" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Базовый каталог вложений" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "При добавлении вложения постарайтесь чтобы\n" "его путь был относительным к этому." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Перед сохранением, автоматически импортировать из" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Формат Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Перед сохранением %s автоматически импортирует задачи\n" "из файла формата Todo.txt с тем же именем, что и файл задач,\n" "но с расширением .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "После сохранения, автоматически экспортировать в" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "При сохранении %s автоматически экспортирует задачи\n" "в файл Todo.txt с тем же именем, что и файл задач,\n" "но с расширением .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Поведение окна" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Показывать заставку при запуске" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Показывать окно подсказок при запуске" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Автоматически минимизировать в системный трэй" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Всегда" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Никогда" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Если это была последняя сессия, свернутая в пиктограмму" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "При старте проверять новую версию %(name)s" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Проверять сообщения от разработчиков %(name)s при запуске" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Скрывать главное окно при сворачивании на панель задач" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Сворачивать главное окно при закрытии" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Отображать ход времени на панели задач при включенном учете работы над " "задачей" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Язык" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Пусть система определит язык" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Если перевод на ваш язык не доступен или он нуждается в улучшении, " "пожалуйста, подумайте о помощи. См.:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Язык не найден?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Вид задач" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Эти параметры отображения могут быть переопределены для отдельных задач в " "диалоге редактирования." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Особенности" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Все параметры на этой вкладке требуют перезапуска %s для вступления в силу" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Включить SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Включить синхронизацию с iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Использовать управление сессиями X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Начало рабочей недели" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Понедельник" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Воскресенье" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Время начала рабочего дня" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Время окончания рабочего дня" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Конец дня" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Использовать градиент при показе календаря.\n" "Это может замедлить Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Минут между предлагаемым временем" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "В выпадающих меню для выбора времени (например, для \n" "установки времени начала работы) %(name)s будет предлагать \n" "время с помощью этого параметра. Чем меньше количество \n" "минут, чем больше промежутков предлагается. Вы также можете \n" "ввести любое удобное для вас время кроме предлагаемых." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Напоминание о времени простоя" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Если нет действий пользователя в течение этого времени \n" "(в минутах), %(name)s запросит, что делать с текущей работой." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Время в десятичном формате для учёта времени." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Показывать один час пятнадцать минут как 1.25 вместо 1:15\n" "Это полезно при создании счетов." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "При наведении на элемент показывать подсказку\n" "с его описанием" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Даты задачи" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Отмечать задачи как выполненные при выполнении всех подзадач" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Число часов, которое означает, что задачи \\\"скоро завершатся\\\"" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Ничего" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Изменение плановой даты начала изменит дату срока" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Изменение даты срока изменит плановую дату начала" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Действия для плановой даты начала и даты срока, если одна из них изменится" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Предустановка" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Предлагать" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Сегодня" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Завтра" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Послезавтра" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Следующая пятница" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Следующий понедельник" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Начало дня" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Начало рабочего дня" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Текущее время" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Конец рабочего дня" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Дата и время по умолчанию для плановой даты начала" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Дата и время срока по умолчанию" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Дата и время по умолчанию для фактической даты начала" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Дата и время завершения по умолчанию" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Дата и время напоминания по умолчанию" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Новые задачи создаются с заполненными и отмеченными \"предустановленными\" " "датами и временем. \"Предлагаемые\" даты и время также заполняются, но не " "отмечаются.\n" "\"Начало дня\" означает полночь, \"Конец дня\" - за секунду до полуночи. При " "их использовании время в обзоре задач скрывается, отображается только дата.\n" "\"Начало рабочего дня\" и \"Конец рабочего дня\" используют рабочие дни " "согласно установке на вкладке \"Особенности\" диалога настроек." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Напоминания задачи" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Система уведомлений для использования напоминаний" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Напоминание произносит компьютер" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Требуется espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Время отсрочки по умолчанию для использования после напоминания" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Время сна, предлагаемое в диалоге напоминания о задаче" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Пароль для синхронизации с iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "При синхронизации, введите этот пароль на iPhone для авторизации" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Название службы Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Выгрузка задач на устройство выполнена" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Показать журнал синхронизации" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Редактор" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Проверять орфографию" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Шрифт для полей описания в диалогах редактирования" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Получить тему сообщения от Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "При перетаскивании сообщения из Mail.app, попытаться получить его тему.\n" "Этот процесс занимает до 20 секунд." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "Фокусироваться на теме задачи в редакторе задач" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "При открытии редактора задачи переходить к теме задачи и фокусироваться на " "ней.\n" "Эта опция перекрывает выбор X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "напоминание %(name)s - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Дата/время напоминания" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Отложить" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" "Назначить это время, временем отсрочки по умолчанию, для последующих " "напоминаний" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Пометить задачу завершённой" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML сервер" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Настраиваемое" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL сервера SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Имя пользователя/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Включить синхронизацию задач" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Имя базы данных задач" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Предпочтительный режим синхронизации" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Двунаправленная" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Медленно" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Односторонне с клиента" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Обновление с клиента" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Односторонне с сервера" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Обновление с сервера" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Включить синхронизацию заметок" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Имя базы данных заметок" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Доступ" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Шаблон новой задачи" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Предварительный просмотр" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Доступные инструменты" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Отображать инструмент на панели" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Скрыть инструмент с панели" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Инструменты" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Передвинуть инструмент вверх (влево панели)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Передвинуть инструмент вниз (вправо панели)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "Отсортируйте кнопки панели инструментов перетаскивая их в списке." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Разделитель" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Промежуток" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Уведомлять меня о новых версиях" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Доступна новая версия %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Вы используете %(name)s версии %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Доступна версия %(version)s %(name)s" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s последней версии" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "Последняя версия %(name)s - %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Невозможно найти последнюю версию" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Не могу найти последнюю версию %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Предрелизная версия" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Вы используете %(name)s предрелизной версии %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Последняя выпущенная версия %(name)s - %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Внимание" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach имеет известные проблемы с управлением сессиями XFCE4.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Если при запуске Вы наблюдаете случайные подвисания, отключите\n" "\"Использовать управление сессиями X11\" на вкладке настроек Особенности.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Не показывать этот диалог при запуске" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Бездействие пользователя с %s. Следующая задача была\n" "под наблюдением:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Ничего не делать" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Остановить в %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Остановить в %s и продолжить сейчас" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Уведомление" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s файлы (*.tsk)|*.tsk|Все файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "Файлы %s (*.tsk)|*.tsk|Резервные копии (*.tsk.bak)|*.tsk.bak|Все файлы " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Файлы iCalendar (*.ics)|*.ics|Все файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Файлы HTML (*.html)|*.html|Все файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Файлы CSV (*.csv)|*.csv|Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Файлы Todo.txt (*.txt)|*.txt|Все файлы (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Открыть" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Загружено %(nrtasks)d задач из файла %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Файл %s не найден" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Объединить с файлом" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Невозможно открыть %(filename)s\n" "т.к. он заблокирован." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Добавлен файл %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Сохранить как" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Сохранить выделение" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Невозможно сохранить %s\n" "Он заблокирован другой копией %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "CНевозможно сохранить %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Импортировать шаблон" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "Файлы шаблонов %s (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Не удалось импортировать шаблон %s\n" " %s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Экспортировано %(count)d записей в %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Завершенная синхронизация" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Статус синхронизации" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Невозможно открыть %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Файл %s уже существует.\n" "Вы уверены, что хотите его заменить?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Не все изменения сохранены.\n" "Сохранить изменения перед закрытием?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: Сохранить изменения?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Невозможно открыть %s потому что он заблокирован.\n" "\n" "Это означает что другой экземпляр программы TaskCoach\n" "запущен и держит этот файл открытым, или что \n" "ранее запущенный экземпляр Task Coach аварийно \n" "завершился. Если нет других запущенных экземпляров \n" "вы можете безопасно снять блокировку.\n" "\n" "Снять блокировку?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: файл заблокирован" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Нельзя получить блокировку, поскольку она не поддерживается\n" "в месте расположения %s.\n" "Открыть %s незаблокированным?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Закрыт %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Сохранено %(nrtasks)d задач в файл %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Невозможно открыть %(filename)s\n" "т.к. он создан новой версией %(name)s.\n" "Пожалуйста, обновите %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Ошибка чтения %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Сейчас откроется менеджер резервных копий, который позволит вам восстановить " "более раннюю версию этого файла" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Синхронизация..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Синхронизация с %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Добро пожаловать в %(name)s (версия %(version)s)" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Не удалось восстановить шаблон из TaskCoach.ini:\n" "%s\n" "\n" "Будет использован текущий шаблон.\n" "\n" "Если данная ошибка повторится, пожалуйста, сделайте копию Вашего файла " "TaskCoach.ini перед завершением работы в программе, откройте журнал ошибок, " "и приложите откопированный TaskCoach.ini к журналу." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s вызвала ошибку" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Тип синхронизации" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "iPhone или iPod Touch пытался синхронизироваться с этим\n" "файлом задач, но протокол согласовать не удалось. Пожалуйста,\n" "сообщите об ошибке." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Файл" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "П&равка" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Вид" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Создать" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Действия" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Помощь" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Импорт" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Экспорт" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Выделение" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Добавить окно" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "Перейти к &следующему окну\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Перейти к &предыдущему окну\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Режим" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Фильтр" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Сортировка" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Колонки" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Округление" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Параметры дере&ва" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "Па&нель инструментов" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Показать/скрыть строку статуса" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "С&трока статуса" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Задача" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Открыть новую вкладку, отображающую задачи" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Статистика задач" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Открыть новую вкладку просмотра статистики этой задачи" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Квадратная карта задач" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Открыть новую вкладку, отображающую задачи на квадратной карте" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Шкала времени" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "Открыть новую вкладку, отображающую шкалу времени задач и выполнения" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "Календарь" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Открыть новую вкладку, в которой задачи показываются в календаре" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "Иерархический календарь" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "Открыть новую вкладку, отображающую иерархию задач в календаре." #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Категория" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Открыть новую вкладку с отображением категорий" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Исполнение" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Открыть новую вкладку, отображающую выполнение" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Работа над выбранной задачей" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Открыть новую вкладку, отображающую работу над выбранной задачей" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Заметка" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Открыть новую вкладку с заметками" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Скрыть" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Скрыть панель инструментов" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Мелкие значки" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Мелкие значки (16x16) на панели инструментов" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "Ср&едние значки" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Средние значки (22x22) на панели инструментов" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Крупные значки" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Крупные значки (32x32) на панели инструментов" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Новая задача по шаблону" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Переключить категорию" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Изменить приоритет задачи" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Н&ачать учет" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (субкатегории)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (подзадачи)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Приоритет" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Страница" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s напоминание" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d просроченных задач" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "oдна просроченная задача" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "Срок выполнения задач %d скоро истекает" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "одна задача скоро завершится" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "отслеживание \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "учет работы над %d задачами" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Открыть...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Открыть %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "О&бъединить с файлом..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Объединить задачи из другого файла с текущим файлом" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Закрыть\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Сохранить\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Объединить с изменениями на диске\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Сохранить &как...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Со&хранить выбранные задачи в отдельный файл..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Сохранить выбранные задачи в отдельный файл" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Сохранить выделенную задачу как &шаблон" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Сохранить выделенную задачу как шаблон задачи" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Импортировать шаблон..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Импорт шаблона из файла" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Редактировать шаблоны..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Редактировать существующие шаблоны" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Редактировать шаблоны" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "Очистить удалённые элементы" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "На самом деле удалить удалённые задачи и заметки (см. главу SyncML в помощи)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Затирание удаленных пунктов невозможно отменить.\n" "Если вы планируете активировать функцию SyncML повторно\n" "с тем же сервером, который вы использовали в последний раз,\n" "эти пункты, скорее всего, вернутся в прежнее состояние.\n" "\n" "Тем не менее вы хотите затереть?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Параметры страницы...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "П&редварительный просмотр печати..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Показать окно предварительного просмотра документа для печати" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Предварительный просмотр" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "Печать...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Управление резервными копиями..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Сделать резервные копии всех файлов задач" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Экспорт в формат &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Экспортировать позиции из просмотрщика в HTML формат" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Экспорт в формат &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Экспортировать позиции в CSV формат" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Экспортировать как &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Экспортировать позиции в iCalendar формат" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Экспорт в &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "Экспорт элементов из окна в формат Todo.txt (см. todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Импортировать CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" "Импортировать задачи из файла со значениями, разделёнными запятыми (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Импортировать CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Выбранный файл пуст. Пожалуйста, выберите другой файл" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Импорт Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Импорт задач из файла Todo.txt (см. todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Импорт Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "С&инхронизировать через SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Синхронизировать с сервером SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Вы&ход\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "От&менить" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "Повто&рить" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Выре&зать\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Копировать\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "Вс&тавить\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "&Вставить как подэлемент\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "Настройки...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Настройки" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Настройки SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Редактировать настройки SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Настройки SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Настроить панель инструментов" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Настроить" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Все\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "С&нять выделение" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Отменить выделение всех элементов" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "&Удалить все фильтры\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Сбросить все категории\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Показать/скрыть элементы, относящиеся к %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Переименовать окно..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Переименовать выбранное окно" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Новый заголовок окна:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Переименовать окно" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "Скр&ыть эту колонку" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Скрыть выбранную колонку" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Разв&ернуть все элементы\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Свернуть все элементы\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "По &возрастанию" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Сортировка по возрастанию (отмечено) или убыванию (не отмечено)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "&Чувствительность к регистру" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Сортировать задачи по наименованию с учетом (отмечено) или без учета " "регистра (не отмечено)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Сортировать сначала по стат&усу" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" "Сортировать задачи сначала по статусу (активно, неактивно, выполнено)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Скрыть составные задачи" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Показать/спрятать задачи с подзадачами в режиме списка" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Редактировать...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Редактировать выделенные позиции" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Редактировать &отслеживаемое задание...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Редактировать текущее отслеживаемое задание(я)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Удалить\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Удалить выбранную позицию(и)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Создать новую задачу из шаблона" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Новая задача с выбранными &категориями..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Добавить новую задачу в выбранных категориях" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Новая задача с выбранными задачами как &предзадача..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Вставить новую задачу с выбранными задачами как предварительными задачами" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Новая задача с выбранной задачи в качестве зависимой..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Вставить новую задачу с выбранными задачами как зависимыми задачами" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Новый подэлемент..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Новая &подзадача..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Новая подзаметка..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Новая &подкатегория..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Вставить новый дочерний элемент" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Задача &активна\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Отметить выбранные задачи как активные" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Задача &неактивна\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Отметить выбранные задачи как неактивные" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Задача &выполнена\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Отметить выделенные задачи как выполненные" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Максимизировать приоритет\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "Минимизировать приоритет\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "Увеличить приоритет\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Уменьшить приоритет\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Переключить %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Отправить по почте...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Почта...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Несколько вещей" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "и" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Невозможно отправить e-mail:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s почтовая ошибка" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Добавить &заметку...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Открыть все заметки...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Начать отслеживание достижений\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" "Начать отслеживание достижений по задаче(ам) выбранного достижения(ий)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Без темы)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Начать отслеживать выполнение для %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Выбрать задачу через меню и начать отслеживать её выполнение" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Остановить или продолжить отслеживание усилий\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Ос&тановить отслеживание %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Остановить учет работы над активными задачами" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Возобновить отслеживание %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" "Возобновить отслеживание достижений по последней отслеживаемой задаче" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "несколько задач" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Создать категорию...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Создать заметку...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Новая &заметка для выбранных категорий..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Добавить новую заметку к выбранным категориям" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Добавить вложение...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Ошибка открытия вложения" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "Открыть все вложения...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Содержание\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Содержание\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Справка" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Подсказки" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Полезные советы по использованию программы" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Анонимизировать" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Анонимизировать файл задач для присоединения его к сообщению об ошибке" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Ваш файл задач был анонимизирован и сохранён в:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Завершено" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&О программе %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Версия %s и контактная информация" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "О %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Лицензия" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Лицензия %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Проверить обновления" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Проверить доступность новой версии %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Не могу открыть ссылку:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s ссылка с ошибкой" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Часто задаваемые вопросы" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Просмотреть часто задаваемые вопросы" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Сообщить об о&шибке..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Сообщить об ошибке или просмотреть список известных ошибок" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Запросить новую функцию..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" "Запросить новую функцию у разработчиков или проголосовать за уже имеющиеся " "запросы" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Запросить &поддержку..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Запросить пользовательскую поддержку у разработчиков" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Помочь улучшить &перевод..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Помочь улучшить перевод %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Пожертвовать..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Пожертвовать средства на разработку %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Восстановить" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Восстановить окно до предыдущего состояния" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Поиск" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Подробности работы над задачей" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Работы над задачей за день" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Работы над задачей за месяц" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Работы над задачей за неделю" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Режим объединения" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Список" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Дерево" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "Когда отмечено, показывать задачи, как дерево, иначе - как список" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Отфильтровать все отмеченные категории" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Отфильтровать любую отмеченную категорию" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Когда отмечена, фильтр на все помеченные категории, в противном случае на " "любую помеченную категорию" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Выбор сортировки" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "На&строить" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Настроить обозреватель календаря" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Настроить древовидный просмотр календаря" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "Следующий период" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Показать следующий период" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Предыдущий период" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Показать предыдущий период" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "Се&годня" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Показать сегодня" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Автоматический размер колонок" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Когда выбрано, автоматически изменять ширину столбцов для заполнения " "доступного места" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Задать угол круговой диаграммы" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Не округлять" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 минута" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d минут(ы)" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Точность округления" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Всегда округлять к большему" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Всегда округлять до большего значения" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Тип" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Сортировать по теме" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Предм&ет" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Сортировать по описанию" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Описание" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Дата создания" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Сортировать по дате создания" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Дата изменения" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Сортировать по дате последнего изменения" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Показать/скрыть столбец описаний" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Заметки" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Показать/Скрыть колонку заметок" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Показать/скрыть столбец даты создания" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Показать /скрыть столбец с датой последнего изменения" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Панель инструментов настраивается" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Нажмите на значок шестерёнки справа для добавления кнопок и их сортировки." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Пересортировка в режиме дерева" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "В режиме дерева ручная сортировка доступна только для элементов, находящихся " "на одном уровне" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "В режиме дерева вы можете размещать объекты на том же самом уровне " "(родительском)." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "&Ручная сортировка" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Показать/спрятать ручную сортировку" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "В&ложения" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Показать/Скрыть колонку вложений" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Категории: %d выбрано, %d всего" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Статус: %d отобрано" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Период" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Всего затрачено" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Общий доход" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Вторник" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Среда" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Четверг" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Пятница" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Суббота" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Категории" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Показать/скрыть колонку категорий" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Затрачено времени" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Показать/скрыть колонку затраченного времени" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Доход" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Показать/скрыть колонку дохода" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Всего затрачено времени" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Показать/скрыть колонку общего затраченного времени" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Общий доход" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Показать/скрыть колонку суммарного дохода" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Исполнение за неделю" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Показать/скрыть столбцы времени, потраченного за неделю" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Суммирование работы" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Работа: %d у выбранных, %d у видимых, %d всего. Потраченное время: %s у " "выбранных, %s у видимых, %s всего" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Статус: %d отслеживается" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Детали:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Работа над выбранной задачей (задачами)" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Сортировать категории по теме" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Сортировать категории по описанию" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Сортировать категории по дате создания" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Сортировать категории по дате последнего изменения" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Сортировать категории вручную" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Сортировать вложения по теме" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Сортировать вложения по описанию" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Сортировать вложения по категории" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Сортировать вложения по дате создания" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Сортировать вложения по дате последнего изменения" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Сортировать заметки по теме" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Сортировать заметки по описанию" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Сортировать заметки по категории" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Сортировать заметки по дате создания" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Сортировать заметки по дате последнего изменения" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Сортировать заметки вручную" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Сортировка задач по предмету" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Сортировать задачи по описанию" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Сортировать задачи по категориям" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Сортировать задачи по дате создания" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Сортировать задачи по дате последнего изменения" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Сортировать задачи вручную" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Сортировать задачи по плановой дате начала" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Плановая дата начала" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Сортировка задач по сроку" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "С&рок" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Сортировка задач по дате выполнения" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Дата в&ыполнения" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Сортировать задачи по предварительным задачам" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Предзадачи" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Сортировать задачи по зависимым задачам" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "Зависимости" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Сортировать задачи по оставшемуся времени" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Оставшееся время" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Сортировать задачи по проценту выполнения" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Процент выполнения" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Сортировать задачи по повтору" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Повторение" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Сортировка задач по бюджету" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Бюджет" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Сортировка задач по затраченному времени" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Остаток бюд&жета" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Сортировка задач по остатку бюджета времени" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Сортировка задач по приоритету" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Сортировка задач по почасовой оплате" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "По&часовая оплата" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Сортировка задач по фиксированной оплате" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Фиксированная оплата" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Сортировка задач по доходу" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Сортировать задачи по дате и времени напоминания" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Напоминание" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Тема" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Сортировать заметки по категориям" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Заметок: %d выделено, %d всего" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Состояние: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Задачи: %d выбрано, %d отображено, %d всего" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "Статус: %d просрочено, %d устарело, %d неактивно, %d выполнено" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Shift+щечок на инструменте Фильтр для вывода только задач, находящихся в " "соответствующем состоянии" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Задачи" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Шкала времени" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Сейчас" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Квадратная карта задач" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Располагать задачи по" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Иерархический календарь" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Настройка вида иерархии задач в календаре" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Настройка обозревателя календаря" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ручная сортировка" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Показать колонку \"Ручная сортировка\", затем перетаскивайте элементы этой " "колонки чтобы сортировать их произвольно." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Зависимости" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% выполнено" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Оставшееся время" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "Даты" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Все столбцы с датами" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Показать/скрыть все колонки, связанные с датами" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Показать/скрыть столбец плановой даты начала" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Показать/скрыть колонку срока" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Фактическая дата начала" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Показать/скрыть столбец фактической даты начала" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Показать/скрыть колонку даты выполнения" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Показать/скрыть столбец Оставшееся время" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Показать/скрыть столбец повторений" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Все столбцы с бюджетом" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Показать/скрыть все колонки, связанные с бюджетом" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Показать/скрыть колонку бюджета времени" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Осталось бюджета" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Показать/скрыть колонку остатка бюджета" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Финансовые" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Все столбцы с финансами" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Показать/скрыть все колонки, связанные с финансами" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Показать/скрыть колонку почасовой оплаты" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Показать/скрыть колонку фиксированной оплаты" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Показать/скрыть столбец предзадач" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Показать/скрыть столбец зависимостей" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Показывать столбец \"процент выполнения\"" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Показать/скрыть колонку вложений" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Показать/скрыть колонку приоритета" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Показать/Скрыть колонку напоминания" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Показывать задачи как" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Статистика задач" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Запятая (,)" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Вкладка" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Пробел" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Двоеточие (:)" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Точка с запятой (;)" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Канал" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "ДД/ММ (сначала день)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "ММ/ДД (сначала месяц)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Одинарная кавычка" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Двойная кавычка" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Удвоить" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Выделение с" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Импортировать только выделенные строки" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Первая строка описывает поля" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Разделитель" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Формат даты" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Символ кавычек" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Выделение кавычки" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Поле #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Пожалуйста, выберите файл." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Категория" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Дата напоминания" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Процент завершения" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Заголовок колонки в CSV файле" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "атрибут %s" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Нет соответствия полей." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Поле \"%s\" не может быть выбрано несколько раз." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Поля \"%s\" не могут быть выбраны несколько раз." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Оглавление" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "О задачах" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Свойства задачи" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Состояние задачи" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Цвета задачи" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Напоминания" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "О работе над задачей" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Свойства работы над задачей" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "О категориях" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Свойства категории" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "О заметках" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Свойства заметки" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Печать и экспорт" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "О печати и экспорте" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Печать" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Экспортирование" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Многопользовательское использование" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "О многопользовательском" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Опции хранения" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Отправка задач по e-mail" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Пользовательские атрибуты для отсылки писем" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Интеграция с электронной почтой" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "О интеграции с эл.почтой" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Приложить эл.сообщение к задаче" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Создать задачу из эл.сообщения" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Поддержка SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Что такое SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Настройки" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Ограничения" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Troubleshooting" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Очистка удаленных элементов" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone и IPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s на iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Конфигурация" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s под Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt и Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Импортирование todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Экспортирование todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Шаблоны задач" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "О шаблонах" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Использование шаблонов" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Графический пользовательский интерфейс" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Горячие клавиши" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Задачи это основные объекты, которыми вы манипулируете. Задачи могут \n" "представлять какую-нибудь небольшую вещь, которую вы должны сделать, \n" "для того чтобы завершить проект, состоящий из различных фаз и мероприятий." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Задачи имеют следующие свойства, которые вы можете изменить:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Тема: одна строка, которая описывает задачу." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Описание: несколько строк описания задачи." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Плановая дата начала: первая дата, когда задача может быть начата. \n" "Плановая дата начала по умолчанию совпадает с датой создания задачи. " "Допускается значение 'Нет', \n" "которое говорит о том, что на самом деле вы пока не хотите начинать задачу. " "Это может быть удобно, \n" "например, для регистрации дней на больничном." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Срок: дата, к которой задача должна быть завершена. \n" "Она может быть не задана, что говорит о том \n" "что задача не имеет фиксированного срока." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Фактическая дата начала: когда задача была начата фактически.\n" "Эта дата может быть отредактирована напрямую, но также она устанавливается, " "когда вы \n" "ведете учёт работы или когда устанавливаете процент выполнения задачи\n" "между 0% и 100%." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Дата выполнения: если эта дата не задана значит задача не выполнена. \n" "Когда вы отмечаете задачу выполненной устанавливается текущая дата.\n" "Дата выполнения также может быть введена вручную." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Необходимые: другие задачи, которые необходимо выполнить перед тем, как \n" "задача может быть начата. Задача остается неактивной до тех пор, пока " "последняя необходимая задача \n" "не будет выполнена. Обратите внимание, если для задачи определена плановая " "дата начала, то \n" "она должна быть в прошлом и все необходимые задачи должны быть " "выполнены\n" "до неё, в противном случае задача станет устаревшей." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Бюджет: количество часов доступных для зачачи." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Почасовая оплата: количество денег, заработанных с задачей в час." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Фиксированная оплата: количество денег, заработанных с задачей, независимо " "от затраченного времени." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Следующие свойства рассчитываются по свойствам расположенным выше:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Дней осталось: количество дней оставшихся до окончания срока." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Зависимости: другие задачи, которые могут быть начаты, \n" "когда необходимая задача была завершена." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Затраченное время: время затраченное на задачу." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Остаток бюджета: бюджет задачи минус время затраченное на задачу." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" "Доходы: почасовая оплата затраченных часов плюс фиксированная оплата." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Задачи всегда должны быть в одном из следующих состояний:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Активна: фактическая дата начала в прошлом;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Неактивна: задача не была начата и/или не все\n" "необходимые задачи были выполнены;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Завершена: задача была завершена." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Кроме того, задачи могут ссылаться на:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Просрочено: дата завершения в прошлом;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Срок истекает: срок скоро закончится (что есть 'скоро', \n" "может быть изменен в настройках);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "Устарела: плановая дата начала в прошлом и задача не была начата;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Бюджет исчерпан: бюджета не осталось;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "В рамках бюджета: еще бюджет остался;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Нет бюджета: задача не имеет бюджета." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Текст задачи окрашен в соответствии со следующими правилами:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Просроченные задачи выделены красным;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Задачи с приближающимся сроком отмечены оранжевым;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Активные задачи - черный текст с голубым значком;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Устаревшие задачи отображаются фиолетовым;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Будущие задачи серые, и" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Завершенные задачи зеленые." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Все это, конечно, предполагает, что вы не изменили цвет текста через диалог " "настроек." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Цвет фона задач определяется категориями, к которым \n" "они принадлежат. См. раздел о \n" "свойства категории ниже." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Вы можете установить напоминание на определенную дату и время. %(name)s\n" "выведет сообщение напоминания в выбранные дату и время. Из диалога " "напоминания\n" "вы можете открыть задачу, начать учет работы или отметить задачу\n" "как выполненную. Так же возможно переназначить напоминание на другие дату и " "время." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Если у Вас установлены Growl или Snarl, вы можете дать указания\n" "%(name)s использовать их для напоминания в диалоге настроек." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Всякий раз, когда вы тратите время на задачи, вы можете записывать " "количество \n" "затраченного времени, отслеживая работу. Выберите задачу и вызовите 'Начать " "учет' \n" "в меню 'Работа' или контекстном меню или с помощью кнопки панели " "инструментов \n" "'Начать учет работы'." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Записи о работе имеют следующие изменяемые свойства:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Задача: задача которой принадлежит работа." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Дата/время начала: дата и время начала работы над задачей." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Дата/время конца: дата и время конца работы над задачей. Она \n" "может быть не задана до тех пор пока вы работаете над задачей." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Описание: несколько строк описания работы над задачей." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Затраченное время: сколько времени у Вас ушло на выполнение задачи." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Доход: деньги заработанные за затраченное время." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Задачи и заметки могут принадлежать к одной или нескольким категориям. Во-" "первых, необходимо создать \n" "категорию, которую вы хотите использовать с помощью меню \"Категория\". " "Затем, вы можете добавлять \n" "элементы в одну или несколько категорий путем редактирования элемента и " "проверки соответствующих \n" "категорий для этого элемента во вкладке категорий диалого редактирования." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Вы можете ограничить элементы, отображаемые в окнах задач и заметок по одной " "или \n" "нескольким категориям, помечая категории в окне категорий. Например, если у " "вас есть \n" "категория \"телефонные звонки\", и вы пометите данную категорию, то в окне " "задач будут \n" "показаны только задачи, принадлежащие к этой категории; другими словами: \n" "телефонные звонки, которые нужно сделать." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Категории имеют следующие свойства, которые вы можете изменить:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Тема: строка, которая обобщает категории." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Описание: несколько строк описания категории." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Взаимоисключающие подкатегории: флажок, указывает подкатегории \n" "категории являющиеся взаимоисключающими. Если они есть, элементы \n" "могут принадлежать только одной из подкатегорий. При фильтрации, \n" "вы можете фильтровать только по одной из подкатегорий одновременно." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Свойства внешнего вида, такие как значок, шрифт и цвета:\n" "Свойства внешнего вида используются для отображения категории, но также и \n" "элементов, которые принадлежат к этой категории. Если категория не имеет " "собственных \n" "цвета, шрифта или значка, но имеет родительскую категорию с такими " "свойствами, \n" "то будут использоваться родительские свойства. Если элемент принадлежит к " "нескольким \n" "категориям, каждая из которых имеет цвет, связанный с ней, то смесь этих " "цветов будет \n" "использоваться для отображения этого элемента." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Заметки могут быть использованы для захвата случайной информации, которую \n" "вы хотите сохранить в файл задач. Заметки могут быть отдельными или являться " "\n" "частью других элементов, таких как задачи и категории. Отдельные заметки \n" "отображаются в окне просмотра заметок. Заметки, которые являются частью \n" "других элементов не отображаются в окне просмотра заметок." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Заметки имеют следующие свойства, которые вы можете изменить:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Тема: строка, которая обобщает заметку." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Описание: несколько строк описания заметки." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Свойства внешнего вида такие как значок, шрифт и цвета." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Печать и экспорт работают похожим образом: при печати или экспорте данных, \n" "данные из активного окна распечатываются или экспортируются. Кроме того, \n" "данные распечатываются или экспортируются в таком же виде как и отображаются " "\n" "в окне. Данные распечатываются или экспортируются в том же порядке, как и " "отображаются. \n" "Столбцы, которые являются видимыми, определяют, какие детали распечатать или " "\n" "экспортировать. При фильтрации элементов, например скрыв завершенные задачи, " "\n" "эти элементы не будет распечатаны или экспортированы." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Подготовьте содержания окна, размещая элементы в правильном порядке, \n" "покажите или скройте необходимые столбцы и применяйте соответствующие \n" "фильтры." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Вы можете предварительно просмотреть, как будет выглядеть печать \n" "используя элемент меню Файл -> Предварительный просмотр. Вы можете \n" "редактировать настройки страницы с помощью Файл -> Параметры страницы. \n" "При печати и если платформа поддерживает это, вы можете задать печать \n" "всех видимых элементов в активном окне, или только выбранные элементы." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Далее, выбрать формат, в который вы хотите экспортировать и, хотите ли вы \n" "экспортировать все видимые элементы или только выбранные. Доступные форматы " "\n" "для экспорта включают CSV (разделяемый запятой формат), HTML и iCalendar. \n" "При экспорте в HTML, создается CSS файл, который можно изменить, чтобы \n" "изменить внешний вид HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Пользовательские атрибуты для отсылки задач по e-mail" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "Вы можете изменить поведение команды e-mail, используя пользовательские " "атрибуты \n" "в описании задачи. Эти атрибуты должны быть на отдельной строке. " "Поддерживаются \n" "атрибуты \"cc\" и \"to\". Например:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Файл задач может быть открыт несколькими копиями %(name)s, запущенными \n" "на одном компьютере или на разных, соединённых по сети. При сохранении \n" "%(name)s объединяет вашу работу с тем, что было сохранено на диск после \n" "вас. Конфликты разрешаются автоматически, обычно в вашу пользу. \n" "Это служит двум целям:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Один пользователь, открывший файл задач на нескольких компьютерах \n" "(рабочем, домашнем, ноутбуке)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Несколько пользователей, работающих с одним файлом задач." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "Первый случай самый распространённый и самый безопасный. Второй случай может " "быть опасным. Большинство протоколов обмена информацией с диска не " "обеспечивают 100% безопасные способы блокировки файла. Список " "распространённых протоколов и их поведения следует." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Ни один из обсуждаемых вариантов обмена полностью не работает. Если два " "пользователя \n" "сохранят свои изменения в течение нескольких сотен миллисекунд, данные будут " "утеряны." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "Это наиболее распространенный протокол: обмен Windows и его двойники \n" "(Samba). Если сервер и клиент не поддерживают некоторые расширения, Task " "Coach \n" "не сможет автоматически определять, когда файл был изменён кем-то другим." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Ещё не тестировалось." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Популярный способ получить доступ к файлам с нескольких компьютеров \n" "(см. также SpiderOak как более безопасную альтернативу). Изменения \n" "в файле задач правильно определяются %(name)s при обновлении." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s может взаимодействовать с некоторыми почтовыми \n" "программами с помощью перетаскивания. Имеются некоторые \n" "ограничения: сообщения электронной почты будут скопированы \n" "в каталог рядом с файлом %(name)s , как .eml файлы и могут быть \n" "позже открыты с использованием программы, связанной с этим \n" "типом файлов в вашей системе. С другой стороны, это позволяет \n" "открыть эти вложения в системе, которая отличается от той, \n" "в которой они первоначально созданы." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Поддерживаемые почтовые программы:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "В связи с ограничением Thunderbird, вы не можете перетащить несколько \n" "сообщений электронной почты из Thunderbird. Это не относится к Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" "Существует два способа приложить эл.почтовое сообщение к задаче; вы можете:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" "Перетащить на задачу, либо на задачу в дереве задач или список задач." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Перетащить на панель вложений в редакторе задач." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Перетаскивание эл.почтового сообщения на пустую часть дерева задач или " "список задач \n" "создает новую задачу. Её темой является тема почтового сообщения, ее кратким " "описанием \n" "- содержания сообщения. Кроме того, почтовое сообщение автоматически\n" "прилагается к вновь созданной задаче." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML является XML протоколом предназначенным для синхронизации \n" "нескольких приложений с сервером. Популярный сервер с открытым исходным \n" "кодом является Funambol.\n" "Клиенты синхронизации доступны для многих устройств и приложений (Outlook, \n" "Pocket PC, IPod, iPhone, Evolution, и т.д. ...), а также так называемых " "\"коннекторов\", \n" "которые позволяют серверу синхронизироваться с Exchange, Google Calendar и " "др." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s имеет поддержку встроенного SyncML клиента на Windows и Mac OS X \n" "(при условии, что вы используете поддерживающиеся файлы). Это означает, \n" "что вы можете настроить %(name)s для синхронизации с тем же сервером SyncML, " "\n" "с которым синхронизируете Outlook и получить все Outlook задачи и заметки \n" "в файле %(name)s, а также %(name)s задания и заметки в Outlook. \n" "Или вашем Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "Под Linux вы должны сами установить клиент SyncML собранный \n" "для Python. 64-х битный пакетDebian для Python 2.7 доступен на\n" "taskcoach.org,\n" "в конце раздела загрузок для Linux." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Эта функция не является обязательной и отключена по умолчанию. Для того, " "чтобы \n" "включить ее, перейдите в диалог настроек и проверьте ее на странице " "Особенности." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Для настройки SyncML, отредактируйте SyncML параметры в Редактировать/SyncML " "\n" "настройки. Заполните URL для синхронизации, ваш ID на сервере и выберите \n" "какие элементы синхронизировать (задачи и/или заметки). URL зависит от " "сервера, \n" "который вы выбрали; некоторые примеры:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Имена баз данные довольно стандартны; значения по умолчанию \n" "должны работать." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Каждый файл задач имеет собственный клиентский ID, так что \n" "два различных файла задач будут рассматриваться как различные \n" "\"устройства\" на сервере." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Некоторые ограничения обусловлены тем, что базовые данные \n" "типа VCALENDAR, некоторые %(name)s возможности не могут быть \n" "представлены на сервере." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Иерархия задач и категорий теряется на сервере." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Повторения и напоминания еще не поддерживаются." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Примечания категорий теряются на сервере." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Система обнаружения/разрешение конфликтов - способ обхода \n" "ограничений Funambol. Она должна работать в большинстве случаев, \n" "но если несколько приложений синхронизируются с одним сервером \n" "одновременно, могут возникнуть проблемы." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Вероятно, некоторые другие..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Элементы меню SyncML присутствуют только если Ваша \n" "платформа поддерживается. В настоящий момент поддерживаются \n" "следующие платформы:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 бита (см. ниже)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 бита" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 и позднее, на Intel и PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "У вас могут возникнуть проблемы в Windows, если у вас не \n" "установлен Microsoft Visual 8 runtime. Вы можете загрузить \n" "его на Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Когда SyncML включен, удаление задачи или заметки на самом деле \n" "не удаляет их, а помечает как удаленную. Удаленная задачи или заметка \n" "в действительности удаляется из списка задач или заметок при следующей \n" "синхронизации. По этой причине, если Вы решили использовать SyncML функцию, " "\n" "то отключив ее и, не сделав синхронизации, могут быть некоторые заметки или " "\n" "задачи удалены из файла задач. Это не проблема, но занимает немного больше \n" "места на диске." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "В этом случае, пункт меню \"Очистить удаленные элементы\" в меню Файл может " "быть использован \n" "для полного удаления этих задач. Он включается только когда это " "действительно нужно, то есть, \n" "когда есть элементы для очистки. Имейте в виду, что после этого, если вы " "заново включите SyncML \n" "и сделаете синхронизацию с тем же сервером который вы использовали ранее, то " "все эти элементы \n" "будут появляться заново, как будто сервер не знает, что они удалены." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch и iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s на iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Существует iPhone/iPod Touch/iPad приложение необходимое для %(name)s, \n" "доступное на Apple's AppStore. (Если вы не имеете установленного " "iTunes \n" "на вашем компьютере, вы будете направлены на страницу где можно загрузить " "iTunes). \n" "Поддерживаются следующие возможности:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Основые аттрибуты задачи: тема, описание, даты (с \n" "повторением)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Иерархические задачи и категории" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Слежение времени" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Несколько файлов задач" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Двусторонняя синхронизация с %(name)s на рабочем столе" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "Приложение является универсальным и имеет пользовательский интерфейс IPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Конфигурация на iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Существуют некоторые настройки для iPhone/iPod Touch/iPad приложения\n" "в Настройка приложения:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Показывать выполненные: показывать ли выполненные задачи." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Показывать неактивные: показывать или нет неактивные задачи (плановая дата " "начала \n" "в будущем)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Позиция значка: индикатор значка может появляться или \n" "слева, или справа от экрана." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Компактный режим: если он включен, список задач имеет меньший \n" "индикатор и не отображаются категории и даты." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Подтверждать выполнение: если включено, будет появляться окно сообщений \n" "для подтверждения, когда вы отметите задачу выполненной нажав ее индикатор." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# дней до окончания срока - скоро: сколько дней в будущем\n" "считается \"скоро\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Конфигурация рабочего стола, все платформы" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Для синхронизации данных, необходимо также настроить %(name)s на рабочем \n" "столе; в предпочтениях, во вкладке \"Функции\", установите флажок \"Включить " "iPhone \n" "синхронизацию\". Перезагрузите %(name)s. Теперь, в настройках, выберите " "вкладку \n" "\"iPhone\" и заполните по крайней мере пароль." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "При нажатии кнопки \"Синхронизировать\" в окне категорий, %(name)s \n" "автоматически обнаруживает запущенные экземпляры %(name)s на вашем \n" "рабочем столе, и просит Вас выбрать один (вы можете иметь несколько " "экземпляров, \n" "запущенных на разных компьютерах сети или несколько экземпляров на одном \n" "компьютере). Имя, отображаемое, по умолчанию, некоторая строка, " "идентифицирующая \n" "компьютер, где он работает. Для настройки этого, вы можете изменить \n" "\"Имя службы Bonjour\" в конфигурации." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s будет помнить выбранный экземпляр и пробовать его при \n" "следующей синхронизации; если он не работает, он попросит вас снова." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Заметим, что эта синхронизация происходит через сеть; нет необходимости ни " "для \n" "подключения устройства через USB, ни для запуска ITunes." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Конфигурация на Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "На Windows, вы должны установить Bonjour for Windows и \n" "разблокировать его когда спросит бранмауер." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Конфигурация на Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "На Linux, вы должны иметь Avahi \n" "демон установленный и запущенный. Большинство современных дистрибутивов \n" "уже имеют его. Вам также необходимо установить пакет dnscompat; его имя \n" "зависит от вашего дистрибутива (libavahi-compat-libdnssd1 на Ubuntu к " "примеру)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Я не могу найти iPhone/IPod Touch приложение на веб-сайте \n" "компании Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Вы должны иметь iTunes установленный на вашем компьютере для навигации \n" "по каталогу приложений Apple's App Store. \n" "Получить " "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Мой компьютер не появляется в списке при попытке синхронизации" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Проверьте что ваш iPhone/iPod Touch подключен к той же сети\n" "компьютера через WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone не может подключиться к моему компьютеру" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "Если вы имеете брандмауер, проверьте что порты 4096-4100 открыты." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Нет, %(name)s не доступен на платформе Android. Но существует\n" "Todo.txt Touch. \n" "Вы можете экспортировать ваши задачи из %(name)s в формат Todo.txt\n" " и редактировать их на Android устройстве." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt -- менеджер todo-списков с открытым кодом, работающий \n" "с файлами чистого текста, созданный Gina Trapani. У Todo.txt интерфейс \n" "командной строки. Однако, поскольку файл в текстовом виде, вы можете \n" "редактировать свои задачи с помощью любого текстового редактора. \n" "Todo.txt Touch -- это версия Todo.txt для платформы Android. Todo.txt Touch " "\n" "использует файл todo.txt который находится в вашей Dropbox папке. \n" "%(name)s поддерживает импорт/экспорт в/из файл todo.txt." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "При экспорте в Todo.txt %(name)s создает ещё один файл вместе с ним, \n" "с добавлением к имени \"-meta\". Не удаляйте этот файл; %(name)s использует " "его \n" "для отслеживания внешних изменений задач. Когда возникает конфликт \n" "(при импорте задание изменяется одновременно и Task Coach, и внешним \n" "приложением), файл Todo.txt выигрывает конфликт." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "Подсказка: если вы сохраните файл задач в папке, которую Todo.txt \n" "Touch создаст в папке Dropbox, и включите автоматическое импортирование \n" "и экспортирование Todo.txt, %(name)s будет синхронизировать файл задач \n" "и файл todo.txt. К сведению: также создаётся другой файл, с именем \n" "как у файла .txt с добавлением \"-meta\". Он используется %(name)s \n" "для отслеживания, что именно было изменено в файле .txt; не изменяйте \n" "и не удаляйте этот файл." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s импортирует темы задачи, даты планового начала, срока, выполнения, " "\n" "приоритет, контексты и проекты. Контексты и проекты трансформируются " "%(name)s \n" "в категории. Проекты не могут быть трансформированы в вышестоящие задачи \n" "из-за того, что Todo.txt допускает принадлежность задач нескольким проектам, " "\n" "в то время как %(name)s допускает для задачи только одну вышестоящую." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "При импортировании %(name)s пытается найти совпадающие задачи и \n" "категории и обновить их вместо создания новых. Он производит сопоставление, " "\n" "рассматривая тему задачи (или проекта, или контекст) и родительский элемент, " "\n" "если таковой имеется." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s экспортирует темы задачи, даты планового начала, срока, выполнения, " "\n" "приоритет и категории в формат Todo.txt. Другие атрибуты не экспортируются." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s поддерживает даты и время, но Todo.txt поддерживает \n" "только даты, поэтому время начала, срока, выполнения \n" "не экспортируется." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "По умолчанию формат Todo.txt поддерживает только плановые даты начала \n" "и даты выполнения, но не срок. Таким образом, %(name)s использует расширение " "\n" "для экспорта сроков задач. Срок в файле todo.txt указывается как \"due:YYYY-" "MM-DD\"." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt имеет приоритеты в виде букв ('A'-'Z'). \n" "%(name)s имеет числовые приоритеты. приоритет %(name)s 1 преобразуется в " "'A',\n" "2 становится 'B' и т.д., 26 - 'Z'. Приоритеты %(name)s менее 1 и более 26\n" "не экспортируются." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Категории, тема которых начинается с \"+\", экспортируются как проекты.\n" "Категории, тема которых начинается с \"@\", экспортируются как контекст.\n" "Категории, тема которых не начинается с \"+\" или \"@\", не экспортируются.\n" "Подкатегории экспортируются, если экспортируются их категории." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Шаблоны это проекты для новых задач. Сейчас, свойства задачи, которые могут " "быть \"параметризованны\", это только даты. При создании экземпляра шаблона, " "созданная задача имеет даты замененные на даты по отношению к текущей дате." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Можно создать шаблон, выбрав задачу (только одну) и нажав на пункт \n" "\"Сохранить задачу как шаблон\" в меню \"Файл\". Все подзадачи, заметки и " "вложения \n" "являются частью шаблона. Только категории не сохраняются." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Вы также можете создать новый шаблон из готовых файлов шаблонов \n" "(.tsktmpl), просто выберите \"Импортировать шаблон\" в меню Файл и выберите " "файл. \n" "Файлы шаблонов хранятся в подкаталоге каталога, в котором расположен \n" "TaskCoach.ini." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Для использования шаблона выберите \"Новая задача по шаблону\" \n" "в меню Задача или соответствующую кнопку на панели инструментов.\n" "При создании задачи даты начала, срока, выполнения переустанавливаются \n" "относительно текущей даты. Например, если Вы создали шаблон из задачи, \n" "начинающейся сегодня и со сроком завтра, каждый раз при использовании \n" "шаблона планируемая дата начала заменится на текущую дату, а срок - \n" "на текущую плюс один день." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Также вы можете добавить шаблоны в редакторе шаблонов \n" "(Файл / Редактировать шаблоны), а также редактировать \n" "основные свойства шаблона (даты и тему). Даты приведены \n" "в человеко-читаемом формате, редактор дат станет красным, \n" "если %(name)s не может понять, что это значит. Пример дат:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Заметим, что эта система не локализована; Вы должны вводить\n" "даты в английском формате." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Вы можете перетаскивать окна просмотра для создания практически любого \n" "макета пользовательского интерфейса. Когда вы начнёте перетаскивать окно, \n" "появятся подсказки, чтобы показать, где вы можете его оставить. Окна \n" "также могут быть брошены друг на друга для создания записных книжек." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "В диалогах редактирования вы можете перетаскивать вкладки, \n" "чтобы изменить порядок или создать совершенно другой макет \n" "пользовательского интерфейса путем размещения вкладок рядом с друг друга." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Темы и описания задач, заметок и категорий могут быть изменены \n" "без открытия диалога редактирования. Выберите пункт, тему или \n" "описание которого вы хотите изменить, и нажмите на пункт снова, \n" "либо в столбце темы или в столбце описания. Появиться текстовое \n" "окно, которое позволяет изменить тему или описание. Нажмите Enter, \n" "чтобы подтвердить изменения. Нажмите Escape, чтобы отменить \n" "внесенные изменения. F2 - клавиша для редактирования темы." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s имеет несколько сочетаний клавиш быстрого доступа, перечисленных " "ниже. \n" "Сочетания клавиш быстрого доступа в данный момент назначить невозможно." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux и Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux и Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux и Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Вставить новый подэлемент" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Изменить выделенные объект(ы) или закрыть диалог" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Ввод" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Пометить выделенные задачи (не)завершёнными" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Отменить диалог или переместить фокус клавиатуры с поиска в обозреватель" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Esc" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Переместить фокус клавиатуры в следующее поле в диалоге" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Переместить фокус клавиатуры в предыдующее поле в диалоге" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Переместить фокус клавиатуры в следующую вкладку в записной книжке" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Переместить фокус клавиатуры в предыдущую вкладку в записной книжке" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Всплывающее меню или выпадающий список" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Изменить тему выбранного элемента в окне" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Версия%(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s активно развивается. Хотя разработчики %(name)s стараются избежать " "их, ошибки случаются. Таким образом, настоятельно рекомендуется выполнять " "регулярное резервное копирование вашей работы." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "У %(name)s есть список рассылки, где Вы можете обсудить использование " "%(name)s с другими пользователями, обсудить и запросить особенности, а также " "сообщить об ошибках. Перейдите на %(url)s и присоединяйтесь сегодня!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s имеет возможность неограниченной отмены действий. Любое вносимое " "изменение, будь то редактирование описания задачи или удаление записи о " "работе над ней, можно отменить. Используйте пункты меню 'Правка' -> " "'Отменить' и 'Правка' -> 'Повторить' для перехода назад или вперед по всей " "истории внесенных изменений." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "В %(name)s встроена поддержка различных языков. Выберите пункт меню 'Правка' " "-> 'Настройки' для просмотра списка доступных языков. Если ваш язык " "отсутствует в списке, или вы считаете, что перевод нуждается в улучшении, " "коллектив разработчиков будет благодарен вам за помощь в локализации " "%(name)s. Информацию о том, как вы можете помочь, можно найти по ссылке: " "%(url)s." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "При введении интернет-адреса (например, %(url)s) в описание задачи или " "работы над задачей, он превращается в ссылку. Если вы нажмете на эту ссылку, " "она откроется в вашем браузере по умолчанию." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Когда задачи представлены в виде дерева, вы можете перетаскивать их с " "помощью указателя мыши, изменяя их уровень и принадлежность. Эта функция " "работает и в дереве категорий." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Вы можете перетаскивать файлы из Проводника в любую задачу для создания " "вложений. При перемещении файла над вкладкой отроется соответствующая " "страница, а при перемещении над свернутой задачей (отмеченной знаком '+' в " "прямоугольнике) в дереве задач эта задача развернется и станут видны все ее " "подзадачи." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Вы можете создать любой формат обозревателя, перенося вкладки. Формат будет " "сохранён и будет использоваться в следующем сеансе." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "То, что будет напечатано при выборе пункта меню 'Файл' -> 'Печать' зависит " "от текущего представления. Если в текущем представлении отображается список " "задач, будет напечатан список задач. Если в текущем представлении " "отображаются записи о работе над задачей по месяцам, будет напечатан именно " "этот список. Тоже самое относится к включенным колонкам, способу сортировки, " "фильтрации задач и т.д." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Щелкните левой кнопкой мыши на заголовок столбца для сортировки по этому " "столбцу. Нажмите на заголовок столбца еще раз, чтобы изменить порядок " "сортировки с возрастания по убыванию и обратно. Щелкните правой кнопкой мыши " "на заголовок столбца, чтобы скрыть этот столбец или показа дополнительных " "столбцов." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Вы можете создать шаблон из задачи, чтобы уменьшить объём набора при " "появлении повторяющихся задач." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab переключает вкладки в диалогах редактирования." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Совет дня" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Следующий совет" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Показывать советы при запуске" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Обзор файлов для добавления вложения в выделенный(е) элемент(ы)" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Добавить заметку к выделенному(ым) элементу(ам)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Вставить новую категорию" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Вырезать выделенные элементы в буфер обмена" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Копировать выделенные элементы в буфер обмена" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Вставить элементы из буфера обмена" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Вставить элемент(ы) из буфера обмена как подэлемент выбранного элемента" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Редактировать настройки" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Повторить последнюю отмененную команду" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Выделить все элементы в текущем представлении" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Отменить последнюю команду" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Добавить период работы над выделенными задачами" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Начать учет для выбранных задач" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Остановить или возобновить отслеживание достижений" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Закрыть текущий файл" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Выйти из %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Открыть файл %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Сохранить текущий файл" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Загрузить изменения с диска" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Сохранить текущий файл под новым именем" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Справка о программе" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" "Отправить выделенный(е) элемент(ы) по почте, используя программу по умолчанию" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Вставить новую заметку" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Открыть все вложения у выбранного(ых) элемента(ов)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Открыть все заметки у выбранного(ых) элемента(ов)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Печать текущего файла" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Параметры страницы" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Показывать все элементы (снять все фильтры)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Показывать все элементы независимо от категории" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Переместить фокус клавиатуры с обозревателя на поиск" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Уменьшить приоритет выделенной задачи" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Увеличить приоритет выбранных задач" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Установить выбранным задачам самый высокий приоритет" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Установить выбранным задачам самый низкий приоритет" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Вставить новую задачу" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Свернуть все элементы с вложенными элементами" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Развернуть все элементы с вложенными элементами" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Активировать следующее открытое окно" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Активирует предыдущее открытое окно" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "iPhone или iPod Touch пытается подключиться к Task Coach,\n" "но пароль не установлен. Пожалуйста, установите пароль \n" "в разделе настроек iPhone и повторите." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Версия протокола: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Версия отклонённого протокола %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Хэш OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Хэш KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Имя устройства: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Имя отправляемого файла: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Полностью с рабочего стола." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d категории" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Отправить категорию %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Ответ: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d задач" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Отправить задачу %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d работ" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Отправить работу %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Завершено." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d новых категорий" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d новых задач" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d новых работ" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d изменённых категорий" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d изменённых задач" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d изменённых работ" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d удалённых категорий" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d удалённых задач" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d удалённых работ" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Новая категория (родитель: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Удалить категорию %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Изменить категорию %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Новая задача %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Удалить задачу %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Изменить задачу %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Конец синхронизации задач." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Не найдена задача %s для работы." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Новая работа %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Изменить работу %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Отправляемый GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Чтение почтовой информации..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Чтение почтовой информации. Ожидайте." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Не удалось найти каталог данных Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Не удалось найти профиль Thunderbird." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Нет раздела по умолчанию в profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Искаженный внутренний ID Thunderbird:\n" "%s. Пожалуйста, отправьте сообщение об ошибке." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Не удалось найти каталог для ID\n" "%s.\n" "Пожалуйста, отправьте сообщение об ошибке." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Нераспознанная URL схема: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Не удалось открыть соединение IMAP к %(server)s:%(port)s\n" "для получения Thunderbird почтового сообщения:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Пожалуйста, введите имя домена для пользователя %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Не удалось выбрать Входящие \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Нет такого письма: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Фактическое время начала" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Плановое время начала работ" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Время срока" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Время завершения" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Время напоминания" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Время создания" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Дата окончания периода" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Время окончания периода" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Дата начала периода" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Время начала периода" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Нет темы" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Срок новой задачи истекает сегодня" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Срок новой задачи истекает завтра" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d дня(ей)" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 день" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Каждые %(frequency)d дней" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Каждые %(frequency)d недель" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Каждые %(frequency)d месяцев" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Каждые %(frequency)d лет" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Через день" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Через неделю" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Через месяц" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Через год" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Вчера" #: taskcoachlib/render.py:284 msgid "now" msgstr "сейчас" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Синхронизация с источником %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "будет обновлён с сервера. Все локальные записи\n" "будут удалены. Вы хотите продолжить?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "будет обновлён с клиента. Все записи на сервере\n" "будут удалены. Вы хотите продолжить?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Синхронизация" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Идет синхронизация. Ожидайте.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d элементов добавлено.\n" "%d элементов обновлено.\n" "%d элементов удалено." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "При синхронизации произошла ошибка.\n" "Код ошибки: %d; Описание: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Сначала вы должны изменить ваши настройки SyncML, в Правка/Настройки SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Переключатель панелей" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Восстановить %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Предпросмотр панели" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Закрыть" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Закрыть все" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Следующий" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Предыдущий" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Окно" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Редактировать" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d недели(ь)" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d часа(ов)" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Выполнено" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Тип периода отображения и кол-во" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Месяц" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Положение календаря" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Горизонтально" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Вертикально" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Какие задачи показывать" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Задачи с плановой датой начала и сроком" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Задачи с плановой датой начала" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Задачи с датой срока" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Все задачи" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Все задачи, кроме незапланированных задач" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Прочертить линию показывающее текущее время" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Цвет используемый для выделения текущего дня" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Все файлы (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Заголовки" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Номер недели" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Диапазон календаря" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Неделя" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Рабочая неделя" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Пароль:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Сохранить на брелоке" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "При поиске системного хранилища ключей возникла проблема.\n" "Отправьте сообщение об ошибке (из меню \"Помощь\") и приложите снимок этого " "сообщения.\n" "Произошла ошибка:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Пожалуйста, введите пароль." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Пожалуйста, введите пароль" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "С &учетом регистра" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Учитывать регистр при фильтрации" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Включить подэлементы" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Включать в результаты поиска подпункты подходящих пунктов" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Искать описание также" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Искать в теме и в описании" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Регулярное выражение" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Рассматривать текст для поиска как регулярное выражение" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Это неверное регулярное выражение" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "По умолчанию для поиска подстрок" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "История поиска" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Поиск при просмотре отсутствует" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Предупреждение о совместимости" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Функция SyncML отключена, т.к. модуль не был загружен.\n" "Это могло произойти из-за того, что ваша платформа\n" "не поддерживается или под Windows в случае отсутствия\n" "обязательных DLL. Пожалуйста, обратитесь к разделу SyncML\n" "онлайн справки для подробной информации (\"Устранение неисправностей\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Не показывать этот диалог снова" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Ошибка при открытии URL" #~ msgid "&Delete\tDEL" #~ msgstr "&Удалить\tDEL" taskcoach-1.4.3/i18n.in/sk.po000066400000000000000000007173111265347643000156440ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: Task Coach\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:31+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Slovak\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: slo\n" "Language: \n" "X-Poedit-Language: slo\n" "Generated-By: pygettext.py 1.5\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Došlo k chybám. Prosím pozrite si súbor \"taskcoachlog.txt \" v priečinku " "\"Moje dokumenty“." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Chyba" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Vyskytli sa chyby. Prosím pozrite si: \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Nemožno načítať nastavenia zo súboru TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Chyba v súbore %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" "Nadradená úloha pre \"%s\" bola lokálne zmazaná, preto sa táto dostala na " "najvyššiu úroveň." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "Boli zistené konflikty v súbore \"%s\".\n" "Použila sa lokálna verzia." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Zmena umiestnenia príloh" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Zmena umiestnenia prílohy \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Pridať prílohu" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Pridať prílohu k \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nová príloha" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Odstrániť prílohu" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Odstrániť prílohu k \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopírovať" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopírovať \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Zmazať" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Zmazať \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Vystrihnúť" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Vystrihnúť \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Prilepiť" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Prilepiť \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Prilepiť ako podradenú položku" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Prilepiť ako položku podradenú pod \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Ťahať a pustiť" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Ťahať a pustiť \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Úprava predmetov" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Upraviť predmet \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Zmena popisov" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Zmena popisu \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Zmena ikon" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Zmena ikony \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Zmena písiem" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Zmna písma \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Zmeniť farby v popredí" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Zmeniť farbu v popredí \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Zmena farieb pozadia" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Zmena farby pozadia \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Prepnúť kategóriu" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Prepnúť kategóriu \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nová kategória" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nové podkategórie" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Nová podkategória \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nová podkategória" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Upraviť exkluzívne pod-kategórie" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Upraviť exkluzívne pod-kategórie \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Vymazať kategórie" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Vymazať kategóriy \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Drag and drop – Kategórie" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nové práce" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Nová práca \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Zrušiť prácu" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Odstrániť prácu \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Zmeniť úlohu pri práci" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Zmeniť úlohu pri práci \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Zmeniť dátum a čas spustenia práce" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Zmeniť dátum a čas spustenia práce pre \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Zmeniť dátum a čas ukončenia práce" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Zmeniť dátum a čas ukončenia práce pri \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nová poznámka" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nové podradené poznámky" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nová podradená poznámka k \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nová podradená poznámka" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Vymazať poznámky" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Odstrániť poznámku \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Drag and drop – Poznámky" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Drag and drop – Poznámka \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Pridať poznámku" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Pridať poznámku k \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Pridať podpoznámku" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Pridať podpoznámku k \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Odstrániť poznámku" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Odstrániť poznámku k \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Drag and drop – Úlohy" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Zrušiť úlohy" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Zrušiť úlohu \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Nová úloha" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nové podradené úlohy" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Nová podradená úloha k \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Nová podradená úloha" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Označenie úloh ako hotových" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Označenie úlohy \"%s\" ako hotovej" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Označiť úlohu ako aktívnu" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Označiť úlohu \"%s\" ako aktívnu" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Označiť úlohu ako neaktívnu" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Označiť úlohu \"%s\" ako neaktívnu" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Začať sledovanie" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Spustiť sledovanie \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Zastaviť sledovanie" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Zastaviť sledovanie \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Nastaviť najväčšiu prioritu" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Navyššia priorita \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Nastaviť najmenšiu prioritu" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Najnižšia priorita \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Zvýšiť prioritu" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Zvýšenie priority \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Znížiť prioritu" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Zníženie priority \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Zmeniť prioritu" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Zmeniť prioritu \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Pridať poznámku k úlohám" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Zmeniť plánovaný dátum spustenia" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Zmeniť plánovaný dátum spustenia \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Zmeniť dodací dátum" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Zmeniť dodací dátum \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Zmeniť aktuálny dátum spustenia" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Zmeniť aktuálny dátum spustenia \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Zmeniť dátum dokončenia" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Zmeniť dátum dokončenia \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Zmeniť dátumy/časy pre pripomínač" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Zmeniť dátu/čas pripomínača pre \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Zmeniť opakovania" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Zmeniť opakovanie \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Zmeniť percentá dokončenia pri \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Zmeniť po označení úloh ako kompletné" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Zmeniť, keď bude \"%s\" označená ako kompletná" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Zmeniť rozpočty" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Zmeniť rozpočet \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Zmeniť poplatky za hodinu" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Zmeniť poplatok za hodinu pri \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Zmeniť fixné poplatky" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Zmeniť fixný poplatok pri \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Prepnúť požiadavku" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Prepnúť požiadavku \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Chyba počas čítania nastavenia %s - %s z %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Hodnota je: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Chyba je: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s použije predvolenú hodnotu nastavenia a mal by normálne pokračovať." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Chyba nastavení" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Chyba pri ukladaní %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Chyba pri ukladaní" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Správa Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nová príloha..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Vložiť novú prílohu" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Otvoriť prílohu" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Otvoriť vybrané prílohy" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minút" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Nepripomínať" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minút" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minút" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minút" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minút" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 hodiny" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minút" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 hodina" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 hodiny" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 hodiny" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 hodiny" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 hodín" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 hodín" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 hodín" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 hodín" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 hodín" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 hodín" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 hodín" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 týždne" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 týždeň" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Celkom" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Celkom za %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Nová práca...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Neaktívne úlohy" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Skryť neaktívne úlohy" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Neaktívne úlohy: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Zobraziť/skryť neaktívne úlohy (nedokončené úlohy bez aktuálneho dátumu " "spustenia)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Meškajúce úlohy" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Skryť z&meškané úlohy" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Meškajúce úlohy: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Zobraziť/skryť meškajúce úlohy (neaktívne úlohy s naplánovaným spustením v " "minulosti)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktívne úlohy" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktívne úlohy: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Skryť aktívne úlohy" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Zobraziť/skryť aktívne úlohy (nedokončené úlohy s aktuálnym dátumom " "spustenia v minulosti)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Úlohy, ktoré majú byť čoskoro dodané" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Úlohy, ktoré majú byť čoskoro dodané: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Skryť úlohy, ktoré majú byť čoskoro &dodané" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Zobraziť/skryť úlohy, ktoré majú byť dokončené čoskoro (nedokončené úlohy s " "dátumom určeným v blízkej budúcnosti)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Úlohy po dodacom termíne" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Skryť úlohy &po dodacom termíne" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Úlohy po dodacom termíne: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Zobraziť/skryť zmeškané úlohy (nedokončené úlohy s dátumom určeným v " "minulosti)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Dokončené úlohy" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Dokončené úlohy: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Skryť skompletizované úlohy" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Zobrazí/skryje dokončené úlohy" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Nová úloha..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Šípka nadol" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Šípka nadol so stavom" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Modré šípky dookola" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Zelené šípky dookola" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Šípka nahor" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Šípka nahor so stavom" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Kniha" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Knihy" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Obdĺžnik" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Lienka" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Koláč" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Kalkulačka" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalendár" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Mačka" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "CD" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Rebríčky" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Rozprávanie" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Výberová značka" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Skontrolovať alebo vybrať značky" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Hodiny" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Budík" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stopky" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Ozubené koliesko" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Ozubené kolieska" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Stolný počítač" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Laptop PC" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handheld" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Červený kríž" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Smrť" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokument" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Modrá zem" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Zelená zem" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Obálka" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Obálky" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Modrý priečinok" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Bledomodrý priečinok" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Zelený priečinok" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Šedý priečinok" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Oranžový priečinok" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Fialový priečinok" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Červený priečinok" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Žltý priečinok" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Modrý priečinok so šípkou" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Srdce" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Srdcia" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Zelený domček" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Červený domček" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Kľúč" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Kľúče" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lampa" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Otáznik" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Informácie" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Modrá LED" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Bledomodrá LED" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Šedá LED" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Zelená LED" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Bledozelená LED" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Oranžová LED" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Ružová LED" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Červená LED" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Žltá LED" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Záchranné koleso" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Zamknutý zámok" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Odomknutý zámok" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Lupa" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Klavír" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Hudobná nota" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Poznámka" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Paleta" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Spinka" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Ceruzka" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Osoba" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Ľudia" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identifikácia" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Hovoriaca osoba" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Varovné znamenie" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Mínus" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plus" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Červená hviezda" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Žltá hviezda" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Semafór" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Kôš" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Búrka" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Dáždnik" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Polojasno" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Kľúč" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Bez ikony" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Súbor" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Úplná cesta:" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Dátum" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Obnoviť" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Zatvoriť" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Zvoľte cieľ pre obnovenie" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Správa od vývojárov programu %s" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Pozrite si:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Popis" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Pre zmenu všetkých predmetov, vykonajte zmenu tu" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Predmet" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Pre zmenu všetkých popisov, vykonajte zmenu tu" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Dátum vytvorenia" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Dátum úpravy" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Priorita" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Vzájomne sa vylučujúce" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Podkategórie" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Pre zmenu umiestnenia všetkých príloh, vykonajte zmenu tu" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Prechádzať" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Umiestnenie" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Vzhľad" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Farba popredia" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Farba pozadia" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Písmo" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ikona" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Dátumy" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Plánovaný dátum spustenia" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Termín" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Aktuálny dátum spustenia" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Dátum dokončenia" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Pripomienka" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Opakovanie" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Priebeh" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Dokončených percent" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Použiť nastavenie aplikácie" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nie" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Áno" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Označiť úlohu ako dokončenú, keď sú dokončené všetky podúlohy?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Rozpočet" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Strávený čas" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Zostávajúci rozpočet" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Hodinová odmena" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Pevná odmena" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Odmena" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Práca" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategórie" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Prílohy" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Poznámky" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Požiadavky" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Upraviť úlohu" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Úloha" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Začať" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Týždeň (týždne)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Deň (dni)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Hodina (hodiny)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Minúta (minúty)" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Zastaviť" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Začať merať od posledného zastavenia" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Zastaviť sledovanie teraz" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Varovanie: spustenie musí byť skôr ako zastavenie" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Viaceré úlohy" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (úloha)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Viaceré kategórie" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (kategória)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Viaceré poznámky" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (poznámka)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Viaceré prílohy" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (príloha)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Viaceré práce" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (práca)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Použiť písmo:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Použiť farbu:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Nikdy" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Denne" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mesačne" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Týždenne" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Ročne" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "rovnaký deň v týždni" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", každých" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Zastaviť po" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "opakovaniach" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Naplánovať každé ďalšie opakovanie na základe" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "predchádzajúci plánovaný začiatok a/alebo termín" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "posledný dátum dokončenia" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dní," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "obdobie," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "týždňov," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "mesiacov," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "rokov," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportovať položky z:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Export iba označených položiek" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Stĺpce pre export:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Zaznamenať dátumy a časy úloh do zvláštnych stĺpcov" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Zapísať informácie o štýle do zvláštneho súboru CSS" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Ak existuje súbor CSS pre exportovaný súbor, %(name)s ho neprepíše. To Vám " "umožní zmeniť informácie o štýle bez straty vykonaných zmien pri najbližšom " "exporte." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportovať do formátu CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportovať do formátu iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exportovať do formátu HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportovať do súboru Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Dotykové zariadenie iPhone alebo iPod\n" "sa snaží prvý krát synchronizovať s týmto\n" "súborom úloh. Aký druh synchronizácie\n" "chcete použiť?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Obnoviť z počítača" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Obnoviť zo zariadenia" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Zrušiť" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Povolili ste synchronizáciu s iPhone, ktorá\n" "vyžaduje Bonjour. Zdá sa ale, že Bonjour\n" "nemáte nainštalovaný." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Prosím stiahnite a nainštalujte si Bonjour pre Windows z\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "webovej stránky Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Všeobecnú podporu Bonjour pre systém Linux\n" "poskytuje Ahavi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Tu môžete nájsť detailné informácie pre vašu distribúciu" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Nezabudnite prosím, že na niektorých systémoch (Fedora) môže byť potrebné\n" "nainštalovať balík avahi-compat-libdns_sd a tiež Ahavi,\n" "aby všetko fungovalo." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "A v prípade, že používate firewall, presvedčte sa, či sú povolené porty 4096 " "- 4100." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Toto nastavenie sa prejaví po reštartovaní %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Toto nastavenie je možné ignorovať pri individuálnych úlohách\n" "v dialógovom okne pre úpravy úlohy." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Súbory" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Automaticky uložiť po každej zmene" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Automaticky načítať, ak sa zmení súbor na disku" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Inteligentné sledovanie súborového systému" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "Priebežne zisťuje zmeny v súbore úloh v reálnom čase.\n" "Nekontroluje v prípade, že súbor úloh je zdieľaný cez sieť.\n" "Zmena nastavenia vyžaduje reštart programu %s." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Uložiť nastavenia (%s.ini) do rovnakého\n" "adresára ako program" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Pre spúšťanie %s z vymeniteľného média" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Základný adresár pre prílohy" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Pri pridaní prílohy skúsiť určiť\n" "jej cestu relatívne k tejto." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Pred uložením automaticky importovať z" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "formátu Todo.txt" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Pred uložením, %s automaticky importuje úlohy\n" "zo súboru Todo.txt s rovnakým názvom, ako je názov úlohy,\n" "avšak s koncovkou .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Pri ukladaní automaticky exportovať do" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Pri ukladaní, %s automaticky exportuje úlohy\n" "do súboru Todo.txt s rovnakým názvom ako je názov úlohy,\n" "ale s koncovkou .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Správanie okna" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Zobraziť úvodný obrázok pri štarte" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Zobraziť okno s tipmi pri štarte" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Spustiť hlavné okno minimalizované" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Vždy" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nikdy" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Ak bolo minimalizované pri poslednom spustení" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Hľadať novú verziu %(name)s pri spustení" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Kontrolovať správy od vývojárov programu %(name)s pri spustení" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Skryť hlavné okno pri minimalizovaní" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimalizovať hlavné okno pri zatvorení" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Zobrazovať vykazovaný čas v lište" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Jazyk" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Nechať systém, aby detegoval jazyk" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Ak nie je vaša jazyková verzia dostupná, alebo by preklad vyžadoval " "vylepšenie, zvážte prosím či by ste nám nechceli pomôcť. Pozrite si:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Nenašiel sa jazyk?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Vzhľad úlohy" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Toto nastavenie vzhľadu je možné ignorovať pri individuálnych úlohách v " "dialógovom okne pre úpravy úlohy." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funkcie" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Všetky nastavenia na tejto záložke si vyžadujú reštartovanie %s, aby sa " "uplatnili" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Povoliť SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Umožniť synchornizáciu iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Použiť manažment sedení X11" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Začiatok pracovného týždňa" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Pondelok" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Nedeľa" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Hodina začiatku pracovného dňa" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Hodina konca pracovného dňa" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Koniec dňa" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Použiť tieňovanie vo vzhľade kalendára.\n" "Táto voľba môže spomaliť program Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minúty medzi navrhovaným časom" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Vo vyskakovacom menu pre výber času (napríklad pre nastavenia času začatia\n" "práce) %(name)s sa bude pomocou tohto nastavenia\n" "navrhovať čas. Čím menší je počet minút, tým viac času\n" "sa navrhne. Samozrejme, môžete zadať aj ľubovoľný inýčas,\n" "bez ohľadu na navrhovaný čas." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Poznámka pre čas nečinnosti" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Ak nebude používateľom zadaný žiadny vstup počas tejto doby\n" "(v minútach), %(name)s sa opýta, čo má robiť pri aktuálnej práci." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Desatinné vyjadrenie vykazovaného času." #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Zobrazí jednu hodinu a päťnásť minúť ako 1,25 namiesto 1:15\n" "Užitočné pri vytváraní faktúr." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Zobraziť okienko s popisom položky,\n" "po prejdení myšou" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Dátumy úloh" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Označiť úlohu ako dokončenú, keď sú dokončené všetky jej podradené úlohy" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" "Počet hodín, počas ktorých sú úlohy považované za také, ktoré budú 'čoskoro " "dodané'" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Nič" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Zmena dátumu plánovaného spustenia zmení aj dodací termín" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Zmena dodacieho termínu zmení dátum plánovaného spustenia" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Čo urobiť s plánovaným dátumom spustenia a dodacím termínom, ak sa zmení " "jeden z nich" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Prednastavenie" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Navrhnúť" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Dnes" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Zajtra" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Pozajtra" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Budúci piatok" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Budúci pondelok" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Začiatok dňa" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Začiatok pracovného dňa" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Aktuálny čas" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Koniec pracovného dňa" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Predvolený plánovaný dátum a čas spustenia" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Predvolený dátum a čas dodacieho termínu" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Predvolený aktuálny dátum a čas spustenia" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Predvolený čas a dátum dokončenia" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Predvolený dátum a čas pre pripomínač" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Nové úlohy sa spustia s \"prednastavenými\" dátumami a časmi, ktoré budú " "vyplnené a označené. \"Navrhované\" dátumy a časy budú vyplnené, ale nie " "označené.\n" "\n" "\"Začiatok dňa\" je polnoc a \"Koniec dňa\" je pred polnocou. Ak použijete " "tieto voľby, prehliadače úloh nezobrazujú čas, ale iba dátum.\n" "\n" "Voľby \"Začiatok pracovného dňa\" a \"Koniec pracovného dňa\" používajú " "nastavenia pracovného dňa zadané v záložke s Nastaveniami v tomto dialógovom " "okne s nastaveniami." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Pripomínače úloh" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Systém notifikácie pre použitie pripomínačov" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Nechať počítač, aby vyslovoval upozornenia pripomínača" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(vyžaduje sa súčasť espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Predvolený čas odmlky po použití pripomínača" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Čas odmlky, ktorý bude ponúknutý v dialógovom okne pripomínača úloh" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Heslo pre synchronizáciu s iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Pri synchronizovaní, zadajte heslo v zariadení iPhone, aby bolo autorizované" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Názov služby Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Nahrať dokončené úlohy do zariadenia" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Zobraziť záznam o synchronizácii" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Editor" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Skontrolovať pravopis v editoroch" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Toto písmo sa použije v poli s popisom, v dialógoch pre úpravu" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Získať predmet e-mailovej správy z Mail.app" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Pri sťahovaní e-mailovej správy z Mail.app sa pokúsiť o zistenie jej " "predmetu.\n" "Tento úkon trvá približne 20 sekúnd." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "V editore úloh sa zamerať na predmet úlohy" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "Pri otvorení editora úloh vybrať predmet úlohy a zamerať sa naň.\n" "Táto voľba zmení výber X." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s reminder - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Dátum a čas pripomienky" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Pripomenúť neskôr" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "Predvoliť tento čas dočasného odsunutia aj pre budúce pripomínače" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Označiť úlohu ako kompletnú" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Používateľské" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Založené na Horde" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL serveru SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Užívateľské meno/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Povoliť synchronizáciu úloh" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Názov databázy úloh" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Preferovaný režim synchronizovania" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Obojsmerne" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Pomaly" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Jednosmerne z klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Obnoviť z klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Jednosmerne zo serveru" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Znovu načítať zo servera" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Povoliť synchronizáciu poznámok" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Názov databázy poznámok" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Prístup" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Šablóna novej úlohy" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Náhľad" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Dostupné nástroje" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Zobraziť tento nástroj v paneli nástrojov" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Skryť tento nástroj z panela nástrojov" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Nástroje" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Posunúť nástroj nahor (na ľavú stranu panela nástrojov)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Presunúť nástroj nadol (na pravú stranu panela nástrojov)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Zmeňte poradie tlačidiel v paneli nástrojov ťahaním a pustením v tomto " "zozname." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Oddeľovač" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Oddeľovací prvok" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Informovať o nových verziách." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Existuje nová verzia %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Používate %(name)s, verzie %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Verzia %(version)s %(name)s je dostupná na" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s je aktuálny" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s je aktuálne vo verzii %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Nemožno nájsť poslednú verziu" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Nemožno zistiť, aká je posledná verzia %(name)s." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Predfinálna verzia" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Používate predfinálnu verziu %(name)s %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Poslednou vydanou verziou %(name)s je verzia %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Varovanie" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Program Task Coach má známe problémy s manažmentom sedení XFCE4.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Ak ste si všimli náhodné zasekávanie pri spustení, prosím odznačte voľbu\n" "\"Použiť manažment relácií X11\" v záložke s vlastnosťami nastavení.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Nezobrazovať tento dialóg pri spustení" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Žiadny vstup od používateľa od %s. Začalo sa sledovanie\n" "nasledujúcej úlohy:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Neurobiť nič" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Zastaviť na %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Zastaviť na %s a pokračovať teraz" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Notifikácia" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "Súbory %s (*.tsk)|*.tsk|Všetky súbory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s súbory (*.tsk)|*.tsk|Zálohové subory (*.tsk.bak)|*.tsk.bak|Všetky súbory " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Súbory iCalendar (*.ics)|*.ics|Všetky súbory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Súbory HTML (*.html)|*.html|Všetky súbory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Súbory CSV (*.csv)|*.csv|Textové súbory (*.txt)|*.txt|Všetky súbory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Súbory Todo.txt (*.txt)|*.txt|Všetky súbory (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Otvoriť" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Načítaných %(nrtasks)d úloh z %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Nemožno otvoriť %s, pretože neexistuje" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Zlúčiť" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Nemožno otvoriť súbor %(filename)s\n" "pretože je zamknutý." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Zlúčené %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Uložiť ako" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Uložiť výber" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Nemôžem uložiť %s\n" "je zamknutá inou inštanciou %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Nemôžem uložiť %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importovať šablónu" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s súbory šablón (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Nemožno importovať šablónu %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d položiek exportovaných do %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synchornizácia dokončená" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Stav synchronizácie" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Nedá sa otvoriť %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "Súbor \"%s\" už existuje." #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Od posledného uloženia boli vykonané zmeny.\n" "Uložiť pred ukončením?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: uložiť zmeny?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "%s nemožno otvoriť, pretože je uzamknutý.\n" "\n" "To znamená, že je buď spustená iná inštancia programu TaskCoach\n" "a súbor je ňou otvorený, alebo že predchádzajúca\n" "inštancia programu Task Coach bola prerušená. Ak nie je spustení iná " "inštancia,\n" "môžete uzamknutie bezpečne odstrániť.\n" "\n" "Chcete odstrániť uzamknutie?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: súbor je uzamknutý" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Nemožno uzamknúť, uzamykanie nie je\n" "v %s podporované.\n" "Otvoriť %s bez uzamknutia?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Zatvorené %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Uložených %(nrtasks)d úloh do %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "%(filename)s nemožno otvoriť,\n" "pretože bol vytvorený novšou verziou programu %(name)s.\n" "Prosím aktualizujte program %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Chyba pri čítaní %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Teraz sa otvorí správca záloh, ktorý vám umožní obnoviť\n" "staršiu verziu tohto súboru." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synchronizuje sa..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synchronizujem s %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Vitajte v %(name)s verzia %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "Zo súboru TaskCoach.ini nie je možné obnoviť rozloženie panelov:\n" "%s\n" "\n" "Použije sa predvolené rozloženie panelov.\n" "\n" "Ak nastane táto situácia ešte raz, vytvorte prosím kópiu súboru " "TaskCoach.ini predtým, než zatvoríte program, otvorte záznam o chybách a " "pripojte skopírovaný súbor TaskCoach.ini do záznamu o chybách." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "Chyba nastavení %s" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Typ synchronizácie" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Dotykové zariadenie iPhone alebo iPod sa pokúsilo synchronizovať\n" "s týmto súborom úloh, ale spojenie na úrovni protokolu skončilo chybou.\n" "Prosím nahláste chybu." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Súbor" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Upraviť" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Zobraziť" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Nová" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Akcie" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "P&omoc" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Import" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Export" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Výber" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Nový pohľad" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Aktivovať nasledujúci pohľad\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Aktivovať &predchádzajúci pohľad\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Režim" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filter" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Zoradiť" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Stĺpce" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Zaokrúhľovanie" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "Nastavenia s&tromu" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Nástroje" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Zobraziť/skryť stavový riadok" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "S&tavový panel" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "Ú&loha" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Otvoriť novú záložku s pohľadom na úlohy" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Štatistiky &úloh" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" "Otvoriť novú záložku s prehliadačom, ktorý zobrazuje štatistiky k úlohe" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Š&tvorcová mapa úlohy" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" "Otevřít novou záložku s prohlížečem, který zobrazuje úkoly na mapě s úkoly" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Č&asová os" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Otvoriť novú záložku s prehliadačom, ktorý zobrazuje časovú líniu úloh a " "práce" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalendár" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" "Otvoriť novú záložku s prehliadačom, ktorý zobrazuje úlohy v kalendári" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hierarchický kalendár" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "Otvorí novú záložku so zobrazením hierarchie úloh v kalendári" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "Ka&tegória" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Otvoriť novú záložku s pohľadom na kategórie" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Práca" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Otvoriť novú záložku s prehliadačom, ktorý zobrazuje práce" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "Vykázaný čas pre vybrané úl&ohy" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Otvoriť novú záložku s prehliadačom, ktorý zobrazuje vybranú úlohu" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "Po&známka" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Otvoriť novú záložku s pohľadom na poznámky" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Skryť" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Skryť panel nástrojov" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Malé ikony" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Malé ikony (16×16) na paneli nástrojov" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Stredne veľké ikony" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Stredne veľké ikony (22×22) na paneli nástrojov" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Veľké ikony" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Veľké ikony (32×32) na paneli nástrojov" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Nová úloha zo šablóny" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Prepnúť ka&tegóriu" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Zmena &priority úlohy" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Spustiť sledovanie práce" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (podkategórie)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (podradené úlohy)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Priorita" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Strana" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Pripomienka" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d úloh po termíne" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "jedna úloha po termíne" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d úloh s blížiacim sa termínom" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "jedna úloha, ktorá má byť čoskoro dodaná" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "sledovanie \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "sleduje sa práca na %d úlohách" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Otvoriť...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Otvoriť %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "Z&lúčiť..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Zlúčiť úlohy z iného súboru s aktuálnym súborom" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Zatvoriť\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Uložiť\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "Zlúčiť so zmenami na &disku\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "Uložiť &ako...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "&Uložiť vybrané úlohy do nového súboru s úlohou..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Uložiť vybraé úlohy do osobitného súboru s úlohou" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Uložiť vybranú úlohu ako šablónu" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Uložiť vybranú úlohu ako šablónu úloh" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importovať šablónu..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importovať novú šablónu zo súboru so šablónou" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Úprava šablón ..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Úprva existujúcich šablón" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Úprava šablón" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "Odstrániť zmazané &položky" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Odstrániť vymazané úlohy a poznámky (pozrite si kapitolu SyncML v " "Pomocníkovi)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Odstránenie vymazaných položiek nemožno vrátiť späť.\n" "Ak plánujete zapnutie funkcie\n" "SyncML znov, s rovnakým\n" "serverom, aký ste už používali,\n" "tieto položky budú pravdepodobne obnovené.\n" "\n" "Naozaj chcete vykonať vyčistenie?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Nastavenie strany...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "Náhľad tlače..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Zobraziť náhľad, ako bude vyzerať tlač" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Ukážka pred tlačou" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Tlačiť...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Spravovať zálohy..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Spravovať všetky zálohy súboru úloh" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportovať ako &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exportovať položky z prehliadača do formátu HTML" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportovať ako &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Exportovať položky z prehliadača do formátu CSV" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Export ako &iKalendár..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exportovať položky z prehliadača do formátu iCalendar" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exportovať do súboru &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Exportovať položky z prehliadača do formátu Todo.txt (pozrite si todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Import CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Import úloh z CSV súboru" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importovať CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Vybraný súbor je prázdny. Vyberte prosím iný súbor." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importovať Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importovať úlohy zo súboru Todo.txt (pozrite si todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importovať Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "Synchronizácia S&yncML..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synchronizovať so serverom SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "U&končiť\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Späť" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Opakovať" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Vyst&rihnúť\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopírovať\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Prilepiť\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "P&rilepiť ako podradenú položku\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Nastavenia...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Nastavenia" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Nastavenia &SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Upraviť nastavenia SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "Nastavenia SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Prispôsobiť panel nástrojov" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Prispôsobiť" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Vybrať všetko\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Zrušiť označenie" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Odznačí všetky položky" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "Vyčistiť &všetky filtre\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Obnoviť všetky kategórie\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Zobraziť skryť položky patriace do %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "P&remenovať pohľad..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Premenovať zvolený pohľad" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Nový názov pohľadu:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Premenovať pohľad" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Skryť tento stĺpec" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Skryť označený stĺpec" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Rozbaliť všetky položky\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Zbaliť všetky položky\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Vzostupne" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Zoradiť vzostupne (zaškrtnuté) alebo zostupne (nezaškrtnuté)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Zoradiť s rozlišovaním &veľkosti písma" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Pri porovnávaní textu sa VEĽKÉ písmená berú inak (zaškrtnuté) alebo rovnako " "(nezaškrtnuté) ako malé" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Zoradiť najprv podľa &stavu" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Zoradí úlohy v prvom rade podľa stavu (aktívna/neaktívna/dokončená)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Skryť zl&ožené úlohy" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Zobraziť/skryť úlohy s podradenými úlohami v režime zoznamu" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Úpravy...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Upraviť vybranú položku (vybrané položky)" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Upraviť &sledovanú úlohu...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Upraviť aktuálne sledovanú úlohu (úlohy)" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "Vy&mazať\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Vymazať vybranú položku (položky)" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Vytvorenie novej úlohy zo šablóny" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Nová úlohy s vybranými &kategóriami..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Vložiť novú úlohu so zvolenými vybranými kategóriami" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Nová úloha s vybranými úlohami ako &požiadavkami..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Vložiť novú úlohu s vybranými požadovanými úlohami" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Nová úloha s vybranými úlohami ako &závislými úlohami..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Vložiť novú úlohu s vybranými závislými úlohami" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nová podradená položka..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Nová &podradená úloha..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Nová podradená poznámka..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Nová podkategória..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Vložiť novú podradenú položku k vybranej položke" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "Označiť úlohu ako &aktívnu\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Označiť vybranú úlohu (úlohy) ako aktívne" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "Označiť úlohu ako &neaktívnu\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Označiť vybranú úlohu (úlohy) ako neaktívne)" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "Označiť úlohu ako &dokončenú\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Označí vybranú úlohu ako dokončenú" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "&Maximalizovať prioritu\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "&Minimalizovať prioritu\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Zvýšiť prioritu\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Znížiť prioritu\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Prepnúť %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&Mail...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Mail...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Rôzne veci" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "a" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Nemožno odoslať e-mail:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "Mailová chyba: %s" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Pridať &poznámku...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Otvoriť všetky poznámky...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Spustiť sledovanie práce\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Spustiť sledovanie práce pre úlohu (úlohy) z vybraných prác" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Bez predmetu)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Spustiť sledovanie práce pre %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Vyberte úlohu z menu a spustite sledovanie práce na nej" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Zastaviť sledovanie alebo pokračovať v sledovaní práce\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Za&staviť sledovanie %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Zastaví sledovanie práce na označenej úlohe" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "Po&kračovať v sledovaní úlohy: %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Pokračovať v sledovaní práce na poslednej sledovanej úlohe" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "viaceré úlohy" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Nová kategória...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Nová poznámka...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Nová &poznámka s vybranými kategóriami..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Vložiť novú poznámku so zvolenými vybranými kategóriami" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "Pridať &prílohu...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Chyba pri otváraní prílohy" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Otvoriť všetky prílohy...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Obsah pomocníka\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "Obsah &Pomocníka\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Pomocník" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tipy" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tipy o programe" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymizovať" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Anonymizovať súbor s úlohou pre pripojenie k záznamu o chybe" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Váš súbor s úlohami bol anonymizovaný a uložený na:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Dokončené" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&O programe %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Verzia a kontaktné informácie o %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "O %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licencia" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "Licencia %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Skontrovať dostupnosť aktualizácie" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Kontrola dostupnosti novej verzie %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Nemožno otvoriť URL adresu:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "Chyba adresy URL: %s" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "Č&asto kladené otázky" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Prezeranie často kladených otázok a odpovedí" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Oznámenie chyby ..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Oznámte chybu alebo si pozrite zoznam známych chýb" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Požiadavka na &funkciu..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Požiadať o novú funkciu alebo hlasovať za existujúcu požiadavku" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "Požiadavka na &podporu..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Vyžiadať podporu od vývojárov" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Pomoc pri vylepšení &prekladov..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Pomoc pri vylepšení prekladu %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Prispieť..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Prispieť na podporu vývoja programu %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Obnoviť" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Obnoví pôvodný stav okna" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Vyhľadať" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Podrobnosti práce" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Práca za deň" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Práca za mesiac" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Práca za týždeň" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Režim agregácie" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Zoznam" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Strom" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Ak je táto voľba vybraná, úlohy sa zobrazia vo forme stromu, inak sa " "zobrazia vo forme zoznamu" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrovať pre všetky označené kategórie" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrovať pre ľubovoľnú označenú kategóriu" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Ak je táto voľba aktívna, budú sa filtrovať všetky vybrané kategórie. V " "opačnom prípade len jedna vybraná kategória" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Výber príkazu" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "N&astaviť" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Konfigurovať zobrazovač kalendára" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Nastavenie zobrazenia pre Hierarchický kalendár" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "Ďa&lšie obdobie" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Zobraziť ďalšie obdobie" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Predchádazjúce obdobie" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Zobraziť predchádzajúce obdobie" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Dnes" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Zobraz dnešný dátum" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatická zmena veľkosti stĺpcov" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Ak je vybrané, stĺpce sa automaticky rozložia do dostupného priestoru" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Nastavenie uhla kruhového diagramu" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Bez zaokrúhľovania" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 minúta" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minút" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Presnosť zaokrúhľovania" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Vždy &zaokrúhliť" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Vždy zaokrúhliť na najbližšiu jednotku nahor" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Typ" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Zoradiť podľa názvu" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Názov" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Zoradiť podľa popisu" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Popis" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "Dá&tum vytvorenia" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Zoradiť podľa dátumu vytvorenia" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "Dátum ú&pravy" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Zoradiť podľa dátumu poslednej úpravy" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Zobraziť/skryť stĺpec s popismi" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Poznámky" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Zobraziť/skryť stĺpec s poznámkami" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Zobraziť/skryť stĺpec s dátumom vytvorenia" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Zobraziť/skryť stĺpec s dátumom poslednej úpravy" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Panely nástrojov je možné prispôsobiť" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" "Kliknite na ikonu kolieska na pravej strane a pridajte alebo zmeňte " "usporiadanie tlačidiel." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Preusporiadanie v stromovom zobrazení" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "V stromovom zobrazení je ručná zmena poradia možná len ak sú zvolené položky " "na tej istej úrovni." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" "V stromovom zobrazení je možné vložiť objekty len na rovnakú úrovéň (rodiča)." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "Ruč&né preusporiadanie" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "Zobraziť/skryť stĺpec ručného preusporiadania" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Prílohy" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Zobraziť/skryť stĺpec s prílohami" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategórie: označené: %d, spolu: %d" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Stav: %d filtrovaných" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Obdobie" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Celkový strávený čas" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Celkové príjmy" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Utorok" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Streda" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Štvrtok" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Piatok" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Sobota" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategórie" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Zobraziť/skryť stĺpec s kategóriami" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Strávený čas" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Zobraziť/skryť stĺpec strávený čas" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "Príjm&y" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Zobraziť/skryť stĺpec príjmy" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Strávený čas celkom" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Zobraziť/skryť stĺpec celkový strávený čas" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "Celkový príjem" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Zobraziť/skryť stĺpec celkové príjmy" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Práca za týždeň" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Zobraziť/skryť stĺpce pre čas strávený v jednom dni v týždni" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Agregácia práce" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Práca: vybraných - %d, viditeľných: %d, spolu: %d. Strávený čas - vybraných: " "%s, viditeľných: %s, spolu: %s" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Stav: sleduje sa %d" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Podrobnosti:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Vykázaný čas pre vybrané úlohy" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Zoradiť kategórie podľa predmetu" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Zoradiť kategórie podľa popisu" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Zoradiť kategórie podľa dátumu vytvorenia" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Zoradiť kategórie podľa dátumu poslednej úpravy" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Ručne usporiadať kategórie" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Zoradiť prílohy podľa predmetu" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Zoradiť prílohy podľa popisu" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Zoradiť prílohy podľa kategórie" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Zoradiť prílohy podľa dátumu vytvorenia" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Zoradiť prílohy podľa dátumu poslednej úpravy" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Zoradiť poznámky podľa názvu" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Zoradiť poznámky podľa popisu" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Zoradiť poznámky podľa kategórie" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Zoradiť poznámky podľa dátumu vytvorenia" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Zoradiť poznámky podľa dátumu poslednej úpravy" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Ručne usporiadať poznámky" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Zoradiť úlohy podľa názvu" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Zoradiť úlohy podľa popisu" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Zoradiť úlohy podľa kategórie" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "Zoradiť úlohy podľa dátumu vytvorenia" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "Zoradiť úlohy podľa dátumu poslednej úpravy" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Ručne usporiadať úlohy" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Zoradiť úlohy podľa plánovaného dátumu spustenia" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Plánovaný dátum spustenia" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Zoradiť úlohy podľa termínu" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Termín" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Zoradiť úlohy podľa dátumu dokončenia" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Dátum &dokončenia" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Zoradiť úlohy podľa požiadaviek" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "Po&žiadavky" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Zoradiť úlohy podľa závislých úloh" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Závislé úlohy" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Zoradiť úlohy podľa zostávajúceho času" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "Zos&távajúci čas" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Zoradiť úlohy podľa percenta dokončenia" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "Pe&rcento dokončenia" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Zoradiť úlohy podľa opakovania" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Opakovanie" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Zoradiť úlohy podľa rozpočtu" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Rozpočet" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Zoradiť úlohy podľa stráveného času" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Z&ostávajúci rozpočet" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Zoradiť úlohy podľa zostávajúceho rozpočtu" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Zoradiť úlohy podľa priority" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Zoradiť úlohy podľa hodinovej mzdy" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Hodinová mzda" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Zoradiť úlohy podľa pevnej mzdy" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Pevná &mzda" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Zoradiť úlohy podľa príjmu" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Zoradiť úlohy podľa dátumu a času pripomienky" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Pripomienky" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Názov" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Zoradiť poznámky podľa kategógie" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Poznámky: %d označených, %d spolu" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Stav: ---" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Úlohy – označené: %d, viditeľné: %d, spolu: %d" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" "Stav – po dodacom termíne: %d, meškajúce: %d, neaktívne: %d, dokončené: %d" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "So stlačením klávesu Shift kliknite na filtračný nástroj, ak chcete vidieť " "iba úlohy s príslušným statusom" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Úlohy" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Časová os" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Teraz" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Štvorcová mapa úlohy" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "Umiestiť úlohy podľa" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hierarchický kalendár" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Nastavenie zobrazenia Hierarchického kalendára" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Konfigurácia prehliadača kalendára" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "Ručné preusporiadanie" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "Zobrazí stĺpec \"Ručné preusporiadanie\", ktorý umožní ťahaním za položky v " "stĺpci definovať akékoľvek poradie." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Závislé úlohy" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% hotových" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Zostávajúci čas" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Dátumy" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "V&šetky stĺpce s dátumom" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Zobraziť/skryť všetky stĺpce súvisiace s dátumami" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Zobraziť/skryť stĺpce s dátumom plánovaného spustenia" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Zobraziť/skryť stĺpec s termínom" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Aktálny dátum spustenia" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Zobraziť/skryť stĺpce s aktuálnym dátumom spustenia" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Zobraziť/skryť stĺpec dátum dokončenia" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Zobraziť/skryť stĺpec so zostávajúcim časom" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Zobraziť/skryť stĺpec s opakovaním" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "Stĺpce so &všetkými rozpočtami" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Zobraziť/skryť stĺpec všetky stĺpce súvisiace s rozpočtom" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Zobraziť/skryť stĺpec s rozpočtom" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Zostávajúci rozpočet" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Zobraziť/skryť stĺpec pre zostávajúci rozpočet" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finančné" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "Všetky &finančné stĺpce" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Zobraziť/skryť všetky stĺpce súvisiace s financiami" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Zobraziť/skryť stĺpec hodinová mzda" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Zobraziť/skryť stĺpec pevná mzda" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Zobraziť/skryť stĺpec s požiadavkami" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Zobraziť/skryť stĺpec so závislými úlohami" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Zobraziť/skryť stĺpce s percentami dokončenia" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Zobraziť/skryť stĺpec s prílohami" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Zobraziť/skryť stĺpec priorita" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Zobraziť/skryť stĺpec s pripomienkami" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "Zobraziť úlohy ako" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Štatistiky úlohy" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Čiarka" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tabulátor" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Medzera" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Dvojbodka" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Bodkočiarka" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Zvislá čiara" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (deň prvý)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (mesiac prvý)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Jednoduché úvodzovky" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Dvojité úvodzovky" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Zdvojiť" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Odchod s" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importovať len vybrané riadky" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Prvý riadok obsahuje popis polí" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Oddeľovač" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Formát dátumu" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Znak úvodzoviek" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Úvodzovky pre odchod" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Pole #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Prosím vyberte súbor." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategória" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Dátum pripomínača" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Percento kompletnosti" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Hlavička stĺpcov v súbore CSV" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "Atribút %s" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Bez mapovania polí." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Pole \"%s\" nemožno vybrať viackrát." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Polia %s nemožno vybrať viackrát." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Obsah" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "O úlohách" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Nastavenia úlohy" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Stavy úlohy" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Farby úlohy" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Pripomínače" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "O práci" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Nastavenia práce" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "O kategóriách" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Nastavenia kategórie" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "O poznámkach" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Nastavenia poznámky" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Tlač a export" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "O tlači a exporte" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Tlač" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Exportovanie" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Viacpoužívateľské použitie" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "O viacpoužívateľskom použití" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Možnosti ukladania" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "Zasielanie úloh e-mailom" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "Používateľom definované atribúty zasielania e-mailov" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integrácia do e-mailov" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "O integrácii do e-mailov" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Pripojenie e-mailu k úlohe" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Vytvorenie úlohy z e-mailu" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Podpora SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Čo je SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Inštalácia" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Obmedzenia" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Poradca pri riešení problémov" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Vyčistenie vymazaných položiek" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone a iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s na iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Konfigurácia" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s na zariadení Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt a Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importovanie todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exportovanie todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Šablóny úlohy" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "O šablónach" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Použitie šablón" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Grafické používateľské rozhranie" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Klávesové skratky" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Úlohy sú základnými objektami, s ktorými je možné manipulovať, Úlohy môžu\n" "reprezentovať čokoľvek od jednoduchej malej záležitosti, ktorú treba urobiť, " "až po kompletný \n" "projekt pozostávajúci z rôznych fáz a veľkého počtu aktivít." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Úlohy majú nasledujúce vlastnosti, ktoré môžete zmeniť:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Predmet: jeden riadok, ktorý sumarizuje úlohu." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Popis: viacriadkový popis úlohy." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Plánovaný dátum spustenia: prvý dátum, v ktorom sa má úloha započať. \n" "Plánovaný dátum spustenia, ktorý je predvolený k dátumu vytvorenia úlohy. Je " "možné nastaviť aj hodnotu 'Žiadny' \n" "ktorá udáva, že v skutočnosti nechcete túto úlohu spustiť. Takéto nastavenie " "môže byť užitočné \n" "pre zaregistrovanie napríklad doby nečinnosti kvôli chorobe." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Dodací termín: dátum, do ktorého má byť úlohy dokončená. \n" "Ak úloha nemá fixný dodací termín, môže byť zadaná hodnota 'Žiadny'." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Aktuálny dátum spustenia: dátum úlohy, ktorá bola aktuálne spustená.\n" "Aktuálny dátum spustenia je možné upraviť priamo, nastaví sa však aj vtedy, " "keď\n" "sa začne sledovanie práce pri úlohe, alebo keď nastavíte percentá dokončenia " "úlohy\n" "na hodnotu v rozmedzí 0 % a 100 %." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Dátum dokončenia: tento dátum má hodnotu 'Žiadny' dovtedy, pokia nebola " "úloha\n" "dokončená. Keď úlohu označíte ako dokončenú, nastaví sa tento dátum na\n" "aktuálny dátum. Dátum dokončenia je možné zadať aj manuálne." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Predpoklady: iné úlohy, ktoré je nutné dokončiť predtým, než\n" "je možné začať pracovať na danej úlohe. Úloha zostáva neaktívna dovtedy, " "pokiaľ\n" "nebude doknčená posledná predpokladaná úloha. Pamätajte na to, že pokiaľ má " "úloha nastavenýšpecifický dátum plánovaného spustenia, musí byť tento dátum " "v minulosti a všetky\n" "predpokladané úlohy musia byť dokončené ešte predtým, než sa úloha označi " "ako meškajúca." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Rozpočet: počet hodín, ktoré sú dostupné pre danú úlohu." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Hodinová platba: množstvo peňazí zarobených za hodinu spracovávania tejto " "úlohy." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Fixný poplatok: množstvo peňazí zarobených za celú úlohu \n" "bez ohľadu na čas strávený pri jej spracovávaní." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Nasledujúce hodnoty sú vypočítané z hodnôt hore:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Zostávajúce dni: počet dní, zostávajúcich do dodacieho termínu." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Závislé úlohy: ostatné úlohy, ktoré je možné spustiť až vtedy, keď \n" "bola dokončená požadovaná úloha." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Strávený čas: práca vykonaná na danej úlohe." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Zostávajúci rozpočet: rozpočet pre úlohu mínus čas, ktorý ste už strávili " "pri spracovávaní úlohy." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" "Odmena: hodinová sadzba krát počet strávených hodín, plus fixný poplatok." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Úlohy vždy majú presne jeden z nasledujúcich stavov:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktívna: aktuálny dátum spustenia v minulosti;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Neaktívna: úloha, ktorá ešte nebola spustení a/alebo neboli \n" "dokončené všetky predpokladané úlohy;" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Kompletné: úloha bola dokončená." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Dodatočne môžu byť úlohy referencované ako:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Po dodacom termíne: dodací termín bol v minulosti;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Má byť čoskoro dodané: dodací termín sa blíži (konkrétnu hodnotu je možné \n" "nastaviť v nastaveniach);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Meškajúca: plánované spustenie bolo v minulosti a úloha \n" "nebola spustená;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Prekročený rozpočet: nezostáva žiadny rozpočet;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Nedodržaný rozpočet: stále zostávajúci rozpočet;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Žiadny rozpočet: úloha nemá žiadny rozpočet." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Text úloh je označený farbou podľa nasledujúcich pravidiel:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Úlohy po dodacom termíne majú červenú farbu;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Úlohy, ktoré majú byť čoskoro dodané, sú oranžovej farby;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Aktívne úlohy sú napísané čiernym textom a označené modrou ikonou;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Meškajúce úlohy sú ružové;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Budúce úlohy sú šedé a" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Dokončené úlohy sú zelenej farby." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Predpokladá sa, že ste nezmenili farby textu prostredníctvom \n" "dialógového okna pre nastavenia." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Farba pozadia úloh je určovaná kategóriami, do ktorých \n" "úloha patrí. Pozrite si sekciu o \n" "Nastaveniach kategórie v dolnej časti." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Môžete nastaviť pripomínač na špecifický dátum a čas. %(name)s \n" "zobrazí správu pripomínača práve v tento deň a v danom čase. Z dialógového " "okna pripomínača\n" "môžete úlohu otvoriť, spustiť sledovanie práce na úlohe, alebo označiť úlohu " "ako\n" "dokončenú. Takisto je možné dočasné vypnúť pripomínač." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Ak máte nainštalovaný Growl alebo Snarl, môžete v nastaveniach program\n" "%(name)s nastaviť tak, aby použil tieto pripomínače." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "Kedykoľvek, keď pracujete na úlohách, môžete zaznamenávať množstvo času\n" "stráveného pri danej úlohe. Vyberte si úlohu a aktivujte voľbu 'Spustiť " "sledovanie práce'\n" "v menu Práca, alebo v kontextovom menu, alebo prostredníctvom tlačidla " "'Spustiť sledovanie práce'\n" "v lište nástrojov." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Záznamy o práci majú nasledujúce nastavenia, ktoré môžete zmeniť:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Úloha: úloha, ku ktorej patrí daná práca." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Dátum/čas spustenia: dátum a čas začatia práce." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Dátum/čas zastavenia: dátum zastavenia a čas práce: Hodnota \n" "'Žiadny' sa zobrazuje dovtedy, pokiaľ na úlohe stále pracujete." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Popis: viacriadkový popis práce." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Strávený čas: koľko času ste strávili pri spracovávaní tejto úlohy." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Odmena: peniaze zarobené za čas venovaný úlohe." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Úlohy a poznámky môžu patriť do jednej alebo viacerých kategórií. Najskôr je " "potrebné \n" "vytvoriť kategóriu, ktorú chcete použiť, prostredníctvom menu 'Kategória'. " "Potom \n" "môžete pridať položky do jednej alebo viacerých kategórií, úpravou položky a " "výberom \n" "relevantných kategŕoií pre túto položku v paneli pre kategóriu, v dialógovom " "okne pre úpravy." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Môžete obmedziť položky zobrazené v prehliadačoch úlohy a poznámok na jednu " "\n" "alebo viaceré kategórie, a to výberom kategórie v prehliadači kategórií. " "Napríklad: \n" "ak máte vytvorenú kategóriu 'telefonické hovory' a vyberiete túto kategóriu, " "zobrazovače úlohy \n" "budú zobrazovať iba úlohy patriace do tejto kategórie; inými slovami " "telefonické hovory, \n" "ktoré je nutné urobiť." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Kategórie majú nasledujúce nastavenia, ktoré môžete meniť:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Predmet: riadok, ktorý obsahuje sumár kategórie." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Popis: viacriadkový popis kategórie." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Vzájomne sa vylučujúce podkategórie: políčko pre výber, indikujúce\n" "či sa podkategórie jednej kategórie vzájomne vylučujú. Ak áno\n" "položky môžu patriť iba do jednej z podkategórií. Pri filtrovaní môžete " "použiť\n" "filter naraz len na jednu z podkategórii." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Nastavenia prostredia, ako napríklad ikony, písma a farieb: \n" "nastavenia prostredia sa používajú na vykreslenie kategórie, ale aj položky\n" "ktorá patrí do tejto kategórie. Ak kategória nemá žiadnu farbu, písmo alebo " "ikonu \n" "ale má rodičovskú kategóriu s takýmito prvkami, použijú sa nastavenia " "rodičovskej \n" "kategórie. Ak položka patrí do viacerých kategórií, z ktorých každá má " "nejakú inú farbu, \n" "použije sa na vykreslenie položky mix týchto farieb." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Poznámky je možné použiť na zaznamenanie náhodných informácií, ktoré chcete\n" "zachovať v súbore s úlohou. Poznámky môžu byť samostatné, alebo môžu byť " "súčasťou iných položiek,\n" "ako aj úloh a kategórií. Samostatné poznámky sa zobrazujú v prehliadači " "poznámok. Poznámky, ktoré sú\n" "súčasťou iných položiek, sa v prehliadači poznámok \n" "nezobrazujú." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Poznámky majú nasledujúce súčasti, ktoré je možné zmeniť:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Predmet: riadok, ktorý sumarizuje poznámku k položke." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Popis: viacriadkový popis poznámky." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" "Nastavenia vzhľadu a prostredia, ako je napríklad ikona, písmo a farby." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Tlačové a exportné úlohy fungujú rovnakým spôsobom: keď tlačíte\n" "alebo exportujete údaje, vytlačia alebo vyexportujú sa údaje z aktívneho " "prehliadača.\n" "Údaje sa vytlačia alebo vyexportujú tak, ako sú zobrazené v prehliadači.\n" "Údaje sa vytlačia alebo vyexportujú v takom istom poradí, ako sa zobrazujú\n" "v prehliadači. Stĺpce, ktoré sú viditeľné, určujú to, ktoré\n" "podrobnosti sa vytlačia alebo vyexportujú. Pri filtrovaní položiek, " "napríklad pri skrytí\n" "dokončených úloh, sa odfiltrované položky nevytlačia a ani nevyexportujú." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Upravte obsah v prehliadači, pridaním položiek v správnom\n" "poradí, zobrazením alebo skrytím niektorých stĺpcov a aplikovaním\n" "relevantných filtrov." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Môžete si pozrieť náhľad na tlačený súbor,\n" "zobrazíte ho príkazom Súbor -> Náhľad tlače. Môžete upraviť nastavenia " "strany,\n" "kliknutím na príkazy Súbor -> Nastavenia strany. Ak túto funkciu podporuje " "použitá platforma, \n" "môžete si pri tlači vybrať všetky položky viditeľné v aktívnom prehliadači, " "alebo iba \n" "vybrané položky." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Ďalej si vyberte formát, do ktorého sa bude exportovať a to\n" "či chcete exportovať všetky viditeľné položky alebo len tie, ktoré sú " "vybrané. Dostupné formáty\n" "exportu zahŕňajú formát CSV (údaje oddeľované čiarkou), HTML a iCalendar. " "Ak\n" "exportujete do súboru HTML, vytvorí sa aj súbor CSS, ktorý môžete zmeniť v " "prípade,\n" "že chcete zmeniť vzhľad súboru HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "Používateľom definované atribúty zasielania úloh e-mailom" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "Môžete zmeniť správanie príkazu zasielania e-mailov prostredníctvom " "atribútov\n" "definovaných používateľom v popise úlohy. Tieto parametre musia byť na " "samostatnom\n" "riadku. Podporované parametre sú 'cc' a 'to'. Napríklad:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=jeden@priklad.sk]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=druhy@priklad.sk]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Súbor úloh môže byť súčasne otvorený viacerými inštanciami programu " "%(name)s,\n" "či už bežiacimi na jednom počítači alebo na rôznych prostredníctvom " "zdieľania cez sieť.\n" "Pri uložení zmien, %(name)s v skutočnosti zlúči vaše zmeny so všetkým, čo " "bolo medzičasom\n" "zmenené na disku v čase od vášho posledného uloženia. Konflikty sú vyriešené " "automaticky,\n" "spravidla vo váš prospech. Týmto sa sledujú nasledovné dva prípady použitia:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "Ten istý používateľ, ktorý má otvorený zoznam úloh na viacerých počítačoch\n" "(v práci, doma, notebook)." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Viacero používateľov, ktorí pracujú s tým istým súborom úloh." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "Prvý prípad je najčastejší a najbezpečnejší. V druhom\n" "prípade hrozí isté riziko. Väčšina protokolov zdieľania diskov cez sieť " "nepodporuje totiž taký\n" "druh uzamykania súborov, ktorý by umožnil realizovať tento prípad použitia " "bezpečne na 100%. Nasleduje zoznam bežných\n" "protokolov spolu s opisom ich správania." #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Žiadna z opisovaných možností zdieľania nefunguje stopercentne. V prípade,\n" "ak dvaja používatelia uložia svoje zmeny v rámci pár stoviek milisekúnd, " "dôjde k strate údajov." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "Ide o najbežnejší protokol: zdieľané priečinky systému Windows a ich iné " "implementácie\n" "(Samba). Ak na strane servera a klienta nie je podpora pre určité " "rozšírenia, Koč úloh nebude\n" "schopný automaticky zistiť kedy bol súbor zmenený niekým iným." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "NFS" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Zatiaľ netestované." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Populárny spôsob prístupu k súborom z viacerých počítačov (porovnaj so " "SpiderOak,\n" "ktorý predstavuje bezpečnejšiu alternatívu). Zmeny v súbore úloh sú správne " "rozpoznané programom %(name)s\n" "keď nastanú." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s sa integruje s viacerými agentmi mail-user,\n" "pomocou techniky Ťahaj a pusť. Má to však určité obmedzenia; e-maily sa\n" "skopírujú do priečinka so súborom %(name)s, ako súbory s koncovkou .eml a " "budú\n" "sa neskôr otvárať v ľubovoľnom programe, ktorý je asociovaný s toutu " "koncovkou\n" "vo vašom systéme. Na druhej strane vám to umožní otvárať tieto\n" "e-mailové prílohy na systéme, ktorý môže byť odlišný od toho, na ktorom\n" "sa súbory vytvárali." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Podporovaní sú títo agenti mail-user:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Kvôli obmedzeniam programu Thunderbird, nie je možné technikou Ťahaj a pusť\n" "presúvať e-maily z programu Thudnerbird. Toto sa však netýka programu " "Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Existujú dva spôsoby pripojenia e-mailu k úlohe; môžete:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "ho presunúť na úlohu buď v strome úloh alebo v zozname úloh." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "ho presunúť do panelu pre prílohy v editore úloh." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Presunutím e-mailu na prázdnu časť v strome úloh alebo v zoznamen úloh\n" "sa vytvorí nová úloha. Jej predmet bude rovnaký ako predmet e-mailu, jej\n" "popis sa vytvorí z obsahu e-mailu. Naviac, e-mail sa automaticky\n" "pripojí k novej vytvorenej úlohe." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML je protokol jazyka XML, vytvorený na účely synchronizácie viacerých\n" "aplikácii s obsahom na serveri. Populárnym open-source serverom je napríklad " "Funambol. " "Synchronizační \n" "klienti sú dostupní pre viaceré zariadenia a aplikácie (Outlook, Pocket PC,\n" "iPod, iPhone, Evolution a podobne...), takisto aj aj tzv. \"pripájače\",\n" "ktoré umožňujú serveru vykonávať synchronizáciu so systémami Exchange, " "Google Calendar,\n" "a podobne." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s má zabudovanú podporu pre synchronizáciu klientov SyncML, na " "systémoch Windows A Mac OS X\n" "(predpokladá sa, že používate dodávané binárne súbory). To znamená, že " "môžete\n" "nastaviť %(name)s na synchronizovanie s rovnakým serverom SyncML\n" "s ktorým synchronizujete aj program Outlook a môžete mať uložené všetky " "úlohy a poznámky programu Outlook\n" "v súbore programu %(name)s. Takisto môžete mať všetky úlohy a poznámky z " "programu %(name)s uložené aj v programe Outlook. Alebo\n" "vo svojom zariadení Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "Na systémoch Linux si musíte nainštalovať SyncML client binding pre\n" "jazyk Python. 64-bitový balíček zo systému Debian pre jazyk Python 2.7 je " "dostupný na\n" "taskcoach.org,\n" "na konci sekcie pre stiahnutie v systéme Linux." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Táto funkcia je voliteľná a štandardne je vypnutá. Pre jej zapnutie,\n" "prejdite do dialógového okna s nastaveniami a vyberte ju na stránke s " "vlastnosťami." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "Pre nainštalovanie SyncML, upravte nastavenia SyncML v časti Úpravy/SyncML. " "\n" "Vyplňte autorizačnú adresu URL, vaše Identifikačné údaje na serveri a " "vyberte, \n" "ktoré položky sa majú synchronizovať (úlohy a/alebo poznámky). Adresa " "URL závisí od servera,\n" "ktorý vyberiete; napríklad to môže byť:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Názvy databáz sú štandardné; mali by fungovať aj predvolené\n" "hodnoty." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Každý súbor s úlohou má svoje vlastné klientské ID, takže dva rôzne\n" "súbory s úlohami budú serverom považované za dve rôzne \"zariadenia\"." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Niektoré obmedzenia sú spôsobené faktom, že podliehajúcim typom \n" "údajov sú údaje vcalendar, niektoré %(name)s nastavenia teda nie je možné \n" "prezentovať na serveri." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Úloha a hierarchia kategórií sa na serveri stratili." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Opakovanie a pripomínače nie sú momentálne podporované." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Kategórie pre poznámku sa na serveri stratili." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Systém na detekciu / riešenie konfliktu je riešením \n" "pre obmedzenia servera Funambol. Malo by byť funkčné vo väčšine prípadov, ak " "sa však \n" "budú synchronizovať so serverom v rovnakom čase viaceré programy, môžu \n" "nastať problémy." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Pravdepodobné nejaké iné..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "Položky menu SyncML sú prítomné len vtedy, ak je podporovaná \n" "vaša platforma. Momentálne sú podporované platformy:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bitov (viď dole)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bitov" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 a novší, Intel aj PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Môžete zaznamenať problém pod systémom Windows v tom prípade, že \n" "nemáte nainštalovanú prostredie Microsoft Visual 8 runtime. Môžete si ho " "stiahnuť na \n" " stránke firmy Microsoft pre stiahnutie." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "Ak je zapnutá funkcia SyncML, vymazaním úlohy alebo poznámky nedôjde k jej \n" "okamžitému vymazaniu, ale k označeniu na vymazanie. Vymazaná úloha alebo " "poznámka bude \n" "odstránená zo zoznamu úloh alebo poznámok až pri ďalšej synchronizácii. " "Preto, \n" "ak došlo k použitiu funkcie SyncML a potom k jej vypnutiu bez vykonania " "synchronizácie, \n" "môžu vo vašom súbore s úlohami zostať niektoré vymazané poznámky alebo " "úlohy. Nie je to problém, \n" "dôjde však k miernemu nárastu obsadeného miesta." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "V tomto prípade môžete použiť príkaz \"Vyčistiť vymazané položky\" v menu " "Súbor, \n" "čím ihneď vymažete aktuálne vymazané úlohy. Táto možnosť je aktívna vtedy,\n" "keď ju môžete potrebovať, teda vtedy, keď sú k dispozícii nejaké položky na " "vyčistenie. Po vyčistení\n" "pamätajte prosím na to, že ak opäť zapnete Sync ML a vykonáte synchronizáciu " "s rovnakým serverom,\n" "aký ste používali predtým, všetky položky sa objavia znova, pretože server\n" "nerozpozná, že boli vymazané." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch a iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s na iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Je dostupná súprava prídavných programov pre %(name)s a pre zariadenia " "iPhone/iPod Touch/iPad, \n" "na adrese Apple AppStore. (Ak nemáte na svojom počítači " "nainštalovaný program iTunes, \n" "zobrazí sa vám stránka z ktorej si môžete program iTunes stiahnuť). \n" "Podporuje nasledujúce nastavenia:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Základné atribúty úlohy: predmet, popis, dátumy (s \n" "opakovaním)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarchické úlohy a kategórie" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Časové sledovanie" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Súbory viacnásobných úloh" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Dvojcestná synchronizácia s %(name)s na pracovnej ploche" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "Program je univerzálny a má používateľské rozhranie iPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Konfigurácia na iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "V aplikácií pre Nastavenia, sú dostupné niektoré nastavenia pre iPhone/iPod " "Touch/iPad \n" ":" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Zobraziť dokončené: určuje, či chcete zobraziť dokončené úlohy." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Zobraziť neaktívne: určuje, či chcete zobraziť neaktívne úlohy (plánovaný " "dátum spustenia \n" "v budúcnosti)." #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Pozícia ikony: LED-diódová ikona sa môže zobrazovať buď na \n" "ľavej, alebo na pravej strane obrazovky." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Kompaktný režim: ak je zapnutý, zoznam úloh má menšie \n" "ikony LED a nezobrazujú sa kategórie či dátumy." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Potvrdiť dokončené: ak je táto voľba zapnutá. zobrazí sa vyskakovacie " "hlásenie pre \n" "potvrdenie keď označíte úlohu ako kompletnú, kliknutím na LED." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# dní do dokončenia: Koľko dní v budúcnosti bude \n" "hodnotených ako \"čoskoro\"." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Konfigurácia na pracovnej ploche, všetky platformy" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Pred synchronizovaním musíte nakonfigurovať aj %(name)s na \n" "pracovnej ploche; v nastaveniach, v záložke \"Nastavenia\", si vyberte " "možnosť \"Zapnúť synchronizáciu s\n" "iPhone\". Reštartuje program %(name)s. Potom si v nastaveniach vyberte " "záložku \n" "\"iPhone\" a vyplňte aspoň heslo." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Ak kliknete na tlačidlo \"Synchronizovať\" v prehľade kategórií, %(name)s\n" "automaticky deteguje spustené inštancie programu %(name)s na vašej\n" "pracovnej ploche a opýta sa na výber niektorej inštancie (môžete mať " "spustené rôzne inštancie\n" "na rôznych počítačoch vo svojej sieti, alebo viaceré inštancie spustené\n" "na tom istom počítači). Pri predvolenom nastavení sa ako názov zobrazí " "nejaký reťazec\n" "identifikujúci počítač, na ktorom je daná inštancia spustená. Ak ho chcete " "upraviť, môžete\n" "zmeniť \"názov služby Bonjour\" v konfigurácii." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s si zapamätá vybrané inštanciu a skúsi ju použiť pri ďalšom\n" "synchronizovaní v budúcnosti. Ak nebude spustená, zobrazí sa opäť otázka na " "výber inštancie." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Pamätajte prosím na to, že synchronizácia prebieha cez sieť;\n" "nie je preto potrebné, aby bolo zariadenie pripojené cez USB, alebo aby bol\n" "spustený program iTunes." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Konfigurácia na systéme Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Na systémoch Windows si musíte nainštalovať Bonjour for Windows a\n" "umožniť jeho komunikáciu vo firewalle, ak to bude vyžadované." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Konfigurácia na systéme Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "Na systémoch Linux, musí byť nainštalovaný Avahi \n" "daemon a musí byť aj spustený. Väčšina moderných distribúcií ho už obsahuje. " "Takisto musíte \n" "nainštalovať balík dnscompat; jeho názov závisí od vašej konkrétnej " "distríbúcie \n" "(Na systémoch Ubuntu je to napríklad názov libavahi-compat-libdnssd1)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Nemôžem nájsť iPhone/iPod Touch app na webstránke firmy\n" "Apple" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Ak si chcete prehliadať obchod Apple App Store, musíte mať na\n" "svojom počítači nainštalovaný program iTunes.\n" "Stiahnuť " "iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Môj počítač sa nezobrazuje v zozname pri pokuse o synchronizovanie" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Skontrolujte, že váš iPhone/iPod Touch je pripojené do rovnakej siete \n" "váš počítač sa pripája cez WiFi." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone sa nedokáže pripojiť k môjmu počítaču" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "Ak máte firewall, skontrolujte či sú otvorené porty 4096 - 4100." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Nie, program %(name)s nie je dostupný pre platformu Android. Ale je " "dostupný\n" "Todo.txt Touch. \n" "Svoje úlohy môžete exportovať z programu %(name)s do formátu Todo.txt \n" " a potom ich upraviť na svojom zariadení so systémom Android." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt je open-source manažérom zoznamov s tým, čo je potrebné urobiť. " "Program vytvorila \n" "Gina Trapani a pracuje so súbormi v čistom textovom formáte. Todo.txt " "obsahuje rozhranie s \n" "príkazovým riadkom. Keďže súbory sú vo formáte čistého textu, môžete svoje " "úlohy \n" "upravovať akýmkoľvek textovým editorom. Todo.txt Touch je verziou programu " "Todo.txt pre\n" "platformu Android. Todo.txt Touch využíva súbory todo.txt, ktoré ponecháva " "vo vašom\n" "priečinku Dropbox. %(name)s dokáže importovať z a exportovať do súborov " "todo.txt \n" "." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "Pri exporte do Todo.txt, %(name)s vytvorí popri cieľovom súbore\n" "i súbor s príponou \"-meta\". Nemažte tento súbor; %(name)s ho používa\n" "na sledovanie externých zmien úloh. Keď nastane konflikt (úloha\n" "je menená Kočom úloh a súčasne externou aplikáciou pri importe),\n" "konflikt sa vyrieši v prospech súboru Todo.txt." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "Tip: Ak uložíte svoj súbor s úlohami v priečinku todo\n" "vytvorenom vo vašom priečinku Dropbox a zapnete automatické importovanie\n" "a exportovanie súboru Todo.txt, %(name)s bude udržiavať súbor s úlohami\n" "a súbor todo.txt synchronizované. Pamätajte prosím na to, že sa vytvorí aj " "ďalší súbor,\n" "s dodatkom '-meta' v názve. Tento súbor je interne využívaný programom " "%(name)s,\n" "aby bolo možné zistiť všetky úpravy vykonané v .txt súbore.\n" "Tento dodatočný súbor neupravujte, ani nevymazávajte." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s importuje predmety úloh, plánovaný dátum spustenia, dátum " "dokončenia, dátum \n" "skompletizovania, prioritu, kontexty a projekty. Kontexty a projekty sú \n" "transformované na kategórie v programe %(name)s. Projekty nie je možné " "transformovať na \n" "rodičovské úlohy, pretože program Todo.txt podporuje aj úlohy patriace k " "viacerým projektom, \n" "zatiaľčo program %(name)s podporuje iba jednu rodičovskú úlohu pre každú " "úlohu." #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Pri importovaní sa program %(name)s pokúša nájsť zhodné úlohy a \n" "kategórie a aktualizovať ich, namiesto toho, aby vytváral nové položky. " "Vykonáva sa porovnanie\n" "vyhľadávaním predmetu úlohy (alebo projektu či kontextu) a rodičovská\n" "položka, ak je dostupná." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exportuje do formátu Todo.txt predmety úlohy, plánovaný dátum " "spustenia, dátum dokončenia, dátum \n" "úplného skompletizovania, prioritu a kategórie. Iné atribúty\n" "nie sú exportované." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s podporuje dátumy a časy, avšak program Todo.txt podporuje len \n" "dátumy, takže časy spustenia, dokončenia a dátumy/časy skompletizovania nie " "sú\n" "exportované." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "V predvolenom nastavení podporuje program Todo.txt plánované dátumy " "spustenia \n" "a dátumy skompletizovania, avšak nie dátumy dokončenia. Preto program " "%(name)s používa rozšírenie pre\n" "exportovanie dátumu dokončenia úloh. Dátumy dokončenia sa zobrazujú ako " "\"dokončenie: RRRR-MM-DD\" v\n" "súbore todo.txt." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Program Todo.txt má priority uvedené vo forme písmen ('A'-'Z'). \n" "%(name)s používa číselnú formu priorít. Priorita 1 v programe %(name)s je " "transformovaná na\n" "hodnotu 'A', priorita 2 sa transformuje na 'B' atď, Priorita č. 26 má " "pridelené písmeno 'Z', Priority programu %(name)s\n" "ktoré sú menšie ako 1 a väčšie ako 26, sa neexportujú." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Kategórie, ktorých predmet začína znakom '+' budú vyexportované ako " "projekty. \n" "Kategórie, ktorých predmet začína znakom '@' budú vyexportované ako kontext. " "\n" "Kategórie, ktorých predmet nezačína znakom '+' or '@' nebudú vyexportované. " "\n" "Podradené kategórie budú vyexportované, ak je prítomná ich rodičovská " "kategória." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Šablóny slúžia ako vzor pre nové úlohy. V súčasnosti sú nastaveniami úloh, \n" "ktoré je možné \"parameterized\" dátumy. Pri použití šablóny \n" "bude mať vytvorená úloha nahradené dátumy takými, ktoré sú relatívne voči \n" "aktuálnemu dátumu." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Šablónu možno vytvoriť výberom úlohy (iba jednej) a kliknutím \n" "na príkaz \"Uložiť úlohu ako šablónu\", v menu Súbor. Všetky poradené úlohy, " "poznámky a \n" "prílohy sú súčasťou šablóny. Neukladajú sa iba kategórie." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Takisto môžete vytvoriť novú šablónu z predbežne vytvoreného súboru so " "šablónou \n" "(.tsktmpl); Jednoducho vyberte príkaz \"Importovať šablónu\" v menu Súbor a " "vyberte daný súbor. \n" "Súbory so šablónou sú uložené v podpriečinku priečinka so súborom " "TaskCoach.ini \n" "." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Ak chcete použiť šablónu úlohy, kliknite na príkaz \"Nová úloha z \n" "šablóny\" v menu pre úlohu, alebo kliknite na ekvivalentné tlačidlo na " "paneli nástrojov. Keď \n" "bude úloha vytvorená, dátum vytvorenia, dokončenia, spustenia a " "skompletizovania sa (ak sa používajú) \n" "presunúť relatívne voči aktuálnemu dátumu. To znamená, že ak vytvoríte " "šablónu z \n" "úlohy začínajúcej dnes a končiacej zajtra, pri každom použití tejto šablóny, " "\n" "sa plánovaný dátum spustenia nahradí aktuálnym dátumom a dátum dokončenia \n" "bude o jeden deň neskôr." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Takisto môžete pridávať šablóny z editora šablóny (Súbor/Upraviť\n" "šablóny), takisto ako upraviť základné nastavenia šablóny (dátumy a\n" "predmet). Dátumy sú reprezentované v čitateľnom formáte; editor dátumov\n" "zmení farbu na červenú v prípade, že program %(name)s nevie zistíť, aký " "dátum máte na myslí. Príklady\n" "dátumov:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Prosím pamätajte na to, že tento systém nie je lokalizovaný; dátumy\n" "musíte zadávať v anglickom jazyku a tvare." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Prehliadače môžete premiestňovať technikou Ťahaj a pusť, ktorou vytvoríte\n" "akékoľvek rozloženie v rozhraní, aké chcete. Keď začnete ťahať niektorý " "prehliadač\n" "zobrazia sa možné body pustenia, ktoré znázorňujú, kam je možné umiestniť " "prehliadač. Prehliadače\n" "sa takisto dajú umiestniť aj na seba, čím i vytvoríte poznámkové bloky." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "V dialógoch pre úpravu môžete technikou Ťahaj a pusť premiestňovať záložky, " "čím \n" "zmeníte poradie alebo vytvoríte úplne odlišné používateľské rozhranie, " "umiestnením \n" "záložiek vedľa seba." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Predmety a popisy úloh, poznámky a kategórie je možné \n" "upravovať bez otvárania dialógov pre úpravu. Vyberte položku, ktorej " "predmet\n" "alebo popis chcete zmeniť a kliknite na položku ešte raz, buď do stĺpca s\n" "predmetom alebo s poznámkou. Zobrazí sa textový ovládač, ktorý vám umožní \n" "zmeniť predmet alebo poznámku. Na potvrdenie zmien stlačte kláves Enter. " "Pre\n" "stornovanie zmien stlačte tlačidlo ESC. Kláves F2 slúži ako klávesová " "skratka pre úpravu\n" "predmetu." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s má niekoľko klávesových skratiek, ktoré sú uvedené dole. Klávesové\n" "skratky v súčasnosti nie je možné upravovať." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux a Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux a Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux a Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Vložiť novú podradenú položku" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" "Upravte vybranú položku (vybrané položky) alebo zatvorte dialógové okno" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Označiť vybranú úlohu / vybrané úlohy ako (ne)dokončené" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Stornovať dialógové okno alebo presunúť zameranie klávesnice z vyhľadávania " "späť do prehliadača" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Presunúť zameranie klávesnice do ďalšieho poľa v dialógovom okne" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" "Presunúť zameranie klávesnice na predchádzajúce pole v dialógovom okne" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Presunúť zameranie klávenisce na ďalšiu záložku v rozhraní zápisníka" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" "Presunúť zameranie klávesnice na predchádzajúcu záložku v rozhraní zápisníka" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Vyskakovacie menu alebo rozbaľovací box" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Upravte predmet vybranej položky v prehliadači" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Verzia: %(version)s, %(date)s
    \n" "

    Autor: %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s sa aktívne vyvíja. Hoci sa autori programu %(name)s snažia tomu " "zabrániť, občas sa vyskytnú aj nejaké chyby. Preto vám odporúčame pravidelne " "si zálohovať svoju prácu." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s má založený aj svoj vlastný mailing list, pomocou ktorého môžete " "diskutovať o použití programu %(name)s s ostatnými používateľmi, môžete " "diskutovať o požadovaných funkciách, alebo aj o chybách. Navštívte stránku " "%(url)s a zapojte sa!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s môže neobmedzene veľakrát vráti akciu späť a znova ju zopakovať. " "Vrátiť sa dá hocijaká zmena, ktorú urobíte, či už úprava popisu úlohy alebo " "vymazanie záznamu o práci. Vyberte „Upraviť“ -> „Späť“ a „Upraviť“ -> " "„Znova“, ak chcete prechádzať dopredu a dozadu históriou úprav." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s je dostupný v niekoľkých rôznych jazykoch. Vyberte „Upraviť“ -> " "„Nastavenia“ a uvidíte, či je váš jazyk jedným z nich. Ak váš jazyk nie je k " "dispozícii, alebo si preklad vyžaduje vylepšenie, prosím zvážte prípadnú " "pomoc na preklade programu %(name)s. Navštívte %(url)s a nájdete viac " "informácií, ako môžete pomôcť." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Ak zadáte URL (e.g. %(url)s) do popisu úlohy alebo práce, vytvorí sa linka. " "Kliknutím na odkaz sa daný URL otvorí v štandardnom webovom prehliadači." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Potiahnutím a pustením úloh v stromovom zobrazení môžete zmeniť vzťahy " "rodič/potomok medzi úlohami. To isté platí pre kategórie." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Presunutím súborov zo súborového manažéra do úlohy sa v nej vytvoria " "prílohy. Ťahanie súborov nad záložkou otvorí príslušnú stránku, ťahanie " "súborov v stromovom zobrazení ponad zbalenú úlohu (so znakom '+' vo " "štvorčeku) rozbalí túto úlohu a zobrazí jej podradené úlohy." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Technikou ťahaj a pusť môžete vytvoriť akékoľvek rozloženie prehliadača, aké " "chcete. Rozloženie sa uloží a použije sa znova pri ďalšom spustení programu." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Čo sa naozaj vytlačí, keď vyberiete „Súbor“ -> „Tlačiť“, záleží na aktuálnom " "pohľade. Ak aktuálny pohľad zobrazuje zoznam úloh, vytlačí sa zoznam úloh; " "ak aktuálny pohľad zobrazuje prácu zoskupenú podľa mesiaca, vytlačí sa to. " "To isté sa týka viditeľných stĺpcov, poradia zoradenia, filtra úloh, atď." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Ťuknite na záhlavie stĺpca ľavým tlačidlom, ak chcete podľa neho zoradiť " "položky. Ťuknite na to isté záhlavie znovu, ak chcete zmeniť poradie z " "rastúceho na klesajúce a naopak. Ťuknite pravým tlačidlom na záhlavie " "stĺpca, ak chcete stĺpec skryť, alebo ukázať iné stĺpce." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Môžete si vytvoriť šablónu z ľubovoľnej úlohy, ak si v budúcnosti chcete " "ušetriť vytváranie opakovaných úkonov." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" "Skratkou Ctrl + Tab môžete prepínať medzi záložkami v dialógových oknách pre " "úpravy." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Tip na dnes" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Ďalší tip" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Zobrazovať tipy pri spustení programu" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Prehľadávať súbor pre pridanie prílohy k vybranej položke" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Pridať poznámku k vybranej položke (vybraným položkám)" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Vložiť novú kategóriu" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Vystrihne vybrané položky do schránky" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Skopíruje vybrané položky do schránky" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Vloží položky zo schránky" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" "Vložiť položku (položky) zo schránky, ako podradenú položku vybranej položky" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Úprava nastavení" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Znova zopakuje posledný vrátený príkaz" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Vyberie všetky položky v aktuálnom pohľade" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Vráti späť posledný príkaz" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Pridá obdobie práce k označenej úlohe" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Spustiť sledovanie prác na označených úlohách" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Zastaviť sledovanie práce alebo pokračovať v sledovaní práce" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Zatvoriť aktuálny súbor" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Vypnúť %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Otvoriť ako súbor %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Uložiť aktuálny súbor" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Načítať zmeny z disku" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Uložiť aktuálny súbor pod novým názvom" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Pomoc k programu" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" "Odoslať vybranú položku (vybrané položky), s použitím predvoleného e-" "mailového programu" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Vložiť novú poznámku" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Otvoriť všetky prílohy vybranej položky (vybraných položiek)" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Otvoriť všetky poznámky vybranej položky (vybraných položiek)" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Vytlačiť aktuálny súbor" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Nastavenie vlastností strany na tlačiarni" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Zobrazí všetky položky (zruší všetky filtre)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Zobraziť všetky položky bez ohľadu na kategóriu" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" "Presunúť zadávanie z klávesnice z prehliadača na ovládanie vyhľadávania" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Nastaví označenej úlohe nižšiu prioritu" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Nastaví označenej úlohe vyššiu prioritu" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Nastaví označenej úlohe najvyššiu prioritu" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Nastaví označenej úlohe najnižšiu prioritu" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Vložiť novú úlohu" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Zbaliť všetky položky s podradenými položkami" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Rozbaliť všetky položky s podradenými položkami" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktivuje nasledujúci otvorený pohľad" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktivuje predchádzajúci otvorený pohľad" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "iPhone alebo iPod Touch sa pokúsil pripojiť k programu Task Coach,\n" "avšak nie je nastavené žiadne heslo. Prosím nastavte heslo v\n" "sekcii pre konfigurovanie iPhone a skúste to ešte raz." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Verzia protokolu : %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Verzia neprijatého protokolu %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Názov zariadenia: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Odoslanie názvu súboru: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Úplný z pracovnej plochy" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d kategórií" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Odoslať kategóriu %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Odozva: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d úloh" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Odoslať úlohu %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d prác" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Odoslať prácu %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Dokončené." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nových kategórií" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nových úloh" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nových prác" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d upravených kategórií" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d upravených úloh" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d upravených prác" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d vymazaných kategórií" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d vymazaných úloh" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d vymazaných prác" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Nová kategória (rodičovská: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Vymazať kategóriu %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Upraviť kategóriu %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Nová úloha %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Vymazať úlohu %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Upraviť úlohu %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Koniec synchronizovania úlohy." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Nemožno nájsť úlohu %s pre prácu." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Nová práca %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Upraviť prácu %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Odosielanie GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Načítava sa informácia o e-mailovej adrese..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "Načítava sa informácia o e-mailovej správe. Prosím čakajte." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Nemožno nájsť priečinok s údajmi programu Thunderbird" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Nemožno nájsť profil v programe Thunderbird." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Žiadna predvolená skecia v súbore profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Nesprávne formátované interné ID v programe Thunderbird:\n" "%s. Prosím vyplňte záznam o chybách." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Nemožno nájsť priečinok pre ID\n" "%s.\n" "Prosím vyplňte záznam o chybách." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Nerozpoznaná schéma URL: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Nemožno nadviazať pripojenie IMAP k %(server)s:%(port)s,\n" "aby bolo možné prevziať e-mail do programu Thunderbird:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "Zadajte doménu pre používateľa %s" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Nemožno vybrať priečinok s doručenou poštou \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Nenašiel sa žiadny zodpovedajúci e-mail: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Aktuálny čas spustenia" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Plánovaný čas spustenia" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Dodací čas" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Čas dokončenia" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Čas pripomínača" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Čas vytvorenia" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Dátum konca obdobia" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Čas konca obdobia" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Dátum začiatku obdobia" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Čas začiatku obdobia" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Bez predmetu" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Nová úloha s dnešným termínom" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Nová úloha do zajtra" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dní" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 deň" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Každých %(frequency)d dní" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Každých %(frequency)d týždňov" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Každých %(frequency)d mesiacov" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Každých %(frequency)d rokov" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Každý druhý deň" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Každý druhý týždeň" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Každý druhý mesiac" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Každý druhý rok" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Včera" #: taskcoachlib/render.py:284 msgid "now" msgstr "teraz" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Synchronizácia pre zdroj %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "bude obnovené zo servera. Všetky položky budú\n" "vymazané. Chcete pokračovať?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "bude obnovené z klienta. Všetky vzdialené položky\n" "budú vymazané. Chcete pokračovať?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synchronizácia" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synchronizuje sa. Prosím čakajte.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "pridaných %d položiek.\n" "aktualizovaných %d položiek.\n" "vymazaných %d položiek." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Nastala chyba počas synchronizácie.\n" "Kód chyby: %d; správa: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Najskôr musíte upraviť nastavenia funkcie SyncML, v nastaveniach v časti " "Úpravy/SyncML." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Prepínač panelov" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "Obnoviť %s" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Náhľad panela" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Za&tvoriť" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Zatvoriť všetko" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "Ď&alej" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "Do&zadu" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Okno" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Úpravy" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "týždne: %d" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "hodiny: %d" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Hotovo" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Druh a počet periód, ktoré sa zobrazujú" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Mesiac" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Orientácia kalendára" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horizontálne" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertikálne" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Ktoré úlohy sa majú zobraziť" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Úlohy s naplánovaným dátumom spustenia a dodacím termínom" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Úlohy s plaánovaným dátumom spustenia" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Úlohy s dodacím termínom" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Všetky úlohy" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Všetky úlohy, okrem nenaplánovaných" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Vykresliť líniu zobrazujúcu aktuálny čas" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Farba použitá na zvýraznenie aktuálneho dňa" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Všetky súbory (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Hlavičky" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Číslo týdňa" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Rozsah zobrazenia kalendára" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Týždeň" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Pracovný týždeň" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Heslo:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Uložiť v reťazci s kľúčom" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Vyskytol sa problém pri pokuse o nájdenie systémového reťazca.\n" "Prosím vyplňte záznam o chybe (pozrite si menu Pomocník) a pripojte " "screenshot tejto správy.\n" "Chyba:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Prosím zadajte svoje heslo." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Prosím zadajte svoje heslo" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "Rozlišovať &malé a veľké písmená" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Rozlišovať veľkosť písmen pri filtrovaní" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "V&rátane podradených položiek" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" "Do výsledkov vyhľadávania zahrnúť aj podradené položky nájdených položiek" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "Vyhľadávať aj v &popise" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Vyhľadávať v predmete a popise" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "&Regulárny výraz" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Považovať hľadaný text za regulárny výraz" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Tento regulárny výraz je neplatný." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Predvolene do vyhľadávania pod-reťazca." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Posledné hľadania" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "V pohľade sa nedá vyhľadávať" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Upozornenie na kompatibilitu" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Funkcia SyncML je zablokovaná, pretože sa nepodarilo\n" "načítať modul. K tomu môže dôjsť kvôli nepodporovanej\n" "platforme alebo v systéme Windows nie sú dostupné\n" "niektoré dôležité knižnice DLL. Prosím pozrite si sekciu SyncML v\n" "online-pomocníkovi, kde získate podrobné informácie (v časti \"Riešenie " "problémov\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Nezobrazuj viac tento dialóg" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Chuba pri otváraní URL" #~ msgid "&Delete\tDEL" #~ msgstr "Vy&mazať\tDEL" taskcoach-1.4.3/i18n.in/sl.po000066400000000000000000005054461265347643000156510ustar00rootroot00000000000000# Slovenian translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Tomaž Bric \n" "Language-Team: Slovenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: sl\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s datoteka napaka" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Dodaj priponko" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Nova priloga" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopiraj" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Izbriši" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Izreži" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Prilepi" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Povleci in spusti" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Nova kategorija" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Nova nadkategorija" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Nova opomba" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Nova podopomba" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Novo opravilo" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Novo podopravilo" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Začni spremljanje" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Ustavi spremljanje" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Največja prioriteta" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Najmanjša prioriteta" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Povečaj prioriteto" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Zmanjšaj prioriteto" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Napaka pri shranjevanju %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Napaka pri shranjevanju" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Nova priloga..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Vstavi novo prilogo" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Odpri prilogo" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Odpri izbrane priloge" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Brez dremeža" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Novo opravilo..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Opis" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Zadeva" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioriteta" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Prebrskaj" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Mesto" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datumi" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Datum konca" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Datum zaključka" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Opomnik" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Ponavljanje" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ne" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Da" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Označim to opravilo kot zaključeno ko so zaključena vsa podopravila?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Proračun" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Porabljen čas" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Ostanek proračuna" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Urna postavka" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Stalna postavka" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Dohodek" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Delo" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorije" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Priloge" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Opombe" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Uredi opravilo" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Opravilo" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Začni" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Ustavi" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Začni spremljati od zadnjega stop" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Brez" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Dnevno" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Mesečno" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Tedensko" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Letno" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "ohrani datume v istem delavniku" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", vsak" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dni," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "obdobje," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "tednji," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "meseci," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "leta," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Datoteke" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Avtomatsko shrani po vsaki spremembi" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Shrani nastavitve (%s.ini) v isto\n" "mapo, kjer je program" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Osnovna mapa za priloge" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Pri dodajanju priloge, pokusi nastaviti\n" "njeno pot relativno na to pot." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Nastavitve okna" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Ob zagonu pokaži pozdravno okno" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Ob zagonu prikaži okno z namigi" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Vedno" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Nikoli" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Ob zagonu preveri za novo različico %(name)s" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimiziraj glavno okno ob zapiranju le-tega" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Naj ura v opravilni vrstici tiktaka vo spremljam delo" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Jezik" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Jezik ni najden?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Možnosti" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Omogoči SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Začetna ura delovnega dne" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Končna ura delovnega dne" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Prikaži pojavno okno z opisom predmeta\n" "ko grem preko njega" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Označi glavno opravilo kot končano ko so zaključena vsa njegova podopravila" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Urejevalnik" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Preveri črkovanje v urejevalnikih besedila" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Datum/čas opomnika" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Dremež" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Ime uporabnika/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Omogoči sinhronizacijo opravil" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Ime baze opravil" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Dvosmerno" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Počasno" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Enosmerno iz klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Osveži iz klienta" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Enosmerno iz strežnika" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Osveži iz strežnika" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Omogoči sinhronizacijo opomb" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Ime baze opomb" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Dostop" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Obvesti me o novih različicah." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Na razpolago je nova različica %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s datotek (*.tsk)|*.tsk|Kopije datotek (*.tsk.bak)|*.tsk.bak|Vse datoteke " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar datoteke (*.ics)|*.ics|Vse datoteke (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML datoteke (*.html)|*.html|Vse datoteke (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV datoteke (*.csv)|*.csv|Besedilne datoteke (*.txt)|*.txt|Vse datoteke " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Odpri" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Ne morem odpreti %s, ker ne obstaja" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Spoji" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Napaka pri branju %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Novo &podopravilo..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Opravila" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Vstavi novo kategorijo" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Dodaj delovno obdobje izbranim opravilom" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Vnesi novo opombo" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Vstavi novo opravilo" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/sv.po000066400000000000000000006413771265347643000156670ustar00rootroot00000000000000# translation of sv.po to Nederlands # Swedish translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # # FIRST AUTHOR , 2007. # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: sv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:27+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Fel" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Fel har uppstått, se \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Kunde inte ladda inställningar från TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s filfel" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Ändra placering av bilagor" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Ändra placering av bilaga \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Lägg till bilaga" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Lägg till bilaga till \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Ny bilaga" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Ta bort bilaga" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Ta bort bilaga till \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopiera" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Kopiera \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Ta bort" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Ta bort \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Klipp ut" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Klipp ut \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Klistra in" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Klistra in \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Klistra in som deluppgift" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Klistra in som deluppgift av \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Drag och släpp" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Drag och släpp \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Redigera ämnen" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Redigera ämne \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Redigera beskrivning" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Redigera beskrivning \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Ändra ikoner" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Ändra ikon \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Ändra teckensnitt" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Ändra teckensnitt \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Ändra förgrundsfärger" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Ändra förgrundsfärg \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Ändra bakgrundsfärger" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Ändra bakgrundsfärg \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Byt kategori" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "But kategori för \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Ny kategori" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Nya underkategorier" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Ny underkategori till \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Ny underkategori" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Ändra exklusiva underkategorier" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Ändra exklusiva underkategorier av \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Ta bort kategorier" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Ta bort kategori \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Drag och släpp kategorier" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Nya insatser" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Nya insatser av \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Ta bort insatser" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Ta bort insatsen \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Ändra uppgift för insats" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Ändra uppgift för \"%s\" insats" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Ändra instatsens startdatum & tid" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Ändra insatsens startdatum och tid för \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Ändra insatsens slutdatum och tid" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Ändra insatsens slutdatum och tid för \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Ny anteckning" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nya underanteckningar" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Ny underanteckning till \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Ny underanteckning" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Ta bort anteckningar" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Ta bort anteckning \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Drag och släpp anteckningar" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Drag och släpp anteckning \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Lägg till anteckning" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Lägg till anteckning till \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Lägg till underanteckning" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Lägg till underanteckning till \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Ta bort anteckning" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Ta bort anteckning från \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Drag och släpp aktiviteter" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Ta bort aktiviteter" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Ta bort aktivitet \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Ny aktivitet" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Nya underaktiviteter" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Ny underaktivitet till \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Ny underaktivitet" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Markera aktivitet som färdig" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Markera \"%s\" som färdig" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Markera uppgift som aktiv" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Markera \"%s\" som aktiv" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Markera uppgift som passiv" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Markera \"%s\" som passiv" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Starta tidtagning" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Starta tidtagning \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Stoppa tidtagning" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Stoppa tidtagning \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Maximera prioritet" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Ge \"%s\" högsta prioritet" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Minimera prioritet" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Sätt lägsta prioritet för \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Öka prioritet" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Höj prioriteten för \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Minska prioritet" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Sänk prioriteten på \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Ändra prioritet" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Ändra prioriteten på \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Lägg till anteckning till aktiviteter" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Ändra planerat startdatum" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Ändra planerat startdatum för \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Ändra förfallodag" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Ändra förfallodag för \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Ändra verkligt startdatum" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Ändra verkligt startdatum för \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Ändra slutdatum" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Ändra slutdatum för \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Ändra påminnelsedatum/tider" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Ändra påminnelsedatum/tider för \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Ändra upprepningar" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Ändra upprepningar för \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Ändra slutförd andel för \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Ändra när aktiviteter markerats som slutförda" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Ändra när \"%s\" markerats som slutförd" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Ändra budget" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Ändra budgeten \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Ändra timavgiften" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Ändra timavgiften \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Ändra fasta avgifter" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Ändra fasta avgiften på \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Växla förutsättning" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Växla förutsättning på \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Fel uppstod när %s-%s skulle läsas från %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Värdet är %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Felmeddelandet är %s." #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s kommer att använda standardinställningen och bör fortsätta normalt." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Fel inställning" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Fel vid sparandet av %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Fel vid sparning" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Meddelande från e-postklienten" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Ny bilaga..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Lägg till en ny bilaga" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Öppna bilaga" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Öppna valda bilagor" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 minuter" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Snooza inte" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 minuter" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 minuter" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 minuter" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 minuter" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 timmar" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 minuter" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 timme" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 timmar" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 timmar" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 timmar" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 timmar" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 timmar" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 timmar" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 timmar" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 timmar" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 timmar" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 timmar" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 veckor" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 vecka" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Summa" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Summa för %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Ny insats...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Inaktiva uppgifter" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Dölj &passiva uppgifter" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Passiva uppgifter: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Försenade uppgifter" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Göm &försenade uppgifter" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Försenade uppgifter: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Visa/göm försenade uppgifter (inaktiva uppgifter med ett planerat startdatum " "som passerats)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Aktiva uppgifter" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Aktiva uppgifter: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Dölj &aktiva uppgifter" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Uppgifter nära deadline: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Försenade uppgifter" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Dölj &försenade uppgifter" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Försenade uppgifter: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Klara uppgifter" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Klarskrivna uppgifter: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Dölj &klara uppgifter" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Visa/dölj klara uppgifter" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "%Ny aktivitet..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Pil ner" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Pil ner med status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blå rotationspil" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Grön rotationspil" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Pil upp" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Pil upp med status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomb" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Bok" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Böcker" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Låda" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Nyckelpiga" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Kaka" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Kalkylator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Kalender" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Katt" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "CD-skiva (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Diagram" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Chattande" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Bock" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Klocka" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Alarmklocka" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Stoppur" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Kugghjul" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Flera kugghjul" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Stationär dator" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Bärbar dator" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handdator" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Rött kors" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Tärning" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Dokument" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blå jord" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Grön jord" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Kuvert" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Flera kuvert" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blå mapp" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Ljusblå mapp" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Grön mapp" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grå mapp" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Orange mapp" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Lila mapp" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Röd mapp" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Gul mapp" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blå kuvert med pil" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Hjärta" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Hjärtan" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Grönt hus" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Rött hus" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Nyckel" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Nycklar" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lampa" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Frågetecken" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Information" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Blå plupp" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Ljusblå plupp" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Grå plupp" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Grön plupp" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Ljusgrön plupp" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Orange plupp" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Lila plupp" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Röd plupp" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Gul plupp" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Livboj" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Låst lås" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Olåst lås" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Förstoringsglas" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Not" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Anteckning" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palett" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Gem" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Penna" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Person" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Personer" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Identifikation" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Talande person" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Varningsskylt" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Minustecken" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Plustecken" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Röd stjärna" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Gul stjärna" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Trafikljus" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Papperskorg" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Blixt" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Paraply" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Delvis soligt" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Skiftnyckel" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Ingen ikon" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Stäng" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Meddelande från %s-utvecklarna" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Se:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Beskrivning" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Redigera alla ämnen" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Ämne" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Redigera alla beskrivningar" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Prioritet" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Ömsesidigt uteslutande" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Underkategorier" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Ändra sökväg för alla bifogade filer" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Bläddra" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Plats" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Utseende" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Förgrundsfärg" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Bakgrundsfärg" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Teckensnitt" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Ikon" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Datum" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Planerat startdatum" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Förfallodatum" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Verkligt startdatum" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Färdigdatum" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Påminnelse" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Upprepning" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Förlopp" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Andel slutfört" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Använd helhetsinställningar för programmet" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Nej" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Ja" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Markera aktivitet som klar när underaktiviteter är klara?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Budget" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Spenderad tid" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Kvarvarande budget" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Timavgift" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Fast avgift" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Inkomster" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Insats" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Kategorier" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Bilagor" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Anteckningar" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Förutsättningar" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Redigera aktivitet" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Aktivitet" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Start" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Vecka (veckor)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Dag(ar)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Stopp" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Starta tidtagning från senaste stopptid" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Stoppa tidtagning nu" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Varning: start måste komma före stopp" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Flera aktiviteter" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (aktivitet)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Flera kategorier" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (kategori)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Flera anteckningar" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (anteckning)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Flera bilagor" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (bilaga)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Flera insatser" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (insats)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Använd teckensnitt:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Använd färg:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Ingen" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Dagligen" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Månadsvis" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Varje vecka" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Årligen" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "bibehåll datum på samma veckodag" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", varje" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Stoppa efter" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "återkommande" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Schemalägg varje återkommande baserat på" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "dag(ar)," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "period," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "vecka(or)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "månad(er)," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "år," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Exportera poster från:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Exportera endast markerade objekt" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Kolumner att exportera:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Skriv stil information till en separat CSS-fil" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Om den exporterade filen har en CSS-fil kommer den inte att skrivas över av " "%(name)s. Du kan alltså redigera format utan att ändringarna förloras nästa " "gång du exporterar." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Exportera som CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Exportera som iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Exportera som HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Exportera som Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "En iPhone eller en iPodTouch försöker\n" "synkronisera uppgiftsfilen för första\n" "gången. Vilken typ av synkronisering\n" "ska göras?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Uppdatera från skrivbordet" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Uppdatera från enhet" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Avbryt" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Du har aktiverat iPhonesynkroniserings-funktionen,\n" "som behöver Bonjour. Bonjour verkar inte vara\n" "installerat i ditt system." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Vänligen ladda ner och installera Bonjour för Windows från\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apples webbsida" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjoursupport för Linux ges vanligtvis\n" "av Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Du kan hitta information för din distibution här" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Observera att för vissa system (t.ex. Fedora) kan du behöva\n" "installera paketet avahi-compat-libdns_sd och Avahi\n" "för att detta ska fungera." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Dessutom, om du har en brandvägg aktiv, kontrollera\r\n" "att portarna 4096-4100 är öppna." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Denna inställning kräver omstart av %s för att ta effekt" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Filer" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Autospara efter varje ändring" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Spara inställningar (%s.ini) i samma\n" "katalog som programmet" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "För att köra %s från en flyttbar enhet" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Huvudkatalog för bifogade filer" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Försök att utgå från den här katalogen\n" "när du lägger till en bifogad fil." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Innan sparning, importera automatiskt från" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt-format" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Innan spara sker, importerar %s automatiskt\n" "uppgifter från en Todo.txt-fil med samma namn som aktivitetsfilen,\n" "men med filändelsen .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "I samband med sparning, exportera automatiskt till" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "I samband med sparning, exporterar %s automatiskt\n" "uppgifter till en Todo.txt-fil med samma namn som aktivitetsfilen,\n" "men med filändelsen .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Fönsterbeteende" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Visa uppstartsbild" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Visa tipsfönstret vid uppstart" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Starta programmet i minimerat läge" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Alltid" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Aldrig" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "om det senast var minimerat vid förra sessionen" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Kolla efter ny version av %(name)s vid uppstart" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" "Titta efter meddelanden från %(name)s utvecklarna vid start av programmet" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Dölj huvudfönstret vid minimering" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Minimera huvudfönstret vid stängning" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" "Gör så att klockan i aktivitetsfältet tickar\r\n" "vid tidtagning." #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Språk" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Låt systemet välja språk" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Om ditt språk inte är tillgängligt, eller om översättningen kan förbättras, " "överväg att hjälpa till. Se:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Hittar inte språket?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Visning av uppgifter" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Funktioner" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Aktivera SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Aktivera iPhone-synkronisering" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Använd X11 sessionshantering" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Arbetsveckans start" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Måndag" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Söndag" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Timme som arbetsdagen startar" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Timme som arbetsdagen slutar" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Dagens slut" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Använd gradienter i kalendervyer.\n" "Detta kan göra Task Coach långsmmare." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Minuter mellan föreslagna tider" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Visa en popup med beskrivning av elementet\n" "när muspekaren svävar över det" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Datum för uppgifter" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Klarskriv överordnad uppgift när alla underuppgifter är klara" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Återstående tid (tim) för att uppgiften ska vara \"på gång\"" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Inget" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Att ändra planerat startdatum ändrar deadline" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Att ändra deadline ändrar planerat startdatum" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Vad som ska göras med planerat startdatum och deadline om den ena ändras" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Förinställningar" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Föreslå" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Idag" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Imorgon" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "I övermorgon" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Nästa fredag" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Nästa måndag" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Dagens början" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Arbetsdagens början" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Nuvarande tid" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Arbetsdagens slut" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Förinställt startdatum och tid" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Förinställt slutdatum och tid" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Förinställt slutdatum och tid" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Förinställt påminnelsedatum och tid" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Påminnelse för uppgifter" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Meddelandesätt för påminnelser" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Låt datorn säga påminnelsen" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Kräver espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Förvald slummertid efter påminnelse" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Tillgängliga slummertider i dialogrutan Påminnelse" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Lösenord för synkronisering med iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Namn i Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Ladda upp slutförda uppgifter till enhet" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Visa synkroniseringsloggen" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Textredigerare" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Kontrollera stavning i textredigerare" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s påminnelse - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Påminnelse datum/tid" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Snooze" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Markera aktivitet som slutförd" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML server" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Anpassad" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML server-URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Användarnamn/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Aktivera synkronisering av aktiviteter" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Aktiviteter databasnamn" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Föredragen synkroniseringsmetod" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Tvåvägs" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Långsam" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Envägs från klient" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Förändringar från klient" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Envägs från server" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Förändringar från server" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Aktivera synkronisering av anteckningar" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Anteckningsdatabasens namn" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Access" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Ny uppgiftsmall" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Verktyg" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Avgränsare" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Informera mig om nya versioner." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Ny version av %(name)s är tillgänglig" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Du kör %(name)s version %(currentVersion)s" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Version %(version)s av %(name)s är tillgänglig från" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "Du kör senaste versionen av %(name)s" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "Du kör senaste versionen av %(name)s, %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Hittade inte senaste version" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Hittade inte vad senaste version av %(name)s är." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Betaversion" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Du kör betaversion av %(name)s, %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Den senaste utgivna versionen av %(name)s är %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Varning" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach har kända problem med XFCE4 sessionshantering.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Visa inte denna dialog vid programstart" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Ingen användaraktivitet sedan %s. Följande uppgift \n" "hade tidtagning igång:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Gör inget" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Stanna vid %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Stoppa vid %s och återuppta nu" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Meddelande" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s-filer (*.tsk)|*.tsk|Alla filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s filer (*.tsk)|*.tsk|Backupfiler (*.tsk.bak)|*.tsk.bak|Alla filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar filer (*.ics)|*.ics|Alla filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML filer (*.html)|*.html|Alla filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV filer (*.csv)|*.csv|Text filer (*.txt)|*.txt|Alla filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt-filer (*.txt)|*.txt|Alla filer (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Öppna" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Lade till %(nrtasks)d från %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Kan inte öppna %s eftersom den saknas" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Sammanfoga" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Kan inte öppna %(filename)s\n" "eftersom den låst." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Sammanfogad %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Spara som" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Spara markerade" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Kan inte spara %s.\n" "Filen används av en annan %s-session.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Kan inte spara %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Importera mall" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s mallfiler (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Kan inte importera mall %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Exporterade %(count)d objekt till %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Synkronisering avslutad" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Synkroniseringsstatus" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Kan ej öppna %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Det finns redan en fil som heter %s.\n" "Vill du ersätta den?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Du har osparade ändringar.\n" "Spara innan stängning?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: spara ändringar?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Kan inte öppna %s eftersom den används.\n" "\n" "Det betyder att filen antingen används av en annan\n" "session av TaskCoach, eller att en tidigare session\n" "av Task Coach har crashat. Om ingen annan session\n" "körs kan du lugnt tvinga igång filen.\n" "\n" "Tvinga igång filen?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: fil låst" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Kan inte låsa eftesom lås inte stöds av operativsystemet\n" "där %s lagras.\n" "Öppna %s utan lås?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Stängd %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Sparade %(nrtasks)d uppgifter till %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Kan inte öppna %(filename)s\n" "eftersom den skapats av en nyare version av %(name)s.\n" "Vänligen uppgradera %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Fel vid läsning av %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Synkroniserar..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Synkroniserar med %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Välkommen till %(name)s version %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Synkroniseringssätt" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "En iPhone eller iPodTouch försökte synkronisera med den här\n" "uppgiftsfilen, men handskakningen misslyckades. Skicka gärna\n" "en felrapport." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Arkiv" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Redigera" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Visa" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Ny" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Åtgärder" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Hjälp" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Importera" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Exportera" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Välj" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Öppna vy" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Öppna nästa vy\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Öppna &tidigare vy\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Filtrera" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Sortera" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Kolumner" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "Av&rundning" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Trädstruktur" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Verktygsfält" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Visa/dölj statusfält" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "&Statusfält" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Uppgift" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Öppna en ny flik med en uppgiftsvy" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "&Statistik för uppgifter" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Öppna en ny flik med statistik för uppgifter" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Uppgifter som &rutor" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Öppna en ny flik med en uppgiftsvy som rutor" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&idslinje" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "Öppna en ny flik med en vy som visar uppgifter och insatser på en tidslinje" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Kalender" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Öppna en ny flik med en uppgifter i en kalendervy" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Kategori" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Öppna en ny flik med en kategorivy" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&Insats" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Öppna en ny flik med en insatsvy" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Öppna en ny flik med en insatsvy för markerade uppgifter" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Anteckning" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Öppna en ny flik med en anteckningsvy" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Dölj" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Göm statusfält" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Små bilder" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Små bilder (16x16) i statusfält" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Mellanstora bilder" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Mellanstora bilder (22x22) i statusfält" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Stora ikoner" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Stora bilder (32x32) i statusfält" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Ny uppgift från &mall" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "&Växla kategori" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "Ändra uppgiftens &prioritet" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Starta tidtagning" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (underkategorier)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (underuppgifter)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Prioritet" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Sida" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Påminnelse" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d försenade uppgifter" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "En försenad uppgift" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d uppgifter på gång" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "en uppgift på gång" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "tar tid på \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "tar tid på %d uppgifter" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Öppna...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Öppna %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Sammanfoga..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Sammanfoga uppgifter från en annan fil med denna fil" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Stäng\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Spara\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "S¶ som...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Spara markerad uppgift som &mall" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Spara den valda uppgiften som en uppgiftsmall" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Importera mall..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Importera en ny mall från en mallfil" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Redigera mallar..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Redigera befintliga mallar" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Redigera mallar" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Radera borttagna objekt permanent" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Ta verkligen bort raderade uppgifter och anteckningar (se avsnittet om " "SyncML i hjälpen)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Kan inte radera permanent.\n" "Om du aktiverar SyncML igen\n" "med samma server så kommer\n" "troligen dessa objekt att\n" "finnas kvar.\n" "\n" "Vill du ändå radera permanent?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Utskriftsformat...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Förhandsgranska..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Visa hur utskriften kommer att se ut" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Förhandsgranska" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Skriv ut...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Exportera som &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Exporterar objekt från en vy i HTML-format" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Exportera som &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "Exporterar objekt från en vy till kommaseparerat format (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Exportera som &iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Exporterar objekt från en vy i iCalendarformat" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "Exportera som &Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "Exportera poster från en vy till Todo.txt-format (se todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "&Importera CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "Importerar uppgifter från en kommaseparerad fil (CSV)" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "Importera CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "&Importera Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Importera uppgifter från en Todo.txt-fil (se todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Importera Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML-synkronisering..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Synkronisera med en SyncML-server" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Avsluta\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Ångra" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Gör om" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&Klipp ut\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "K&opiera\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "K&listra in\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Klistra in som &underobjekt\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Inställningar...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Inställningar" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML-inställningar..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Redigera SyncML-inställningar" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML-inställningar" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Alla\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Ta bort markeringar" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Tar bort alla markeringar" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "Ta bort alla &filter\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "&Återställ alla kategorier\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "Visa/dölj objekt som tillhör %s" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Byt namn på vy..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Byt namn på markerad vy" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Ny rubrik på vyn" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Byt namn på vy" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Dölj den här kolumnen" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Dölj den valda kolumnen" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Visa alla underobjekt\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Dölj alla underobjekt\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Stigande" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sortera stigande (markerad) eller fallande (omarkerad)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Sortera &case sensitive" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Vid sortering kan hänsyn tas till stora/små bokstäver (markerad) eller ej " "(omarkerad)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Sortera på status i första hand" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "Sorterar uppgifter i första hand på status (aktiva/passiva/klara)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Dölj &sammansatta uppgifter" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Visa/dölj uppgifter som har deluppgifter" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "&Redigera...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Redigera markerat objekt" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "Redigera &tidtagen uppgift...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "Redigera uppgift med pågående tidtagning" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Radera\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Radera markerat objekt" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Skapa en ny uppgift från en mall" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Ny uppgift med markerad &kategori..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Skapa en ny uppgift med de markerade kategorierna" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Ny uppgift med markerade uppgifter som &förutsättning..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Skapa en ny uppgift med markerade uppgifter som förutsättningar" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Skapa en ny uppgift som markerade uppgifter är beroende av" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Nytt &underobjekt..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Ny &underaktivitet..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Ny &underanteckning..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Ny &underkategori..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Skapa ett nytt underobjekt till markerat objekt" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Klarskriver markerad(e) uppgift(er)" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Sätt &högsta prioritet\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "Sätt &lägsta prioritet\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "&Höj prioritet\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "&Sänk prioritet\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Växla %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "&E-post...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Flera saker" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "och" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Kan inte skicka e-post:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s e-postfel" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "Skapa &anteckning...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Öppna alla anteckningar...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Starta tidtagning\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Startar tidtagning för uppgifter med markerade insatser" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Inget ämne)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Starta tidtagning för %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Välj en uppgift i menyn och starta tidtagning" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Avbryt eller återuppta tidtagning\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Avbryt tidtagning för %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Avbryt tidtagning för markerad(e) uppgift(er)" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Återuppta tidtagning för %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Återuppta tidtagning för den uppgift som avbrutits" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "flera uppgifter" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Ny kategori...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Ny anteckning...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Ny &anteckning med markerade kategorier..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Skapa en ny anteckning med de markerade kategorierna" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Lägg till bifogad fil...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Fel vid öppnandet av bilaga" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "&Öppna alla bifogade filer...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Hjälp om Task Coach\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Hjälp om Task Coach\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Hjälp" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Tips" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Tips om promgrammet" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Anonymisera" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "Anonymisera en uppgiftsfil och bifoga till en buggrapport" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "Din uppgiftsfil har anonymiserats och sparats till:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Klar" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Om %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Version- och kontaktinformation om %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "Om %s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Licens" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s licens" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Leta efter uppdateringar" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Försök hitta en nyare version av %s" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Kan inte öppna URL:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s URL-fel" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Vanliga frågor och svar" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Leta bland vanliga frågor och svar" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "&Buggrapport..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Rapportera en bugg eller leta bland kända fel" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Önska nya &funktioner..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "Önska en ny funktion eller rösta på befintliga önskemål" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "&Support..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Begär support från programutvecklarna" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Hjälp till med &översättning..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "Hjälp till att förbättra översättningar av %s" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Donera..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Gör en donation till förmån för utvecklingen av %s" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Återställning" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Återställer fönstret till tidigare utseende" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Detaljer om insats" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Insats per dag" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Insats per månad" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Insats per vecka" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Träd" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Filtrera på alla markerade kategorier" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Filtrera på markerade kategorier" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Inställningar" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Inställningar för kalendervyn" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "&Nästa period" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Visa nästa period" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "&Föregående period" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Visa föregående period" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Idag" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Visa idag" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "&Automatisk kolumnbredd" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Ändrar automatiskt kolumnbredd så att kolumnerna fyller ut tillgängligt " "utrymme" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Ingen avrundning" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "En minut" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d minuter" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "&Avrunda alltid uppåt" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Avrunda alltid uppåt till nästa inkrement" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Typ" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Sortera efter ämne" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "&Ämne" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Sortera efter beskrivning" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Beskrivning" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Visa/dölj beskrivningskolumn" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Anteckningar" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Visa/dölj anteckningskolumn" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Bifogade filer" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Visa/dölj bilagekolumn" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Kategorier: %d valda, %d totalt" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Status: %d filtrerade" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Period" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Total tid spenderad" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Total inkomst" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Tisdag" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Onsdag" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Torsdag" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Fredag" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Lördag" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Kategorier" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Visa/dölj kategorikolumn" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Förbrukad tid" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Visa/dölj kolumn förbrukad tid" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Inkomst" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Visa/dölj inkomstkolumn" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Total förbrukad tid" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Visa/dölj kolumn total förbrukad tid" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Total inkomst" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Visa/dölj kolumn total inkomst" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Insats per vardag" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Visa/dölj kolumn förbrukad tid per veckodag" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Status: %d pågående tidtagning" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Sortera kategorier enligt ämne" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Sortera kategorier enligt beskrivning" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Sortera kategorier manuellt" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Sortera bilagor enligt ämne" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Sortera bilagor enligt beskrivning" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Sortera bilagor enligt kategori" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Sortera anteckningar enligt ämne" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Sortera anteckningar enligt beskrivning" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Sortera anteckningar enligt kategori" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Sortera anteckningar manuellt" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Sortera uppgifter enligt ämne" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Sortera uppgifter enligt beskrivning" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Sortera uppgifter enligt kategori" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "Sortera uppgifter manuellt" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "Sortera uppgifter enligt planerat startdatum" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Planerat startdatum" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Sortera uppgifter enligt förfallotid" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Deadline" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Sortera uppgifter enligt klartidpunkt" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Klarskriven" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Sortera uppgifter enligt de som är förutsättningar" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Förutsättningar" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Sortera uppgifter enligt beroende uppgifter" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Beroenden" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Sortera uppgifer enligt kvarvarande tid" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "&Kvarvarande tid" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Sortera uppgifter enligt progress" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "&Progress" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Sortera uppgifter enligt återkommande" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Återkommande" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Sortera uppgifter enligt planerad tidsåtgång" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Planerad tidsåtgång" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Sortera uppgifter enligt förbrukad tid" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Återstående &tid" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Sortera uppgifter enligt återstående tid" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Sortera uppgifter i prioritetsordning" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Sortera uppgifter enligt timpris" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Timpris" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Sortera uppgifter enligt fast pris" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "&Fast pris" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Sortera uppgifter efter inkomst" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Sortera uppgifter efter påminnelsetidpunkt" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Påminnelse" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Ämne" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Sortera anteckningar efter kategori" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Anteckningar: %d valda, %d totalt" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Status: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Uppgifter: %d markerade, %d synliga, %d totalt" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Aktiviteter" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Tidslinje" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Nu" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Rutkarta med uppgifter" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Inställningar för kalendervyn" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% klar" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Återstående tid" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Datum" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "&Alla datumkolumner" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Visa/dölj alla datumkolumner" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Visa/dölj kolumn för planerat startdatum" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Visa/dölj kolumn för deadline" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "&Egentligt startdatum" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Visa/dölj egentligt startdatum" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Visa/dölj kolumn för klardatum" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Visa/dölj kolumn för återstående tid" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Visa/dölj kolumn för återkommande uppgift" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "&Alla kolumner för tidplanering" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Visa/dölj alla kolumner för tidplanering" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Visa/dölj kolumn för planerad tidsåtgång" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "&Återstående tid" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Visa/dölj kolumn för återstående tid" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Ekonomi" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "&Alla ekonomikolumner" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Visa/dölj alla kolumner för ekonomi" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Visa/dölj kolumn för timpris" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Visa/dölj kolumn för fast pris" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Visa/dölj kolumn för föutsättningar" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Visa/dölj kolumn för progress" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Visa/dölj kolumn för bifogade filer" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Visa/dölj kolumn för prioritet" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Visa/dölj kolumn för påminnelser" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "Statistik för uppgifter" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Komma" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Mellanslag" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "Kolon" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Semikolon" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (dag först)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (månad först)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Apostrof" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Citationstecken" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Dubblera" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Importera markerade rader" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "Första raden innehåller fältnamn" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Avgränsare" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Datumformat" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Citationstecken" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Fält #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Välj en fil." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "ID" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Kategori" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Påminnelsedatum" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Progress" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "Kolumnrubrik i CSV-fil" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s egenskap" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Ingen fältmappning" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "Fältet \"%s\" kan inte markeras flera gånger" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "Fälten \"%s\" kan inte markeras flera gånger" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Innehållsförteckning" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Om uppgifter" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Egenskaper för uppgifter" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Status för uppgifter" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Färgmärkning för uppgifter" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Om insats" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Om egenskaper" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Om kategorier" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Egenskaper för kategorier" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Om anteckningar" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Egenskaper för anteckningar" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Utskrift och export" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Om utskrift och export" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Utskrifter" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Export" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "Integration med e-post" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Om e-postintegration" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Lägg till e-postmeddelande som bifogad fil till en uppgift" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Skapa en uppgift från ett e-postmeddelande" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Stöd för SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Vad är SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Konfigurera" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Begränsningar" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Felsökning" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Raderar objekt permanent" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone och iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "%(name)s på iPhone" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Konfigurering" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "%(name)s på Android?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt och Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Importerar Todo.txt" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Exporterar Todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Uppgiftsmallar" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Om mallar" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Att använda mallar" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Användargränssnitt" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Tangentbordsgenvägar" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Uppgifter är de viktigaste objekten du kan hantera. En uppgift kan " "representera allt från den enklaste uppgift till ett stort projekt med olika " "faser och många aktiviteter." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Du kan ändra följande egenskaper för en uppgift:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Ämne: en rubrik som sammanfattar uppgifter" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Beskrivning: där du kan skriva flera rader om uppgiften" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Planerat startdatum: den första dag då uppgiften kan startas. \n" "Defaultvärde är den dag då uppgiften skapades. Den kan också sättas till " "'Inget' \n" "för att indikera att du inte vill påbörja den. \n" "Detta kan vara praktiskt för t.ex. sjukfrånvaro." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Deadline: tidpunkten när uppgiften ska vara klar. \n" "Här kan det stå \"Ingen\" om det inte finns något särskilt klardatum." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Klarskriven: i det här fältet står det \"Ingen\" så länge uppgiften pågår. \n" "När du klarskriver uppgiften skrivs automatiskt dagens datum i fältet, \n" "men du kan också mata in ett annat datum manuellt." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Budget: Planerad tidsåtgång för uppgiften i timmar." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "Timpris: Inkomst per timme för uppgiften" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "Fast pris: inkomsten för en uppgift oavsett tidsåtgång." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Följande värden räknas ut med hjälp av värdena ovan:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Dagar kvar: antal dagar till deadline" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Förbrukad tid: tid som använts för uppgiften" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Återstående tid: Planerad tidsåtgång minus förbrukad tid för uppgiften" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Inkomst: timpris x förbrukad tid + fast pris" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Uppgifter har alltid endast en av följande status:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Aktiv: faktiskt startdatum är i det förflutna;" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Klarskriven: uppgiften är klar." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Dessutom kan uppgifter klassas som:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Försenad: Deadline har passerats;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "På gång: Deadline ligger i nära framtid (hur långt in i framtiden \n" "kan ändras i Inställningar);" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Sena: planerat startdatum är i det förflutna, och uppgiften \n" "har inte startats;" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Över budget: all planerad tid har använts;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Under budget: det finns fortfarande tillgänglig tid;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Ingen budget: uppgiften saknar planerad tid" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Texten på uppgifter är färgsatta enligt följande regler:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Försenade uppgifter är röda;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Uppgifter som förfaller snart är orange;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Aktiva uppgifter har svarta texter och en blå ikon;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Sena uppgifter är lila;" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Framtida uppgifter är grå, och;" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Färdigställda uppgifter är gröna." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Detta förutsätter att du inte ändrat textfärgerna i\n" "inställningsdialogen, så klart." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Uppgifternas bakgrundsfärg styrs av den kategori som uppgiften \n" "tillhör. Se avsnittet om \n" "Egenskaper för kategorier nedan." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "När du arbetar med en uppgift kan du registrera den använda tiden\n" "med tidtagningsfunktionen. Markera en uppgift och välj \"Starta " "tidtagning\"\n" "i insatsmenyn eller åtgärdsmenyn eller tryck på knappen \"Starta " "tidtagning\" \n" "i verktygsfältet." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Även för insatser kan du ändra vissa värden:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "Uppgift: den uppgift som insatsen tillhör." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Starttidpunkt: insatsens starttidpunkt" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Stopptidpunkt: insatsens sluttidpunkt. Här kan det stå \n" "\"Ingen\" under tiden som du arbetar med uppgiften." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Beskrivning: här kan insatsen beskrivas med flera rader" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" "Förbrukad tid: hur mycket tid du använt för att arbeta med uppgiften." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Inkomst: pengar som tjänats på den förbrukade tiden." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "Uppgifter och anteckningar kan tillhöra en eller flera kategorier. Först " "måste \n" "du skapa kategorierna från kategorimenyn. När det är klart kan du lägga till " "\n" "en eller flera kategorier till objekt genom att redigera objektet och kryssa " "\n" "för önskade kategorier under kategorifliken i dialogrutan redigera." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "Du kan filtrera ut objekt som ska visas i uppgifts- och anteckningsvyn \n" "genom att kryssa för önskade kategorier i kategorivyn. Om du t.ex. har en \n" "kategori som heter \"telefonsamtal\" och kryssar för den kategorin så kommer " "\n" "bara uppgifter som tillhör den kategorin att visas i uppgiftsvyn, med andra " "\n" "ord de telefonsamtal du behöver ringa." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Kategorier har följande egenskaper som du kan ändra:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Ämne: en rubrik som sammanfattar kategorin" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" "Beskrivning: hhär kan du använda flera rader för att beskriva kategorin" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Ömsesidigt exklusiva underkategorier: en kryssruta som visar\n" "om underkategorierna är ömsesidigt exklusiva. Om rutan är ikryssad\n" "kommer objekt endast att kunna tillhöra en av underkategorierna och \n" "du kommer endast att kunna filtrera på en underkategori i taget." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Visningsegenskaper som ikon, teckensnitt och färg: \n" "visningsegenskaper används för att märka kategorin och de objekt som\n" "tillhör kategorin. Om en kategori saknar egen färg, teckensnitt och ikon, \n" "så kommer den att ärva märkningen från överordnad kategori om den har \n" "någon. Ett objekt som tillhör flera kategorier kommer att märkas med en \n" "blandning av kategoriernas färger." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Anteckningar används för olika typer av information som du vill lagra\n" "i uppgiftsfilen. Anteckningar kan vara självständiga eller knutna till " "andra\n" "objekt som uppgifter och kategorier. Självständiga anteckningar visas\n" "i anteckningsvyn. Anteckningar som tillhör andra objekt visas inte i\n" "anteckningsvyn." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Anteckningar har följande egenskaper som du kan ändra:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Ämne: en rubrik som beskriver anteckningen." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" "Beskrivning: här kan du använda flera rader för att beskriva anteckningen." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Visningsegenskaper som ikon, teckensnitt och färg." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Utskrift och export fungerar på samma sätt: när du skriver ut eller\n" "exporterar data så är det data från den aktiva vyn som skrivs ut eller\n" "exporteras. Data skrivs ut eller exporteras likadant som de visas i vyn. \n" "Data skrivs ut eller exporteras i samma ordning som de visas i vyn. \n" "Vilka kolumner som är synliga avgör vilka data som kommer med i \n" "en utskrift eller export. När du filtrerar, t.ex. döljer klara uppgifter, " "så\n" "kommer inte dessa objekt med i utskriften eller exporten." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Förbered innehållet i vyn genom att sortera objekten i rätt ordning, \n" "visa eller dölj önskade kolumner och använd önskade filter." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Du kan förhandsgranska utskriften med kommandot\n" "Arkiv -> Förhandsgranska. Du kan redigera utskriftsformat med kommandot\n" "Arkiv -> Utskriftsformatt. Om det stöds av skrivare och operativsystem så \n" "kan du välja mellan att skriva ut alla synliga ovjekt i vyn, eller bara " "markerade \n" "objekt." #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Därefter väljer du format för exporten och om du vill exportera alla\n" "synliga objekt eller bara markerade objekt. Tillgängliga exportformat\n" "är CSV (kommaseparerat format), HTML och iCalendar. När du exporterar\n" "till HTML skapas en CSS-fil som du kan redigera för att få önskat utseende\n" "i HTML." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s integrerar med flera mailklienter genom dra och släpp.\n" "Detta har vissa begränsningar; e-post kopieras till en katalog bredvid\n" "%(name)s-filen, som .eml-filer och kan sedan öppnas med program\n" "som är associerade med denna filtyp på din dator.\n" "Å andra sidan tillåter detta att du kan öppna bifogade filer på ett \n" "system som är annorlunda än det som du först skapade det på." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Mailklienter som stöds inkluderar:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "P.g.a. en begränsning i Thunderbird går det inte att dra och släppa\n" "flera e-postmeddelanden fån Thunderbird. Det går däremot bra i Outlook." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Det finns två sätt att knyta ett e-postmeddelande till en uppgift:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "Släpp det på en uppgift i uppgiftsträdet eller uppgiftslistan." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "Släpp det i bilagefältet i dialogrutan redigera uppgift" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Om du släpper e-postmeddelandet i en tom del av uppgiftsträdet\n" "eller uppgiftslistan så skapas en ny uppgift. Den får samma ämne som\n" "e-postmeddelandets rubrik, och får meddelandet som beskrivning.\n" "Dessutom läggs e-postmeddelandet till som bifogad fil till uppgiften." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML är ett XML-protokoll som används för att synkronisera\n" "flera applikationer med en server. En populär open-sourceserver är\n" "Funambol. \n" "Synkklienter finns tillgängliga för många enheter och applikationer\n" "(Outlook, PocketPC, iPod, iPhone, Evolution m.fl...) men även som s.k.\n" "\"connectors\" som låter en server synkronisera med Exchange, Google " "Calendar m.fl." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s har en inbyggd SyncML-klient med stöd för Windows och\n" "Mac OS X (förutsatt att du använder de binärkoder som tillhandahålls).\n" "Det innebär att du kan ställa in %(name)s för att synkronisera med samma\n" "SyncML-server som du använder för att synkronisera Outlook, så att du\n" "har alla uppgifter och anteckningar från Outlook i din %(name)s-fil och\n" "dina uppgifter och anteckningar från %(name)s i Outlook. Eller i din\n" "Pocket PC." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Den här funktionen är valfri och är från början avstängd. För att\n" "starta den gå till dialogrutan Inställningar och kryssa för den\n" "under fliken Funktioner." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "För att göra inställningar för SyncML, gå till Redigera -> SyncML " "inställningar \n" "Fyll i URL för synkronisering, ditt ID på servern och välj vilka objekt som " "\n" "ska synkroniseras (uppgifter och/eller anteckningar). URL beror på vilken\n" "server du väljer. Några exempel:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "Databasnamnen är hyftat standardiserade. Defaultvärdena bör fungera." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Varje uppgiftsfil har sitt eget klient-ID, så att två olika \n" "uppgiftsfiler kommer att uppfattas som olika \"enheter\" av servern." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Eftersom det underliggande formatet är vcalendar kan inte vissa av %(name)s " "\n" "funktioner hanteras av servern:" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "Uppgifts- och kategorihierarkier går förlorade." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Det saknas f.n. stöd för återkommande uppgifter och påminnelser." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Anteckningskategorier går förlorade." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Systemet för detektering och lösning av konflikter är en \n" "workaround som tillkommit p.g.a. en begränsning i Funambol. \n" "Det bör fungera i de flesta fall, men det kan uppstå problem om \n" "många applikationer synkroniserar samtidigt med samma server." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "och troligen ytterligare några..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "SynkML-menyn är synlig endast om det finns stöd för ditt \n" "system. F.n. stöds följande system:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32-bitar (se nedan)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32-bitar" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 och senare, både Intel och PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Det kan uppstå problem under Windows om du ite har installerat \n" "Microsoft Visual 8 runtime. Du kan ladda ner det från Microsoft download site." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "När SyncML är aktiverat så sker ingen egentlig radering av uppgifter och\n" "anteckningar - de markeras bara som raderade. Den raderade uppgiften \n" "eller anteckningen tas bort från uppgifts- eller anteckningslistan först vid " "\n" "nästa synkronisering. Det innebär att om du stänger av SyncML utan att \n" "först ha synkroniserat så kommer raderade uppgifter och anteckningar \n" "att finnas kvar i din uppgiftsfil. Det är inget problem, mer än att filen \n" "tar lite större diskutrymme." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "I det här läget kan kommandot Arkiv -> Radera permanent användas \n" "för att verkligen ta bort de här uppgifterna. Kommandot är bara synligt\n" "när du behöver det, d.v.s. när det finns objekt som kan raderas permanent.\n" "Var försiktig med det här. När du åter aktiverar SyncML och synkroniserar\n" "med samma server kommer alla borttagna objekt att återuppstå eftersom\n" "servern inte vet att de har raderats." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch och iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "%(name)s på iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "Det finns en syskon-app för %(name)s som kan laddas ner från Apple's AppStore. (Om du inte har installerat iTunes " "på \n" "din dator, kommer en sida där du kan ladda ner iTunes att visas för dig). " "Den \n" "stöder följande funktioner:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Grundläggande uppgiftsegenskaper som ämne, beskrivning, \n" "tidpunkter (inklusive återkommande)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hierarkiska uppgifter och kategorier" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Tidtagning" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Hantering av flera uppgiftsfiler" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Tvåvägssynk med desktopversionen av %(name)s" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" "Applikationen är universell och har ett skräddarsytt användargränssnitt för " "iPad." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "Inställningar på iPhone/iPod Touch/iPad" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "Det finns några inställningar i applikationen för iPhone/iPod Touch/iPad:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "Visa klarskrivna: om klarskrivna uppgifter ska visas." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Visa passiva: om passiva uppgifter (planerat startdatum \n" "i framtiden) ska visas" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Icon position: LED-ikonen kan visas antingen på vänster \n" "eller höger sida av skärmen." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Kompakt läge: uppgiftslistan visas med mindre LED-ikoner \n" "och utan kategorier och tidpunkter." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Bekräfta klarskrivning: en dialoruta kommer att visas där du får \n" "bekräfta klarskrivning efter att ha tryckt på uppgiftens LED-ikon." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "# dagar till deadline: Hur många dagar framåt för att en uppgift\n" "ska markeras som På gång." #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Inställningar i desktopversionen, alla plattformar" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Innan du synkroniserar måste du konfigurera desktopversionen av \n" "%(name)s. Gå till Redigera -> Inställningar -> Funktioner och markera\n" "\"Aktivera iPhonesynkronisering. Starta om %(name)s. Gå till Redigera -> \n" "Inställningar -> iPhone och bestäm ett lösenord. Övriga fält är valfria." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "När du trycker på \"sync\"-knappen i kategorivyn kommer %(name)s\n" "automatiskt att känna av om det körs flera instander av %(name)s på\n" "din dator och ber dig välja en (du kan ha flera instanser igång på olika\n" "datorer i ditt nät, eller flera instanser på samma dator). De namn som\n" "visas är någon sträng som identifierar datorn den körs på. Om du vill\n" "sätta egna namn kan du ändra \"Bonjour tjänstenamn\" i konfigureringen." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s kommer att komma ihåg den valda instansen och försöka\n" "att använda den igen nästa gång du synkroniserar. Om instansen inte\n" "körs då så blir du ombedd att välja en annan." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Observera att synkroniseringen sker över nätet. Enheten behöver \n" "alltså inte vara ansluten via USB och iTunes behöver inte köras." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Konfigurering på Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "På Windows måste du installera Bonjour for Windows och\n" "avblockera programmet i brandväggen." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Konfigurering på Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "På Linux måste Avahi \n" "daemon vara installerad och igång. Den ingår i de flesta moderna " "distributioner. Du \n" "måste också installera dnscompatpaketet; namnet beror på din distribution \n" "(libavahi-compat-libdnssd1 på Ubuntu t.ex.)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "Jag hittar inte iPhone/iPod Touch-appen på Apples websida" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Du måste installera iTunes på datorn för att kunna surfa på \n" "Apples App Store. Get \n" " iTunes." #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Min dator visas inte i listan när jag försöker synka" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "Kolla att din iPhone/iPod Touch är ansluten till samma WLAN-nät som din " "dator." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone kan inte ansluta till min dator" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "Om du har en brandvägg, kolla att portarna 4096-4100 är öppna." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Nej, %(name)s är inte tillgänglig för Android-plattformen. Men,\n" "Todo.txt Touch är. \n" "Du kan exportera dina uppgifter från %(name)s till Todo.txt \n" "format och sen redigera dina uppgifter på din and Android-enhet." #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt är ett open-source program för att göra-listor. Det är skapat av " "Gina \n" "Trapani, och det använder textfiler. Todo.txt har ett gränssnitt för " "kommandotolk. \n" "Eftersom filformatet är vanlig text, så kan listorna modifieras \n" "med valfri textredigerare. Todo.txt Touch är en version av Todo.txt för \n" "Android-plattformen. Todo.txt Touch använder todo.txt-filer som ligger i din " "\n" "Dropbox-mapp. %(name)s kan importera från och exportera till den \n" "todo.txt-filen." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s exporterar uppgifters rubrik, planerat startdatum, deadline, \n" "klarskrivningsdatum, prioritet och kategorier till Todo.txt-formatet.\n" "Övriga egenskaper exporteras inte." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "Datum och tid stöds i %(name)s, men Todo.txt stödjer bara datum,\n" "så tidsdelen för startdatum, deadline och klarskrivning exporteras inte." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Mallar är karbonkopior för nya uppgifter. F.n. är det bara tidpunkter \n" "som kan \"parameterstyras\". När du skapar en ny uppgift från en mall, \n" "får den nya uppgiften nya tidpunkter som är relativa till aktuellt datum." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "En mall skapas genom att markera en uppgift (endast en) och välja \n" "Arkiv -> Spara uppgift som mall. Alla deluppgifter, anteckningar och \n" "bifogade filer sparas i mallen. Kategoritillhörigheten sparas dock inte." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Du kan också lägga till mallar från mallredigeraren (Arkiv -> Redigera " "mallar)\n" "där du också kan redigera mallens grundegenskaper (tidpunkter och ämne).\n" "Tidpunkter läggs in med normala skrivformat. Om %(name)s datumeditorn inte " "förstår\n" "vad du menar blir den röd. Exempel på skrivsätt:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "OBS att datumsystemet inte är anpassat till lokala språk. Du måste\n" "alltså lägga in tidpunkterna på engelska!" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Du kan dra och släppa vyer för att skapa nästan vilka användargränssnitt \n" "som helst. När du börjar dra en vy så kommer du att få tips som visar var\n" "du kan släppa vyn. Vyer kan även släppas i varandra för att skapa\n" "anteckningsböcker med vyerna som flikar." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "I dialogrutan Redigera kan du dra och släppa flikarna för att lägga dem \n" "i den ordning du vill ha dem." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "Du kan redigera en uppgifts ämne och beskrivning utan att öppna\n" "dialogrutan Redigera. Markera objektet vars ämne eller beskrivning\n" "du vill ändra och klika på det igen i antingen ämneskolumnen eller\n" "beskrivningskolumnen. Texten markeras och du kan ändra ämne eller\n" "beskrivning. Tryck på returtangenten för att bekräfta ändringarna eller \n" "escape för att ångra dem. F2 är en genväg för att redigera ämne." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s har gott om genvägar, listade nedan. Det går f.n. inte\n" "att konfigurera egna tangentbordsgenvägar." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux och Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux och Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux och Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Lägg till en ny underuppgift" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Redigera markerat objekt eller stäng en dialogruta" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Retur" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Klarskriv eller ta bort klarskrivning på markerad uppgift" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "Stäng en dialogruta eller lämna en sökruta och aktivera vyn" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Aktivera nästa fält i en dialogruta" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Aktivera föregående fält i en dialogruta" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Aktivera nästa flik i en anteckningsbok" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Aktivera föregående flik i en anteckningsbok" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Ned" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Popupmeny eller rullgardinsmeny" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Redigera ämne på markerat objekt" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    Av %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s utvecklas fortlöpande. Problem kan uppstå även om %(name)s " "utvecklare jobbar hårt för att undvika dem. Det är därför en stark " "rekommendation att ta regelbundna backuper." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s har en e-postlista där du kan diskutera användningen av %(name)s " "med andra användare, diskutera och föreslå nya funktioner och klaga på " "buggar. Gå till %(url)s och gå med idag!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "I %(name)s finns inga begränsningar för att ångra och göra om. Alla " "ändringar som du gjort, som att redigera en uppgiftsbeskrivning eller radera " "en insats, kan ångras. Välj 'Redigera' -> 'Ångra' och 'Redigera' -> 'Gör om' " "för att hoppa framåt och bakåt i historiken." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s är tillgängligt på flera olika språk. Välj Redigera -> " "Inställningar -> Språk för att se om ditt språk finns bland dem. Om ditt " "språk inte finns där eller om översättningen behöver förbättras, hjälp gärna " "till med översättningen av %(name)s. Besök %(url)s för mer information om " "hur du kan hjälpa till." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Om du skriver in en URL (t.ex. %(url)s) i en uppgift eller anteckning så " "skapas en länk. Klicka på den så öppnas hemsidan i din vanliga webläsare." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Du kan dra och släppa uppgifter i trädvyn för att ändra beroenden mellan " "olika uppgifter. Du kan arbeta på samma sätt med kategorier." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Du kan dra filer från utforskaren till en uppgift för att lägga till " "bifogade filer. Drar du filer över en flik så öppnas den sidan. Drar du " "filen över plustecknet i en trädstruktur så visas deluppgifterna." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Du kan skapa vilken vy du vill genom att dra och släppa flikarna. Vyn sparas " "och återkommer nästa gång du öppnar Task Coach." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Vad som skrivs ut när du väljer Arkiv -> Skriv ut, styrs av aktuell vy. Om " "aktuell vy visar uppgiftslistan så kommer en uppgiftslista att skrivas ut. " "Om vyn visar insatser per månad så är det vad som skrivs ut. Detsamma gäller " "synliga kolumner, sorteringsordning och filtrering." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Vänsterklicka på en kolumnrubrik för att sortera efter den kolumnen. Klicka " "igen på kolumnrubriken för att byta mellan stigande och fallande ordning. " "Högerklicka på en kolumnrubrik för att dölja kolumnen eller för att visa " "andra kolumner." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Du kan skapa en mall utifrån en uppgift så behöver du inte skriva lika " "mycket när du ska skapa snarlika uppgifter." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Med Ctrl-Tab kan du hoppa mellan flikar i en dialogruta." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Dagens tips" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" "Öppna en utforskare för att lägga till filer som bilagor till markerat " "objekt." #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Lägg till en anteckning till markerat objekt." #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Lägg till en ny kategori" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Klipp ut markerat(de) objekt" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Kopiera markerat(de) objekt" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Klistra in objekt" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Klistra in objekt som underobjekt till markerat objekt" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Öppna dialogrutan Inställningar" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Gör om åtgärd som ångrats" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Markera allt i vyn" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Ångra den senaste åtgärden" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Lägg till en insatsperiod till valda aktiviteter" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Starta tidtagning för markerade objekt" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Avbryt eller återuppta tidtagning" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Stäng aktuell fil" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Avsluta %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Öppna en %s fil" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Spara aktuell fil" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Spara aktuell fill med nytt namn" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Programmets hjälpfiler" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Skicka markerade objekt med ditt vanliga e-postprogram" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Infoga en ny anteckning" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Öppna alla bifogade filer som tillhör markerat objekt" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Öppna alla anteckningar som tillhör markerat objekt" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Skriv ut aktuell fil" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Öppna dialogrutan Utskriftsformat" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Visa alla objekt (ta bort alla filter)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Visa alla objekt oavsett kategori" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Aktivera sökfältet" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Sänk prioriteten på de(n) markerade uppgiften(erna)" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Höj prioriteten för markerade aktiviteter" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Sätt markerade aktiviteter till högsta prioritet" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Sätt markerade aktiviteter till lägsta prioritet" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Lägg till ny aktivitet" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Visa endast huvudobjekt" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Visa alla underobjekt" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Aktivera nästa öppna vy" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Aktivera den förra öppna vyn" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "En iPhone eller iPod Touch försökte ansluta till Task Coach,\n" "men inget lösenord har bestämts. Ange ett lösenord\n" "under iPhone-fliken i Inställningar och försök igen." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Protokollversion: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Avvisad protokollversion %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Enhetens namn: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Skickar filnamn: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Full från PC." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d kategorier" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Skicka kategori %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Svar: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d aktiviteter" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Skicka aktivitet %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d insatser" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Skicka insats %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Färdig." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d nya kategorier" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d nya aktiviteter" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d nya insatser" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d redigerade kategorier" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d redigerade aktiviteter" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d ändrade insatser" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d borttagna kategorier" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d borttagna aktiviteter" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d raderade insatser" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Ny kategori (överordnad: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Ta bort kategori %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Redigera kategori %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Ny aktivitet %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Ta bort aktivitet %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Redigera aktivitet %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "Slut på synkronisering av uppgifter." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Kunde inte hitta uppgiften %s för insats." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Ny insats %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Redigera insats %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Skickar GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "Läser info om mail..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Hittade inte Thunderbird-data" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Hittade inte Thunderbird-profil." #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "Ingen förvald sektion i profiles.ini" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Ogiltigt format på Thunderbird internt ID:\n" "%s. Skicka vänligen en buggrapport." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Kunde inte hitta katalog för ID\n" "%s.\n" "Skicka vänligen en buggraport." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Känner inte igen URL-schema: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "Kunde inte välja inkorgen \"%s\"\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Ingen sådan e-post: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Planerad starttid" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Deadline" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Tid för klarskrivning" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Påminnelsetid" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Inget ämne" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Ny aktivitet med slutdatum idag" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Ny aktivitet med slutdatum imorgon" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d dagar" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 dygn" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Var %(frequency)d dag" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Var %(frequency)d vecka" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Var %(frequency)d månad" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Vart %(frequency)d år" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Varannan dag" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Varannan vecka" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Varannan månad" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Vartannat år" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Igår" #: taskcoachlib/render.py:284 msgid "now" msgstr "nu" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Synkroniseringen för %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "blir en refresh från servern. Alla objekt i klienten\n" "kommer att raderas. Vill du fortsätta?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "blir en refresh från klienten. Alla objekt på servern\n" "kommer att raderas. Vill du fortsätta?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Synkronisering" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Synkroniserar. Vänta lite.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d objekt hat lagts till.\n" "%d objekt har ändrats.\n" "%d objekt har raderats." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Ett fel inträffade under synkroniseringen.\n" "Felkod: %d; meddelande: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Först måste du uppdatera inställningarna i Redigera -> SyncML-inställningar" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Byt vy" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Förhandsgranska vy" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Stäng" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Stäng alla" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Nästa" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Föregående" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Fönster" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Redigera" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d timmar" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Visad tidsperiod" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Månad" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Kalenderns orientering" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Horisontell" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Vertikal" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Vilka uppgifter som ska visas" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Uppgifter med planerat startdatum och deadline" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Uppgifter med planerat startdatum" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Uppgifter med slutdatum" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Alla uppgifter" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Alla uppgifter, utom oplanerade" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Visa linje vid aktuell tidpunkt" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Färg som markerar dagens datum" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Alla filer (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Lösenord:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Lagra i keychain" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Ange ditt lösenord." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Ange ditt lösenord" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Matcha gemener/VERSALER" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Matcha gemener/VERSALER vid filtrering" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Ta med underobjekt" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Ta med underobjekt i sökresultaten" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Sök även i beskrivning" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Sök i både ämne och beskrivning" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Ogiltigt reguljärt uttryck" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Återgår till sökning på delsträngar" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Senaste sökningar" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Sökning kan inte göras i vyn" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Kompabilitetsvarning" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "SyncML-funktionen har stängts av eftersom modulen\n" "inte kunde köras. Det kan bero på att det saknas stöd\n" "för din plattform, eller om du kör Windows, att det saknas\n" "några nödvändiga DLL-filer. Läs mer i avsnittet om SyncML\n" "i onlinehjälpen (under \"Troubleshooting\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Visa inte den här dialogrutan igen" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Fel när webbadressen skulle öppnas" #~ msgid "&Delete\tDEL" #~ msgstr "&Radera\tDEL" taskcoach-1.4.3/i18n.in/te.po000066400000000000000000005040331265347643000156320ustar00rootroot00000000000000# Telugu translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-10 15:00+0000\n" "Last-Translator: Frank Niessink \n" "Language-Team: Telugu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: te\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "TaskCoach.ini నుండి సెట్టింగులను లోడ్ చేయుట సాధ్యం కాలేదు:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s ఫైలు లో లోపం ఉన్నది" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "జోడింపుల యొక్క స్థానాన్ని సవరించు" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "జోడింపు \"%s\" యొక్క స్థానాన్ని సవరించు" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "జోడింపు చేర్చండి" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "కొత్త జోడింపు" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "తొలగించు" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "అతికించు" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "కొత్త వర్గం" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "కొత్త ఉపవర్గం" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "" #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "వివరణ" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "విషయం" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "ప్రాధాన్యత" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "తేదీలు" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "గడువు తేదీ" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "పూర్తయిన తేదీ" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "కాదు" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "అవును" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "గడిపిన సమయం" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "ఆదాయం" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "వర్గాలు" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "జోడింపులు" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "గమనికలు" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "పని" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "ప్రతీరోజు" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "ప్రతీ నెలా" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "ప్రతీ వారం" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "సరే" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "ఫైళ్ళు" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "ఎల్లప్పుడూ" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "భాష" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "కూర్పరి" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&సహాయం" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&పని" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&వర్గం" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&చిన్న బొమ్మలు" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&పెద్ద బొమ్మలు" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&ప్రాధాన్యత" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "పేజీ" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "ముద్రణా మునుజూపు" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&ఆరోహణ" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "సహాయం" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&చిట్కాలు" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "%s &గురించి" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&ఈరోజు" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&వివరణ" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "మొత్తం ఆదాయం" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&వర్గాలు" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&ఆదాయం" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "స్థితి: వర్తించదు" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "పనులు" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&తేదీలు" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "ఇప్పుడు" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "అన్ని ఫైళ్ళూ (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "ఇటీవలి అన్వేషణలు" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/th.po000066400000000000000000005254031265347643000156410ustar00rootroot00000000000000# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # Prasit Kaephukhieo , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-11 08:11+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Thai \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: th\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "ไม่สามารถโหลดการตั้งค่าจาก TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "ไฟล์ %s error" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "แก้ไขตำแหน่งของไฟล์แนบ" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "แก้ไขตำแหน่งของ %s ที่แนบมาด้วย" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "เพิ่มไฟล์แนบ" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "เพิ่มแฟ้มแนบไปที่ \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "สิ่งที่แนบใหม่" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "ลบแฟ้มแนบ" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "คัดลอก" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "คัดลอก \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "ลบ" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "ลบ \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "ตัด" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "ตัด \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "วาง" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "วาง \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "แปะเป็นรายการรอง" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "ลากและวาง" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "แก้ไขเรื่อง" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "แก้ไขคำอธิบาย" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "เปลี่ยนไอคอน" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "เปลี่ยนแบบอักษร" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "เปลี่ยนสีส่วนหน้า" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "เปลี่ยนสีพื้นหลัง" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "สลับหมวดหมู่" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "หมวดหมู่ใหม่" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "หมวดหมู่ย่อยใหม่" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "หมวดหมู่ย่อยใหม่" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "บันทึกใหม่" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "บันทึกย่อยใหม่" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "เพิ่มโน้ต" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "งานใหม่" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "งานย่อยใหม่" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "เริ่มการติดตาม" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "หยุดการติดตาม" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "ความสำคัญระดับมากสุด" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "ความสำคัญระดับน้อยสุด" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "เพิ่มระดับความสำคัญ" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "ลดระดับความสำคัญ" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "เกิดข้อผิดพลาดขณะกำลังบันทึก %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "บันทึกข้อผิดพลาด" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "สิ่งที่แนบใหม่..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "แทรกสิ่งที่แนบใหม่" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "เปิดไฟล์แนบ" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "เปิดสิ่งแนบที่ถูกเลือกไว้" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 ชั่วโมง" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "ทั้งหมด" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "แสดง/ซ่อนงานที่เสร็จแล้ว" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "งานให&ม่..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "รายละเอียด" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "เรื่อง" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "ความสำคัญ" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "เรียกดู" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "ที่ตั้ง" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "วันที่" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "ถึงวันที่" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "วันที่เสร็จ" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "ตัวเตือน" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "ดำเนินการ" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "ร้อยละที่เสร็จสิ้น" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "ไม่ใช่" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "ใช่" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "เวลาที่ใช้" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "หมวดหมู่" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "แนบไฟล์" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "บันทึก" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "แก้ไขงาน" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "งาน" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "เริ่ม" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "หยุด" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "ไม่มี" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "รายวัน" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "รายเดือน" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "รายสัปดาห์" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "รายปี" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr "" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "วัน," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "สัปดาห์," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "เดือน," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "ปี," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "ยกเลิก" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "ตกลง" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "ไฟล์" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "บันทึกอัตโนมัติหลังการเปลี่ยนแปลงทุกครั้ง" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "พฤติกรรมหน้าต่าง" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "แสดงหน้าโลโกเมื่อเริ่มโปรแกรม" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "แสดงหน้าต่างคำแนะนำเมื่อเริ่มโปรแกรม" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "เสมอ" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "ไม่ต้อง" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "ตรวจสอบเวอร์ชันใหม่ของ %(name)s เมื่อเริ่มโปรแกรม" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "ย่อหน้าต่างลงเล็กสุดเมื่อปิด" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "ภาษา" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "ไม่พบภาษาใช่หรือไม่?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "ความสามารถ" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "วันจันทร์" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "วันอาทิตย์" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "ตัวแก้ไข" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "ตรวจสอบการสะกดคำในโปรแกรมแก้ไข" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "ตัวเตือน วันที่/เวลา" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "ช้า" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "การเข้าถึง" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "แจ้งฉันเมื่อมีเวอร์ชันใหม่" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "เวอร์ชันใหม่ของ %(name)s มีแล้ว" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "เวอร์ชัน %(version)s of %(name)s มีแล้วที่" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "คำเตือน" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "ไฟล์ %s (*.tsk)|*.tsk|ไฟล์สำรองข้อมูล (*.tsk.bak)|*.tsk.bak|ทุกไฟล์ (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "ไฟล์ iCalendar (*.ics)|*.ics|ทุกไฟล์ (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "ไฟล์ HTML (*.html)|*.html|ทุกไฟล์ (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "ไฟล์ CSV (*.csv)|*.csv|ไฟล์ข้อความ (*.txt)|*.txt|ทุกไฟล์ (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "เปิด" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "โหลดงาน %(nrtasks)d จาก %(filename)s แล้ว" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "ไม่สามารถเปิด %s ได้เพราะว่าไม่มีอยู่" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "ผสาน" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "ผสานไฟล์ %(filename)s แล้ว" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "คุณยังไม่ได้บันทึกการแลกเปลี่ยน\n" "ต้องการบันทึกก่อนปิดหรือไม่?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: บันทึกการเปลี่ยนแปลง?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "ปิด %s แล้ว" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "บันทึกงาน %(nrtasks)d เป็น %(filename)s แล้ว" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "เกิดข้อผิดพลาดขณะกำลังอ่าน %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "ทำให้ข้อมูลตรงกันโดย %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "ยินดีต้อนรับสู่ %(name)s เวอร์ชัน %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "แ&ฟ้ม" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "แ&ก้ไข" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "มุ&มมอง" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&ช่วยเหลือ" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&ส่งออก" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "เ&ลือก" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&ฟิลเตอร์" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&จัดเรียง" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&คอลัมน์" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "เ&ครื่องมือ" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "แสดง/ซ่อนแถบสถานะ" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "แถ&บสถานะ" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&งาน" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "ห&มวดหมู่" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&บันทึก" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "ซ่อ&น" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "ซ่อนแถบเครื่องมือ" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "ภาพขนาดเ&ล็ก" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "ภาพขนาดเล็ก (16x16) บนแถบเครื่องมือ" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "ภาพขนาด&กลาง" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "ภาพขนาดกลาง (22x22) บนแถบเครื่องมือ" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "ภาพขนาดใ&หญ่" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "ภาพขนาดใหญ่ (32x32) บนแถบเครื่องมือ" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "หน้า" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "เ&ปิด...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "เปิด %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&ผสาน..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "ผสานงานจากไฟล์อื่นๆกับไฟล์ปัจจุบัน" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&บันทึก\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "แสดงตัวอย่างของสิ่งที่พิมพ์" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "ตัวอย่างก่อนพิมพ์" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "ส่งออกเป็น &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "ส่งออกเป็น &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&ออก\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "เ&ลิกทำ" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&ทำซ้ำ" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "&ตัด\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&คัดลอก\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&วาง\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "ทั้งห&มด\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "เ&คลียร์การเลือก" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "ยกเลิกการเลือกทั้งหมด" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "เ&ปลี่ยนชื่อ viewer..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "เปลี่ยนชื่อ viewer ที่เลือก" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "เปลี่ยนชื่อ viewer" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "ซ่อ&นคอลัมน์นี้" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "ซ่อนคอลัมน์ที่เลือก" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "จัดเรียงโ&ดย สถานะก่อน" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "จัดเรียงโดย สถานะ (กำลังทำ/หยุดทำ/เสร็จแล้ว) ก่อน" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "งานย่อยใ&หม่..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "ทำเครื่องหมายงานที่เลือกว่าเสร็จแล้ว" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "เกิดข้อผิดพลาดในการเปิดไฟล์แนบ" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "ช่วยเหลือ" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "เ&คล็ดลับ" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "เคล็ดลับเกี่ยวกับโปรแกรม" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "เ&กี่ยวกับ %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "ข้อมูลเวอร์ชันและการติดต่อ %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&ลิขสิทธิ์" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "ลิขสิทธิ์ของ %s" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&คืนค่า" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "คืนค่าหน้าต่างไปยังสถานะก่อนหน้า" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&วันนี้" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "จัดเรียงโดย เรื่อง" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "เ&รื่อง" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "จัดเรียงโดย รายละเอียด" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&รายละเอียด" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "แสดง/ซ่อนคอลัมน์ รายละเอียด" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "แ&นบไฟล์" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "หมวดหมู่: เลือก %d, ทั้งหมด %d" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "เวลาที่ใช้ไปทั้งหมด" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "วันอังคาร" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "วันพุธ" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "วันพฤหัสบดี" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "วันศุกร์" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "วันเสาร์" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "ห&มวดหมู่" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "แสดง/ซ่อนคอลัมน์ หมวดหมู่" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "แสดง/ซ่อนคอลัมน์ revenue" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "จัดเรียงโดย ถึงวันที่" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "ถึงวัน&ที่" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "จัดเรียงโดย วันที่เสร็จ" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "วันที่เ&สร็จ" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "บันทึก: เลือก %d, ทั้งหมด %d" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "สถานะ: n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "งาน: เลือก %d, ที่มองเห็น %d, ทั้งหมด %d" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "งาน" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "เส้นเวลา" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "เดี๋ยวนี้" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% เสร็จสิ้น" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&วันที่" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "แสดง/ซ่อนคอลัมน์ ถึงวันที่" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "แสดง/ซ่อนคอลัมน์ วันที่เสร็จ" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "แสดง/ซ่อนคอลัมน์ recurrence" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "แสดง/ซ่อนคอลัมน์ budget" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "แสดง/ซ่อนคอลัมน์ แนบไฟล์" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "แสดง/ซ่อนคอลัมน์ priority" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "แสดง/ซ่อนคอลัมน์ reminder" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "แทรกหมวดหมู่ใหม่" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "ตัดรายการที่เลือกไปยังคลิปบอร์ด" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "คัดลอกรายการที่เลือกไปยังคลิปบอร์ด" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "วางรายการจากคลิปบอร์ด" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "ปรับแต่งการตั้งค่าโปรแกรม" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "ทำคำสั่งล่าสุดซ้ำอีกครั้ง" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "เลือกทุกรายการที่กำลังแสดงอยู่" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "ยกเลิกคำสั่งล่าสุด" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "ปิดไฟล์ปัจจุบัน" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "ออกจาก %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "เปิดไฟล์ %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "บันทึกไฟล์ปัจจุบัน" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "บันทึกไฟล์ปัจจุบันเป็นชื่อใหม่" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "วิธีใช้โปรแกรม" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "แทรกบันทึกใหม่" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "พิมพ์ไฟล์ปัจจุบัน" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "ตั้งค่าลักษณะของหน้าเครื่องพิมพ์" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "แสดงทุกรายการ (รีเซ็ตฟิลเตอร์ทุกตัว)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "แทรกงานใหม่" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "เดี๋ยวนี้" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "ปิดทั้งหมด" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "แก้ไข" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "ทุกไฟล์ (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "ค้นหาล่าสุด" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "" taskcoach-1.4.3/i18n.in/tr.po000066400000000000000000007105741265347643000156600ustar00rootroot00000000000000# Turkish translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2016-01-23 02:09+0000\n" "Last-Translator: Kaya Zeren \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: tr\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Bazı hatalar oluştu. Ayrıntılar için \"Belgelerim\" klasöründeki " "\"taskcoachlog.txt\" dosyasına bakınız." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Hata" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Hatalar oluştu. Lütfen \"%s\" bölümüne bakınız." #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "TaskCoach.ini dosyasından ayarlar yüklenemedi:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s dosya hatası" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "Üst ögesi yerel olarak silindiğinden \"%s\" en üst düzey olacak." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" "\"%s\" için çakışmalar algılandı.\n" "Yerel sürüm kullanıldı." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Eklerin yerlerini düzenle" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "\"%s\" ekinin yerini düzenle" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Eklenti ekle" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Eki \"%s\" içine yükle" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Yeni eklenti" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Eki kaldır" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Eki \"%s\" içinden sil" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Kopyala" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "\"%s\" kopyala" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Sil" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "\"%s\" ögesini sil" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Kes" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "\"%s\" keser" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Yapıştır" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "\"%s\" yapıştırır" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Altöge olarak yapıştır" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "\"%s\" altögesi olarak yapıştırır" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Sürükle ve bırak" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "\"%s\" sürükle ve bırak" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Konuları düzenle" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "\"%s\" konusunu düzenler" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Tanımları düzenle" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "\"%s\" açıklamasını düzenler" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Simgeleri değiştir" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "\"%s\" simgesini değiştirir" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Yazı tiplerini değiştir" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "\"%s\" yazı tipini değiştirir" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Yazı renklerini değiştir" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "\"%s\" yazı tipi rengini değiştirir" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Artalan renklerini değiştir" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "\"%s\" artalan rengini değiştirir" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Grup seç" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "\"%s\" grubunu seçer/bırakır" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Yeni grup" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Yeni altgruplar" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "\"%s\" için yeni altgrup ekler" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Yeni altgrup" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Özel altgrupları düzenle" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "\"%s\" için dışlayıcı altgrupları düzenler" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Grupları sil" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "\"%s\" grubunu siler" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Grupları sürükle bırak" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Yeni çalışmalar" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "\"%s\" için çalışma ekler" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Çalışmaları sil" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "\"%s\" çalışmasını siler" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Çalışmanın işini değiştir" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "\"%s\" çalışmasının işini değiştirir" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Çalışmanın başlangıç tarih ve zamanını değiştir" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "\"%s\" çalışmasının başlangıç tarih ve zamanını değiştirir" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Çalışmanın bitiş tarih ve zamanını değiştir" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "\"%s\" çalışmasının bitiş tarih ve zamanını değiştirir" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Yeni not" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Yeni altnotlar" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "\"%s\" için yeni altnot" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Yeni alt not" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Notları sil" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "\"%s\" notunu siler" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Notları sürükle bırak" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "\"%s\" notunu sürükle ve bırak" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Not ekle" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Notu \"%s\" içine yükler" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Altnot ekle" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "\"%s\" ögesine altnot ekler" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Notu sil" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "\"%s\" ögesinden notu siler" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "İşleri sürükle bırak" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "İşleri sil" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "\"%s\" işini sil" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Yeni iş" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Yeni altişler" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "\"%s\" için yeni altiş ekler" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Yeni altiş" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "İşleri tamamlandı olarak işaretle" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "\"%s\" ögesini tamamlandı olarak işaretle" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "İş etkin işareti koy" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "\"%s\" etkin işareti koy" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "İş etkin değil işareti koy" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "\"%s\" etkin değil işareti koy" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Çalışmaya başla" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "\"%s\" için çalışmaya başla" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Çalışmayı bırak" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "\"%s\" çalışmasını bırak" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "En yüksek öncelik" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "\"%s\" için en yüksek önceliği atar" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "En düşük öncelik" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "\"%s\" için en düşük önceliği atar" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Önceliği arttır" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "\"%s\" önceliğini arttırır" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Önceliği düşür" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "\"%s\" önceliğini azaltır" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Önceliği değiştir" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "\"%s\" önceliğini değiştirir" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "İşlere not ekle" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Planlanan başlangıç tarihini değiştir" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "\"%s\" için planlanan başlangıç tarihini değiştir" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Bitiş tarihini değiştir" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "\"%s\" için bitiş tarihini değiştirir" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Geçerli başlangıç tarihini değiştir" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "\"%s\" için geçerli başlangıç tarihini değiştir" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Tamamlanma tarihini değiştir" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "\"%s\" için tamamlanma tarihini değiştirir" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Anımsatıcı tarihlerini/zamanlarını değiştir" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "\"%s\" için anımsatıcı tarihini/zamanını değiştirir" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Yinelemeleri değiştir" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "\"%s\" için yinelemeyi değiştirir" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "\"%s\" için tamamlanma yüzdesini değiştirir" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "İşler tamamlandı olarak işaretlendiğinde değiştir" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "\"%s\" tamamlandı olarak işaretlendiğinde değiştirir" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Bütçeleri değiştir" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "\"%s\" için bütçeyi değiştirir" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Saatlik ücretleri değiştir" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "\"%s\" için saatlik ücretleri değiştirir" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Sabit ücretleri değiştir" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "\"%s\" için sabit ücretleri değiştirir" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Önkoşulu aç/kapat" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "\"%s\" için ön koşulu açar ya da kapatır" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "%s-%s ayarları %s.ini dosyasından okunurken hata oluştu." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Değer: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Hata: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "%s varsayılan ayarları kullanarak normal şekilde çalışacak." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Ayar hatası" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "%s.ini kaydedilirken hata oluştu:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Kaydetme hatası" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app iletisi" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Yeni ek..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Yeni ek ekler" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Eki aç" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Seçili ekleri açar" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 dakika" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Erteleme" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 dakika" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 dakika" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 dakika" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 dakika" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 saat" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 dakika" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 saat" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 saat" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 saat" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 saat" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 saat" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 saat" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 saat" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 saat" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 saat" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 saat" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 saat" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 hafta" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 hafta" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Toplam" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "%s toplamı" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Yeni çalışma...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Etkin olmayan işler" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Etk&in olmayan işleri gizle" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Etkin olmayan işler: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Etkin olmayan işleri gösterir ya da gizler (geçerli başlangıç tarihi olmayan " "tamamlanmamış işler)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Geç kalmış işler" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "&Gecikmiş işleri gizle" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Gecikmiş işler: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Gecikmiş işleri göster/gizle (planlanan başlangıç tarihi geçmişte olan etkin " "olmayan işler)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Etkin işler" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Etkin işler: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Etkin işleri &gizle" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Etkin işleri gösterir ya da gizler (geçerli başlangıç tarihi geçmişte olan " "tamamlanmamış işler)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Yaklaşan işler" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Yakında bitecek işler: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "&Yaklaşan işleri gizle" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Yakında bitecek işleri gösterir ya da gizler (bitiş tarihi yakın gelecekte " "olan tamamlanmamış işler)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Zamanı geçmiş işler" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "&Zamanı geçen işleri gizle" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Zamanı geçmiş işler: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" "Zamanı geçmiş işleri gösterir ya da gizler (bitiş tarihi geçmişte olan " "tamamlanmamış işler)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Tamamlanmış işler" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Tamamlanmış işler: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "&Tamamlanmış işleri gizle" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Tamamlanmış işleri göster ya da gizle" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "Ye&ni iş..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Aşağı ok" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Durum göstergeli aşağı ok" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Mavi ok çevrimi" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Yeşil ok çevrimi" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Yukarı ok" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Durum göstergeli yukarı ok" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomba" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Kitap" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Kitaplar" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Kutu" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Uğur böceği" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Pasta" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Hesap makinesi" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Takvim" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Kedi" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "CD" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Grafikler" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Sohbet" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Onay işareti" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Seçim işaretleri" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Saat" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Çalar saat" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Kronometre" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Çark" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Çarklar" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Masaüstü bilgisayar" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Taşınabilir bilgisayar" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "El bilgisayarı" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Kırmızı çarpı" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Zar" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Belge" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Mavi Dünya" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Yeşil Dünya" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Zarf" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Zarflar" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Mavi klasör" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Açık mavi klasör" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Yeşil klasör" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Gri klasör" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Turuncu klasör" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Mor klasör" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Kırmızı klasör" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Sarı klasör" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Oklu mavi klasör" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Kalp" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Kalpler" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Yeşil ev" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Kırmızı ev" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Anahtar" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Anahtarlar" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lamba" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Soru işareti" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Bilgi" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Mavi ışık" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Açık mavi ışık" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Gri ışık" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Yeşil ışık" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Açık yeşil ışık" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Turuncu ışık" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Mor ışık" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Kırmızı ışık" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Sarı ışık" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Yaşam yüzüğü" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Kapalı kilit" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Açık kilit" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Büyüteç" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Piyano" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Nota" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Not" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Palet" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Ataç" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Kalem" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "İnsan" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "İnsanlar" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Kimlik" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Konuşan insan" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Uyarı işareti" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Eksi" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Artı" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Kırmızı yıldız" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Sarı yıldız" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Trafik ışıığı" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Çöp kutusu" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Şimşek" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Şemsiye" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Parçalı bulutlu" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "İngiliz anahtarı" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Simge yok" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "Dosya" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "Tam yol" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "Tarih" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "Geri Yükle" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "Kapat" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Geri yüklenecek yeri seçin" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "%s geliştiricilerinden ileti" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Şuraya bakın:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Açıklama" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Tüm konuları değiştirecek şekilde düzenle" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Konu" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Tüm açıklamaları değiştirecek şekilde düzenle" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Oluşturulma tarihi" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Değişiklik tarihi" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Öncelik" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Birbirini dışlayan" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Alt kategoriler" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Tüm eklerin yerini değiştirecek şekilde düzenle" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Gözat" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Konum" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Görünüm" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Yazı rengi" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Artalan rengi" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Yazı tipi" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Simge" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Tarihler" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Planlanan başlangıç tarihi" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Bitiş tarihi" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Geçerli başlangıç tarihi" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Tamamlanma tarihi" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Anımsatıcı" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Yineleme" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "İlerleme" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Tamamlanan yüzde" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Genel geçer ayarı kullan" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Hayır" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Evet" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Tüm alt işler tamamlandığında iş tamamlansın mı?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Bütçe" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Harcanan zaman" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Kalan bütçe" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Saatlik ücret" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Sabit ücret" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Gelir" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Çalışmalar" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Gruplar" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Ekler" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Notlar" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Ön koşullar" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "İşi düzenle" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "İş" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Başlat" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Hafta" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Gün" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Saat" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Dakika" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Dur" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Çalışmaya son durulan zamandan başla" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "İzlemeyi durdur" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Dikkat: Başlangıç bitişten önce olmalı" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Birden çok iş" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (iş)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Birden çok grup" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (grup)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Birden çok not" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (not)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Birden çok ek" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (ek)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Birden çok çalışma" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (çalışma)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Şu yazı tipini kullan:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Şu rengi kullan:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Yok" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Günlük" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Aylık" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Haftalık" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Yıllık" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "tarihleri aynı hafta içi günde tutarak" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", her" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Durmadan önce" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "kez yinele" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Sonraki her yenilemeyi şuna göre zamanla" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "önceki planlanan başlangıç / bitiş tarihi" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "son tamamlanma tarihi" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "gün," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "dönem," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "hafta," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "ay," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "yıl," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Şuradaki ögeleri ver:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Yalnız seçili ögeleri ver" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Verilecek sütunlar:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "İş tarih ve saatlerini ayrı sütunlarda göster" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Stil bilgisini ayrı bir CSS dosyasına yaz" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Verilen dosya için bir CSS dosyası varsa, %(name)s üzerine yazmayacak. " "Böylece bir sonraki verme işleminde, tanımladığınız stil bilgisini " "kaybetmezsiniz." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "CSV olarak ver" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "iCalendar olarak ver" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "HTML olarak ver" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Todo.txt olarak ver" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Bir iPhone ya da iPod Touch aygıtı\n" "iş dosyasıyla ilk kez eşleştirme yapmayı\n" "deniyor. Ne tip eşleştirme yapılmasını\n" "istiyorsunuz?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Masaüstünden aktar" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Aygıttan aktar" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "İptal" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "iPhone ile eşleştirme özelliğini etkinleştirdiniz\n" "Bunun için Bonjour gereklidir. Sisteminizde\n" "Bonjour kurulmamış görünüyor." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Lütfen Windows için Bonjour programını şuradan indirip kurun\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple web sitesi" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Linux için Bonjour desteği genellikle\n" "Avahi tarafından sağlanır." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Dağıtımınız hakkında ayrıntıları burada bulabilirsiniz" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Bunun çalışması için bazı sistemlerde (Fedora),\n" "Avahi yanında avahi-compat-libdns_sd paketini\n" "kurmanız gerekebilir." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Ayrıca, bir güvenlik duvarınız varsa 4096-4100 numaralı portların açık " "olduğunu denetleyin." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Tamam" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Yeni ayarlar %s yeniden başlatıldıktan sonra etkin olacak" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" "Bu ayar her bir iş için iş düzenleme\n" "penceresinden değiştirilebilir." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Dosyalar" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Her değişiklikten sonra kendiliğinden kaydet" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "Diskteki dosya güncellendiğinde kendiliğinden yeniden yükle" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "Akıllı dosya sistemi izlemesi" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "İş dosyasındaki değişiklikleri gerçek zamanlı olarak izlemeye çalışır.\n" "İş dosyanız bir ağ paylaşımında ise bunu işaretlemeyin.\n" "Bu ayarı değiştirdikten son %s programını yeniden başlatmalısınız." #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Ayar dosyasını (%s.ini)\n" "yazılımla aynı klasöre kaydet" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Çıkarılabilir diskten çalışan %s için" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Eklerin kök klasörü" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "Dosya eklerken, klasör yolunu\n" "bununla ilişkili yapmayı dene." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Kaydetmeden önce kendiliğinden şuradan al" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt biçimi" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Kaydetmeden önce, %s, iş dosyası (.tsk) ile \n" "aynı adlı ve .txt uzantılı Todo.txt dosyasından işleri \n" "kendiliğinden alır" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "Kaydederken kendiliğinden şuraya ver" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Kaydederken, %s iş dosyası (.tsk) ile\n" "aynı adlı ve .txt uzantılı todo.txt dosyasına işleri\n" "kendiliğinden verir" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Pencere davranışı" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Açılırken logoyu göster" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Açılışta ipuçları penceresini göster" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Sistem tepsisinde simge durumunda başlat" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Her zaman" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Asla" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Son kullanıldığında simge şeklindeyse" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Açılışta %(name)s yeni sürüm denetimi yap" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "Başlangıçta %(name)s geliştiricilerinin iletilerini denetle" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Sistem tepsisi simgesi olarak küçült" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Kapatıldığında ana pencereyi küçült" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Çalışılırken sistem tepsisinde saat simgesi göster" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Dil" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Dili sistem varsayılanına göre belirle" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" "Dilinizde çeviri yoksa ya da iyileştirilmesi gerekiyorsa, yardım etmeyi " "düşünebilirsiniz. Ayrıntılar için:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Dil bulunamadı?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "İş görünümü" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" "Bu görünüm ayarları her bir iş için iş düzenleme penceresinden " "değiştirilebilir." #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Özellikler" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" "Bu sekmede yapılan değişikliklerin geçerli olması için %s yeniden " "başlatılmalıdır" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "SyncML eşleştirmeyi etkinleştir" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "iPhone eşleştirmeyi etkinleştir" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "X11 oturum yönetimi kullan" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "Çalışma haftasının başlangıcı" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Pazartesi" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Pazar" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "İş gününde çalışmaya başlama saati" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "İş gününde çalışmayı bitirme saati" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Gün sonu" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Takvim pencerelerinde gölgelendirme kullan.\n" "Bu ayar Task Coach'u yavaşlatabilir." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "Zamanlar arasında önerilen dakika" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "Zaman seçimi açılan pencerelerinde (örneğin bir çalışmaya\n" "başlama zamanı) %(name)s bu ayarı kullanarak bazı zamanlar \n" "önerir. Dakika aralığı küçüldükçe, daha çok zaman \n" "önerilir. Tabi ki önerilen zamanların yanında istediğiniz \n" "zamanı yazabilirsiniz." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "Boş bekleme uyarısı" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" "Kullanıcı bir işlem yapmadan bu kadar süre beklenirse\n" "(dakika), %(name)s geçerli çalışmaların ne olacağını sorar." #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "Çalışma kayıtlarında ondalık zamanlar kullanılsın" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" "Bir saat onbeş dakika 1:15 yerine 1.25 şeklinde görüntülenir\n" "Faturalama için uygundur." #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "İmleç bir ögenin üzerine getirildiğinde\n" "açılır pencerede açıklamasını göster" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "İş tarihleri" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "Altişleri tamamlandığında işi tamamlanmış olarak işaretle" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "İşin 'Bitiş zamanı yaklaşıyor' durumuna geçmesi için kalacak saat" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Hiçbir şey" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Planlanan başlangıç tarihini değiştirmek bitiş tarihini değiştirsin" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Bitiş tarihini değiştirmek planlanan başlangıç tarihini değiştirsin" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Planlanan başlangıç ya da bitiş tarihinden biri değiştirildiğinde diğerine " "ne yapılsın?" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Ön Ayar" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Öner" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Bugün" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Yarın" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Ertesi gün" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Gelecek Cuma" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Gelecek Pazartesi" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Gün başı" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "İş günü başı" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Şu an" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "İş günü sonu" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "Varsayılan planlanan başlangıç tarihi ve zamanı" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "Varsayılan bitiş tarih ve saati" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "Varsayılan güncel başlangıç tarihi ve saati" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "Varsayılan tamamlanma tarih ve saati" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "Varsayılan anımsatıcı tarih ve saati" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" "Yeni işler \"Önceden ayarlanmış\" tarih ve saat yazılmış ve işaretlenmiş " "olarak başlar. \"Öngörülen\" tarih ve saat doldurulur ancak işaretlenmez.\n" "\n" "\"Gün başı\" gece yarısıdır \"Gün sonu\" geceyarısından hemen öncedir. Bu " "seçeneği kullanırken iş görünümleri saati gizler ve yalnızca tarihi " "gösterir.\n" "\n" "\"Çalışma günü başı\" ve \"Çalışma günü sonu\", ayarlar bölümünde özellikler " "sekmesinde belirtilmiş çalışma günlerini kullanır." #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "İş anımsatıcıları" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Anımsatıcılar için kullanılacak uyarı sistemi" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "Bilgisayar hatırlatıcıyı söylesin" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(Espeak gereklidir)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "Varsayılan anımsatıcı erteleme süresi" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "İş anımsatıcı iletisinde önerilecek süre ertelemeleri" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "iPhone ile eşleştirme için parola" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" "Eşleştirme işlemine izin vermek için iPhone üzerinde bu parolayı yazın" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour hizmeti adı" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Tamamlanmış işleri aygıta yükle" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Eşleştirme günlüğünü göster" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Düzenleyici" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Düzenyicilerde yazım denetim yap" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "Açıklama alanı ve düzenleme pencerelerinde kullanılacak yazı tipi" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "Mail.app üzerinden e-posta konusu alınsın" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "Mail.app üzerinden bir e-posta gönderilirken konusunu alınmaya çalışılır.\n" "Bu işlem 20 saniye kadar sürebilir." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "İş düzenleyicide iş konusuna odaklanılsın" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" "İş düzenleyici açılırken, iş konusu seçilir ve odaklanılır.\n" "Bu ayar X seçiminin önüne geçer." #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s anımsatıcı - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Anımsatıcı tarih ve saati" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Sustur" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" "Gelecekteki anımsatıcılar için de varsayılan susturma süresi olarak bunu " "kullan" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "İşi tamamlanmış olarak işaretle" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML sunucusu" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Özelleştirilmiş" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "Horde temelli" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML sunucusunun adresi" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Kullanıcı adı/kimliği" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "İşleri eşleştir" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "İşler veritabanının adı" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Yeğlenen eşleştirme kipi" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "İki yönlü" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Yavaş" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "İstemciden tek yönlü" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "İstemciden aktar" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Sunucudan tek yönlü" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Sunucudan aktar" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Notları eşleştir" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Notlar veritabanının adı" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Erişim" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Yeni görev kalıbı" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "Önizleme" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "Kullanılabilecek araçlar" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "Bu araç, araç çubuğunda görüntülensin" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "Bu araç, araç çubuğundan kaldırılsın" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "Araçlar" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "Aracı yukarı taşıyın (araç çubuğunun soluna)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "Aracı aşağı taşıyın (araç çubuğunun sağına)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" "Bu listedeki araç çubuğu düğmelerinin sırasını sürükleyip bırakarak " "değiştirebilirsiniz." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "Ayıraç" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "Aralık" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Yeni sürümleri bildir." #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "%(name)s için yeni bir sürüm bulundu" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "%(name)s %(currentVersion)s sürümünü kullanıyorsunuz." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s sürüm %(version)s şuradan alınabilir:" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s güncel" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s %(version)s sürümü güncel." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Son sürüm bulunamadı." #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "%(name)s için son sürümün hangisi olduğu bulunamadı." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Yayın öncesi sürüm" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "%(name)s yayın öncesi sürümü %(currentVersion)s kullanıyorsunuz." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Son yayınlanan %(name)s sürümü %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Uyarı" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" "Task Coach yazılımının XFCE4 oturum yönetimi ile bilinen sorunları vardır.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "Açılışta donma sorunları yaşıyorsanız, lütfen\n" "Ayarlar/Özellikler bölümünden \"X11 oturum yönetimi kullan\" seçeneğini " "devre dışı bırakın.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "Açılışta artık bu pencereyi gösterme" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "%s zamanından beri kullanıcı girişi olmadı. Şu işte\n" "çalışılıyordu" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Hiçbir şey yapma" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Şurda dur: %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Şimdi sürdür ve şurda dur: %s" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Bildirim" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s dosyaları (*.tsk)|*.tsk|Tüm dosyalar (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s dosyaları (*.tsk)|*.tsk|Yedek dosyaları (*.tsk.bak)|*.tsk.bak|Tüm " "dosyalar (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar dosyaları (*.ics)|*.ics|Tüm dosyalar (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML dosyaları (*.html)|*.html|Tüm dosyalar (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "CSV dosyaları (*.csv)|*.csv|Metin dosyaları (*.txt)|*.txt|Tüm dosyalar " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt dosyaları (*.txt)|*.txt|Tüm dosyalar (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Aç" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "%(filename)s dosyasından %(nrtasks)d iş yüklendi" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "%s bulunamadığından açılamıyor" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Birleştir" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "%(filename)s dosyası kilitli\n" "olduğundan açılamıyor." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "%(filename)s dosyası birleştirildi" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Farklı kaydet" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Seçimi kaydet" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "%s kaydedilemiyor\n" "Programın %s çalışan başka bir kopyası kilitlemiş.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "%s kaydedilemiyor\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Kalıp al" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s kalıp dosyası (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "%s kalıbı alınamadı\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "%(count)d öge %(filename)s dosyasına verildi" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Eşleştirme bitti" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Eşleştirme durumu" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "%s açılamıyor\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "%s adında bir dosya zaten var.\n" "Değiştirmek istiyor musunuz?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "Kaydedilmemiş değişiklikler var.\n" "Kapatmadan önce kaydedilsin mi?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: değişiklikler kaydedilsin mi?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "%s kilitli olduğundan açılamıyor.\n" "\n" "Bunun nedeni başka bir TaskCoach kopyasının\n" "çalışması ve dosyanın orada açık olması ya da\n" "önceki Task Coach oturumunun çökerek kapanması\n" "olabilir. Kilidi güvenle açabilirsiniz.\n" "\n" "Kilit açılsın mı?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: dosya kilitli" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "%s yeri için kilitlenme desteklenmediğinden\n" "kilitlenemiyor.\n" "%s dosyası kilitsiz olarak açılsın mı?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s kapatıldı" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "%(filename)s dosyasına %(nrtasks)d iş kaydedildi" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "%(filename)s dosyası açılamıyor\n" "bu dosya %(name)s yazılımının daha yeni bir sürümüyle oluşturulmuş.\n" "Lütfen %(name)s yazılımını güncelleyin." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "%s okunurken hata oluştu:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" "Bu dosyanın daha önceki bir sürümünü geri yüklemek için \n" "yedekleme yönetimi açılacak." #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Eşleştiriliyor..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "%s ile eşleştiriliyor..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "%(name)s %(version)s sürümüne hoşgeldiniz" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" "TaskCoach.ini dosyasından panel düzeni yüklenemedi:\n" "%s\n" "\n" "Varsayılan panel düzeni kullanılacak.\n" "\n" "Bu durum yeniden oluşursa, yazılımı kapatmadan önce TaskCoach.ini dosyasını " "kopyalayın, bir hata raporu oluşturarak kopyaladığınız TaskCoach.ini " "dosyasını hata raporuna ekleyin." #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "%s ayarlarında hata" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Eşleştirme tipi" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "Bir iPhone ya da iPod Touch aygıtı bu iş dosyasıyla\n" "eşleşmeye çalışıyor ancak iletişim bağlantısı kurulamadı.\n" "Lütfen bir hata raporunu inceleyin ve iletin." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Dosya" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "Düz&enle" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Görünüm" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "Ye&ni" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "Ça&lışmalar" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Yardım" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Al" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Ver" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Seç" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Yeni pencere" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "S&onraki pencereyi etkinleştir\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Ö&nceki pencereyi etkinleştir\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "&Kip" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Süzgeç" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "Sı&ralama" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "Süt&unlar" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "Yuva&rlama" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Ağaç seçenekleri" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "A&raç çubuğu" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Durum çubuğunu göster ya da gizle" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Durum çu&buğu" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "İ&şler" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "İşleri gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "İş i&statistikleri" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "İş istatistiklerini gösteren yeni bir sekme görünümü açar" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "İş &alanı haritası" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "İşleri alan haritasında gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "&Zaman akışı" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" "İş ve çalışmaların zaman akışını gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "&Takvim" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "İşleri takvimde gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "&Hiyerarşik takvim" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" "iş hiyerarşisini takvimde görüntülemek için yeni bir görüntüleme sekmesi açar" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "G&ruplar" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Grupları gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "Ç&alışma" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Çalışmaları gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "S&eçilmiş işlerin çalışması" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Seçili işin çalışmalarını gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Notlar" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Notları gösteren yeni bir pencere sekmesi açar" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "&Gizle" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Araç çubuğunu gizler" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "Küçük &simgeler" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Araç çubuğunda küçük (16x16) simgeleri gösterir" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Orta boy simgeler" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Araç çubuğunda (22x22) orta-boy simgeleri gösterir" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Büyük simgeler" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Araç çubuğunda (32x32) büyük boy simgeleri gösterir" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Kalıp&tan yeni iş" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Grubu değiş&tir" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "İş ön&celiğini değiştir" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "Çalışmaya &başla" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (altgrup)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (altişler)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "Ö&ncelik" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Sayfa" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s Anımsatıcı" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d işin zamanı geçmiş" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "bir işin zamanı geçmiş" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d işin bitiş zamanı yaklaşıyor" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "bir işin bitiş zamanı yaklaşıyor" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "\"%s\" üzerinde çalışılıyor" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "%d iş üzerinde çalışılıyor" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Aç...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "%s dosyasını aç" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Birleştir..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Başka bir dosyadaki işleri bu dosya ile birleştirir" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "Ka&pat\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "Ka&ydet\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "&Disk değişikliklerini birleştir\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "&Farklı kaydet...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "Seçilmiş işleri ¥i bir iş dosyasına kaydet..." #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "Seçilmiş işleri ayrı bir iş dosyayı olarak kaydeder" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Seçilen işi &kalıp olarak kaydet" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Seçili işi bir iş kalıbı olarak kaydet" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "&Kalıp al..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "Bir kalıp dosyasından yeni bir kalıp alır" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Kalıpları düzenle..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Varolan kalıpları düzenler" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Kalıpları düzenle" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "&Silinmiş ögeleri yoket" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" "Silinmiş iş ve notları gerçekten sil (Yardımdan SyncML bölümüne bakın)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Silinmiş ögelerin yok edilmesi geri alınamaz.\n" "SyncML özelliğini önceden kullandığınız\n" "sunucuyu kullanarak yeniden etkinleştirmeyi\n" "düşünüyorsanız, bu ögeler geri gelebilir.\n" "\n" "Hala yok etmek istiyor musunuz?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "&Sayfa yapısı...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "&Baskı önizleme..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Yazıcı çıktısının nasıl görüneceğini gösterir" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Baskı önizleme" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Yazdır...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "Yedek yönetimi..." #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "Tüm iş dosyası yedeklerinin yönetimi" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "&HTML olarak ver..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "Bir görüntüleyicideki ögeleri HTML biçiminde verir" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "&CSV olarak ver..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" "Bir görüntüleyicideki ögeleri virgülle ayrılmış değerler (CSV) biçiminde " "verir" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "&iCalendar olarak ver..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "Bir görüntüleyicideki ögeleri iCalendar biçiminde verir" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "&Todo.txt olarak ver..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" "Bir penceredeki ögeleri Todo.txt biçiminde verir (todotxt.com'a bakın)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "CSV A&l..." #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "İşleri virgülle ayrılmış değer dosyasından (CSV) alır" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "CSV Al" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "Seçili dosya boş. Lütfen başka bir dosya seçin." #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "Todo.txt olarak a&l..." #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "Todo.txt dosyasyından işleri alır (todotxt.com'a bakın)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "Todo.txt al" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "S&yncML eşleştirme..." #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Bir SyncML sunucusuyla eşleştir" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "Çı&k\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Geri al:" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Yinele:" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Ke&s\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Kopyala\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Yapıştır\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Altöge olarak ya&pıştır\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "&Ayarlar...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "Ayarlar" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML ayarları..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "SyncML ayarlarını düzenle" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML ayarları" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "Araç çubuğunu özelleştir" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "Özelleştir" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Tümü\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Seçimi kaldır" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Seçili tüm ögeleri bırakır" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "Tüm &süzgecleri kaldır\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "Tüm g&rupları sıfırla\tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "%s ögesine ait tüm ögeleri göster ya da gizle" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "Pencereyi ¥iden adlandır..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Seçili pencerenin adını değiştirir" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Pencerenin yeni adı:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Pencereyi yeniden adlandırır" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Bu sütunu gizle" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Seçili sütunu gizler" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "Tüm öğeleri &genişlet\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "Tüm öğeleri &daralt\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&Artan" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "Sıralamayı artan (işaretli) ya da azalan (işaretsiz) olarak yapar" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Büyük/küçük harfe duyarlı olarak sırala" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "Metin karşılaştırılırken sıralamayı büyük/küçük harfe duyarlı (işaretli) ya " "da duyarsız (işaretsiz) olarak yapar" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Önce &duruma göre sırala" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "İşleri önce duruma göre (etkin/etkin olmayan/tamamlandı) sıralar" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Bi&rleşik işleri gizle" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Liste kipinde, işleri altişleriyle birlikte göster ya da gizle" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "Düz&enle...\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "Seçili ögeleri düzenle" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "İ&zlenen işi düzenle...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "İzlenmekte olan işleri düzenler" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "&Sil\tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "Seçili ögeleri siler" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Bir kalıptan yeni bir iş oluştur" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Seçili &gruplara yeni iş ekle..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Seçili gruplara yeni bir iş ekler" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Seçili işleri önkoşul &olarak kabul eden yeni bir iş ekle..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "Seçili işleri önkoşul olarak kabul eden yeni bir iş ekler" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "Seçilmiş işlere &bağlı yeni iş..." #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Seçili işlere bağımlı yeni bir iş ekler" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "Yeni al&töge..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Yeni &altiş..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "Yeni al&tnot..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "Yeni al&tgrup..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "Seçili ögeye yeni bir alt öge ekler" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "İşi etkin ol&arak işaretle \tAlt+Return" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "Seçili işleri etkin olarak işaretle" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "İş&i etkin değil olarak işaretle \tCtrl+Alt+Return" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "Seçili işleri etkin değil olarak işaretle" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "işi &tamamlandı olarak işaretle \tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Seçili işleri tamamlanmış olarak işaretler" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "En &yüksek öncelik\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "En &düşük öncelik\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "Önceliği &arttır\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Ö&nceliği düşür\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "%s çevir" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "E-&posta...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "&Posta...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "Birkaç şey" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "ve" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "E-posta gönderilemiyor:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s e-posta hatası" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "&Not ekle...\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "Tüm notları aç...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "Çalışmaya &başla\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Seçili çalışmaların işleri için çalışma izlemeye başla" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Konu yok)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "%s için çalışmaya başla" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Menüden bir iş seçin ve üzerinde çalışmaya başlayın" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "Çalışmayı durdur ya da sürdür\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "%s çalışmasını &bitir\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Etkin işler için çalışmayı bırak" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "%s çalışmasını &sürdür\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "Son çalışılan iş için çalışmayı başlat" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "birden çok iş" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "Yeni grup...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "Yeni not...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Seçili gruplara yeni ¬ ekle..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Seçili gruplara yeni bir not ekler" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "&Ek ekle...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Ek açılırken hata" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "Tüm e&kleri aç...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "&Yardım konuları\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Yardım konuları\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Yardım" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "İ&puçları" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Yazılım hakkında ipuçları" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "Kimlikten arındır" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" "Bir iş dosyasını hata raporuna eklemek için kimlik bilgilerinden arındırır" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "İş dosyanız kimlik bilgilerinden arındırıldı ve şuraya kaydedildi:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "Bitti" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "%s &hakkında" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "%s hakkında sürüm ve iletişim bilgileri verir" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "%s hakkında" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Lisans" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s lisansı" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "Güncellemeleri denetle" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "Yeni bir %s sürümü var mı bak" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "Şu adres açılamıyor:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s adres hatası" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "&Sık sorulan sorular" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "Sık sorulan sorulara ve yanıtlarına bakabilirsiniz" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "Hata &bildir..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "Hata bildirin ya da bilinen hatalara göz atın" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "Özellik is&te..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" "Yeni bir özellik isteğinde bulunun ya da varolan istek listesini oylayın" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "De&stek iste..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "Geliştiricilerden yazılım desteği alın" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "Çevi&riye yardım edin..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "%s çevirisini güncellemeye yardım edin" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&Bağış..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "Bağış yaparak %s yazılımının geliştirilmesine yardım edin" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "Ö&nceki boyut" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Pencereyi önceki boyutuna döndürür" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "Ara" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Çalışma ayrıntıları" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Günlük çalışma" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Aylık çalışma" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Haftalık çalışma" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "Kümeleme kipi" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "Liste" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "Ağaç" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" "Bu seçenek etkinleştirildiğinde, işler ağaç olarak görüntülenir. Aksi " "durumda liste olarak görüntülenir." #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Seçili gruplara göre süz" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Seçili gruba göre süz" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" "Bu seçenek işaretlendiğinde, işaretli tüm kategoriler süzülür. Yoksa " "işaretlenmiş bir kategori süzülür." #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "Sıralama seçimi" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Yapılandır" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Takvim penceresini yapılandır" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "Hiyerarşik takvim görüntüleyici ayarları" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "So&nraki dönem" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "Sonraki dönemi gösterir" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Ön&ceki dönem" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Önceki dönemi gösterir" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Bugün" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "Bugünü göster" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Sütun genişliğini &ayarla" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "İşaretlendiğinde sütunları varolan boşluğu dolduracak şekilde kendiliğinden " "boyutlandırır" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "Pasta grafiği açısı" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "Yuvarlanmasın" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 dakika" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d dakika" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "Yuvarlama duyarlılığı" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "Her z&aman yukarı yuvarla" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "Her zaman üst değere yuvarla" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Tip" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Konuya göre sırala" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Kon&u" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Açıklamaya göre sırala" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Açıklama" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "&Oluşturulma tarihi" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "Oluşturulma tarihine göre sırala" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "&Değişiklik tarihi" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "Son değişiklik tarihine göre sırala" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Açıklama sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "&Notlar" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Notlar sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "Oluşturulma tarihi sütununu gösterir ya da gizler" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "Son değişiklik tarihi sütununu göster/gizle" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "Araç çubukları özelleştirilebilir" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "Sağdaki dişli simgesine tıklayarak düğmeleri düzenleyebilirsiniz." #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "Ağaç kipinde yeniden sıralama" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" "Ağaç kipinde el ile sıralama ancak tüm seçilmiş ögeler kardeş ise " "yapılabilir." #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "Ağaç kipinde, nesneler ancak aynı düzeye (üst) yerleştirilebilir." #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "&El ile sıralama" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "El ile sıralama sütununu gösterir ya da gizler" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Ekler" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Ekler sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Gruplar: %d seçili, %d toplam" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Durum: %d süzülmüş" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Dönem" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Harcanan toplam zaman" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Toplam ciro" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Salı" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Çarşamba" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Perşembe" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "Cuma" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Cumartesi" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Gruplar" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Grup sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Harcanan zaman" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Harcanan zaman sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "Geli&r" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Gelir sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "Harcanan &toplam zaman" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Harcanan toplam zaman sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Toplam kazanç" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Toplam kazanç sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Hafta içi günlerindeki çalışma" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Hafta içi günlerindeki çalışmalar sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "Çalışma kümelemesi" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" "Çalışma: %d seçilmiş, %d görünür, %d toplam. Harcanan zaman: %s seçilmiş, %s " "görünür, %s toplam" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Durum: %d üzerinde çalışılıyor" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "Ayrıntılar:" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "Seçilmiş işlerin çalışması" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Grupları konularına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Grupları açıklamalarına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "Kategorileri oluşturulma tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "Kategorileri son değişiklik tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "Grupları el ile sırala" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Ekleri konularına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Ekleri açıklamalarına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Grupları gruplarına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "Ekleri oluşturulma tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "Ekleri son değişiklik tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Notları konularına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Notları açıklamalarına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Notları gruplarına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "Notları oluşturulma tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "Notları son değişiklik tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "Notları el ile sırala" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "İşleri konularına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "İşleri açıklamalarına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "İşleri gruplarına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "İşleri oluşturulma tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "İşleri son değişiklik tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "İşleri el ile sırala" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "İşleri planlanan başlangıç tarihine göre sırala" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "&Planlanan başlangıç tarihi" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "İşleri bitiş tarihine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "Bi&tiş tarihi" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "İşleri tamamlandığı tarihe göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "Tamamlanma tari&hi" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "İşleri önkoşul işlerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "Ön&koşullar" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "İşleri bağımlı oldukları işlere göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "&Bağlılıklar" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "İşleri kalan zamana göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "Kalan &zaman" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "İşleri tamamlanma yüzdesine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "Tamamlanma &yüzdesi" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "İşleri yinelenmelerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "Yine&lenme" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "İşleri bütçelerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Bütçe" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "İşleri harcanan zamana göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Ka&lan bütçe" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "İşleri kalan bütçelerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "İşleri önceliklerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "İşleri saat ücretlerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Saat ücreti" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "İşleri sabit ücretlerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Sabit ü&cret" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "İşleri gelirlerine göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "İşleri anımsatıcı tarihi ve zamanına göre sıralar" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Anımsatıcı" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Konu" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Notları gruplarına göre sıralar" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Notlar: %d seçili, %d toplam" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Durum : geçersiz" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "İşler: %d seçili, %d görünür, %d toplam" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" "Durum: %d zamanı geçmiş, %d gecikmiş, %d etkin olmayan, %d tamamlanmış" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" "Yalnız karşı gelen duruma uyan görevleri süzmek için, süzme aracına shift " "tuşuna basarak tıklayın" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "İşler" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Zaman akışı" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Şimdi" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "İş alan haritası" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "İşleri şuna göre düzenle" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "Hiyerarşik takvim" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "Hiyerarşik takvim görüntüleyici ayarları" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Takvim penceresi yapılandırması" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "El ile sıralama" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" "\"El ile sıralama\" sütunu görüntülenir. İsteğinize göre sıralamak için bu " "sütundaki ögeleri sürükleyip bırakın." #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "Bağlılıklar" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "Tamamlanan %" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Kalan zaman" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Tarihler" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "%Tüm tarih sütunları" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Tarihle ilgili tüm sütunları göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "Planlanan başlangıç tarihi sütununu gösterir ya da gizler" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Bitiş tarihi sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "Geçerli b&aşlangıç tarihi" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "Geçerli başlangıç tarihi sütununu gösterir ya da gizler" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Tamamlanma tarihi sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Kalan zaman sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Yineleme sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "Tüm &bütçe sütunları" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Bütçe ile ilgili tüm sütunları göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Bütçe sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "Kalan &bütçe" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Kalan bütçe sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Finansal" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "Tüm &finansal sütunlar" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Finansla ilgili tüm sütunları göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Saat ücreti sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Sabit ücret sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Ön koşullar sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "Bağlılıklar sütununu gösterir ya da gizler" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Tamamlanma yüzdesi sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Ek sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Öncelik sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Anımsatıcı sütununu göster ya da gizle" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "İşleri şuna göre görüntüle" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "İş istatistikleri" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "Virgül" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "Tab" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "Boşluk" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "İki nokta üst üste" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "Noktalı virgül" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "Yönlendirme" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "GG/AA (önce gün)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "AA/GG (önce ay)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "Tek tırnak" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "Çift tırnak" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "Kopyala" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "Şununla kes" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "Yalnız seçili satırları al" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "İlk satır alan adlarını içeriyor" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "Ayraç" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "Tarih biçimi" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "Ayraç karakteri" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "Kesme ayracı" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "Alan #%d" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "Lütfen bir dosya seçin." #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "Kod" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "Grup" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "Anımsatıcı tarihi" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "Tamamlanma yüzdesi" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "CSV dosyasındaki sütun başlığı" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s özniteliği" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "Alan haritalaması yok." #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "\"%s\" alanı birden fazla seçilemez." #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "%s alanları birden fazla seçilemez." #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Yardım konuları" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "İşler hakkında" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "İşlerin özellikleri" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "İşlerin durumları" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "İşlerin renkleri" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "Anımsatıcılar" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Çalışmalar hakkında" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Çalışmaların özellikleri" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Gruplar hakkında" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Grupların özellikleri" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Notlar hakkında" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Notların özellikleri" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Yazdırma ve verileri verme" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Yazdırma ve verileri verme hakkında" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Yazdırma" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Verileri verme" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "Çok kullanıcılı ortam" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "Çok kullanıcılı ortam hakkında" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "Saklama ayarları" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "E-postalama işleri" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "E-postalama için isteğe göre uyarlanmış öznitelikler" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "E-posta bütünlüğü" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "E-posta tümleştirmesi hakkında" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Bir işe e-posta eklenmesi" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Bir e-postadan iş oluşturulması" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML desteği" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "SyncML nedir" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Kurulum" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Sınırlamalar" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Sorun çözme" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Silinmiş ögeleri yok etme" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone ve iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "iPhone için %(name)s" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Yapılandırma" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "Android üzerinde %(name)s?" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "Todo.txt ve Todo.txt Touch" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "Todo.txt alınıyor" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "Todo.txt veriliyor" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "İş kalıpları" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Kalıplar hakkında" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Kalıpların kullanılması" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Grafik kullanıcı arayüzü" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Tuştakımı kısayolları" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "İşler, üzerinde çalışacağınız basit konulardır. Tek bir küçük\n" "şey olabileceği gibi, farklı aşamaları ve çeşitli eylemleri içeren\n" "büyük bir proje de olabilir." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "İşlerle ilgili düzenleyebileceğiniz özellikler şunlardır:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Konu: İşi özetleyen tek satırlık bir bilgi." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Açıklama: İşle ilgili bir kaç satırlık açıklama." #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" "Planlanan başlangıç tarihi: İşe başlanabilecek ilk tarih.\n" "Planlanan başlangıç tarihinin varsayılan değeri işin oluşturulduğu tarihtir. " "Bu işi \n" "gerçekten başlatmak istemiyorsanız 'Yok' olarak da seçebilirsiniz. Örneğin " "hastalık \n" "zamanları için uygun olabilir." #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Bitiş tarihi: İşin bitirilmesi gereken tarih. \n" "Bir işin sabit belirlenmiş bir bitiş tarihi yoksa 'Yok' görünebilir." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "Geçerli başlangıç tarihi: İşe gerçekten başlanan tarih.\n" "Geçerli başlangıç tarihi doğrudan yazılabilir. Ayrıca\n" "çalışmaya başladığınızda ya da işin tamamlanma yüzdesini\n" "%0 ile %100 arasında yazdığınızda da güncellenir." #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Tamamlanma tarihi: İş tamamlanmadığı sürece bu tarih 'Yok' \n" "olarak görünür. Bir işi tamamlanmış olarak işaretlediğinizde o anki \n" "tarihe ayarlanır. Tamamlanma tarihini ayrıca elinizle de yazabilirsiniz." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" "Ön Koşullar: Bir iş başlatılmadan önce tamamlanması \n" "gereken diğer işler. Son ön koşul tamamlanana kadar iş etkin olmayan şekilde " "kalır.\n" " İş için bir planlanan başlangıç tarihi ayarlanmış ise bu tarihin geçmişte " "olması\n" " ve tüm ön koşul işlerinin bu işin gecikmesinden \n" "önce tamamlanmış olması gerektiğine dikkat edin." #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Bütçe: İş için ayrılacak olan saatler." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Saat ücreti: Bir iş için harcanacak her saat karşılığı kazanılacak tutar." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Sabit ücret: Yapılacak bir iş karşılığında harcanacak \n" "zamandan bağımsız olarak kazanılacak tutar." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" "Aşağıdaki özellikler, yukarıdaki özelliklerden hesaplanarak üretilirler:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "Kalan gün: Bitiş tarihine kadar olan gün sayısı gösterilir." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" "Bağlılıklar: bağlı ön işler tamamlandıktan \n" "sonra diğer işlere başlanabilir." #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Harcanan zaman: Bir işe harcanan çalışma zamanı gösterilir." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" "Kalan bütçe: Bir işe ayrılan bütçe zamanından bu işe harcanan zaman " "çıkarılır." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" "Gelir: Bir işe harcanan saatler ile saatlik ücret çarpılır ve sabit ücret " "eklenir." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "İşler her zaman şu durumlardan birinde bulunurlar:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "Etkin: Geçerli başlangıç tarihi geçmişte" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" "Etkin değil: İş başlatılmamış ve/veya tüm\n" "ön koşul işleri tamamlanmamış" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Tamamlanmış: Tamamlanmış işler." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Bunlara ek olarak, işler şu şekilde görünebilirler:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "Zaman aşımı: Bitiş tarihi geçmişte;" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Bitiş zamanı yaklaşan: Bitiş zamanı yaklaşan işler \n" "'Yakında' tanımının hangi zaman olduğu ayarlar bölümünden belirtilir." #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" "Gecikmiş: Planlanan başlangıç tarihi geçmiş ve \n" "başlanılmamış iş" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Bütçesi bitmiş: Bütçesi biten işler." #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "Bütçe içinde: Hala bütçesi olan işler." #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Bütçesiz: Bütçesi belirlenmemiş işler." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "İş metinleri şu kurallara göre renk alırlar:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "Zamanı geçmiş işler kırmızı renktir;" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Bitiş zamanı yaklaşan işler turuncu ile;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Etkin işler siyah yazı ve mavi simge ile;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "Gecikmiş işler mor renklidir" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Gelecekte başlayacak işler gri ile;" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Tamamlanmış işler yeşil ile." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Burada belirtilen renkler, ayarlar bölümündeki varsayılan renkleri \n" " değiştirmemiş olduğunuz düşünülürek açıklanmıştır." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "İşlerin artalan renkleri, işin bağlı olduğu grubun rengi tarafından \n" "belirlenir. Daha ayrıntılı bilgi için aşağıdaki \n" "Grupların özellikleri bölümüne bakın." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" "Belirli bir tarih ve saat için bir anımsatıcı ayarlayabilirsiniz. %(name)s " "bu\n" "tarih ve saat geldiğinde anımsatıcı iletisini gösterir. Anımsatıcı \n" "penceresinden işi açabilir, iş için çalışma başlatabilir ya da işi " "tamamlanmış \n" "olarak işaretleyebilirsiniz. Ayrıca anımsatıcıyı erteleyebilirsiniz." #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" "Growl ya da Snarl yüklüyse, ayarlar bölümünden, %(name)s \n" "tarafından bu anımsatıcıların kullanılmasını sağlayabilirsiniz." #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" "İşler üzerinde çalışmaya başladığınızda harcadığınız zamanı " "kaydedebilirsiniz\n" "Bunun için bir işi seçerek Çalışmalar menüsünden 'Çalışmaya başla' komutunu " "\n" "verebilir, araç çubuklarından 'Çalışmaya başla' düğmesine tıklayabilir ya da " "sistem\n" "tepsisi simgesine sağ tıklayarak 'Çalışmaya başla' simgesine tıklayıp işi " "seçebilirsiniz." #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "Çalışma kayıtlarında düzenleyebileceğiniz özellikler şunlardır:" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "İş: Üzerinde çalışılan iş." #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "Başlangıç tarihi ve saati: Çalışmanın başlangıç tarihi ve saati." #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" "Bitiş tarihi ve saati: Çalışmanın bitiş tarihi ve saati. İş üzerinde\n" "çalışmaktayken 'Yok' olarak görünebilir." #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "Açıklama: Çalışma ile ilgili bir kaç satırlık açıklama." #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "Harcanan zaman: Bu iş üzerine ne kadar zaman harcadığınız." #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "Gelir: Harcanan zamanda kazanılan para." #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" "İş ve notlar bir ya da daha çok grupta bulunabilirler. Öncelikle 'Gruplar' \n" "menüsünden kullanmak istediğiniz grupları oluşturun. Sonra, gruplara \n" "atamak istediğiniz iş ya da notu düzenlemek için açın, Gruplar bölümünden \n" "istediğiniz Grupları seçip kaydedin." #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" "İş ve not görünümlerinde gösterilecek öge sayısını, grup penceresinden\n" "bir ya da daha çok grubu seçerek sınırlayabilirsiniz. Örneğin 'Telefon " "görüşmeleri' \n" "diye bir grubunuz varsa ve bunu işaretlerseniz, iş penceresinde yalnızca bu " "\n" "gruptaki işleri yani yapacağınız telefon görüşmelerini görürsünüz." #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "Gruplarla ilgili düzenleyebileceğiniz özellikler şunlardır:" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "Konu: Grubu özetleyen tek satırlık bir bilgi." #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "Açıklama: Grupla ilgili bir kaç satırlık açıklama." #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" "Birbirini dışlayan altgruplar: Grubun altgruplarının birbirini \n" "dışlayıp dışlamayacağını gösteren işaret kutusu. Birbirini dışlıyorlarsa \n" "ögeler yalnız bir altgruba ait olabilir. Süzme işlemlerinde, aynı anda bu " "altgruplardan \n" "yalnızca birine göre süzebilirsiniz." #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" "Simge, yazı tipi ve renkler gibi görünüm özellikleri: \n" "Görünüm özellikleri, grubun ve gruba ait ögelerin gösterilim özelliklerini " "düzenlemek \n" "için kullanılır. Bir grubun rengi, yazı tipi ya da simgesi ayarlanmadığı " "halde altgrubunun \n" "bir özelliği ayarlanmışsa bile, üstteki grubun özellikleri kullanılır. Bir " "öge birden çok gruba \n" "aitse ve her bir grup için renk özelliği belirtildiyse, öge gösterilirken bu " "renklerin karışımı \n" "kullanılır." #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" "Notlar, kaydetmek istediğiniz çeşitli bilgileri iş dosyanızda tutmak için " "kullanılır.\n" "Notlar tek başlarına olabileceği gibi iş ve gruplar gibi başka ögelerin " "parçası da \n" "olabilir. Tek başına olan notlar not penceresinde gösterilir. Diğer ögelerin " "bir \n" "parçası olan notlar, not penceresinde gösterilmez. Ögelerin bir parçası olan " "\n" "notlar iş ya da grup pencerelerinde notlar sütununu göstererek " "görüntülenebilir." #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "Notlarla ilgili düzenleyebileceğiniz özellikler şunlardır:" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "Konu: Notu özetleyen tek satırlık bir bilgi." #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "Açıklama: Notla ilgili bir kaç satırlık açıklama." #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "Simge, yazı tipi ve renkler gibi görünüm özellikleri." #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" "Yazdırma ve veri verme işlemleri aynı şekildedir: \n" "Bir yazma ya da veri verme işlemi yaptığınızda, etkin pencere yazdırılır \n" "ya da verilir. Yazdırılan ya da verilen veri, etkin pencerede nasıl \n" "görünüyorsa o şekilde olur. Sıralaması penceredeki gibi olur. Basılacak \n" "ya da verilecek ayrıntıları, pencerede seçtiğiniz sütunlar belirler. Ögeleri " "\n" "süzdüğünüzde, örneğin tamamlanmış işleri gizlediğinizde, bu ögeler \n" "yazdırılmaz ya da verilmez." #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" "Görüntünün içeriği, ögeleri doğru sırada yerleştirerek, \n" "uygun sütunları göstererek ya da gizleyerek ve ilgili süzgeçleri \n" "uygulayarak hazırlanır." #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" "Baskının nasıl olacağını önceden görebilirsiniz\n" "Bunun için yazdırmak istediğiniz pencere seçiliyken, menüden \n" "Dosya -> Baskı önizleme komutuna tıklayın. Sayfa ayarlarını değiştirmek için " "\n" "menüden Dosya -> Sayfa yapısı komutuna tıklayın. Yazdırma ve altyapı " "destekliyorsa \n" "etkin penceredeki tüm görünen ögeleri ya da yalnızca seçilmiş ögeleri " "yazdırmayı seçebilirsiniz" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" "Bundan sonra dosya biçimini ve tüm görünen ögeleri mi yoksa yalnızca seçili " "\n" "ögeleri mi vermek istediğinizi seçin. Geçerli dosya biçimleri olarak, \n" "CSV (virgülle ayrılmış değerler), HTML ve iCalendar kullanabilirsiniz. HTML " "\n" "olarak verdiğinizde HTML görüntüsünü değiştirebileceğiniz bir CSS dosyası da " "\n" "oluşturulur." #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "E-postalama işleri için isteğe göre uyarlanmış öznitelikler" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" "E-posta komutunun davranışını, iş açıklamasında isteğe göre uyarlanmış " "öznitelikleri\n" "kullanarak değiştirebilirsiniz. Bu öznitelikler bir satırda yer almalıdır. " "Desteklenen öznitelikler\n" "'cc' ve 'to'. Örnekler:" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "[email:to=foo@spam.com]" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "[email:cc=bar@spam.com]" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" "Bir iş dosyasyı aynı ya da farklı bilgisayarlarda çalışan bir kaç %(name)s \n" "kopyası tarafından, örneğin bir ağ paylaşımı üzerinden açılabilir. Bir " "kayıt\n" "işlemi yaptığnızda, %(name)s, diske en son kaydettiğiniz zamandan sonra \n" "yaptığınız çalışmaları birleştirir. Çakışmalar kendiliğinden çözümlenir,\n" "genellikle sizin sürümünüz güncellenir. Bu özellik iki şekilde " "kullanılabilir:" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" "İş dosyasını birden fazla bilgisayarda kullanan (iş, ev, taşınabilir) \n" "tek kullanıcı." #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "Aynı iş dosyası üzerinde çalışan birden fazla kullanıcı." #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" "İlk durum en çok kullanılan ve en güvenli olanıdır. İkinci durum\n" "tehlikeli olabilir. Çoğu ağ disk paylaşım iletişim kuralı, bunu %100\n" "güvenli kılacak dosya kilitleme desteği sağlamaz. Çok kullanılan\n" "iletişim kurallarının listesi ve davranışları şu şekildedir:" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" "Burada anılan paylaşım seçeneklerinden hiç biri tamamen çalışmaz. Eğer iki " "kullanıcı,\n" "yaptıkları değişiklikleri aynı bir kaç yüz milisaniye içinde kaydederlerse " "veri kaybı olur." #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "SMB/CIFS" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" "En sık kullanılan iletişim kuralı: Windows ve benzerleri paylaşımlar " "(SAMBA).\n" "Sunucu ve istemci belli bazı eklentileri desteklemiyorsa, TaskCoach,\n" "bir dosyanın başkası tarafından değiştirildiğini algılayamaz." #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "Ağ Dosya Sistemi (NFS)" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "Henüz sınanmadı." #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "DropBox" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" "Bir kaç bilgisayardan dosyalara erişmenin sık kullanılan bir yolu (daha " "güvenli bir \n" "alternatif için SpiderOak kullanabilirsiniz). İş dosyasında yapılan " "değişiklikler %(name)s \n" "tarafından doğru şekilde algılanır." #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" "%(name)s ile bir kaç e-posta programına \n" "sürükle bırak yapabilirsiniz. Bazı sınırlamalar şunlardır; e-postalar \n" "%(name)s dosyasının olduğu klasöre .eml dosyaları olarak kopyalanır \n" "ve daha sonra bu dosya tipi sisteminizde hangi program ile \n" "ilişkilendirilmiş ise onunla açılır. Diğer yandan bu sayede e-posta \n" "eklerini oluşturduğunuz sistemden başka bir yerde de \n" "açabilirsiniz." #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "Desteklenen e-posta programları:" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "Mozilla Thunderbird" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "Microsoft Outlook" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "Claws Mail" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "Apple Mail" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" "Bir Thunderbird sınırlaması yüzünden Thunderbird programından birden\n" "fazla e-postayı sürükleyip bırakamazsınız. Outlook programında bu sorun " "yoktur." #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "Bir işe e-posta eklemenin iki yolu vardır:" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" "E-postayı sürükleyerek, iş ağacı ya da iş listesindeki işin üzerine " "bırakabilirsiniz." #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" "E-postayı sürükleyerek, iş düzenleyicisindeki Ekler sayfasına " "bırakabilirsiniz." #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" "Bir e-postayı sürükleyip iş ağacı ya da iş listesinde boş bir alana\n" "bırakırsanız yeni bir iş oluşturulur. İşin konusu e-postanın konusu,\n" "açıklaması e-postanın içeriği olarak ayarlanır. Ayrıca e-posta\n" "yeni oluşturulan bu işe de eklenir." #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" "SyncML birden çok uygulamanın bir sunucu üzerinden veri eşleştirmesi\n" "yapabilmesi için tasarlanmış bir XML veri iletişim kuralıdır. Popüler bir " "açık kaynaklı\n" "sunucu Funambol\n" "sunucusudur. Pek çok aygıt ve uygulama ile eşletirme yapılabilir (Outlook, " "Pocket PC,\n" "iPod, iPhone, Evolution, vb...). Ayrıca sağlanan \"bağlantılar\" " "aracılığıyla Exchange\n" "Google Calendar gibi sunucular ile de eşleştirme yapılabilir." #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" "%(name)s Windows ve Mac OS X üzerinde içsel SyncML istemci desteğine " "sahiptir\n" "(kurulum için kullandığınız paketler içinde). Böylece\n" "%(name)s Outlook için kullandığınız SyncML sunucusunu kullanarak\n" "tüm Outlook görev ve notlarınızı hem\n" "%(name)s dosyasında, hem de %(name)s Outlook içinde tutabilirsiniz.\n" "Bu durum Pocket PC için de geçerlidir." #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" "Linux üzerinde SyncML ile Python bağlantısını\n" "kendiniz yapmalısınız. Python 2.7 için 64 bit Debian paketi\n" "taskcoach.org\n" "adresinde Linux indirmeleri bölümünün sonunda bulunabilir." #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" "Bu özellik isteğe bağlıdır ve varsayılan olarak devre dışıdır. " "Etkinleştirmek\n" "için menüden Düzenle -> Ayarlar komutuna tıklayarak özellikler sayfasına " "gidin." #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" "SyncML kullanımını etkinleştirdikten sonra, yapılandırmak için menüden yeni " "beliren \n" "Düzenle -> SyncML ayarları komutuna tıklayın. Eşleştirme İnternet adresini, " "\n" "sunucudaki kimliğinizi yazın ve hangi ögeleri (işler, notlar) eşleştirmek " "istediğinizi seçin. \n" "İnternet adresi seçtiğiniz sunucuya göre değişir. Örneğin:" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" "Veritabanı adları oldukça standarttır. Varsayılan değerler \n" "sorunsuz çalışmalı." #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" "Her iş dosyasının özel bir istemci kodu vardır. Böylece bu dosyalardaki \n" "iki farklı iş, sunucu tarafından iki farklı \"aygıt\" olarak ele alınır." #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" "Vcalendar veri tipinden kaynaklanan nedenlerden dolayı \n" "bazı sınırlamalar vardır ve %(name)s özelliklerinin bazıları \n" "sunucu üzerinde gösterilemez." #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "İş ve grup hiyerarşisi sunucuda bulunmaz." #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "Yineleme ve anımsatıcılar henüz desteklenmemektedir." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "Not grupları sunucuda bulunmaz." #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" "Çakışma algılama/çözme sistemi Funambol sınırlaması üzerine \n" "çalışan bir çözümdür. Çoğu durumda çalışır. Ancak eğer aynı sunucu \n" "üzerinde aynı anda eşleştirme yapan pek çok uygulama varsa sorun \n" "çıkabilir." #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "Ve olası diğerleri..." #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" "SyncML menü ögeleri yalnızca platformunuz destekliyorsa görünür. \n" "Şu anda desteklenen platformlar şunlardır:" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bit (aşağı bakın)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bit" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 ve sonrası, hem Intel hem PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" "Microsoft Visual 8 çalışma kütüphanesi kurulu değilse Windows \n" "ile sorunlar yaşayabilirsiniz. Bunu indirmek için şu bağlantıyı " "kullanabilirsiniz \n" " Microsoft indirme sitesi." #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" "SyncML etkinleştirildiğinde, bir iş ya da notu silmek, onları tamamen silmek " "yerine\n" "silinecek olarak işaretler. Uygulamada, işaretlenmiş iş ya da notlar, iş ya " "da \n" "not listesinden, bir sonraki eşleştirme sırasında silinir. Bu nedenle SyncML " "özelliğini \n" "kullandıktan sonra bir eşleştirme yapmadan devre dışı bırakırsanız, " "dosyanızda bazı \n" "silinmiş iş ve notlar kalabilir. Bu bir sorun değildir ancak gereksiz yer " "kaybına neden \n" "olur." #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" "Bu durumda menüden Dosya -> Silinmiş ögeleri yoket komutuna tıklayarak \n" "bu işleri ve notları tamamen silebilirsiniz. Bu komut yalnız işleyebileceği " "\n" "zaman, yani silinmek üzere işaretlenmiş ancak silinmemiş ögeler varsa \n" "görünür. Bunu yaptıktan sonra şu konuda dikkatli olun; Eğer yeniden SyncML \n" "özelliğini etkinleştirirseniz ve daha önce kullandığınız sunucu ile " "eşleştirme yaparsanız, \n" "sunucu bu ögelerin silindiğini bilemeyeceğinden, tüm bu ögeler yeniden geri " "gelirler." #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "iPhone, iPod Touch ve iPad" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "iPhone/iPod Touch/iPad ile %(name)s kullanımı" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" "%(name)s için iPhone/iPod Touch/iPad uyumlu bir uygulama bulunmaktadır. \n" "Uygulamayı şuradan edinebilirsiniz: \n" "Apple Uygulama Mağazası. (Bilgisayarınızda iTunes " "yüklü değilse \n" "iTunes programını indirebilmeniz için bir sayfa gösterilecek). \n" "Bu uygulama şu özellikleri desteklemektedir:" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" "Temel iş özellikleri: konu, açıklama, tarihler \n" "(yineleme özellikleriyle)..." #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Hiyerarşik iş ve gruplar" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Zaman izleme" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "Birden çok iş dosyası" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "Masaüstündeki %(name)s ile iki yönlü eşleştirme" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "Uygulama evrenseldir ve iPad için özel bir kullanıcı arayüzü vardır." #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "iPhone/iPod Touch/iPad üzerinde yapılandırma" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" "iPhone/iPod Touch/iPad uygulamasının ayarları için bir\n" "Ayar uygulaması vardır:" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" "Tamamlanmışları göster: Tamamlanmış işlerin gösterilip gösterilmeyeceğini " "belirler." #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" "Etkin olmayanları göster: Etkin olmayan (planlanan başlangıç \n" "zamanı gelecekte olan) işlerin gösterilip gösterilmeyeceği" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" "Simge konumu: LED simgesi ekranın sağ ya da sol \n" "yanında gösterilebilir." #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" "Küçük kip: Etkinleştirildiğinde, iş listesinde LEDler daha küçük \n" "olur ve grup ile tarihler gösterilmez." #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" "Tamamlananları onayla: Etkinleştirildiğinde, bir işi tamamlamak \n" "için LED'i üzerine tıklandığında bir onay iletisi gösterilir." #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" "'Bitiş zamanı yaklaşıyor' günü: İşin 'Bitiş zamanı yaklaşıyor' \n" "kabul edilmesi için kalacak gün" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "Masaüstü yapılandırması, tüm platformlar için" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" "Eşleştirmeden önce, masaüstündeki %(name)s programını yapılandırmanız " "gerekir. \n" "Menüden Düzenle -> Ayarlar komutuna tıkladıktan sonra \"Özellikler\" " "sekmesine tıklayın \n" "ve \"iPhone eşleştirmeyi etkinleştir\" seçeneğini işaretleyin. %(name)s " "programını yeniden \n" "başlatın. Artık ayarlar bölümünden \"iPhone\" sekmesine geçebilir ve en " "azından parolayı yazabilirsiniz." #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" "Grup penceresinde \"Eşleştir\" düğmesine tıkladığınızda %(name)s \n" "masaüstünüzde çalışan %(name)s kopyalarını kendiliğinden algılar ve \n" "birini seçmenizi ister (ağınızda farklı bilgisayarlarda ya da aynı " "bilgisayar \n" "üzerinde çalışan bir kaç kopya bulunabilir). Gösterilen ad, varsayılan \n" "olarak, programın çalıştığı bilgisayarı tanımlayan bir metindir. Bunu \n" "özelleştirmek için yapılandırmanızdan \"Bonjour hizmeti adı\"nı \n" "değiştirin." #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" "%(name)s seçilmiş kopyayı anımsayacak ve yeniden eşleştirme \n" "yaptığınızda onu seçmeyi deneyecek. Başarılı olamazsa yeniden soracak." #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" "Bu eşleştirmenin ağ üzerinden yapılacağını unutmayın. Aygıtın \n" "USB ya da iTunes üzerinden bağlı olarak çalışmasına gerek \n" "yoktur." #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Windows üzerinde yapılandırma" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" "Windows için Windows için Bonjour kurmalı " "\n" "ve güvenlik duvarı tarafından sorulduğunda engellemeyi kaldırmalısınız." #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Linux üzerinde yapılandırma" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" "Linux için Avahi programının kurulmuş ve \n" "çalışıyor olması gereklidir. Çoğu güncel dağıtımlar bunu içerir. Ayrıca " "dnscompat \n" "paketine de gerek vardır. Bu paketin adı dağıtımınıza göre değişiklik " "gösterebilir \n" "(örneğin Ubuntu için libavahi-compat-libdnssd1 şeklindedir)." #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" "Apple web sitesinde iPhone/iPod Touch uygulamasını \n" "göremiyorum" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" "Apple Uygulama Mağazasına girebilmek için bilgisayarınızda iTunes \n" "programının kurulu olması gereklidir. \n" "iTunes indirmek için buraya tıklayın" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "Eşleştirmeyi denediğimde bilgisayarım listede görünmüyor" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" "iPhone/iPod Touch aygıtınızın kablosuz bağlantı (WiFi) ile bilgisayarınızla " "\n" "aynı ağa bağlı olduğundan emin olun." #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "iPhone bilgisayarıma bağlanamıyor" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" "Güvenlik duvarınız etkinse 4096-4100 numaralı portların açık olduğundan emin " "olun." #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" "Hayır, %(name)s henüz Android platformu için yayınlanmadı. Ancak,\n" "Todo.txt Touch \n" "kullanılabilir. %(name)s işlerinizi \n" "Todo.txt biçiminde verebilir ve Android aygıtınızdan düzenleyebilirsiniz" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" "Todo.txt, Gina Trapani tarafından oluşturulmuş, düz metin dosyaları ile " "çalışan\n" "açık kaynak kodlu bir yapılacak işler yöneticisidir. Todo.txt komut-satırı " "arayüzüne\n" "sahiptir. Dosya biçimi düz metin olduğundan, işlerinizi herhangi bir metin " "düzenleyici\n" "ile düzenleyeiblirsiniz. Todo.txt Touch, Tıdı.txt programının Android " "sürümüdür.\n" "Todo.txt Touch dropbox klasörünüzdeki todo.txt dosyasını kullanır. " "%(name)s\n" "bu todo.txt dosyasından veri alıp verebilir." #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" "Verileri Todo.txt dosyasına verirken, %(name)s hedef dosyanın yanında\n" "\"-meta\" sonekiyle başka bir dosya daha oluşturur. %(name)s dışarıda " "yapılan\n" "değişiklikleri bu dosya ile izlediğinden bu dosyayı silmeyin. Bir çakışma " "algılandığında\n" "(hem Task Coach hem dış uygulamada güncellenmiş bir iş alınırken) Todo.txt\n" "dosyasındaki veriler asıl kabul edilir." #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" "İpucu: iş dosyanızı Touch tarafında Dropbox üzerinde oluşturulan\n" "todo klasöründeki Todo.txt dosyasına kaydeder ve otomatik alma işlemini\n" "etkinleştirerek verileri Todo.txt üzerinden alırsanız, %(name)s iş dosyası " "ile\n" "Todo.txt dosyasını eşleştirir. %(name)s hedef dosyanın yanında\n" "\"-meta\" sonekiyle başka bir dosya daha oluşturur, dışarıda\n" "yapılan değişiklikleri bu dosya ile izlediğinden bu dosyayı değiştirmeyin\n" "ya da silmeyin." #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" "%(name)s, iş başlıklarını, planlanan başlangıç tarihlerini, bitiş " "tarihlerini, tamamlanma\n" "tarihlerini, öncelik, bağlam ve projeleri alır. Bağlam ve projeler %(name)s " "içinde\n" "kategorilere dönüştürülür. Todo.txt işlerin birden fazla projeye bağlı " "olabilmesini\n" "sağladığı halde %(name)s her iş için yalnız bir üst işe izin verdiği için, " "projeler \n" "üst işlere dönüştürülemez" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" "Alırken %(name)s birbirine uyan işleri ve grupları bulmaya\n" "ve bunları yeniden oluşturmak yerine güncellemeye çalışır.\n" "Bunu yaparken işlerin (ya da proje ya da bağlamın) açıklamasına\n" "ve varsa üst ögesine bakar." #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" "%(name)s başlıkları, planlanan başlangıç tarihlerini, bitiş tarihlerini, " "tamamlanma\n" "tarihlerini, öncelik ve kategorileri Todo.txt biçiminde verir. Diğer " "özellikler \n" "verilmez." #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" "%(name)s tarih ve saatleri desteklerken, Todo.txt yalnızca\n" "tarihleri destekler. Yani bilgiler verilirken, başlangıç, bitiş ve " "tamamlanma\n" "tarihlerinin saatleri aktarılmaz." #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" "Varsayılan Todo.txt biçimi yalnız planlanmış başlangıç tarihleri ve \n" "tamamlanma tarihlerini destekler. Bitiş tarihlerini desteklemez. Bu yüzden " "%(name)s\n" "işlerin bitiş tarihlerini vermek için bir eklenti kullanır. todo.txt dosyası " "içinde bitiş tarihleri \n" "\"bitiş:YYYY-MM-DD\" şeklinde görünür." #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" "Todo.txt öncelikleri harf sırasıyla belirler ('A'-'Z'). \n" "%(name)s öncelikler için rakamları kullanır. %(name)s içindeki 1 numaralı " "öncelik 'A', \n" "2 numaralı öncelik 'B' ve 26 numaralı öncelik 'Z' olacak şekilde " "dönüştürülür. \n" "%(name)s içindeki 1'den küçük ve 26'dan büyük öncelikler dosyaya verilmez." #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" "Açıklaması '+' ile başlayan gruplar projeler olarak verilir.\n" "Açıklaması '@' ile başlayan gruplar bağlam olarak verilir. \n" "Açıklaması '+' ya da '@' ile başlamayan gruplar verilmez\n" "Altgruplar, üstgrupları veriliyorsa aktarılır." #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" "Kalıplar yeni işler için hazır taslaklardır. Şimdilik ayarlanabilen tek iş \n" "özelliği tarihlerdir. Bir kalıptan iş oluştururken yeni iş tarihleri şimdiki " "\n" "zamana göre atanır." #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" "Bir kalıp oluşturmak için yalnızca bir işi seçip Dosya menüsünden \n" "\"Seçili işi kalıp olarak kaydet\" komutunu vermek yeterlidir. Tüm alt " "işler, \n" "notlar ve ekler kalıbın bir parçasıdır. Yalnızca gruplar kaydedilmez." #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" "Yeni bir şablonu önceden yapılmış bir şablondan oluşturabilirsiniz \n" "(.tsktmpl); yalnızca Dosya menüsünden \"Şablon Al\" komutuyla istediğiniz " "dosyayı seçin. \n" "Şablon dosyaları TaskCoach.ini dosyasının bulunduğu klasör içinde bir alt " "klasöre kaydedilir\n" "." #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" "Bir iş kalıbından örnek almak için Yeni menüsünden \"Kalıptan yeni iş\" \n" "komutunu ya da ilgili araç çubuğu düğmesini seçin. İş oluşturulduğunda, \n" "bitiş, başlangıç ve tamamlanma tarihleri, yapılabiliyorsa, geçerli zamana \n" "göre ayarlanır. Örneğin kalıbı, bugün başlayan, ve yarın biten bir işten \n" "oluşturduysanız, bu kalıbı her kullandığınızda, planlanan başlangıç tarihi \n" "geçerli tarih, bitiş tarihi de geçerli tarihin bir gün ertesi olur." #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" "Kalıpların temel özelliklerini (tarihler ve konu) düzenlemek için\n" "kalıp düzenleyiciyi kullanabilirsiniz (Dosya/Kalıpları düzenle).\n" "Tarihler insanın okuyacağı şekilde verilmiştir. Eğer %(name)s\n" "tarihi anlamazsa tarih alanı kırmızı olur. Örnek tarihler şu\n" "şekildedir:" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" "Bu sistemin yerelleştirilmediğini unutmayın. \n" "Tarihleri İngilizce yazmalısınız." #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" "Görüntüleyicileri sürükleyip bırakarak neredeyse istediğiniz her şekilde \n" "bir kullanıcı arayüzü oluşturabilirsiniz. Bir görüntüleyiciyi sürüklemeye " "başladığınızda \n" "nereye bırakabileceğinizi gösteren ipuçları belirir. Görüntüleyiciler bir " "not defteri oluşturacak \n" "şekilde birbiri üzerine de bırakılabilir." #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" "Sekmeleri istediğiniz şekilde düzenleyerek tamamen farklı bir \n" "görünüm oluşturmak istiyorsanız, düzenleme pencerelerinde \n" "sekmeleri birbirinin yanına sürükleyip bırakarak yeniden dizebilirsiniz." #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" "İşler, notlar ve grupların konu ve açıklamaları düzenleme penceresini \n" "açmadan değiştirilebilir. Değiştirmek istediğiniz ögeyi seçtikten sonra \n" "konu ya da açıklamaya yeniden tıkladığınızda ya da F2 tuşuna \n" "bastığınızda bir düzeltme kutusu belirir. İstediğiniz değişiklikleri \n" "yaptıktan sonra Enter tuşuna basarak değişiklikleri kaydedebilir, \n" "ESC tuşuna basarak yaptığınız değişikliklerden vazgeçebilirsiniz." #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" "%(name)s aşağıda listelenen tuş takımı kısayollarını kullanıyor. Tuştakımı \n" "kısayollarını şu anda yapılandıramazsınız." #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "Shift-Ctrl-A" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "Ctrl-B" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "Shift-Ctrl-B" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "Ctrl-G" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "Ctrl-J" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "Ctrl-M (Linux ve Windows)" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "Shift-Ctrl-M (Mac OS X)" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "Shift-Ctrl-M" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "Ctrl-N (Linux ve Mac OS X)" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "Shift-Ctrl-N (Linux ve Mac OS X)" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "Yeni bir alt öge ekler" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "Shift-Ctrl-O" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "Ctrl-R" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "Shift-Ctrl-R" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "Seçili ögeleri düzenle ya da bir pencereyi kapat" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "Enter" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "Seçili işleri tamamlanmamış olarak işaretle" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" "Bir pencereyi iptal et ya da tuştakımı odaklanmasını arama denetiminden " "görüntüleyiciye taşı" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "Escape" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "Tuş takımı odaklanmasını pencerede bir sonraki alana taşı" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "Tuş takımı odaklanmasını pencerede bir önceki alana taşı" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "Tuştakımı odaklanmasını not defteri denetiminde sonraki sekmeye taşı" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "Tuştakımı odaklanmasını not defteri denetiminde önceki sekmeye taşı" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "DELETE" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "INSERT (Windows)" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "Shift-INSERT (Windows)" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "Açılır menü ya da açılır kutu" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "Bir pencerede seçili ögenin başlığını düzenler" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "F2" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" "

    %(name)s - %(description)s

    \n" "
    Sürüm %(version)s, %(date)s
    \n" "

    Yazar %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s sürekli geliştirilen bir yazılımdır. %(name)s geliştiricileri " "hataları ayıklamak için çok çalışsa da gözden kaçan hatalar olabiliyor. Bu " "nedenle çalışmalarınızı düzenli olarak yedeklemenizi öneriyoruz." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" "%(name)s, %(name)s kullanıcılarının görüşlerini paylaştıkları, isteklerini " "dile getirdikleri ve hataları bildirdikleri bir posta listesine sahiptir. " "Katılmak için %(url)s adresine gidebilirsiniz!" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s sınırsız sayıda geri alma ve yineleme yapabilir. İş açıklamasını " "değiştirmek, bir çalışmayı silmek gibi her değişiklik geri alınabilir. " "Menüden Düzenle ->Geri Al ve Yinele komutları ile değişiklik geçmişinde " "ileri geri gidebilirsiniz." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s pek çok dilde kullanılabilir. Menüden Düzenle -> Ayarlar komutuna " "tıklayıp Dil sekmesinden istediğiniz dili seçebilirsiniz. Sizin dilinizde " "çeviri yapılmamış ya da yapılan çeviri yetersizse ve yardımcı olmayı " "düşünürseniz %(name)s çevirisine nasıl yardımcı olabileceğinizi öğrenmek " "için %(url)s adresine bakın." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Bir iş ya da çalışma açıklamasında bir İnternet adresi yazarsanız (örneğin " "%(url)s), bu bir bağlantı olur. Bağlantıya tıkladığınızda bu adres " "varsayılan tarayıcınızda açılır." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "İşlerin hiyerarşisini değiştirmek için, ağaç görünümünde işleri sürükleyip " "bırakabilirsiniz. Aynı işlemi gruplar için de yapabilirsiniz." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Ek oluşturmak için dosya gezgininden bir dosyayı sürükleyip bir işin üzerine " "bırakabilirsiniz. Dosyayı bir sekme üzerine sürüklediğinizde uygun sayfa " "açılır. Dosyayı daraltılmış bir iş üzerine sürüklediğinizde (+ işaretli iş), " "dal altişleri gösterecek şekilde genişletilir." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" "Sekmeleri sürükleyip bırakarak istediğiniz herhangi bir görünüm düzenini " "oluşturabilirsiniz. Yerleşim kaydedilir ve sonraki oturumda yeniden " "kullanılır." #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "'Dosya' -> 'Yazdır' komutunu seçtiğinizde etkin pencere yazdırılır. Seçili " "pencere iş listesi penceresi ise, iş listesi, aylara göre çalışmaları " "gösteren pencere ise bunlar yazdırılır. Aynı şeyler görünen sütunlar, " "sıralama, süzülmüş işler ve benzerleri için de geçerlidir." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Bir sütuna göre sıralama yapmak için sütun başlığına sol tıklayın. " "Sıralamayı tersine çevirmek için başlığa yeniden tıklayın. Sütun başlığına " "sağ tıklayınca açılan menüden hangi sütunların görünmesini istediğinizi " "belirtebilirsiniz." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Yinelenen iş tipleriniz varsa, ayrıntıları her seferinde uzun uzun yazmak " "yerine bu işlerden birini kullanarak bir kalıp oluşturabilirsiniz." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" "Düzenleme pencerelerinde sekmeler arasında Ctrl-Tab tuşları ile " "gezebilirsiniz." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "Günün ipucu" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "Sonraki ipucu" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "Açılışta ipuçlarını göster" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "Seçili ögelere ek eklemek için dosyalara gözatın" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "Seçili ögelere not ekler" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Yeni grup ekler" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Seçilen öğeleri kesip panoya kopyalar" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Seçilen öğeleri panoya kopyalar" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Panodaki ögeleri yapıştırır" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Panodaki ögeleri seçili ögenin altögeleri olarak yapıştırır" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Ayarları düzenle" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Geri alınmış olan son komutu yineler" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Etkin penceredeki tüm öğeleri seçer" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Son komutu geri alır" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Seçili işlere çalışma dönemi ekler" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Seçili işler için çalışmayı başlatır" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "Çalışmayı bitirir ya da sürdürür" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Kullanımdaki dosyayı kapatır" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "%s yazılımını sonlandırır" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Bir %s dosyası aç" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Kullanımdaki dosyayı kaydeder" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "Diskte ne değiştiyse yükler" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Kullanımdaki dosyayı yeni bir ad ile kaydeder" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Yazılım hakkında yardım" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "Varsayılan e-posta programınızı kullanarak seçili ögeleri gönderir" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Yeni not ekler" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "Seçili ögelerin tüm eklerini açar" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "Seçili ögelerin tüm notlarını açar" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Kullanımdaki dosyayı yazdır" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Yazdırılacak sayfanın yapılandırma özelliklerini ayarlar" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Tüm öğeleri gösterir (tüm süzgeçleri sıfırlar)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "Gruptan bağımsız olarak tüm ögeleri gösterir" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "Tuş takımı odaklanmasını görüntüleyiciden arama denetimine taşı" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Seçili işlerin önceliğini düşürür" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Seçili işlerin önceliğini arttırır" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Seçili işleri en yüksek öncelikli yapar" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Seçili işleri en düşük öncelikli yapar" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Yeni iş ekler" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Tüm öğeleri alt öğeleri ile daraltır" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Tüm öğeleri alt öğeleri ile genişletir" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Sonraki açık pencereyi etkinleştirir" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Önceki açık pencereyi etkinleştirir" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" "Bir iPhone ya da iPod Touch Task Coach ile bağlanmaya çalışıyor, \n" "ancak henüz parola atanmamış. Lütfen yapılandırmanızın iPhone \n" "bölümünden bir parola atayın ve yeniden deneyin." #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "İletişim kuralı sürümü: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Rededilen iletişim kuralı sürümü %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "Hash OK." #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "Hash KO." #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Aygıt adı: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Gönderilen dosya adı: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Tamamen masaüstünden." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d grup" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Gönderilen grup %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Yanıt: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d iş" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Gönderilen iş %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d çalışma" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Gönderilen çalışma %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Tamamlandı." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d yeni grup" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d yeni iş" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d yeni çalışma" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d güncellenmiş grup" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d güncellenmiş iş" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d güncellenmiş çalışma" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d silinmiş grup" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d silinmiş iş" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d silinmiş çalışma" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Yeni grup (üst: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Silinen grup %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Güncellenen grup %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Yeni iş %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Silinen iş %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Güncellenen iş %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "İş eşleştirmesi tamamlandı." #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "Çalışma için %s işi bulunamadı." #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Yeni çalışma %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Güncellenen çalışma %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Gönderilen GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "E-posta bilgileri okunuyor..." #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "e-posta bilgileri okunuyor. Lütfen bekleyin." #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "Thunderbird veri klasörü bulunamadı" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "Thunderbird profili bulunamadı" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "profiles.ini dosyasında varsayılan bölüm yok" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" "Hatalı Thunderbird iç kimliği: \n" "%s. Lütfen hata raporu iletin." #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" "Şu kimlik klasörü bulunamadı\n" "%s.\n" "Lütfen hata raporu iletin." #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "Anlaşılamayan İnternet adresi düzeni: \"%s\"" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" "Thunderbird e-posta ilerisini almak için\n" "%(server)s:%(port)s sunucusuna IMAP bağlantısı yapılamadı:\n" "%(reason)s" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "%s kullanıcısının etki alanını yazın" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" "\"%s\" gelen kutusu seçilemedi\n" "(%s)" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "Hiç posta yok: %d" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "Güncel başlangıç zamanı" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "Planlanan başlangıç zamanı" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "Bitiş tarihi" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "Tamamlanma tarihi" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "Anımsatıcı zamanı" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "Oluşturulma zamanı" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "Dönem bitiş tarihi" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "Dönem bitiş saati" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "Dönem başlangıç tarihi" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "Dönem başlangıç saati" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "Başlık yok" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Bugün bitecek yeni iş" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Yarın bitecek yeni iş" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d gün" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 gün" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "%(frequency)d günde bir" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "%(frequency)d haftada bir" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "%(frequency)d ayda bir" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "%(frequency)d yılda bir" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Diğer her gün" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Diğer her hafta" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Diğer her ay" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Diğer her yıl" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "Dün" #: taskcoachlib/render.py:284 msgid "now" msgstr "şimdi" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "%s kaynağı için eşleştirme" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "sunucudan aktarılacak. Tüm yerel ögeler silinecek.\n" "Devam etmek istiyor musunuz?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "istemciden aktarılacak. Uzaktaki tüm ögeler silinecek.\n" "Devam etmek istiyor musunuz?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Eşleştirme" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Eşleştiriliyor. Lütfen bekleyin\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d öge eklendi.\n" "%d öge güncellendi.\n" "%d öge silindi." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Eşleştirme sırasında bir hata oldu.\n" "Hata kodu: %d; ileti: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Önce menüden Düzenle -> SyncML ayarları komutuyla SyncML ayarlarınızı " "yapmalısınız." #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Panel Değiştirici" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "%s Geri Yükle" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Panel Öngörünümü" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "&Kapat" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Tümünü Kapat" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "So&nraki" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "Ön&ceki" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Pencere" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "Düzenle" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "%d hafta" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "%d saat" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "Bitti" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "Gösterilecek aralık tipi ve sayısı" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Ay" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Takvim yönelimi" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Yatay" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Dikey" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "Gösterilecek iş" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "Planlanmış başlangıç tarihi ve bitiş tarihi olan işler" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "Planlanmış başlangıç tarihi olan işler" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "Bitiş tarihi olan işler" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "Tüm işler" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "Planlanmamış işler dışındaki tüm işler" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "Şimdiki zamanı gösteren bir çizgi çiz" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "Bugünü vurgulayacak renk" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Tüm doyalar (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "Üstbilgiler" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "Hafta numarası" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "Takvim dönemi" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "Hafta" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "Çalışma günleri" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "Parola:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "Anahtarlıkta sakla" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" "Sisteminizdeki anahtar zinciri aranırken bir hata oluştu.\n" "Lütfen bu iletinin ekran görüntüsünü ekleyerek bir hata raporu gönderin " "(Yardım menüsüne bakın)\n" "Hata:\n" "\n" "%s" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "Lütfen parolanızı yazın." #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "Lütfen parolanızı yazın" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Büyük küçük harfe duyarlı" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Büyük/küçük harfe duyarlı süz" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "Alt ö&geleri de içer" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "Arama sonuçlarında eşleşen ögelerin altögelerini de içer" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "Açıklamalarda da a&ra" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Konu ve açıklamalarda ara" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "Ku&rallı İfade" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "Arama metnini kurallı ifade olarak kabul et" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Bu kurallı ifade geçersiz." #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "Altmetin arama varsayılan yapılıyor." #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Son aramalar" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Bu pencerede arama yapılamaz" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Uyumluluk uyarısı" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Modül yüklenemediğinden SyncML özelliği devre dışı.\n" "Platformunuz desteklenmiyor olabilir ya da bazı gerekli\n" "Windows DLL kütüphaneleri kayıp olabilir. Ayrıntılar için \n" "Lütfen çevrimiçi yardım konularında SyncML \"Hata bulma\" bölümüne bakın." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Bu iletiyi bir daha gösterme" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "İnternet adresi açılırken hata" #~ msgid "&Delete\tDEL" #~ msgstr "&Sil\tDEL" taskcoach-1.4.3/i18n.in/uk.po000066400000000000000000006423761265347643000156560ustar00rootroot00000000000000# Ukrainian translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2014-08-29 05:15+0000\n" "Last-Translator: Andrew Kaff \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: uk\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Виникла помилка. Будь ласка, дивіться \"taskcoachlog.txt\" у текі \"Мої " "документи\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Помилка" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Виникла помилка. Будь ласка, дивіться \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "Неможливо завантажити налаштування з TaskCoach.ini:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Файл %s пошкоджено" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Виявлені конфлікти з \"%s\"." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Змінити місце розташування вкладень" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Змінити місце розташування вкладень \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Прикріпити файл" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Додати вкладення дo \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Нове вкладення" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Видалити вкладення" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Видалити вкладення до \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Копіювати" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Копіювати \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Видалити" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Видалити \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Вирізати" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Вирізати \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Вставити" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Вставити \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Вставити як підпункт" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Вставити як підпункт \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Перетягнути" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Перетягнути \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Редагувати тему" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Редагувати тему \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Редагувати описи" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Редагувати опис \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Змінити іконки" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Змінити іконку \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Зміна шрифту" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Змінити шрифт \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Зміна головних кольорів" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Зміна головного кольору \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Зміна кольорів фону" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Змінити колір фону \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Змінити категорію" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Змінити категорію \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Нова категорія" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Нові підкатегорії" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Нові підкатегорії \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Нова підкатегорія" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Зміна ексклюзивних підкатегорій" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Змінити ексклюзивні підкатегорії \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Видалити категорії" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Видалити категорію \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Перетягнути категорії" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Нові зусилля" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Нове зусилля \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Видалити зусилля" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Видалити зусилля \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Змінити завдання зусилля" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Змінити завдання \"%s\" зусилля" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Зміна дати і часу початку зусилля" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Зміна дати і часу початку зусилля \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Зміна дати і часу зупинки зусилля" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Зміна дати і часу зупинки зусилля \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Нова примітка" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Нові під-замітки" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Нова під-замітка \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Нова підпримітка" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Видалити замітки" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Видалити замітку \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Перетягти замітки" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Перетягти замітку \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Додати нотатку" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Додати замітку \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Додати примітку" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Додати примітку до \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Вилучити запис" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Вилучити запис з \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Перетягти завдання" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Видалити завдання" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Видалити завдання \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Нове завдання" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Нові під-завдання" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Нове під-завдання \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Нове підзавдання" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Відмітити завдання як виконане" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Позначити \"%s\" завершеним" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Позначити завдання як активне" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Позначити \"%s\"як активне" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Позначити завдання як неактивне" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Позначити \"%s\" як неактивне" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Почати відслідковування" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Почати відслідковування \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Зупинити відслідковування" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Зупинити відслідковування \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Максимально важливе" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Максимізувати приорітет \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Майже непотрібне" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Мінімізувати приорітет \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Збільшити важливість" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Збільшити приорітет \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Зменшити важливість" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Понизити приорітет \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Зміна пріоритету" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Змінити пріоритет \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Додати замітку до завдання" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Змінити заплановану початкову дату" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Змінити заплановану початкову дату \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Зміна терміну" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Змінити термін \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Змінити дійсну початкову дату" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Змінити дійсну початкову дату \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Змінити дату завершення" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Змінити дату завершення \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Змінити дату/час нагадування" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Змінити дату/час нагадування \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Змінити повторення" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Змінити повторення \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Змінити відсоток виконання \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Змінити коли завдання помічено виконаним" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Змінити коли завдання \"%s\" помічено виконаним" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Редагування бюджетів" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Змінити бюджет \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Змінити погодинну оплату" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Змінити погодинну оплату \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Змінити фіксовані платежі" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Змінити фіксований платіж \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Перемкнути передумову" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Перемкнути передумову \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Помилка під час читання налаштувань %s-%s з %s.ini." #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Значення - %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Помилка - %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s використає початкові налаштування та продовжить роботу у звичайному режимі" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Помилка налаштувань" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Трапилась помилка під час запису %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Ой-йой, не зміг зберегти" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Повідомлення Mail.app" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Нове вкладення..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Додати нове вкладення" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Відкрити вкладений файл" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Відкрити обране вкладення" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 хвилин" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Не спать!" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 хвилин" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 хвилин" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 хвилин" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 хвилин" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1,5 години" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 хвилин" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 година" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 години" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 години" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 години" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 годин" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 годин" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 годин" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 годин" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 години" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 годин" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 години" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 тижні" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 тиждень" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Загалом" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Загалом для %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&Нове зусилля...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Неактивні завдання" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Приховати неактивні завдання" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Пізніші завдання" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Активні завдання" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Приховати активні завдання" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Прострочені завдання" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Завершені завдання" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Приховати виконані завдання" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Показати/сховати виконані завдання" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&Нове завдання..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Стрілка вниз" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Стрілка вниз із статусом" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Блакитні стрілки в циклі" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Зелені стрілки в циклі" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Стрілка вверх" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Стрілка вверх із статусом" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Бомба" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Книга" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Книги" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Коробка" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Божа корівка" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Торт" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Калькулятор" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Календар" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Кіт" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Компакт-диск (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Діаграми" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Бесіда" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Галочка" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Годинник" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Будильник" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Секундомір" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Шестерінка" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Шестерінки" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Настільний комп'ютер" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Ноутбук" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Кишеньковий комп'ютер" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Червоний хрест" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Гральна кість" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Документ" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Блакитна Земля" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Зелена Земля" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Конверт" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Конверти" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Блакитна папка" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Зелена папка" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Сіра папка" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Оранжева папка" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Пурпурна папка" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Червона папка" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Жовта папка" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Блакитна папка із стрілкою" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Серце" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Серця" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Зелений будинок" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Червоний будинок" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Ключ" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Ключі" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Лампа" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Знак запитання" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Інформація" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "Блакитна лампочка" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "Світлоблакитна лампочка" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "Сіра лампочка" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "Зелена лампочка" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "Салатова лампочка" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "Оранжева лампочка" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "Пурпурна лампочка" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "Червона лампочка" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "Жовта лампочка" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Кільце життя" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "Замкнений замок" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "Відімкнений замок" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "Лупа" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "Піаніно" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "Нота" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "Примітка" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "Палітра" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "Скріпка" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "Олівець" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "Особа" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "Люди" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "Візитка" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "Розмовляюча особа" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Знак попередження" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Мінус" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Плюс" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "Червона зірка" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "Жовта зірка" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "Світлофор" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "Смітник" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "Блискавка" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "Парасолька" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "Частково сонячно" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "Гайковий ключ" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "Без значка" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Опис" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Редагувати для зміни всіх тем" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Тема" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Редагувати для зміни всіх описів" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Пріоритет" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Взаємовиключаюячі" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Підкатегорії" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Редагувати для зміни розташування всіх вкладень" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Огляд" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Розташування" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Оформлення" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Колір тексту" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Колір фону" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Шрифт" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Значок" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Дати" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Запланована початкова дата" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Бажана дата завершення" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Дійсна початкова дата" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Реальна дата завершення" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Нагадування" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Повторення" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Просування" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Виконано у відсотках" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Використовувати глобальні настройки" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Ні" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Так" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "" "Чи позначати завдання виконаним за умови виконання всі дочірніх завдань ?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Бюджет" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Витрачений час" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Залишок бюджету" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Погодинна такса" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Фіксована такса" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Прибуток" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Зусилля" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Категорії" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "Вкладені файли" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Примітки" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Передумови" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Редагувати завдання" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Завдання" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Почати" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Тиждень (Тижнів)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "День (днів)" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Зупинити" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Продовжити відслідковування з часу останньої зупинки" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Припинити відстеження" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Попередження: початок має бути раніше закінчення" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Кілька завдань" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (завдання)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Кілька категорій" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (категорія)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Кілька приміток" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (примітка)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Кілька додатків" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (додаток)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Кілька зусиль" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (зусилля)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Використати шрифт:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Використати колір:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Немає" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Щодня" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Щомісячно" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Щотижня" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Щорічно" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "притримуватись дат того ж тижня" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", кожні" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Зупинити після" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "повторення" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Плануйте кожне наступне повторення на основі" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "день(днів)" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "період" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "тиждень(тижнів)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "місяць(місяців)" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "рік(років)" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Експортні пункти від:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Експортувати таількі вибрані пункти" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Колонкі до експорту:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Писати інформацію стилю до окремого CSS-файлу" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "У разі наявності CSS-файлу для файлу, що експортується, %(name)s не перепише " "його. Це дозволяє міняти інформацію стилю без втрати Ваших змін під час " "наступного експорту." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Експорт як CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Експорт як iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Експорт як HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Експорт як Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "Пристрій iPhone чи iPod Touch намагаються\n" "синхронізуватись з файлом завдань вперше.\n" "Який тип синхронізації\n" "використовувати?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Оновити з комп'ютера" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Оновити з пристрою" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Скасувати" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "У Вас ввімкнена опція синхронізації з iPhone,\n" "яка вимагає сервіс Bonjour. Здається Bonjour не встановлено \n" "у Вашій системі." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Будь ласка, завантажте та встановіть Bonjour для Windows з\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "сайту Apple" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Підтримка Bonjour для Linux за звичай надається від \n" "Avahi." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Отримати додаткові відомості для свого дистрибутиву можете тут" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Зверніть увагу, що в деяких системах (Fedora), Вам\n" "прийдеться встановити пакет avahi-compat-libdns_sd, а також Avahi,\n" "для того щоб це працювало." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "На додаток, якщо встновлено файрвол, перевірте чи відкриті порти 4096-4100." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "Гаразд" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "Файли" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "Автоматично зберігати після кожної зміни" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "Зберегти файл налаштувань (%s.ini)\n" "в тій самій теці, що й програма" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "Для запуску %s зі з'ємного носія" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "Базовий каталог для вкладень" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" "При додаванні вкладень, постарайтесь щоб\n" "шлях до нього був відносним до цього." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "Перед збереженням автоматично імпортуйте з" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt формат" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "Перед збереженням, %s автоматично імпортує завдання з Todo.txt файлу з тієї " "ж назви, що і файл завдання, але з розширенням.txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "Поведінка вікна" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "Показувати заставку під час запуску" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "Показувати підказку під час запуску" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "Запускати мінімізованим" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "Завжди" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "Ніколи" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "Так як останній раз" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "Перевіряти нову версію %(name)s під час запуску" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "Ховати головне вікно при згортанні" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "Згортати в трей замість закриття" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "Показувати годинник в треї під час відслідковування зусилля" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "Мова" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "Нехай система визначить мову" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "Мову не знайдено ?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "Вигляд завдання" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "Можливості" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "Ввімкнути SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "Ввімкнуит синхронізацію з iPhone" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "Понеділок" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "Неділя" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "Година початку робочого дня" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "Годиа закінчення робочого дня" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "Кінець дня" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "Показувати градієнт при перегляді календаря.\n" "Це може сповільнити роботу Task Coach." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" "Показувати підказку з описом пункту при\n" "наведенні курсору" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "Дати завдання" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" "Помітити батьківське завдання як виконане після виконання всіх дочірніх" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "Кількість годин, які означають, що завдання \"скоро завершаться\"" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "Нічого" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "Зміна запланованої початкової дати змінить дату виконання" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "Зміна дати виконання змінить заплановану початкову дату" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" "Що робити з запланованою початковою датою і датою виконання у разі змін " "інших?" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "Фіксовані налаштування" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "Пропонувати" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "Сьогодні" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "Завтра" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "Післязавтра" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "Наступна П'ятниця" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "Наступний Понеділок" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "Початок дня" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "Початок робочого дня" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "Поточний час" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "Кінець робочого дня" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "За замовчуванням запланована початкова дата та час" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "За замовчуванням дата виконання та час" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "За замовчуванням кінцева дата та час" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "За замовчуванням нагадування дати та часу" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "Нагадувачі завдання" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "Система повідомлень для нагадувачів" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "За замовчуванням проміжок часу для повторень повідомлень нагадувача" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "Час дрімання, який пропонується в діалозі нагадування" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "Пароль для синхронізації з iPhone" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Ім'я сервісу Bonjour" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "Вивантаження завдань на пристірй виконано" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "Показати журнал синхронізації" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "Редактор" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "Перевіряти правопис в редакторі" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s нагадувач - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "Нагадування дата/час" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "Засни!" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "Помітити завдання як виконане" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "Сервер SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "Власне" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "URL сервера SyncML" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "Ім'я користувача/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "Ввімкнути синхронізацію завдань" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "Ім'я бази даних завдань" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "Основний режим сінхронізації" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "Двусторонній" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "Повільно" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "Односторонньо з клієнта" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "Оновити з клієнта" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "Односторонньо з сервера" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "Оновити з сервера" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "Ввімкнути синхронізацію заміток" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "Ім'я бази даних заміток" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "Доступ" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "Шаблон нового завдання" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "Повідомляти про появу нової версії" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "Доступна нова версія %(name)s" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "Ви використовуєте %(name)s версію %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "Версія %(version)s %(name)s доступна" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s оновлюється" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s оновлюється до версії %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "Не можу знайти новішу версію" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "Не зміг віднайти яка версія %(name)s є найновішою." #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "Пробна версія" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "Ви використовуєте %(name)s пробну версію %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "Найостанньою робочою версією %(name)s є %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "Увага" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "Користувач не входив з %s. Наступне завдання\n" "було відстежене:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "Нічого не робити" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "Зупинити перед %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "Pegbybnb перед %s та закінчити зараз" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "Повідомлення" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s файли (*.tsk)|*.tsk|Усі файли (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" "%s файли (*.tsk)|*.tsk|Файли резервної копії (*.tsk.bak)|*.tsk.bak|Всі файли " "(*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "Файли iCalendar (*.ics)|*.ics|Всі файли (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "Файли HTML (*.html)|*.html|Всі файли (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" "Файли CSV (*.csv)|*.csv|Текстові файли (*.txt)|*.txt|Всі файли (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt файли(*.txt)|*.txt|Усі файли (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "Відкрити" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "Завантажено %(nrtasks)d завдань із %(filename)s" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "Не можу відкрити %s бо його просто нема" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "Об'єднати" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "Неможливо відкрити %(filename)s\n" "так як файл заблоковано." #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "Об'єднано %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "Зберегти як" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "Зберегти виділене" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "Неможливо зберегти %s\n" "Він заблокований іншою копією %s.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "Неможливо зберегти %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "Імпортувати шаблон" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "Файли шаблонів %s (*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "Неможливо імпортувати шаблон %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "Експортовано %(count)d записів до %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "Синхронізацію завершено" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "Статус синхронізації" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "Неможливо відкрити %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "Файл на ім'я %s вже існує.\n" "Бажаєте замінити його новим?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "У вас є незбережені зміни.\n" "Зберегти перед закриттям ?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: зберегти зміни?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "Неможливо відкрити %s тому,що він заблокований.\n" "\n" "Це означає, що запущено ще одну копію програми TaskCoach\n" "яка тримає цей файл заблокованим, або, що раніше запущена\n" " програма Task Coach закінчила роботу аварійно. Якщо нема інших\n" "запущених копій, Ви можете безпечно зняти блокування.\n" "\n" "Зняти блокування?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: файл заблоковано" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "Неможливо встановити блокування, так як вона не підтримується\n" "в місці розміщення %s.\n" "Відкрити %s. незаблокованим?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "Закрито %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "Записано %(nrtasks)d завдань до %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "Неможливо відкрити %(filename)s\n" "так як його створено в новій версії %(name)s.\n" "Будь ласка, оновіть %(name)s." #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "Глюки під час читання %s:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "Синхронізація..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "Синхронізація з %s..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "Вітаємо у %(name)s версії %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "Тип синхронізації" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "iPhone чи iPod Touch намагались синхронізуватись з цим\n" "файлом завдань, але не вдалось узгодити протокол.\n" "Будь ласка, повідомте про помилку." #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "&Файл" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "&Редагувати" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "&Вигляд" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "&Новий" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "&Дії" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "&Довідка" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "&Імпорт" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "&Експорт" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "&Вибрати" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "&Новий вигляд" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "&Активувати наступний вигляд\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "Активувати &попередній вигляд\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "&Фільтр" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "&Сортування" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "&Стовпчики" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "&Округлення" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "&Настройка вигляду дерева" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "&Панель інструментів" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "Показати/сховати панель стану" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "Панель стану" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "&Завдання" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "Відкрити нову вкладку з завданнями" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "Завдання &статистика" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "Відкрити нову вкладку з переглядачем, який показує статистику" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "Квадратна карта завдань" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "Відкрити нову вкладку з завданнями на квадратній карті" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "Шкала часу" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "Відкрити нову вкладку із шкалою часу задач та зусиль" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "Календар" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "Відкрити нову вкладку із завданнями на календарі" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "&Категорія" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "Відкрити нову вкладку з виглядом, з відображенням категорії" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "Зусилля" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "Відкрити нову вкладку із зусиллями" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "Відкрити нову вкладку із зусиллями витраченими на обрані завдання" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "&Примітка" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "Відкрити нову вкладку з виглядом який відображує примітки" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "С&ховати" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "Сховати панель інструментів" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "&Мініатюрні зображення" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "Маленькі зображення (16x16) на панелі інструментів" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "&Середні за розміром зображення" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "Зображення помірного розміру (22х22) на панелі інструментів" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "&Великі зображення" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "Великі зображення (32x32) на панелі інструментів" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "Нове завдання по шаблону" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "Змінити категорію" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "&Почати відслідковування зусиль" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (субкатегорії)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (підзавдання)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "&Пріоритет" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "Сторінка" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s нагадування" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d завдань просрочено" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "одне завадання просрочено" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "Термін виконання завдань %d скоро закінчується" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "одне завдання скоро закінчиться" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "відстеження \"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "відслідковування зусиль для %d завдань" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "&Відкрити...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "Відкрити %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "&Об'єднати..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "Об'єднати завдання з іншого файлу з поточним файлом" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "&Закрити\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "&Зберегти \tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "З&берегти як...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "Зберегти поточне завдання як &шаблон" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "Зберегти обране завдання як шаблон завдання" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "Редагувати шаблон..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "Редагувати існуюючі шаблони" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "Редагувати шаблони" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "Очистити видалені елементи" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "Затирання видалених пунктів неможливо відмінити.\n" "Якщо Ви плануєте активувати функцію SyncML повторно\n" "з тим же сервісом, який був використаний востаннє,\n" "ці пункти, більше всього, повернуться до попереднього стану.\n" "\n" "Тим не менг ви дійсно хочете затерти?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "Параметри сторінки...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "Попередній перегляд того, на що воно буде схоже" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "Перегляд друку" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "Друк...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "Експорт зусилля в &HTML..." #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "Експорт в формат &CSV..." #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "Експортувати як iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "Синхронізувати з SyncML сервером" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "&Вийти\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "&Вернути" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "&Повторити" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "Ви&різати\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "&Копіювати\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "&Paste\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "Вставити як підпункт \tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "Налаштування...\tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "Налаштування SyncML..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "Змінити налаштування SyncML" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "&Все\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "&Очистити виділення" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "Очистити все виділення" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "&Перейменувати вигляд..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "Перейменувати виділений вид" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "Новий заголовок для виду" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "Перейменувати вид" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "&Сховати цей стовпчик" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "Сховати виділенні стовпчики" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "&Розкрити всі позиції \tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "&Згорнути всі пункти\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "&У зростаючому порядку" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" "Сортувати у зростаючому(відмічено) або спадаючому(нема відмітки) порядку" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "Сортування з урахуванням регістру" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" "При порівнянні тексту, сортувати у чутливому до регістру(відмічено) або " "нечутливому(нема відмітки) порядку" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "Сортувати в першу чергу за &статусом" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" "Сортувати завдання за статусом в порядку(Активні/Неактивні/Завершені)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "Приховати складові завдання" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "Показати/приховати завдання з підзавданнями в режимі списку" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "Створити нове завдання із шаблону" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "Нове завдання з обраної категорії..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "Додати нове завдання до обраних категорій" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "Нове завдання з обраних завдань як передумова..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" "Вставити нове завдання з обраними завданнями як передумова цим завданням" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "Додати нове завдання до обраноих завдань як залежне завдання" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "Нове &підзавдання..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "Позначити виділені завдання як завершені" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "Максимізувати приорітет\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "Мінімізувати приорітет\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "Збільшити приорітет\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "Понизити приоітет\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "Перемкнути %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "Неможливо надіслати e-mail:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s помилка пошти" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "&Почати відслідковувати зусилля\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "Почати відслідковувати зусилля для завдання(ь) вибраного зусилля(ь)" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(Без теми)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "Почати відслідковувати зусилля для %s" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "Вибрати завдання з допомогою меню, та почати відслідковувати зусилля" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "Зуп&пинити відслідковування %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "Припинити відслідковувати зусилля" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "&Відновити відслідковування %s\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" "Відновити відслідковування зусилля для останнього відслідковуваного завдання" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "декілька завдань" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "Нова замітк з обраної категорії..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "Додати нову замітко до вибраних категорій" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Ой! не можу відкрити вкладений файл" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "Зміст допомоги\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "&Зміст довідки\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "Довідка" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "&Поради" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "Поради про програму" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "&Про %s" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "Версія та контактна інформація про %s" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "&Ліцензія" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s ліцензія" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "&Відновити" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "Відновити вікно до попереднього розміру" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "Подробиці зусиль" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "Щоденні зусилля" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "Щомісячні зусилля" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "Щотижневі зусилля" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "Фільтрувати по вибраних категоріях" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "Фільтрувати по будь якій обраній категорії" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "&Налаштувати" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "Налаштувати вигляд календаря" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "Наступний період" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "показати наступний період" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "Попередній період" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "Показати попередній період" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "&Сьогодні" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "показати сьогодні" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "Автоматичний розмір колонок" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" "Коли обрано, автоматично змінюється розмір колонок для заповнення доступного " "простору" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "Тип" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "Сортувати за темою" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "Те&ма" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "Сортувати за описом" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "&Опис" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "Показати/сховати стовпчик описів" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "Замітки" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "Показати/Приховати колонку заміток" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "&Вкладені файли" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "Показати/Приховати колонку вкладень" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "Категорії: %d вибрано, %d всього" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "Статус: %d відібрано" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "Період" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "Повний витрачений час" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "Повний прибуток" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "Вівторок" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "Середа" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "Четвер" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "П’ятниця" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "Субота" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "&Категорії" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "Показати/сховати стовпчик категорій" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "&Витрачений час" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "Показати/сховати стовпчик витраченого часу" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "&Прибуток" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "Показати/сховати стовпчик прибутку" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "&Всього затрачено часу" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "Показати/приховати колонку загального затраченого часу" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "&Загальний дохід" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "Показати/сховати стовпчик загального прибутку" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "Зусилля за тиждень" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "Показати/Приховати колонки часу, потраченого за тиждень" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "Статус: %d відслідковування" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "Сортувати категорії по темі" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "Сортувати категорії по опису" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "Сортувати вкладення по темі" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "Сортувати вкладення по опису" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "Сортувати вкладення по категоріям" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "Сортувати замітки по темі" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "Сортувати замітки по опису" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "Сортувати замітки по категоріям" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "Сортувати завдання по темі" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "Сортувати завдання по опису" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "Сортувати завдання по категоріям" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "Сортувати завдання за очікуваною датою завершення" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "&Прогнозована дата закінчення" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "Сортувати завдання за датою завершення" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "&Дата завершення" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "Сортувати завдання по передумовах до завдань" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "&Передумови" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "Сортувати завдання по залежним завданням" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "Сортувати завдання по часу, що залишився" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "Лишилось часу" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "Сортувати завдання по відсотках завершеності" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "Вдсоток виконання" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "Сортувати завдання за повторюваністю" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "&Повторення" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "Сортувати завдання за бюджетом" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "&Бюджет" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "Сортувати завдання за затраченим часом" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "Залишок бюджету" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "Сортувати завдання за залишком бюджету" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "Сортувати завдання за пріоритетом" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "Сортувати завдання за погодинною винагородою" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "&Погодинна винагорода" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "Сортувати завдання за фіксованою винагородою" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "Фіксована оплата" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "Сортувати завдання за прибутком" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "Сортувати завдання за часом та датою нагадування" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "&Нагадування" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "&Предмет" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "Сортувати замітки по категоріям" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "Примітки: %d вибрано, %d всього" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "Статус: недоступний" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "Завдання: %d вибрані, %d видимі, %d всього" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "Завдання" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "Шкала часу" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "Зараз" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "Квадратна карта завдань" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "Налаштування вигляду календаря" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "% завершено" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "Залишилось часу" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "&Дати" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "Стовпчики всіх дат" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "Показати/сховати всі стовпчики пов'язані за датами" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "Показати/сховати прогнозовану дату закінчення" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "Показати/сховати стовпчик з датою завершення" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "Показати/Приховати колонку \"Залишилось часу\"" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "Показати/сховати стовпчик повторень" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "Всі стовпчики бюджету" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "Показати/сховати всі пов'язані з бюджетом стовпчики" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "Показати/сховати стовпчик бюджету" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "Бюджету залишилось" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "Показати/сховати стовпчик залишку бюджету" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "&Фінанси" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "Всі колонки фінансів" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "Показати/сховати пов'язані з фінансами стовпчики" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "Показати/сховати стовпчик погодинної винагороди" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "Показати/сховати стовпчик віксованої винагороди" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "Показати/приховати колонку передумов" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "Показати/приховати колонку \"Відсотків виконано\"" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "Показати/сховати стовпчик вкладень" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "Показати/сховати стовпчик пріоритету" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "Показати/сховати стовпчик нагадувань" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "Зміст" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "Про завдання" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "Налаштування завданя" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "Стан завдання" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "Кольори завдання" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "Про зусилля" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "Налаштування зусилля" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "Про категорії" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "Налаштування категорії" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "Про замітки" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "Налаштування замітки" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "Друк та експорт" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "Про друк та експорт" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "Друк" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "Експорт" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "Про ітеграцію з email" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "Додати e-mail до завдання" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "Створення завдання з e-mail" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "Пдтримка SyncML" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "Що таке SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "Налаштування" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "Обмеження" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "Вирішення проблем" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "Очищення видалених елементів" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone та iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "Налаштування" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "Шаблони завдань" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "Про шаблони" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "Використання шаблонів" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "Графічний інтерфейс користувача" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "Клавіатурні скорочення" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" "Завдання є основними об'єктами. Завдання представляють\n" "собою, опис дрібних робіт, які потрібно виконати \n" "щоб завершити якийсь проект. Проект може складатись з різних \n" "фаз і різної кількості дій." #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "Завдання мають наступні властивості, які ви можете змінити:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "Тема: в одному рядку описує завдання в загальному." #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "Опис: багаторядковий, більш детальний опис завдання" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "Термін виконання: дата, до якої завдання повинне бути виконаним. \n" "Це поле може мати значення 'Відсутня', що значитиме, що це завдання не має " "фіксованої дати завершення." #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" "Дата завершення: Це поле матиме значення 'Відсутня', до тих пір, доки " "завдання не буде виконано. \n" "Вона автоматично буде встановлена до поточної дати, коли ви позначаєте " "завдання як виконане. \n" "Також дату завершення можна ввести вручну." #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "Бюджет: кількість годин доступних для завдання." #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" "Погодинна ставка: кількість зароблених грошей за кожну годину виконання " "завдання." #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" "Фіксована ставка: кількість зароблених грошей, не залежно від \n" "затраченого часу." #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "Наступні властивості розраховуються від властивостей вказаних вище:" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" "Днів залишилось, кількість днів, що залишилось до закінчення терміну." #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "Затрачений час: час затрачений на завдання." #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "Залишок бюджету: бюджет завдання мінус час затрачений на завдання." #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "Прибуток: погодинна оплата затраченого часу плюс фіксована оплата." #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "Завдання завжди в одному з наступних станів:" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "Завершено: Завдання виконано." #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "Крім того завдання можуть посилатись на:" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" "Термін надходить: термін виконання скоро закінчиться ( параметр \"скоро\"\n" " може бути змінено в налаштуваннях)" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "Бюджет вичерпано: буджету не лишилось;" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "В межах бюджету: бюджет ще лишився;" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "Бюджет відсутній: завдання не має бюджету." #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "Текст завдання пофарбовано залежно від наступних правил:" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "Завдання з терміном, що приближається, відмічено оранжевим;" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "Активні завдання - чорний текст з блакитним значком;" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "Майбутні завдання сірі, та" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "Виконані завдання зелені." #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" "Всі ці значення, за замовчування, і будуть такими якщо\n" "Ви їх не змінювали в налаштуваннях." #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" "Колір фону завдань, визначається категоріями, до\n" "яких вони відносяться. Див. розділ\n" "властивості категорій, нижче." #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "Windows, 32 bits (див. нижче)" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "Linux, 32 bits" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "Mac OS 10.3 або новіша, Intel та PPC" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "Ієрархічна завдань і категорій" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "Відслідковування часу" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "Налаштування на Windows" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "Налаштування на Linux" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "Ctrl-A" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "Ctrl-C" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "Shift-Ctrl-C" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "Ctrl-D" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "Shift-Ctrl-D" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "Ctrl-E" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "Shift-Ctrl-E" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "Ctrl-F" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "Ctrl-H" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "Ctrl-I" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "Shift-Ctrl-I" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "Ctrl-O" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "Alt-P" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "Ctrl-P" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "Shift-Ctrl-P" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "Ctrl-Q" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "Ctrl-S" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "Shift-Ctrl-S" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "Ctrl-T" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "Shift-Ctrl-T" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "Ctrl-V" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "Shift-Ctrl-V" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "Ctrl-W" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "Ctrl-X" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "Ctrl-Y" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "Ctrl-Z" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "Ctrl-Enter" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "Shift-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "Ctrl-Tab" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "Shift-Ctrl-Tab" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "Ctrl-PgDn" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "Ctrl-PgUp" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "Alt-Down" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" "%(name)s активно розвивається. Хоча розробники %(name)s стараються та " "помилки всерівно трапляються. Тому рекомендуємо проводити регулярне резервне " "копіювання Ваших даних." #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s має необмежену історію відміни. Будь-яку зміну, яку ви зробили чи " "то редагуючи опис завдання чи видаливши запис зусилля, можна повернути. " "Виберіть \"Редагування\" -> \"Відмінити\" або \"Редагування\" -> " "\"Повернути\" щоб рухтися вперед та назад по історії дій." #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "В %(name)s вбудована підтримка різних мов. Виберіть пункт меню 'Редагувати' -" "> 'Налаштування' для перегляду списку доступних мов. Якщо Ваша мова " "відсутня, або Ви вважаєте, що переклад потребує доопрацювання, колектив " "розробників буде вдячний Вам за допомогу в локалізації %(name)s. Інформацію " "про те як Ви можете допомогти, можна знайти за адресою: %(url)s." #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" "Якщо ви введете URL (тобто %(url)s) в опис завдання або зусилля воно стане " "активним посиланням. Клацання по цьому посиланню відкриває його в вашому веб-" "браузері за умовчанням." #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" "Ви можете перетягувати завдання у вигляді дерева завдань, щоб змінити " "належність підзавдань стосовно батьківських. Теж саме є вірним і для " "категорій." #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "Ви можете перетягнути файли з провідника прямо на завдання, щоб прикріпити " "його до даного завдання. Перетягування файлу над вкладкою відкриє дану " "вкладку, над згорнутим деревом - розкриє його." #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "Те, що буде надруковано при виборі пункту меню \"Файл\"-> \"Друк\", залежить " "від поточного вигляду. Якщо в поточному вигляді відображається список " "завдань - буде надруковано список завдань. Якщо в поточному вигляді " "відображаються записи про роботу над завданням по місяцях, то буде " "надруковано саме цей список.Теж саме відноситься до ввімкнених колонок, " "способу сортування, фільтрації завдань і т.п." #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" "Натисніть лівою кнопкою миші по заголовку колонки для сортування по цій " "колонці. Натисніть по заголовку колонки ще раз, щоб змінити порядок " "сортування. Натисніть правою кнопкою миші на заголовку колонки, щоб " "приховати її або показати додаткові колонки." #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" "Ви можете створити шаблон із завдання, для того щоб прискорити роботу при " "появі подібних завдань." #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "Ctrl-Tab перехід між вкладками в діалозі редагування." #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Вставити нову категорію" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "Вирізати виділене до буферу обміну" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "Копіювати виділене до буферу обміну" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "Вирізати виділене до буферу обміну" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "Вставити пункт(-ти) з буферу обміну як підпункт обраного пункту." #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "Редагувати настройки" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "Повторити останню команду" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "Виділити все, що видно" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "Вернути останню команду" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "Додати зусилля на період виділених завдань" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "Почати відслідковування зусиль у виділених завданнях" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "Закрити поточний файл" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "Вийти %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "Відкрити файл %s" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "Зберегти поточний файл" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "Зберегти поточний файл під іншим ім'ям" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "Про програму" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Вставити нову примітку" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "Надрукувати поточний файл." #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "Настройка сторінки для друку" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "Показати все (скинути всі фільтри)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "Зменшити пріоритет виділених завдань" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "Збільшити приорітет виділених завдань" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "Позначити виділені завдання найвищим приорітетом" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "Позначити виділені завдання найнижчим приорітетом" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Вставити нове завдання" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "Згорнути всі пункти разом із підпунктами" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "Розкрити всі позиції разом із підпозиціями" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "Активувати наступний відкритий вигляд" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "Активувати попередній відкритий вигляд" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "Версія протоколу: %d" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "Відхилено версію протоколу %d" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "Ім'я пристрою: %s" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "GUID: %s" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "Відправлення файлу: %s" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "Повністю з ПК." #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "%d категорії" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "Надіслати категорію %s" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "Відповідь: %d" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "%d завдань" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "Відправити завдання %s" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "%d зусиль" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "Надіслати зусилля %s" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "Завершено." #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "%d нових категорій" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "%d нових завдань" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "%d нових зусиль" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "%d змінених категорій" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "%d змінених завдань" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "%d змінених зусиль" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "%d видалених категорій" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "%d видалених завдань" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "%d видалених зусилль" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "Нова категорія (батько: %s)" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "Видалити категорію %s" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "Змінити категорію %s" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "Нове завдання %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "Видалити завдання %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "Змінити завдання %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "Нове зусилля %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "Редагувати зусилля %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "Відправлений GUID: %s" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "Термін нового завдання заінчується сьогодні." #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "Завтра закінчується термін нового завдання" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "%d днів" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "1 день" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "Кожні %(frequency)d дні" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "Кожних %(frequency)d тижнів" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "Кожних %(frequency)d місяців" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "Кожних %(frequency)d років" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "Через день" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "Через тиждень" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "Через місяць" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "Через рік" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "тепер" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "Синхронізація з джерелом %s" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" "буде оновлено з сервера. Всі локальні записи \n" "будуть видалені. Бажаєте продовжити?" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" "буде оновлено з клієнта. Всі записи на сервері\n" "будуть видалені. Бажаєте продовжити?" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "Синхронізація" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" "Відбувається синхронізація. Зачекайте.\n" "\n" "\n" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" "%d елементів додано.\n" "%d елементів оновлено.\n" "%d елементів видалено." #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" "Під час синхронізації виникла помилка.\n" "Код помилки: %d; Опис: %s" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" "Для початку Ви маєте змінити налаштування SyncML, в Редагування/Налаштування " "SyncML" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "Перемикач панелей" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "Попередній перегляд панелі" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "Закрити" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "Закрити все" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "&Далі" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "&Назад" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "&Вікно" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "Місяць" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "Орієнтація календаря" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "Горизонтально" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "Вертикально" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "Всі файли (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "&Враховувати регістр" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "Враховувати регістр коли використовується фільтр" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "&Включаючи підпункти" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" "Включати у відображенн підпункти тіх пунктів, які підходять по пошуку" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "&Пошук опису також" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "Шукати в темі та опису" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "Це хибний регулярний вираз" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "За замовчуванням для пошку підрядків" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "Недавно шукали" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "Вигляд не є пошуково здатним" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "Попередження сумісності" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "Функція SyncML відключена, так як модуль не було завантажено.\n" "Це могло статися із-за того, що Ваша платформа\n" "не підтримується, або під Windows в разі відсутності\n" "необхідних DLL. Будь ласка, зверніться до розділу SyncML\n" "онлайн довідки для отримання детальної інформації (\"Усунення " "несправностей\")." #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Більше не показувати цей діалог" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Помилка під час відкриття URL адреси" taskcoach-1.4.3/i18n.in/vi.po000066400000000000000000005233651265347643000156510ustar00rootroot00000000000000# Vietnamese translation for taskcoach # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2016-01-30 14:27+0000\n" "Last-Translator: Jérôme Laheurte \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: vi\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "" "Có lỗi. Xem thông tin tập tin \"taskcoachlog.txt\" trong thư mục \"My " "Documnets\"." #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "Có lỗi" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "Có lỗi. Vui lòng xem \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "Không lấy được thông tin cài đặt từ tập tin TaskCoach.ini: %s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "Lỗi tập tin %s" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "Task Coach" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" ở lên hết vì các thư mục \"cha mẹ\" đã bị xóa." #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "Có xung đột \"%s\"." #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "Chỉnh sửa vị trí các tập tin đính kèm" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "Chỉnh sửa vị trí các tập tin đính kèm \"%s\"" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "Thêm đính kèm" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "Thêm đính kèm vào \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "Đính kèm tập tin mới" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "Loại bỏ đính kèm" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "Loại bỏ đính kèm với \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "Sao chép" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "Sao chép \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "Xóa" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "Xóa \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "Cắt" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "Cắt \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "Dán" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "Dán \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "Dán như thành phần con" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "Dán như thành phần con của \"%s\"" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "Kéo và thả" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "Kéo và thả \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "Chỉnh sửa chủ đề" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "Chỉnh sửa chủ đề \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "Chỉnh sửa mô tả" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "Chỉnh sửa mô tả \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "Đổi biểu tượng" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "Đổi biểu tượng \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "Thay đổi font chữ" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "Thay đổi font chữ \"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "Thay đổi màu hiển thị" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "Thay đổi màu hiển thị \"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "Thay đổi màu nền" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "Thay đổi màu nền \"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "Gán vào loại" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "Gán vào loại của \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "Tạo loại mới" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "Tạo phân loại" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "Tạo phân loại của \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "Tạo phân mục con mới" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "Chỉnh sửa phân loại riêng" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "Chỉnh sửa phân loại riêng của \"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "Xóa loại" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "Xóa loại của \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "Kéo và thả loại" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "Sự nổ lực mới" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "Sự nổ lực mới của \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "Xóa sự nổ lực" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "Xóa sự nổ lực của \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "Thay đổi công việc của sự nổ lực" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "Thay đổi công việc của \"%s\" sự nổ lực" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "Thay đổi ngày, giờ bắt đầu của sự nổ lực" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "Thay đổi ngày, giờ bắt đầu của sự nổ lực \"%s\"" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "Thay đổi ngày, giờ kết thúc của sự nổ lực" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "Thay đổi ngày, giờ kết thúc của sự nổ lực \"%s\"" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "Ghi chú mới" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "Nhánh ghi chú mới" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "Nhánh ghi chú mới của (%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "Ghi chú con mới" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "Xóa ghi chú" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "Xóa ghi chú \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "Kéo và thả ghi chú" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "Kéo và thả ghi chú \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "Thêm ghi chú" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "Thêm ghi chú \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "Thêm nhánh ghi chú" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "Thêm nhánh ghi chú \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "Bỏ ghi chú" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "Bỏ ghi chú \"%s\"" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "Kéo và thả công việc" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "Xóa công việc" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "Xóa công việc \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "Tác vụ mới" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "Tạo mới công việc con" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "Tạo mới công việc con \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "Tác vụ con mới" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "Đánh dấu công việc hoàn thành" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "Đánh dấu \"%s\" hoàn thành" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "Đánh dấu công việc đang thực hiện" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "Đánh dấu \"%s\" đang thực hiện" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "Đánh dấu công việc không thực hiện" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "Đánh dấu \"%s\" không thực hiện" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "Bắt đầu theo dõi" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "Bắt đầu theo dõi \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "Dừng theo dõi" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "Dừng theo dõi \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "Ưu tiên tối đa" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "Thứ tự ưu tiên cao nhất \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "Ưu tiên tối thiểu" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "Thứ tự ưu tiên thấp nhất \"%s\"" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "Tăng độ ưu tiên" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "Tăng thứ tự ưu tiên \"%s\"" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "Giảm độ ưu tiên" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "Giảm thứ tự ưu tiên \"%s\"" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "Thay đổi thứ tự ưu tiên" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "Thay đổi thứ tự ưu tiên \"%s\"" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "Thêm ghi chú vào công việc" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "Thay đổi ngày vạch kế hoạch" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "Thay đổi ngày vạch kế hoạch \"%s\"" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "Thay đổi ngày hết hạn" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "Thay đổi ngày hết hạn \"%s\"" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "Thay đổi ngày thực tế bắt đầu" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "Thay đổi ngày thực tế bắt đầu \"%s\"" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "Thay đổi ngày hoàn thành" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "Thay đổi ngày hoàn thành \"%s\"" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "Thay đổi thời gian nhắc nhở" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "Thay đổi thời gian nhắc nhở \"%s\"" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "Thay đổi việc lặp lại" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "Thay đổi việc lặp lại \"%s\"" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "Thay đổi tỉ lệ hoàn thành \"%s\"" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "Thay đổi khi công việc được đánh dấu hoàn thành" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "Thay đổi khi \"%s\" được đánh dấu hoàn thành" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "Thay đổi kinh phí" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "Thay đổi kinh phí \"%s\"" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "Thay đổi chi phí theo giờ" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "Thay đổi chi phí theo giờ \"%s\"" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "Thay đổi chi phí cố định" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "Thay đổi chi phí cố định \"%s\"" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "Gán điều kiện cần thiết" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "Gán điều kiện cần thiết \"%s\"" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "Có lỗi trong khi đọc thông tin cài đặt %s-%s từ %s.ini" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "Giá trị là: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "Lỗi là: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "" "%s sẽ sử dụng giá trị mặc định để cài đặt và thực thi theo thông thường." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "Lỗi cài đặt" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "Lỗi trong khi lưu %s.ini:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "Lưu lỗi" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app thông điệp" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "Đính kèm mới..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "Chèn vào đính kèm mới" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "Mở file đính kèm" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "Mở đính kèm được chọn" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 phút" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "Không tạm ngưng" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 phút" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 phút" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 phút" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 phút" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1 giờ 30 phút" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 phút" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 giờ" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 giờ" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 giờ" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 giờ" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 giờ" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 giờ" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 giờ" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 giờ" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 giờ" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 giờ" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 giờ" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 tuần" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 tuần" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "Tổng cộng" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "Tổng cộng %s" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&New effort...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "Công việc không thực hiện" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "Ẩn &inactive tasks" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "Công việc không thực hiện: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "" "Hiện/Ẩn công việc không thực hiện (công việc không hoàn thành không có ngày " "bắt đầu thực tế)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "Công việc hoàn thành trễ" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "Ẩn &late tasks" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "Công việc hoàn thành trễ: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "" "Hiện/Ẩn công việc hoàn thành trễ (Công việc không thực hiện với ngày bắt đầu " "trong quá khứ)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "Công việc đang thực hiện" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "Công việc đang thực hiện: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "Ẩn &active tasks" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "" "Hiện/Ẩn công việc đang thực hiện (Công việc không hoàn thành với ngày ngày " "bắt đầu thực tế trong quá khứ)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "Công việc sắp tới hạn" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "Công việc sắp tới hạn: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "Ẩn &due soon tasks" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "" "Hiện/Ẩn công việc sắp tới hạn (Công việc không hoàn thành với ngày tới hạn " "gần kề)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "Công việc quá hạn chưa hoàn thành" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "Ẩn &over due tasks" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "Công việc quá hạn: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "Hiện/Ẩn công việc quá hạn (chưa hoàn thành với hạn chót đã qua)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "Công việc đã hoàn thành" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "Công việc đã hoàn thành: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "Ẩn &completed tasks" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "Hiện/Ẩn công việc đã hoàn thành" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "&New task..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "Arrow down" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "Arrow down with status" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "Blue arrows looped" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "Green arrows looped" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "Arrow up" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "Arrow up with status" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "Bomb" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "Book" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "Books" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "Box" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "Ladybug" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "Cake" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "Calculator" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "Lịch" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "Loại" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "Compact disc (CD)" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "Charts" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "Chatting" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "Check mark" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "Check marks" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "Đồng hồ" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "Đồng hồ báo động" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "Đồ hồ bấm giờ" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "Cogwheel" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "Cogwheels" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "Máy tính để bàn" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "Máy tính xách tay" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "Handheld computer" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "Dấu thập đỏ" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "Die" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "Document" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "Blue earth" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "Green earth" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "Envelope" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "Envelopes" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "Blue folder" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "Light blue folder" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "Green folder" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "Grey folder" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "Orange folder" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "Purple folder" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "Red folder" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "Yellow folder" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "Blue folder with arrow" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "Heart" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "Hearts" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "Green house" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "Red house" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "Key" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "Keys" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "Lamp" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "Question mark" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "Thông tin" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "Vòng đời" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "Dấu hiệu cảnh báo" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "Trừ" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "Cộng" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "Chọn nơi phục hồi" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "Thông điệp từ %s người phát triển" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "Xem:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "Mô tả" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "Chỉnh sửa thay đổi tất cả đề mục" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "Tựa đề" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "Chỉnh sửa thay đổi tất cả mô tả" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "Ngày tạo" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "Ngày chỉnh sửa" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "Độ ưu tiên" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "Loại trừ qua lại" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "Phân loại" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "Chỉnh sửa để thay đổi vị trí của tất cả đính kèm" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "Xem lướt" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "Vị trí" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "Giao diện" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "Màu cận cảnh" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "Màu nền" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "Kiểu chữ" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "Biểu tượng" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "Ngày" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "Ngày vạch kế hoạch bắt đầu" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "Ngày đến hạn" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "Ngày thực tế bắt đầu" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "Ngày hoàn tất" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "Nhắc nhở" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "Lặp lại" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "Tiến độ" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "Tỉ lệ (%) hoàn thành" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "Sử dụng cài đặt ứng dụng theo chiều rộng" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "Không" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "Có" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "Đánh dấu công việc đã hoàn thành khi các công việc con đã hoàn thành" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "Kinh phí" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "Thời gian đã trãi qua" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "Kinh phí còn lại" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "Chi phí hàng giờ" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "Chi phí cố định" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "Lợi nhuận" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "Nổ lực" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "Phân mục" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "File đính kèm" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "Ghi chú" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "Điều kiện cần thiết" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "Sửa tác vụ" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "Công việc" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "Bắt đầu" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "Tuần" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "Ngày" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "Giờ" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "Phút" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "Dừng" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "Bắt đầu theo xoi từ lần dững cuối" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "Dùng theo dõi ngay" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "Cảnh báo: thời gian bắt đầu phải trước thời gian kết thúc" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "Nhiều công việc" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (task)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "Đa loại" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (category)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "Nhiều ghi chú" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (note)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "Nhiều phần đính kèm" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (attachment)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "Nhiều sự nổ lực" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (effort)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "Sử dung phông chữ" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "Sử dụng màu" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "Không có" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "Hằng ngày" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "Hàng tháng" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "Hằng tuần" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "Hàng năm" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "Giữ ngày như ngày trong tuần" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", every" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "Dừng lại sau" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "Duy trì tái lập" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "Lập lịch cho lần tái lập kế tiếp trên cơ sở" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "kế hoạch vạch trước ngày bắt đầu và/hoặc ngày hạn chót" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "ngày hoàn thành cuối" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "ngày," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "khoảng thời gian," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "tuần," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "tháng," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "năm," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "Xuất thành phần từ:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "Chỉ xuất thành phần được chọn" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "Cột để xuất" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "Đặt ngày và giờ công việc ở cột riêng biệt" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "Viết kiểu thông tin ở tập tien CSS riêng" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "" "Nếu tập tin CSS tồn tại trong file đã xuất, %(name)s sẽ không ghi đè lên " "nó. Điều này cho phép bạn thay đổi kiểu thông tin không mất đi sự thay đổi " "trong lần xuất tới" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "Xuất thành CSV" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "Xuất dạng iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "Xuất dạng HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "Xuất dạng Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "iPhone hoặc iPod Touch đang\n" "đồng bộ với tập tin công việc\n" "cho lần đầu tiên. Loại đồng bộ nào\n" "bạn muốn dùng?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "Làm tươi màn hình" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "Làm tươi từ thiết bị" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "Hủy" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "Bạn đang bật tính năng đồng bộ IPhone, điều đó\n" "cần Bonjour. Bonjour dường như không được cài đặt\n" "trên hệ thống của bạn." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "Hãy tải về và cài đặt Bonjour cho Windows từ\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Trang chủ Apple's" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "" "Bonjour hỗ trợ Linux được cung cấp bởi\n" "Avahi" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "Bạn có thể tìm thấy thông tin chi tiết cho phần đóng góp ở đây" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "Chú ý một số hệ thống (Fedora), bạn cần cài đặt\n" "gói avahi-compat-libdns_sf cũng như Avahi để\n" "có thể thực hiện." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "" "Thêm vào đó, nếu bạn có tường lửa, kiểm tra cổng từ 4096-4100 được mở." #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "OK" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "Cài đặt này sẽ có hiệu quả sau khi khởi động %s" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "" #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "" #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "Lỗi khi mở file đính kèm" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "Chèn phân mục mới" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "Chèn ghi chú mới" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "Chèn một tác vụ mới." #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "Không hiển thị hộp thoại này lần nữa" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "Lỗi mở liên kết" taskcoach-1.4.3/i18n.in/zh_CN.po000077500000000000000000005554361265347643000162430ustar00rootroot00000000000000# translation of zh_CN.po to Nederlands # Copyright (C) YEAR ORGANIZATION # # Frank Niessink , 2008. msgid "" msgstr "" "Project-Id-Version: zh_CN\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-06-14 05:27+0000\n" "Last-Translator: Jazz Dong \n" "Language-Team: Nederlands \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "X-Poedit-Country: CHINA\n" "Language: \n" "X-Poedit-Language: Chinese\n" "Generated-By: pygettext.py 1.5\n" "X-Poedit-Bookmarks: 17,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "程序出错,请参见“我的文档”中taskcoachlog.txt文件。" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "错误" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "程序出错。请参见 \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "" "无法从TaskCoach.ini中加载设置:\n" "%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "%s文件错误" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "更改附件路径" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "更改附件 \"%s\" 的路径" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "添加附件" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "往 \"%s\" 中添加附件" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "新建附件" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "删除附件" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "移动附件至 \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "复制" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "复制 \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "删除" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "删除 \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "剪切" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "剪切 \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "粘贴" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "粘贴 \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "作为子条目粘贴" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "粘帖为\"%s\"的子项目" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "拖拽" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "拖拽\"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "编辑主题" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "编辑主题\"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "编辑描述" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "编辑描述\"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "更改图标" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "更改图标\"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "更改字体" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "改变字体\"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "修改前景颜色" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "修改前景颜色\"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "修改背景颜色" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "修改背景颜色\"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "转到分类" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "转到分类\"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "新建分类" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "新建子分类" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "新建子分类\"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "新建子分类" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "编辑互斥子分类" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "编辑互斥子分类\"%s\"" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "删除分类" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "删除分类\"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "拖拽分类" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "新建花费" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "新建花费 \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "删除花费" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "删除花费 \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "更改花费任务" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "更改花费任务 \"%s\"" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "更改花费开始时间" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "更改花费 \"%s\"的开始时间" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "更改花费结束时间" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "更改花费 \"%s\"的结束时间" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "新建便笺" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "新建子注释" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "新建 \"%s\"子注释" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "新建子便笺" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "删除注释" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "删除注释 \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "拖拽注释" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "拖拽注释 \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "添加注解" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "对于 \"%s\" 添加描述" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "添加副描述" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "对于 \"%s\" 添加副描述" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "删除描述" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "从 \"%s\" 中删除描述" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "拖拽任务" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "删除任务" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "删除任务 \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "新建任务" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "新建子任务" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "新建子任务 \"%s\"" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "新建子任务" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "标记任务完成" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "标记 \"%s\"完成" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "标记为活动任务" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "标记\"%s\"为活动任务" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "标记为非活动任务" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "标记\"%s\"为非活动任务" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "开始跟踪" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "开始追踪 \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "停止跟踪" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "停止 \"%s\"追踪" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "最高优先级" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "最高优先级 \"%s\"" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "最低优先级" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "减小\"%s\"为最低优先级" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "提高优先级" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "增加\"%s\"优先级" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "降低优先级" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "减少\"%s\"优先级" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "改变优先级" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "改变\"%s\"优先级" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "为任务增加注释" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "修改计划开始日期" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "修改\"%s\"的计划开始日期" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "改变到期日" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "改变\"%s\"到期日" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "修改实际开始日期" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "修改\"%s\"的实际开始日期" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "改变完成日期" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "改变\"%s\"完成日期" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "改变提醒日期/时间" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "改变\"%s\"提醒日期/时间" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "改变重复" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "改变\"%s\"重复" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "改变\"%s\"完成百分比" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "当任务标记为完成时改变" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "当\"%s\"标记为完成时改变" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "改变预算" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "改变\"%s\"预算" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "改变小时计费" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "改变\"%s\"小时计费" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "改变固定费" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "改变\"%s\"固定费" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "切换必要条件" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "切换\"%s\"必要条件" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "从%s.ini中读取%s-%s设置时发生错误。" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "值为:%s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "错误为:%s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "%s 将使用默认值以便正常运行。" #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "设置错误" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "保存%s.ini:时发生错误:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "保存错误" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "新建附件..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "插入一个新附件" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "打开附件" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "打开选中的附件" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 分钟" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "别打盹" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 分钟" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 分钟" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 dakika" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 分钟" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 小时" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 分钟" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 小时" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 小时" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 小时" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 小时" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 小时" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 小时" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 小时" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 小时" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24 小时" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 小时" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 小时" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "两周" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "一周" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "总计" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "%s 总计" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "&新建花费...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "非活动任务" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "隐藏不活动的任务(&I)" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "非活动任务: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "显示/隐藏非活动任务(无实际开始日期的未完成任务)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "过期任务" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "隐藏过期的任务(&L)" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "过期任务: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "显示/隐藏 过期任务(过去计划开始的非活动任务)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "当前任务" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "活动任务: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "隐藏活动任务(&A)" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "显示/隐藏活动任务(实际开始日期已经过去的未完成任务)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "即将处理的任务" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "即将处理的任务: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "隐藏 即将到期任务(&D)" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "显示/隐藏即将截止的任务(完成日期即将到来的未完成任务)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "超时任务" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "隐藏 超期任务(&O)" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "超期任务: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "显示/隐藏已过期的任务(完成日期已经过去的未完成任务)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "完成的任务" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "已完成任务: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "隐藏已完成任务(&C)" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "显示或隐藏完成任务" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "新建任务(&N)..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "向下箭头" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "向下状态箭头" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "蓝色环形箭头" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "绿色环形箭头" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "向上箭头" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "向上状态箭头" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "炸弹" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "书籍" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "书籍" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "盒" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "瓢虫" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "蛋糕" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "计算器" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "日历" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "猫" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "光盘" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "图表" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "在线聊天" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "选中标记" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "时钟" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "闹钟" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "秒表" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "齿轮" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "齿轮" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "台式计算机" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "笔记本电脑" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "掌上电脑" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "红叉" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "骰子" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "文档" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "蓝色地球" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "绿色地球" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "信封" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "信封" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "蓝色文件夹" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "淡蓝色的文件夹" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "绿色文件夹" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "灰色文件夹" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "橙色文件夹" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "紫色文件夹" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "红色文件夹" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "黄色文件夹" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "蓝色箭头文件夹" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "心形" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "心形" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "绿色房子" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "红色房子" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "钥匙" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "钥匙" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "灯泡" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "问题标记" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "信息" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "红色LED" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "浅蓝LED" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "灰色LED" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "绿色LED" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "浅绿LED" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "橙色LED" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "紫色LED" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "红色LED" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "黄色LED" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "救生圈" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "上锁的锁" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "打开的锁" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "放大镜" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "钢琴" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "音符" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "备注" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "调色板" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "纸夹" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "铅笔" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "个人" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "人" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "标识" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "个人谈话" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "警告标示" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "减" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "加" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "红色星星" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "黄色星星" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "红绿灯" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "垃圾桶" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "闪电" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "伞" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "多云时晴" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "扳手" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "没有图标" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "来自 %s 开发者的信息" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "参见:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "描述" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "编辑改变所有主题" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "主题" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "编辑改变所有描述" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "创建日期" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "修改日期" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "优先级" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "内容互斥" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "子目录" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "编辑改变所有附件位置" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "浏览" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "定位" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "外观" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "前景色" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "背景色" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "字体" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "图标" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "日期" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "计划开始日期" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "到期日期" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "实际开始日期" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "完成日期" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "提醒" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "重复" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "进度" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "已完成百分率" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "使用一般设置" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "否" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "是" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "当任务的所有子任务完成时,是否标记该任务为完成?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "预算" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "时间花费" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "剩余预算" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "每小时报酬" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "固定报酬" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "收入" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "花费" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "分类" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "附件" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "便笺" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "先决条件" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "编辑任务" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "任务" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "开始" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "天" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "小时" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "分钟" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "停止" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "从上次停止时间开始跟踪" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "现在停止跟踪" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "警告:开始必须在结束之前" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "多任务" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (任务)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "多分类" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s(分类)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "多注释" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s(注释)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "多附件" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s(附件)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "多成就" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s(成就)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "所使用字体:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "使用颜色:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "空" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "每天" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "每月" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "每周" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "每年" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "保持日期在相同的工作日" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ",每个" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "停止于" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "重复" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "计划每个下次循环都基于" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "天" #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "周期" #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "周" #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "月" #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "年" #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "导出项目 从:" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "只导出选择的项目" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "导出列:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "在单独的列中放置任务日期和时间" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "将样式信息写入单独的CSS 文件" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "如果待导出 CSS 文件存在, %(name)s 将不覆盖它。这就允许你改变样式信息而不至于下次导出时丢失信息。" #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "导出为 CSV 格式" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "导出为 iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "导出为 HTML 格式" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "导出为 Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "一个 iPhone 或 iPod Touch 正试图\n" "第一次同步这个任务文件,您想要\n" "何种共享方式?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "从桌面刷新" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "从设备刷新" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "取消" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "您开启了 iPhone 同步功能,该功能需要\n" "Bonjour 的支持,但 Bonjour 似乎并未安装。" #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "请从此处下载并安装 Bonjour for Windows:\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple 官方网站" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "Bonjour 对 Linux的支持一般是由 Avahi 提供的。" #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "您可在此找到您发行版的详细信息" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "注意在一些系统下(如 Fedora),您也许还要装\n" " avahi-compat-libdns_sd 软件包以便 Avahi 能正常工作。" #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "特别地,如果有防火墙,请确保 4096 至 4100 端口开启。" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "确定" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "此设置在 %s 重启后才能起效" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "文件" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "每次修改后自动保存" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" "请尝试对日程文件进行实时检测。Try to detect changes to the task file in real time.\n" "不要在对网络共享的文件进行检测。Do not check this if your task file is on a network share.\n" "改变此项后,请刮起 %s。" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "" "保存设置 (%s.ini) 到\n" "程序的安装目录中" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "从移动存储运行 %s" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "附件相对目录基于" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "添加新附件是,尝试使用相对路径。" #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "保存前,自动导入" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt 格式" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "保存前,%s 会自动从Todo.txt文件导入\n" "同名任务文件中的任务。\n" "extension.txt文件除外" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "保存时,自动导出" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "保存时,%s 会自动向同名任务文件导出\n" "Todo.txt文件格式的任务清单。\n" "extension.txt文件除外" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "窗口行为" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "启动时显示启动画面" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "启动时弹出提示窗口" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "启动时主窗缩小为图标" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "总是" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "从不" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "如果上一次关闭时是图标状态" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "启动时检查新版本%(name)s" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "检查启动时 %(name)s 的开发者提供的信息" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "当图标化时隐藏主窗口" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "当关闭时最小化窗口" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "当跟踪花费时,让闹钟显示在任务提示栏" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "语言" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "让系统决定语言" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "如果你使用的语言选择不可用,或者翻译不完善,请考虑寻求帮助,参见:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "未发现语言包?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "任务图示设置" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "此外观设置可在任务编辑框中被任务本身的设置覆盖。" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "特点" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "此标签页的所有设置需重启 %s 才能生效" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "启用SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "开启 iPhone 同步" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "使用 X11 进行会话管理" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "工作周开始" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "星期一" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "星期日" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "工作日的起始时间" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "工作日的结束时间" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "一天的结束" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "在日历视图使用渐变色" #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "预设时间间隔的分钟数" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "在时间选择弹出菜单中(如设置一项实施的起始时间) \n" "%(name)s 将使用这些设置建议时间选择。分钟数字越小,越多\n" "建议使用。当然,你也可以输入建议时间间隔内任意你想使用\n" "的时间。" #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "空闲时间通告" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "当鼠标悬停时弹出气泡显示项目的说明。" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "任务日期设置" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "当所有子任务完成时将父任务标记为完成" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "任务处于'即将截止'的小时数" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "无" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "改变已计划的开始日期为到期日期" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "改变到期日期为已计划的开始日期" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "如果开始日期和到期日期之一变化,另外一个怎么改变" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "预设" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "计划" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "今天" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "明天" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "后天" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "下周五" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "下周一" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "上班前" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "上班后" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "当前时间" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "下班前" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "默认计划开始日期和时间" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "默认到期日期和时间" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "默认实际开始日期和时间" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "默认完成日期和时间" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "默认提醒日期和时间" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "任务提醒" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "用于提醒的通知系统" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "允许计算机发出闹铃" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "需要e-Speak语音合成器" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "默认闹铃后的懒觉时间" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "任务提醒对话框的容忍时间" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "同 iPhone 同步的密码" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour 服务名" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "将所有任务上传到设备" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "显示同步化日志" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "编辑器" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "在编辑器中检查拼写" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s 提醒 - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "提醒日期/时间" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "打盹" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "标记任务已完成" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML 信息同步服务器" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "定制" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo同步服务 (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML服务器的URL" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "用户名/ID" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "启用任务同步" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "任务数据库名称" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "首选同步模式" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "两种土建" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "慢" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "来自客户端的办法" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "从客户端刷新" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "来自服务器的办法" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "从服务器端刷新" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "启用便笺同步" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "便笺数据库名称" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "存取权限" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "新任务模板" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "预览" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "" #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "分隔符" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "间距符" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "如有新版本便提示我" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "新版本%(name)s可用" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "你用的是 %(name)s 版本为 %(currentVersion)s" #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s 的 %(version)s 版本已可用" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s 为最新的" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s 为最新版本 %(version)s。" #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "当前已是最新版本" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "没有找到%(name)s最新版本信息" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "预发行版本" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "你正使用%(name)s 预览版本%(currentVersion)s。" #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "%(name)s最新的发行版本为%(version)s。" #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "警告" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach 发现 XFCE4 会话管理问题.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "如果启动时发现随机性的停滞,请在“优先\"选项卡取消选定\n" "“使用 X11 会话管理”。\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "启动时不显示本对话框。" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "" "从%s起无用户输入。以下任务已\n" "被追踪:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "不处理" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "在%s停止" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "在%s停止并立即恢复" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "通知" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s 文件 (*.tsk)|*.tsk|所有文件 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "%s 文件 (*.tsk)|*.tsk|备份文件 (*.tsk.bak)|*.tsk.bak|所有文件 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar文件(*.ics)|*.ics|所有文件(*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML文件(*.html)|*.html|所有文件(*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV文件(*.csv)|*.csv|文本文件(*.txt)|*.txt|所有文件(*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt 文件 (*.txt)|*.txt|所有文件 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "打开" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "从 %(filename)s 中装入 %(nrtasks)d 条任务" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "无法打开%s,因为它不存在。" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "合并" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "无法打开 %(filename)s ,已被锁。" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "已合并 %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "另存为" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "保存选区" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "无法保存 %s ,已被另一个 %s 的实例锁住了。\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "无法保存 %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "导入模板" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "%s 模板文件(*.tsktmpl)|*.tsktmpl" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "无法导入模板 %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "已将 %(count)d 条条目到文件 %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "结束同步" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "同步状态" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "无法打开 %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "%s 已存在。\n" "要代替它吗?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "存在未保存的修改。\n" "在关闭前保存吗?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s: 保存修改?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" "%s被锁定,无法打开。\n" "\n" "这表示有另外一个TaskCoach实例在运行并打开此文件,\n" "或者是此前Task Coach发生崩溃。如果没有其他实例\n" "运行,你可以安全解锁。\n" "\n" "是否现在解锁?" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s :文件已锁定" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" "因为不支持,无法锁定\n" "位置%s.\n" "不锁定打开%s?" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "%s 已关闭" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "保存 %(nrtasks)d 条任务到 %(filename)s" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" "无法打开 %(filename)s\n" "因为它是被一个更新的版本创建的: %(name)s。\n" "请升级 %(name)s。" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "当读取%s时出错\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "正在同步..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "正在与 %s 同步..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "欢迎使用 %(name)s 版本 %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "同步类型" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" "有iPhone或iPod触摸设备试图同步到此\n" "任务文件,但协议握手失败,请发送\n" "错误报告。" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "文件(&F)" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "编辑(&E)" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "视图(&V)" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "新建(&N)" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "操作(&A)" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "帮助(&H)" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "导入(&I)" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "导出(&E)" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "选择(&S)" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "新建视图(N)" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "激活(&A) 下一个视图\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "激活(&p)前一个视图\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "过滤器(&F)" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "排序(&S)" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "列(&C)" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "舍取整数(&R)" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "树选项(&T)" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "工具条(&o)" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "显示/隐藏状态栏" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "状态条(&b)" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "任务(&T)" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "为显示任务打开一个新标签" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "任务饼图 (&s)" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "打开新标签页以显示任务统计表" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "任务地图(&s)" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "打开新的直方图页面" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "时间轴(_T)" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "打开新的任务和工作量时间轴的视图页面" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "日历" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "打开新标签页以显示任务日历" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "分类(&C)" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "打开一个新标签页并以视图方式显示分类" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "&E花费" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "打开新的显示工作量的视图页面" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "打开新标签页以显示选定任务进展" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "注释(&N)" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "打开一个新标签页并以视图方式显示便笺" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "隐藏(&H)" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "隐藏工具条" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "小图片(&S)" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "在工具条显示小图片(16x16)" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "中等图片(&M)" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "在工具条上使用中等图片(22x22)" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "大图片(&L)" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "在工具条上使用大图片(32x32)" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "从模板新建任务 (&t)" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "改变分类 (&T)" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "更改任务优先级 (&P)" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "开始跟踪花费(&S)" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (子种类)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (子任务)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "优先级(&P)" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "页面" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s的提醒" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d任务过期" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "一个任务过期" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d 个任务即将到期" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "一个任务即将到期" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "跟踪\"%s\"" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "跟踪 %d 任务的花费" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "打开(&O)...\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "打开 %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "融合(&M)..." #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "将别一个文件与当前文件进行融合" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "关闭(&C)\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "保存(&S)\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "另存为(&A)...\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "保存选定任务为模板(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "保存选定任务为任务模板" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "导入模板(&I)..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "从模板文件导入新模板" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "编辑模板..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "编辑现存模板" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "编辑模板" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "清除已删除条目(&P)" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "彻底删除被删除的任务和注释(详见帮助中SyncML章节)" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" "清除已删除的项目是不可逆的。\n" "但如果您要再次在您上次使用的\n" "服务器上开启 SyncML 功能,\n" "这些条目或许会回来。\n" "\n" "您还想清除吗?" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "页面设置 (&P)...\tShift+Ctrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "打印预览 (&P)..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "显示打印预览" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "打印预览" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "打印 (&P)...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "输出为HTML...(&H)" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "使用HTML格式导出显示条目" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "输出为CSV...(&C)" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "使用逗号分隔值(CSV)格式导出显示条目" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "导出为&iCalendar..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "使用日历数据交换(iCalendar)格式导出显示条目" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "导出为Todo.txt...(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "使用格式导出显示条目(参见 todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "导入 CSV... (&I)" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "从逗号分隔值(CSV)文件导入任务表" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "导出 CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "已选择文件为空,请选中别的文件。" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "导入 Todo.txt... (&I)" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "从Todo.txt文件导入任务表 (参见 todotxt.com)" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "导入 Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "SyncML 同步化...(&y)" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "和 SyncML 服务器同步" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "退出(&Q)\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "撤销(&U)" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "重做(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "剪切(&t)\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "拷贝(&C)\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "粘贴(&P)\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "粘贴为自条目(&a)\tShift+Ctrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "设置(&P) ... \tAlt+P" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "设置" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "同步协议(&S) 属性..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "编辑 SyncML 首选项" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "同步协议属性" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "全部(&A)\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "清除选择(&C)" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "不选所有条目" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "清除所有过滤器 (&C)\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "重置所有分类 (&R) \tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "显示/隐藏归属于 %s 的条目" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "重命名视图...(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "重命名所选视图" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "为视图定义新标题" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "重命名视图" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "隐藏此栏" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "隐藏所选栏" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "展开所有条目(&E)\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "折叠所有条目(&C)\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "升序(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "升序(选中)或降序(不选中)排序" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "区分大小写排序(&c)" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "在比较文本时,排序是大小写敏感(选中)或不敏感(不选中)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "按第一个状态排序(&f)" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "按第一个状态(活动/非活动/已完成)对任务进行排序" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "隐藏混合任务(&o)" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "在列表模式下显示/隐藏子任务" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "编辑...(&E)\tRETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "编辑选择项" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "编辑已追踪任务 (&t)...\tShift-Alt-T" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "编辑当前已追踪任务" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "删除 (&D) \tCtrl+DEL" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "删除选择项" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "从模板创建新任务" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "新建任务于选定分类(&c)..." #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "插入任务于选定分类选取任务" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "新建任务(&p)..." #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "插入任务以选定任务为先导任务" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "插入新任务且以已选任务为依赖任务" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "新建子条目(&s)..." #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "新建子任务(&s)..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "新建副注释(&s)..." #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "新建子分类(&s)..." #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "在选定子条目处插入新子条目" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "(&a)\tAlt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "标记选定任务为活跃任务" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "(&i)标记为非活动任务\tCtrl+Alt+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "标记选定任务为非活跃任务" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "标记任务为已完成(&c)\tCtrl+RETURN" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "标记所选任务完成" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "最高优先级\tShift+Ctrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "最低优先级\tShift+Ctrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "上调一级优先级\tCtrl+I" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "下调一级优先级\tCtrl+D" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "套选 %s" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "发电子邮件...\tCtrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "邮件(&M)...\tShift-Ctrl-M" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "几件事" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "和" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" "无法发送电子邮件:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "%s 邮件错误" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "增加注释...(n)\tCtrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "打开所有注释...\tShift+Ctrl+B" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "开始跟踪进度(&S)\tCtrl-T" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "开始跟踪已选任务进度" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "(无主题)" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "开始跟踪%s进度" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "通过菜单选择一个任务并开始跟踪它的进度" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "停止跟踪或者恢复跟踪\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "停止跟踪%s(&o)\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "停止跟踪活动任务的花费" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "恢复跟踪%s(&R)\tShift+Ctrl+T" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "恢复跟踪最近跟踪任务的进度" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "多重任务" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "新建分类...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "新建注释...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "为所选分类新建注释(&n)..." #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "向选定目录添加一条新的注释" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "添加附件(&A)...\tShift-Ctrl-A" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "打开附件有错" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "打开所有附件(&O)...\tShift+Ctrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "帮助内容(&H)\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "帮助内容(&H)\tCtrl+H" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "帮助" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "提示(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "程序提示" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "匿名的" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "匿名化一个任务文件并附加到软件故障报告" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "你的任务文件已被匿名存储到:" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "已完成" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "关于 %s (&A)" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "关于 %s 的版本和联系信息" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "关于%s" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "许可证(&L)" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s 许可证" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "检查更新" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "检查新版本%s的可用性" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" "不能打开链接地址:\n" "%s" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "%s 链接地址错误" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "常见问题(&F)" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "浏览常见问题和答案" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "报告软件错误...(&b)" #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "报告软件错误或浏览已知错误列表" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "申请一个软件功能(&f)..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "申请新软件功能或对已有功能申请投票" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "请求技术支持(&s)..." #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "向开发者请求用户技术支持" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "帮助改进翻译(&t)..." #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "帮助改进%s的翻译" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "捐赠(&D)..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "捐助用于支持%s的开发工作" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "还原(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "恢复窗口为它以前的状态" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "花费细节" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "每天花费" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "每月花费" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "每周花费" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "从所有已选目录中筛选" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "从任一已选目录中筛选" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "选中时,筛选器按所有选中分类,否则按任一选中分类" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "配置(&C)" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "设置日历查看器" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "下一时段(&N)" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "显示下一时段" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "(&P)上一周期" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "显示前一时段" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "今天(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "显示今天" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "自动化列尺寸" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "选定时,自动化列尺寸将填充到当前可用空间" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "不允许舍入取整" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "1 分钟" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "%d 分钟" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "总是向上取整(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "总是向上取整到再一个增幅(&A)" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "文件系统" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "按主题排序" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "主题(&j)" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "按描述排序" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "描述(&D)" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "显示/隐藏描述栏" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "注释(&N)" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "显示/隐藏注释列" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "附件(&A)" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "显示/隐藏附件列" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "分类:选择%d,总共%d" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "状态:过滤掉%d" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "时期" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "全部花费时间" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "全部收入" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "星期二" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "星期三" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "星期四" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "星期五" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "星期六" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "分类(&C)" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "显示/隐藏分类栏" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "时间花费(&T)" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "显示或隐藏时间花费列" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "收入(&R)" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "显示或隐藏收入列" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "(&T)总时间投入" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "显示/隐藏总时间投入栏" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "(&T)总收益" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "显示或隐藏全部收入列" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "每工作日时间投入" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "显示/隐藏每工作日时间投入栏" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "状态:%d 跟踪中" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "按主题对类别排序" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "按描述对类别排序" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "按主题对附件排序" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "附件按描述排序" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "附件按分类排序" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "注释按主题排序" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "注释按描述排序" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "注释按分类排序" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "按主题对任务排序" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "任务按描述排序" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "任务按分类排序" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "任务按预计开始日期排序" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "(&P)预计开始日期" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "按到期日期对任务排序" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "到期日期(&D)" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "按完成日期对任务排序" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "完成日期(&C)" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "任务按前置任务排序" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "先决条件(&P)" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "任务按依赖任务排序" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "任务按剩余时间排序" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "剩余时间(&T)" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "任务按完成率排序" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "(&P)完成率" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "按循环次数排序任务" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "重复(&R)" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "按预算对任务排序" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "预算(&B)" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "按花费时间对任务排序" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "剩余预算(&l)" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "按剩余预算对任务排序" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "按优先级对任务排序" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "按小时报酬对任务排序" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "小时报酬(&H)" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "按固定报酬对任务排序" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "固定报酬(&F)" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "按收入对任务排序" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "按提示日期和时间排列任务" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "提示(&R)" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "主题(&S)" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "注释按分类排序" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "便笺:选择%d,总共%d" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "状态:n/a" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "任务:%d 选中,%d 可见,%d 总数" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "状态: %d 逾期, %d 滞后, %d 停滞, %d 完成" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "任务" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "时间轴" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "现在" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "任务方框图" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "配置日历视图" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "剩余时间" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "日期(&D)" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "所有数据列(&A)" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "显示或隐藏所有日期相关列" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "显示/隐藏计划开始日期列" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "显示或隐藏到期日期列" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "实际开始时间(&A)" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "显示/隐藏实际开始日期列" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "显示或隐藏日期列" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "显示/隐藏剩余时间列" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "显示/隐藏循环重复列" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "所有预算列(&A)" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "显示或隐藏预算相关列" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "显示或隐藏预算列" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "显示或隐藏剩余预算" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "金融(&F)" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "显示或隐藏金融相关列" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "显示或隐藏小时报酬列" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "显示或隐藏固定报酬列" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "显示/隐藏先决条件列" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "显示/隐藏完成百分比列" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "显示/隐藏附件栏" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "显示或隐藏优先级列" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "显示/隐藏提示栏" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "任务统计" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "逗号" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "DD/MM (日在前)" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "MM/DD (月份在前)" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "单引号" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "双引号" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "仅导入选中行" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "分隔符" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "日期格式" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "请选择一个文件。" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "分类" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "提示日期" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "完成百分比" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "CSV文件列标题" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "%s 属性" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "\"%s\" 字段不能多次选择。" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "\"%s\" 字段不能多次选择。" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "内容目录" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "关于任务" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "任务属性" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "任务状态" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "任务颜色" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "提醒" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "关于分类" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "分类属性" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "关于注释" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "注释参数" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "打印和输出" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "关于打印和导出" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "关于 E-mail 集成" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "从E-mail 创建一个任务" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "SyncML 支持" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "什么是SyncML" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "清除已删除条目" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone 和 iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "设置" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "Android" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "导出 todo.txt" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "任务模板" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "关于模板" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "使用模板" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "图形用户界面" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "键盘快捷键" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "任务有如下属性可以更改:" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "主题:概况整个任务的单一行。" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "描述:任务的一个多行描述。" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" "完成日期:任务完成的日期。 \n" "此项可以为“无”,代表本任务无固定的完成日期。" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" "实际开始日期:项目真正实际开始的日期。\n" "实际开始日期可以直接编辑,但是也可以在跟踪投入费用时被设定,或者在 \n" "设定一个0%~100%间的百分比时被设定。" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "" #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "插入一个新分类" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "剪切选中项目到剪粘板" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "拷贝选中项目到剪贴板" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "从剪贴板粘贴项目" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "编辑参数" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "重做最后一条被撤销的命令" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "选择所有当前视图中的条目" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "撤销上次命令" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "给选中的任务增加花费时段" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "对选中的任务开始跟踪花费" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "关闭当前文件" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "退出 %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "打开 %s 文件" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "保存当前文件" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "保存当前文件为新文件名" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "关于程序的帮助" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "插入一个新的便笺" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "打印当前文件" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "设置打印页特性" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "显示所有条目(重设所有过滤器)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "降低所选任务的优先级" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "提高所选任务的优先级" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "将所选任务的优先级设为最高" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "将所选任务的优先级设为最低" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "插入一个新的任务" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "折叠所有带有子条目的条目" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "展开所有带有子条目的条目" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "激活下一个打开的视图" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "激活前一个打开的视图" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "新建任务 %s" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "删除任务 %s" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "修改任务 %s" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "新建花费 %s" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "修改花费 %s" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "每 %(frequency)d 天" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "每 %(frequency)d 周" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "每 %(frequency)d 月" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "每 %(frequency)d 年" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "其它任何一天" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "其它任何一周" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "其它任何月份" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "其它任何年度" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "现在" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "所有文件(*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "密码:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "请输入您的密码。" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "请输入您的密码" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "区分大小写(&M)" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "最近搜索" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" "SynML被禁用,因为该模块\n" "无法加载。可能是因为系统\n" "不支持,或在Windows系统下\n" "缺少必要的DLL文件,请参考\n" "联机帮助文件中SyncML部分(Troubleshooting下)" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "不再显示该对话框" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "打开URL错误" #~ msgid "&Delete\tDEL" #~ msgstr "删除 (&D) \tDEL" taskcoach-1.4.3/i18n.in/zh_TW.po000066400000000000000000005463211265347643000162630ustar00rootroot00000000000000# Traditional Chinese translation for taskcoach # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the taskcoach package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: taskcoach\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-06-13 22:42+0000\n" "PO-Revision-Date: 2015-03-31 11:49+0000\n" "Last-Translator: E-Cheng Cheng \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-01-30 14:28+0000\n" "X-Generator: Launchpad (build 17908)\n" "Language: \n" #: taskcoachlib/application/application.py:67 msgid "" "Errors have occured. Please see \"taskcoachlog.txt\" in your \"My " "Documents\" folder." msgstr "發生錯誤。請參考位於文件資料匣中的 \"taskcoachlog.txt\" 檔案內容。" #: taskcoachlib/application/application.py:67 #: taskcoachlib/application/application.py:69 #: taskcoachlib/gui/dialog/attributesync.py:91 #: taskcoachlib/gui/mainwindow.py:114 taskcoachlib/gui/mainwindow.py:402 #: taskcoachlib/iphone/protocol.py:552 taskcoachlib/widgets/draganddrop.py:123 #: taskcoachlib/widgets/draganddrop.py:165 taskcoachlib/widgets/password.py:88 msgid "Error" msgstr "錯誤" #: taskcoachlib/application/application.py:69 msgid "Errors have occured. Please see \"%s\"" msgstr "有錯誤發生. 請參見 \"%s\"" #: taskcoachlib/application/application.py:358 msgid "" "Couldn't load settings from TaskCoach.ini:\n" "%s" msgstr "無法從 TaskCoach.ini 載入設定檔:%s" #: taskcoachlib/application/application.py:359 #: taskcoachlib/gui/iocontroller.py:73 msgid "%s file error" msgstr "檔案 %s 發生錯誤" #: taskcoachlib/changes/sync.py:83 msgid "Task Coach" msgstr "塔斯克教練" #: taskcoachlib/changes/sync.py:143 taskcoachlib/changes/sync.py:196 msgid "\"%s\" became top-level because its parent was locally deleted." msgstr "\"%s\" 變成最上層 因為它所隸屬的上層被刪除了" #: taskcoachlib/changes/sync.py:467 msgid "" "Conflicts detected for \"%s\".\n" "The local version was used." msgstr "偵測到衝突 \"%s\"" #: taskcoachlib/command/attachmentCommands.py:28 msgid "Edit location of attachments" msgstr "編輯附件的位置" #: taskcoachlib/command/attachmentCommands.py:29 msgid "Edit attachment \"%s\" location" msgstr "編輯附件 \"%s\"的位置" #: taskcoachlib/command/attachmentCommands.py:53 #: taskcoachlib/widgets/dialog.py:164 msgid "Add attachment" msgstr "新增附件" #: taskcoachlib/command/attachmentCommands.py:54 msgid "Add attachment to \"%s\"" msgstr "增加附件到 \"%s\"" #: taskcoachlib/command/attachmentCommands.py:59 msgid "New attachment" msgstr "新增附件" #: taskcoachlib/command/attachmentCommands.py:94 msgid "Remove attachment" msgstr "移除附件" #: taskcoachlib/command/attachmentCommands.py:95 msgid "Remove attachment to \"%s\"" msgstr "移除附件到 \"%s\"" #: taskcoachlib/command/base.py:192 msgid "Copy" msgstr "複製" #: taskcoachlib/command/base.py:193 msgid "Copy \"%s\"" msgstr "複製 \"%s\"" #: taskcoachlib/command/base.py:207 msgid "Delete" msgstr "刪除" #: taskcoachlib/command/base.py:208 msgid "Delete \"%s\"" msgstr "刪除 \"%s\"" #: taskcoachlib/command/base.py:243 msgid "Cut" msgstr "剪下" #: taskcoachlib/command/base.py:244 msgid "Cut \"%s\"" msgstr "剪下 \"%s\"" #: taskcoachlib/command/base.py:277 msgid "Paste" msgstr "貼上" #: taskcoachlib/command/base.py:278 msgid "Paste \"%s\"" msgstr "貼上 \"%s\"" #: taskcoachlib/command/base.py:313 msgid "Paste as subitem" msgstr "貼為子項目" #: taskcoachlib/command/base.py:314 msgid "Paste as subitem of \"%s\"" msgstr "貼為 \"%s\" 的子項目" #: taskcoachlib/command/base.py:326 taskcoachlib/gui/dialog/toolbar.py:134 msgid "Drag and drop" msgstr "拖放" #: taskcoachlib/command/base.py:327 msgid "Drag and drop \"%s\"" msgstr "拖曳 \"%s\"" #: taskcoachlib/command/base.py:442 msgid "Edit subjects" msgstr "編輯主題" #: taskcoachlib/command/base.py:443 msgid "Edit subject \"%s\"" msgstr "編輯主題 \"%s\"" #: taskcoachlib/command/base.py:467 msgid "Edit descriptions" msgstr "編輯描述" #: taskcoachlib/command/base.py:468 msgid "Edit description \"%s\"" msgstr "編輯描述 \"%s\"" #: taskcoachlib/command/base.py:492 msgid "Change icons" msgstr "更改圖示" #: taskcoachlib/command/base.py:493 msgid "Change icon \"%s\"" msgstr "更改圖示 \"%s\"" #: taskcoachlib/command/base.py:522 msgid "Change fonts" msgstr "更改字型" #: taskcoachlib/command/base.py:523 msgid "Change font \"%s\"" msgstr "更改字型\"%s\"" #: taskcoachlib/command/base.py:577 msgid "Change foreground colors" msgstr "更改背景顏色" #: taskcoachlib/command/base.py:578 msgid "Change foreground color \"%s\"" msgstr "更改背景顏色\"%s\"" #: taskcoachlib/command/base.py:590 msgid "Change background colors" msgstr "更改背景顏色" #: taskcoachlib/command/base.py:591 msgid "Change background color \"%s\"" msgstr "更改背景顏色\"%s\"" #: taskcoachlib/command/categorizableCommands.py:25 msgid "Toggle category" msgstr "切換類別" #: taskcoachlib/command/categorizableCommands.py:26 msgid "Toggle category of \"%s\"" msgstr "切換類別 \"%s\"" #: taskcoachlib/command/categoryCommands.py:26 #: taskcoachlib/command/categoryCommands.py:29 msgid "New category" msgstr "新增類別" #: taskcoachlib/command/categoryCommands.py:41 msgid "New subcategories" msgstr "新建子分類" #: taskcoachlib/command/categoryCommands.py:42 msgid "New subcategory of \"%s\"" msgstr "新建子分類 \"%s\"" #: taskcoachlib/command/categoryCommands.py:45 msgid "New subcategory" msgstr "新增子類別" #: taskcoachlib/command/categoryCommands.py:58 msgid "Edit exclusive subcategories" msgstr "編輯專用子分類" #: taskcoachlib/command/categoryCommands.py:59 msgid "Edit exclusive subcategories of \"%s\"" msgstr "編輯 \"%s\" 的專用子分類" #: taskcoachlib/command/categoryCommands.py:83 msgid "Delete categories" msgstr "刪除分類" #: taskcoachlib/command/categoryCommands.py:84 msgid "Delete category \"%s\"" msgstr "刪除分類 \"%s\"" #: taskcoachlib/command/categoryCommands.py:88 msgid "Drag and drop categories" msgstr "拖曳分類" #: taskcoachlib/command/effortCommands.py:25 msgid "New efforts" msgstr "新建工作" #: taskcoachlib/command/effortCommands.py:26 msgid "New effort of \"%s\"" msgstr "新建工作 \"%s\"" #: taskcoachlib/command/effortCommands.py:64 msgid "Delete efforts" msgstr "刪除工作" #: taskcoachlib/command/effortCommands.py:65 msgid "Delete effort \"%s\"" msgstr "刪除工作 \"%s\"" #: taskcoachlib/command/effortCommands.py:72 msgid "Change task of effort" msgstr "更改工作任務" #: taskcoachlib/command/effortCommands.py:73 msgid "Change task of \"%s\" effort" msgstr "更改 \"%s\"工作的任務" #: taskcoachlib/command/effortCommands.py:100 msgid "Change effort start date and time" msgstr "更改工作開始日期和時間" #: taskcoachlib/command/effortCommands.py:101 msgid "Change effort start date and time of \"%s\"" msgstr "更改 \"%s\"工作開始日期和時間" #: taskcoachlib/command/effortCommands.py:135 msgid "Change effort stop date and time" msgstr "更改工作停止日期和時間" #: taskcoachlib/command/effortCommands.py:136 msgid "Change effort stop date and time of \"%s\"" msgstr "更改 \"%s\"工作停止日期和時間" #: taskcoachlib/command/noteCommands.py:26 #: taskcoachlib/command/noteCommands.py:29 #: taskcoachlib/command/noteCommands.py:73 msgid "New note" msgstr "新增備註" #: taskcoachlib/command/noteCommands.py:40 msgid "New subnotes" msgstr "新建子註解" #: taskcoachlib/command/noteCommands.py:41 msgid "New subnote of \"%s\"" msgstr "新建子註解 \"%s\"" #: taskcoachlib/command/noteCommands.py:44 #: taskcoachlib/command/noteCommands.py:118 msgid "New subnote" msgstr "新增子註記" #: taskcoachlib/command/noteCommands.py:56 msgid "Delete notes" msgstr "刪除註解" #: taskcoachlib/command/noteCommands.py:57 msgid "Delete note \"%s\"" msgstr "刪除註解 \"%s\"" #: taskcoachlib/command/noteCommands.py:61 msgid "Drag and drop notes" msgstr "拖曳註解" #: taskcoachlib/command/noteCommands.py:62 msgid "Drag and drop note \"%s\"" msgstr "拖曳註解 \"%s\"" #: taskcoachlib/command/noteCommands.py:66 msgid "Add note" msgstr "增加註解" #: taskcoachlib/command/noteCommands.py:67 msgid "Add note to \"%s\"" msgstr "增加註解到 \"%s\"" #: taskcoachlib/command/noteCommands.py:110 msgid "Add subnote" msgstr "增加子註解" #: taskcoachlib/command/noteCommands.py:111 msgid "Add subnote to \"%s\"" msgstr "增加子註解 \"%s\"" #: taskcoachlib/command/noteCommands.py:153 msgid "Remove note" msgstr "移除註解" #: taskcoachlib/command/noteCommands.py:154 msgid "Remove note from \"%s\"" msgstr "從\"%s\"移除註解" #: taskcoachlib/command/taskCommands.py:61 msgid "Drag and drop tasks" msgstr "拖曳任務" #: taskcoachlib/command/taskCommands.py:107 msgid "Delete tasks" msgstr "刪除任務" #: taskcoachlib/command/taskCommands.py:108 msgid "Delete task \"%s\"" msgstr "刪除任務 \"%s\"" #: taskcoachlib/command/taskCommands.py:147 #: taskcoachlib/command/taskCommands.py:150 msgid "New task" msgstr "新增工作" #: taskcoachlib/command/taskCommands.py:185 msgid "New subtasks" msgstr "新子任務" #: taskcoachlib/command/taskCommands.py:186 msgid "New subtask of \"%s\"" msgstr "\"%s\"的新子任務" #: taskcoachlib/command/taskCommands.py:190 msgid "New subtask" msgstr "新增子工作" #: taskcoachlib/command/taskCommands.py:218 msgid "Mark tasks completed" msgstr "標記任務已完成" #: taskcoachlib/command/taskCommands.py:219 msgid "Mark \"%s\" completed" msgstr "標記 \"%s\" 已完成" #: taskcoachlib/command/taskCommands.py:245 msgid "Mark task active" msgstr "將任務標示為活動中" #: taskcoachlib/command/taskCommands.py:246 msgid "Mark \"%s\" active" msgstr "將k \"%s\"標示為活動" #: taskcoachlib/command/taskCommands.py:270 msgid "Mark task inactive" msgstr "將任務標示為靜止" #: taskcoachlib/command/taskCommands.py:271 msgid "Mark \"%s\" inactive" msgstr "將k \"%s\" 標示為靜止" #: taskcoachlib/command/taskCommands.py:295 msgid "Start tracking" msgstr "開始追蹤" #: taskcoachlib/command/taskCommands.py:296 msgid "Start tracking \"%s\"" msgstr "開始追縱 \"%s\"" #: taskcoachlib/command/taskCommands.py:330 msgid "Stop tracking" msgstr "停止追蹤" #: taskcoachlib/command/taskCommands.py:331 msgid "Stop tracking \"%s\"" msgstr "停止追縱 \"%s\"" #: taskcoachlib/command/taskCommands.py:375 msgid "Maximize priority" msgstr "最大優先權" #: taskcoachlib/command/taskCommands.py:376 msgid "Maximize priority of \"%s\"" msgstr "\"%s\"的最高優先" #: taskcoachlib/command/taskCommands.py:385 msgid "Minimize priority" msgstr "最小優先權" #: taskcoachlib/command/taskCommands.py:386 msgid "Minimize priority of \"%s\"" msgstr "最小化 \"%s\"的優先權" #: taskcoachlib/command/taskCommands.py:415 msgid "Increase priority" msgstr "提昇優先權" #: taskcoachlib/command/taskCommands.py:416 msgid "Increase priority of \"%s\"" msgstr "提高 \"%s\"的優先權" #: taskcoachlib/command/taskCommands.py:421 msgid "Decrease priority" msgstr "降低優先權" #: taskcoachlib/command/taskCommands.py:422 msgid "Decrease priority of \"%s\"" msgstr "降低 \"%s\"的優先權" #: taskcoachlib/command/taskCommands.py:427 msgid "Change priority" msgstr "更改優先權" #: taskcoachlib/command/taskCommands.py:428 msgid "Change priority of \"%s\"" msgstr "更改 \"%s\"的優先權" #: taskcoachlib/command/taskCommands.py:450 msgid "Add note to tasks" msgstr "新增註解到任務上" #: taskcoachlib/command/taskCommands.py:532 msgid "Change planned start date" msgstr "更改計畫的開始日期" #: taskcoachlib/command/taskCommands.py:533 msgid "Change planned start date of \"%s\"" msgstr "更改 \"%s\"德計畫開始日期" #: taskcoachlib/command/taskCommands.py:553 msgid "Change due date" msgstr "更改到期日" #: taskcoachlib/command/taskCommands.py:554 msgid "Change due date of \"%s\"" msgstr "更改\"%s\"的到期日" #: taskcoachlib/command/taskCommands.py:574 msgid "Change actual start date" msgstr "更改實際的開始日期" #: taskcoachlib/command/taskCommands.py:575 msgid "Change actual start date of \"%s\"" msgstr "更改 \"%s\"的實際開始日期" #: taskcoachlib/command/taskCommands.py:595 msgid "Change completion date" msgstr "更改完成日期" #: taskcoachlib/command/taskCommands.py:596 msgid "Change completion date of \"%s\"" msgstr "更改\"%s\"的完成日期" #: taskcoachlib/command/taskCommands.py:619 msgid "Change reminder dates/times" msgstr "更改提醒日期/時間" #: taskcoachlib/command/taskCommands.py:620 msgid "Change reminder date/time of \"%s\"" msgstr "更改\"%s\"的提醒日期/時間" #: taskcoachlib/command/taskCommands.py:632 msgid "Change recurrences" msgstr "更改重複" #: taskcoachlib/command/taskCommands.py:633 msgid "Change recurrence of \"%s\"" msgstr "更改 \"%s\"的重複" #: taskcoachlib/command/taskCommands.py:656 msgid "Change percentage complete of \"%s\"" msgstr "更改\"%s\"的完成百分比" #: taskcoachlib/command/taskCommands.py:682 msgid "Change when tasks are marked completed" msgstr "當任務被標示為完成時更改" #: taskcoachlib/command/taskCommands.py:683 msgid "Change when \"%s\" is marked completed" msgstr "當 \"%s\"被標示為完成時更改" #: taskcoachlib/command/taskCommands.py:705 msgid "Change budgets" msgstr "更改預算" #: taskcoachlib/command/taskCommands.py:706 msgid "Change budget of \"%s\"" msgstr "更改\"%s\"的預算" #: taskcoachlib/command/taskCommands.py:728 msgid "Change hourly fees" msgstr "更改每小時費用" #: taskcoachlib/command/taskCommands.py:729 msgid "Change hourly fee of \"%s\"" msgstr "更改 \"%s\"的每小時費用" #: taskcoachlib/command/taskCommands.py:751 msgid "Change fixed fees" msgstr "更改固定費用" #: taskcoachlib/command/taskCommands.py:752 msgid "Change fixed fee of \"%s\"" msgstr "更改\"%s\"的固定費用" #: taskcoachlib/command/taskCommands.py:774 msgid "Toggle prerequisite" msgstr "切換先決條件" #: taskcoachlib/command/taskCommands.py:775 msgid "Toggle prerequisite of \"%s\"" msgstr "切換 \"%s\"的先決條件" #: taskcoachlib/config/settings.py:268 msgid "Error while reading the %s-%s setting from %s.ini." msgstr "當從 %s.ini 讀取 %s-%s 的設定時發生錯誤" #: taskcoachlib/config/settings.py:269 msgid "The value is: %s" msgstr "值為: %s" #: taskcoachlib/config/settings.py:270 msgid "The error is: %s" msgstr "錯誤為: %s" #: taskcoachlib/config/settings.py:271 msgid "" "%s will use the default value for the setting and should proceed normally." msgstr "%s 將使用設定的預設值,且應正常進行處理." #: taskcoachlib/config/settings.py:272 msgid "Settings error" msgstr "設定錯誤" #: taskcoachlib/config/settings.py:295 msgid "" "Error while saving %s.ini:\n" "%s\n" msgstr "" "儲存 %s.ini 時發生錯誤:\n" "%s\n" #: taskcoachlib/config/settings.py:296 msgid "Save error" msgstr "儲存時發生錯誤" #: taskcoachlib/domain/attachment/attachment.py:168 #: taskcoachlib/mailer/macmail.py:50 taskcoachlib/mailer/macmail.py:69 msgid "Mail.app message" msgstr "Mail.app 訊息" #: taskcoachlib/domain/attachment/attachmentlist.py:24 msgid "New attachment..." msgstr "新增附件..." #: taskcoachlib/domain/attachment/attachmentlist.py:25 msgid "Insert a new attachment" msgstr "插入新附件" #: taskcoachlib/domain/attachment/attachmentlist.py:26 msgid "Open attachment" msgstr "開啟附件" #: taskcoachlib/domain/attachment/attachmentlist.py:27 msgid "Open the selected attachments" msgstr "開啟選取附件" #: taskcoachlib/domain/date/snooze.py:22 msgid "5 minutes" msgstr "5 分鐘" #: taskcoachlib/domain/date/snooze.py:22 msgid "Don't snooze" msgstr "不延後通知" #: taskcoachlib/domain/date/snooze.py:23 msgid "10 minutes" msgstr "10 分鐘" #: taskcoachlib/domain/date/snooze.py:23 msgid "15 minutes" msgstr "15 分鐘" #: taskcoachlib/domain/date/snooze.py:24 msgid "20 minutes" msgstr "20 分鐘" #: taskcoachlib/domain/date/snooze.py:24 msgid "30 minutes" msgstr "30 分鐘" #: taskcoachlib/domain/date/snooze.py:25 msgid "1.5 hour" msgstr "1.5 小時" #: taskcoachlib/domain/date/snooze.py:25 msgid "45 minutes" msgstr "45 分鐘" #: taskcoachlib/domain/date/snooze.py:25 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1759 msgid "1 hour" msgstr "1 小時" #: taskcoachlib/domain/date/snooze.py:26 msgid "2 hours" msgstr "2 小時" #: taskcoachlib/domain/date/snooze.py:26 msgid "3 hours" msgstr "3 小時" #: taskcoachlib/domain/date/snooze.py:26 msgid "4 hours" msgstr "4 小時" #: taskcoachlib/domain/date/snooze.py:27 msgid "12 hours" msgstr "12 小時" #: taskcoachlib/domain/date/snooze.py:27 msgid "6 hours" msgstr "6 小時" #: taskcoachlib/domain/date/snooze.py:27 msgid "8 hours" msgstr "8 小時" #: taskcoachlib/domain/date/snooze.py:28 msgid "18 hours" msgstr "18 小時" #: taskcoachlib/domain/date/snooze.py:28 msgid "24 hours" msgstr "24小時" #: taskcoachlib/domain/date/snooze.py:29 msgid "48 hours" msgstr "48 小時" #: taskcoachlib/domain/date/snooze.py:29 msgid "72 hours" msgstr "72 小時" #: taskcoachlib/domain/date/snooze.py:30 msgid "2 weeks" msgstr "2 週" #: taskcoachlib/domain/date/snooze.py:30 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1747 msgid "1 week" msgstr "1 週" #: taskcoachlib/domain/effort/composite.py:191 msgid "Total" msgstr "總計" #: taskcoachlib/domain/effort/composite.py:226 msgid "Total for %s" msgstr "%s 總計" #: taskcoachlib/domain/effort/effortlist.py:35 msgid "&New effort...\tCtrl+E" msgstr "新建工作(&N)...\tCtrl+E" #: taskcoachlib/domain/task/status.py:61 msgid "Inactive tasks" msgstr "靜止任務" #: taskcoachlib/domain/task/status.py:62 msgid "Hide &inactive tasks" msgstr "隱藏靜止任務(&i)" #: taskcoachlib/domain/task/status.py:62 msgid "Inactive tasks: %d (%d%%)" msgstr "靜止任務: %d (%d%%)" #: taskcoachlib/domain/task/status.py:63 msgid "Show/hide inactive tasks (incomplete tasks without actual start date)" msgstr "顯示/隱藏靜止任務 (無實際開始日期的未完成任務)" #: taskcoachlib/domain/task/status.py:65 msgid "Late tasks" msgstr "最後任務" #: taskcoachlib/domain/task/status.py:66 msgid "Hide &late tasks" msgstr "隱藏遲延任務(&l)" #: taskcoachlib/domain/task/status.py:66 msgid "Late tasks: %d (%d%%)" msgstr "遲延任務: %d (%d%%)" #: taskcoachlib/domain/task/status.py:67 msgid "" "Show/hide late tasks (inactive tasks with a planned start in the past)" msgstr "顯示/隱藏 遲延任務 (靜止任務有過去的計劃開始日)" #: taskcoachlib/domain/task/status.py:69 msgid "Active tasks" msgstr "活動中任務" #: taskcoachlib/domain/task/status.py:70 msgid "Active tasks: %d (%d%%)" msgstr "活動中任務: %d (%d%%)" #: taskcoachlib/domain/task/status.py:70 msgid "Hide &active tasks" msgstr "隱藏活動中任務(&a)" #: taskcoachlib/domain/task/status.py:71 msgid "" "Show/hide active tasks (incomplete tasks with an actual start date in the " "past)" msgstr "顯示/隱藏活動中任務 (未完成任務且有過去的實際開始日)" #: taskcoachlib/domain/task/status.py:73 msgid "Due soon tasks" msgstr "即將到期任務" #: taskcoachlib/domain/task/status.py:74 msgid "Due soon tasks: %d (%d%%)" msgstr "即將到期任務: %d (%d%%)" #: taskcoachlib/domain/task/status.py:74 msgid "Hide &due soon tasks" msgstr "隱藏即將到期任務(&d)" #: taskcoachlib/domain/task/status.py:75 msgid "" "Show/hide due soon tasks (incomplete tasks with a due date in the near " "future)" msgstr "顯示/隱藏即將到期任務 (未完成任務且不久即將到期)" #: taskcoachlib/domain/task/status.py:77 msgid "Overdue tasks" msgstr "過期任務" #: taskcoachlib/domain/task/status.py:78 msgid "Hide &over due tasks" msgstr "隱藏過期任務(&o)" #: taskcoachlib/domain/task/status.py:78 msgid "Overdue tasks: %d (%d%%)" msgstr "過期任務: %d (%d%%)" #: taskcoachlib/domain/task/status.py:79 msgid "" "Show/hide over due tasks (incomplete tasks with a due date in the past)" msgstr "顯示/隱藏過期任務 (到期日已過的未完成任務)" #: taskcoachlib/domain/task/status.py:81 msgid "Completed tasks" msgstr "完成的任務" #: taskcoachlib/domain/task/status.py:82 msgid "Completed tasks: %d (%d%%)" msgstr "已完成任務: %d (%d%%)" #: taskcoachlib/domain/task/status.py:82 msgid "Hide &completed tasks" msgstr "隱藏已完成任務(&c)" #: taskcoachlib/domain/task/status.py:83 msgid "Show/hide completed tasks" msgstr "顯示/隱藏已完成工作" #: taskcoachlib/domain/task/tasklist.py:40 msgid "&New task..." msgstr "新增工作(&N)..." #: taskcoachlib/gui/artprovider.py:145 msgid "Arrow down" msgstr "箭頭向下" #: taskcoachlib/gui/artprovider.py:146 msgid "Arrow down with status" msgstr "箭頭向下狀態" #: taskcoachlib/gui/artprovider.py:147 msgid "Blue arrows looped" msgstr "藍色箭頭循環" #: taskcoachlib/gui/artprovider.py:148 msgid "Green arrows looped" msgstr "綠色箭頭循環" #: taskcoachlib/gui/artprovider.py:149 msgid "Arrow up" msgstr "箭頭向上" #: taskcoachlib/gui/artprovider.py:150 msgid "Arrow up with status" msgstr "箭頭向上狀態" #: taskcoachlib/gui/artprovider.py:151 msgid "Bomb" msgstr "炸彈" #: taskcoachlib/gui/artprovider.py:152 msgid "Book" msgstr "書本" #: taskcoachlib/gui/artprovider.py:153 msgid "Books" msgstr "書本" #: taskcoachlib/gui/artprovider.py:154 msgid "Box" msgstr "箱子" #: taskcoachlib/gui/artprovider.py:155 msgid "Ladybug" msgstr "瓢蟲" #: taskcoachlib/gui/artprovider.py:156 msgid "Cake" msgstr "蛋糕" #: taskcoachlib/gui/artprovider.py:157 msgid "Calculator" msgstr "計算器" #: taskcoachlib/gui/artprovider.py:158 taskcoachlib/gui/viewer/task.py:713 msgid "Calendar" msgstr "日曆" #: taskcoachlib/gui/artprovider.py:159 msgid "Cat" msgstr "貓" #: taskcoachlib/gui/artprovider.py:160 msgid "Compact disc (CD)" msgstr "光碟" #: taskcoachlib/gui/artprovider.py:161 msgid "Charts" msgstr "圖表" #: taskcoachlib/gui/artprovider.py:162 msgid "Chatting" msgstr "聊天中" #: taskcoachlib/gui/artprovider.py:163 msgid "Check mark" msgstr "核選標記" #: taskcoachlib/gui/artprovider.py:164 msgid "Check marks" msgstr "圈選標記" #: taskcoachlib/gui/artprovider.py:165 msgid "Clock" msgstr "時鐘" #: taskcoachlib/gui/artprovider.py:166 msgid "Alarm clock" msgstr "鬧鐘" #: taskcoachlib/gui/artprovider.py:167 msgid "Stopwatch" msgstr "碼錶" #: taskcoachlib/gui/artprovider.py:168 msgid "Cogwheel" msgstr "齒輪" #: taskcoachlib/gui/artprovider.py:169 msgid "Cogwheels" msgstr "齒輪" #: taskcoachlib/gui/artprovider.py:170 msgid "Desktop computer" msgstr "桌上型電腦" #: taskcoachlib/gui/artprovider.py:171 msgid "Laptop computer" msgstr "筆記型電腦" #: taskcoachlib/gui/artprovider.py:172 msgid "Handheld computer" msgstr "掌上型電腦" #: taskcoachlib/gui/artprovider.py:173 msgid "Red cross" msgstr "紅十字" #: taskcoachlib/gui/artprovider.py:174 msgid "Die" msgstr "當掉了" #: taskcoachlib/gui/artprovider.py:175 msgid "Document" msgstr "文件" #: taskcoachlib/gui/artprovider.py:176 msgid "Blue earth" msgstr "藍色地球" #: taskcoachlib/gui/artprovider.py:177 msgid "Green earth" msgstr "綠色地球" #: taskcoachlib/gui/artprovider.py:178 msgid "Envelope" msgstr "信封" #: taskcoachlib/gui/artprovider.py:179 msgid "Envelopes" msgstr "信封" #: taskcoachlib/gui/artprovider.py:180 msgid "Blue folder" msgstr "藍色資料夾" #: taskcoachlib/gui/artprovider.py:181 msgid "Light blue folder" msgstr "淡藍色資料夾" #: taskcoachlib/gui/artprovider.py:182 msgid "Green folder" msgstr "綠色資料夾" #: taskcoachlib/gui/artprovider.py:183 msgid "Grey folder" msgstr "灰色資料夾" #: taskcoachlib/gui/artprovider.py:184 msgid "Orange folder" msgstr "橙色資料夾" #: taskcoachlib/gui/artprovider.py:185 msgid "Purple folder" msgstr "紫色資料夾" #: taskcoachlib/gui/artprovider.py:186 msgid "Red folder" msgstr "紅色資料夾" #: taskcoachlib/gui/artprovider.py:187 msgid "Yellow folder" msgstr "黃色資料夾" #: taskcoachlib/gui/artprovider.py:188 msgid "Blue folder with arrow" msgstr "有箭頭的藍色資料夾" #: taskcoachlib/gui/artprovider.py:189 msgid "Heart" msgstr "心型" #: taskcoachlib/gui/artprovider.py:190 msgid "Hearts" msgstr "心型" #: taskcoachlib/gui/artprovider.py:191 msgid "Green house" msgstr "綠色房子" #: taskcoachlib/gui/artprovider.py:192 msgid "Red house" msgstr "紅色房子" #: taskcoachlib/gui/artprovider.py:193 msgid "Key" msgstr "金鑰" #: taskcoachlib/gui/artprovider.py:194 msgid "Keys" msgstr "金鑰" #: taskcoachlib/gui/artprovider.py:195 msgid "Lamp" msgstr "燈" #: taskcoachlib/gui/artprovider.py:196 msgid "Question mark" msgstr "問號" #: taskcoachlib/gui/artprovider.py:197 #: taskcoachlib/gui/wizard/csvimport.py:341 msgid "Information" msgstr "資訊" #: taskcoachlib/gui/artprovider.py:198 msgid "Blue led" msgstr "藍色 LED" #: taskcoachlib/gui/artprovider.py:199 msgid "Light blue led" msgstr "淺藍 LED" #: taskcoachlib/gui/artprovider.py:200 msgid "Grey led" msgstr "灰色 LED" #: taskcoachlib/gui/artprovider.py:201 msgid "Green led" msgstr "綠色 LED" #: taskcoachlib/gui/artprovider.py:202 msgid "Light green led" msgstr "淺綠 LED" #: taskcoachlib/gui/artprovider.py:203 msgid "Orange led" msgstr "橙色 LED" #: taskcoachlib/gui/artprovider.py:204 msgid "Purple led" msgstr "紫色 LED" #: taskcoachlib/gui/artprovider.py:205 msgid "Red led" msgstr "紅色 LED" #: taskcoachlib/gui/artprovider.py:206 msgid "Yellow led" msgstr "黃色 LED" #: taskcoachlib/gui/artprovider.py:207 msgid "Life ring" msgstr "救生圈" #: taskcoachlib/gui/artprovider.py:208 msgid "Locked lock" msgstr "上鎖" #: taskcoachlib/gui/artprovider.py:209 msgid "Unlocked lock" msgstr "解鎖" #: taskcoachlib/gui/artprovider.py:210 msgid "Magnifier glass" msgstr "放大鏡" #: taskcoachlib/gui/artprovider.py:211 msgid "Piano" msgstr "鋼琴" #: taskcoachlib/gui/artprovider.py:212 msgid "Music note" msgstr "音符" #: taskcoachlib/gui/artprovider.py:213 msgid "Note" msgstr "註解" #: taskcoachlib/gui/artprovider.py:214 msgid "Palette" msgstr "色盤" #: taskcoachlib/gui/artprovider.py:215 msgid "Paperclip" msgstr "迴紋針" #: taskcoachlib/gui/artprovider.py:216 msgid "Pencil" msgstr "鉛筆" #: taskcoachlib/gui/artprovider.py:217 msgid "Person" msgstr "人物" #: taskcoachlib/gui/artprovider.py:218 msgid "People" msgstr "群眾" #: taskcoachlib/gui/artprovider.py:219 msgid "Identification" msgstr "識別" #: taskcoachlib/gui/artprovider.py:220 msgid "Person talking" msgstr "交談" #: taskcoachlib/gui/artprovider.py:221 msgid "Warning sign" msgstr "警告標誌" #: taskcoachlib/gui/artprovider.py:222 msgid "Minus" msgstr "減號" #: taskcoachlib/gui/artprovider.py:223 msgid "Plus" msgstr "加號" #: taskcoachlib/gui/artprovider.py:224 msgid "Red star" msgstr "紅星" #: taskcoachlib/gui/artprovider.py:225 msgid "Yellow star" msgstr "黃星" #: taskcoachlib/gui/artprovider.py:226 msgid "Traffic light" msgstr "紅綠燈" #: taskcoachlib/gui/artprovider.py:227 msgid "Trashcan" msgstr "垃圾桶" #: taskcoachlib/gui/artprovider.py:228 msgid "Lightning" msgstr "閃電" #: taskcoachlib/gui/artprovider.py:229 msgid "Umbrella" msgstr "雨傘" #: taskcoachlib/gui/artprovider.py:230 msgid "Partly sunny" msgstr "晴時多雲" #: taskcoachlib/gui/artprovider.py:231 msgid "Wrench" msgstr "扳手" #: taskcoachlib/gui/artprovider.py:239 msgid "No icon" msgstr "沒有圖示" #: taskcoachlib/gui/dialog/backupmanager.py:31 msgid "File" msgstr "檔案:" #: taskcoachlib/gui/dialog/backupmanager.py:32 msgid "Full path" msgstr "完整路徑" #: taskcoachlib/gui/dialog/backupmanager.py:34 #: taskcoachlib/widgets/hcalendarconfig.py:56 msgid "Date" msgstr "日期" #: taskcoachlib/gui/dialog/backupmanager.py:36 msgid "Restore" msgstr "還原" #: taskcoachlib/gui/dialog/backupmanager.py:52 #: taskcoachlib/widgets/dialog.py:81 msgid "Close" msgstr "關閉" #: taskcoachlib/gui/dialog/backupmanager.py:111 msgid "Choose the restoration destination" msgstr "" #: taskcoachlib/gui/dialog/developer_message.py:32 msgid "Message from the %s developers" msgstr "來自 %s 開發者的訊息" #: taskcoachlib/gui/dialog/developer_message.py:52 msgid "See:" msgstr "參見:" #: taskcoachlib/gui/dialog/editor.py:98 taskcoachlib/gui/dialog/editor.py:152 #: taskcoachlib/gui/dialog/editor.py:1319 #: taskcoachlib/gui/viewer/attachment.py:89 #: taskcoachlib/gui/viewer/category.py:101 #: taskcoachlib/gui/viewer/effort.py:215 taskcoachlib/gui/viewer/note.py:132 #: taskcoachlib/gui/viewer/task.py:983 #: taskcoachlib/gui/wizard/csvimport.py:230 #: taskcoachlib/persistence/csv/reader.py:78 msgid "Description" msgstr "說明" #: taskcoachlib/gui/dialog/editor.py:125 msgid "Edit to change all subjects" msgstr "編輯所有修改的主題" #: taskcoachlib/gui/dialog/editor.py:131 #: taskcoachlib/gui/dialog/templates.py:109 #: taskcoachlib/gui/viewer/attachment.py:79 #: taskcoachlib/gui/viewer/base.py:353 taskcoachlib/gui/viewer/category.py:93 #: taskcoachlib/gui/viewer/note.py:122 taskcoachlib/gui/viewer/task.py:969 #: taskcoachlib/gui/wizard/csvimport.py:229 #: taskcoachlib/persistence/csv/reader.py:76 msgid "Subject" msgstr "主題" #: taskcoachlib/gui/dialog/editor.py:136 #: taskcoachlib/gui/dialog/editor.py:1304 msgid "Edit to change all descriptions" msgstr "編輯所有修改的描述" #: taskcoachlib/gui/dialog/editor.py:163 #: taskcoachlib/gui/viewer/attachment.py:109 #: taskcoachlib/gui/viewer/category.py:123 taskcoachlib/gui/viewer/note.py:161 #: taskcoachlib/gui/viewer/task.py:1105 #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation date" msgstr "建立日期" #: taskcoachlib/gui/dialog/editor.py:168 #: taskcoachlib/gui/viewer/attachment.py:117 #: taskcoachlib/gui/viewer/category.py:129 taskcoachlib/gui/viewer/note.py:168 #: taskcoachlib/gui/viewer/task.py:1112 msgid "Modification date" msgstr "修改日期" #: taskcoachlib/gui/dialog/editor.py:230 #: taskcoachlib/gui/uicommand/uicommand.py:2382 #: taskcoachlib/gui/viewer/task.py:1073 #: taskcoachlib/gui/wizard/csvimport.py:232 #: taskcoachlib/persistence/csv/reader.py:89 msgid "Priority" msgstr "優先權" #: taskcoachlib/gui/dialog/editor.py:252 msgid "Mutually exclusive" msgstr "互斥" #: taskcoachlib/gui/dialog/editor.py:259 msgid "Subcategories" msgstr "子分類" #: taskcoachlib/gui/dialog/editor.py:277 msgid "Edit to change location of all attachments" msgstr "編輯以便更改所有附件的位置" #: taskcoachlib/gui/dialog/editor.py:285 msgid "Browse" msgstr "瀏覽" #: taskcoachlib/gui/dialog/editor.py:289 msgid "Location" msgstr "位置" #: taskcoachlib/gui/dialog/editor.py:311 msgid "Appearance" msgstr "界面外觀" #: taskcoachlib/gui/dialog/editor.py:321 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Foreground color" msgstr "前景顏色" #: taskcoachlib/gui/dialog/editor.py:322 #: taskcoachlib/gui/dialog/preferences.py:154 msgid "Background color" msgstr "背景顏色" #: taskcoachlib/gui/dialog/editor.py:348 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Font" msgstr "字型" #: taskcoachlib/gui/dialog/editor.py:357 #: taskcoachlib/gui/dialog/preferences.py:155 msgid "Icon" msgstr "圖示" #: taskcoachlib/gui/dialog/editor.py:365 msgid "Dates" msgstr "日期" #: taskcoachlib/gui/dialog/editor.py:392 #: taskcoachlib/gui/dialog/templates.py:112 #: taskcoachlib/gui/viewer/task.py:1031 #: taskcoachlib/gui/wizard/csvimport.py:233 #: taskcoachlib/persistence/csv/generator.py:36 #: taskcoachlib/persistence/csv/reader.py:96 msgid "Planned start date" msgstr "預定開始日期" #: taskcoachlib/gui/dialog/editor.py:393 #: taskcoachlib/gui/dialog/templates.py:115 #: taskcoachlib/gui/viewer/task.py:1033 #: taskcoachlib/gui/wizard/csvimport.py:234 #: taskcoachlib/persistence/csv/generator.py:37 #: taskcoachlib/persistence/csv/reader.py:98 msgid "Due date" msgstr "截止日期" #: taskcoachlib/gui/dialog/editor.py:395 taskcoachlib/gui/viewer/task.py:1035 #: taskcoachlib/gui/wizard/csvimport.py:235 #: taskcoachlib/persistence/csv/generator.py:35 #: taskcoachlib/persistence/csv/reader.py:94 msgid "Actual start date" msgstr "實際開始日期" #: taskcoachlib/gui/dialog/editor.py:396 #: taskcoachlib/gui/dialog/templates.py:118 #: taskcoachlib/gui/viewer/task.py:1038 #: taskcoachlib/gui/wizard/csvimport.py:236 #: taskcoachlib/persistence/csv/generator.py:38 #: taskcoachlib/persistence/csv/reader.py:100 msgid "Completion date" msgstr "完成日期" #: taskcoachlib/gui/dialog/editor.py:440 #: taskcoachlib/gui/dialog/reminder.py:104 #: taskcoachlib/gui/dialog/templates.py:121 #: taskcoachlib/gui/viewer/task.py:1095 msgid "Reminder" msgstr "提醒" #: taskcoachlib/gui/dialog/editor.py:451 taskcoachlib/gui/viewer/task.py:1061 msgid "Recurrence" msgstr "循環" #: taskcoachlib/gui/dialog/editor.py:467 msgid "Progress" msgstr "處理中" #: taskcoachlib/gui/dialog/editor.py:484 msgid "Percentage complete" msgstr "完成百分比" #: taskcoachlib/gui/dialog/editor.py:493 msgid "Use application-wide setting" msgstr "套用程式預設設定" #: taskcoachlib/gui/dialog/editor.py:494 msgid "No" msgstr "否" #: taskcoachlib/gui/dialog/editor.py:494 msgid "Yes" msgstr "是" #: taskcoachlib/gui/dialog/editor.py:504 msgid "Mark task completed when all children are completed?" msgstr "當所有子工作皆完成時是否標示工作已完成?" #: taskcoachlib/gui/dialog/editor.py:514 taskcoachlib/gui/dialog/editor.py:540 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1064 #: taskcoachlib/gui/wizard/csvimport.py:238 #: taskcoachlib/persistence/csv/reader.py:104 msgid "Budget" msgstr "預算" #: taskcoachlib/gui/dialog/editor.py:548 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:226 taskcoachlib/gui/viewer/task.py:1067 msgid "Time spent" msgstr "花費時間" #: taskcoachlib/gui/dialog/editor.py:565 taskcoachlib/gui/viewer/task.py:1070 msgid "Budget left" msgstr "剩餘預算" #: taskcoachlib/gui/dialog/editor.py:590 taskcoachlib/gui/viewer/task.py:1076 #: taskcoachlib/gui/wizard/csvimport.py:240 #: taskcoachlib/persistence/csv/reader.py:123 msgid "Hourly fee" msgstr "每小時報酬" #: taskcoachlib/gui/dialog/editor.py:600 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/task.py:1078 #: taskcoachlib/gui/wizard/csvimport.py:239 #: taskcoachlib/persistence/csv/reader.py:118 msgid "Fixed fee" msgstr "固定報酬" #: taskcoachlib/gui/dialog/editor.py:606 #: taskcoachlib/gui/uicommand/uicommand.py:2381 #: taskcoachlib/gui/viewer/effort.py:231 taskcoachlib/gui/viewer/task.py:1081 msgid "Revenue" msgstr "收入" #: taskcoachlib/gui/dialog/editor.py:687 taskcoachlib/gui/viewer/effort.py:39 #: taskcoachlib/help/__init__.py:89 taskcoachlib/help/__init__.py:254 msgid "Effort" msgstr "工作量" #: taskcoachlib/gui/dialog/editor.py:728 #: taskcoachlib/gui/viewer/category.py:41 #: taskcoachlib/gui/viewer/effort.py:218 taskcoachlib/gui/viewer/note.py:149 #: taskcoachlib/gui/viewer/task.py:1006 taskcoachlib/help/__init__.py:94 #: taskcoachlib/help/__init__.py:280 msgid "Categories" msgstr "類別" #: taskcoachlib/gui/dialog/editor.py:785 taskcoachlib/gui/viewer/task.py:991 msgid "Attachments" msgstr "附件" #: taskcoachlib/gui/dialog/editor.py:827 taskcoachlib/gui/viewer/note.py:41 #: taskcoachlib/gui/viewer/task.py:998 taskcoachlib/help/__init__.py:99 #: taskcoachlib/help/__init__.py:315 msgid "Notes" msgstr "註記" #: taskcoachlib/gui/dialog/editor.py:871 taskcoachlib/gui/viewer/task.py:1015 msgid "Prerequisites" msgstr "前提" #: taskcoachlib/gui/dialog/editor.py:1178 msgid "Edit task" msgstr "編輯工作" #: taskcoachlib/gui/dialog/editor.py:1187 #: taskcoachlib/gui/dialog/reminder.py:50 #: taskcoachlib/gui/viewer/effort.py:213 msgid "Task" msgstr "工作" #: taskcoachlib/gui/dialog/editor.py:1213 msgid "Start" msgstr "啟動" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1647 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Week(s)" msgstr "週" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1648 #: taskcoachlib/widgets/calendarconfig.py:62 msgid "Day(s)" msgstr "天" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1649 msgid "Hour(s)" msgstr "小時" #: taskcoachlib/gui/dialog/editor.py:1219 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1650 msgid "Minute(s)" msgstr "分鐘" #: taskcoachlib/gui/dialog/editor.py:1229 msgid "Stop" msgstr "停止" #: taskcoachlib/gui/dialog/editor.py:1238 msgid "Start tracking from last stop time" msgstr "從上次停止時間啟動追蹤" #: taskcoachlib/gui/dialog/editor.py:1245 msgid "Stop tracking now" msgstr "立刻停止追蹤" #: taskcoachlib/gui/dialog/editor.py:1281 msgid "Warning: start must be earlier than stop" msgstr "警告: 開始必須早於停止" #: taskcoachlib/gui/dialog/editor.py:1466 msgid "Multiple tasks" msgstr "多任務" #: taskcoachlib/gui/dialog/editor.py:1467 msgid "%s (task)" msgstr "%s (任務)" #: taskcoachlib/gui/dialog/editor.py:1472 msgid "Multiple categories" msgstr "多類別" #: taskcoachlib/gui/dialog/editor.py:1473 msgid "%s (category)" msgstr "%s (類別)" #: taskcoachlib/gui/dialog/editor.py:1478 msgid "Multiple notes" msgstr "多註解" #: taskcoachlib/gui/dialog/editor.py:1479 msgid "%s (note)" msgstr "%s (註解)" #: taskcoachlib/gui/dialog/editor.py:1484 msgid "Multiple attachments" msgstr "多附件" #: taskcoachlib/gui/dialog/editor.py:1485 msgid "%s (attachment)" msgstr "%s (附件)" #: taskcoachlib/gui/dialog/editor.py:1490 msgid "Multiple efforts" msgstr "多工作量" #: taskcoachlib/gui/dialog/editor.py:1491 msgid "%s (effort)" msgstr "%s (工作量)" #: taskcoachlib/gui/dialog/entry.py:196 msgid "Use font:" msgstr "使用字型:" #: taskcoachlib/gui/dialog/entry.py:250 msgid "Use color:" msgstr "使用顏色:" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/gui/dialog/entry.py:530 #: taskcoachlib/gui/uicommand/base_uicommand.py:42 #: taskcoachlib/gui/wizard/csvimport.py:227 #: taskcoachlib/widgets/dirchooser.py:28 msgid "None" msgstr "無" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Daily" msgstr "每天" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Monthly" msgstr "每月" #: taskcoachlib/gui/dialog/entry.py:413 taskcoachlib/render.py:100 msgid "Weekly" msgstr "每週" #: taskcoachlib/gui/dialog/entry.py:414 taskcoachlib/render.py:100 msgid "Yearly" msgstr "每年" #: taskcoachlib/gui/dialog/entry.py:423 msgid "keeping dates on the same weekday" msgstr "在每週的同一天" #: taskcoachlib/gui/dialog/entry.py:431 msgid ", every" msgstr ", 每一" #: taskcoachlib/gui/dialog/entry.py:459 taskcoachlib/gui/dialog/entry.py:503 msgid "Stop after" msgstr "之後停止" #: taskcoachlib/gui/dialog/entry.py:465 msgid "recurrences" msgstr "循環" #: taskcoachlib/gui/dialog/entry.py:472 msgid "Schedule each next recurrence based on" msgstr "安排每下一個循環是依據" #: taskcoachlib/gui/dialog/entry.py:476 msgid "previous planned start and/or due date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:477 msgid "last completion date" msgstr "" #: taskcoachlib/gui/dialog/entry.py:522 msgid "day(s)," msgstr "天," #: taskcoachlib/gui/dialog/entry.py:522 msgid "period," msgstr "期間," #: taskcoachlib/gui/dialog/entry.py:522 msgid "week(s)," msgstr "週," #: taskcoachlib/gui/dialog/entry.py:523 msgid "month(s)," msgstr "月," #: taskcoachlib/gui/dialog/entry.py:523 msgid "year(s)," msgstr "年," #: taskcoachlib/gui/dialog/export.py:82 msgid "Export items from:" msgstr "匯出項目,從" #: taskcoachlib/gui/dialog/export.py:119 msgid "Export only the selected items" msgstr "只匯出被選出的項目" #: taskcoachlib/gui/dialog/export.py:149 msgid "Columns to export:" msgstr "要匯出的欄位:" #: taskcoachlib/gui/dialog/export.py:184 msgid "Put task dates and times in separate columns" msgstr "將任務的日期和時間放在不同的資料列" #: taskcoachlib/gui/dialog/export.py:216 msgid "Write style information to a separate CSS file" msgstr "寫入 Style 資訊到分割的 CSS 檔" #: taskcoachlib/gui/dialog/export.py:223 msgid "" "If a CSS file exists for the exported file, %(name)s will not overwrite it. " "This allows you to change the style information without losing your changes " "on the next export." msgstr "如果匯出檔有可用的 CSS 檔案, %(name)s 將不會覆蓋它. 這樣可以允許你變更樣式資訊且不會在下次匯出失去已做過的修改." #: taskcoachlib/gui/dialog/export.py:238 taskcoachlib/gui/iocontroller.py:328 msgid "Export as CSV" msgstr "匯出 CSV 檔案" #: taskcoachlib/gui/dialog/export.py:263 taskcoachlib/gui/iocontroller.py:335 msgid "Export as iCalendar" msgstr "匯出為 iCalendar" #: taskcoachlib/gui/dialog/export.py:279 taskcoachlib/gui/iocontroller.py:321 msgid "Export as HTML" msgstr "匯出為 HTML" #: taskcoachlib/gui/dialog/export.py:295 taskcoachlib/gui/iocontroller.py:341 msgid "Export as Todo.txt" msgstr "匯出為 Todo.txt" #: taskcoachlib/gui/dialog/iphone.py:32 msgid "" "An iPhone or iPod Touch device is trying\n" "to synchronize with this task file for\n" "the first time. What kind of synchronization\n" "would you like to use?" msgstr "" "有一個 iPhone 或 iPod Touch 裝置\n" "正在嘗試第一次同步這個任務檔案.\n" "你想要使用哪一種同步方式?" #: taskcoachlib/gui/dialog/iphone.py:38 msgid "Refresh from desktop" msgstr "從桌上型電腦更新" #: taskcoachlib/gui/dialog/iphone.py:41 msgid "Refresh from device" msgstr "從裝置更新" #: taskcoachlib/gui/dialog/iphone.py:44 taskcoachlib/widgets/password.py:49 msgid "Cancel" msgstr "取消" #: taskcoachlib/gui/dialog/iphone.py:74 msgid "" "You have enabled the iPhone synchronization feature, which\n" "needs Bonjour. Bonjour does not seem to be installed on\n" "your system." msgstr "" "你已經啟用 iPhone 同步功能, 並需要 Bonjour. \n" "Bonjour 看起來並未被安裝在你的系統上." #: taskcoachlib/gui/dialog/iphone.py:79 msgid "Please download and install Bonjour for Windows from\n" msgstr "請從這裡下載並安裝 Bonjour for Windows\n" #: taskcoachlib/gui/dialog/iphone.py:81 msgid "Apple's web site" msgstr "Apple 的網站" #: taskcoachlib/gui/dialog/iphone.py:86 msgid "" "Bonjour support for Linux is generally provided by\n" "Avahi." msgstr "Bonjour 對 Linux 的支援通常可由 Avahi 提供." #: taskcoachlib/gui/dialog/iphone.py:89 msgid "You may find details for your distribution here" msgstr "你可以在這裡取得你的發行版本的詳細資訊" #: taskcoachlib/gui/dialog/iphone.py:92 msgid "" "Note that under some systems (Fedora), you may have to\n" "install the avahi-compat-libdns_sd package as well as Avahi in order\n" "for this to work." msgstr "" "請注意在某些系統(Fedora), 你必須安裝 \n" "avahi-compat-libdns_sd 套件才可以使用." #: taskcoachlib/gui/dialog/iphone.py:96 msgid "" "In addition, if you have a firewall, check that ports 4096-4100 are open." msgstr "除此之外,若您有防火牆,檢查 4096-4100埠是否開著。" #: taskcoachlib/gui/dialog/iphone.py:98 taskcoachlib/gui/iphone.py:43 #: taskcoachlib/widgets/password.py:47 #: taskcoachlib/widgets/syncmlwarning.py:36 msgid "OK" msgstr "確認" #: taskcoachlib/gui/dialog/preferences.py:295 msgid "This setting will take effect after you restart %s" msgstr "設定將會在你重新啓動 %s 後生效" #: taskcoachlib/gui/dialog/preferences.py:297 msgid "" "This setting can be overridden for individual tasks\n" "in the task edit dialog." msgstr "該設定可在個別任務的編輯視窗中被覆蓋." #: taskcoachlib/gui/dialog/preferences.py:344 msgid "Files" msgstr "檔案" #: taskcoachlib/gui/dialog/preferences.py:350 msgid "Auto save after every change" msgstr "更動後自動儲存" #: taskcoachlib/gui/dialog/preferences.py:352 msgid "Auto load when the file changes on disk" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:354 msgid "Smart filesystem monitoring" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:355 msgid "" "Try to detect changes to the task file in real time.\n" "Do not check this if your task file is on a network share.\n" "You must restart %s after changing this." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:357 msgid "" "Save settings (%s.ini) in the same\n" "directory as the program" msgstr "儲存設定 (%s.ini) 與應用程式同一目錄" #: taskcoachlib/gui/dialog/preferences.py:359 msgid "For running %s from a removable medium" msgstr "由從可移除儲存媒體執行 %s" #: taskcoachlib/gui/dialog/preferences.py:361 msgid "Attachment base directory" msgstr "附件所在的目錄" #: taskcoachlib/gui/dialog/preferences.py:362 msgid "" "When adding an attachment, try to make\n" "its path relative to this one." msgstr "當加入附件時, 會試著以此為相對路徑." #: taskcoachlib/gui/dialog/preferences.py:365 msgid "Before saving, automatically import from" msgstr "儲存前, 自動匯入來自" #: taskcoachlib/gui/dialog/preferences.py:366 #: taskcoachlib/gui/dialog/preferences.py:372 msgid "Todo.txt format" msgstr "Todo.txt 格式" #: taskcoachlib/gui/dialog/preferences.py:367 msgid "" "Before saving, %s automatically imports tasks\n" "from a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "儲存前, %s 自動匯入與任務檔案同名的 Todo.txt 檔案, \n" "而其延伸檔名為 .txt" #: taskcoachlib/gui/dialog/preferences.py:371 msgid "When saving, automatically export to" msgstr "儲存時, 自動匯出到" #: taskcoachlib/gui/dialog/preferences.py:373 msgid "" "When saving, %s automatically exports tasks\n" "to a Todo.txt file with the same name as the task file,\n" "but with extension .txt" msgstr "" "儲存前, %s 自動匯出與任務檔案同名的 Todo.txt 檔案, \n" "而其延伸檔名為 .txt" #: taskcoachlib/gui/dialog/preferences.py:381 msgid "Window behavior" msgstr "視窗行為" #: taskcoachlib/gui/dialog/preferences.py:388 msgid "Show splash screen on startup" msgstr "啟動時顯示特效畫面" #: taskcoachlib/gui/dialog/preferences.py:390 msgid "Show tips window on startup" msgstr "啟動時顯示小技巧" #: taskcoachlib/gui/dialog/preferences.py:392 msgid "Start with the main window iconized" msgstr "啟動時主畫面縮小為圖示" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Always" msgstr "總是" #: taskcoachlib/gui/dialog/preferences.py:393 msgid "Never" msgstr "從不" #: taskcoachlib/gui/dialog/preferences.py:395 msgid "If it was iconized last session" msgstr "如果上次執行為最小化" #: taskcoachlib/gui/dialog/preferences.py:396 msgid "Check for new version of %(name)s on startup" msgstr "啟動時檢查 %(name)s 的新版本" #: taskcoachlib/gui/dialog/preferences.py:398 msgid "Check for messages from the %(name)s developers on startup" msgstr "啓動時檢查來自 %(name)s 開發者的訊息" #: taskcoachlib/gui/dialog/preferences.py:402 msgid "Hide main window when iconized" msgstr "縮小為圖示時隱藏主視窗" #: taskcoachlib/gui/dialog/preferences.py:404 msgid "Minimize main window when closed" msgstr "關閉程式時最小化主視窗" #: taskcoachlib/gui/dialog/preferences.py:407 msgid "Make clock in the task bar tick when tracking effort" msgstr "追蹤工作量時讓工作列上的時鐘計時" #: taskcoachlib/gui/dialog/preferences.py:413 #: taskcoachlib/gui/dialog/preferences.py:489 msgid "Language" msgstr "語言" #: taskcoachlib/gui/dialog/preferences.py:473 msgid "Let the system determine the language" msgstr "讓系統決定所用的語言" #: taskcoachlib/gui/dialog/preferences.py:497 msgid "" "If your language is not available, or the translation needs improving, " "please consider helping. See:" msgstr "如果沒有你可用的語言, 或翻譯需要改善, 敬請提供協助. 參見:" #: taskcoachlib/gui/dialog/preferences.py:505 msgid "Language not found?" msgstr "找不到慣用語系?" #: taskcoachlib/gui/dialog/preferences.py:515 msgid "Task appearance" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:528 msgid "" "These appearance settings can be overridden for individual tasks in the task " "edit dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:535 msgid "Features" msgstr "功能" #: taskcoachlib/gui/dialog/preferences.py:541 msgid "All settings on this tab require a restart of %s to take effect" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:548 msgid "Enable SyncML" msgstr "啟用 SyncML" #: taskcoachlib/gui/dialog/preferences.py:550 msgid "Enable iPhone synchronization" msgstr "啟用 iPhone 同步化" #: taskcoachlib/gui/dialog/preferences.py:553 msgid "Use X11 session management" msgstr "Use X11 session management" #: taskcoachlib/gui/dialog/preferences.py:554 msgid "Start of work week" msgstr "工作周的起始日" #: taskcoachlib/gui/dialog/preferences.py:555 #: taskcoachlib/gui/viewer/effort.py:239 msgid "Monday" msgstr "星期一" #: taskcoachlib/gui/dialog/preferences.py:556 #: taskcoachlib/gui/viewer/effort.py:257 msgid "Sunday" msgstr "星期日" #: taskcoachlib/gui/dialog/preferences.py:558 msgid "Hour of start of work day" msgstr "工作日是幾點開始" #: taskcoachlib/gui/dialog/preferences.py:560 msgid "Hour of end of work day" msgstr "工作日是幾點結束" #: taskcoachlib/gui/dialog/preferences.py:560 #: taskcoachlib/gui/dialog/preferences.py:629 msgid "End of day" msgstr "一日的結束" #: taskcoachlib/gui/dialog/preferences.py:563 msgid "" "Use gradients in calendar views.\n" "This may slow down Task Coach." msgstr "" "日曆檢視器在使用漸層.\n" "這可能會讓 Task Coach 變慢." #: taskcoachlib/gui/dialog/preferences.py:566 msgid "Minutes between suggested times" msgstr "提示時段的間隔分鐘數" #: taskcoachlib/gui/dialog/preferences.py:567 msgid "" "In popup-menus for time selection (e.g. for setting the start \n" "time of an effort) %(name)s will suggest times using this \n" "setting. The smaller the number of minutes, the more times \n" "are suggested. Of course, you can also enter any time you \n" "want beside the suggested times." msgstr "" "在彈出選單的時間選取 (例如 工作量的開始時間) %(name)s \n" "會以這個設定提示時段. 分鐘數越小會分出越多時段.\n" "當然除了提示時段你也可以自行輸入任何想要的時段." #: taskcoachlib/gui/dialog/preferences.py:576 msgid "Idle time notice" msgstr "閑置時間提醒" #: taskcoachlib/gui/dialog/preferences.py:577 msgid "" "If there is no user input for this amount of time\n" "(in minutes), %(name)s will ask what to do about current efforts." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:581 msgid "Use decimal times for effort entries." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:582 msgid "" "Display one hour, fifteen minutes as 1.25 instead of 1:15\n" "This is useful when creating invoices." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:585 msgid "" "Show a popup with the description of an item\n" "when hovering over it" msgstr "" #: taskcoachlib/gui/dialog/preferences.py:596 msgid "Task dates" msgstr "任務日期" #: taskcoachlib/gui/dialog/preferences.py:604 msgid "Mark parent task completed when all children are completed" msgstr "所有子工作皆完成時標示父工作為已完成" #: taskcoachlib/gui/dialog/preferences.py:607 msgid "Number of hours that tasks are considered to be 'due soon'" msgstr "需要幾個小時,任務視為\"即將截止\"" #: taskcoachlib/gui/dialog/preferences.py:609 msgid "Nothing" msgstr "無" #: taskcoachlib/gui/dialog/preferences.py:611 msgid "Changing the planned start date changes the due date" msgstr "更改計劃開始日會改動到期日" #: taskcoachlib/gui/dialog/preferences.py:613 msgid "Changing the due date changes the planned start date" msgstr "更改到期日會改動計劃開始日" #: taskcoachlib/gui/dialog/preferences.py:615 msgid "" "What to do with planned start and due date if the other one is changed" msgstr "若預定開示日和截止日兩者中有一個被更改了,那另一個要怎麼辦?" #: taskcoachlib/gui/dialog/preferences.py:618 msgid "Preset" msgstr "預設" #: taskcoachlib/gui/dialog/preferences.py:619 msgid "Propose" msgstr "提案" #: taskcoachlib/gui/dialog/preferences.py:620 taskcoachlib/render.py:142 msgid "Today" msgstr "今日" #: taskcoachlib/gui/dialog/preferences.py:621 taskcoachlib/render.py:146 msgid "Tomorrow" msgstr "明日" #: taskcoachlib/gui/dialog/preferences.py:622 msgid "Day after tomorrow" msgstr "後天" #: taskcoachlib/gui/dialog/preferences.py:623 msgid "Next Friday" msgstr "下星期五" #: taskcoachlib/gui/dialog/preferences.py:624 msgid "Next Monday" msgstr "下星期一" #: taskcoachlib/gui/dialog/preferences.py:625 msgid "Start of day" msgstr "一天的開始" #: taskcoachlib/gui/dialog/preferences.py:626 msgid "Start of working day" msgstr "工作日的開始" #: taskcoachlib/gui/dialog/preferences.py:627 msgid "Current time" msgstr "目前時間" #: taskcoachlib/gui/dialog/preferences.py:628 msgid "End of working day" msgstr "工作日結束" #: taskcoachlib/gui/dialog/preferences.py:631 msgid "Default planned start date and time" msgstr "預設的預定開始日和時間" #: taskcoachlib/gui/dialog/preferences.py:634 msgid "Default due date and time" msgstr "預設的到期日和時間" #: taskcoachlib/gui/dialog/preferences.py:637 msgid "Default actual start date and time" msgstr "預設實際開始日期和時間" #: taskcoachlib/gui/dialog/preferences.py:640 msgid "Default completion date and time" msgstr "預設完成日期和時間" #: taskcoachlib/gui/dialog/preferences.py:643 msgid "Default reminder date and time" msgstr "預設提醒日期和時間" #: taskcoachlib/gui/dialog/preferences.py:650 msgid "" "New tasks start with \"Preset\" dates and times filled in and checked. " "\"Proposed\" dates and times are filled in, but not checked.\n" "\n" "\"Start of day\" is midnight and \"End of day\" is just before midnight. " "When using these, task viewers hide the time and show only the date.\n" "\n" "\"Start of working day\" and \"End of working day\" use the working day as " "set in the Features tab of this preferences dialog." msgstr "" #: taskcoachlib/gui/dialog/preferences.py:661 msgid "Task reminders" msgstr "任務提醒" #: taskcoachlib/gui/dialog/preferences.py:671 msgid "Notification system to use for reminders" msgstr "任務提醒使用的通知系統" #: taskcoachlib/gui/dialog/preferences.py:675 msgid "Let the computer say the reminder" msgstr "讓電腦發送提醒" #: taskcoachlib/gui/dialog/preferences.py:676 msgid "(Needs espeak)" msgstr "(需要 espeak)" #: taskcoachlib/gui/dialog/preferences.py:681 msgid "Default snooze time to use after reminder" msgstr "預設提醒後的貪睡時間" #: taskcoachlib/gui/dialog/preferences.py:685 msgid "Snooze times to offer in task reminder dialog" msgstr "任務提醒視窗設定的貪睡時間" #: taskcoachlib/gui/dialog/preferences.py:693 msgid "iPhone" msgstr "iPhone" #: taskcoachlib/gui/dialog/preferences.py:699 msgid "Password for synchronization with iPhone" msgstr "用於與 iPhone 同步的密碼" #: taskcoachlib/gui/dialog/preferences.py:700 msgid "When synchronizing, enter this password on the iPhone to authorize it" msgstr "當同步時, 在 iPhone 輸入該密碼以通過認證" #: taskcoachlib/gui/dialog/preferences.py:702 msgid "Bonjour service name" msgstr "Bonjour 服務名稱" #: taskcoachlib/gui/dialog/preferences.py:704 msgid "Upload completed tasks to device" msgstr "任務上傳到設備已經完成" #: taskcoachlib/gui/dialog/preferences.py:706 msgid "Show the synchronization log" msgstr "顯示同步化日誌" #: taskcoachlib/gui/dialog/preferences.py:712 msgid "Editor" msgstr "編輯者" #: taskcoachlib/gui/dialog/preferences.py:720 msgid "Check spelling in editors" msgstr "在編輯器中檢查拼字" #: taskcoachlib/gui/dialog/preferences.py:722 msgid "Font to use in the description field of edit dialogs" msgstr "用於編輯視窗說明欄的字型" #: taskcoachlib/gui/dialog/preferences.py:733 msgid "OS X" msgstr "OS X" #: taskcoachlib/gui/dialog/preferences.py:740 msgid "Get e-mail subject from Mail.app" msgstr "從 Mail.app 取得 e-mail 主旨" #: taskcoachlib/gui/dialog/preferences.py:741 msgid "" "When dropping an e-mail from Mail.app, try to get its subject.\n" "This takes up to 20 seconds." msgstr "" "當透過 Mail.app 發送 e-mail 並取得主旨.\n" "需費時 20 秒." #: taskcoachlib/gui/dialog/preferences.py:747 msgid "Linux" msgstr "Linux" #: taskcoachlib/gui/dialog/preferences.py:754 msgid "Focus task subject in task editor" msgstr "聚焦任務主題在任務編輯器中" #: taskcoachlib/gui/dialog/preferences.py:755 msgid "" "When opening the task editor, select the task subject and focus it.\n" "This overwrites the X selection." msgstr "" #: taskcoachlib/gui/dialog/reminder.py:31 msgid "%(name)s reminder - %(task)s" msgstr "%(name)s 提醒 - %(task)s" #: taskcoachlib/gui/dialog/reminder.py:64 msgid "Reminder date/time" msgstr "提醒日期/時間" #: taskcoachlib/gui/dialog/reminder.py:65 msgid "Snooze" msgstr "延後通知" #: taskcoachlib/gui/dialog/reminder.py:87 msgid "Also make this the default snooze time for future reminders" msgstr "附帶設定成為未來提醒的預設貪睡時間" #: taskcoachlib/gui/dialog/reminder.py:93 msgid "Mark task completed" msgstr "標示為任務已經完成" #: taskcoachlib/gui/dialog/syncpreferences.py:81 msgid "SyncML server" msgstr "SyncML 伺服器" #: taskcoachlib/gui/dialog/syncpreferences.py:82 msgid "Custom" msgstr "自訂" #: taskcoachlib/gui/dialog/syncpreferences.py:83 msgid "MemoToo (http://www.memotoo.com/)" msgstr "MemoToo (http://www.memotoo.com/)" #: taskcoachlib/gui/dialog/syncpreferences.py:84 msgid "Horde-based" msgstr "" #: taskcoachlib/gui/dialog/syncpreferences.py:87 msgid "SyncML server URL" msgstr "SyncML 伺服器網址" #: taskcoachlib/gui/dialog/syncpreferences.py:88 msgid "User name/ID" msgstr "用戶姓名/編號" #: taskcoachlib/gui/dialog/syncpreferences.py:90 msgid "Enable tasks synchronization" msgstr "啟用任務同步化" #: taskcoachlib/gui/dialog/syncpreferences.py:92 msgid "Tasks database name" msgstr "任務資料庫名稱" #: taskcoachlib/gui/dialog/syncpreferences.py:93 #: taskcoachlib/gui/dialog/syncpreferences.py:106 msgid "Preferred synchronization mode" msgstr "偏好的同步模式" #: taskcoachlib/gui/dialog/syncpreferences.py:94 #: taskcoachlib/gui/dialog/syncpreferences.py:107 msgid "Two way" msgstr "雙向" #: taskcoachlib/gui/dialog/syncpreferences.py:95 #: taskcoachlib/gui/dialog/syncpreferences.py:108 msgid "Slow" msgstr "慢" #: taskcoachlib/gui/dialog/syncpreferences.py:96 #: taskcoachlib/gui/dialog/syncpreferences.py:109 msgid "One way from client" msgstr "客戶端單向同步" #: taskcoachlib/gui/dialog/syncpreferences.py:97 #: taskcoachlib/gui/dialog/syncpreferences.py:110 msgid "Refresh from client" msgstr "從客戶刷新" #: taskcoachlib/gui/dialog/syncpreferences.py:98 #: taskcoachlib/gui/dialog/syncpreferences.py:111 msgid "One way from server" msgstr "伺服端單向同步" #: taskcoachlib/gui/dialog/syncpreferences.py:99 #: taskcoachlib/gui/dialog/syncpreferences.py:112 #: taskcoachlib/syncml/basesource.py:43 taskcoachlib/syncml/basesource.py:55 msgid "Refresh from server" msgstr "從伺服器刷新" #: taskcoachlib/gui/dialog/syncpreferences.py:103 msgid "Enable notes synchronization" msgstr "啟用註解同步化" #: taskcoachlib/gui/dialog/syncpreferences.py:105 msgid "Notes database name" msgstr "註解資料庫名稱" #: taskcoachlib/gui/dialog/syncpreferences.py:151 msgid "Access" msgstr "存取" #: taskcoachlib/gui/dialog/templates.py:221 msgid "New task template" msgstr "新任務樣版" #: taskcoachlib/gui/dialog/toolbar.py:47 msgid "Preview" msgstr "預覽" #: taskcoachlib/gui/dialog/toolbar.py:67 msgid "Available tools" msgstr "可用的工具" #: taskcoachlib/gui/dialog/toolbar.py:83 msgid "Make this tool visible in the toolbar" msgstr "使這個工具在工具列上顯示" #: taskcoachlib/gui/dialog/toolbar.py:87 msgid "Hide this tool from the toolbar" msgstr "使這個工具從工具列上隱藏" #: taskcoachlib/gui/dialog/toolbar.py:92 msgid "Tools" msgstr "工具" #: taskcoachlib/gui/dialog/toolbar.py:106 msgid "Move the tool up (to the left of the toolbar)" msgstr "將工具上移 (向工具列的左邊)" #: taskcoachlib/gui/dialog/toolbar.py:110 msgid "Move the tool down (to the right of the toolbar)" msgstr "將工具下移 (向工具列的右邊)" #: taskcoachlib/gui/dialog/toolbar.py:134 msgid "Reorder toolbar buttons by drag and dropping them in this list." msgstr "在清單拖放重新安排工具列按鈕." #: taskcoachlib/gui/dialog/toolbar.py:167 #: taskcoachlib/gui/dialog/toolbar.py:225 #: taskcoachlib/gui/dialog/toolbar.py:254 msgid "Separator" msgstr "分隔" #: taskcoachlib/gui/dialog/toolbar.py:169 #: taskcoachlib/gui/dialog/toolbar.py:228 #: taskcoachlib/gui/dialog/toolbar.py:256 msgid "Spacer" msgstr "空格" #: taskcoachlib/gui/dialog/version.py:41 msgid "Notify me of new versions." msgstr "有新版本時通知我" #: taskcoachlib/gui/dialog/version.py:62 msgid "New version of %(name)s available" msgstr "%(name)s 已有新版本" #: taskcoachlib/gui/dialog/version.py:66 msgid "You are using %(name)s version %(currentVersion)s." msgstr "你使用的是 %(name)s 版本 %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:71 msgid "Version %(version)s of %(name)s is available from" msgstr "%(name)s 的 %(version)s 已可使用:" #: taskcoachlib/gui/dialog/version.py:77 msgid "%(name)s is up to date" msgstr "%(name)s是最新的" #: taskcoachlib/gui/dialog/version.py:81 msgid "%(name)s is up to date at version %(version)s." msgstr "%(name)s 是最新版本 %(version)s." #: taskcoachlib/gui/dialog/version.py:86 msgid "Couldn't find out latest version" msgstr "無法找到最新版本" #: taskcoachlib/gui/dialog/version.py:89 msgid "Couldn't find out what the latest version of %(name)s is." msgstr "找不到 %(name)s 的最新版本" #: taskcoachlib/gui/dialog/version.py:95 msgid "Prerelease version" msgstr "先前釋出版本" #: taskcoachlib/gui/dialog/version.py:98 msgid "You are using %(name)s prerelease version %(currentVersion)s." msgstr "您正使用 %(name)s 先前釋出版本 %(currentVersion)s." #: taskcoachlib/gui/dialog/version.py:100 msgid "The latest released version of %(name)s is %(version)s." msgstr "%(name)s 最新釋出的版本是 %(version)s." #: taskcoachlib/gui/dialog/xfce4warning.py:27 #: taskcoachlib/gui/mainwindow.py:119 #: taskcoachlib/gui/uicommand/uicommand.py:233 msgid "Warning" msgstr "警告" #: taskcoachlib/gui/dialog/xfce4warning.py:35 msgid "Task Coach has known issues with XFCE4 session management.\n" msgstr "Task Coach 包含已知關於 XFCE4 session management 的問題 .\n" #: taskcoachlib/gui/dialog/xfce4warning.py:36 msgid "" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" msgstr "" "如果你在啟動時遇到隨機停滯的問題, 請取消選取\n" "偏好設定的功能頁籤中的 \"Use X11 session management\".\n" "\n" "If you experience random freeze at startup, please uncheck\n" "the \"Use X11 session management\" in the Features tab of the preferences.\n" #: taskcoachlib/gui/dialog/xfce4warning.py:37 msgid "Do not show this dialog at startup" msgstr "啓動時不顯示這個視窗" #: taskcoachlib/gui/idlecontroller.py:41 msgid "" "No user input since %s. The following task was\n" "being tracked:" msgstr "從 %s 使用者沒有輸入動作. 追蹤到以下任務:" #: taskcoachlib/gui/idlecontroller.py:46 msgid "Do nothing" msgstr "什麼都不做" #: taskcoachlib/gui/idlecontroller.py:47 msgid "Stop it at %s" msgstr "停止於 %s" #: taskcoachlib/gui/idlecontroller.py:48 msgid "Stop it at %s and resume now" msgstr "停止於 %s 且立刻恢復" #: taskcoachlib/gui/idlecontroller.py:109 msgid "Notification" msgstr "通知" #: taskcoachlib/gui/iocontroller.py:55 msgid "%s files (*.tsk)|*.tsk|All files (*.*)|*" msgstr "%s 檔案 (*.tsk)|*.tsk|所有檔案 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:58 msgid "" "%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|All files (*.*)|*" msgstr "%s 檔案 (*.tsk)|*.tsk|備份檔案 (*.tsk.bak)|*.tsk.bak|所有檔案 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:62 msgid "iCalendar files (*.ics)|*.ics|All files (*.*)|*" msgstr "iCalendar 檔案 (*.ics)|*.ics|所有檔案 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:65 msgid "HTML files (*.html)|*.html|All files (*.*)|*" msgstr "HTML 檔案 (*.html)|*.html|所有檔案 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:68 msgid "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*" msgstr "CSV 檔案 (*.csv)|*.csv|文字檔案 (*.txt)|*.txt|所有檔案 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:72 msgid "Todo.txt files (*.txt)|*.txt|All files (*.*)|*" msgstr "Todo.txt 檔案 (*.txt)|*.txt|全部檔案 (*.*)|*" #: taskcoachlib/gui/iocontroller.py:114 msgid "Open" msgstr "開啟舊檔" #: taskcoachlib/gui/iocontroller.py:151 msgid "Loaded %(nrtasks)d tasks from %(filename)s" msgstr "已從 %(filename)s 載入 %(nrtasks)d 筆工作" #: taskcoachlib/gui/iocontroller.py:155 msgid "Cannot open %s because it doesn't exist" msgstr "無法開啟 %s ,因為檔案不存在" #: taskcoachlib/gui/iocontroller.py:165 msgid "Merge" msgstr "合併" #: taskcoachlib/gui/iocontroller.py:171 msgid "" "Cannot open %(filename)s\n" "because it is locked." msgstr "" "無法開起 %(filename)s\n" "因為它已被關閉。" #: taskcoachlib/gui/iocontroller.py:181 msgid "Merged %(filename)s" msgstr "合併 %(filename)s" #: taskcoachlib/gui/iocontroller.py:202 msgid "Save as" msgstr "另存新檔" #: taskcoachlib/gui/iocontroller.py:216 msgid "Save selection" msgstr "儲存選擇" #: taskcoachlib/gui/iocontroller.py:254 msgid "" "Cannot save %s\n" "It is locked by another instance of %s.\n" msgstr "" "不能儲存 %s\n" "已被另一個 %s 實體鎖定.\n" #: taskcoachlib/gui/iocontroller.py:259 msgid "" "Cannot save %s\n" "%s" msgstr "" "無法儲存 %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:270 msgid "Import template" msgstr "匯入樣版" #: taskcoachlib/gui/iocontroller.py:272 msgid "%s template files (*.tsktmpl)|*.tsktmpl" msgstr "" #: taskcoachlib/gui/iocontroller.py:279 msgid "" "Cannot import template %s\n" "%s" msgstr "" "無法匯入樣版 %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:310 msgid "Exported %(count)d items to %(filename)s" msgstr "已匯出 %(count)d 項目至 %(filename)s" #: taskcoachlib/gui/iocontroller.py:367 msgid "Finished synchronization" msgstr "已完成同步" #: taskcoachlib/gui/iocontroller.py:376 msgid "Synchronization status" msgstr "同步化狀態" #: taskcoachlib/gui/iocontroller.py:384 msgid "" "Cannot open %s\n" "%s" msgstr "" "無法開啟 %s\n" "%s" #: taskcoachlib/gui/iocontroller.py:422 msgid "" "A file named %s already exists.\n" "Do you want to replace it?" msgstr "" "一個名為 %s 檔案已經存在。\n" "您要取代它嗎?" #: taskcoachlib/gui/iocontroller.py:443 msgid "" "You have unsaved changes.\n" "Save before closing?" msgstr "" "有未儲存資料。\n" "是否在結束前先行儲存?" #: taskcoachlib/gui/iocontroller.py:444 msgid "%s: save changes?" msgstr "%s:儲存變更內容?" #: taskcoachlib/gui/iocontroller.py:454 msgid "" "Cannot open %s because it is locked.\n" "\n" "This means either that another instance of TaskCoach\n" "is running and has this file opened, or that a previous\n" "instance of Task Coach crashed. If no other instance is\n" "running, you can safely break the lock.\n" "\n" "Break the lock?" msgstr "" #: taskcoachlib/gui/iocontroller.py:462 taskcoachlib/gui/iocontroller.py:470 msgid "%s: file locked" msgstr "%s: 檔案被封鎖" #: taskcoachlib/gui/iocontroller.py:467 msgid "" "Cannot acquire a lock because locking is not supported\n" "on the location of %s.\n" "Open %s unlocked?" msgstr "" #: taskcoachlib/gui/iocontroller.py:475 msgid "Closed %s" msgstr "關閉 %s" #: taskcoachlib/gui/iocontroller.py:481 msgid "Saved %(nrtasks)d tasks to %(filename)s" msgstr "儲存 %(nrtasks)d 筆工作至 %(filename)s 檔案中" #: taskcoachlib/gui/iocontroller.py:486 msgid "" "Cannot open %(filename)s\n" "because it was created by a newer version of %(name)s.\n" "Please upgrade %(name)s." msgstr "" #: taskcoachlib/gui/iocontroller.py:496 msgid "Error while reading %s:\n" msgstr "讀取 %s 時發生錯誤:\n" #: taskcoachlib/gui/iocontroller.py:500 msgid "" "The backup manager will now open to allow you to restore\n" "an older version of this file." msgstr "" #: taskcoachlib/gui/iphone.py:31 msgid "Synchronizing..." msgstr "正在同步化..." #: taskcoachlib/gui/iphone.py:52 msgid "Synchronizing with %s..." msgstr "與%s 同步..." #: taskcoachlib/gui/mainwindow.py:173 msgid "Welcome to %(name)s version %(version)s" msgstr "歡迎使用 %(name)s %(version)s" #: taskcoachlib/gui/mainwindow.py:200 msgid "" "Couldn't restore the pane layout from TaskCoach.ini:\n" "%s\n" "\n" "The default pane layout will be used.\n" "\n" "If this happens again, please make a copy of your TaskCoach.ini file before " "closing the program, open a bug report, and attach the copied TaskCoach.ini " "file to the bug report." msgstr "" #: taskcoachlib/gui/mainwindow.py:208 msgid "%s settings error" msgstr "" #: taskcoachlib/gui/mainwindow.py:381 msgid "iPhone/iPod" msgstr "iPhone/iPod" #: taskcoachlib/gui/mainwindow.py:390 msgid "Synchronization type" msgstr "同步化類型" #: taskcoachlib/gui/mainwindow.py:399 msgid "" "An iPhone or iPod Touch device tried to synchronize with this\n" "task file, but the protocol negotiation failed. Please file a\n" "bug report." msgstr "" #: taskcoachlib/gui/menu.py:210 msgid "&File" msgstr "檔案(&F)" #: taskcoachlib/gui/menu.py:212 msgid "&Edit" msgstr "編輯(&E)" #: taskcoachlib/gui/menu.py:214 msgid "&View" msgstr "顯示(&V)" #: taskcoachlib/gui/menu.py:216 msgid "&New" msgstr "新增(&N)" #: taskcoachlib/gui/menu.py:218 msgid "&Actions" msgstr "動作(&A)" #: taskcoachlib/gui/menu.py:219 msgid "&Help" msgstr "求助(&H)" #: taskcoachlib/gui/menu.py:256 msgid "&Import" msgstr "匯入(&I)" #: taskcoachlib/gui/menu.py:258 msgid "&Export" msgstr "匯出(&E)" #: taskcoachlib/gui/menu.py:373 msgid "&Select" msgstr "選擇(&S)" #: taskcoachlib/gui/menu.py:402 msgid "&New viewer" msgstr "新瀏覽器(&N)" #: taskcoachlib/gui/menu.py:406 msgid "&Activate next viewer\tCtrl+PgDn" msgstr "啟用下一個觀看畫面 (&A)\tCtrl+PgDn" #: taskcoachlib/gui/menu.py:410 msgid "Activate &previous viewer\tCtrl+PgUp" msgstr "啟用上一個觀看畫面 (&P)\tCtrl+PgUp" #: taskcoachlib/gui/menu.py:418 taskcoachlib/gui/menu.py:419 msgid "&Mode" msgstr "" #: taskcoachlib/gui/menu.py:420 taskcoachlib/gui/menu.py:421 msgid "&Filter" msgstr "過濾器(&F)" #: taskcoachlib/gui/menu.py:422 taskcoachlib/gui/menu.py:423 msgid "&Sort" msgstr "排序(&S)" #: taskcoachlib/gui/menu.py:424 taskcoachlib/gui/menu.py:425 msgid "&Columns" msgstr "欄(&C)" #: taskcoachlib/gui/menu.py:426 taskcoachlib/gui/menu.py:427 msgid "&Rounding" msgstr "" #: taskcoachlib/gui/menu.py:429 msgid "&Tree options" msgstr "樹狀目錄選項(&T)" #: taskcoachlib/gui/menu.py:433 msgid "T&oolbar" msgstr "工具列(&O)" #: taskcoachlib/gui/menu.py:435 msgid "Show/hide status bar" msgstr "顯示/隱藏狀態列" #: taskcoachlib/gui/menu.py:435 msgid "Status&bar" msgstr "狀態列(&B)" #: taskcoachlib/gui/menu.py:446 msgid "&Task" msgstr "工作(&T)" #: taskcoachlib/gui/menu.py:447 msgid "Open a new tab with a viewer that displays tasks" msgstr "" #: taskcoachlib/gui/menu.py:449 msgid "Task &statistics" msgstr "" #: taskcoachlib/gui/menu.py:450 msgid "Open a new tab with a viewer that displays task statistics" msgstr "" #: taskcoachlib/gui/menu.py:452 msgid "Task &square map" msgstr "" #: taskcoachlib/gui/menu.py:453 msgid "Open a new tab with a viewer that displays tasks in a square map" msgstr "" #: taskcoachlib/gui/menu.py:455 msgid "T&imeline" msgstr "T&imeline" #: taskcoachlib/gui/menu.py:456 msgid "" "Open a new tab with a viewer that displays a timeline of tasks and effort" msgstr "" #: taskcoachlib/gui/menu.py:458 msgid "&Calendar" msgstr "行事曆(&C)" #: taskcoachlib/gui/menu.py:459 msgid "Open a new tab with a viewer that displays tasks in a calendar" msgstr "開啟新頁籤以顯示行事曆上的任務" #: taskcoachlib/gui/menu.py:461 msgid "&Hierarchical calendar" msgstr "" #: taskcoachlib/gui/menu.py:462 msgid "" "Open a new tab with a viewer that displays task hierarchy in a calendar" msgstr "" #: taskcoachlib/gui/menu.py:464 taskcoachlib/gui/viewer/mixin.py:350 msgid "&Category" msgstr "類別(&C)" #: taskcoachlib/gui/menu.py:465 msgid "Open a new tab with a viewer that displays categories" msgstr "開啟新頁籤以顯示類別" #: taskcoachlib/gui/menu.py:467 msgid "&Effort" msgstr "" #: taskcoachlib/gui/menu.py:468 msgid "Open a new tab with a viewer that displays efforts" msgstr "" #: taskcoachlib/gui/menu.py:470 msgid "Eff&ort for selected task(s)" msgstr "" #: taskcoachlib/gui/menu.py:471 msgid "" "Open a new tab with a viewer that displays efforts for the selected task" msgstr "" #: taskcoachlib/gui/menu.py:473 msgid "&Note" msgstr "註記(&N)" #: taskcoachlib/gui/menu.py:474 msgid "Open a new tab with a viewer that displays notes" msgstr "開啟新頁籤以顯示註記" #: taskcoachlib/gui/menu.py:534 msgid "&Hide" msgstr "隱藏(&H)" #: taskcoachlib/gui/menu.py:534 msgid "Hide the toolbar" msgstr "隱藏工具列" #: taskcoachlib/gui/menu.py:535 msgid "&Small images" msgstr "小圖示(&S)" #: taskcoachlib/gui/menu.py:535 msgid "Small images (16x16) on the toolbar" msgstr "工具列使用小圖示(16x16)" #: taskcoachlib/gui/menu.py:536 msgid "&Medium-sized images" msgstr "中圖示(&M)" #: taskcoachlib/gui/menu.py:536 msgid "Medium-sized images (22x22) on the toolbar" msgstr "工具列使用中圖示(22x22)" #: taskcoachlib/gui/menu.py:537 msgid "&Large images" msgstr "大圖示(&L)" #: taskcoachlib/gui/menu.py:537 msgid "Large images (32x32) on the toolbar" msgstr "工具列使用大圖示(32x32)" #: taskcoachlib/gui/menu.py:555 taskcoachlib/gui/menu.py:649 #: taskcoachlib/gui/uicommand/uicommand.py:1245 msgid "New task from &template" msgstr "從樣版新增任務(&t)" #: taskcoachlib/gui/menu.py:588 taskcoachlib/gui/menu.py:791 #: taskcoachlib/gui/menu.py:888 msgid "&Toggle category" msgstr "切換類別(&T)" #: taskcoachlib/gui/menu.py:599 msgid "Change task &priority" msgstr "更改任務優先權(&p)" #: taskcoachlib/gui/menu.py:660 taskcoachlib/gui/uicommand/uicommand.py:1671 #: taskcoachlib/gui/uicommand/uicommand.py:1713 msgid "&Start tracking effort" msgstr "開始追蹤工作量(&S)" #: taskcoachlib/gui/menu.py:711 taskcoachlib/gui/viewer/mixin.py:130 msgid "%s (subcategories)" msgstr "%s (子類別)" #: taskcoachlib/gui/menu.py:759 msgid "%s (subtasks)" msgstr "%s (子工作)" #: taskcoachlib/gui/menu.py:801 taskcoachlib/gui/viewer/mixin.py:433 #: taskcoachlib/gui/viewer/task.py:1210 msgid "&Priority" msgstr "優先權(&P)" #: taskcoachlib/gui/printer.py:93 msgid "Page" msgstr "頁面" #: taskcoachlib/gui/remindercontroller.py:93 msgid "%s Reminder" msgstr "%s 提醒" #: taskcoachlib/gui/taskbaricon.py:172 msgid "%d tasks overdue" msgstr "%d 件工作已逾期" #: taskcoachlib/gui/taskbaricon.py:172 msgid "one task overdue" msgstr "一件工作逾期" #: taskcoachlib/gui/taskbaricon.py:173 msgid "%d tasks due soon" msgstr "%d任務快到期" #: taskcoachlib/gui/taskbaricon.py:173 msgid "one task due soon" msgstr "一個任務快到期" #: taskcoachlib/gui/taskbaricon.py:184 msgid "tracking \"%s\"" msgstr "" #: taskcoachlib/gui/taskbaricon.py:186 msgid "tracking effort for %d tasks" msgstr "追蹤 %d 件工作的工作量" #: taskcoachlib/gui/uicommand/uicommand.py:91 msgid "&Open...\tCtrl+O" msgstr "開啟(&O)…\tCtrl+O" #: taskcoachlib/gui/uicommand/uicommand.py:105 msgid "Open %s" msgstr "開啟 %s" #: taskcoachlib/gui/uicommand/uicommand.py:113 msgid "&Merge..." msgstr "合併(&M)…" #: taskcoachlib/gui/uicommand/uicommand.py:114 msgid "Merge tasks from another file with the current file" msgstr "從另一個檔案與目前檔案中合併工作" #: taskcoachlib/gui/uicommand/uicommand.py:123 msgid "&Close\tCtrl+W" msgstr "關閉 (&C)\tCtrl+W" #: taskcoachlib/gui/uicommand/uicommand.py:134 msgid "&Save\tCtrl+S" msgstr "儲存(&S)\tCtrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:147 msgid "Merge &disk changes\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:161 msgid "S&ave as...\tShift+Ctrl+S" msgstr "另存新檔... (&A)\tShift+Ctrl+S" #: taskcoachlib/gui/uicommand/uicommand.py:173 msgid "Sa&ve selected tasks to new taskfile..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:174 msgid "Save the selected tasks to a separate taskfile" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:185 msgid "Save selected task as &template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:186 msgid "Save the selected task as a task template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:196 msgid "&Import template..." msgstr "匯入樣版..." #: taskcoachlib/gui/uicommand/uicommand.py:197 msgid "Import a new template from a template file" msgstr "從一樣版檔案匯入新樣版" #: taskcoachlib/gui/uicommand/uicommand.py:208 msgid "Edit templates..." msgstr "編輯樣版..." #: taskcoachlib/gui/uicommand/uicommand.py:209 msgid "Edit existing templates" msgstr "編輯現有樣版" #: taskcoachlib/gui/uicommand/uicommand.py:213 msgid "Edit templates" msgstr "編輯樣版" #: taskcoachlib/gui/uicommand/uicommand.py:220 msgid "&Purge deleted items" msgstr "清除已刪除的項目(&P)" #: taskcoachlib/gui/uicommand/uicommand.py:221 msgid "" "Actually delete deleted tasks and notes (see the SyncML chapter in Help)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:226 msgid "" "Purging deleted items is undoable.\n" "If you're planning on enabling\n" "the SyncML feature again with the\n" "same server you used previously,\n" "these items will probably come back.\n" "\n" "Do you still want to purge?" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:244 msgid "&Page setup...\tShift+Ctrl+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:264 msgid "&Print preview..." msgstr "預覽列印(&P)..." #: taskcoachlib/gui/uicommand/uicommand.py:265 msgid "Show a preview of what the print will look like" msgstr "預覽列印結果" #: taskcoachlib/gui/uicommand/uicommand.py:275 msgid "Print preview" msgstr "預覽列印" #: taskcoachlib/gui/uicommand/uicommand.py:284 msgid "&Print...\tCtrl+P" msgstr "&Print...\tCtrl+P" #: taskcoachlib/gui/uicommand/uicommand.py:333 msgid "Manage backups..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:334 msgid "Manage all task file backups" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:351 msgid "Export as &HTML..." msgstr "匯出為 HTML(&H)…" #: taskcoachlib/gui/uicommand/uicommand.py:352 msgid "Export items from a viewer in HTML format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:367 msgid "Export as &CSV..." msgstr "匯出為 CSV 檔案(&C)…" #: taskcoachlib/gui/uicommand/uicommand.py:368 msgid "Export items from a viewer in Comma Separated Values (CSV) format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:385 msgid "Export as &iCalendar..." msgstr "匯出為 iCalendar(&I)..." #: taskcoachlib/gui/uicommand/uicommand.py:386 msgid "Export items from a viewer in iCalendar format" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:412 msgid "Export as &Todo.txt..." msgstr "匯出為 Todo.txt..." #: taskcoachlib/gui/uicommand/uicommand.py:413 msgid "Export items from a viewer in Todo.txt format (see todotxt.com)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:439 msgid "&Import CSV..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:440 msgid "Import tasks from a Comma Separated Values (CSV) file" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:445 #: taskcoachlib/gui/uicommand/uicommand.py:450 #: taskcoachlib/gui/uicommand/uicommand.py:453 msgid "Import CSV" msgstr "匯入 CSV" #: taskcoachlib/gui/uicommand/uicommand.py:448 msgid "The selected file is empty. Please select a different file." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:467 msgid "&Import Todo.txt..." msgstr "匯入 Todo.txt...(&I)" #: taskcoachlib/gui/uicommand/uicommand.py:468 msgid "Import tasks from a Todo.txt (see todotxt.com) file" msgstr "從 Todo.txt (參見 todotxt.com)檔匯入任務" #: taskcoachlib/gui/uicommand/uicommand.py:472 msgid "Import Todo.txt" msgstr "匯入 Todo.txt" #: taskcoachlib/gui/uicommand/uicommand.py:483 msgid "S&yncML synchronization..." msgstr "SyncML 同步化...(&y)" #: taskcoachlib/gui/uicommand/uicommand.py:484 msgid "Synchronize with a SyncML server" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:495 msgid "&Quit\tCtrl+Q" msgstr "結束(&Q)\tCtrl+Q" #: taskcoachlib/gui/uicommand/uicommand.py:515 msgid "&Undo" msgstr "復原(&U)" #: taskcoachlib/gui/uicommand/uicommand.py:549 msgid "&Redo" msgstr "重做(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:576 msgid "Cu&t\tCtrl+X" msgstr "剪下(&T)\tCtrl+X" #: taskcoachlib/gui/uicommand/uicommand.py:600 msgid "&Copy\tCtrl+C" msgstr "複製(&C)\tCtrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:625 msgid "&Paste\tCtrl+V" msgstr "貼上(&P)\tCtrl+V" #: taskcoachlib/gui/uicommand/uicommand.py:652 msgid "P&aste as subitem\tShift+Ctrl+V" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:692 msgid "&Preferences...\tAlt+P" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:698 msgid "Preferences" msgstr "偏好設定" #: taskcoachlib/gui/uicommand/uicommand.py:707 msgid "&SyncML preferences..." msgstr "&SyncML 偏好設定..." #: taskcoachlib/gui/uicommand/uicommand.py:708 msgid "Edit SyncML preferences" msgstr "編輯 SyncML 偏好設定" #: taskcoachlib/gui/uicommand/uicommand.py:714 msgid "SyncML preferences" msgstr "SyncML 偏好設定" #: taskcoachlib/gui/uicommand/uicommand.py:725 #: taskcoachlib/gui/uicommand/uicommand.py:730 msgid "Customize toolbar" msgstr "自訂工具列" #: taskcoachlib/gui/uicommand/uicommand.py:726 msgid "Customize" msgstr "自訂" #: taskcoachlib/gui/uicommand/uicommand.py:737 msgid "&All\tCtrl+A" msgstr "全選(&A)\tCtrl+A" #: taskcoachlib/gui/uicommand/uicommand.py:759 msgid "&Clear selection" msgstr "清除選擇(&C)" #: taskcoachlib/gui/uicommand/uicommand.py:760 msgid "Unselect all items" msgstr "取消選擇所有項目" #: taskcoachlib/gui/uicommand/uicommand.py:772 msgid "&Clear all filters\tShift-Ctrl-R" msgstr "清除所有過濾器(&C)\tShift-Ctrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:789 msgid "&Reset all categories\tCtrl-R" msgstr "重設所有類別(&R) \tCtrl-R" #: taskcoachlib/gui/uicommand/uicommand.py:814 msgid "Show/hide items belonging to %s" msgstr "顯示/隱藏屬於 %s 的項目" #: taskcoachlib/gui/uicommand/uicommand.py:861 msgid "&Rename viewer..." msgstr "更改瀏覽器名稱(&R)..." #: taskcoachlib/gui/uicommand/uicommand.py:862 msgid "Rename the selected viewer" msgstr "更改所選擇的瀏覽器名稱" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "New title for the viewer:" msgstr "瀏覽器的新標題:" #: taskcoachlib/gui/uicommand/uicommand.py:867 msgid "Rename viewer" msgstr "更改瀏覽器名稱" #: taskcoachlib/gui/uicommand/uicommand.py:891 msgid "&Hide this column" msgstr "隱藏欄位(&H)" #: taskcoachlib/gui/uicommand/uicommand.py:892 msgid "Hide the selected column" msgstr "隱藏選擇欄位" #: taskcoachlib/gui/uicommand/uicommand.py:938 msgid "&Expand all items\tShift+Ctrl+E" msgstr "展開所有項目(&E)\tShift+Ctrl+E" #: taskcoachlib/gui/uicommand/uicommand.py:952 msgid "&Collapse all items\tShift+Ctrl+C" msgstr "摺疊所有項目(&C)\tShift+Ctrl+C" #: taskcoachlib/gui/uicommand/uicommand.py:973 msgid "&Ascending" msgstr "遞增(&A)" #: taskcoachlib/gui/uicommand/uicommand.py:974 msgid "Sort ascending (checked) or descending (unchecked)" msgstr "遞增排序(選取時)或遞減排序(未選取時)" #: taskcoachlib/gui/uicommand/uicommand.py:987 msgid "Sort &case sensitive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:988 msgid "" "When comparing text, sorting is case sensitive (checked) or insensitive " "(unchecked)" msgstr "排序時大小寫視為不同(選取時)或不同(未選取時)" #: taskcoachlib/gui/uicommand/uicommand.py:1003 msgid "Sort by status &first" msgstr "狀態排序(&F)" #: taskcoachlib/gui/uicommand/uicommand.py:1004 msgid "Sort tasks by status (active/inactive/completed) first" msgstr "以狀態排序工作(有效/無效/已完成)" #: taskcoachlib/gui/uicommand/uicommand.py:1041 msgid "Hide c&omposite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1042 msgid "Show/hide tasks with subtasks in list mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1057 msgid "&Edit...\tRETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1058 msgid "Edit the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1098 msgid "Edit &tracked task...\tShift-Alt-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1099 msgid "Edit the currently tracked task(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1115 msgid "&Delete\tCtrl+DEL" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1116 #: taskcoachlib/help/__init__.py:845 msgid "Delete the selected item(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1248 msgid "Create a new task from a template" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1254 msgid "New task with selected &categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1255 msgid "Insert a new task with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1266 msgid "New task with selected tasks as &prerequisites..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1267 msgid "Insert a new task with the selected tasks as prerequisite tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1278 msgid "New task with selected tasks as &dependents..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1279 msgid "Insert a new task with the selected tasks as dependent tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1289 msgid "New &subitem..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1290 msgid "New &subtask..." msgstr "新增子工作(&S)..." #: taskcoachlib/gui/uicommand/uicommand.py:1291 msgid "New &subnote..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1292 msgid "New &subcategory..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1296 msgid "Insert a new subitem of the selected item" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1316 msgid "Mark task &active\tAlt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1317 msgid "Mark the selected task(s) active" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1335 msgid "Mark task &inactive\tCtrl+Alt+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1336 msgid "Mark the selected task(s) inactive" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1354 msgid "Mark task &completed\tCtrl+RETURN" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1355 msgid "Mark the selected task(s) completed" msgstr "將選取工作標示為已完成" #: taskcoachlib/gui/uicommand/uicommand.py:1375 msgid "&Maximize priority\tShift+Ctrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1389 msgid "&Minimize priority\tShift+Ctrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1403 msgid "&Increase priority\tCtrl+I" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1417 msgid "&Decrease priority\tCtrl+D" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1474 msgid "Toggle %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tCtrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1510 msgid "&Mail...\tShift-Ctrl-M" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1525 msgid "Several things" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1528 msgid "and" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1570 msgid "" "Cannot send email:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1571 msgid "%s mail error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1578 msgid "Add ¬e...\tCtrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1595 msgid "Open all notes...\tShift+Ctrl+B" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1651 msgid "&Start tracking effort\tCtrl-T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1672 msgid "Start tracking effort for the task(s) of the selected effort(s)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1695 msgid "(No subject)" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1698 msgid "Start tracking effort for %s" msgstr "開始追蹤 %s 的工作量" #: taskcoachlib/gui/uicommand/uicommand.py:1714 msgid "Select a task via the menu and start tracking effort for it" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1726 msgid "Stop tracking or resume tracking effort\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1728 msgid "St&op tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1729 msgid "Stop tracking effort for the active task(s)" msgstr "停止追蹤有效工作的工作量" #: taskcoachlib/gui/uicommand/uicommand.py:1730 msgid "&Resume tracking %s\tShift+Ctrl+T" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1731 msgid "Resume tracking effort for the last tracked task" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1820 msgid "multiple tasks" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1857 msgid "New category...\tCtrl-G" msgstr "新增類別...\tCtrl-G" #: taskcoachlib/gui/uicommand/uicommand.py:1878 msgid "New note...\tCtrl-J" msgstr "新增註解...\tCtrl-J" #: taskcoachlib/gui/uicommand/uicommand.py:1903 msgid "New ¬e with selected categories..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1904 msgid "Insert a new note with the selected categories checked" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1936 msgid "&Add attachment...\tShift-Ctrl-A" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:1960 msgid "Error opening attachment" msgstr "開啟附件時發生錯誤" #: taskcoachlib/gui/uicommand/uicommand.py:1981 msgid "&Open all attachments...\tShift+Ctrl+O" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2023 msgid "&Help contents\tCtrl+?" msgstr "輔助內容 (&H)\tCtrl+?" #: taskcoachlib/gui/uicommand/uicommand.py:2026 msgid "&Help contents\tCtrl+H" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2028 msgid "Help" msgstr "輔助說明" #: taskcoachlib/gui/uicommand/uicommand.py:2034 msgid "&Tips" msgstr "提示(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:2035 msgid "Tips about the program" msgstr "關於程式的小技巧" #: taskcoachlib/gui/uicommand/uicommand.py:2044 msgid "Anonymize" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2045 msgid "Anonymize a task file to attach it to a bug report" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2050 msgid "Your task file has been anonymized and saved to:" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2051 msgid "Finished" msgstr "已完成" #: taskcoachlib/gui/uicommand/uicommand.py:2059 msgid "&About %s" msgstr "關於 %s (&A)" #: taskcoachlib/gui/uicommand/uicommand.py:2060 msgid "Version and contact information about %s" msgstr "%s 的版本與聯絡資訊" #: taskcoachlib/gui/uicommand/uicommand.py:2061 msgid "About %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2068 msgid "&License" msgstr "授權(&L)" #: taskcoachlib/gui/uicommand/uicommand.py:2069 #: taskcoachlib/gui/uicommand/uicommand.py:2070 msgid "%s license" msgstr "%s 授權說明" #: taskcoachlib/gui/uicommand/uicommand.py:2077 msgid "Check for update" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2078 msgid "Check for the availability of a new version of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2094 msgid "" "Cannot open URL:\n" "%s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2095 msgid "%s URL error" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2101 msgid "&Frequently asked questions" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2102 msgid "Browse the frequently asked questions and answers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2109 msgid "Report a &bug..." msgstr "錯誤回報..." #: taskcoachlib/gui/uicommand/uicommand.py:2110 msgid "Report a bug or browse known bugs" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2117 msgid "Request a &feature..." msgstr "功能建議..." #: taskcoachlib/gui/uicommand/uicommand.py:2118 msgid "Request a new feature or vote for existing requests" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2125 msgid "Request &support..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2126 msgid "Request user support from the developers" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2134 msgid "Help improve &translations..." msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2135 msgid "Help improve the translations of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2142 msgid "&Donate..." msgstr "&贊助..." #: taskcoachlib/gui/uicommand/uicommand.py:2143 msgid "Donate to support the development of %s" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2149 msgid "&Restore" msgstr "復原(&R)" #: taskcoachlib/gui/uicommand/uicommand.py:2150 msgid "Restore the window to its previous state" msgstr "回復視窗大小至先前狀態" #: taskcoachlib/gui/uicommand/uicommand.py:2161 msgid "Search" msgstr "搜尋" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort details" msgstr "工作量明細" #: taskcoachlib/gui/uicommand/uicommand.py:2274 msgid "Effort per day" msgstr "每日工作量" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per month" msgstr "每月工作量" #: taskcoachlib/gui/uicommand/uicommand.py:2275 msgid "Effort per week" msgstr "每週工作量" #: taskcoachlib/gui/uicommand/uicommand.py:2279 msgid "Aggregation mode" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "List" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2312 msgid "Tree" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2318 msgid "When checked, show tasks as tree, otherwise show tasks as list" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2349 msgid "Filter on all checked categories" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2350 msgid "Filter on any checked category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2356 msgid "" "When checked, filter on all checked categories, otherwise on any checked " "category" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2386 msgid "Order choice" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2413 msgid "&Configure" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2414 msgid "Configure the calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2427 msgid "Configure the hierarchical calendar viewer" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2445 #: taskcoachlib/gui/uicommand/uicommand.py:2452 msgid "&Next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2446 #: taskcoachlib/gui/uicommand/uicommand.py:2453 msgid "Show next period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2466 #: taskcoachlib/gui/uicommand/uicommand.py:2473 msgid "&Previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2467 #: taskcoachlib/gui/uicommand/uicommand.py:2474 msgid "Show previous period" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2487 #: taskcoachlib/gui/uicommand/uicommand.py:2494 msgid "&Today" msgstr "今天(&T)" #: taskcoachlib/gui/uicommand/uicommand.py:2488 #: taskcoachlib/gui/uicommand/uicommand.py:2495 msgid "Show today" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2511 msgid "&Automatic column resizing" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2512 msgid "When checked, automatically resize columns to fill available space" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2534 msgid "Set pie chart angle" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 msgid "No rounding" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2572 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1764 msgid "1 minute" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2573 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1766 msgid "%d minutes" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2576 msgid "Rounding precision" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2595 msgid "&Always round up" msgstr "" #: taskcoachlib/gui/uicommand/uicommand.py:2596 msgid "Always round up to the next rounding increment" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:73 msgid "Type" msgstr "類型" #: taskcoachlib/gui/viewer/attachment.py:85 msgid "Sort by subject" msgstr "以主題排序" #: taskcoachlib/gui/viewer/attachment.py:85 #: taskcoachlib/gui/viewer/mixin.py:289 msgid "Sub&ject" msgstr "主題(&J)" #: taskcoachlib/gui/viewer/attachment.py:95 msgid "Sort by description" msgstr "以說明排序" #: taskcoachlib/gui/viewer/attachment.py:95 #: taskcoachlib/gui/viewer/attachment.py:133 #: taskcoachlib/gui/viewer/category.py:150 #: taskcoachlib/gui/viewer/effort.py:292 taskcoachlib/gui/viewer/mixin.py:292 #: taskcoachlib/gui/viewer/note.py:96 taskcoachlib/gui/viewer/note.py:138 #: taskcoachlib/gui/viewer/task.py:1187 msgid "&Description" msgstr "說明(&D)" #: taskcoachlib/gui/viewer/attachment.py:114 #: taskcoachlib/gui/viewer/attachment.py:139 #: taskcoachlib/gui/viewer/category.py:159 #: taskcoachlib/gui/viewer/mixin.py:295 taskcoachlib/gui/viewer/note.py:105 #: taskcoachlib/gui/viewer/note.py:165 taskcoachlib/gui/viewer/task.py:1216 msgid "&Creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:115 msgid "Sort by creation date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:122 #: taskcoachlib/gui/viewer/attachment.py:142 #: taskcoachlib/gui/viewer/category.py:162 #: taskcoachlib/gui/viewer/mixin.py:299 taskcoachlib/gui/viewer/note.py:108 #: taskcoachlib/gui/viewer/note.py:173 taskcoachlib/gui/viewer/task.py:1219 msgid "&Modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:123 msgid "Sort by last modification date" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:134 #: taskcoachlib/gui/viewer/category.py:151 #: taskcoachlib/gui/viewer/effort.py:293 taskcoachlib/gui/viewer/note.py:97 #: taskcoachlib/gui/viewer/task.py:1188 msgid "Show/hide description column" msgstr "顯示/隱藏說明欄位" #: taskcoachlib/gui/viewer/attachment.py:136 #: taskcoachlib/gui/viewer/category.py:156 #: taskcoachlib/gui/viewer/task.py:1203 msgid "&Notes" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:137 #: taskcoachlib/gui/viewer/category.py:157 #: taskcoachlib/gui/viewer/task.py:1204 msgid "Show/hide notes column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:140 #: taskcoachlib/gui/viewer/category.py:160 taskcoachlib/gui/viewer/note.py:106 #: taskcoachlib/gui/viewer/task.py:1217 msgid "Show/hide creation date column" msgstr "" #: taskcoachlib/gui/viewer/attachment.py:143 #: taskcoachlib/gui/viewer/category.py:163 taskcoachlib/gui/viewer/note.py:109 #: taskcoachlib/gui/viewer/task.py:1220 msgid "Show/hide last modification date column" msgstr "" #: taskcoachlib/gui/viewer/base.py:87 msgid "Toolbars are customizable" msgstr "" #: taskcoachlib/gui/viewer/base.py:89 msgid "" "Click on the gear icon on the right to add buttons and rearrange them." msgstr "" #: taskcoachlib/gui/viewer/base.py:829 taskcoachlib/gui/viewer/base.py:837 msgid "Reordering in tree mode" msgstr "" #: taskcoachlib/gui/viewer/base.py:831 msgid "" "When in tree mode, manual ordering is only possible when all selected items " "are siblings." msgstr "" #: taskcoachlib/gui/viewer/base.py:839 msgid "" "When in tree mode, you can only put objects at the same level (parent)." msgstr "" #: taskcoachlib/gui/viewer/category.py:147 #: taskcoachlib/gui/viewer/mixin.py:327 taskcoachlib/gui/viewer/note.py:93 #: taskcoachlib/gui/viewer/note.py:119 taskcoachlib/gui/viewer/task.py:1184 msgid "&Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/category.py:148 taskcoachlib/gui/viewer/note.py:94 #: taskcoachlib/gui/viewer/task.py:1185 msgid "Show/hide the manual ordering column" msgstr "" #: taskcoachlib/gui/viewer/category.py:153 taskcoachlib/gui/viewer/note.py:99 #: taskcoachlib/gui/viewer/task.py:1199 msgid "&Attachments" msgstr "附件(&A)" #: taskcoachlib/gui/viewer/category.py:154 taskcoachlib/gui/viewer/note.py:100 msgid "Show/hide attachments column" msgstr "" #: taskcoachlib/gui/viewer/category.py:200 msgid "Categories: %d selected, %d total" msgstr "類別:%d 筆已選擇,共有 %d 筆" #: taskcoachlib/gui/viewer/category.py:203 msgid "Status: %d filtered" msgstr "狀態:%d 筆已過濾" #: taskcoachlib/gui/viewer/effort.py:210 msgid "Period" msgstr "期間" #: taskcoachlib/gui/viewer/effort.py:228 msgid "Total time spent" msgstr "總耗費時間" #: taskcoachlib/gui/viewer/effort.py:233 msgid "Total revenue" msgstr "總收入" #: taskcoachlib/gui/viewer/effort.py:242 msgid "Tuesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:245 msgid "Wednesday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:248 msgid "Thursday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:251 msgid "Friday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:254 msgid "Saturday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:295 taskcoachlib/gui/viewer/mixin.py:115 #: taskcoachlib/gui/viewer/note.py:102 taskcoachlib/gui/viewer/note.py:158 #: taskcoachlib/gui/viewer/task.py:1207 msgid "&Categories" msgstr "類別(&C)" #: taskcoachlib/gui/viewer/effort.py:296 taskcoachlib/gui/viewer/note.py:103 #: taskcoachlib/gui/viewer/task.py:1208 msgid "Show/hide categories column" msgstr "顯示/隱藏類別欄位" #: taskcoachlib/gui/viewer/effort.py:298 taskcoachlib/gui/viewer/mixin.py:431 #: taskcoachlib/gui/viewer/task.py:1161 msgid "&Time spent" msgstr "耗費時間(&T)" #: taskcoachlib/gui/viewer/effort.py:299 taskcoachlib/gui/viewer/task.py:1162 msgid "Show/hide time spent column" msgstr "顯示/隱藏耗費時間欄位" #: taskcoachlib/gui/viewer/effort.py:301 taskcoachlib/gui/viewer/mixin.py:436 #: taskcoachlib/gui/viewer/task.py:1180 msgid "&Revenue" msgstr "收入(&R)" #: taskcoachlib/gui/viewer/effort.py:302 taskcoachlib/gui/viewer/task.py:1181 msgid "Show/hide revenue column" msgstr "顯示/隱藏收入欄位" #: taskcoachlib/gui/viewer/effort.py:306 msgid "&Total time spent" msgstr "" #: taskcoachlib/gui/viewer/effort.py:307 msgid "Show/hide total time spent column" msgstr "" #: taskcoachlib/gui/viewer/effort.py:310 msgid "&Total revenue" msgstr "" #: taskcoachlib/gui/viewer/effort.py:311 msgid "Show/hide total revenue column" msgstr "顯示/隱藏總收入欄位" #: taskcoachlib/gui/viewer/effort.py:315 msgid "Effort per weekday" msgstr "" #: taskcoachlib/gui/viewer/effort.py:316 msgid "Show/hide time spent per weekday columns" msgstr "" #: taskcoachlib/gui/viewer/effort.py:363 msgid "Effort aggregation" msgstr "" #: taskcoachlib/gui/viewer/effort.py:408 msgid "" "Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s " "visible, %s total" msgstr "" #: taskcoachlib/gui/viewer/effort.py:412 msgid "Status: %d tracking" msgstr "狀態:%d 筆追蹤中" #: taskcoachlib/gui/viewer/effort.py:516 msgid "Details:" msgstr "" #: taskcoachlib/gui/viewer/effort.py:553 msgid "Effort for selected task(s)" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:337 msgid "Sort categories by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:338 msgid "Sort categories by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:339 msgid "Sort categories by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:340 msgid "Sort categories by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:341 msgid "Sort categories manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:356 msgid "Sort attachments by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:357 msgid "Sort attachments by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:358 msgid "Sort attachments by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:359 msgid "Sort attachments by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:360 msgid "Sort attachments by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:364 taskcoachlib/gui/viewer/note.py:128 msgid "Sort notes by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:365 taskcoachlib/gui/viewer/note.py:139 msgid "Sort notes by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:366 msgid "Sort notes by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:367 taskcoachlib/gui/viewer/note.py:166 msgid "Sort notes by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:368 taskcoachlib/gui/viewer/note.py:174 msgid "Sort notes by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:369 taskcoachlib/gui/viewer/note.py:120 msgid "Sort notes manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:374 msgid "Sort tasks by subject" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:375 msgid "Sort tasks by description" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:376 msgid "Sort tasks by category" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:377 msgid "Sort tasks by creation date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:378 msgid "Sort tasks by last modification date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:379 msgid "Sort tasks manually" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 msgid "Sort tasks by planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:422 taskcoachlib/gui/viewer/task.py:1133 msgid "&Planned start date" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:423 msgid "Sort tasks by due date" msgstr "以截止日期排序工作" #: taskcoachlib/gui/viewer/mixin.py:423 taskcoachlib/gui/viewer/task.py:1136 msgid "&Due date" msgstr "截止日期(&D)" #: taskcoachlib/gui/viewer/mixin.py:424 msgid "Sort tasks by completion date" msgstr "以完成日期排序工作" #: taskcoachlib/gui/viewer/mixin.py:424 taskcoachlib/gui/viewer/task.py:1142 msgid "&Completion date" msgstr "完成日期(&C)" #: taskcoachlib/gui/viewer/mixin.py:425 msgid "Sort tasks by prerequisite tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:425 taskcoachlib/gui/viewer/task.py:1190 msgid "&Prerequisites" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 msgid "Sort tasks by dependent tasks" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:426 taskcoachlib/gui/viewer/task.py:1193 msgid "&Dependents" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 msgid "Sort tasks by time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:427 taskcoachlib/gui/viewer/task.py:1145 msgid "&Time left" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 msgid "Sort tasks by percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:428 taskcoachlib/gui/viewer/task.py:1196 msgid "&Percentage complete" msgstr "" #: taskcoachlib/gui/viewer/mixin.py:429 msgid "Sort tasks by recurrence" msgstr "依循環排序工作" #: taskcoachlib/gui/viewer/mixin.py:429 taskcoachlib/gui/viewer/task.py:1148 msgid "&Recurrence" msgstr "循環 (&R)" #: taskcoachlib/gui/viewer/mixin.py:430 msgid "Sort tasks by budget" msgstr "以預算排序工作" #: taskcoachlib/gui/viewer/mixin.py:430 taskcoachlib/gui/viewer/task.py:1152 #: taskcoachlib/gui/viewer/task.py:1158 msgid "&Budget" msgstr "預算(&B)" #: taskcoachlib/gui/viewer/mixin.py:431 msgid "Sort tasks by time spent" msgstr "以耗費時間排序工作" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Budget &left" msgstr "剩餘預算(&L)" #: taskcoachlib/gui/viewer/mixin.py:432 msgid "Sort tasks by budget left" msgstr "以剩餘預算排序工作" #: taskcoachlib/gui/viewer/mixin.py:433 msgid "Sort tasks by priority" msgstr "以優先權排序工作" #: taskcoachlib/gui/viewer/mixin.py:434 msgid "Sort tasks by hourly fee" msgstr "以每小時報酬排序工作" #: taskcoachlib/gui/viewer/mixin.py:434 taskcoachlib/gui/viewer/task.py:1174 msgid "&Hourly fee" msgstr "每小時報酬(&H)" #: taskcoachlib/gui/viewer/mixin.py:435 msgid "Sort tasks by fixed fee" msgstr "以固定報酬排序工作" #: taskcoachlib/gui/viewer/mixin.py:435 taskcoachlib/gui/viewer/task.py:1177 msgid "&Fixed fee" msgstr "固定報酬(&F)" #: taskcoachlib/gui/viewer/mixin.py:436 msgid "Sort tasks by revenue" msgstr "以收入排序工作" #: taskcoachlib/gui/viewer/mixin.py:437 msgid "Sort tasks by reminder date and time" msgstr "以提醒日期與時間排序工作" #: taskcoachlib/gui/viewer/mixin.py:437 taskcoachlib/gui/viewer/task.py:1213 msgid "&Reminder" msgstr "提醒(&R)" #: taskcoachlib/gui/viewer/note.py:127 msgid "&Subject" msgstr "" #: taskcoachlib/gui/viewer/note.py:159 msgid "Sort notes by categories" msgstr "" #: taskcoachlib/gui/viewer/note.py:184 msgid "Notes: %d selected, %d total" msgstr "註記:%d 筆已選擇,共 %d 筆" #: taskcoachlib/gui/viewer/note.py:186 msgid "Status: n/a" msgstr "狀態:無" #: taskcoachlib/gui/viewer/task.py:52 msgid "Tasks: %d selected, %d visible, %d total" msgstr "工作:%d 筆已選擇,%d 筆為可見,全部共 %d 筆" #: taskcoachlib/gui/viewer/task.py:53 msgid "Status: %d overdue, %d late, %d inactive, %d completed" msgstr "狀態:%d 過期, %d超時, %d未開始, %d 已完成" #: taskcoachlib/gui/viewer/task.py:87 msgid "" "Shift-click on a filter tool to see only tasks belonging to the " "corresponding status" msgstr "" #: taskcoachlib/gui/viewer/task.py:132 taskcoachlib/help/__init__.py:81 #: taskcoachlib/help/__init__.py:159 taskcoachlib/widgets/hcalendar.py:286 msgid "Tasks" msgstr "工作" #: taskcoachlib/gui/viewer/task.py:342 msgid "Timeline" msgstr "" #: taskcoachlib/gui/viewer/task.py:439 msgid "Now" msgstr "" #: taskcoachlib/gui/viewer/task.py:452 msgid "Task square map" msgstr "" #: taskcoachlib/gui/viewer/task.py:499 msgid "Lay out tasks by" msgstr "" #: taskcoachlib/gui/viewer/task.py:604 msgid "Hierarchical calendar" msgstr "" #: taskcoachlib/gui/viewer/task.py:647 msgid "Hierarchical calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:861 msgid "Calendar viewer configuration" msgstr "" #: taskcoachlib/gui/viewer/task.py:886 msgid "Manual ordering" msgstr "" #: taskcoachlib/gui/viewer/task.py:888 msgid "" "Show the \"Manual ordering\" column, then drag and drop items from this " "column to sort them arbitrarily." msgstr "" #: taskcoachlib/gui/viewer/task.py:1022 msgid "Dependents" msgstr "" #: taskcoachlib/gui/viewer/task.py:1055 msgid "% complete" msgstr "" #: taskcoachlib/gui/viewer/task.py:1059 msgid "Time left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1125 msgid "&Dates" msgstr "日期(&D)" #: taskcoachlib/gui/viewer/task.py:1126 msgid "&All date columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1127 msgid "Show/hide all date-related columns" msgstr "顯示/隱藏所有日期相關欄位" #: taskcoachlib/gui/viewer/task.py:1134 msgid "Show/hide planned start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1137 msgid "Show/hide due date column" msgstr "顯示/隱藏截止日期欄位" #: taskcoachlib/gui/viewer/task.py:1139 msgid "&Actual start date" msgstr "" #: taskcoachlib/gui/viewer/task.py:1140 msgid "Show/hide actual start date column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1143 msgid "Show/hide completion date column" msgstr "顯示/隱藏完成日期欄位" #: taskcoachlib/gui/viewer/task.py:1146 msgid "Show/hide time left column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1149 msgid "Show/hide recurrence column" msgstr "顯示/隱藏重現欄位" #: taskcoachlib/gui/viewer/task.py:1153 msgid "&All budget columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1154 msgid "Show/hide all budget-related columns" msgstr "顯示/隱藏所有預算相關欄位" #: taskcoachlib/gui/viewer/task.py:1159 msgid "Show/hide budget column" msgstr "顯示/隱藏預算欄位" #: taskcoachlib/gui/viewer/task.py:1164 msgid "&Budget left" msgstr "" #: taskcoachlib/gui/viewer/task.py:1165 msgid "Show/hide budget left column" msgstr "顯示/隱藏剩餘預算欄位" #: taskcoachlib/gui/viewer/task.py:1168 msgid "&Financial" msgstr "財務(&F)" #: taskcoachlib/gui/viewer/task.py:1169 msgid "&All financial columns" msgstr "" #: taskcoachlib/gui/viewer/task.py:1170 msgid "Show/hide all finance-related columns" msgstr "顯示/隱藏所有財務相關欄位" #: taskcoachlib/gui/viewer/task.py:1175 msgid "Show/hide hourly fee column" msgstr "顯示/隱藏每小時報酬欄位" #: taskcoachlib/gui/viewer/task.py:1178 msgid "Show/hide fixed fee column" msgstr "顯示/隱藏固定報酬欄位" #: taskcoachlib/gui/viewer/task.py:1191 msgid "Show/hide prerequisites column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1194 msgid "Show/hide dependents column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1197 msgid "Show/hide percentage complete column" msgstr "" #: taskcoachlib/gui/viewer/task.py:1200 msgid "Show/hide attachment column" msgstr "顯示/隱藏附件欄位" #: taskcoachlib/gui/viewer/task.py:1211 msgid "Show/hide priority column" msgstr "顯示/隱藏優先權欄位" #: taskcoachlib/gui/viewer/task.py:1214 msgid "Show/hide reminder column" msgstr "顯示/隱藏提醒欄位" #: taskcoachlib/gui/viewer/task.py:1234 msgid "Show tasks as" msgstr "" #: taskcoachlib/gui/viewer/task.py:1422 msgid "Task statistics" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:47 msgid "Comma" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:48 taskcoachlib/help/__init__.py:841 msgid "Tab" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:49 msgid "Space" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:50 msgid "Colon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:51 msgid "Semicolon" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:52 msgid "Pipe" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:56 msgid "DD/MM (day first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:57 msgid "MM/DD (month first)" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:61 msgid "Simple quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:62 msgid "Double quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:66 msgid "Double it" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:68 msgid "Escape with" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:79 msgid "Import only the selected rows" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:82 msgid "First line describes fields" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:95 msgid "Delimiter" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:99 msgid "Date format" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:103 msgid "Quote character" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:107 msgid "Escape quote" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:172 msgid "Field #%d" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:217 msgid "Please select a file." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:228 #: taskcoachlib/persistence/csv/reader.py:74 msgid "ID" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:231 #: taskcoachlib/persistence/csv/reader.py:81 msgid "Category" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:237 #: taskcoachlib/persistence/csv/generator.py:39 #: taskcoachlib/persistence/csv/reader.py:102 msgid "Reminder date" msgstr "提醒日期" #: taskcoachlib/gui/wizard/csvimport.py:241 #: taskcoachlib/persistence/csv/reader.py:128 msgid "Percent complete" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:264 msgid "Column header in CSV file" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:265 msgid "%s attribute" msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:306 msgid "No field mapping." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:309 msgid "The \"%s\" field cannot be selected several times." msgstr "" #: taskcoachlib/gui/wizard/csvimport.py:312 msgid "The fields %s cannot be selected several times." msgstr "" #: taskcoachlib/help/__init__.py:78 msgid "Table of contents" msgstr "" #: taskcoachlib/help/__init__.py:83 taskcoachlib/help/__init__.py:161 msgid "About tasks" msgstr "" #: taskcoachlib/help/__init__.py:84 taskcoachlib/help/__init__.py:167 msgid "Task properties" msgstr "" #: taskcoachlib/help/__init__.py:85 taskcoachlib/help/__init__.py:205 msgid "Task states" msgstr "" #: taskcoachlib/help/__init__.py:86 taskcoachlib/help/__init__.py:225 msgid "Task colors" msgstr "" #: taskcoachlib/help/__init__.py:87 taskcoachlib/help/__init__.py:242 msgid "Reminders" msgstr "提醒" #: taskcoachlib/help/__init__.py:91 taskcoachlib/help/__init__.py:256 msgid "About effort" msgstr "" #: taskcoachlib/help/__init__.py:92 taskcoachlib/help/__init__.py:263 msgid "Effort properties" msgstr "" #: taskcoachlib/help/__init__.py:96 taskcoachlib/help/__init__.py:282 msgid "About categories" msgstr "" #: taskcoachlib/help/__init__.py:97 taskcoachlib/help/__init__.py:295 msgid "Category properties" msgstr "" #: taskcoachlib/help/__init__.py:101 taskcoachlib/help/__init__.py:317 msgid "About notes" msgstr "" #: taskcoachlib/help/__init__.py:102 taskcoachlib/help/__init__.py:325 msgid "Note properties" msgstr "" #: taskcoachlib/help/__init__.py:104 taskcoachlib/help/__init__.py:336 msgid "Printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:106 taskcoachlib/help/__init__.py:338 msgid "About printing and exporting" msgstr "" #: taskcoachlib/help/__init__.py:108 taskcoachlib/help/__init__.py:348 msgid "Printing" msgstr "印刷" #: taskcoachlib/help/__init__.py:109 taskcoachlib/help/__init__.py:360 msgid "Exporting" msgstr "" #: taskcoachlib/help/__init__.py:111 taskcoachlib/help/__init__.py:387 msgid "Multi-user usage" msgstr "" #: taskcoachlib/help/__init__.py:113 taskcoachlib/help/__init__.py:389 msgid "About multi-user" msgstr "" #: taskcoachlib/help/__init__.py:114 taskcoachlib/help/__init__.py:406 msgid "Storage options" msgstr "" #: taskcoachlib/help/__init__.py:116 taskcoachlib/help/__init__.py:374 msgid "E-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:118 msgid "Custom attributes for e-mailing" msgstr "" #: taskcoachlib/help/__init__.py:120 taskcoachlib/help/__init__.py:430 msgid "E-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:122 taskcoachlib/help/__init__.py:432 msgid "About e-mail integration" msgstr "" #: taskcoachlib/help/__init__.py:123 taskcoachlib/help/__init__.py:452 msgid "Attaching an e-mail to a task" msgstr "" #: taskcoachlib/help/__init__.py:124 taskcoachlib/help/__init__.py:459 msgid "Creating a task from an e-mail" msgstr "" #: taskcoachlib/help/__init__.py:126 taskcoachlib/help/__init__.py:469 msgid "SyncML support" msgstr "" #: taskcoachlib/help/__init__.py:128 taskcoachlib/help/__init__.py:471 msgid "What is SyncML" msgstr "" #: taskcoachlib/help/__init__.py:129 taskcoachlib/help/__init__.py:493 msgid "Setup" msgstr "" #: taskcoachlib/help/__init__.py:130 taskcoachlib/help/__init__.py:512 msgid "Limitations" msgstr "" #: taskcoachlib/help/__init__.py:131 taskcoachlib/help/__init__.py:138 #: taskcoachlib/help/__init__.py:527 taskcoachlib/help/__init__.py:632 msgid "Troubleshooting" msgstr "" #: taskcoachlib/help/__init__.py:132 taskcoachlib/help/__init__.py:539 msgid "Purging deleted items" msgstr "" #: taskcoachlib/help/__init__.py:134 msgid "iPhone and iPod Touch" msgstr "iPhone 和 iPod Touch" #: taskcoachlib/help/__init__.py:136 msgid "%(name)s on the iPhone" msgstr "" #: taskcoachlib/help/__init__.py:137 taskcoachlib/help/__init__.py:578 msgid "Configuration" msgstr "" #: taskcoachlib/help/__init__.py:140 taskcoachlib/help/__init__.py:653 msgid "Android" msgstr "" #: taskcoachlib/help/__init__.py:142 taskcoachlib/help/__init__.py:655 msgid "%(name)s on Android?" msgstr "" #: taskcoachlib/help/__init__.py:143 taskcoachlib/help/__init__.py:663 msgid "Todo.txt and Todo.txt Touch" msgstr "" #: taskcoachlib/help/__init__.py:144 taskcoachlib/help/__init__.py:687 msgid "Importing todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:145 taskcoachlib/help/__init__.py:700 msgid "Exporting todo.txt" msgstr "" #: taskcoachlib/help/__init__.py:147 taskcoachlib/help/__init__.py:727 msgid "Task templates" msgstr "" #: taskcoachlib/help/__init__.py:149 taskcoachlib/help/__init__.py:729 msgid "About templates" msgstr "關於樣版" #: taskcoachlib/help/__init__.py:150 taskcoachlib/help/__init__.py:736 msgid "Using templates" msgstr "使用樣版" #: taskcoachlib/help/__init__.py:152 taskcoachlib/help/__init__.py:771 msgid "Graphical user interface" msgstr "" #: taskcoachlib/help/__init__.py:154 taskcoachlib/help/__init__.py:793 msgid "Keyboard shortcuts" msgstr "" #: taskcoachlib/help/__init__.py:163 msgid "" "Tasks are the basic objects that you manipulate. Tasks can\n" "represent anything from a single little thing you have to do to a complete \n" "project consisting of different phases and numerous activities." msgstr "" #: taskcoachlib/help/__init__.py:169 msgid "Tasks have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:171 msgid "Subject: a single line that summarizes the task." msgstr "" #: taskcoachlib/help/__init__.py:172 msgid "Description: a multi-line description of the task." msgstr "" #: taskcoachlib/help/__init__.py:173 msgid "" "Planned start date: the first date on which the task can be started. \n" "The planned start date defaults to the date the task is created. It can also " "be 'None' \n" "indicating that you don't really want to start this task. This can be " "convenient \n" "for e.g. registering sick leave." msgstr "" #: taskcoachlib/help/__init__.py:177 msgid "" "Due date: the date the task should be finished. \n" "This can be 'None' indicating that this task has no fixed due date." msgstr "" #: taskcoachlib/help/__init__.py:179 msgid "" "Actual start date: the date the task was actually started.\n" "The actual start date can be edited directly, but it is also set when you \n" "track effort for the task or when you set the percentage completed of a " "task\n" "to a value between 0% and 100%." msgstr "" #: taskcoachlib/help/__init__.py:183 msgid "" "Completion date: this date is 'None' as long as the task has \n" "not been completed. It is set to the current date when you mark the task as " "\n" "completed. The completion date can also be entered manually." msgstr "" #: taskcoachlib/help/__init__.py:186 msgid "" "Prerequisites: other tasks that need to be completed before\n" "a task can be started. The task remains inactive until the last prerequisite " "task is \n" "completed. Note that if the task has a specific planned start date set, " "that\n" "date has to be in the past and all prerequisite tasks need to be\n" "completed before the task becomes late." msgstr "" #: taskcoachlib/help/__init__.py:191 msgid "Budget: amount of hours available for the task." msgstr "" #: taskcoachlib/help/__init__.py:192 msgid "Hourly fee: the amount of money earned with the task per hour." msgstr "" #: taskcoachlib/help/__init__.py:193 msgid "" "Fixed fee: the amount of money earned with the task \n" "regardless of the time spent." msgstr "" #: taskcoachlib/help/__init__.py:196 taskcoachlib/help/__init__.py:273 msgid "The following properties are calculated from the properties above:" msgstr "" #: taskcoachlib/help/__init__.py:198 msgid "Days left: the number of days left until the due date." msgstr "" #: taskcoachlib/help/__init__.py:199 msgid "" "Dependents: other tasks that can be started when the \n" "prerequisite task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:201 msgid "Time spent: effort spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:202 msgid "Budget left: task budget minus time spent on the task." msgstr "" #: taskcoachlib/help/__init__.py:203 msgid "Revenue: hourly fee times hours spent plus fixed fee." msgstr "" #: taskcoachlib/help/__init__.py:207 msgid "Tasks always have exactly one of the following states:" msgstr "" #: taskcoachlib/help/__init__.py:209 msgid "Active: the actual start date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:210 msgid "" "Inactive: the task has not been started and/or not all \n" "prerequisite tasks have been completed;" msgstr "" #: taskcoachlib/help/__init__.py:212 msgid "Completed: the task has been completed." msgstr "" #: taskcoachlib/help/__init__.py:214 msgid "In addition, tasks can be referenced as:" msgstr "" #: taskcoachlib/help/__init__.py:216 msgid "Overdue: the due date is in the past;" msgstr "" #: taskcoachlib/help/__init__.py:217 msgid "" "Due soon: the due date is soon (what 'soon' is, can be \n" "changed in the preferences);" msgstr "" #: taskcoachlib/help/__init__.py:219 msgid "" "Late: the planned start is in the past and the task has \n" "not been started;" msgstr "" #: taskcoachlib/help/__init__.py:221 msgid "Over budget: no budget left;" msgstr "" #: taskcoachlib/help/__init__.py:222 msgid "Under budget: still budget left;" msgstr "" #: taskcoachlib/help/__init__.py:223 msgid "No budget: the task has no budget." msgstr "" #: taskcoachlib/help/__init__.py:227 msgid "The text of tasks is colored according to the following rules:" msgstr "" #: taskcoachlib/help/__init__.py:229 msgid "Overdue tasks are red;" msgstr "" #: taskcoachlib/help/__init__.py:230 msgid "Tasks due soon are orange;" msgstr "" #: taskcoachlib/help/__init__.py:231 msgid "Active tasks are black text with a blue icon;" msgstr "" #: taskcoachlib/help/__init__.py:232 msgid "Late tasks are purple;" msgstr "" #: taskcoachlib/help/__init__.py:233 msgid "Future tasks are gray, and" msgstr "" #: taskcoachlib/help/__init__.py:234 msgid "Completed tasks are green." msgstr "" #: taskcoachlib/help/__init__.py:235 msgid "" "This all assumes you have not changed the text colors through the \n" "preferences dialog, of course." msgstr "" #: taskcoachlib/help/__init__.py:238 msgid "" "The background color of tasks is determined by the categories the \n" "task belongs to. See the section about \n" "category properties below." msgstr "" #: taskcoachlib/help/__init__.py:244 msgid "" "You can set a reminder for a specific date and time. %(name)s will\n" "show a reminder message at that date and time. From the reminder dialog\n" "you can open the task, start tracking effort for the task, or mark the task\n" "completed. It is also possible to snooze the reminder." msgstr "" #: taskcoachlib/help/__init__.py:249 msgid "" "If you have Growl or Snarl installed, you can instruct\n" "%(name)s to use these for reminders in the preferences dialog." msgstr "" #: taskcoachlib/help/__init__.py:258 msgid "" "Whenever you spent time on tasks, you can record the amount of time\n" "spent by tracking effort. Select a task and invoke 'Start tracking effort' " "in\n" "the Effort menu or context menu or via the 'Start tracking effort' toolbar \n" "button." msgstr "" #: taskcoachlib/help/__init__.py:265 msgid "Effort records have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:267 msgid "Task: the task the effort belongs to." msgstr "" #: taskcoachlib/help/__init__.py:268 msgid "Start date/time: start date and time of the effort." msgstr "" #: taskcoachlib/help/__init__.py:269 msgid "" "Stop date/time: stop date and time of the effort. This can be \n" "'None' as long as you are still working on the task." msgstr "" #: taskcoachlib/help/__init__.py:271 msgid "Description: a multi-line description of the effort." msgstr "" #: taskcoachlib/help/__init__.py:275 msgid "Time spent: how much time you have spent working on the task." msgstr "" #: taskcoachlib/help/__init__.py:276 msgid "Revenue: money earned with the time spent." msgstr "" #: taskcoachlib/help/__init__.py:284 msgid "" "Tasks and notes may belong to one or more categories. First, you \n" "need to create the category that you want to use via the 'Category' menu. " "Then, \n" "you can add items to one or more categories by editing the item and checking " "the \n" "relevant categories for that item in the category pane of the edit dialog." msgstr "" #: taskcoachlib/help/__init__.py:289 msgid "" "You can limit the items shown in the task and notes viewers to one \n" "or more categories by checking a category in the category viewer. For " "example, \n" "if you have a category 'phone calls' and you check that category, the task \n" "viewers will only show tasks belonging to that category; in other words the " "\n" "phone calls you need to make." msgstr "" #: taskcoachlib/help/__init__.py:297 msgid "Categories have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:299 msgid "Subject: a single line that summarizes the category." msgstr "" #: taskcoachlib/help/__init__.py:300 msgid "Description: a multi-line description of the category." msgstr "" #: taskcoachlib/help/__init__.py:301 msgid "" "Mutually exclusive subcategories: a check box indicating\n" "whether the subcategories of the category are mutually exclusive. If they " "are,\n" "items can only belong to one of the subcategories. When filtering, you can " "only\n" "filter by one of the subcategories at a time." msgstr "" #: taskcoachlib/help/__init__.py:305 msgid "" "Appearance properties such as icon, font and colors: \n" "the appearance properties are used to render the category, but also the " "items\n" "that belong to that category. If a category has no color, font or icon of " "its \n" "own, but it has a parent category with such a property, the parent's " "property \n" "will be used. If an item belongs to multiple categories that each have a " "color \n" "associated with it, a mixture of those colors will be used to render that \n" "item." msgstr "" #: taskcoachlib/help/__init__.py:319 msgid "" "Notes can be used to capture random information that you want\n" "to keep in your task file. Notes can be stand-alone or be part of other " "items,\n" "such as tasks and categories. Stand-alone notes are displayed in the notes\n" "viewer. Notes that are part of other items are not displayed in the notes\n" "viewer." msgstr "" #: taskcoachlib/help/__init__.py:327 msgid "Notes have the following properties you can change:" msgstr "" #: taskcoachlib/help/__init__.py:329 msgid "Subject: a single line that summarizes the note." msgstr "" #: taskcoachlib/help/__init__.py:330 msgid "Description: a multi-line description of the note." msgstr "" #: taskcoachlib/help/__init__.py:331 msgid "Appearance properties such as icon, font and colors." msgstr "" #: taskcoachlib/help/__init__.py:340 msgid "" "Both printing and exporting work in the same way: when you print\n" "or export data, the data from the active viewer is printed or exported.\n" "Moreover, the data is printed or exported in the same way as the viewer is \n" "displaying it. The data is printed or exported in the same order as the\n" "viewer is displaying it. The columns that are visible determine what \n" "details get printed or exported. When you filter items, for example hide\n" "completed tasks, those items don't get printed or exported." msgstr "" #: taskcoachlib/help/__init__.py:350 taskcoachlib/help/__init__.py:362 msgid "" "Prepare the contents of a viewer, by putting the items in the \n" "right order, show or hide the appropriate columns and apply the relevant \n" "filters." msgstr "" #: taskcoachlib/help/__init__.py:354 msgid "" "You can preview how the print will look\n" "using the File -> Print preview menu item. You can edit the page settings\n" "using File -> Page setup. When printing and the platform supports it, you " "can \n" "choose to print all visible items in the active viewer, or just the \n" "selected items." msgstr "" #: taskcoachlib/help/__init__.py:366 msgid "" "Next, choose the format you want to export to and whether you\n" "want to export all visible items or just the selected ones. Available " "formats\n" "to export to include CSV (comma separated format), HTML and iCalendar. When\n" "you export to HTML, a CSS file is created that you can edit to change\n" "the appearance of the HTML." msgstr "" #: taskcoachlib/help/__init__.py:376 msgid "Custom attributes for e-mailing tasks" msgstr "" #: taskcoachlib/help/__init__.py:378 msgid "" "You can alter the behaviour of the e-mail command using custom attributes\n" "in a task description. Those attributes must be on a line by themselves. " "Supported\n" "attributes are 'cc' and 'to'. Examples:" msgstr "" #: taskcoachlib/help/__init__.py:381 msgid "[email:to=foo@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:382 msgid "[email:cc=bar@spam.com]" msgstr "" #: taskcoachlib/help/__init__.py:391 msgid "" "A task file may be opened by several instances of %(name)s, either\n" "running on the same computer or on different ones, on a network share for\n" "instance. When you save, %(name)s will actually merge your work with " "whatever\n" "has been saved on disk since the last time you did. Conflicts are " "automatically\n" "resolved, usually by you winning the conflict. This serves two use cases:" msgstr "" #: taskcoachlib/help/__init__.py:397 msgid "" "A single user, opening the task file on several computers (work,\n" "home, laptop)." msgstr "" #: taskcoachlib/help/__init__.py:399 msgid "Several users working on the same task file." msgstr "" #: taskcoachlib/help/__init__.py:401 msgid "" "The first case is the most common and the most secure. The second\n" "case may be dangerous. Most network disk sharing protocols do not support " "the\n" "kind of file locking that would make this 100% secure. A list of common " "protocols\n" "and their behaviour follows." msgstr "" #: taskcoachlib/help/__init__.py:408 msgid "" "None of the sharing options discussed here work fully. If two users\n" "save their changes within a few hundreds of milliseconds time frame, data " "will be lost." msgstr "" #: taskcoachlib/help/__init__.py:411 msgid "SMB/CIFS" msgstr "" #: taskcoachlib/help/__init__.py:413 msgid "" "This is the most common protocol: Windows shares and their lookalikes\n" "(Samba). If the server and client don't support certain extensions, Task " "Coach will not\n" "be able to detect automatically when the file has been modified by someone " "else." msgstr "" #: taskcoachlib/help/__init__.py:417 msgid "NFS" msgstr "" #: taskcoachlib/help/__init__.py:419 msgid "Not tested yet." msgstr "" #: taskcoachlib/help/__init__.py:421 msgid "DropBox" msgstr "" #: taskcoachlib/help/__init__.py:423 msgid "" "A popular way to access files from several computers (also see SpiderOak\n" "for a more secure alternative). Changes to the task file are correctly " "detected by %(name)s\n" "when it's updated." msgstr "" #: taskcoachlib/help/__init__.py:434 msgid "" "%(name)s integrates with several mail user\n" "agents, through drag and drop. This has some limitations; e-mails are\n" "copied in a directory next to the %(name)s file, as .eml files and are\n" "later opened using whatever program is associated with this file type\n" "on your system. On the other hand, this allows you to open these\n" "e-mail attachments on a system which is different from the one you\n" "created it first." msgstr "" #: taskcoachlib/help/__init__.py:442 msgid "Mail user agents supported include:" msgstr "" #: taskcoachlib/help/__init__.py:444 msgid "Mozilla Thunderbird" msgstr "" #: taskcoachlib/help/__init__.py:445 msgid "Microsoft Outlook" msgstr "" #: taskcoachlib/help/__init__.py:446 msgid "Claws Mail" msgstr "" #: taskcoachlib/help/__init__.py:447 msgid "Apple Mail" msgstr "" #: taskcoachlib/help/__init__.py:449 msgid "" "Due to a Thunderbird limitation, you can't drag and drop several\n" "e-mails from Thunderbird. This does not apply to Outlook." msgstr "" #: taskcoachlib/help/__init__.py:454 msgid "There are two ways to attach an e-mail to a task; you can:" msgstr "" #: taskcoachlib/help/__init__.py:456 msgid "Drop it on a task either in the task tree or the task list." msgstr "" #: taskcoachlib/help/__init__.py:457 msgid "Drop it in the attachment pane in the task editor." msgstr "" #: taskcoachlib/help/__init__.py:461 msgid "" "Dropping an e-mail on an empty part of the task tree or task list\n" "creates a new task. Its subject is the subject of the mail, its\n" "description is its content. Additionally, the mail is automatically\n" "attached to the newly created task." msgstr "" #: taskcoachlib/help/__init__.py:473 msgid "" "SyncML is an XML protocol designed to synchronize several\n" "applications with a server. A popular open-source server is Funambol. " "Synchronization \n" "clients are available for many devices and applications (Outlook, Pocket " "PC,\n" "iPod, iPhone, Evolution, etc...), as well as so-called \"connectors\"\n" "which allow the server to synchronize with Exchange, Google Calendar,\n" "etc." msgstr "" #: taskcoachlib/help/__init__.py:481 msgid "" "%(name)s has built-in SyncML client support on Windows and Mac OS X\n" "(provided that you use the supplied binaries). This means you can\n" "setup %(name)s to synchronize with the same SyncML server you\n" "synchronize Outlook with and have all Outlook tasks and notes in\n" "your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or\n" "your Pocket PC." msgstr "" #: taskcoachlib/help/__init__.py:488 msgid "" "On Linux, you must install the SyncML client binding for\n" "Python yourself. A 64 bits Debian package for Python 2.7 is available on\n" "taskcoach.org,\n" "at the end of the Linux downloads section." msgstr "" #: taskcoachlib/help/__init__.py:495 msgid "" "This feature is optional and off by default. In order to turn it on,\n" "go to the preferences dialog and check it on the Features page." msgstr "" #: taskcoachlib/help/__init__.py:498 msgid "" "To setup SyncML, edit the SyncML preferences in Edit/SyncML \n" "preferences. Fill in the synchronization URL, your ID on the server and " "choose \n" "which items to synchronize (tasks and/or notes). The URL depends on the " "server\n" "you choose; some examples are:" msgstr "" #: taskcoachlib/help/__init__.py:506 msgid "" "The database names are pretty standard; the default values \n" "should work." msgstr "" #: taskcoachlib/help/__init__.py:509 msgid "" "Each task file has its own client ID, so that two different task \n" "files will be considered different \"devices\" by the server." msgstr "" #: taskcoachlib/help/__init__.py:514 msgid "" "Some limitations are due to the fact that, the underlying data \n" "type being vcalendar, some %(name)s features cannot be presented to the \n" "server." msgstr "" #: taskcoachlib/help/__init__.py:518 msgid "Task and category hierarchy are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:519 msgid "Recurrence and reminders are not supported yet." msgstr "循環和提醒還未被支援." #: taskcoachlib/help/__init__.py:520 msgid "Note categories are lost to the server." msgstr "" #: taskcoachlib/help/__init__.py:521 msgid "" "The conflict detection/resolution system is a workaround \n" "for a Funambol limitation. It should work in most cases, but if many \n" "applications synchronize with the same server at the same time, problems may " "\n" "arise." msgstr "" #: taskcoachlib/help/__init__.py:525 msgid "Probably some others..." msgstr "" #: taskcoachlib/help/__init__.py:529 msgid "" "The SyncML menu items are only present if your platform is \n" "supported. Currently supported platforms are:" msgstr "" #: taskcoachlib/help/__init__.py:532 msgid "Windows, 32 bits (see below)" msgstr "" #: taskcoachlib/help/__init__.py:533 msgid "Linux, 32 bits" msgstr "" #: taskcoachlib/help/__init__.py:534 msgid "Mac OS 10.3 and later, both Intel and PPC" msgstr "" #: taskcoachlib/help/__init__.py:535 msgid "" "You may experience problems under Windows if you don't have the \n" "Microsoft Visual 8 runtime installed. You can download it on the\n" " Microsoft download site." msgstr "" #: taskcoachlib/help/__init__.py:541 msgid "" "When SyncML is enabled, deleting a task or a note does not actually\n" "delete it, but rather mark it as deleted. The deleted task or note is " "actually \n" "removed from the task or note list on the next synchronization. For this " "reason, \n" "if you happen to use the SyncML feature, then disable it without having done " "a \n" "sync, there may be some deleted notes or tasks in your task file. This is " "not a \n" "problem, but takes a little more disk space." msgstr "" #: taskcoachlib/help/__init__.py:548 msgid "" "In this case, the \"Purge deleted items\" menu item in the File menu \n" "can be used to actually delete these tasks. It is only enabled when you\n" "need it, that is when there are items to purge. Be aware that after doing " "this,\n" "if you re-enable SyncML and make a sync with the same server you used\n" "previously, all those items will reappear, as the server\n" "doesn't know they're deleted." msgstr "" #: taskcoachlib/help/__init__.py:558 msgid "iPhone, iPod Touch and iPad" msgstr "" #: taskcoachlib/help/__init__.py:560 msgid "%(name)s on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:562 msgid "" "There is an iPhone/iPod Touch/iPad companion app for %(name)s, \n" "available on Apple's AppStore. (If you don't have iTunes installed " "on \n" "your computer, you'll be presented a page where you can download iTunes). \n" "It supports the following features:" msgstr "" #: taskcoachlib/help/__init__.py:569 msgid "" "Basic task attributes: subject, description, dates (with \n" "recurrence)..." msgstr "" #: taskcoachlib/help/__init__.py:571 msgid "Hierarchical tasks and categories" msgstr "" #: taskcoachlib/help/__init__.py:572 msgid "Time tracking" msgstr "" #: taskcoachlib/help/__init__.py:573 msgid "Multiple task files" msgstr "" #: taskcoachlib/help/__init__.py:574 msgid "Two-way synchronization with %(name)s on the desktop" msgstr "" #: taskcoachlib/help/__init__.py:576 msgid "The application is universal and has a custom iPad UI." msgstr "" #: taskcoachlib/help/__init__.py:580 msgid "Configuration on the iPhone/iPod Touch/iPad" msgstr "" #: taskcoachlib/help/__init__.py:582 msgid "" "There are some settings for the iPhone/iPod Touch/iPad app in the \n" "Settings application:" msgstr "" #: taskcoachlib/help/__init__.py:585 msgid "Show completed: whether to show completed tasks." msgstr "" #: taskcoachlib/help/__init__.py:586 msgid "" "Show inactive: whether to show inactive tasks (planned start date \n" "in the future)." msgstr "" #: taskcoachlib/help/__init__.py:588 msgid "" "Icon position: the LED icon may show up either on the \n" "left side or the right side of the screen." msgstr "" #: taskcoachlib/help/__init__.py:590 msgid "" "Compact mode: if this is enabled, the task list has smaller \n" "LEDs and doesn't show categories or dates." msgstr "" #: taskcoachlib/help/__init__.py:592 msgid "" "Confirm complete: if enabled, a message box will pop up for \n" "confirmation when you mark a task complete by tapping its LED." msgstr "" #: taskcoachlib/help/__init__.py:594 msgid "" "# days due soon: How many days in the future is \n" "considered \"soon\"." msgstr "" #: taskcoachlib/help/__init__.py:597 msgid "Configuration on the desktop, all platforms" msgstr "" #: taskcoachlib/help/__init__.py:599 msgid "" "Before synchronizing, you must also configure %(name)s on the \n" "desktop; in the preferences, in the \"Features\" tab, check \"Enable iPhone\n" "synchronization\". Restart %(name)s. Now, in the preferences, choose the \n" "\"iPhone\" tab and fill in at least the password." msgstr "" #: taskcoachlib/help/__init__.py:604 msgid "" "When you tap the \"Sync\" button in the category view, %(name)s\n" "will automatically detect running instances of %(name)s on your\n" "desktop and ask you to select one (you may have several instances\n" "running on different computers on your network, or several instances\n" "on the same computer). The name displayed is, by default, some string\n" "identifying the computer it's running on. To customize this, you may\n" "change the \"Bonjour service name\" in the configuration." msgstr "" #: taskcoachlib/help/__init__.py:612 msgid "" "%(name)s will remember the chosen instance and try it next time\n" "you synchronize; if it's not running, it will prompt you again." msgstr "" #: taskcoachlib/help/__init__.py:615 msgid "" "Note that this synchronization happens through the network; there \n" "is no need for the device to be connected through USB nor for iTunes to\n" "be running." msgstr "" #: taskcoachlib/help/__init__.py:619 msgid "Configuration on Windows" msgstr "" #: taskcoachlib/help/__init__.py:621 msgid "" "On Windows, you must install Bonjour for Windows and\n" "unblock it when asked by the firewall." msgstr "" #: taskcoachlib/help/__init__.py:625 msgid "Configuration on Linux" msgstr "" #: taskcoachlib/help/__init__.py:627 msgid "" "On Linux, you must have the Avahi \n" "daemon installed and running. Most modern distributions already have it. You " "\n" "must also install the dnscompat package; its name depends on your " "distribution \n" "(libavahi-compat-libdnssd1 on Ubuntu for instance)." msgstr "" #: taskcoachlib/help/__init__.py:634 msgid "" "I can't seem to find the iPhone/iPod Touch app on Apple's \n" "website" msgstr "" #: taskcoachlib/help/__init__.py:637 msgid "" "You need to have iTunes installed on your computer to browse \n" "Apple's App Store. Get \n" "iTunes." msgstr "" #: taskcoachlib/help/__init__.py:641 msgid "My computer doesn't appear in the list when trying to sync" msgstr "" #: taskcoachlib/help/__init__.py:643 msgid "" "Check that your iPhone/iPod Touch is connected to the same network \n" "your computer is through WiFi." msgstr "" #: taskcoachlib/help/__init__.py:646 msgid "The iPhone can't connect to my computer" msgstr "" #: taskcoachlib/help/__init__.py:648 msgid "If you have a firewall, check that ports 4096-4100 are open." msgstr "" #: taskcoachlib/help/__init__.py:657 msgid "" "No, %(name)s is not available for the Android platform. But,\n" "Todo.txt Touch is. \n" "You can export your tasks from %(name)s to the Todo.txt \n" "format and then edit your tasks on your Android device." msgstr "" #: taskcoachlib/help/__init__.py:665 msgid "" "Todo.txt is an open source todo list manager, created by Gina \n" "Trapani, that works with plain text files. Todo.txt has a command-line \n" "interface. However, since the file format is plain text, you can also edit " "your \n" "tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the " "\n" "Android platform. Todo.txt Touch uses a todo.txt file that lives in your\n" "Dropbox folder. %(name)s can import from and export to that todo.txt \n" "file." msgstr "" #: taskcoachlib/help/__init__.py:673 msgid "" "When exporting to Todo.txt, %(name)s creates another file alongside\n" "the target one, suffixed with \"-meta\". Don't delete this file; %(name)s " "uses it\n" "to keep track of external changed to the tasks. When a conflict arises (a " "task\n" "is modified both by Task Coach and by an external application when " "importing),\n" "the Todo.txt file wins the conflict." msgstr "" #: taskcoachlib/help/__init__.py:679 msgid "" "Tip: if you save your task file in the todo folder that Todo.txt\n" "Touch creates in your Dropbox folder, and you turn on automatic importing " "and \n" "exporting of Todo.txt, %(name)s will keep the task file and the \n" "todo.txt file in sync. Please note that another file, named after the .txt " "file\n" "with '-meta' appended, is also generated. This is used internally by " "%(name)s\n" "in order to keep track of what has been modified in the .txt file; don't " "modify\n" "or delete it." msgstr "" #: taskcoachlib/help/__init__.py:689 msgid "" "%(name)s imports task subjects, planned start date, due date, completion \n" "date, priority, contexts and projects. Contexts and projects are both \n" "transformed into categories in %(name)s. Projects cannot be transformed into " "\n" "parent tasks because Todo.txt allows tasks to belong to multiple projects, \n" "while %(name)s only allows one parent task per task." msgstr "" #: taskcoachlib/help/__init__.py:695 msgid "" "When importing, %(name)s tries to find matching tasks and \n" "categories and update those instead of creating new ones. It does the " "matching\n" "by looking at the subject of the task (or project, or context) and the " "parent\n" "item if any." msgstr "" #: taskcoachlib/help/__init__.py:702 msgid "" "%(name)s exports task subjects, planned start date, due date, completion \n" "date, priority and categories to the Todo.txt format. Other attributes are " "not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:706 msgid "" "%(name)s supports dates and times, but Todo.txt only supports \n" "dates, so the time part of start, due, and completion date/times is not\n" "exported." msgstr "" #: taskcoachlib/help/__init__.py:710 msgid "" "The default Todo.txt format only supports planned start dates and \n" "completion dates, but no due dates. Therefore, %(name)s uses an extension " "to\n" "export the due date of tasks. Due dates are shown as \"due:YYYY-MM-DD\" in " "the\n" "todo.txt file." msgstr "" #: taskcoachlib/help/__init__.py:715 msgid "" "Todo.txt has priorities in the form of a letter ('A'-'Z'). \n" "%(name)s has numerical priorities. %(name)s priority 1 is transformed into " "'A',\n" "2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above " "26\n" "are not exported." msgstr "" #: taskcoachlib/help/__init__.py:720 msgid "" "Categories whose subject starts with a '+' are exported as projects. \n" "Categories whose subject starts with an '@'-sign are exported as context. \n" "Categories whose subject doesn't start with '+' or '@' are not exported. \n" "Subcategories are exported if their parent category is." msgstr "" #: taskcoachlib/help/__init__.py:731 msgid "" "Templates are blueprints for new tasks. Right now, the only task \n" "properties that can be \"parameterized\" are the dates. When instantiating a " "\n" "template, the created task has its dates replaced with dates relative to the " "\n" "current date." msgstr "" #: taskcoachlib/help/__init__.py:738 msgid "" "One can create a template by selecting a task (only one) and click \n" "on the \"Save task as template\" item in the File menu. All subtasks, notes " "and \n" "attachments are part of the template. Only categories are not saved." msgstr "" #: taskcoachlib/help/__init__.py:742 msgid "" "You can also create a new template from a pre-made template file \n" "(.tsktmpl); just select \"Import template\" in the File menu and select the " "file. \n" "Template files are stored in a subdirectory of the directory where " "TaskCoach.ini \n" "is." msgstr "" #: taskcoachlib/help/__init__.py:747 msgid "" "In order to instantiate a task template, use the \"New task from \n" "template\" menu in the Task menu, or the equivalent toolbar button. When the " "\n" "task is created, the due, start and completion dates, if applicable, are \n" "reevaluated relatively to the current date. That means that if you create a " "\n" "template from a task starting today and due tomorrow, every time the " "template \n" "is instantiated, the planned start date will be replaced by the current date " "and the \n" "due date by the current date plus one day." msgstr "" #: taskcoachlib/help/__init__.py:755 msgid "" "You can also add templates from the template editor (File/Edit\n" "templates), as well as edit the template's basic properties (dates and\n" "subject). Dates are provided in a human-readable format; the date editor\n" "will become red if %(name)s cannot figure out what it means. Example\n" "dates:" msgstr "" #: taskcoachlib/help/__init__.py:766 msgid "" "Please note that this system is not localized; you must enter\n" "the dates in english." msgstr "" #: taskcoachlib/help/__init__.py:773 msgid "" "You can drag and drop viewers to create almost any user interface \n" "layout you want. When you start dragging a viewer, drop hints will appear " "to\n" "show where you can drop the viewer. Viewers can also be dropped onto each " "other\n" "to create notebooks." msgstr "" #: taskcoachlib/help/__init__.py:778 msgid "" "In the edit dialogs, you can drag and drop tabs to rearrange \n" "the order or to create a whole different user interface layout by placing " "tabs \n" "next to eachother." msgstr "" #: taskcoachlib/help/__init__.py:782 msgid "" "Subjects and descriptions of tasks, notes and categories can be\n" "edited without opening an edit dialog. Select the item whose subject or\n" "description you want to change and click the item again, either in the " "subject\n" "column or in the description column. A text control will appear that lets " "you \n" "change the subject or description. Hit return to confirm your changes. Hit \n" "escape to cancel your changes. F2 is a keyboard shortcut for editing the \n" "subject." msgstr "" #: taskcoachlib/help/__init__.py:795 msgid "" "%(name)s has several keyboard shortcuts, listed below. Keyboard \n" "shortcuts are not configurable at the moment." msgstr "" #: taskcoachlib/help/__init__.py:799 msgid "Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:800 msgid "Shift-Ctrl-A" msgstr "" #: taskcoachlib/help/__init__.py:801 msgid "Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:802 msgid "Shift-Ctrl-B" msgstr "" #: taskcoachlib/help/__init__.py:803 msgid "Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:804 msgid "Shift-Ctrl-C" msgstr "" #: taskcoachlib/help/__init__.py:805 msgid "Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:806 msgid "Shift-Ctrl-D" msgstr "" #: taskcoachlib/help/__init__.py:807 msgid "Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:808 msgid "Shift-Ctrl-E" msgstr "" #: taskcoachlib/help/__init__.py:809 msgid "Ctrl-F" msgstr "" #: taskcoachlib/help/__init__.py:810 msgid "Ctrl-G" msgstr "" #: taskcoachlib/help/__init__.py:811 msgid "Ctrl-H" msgstr "" #: taskcoachlib/help/__init__.py:812 msgid "Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:813 msgid "Shift-Ctrl-I" msgstr "" #: taskcoachlib/help/__init__.py:814 msgid "Ctrl-J" msgstr "" #: taskcoachlib/help/__init__.py:815 msgid "Ctrl-M (Linux and Windows)" msgstr "" #: taskcoachlib/help/__init__.py:816 msgid "Shift-Ctrl-M (Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:817 msgid "Shift-Ctrl-M" msgstr "" #: taskcoachlib/help/__init__.py:818 msgid "Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 msgid "Shift-Ctrl-N (Linux and Mac OS X)" msgstr "" #: taskcoachlib/help/__init__.py:819 taskcoachlib/help/__init__.py:847 msgid "Insert a new subitem" msgstr "" #: taskcoachlib/help/__init__.py:820 msgid "Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:821 msgid "Shift-Ctrl-O" msgstr "" #: taskcoachlib/help/__init__.py:822 msgid "Alt-P" msgstr "" #: taskcoachlib/help/__init__.py:823 msgid "Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:824 msgid "Shift-Ctrl-P" msgstr "" #: taskcoachlib/help/__init__.py:825 msgid "Ctrl-Q" msgstr "" #: taskcoachlib/help/__init__.py:826 msgid "Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:827 msgid "Shift-Ctrl-R" msgstr "" #: taskcoachlib/help/__init__.py:828 msgid "Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:829 msgid "Shift-Ctrl-S" msgstr "" #: taskcoachlib/help/__init__.py:830 msgid "Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:831 msgid "Shift-Ctrl-T" msgstr "" #: taskcoachlib/help/__init__.py:832 msgid "Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:833 msgid "Shift-Ctrl-V" msgstr "" #: taskcoachlib/help/__init__.py:834 msgid "Ctrl-W" msgstr "" #: taskcoachlib/help/__init__.py:835 msgid "Ctrl-X" msgstr "" #: taskcoachlib/help/__init__.py:836 msgid "Ctrl-Y" msgstr "" #: taskcoachlib/help/__init__.py:837 msgid "Ctrl-Z" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Edit the selected item(s) or close a dialog" msgstr "" #: taskcoachlib/help/__init__.py:838 msgid "Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Ctrl-Enter" msgstr "" #: taskcoachlib/help/__init__.py:839 msgid "Mark the selected task(s) (un)completed" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "" "Cancel a dialog or move keyboard focus from search control back to viewer" msgstr "" #: taskcoachlib/help/__init__.py:840 msgid "Escape" msgstr "" #: taskcoachlib/help/__init__.py:841 msgid "Move keyboard focus to the next field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Move keyboard focus to the previous field in the dialog" msgstr "" #: taskcoachlib/help/__init__.py:842 msgid "Shift-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:843 msgid "Move keyboard focus to the next tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Move keyboard focus to the previous tab in a notebook control" msgstr "" #: taskcoachlib/help/__init__.py:844 msgid "Shift-Ctrl-Tab" msgstr "" #: taskcoachlib/help/__init__.py:845 msgid "DELETE" msgstr "" #: taskcoachlib/help/__init__.py:846 msgid "INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:847 msgid "Shift-INSERT (Windows)" msgstr "" #: taskcoachlib/help/__init__.py:848 msgid "Ctrl-PgDn" msgstr "" #: taskcoachlib/help/__init__.py:849 msgid "Ctrl-PgUp" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Alt-Down" msgstr "" #: taskcoachlib/help/__init__.py:850 msgid "Pop up menu or drop down box" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "Edit the subject of the selected item in a viewer" msgstr "" #: taskcoachlib/help/__init__.py:851 msgid "F2" msgstr "" #: taskcoachlib/help/__init__.py:860 msgid "" "

    %(name)s - %(description)s

    \n" "
    Version %(version)s, %(date)s
    \n" "

    By %(author)s <%(author_email)s>

    \n" "

    %(url)s

    \n" "

    %(copyright)s

    \n" "

    %(license_notice_html)s

    \n" msgstr "" #: taskcoachlib/help/tips.py:26 msgid "" "%(name)s is actively developed. Although the %(name)s developers try hard to " "prevent them, bugs do happen. So, backing up your work on a regular basis is " "strongly advised." msgstr "" #: taskcoachlib/help/tips.py:27 msgid "" "%(name)s has a mailing list where you can discuss usage of %(name)s with " "fellow users, discuss and request features and complain about bugs. Go to " "%(url)s and join today!" msgstr "" #: taskcoachlib/help/tips.py:28 msgid "" "%(name)s has unlimited undo and redo. Any change that you make, be it " "editing a task description, or deleting an effort record, is undoable. " "Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards " "through your edit history." msgstr "" "%(name)s 可無限次數的進行復原與重作。使用者所進行的任何動作,無論是編輯工作說明,或刪除工作量記錄,都是可以復原的。選擇「編輯」-" ">「復原」以及「編輯」->「重作」即可恢復或重新進行任何編輯動作。" #: taskcoachlib/help/tips.py:29 msgid "" "%(name)s is available in a number of different languages. Select 'Edit' -> " "'Preferences' to see whether your language is one of them. If your language " "is not available or the translation needs improvement, please consider " "helping with the translation of %(name)s. Visit %(url)s for more information " "about how you can help." msgstr "" "%(name)s 支援多種不同語系。選擇「編輯」-" ">「偏好設定」可查看慣用的語系是否為其中之一。若慣用語系在其中,或是有需要加強之處,請慎重考慮幫助我們進行 %(name)s 的翻譯動作。前往 " "%(url)s 可得到更多關於您能夠如何幫助我們的訊息。" #: taskcoachlib/help/tips.py:30 msgid "" "If you enter a URL (e.g. %(url)s) in a task or effort description, it " "becomes a link. Clicking on the link will open the URL in your default web " "browser." msgstr "若在工作或工作量的說明文字中輸入網址(例如 %(url)s ),會自動變成連結網址。點選連結即會以預設瀏覽器開啟該網址。" #: taskcoachlib/help/tips.py:31 msgid "" "You can drag and drop tasks in the tree view to rearrange parent-child " "relationships between tasks. The same goes for categories." msgstr "在樹狀列表中拖曳工作可重新安排工作之間的從屬關係。此功能亦適用於類別。" #: taskcoachlib/help/tips.py:32 msgid "" "You can drag files from a file browser onto a task to create attachments. " "Dragging the files over a tab will raise the appropriate page, dragging the " "files over a collapsed task (the boxed + sign) in the tree view will expand " "the task to show its subtasks." msgstr "" "從檔案瀏覽器中拖曳檔案至工作中即可建立附件。拖曳檔案到頁籤上會建立符合附件的頁面,而將檔案拖曳至樹狀列表中已摺疊的工作(名稱前方有加號標誌)上,會自動展開" "該工作並顯示其子工作。" #: taskcoachlib/help/tips.py:33 msgid "" "You can create any viewer layout you want by dragging and dropping the tabs. " "The layout is saved and reused in the next session." msgstr "" #: taskcoachlib/help/tips.py:34 msgid "" "What is actually printed when you select 'File' -> 'Print' depends on the " "current view. If the current view shows the task list, a list of tasks will " "be printed, if the current view shows effort grouped by month, that will be " "printed. The same goes for visible columns, sort order, filtered tasks, etc." msgstr "" "選擇「檔案」-" ">「列印」後實際所印出來的資訊與目前檢視項目有關。若目前檢視資料會顯示工作列表,則一連串的工作會被列印出來。若目前檢視資料為每月工作量,則列印資料便會是此" "資訊。可視欄位、排序方式與過濾過的工作亦會依照資料的不同而有不同的列印輸出結果。" #: taskcoachlib/help/tips.py:35 msgid "" "Left-click a column header to sort by that column. Click the column header " "again to change the sort order from ascending to descending and back again. " "Right-click a column header to hide that column or make additional columns " "visible." msgstr "" #: taskcoachlib/help/tips.py:36 msgid "" "You can create a template from a task in order to reduce typing when " "repetitive patterns emerge." msgstr "" #: taskcoachlib/help/tips.py:37 msgid "Ctrl-Tab switches between tabs in edit dialogs." msgstr "" #: taskcoachlib/help/tips.py:63 msgid "Tip of the day" msgstr "每日提示" #: taskcoachlib/help/tips.py:74 msgid "Next tip" msgstr "下一個提示" #: taskcoachlib/help/tips.py:92 msgid "Show tips on startup" msgstr "在開啟時顯示提示" #: taskcoachlib/help/uicommand.py:26 msgid "Browse for files to add as attachment to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:27 msgid "Add a note to the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:28 msgid "Insert a new category" msgstr "插入新類別" #: taskcoachlib/help/uicommand.py:29 msgid "Cut the selected item(s) to the clipboard" msgstr "剪下選擇項目至剪貼簿中" #: taskcoachlib/help/uicommand.py:30 msgid "Copy the selected item(s) to the clipboard" msgstr "複製選擇項目至剪貼簿中" #: taskcoachlib/help/uicommand.py:31 msgid "Paste item(s) from the clipboard" msgstr "從剪貼簿中貼上項目" #: taskcoachlib/help/uicommand.py:32 msgid "Paste item(s) from the clipboard as subitem of the selected item" msgstr "" #: taskcoachlib/help/uicommand.py:33 msgid "Edit preferences" msgstr "編輯偏好設定" #: taskcoachlib/help/uicommand.py:34 msgid "Redo the last command that was undone" msgstr "重作上一個被復原的命令" #: taskcoachlib/help/uicommand.py:35 msgid "Select all items in the current view" msgstr "在目前檢視畫面中選擇全部項目" #: taskcoachlib/help/uicommand.py:36 msgid "Undo the last command" msgstr "復原最後命令" #: taskcoachlib/help/uicommand.py:37 msgid "Add an effort period to the selected task(s)" msgstr "新增工作量週期至已選擇的工作" #: taskcoachlib/help/uicommand.py:38 msgid "Start tracking effort for the selected task(s)" msgstr "追蹤選取工作的工作量" #: taskcoachlib/help/uicommand.py:39 msgid "Stop tracking effort or resume tracking effort" msgstr "" #: taskcoachlib/help/uicommand.py:40 msgid "Close the current file" msgstr "關閉目前檔案" #: taskcoachlib/help/uicommand.py:41 msgid "Exit %s" msgstr "結束 %s" #: taskcoachlib/help/uicommand.py:42 msgid "Open a %s file" msgstr "開啟 %s 檔案" #: taskcoachlib/help/uicommand.py:43 msgid "Save the current file" msgstr "儲存目前檔案" #: taskcoachlib/help/uicommand.py:44 msgid "Load what has changed on disk" msgstr "" #: taskcoachlib/help/uicommand.py:45 msgid "Save the current file under a new name" msgstr "使用新名稱儲存目前檔案" #: taskcoachlib/help/uicommand.py:46 msgid "Help about the program" msgstr "關於程式的說明訊息" #: taskcoachlib/help/uicommand.py:47 msgid "Mail the selected item(s), using your default mailer" msgstr "" #: taskcoachlib/help/uicommand.py:48 msgid "Insert a new note" msgstr "插入新註記" #: taskcoachlib/help/uicommand.py:49 msgid "Open all attachments of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:50 msgid "Open all notes of the selected item(s)" msgstr "" #: taskcoachlib/help/uicommand.py:51 msgid "Print the current file" msgstr "列印目前檔案" #: taskcoachlib/help/uicommand.py:52 msgid "Setup the characteristics of the printer page" msgstr "設定印表頁面特徵" #: taskcoachlib/help/uicommand.py:53 msgid "Show all items (reset all filters)" msgstr "顯示所有項目(重置所有篩選條件)" #: taskcoachlib/help/uicommand.py:54 msgid "Show all items regardless of category" msgstr "" #: taskcoachlib/help/uicommand.py:55 msgid "Move keyboard focus from viewer to search control" msgstr "" #: taskcoachlib/help/uicommand.py:56 msgid "Decrease the priority of the selected task(s)" msgstr "降低已選取工作的優先權" #: taskcoachlib/help/uicommand.py:57 msgid "Increase the priority of the selected task(s)" msgstr "增加已選取工作的優先權" #: taskcoachlib/help/uicommand.py:58 msgid "Make the selected task(s) the highest priority task(s)" msgstr "將已選取的工作列為最高優先權" #: taskcoachlib/help/uicommand.py:59 msgid "Make the selected task(s) the lowest priority task(s)" msgstr "將已選取的工作列為最小優先權" #: taskcoachlib/help/uicommand.py:60 msgid "Insert a new task" msgstr "插入新工作" #: taskcoachlib/help/uicommand.py:61 msgid "Collapse all items with subitems" msgstr "摺疊所有子項目" #: taskcoachlib/help/uicommand.py:62 msgid "Expand all items with subitems" msgstr "展開所有子項目" #: taskcoachlib/help/uicommand.py:63 msgid "Activate the next open viewer" msgstr "啟用下一個已開啟的觀看畫面" #: taskcoachlib/help/uicommand.py:64 msgid "Activate the previous open viewer" msgstr "啟用上一個已開啟的觀看畫面" #: taskcoachlib/iphone/protocol.py:549 msgid "" "An iPhone or iPod Touch tried to connect to Task Coach,\n" "but no password is set. Please set a password in the\n" "iPhone section of the configuration and try again." msgstr "" #: taskcoachlib/iphone/protocol.py:626 msgid "Protocol version: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:634 msgid "Rejected protocol version %d" msgstr "" #: taskcoachlib/iphone/protocol.py:653 msgid "Hash OK." msgstr "" #: taskcoachlib/iphone/protocol.py:657 msgid "Hash KO." msgstr "" #: taskcoachlib/iphone/protocol.py:670 msgid "Device name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:685 msgid "GUID: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:714 msgid "Sending file name: %s" msgstr "" #: taskcoachlib/iphone/protocol.py:741 msgid "Full from desktop." msgstr "" #: taskcoachlib/iphone/protocol.py:774 msgid "%d categories" msgstr "" #: taskcoachlib/iphone/protocol.py:782 msgid "Send category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:787 taskcoachlib/iphone/protocol.py:856 msgid "Response: %d" msgstr "" #: taskcoachlib/iphone/protocol.py:800 msgid "%d tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:808 msgid "Send task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:872 msgid "%d efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:880 msgid "Send effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:897 taskcoachlib/iphone/protocol.py:1334 msgid "Finished." msgstr "" #: taskcoachlib/iphone/protocol.py:1013 msgid "%d new categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1014 msgid "%d new tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1015 msgid "%d new efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1016 msgid "%d modified categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1017 msgid "%d modified tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1018 msgid "%d modified efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1019 msgid "%d deleted categories" msgstr "" #: taskcoachlib/iphone/protocol.py:1020 msgid "%d deleted tasks" msgstr "" #: taskcoachlib/iphone/protocol.py:1021 msgid "%d deleted efforts" msgstr "" #: taskcoachlib/iphone/protocol.py:1036 msgid "New category (parent: %s)" msgstr "" #: taskcoachlib/iphone/protocol.py:1067 msgid "Delete category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1087 msgid "Modify category %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1114 taskcoachlib/iphone/protocol.py:1147 #: taskcoachlib/iphone/protocol.py:1183 msgid "New task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1203 msgid "Delete task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1259 msgid "Modify task %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1268 msgid "End of task synchronization." msgstr "" #: taskcoachlib/iphone/protocol.py:1285 msgid "Could not find task %s for effort." msgstr "" #: taskcoachlib/iphone/protocol.py:1288 msgid "New effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1313 msgid "Modify effort %s" msgstr "" #: taskcoachlib/iphone/protocol.py:1327 msgid "Sending GUID: %s" msgstr "" #: taskcoachlib/mailer/macmail.py:26 msgid "Reading mail info..." msgstr "" #: taskcoachlib/mailer/macmail.py:27 msgid "Reading mail information. Please wait." msgstr "" #: taskcoachlib/mailer/thunderbird.py:96 msgid "Could not find Thunderbird data dir" msgstr "" #: taskcoachlib/mailer/thunderbird.py:125 msgid "Could not find Thunderbird profile." msgstr "" #: taskcoachlib/mailer/thunderbird.py:144 msgid "No default section in profiles.ini" msgstr "" #: taskcoachlib/mailer/thunderbird.py:157 msgid "" "Malformed Thunderbird internal ID:\n" "%s. Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:189 msgid "" "Could not find directory for ID\n" "%s.\n" "Please file a bug report." msgstr "" #: taskcoachlib/mailer/thunderbird.py:248 #: taskcoachlib/mailer/thunderbird.py:373 msgid "Unrecognized URL scheme: \"%s\"" msgstr "" #: taskcoachlib/mailer/thunderbird.py:306 msgid "" "Could not open an IMAP connection to %(server)s:%(port)s\n" "to retrieve Thunderbird email message:\n" "%(reason)s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:325 msgid "Please enter the domain for user %s" msgstr "" #: taskcoachlib/mailer/thunderbird.py:351 msgid "" "Could not select inbox \"%s\"\n" "(%s)" msgstr "" #: taskcoachlib/mailer/thunderbird.py:357 msgid "No such mail: %d" msgstr "" #: taskcoachlib/persistence/csv/generator.py:35 msgid "Actual start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:36 msgid "Planned start time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:37 msgid "Due time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:38 msgid "Completion time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:39 msgid "Reminder time" msgstr "提醒時間" #: taskcoachlib/persistence/csv/generator.py:40 msgid "Creation time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period end time" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start date" msgstr "" #: taskcoachlib/persistence/csv/generator.py:41 msgid "Period start time" msgstr "" #: taskcoachlib/persistence/csv/reader.py:58 msgid "No subject" msgstr "" #: taskcoachlib/persistence/xml/templates.py:8 msgid "New task due today" msgstr "" #: taskcoachlib/persistence/xml/templates.py:10 msgid "New task due tomorrow" msgstr "" #: taskcoachlib/render.py:50 taskcoachlib/thirdparty/smartdatetimectrl.py:1754 msgid "%d days" msgstr "" #: taskcoachlib/render.py:51 taskcoachlib/thirdparty/smartdatetimectrl.py:1752 msgid "1 day" msgstr "" #: taskcoachlib/render.py:92 msgid "Every %(frequency)d days" msgstr "" #: taskcoachlib/render.py:93 msgid "Every %(frequency)d weeks" msgstr "" #: taskcoachlib/render.py:94 msgid "Every %(frequency)d months" msgstr "" #: taskcoachlib/render.py:95 msgid "Every %(frequency)d years" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other day" msgstr "" #: taskcoachlib/render.py:97 msgid "Every other week" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other month" msgstr "" #: taskcoachlib/render.py:98 msgid "Every other year" msgstr "" #: taskcoachlib/render.py:144 msgid "Yesterday" msgstr "" #: taskcoachlib/render.py:284 msgid "now" msgstr "現在" #: taskcoachlib/syncml/basesource.py:40 taskcoachlib/syncml/basesource.py:52 msgid "The synchronization for source %s" msgstr "" #: taskcoachlib/syncml/basesource.py:41 msgid "" "will be a refresh from server. All local items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/basesource.py:53 msgid "" "will be a refresh from client. All remote items will\n" "be deleted. Do you wish to continue?" msgstr "" #: taskcoachlib/syncml/sync.py:102 msgid "Synchronization" msgstr "" #: taskcoachlib/syncml/sync.py:103 msgid "" "Synchronizing. Please wait.\n" "\n" "\n" msgstr "" #: taskcoachlib/syncml/sync.py:207 msgid "" "%d items added.\n" "%d items updated.\n" "%d items deleted." msgstr "" #: taskcoachlib/syncml/sync.py:213 msgid "" "An error occurred in the synchronization.\n" "Error code: %d; message: %s" msgstr "" #: taskcoachlib/syncml/sync.py:218 msgid "You must first edit your SyncML Settings, in Edit/SyncML preferences." msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1052 msgid "Pane Switcher" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "\">" msgstr "\">" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1177 msgid "" msgstr "

    " #: taskcoachlib/thirdparty/aui/aui_switcherdialog.py:1183 msgid "" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10128 msgid "Restore %s" msgstr "" #: taskcoachlib/thirdparty/aui/framemanager.py:10561 msgid "Pane Preview" msgstr "" #: taskcoachlib/thirdparty/aui/tabmdi.py:32 msgid "Cl&ose" msgstr "關閉($o)" #: taskcoachlib/thirdparty/aui/tabmdi.py:33 msgid "Close All" msgstr "全部關閉" #: taskcoachlib/thirdparty/aui/tabmdi.py:35 msgid "&Next" msgstr "下一個(&N)" #: taskcoachlib/thirdparty/aui/tabmdi.py:36 msgid "&Previous" msgstr "前一個(&P)" #: taskcoachlib/thirdparty/aui/tabmdi.py:203 #: taskcoachlib/thirdparty/aui/tabmdi.py:214 #: taskcoachlib/thirdparty/aui/tabmdi.py:216 msgid "&Window" msgstr "視窗(&W)" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1696 #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Edit" msgstr "編輯" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1749 msgid "%d weeks" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1761 msgid "%d hours" msgstr "" #: taskcoachlib/thirdparty/smartdatetimectrl.py:1805 msgid "Done" msgstr "完成" #: taskcoachlib/widgets/calendarconfig.py:56 msgid "Kind of period displayed and its count" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:62 #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Month" msgstr "月" #: taskcoachlib/widgets/calendarconfig.py:75 msgid "Calendar orientation" msgstr "行事曆格式" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Horizontal" msgstr "水平" #: taskcoachlib/widgets/calendarconfig.py:77 msgid "Vertical" msgstr "垂直" #: taskcoachlib/widgets/calendarconfig.py:84 msgid "Which tasks to display" msgstr "要顯示哪個任務" #: taskcoachlib/widgets/calendarconfig.py:86 msgid "Tasks with a planned start date and a due date" msgstr "" #: taskcoachlib/widgets/calendarconfig.py:87 msgid "Tasks with a planned start date" msgstr "有預訂開始日期的任務" #: taskcoachlib/widgets/calendarconfig.py:88 msgid "Tasks with a due date" msgstr "有截止日期的任務" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks" msgstr "全部任務" #: taskcoachlib/widgets/calendarconfig.py:89 msgid "All tasks, except unplanned tasks" msgstr "所有任務,除了不在計畫中的任務" #: taskcoachlib/widgets/calendarconfig.py:99 #: taskcoachlib/widgets/hcalendarconfig.py:73 msgid "Draw a line showing the current time" msgstr "畫一條線顯示現在時間" #: taskcoachlib/widgets/calendarconfig.py:108 #: taskcoachlib/widgets/hcalendarconfig.py:81 msgid "Color used to highlight the current day" msgstr "用來提示當前日子的顏色" #: taskcoachlib/widgets/dialog.py:166 msgid "All files (*.*)|*" msgstr "所有檔案 (*.*)|*" #: taskcoachlib/widgets/hcalendarconfig.py:48 msgid "Headers" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:53 msgid "Week number" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:63 msgid "Calendar span" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Week" msgstr "" #: taskcoachlib/widgets/hcalendarconfig.py:65 msgid "Work week" msgstr "" #: taskcoachlib/widgets/password.py:32 msgid "Password:" msgstr "密碼:" #: taskcoachlib/widgets/password.py:42 msgid "Store in keychain" msgstr "" #: taskcoachlib/widgets/password.py:88 msgid "" "There was a problem trying to find out your system's keychain.\n" "Please file a bug report (see the Help menu) and attach a screenshot of this " "message.\n" "Error was:\n" "\n" "%s" msgstr "" #: taskcoachlib/widgets/password.py:93 msgid "Please enter your password." msgstr "請輸入您的密碼。" #: taskcoachlib/widgets/password.py:117 msgid "Please enter your password" msgstr "請輸入您的密碼" #: taskcoachlib/widgets/searchctrl.py:60 msgid "&Match case" msgstr "大小寫須相符(&M)" #: taskcoachlib/widgets/searchctrl.py:60 msgid "Match case when filtering" msgstr "過濾時需符合大小寫" #: taskcoachlib/widgets/searchctrl.py:63 msgid "&Include sub items" msgstr "包含子項目(&I)" #: taskcoachlib/widgets/searchctrl.py:64 msgid "Include sub items of matching items in the search results" msgstr "搜尋結果中包含符合項目的子項目" #: taskcoachlib/widgets/searchctrl.py:67 msgid "&Search description too" msgstr "也搜尋描述(&S)" #: taskcoachlib/widgets/searchctrl.py:68 msgid "Search both subject and description" msgstr "搜尋主題和描述" #: taskcoachlib/widgets/searchctrl.py:71 msgid "&Regular Expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:72 msgid "Consider search text as a regular expression" msgstr "" #: taskcoachlib/widgets/searchctrl.py:141 msgid "This is an invalid regular expression." msgstr "這是無效的一般表述" #: taskcoachlib/widgets/searchctrl.py:142 msgid "Defaulting to substring search." msgstr "" #: taskcoachlib/widgets/searchctrl.py:207 msgid "Recent searches" msgstr "最近搜尋" #: taskcoachlib/widgets/searchctrl.py:215 msgid "Viewer not searchable" msgstr "瀏覽器無法搜尋" #: taskcoachlib/widgets/syncmlwarning.py:26 msgid "Compatibility warning" msgstr "相容性警告" #: taskcoachlib/widgets/syncmlwarning.py:29 msgid "" "The SyncML feature is disabled, because the module\n" "could not be loaded. This may be because your platform\n" "is not supported, or under Windows, you may be missing\n" "some mandatory DLLs. Please see the SyncML section of\n" "the online help for details (under \"Troubleshooting\")." msgstr "" #: taskcoachlib/widgets/syncmlwarning.py:34 msgid "Never show this dialog again" msgstr "不要再顯示這對話框" #: taskcoachlib/widgets/textctrl.py:164 msgid "Error opening URL" msgstr "開啟網址時發生錯誤" taskcoach-1.4.3/icons.in/000077500000000000000000000000001265347643000152115ustar00rootroot00000000000000taskcoach-1.4.3/icons.in/iconmap.py000066400000000000000000000211071265347643000172120ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' iconlist = [ # These icons are named after their function: ('copy', 'actions', 'editcopy', [16, 22, 32]), ('cut', 'actions', 'editcut', [16, 22, 32]), ('delete', 'actions', 'editdelete', [16, 22, 32]), ('edit', 'actions', 'edit', [16, 22, 32]), ('fileopen', 'actions', 'fileopen', [16, 22, 32]), ('fileopen_red', 'actions', 'fileopen_red', [16]), ('print', 'actions', 'fileprint', [16, 22, 32]), ('export', 'actions', 'fileexport', [16]), ('exportashtml', 'mimetypes', 'html', [16]), ('exportascsv', 'mimetypes', 'txt', [16]), ('exportasvcal', 'mimetypes', 'vcalendar', [16]), ('close', 'actions', 'fileclose', [16]), ('exit', 'actions', 'exit', [16]), ('markcompleted', 'apps', 'korganizer_todo', [16, 22, 32]), ('markuncompleted', 'actions', 'klipper_dock', [16, 32]), ('markuncompleted', 'actions', 'tool_clipboard', [22]), ('new', 'actions', 'filenew', [16, 22, 32]), ('newtmpl', 'actions', 'blend', [16, 22, 32]), ('newsub', 'actions', 'new_sub', [16, 22, 32]), ('paste', 'actions', 'editpaste', [16, 22, 32]), ('undo', 'actions', 'undo', [16, 22, 32]), ('redo', 'actions', 'redo', [16, 22, 32]), ('save', 'actions', 'filesave', [16, 22, 32]), ('mergedisk', 'actions', 'top', [16, 22, 32]), ('saveas', 'actions', 'filesaveas', [16]), ('taskcoach', 'apps', 'korganizer_todo', [16, 22, 32, 48, 64, 128]), ('listview', 'actions', 'view_detailed', [16, 22, 32]), ('treeview', 'actions', 'view_tree', [16, 22, 32]), ('restore', 'apps', 'kcmkwm', [16]), ('progress', 'actions', 'finish', [16, 22, 32]), ('viewalltasks', 'apps', 'kreversi', [16]), ('viewnewviewer', 'actions', 'tab_new', [16]), ('squaremapviewer', 'actions', 'squaremap', [16]), ('timelineviewer', 'actions', 'timeline', [16]), ('activatenextviewer', 'actions', 'tab_advance_next', [16]), ('activatepreviousviewer', 'actions', 'tab_advance_prev', [16]), ('windows', 'apps', 'window_list', [16, 22]), ('maxpriority', 'actions', '2uparrow', [16]), ('minpriority', 'actions', '2downarrow', [16]), ('incpriority', 'actions', '1uparrow', [16]), ('decpriority', 'actions', '1downarrow', [16]), ('prev', 'actions', '1leftarrow', [16, 22]), ('next', 'actions', '1rightarrow', [16, 22]), ('up', 'actions', '1uparrow', [16]), ('down', 'actions', '1downarrow', [16]), ('sort', 'actions', 'grip', [16]), # These icons are named after what they display: ('arrow_up_icon', 'actions', 'up', [16, 32]), ('arrow_down_icon', 'actions', 'down', [16, 32]), ('arrow_up_with_status_icon', 'actions', 'sort_ascending_with_status', [16]), ('arrow_down_with_status_icon', 'actions', 'sort_descending_with_status', [16]), ('arrows_looped_blue_icon', 'actions', 'kaboodleloop', [16, 22]), ('arrows_looped_green_icon', 'actions', 'reload', [16]), ('bomb_icon', 'apps', 'core', [16]), ('book_icon', 'apps', 'kdict', [16]), ('books_icon', 'apps', 'bookcase', [16]), ('box_icon', 'apps', 'kpackage', [16]), ('box_in_icon', 'filesystems', 'folder_inbox', [16]), ('box_out_icon', 'filesystems', 'folder_outbox', [16]), ('bug_icon', 'apps', 'bug', [16]), ('cake_icon', 'apps', 'cookie', [16]), ('calculator_icon', 'apps', 'kcalc', [16, 22, 32]), ('calendar_icon', 'apps', 'date', [16, 22, 32]), ('cat_icon', 'apps', 'package_toys', [16]), ('cd_icon', 'actions', 'cd', [16]), ('charts_icon', 'apps', 'kchart', [16]), ('chat_icon', 'apps', 'chat', [16]), ('checkmark_green_icon', 'actions', 'apply', [16]), ('checkmark_green_icon_multiple', 'actions', 'apply_multiple', [16]), ('clock_icon', 'apps', 'clock', [16, 22, 32, 128]), ('clock_alarm_icon', 'actions', 'kalarm', [16]), ('clock_stopwatch_icon', 'apps', 'ktimer', [16, 128]), ('clock_stop_icon', 'actions', 'history_stop', [16, 22, 32]), ('clock_resume_icon', 'actions', 'history_resume', [16, 22, 32]), ('clock_menu_icon', 'actions', 'historymenu', [16, 22, 32]), ('cogwheel_icon', 'actions', 'misc', [16, 22, 32]), ('cogwheels_icon', 'apps', 'kcmsystem', [16]), ('computer_desktop_icon', 'apps', 'mycomputer', [16]), ('computer_handheld_icon', 'devices', 'pda', [16, 22]), ('computer_laptop_icon', 'apps', 'laptop_pcmcia', [16]), ('cross_red_icon', 'actions', 'cancel', [16, 22, 32]), ('die_icon', 'actions', 'roll', [16]), ('document_icon', 'mimetypes', 'dvi', [16]), ('earth_blue_icon', 'filesystems', 'www', [16, 22]), ('earth_green_icon', 'filesystems', 'ftp', [16]), ('envelope_icon', 'apps', 'email', [16, 22]), ('envelopes_icon', 'actions', 'queue', [16]), ('folder_blue_icon', 'filesystems', 'folder_blue', [16]), ('folder_blue_light_icon', 'filesystems', 'folder_blue_light', [16]), ('folder_blue_arrow_icon', 'filesystems', 'folder_download', [16, 22]), ('folder_blue_open_icon', 'filesystems', 'folder_blue_open', [16]), ('folder_blue_light_open_icon', 'filesystems', 'folder_blue_light_open', [16]), ('folder_green_icon', 'filesystems', 'folder_green', [16]), ('folder_green_open_icon', 'filesystems', 'folder_green_open', [16]), ('folder_orange_icon', 'filesystems', 'folder_orange', [16]), ('folder_orange_open_icon', 'filesystems', 'folder_orange_open', [16]), ('folder_grey_icon', 'filesystems', 'folder_grey', [16]), ('folder_grey_open_icon', 'filesystems', 'folder_grey_open', [16]), ('folder_red_icon', 'filesystems', 'folder_red', [16]), ('folder_red_open_icon', 'filesystems', 'folder_red_open', [16]), ('folder_purple_icon', 'filesystems', 'folder_violet', [16]), ('folder_purple_open_icon', 'filesystems', 'folder_violet_open', [16]), ('folder_yellow_icon', 'filesystems', 'folder_yellow', [16]), ('folder_yellow_open_icon', 'filesystems', 'folder_yellow_open', [16]), ('heart_icon', 'actions', 'bookmark', [16]), ('hearts_icon', 'apps', 'amor', [16]), ('house_green_icon', 'actions', 'gohome', [16]), ('house_red_icon', 'apps', 'kfm_home', [16]), ('key_icon', 'actions', 'kgpg_key1', [16]), ('keys_icon', 'actions', 'kgpg_key3', [16]), ('lamp_icon', 'apps', 'ktip', [16, 32]), ('led_blue_icon', 'actions', 'ledblue', [16]), ('led_blue_light_icon', 'actions', 'ledlightblue', [16]), ('led_blue_questionmark_icon', 'actions', 'help', [16]), ('led_blue_information_icon', 'actions', 'messagebox_info', [16]), ('led_green_icon', 'actions', 'ledgreen', [16]), ('led_green_light_icon', 'actions', 'ledlightgreen', [16]), ('led_orange_icon', 'actions', 'ledorange', [16]), ('led_grey_icon', 'actions', 'ledgrey', [16]), ('led_purple_icon', 'actions', 'ledpurple', [16]), ('led_red_icon', 'actions', 'ledred', [16]), ('led_yellow_icon', 'actions', 'ledyellow', [16]), ('life_ring_icon', 'apps', 'khelpcenter', [16]), ('linux', 'apps', 'linux', [16]), ('lock_locked_icon', 'actions', 'encrypted', [16]), ('lock_unlocked_icon', 'actions', 'decrypted', [16]), ('mac', 'apps', 'mac', [16]), ('magnifier_glass_dropdown_icon', 'actions', 'searchmenu', [16]), ('magnifier_glass_icon', 'actions', 'viewmag', [16]), ('music_piano_icon', 'actions', 'piano', [16]), ('music_note_icon', 'actions', 'playsound', [16]), ('note_icon', 'apps', 'knotes', [16, 22]), ('palette_icon', 'actions', 'colorize', [16, 22, 32]), ('paperclip_icon', 'actions', 'attach', [16, 22]), ('pencil_icon', 'actions', 'pencil', [16, 22, 32]), ('person_talking_icon', 'apps', 'edu_languages', [16, 22]), ('person_id_icon', 'actions', 'identity', [16]), ('person_icon', 'apps', 'personal', [16]), ('person_photo_icon', 'actions', 'kgpg_photo', [16]), ('persons_icon', 'apps', 'kdmconfig', [16]), ('sign_warning_icon', 'actions', 'messagebox_warning', [16]), ('symbol_plus_icon', 'actions', 'edit_add', [16, 32]), ('symbol_minus_icon', 'actions', 'edit_remove', [16]), ('star_yellow_icon', 'filesystems', 'services', [16]), ('star_red_icon', 'apps', 'mozilla', [16]), ('trafficlight_icon', 'apps', 'ksysv', [16]), ('trashcan_icon', 'actions', 'edittrash', [16]), ('weather_lightning_icon', 'apps', 'cache', [16]), ('weather_sunny_icon', 'apps', 'kweather', [16]), ('weather_umbrella_icon', 'apps', 'colors', [16]), ('wrench_icon', 'actions', 'configure', [16, 22, 32]), ] icons = {} for pngName, type, filename, sizes in iconlist: for size in sizes: size = '%dx%d'%(size, size) icons['%s%s'%(pngName, size)] = 'nuvola/%s/%s/%s.png'%(size, type, filename) taskcoach-1.4.3/icons.in/make.py000066400000000000000000000042561265347643000165070ustar00rootroot00000000000000#!/usr/bin/env python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wxversion, sys wxversion.ensureMinimal("2.8") sys.path.append('../tools') import os, img2py def extractIcon(iconZipFile, pngFilename, pngZipped): pngFile = file(pngFilename, 'wb') pngFile.write(iconZipFile.read(pngZipped)) pngFile.close() def addIcon(pngName, pngFilename, iconPyFile, first): options = ['-F', '-i', '-c', '-a', '-n%s'%pngName, pngFilename, iconPyFile] if first: options.remove('-a') img2py.main(options) def extractAndAddIcon(iconZipFile, iconPyFile, pngName, pngZipped, first): pngFilename = '%s.png'%pngName extractIcon(iconZipFile, pngFilename, pngZipped) addIcon(pngName, pngFilename, iconPyFile, first) os.remove(pngFilename) def extractAndAddIcons(iconZipFile, iconPyFile): import iconmap first = True for pngName, pngZipped in iconmap.icons.items(): extractAndAddIcon(iconZipFile, iconPyFile, pngName, pngZipped, first) first = False def makeIconPyFile(iconPyFile): if os.path.isfile(iconPyFile): os.remove(iconPyFile) import zipfile iconZipFile = zipfile.ZipFile('nuvola.zip', 'r') extractAndAddIcons(iconZipFile, iconPyFile) iconZipFile.close() def makeSplashScreen(iconPyFile): options = ['-F', '-c', '-a', '-nsplash', 'splash.png', iconPyFile] img2py.main(options) if __name__ == '__main__': iconFileName = '../taskcoachlib/gui/icons.py' makeIconPyFile(iconFileName) makeSplashScreen(iconFileName) taskcoach-1.4.3/icons.in/nuvola.zip000066400000000000000000747116421265347643000172670ustar00rootroot00000000000000PK tQBnuvola/UT 3 QFSux PKvQBo$v0nuvola/.DS_StoreUT  Q4Qux MKAǟ^`/ݖtXĠc!vHA\5L>M]q1W.opveg$"QY$IB$ۄ(gmi? +GK}*[g} c3kc߂clV*[g}%͂+Ul^ h3n6N:%"X|gW&Vm,_{-{[rz4dN[4:éc$Qh1HxFw>c$1;$ˈ FJR Ya~3"PK QL>nuvola/128x128/UT ʤVMFSux PK PL>nuvola/128x128/apps/UT ȤVMFSux PKF1/*,&-nuvola/128x128/apps/access.pngUT MdAPQux zyTཱྀ*T WVj%.YY i}4q'$2[Dܐyŕsfg27'` jkG濷JBq@D6 CPTѰĽ-P^qa{EKx lkzѶ l}1>lz$ 7c!c?" ( ^#M0*gR10nݲЖXYx,[H,- tMn #4(3oXJd5(Agy#JOsf?td6C`jb*jlKŽ!<$pj8~T.дng@J-KHKM'bkM\H|Oʔ8N][*ҟ񫿃:B(Uv"X; lww6iZ5JQ(~6j3e>L:tX'VpD_\S="O~c{nDUc*z+2o.͓~y; P_2\5QzVN^)6|\, +}C{0+?y.$bYH>*Q*d-*AI ܪqiܖYl}Qp|ˍ~1[ufCu7BnT9reӋ^H"MƓBc6d>JƗmFw"ј0ba~琦,+Rya}0g&d̥<|aו&@J{~IĘlE!_nT~ `u=Oc~5x;J? +M7k{s&ح1;{2_x"1`0 =:vdm3q@w bkQC:٬{`ʞx]K7zӠ!a9-Ź*>c4ֲs4Fvj~H#ˈ)1Di",ibu ēS+~QVpٷ8 fޫ g٬Wco7#w{+ G5|=$<#Ml~]>ХiBo 7ӱ05V.u.תxZl>B_Q?sڕF?J9[UK`}>^\8sSccRr74TLJ|?Z+IԶ=3XfPkߏиbǙ5jIo}錅Ͱun*춱wF<]*Ǿu1d$pB_g*=1\A|cg"h~$,mL-J+.`6 g_/~FdoMw1+Φ5$!bk܁ӛ3v΄v-Pޅ"&ydx;}}>'f%נꁿ} !^DW*IMŲW7?:tRy~}em|pD# Z'iCr|`;pxɯ1/_E9; ã+L|1xLfvɇ/".JiVa6Pq H'3wU,R%L >St/@rr6"|e8s=ϾT0Q)85XD&*0޸~b~?Kӷ2aRT$<df>HˑP*F;R7\I k+?-{!l.?n\sT;k8%f|Pu)̘61 ^-[:ΛT<90 _(c2RcMyS! B2 |"OAks=씜e{cv")5!PS3*h}e9̑hDjfQGdE#Jm͂L azJnJ|-6ic_x 3 $LR,k y2 ;6/PGnk^`E;#63P_էau(0),f) 2 [Ko*K4*sEL@~8//ڜ') Ӏ`3Vvu}>:f\9:gRh t9l,YeMS yׅחŅNj^płϨu Lk:[>b7ڊH(w_|P8=ڜz5WX$Bxiՠ512AY 8*"'|3{ryDo ϯ_^'0ƒ[Q {6,BN 84o (cD̂c" 0":H @:/+ԤCEpb+-# T9>>Xɬ"Z03X˚]UEUZ =[e%V.Cc?1IK2}y:礲=/OHK56S QBw#*ngPL{'+[s%L@/L/+r܅K4'ԃ2qCgUB٢ZH<<]/A D6 ^+]%$c^Rmjj BJ3Ir&W;I hS("tN|kSp-Z]wtQOl~%vQcvDK \VM@px˃8V+@;9h;vuOctvfrM\'-Vy Sm2.e?%U4眍DnM)DE))շڔ/.̳_Z %Ge>ѓg 8 ~H(`;aw>lWqB]гIsRe%_(_p-ۘJx+丁#)OYœ+ HPEB{=խG0,6pd_Uyۮ`玦{_vl2 Ya/c@ 0D5c!D>Y<ā!a0amݧLBɤ`pE̕?~a#>_3okěv;gv@;|PH *Pv?ۊ(^δ5G”^Xʡ-zr>!BMm``|XjU|Cr3}+A';a)So#^wVϡ{jB؛|I4珥6`󥣂^+S qޣ& <𝋩f? i<$g \Rnhe5ZRF$[?gc@H" B vbElwό9+mt9Rb _ڵef:5zL:3y``$bFEb2 #2*ԩTڠ$A,i*%X+hLE.?uHf> "XΦNWYbаgN:NаN]vI\ѼԿA t%Ύ2P^'X܂a0nWa7tl0xV,YZe"?R9mV#b?pe:q@K)\2Q\ΦNa^}igNrl4z;ޝeOoq+Nn+VD:xx..3DoPxxyivML"n 9ùRT;ۤ8f>UKMY{LCXc Ff*Q>NE{jOQUErC ܬwbZ@ a*gU}$+KG4}Iރ C)9z{"+HHSςG ЁAGB(l5 -ԡRn+i?}Z iobu(Sa|x42 }w@0J94f>?15QJNYPKS㲯} 4KDiVe3$h$Q|p;̦ kX8@G~A45ʞ2v5}V{*:f֬`H$~w' }xb=(%zm:x7 (LGRedg p.,pz/9mOqmvi'ͼ+d{}巡"YM?$bo؀uQZ xp=N۸UMpFv{UwWLzTK%෨Ͻ`Gu󬽇JRć'ŰA v_zt(1I*hJods7kݗ+D Jʍ,/犙 |8gi,Wutp8O6K=L謄1;? })j+ۦ6I%9)Ve̱ q!Bvoinj^}J@ Myt[g-9u*,R7QwI+3-#C/P#m L}uE3L@[SS4הF ~wZ{Mu;jP-/ *bT0[*&;[Vɿij|,/W+ I\V6Q+f8L[*|:U(\k&ko▏Ⰱ RH0ꉓ7GPBr66*`^L&y°= lvN aR?N>A)>_:Q[ZG&1Z:KBO9'U3_&ާdwD_Wշ4GT zЩ{lV{aiFelT_QR I)IֶhԊC0noTr5G>̴ /eP?{fuP:A-kL!(t{و$ih[^[mkn^&nq KyZts"1;۝ظ;MqϕHڒ8X5QDԓIc-X=Ta7vCz惫ySG&ZZa ,4z{îĀ7iAG.fWz#|_/N'L v#?JHղU0[ ~ZtMWvkNV+t.PT51K$Yƹ78-T.侢 (> '2ZZyxiJ +oԆTwz6jE}߂}WwU8;/BWK}NG>.dCMYtAb53=ӄHp,#pXқБ>eg٣h)HJPi>M"o_\cIuk:2z8xin]IM+;;y 9csG-I]bRi 'db' XTG_Ԇ[{W-*2ur*z,yL%>j#]+z_Xz{ʒ0*Fu v_^W tyӟ~%15[$OGdq;;#U勞&܌U"l-gNd*ߛ42};Htzl,]-Dy`]F} 5[E?gٌ >sEYfg@)xuYVRW$;TU~?i8(IAwf5T GqDM.^EkRFp"Yq1ݯĎ7=eLޑ@/!+P9Gu{Bt =mB%jK3;0 ,+gt?jOAj.Ve2eNszўR QW&ʌ~2G8tJ]Ma˲iNUJdUL> _ypX=A3JQpg.2v3s#[x\N0fɵF3`Z!VLO(o@q>H8f0i&hU˽oQ3,)A$85+J[u=PNj> Ĵo8Qt;Z}u5:KsSSq=zn _҈2K`uY/nlGBQc7qOgǔLॻbe$dE;n;GY%&87jJi-eu#<Ұlvfk^*7F ~{"\kgAsy) = 3SU˚e)]?G= 닟Wū̺dʹ=<׀?O㚧Vazf zo)eC؋+(EP{QP=@ٶ.u޵)7LSP]g+&(c5mFKb!BT8`H 0c@_Lbox~=}&K ER WR~oNv~GHZYqK\5냻rn GD%8H,"U8'iڭCCi7E~saܐ)ݍqx,q:2~ՏUw/x?]Ɵ,9Ô7~jFه$B SjPGxw(gKW!4 eNWQ9o-} ŏ?jPhz,!˄GČL?t|щkgEQ}V91UM/FQ3ێד5 l獢@X465WEeTLmL3/#z$4sKP=pNs?sg,N-at(t]jmHj6k+fB SED>ea_| *-j[ꤼKjh/ %I[) %Ӿ<6m>oB3lA жs5ؾurַPbL ܩǨE(%. ~pؓ%{ у(.I(2wU`X(/>顕Gb,kpS IIE} IZQ#')a5oY@^]̔E2QHɣau#1' iC`T[:?ѭP.B:V¼27)#77f0S|NF&`Q`VD7? $,;ӿk#$lcٴ7JFfATG˵HG0 }hZk9m-Hq)؈t[SMw5[TI抻mLNݟ']6uKP`ӷ|JXsdZfbs(Hxy(/-ǦeQܯŻ OŻ*e2v`LSР#T~]:hFtvL-)c-g~NW11?GT$nB)6:CGg1k~ETcњo .0{>TtG.Ǽŗ(wQ XkvUج8p٣n(Q](3Vah\޾};OPFJ0b#KVmQGi%8TY~Sf9ݯZIs {,uY1YUL$P0<+gMJU ~Gl6CBRwK!. 6[)ݷGΫ0y19ze%8džH"n<,s*[eZTڜ)WZv: L b[rFwO.(M??0\Y)먘]Mm -ɕIrF5:^. G$풶OL(<W* ~Ggqw_])odkoa$9P HE!(`΋?ۣ E#ԅ9= >mNrA~#Jaf%RY%k\i4E7Lym-h{->?QR,lјp.(P,}OkB&7v~T c< Y%a9_,nj%g7N̊A v@C|*+Μ A@+62YNdT[ˠgC8$N^ {$I Vzk f( 1w̳?u1-@Fk*ȂG$3%X};2 $&,,CcOSJ;;wBb=]nv_S&%~x.{nbׯU6?2B_* nA{k/}b_~(Khr7pЬ|~!T}je⣧:Ӯ=?{5eX?DOz7˗e* 1}-y8[Ww[^:L>!:X2|n-#yZFOʱjSýfc%˪1ֈ=w0PUfܒedkD?YxKDLϯOІA5 j0Jd~j*Us ʢ2_T^IϫŜeiT!=y?$$:vh_Htaߖq%5sz_)5Z2]Av?2o9k.Ò K=غon ڮ㒇a$@Qf?$Kjld7X KMIaNr-Z=$a^KhڳD:̡|QɊ5WS 0ݧGXd+YV?.)PPV;펖ئdEzo}|Kqjyu :FMwƴ}Q3 ͢9%|`"skIjE}sv}fMdh(P%3tp<2 R7yጥcP6hzVpDd_{| S˔2ۈnwWyy\6">j!ޟ>ĪvlL TaDikMci uPY?p9q!u_aY?f_p;`:N%w@dѣH૷A ȶV`N%gVt).h#JGt=(0N.,qư/ҭЈ] Q e;Q쏿QP 9Se0aeWU~(*7 3rt]]'R*68_|QRS];lzL\2taU9{S:Le避{ǒ< #ڧ/?6;R>6(ySCv~1[^Pl, VMke(;tBNPlB((66-9$T?Aؚϱ]Ώ}83 AaK"pGJ>=B&iP\& sT$`6-~ͽ>Be /ޑyD#gX;'9쎢+~O-۶ ~—K?4%l1r򸫫khkCL"}{lR!>24L4+~lđ\-C9nDWRpo šjZ=J1V w,A| }{9ۼS2=a\Чg<RK\'-ΧBDǁD+sNWi#cij&k&x4W6]>2դ X+Vb7ɞo8X۱z{Z41sYp"^ƛ*L-'HN$T5qxI1D4Ֆ ψQGt-mmW1f \9#ꎝNnLjk2,mS7'%-?i.W@3&09]uv4qx:{d_96% ɮ\O;\"0#,;X]-a `X%;vrNفpHnrT@^{$G.^V~Ҏ>Tؘ8ta5w F?•c*e +RCd 5\? ]$ijuA8Tj !C;0ܗJ<}É2/~ 5u'E4.J*D42M%YvۑEzu!ǭlG•%μnHHi '9(jbX%lf hMAKjuOťFl$K}1<:S|b@:KPU-lc6'_:!jO>[89C/Luޛr#u<4%rxzi"1 :ArEp-l4<%7xt#O\vL'lT SwPw7CjR֔-#LlXmCklRC~?CC2>@YP58+AB*IUQez|v2)ZdGsقӖ`6VE̩=E=laJqS $? s*6>8;>?iML9\4RaWSl)ijBlא{?L'`fuK_:6w(7MG.>6N(}9l9m$a-AF2;ewSEkh3fcL,svhYc7/;"'9ݼN|VEU, ~@嗚Gqϝg8)?twW&ETls-rOT 7nMA3ʆ5/{7vk%wkt$RLp} F樌Re>]*vԧ\x[CaHCYz}ifΣ k{~YN]O$bs]PKfgj __d~}I2iq:j[|!;%~R( ^n"[?pn&⹌ d~totn Qj)J[{:&n`n%P) %V 8(FF88mFYV)ukT$FrT1OR'"6 R,^yy.Tl L:D+bW.՗ t^M]UK-Q8<t2btI8)irI2J0\x08wl&jIͱTN+SXs+ iOd4ܷiihEr;.w;m'~#(ǸU_ֻOB c!i>0^:^?-}aE; $ @v11An,t>0aǹ'QY4UuPd/LF xn5е)0e]O0f\.1%k5}wW~s^P(\Κ[.O0ߐtIU"ES(ع$Mo) Mn EU&I5ЏOW^bȸ='gLM({+/Wp nH%T@2['oqQBDf'!-FQ W8:'֜ qq!kl]u_p45k78c{J.ʵceqؤ]ΜOf=FۘIecWH7y[E9 6AZUf:N7RP $MD{ׁsVPyq֕ۡt^l,[UKLE-5H>Z"Oxػ$酾P-s2ǮgN WF]|l!ŵыnjd\*EOu==Se G*e_2S\dɓ3> 7y4!VoP|Ǯ^8QseW{Ef2>GWpS&0`mل1 J&\Џ$NTh]85=r^B/d+i?H"}/l8~j~Nc_$+{- JVixbFTh0L4{ fjlxt+J:xWu6iPixEQq 韥gxDڤiy4M3ȝMMKL?;w]d}pG.I'FQ)(%CUf2V G;fG}9J3Cߋ{\? \T3YX,j _217Eؿ ]:Zw۱exX*R %֩w֠ͱDJ9|"׬R' v-Xg2#BNH?Mf㙉I -]D7|Bszsri~]ӈ& D Q۸J#51 } c T, mkAo1'[g)LO1ǎ:G~=[P],W'ua.4 $p*хD_&wn݋|UmA6Zs^k{]s>{nX'fû_Wh~ᵳ5`\c +㶏v hR<0Jh.CtO޷9XRӷ? ࡃHI`Sm@UŞ~vi:G^RIyY%",jܮ*MOl-c~0J"/X>~aV(q 7 IΠa@eve@*1 [6CCMElȻÈ KT&4eX]) |IWW-&%`ƥ'@n᝜-D£p݊Q MXh= qV%S#`е]6͈c8' 3p"DXq$ Ы,֛?~X*3Y߽zܯ%5>?Q3u3n<t$NN,%7ٓjx]ΙuYxiDtag4/eǷփkɓϰaʸk˦tίŌG*~;zq0R^_jT"m+J ^ ġHM0GϮ~}eN͵WO% 喓xPD*:MIp3W+P)Χ4BZ:޴${b<<*\k.fݽz++dO<۫'bcLIE LA`9bɮogw8O8t H+)"󢛁u!0)<&902B%$ɰN")Z*gWAb{.ܜې$vt;,Ɔ ARԞkuz:F>vcc&Z8ATTW]n>S 84a^._QqʝڬAZJ$iSÑV$t;t6{K>8CJ-[vӷ^2Z\܁|Zv՘܌w~AeojNZ1SIyY܏欄׬VB>$iYn9$-3ٕ/@s' n涯Oxz}j{wvX1w/:lxZt_F>ɝvk$A?NRWpH?@5{u+ky;`Y˯>'+:UR{-޵ob}oT-|H|xxYхC٢uG8:9M PNƘ_SG[EV٪u\gjθߌr?9H+'rvnedkwP }fECqfՑm S3!tKGԑy}۬q!KO|ҏS^mEާ]6/ł)(8`pwV$or=G]%oW=a>qIٟ@4ܧصn^A#vYƽ_ZGeP[7GUvޤڮQ6cy°ho b{)~w,kN>yĞc76Fp0ݜ.s0S#t(y_pmmHCy=\|䃅@l y ,[,7'-irQg|&)O'#>Jpo.Sp]|+}8ma)M0ۓtŭ㕲uDWV4ݓ8y8Pz1N.%y6=..Y-yWQaƬ][]{j羚B[Ys_;m2N^V|U ]R\OEŻ~(f8kIJuRpvEG[> e#m^2$ оΕ.]xq苖j;2}zFK˼ VY~}jrxdqN -,'89ʑ:2:6K[Tf> K#ё*fVg' UQ+֙,HS~`^ ݙ7f,gFX|Y^t ?1{ _/3QcU}G11g˧EdO'E[a)yj'q跺ߞT5@pƐ,,'7 tbO•bnh=5f*6 ]f# 8j l0^ТBABE ,?ßsv{"Hñ$:i{V>t'M~NAma~cr["!#&EZ%G|FVf0* %}*Ľ_ݶ,KEOFv7#ߡƃPw! I[HuRjYxt:|\J&0:QU>dMف>F -b thHmsf/m9V؃ c%\.?e-=!tea]!}щ_)~(vj^ɥ Ps-׀/7 ZW !nw w;*ّX{ꄻRmIG"S5Q{SNTgh)(z(6Hz8%Ct]}^=b=mbRv-{.c;0i>^z N+6`uΜ t\$ O( 1u_֜7ddh^f+p:X* ,-Ծ;L~TuM2Uv>OCti{oؠS LS%׀g *vag/HPdQk)G}v@&2b Y˚1#yӿufsêB ,L]{cQ23icƞJauVPDkyj=+OLfSz﨎 m)qu=孄KJc =<'7pyzx motB2K,߃kEuf :~M)CaIde;1ь_}`AI3f<噬︔xvx"s>z^ BbkZ*:s-wU*Zf?pf6 'a#޾xn^%p>RuE]ZsWg<&z P/Ա-Do:~5tZR}kdW.AYqJ{?`ԶysՀ3s_I/By{\)$ fr.9k   b[Dcb,&v7J 5k˅YL|jG9|v>v39|neCo3|66 C+)!x!dӟc_.>h򥄊t/櫠`pG;6ccA[k" ;|Aq3ǐ03}{9;ި%MEw;h )Gm&aqB#"n ;k Q^_cΔ-@2*]Ğ!Q@ɫZ`:_֥9lتٔ>":c9d˾˶a^}g3԰U 9l3v3Y5#VZqX ) (OuB`ϟ(*fj aLա۷n}CejGf#jvYl HDVդy!ք2MLyι2_D K(X_0Բ+(O.;'0 8 w!Z<断5ںs^ؕY0uss_h:^OV~[k?NKONuC2n^jvB;] 4!v,-p>(H{1uam TtWψ-'Hb/1FG5@R,g3Kz*s B[*=k`rw;y3Y=D d2ψVUgΰF=9ejì+9Ig_cĹs2?5mDѪrf3-Ո # ˶c h4BuG/b^fCؼi ([e;,hqW%6#S 6%G%Rt6зx<7 R:MZ#sh71}'Lm۳J2V|K[K NWќRyZ5+~s|^3xCX1頵"+﷝0/](8='Z6)Z~%oqK?یE=nڨTbEIZ =5RZzu:*ЩﺔI9y|ە:\܅"ۚxdB*pNī)|TpP."N`I'!W1 %䮦u}1m.gA[pT&tZnm AD,û4 Ik?; <@Ya9pވWReJ4'XTϡ. F2fd =)m%zQ)onZ:/0VzEgegzQ'=P'(Q  %Bݚо\#ԉWe`Taf("ESʊ%bsϑ0/rr).ڿZw9hA>_Ճ梌|д⛤ngeka >$^LZ\k 'h?3R"9F xr knZ-Io7tX[ D_R~TJ= yjxk_sfhR3Y &xU]7.qj، `/V:- A(! &= ŧQLmE_{Kb*I-Mw|:K=z\Co* e %GQ͖IǛ-޾^+PbEFW r#r䜮>=_sr\[QlӶbnG<ɚMIlsW e60t=[wE7; yܟ0?0?B4t W]ovM@EFʓM]v ?5f񵀔nkuvѣ<%?>NX)3`LS+U (֧%D+/)r4GE UNj]ȷ# X+_S tߘzCYAL:牥) 3_A+$ .n蚔WVhninC/Ά֒[^ҞmB?KAfVg6~& ^]eG R~ەGX&_cuZ8,_0)Ef(Aol1w9,U̳hm% ҉ KVNt 1*.{5F3^^[:'n8@/Ѡ4\tAJmodK}ȵտ!NQ lŅj< .Sb3ӣ챛܃.R?*91pBh`#;4' h6owQo ~fY;R%YUaQ-/iQZ°M6VL K%?靛n:#a+vocگjBBs2:dm7> 1>1$3#dF28|vQEsr]]*H ^е;EHMPr la/꽶z p%ǿcjxp'E3L.s\33EUȞMU)>%IJs г5lcj ;wfй<.Ójhp5Q)UQ"Vc].L9͆\ׅaq~شyi4 -O3;P5;2H3iNgY sH 8QTf!+7QZ땺B9lBvR9 i[۪7yp{wpEY&ņɦ,)Ee?<.YFa^mV%<7&NK' fh16JL40Uu9QA֔WSKĪH#E/uO3Hր\4 :4 0~cd]rhqh|BsZ/1ɓf!^,RĞuh8 ;(.L_Y]hA_ ZSX#lIzOs]h$sڏXζuXlWԅU.5g3CRIvfwxMlp]8_b _ NMy2hfg~{/6 _4Gз8*xD֨kŨAPU6mP#E9e VE{H!Wd Ztj*bE߾A6ΉV 4RCƭ)Tp56?ӝxtF-ޢIS]fk|T8?n{{eI1H;Pyk}/;x!c78qeYp˞y3B$iy&wMoxe׻` ƦIjOft⡮倧tP# +39gEO8^|FA_j]xZ~̾d y Q{SDxIKt}\d?âc5X6g붢cjMk}2Qַo_Gi{/=n$c\nq Na˂=ܻL,pU8K}0 AjUm 0Gۑp= ؚTt^NS]aUѳˉeQ`^`-/cs>߄s pe#(ޗ7O r] 8LXs,P\o/0b3zٯ k4}`40ЫǷ@1ab:tJ/GS} !xGzH|si["z\7pcv%#K*%Q^1_l5Zh2T$a۱@H]\_MZ7Wco? lR1h\}k8Hӟin0ܼ¢f#bJX4;VlT15%<+\ݓb0dX΍p>>oDY[C0{~ݴyppkVor'Kc(n5&CϠoWq a2DjR˩N G/]˲:.+ʭy4!x+aԵ5H,ۦelhf=4/ߋ3tI&i:͒@-%5_BD͓Vd;UɷpیtX,L |k42~)O"E+M;l;C6(,N^NCg&/-s9Q50LxWJg(G3NjֈS)p"TDg] 5/2sy$jIDo゚m8St#$7 CrTy"d &͙*Z*,څowcltScx+!)n(N?tc/kX:G̥cE }@^BN\Ķ#6!>JqѼ}hwGQ}3ɆvNS>J`77iT$B v uEîWSoupC!a#}2݉i[E"𝟳] R>):_a ]cBKc=x/A v9=]6n0yj{1Ge2 jؗuy,ݏͧ~p'o`;K#(o`1S ^oL={1%RtD:^mO*D*Ì&ObFpxnC 4:DޝAm|Gu7m&+#X(};J?wZ' um?5nVxuZz+NLn(J\F!2E&wuku;W,6[[ c6jKHCsMs_IǮĵ T_W&և cM-Iq-7-,(soq#X[+ҰIՒj60R2EW-C#aWI8nU:56MW:9 [֠YN0wRФeuMhLu‘xԯ,T)k8wl/Fy?`sNXKX|հOVc bMp\}y&I<FH_R~ X (>7]FxկFh Xi*MJ8)qe҂h/>_| K8ն,5/MzwXGiCz+mQkA9O4EY&祂f\;dgt& zncrͼkvLy@78L>X Igya;W"ؐT9h1uZɌ?!EoŮupO+|=%Cid$xiȅ;&K"gSvpFӧnO< n-l 5G|ԄT^<)^Vm ^p?@X5Ƀ.0Y?ˑJ5H@ }Ȓ9 rIy좝b׎"4~81d}ѝ HH5_}nDi/Sԗk{E\O7 fȭ T\C4aSM*]}ETS8jXjTWYwwwsx5-FJ.aZpr[ͱ`SLIR1 ;EG u\AՅKw UM"^0KKYQ?50duv8'] z- οk56vzZx?ΞIE)SF2F'a g'[FC' v2JӘ`ҼkH az _ _8 d,̧5V5`wrIwlb)۱>^ls" <7" =Ո_K_ \ 7m,♋I7GW*a zc0֔nT +FE6,1ᅙb|{d&/1ΔГPs@][@m3 &UPp4K@ * k ,RL!p]Is)`3QJE ꙋ (pd}Kɭy{Wռ[M`?` )M8a/}M0B}zy g?a>D_ƾ'5M$J&.t+T^&mJ._)f1PpW _Fƶ`irGF8<:Pnz lOK5egS}OA[HRb=Ւwj%P|b'NڕeNbVVexXjKsՓQ:Ճf׷ޒz,˯Lu9˚dF^㶇$Zx/fd{SJՓoVt`L0%mM*qwASpդ=ueX7\"ʦo ^3|=Y h '  U`]ox |m'V#ETRgUV)P7޺:{$Z'q^tծ΀1GW.xI_:ܥiN]`y%}g"BW&51g لhT8C*bls3HMduG AHʦ],dʃJH4qNBd8?l;˖a]GT!edŭN3 a؝,Iƪa %wSHi|:Qbb]ن=Vjm\l,M OlCz=t)EK 3 Y3 .,M~?~K80n]8I2kRg s>XXkKa?m8}I(!.4˜#$| jniEBT :K"XI 7eh{7/0$ŒOBh3ϧtλ;l&Iʱg]kiq</.\f!cPjM=YuN_AC/=\u m2rX93}u*;E% Sylg):$/gdnLo:@'(Ii,G#.٢Pw^޻ox'*eP.(tY+1~^Dꂱ%M_kedK-"rY*Vb]|=4kJyq'M82נb:׭[)`]_$nWr}< + #0{qQZ 4Rs4вc|NLZZU9ۥYEqN5_/e衂u_BΓ46O4Ë:$/f$0iMKj09/䤛8EezUk\ /h5)`ab!)) u'MHmac`ˏ&r֓LL5oȪe_TegQgeoE"e "tܱ=GZtڅaybPU|0~pg5_8UmVZ"xtۖ%.S!4Öe}ȆX*°:TkO+RŸx4/D,]4ys2;˅>[ םtw*OҠ=q"a{a( 3p|*wDd@rh2ޱջߍAg.{767AXS G )Yx Q,CJAC37/G2hNq,7pM] }g '.^~<)טt,6T$;sh}%X/lʰ5K}Bu6K /ᮟ8 ]+B@u8Կ"NM؀ E;uoL;PU`R"b*\/XN3>Ϝ.[rn5UQIЯuFݏ_zTݳ̌kM!r6Xw=2.6#X@C~(&+>4oD0A}_QeRfHsraɈcNȭno7dU3G =@LH%I?!D^Is2xXnyrX:({x W˄;uC5k6ZIn?m˃oZ_ }yG6lVw';ƙ9C|[a gY%(6~GY9Yڒ7UESꂿcjU!J3.<~RxΉ7tЌ0PHXJZΕIݡXGS=9H4S9BT%\Q4?jN_UL:S@4Lit͢Bn 2Q$8}jaퟤ@_xE[p,I BG\܏"0ۺ o$8||kﰆZY2m3 ^YZY}!bE{sIrU-ܫf3-oFQ!gٍrH P%ՉU# 4ƮP}t- 6{t.?Uk\Z@/&2ϏJHvQi M0l)Y4eAip0Y {-P"|+f! 7v8inD3#qJw{M(eF>VsUч(6ҴD8ՊM6 Mr hbfD8'=`u=C=Lh_~D݊i'?DX,ףd^Qr[#}S*S0j&4e 1ͬ WE- ׌)΍9 ' K"0,J8^yG:w[fnEwGZ幂lG2A=wEׯO,IeBWu~J">BRi*m󝫹'G]sC9o)6 ݤ_U::Mh^EFYRzVwpї zfP7|4cvdEiOؗf y}9t)mPTK";u{*ƒN?0_wUO%rW@:$R~([E4`ꪋa j<~RF`#=`ZZ}w!\.*7hX @LBz?r?T hC*-R\ˈ?̃ŋM#Ta  D pnG!}ඣSGHf qXf7Qi:t(PT'(h1̂a8i'"G +![m\M-lHH"(@&S9b/R )uu!،=#4ٯ~X;R9Hvj tkh~'WYȨ1}FDjZU?X\4Pr'&}לJ#V('w=&GA"Fխo1K"Rޣ1g^q7y1o7mW/!Ӵ`]hptzymz'o1 H2; 1=űi}7_زsٶXWyk)az)l(})>恂߻!G]K %Z +}/.\j ]7 1oF6pdB6@iaH4*P?S}:PR Bdv0F]u5ڜ'R,N.u/5RȊ MV/?r@~AL`$d4k 7YH0ڤ72MnC*6XUMܐR]HyOޤ^>DF#=܂$sݥ%Y Qf+B4w+CCĮdX;/$Vb _m_KDf.#~n_X'nHeqFtl\8yqիRw7fkf3LHP+ &GHRb⼑@x-K.4)L~`~E 0n*e!e8NՁcb_өBw>l2| e87UpVOcPӁ%6Vvݑv@g.׏vG9{ }%Q*k4R 6NƱ9:HGMnQ(2T^ cSS=뙒Z!*ho {^m=Z~Εց5]OAdx@_LM $h)z6XPQc劉xvZG羚 ~zU놰gX2AFPgaUc#@ˆsyRV8QiN<Z\3rVEJ[CS;dIl srW>yBxvPߌy+W 5ŏ 1}{U S4mIL ^6Z ^񳌇л'n{+EtI:iR bx- Y,xI])m:4r::twukY>{VT'oQ=y&uƫy7kyv|G1tsLV1kW8.qB+ ٫ކI޺!Tkщmꁻ.ڷ-Ukq: eTO>yʇ!ȽlfbQ6rfaC3 'EnL, vի$*ztb#G8}.j3S3`ևQG5闏ʅv$^}k=UB!]g RR+t \|0P! E=)m=AӠ9J?/׃MxHCO0wltzX٦bE*|d&^ Z8wzbUl)ǟv)3.*g0z&9hI?uCo>;3%i}+Q\\ǩngk&)Fёk'%/uBqQb~RttGoir#12GK7g5/Ŕ%/݋:,@[24yxc% +t^:/^tÉ1):d 쁒 C^{Yć4%Ey|׺GRA@Qh7"q'Y(1gWH!" $S;7Z*=S/yyeH-@q# BL`F ]i\r+#< ENS)1gpI-@S  6\lj5l,XͱW{\&HWwuv,?n,;R?qT[F [T}_guO}  .L2 x~,LzF0"$FhSrR1ato[ÔX*I@B vC&mu:LѓՅ7F{1|&vMڢ ,zz&t"yiӍ GÐ44 ?)Mh s)amyU5 +pC3G'4 ǚ4I݂mZn/]*7fߙo^?㝃#STjMnXս%5kx(2g?ͥ,3joQAr{6Paa٦zk[ RƢ-¹=d!?9&#TxL6jӴߓ,5%=05.s7NaHDІ"V:CR! V8\Z#;:dLLaQ@ |b联L ^%Jn[K=#ҺldZo#y*o6BZQ|@:Uvr7jjqd<2ѼtGdJ(&@lJ8C QFwvf4w}gm{=EoTꓕN%tĥ=X'{٘&9- JwHoTv'%tn ^"BCW"j{C~awg8S*1<X_1{vU _6kișוzr5duֻ ‡J}-\H$]B5P" /9 ;?G{ى3TT?06:F:H|#2n ;J3OAXP4f3xXk؉-NnǙG2a1LvP߫m°I, F&fv p1`!3X L[~Y.5/jc^@-i'X.2dmYp'ĵ!v%B?9p< ܨ|h%>}4 lIKͪ;(Q}ǀ\7»%;[D?J}M7128?@f5&6tm @>Rݞfl82q;Kԅwoܶzl]aWf&%W^!6)uL#}1X[J9<28YR~)65qy`S){y"mY Z_c P-#-?^:w8k r18{)W/u={,F{uQhzߣh=t;]?µޱ0 WwV[KxΥ8rɭkʹ-磊 `SO' w ~X]pOCۡo..b9tl~)ƎUXd3SyũlE2 vhEH \FӚUxY8J,KOd\ H(U<:/_7 q;}p?%^2FK@~`xJ&xjg'dEN`5w(n-S&zd\xZ=,ÖBm{3xjCzCy-C0]jS=WggTFN~~v&\g)oێ&"|hͯn~\MQ6 aU92Vϓt I9}K)lL'5/tz'9c=.vEaHgc_CBp%k!ƽ\Yn.$hǠ6I|KqZA:ԗRR/v:~&,:`4.av{.S[%TXh^ /uB3c0tCJDAV, K)O:V/GJ̵F[=I&[E )1-pveX=y˙W/^o3UYQk??ںS<8`GZN`}1 GDH;vVmZrᐥH7c;~'E;}T*yx%$ U;r.TGyt23cB|||3qEntk`3ū?.:-pqf  }dNϗO?'B⾂UIUohQQaDqkT{cr^ Ê^D+)(D܋I\:[4ވe8{cI;PCfL.9=oh~ʼ3U.vC;Sa* !Oym~fO{(?^L{9ʊ^ 9 ú͸c] vt`IN-Dn;/m:gLGdw2[/8Nf~yT&L[fYxI|"*yMٽ؃1@dG!:> ױe9jb@MӊF m/Sbx UGy(b6Ο'翼3o?E/ˀ58#J-[IJ_N07뾔@vw/ b.&?(XP{UߏRm3PV_b L$sT1D2n=V}#^}mk׶%_;FHfVެ`AU7..inmo{/:+4J{a~ZpOգ@U}Fiaqg}ͩ<&̺>v3onQHoG\9DՏ"iBׯxɽql`!Slon.gU΀Ms-끋K\+1yQO-p9`EƇ:zL;.3kq{7Jh/.sX$]ۼg2Ɖ<:Z'atΘRf9sw;Đ h;j9z0ef2 mrtzVQ3̞u 8b!Vq68hS]/˚gVFƠa^ ҿs6I'.vCL:Qg,Hgchq'Ԛ~ْ\Y1f/H=GDZf~hr*QUEY'wEŨ`!ڐ>1ĪE8o#q :^F/gTn,Mv2ڠ~߆iɃSC5 v(GzaUyԗ;dk Kk]ԔO63m!B8[o]ހ㽔uM [ɺ dݕoz&IoGRȌ#acZ勈Tbi()m*NFX˄1J_"s zOS!߉V4pG6#ŽDz>f5hb KSEW윳Ӎ ]r [랳<돠 V1 *No|NzKhN<$Y>eTƜN_->UKM!Q+\MWJ6uRTv".NYþ43#!arH QNkOՍNZU?D XE}:,鑖@,Qk~iL|f?7lq@p=M'NyJD/[9c/#SwIP[M[AbI+}GLTdT#fiyJrL`8MܟK `dɘ auf\#%>51~& .~^)+jj2q@uxSÝK; 4s"B޾fXJ![[S '`Zn%B97'易P(r׮]H{{_F>M 5I\b6"O mW}+Oc"Cw\VkffZا|}ܨD߫n$B| HD%(ꗼLK}*/r%> &kk2JJqzG_[TpRUDSסNNUΤu.d c#N<ޙ>y?T"%,OtMk@FfKJ]Uy1q@W=PZZ%c>^bjUvq폹(ZNYj2Sڎ%FғN@e1a#*ay94rfҏlJXPKR?LS"VJ%Mͅ'vce@pe _eʔ$%%{x(w++ܬ͕_(WIJgrPuit]i .BaPq)JSE"@fK5l+#8VusH(^Ab3Rۜ>PMHb `^YBw3%ʒ"s*j-$=nᩬf[RRa\є;Y&nFKBo ޣ U˕tcSGꆐ.{nV? } %з׫lbXr68挤^qKSQ|E3oo02 RQ{s΅VFaw}zaTĻ{vp6b?)L~򔘂~IƳ|0[cdR Pl"z_zΰ@7~5# {%ooRF+uP,^lr=n턉у暚ǑFF~\`Qa,,M^ %#j#6媗^ƀ Q$}f 8q{go;Ê]!6V1g*[,SoF)"O͂wK9qI @0:0d1eS=5xs1^'i5]K l~úW䈍,9Y(skJ]Cﮯ_|a[FPA"irh%a4>Ofef,aEo1UQeL(,ťi=ûU0~: 镤'dgKIeUЄGجnCeV3ȿ-,3]$Ȳ!왚\{ik3E>W~W!܀k;L+乕, v:%\;=|ȽyU|3?~ ~!j !u,'|E-_RNG[c$K"/-Veh<2D~Wv{!:gk$bhAsR<|CI~_H 7x mlHŕk?J{$4܊,Xg oskyN|%E Ԫ%Ɨ|i֬]i ,l좀sƯ"MS):^]Z=FzJmuZYAn2D*m?Mpfx#4Q0h\GEPO kvsWK@iߣT&!ӡ./oNG^E_4(Sd2pn $Uu D:+75UݘQmbʠրY]WeGMUuxgX]m/njYu ؏,Q6.}U)jП/ӻԨQ9Kٝl1 =9Υ^CQfzЌevXA |^6I4$JhB߽Am4:':Al8=J=*&kDʵnInozzxO!CaK&nbѸjN!7{ȚHzgM]R-sꕜHX>\D)=$BuoE!"2*jlRvj*UV]9\Od!8Nf>K H2oۆ%%}Kƙpl6}-'}|_9$K1t@?˻Cߴ L]Re~ !w'yojxɩ&GIk';{`ee|Q׎1dZ8*:Hp٣g [ӬynMc[G9e~eOtm@ hNW>wg,5m,܊S5b]M ǚUy3@=3)3GgW$KRxʟR5..Jj7l7v[Q+MDo;^YUwdaoWlك=dF(8`gq g K"up COn(>߈`9 g$qB [&zsYU:;THf~]8옅]w Mwf߾-3e6*A"~DeaQ\`~햴xȈ5vl|X]0 䠯877(E9{??4o{ λpdɬ@J3uDRTdCj_1 "'z9aE* gX[l*%$f^!L@6 l U}t'#q;: ֿPo]{ e:+~yS)CkZڂ'+{lwqb6i`G\;3q6/r>F~ŮLղ]YO>'D-F|33Sn3ImdB-qe^dc0VA-財=mTAR? ne& ,BS\e #$TGn]ԣY{ [2%uh0}].i;U*\q4'SC*^f8SCc2;a?׵_cSKEb<##beP &[f ]e{<ĝ"tOH &DG #Xٸ;+m$v􂉝4 njc̥l`rGc p%)kBNT#2)kp`HxK1/8{}HK'\"e%rK[PqyT- Sli{;i܂"*X*CPl8[ʵMʙAQR\H>bQyF v'dkO!%gJ3$u71aLh@ޥx.c8 ѥ ԯ,#B|>[İE^i(J ~#vTGiCM>+섓 T9?G;A`W, O`cύ$`Kê$lc̵Ig%B(}̶ C. G'°a| K> FQh”?K:!OAфKP#""p6zB7$mnjLs|/W!8Dg+&@ 4\WC5Y.]c޾~x8jY{W`/*qU/Wp (<o#hh@uoZpM˭pAn>r+cmNKhdNk1naWtp%$oxm@]"@v2J~fL>ӢV)+F) `R ɕc)al7#y[gJ Üd-),~ ӟ('0yQi+r߉s?68cz ?{8T%/PKF10O;7=nuvola/128x128/apps/amarok.pngUT MdAPQux u{yTRe!53!3S+3EsLm6315IFi2TPS22gT~o}~wZܻϹws:$nFT~6yFUq nsFQ~' ?))ȃ1#:)*vd\Ƙqz3BSG@dI|Pإ\f4 L (JW)@e@é:pƜ@!~T5ˌ6iG3EIP6˔6*,.;_Y=pg+>Tb9l!6 $2+K N zY LyB'+] Kp¶#Ktᴮޟ@Qo~NdQz7#\-^ M2QWZ%MIkI Tꫴ~[V-h $ jY%/9P|kS[A3޺[qf7>÷?|Yr%K;$oLfKy"H{̳JЏ[(_͌)>=M#g.ҭ [;.R,2Ŭiӷ{W5usVA&S},yV s ?ɜLV h~OPH9KGi?Įxul5a;a; {P.AyJcwS7  r F7]ŏ܃"r91nvt WC];-$??e)GTS C &F;*xk1CC`D&Ei(o7Dٓ!{dUQm# v!"ʹW dɏ*!vD#f9=4FA:X2hW2yyֳl_{{ɡJƊDfn* Jrb7B|%qB%+4%Q b uj`Fo$;ΟFWæS HO^IŽ︀TUNT>ӾZm cKzTǘ쁑+4V,3kK.o#ȭFqvԴ>_sʮˑ\bۄD|% /C a`C"s߷Y}Oz,3:fh6@wdm3xj+ h:PS5oZi!}E>-0` ,ሽ äÙV+z;#QTmI00t#F4nDqzKdCVkґ&s3d{Tb^ 3e߁!aGD,t*F٤+3rԽVrۺ\VduOMH~5:ΏD:´f/I ~5H&M~prI q,].8RB`3U7ŹyL=1ɫbp*6pֈ=.kU&Ar/'>ޮC:عni!)1/Ѡ]T~*Z蜴+{0;2F;;ͽ -xvI'Te099H=F>vވ>\Z{},dնCf%5ysЌӄ¸u8%e0UDq~Z&䧢h8LL/jU/?~K@n@AgдPCpwNuvn*|W1x/w7 L}aD(sȦM;^Nմ~-(ھp rќYv8W(*9he\F}8/9MuuX!Rbl\( OL7v;vI[ɔ!#^pMm6"⤊\KZ8XɊJA]G@2˽|A[qψ[uᖕM堠K~ŤjCξk(KucjVzLm c;"տl,R.z X|n~kwNBn>|7Ҳ78`4XƭהP,US1ܢ""y3A1K"@`Uo 2=Đb]hٻVr _4WC{&4A5U|i OHY zc\K7Mc&]B ;⾙ױBBpVupe(b5/WvS,Nb4q WJ:H`2h9fnDG'iL𶃲cwhB d/ m HN5u6NY]&SQJ@Y*Wc;2w&In ʖ d]U[fgB*?gh*Jwܢ-ˁl|Q*#Vw`@Гd]0v=j\Nk 1i9,(/BFYˤoav)6p Am3Cax#wCC#XWAQNW#I"u@巽I*2w%c>+e&y3 I˕lrX;l#+; } ?6{O$XqT8?2?nXYqU<Y#&0r]o2pY8ljG"҆))/&`Y"+U m 4L+qXS6xГN.?zb~]-.˦ssݘ BV5!Zō^XpT c]ף(WTأZY(> FE{a&D˫J0͎y"iz6L Tr?40HQDϴuapTػAjs`odV2bۯDpA~xZjdtF ҎrڑZ$(~]`;ӯ w"z61 Ktc s >K2vD:3EkkT p]!7Cpfm,6e9C@԰*DŋCCfY.Dcz2eن y7^wvnnUZHP&S ZdzV廙7a^ \^]R34_'(>1Io.efK+v^,`Wmehye F Y /}葝pxj՝= @#1YfT+bC |,Taߩsu^;I%lGzzIxhC#UO(adۛηBbD.GNpp/◹RuZsH̭`oz(Ÿ uAZ2vzw-KmF^|Ͼr`42ґDBi{1X LW;?HXm~E"C_Je3_//:w)=Dj'l$Uzga5qH7!UiX@.LamOm3$At c۶ FP2Qg28`UXyaELJ ^VZ-ymR%?Y`{;RdzqLNPH?(Kؑov.v2 0}I#%~bPe 6{;סt6 xv㘗|]m-V'h="ZqXG44" ZZ-_۱wTǥ,θJ&+nU֌q]~VȾ7jVLٛgGw~\HE>~ }"m"@@E,a/ɥӈ7?VFqz< A̺yg!Ryxbq:C^ιrJQ!˷Ɂ>^teu A2qa?S.+| |$vjj.ݬ Oň<$9~ f-uPW'lN$." BVQ֠oNR]0k73LPOdPYVI|)+yt6A?K1 #z6ѣExC~k8[fxjJ1#ɋ3t)Ϻݯ1nTf l8妥@&g:jMg =0lU^4'CRqY!+i< $zwS->x97/7TM4;LO|&):iW?2\Z.:ێTa_gAW< '{b7nd΢~Q=>mGBHgd+L"\%8 _t}2 K;ih=ZUT 4eJ]H]_g\O5e#nH>~˫/=ʇlg;p'G/EY, .Z|9`3cA$t Ɩa|i_ޖً0Wo}ܷ*"ga.paE%0.f@,!*`4ÈA qN_PtHFs_Of (\KBmGU}./&l>p΃4dv ͑aNiZ4;Ȼ*/0: |i-l9B &9wA}Ν'qf*!kڿr 5"65<})0jݔ5\l ,}>-'h,X3 gÓ y`qL@5jqL [!.?F8U |1ßᛇ~fx('z%&4й@[gʻz}Ń;/P.=ރʩVh K]a!,yz Ŵ_0e}0l]Eo%PM')!yܦT4ɥcf3< >A/RU 9q~T}5JEH-*eCdkuiW" 1k bG~`&Q\V[ [k'Z&tV%ٴ;װļ½j*hL18l>8FCpVfRod[DHə~u>k1:[Bp15ĠBdCY |e2Yjp)\ciFi } _dGpzbDN ,e@z96{^(F{97J2g"CLA/JTzM"j'@7fw@ٔl6D,{Is:ޡQ} [ls5C*&'61Q /W}),FӋr pt @3E:/AY$c33ŶvmoWwU^n9c$m}h[¬iLpl֮$o_ü~S=QgY>.cW=›)ԪVh mJڵP|SBhx()eCz)ɰ&&&忞 lTe78]ŧ"/ f8}a՟_R4$ Ƞj .QM{ͭaj| =?NeA ?޴Zm". dD7Z.GٕpB~f|`´-S}A~Y;MkC ပXӪ$BZ>:;FKLVAI]<{iHI/͚ ftҸCT6u/ `Zp3k޵(2 NPRm1;=sdyIm+E.AB } B"?k,ch- $^_ 0yP l mh3t2C%KԤa /iX $7D x}QRFs(q[?9~#`E= 5v~1tVMM7 ΡؗlfvL&Q2|`I"sOJLtWxǖ挓Jrt¼5ϯ$9@MVQ׌to_y:څbЧ{x'x| #Mr>N$ճohm6|Adwu<_ƞ;U۠}eR[쭱w'6_us ?#Ebͳ|ܫؿS kfSr 's`3''(sjD!w; O=H{)P*K mA6:tBe\zSM`W8ƻr^CF@/?<[w-RSk`F [U 0V_0$Nz8Y FVCSCΈތ/{٭C Qg:{usU>[} A2Qdw[B&LlK.μ:a¹3F%z6L&~3IrPm1ںE62%)TաX; FOxs\Rt}4N6*)jONm~vk[tzrύ[ w-THʶ9"<44T\܈2 r@\9Q7]1ÌL%EY7%RW{W:v@ .oN<~fx-Bl5>=>q|)ῼOPwd* ?Ud .ie [=ݕN M/6|jrAV%@0 N=a(EfsLspGtMJROFUBw{KVEsɔqSKQGG=K(|YMQ q_M"wB.í`zła+@$iKq& Sn HҜc?lG:1;kȏˁLܚc28u;GWC 1>K(ظelU Wi {}--:kqlWьaEfWRCkZ4yߤ/pp9v R:IS.L.,/RէGU~<ӕa׆Zm+J` βK&)XאWQ뛕wɬ}p!Qrke*=#TmA'Ln3(gQ 3`2-x3JfJe4D&%⃖>rԫ龆S-M3䪻iCgc#r/oO3 QB0Mu}{A GC8Ֆ5+?"_$_UU1Prï H[ٱ%2,E ށTR8tFQ#6f*mqlٽ"tEQ(C7Pt]L,eCQ.VsTrYru^k Xc|77ۇ<9>ۺyCߑ75L=yk)Q+P@m$`NRKma/+hkT :xL+J|i-tSK9u+iqFǙ@ ]fu]gZHVIz /L"?v CJױβ؉:hnٳ瓺2,2|!JWV⻥IТ9[gʌ%ӖJ l#Z "_WmV:ǥԟu(Jȓ'O&/HZ6*%3 +ڶ r }LrD9-7̛~f[lpi#Ϟ>7@ <@{A5_[#tzЌ똭h=4񗕘s"B.0g52ϽC1r;>jƵȣ^';bgD=Q!;8~$ȮKK_oh )dg nglD4_bQžХGI}KG͸)kO7RL!T*h`\`$9YC:aW/!hx9гdWb*5:Rxrl9NT\H1B͌b%aIW9{0_]V]F1~?C(یlRix{j/qYXB,'x7GuoҎ/C ͯ٫ ռ{bo= \'LCH#iO߿< N)HPK6sc<4 NАN_ǮV1i)%h]Nω 4ZMAT maQ3뜴 D%V֞.4'yfU\?]BqɍCHkBP5Hwul q :i^4TB3E Q UcEf;gI10ࢧeJLjq550:Яsᰔ=|*mw3y2o&xxT4so=+"K:#`|*H$VYH&EPCU)*?3ydbkoimY{+Au1TQeW-\<8:ڣy kw$I!&+)vNx ǽJK|&(dktᐍ?,p%5?m!'i&oTRXX{xMu O?e*܈{_=~zBn:x7y X6fiLt7$a86ůp#]XQ{>U/*.it!SpTE+r~sh=Kkl-O! aWxZTO8-liRg/ë9G# pbRE5S Sʬ$%q\q˞^W sCĮ-Zn^N8wv=s>$֮rESK5n@#w7&&-WkfW"mq_Yfóf+Y08|m`wH%H~ 0Tfpeo噀!i:{%"8r<na %"$_7["*$+ 9`~(@ma:+d#W-rKeF!$NMhbFqE,r_a)$Bh]Sq?AD#qHx.zi޺9I51և#?"[.1Džkgޥxy=Lb=ƒ ZZr 0{23w ŗ{fw@}S0B_y 9Ov& )}^qrI JP}l`{lDCFj#Č8r<|eRvjnC4.Crs{p3K:36kwIBM]RhLZ7ujIء,ټ-|c&SmA[)s9Ф.\]O {dMJ+1]3x@=@Л*mb)c^?@E:t)2,[o0)e~t'nfFk'\7JU_/% UUI) pbmm q P̟uHnkS`Dej4{l1\z﷒pf a*zVrՍ3O`ɡn 85c{]O4 uQጀ/BeT Fdg!yDRy#ܳp _Quu좱TCTn7s PvAI+g1]+()!K2^yۯ=O %mM|B9[_멂񶕾 X|텣(~`\YC\yQ0){F%Ty/E.}L;_&OIJkkؤvA-輎q[ԗ@ R{v a'xřB~qE^W?N$̝&~Trʱ=q#mibN0a-sC*K*= U_1O5\&G"tO3OOM^Xl'[J/-3>r|~-Nb2,f6U`d}7")d,S/c/JyQ! Z J7, F[Ɵ64: dOmWGPvxA^<"?|wϓWN\~QdVY: ʫ]2Ń){yd:R2JR6}2}D*H\3sc6~lzdB$7*B7ӵ#U]]~e Ap :żj]_'ٰnG -[{ӹ- HJ&t732}i+D޶2xz "3>\_1@Y~xLkGm8T7^ X^H'M%LϬL!GW_G'TqN JA^¿Wi4Դ+) j5dDl^tHm-Ȝj#g'M.ugvCBWGț<4% X g{n_zEH/kqza獌`:3I{q3|ДydnѦw*G R3D2ch?=5l־.ɂ!sqecP_^dp☬Ze B~ܖt(T:\)ĥwSIULx~1/'O2D8"3K,WUH#XIgaGF^Hf^*0-i>wDݫbϬd~Bt~̟GA++@a뾵2H#^=Nun.PƋp=wP1Ț-uqNS"VG1˸7$SH3[]]ZM6F90uW|QmEavdlAӽx|ȸ7O$4jt}'bV‚&d:SV4ڠN|S2e9$SܣIT20\糤$&U"}~rZ܌q7γ`E'L.}i]!eHMo֥-aSPcUE"0QC.yo e(=0> ivG Z5/e%١%k'X,H hʻarqؘ߶MDu;SA> \ Q>~(v{vei(sQ 2,dQk_[ֽ/K`v*ֶ0ɠ:UyVNxtg^"V>lHOß{Oփ4 RsiOH! ^p:`tO63$厦oм7g]|HXK|^N&yW^U Th&  y˾Tx ~`r~4=N5rIx32k>52_@r8KJ Ϋ/, w--hm2yMmS\n²#Υ0~\MLz3%{ t:_-2+.^/djC9sςqq,"R[<ɛϨu]jC RY0]+ܗba#hÌVHgg~t}Z%K}m}=3GR&7dfdQ:Kst?Ul>q[{MmÉjR~GC9Kty?`CCP,P{t2~u;J5pS;eǭ1+<pplE7 HG@zXJ|/PBbJ+Vnyn*>e^x,hw9SC |%$*E'JMڬ  \0Xb r>{ +U5Cf@Ū. 6~v?^{J,r=l[O4dՎ]a(‹aKg]&IT$jtg"? eO@go +E @݆TFT/"-LŇ +\!^QA` ф hk#ی

    o/}} FTچDej:b_d Z\o@$:?  MB`SE[~zNVdT [uޞ-kO5̌PK-N13k12nuvola/128x128/apps/amor.pngUT 6mAPQux {Snz B"UF c% JTA)R(k9=* Q`A:DA 5d9?IvIf繯*3O2<PZI~}jW .'kEv *?b? o&?hǎ޿M׸~ (ڌ0<9X^81C."8FLaUeõt|"ctr}FMYzfkd(;n&%&PYlCב&i4;^/&BU.* R 8=t[C8A!Dz :F )M &zX8} Jzē<-({uu!e0*=~`RlHeecc' U)z|}GS V#t an~z*!v AF^{x$B~0(~"Y.ZjW8%'0 qbѫ]tvܔՕǪ{ꩩKwdIj*awT3S({֤~TW}Ů̦E_Wʯx_trOϞyߴ` Vș'!)]DBm-iӌ꿻JhGz%wQ`+yՕ  5<Sӭ{5`ctd?ˋ;l93j]%Lm6 8!Z5Vk3Q+k![4$mknJ:ZC\accyl4h}JPVnð]a˃"j%@d1 @:%37aܷCLta󄤇&9L6m0- z$̆$m(_W2݌4vʈ;bמ> %nM EG+7r:ԑ+~e/5.[gl [Ơ}(+=ӆј_-&Qh)@&ϐʝP=A{_enKVN"RPx Y}:!UbV^OKc5AZW-6s8;*\v(':<1ByhBYPʯq8BtmCu} 5p|0"띎WT/ӄ&V?},߀T2qbs!ۤuA."ʚEs⹍JrR Qtr"%Vd@xw r@NCڳkpH^  ٨PVIŎ)< VH:wR"tuo,("my .@`|W)d0a6G-׫JEĘUTr}R綾IDft|[OiRtbE(F\ɚ% ĭ g20l7|t.r|j1p@Qf&7.ҲcJXyyen3H"67SM.0P,H?,z\u}nAM mnhXƊ15E \--6s!ZMN]ధ*07668A%M.Xtn|b͎^A(ԗl\&>|XJ 97) ئnK6$Nݧ|jE pV]溪c#]#0g`;qd`t.-u*Vԫo`HX;["8GFw ̌>0?=,J0gB k;՚ ^14ӵ]pHrDi)LUjwv3onɟ@cPL |ࠓv$Dr޵&<8=j* ߽Kl/ LOg:="QAc(xş&p}[M[3rub_pb7Y zgYo%L2;TM*^`褤d{VA7ea-}`d|L>囀801!FGB9<٫('\,\Zب[WVG/[O&acjR!1L~!V|M#V |O\ٯFn*[&3|%!*3}X {oMT{fQ:\fkUMSCɖO+0v:xңw?M Aξ,C8քnNl~_>MۙE ; (j(S m`@\ MiѮTw{n e?p2CqÜ]XG(*D3W7كۤgm"zM®B{/礌ut`wjEV'xnq-ACv)V]e-v3"ac!c@7޵ƬeA36iӀ;T?OIGvQ#i5 IAI;4 C)z)w P0 k[=gd(^1?;.~ :rm'H|tԹvVpj<RKdfh\C6ٹbi{0dÇ-ARlj `=⊤TsFݝ/5ՍjI ќ<@3kR6IX L[p#[%@GۑyXeg{O5& eIENːJrj*FZvu3ҙʑfdd ~I0hHL+Gz/S=^o3j# bVEhUݢ%6|+n/cM2}B1߶ AsLVllCHDnW 7)1?qS{]!SKB?7Cѷ]["ऺSf~-M n.R)(({Єc \Q̮F׬át$; \3[mlme9//KW?kw6sRĜ=#/V3! P:35qfox8CzO ҭ (Sg@\UHXF!W? %Jl}%"_5EPqr'i-q5%EׯΧVk,+*RR"Z7 93x32 Vn%HR2bb\XixDkll CØ陁y?@C C/A]u4}lCtD޴2`P(4vUU}%PCy{ӕН)rZc0U);br3-qeOe+I4\ QI.Չa.[0)#7glFYY\Zai&=G,+o\,]xf ˨dVZrjւŊ +_ &0cSt5|F#,S; C`HvRNcb- 841 v-j43g(-&{solRrY2%iNm'] 밎 vE:N.KɝiT: vJ=|ה>ezrqmISd=wkj i)C]<c"h͛@#ߔ( (YӯE'4|^R{;%KD+&7mp9,G5+kMGzk@Frӽ-_5ë >9Ǿ iﮣ̴_%RD)&}<$8W`h/R5NsrQJ/Ty 6S䪞&{DR@UGm"_ޤއѸxOQ;܈n~H[?ʹW$ u3ӿb]kxgӹ zdQ }Ov䊉mщ onã0kAǽ|2.M$i)|!C.N=\I㽶SVFƌSImx!ɂk1-pDKn%P a⯐yt<^*`ESc4s?af/ vibÅ3FHM?|BiՖJq GˬPk~kVզՈg(Fdlyl&Q qI?IzNfCvM~Ur/|;V{Bq;D2F ZE)Ћ/3 e|&.3M_ Ԟ燪B}Ί"|e1unՀ@:ܱqBVvhe^a: Q&%db)z=Z۫s;(A]R )=_MCDDD19iT$hz3Y4<3k|RW|ҏRb0uYjYxpwyp'LYO!/u:I_YEB*BKd]'4)2s 8k?nRE6ߟ2:ƣJ09xs*D4C/Glo\3eu/xBѧإ7pv4E+sɦ*lsRUJwM VK-w픋e ^ e뺗rr^OҎ|rM,C\l^SN34.vw f:+,JM~ĝJqHoJ65x83FUxBF]^ظ65ͦ௰' ]~Э*"{3(e/?2l" ̞7ī? Y6O )^v#@"܏Cu9sgf ƣsU;'\*ϼD;s^_*nmen1}g'ye$K }ݎHԔ887;-Z/ɷ5z\PzA/<=R}7d'q32% ~#䍜| i  "¾1Ŭhw5tn~,ϊQ@cf//oz!\Rdڢ?K6?22ZWNu^8 (.>*g'EA.l:t2nF~d (5CW*ʅ4Hޜ":4K<p SyHJ=3l5n&\EFĿS,cf~~$zhW UڹM# M?-o0`|PRb) fΰZW&QzbX*i6UդT# iIc(!1nXF/Z焏Ubn;-J:RO|8NwOvE(>^#C'{4' VmQkiiS% b(nõtdyp%ݺ.*2Ꚉ;޲]Oh| x CBnn]ߺxV4ʹB̥* TaRfb! RP93 5v Th.ҩQG:>nKנ|{:(X6l}^t7!orl<J.ǕI/\0s]}{:]uFL?\Mt9՜MMJ78w?އɊ5ɝg8L <_zIQfpt?,d "Prc7=VS5shDA?p̅\Nӿx,/ZHǯ|P"*k1CU%CFko\4FbuSk{FF|{Ff˪_eSoG:`>ҥ՞b9ʣ.q(uGn65dN]|+",E~k+%Q.g5 \LA")@TҊ`{֣z$! ꢥz' ~c` z-E\5J"PPvmpF?o՘'TB(dbxyIj)k!Hsjj䪆䰎峲q_ *G2C HD_ AOD^.L=WlrnUMN4l@>ۮESJ,sIhQuAdm|ijz @Yw{mo".q-SYepJ&[" lYs1&ƙFĭ=]暤%8?4JUꋘq3g_!`\||rzzsC{"#@GrR¾!>ɈK:JNvzQ$ W 891WIRj| R^jԑ!…g8T5kݽ1o+~]-tuɚ(rDf%uŹf➍@@޺wq/Kbh;](DqqHG>\v<}u%c#MjmJNֵՇ9p2אjM(nZRo)dy&= 16n3shRgݬ`9csw?GU/3<^,)ohOk8? L|ՐBuⲀe񗢧}*(R"j:dRBXc! ڪ/!aE^bH㸺QvS eɄUC|7@Y(Gvyأ9w([Dm[.{PRꦎvj/W_馯o ./o[S91YdOykO"8rD\v@E|pZ,r-r-C_Vj!%w=bW-9!BfS[ҋYx[Bh%ff8߱)'wM6Q:nEC`V06a!O'E|54wDdo]d#+ӲFl2ƿ~(`}zCyc6mKOeh^5G<QOGi$5ҨY. 'pp6E>( &(mSyߏhBS*R/-(Rq{rH.kVpKtTY93Njэ (BIZ6nP'KdWubMM?8#6"#]V-@7=F3o546K3m5CC8# +rsp7X%cMOso~RϿ3JRK $25x#\kVo{*NPKF1*["nuvola/128x128/apps/applixware.pngUT MdAPQux XyXi~^xep'rA-'E*Ƭ!mq+4ͱeJ_-DͦF'3-k֡2%ˬ +s#}.x/<9}sD(, S_U%l>&܃ܟbk2a~̜|~OIL$^0n+~-['JLe1I.%%V)jIxꨴIfwHXf ~-%v_c qR 1V "͙vt2! n7ɳXa,ߨBkndzyqgP}\1QĊu9g 4<&0neFܽdad(N28-ujr}¸3gRG,9_*H@#^a9KE۬Owi (5DϊjB@Z VP{]<¦MiC{fsM8ṅP{rx5;nӽq^ "_Zm l=Fƚ\o`.޽}%WXޜa5kU dN - >'/fzǏ |:-1?VHQX1m?ƽU8?D.[VC8Fi2l$_b9\KP\zBIR@,AKZg[I:3M.Gd}}(/FZ ?["rR˼OǨ=?\*4~]޻;7wL5u]2"]i{F%z9G!u}*H D6`{P~ghNWԸHa$ 'ShMJ`H0mTcswRL50-Hdp`73ou os&F>{F>mi֤H]N0S} 3a}}}ݗ62{6uA?YUA(OmCڴݴknԃþ%r39PmCݟew>GumEUIge \a 'rD܋-+ZVϐG=烊;Zo7z#g!l +[c'Y Es.nLIC/sBV)_Iృл=ogl%lIA(`AQ`V8gn8 h&Jr Y5=?sľ/S<4,M{mVr䩡h\sYSgITwѺӅQBoCEC%)Ӗs_Q ⬦5&%_M@5EDp&;_>[qDq_+٧3mNpp=򽂇#╣ސYF 1M>:Twɀ7ZFE2EE-U-q2"ҍKY_Z9+c̲4S(⍅IzH2$>=Yua[Ğw`58@$p$+S⬓%0Ias1 }E`>;^'ilag_6 xYF`BR&VH<ի d2.Z̰͆دoZ^o;*X-iۗ.@5b;򞔯TnI5/qK}ڧNOQ0AUbE[ӝtbc_ΨN"n<[S LL:``DiRC'`5́mdDk޴=rVlL2 ii(,n@6Ԓ 6ĆRjĀ;f8Ɩ;%oZv Д5Qza}*,UDܣ5̲{\!y9s>?A_(ҝuY z6J,[Pցpy‚)t&Ϙz!k\UHx.R *GXefyN}jkq\dPO04̮yDHF})n2:MwvZnus!c$`ČZw)ZGu],!+{'[=6q3 1[m.Yh%c%@Og0(،vEv_f O:Fg5v*c*LXզdfVf{> cjWp-m~~nݠm%^քf,_4q2\YO4DC.ei | 3}$Iz5xEI`O$9dƄdˈQ]{+};>V`"&<8ܰ dW7"x uZx?Ia{rCYp&T mcN Ѯe,Ƃo91R2kq Fx\ڢvĨN Oܠ ڗqkvȍ]| >y.0(ȭ&\',*>]x]VB%gx.5_HzvQ8]Ͻ&^њh10! QC?,ά;\!T"F(|JwB# ;L/, &mGC S<ݎ=wXLF/HN12 އ [ z .@TĵiH:qm)UhF\AO (*e}҃Kaz d(M|zj~*?4#!$[S4^D1Ѕ\ƶSDuc[;$L!ZH<m<[wN]SԼM5"5%6jY1#&?0ZDր ,!n%c5D%UTCɇXD~)12䞎)"' o& 0Mcuۇk~Fc/ue7x u3FEAVԝ%ؾʤ~18xWX$+}ކV`cW2tfc.E5] M =tkLNv<}}6kމONTU l ĉ:˓KEѣ;L< cUaD%1n|cm0JaViN`'ȏ'V~!Fסuc*wƾqHIqO`& 쀥OJp܃AANHM"?|YhR ;lT2l,NmT `٧`$>mv[x,<̨gIw4wMfl|ؽ9E|9$sra>m(yz2iFj-tT7>yMXAm"3/P5FꧦXx8|u%YsHV\7r$/jy][g5?S3Eudgm>>\Wip tBӺ-(ֆW3t(>?j$=Ae횉Ox2.:[ӍaPDFa("za$Agmq' J,z;F$y/vs0MѤ7#˗LP3;X?957{^! ?PK4WG1b9:nuvola/128x128/apps/ark.pngUT eAPQux e{{э/swwGk'mNjf"!nذ۫T9U,6 `7 (Y.('Ȟ ߨ#2Yaghv[}¢~ I/_킽!又HI ix!=sz v)C9rne!3Ť9ڒB3uuᦕoej;7B0D\i@h[@5EƂ4v3{1yghX N;ŲA鶴 g[(yxr P0Gr 5<g` _ gH]r`NV z o%σ? (=tPT8rsnY56/2 ֨8n&@WqPǿ~%" MD&T.9l, j1k MA-54cV,)p`'$L{i7G-Eak(!Iar@<75lnpڊ4|߾jCO !NL e μP٪yd, דUw5|,W YUyem"uioo`3]/b<U20KpJ+OMK*Y+KZhN43g8y#ҼZ[Z8ƚH Z%/dJLmI*p=r䆸?3C\C/ > e c@pΠ=c`X|6߯ߥT?1CA A*6pt JQUT=k R)HŴN.yaśZ={ JBn >V SuA߭/4jqR5ZT 3I!,˜~'}yoq!n4l.. 7 `Ž r{Ow0]+"p\{'VO`tI_Ǚ¤ |r"5)W7b:"LhTY5bʌ /"n8Q?=%z)GP@YHM3M\Qrg=qϡ s!;[82( ?MAuUO=mG25^rY4OdQn pav,HV|!&`Z1Y!kJKb-NX!6C{/a]Ji!$;fd,n!%u-[<9\턞ڰbN"%+ RJ8.Vf apH~ʚ%t'n5E18+T%'ڢQ?7/MT|9IGw8ʉͧ~2OTʲ: hMb4 ѷܡufn%~ŵ Kxy Hnb, qtLBC-T &{*RRw"4 jR<|gkE)zW)bΊMs%4%p}eı}r@;b H1} Ǩʧ)uIB5*F4TR,LG}S>LF>X x 㜞@Vy*: ؆>rW ϛiTkRza!oL0t߱]>?f>o$5BԳڻF;eޒ0ŲB'ImS!!t)FFGVVؿ9^w<۬Ɯ`zzx#ޝGﶙo\ntIP;KFhߑ-&Wr۪*.Az8x Bߛn@D;%lmvjҬi{XdziCl #g'1 ] ^o֋0^WxOgͤiFv:K.Uo\ L=ډ0E2SmqqT̜Fw\Q8ƈ^+MI|)1,"T돓 x`r-k'j=7U9 .qolӋ1Յ=ۤ9KAamsA4GՖ̡m%H ^y$KPw&<`U$[hz%nS(V$=yy ԲoR:2l{7/6BmZa~*M*4c1Yj0#G 0r^&bbJgxC;#"*瑱[ChDso\ȭ"2艩K#7m'|гfy7ѝ Ou~wGݮ0 R^оiVGkt\ډ%gV5[cUKDmKœ8e|OP˘NZ^_hQ?GY>xaTŀO7axXp^+GEB,He ~yY[/yXҒSڼ1.fњߺMRQQ G>Uڑe:W)o3oP ҽok d]}q33OLHLev0 A47"IGTt׃d zؗ> \Hg|e1As.Z (Lܷ._WnsKdd%t_lUv, yh[0~ASM|pv}۠qߢh9̹'6z_=#vȡa:>ެI`L]-h9aHy7׎{y?J;˴Tqh@7If r|7Yqΰ.m90^*嶾o'w˰'anXF4ӊH3lC\u,ʾ myXa{䘕%o"?KH_[{PN_ hϲ'z0Ej+qU.+P3g a$/cuԛU n$X,D2˅-7Rx5+CրuJ6Ƴ %T0*iQ/Pi%4QwR `URu(AM+Rj[:#L_ ЗB{؛jCǃ aLR[eo_Hwml,ҕ #SKܷ9Hd7P4-A R(>fOFHaՇl0 î_M(gmo~vr "%GIqwڙLڞ?-f_pT3`eZEeV=z:?:xO/gb0a`89$}+M'L-ie ⪚.Biqǻm Owt1{K1#M+ @븛y#.:e߳o2Gl5}^;S)V7 k&u0Su$d"d̓*+YHzs39cTmP"״$}ՋBUfK*!*?&,I2?Nj{#LZF֙6Q<{{?VY].{ k#ƀ jrG_} &yE*6Q”w>FgFȐ ب.o~.O*>XZ]CU9E_f󈋈ˌ]a47N?>tu7S['M~ˇ?-%Jiɝ ^Z.< veb=q {g |%I&<^cUNE"o0RW(VB T7 ř(:jcA\Gb~("9nrL]ȠԓQ$T?La jQ~@ZEuaY%O<Ӊ9DtW)gHDO~C%|SX+!@ +*"Xє̪,lۣҰtOKGed%9\X]S/ Kٿf"!*vJiR l4Q(}%k;*"uCd.J߻ wh)`5:otQ'8I~=-- ݮ#=0nE7a6I¯ZЕyv+z;X~]8pZI@4 F`!9fnm(3=qb X2UO#4d\P̈u>\ޒEǚ}]ޚ{̡\Xȭ tS 26#`R#Hd?31^ 1Éwn6v$Z=C!YGvv8nœZ`@I Y 6 +N$t5Ey&(w,*ovWCgxT<\4GB&X0ھvM6#sT{P(XEȫe|9)Ԉy~DWA%; krɀZs'GߔsKn>C%Hw'Ȳ9dEJUs<51O$:N/!ߏ΍F;*=t[H2J5(CcAg W%Cs=k|BXp'-B;f:J{S :^uoZǞ; cC[n">+E6BFva!G91q;eg:Z+YuIо"@XS8 ә%y1H y$h٣,#HOZZ ǰ23~TL)0ƪo28,DYD_D@BQ$UNob} E8 <* 2]lę2CxQ:B4"sd25(@-D͇nWVam=Nn4;EGKo3d'c^RR M#4~lRd3tօ\tJdDmp QVe|SԂ)?*&bhgCљ1^ I_Q/B /dǏ;0mEs"0J/[Vt$)6Lcp >3݄oKO7@=uF}8D9c} w .8I.tOr_&*gƘdxU*۔-g=5Eg*->Cϭn/m{,-m Am:͇zF$egߧavyP)UP),a?MYa.3vĩ{ȴomḰ^WZo6qQQJ$HOmJS,/u-?L3Ld'!c 3"Q%?F!l;CHwTdDԌD G˹ ^8JTeK*60ԙaՓGw!smOho0*Fܸ»"븙ėȈ}p|]>R&̹5SzN{U7W,bv(MvkqdC=^Wy9y`PqfJX]T H==K>C.ks%JkP_ҥfOr骲e uHMXʻ@h'Fn)Fa{l!3֜Dlo 3n"[bɓ|Udu!Tڝ`O(+kՂM/p 'BVj̻'?c{ j/0X~<ϖL ۜMGysgqΩ@ ׶3WEQ^줰Uc/]e͓GqGB?=1Ioy9hAMs@]\V ȀCt LG=Mr6#9pͣ#i'[u{[-o5VY'rn[$x-@m9d)Bb]i0[lEVp!<]|ގ=CVKѻ:58Oع'XoAնpt bsR"n2;Uy[gytSmG2*U);B? ^ͥ/_v<[Z{+Gr;}Kd< NV7wgR; |ߘ>{~㿝lNLGHBWrDͮf{+Z^Ht'M-иM@gRThT3~~+*ҵWH$V#sVN + )DJpCNPa_I k#wƶv{[e4hsr_Yo0 u}||loE z;6~]3bWGc+oAt2MjF߼M80#:%Yꗇ< \&j'A->aάBaÁNA-ouR3'՜Z92},SR:3u'Ljo& #4Z+at׸]qΉ;'oItb {;1w  ꄻ5E %x[ mj Gg/p % Z5t餞a5ezW6m)Jw]*Jwpmրcϛ3_+" 0ʦ.v>xtӸH [%l co`tdȭa:*_v|jȯr=.`Oh FRwJJCiFLN7d]\`?q-kM4<MVwo b"5|ѩy77ė9Xs-#FH#"HNxU+h)'܁ 2Bn>B떎)m 3N%> M-n|ؓ ]=i?AڏG+ :H]1 ߶*.FA" K 4_,.w_P8ZZן.1wJp;ȽYՁ\kt`YM7ө=ũuo0*܌` K6Ѹ8?7kO)f=]6\OEN#b@7W#DHap Buf 83GFD!w!mX!X5qv] LhMD _=a/M{Q.zP>ܲgJ(8 UmLǐBLڴb*~V0U|2h)~ =ZQ1*+Xj0ku’j{3#"( cW7O&!+FBKnR=U k 73 yv1\k:)ʖLp[Xha*3;'<߁܃pDLgWGΰCh-W4LJ8A5WM<}Zw3(tR)xD;djU4-{{xK#)2` >y,Fu4.[ϻljhI:'@6@ Ft7ak{L~\bJo]}$޶9#/aPՖ !vꑃG^uvy_bRRGW 0%9*'dS4!SUɂV:7@vS^9RҺl?&P} d *T޳+mXj^t S__<݃>$K%>8J88qͳ|ƪ;dn.y_O-(: oaUG_J-ڦ0Yk eGr} /CKk>FFB$֡rfu+߸`m\Б_3G ;X;"A?j*t`Gz]9ѿgVE5\BجEh-<v[/zjmݸrcTJOʳ`qݴ^?$SK!t7 WrWKPugnڀhVo- x9ɧ$d [+JlA]<*ATA\fe{ lZngN݁,+ pZOέdʠ=Qκ/iN"wۚ욟>IChJhbb-/B6M]Jlړ_ ɂ&i bm6VB'g KI(bEQgvRW"s?bǓ95N3>8K~=b8?ݗ,!ޭ3½ {2!HlxȾA|9Pey 3K|d5u3NSa;lnx0Q(h-ꭴʡ+~AUO,} I[ ;H2(<ʗvriU3Hyx&Y[_li.d!2!'vb{7ap1vvb0_x '>i~7ŲG&(I[J{R:C4jf+P3_qT[bJ!7T⊮|πtt~AzdJg7F;&Ƅ;g5w }3 95.XNZǙ ՟iT u{tK.]qlܨexEٵ*ֺ:p\7`[m6 ;i)m$F?~Fg<^3I71`o;Iy:CGHWqt4wx.w!֖ҿTZaϥ?KiFHZb7\{QjEeہ>tP݆z-ϊpJ?EG%vӸ!sK_ֹ#Ă6b؉QQQɑ* eʗ\ch`AOM\m1clW>_T3/=ʃl.UpAwZZ,~b%aIތ?|FÑIZĕM;wJΎt`eEȪ?:-Ь-IB.J%snߘq,djA~+6YYX֪'d#(l`P]nNzh2_ 0I!ؾ^FVXJ#p`O%Ц/@:jhf"A5TxЫ$6|X  q&PS{ ֺ/ZN*7Y2;{xO nԅx&2W֥PcosP_[}j`xrkmu햰Ε֪!|xqm3%GeBtm=B{'W^#-|؈kk)vG劌 )uvQx\önB\1y3 3>1(C C_@Yz8*KnՆs@NiQQ2R b3m8R?JY Bьm$d+akv¯>qU [~'YpͿb1ftc[~Q-Iq&xA>UL0778$UPƨHm/ E{bfb@EZ#6n˂զB׶_xoڑ>,sl_'Iϵdކ8|qBA~s濯2tF,~\5Uv<pCgoy}ffLf/{]cz:N8gE[̻ySQO2.vZXN-~MQ}ݝ}T7,ͩEu} = ֟՚Pfjz8ɫ?Ls7AʖM ![ YXHw/žX%wB8 ^iƇaǮ]E#xOӊfSOT^xQž;~dVs_nnnڔ\0>66.ryޞ,w0sHNޫ?k c!R">85Y{iڭe([K}˔if_YR9 Ntꊱێ(O[<7և)>LNX[5RvӋ؎O!;Ecú/ ,龲%R|ہ]W'C2b%7,{~LYhk6KC)g6+WfcYWJhu=_-3﷦Ik:whaTN.a(qHRGK@kn'vPK1WG1@*3{4nuvola/128x128/apps/arts.pngUT eAPQux E{XRoppʁ#e,qԲaeSʦ4,T65=j9Gee ?}纀 .xs羟yܐ@A~+T_OoZZPw/DW,;R gҟƤtpGLȟ:eMIqehp Ԫ =Y,w>qx{ЧƎT˼6dfk<fCƤZ~|5B9祑Ylz;MpDSp,t"Rx ev~e!wB_HK*582yqXe7]PcqА`N?; V9o#]/nM6(Icּ40 aVcKTV`\nh'ye#5RJu8~Ũi4wHf!pʾex[=$,zQ9mމIKttjqeRU9!y*Un"Ϲ\@ۧC}԰;( ?], oγ55.6tm#)Ai{{Ԫ xˀjخeo&iMuލpJheys'6{XGfx-8 C> ȃ$^:ML) ㉓|nf 9鞉 wĂ$'Mʆ֭ӂX'h66pVub.=,!kKWeu?øn(^Xj@y̧F^Sj#8xbܪPI=W2 7ϞAZU<5@'bi7\҂E$Az5]:X+~ֿh鼇u/8gKHv1$TG:s^D i2/Z1u(\6G>Ԡ`dAmW0HߕlhI w%ĨWa{ fظMA\M%hÑ~o!a J={yyt#deђVnhJԹb{( :[0wӲQj:goFl 3bKoi1zJƕ@uabu_v?{k\fEZnG:P_IZFHWLYjhҭ9.#o5ʙc6nMMht5(ˆf7wfh!;t=.@7$߬.ЭCK D'47o1;64>j<ג$=L8cQ rvJG9a)?qyOќs7FRrq6 9۝Kg6S#]j=x;;n2Z&(a3G08s ok3l`P꫉悲%#}2uBb޾::QBCEkmnOft=k)3ǽ6)a`Y4`.DçLX 6rb( ]  !I}5c ݚ/{O:dR͊"/"LE<͹: (45Gl@8 u -C ߢrl7 ռ)%0.ٓz?(cJ$Wu##b9z~n5#Żrf3GFL=Cgu pfjWkLѦ:$gLۗNJBG c%?cl0a8wX5J8N̎ю]%6mR RYlYȹ)șzٙQSۏ3԰|pԹQ eG$|EL H?(F@l8YPϱ )oߣ12@mB4>ۅgR2y[JM蝚~( `G^ 0]D"\xa=t2܄)!x{WY7kiS䁘VɗYdz Q<Tw t%3\*>hPk!C 9CΔh:6)-C2əQ*2)DSُHwXY rH~ՈKnJC4< LIoڔ$E=A%] {U)LX>(u 7+&MYZټmc:O.}[%-_c ߦ|*J{9T.jW|%s]FLPe@r/ϜJ3X1=UJ)a+fEZ*b<c.).Sm@Z^"p߲qՊ(avsAop1UmlVc}Nj5$ާxϪ'߰=TA{gxiWV \^AsVM_m|L"$E##pG(]Q`%J-CbNVˋ"32)Ԗ8 yt N2| ݂kLXOv,!y"&]zI/|J:Nބr]Q{‹!!ђ!]qN~2T j{߿( gYoNԞNw Gl_R?f)+T`դiHȮWqO#(MpSd0,2>YJ9bve/oEzB7oכTuy 3](Śpsc=འ uUT&?UH8c`#F1:o,%x=?,U&O3JRl7Uv}dafUuɤp IMay Iirx)4'tʕ1X`=BX9ўw&m =GDroaCMؾ u̡o&r c}|P5KB|Gظ|8Sb1G^l L;:6hC=_aE SM+z sN^怈 poɖL>(CEi!.(5I GeYԞݔZsO1 oi![RCh1ȓF[P 0`aod-||\=.`NW>g6WSC])vug7rCNΰؽ<;#n.J2 =[XD#<\^r?MαnKX_o\rzUa~Vv<Jhmn-Nrq`'tśr oF̄#0sdĭ滍 YS҆6o~BxvPwIty3 aFK;N֭ !oGʘ5*8rwPR-uMC)"t#Qy PD>_ߪC/t+{r,w`@)0tNqsЄ8t)ƒA pKLLH%sܬ>]F\$ۢǹ-m(E܂[]!:}7W>'}t=|!_,WXT )ԔĦ"Jԍ RO"sQussu)\)y|hUvb})sbhMDKހw[{ԂƔ ^E`ArfxqKr ]]j6x;, 6?M5gzko^zأ`c۲X4 > % $o}8SQ@'p˜Xbs!Kլ.(|:]L$؈g}4<ذjt;mDMAsH 薝/] 亰E'ɉ)$Eg^m K}%g);~Jtw 'U=c>_RǚCy* MfS3(McB{.,|4%V]yJ:DelGCz&{\mʤ]0Ětd&.e귇n80@;F~7JH&/{ILxr_.U^Cs?i4M---+0vc&ȩv+Zmgtjjz}:4 M7F[pUqU'Ko<ѯfrb|JÞ1xʻSc:=,LR/47ON@Fx1|V4- ϾȺ(XR+>F)Kv`iؒYZgnTu٠.8j *ф:[rZ(s%sϒ ípSdj:m[t!`\ZQٯ:=u^z+Qw_bg֣_6 (:}.F,$}vHټ7vΛ1PN!' fQBJdb̪gHXEu̗Zį{̟:/Sr]7h dޙx!܂ ԤnAdWgщߩs0 OK. kUbd0'9㍾rkMx÷\f( ][R`>b&>W8v~6< ڇd:vNN$)#4g/l-_WqCNp*)쐹:5NN5zn }W7-Yo߀jqKsk7-X:he'0L·FDO-{8\@T0 $Gh! ]v@*8l\)lX@@l9W>#06#G_3zQjwM($ ))Soa"Lb>^GxvV-. DLuFiV :RwؔT: "p~HCFՁEt"4DdJ崹R s/6LN?W*_,ֶ)C fn(nFVMqltD֗2ه:əINa':};u}Y1VᕯEn|&aī=[G`msʣR)keHG]R9#Q:qu}*Y[&;A&Qnq~$ hC+[JhIe\w624+kQpfz{jm4~Leh'!⺴E[| vm 18<6E:LK()A4!q(}m"p97]A7G;eEÛ\gv(xv)&[J .>Xq 蝌jm,QgtEaQoE@2ZAhnҧo(\Cק0ûIoc8G sdSZZ\DlJZ$Fk凜̷Q{[PzVnȡ#m;ފZbcU?˽'׶-led Q q\Q8-;?[=N:A*j-XNuʵuν:%q Hv4E%$ȘL#LsAy! ܢT+Wp͒8{d9B*O7nϹ%NA['y<6ǥݠQBU&Q")~.ZGOܞh;y};. (?MFJs~|˾Iea4"l z)uL{¸lú_J_H JRIV/8pa8"{&i3=AD6 @]!}㜮I䌣FxեK@,Qϊ@@.Ԁ׸XO68,8z+J9/)wCnïf<An=@UdO'F%z $񖈀tqSѲqOc zh'R|¢忍J v1)j_H!6o5#m5FSaMuY=vZjiUJ 5#%XQl:r51 <Ѽ$; w-j Aָ%^.? "5tlx9bRfj>LLc#82ֳj ~żEbS=p=M{p4ܕZZ񖺩nPoR"uu]$[j`#UR'hM k ,o$-uG$ {uH*'JcGI>>ƚMhu}㹦G⛘P{~j%?};/Ǿ]QkPMrQT",iK[4 ggd)Tqΐu@D<b5{tzYR@ѷsχQ)C | B{&qĄZF+e5XDLc짨p bF^_ #ĚBqՄsQFIϻL~dYٵ!F[URadVcYB%rdGٙQۿljs V[ C_KH\w 0Ts6TiEtps 6e%X/9QɨTL^A 2'4S$o!\~ḧsAG'AG7< mK” z\j<~PPU6LOR85ubQsf=3&֒z_qV-co,N0GMR_57"I$ȽtoizMJ9 T^8b$L0!pjw>Vf+f Zʍ#hgTbGr˳==Q]~WE$.$KOX"o]FlCA-6%֦83k6q<' ;X|iH)l:M,Ƅ16vTqT8~pjJl@Z#F.!]%a;sB kd۳vC{xƯeBnj:jMnh裤e,qgu$Os$H~Z[4Ŵ9RT6DEGdt#Z/ڊ,*,r=x@Nw[,K=:$ID ݖ|F+ 'Y"(#-.BM`\%'7֍-[y613=a6hlJ)_-+?%#gnqq[42o5A j?r#x oOt!km9O+rs%2vG/P%C}»5go,ч. eP2I+h WQ_w 0_jWȼȫtN2~-o!v7ɠcd62K^Vg1n^n/ Y ~vyKk"k*Uci].77Zcg+ki$YX*^^(QK9oeܓ"#3og/Eug*8ma&#;4h5iSBSNxS 4uHљ d={lI+>1IeJ%9GTHXÂ鐾rR%x;  Y2dMVݨ󫤿{Wg>) Bxb TBlvE~#N Ӄe~1C1y^b^š(+rJB޵}p5_}+E-PBo'[3\ȕ;%|2 Ti9Hlz2R{jz%*0I$&2npGSSB`^?*.xt ^jsx} n <%FzwgrvW :9f0)sf*/VU&+Q1=oSy0z{axOɓdp0wr궡gQW~}_0>הn\imA{Wzzf s~BW<ϕ_sߺ 3/WVz ?Q>ңȟ5{HrlŽ ҪB˲E]e'4γ+߇&jN_ω|Lrs(֖Ao&^ۙxi1qwӁӟڰf20+[G ;EQus%7Z8N" p6qkW7A`~\< YT= gֈ<&] 6ݜ:[+nm70l'G˥3+ RXzڴxG?A\3"pOD>QA׶ַ: nw՜auו#8d2{"8%[~w0 5];xZ~^ 8'w~&T~}8PK-WG1-"OP#nuvola/128x128/apps/artsbuilder.pngUT eAPQux -\ y'uUU7xm_<3=Q'd$e3JJ.~ǝZxjGLĩ%,&$hpdళ߇^BdDXa+#ϛE C0=۰.6@y7nGJg\,gunв)m< U2L,B$gc,R*G NNFK T[I+T Iڔע Sŝ>"Ύm\ޢ0[ B# u挦UH](cE!DDGjfMsf75@=IwCBuUYUQRFьw@1wy3/Q\$Sդeՙ%>lj2y5p.ghuqd@!-  x?rBŪT3>=݃/=H*MTe<*6kT5zfVd}H`ӥ"!B*pT]f:(UԀT O "1XcBIJS>0pkr58uw/U:YX#d lY<88$줜ś G{SY  cj/kvN;fMoE,7 N ZX)i7"סo( ɬnx]ܾ^;XyNqyjmP͎>Njm-  #]2eO+_g|Z6Bt< wɡ,|؁w.͑?jO#"E/r3[ƛ䐤`DZ7¼qb`D@$mg3/0l>$;= YK4m K7le+kKKeޒ@éޛװv˰~Μ;jLxhDaJD.g5U0=Q4hpuhW9<[I\խş`R#¢%68H#!?g'?M x?EzP/ʡ.43,T:(]31 WhcZ>֮ &/_a1T6nѷwWxc.)oXV1{e68mtH :W8"Rwu6:Jj&oOk)۷Q㴮]xX1ڧO1w" s6ġqBgOAV VA;܁Hy:l (B$%UWg/5)gOUYj u85YaxO|)qG8{ ;} >C1]^d܇5Q,<4?am̸ЇQtX ?A3E:8YB6hb~V&onf} 펔87f2U1ؿ0&o2) )iL:_ziy jq 'I^jj^ ̒ZQGPnķT^ Cyϛs vih8~>̍2\6K2}8,ga ]\ژ5 V0ÌM )MH/zT/F 䙶eX)mlo+vZcӞkK[aIU44^륭c^ʽ4@5MKV }juW {FZ8*oL#'=] WK8K0k`@SG Nn;8K1dh65 z1[mR W+&t2:=[i3=U 3aAY꧓] XTX@FSEa ԁz4Zզ̰KGV?t,v n#R1F64lޠv|ZԐoyMѱHGz:2kqfڿ &ʐ7큃>{$~n٫u,6] `a0ómRpzˇ75 + p 4Q^b:ugizC?n1R~5U92%JJ%F;TӃK5g,L$'V b 2޷XahhBT8dosqYn"̰ksW,kB N‡ "5d<LʶC\hC]jMKs }7۶V&E݆BlPᛴ1IF$C,jvA@;,H|>D lSEv-/! U!M3u?_ğ"+ރޞ 6C6PY-xNT~Դlj`> Yl,S şUչoQz#"5D^ J~wdR)B+]PX7)[p &kfݣ;P'_FxxyKCvL 巣'(f_MF˔j\6 p AA]whx15VZJPC0.}!ضD$Dhe!QfҪh[;}M݉J(CR3~]>'O}^ȱ-S3}T! &n?zÃQz-]FBmN%u7 J`ø|YGṫAġHji|a6&+2^(J e)׺pBn`,^h,a$ְzh3Sc;Q"f> r%J&ߐ RB|gA_~ Vdİ.}`k`4:@ |$m I?s'bc<43jIDbuj`vA}-œu-U51ho0zw˜3Mj&}ʧ>x{ OQr\})#"(ir|[& Z * #4{miR4Ν@/VC񓮐!@ZuZj:j}.Aj}XF&GG8Oq1k@!4has ]ƀv\LCǛwZܝOm.WI*B |o&ӳ%l^&eۈ9TZAd[ew:$PsH=ZW((.z&P } D%]xXwk4ĎwC(..pgXLXpVy6S[d?3]W S:xW0H=,az?Tʞ?~\1CcN=W0mm_` vl>2F`Pn+Qo ^ņDŽ B_;Ш?[vȁ~,ĕ;\TN4֐u JSxb/C +_hQkco9 ?OQVsLIJZk43#nͅvgdXބ· s%[oEF-4GiԡCnqhykW!0<+G$J( upÇ9BFui.%i.vԔmDP yw|2S^Z>sD/OBC9몱zMScybvV>'ݝY|່xu`\V9ZzxZ Utլ hVbrt4CmFa_Bv}O 7eidT#U#~ Nz巽=n+O`0Lզ5ZnAN,il/ӳw!UYr" LK3ùT_ծIDxGcI'.]J{kɺ*~ r/+]/$e9G$J%b Bψa{s"O0PG7_"74H"_irjw9?`䚨|b3T;uUoDaY n8rvQ|փ=3.xg{ú܁n`D3{9Qyxt߻#{QP [uQr] gxEĦ/JNyiT !zSzJYk?r} p`UnR'B+g\=>h!52,anBe;]-*}t5Է[D8b]bzLoϺruHYR#b)_/]o`TE|̽S̩H$aͷ.45 &)ٳjyZ4t^^ |X@B[C!Oj3nnʈqC0a5˿><@t?c[sI0]zD>zf";1666X|=4]o\ջk&*i@'vI]Z6{qcݜt@I]!{᳟*c胙fI<%n3-k?_oDʇf=Ԡ6pnHhϣ beG_u,:w?V럷*o;pt஧}aN(%W&7wvcVaU8ڇШg @%X_i#VkIT 6WD_,RnHJd] 3y/VkAWm ȹ{1ܞ3B.LgI=A '!:*jQ7K?=4q+F[gCwAH*{B\T^vނfz:vԒn<7ѤSѻ[AiIdwaeqR8&ejxe&,ASVVI[έɓR$!y-^J,>7? CŬQα%좽5mWV t9Rw6}}K % BWckzҶPMM9 w+g 'E^1ϗ,~Y"lQ&?!K'ocӳnMFS^4lC^-,? ˁ? Ήn~p~ O9jC͓'ɦK+~w7˴B4\ ³t#?68_jozWo<_%woCĢ"+IYs?mM&7#Þ/i`XyyHV^=[~6?$KO`ԋ\R( fAt[|=ytv*i _c s 0+WAY9P[Bfl|X czMmm!7΁jX,f{X<{0N:Ќ/:a*w w{҈S†\݄ZJHb\rBۆ¹t]Hzm}Ռ\HvOiws3l#m, s|:&)˹ tu@$'Y$nj,KhAݵkcWY:uW$]H뼶 ;ѿ޼ vךHKУQ;iiӇ;9$.4Q*}h&kVV EG鞞Cw_?3U6fD3 8!nTb!#ZM g!simӰJs$ΦNr"W1a/ T@L_1/jpL[>9(iߡ0=z+2]a 8Oxr:&Р#\E>Gd#=pfS~\Pm?Qcx.sV} p_~VP0  Wv*1Qʯacn~ZDz'(Cӿ˿tPikc?N/9o|">:U%KLz9WVY[J_O0Fz(c^{bD{m_NE) X9 t+ii(LeW0SkXTTcN>ރUUKqBicъìI`pk~2TisGɸ}C0ߤ pFzFFNbie ^8_MhL(o%|{? ݍ\ ;-L1j )FJK? Jxd"hm ~zp7;H>ט:mju}X4+V{K:.֘XCװJJV "L؅Kt.c &hD@=dFT^/mxj@M###gL=9Q=F$>eb~դaڝ~Y82l,·BnHA'׮^JtZjf-&t.2~9܋7 )9ʶ "GtD]ʂ5b? ~JjPK| % =vNع[`R'>lwfYZ42 rRTy2ey|yJ ز^goaYPϚ-̷ڀ C|XAKp?AX&E? 3@}%#Vu[.ڤj4=ϳ0)*)܄eL2z.4D_x&Ag똃,1?}-gq$1Tҷ5]B!tLCf)ngy*TEA-zI$D=ZK`,]*ʱ}%_X7YƷS}ˀܒM,e59(me)@>Udmaae5Tn bHxRR(֫bLUѠr%d}lI bw/7#%<?J1 6[4|L(+>Sx7S{5T2-"U^oN/`Q!:4:.Iu:공ٝ!:P6r)Twz ; Gg)Yׯbegpzsj̏J>"T73twbj(O.lE3)`d3?h ^w}c SSz~Y.dn#]cR:Pm o+uـ&kmh1!1>9.8ɆN4`ŽDmVJ\S󄙄Vh7:il”.umu$Av.L}~) ko}-6A>(>c \N?.'#o L;[dn iN[Vm 6|jE@ d6!’l3{ҋ{RYт0 Fd^ձJP8ѕW ).'c+f:(Lˎ;!Ã"[EY6Dgb@28}R16ݧ,jN e&GQ!N;}\:T Ym) r#s]fz7h]Yc}CW[ÒSSjmZe4kf!uGS IFT!7}2T[;̞n[T]{/n)mV< ;'`kذfCfao.(ƺD]E/6H^-V!5wqo+BYM\G-_ BGu.@\H+]xwUUhxj|[?>6<A"y-aAiYd:t|em7 3|lptV :\NˤZ*lڔd| hG9l̓y^;[6&YLV7`q+WN}v?O2mkiF ı58Zr"^&Ts5=ɗVD'%#o/|y,1A1woϴmc;ǟwTLܝ{ zteO$7_Ea nB Gu"!kPM1F֡<#[m5-hjaz,ILq`5]Io-NPL֪szQ!YCijHZ7amf%B2NszTׅHvhÌCsQ-`0'5d($߸`M j}|(>A"(-[Z/9I1+XuD>eh$amUٽNQN/ā#o_|a늑9lN^ __qX*"̛s ɒ|zMYފZ\ʄ-Upݴك6[PHYN۸'Q ^32J# :*.0_~c7cijJvP(yj Ppţ nq7'wBՒOlz9"mueL8!܀RxTVPRe6IE?Fpg XC/W ,%>ʔ<u{Qo0PtR[d.*55CTԀC]9ZK@7x"dAx-V28\(CzwQ]eC7.^([7ܪk"hVqs$#Tr mr]fev _|5l(ExQQCF L1U_+ of,$4ODz ٹPvLRU4DZUYf_߱sw$PN\HdnxWYOwH馤.0 gqo ЬHd%*ax!ZɎۊwpG[wu'Ã?mtfFJWvx*GܯF?|/ebޢ M@^sJ$6o5[+v)Q,Q/pSJz aVrPÊ3v\x@^I )q2H.k(0dHs ǩ{[$O WN$ ;?x]MP}4 eXՑ\z"dpХSɝ/<%u{^jD\wK<M-(h>F0,K!cR|rN% !-Jq"ewxH6qX"u'I5*BAnj^1ٵΎ$N*еT]MJ~16*~ T}K3e,&Hy/souठnB%2Iw|li}/}VT@d۞#*LS)CU{5>6\UvlݑHď?!6/jeA^["ؓEG-cЋ6':8,٪;Z/zη5/m6JJQw)lo ?[AcZW4mgIZii%!NP/xT&[P{$&_<̬n/&_ZΦ[ u[Ltebl\eK9zCؼ`1(f # |KӁҳ}%#>F|YPC}8 OXһ<Kt'+gQ˴Gl?>$)(^>-i?؋ 9|jZTHrpЮNj ynUDn-7 G6 @Ftp:?[zB_Cy!AU4alzíE޸JBѢѻ,oyj He f)h 2t_顑MT+P>ʁhk`MrQD#9f2s.5/!b=ETah-sԲ_%󔗩bt\#[N@85,M٫|h2CvpރWCeSO\?㎪= nQ;ݐv/{I]ىn5`,^:vI7b3O9 -oھ~:a_{]<ggAfDM(˼_nuM<86On[]rZl#N IG-Y"Y{P!`gDO%2U6 OaGZAyw)[D Bö*(Ic3vA|E𺾞glE׷^:DgQ40)@В5r.ў{gfm GC< wv)d'jIYQ y{f-sgt>XδQAud*R^MM4x,̣p3ƨ-jt^uʨfKSk8Ӧ7 f$3qD}YZb/Uۨt6V)4ZQ;tz1LfK.)֏n,ڬ\ɱ~:Ikq~BY#QhU hFmJ\8#Ffٳ# kI]u!ok'zȔj}N9C<4Cl@~JBZH$;ڭLr+W):Kǂ9B_Ǥ`jenBJXɩZJt̵Sy_5*n(4QCշLuKZ9W,4§ϥ~k[¶I -,J#Ip881\J ^T~ *ϩ5N8721-za5r^sqW .Mݟ1 5/GY( xg71egef/iebDt-AFm pyd% S:3SCdHKr@sſok362?uvƼ7W 5e`}B.}dt[\G9> vLfՀ.i ^=8;Ŵ'ps]}I]_P$bTeZ $ Vul$oaJ~ܴ^+Rv%':KTLtb!N(,a+?Wuꒁ,$Gғ,]kd5q{!lBx]@l1%GՀ Q18Gt#^/hҙ (SKڶة"4B),mI):שFtR`9x~- bkiҡ H` JYjI_" [ 7 z9%xeԬBGȬmfwn9M[q3BsJQ(m-aY" A`z|2Ie T%zm uZ^Q5)J=^>E4hӇa-({]Z3&M]~Gm.ZTmP.&qFQ]̓΢?Cb*v-Ԋգ$wO~i/ksqm%B3'l N?b6yRrE|D!9wO!lgNGhn{:1Yjz Ǥ2{C9x@7@PhPvѻ.P&ќ$AkCeur,FinIfI%%JZߺcG+^+m;"WAm6̓(o/SN8׺eP|sMKkdGl#Tj:)vkaшyMq$A>熅dS֭q?ifZhMb你7'E>QTR1UuVmb֑Gd@=- OV_mB%-HG7D`o?:eB͡9CgDĸ2EV5?A%XaG=Y3fvO!W;.@IeOؤw9/Jyhxx .1|gN*?ޥ|@nE*O8.U"b\cQiɲױD\9U^f] džB6wq }( j 98_Hl]]ٳ?ѾDZo~ߚTnH=lT戯 L6 !뛂x,\0L>fg?OQ`|yUpE(eڳ,]fO3Q`ytW 2Vh%݋P4㻰hZfH,UuZ'a/=QG }=;S㨿Gx ;eBrdE;},1]xxœVK_);8o;_ pap;qAV|I^'_cRִwؿ TY\b*kJ8 R՜"IbS%Q(/}iAHs.<|;rכw_Fa:O!T\!IqXZifKP0ըAXcԏ v\H֭8<`u"WxH+=iуڤ0ڠMY쪖qJtr@@4[Ӌ@6{OHLOvd]sm1Ň۔$)|kZ 3jc^ˇؿv:/@<vb1LG`H5ս`H|>!h=3={ ibʡ Yvʷ~۴\VaMqhCOzY쬩 1#yk.X0k~wV\’ˋWA:>QtF6,LRoFz%#sr}- sGZ1_䡡.n'Alm4A.EQC\[DG$0>7>E'a^Gh"=c8] L}:>fDۤWzf ]Lꭆ5#[yt@ݯzfb*N} *}%Ε|'؃<u+ف/29jM9 zpW؍fu)i/e2{{;E[ZyTV'ihtc鼴^{9('|LCf]1q+ervʘ*;<@Nt.]ny>H-l|YӮ#<G[& S,Mtћ^jDŰ!#SC6?I=pm\ ¢~^{Ҋ0vNhFxz0!2g޵;h0ߚ5јƄr_܍^YkiTpiSV [va~;&+1UDAzY#XF*lG{C]3#.o3ΨtRjtEZmtzDil$¢rI631z~lC ٞ%x[nG)פ?cxm8)➋] /:[7N#f3qB{ɀtaͽ ,5vaH@NH$;6g/Xnsx}MJZ÷uA+jpsû Vd/򬌫Hl OUVA:7\lȿ|hQby&I넨L=/DY©p1inSX^FK|C=I3Ŀ7h.*ƂdY;A|q ;5 Eg-0ɬpUĩo.߅ì5fyk~ g֤ Ҭ(/;م'4H{MߤftaʄENțWƺ ]?E. ڏisslgh- $%ci|M܌0agvX4zLb'w(PHC2߆SH鰦P0sicv:,^(|Q4xYv;ّgK>CaWa loxno%]4gav!EM}ϮCx܇˧uWTr-,f,6l-5PK)WG1u]?NGH#nuvola/128x128/apps/artscontrol.pngUT eAPQux = >#zOI?20Io(XJHRic^ W\D(Q_Y2SM3/ q^q(ak 5u]]9//$bRiԟx fKRxU%lced钬Ma+r"G|`;02k)hJn}!is0Pc6 FT }al/~?o!1[i > x u2;Բ̙v_ 2ewxx{UBlH-?ȯ/ ~8ʐA*b|SC3ka;_Nԍ,ݧ+*1 ,&֦sZCBe3H Hn?-m#ҚHޙHDh=8^KPOn[ʮ?Cώ5;lĮnx H)6C7[*}3۱'(56l/6{R?L"izՠhxZE>, Z)c5]sT+%}?WIarX/"7~sTt4 KT4셉ZTF3 6F%ggh~`Jb]]}o?΄ټ-.P]{PU3tG]$agRn!*x~W u)7[sEvS#4~ڇ |JuŪmby Fzȷl^4[qӗs_B!9&N;_\R6Ș%d̦6:Ւ%8\oo{~#IrlenX</;{v@7q1RVfVǏWS65{$C#SFy;\ q݂vBoM 6Qt9p{]C*ԛgXydWxԱ~B0@LM 5 ؜ +0As~7^[+ }w7;'ŷ,뙗1M"zt n j5v/X=g3/hkM(! [\!b'=Wb#S:ڃz !T)e\ yIQ ֆSEikYzܞ.Z#u^~|ˡ!|Al '967@$[N3CW\snтI_ѓ[•Nw7EZ`d*QhE6RDd3NDIzB=k 7a$?{:c_o΋,an_܃׺#?Oß 7ϲst$?~Pt8K-HL,mY~gY{L]w(|~"Z:K H([\x-`g5 M0"%ߣPEH ib9F! On2i|T>lݡQijsӍ2cbl໤gklK3e]u/3zײzt?JJ qVjF+ܸ.biq|g6L=P5~oTl&'v/ڡѲvFR" 8,A$;]*dixi]O@E;59 ;Kqvڲ~s~F}r FFv(UFX3/rPEt>oء(p  m@YXieOg-x{^P^c.G.-LyI\B PZSUZmFT*Pi|K; &7`mBKSvg[o\;߈gMK1aPf h̶C߀ Pz 踨m%_pi)512j +3> f_tt"d1]ş>htQv j$ud2wɈ]UC(nɧvfwhf,V@^k>wܑ%旲u;9Ma/|=1H޵*\zb0ųN-^1~~z<{(DZ#d\0ljP*4Xcb/jV+>.Ҳ\ =Q6fuiEd:YzA%L ظ)gPL{\t [8Z@Z,V؏_ 6" ^uz 3>";w*G/RO!b( t͝4ďn[ "bg=4b]61 0'K㬛4#"sWĞ]*R&e.J s-L%4 v\+cXJ}p~uЏ ,>[я9|yP *3WGĞ^:ۃŁv)y֭{c9f\ݾ5z:tlT^5%9iV&a/3>`_B;gf/JmQcȚ_*WoQta ͕xcD͑ gx6ܜxaGK$|۟\9=b`o SxM WRelmUTa R1X ,EGrό͈5C7բy3A@qm24**T8iN].hKR\ b5:pkee1V4?OLk'%"tZ6P{?etcd+7`EuG&2#e! 5ɶA; Vaa gp>GCZqhk$U<;BO PFu!^Zu|kibpѢ('urvnnFܫ[]Gȫ"DW%vPj_@0)`y:%rwM*?kdۤf z\ =c](jX5ĝ gMF.FRfb,h55;EC'{n*M.`^XZbٴ[/pbIoʴpPkC4H}F n's_j&,JTc3hunjc؋0lRc%]G-!'+-3;-t3gKXN?_QLc8)]|+`2 +TU.FHkËJ7p,&)/C>Ç(-mmSUW%QG9**[8O_{QKބ.-V86 8\La_fުFvGdW#Sg1)sڍ#5L[j/cLVsɄI)V2}{FFhOjĝ~ f[%$ωtPAWy$Xe!K# 9ျ`B9 ؟bۅ`39eན3q6y䛴7;=f$~itCxbrFþkG;M8I9:!iYe>^-@St-JiU/ѷݒrF~Ȭ8BVI*FB*7]b6q%8 y#з2ϵӾxL,>oI)y,BK w9Isᝏ[cFV\iCy6~)nQz:S$dl3ڿ5ZMѻ~2Eih\Fxu]2|)n/ /kQU{}m.~m+SCfSJa ߤcjՇE]b ra*²#9d*y2HKN@8ʊUZKތ}4fxr.>ppF'шGiQX{O*~c%(Q_C?g/2J>'Dy}Wc?R#||,z(ǥ˯.-Ckmw|r>}NÜbz5d u8v:@`ڡ[%nhl%;=ΰT`G<]d:ߎqt&ExQxY! ֭3U&&c`u$tu&Ý/O; wD;!fgtlGC _6>qڅ16PW30'~Һ ]Mf4\Iv J֒2'5#ˆ7?#ÎmTs%y|#bM[9(1ղ5K;ƟN]G^9>G :کSoD_Q7q_ 6cL Ũr+؂٬c j[A }N$6)'NsE3jQ0hf\2.![{!DC;Ġ8\{9 +buHoVsNq>O ހ'N`ptOOw:M5?̵qsP+ZVm2)r9$ fgQٴ?htan9U'UfGV=kcǮ;zpGD26f('u{滂>y/So1vbM-X^_K"qa?Z}v zT4N8x0pV T4P[[Z25VZw; hesŭ[_( ;ֲo Hhۀ(P U[CzmqN?Q·UwVl]Kkd=WDo2EBE@74p41.%Gd.⩑n%`% Bv/<Ǫ?Rt<ꏞhzPnc9B$ \sLjvF! ̡f a#WL6-sq;w_>!qIg'zeu+M] xk^\|ystG,y6WXYY/J6 .`=^n.#S5U `F9py^XߐQ$h?{Yv'~[s >=C{ΕfXPֱF%NK'kU[# K_:--n dX"?Ot\7\p2zLL 8*&QF䏏ZerMmHu*l]_wDivǎ˶xNjT.MIWT˯T>?K# sYKbh61Blz.0|~%la2_8 > 2?/!*0LUŋ%|3ڑɹ2/tRi%>ᯞ6)Ǘ:9'#1'wQ.p*1]b~:eby-51ڸPԐtjH@DN0R}zٖ |2u4pr*j{8ʉA "pӳ4} 6RL3ZӺjEuxB{ S(dj ;rM+Q<瑱Ck.cKH" tW_"} [Pȋ VY)DeG,d";cɁٝIZjk@2+ڝ@$';`F'[ tk.X,j=Up}Lc!Dr>.ᬊ:k 6|f+{q- 4M^M|nq_ϴcV Bg<]ԁ֝x}AO=yg8%=3>CZc1̻rG}GB^^[ylҹ'AF# UJh+/ԌTcp]>(J3Fg`Sz&[!64qk.`G٥wO񟀀e"{-uRo3IX{/.a:9?ޫq9C6_n7뀻 ȉcϜSbmL= P.׷~s12ֱ=dɨ"%_eU.2odYI$+zo}&5_88eLn)63d$v5|@8RW-A@$}yіXTO?!Ͷq}\@?f)]0{HOzLgrەap,@1B~L16kF\`=8'\{Y2Cq+⋉H:3p`n a=|='Ϫ{~>5:O9y9D"w *U;"3|W{-BBvDb"?o(AZ>S]vsKM}t>1cFձxL> Ly\RkWxf.[6×) sm]=!ݝ$%% :S~눮]jE%¬͓kT/:Ew4.TBP,/ ?Xrฟr粏K8҆ˎ(^3.0:%M_V wN<5zmE:@XvQɽ(~c귟s_o5Cʉ/X> E ImZ~ eҪfd*WgnLsxȽ1)$;׃5iGKq|Kbfy.gnVH}Zo3Η;\Pt)/bmV(86h{XlZ B345_m^;qD Ʊ߱[QZ ³.C+ҴcȐKZIc$j՞+0ur8&J[h;Ŕ0^m0KK1 51q)qvpx w-Y~~I2Rp4o zeFH˂PzFǍ1XGt5HJĶm2\ в\BZQC(B/+jN=S6oByha˿`dY•{Un0a #=RT6op+`a@>&j#QF_pJۺTPvw tʉD ! u1톂iD9M0GEI [ 03xn48w_T9t RS G{5+M*(w\JR\tɣJ>JANJ_V=!o2.Pbw4A͞AJߦ7T~~"JZbv@Մ.byJBف !J$E I9AL*/TهR/<8e݌ Nr{? fP}zr"A}>ttH&7渡[wYp ]Go `$k<wxPʼcyXۈS e1ȁq(Uvv⛨ 7]6tB3cfx\O7)Q 4o3qwϷ϶PН~VNby#X<§޺@Te\i+9pȥZAY"#"MfANL6 j_ZVz-h3YSg`n}(D~KZşo9 &Ƥ/:l+[/u rs`x;w3ubw2*ToSGiAVPTY`:ď8~tn,LRr|WEPz*>3yÅݡ*TZs//Ԧ޻˛?:rgMĹ},M02r eوgx.ؓ?+.Too_yM]LG`cF=[BV)uFoa¬2LWdc3Pv !j;4.JRx`Q:.vч9e~v` J5z~JWp޹2 ZD0TLy{$`)n!QoE@6nHD9cxvk4w5PZӔr5+,}&{[n|wpPcQ%l'eg0x0=K Q{ kc#WQqU6=g] ֟ K*ղt]k0W 67nܟdL&W5MnkԈnV~]xdv+i7عoy؀Y '_q4v%/ZÌ35+W|x8&k>A)S .̠X]w"TP9=&HQQTœC"(g93 $,"'}S JBZ c#xg#rR=bvW#&vu${.mNXX˻r.8@^6^-Jhxs0Ii.shI-k߱t/cZ&A_^PǙK NA#cAUjvrhGޅKJw Ud'BR;\dn)&Z+2*(1Z^F`M^bɊiT~ZcϣK1.?d1Bݥs;t>At bfZcQGq*ʐExK=*uXhthAqx*imn)k/f\ܐ)WYE%-&pz34{jiRMy9wjԴg|&%e37R`ɔ]!D;EGdk/ row0E|¨_d}YN{q6u9YVC.&P=}H#{p`Ui ~.)":etBG`wGYbї-L=<\+ vuoIbϖo$_E|'J4C|Y2w,lU$@;G LtE椁 S8ÜR穻UfP|O~}h1܀Oh>[1)8q1u=UJJwiPf?{5c QNug!zH&Y Xgttr@i~Uq \<O4& KGSٓ/QboG BiJ \t($vɕ/@gkuһc٨Tܵ_YHT,,}`nY ҧN >B0;N2TNt 靲߯@S91_#e&O5H%<(ltLf*Acm/ס*P6^)) JBż" Bl4qBA/CdLk} ;A9華X܃])y0/FW}Ē"h-!H.6O&ʎ싪-͘ <% !+Q l1yv'{yXػBYR f,T+6N,(Elya/ TvLv z}:g{B%Kp~H$9f7z8wVIF0FNt* hD ࢗh{-198P8GlKt7FX45]WeP*Ќ]D4f<.݊b}}Vdz/yFn9i@(MFUL]9qs#]=M),e!MlEo0ةD:ỿu_>Eؤ"70eOwX=xD`1!]q]3xsDf@؇^ydn 7xſ vJn=5%z7s>b@НG,ˢHsT:P-S)h{:+/%R 綱 mo Rt)ML&1b3D,8-yi:鍽.#+L]jC%tTvDY$8rj P [C\XGy^ߋW%G&N(]n6YPb~ZuE U-?I=7]cNdEWoRWSϾNЊ\ ^zqfno %y`C&.C3/H[ >:(7J[hͷWQ4Cmœ/NmH'ɚl̐{0@KymÊM>8{C)">Әp4>wjn.]1׳I<+3s|8uV9v%] pkSOS?*NUTt26h@Jr?LPqVMW 8X`+s"ѩlR]`/^g3xP3rf?v}<>b.>>,03.d9gJԃo]TLR\)}eYbg#, -Yt<hiQ/ɂAx(!00 fa0&4 a0ם@d>#or_ɖ|H)j[7#ۻkPC39M!oH9e"obNry_6- #3ic3Z>!K:UTU 9aNLFÇȰDdrڇ|Va.Ҩzk .Gxȉ9?OuBd?d0h,) L!@/βn!`|jeZϕAQ3QZq䪱2sN3ERC[`vi@å[̱컬\ V8h ] İcGf|4 u)Snbkק2yK%-3=J"#Y|jㆎ0So|63ʒx挶8m3L;6{}ITtZ>oq)mnPX 7444.*[S:iS!Zq~)..淵9Q-T|lb6RM7;V/Ip棓@]2P2;F eۭCSiV. :C\Uj]."24-ˌpW74p~D )4 -e4gZ0Ơϝ.EHC_J*y7%yM ͪmŃxCDAjF_d, 557UssM8u@ it=^{64j^+!>tE< pa+;~$$&&n7Q|6}=7AKk s,sRl}^_>_g|x@SW;{!~bMO*|egwYek1rJpObID'XeiJ6}%g V6+F/1#E[}2/ l#f,>DFw'Jd4ّUMOBIʹzZ,GCVT-̬`R|ByS|E۠c [U%GHլ2QQv}Fhf!g{#P4$J5όk @Xl@U{YgMgN(a Ŵ[*՜4 DY"ql˜Y7F]D.#,~]Wl5a41Íf/lFKSrAP7ͣhJ k' ښ uaqSC!ou=/3:E:J( wH&;Q-N"P%`ܣgJQ }b_Mia{N/LXiC<| z!X:T 65} sP>?#Ka*!7:Eo6Иhuu:uWXxH:E'-jxG6{iϹ\g;kV6ߞD Q [tT·/yF[e^E>F(lץN9(25SI/63N= ~7WABn@ڼ֢6ޖī/noGwj ݾEIi{јdݙ[b&pZJ ?UKW4=6d-hOCm rv.²ty:XHczs,Jt_nN=TVsNүor;Y-¨aj9猸crFbKW8K ""q G|MPjNr\T:۩1< & hK;9cMbl#8?)Qnv߭Fup+'h:PCV9~^R%V[c y9'.JG^ǯ}HUDf@6w~rPvIU J?6|{QtD܈Lmgѿso۞@xL$:.pA[>Ÿb;eCAu :$&Cdk?t~X pY@k A'1޲eW+L)33FZ^LzC=> s|ӂ 2GM~jZ, Fw#`PT;cvrJtEL WOOLT( oMncpi*IvdXH>_ќ/|%>B'.<#]U ±swx;'OKGOfYcA֢a0eKWcL2/Ԧ`@[|Do6` ћm t&;QA jve QVGSR[W_pH)OA4>0PNN?A Z'zsSQbbXGnχ8T }iI0Ce'J#lx!g$;2[]tDk+oG:'˒[\T῟g`AhLWE8y9Յ˧Ёn;lv#]>wu1h?j5,@wր]Ҹ(Lh]MWw*uAT2]H_OaTnǖZW-:Uu[8JlNrg7RA/4["{~Y+$!؟yRE,S% hlia#)"${YgtU!߫FkF|Xú3wªe@[9, q <5k%L>> rΕbԵSez^V]/ L7&gSdo5T`uQpD/f?Sʩ'^9}u,]E1?3NyuE^C-GYRۗBmO1wք?:=v`ۇ3vgT IY.u#~̿VPKe:1"T156'nuvola/128x128/apps/artsmidimanager.pngUT ΝVAPQux }(EfֽͧJ$R>1!|oy={u]TQQ@e|c[kk w2~ȏɇVr Ѓ3@X$u]^E:isk—0)ESNJ9Fp1iFz?р8e{Xo1Z6権h[TV,@d\VdVcc=AAbzR8mB {u}zʔMГyzXrۂ{%_@ܼE-0q"Gm)a)#9f=,*͎@R݉dReQ .&c,(xN&ZǓd4̅taT(qn~6݆*;C{G$eÈ B)Du. $V탲݂ cqA04yOSe6Rt_/Xw}5lц0b[==F/l"X==3YX;qGyĺb/IEh;ѓRT,!m%d[ l@?f`} o߰cX·^T],!]<lP䪙ǀV^HdpQIJ 'jEQ5xܚM6PiMkĠ/L#]DiY $LG\]uV=[Qֱ݁^N'ᱵ876 *UPHMqp|26{$x!9&}6P,kJvC.ugR]ΆS&D i7Ч7jD=(^;_P`=<87Q:vnYZQAA'ZG]ŸZRCͻޚqiWkj2z? Zj8#2=W >+خ̹*J* MN>Jy)=XEM\hi5f>'h!0|5]+~-B%_%/iSv ѶjDhH_~`i$U34SB"0LN$8kXajf#ʽ8SȪ˔AQ6i tsq@Ÿ_cO}PwBdrRimjou?\ACq`/YryHZ=\]`_8oõz%in+WA3J'}5srrp^ظ{VxfjFdjXjJgwԥrK9{*'s/%ZLn1.Ovu 37S|fESՒQqM_sec)_#5ŝ2~vknrRss3{nӌL;$IPmi q u^T]͐iBh2ű'%Pwa)Cs<;HCCnzM:'S$!oխ¡heB V :~NC#d j,0y0|~/Qmh1O'[x]̈́lj ?A(P =Pec p+&Qh?m`"1tk[rblB} q7SdEcTQ,Tay-iQhͳF&@~.0,{Er2d!$wo!m cJ&PQl0'}e2qPu;\ߌz3#_ʻ-7 c] k|dtE&|wdתn2 Yؕ Rye"d~ff#zeG4߶ff;rO, ThoL>V#)HQξe]HȪpc=| )KW֊LʬrO?f:_!ƽP Z??|ƦT>,)dbLzlpk+֤%>J]ka P4Uܺ [8h-^QXʣfj]N#@j`[+ c쳧/v^'X=ů4h!j/]RP aXF=<AF^J8y*A^%iuz&olb5/M=V.ov%LE9!$Qh:z i@4!ǵxjA lw:cuj˼_%Tt*/eLNTrr䊤x gnTN +U_}g3;HIRI_vyZL)1+&."_G> v؆T'zI67 B}":[Г8V٨Z9ܬg9K!~l],f QU7JP58Q=:ZqP;`B=/6h : OjVZN+{QьS3s +=55/u:g޵&1!ƜX>a祕 w;WW1KɅi _?tlPe2CXDt<ˠ-p"`7@Xp)NrjxYTn?=NjxVٸhCطv`7o-J$),}3R۸ I9$%TڱyoPnGd|dT*qQFz4ܿC:Eve_sm;;a;$E߻C7W,_ {o?-xX[@ҏ|ҶMuIªeu5!'vUUOsk&JlA0kEvb٭ Ӣrjۮ鱰=a|Cf$57]7P~X΁V.N*c;ˏr؀xT" 勺U+שXZ`LþtK^.-7{g!L !Wf*;qۜx]Ճ-cYN-1*1ws[?!;Y>܇RO5R3N@/ vT#u"Q<GW3 >M Ϗa;N1t&o݉?jPvڙT N%7 89 eQ)',#,bY'nAJ:U2mL[b3;&ētW%8&3}M=LL)Q@ \U;DPuЪxK൏q?1~36jVS_#T8T#e+T]a68"KZ@ yy;vW`\ $~NYZ46Wp39I=\9pTFyX{"ۻw/G^, ѕFlOq7q??˪i-fj?$VO^/SG,CV4KrC hQID7tvnPR&gmGzj [cO{IemY$Y+w8yKOHGT^u:_57/N Eo'K1+Tv>ߔ!1kJYh3׸g]zmF+ԑM2GCP_v}F+z o,cN2!rb=iRMfў s "Q=W43av~xϲ5삊U+4>`βM+]F9vi |wLx;?_x>f5J< * BkTc&fXpY0<*3[#RV/w8ie s}4m77cW;^^Lީ'{=D^E)Ͳu!(޸H8 \\ 61.>9Տ:g:F`WCSJtLmz2pX%|mIWDDoˠN*]VnwEނEWh6Bp=,%<6 oL&_'c-z)gbpKL mçcְr3zxס;]?4'jl7KkxŝzF=\kYיH"%`#-02͖{`Z7 vKNӸmYTdN)g$EbtmQ&o~hBTK:Rr?+˶hg[Tk:ܕw)E o0(k_;.2jUji weU1D.~^;4fr[pHG&Fpjȼa ]$,~B*+ NGHeC۝Bt.JPHTc=zVq󸻟K?wkc%tX>oZOZhoSpFͧO%c+v!깊bW :ޯsbVm_8ݸ.<=qmK$ ;_5Q2ޢ^S:kv+{q׈m:H6D|S,j7GG+cɈ7 ޮ{g~1fix7<5; ~0s-wtj[,hhPHW5lC\NĢ3T.mK4]Xm]5q9Jt7,XgXA7 _.}R4q)P7T6ax, Cݶ]m/+z55̈d. j V'l}"NQo"n⟨8lq^}Oj[* l[I2PǛ=,O߭6a8%& q,=$9WG1|gK]X њ\-}!GcÇUږ%VI 0 +|y`M Eh+DT/o]*>cᆰ} }l/C<PnM y,C{k᥀n?a Cd盋 X(w3 h\#Vr&~P*w:⌍jGH5.Ŧ|<7@ Dc"hL]Tk,:%su@cBG]Nae)Ь893V`$i:z旫2\D87=B[aޑx3gSPZRjy,|(#XЩpu}t$ΚA(wkkIFpoFFioJVNsMlԜtF7Sɥ̇zDkJMﵞ$* JïFP ǐpYch`)_.v\oT[afװjjׅL@t?cG 0z54yuҙ ʖu^ )lqyijJfxvБQcGDmLIBי mϋhghvK&7tWm60ҽn͓kne'%{_IYMw&W[3EیnDؼ=g垜2Mlژf'#v[۽>a Rjĭv6ʒqM0=k‡7b7#@}08PI>?$E".V'ylޥdup*T 0*oQ` >Ӏ#aW+qO3g'L(0E6/$ Gt@XGa mOxiu:S]տ&( !KJs㟙jqi8dA9e&S`k^KCg1+* z~|dY!)AˮliXae6C+W*Pk)inl)R-]FK@jGa-69ېրLE GDzP o$#gkĜ{p3M+2.s0 f޹l{8NEWu<%$g@JSw.YqAZK(TMKgʽ[IzNHuo}60fY֎QÚa\նW 5': }%Kݭ8:|,M y^Mru~<|sj{ :aWj`X/9 l0ݶ{1m~kft+g~v{c :!󴽫HۮR_q:YD_}K fǝ.`e Z0%h\34A&nH9b3˱VSb}!,'& ZåCH,>Ķ vX H1JfCrA::VɋXVdq +Yؿn?Ch66{nZI |yyІq%!"qx:m-В.}8m<3*ѿx+݋z!3/jqCn:)c@ +]B$"&$^N=u0) 0n:?+| r,z°)EPM6򭚘ED ~{ef ,/r=T!zJnDpS& G0y^TڵK;e"&ݩ<5,7qM:ya~g~|> ]l%eB ʿM3x"TMrnն^w!V ya?zadV S_yrn u V4fmS(X&m g%NތFw&qqT:R2۫ t,M5`SIJt]5NwwqnKjo! ŕP<"#Ŕgoi\:YlY~b-+R=jj7Mw i7VAճ'a^T:sW萍75;_D/Camk:?Hj$PSI~ R\Ќ J*CBd .DO/=<^%wiF'!ښ ԏc^9ǖx1鉣/fMߎuIDK6a[l~j1_p֨ ECivy >Y9p=!%Ds"z"oʡ^)Y(:pkx/yiѥ>Jj|YW&i ؄W R6'?whƛ(V썽TYeRAyQ˅hXoq7)SBwjj4 йRB,p< ,~w砿@!<ӆ7u:̯@SeoB36 *f_DŒ|nyjf*2\#&mamLMPZSXtdqߪҸW[RXt[:9ROTinZϿ6%~݇Cy$ })`jRT 4.3~2VMrkT* ִ'h.{_؁tQ(Rmu&\2_G5oRm4)NQ}r{kP/Zb;h,E< ת^*Dd'oo$!IL[x;2|ֱ]~~9򃋪QIxSV”uD!^'RTr`ҍІšjкs, 0"{00{4f+z R<7:=B0G.^'(k4;3&TBjթ{&!gXsVsnjo__+_(tܭ DoS/ /ݍL,6`d,`FVO^Ѓ,W g6RP:JT =s$s2!q#q SY@}3y#:N[AP+b'EQX[1MD`/cBڭwC⇡==)ڋHyG;bF>^'O^`c-c'q͓5hM"9dA36Bu_nz69^u|zi'5ӫ^z{M;v*چ6e-.ugp{~#CĩoC|F;^fwa53NW4vHy&l^0p\]Ehž6Bݥ6Ps1*NV}Eg鹕PQQ.߰PKv^~۰YeM`tD "~;c-[jw U1p#o+8OC6X]31Y$JI>1|>~Q tNv ==(?#]ql[Ztը!&bGGQT'a0;[/MXB^b;ޜ+`Ð 8Sݚ+~aevƍ'=>ܘ D{*f6݇4V+_Wi*ZaGIm'{;]}vcv?S0>èw vg# ,3ҁ PKQDcf3AԴN_ h.F!z3(WHLaAvÑ L'w><޺_Mw39'{#<ظ1dB^ MGɀ];* &.~jy@Ӄ)]ل[2L8vK;cC<=qEv04=-|,Ƒ=G?ڵص";`q8mAj`z|J-qx<Js6@TN@ˣ>(d\OH!Ehc3 \p1Z@+9#DUy3q34{ tg u ّP6Vn䠎ʽYr;R㥥$NҐL*m̛QgGC9)D8&鹃"E x(?*qn7c y;Dr`W3wCs Xim$nL#L-͓jd( %:%m']`P0KuUfS9PLV+}#KS8| 5vTy1Hrp (4qܦWM. 1Ī~# hUz:;w 7O(p$XYfj^Jya 22p}ϕh곉S\Qxk G6c% N2ETP‘6||0é8w<r:i%^ ;G~Kw_ijwXPK%WG1%wΝ4 6 nuvola/128x128/apps/atlantik.pngUT eAPQux = <?c6י\R*-/]Ub*[6! RȒv3\RI Y%KFDr\?x0cs^~#06o$\i)x]Pa Kk{8"(ot @ 9 Hzhƕ6# ~|S ȥvw(+l'@"M @d  KK[i/tkEi@z֖y_ֵP G{ PWH7JK:0lH䅈Y$ho8pyp/f&R&PPV[ CVX=?}OS:K#9@ @E5k @p$7m[+D!C. < /S***(Wu?q]OWIJ ŶYi(NJJJdS7P`}]aGCGN<'LJ1:;eJ(Q%EڪzJh4ܹNRXX7NSqi\0`H(ǥ|J֗J* tlPC 匎:@Y].ĊٽF0M Zm-$QB썞1,I| =~ W0 4u@sPEb`R{'3&VCǣ]B+E7Q$q'nʙ) /;| T!hH'1]ݖl:::j ;Eϙw3 xd╯R0B8MpѷM0%P\[m&l~V?Hջ *؃P(Rj|Q%YFVVQH}fNd 3YXDþ>Ą()6$46V9Yx?)<`,LBg?;#e.XI_R?=݁ I14-|12ߕݖasOg>#٤}AoB nwQ<5xo0v%/B P/}}x-2^Ab5vUI2"TڂE JHH9|gT. [ZY8*VhKs/ r/B`B6>"Ji |Smu?ԉx S==="gBԱ1I.9FF';"ũ= Lkx_vT(KKz3:TAR2mgOU7`f>`>fZ{_h|!όDL-dx/sV+ОSԆ|}洁wG.^Mq&, I"G.o"qMAdf| fJ &@BX;20b )hj'70 eqv'ãee9+/Q1s40;p^BJ555$ (Pq {cѨ^F!vcDB{8s^~>S!E1̐" ~ ?½-I\} ic ?Ҿ:^?{fDhI%qt_-d(c|Q@\m86X1C3*z,xiB+iCO~]|yأ}6}n|sxAd78Am.. %|I7`)^):=Nٚe!`<ЊT*]rw}&^H!"o/,Dt&;3Nvu9sڕQ/'jjʰlpq섟]70ׇkC5կH]@6Q`g 0*[7(&R#v}f%<~Fb"RV&†4vPlm"g/,Ɩc`sx )b!2Ih_%#;`N\$˱ɾ(qÇw .; ["9ߞ^G #8cŠn ߽rkcm Za~Kx v|$ {8#qG*$˛Cn  +WEa/ L*Fn2ڿ DU<1n5$-ş%L#܀"kdvcP y4)56JʉE /{ܕ޽k[oC.Ig7$eZ4_?. ƀI~L"romP\Du`F"[5 1k7,.5ALAF؎_hGDFƜ;7]ِ)P" KÆUq~#5|>ʛ u>U$Ir̈֌ Y2wܦAt mOСC Cx^ ܞV33a3?C|Ozõ%+<^69r&w}ӝ:f}0B7ފDŽtG|\)r由+PM hb1˺q. ]\]1u%2JFҰ'\ٍ @")MZ۸2m-) D}O Kgtr8ez,_YPWC,xBTP:DL]D+!HRljlOo ŸJQMbl0-Xxw=g:dǚvb/% [ 뒒t  'y[Tz=v-FSx+0fJ%fG8&mk-/\gjX՚m5F8 (gCSsv;,z\*@Sb?FrxY" պ:oJ]U4H)KzHsvv.jŻeTUݺ G@5K{A@ nFM$.+; *d2"<ԗ{=!4־C`QIq5*TDž4P:͌׃W][HKxNaoY~Hr ?4{s2_S8E0xIJ_`/.wʽۚ΀_Uc+Cvh@9yF![(Y*ش.jOfƃC [* ܵ- 6C #0q'lvQQ pVWWSp#vs -єt fT'QT @@JvnXc^Umnq'S|KrGQGq35SYd8b( |(%s*@hTۗ{n&EG(uҧX7 c S"DzňSh2*eđ6kwZ(Wuh(f)}қBgL%O?#[JX"BFc**Զ6̓q;j8Xn}S#Kh;_AWbC)QQ[<0#w÷.R J?㉑*/d]NL]L.E?.+S\iIg60>OTsپ=n>'VxW -Y:dkn3 8OIhGP;RKPPP2vL7qb'r *K ĕӶ6Bn"; *)ڐ`bѳh(BL\tK\lW/϶;@5$iC*F-oOG5wlYS@LTcn!뱚}P6gD6!4n}d\6_zs Le5Wbד=s/ym zy>[AN-#nۓ_tL|BSS x+{5 kp^5K|0X^گsG:!M +-Ii 1AZ&ܜzZPX0Ga2RH:PA-VGWmS\c w&̟/؟J SsSH*r(t#HC,cB5b'z[WK`W.#IR]Ғ G]wsxF&ưGn,R(wd _elgn9d5-^t*RXn1-=|m0?J'c/܃e>@R9HPlp ׹;Gϐ JG5b=/_~Jy'Pj~FyY :H<θF[I[;Zh!\h:*nvwL+l2p"~xku<.oeo1^zg/%` F.J$k,9 ^]3t"ı-yWlBCʼըS+Pc̛tKHgѭJ;'w. ,r"FRO'5οT@aJ{"빺,lGElW#S78m/k浾OLԳ#?{i~c˅ԗR;WcJ|PS7u`:Oo (JW3^#C=\=`^^*Xo[N-8'(8uip4CEsz蟉sc}[9vi&zn([/rk9wN΍K+}ykk3 w/WQ?f8|JY@ߊ=@A;W΍7,R2 lZ/q} XJKmIg=\:onvzQ\iۺ<ЇK i7&܁c2Vc%AS5˿MnX]~րQKl5oȀ9Eb }16*/>iCؐ _P㫰[?]=)RzR)vzIl s1<ಸYvenx2)ǵo$Db?q̱NWYSV+!Y=KE7pc&9u&M|Xa4Nյ$->HڰFL9^ϊ;r˔\]Pd?G?(:2l1 J'ӋAܦ p5Zпf<52*6텉`Z5A_)utz)hسX$ɱ 9Fi/xB܋n+zry,6bgCӍ&2$QnF&55ܖu!i6<gX rtoewb>A}FĪMiOdBi:;-dUQ))WB)͛"9j|{lu|7{ʢ*ReDOϢ0V=K1?*P̏J H Z9C/{k7gZj-Jt~(A|-^a{[kz9L]@$SAУ0WÆ^ܺЀlu][)7ߕҢx*dnpQp)sUgv1N_!ݿŠoPS෉Ga^v(7`iy1ZXʿS}Gw ݒƤ=xQ\N*KO+Qxo;U5LTm͛ﯵҺ+"owVR|uঐ-"S["RgH e K&]` ؝_w6 jő#JiU#p[h'`{ 4Xn@aV`z/?O:A}#[.v]r6_<ɡ_} N^cNI.Ϗ+7Sڟ־8ïq/pzw.RLXZDl^#73\%VVŪ}$p]`݁$(]͓2VLwﶟN;v2N,cmICbD0lzrɊ׫QH@X Ea,kg sCp7?]dw̒~v=+TjOH^WA"${/z,/'sKClGE[_& t셤ʲ|E--P".;[[@% LCYaߞ)X1.z>-,{>#n~YlWMgVe耕9>,寕좸*NV+ tj}I(|U*>^Żr$.=ƕ8A&UɅ;D nI(<Ҷ=: ny?C,++jI.L B<_"1%I>$̊Wuy&{|As#p%?| բofu ypcu[a^&w OXq" *P=FEjހS䳌J6;o"RQ!+eWK yȞ_J ;8A7ɒŨwdq{Q{_hȫ L_p\ ))'|Z^8A_ςG@۝8,eanz|>3x%Z3-mkML1r2$ qG\XE;(e$e(F+Zolή~J{%o-q ~gDࢨMYf7xZvdNVG'=Ӄ.!X ([矰.I@— {SyI£Em\CS|eB{rmr=]=_i$ܖu<P{BEBbeУ+U҂Џ71%_hk25vE1;jɢ==aܽ@,;?|3 _n='k2uɢCϟPUUF}Pf\ώ̚JB2{؁ ÙJJ/+Kv0 9?f svڑ"Q\GGFv-g.]X2Ԑ'3:T_8U0}1 ECU*Rhz뛼1BZg7JHL4&2sYX?<]UWlG0sC(*Y3+-) twfټ糔z)|x#m* x=zh":jY T1Us4"b5qXOpOegkџ' A5; Qj |;$|L~־H!\9ت1ܑ"hǫ|oWMZXjn_NoR󲉹>DQu>|3)0 '7FN]_wGv i |n Pb_gwwE{r w$)8)ռ2&iR(25ݜhe="HL e h:>fl̪yՒ,}|c.kt^P~\dǃdQi=t# T,3*QcP-WAN2fM2jd$(ŋ*U|APQ+I.\#?=/0af84{3s7Z1ȂP]L*X6:mL>Ψ#bb%0&7 mkwӴ>K4TU}Iaai\.Ih$0&FO[I`B 9'biمe_Pb ϞLI^Ћ;M?]gcl2]gw*r@[g=[]40DGIpkuHhO^r 9NwEhrrrW`"qnK녱%6ӨV[W%%!r73%(h 1fɫ-2uU{qN5x*< A\ 7WY+&i[Ng W[\CO3zClxBڠYN.HP52Gp yO$Ѝ|bd@/Mraiz!R|8|}9 eK OeB[rJGc]@gqOq;q`% N$IlLurUFDTZD|8<8-Ue7Wq ai푛kQp+Э"}ւ8{E*jkvd0AW/0Er8(*WWW'Oa)B6QWt7hu[HX' nV|"~LJt7$,4FÚђ00:Ci̼ i)G- (g Hn V>a<)\ Z,V΅[]"^Hs '1K(Ror(pE[QřU%9zßwAϬlUۻF) !y];!)IGRZYʕV7]]\D5!!-9=$#gⳚ*n Y?b:jO*d댿p5ZJq4l`(<=;(Mg0&YHRŋP u%-.A8>; z:s;a3ZuU8zz7p%9|saƏ^j;Igtu^bG˂YC[WO^чlBvxq SFF&in"U-&0lm/(}!?uTAyZ# wƣ*_j`\vw4 uOЯcv7Vܮp`rPRuu5wؚ/1~qW9aŬؿJL~$xpDlo#oM˳<4l.S@Xe'!k2&P@mkFGɒBIW C'[SGrZ:$wt̜|br`d|+ȑ\EeU򪼞/[ٱ 'ǻvs=&*ʁIH \ڂa!cYBUC] #I}S0  xD}:x(MDZ 5 KG'Ǐouvv>ܴZ6fW+EL=k>dOPW+hw:{e|Aci!cve`z_ UOP7 Z9u_62PK WG1iC&//"nuvola/128x128/apps/background.pngUT eAPQux %ZTR G N[q[YYH,GedsgiIiee +EqҴ,gU?ywN&! LAa.rc~/ںk'| 㓓 Te'$R!R__y %9`g1A )Owvgi` Lk_,b@^* ^&*;fx{Lt爱Sm(ILL`U3@G=kTfl;lp&B.u0He١F3^|l p8K@Scu^qy<ȳg2<3M}^EǶ[[[ 23e 'e[-!U(Ȍ#WMJ$i ^oZN.D  tA%6̠wwv%EAt {T1{_@Se3fA5PΏ>ē)Bݖc3xa s44}_^r[Uߓì`7Ɛ^X  'AR&-?dW_渾J\1x7K#G( 9F>/4Jxf+n>[ä $%aW8/~C"o&O2tz-x.Z2?x뺱v|uI~.*Ev?VP3:eسQ̽wbQLݡ%]çർBg&CHHlEu[HM c + EPsTmԩdS{WZu_8-9iW0t >C5HMY݉[suU:ۓrl>wK#N0a fkw۔4\kK`T9a@&b,QØSy.{!"W"j#kX&4h7,Lu6a_ 4HR{U~1cB1W_Fsf;s'Wi6󜓓޳RE>Ňrk]"(&mv\!mTi*(*A3/:%$F@,ffя\@ݫj{@pңRr &fA Àz5.&0,3N,[WFH$oʣPmzYZ9}i ȐIx&4BQ,GsTD`lf+MF`n_0cI@XC[цHô%Oh5BLQ" G˕@nv֙c:8 H dFA%}Pj=ZH;dv[eb˺9B\h~)sQikP^S4Bm;O@fQ !C9 zm썩'HygPl{l1>6YߣW/ɾ=`$\9 !}Mw"*4D>$$K,A)u;V1AhP@Vڰ.{$ owq׸Rr>_}Kδ{/~v__xRCM3{tzI~V:a a:hf|Sb -/f\![~WͬCV #q)hy 5ǿ+V!"t(h %-I`0Esət`3AIOՋXOzZ/PCOHO4VPr)RpXK}%)M I(Hj98yQL15a5+ c̥F'H=4 s]9*П#T)jVW3ݓ+`=rǻޗ6;  ԌwHVRǢg―2_NJ|7d7 wZI!ޯAh4=6WlwI%l] sWsA9ud 9gaЬeE 2Knƫ)j4QzUhd"$gAnrn3fP]DE}OafJ4!b}< ߝr7V~GaJE#uu}э}Q'/Ɍ,)Ҩό8[y3Hj+[pZvt"' #xEpyWȧ*0V{ϣvn'E∇Φ:Sw[۹}`ekyr9n~2WJ\=k,cY|rQtӭa޲]Z|ІZ3ozJu{vNֆ!p%Ҵ!=Ol?pW>*qs#˯)#bSzw)Oj`~~[HU*9\ 50C 4,Fp<iXE?x 4 !@ӯ<8B'1IT@L/ +sx>R*~g NT>pґ_#QK>27CcgI'tIZGܗo̔w'M#C!''ccU&=)k)';LEn*pk]Xp-b49;I/e|:wa8!cBwߪ`obVm+C%j~ZAA[Lw"D~ X0tT=,$cќ+#'1Kih s5,–1,C.ͯxs YAej:![}zݾ_Q;4MK[k%jZ/<4JC#"0///2l@ܮ8?h.9At]WUEFoRœ+=ۼxnol;TͺgЬ $ L?:dj DG:ۯVu?7 o/y]iSrc.C UMF%[u.α 7m9-?Mn)8'6 /RG֩g$cKtEܾT ydNmoC{un,KN5G|,6o$}vxir^K7#T.|N/_}BoCF:}Sg)̛>1cm*a)ڋdKibm 9 4z'q_CL un|mIT$]3hdkIigoWYWژէFxp1mkw+0{&<('+Ni˱ɠlsi Ǐ^wTFNΰuV$O臗-v4n%9·ֆEҥN.ltyYCX!)lPN /(Db>xM3=$O7gU^e@#˴#$~\ <n·< T"L5Fu<Ө}C 8 MZI!h0cTV7zAOȮqJz.y_|gi*^o~>Ӳ<&xwn w,ek-f4So]"p5^1[2W5%Qk҆Z`9FkgY*uׁB`yx;) 4wZ:x)Isa4N>Gb۹P*:mcÏSs wFC{ѡL3\VE!m}6y}ٔБF_ḈG* RkU5f_/!|c%m8XU>\ѭpxm+BOΉF+'\ptM +E[蹇rZL 8|і |~YzbϭӺ`_xCX$Eq?5wh_\ݔumrP{@;[e>0/Df7lUߛ ꏜ _Nyz\ǙH~ h>ozB z1q[5"bGy7  !?doFkR6NEE o%Gw.B.붓I-  ~ΏIi8 "f=cN{Ge 'ɑaCo<InS- r9V(&-~q^FzA9P'IY56%p'Nm_5,{Sƀ-ߛcQ|n4QI.="v5=cP\:r Eup v}/lc,ИDIN=טߧ7Z[򾟱Cz\0/8q|( fng`vjYh#6s|9 mZ+#ezN}"pז2?/8>ٺ_Y71iZ=:)8j*jaKտم 8DS@z$88P XJqau#goWr.|VV+02Ce/ 5 "VBfG#h]< x'5 K^.kOGo7T  4>* (1|i&CDh-~ }pCУj(ZcE"jrlwz.<#۪0\IRbM'M޴TNмQmWygۿ3Wֳ|zݹ903,T Mk[GOoU F񏛪PFaDk m浮(>E A'{ \:bIZ!yEwY TCUɿWźǹ8L `6(.}@-K- :~yʩ8Qocֵ_Ư 8-T.F49ZsaV 77r4gqȤ 濥#(imzȱ5 _|B(K TtS0dE;sz8&'w;ݚ,jar C EHua=ۯo&?P#|; 'G5N!$Ummmy "G/=Mgp>Is=A.P,Һ[ZZ!)f:;;D??׃ ]0!q=f6F3QWѶ98"|Z Օy&3+ 9NwC@29g&س&!Q Kqo`4ߪfч=*#}}ǼK+^< N pO_QU?=<^aN'zSߙ4.\/N4v` eUs}GrXРbQ11nu*{+҂Fgz^;Զc7,K{$&mxRqCiG8jTG_(]19e`C,*!@9suetÇ;5N>JS߽vŸc@o4#ɫ̻5o:nX@dή㙝Sӑ/Ia^ lWOg#)Jx\O F&  ӒDVFn4.鉢LAsK\ 1z fc@`{|z>oJD,W_#r9W^$or?zD 3 VsP"E=gO䙉<9'H `c$6/~7wBfXOhw &Vo~6 FE6"M{JN4o/#pl)ITG[\A^eDel:pE?ՙ+>T/ž:^;C0R< 2(T=Jh6ˇ:TQR\jlܰq&nwʑƦEO ~yPzM>3 sR:T@d>:* FL.[5%cL&w\G?muc (ԅ>"2 fsiv+Lv _ʣxS8(:_Y"5 =VeFf&4RPcKC!G^ٛ}sQ'mu+Ā^**Mj :#4@J?Y,^(t?sÎ= Ir4shqCo:WsE$ˬ~~0k/o:ُ7O?o]!$GF(@I 7o92F/GN0#|E>}MrK#7mc{".jXlqO$YOaͷ%[:fldT "Ye q溱s\-$*лijс99AD9r/__O{!nKbUc OT<қPao+wኢO j; 5{<']pY.LY֝KiX~A֤+ 1lWL>։!ϖQ͡ː wa˸pqmփ ӕd#,qfYr h34UMUwjLkaN%^Ns ˝'כwgΞ6~rFoT̔FkǓD-  =%Nn+v#l0zU'j^ 'B4^.ih^i>% $4H5 jIUZ|!R8JCC 466rB;;i(~$QyՈ7݂SZ;|E ;X4ҞUwsi;~D>֡\u.y]=fvp2.OO9~K44If%MP`VK8=SzA5ϢLj.Y%, +T^ Ői{AbXQ!c1 ."1:(W"~;I҂aku/ ?&D{UQ2C-#&nfavpl'na))oL F+q?I)Dч@ I4qX|'Ou,š,uuw۷k~}~e=VFq*=IA"lvKCb {D#/@~@ؖk߱IH鿰hZ?S)~_rI<!*I@^5(|l8oP&h؈׭9Yp\ɻNX& <<\v;?r2PKWG1;nb67nuvola/128x128/apps/bell.pngUT eAPQux {gT[L*e PDPǂ2tTTTTD$ %EAQ9֨`AQQ Ҥ߽̍oJf%yמu>*JzJ(rz .D?u4`$I[74:rcdhıE՞M ]aRe[P;r`(5"ڟA^2\s*LcBLj>HV>!?c@J]>k fʞDS)ѹZ͢ln[(zr6D9 .zۂ* 3@`+V]|>Ao H$d7tsFbGoQ.M\K -LLbNM0<[7"j+pb)`t/,6΍RmU ʡ&4gߏғ3t`Xgt"ݭ "ӵHP"Ɂ&ـi`:] ћ_#B' k`kZz q(UcWT̈,cBPR<#9Z#*\+yIC#uwkdeʑ#Sw JJ!e$ZFΎ:$ϻ5D^̥ޗW)7npJZD8Q=LzЙ3G[ ࿓L q;C.s[7^n_ݬۥzުЏi2ZނVm Zv, &rzS/@!=3RP[]i6Z%EL}$5c'%=Wz M^:ZnJ!0_dծ)AL%Y*|KEU&Bn&Yr}bk6:RDL/ީ5nCig|RTJZI_xy b5`gl `L>lyoa W$%78kFmPP! 9Xkasc6BTn~ hSuKirTW\6Х: "P@ccH5;g-q|1yl9`>c '.;i℔ʖѾ)o JeBB* `;*|EO:q@N|/*v`7iE@OЭ)ϥ &bcX$modEtg;[`w,W=2u GhPN&@Kȷ2 V4%D@'pR\CI6QCOs{>(V/F bޡاc=><{X-i`O1^^*ǭz/& :G`|~5ۥeԆN=q&?O{_B+^R;WY싳 ^c }:״Mŗ#j1Mz3N=-=9GFWjAoref jHԗmKT;)*R[6^;⻤I}EG&`9m\ZjPbPt탌Eس1-s;ך /(Ǽr{Шq ӑ:/TaxPibDAG|4r8Plxq\w] |w1r`4_ޖ"m0iVڴ` 6(muO7@JWi⚰dD@0roנ1|Gj `ڝ wd+s 4*ߚTsNj&xa|\%`q3A;0c]sGӤqd#!w{w^3O=-k!(p b#Xk1$Z9w_\Zwvp>}=( h/+q&EI J!of`Ok0X Ь? lB\d-[بo*hd<"~הr (J%Me[YJyƆ-3oZf}24 Jƈjh,oCSF` ^Gs֫Ag׾U&GER·A6?`|4WFC[alB({֦h) (&݋y|WLOe2,IÎ}(YLHeџe#(bwۄe-MCmCI ~J>lB*H Lo'!F\qj+]TxYl'Mz:d0gUQ T?&b %, EȮ`3F#G9ˎ1~ӠsEI])ob"v'_8͡}[蒘zTimbM5(v52O&Eg(foiR װoi /XwmN^q  T5g8* <T)@.MKgL( Ēemxٙ؎zM0^ x~y**OrWr2}suɦG\ oԥQh}ݕ/.}hi8pQ"eO?A}=s.oN-ˌ3UyT>:IeDpS63bϱykl!qv ]5S)Q)F>@@yepfq'xX6ro6h_4so1iB]g9lDg JBجΒPN's")q|@È"QD|^4vj3={]r)m\mf -EM`$s UR;JsJ AYwN(<+vJxF B-i)RyWus0Kp_4Bi X[q~c=蕟bOO`f7$$ 0Rd50--;F 5Du?ԀǷDUݜP` (3ϼ~FE7i-NGm^mlG1@ F"WSY2*,c +Q1- %` _}w}oͷqD i|%oWH/GBZk2m9 -U!8Fp,hښ LZnFvg\SB3oM#[S0"5ftsQ*hӗru `,|_x~"3:!x7cpwwijkd):?[i{ .K4i>x5OWm_0ѱhEi!Zs=`{1l$)QP\ b[)q! msɌJ}Vyf%UWsYv{[3P [h 8*8ƅsUN%3VfM%FwUP7K ֏ 8Nv34 3]$pZҗPj?0| a==6횚hh X#=dk`q9 bsYL],/`|P`<,weF~,mhEF *rqch$mjdNrCk!q^u`n*b(qelꍘa+F| ȣ o$+i^,Gi}G淋<.sosLH x ʭTUɶ3\ְv+Ю*xǒ]=R>x2z-e %Q>iX~NCMMæ@D;#U{1g^QA:t mTS* 7,4 cInctOB@x(5񞐜88&;!e $zWYy-~8A.EW- cfxa|2`WP8BD`W}8r{ V u/473)Y,ѝ[L©6r%7LU>d3Cg9e*<0|iG;}ke'+sf71|z ,MaoόW꠾7_O4o҉[ 4UywŪ}7Iy>r9-,GzGm5?sApnvxb6C9VqM}ug@e6g>bKikpұӍdR>WJ) of(/7#X_rFE!()JhlDQ zpS6y1OmY#s^ЗVxBHCopB9` Bߍ h#4hlFH2w|0xh]|I\}SlaPVMRHYI OV »_,YʳW*Fq=hVyx |vPT/ &s U?Yq?\G" pw}YIW g٫@ꪷ-G1F4O=SS yN͙u ]`K׻b?{cgִNݹMѼ{$ Hg~Pk[S^͈=` go9;ڛ-TQWn|D.VS{B%%_Ow7%<vmTe{8 չUWKA%$g>YG8WV`Sl nA6 yHeۯoAIKu{6ۮԑEN̔qx4CpB6&8މ 61y_;]+ǫ(w fՈ _HHwO;=m^=[efYy}G|9 $Mm׵19jj 2zQ߫ţS̽BM-OĐ| t/Ce:^ױ_ʻW 1u->vx-w{ b*ҵFIu<.Gt8|C>"ܮuQիQ.goے5QDv%o^!Ya`/ђ百ΌQ]kt͟0fPWvc; ET=D%ͦW$Lw(,m9s',j=Jw lH,\~+@cAz/A?Cdy._`4iaxrE A#l# <Lk,zOrpFo*=G-XM.9R~ȸ7!f^Ko6͕ 6g^|tF(mLlS6aQ {'{sBCc{tιn/x\i314u-EK'j6'ǯ3B HZbr!wϛ7kՄ-# <=$Yx˭kΑzDdfUB!7_SlJTKLZ:9Nus>_qbwE# L:+R e$_ER uL!¡6ҹai:#Pd+"t_ר`S{{^7JĽ# )S] G64]-V"|S]#c`}0ȪYxS w˵FףYՠ.$K6XDDXU#$4K2"a5Px[N)6}sFCDأN%*?=}ppmMΩ&4#2ÕBw4&PkyB5';2{ljF%RiNE*c>q3cnL rЦ4-lEFi# ۰ru<)[$NlQ]L?\AI[͎s(Iod%lƙ =w% cݟvz#IyMm(U̿=]Xr/J/Exa/AT{( N&?G;';synT8GҤ;ljd]o` Т(T`IYC2bDwyZg= mѥBTܷs"+TήƩ1'..^rQ=2f(+٭U )f@QYzfg tZ?{Ϧ1tqОW _Eo55ZY(l;X"Npnٿ+.=X} QӠ lԎ_kؘ`$~ˏ* (WwkVc ̋oR6w>fs=e>]pnB!rW rz?QqJ9u}&QXRZɻ۾ϱڛp~+sg'.ޘx/j?D:-Xi3CpP}|Sg,L=ox˯xȶV-Y[{&>09% 5RJmeO]w;nKa10 e|Cd89լ*)ox fWKx6^W|+frͮ hAc=mat?R=n{XgB)w.:OR{њe'5lx"$,!@œ#SnkoOBU[0lsߗ?:k?@=DzKluwÞ>8P~~,mJe,^W/(_ww:6=9(ѱOgvr7at7ރ9,ɪ8{Ҿ#_I4j?.cl&_M 9 Sx4tc=D݌~}3ӧ_KNyqfba`-#̊]58r--aCy:_9-%@ *xF0h^@.+r ;C8ADsWs }Ce kXHr,3ߨdk0W_CHov6<RMx̸kG~ SV.!z/iRJ~d]?e+r(ӥpgq+f e5f|uf{3]J\ҭ+1?HSᛔh:pϲ,`%IM< .Ta)ɀҌбd0C1Ƙgs}{ 0I6 i߳}%;&)5> maVm  xJےx3Gg7`ygydN;=[rl!ֈ6*;dȼQslK[!`=3}ribsU)d*j[h#,>EpυaykŘ]w"l1&my? s٤ a'%Ğ9rd.)J[NT(JG+y'b IǕa$x+nQ啠E+ S2vckmjcl҃'=wq~NHdUztˇ]er#8U$^>jշ,O >Ne\'*59ʣ0mvw 6vE\B6ʜ#:|E j`]OHP Cj?֝Ф4l~OIZ[ylx}R9,8WΚѱN"AU\%6d(m-wRYsT៲v"{=Zrz\̀䶣apLqJ!vq 7tK&|wMvkL"">,AĊ4~sO0FgU7#-SHkUAMm}e5^VX"B~tL8~wMfaF.xDj=&&wIhzIdC7(wƄw/lrPh(:@5VV,n2HK kعԵ\ͷ'$;t5KۖЈEleݓčPBNg~jAFg-TNZМeٞ=vZ|N03YRMnwH+k֩Q4Xy$*x"v6!ڍ랧3:.eV =e}bJFn;d]lcSdu䗙U~U(?֊UDQMH,F2qwjFC;5V~;`ߺIrDLwEl2|,[DMH68̽N,: ^Aknqcj#KD [6#ZRoyEAQ(!ag*0ؘ^ 0[{oMNa~՛}F.8(+lNsG~T2U=&-177F4mcp3ϰ>gtuU{kL,,@UА~~IXJyC?c;i:ؙ;9l9ٛ9Zd])Q!UɈNge֫E}A#P䖤mHb*B_2h4snL2Gveɥ- osX)-G$ o5]M\+*P-e6v}j+6ܾ+te鮞#1(kaL=8者ѳ0 )r)Xڰl? tJfɉ3 `d[s^LC!vMT6  +LA/͠7HP{@5vxV2V(|{zօ>Tsܿ雳$RRLVe7j.iPx-4D s0{`})puER7w[-]y~]pA=":l!Don=l ^U.}ڬK:B('^[ګAo< |r<r"fncm]Iި#y:% O@ْ渷͛gɡQ5lUwιvZwG'^8i9T7Z`H?ʅѭQ};1aUxH3`S9I2] -7j&}4}T_bFFzzv{ԼUu`!w Éjz? 0-K,PU?b]jP98 b$9yX"4_3`YAYg O^xSjSlZP}s9!ټ͢wTˏ{a̙5v,3\\VZؖ9Ȗbb˫!-<)7 ;Y0#tNّgoJ}2$hh.6o =g-Ġ≌O/nq"IjJρhOUJL|Qh:yLŊfpml WW=o8=5ǘqAݺ(20SȲɢ3hj<2]gv 4..,\ť b8vп{ps5 p#}9xg|}O^LY[dsg!c1, hdK=#E,}5Ӊ#ȟߪab; s:Ts-/wBID5~{Kii]@?΁ӵmIZtn[rbR4Yo\JX$H`EukF n E&5I&r3NaN*vQY>x/8{&S\\6y!@py~|VQD5Yo4t"/FtOy W=zwvRbeTe5m6EU LHz!M" "k' !|N$q&~SRfQ/C'Yϰ0*iI-x|>1>m`ْ fbuC'w-VZdO>~DB`4P$:RQ*)Rkoh/3 Yz0t3\lȸHDzˠ(~T v~ pGI3hMbg7GFS^g"Ne=1nX/sxt>_iQ"N4 D*ͯ7sb)nes*Bzg خ[ۖ\šHc#`k>0™ߞsse5c|{>@Mkq Յ1~138aoߖh5>..fz(90\R\YWdjđ'_@^)O9eHi!cT3uQ7Ƴ` ؤo'xwv"d,OϊCrq~ЏBm]MiGggNyx2g8|K`'C @ǡ,RR Qs`R8fXhvh ruyS^Z\=Q*fłL]eڐJ.c[%pZ!yb9;6]mp :e=MNw*V=9&kvQLϋǢFooarᛡ+u`4G"' ,~2&$EK?;K#۸?^!.d GױKCftY:J 8:M^^B I49}Nu}޾m{ffQUZ,aqv~0QU$ <"56yNƇ**|b],83c'OLu?@67on5p-%1~a3yg.b %'R9U[sqk'T1 :e~>aɏ)+"|},zxڜuvsu6ጆ [0S<hzsLboSjetrM6]xIeqKT0rZ@XO+>bi72Ln>w멠=H30fZxϭ 37wz!rCizJ`aʀ嫹1n =YvDH.K3?˥D'Coo''We=hRzgr{C{xֶlO *ٸ13/wib=^ǠLf&Y߁PJ2v>8w%] /!YuE&>TW*9ٱJ H X٘]aWTߒy }{8A3/8xߏ _E陨#YP@)u+اkPRL2bη\ 'V2p"nusfqIocr&YSG&xI1vհ>!cfqG󵤌bl58IT4B9N;ҷ,̉ =vZHl>[b*yV"&j#g{Іi+=q&XuLf٨]UǩDMqOn"!3U,-"ayYcK$+-XшXPђy0/zGw4J9t(+|oTe;?ZMF\t%pA {pԳY"+ծYa;0s3HԫP-“J1 y#o+Tn{;l.\FTI?+-T-Jw;w$"ymKn:vf]>,_ xɇ`#2z {%7Pi>qzLyU=剛 ǯ;ΐg!n,9iu .ȜkV)Wl&?^}vkXB01-ÀB~_5C ;#-Q+aYvB6&] 1]b!-STX4*>g`kQVa1Qjv.3-8C:`$/k-U{xՕl|?U~[I\|B}A80m jwc~ 鷪'<ػPtxNNw2'mC? \(_8SHbIˈK3b5y9r1qݯbrK(*D=֋5AoɤLub*+-Cp5p9B1&b;_]UmfdKLGpE{*=űY@RgsD2iª|=()Eo+"đD ivXާ'!5@z˘} k,,OM[haaB`B_w \|}Mna Vuya ˷<6}vV#?{Q!Ã.xoUńf Ez?l` 3NOiֻ$IhJW-*%q"rMɰ~Bb0@)vI%AC~)kx_VӢ &~O6Ʌ&ijCImdR)tN8Przb3(#~@.\71El'h.,Ȑ*偪r 39mw#R!"OpQD+HJʠMXy(e~B,}I}]PS ?}vBX"q0_tCぉHWjy~e3vtKNm`e@'X;}dq3Oܪ}Z4ŞLolP7& zoEv'޼ F̑ץȠ tTw}!9^׵cM՞D)'إeSʛH}H,s My_pbKTK%u-c]) 1V6sM;c\o6k6tۣoFA>M0Z-@Uw U˨"-ƭzm垸F(!ʅkCC@2D5i d -a(P9RV4LXb1Ѩ{ycξZʕ J}ы,tsaф]W藾}Ԣ90:k%sAeemվEL̹߭B69:8 rf]r3-=)NKKEV%HͶyMܜNyl0Q7 |;11OTW&[_>gS@i ~4ɶkx)bHLpýì(Eup):4y>-NJqԙYJ' %.˿_n n[ʈB  %#v ; YSsĜI6͊ IDA]aME9],2MK,쨳_V MƊrZ{ ?13!`cVl%6F^Yyo <{)8^wPq2hI ?÷#ghD|tϗ69蹂Y=fuO}w1N*(?Q@jyŌPj8 p@-dL pY *o`ӬIpl um~WoŪZ K{>Ȑv4uĦ۩3X #>إ<TWǰmΪJK"ʥTu[!PA%Q?qqCŨA2V(CwZ] Panˋ=gBH GE-pAg46Ƀnmsv$e[EA"^M<^[#@ ȨQȾѪr,\DiQx ebCM i󭂅u8ƽA_?IYbOr1#]lHY6^Ŕ j<:A4/{e5RE.36frO(ަc Ha&daq vV }WQфm$UQx-UϠ 3̦}BLnbMb{<'|;gaF sᄂ*]:X^ RP 1|WU72/>KQb;C@׉޴pGY&%Ⱦqiķ3{LKͨZz~n0l7b2;H BBR1Yu&fLIZGF_ 88ǷjL] ZvW?L@F~P< ? %'Q)1}:\y\Ak\Qe~qbhV%,k d7nKE9pézIzPLfRsxEqJOvCQ 8/%!=nҵ'QYi uY|Ȇ9eʪ`J JRB><Tr0Zp ? p\[HQȻG$OV#M3{텸 _%l3{ ۞&iY*O"p{iA@g-ރHWP:96 x0pāZZH\#GBōu􆆞y${,`|&Y1쓀h6n xa52k+܃3jyvݟLĀ/#=7E!AmSp*w|wWr2>sc̕ &f6uչdAE: 'r O\M9c[N, fDvP"@{$-;_3sZg@;ՠa4j=FuSbdy1TB|ާ,wp1?Ɣ6JO63n=51"DĚk[( #h?^Pm,4N]k:|,$-UV!j5jkP4ﱾуC}):(@1,3c,{3GrlSꆍV00(S7,Y&afy4ZηJ*7RL͛폼'v8A("G)&:޶AT ݩ= Ux#❑Vt O ~qvgv]r=]4A;NQXaiƑYoxE4u2~g =p ": O~13_[Z^\_K`>3&Avg4J} \b jz0D:wV$v406ǧ*~XSrƙԏg<)mƂE" f53-m*64UY2fCOU J=@vk=j]>gń0OΊ!aqbؿ{Wb :4G@=ߛ;9#X#A,"FY {JzvR.d.Qq+ntD/akV9nL 04=m8.!hc*'mHm{ R#^zHelA^&w([{D`AD>x(me;EA4Safyл+= gjCDF7v^l2P'SΫrR{ؚG4\kp*fCPXzd*IԥhNo"BHO;apJŸ HHLWEHYfkPQRjn7-)2SDQܟ":M6 1ɈR+auab  cF򞋈Gl6XMp$vv\8@~"cm PH}"ڝ<7IYDEu\t5mՇrNcTofǍ/xfEvAolFC$!PoBi[1Xy(v0hz5uàz}[huyp5jRRIbd2RT~#bm DHKx4e:0|5Q˩6#^a[ 841*hN ~ȕŸ"~;썏i}ȆdfKo=Ufwh:%_P&I$i!7X@Sy6嚮 +deTQ_RJ sٝ@VD+7( 6t'!S:Yx{0}e^΁>?˴>TWH>22K-dp-1yĶk.F4A@p 6(%f@+[rҤM^'َQnv'&MOYX-l*\⸳9Q"cQtA; ̙ a,vOxRA:GPQduo%`D3ΉDɌSv_B<\A+!y)D1O{pvv AV2UK,4%#ύћ#p u;}\o>Þ%9Ez$9sb(waxsPb3E('9}`=`ւ /AGy ckc]yu{V4hƞ!)RjO~m/_gdc0B1e[ora;q9a]!l'칂dQ# Cqq\D,W4+urMK:|+ |am~ ],@/X(Kr,M[؞?n%!7ZG0,ЎvbèJ4 M*ʋa360#|6 ,>Ap|u/xiN&gŔZKP^TVR1,{8!zn߸+]LT6juU*Cf {. cy#BbhP?\cN#ME^Ӹ"*/k"Nrb|!Q-9ۯ5JI"$1OnF{=*#{aE:o = X{*5 YQx= 'O &%/Ev㤤]o =LV%Rra7Yflb eAD}C=}Tn9[Mgrg [B9S.OcV¢ÏCpf7UY63VPdVjԁ2(ʮiv" A.~y(ncH|-Õ9E9>29!U}m#] 7#l{6f!~~RTPv>0w X>.WbXlWO;nh1OߊG<!]*OPOPg$x SJs}9L-ݑ`N6&y~I|==n*y-yҁ!9 楦9JJDhCie!j=ltut (ࣵ(L%_?k:)9x@z$,&jGTXc`n])Wb Цx0: p,g%H 6]<Im`|=X$j#BV!z<`!٥\7%V1w%#RkG3|UB355%mm?y#Đv~xW8rh2S#\KXU3[G#>tC^R~W"Q?ޏ6UH ՠmm_ts=)EʺpW F+,co"/⁤a`uQfU,帙1SA W{Ljyw#ػZVmB\s)WzSHߍ8@vyNkduu*3ư'es{i$DD W$mMON <ݵARtX&Tۛ 7"teT{\X3N%)CT։Wotf=.$\[.׿m#҇*`_(R>u^+GF͓ B| $/6x93ہd6D~:i pG[^[4^CqlD.>5 }Y>eܨ{ ɗhgя(S#དྷˇڵ.u:^M/tϳ8-,jCy\z,n~d(h uɣm$Jve/uWKl1C7$}hffbuxП4H4I LHx Ww4a :롔ծ O(Ӛ)Mp ={hHE@ l>aꏏIy@]><ԼӁb͙Qĭ qm\<(e{խV,Am+Aϥ&]WG$ w"KoQGRlBPll$p^㸳 ץ tàvG~1>l O;)x"w"Ľm{~N0`E"x iXVg'jdwD9f70e3oen+15wHVVۀgl9l[Z22_2bGJl`VhRũС ]R$WR6&\6BO(#-C(LUtD@G\E!\zT)?!M$D|".ue-ߧ*LjY,ܯ>ڐ*"۟u#Ys#W Vl=Ӱ$Y߰! څB 3?A=p uj.I3:iJ_am9\-{lZV`7Pf}i X絒Q[eD3t+!ʞ|i8FS*ifCDޛx.ӥψ)R{:Y=_&! ɬ҈ Z¸&wГ[^͇歁oZAKm3j+,:.^vmQq2n\8w" PS+2o7AAQ#?w$ *yQЭ1-1:8kǪF8w.xD !aGwt\0ab=۠]6!kjmX?Aյ\d VNY }DBp p~SI65j&i 6j;h飬'\gȠ^[ʹ`/ ?qU,Fܻ3a02jR~mn@!IuظٱX)q&j+'m_rRn`0B .yB3%OH|kNaPO\uO m\m6ؑ«Nh^ghx0#frZFtЅ1?Q)Kyy|HbOaEʢ\P 7>@ ȩuHp23V n~݈ĶÜ?Nwl`TpۮI&4z)9vn}Si!^´]53 0V `S7s\`=QPvJ͘],%:b:\Pc7;w8Ϻim>kμ䝠ޠtDfKK3,I43/%Ǧze6Fc $rQOi~VRx+MJyOKMU;J}YgWV!ٍ 7[Ӄ˟Z[cOYOuRxgN#`,y8hCb7ӄ3$Yң(0Y%t\]V'0]4g+{ٮs MT+vceSЦmhv?`d3s/AX7DˁH0y<)-CsVc0n<2k* y:ð4vm–nNú҃Ul*e&a*K-53 ohiHdMeV2#zFH;uc=v@$ [̾q!`(!a3 C$" %Wݡ}{+B=kŃa^/ڣzҬꄽjQd۬8fh|D ̣9Z,P Nj4|șe ('[d4J`붿KEg,e\Cc!鎨;T\u*Q%B_f@69!7=g 4auuM䂸bSjXʬ ]'>/yHq%l;{y ;UD2$boD*7,_^4RzxuۋnzX\ym*P\kWKHрu[ !$m1mUTD!dR=z͉Ŀ͂A` t,@5a#܍/vybזGLy)*4cw;`ս}I#*񸎄%nKEbk lrW_ }:+b %j}H;0˅+© K+y XvVGqj@^=(\vWWfM* vebRT yyK `ǭ ]5ghP^{4G`D=nG 8oR'ܦ޿h{W&lgV|z4%qZu Lkd5LQfi"G !oBYF{6JWj u C>0"t =|.]hn.T(" j[Dt.KͻquGY lQS>3,y(ͻ*9=2Z=""yCs|z?m'sdE`bL)V:]&i&!\68ju?4+@8qS_!+s:ԟ ٱ,%AUyF2Wp. Ytsn#Bw(1~.c [ӆA (KҫgF]˸r-$ncQGU5yt4Ye=1Je~;neq*\(R&:~s;bّձ? gԿ>0ްVI (^V*LM ~oNp1 }`d]Z}LQ( [EpjɵbjKYcߔj&g{ݷ3ُx:/X.158 e/ =λR/ a( 0At2j;A%^4u;RQ/HL6%8ZXQJC7Ȧ{%6&뢰pUa;olAռvN=U"ä(hԙWKr4($2>AUyzì/q7lB4Blfס*1JdyMcs7:$eե&n*T j8b7Ts[6b!@-mmA޸ziߤu:q36U^_zJabϱ7ҥ'׉?֫ae7e(dN .6{1o_7ݣմB}&w [ۯ{\:I.Ly{fS=gY4EqI*'& TnKVo%lO {1`T=oK; v$UXYT1bp8yMa(rxW\臄_RjnΝkbƗֿd?"}Z"[XY8C)xF]O/H-J{x Vzl&XA"tEڥ>S ?`}'aАަs*3;C0U5nTN:n,cΞiIexbMjSfw"OWc a" â2 PRp?|cLL~HMAUa{+sw`/$Nk2NdH3oJ"o6|>>dHI6w ao׉[0:#Z1nxO:Y,pF|&-rE{z[}Ě]W8muAؗa.nZ %Bt.ZX$j2VO}߭R]rv]~@d{1['Ցq,FE")^!ݢ[3<.t3o{9f%WE AlG(4tK~pOKb# E߂A1v򷻫tE< %NˤDF6:9u׀/DAw} >LQC\tu^*l~sQGvz#n/$Bs|egjLVC^zŃ 븡~ju>6\ɍ6gN2%oƛ@Msj}3,"wӿB9u;w^,^mqy\%+u ml C)+_ ;݊P>-w'R G[IAAb&&pӿC)R&vf:(Nof7zїf=r\Rtjkd_iL|j^-bk ,&$K'/ڕa_mװqNw܋5dDtpٜW>5MyJ#Axzv/OaѓA 7sh3(QЊ [E2ѳܢ p!,щ*}moupP+0 1idgY٠%7/i)mQQaB!_`(h_G^@ʗ! tw? B@4@TSBxY.J[I v‰רR{J+F/FK`9NT/O>jĭR3yaWf4GDsCzٚR ~>z:,v`*"Ъj ;hm*`Ih9Oc`f`(&39Pbu>ȊX_QkIVZHÞ:&C;zlG(mJ~baWɡl`Q\624{0Wh-̓bGµ#@!nrJ Q&- 7~6wüeFTʴP"J, u˥:]xGƦZ%pVkĔ(IΌg\4 ܕ%s gAH!0Ĭ;jho V+>o; jySEՃ~_zs6֥\0;U!z}/nӤpYŴ΍|G+? ~G yۃfm(_ i}vWx i=aG'Xqe}FlY{[[\:ϐg$M^&W:ÅY]0a)f5(er:2U J+wIFFсp4ِXB5K|z/ntLv+0tu<&~}<{ JҒ^ɷ9}бEl1H6`<[s$` ^3³C}9FR9numD0 thީ&~o8 G[2! R8Q)3sf m'tv뇖Թ7u윈_sjz@}p6_3^]֛ \0OOɄ[Ӓo-'ffM}2!V)sE? )B(J\_bH z>D# PwfNXz_9rݝGD^F%W;fp)K?DxF J" ۗ=lG@e`5k ~|hAAnӪI( qlӖ tZW^LM%H.?ϗQ>ɶ^/)^㓥 z4A@ÖE*_$]7Id]Z5ĎK~DZi4[%Ԥ2ezF)_c+U㧤(Yx̄\+zʐŷ::Rn IqiDQl:B@|MU*~Ks@0k \L${a™]UCD\53p sMe:hxP u!;;/O48;%gy{Gw L=쾓QץZ2P%_B/$uZ'r;MrWrn^oqEr-=ygg@fv }7GcRHx=t|w=8=i5)n8.Z沟ZsKL'N冭^C_h?x' M{kjbW1-'4/O/^A7YEyQ ~7X4(.IeqmBQrT.u*Az"cs<lWZ?r3~A5Ikpʶ(}kÉzR@ bK'gfr=kZ,f%cύs~R`YNeiAn IeÞm[O8ur-BG# :bXGinrhDs^]>{: ]K: ݦ'2~d=hiEl s9x +'m81D?Uʙ' < ;{K>wC ңe:[DڒD?=ӎ/]T?3e.9uB,~! cY;ecO/} ]F-CtTӕkX0`OqJ@PWrk"1X4kI{Ē]čv3WD*`Gi1̂S.nlHzt֍\ǒ#2ؚ:R90kis}d#_ߴ,3JE bE@&6s,XÉxK >s l"67\X7\P8tXoLwbL#4:'UͩDiUԏ PdEǪb ZSeQt `pfޞ,ȡpWF&@".,ᇪ@.)QKÅ+;h85 7*pr]8,vR::7jK`h5{5uhyitO灻&H?"5xeWQFIaŇP&(La{S].gg |v˻"+UzN$m!W%BMΩ)lepAD38c-Q6'-%co+/~x8dgeE ]mJ_7-mefXeG˟1$F=(񡮵TkWS޵e>(}su a+G1od#B}\H[y :qZLg@[tmrOKZ^S5j}qSnxZI]w~ˣJ^*ce1a[ZQ@m>MQqh-m^A6xúYn#mĭ2g!$;NC*D U}V =/S+{qH)p=)VwsP8+$^x: aT>⾺+0AL.+B{pEWLVJݼl79!'&z~Nuue ql jKj;@TAl!㟻u)s J V*nΩJ;tYDY%(Q݂l/~wֲ'᙭T9s;?Fm fMr\lAp.{2mi<~+"Q5o{ HG|g^ûF"XױGǧXjRYGC]i'',R x_z.{V.vp@G"ρ ;4ܚ+RF.oyP׿AW4ms!4޲l(q :kbRhK`ބ|~ A&AZZ](!QZFqi *pW,`^Z$T],R1%\r8Ur<%,slM9 m[QY:);"S(r]ݭa.š9jv7XԼf #JXWQI\ivd=6e*Ur%a y奵e0DR{k=ik Їʠ I/߹\Г;8Ͽ&= ÷tzKH-$G/L>i?1GHG 6}%5g^gNJ`X\/ Wo|nR۔FjGC˝ʹ uaK)Cb$kITa+fʂCa㨧!c7}BVYS;j S`HKa)?'Z*|n_"Qɫr*nVq'Mw8 *MFO\X\-JOlX8M 6}<^2Βr(SݺlvA91~_tXK35nƖ<,f>R I˲ 7!]IQPd 2\ e7F-~;Tvj_`Qx*|В 6vFӦI.!  uҰ Ƀ]pGiE/0<4ҥ|tv `Ԫ C߰{ L U:?VNm , t?bV1mmEYq-0E\ۣam^k82ps~C'ej i`3T2/(ץXpKnn:.(#}W\|-Yqq{O Uy a5e[1K5aƞwo}@BA1wq"x`3HG2uoeꖟ:XZKlG,]B$._'}Y>+N>clqG\ZckXZ%vneb&%lY$1q[2jòJ9Sk,B~Q>`h!ۗsI.?H3rI+,> /-yԙ0vwD~ +^iZ'a(d"B_(P/+=wֵbpʋ3={a,KHŬ(liW)7\?:I8T1Dµ(R :ryإ9=^n_5 yݯhhg.cɦeMS W& ǔop{ Β>*~C7e&y|v7dNn@8,*5(3F'9?4Ȝ˥}WF/K\QCFq퇣\=+ޘr̘sy`Rxr0;q?O?_y~r̠#=VJpH \Lp"<`H$ SVtWtoNmAz.7]3hHS RdfC:!{H&nx\_$YJcWVݒ(E)^)N:P;8'l.Fsg;Yye tjzXʛ)݀egsaJܸ~XGr;Z:@ُx?6B;HYf'2mN$-bu ;@C.gRñ?w^X8zy~͢@/ s`條(&%_Wڙ1ԻLܱsKٵ7t9R2=oD(D,@.ųgr> o*}6PcdU7]l"_fy9E?U8Lh{p=~1,+~uOʻ &!I߬:"yȝc(5Nȱ"m=C1kg}#;ny\.C1am곱*ѭ1T d`7z)f!)kca"GF09dO fʸYFIj2.ݖHծJ`Q;ڦlP*Wrd;0iJ}$@UL LjxpLmyDcꘋZJaBW8,dslxXC eYZ[ZZ|BN^xjĝmF_L~y"gUzqExS!!ᷥ0MWYo^1o\~ɟifo*+tqe'ަ&. Z dmU*q]>Xg +^~a:M/!g_JTĴK]mw&܌jҙ(9ldh-ђ[wJ+.Xx.T8zҮE}6R[ y:l ~!с!mфW3 mh7ۛ&g|d^h(D}is;`J>F.x}FKɭ?t1J~۞ؓwp @K:hJ<뎌: h<0:n\PPBJ=܋R+}^…)դcL; XOYh7^ [DY^ޕwDfER`iwĔ['M-mC*kWϵb%c%W&b&!ྯ;%dQ<za/6`"_$m%ָYxi"~1v`Ӱl~ղx?2+KqǕboUY׮-)pBrӵךjzo׼]FVچsodYKLWkN|/3N֙8i QzR1To5Of[ٛd͠t񅊪0K#SK=wVڏ ,?V*;^" @ [R"C0c5B<^/Eȍ1lI䕊tXbIzs4ܪFW5/&kB5+5P"qʒ+W.(l|ɾE5#҅Aւfp:Y}yu2vP 4&${\!,-Mݻtlk1.iv~ŷ.!*(͗/rZJ6j":+;R'秓!3msMʴyrӍQ<賿u Mrcͥ랄Oݜpo 7& &t񱾤)`%ܘA*m^VdvGayoBɣpQؔ3غcz_u6 9T.K6`tqAP-f6r<6fJ`yʂ[H}>bUFp:N A6ypaԉ5]|ұ'w@) : >;ʚ5\J;aUz O,$jd*rC2 Vu 5[Emd>lfL$ %si,n&%vNj'_5 Rd#vm i"h!ʲvDMyi&ho!)ʑu.bsj\+8T9GL M0[ - i0WGZYOѵkmY1~io:{׫>#:[O˃KnZi{8林+ iq▣ ~Mp(^TLHinlDa#6 Ber~vrGPo"xk,J{Zӊ:GbW' Wqw/k8+f "a+ΊzaM0ΌP 2hJпފC{: /TSDsys౳UC fqBݕc!ϐ}_L[#jPωB OlY :`꟰u{#=<0F@`&<&"Xx%P~4jYƞ>@@GZZ]uj5ĔV- v K;qjyB?>rd'`'4gYM-qߒNrZKK -v਋ܮ =od(_z>7b* bj]4DrfnM|pBF]X~0FXˬ9Oˈ,_ 񏳒^Ǽ/hR#,- vRj<,Ffv0Aq|^u|x\D& L.\16R=aΦ3vHsRWc֘Eܢ櫆Yi7^$6l(W:!oNRב$Kb< >ztka&kA$?9om‘8*gXoZ߸::ިJ1u]21Nؾ֝@DFX's%eHw}ިb]'<zE_ '2ZPZ{$`ԅ{`[WOYq2U3u of#")p j#ѥ$UJ[&x/#zQ~Bϑ=M[i$#^5i.|6iW:Ha=PJ8(:8{9d5 2b]*7*@w9+ 5!7'31u@խm;ں5%Ѽz2M#z6glvRjV*Yvw՛ibJ)&v#bi; P-*{ cr^# y|:t=&_2baNCZh>~mQMr//z} /!2,կZi.iW#y{gfM%:Ll #d7x@e}{B$}⺧|ۼoEʮ\RR3nd˖EBd:T eh7%QgbIuXPbPHyHKaQb6fPFj<'p_;A'@=1jK;HaZc~:\ /RyM"![ S BS%9q6J%2OߊݎRB)( h,[]џО)KjS"?P/ Gkf o l5_'%xGGNbq5ٷ?a[T6 "bq_=+`@әVΐ85 tF*2'#m#gQ_é*JTBAceO1[3pU~ t4@'rkc"v`(\8[]^LMY\0_ Ԉ)(2WVeVb-6x9G-*."$㳒1p@Ϗ[Y"82$['N~qHE^-lv,b܎( ͌ǔWK L"><'f&cwbo=B< ʿlf6,C-u1F6qn{6*±932)<;~9^-.U>%[SP5x-h]ɢ_V;ߨ *mN +jʼgbPj:d\7y`_ci Q#0~4GKmqUE(4 .dY"ub MD}DgY\D* +_m^sv9QڿX?l7VL^X_`ϹvLo>hqкrB)u?kָ[O~L:Yk*kjVM8xLՁX녅ӣDX/b|Yzf[0F `w g"@B'g`"&J-41/RYܙYsoIՇSe=߬W0 Y99i6!!qK&M2գol}i R l_)TelbbD"a֧赍c"V[Jʍ٢Pż}"Cm(XG"@sbko8!@k+3VzZ$?B~&/xU$Goi1S8l̸2ľc\FՆoT?;s.(G`l`dt,YK,qRԟY -/ W|!80!sv5{Ui.!Ujrn;X{htUd@h&,[-X1߉{=Ы(7DyQn/{(}yˆκ{e-g?RB^uN+ۈ֘m\ \m Āǎd>WI_HըN-pe0BX+0Bm !̊fWk^BZBOwm+&, Q6/Æs~&X4Z(Z@cnkw8őÎ+&GPG&y3n[ ka0m{sk;1sA)(OAn܈]9# I@ʉuӢ9#ز!]QX,8YR#G1(1;5]+ Lq2˰Yp;At=oO!B_]p2F݊\oDx?ȶbrPk u&7a"?_}ϼgثЪrށdNN_DP۴:ޏԘi!3ƴDP 1' Ӳ17D\Dxrb'Y2/; kX:%xXt=8~8ަWOvЏd?{p6_nwn+goCp+XX  J{At]D|PDZ #b9=GuܵEij,b%:`fx9V=8{*?rGbثewfRPO*R{$e!o!? "L)0xKNd1B;ڵX +8m>Zp7ž!fxooelcYݬ$(=3ZU ^IYˋtD$oiNцU Ȼ%T@c/h*[#U&ӨTaɚ[mkR/ * 'z?x7%C V.ㄕ$X1!VC1j.OM}l$xa(y?xV?.v9J݆P-eV Mڂ!P7+SKOjJuؒ3]LN<4훊j]LBU_[9CsnC @G4nF́(ۦF?NtwoD="BTL`e6v!Dj6< 0XV|(kHMvZP: 9_g H=DdE)JRPo8Fzi`\E(ÃpjCBdMܘc89>}=жwR;뒪PzBf"M3mU57|SyM_BVԯ 7 }5]7l ~mm:+L戓ÃAdkDg'oo0yGKLEA;NhFzCeezW8e',†0CX̭C$!wCq+kyd`8>V(yyU+} Ÿф椨|m\B|>RkY[{|d*oHPhG!̷IОnyIN>vץ !*LQB!$y*/<2}% ] '^#v& Akt? >TQLgSf1Z6#!CtolTAkSmw"SD+z)ĵW]q$v?6ݐ`s+/.Bx/Xk{+U%ak4[qI O V4ƅό0>w(D9f_Յ{TqoM ^z6Kx]\dx 3Jc8E5#֯FT.u?"BΧ3vGo&X14L_Tbuڥ_*t(+E,kdtS'| EIkBw:L> !0 Fݗߴ2յK}&8JQ6Lo}MQ+PfHd_k RF A~٘_ݬ ͛O5mw:sɠXxL8 sI{-Ew'Gd9I+2ԋlcDp›9/ٺ~K52 dDqJ{\}gY  a8 xzx]q˄>6M"|bJW{ݷ,mM32vЛqkgZЭ)91 Kk£K4{@间R-m&k,G4YѾi)?Q Wuo$Xָ#cYΦyKd_4=b J hěQ~T[G|щwfm/瀴&vV˜/>ƜwLV>c->'n XȔ /V2r#[P-}U21`46k2nt`):hyI-ߪ53xWDd"vTxӤ@"⑳ Q;JQ=,N]bLek|a9f}:ZVXDsJs\.uLܐI߱x}4)j4`acш雐f,AvUoAV!iB-[&43QQ+vz Y5 ^woi7ҋg; iG!9Y721O]؋gԵf?@8W 5ШYo/!*l ,Pe3`p+9Cж쉪?[?֠_6{n]gR: ~QЋn=ؿw=aN񣉂8 2ܐ!˗*NAS5J299yhi&$@OP$ xfvU7_yb:.}rWP&kD֯#N%Srԁl+_0s_(1D}VV,6n[FuR|ʿoWb[ zG9֚yF[klOc~~\U]J #+@wtʊExCv _=g[*d=; X42_/5GթS~0J0ۚS٩>7UwYY-5uK>k}իi+<HZwUפZ; r8rmTXxMQ@Amib9дw<7-QxxiQh{JP2P @.Z)9c0:|ؓ n=JӇҝ×9JZu_jQ+lL3վu)E\()<+=~> 暱ONnQsia͚{U0uayZa}Њs4"MCֳMH% ϥ."oJH\}Ƶ'vDtboKNx>iW d2-:3z%viKH#ֆ`u#P?u2WUy2;kpxԔEڮ]t拼Y޽;IHӆQݻTJ@CfM=SOYf'0f\KrJ;_eLTm ^&a[Ww\ _K2Űc~TVt]Mۯȋwa);%[; ;I/3ѱꨬz6@+(r6|q'PްlQ^bi YaTӥ7J$ EŞ@҉!٨-GAiLu]{*8`7-JZ+HdDwnGtP#8~Œ\Fa9gsgwy̙5 3SS+trn{<­nHq'վ=qm7U-FVob햊Z.(Zp&dѓp떅eۚ_3dG1n04W/LVsuߓ h~xhvGU ǁje!K*"}@[%@ҏ$I@|Hx*j6Kք|Ah{,*Zv$*)K)A\f_Y9W|?,8zZ„]dγߴ+3JZн{T\gu'>nCĥ?*++k|qҒTAj}1vx$wRsC+6ʊd\ 1aP<'6Qla}.tuU zoA"JVᵈsn#HAKo=9;[/=hҽܾv֡Vaek vR\"N6_>]Lmu^hk m>)(\Ԕ݋ggsiV>$4BRujN˰.Q29Q}zjWxAxp1_q1`Mdj5{ԕi֫Y;;Fi'Y=@˴Ԁ7oD sG7r+cg%Tˈ*إ*Ponla]1'|C%=݆f&}:oËrB-۔I?z?6l86"htH`f41Y88CDmcehi4B+op]PEJ ݴfV Wb{<&U_)B*J&?KT4>5Y}a5`mAϋyu$ʎJ!y/[YE,N؈JZIZ;F>bVJ|E`SmTj:'-fm"甞es<.֎Rk=V?']+"m%mvEOo @/(4D zzΟ\X~5Ê;bѩSq/ s}uj@}QJ?T+N$Dũ*.z%OϤVNAXð2ҔJe} ΠEgkR^;؋rWf/?z|>ۧ{5bqsL䊾pj-t jq͑_ku?onc%_i u:]>c&qtuN _Eٰ-`9 'sK㿫Vd7횚ļ&@}! sJ gQqd @+D ]5kJ!Yw?D~sR_i;t^;e Q9b0{Z'G\q$yitOQ,ܵ_`s,!d2ZWEq@D5Ug bK, ;w <'ج` 9˱DZl\("=v VAj~7R %*%%>w6~m [aWPTZUwW U(*N`W*.Z/~5%bn.)ǝ |e{k]nvr4Qn[ȹj/f8}WQv"uL$ M&^  8CC_%PD+c~!:ո \ʋsrREX'U*roPΧx88-xQ%sĤORV R5teKR,ɫ.\ρtDGtx!Lۣ +%Jú;՛3S IGv/=h{VL4%;lgZ*1Z`&n+y?VエSuI2 oq9Vy^G:cp)\RŻ졥+e?~I=2DSo_ږfm[\.(h d(m◩o`nu\ą9wifgGd/̀2Q܆]AWgt887.?.3F/G\wx'lf4ɬV^" ċK]i^9'vȚڒ콬yCw׹`Ԩz8~۷[RR7'WFM[P{2&~FD^A5Q:*iWTИNQ"qNr7ӢݴP؞7x/n irgF׻.%.!mwVAdTLbՓY3$Z1KV11cb%R+-Vl!׆X O˞Zu \Keyq<R u4g!V^aҳg{jlBSKOƬ;6G7sYm`|9_ZLkGxH /ϏXm(G僃aX1Uz55n7o ls2-U%GIP:7%dEg zN4(>-\So%Mn 0ѱM ݷiSV@ > N-C)sTFE'Ḍ@(;O i:l(߱ Noot &\Lߧq~ZNbd?PQ[2 rk Arxߚ?',ԉ=z\yF0LCié~dxnIG1?! hb 8@J+ځL?~JLAb|~8Pmt>&"Y[O9V{ݵ\@1hmSny".{rj=z",9 ¨ !z;wUܤaDi"f:⏑ttMC?piӡ¸Y#jjpUڿԜ}[Z( /UEg:9NBc/c"}PXπZPK"WG1ٰnuvola/128x128/apps/cache.pngUT eAPQux EY 8T?3g16Cv%-(2ƖJ]Y+E"1EDT*9J"*[eObYFu9u={i tPZYvg~!UFv#03~\woJOԖ /h!AǏr5n>0p!0beyp@LP<[*Opy՞ H YGVA_2aδ>2B_dg9ږIG E;o6~-H =H!Jٓ)F{fglv/fZmL5l[krZ>0J:pʨmE UT9UJ&Q(f,*y%RY(%Jmv@Z (!Z(K(yF.XEU|MIq=Kfp+IYٴEα!f2>$ϲJѷFul@yI/c$uAwQ* * ;W'I"3BZG@~՝ w O*l?F=`oj# $V)Wˈ }=<_ތ#ߠ~Omm;ΧUOYG!;uG_=5\0Ƽ .P ?8욁&U&ExǑd4-y@vZѐ"1LUnmeƔU ;`s5m ̏SU}̈aA*F𪝆\9 e.Lv'?ԴZKӛx`9uh1[ Lr+vg2):4$ ]HE@B%ҿԫUt;jMPq v5:oŌZ[?v?k*AۢH>pJ B*[8zf]] jQ]:J/^Ӗ\a!ϿhsilVrSaW\gU d*nFx?J8V蕞dZ‘,tl׮kIF(PV9PjzFM.ym{Rp S|6Ⅸzh0-ep61(Q)5||r[ǎ;Meo,YE-|3 OGԡ1>? #Ke1x[6\̸Jq>'J#myCa\[w#ğW[iRl9qjEqp)f\*db *b%pE%sژ OdwwtBY7r.q2ѕ~nl6+aC;*R;L;VtR7-5=׻GosTCRqGqѺ3R"-Q8,\"! %bf8_I]F.07LU f5"R9ޝ;/a<G_*_#Ǣ9_ ^g?!1Fb* 91Rz֤rrqGM=HMo.;fq <5SwtXӹ{P$ $]VF(o`hDtȤrJa>G @?Ěڨk[iz5鴦6b2q@$V:T ISr%!xE[s:RJ62܇Q$~H_Bb5 ^pvz N$e&ѯlE5+}xT]41h n vsOA'u1vwD>*2c2OXS{. R{"8x_iOj o(gsv)D7qþnYb5䰷2A޲B}f@֜zê?i-|~$ v⒂>dg`{I rɅ:,fуȾ/#yrL [?΀3 q #Y}˲f]axmVw dͷ+6r)B0ݱBZPdi.;0̧7ja읹fKqN4]"4|Gwy2C+? 덷FJVH&b֞ղX]>c%!ĕ*8=.H@ÇggR}b,2q^H!–A_\`=0e´&LUՋ4?>}"Z.`:Oz;Qģ$XN4zE0֥Up+O }8Ur U6i[<%1/ll_y0 z|{ |J{C/p#p\,^ZY=ި`|QRPTmČx~fAW:ogPPR>;&"޳QVxh|h& }nGUB 誊 [WfvbST9xw,dfil:ju9_^ 'z([豘Ĕ;*8HSvGb77&o38)Uڔv+kf*{lH7#HdY/[Moo!,3$t^idXpm#KW,-9GTUpdBM8*d"~REZ>Y#@#+͙H>Y ?NFkYOs nzyy'R?ݧ=xG Xy<\Ē,Ulx opiT"}#Ѿ3F#mۜKS}0j+#z#Ir:eU]ckd!~0AL♊S U^:̠Iɰ8boh/tfR90Ws ,V0|u'Yh6nJzJHpKB&$ę.׾N kݖԲkfhp%-9d"'d=j˚ZF%xk/t1@Oᾯ_5OnP %tW!ܳyA%2ޠ&e/zk2)$cT- {:amm epb!}wg%kl8%*1阿}SaNQ.FA{rKwdo gLW<:A*2Y;HVdʭ&+)WsbAs*5^ #c|—o\eӟ@zwQ*A~,t1:n>gdvJuĿ[61h]obӕ&zfmLKIq>u\ϰiQ$G /pa@j)=wӰ+װY4 ɚ@7d1|D-( ݡ…:&MK4M>ӳ):~h#.e++dX/_bNcS.}8T_{ꚬ*|u ~|QԺ8->ʺ L`۬!"&  -^lZ tRHۓE󾕳u9 S/ůs]IdzbV ŴsW4{PZws(8zxv򷅾F+7K~pL7W:h{a {&Lu%ɥp{Гb5s&k%*n N r9pH7Hn>#<`^D61k, Lad̃x=޿W z3+in?MMCX֧L^bKޣ\+zpj9PL#l4pUdj(+ʔwۨqn+cɠ"{E|1ޝ!i,|(ёuGH`iFӆN68R'nrsӹˌ;^DWőnq%(R Ps/*e%B5^gCTkTXnxQPN+?_pFǛuzzƟ M9҉ ӛ-LyJ'(qeS[<9zh8 ב?ocwЦMN0-e}kg>"@?SAݯvLDjj~a/ k_ʭ 358Q\?w(6p29(T쇡z ~Q\\ =3qFݽ(Ve9TzQK=lN].R epf6!>UhT|)h() BJX10d ZjGUbSb6Yʏgsh_&"EM'nTRR֡϶Jj\gȒᒰql㿖;FB G3=44g rY WyЀgRCS5o`t uӈrs.7\ҭ,iBmra5iW }LigqUkj|u/)V6Xznu9vH>bv6NG~17 P;1:HvG,PvYp ӻ;4٨+xra2`zkڏfod?mw=dM-[ 4y$G*Q!¦9R!z*|R&9ATSHiX]‰ |nBOWnJء8ow9N]׉bql"$tJ[h0EG^=pu<)؜.@a(zKC4jY|]U1"tDC)ڲ,6Iy%aM'P7/u[/?`7z#M؋YIB) {FL?`l) ~gg_[q[;UP?h F%sX|RYq6;s0|?mf_To`Fj? Ռx@b3ه Ћ xA3N5Mz' xf'#}iXONSI,?YRo6K_o tӥ3D-;'tҫ`A)FSy1F7]+wi_>Ģ.6.xv$ bp>L# @jI+`JrAAf( x6v}-8/1WDyFq²ll@!}r̪ZP(i? b<ņ LM$@^*8L-A}AФήzkXLP<|1+jFZɯ|3rQ0lzx6{ԓj ~V%65~$LS6Q} +B((۪2EihkS)an$4 =P{$^V8LvϼZ6T(`J O۹ڳdz@ֹ|\$ք!>E04BP46[:TošZs 8GDY8U$5lHmnk /ziœ͇%_0cLKCb4UAu SC~$lc+VyޙkD`pwbӬϝ&%t6A7 dSNX>< F:%ChwLfR9e3jFAgzgngG~x@yГ^$x,NDƸ7_6Spn^LH-5Ý{]L05Py2l޸nvh%4KU*b${ ʝadh]hTJQ-GQQK5(4>} y9 }9O#ʹ)( lT,1}Qy5 "S;d{fdr>ӛv1ʤ=p!UV.ѽ>m\H AZ%eE75nxW4dJ3q)U *( enfs !r\BLM&%:'3 ˉlki(K]z dcs"%soo ]D"n=^[l9煾1NM/E!(L1[}!0R9'(h6ZUjj</S]z'.μ>k7sA8PKWG1uH=>nuvola/128x128/apps/chat.pngUT eAPQux wPS]zRHBHh HIBP:*JQ$)E W^E"J#z Hr.ܙ3'3^Zy+w r<\.bܹ~GҶZg\k`⮘ē-,&$Xpd_xpة ?y D1)@`a0&}QPn<l ([8B 4j3$/PސgJPNcjYZXVy )_CqBUػte J;Kk˓rbG,V53WVC-[m8ۑ8<NTT .Lfg%q ӥHAK/j% 33vՉJԵ%qX q T9K # #EzV6A&OV&D%KzD+T^=+=GpeR?/ VmT 5|!yp-MmuExTeUpTDBKldZNϩ|xFwun}kUbX2,6 ׮UΠBʴ2y`+>L$D|e|.fE*h2IH_GrjUPҨ58.|)[ yl ZF_]?^^rZ6].ӊ|F򬁨Ryd}y/y~nx=[ɋ-]y8}%s3٢y14tqf)%JP!l ~l\7o|uԩCs?HxAm%fb~bj1H~U"߬=ڄww9߂Q轳xt6hٔٓ/o\\䏛h4~ڱݐ7wbRQ̼ny5VI K=Y󸕮w/J?@AC:8|Æⵋ XAEr˧XBiw&B9nAmԝevA.7kdd eWKַBOF${(cX\$VPպzll' M?W¨RW/`rq%У `##!54< ŶFcE&/ /G}j(f.HS@K=&*.u9@Mf(;r 5rUg" 6?]mH9!0;U#jaJ\ 6''||UHig͉${0c*5̍mpvW;6(~dWPJ;z({_PxPmf +PGI;ҙFa`a$$2ZZJEKϿd2 'RQo|wq#P`? PR ۿ7Oc\p6.a`%/R14dH%;l6A$l b2Tp⚽9PB̃F}Z 2KJKr T ϠVy])sbSsCc]hWeYӫVZ}>`642386}7=!PΫ{^d pޅMҒ>=W& k^J*>;.5nSsLg%tKFpd`3@؟/8suZU@SKJr饂Owk,~t@lutFnr+S?\87/^[9J{~k{Wj]򗔨 lD-dsC̰yzdx| ߠ)9 sDKɈd"[fpDE":!R.R`H09&~0yz.'uvE2 蘿mG|ZKM%\sM=CDlOE&sg-og) 64"]CQpg0Z 2m6llc7w䟁<l&Lz,FK)P3m} /p7+.yLSHLs S34* 2WO⢸ ȃPKeY&}&-UG[ ;y 5"!,pc0%'}c9}q)GTfY5ʝx ſ1`tC@܍og R> XѶ0 TT}q oG?>'!)^=ROX\ -ez$Ria<c0n?; G;; v;|P^u"hu"hZSQwa Z2E$=( UA#% l""L@,e9kxj]-(Uc}݈[9P8^isZx'07:#JXxWj *j#v "koI‘5:Х@2E[5CЌ{9pYnA=٠41nGcV|I|,KN ?Pjxm@ ʟ4+Ɏh# r`wqo:`Cv ? V"wjp5Pkl4D/ˤf<wRHn1eDUЎ $a!0 X5_O2.c#Tp_.QEOM  0Z8ƞ] έ s lb7:_m OrVw']Όη2n#]S#g/#{ e2~!2V )O֣N12l_32= :\Қ*+zۜ6đu~PBTlDBLGK3^Ɵׅ6~! o]|{w RVAXr[,ӅRs劊EBe3dRHX`0"]7m5S@Jso]@kddl@ڸHVֈByd"L K[)<$sw$\G;^8%+|ӎQ{b-v=x^}k\S  \DOO\8y#BӻeN`|uӓHim!]<"f?}mZZ1Z{. azeGoH+FEڜr339i!u O-W}=q.H/A'\ g?Hֹdܑ#t*dk@-^yh|}$URHLJS)9<mxlQU^\֖}Qc#u ߑs%l=FqXƵVZ:YKCl6> M3&K0V6n$p~9$t=ݘ}>|fFn+}4KtZw8X+BܺO\c"R_3>C2CcG8/Eo\[Ugt@#YZc_P,+֘ÿ7 +v "Z?c#prV:fI~J87g`} AٚN-+G]IngKw4G6$N[O#i=l7C7wS7U6BWs7kB,}W@ Ŏ.Pl ek:GB >,eO=0 [c\1e%2T1V1aThw1q2wcjH|Yi~+ӷw~mu5eEbi%э:J Ku:jۯX+܎C/h=Jg۪/*ˍ;~5)8e GMr"Fzhwi+G1~8碸jL G7ޅ-ǫn=ihOO1h/+!2`ͼgͩisz8o8QgZ9⠛9Pe bW iH0^>Z$N?\ӭ7|I[kaf܋N*9}?j; 9[4ȍuf~TmVtB=-L‚>P}뤪#y8v>SrCg;`KX3 Z -=9-J4 hPN*zTmN)e m_%j$n?Lnf S2zYǘͧuh xc>-U SR^̎r _!p&f~ v9H.p^4}ʷ+1軟F?tD$61]_OxP^ 住 _GY[vUh:Mot/Hipk<_RGn,>ڳK/TnnlUIEX_VT7;s:Lc;֝5Δ:طZ֔!b. F%L /A~5#Z%v;T6I"O-MN x+[߲LJdRfN_ۀub!^.ݖ=.MlZ÷3K516g{!5{(ie]'ZQV ¦n5WF;qeKvA J ʔLxRׂZAIdޛ\ڵ`acXM!ve.]4p7U 'z6Qz:w^zkHr?a΄$Λ&&Gb`?{wۖQ"M=-YX=8WRZ '&ʝǣ)SmEvSJWp/ϟ{Vvnve77> <],odxGY{oG~H?[nG{}%LYeX0=Ja_p.ƨm8/&$}󗆿%u)Wdd(AtMm%a?œmgTfU ']&KވWEJr?"i`WJMU.{xjV2m-_XR@3W6R, jbb5~%,\Ur[  /$J][̄Tkb(ݝUΒIu&4soRONkI jX'^fYf8o~!t.Sk ag*]ݟ+8W|W]FqLPow/z{AKm-А Vv[5aW ?9+Z`aW3Q3dK1B~π}B³FܛCe֔<`< WAyq Xã`c;g/:H8+0X`,DiI&YW-JmNAFIiC} Dx)Z鵟XdC1k_`nT(3-.a!tոsլ%(,x~LRd{B[4 ƒA_Lߟ_qc\C3uҮPx5/;;xmVV¦7<# r֟*a& lI7},L#Y6J- 8'wǾу Iև;yVɯ[O L+غOo캗8'.4RYF$4Ͷ7$̗_WpM H<.r MAMa#ˮٰVa$[~ؽ٬"2݊׈°P[ᐾB4Į _?3F \y y'z'r OfW>oslnrHIO~e*OꃧJ7 ۱38vCZ]T擽2g8hhl%&H!l!Bpm8}dfRdgxZDպƆț@9mFx|Kt1}G+JRJt!Ifq|M:Հ|"+O-S=:!2Mc C!w9/c(0=~G-CCHf!$j[1M8d_}L >3盉])t/*8Qk t.36DJHΖy@D><潻2<%?/Xm;6Bcdːޅ w&8{5E|0=D4ǂ?y]0n܀mW;AIcwx3fGBh{Yg:/}6vF>Q{)WD|/c` Zx㠛C!t%3;U^9X[lF yŦxԓJOpp4\>-H>GV&hrZ2=[*RK^NlK$L$Z,kY \Wanq 9Prx5)L>zk#w- G^4xL@7_L }!#T>\5>en|&f&hoH?^ޔ` Kt*(ׂEpOUxf{q՟iYhi-&"LLtEvdP %^X8oNGv- D ,;v͸ T0_܌+^/KވAw)cI.Ċtإ:p4y6qE>bgI;rpe(A*уT0rn֚*tE^cX1B1S(^n8B(Zr(E?ċyhyuld-%N%u~#-tv 8y)81?[z09sf?R:r.x M7\G Z8UeM 2U,5aWa %'F#݊wu<ղ}lz](G^ݡFPYY:`z Z 3XJځؙf&}( bI:ť'# k;x3 ᲍i֎:Oؠҋ`E\rSb|5X B#"c[loDw"2]f[f/HШ]. T`;]*[|I|Ji |% Q;.|o{FFVs9iRlJ"C)UlȽ)W3 yriC 'xZ<%x:=܍QΑsȼ؉ , KY*oyz1s(CPK]5,g72a{Jrc ?/5w4$9}ޗMlp#ᾼFd+@~ onAG8u~4]x־7`YbA ;|70S31A.0{\%ٕXTqG$S{KT;' 08٘Ƭ]N ͅp`x|(RRֲ+ z=.."I"DKO0_.a-POk%˹Zwе0;=호;n ;+e7IU(ފ{?eii9T( az#QNsoo(iϻN)ؿ_t Wd3 RX*/6*gi)ιDUDn wGC;!~Y2\p$`0ѩqNP0q?<ۚ7e( \t" Fv:z.=>j=O Y\o﮳a:Ĝ8@X, ̾ jj:Z ZQT$,Hd~D!!kju+xW17oxAv5TYͥ v:MzXc{ S&d}P\Sn|`+ٮmqP@xfp߼YNHP{&j`e\_,7`JwbVp7+[ϗk?ܕfFK|^18xٜtY| x+H}bc9'39L]e=^@uoisj_ed@(|]KVTK^le0k -zT?M߸WgJ Xh1/ÌQBk-Ui` =/~ed[g]PJeV T 5Y<31(5EjE hoBC9w[a@aWK2'R:+)==8Uj~섴 e5O3j.JHZjCfr{gauw N[~dsX8;bϵ^53a;9k pDU}9K>63k+Q0)4SߙeC܁RMP"FM '_4C̚嵯ʹ۹ʹUAEf㪫ӽ s֕ TYy /DSc 9^Oayav&G5Xto34<цХYOAfihwSC4c1m \;Gl ,^Γ ;wA:Xbx!`#Arj]NVU1V4·&#EE:45 zY&/dCDT]QPͥ9KCuG]U@,$'w1$U:(>>zk miO%޲)v=된o2@Fԋ#AĮpZi&~t ۖk|S&wӜBat7 }P%ߏZ)i+`QUhߡ,iR[>;m_?c%ɡ')丳ס{;[`IU4$39O{;4ËVhMd\Y3cW{0l7 ooۀ4ɯt-5^RdΫTP|'f[!f>pT~0o5OVRÙ9*tق W 9 FE}sWzD v7$K*WXmٟ B38SSq@(ݏdz| #_.@mK1s֢G7)0|Ja="Rxw#T?˖nAR/s_=χNCҪ\~lϬ]^f rK^ښ,!tt*M\գZH벑&`Z |hd;WNXd-M{Q落~ED=4)0ly¯~ƘyQnNpl4ǟKϽjD4ç2{GAZ $B&@/bIczrGN+ğqeB6#{1큅ιx]=]'4"FY}@]~`MRӷA]乍?p/d#(h|wBj }']g{]8Ui()?f) >6-iR@2Kzlǯ3wAP':}o *Ц2sCaݝcdU @Gk<T2;QWk %gUWY"MPNv Dlqj}V4\L&su:׿͔͆#tK\kP?. 4v@'azSfҩmMz';M҄$LZ-1RyFgtggS%Z*"\T}^`wj7zCܒj==:s]Pm%6I=Ҩ| s)mmXOJmL;K3'wȟDz+?<2ӑ6I.E5ЉzɁ@y‰g$N/myvz ;zQتۈ>r:zuPSfGܴC'yj!8gKSpAEYGGg`jh򉺋(c'y Ѳ"7"LלW<Cߛ kc n !+LDEDB{G̠cOl^50Ϥ+\dk+k&wOhNGAQJR',%Fg_#ℂ9ہ{A wx |kibۼqql?<'3&L4!6KȎ%y$Xz$C [}3VhM-[dbQL&=ldg\b~Qf?xbn036vKS8v85cH ϬShw|N.Lw Sa‹e #xV+ ;:r$"n&sc煃`.F%:<y2J&, ѿ!7Rd9Ui)J3XzW0*D .d^`M3nRu{'s6ݷ*G "Y)5 f+ $뒿2`+ jl`j\VrUC|yeﵮ[GBl-KףoPV > gE}r Zuty5<sttȕBs!;3-KE=ЌMmcS\u93`Z<sqUꪺޞGU_(0:& Nߔq+6E ̐ȠP}aCCE? ]ml'ss‡!<4y/;뀩>@K9HJ򴗖| p ^]윜hbt4B$!HT &Е3ݠW{yؤe L .bl% l ިObnûEFBd}bp'J(^ޏs,g∴`I{W(E/*\S5bmiBT=MDL' ]=r7!ts߲fq,v! ۞tD}-4eKD^&<لӴvȘmJKhm(@6H{!A6?T|X\a73Z,I |kq&H guFϾԲc'ْd|x˒'T>k&D^,c2[M:aY6mc1Uu)Z-;gIMBǹ.3{aB|f+6U ]莝sM?moj%" 5۵4ܥu)vW5|=TSLO֩8A WyZՀAb >ٲ1#Nf {7˿{~Zt*cUV?$MFTpFZG'r'X:3&z\M^ccZlOFm7d#BGQ-O'Q3ΊIHiE!;`-RBx.aҧ0K8 G ̨Zco!-8uQ'KF:'a5'd^0AkgO@C @~o|.dP巏JF+gc" b;( QFm0D2FLx)U [rB^`Zfٺ˄gOy*\ d9}}*gȁԅiK4mN Yr1?BNA?#b{lx/ U;ͰqpJAT9}8Ъ' ġL#-4^kGxޛZ]Tư $סw;UϕϦy͠ ~h}E8+uօ:8T~%k::dn-&ς+;מ& Gx {s-.*1t!yWad&ź; [S}͔kcI[_r |)E*Os&Ʒq/]ںBH>E X o-Y<:nue #Nk*6U]Zՠ% G.R< y+9e;NnSv^˥A [F 3/g ) nod/;xE/UYg=~|j"Y>s!}y(A__044D$(܂ɲċ= OՃSSS5I8+?>ӫT&c&[/[m}HXj.hLGh!A=BT΄~)6F/ Tp(oЄkÓ}QÊE(ZZZA !M' {#… =٠Pf#]*2M.=[/v]9[Xk<`,5LZ۽Ҽ;%jȵbTH{MM͌]$^ʣ8"`qp~ i&+RPXkj_[KT%0UИ^^y ŕW_ؕ6;*`c r'O [y KҔ}ڼEUBK[ϟU8 y.rYt s#n;!nP.77f菾gݏ9cCNNS{9:Q_qQQbTz'_qE'Z(^cپpMA@84hwo=Z@oK͚s,D-N{x }1jϿ+l x>у}WRC=۝ `T%M;%5(Fiƴs6d>4ڶmۿg<4Nڤ.m|͍fxZ)4Zhjd`jBD,35g8&Ϟ 꾲;hRy֤-:+VmB -ziNW?hˢzexfӳ24a*6]DK9z+d5CpSshHS𜍘7WPtgRJ3jJ|T@eTc5T+|7I:Њ} vITW.S\8RiDӋ"-$@xG{߳,\uk k,ky7 \X8L{Ao>'I,1aQ!{>%ޠEn [I:Z kA8]ܡx05U{؂t {/7`UDL&:{pKq#Kzn6簒K&Kml-1[E u.Qg hmEeZâ9Ks̏e6Ýv򩽓O!nNJQJKθ33yh% GZ(I;9ڻp}wB?{bA%rNJJ8޵(bEW/ܮGM?O"JX6JùF58$6jr]ܞ)7L~Vc/>yO7|OOaerv@g5>g +{CGkoNJ`xMѨ"SSrB]rҞ7ovi׭x(Nj|NO ~XTj”JTh5#w}9o̓ߦӂe@" F HVm]m[jչ[1m> i/vN-wҁfOs\Q,6u^Fzoyw,}G~M/j-3f\ߕ,FFG٦Ga;η38ȫϻG?m_V :]~YCݽTD|ޗdz({5x`Uʰ+&bj{TzP{H6~  c/ZonPS&2!@|N<@O!-~(F@u\K;.ckݷۓ-b-8f!g*@[*}䇅QtZQnȴB+Pm&MKD?Gs ̀0-4NRث:@vw*lG4|s̙{P<ՌOg0r>QG8BWfukA׻^C̥5> ñbW u?  AP|7 h^+UZrRo;܂Hfy4O]g|;R|M q3=6!~[ Wy^7ݘ=*A7KHpNwlT"[Sk.6ըo`+h߸Jyt(gTR-Xpv3O`>nyfǞTCp $1 KHd8`mG*ð_ږVa.Vqn їJԖʳPz,#v (PfT:^QnZ0 zf}AF e, (q &'Hs?AxG#WQz˾&^3uPYctj`-T.GQOh6%-MD+_(y@'i>`^ױj+Y$l+m~Nb逸`|o%A42P*5=mhAj"֭s"'q0z_<ک_R[pDr-@M*هte;gٯͅHw%ٕy]ܡLxu)^j4 7InPҳ4E瓣zMAI|o{UC:+b>㥽x\Q}[~Tv=qK'1ȻNq\R"B\']lesHGF_.H^9qnP[:Hb͑c4&FqB ǎp' R~cZ%6 6l{CkksN'bumG‰4?eW?Ȑ)m`$X•PQRq8_{?]յ2_yKɓ5/IJh!+t:t=Äi FtSZL<݂gڡC62T4 ՇUC`>aTٕnFogW5̞a%>\tWy-SS ,q"fbY7l!V.%l3W>,]R  HQ?) ~]WOׂ3)6k cz5M36+>.QߪK2\ފ|/[bGRNe1Z0`t@Bn2am܈teGlY^T蔲AAlpw=e52ñM1Iz/Ε'ƹcQz~0coK`4L[TE ɒ< [p*b ]%Wvai M}_v-*DfwM C L]*ﲃ,a.^qDy 4#>X@q%=<<0SaOe]Y&:cA]z.Cl >#Qz^uvj\C ySNWկuASJt^N02Zu"b' 2P_e5BX!MpBQJ J-[*C;lb ʷ*4(t< ̃kۡaA]˕cvs"j<< vjH8m(?W?PKWG1k~*QSnuvola/128x128/apps/clock.pngUT eAPQux uwX??٢O)pkp̦6\\VEs$)%M(rJsdjpo~\ss GީȭWgܟ| e-&?[qờÏGxd/_ŽAG|=}ν{m"{D& HͳS|`T@ "$8(bt3Xz T d&ήm6MbaQ7 }8B0$@OBK3P1OȗM5Oe})6i'(o\6x֭#8Ô&JHB&"㠎.mexbKAzIg$𣰛z] ˷shhl}>r:݄l26kIC&ʤ |l?{?n67LyJ`*8MUPz^hƝg-ٚ^K/&ܶeKXt~N:nபhA#ZJoȐ;$lV,=w}/ݖ;>O v}\lJaPț ȧ"ifh6#b:n5A+<7 C,#z"vLJe |<2hWtn:)%CءTh){̚tc0ޠ7f6ypv# eeKI]toΊ[`h}>(B>n0濕FhR!| HneaZ;i=I˚t*`"|_*LmA1xr}Q@FʔAM3^Ӹ͡GD0(翼Mtge & B`F lfB~4+JЯѵWTaWl+Ӎ)hb ˰ּA%v% %־UԙR%IT냽O"@ZJOČA*HMLx vi<)RPћr 鑖@BqPC(7%JZkecUte)URf{piR3Ѭ}6q ;vIqzR=ouM[# f9A D|Ɇ_fuemBs *+*J"Py>IeExNRkÌ K 4ЭEȰ: Eup|G^߹|@n+4P<!?/@B[N[NI3LcLC5a7 7'-2^`2ƒN_fb)A*i6gD/Pxl[|]{-ƨP!!_N1-ƤcSx"Bg,aҌX%B9'96"_mpX*Q4TI8]׫1\q6>S>a7b'\)y*C\5"WEUMH]]EslGyic6}Νs.0zA:VHHy72R__iee̊ qv1ve6a#Qeq~9H@}s;iQ9CCߵz+txg'{?Q/QI_#ǩ2Y$@K݉\$G%Zibf0KT҄Z۴>tC7xy#f`ށhw2m!vz@Dp $B'gۤðڜ#;n ;LoBV (>P,̕' 'P66e{E5}2DPNTLc3I );:Q&s6PזѧY% K0sy!ЍMsբx'1.ldTZ_N1l|Wsb7zKڍ]ר֎r{ru<59Zܑ^f}/HH<ǔr`}qrrX{77T?d7FJBH'DByؤMw2^77I{|*4(>m,L5eq&nr2r+뛈%)!]!oQӊՒJ ?(uk'^KS{PE=o|KԳ@Ρ AeZ u eusq_w. u=)ZNc!U,\[? t8f{fd3{ݣtn`hh>~P,ڠT$]C7R"Ğ \it> "l\,̽RHJS1{/R~l^D{,B ,bA|]W,Hx]PCWcU;Ii$R@:O ȏ׃ C.2^p.qb]9wDW杙 I| z] YLWyZ]Dui&Rߓu~%7g} : y`|C*xڮ)5v;q~A cJ"Qy$M؋Ak/.0}sZёF5}Rۃ?ef4Νsм؞mpMm=,k($Z 4NG)S\0EMx %#t]3y4#CYݖwR>>s#ȹkW\dSldyh,'jkM0q|jUx@ރq\kJ_92lpI+dVj62c+sd(iD;6ڽA5qUD;K rՌh"Wώ2|%|;CiOlST+)3Դwf~e0|}6O5 'ZǢ@XݖZ[q+z*UUm]MC97kLL,XzSgY) rbF3 $O bCZS@D|TvbUzL}..zkRSlu?m//߀u,Dflp {z xubkSZF|sU$XƵB R8\JLپ}{(oU%-7c(,X_>k\2\rx3@pUT=UG;r#Yz, ZO 5-\.!0ҩXK$XH2dա(N.uxޓx$8xі]ES p=F(}~5B2[VΐDd`.eJ*C>Ԭx6P]Kqh0<|%-J/9ZҸ\YL3$T(=b03}#z< (wx$ݻ"zA^t 1_ԁw=ȵ s+%(눭Ubau}Ճq۰SJ3jUnMMyjMƉ.T{ӓQWqc FG8mޒ8f|3i…541ִ/O'YfhllLa=IJcpK?.'e7{JnCte7'' r`^4Sv;G){Oc~;jΌeM}F- .ID7D!³;]|"(C<&9Ģoyew?"7 {N;[sFS׸/kQ ƅv.,oNLUcV7m8k_k?#Rp$ :KnQ#Rg X^ez~DՔFidfAl*fh353Ag+v1bU_˰UUgHe!٢=us#rBr|B L' 'i"@i@oŖ0eWCCA=GU L>h=Ykoo %7)BY ܉ z'blH#d; *$8K 6WNؖ;ڱ)­P Ӊ~rpُiőћ7oz5>s#:!錋"!+z;o_ײ^GX1=v0]źC~pN0귏bH؊Ȍ] `?tXYnd^K,E/*PQ։|=n}R);KѰM iW#&kwM4Ւ2?yM*D-ldnn^щ\$NXRY')]ʬ S7k) T#+@,c" -acs$R/x{d Tsȯܩ>ɟNP* v 1˫4bki]2i]vGt$}; v} diy+;`\qN oٱ0H$&;8T^`*Kvsu{ڼny#S-OSP^v,z)ldوG~,Y)p e%-uBq L_ J4_8RU?Q%6)>'Trj1[ J8ߍCeM^;LsJT/cTS|[ɽBcYib{d$49;4Ֆu}Pl]yh’W+T/6|n]<f(sAdu:+zo%=*;NגƩ첿;("(8}aL( 7~8h5K^{r)A^J{$u C  v su)'lX6sU.r%%C-SGBy1={NmK\ԏӊ>vgIf@d"u)2ˋʏRyVzS5ШO{ u/딝mE#R ͤbN?;$6 ۅtK2` !]q{ūtH)n. }(M !wAB&hfLC~;CNn".UIgw F\lM`13 ,UO ?Q, ~ DIdN]%t{\s4(lO; {h\R@ɇv4DkNq9JBg^ ~h`ګdli0vʊmΊC(n41YR)Q'Æ*77mٽaQNj)U>"-c]]'@ߜU#'"必+[3n <:n$'a?+SS\ǸEbSlؿi@3 ZIhWyQ4g滣GM,RڗH@n]݅o\n9ZY4wo'iㆠS@pc^bCݬqXנv>5@ܾ P( c 6E &P)Q$5&DЋ8:S=Y`o6I{:)8n%rEVToIi FuHˬX#U G1_K,!SzP>qA# ˞M3Hߢ4 {V>FКnnx}}*>\[2RGbo"2)xٳO$\*(uIϷ{B#KDk3`PDry!FݗcGl|ńJ>rPNG#,2j/FSsS ޲ZjdyWʋ!rO[o%RLϑ6Ph s:=[],U.#|7 JCOyو WGݕ{pqO9! yt᪁ùޢ&/>^o8HEklހ [ܞ)s>G6ĕz<1f tcxZ nChJek ئ CCIAIEk"Tỗ=`9?~3U|$wipvV?<aefPW꧔ 54tl .:&E g_2'Tm&J17°J٣{ %DOYl } ɓ`Tf=1q] .個o0#[ْ J-V~Jmz33`Z]k述ˡIB<3IC:!8$NQ *,'O=GjYn,XBaE_MQ3vurܾKEU꾟>2rǹH2RZڄ]hcojtQ߆*\ wXV&l9k2e0$MBWlGa`AC p9|b?yae.\q2ֽT$+F{-1zM].H,YH9) '-8em@ f9;?z$ntø?r  wA=kW2{CO%!~r]OGࠎZw"{}~@.1 IIcՒ.<׭$2eJSܾ8dS~MC2r:g#=!mEKQڥM}_}cY"4uU%McARp$v3y>hAoIq0cś}¹Ox4cg_ YI1p2GF vuuArV`&s.e287ZFr}2A;ͅ]tK !-< *teN#jm[Jق Sfpbzk"R>~yσ~8]iX OaZW;ϳ.$XYn07&So qalq֑ Ul4cXL zwsQD=>H,[g5!s0z*2R[>R9뻉[l[Pz2U(&);wk?ALth6O*C99'ƒio(V0J{@Y@HNZ=d?#sQH޳x-Kȷ\+'3>jJ^fc!O@{$WC矚'85YʱD#T)n㔠'bgS$2rː.$푕e;E:A+"nDtrș3;@_7 ',#ʇ7U( z+㞤COK3ũk y~ ĹP2 ˛B~ ކКw2#}j\>^ Lj<+#9bB z(>~ޢI"_$tv2*)1Eu OCS/ν6Îwqb/_;R@]ϒ|o`+EUU8Mɫ8 ||Vp5G{229jP"G$\nom<<)NCf  xJ C9ȼ='+%V8bT`WXUG9Pl޴{,S}SթDSe+Vm6*CA. +T%:n6P%|[qZNWWABj >81P a ͼ]&CvMFRMX8;vXR䴲4M*XF jgNX.r|WNķjYJt˴KQ"+>ZffmeOKj4[AH1 6l N\Z(o)\@УOu#ad\7:;T ^@tuەf -WE-M]R#6 TTn]zkd''"C@0%I3".BHc]y7524S %ݣ"e*^G\lmN$ڪ$5#e89f@m0 ;=oܜF9 MoK}=43Jʲ`4à(VP5&.B !d{Gи2sDSTĢ4_n$>s?p>| k~ƹ #%;ҎPנC:tźc+^Ō>0*tM,YlfqҜqd:] XШ4`|d76#s[z`F[ g'>OC HQv\*hxsϷeԫYXX.P[$aǬњ #8J_6LB66HM-!n8aMiT~, Ļ xXzrD gWˑv +n!V?"xWa.#o"ii|ojc[ʞ~ v Գ0,}%RLLL>bHu8Tk27R'9C1X ǐÊݰ\P3&"g^ppӐ#;^򶂹db3'|HާpJ"i`mMOo" @95 >6I.{1Vql455p5'%8A@@HEEskݴ]38*P"ؠD>=<}M붷 =~.]`-c2 =JөdOs6%;9|t]2&:y \dWmء =ȴ"Çy+6 Jŗ!_S3 9 1vl7ȟW@\M"x.݄w3i ))f슭W"Zb%__*1xwի0!KhbNy20/Tz Zԇu`EyϟՐ׈B"9są:B/deeǨvsh&D˾ ь_TNbVF## Uke|2(h%-sSvbc-8VAgBm3e70+9+~K=!Wnh-+.}G"o]o =|Ϡ:w^!_/[IPK_d)'M$۲(0tO}WP"u ?p/T hR@H?sIBn欘Ț.= { жE҄;~8 "x`d.582~G_w\|WVUtU-R xv ޗ!\' |vCI5|رI>5rNm\[_v9t L"ߛZ>]V KIOP"_Jhfr Ⲙ۾""7YZ5ر>p^EZa+qԀcCCCpRvcAuu/~}{aA {n܄ЂBc9Fk}Õ gd'bb|xZ$+z=d::7oؘCLtZpOt5Xy8n99ַofB m9p{e&TKS]xD:8xy?sB4A)\]sS2h<(z/E'+1BpAE^*.`d4 Ln Db嬣_|aSXߟF=[~ڠ.UCG )sR%8> _&fzE=11($oh|d9,# f7g9* &i`Zs2l>#FlhlRdϹ?&s')~gOB Ŷ(Ns#vuL0du{k8>v`JBGbGQGAK/vO:z >(6zn \ n呰`̖7T5#0:&$` =_.`&V؈]ZxAA|,",m?ImkL]$6ivڃdQF2~ź,;~VSE]?WbC aKӶ s2eEh`|}-L9.D3|o8\0Ë{ I,gd7*|H9Qe-')6pB)ٍxBvex71[NOu#d Z֖Xp=gw#zYʮU>!)%,--M;w4p\λD<.DPekY׏eȧ ,ei'rx}R!xȾ|M"=5Ev}3n .`*#m#ߞ^V?!;Ly`Ԍ۹$!zț{,?sblc(2E(y cvXVŬ\)یEL[ɪ \i,ZqVtU*]W1G}xe璖!j.;]Ɗ#:[-] ` ,NzSƦ[y)Lޔ}1NyҷHCdh}U_znJ6Ou$veeْ˯ )@Buk+&*jYw)ʼ}s$m˗BNmŭB)7믤#E? |Tsw7տB# /O͏尋<{W# WȭPÏ[a.o/e7$W#+^o̿3j|ڸL,T#%`ךuzJv:qQ~iΥ_}/vjMG29-jkL>S_MъjZ?%6f\,HVKLз!{,6!`Ԩ&knWoC1f}ǥ_""&@I0![!)G2::l1SW;]6?Tc{v0_&2aQXE--74+AB g. 8B#!B+͹")PKwmPa+BlkC5CdfɕWb 77l2%-jUTQ٢'^gR#0VLi 6h𽑂' >4NBp+`'qoSA"k/ShxkNHߴBU8>KHI<@_|M%z2rhyXBBrN/^?SZ By;{VI}"=|a 3neMBorxT.ٿ Q΋̦/ "ec ل.:<``X${{G@0dDnR&-h(!Ĩ_vקK4 O?&A$ƍ/95ߜEu?:s]n 1X l_>jPR ףaF_#xA=nȈf.zU;+,)!%懟[ͨe<{#NȀG"u,s甹/2]]Е>*6n*V,/NɻCBPQv65BvByo]s,[wM;aiID^>]@R1mT69RFwXX:pnC<-Eȴa-!3ׯ;miqRR6j'9譨ta,BBQ'vpxp7qGAgΡ^])'ϊ t^?-)~*$e}Rcg ͛?8s|xZHlbɻ4'B!-+FuA}ӣ{yFBO0gϋ%گ mb ۥqAj:lj%ERńGTuOt Է1e:MhL .eô1"6z ϐB[?P;I-Jwc‰왈={DOdh,|`']$$y.?aխB5ȗ=[jI%v})fQt)~6s0DWVd^H/`tєj )|CZ5FPp^xGgz 综,8[1Qf@ %/Ym.24ӄS! ,|{<& 7w8~i&Dt3F=UT;` "u`߹asS}`0Q%L"ꭨM;0aa?sċU/KoaeA(|c=!$nv;%wEgԃ1g3,ٰAngnaDu=/2L*!j5MiUiOd/؜mU%~t_CHdC\V_g嗰@YQC R4bVz_uXM}F"nm1 ~-]?_R KVA1k%l|@_IHҿU߮Ǿ% ,;K ɒ)(yηf  6 #C^/MNڴ5k:*p~)ڋTx7sm pgNkGT Q%MXGߌ 0Ug.*D[,tb>=}/!Alh <nX{oz^j6$ղA0lxԃ9Yݨ78C|v si0uYr7F8*pl+1 m8]2K&9.HȄTp؀݄|Y~iyM0Q5X3Azt'ʂ>~_~$elr*⛘?ךE bU$sY+LN n3Q3;Ū䋇ONnmX"y~+&v. .NݿS[*aSXp$#&'">Pކo'*s%N)2 3z Ra9aR- _I{Gӟ^44G!gs OޮX6UgNȮ;'Ȝjo=x+J~ S@/71jnVdNrz|c1wr9/l!jqg\7l`_r8mȰd'F4bb "4\ClEfeČ|Dm LQ|8Le/9M8ENF!ܦ #Bm4<_.JkϭHa ssxo 1kS6v_wA}:`G>ṮBiܭ T2aiCrj^oUYF[}IJ9(f1%[ؗVU,d2'Zt8ԡOYi۱~PװVpU s7qn[}V޹~yؼI kxȏ Y_ K@/_T&i.gjilT0Odqu/RtÊv,Ihl70{ xVh$DPN ӕ ̈poO㮊ntԳLq wcS1W.g8s=3mk,LmmV66x E)Mc9^ xMoJ/֘6?@8hPqYmGv*FMصW]X%ؕ63e/xyn.`̰NDa@0%6V~U=Wc@2B&\wbz.4S'JB߼ux,拕:9O0Pt k0 ȷ@HA7 h]:ݳ5gw) ZDf [s1Ѡ̩}3]i_J‹VTDKIbk>*;'Z9bRO"0=*(GGJڱ y| 5t(B+AG+k;;`_lȉ Ƀ#N6)KWz3 20xH1>]m8UTЛ]}WDyw 0miw峏Azd%wcpq>rC#{Tvqb,6dUma3,d6L!:,/R{df}@卯h~~c_h{Q>BEa?`GIb-QdOX3S_S.Z x{'u&Oz+3S/n-+sFqEo_LEGtXgqw77WQWUwܝ/Z" K-g5Z<rgoom܄[=HxAj4!r=`qЭ8'۳3T'嫾?:u|M^=^lSP_ଁ>džXrL.haٷEVB G3"WdB Im|Jߞn*ݻщB J>4Uω};oE忍k_ mx&`4iI%!LvZ@0r;6ͦEx2(O8"q6'˱-h9#nU9cŇ&Uq˦]a×Ԏ}}Y'ۄSX p%a{SUSB7N#jesvz|YܩPBϻҴƍŷLq2|d _ Ϩ%xjlO$fo[efTpa!mmX8 y_d#OV@ը<+L'jM0p9q[ބ DP~b|Ueŗh*I"2mҰ\?{spx5xb%a1L~RjT!nrPXcwS02alL"Ԙ/uCFҥ;թ\mޠ-7nT+e= 5&,fbR)]amlp;~&LicgwD(kRhyC>$*94h b7%)('^޺֑ }Q3o;AT4jY5nOθK0k&p|V۳igVvMI|l 3IuFN(mDPOdHMMHg\k9/=-yfbЃnnGQؙ_>ҟ>y Z@r)[R q?:~AAExQd|~Dÿ'744mL ]\,k`*M З"?֯r2BQ]v@0D3sUa> ye]#b}pp!/)lJ ?F <fP}eTߋU=Y)|;Ɨ=j{.녞KK1Z.4pBG6+|o>gulCC}/"=B/fcj EIÆ7R@6 H ^!**W?pW(/%D=m9sbӗc~3묠 pQƞSR/ c="rwwEB. oDQBR'= .*P(0; c0`5-$/xE ܮs=Nr$1?yYE iD:x3HccnEܥ&@[ ¥iA{탕\Qt84C}88"|9jolQT~פX>׃@6(NW Ӻ[YPf>3#&`N0a*L[U 3 OvA3;ߒfF||Kr:tآM䣵=4572uA,%_犀E"efR˟. `Lj>rT3z}=:<,@{}>Zr8aCP \a8cn0 tئtiQuh"cz>~[ AD (O\|‡CF yR(E!.q&6\=Z>yk38lh1j*:FWIE`9&%cj$NuځvIZ` ffQfH>fz-e%>UKo'QUU&SfK {hu=Bn H`˚CM; |>P࢟D3Q]4%UHISor`w!ۧ֔PKkG1ACnuvola/128x128/apps/colors.pngUT (eAPQux 5{ _]s$AuһG$Bʱm}(oH#~qйa%_ a@@߀+?Z Hc=ǑI }F?vT`K"$({ɧ*yֺ0i غUϜ\8e;L".ϬCo-|7џR ] 4FG^ >OtA+3%o<XiJ. L7Uk\d ŸFInoHxNo;F@DURjsk#Q{lN}<صscϚ Cd}0yIiFJ֝tk~ RSp̕j5]&rIf DWO=9LIȱѝ<|~`}6_wME͏'hP>6_z!_: X :P[b &z݃nC{q,vr;ͅi_!Ȅ~~`[]7r],RnL(0'^.BpqKQ`AA3@6Xco@[U _z_ pJ6{Jƪh`CH)r* xI~5 \<NajTK3 0G9UJ.jAR' B&CoSO/ dɇg$9oOh2Pi"U(ECsNC|toEI-:L[CL`!Jap#]E^Yl~ګJ/'U[hFO SU/~*`0OuFRb?Ʒg%,NǤoz8/CZQ{h$N wUDƗna'DPK#zbI;ftڎvxCv/3M폟>|xݸ@`yHymɠ959;L>%IBE'AnIB *},0fzpW,7#I9ΓcA[uh1y:'vO 7wG>P~kyG9JWiKϷwdBQx:3%!hY29Ere 7G)G%]Gu'muN|+ mDq  ({ygF>U=/Ma0VCD&jHGҹ$l.M HY#!y"PX 1-']~ᰯ`El` (`I3rq,cIJz#]G=/+b. mز Wf7jn?!@Őkp#%ˍu=`ѻ5{9~6Q-"?eB$ d{%.m9ZK46J螛zs 77vJ$]6RUZ:P5RˑH|{ 8QSBd)8,iu`/JTݢ Wu<%%7}6I@r yuHax4V2. iIL5Zbqo=hOT:+wsW=7 ]!$ OB-ϲ3XAР>]1ɇ%EȓHaeCi(xKh>ao&3U3zT6<jJE<]ijI\|<()^v:ߑ$+Ly#=̰OKFA aZEh sX#us:+ \x 'eE՟4C886)DLݻAj}JBDxڢU MUZ~ffiӯ[q;%ZnQv7j!F5G2CTJvc>mx*5AԬ~|ѯ!CMeV^&wR(\ET7B */|ztS%xs>v8>lD l`3bLD8"Se0,6F{ ̜YQ k2Iy$›(uH.03A xTy-M(q%u:DlFğBQ_^a;W:,$W^kG1 vmykyaq#s'@\ D7?[ܙ{]!Yso,- Dnb 5/xcN'ƮvΑ@F`<>SGgF,X=s~x!qm1;#.`0Hh&`@OnFXf_nBWkgymw6(RsֲZ6{CazjHQ;Wf~E65>Qqyva(4b y> ?]%4=LS@p"G; D]AxֆRh07L#;Ч~yۦ2׮`goLejb ;=`тC d-ǧ$ń.F ok:n\FlQ?яMj^(ҙJ- 5q 4)yB8~YfLBO`mY-sՉLB!1,rwʜ`lZ:KJ5mMV."X2a;BHU"Og Sp\*пghq,'l8-.Q>>T%6*1 AHC?ŤbhKO|ENK˒u胃=WMM߲`|* Q@Tp "I±ɰA]C;: [c3ZĀ\fұbWJj@/Eo\|v0S&Th$%!یi h4Z;/}.D"vTdMT`j *ϧ]ʯoT S̷]~A5PysB tطE[CЖ8c6Gr6j?IP'J ^䣍Np)_RK.M^ht\a 2o#ϘR(h IAC*%-X&uXYMzSP[Qǟ|qb)st@^0{z@KMt^7KcSXz֦ÿp;|1f<Ғyݭ٬hB )~z9QQ)~)l!=YnTau#\;*߉X2D&FNΛD }ZeK;oA@_ط(6-o4U(Uq[҇Ƴr=׶;ahbb!z8Pf/HC$H臔LgW@Yͱ=(WRs* е?&q¬ ! Bkk/HBtݽ6a6YA{+;G<&E/ۙ=0C=K)vcʔFVn]6gHup˗E˧NNFlC4 v 6+R-u 9R,h@s@jb53eC2en:5PC>PD )lM}KvEh}!}qFTmʵ PϑDYW8пkؗX<{n:e6f%ey?+" )M]6-cw6k RI-MOST1[91삔:L N|^q ? `UtV31@= vL*AǽTM B>)/P;ѯMK6vJ|E#rZY)Hce LknOxM}Oڎ~?7p`.Ӛ{_o8gs,_Un`: i0J6`D,xv9D&eZ6Zn)Y_q"Ze^M]Z-*@&hҚv,5TxNr6(tJEI+yզ2J/3J6P_^Xڎ_ ]S=\mnױi;3`tdFo(6Cz};*JNbePզNOVŽĴ'A0c}$ѡJ\ yȏhtt {Mɪgu HЋ+@D`L U6 ~$6H3;u9tvqqdej(7q ģY +3)ǻ b1Էi#ᆶ^o a ﱝ%'LfUZj[7H݃s*v-Sr< f bC9 *9:iE}H!ס❿cT'ATGcܤDp!BN̈ ˮ1NBiNw/D#\[S-z}00@3ٌ?VR?z.D91mI5ii8M@h~}/5nPQ$ґf42[{9u vATB/&;O_ Dͭ&V2uǓ F, (em߮Cn0h7gA4%e'[Qli ]{LsWKH9xw$:RK0ih.-iet$xş^+]OeC;ue ѡeVϟRARnc&gq rR`ug9M Gl?@U-GIgJ7,rSRn*TE}h.]֚ިt^M#vշwl]PZc;7 ԗ65R/II<8H); n&2<=_~MXޘ7f*[#{LN(twMZ;}_?;:=M$ ='+!/uHU"'OCSInpq|d+:McNtY/SZ{KG:X;d+#[;LIELnIٝ]ui#J31|v Rz.`zqP5d*7ٓ`ڿmfE~L^,32H]O* {.LhCT,3AbM`G k~FJ/B$ (V,{&j7e/& @Hi^kjnXmvc!265RK` %Y+K.66.7H/))1j9+ r r Q*5hQJ_e;৭#w >$6]NYs`z!Qf]^XHElQvI4ZჃr;΍)S RI!<釓v{Y_ 6u&,p!k{؃0BAJȶ9%6ϺWT\yjwh$e,يl?\_ROWf/E8bN)boF#V ФZQ z; yt9Z#͎%K_3~[ 9p]66oLEZś/QܖQ^k8j3zqFonםoasu=1wF7=1Th`abFKl0E  w5̬BgmGL(36ٚā綎Q.#-E;a7&R- -ฮj9qQPV-ŞPMj6 ?Ɔs$;ի 鿊7F#?e=m!<>l~`Wpָ^)=vI;ΰ!W*< v͖~YD~)U1YH&B Pa$JvIR3^x*K;$U.c||XII|F!X8 F%[֙(vMm(>GK!p,t ~\gffx*|)Tla[BN\_ʫ++B5;wUÚOA̖v @lRdg~L=X뵞o@]t)Q ArϪ@7" =h|j\oiPfz*xlp9Slm,fzh 5̒ʮ=k 7|=)ΡVoU;lNkn%yQk| M|aK>#7-\h(`x(?-saΠSY Sl M fvZUeԊxlIA-|MҠEpNv!15X4HsN8=8_KMPv6C_cLWxI\}rgkֻ_AhYWGηqs:!Oa.m7)^guJTпOvAgyąyHJn Ե봤VU?`&'M-s JE rhNrdB8Pžj_lnTdh]AzKQF`.u9uW~ۅEܾ ` `ab3uǿ*@ju44TFmd -䡄FfğZq &72v(?$8/s&(p]*nĬQjXB(= tgN;[K7@W6Я "^RвQ&KxChy;k<]_G*;K)Mju v(Qd뤌 x(ySJ;v+ɡiН^ / bl¶|C{~; aRJO^AB ˆCْ( ~uDu'ٌ| .+B3b ~Y`=D!5DE6SV+,IaO?Ds7H5=ͅ4;|\PKi랺Q@Cͳ9BڴNςca6ĊX& b'va [sõhO| o"N5Q`9:*uHb12֤Y[}hXP' {7 PFFI\lVYq:}5󷇬X()  &/qg>ټ>%`jچPeV&H~7 NV @?5G*nqx2|\y Jd-)YXr3E}7TR$䡠YlttHJ^ى>=]6IoqEI1'HG4@N?+9F JMϸL<׺. ?9G6)Wh{ ph<.!۹:W&S [4BD@I"2:Q^JoZo+ ڈ _lv(E Țq Aق2&Fg M*t=E_7,(h|daWcH/f_F'('8ڤ1NxC9S+6X)\&5E[Mpv/~59ch>ohhhln\o(5iP?Jت%2iRx"î^/:2^+$/} 54s@.CW6b=Stؽ"z̆2ѥR~=q"F{zs4m K e'}$RQV ?3xG>Y론 *sեջ-~E(K= 57+:.e.4_ 6ٻ΂}pI-~L9[XPp [_y#^)CIO{$H::ꨉGG([ʎN+1// ?R^Nc`8B +3r>LF`@jҼqo<8H5 ?K*%z"QXË8=JMJj U:s&omQ>+JNwUx"8I 6F<9G̈EzAݥAO9->le #R`#xC#񹌨*Nǖ%|?ׯ1oxm O eSnC$lszC *DCVƤL1;+#dǦ:zhr26a׮& Ķ'*$k 8aR N`Wep60Sq5! gY :0ׅ\ZøLFth9E: ql~̌"h;t`ҋNlwL(uC[GƗ Ȑ@pS )xW}AdD|yњs> tΌS}Yrd!>cMMlƫil;E_sFUԌ^H VEnH+MΡd忝j;ő 1QFWFXA<·fnmVXB-,Mvy[tm _S&V|֜,|;sì r=ERhgc8@5IL8,ģSa Ѷi_g!-"#dSHE$t,r~$4մ9 Ӳ@Z+&,iq$\V5s<:fvwgPz^BzTcAݭ>ujA7!t XUx`Wi^szGi5{Iza3>$8:*%xRT}>y: /\=/Z} {*r¾uU9r+`X!(bq}nwg˘jw6}u3;dM3 B{le3!u򵮨튐}r'Ov]S+;#*j0p p7s6i2Żp$9jD'AOYO:؈в ngFZx(4Tɝ~ 6"#s =f9& W N5}䴚iM]͹[E!QV%EP*DUQcc>*~ξaY9p3H!LFIŻiō@BIq~oH Y99V! 8۹ng=G&ҵ9_ߔX^\7_%f*Ӻ`'lh+1K_]hs#9aJnTWĝ@nKꆶ |&5#7_Zd\@8+qI')iCP w}rl,D ĨYp&e8& _"yedb㦱z} ב.u@k-^}I/ N2mY=Ag}rOP63L[D(f:ڱ*_2L?"19͸7$By#H{m__-+F/K` 鳻"@':Pm&l7hQp =, bs_TnI\al?tbku+o/K>eԖx$FkDvHxBA]>g$eBg]xdUÊ4_E`N߽ }ϐuѼY ⢅)K왞#7^gШrMF)̲VV0hY6BzK6 >d,j RA\ud[͋ɡ!w$TF=V5bҽF>5j]pnD*vpF{7>S>gmT&R Hnb0y͏Q o(-Lhp?ּ?Y_U]lhbks$j/$_3>P/k@-6`$nݍ9q/[RrMKzaXН]@ۥqլ j"]ϑ]_mD_`h:ߞ<-s=mnu)8{V;ih!nfZWֻ1k!䦨U&}ʣ4ڛ #ؗƮ % ;K[0dX3ɗ 1^fTB-c pٶan u0*2:6@^b .}|~Ӊ-hʸ\?rє' d>L(I8V>ܸ{=WwބkJ AH5 K/cF!9, `.cyubM4X9< eoma746}a%=-{LJKALElJW "HKqsEc E1."@w^wn.fT7NO'ԅ@R::I]B[Cܑcs82De+@&: #Z+S8&wnfhӋͫsڢXVD"DgA9;>lf423+K*Yףvd2b O~xLK/؊{o%LH|g,3 0J/(=t}e& OIh}eiō^!M6FІiͷ>:ue1){O j11˓Ҭ ϲiӫs>2qw iDeԜO])dO8]j.8GI^>)q[]`zz@>J9qG@X 0Z0K1w,/}(0g)ޛ/e~O[̝I5F;;8rcؕ7oWf Bn-lXUPj=kN7 gV~86iuՁiMfX.^0r56Jt%PnDg{dBKSIV!zLm JHk'D>+h6W.~f6!#LZB5[E8[g),w ߴ{YVO3w.r#槖U̺4R=W» ]JGTw\]Ϝ|⮓S<)j]W2oH1kK",,/bVg"^pnA{R}"lr,U1(mR-"Kmd ;rcGK̼%<o59el2ʔ(Ӛh?ܴoy?$Gτwg̺jhP1F ?ad+wif|\./Nj!A%[~!_}k[yo36AMjVhl<"Ob1bC*N$ pg(a듽@tV.,!0!lǁU~~ '` qiDuoߣP3jږ_T0 .#&*#"h sH\PKo;'gH$1GΜ:|0* v;X?,}ufΙta7L6s o"ܜLG!582^)d>&x.!._fQf&/0^E9"]yR"-TU[ipV$u9޹3 t4Z[z,$-;ggcD5vGqu_44$.LPZuBP~pFʿ 6AN?}vF"!\[/g6 (vu%8n8p#\ˤx{zqB~\J6LXkˮY`nr_99 Ї` $/sn+w)51Qx96:6msnƆ0 X)`*>SBn7eBY4t.fpb84] EK)}c~2[jPKkG1/#ݺ23nuvola/128x128/apps/cookie.pngUT (eAPQux -[XR Q:IMEM2E242mˑeV&=s)MmJUΦB 5=|߹]y2w8; (+ާEv@QvSF.eD{vg (}_`DG{7_1xfW^GG݀  dcȧ(84f7!d(ק+WA'JA$;9ɵjfV+G"95N[0m>EB.^UٿPQoF VI\9˿OfTeLa0Nqp R}YQUm4cFm8gᶧ`d 72l;`T8((!0,?!?gdθoxAU¯o|ϪHY =eVx6l튢6pYޔxtyyk~l5@c $H1Wo#Mƍ\V]-vc#K .4\=Y-)PH Qg¶!#)av+32Sj-λ,pd\kvG~ PX6O }G }5gʫ0'[ƿJ}DRbmGODPQ!+}SGfd b`:MQtt(p(4D}3_f/N\>5H11BKaCS 0r[^h/94W&@w[Y*iI  ٴ/brNc,#AnH/% 3G?T`F oq3{x~r<،(ek!>3Wjdc,"Wh3=fiWōCCJ+tԼ x i2lSKabJYI܂*o<Ɂo6` p1 1m _ D"W߾ bB~귳q(Ip)ohry~5\ּS}|}ܰ [I474oA_E&{V!Og s2ɺ(GP֛ BRԇ'11>tgSe"Jx/r!G@RRꇼ9d=jxoDŒ M(0V;H$?@ Am4@%JybDe3 Giժ|E\hW.@fIFRR%s[A8IW29 бC1I$Umq-Xi1P0Hw o_$f͉qI#<5hYL5zmK1c( =joa]d`ȺAޒ%ҙQ@K?Q#=Wj;"d: %}LNkV5 '9`^Gf(trB" .sYՍ\`+˛+VY"<ߏż.7%.yjE9 #;U61މ yA{8&?RƁ&ťɹ-L~.-t9`οW cS$O9OV]T-^R|:%I6 Zh[O9BaaRQـ:T9 wEn@Y[6da֢yo {zR|Hbn=-B%U1h IK &ARW V u dͬyHo%v#q8r'<۱)=؝8_@:#3vOӀ$# ӨbdTm585\.IYd&L8"œm%mE!Ofa.ymj&l-!4,jhEy=ٖ2G,q H7 XQp |% _MaZ΃$ZH>< PR2)-@eo|h$♎5e͎ofRp㡌{xi@p@O? $jy/|amniL?_*h mB㭚5Ki-hZ; rD՛7UBN{w#,|*ۼU?+W-Xyx$QPuYbY/@$ĦJߝ3·qv,cG^WI}m3sEIm8r'jyEM^]ϧ*<6>+hgNN ~&L#/'ir^o\o(|!ă.c>bhb0QLkZ[i!**+ _QXU>zXbE ,))[uRޚ3[B^n:qdvs7~J1Dv03_T=8ùpTw gX̸QlI}-kPa^vS6|'eęs?}hH9>J斣ʻQ5Q!8S}~7%(V;@i0"#A^*wAxd:7^W\^Yt>o FcO‹sm`f/j) ^Kb&{e߶r 5Kw&=H1(u%ֆ>a;fHѱ]e llƍsh](uuT2!g?{΁$rb61ڐjTJwHa$X&nF˴ oH^r/K[y辶1^.#%~34:қțv`f+' {X)@Y`3hR4 64^;|c#L}?:[EWㆮ} R{6ÐK>`ǹH-{qq߆&ג(LE쒮 jȇY!>\ ~wt*5wޙʆ=|%.n|mAS/8e$M9 QW1"J~\|O8' r5% ۖ?ZjvG}A4huA9Z*D;w=Y""Ŋ2yo#Ll)X 5if;XiXžWʷ6XkNK*G@w}7`6,bϰ`Ī%Vbؗޙ6r{G Cy(T%}$6ΐs5Ss7ŕԬ]OxVle{?-*t_ A7х ~bxyd)j}pALֹwhO5?!|-9sNJ4JѰ5 w;$b<ɩQQol`ʭV*@ZqX?V<O/Qe`5 BdvGgwQ?ӝNZ.]& .j:ڄg\i|&B[.o$,#j@ d>y+010x|·2pãNsZ\۫aCrsݎ$=X§AZGu?:V-6"GT"%ksvBy}H.qx8 ^TH7HqәyJa Kg ?n|bE(Z2 )l T-L$qm>1( G%roBB/QciyK ~' z;OD&Ģ3]/O%}ܯs4ޖ(-qp Nx-ahZBپ=qmP!c!h4K@›W<o%R lld> +R\> zUؑ۰#h4?oœxɭZ0@ ֶ,l#Sel]AV搬&zF2c ''F<{w)<_9z7·Cc.eKPLLΒdp=b3<$վWroIIɪI|W<).yJIV]"XT2n ~[B`nPhHP%Gfom\o p{bg( F_*yҌ>X5lA1"ӢcrA̅ɧM$g#YvTu-[OVff炳~|JR$t$!KfiiIL,k6/$yHns}·ڙ¿˫JLK]xg8mn[Es+ [?qHY;FuZ.e6 |VpHת 14[ @Wok |͊ 79 ثF`8$h3BIo(gcr7&nf~H}w3mY~ +mߋWaK3=d`8cYi\jSՂ}p8~Dgo:i^EY(=8޻jzFgh{J0{\As ,ϟh`İasFҊBLMbca@WiTY =ejZLI? Ǟ}nb4 瑱ţ%M[ _qaxm<ʤԙ&(泐?MTn,fPc!rC/RnpB}7&(jF1]gKR=$I))_tz͗-I€K\Iو:>uՙ;ܺ3=V-]Z,rW?St5*n}zKf[9zOx*QV_ 0[(vEed&zMr+pǵ['Ք 5yWUp^AQaMĦyw2x^!UE]07zƿ"*pP22*GgB$**1~n䱨k.>G b' >39޴tSU_ͦU@k"]5b S$Qﱅw$V*Զ"͕v=OHn&>™#!|3omHZ Xu*ۼuMioj!]0%8 8 ~ֽS8&"X:-8V7=s67t$=UOBPDUL7PsI0‡y58<NuK)~ǭ/#?В:2˓15W/%ZQ;0MZ> buZxh&lD,L$;ߌ3@jdnA8];zֻ29x^Lƍ܍\?`]D kn >T,`n%Vl ^D?DG:.WX ~};)Bnw7T~W8A w}z~ # @NSjJ>H4.x= MoE YQ5I )o _&ҶV\/u)UK|D/^#S92eh$Z:s.$\:άuhkcy˾fCz9>sq>ѐ] ,dArEHlڃxw}ύŋ'љ٦AΘo+sU۷mj>/'c,yFe*⪓!r|GX[_Lwyc~y:rBiv@GZw;om= ֩ā}T=))5BV9R=Ѡ{6@JAc}>_Qز@Xv5@۰w{D<Ɣ\qL{y_v#}%yQ1At)!ڨC vG`oľ>}я?9f2+a[HL[Ϊ:lq-3G>h-gkdo&:EKoz=k⯽oߚ^1|:` 3D ,2 ]!9S)ě\C4d~E *h.Dlfl䷽OI7)Lݦ&eB0t[۩V zdrgeGR _=#Hlnr=b*Pޏ#~exġOS耯Q;F>N7GZVc%{M!"u򕜞p3#♤} 󌛙nǟe< ws\>_V@9Mɗ`x:{ȶ`_V@iy |`wgҩ-VV>gc=2b?l%^"0rwj/ilzx K)cmj2*Z'G; Jk ;SWŐ:CC9/d9U"m$W佟MY,L`%!ћ. {&$" zOTd\IVa<[XN{fVJ#_JڂQ!PX(Fؿ&Ȇ@9=8? |ܰ*UŃD3zae)ܢZ]LTMW߸exg|r-9$Ca F1oVw_B`rr+km濁jk&'4FOj]s2FOx1i V<H{:j۹!7k ZEΊt3Ѭ-OhEXe9^}HxKc=j4,o`hfj|Ykɖ~Rd;04測p^glop^edj`Y>$Kr<)8wʡ'ܣyE0KJqܒ%z53`Sn.@-< KYɶ :>G>tXh.|1wj3(YOSDӛ2(Wjo׫zrUK$kP>p ,;z/_gçW FdwMt|Q_%G+HfrGƶ x_PQV&#wzP@8ľw]Db,Lm uiH0ɇnoǨw!%nFR o?.sɺWܠT-&៱#]रe5rx*hvg c;̄ڽEd;وQZ=Tq%ޡ΅5ށjU\.< yē֞x[;?H,V9rdZ2mцI %*%?gP=8mI駒`N.nnKXZ5X?&ZL9}l?w{a"Blc|־4WNkR&suh35(ng-!&8__=>cΪڊ\dؒV}b_"`j`ǖc0CrFBGMe8e"<>5҆txpKSv2,ʣ=x%BOnȣ@Lm囥KuC:Ufqlrk+ݍE,̭&ogI=64ۀ~RVkb{ ɘ-_. jq*BQ?mTPd avםǾm\q嵭qM8;=8)6"(H ]:Y}QZpjq9Z~r;x_r% jdTi8VxبW-&SnF)p!:%55$ 9'IV>A5rncc4}9>6n\}K-} H sR%hռ4%¸.SXr8"a5' |:icNjUoOu$vM ;oX!0N]bwTCmԵZ}41XA Vy^! F_4` C?a{g5x+Q-{&~d))6ӗ4 y+?+a(2.A s6< 1( HSjwVuSϒc(rQϻv;xZ= NokX@m?aq8~J~^":Z?wnJ@ffV'.;sg'TSD'p*xaa䨙\L~) g:RGo&I Q[ qN-n,zPٶM÷nj/xj"]R;Ē2P ŐwݡRJΝg:'ȝHGudi6]uE65_'{>C_礁W4}/XZOK)Ơ1\7uUc:nwZ9Ȯ]>D=;PgdGe&É諶n3T[Iw\upyuV϶we@(n*n ;ҌX?C6WrYҨ0WA?<-e& 36 p(4֬cn7N%rhSr/Hod@e47iQ:~t]NMe;f rb#GkVjxuElU =[&OxQVAy|}*AmsÚDxJ:N7~y\KIw- | F,"?aY~c0/iIִH}>o邸7>%0!H*y@چJ&\V MA.p}8 }YTI_={u˹as·A As b};$Xc!I%6.*e(Bs'R֓R hLD3$| B|ۼt ծJƥ={B/Ev?UU旆O]ඈx'y Agҕ&DjEZ]>n~ [mI١ceIݬw6Șh`7l{>)M ʔ ᮝLn iux|--MzESҘEAD 0(,,.] ˮ*!9΄vnӵ.6k`Ii\[Y]]~]f+sPj4׺loދ^ѲX, >aEuOHuv;tnz?=ˋ671?C[(mĻ②8~yĨP "'P׏h[.boݯ|<}'bM+PYwkkƌ]UJeț_SOxf+0֝JPfV@X)F2%~`QQXQJu= Nu9u Ne"]%4kƚҘ׿X-i(>4,s #j;:>JPKVG1~uG _!nuvola/128x128/apps/core.pngUT eAPQux ezy\L=T̴L'aZTL%6" Ӧh%BB O C3ͨ, N4m3k>sqUꪺޞGU_(0:& Nߔq+6E ̐ȠP}aCCE? ]ml'ss‡!<4y/;뀩>@K9HJ򴗖| p ^]윜hbt4B$!HT &Е3ݠW{yؤe L .bl% l ިObnûEFBd}bp'J(^ޏs,g∴`I{W(E/*\S5bmiBT=MDL' ]=r7!ts߲fq,v! ۞tD}-4eKD^&<لӴvȘmJKhm(@6H{!A6?T|X\a73Z,I |kq&H guFϾԲc'ْd|x˒'T>k&D^,c2[M:aY6mc1Uu)Z-;gIMBǹ.3{aB|f+6U ]莝sM?moj%" 5۵4ܥu)vW5|=TSLO֩8A WyZՀAb >ٲ1#Nf {7˿{~Zt*cUV?$MFTpFZG'r'X:3&z\M^ccZlOFm7d#BGQ-O'Q3ΊIHiE!;`-RBx.aҧ0K8 G ̨Zco!-8uQ'KF:'a5'd^0AkgO@C @~o|.dP巏JF+gc" b;( QFm0D2FLx)U [rB^`Zfٺ˄gOy*\ d9}}*gȁԅiK4mN Yr1?BNA?#b{lx/ U;ͰqpJAT9}8Ъ' ġL#-4^kGxޛZ]Tư $סw;UϕϦy͠ ~h}E8+uօ:8T~%k::dn-&ς+;מ& Gx {s-.*1t!yWad&ź; [S}͔kcI[_r |)E*Os&Ʒq/]ںBH>E X o-Y<:nue #Nk*6U]Zՠ% G.R< y+9e;NnSv^˥A [F 3/g ) nod/;xE/UYg=~|j"Y>s!}y(A__044D$(܂ɲċ= OՃSSS5I8+?>ӫT&c&[/[m}HXj.hLGh!A=BT΄~)6F/ Tp(oЄkÓ}QÊE(ZZZA !M' {#… =٠Pf#]*2M.=[/v]9[Xk<`,5LZ۽Ҽ;%jȵbTH{MM͌]$^ʣ8"`qp~ i&+RPXkj_[KT%0UИ^^y ŕW_ؕ6;*`c r'O [y KҔ}ڼEUBK[ϟU8 y.rYt s#n;!nP.77f菾gݏ9cCNNS{9:Q_qQQbTz'_qE'Z(^cپpMA@84hwo=Z@oK͚s,D-N{x }1jϿ+l x>у}WRC=۝ `T%M;%5(Fiƴs6d>4ڶmۿg<4Nڤ.m|͍fxZ)4Zhjd`jBD,35g8&Ϟ 꾲;hRy֤-:+VmB -ziNW?hˢzexfӳ24a*6]DK9z+d5CpSshHS𜍘7WPtgRJ3jJ|T@eTc5T+|7I:Њ} vITW.S\8RiDӋ"-$@xG{߳,\uk k,ky7 \X8L{Ao>'I,1aQ!{>%ޠEn [I:Z kA8]ܡx05U{؂t {/7`UDL&:{pKq#Kzn6簒K&Kml-1[E u.Qg hmEeZâ9Ks̏e6Ýv򩽓O!nNJQJKθ33yh% GZ(I;9ڻp}wB?{bA%rNJJ8޵(bEW/ܮGM?O"JX6JùF58$6jr]ܞ)7L~Vc/>yO7|OOaerv@g5>g +{CGkoNJ`xMѨ"SSrB]rҞ7ovi׭x(Nj|NO ~XTj”JTh5#w}9o̓ߦӂe@" F HVm]m[jչ[1m> i/vN-wҁfOs\Q,6u^Fzoyw,}G~M/j-3f\ߕ,FFG٦Ga;η38ȫϻG?m_V :]~YCݽTD|ޗdz({5x`Uʰ+&bj{TzP{H6~  c/ZonPS&2!@|N<@O!-~(F@u\K;.ckݷۓ-b-8f!g*@[*}䇅QtZQnȴB+Pm&MKD?Gs ̀0-4NRث:@vw*lG4|s̙{P<ՌOg0r>QG8BWfukA׻^C̥5> ñbW u?  AP|7 h^+UZrRo;܂Hfy4O]g|;R|M q3=6!~[ Wy^7ݘ=*A7KHpNwlT"[Sk.6ըo`+h߸Jyt(gTR-Xpv3O`>nyfǞTCp $1 KHd8`mG*ð_ږVa.Vqn їJԖʳPz,#v (PfT:^QnZ0 zf}AF e, (q &'Hs?AxG#WQz˾&^3uPYctj`-T.GQOh6%-MD+_(y@'i>`^ױj+Y$l+m~Nb逸`|o%A42P*5=mhAj"֭s"'q0z_<ک_R[pDr-@M*هte;gٯͅHw%ٕy]ܡLxu)^j4 7InPҳ4E瓣zMAI|o{UC:+b>㥽x\Q}[~Tv=qK'1ȻNq\R"B\']lesHGF_.H^9qnP[:Hb͑c4&FqB ǎp' R~cZ%6 6l{CkksN'bumG‰4?eW?Ȑ)m`$X•PQRq8_{?]յ2_yKɓ5/IJh!+t:t=Äi FtSZL<݂gڡC62T4 ՇUC`>aTٕnFogW5̞a%>\tWy-SS ,q"fbY7l!V.%l3W>,]R  HQ?) ~]WOׂ3)6k cz5M36+>.QߪK2\ފ|/[bGRNe1Z0`t@Bn2am܈teGlY^T蔲AAlpw=e52ñM1Iz/Ε'ƹcQz~0coK`4L[TE ɒ< [p*b ]%Wvai M}_v-*DfwM C L]*ﲃ,a.^qDy 4#>X@q%=<<0SaOe]Y&:cA]z.Cl >#Qz^uvj\C ySNWկuASJt^N02Zu"b' 2P_e5BX!MpBQJ J-[*C;lb ʷ*4(t< ̃kۡaA]˕cvs"j<< vjH8m(?W?PKkG113?$Anuvola/128x128/apps/date.pngUT (eAPQux -zTRe8A-[̴,M-- R>YZRYYb8\ -V\ w_y^x@JK+~{Hlאhq7$Ւ$틋LJIq؝C"|#BϜlp˝nD|6Dw)Bwz;౷^=4v%Po$Y?kQ]ÒJ&2y[|ٝ &%~vw62BLuӰV2a38]9tDү,puoIDxOjG"!M='ݹԔ2bѴ>5:?Z06A ftlhRM(f sj)'g$%%q26vfjƳajZEBt44o<[}妝|wr@CuWldzto[ 100{ 0tg[˹HiOIFpSϽ͇I7r%Ьt㵵j.HB+J52;xh_(F̀XBԞ-EA? @.V$_2(-3g?XCY!}!66¨f}`nT_w, I& ۷g"mycsn*UR S(SuBuI$pR֛kZ{kӅˋ/@fs< Dkzd`ݖ] !#TdD[ Y$OkI*qM%2i\`P4?.5٥L}a3hn^93/`n.ep|lBU:bH-#ؒW綑D_E+I37G-d_6Pݽ@˼PEF 5~#)@SVShإ5rPȾdB%ěueY\}`}y|W:e%TA4+[l"|;9(q %|w|`@c[[rM Xj(> #x&#Z](/#3EU^Mwe"8@J2/> :tI<|wޓb ԥyRiux PP,(_Fu|W455uvN#geo>sSI|F!@)k?%)vT }:R6Vmwq~$C_PϢшs3Cb Ip!AMHdG q ZE!\&{u3RvãR^ճXjTb_{|t@*hs q~Lo#vH#/xEJ' n=7Z[2yR?Q;PD@s6.5}.Ȁ?v~bfqBj" v2PM%L?RJowQ{Up##Y#ŌoUgOHABRD_#{##)t2mcE| fZJ(`|w{b 듙F;ׄ*$i[gW*Q"9thO,xK ډ#ܿk3g,#/̈&G[r&`E]UEg D96yT#+@zlAX- am٪c߿;9VrMR䈭 vzh[WTYYHRtt KWnlPAmQEş#\] nA?^Rs}|?O!AZ7=|ʖ43#l!z-/*=DSNɐ&h_){T^Fҡ!i'EID]f^>IG7jA Gw"z|#xk3kZ%-y*DJѿn!n@||JȰJI J;l8k2fJۤTo;^Ļ(8mzJyڼI>`NJKT k]gՓ,~-Aߝ4 6BngI(a|Fmwl)^JxJG;pX 7\ٗr,Դ]R`єTEt?яEJ&B2/\pźRu8nm s6)i Q2ߴ©7z? 2 I`Sߩw޽EY(TI#6Wc[J+ \]ʃUN?^"[3+췈Wa0Hm#z0mW.c_tH1~%Z=*8$`2LUhϪ>"b$>)gXZ;):񤵸J= dm^EwEaDB_B(R@M'GG5a~_v4C@4j\eZrc/s NWcP#So%)Y`%)-cUwDxb2dnd rC2p}yàD| ؜IDzy17ؚYm *[uŏwfeJ%vʨh_J7;*umvFkbR 3~Ym `O4HoSVGIJ/\ݨY[FL-uG/ؙ&AѝBV.oΚޅiT\+o#Y[GGEQ)MN|뛊yeHJYe=H#n>r1!Dč AAAǏN <:یHj"""$WoLpHB~ R9-ۜz*_81Q ,P96G͵.Qm CG3sQO(ooH1/ r5z i5uTSEN-to# 6Jyu F: Cp)HIUKMSE* Um j,ݠDk݆tUrh%V[PvnΉ0A;(gߵo[Ү]j]7$búr/IM=eְNeY<6h/p˭X;`ﲁo>'Q]S\<\㧏2miR|i'-q۝yIG~uu:9"u}yD/? FOu~2ȰUM&nf붶8dyb\={4+K-] L;mϟX8@DsTqroL[Lv6VV\`Iq!{ir~>il$t[1`+cuio s-T!xw#Ή~#dƯ`]vJCҍ5*چ"Vd?O`A X{GJPO_>;k' H%enwAuH"Y9fw W S$s!kȂ[25dD^<}5su|].{poo%Ĺn߹\+_ZU+##D"qyUl3!m|!1 aj~M 'i˷nKOyDz dQ3)8 kt|Mmz,M플2++ > hK qBFF s=??]xJJӗ~WhȨ Xz)YuJ#݌sJiď#!o7-'ίi/H-U3Bhn=g'<)S#?B<)`[I5ʰӧ(ͷve{\oau{nkC$>l VS/ ;?勡+RT)D+UXTf2<З"͙( 1:q$'1ԳI<-OFČJưx⬁`(%E2I>GZ;Z9SͤN&TXO+X{)f H.p/2saCxʬ mh,/G,& yyFm)k,,Btgs a/ӪOǗ`"2>,$Nw]j$P-V>Ekf-͙A䬩|eѓ@<{}F)Mp H)jtr4C{#@tX[Ss~em|OisO%m%is1:jr'!o>,UQ*if>8 ;uᘥ,DlKt,Gc30.' QqMYc{sqú ňQ*S4JMMq;,Π7+GI\髀kzwNJ*/iaō[ե-uZ[a zZQIϴDGT'!)%)٣vtEmNXWz`UkƀNμVkBUwhRO֥tI} ^@E c ER"(F]㟁ߴCɂO:ءc5B_"Cn3 eqԟp|\QgZ$=?xN"|Ծ]-] k} A[ _A!6r͒vs7+Nr+y@tĉ - yv| 6&.*LZ r"@3=kv:bW:!iذ{/ ?_m`p>HBvK7{BbHvQHPyOr )˿$X| (œ$l}"&<[P1M]yPK)|V=P\hJD3iW0ZHgc¬۸#'&,=M`TtxaV-BDnaAK8􁏭פug%r] ANo)Pxd`#_Ty5;&C@ );uCY3-l VpGtHF25#z~,1Ҙ8Ev) J-] eauu-+8H}2`\vq-DG)dw,fF L#Ø Bapzr+0tG3ε(]uAgҒnqv5sd]VJ_5vޓz7Yʕ׉^Aץꫂ;@ XǻgẔ u`GY 9 o--^|xLg%S؄wq[ɓ/Y,ѽcƵx pھUN gՌRJEE-&iR35D\Okl\X _vH4.MӲwL^t¯ذ}tQ]ZLΧsw8/,qeɟ*:M'_-r׽96v7TZEX aUg+?h4%6oBFɢkFGg8CƸPO]b!J( Uhc8>xBǻ|5ceB(a>Q#"]a`F">DC8%.'Jb.hC@ug|Ul_&{L[3@1iSܲu~@t4~r`GhXvd B8W BǓ3k`8ej|M۱7e@iggSEVv|>tR4ra؀h[:M/漻{o )[(g)ӘRxWb<244t}ϳ!5hf@7V1 4_>`rhOm-*y7!h*oߎsЋ)14s>)TnY!^>T,Rnb-,PQ\,ia 0xᆳ*P걃IƳ8VY_ͤEBsM В6Em+/fa bK ;OɛLvfu(9e}H6o2ֹ Y̬ky9B*,'$i:Ț9CltxrNG0Et>t'O㓜X?f] Rezt|\4"{޼Uo W8x:ƓP+ ^XIR-SkϷMq|!Dٙ &M:J!FC2`.BpEXs87I2 ԋ6d>ؠZD,] b5({W(<#{ F*G՟Φ즋,p2HAzgC f0|RK:>FXc ?l}\|XJE1 lH]=R8קǮ)NI  ufUa-7tP:A: ^W袥.&}(_sZ R(FŁdLʴD @u>LV@Y=}u)RRHjjYJ gǰ'|d ̼R|J{DƔ⸠JeMW.fU*ɰO|>ZzF8T<~@=XA]AR9jI26)7c6Cՠ)@m IOY)X7{Ge&aTB0v8fnDVȋr@=;Z9˭#\HW3V-~1q'V[Fk;k{[<@t~5nUDYՓZtL<]v8|]ai` Pؘ#oA}~?gR/?k)^QP> ˨HU.lˑ[Ȇeד7ڸCZ`δnlX觮hKzℓ*BoZy#+7r=Zb&ʚXu#FݏB l(m+h!,Z +k\H'a:[!!trhhQ +8%3{C$Uy$X Vϋ*`0ee6S`T®.5aFNYUuAV,HgWBHZx> 2ڋG݁HVP'^^-~- IGx d;J(7FI9`nᏯ"E^$$WHT @3؊ެ뗲>;Q\X6^=bb|%B)2GGee#zHKp8֝|k&qtZjXRx6r{cP(<1d+&!zD“"s4w?&-G:Wk#!_Y]eQUGUˆt/p |k抾PH-]'J2}{9>$&uY#jN8] N|fqUMF4y24t0C~&_(ʐ p6S຿y֓41TS0CV2;UvB#jB+EF>;<++rz"leG5t3CYE  ;Xeg_Z8/XqMX1uxKkrNr LZoEU"e ,#CĿCK*޺Z) &Ygi9MV48[vU˱1hO:EN Pfn7czjDWY`^:!GBxcfke,(U@ Y{t`(J3!Z8Vr^%jƭ'^X_F@6z#['}J{R; a\;-|1"q&NLx6R\yTķ--IY R*cٍ=m6N2 )_)?N*>]EnQĐa?ɌwF%Q%mScRc]X3; iv?Qw&KWvU"w9D1گheÿD]^M)E*Ss3 az4qYq3a*e-w$;#]ռ'cI4麟I7 ~-m .8v 5iHoރ"e(mt+~j_yy8yuH߼GELڳswd$2޷@hWňW 1"^kHRɐ> KJe ʐ\4v>O6Ȁkm9z c(%qYM N]l},Ugv-o}ש~.uCFZ8It~t 떧A)$ ~ `G^Y?}'X>cFAg[_̪bwm6.PAh/{\6087%{k2ww9ϲj-ih@3.p'E?70IV,POb@ h;#x:6;Ϊga-#5и*V (g"4CE111@wȀrsE [nj+ #7i%_B᧒Yg!ƭ'=Z Wwnϐn]DP?{ۢ{MX 1}2d4 3 S?,tUzJgH檣X}q _T\<q+BȌ5VK9:qG6S?~NOA>3SM=֮+ս+w4ڊ VvA38BˋDǥugn Xn%ݽGOw/:1޲2෧;qމ o53CCo,8?C8Qq,xwYm@n5M"|ĻGP]!451|C=11A`âB=60{:Hŧ>&|\"׋ #.-4D",/}TCBU=m]iO ie9n/aEbb)s/vɁ7Dkݤn̉PxX%JѰf0ȑ;W&1/]Pm -E`V~pl%OXZA27+Үu$:s`˹/T7`I  [AOѱٌ[0"JP5C~{rCC)2D⪷a^N[PڻCl(I)vv۲ܴ,2;%(LK85{cq>][(Q$;.' U\3V+OTh2๟? -Z_'ԨCShNXݺ uj6PJCD' WcdQ+S+’K[4APEzuoKY]S}]d-G#"q$E:c¸UU@HUd&N0J;Ģg\@$7\TTd8*C1a{RēDxŇTf*՜G2 縹F?0|,4ʼnaW \(y@hVL. 2QՀϊ$flʸynx9%Qpi 7asqQji)+U -ȟH̨$#E%HzDCV=Ac Yd>\u!!Kqߨ烷5UJ$^kaB78`RlQiG;cIz贚;"T(K]wjeyV|КJt[+cݷ7}e0%VucZwv&{}δ9rM@ߌeo)c o*߫ { 1H?66}=}Xr+3uҥŤ'kA+'/M}p!EsAUYM4Xdۗ5fE*,挈z9f:Z@f.GEMXν%m=U'^2hνErxJ%P_= k{yvޚddӋyWt^d!4~I8@D~\Q{Q+MMU3r8iDul21[u7h6٦g"z ?qT׃XB7lh@G.۱{K߃}ro,Q:zlWaHEW%'=X-*#T:Q::5sܼ| к;SVLk^Jb40M~fy|HhW 2rVڰG%KZ9l({hw]"hY?>DO,Cy,i.xGr$lzj Ǔ.Qu<[$zbyW `;ҭ4oq_W"GCIqM{\UUeQUطFzȺNцZ)1T"IO:閌<1\ܕݣ,ǾcGNY_&GbƗ#aP[)O' Roŋī]/1F#ת"sR<YڃYxa r$X Ы'Z@ GGk-vy [Ce9!O S}o8,wM"=_ Hƶ>4HcLJm/O$iSoBD Y m h7X]~ dC!˃,oULd^u=MG_ ^Ƌțи)pnEC"P?:@صH|Y >+XMPO@7"MĺHS:?)^S(k:r i+xAMx19G kf+X"0"y^e7HmJ>JH.K>>!֬܆{oݿ:brEsCox4! 1ňw<`h ͣa[[fv#8$A3bDUH3#dN/S>B,4pj^@oe{f¸T-_' [ xNJ D^^~2Ws]5_ww]UhB (RXyh=<ف{Ap)_^|-VFow&, $KQI؜jQR|k1Y^3cw#@bN#3^qq;{=JPKkG1k^{01 nuvola/128x128/apps/designer.pngUT |(eAPQux e{{8ƘiQI̡):ш6+$E':(묣NorڭB֑0Pl[?߿~]s]<<kg4L4ZT5_Q~Kpleȱq%"#-W qpc8Y%#\Ry oKƵ-L6f Qᤷ Rp9""LB%`hȊ6h֨+ZĵkpK[!pWR a3]$9Qwf^~ާPJI>?]l=nDKMq45eUV"e\<&cq"[D\\s^ B.)TC Kh_Vu8΋ ^cYyxd*dmꛌ:2.jW!c3s:*Q+<4Rd΋o]͜_wkkU$,X`OJVMznQH\ֵ4 ؉l piF6oVk;V_|Z7XZ5}0GiDO$mZAua?]F=8gj]yVNm|S<>~ ۼݴ䟆< YЉ}MUBdkR 駯đn4~? ֑ҷHc՚ *N_B*"h/?_թ X-z>44\_YVϡ6Xt.n2uոF]<5·.]H?M(ZpzPW. h4!Ǥw\t왟nq}A]F4iAg ^Tsl:%ELaB޳1J|%-)˜k-%;y* q@pxE&D725}t'|^~OQ$Y93FfYXJC{lJ$=]Heɓ㎮e/S~}O[N 5>* Jy=X,ǒ' U+ U"A7,~+`i?3,TBywdAjN|P]8њWDGE\Kٗ(a, l׭36%e-焩!x)KVѤS0VK4|s 2 s^XSOp[cHH+jDӍWa2ޫ{W9jYۓފ-?>~b)r#wbKcwGJ#( ?GA:/ZZu#.- kA[Gi1Ӯ&5=7'*IoOQLdEAN *t9"^ZޯMdb%M>76T+aey+Ï"MMwL}gض[Z/FĿ=9WNj:",|p K21AzkJjʺ s6~oʗ. lx'%CUV HJE({F_I {y2 r^ї{зZDb";wyKbxteTa"=z5 [ןqMӋt_7$ZG{0MZg' ^$(N^Xt~H6K5+uL!vhւ㆑"qo 11VeA.)1&҂a&J̴]xűBް:~ٜ"t/p(1 qD::V\3?M!0S[X@|Z_-N=|{ 20y8Awv28jY{&V4c oE w @`_ǧCCo FiA}NG `}tzYOq/yՈd8̎r'-Q{L."B`;9<ӏiom]J{=b"^u\DÒv-0'e)"J*7' {uәg[M$>+ϙ;mV?u'8J<ݗz"$Us:T}J[dRq`z#߯I ,ٞz&Y_&&+Sf 1USG(-: 0_#&*ނFјf \3 ]>J'N .BϊLoiRtlOBţ>WY:P/ClZ]wuʄ0{|i)mC#ԥz1UPdݹ̺z՗SE 焂,6\/Ekh@ǜt (Br pW)|>4$Ң}1"/r]Y }8 tI2klbiLNzf僠5TxզtMKzyl>-:oG JLhZbh_R2mѸ@kLZl:f-=W*9Fme‰N#A >t:4RT+JET:Zdt)o'FIbeIQ:$8H][.a}8,X;;$hTB Lſ JazZgBak3(pyZw߽gH5Q3 .b6utBorvAgq%U 1Ir5>i~̎4zP5JJ _,3U 1u+V`,H.E/-:֓.!cF>%P7m O"~D`?KٽWاgOSPdl"T3v(U~HnT$(uzrB3]|z.+Grrȼ{7N`H[k(lM^ 4SR `[E`p0>&Z;VYLk-K|JB@*wdh L-7۰14.|\ʜ #14W36|>\9sy; gC ×{ߧb-&ROFO ])V! ?E^f3v O&|שbXx`C!1-֌5;K-\wU'_Ԭ0g!XPLc ߘ 8;Y:;^KBGCLsO`?؅-pم65c+erE޼}",U$ig7വ#GG*ӐNd2Rf?G](b%٦{ێVVZ'*ݲjUsl zRn;o#S(®v3"OIc+vF T2d[7܂o#J5'H• >gAbST"]>?[Px-BP$%q?{:V̶1x(Vݻ:x٪%2oTV)3>7Tj#,M{I*nDRp9 ,&A X,VJY]l76C;t*yrxbuj/HBJƼ5/ʥmg4c}+SLNX62J`p>g pvW0t-Oج-2f-YǨt, -4vn#rɳӍ YB,pc';_訌>dc[^=]={>qe-~zD8#㲈Ťʒ$ ŔTg_-kO@_X>Px֐ع4&q^eړF˽j0jN{ x:@Tk25*a? k/g3M>'E^^EcE#:DvMDS+?`gp+bC ǔtx7"n/=^MCEj"FǢrpSvHcn]5Q3&~0Er=Tå1P!l[C{,ܐsu_Q#f\#V &X"_i>꩒EQ`&W PM{&2vq%žGA=<36JklDzodOwMn~ڱ%KѾC܏$e50XhaAamԈ9 iqbYL? ~ Q%SFPi:g*owѮqGc F#ix; 61`>;_'4Sb~"q|Pz}sGvW'JbVto#`fWm =_Y Fv|Kfѭѱ~zR%"a]w@Xͻ蚝W;  6ԃ}oFb?6S;QU]N`G/mf}f5Cr <=Tdx门W{pd7 &T2ؒQ `cc>jYJB?x >Z>I҄q!px~2^.[9s`;*72 =M}eʹB 3CaGU"8N{2أzɮCo=XXMGSkoBvΈ/_ٶ[@@+B+2 ގn`J͞dՔ%*I/gH,tD=,{լ"8< |8eigIsL5R(^g2zE1M#Jذʏ/ HA\Our~9U/Cu`[O=BdEvj&:.\,9sq9g>$is' ;ynږTڃv\ƞ3rMXHǧ x0n/cg'^`vvhx{3'.{p&h7&S7.qzbGy)ይ[V)we=dZNWEEhʼn αrX(+oC!:ꀫKLU ~!expJ)ֵ&x8mprm+{y;j9o@o f|'mpNax}f`Y~>|}{ra|"Yt!پ%TT"f Rr>yW8fm66ԝrJJA6cO9e#b;GI"u B_Θ6Ye!x66>6<`fWYRtWY:psMroCw<$4, n i;T˗azmBRW&4|8JNMNU7 Sٸ]ꡘ:G[DNDK'hTKE]6vҠޞ裋tusbc g"FiRz]kIOJF\cH< Cʽ+jû]a\l֌c=[ D/$h{bPŤ:/KY(}',r#Mw3 33prm;A+Äo?ny+)PK9L[u` ؈iX%>35 npn{hUT]6?/xkީ@JB+%tSO1x5X]+}Z奉ܸ*e $j2#A#z]JTx ݨWbm 9C>RrRwT3>MrO[C^*#iƞsFeѹiU7@h7ݟ U{Q^W@y鼢-HyF;bmvu`5+$zEng:-K^ݳSChgܓB_ٔ\_~E>}v {ͣFDlWӨ|;>zbHG$,smcڊ IcVmU5~SR7D'rJzN ĩܾ$Ho|y"g@w_,GEםQuٔ[54:ׯĒ0^ -Ygj%Ujk4hM5#|ïT`d② \Wuy}w~4vCѦmې[ aAV$*d>o*n۵}`3~F,#)]ɷ xQ2nA+u4^-2r=rNwzΗifsc!Q ^-$281Gi܋N_0˽0ۇ?f19'8u#)a neE:B2+OLg'Ŝ% vN`evB.ȑKZт!oR*wz'QtqgkA:'5?,-#"Lt.{3 U`zq]0:]fb*mc gӦ~Gg3iH *89 *)}jaw'5Y&!m5SӁN`9nV2,zGDh_P0hOebLo68pZ~HaURG|Oh%L+5^Ѵ?$:";6 Wu2*\h[m˒̒So![v;I_ؿj3؜0 ̽ ƴKɴ(+Ƒ!Dٮc}39ZyD/5@1BT†?[34X KzT*斒& S-A ڴ\hکo::t #@1֣h&J@RHbsdQ.683R}"->>#AZ~02{'$#JIA <a('_M**8N]6Hc*1RJySXXӏ~=K)Yvmvz~H94ۛxWEBANQHwED\qU %(e`sc?lewy-{sGj>ZRiPy9 ˊ$#Mss4d}2駇\EclB.rRy\nڧ]VV=c~zHP6h{Z薚}}]OQax:IߛYJX HRGEҁƵ4N\B_@?JJ8U=J_0Lz5F䷙ӉW0~.+Ī^0A7߾ƾ}+97٭A;lEuL>6Иu"J{E)[]V<=xw>cD^Si _?{S CUc\V:!vBO8/Ð,zxN*'[6% Ye|Iі?8LWZf[q9ѴkxbRan :&sf)4~mXnB̝VD._^MccMc0p`!* ldxc|)ߊxyW1Iq|wZ iVmV?{'%~* S"3Z!sXI5dS85Tؔ U;gL@1REY fv 6Gy qƪ`Vݥ-!lVb++;Urۜ`|\`1NG->#[E!T*.#;F!7!5In}2_-έ). AFm Ffka9ݦ+oT)kğr`G%գUQ2$/֘XZvO'l)6\Fpjr(xZ^, 3ZhPR1Fvtk;/7KfF,/aD~9%I &>%6Q14 )$/z_LTF@O4/BDƮO :F̅M'N7`_K;=?탓1"nКc\x} =6>Wu1첲Ϟu6u™H!6iFi?H4ޖ3矢kx c1]ia=,)K6f:Xㅚ7~Ʀ! k "l92ٯٙ+SC֎BcZk(䁆&U6TzX5p %h~Ee/q ]^CzlmPs(S¬'p&3(YB&0a7[պyd.gua+}z~6'V*Fx:]+]ֽ Y+d`,"+]CIՊ;_H[P.frOrQQ}p=)A~i:6ZR6[yo\'Z;`3AhUIA RП0< cP|9 QMOࣔ)dnW "sohr>ϱ5\JT&/fUHZs:- ihz2ctHo"%'T6nz3mެl(7_8Ra.քD&S*粌 ypH?n]r]!bGl S!*ғ~Un'P{0]Mt>Rn(c}kgyfgtD>TŭRDM QܓS}M%'P(AMS,Ęl[jyKPIڏuUMn_o8 6ҌioiDJJV1(@ř-Hm_,?PKZoG179nuvola/128x128/apps/digikam.pngUT |/eAPQux {wT'n+ԜfVVVfܚYZ2Ӗ}ʊiZYYH͉{?~ρsy{5.ϽFLI nWC+ }Eh(i Y.}%J8p?. EwG :!*w;<6B>SK\ PhPN;(ED 뀋d|@D W*-A91EN5+`酅VuN˳ 7lC@) aYNȯ!u}izw?Hug`HG{Dpt=F+p[Ԉ!ꘕa,%_]ղVfկn,7+퓓>ڃDiSwnJzVΡ܄ؤpv`Wv`{⼎҆rТV?_nY2RM6!5NX#Ր\>YRq#,:5Q_ߓK>.IMXLGQ)-?*-#WjbÁ"O lt:Hzevًx? E_~=c7-z ¹I]usa#ϲ8h*~o qV$ý?dXmKm0B#ZwJKKY+ Z:rvX9i7?VHk~׽2gAzmq'n8! bvrpĝ֚Қ*be.oWbt,Gx8aAŷ|CͳSi1 p;-.~j maa&u-F $ adyqsc<Ո{=B26V,yY.Br7H:遉i˜ΝXzE=A#F9X ²>]iFXhȵ+BPx`G9ÝſbJ!qYp͹a5l/M&Xk+<{̡#PUUB%eZXGȏ6yʎtdzfJO_E&uj` ;Srf'e᎑ElaŰXe*ȹEڧ]P==E%̧;kk5J 1pDST_TSYvB@ 3s1,ím( &Z nEHCW0X?M-ciSl=UˈWOI,x1WbZ&Wi+whyF*5~y{G'ag$R&6I:_;}w솏ڧ&#ΥGZ.ג77`&P_pŏ;*QpF>b+҄gL[OQ\څ <+%&v  p?(B8vEKi%-Zj`9_ mÎu,jWH* |\64eXMYEEϐ6jlq䲛>8@+߂ .|9WS3!C4Wdt<n@i>M.):Ů< LAkіNO [4~NPf>;34oxmAQǺ(h2Wg9w4uor"sLid>4} (=pL<#K?Bf9'xi!QU 74z6t?Ō%:2}8fB$dJ9,qX˗/h}7 TVf5>u`^UM_ _Co]rhdW%0iAU0ˆ쵅1ꔂf [ᢍ ۘ얺#)N&[Vjs@֗P ="U<#M6_C X7@DDf~G5qk&s]ez?UijF6<')ohR*cצiHR" CW | hM)5L\$99aTڲDk%K2sQ>=[S6:YYu'@[\@X# ȡSCh ~#o}0 ';~i2vxl$(; l [7GW뫨CTvEȳf4&IoQY&50ZNJ~ ג4lTL#dVz͵x"⑨3* +¦JwHŋ %"$=t'QFZ a6! jzPO^3ȅ`Gڑ^Wo=6Y5Cm|&0.~19jنD*2 w8xup5- Mu oե rd/_W7po_Nd;"h!ܐљP)lm1U-lg ?up7'P[}DƊ:u*J0 ]0G qqeQXrtS #Ib:."Mpe4w s:^N{?+&P|r5.y>,[ׄIkZl^ <=սMÊPk%28<+SV<Nl۶QQс72TZcл" +Ϟ=KuN<ǕQ\ldf!ek#'71x0i*@RTI셚{2?1mYIb3+k4YXY˗䗶< g]wO4b|!*4NMǕgO./fS! MQ饀@[3Cm:n2;=rI 9f%:G;WǝۤP(_~ fuKi 0zAi;mX7;N-5 ;WjjW_4Q+:-~?LlRۋ+E bu#mUk} 7ʾЀ޻eyh{{{'Q蕙_ItW3ð^Y񸟏$w৒b`Ch+e,6m2'4KzYrWB)9_bN0Og:s p Cr7;Tŋg?%6s-Mm-"z|x<3Lѿ@J._:k9~\rrXX[D<#͡ 2? Si&u䫗V<^I#g>561m>܎^I"'0%(,݀~gp4"4A0#_9i^I͞vׇFHKݸ? %zx[7gjDg0/3Ъ b۶jtC}TB;vuV2 C9(5&&w.ݻIHkv92ѷ!5PRR%XemAAE۶71mRm6Qo#ah55d' Ҟ{T~l)#2? M⌟U8!}=J욜fgVz_ 4Q53z9kU!HaEn<`%-IELogBڣٲ=JW7|iE~i> ncDչ%pHv@a#,G5@Ϡs3msk| {-V*e}o~_&e+H2vV@6j.Q Y]^Re^k< ٪A@p U΅ ԉ=QM͍OиT@߃M,ҥ#TJĺvEr OBV2TcclMOwDžD FJ:phEşДT~*=%| h; &_}+ ˳WZXLKKSPJ`m'F]녰N:>5 (QuSJN.w(`0tbd@uxY 帟bUkJo&h^@ٷ7q5=(*9bFCf43{#;HL^R le5D!i*7#>8P/Rz뒛6AH}&_b"8=G `T.}()Dwz~xnEіl̒4!>eQPR5VMM{q/YZY)ef:>1)ԋβ!te-mi ^<2I*X/@Tpd^/qvŠuy<:Z~ };(f5OYlI"J)pf#.o+(e0sfZShz?$p UnI8Ľt񢉗7}o!AFaa+ҕ]mh*D17p??~hk7 LV76*^ZK8To&HϺs,lh4* ȭq,E^'aP\/W![Lkb {m-n2,(+NNZѮ[NZ[M`+8-'6y ª3#lSy}x0D;) R!hRZs\^vz-y[EXi6os4 o{X8}O!7eeDD YFџ`8qoױVV;.^JF 2rrTxuȠ8d~zMۃlps@ !Zqܑ+?n3 #9R}7p|(=r\O {wgr d@S%T\1G_JrqRQƋE<Ú3Ԝ^T%~'QwY)I>޸FeI/joX<;xKz "IƋSW ~JK>:̠@Tmcv|m 2p^wUGA2MuV V-j2_(cb|㤎 ;{߁ҚDo;$9޷7hRvSSa,XZ6ԄDj:^L6+0, V= EAyڣ'&&h>_^38kxdY# Ps Lw:Q*Y#P+#&nJ  B؃F_Kk F *IJ<+3i6cCWăFN1TMDWi`Ar~ʲ,E|H${/JSBMoJ%|Pa+ݘ5kC_675D+NE67uTM I] QF9 w`SМܓ; 8KHZz|ea-о޲9#a{10 {z Jgis- Iſ'v_C',?#Rev->? i_v0ֲi/g}hXd1".8k–iuH/e)ÚH2o-ᠬ_\iXFzlG0;6oz_¯'f|7.vΨaXߟY4.u? Ҋ^m _wEsy-Zk%u|BrrL6wJz k6K`LOdsj&!s M8$?T*(û zU08"ydیS}\CwdE iI{C6]GrK)+l6Mij35Ԑ{8a! "OII/=q$ދ7ř.i1IPF*]Q/6ZfRQz3:h\otZHRHz+fԼRKkrѤ-Ǎ3#m<帜si]  cZJ5l&)܌D ){IǑsV!S_?u9? olBH[4ӇIr{F?]\EȩQOi/s NGذ unqi>PzUuR}7 )3i*i /;Ջ!xt8>OEDY$`3/*rOm51Uc|}3iS9D3Fp@{L|: $; ,EZN˄P?iqs{†r=B_1 M'cW^ ?80 :}IE+[–qY j!56F.Dgd_62Kö /Ol`*gɰ ;pu#J|+}}JX|hPo?h F5ߤQ`I<ҩ~i &d1_a:QL]5qC@-L5G ۭGؐj8jzu!.1Bꕁ.ItC du6Z:ᧈ_~3 E -4 mu w%zr@׽XRK3F/EzSݒľ1!IiRy80wǚp'@_612"v0Iڰ{hNmL-rPHJJ*ViΑ\,,6scSw:/B,Z Zq-tp/κ4L|W RpQeN[8gfq-u`›s#maP&6xyfmnj $¦$ܰx;:*C$-<-;Ё9囪<"~mF-bum61W=q>1)㺿1, qzae31>DQ ^]tO`eɫ9I ~$(l}iLc,y'Cqz$asl¢v/c=SS2nXE/4+$kC024?C, X5| M:91Ws J!4\(B{kee6A~;k7}[e57+xBsaD$X [h׎k_^~ȌsBF}ǔÑ(wPb*#J%@pf =^FI=L l-X)d:=h{VHN3EڅOiYO0Ɍ'wSF3B|ۙQw>A&U-5AS@B2"+m} =Y3E,m9FHD~ӿ4⼸J3 lizNA)|egoľ|e{k8);QQ+D45viH6 v!.b~uML" '7gW,/o .6Z}vapG<xOvs+*aN <=cp]}'BXFLݿ&ɉ744~[q=JyGqTfQ*h ?y_婱 8^be)r:*' h/lm+^߫G ~<+:x?mu|3KM°ilCC>!D@_uS߸5Po>:2sHU>.wPv{+ x섂YpYxKz3Ij>7ƯIHA[[N3v8O2"a.SӐ0r9S㯣ށIR?("eC;orkPV/l,O[~De{nm i? ya6P8>$~$uʼnxk=o)*H^9;z](Ĕ%.ee\nS)i/|cG<&S8_xP\7q-߄b"`qq݌H詠Z~K%hZoMX~05dmwjaO_7% 1QdoEWHD"Ъ1H{K,SBtgЉg#DugEDZp^-6 'Va":Ju[::%@ iJѺLN9Hс4{o^}fU y~7% @F!!xDǎenU&~|px)P8;4E<7u1g݅X0 u1D.]KGM"te֯CR=xWU -=11q@!@rkݻA!w!;ͫ dKK?$Pv ԨM|we^ i 59Ct"5`|EpVje'^Xf[<^CY *_FeX/B<|v/o)Ț{5]+|lAU @j[%V` f,s uU34/T>8 ~,&X{}ܘD/aX#{ιD!TݣtS87+V~.È$k&ˤI %N+%gPE{yx?*tp$a;Ȩ#f hqR^pE_8CHw' X>؎0ޢY_ 镕X[җҪ#pﳥ h5? p _4x1S}ډA>ɥ9czw?\Ctb3oINNؓ]jE~)1M`ս.JdQl> 3$4HΘ^U^z5-֒PFR׀m=oqQ:Cַ! iC>R^^^&v޲9zD#k&MkV!tsyl.ٺD&Uq֓dz. GO1.n>zw*ѻ\s;MO d˟=V-z'dE$E5K-~]8LB=lm7]H;TfÕ]\i3nY1[| ///S?d9\Z ݹ~=]qU$º VT.,ؚC%@stAN29R!^0GfZ઱q:F3ރ`p˷ E/c%/UJ#9}w/cR=4ˠTNߦV=S.( `Qߥk:'xM-L|}$ $a |[4m^헂p nuINmA"3JRA0N̈JJJb"#!Rh;;-^\oSE Ǽ} ˶ra83"E9w0@1_(&ַ!S25n8KQ߾-֏ JڻK$|.j߰@==@:y uUT`Z])3- \xB3ey>%!JP;_1lO5;;9\GHC2:*R=QOU }@Vʿm9}?gCG۔f%DS[> ^<ӪjkEXH w~`Ŋ71}0,CGN!k_T)jSIU(>2fx.26뀃D{(w…_B,Z*BRڵky8\յ [Gi<¼Xтjw"Px-0G[ݱahqȨ>rwz؆]S?LpE: Ct/=xDo骊> ZqI#Ơ7XT9g4i<+Hrrr4@L]yJm4P #1*1f|50qòq[ieQ*Ȳ$!-}m.j"}4hԋveopJ6VŅQD7K}+nבfक楓 *|D~N ktS?8d9B𷯬$O ;Okد!'kitH$!-)(`8B| Mm&p^|kd^Ȳh#wO?E|嬯u}Ih檴HP*OF ,TSiv`"@JSն>[o|EZOhoVT0 X> Q'>Pz.bJi1dOsh!i.M3^FBw "p0.vBnVW^[?ЀW<ɢo脪 1P1<;\{JB)[RHd*ޯ+E %ryŠ{$R̢>/[CR8!^C .jER9 6K[O]wԪ < ;yyx,槉-ǟo,1!"qBa|MctQ7"X_DϱG G;.gO\_|uJj.o"2KFsR",,w@%lbߓUP.O݌y#jݼ*l/$qV6?ЖPZ@ڽsGrPKkG15_%$$nuvola/128x128/apps/display.pngUT t(eAPQux %YXR G{ʑpkC2K+4J-,'Nl)̕N,TfÑ&.~{ .`^Xe||Wsa #Os'na'N hts$ ^l9'QaT@q/ %Duu[!+K%ذ/3r"DoǻT"|~$~+THÃ橂ۣq r@=A|N `IpPb /IY5Zķz["gǀv38_5)?)'֗by?__w연>qfۛ<0<nJK bsd:&d$J DCwCKd/<ܸt~#x3lqzɶ* . \ꣻ,YGHe>h=!o>bs;u>[Th$M>uRinhh%x@CbJ,} {PkN'({u[Z"7K& sb)0:wy2!^ )IʬJM@ D 6@tׁܲHS}>H, `PɅ/hgw\woauW }Ogb{t`EkB^ٌ9Eͬ/p?Sl&Y!d s L&?Hd4Qb$2X~gxMN  AЁQX&绤 4*߄ { K yD&pi[KêElC)4Ś8b$AWuQtL(Bg}V5GO1ӓ#Y:A8s`*.Yӎ3oLK/%^:Јw-Cy5V19Nj#=/@ Xn0%x˥Uiw_6sa,q*U~%1E;~#@\h]ެrgye|?tu5|T]ڠiR{ʺ?CanMV\s_M9A kܔy[. #.*@b M5L& ":5S3"[V<+#vd`"$_ܷd?Bܠ,Fm!59%Z6 /8ەx %g* 2BM8A^/V%xشs=?7td7D}mB 7rY §=5:0R ZjIgm'v k+bVB>'f^4W1r pf|Ao q){Xx8.fv1R䲉6v(яam~ӱ^jp*Ɩ ޟhOq] BŅgpcĂEWashcIilSR{.X6 ,Ȁ>( af9ztC_\rzI{u Xs2C `,UhʂL*g68B%#GZV[lav?{]ߴFXg v_bBPq>IۑMA;=ioOEOm_w6Z/˂ r%@JАR(KPB i*,/sH>Ybcp(5 Hۇ.:v&>>~@qP^b<LHTt[Owjœz O׊jd%zy/Z]VhmZ/8-/n I `jDHHXKE#8#dMݬRM( MZېte0}'zQfu.<]S:?ہ<+gRѮlP,oC\*on.*3C5rRkr7XjG6])`89#̄."k!FڝsLJHn|ree]}0b%('Y79OW=~_5d|MRE!wKZg}7t%]a=XK Z;X ӾM-e} t~wqh3D9w4]K,N- `% 2.Pi'LUM| ]ߎ9O_,)?d.vܑ х &\,t\9iܴ>r}[OLfWtzIFlOL/zskxKxJQ9[D&Xrx˝V5kg"`c"*uã&|"dƣgKr$]e .4j{W*Pˌ/յ"LNh;e4O $xi'$*? ʮZ N.FwUgO2Oe\ݴojG+ _-6^PXg&X}Op3>Wh%jrf<57t Y})°D6 "U# ڋFw`M^nUY8b[E֔tYGE-5cE7Z6f?'S|/p> ͓upJ۲ ]YYzOTgǏ8mVSGѮk-ڨӲ_tn~6ӾIdXm $ͭ<1-?{nCDb@/D~7IB\U6F7]V@rߖ(qpߑCğu@/ k}.Ûfn6?l;^tTev),yc?>_< smOlLUv׀+W#k8T'y%QD,.l$jB'ƹWzOcFY{"jgT >رm&9'~Bݡ3o гF)G u_Ct$pYc`SIAqSg?%k[i pwiLcG S\U5p(jCث(BE;#Ӡ!AL8/+poVt.=e6t~CYnɵGB`IԻO|۷4C>G6װ̀;J cN[w#lgv`J^Lt6*u:%X=tN|tb^|ڀva1P+l[Sӆ'ozLf'd^ѣKx`|(._cg8Bkff[z Rf\ww֋/#N4Z웟ϐ7a1qhaj!2~PGM\Zq|xTV;:I}` HU:(qCy܆bYL$߈{6lk^)Z$_<~?3.z!a9U)#ep ^ߣ%6.1xFSHQ;O"&W×TiQpcljSXOyu6Hʠ߁0`6XqkPqE`+E<5yDy> V0!,&) .5D*uHf>d Ă(  |#cႲ~B9D&9? q'JT ZM-ٔƄ}/^L=$ʛoWrLNYjRFOSCEd7,нcϟ^;"!:PB&'|}Y!\#o2G٩^qDHSeYphGRJX+qjޗrиm]]8;+?*!n899mK۫!a9hWI`.zldr7Ӄ~֯sSRC)sBy?DyH5.V 7/= ۽!Uʂ3^%GQQ@Efd6{28($7^|Z^y-4N':I IrćJ{oɽܩ4lR N~pǁfv%Ih暚{+$l_\Dƥno+|l'){R,%M!'sNO|rB2V'*7L@  &.T,RϟTMDjeyX$ŐP0$SLH4 U8sf '3wc8. { C::h޸jD.~ʷ"r=Ʒj nL?*{\/a-5zMgD&s+&dWPҲE&|\vnrs[| A8V*?߉1P+5%&^]ہ &댣C2G!GXiz泳3pw=aiU?k%ճ+jU<}㸴?I3 Y6 ZNN";w}4Q-,$@2B%dL*pU1ps!+-7:Am%K} B J*u )ŧ{Nht:531"lԓ9 c }'T[* )qZ*Pȏ!%ßמq8}%vq7Mqڱ[ܔ4mmNgc" Zڷcd7GR<}X.˲M-wa$>2 ʢt2 N7. NL"̏~)n$wHD0{>h6 zBk tm7JQF *Nt5*O8 E(W$MW':Ǟ{JT|,pcӄA  =IO)Xݾޣ3bKxC2^)V&ͧd惱l=-+Gnl9+?Z63ӧ0hյSMRGCdn;,ҎW%K"])U(̹RR4&W@A5~/oAaЃRSvo nP#dSmi5h{Lm,է ]~FHFdUFbr19VsDiG|s@UӀ > !mι3dtl [D:>%|uWN j5&@ (P !w[{R|R' vnuoLf:b K`FC|Y\R2</|_k8o\K2662!!wiۢ5y(I=19Qpmu5UZk(ԓ2}v+hg3ByEngȫbΆ{ f+@8ɗ?θ!čU 6C"LIµȜyQ Q*6 G%[Iz|;i.,+15MC׬|gĬDw/U .tjO KY,'~G>##1E.Q*L2Ɇ|0rMUL(; j ?B_/h יyfs@JF!:Fxg!aȿ0# ѕNɛ:H&W =U(k:YyGaԩ?3iBTk}aetg#"p]D1`sx&hݣ4Ad+X#˛ٳ}>>Y> Z 0}s@umUa.{q?v)K78$7-EY?냨mk<BB|&o(-HS^ G@(dvRPN)7w@C> i7sibC!{)6g}1sf3$sQ%oF9n@`@amnN)PKkG1jN$%(nuvola/128x128/apps/download_manager.pngUT (eAPQux zw\Rma(Lp,QK(l6đZ gbWZV̆VV(J{z̆9D΋|>p>ss&w*^#sD_.A/x8u zNv2.(@ >D>~hǡЄ9I7+}|3l@`z0&0(vL~CT /;'C(@)S]FjFc,w81bПruBH*,8lK`8)\?aJb`Zxv ^Ŗ:lYwS1)M~suZ錦AĹ͐G],ۘ Ce>kl7$gz=jnuz- OP` yͺ܊d#kWPE|9N5-=Q犂S4eQV72 5r(r5#xz akc[%*^H 2M)eK9iO+>9[XyZ>Ϣ_4߹0m‘ T%љ疨L *GvɈ_'K_(J*Ib| 3 *$H C4^IR5O˧*3170/xPMHGpXY?liHHͧf:LqjkUX80魄1mAR/@zHQnA{kiܜ?MP 4`;tG$S pVƩcu*@x+fp HN}${7Re{7y<ݬނYW*FwFbpk,׆ӊY T |[\]A-Qlf r "m :k3z4pL 9\f ܡ,ʯ2їIvPEj.( 5o|[>Xb _&T+b jr])` Uר yd?59`tx.Æ=Ӄ*ix. )?EG d@1@G3\^gJ[T)!Rd=&!uXr"q'FGZ E%vy<Aw=cy^!2>s" 2L2'i$A0#ENCkapSNT;JtYgA͂Ǎ*b`휚 1b„9֠O*ij0ig v}#` @rH%>חs4nؐ)qC'@; 6K/*LȰon1AE/$rYcђKT)i$e#c D[@ISR}|piXPYgv_W19u2k؈_ai?TewWΠb[FJӣ?(gG1h}8<$(p_xQ1SN@.椺?(︗ac5R!~>vY]nD&a. Bx8(j8=9^C. wb ש xݧn( Ycf"Ȭ1 y#dVUYY "C-WÜ5-Ye bިmwxM{U?rJӀsRsVT͗!@:okM* }aK7p2ߙf+$=itFϡ4u9<$= ZHq5]͘ w78~Y`pv8 &/~aWFA&ix>Z9bf.e3NL8w<č"C֏mf_,M?7\@ rz%y{aU39bm4:A۸u`1 m. ]Q8!Blmü >@unJfTGC\i>p.e]Kl~yMJcUk H4yj?cVKW M6PmS Y pPovi JS:Jo'Nc+֞YUI:*/% Җ~J }ƚ ֤n켘FK:Kӌϭ^*Vno +D` 䃐.Kv EG_m zKf_HGfa5|iNDaޭ7a,ZW"!a22J)2Aߔ~Ӑx! }jAkPN+DkQ]9t`*\Ӱ㍮Iz*LK Ԩ-z–+E8C0=z~nN:ǁ||"`]󸊻ٖ-fHh1ϮQݥ S݇M+㇊ [ruo if%&{7daqʐutUW/j)#C@lԶm+a+}oZp5۸PߜѢl珖X9LA#rFo4֊x2e15! 7^RKRH r,1"MD@fmz*9{Tmotl]BOms=?@=QK|ĥj[CƺgvR>Q rg]ix}_ʃn*#yNjLе9M7]Y3B&)TdmҼL'2(4C WPy C)\HLW:=& ^ˇi"T#^lJ0]@hy4je~Iӱd}ÀqVWƽm9_l%v"[/ou|&CspieaטxR BH>ju56)<~j[zlb^ "> L<enXWz<^MN: ,g ,CQG.vj{u)P=G@gos,PO@v]cT_\k01kǏUd׵OCE3 ' CIȲ S(lٯ `ۋ*:(@ab}vus Ds(󐧾%y߫џk&DKv- g |IQe aͻ 3e%O_6+>ۛ'[^hzއhtWfz!T4{MHr apo0=/LC8遵Ucʯ9;N斒oSϵ+ܮB}{*e/~d٭Bߓ|b&p^xNPM^'vM0h}^ πKOH{!+dh{Lhr0%Wntɒ*RqpnATVC(%Dgl#Jn`7SK>`X22p\8vZe+P<`{r`Cf͑?&gh?W6xM;wbdյ2#M4&*Q)%eDrj[Ҷ^h`B" O Dvq83orOmcwz*t'b>յ5׏Sեkm瀵?@XCO2{A+=aWH|hya=9SmyJ:PV4Dj|SP{$1Xz%=?A8Y ?tē~ᑗ/??RUt.I(U{$%+pvs>]μRkzgpoᢌ!we1%ؔ3ҜwbOFy^FR G䖗&U-IH'h6t%CHJ5=b{P}_e]y^L&|Tܹ7,0TԨգSIwXJ5N.N;S Ϸ  %DxNY -t{uFUX&U5>I$>Dßlz{/͐`aݓ$&EȨjWb=3,]Z|YCډLa3=<̟c'snŭ~O2#w!PcuFِ0vtߌR,2K}1_(plfeׅfwA`;ip>/ǖj\$8A{Ԩ} Gԃww-y83Ǟ Z zewr{\cGbaI& I<>l)>96&u&eh^+h,nŇm3 { E>)F#%Y-rJ>U].loZ.d+Sh|̴lpG|Gg=Q7A9eΩpGq3]h8CXqP;- l4`q~:⪠ *ū@f0Wk5{cGi|LcJJ9LCpQ1Ex|B~=cF2#KzXRO>6kTo8WxQDԬNȾ C+F'CAŚ@ig_d~Zũ+o z cWy ;} ;?wܪ>^:n^qF4^FNX~jbA5:})~}BO4,xq^o|JW+{0%!!{C7jQ2^”{ kLb6kSgQ6gՎͬ1oy/ pਞ y5vId0&˪&Q.ʅ/_9nzR:43j Zt}j -Q/,3AM]x}/q^fج,w#UPǻake2 ,G"`k>W GU`+!0V E? v.hynu 1;&zui"" ۰ܓ^/ 2*dK^˨Ce|Sv|\D[*= `Sԩ@V@vJJO?PKSoG1\>E1G%nuvola/128x128/apps/edu_languages.pngUT n/eAPQux E| 4{fC1c %ېT*)IޕtSair+e>JƄ*EH&a=9l<_|<=m\@ >^[Fߧ&jUj (kp8s=#DG9Ί a!ᤵX[Ya' woZ/ָ/!Jm Cp ls{4"h !)50:iQNGa&Wquﲯ™Ds6!<^8}p],!@C w;/~ZTo`}kٕGqFVm_CS#gwgawnZ,O:~k$54JTMؗDOFP_3M/ p)4|;8< pH/Dp_)o} z*u@#nX$ߞIx@jr\Es=V#W.!ILn."V={!?PV8`UCaąOf!JEQoETO]懱=u@>=mfʆ)ÉZGZg[DQ(btdpnsAπ2gbWNT1Cۘ|ύCzj#p3evz;͊;2f&Ny:FPrC{yY~F6g%A1$|Z-e3nf-v=뗌 &s~q6P:1{kkqmxoh{/Zs=T,T 9fԪ췈 ͻp0n5C0+6O  )èJ 'ރ&n͢OEx 7lJ,|l DVC?t|~4K6oJb Njɀ0&Yt-7\i Wx%(*eWs#>#$J$M5n53\ќ$ϊ [dfPǗ1)yW5^Aɬ"u˴LFe~VX0P`*/D|7;oU}+@6lL̪߄sOs3@/>T,:i3{Z nMHiIީVd?b&뷣0>]l|WkM- 9gPY. nLy`^`1dK?s{4K4. xi0]r'E RҤYl0(dI>' sV5[+,~$LO3s3wB>(([7sń8@5V Zz޼ ɩ`$I6SX#=6x;-OH;Qቿً`^3A ,RǟЮf;2*nEb|+M8Q8cLK9gqrmCmoŀOMpL2Ge a\jl,[iq d>5xGx CXd>H[MmKhu7zR0<*)?ݔm.kkI{u_=Z/ؘju-{\x>'CMŗ?t=,fso%ԡr`7B[VMb9!̴*}~b|Kɕ. k^-wޭNjĽ4!~Ͼ_Ɲ'п8ݭo^)MJ iӅw"\E^N .W]lҙ)M+:9z6ܼKiq}`k\c6f^ɌuɌhW"'#`[aa/ܟ&K>ꚑQ<&D?&¸ eG7nv^ur>Eoۘ?TX1M$E I# -ni)0(x$;0UV3G^nϡMmJHxuyG[s5CW-4V Of܀+J/s'3L=RAEowoiJU/~cƜʰuk.ĥ }WF';PM%}d\~=!aJYO՟`pR6 f!2#8Ov+(R,ܳl 웚SSHf"/f?{ܘNڸW($\p 4Y~8&?,A@|iiHalݒ J쯟; ¾ꀌsXFq2_k({nsҒ$'};bicVnt675C܇OM+vtfF}/U( 8ǂ3!k/8,j.4*uFApKsN;%7`}RWjf6ާ"a {OI-|&,|722?9N4Lv zf2$*+߉|n{sݰVg p/=WZv4p*E.Q2=>>IHG,)/eve*ޜ/!OA%Z3OIoa1"cζ6ČFl=؁.g +0ȝֹh5Mc}bbJ|[.;zuY^ o] S*1l;Ă^(ihgމcYzG{a{P8r$Y`b$O$9o+GZ֛!ҧk`hxxˊfϬ_9ҋ5[R]^Wu{Q&n k 3n6@%WW@fSE𼭂>h'BI{/ŀ"!Ÿ$o+@ xIJMވLBpH#L6͚Y∡Gj~^',JiS.)Hc/!qԸ,&ve"mWy[Ѭ#bKt9s0[/ Z۩B\돳͛HPxppF2"T~uoU;O]<7?6l&ϥZ-x8tUl l3a3 !xŸ%zXrhP;3'=9D>p,J/ۡFO(t'ִ@a"HPdCa֖B^WOti9__9լY{qGD7jGTW"+-dC~XX%sTi>|]c>#Á:GZ0pOO !e2jhxK&35#abAN?|3~=wt߻i`06.d"4gGR)1QS"=?am@cO{ CO_^ ,m <_2=R,{ˁ 5CT JUI?z]yOږo%e80PbFf"|# TU|{p>} 0>7 Q^&@R J;|J\\}Wc#NΒN݄!|.q^in_KiCp%~ AUhCMBgPA+l6C1lՀE煔; R 'hLbDIiu^^1ߏ$) nA\fN[@fE휺$ %K_E}F? +Tv/9/RP/{7QRj˜WOWMG ^+?}F钀%(^XnRꏟ& e1wc~;,x6VFE.ػlݦKC+J8js4N$K?P'R{4ꌲ]-m{5xwii3fKJޗ=Nv<6Z@R DݲSl 4ȧ *8GxQ#- sPe ,HHh/ZڷcaZy/'Ȇ 50-wfLҮL~Nj!Cw,!E .vW*$S6-8 v sbZgBْ7n|{͡BR91hx::aj6{)@}QkR^H0"+kqy3c@a1a!U b޻ ?%NH {3)xlF`|ujTԉ(;YwPheMmKN{u`h̷STG8rfsWv4~e~%TS*j>3'PqK[,@H;c&:Mjc3AU(7+y듂% G]a!DTv0v$?K/?mMݛ̺#7o~jn@+P_Z:h7vL+B^׀uUqtOiLak >[԰+AHMև "V,wY靶jcC`%cD ռ*N5qD4x5DžE 6-Q47=ݰ1~ ln5 z̺ơNNoF@p<[2DߪK6T{eh/V=#hģ Uj<\LA:dc%=-+^8ǜWqm %dcx=Wd6|r0:$8'GoJ"F%Q˟@ ;Q:UTq/Wݕѿ'QoogOu^"] Ѓ t.W"ˀ\`,(>hVj`0V%M Tbz^U)Lԇ3B`f.Vx?%B%Fj=8"Oex "$f+rE  S-O8jSMCMwAEz@g_*Ž+n@ˮE}{Yc(_./KO_EN~fx xm-g A,W cŝ V$tԾEzM^wtÓnru"`rCaóv.{tZ:rF`16 g狻:Ju1sO>.Nbs/8򻪗*Ub6 rX}n\mIWhpF0cnJFxpl7Аx (_Zˌ אl[ /&O=Tr ,V|{n'ջp9Qj}DRb3.ex"-yR}>۝D 5'z[ЮOMj«UyY oZbGR_LiG8 λ?w 䓗oXXS.#`]Go1GפIbAwȚ5biHN=.$TUќϕG[/g,DiƔ qq;qrҒLG; 2r{7'8 a&Yk>nRO01xGz1f8US(妌E$nR?E.يU 0HwH RƨQQGTfFj_:] %s#Ƌ{٢'q1Ć +*KrW曉2=|R=>pϟNYavm+..t-"~An%lvCGaHǸK/ʙ4i¬f^%A?ߎF#qvtm 4ٹePCat\ .}PsfϡA1%gR.qw$pqrS?|PSPSןqغ:3RQnpLъIޱ(c`8_Xȉk}=7}WXrEn!/Wo*hi}7Qƒ&7Ɏ8_&Le00<1KS9'Y5jhR]{(؝&M鈧|Bྂnfc!g/B`#WRkz!!BO2;~6mV>H͡Y=:k*'BX&5?CgbubD鱻tp; J+%<NtNjTkPz%vWK6Qa~}SҮ,FMyew gnx%\^N.]L~O86w p.7)|׮Xeh,P, /_NN06橣Rb`ͥcd>QxC eX4> qWY4A{u`FTk'袈QTk<'!$:1[=YsY-9@wU0ڽ*<2r6ovwS] Nu$<1plҊ!2@PҤh(<Ǭ] θuvyeUUa>\%ʪޝsZ F;]q͸$ײ21vmdnL/R@M|UɌ0 sL1#G\q62i> \ %]:)~8[AœKQmccC#.\L֔QtKBy>V')nq*Trkx{ ec{Ռ/AtОHF;._]^,UA!UX]y@,AhWh̿4a&i@zԵaBfIfQu`i}pϪߩay <*/ FSlSR٬)b1KێYŵDbxIn[XɃX0<  A%S+3ƜQkӾj?uaoYj, 6-*ҋ>51uYi7DŞ8ZSy%Ef`E$Iҋ[&k8YynTFT+R9l]9:POUk6NyĽ"]8'kdrv2+N#W/tvˌ~$9P1DrZP#kY~Z _25{#TF ; 9P;DWkEM3q~ V!Zo7sgKi)S6 z[4[if+I xRW}Ӝfqަi/:: ([*O԰g*DO͇d?By ,4,K2)d\+?C8DP1+ً%V?&(Ec: L 5&5]r =LG8 یھVѦ흠V1L`_FZ ^ q+PHub=fٗ;l a9vzC7攓'؜c(p/s?4l_t$D$u-2i 6^ ܙ}('4ysB%FHgS}%F0Xmv韭h>18ne?;dz[oP+w'=$ub-捹 C5o+.>@U Rqs봃Y𡶈5q~BH+_B3%x${/!rQ{6ڡ7XY1; yFl[QۚVxRW{MLa*G}nip0[h?h;pUy&VӍ 'e$\hI-x3tgb|s!ӽGn@/뼾(6e7=9/(%Pݝ jd#ۣ&Z~l5D8]NHY+B [TیlHr:Y\V'c8G+bQX!k3+{A:* į߳w4?[L(ں _IݔE p_8{_kI_gBS{(9:TS \`k(c(_1cJex̀Q$!1ڵ]BPBB8!W13ΐx >3lt>qoVPEQ 6A/gKkK#~A/৖>CZja#W=ϛC Ik˹h,W1t0!9jQ"j|"8!%/O_Kj:y4!8/;v6rkI _['G/e?[yw4MN,PKT]L5A,q@2sM9b^B9}"6V6TĄe#` dYG!GӪ < D:T1Z 7}>$zQ _eQFIJYhkib3 (Kt2̽.WtB2L L&u19NjRH5ۯ j7l<镆dco#nC̤U> s_He7O1+SS <"UkGI';Dn I^B}#%p|$G(Ҹg"M=#K>J0/Gsrbd>$N#(7EPתEmXu΍y"d%Z8euV[!J}IQdGx^*$M'w:q?1Js v`:Wd0hbE~QkU[wٜ vI9tvuCojj $ i!0,' lRgLP;>CqOZhyG3^ۙ=xA5bYFdV.P49imj¶-+D8SNW?WWmYBɍբ7_ ̞_ !ivp#am{gM4J6/qnpnM3 d3n[QY!͙/ h\nC%G8N<>I83un{y>7۩LqǿiG1 ;v`0 \_^nlwS~H*-#Rqk0m|brc-> x]T/ vy5bM 3.3".pfdd|fĨt竽hŅ/s0:9u[sESHYJ=E L''bFvFr(Ǭ"M|We4 C$$}^c :q#]\ ĤQ2]bHPä1lC@(&9,?Ќ>X6knD! @ІuufR>*jU#xqx0mA k&Z5<PAF]j^ze榥FҮ\s;[zeV2}ˆYv7Z3RzCȫlGwES q>m9d 66 ,,;dݶn瘯5GJAQCzoe -M BQL!+|4#zf5ږBI P"y/V/@9LTIE{xak$4Ucήgko< _`g4'g(2FIR8Hy<' &j\Jcڪu3e``hM~ٳgcŖa!3 kI8 *ԫ{OCy>訊=5=mE쓽khIWkHQw6R8?*L%վ8M_8b% &X;jm |9ĊŜ҃-w/BoI"Dz fq|#"9YLt>:sI:t٫|}U c91tXJӂb=k 䃤/L\XFr@*2-d,fkB *YBDe^ůo#`;N~w%/>8! BjE4Q$z=}zEA!8D#Nxr6vxEBo$z܀GqGl1;el<*GkT99'dH,:ب]XC00>IY!ǘJHv!1zkөH%.<{z[9 VK1? Y?/ŠdYIF)[|/a$2.^pN@F;#6jiadόk9zь/ч05浿D+ӻ93`>IMct;y4W+0{F [ѩt6±06d-"\aLQ+Qgcw!$OS0^{юQ\h2*6 o ܭʗ6V A6ۑ?ur;q4 ?A`ivwqGOY*`Rφ6eH99RqқɈJ󓉊Og?(`n@~hUJPt+y(njQ`3/r?1El#d#d⮬=ib Z}Lx>.JE?їLM.{ .qHX&"c?+td> n*و;츥mkZ[hP`)UVV@%:"T !la=o ͧbXrAw>tpE3dk$<̻ʝ7m)GTQ6;ZLF~qd96=bH84xZӌpBf?i.ׄlTtvz+UC%4E&^MDO|#u)[L_u+&51d8huOG[1$-D8?]@_Q;m&GlAٲ 5-HܢӜ敛2aGۆ`sWZcڳ^2FB8+t%豹ܛsJ4ktW[0Zϊ]_WQ0)zcQknTt%Y!} gɻMw\ov\=EsYjDagdW탯8+pHk֫/:ڮŔnZ-0xꗎ:} IBN=DȿEh;/HZ:D?,2XsFbPi\rѨIB35]񜶱s4@H'z-,6z-ei T l:dΤGce%PhxͲWѿ{YKb^.u:^wT璘7ܹVa+Ma>:#dtz9lj}BRuTH4(`/,{{]3PKMoG1dV%&'nuvola/128x128/apps/edu_mathematics.pngUT b/eAPQux -y \KlgZ[E+*mT\"}b|RIZP O.-чr0'ZIJ㱝x=_uN>oq.@oAh2|SgS텸K٤ߵMSG.OZ=&%pb 6l_cx?qWUi4-J8f @ v8 2<PRʅv6}?jgy{5!h' 7\܁D$8LaNTBA8E  XqQ`~tQfIvk=1Bc\^W&q,ץ 9jtZtq;ԏý3,GЫ -ϹvkRyLlׄ6_H':'hc;3whCNёGTB.{,Ha9fAH[jJWCWLRSq޷[zzV?s-7e"+ wO]j'ET$ьt'.7-%[!97zivTZdޖyf3+.>5` KiL M6lDMHE7ZLj+F_EJ3vű]%eZvf*=8@AĎer9Wӵ!-!N^;B<\(Q$G2߉_:DXYvFXr(i҂9;KlDFJ'-taOYAn/GiJjM2?5Wip<5m}n0ަSRwaҙg# 1 ]_?vTC7<>kjyo~yyt# _i2f 7#ۿO_OL#Xoo/6 } =<- >=^lxT/ѤT^ɢRg&cWCNk.TNpypcl0햱.&?}*{ (j|̜ `N d% \Vy$`58(~n؅׺МPAwM>Q=Z&kx1nZEEaIĴtaL{$/do/-~ڶ?"-1X#bH(H1"䔑kU[6"96f&"8Vpq]4c )dt*Y's2CZ #`r a9<GnqtsFHnnC03ZnOo'H9}RAe"mݿcQUk̈ʲp$6rǣ[[-Z=(M&;Jؕ~EKæu*gZn"a}璉OtDzdS J{{|u)ZN5 '=RdYTmʄ!=CC1S n!2Hh>eIk-|7RnYR^'َҀ'rfLzz`ZS00>ŏ뼂D܌ /I_CN/s{;P*dA{8{3 Yo7Nq:֭҇2$=_&H4}N6Ǿ@Zp8c=pecl#Gz+ lY)> /J$_$zhi,AkL5Gk Ecl!yPHOZl\bt"YpDSM4W|ߌW"8 4umv͕ &d# Txr^52K7)F ܒ&,qk[Z#aaZq&fY?|$ ۍX BGHzPr{mڷaܕ^'ՀğG&: _EImu3Y}%4ckqUoM?T*;\)CS;zL4`8Qi5I#h|7ЈEw4[Dm*I|O8\'31d-6F}Sҽ;y,ʖÎ4ygDr(֘F61:B='w!=U#1c@eTN mula5|m\=s8y5 G=b2 #g^ R {?IIN%oٲʒd,e_[{ellïL'";v͟;w.xbOX7IKcdZ2'ޘU=4e]е&kx~>j) iU`c&#rKkXdCN~S* G_9M, @.45믃/'_]3U|pYŦǙjcbؔ[;G_ ڃҧ/4(+TV73n(('уi'7nJ^B`)D^J<sg]8}!Y5%ۋ;k 1`Ɋ]3߾r9MupӡR=2T#?HȐ@[uA1RrypJmj$AW£moxI'@k4t"M1 {ݸF =HϏ\KKt։ꩭ>Gk9Fm* oFcؗ-~3l1ݼVY5.YbuM:9 ) Wt1jO‹~ga $6N8sLy]A+tKP"#O}訐`=wOGu)#nb x?jc.Q:f'O2Z?aI4MH K'=T*ߚhWP|+YbC"ӝ]`:}LZ+f"/&͟wh=HvWyx( $|i-˒Ív^8C~{|FJ" [#L^H\K^zw?x:Ŀ:ѣ٨h쪠y7irٲ)!+H^\[<-\'Wq|:<-B/B(ݓ] o,>|z—$'wVJh"W^"'Ǧ[Ly\CufF"D\™(zj}@+ܑO_c"e6}(0QBsXk 4ڋ'Xː #yM{ i[*21/}IYIR6L IކxWm8px,Bd\+nX4):ٳ [ [l&j< 瀏~lPDS ÀkPr1]cP^Xqk trޒ14)rw-T/!kAiږ'LɃ z4 ,1yBB{{[( Qހ3 = G;¾dĽH.+ BNY uawnh]1WU<25NجZnPY ⥶PG{ Yr4 T;s1=7>0G$`(hh|Vu~W#MhPܵ݌9U@mYzh%qSwAČ.d )uU`3E8?*l'~ST!@40s 270lf7U, Ny03oJzDf;gʁGգFF}Nu-4܏0_I\;g di/Y`Ey=E <5JMhğ!,6d]M _4?hM rK/mkrWPi`9tiΕȕe奛uZ-4~D4HnLRa`fp\>՝5陙_u +b>"v'EZ|>+&kʨdF^ogQV𨩂eDG7%<*_L 25+Y[B|Ni([GڊsהIpOùR%ZK*"V=@K(rʰsbacKU 鏰ŏAs8  ۰n,-]-tqAֻM& ̮(tT{bOf,ʱ[XдqU' +v8{aFi+-9ۇE-r~$ $J$tYihkf`w\0(-(Y*B-7(Slac'edq@Dtː%jY"ZȆ [yHyg߆tq[t=mvhmA^p$+8 TYcܵgx]ht1ڶ93 aIh;pEo]:T {)@E.L'\8an7?M37ϯ)Dpn΍7qAU|,ygO_Cj4MS]1y ȋKDX^h3k݁로/:PN@l}5b姂>GI۶+ MHY %a9zx#\ܲ1')# Ոl\zQNǼMrdW_)~plVolIzkFw> ЁGϔ?%wn߽.jS4+&c a[&0#B8G\1u3R{ 9` ը_*Ǻ56z+ :RfV5y;L^µ gz#SrRw?qv 'z{ƍjiqx7rMcqnDcGEʸ]j"IL[jg֟W'8m ~ m %>!;?E6u' ?elxϬ׏SrnLyOp+ <8FGkZ҃eMʼnU$˷Kat*)V"ޫI*c؋=DuaZ8U{N[6E[[(3 l*'}[?`O'/-FBtL z}U}9FM2҂CoG䱡e{Ȝ{5S3&1.yai^F2|vb((C^&OBkxA  #Z!猾k6sd%)ģST"lW"4YRii*}ff۟=N<$/u7cw-\q"K,9ŀaW֑,Qnm;.݄Ψq{Bܼn'5)v箎!x2v Ai[ vVkrnM r4軨>ˠ@Y)_Fl 8=+VH*},0`P}_=$kJyIܮ* K+B qg5+yꮥ z >%lDp1myuJhYq "r-7~79YX+2OfqR8YNu֛ߦu"dO=PƺR k4wL8Kof.P|hۢ΂!9pA@Unyw(ϰUɁZW)ͮL f11szHi^Ӧqezԣ=kWzP3iZdsdƒuk[*qh̜V 74iV8SBݼ]`lok|~tvџ^qt.Pue*J{>Hˬ^F#dv" XQْ._bx]W{[τtZ٥ "Y60GӔ<xP>odQm+ N"_r"XRS^hSD$rong 6;Lޤ4,C^p+JHVRvtjUv4qK`W Σ0r+c l.لqw'Z]6tBG-??PC?O_]MM2 MzB6#VX7_G Mnt\F6EPIDOcg%1k)0N-$KST䒚N I^7?Ձj޵ԟ͇9-+ڳZ9I&wzph~ UN$6h%;gj /L'J$ՏQXJ`bUŊI6[\/F*mڢѬS.דVVy [2ml  M3:7i>iA_!:A% y,\I&؆+;h#m `U䗂 /OS"a-@5f<6g ;y(j}X$5aaW 18q8-i{H79ܱ?tWV{OV=+ʹnn|SGF`9kGEW>IGo T醊Ŭyl7.4pi|V;ɗmEK!ix~ab\&߭+"̺縋@a%[9)l?IT{(uE}Vjnޫ.XE 0p괭-d׎ec5ހ;;!hmʭG3ȑH*:cք3:gkB/sOGFUnG}8٭[zIzaڲ]Om6zpbV˕ٷv^YkG.y\MEvoi^1('գ!*b i ߮԰#c7X>h3OZ׊7bؿRb#CjJ쮰/MCt=f~<3 Z~|h+ hKt *}Y&B 5z;G*?wRӁ`g>n+2o${V!o Uv'\!ʂsv1hl JŘcE"ɴG*H^Eڽ.@? 4?:Ҭ?ŏh&Z˔lR/ZN5\/浐 |R]R9(n X˭@ 4|kcfsQdf/68FO+up%gN?>~NT~4-UþD;]$5plv"`Fc`o]kERszWqޟ_{~(g#830tέ"`čGV'R{a>|ZPkWYmEllڴLckrXnWY5Uч6WG 'LKf yVk×3jx"ڣuN -rorE&$ E4 `YZ1{ILVwt/Q rz'ǃ@(Dnu6hU,Y2[JL ٛgsEY1cAn&O7 GC͊ Z?g+I}~UoWm-N-eI35iLC* "ˌcF.gCwo5KaP,ܛ@ (gS4O8ɴoTN2;5 帍vк/]*4~S@Үl#ǥ|T|xZa+tU}AĐpbl)uG!GYC 6]mc~Z2%sK$k[˃y{YERڥ[:.=<= naMẘԼ"`^85MO2<5d[wUxT *.f[^"+e 4V|''+X덬"tpNwUU4Cœrd͇ "5I񱭩S >M";P 3ŋ6-{5 u~жUm[塟r g=Q BN(6i)Û8ſAjjFUeGwVo\ߜW^NܾlWbhKi9M4z>? R]gō[4ta.s˺8'Đ_sj~]Ё?3;R.gӧ1O&La1]9{cC w_sMg Cخ*gՎou *:@ưѓ (D}v> `zSLQ}-8b?PKt91#89)nuvola/128x128/apps/edu_miscellaneous.pngUT gUAPQux e{{ <ʒM$`8D4>mGg^G*$H+ 6mb}sW=T49y|6cJ ɳ o 9y%7[mU4sqi$|ʤxa[YAp_؊S <j]J-A7 Vyw=@1wM05Ob357Hnش;@PS {}hhSz鈇Sgr&+SmZʕS!-DkƔGN*([>fY̾+/{T{L_*XԳmmI=_XG\WD^ւol%ku`@2G[LX fmk R` JPyU< kѩ);]b fr 9) _NX3+ 9_p}5_X/$] *+ d4\֠^ 2VpyUǑpʾܣ;l ^$*I /E%Bl6s0 " M;]&р8M-38qa4Ck5 ذ|t^+ r[9ӕxR>˛lB Uִ Û ׌%PnX>g./2k͔ߖ`ccU"6*B G$쪔x{c҂b+ _-c^ѣQ27 [" tM}q>kOq| l'=Yw_cs9(:WkX5,{X-D4YbPH^ N"̞s}/%X,6Zfw /g;UBl/vۃ9=!قt͝\`o=# }$R_L DYSl!"$mFY:AiQfEC{w/"_t!b]ޥeiX؞^ Ⱥ +`C." -B[{Tljϖھi8+OuoofӕviJ,F1yѸ6Nڟ L6F*~#}0e=\ս܇MI/BZP^EsI=?`k\5+֪F}*xCPĚUօ\Yd,,*OsR cÐT`9S?+d .WpP4#G[" ZxE p|1:RQk՜h ֿ nmN;qFў}Y`d:t$ k}Q!}!=`IKOl^6q)6V.:ڮ Ql/wRR,uWԻ 2|k8!jy`Sm v ЮsrQkѥhJ|S}CװxɌyvSxO.N|vIvt܃O8wcahia?iT,C:F%k[)OXE)܁R&>7'遥:>C?P T!aC8Xv ]k<5׭_c-ހK$}v>0zYxΊ̘XFNq [?ú˙Л["A7ft%7g &r/Dr-qk7'2|jO:^M[ P`ǐ􄈴/@Qe1\ K~N-H򳈮0ʩF{C}^*4o|_=R\θ]uGkS)s?j;o ۇo[(HU+Qm~z2Dru.aW l^gA?>&qU:e1͕D"eVlڃO% :R7?q1Ry:pu:O#]8Xjs8a}Mws|+% 2iY&`DS;'3 9A1ɥr=.wQf(]gYu:>އNԤE"3#X oߚAܭS6%u Oy$!,P>i^f\ߦ[E /ĞJ[,~9S ʟl#nd*%]cfszoV7pZ;Wqڌg(u9'H2k+OvI$x`6By4 M; JIjѝKawo 0Em/Tdos\ǨQnW:;Ի6~v?yaJ߶իywZN =Ԍ9@n;~xXLúUF*!YSMF?/V( Lm9${ 5P?U$cwS۱B5bfS4Aw#0kvuet)ս&h1kn%{ 9بr&6܇p^EaJ~II7327Aك(냲3J-$q6T N#M_jv7JLP"R!܏fb?Puɧi.`/[szhhI;8 M ! R8#|"*p+/e%z~/¸q}(K;TڼN=}-XQ#HB nJ7(6#UJHV+!nqaIJ -W߶ 8n{z33/o7"S*G#iBؙ)Ik/veowo\Y[aI jQ4زu^t/,-It 8of\k/e5ח^ʚ??|y̸K`ԾPf[. =;)}Rʺ`*jKi1~?q|05M;0lcC:Lq&8ϾԘPsrERIy,&4-RÕAζ}P u>3Ծ)>1LSx̝m >f]#1R]Naع,7 YwMo|h-<ײ_!W8iT Qy>.B|6\N5cE3WAX}5 C63$-ΏRHO `ΎFڸ^|u C\;m^Y -gneNыTkCd$2t듒`F%ufKӋޫpIz[+b\J/n7e<.Tab-Bu]Szy{5-m1.++l\n ;]7RX k)Vv*1&:8~i8CU~R-16{ue U.GϦ%Qr_[ Kn`RQdPڵ^j$띐Ty)^EiAyH(|>\׫e#,W.â?J,GXJFFh?B })"'񚟰(*$VY,7_1J[ˆ-˹BOY+'+4 2}!t)⓲N 4޷;?oM-. M73gg<>'c $Jc.qlllru&HEnpS;Mm`\O|LIcf Dc`^^{/&ČDu4'icdZ*{tzpq.lm!4ڄo+3ܴs۔\&3…,CШ&xi>6^}|pGzC|2ҭ(LC*Do|!J 3x*$\b|blMЎJ) v:Q<Œ0˘I =v)p1Tb"AS3RGvU-lhxhfLϢRj #&y41|a) ?)$~nZ{RwORxH)9s\R::u@ <*V )* 6&/Lv/ jqVou/MLXqt(@nC_]i1cഏ ѥV4.'((KΛ xH2frBJߖ%a`X`c Zzx짯26§OrV\q_3m-;s(m#7hc'I7\-QC?Lk>։b.0taj#8V!Y5J=ĻRܼ ~ nܨIP<$UzFK݌߿ Z2w-JOG~ztUrDŽng<]?fX|h0)ЖV5XlY J>볳Xnê?#C\3s=% M}㍧g:$/ wOS t`B419tau~]$ `;PؖE-8YO&'B[ qaVGaKBW{_wa Kpʏ4iC\o}1Z+rj?u2G0J2hlig$Mf;%+stWFqx6^H+4|MD 5S=Zn_3kPGy!Q f.<ЏzKk@ 5aGhIPo"Z`e:իW9i藊UؚZ'NW^a}ˈ?0X&C>/F:3ɰ!\Rb"g95N& *3 ~šr^߸q1#˫">S~VC;'go)7,t=&ti\@‹[N|JganzgtWJ@e_3;dXD ()U!f48J.~~ʔgiBᠾb >w;Y06/}KGzs\aG -7976΂m#<12?G*{"b{?} ʾv ayya>1 1KM?)\n-bpU?ot..˓O1wW.+=\c.lQLb\OM3Tq@ʮY; 0k7 ֜R]n .錘0Sf0KPm2᤬kl' Z)$)_4v ь%T(C\ ƶ4c}lkvYͭƺ]Ï)=;<<줇qAIg(k_ccS%-H?YK+׸?Cp@P&׈F칗i;49u-gp]/6 ӯT*ϐBQ?]yv_UZ%Eh\\ď+X9 7`XRA`e0W CEˤpG'`Sm;Y"HS_3<&T!vC ɸaau%G`JH<78@dW"3CFVa>@'N8k|΁׉)$6?PqM嵘PKvB炠u/!o?Fg}/@}bO+k(䉝ڶe@\n JڃTr\w>j ͅ;}<}# )y}]R29ݿ̼g !P!Ou ?s>7:xʡY4[C?>Z}OڭLáo |_q(/DT11S.bYJD _Eؕ<`_?mm_CrI~)Jg'b]}HQ~ J)go6mAr 52<a(uGqV,+Y4`ÿ˪0u Q=-&% AS%)Gzaw/ƛN6|m.`CZ7K\ͼwُ =9[[ 1XpY]i: ȧ8k$`YEd^)Ӈ7k>?;uӆ@{™@&[^_']Γ[ΐKTgfN7t$'h"]PS~OrP|Q#N7hF݆ж$k1P#!ٸBgSra*5daA(Cn0s7p9 યImWRy_XAHe%SjvPE<;YSL̙T[/l-+rw,Q  T $W^ ,vqV #CDY7`o9Y8sȦ7AlQlcYDWX\(rE:Y%^R<Eex7$JrsO Iv։@†zx\Pa^@R.޷WNEHާ OPS>%]![^Y ֦:,Ob!ǜqI@z2Y1и% '{qf]E8\N8f}w7B++F ȧ,p: 'l ur?v&Lh$ dnw',Si~bF2H͌I,jR6rH/ϝȸjs>pI0#u{r`lF G ;ŸMKbX[#>kB\v5 x&wn# RWk?v8[ocr8a)2H@$kfEjI6Lp hBI+00iVO,"ڲ= kn%w:,ap|.{#E.q "Ir < {1qاÍl|:OPM#ހ!([m$, &GtRK.MXAN>L,0_\CD>:3̜Q*, =׬0:9؆p|  `oz(sT E$͝|M;Ja6r+ ;v3/7 Z k|V&5Sc>´dk% pJ/b*sȟ"9m CbD"/ý?Wi"ˎ|rh*r.{9R:neSXgaYs(oJˁ |8 ]3w!]RH+ml󠠾}{GGe0׷p?B87"nԂ4J!֌`//NٶZ&'?ԁr?TVGZXs008 cO@28mAsn[5wr\K1(nJ%)> `p4wνs-i:h$Ep$*ژsegQYO@ϸ/4bRpqr=#6I\*)㪟@TeʑZsG:8QM}2oOMy\ t7u~>  3~;Tj@uN;[^ҟ^:Q 8z6,<~d=sjvX UvQDK˼mVM+6j)Fىwd :!l<~3Tuw~ܯ8 7U! RI?8h5:"55,9 4'4j:$97<Je`*i ޙ?I7Cɡlp7DI|u"mc\*6gVSBU)!- ˹XКk{S:[ %˘G_"` @Lk\һ ݡr9/.װ{ *).3R߮.a`n%h+N Aϝ)KZ~>)T:$c˼IX`η1^>c/"U/q* `U `dMZt팚 8"L< H)8[y]PvDҴedB6P`vJ"2KI,!̲pUdp$T͸H!6gGYٝrb,+a?%64|(ڷgât [ [gdŪ$K'Y&F'8t(7+P ^*,]B Wn쾪c@ h8Ė}%Ih(D:́]A*־$ph4L0F|(a'uq,Wj-?^p$Tp_o՗f0 IPf/4NYyYR-~+/RȞ挜Lkh6i<%efj؟mV0X"%uRdz#"㱼1@T:**0vC;K_l_M.9q|Ľ=P4r #JP& 0,đ'h9J$K:Hi/Vg m[A.6D֪)C]M`אD_͐DW:bYΌaOԎ Z3ПXP_i ;ڢ~ϖŖ#.UD|;2CteJ*:#,\zq& 0n>#w71k P~d0*𽬈T OȚ{N?nA 6[B1mWZEE RݶssDEgLOS6.酯k~q%"[m(F,w?I"(UQ4tQmC.ɵޚ~+* jnDyox4nLS,Wv,F0]\uV/A_fbNQ*x!bY2ldhI C\xXN11A9#4iߩ(xyVZ0 amr-D-;7߾jGf^;€6p1/BOv$=|V?$h<K:  H~!k%>̓֨8\5@m(V@}9˒wlbb2+>]ymA:[B9c3atK kPWF OC"w 2ŷ UΗ!|dĴ"G;ܳߍ\ 6_W42y2'H׭MJr`nڶ8C5%]&yƯ֑yR;{GzS*{ëgI DljZS\M2xU≠x-6 iO&,b `'l>yFDBOċ66cʥISOk6JJ1*; x=U2͵O Hp91·58eD O c NM3'񏮿i)wq )8~|/&~/$tڥ;_~pM;iJ_7n< ~.>aeq;~x<Ϸx;9iuug~LhZd58س1yITblvQH2_LbTl ZMURqbVAjGI5zEglW.GOag] D Hh8WCcI.9o2SvT@1d>cnNipf·1E S,\-`W"kyl*˳L JUx܃x6b ƉZc=jo{Li\Ņ/`w_+墥 HVWPG)/kNw XR]뤅,/[go+vl3e5 S]gL\s\AYHRF:K>Q+/kTW:&ǻCũÜ1[RO/2֞:;ʷ}pioٓwzRb/7>Hv|d6'Ū0R_ ?n C͍K6_|GFGyB:Җzv)kQμk*ãb?(gh"VVz96s}=jĉ>s_\#$\^vzC{Yj(VfXc'-Zf7V侻HμlmQDHrB;WNϦ0BFq̚y"d]bMX͟!|R"yKߡ0 Ǝ!y8;$$&%ߏY+~cꛑ[ڰo;1qU͚%ddd )aq lrڜyy"G6pA'u5"sE \btvԴl=MwOOM hR,uw*}Q۴7 r}Tu;_ t. D(d>- RD+ ?1Ui `BZ6Pr{cW)~pk#Zz/Chw@69w QzQF$W'ZUpTۺ4/'E$<ܔDDlsqK}5S $ݫ:0*{!@n7_\PkקwBN Q"ߦǨ=XƆFL]QxW0T<7l=WМ Oz(Y֪ND1)6..m׸[G <4aahEtF]\޷/ƒBialdHm nuhKwS _Xj!$*cr tks)bK̳7b}E<3ip֝sAׅR,Xa 7KXN0lD<)MCnWKdUIUkcrUtDt~|Pk,x4+7/a"SOV49^ &߃X^Y/{sV& mɚ(WMIFc0|)ېT:>L=l3mqn€ye^0J*Ț"ewa?@K:y:.LT<1L,-- E9$oBN\?\1gSx#gbrc8w43y9șb4ӳ|3γ,> e iXCB̗{ѫ!NgJuvNXs)F&%y0Y _ٮfmVt o5dAD5D$7"3G`:# OrWxDO)7dwi(H+*g'ۇS(Ē"ݳC#2*JcԆ<_AX]yw4K ظFMw^<=Zc,b~CǞTO˾;U|r(ktUѻk]|{[ڮ`2ƍ]jJlv;M FmE  7t~}c%UY}[նGb}La2夡!$Ϙ"u|2iEz 3g'f&X^g{RtHIȇgb~>mj\im u"4wKg_/ބ /CB\6ZcV|iA+VPFo}H]"={aW?}Y8; x vBpooE)uHe4mԐ[> ر'1+*RSSrdֆ*7rUb@u5q㥯h:NC8Ty mJMy%P)xC\{!Y0 |~ (̡+FlyZxlBǎ%$=]䂶V94E"o`s~2,%~ yj\QE'~.D\@/g\BWh c*v/?=,"bkTK.cA\$.@/Axpϼ|}^ %٭HWYźK #_BXgv"# }]J<*SQol\0l'#!-cD鐕h= r%GdDS?Zm w]~!d9Ik/X7dsN8"$'\[I;2%)fg r)?%AIK /@ O?@~.wGz9YCb<+/"SzZ9 їM$<:,ҟxjp%X|5w<*x j:lF]PBONJkyxn_vr*K$9|КIw84646v%,~d9Lۡ"$7ys=yrLw2bӦ:[Rp;T0o,p=3I="վ_rȺ[e%obڵ"ab(p:BE>2CWJ]e3~:uU%d'eK]Dka2߰r ?$QȠPC݇D*N,0vW $݇=?Epf2.kZły 9BjQy}H1BG*ݫN46]~!`;|JF*blwMB.Zej m+>- ECtf <+RQ5AE:pvn;hghG}ʺ?[ n]z 2r ;m\ummC b4B0Ͽ:!2i{٢\jlژm^ѹEuVʔK$1{#Ix61;# @ ՌmY26aHm6uΈ!ØdHQ-[ + hnw2~΢`W/@;gP+CեmU[g*WcOR&a&\sDCH#R%? {VequܡO(xފ,90mχn7!0rhb4r -XLyXɺuJaGYZdE!Q6o=H p`mRg|Ki,G5`Y3 ƦӅ_JTtîH=q,ݼ! hpu6 5J(JYdqgM~k$5Z,Z Ovۮ٧]g)0P8Yjo1Cz=u.$c(R)`GV@x$ A:4uvv3(ť>/[]~ aۇi-.2_VoN}FG86fJۧSΈ׸>SR8}HXrXӕGnġ <n"/I¬<<#:-BW,: _뺵/sɠ!Dm.]~8K{ K f˒93< plR_4d̄|lD牙#,9tRxj2ti 9u~܆_05;+dq\m+@AL)[|:aɺeޮ$Q3{p7Qv!@cuv71flё@l<7-@덅#iV,xK%LN?C7ѷIG!A鏾͈EAVSxb qLwO; &JaT_5z&H ',{ Q(8,xaHOcDr!HQJJِ8.*mh܄Ѱ:vh9ϯ-qnj`V`5(q [Y,>EfK!.&| ;0HpWj[sUhe2X*J5%xs\5H A?pD?Jپ=rn=Eq!pp*+ZRKC!h/k޵"WA˦p&^TëXe*-1?_+.hw4](I4c;UOO<ͮzJ[ya[S,m 6r%*R\eȞuFC)%ޙ*&'1o! Yxy>A8УL!_n%kVvM+A\c#M$E"V{y(<c~}F分]/?-6^x< <\cmjZF8=͟dQp2r#.J_DJ>ƪW?9GnR2!{+`T(|AАx̗1MBA˦Spϴ%,E6豘xayU([\̌\o=\n鰞cMedd^%e)dX^ DkBG B:Ur"OvBC%t`9ܳawDVwmN1F3ХRP.f'&nioj J~bzZU*sLm^@3Dq$ˡʔuӈiB FIRvt̲Y .5N]u!"&%*nSloGCi7ZU>Y !$;e,|+>n\h\e.3(` lYy\.m '\_;f1`=CJ! |j,NsSnۣRH~Cst4h9֟j;Vg0/ccnfr7+ҝi>{s%a?&nЎוbkӕKgT,uܤRBCų 3_-p9!.LVY|W}nW=4J̪]d84!B[Wox_|iMVf'Sd3H6cVNn_DJ-)<)>Z 鮳6&kܧ ʼR\XErmƖ_NE 3B^vu;?^.|gϳxj#EC;OlJAhᘭoڰ8V|7g_}:{Q}Ufxuc*ϻ ّ5!qT~bfC :܌ҴOKuݱуcĊOmPsjPg Kw!tW /.D\kV\ل2w櫃x vSu;jBFZvfV7h/耟~d95Y4|1#aBcrw?4*ҳE ( H[ j[(}o7K GTm 2g%գ r"PjhQ}PQvqCT%&-;G:=HqY%]22Ev _N6p <$T#&ۊ'L&ُ_3NDo1c2o D*j})oUEH/Wr}Dlrf/C3t쓥@CxF orgŕp"F&_wF֊y<.v收T5!s7w R67Idj{#a?ީ/wd4`X % W,L=̪Lsƃb8=jC.+"]4{* o8ڙZ5bj$$鱖nU;Qn{kvt9.oA枵Ӗ7315EƫNaSiW1ݟ_äzI&?? >Ds:c-_3EU/ƹ&;H5]#Yѕx#Fϐ GGFGE< ` 'HH$2hM0F"2e TSfѷbQo!p0z,2HWQ*5mu%4,RH?Ġf)ZirClf#'!qqPK|LseA OsLWnbO:xpkgY+2ަ݆S& G F"4sM*۶TDT 3 &YYΔ4l-hFqw}SQ[*Ww8$V5%&()H?1tc71Mn0| Rp ? XY΋ah*H$ AD\-P}gzԩ`(1Gqt$hɖE?YC=+j/"gcj<4uiu]̓S!8WM4>GzSD^ JӷiqT5ZjU"#'IC0rQ?J1h@uVVd] 2XށKdLQ \D1H@AQ&}TzzCfyv)?؀ W4¢.*ZFoaꩋ=B=(@l^GG,J)㕫 IxMBq[+763e$:*]WH>,.sB WoĮ ɋPYv?K<vʼ[W@٨s5j}! LjەСcSZWqvP;06#9ig=鹘Q&qHW=@#O6Hv"Р uu53ZkX7EY{dp2McʛV.fv.x8L$.D"![u>[ z >j25ٚUĮN 4N@/_ U#Ʉƃ=u|_*ʚY'Ժ0>7.M_/Fk}1n=lmt@VRʙxZ&Fyd!'^(! 4u $ػgu06#QO=!v@\XAlo׷4Aw7FXЇ3:Eci -sc6pXXzE7{sR:VזVo< +?YϳsKU=z;r$!X#͹ jQvc, ~8] d"bB8UMEKwT*EVo?,O 21+1p[73Ji i-ߛӐ{L@z8yIZq… 4N ^0] ]wx,IMqAj[8XhX'*yE:t9CEIy87cɷb~_Jrhx vˈU˱~V̷[@|KTj ~)*z<Fu=;1AHˑ&=Hqwdܑ 54<-znm0N^o^akbŧO{8ui=[t[{݆H8?5s=)llR&d ,3aP@Z?!@>ICvIJS^#kutiX? 2Z@#,0bߊ3$k'(fGP)AlbUbme,a^7xN cZg‘yK ʹq3|\3. A\qJ儭@1i۔jy,rd=VP dn,a`Lgo4jI ˝Ld `a:YD( :h2|̋UFN(7(_۷x?PK-G1,j:;nuvola/128x128/apps/emacs.pngUT |eAPQux {?ml3's!mQ(Nʜ*!I#BЁ(S*b qJ!2yznkv|^=h9u9n.g~:'hy7*md2~Jb{ 9#C'Bǟz]$"[ ;`P iP>^ޡE5`-`A$ {#]QS@YQis b?O;GLm$U-ƶ(×I"P"g܄bc 0Rt׋pz. /# \k{# cUs&-護܀2 hM/+Ht?wr@U6**MӔM7b EgP DQMzK&#(r>̴t߹!'gu%Њ-,*%I6"M$ZcDKMµճ|ȿ1)Qgw~/x>Y;O'YuBwJSzj^50hV߰PWFnd+(4 ;v&^[M| hO{˂fBCSȷ?3YQfOjN$ee/FO0RENȱUC"D[ g sssYo1oд}G΅exEo"cU~rY7v#|q%IOrtBlGUv AHSxd4mfDFԙ3g`222Q-L v;9Wy!o &e ~W/ cmn9dxN:|1uQL ޫ#& krG7®n;i ί|H?x 6%%E EN8Uָ0Ƈ̪*sf^RVFzʆX¦fyYO+O]NH*sŅS3#Tpz"ҫkCmP !K!H?sCe$vF//y=!D23(FG##?jڋ` m'v .(KҦt&@#W/4F,lv 61(}(Dޘ~ļ =ٖEBA>${Ջ\UyKM͛7SPFSP9ś=erDE+s(zf|ɽ*bP Hi[%twi$}iBcgg-A 3l$~wE4T4^r%O?0}(I$سQˀAٶ!}BfEW,VU-l6>aʖC{wkĶܦ̵4mҫ+s::V*+p2wL2+?;+ϝ)wq)E穩dx睜_ -:tf7&>([.kt4acEZ ̩A X '{FpN$ma:8wt]>¶v&Eud[{O`]@߅4QQʤJ1A7 H:~ rFFb\IɏfYYZ 3QOR*bv`ј3ɱOISݣ?e)|o6.`Y=mBC*'(-[=@}@8KAi38K0os4hNWެ%u|RÝ.XN ̤~:L%nnTg-d6Sk^$<8{a(9*Tm !$L߻֊b\>~3[WܶXɇƫ_3fmg0JݦqYOO 8UTT8p?0OU?k?:Wg$/ {H7`I$1)k'ؑHVHYoaZ9'7%,b݄- _0vT 5в]r-H!J@N77zydhyA8|kv !u0(.Akp6GLsCw Pc0p9?$Nl3z̝꣰M6 dde uVMM6o#HKm_V5amI*jS Vd0tiu ϲCdvCEVI)ww-H[*/$ } 9?ATzz4-{A`鷳I *7Wn$ nev,hg3$cGoޢWoZ a3evH/SA7d՟ddpK+EC?qȝkn z+؉t`Jh ̯Y T &Rse9<dtЯ2OuJ!+I/pII9Gz_BVDE+G$v  ܦQWSⵀb/eN3Y_heeetQ_1ygg5su1.BA|0 G$Wؐv"iCtF u!F&l̸sQVhv{mo6/~?ky|~ 8-7ϒ~g$l7Wi lߘ* 7=軨qHƳG rݡ~ ~Bd(-X=''g*C0 Xx2u}ev8 *nMIek:RKRD?[ssDGUW𓥙oAcڎZs?vչؚhCvaiaO:kO֨G帛G+3 5R d%o'0Zҋ$Q;Ӥ=Ÿ N#isGAhxב"F 4_'2~W;wjÆP5 ׽d2jt>d֥K?fa̴k{v ξ@ڥ j(92YY3 Z܏Uy`a&9s@w:H|[͉xV px(b,mĊUDQa+7s[sa<*n|aXf3ѥ7AU1H# Ž7FMZ;$u]t)fF^\`6&%-,Cx/fV] DV0N͞/+Ug~[T烐ut5;vk[~+69ĵV=pՌW?ǜ7s\<$eiMT<ԭhxDr۲K}b\hDC9C%Ty[}2ArDp9rK2l*QE̝Wjf$@G/~D55Q/Zhwt{yw T#Dls՜kbox; OnRDs=y%W/;ZS5Ἅ8:P0j;&oZҚ>)0m>A<\Lu0PJ`BT'qT)W_+qIk_'Oj$fwDڇj_)S˟6ྜKߗ0'O9 րgd© |n\Fr;De)aq3Gw&#D4`Nwy,8\JѴV*n #/g'4x # Š-V9+n-|.sg"/U?9ت6_;o+W%35[%JE1&% FhRZAJ"J"qKtwq ΔxLDDMskĘw([._'^(''~B^j \eoէs8Lٛ_~(pmX4 OL<#q٣Nܖ/%9.-n"ZXG4>FmM]b~m?1͘7XR5AQ;'K+4H }^weYgc&hg]9"Kh>PQŵX<$P ̋`3f"1VxpgHXD 1C fIENw3lnebt7~82aE-m^D@&1bFb{+=ch~#9꞊v8$rUWc--wq;_&db-D90'hƾXD(MҪ]]v@ݽ,5[8~.Oh 8~(?c,:%\n! }:¯ |!nNIHEyz{ v<*J t0bFi)n #,/}t~;r|1=>ܘ?Yt% ^* n^{TથCz>8f;J\3ްc WC05A[pQKkx.Al{64*BXy +=5mS蘿\s0>I>Z|\X`%gV֜һq:[!/, D5:ADm*y}֔vݶ~[N#zʃMcg\~fr? $[&)sH,=Tu܇Y7K7+"VquՌYhM{NXs~!.+e*(Ɋ82nV?xTN]`D"LU):x܎7<6!j2JP-5 2we{uS%lK+#5~ht!6w .ypf- 1Nk8eR *GիOCZx+YU_oP^dd*{F`I1(ǐ-"{ĩUr] ;;Q+cОay@!pP+v p=5e r?644k*7Ћy(6yQ3R([ش*^{tP.\S8!jSվy/o^LWdU<_zY LChڧasc\QC6 iʾ7s^@@]JSPrߛYLu`HM^ zʼ:8h]̐sKU;onW *5NDCNcx/.Af1'؝c^,_ ꊜ {.暹.Rpx6mu;u,a8"ڜfe3n`2gh >4)xe4uZZY3+3dI'Am|ZבA 5ry^քusϏcx>Ϯl}!zٶVX85S> :d+Ɖ@@EKRTonj E{gg7GHo.8*qM09Iz(Snt>|^s⃨{1w糶RSQ^=M/ClIiy ^ {zQE7*U812z4y/P#o鑳JqkSb RO J+w1u;T6Mzp?wPL yES3W|a3 D^sly/t$=48]h 0T~ӯ 9Ѽm. $T1`W~8'F޾D`ϕk6S@.F_TEʃLL_d]MVuzw^gJrkqRd87iP"ZG1!vږx:&_[_5C|4ui Wvn 2tvqz:XtdD+PwbaGpM]t>oC5-q$Qc,Gߖ[/5u/ kԘYd!6L;L"`{|6N8QGAPZd 6Y=H^ىޓyrR7oms9xMeFĖY[ob g7z#$HYYX5[nY4Z4TLٱ,[C ݜwQΨYz8jy~Ā/9֤ @b*jc =gmЩ!`ϔ[U]Z#D;ʾ`adDß^j[tAWbnϧIP J[Qu|A\*5eja.|];8LWKVdYHw%sK;a6{&v Q@yt*a`սq: )ë.NJZsXbSbw~>RXK+$f(l{ⶾic—U$k]*5BGſuH||b5WYdwPĺqDҜ00OHb?qGeP$'ዊO}>57:E`I"V%-$p‹ 0|-[jX_J &aqv1i-%7c*‡Z 6G-,`(w,GƘp3 ]!@R yf֋4e&?0u=^6|?$I禐;Z?RCV~XvZ'oDh_״g'2-D~Sp 7ۆ3X]_AַjEY @o~@KHiw"ш{@EXu@VYrl6LSS?+ x}ώ@p@|gh~̡VIv![9o^5PulG[z6v}wG%{1<챯\Ewd~w߄3aGSN{cɟuNTLqKX#e}"#^1"N]7';XQ{ QʒR7(HF?D? $働cgL/kQѳc|ǟf~*r)wϴ/6HBŭ x+#MAk*ŋؑD5؞u3H/cb%$\`,T0*dž<G?Rбg6>Z|l[T.inBb[|s򢼘<;+WGdvsx˲ ѰPdB}VyYmwd}}=r'zeԩr2k(%W_fRWc5 Wg`a ܀G n?s|Hm ͅVi`cə%M]|d5?ɉ̮g?wpS`)os x~!4?˛~: ۻ-JcN O: Ub ,Ν)_;-Ћ -^V,bm>/nI-X- "L"f8ihP-7At0JE=̂BB$-퉇I"lr`wH.[im(*p=o7 GܣeD̗- =<zʄÂ]P~/BivSwWO bg7}P.ՒԱ+7 8Aơ,,w|,LY8pi+|9; 4͵TOj?w7䧴7wn Mza\FVaKpg8$C^e\4 `h A pamFlqc:#oA7yP>WyB&zvEcQ.7v <ݙ4" $ )P .<6tH3N4yAVYM؈Tȕ{)F 'mJ s׆~JIm/p)el 4|7+]D_ϖDl`0Wu)͉i|@/'xiՖz Лν.F)ҭVa}=· E.z*/Wڣff})aw8__w[zNQ5B/JA.Hm d hKگŒ͈e3>`߂_ߜ@E ޽e)Mך%YCĵ OSFꏈI aWFCaS9y @GS2?aºdcf>ͦ1 ew?6BЪqyiW`7#ZE5>uƢ3}"NL*8^B:8orS*eapn!|U{Դ]&F\.d0R 4PY)® WH \tkx+%R1_/ilʑv' P-F`j@ #~"?d?AX꽋kF+8LX_I,dP A>٨]Eq#qA+H=PF̽oWW~g<\ڤ@XjشW#@e!D{W,_W mzjV/GRiȏ*1/[]Yyo"fgHI@YS/(^H[BWW*ȑ&lkP뜛7tO"A4{"Nlě~?'nЂ!yDF[@P@g@+G:YwMd%!QP`N\8V04T|%Zp8&zVZӘ)UP/Jn|>)7V9AdTU9ymbuicG^ݍX8t3\QS{¨hOҐ;#Pr;%̯ȬK+̮|;/4Vebo(4AKs#:qS#ieNjMPg q(bryU+gS_^Id#IVב,&i˺@`NyL({,\:Ma?zZVhɥAvg㗌j,L;,"xil<ǟ6&-P=I mx9w@3p]sO\F_SA ;d"%B4ZZ?ƀ:LzvlRhV+H[-PK<̿!^&Sg1A09啺G+!5(/'33 1Hu>hŝe0`w ]~ٓH>L7wxvVUh@Du%L2C&ԴDAq[}LǚvXd$\V+,|nU~%r ڑy)e.,9ݽ>gɘ)!Wa9tń!9Ӂlp&CG3"U(6S|z"'Nu^Wqb)F@5&z ~Ct4 r@HC9[6Nļl2ħ= =-#Nϲ^^J2gxy0뼍?ˤ`ؙ*lOhS0ŀaw!|/U@ [-, @x0b2.8\l~e~FF'edSY w㎽{xKߍ=#$I`No u)ç{Ph.)zȫy,-'c|Y#pS :6ZbRn׆GyͶWaXtsHjE~QɥQ̉nKY:yߒ2> Ty e ò_^OVבdӆ C wuJMҋX f_j$LVW53H`Œ[` "|Y"cۏ uG>E:9pf:Ij |pH}ö&f=-Xa >7p}dٌҍoޣrBeE/HoW@FWG)gWz㦨.cc"nPCaw<(VU$ O >Ѐjm<|Ѹ?y+#oĜM/Gbɮoґ]Rb T/lJ<>Gߋ"Z&fe{<.%k5 c7Ϡk`&~kkkzA #Hyys쪸f{N |l|8NuL'_fc`Zmp2}y:c&We& .!immRfnyVz3LyH<,l&i,A$i=CeǕb3AŢHee& ꡂ0}|t~ዧomjS+`n81wG7TtN `J6=y~TR2 487ЬS5>O_ZsQe;  bݙ* )ZCrԼWfq4Fܙr\wb4s~^/kތ̽\ŃuW ˋċ^.fgaUג"|>#+$X6E T6Ag'zNI=m= J17k{+S󩷹mK{ǡPo!e C:O*{)Rٚݬa_?wgMZvKNe--̡lG^"f'P)%Oft|(^+vK{p ۷<4,^YЩzd\ wϘcx9~@o]J#JJyR֦qV?*ZNN ) %Lxhpcbco/%-#沯ZYDA{nA_=tlˌ~X~AjI@S4܈boJ!5Cuvoߎ? J>μ+m mPPz(Ek] urX֙j8w~U_>}ݿuH-mgaR?7A@O${\o$?PK(G1i;i}.&0nuvola/128x128/apps/email.pngUT {eAPQux ??aΧqS9̙6r"tbTOE*$v0-EЁ%LE4uŜ3uxz_#')gJ^K^Yn%hvwt]#}+ԮS)Iр{TBd4XDltptDԙo]=${Xc ěJ퀁6eǁQC?{0:H?BAxYIقrEiB>~1Hna*Ť$23ejn P+LxKDK2e ʇx {{O6DQ:ifen3|,FdǖopsbmərEz~:l-\+U3z~tb xgؐ`O%%r_m $Zg_`Ք&(z"(,w[ W?)N@^>͒./Q!5*p8K1>m"1ߚZXUZ}o '/W`% Rwɻ pfbRP4YQv+tnr(k/ݕN?#-p1Px`属1BaUUa9 3Y\iXR(Lg[玘UM3E-''XOX8t>z /ʎSFɑٱ/T*GWdH}`)E]ӿ tM vQԠ^x ~Lلn8Jl|!\^R\.hힵYnXBDbJ,ddv$#+#:--HYW=I Դa6+<_@9rZ~H{O&<l \X#v9 P T-C o/| *dYe ݫSTFx؅-[2IÄA ی[&r8jy5wl޽CSMGe`_BL%2p9:}@o9rX< oV9[S&1lGipc8B]΂VG@R[zlL>+ZgTRM1La纙S:!-ԋi;ᇶ;%m~ 1A}c \rad9<S)2\3b(쿰Th>Xz;  DUe~[?4,H2uⵒ圃v@7Ic |s29팥e_:J#2sIs6%( VTX{PW,+i_CV/fm$8hEo1s&TRWg[˔)zKp)ROVvV,˟z1ji!3B xCn0$;`:`lqGe(|L[cӠ=e9ɾli$rnKg@"?o^fUb(T.w|)4pm[J'gA$6帠?A+AЉðXh5}Cf0m\Ln/v^g~4aiڲn+ovC7gY_v;?1|=Jf&ڹOsiWD|R̽c@!S8ʚ)G %aǼc~LƊm)sI%X&i`3OxWq Tƥj:Y@r W$1~A|(je^s]isV|^cbzd;})QhQS=u$L8KmШ <]Yuz03@d$?(+& Gr͂X۹&i^(h`Ix6M$6S_wOS11ٱYl3$lbXVDkE܅:M;\j qabzEPU ׺b{+K\ӻ"#咿9!{15Yȭ"Y֘'<: sD|t}T" [Pʈo9 Etp똍 QA9b\ ]'"MF%dudSm93uA3v[uJgAbafj2T257zB7tu7Ύ]Si [_Ock < V V(`i/.~T 0RXPe\D@+U}qA_G-rkl_]1n&326(uz)s12_9lBNb]^K"1"U5΃ XY +`̘1v? ILxٟ-)8SŸ?_+uWnxI;0"AQNlF\*q.z|8ƪ k1xZ`P5fn_&:p PXc<2 E3c*שq@Q+}|K-X0]5L;@s>IAؑRt`L:{Ayo^Px}.cD d1 ٘BvH2lFps*1] M}&-zQdP*o:3l,' R.B]JD+tsNfxΑظw6RlVL]V6MkC쀍z['-=~C½f@UmsZ-F%vȄ>yk 7ƕ.6PdslЋiʈ0rFJto6[q&л"9 *ѭCo- J=9=pwpmb@X%\5- iq-C}t2cs5<^NI-'9,eE4g%]A7_Lo--(PI[u1Jv Lg(r-K:2u(+[đZ"\4 !sqE˱LIB926(d4{qh01N~=c|[qqxyfB?H288^.gTh6%_4!  6*mγiϫ٧}٨rAYZȿd5ı6r1Ͱo(W{8mS,~v()P Q$L?+TnmĈ^S$1j,sK w4Gq[wDႉԑ= _:]r`0GRƴ<=M &"5ᶼOr-3t$ ͟ȔMV.M'K)'zu7 )[u)e<IJ0r|8B\En7*Б!WΔi/Of%*NNƾb03 }Qn\UnS;X^"~?̂Z~ ^mdbEH0 SZƁwoF6T ܦHB^`ReKm\_neʈj#^{^h.tw)dJnˡqbtrJ_ꕈ VPJU:ʂʹE`f|͌K+ID ֋ skTCImW1O)n8s):2\j9}53ׯ2H] $=q"/sFJ4r% _ɲNͩA H,&Ҿ.;(AQJ.Pn TF"w u>p Dܥ&n@arFs[;yϛo }2f_ScwԫJ5 dQi}.GTSݚdGop$7a>#d\ZLO&$^v6ZdC1*Ԋ2fk_2 O^+$wE=$C(R쓃8E%c5gOo}낻ǕRJyx2nP3;$r֠omw%.%H(ơ=t ;.-@]xbwbweogl|f9&;_3X4ӫ|MxѤ 1y&IϹo?V=y SRCxǟm?]/)RF h` B!](P݉+KQG41˫)ᑉNEWn<'_'gٰ\zr3ẊƭrCSFY+OѡJȇyod7Tՙ ;ȄWA}#׆DF03sIԆSz +eչ:QloN1,Z(X(Z d4S8Zu q:hV@6c?9QԮנ4T.88 9/4'V;_( "ta޿$}[U͕VPAg,C5t i*.pZ7Vhɩ?Μ1ao|Wص|ШwFtKpgzڒ=z-ˆ֣z"OlLG|`|ZeX'&Z_-< #¿R.^;~mW>srkM ,KgdZԣȥG0hmm=\oiI5n}0ho/Sd;"KCsAJSo`e3˒i-#g > M$h ixј5Ǽ"ObI*GbP#e ɴI U9 WN3wGFF(r%/=(/?d09N&FdIt$"/a܍uAР|XgW[OgĿ5Y6ې1FMGg?he8I+Wu3](epb࿫[j\*9[]L&tZ~ڽvO}hbҷeGspoq6J~& -ҙ;1;(gTdO)2Wgݻ̀PH$,5@VwO71-4`?oxeI֣8zt!PL!sqM,QD\A{[|# \/Hh~Mhp!dB @`Cs}x˸?d1=' OŤ_?CqA1YxD 2?B= -fB39~Ѓ A gn8RS{LL 2I b87Kr#Vϣ$4}-Fv_N;tjn ڍ ',^WC.z3 5kFj 47O-R~ rG|C$3vdsqo9.6,eHBH9')]:V ĵc9on !Bd\I9C]N{TCeҽ5_{奎lYە x#82ڞ!b 5ö+P Lv FRS®N[zn(p߅P]k6mb^Wjs B!31Қ:!3uL)%@)u~%{:ud7@^r IЌ%˜6 ^Y٠q ӹ^/)W-W"ͻ #7# _]kղm!CIH;m-K6PPqRDbٰ}P`ٺ47c/8`_ZzmL^CZ.VqZ&p$<過=,=!^kl6;5~9Kemm)%Aq;YϤkKTѬ=k,]zkw%.&鸜2nsx˫ 3*tH$RN6t44[~ X곔t+dϟ<;Ns[q%cR7U #t Բ{3S+ߋɍ?0̞ڪdl~M>;{!w6sQRՎ7|EE{JGR" ns3ThZNTvSVq/hmD ]eƚ`r]W(5%ڷ4X[vLmK3`8@4OΓ6؟,fbp 9gSqvpuaqsܚ?r`IXuEtM;I!/j#ctyiځ֑n<)!=cG{ENҽ];0(uԝ%G c Eu%2!ixL0]o1ܱbءP X= 7BQǍxLgW/X}Vjry{!==ۇBM :4=]5˅7]]c\ѪW+AO1?yayxmG^^ouYDc]_iv oDʣ/*1Sէ7VbNpQ,ݰGնofa}%O6אkм˙+kW., ›RV, 2(=?%k/ N&עP%D,HZɿMByWR6TO)p)˸r^φܡ&$Mi ְ\ ,U2ZT6OJK6]W4 }*](QR Ҟ*{ʂ@`EZР!mΈc+)Q@`Z epTv=.ess׍ϩ%sSpsiL9 4Q`> ?imPuk*!LL H´C:I)'vK $ W(|ʶ%ǀ0k77Vçқ'n>Ko{>#~ OZ{!3ʐ'z๩Qfht<ǵ=.Q+yB"i;{<}9qt ,WuP[U p]풷7t{g5NUQSoeyN x>`z6ž7 d*5yj"Dɾ2ҫ}y/l1en%$dzXF, SQanיI) QZ9>ޠyL!K`i@MVc59ymvNdNA/_ OW$YD2Ӎ}~V?>xWlj g@"̢0iw p\k+FpW2AW+Io(WԌ=)mke :uB>V iD\яT}]OQ<~~0BX_Hm|Y7<$pHʏڰ[Oo 0st~'c-k\$l<DžtBΈʿzI!OqjmbbM0kSAIxO5RPnD;`W/4.ט2mBZX70IfI|xef>g!;Bݘq?>PVۮ@\SN*Y:߆gIa2@Cr -oO3Z$\|oȈ`P;ƆaΟFЗA!GoaĦ҃OJ@LI.C Z:X=@곐> ͺ*f[W3R`4n:4C>ixP~ظ@GK C OR,㚞7^3y%h?ߍJ,p1>q-d:7F$|c* \jl9cЏK bN3%Ъ{ۤ/+rT?6H\EŷMוU_t8 ;wGG^̎㦭nRw#]|n m@<7n}3 N^]RٞrogFR[:s+WkP o>цCޠ=i*z{z"%_> ߇TFmh{(rӖXd)S+9$zSY>kaDۦi:m+*R٦v?//ȁgA 聦D|c߬ tƫy%-Mh%3qU%]}֐qv2폭d:\-L e(-$Z*0*tUg %4*m|Lź{"Ek\jĔ,2ZjO>~r«TB`V?iu0SA}U4!a;/k`6+U[Sif`p2LŅ4(Dv< zZ?DSem)Fѱ|tl, u'` O,#I*F#78M۔k [E( ..WxMHbQd<1=d cmk;Bz ]*A4%FXjVٓ yKDњcEz[ {zD49PO- 5%moÿL?\?uSi.-xy~hzrY[ӤNcME,݈Z_ggt͛k-WxY`Zn &"EpNYc:H>&#{IZ ަ m7BX]^j̬9r9y|-+3m%Th'8R,N|#(@fAJENHY޷ ڤQҋۧp_9!< )M~_9v5. (ckCnpZӳU"ޠqv~ލU]" EnD)T0.#/޺T*iGڕ(AՉSNQr0? nu!z9M*]z1c=xs G 4\/\ݟ}}xY?&Zڃpt\VogܡPb֯] qzڠZO v< W|Q_Noޔ\~4ǡ9L7@C-d6D|t0Z ˩@uaj`MRBAc3GQ|j< wz]Ҫ4>lc7 Ϭt7O? t=պw/j R4$ f%xB8V|CtZmuevfSW%Inl]?f 0Qd<}PnROvNHD,ɻ3cvd|T,k쬅RB.GnHZ! W&=B'EJj*xi!ީK_]CvWb1 P?&'e?DKī~+7R+"b2:q(6EcK3m $sAS2Y 7˦|F<^۪ V5ˏ] 6=n`$hsZ#CtIa> tX"S܁8o,QQ EAA(2Eϗ37fKH\)~6 >zu &v;L⯸ŋNdB?._I'A^\X?«{QGג2(AUk)23-Syz7V:!)^ٍOy/`+ך'&t[ង)#bz@7 I$SJ̧dKJ#hl\p}x-ml`;m]w!DXx\׼}pE _ R-o㕸vevyv. ݶoRZ^&r\ҕLcvE&Ph+\N JTzTIKa->\hR9Ⱦ q_ޮ !=x_4I4dWM9zoS`YUT UŦ|7!"Б(#1 mE;I![j>h5jtCI2p(l$sN] C8Hϰ Fݧ 7Mn1Ba<|mﱂ0i1DXۿ^ݴ8FDA;_hd* *LI&ۛ EZ?W]a)'1{lƹ_-:]I2wTdK\ |*ҷ_T^鸛Z}׎t7f$~w8+a]u_|O 24f7eVc16FXD2_`#l/{WP{"l vW5D yCX]1$~F[B4IOa=6ۙ l^Np! GIC\>&<4'&]B1F~'9X[[ zk*W\R]8LҲU)VhjXW0ܒOIe oQ&a1+%x|Eh@TXOB tV#!-م|cMlD[:7oN^CX B;b;qʮ>e ]J\x!e?;Gh~L6ȾZTTHOo/kx1n>Ǝvm#2W(*kT|g(AU3U 胠E A~//}YP}_PiOsz<'/!]u^FO;hzV (W%fz,.(D\_QgWȐʅ|~ƌvlh?RbY%%JѧP~4݁/ָOУn'%aW3 e"Q'6c V#i=Bi -x9S~u8ݎpU!>၁Ä1B[˴nLC( 4X^.yXSja 2e`^FRcff&ɖ=|u<.b 5Ͽg(cG7k+q.dDZUŲVʂ-ar!$ϹWsVsT6J~%t9 2.)yLxl:vrZO[->/|[Xxz^c5@B-}UaBG<''dBie8ګY.Ygθ 4!/ 8F2i\BoO CjyHw;Vǻ%\wB25"X?ʎ/C"GH2y𫀓ծָMؒ)zWBgOJUDa=~l*G * m>qR ) sz%}|#  XNثte_gP7ݖcǷ@};ض>970m0~ h ,l*ܥ?ٸN ¨՛y󙢯; xڀv>G7֦V -׮7t *?z[Ebd\%Ēd_ql-K@  kEiTnbLDBoVU.&06AxgErAcIت$-Gͯ_[%u)voM)kjAWCw? L aϟH1J`fRsHng85P^1w "WUhmMY{^йyg떖xZ{ƉO/vI}w>^.7aפ۳xC¶,d@E@BgE6wj[jY)8on۔n Qoښ#Gd yC oMl>w,xf3و=^gv.:ėGn}OZ)vDPقGu/|>X?3+~8q烱3l!OM&| ^>7. iX.<Pl^i^LN N;B;I -Lio~#d]Ɖ2bB2:?\?;qETiG0?YLbh e "f8gApOz/8Xqro]kjH0 g+ٿN; O F;Ojd6Ew v ij׏}-_tc vM|6sB-F]˰O䐺.娙`6kVnk~dc-(a'đ]sw$qy^} @?N`yV52 )L5 Q9m 44D@BNa:JjDUx-e.{`ץg=zx\5 K|9oWӝ2eh{XAciY0u` s岝bx}ux$GY/+~<lUSiՎ }r[ 9n'F8JK[ZHFw-O4=M&fjZ[hk2e EZY.זNEc/6vfN\{DT_j^~3#bE+p )3qfE?4\޴Kw7N> 9=NFԶF)˃e/8m]wtS:߸VfdԼ{,[Óz)i=1|EN#=|Xqz-3sj[x#DcsWsW E#*ТhYʏqY {Wܤ;wAAdʫ.Y^̶|uy#զ|OiєH_Έ(Ie#]l_g&xBŹ1_PHyczΓ{ AT0i[q7{fAK : gu: ;Hf%8\05m=l-o\A:@ ~oO>B;&4$ncI3о;'UʮD+xJT 9DcfAԅAǩG\9EGJFFx)9;i_B_u9u&\BOl^5D—kƴC4T\1h>$lB;lS%gR-y*s7ĿӰ'WU39rfoܫBPT !{SD9if2ʿއ#ZZO䳕7_^Τq[ߌs<]M$۠~*!%u@4? N~;1zLC]=nz˞ԙk{B/dy/@#9eR\Yվ>c$ӺC r%$m OL2}" o75<7!aڴr͏i~~.+E -E4NKgNj=C01bށ DfL`9r$'2u;"Mc`)>Ttxצ'"+)[W,w'FP9u jMo:*4h4 x2s*Xam/&Aե2݄ɞᬑ UbGutьӏgE z FOÇMM&ץUonI?M:]1h+[[23PA^RxXB31'T_ez73~"9N!6(7Z_.yBebMHY:˒?J]bn< Wˆ%}'KϏvs/IްaCqnvvᅲ-E%%e%%:YTx?M(tl38A#KESp(:4vnPGTkRÍ{D(S^Uh5lsyң7rWbU?:wR+Eo<{||КjK4>?|= ^άW/ue|:w;D[>mmJ/@z: r]W f4O9:}W3fifg 0#-7Lcگpe{!!` n!rX.kh?ǣ+ї$>|"wj147d)9 F*KSS@iv߿{Wק!F_ki9A5r+B`J]źVkTʻg"fcxr&C͠^jYl;Fڣ1+hcc<"Wnt睜wMIF,1C&O ң Ji@žKCWhy-nd2E:v?D貺 1|{7ֵFKvȦ=#~Y&b }̏0s997^Dp+|H.[*޴Jdw̘]GH32 IfH#@"JsCJqf1(Sg;p>l&U,L!8 XG`P? ?~0' GG?`BW|:@곙}gfUaÏ9"~\dNC+sgiR3{`gQs]Xhuҩ\&`.,BUnsjGLQZ9J}7@,NQWHJG)]953jg)Eks!C%i5UeϏZtH?!kȖ͛іt3=_E+ rsuu9 1\MU) hwFI67$#\s \uP֛_|q T^<԰gH!bxɓg&vp&=Q,ʝu/:si'__w6OnU3Hx Z:ZG7JBN&>gۆݽ}+&uӜ"_9]E*\uc⬒jw B)+E6\gd*^==ݢa͑uF (Ǖ2;k5%R㍁}7ίUN{rʋ?1]GMu'6ԝdq^M^~̆jo_G7~rj^^A\]zc8՚ϯ}3;<…3?3/r ;Tȼu@ѓx;p8yQEБ㆞}9g^g*C Sb{dl  XkQ E<_{QUa'FCawѴ{`zڭLrlb}ٳm i < 8SnU%"M.`3҉u%Cm|jʼn-LV́ȷzT ]'k**1#W"H՞@+eZǚ&pko!kޏ>jq0JUG&ޏq1yv+2Wk\ԎGgOj8Wƨ,GoL|b];[I.'+NfX7 G)ܫ[ب]u>.BKV % ͪ| n20#>oZa ["*^lY7IF?w/k.6eVyYZI =s&&q?ht!N}#FHW p4Oi);Jrsw#he.5ZW` n~Dے}jlHarD㣴.q" ^p2Y< ,\gSڪ*W˅^(]zP&>;Tcq6\rnh?M2p<ʅ]gA7Fv{ O?Nc=o9rLԶ:Pa ^Q'r#zg=6 I.DaS 3&Rmҡ=7;;@JCڣRYS?<5Yqr-?0=| ΨזSA(Z)X ]vJ=p[+U '0ƆyM6ͤx_ʼp] h`PXǵ+~}L45]CĘfv7(Zbbi;vEP@ضY 6K~j: ߯Yf5.Ӝ]e`^Xi:5_]V1vcaҸ;;;r(u9w]OW jbE@W]_BkCF~Zkā#iFqrK1?.&Yy(uiCm;A_s6ڒ*;ӊf$d-3]2u9h .xٍ9)tiXxDY g$oL6Pє ܼZA.yjFi\yI{Q 89lqN8@Syb GhcCHرcJm 4sYugr]=;@CX>ahsL7H8Nakx"9XGD0O _mQ4-Mjv/:˓q%ܿpG !tc9Lu;2OuV!j_EٖWoҼ]zaOp: _T98 5KEUݳTi]؇+0 zi/7g>\eLQgi%ߨPؚ: \ڤ8+pP٬Z/M49AVڷ/вuЏdHZ/yZtd=(`4P"i;I٢ 2BU?Qs (DoXUoDffT .4 ^d[J!HRrT%W]>V 慲v*JB60%$Ҹod4&)g0˙kX0ѫtu!8p0WƓ xLuZ"#oqKŤҒ3GFҲȡAnwyPV@ 7过Tmׄ*hyI 8 gö/ʜh?R8Q" 0St2sEc= 4`ƽ y|f X|Kh|m5h+PxKS܌8)_`כ"#2T_oFTjpMcoWz 7izc y"vU nP7 ȉNkNV|Zci;ƶtuqcݭK"ƙ9!QD52l0RD,4WSP|ߏ4Na(ڇKբi/w z!]+ 7CJ(ٕAސ`#9 jOYu6߿Q%ٹdѰ4u>stn1O/7&>"gXφ /29LVq.6ݲ2~ V(o@L]qyDc[zXs65OJ4 T d`Gw";vZeҿ+ׯOF Oȏ+z?>\e = v<-(\4[8sHH?i{+fDK$%l (c@󻨷ګ6`{n0\e ;mh] A :b!զHlTJa]ڬl Hai"㱞sg$W4:zy!vYrem#}ye0~hRkDBGɿ8Wo-%J5k3[4p凰Y2MZqq.`^}8D]n HYRJIfuj>Cߙ Q[ \X1|`+}IRܻր5«I5;\/160 퇰6)dsOMܛ6th Q^N:pVQ] lܼ%2˪O*+ Xv,@H ؁7*tuŸ.>f\'Ȥ!w E+"hQ1"E.ǠYgנUÔ9U LZ!\ Fg!Тm' U5`-O<]sdPEQ2."zO9Xo/IznQd!W|Dfs9mUzs9*qk_.aU[.bÚImz D_X$FcAkY3T~efmAl+e+Xk8c&r& z͇Az Qp>8exm-V9u#ĕdM1=t('1;~W״Y2[1]!iqj%mI6dRېaݧXhib,'& rjlb5w-gQ;W 2:%)| A/c{`p,DKѯD`:hjDtU$7;TCEdis7"U^q.勧S.`zJ @}5d8dږg}H]BsՁ]#h̶I_#a?4j{pCz?)uhY<'Ϝ^rsUЧGȪQ"F90pͣflȰPmA6-&/qԇ(\yn5T.#x< dn(Hf:k Z-yǘ!;kh)QIo{/uAsքbjcu鹎ʟ nN>&s{܊9%eN.%:;/laxQtLv62wSau yqNE %_ǫ}UKzސ|kpSWղ]X UT([ -,AwMz111,-ۨEM(ڞ7~V^3@KdY՘5q batlF2=+hD4 oBy;FxǏzDڟAIqY|;KbD?!!M~'e,{|{9믃g7ebG{wԂln02SxNI o0}q%yjo"A qZNO|jAe9jxOcQN"G/<|5;ׇ) .MyYx{WɅŊ(np!RmYan>\q.wv?dՔFǺ'Xl/+s [8a܀kB&=#5yvRc^ʚI~ "!6[""hȏ7]|\?ln$rhheigr/ABZ=up]P=PJ!Ze+엔%g5גkt;tP4x':ww侧烄곆Ut udD: H:|$㻜о?q}q [lHkmִ爉}o\}ړxdMg|=zp;1~zDCMF5bG=aGi\s-!SFaI;X:0{fl6]GߨXgb1V^:\da? id5 0{k)X%x}f>7E(-Ypkf/)64{iMpiݣ;pLpۄ^O-FZ),%W<6$2b8>@8\f,E*i$5y\l<wLNVع.@x<ý*=}ZЋn/Mؘ*qLe^Ϝ dGY~1 0W|+uGkL{N*q2S9)Ek)\Ka3t9L#lz881z5k &]JTihIq%`/4bz;|aTNO:\>"N DZؗ3D[DZ!*h*]6,Ωpy)P~N8Jp3;v0= yõﯯo*[ JYB"yL;kXþ$|tFh2 (8ҿ&( Rz"sIO29!z|Ժ%ZRfWwt9K5_pI4}_5e+GF5$K뤾?>J0V7gˬα5~1j՚Z{Bh?6IXX rQ;c_1kM_V8⯁O80a :)|*I7V߈Yf+R}] ]io ~Dƻ0ɸRT7 :(zW^.j?-K_ga `,CmQdvnȓpJ_+A0mZ..{ U[.WM̀ѹOl~own@2`@y@Z;-PKeoG1렔-e/)nuvola/128x128/apps/enhanced_browsing.pngUT /eAPQux uwX?0\GLmඩ2$JSJ[ݒ2y53W{ZZVd|>u<ˉv#$(@ LNYǰObH&B|aHܜaeklX{Ԇw +pv/ؑujpE+ݩ#M`0!襘EȖ0(&/;b\,ߏ8sb} b7jlyC{_!$6I?MQgϨ00x9,5cf'ܹ*.p!! i t$򋐳2m78wEHRp 'Tq!NWW1piG?.Mkil1,~,7s4ڨjكwKq{l#cA"A$A,f= %RXoRM%:U7XA,4 D&/KʗR54IG tVYRR9tSQQ*݀^'pEx:;0zn?9 C0ږ%&҈S.j=O6C x 7 q+qb7E7>D?l}̊OXGzv$Dnо^?]d%voUlEN@sB b5sF}hlbK8d]!ą\b$D8j{cTMՄ5GotF="DR&Ӣk{u|VNPM:qK#"Q%xp1ī2:C0xV_i>69yB9|1r&@gosE žb 4) FyLE3u)3__ywdYW`6ꄞW,LJR&Bxh&8&Oh}Zl3DMGGHv+啮FD=aDr|Ԇ-JWS\r9]3!`4N1 4hM P(~ꫤ9ڢR+f-b]D;0w9hi&S,ݑTIu;CmD?(K޳TΗ}AHXՕ_>CW̒Y^;\J}n#2!fsp/S$kucuM<Wbf:"I!(beO!r*`-( ^CcYsΝBQ4Zt,Ou^%]fUYŅ |mP5uO"|P_ 8:3I:oh0gPv4*ÐjAk^5,8H˅ =턘CC% fO\<0 0/0PAVG=C4JFO 7֖:4“{``j(6"X4YL.ciȾs N8YnrWX ךE+m+2T5>%>\?.Q4f\~l!pn2Jcr.S{l$LbBPOēq'X`'% OFy⥲;?wq+8rP+V'c"3E;{O9 8}zq In>|_ȥX̸Y}`̋  2mL Z` 'Rw{*7;ۍYKnntJUڳJ:?Cp5d>}?]|Nû;R.709hDۨo"l}۞9Odtcs~LQkO 䳆$KQv<8* 8ޗ6UĈ6Qii$e{ *<6N\H7I5;:"r?!&~U}odcY <C=A)_?.f}KRXrl:>>MwiKe:yƆໆ,N)vw*%}{#fzd(9hG+LPdI۝#GL5}zA,TIu@(ȵȭG zZ'Ȥ7˰wJJѪRTZ%KrT1FH#ދoa@VdI h9b·PŅEB`FżD\c*wnNjtZ/te7H;V~J!:+\0[J/?75iC,^a"+wkέ;# _Lv-Gϟ50Η”嵂ĤUIj&zG!ruFS Z6%NY\@|}<^}7퀲܅9jm)*E=g"L9&l%<g^df||L(RGeXZ͢6NB;Ҹ:!|Ʃb4C_U}A؃[ňנ;Iv V c?>{E?7/5SeKSІ(k; C6#,z=sQ|N[j?^9v&<@Т1;HxGHˬzU=V[ K*APT 1e*M|'~CFBmj[6 '@Z&c־>j00" `u4/37ڄrN;rSTYIǻfN“ &Ü޽;,%;|HqGVm Kp%G#!և^a0 Qز9|Ygޥ+V |y kP΄[U:cܛ>i~#Zx[FҝW|ስU-a\PP:H'k.8JuP@!Zi-)؎LݷwTwB=/'l/;>6.w]&6dPzn6[[D^OE @DϭDXN1a|#`hn;ڮŹ:C8tr<81|{@5&Npm$l38jaIsGh*_i9{J ,Ǝ֯Xvrҍ:;ϕ0'a# D >{cRJd ekl<H{SS16c.a{DІ9CO!=iA1@W2 bb4sWMHH<~h{<:n/=ZPKci+d#+)zElPiN~ pϾՖ[NO؎8?޻ou6xGu݇SѤxCa7K[%0]Zߙ3_6xȳrXmQO*S?ЄKh6dhTNg9Q+6 q*wwqUC/j6kK]wi4s7s6TOr߽W7X `盲pm lೃ$Z8__?r3^H5ih̀7Ñثn%O󑊱<݁SF/˻ Gvv  :EͺhϷpdާٙiȂgps?A_h2:b[Po NAxSn@5 V+}g9Ʊ`§[fJA'8j_^&a?s)2_7Ϡ‰lўi>L[CiMW;?t땷ۃ^!ҕF֠C ma߱k[t2CaVd[`%,d0[l@^3"sAq_oy`AO ?SJ 7 }Q1> }^ MFԫ?ؕcRў#F <%tN96Ju.D%zNʓd7/A47TSjL>+dX3?LR1 M],ٶ8Ci0䗏njidOxP6'$EN~/¸a1g\,K6s#YzPI`題4ҽؒcǒT/4WQap3-jwk,W֕C 0s kQwfg?Ɠ>:s@gV&|W ˮRVRG&d5mr~7 !ڦ6NHbP#L #B*hyeN!g%G944+Jʣv۫5#f쳶7:1wFd/dpln؝W U_M8LKy% rR*xi)Lxt_kX#M35-[(Z9F >f{8ByC<Lqӄx2| Ė Uýype$l&Ҝ^_rzŎq 9AZM[}sƵVۥq״ E.>ˏS8ضj\*!81VPŗڷp&?,^OQjͧVA@M߅v7%g;̢ήF#LNnBh͌7ӻ tP$, b$|ւA°켷d.vV ,~_T-H[pX'NzsT`KqMl6k8/{V܎)&T&FcJ2$ 9ً۾L. ]̷Y]!׋* ^Rj S*5)i- MKΚvE6.Zrݸ#ݑ$@'?*)B:S-ޜ3e_ZK|$lnfT]G.D`1NȻ[_`X,DNN[2qgK3"W\q{rL$$|pv JNQ,>nȱJ1f.\8@Ety.C" gm(F9|(3i@SkOB'mj40 r%L5S1f q}C@K"z-}f_ƴt+!K#| F/4;c9JYq "CaWA[1O~+pA?LpTXoMnVX%gՠƠuԵ۬b?AlDǽf 9i7X&G:~uQ&*.JfP*ZbIp -0OIՂ ?C/ܗSޑxiO꒴h/_7j)Mp5BZeCPBJ葎B!Fcn$Hj WA)\%Öijwk&$`@lvl7.Sds"T01wLEds Q kH8>~iFIy'z P?Yycz _<CR;ƒӧ\ NQ]5ꍴlftM:܎)`{'HNN3Q !˯7!e*_53)?Kz+ X$]i4b:Lԇ(61S4 &*K˓!wrg(| Nݨ ^_^$%xMۺsف8@([GouH~i3p, 쓲Q$st$cz罖Oi:=,J|'@$qLk$o%Zž䛮ک& [2MKh:icʟ$o\.濤>A|u)~|)>w)wV*ish#'*|h矯@.3)wTؔ lM=v& D몼U0cHLQ)l *Pǩbk s?/+]nˎr{,sx!e7%[H!:)زuaj1^ESTr"g? d_#L6_!CW&Z5O J Sx3!W`-ע2QG!D[ܖ!LP{LF8:ZK_NoX:zTJ .- 1dQ 53Y$GZY$7IW;wR% ]ٗմ2,ŁOw26جOLMTFeIG[UȺKٖT#Y,:I7XFT#lC̎>}85,kЦu5%Wb|mt^~R6}ڥ0w ]l@]2>6Iժ:,Cv%CrZ?(LEDŽntL0T{q.~ޣb{N"MmCaǗ-Tݗ:OymH !8^*+Mͻ꣏g=2;f_bf$!%yul[_H ]:ǘy]֑u6 Rrn7~)ynV4s?bW4&A*Z0d"҃GE|KČ=%z}c 6Y(W{O{W,%Yle0AM)~/sUu6oo)0#ޢnOM M>wK&ĆFm}$Y?_WS0Sn/qVPz!eJz藅{?)!VRbd,\48ViR"NiAgUX޶& [RrVi^D.ZI"#.q ^`4a(+ң5{uGDK;23k)B8G]T#gfxvltfa[t9q?p9\ϝG DލB${N=烟!3]^g癉$ 3׾ol7iQ@7D4ʙڴ\ХeEl~CaBk(G)rwy1=l;q.%pEԏMvQw*ӹ'Nl*j:o^soY909xr t0ޡWDTD->m)dxlml 6BUeAgeA$)B`~J%fmN!^8Xo,7˙آiE."\S9n}Dh%FH S %x\-0k }j%sOܑt.xVB8[(߲DCPumɓ0ьFdi)Pwa࿃b|"-̾o=C0#'{%l/ǜ#5/%Lt7hֹV߹^T4Ǚ=l{I&jBL#>;[L1U?&Ç)tvt?oj椕d`Wt,"ج?.ZyVyiM _;l.YGl\~!@9Aj_.Þ.@M.@c >ݪYsI>, ܃,Tq\3qt?1~\;)1aƂdFZV6#T3zYm;?}Tz]׆/Պ5?7-r*8O=zsP XK]3EZ1sHTHnY8Bx?}:\d%M0<HMP]HK=4ztR6"Tu[ϫss:-]b`z[ZZ^HJ@}͞1e?IH<"'']j੺sNٌQ, #}zhzOHB2|'SlWq<[[ eSjU%#RD^;t~|ľIѫVK)G);qH8dNOis;j?1WpOaz8b %1vWe>"0^j<8]rnyi̞IeWIm&Eۭ!n,;!tϮkiEBJ!)D mFX^ѦqcKm"AM}+]]L0/ io(KJ".ϳ8tZE-J~wY2kdBUژhv }O c:vG=$b1?dSUކ`Xi5vc.JH?$ǫ2ЪwL&|iF{jE=qZ=q{^N] Pz3Ά1dm'Ŵ&|Npϑ("J0h܊3L5l VFoؖc:]_MkZs`vT }XBNaDX<v-@4tajj3wgY>h0W|uf;NkpMxL!mJdl܈{q#;p߮L '[x:rI0<`JYiH-R"Zj>O0k8/[s.Jb"Һ1>!ZS6"DR`T%I%9EwKb]{YN љ)> VN=?kOҢZ rT&@VsFIp}3 =*0t2 K]{b`*E.R'-+jKÌ d9ũ\ZXS^W$M`kZQU&ގ Q]raϗNj~ i66OːGG)* 0%6)BQt )4:?!HTiˤ],`» 1l _T*dG'fpn\hn5>]g=Ys=WgПlKrRɣ~f{a_HffRzf+۫1|3`J.8A Ʒh)Yho}G%*򋮰OBBm N˴`DB?ld siڧqc~`nZ 3z/fӟaN-10!N'4k:A[*(D;1>Y|xr5}aIPk\i)JVT ΰ|ƷedR44͸:oENH2T(5 P^>F9Lf00Ak[0doӇd]ƻdB+jdMJۀ ;" B-#;`l򩜢eh<f{ઝo' r(x@2'}%_Bo{qW!.oM Q ˲Cw;CGA|䎦_TfrSRlY3.e-O5oS\kvo}vx.ď? NKR"&@b`;0.!FJ"ǀY~ԁ<`f``~2`sipOH8z:A pg}" ^@OIm;[NS "Ȍ]A> M?=Oyv|Q9dWQR Fr}\Tn30\L3@eipsiQ,I,mVV-I3PrZ08$8u#<%iƢ3lxw;!o|Qz0Wwwg'q-f1)wPlmR*GX%^ß[$1 ðFh\,]zNIt{Ed81׌tz1L1O௱c8-1ElJH b{|2w*CL,ʖfd.$[v&:-ۉ&Qܜ!݄Bp&Q %SN`B?E5B;pmGLS&31rvJ^>` ilnz֕ij 9of['}4šC[ XE_c ,~f d(Hh%DxUPbC |q#Fg 6ӻ+9 7D?tC%[gp'^ԎNf|7("\&:E;F0+TY^?Gjꊍy4GsrH]Y]M1C1/kt^f߭Y-&p. /WEj D;蕇{zn NƑ(3Tx-;r gц0=UořJi/+9j2w:eʤGX8~u6!WtCD=DcX MWbncI1ZB-* k.KrZ??vC'D凭'ۢ{ EMƞ~;=#0F &?e= ]ƳW_ JoĄaV)Z;Z'stTw Y 47 7/w&)7al2i d?&KsجW4Q1Z}|+* v*0Vĥ@{ݾQ`r7;BP,"joJS{y{kP b0uQ,qV7JLLs\$k@w͂TZzi4*&; 1w.W rP~9+O,t2LO _ڴPE$1Zce)?-T{NmR#qiXu?3lLY{uld)!Sa+L0Ks:"_u1]jT(V!WA|kR8F쏰Gբڣ!!e$$9fp``sUA;A_{6A/ +dU\nIݼ LdTxp(kpq"Qߐɕ6׀] м29^0Z3Ř(U $}pۛ3xl'p:U6IlG-]w7̪'z1+%b̀#fd7+@~S4WΩ?e}=(t.c;$g .3c.w|J s.%nY^cK9ky ׯT^Y< '9:A:|:6C8w6#AUWAj}ennϓ;I~G驔B ZB+%^ds++/VX 1z)[-%p0e "Mmv`"MEf 2 ݼS:U+mfTi!h4e:FNm^YPUh{fRl,7;pbID޹@uhi/7]N_2ZBQr%57c  UZ:+Oe?';uQ!Ysݢ$wzG\>KAp AIS+Z7Ì'.֫Bh8d3#s ˚ _{"Pӥ֣,R[+ G1N fڥ(I-2";ӟq(^]PZiGw+DM_A_Xy>pFh+vN9Hg2BSsEI(t ٱø#:y&yV*Vw2?2}9 l<~IYʑϻ 2=F{i O㛟RT/mcu5JlSZ'4OCD5(QYTg%' נfqw8ha=gɋ7>cΨ͊xy}e@ŦdRj#ƅY(}9Wb+Ƀw?|ཱi1lڳt݈AHD5TS|:x;Ѧj)~pqWzT.}ϴOg9ѭmVIq--0 Elo0˹z} JFjA0zو:R$=V!ﴛ>a9]$8*3IKde`IIݠ44 0>;ˮ$#z]`>/|t=Z>_)8 4/C~i U^WE[aMX [e@MZkcH>s `Sؘp]s~+WiQ:%|I(|G\v)&IỦ’nìs@Y2Ԑ<>J.Tv1wB!0+V!Wݛ6K3Fyb⑾ C(F8S3#?[_M":xh폟q؃X(M1Vu 5]L* 24]ߊJB[4ʉS$`Cv 18/Lf\$*B?OI9[_uڶc|RgwE>/SuUkSZ$cxΕq16' fA -a%U#^?IrxQCrg:X0O2-M5q l7_uZ~Q4ww;:\? L[g狺jT K9shYyx4U'~JiDu ۹>b/}!{uS\*$^86|:XU&7|1EZ>6zBrENOe_X3S$F(MH|g[fcUIrapXN{ʀٷns+'K r}7~,\-9 :?xEܲk&^\0ڃ8{\+b- ώDw#_^mSYphi(.z :u%hٿDm2"T7gN]ܤi{ 3s٠?Jٸq:?Y7ueT1rzܑ"fV]Jd\i@M(Wj?h *(u+'TVVKck f׊hrp|8~~r21xH9 -E77{U \懬963]Z+־V; LF܆#^[r (&\q!E&n,i47)! )~ ,D!qфo8* 9n}hd']<=0:$ (E չk[RhT˄{jsgײ3gf}m`ճ8L^}ISЫTL2 }һLI[OEaQm4k??+bҝN𪾀ig AN"1-^] џݕu$`2cf`?nOE L5!Xѡ`_ZO9Ma>6;g)._u\jr")9{)(!`lb4W?5vݧ;͛툺y!ϯmr_QggoskP~$M]= tp#:"?NݻGPngwÚϥtMc?˔9BW$ߌAe*%hޔ|E}HvX~Gu!R'  .6jʖEt";l 7C> jR .m6gp믾8q6| iМK׭8!犄AiQ͑!/9/C >FΐDll<_p`:qyxO1ѓ~i?M" 4c=@4]Im9xDF?,C_X?>f f8`Y=+(5?e5cFR hIm7&t:e'K'wLuImQ#%xF=xv\Awo@59[ewI;_nF[wPR@uϞRi^Jeb_9jmBuR=K!)%+*[cQe_tѝ 9TP;mta_K,b3J^+OEfRO٨$\g';Sv B\E_q+0 ؖ?mdn`Ic^pLm3ǞF%^ӹش.AAI2V_*] RDӓ9GRS#/WTlH=?5W0R' '-jW0 _`@1SE^<_|۾_dI z%}6xe *L0e.9/בP 2"{T:fm7h܁X`Ν|rq#OJN^0M1}knYphQZ g4փ-O.~A1!r3h qUl>; *Bh5 fVW0;톓/ 4)ZmH^D>mnnR* %y"y!oy|R "iZـ)ofU w}&4\}nBȕQ}J;*Z ~N)˿=ac T72j M8.=tbb9[e?%}c#<M0iYKeb}1&o>)Lq~&| g.w:zzN6A"ט<#j)&\=xVz/^9)ۄquhu#md._SX:xͯz{+qҳr7k2o'8f|9!T'I~jV)Ϟ=&Y3@Z'oR[ԗAMZxe (wCM 0I M,C( y61დLb'%/&Ńlux1AQ:h_y?&KvE{'~IS3pECN@{U.&_6r ٿX!/my vדmB%^p@G^c [c|J&7鬅K[ Yyl`gc;>1ti6*65y?Ju!7guQ ݎCFl([6r0{!~N=P^Ʒ6_bNl~(45U@->mɅx; u48#ĜbmCK GX~Z=` ynx=d8 H2E^nz3 e3 .%KKt e݅c뾎@63j(Z/wOd?Ɏ*nd ]ʜZTߟ}aTϞZeJL,n K*]]6uBj  /Җ^ğ#a scsm0; MmȗW!3oO3"*Co}b |F.&|weo,vKRJ}r6=UeŞ[kծzPEͥJ"jہUw_5>)`ދ-Jbs<Y62u[p3k A飀 dv?Ne .`3'p_wGGeompH)3.Ak"=D|O*, ['k.O$0RX;]e)M>BUέ]$EoOԺq[ ͿpGj|H2yzU-Ch`Y~lr (MK(zAxͿ[GpD)l:9JStbUWHJߢ f$m ̭ƺ BNHއKPgTPw*tWu,agة EOKo )W !g ;M!Όg4opR.FNIK.rxb65ٻxmfdb<\m rgy)n:O8Ztz+ѕCxet()BLj\ Ŝ lYf*%W~#Lvɴri#ݙxUnkPM6kW6A~~ >&TɛYs> ݍ;a겅kdLvP>BWpUf/'oR~:| Sh< 1v>5.$#M}%ޱ$׬y3K"dn[Ckg7aԨVEomM']gmjYsJմщ1ąeK9lĪS$ zg6j~KYƶY3*af6 G%ܷ|aSv -'sA*]eڶA,"?%"%9o̴f&L{ 2n~p塨1jLW8bJ}t8]u+]7%Bl:F;A v ?8qhzlx_UVٍ|k_{V=sfàӴl)9[-Jm+k ѭqej1W0G~R+XY7=vŋ;U@ըiE#'6QG DJm)|f7_ߢw/ [j< Az$$'vgroJ=:A:A2tبuϴo\vyNk؆;>Lu',0~ZJS[p]GޙsQdZ3▎ptyZJ8x0Α._^.2Ǟ/b#/N_=̨>Em)(\❫H|Z xs5WW#N< c{ ~ :tXlrzR1`!^dD=w*Si_+8!inQK= d,% *3ð\rY¢(:ކA:N &7?(a}E{h^"vۇp]*B ewHl39 )-v D5;48AjZ `6heLq^w|ހxux: l m5Fq2r)s܀HY3LJ_c{/]l$SIj\0vf>tg-|V[^iNSژo<91L}C$)e侣WuA@3iLa =|?k@)׍nU,8AlZacjnE#`J?Rh9VM7k{mc=a6) ז= ݄Y&hj=4隚#b)3gN.o$P5bϥOgޖ5]㤗iHoJLL=S;{eGqUMg&vb퀏UٙLe0`jtyN3/NΛzWkE俕eV?"VOeg3؞8rȈ}S.ߨ*Ѫh MraV*;jF3@%`@۷:w#:yؼE-m‹k;){ UOp\}-垎獵,Tl$.Lvwaw:-j>UyjLA#0m{rkEp/ >gGB fP铗o~ݻa,[G2x!=XG zp_]2*>ԡ9n7䜿VTNX֔R(DsUs2f.¦s[K/W$xcXFF\fCeB{;w=&Hvᙹ:ck[-Yh!%$KQsM4+%Dmoxi-<Wީ P(~N4 I?1d))#Q#z>#pWr8ȐuqF/ΝJᭅ_Fpֻ~1?{#՝Kei a:] Z? hbƒɆ/$lԷBnmr\t95=u&A='TRo/it A(%.J+0uj"/&%bkbPE2+5>Y= Od3dža޹82At{c~dblMeKA=]Y:t:81 -eXvC94(MzV&D:΍oM/R_z2,z+ ׅ%`oĩc&s` gqXˮemF8@O}R@̯u jCק%ofJS*N{§M.j xXqcƷи1Zp`Q g1 Ix Ir w;t%@(PKoG1d(kNO!nuvola/128x128/apps/evolution.pngUT |eAPQux MT|(n[ˁ[s9KK2++Kfj[A wjijKl=fiTVҜ/y9>pu}u 2IDl?S=g{ D<@g氬טhc|"90o{=#vwóRH#C(@Mr1۞999wUBg7x$u)[_޹aO F5Bb!Fe}Nj=Q99XiH"?=:W'e/ z}`zdl~ jfmApGb4tZ se/PKF@̳oBGxtLfo/rM \ jkuKgy]IBYGIk8j+333@3rUKkdwO]dڣ2&r:àEW}Y)٧@(e/CM);[ko'*^Doo&Vގ@+ |Ӄ&/wt1]Aĝ6Ւa.Y̟OIzC*Ӯ>gDz< FAp^/&9' 8 g㯁u y _WB/2PYk#M+MGqKC_<%Q8E^vf\d?_11NaLү {-. [Ȣb&~E8Z\U% 5*ќ5c-GBGrD-C܅]IB*dj\>NWǼJsSDyEEMm.ikgU4 gp=X'-A~FyA>dwZ#xd0,M7C] F3ĦP<3LsF'aWaLLة88.~s&zݕPSaJJ⶧ٓ)L&YЈ)ld s 4끹=R@M[P@7hQ&DpDՅs)VAErj.Q 0>bau[D/G]zJ܋YYQoY,c{PgoYI9 1gu"2: UN; b{F R۷;BTPC[;|trDsOk!ID@sfI: Ѻ[D|J!0q>>1ظ}ֱu ,{Dyq?w&q>_9d]nvj2뮜4 d]B&mF +RhUU~?FU`G:KVRd_5#B~cy)bz/VqVgXveĆ{OMqƔN)Q h&JE[̊ľ.ɢ k{R|8D8`u~O/o7Tp&ʻi؝_mCON@ErRX-`Q{ b]g`EOż3>0a6C3gp3v! wp]5PF`O^[-Q"'!`q!0o!c Iਏ\f HJ@Njynl4aL×n=6"`xSj @$)~= ыB<8O~O݇OvE)hHzc p@'(O"|)do`ndK y}ueJ!` Ano"V~ϠDġA -jG+C(,B^qoy iۂ)%)&ɄYSHpung|VvSaz&6~qӢmAxDU3May`xČ~cW%6}o1jC:4x!^$BRZ|L#ُt:xBtHH!\ljt xO!aӜVtO]%Mپ 3rb/oPK3o jl# cev|g?o"ޫzj|to^ lJ?|IbGkwrsp/2{h+guWSu2L?(]h^ddbOQ`X1IcSf2WIz4UmY_cGaF?QDx1H: LvOz fx84yo*QSm OV2¨ЅNFGƖYO?VO]fx}8He'Q8DAqV+j>6 ]h}EײcEz "ЇfCsb]n jח >;1a52p:Hӵ27 Q;-sGO+"髪I^\nyh!tAPbeJZeFR\IpMKbAo3_XNV<}ŜȊi,민> >?fhg AطNN#X?6sS<%Y&Њ(<0@o;x5sш j2U+B % sD>Gw2iy]1-WE2h@:F \bkk&W 9طH~5{2 xZ FAIC9w#omo C2T>0'2+EoSzݎ[Vf8gVtu @ /'#Mk[kOƠ? c}"_э#qGvs'z/n|>GNPiCcTDGɇVʨiY{QԱ.´CϺ1Ivc2.ut$/jܩz`Ąg/o# !> WD?noUbxQ_E,{.:Kd ^&[Kk硦fqqqwq]E n~UQKOD#yx:=mM^RDP)K}PK C Q3[t!_B=_z_;56-X; 6 }SO>mF&G᜝.`=nD\D Yk,vxH \;I̛vtpgeNޢ%^fH1::ojjb(eXVƅf6_RI ģ5Wk.]ȣ5GC$7:7y۲p2_I Y6jl^T3?wPI*Iv8qr9YTi`] %8ѣ%5V^xva: /3<܂KGɊ655PFj(CC^f&i%ِw/ L!1h!!!.뭵c.-An2dqdMq}`EH?9Nُ[*{x5 taᏡR.?tO#B.| ~FGByVo=]_@^C# =O)ܚ&kQ9c-"Gam(ziJQRMR 3w'>r>IKAm+VM)+PsCƔRj=tlMhnbdEܼ;՟ Te@>~Tjg&^e > /-!7QyfQЉi+:Q%v;Gcey$˝0ro;vGǣ"0!rϗ#^,%:>@t{cnp%6t9hJ^[Ɖ" MܒfS'P8r&6 L({y_w(0͗ isѨwFʎ]a.r.*1$׳iل]=FAyJԥE_c}JukWWA M_!7'+3”_<6-e!{BER`a Bz/{pp;w366r+cż/^䒦B=`x9Hc;byHy1y&y%prH%1zz jmg˼sG%Vl+$hZaIl2`+nWLAۇٵM⻴qhyy#m?#ˊY;LKW;<&2c]5Wj!DDуz䓓VL=E? ?{ف hp"0VNVƳ_A^!DXsCQ(O/[Ȕ}TxuA رvKU2yq|_ ng> fU g/3fJSe]zW GGG]X?ԘrVBzܿHL5?@KlI)8nI쥆Qi#7-keO 5 <;G?I]/AߍQ k MS+,ӧpCB!>NC)S<@7P DQQF iu})^VMLoşVtaLNy e7Ýf2 ̿i:| .)){BRV=`<a<C*p9hh,%::7x$s3ONWR2l< ?2K]ά0Vꉘ{w~16R_dϟX}/#$ AMBZ`< VŐSꈺ,tԛ9ar&;ۖBLwȖ3]եj 7,~PJ䑹\P|.б'x<~bfפA҇UXgg>y9MckKZ? [*DR#+ RS#:.~y(q!jЏ]E;8RiWy#/fC՞7랬bn~c{jgYN}e,Vj{%*,ۅղo D^L 5z~p':O΍.\iσSV֖ӓ%RռOEܿ_Κ ~Y#O_E[28@v'~5'fUG}~\W@!NT&ۡm}.u"-iq#YOU؍|ĵw3cgK(2>HBf'LХ_>Fzombԛ `#~\ٞ . P9]oZ_.~zY,a84ᰍrnd9/6&wW|njZ=]gD$<=xkK }j a `ݿgV \9joc?z:Յ|̼Lү~ !]@(ZW#TܻݼimCJ<vƿˊ_&]d !W줤9"@;<я9>Q޲_B^~/! AV"b*JC/6^Kh>QJ$QkP+gk!xuT>˝{I^~ }?``{K d͕7gmH#9p9Le#wYt*6/rstƦ'.29D>qxJX߭ rKv˥*ਭ8^M4U켳.0aP/ hj*Gi )]j> nrx)uRmeO{<ƀ)0"'ZquV8ǾxVJہ1kF4T#ƨd! 6q-u#v EYB[bBn%6l>*H+w҇q?eͤFAPhL۫->:\?eW[]Tofy.=N\e,&#. ط'_o Z/nB)2amr|L9"r+ | V "lP}aHٖN˫)Ȩ_Hں]sus-E!':׆U<~|V&ŖCC D E3EKoynp/=]!g+AElkEkn-^+#soZ8ä'Ēb脓jLrP 10L01_5kzf@!f~=O~Ek@ֽAYj*Hwx',Ri=g5*N[w[x\t<@i/^H ǰ׳{1O(%? $[ ۸8#4c4*ϧ} it)bVɂ2?/4b6 #VRL9DY9}"~!LmkZ &mQbwX!ԘϷnK(Jne YFܙAubg4pr 2KMFqecFϞ=8>w-X0Qz p4NK\4$(#1F[ػWckk4 Py[,fFx2w͍:9;C+w1-0; FX F]Cw٥ ➏aba`vٗ/㌍}kދ:W^Uf)jϸxɲ^gԊ_}1}Ɩ`АD_bp~b0ΒtR:^)m3!(2iþ:NN~ى^6yHzBH>u^Ns9 ƧȗkD*`c2|*EEYRZgʍ~W ٠|odyC|(t0:6?1 \Q(.|A. ">PH'_]/ߔlwMĻTMԓ&AuXk[>I¡DL@j8#:|!z+Ng`Y#yp-g#%&!3gy˦o$dH'3bΰbF\x?{!cl|uaJslutOTQ Rd:;,I/>7KYz9Djq|uduYc}}:o\'@1-6J 3c_.Dreb(z x1ED6zDzI_I  9ZL[D2Lcor҄lDO`Ts1oZ~:!^7AꆌR`+vP}X(?<Ke %++#SţGf:oChNvLzGUTTmptH^E`D9XgAs)K2kj0q{GIkT_Q-YߪkJh j dE*Nq=ɼHBȰ$=x ,='}o3(%$A?g m]<8 nJi-(wl*o?SFbwuɮwBYσqe*{kC䇛*hp]']dˊKez#GxF5Sx fVFyuXN c ՝޽Ni|+(ʀ"HcB09dbjAʒ1j*zMS/w뱈?XϞy+'> j2"&.H@ʌGOEDȚJJ@~AU1 v1ϋ UgwF^lMUBYrs33b}(Ѹg|^M EljVgTZGTs]hE ў pk'^f\HbauM#9%[ɹí"g9 O3vkME Dʩl}YѤ;TEؕ-fr dI"%wq4vcmڳgidNmG:9Yuc h /R>ށ5294r*y&ÒgW9u! D^zdEIi9/s5" <@<*uń:V$`Tt]b5o#^h41M J VG~ mq(#2 q2qH-0Sڹ?`g PY8ou#|6f |$[^Azy `|)a߳//D뿹&cfEM~eʋ~=wpO)ϕpo!.[8CъѮ$++{A H\r?98 ¾$,p~p󧗝*H\`3 ?%73IJ'D5{> nABh{|nT'udj27ѿ>KZBeY qѣy̛$-.RoCddfU^5(=*MaJ 'HrqZyW+S5Ⴌ+2՘("N1SOp30P`!Bbv ႉ=:#-${D8NT0*h/x֎ZC`!.8 l}A|| k׭jH<ԙ7Y';qx:T*o qx7fVAm[gGXs##~k;?Ԣ$c[Y}yb̻߉| x ,P^n?Ȇc̍;xo*Z;2#G/zy(;Gә$.#J8霃LA!& D sU4!NUd {H~`Q5NvFpCI?5L 9FʆtL*niPz[qw?# v}`ިߎ;!#olx?-[h4#s2x`d@3W&(OUȡ-drkx!\PaNv ~f|maCի&kd(SΧJTqӧ`0vNEz~X*0$ j 6SA‘j#&s;F*Ce!{,HT\}!ƻ9,蟒1cf2oiU19]d(q#za?ĸw|̧mVы)p9e(tl1{G dMAu=YâCd*AӋ0r%Q 6ɫU./m(D0ݽ 9}Gd?Ŏ([7v4@|J(x!;s Oye5Hc B^ugg\.kLLHҾ.So}VfQ_˗/DlEڑyK P ulq',S0:XtdSYLM̋sU)Iɬv MV%RceH>JQS0)T [ƞOMzzet(D*(ZWU'Ghh5MyqMI+cM|x2ju>9IoV=V; ~Y @u>" _Nyh27YI1bdSzq?ѻOtEݓK(<1~. O0}HJ*_if7ZwUfN eO"=&55uQ7|sգNJRgU['U5k;yy ?vmBDH*ă'6|fvn])MM7*<6&z= R5e)crM O?b{wskjd*zn4|bWnt,X Jpg(+)L{8Dzk@0\\ǁEԩ_7-tA7񀺙b4jy.Dc电nIO@NY"|ˉL egQq |.f]e>SU&#H/Q%,ұc8DQiSuWviQ}e] P^Lx^%{nO>ykp\ϬgN./kq3[ R iiS_eqMD8 Nm΢ Mg0m.z{=!H|x<6 !ݻv*q(gv D=~"eZq9c#L);nMZ,XysF: ݦ9n8P{sZEU)5XwA8ѧߺFm^'C|R锦Sp9赴ނR[|-m*bφ>Ûvwu|YVSoϿO:GX2 I?$җ C&3bTDomQޏ ͈F)77K|aFa[q]b5;xQ[c7PFg^^~%`@eă|ϣ8q8]ro#4GU{ΛfIy]E[[[)˩ZʤyR@䕘P!pՅ=5'QB.m#m$?O%GFYQ6Mb*O>6gqxFۣce7 yV'h͑S+^Ss5ÒȤÚ:Jo7tbk_Q\pӏE6\vtAܷ,j`AN􂌮ҢͯIp}xJ}\ChK? 3&J>64߁DAvL5atʿu)uohϱjVey!|hf(?6* x^FV(aq lRR-%j70"nJBR~E"sd3&S4 \n`d? MA#odEC>EӮQiGABVo /Bv|x<SeefEgJc!v&yËu;e}قVRhdGefbih5 +7ةdEAOq.{*&tVrrO( ~ZODmEq` 1R}L1(鏐(|uV=> a!-1R-< D61C Sܚ{ȁ >0xiJAf0WL?@hfO=Gr*ݝjkHq_afp )]re +74!3t'8z< t2)}Ok,[`/U`i֕waz{!hO GLU-.ߤ_A Y4fubMUyHz̗ME)g?ط}޵ ?5o9&&E_~z=m u0ҸK'?r7.2ƕI)"Ջi)1V]hԞ8W X BE#mJ.1bfDO81 ?M/(ȼ|6}Y625%#t 8&eRʰTB1~ԾT d$z#4ly[ "z78 _.g#; ̛e٫htK [F[NwWmym̩J0r8=2I|3<P"p6H$rC%g%Cލ!] c!B*=Da1t4+2Yޒ:p49/E/w P#0X'4C$~ Y\b(a&pA2Xeomd}J]:{IЙȅ𾋈(0!UXJUaa=:R59!G^ t8i=uE4A_"wS¡ԉA?CiQxpy 2^ׁ:@ -$珝dw_mM bSՠƝM]}-bhrrtcgСOlV,7I\SH/_M|(&Z-$M&Ʀ$vD,m̘,Dseں=E2)\LNrq.UL켨wR+izny:wN5ԏѱyv|Oحm]6U;HwGz=_M)q~nHs% jGNoX 'ܽ!MuvnWd0t^!9"u|9HxqJpJG [[6(W?2 =: ad wu ֌ mwS\j:8`d M}TDEu"2}H=:`Uf;MGm6 :H 2UV9v#b $U| P^2Er[ct[X`JJ\DžaI@N⽌)|Dc ult0CN Z qNzZi`N$p3ǭFʨDα.%j@ (kW/~Moj*ň$79Fg)ܷ'5.ݴsk.\әD45ʼnl=C.4M9?JC\]:X@ٞ,j3g<̨VIX^Q;8}03%g 'LPn=$Ģz|;?wfzހkõ:Щn~87;W"_\""Xҫ(<ɢַ+o@oҩ7l0vx&H @WV o O|gsU~H Av \@pueڛHlC{`"b|1e;LSDZwfe'h;(0$_:vrA䰒%bWߒ,3'^nzJ*hy_`O,3mS+x 3Cݒ㾺b}uVu[{3H<1DSm CkP^nSFxHd2HmN8ۭ^&񪍝oU ߽(J}E(RBM6ȸ ̭@JUE=3N|mcBO(0)oOkdʚ˓&%R d)7է ?T/zgWZTgqЭTʭ˖tX[+L82~`q"1U%$ΉPo:]@I>+Y9KPT VDXd7|0a'à(#ۭSE~]e<v8C;4 Uysq>g9oɞxy86DI:\^P-JnWxG֣ќ^ } Bí! )Zu1`34zJ?hOt8ᡤ$ŷIKQjɬl:ۺXtD|snv*:CFtu =}L|i{P9yE /i4Ud3+Zɉtô$T(7c3 6[?`t-B>[qPS F[IbC9ݡ:DS;D/x-wHEsƾܐEdrUZ*`stexnU|fi ֽh2WiHNΓKR֗[tIlH%*FKc/]BF<`PY}[r,9r[tpkD",!cfDӉݗq]4ޥ<[ =An t.<2x3zNr'cq.հuݒԼqW1mMD${xhO1c|Ll@l%˹4KKϮ1`''}a?\ό~iOVUM;bL)b-qCB8e9 [{;I9'H _uGe@ⷙc$:1O,yʉE j8VLZԱGEg!0ڰHEj7qBqPڠ|˩`Q 93 Y9uun$W~8Us4~0,v^ 4lfQ| f9xRB/em|-5‘-\ PC=j ӘoҔXԅFd +f[lӝҁ6׸/ӀzB%nOW-9 #nqW4BSc >j$gܓ /kO,Mɱp7H{'Sٻ Ce<`nh-$eqB?~ 2d3mqU wfg@8R%bVLܗ"H8XPd&fK, XdKEaJuW&B&냱ݍΡS۳TIk{z~mE"e[;Y[9]L%בIӊ]ʫTH+q3IC!SVժp[*<%eEa_PH}c6NɘޜSAJ?c|C @( ϠEs^RHDM [KhLH3NT\}(LTWSTc5u|Bɑњ oڵ$˖ j4.HOXvs:(<}&*fՔKwʅoL`ldy"@ɇCs Pj8Ʃo.՛Sk͞}ѵg@ T#d_OXr6J3wX4X*NzV IHњC؋4C{0^RE P5 `/1.eKC9wٖSݝHCSgjo :>H1g X^6a eCN~goPkҫ2W#ިr?۠%뎂 }UF_h圾H8in~9^繾7O;txtԂ> 8;f6t7K˭HXuJ:Y)WDT[Z֫+-^ ȋe';HN^8XUf, ۿm߿J.:8LP>tMܡw8|6{nSy!ʀAi荼g_}sSc=,&c:n_1s4wg W#1A:suw̚MOuQ7`T>S"8*H'e, 9S)ijWߞUzYϳgkIzI_rGFZð{ajX!m+XL/0uեx`D=|ff-'이 _GzD6^ t@b)(,bp"t^mooR]=|aq=JJ>*aߘ평Gѹ.ٵ7A/5'E`lޡA ҕ6*"}Fc\$Syw[X7 K]ggLjդi9wu:s@n8Hj5#L,* <\:;eu 'mQڋ(i<:$D02Ecv#-k;Q29m&]bmjpXȐlőlɲ۩˼5HoU%lxbW>"Md֧B'O#fN=f<#ާ q+d@+$Ҝ_F1j@9AS-;LI>iڽa]jmARzp9"r\ר=31=~k`FksKƂB۷:.GqYѯa.h^ejx5y?0C؟7ZԽNg r\[W:AtlWA~\Y- bޑsҔT]g.ذ+Ìo1޴iGrzK<;~9IbWwZS/?ۿ+..N ~_T<5jdc&j|()anny--ϧ2||("L~B ĥ/uSg!БsdeDVhr X(XJ6~NS?}a-̇a.U?ع +Q;1Nlo'V3hz ?_6KZ}wt_<%a\z 88;_ܺENn21\":l-6Q/&ig,W\xAL[xP!3\:0g!a/@LT$DuѓkhuwsgAmf22Y4Ej3"B؞6z'tx D`8xyZ~Û .:ΔY"g|FQn)%I 4>>7ޱVk+0PZN\=pp[gtHiqgGn ]6b#3ԏbe'kޯ=jql?3h)oJi}i)qWZ"IǴ+iOTFOv13bM%FdCSsfqZkL P>na!l{zWȣ"!5?m`3uo9SMR(m=?{#n%%wx3]{/gP&Y47[ EFɺKA5`@i))JFrw5G| Rd_mS6vF}tyismŸ(18=HeH,%ZѰOix9^(0׉;M!H.>OAiV0J ^+Bs;u/ydJ;G6 VY7a4$w]@ξ< ƾεÂ2 -$f7 h-ʌ=l,^JyəJb72ߣfm}j)?F S:iH3F9cS("= G!y 5^esp ,52+ Tt5!~p?7%3ΪPYe"W6-uB4跑čln )- (!WDen"ҮNrգyN0vVPլ݌j q?/<\b׏Ξ hzD_=f\ne]i9PA1yv-\THc,WavW2`ʱpnX<@/}6c$Nxq Ƽ,l} +rZG!GSўQi%K2̀hHS@\օC0,b븫Ă?EZlMGua`Hd @۾a޺@Mk2cP".iG*iOg392w܍SbT("WE~$Ѭs`I(1BA;󃱴mX@6','WM !`{P|]baXnj6c3,̩Q 9%ww.bJKC؇|BWap?0%u;'?LS j  vd(6z\9lK(Lmg`>3,? QOc,oa)ѬхNQ|h[=+TtXW~r#K~o8.ڮI?{$,i%~ 9*mL1IFq@ҏ8P֬剤PKuG1啖H?@!nuvola/128x128/apps/filetypes.pngUT |eAPQux w\RQQ‘4E4`RfԆhʊJřa&-+۾8\p}]}8CNҒʒ Hz-|mn`$EXטK]{!D  w78po@tdk5DgO:'W]Ҡ9P*H H[yo;*p ]DP.UN 1Gd%ȉ6؇357bT2gS؊<m ^G$7b0 PùvͽxЏq.Z_̎{m❿G,b ]A_k+~) ZWG;^+.8>"@hak(78mGc5{*)bPCj O G4\YU6&riN8H $K{fc<>,n~9{y|(em=pm[0[NW4Kv yYNt-+wr Ƕ;> Me"qA c+~"~>J \a|9]sKEm+O4++z^,{3zv:NWlSvRԋk!ܖJ:lP13g2/<ͺix\#퇓Qc8MURԁ~shƚeȵX("7@V7GTV2 HʤIŒ!.|>jz:C8G20Qy^EUlHVA(PE0w,A|It[z𿟕R~m._H%j~g)r!RөbhsM:H<!ǔZaǙ6ؔ!`BP) ._YF*0 rgMWao<8…ŶC]?\~T7A=;}ƇW9!tPg_m^<2}pd)՜j=۳XvN tu2k[I$Xwy(̐PX$%&F=mgK"&,m0.f<_LS]lNۀ-tY{sWf HDӠ*ȴJPZK rmq*-. $qkXAtZ\>5r-(~B%Lh1.zxh, ~r1V/b$26`ԞC||LsskN. xY_޲ 9P2brv쟎=IMG׎ +W6(p18\N1(}yzݗ?0;zAMă>f`F>Eꁜդ1+?h#k-G?$ꫪaǤu}@m1z^I<J,ax8ZunyENo`:n!{]ȼ -zsP,ᐡ[!0SQ ?yg]lXyP2J27W(b ^/ 0."GyA ut߶=ؘp$^%xNʿܢ%SxSFO~R įlo?N$*b}˘m7*7f)UmaQ~C MOIemH5 ZO^̗}K TYmnvD' ѷ}i)뼍kkGn=n9*wʹ8erorA2Ĕq >xV,'<ԍ,(VMK{Lr|iG.OZQ?UNekdс29cP uCFκj)C7G{ey璾 > Y ~΃2o#dQSTа71oj8|07";gWɭgLn@۷>_0LU=z$P&2Sh٦\pk(ns5o:I7xDVua? %{ W=-i *3& C*xUBTFdRG{H@ Ӷ=t݊ tNE!ߘKټ7Nx ]EE2fLF>řXy y@u}b:!+{XFP6鎅I@qvdvìHncn4ӝ̹w:@~iG ٔ+pdtjlې1~[ğ)mB+ӱ_0H tYtQVěBE͍C~BF!+ܵqDoUD&[[Rx1k P7(b,pϓgZgvIg=~9Ck#4nSo}í;v}/ o$e PP6O`5U x7RJ/< GyŇÏOobwVs?mV |kR`y5[hmQ U^M8{;1k;NX԰2ie&ݩ|ӷoww6-N;n:H)7PSJyc]hoƷ"|F. lG;HSuldZ@v5R5eݖg]E,q\oTh 7C 9Z&{jء%2* SEuJ.!*rhbWE)4-ʦ⋂WZU fbF06}ib잵Mi;Cllşv(_p@iӎp@(6# M^0gx*5- jޯ (=8cQa 8z_&fP׺v@őϻms1r{f5E?gPH*үAppRo=v, !@6bhU8q1)mpGW.Rе.N. K$m[&%^M6wE᭽HXLò" Ij$X7z{ 6USQS8>NNq=>|IOy@"_cU\2}%0O#&&Klpą?:*x4\0Y+ MHrYT, LgdT= ?$;É^$vmNxlM=_V/C)m? јV/\ߊA;ݧf[ѹѵco4kh$ _9Cٚ$>V Tf}@5D<:O3K RZ 'ky@[ b9qOJUWO[FJYל#A{WGK Zڽ[${;DmIby0TPm"_z+q3 _9;Y fBaW77pC%)mWo5-#e7a#0*F<ϓ&WwIO L<^2%1+TuFJze|UB QX@ƮF,ƇGKDh՟QPiG. \rSU4m,ickpwra^MuS<0&ӴYm|d=|9[2!V=Gc4R|5U)p3MJ28Y΄ TߖU81"2Lm"![}>&nXD]oTIҳЄ`獣A8׽/^Zs=&J$`9nM( Grz{:%u"xuK#C [Q{,e@:6ȳo UW7 X%Q|F)gaQlj,QjRS{\$}&24}GsLP`9,(ƣOc@Y00oaz! e}z84ł5_5UxlW{;q4&5)kEOU\x:K4כ.u oN?s8 >}[ +dΕuim;$iI{*$D ur"~e nѝfi+teqx桨69hAQh/%+ʴ=<$ hIDXoCum ~%z= }6S"/I΃IwԻFD4⹀?r/6ZFh"B*p=uEܳi uƿUg}V e}/W&bi óQQ(Qt\JAVruWp>1IQ'38~Vlztޟ:Jr:+t@TP}>&-Z\E(u5F wAgz4g-S=Q5ᴡde,#.{d56ɛnW8kjnd\_;x)zci*)YI㍽^m!tX( 9edeM˒$ԧ NfwגyIq؝<̃N=h1oFjNȸ(_awuʮsnWhT ؾ׆ t s%Gy lȩ &/" ߥ|*Ocgs}\^޾7hn>|=oJMIMGV9u _DBB@/\^ `Ykm͂P*}URM{=*{\d%]'ªW z eA^bHz7:zϕ{l\7mo6 =2@([j`KHHfcEtbT2ylooM?94rξZiAIe~YЭ#D_ FLu5(2pJE2;l+]\қlv glɹNYT hzaCnC^A䲕|5zLg?("؟ZD)`|=hˆth~+MxόӠ/b;"mj>+nYWߐzpnhV^KN.-rPDGDۥ$"Ck ՝[0KL`{~s]rwy ̥ުޒJrNMdGWP!)ɥXѯiWO9VEQ'fr8kBUh!o]۷/H_UBv@ʈ+7G΃Z͙y{Ǝ{e Mb_8RY@xW񚞝{IJ)@Dd\w֐ψ&\7K e?frUϓR"ڗtcX ]R}hv te[ 3rBrÙ/CR#t=$氞jN?yXOGM#6FMOHu`s a-Ѕ8*tھ;/22ebe##ru{Pq&~(ROup U?-uoq`,&o/޷7ΉͱT2x!v`i^e9OHțk9ɤG #HIl^+q&oN8igdRN ɬ~3 EAh)QRحsa9Uҩ2;2URnSH<14mc۟,^gђK;7/Lмק[tdO@!J:07VZA`#LDWi'UlԺ0/%_!$zI+,0mNN\ݲ.ܡNo51t! bxT&a"}톖R{I*0 hngX`SNm Lr 8}6ŬP?dZ_S5MҢ*@._Q#q*!FЧCMAIQ.Sehd˻;M1wr1E}C{o{hoh8*4N51f{=l*0K:gAk~}6 )D@uUo9r BS̍ZZn!Ϙ٘)}Dbz!IIȰ(S[->k4>V0k@xkIڑ$q5m] a]MUa\T>NJŗ9n7y{҂Yfz_'hFkcƌ!]鵅[̅EDШ[KTޮ[7^7`|nH3KDnl+wj QcURemӳ$'9}E{fE&1㐾\-CaXrnfK85E ~8)YkxТqNN~Lቌr}ҟE"Κ\ԼvB K(1'˄pn@)d H'1X;Wa&];8PN|Lurdz^{/Ԡ2&#];?Ц2;L.LɽZ\mRv8.19/vɣUMV @Qmr.mlo坤PYnc~^X5Y.jWA{{r5|;۩@`ɕ1mPМ\@JyKejxVoPm@eaK؀cJӵ]@4QL T^rʛ!R8v^4:8|c(SvPĥdAA&kZ>_RՋSdcp7LLNzUd-Pڑ]x~ ߾3 &g5ăg=i:/%zc #aV1yYuHTѾڡU ~oV]$=W6BdW5Xo/k߿Y6s[R fl n"\?B.~ϳ]OwHϙp7ݾkZ7An6ȈvG+ho jR" 3,Z1$6GHpg/='K3=6DBRgZɧu{F !.ɁeuF '&ЎQb_f}y`# ZQ] _bʏ$N )ff:hLTILXz3/aj1d:on{1~<]0eT}3BC*pWycܚ<~$LIh%&Q.`ur$ ױ1+?טVIW@sp`Xɿz 1.ꊽ/(вMm\EI@3MI@nl8jb=6F_l;:<: ;L3;<7YlW shʺnr0ڝDXFK42h\By_ {H/&g'-6VލxW]D[U.cF\XwBpiglUqC+ædGgb72Y>̼[I?)sV]v7?aIU:ƭ5gGimnr'ī^9<ݫ)np4[Î X؍HK^}gΎ ,!esqD}R8;2_MdR+ $6Cs8K\j5^ W t'٧B[m@g?Wem"s q g{9j6v仫. LmFv 3*Q{&LdKuEF 'yV 2D\S^DkpPm]/NEU, A^beA)^̵X}VlAӳrg-NS+s~.i qק4wGYq0G;0%m@fJ;.`7E1`RSY+1$dgc,;;K\/Թ'wNg[';s? ]E֒G0Cd7)q+|\v#:fv(vCxK"45'L Gn yZЎD=}ثVbMrb(Q4MS1qg{ ᒤ q_ho!!F?nL:5E}x .4cf'.ۘ+ۓ(I} "&ۉFbTQ<ܧ'1>?C_Zf1]5+aXuea;ޒ\uTg}eYJKyHR/uxwWcr--XJi҄o4&NPaUBQO}:ߟ*LiTsy ꤞAB:L?_ކzеgMɍ~{wrt#\Q[MPk8՘~ˁ%.ꊸv4dx ?[שK<U>Ojƺ TWam+Z01 ,La] Ǻ=jx=%_P>ДZ0`z1zFޙ@lB>y"@rl&a[eۖ{۾.ivSudOEXw4uѶWÖUP)Ns旪?NkG`lQX?+!+g+W"\3sL0ѯ ؤm !RݏW=xbb6KVi/iDvw!c4E˄D8l偝~ea#o_+Z fˇ\e_rq8ۯ}b!>y,2*ܜڱ9kL<@ XHt>\lXiu eDgνwaAkx-fa O/6Mq.Zmn;%yI|#'boK&!n2Gelp!_uI1;[(}7rHܢ[1-V2j[r@`,jLR h(BYR=2 ץ>IUZ$E_)2)}%IC ؄?fsh f.߷*V$W.?Ba[~Wg[HpH"޶ԡǙ`INe,fy1OX`x#*}ҭI"B;X="%xM~2c DT:I x`M)=ƴQC+jm$--=Dseb2 6lɬTmVc"2>Ng6fwt(>L}>g> x5HsQ;3-2dZm^eLw؆x!m.N2 ޱ,^1C۸`N[h3 }`;vT$o)Z E9EӢZ@>|Y׿!f썎d_;u?Pu%|g6y/;C,n^L=ĸWMI;_'WhәYMSwY}PX+1bH{yh>6u_MJv k]m )./WsZ.nɀgcVf'7`sD'4(=O2._ѷk[gEpo4)Mk$( S(IyzGPYuSe9}W}>2}=3zԜ[H2΢*MSϐS҄z 2 L:tyztE7ZWB6ckZ^hvW<-o9iY}څ<ݴ7|[Pja=R;Q} nAPM6Sk{;ZH} ZG 5Rw^iϭgqpC)yƕ>z^"P4IPE'J1~J[{m>|2B Z +g9~@'.nN9 ^:BTp#BJO;̷%ᵴ ʭCU,fJ&*Ӳa4Ӗ|ӂ}ዑ<)[zG^ و??5v)?87?t#E2&nB׬ͮJfr7sϾx1hҳ”˔dԴ(x\C8>: @ c7iWǂNJS Z{&Xg 1#pi 4q1 kwIn-)a8qV<D,h8ck:%tD סe)_$ a?\LM /&~޺e/ d-cP1T] LeĒ=e:X_@R6KF$z7".eWvߩxsCEJHu#:!W"x[սC=@CǾkWvO.8N~l/kU 8}`ZJu¼%R&?6{ICG9]8pTcRc O5Ϻo瞓dVbOu>$ށJ̳6gw477Eފmvueȇt_ iVKOn *t2FQBb8~ J8FRIզx̡@hxb9 vzNb@ =G(in#Zǐd!fZ` DM> @{g3)"2_b=m0;Af(صc71 XO%A/x:54%JIr xm 0{.brCJj:.ֲ񪽱8 NkU*6VVP0c\JA?zوFЭ6 .kn432Po'l<7"X]1Kj91Cp]-npfSr[%nĺNu>#G3]F\禸HzmpՕ0 7bSܳQxeK)ϵ!FMM-uuMm.zUU 4tЋc_cc]{G{@1DJw6Sr~k+]X=5U̎ƚ79g~@]_~CB"ވ-#PjȾSـ@:f㺬3べ$^ woԜ@;֌Bcy?%)xTmFӤQYQ"윰yRvi2M1?O[(})'tw%f7)čI6?Qa2HՎ2Lxxד(ت+s>32Ԍ.ͬLs΃fůXnSUsK2=|9>=qT}popwӖr%eݽ@#NEF*?[w)cD;Hj_O|ZQ>p0 hPY]73\)X& Y(dnU(sZZuZV`}T*Fշ>*Ǽ(&H61хX.)RV%O_Wmm &'qH[/ĶqڇNWM Q^4G+_ bHljlf\غLz9"Z)0>ΎwBT`|zlfO w5Gf=w2[P?kX|PrydoC7O]!ܕeh~u ҿr;03'3f@< VuYm!vPK{G1MJ:!nuvola/128x128/apps/flashkard.pngUT |eAPQux XiTI졁E Bq$A% htPDGIb eUPQ8.03 (>np{$9>]UʏZfNÅ![:qS { O۾0~{̖uw$gAꖔ4viiɩ;Mu{x`y4n̫-RqR`p[ 3PLQȪ<R>PA)+ b*M|C}IPE'E. #K83y/r/GC-%ޗJ v= [uö_g &59u(18 X}tG @O3E?urɛfz=|'Ɓn2{[c99WOiчȎF⢛`@R?9Al *P7լ#1nOYvƟl*Lّ =/IH̟8E@iNڰt!@YYaweNIńH;2. қ]H>B9L6y=uBQyt.mLPs3Ce v15d0\!';.;U,ZMyUt]nݘohY@{aV;5HѧU7=̧꿡, t[}ťj}ەqlhJb .1RQYB~FOxfLW{)&l/@ 7c!I;^/H#ArT NQ!5珛z(ڈHD\vzFV[yomB >]1 /G%˹_%\h9/#RjŖsb*HL6}BStbkQDDѡ*gP*#X5Ed !,kQ8@JjsӳM$?5B5j173]`9T-^j=|@0f0MH iJ&XgX`rF~FĢNyǺA[V?^9ѳa~ge@ r5bE7>4dSc}1%J켿"iW0d._"|Ϫ԰90Xn,n*AE_a(\MxHLǚ!'YIefH@[;[!LeDs(rg˼"S\Җ(7Qc aJٱ>}'EG6_UG>x^7~W\:0AGtHŴreo-mq 7ɂS'K@Ǎ/GB(?"(:xеC6;֍jj:b uPx p) `e3iz.bJ+Ng_-5ŒFu?J7Ků*Oa-Mms؂:Y#L/N)E$: eHfk K7+M#z}ߢ`I$C+=:+c0[iy_O7%rl7(EI8MWvPz \/9NO.$mz9EA5U (I(w; '|V;4;8\(DrVo|f7Ch6*wnyXfIDtE&eW|eSM{m"B'ߙĿy 5UY !ida8o&wDt[j ʇ2TR~ dS\uYg+<7m(jPrwAr-~+*\b H8RS,xn& NJY %đcki_/xWK`PJTy 3H9cxeO;5C=ek.4(~'( g;.߿o!9r"̞[`iYhdV/ RsF 8=mG{?Aj! ̤| cK+A~5J wXM!Qo2(\ׅOfd$E~Eї̑ BDw-¸M.jo4d2+NB ꇼl /w27\S8UԤqo۴<ÿf .ϥ/%+5?3װӛB@T$hZށ?8ϏB-'̼Wd"n(x˕}7*TJjd!fNpRl8CR7䡮&Y=C={}{XsbdCLnYww.Eӈ> /9OѼҭeg*h>/ϫδN⺖8e}6?8eP'oU(3qOg(Qp`m`a85MQ|6Ȗm%X8LYNamkx\㽼f]~5JkT6Ḧ́Lކf'w^Rv-%au` f*^Jz/(ȗ`}87M4U "t Dݖvu{{n_]wb"s$/ɰQ 84 `}J%\aM͝` jɞ<;Nh-Bn[1-=c%ˢpf_WB P ]}LCGgK``*=pՇa%Q]d? @Bԋ;Y[8AhAZ`^m0޿#$öHT 17 |Mq1(J^qฬIp\&YOJ*0WonA*leXU@i!5gZncuP|[s \T3KWP"Wd6r!2{0̾ Simjm9h .xW6f1^?o{yCw*HlFM][VMR <|`)M 6YC(b=^!Z5ߚ)s" 'hm,Rl$L')aot,%  &;bz~4ռ":>jK;as8+ yE'f"ƸLi\.!3͗0y$Sӓmf%Ȟ'K NNdC5Tx]燵s7d`?)pXҔtij q1{֭\2>v݂tH45@%ڹ8y'/2Z}뜑[׈3W<3&sU[첪E{~/Û@9d8osfu)8ܼM=:he3r;qǶ ᅨ2! HQ{_~9ט"k7Iݓ,PɫSvDLr֕KKr"58{p.LQlBdI4nWeڏ6m!-lʴ}xTFj(|Ɯ[ '"0קLFLo;< b1+Yw{8;g +n& Νe%; >_-/׾4jǁ*-%H "mĚǿ10;> '_=fQ N/5O-nuP⏶a'^w..tO}Q oӢ e3X6O6kSlk{~Ժ]i%! O&Yg=K~(/`gߥ$#BFyEͲ( ?(hc*ѿ9BY̺, ",o`H~y G[wq9kx8++h/:=C݈V.(י#+7t PX2;k<ћϣOT=9ے. x1:.eIxa]q/v c(US,;=V )ΩݏkWA } @>n `;i~孻RLXa]W~;lqQ 0sQD9M PcDE8|,3zǞ%źpIhjڬsѣ[gqo0Q ג+X;ÁGnܗQ&W8 TVB>c$!H+(̿u\fݒk\iÌƗoLO-z.DT;jN3gau-_S:gDaL2! b}_|p9 ϝ|u4asCT4zҴp/gR`_n6 DeS uB9#{>$V#7 rOfFn5a!rŮ<b$o[jeWd L.?Ou$'`W¥!D{PKG1;03nuvola/128x128/apps/fonts.pngUT |eAPQux ͻ{4T>`fHqS"!HR 2ΔY%3c4ΡJRMR0rI*$(Sq`|[Y{gs]} =ەP+i;Aٕ)Qdx Sv=ԾSgCNDc!Q!玷G8MwPTJǼ"%Aw nj{sQȳ# M0cBSSv@tGx5و Hr boHܻԽZ⩣EG`mP/nJQ1j%[ Q\3 &N[+!~ [3>LL K,C)=d7C!l7XW ܵCO$i3D^ߠHjcznˈ%J?-u"hb *P]E 8_E24}%SzUм0 zQ2%(Zc/>FX`c6$K9J\KiS8jutfu'$;(m͑ y6B/nT7mcPS ۈ\jb(Cs٬GV9d}pwnǝk2#ʹ\"G)Mĸ5HcuAޯ B İa\Z*R8yՇF.,5%+~;% b.U_u,CPl/)ϟI~NYY&OS4ϺdQ)vxkS/".- _Ø(L4>CvC7vrAJ6I(-c9D{WD :S8YjEOE(vЂfP,%$pcR%ftCǜ(@^Lc$ћdλ&{pv͸^g`szStAp!*nIN}EbjCHUR\3Ep̋ڌ$CM(o! BmaQzkNyFY$, BE[JFE!yKDNj]#S hiBMү`\. 3@PiA{-7sK/8b\%.λ%^(6hOѦTɣ6r9N<ǜÁFt ,46xjH 8!Z_l{}~器N,XY┥ YqdG' X9e?xQ]VXSnZCn{\SkotEc͞ {ؚ|WvNA=Tϥ "p1G=H{j]sl `禄_+@&f~!v/̰(E0Dzi7ӓF[!g"q'^;ʺ;oس)7cmwvq θ$kRb\g-{"acP$ AP+NĂuv5s(ӔhEBd^u/pmf~zhY<[ƶV$D8d]'ѫ7iF2-fb94E{Y9w4 :Y:FdI֟zV)PC3nSW~=E (z,4)g}76̄C7eyySaJg>:z%G P!rA-Nj03F}v 76(ГW7 mƛ[+؆N€#1e(I퀖,Y0}iaL|+竮ӡ~í%h`ϫfBXӛx%8|і#Pȗ ӰkMU8zt'U- kcBIb%Yo&73mC7o~zhHg-1as1Yi~ j0/AjtͶW)t/"xý5V/G#kT*ĊLOE:Of}'rTa%,% [L@lW v\>z_U%/l P!+J1QM'Gj}x,즘 47/-'diG/8N׳oW4" Ա~*jՄ6)3H?$4 pXxSr퀱mbn򇤁s`f++;zEP8kh]'nO>pN#zl࢓@)4U¹0DCu[H˶PZblp+d3H%: #"ikpJHBLaۺ%sI/M+Ŝ ""ZUugТ=B{}yw ><Ay"%pNhW*R:5TkdҤ㥤K[ZN֙HPv+ Uԑ@qןc۱vY7o ʠji:k1KıpFU ϑ(>>"7wRd&#LV(Xrg'=4_z.hnX(Z=#]/ׯ! vS>캔^`~E{NKZ[2uA^e I1{u* u'*/D (*5 ȼը<"yFE`}NN%LT]՛73jk1]o=5"+h sFXX4W@Z1X5h[YyM pJD ~snyGPF,^`J!E;D?LiC۷eWr>"#aNR6r۔Ҩr9iUWF N[_iTU-i#e4dmoN߂v/,C2Zf [I7gl+pY5~fD1" 9icȾ$,6EFz-%dA_rZF^仺N3H \&Ցy FygKb-r&gK^:Qƕ 9+vt9s>3ߚ\rp]B+ X3cL7I7-nKaX\fS0Zj\3zAqf5l ΫТIƕŴRm"s$n FZKZF VʭW` >kU'pls߀J_3ŕ;ΊV:5/CLJbua03N5QBŅbEWj^ݣȪBiCuWm DX|i=RmGn|h){ Z?Sr[_|n*Ȱm!s ĆPs֝/.*8[ 721{Qmb "s\|,J`$0Y O 7 S}y<3Zr|l@ʑ װkwѺls)jhgYEY~bC2 DJNS3kU@`F ۞Z{ soح*FxJ#{Z'](Es'% yaffw14N]Ukf,ՁKDPwRn"Ā!:@.YbxZ ?}r2[yԽ8_P.{a+ސ[E;7p{DJCToVyk,`B(! `Y/2Β/1x@@X zoD _P %cS8Ua`Y$(b?2LkHBRh: Bjm#w[*gg=!(93I^;Z+{J%}8C+#Bp%ԇL. \o }5 $(n4h tbh3P[0C:)HsK8׈}WÎpYQݝ+J1TN^+Ѳi4{NTS` ?}cPUiҁQz-#Er]]b)V"n4tU&ԫd8Lˏ{c̃shZV|4K%!*;%-Gy6ٖҴYr\%dkLajc8k9Hm؉C`ؕ&Jϧ.|T7KYeAfUcБ귊1- ų&ٍ\BڕO޷N R6H0iq5H&I[iE}lS^iǹ&A /z?=$?vg1@)J9C_5` ŷ~" dM“hۤՓ b=֫?Ms? 7؊nDw ::g) R[o}0CwWi`"C0ͻey\> eB[ϻ2/TmwZğB|︃Do'ҲLie[k{IQUu%CFI#V<-ȍ.\k܎;ޖ0UYoј%k\؇'/IT&7l~jg=RzMjs^i8v^na׼:ݹyz蜐FK+ll!iEV3Q sgg^+ ٛk'CxZY=5t<պhs\,O0L\HM ?0 q:)|SOKL1~N# ɠ,m,4B7/c$OXU(%{ 8L]nN3RÕ($@8LO$T@1CɧVf  H#"qN!F <5z^cH*`у"-)薗-TUH'ֳc/aJ<Cd!Gz* J%5brMǀk̆ޞaFH ZӁa5s}ǥxk_>j{!T/iMI DAJtO+36&>p0jkϖa~]u8M Vp,7sdF+'|/^Lg'<ȋ`șgFr+`ե/K?rJ9,Si)Zg$J'Y GV8ROf dn+ەuɏe@U/UkM_*Ќ$"&Ny[Að+;f.~5y0A+? ?|x/CjP!v,rw1YW]ɯ趹c&}-UCSp)v?L\mLl`JiB`c_RM^-`/:v<3`}2щ)pkXJMږA_"rW>*A[fq%z o{lA3l }p @G|>q 7R&&a5-. I܌ZBd;|V-J.%$IQJ#Ѫ M*Tjdƪ c@¸ 縉t甔E_7{U?t؆Mi~AkaHCfdFҨrwmRdΒ^ KgK^uEk'L~!'ݹRbک&2F)LQt :rHlU:#ZPE2g/Z6I Hsomu-hM8'Mb5C{ ZZiKmV ~E˖{d2E\S |;6 ulVeV]%IJJ`ȴ|dC-dk{"ͪ=IY^*0zC@8'kZ1􋥶~"ICԹi C +H[z?! TK&GfR!uǐAz6B3 Q> {kELh..DN3W:9T ldFQ2:kYVuQZՙGK{lJ7:8"/Ѓ;={{EJ,Ai"5FB[K^sdpGfW* ôh +rտ:Inuzo|E'4'Bu 8GS7^E==a|4{jD$e22JhT¢+jN½gd͡ݲ|90Wfo14Eai} Cs٭>zXG9 ;ʀRtt/VIǞ;KgwwʷgR 3U&kBˢއ!yZktO緽GΔɰ|H)ۧnWY5 v}i[o[(q kYȞ7ИN\O`3'ʛ}O/}<4iU P#/,j޴rIt'Ջw M|検QOD&4)BƲ|A̔}!Źv\_UìUY2Q%R] 焊asЋO :΋6A7V*omGrȡׯ05 kT|Z~4U.hd,ܑ0uͅr-uGםQPLN%2ɴ~ףG3!W*#P`WiXqɌ7#cޤQ o*s*E4hve84sH ϊeVGN Y3P> ҴpB!Z+RNWiS7坰[!3#y?7"5wT曚j#.(n&=6&,sGcM'?Wk;aţ㦹gE^b1F.\YA8Y'ìl;95cJKC ~!6̈́;F~ Vi^Y%Н[{)I4[-#uL' \SpFۂ:"7j/VQ1Gt60DUG놶995;p:&+mZrV'[Ml+sЌ+F*ةEG1OHP<ϘB;7}9_5^Eg7s?hMט99>._YĐ[ǭQ J\IR3H YɆ|áNHR2>r.i%[ց(ZiN\ρ+߼#eDjz.,xn&xwY/AD1$c7"\xx,S~6QQca㘫;>ܱ̏k/{dZٳi*t8݇y7_Gl[t]{"+iN[V+s Q^_Z3|*Xs4Z*Mw (   y]Js3jL\ Egx٘"MMyfkl0`֬~veۋN->cC+K?=A}N.N9w:fubOWLԶD;}L97Sǩ9iN '>2|G7Rd<޾|]"] x?^Ϣ'V`*R 9A]ZMF2yw)vO gl,rSI*S@WzAMA6wz/l+gU8äs⌱w7!fٔ(=z gW`̥lHhFѪ(bugRQT(@=UQGzkio87{{LD#/F ֋So%y_lؾ<9yXᢲa&g%W&uP^G,SHPoGMnf]>Z٣&n;`d[۞_ZSZX.5i!^V"yvwѺM&F~Ǵ?=q9 @B ,`y姢ꁝ&8^TR׷U;A###{]{IebMO< }/|>`Xhah:=D]?6/ŏ?\qS3NB\iޣtoܼ7y\j)+)D%ւcǍSۺ:]( 99Nxu/cﴄ~#%SE+E508$Hp4&<@ EIceF%p<.Em{G %oEsjWV//rc/ ^HSv?hE1k ڰ 0,juyd[*3&!XrmۄP nq${,AjQiCRpaY{a{ؕt יo/%#kQTѰMyЯo6a-Sڮ#D Aߏ9]Q+-'O\WEɓ5xmL,CNNS%+O޹]Ų}xݎGG~^go"gjE;…6_<î@/(cePaCvᯩ*j79 s/`()]Ķt …xu$Hڟv)\cgڔ4a̠rʱJ|K;Qi A/uކJZ^PaN󵫼Ƃ{K:=4vr= 4DZ7| .+ ]D*[.鯃fkV>![NW&.ӔQkwCAX @e-\O <+"Wk17ov"c{ ęo۴#IŘ(~ pVV*"qKk 9>ܖ?dN|*1V$ͺ@cvhYȫ3'vFhƉ.}z7p%8?3֭œ%5Xϭ»ǐ/&i sHmY+N>ʔV%Xx֜ˬSHYɚ8!dBQ[>zC'يSVqyhVFhm|6mt,ߐ1j|5Us :'cO{%FS-Ѡ=6 ٺ=vHwq"W÷ 4{i$4؉^͍MOm*bݘs-?Z_uBAy:]ͬq^dlq6*zً{/7o&eZ%Te34K67zhCptN835L,“HkL*z95JB9z`.2 c ?#4۶ Ȏ?r?PK*N1#`nuvola/128x128/apps/fsview.pngUT 0mAPQux yiXRkfQQqH R3KJKR5&KPbbHYiYC󠧲9qHq!RvpcCBwqW|k04wg2Ak  >Z3gErbt!P80@4bg OGJrΝȨepNu &uB1cUH/s9/Igi=`D`OJ*w4س?Tń an$xiiB(d[R3ceJ@6?.<״4 d"Dx&])JNdHX srR4 c$BReO#7]g+蚲ҫ NvR=f30^:s)b³k31I:`!+O[ LzOuu7BLe*3[پtxiƯWGG')P.]JuZ|NH&>pd-W @>R~"a F36/Φ~$ZA"D j$ 8~!3i7KV>رڬFa펰ڱR!,M۶55D8DҨckNBAH1anjD'fsѤ{gӄoXj1dg"=G4|#n v+0!';g;V}~l:*upzI߳$Q>JK ;(tlcm7g:]B\;#o XLj"aV6QŚ=sOlU!OUMQFGǩ%Y ›pj͂Q]CCǯ}3$^?TMd@F#H&J}d'ڸ]M׍lajA5ԻO ;Apr=s"h?MSEɫvh9:>s&]Hsj9niBAZZ,Y ;MY:R7`meL"V#.~4 V1T^+2Sa~ {ڴ>m~pJqIa/[QRdWFaQj:655~[ĀPlTe+{WL3lGNKe 3$J._" )66_SF }!\oTM}"`z(IoY(G-:.Kd]\i+gqG=.h/?}6Z=^.dr1OR_zy7Qpza>T'zO@F!e"dއ.Vx~4[@y-hbU [:K`G^rL:;- ũdaM6(OMA.\,ҞJW0Q a_1yJ2xAdkm2Yo)n;(2{aƋ+%̗Tb5l0+Oj2RjK?Tj6red7Nc =Bgלּei5M&Ը-ڥȑ9eUyjj咓rNYhqn3*7K,}TbL5Us xv|!4+omE(@x[Sl!Pw/}I{9=lQ\!a^ӴT@+ja,xVOO?s_6[/}ijE΢~7*#,ꌧC~~61I| X̩->kEAh9g-mT17`DoZr~ ֫tRND Wt;C ?{עvCfõKQbϻ8/MVۻLT̪uazL6x*P1-T_x F91I-N w}궛#=>"H*VSkn|o3|Q-LU Rdۅj ᎓iC7Fl0 /%e<-SI% Mv;{4ػ$N1L5nRpq29]{G\Ѐ^HFDOtYI\9]?'LK  Gz'{l‹VwzKԋ3] p4'_ Ǟ/fLUN>eU6 -{ E%}'դ0IÆXx OB}:^4wVk4^GPpE=V㢉:כLShFY-X;ϞV K/B=?2r3C܎t%oC$SG~3N!(M?QxwL2Vͤ]7E\e>흄!u"e1jrb ://\i0_)'5OY]YQpL4@o 5N"R9qu3s98byc,Cw`V/M߾yӺ͸D-!uAEv  5'`~;=1Bi=POZ@uHVNh[`CB5D9.)Zz[p%kr\,A'G|1#$4MSte63 MWGX~&)-(/oPz_ru_-ʌ[ _"jby@B {*ͰQE۲,n4$CKgv_°e; P W~t bȟ$B/c߫MoYeG fψ:.;δQ;6q2>,O5[NK'nBnJ᧙@\ԇɹR߼o@yAkooޛxaо@Tg.0Y^V@5o'ʼnK% wڻÆ%U8Iݺ'Ef0.萖+Q։:-Gu\Hab?I\Tu١$Md'#G4G0r({D~'/5_[:]57Emi9$C UJmQ(@6\I'˗cCSŬp΢ & iM@CڽC ɇl$4PHPZIw}ˏ]]]iŌt%-AZ㈑GfM~V*Nnt/y7Jo j3hKtuK}KX+[&V73 U[x}J<:>{Mׁ$ϏiKY1mo"S.z칕?k9 ]$OMǥ]-\K3'gȢfdsxI4c\oOXSCOZ)v)`L5S5yxqfZ T˛!th-0ڙaRnl^GdߟmFb,ԡ蹾6[ es.V4zڧ xnI% S_)[oF?Y;xS o^}iRnbhӮJ?.A3HqYN1f(uf%Ga`v'42H#fX1ZJ},(1EvAaRkQv;zlus왗/qŧz}}i2u\{C3ȌsyVHMѻwk`c0[ R9<$h%S1]aUp;[8yfA5r.WK,k]0=v"KOkHvo|+tn :cCVJt&!BT-0l)%BQ_`_8ޘk1ѩ1D>H5"1ks, K{n'ӑZV5W!e=z@LTܳC*߃=g|AQ!%ҿM:KJ~(aSp8Aɵ$i1GoCsP;e7;9n\3Ȗ wf6fZ f:sAjO>/;.س?);ܳ%?ee6v;@$YkܮzRA }-covb@ .,a @w2.}U޳A<.r2˯l[.”;o|ťgg"̵4ZSOz#'n(X6gS#5T},dh0Tf<Zrv3lǤ:.5OKU.i{S!K%WVa/+#T]BoFΔD2*Ѵ16NG-қg^GqL/rOBdjPܘ0ԩ(:3 H xv_kZVu 'r5*ӷǢ,Nc6B d[?oxmGeM`2}`]jz?}nEdzSAn7FY Y1{Y"^ߵ{LTXSliP,_nlו}$CQQ:KC?m9 Fk-WY.cwHӊ,sDg1'!Ocy½>~ (,Z-[Z*JD| -Oyf] 6*>GZb}. 0%k$}[J(jF͑qN{K%\N&5W0v@(փQew=82%!}xh6XDdDDC5MM c,ܪdccD"xBpͫ_xchU3iWrZt4Vk8H=3ayhQS&&Ԙ](y%2pnNҹ%1IaQ0#5fUSwB'X:msP>t&uiIciyknX&jRBb'K|!\1-@=PޅJyX ja IDBs`{24lYj }IKBhojkZq .k4Q&nh<ñ96훠%meFz+y w_ t2,A m1o i5>\hr̒9KVD?iEBi-U3:ۈװ IϘE\ݡh}{KИ #KwB>"] AԽ~'oT]r`nT^o-2u-ja ɖ^q. mp9wl'm+,Uz&GAgh᎑C}8*9%ٵ36ATБS)(UlVh*g3ѧ*EK1i芷lPI-~<9!!6>>3ihAu$Bԯq'tE8-tAo::ZT]B`kٷ"UĿnF6Z⌵VN4RA! 7s~s=a.קsᩡ;UDn&7ABQYX(1g& 4/I^rl}zT▓$=~"dP?=nVxg^Om|~k§|䆰{)=ZsZk#4>=F=bxz_65Ο ݤxs= M+NP ];"Ze\Эƃ .[Q|_.7"(i*-԰W(RPHe&7H%jPBU4};,Dh%\ߋkIZR"zم8>π-KaChU@܎jcvڝqٍSt<4^}j$V#T:hȣM>= ̒xKSNO[$sDl >&.WH]b K˰s G/Lj-\Ҫ^䛟`CC8M⪃+5/=CV]'>k_`KF΋s yo3Dj. 3?jS `ps%Z2s KMN8 ?AܯdPY OGX(@>l;H8KJdq>vEϷ#Ʊn0}a%IDZ+vU1Y:xDl K}#iĂXPE@'+%uO p?H^ANrbp#P|C}2i/[? jm@Cg1L5V (wlS@lܤt+LEv~:a z!βC(xfXaXEv$/}D g9eXZV؉ֲ7ʤF2BLyھ,_&y $^!hM(z 2B7,a R. miֺ1rF w߮Ѩ?gqIYx21׺9&ѧScO j}$M?hB-{MܳmteOyz{dYfIjPz旕G8z8Ʌ!卺Vv[7ۃ#qB54c#vdXTjWQ]酏toΘ ɪW7=^Ƀ#_.SǼoȈ濶CuI-[sgCgd(֛]ͯ? ͔th#nۤƁ l[g> oa #wн*"ecrܵο>.[K;6W2s{A`;ѿrK' ̎?'f ~y]j4F{{tdk02߬Ӕ R d!L0Aťa2 95v{ ҡSo v,)ZO?"t++kͳsPpB[bȅz\MGpO߿>П, VҞG O\g98*!F1?70̪䚖~TuJ[@1Le_Nz:s]ʲ7xSh?O1>X%Rq+ɬtt-]je;~|$MbfM8FˬԵeԔU#+Jc<{2?xʲy˄iȨ$q@ۀ;+6=;y Ggutr+:5 p(;#<܇ +/HHΌ;QU^֨ߡy$IB9r$ PӀvS@ӥ6zŬ (ȔCy؈E{t#ٱsB5ǗSA]>kSeI0?)>9ǖ1(E7%~dh^ˡ'w]S~ZUhs=FYÇI]vث݊W@iQGUFawVzmM43Bj9ڽdW\ݽhqe}2A.g&8vr|kN}_ GKǢnpE&ªR_9Y^:r˕1t):)I͹%/\(?~\85MNO?Z& +mͽ)'Ѽr 30^ۊ d6'x]BYmFSdR=ckM rPB>K?&ƶ%a*B1/&ci汋uSK;##7r$8 kECMwƺffZe SCREkԓ 0=+cbꢤM+*]:%kv)Kӻa{e'KC/O,yAfHsH!q+TfGͱcr)!~"(!ˋ}b~=e 0`qzj">0*֊ cC)V~]џ u[ًo@{|]iwΤ(xaf6 t7+T逆8IyFD[i]?+qɩ::٥%G-\NqE%{cTXS+i0 0>og;eÎgq%Ė 0<@B]q!ȅ)i HvKzofx-6:UVLk9" v ѻR s0]bemsf;ǯÌ!A|KT1sBk/&9*얯7`fU_)lbF0_n>B:bC֩0jIjRRN9_jM'B1aHu )tCsLyYȇm)rBpE\N{?Mx,QQCS=e0Оro.6@+a'lM#7+.zOJsX,Ѳhx#eGLTTj x|sorI:YPv(1jx(򮛄jLjD{~QPmŝ\ ] BSO3ޭ^h_|IjR+6"uFo i$鄜-Їlc Kk0,.;C@rhЧ2 TluhLY-06\i!pNQY>4|[͹oWbϽuQm47>ԌLq>h!!,? =o@~Ms?5]\铁 KpN^ FJ-f{&9@}(v[IRZNJP8'g^܇OF#/ۊfNuѽug1Vc0?05\,6cx1K$۽+ʚ2_G-t5驪@ OIZf?tFAAxz vœ[i۟pYb0 CG[>+AjXѻ*~ΐ_U U3nrW"5c@ @4fIK&;<.-jo"jYn2rmkC =B34*bz<_OK0CfmvqL~\K'.MXbӷ9ɟĴզNK#</:Zl]LMGT1<:qYlKՔO8.:4Â|tJĸ79& :p>M'Vu"Gc WMܧ7vB@'ewW? (;nvtZ ߡk͋#k;AN% ޗ'(*HShܖ0>$ҶR;;XآUj ~CmKyԟeS9$qƜ6iEFUo8}07h-ͫFUb)O1~G ?u`ےךU| LR[. LvdLSa P9@Isi :Sl 7%y|J8>?x^u2FG,Jv2Bhg+ R6zWfo_t}z~`2 5~f-~Q \HY_=ؗhk) ' YOXkYÆ ̢޶Ck%b=}k#7oD o3_RގPq2gֶ6Ksʫ&MD}ǰ;\.tXLw5 ј[~5r*h}&t/2uQ OXNRq1njU @8>'5aG +۠eߗMz$Qm)/E=Kʗ|i2Ȧ_㗎OOHO("N2O.\̛i_(H*jʩ+K6r.ɝrިdWxEdp&}mL{yobYa#CM: ,、 YIٽX8Pt> ;vڍU7i<-ߟ$:DglUo:`hYp&/ ZZe^cdj sDcXp nk '3!~^gYox8Xur!=kMWUg" }-oդ]#nCkBQӓ~#fb2KMMi[`OOEi)]0k!/_OVIC~dl5DKsk+Ό[VHWhTf1"zc3*BCi.뾩x5Ӓ4%J"@mx: w_ϰq\Z)%k7}j~9cIX8ɼ kWxRo:2Q ڔO@xvyCxmkT8,֙sϻXuxMPog\AͿʅL6l0EzrvAҩ2cHKgmun˽ çn$jC W#h*-6$DJ}9jEB>&{ 9Yl$(w_Έ51JMϜI5ǞD}nBJ؄Xd5S0 PagsBVx0e-zM.(TRdMpGrV()'`G=ozv_E0.k[}]^)\l~Ddzz59c}e= +)Otd_Q]NYFJ-e6 Ky:^! πU_Kr0/1& i]0;%v>|u `+kS53bR>祆Zi/z9w|Y_dn1.w}3AH7M C4O٭+ 4!,lz/ޟz?1bʱ{&F5B]=ݯtO7{VH>;,6f Xy5J1:!6 ~1; ˫_yXrZ;9[(MflD]-0L;_,410F\QjVBYgunfUQOF-= ߏ`.Hl4feTg%v`vl: v ?8Ӏ]J-8;{~gYs/fʗj"5SY' ٶUFYN 9+AG#{Tk4홽fâ`:"h A@+nD+Dw$mrbW4 /_=t7 -^6Kte$ȄdGRYbqsd@Y؜v`wDsf+EgfgyҜtLBvUr*@mX:2M8İ6- `B !Nc|^1zñ~̛׭9-fQZ +WSLc6ϟ1/n8\l'l4OrI szU/ū>έrw/dhV>LP]jv]k-9;S{E'3M45˲ U!kMҳc6M>u = |~o*<Ǣ0/VvI&C]濥l߯_&N9fnOrtMn󔫬WD/f&:2zHMf؎ 9@4Z}WAGtioS0N8=NLwz<8cÖ qY|x> FF1 yt9cK" SKƈ_7攬g`?Cpr?.zr:a1~d͊Qgf󕛴6}\Yy5_Y [6oȣ9eҨW2X3X.fgfFBtFrF5fëP8< ,&W)Q(v q29Ku'i˨^&E2[z1';)[S leY1Ŀ2;>4WxQHo*թh |j657hAc'Pgbd|/&05P|>Ibxjm`c M-mu"ďseEut;O3Y}jMNO'$J˖]{vJ uaOJ{2N2#0sCAkۑQ<g&46ٶ~U-{RdhElV,ٲY&(ʡ{Ʉ2Ik_+#}+RyuU6A Eڮ *BA |6LDM?3}\+D_uAe +KxK1S*>˯Vj4hc_ 1kJfeՉk,2Z8]O}׭;Ok]->ӡպ zK'Wzw1ō™8 1$/^ϲv7G|.y䯊HAʦ|]:ƈSIAB׈93| @Gk^bOs/hz]E^d$Ģ wr&J4#ivV!<ڱM r YQ.|{6i5=d(`X$(/ D0mbޒl금_G=n+_9ߞogEwGHגr+ VHe|=WHE_x )E iiO,BO}W6=; Ted?5u*|3Oٺ%nNPKG1.V(Xnuvola/128x128/apps/galeon.pngUT {eAPQux |[6Kp܊#\HM-qim[ԬLș#K3SlZY gʅ;'BQx|q\uq}]%ŕA ~'[+KζnZ`ăD\$g}W\"c_?wR5tr=ho EUJ)i`Agk9(69XD_`z06%5#$ .U[Y\{T~(o!㌓q:Z( E 1ծXvA9:6;Vw^h ,."PYb e`A% Z;)ڬ{mTa`-SM~'WP=%4sgGCKLmQy,~K& W!%!gvi3@iWB2J /ѽ?U[$sZ]#$vv)/S,md=˕p&%ȱB$/ ,ؓurԽd1LX!m!Kb6gvf=4y[/ø[qW#򥙰v(CPr-{%p q-..$H\6N 34FVx)<XH`I4|1.|{PzG.ȱ\HhBD ۏ n<(\qh9Xȁ IlsF2+q(#! w|F/I0WXiUYc{L|~KH4rF|Zkfc>M+*^3z3Ό)2FC;O., Wj%Wц&} |bU@D-S>」jrq=R{@9؂FMP&LI AIB ,d&\pQ7۳ؕ#]t"Xvp"0쎚ݲA3htx=FuS+4IN(C5[y@Zԧ64b)X3OEMkLWЙ;>$R׳,WwZ/,ET5.ߔgi"QQ\7h{CLJ ޗمt6`5?!tfenUIqoa-P$8|C)\ZYԣgW!Oe/!܁GH+p]hcmdqd\C+c9q$_ҧvdX8 NR=OzVҼV`]k= ЗĸGؐ.D1bR98%K9 #0uX1;SN Pi"/[ ˄^: =CH_ܩA4P9 1G* [jb˜f42wft/!syWd|dn(IZQh t(Β*Lv#9*qa]Ynq+x éa&Eiy aӪS?obpMl[W:am-3.chˍ}zT }rwJ6 ;I\ji0mXp[ȟìFd/5 tc=2},8iN7 _Eׂl,q$ܥ:s/kT)qYyC]RJ( -X1ָ3:Ӑ蘞IIȵe=of<9~y~QȇGڽ՛sh[&@i4+JcA=B A_M(d+Nz`mXA 2EziMDO{Q LR4Ԏ4.ʔϦ aV$q H$X ʚ"ލ9@xw"ßg{W%!\ l693?jIftH+Ij{p ֽϸxZ/pT{o#TOxP.ƀv(Rsw@Sf|3g0;]+/Ǿ?>e/ B|;5ӑ얮`p`d9՟1F킸4ahA5/<]pY&/&xn~0u6.Ɂ[D&i WE԰CwCowR$<> ITԅ12eo*@Q ,1YDz"a 7BN@ʹcIZ1p+D+O>*K ӓY* AlXN#p8j0tQ`(P# !˓Umcm,G' t!_n޻Q8Y+$Lh47f`ocn,!!$8b. }^Rms}@u@~ Y`z;h5PCs}vhUkO\Jw1mCGIc pd{bZ'~,bVM/e#%,_%gJ1=]pzRXO EfxԺwS^ ߮>Le{0_#S5} ]༽ }\aW^)ʢ$*j%Kbi11ɕ13+YۗuUcÞ%n-[s8݄p\P"޶ yO c+bdُonKH=unK! 6y\(yoD-QӑB%тļ4>ujAIqchl\UM4jރq&tXs2FaL<6-W\׊QŜVith '~ۭln,K?r9 R3#w[ Ǚ[o^Q_;`lw>9I{ Qj #/KAVQTe)t*h f$j햡9ǧ;kddկ2.]G{;e(sҫn8%Ft[yJ>Dאc<{ [ҧ"i/@Dcsuism9=ݯ.jtoa%0K.]&ZJPs7C_4HlVyE!Y̞>8O|j{dˀHKl',K\ĺI/Ҥr>2X H},WSC2Aiґ{\9Dq@P"4OBxAu%(yU<3 ۄ)m:5V6}}@0kHQ r"6<FJx¦NӠw04s54ׇx|THԂ:u_Yυ]Cߛv` .Z O"my"//)J$BSg^qz;z0,/u͠+~xXbT,8vո@$ߌi _E@Z@\̊]Q/'%BqeÖ g%v{}v6x,/Ӷg=LhҴ'Op4 '4a'Є/2&z)lo'k|-3aBmd6Y7;ȉ#B&?-^^6 r{T%qq+84a@nCe0>v=Wfsf ۍAs<}c^GeFoo x[b) @^b˙xɓVa#+LuM99Z Yv8\8o&UL1Q~[}b.p5dEXqh7و ҜazBI̹Д~ޛ8 q#c9tZ-%߉Y}נ}t' ZFrP7QREJQn72}6ѐnŶ[KIS ˏT0 ߿m) :oHE8JZC2[X94yKrb}vO 0?2 v }N2lAstzwQnjB L^L,֒Gt{*K)C>9t[LNـ[`rxYw=O>pּڄܰ1[rVPJ h6 &AΥԛiĽ)Dw̜ČpCEV$ţaSs7H/,EsjVhv5P+\8~h1ܿ:m7I&rܙ[`9zB(Y)a1E9r-!*G kG)Qఃё߉(A{'R*G]Ay:e K*q]3qݰ!ހ'7PO(ɗm̅IUuQEQ4^1pO7lrrnސnAGXsחO3mXC)$sUʼWӵQhvXǮ)=d}=%x־2F@!&Zp( y%k 3fٛ;V y/L|Xon9 rWcgiGtv(ڰ]Wa ?S7>mfWuCRK>n8eԞnڗwǎ?*/u~ @fgfJL?iĩ4WZ.Ude5U>ҎlGe)Tg#.VEns#K+`QGe{4l&;x&A<&۱9E'غ-&Q"`ۻJ(~߿_TP0[C/vq/tfU+d.hq*F5Miy'=;M3bFڀl`|%(n j<r32P" :!>ݲ~C/4 |=H[\ $qYD&FʖV8θ>o0W1ݛU0`WHth#P<6~-x-y&ϞF2 ~`3 ƠH^SNpԘ(C \JP:BaVC+dr˄ _d!g./K!F :{;S7kQ+[^U/EYVc}q5J{\!MȺ "ްD 6oun oml[iDԴ|[/h⪣~+v}[h3p*V>.Ky)r\!~L̕dC;7u4[4e`Pkm1w38_ AޫH(fxFRN uߘ2=tPu9ji`I b"p jh|-} &g#U16Y&B!߫_^uKt+hW ?g{ Y!byHɕFE{!pc$q\}uwnJM#%IY'sF ^_U-~-fKBBr.S*&w:\r9yǞ HLNK[y]I.Z %==weNxp59Adk|owFVSg+U*r{maڼ }JՇ߻o;ڷ7YӊZg.LA+_Uw=&ɜ<$$7ym˓8ƮAثn(ׯOn$ES=^p hjb|t{?pfXh>ȓ8Z>s7!RE6^+R,ea VFVN&JV x m,whq7479و׵XD [„;$uCXe!T Xkxvٖ7[a~7PWG` *FN E1|uA55q/BeI>WioN%UC6<WeELUq 8MDxU`JBkqJJ~%.}b~?cJ)n! ~˛.Ӫ@ǐs7k(e(cws{2fTaIQTrb[pCO/.FwhHP_Ph"DuEwLMsgFT文@{׻pp6}%r.uR'2 @g/NI Cg=D}H7elzё&b&TEj@7adb,>%US^)^4&W-~ [Xb C6y8 :_ErKw2$FW-Q8bHndMy)>'`q~CRF;Y4u"IT 2a)BLV:H) җ`:Kw`ٴ[8X p|7sg$׶6wQDo],z]g&+o9'/ pU>SǶR}I*Ӣoǹ_zW %/:nӣ:LWTM8[I\(`q2FP`(^jmVȄ=Mr۽j0W/bX=- ( ~%Zyv/91{^%>6teђnTgfo5fo%;|D <(0e /=H]?(_.C*dO<7x}wGֽ|72-|#>k'Ԟŝnv/\0\KofEJEO#nב|`,0'ZxVUYg& v/=HfWԸ]3_|aOQYrًK Wtt_ݘȲ2M;Sfs?5۫ ot8'7/I9Mcq1 I3J#G k%1b$ʽ8ej,x!iфf.q&|,&Sb+) wku}DQes 0Ho!"^]UvZmE"0#pA7YׯW=e v@9?IL-)Og }~33fU:6_%f0V4uoM_PPAL%6<q5t/0 [S@;hniaPi~rTnJc_KgNe&J@?ŬmU{C64ʾ@) sqHQIP֊*Eރ)<. Db@J I*ívѽ%(sT}B qSymXT)I,NȿPmzPo%QtAʳtܞrQt?Ҩ-:-~^SWzTH uip LDnƣM$$]as mOF4$`uo2hpZd!tvvlpljMD--߭dh,>lE"$[p(]/"sTp-OS1sRz>>Rn 2)$/Po\T;Kmʂ1^xrk[x-+quc#ULtJaN7#ϑ+!6\7a'G@Q4?ulЙd:2E= YFXyPv"猫#xO jn~ohXλ=%5ؖݲ \c? \u2Z7'>:}yL[…4T$CRtwzg" )D"X 8c\!v?΂Y -ՌqbEdoA'n /FpjpaЎ*GZxT}£R]ڌrN كE.42q6ñr#ÛjY3V!2AҹjTd!\նq"?١oj~z7Dи\|&X e$"[USMw;[NAϨRiy;60=f6GL=P2" KqrJO"}+a(*eAʀSW뷨bGAϠ܎OD]i|=\s}6VvVNQ|z9b;&hq`n;!߃Hu캰U0K#_>Ǚ ,sHq}[ժ;$)^MX jF~~a} lvʈbx^U^xi'/B/ۺ11+ G@ڿ,r(@9bD&N5\\J"˂xu J@(. oJ Ը>wZE SMJHB]0 >]UX&>~ 5.3*#$8`5-~Q2&uh 2VءK7ΰqERV-2X*k?3Aդb𫾾a:G$%o$_erz:ǼW@y5H?^<&*"bbD['&~ z,xtAj-bOe|8 toLHQyb'5&VC:D;%Bޓ$U2&"Efi_;/Ҩ_AĽօwPp6~"Ɩ~ڭdut>[Ay﹄sGs15:c"jh2$XqG9P'8K-ɯ{صP_}-y*n+y'B#Ѣ QwdĚ eUw)/2SRY/T}jhH3>m^-c{}(Ǘew͝T Cp}2ɌߡL1Uq!/}{Ӽ.u]#ixjlrrg)]**%ioRmʋC\y֑>Ƙ/zv :Y:()/ivCtZHnJچ>T+m瞃UW2E Qݚ)^d6-g'3HP $JAe `C% I+-sgЍD&;/˻HBp*@l{N#"/?X$4bdNOi(<.id(!\]O9[ xp2cޫ6R0yolI@'#dv3@t'ŢQl+z6{v͔ orK҃JM-ci󮾡}yiDJXaQ[^8Z>'QmN3֦{)'͢Zz'{B7¨3}O4PSϤ4dmOzcN'iWZ|xLj$o`J"8([@'O٠Zb2>4&**GdOYF S7O fx*j0,)ݕ+:pGIWn cMm^V`oZ:;Adud9gm+B6jo{LIN ܞvʾ]rMB Z Xs*#Rd2pdߺI<OtGAx)3h Bpp5W#.y}*k k0>lW@EWU>OCPVD) )A~Xbuzh~s^RRwY){7hX RmZ=7)|l[If+jAeksN^wiMgrP1&Å $,q̧AK"v 3 CC.Kh^ KqѰԌ6fG=3!ߎXWR= E~0{7Ҟ2$..q'Ȑ ~c4atÏf'ɜ׀8V6]]" Ȃhf\Y>(4)6Itc|?jMc8Os4m=ގe+JcCA htV}2U8jMDZ;~]- $ 6&cj -+ey.IO<7:/F}x.MWV,*džy|R6 EΠ`z{CKfk?Ahnؼ'Ewͣl~5Agd5w.P!oLd*$]0~ZG%nJɃ)Q'J+^y>%>esy_'<Ѝ,xMX2dc6A;!$mD#V`9 o IX@\c1&0 nOnakмwsPAϵdL\49H<~Zm>9^rO:(Aʤ7U !3/QIsAӕBudL/I(=yYfDÌZ +b(%n\ko2yޟ?[87$ r+i)GY?xj^`,51trn"Mx3C!g}EnQd0\.4dSQ/Y!y8p"\(|t;7+ckɟZs CEǜ=( wIT*ާó& A?/Ki[P&H`R]>zWy,ylmj,ƮB$ra!yrAڼo$k U{[{]o {ӄ@1_娬~heu{BqwFz F]^Y-U#Op9Sa.gmUVdrĦ)߀4XjhՖ(R~[$9y.5cI@vGuJ)'%SC^=ԧW04\QhvKcZ+.I=Ӥ>d#:⚴LiM(bmzX^$V| SC\EZp/> 7n&@:qy@=MQͣեZ2Hi:,I?I9/ЋdI҈ak7g5Բk-aKІ-|*@n ֐={Aũ\baUX= $ثhF> cܷ>]~"ftqob5iIF*KXW| =Uw _2bvh$+!u_W%Z;Žou⌊:Y mCva~ o_ƫ&/2 'T ExBuNe/=VK䮸'-gcD0r!9JU7 +MU<`qԂw30hx;iCE.oz/)/ -P)),yrޕwPiwH_ާ|9trXS tTqEӠ@z虊Etwܛ@jbO>xJ8)>_28@ E翁<_ҏkݕ<}(a$9]>mDYØqo|=J8ߏm)v90{@ K)oxmJY4OYFnx:y[nw'Iƾ/me<|,]YoJEGyr j?.r+; J :;A2Յnz0xi8)/ vzT6MGS SS|h{}Q§Nk# yP.M8zTm8||d8_ŤL*Ԯw>bup:#Ǭ!%tJw 9Udb|R| nU >'k GJ28 qr.qFI]fȑa->H4\(VLK{e⮆""= 635Cg>.qh@4xq}j<3l@Xay#@R^+%~ ʲktS(R[^&k =) J~XXH'Όz8=ALV%>. Ӵy!7U詍d?Ds `\/_$EGj[IռTG3Gᐧ f񶁔3J +_jC2I;+|3Z=}b@NR7/w>=A(N1Bߘ0X̾+@~Gu::/Uf&d$Q8%Z*8/(,:{IA?vFMXFQI*8Hx nHM>TQNjtG!- + 5wĝWtPo $/(X% uRzddSR>I13jcM(1zZ-]6NTCu7vC~5QtBq30!I>9Tbksh27o6%'~i!}zdeA 5eV] vT.VYLЪ5D42~ӄhVa!ﭹ-x9ht%сHLAUa_E./}$ʯZq%\׏ġ#BTQl(jC: ȱ0VemԚ"@nK w:H#cنGqۑ}+zVlu IGku& : 5F+4 ߋ~6-m=]|>z[<_pl݋˦ iW2tUBp/9)[KևS9}}GޟgeqI2{7o5+ (4u Hm߬:mx{kӓgTfHhFKUmoXT;`Mt4[3޿!w@Qҿ|aa" TZx:|ORWU&N)u!2|,x t*.:@i_D$1(a䂼֪|lk.h٩1T y>gc CIڴ˿5E(yHk_əjI?SDp%l- |Y7ǨwK7MGT?`}1Ca][:|HAsdL 85_$Q h@(ׁVn-[WCί?dy_lwq$O QE} J\h4&m:޼_EOsKWȍ CNl3 I* et8+Snk^ɚ}g2Sv`0yv==:r|m2s:ebj`u81U :Vb+\G.:V&Z 1e2%@uN˓n^51$qr<"zfSQ1S4e֧Z g3,)(N "r7`mv)"q둼1pNx(RzZʽ_2Wa]>Џš8Ft1 Y oi>֛O1B ڋ^Gzߞt5 ]|.Ry+5BKז^OrqscR f[J WL(ޝ`4Z] .#lmrĤ K@C`Kl]"* O\+䔼t|*)| 0@«_D[2/S QhIacL>Z3mhp<&ɣ6Ӳ$i?|oUyL\QFx7,הԋV(⊾3zQ^Ø2 Iidۼ7WGk[.G#&ho~v I7ƠD6Y=-Mޒ]U]e6NNj?~kR.e5_/ʃmq4D';zVIܿ~ftUJ_ƚ>`C)Rv16썛!m_YZݲ!Fr^d?Eݷa'"߻ GK[7ZOZ $kEE)gυz*șCe'{ w`bb|'9~['?ӷ:޼K#`v6 Ӌ2e^RGWHAu1wyx8|?g.ݱC{7U2Y,'Iien#8Aͳ\iCoZ TDwd>E4OQ՘\p=&FɄɓfŸojl3䱶Cl-K3Ԏ17k5RW֚ (굽=]G8F !pwԎCߌāc_='nJ_C>_G nL/aFb#*'TB뎱Ӣ=3UaUGs5/dvPB&&+)&\?a }I…FqU^(ƽH@=c'  2Q3{n+[)!/;j.&g՞?P]ҭ~wu m9r?ѝ8f߷ښ(6Q!E&Eɋn64ҟs5㛫U@>fI0!+|dJ6gY^PA3KU‹׏;ww647Է++5с?9+z iĮt#ԂLEߤӻ0ʀ(]hc #[ϳ)nAUw\j)+OUr{!3NYKMy h-G wgMG9pm>ڃ9,k>W7{IqPKG1 f8CuDnuvola/128x128/apps/gimp.pngUT {eAPQux iTR>$8YH$R5Qg+˱2312FEӜ++KKEΟyً羮{⣮Lڦ82{*#BVML@r)c&oJ> EąE q<]+ZEۑ-L%,f#LȲ (N{QKog2=XBX04 мx& =Z6="F~2@7Q6K)f1.‚oR Znja31oAMZp\=>HlUŭs Uc̼Se cRFƫKMoY= ZmF#aXQPj +͙ Ԇ`®⨔a50Q8lrXE!G' y499h㺿 Wm[K!\k\9Iw>xYaTQJ#B ޤDdl/[[7Ti?{/G3![l=+m"< kWUk7IW$CYgx<B#'ԎWf4N3Yں10SzLT8@hCV EȾ*$%WE+> !;! %ZUi_YY{R ˾ ){!땜/yy8+C0Emmv=4`TҸ`y w`i<⾗N"Rkcڵ|6σcLT:M$_ QӤ:.?YsBݡ:.B#MgU· 2rjP g+زA3pσTd~q?'.l(G[۶l^c 1g~渽vpbV1Yc,x+1Ox ˇv]/h*9F''XZF5rV`LҵwYvӦIr>*ItA:o$:n22΄UQHWH,7nnv:x H Q_?߽9 $>!Ec&E?lpR8_ °a>bn?WA:/-iq 'N60_wq os_yH  ]caAؓ}^b2h WLW86^ `RW݆«<`_hJ&(Μ1}B[wFA}`;u&Ϳ)`@NHCʠT_]V-ŤdwrIek0T#&Yz^kGUrjWǏ[ '4`|_x""ZӪ֕s3^+{v8P=lHKȤ0p.,Fn(2܊G ?#LWJs>X–rvzK-JTGER_l7I"PZA$]G l j7HMx0S(GNhք7rI7YL3.3:_\AᲵx@ɳ7oY Wsċ;hFF9pV"yf1j!t//W/UCᒩ%\ddb]d<(d Prаc%AvB{LUؠ Ao'h]9Y,&TbQ3Bz$p ūf4S] v3ē 6=-]<53WevD@&Mf's{>qRmL5nzyt uƧaaynڵCtDe)l;a6ܕVil[!=K8jSs#|ZkXq_Q\J,i\~dzog oF zW:O'|j̍trh^h֜Na Xq$9{e Q&Y<0t2P5C5/~u¤3P+61s L÷:+Ef@2 !:~i#Tc? 'r>#MUezTS0"Dn/ #ZVmið3Ź$t`ȳN{FW‰i/anRQ>hSkVS iۦբVC-ʬSu5 qIƜN;QHQ5bZZ^"jt *)'ȑ)wA}1iR%xG|$m?.]m')n/[?+qzJ26"WG#'qHuN*^$@F?[=Mz;jL4,t k-q[ j#=,«%U D}j#E%0]峅4FIpmF `WG)l%-fĚJ:=ͷ~'XC<-j!*GVu}95'{JYXj&'.y3 g ۚ0G/֭u k_qyzOߞ{bI=`}e㏳s<=OƊ]Λe_..{r̷#ߟj;XAʡnW)Ysk&#|hIxB:d]Rog f[@֯_~rƍ2iҝ/U! Hbt4  M1Ʋ\?4@64KDo;LMhiГޔUd ¢O"ê. |%pxkЇ呚doi[f?t =_ ~~כ$"TN]{jClmo(hW}&"Y*QW@ {wwN.,#73 8lH-t"po&|Nm^~CsK&23i{KI1 4s+興瀐 98J:Urq5t>]ez\A%6\yVSt ( h5]!oW@hEiCTz`(&_H|8ս$f[hΗjmw::;V[47.c߉<)OTL5Wիl$`?NE/oV<3V1p'[]&7"}{+^_UrLɷ,\R$ .f K~)6VgyʹOBRP:R8ϩcH5F1mH(Tm~IԞdpFGi3/zI ¾Ѳɾs:_~]\rDc?ZaӚ1(v{ɨ~e1gW K +[xXҤ29"Lݢ~+=i,՘|vWKԚׄǘbe#Fbsm+vLIZo%=ݑ[ $4,,BdYzzYOILl.Iα(,dodmǐrʣ/Cg.2SMv6p"֨_!_??H*l=oMkʼUs74[Y:1֧, +*%au>hO[2P>n2hy<YMݞc +fum>VRȊxvpѫ _)wu,{fw-H'-6O=:]4sr"toܗ,aٙ<s 38ܲ6rݷ˅}B|sm[Pvjٺ4b٠+kmF/~oR-wϷ̞4p6 KsLWOtd^ڗշY^ۑI2 YT~XFh>th9tY@͑ե|y!^>w9jDdWW_#Ꮣk&=;w"vZF#ZQr( }gF([*ReVT|'.o$QXhqw UN"RַJ f{Pc$ą"/RLhA8Ҫ\7cTs4\kl* 4gXw `Oqdbb+(iG}RdZ k 4=STNpՏ菉*eo5D9VyyV>$OX娔:'1֍,2.599A\_@*8ngvI")^Q"Sύ v|"yr>G9:{bLMbjD όRS03nSz,TI_`0&JPUԂZ[fF+*o*pfޢܞulۑ -ODRDqӏ@9ۨC|o"{yRD@޻(Yg sE'C{ˡ˦]@c"Nt&.gXּޅ9ܲՒ,˰РH}Z8QP޿d?$w344 :ko: Zn޸!B_C.1caP^H2bDďv,dfzq^_ȝiA5zٴђOq WOhj5EahxeUNZ&Bp)h*/]︌~z<(a`zI`'nxAD~Jqh=|GY'#jCT$+R0"_ ?a 5])BFAG\9lRl آeS)0p\֛]ʄdCăO%)=MxvF"S`\|Ҧ³Ĝd.6zn}jo?| [ }.,&e"ުGo+nuܛ:qVG[/MhO[D9}X&p/d^D ;THq8lQ5!!  |uA1R2{ˀ{}Oq_9d=@C!ԢԹE@\]zx`35g?_~v)4!5&D6=HRzzʼn:a͟v|D76'ӎنxia$eHUշ`,uMnـ@[/C=גnI7+AmU{(WUiᙠܽE$R.dGtqҰ{b;yψM ya#lhaXrk❗롿Q peEMeyYF,N&;;=%0r]s~ 37unCk_{jx~iPhDO\*X={D׹1>OMdCb(O3җ$j; k(@(v4K e* 4sthQT+'%c04+j)tkD|C)$6p[|_5ckԽ*7FC 9ԢΆ8Jz]rL^Ô N|ų t=D0;77b-ʢ%ȝi}AhC .|ǓFJc9­Nzo6Hmv~$TH~Կ%3hEC-͠6^,\-{'{wgҏmE_: ]LJfQ2sF^Y~;"o]خA3B+8ѱ,SyR֌*XĹUTpT`Z&jG2\ FΑ#~qk bC'>sRRq e잋r4d $k݋̫ Cm$huŋˡ%z0:QGI}㕂K]_9>.x0ڱp=]JgTbf1?F{Yvz/ illȤ1ᥚ=/cTmmuِ3SMųƶړ=}Ta:d"9^̠װNx:=ih qѫi!7gT@}s@ X&PV:6[Zw3Em$N.O7V'5/Uo0^JLr9]|ҫg'ML*{r>-6?ƽ;I4oC' 쳿&wwY 㼷ܘJH&޺Χ3M(pY,WˡIEPp̎5xd ,aI㈻CQthTn9P(oPI?FlG 5tƷf]O{uVή~`l̶mh4 ?^璗M5CSת-{`o_HGۉ ~_^9M+G}Jy 7Rձ}U+ m'RL:lcõȧV n[`Na4ǻ9W:3 uhO]z)7( ;t}hk#iMؙ({ءVH ։q%,Q>{cVE`إn|EY [D h Xzu2G zjfH2h3f S5m hpOlԺ\: 6AV|#4/j<̲x<CkC t d?`kdp*ӈın. Vodg%OqW_3RL1w\@CKh;Ď[KE/txf k'$G$D1MJ84Z%NE4ƉI0Cb ˕ƥQ1NkSj{7}11X<,jm Vx& KYǦxz<_P>b#oJlz]m7R'qeWsyܕɺp꯶_Ua\iMZ*D^OvzYc)2il"UX^I&.߶#N5<9,8it߭R!A]vޘwm z}A{{N6_Wvqn7kdH\NI$B6dJV!6HCP14x˄~`ܗOqynMp2Vf:wxr ʘRTSӎ2^oɳG~trh\'&VgƛC ܏_UT:rɢm-A#=yym52(DWF9F8={Xwdus]eJ?pLybVV/̉K`R^Oqi h] |o,*{m:G(S"`u'IJ =H0}yߍQ*Ihhȳ{Gt}{h?@י 0 jvˤ~gl>9fLa6K=,9_0:)s{!V%&u;uKEdd& _[//hLcźRA'5waigjvL _GbރlڻڎFmdj'X$+N?qK9zU!Uʟ&j[|Pn-#$n~ &ә_*^^n- '<芌߼O[%'mYNg,ãPh}w Z't%N6<(=;1}j.gÄ2WB+gC]Pο8~:hqk8|,U!qk")\Y/!MRnj[?-`u;`>U]g♴,QZGKjwldA3,2Uz#ؕҙsyKȓN)(u>f"I֡f\~>i/T^N.ŀ5 bKj.^&4ky,; u ԉYxg=pliuyð0jˈ~Q}_1@mbW[$ ,?Te)VUu J^l0ls`q6},A';tLjʈRbEjj:i]YZwFb ߩL¬y~~fM y-ȃM # M| Qy^uO}ϩOOK°O\>2mwRZB9[j'-6@ ˷97kqQ`OY/P<(aO' ;z&o[lζ. ף -ng)(,S_|۔ f zwTJ:5BnrရxE@d$޲@g<¾qV nP̥~P߃:vX3I)&&:vwOL͑lOFz .?yQh6fggkF Ȥ;ϖ[^,+w'3+5ٞ;٥cݪIId#[; Q?:a!9 *j_z֡2,JK]c=J:],¼i}Uzq~|91GTOhF"I@~,e)v˟՞;xk pL ]6S|6HI\UQ\fe2pZax-,As\~(S(bSWeblնrHNbQeJ3cF >f'Ĵ36]`"]O' 6G+cF E:П tr!Jă :bُ!f E([hm/HqFY<"A{!3e@?+VU y_c_dJ?h@Ё:.TӢ5LC$Y@d˒+4Wܵ!>߶մ`{֭\zId8cl˴B%Y/"8χ?.m\W~e; w:DC%JI>LUDWm_? ӳ|IR4jG[f I?@ uIjI:D9-kmEFwR2y0cOvCFus(K>'A<9YYu,VSѶO Ge {5{TOۓGj.<7s#? *oݜ &hf މG:B ޷d9dƺO41zld:ljZnC?9k((&+OCOcAVXCC0evA^ 1GLGq-[x_-p@#WAG~K4/Yxq,  kufLDXTYG*|kٕD5a4+tBx:7&bl:1eq_"sw:3 %")ҥKTӉ4N]v(hy(7szfht]3y.d|#Ѕؿj;uLZ!MKݸ^ Bj,KGҠxEN\Ld>RVu T8E9w(#FtnBD" I,u"׼a 8ӵ7\d0fpK.*W71<"|;epGP;wV`]cYɣ$[od9 p4rUО^0/ĸ9 ~ Ir%Kty 2U6eJ8ݘ }}fedz>)0~^"k=GQ1|)!SNI|GӏjzQEȦ݅faC&!~e o?!x+粰O<ybhMTZ'NO&NX.D2˸׉ғ,Rg 1<d<'=-4RmÈ"RջMuŋEښPS:`tLQ%zBOԍc`y ~aؚ )9\G^ ~ï^&Qc]{@v_!Q Ǘu:|0#фI_44h{V3oPP^='YWOQTpe?Q8/$1|iXSR-²9YDZus5>: c\d RߢJ,Ҵ&,=7CDA7;0rApB+fN]6,4bM<[Zz?s F-Ww?LI _~$(MޑB_g( @e1FH]]3Gǩk@{-_+FyL6D?xG{$z^:ـ~i-m\K/53ެ \bpp4$mIm KBګu@͉wS9Ia1FONH-" 3ng]גsT-ڥٔO[V4xWg54 kf=DAFRM I‡+VϣaT7xcS+I[jpLN!e'ZaJz42. PpۚI 0? ^=^|,S GX;Q:)0hw 䁧Uy*k"hEךr wBc2tu^{O w  (gN趆ɋ(phwPlUdfC.4G >xRѱSThhמ7U!KhHCtI%A]TUk(L0Xߓ5fbhM<.(B"@ƍq)Sva7qWCN06Mp!MvY`N !0'c XtN~G<4^Xo_S4b " 3NlMo#1GXeːU^aXX'Y5+ 9llӃ=uiVAZ" .ѱZ_$j>adm:c-q_|,NSfT\;kݙM5'PXj6]*uk 0jNgkXP}An7kZyE q7Pl:][ J;<,fBւddÇjhq*kR;y1{GvPI:GtĒ0);kKܜ{ 7=:fC&_ rTd?@yVﳺE_#;gwN<,"ξӖ#nm2@]@ڭW]tW`Qm9I e;bf0\Ɔ dJ~SM˵y{z:Q+RAiScwNrBx&}iY`oi0:orUa5rI2j׶ɋ+77N,4eBH0l+m}SA|=(hRͰuMp0)UkOID'|T:{f<X+4he y$o4BvOJVVXn:Pv4]{؁^It~w-*FJ " N#w ,,Zx#5gFƝђG̝/eScZA=ط-Cy[>yC@Cb}ϣ{2d12 ;&\A0|ʩ#(*|Pct}ۦWoY0.~a,B$Z/`!oyS9f)~<ۡ$@= chʸj{6:r:pZ߆Bٺzھ[dãW8sthgg*GA NSJ$koK6ͥt]Q%YKHL-AVRьMuTGtI57F"~:+/wGW8dQv_ Iͭb+>V&cX9kDZ;Y0%'^)^/G#i'k V݀3k ,ӳ-;Y-٫ĵVEb8W8H}Uxdhx"$.kR_F9y0_ $>(L^T ?hF$$'!J}Jo@)`b 怚"KϢcʞLRG\i\w. {~ m$!xnRgCI_KȘ[L')'H"gdi{&dFZt["\rKneV6|O|mDz(4XyLJ14IiAu,_~>} ,S" 㨩w\&[E]\v0 BNUdߩڳn=®2*IQҞiltae/lD0;4eܐ<&5@eN{?B+( V6]v(9?cOTskt& λyWHD h-U9 21D{D ٢J)r'r3 .-tY8y;ndF}(|R~ 6$ց2 x}zD0aѣ]XNHFYY/3%H>=,LZr"G@_a}$  =Aǜp -[XbԃFgID2y:T \u|\wOmј $O{ yNOlМ ԋP_g{%@f6אvvvHUpeѬ*"sLyykms-J敓Oଘ(FHYgMK<eS|Ѣq)ĽW3F8KԚs(H9gc^ƯpmpR1VR'riS2桠& j$-od(M_9Wr}?~l555 YJʎHG?C 6>By= &X>&ݦFշ C Pd߅AƁGo vKTHsȟBOt`y"3!ThU <&ջd50Q >x MЈ7--XK8Pf ;+Wٛ0-AP+`#ڷoU^m SQuHZY4YbJjLԞ'R^dL.dgp^zdWoZx-h3gFiSA[0ZIKJz>l6}9a5y]qkL%1~bIh.hW/j+A]1t^`h@bzj RftzE}sD+1b\\\..:B`x`)@G-:jZ9'ʯ;D^J;مߨ{4>nvo V7ʅτ WߪY~a.O0cl=;z(Yڅ+y, _O s.D)R#Q8+ck> i}e++pyI?wh\>$.Xkr];:)$bk{o5SI> É@Q6厘 O@X@ٳB^0:b,c7wj?6.*\9*P{z6"RE!#*³3G@ X[C$x:$`-+7<UϚx#݁P/r#޹j"o;/j?:_K d|X+Pn;zKNSFC*<}|.SD6&8xx>:SO@{PL˯IF^vJT'mʜ!vYjxȇB!nIy;hJOe _$ˁY Qa3b;& WTKX.p)z~@\pegx5[&Sj``ds͙Zȫ6!sssd4z:r=߃n'\uբoy"‡[yBG_c{ ,ODwrH]-mJg[~h (j}]R Ds#2?zERN<و'%Kx}^cx(-ԅ^.R) b߅9LJ<"AfX&shε̎ª_hZf`YOWf.OWK|.(z.ТFvF_(;X=!H P.MXHR(Adkط:~Mw1M:\v6b=_f]w6xϭ (>Dwɼ^VU~;0t;_ K + G':h/?,`/U~+~f&d3cmīG *zμ>eQ`k6m)мJV^ [՘Ra=TȽ-+đy$ 4Rx$AG/1asb5evX$4iW^VojG#tQ.l1_.R!7Sqpmrl*UrHw_PRgS=.dn2wZ9M/5owh)BE!{79gR8ݽ.?4Bڻy OSY|;8S̍ ;ԀR`D~{%:c<xfN dzwV0 $uNy3a,>wqv]mOi_`EL$OrS\plSTOX^J5ҚPtTp<, n+L*9ʼ¹ $D:$Pʻ* ql) }pgb8BkCCte' k6Ger?U8H䝷IO E@-L39W &pGD,C,E\ˤ`=]͟q ٥v2ϫTn,1r[|H5!*O8sLvCd1 e6cmd9{>쏟~-/ƿJLLlY U <9*XMOc( 4<..wKKRXȟvP 0ۼD~NYmXrj 6neI8M{ZllMZ[^LT ]üNBhtA)3׼]kҥLGUJ b{P$Zx\s7+~T]V]=>oGOBTE^uZYH}3(ᜧ땱>loҩpsC?^9}Oc|M闖]QJaYZ5a5L4|: Z^_q<@w|?zN=ԱsL>IlܥlѦw˚ދ> yk|5);uXyn5!\B{he;k"y`#9fT\ba sf%u҇R,V̷q-&B7#NJ v9)tC_S`ߍrs6Y_]m՛uO%&@NVs'q404Z:lZ6 v(XW!= wODgG{ǨFm5wE_mjF0J>YWPnUpՈ ]$#/m+-CSOg~9P Z$O{HBN$I>FfїU;5Bnu(Y߅[m](ohԲ6o"PKzHthw) jYbfVAϓ֚m~dy9}UT )!_^+_GJ\yˑ'T(G ~u=wg`%8ufe`_lۃzG )b[ _⧑*0YW{@ >|hCM6G9~fǟ7Ľld؎}hnsM=o9ϼ=|W[;rW"N⡋~N; |4\ex [Py"bm56&y]ZW:ǖOsq}hbxDI?z=ZDF}+_ɔR:\Y/S8L ϡ9qbUz 2Ij`}l4QFύaL *iWn>L;Ͻ$# N6x]}fvn~Fz4l@QD9Aep@JKz%+xGͣN'|m@[;"H˜לSvV﷊{s.[ǭVen:0&gxx\7})fIfZS3vGr{ S.cKj3󰤰q# ğ|Us\/jdk_aDen+iڎ4tKx p]QZ'%C-?Rܟ6e_/YjϦðJXcvuwuOPaʰpb k x v N軱=܈o<3ǺyƼ.QXf$Jꃑ.G+"Qa{LFP-*3:'}l +D7Q F X"TP !]{ 4օ}I~eS/, lhSwv!qǔ1j:Icv X|L#i{!ә,2LYa@~Ёyo=.W.Qd</w^ׂVe"O\ !CYj-\!*tkݥ7rdWY`i3l9}8EHt4obMc8oqO8N{$./eاd :DZr&hr`͓Vo`f~3XǹaM{=.Vʏ~JхKJQې&av,6"x.T_qDŎ5Pr0W 1AƏěK(/M罩vX|fimŲG 8SWﻮ x6e7A…IT *P]lOkt4kfL; "CrߍHa=6O@ʃv׋>$`j8Z(yÏݩ/rNZv G6Y`?DcM_p ڹE* 7vEu 3[-I1:8PG'wT%-)7ߞ *~8@(T:Զ~+ sޠyB -d})U\T56Dl)"'eR e&H ԍlcĿ@P쌣)/XDfE"uG6f_ƅ/ "+ dg)PKiG1y Q R"nuvola/128x128/apps/gnome_apps.pngUT v|eAPQux %\ 8S?\sE6Kn[JQ "ی!PUoI%\疹m<99yyޟ~?sin%H ]yul!$l3g+hDpT߅ w/$H_}$o"w5:Ɂ0* {BhmG8-qG8B&:RH{%ґN'X- {k8rPuHC<(>wOwVZ>f~dZK6*wayf{kvEOU$Z^xZH;i3s,7ޠf!-0~-`l *}LcAd%E 6/M6&S;5LH#t75b7W[UZocB7 (e8|0&M%ӞbJh#$F`_7d hhAtJ6 ogD))uZc]SBVRTUM$쐇nX6cHntc#n3<9..$~PwXo7,;#}=A̙? (ٴ@xR!Ӳ{q F+XK,x_ mꞄGtnb;hit펒rpk"C0B"Dع)ø%ʆx?pjPܧȿoDa e󍭿ΛW~Ռ;l @mR ~/s5$^%cwsDf.m`ppV#XÃ8[{#l˖Hfg ^k#"[e.㫔$6yHWq&:]TO-o̰aϠȘc#~xcbN`wa-S{!49OSnΣ0MoK.2Ck]|{(IC%+eU"4~! yjO lMCekU`fΤTsRg#K=Bsrd^@q3@YRqt6zD#@RRMrV-<(cs.B{R:3[9BǦϒJckȠuVQU29vr;D)Nx戬_d]WOHf҈yb3 q'~ QT|}.22۩\ 0~%dU~_s4oϱ-׈~ғDrT-[' b1 &ߑk%@szlnm T18.uF%T0~ L"Aoo"q֘Ȼ5.LWRyvG .'4ځ`,D\.;yݸlo̼خL6y˵HvY؍fThRJFm*Z*MCLr}t.ͨYPpCx' QZ D_!&sb\Ԅ|bVoov4բkVpS=E(nx`GF4%oJ o\jh&k ߖ"ΈQG{WXa1Z2{W*,9\\?N٘[QlZ"'ZR0!$ {p?Cۡr,#7oi3J"Ϡl8(Nkqf?(g QHh@ya;[O(qM|f$੊']d^M|]M\T>Z*YF F h!Ȓ X nWt!͈>pZz^L`L zܱK$1S%)ZY#_tG-ބyLs ZVX)/kGu?DB+aOC)9Z%0gP@@j+}A&?!0N39nM#,%/h. 0.hz?Z[5=I[վ8=YR%)ivl80dxloxtj&~71;D1_u  7?PH40 +,/K>Vu{",lRj_$iXDLKt5mD\ZǑ1(;*+8V.`ȗhݥ 5QiNHaaH Zp[1X +|qj!x)h :2f&iRiq9 {! jc| PU #W;dKpA-]4:dZXC>'l &V/!WZK(6c`1]<$+>>%\0bE a:K؛*_I!E׍R +f;"6`qfӀe:6rMd97PI$l3kt=yhk3sVzұc5+_]Bn3N'nU~D=*2m6!nb`ݬRvHB妫n?H\M"顧MQ$ůП@/_FnUdu`_GJZ-w?5Wu왫IQrsºaC0g8oα7ҿ H4[,v3_fk*i؁`qvp(fL(6SY6-GjC "sm?B^oૣ%' 53i"]P&#N7Π$z"|b޲Lj]-zHOZ "DX btc:ߗ?>u+wܼYv?b\,)a.R8\- : >zv7h)GGXDZ1 |YDn6X1|3&^0q )>vH/?^ Sz䐎8vh>ST/O._Ю&SUp5xXfm?H,:ׇd}Blr @8I܇Sh'\ᵬ1U:_LVvy19p/J vMzmƸ3=U1,]!N=Z`KtҍWuBxu;c4 yru`PX?󧐋@G%.RgۑCް+ r pތQi}mXn[/3ZR: vBEv2ݍ|",Gh<2!+&^G ]~U)[dDХCB|'E[ 櫻2@xO%LJxfĆTdb"~Q\<@i{{0<`CW CߍvMQĔ-!| CgURX)Ew{q~6ǯ'Js#<|+k#J'@X[O&p]NA͠v9C"?جTs>`o'7 h8ύ;'P |(.=.iYKH Rrzd+m5gX0?,[ @^(㣸O.nSH% _!7x(vP0'U۟'+Xs(ad cDJቭ'l a1~ClwA- NXW>xK?IJ2aO^"҈4?3TmWpG$v(=yd]0Kx҅Odԥg]F#1bbfߵiUr6ǚU/}[%)]{ >3 jǞt۽ _mLy0,_ ±J.]12 On`;+nQn5/8479#&$X+|xBod"#F7g7hV+oX=]z p #%%]Mf=Q/+hx"S]v7N3i=4K2;yRs p;L%wghηݸůrN(pH3өy? ?N~f;pe1g7h[bD[; sd_wyk'b~TUoD˟0+Iee`ܯ~F޻2ߓGf8 Tp}jJm$sj{fS>n| Bm5]Ip?2j⇫*5!ZDKIYۿ=]e&uOh+E>ַMoLdBOt魮웗2J~z|\atK_ +ƢW`YK͒bҁ9Xy-'}QBڛ;?QsW#]Ƅ{M24燈Osohk&k|a6vaX~ԷD1RqKϷW$<$ǝ ޟ߽uEDY+ǫhs"aYc3{Tsl^~[bin6v-'J+4 !Ν5&cA9/(,HL` ɇw:% A--qN#89/O(y<ޣ[Biu/?bqt*Od񵺢 k"`JS33Ӻ37fXV.7dڵS) *؆ Ԣ6V9Sl\^hf7{'ݹ% Z߿eeL?s*mK4'~{}%xZ5;AY FH\ZGFKda04j빵e 'Z^^;]]5>L=E ?oA$Vx՝SW/F6UB>]YVXTRtBɀ J*TVGa}}ֱ-rhh*Or}mNRԞ`8Y"PKQ!`S}t{ĸYf 'U@€TQ eH,x,uFG^>_K2/=BF&:02w gW@rO*㮝?)3$hxfyW%9Wd6>P Ge˴!L!nɱ˾~ NzrPlz&RsgGCuB.ܦςQb:|nȹɺK>7c-͕ymV[h=/o ;)4vs9"d@eX{Gٓ{á47%#ޯX'?O)gFL|oA1GTT ҹR*ގcf7) 9]̃X*3'[eG78y*_p?~ƁN> T+ uߤE[npo}1:ʁx^vݼ qCZ ği *5}>=C 9{r}%{3.; <9z@k4XGVɗD<%f@aHXן ̈kGv_FxSuE)wJƅ3]\yaݻp| -5k\8mɻf<+~ %fwaXI۸0-nkhпGe-gt6 3ܷM@>cE_To2jՒwk4N2¬kQ~᧷[s*c" 74? p7:SƬ_in,Qço-FQy&|m^{º%e)'8$dWy_aM)iU?qΧD%$TPKǫgdoxiE|ٲypk6ߎ8t`T0x)E)Ŏ)(҆hHABloa>e)Wcm3_$#K:O1яC Gě}MdcXhWCoX>F= An?n!! ]A~=>W$j& Ŕ :?ꅴk"3@h?O?3wL5>yYAl]ĿD9 {+f?`P44S]+r]~#R ;WVH^_4CL8;şQH0a?۞#BP;݀.3}X vqIP}94VR8B vc=1WX>t˛<'Dkc4l06u4M"&Tuϑ2Fݕ:Jܯ 1V9fR/.΂ۋETBPM&='y׀sǶwP[7I!s(5Cq2dd&oTȪTinr<$Yq,Gm!Q-)p̌(6`(&x&o09ǯmLH(`jRc"9\'N6^ҟbo`zl9Z@yw¡n5Imz̤6y|ÓbˮAtdĒE/%X_Ɣ֯,d듐axrRjiU#JNC˛0a!s~=~av.zArQCK@qT|֝'hg"g&E|A+S=*Ԧy ᦵ2_Ʋ~ s io.-mNw y`4#|ײN\"cT\ٓILj&ֺ~5e'Lވw<<^Nii"h~?6rY^m}~"%ߢ}Uѕa[cUɴ1\. {u#\o3[^_@;crߜOM .[ 8%)Xmmo́V#:%e#]38O4qqI%:UE> P +$_!,;!tt=c;ө%#6ݟխB3 D%Dǣ>=-z{}Fo9m݃S酲9R1T\.1^,y1`H6=O*NƐאָac#JJKclBAf5bGY~\B`azXӖG՛_V?fr8fuC8 =Khjjpj&K4/I:gҋŦ3ԕ?Zyv (3,{'cGVҍ@E ,`2eV y "%(IKd?17i{xzM{bđxג22U! 6, ]z& G}Y \vA=,}vp)I9b0aHv<2C 4jg Wqi{+kʜg ~0}· )v҈V6hCHٕ*On'v{rdI=w=Hz1i"9W;镻~y6.ҥŷm!0Bᅳ=)*~j5鵌i4Gl4nÝmUNVQ˅*>{(UXI?kJ i97UwAICBgK, E:<1(Wnv6`=3AK]+W)d%"]qUɵ\+oK1c59#rf莶ޫ~a]LBhqauˤf6K[kGFT&m|qghc֩6U9K] 漽_ y/@>&&e1P")氬MI1f1hp}ʭ :oco㫾bŋR]+,M B`)%5K2ՃG?7Dѝd5Bo]Zόj3}=?J- WtkHk,5&)oyr.*%#}I_*hll}7CADh5^q' M" [JX4?yҗe]rc9!k(;t?펧j_3jVՖ)Ԝғ?xAO =Ď; [`Om;N&iJW" DUI!MײB/ *kVhab?Ѝ;ƛ~}VO-2[*[$󖗗|.Om~ǔIdT ."ͤX916fu bњMW[p#҃ (A;f6Aa n1B!^-kWkmuqh6҇P&%s% u>N Y@\&v;rcƿ]%yS0)-e"pZpN[fGmGAbCN8-}}"sD J9*Nvt*_H۽h[~X6[O ^|AYV6@-_q?2>a gQ9'I(왌??_CS`{tXzYyCl)u?h,Z8cv= EȂ2Zc7qUA؝z$4okjҍuky{cH,ϰOmD/}Լ%\+ߞv8?X΋HJi&x,]hi4$u]ȹ?֒?ǷqJzN- e쳢ֺpmsIQRZR0##($#וoݵiq-B&AǠZpfwM?}_7fN62(Aȟ)X|a{H_k0JX'3y+  ߰?E7lV%@QF ?i8X=JqkҨF %D``t5_F\̠!ED^AG/1-WN;|mlkN4f@Eis?X_:_?m~Nx-BrEHo:8">pEk9b vWe6Z놟,OD~[FH1w&::]4][:"85~ DBjlQ W4u4܁NOfHӶL\-捋;GVmACfV/+D r$Mtƾ nGN,'N9V96y"sÎߥ,5ms%{6^B:kELҎRyO [;_k4\P4'. U oax=A0t~)=jL;mM@2Df VBg36տSs}" "2LW0v-im OO : H"rMK*4Sn]yKj2uEʉRw[Y=Y$Zjqg0{sIb8"ПuW#g2<}ّs'cx6OR2N=Lg S}|4UƇs9eY ۅMls-JlcOs`cdXR³D%$6 ͇RQc)m.S7r6@m<,%Tg @PDmbu{z񰬬p;8kr-غ|,b r E/b_|ԗ"wD't5y XGijڥMG0[Xu, P(:Vzr%l.EQƓ a -`SϱJp2G'?r1\A1\F1\}URB['/X߬]o(mv/MN:SC0u2lSjGld KZ:u`wv-|(} %y B=eD2AHmx}(z0P[ Pd,gys.7^v?p  f 1fyѷli)3.cwKhtk6jf-Z`P8gڎb{yLyc3GHrwD_;a k@c6֑Gd:$μN2Pv`~-vTpnW,E4E۹֙a#|ԣv6hbi x1e 2(!LoIZqms7ςfn.`.6ݖVYQJ/j-.^|"A.ǛE-]a :B< {eH}䲝@cF($Dg2OStk ֭O2a= ]K ;vz3L=ςlݦl`aR=Ƭ8qbضÄh4::d]/B} Ÿ2"pH}Y3+I֙4(zՀ`uQQxJ~b"fTVnu՟K&O\ `4S+4HuuyIBO'#6Ċ|$ Yܣb#6:<2;GJ0ߔO⏮Š+ݚΎ /\sd/8kO`_@/V4!M#Ũ#,im@2f{v&ŋ>Dl c^M(/4GlM5+ ~Ψ;vWsך{"<ᜱp(~Mx'A_SGEe>7Jv2͆:*SZZ-+-Lf ;Ǭ=v'perjqHbاS_zL$-|L}[d;|:O}o_%1_+[zX/Kfk{m $6QOf5;>z>YQ ٺG{W>wvܜS˸w q]u:0Uuk,Zv J"[bMJ獽me?v!{nڜ|U _-0x@tP>|eҽ!`ۺB`?eSv~qG#Go|ML3'D,ů;_y`pN??w\!9@`,2ԜY:ʑGJ '^A@Ԡ0JC9InϿ ${-.񺤜sO{-Q߶>zZ 9OO26`R>mTE?3Ux()bhdghcDOoI6|0g5 K'W_A,>X9R5:>F"/rK="'!*gw0RIe?wܴTdb`;fZ}I\^FרoE F"}^[Ź湲/U?~pǺ}ZSVUdao5 rX"{\2 KGv/Oۑ 2.h YXԊj]A̱ 0%Hj0B):[ڃ[ -,&ԦZYꟑf ~ |+kLTC_uX{HH>^|YW{cga=nm4#GvHdd&eǍk>G; rWS( R ZN,Fº"Ikvq;"2kb5#ULē ]k$K\BUJBaNų{t; ܵeTC]hpO_pHZieBH{s u1S׊{Z_BoiĆt֫\-&wOf6x{^=ϰ["m99}AyHG~|j8MKW7h_Xx;z/)5{*3=;~&xJk04WۦTbOOfG6([rw#-eܹS^ PV~};Ƣ[=*MC3 ym8q-+\{ *o#]#XǶE1ChVe7p++*NC)K"?ނ蜞55#&` WvJ4גfHr%prF_px6O}cz*[~]t^b3wcV|}y◛ mW{1~T/>Rt`Q]T5%:7ӃΉ좒Q;;WF`N= s+Ε`F:hUqu{/;Oi?nK >g"򳈛3ds԰6T^,ճ~xhj~$ CY=9%Rq 0Ӏv|>;D<:/$w]{n:1UIXBh(9]:&ZWD9̫SWjWlo2c>wԩVbͼi_Ō *}?}؛ak]y.[-pD3?7)s^H"I)zwyE 9*aGz!'Fc2uVȷ ג@z9]=Vy)8ɔ|WzeA[P^JZ="7#!ȤM3=9ӂUn Aߡ'UwY|q 5"K\wAn1!InQrjt7i-=$+CQcRDzOw 1%[\5BX@?'6K{B(VsLdCHHsz }ѫ_'T^W][McbDp_ [ލ+]#C!?!I؊i>r\KH4G1r.)Wgɉ~cXϩBiu=-kDZ9v." }NIʗdӵa5\ "֎tN3fK%d直7ʋY͉\g"&"]Kn^%&dh$IE)~p14]v'*sgZ,"SeJA5y09xRr ~K0? <2޴ yJJſϺC񥘬yݭ )65s8k]iau?Xmt]s。Qu EC,3?x*Z˘0hԑO!;1dxLdIp' 8ֳz3"7P% ݊, B2ur24y9 F`@;0=7:{ȡb9PKt918=2?#nuvola/128x128/apps/gnome_apps2.pngUT gUAPQux u{{8f6YsHۜ+YsV)T*l!B)*2uR 1*!*eNvw_umz<~w6oyYMY7x\;S҈wkH E훤}$z'L<cC#pDE ?.\[6{v'} J$)5{0*` 9P4okӍԂx[YH 2Op1{f]pR-bdRh_FT顷\VyI`d[ف8hV^XXDW*VtM;4֥2 'ӜGIp}Mz~`rG,Ο2S[ pi{n\}S>dl02bH:hqT}s|T,=J5KJf51{=e%㧠0IKۏ̹ӘGk4<ݾImirvq/Z \B`r @Wݙjg1Uj~vWx9k9qN=a#>@ _ @Zl R`8b(TKueSͶ_; 0*sbt5fP&5uKA }fÊ99]a1k m)@2waL8ڏP/rk ֫@2H٫XZ9nWsD.{-6Gy ZSbh/,BMGg4xAD@u2+mlj@+g6Ƿ(hä$mRz;&RnE/ѶozZNnKLjl [^[-x ,_?:K^fMXӍ0+NzXm xwHfdK!c:%X,lKV7E;_4K&UpmizZ(^YaHPvn|KPi;e욁S ]05icb!J߫cׅ .S< Юq/*XulH3I{an5,:l=#S`)6?'nw-{vy߇^J.l\vnBOhUڥo(Fuߝ 3%?Clvhp&i* $]+cS0oXEha6BGs@FÙH ʬ _edFd7L+}GC8Dx/ d H"Q+M2(؊$*s 20ݲ\&qrفwp5}. H%ZY0!-T | xSQ >gR;+YH犵a%i35e &M?Fq'"I"}5%* ~ȉ ܗR(dUܹk/OfW=^4M>=RX6+ܩ%Q_WhĢ#[UCeTk35n#X W2+:RVx2a8IN5}t_Oc \2߄6 oWWQ8ֺ.`k s[;Aof?|E. ,Sˬs؃sAlSH$n?OCJץFiϓM6ydUާ)٬פQ&'"ٳ(Hr0|c"eH~(l納5K_,(&  HƲ $\$۱"nisOnGIpL5}@L4\ه /ujə0hN;짩fD#">p)CPR57gFrRiw+?2ʊsEJo؀\BGR{z.@L ^9/aS=S8[UMr{RP ־7(9$vgeU`E|-e*J̠z}rZWc+Z L5";^"MZcRE^c%Lny#,i~h.귔hh@hGoՕ2t$hb6tU8vWx=Q_r'|S ۠M; Fu76H-SE{1%mVPז`ڧ d,^yзtW'~|i:, Kj΍4Лoy%OV`UuE[UȖ36xTzB#-`xfyj=oQr2Ħn0/̀Qz7{ DH#Gtr鋲S:!0-?v*<0CZKܕW6ݬݷ,w7O:#u퓖!ɒ|ec424}ܬ55f3Qz}BfVf8n9fĎ1f0I0IYQz=bU`%ffz`T8?IxΊ=F`3J>nLw'QM-v}9Iumm_#rG%8?XE0JxhɌ5yWtHG] +t_[fp22Yb"R bAKM_,M0])N4G$T+O,]huiY[iO/(eAY5i'=%O3ϡG&w:)uV.ǬI%DЃ[f'6gm;W .j/WwS2% ڿXS|=o$PyqlaH:yg/3VXD z:ZAA$D9pv^|;#Å0LH/Δ d^g "x +䠉:\9ZequKx_ZfU1BJ9o{Ͷ\Ц( IDU #lC\Rτ|`f;e{:FG?u3tăKϣŒR2 !01gɷu[|sjqb&bw,KoČ\qWwnF&&V.j#5e,5Er7k*YAHH:_xka=POS2/]Bm~O)*hsg{ኦ2rR~dd^k¹-sQY.PSIv:PdYZbo SwK79\zh?fQrc=^E5b;XSW)E:_%;):NepSODm(G 1X<]/@#X𚏶4:N ?k̚VL쐣ht$(=W Zȧi %Mɴ<E]l9OrD o}^~F|V+J=m_I X^豯8|۠[F `#- bdUϕy!|D ΋\?OK%?0#72jy2a֔b!fZ.7na3-ѲT U?ԛJ#oߤTJn+/i|'@:"XHK2嫬\3%rGeFHe%v~Ѱ_05ɜO/!g)RB:y1)iry|F8.y'3SΌ+dh qx=&<w !mxEn#՚R춍5kJ-}9ocsr$H?Mq-J(S7}̤kͅ jq}j3? .jR]Z):J]%_|h٪a0E_Wc$v"4Cz|ݛhI\K_ϼH"#._/wjPH\n=BttdJe/^@Ƥ4RKF_ZEoa@7 A8Vj)i&orN@zqC 3 '=Ds^/֭CwX8t;z'{^7dh$Vf]Qk{{%yU꓈.~y]?׀U0t3]zM[f` xd=r;]8%j7c;*&7i)Xaly v u2TQƈjrO+[|Ÿk81eIsge Pȫ1-^h~j?i/Wqɹt|:<\0mKl߬S,Ju4ZS>j!YD,;A/ -x~]'Eb:T>-MQw 㦸՟* d/2WID:N_~#YsO av>Tƶ?YPdNZӕ <ħ-!AdTL3Ǽiud]&Pk27 [938nټM?/d_0R֑ 0Ԇ'sYe ^Ǥ~ˁ4TE];И]@L!xlƈGtB87}S(!̚yWO#5+_gc"\q2+ E$slipMO=~7ƕU G.~A>ל{g؜5Ôx +x ;myJZ$lÉr,!8}'2SwX(&Z_ZSw7ѪKaU_lg FePO|sr9)|MK2Ft gE<_9WTR^nWO<@ /̋2􄪬?L 5=PZC J:{aJͿѦ :iL!qyu=uĄ}݄Ȫ )Ϗg18WBupoV;nB0oMٜ-'MH]3W(ec i9ADB{뫿3K=DMf#@#nYzP*gO/[bO4l!BBϩw} 2 p`?M%3fԟIV׿C/2^Ѷņ 8sr8[ ~hm^ͩ# 8gx[Y"6UJXf4O#D6ur?*%YgKL0*tɫ)jd1f+*S{Ϫ𯔕>TG[z$'a'r0*&#'|ů'1$$%TeYStj"/6IqoZ=!U} L/iUGWKַFRnJ&6cɧԧ57NQˆב{5ێE>2 I#T+4Gw?ӊ3|q[Dl :@>T<蠦76ÔJFk풩:CBcMRV83N&E;&\{O΢ц|b{|J7_A|N,kG$;팢 9i6c*ÃZuRTZXc,#\dD F39څO\F}7a3}T4#Av`iWNc{/j勫?W >ASiUήVIq .s]x; sڟ-t[&8ʌ/ovR`_f/V(0 >eш]בVśma /.\v֊Ф0.UdESkFt:LhPǤ?tQUXσ,Z,TBݹ?ESG#q_"ySmlg>KwXh5zb%f~ٚiD>#-+a5EuE4w4di Zϧ Zs>5W(h\tgaP<|,#'c[ޕT`O{$zY{(DEG17uXAdȦpzC{mc1ihA~tXm-9:{ @HΧ{Xn87q*\k8k dl )Bڍ@KF_2iLnCv $ KP⿜.@tB91:!RCiKZV1d/}wVJ,㽄?.z#0*Al?*֯ld7B6H*" 2y8=*#7. -3m8q?,jgåXsM$hCbLULD1Pie\Dǝ}XКiH.9|DVgI4抱o(k.!˖̀N̒U/8]3aDa .LSlc͏v߱K DrDk+Q$ǭ|vYA^CqćK~NOx1SM{;,#2{ ~s=W7ȁp QkBr0Bp>YmRD qk-T C9svP oq4I5S{&e\pI3xܻ6L5&F՞*5%oG.*%^G𲓽8c+Dc$%gb)(5M%@hVlXE9G~SMʉozw;g+ 짿'7=膾S$`B(+wk `LZTͥ|2!7jU~=e~ ]#rR7N8>ޯw9k̕ٯ3eNq@,V sx 3$ ĄԤ?,Npd?DMx tH{ÏC>BwS˩DE 4Q?]jx-OXs툎EV %,4Aµޕ$cXW #_2թ;5K]⺒rZ(֩oy!i N̊%~ ƫ#l" 1Iyˤ9|?q4@PK=xrL:b\w!x|Pȣ$}-o'* baý*j"ǎ[,fDQKkZG /3?)rd4Q տid*M!J2ߌ; \,|-|~nwܷ-0L O_lq&V\:G1 M0 ߰8-ӉY$yNwlS'T^0 NT`Id%Ty?9[4D V&Nr)_cݮ>i/Q= M7g;ol2YY1$\ Ƨe3K}֛Do_-j[?y*p3u@˾IoW4Sǔ"[Td##=.`6Xnk]M\nXhdP%S4sA;2e;{_;`Ɔ' ר-[ᵍR$6ꀇ8t6swhr{0I)lbń::B1w>[+-@3a @U21ҕf6d̯N!%*QybB@0pk[ Z'Wov.k_mߨ$W2\Wtz{iИК mfTO399ɦ_w uЉ,VJ@EDse'XPL`kI+9B cRmt" hy?>''=Ͱ>)UCE/I(~'+5؁{؃Ӷto5}>vy36HD u5kFS~Dnz<.IC?_y j`"f4ZpPcXLd0O;Y׳Q@8GP3PzD!!!bj45׆{-!H5 ˨W=eNsOX P>lYN ݮAi =)=JtLoI$2nd~ڱYfy1e4NS^m/(OT0n2KPcy3je;`u ߃qcsWĢ+ {N;ZHKh6~d!D{s DQ|~c[<٤ <=䣂λLwd2? W%|KT|*W[CY_N aƱz%qS7NC[Bup?"4=7@)@ n`Qf#kM392X@"!^KhRKuz"K ;[$ynX&%92 $/K=4L%í٧S֥Q_),_ cOۣ V~ n'ǎ۰,Fxʈ6 2=z-ؓvO?Hd=K8EXA*\;cu'ŠBk̏_I.:aZ wOvfd)Ԃt(R:5IC8朑*OcIϽ̐ٺz ?]z h*=o1U*sdrq%ທU8Qb q)SN-i4 >+E{VPzٵCצFlG&4=U-IH^hjSdRa:G< C 62fK& }g_F=J#z7y:@mQ "Cr|;R`t6ͻBEs6@3=ƈ^RkXST&P7%,w,2mh%~TÝu*5m3u|k?B&t7Iw)\uvn)&7%2t~K2BƑyKg=i5aˋ*$Unxm$qQ'wromh}nY~ &w3;'vEOYO|Z}U@DS:mv[YŦadsA;OsMse޹{bpAŹB,LH!gt0jƽOn, .)QjiwYC"r~ˇD "a aNB$,wL q$U݋'jd܃T'b2*I\.>[L 93(W3[9@]2 ? ^|HPZCT/&sS%TLo_G;⷇/uQ:wX('f}W/^J1v\d>Ӕor UH]Vx!"vLİ!MT,O84c$Bܤ)GSt2|\طO$IE0K_@کVlRzVs{ {=2uRy-4#T=7>r%uxj(Ɛp^@}l BoQ-5w`{23^15:A; SҔiWIq)* O64 jt.ۢ^ڭvG֙v y PAֲ!o_&$V$4QcG].=Xm J8$!wIAz>e)9:ZZ;aHYL#,֖TX]a2ضMTNʺ`~&_ hƱ PO/@:5pe敬fS.9=?{@CC pd}e[M #pMb+{v볺qVdTm6ܦt^UW352~$Z7s8+>1ȾPLZ-%0XB. e.%ִh7su2b-K~z'uNMȸ lxDLPsV"W`#E҂hЩU )m)5|}Cig +8N,lGjήNelvSaE?Xh!>D^@m&ؤp%+ :[2~f"t}>P/./RFյ׬kq rO3n'+JvyqmkXOog] ī iE;"@_b#F̤-^ŵG֘5oN}"k3''-?!Y~%Kޱaͺ~[^qٯ9`5NXW'hůϮ{ȹ5zH+qiUBn'B?Ȩ֧֞E/Ęvu$PҨ {Yt=LH?@IAYldkFgf>]K3R%=5; 3+RH1mgAN*0G#ΰJz`AMdUoYcrD7cM;Imk <`N,ᶖ>| _Az?zL [mdzw!ߒ$ A# cgFh0h}AlvlcnNj7 )>). +qL]=n/滮 :SB{ *\I"0)%]~}vW3݇Jh$K4^2a{UKϤmP<`_?la > "YZ7xg3+xzΖ>!>3ʂMED^kg\fR1nnN]ZZf >DZ@M:'q3GAl<,HԛMaK?\šR&_Gw ejҒ%!nKFjQx`4CΑyϓ;/Y#,@vIʴ<.۵[O5^<etQv0lH{k_Q]+H`7ҥW)ԁd-}] \XƖ%esymPs쌚匄N@j;D!40…P8kFVq9q2ٵKBtb[7A.{vBD*[GxWMiQJWc. lNN/_0FqCXE7Wk@#'ye U \OhD2FiyT*WyhM8Xm`}X`A<6Zךg҇{L{P_PSS>3Y% ѳ.\Ƅ /*W&Ң x Ottsnk`;Tu1)CLt~rcc#xx sw `Lk=BZ5$˜uyi5HG!pGm*liHPwڷMeᠼuT|7u-CQ] h 1ΌBAUI[kЌ*7WDiYhC{RDsQYUT<]$$\mBly[ 1|G f)ܙӗ8u:%<[HmF A}bQ[|uO !~Պ V7"c%nAnl`lh<F7"Ylp`qs&<$Lw?֏P_Ux5 z~x.m&P=[[#nvAW\i˜W_Z䏱ʭ%0Q⾨]s,ˠ1uk۷555߾)\v6:3M} ؈J?k}?^qN|4ѷ~mҐ-n7gZ :ZhlZ;}!QO:C~V>e>=gh !hj]ء|򱳡ǜ9X훬ICt̴aqq0!y‘"ZC{_S %PZc<ں. |uAV| xmdGW XUZ[-|[|rtdStmDՂiWj3撽#M\c* TXg󳫴5ho>k[=o\+Svc 94 :<{aP'vHP9հԵ'ϗ֒>4F:]năW "GGt ߹x tg DS+&g͓ lm;b 8f- %* ESR iUU H~(%hA"#TUIOm=~QkF=r;0j]ßӉzz/5gd) zfQœ>!ݕK bn1%ε]& >F&g&I[ى2~pK pYpT@]SFp)"9_rc_%|$LyDeA-kL]Grn4AR%y]0[uT l'n.B!{iH&Ox/VXl** 2e<+MdY'zLB;l=ֻ˦ͱKcHHQR%)=="/< Is!sY|ek&%}gBaU.]Tkݻq߇<*9M HA-<sAZn}U٫.Jtwa~ي ?y7 ySxF {D(SE0 OxU#a~Gau;vlpZO)DSHE|g a[jS~0;Ku ZzĨ~͚QbMљatRӆj&*mbMLkY0AWk#3 GyHo" "BAq޻gV \c[7|@9TllW)Y11]uʹRM73{o%(V˜)Nb3D=x)?jwk]_^FM\瘾%GLGa ѕԪkMX[ EE(/d>[[#]; w q@222% #v5N0#;3qoy} ;ZEUhؕ2uUڞ8I,2@ g&‹bâG= g|pca͢P/.iy~{-~u ?뜃*UoR8R̄ qZ}&EFE$Z_n0]looXHݤ!fM7$!. VPXhH.={`4dBy=1Hyxmms?ܥ_QݤLh ( _VVTh+/n|xD87)㺗}* 9etyۙwgOat' gԊ,נVZ)Di1t$:+pw&QPDx ;4%.BTU\H9_jm˶r ]j7XU>_X DڸU}? co (" e`ӂq}r>)t@K 4uzߥd ?;e@8( don2SN"P!91=tW\+zqG0E|~v2zABOڛY_NNmTSM]iЧ(I/ܡaWB|4!~S/=GƠ-vO[w߮dmnp: [[qF=_7*N;_Χ[^:|-F&V/!j|oQa2ɂσ8S G^2L?j٥ /a)h%[Vdl̏ꃨ]W%z,[$%˭1DB5 99w! `*f(xx\>l.~qȑ7 ͹D$DP5qtI mm)٧}xx%שV؁05.m2*sۼm͘$ヌ>:VҤS'fBne~ ༐ $ w"y+bH^)V۾cʶ#!]R-twvـdz&1|aRexiAr7{A4;|n;tJM4x>K+MHY]{ݾQ^i {-Uw5~_OFL-6׸^u@9U$l&;!v5y{#m'3G$%Dedp6Ph6SN95 g3xIK>C4Kd@6Ί$χrFrYbCOy:7,+/>F;b:# +٠ ➊WJw]ѧK(g}*QEL-R]<ȝ3?_|nt@~Da71ź3^tʋ, 諞kshNՉ9oLq׊EmmoNUNFUC`Ժ:->I A,\{5%ңfq V}0.:'c2so4o/y~L/F@UoCmD{(NcŽOؐ匁 )uuUJpK?`0P{充䁛zC2#l+5gB8ۗh5L~NI{X(Qd f歋eõnd/AH[oޞJ֤Dj1џtQ;j˭VH HS{'_9to-l֍&Lv 5rA?E=BUtQiu_݁=֝10G,"{ˀI:e'::ͽ5ҞB| @IVeV\d‘"jD:*n NAJSzt͚QNMIA NquYbе.o313 b> F}~{ȩS۞'l8iV,g矅EUc >yd'(=plA7 {G̮ܳѸs-1=;ޒO" Z)$ Mc#]bf@ 8~Ǯg8j-!{M};,,|yPy;f853..F!iI䣺E9AهZ1:m$Ws0{,|/y, ?ј3b> 0O ňƶ͹/)!w$N=:﮽H9=> -2zkdl1M0^ ['$d_"-bל].Vr&P;}oGmQ4D`yy4=O3´ O2)={'T(D|әrL{&&pӉ]ؿy„2Zpzv6uC_E%؞=g_ek޷GK#Es,jmJJJSAqQMe!Fګ$c[Xh!&oo$Osd_ tr rB쬚h#y$B$ldescJա"#j44NL| C4%>%-}: 2O驰{+*''O9 M@]N*X*9֪C!x%wcy=\|n%Hj1*a=x<˅:>,vW`yύ#HJ=UXφMհ-.1yĆ,==V7PQU=W5 d'&veLAVEBI1$E#1&ӽ*-@ WVVx ύ$ !AH0dڶk$" 605U|׷1"Ј-#}E@˽RRNK؆c9 c lR#B.lүm=ʚ;0v1;A$#W,{G*[gU@/ # FqXB>aE &fܾ> %HZ ̩\S -zˌuXIzqGݻ&w6YԅгDr9į&]<̤e}~+ρ!mƬcۿ4G:L/ }m-F;O{߃QL%~9q,Ё*%w񱝇 ۗO!CLBf@/@+KYݗ~~ ٧coS00)> o5j(!S]V#P 4X7)|PeN1T3{̌0_+W##1 v2*]`˘ɰ<ac TI}n#gDYnŬ9SkfFBwۻ>0;ʙs>fċSP]Яf!pxVu)Y?X:{ z? L;s'94 [=y~%()w!=]ۜ-LafՃ :8 sT ˋy.A[TJ YB/ٖl@\LAOOy{F<]p^h ]s -3Zva’er3'g'iɜЂ^kBj,#Bǻ$\/D5l/\F/*B z!a鴶Go_o=L3i)_۱zD5PFP!-\| *xAH*?0CR_#mybx)b- ơ6XTM?G"7 |D JAJ.; X ^Tػw/Z$xrU6a2?vg_}84wO wݒy̩PTc!"![6 G۩.q8)rkgCa@׊!uNlM R <8YKUg:Q rRS[oRlKL/8V/D97Ma'Un}QeWF $7A.9`e,[R"w6; ڿ;eM~['AXfV=C#vjAr$$솰,fev9(Y-E-jxNKl: WĐTR!.| Hm)b7&rp?qrҴ&='M[ㅐ]kCAݤI+a9'2!*ڥȲJ4fS& G SUxJN@@ %l* r8qe FbS[Z6YۤK1{Z%GP0N6.b[9E`؃4gph}>{t_;;Cn-1tDRXuP>dt4}㭶LjAQm"L1"B8z@! C/s9rul"47r0Kޠ0·{%#mIkHdpwWHb{}#9~~9m%SL"+]Bdz D$P)Q-KlwO,C]+ D93E]o9)7P 1AC3Ɵ5dgJܧy|ATˈ6>&^%VWWPԗԟ?Vq];^Go1h@&LM9Cq(C}싗 n 117_}u,Z81Ev`e5AEa8fe 9u^m  T+H)";9Ҵ,X-ΡL5N3Z"a$`,(?S<}ƵlC*a3{^c`}\&` U'ˈ=);Xwk+ψyzpouvM_Hŕ?9,qQ(1#|,”v9?O\ KQA{+TjI]heUL cTTs '=^IٿG%أAi(,GES8E@?[R!*ʝg]`Ze AJ5?y5hR|l~"Q(>HG{캵-K~{Ky[z&Lu*3/}bkofB^W8jʱ&sYzdOyctΝj}ъ_^#v{ ?wzZܖf53:t8/8*yJhwƃljR ŷB?B }a; S(1`U-1J`L5 )0Ֆ:d7RB )e|xT /@nv>1hк9GWZ29?V׳!luP<q)c~wl_B)S!,1P⃧ :dEWXqû␧x,eb,:mG7k0x7wG]%WG+m ?quv=F@v 3 ceDc'{^c^#"SCLr[xRG}*,v*F]Ge4.{|kOep5^J4= " T"_ܯDGَ3fH. N^74 &Ƞ"E??[5P @1WU/NJ39r2מi?q4$!-Zӑ:ZW.j&Y!UiY!uձnx |I{?'JWfcwJ?'7Gu̚258ɖF)asqBA:T8^߳5[r/Oh' ] &ޔw63 ȠKNwH몐A å.'/׍i_D 'ȵ!r.]/RBm)BoWn>}*$!9l^|(m}WBP3_:vI:x49424H6)ihR9M|S!IƘgmEl=&fv c/}z^KSc2s‘^L|QX<cMM4i݌QSUm꫇Eϯڥ~L,V`նty߾? *wwOIs&PSa8Np9mڥefGH|pmt{u7fMЧ%ڟuV|zcS6?<~xM%/CvFXl_jCQ,iC'&Od^N3ϣJKB>KL:-KÇG 9TُD[%jÑԡŐ||u$i.xyF&&Ժr,,i{,5J3/T,^ӆUI_wR &{B fAIۿ2UTvZHemI1J $ieD# fF.|UTwG33xK:u ũky)*v9NZK4Yh G7=9ߞ 'Y72p(C(]ǏwZDW1N&r JOLpy'mƬPiD=4hjoJ "o;+_'ECB&)\zN{P?#g qgdbBCϞeOQLnZb 71OjD wU|{rPY f_jWsv3.+m`Q#k3zS;q =`#7>G fTT|Eu=7dl!Qly뺚4C~朳4u7v 梅w(C|<=t M^}6׫K:VXi3C{:+x?U!\]MmÌECg JvmcȓB& _ȵăX?X V,Zʙn"'!Vgmb701.`K%O4!mb H[CNq\8p QF.\|rq JgB۩d_wƇr>63t&idc$PJ\b6\u,쨦e-Jy q"9o33#҆x7[Ѯ!f@6ШxZZd7{ixGI: )O#(F BU7G?KfÔQ%˟fsO=#MdBI(]۩|ȩfiA]7p/ՊE9}͹鏞=o(F}۸@YHza"q[SQm8^1_MAnip\iה.?A/q،~JeA}HC:>'C{o؊vqu8mH(ĚwoP#7r=J/rcEf*&8 vyMBQ$HBBXt!MF7[a#IeY~ +M+CAk[?uҡG" E&}ZC-;R\ w"u޴ߍ;ǯL=цF *.$ivEIIKiOM M,E>CnѣrGR_55,&6phUU(]DfF1S\]KY?RRefAa|,Kx+_zou q;^CW9:xBĝ949o`w݀ڧH5\`umZώFc! Ryy?0ē1 [jUBDhf;(wЙd$$hq>eP)1j@_͡L6V X՜-c#Ƶ4ȃƘc$«1&۷c&d8u甄:@XQ;273ͅNrhW?l7V 'Q^dpKsVpe|Sv* ;I6J^V`Ge]: A7ÄI,cN߱,"њQR!d?u&C)4yέ/-R1\[d17vyN`cPQRUL@]_;39~*5-≫tC0:>^*?%3΃8VxL”z8cztx^z'8ǗJҬ!(3d#PяG[λJ)WD=GH`'YƜb/PH3K&&舺K`12&:0Pay'Ƙd'9fZ BI}s{Sg-U*!9*l,7E{~ WeBf!!0be~EVe٩aNXƺ'B7\FSNdXDČTx ]j}PwAn\mC+w+pEΊK}j& D #-vޚ4\oGF/w^ξ|Fg_i+/~+tiU㎽~ߔ w1HGGkz}Z2>] q@q+w+L1LeQw=OA|9Fܘ7'ba!5Iuٽ{V-p N@_{?c=bBiF(1PedcҳuJQj$u yM7Z "Ue1&)S4QR Ma,# +6X4%&,Ԙ;&":# de ӳQSQXe_xY<QTIH !9a+(UxŹvz=޻!|ˤNeݻPoޔH 1U@QNT)djQ 3&Lݱ/{Xٖ<2",9ry иz?`~nhwSەu goMjD*>!DwJ|؅7&u+mjJSUUs)`yI*RwW~}.$Rq%Eg{,!9a--Q&[P! r ;r={A KJ)PknNN =BVk%P TB6ɿ>%XWZbT6 0_â{f_PQ;NIWU% <| ;w{ǸcI+UH -\:1DQWp)JPNY-:RFƑŰP?+)k1h6r,T ̹K&v12 э>xz O7[Jɰ}Ԉ6_J`gi" **u&U^qmc~5'쿌|{*S]Kn5P6JMͥ.<`dX֙m> G9y4pYJr֎I&L-`@+htrS Zi)Δ[ R5BC>Isb;]ʦ2Rm;}mgeonleϵ_#3{>iI旓NȝW׫pRm^'ר x"|wM6^Rqr`nt!Z5۾([!`mJ{kJ` |JckGHV8Z7x z힂9cIHNiA rr)JfT|,>D?ABRCԯ{A=J۪1$ij䏧e3'6t矡&NX{ekUb\O#19b-՞KW˭{;;_>fW߾]Rd51N]2?)f^'-tXZHb0ǻ= Xm$ve5|unvX1ҒYG06yDU ?qh򨌃֣$r6l26k!.6e-F]ڨ$CzWSD@30Dݞk&"5T@+H~VJy5hx0{Ynb 蹅\i۔$'Y5?4m1bgwWC P.t,_٘/_BM_?u DC2Vm(| ۝œhIm_g@[BPnSCX-tO'|fܦ|t?$4?(uϊ|1 ~jˋ=k c" r|yjx%R7ﯷE/p:@O8d2ַ VSetz!"*շyx oXJGۂբa<ق/r)J(qvI89i{k}|c~ۓ|޿Kbutn~4WbyU&ebPd{ o}%uLŘ}PUWҕ>OV9n_*+ dyfwu}gSK=2"V5Iy4xpyAu1Ult~cV 1X1Z =m᝷*hY-m &3v^eHo?ڋs|9lA;Y5Fw_NCO9 fJh\ <\pMIPKG1DndGSI"nuvola/128x128/apps/help_index.pngUT BeAPQux wXR(90͑Y(SK۶2p)w˒!f̅?_s]p.^y<ܯ^ rkPkuOE>s]B:Vw(v"ԴZ};.2)9$! DžFl;+"$'͝'k\3L`@-aT`vH۞jY$ xwpk7(h[H^:~i@Š# ,)6̎+ hGZM/Еk=X\$1"aSx <2ooaAdQ=ZYizgƅ&WV@4R*ZzRKUp^xytLuBOy,ڂP#'69n9AA-drz< CTD,o*1bPt05a()Jc+.5,x T\ȝXkKh:.'Oxӑ' Y|eUW>Zg7 MHb**SL3nCb'xk=]C,wu+*,if{?WqptTXy)%J_O9Hɑ*ھ~NP҂trKKP?TDutjڥKe,-xzt>9[~Pۀ^9ű< E? 3گ[;fLM%rY{p6@kKk u?֔cS5eӰ~dΆ٢B_PJw ty{V"2{.RPOa5NlGNrssQ.|=T&[%F(lx߽)\ע1 8t;)OEUYq6 ĝWh=)w.Ef R*@iF_9H=-G0JHW8FJ1_ x9yEGw8䫣>ˊBlwrRƲTڀ㠛/JԶ]/_͹ӂRH&TпǂBoO2i>B i>AB.dzBad3 783uj2yUC2@unMOebp_hNK w0oYU (Ė#P /CN=Ѧksd`0\+6hixc yʯOC8v\Y[ĺTWjgKԱEYtҥ~pU ~ Qӌf 'CH5^H:iŅHv^= P2m*1)6׻VM~X=b׵&vfQ%5b6Lrρq̛[>mhhYxaLLyǒ8N4q˅XDSp/}Zbq5T18d K[JYɩ38UKm"=r YB]2MM9/3Q"@(Rkw7`HmqP)Ef֒Eԭ.<\B`I`k)0=GV }Xx=MټdPI܄d`A& u y ȂL ϖMԂ$eJXby:Ζד8f+Y~'\yM`7jt[L6H\H:?)PȊ]Ynsy?t##WMEvYh!yRdBGl"𝫘gUB.ZKaoT:[?&3CHS)-T?b?FGwZ`{dD 3&LUA+($!D6vhi v6Fl E9:]Pq37#j TgoG7m }y&oMOYm.C)! \>ڑGc:n=݈Ȋu-;acPIMOj7<|O괸=%K?t^4SĄf0Mpt!&*)N 1N5PpLeppsN* cQYAs!Q#1ʹ6w59_kbe2P5=zMh.q4]|`+7r:_?DdMo-ONInDruuaC*iE=pt*1ă1{~ H~6-\"hU)*6P}ߗk^VK1C== ž RτanI2eV)֦Uk!Kd[ I[Hh{ .Xf "!nR.$@t˷ڍ96`OpvVؤ|/rɳTąس")SF{bCVr*>ެS}XYw7(Yk'w~ugEW=M<ܨ:y"!~Eaa{\"O黼0DK =QZhҝ17A0~5"5sf{ΌCHz1r7}{ 8ttmons?6d>r ^Nz㩂ۛ-{|o< v~f}bKC_Mcy~'SJ5nPnS?s)./s76Mܳ+Rf$%Z~Lٜ 4AGUD5yfĕ"2 $aޔElix¿/G=;Iݽ~0߄*omsJwhՈR,Nx;-/*`β 👡A!b=f̖yX;M3 (DQз:b83!vV+L44&Q#< Xt,z 6:yR$<] ٞBK+f܂,ԢUˈ~#}Qg#ƀMb RAHB ߳ƹjS&)NṳzYVVi/{gd^n(}I|Զv`O_<+80p8!vОfpm<l&`JH6PPPA NbiNRDYz^vx,2ז8WF^Ppg"y?)`vGҽdx_`^p`}WSeߦtu{_ 7^Yêʆ@kXrR .'h΁ * X' U=.)U CmpkxEt i_\ 0f5ۡ?bb(i 9&R`cͿyf0 ͔&Xi~{l{7; hc[dGIVQhFnL)P(4(Yir{ü HWB( .ˏ_F(?*a&\։)큌Mfa<9*ބ>Xkƻu'݆/A37a^ &7A55Fj}`9(T'8 mj\R CݐL<Ҳґ{Ki2K]IMM,t¡+e*#)&Pۓ-g]_\iVf)Rܰd *L MZâ^2opn7uV]sb[t9YPzNsx>3;EI)RH)J՚q>He'.+ѕ?S1474C3F~Syuv熪ԟ΍$XRoe.Cy[ ˳u6Cps,uyv-/S8Hk;BV5.(I#pcΉPUad-%7e n.Sz? zVcmJO)*j`gċ&c \6 ]٣ xďklן2F"sRPCI gĚoС_ש(qί%w[oڶ8tc$m׶o^wۿ2T݉$0 ~zRZ-5wM!j\scZ܇K[k鵗!:Th Qy%[sWV.;4]r5'<{c.[sW%(\ RTxֺE֮-IDP# NdC,Yv0d*cwbx˅ C Au3Ã)pG_{䀪E_NhAq-u򂬩W/,ƜdB8b(q}Q|m 0m/ bVF2R$Fس<_ot{!rOVQ:%ݓ#E!fx˘l@6/_+8V|Gs{M][J p1/o)X @N !7ͫrjGVP0=3QI8͛`F2;LMP*]sWKbmP-HSF|iϏ]LUUg4a0i{TK]9=J7ʜqϯF niE!e&d.tCa3PeMaa;"==}y(ZKQ!lC5]3JI/Ny8 {Or|w1G γ)bZ'ZU .mǺCǫlS6`m('4":juΤjT*D]˵a՘iAK:5XTE ~A+5[րj^-1UZ7eV;ǣݐ|X-",Y! tQ99А?m`Vf \%4O֖ 41栅 z gt]]8wjYE8L,f?;#68ӻcm,Ttުu^g=V"ƵtPe}ݎ}c K% mVWx=ѡ&hNESeKԄ |aea 4uGRDf'1Pmlg{͍ٶ Vm-|7|؂U_3[ fi˻(RtY7'vefﷂʗ3˕Hܨ'}YfLkV8ň^9<َّ2 K䰴26I5`"0T9Mmyb/\vksſ92?=F5A)͜'gUctLԈ5kq pD:6 ?nY*ff[8M^( hD 35e=KFw^iP_`fP(2ͩZ#P߳Ϥ4?)_vD]7;S7ƒؓ'IP^.,ue unS6L3<"mLJi; '}ژ 8GWsAZ/b*(mx"t@r\o%cVJZRs"k ۇ!:7cc s/׬R8ߕML*( +X7E )^&R+%{[Z)Sl4;8 )*$1)=! 3˧@7x Qqw",ԝ:>U@bc&~b=3ҖidBg`edP@%6q}I,9j?@ՓDWXՁ ^EfaUcTLǛ$ڋ@._Y8۫~Ν!11A]mbЈ hM1l3,*)/NZFMFQM}vjl)L0$\W#-#|{Mpº P5uЭk0D~*j F;ЪKӃɅ ]6C"lcL ;3AVpqr9 [LhUMfcg=&ޞfS-EUgu)"pb]v J E 1O|h#̉;B6rcF|p=`pMXML07ntCRK+@^W mжfbI<+V6=WY$QOmG)t0,|ǟMۈn 4[RPZ\0yy9ftX8Ř}Z$۸Κ)]4 '6Y5H(!vg_s@':Qހx~F9C%?wgA|W6Zi&H]:cX\k"B*~y&DM"JZ657׷5z gd:6{.WQ?Úx0 6,BUlsdX5[)sVb{BMP*BS?u6_^xx!Νc8kpϥŻܡJ6F 3uf]x26;!]u OG{ؔr]tձ2c}黝p`TdhvɆKjل; fOJwM#bH . HF#+bcw l^՝}eDٕ76]`eCHu䛷(0=#Pp ~"&#OZ i·vs6~Hz:2eWX֊w !$w1'<7¼β&6'^H!wÖ =axȱl*+:([PRdTK84=~g1z^t|^j*Z;gV[zܦ߄4cP4S@km@"5;_pViIͪH/1wDӒ1?sbY)k▛J&y:o"Zב|,ɰbsfAv{[bC\d_̨"B+ QsU4#9Xȼ)Dkff %a%"6x\ -QG+!Q!L[\ 7 zD5\Ư:ԗgy Ns,R&7eUKk!@x{}n;PcGd7_]GW wh^LdI&qT5O(Hx? |_N aj:vsK==/^cf?mJBW pyaɈ*4U[ I{a̶(zSi2u^0:/aNNQQ3?Qu e.uϬRjgO1ZCq{ 4'|o aIcW˺n 1jcFDZAjRwr>?)!A cp-fA;c\:ښ̐r^t\{E$/^yN(ѣSzܺQgsQxx豖e$ f].T=7Bn嶴fҴ|kvh)gka~rkc̈́g&Y+|.?sߩ),%~X(iYkƵ"{iHg-qr0˹}8OQcHw+F]^I 6vC0.K͜N&>_'O9Mq?S=*!:-޳WKSWnc+sX}^Fօ(dn4{q>dQxSЅht'qDJ0c#|k3P;qt"#ӆk#C9 1A ekXvu{˝~hǙaqJ7l`@w hgN?oXy;>f*ױ ;3V!2K-LD96y9): !=K2 ?haf/`/ Vؚiǥe k6&^J'4J-IEl)4Ozʶ\ Y6-+ݾ?GU|xfW1d 3%A W^ )R(T^nSOl5fD<mR3sŒy(@Z`{8'&n3Iֳ"RЬdkw?k m-b.]'|B%= wn&G)eFp퇏eI_&2\.\ )0[!R?Zў}x?$`γS0)dh>cwP"RVG/T9AVf]j(DR' Z90?EGD&4gEJ'D4t:GXAS]+lNJ-.dObp oxe#ÇJ,*lFaoH 6տ.֫[X4y&o^ xuQLi#62ل rU\Fs9MHaU{66݌eeZvU䤻o + >I}ŠrDalTp7} >ثp{F3:z Oydt\˴, hvI/!}`d!UXpŸ$:iϮzeeE6lWVMfg"rCh#/CCѮ6s[x#D x?vA +c'Az+صŊA]XIJv᪌aoڝ9! Vu`ZkSX)g4a%|%L4N[vM̊X u 1 ` nؽ?Uhsv)z}G"g6T7`Ræm;Mmqie۽h[묠go+Vy +PIc HZd .:~uA;՝|wKf@9F8Lr7on0y/c鸻̹QFk"b^onҍ#x¨ۈNx ~Wnt;n=f@W՜K~l]bb(+P7{B$xėSWQ>+>P_&@{\B;}aҋIZui-ߝ&Ѯk>%ow3&<=k]5-żE!=f|d&tBxf]Do# Atޓ zR>L?H"wda~j{Kl6ZNZpnvrbOeyOޱjNH./%lٲW?Sb}U3V7&)lD9&)Ȕ??A ;%JNP$$xrR{OAU@IiMoSbQVD҈M&vr L] 8x]d{gUjo9 xT7H/?˓]f/ +)Rjh{vkl;Gxphsի ^o($c UM4n{5mљxli|8N8ytd ʹ9K(olj"$QGOM#`a?״xtom!mֹB>>nxZCt0jӁegVVt8za.S{3ēbݲr ˫e$zK閟r|?  'P(c0)0'/gb:LcCJ ~mӾK"4s?DoA|W/"bKۖ¢ ï%nkTwjq*Ѱ~%sRXT%bwFdTW6ŭTپf%QQzʵP׊^&e8L{QB&;3IK©d҂ר@}ŒU?V/G(ČW/5]NTj9ge|oμNt0hzoQ,v 죓; :n(f_8byysՔ=Yy]>Lc{tȿ[ g׳9 (7"eyRQҖ 4<6&M%fn ;V% p|myZn>>i5F-Nd橪`g3`sIM/~BKї jB-/{W2:{dllbdʰc%mmS2p Ǎ/k;uO~B;Kݚrm:CcHf|@AA!E VOc^k&t8bi`Cx`@С7CVr})P--KjpgG1Sl4#Y$ >Ͽi_:|ݘ&-<.~oo1S pW OvZͽzk|DtAےQ6i8qlD,Uڤ77?";ON˦u~)i5]%2M{+4`'K/hNg!kmCN) G:Bt6T9qٲiGs}BC\b4E2{ ;@V9SM۰Gn ިf3 ?D$[ۯ?W*B~%_E\ ~ C;m$\a>-9_ $?%$XŃʚ-d}A>ܤעS0{1I狫ѱ•O>?G=uhɮ1$1[__gt @>F]ӫ')D{zR`OKݻNp.I޲Yk^נIÐt7t|j~M\4!u?hZ͓3) M#MLwj1+$[ZcM\.Bvom2`z*?S MX62YKm *N'n1ƧsVAAHͭ- ݴhMr\|Jo 71LFgrPWdG]~)j8}(4#k= Sh6Ԕ">V~/HV)/#81} v~?oˡCĔ6QL< NMJ5x7x:*ߟ7׆,6]l󳦿2oooGWTTm"QVKݩhV h8bu4`Sڮ|lf|Iu_HD)Jl9K̭H`%;`'k#aЁ`vx-V] 8Cu_bt\HR.I_Y666Hd@xqzk|maJOnޤ|ZZW1x# XS"a8yUEn{Jy3 qK 䴢w? xqT+oNi< gE7OUk7:-UWc25nBuy4b~0Mϗ+t#kc&&ВԍDYCe--em?~03&zy!Ŀ{kb E+ }a'1~㮮?\uuwDcWf̩^B]!T(q:}?xRcBRF#AB;$=gtF;^2%e9KrI*hpIEJ;2N:%mO)]$ԋv'kGI^$OLwS‘zJ@LWɚ[QG0)3.TC5>ҟ]a*4ocH:bgFTC $||rG_JJO *]H_$w SZPYx|6hvVÛҡˎU0ɒM}Ȩ aIة/XTce0NR0`xmϟAP4(e׹W:/)aS`n[cmQL:\Lv,^؎tD 5WVbT J77k׉fs OUO{7mS /G]*% ߧaXnaTMBwSׯ[A vVTibtI:ӳ^$ed" f,L~zQIS'7VlJQ|VZcVO`Rvh|}ٸ_CRW H^*`CMe(yF~Z#H_R㎬Eg!V1(<^jJm80ή?= yĭ԰_wnT֖7~ n5V~^ lvjp ;?_# yF2:m_W :2hF?N2kKMΩٜO4e)?\CC{ʘ٤Bypbb1f- <4Ɍ;a6xsbiKj6xx:q#pC 68qs*DϜO"FyņPCxeh&co_rEgm MCɐrƕBI=o / ׬D(Oz3Bx±oh3a?ܜpѼC`Od@m/7hO} O n8g1cP4֯MT=p.7Ĭ-"BC5 WmЕPKG1`L45nuvola/128x128/apps/hwinfo.pngUT >eAPQux {8~`Ɯmm̩$I6$h*R$lsJJޢJ"Tʆs(ö׵׽|xqCp⎸ĤУ{D\X$q푡'Guw& okRLz oH?)~⡐ v 8cP1x@vMR5[D_ں/%;"ŵS92Bn E* / ;JjB ,9 W'{J5+q<cC 5 L϶x#=IT&Zdï \ө}Q~{mObRbSѼs8]vb+5}th? u>4\KSP(PR'ĎF7YP &kgH_װ[)ie8 =;ϥɗe!5{p_[YTA+܋pHbl_U0J陾u-b.cD1bE˭a idqHI-Uu-y %_k7㎸yHv\k YXb[5vC-J27Zg /eWq"z1G1.ib/y^>T°F*u&&%X,:XA|ȅALTDi]tUG l,5Xbע;: u#J[j,>0c#20j~@‚GwCӽoL!K׬FoK44Tf$dV8m3~:mP3/[ gla*?Rϒl %@# $ z=3~=ŘỴܜok_7G?zH =jkwVux}|w٘΂Leθv,Z07C\=M^'؎JT%U%XXtkn +ڹjֲ2T$vT{r\Jx3.>By(44lz_+mBWN&v$</b7)]Sh'SvR0m1Xaʲ=/j~!=kXjݖnlu9|QC7&_S5*X9OُL~ &}j1=C<rXwv*-n 0b3m2yTv^=Kz:\KNq~{ؕNiNXJPsROg5[6Ts1 hزgsPyxл6Jy cSYJ;5eqc6V]8.s,Q8HEZbBS jsWcOÚIo,eFmb͵;ت6iWwrv05+ͩQvpP>6JM(JZފыKSzrvGV|4ֶL{ a~80Ye_V}ɽ_׎#FcÌ Ѥ@`Vx-7p`;ն?7^/ZO%Υc𸻔*rf{rU \8~_+ ]Y1(y{:]LvRwXJ!c/T7:&K"T =a7[0iUX-wG-@=iLX*ː\|bs^3kM{`-PoE6[!2?{EW& ?xfQA'0_\vLD;Cc jٚ:\n'K'Z˿p`;ZH$Bb ,hBX%;$OR.B\ :B*-L*xAԊol<+J] ``aEhj7Z (peYUAwGJvg`30h>c//;;^eś]!c o%p ݟɶzyBGr'9OQR8Gd~Xq+ؽ ر,>a vʑUa_cCz3Fa/Z{]8O-qH' Kۊ #foH{PVs_Lultie*R%9jZ-Q9,WCFvFRf91PypYƘ1}}TޡMm(.IREtA); =F9rۡ(\^~/JVyx7~a$#rc{Qv+qBmȵ%4NU2~`d gbcwʴkXkAM 1W;X9MRƐ+/b,]ـ̮m$gVWÓlcL\#UefYٷP';/?ŖI=(āܮ2oAk}ESbfgyC`✆#Jy\؟} _dh}h~Tʩ#Pc.aeOXA<_~c RbJ EP3U)N@[;MHI2k0?`WNBC.'N TdcQ FJΝ~@ZwG]YWQev 0͐.펓sQ&Rlw=l۰n yl̔ rVV|Bto+Z ` U %جtq9Xȳ_gIzZ9Z  x'NYT׭KnpW?XkU*!||'~0MoBGRe="$ ƪa,יD>%q3vP טd0426pᖧ!!zMEؚa>s4b]a M&SA/l'B`-bj OZ;k_d^9-Z9e59;!ִQMpc]'GB(K* *k} >8~cE/ tuwoQy=Tk>3֬وzȅ4((fҥb7AJVsRY|IԵHT0;=:_k:wxqk/F*6[{7ﳳ 2,|qa*v { lO SG fRγT4<E$>?F@g(U^.+pV|K:bĮ 1%G _n>w|6s+ sNNNFmNVnŵZSD-ITB2N(X MvW<2}W0̯V'kF/ Աv{c.n{qd!g,WJ)7AλU Oc6F$ظ׏⾙:`_*;cguVb5G|\gf~ f7/)fG5^Fb?GK<H`;B&s!xjUVLjp ,"V\"]θe[y\%=g!iS Cӯ2\.!',M%g.Cþ3L N噤%BMw}^0(腪S{f.{^Oų?sZ8 AaJ<:Ϩoq-q6N2Im PZ9[q1Gp|GĸPer/ijColT/VW s}}{ZAVQQH  me<0̹TrLt~J& YLŵSlb-Cf |Sx=LYAtj^tBYVg.V)Srb0qP\5a/_c3S>/ݬ@4P /`z~#+8,R^:E=)9Wj{VcO{p_<j^Voö%Er?iX fSS~&^]9Q)ﱔ` bbşf+I_SϏCC֭/;]Qȴ:#{ĄHk Giq*@"젵2oI^7pڢ Y(sX #h]#gz |A(<j{gpw]X Ue)4^3R˴tFI' >Z9*b夲;/=POaDv UbU#I*Io% b> h_2c"΀ P@'(tP`q m4}VÁD锺3d_xX2(9 8OH|`#-.kaaWa> 5b~7Иf g^ޛEf{t =![sA!U6ҝrP[y(k4~ }ۛ8A^KuBBBׯ Ъu2 V r$ ֚ܯ@xf5Z\oz?CˍPAvЏo{Ŗ8}Xkڋb`NH jFѦg{1c C:zs-Iav-66ot},ߨy+ %0/`~8G}4\P]01Xƫr}7|{̂Mmiׅ#`B2.G+Cیd83dHP,b3g˳‡Nߎo?鱌"½aL,WG~"jDxAZ _=xWzkz8(ZC}x=iѺdrVwxדf̪?gbf:CŠ毈rxVZZ[xa^l_ ppA1Uְi{Z9\c\b0Srbq#atN]xy^cO!P0h5ܺޕ!.}.ʻhktT߈3cab怣9v.<߼ḆaBBHx]ѫ*8v`Br, *YZ fIO3Aں0ɀGn)JW@LHFTK. k!/}0"'%/2| 5{̒-r@!Jy f _(xE<}@[8g?hLp;I7,"štM\VC2zؓWQPUT p~;}2KC 8g:~]'I{)afZِoW"']wu K 3VwʩagK+X8r7d#TCƃC>LaP>@-.J0AJ/! 4$0H<3g30C<_~ZO~à/@ EJ$S2%SlDbW5`跣u gM u<|czض6$2'SO s zd*ۃ7N(Y& G*_pB\%_ qx}Z^ -gk+X@bu=Qn ?/ f~ Õ|gd)8{lD^ ^\{:qhK (b9ws2Xq[$ 5'M@˧q 3 ^3w]nh[[Jw=vT &FFr O0g4N[AitFC-37|YOְ6Imzˏ&abmz3%[AKk!:C} X-uCu<_o,bԣS0F֦5%>Zc ͧ:yD6QZիygI)Vulݒ?Jz9ʝЯ/|*? 'Uߟ3Y{uWƸ!Tv>Vp_Imύ2! h-<2"=R혚CM'Ozp SaMX,%e~5iTK"Y]*_2u[3<'mR粌oG@veC&EJ9;e%d Ig-r# roߖ$';UU'uDŽ}!x|sP£GJ4_d :{7k2˝v:d = ڢ`ۊDfi"L}f=$J|oş?,|j`_>w "6ciee4}q[ƍ W/|Ƶ}sQ@?/mTҒuJs:C?p9 {01}Fn}i3LH`Ϲ>7s`ݢvhQk- BI ЎaK~jW3jQ 5ݲhBj AƏ PHl؝9.7hDУaN Yxb'oT `YOj{]e`0s˙֪1Q#@q!&n wxL訛A.?jKkieLkW'־ֶf{-ZbZl@6aAY=ʰNX&$5LSm!ƅ\8ү!g_?;Cȁ*CunvԖĢ[DYQ2t=^Pz]SKv=G,]=(lrX?KLԵ/m%lPnKӖ/vcWMyWv<*~~P@r֠ige"@,qcY! ( *rOVڹ<=[}jIf*3-hEKqV_'E-Bҏ jѱ]Rϼ@Oȁ_KrU͡ P0O4\ M| Jr 6\뾩lXւ~NGrZ,S&E!r1ٽ#}3I.B5뀚BLҁO,zbIt r]`%.k5"6U 꿎>pWJ-sQP8}3 FQuN]Cҳz)q]LUy&&A&aekAT0h_kڊ$ ؚDY_{EպRef*i1Q&h9M&ס=SMPV!SC.]6YgxîALJKtu3l]Q(&,݆/WՐ惢$ By{bj$-4=e3JW7x͗D9ß>/؄4=i]a@`KzgYCwϴ2@)}*v.D 7 e#hvJ,1)*揋*a|ߡ5[Ю4`蜽Pڽ!PedY}Mf83_?ksoX:)@}bz8.4Uף.DR)}uZݲU{Q'ߌ;ޑ :>w7n1өD_iSnԁYtv틏~+h735ȟ͝p;ҳG|"Oч镃GR5ꀣ6!v[CJ99:Y:`۸O@tZmo? dqZGךNXc͏(mʃ꯲cqti]9?o=1'Q(AZe"dZ ubnU 9Xه6Ns%fs@ɪ߿" 81PycmgoxsĄ n_KDE\M%?shԘWqBzJ戧"Pa ī$^q=p(QrΑE5F;?{;U^&[\&pnk0ݳ9|Yt'w^C)%9=k,>E̷?`fsFË^X{[[e'T@)P]f\uJw-#ѷ.ړD Ze^b[Be; Vo"ظPH%l.Qo Ѭ+ǀZ8H%&6*F+/2{vpOi,T (}˥?T湖QYʮ#ӝtq 96KB x_[WK)! ؎,pa-٥ŋr^C,ޟ]T0/@˪y_2228|@hڰ7ZLWF g]9' +KKtL|:0?$ B;x0[I|#l-@`Q0d:¡!UBX(6SƴB614 wIC'9]&7lJpPL]'@@`} cnZT *]3饛KQ`>Yl 8 vMSE/-U~$IGUBi_ς XQ@֦vck͹EH?< UDgg"E@uSyjG\~ϻtw~rkysb7j[*fmT!oֹßO̟%ӎGU-ZJ )e}b?PQحy@m ;Q A>eǂ[7Ʉ)W8 lYlD_A0, a_B)cr.>0gnr&櫛yE_ܐWy0 SۻNp4BG^؃Oۿ1VP?fjTxQ\:qFI|b) /pmO+i +2ht{ r9=$Lr1:5-qgw,Le6 A rM[;$AO~GSv'm^5/,;cȮ/ȍװj#HRա]p}j'M c0vKeyV\9X^F Y-7,Z&"G!dچu_e便f](;aڨlA=p%̤!j> ɲv]otR[ P<$U"q.}FGNNi*{I{h_"rv!4_x e|V/c'1:a@~|j@6B}z.G~ (hP-dN9E{oxF[^ O}&_Αa7 +y+8f&{ϩPvZ覒|~hXXMߥXWWp/.ev Q_{ۦ+k3Nhg主C%kvNLt*jDp7t0P!U}7:E;}dYDN6 4į^ӫ|ZDK*fBGM`^ r_7}HV9T$1[ _T?(hp.l]."OXdm)ӭkA f>cV]LHuj {tǠh0 g d/?Z^}9Caś0StqO f R@M葴dKTJDn.FZ&)ob=5NwXaRձt ^r6qL&N/~C2ęQ*HQ"dș&d>KXQ6yxLzWUMOdPz >@]r$_~ 3i^ng+ydz&xuPC ҠU hJ O:)*cT}%,z,d3u#a$RMBh^%GO~c~WQmJk:y8OQD&_bÿ~ M;;cp'd%}~o`MaVWb5z l jБ{ee8QLJ{j3|7F!;w"K&GX۝;JV@"/(ElOM NRDOAVRлR\<)B[}Dr B_|D)-n5$yĎ',\_EbqU371q$u'Q`vG (e+^ tJΧ| tewk*7}3N *8xX.e{\P\F1Aɑ@F~cRE2H= QdH\%s3ЭTn׮ j(cM %;H`–R+c| T*^2tLMH0EtLċ [.i֘i-TZ-L"o C-n*7ٖ Z{v^܊6}hyQr/N4ByP!я #G9{|QN^ZMS6kq˾VE)!lE,# 8T"4kNUDDO== JThtڙ0$m0Sc4~\(dc?ɍ\TBEn@QtwMy2dtSWXm$mۃ h aZsi`_1FԍTQCY_dJc?JikF onc\gceUZKcIh&]7u-0іՖ}WhD ; ):^ ^]]> Y&S z1HxM/`M.wAzD\[D#{:5;tS;xFzM%a}w^ޑ_D ۅF@.,JRmr"ӧBTX[SL6mFZ]EؘA~`lRb0j@@5$dc^y*aӛ̓}fFnnjC!M 9Oӻ~>;AwZ3 wB/t5!W'TrY  O'79a;2sΌmpS6V,yۦq"b6mP9*: M'ך{Tȼ+ٛ[`,1h*7ص@*`6d$#a_0(_G:ׄbZ9F/xnBȪGS978(,X tNٮqGQwў5GѱVfu~Qaةx8pvrQsLW:b6, ώ0 fٚMfo;8uŠI[\D250;"8 ӲK[OACˆ&r-bvdrFŮGͥ퓢A-[> ]5} E.:adz9?@\4~(6\3-r2IK*phTLkI'6Ȟ P,ۋ?ٵYI,SO97hFPVd\:lJ]E}.p J",z?^.-WA_]OZEXk-{ 6YH|vwNJM^W,“pࡡ\m1ySh,Q9QG"Lcl_8xW$ +B.C@\q5iD"o 翘LEj KY7W6ۧ.9C*uՒjk5cM{rP45R,$RDiB]~KgIؤ+8,v"n"45kv px"5;CDΜک?wux3<>}Kj"rfOg@r,u=e#oޓŻ[{pHӀ8%zD (x&ENܣZJHu|/'?@!b_@ @#a 1eV@{6̲ -G338Cwy9Bb>M؃+Q, ;o Ceo]C=Iד̆ŷȜ/+@Mq(\JȎ/d#snl亯O" lWEyoū}eiQJ@*KfN"24EU2~k\mrk \ Fm? n@|dX~̙5jDU,P;(6gK;"J喼\vil7Q9ّ\r>zVYsJ`*Ayxxͫ~6b8≥p6ՉW_LnthC@L5YU_qgW=Jґ\kiQ@ R~5q84u&z4B_eN:7aM`2G7݂9; T-OeGwhxX*7d/:5S*Jk[ Ar32ΣdD`" O$=ƶ\g%Аǝ%yMGvU\n1)G @1D9H`p>aV;޻"U |Z24>7aTCa66:Ã3ٱpPυs :sw)İ*ݡNʧN@ ҏtO\t #2>1}%8 I̩dzdCm}#H: pr]C8P*# 5vo{5ZR W47^W[[ҧz>٨eKTd(c]֘GfT %D͋RT w8H {"VNj("*25})=")#U2v 5L,QIrmPXa$냇\6Llm8ta=$oW+߀1Ο]Ŝ]cm'>?=/c\n]4SzYq \pSs׼/j%UietаuBD>٧Uo}zgWEL>X>$+ Rf:f $^0aEHLiv>h;:b iܿT+JDž Ӓ/;lvvyGJ{\ϙ)RdsPPss>R5e(WOdNoeBY5-c*L}kX~vsf_7"#!' GMN?msI= NQ?̲~ooBPdQeP Bn-.zLism}k@.ۺ ;iF~^:2NcY79鷈[2J7/\ڧ99cQ=5|t"2C Zu*Do@*_ wcy֙^5{ua>}hK~aұ555Pm(-2/||kDd[ffP2|N>ܐ{O1Ұ"L3fǑ߿!<9vYxDD`|+|K\PJ o5rkzPp8źU=m! Ѡ aKμ  F9xѽMgb-^Zivq_OEy߁aPo N-Mt/Ih/i'Nh?|ӿX;caHS[]>KZ?M! IT6*p>yM!/k7J;-^XG"Z³˪3c7YΩM%86lE5\k +#[[sUUpMExSO+k»a9mJdHޥ_o*B_ fjG{/ .~p-+&=%~%# E%ay>NyCحKc̗Z2W/ Go[ۤO?R5UQ HfMg}O;KAA~V||=RATUOOIJ7rϭnry6?旸0-"!S:3lPC-7Ѽi/-'a+8QߦH+D(F 6Nԭ`bd2m($Dw۲&Bd3Uk¤3|piY# [,bv.k^78;HJ nެ"a ֋ۀL'|w7'R&Z{wv%555by~/;hZU(۴{iE`x`Jݔm2匜^c5PS }.eNPKOG1;޸34"nuvola/128x128/apps/iconthemes.pngUT F|eAPQux {yTRePQ@453ٜpJm-,-I@ qȩR+S&Sl2Eq4pƉ[X gsvf5=mV\(SRqyovgCCmI=t4@ H!9&2Xwp'#}" c.Ңal@o`b{x⶿ U Nix8uaX/QhNNN E#@Ēء -JW_$`2> QfJwwWQ{!v6 $tXVk+b)7ܽTR#M-:,W0Wj,ap|dj/^Fd`)J yT DzFa!>u2(K M#P8incS) b@}n|-N⸚@Qxģnk͵Cf1 \]AVE*;(f,d |.61Eb$F)L*oci@QɱaWzc\@?22ݬ1^ Ͼn)kXTVSj ᷽뢧miE-"8L~ғL W>y[p{>)d/^%(Uȗw1t#S0M<[O j`yLm a=*\ymy9E7YC Ƹ#.K΅O-sQan8xe0(z㛈[>y}kGͻ`޳ݚcg%H*ESVDC=?Ǎ)[\%GAWU-15 `ze\ܳ~S 5eYxU;w9D $dxUū솱ī`F, ׍1lkwA^]ȁfQ'H>P٣aKω ' 8Y䬔eoY-`J,(~ uҲ%Ct~Q5aIZ(67/zAЄ)n-QTWӪƑ$_{z)4E+G :=S&B&#*'_?*o Qm^oJefk*P_~ d@ZB7z퇩Xs$)(k8of*j%\N:YIg,kf~F xi YV`3:4"?B+toZ9' "_&f3væ#-BِHw 79:*{:A knFye{N7,V^݂ qVxT͛i/o,&%$_sXRKX#ng,1I}O>GK=Z jǹWuv꿵YeoI8aH;D=\G{|7Ãj2H6\Y{R);~:X:z[]M 8MUsYvc 2~|εB~Iw1WHuNwsyAlGoOZܭ`jֱ)`ܴI b NyboSysK-,\7k+Reђ;IOO'ԍXQ+bbuyLGsc2m QܛG7I'W axPtb/7PS~c󕇝G4㗀L\MM>MEݾY☏&I>vMN֏Կ%4n9}a:ĩg1+Mc裥t:z~4 /ǹ̹pV;j{Ch!r 0z%r9/98BG m+?+`HGG|K~61#܌ 'JbکGVVVRPrI PFzYLiNI1j< ҂AӾU %gQ)}%j -ne0}{[5A9B=c0eBQwЬ9"x@kP&`0>"|YSϦT257B4`-ڧf%M5i,")} z6%?O**FȫQg «DBUsxh%eբNb^$G+W߾?jhs휰z[,2'X`NEש܈ 8J`Iccc.ז}nR>­6 __XsfvN+F Ҧ=g]m.jTNt86TYšsҞTK>(?@WWß\Co:5!"du|ĥL&Ij]3JSsTm(E_75=D! | dVdeteAD|$]r{MjNcZbAۦ\C׎wV}9-yNLx|WyLZWZTNciIh9.Zdhq+}>8NRB [/C7^6)^MQHQ]Bicw¯ִRIWX.r3̶tCsSFKta:~ ~ [b]jz>4х,"5By7!ie3 w1#&^ՊRrmAWL0=[ܢӠZ>ʷTt$v1ݤeZ}"DzҫRu=JH )TH(@zDaDSf:"5b:䅜 !M(+ <"t'kB! Q؀MB)$~ 4Vi'^ #5sD;I [M/;c#Pgۇ8k o4 ";fLЯo>@oU#\2v..54n1pj::u Fm5w4pfqO[/Oy1=Z!ԳcY!A bZ.dq=rb ^F F`؃=i X^qt}jOQ,F%`dKb8{1:g<]\r%'q#^b!J[YJLv8S S 6w& n刃E f(Nr&٨!}Cg&WZNCНS0A _gٹnwR$nRI8~VĥPMqsIMHDZMhKM o"u gUC]t92v ].4Je}nUR[{ S+$Z/n`Yv^qK EhBCE{/C7P_jo yfLq5b Ԙ=i,r$#A9ў'S)>%UE=OM]R~+z)TH=\RhzxyNqme§xêK =2廅 2y`"upP\r+S&[-sl0PopHo$s[ĄhD.JKa}%3Sd3N6fߕUiigߟ`Z+(>ӄw[J5jNȳ]N ?h t.pMW 7f%8Gc*$^d& ]@{*:*.q'#%xByΑm/ޫProBŞحmGyQ[=e̓s96'mR}ǘaiAU2?}U {f9bחh~z9֠z-lDZfXWq/Rjoj"69*>_zBqB~c~g|yo8'$/m :LN˯< Y*7zhq 4aw {DOUѠ牸ڃʅޜ çWR]h8m':U"_!c9wQ_NFdžDt#Ҫ "P:| %fv_x'm҉i/TVN4,I|\aV{wșB)umH$Gե~#Ī4/9}hKJa@ `i=Rg M͎B>'XGyը17WQJlFbeY$5]uy F"Cj+dKpq]|cDM61c.Zpfvy (w`'i O/RwI7}V,ukeY/c"GVOL]F88 /n`jtը=5g*FZQXD;9xh=vG(WAH>UH/3 (1[x0[Ϋ_jvXYOjI~ߝGȰ9O +gЉ~Jfb#9swYI[v7:"fsÛc&b ٰ N"X{Ӽe=%vA7B7#PU_2" ITUr;:0~WYBV(4ݍY~jgN~iNߕM ݱ|l s1$,]~q2"ܟIbޱ<V1,Cr_LvZI&0rV2g:MA;"ˢ |OIf{i7{_N%8_E ̖>iv/(P\j;d{; 7{K׌W,ߑyİU<̮hu;8!<`ѡ6t)]f&#Mrk rĖng* 5&ΐt: ,0FÇ͡[n}+:{a3/ qj62Ȳnak[&~;P|x1qՙ@]ܐS[X#tݎX;AZnjM]߁ "  uҔ 篠P&(m1NsvrL鏤$cv!*ߥ&?+yOrlq'$r.'r'+^7_m ]i zm-B\5#64{W:4V*Es~ƾV#՗B|1٭OB@~O`WgY*}Xm@k1_j!?_{{ c{[4u4CGj"zHj E(4vc (GmD`-}E2 ˫m;S~܊kz >`7ky7h,A(ᜏyz6=NIuWH ~ Nr8g #2Hgy6]MI9D'֧%?|2gsh4ҁZ٩':{_PaCrt.1![wAoKEwYF['I`ȌyBe]FbeX+(8iYEm3F[e?-@MCK!ja6YtRUUam. =$j%ߘg >}K&z)W8xY cAkNI)S9ݪB $6"evtqTV>hA8`#˂jkfsF[m$݅y:m?vPBT-77l\`eMY[px$b%ӽQ8 ~]R1QuDdXh/e{Ci} <ՐJ>;Wׄv.rp؏2P,dz}X0g“WVŋƮZE|_*FB$6~xPv-v JD})<@̈́Ts=Nq  "TEjO|S޲ۺsjs`ɕ󹶁/I_Go):bku{jkkٚ.[xxOnM|䈓I;vm [tX/S9؂|O;2'+t${iN# q\@MX7.Ži8'ᭉA}3e:n5tEn4o%7tфTADB?FJ25?Ό Uwz`s8_>!0`'Bͥ)F0HgtjV4x /ƒ\ΉMm 7 l픮|M@^>G|վΏeSCT5;{/[U&y[A 73`_Ȉ|ll dFey m]A'ѭk,Fm@WKyDOPOrE%t> dͷ ; _2!~o:3\"ޝ~-e5'D~S1tb$ᔗƝQ#9e-\5P}L}N[[MI/* I0RL|%m5z<H];-JJ2 \]HW1-H:Bɪ.cF)%A#~m]V0K@df~Om&!0Z]w#y{Sӯ^'H~n;o+9fWr1wW ۴Q.˳G ume_ 'Y I#( lq^+c=Q6!<: ybD&wH޹\gc.% gHN[=/WuT-J5ڗC%{׬}  O MqdDa Fк@t k-l8.'Lg.6~|͖tbFJ9->5:yjxYיU'Δ,/gSIi ~&3gL}}}W`C I9sKI$tQHV lu-V.C1Xk+ cl {AhQí)BlN:D>RzBVCFՙݒbV%ҏ?"o\jT6CMaxg"JyΕZu/-4LwS~1q H~Z>/3n5?Tz[|ƽ3;;[jphu۳x PHΝa]3Z+ɝ5xW{;5طp8e@鉠hza X~c$ a9J_-K;P:|*e);)qDp8g}0Kmf{7֦P7_iMO/Gg 9{md*9JS[;'K39(ܾbAOqbk#iK& ({Nbx6,J˸c!Ag!o|W_}:lV8kNChz/Q (!7Pu~vC%fP+bfGEhʬ%*}AnE&. B{׷;P~[ fVdd="}IiA0o+/w^xd'7-R 'xXܙmAbG~v5Y+l3.N)ԁwe+/Zqss5[UA͘ e8T>N?_i@'VQr7j9( QRfp JLH [^Q/f> tR&H9EW ,[QjKOMkW,,-4Ѹ0 n=~j=z`mI@"2BZŮǫQ,2Ied~zzMoAIg GARY#P ICDY?ߜjqGcR)x}RCFZ3Aouu]ϠARh߾jAl]]f `yĐ݇}f'\ʗFşũ7 P}:9Eדx!73X/GHn)c |+/o;(HFWs_}SeA܃yɦ_0W,7؜?!nm~57UPKTG1_JJ+,!nuvola/128x128/apps/important.pngUT P|eAPQux zy8Toa 2c'0̌ V(b00*>!S)KOPXb,c\9皹s>s}{2w *"W2wΨ?Cn}09<1 `DcFW C7$0E'gU1% $-'`@ȗHSQ{Pn?bFA*SEȯBv0T^îЪڷ7R :U 6C0;3.wHU+2,cd&44 Ahx"1^a h A0yG}K b$BJsv|ʢEk2bgv')DEC nwL{j(P\ ;s) SؘawJ`Y=>fIw' S!Xʮ*)Ur:RbO)uP(??S%n8| oGp1pM]7~ cdQ*JSaE8;T p.m7H:Ԟ"E|FwF(jaĂ,z-ZXhHr(V 6S1 $,=ġħ9 J(1`\9Y (ζEh#^9(Ђ0!ӐCG*% v+Vg`k.s BTP~*GK#pSgwMț0#50$-5uT[&p}h)&T=BKZɷ*Nt)i# x[Vpӯ z[s \xGg٫ Qo3He^{Ul4lwN~P.xCEfO^P`7Է>4] _[%<щ5wR8 $>?fbqҿ·҄;^i0wpJ*cDH4f9&S?c֥RR+H`&||^xL^L,AKwPGKN2{N['g KP 6V&WWbs@=%{{h?Gw_ Ɣhซ9ㅭo^ lf樇*CJhpw>+'dH3#vVfW{|{Z9O'7c.3r#X{aX?3,v I9mJDܳA$v{.M/6 WWd9 Dnq]n @^}xOv=o ]_pmC d4,#7*` Qnٲ[,hrqP7hD`M+lȏZ⥐l«];1:pE^hI&vM W_8s܁, SI8HF `bri^l_?9=ޚ2#7|kOgΔzZBu߃+!#i4ZӥR'P6V[_l.!s} unVψ=,U&mVv)wAC3q8:ZtIד-ed{Qp޾e0EmD=++6:AgY9=@P%Jvxrzi8V*76J {ϱa" |$`ovh'th RaO!3pćQZSvHih0tVFXEES 2kw:\9):{p#|s ʌ"z1|jÇ-P$>Ц#{|ohUcdn;#LxdI {>>CNNܰ#Gr=kZ{ofCj!P4XP0IrH-L1)E?{իK+ԝXģr;l1HeD]|$伝HJ BwM9yB++?#<xΥzY ZK(AԦ~ 7n =Kܝ#\ao> M``,"A; Tt >́qDvֺކO6H4a's=k,4hC1T)/݀Y[.6~MiTsX* rxȗ|ثP1ؿ3Vyμ{ҁr܊qF@BC˵J췫UIUZ<+b@ dἓLiv20oFr/*tUku jj$Mk1U5SoCM2Uז@8_>ZIUcQ<8EȾ@'bBedʛjLUVJ0VD<9|d%j4i71ᰈYa ~\5ђ@7̛^RbVnu{jg1: > 0@–nf.y`_ V|yڅpۺ`e7BF}Jn أ.ֈ|z]) oiN1of lC.:njzwyUG}BMۻ^K`?3Cl%}"Yp' ȔJ]J[7/{({?9rl׭evnYS0uEF> 2{P~v2uMV7BW# )(P6P&d롧w}_/-ĊEĬ}}}[[ߧ]`Gj55h(m޵,܌ҿPޫg->eh *|1Ŏ#VM?,R)1Ms;TAKUS-9mx7|W&G#o pbx>Twj={hX}R/j¯U~m~7qqE {#<ISf<3w[NM**.67 U9s4ePD4 _t(DawVJ^n dD.b=JW 8`F~q~FzѩSocF6-zX*.y*o$/Y*U:qɏ$c [quqBg# AބPOVcDZ ~v\sظˈECWCqFbܛe?Sj^p28 ^j 4 VM=BVΏkStߍn L* J_dUetۯJ8?z\B+$[q T \/G~6n!s㍰Nq&v+^q=p777Z?xz5}C53h/V+H^#Y}I3HP59 ra%G.z\xwD6V bJUTI 'Œvw$+HzHa/v`k%[IhoZ:H|/qlp7]` ͇}tei;'uYb %+JͅNRϔ]ӣCi;NX4*xz2?*tPo )_7,tcvQQQ/X(QF;q~QṷۙؗЉeüQ @`%ބӯgQaL2!k>0BFV$pN'iE2a!]o:qScjfdFlPTDBy=8lOʐ Rv}>fyeV{~M`85m*4Ŗk;/5X^~VDk_> * +߃OEdCe8ױyw[6#!ǫM1<󭪒" 8&^ܿ_ga8ٞqQkg2le،Eޱ|*V^)=<rbI!Ӕdb'% CVg0@-VRRS.Z2,VE,5d.O}, t: 5 q\Sx_չa'>TW|sdqCkґgɓHڇj[oiL IvMէ~ ĮZ&t SDJu;i /uq:lS:J(ҜO@䰹_@Vv߁`E;pi %7"h> . m2e2sh5tF=k6II7a>/ *b=LM:(p؋܌}beOk@6+%wEv?4qj&?yqكR Q݁*Dw1}+voMHjJL 4)=:~d/G~Id$x LJn'I/pK9N ݙѧv/zf` f"-v j)fcs{Bp6tU'^")'dպLn )"uz Զȷ_E?f+׮e[՛@c"[ţT"zUS-˽ a ŌN)p5Y,t>i'bgo O'ޘ{;$^j~R(kY|aBM%6,0XnǮJ6|Ӫ4b2]1a3֎>=2*Qa48}S0CuXH;&Q,Y90'yaO|M`xYlW?#Yc׷eRiت37FV;wLӬ܆3[WH/f7Pe?XQiegNVq7MDzL*U_*|. >.KR߱항9NY'1etoOǔHV/ƤL2B&ֺQFXr0x_6XlbGJ+ouz!ft~H[-װIwo3Fdx S\G&&1l_8{2XԚK̘qHma4!"ÕeW9̔Tf%"UEZM'؜ e. 90"+(ǰTSs\cjuI,V?FEL_ Bwn9GN~gDhvr>M vƁzZUܜ1!P1P9ZcXs14hFs>iquN 9s 8tK/N`'qM}vu_;CWY9Ő;;/_Y?(OٓIJ7UFn~nV|!"ϴM* gYA­$ì_{8NRmڢO|Ϟ Eh9dp|4/ܔg}#Ea T:r߸iϔWxbuv xg9JeYpz::1NE_lIo쌦zYW+ `8J .0,}[zKѣI !d?pzg0)vqMud5MrT ?xqrtieƵ P rYZ9w3sᅣ)( ̈Fu7_팚+U6t 2 +DМid~9btA'Z]<;nZBl=.q{Yj8h'mp/+kGkN;f\y`6}c?+XN~oǮJ @*ˀC 8*] U;9-ȴΐ/\Uo+ʹŪaNzm*VF\tܾ=no ?egKl8c=+iPss*S^Ey3ӓְ1Xijշa Ìhbƿ1IJ`)ɩA0g]FA{r6%cW'4blơn? zSߴZ+,9_w|\Z.5,Ew22RjZ*bp{_;W ~DDn;=δ]!Q^'hgKY:̯vnw΀i/`vc>x`K~rצ*I?pB{E&G2 ҭ] ek ȚZb ;?=*)ZPG)w{$:H5h}y!,i0)؟9,e89Vpk]k-kL8/m%FZtӷ}22Xj\۝f em2%; C5JƵZb VoQ&K 3`YOxP?4fC ՏF0[,տoHnl^nApOľ0anZ{7SlX>SzDJpC8 B3z(?k&GDI fGH> ` cT j9a4{]9[ U>!=:+1FJYoHmӖ`,9U~jNl{& &_ejR!!2RciSN?ݔˀLsϼV3  k"HS a3`w;L b/x6s_P[t!ۘLI3|[p h8k.'nac{O3&Dqz%%92qG5Ψ\cb6K\}]O- frcb^>ر4 ?d+3T_cċԊ:0hr?L/z~STO5ا6'!dѳ& \l=8id6P}_]9ε/[CHbJ j9Dx5{]+?ACTv(yaN䠚٥lL7W7)*$LpB$U}1M Ɠ:y/y/j3V9Z.VP2^l^=G**U*L&*˚sn(Qɱm-B :&Դ ٴ89cGTv[R(5XhRŒ#Xu\P+ Oo[Һ4lB7w*I4uOrei#d-c `z\7 aƥ[J 'w!@CW OfSZ:05U)HWh(44Q;vB{rj>< }CT̂>\l=E.:>n#P@zo,XwR̪E'&g!,[|Ț}#CL:4i:%0ߦ 5Xu:Gi42n2we.LJCA{o3zWMz1fNz| ';G\˧iMBK7odKVݜܑuOpw) W尼_ 4ɐjx|]ԸZ%OK]{{XЎ/и Ik>]iFzIbo|jaYTS[QHYĪoR&F%-[sG^n,:dҦ,wGTqH2t7L3g"\CFW|2\q|]-Y*K03ceO0h Բgl+ˏ!2J\\.4c #AU쯻g-Vzڱleˢ1R[RMl5Kp>SN&<5C 0Px}  kXt,먒w?B|wRlhClw}o܁MmnͣG#Px>g?~7hPZ %KU5e"6(c_ڂceu[Pq !2\ C4_RD¯bu[a\vWs=ଘ{"vLQ MBɔ#BzCCh?T ED>nD& R1h|ݚHCgu_sIQBrWr"/mYK.{}4x+L/,qL'b KS([ bӫt_a6==oo-ݕܕoeX?PKG1O'"# nuvola/128x128/apps/indeximg.pngUT 6eAPQux eZ{<b6:FT.sEHH>%!TnlDQ*RI)(2沢LF,$o~<9~|9hqEq{\=EWrݢ esDw>p2t=& &쉠 %DGWuОktZ(/;ɰpdR 8Y{( D 1$p (? uGÂG E J-I1coktmj[wOάAF"d}V[!;ߒbL׹mD tD'ۧQ`Z @lB;3*Sᔔ jZ(PWRRْ>DWa[FkEi6 ehu,uMz_ĻC Eo <HBWكvR ΋żH`Ras`AIg~zE]elvT%!w @ia]v-VNnvJY. Za5d$*&ƨ#(n\fuF<Çs-^KbrX 勇4640  4 m"G hg\+jU0x4ؘ)hYr/zmyV0SSӼxcIeEil_FF5_ܪFYPBa>XPK4T&o6ȯ Nd}2W%+LNb< Ebb{lJe,="* jҎ-/ٌ'iB6Rg-п碲%U1 ]@b~"^Hwk`꿛}'_ӧ?v-&ngl.9KCXy,OBmMJ5gɻuUVV,P,>W?x|6 H#:9XLDV 7݄Qi#H}^g@3Kۆ+LE avu Q]_';3Ld+*o e1rrr HM@"o C,\1'[6;"̞*쩒kDZ«;kIvf>+xroV{ݠ{j#m<[O$K%Q0ҙ05r( wK>; ESWќJ#MϋVnI=2ПiJm]`S앑y؞4]0RK fDv\y؏aom75_gco*b<IM̞9jD ̙?S?pB+rol+C+q^%wG-R2$5ƈ5ɉ󎀵PP{&%':FI;3BB4.@ b*B1i:7#ed{*-q `ȱb)]# 15=y." ϒ3<{*G2 V\|TB;z{sWY晋 sAv!RwOX,+FlLk_.^rD7#Utr\OKξ(z>`ԏ#`;pm9F?kWeĝ7@o\gXd;]ErW&ؾ>߅;tǒlpL;Ga95~=Wϗ-tH(/k%60XxK&Hml<<ݔy=vU'\㵟 7%T^t>i߭?w%מ.];le,.CLf@Pְx+зHp p[yq@Ӡq҄M A8(ӻtH9g^/'0?N*gTv-uJ#+m(>_]x'r{YWo%P1w$G½_5ٶD:Y@A'eGM/ynQ$TBLHx\^p\zNoUa\3އY0O_P CZ v~QRpz;-J9jAʎYq KղV9 O#J-κ ]j"p>O;R)n:m, T9M ~"N_2j0[ K =t>'.[vuzBԇ`: ''P @ P" @Chtԉn]F-yS ?J ňT@"XQsDFVHFݕ,mvZm{ ׊ G4Hqz v:X2`pX~++_aN:nt +2ks[ B4QrǜoK >((X{:%;Tz?/j7+44|тU'6u; ĝlG>= @iyERzYǙEJFހ`Ӿgro߼eao<"p4ǓJ*$tbv1B,ջHNpY뉉5I?_?E:A|f^e"tݴV>]J5 ! K3+۵<U3]#XK&2_JO C e"~ sm9餾eI86 GTJa,_26k\$֦p\uUelCOv~He1:;/j_9B/"doʹ^rj7@v1A atZߤq-Y-/QjULs IՔݦ|8OX=/j 58~Z,nIX6;qu+JZЄU˛X;@ws}2myeW|_w:>nC}._@vASPIh03:-Sul٩~&{ ^؍T }B潼Ώ78{mLDH?BP CS65rXN.ٻmdVe5/+2y:R" Q ,+2YuIfL!T4|`ro`7(d򏔬+!ewmC+|VQl+."'d4f;)5C =>%ii{i`*C0rx_J8b}d^BokZ;Gi`x5ר{~2u]DpkFZ 3Z_Y+>wTUzp}ZA gU2َ^QOuihiSb'/]e+~7r] :g;>MKBMiZpQ_7 KxRFFFk- JWᆳ'}0Xé9 DFIbmPKY 5ٷWim v '2*N 9,t{fNI NJp"3%n߾]g=o X.A5BmQgKƜ嶨yUyiy NNcd  GzVPqR@Wdҷq"VU23S7f9ӷpZR ~aF.>A$Rjt*̠:{x]M0P jZ)745__W'v!0"Q)ppwko)y CB !'`imZ;}U/xy9u1\H~4G3C(//_ZGuGc%ѻJ:m47XavJlvUD+޲)__'0/#+ pvk";|@C<~Io6 >)Q)>`Ljou>GڠP-FM=ҌKiJeFq&#-޶𗹗 $7FN d@'7{z0߰LdBxN[ R~G7/mfn}KfLJO./C]R lei|ͺ.l"A2+\p]r3;\Vl﬍k o!p 3FneA BO>CքIqYUCJ(z1' { e< \,6?q/ug2aciVUTnJ܀0>*ӗ7:GQ;SPBB舀g.n$[&z޸(~!:?ҽty$ >!юSn''Cwb ~Ŭ hR^$)D8^ʓߚ2 /Dj!&zz&Gr8))P{uߜδk#W+P"/$e]%PjMN+Rٌps`cogBUgJXg5/Nzq2%G!46"bwnޏ3O}8ZO1Eێ6ŐO2vppAZ ^*ʭE҇p'c,!W0]/xy2 BdU{ūչ[օ \r4+#P]<-vǒ(}fTk(cJeb죝;S'A7NPᐬ{S/p#J>wۡ/RVWWC9mnӥRK>t\ PYju4_cbMm44)?m8 hj㑤79g-|dXu9aVLayj9Wp<+46Җix܇գQFQ Z}@HoNg~ssblsf}_Yc[8 }LEOcH- [b!2/ "d66X4JǍbB*&Ds &q1FxZR%Nħ|'+j&md5lJXNU8_5 T$a*WRBP/-4Jѭvfz\3H~ G< i)4(d̫ @,{k|)%FR˭dW\ch`|"7.W^a9oҶ%qe֪{?Ga]=xGd%T].Q/I rC/! ;G{#&Kn,h/OMD0X˰m^)Q:K=e֔*ᖗIӷE8? RT 1z.ꋍKd=h3ж[+3{?J%bIbR2PkkxeielCF$bihsbkԇCp( m$$6Xՠ(hسˉb!ҋMjG D-ӳ/C8֬Z .n#$oXv9F>czF`%jlf=8F>҈z!/iYk~(D& P e䩥 ܽ..2QDjk*?0uZKZ]!j;੽c09Ti7)›> 3I*oÞPݼ2$|\w^]J(uߚnʺ߷^\KnTj:Ȯeg6QP3x͟?uK^:{"n⣡&;өEyXv{GGl0:B깉+J`a#X/_Χwb*-Kי Cҩ-!"fA+7q'EI>(ce| z ↆȨ6M`jyGG0a`ݴ}Rヾɝ歕[w0qn,85D+"*9FoP,е^}5̥l/C֝7lϬ1.dF!fU撔Ky^С΃aPFd}tEzD(t.NWHǡnǘw:@OD`kNj\^%[R՚\]\]%k9#ȟ}s:SSAj-`o+UuʏED&!Pbu=l.:.yQS^hCLD4$l?%z  kk1W\#EnNـd<)ex kx=gEᖂ &kV, ut7yהX#XyQ b3b*0 mL%GݹAR+EĀ-`1ofbbGE!ĸ,fp nqjiG|so9 GwR0 ѿ1oSh f[u4]& 8)߄mkO`&;xh9͛&_N:K 1^i ?%G}(;E㼼E-5dXKheBS4 Tag_-He!&F bjƌw_"͟dMU_YrB P)Ρ~4["#D,{{ND,U_lȐ!ѲM ϢOϐMd]DXNP T.P"$O!K[cIv"ti- gח[9mwegccfFTi~(a,>)*'xe,Ct9rI],KLBXi񟒪1ADsog%}f}¤^ӫ% _dSj4E{ȍLE_AW&jU[` 4R'!fu% tX>4].з}ȅ'BqԝS,YϏwМ=7,39%UPc8*V.tӉwS4{i _IYBvg_yy\gk-tނ[CM;S P|MvVgkU S}Bivh1<™Xav.mUx)1e/&_9pCónngjVno~3 h]]#_CcCA:I͂QMFߔ8>(t XJ''H1&zܪJ=)hS*O|7E= 2X(yɏeeGVXq}ZSSp+ lVͅ{!BB;Swdqq49s I?|R4)J'c7G7S =nfff #ߔAu,rSr0ъb; U91gΈ=ϔ;r[z"ATIBqQD{T0ZexEq2]LOryoXaw@)n21ƱZpηE3{#G_I9ih=E4QH[Zd õP0a%RPBRX2 Vik!|wf# ·ғb6㙝jWgvPKG1Fa68.nuvola/128x128/apps/input_devices_settings.pngUT .eAPQux ͻW.<zEJ(R$ MQQ$!HPT`@@8tx?஛Y[' NKXwDgC1B#bDLX$vޑ+}NDa|>R)BJt vb"b VצH(sP^, N'Dwh6,RTT- DŽ;Aav?|Eċf%a{bqH(Pr7zhHH`r7UyX~SbF-2nmUhiQcu{js oBs51d~'Ejqt9̳c \J!@Žj(HYYYݻw_888 3Z!T {==L @ .S修2}ծ֔R[^P<1sѣifff[09mg3DD0a3{{+T`{oP|𰰙ɉssfClR7jx5khf+5`F{Mz݆^ׁwWk/U|Z' ,!6]PNF¢_(ߌQ[gn,wnJZqWwsu$(8gj -["3F$4@pKI "h)k[l?@v%ZcLAmmUb":ΖR;]f33e ErMS^EXh2DxXRw6{ Qy$֡쉉0TGRG[%Q 2<9h$E5O|2HZA r{AOy3(2Q1E/ )gy DR52۵DW\C|NM K3zh)Ol,gdzKek'~}1~J^iG^oJYa}` s_8UN'c_\2CgxB9C ØᣚD-a*4B2Q͠ǃ )ځ#kf<2IK ՚\2L #٬CP]pF37SK~=g 9&^<Ų\HP^VdOGTuPmJF=mŵ(GCdih-w~&4m/w$7GNAqZ0q zyVSm~1!5sû\8';ذ`4z^v2ǟ'_.P OhQu\?H%zֽ\~sqpMy1i*"XgS DF˺er%ɷ G1/o|"Bd[sAC2`f7T|OD=ةG 3cϙj@6q1q .͕*{no1-OH%,TLמN׋~2kXmV3:@[KQ&cQJX's7W?W|ٓ*%1qũD >xV-啷R%B!N]zǐnӧjd y3˛eVWC15C7Py]?91ǑRw]ҧT¦}2 Ͼ a?+1nb۠Jf4g_zB+7zo 6tctA[^})cYMݣFj7O/S^QǕIzxڹ߼T{Y"A d-- !aY~dL#`74S-68'@B>znݛT m!L铛Q3/Mtf!SBLX$z ޚ$IH`cȼmXi?JҌeȠ dDsajEWjB~43y>On\2TgKBu;ga\KK6IB Kr]#_*k!e95/15$fzq1C펳g3Jtg ݽ4uO; :jjtET mL"W\,m^P$Khaڴ`)ǖ"d וg-!VyPM"0mcm@ƈ"21Ȧs%Q[0I~o^!&. ǎ1ɼ# Fy4PBbEs2(B8D7_P-(iz"# V0g1m۷)/h.q%hoԅ (3z@YC$#휪TUseѦ.@)s?V zk#'n ~;ر'~ PL.Ohы5s ~Zn B@n0m01̾zeey2:cƨwl]FE-DEs@"*>D(HX!o퉚)'~$lcPPBfVMF㯎o&Nܺ8Ǟ \CN3l]#g!] I7@}P ]@naRpp{X5hA1JQ3pT6eU'7c|OVIz[ * h\VB yDRz%UMYsxISg&'L} O&laxGT3OS $eԗgc$ |Z*yHSr\epe<9 b9vs6׍'&O]x) iJiVW! ;BpzKϺ^J㎋`) EE x*;g|j3 9e<<jyK)Hʏ̬/8ƳD߀2` 0Eq^wm@}D\ݜf% M:!7T5jf SDk ?y^2+xmHq})8FfD/x?pS?};WRZlBSx~;:tuP_poڃ1q5*4{-P o8/k3oKPFܭ]"S%f~8D"GGSNw _Ye$#<({R P|y$]eͤ7yZ΀cUIM,:E+Ҫ^nen3-`[qTNB>} W>YHO~{P־Cvf>&h,[H x[D#tR]Q濅K)TIHX_ :40ƊQe..!a]Z(ۑBEreC?yR^jH.h{!/nzLD~9DIAdoPCݰe厤/xS4¢:ng):.50_!t/—B=@u+xMSņ(n1-k:"2ybzIBb p1E_p[쒭k$NOȇl; /Fg`hLF0d뙰E̍if%tT/-)y˛C0E݃f>XT1G0].HTa,GJ,e͞w/]Rq5W\iRKDz<@Z  N]2D-aJMhbk} m,wOjA[k%TLc ^cieŒ30F]$~*ʾzla^8޽X/.M]U]^iv'_>tYzvxCC@RJ`Ca:S>'N!Uѝ (HMމ= )*V?07 Rhƅi>Y6ɬpb’.C3BPIgb##5.{ñd$YUv6͔qPCKE1O/SVAJ7{Bg&3;S8hJ?"=hIjphB){~n@F1CƨSؠjuE8gyuejx]ʺĀ}ڀ ؿ. r >JtCgg@oFo=Or:3|DU6eܳ9jRb|d8M,"+%_`O9h:ߌ%ύ]޲|xNipۻ_'>iQv]lnP Yh]ql_~dLθ*]f" j!s'unSj+Xo5 rB+L<_W)*)^s]6Av1e.Zpf=lr㡀|MR*6] 'YmVySZz]3W8~NA;qˑ;V4JzAr &?̪f[&7Z-~4 d.?Ml6aFՂ,.xG58U?Ƽˋ=tʩ.UVG*4/_9)U_.]`Jk\%R}(m3P^W{c}PPHgK5/X3c1Ǐw]]OWUd}׏;sl})9kXz|b?/\߫Y^tzs#¥v5sNCIռ's+m{g| x BD!EKnh䈸5CУكvXnczNM ydF0(7?؆(?7[VQT]{ ktj yy?#`Iy,ةN^v]]b=lH4v/Wt?t)VL$xA|Haн,Ζ\Ff&5bj:e|0Jr"cp6 ! ZPZS$t9uYgo($޴kPDSN}!g޵}Sg5D°s~Ĥэn&{VV @ى1Ü]#;+qJSLGkq`+,f[ɋZzr\˝IB7`J'X%əU/9(gcIO}W*9J&-gWMd$,9tnsI[ H TMk?>_kNv e<+XbƷreSWpG碬ޖvu">X]˛sty:7$Iul&g{v}[]Jh?x x 2N5y$T*'|GmRSyM6 TFE 6[a]&!|2zf9osr82'klQ@ Z0a_ju *3Zg 4nIR̉vh>rthAs', =k0Sh託lܕ bDOmECNLـP RlKDt8ᗘ)UCev\&}ckd;(( iNSsuB3j1@<=EJ|9e |Qg.ya~SE!``tҢ}ƕHE# r@8趪q)_JLϾ'YDkCl[(bWH3`#n&q) ٙ~#LzKam>kΖe9ϵJt8_~%CoiW kJKI>>e q$lY*<;+W0jƆMqZ'اBKب9^zuIYY## z_}2gmJH(W[A?K[ RVdy4ww}snt(! eRQJ+NVǜB"Hsƌh?W;K'~cx2AHsZz7P0Tp P#a8H){}|4?%s6a鵵Pڕ+ 8.Dʁ]iDuuZ&ؼvт$\e@]w+`c>9gGI3ly*+nr4na~U7Hu,65nئj-+[[Eva_y>n%V"ȀXA企zWHD/+PwϓJvT0l!yC$폵*\+uurU;\^]~_nMq/ṕ >cQG'`lo>hc15X%tvpg|i(>RtĹDed8zH쬳 -,*r($O\t[[z>~ifqP{_!T_;ӫCki"~$-K^YIPixesB#űR2450p 6Uc )'%u͗8 cpjfU(Rp7H Ȏm\F3p'z2r ?d'UZ_hrUVT ej+aFhRozl }1œ9_kLoOZcCJܻoг6.  ,]露EjsO\M|w24ۺc0q@yv?+dךb:cIi%?VC[?}DdJyZvˉN*:wGXAF+>V3{0~dQ,&_,VncKU[~2JrXs?S%gњiQ|~kc4+f,^~S L[#m'D@!%HZZz(8 ~4"#ѱWEUYM2 i^x ٚ-/%_MnnswQ~as7vőw J b(%c1Z燯[] ?I:v~yfԞRRgl}Wtވdph\u}9P؝~mXM1YOpǤ?f6.Z"&_$׺xG`4/U"JŽ* H韠۷q(ToKs{b߃lHS2ɓ XisU(T^iwK%mԋpTΛc(៙(p:lD S]xdQSPMȈ*71L6^mQN+ K;b0++v1OgRWDMw ˿BH6I< [yQzR~l}{m'ےy Gq\ Z~YSZtIY#UBЮ^eE…1O6gO3v@P=f\5RVNxI<Dt^zCH e Sz2"ܮ_sQ&7!땢"w r=؞cZ thl]_ Ikƌ{'N.ux_\Yva c* ^C H#V3>uCR+K fF,h)DrgQ-k='R5F{IĻƉN~A՞UTu@A!Fuu2pEE3]SzǸvlXoh<4rk{D7~|~0Ps!(݆xYLK oMQ3pwlJҟs1c\ag_4٤IGaw8 eئ[}883ۀ=7dd/PDQ ' m+&'@bյñ_236Euq}֗gڒ4H>絫 C` 0; .8|&MZע$ (!%W{s'W0GNhWub\E6.`)z`ބXm =jL v̌إ=]Bղɔ[vW:ǯbX/n.,ŸeJ *ꊩE;%, XmQK6 ߛsVHW E r$fԽw6&sox֌I(8 9%Yc8u̙&CDQW;D"6wY;"PP'w8sf5n~HuI+mV4 /O $ @ @ 1Rq;+LbLco"9ؑ,Ɩjc\6~OHX|vx]:8?JLH>JK2'^xl{L qU:$.s:&hBvc{źv@DUT\ H'Ѥ\rԹjnh)N eB؅~"%=shFɊ=ю*R;%m m0H@tm\'ѓI>{fluuj-uXb)8*7-_^bX2gf4ϙX/3LDf`< u**OA!S e@NM Zwn0,fWjbPZU ؏ CiU.#WvdTq{e8˦fCU/Jp 8 Ϭ>>3١ THR7}9meUI]*lͪfv&゚VoR/.eo efcQf'J_08PS/+ϩAz?0]3ct&UuX\ϕC"IB>E- /h'/i.qK坒J1mR zьs_^ءX"&:~nNz ܿ&"zaqK,g k㥤N }Cn|xSQ&piʎdaΚuIr?3VIH9(AQq5/P1|cirk ɼVrGGLG9k%Hs4G2#;k7TtEr!^F0gS͑;P&qOd34kTb{;$lZ7]#50z4CdBWĆTM⿺ܫ[=7C ӳI𶉧WYζfui3a$I^?_B,Rs -\*/[Ё/1ڙ!qs o{9. ]|r\G}WG[V#'w5hiOq|KM*ѽqץv =6*@GpNTst+%,ƹ|< =Y~$ϴJx'RABȾTbZ|ԞcjEVrc NP:˘r%u7+'j8>VVe iǯl܆JLj!Ǚf#cﰘ{ s gE^˝_zԪ)~/ѤEF++v\t/jZ฽ZΜsWĽSKh}軳HdFwېό8xT@~wv`g˨;Y'\K'90_' Y ?4)ph+ 5ڐΗ5@eb6g` .x;3SnPfU <` 8?3yuo%܈;.).3fS;Mq(;&8,WX M{>B" &=4PRfN`#ʵOEt:qIy6IK],}C LfKaԎ( 2Bۑ$ϖ۷bvxEZߥ[eu69=;XطU \JaS[ ΛA & oζQ$DYx#vs3Ze$Hm]]"vpRZ\,L,K9L茐Ҏ[F|SѪ{36 ѷ%6Yn/C]d=)w!> :K!t/O44lKloK2۰vsBJtCx< Ŭ KX'oM$;_$ ] ~\oWaE}OT􀋆4HfA v ږRxD0?ΪqSn[&P!q[Ya<r Q(OjrB_},/& s#O둁[kS)PKcN1b=>nuvola/128x128/apps/irkick.pngUT mAPQux %[ 4T3wVfXbdd !$ZD IE [*RBU*J%e|{=s}y|dy{)@GtF{&v ,?E6;C17D =|E-;mXޒ$:40j&R 5fg<#K,-+fSreA DW'2g3P|2LZO>tlyaVm&@ ƛHY!HJd{Ȅ sU[$|w"w^Zδ󣳔,\Y&H_S_zERW9JG$OjPs6רCގD2W\ d&xPKN'u`Jr)H!M͈$YȮ]PCŚD2eEq)h쩥s?58< >AG,跅S_[7g~> H(HHHZJ AO>)EwQ|˴|=6v@yLوkH6iF.HfKvݒ'iǝ%3rڈn+`h)إLLlXJ&`Z$JoȾB_Z|.wA63P qgBЅh" NF\l 4dBmĥ5I=n~;6<,Vd qiKSpnlf=QRQ7@i%\c<3tܹQ"KX(IHxYO"{6ұ. .nGDĪ@odU] lvÇ-xu-O(<Bn<}=:5A#M>EsKk[7BOq#7@B[.Omso{iK67Yoy>dxɹWU]>>MP.X@7UjroBsj``La2/l"k'g[0) -*]:OJ ی67 tdǸ\Z&,\`3'4S5Dٟ>9è-MuYЛ%S'sdlQA9ؑRm׹JώMC3 @xZrFRΗծlP8^pit'>瀈o*xsאR9MghsPJ{9nal2!Xiܿo_A0&|.ȟ!FM= Qnb193N_nVM8#PI۰^_)g@-pj^0q@Nw^=,pu^Q> ! ނ1ſ~%Enܸ!\x0jܕ7]翼P$fNlgZM,nGP3˩U&{ L]|) ]/ ү+߮KC~C|ƈaTq8 RPJGN3ChVmS܉|WĎK3Lk ZBu;چ4ڑASZ4mD<=\J9( Q Ibl;Z= @4gE{=kRܔ%˂˙H+_P(,*wyYoԕM-&^/#^hbLy PG<iR%rHJmNu,{A?Ay"-tWs,{R =Er#-xQyqL&Px^BQ *ڈ.eK^G R~+)[l$O,_r&aMY@朞9z2zvJx;1X 2hhj `]rX( LA+O 5eUepudkp%{1[X\u@T-^@JJ 7Xw} *hK)W/{6`^b]N#GsSMGq9]6!x28R!;c?ُ^|A#bgNG&blG&s.}V7VC66O jp^ܕVw$obScux\Xhߌd1AqJ]=or5kg8?CǫԾ j p`-q{B ^=^UD"BekĞ-^pE@v'ږjv -IA[E [$BTc:M29oc `kV:UVʺ9j_Xo_whv?)`=} hb 6]H̛x8c:Bt>l+104d:Cܭm6K|x|{HYFU&gWirR fv3n*/訫Lpt=DE&̣sTRvp i -%fñ\\TwH# ͠9ØWBу#J̹BE8廟#]Z:67// ( fXq`?Wb˲ -C:vր9 ^e7OQC20j(4C7 3f~! |^X^{r >KlJOd|||_R]L2m)~ɝŭA=u췶ѽؒD ;jŪ>f 8K$(p3"E9c)2 ڈνZ\@VxnUan[ʽݝ}|yOJD65dXTa1!措jT0fr>Iۯ*(YO y yc?Ai,1( ,VzO{~ 26C[,HyD3TfI5LGuܭ}^ Ϊ w_68$DpWY0$]}rTk*ݝTdl1N&I%?l4%\S ַNuk޽+<_G&8F|N:C5\h ^ˏx._@B4_*}*vcy["eTGNFJYI֕;w$@e*E۸-1",;.{ntʰl=鵂іMǼ3g1Hx3h\HH|5w'oBM޲tMȖLRĽ_*T*n98̚hV_D:ytbwX&= =)1FCrl/Us2Lܰ) %H\@LJo)g&mq4 2P!t{RXCNΟVJ0\KSc2GYGsV>odM+yаƹcY|q"D:Ѻ}z|x_%Sm03-wΙ.j;Y}yܢhPs% Au)Y[W`sp?ǭ\1{`N .=vPw|t43V`K?`Jm)3{/i#ɧώ4^W lEъ-0Cۮp`C61%leדloH̺J0i;$-.CD|ErC{vށM|2._F !Nd䈁é+V_沥j<[_oAIfXY;3Dx"cy;E-=OrUcUvvЇƍYӆ#`bx'%O*eL-CVO_ASJn$,8ܖ2'LGW>aR>|MoQWOh7[%f[7dW<_6SK,9n<;g#'vUoXb+G"eG#]~3ƍUaN壂UᢴVWj5v^$4Ĕ) \OepH+#wc.ԶU<F%0q ~ٙ.DlΑWs` 6's4Bf ;W̎jd rSiyLa͡ -Ӌwy#xн|f]Gۦ4OSN&a}K4;t,2p]c_^B[Krp0r,tX3kcoi ǘzsBiEUTYW=6+Gdnyܠ230Hy^l_)+^!uWlVΑsNrHhK䏫b---'-juJ ܊MJ c4:o?v~ , uV!=T(\F#3{u_qYƅ޵scqiѼgP,rq>$1׍:[w|x JYR0i['s Z@ubB'/ ![sKMjci8uwA<(/QNW-XKz[#cPy^YHYʳBO"#a|4%O"Z!)K~YHΟ?M>DYwq&P ~!>~I=#f|QWTi&PqV&K`G8Ge@xGF_DKpWP7 +N*2nAE U229=Ӫ5tBѣG8VjAd 08ϳJ`G -!&_^-穏 6eqYߵW&n@3a_ ^sS*)ɏ NeE2f)ne- ϵh, =ByN RA  ba;&N8X~YŽNZRBM*2cf_-m3\dy+vs^%._NѴ+j`3m0/̿^kݔ hl$v(C-i=ԍl&y˱*|ۚS= XJQ^-f߾}{87&oRg1L8$y.g ϥ#%K+u9wn{Y,"4 hGZ&ꏋeя /?=i?ʪJuJ.xJϞ)Vl [ 4j.g+!577hbn\Ni4 ~VSasI ޫy ; Dvoj.T+S5񣟀˳KJJ@h]Rx[@*;\^M{G=a"~K45X/(p4j:O+`H:@b*HN˳҅A f[[,`"YBfPY/^=$.wL Nܰ)if'c2CYHƿRz)."6Է=6'+{Ȧu4O1dޟZ)r |sOWOe -c6Zao'aIAp3#*jZ]ʦNv\>uKcX2J5ϯ(%Ot\ȹ(b5bJf 1^=o$^5(kWjdhVXU`dU|/ISܻ}$h 5>36㵥;[ O5{A O'7 ޶N6U*Tk\}%W,֬P4ȇ'pZ^0>'T҆ qqT)˽3%سʐQu`hN|p\=Sok54z o<Ⱦ`@bHh+pzGҢIJ &?jX -tJ~#JԆLV^[2c/ .  A:J%-T&q_[ON#t#dqyĒ1Y1vN6AO࿽(M6/"40E@\gt`A999mig32Raı8{FМu31ԝ?mKJg!mECݱUw1a!HRȹz/W,›x*"ڭ^jPZwKl\/j ƾΔ5WUl\iW*zd@#u|F}]y˚y7jk||| O$#j͆9Yjr.P5#N#(%GB54/+61qehJR *s @'”ؿ;8'Uz2vclackOqV8eA}bZ_Y֧Qvku$Ό%4ԫj.UryaʾVt',̀ L.+( ]=VcAzܝŠʗC^?bܱFߖ6)zhYt3/M G!ޔEY$hk"}yr7T ὙS*N ժΕĥ8.Կn/|__O&EjÇہqt-;;;DPAb^5v:UlU&e!FVvC +rgW;7Xрf k|kf#{a?WͶ&n6mٹs51F_\{@6\F$vCO&%6ˤI|9H,p۳56:ȬMZ4xwRinnNhjʓ։xO>Mvxη7Vwc=<,ίƅd'1 n$Vi}x)5UEP WVŵihCLxֶ*l n1#۟zs5/z0* x5E{ѿI%߉>ܾM(u^ /g .%|P/j8d~PY,5xZ+$Ďс[B0(]NVLY!^?TQBKǀui` t7ba}wٳgo2ş:eH%-!RPPXjg''6&b%خo&4t{^% pԐ;UZXHRx=4O+-N|+eMpYUp Tn򣃿du>t-?~:ϖ{ŋ3 :u Ww[Q{3ҸlǏFuVS W;p٩f誴#W7@J\#cw~/F$]`.KBL AO]4稉'lQ,g۞R7G)!U&;!_Xb"fcuW]c` Ob߅"7`88siBG]";앨&v|CFr8T_ȕ*+Msa3T-y4y{+J" moS_#ʽMǏ;\ |M9!;SXCB<#T=v \X@{?C^@r~9GkߞT m&ST.O/$gVɈ87oTV7cDƯ/~&>a3/ny=_DzןL3uUP? ({gnh䦥ypįT!QB_+*`ٕiVz[Go#Dh~h@FrP$'t{Yd_RwBQ!37 Dں5m9]>r<~}uPEZX(j^|8%fe+6#Bqq xN6|Re!(;iW"ں[gfD9El ck{^n| D[wmX[[<ФO/8.I *&Ky+0 h1"ڤ#h૮3|\tQnnb#'}fɕn"ZYmgKmhx8q~עڈvBTūt#Zz8=T31qk=@4_-d>)ѣTE[WX˪w/థO tZJ=FO$%X˱͜U۾0F[9ʀF\V^%y}oϹ) .#Ǐ_;nB% 撒m}jjge@_nXҶc!kt^ ܓuUހ=\d"m$yv_7v#H*/ŬacC\өd`seRr8f?\&TX<by!ŤdHRRѝEaD37{4Gv,IkE:A$p9g, 3;sk9878 ~4nQA%XW5{"f*5ar5R=jMpj|H5$luG؆Ŧg'9f`Nw Yp8Z 9ECqzed]:Sy SK~,\gzez>t}ZSE`}GFݝv4Ѩ_]D$Ÿ =pvbIq|)xTB'#dAIQ`c58} R&֯, N3SjxV,R#_Ȭi`aTF1B.5J&b,瑨܁5L^nOTo)6O# jqWW`=!Gwq 2Ge`?5ޞ M|OB= Hu0)avH|& ؊Ԇq`IFJ1u@cAw41P>ԣlDf}Jo.J bq*kx:ڙ'mZrޫ燍',M@m6$1 .!o(R Ea֔;!RoVi"Ao8&_ӓkWz}T*wWZR4I2+bM(ܦk=wPQFsuI ͓$[\\<4(\(|a\8,r|L[? /XbҴhX"nm[lfd(l ?# TPx/czކ/? EFtrÃhnb#Դ|r0'VŻV칮N?PKG1GfQjSnuvola/128x128/apps/juk.pngUT $eAPQux =|{8q9osV͔mEN:J LKQSzRVoJ܌:J!mw~|^p}(bE&KC#GO UL}@'s=9sIT=1 +>56tGLRBdBL]O| R4:CbG}-Q\d9`c%HTq>ng @bI"4)`.O^~aClNqem'rFKj *AR/a~Rc%b^t&*% qSdk { QyF֐G ҵBhEz A9s E/]"\^+,Ծ83ɇȤIzBޡ(n#w|RsB ӟw**>5{U|=$Ҟ:>APc%○O;; n[Ӕ /JwB1f63,Z/yDBZ|m96݀4>0i=LrN^QT2t?\'O5qAEc3o3x$__M姥FqQQإԏ(8=nu.|fW)*̃ߠM./ ocM0&I'TIrxۮZ_t2|v0ZVmlw! .w,<,q\SS0V8)B ,,;z]ml=F,h4d56E|bѺ2Y4pV"ӕEʒH5ѵ(L~[O:2d" ُH[U@#cK!ɶ䥐8Gx ^;><@ڻLػVw}I_{,GAƫuYa'N"G2""zHmd1$  SwtbQ^-"j =F\/pTǿ|#m~BH0SpvrxdBQ"n:(0w8'L]V!VH [. T 0B'ܟ ~_e~Q4SLs NGAA-҉:++lҋ>..Cǩmqy<܃Jڊi.\# kd DesrmwK6-3Ä\I4\XCx,!#~8nr$q?j6Wþ90x6[F~YjؘVv(zc+#mXUb"̧6iI mm"""Ҕ_̾z9=20[Ztq ux"|aH!X -)Wɺ#^kvWXP7. ^; pmy:Y6,MVmKX;Bhn[ LܜwRH )Xѽ;ˡU.![eo}5mICw2] z̓p_ND2W6&_aǯ,X\} e%ҹmOlچڸ^7 /ao\wy\Ƚ˿JZo{LMY 0N{/1j,M={N,`HIe.q{kl /X AiR٨\h)Do #_4ٵ`/@P݁J.. ~"Y302O#Jŕ0zJ% C<1V%Qdu]ڎRRóNc]kz_:°dX$Eq,Cʱo/ ywD3A:O'IX&~;}IqEzo-|= o3ŤC2W;Ot=gn!K.OBcќ&Yqi}Q/Wޝ·(,u'Rr`LBWh41c2@ǟ+=dҶQQUp˩)4s^ !O:_dxSH<ό8"!P}2[w|;7Nql-dD  V П9c(Od$#;Qg+n]md "WLd ̊n>'ɤYv[i("7 _QVvW[ڐm ba;#tE%R8(bYՇsRh3J^tɼU^7p-,BiOoӉn,26aGq}(>Iׁ \(a@ֻ ֡~s@S84 , ^!<6@'罹l艰Ub_Sk6#~-\eT1ԈD`fdO;Ujn|" L0/GISU}QH'E2UΝ㳶l1CW|`av\싶:jSibgndq![s `Mq=Dv@ ֲﰧ _! $e{__>:YPno;˄Ly7kig8؛E}Ez>It^ ;1u"&O!)֍]]C&LEzˁpQd'm%,;PvT,khI{:o(9$QLz$ ylzqm+7u 93>U2.bXORjc7X9}_@ _ZLTӾoR e|;;T~LX5hrT]r@Mu%@4qs4RlNxoc rm)]s;l@Ku۟.'~v͇~M^j/e {xUZ%\pl91T &䥉5*ά&>';~QKԵ~ v nQ˕{{%s}/#aPeW.SJiM P\7Be }s? -g']nZSR '1(oF)u S `(b^GX+Q[rԴ]%K$V6,VU3,O pA?בu\+\3tl''QlmH3ϋX+:^5̅}q@B!? $pTU\rӦuN!&A{d^j,۲3IGxҠLlF4uQW@oO\@X*bvjY K] D(/dCh+v~/%ǧٱsN?iiF䥿" e j|P [fnn L f=LŽ~j#g[~`q U (1+cur}[PsJ4vK>ro'RJHl.? O*a;paM#ܺ@~w߷,^aWca6)wˎ?XoŦk=]ٔPWf8ss2 ץ2mt.wm̝H$@ \ 5`^DG<x yw Ǭp} < sh3: M#߿a ķ}k=Z4q7eTl?8iO`GB U!`W"=s޵,N}Dٷ&azͱ(;tyG청!f/y刟'5 PE::3d7|bR~'8`Q908}QpW*׃5]6>mť z,C!w(Yw r7۱[7=ŷx l9 3Fd2ZMUkUL6WP&aw]#']bAZ!rZ(/}fFw lEe$e;{Zw| Z0hFvsU0} l@qOiiQL!Ʃsy@dNF'7sgޑ![b }&7@FoXyhrWϱ Z pdH/l$TgU=4cPxٌ6Z/iZ".~1#<84sWBRć畆aQ(RMB A.b jAv<ӂ=NKm\O6!mQ@xÁ(U&' i5П3 yZQgi0uv{/q7c2ܟ9MY4z&%ln>B阯5ҿ+) Jjq" q0Fu6a{t׋Of- .kj7pT~p =*eZ]<^$q M9(5Gs\x-IȔ=C4b?-E6?-VHvoF(PIr0sdNq$rEO5E01u9|i^`ÜjLmo؋ߕݺe)v_igϓ9~qIEz*&q^lҴ?1V_疠c$zV舀? ?iđk6 ~82% ZA|9 ǽᯰ]xg+n"iʏa,,cI)(t law]> sZ\̣Llǂ\;iϨ;d(qөe*,k#HbWEL="QTԗEȁp&S'zP+ =mcөw vgv/>x, Ƶ\H`_ ofqodtW%1 :To{B](T<698)~mnޙ'8sXv;N0٭e kZ9bU\qgFK\YYIS D t$/cZ!F62sԢm:UZnhs--F;{ӨXyY4-sR6L' zHZbivخk4V~*~4(Nr/Y ;F,j'Kyow%C|4[n74'HS'׮q香1>^~٘^S9: /68$,̴8 f]ax`s< ,xi1?|CIU\rn"yxqY m,T8C?7#qSt\)Xɜw@7R .?db4jλ0s_M`o/PZN[5i~1?q~ERbke]mI\GG> *tAXdlW@{?DD~;tNVXm it""np BFRS 6jY*W%ߑ+.6  T۳u6tbR'4L]P! udiB_n_nL~깃NYk4k h] Da0s;:Ċ]ip?1-;] D`BDmcqB+V! ::6QQ`N9C8lPkRƾb61o:Īu8eὺ;1Vk >Sբ1{P t5/ZRGr,4ot0}Ā!j Q<޽zȾA?Ei[)af>+ɪ_Xxktr7OU#:1CH' DFA QGөv_"UJ`['x {|!M糭RaҼ㖈 +u4}SzH@ws@O0fw}drA=YK޴lKv29˃y 7}Oٯ7L69k7Zs_{,i(JɓҎJɦ.,nNlۇЁAv7Ӈm8yg A,U}N fN{:Uz bdc[I^E$ĕ9`NXKkŬkރ%##>dyߖ&fG#,LC9N+qk vW.1ANVB]?P۴0=`xO\iW&ߛjl@*ֲ.Ѭe.z'~rhN*:%j|P=_LS\!K2AyԴ[TCX>[+&QF,~ 9<=:{Qn'g>M% fΚKı g>%\K,[ۧːkkD勇1iwH;a}y~2o~ѡ0Ij.8(N7ɪE`]s;9pp Bu0m#ۭ;x"1xg],Nr3xQ!q^#iZsR ĔPppQy1 X3?౫MbyyH}ԁz,pJy Z$_[,\k71[L)ԇQ$Gن0b6Q&&[PSB;.pEaQ+XPuokMDiԳHAt&n8vh (-׌Ԟஹ'Yp:bQbvx? ֬9@/A.)Vby<8?xjft?1X 8"( /ֿ2P<]_Ul~ϏHZ&.Y6QHD)Bz;ž 2fBR.m0|֚cuGY[3:zB36 903 tӒ:AtMc--{Ȉ> .LQ{OL׍C&&?Ɏ(тπ~[ PI5ׯR&Gk/%/H@c QdfkN!mȉۗO4&w@Ί^Mu{Nn-gڳh<*qt )8o*0*SmIclBw|41u탘Jp>F8W"mg'e@u$gi\{{IӻwMO^0-C׀{MF1 \(0HlX xj4A'6'\,oOY+Fi:c u1  d??q |r]fA8mVbvhOE#C_rYN^ߦN&38Ow5@Zh:lyH'%Sњ?xWrrc﵆#gLjEWza /5ɱi!a 21{JK-DJ `894Ak]#]ù:IIF1}'{+peΕ² =t3N&~>k%|#bK‰vDgVnq6vaID# f+8GDQ峳4┽PKw*}. #G=zsx k 7>à6й&`!7)WLUSn/K/q&g]m,Bٙ؄l)PXiկn$0`4rzeUhEx{[d8Dh5#Qc@Я3R#B#<&GģoGb烇7Zds+xCQC:G tQ=ӻɟ p33 ,b:#D<.qtܧsyB~E2vRzw!i{Ij+u/'AKưo^aS Q(kK̋3#_`n@Pߔ( ͠@?$srr4l/9Ɯ=*I>), '/e.!%qYش '[_j Y/>Fq )a>p`DG2ŧu#ly&B?C>GqKobػ-3!sWml)z}~ݔ>"YgIܘ-d>Zӆ4.tB) :7K۔>6[>U?&pQE[DGr xc8SM@KKֶ7Ԫqd3w19O}ןTjP<7m^D}w_^B4nB* <99^x_h){tTj~:ʓ&?S`y>/3c8$tAo$%sZ&~tvuBYUs&,_Vk՚u}P@l[od2 %12UOP -FSۅ!߹A~lCvN,o_-݈Ͳ`_/Ǔ,y8wvGe#W*dV&=9>no+4uwg҆͐):[0TʃѦBG]JlA^:q֔y]\c{ 0h 5g.f)wz%x-6ޗpY $*4,R _Ib [,%x!;uB 3gwTe{Y.bxJnyÖ:Zx0&"/saj`bsm٥\Bڻ 0_ Rb(#$<ꒆx%[9iL @1J^pæ-M.0R ,?~>ocvw ! `x o~qg(7fC"4oܘH~}pe4Ք+g""Fri&Lr p =bS[wjv.I?!cz1w-qn(&~]8 ,|=x-JExs2DEpE69QtOPyjd^t]t__L;=AxFR(PS6gu.l9k1& k $A dm C njbոe|sAw!R. eKBl\Tx4cen []PEdqzz̦zRc`/ܒW72άKErO:lxZ^*5/ӊ6.5rth&W}:_ZcAV,;S~MiQ`H*[ L\"6 +.6f>?ޝ-}t)=5Lg3YgLpj]:'W>d#H@M(׹+/TZFsnc}bHƶQ ԖC|;$ _ޮJ;%\K)zd#PX%-QKVmY|eU2s شu4E, l86$p++ ùSL_zkP)S%@nLNq;3%)_ P䧈FߔҐ࣊Ut.B }PVQ OdE5z*M,bWfcxtᦽ=S_Rޑ-PmG-+rhIUrb΄$cl ʥĚ_X]&V/$l9Ȥ,o6ksPn33yb'Iΰ/(Ӻ󒐡@B<[}I|w$[1OYT2מ={pư|-%{kFE ;DHrNzyJ?3%^7Ꞓ쟻 JLy'ZNgn(jhSN`A#Kgk<)sZc^ɇvDkw/;sCPDbj/2B, Y5ӾuޱEn!z;h o9(TNG@3QWԂ0&VkgFdԪҊ~F*Iwpy, @T>vi[>&gcSPU;&*= Xb+L[mcv#/a\H!,;HZqr:#:^ՕihQ3degsyF7"fҸcw8n|,"]5^RZ&nA8<=Z[1 Q:Z;RFmdrSy闹_` OSXfnƺ*A<3pFoJ"eƉL}H*gp߾}FF Fomn=_VrOF ;ǀ_35rR6I+TH'V pNqj"oZ{EuU,WR3%>{36;RF0iƅ ;_ʳVpMx[.?v!W}zJmY62PY:e)5sHA2fm,w ٲ#oooZ޽<#GdeE(6 O9ѾL%-?b҇:_!Om#nb ;4!2̾HDUhƘt!B\H7pzߌʘr` 80Y%c+M-!X ULJ6 'ʉur\r(C.|3~a%{uytzN]{Ae?jZlp0'YE~c'AxQTrh/@jɟ&s|X=bmve9ik,ThYA'ul]eCyE*]$a߸ŨXʸBo+-df0PuuͩSo Jv{=ּoz=I$x:7}>xwY' ܆#''vݿ5f"5ӯW_ R整1Yies6ԉEgWdEӑ{[WO( dm4N'y"?:$$clh`4q(>sTKvuc@ɪnQ|R,9JPe 3r5wVr f#Z^C5qxnazBDwK,W=3|L(qgJ%#$p8=ozꋋl@/XcbC)a`cNR ?aŊd b#!L2B ?=^B!L&PV zD᧥ʸ7'\beLLuiJj+\&d QR N,|ndy^JME屙kGeu}운.:յ1/kܫճqWYI"bp=HqaRdd.UJ{ 2iD5X KK=4T G ۔-H q`K#gDZo(+ֶUU\)d`K}e;MJDw3C@)Z HG_XG7)E!mgReP6{P5k:ZLOvk >wq 5!PQ6+ b?եhϺVq#؉NֲvKno)8zBʋlĵ/Q(*%.Iu|H^9s]G?,!؂879$`ʊUƞ0yqYC2Ϯ2 5(6f}\l!51jl oVt+,T@0k_ri{B]3+e_oKT*GD0'< ñ~ʙv7NMɦ@&yq}DgP=:Exb;qse(M߷| k9#45+ر1Q€)܆'*1 vAN%VN<|.X;PvzrsRbC/Z X4zS,̹E#-rB T-s#/#ghhk̔I|jBү,ba R6?,풍0ħSaRG95R85XG'ه?Yѕ&A3k|EK^1_);£I;&sZ`1CCCʎR}g9S&xT3Y];V} : s{WGĕ`QERoZ|@' v"3vJh# ]bL+(lnsU.VImXș41:P 0c1~r21f/;LM ƗVVÁ+ϹI99WBnrhҍ[i@F{y~fX~~B$j^O`MlgQj+v)qu06 :f7^oB|˻4$:HhxI k=-5(bfUp(ttNl_=`P)]ĀoLO>%ЀR7Rj? jre_6:}|;6]U"\ u(I9^>!8 "|"w/X% _)ɢ;|XfU.(/Ӝ6REJ|Lk ʼnr goűRp+H?CE{8sX8wrE3JMV8%ř ۙTuNN|4Sp$5_J5;LzrLVz\fZ< }cu O+AB^^rf΅][2u0hnׁy Ӗ҉TVWtN/xL .+h{!oٌ K%,g4YkA#b*bi>CJO|>.`,Hc8UX=ijZ.Ї)qq1֍tjTNN\Ls[f 5LH&bgF]اb%iggwƝŎ#8ù9A}W/4TZ8$P]eܠ8%N>E\_W:;?hPJsnf*y/ܳ{nFLj=nzʖREPoqQ"-5{;)!}BgW? %%8Śr)#_|dh֧ܠsTO*~GSvgb;8ϴu_9-U*tV;.77z@ԭ"=WícS¹7kamAs(z ǘ{ֽ Ԝ6MV!&9 aE!Ŝ-ko4׊Kt63(#:[g~xo`$S`jaw|"Frs5}${W%}3q&C!n*1im$׺#N blN7?U~+.d?:7GOp}5u>|}*Bk+_#2 }4XXmqg!^yBc]==LS,!Q]P ~PYhNPq``vr+<ݦu88YkԱ0qjӔsNǁ2="_ 2R40>Pr= LI$zs ǁ/p٫\,>–Ḽ(yȺ2Ԩ/zQse3uSCჃ` E \ ?֠.3ɫE'L#ч[C)&GucΓ,2=}cfa\ cnpw/ID}VT+[:URHgI4Gtޏ bMpcu2&w?x|PE ڴ˦9z@`^Nr~S;?x QOj(H~J^fs<6} Ӡ"s5Ʈ@*Ol7vzihjS3eZ+M9|Zj$tI릑ϊCh6Ywݥtav?40ؤM}.;ٲR^)vc;/|nUɱd3]=M-0 x"O&IM~7jqXw 89VV@~+\'i].9BTz98/Ir'! d+»YF o> {F -??nnz1JEI(pc wZcJQ3ϣ8xn m2SWx RJrԞK|L=sqtcy'Iay1GYMOi 5?(agܫa 9-vUOe@QBl$m&b<__=mA#EYٱ@}Ĥ/ex81RSb}cd/yqhfmun߽E.M>熼! x6J]6ץ:V-qC`\iTzƵ7k:tH_#SulˁThbfX3ޭkuKyYHq4F<>GCYc9rBT$]S5X{ cz>ssAC@5-*?{&J6?F!RՓ0JwpBbšǡǜT!5sq"hSUIg/^LFh_b%n p^e礽kk"$8Nޕ`^,z)\\3oS)| &-wT ¤Qbs_ee?-jl*QT%f=haJ/屠׋g"`:y)#XQO >ˤS%KěgP ԔA>)+r+M> lO"В{rPo`q60L-ErX]sPCRι@/ ==Gs+GRvvjv4NÌ JcDQ8+zaJL8R'"d Y01dvu%~wk0T,7^&ví#RYA\,*,$NR.p$0tTp'oMR7Ƃ<ƿYNWս~ZJ-}/GTRv4`l] ,sIﳂL{CNh8ɹڗ`Ms?d&YUH,2#*Oscƾz]:qU8sgA({Ͳ=8g(CW(W⺛rA0_j,P)aq]~ y3] |"_1G#@7j߹Gy#W^: űxrpmS#LqRBdWud_o6iXjM}'~眈5JU4u*G8X1s[ON@qIQT{怱p(F:lM:痑/ LbKuz܊sJD21C~Y}^jJI#yi7bJKh|U}=_+Xт:U5ђi{ôqUX}Lt; $ 퉈S~52RfE⹖pAU= 1:lJ6>ϷYe-* $c%wC+(LW/3 ~~(||=b׈⻔iNīxTMA #$TiSBfA:t׶ Vv# -f䟃輎um ԡ@ A˦AɕJw1 EmIbkmM}ɽ{)xD17v=})u{ {L 6 )Υ@1I%j! Kb/`$dbt,J,$^5+y; /!N}USKi ^Ӭy +Cixm nFWkrmxWw wQ)b=@IM9JFwtXc?6D=0o)'YNίzۧEXTjD 每N N3JKס9^'N-?+|}BXDǎ D'igtx*rleoC%+-0tBVN>yN {!d6R nn򒙍l?2Yz?pDvN"BZ L3Dx9?=LȅKÅRo~Oo5e@骻D'/;= GZaʞma GyDup3'hd$I-Rp;@'&nNvE󧦣*6Qhn@Xq.x$H0?7ﰟo~VkOr^l*5ǁNQ"QRlfJU6EQUqy@ o;E\G$ ]IOJ8"y(i6Q} Q)tl* sūR=.R?FƊ܉"D ZZ#K$ FRRiu^Dp6?9<55 TapaAJU025wZPn}MzeNzV4LJ],%Ϗg_{ (“ՃU=%3.3%|+(!!"; 0,)yI Gү^ԁ8s)z_\6I/] !3߸ax-9044XU>$ 憮h2gnv8e⢤@RpU|:Zwc?elTMjE Vs[ ;0--S~3Rg͕skta?KqU„x59!v_Mhh%z ֧JxMܚޭĜ0,~s++ _QYI'g6>pTm#+l, a\7@3'27G: ,1 eNacӇْv)# c0<L8wKGꇫf? 7okkcW^mll0\7,̑^ 3BI$!}Fv6rF\^ ef}|D褅@4~Kq"p*6W5'y^Th  9B5KnLB9!YI@1Gm U=MMM'OĕL;y<} p !C2w'פaqC3ksEˌ@77c 0<5K: "'xzJBP_RW,8"w ڷcM )IU$77Ł#G;8zx >WSN]7Qm j43LJ5:V%/l?B374!+k$M O ۛ7{qNN3G-1'֥Q85eb z|h{!M>PD$ưibt6nswrGI|ض7=frV:%7"hh_ !B[O1P1r'U$ jP :M$O`~j,xky.&y&XTOӡ%ݲn0>|kI"ȅ>K7nŘ%ɸqzh`kThbisVŭ,"'y6mdA 8Lm7U{_hslΝ;C7~rW_yQ?:iFe~bIa&e@x]Z@Q.b%m,K`y 'HM+{9JnAe䍑;G0*C/Ɉu4S}]iI iBhwPT3ibO7:BA)!JZ/:[Vy?nej&6=kMY䩯W]lv6br2ߙ3wp]M BL F_Oc#G/,NZ3`mPt@AܳwS#AÀ[.,kSB]Tm·EC N n(bgx3w^?@ON/yDxggR?_#|-DS׽IO9Gڗ{= @2֭Qk;l5GXzS ;lIIOC;G]~?L5CF0npZU"_ @E~IYLyge]jfpח8@FMt"PKu\d~4t6<ҋcreX,I6]'d9t<)^hy-m{,t Ms[O3mFCg92//OU,p }N1 ׻B ,opA+,Wvfqq0fjʂ\ͪـ+6 g}XOÀ/d\b,/L|6f?nTzN{H eJ>j [Z^AU ;~ᱢ/\;X?_ێBD}&fev"$uU[CeNEg$&gq8MΉzzREF`s_͹^3ma*n)-)IP=De|2]*OjE.KS3M'tTB=mXeG\??D=pEhu5 ׌$D@~KJ&`ccHS9 Rr-·{H W<7r[~W׆7 !@:11}M'ubiBAFݳIToTÚ8vcN j >poXtXp1y _xi"H*Đ؛J61()a*~XF;K2P(%[6M0がDL'eco)PbEY~Dぇ#N#5te6@W<9!N*~b ۛͻ>?reO\ y;EMG.? ?o{L8p\UjRl1_^jfs778KVLx{龲/c?N^lX ׇǬ } mNз_Irp$<(Qt!wX k(v~ Tz:)[14lfQ{йZT{R;LrT¥44_))S,%d8,ޏ,>š|}V$XL@3 p& !1^/ ^s?)YdOi$ۖb*w(=3u,2;/m$"O[TMWR5)S-2/t`~B9B~lb^;rdmA8o9Jwi'1|>ijq7.1BIUwZCxA|W+oL`̣ N<ي/U8L.>BX%P?9E'j}ռ֚Z F޳'tTs_ԟ_#t֭μ"=7"uxx{]>wq 'H%fa(h 0^%\2Tgfk4E̤" w*? ԔyDH-f` wnRWJ@7ccZx`敵4b҅|(CoNK7[ybhq*PDx*K @ yFԣഽ4ٓGPճ,{?"Q۷-]c/G)**Qv{;dCw4;9:}~=GczΪD-eKٞOsn&6Cowg4QT ^;V[w䃽k y ?76P=~𗢙޲EBU3`śɿm_Cb襥HҢ7k5 w">hz˞/,|.f^P*]@ӹ}6gAgpЅ. }o6lgKP&þȎFvC{;Cs w ٥!fwf&v1be,2LE7~ v32zz>~^7!HgEkCցE2* rF0xܞvVs-OSOL7 -WFaɴK_(}yh6=#V٬ owdXѫW yIVὠ)f3zMXM}oehk_x);}4ވ] }qty l[) 9f$|+֨Rȩ'\*4iQ]tvn)wuWll;%@QTOZklA|m@9P-')l%Wҿl f=PY{7l5^9;Ȇ&4\! էbw"OAO$=*.N&.׿"= YJrdjms4GܧkDsur*"yOՇdM(=xiv͛V`#[^+϶=1yff)l@R"_5'[h["{:DDsڴqkrTػ!a逴 Gi-_ :3ѽ}ter6<}qYviJ'O">/`bg:y"qL\&r|ĸgK $> w.ʼ8;_^~VG=jFA\T>j[Qfq!'t;WE襉kYD4fC`ܣOTuVC@)h;| %ɷ%z{J鋍٭~&l Ŋ-p$L]9'zꐝ?tX 0lFF, zf& 쪑x ,vv#-l ͝]mn$P͟hʘ1<>v۾oG}.\rarVj9&c5cJUbj=/9 sqM3K*d/4Zm3_ s@ꍮ]NvX?Tubkx=k7[1ō0S,jC #\%x 7vӇЉyF lk˭@6..u7;)^be3JE|olqQ*H{ jiU8ቇ6Ts=XW1U}MՍaVoUgGJΝ+F8<5t[^_0oYI06S?P! *FS1 %ܼlrv ioa,NK%M(^Z+Cm+z;nswh3ŗ0!o|t[qW2F~՘b&K-P¡s{M:k4vSᄋy?a1%/>dx,\x|[{-)&DHi7x)c6 1iCgZs,侗:B^׀E4"tft<ΣBI;ǯLa{ 4 {f75tk'֡a/TjZÑ(G(@!׬7!pOqvEp g;tđ ]AZKId1g .zۜmuuE(3jpB㍠kp@*wO i o2N6yŝbB S"p-, oRm$E{8џꌴ8iA+ [@~>`0# 1<6k`̨΅aPѤ4u9Ph.XO} z ƕnn{64Z=MEi`(ww'F#a]dETF! *PoG8b. >]F}Lge6B8Qxbg2IW\.$&p[y$Xy!Jٰ~ZQmN%!*X42(.60JXY^„Xa;74uQ޷QY)\n2Kz#/Z_E,\[O0[9Cը+S]˕o. dhy-ѝgGJ 6H 9ZO{SȘ9>aO#pnJJ[?|?N(5[b qMF.ݝ0 SԐbω$%'rIwk1F 0h6Ṇ {sYլ=n|;W#lpG#+mB3D H? br'~Fٚ;C>^)o h \ tj d gD.PH!z"RR-.($峠I ~NCFRRB'ηlYc'U ofEh+;k/H޸WK?ܩRWY\HxY`^D |Q;L\AЁ3 '-h1w|34[pYN 7qk͡ úN$jݎ78Ihה*ʒqR7e]z =)VN@It3*NΤOxp({D{N4!/p%H$oy(o6^WWvCPo>"O+ C3N6C[g;qgoO'p7+ 7ifebJ> nQ~,2iJ%׷j2ކl3L)Dѫ A ׹mco; Фl"NSρ<<>!+`Ć^lpt FUKA 31{^mXx*jƜ Pٞ[Th`#S1_zBج>=x;iFROTr{.xTGQ(qN pZڸ_s r?7d^(be+0mb(/':S!PSv yR lb2VT?nz!z./oTkt縦ߤ!-N"@_Q 7%7a| Y0CUwW<؃v5&2u{:?W)o"aMNC riuS]:4J).UxKvBT)ͩr0Q]K^vćmg3jjࠋJ]i2ΈM؂0;`pcvFљ 3JGBCTKz-ot.>v-3Es16>}*O%9nc 8mM!hFs #8i\|S4\䤴Ơ?_0VݖXfr0gUIν{!B:$ g?{j&3\p^ :FOIS-c[Ċ-)Lqo҃h(? ;?XHb ^ ' { ߭0-qD Ѥ:v=ɓ0Ժ=dhz NIwz 0*Tiy]"swAǻPKG1c+%GI$nuvola/128x128/apps/kaddressbook.pngUT eAPQux yT=,.㾁k eV.^RYbjYjZZn'\P4=۬L-~߿<ss׼3i>^uPsy_Δ 22Fcb|cvERP-G);C)!qކ:GWn TJ_ޯ@wl&X@g_A*eN@L [B%m,"4(7A 7-ٵA\{TMKl4\4dK1y/e2p ƗXk nD"ί":3^]%r`(vN< d%O,ռ{뱟f-.!w?L9~]qԞ|]ـţS\ԀX3a_6YdA+r7۹^79I_HcJ426h7mۑDK@՘%Ƿ>* -ېhLk':Df#ܻ1ea~ b2pv#_(z$ڦF,j Q*m=f]VJasm1p v0j~! ..dcvl'ED"P8A&4bq:+| U["Wt^ev/W_e 4SH6,˧~YvūbL)d({D],cc(6 t?kW84\,\b8 7؆{s\8;i48jeK:8mBB1 O wFZh~tP)zTYTᬮ lJ,jb-ݍ9i(m`=d!)IZaWpyYs6aOKCh >Xw[!tjuZW+Ei9} x>E ?|lhO٨-'B0M#[D#Db81|_TyAQFPZ[ RGz%F".~P]Z+3q>_ٞ9WL+DU h\~ZB~AA}Y:L(<.r.L4=:K&ėcdwT]cES5>wjxQDR@lNoο2cV,n ǬB*P596MWևs>HrPʀvu-В\k4 3Q?ğNpFeZe^/9I4崢e c9]{Ӧ'mxMnQF*)IE~ $F}^[:JP\˧V~q0%1!_.cšM<c2 UjA0a Q TUFw< 1%wװw3oC`iN`;1[j8|7O>w#6ulF~ UVϒ{aoH '.FBPxExHE[TgCNڳg~9)B.(i_K [u\s] ..n||w#~b;|[5^C1¦JJ^~*, ^jƒT%wo"ԚXsRs`8OQ2x6ջ/:e3;|wJ/}D]|b}Eݛt;F0wwBm(32+'ZfP KO+"y?}5`YˍG/[gV8^wʧд2D Kkɣ`?nU]anhD$m¿n5&Z"qgDm+0S=1]` ge3}[C6DݱDc7jEH91b<3mP`V#m~: A* '<vojG靆8/1>R#ǰNQ|d> *0Y oF91+E$ܩ-ƴE"q mXA}o' 9/e >ҷOpClA3V Y&6ލ4Ѣ8Ël%?w@k̃?V̋:e !܋:LXKg*cБ]yc"As)G ~r"J^RJz-:l.:; U+nԑAt&{Př6ʪ=T!a"'d1_E\[.G.;)O3o3`1^Ƥ\A 5 [ays{fʑ[OqM‘hQpV`yp2Jr*/NY$ܰZ27u_s DY5PxDJNΣJ89-f ]MUbov*f\aQǚP<Ҵ׶~'do/}5nm wQ~zT|!#!fe E*sE#`U!y[to/Ѝ8<#_`ۦ) \UK{.t1tݗ'Y ɑǫBMAЫ)8[]SA)ʮ!^d:m-/0E4dNfo+`Cւ^Z[jZ]'՝ 4(*NTԓoᬺ{ڿk@ͳNQ(QjrրA spV2pWۍ BKVvE 5RNӥ.Ւ.d"ޖ{9?{HTH)xt4>aQnS6g2E \f)+(zjRr0m3y澽÷č*޼Bw;4sv">2NMu[/I$4DuidVKT* q-`0y 3u8ρ7/[¥Ø3G~2b)OOzi&e F8n<0iGZ6!D^!‘V7k'! B`ks$B|(CD2!=礰"`^B~s~n!}f'}ݮ`,5ަW8˸[.G_jo6EPv1O7. 5y>bxO#1 ?yBΙ=tϾvNLl24jj .GzNSl3G{{y!×'̤G= ѯ}*KVaр2vB4]~ C'z,|@:g5tiS7~I+L:&Y&5" _<'A3fRǨ9LlF~dR_2yCj۠tx"}rR*U`A={_Z_#tߔ\w5O8Ut{(GIp 7X5l=o6n䶠FHFu eԬGV#?nXy3W?x԰p @zJ_*[Gr-ᤶA/>'&\׼!HqwЁ_e>m ّUf67H$:/J\̎j(?i: cfYra)RcC"-t[Yaoۨ~lii-nuž,\%k2cS~87ܟ?VbVəzK-N}Uqzc'9`EWo\R)"=ty=J8%ˎWՉ6gMM8r 7r[~z~DAƬDlG& #\f /s24s#^#Wq[uSGI9xsIOHU CKz#GMհJaOl¼X5Oq6:7w!f=Argn4јKFۺ4Sg[zopp 9=#rgoS]lpEr„:leJ ƉKȤkc&]&f^!jd3g3 g ާ@E}sdR0EA{iQoe ,IJ^y&wTdqQfMJ c\ Ak-4u?HL{ωN@ӼT uSXEDlE$g'4(<NJP@H w7/!|!YHT!lx( G`*i/f'yQc5ҥ]ZQuRiITQjCt[qv:%tmL!(t@- |%se3w~ WUCν&9S(/ SXO߻! q.؆,,ݐxfw!)9{)-KoQ`l7?6DkPzrZ&I_ qŭI[ :Tf~_\ 'a0Nr3&zQ'竲u ˒Tι?6elz#(DbD]"6LقIrRq̦(MB#%n@ѱ. &] j@x;"Vicd'8k?*E\bB0ڜcXjGv3HhХu\S_p.֫w[2Aӧ90Ũ1+C1|Z9N91~B>g؊z_uՎUCeǧ X東PD`aU.4"7BW)z9WQ!Rp,X7l#u ~}?4zH?X1ߍ 9NHҌmap6O`f41ǵf(τyMu]kJl]u>Z(+x>eôZoLhN꯴5]9ubRnrp,AYGD1PW7jW~f2BYvQ[k5:xz(Ψm[r9Uu1e+6&VWbJY Gg̡A)ʌ %y^XF+Xi,1-cjtnSyx&lGlb*Ɲ&d Du7zɆA j^t D&Z*_@(bbQSy'IѴ=BG'ŚNhsBƉjM霅Tf`n鈹$ZbFtj8 Ŧ ϝXss=)LEF##V}`]k78WPLY4+C}Wj^9ZB)kt$Gi/b|seH1]b6_KVyUZ[ "Ёr垡zl GqF-oLs`~V-* ھ~$gJ_} yJ"$睴gȓ֓О3/pmd|i]50tح~>;u&n|Fa%Yw ᩫ]EA3K䢫j|'mbF˧,cb-b*p33cYK綁J$v<~&/joZ?j&+N1|ݎQ|l#nW͑Ì2/*bq=3O6)v:;b˯.*&\<UְE\>uB!z̫XsǪ ~{6(>krbĊRXl.-)\Fo[[Tsa2i]-/h&`ow>~fQ H`ǖ?p }{cm @̰Cv5r2 IW} B5t@])nв$($|6po'("ˆQnF/r KsF-5{[_핉2{ˀluUB@dY%iݟz ;g &VʀhuK5 _ }E 1RX~9푾Y8>ud2^Ҕ[d_Xjmw]r/ m֩?]oӨ+m}bk1T$&ΓϩԖ`V"I&&(3-E{`~q,QkvRt/aopR1oݷk~#x0^cw̔5+k}mRD)ҬpÃZAzB{>yf}Yj73? OQ!&~lF  {2kB隹m4ژ_bPvO&'|P[[7$&ӑ֯قBwNec]bFow9 [6u~=bx "C@1-xG=8W&=I7!o t@cb n 4o!c@BۊL@zރٓao@Sp:6-o(F' RrS%Mp yZS&cdYܧ hhf3 p>4+H<ڊisKP_'kM f[ydm!JgI$&>PG߭WȸժmlKR+xV0Y0!߫e2kjSARm˭O 6s.Aز6rr ІXo+m@v[qkl`"Ԩ3[DL@r|&] (v4U|VPEޜ߉i7XEHB]́^ɕdac!2)"F;[zc0܏ ` ҉J>ͧ:/s\9)?̈́SBOITiO'wDER[&K"yvf\2TyU/o^3|0i <f$vq4CH3.?;g^|u\ŷx32o'-N1*eW000˔,e&9EPݚW)<.byv8OY.Tx`ɣIVŢobz+ϴS#6 fiZR |ҞGyoﺆӊI: 3z3Mț:W8@ wʿc [K\&[ zoKLօ M.yKRD;%2I`黓Grq9M t\[+Lqx#zJ%eDϽ$Tb2Oj~ʪǩސ^zat4DC^8v JCl[hJ'B%vr%Lhu?U_k~ƚB< \hآ]?+Uu3懷A)!aCA4^%geV# `kBpDղ#3D>^SC?y`DÕNgl*šKې_+*u(T-n"v-)Qp+e t j&C9 wwׇFRA GӰŌW%חgB1@ PZB5y_yaa.zِ?B xuR~Nز*> TV8\\ӧAMu,@4eW35Ѿs2<dр;^lı^%d[#5ӳYVkiғׁrVg~a\-)/qW$8= zY9*$BIy9ן/kKa>'Re_w*{\){%=8OI*~QAwZroʠqЊ x+{zֈzhts1H0[ G%CMHR TTh1(\ATYFk&S(QPᦚ̶3 ̬] mqa'鳫9g6uIuCv&Mv煋i_ϧ.q\2P)|_e38";i2iKzNoN(M%>1K,)tYM$uv{B0Qhp#ʸ=4uu|5&f4\;ҍ0UЊl`+~+Бu+(]J&ާ[/>-5$};9xXpYP^[ thbBhjvGoƀw_+Z RRe]# .mCe4{º "N#gHb_u-U̎Je20p)P:nQ2[@#~OJb&B nԶBt'm1yHJ?m4AAU0'm{ r*5״ Kt-WHj.1gd жw _bG 3Y0J}/R|b۶#,ɵC 1s%zq LCk|Ļ XYIMy' Րr,;\g@lRno4FQCd)y!0SBGpF>?J6i< mRߡUI;Mm>d=%EjE~t$C 3 &8јVad!r*{J0upjx?|%eD:$e܏q^Ry۫{$6SgWl=żrN+ ݿ^*GK胳>G‡W?kC%w]m_ZJE{b})ŠLm@ 1 3:!$DhEb`%7vjFJ)V,Mcy2j#[*NRGGO=^BGZ ,^Lgw/L+1 '9'"[DaMyoX.OAB#OcL܄YmHInfbN8Lv2U vWi# *b7Jƌg#iXT4fCxd(ر_^"sQ(Z̧{EURS5}%3ʣWEg!~M<'"DRve$ߔAZ;A7y V7.*WrK&\7єq_or}&K2:;ޱ;#yڦWU zu'C_Zl~9Ԟ*4/m'gn#~hۼ>gXkjz̭α}%\Ǵ=VE&p'z)g*k%Qx}(|óe&'㉄&!k #@%bha/_ zRMTW9R0^Bq2{xlV+#/Id"[*)4vgҹ:FIԿk_6=~<Æ_%MK#,yMuM)G0 N="di I}v&w/|~o/-f[^cc;H|(c_&engv/Ĩ:B׈h8j[BgBi!P#l[Q4A>ah8+3Y`6MA`ȥ_[ -2]#TXW,]u2n̜>)]r+NBA7%}-)*@za3Wë mtK(2ҁCOLu;Czx +/C+v5P|uc/*d|F\_'d͉bɢnW UPuq4p1Y@=bܙדTN}r0jo35ʸt.-AA?ٱ8!ג;B 7 ~ Y:el8Mm TҖQe.Cs?ﵡ*R4"ހSpK*eX8|dͿgR|9g0Y"UdaIKEEZ7kY} wtZ]>l lb\`HZ9T@SNRgeM_@&CbOOzǝۄ?uQo+(", ;ppƬ#_3Rrzra2\iCE&E7^?lt]uJgL<tȕ3-QYF):5%>1X$ezc '"12Gb@mn%tU'{fjXISoԾf)| } -zPp[lǡGo<p#*˨0mXdGF `dcr-40ҜKB'fc?pj0-Q‹P )0m~R=Z)+b+ExNJ"\-(>71+0%1Nh_h>B+u{[!ih0_rQ:@QZ3U sEGRq\LSW˱~2](\K<S8g-#{Ibpx@oDZ;MMy `H[ŭZ3?fn¢#Lf:n^(&E` ^R-KhH -,+BL%3"GY@>NL2~o4q;;FCՈۙL-PBm(:/WN X#G;gޯ6`A:IY~ x/`&rPKG1CC Enuvola/128x128/apps/kalarm.pngUT eAPQux y;"eJ%KdMй%~<$F,/Qzf>THrT' 8bpq.`^">dj;MRp'Jqd( !FLg@xriG!QY _L`2K=1i_FpHkM⧫iRэK&R3|I'ў'aJ*DQO*k5PEpoxB0a=E_ Â-A~T8ˈN\÷]X24,: B@Ƞqϰ7:O(7;*-p%E!Gkt <2bN?PoAjES'ؖ3|ZI X˜}͒v/rCHg7޿G4m3ǭ(ьUXXL~9篽+`pു˖`WDvTIĠ x%rΜ/'DN=&xIް/#2}[Usw/K]/} y{K68\$y-jx{[J#UG֊[R4pYRzeN-+LxGi,[K^F(4^,.TJ gF9;M`miG Q R(pAoܝcfwUmA7HUKB xϺ-X=d19v~1`sۉJ.PᒏTU u`'WchD/7}FL.cO_bjTal i&6XzZ}Zw`%???͹sHYϋr=o$\g rL ܜ]jZ콁 0)ECw]q2Z1,Sc/= 8sG#jPju|>TVnb i ރ ^j\u`B f3`_w2GDLX3 jVkjnڂ}!]4gޒ4@f~Eφ{*ܙ#Jb 2@JκH34s p2oڧ3,NF℀g#԰i^G*[ m~[ 0լc4[3խ'Ce$xiQbL[0aRmU %/KhMNb9˾ ^r_Dj%f|cBcbQE* yla8*%`c@ÿHVXq8rFo4$ 3gӅZc!-)!.=_W 4YLÿ$@{CtB[pl 14҇F3؅[2Ux]#\_f/U)\,+IB܍JsK;Q+m\w(K"RY>Ž=ۮէ,f.r>EJr@C(Ӑ2RL'SpOک5\%ihD#f4rRpv*%P9_WlxIx^7gFDC:t'H8 ,cnoqEFW _5$:q >hcO wEo\1BY/tVgР[mEƩxr[5͂lƾbv<9@k> m|z+2BM&͂lEX^1 Jp!v0/s59?"^>ľLHNEh~b .=>cJ#o*q~.UjL?1{v^/SZ| .m~0o"I'4B _ )ag|v_ѹ骍;mݓ%w ( 3PlϾ3 ]ض|X P>*Dg7dïqn+gG&혻;Pp _D ϡ,iƷ1SUnS3v5g(1iw 8pjK wT gkbvF΀Up*$^6[#1[%h&!}9y/]7F 7c'&5r/Mbt/uz4&̓qO/TSXu,aw&t=D,'4\ ,32y}wk)W5C*2e,(8JxCCO|^AE?p7ֲ10lKXM9stƷ3oyۈǒ?yHb;{8&7E[x4"b}3bQ5(k>|NEw.8˪sܘG$$׀ b|B;6wО}`Fٺ.%1omHH>k;MH툡=p)洙(˙٤1VUFLAˇkq Ø{ 9%n>S;~{yI. {˵7 ̪h.(,eet+b[Z3i^a Pz-.ƶ4_0RXwgX1G Hj<.UT>)7y*)=UR[0ܫ M%+ /t6jE,KB"7EhY5h]qgpxN>J)p!?:8kmY p?3 ˃+c!ɒ{Dա)c׎Y`p.c͝+}i(q'eio%!ż[rm niY97œfbS"Jj_XO:ev@adFމa($mO.AXoE-ټy C{TN*V#6r̦ [ WCNgG~ˉg5<7r̓x35tG.|܁X䃫+rK{*|y-Cɯb h:hs{]"ׯ2'tYrg-z3Sfv!11՘Kz`>;%݆y{' O=nB">S!%(NtdBI"1_}\|$$ ]CD?,G;,ŤF|z[.jsUz=]c-h_K_N*{-Z媻W*CQth9G+딎mP&z4➹9;a^cӑזpP 1u2w=N!m]vg]SK`MȦj5vB-Cmk)8F}Ɣp Sgi4+XP@Yhڔ~ܤߊXk;͑Hbt3v %ߖ|=h#9m] } k97 OPѡĵ9ًxE<,<#|ªL܏~z gM*Pd 7&6s67<`iT0DM2lQɩV׷_lYi %]깈mll|&ysq(|]@<89B3ODt>$<濥J(v%rRI7SVx/Fzyů°ЧSpCoXmeWaJ캺P/ u"-[-{拆laA&ߞV0frD9KȨSjF6*ܥbnd8zp,quncd̨;OfYfsWxן8sfƓޏZ]A"r' Aۤ~6kj謲p)uc~VU-s9-Z-#跟nDssPf@nX5s#P$~dV"F Q`3Vv3dڅ9&Jȯd.Mdꜜ8iƔHdjavy 甈1DT{S-p>_3ZO9h?*%!MHtDJ{B[$/2?RCCC{ W+YJ0m$[CQ>5JNע tC_# wm_#^qw,N#t4,&u+v!CP5f,,rTQ ^G9<_NPu*z^3 d9?:8hޙ]/+!VVS&(˧SFOau!Ͷ Μ#)k A|xJI- =Նu!Ճ0\zf,„~ɿ?R-Hn%%f0GX3 Biu)i}Hm*l";ɝ~/ ܏*=sI_p{ 63YWDHneN;NA28M45^GY.oLUcDBj/-gn3f?G8Y-덈L$7_m3JLn[C"T W;7=FʸeX"񮍖SGC$vhϼqv ;M[Ϭ2B~# ԐX6](8kaSU~kc~oit$X66[%vlBλ|68cn5myE=\ ?~&nR)b]UJWѽ[PY2BC(DRS3Zf,Cڂb ?XTH=/C$TĝrDj=Ǟ=kz?g7"1>Gqo>%t|P4A۬"yX02VEr].܌[BkvY^'MY/J w[i0GpLI&-D3)e  D5+M)='J͓u[J~ɏt$gwQȯEon1 ߈#?FY=xmKǩ;g4R]`w{-u7! qv#WZ "^7dAx;l`Z[mL5š˪5ơLp8#ȏACb^1dE"u{ ?]X: nՊʧ3a}"Noa}v2Tjmfn` sSm#ǻNKc>E[fVO*Km,NԻZB ɕ.ոJXYHLɎ2'Ѐr[߶s)9JY(h|ۑ9 tݦPRYjzY%Iz#qNL2cmew̔C BHE&H5 qq ?ǚ8$A1btOثLGH O$o5 :@3:nD*H'iu J۽92e^K>i],g1[jvJ.~kN58 -3Jw> ׳-k}x?:17cjk^r/S>0FpNT:Koÿ!"͒iu\?%;$nb;i7~|rE8RȓWZh&.,/ >3w-ΧʼnRTc 8QׁŴD{u m`Ռ ^nO>dKhW8R15:Ym-/*? o|_)(zg6){vM)?nNwpO/YTWWGU,M8|%NQpShAY INsA`۟ԶB6鷤y#mJ(Nv"EAsV\@RZ1FAjAF?3wkh7TLrYpL& Y,[G8 v$XMM_QmFwLx?[^0BSg_5%d$*|Vov8ǩL21qȓY=mƑii.E"Ɂx$PAfz)c#'qcB"P;lN\%%efT3{ 7QDuI80ȔA&af@*Ml 7I^I`r^KavJQ,oЯ|L z f{>Yx*ũC1 6lj䤜ī< ]OZDeSP2(1'JѲnvN܅bDlHn7-O Gз7H.sF~Xi+jUВ Vne7NÔ¡*_rFTF6ǝwOed÷㽆Y|p%q[r:`=ױCYFl5% /Mng﨔I[J%5_^%/uv3h8J诚bAtDBSk;qʯ.P*mZ+X{ +~_JVg鏖+!<6=9īa$+›5஺[ EVuE#bvyў#sd4-Sa۰XI'T= 9q#脏fmF!5-kŶ(g5%YI~6Qh3{Xl@470"fVdخ%#iaGx۾B坏K eky$"O?I D;V"e\P\P"L">>ȡ'L:5VR Qm2x3=_^U ^Vʔ7G:: <%b衡`šLMҭX걳"hMq['eJuLNLNi6L{P nnW%/ i^9I{͝g7Nj ߒ,gD e 4հGP sƎ+x/zRK:ۻK܈{`k_zI:V2BYK67 gע~o+ ^30N_i~&9?ڂqoRU?@> \. ?} TߥqV++ ]]>~~uᶚ} Dij1oN~o養c9BӮU&Ru50& TIgܭYA蓘!m{jr-'7@D55=&BǡY#w|W8I!)!#hkJƍ(us @＀)%S {K. Ў͕~o Y,ցmgJUzݨ.@!Q̳.>wѽb*-')))vp5WzDD"IYeUڦk6dAۀFz߾x4 p3(Y$E>k꣦PeOSocw¤ Q88[p6tńQDŽorOjq} 5 &ݺu̒D? 0o}˽ִrSɝ^aRrrԪukbTnA:1QvљګJ<" rx)`A"/FNNkjj"'ɢ|KMwhByO{zۙzPkhx/Y{?';R܌Ч{kfM@V)]mˈ|iuVy\V̀*0pb@W6r.y2L-_U~EdsRJTRM;k#W>I\TOpwhwGzsF˞q$e FTmR2;U\n-;%fjC/Rg0}:PPpXn[]S[D;o/jWD% v$pBp&WfgN#BbBR0hzBAOwp^2j(@ OWWJ45'7l:cAVW#3zsv}޶L )Ӑ%ՒUKY-!ݏgI1ȟp8(ܳi: * 7u>]O奈8ScԍoN(SBqj[uubue%jh9&)?ea\.SV^:" ɮ(w'b Z Vp>0qɩik J#;e7AKZjwf_aېy'/r7O6Y׽v\֤N ݺX?>z .?Mބ>_KdT*- .P(,+IY7@9Ynhq!q|ʲy՛B˳\2ylٯrz0ݜa6/.d#l؜Tp]iϢ Y@R32;)/IvH ]q^2"҆٤*Vro8/9ǀT9n``_HYI1u,\>mx3̜W〲;P2._t/ h 2,ޢ7?X:yzMe RBigʨe-H.3Tzu3UDfL>3-V9wqr lc|pr+UpSHߝ&D}I \@-HiͪesO< M]Cb3sA &Q@5s>gA< nND)K+SW@x3E)9NfP_a X0bT?f*v!IQ2=n}Wlq9F5J?b ĜA9v+F֡lGvy _YMBME_VFz@ wƗ6Wf}z!l`>+ i|WLc?G5mzvAӚ*ay4Z} ޲K!h=qɟ߭,Ggɣ'j=qLz/ZL E*9Jcbg tJć_ntvw&=KI'lAYPq Ar{~z:mW k o[,PV{ Sh&aͪ{' {hV!F]:ާz4z+ՙ1S]6`E -ŝ(&gƝ1; DʪSBW .h%,q1~d0:Fx9A R Nm5egCFbUg+3 ٌ4ي\dG-1W0X M{Rs/\.fxǝi%h\Nc&nA& 4~fl˕_龡5R)\;0QN23W P@*$Z]}{|2 *?B[>ɉzpKL22|l5oevCoܑ[Ի=6ݾAPH7o@-Қ '*vd6n%mZIlzu%l!=Vr;R4rUeGTNsu\V."5T#Ġ |ylD7Lq`?&}al ,1nU=8mumn})?ozr^߹G`[ZLt݅HLw_41$¶'tFti䗦AS _4l{:P(ݹόtm~\hD?S̘@d1#%(yJ,~~qn7𗻏ݾLػ1KևRk|\X,+$<L܆)L4D> m:N19 +x,N\QKE^^&Nj} /^߾TZB P6[Yg:ˊ4a+c)9Ez[Pd$> XXK22"13F֣[3!ȁ`fOҸ:t$q bv'04U8˧8C`>tՠgSNZSrJArLHQloQҷEӘABlUpLMϾ{;. TlZ+Wci$^"aN%Ѥ F.wRU.i5ՙ¸=i+ѹeFdr`w ityW%W6`BɯeY_1-nU9JTO/ڱ[XȁgcЧ7v`]4~Bxfh#|:6;Og$fydG R t.*PyV̼[J8Ll^z-'l.K0O~hRއ@~DjER.TLOӘ U+AȄ^$ֺF߻;gd+}>}T,.'P7D"jMڗO}%G?h8I3f1 ȧGB<.-@֒Hz(,r*/+ؓ9f2Q\IߣTz,nhw.FQlc%}>\N{% EI/lRyG#{BfmwɔuTv枸7}G7[Jve$*]r?W>oZ.`}?|_"VwPUʟrwHknT'h-,܃n''ZyXwuSC#d&:?L_Rcx0>y0jo~m2e7ETH0}*F*35_"s"YY^yF+s`-׎3R#)PmPHhtE=gzIS=44 c3/kmnXrB #EgJW@Ps Kt/<66a >yc]cV?;Pq'`#yۏpw<2^MH>1$:Io98O1#p. лD| &]fO^EphhDp},k\&/LВѮWڤZ^i`YU1g^!u'#TU@m5yi]ބS#'+.`$pV~K~9>qMڋ 3sZ"y ~Nh޾NӧX'OFϞ a{{S9\LSnhm%Nx uZo ;VNӊD%w8뺃LBZ㸫¨n\nK"jm-<ikrY o#zzYS` "CvDžLBxܜQ8n6`S$sjWp𿞉"RЙ]>㰥@wEwPmIǿEzPoN5.Þo\' νcbW@A؁Kanp6YaannϪ סO;ւozh\!̭B2e6 u'q X)3"sgs#U(]sF#܃TĻXۘ#sV| $۳߃MB^T(585Wd gBwNbseϥ.%㎃,ޚBO? X#?FRI>S艢D޻^+^oGv“xS^Xk'_"^ȂtI)O?F 9B%\m+"Ll]O"YQRấ{e"]EMEL_bR1aIqBr7[8e*-be2J{C qGtBHEez{|c-%xL<( ZqԼhdfۄ  5QpnwwYR؂%nQk/Ž6`w\o\jw8ɀ1@Ở:`xvf vV۪+ef6N;]( FZh'g_oY}8o(/x᧏ qIMцG5!{P|80fnZhr#d > lRoY*FHP_ 0V7zu[FZA<!}gžcsU>^WIn:Uی %A1A+xQDLh^Q+UNŊqD\f0.k a Vkd]F?_{v*W3/r-O ZPW(%/-w^e0٥J=V![1FZ֨Ȩ,9Q _Suf i桾xOMJ n^+2f>y|P+?T1-fo.Ѐ^Z;1| FZ p {"o߮KU]݇(ն+^\^u9£5@܎tJT*.JtaxrK\Dx 6K ɗ{/g,dfW{63hkq*PW(w9@65W^Z,6``Q[O]r>{h+8D]-G&eskP\fׯf^Z`IAH^xzU$IwVy<9וrs)Cp_eÎ oujNڵ.fV8՛΅F+:v.4+lArO=>;o m7 fwnX fW2ZPeuLKC(hh ۑ We7)6,fxY _jInd0 NEf*oE,u sc&u&IƧa%5ZNB;׬CzKY+Kzϔ6hmOWc TKADT  wFgFo"#r-`bڅϸc+yhVj/g`Ak~)NY(4Embw~DB. )qiEpOi~akyPkۋ`(~#< hp:z/-H陿mS=˾oD-WyƳ-09Pݸ&˘[wԲKqC= ?އc3YQμ GYMF8˕Az" ZJ#=6x2-6|@9q<8q,dgzI/e /( /5 fn{;S11B)$ĜD8D"]qvDeZq._jו -WX7GaOSJRFakh|/E"?z1}? n[c{:q1y8MܭK+m.XsHI#λf}vk5$sI272\&31g!~Y,s7\iQÊ\[y'"Q"ʷbKW !N܎KO:lbO7%~}֩ew"saU;DFY~SfO4s#>Ħ8RۜTơn*613+J5%]R+\8>cj坃^a+RWSuuvP\`m'%RHcnhge)"'p;i ogUKjr N:#GpS{ \NxlZ[ˏ\.>I3tFEc ӂ[_^&n<yHȲ{VLgY0Ht`&R2^Rt:` Xu?-noE7`S"nP%[y|OOdtI ~9w2/AnDStO_˥lăE.KfFhCɦ_e9aU@AFϜO@h[\ [%~#E5l9Ni)SS]|*MԅԚvoD(׶d⊈ C4 \A~>%eOX?PinF(UeoW)"uXivEuENR!h<DZӵM`๏.x59bE_pt╓-=@әI b?PQM Ao]dѹ%3t DL=NѷΣ.,"#ͯ F_s ࣚJKCt?t luAo3n1cx45-ShƫP@v-&-i')?" Vf,aV"@.v&34WbE7큓7w:U0sly(~O3&+?~Dø29ʃB|7xo0g[1]0%|"\ĺ 8o S o=33K H:rM߇ԡgp9a Q;{cP@nI^Bn7nHiҡAG8S//#?'Khwơ'4d:W\9zv,bJ3SzQ4_E+̌{e#m~nh^_K:նU)50|x" IvJ,U55 |R.isBB>v!,7(:c ]&j!'B>\¶$7/5z =zލY>5.@$ցRDnpOZ`@Ii[5WOֹ͘mCcż<sI҉qf6<"c¸}Կi2̮ qRÆ~c~5tcCۊra?Zxl J<VAf*ܫw4BXh=x&tׯ6$.Zu y9}?2T*T6J q<-9l!ߎmtkE*r.fz^7U9Lsb.y}elF zV(404"ywFuqv mqaOIIC[gފ5B,@if{NL-GAX=*ɟ4?3]"ك~ K [yM/V0Xr.wi{8eY8:WΟ~T록Tm|8o䭃8a=qN+~-mJRrЫM~$gf]37QNoGඋz\</76pL ܠ~;IievXD͹KDF=f,;(d57Bqfws72ȁT2o/ 1a5f?L">d +іqS{a܌DA-J\il6}4!mm#R-N #GE@n6RT8Z+ٛ;-d%4|v&rg/0VZյ {0ۘ˙CZ9μG*uά^if\$ mdcPY^j#^O[3-9>؟_-5 ( l"ӋSV;8rq&m nMPj*9}H;w~cزuhoMJ6#xjukIGŋaZ4 r>bi娋bR^o.zqg2ϐ{a KЦfb#5sYA9dBq8gOn8 MO6j.:rrL,ߏvu7Ym90{cWQx\6]`"˧ FҹgKê#hR0qJ}ܗQBmܧ?9IФ'1yGTt]^!3R3| h񺘯_S,TUo@g<@>Obَ5u:Q'xiƮ|C~Th9X!se [ fGg?^%{#E:.2Ɇg\ҕP:!,CG͛7/HssM]R,0=KxLx:fSu7_73n,X \m9#0Xb gwmwp i˗:]|& i0[kY 1$OAL,*/m[3݄ '~[L><;6sN$ɛь4>3h-8C30fuXZ\ugw6;L&mcc޸q#zϞ=vjԼu~2=9Ԇ N ,|;8X}p<` j8W&WT*dow[ggg=!5OaZg6Qh#R#q+u$ %{gNP L&ſ⮻KTيvOX[2p.Ĭ > LIp%2w`=JJؑoWRMLjugc8my?z2Tta5UրeN}.a'dwΚ>|@ ?Qq=~b{n!>:! a%P{AuvH~( h #૷o߲wl"hk׳wxE55E,T5Vo[F;LWI<\@Z Y^h$uFWhJj_ #_&'Gs!9+f4~F|e%IIHhu+i LD;Z,EM:T;*&F%^+wrW_؋j͓=BCcQzzzJ4=4Vb :P7ȨL{Y69܉'pFz&ypoZvncڟMl~9I8cff %eadRn,Mx;h뻩,R=7j'Rn <#M?`, AKgcׁ~`(E&T?x;o F5OX%\1d<^D-,g(Sce߿qo.Acccl-GY^(at2b?/qՉis 6X{$|7OO*ƥPN/(Cd Qi5+?=) @Pi5feO"i(@WԚu>%l}:hm3o<1t;c.dDhWU[L67<%8nƔvoc Sdo"z XhUMᩘB{#h$]N:ܙtQc䐎=q!HGKMbi\'"MpabІ፬,mje=VV9W5n씉AM+=}aTL)x8zU>tz,TtCRS* % ̦jiO nG5s .ʓʼ"n27Gn11HITgي@Kld`}vƝ,7y߸U 0Ot T[e7ҋi r{)#í':K"nOR06r٢C*TV1F!om:ͩq.P6sԄ1)݅spr$I4FLc̆. Kl`d_EVkAY djǃ4yb35pI ?L#&,A즋I0fpm|Ѵd g%mpn' b>~qxg{rQK݀fkm0no ߿QGϫTS70ua0}-u'6,ԤT}))'t8pUE޿G ^GѶ$ TtEbIV~}*[kz\{h̉?{Pc)Yz^Gy^6Oߍ\!&MJL'f E5hRa䊼RI(W7 998f# pFtϸ2q$ r2fEؽfa:M=}a_GK (|!Mw{w( Ķ{vGOG0: 07\Y/IGpF (^!FL1|sUqd|8}%Pu tNU>]n@g2\ Ի0fvĖ0͛-޴F=<`8 ]4 : 02\k9DXTGZPP'P{!f.`AzkxL׊}Թ 7ZZmUe owJt6/;H<σ,aA,|7G#l9CPSE|o1 ?K>Ml)y~vJP2G!+ _R[ƽq&v e@vVb !רph-aXq]K&,/gʆe)WNug{.Qx"k7T^nmØK /ȺdvQF;0JoLoa\>x.`N`R1FOrV7<>x TV9f.ַaYiq*Bc(W]{u%@}Q3.X/ɸ&\ .?c x9Zd$8p@1Hl[f7`[%שϸN4o $]zvjWq>VP>اP;l6c$hBG*ݼb>]*yW`k#*?:ZNIaUjc}A'R&κ}~if,iqz6JUx O0<, Sg"Y6b]bWZ6!15X2lhKύ 7>1\2`vcgM4o%j-^ 62\:%QA,L0 J-H{Xj @ U;OǿꅁVINHNHNv|JBd j -xLl2{0ۢV U "3$zRS]]tuI,{ßއb^ϑw`r-ھUGEƿiXw`., D{xRUm}kN(M׾h9&NWe) l9w1U? d7g-!N] AosJqłgS˴طR*fc _0;jUZ@iׁeel*.̸ uG<YL@/6-=9[eLWxiLft9 ۝y'E6\>Vmi8''8;d\ f<<-'imL͏yb/R׳Mv# ud 3jףt9vb-ki>/'-s(ZJ^0]'ѿ,ͣh1m]iT='Q'.nkM:J˱;.ks9ؐ\i_ZB#UQ<-:mS˱joٳ\0x?6#p3KfBZ%ÀΌpߜtLŧ(lQt #Y2_\Veʎnj -f>T7-W=֘ϭRq@ڮ SkBS .>]54m:Itxhl) Bܹ(Bg [[m"DșK2gF]Y 7.)@$YY3yV9=57ܰf;tol ez~신Z?|ToA 9>E^gkdr#aOg~8D;WE}q$h%yhw7DRܰBYf[v=] g0,.EۮT ,Ь u* q0~IY$bVX? u.}dWvDЫy}rڣ/x dNOz .}g6S%8 <]+Ej̳x5R](=p p#EA~ 'vK@xQú'/i*KB-Xwk6^UpY>m]\=Q>ڻwWutmƞ9|QvDScsMX{k6Wd] 8搽Jz amp =-jqFj Y WyM'6S<&&y1KަU+-!4(g9RS9b1R>0ާLa4[ݸ$gw\O&6'}qj?,@bnYkVUNǪk֮#{?#P_~<޹cG |trg`3XuQE(>8hoM#_l^P2!)U3B1|yr)k#;V *U*OemO k'(IV#jXԁڦxnt-(=Hsl~=H,|h{'/̷T $lr Cyh e~ΰDo5Nj52 cYOːc{D?OYC qW00<*懩*~ԃ2CtD cB+5j f h9ad}4(#=,`M|F6OK)(Ccy.)7CmDX}>_:WZ}'3#I/'f0 |P@0(٘IϺU-WOҞѷO k !~{#g9VfA? l."oJvDS/<%DX뇠rlv#Oq`Aelaw[-q _ &IFqΪTs9WTzk6]8he32kbǀʵ^@h;Љ 8a%ZyaVgOefn ߺH֣ծ>fR'_|- H4[ I b`CEFC•PN#1^b)T2%̠J3˨9oMvYpq{D~TݗaJ~EowљԊ+3r=ٽ\0 W N o;RKp3їђ,[h{,o2[w}'Rj+w2ؓVrb@U{كUVXlogwXʦ>ggX~rsmz5s!PD $|4;M҃ᔇS`m)B0n>Y m~:~QT(k0&}T1b$+`hz8/d0ԓsn5}Vweەj-{cOEjPW廾e@ns b)kZ|!XyuNEuƨ=s5;VRwt'(E5Q2sVWvX lQͯUOWU}!jD0n\H}O&#eowpWBANZlx!FzmsiΘlii,gB#zA' ]xUzpB=Պ?P R7}l~2{}R]s ƈ6"Y5j=s:U*M\B"岠@&imk?Dep:Y7yżJwduÐxz4fq@d5t*skv~vϣ;pTpsPA]mB$;﷒&9JS`V ?BҔӳD9e4Vȫ\4AYīPa$jغ f+ԽBɾPu,ڤ1$@ZMz!pdF:!KOEN+ɗT:<U'_|ƷoFuuvsp^z ЛԜQL5]n ]\msg' M o0^- ?U _7͖n_O#8A?Gz: l- )إpd>K[^y,z8fGb-rk,ށ6wtdRq/ow!2P:2z*-ڳpO2`F],(^gbm6j9]#n1k59r2M2tw氎Iv*eNdgVgZ V͑ѲRL홚3ߣv`6m.r;"[hժ 7!ZU5;>?j4քEgօ(hQS`*(bCԐ$K4(aܝ0l:vqd+'EO Zg3Ln)WSV{hx-x+4|\?y#매4/:6ju=I7{yvH87WѡhfqߠŘ^*9rok=Q>֣] -Nӯc533|m&4o8RN[ [a 1>5xQ:=˳R,cLc-y'KrhU}гUj]jp*M8IS_qjo:"5  JerdNӇ_&L QC,+9o *SoߊVv}Ӄ}b9n=ׂ8 Չ3,8IbFo_WǽLu>o[DX;k'\Ghӧ eq{7oUR>!oE غ0<ӳ?G[/"S{~fS6vc [>i灌5aIuy*'좠(NI'3\KqUK&ˎ;J̳ԛ*6*JܵL32I{fNi')޼"]ÑʔqC1Y8\lͥp~@6|g+Wĩ sӷkl,r a<[syF2F{+50E} @[l/4fjt ,(lun@؁k<oϬӡp' liy,¸0>+SR>hnOg@=kSڴm8#^ٹ͟opu<𙌼fX -HӌfQE"[TPJc -DZ]D`|cj?wDXI8"}+VH vEcq}1{dGɉЋϖ+H@٫N"*dLz%d7 qxA T^& e%dɝ??e@8<#Ya޼KhxyoP*ؿ &1HvMnj}WUCAhqEqMMNҤ"T!}#]RHwRvnU#9"fjj,okۦQgZw'+GZFKۍ %+R\w;Ikc!dR3Q'5sT Eq럅>edAko/}UץϞ0aa\3lqRPBs8e9Vx;0-_wχ?PKG1o#5-7"nuvola/128x128/apps/kappfinder.pngUT eAPQux {wT[$LP E"Eʀ\EAAEҤ۽\E DD((PB"E[Zɬ$s;95DuCuA~UgzyG6N lGBl}1#:!*,xw䎘1ч>`?FH(R#<<8d c#CS$t@< E[ɚ:hѯG_4[.;99ԲzjIS(:l33;;اAOw"z$*f8=̯VT36%:;// (3-q4'Vv='!ʺ.p5uP IJ0SkůCD*t˾%ѪjN}kB$:ʹ ŋP(Dp...pW:=m>gR}? S>Anbs|eQUY6p M>8490'&\.99Nuug@KLJrIܷjY-03sYA:ZL1 A>Yp4}…D4/TЧI;3~6ޒ'Һ%eIC 8Q:VF $\Kqh;9-X\.W]WSgn/27~ś#Gt R*Q9 r,.sa*kXʧFr 5Nq`VmF:AB?xbI";/:-fY 9/BOX.{@pήm`+ ,Ȕ(CCލ,~n|E^b'X24BeM)6ӒCB{7@:$!U{4r#diwc{vD7997=$ EB|. vLy}F؋~q#ݦg(쩩th"NGLn/^3ըP8ޣ:urT=8屋(G$u<' XmBwUu}N.Oyv"G]P:?{ 3ݏ.;\ܑWeۆ͇YV-0.jԇSOWI+҉?0a4>δ1gd 죰uǺs$ʧ4鋥Ƅ=B/鋆{zčCȹJ Vf;.)QQ3+Qv<||>-.tOlmn>?A NOӜ[ uQoFQt#.N. $jg}1V1S#?⽗"WI>\ 9RkinN|? ]!{5_ I{Zio=}[ 43jI nA vy0$͹/B_ WAwZ)깢hOayԖ&e~!ۂ cVhh'0 @4o% CPް0r\{"_98^ ŠT񃡘cԇנ~3Iަ1șݫZޱcaOjs}b_Y鎅TrQҹL2 CM79bMu}J%)X CZ[B|g X{$J>.9F6>h.zyZ}N6I+y(ʳ[TEL\-pKqZvf6peH1/83\c<5QU?-vΏ'^.Ui=?pΣWbXу,`qbϞn\$_, \8/N[˖%sPׯ{fVlgRv&59mzr/.dئk8i|2M(jmhI%DʡaA ~GI%uɰaٷйG֦>h+XfYE B9"qMT[uEVD6};Ýr-`Aq! S:Ej !Yh%77'fNtJvwSҤ>44FPQZl(Y{㒱k2?IO΃EtVTRTCw|/}wRabπ]N)z]6+(d* םuk@*S ޻ AP-gu@MRK˗:UۈG,"|R*|9d=T)?d׮]855~^n)Wztݟ. 52&{,rMR.m>[ԞT7B-O`O* ~72k^D9z;R+D ۑ2=LLPW'֑vfܱ٭Mm~Iv9/ T:Lm6Hisu?<ݫ/#&@/3ݣiI 'g]ꤤ3r/sJ _h@^џFg oJ~/*ъLyo@% A:.Ȝ'ixaƩeaJJ !v+e"]m@5sݍSNAW1s6Ep9OhgLJ괂g8+83ƆW\&HAQ)d0{x?l  ~B7k\1 C^HA#^a & M(ozrJXd噵w͑jm7KNw;}s] ?FUs~_\^ X0mg|P|9E8FG˵Oq~6RqޙΑ݀8=r|ŗF1O*< 8::GxE)+oЁN*pi] ؾ5$VDMNz"kM*Isk P留* Z N6krz)q4"cBI'xF_-VL㶚L 9ZAZ_lV~?5VMה@6j#XNRJ2k*'v&ODQ/xQ# ߶gSپ)/t>Q$ 峷vݻW2H([jVW{Qq).SzKyb§H4&cQLØzx+Y xEL[AUN>ǨiY̚Rv(aX Q_EVɟ^t1s&-Gq#F7Mo(y虧A\Ltqrl;NqXZ;tg08o-a ~<e|gǷu_#xrG rfC_#]ꍽcLӷNqV\`KkK2c!C شxp2YV C'''1} Jj0gR% {5:RߥUH:juoV屰c>r0̩{vΛC]#rs3rH*; +g܁ ojzq:|-Y>:WWd3j{qOiQ5ruvEvT"=xJcLeywa@=;;Z3 ӯݣWˤ6 9.P?4NGOne wSKW|倢=86)TPl|1J:-< OW"םlP9Rw簾}F,iD ,Ȣ(.4J6f򏲯>m+?+[oՕME?YY|07LVu(54I5m@{x'2H.9EG _,uYGc5f|:-1Ӗ1)?=TAVP^h[b .iSΔ 1;((G?j=&6(6΋MBW'nS+ư;; O# JA|HY$N(ӏ%uemJt߀t bzdf;l5riA.04K:~+\K^#UƬ!#I 9y 05!-h;^,RŗւBHК7/ϔ9]7YajY~9SAԥy2WK<`؂VXQCZՎ%Rٌ7Io"DJsd݉p<.}oav*e*9Sm_dd$",KO˕| Aϸ544_[;|dٹP_9)mNDޤ$`D2};m[JFW;ƈ];oIфw$l+ .9тP3:@F3)h>*N|mޱ1{^)s& V4 W8"eQqU2X_8O9cQgz~܉xWyn:.WtSaYJ}7e㣥FY%x b3k5XfEWxο&?X 𡯽{m0|f*1zMSۨExz:hQKfNmk{Omy17rV'(Ҵxt*5Bڨk-s0K2o^YE286akg.Zgf Tb&/+YP<"UK] ݽN9u&~zyN-Zvύժ /JY&Ka\pBg_F?>tg(_tO@E}GyP+z#TnACAdB"CܫmnÔbIǥȒǯt|rPu|$ASGRDڧ̣ڐk49c;_T)_Vs#zЇI+9dL1l\Y/ïXr+".&8M*>BsV *$ mRCG5)po6@XK~~; Ŕ# :]ާׇ8?YﳺGoG̚fxbR׽K8tnG%\өW>a f+lXSϺ`g-!Mk~j>Y;BKDMSܼb>/8lN2KIh])'%^BJ^G"/2b[Cjȕtq*4}BΟ=@pP0RK)ҷ,FG}Rʎ6֠kqvd񏟍>S|"[o0;[kKvQ?@<|d Ϟ7n.c#Q>t8*?u5vU%㩤ҕ䓽nMqۀ(J hͪnJU,I?YHKS/Kq,|S:أլD)3aGB!ڂ9[l}SԦo%zh<Τ}c'C_p lH*`ƶY (9˸Dw3|*v&:APmln?SUWG9M`_T7hO(zS( )=`z[SmAz8z"b|ѓog)!oڑiH qnrZ9k,ӿ`s:kV2֒?.#>)*evxVN-$=$Lfn" e58g+A-#ݓm"EH}~[5FaJYV_Ϲ+ɰvSqGj=TՊ,E~*=cL k4\ˢ?B'il@QqS`=QVP^E m DoG,N!Y02,%( oPsqF/΄P{xlv* ZWoBs"QY^&&GFUxƑrwNK-xgo.~ن%12Y^P^&وT.Yȇ;炻SRzLvYiف FUG#&MgOXk.g(w5%N7X"z;d`H2sDδ\ɾ+]jԠ8[_B172ߢ-^n)0 {H.<%SX4& w%w`?#srxE9#L& oÕ~H>a@Na7Re {4sNj_ICҘϵ|1Nm#-z:~KtJ?F*hCPg5b_3d{<,SkwWfr$JAщ%M|1N5UO]!׳7otXvo )3Jpyi~QI;||X.$x f:ўՃˊlG;٠ЂcL\;(Yj|_N:el6\HsN);#,v7↰/'dߧ%rT{WYScxij1#s&K?ٺ -EhCؾ%-˰8Ś |3ts2C׽KGt:/>֋A_O%5:ߚ2Hk G<L6h%/#IdfֿvnFG꙱lbꚚTٽ4sN.Mgyۤj .߂!MH+ܪ*R1W_x?ajƌ;Tke5f`)gƮB۷{*!;!ܤ_]ZZ :vj-4:0Sfw3.c>R;wAj@=gk2"_,ǙLz,Y'vrVŮ\ _6<67#qƾ/cxץCP"-/) X[}H*?U9INJ1(ɛ K':6:b**P+TO/PD ~&!KCG R]d$XV)Žnɷ@}،Iu!j:dB` ,Emƍ=,~|(Xp<6uc@̞L \bzV= qb^y_ xCB 0Sy,\ey|a$ݸخoesPF۞ޯ5 1Ta^1ڍdR?qvʮ-cUpqM0eud_'27uSF 709gn>w-VHKl3v.5ac 0;7Imsgx_y'(MT[K9h4l_?T_:xӟX,0iW㬭Wg:yU=+Ո[*(\,c5[dqvhc Ϣ.F*F~1W+8BT+0GQԚ] $Pύc#-y;gmM@YPl}j`b`{0IKi^à17,s~6 3{^lŖX6,I9fPL`4urVԪt\A%7VG+8[>[*Xk/h`"Gv6ig=of ʍ[,._M<ū4P:@x34<7S0jc4#\q>jA=|]$|F]Qt1M Y0 X(=JgzdRrm _lC9v bؗUD9L>aOZ =ƂRMڀiQ5 K@N`9 p&f&6-2eќF4P o@%G ]Jlzx) ]nD1ղG6aBu~c^e`L7]#>4:M#$.3A8dggC_1"d'd?=QDcaT].c&@:pL&{m be,y咜d$m*Ⱥ(LYn+>k̜&pՊ/xK%sЂ6Xv?6mv{lTKV*Xw࿭+ xs澻z&6# Phe->y$J߈Ť弒GF;G^1Ypp >>ZH8(m`A \sj`t=ZKVSzyAjx0mϹ*8~:7yC ҕ2:ߣ]CjR򛣜[fӕ0F9̍M[8{6zc)\mFx8 j%K=щ;Ƈp=bm[;DV@6VϾ}~4ltf!\vlJgq1 c7N<א4t- `s m!j;_s+7yR? t-zhh(+?MkM;ib~Qwa֒Q|BUCpz8t͝9{@E^iN["i'بy.=t=H:t8tKs=|FzQ1ko__f[s+Cħ“:B<2`mC]*M.1KMDdԾwMΌ܂+l}{ޭ5L?Do$IU>Ӵl`!!V%HW3xK ^ jY;8;9QEo^wB˅P0I*Mك)1&Y;tXF b)N*%ZBɻ)t;8´~?-Ht_@Qfh[{8LzڌK>Ѵi6`^pjJ }Fu.ܢ֯0;'ņen`9 o.e2'"MxH5wVF5*F!ABٴO*oi'UevDga~6>~2;uU\DUڙP~}KE,v)P~U5K >T!&oD{p!̫FfҍdS(CR&PPLPl]99G{]!zsmb_]%9j yڂyj̓XXCyX)vQ7:W]u**oeS֮ cI);ڠE=P#G y(wXcΛ=[+l @`hl#`j bXg29\|e;$FX04x,/ФXg.!yL1Aea|FȅHH S|aE?߹#X_y@- Qhx!V |)؋$6Sffxlv!Q Ly Ś[Lx?or)Tm4Xi| =374ۀMkw,dÝm6i=?qX2 ѣ 5ՄHD3!k_"bmvRYm# bm/!1*gfB@~~&_ YBji퇼fQ;ͦ!֐iašn)qm;Y+I$/%)I 8u.)\Ajq W!IDU(ᔆ(VAU]*wH}WGV+[H+o~VGwW4.[59k2d=G˸ ,I[\쥍7D-KW;$m5\6Z`PܘV_y[MoiyxsaE-"TvUdfz6o"ec6jSR<Ȃ[1$V/ L>M^Qts eK\ uE-͒>l֞"/t}Ӵ3/눢$giNةzR( nbZԫZU$ B<ʝwJSY6З ^etuzH+U;o$zZ+2O=1dHz6%_WuUQJHnzl"| S$)ƯY٧~/U|)P'Gn[ҙ1!N]!iE[Ez FҋQʽMOwt0Ko],h){7r2pD#Ul*Ԅ%FT6j2t@ 6sSodɍȋK2*#lQQԊ%ݽd=zM_4wCC8.=j͝|3DH3-s@u;SAWQ:a%9<Bה6ӕpx_ 9ygw.-J:ld 'C[`++AA}ѡIi: qV<] ,T&h[>(Ĺ{]s;UӒ:zLS%T l$`x"^C g/bBj$hu?NݩH|LhD&fbtŜ^K@dkTL֨XiV[#괨o2ъF|z{"#LဩC,)\` ӪOe3FF7Q ρO!Rym@xM3> {G?VQ,\7ZH"]u>0;8'\PeQʫꋝg,:Q{ :k_@in]h'I/S[~aXBi]N:Ÿ?k y)jMϗ=mM t ૺz>i By%jMp K_@bx a#Hxy8*,(C &U-_ SۥNHl!aL*[\#TV fw䡋9+{Hi},E ^.bSF& 8w[ lC+c~hԕ+8BI4bNU-|h0~Q$-}%TS3&s6CY> +mrd /x~>O๣>9ɠhPNJ_>x^ʭ=E}u ""C=1v^ר6Hޠ}\sF6εW~H:ʾמiE}[xLd_չqA` ~ bD~:ݮMWizѶ+tk4&=|{!&CzOk yNY QY.(qoƁ.H^qG>7LY\e +3֬[ϬX Uy6yPJsHne9dhg 5G Je.pjWYINت6?0x]t*,~õJpfPw9LQ^Ql7lW5HsS-1}Ķ6]Ži6RXnbmS y(Z]wz@ L1 Y.8q/D"%{z̾1t!?sw߁ZG|GQ2j_W9b\]9Ǻd\7kis0bӷSȖto-Z d!=J;Gdy{"N6R\_d.EEۙ&enOftH Q!Kw&J4ZWTt&4jOKU5,=Ab=8!\ww7_K, =tTu?'6T%ܿt7.\xOs:xe+9SD$ y%[u?U)Z~: a>Hn'G moUMrLMdׇoWE[_ apZ!=yM{ *c#)'8%ޞ8B6y,"z!((3qlQ֘PDŅI70|a7ÉӧAIRYTՏ7o6ziO9pK~F 4Жq꣓KFvB/u(t؏K+0qyf#&pHY讈T\WZEKZr#}#p{,ª-=Չ{ a[P4bC2vL>s~oؾe$"`Xj tp ٳX2VyFO[b {0n0H;p,|]qaCa ek^GqavbdҾͅ 8xp[)`<uށU~(C<ߋ} %?f||c֩S 1Rrc%j``YXUk?J򺲽o&,-c̞vwg|5!n(le^3c_"^j7mIݭa39Caf-$2Cs%΢ԣϻm_=.P wm/fV hʼ,5w!*$>(fw( /h}?F$|/ǰX,`k;Ͼc:J~`9 woh&mhg\86f+ʤ۱_o=aHB 燨aEjzK;2Nrx#7 BNjKh-?X:kBLZFc:'d/})o>F'. #HdΒ==`oo=_9uѺۓkp% 5rnY>5,w4Ct%%#UĔRa !~|#;A( {kпswK6(HjIl~ݯ_EWG+8+/ D}}/ t/4v՞ak ݋0NnX x@@ut;ײ_ոa?+ШdU?lW5QB֨E#z9 |74{|zN%miWZK}bb H<Lp~hLdjkIt99Ktb,Q) 'gٳ0,[O[,Fֶi7?%Մ_&66\u0'=?g"U7:2Aa)u_h OuZJ ޙg|f$+ciq}|aC\v&rfʏ.څȸ\sĔ ;'@\QdHnplޒdx,@<ڴtſPg9J2!ٙ78=!y: e1G+Čm9?p;m}=ne]e5۟$\ee6A$3^Wg9Q=D -:)֨ך Iz 9|G2NS_60_婦jP2FPu~[ƗA6wׁ WUQz3Slcǝޗ%wnޙvחNqT|V'W٢coL^ zzjvKV 2 xdeW4RRZ-lL;R/'gwトK {~m1wGFi.aX'cb2.'?8H>cD[FBJ&pn&#=allOm4O3zLZJݖ{)í(vL'}9_(ע] LaF=kM}uCih"hn݅)OUի-PiiV[`'ߑR¬]%I0 by>X=Q|'z^Tz:7g:v2'xTo}D1qKX6FoW׼x5a<.qaz, .O: '#͖4n,Lh2xQɧ`ݿZ g]c L$Zcʨ3U!Y!|x0$8 xl/F3ˊ$Q?p#FIs翴\s:N+Uny.ƛ)q~~55I30s(6 }5Spe+M1\]T%r;:iކ) } jn`ߴz6bV0Y࢑5$\v=HNhΣMN{c&baZIu5w66'>f>8knk"7."N8R<(:#.7NM8 N!s\U8*I\N*^#ᵵ0A+툏l X# z6wehI´#\:ܵW'+M<+xs5(=Z,0V/QRlM!T~ݕ+8%Kʉn$\aǕ I7lw~,/߫w;ik}iS 'vQnof+a}Ko*;oG[1^R#$Q(_lVY ,4o 04!Q4{,j:Nbn;MS/;(\M8<vm6bJ2\QAsuWrYk+Ihz )/)o~lˀ1PLgz/xF3YbLj{%Ք9U1.}\ SR XW?:{mڴLu,M.)S'xu$W, 6YTTQ(shI3-:G qUGq(ge@x\tYXtYOQPLLHkAބM2T![,t\/ʹ*}S/3OJ{%w7Osmfb%N מ"ǃƂ+]24ԯ_x+5{ Q0 '!- T,5O˵#"5\kQ~.c~Mmā?7bJz^:U{(W |"*nhbtq3OqI |7?ݍ=;gt9T#VK"iWA];\Yu ]Z@Řa swT&9+dC52E#I4ڊ׵ٴoҎc@G]e& vHwO_< +=3yEݤM>#Wl}1gqzqP>9KX99&܋ W(Z-ם];wa(;t-ae$e No3ʃaOʵ<ߋz.ZWp[Pԅ)=BHf7q`_<,2fXiL&|F[\'#;qN]>`N/q`,MsO\;[24c'efnт_hY/Dnܰcխ^] [io{6DzTh!Ⱥ| 3zBD3U Xlܸ%[f0̈[d0Ǎ%ߥxztaVxWϒkZtqy¬NP^ 3Q"T ݩXq*|jĞnh{"Ld {*]KH2ԃWL>Qw=iR\Еu֊jRa-ҙLƍ lohԝP c?QwҼDx@p|o,Pj\4K"5eKİ? # +[*%[152y${|è%om]+^#wnʁ?tY;I#QcZGU:Vv-޿ /Ν3̍Kg kp&/W6y^|38j/̼ P cXx l'~ 6y򲘯t0 1*N݁ o'W3s*!rj2ݭdAi"rO3/bN+ub!UꌥRe!ٰ9M EP˶])ɺM687>}Ynu*o05.MyӑOGMկ 0L,!49[wX}XWHIҗao#ձTZѵkiwPy (nk& Lk\UfbLHCJ!Be͓(#PYsgzO =a npZW#vO‘K!{W 倚Fe,cc'NWąWToo͠5b !帕V0+L6G?C<픜UFn pC]#D^GBbg~5 Otw\'sI Jy-JiCwX_o(x h頉KBlP4?#Py2Lwb? CkfcuG®إJ,vS83nozMoXA񸌯zwܐԳ,PH?$sGh}lSى(\CE>Z^i9.rRjAw))!߂s^[VJ?N/r80/ءģSU줋ꮇB44"߰BSnwɟoδj#>=sJlA1J=aʆKu"!z(_wa3-~,D~zwCXb_ޗ ۏ՗2KJȽ=6n37/oƸx[ee*=(TWOÉ /> cioA?Jش4 ;/#e9 =?__OєG zi akHӳ}[O+Tzhm1b3&Q Tu6@r܉^Y#ܸ?81=HO~'| yt(ynYQe/?)g(.hu!1r߇F α(a,;[x3,eX: S3[q0>^ibιRA֮-ߌ 1+5lkQh`?|MkkP~ѫS6r\C`SpFҖU*!hX.{Y-GuG''/A|zE~r.Ns_Sa:: }Yy;b⤽Bi`* ~Z[Ƕ~˪5.]t.gE'^'r^8eHiiW+5BmasLI%\[t-X=9j##iBP#Vڻ j6lF@@tѫ`%noנ}~#MeD oe4PB…>4&݃ Y:g${_,JIӞɢT[Oak, Gɘ/c{ɐjW,Mӏw HM-Ueu J*(B80=}㱻!h!\In5қΟpsI=DARo~=r>00 qw;D=0TmI57'|}OG60V_꼽ԃFmPJGI`ff֟ q قY_ACә -7_B7$_Jwj> ^ \4XktH@7;Pir' [_JJP^JCNYVʝ#Qx;;tAGd}`=w&G*6\bwVאnݶO'BY+ ;N\RZEJĄq'pi]Z$Z`(J{kBL vQD+!.56 8>sn+1ەأQ=SX^rhrEi~UzXzǏkԐk{kP{ Esxyub۾, <>e;7r#Zw04D{ˣ}"P O"iU}eWq }yv *.Pۮ(0ҧoNUC# zaq&I]!.VwgBj6/yVh>Y&y 50@i},{ȹ_Z%E+Wu( ^ &dChfK@ `jjW<-v׽8t y;:qȿ҈癥<:$5 [KaFy"˥F{HBTw*u![RhOq]4r}BD堭ke%AuH.Av+Ƹ6Cu-(_}?~^Fn%1&xIѷ>$܍IѴ1ʯ:Y$2)3vd f' u?Li\yS=M,\>հ`J ೋ q:~?1 af%yE9k &7H~~F"{ zIbE}lL(/MB9tzh9=5&<6>)2r.iNU%%̡oKQk`KGqv~\-D1?l|J>jĶ&Ƌ:r;Y@ET2'\ U?̡n37$}>T/v}&oys,{}w~Օjhx\o)-tzu1ED~2'  *N$Iǃ"L4udg}.;S7.,(#if0W~`6UvQFO;l#%n[I /i1ⅉy2]F9 thpQP@yl{3@2zƦ9}"Xgs/^RuJѺ9G`vIqSYn4>[A_b#ntgz ^0=))P|ÖkytDE =Y84!`~bCu5 xtYD2wpe>46UH٬gWCn瑛k3iMKf_ %ZzYר縙QẙKa+qJ}?{sd{C5|K)K7*CO ?=R*gh"i-S4)^k`^ǜM#*lٿzlj2k^1r{쩯W.~x|\11U.>yo+3,mc/b;lh_F|P`2fq"RPSkbskhڂ^q*?xW~Q2kgc[E+/ NlǸ6]zRTUrϘfJپtDcޑ;Zt+od6u6\;+C!w14OD\R, aglӨ\Z#jt`(Έr7yEC݁=}xqх9~d2Ruqp+)TU/aVܫ ]y`E1 ƥRul4l_UISX=O@fH`!nED{}<Ƭ[lzVw0',, 7 $.%_`qIۘd0t>=J| C4%Ii.ӢW<µ >CDDZuu{f$J\GO`k+(Jm++bcx'\sŪJ7Sfkp'U({̇w~%Ү7$" ˺=aqɥ>h71ɮgYV2d,,neu~ܡ֐fqQ3& &jkW"n#he&k:E$"6ߦbQj}<46>D,Ile U֘*fdD&2VZ@޼S;gTB8vhT͓E9׻4ڐgT<7&8kq+|iWZ3?<3B=uPof^Ymε.E[< jRLߔ8]5*XS+JmxjfmPӸ,ǽc- vVI s*JC ]I1 7f%4ƺB $&G#x){dգ;'LQ)97B214. [)mΈg ٻԕ}'5G˖Y9S+Dyco2yJvw7*U]*} ϧkG.NVem]@!-,S?|?4SHAl7q`/6(d~Ad`W*MMKȈOZx33>NL׎Ļr>_/E|'% Śs8wlUyVZQaVZvF%gQI:/=2lijĔ$z~42d&cn 2=}w '3Qu=5a҅4nh27}]ۊmV zWcG20b!I.-Bom2zC"y'k`( OWGNV*V9c@hPv9 ׋\ۚ4{NKVr_׵}z^NtqW@bz#Ow@I ,;ǥ^r9CW.=cZmG" V|M\%@dرh! @@@`܀g;v%7(@CJ'nMTW7ڶ-M5My]^$!D÷ -)")I.reJ`bnyDt><_Xч>}*55U;F !zI4cGG{]{3%} jg~6b̨bd ݡ,iIH_?Y+ʬQz=@;ՕcE1f^KYxO_ UO -**rkmqWa& yPݽ{wO5F[3&iGq~W.z}溂,RЬyt;YE{lmNgQ:UmX1 {UgLc{U}"蘮NBÁfF?=9Ľ$~yNdpUݜYOΡyX+!@d;=*%PYYH^N }nr!iJȭp@)VۃJ%v@?o+4#J3P, JF#9 w,),.>kv~0s 3 -AFo7WkmMv%qmdٹsדRziD+J+NQ|!&''p7󀔔m^X7.BaBvmd}A8SS~u0GA^!f:JUx%lqgY9 ߦ؎(21 Z21)6;rpޯ4 hV2`()%JOSk,|W>F6 >2RU/_$ õnD3#_: 9!E@2Bt|)wQ.`o uyq?<8[0 8m"2 D4\ebӼI\N|iNf4XdMG6Dh6VcƵu"Úݰݛ|1T-nC1lI_^\cc$PMefKÄ2bHZ`cg 9Gpq3/UpC#TTT$z| jS+QdO@^ T*l,yBz1zب3-6l5K[ZZJ7]raR/Yd#/Џ8zc؋PX:RW,n)"05:KZ3h<:v?se?Mdprp]y淩6"/op}t| ^R``##^D `]_lVOUWKh{(a^;4DXk&S*\銜ZeK|^;sEj74H*vss]?Ŵ~y4Wg𐯃5[[[Y\>]i֛z:& N>Q{Z00K=6,/ <<Х2B% b2X`;ϕ í.JjJSZ)B YG&?ۋʿ wہ^ۄoA7D bN_N2 k,p%Ƴէи7U?n[Kʆqkk,9 )c'-0p3r@4XU K+ av;h!EsJ]E.&MJzZ ND5o^D霙 ]ٿOCK+Ο|3^\y@Ml8.&ϤJaۧ^hhn}Tb]`?7EK2-Z\ >Ku#KE^"H w1 R olL*nB8اRC`ublM;?RiOfԂ%IpvrUY۷;T&.i4Nf4F5"1[T N799ߤ8+[!rWWψ+-\̠,-Vwd{1|E ]AIe]9@. ^ DS <wK}M5Y?)4g}xaSÜ˃s` |;ܖ]p|twOINݞjull4<#^(=Y򪥋-nm%;v,D_= ~?W~;vO!NڙPK:eMYl׆4gF.m_k5eW2Or:˕x޿X[i>1i%b>$cl|'GGv}E]i43yWLX%"z)W Z6'0jTQTB^b)iF:ѓ)͈_h 8*\  b@EiO$:=WW{*([mȥ}i*ZV{24^& ߕ@s֦pD? *r~Dvgt# cԫPkVNcf5Z"{MD1'?Xxn`$`ΝAgDesx-ȀP,5w|q&+{3fѮ{l v"<(^YJx}$!Y'js1 =U]S)4YYYP߰rSs9{|{Au(SnTM/m\5>G4C{;rY'O:u @n0N}dJhIQ@cLd*ƈaZY= ry1MR, ^ :VJ[奝AҰ}LDQVPr57݉}Rujap&.-#j'|9lJ B*j@fI@ܫ{R%7n$5D|;ndz"QHro^%ܴ!A'nԷ&OMY?G>ZWf-Ƶ8\ACrp1sƕiV.-GUWWW9,Eb'DF9va4 #[&$TU7.,DZ  ` z4(FaRyB۷b`B'R{%er|cΤVǃ9ȸ,~kb[ϱ!\.r߉Y62Rׯt1,e8b|vX1A 5QeZMh7"I5&+{yRdHZ ]V] 5v0r (.vÉhJ+l> ˧}ItX.B`pN, BHQ8Y?aAmD_[bC/zd#Ydn26k+F_XlFk\(ÆA3ȡK> F.Ȥ!]}̬Xezs RQzc<,e^~V5_uo?>xiVhO]QΒ_&m6AיN +<Ě0KBxPat:syM+s \rŜv!)+\ku|j |*>N56w鿭% ?'+gP9kqdO"3MAX< ًr(4#75l*B5_+7_zH.@k8"(ZyUAY1H&yv :Kѧ*{ttt8AN[%SNcki.g x =lT:B niWmqfpf}'u wEMm@u+xIŸMͅ%Z3"W;bcq>bi+] Ҙ〰SFǏTyv ʌ6߷aA6m^}m~g8 4 @M(]Ca`_x nM$msO/ ?W$/yDʾO.5a)ChhhϹzU=(*ߜnf1 N>b7^<7[DFG6 re#%RާO^BfH'}1~]g)˄:!#>tqDș~T`^!e>1nof,-;U-zZ`{#p $; w^vsaCX[[I:PJ1->Qy}`{U?t`hM?˛*E ZuHЃjXj^l++ ź6qM`<h-"J*d}E<|r/,?,,4pֱ%,]B/VeGf2LG7F>AA=kпL]5?#pY__s,}ﻲUȚAj!ݏ4x\WGr`GoK$X&*4<k*3v _ܷ#|)z`t##9Fe]EnFr Ih#`OXz2O;~TTT0ks;i"l6$jזMJXJ&5rX.gl<ӗa;Hz/{;J5kɭ*or{@Qp2*zfEzY]̮oVJiaVhH9ԸGD 7Ub=zaVN%{0;Xe لOOd_:] ȹ1<Ky^=jT j,,76AƍK6ρ6ν:4`:_U⅏ .A['yKt:H$WB~4 FB 0R\?h}H)5G uDDTT^y:}9;yNϣCb$hQ]d sxsm/怨Ȍ_|^ws>|RkC5%WgH@z C0pP2kH[ie7{FGSM@3"l=/⧃h0TɁ$hF` تijkQ?Ҩ" MF\ E;GӋp~FU4wy% x-/<-p 0<F-2 ;Ŀ!”A2HH[/wȌݩ.çMo Dw$ٚapgsJbR(Tpu׿iTD4!P2% 5-^f5 (/6u /XB黕UBF[c*<S&@H?m؋/p}v*5>_=QR7й4Efn >2"t,neDePhs6 2 ǢzKOjrz0)3VzeM%D=~TFP&,Vhԁ?zho߰>!*!(:RK:7lguPkyU.{. JjMF}M^5W,Sldh/o£27 WWx 9U#~KZ?E ">jէ򽦄,\@x)Fd|čm, 7ߴϭJId'# ib! _Ko] F OUjo0Eʇ{KDp ?Y޶H{s 9i(p#` jM+b1iBE?qTw:Yp>7X@ 31yDZ<5Ĕt PQ?dq@ˋ> @&M1 lY(ȉ˔0+&:,\*#\BvB1G.B7% zU+K?8M]oV+ [RXIt-`yRfA*JǾxB+q!t;<;ߚ\(R Y,} EuȗXBt2ų^fzM vg-3B%@ԧϐ_aHBD2yZ~G-H9^#|C14+g~ҵjмp9 fPM8h@\i-Op(p>YꠝM] ʑ֔I1$ 5"{w(~_ŌEys K! p_8?"Z9d2'zG jY%ude(4A6),Z劢`RֆO%$%mʾբ:9q"jNCA.#aVʹNu[zV<)|TA 9a4+P>ۗ aG!4 ^ P^\'Aq6gښ'gVb|ǩ 'ʬ.H4`B+.ڊ|/7DIH"0 9T_c7^ ߎX]q_srK}|[p6elZ51J߻ebR%Fb)zUNbu-T nīn3rmq"~)((P-[e$>wNsdEB8GyBhŸmOOլK}'a3s9wκLx i;X(̮tڗ_MBv'<ڌ߹s" N T*f!)C=Dqs6ѹc?[>@#$2a## 0ݳzߛ*@oI#n@ C68&v W<]:Uc}jUDcW fkO%}|qc`_)42;xVc%C<"2eAZ Y$!)`bǾR+[Bb4qTFV`m#z+ZZ$'i[wΗÝDHX"ПVu(XD=∍}b`r"B4uFߩ{M gM%]TÎIcS 3);=p=#:/ptLiXiN+|8@'PAp$E05MiRb-5yU&#ި%C0Z 9`)$]Y-U/}K4T*:-N$ * zuyjM?PKI^=1OHTP~Rnuvola/128x128/apps/kate.pngUT ZZAPQux ;T?~f1c9l3$2,YfI%iJ]d) B2*e*e͌Ɩ=-$ mپ^\יsssq?sC^VSn.6i7ѿem%!@ITctv!Q1RPD@0viAqg?~.B1FUXjk29F43 –F; } 4 (ɐS?jڤj2*En(8הJ 8CF`ϱ(GXe_; Җ  Wo(7p rgwd!uL'sYs5@X1u_@Ӥ "c]Èb'4 y2\)EqVH `{\sq]5,bnW`O'RsDY>(*l W0Pe^ 22zpGiq;Q37/=V{N_Z`ȕ!PH̝bJFRvt:ȵLJ SMOm@!Vv~Ǒ2y뛥K~`-@~6z؀2`[V Z$ȗ υo46ܐ`:OR'XCly-caO렞_r}̂>'\"BB] 9{q M~r\BϷZ+2/zji18[]_o?B;,ѢLC['Ch+đ,"Fr> @Rrmhw9^,]I#3o590}{väNǔQ5QWD)DLq K"6|qp rYyO䪫W 5w2S^d|]Yv({HGpLjZ]`D7һr{XKT!`;fw"˳:[ulbҮ$}3O8a{aq[\{h*Old0UqüO$}tx 8*C۬g#dwy)7Xe AMa~>+X9ot68Ih_ $ [R#il܋"{J<*#֎cg~/-WFW#_?OIx#t,*>Rjh/9Bx<)# y+B zvJ/Ϋ)"աQh8as_L3.t7Ll[i۶R6[69dz\3)-asY`| oicQmsiWo] "61#a~#Di!(X  ?2FJao8y?7<୐F #K쿿U{RˊET`R$x^(_\=Xi+%-aL$1%Nb`&44ջT5:IcM^ -8|xY);R~~GnmwG᭜,:HI/[04~L[ 2֮HolhK۩Ol\$^9IW;qPc;#k̛%>^IEo[mc9]x}|C^] |$m` >bNvLqyh= ֖l)-1T(Q AvC ga|ͫEټW ,)p+hV<b(!6"{έYrŃ߶Spc>˘=7XopG( ru;R-0Y[t yfNK"Roz7 u!vJv~Ϊwv7R@ yhrPJ{%X{yv13wND nmٰ`ƻx\Ts5#ȈNKĒq׈8TBo8 PΏ7D%XO?:+| D,`^V_M,G8zlSToXݶQ@(<&MI>oQ9nٗ[P/+h\hpn!/ [?6j eټUֺ ~=yWEe%1$:?Z^@<y$ZϧIxifGz5c=kgSֺZʷB5?oXge⠘cyWs+eQVA|vJ8sAc%#ֶ'D = -]f|;OOT^Y ^ z%q2WhmgIkq ҂z?DJ,LE58_L]V"`8[OmwV<^h_SM@T 'k򕬐>-VJטO~@vֆegwF2>^`:LQhGJloPCϲBF|QiW8%g*~]}"I֤%LWZkUhfDgu^8YHfuEo0|r,Z;[d}rFpk;Zxg \HȥΦ,KPyjw8c))\i\1apv.?V2e&a_zTo#V[`ls kVBlAcaSO)㤥y">>V AB(ӓ md_+lw@jƯaE| FWz 'N'40 9Q+ w/I_[qLpfy%{f#/v}nckF ",T\\&h +Y;z6ᢗ}4N>'mE{)8@ :P*9q$$J*Jedک컂>Kww09[kB[+H:U֔?RsVMoQV7;hF1[vi]T@ph@tB] oա.u> *1rR?wΦg P9K+lί`7Qr9zI,gdI6.$blIXMGkc7+~NӋ{tQ7p<]/DԏGdquS gVo<}/'yey>}̋8>~eV q=#Ȫ,L8`//rюA7mY4P @,G\OllAlR2dpyُ.axp"}e tt@Ġ)_\ѱ b̗AR)9l[n9mvkP+m 'ޞ'0.Y~B<`'{8>`~-Ð *Er"{y=4:y_ch$w*-/UޡzV2ZB_³kՕBCW?3@q(?VqBv ||HZBys (ua_!{DJALjI?%@*9vu0xaHڊ@t:ɓ=#PVn ݂rw-M@2dS,w*7TH/J$ ! H`tb#4 (.\azܖʌyB[Bvl`j}y1,fMX *|l/iDC+Q, A^B#4Ax(E>{0|0*QqcWW Ppu~Zb$0@nVk&[tbe1I0*׷V.հ:ϊpF6Pl"e75Rl^;-@>%F"xEnJpxxWZjwV!k`A68UܴDRWt+}zi˸zMJ swD\G`_Z8L2ȸ=&*[8uAʮ)ؐ/9я'W$ϭO0ox&S M%6nѸ_)4cB$,<tU[&AzRjd`40c S'`en3{F_&;nlN6ߡΡף$s72Θ8ޱhF2^#@7@9 H_FmJ!dZ)(SkxJ`>]$ KpJ*P)סdDW7oՀeAJovTMk->b_(cAJb:L*|Gl9?XC/Qsf(t?mj!7tf5S^(zB||M*<7|fI ١MP0}y "ceR&سCb Wr.% quw{pFpfZ*~䓆 0[(;xZ;6 p'1!k%)>Ҝ\>xi$T4E/ WvQccg"`p80gqN.F$P-jʷF O(!qd.uᡙz755`7m]9V6=).ֳQԇ$*n )H."ۏh|*E&9-g!3̼#Ct:ʷBY!r=C?F*=r5Vk9Kl̮6v 4)=^,N^5v注]w !GCu6j;ĵ> |,SY?TWQ eAv~`QE&~;yY򳎞<9E* `?#ƌǎEkum$Fإ1))k>qGhtsdN>U EmPgT--ѼH<^Y#( ''3a&o~ӎ x&skIZ,FF"^JOWHwp~!nLu{&\e8oB D ҳ- Jj.K\#yڢ0|k0p|S)tv~=6*hIMTibbKˍNNҘ~UUuI:>[U{5dyr c"Ȼk5{OyXV0Rp|+*e*;}zϑtРmmIҕA0Ke\4>g_Un.k?=>)ud}&iBnY ߝԡ4Aձ/A=FqMR/~k]oz"yϣU)oaI=M7l_2UŞWxl!Lˮv'd/M\"Xym|=R!;Nhxw[zyse9a qSz1Ҝ>KK.srGUՉKĤ ?g% [wXGe$٤]׸KOZ@=tr J҉\hNd]baOGM]:3JD4fѹ=~m 2&5^:$}VrlF}5ݪс tW,?-aQؼ}WW1聁l7f1x۲VM r0\d"Pd3BҢpk܇KC:;Bֺ!@~{dYKz cBi;xmb/KpNH4yDn*ݛ8X4J63q'+b¸蔹jhxv~_s,tmnx>kh6__T~#.9-\sEK8]->U }2YgecVľWj t?hUv8|jw;UV\ ,o&=a7dh Jdţ{/|ԟVZf(y {mOY:=NcT0H+iՅ]σ5>\z;NJ*mN2tS.(ڟWcϮzC?_}(Jl>kU"s:W6~D } 8zqݬv +9)Uʼ ,=%j5 B_aW>;p8v{޵wXQ:g޸@Q;5嗘~US^tyvX7:e1);ڧn_^q`BWQ/BhЮOOE2G2Z!Aσc!AIH=DbogA62 aɐN$YG `6ZF-0~bu šQ:euJN+2UstJ@ -wÀQ(Vf$GæEq?DDf<(>⻌8)Zr?U^?-.ϰ.yv_&P3!`mLؖ>qJ <2{%f|/[nt]f>ؑM?K(wq ni"I6fo6^v*+GK\S:sD]qjE7]n: dW+eX{A5[yF(07*1?ҵp~KɮbidXIG {dfxȐxWf"Z*<.I71~XFLW-ɏ7ܧ zҵJ!MmKb>#Fz0E=lxZXFQtE$ng 2`GC果G' {U:d˞(,|r/MW?cG<_z;l/ظ{Kaw`'_ٞO ??ʾ=1|7 s"C4NI?KsȣH㌭mu!jzC#Ü9A267&(Ǩ;̉bNi\|3f]#5+Q–ߋmf3Q+hCξ&%…k n@!Eg>8=y/wލŧNZB #(_>#ɟՍ<%so,3YF8̨z,mq;AuK F(?[17.z"wv1fԒ%_M-Ms5]BSn?1jA=X5I]]8]l'j^̸;56 c[lnC{,dp cNqiA ai縝vm4v:k_iNT*%p&Q.q(j.rH@U#ADe[m)bNSqeP{E~mˡaQ˼[8vkZzJ7b_1x3:tBG !I>h{L)lE:{tPY2gD밅GN[@1 o6*6\MCx])b߲^r)}cg;r8M̊qy1*7mgA c[> +Q@U\s  efd\zȂy[XdhQ^S7{!r+.FCgL73t?B"PԍJUsҭQ喕tvZC4kGy5EU9Cv u|<ZJ-XU4NV?Y$fsv7FEꐱ޲d/IOPX@2_,%Ev> !shA6 PNlĚ?ߝ0nBZ$@y˳wB[[IRm܌ul-b0Bwl FnP(2qnHj͟ȟVt3yn/X׳g4wTn,vxN 9 z [ӡA)h(Xu[]#LCm6W;:~Nq3[S-+w 3Dzbłvi_G+'yɭ3r8hl6$MD(X4`'~<T% $B#: 0֚mա L+/$;a]Ty_0-/{m=AWrw/!GWB-A4ؤ?veta=ﵽdi7īB -ɋ a%F٤V~ E㼚#\6$yK{Sec,wj6XX/ԃKc5XUy$Z孋e|ix:uJz+kJ)o+kUaQշ)~멒[))ӱb &$2w W~93'*n0,ΆahFl[ Y$JzZZ(ODTK[t7Džn.|D;IiY2NdDU|>B]F9jtk󂓣j؎2dv9<}G{Ł2r^ FGl+4U"D/^1 1fv|Tq;2 %6` TDjPCF_MR oI'"`t.'ȋ5~ IH/pUD{FƟ^c,{ q1p%~H//pgaP{; x">3׺@d_>RN>`)?$k} lj pEݤv}9k.>D56jx~ %0D W屍$}IJ)!ù5kdhpJg fՖ*.F8h 0V ʸ|P_!mYuHN@y%& yy"Ϲ#963Z$W6pn@fI2*߀7Bͥ_U^'%&{aKn>Jhp@sO;IλgL# I SDu?%n@2{-oU bMNCWl <!Ѭ~Š=lIڒdbZp e}_j!8ЎP!RBTpaGB3۬W.O~:~D;ő%"~L T@7v i0bxhbع#uGSP"N(ަ;'qKJW(/]j[-|@}pv>~:nF7ܭEˡoUĉ-qmA ot옂sɚIЫ{05t=&-xK?Xi -  7چlu|y(81Лܝᔩh"|elk8ie1[6 W*>+W _F]LV80/!9 2}'t'?M%Pe^|j+btMFq>2ˀkm1W1ShGtNCЏb"h/!" aVbFB7NΡ L@8j]Z+yN6g U-4uOٮ8܀} QQB޻ǛNVQʢ˰Z&Gh2zfU[ѷ̫/.jݸ9D^lS:7u^ǠcTB?6K\ UXW Y(&Q$/e>f4ͣZ ᧨`$sibO'?Lve,8 ;mCN|ZԿ[f>_1XhSBIX% pw1T1x0E U/ RDJh9eBS6{ Pk[F@zm(L0+Γ -J7G w,ϘO__$+d(+xͭιzMyܑ,LDѢ?>7HkMQY|ݹds;Q %Gbŋ=P%x+k1zxE<ⶣٯB7'N*ƍKri8iYs7y7?Tܣ)lYp;5*D㚫W$zy7 lɤ!͛c~yV )F ni,^.nqr fW{!`o /ZShi7`G$Ux^L5o?= ELR q8%-k#wf+_vpZj~g>ҭ"592hH ^J/:}$P[;;Ze_%o:xxDMo0= L/@?˒}f?[vcPCj>^U % p Ȉ+ ޮKHs$j H/dB*KGM.arq kdHG~g*{m^ )+ȁ^7>wzO8 PʻIN@p;(񊽊z<-5GS@tG B.C'pv@_$P)E3'j/H$b;(,k/zޡ=NΛE%OZOG-^n׵$>׭M VUsA bf:& KC JڢJ;+Xortp^,LzNixx, }׸޼[EBu:@6|mF}"yL) zp@AK=@ pv1>yn*jU[f 8iu?A'۵4D&g3qJQT>AA`00w]H}]PҬEfPHnx=س[aw;< d8mle¦G)nUɃɑm!;\TY=]D 6Q ldBɶ<qɋt>gDzjr3A,vzwsr|%;Z8 ϋςd!yP݄Y2Z>k@NF 6Bm]A2ޯY3 |leh 4o3j[jd_{c6cB8FiNrLS=d}e1d@(ct繛TJzaKw a *:E _Wp褜}YpԣA#J,cM:j#͙v|MIF7^0/zq <jMIF>QI;<^k,+1o(aj;8.+ ;i*/^tf~c7RiL:Z. ͊[]0;n}=qX{P6X5`ۑG6-cG=XWarOҔ :S5ÉK o]_W6׺HHMdz+u䀶ɾ~q]\M+O5j$G|ڵ/T, ~3Gl$# z#6xDh},-'1Lp$/5R/ !8]n,)2$s?Hq'lZ~R󢔎& vH=,uorI;h~;L Miʗh\ܵh;-ԻǎLv?cd_a'7djںӍ^)#hDŽ86onČ5j: U{''+@E:I_ xWԎg.gf60Ys;I@iUxtu4Ą:@yMMi$W-9K{eҽמL)uKܔ=QmM {Q(CŭJ8 6ґm)bu5~'p}lG!Tuvcx-rw>j\Uy9 -Vm=IFqAe1#gq_g;8! G7pP/w^pV$=4l֭|2|̫+s<o]s]8cC\i?{G+W¼Qה\Dw,M)8CXYX$92i|"K,z%aGjd%)UԵQ/0ƪF=ʉ:oVAVֳ ЪdD rL7f6k$_Erndk< Ӑ튴~fPQxL'ejk_Fqq-Ỳ ͸XP֠k<eZ!®ݶr{ #o4'oeD2 ]EVpx?\ac͓̱jJV~ '5Ž̗Ķp|'EH'R S 㘇] i2;JQm=ٙ˭3< $O❯M*+E o5Qp\7}"7jG|*epQg4D hg[J,&TjEH\9|xal seG]*u?$_G2aIl2CLLP`@ď80 X8T|*x uFVck}끏7ы<}nK/ʭ촭qؙ n/(łˤёKĝ{DDE56U7`!NnĿ 8oihqqoD]'Z̝,; bH#`N犈@?~1:%eDq$Z$PvyWk0>(hPs'"0"UfWՐ ˺{ι@v (&lk#6Nzt"/^Mr˗17e2_6ed׉iy!W]ÓYrSҾd"1=6#Ɂ}!wQ6i=Gޗr0RC U]m,_VRԑt  $2ŰH81q-̮W@W>YGP3R`z:4$?UtgYm썴q3di=$^?)#&5ikz Z<,w#?%1hC]hF(CĹ*<[KfNT::_j88Ց23%֩4=ʔv,6 7Y>  Z%ceqWugP Q"ZS O)+~Xzu\*n%˪da15 duGR*._sVhݭde'I3%Hws M2y۳0k+kM~4;9ޱ\X dH:TmyVd ª^s1lu{":n$ikM_YnfK6^o5/&lm9#rt.m)MuďC9vP$(V6Rnb F}vnpyDNPK[N1jk57nuvola/128x128/apps/katomic.pngUT mAPQux ugT=<@B EҤ$|QBGE)""$C`+*jPTP@@)}dVŝ;'w}7WӒ@aw0oKH섊m:71q]@GC"Zxlh!Q~!_E8 mICRWgyH 0Pha@vS aioP& Tr֧C|,X-=AR5J"m k.<淒25o;pݘ"u _06痦%XR0"8ɿ<AL)Kʘ/J;CoNp ~mF)ʵƉhJ^ ~ O }[0k-݌t裎O3Df0e,}#ImI%jKSR)_ %#d2a-s5F/`<,<,KSTjY$J]R&!uN*EvA,!fm`Ek[aP%NFj@) ԃ!w|+^]ݹ7md] ߶Ch9H/d9UW^lœfS(A/gEL4"'Ok z2 T !Hx4)?m`a+Df)Vz/ өo!뾽0y9@1yb{\%/d~($n^A&Pezv:ofH%e>uof7f)@k:Ԍ5E)+' PëC(FsUbJ#T‚!k h\G7@c U}VA=xӊ hZs9zUR6"T{uk-x1`1|.pCMBa/G+h"QJt"gجT]p ~Ty|EDȑ2cpwv1N|WUy{Mat!ت-¼ՠF#F3ȅL<59`AM__zT(P|9#6GD 4Eu.e,5rB5`*-t42dҦ/"tg w'" swѦ@qjO+,Zi>SAP$iz e=6%lk#{u5Y^7ܻq 34FD &9 0'l5++6kq{vHhphYyv)Bh Jf[sȕ mKݗYxC*RM[[ yHGm_!-`YҠ)i2J(# 'yB| L|WNSJ̷ԅ܁ߙF?6 k-?;Joˠ:OkiJ.b.fpj Yy&G/OQ\ u4r%GWFнP&eԪp?†tm?Qg̖VZ-Jr1 "Y< z-ꔫ׮s7cl늰 ϩUd*$>9ij__7jg޼*dn(J*C+WAjFW`|CkVեD_2e( 8m˄ ੽go &X+rFo5m]n3NFvâ CQK^ f^TyS\R}<i&]K`"xDa &mju/Zh0zYR29'EtLM znu C T+.`69IE^ՏmD(*alwt ߅Ք ~1s7^}$bc+SݚKP^fTq'rAVO[e>/?|$EcFe#Ĺo=,UVvH9\XY5L er*-"78(\F %:f%3_Cb7J3=*'_C[u7An08¹$ΚԻ?RfL0'osCL? چ*cS|} ` i݋anv9qe \SQLF=S,j +IV "[!MX꠹PK!hVW4sC_oRhJ[&N, ْl0-aLK25~hj 6VX{~gq;IEY @m>l@x1|1q Q."$ӿC \%a 3IcM“zR yx}In̓sϨm}GO17U3O tЪnU;m~:ꊈ!}kG*OŞG tŠbXffF׍weuʔ"6MlM[1 0+V]t5x1ާv[%%C>*P_Xڻ Bz"v|O+| / UU1A< a8< >_Ul,si/%Pz\o:lpI23ێ>(K%bxoِ. lA(畭@~f]T}̲)ϓ :jt3?EuBj*DgOFw(ӈ%`M˧ώ:q{9o\m@J|u-B#8=95ff gaP|>oUMS!wkr蟋塾Koqiɋ7HlgN1ٲGVu. vrdzAf "F6.K/5J׷7Af qſ0WO3;\VX&UGE%Uby?批NXG\wr&v~_S 1I_}|,8=؂}gG2郓}mYczEk.0ӄÞ4mަI=W BaP~[U'x9,̬Hz`p%l8|}tI ^&e7CƔFhD{CB#=i da23.",X&_Qmί9+þb[W'7f7dzm܂Ӯin6;" oLAs  I,jB{Tri+6FT/jT c\W-C\U @k+`ߋ ^ pПa"Byx L !O>@ܼ$M$]T'ۿT_@Ņe9(݊yPǴ4ȅB X311)"O[wcDd TJgwQ-ыRxPgT@" ;V_z3ڏy+MgKh_]N~Okܴ2]gJl@aB!fAn+f TkLzrCFv(ΦN`ds+bRg)3Ӊxa^mnk4<42'*įp 9Ra/Eg>V+8 H?HUrmC|S'"r_TkcKI,)Q"sۚ~Gq f$:HڪoqE![8V!@{ "<70kdR(3$rHE|L%xθ+/0: jM;&]uBY8@`^ ?c1q+1J«eM_2C>~ty3B^Ѯz!WLDm']yFC)y-R߅ ..<̽") Jhk4szs+Sub%>J,cg?+e0b!y%nuV&QKjLek7{CЦoc0$TTpʙ7I ߨ[+`ja;uG'Uq(09-\S771dβ-M^\|nk7i !8!З/%е7RB>Ȳ]mY1ɶ:}im]`{Whz?nd,uM ^F}D2Wन' IV)T F%airjNUU`D/n/Vtˀc??Fa_ubAF3ð *7*$Iy43seZvqw I/P^_|P Z@v̟g~Ķ_P{@30@4!ʦF,׿83i?аT* -6wICZ'،7:bCx&,N2 +GGm>.)G5_J<+ꦸvMf \ gcl5wLWd9 I5(F>̙郣j$oZD,B; 硇>@^5g;wB'@[լ:IiO lo~v%%nw#&|T`1+K! 7n^'N8zrhQSZ ~?h[CPC_~:b}T3֯3ΰ h{/BFQ/B.H\ґg;ZN+.Eߟ&g.PvR QbW;v'τ鬨&9^:ƦC^0w2o0zSdօ f5i1z|t i/cX=|W/%][1Eކ[i 8u>sN3j88yd :@W^@Z`'zDnYy תTjux]jh ~?+ uy6By M1\Jg~SPq !_T;0mi3fd0pNvߖwM^7DL9¨ W6E[\dH 5Ǡ#'7uÅ8wK?ڐCLn+6= "Pڿ(߸XH%%"b?I6as7uOR1-GoKzRj!'g>`_hB]K ASENtCrj%St)}Lw1+?wيiH<6"ͧF'CLo +1ATN~oco|oGB@!p;㛌iIMmDݠ*=i⏂=I,uH*[OerUALg)TTZGO2**hYF-fvs[pb[[]dLqq8tpbxWZ$T4GST612%QCrx*ynl}ttrf]r~Q_T\ȻIu6R xDZlkA8 3KAnFI@D7H{,r؉D+d^ D],LVUĚqga6#Aܩ˥s.1qpZb-gH[p(˃q_VPWl0prp_:v W^x=IYlU -ң;:)%)aqd)V(=0Grm>_ynYCÄ]cQ-~=뜒?ڼGB Y;Ar܇hmZi!,RA:sCH~ }j^KY!-B˜uh6*zokAWQx^UY~ Sy i֠蔬`;1~j/ёQfWf_;i}E|_䠉wPx&bQnoy8;q\TZLzV/ǰ+:] z*+kĦ'S)Mx5i22uIb; 覴섩;%sq^=sy|wƷM6\>C6<2(\CFmf^ŵ>^Åm|܎\{|I'hb6iEA%(Ԁݲb㖕T њw_D*qq!q?##q Ӕ7?W>?=_(f7'б aI ^"?Ԃ<>SCߣ9U^?F!~wy՛?T(Ow΄(9VF |?wn ;uV(Y;IH^Aљ[,ݸڢJ6p%vҞ0AKn~=Xr萉@r(t[`}sF.+uaVL2Qkx?={L]Ɯ{nYoYJh&s\ K~O1ςUu+9:ڥ¸0^1GbA+0oE[?g;CEbV`8enyKS8C^xW;E`dg6UY/Ԡ'dЭͥq2լf-)6p1|p/Wbxj `-#y*s&<#{JIȑ'LxƱQ?c;ƝGNjpw 2l5qbEAKxΒfZBI, Y8 JKJ.ewưp畬ުO 4~FR Rޑ'w}rG&8&Bg0B"pkőݏ~ MAoN_¼B  [=Ag@KS5J(׭0Z+^rv w^)k_ܥBAf-ܱ(>6)1e~t%Vl DR5NxGMQ^cAvu.cظXh^BПlRaϽR63z'%'$9[itm0-nA:H~j$[X_*.1ڋ:'xJ00Op޵{r٨Lp}ݚZ PBQ Gd@-oFP鏋< $+d3HC,۫S(aϨ΢!tIdn^iI蕍ժ6} uݮئ֋bbdPk{R&FuK/HCָM~r:ZLG8apXGxݭ.\ɲ e%.p8a'rFw//"b&#o^Q)0!X^&n]oȼ lXZWI >OG\WpnT{F+9e^gpEܰ('IoߪH!<N⭿U>쾱!: dV S^D(UZM?#~S Wm5,v%6VF zOe*JSu8uAU&zf3w?fE)5ktƥ q\9CsvhNF)$D#r!/}7oxߑ;[;`_4fni OU3k{oe:}%ު'Р%ۿS;"ij쟀xkޙW@+|+F'?EWgf?%xj$s PZxI!3Dv dC#PGyRIinLi_V3mZreqn+Dvy(ur>rNc$b{SPH׵9Un+=4 k̻B/*6-}H*{8Dx-/'(ɛS?-1}E:!I rRo]n;r:^)<mr"hJ̯7/6iw%pU/1Bl ZnU߂K5RV{gZ0$4@&hD5]e,v:c5^8/B:㲺܈{[1,7*Hd Z &^R31H-9y 7H$`F#_ܔ; s" xYDYR\~}kyyL9 {)jEEl0jCC 8oŔNa s8soM׍t0 \jdG>qw졧9ެ^k .&#_p~w bϝS=_D/l~~WJL)Q$ JY֕&PC'΁ hLi9*a'n0 d/rtFAVW5}ޯphÇC]%U~ΞD*SOze;@mr>ɫ}98f["yŻ1V81ctA=Խ za[R +MM8Nʏ3CzFGh}< ;Z}sʤ [#2/F\o_ھ-tz"Z܍~Y9!+KM?6mNo-[i1D1k_6lO߼]ڙ6+۶Ζb-]@UE-oeuNG]rkJi^kcL@'ShǠmygٺvR Y`(\߅g8 Wy_FG9 hݻW~%U) yz9PDz D8\A^S=IgmiC}MlK6u{igv"|b8t2i%L_V-ZuEUoUiJ]/0I WGK! NL~5R-T z"_ WHH_yfS;TyS2[OR.MTBD3PI܍t3ƉUԦS#\c?'k6͍)nF%*ߏqN?i\phm}Ǝ I? C:% .S/sRfKwE}*~@;1tƠ5oc-vZzfNv1Lc93g]:~p"M.~#0U]wμ9RXOI(1iVV&eOO$#\UH8蒂;cHnm[zލB[{窎\?\san/Zm`̊څM$߉i/0Xz@r%h;"lwJn*#t<ԙkWiОcxX+Ќy)Ko'%: +՘{m:xC1ۈI+5Ds] }F׫ʼnzEc&ߵ Hڴ ߿CٔˁtcPBX븯䅻k\&mKB[=e`ȫݟ}DV rFe:Ƥۼk#_W6'6 GM-7^.(%\Ҷ6yD8:rӅ,b){n-nCHF`irHXD?l#&ȏx.r5QiirؾU'Tlb)90m(k"pV V>1,rG_y&AY~6EV"",Dky]g=$|iZ::닟rwbwFhx 1o,guDB;Y8VOΎUsb=gzqEj& Ju!32,q3Lx*~ŭY V}k+. $qtw6IRV2Hϑ@L.vR1/kaKI#D] A/@A))^aQf4%U^fA/J~4āp<: ]F T3ԗ4Wnms7u:RΊ;U(O?F' !WT1~;-J x4MT\M߿Q=rd5 l]d"BYCic-BQIH32sVA< lX=PKG1 <21S|T%nuvola/128x128/apps/kaudiocreator.pngUT ^eAPQux e|wXRa9*9r#2+2mejYibSiJʊʖ8Iܥ)f)&^_/炿s>y[|uPrG|r#:W.8(c;膐ۓbF<"cpEDD8&vlؑ5R"ZC'GèfDh>y$8̷p|3^,db #Wu1މvEx}H@̏f2P2ZvZыe[6U3eF fhU#[Z`!OTռZw4-iAw1=9 }zaF+= *|1fj}eJ &fLWhMou } +ooͪ7xVQyI{Iu90~n4vX&4Vh!.lQlIRt9e9tiXOry&%6ƑbkuGgJ>Ʃ$""U~˗)cP8ks2` O,.Z!_j)$`IFͺ s8,h[[+k(pbtQam'!YꛬXCP%ch 7-*y: c$"|-|B[M>wulNbaPBgpq.{=6.\UIrڸ K1Ɨ/ښ6͚2ˑiiQ05i鿻G#Ɍ2ey0UT{:t3l^( {AiknA"uV[Q#@gB ƓL# :] O5.3@qghL}$^-ZpxNkthDĿfA, t1H1]\Xg8rU06&PCD{^ _4+EIϘ:?d>R,6V"g )T'wfW2&7߲ܣT#S]SIi&?y*6&s'YZP*0$:5\\<XG׶:+t`rI2){ \֖3J`ھjXRbeMjWHTC^%[uZaym9A[],T\dlO˛Ҿ:*~!ߦf. Rmh,D08(!חi0Pcdxba;!6p{+HQ?ӟm%3"\];a {_ϭO.GV3a=N.%l(ӎ!xqc6xV5iE%܃W ‚ c}d{bCG_qLE Rq'H 뤸ގ{YFtMQ~(dM/!n,g]i]^͉96 YcF߹OkqD3K( NX&艤Ggߤ<vόW7ȧPvuWSy_{{]~*Gu|H$f Ucڮ&!mXM9i Β_bC! 潴T`m.52w]nW?zIk# yvaLOHkqMT]NAEǙp0e6QUB9 = vNK >y mF(< j'z|I2HCMXۖ:Bj4Gl㣓S#'&.*uh fPT' 55W'9T񈧸aBچuu+ 0oAR/RpC;7P_sd90نIv#Ch%f\ *PCD2ʝDA,@,TO~svkYޞfDϯu5s*8+3^CSWKDE$GWAW!P0chnçR1z<*lU~ l>BeCryl\pd7ֵ_ LeةKȿ~PH>{j+Brat0!a9,:tS`wwOfK+Jr_/`sM|oN5O1Q )RGg_Ìw[E\ 8-&Ӕf*"G+B@CiYVG;^\z&WNKyTH4^t#MJ^IMЅ^ECo!gL m%7P OW? l"DDMx^z Hr(rC3'MzBX!{b=;L,j7_< I71 'MFc}o-Ё?%@e"v7!,7L[?F]CVX,VŌA}:$`UWCʭВ9SyZgi88WNR&ջe]@ :E GHΞ~lXph+Z]6O4//K د@02-*mydB_cg}'7(lLYU pz vVpGa0)dK!OnݺIՏMvx_C m_'(ɚAkZ WP^Քjj 98qM+ND.:d4H}8 e*,᠌th._qKB膹?FX%L)7Oʰ@4Ȉ>3rlm\I#a߰ m,8䎢4sRr;ر>48eo:ؤ*2ۜoSLXQu-m[c{f31=:"[]f?LuԣIA WrDW@Ɂi䕜ZbJpŻ#}+W<}1aJ!Ty{@p@|@wM@^FDU(\vɝ)\ORk1^3vk~5Tj{u(I%̈(}{ce3U򚩁v2>(({auTSqHVq}49iU w^V &mkj5DQRYqpUfp:,o&k ;A. Sף-88%=u`fQ3?CKԶS*R6E`Ӡ'n+LK#p c LݬV+?@#ߑ'W>ޥ(Xzs->`qk3m&ňTۓ[uKtRŊUЋv>JpO$oT\)th= Tr?ER~6E1u5z)[FGeMwC/3vAL1Z(Ձ8b5 kȰOh9HOp>n7^IVX%DE;<;dkm!]A\P61 wrջx y53a 1) ipXEH֊U"| _*_>Wݗ6ȝ^8TVҜcve݅HY:kſHm)վ΃_vp|"~5F)k8lE#=߇=i1b!7F<9=eY^/A8%@L(\ѫ60hs]8%:K_ŗݴh'C;>cCVgt~`W<ֽ0^rY;?=ـO~%*c1AF^#eyp1T $X]nUiʝq-5jxo"B[%0zCnuMlC̬5YU9J/=8WuGxƷr~K .;u rcp5¹/p4fe:.&FމDhlqGd"t,OkS`Hj"5QH3ҏ Y(z]3r}' 3,vS?rJ*UgImm#] ¿;ɫV@/rx2B$4NBgp!L5i2J;ޭ;lZy`JԛBWp-u,&ڂyvC!*Īپ"楦^ mF2^"YTzyzBnǜ)'uq-d2xzRs(Yx>U9X^Ӊ)k >̢y=ݭ#dr\7?QÀ`,$魿~kdمÙv?2{T㚕8qt-yH'c9c# ]Ky 3ts&㴯CڊTљ,x<Q',qE/x| z5{/bt@`P;;D+.ӄ:v^$vmPcO Z-gWS"o&X'/bMW&[_2 X_b{r $7%1%vshB9V˟2ڨkUâbbEX\$58kUWq8VFpR50ݚ<3YiO5+VgFzlk!GN;eaPh0,M.McSi54 sm5t|'&q?IXX =:c\V3 տ0՟k/_+ZlWoؽ,rpU92n:]]XexBUJ^hub&s?) (˟lg &q&u5+0!RbikܗFš^c~|$( zuan%aU A/ϼ?"W~mI|XUSࡰ6nN R-Zqz6u6̵Y#OTDfPGyȕ)V9wd|bt9pmG/v].U:Hg+#>I=;y'>xӋgw<[3Q8цaY>4qv<>l̃Hq$f }=5i8DJw߶&K$\L*f7,e_A?7&3#Jm.0ԟ+kNjb>X>ǔvSRoZ_ib،)+r鵜 w=͙qIgyr&I5j 18j V?IlLZ(SO^# ;Z'aOhY*`I\tW%!8yݴRwiؤ/Vz^l`j0ƤntqYV3v qKtqƆHH.km6bck,ymcP 330sſdž[bx]|Y"[I8$,Y՘5XXJ:/5Ϳ orhM a/7Ds;i_+ۚ$QV]g_cd4#Pk` ؑG5^$l6n?t!:aB'bbiLT-BY,|pLXP2q(9`/pc0JF]ƙ$@+]&˫;*19'e#W*SK풓wz>bN[WDYYLqwj3cAW`po/(<L|!B;/'t[D?ͬe $mˣo ?zSk=h:c7bך'.k6+4Xr4CܬAynhqּ DEZ̫i/MTbiS$<*K}^d]|Nj6,?x>7=N'6R@MmO)9" }gDLWk󦕡_#P(yI w  gWW}uR&h`Xڪo YGUS1>Br˶h6)^KO̓!5z%ʇte?x8*OhzהN\Dci&)+E|&FourtNWw譝Q%[\9S NTo:`>HLJ[ZHK*k+j|Dʚ ?c(9\^SVӰ靲GfPas/LH xaOZu*Y5۴dcs{chon㟃)ivkw0,w=*"ԣK.2 ,G :c ~ۤBaz:.1amDF O$v}=Ƅ=L>|r4}c1) 94;@A8Ŋ>&Jl'vؕ5Cи}E>f[rn9뵲Ɵ9#qVkEDlL_}?wXsM@p<c,f6{hk)_n@qbb@XDwfv,ols$>mM0kpLO,b*E]ِG9T^ט<\Yorlet!hc`JY=b4fӅKx%X4Fٝ цIkDFF:ro|Ik-J.:Za'k0 Mh,]^ዸ2>އnD<}֓lW+0"v8G]`܍dcE+JoDèaU@F5%O:gaǖxJ0wߗa! |jO Aix \TkF/~?HF[Ej[.Jcg婯 N}rFWdOb &_|kWfj7t[D$I땗hXF9"q:W_[LdυۅǷIB&dqO%BLV{'΀C≞}"m:7kBKib ;ofr`濻\DC5tL9a$'GhG҈\(q9a[rԡV-W&EF, \bgVxy};_4VNkZLʩZ.3s߅c5bUUW~O:4dˈht_L#lyz =~1G{NL}x&!8̕C'ru7,[V"n9F ږP GEBӃ{vUمQ(w Iec9懲N.zG`ΛvM~ɩ yI Lfxi 3wdRrR"JL1s~`jXdl\dZ W:9G"Y'"ej%?|u . n"?: ho!4SU1@qrßi3.܇82s_ 9kH6Niip?S{bQ/lgYhs\?ĀAW9nxiDZ' lIeWKK4#RiZ+6d kRS(Hdy^;ZuAW4i,ih!@$zA}\ w3݀ ̓eUsgvl4-3*JICCvflr0`x3EÏ!'2#\sR8ZRBA5ؾ$a^RInOjݠLW$a*w= 6Y:U1:DoJνbbG[~Lz5}v.`ӑ9DwWML ";)}_$(vQ0c!U U |sykkxwb#7Tgo; !SXqY0jHʒ-=(?gLӧriMeخnQi 0ki`5hw7\ Vr>J[6']F>*|d XO**/#AuIYR?iRZ\Okd3yImWΑ(P9¥X`Tm |ne+{q '9.\ۻ쮐 Gjs h\u8o_n?Y_NSC@xi 3@޿/f'oJY.1A-Yit]hImH86LOSAN5e>PXR✂Z|.@ULψA&?1oTa6K VuDl#*ij}NMM8NS- KƒJC2- ȸ9 `v6ms grExu穰_ UMj! 0ӻ8iwqʔcuNԓTX1"9U'=.7JHjr6:uk9: v„H)t+hYRmwepj}sYҲWjp DzXAm0B{i0ѻj<xN4d wjѵNO\4y3,@'@ZWov+pr,336qEՄZbQ>+4+U `D,'Ԥe@5"m2הB'k2-UWuP+C, *cKP; =ƒ]XҸ,A汭|- Y._U4KC{_N^u ZC[٩PΧWցj8+$]tc?49ylҗ{y&z<(=LPYNcX;q?)#vzLSj] 覤CeU'a;a+^S#23_auƶ8~f@5Z1 5ŹRa4 Nd{ַ {361V5v8Fp2ߡ)>;G*O]͈>8ʨyzԍwN^NӺ KKxsv ]1}a#-#~\i3bf\,f)^FNo t>/GI!9>+C Q?BVI2 ߟ}&"~Gt^;J6a !mъ '_c&ec!S|BWW01< 3$Q4Pڦh[吳q7z}E`"T^`V{c*&A %ur3J_ӆbKf@]:!>:RQK ex4J28&$"D{:9k[[lX'!w7В;ɤ;8peW_/na%~ަr=xnؽ#ހF/bo\Q,z;iMX-_T8fSN-a(99xyu \Rڂ TEgGR Hߒν J =}+(ɟe"j7!_Rrhe:EP 4c)^^~>=mIogTdZ̓^Xx#OUe wrHqƩ-suٖxո658IpjDO4ScoP,Br9qT0c<̓gZrҷ']ic*&P'HN4te 9>GMQ` !pCŧg9'HTAĮeI/XW*|xG=dP CW霜쏅S)D b6}o*deW+2LCMTH)W$|b fo! j53ʊ}z7^sЛlHEr-QX .~+{o4{kX'53S+ "Lq2wz`p{Cm0$}Ŗ]~[=mn|nW;tOyS;o+V'F(Hq|qI;1%.;bg=H+ԵmcJv"4//bH%[ll^<SF.\/,)8mzz12q^cp+^?qpO^ؠ?j^a&.KЙĨqD3 +QV :?2_̯R:G,E֝3e^+a\~}<>KV#9=?m_ߣmh;<4_,3l"۴NYf}l$&m^ٲjNE®ssN>@qlJ ̃W9A,XPMy,6>,͍GJnQ|;~=0}J!Nޒ:Do3.ٛqEM7gk-5B:,n@ á]kW3df%K"mE++oUC%-K5y™b8yQՐrh¥ն6v)6WCOũy?#ڵ43nKxzӵ$f?)&h6A5)uMZmoPQqPA.*;zIWW(6ON_wkwTղ(s4:U '>[S{Z;e|\jfbo]~g t떻]EDÑ%Tjҏ?k*< Keu}7K^nsN$$^R-ԯ}r([j,S9\,G;?EM׀Gp6Ao@<EpwjtIV"TZ8"0ܦYs1mZ})ˡ5Ԯ `wxq4Z,yyfK/B7ICh#ҪdFv|LN3l)CJ6y*[ #DneR1>\7gXzNHW\#r]*{Z5r|$Wjz)j|-QKz),?_{^>ށJaU4JS|uS=6}^}Y~Ď%[w4̈́7!?j)[Z Yڕ+j&#plҥO'x"Ivg Yi/m>{\3|o8_R_R^kF2Jgc<7EY딘/?&)dD;TFy,A?g;ApEX38klT;3E[aS SEsC5Uqg>wp`bxp螺-d5;J$c_JUlt76*"gX~2_1=/yI}T}lj[<rD5{byvAgmީvHW^d^$1_sZ$14gHS@I8Sgb O gL[/yP48@MU_5y4e^]54ZlSat~ +|@*]SS8/3q9O qdr$ݴ^dhpFB@N\L>%5XlVM9g,J~n)}YR(^lܬPkH@#:/rI };<fwgO˜cV)ر3ee_g6iRJeVْe@MUqxZ_e;'CVd%cG]yDAw'Y4G@bGr¢hT\XQuHm% M=faIU_=7k5}Ț${L:(>C_H ku>14xyi =ؠxMdkL3Nj4)bΫJi r;R/C0PTfMVHI? 'b47|Xc#cC[F+na 2{m0U>A![RB Y;#LxiDt&\j}e?2L%Mm+kiӇ0HC_UER{ywA!qrJ <6T7mT7푳 s4F0\XTIN1"%HKj$Bң-l,JTҘ,o ϴ Jbg]hT[N\S(w&X؟ ̴H='c7ަ1NCvo:'t\ h05Fۡ3D2T;=zcGl( /y|،kN `ǁhrd!=CVd53Va2&ŔY#CQ0 WCE0nO%kj(WN=z tL4e").6IX<ǽ1sukcc,3(t_"o(ۋR0U~ %\:ωgpȽ2@?dlШǞɚn4+]vyX+ 6vv,Y^)>TYfD*ϳV~xڕ9w8x8w6F3g6Lkge4سg ᑀ҂ HUK[/: k5uQoDˏ͔`z.#20ȴL)>#_-!tе*dߵѝ5e3%oXQi좽+ U6eR<] Z$1LH7l߆mK[c'kHw,r;|E|Ş`Jh1򼼺͔ 8\N,mi#4;2#䑫bhْ%Y]LD~G gͲhͱ+JZk!*K(щ75 \n@%@0kcA|c|C'[谪EFxb:l$6mQX3oJ |oZoZGaxD$kz;11msȺ7I\w Jpy@' À˻H]A| yIt?!:j*7Mjк }nr_\ On{$)Iv_ 5+5?/D&2xҸm+wDd b콕*.GKn F+W V2Z,^AY92FVDBU]%\p:ZcluS`_Q؃FBy؆S P]OD.?[OFQϼmp̫ħhDCG2N ե~3mZ>-dOAb1wJfpvUj;\*난*I;6 Mn9 3*~Hw{;y7@q߄ܟvbxm<_]Y->ZqV0Su'12Δ=T%rs*:&&@[_o1^Uw(`wUlt{.!u[׮9T#= C!c;ՏF7u8]n3Ǵcңn}4Gv<|+ȗnvn]fWQju٫jVwrl*uO3#}B4YlK ^r]2ZկݏC%o0ogyNtDT̐&n?љUP[d93F|#{m6eE0L_'3] pdxW1Oon΂$/#ioYqpwx{!S`ߥ)1VZ{mRbļry}IJ|_Y1wls2M{ކֶvť/0e4QRb_=\ 6es? !ϼ֫{m'phLn Byy g}]QA4.ad'nd``[~TqN;IM/BJ++U=ѭUBݓ[tWV*Xt܀_fd!*:X& q"plm_v>gѲSMfQ7 %MFig tu!ZN-#J3e*of)#.&Bnο"6FyY8)nٌSx`/56?l"-N#1 >-*8פẠR&c=B;Xb^nfc^;]'Nf@NoU9Ά,uo"H0⛙8 q߿MHutr& &z GM}cw*Yf݄/G:B%eatuEE0N^吣='Ǭfk[1n R1H(MoH#ٮKU}ʓn/u@݃49"2euaT ؗ9A(.SN?~ r˸x; :Ō59LkeC4{J;~QQ;++ݨbՈ/:+O6/zu}Gņ[QIKHٛU!2 F͂|/x܄Sd/ܰ-Ś*9qXs=\TΞLeي4}NvtiM,$_a|'3 ZG#6yǮg˿]lQqm[[Ў6{{+][Nյ=N iI27N*oɜ(HxH>@R>XsnbeJ?m&5I%"cR >:t<.GTW0Y).E@,il4 e%2!XEIw rvA[`¸HrѮySfѿPCfT8 ǔE3߃`֣YJf M#e 4x%ѭfa+ݍ;Q[_T:5oHm4ùqE4d+tovpќ@6]}Q)o.]YF}~~i?$I]sM`La*?WlYߺ]bwH;vl㬭GH?iOrw3!׾6mJܤnDQ6̲e@˰VXî,qYzG[?'2 zpu׹7W3fDߙNx]l"] /NN"eb /㏵)}4z$(%s}WKq-CX^ Cyd?o+zm4hā/.ۯA \ccH)Bw#Fj^,NGJz@lѝ#C:ZK_b(y)_=PӑB{JGp߷wzG)D7@P%ޗw5tnÃ~/dwAY"NC /Ÿ>ۊM1amENqGlfO:=SCdž|lw Y>ԞPeøMhΚµw52 :s<2H(G{d ^;WY:I@P((KYR;_-,ҹ85#*:<+܆DZ"[x>}RZF#/E: 9..>Ou5*Bd,\ʜL G"žD@4U,S)o1|P&ȋ;җ"k{CQ)w+k7}c[+ ,wrW2/+ڏ.Er?!YE23>ߝ|mHRш![UWF1)K&zj>E[4O@/SU_f+垛'/xIgnԿH\J9 oTMRÃNs;eֽ _D.,&^FWdn xk?|{]$bi)_Kƽ.5آŔjѵi!\#Q$yRXCmCApp[796buЄ]?Ƀ%fƿD6bSn]?ǐ12o@X-ӬU\"0O^ɪS'js&PVFѝ. 4TR@~P,M0H8e?ZgwU3-cbîUp)ۮPWqAB= diz aK+Epc]OIkR}H(3vjl 9Rsir$>em?Ý/x0ψyoiE`yNDQ '>2XexnM4.ZhՌsiv>WǕg`X0n{H0<ۑ15Fz+\A&~$ivg (,9j9@ :9#԰+&2ǹʵكQxn]oչf4K-sw.t͔Ua+HIJk:^;uijuSuoOFf^ F7[e-wFd5}.hAv9_:T8wHITon)AՈfxhE0`hsfa|Pe[ :|#˷;B9b84ǃ/VPq/?IAYNm’xD ?~GKS;VMnhjry;bNw|cJުjSxG4]:g&*5R OO Mv GO$es[W ),d 2~%a<*2lM ,,#j|e~btF7t^CjE\t]qh0,Pzܪ][Lcw=eպuYC)3DLfkH6|zREARndM8및{6PN|^|W7=sSy59,_y@릈2Ks2o#FO(F^-o=CC(P(rKBb)hͭd~YV!3.48;;3?$Pn$릲gػdI5SUo1t\ȱj$_;D~v>{Ē9|CIg?Q~GPZ58Jl߹.csṶh!]&f;꿕Dl8V0>ũq[ɔ/-Y[j*lƀ+sT'k˓zLl=`w= &+D-w âꠐq%BIi*j{d{4yug0t-sM%?q@ex`7g)ȳoM"_w*D1EUݕ@oLܩ_Th"SWvGFAje&.P5Fc->ܤy+o$v¼-덄ޑl2:g- %|ߓ^;;6T$JD #aJ u>o5*yn *Z&~@%󔄥T:bW䑫]ԏ'_ W[kgO90H &ĦQ\E`oHն ^2 o' G~隿)BZ(eIaŊKV5PL!H:j.qo'ћ o9$voNb<7UDu3iOpDֳw~?emr*hAa>z>%'<29BXU`?`Zj Qutv]i@NW{iCz*6 &ͬ?ZOsɍ?"MƇ[p!$]@}Wjq eAk X;BnOnuT__w([gL&T3*]sUFNxBB$tVSE,|V(SV7K~詬56j!$3q:CM\En'xSC\K̨L5 s^iPӲ?mx 9t~%BD' JH KYɰĴmx`,O GXP`10ށj:h@&3NX !Ie+bJэ-k~a(tsPtS0\Q4<`bM%C ,C=cuBcZӱ^5ug\pG~7u1زp ᆭ^քi,2UT@xq<!!0"F.ҕ3`ݻc>Sv`cLYn+ۥJ> gtY?Eq:З9׬Uu/>lfk3JA*нi3mP~ A)߽YpB/2<"SYo7~7:l$hxu!gcW^e]Vy1HQɄJ7D,gJ7 i'Jٲsx=K]M',wԮl|v^2}@48gr,WFa?4)!'yo^N;<3F`Vr7L &O+nud̿e~zȖɂkiYD⩣ƪ~:[F# Ɇ[NZ\&k֤jzC~v?w zcK# %|zC/2!H hg3đM ~;B`ܧ{'o'}_ '"࿳@WރD$[_v]|ڥx9rREth8Jr+fcrPQU0+Lg>~1G;k'nvSj.-6 ن UroPiU71I^&kVi;~ө+GUJ{ 2P)%bp5S;ޞ>K!0#UMNE_\%=.ID+x{% 72JŰ7f?3Vd ,͌7)~;MKtd.^b̶}4Me7ins/z/1s%# [ƴp5/ԭs] $nSHBn_*Upӗ'c| ѭPHХ8|6S|XOxM□wZ}Gb3]:h.Z!`%(4ө0_GI7̗B&Y_xͿ;1Ђ.­SX*e5K>S%/^^=\NOxpD;7`BQ uUXƐ2q/>@O=r 6M`3P "T?H]lІbu& #+ ێĞ{**?ϑ yٞP+_6JޔIk}A[^٭ؑn.Ho0-j&޾*+<?VC#T[C]黫>g뇀WLxqK1-"Qs^cw+D6&f?9D:{=&a)> B.h}iBe`tOcXUU_g=·v}DhTV mcHxq{@%bfX,'SXO }oW`b"z|vkf:8um<уp%Q3Ю嵾hY[,i%~ʩj,kBHrYqs; KOeVȧxc,(0Ʋ^1PHJK4T>F򸮙[ri}ʪy(c*w:G:  aW'ˌ0o/NXcX[%IԘnn%ΫSpZ[Iƒ̼a}ndWj7iI[ WWR y;܅LD@k"[v}xv 4Hzij8@RVx {|!aj%VJ[D)XF^&LDM: 幥־m$o|uJpߧ*~gd05I3f&rgGɷ O߈KP3gi3g͕GCj⃧W1rl@ޥ%nJ bbo( ml@rln:q~] O3|g~,LHq>X8v)UK"װjM7ף"fW͍أ2ne^GmI=s`qY+봙!{޾ "mOn/w:|K՞A7nkx& qy[n3⤨-jc>7.h ݙ̷Kn;Hm>r7rbio32ēyf["9s3߾e|=V) R𯮹&MEwP..(_t,KBJ3$} ,~ w rS0;  ?f0̫ۏJ:,ڈ[ݱ6eQ #mC<L^r_"64pB$Ecf[=^N"w@ڂρ'"lN-Z 7c0Ϛ~wRWR4HDN"y4r,,pcYl 6ˇF~.|=^Ҹ~7|?S;rlE#2?"9_Y̱8 n=%Yg=k~!+(tX[9$rGbl X"BLƃ{"dsm}[†~ں{oO)?$C֞kdECkXֆ&:>/u6*Ҽ>#t  hJOnvͽly\xaѤִj_Ǡf5 ?.@*k |8NvUzJ"}ſn B?AQEp[]%Dkϭ~AQ^cQ/ȑtg}N(UN(kUeo >sxEʲhڑsygiqZvr3UFgW A OdZH^I}IJaCÇFby4.ntFW㘎oƅGLh<嵮Z?$aC_.avJċ?U0HY-j u?;8hv.E,G0JC{xw']ل,]ߟo@|-ÊD8)efbׂ;:O{:v&U,R2EʁP|D9qSV|Gn;A#H}y{ͼ݀%7)CktwВoA7S8n:l*:6*(n,MTG<3z\wtHl^𬤈 CdJpKbYd?Tܗ{5fJ;jPJf0:Eܢ򍢑l"u3xs|"`sH %Iװ);,F8uRxGǥ;KWl47fWP~յe>.ဆ~<DįO%:Jx.6lM᷵[53+yy7ʎR/ƬtӁ_B$l'yw+?UΎQJ ,=9U?FF 1½zY߇p~NlIzLg^EkTDFn^Vy02B,L =4Vȓ~ц?TIW 73r}#=|&&)qXRSbsڏHÄի~o5(/ƆOiu/v &bO%~X`јvp,67rх/bn4AxFnLX;gˊ}LSV8dj \3D v LݑzuE PCX&IUSwBL9oB2aWK M_Ҹ8=Hc`nny{ƺ;Sճ 9aKf z}u-C̫gk (؊@yxbOl\B< {b~ {k+ft9B6Dxڼ'<]Dphݒ,3(Qtq^].'IIu٬>u6@z|`XY͏1e|2ܽ/3IKaW)6׼]X~Vwyw6Lw?5~1:~>r`qۆ@6@)Tka:b (RQBF[1ߩfVwR;?'4ɑl!\ߵzzUMn||)YwHea3b!u`9{- {}X; k㯺$78tiS8:גD,UG-v\@v.θsKJ3rkDPM Z8] e C{6R`2pomw(әɎoٷ_B}q)_xԯSYl:8po2GW|`DӃ. w;9Qd?t@oϕ@xtJ@ ۽/"L* Gt*`5 ~61GAJ=hC%SlS(oُ Bj,P 6ߨ!()3066{pd;iqS,6Њ͛e ݙkb4O)nDAR%Bj(X([&8|E`"~RͷS9_8qrit{S Lr~GVq=Ȏ2ct*b7CQГ"ñS[xk(ʂtZqEj:05}|W^E%wS{^ts'GP񋎑+wlEX)-'ۄR:?Xe5`cyիњr*zi+ba'- n!|o=j.ZbӮ[Q4Oi믳+VR)GhhHb?ebIYc4ļ.aho|ɚR RSv;ιև).ȑPE˸$9b/iZ=omO5X~Ⱦ̊x/GB0 H$ܣ=wY]il 5&e&ݼwq??Fх{Ċ8̓_vnR1tykqyVnN_FH]WrǨ/{r<R0v3T+g窛 &!6eu*^o=_a<ͨ8➰ n!H3ТRt8cdza#/Sc1!#3W;V:QupP:2⦎ۖYޤϼ# gfw ΄ Q7an(tq6Aߚ{sF$y:I5$|{kRvnop $.C[ISJL],K>V&}o[0D ?kWfYkBQS@c곔N҂(u`'=t2sj9Ԧkv` M*3߿Ձ!<H0/Rۭa?}ekw9l#> /T5Y%LƂ7g^mPii6' ]ntј1SJA~TPևif+jG=vY [W-tPOcn 5tXkauGqvV3X8 j9Eĺ_A3EE i@u#n|*o r{ sw <1|ui_CLTĨu Wn]BC,iV[7c<55.A֬]G,1d{*[)Vd*pr\!9|UeIU.F1ǚP•յ̬%lU vf 3∔ḛ3Z3Da7rdO6gA_bHL +XnO7Gzdk*_ibNeկGw Ka⺨;%)Ybeb ZIǺp< F$/}+&E T }{  $Kn'6ZC/{;q Gl¨L|/kp bʂ5@KoK7OTb::iՔ<]D"(Ҝ"OK/i.d;k`cw$-"W<j֔{vB}aE:IS wգ"P>^^(R}†7 @Kjv1Pkf&k@nW\q6u=FzE^){Ll.Fi`K&/~Cyb=G;*lGWB -OF`]򿥝d[G`35ӡ{cw=RfJkɞ-f-4Уudfx"3!>qwKBhuP|چw-(bUU)b~}w;FZIE@I\76CR S[a o0"&72QX ;3QgތdB%4 KhKhi81kvl5E?n `{aLd9]L? _t\&p{8mcht!fp1+(l5.vKmGՅ_!KOZ ]=0̽YHKQD֍"f=g N0NZ NÐ\߃'Fu"pLvBy9bu\6X^ }tO_6 8_]N //ҺTZD~u-=tg3zأOS X?"x,m/(|Q^tu}ߖɀ6إ1kiA2A^-٧,$O0LXMmg8ݣ5<͐:'I\rh3AeAz-hN6-'*q`մ/1-ot5؈dDC(Ô;5h*k[X>=4La(%{6OLl[9Y,Cz|~ q(eyC5~Ӛi@,K' !kL<ӭN2!d@~wTό^@ 1}~k/<|Ec{o]u.cqbW&ZIg,Ӂ[غI]׷J|%F_om񒧓Svj0P/P2lgLU5\#iB]HrAslvz,ĶJ47;}CA-Y!zoyqJs%OOHQiK7_ Iv4Cl5&MK{%c-ef^8GzXȧKmt:>w]!t@MO?L{yc,ZZ~4 ɧYQ%(\ iD4]ͷL/9bQt֌%.2ާO'#WgkT1>} +JJ#qSnSMbB|9$$tO-~g^>3 5xVx?]qE]q;t{>20Zc{䫗@܃@)p(ţ+o."g'TJvDnFq`qk}e`^**ũce4hQ>=`23l2 s]?И`ne "%1 %u5RuBSz{W~0ٌ#܀]ZPKpH1ӺTU*nuvola/128x128/apps/kbackgammon_engine.pngUT fAPQux ewPS {QB^һ BGD)JGHRTQ"$ BIy?$wr'^g3;QOg'{WolnԳwFظNcs{ߥ/^<~1)(> Sr>v4,(4%+Nl'rt-T#p bC!8@P`m1* o& na+8AstX ˌp"`| U.sI\k>SylB0=B (Hp؈YFFBŮVO437gi:s ؛WoRq-DuXm]tsJWp`= oN"4əeA]=+w%(̄uF+n(ĹHol/w;=#L."8=EIL$eMvyÕ%hcU&APak}L~KN.$ -ܺFE*Ӛܥ%̇TmeD@~5>\*hG.Er2.*TaɁF?g >Lh!K틆{T_ӵ7~Ūv3mm"ġwܱ;u[s;;02nPx ߋdsH>fGl[IGjVQL]Jޢ1Z˓rzQGW21VCt WٳWw_@u M7J%I$VA%4Aڻs8[#_۴mvȎi(=t4MTRYCՄxJя#Y.yyrr騴o 'NeKF+t~j;5AS% >:J& 83 k#g;) k1;CσU6GdFNHIi))U;]Yƙ˟g\I{^)Y=Kxv}jŋ GJrmbC k@uϽ~([ |7(1u&ܱn8oWk и'XJ<xYh?;bZ/,ђX_f?u&6}y$(x5{ pb#L>r>OZQOZiߏ`MNO_qV1GTJ㽯't^5=)cxG{т k{7j{AG 귧5a|f]}⥍7LgUQQy5ˋ.V] <=u6,0W`wsuA_ǰ-SAǬ^yJځ['yVd9*+}U<4t?ĝOSe򟄺'F2 ލG(Mui |=T+)6Um!pZe޳>/8ğMNW?/cQxpWLƱkOqLĢŽ?qN .u{qb3HzH6^}|wOOJqfcz:سT!]>(մC_bzGOT]@YY"=(]ݛi@q+Oz /aE[h 2uy- ;B2=k*,IuɯGÏ="Q$eq}*"|8olݏp\s \~=hu7[\-E3cV&r?tҹ3ѹqEULf!,%rYM&~Wr\[͑U| &w.g&o GXZnI7Hk>m 4=}EՆ]#k=ޝP).&V+7=NZNj? tq}"r|kUpѰxM8cط!.lsdҡd?++^ RJŵ%߂>;INŝsZtRwU ];iG}qn+kܕ;ޯ>agJZ?dDAJG_?WҚ"J\{Ze MB}Jsr.sl7Qɓ:b5r#&t> k4'$o^qVz C&e7XmwU$#RW/r:=%)qL9_: 3Bެܸ܆ N VPmGtR=sN'W3t17}ɭZhhxm=~ql S\5j5p nʛ~/wky;?CfԿ@e~@ }$ي7_aD{-*M=q)c=L>anB ) q.-]?G`苅J CG|H8 5G=x+42]rBT9<eg.v.K y[[z5zɍj2b˃It "y0R.N.h"}&'`@ZA_{Uyg9CpWo֤ԈvGD{4 ><('{'Iy $XCci!{bT-Q&ܲ( 79ܴe}/n_M](~p~dyUqvx6GxuK7G>B) εkBeɥ˾.6;] }٥-J1M+}hIلOޝ~?'g-T5VӋUQ?t983<}f7a 򏤝LK߸n  iHWF9ZQxWwYa]걈򚳆R;ՑĶ`d̏/W[3]߹~^XŨfȄPL,W)61^_h^emz;S)8R:,Ҷt ,S >`D%߷\@]= _/_n0(NaxKb%_Ч}vȣH-;J ] :eYW=/u "ו6+}@]u}.+`Av8aĬ!GgGL#c!؂~7r^eG#~9S/r}Cdִs dj/=z2 kв\ס hyswd,*MSm *h)3> hs#/i:db)m6sְ8Dc=D凎 ucg4wZU4?[ee;6poEpOƧwv2zY!g)qsGGw2W _mYΚg箾ҌP=ORr8r&$|ʼQ}ϧkh. i|u%JјeMMmh@RޖR_hInognC~e8GIa¬.%͝Ҡ^I'OvNK:xo#K|@E-\s6H87g9vg ă/T_ي!j]L<ˀ-@v_`kvRC(aBCGpؐ0p!o,D wAǑP+ȶLbY|Qu*6v?eD>Pꃠ7:Q!E l1恀 h|ZgV Åӷ*lv=a^ _wP |ɝVTršvm}XU/ =f!;vKEn"ym-M8fu^vp \85`E! m_^۱ue,1>/γfY2S- hRK11[w|iWVgm?2rҊ Fj$=I_8'~sOh9E"9&QbwG]/鎊 SS8!mO26s8M ͽ4\!Nʾv>uP!nќJG 7'i \ /OF~)]yWd́zaN֯;d)wUޥ{$5OT5[$La:6}5Ry(NA1MG9<9[|PYHÊz:<)+Q;Z撶ousG{{o\hYv{9keizhZV& \nކ-du鐚C9u賹Whk+8[&V(wxBl ÛBΏf[ܢPdoQ=iRrvJQ5,S}mA -`2OYW;JNHyt|NwiD'ߓ֥׉|ӛNf0ol<݋Pn^Jc6[5F{jIqZ~'r8Pl_ 0{֯cD V]O,O ^Lqk}#]5ć_9/%nR ~2Δn-OԺ??'&RɌa&`ĢgpmB!LAogR OE|5qd;{RaّxIܿ\6dr]6s\CaF >ےvs/FH0vePf2\^^W&#\`s61S/̞Wir-Ɇs*6rc{UEI1@ՙwn xd;n1_%*R$蒓X*~߰ dKye eaDQ_MMȁ*KlC6+'IZ?$ް'9\ dҹXvSeBE>n P\)}]8?yXlbPJN(˥^wb(uRϒ "s5 9-,0$&}[(}7$ŅsBX0aA$i0sE"k8A9Jmc`rV* & J  s!i+vT.㈝Yœ+_  Y~7QJЛ)>.*yCAZm9i1aW^wΧ>_|[VߡA)$jOeJ {{KNss< TC4b+*FpyG|a>ԥ-k`bA0Ef2b=86x I1*t颤п$S:jnPQDfn5^h{,ȴS,Kx! ~)r~ @u<[҆ej`&+ģg۵Ͼo.ݹ~9kꉈY%iػ ri+Vvazt>m,z}m.hbBsl#*0S`GIe0,4;hsOP^}wa6#-5lFC1XC8?LDҦՅ,,USoF^Ev:6i_zHņ,m ;`XEho $]4I#O"&U 3DK{᱉%Rwջ,{|}(1Zݾ;;oޤE.>>+u ΃Y*53?gT^XjM:T 00#MYbuⱳ%by;ϒ|>w&|e?r` nz?38v+[XHLX,}.4_+ۧxwzQ/^Ht%F}iP NӌdrIw 2H|ǵn!t:/7fcSfPchϘ)S}Y&K赐%4!MeL!0uא~ekxPp98ӝL"=T°i;u}X)lhC*eki% ~Ev31?{_ҐV~sv ԃHgpr\tX/\ׅP@B 6˙W0yc0Wn*\t C@ҜL-+RHG25::XgJ䟾5F t ~D%P@bR cGz27?Rk{& 6Zys;o3"yaZZBkBe! &AIpu yM?4(_ZɵkB:n+]9+')zE\vP1A';3.ϪDyxpUA{G.\XdT\9"@+D, v$(Է=K_I@H0 <:!X)?`2 WSvpPέOYUl= NC"ɏ B_sRהp/߄;yCo,Lr؎qAe2]d.`jU믋DAck_pHÃ*(x*3s%n|T hQwMUɏۛH a gB*iL|J%@IY¢CdQD2v-!s#6%Id .z6΋zwG%CbE+@ngVfSMaՓ h-JQ1P /S?.&}hV\+j=E9a捊6 # Co+ePz*Zk90Ku!*3 SYvah;z9; T mVA Nxe5'N* i|hM6jɆ0.`!ssJq7*N,Dl+?Q!^GX= P׷ݼ2r%m g{01z_dN]"+c6ru yÚȖࠝ\2"XC0XYX867~7UTLoymmD6&e`cב ŴAcBu;|CeNo f,[s|Ӳ/WbH% {.iْgs{Pr*CP7p(F5v';iMQi4l&co(P?/ _FrP!u(>C-5-kc2fnuq>0yfñFj@=nOtzTU{GYe",qsV"G5}ۊ+i$KC\CF g b s |01tHac5~;w͘󯔶8F%C:Hi K'ĉV寴灃]2`UR 3& V!wZ$K؈03z`˭BzCHk/ׅ(!A}> ]Gmq5杫^24Y @?ϦR˞FpذCh"0I]R]c oYG,c3;MtC Dǻx)aq{Bu˘<%ϩ GHA g /㍛"/| 0:`j Dk@T&+}S>ܚ.QWe'h%( ݀~)DUH_#WkBh}1F:)܇ cU=G2܍R 1'5- i%*o]cÆʆ6*NCh"ӑT9&Pf Ru9j+Xd,I!_?GOFLMhtJY*2M2lV msL-Z[Z~ؐvLse* kJV׽pDԡuX7\W`^؂X󊸃O-\tWzL_2 箺(N.Ȫ Y-3pjMTpjE]"Dnmz&>&s5GZB RiHx%؟oE YM֭6*r$k!Y ҋe $xT~Ou^zDxB ʰn{in\ }" I%?)/ھ)HgO^?1Zs}.) n"Ei28IYԭ=AkS8Uj"P#+X{5etGk?Zr6K[& SoJW |+>V ~$N:ssv;ק[RO~>ئP/X{K+0 Il.<^ò".TjUhm?1褮輲0{M\u&>b9*7Nf@n_4rfB^=]ߘU7ﻏiK$XBF>WSEoå{J?c<U9Aˏ:=yA6zN58<l;()Op=1g3{}Y,Ds'og)IҬ[P/n|.ZOuWp&w34ό*dW ' >%<({:޿2UؔNeX2Wu!7+ :'ӭqL?ª93ӈ{w7\\5+o`̵T( 6P_岸"Ю/-uD?wO)B[YQ;jTTP ߥ r9+ .<'۬ike# A‡ը2 k4s%^?*zrbh.@C#G]*.]= ֻxZ9ǘk'߭Q$*E*a|$i^iy 0cmHUD6̎K Su`g봝 p!#53a oqVa2L!p-Nx/r7OB_ VS]xa:^oO狼&D8ѤaR۾?'"g )iͤ[ -[Cm.k,K8J*7Ox?#]כhb#Jd؊+2˂>sHF>S>[Xb22avcUpqХuZ᧶'w !,Kyұ 2Hg-Ucu;&0#/=K% .MZ/El]mI!ڸdA, j(]37ȂՙE7#LRV)mԮn;fa+ y+},}W*R8?Rv!tO^7T:DqC6ƑHE `'d:#&[ Ge޴(EI4^иȻ$KMG@g?Y8Hm}&C{ gPq\ JW29t\wk㶋բ/&aR.-{gߟK›/Yʖb!iEb4Y~`~h`$$*F''u8@i bڏ譿'ǨnLPCڌ),@u=,k8WiU+ȃ/_ 7lM/67 V474 DV~}#]vIV-^mdRX(^@*(N.p8Ńn9͓? VdxG 0~.oֹz&m;,f>l]lL݅ 0 1 f3vPO;x_͡ ڑqDLǦ|C|vM#QU{!NmX|ۭ;\ӌb+W~j(b^1o^IrZS??eAj2wukL4uaK*_[RX/imZ~)r[e%PD#ִ6a\f'Z4|y-WȠB"^ JJTHx/+5VlD @*+ AmSxt@ ?wX9\ͳ m _Zbxp1 j:, rZ6ca#&ùB GJ1'Ĉu%пt)5XfP' BnZXjt<ʜYt/,o Ӷs\ I\ѱ!Ug^AU\P႘fK $1vj3g`:NtRe֏m+댗zL7-ZG zuLl`[WGWzN\͓% t.)bSCl&=@v]&7ws_+0–[3ŠRa,蟾/?a}HU-Koy4 Ȝ8P{yBQhD IbT#\.MU&y T>}  QHu+hRe%[ (_sed #[@qF<*S~ lb8~X-,A(>w,͠⍋ n;W"e'F۟lc/ގyGi.Fjh& IC̛1WIzz l`)..N`CY[4 ^fԮU.@g ^Xc[qyۚGiv#֟+¸OSw:٬qH'G|cYnyXy1JXDe5˶: \52lbZkKr,\# T8"R&  C(ptsz߭ryuRه5>/0u-v+$mE> h5%p1}-J0/ᾍBE#Ťjn:!uĞRVYϿH (r5O/s%φ!>(񚃏~LrZ D٢V=_78n ty0(7ɫ)1yT%\Nd"(Ln(;X;q =GfVJIf]aHϩ:=3ikP~F14)(ʓk7ޚ)`Ѽ'4W (EI Q1)XYyPEDtsՒ'/L` F#_)a ֐yo?@vev)fb0 uj~|}z}v(9 0~=i{qX+}S ^M;ȹ;ݻ*i߯ e6ZLcⱞe,DZfGjVVV~- 6dJL8-#~s2+AP e5$.ڜm> [xd < Ǵ˶9/TnW4A.f.v}Vy4 '?d`2ޚ5˓vGw[][@WBYc Ns֬_6C D*XA$73&(~rpi0rh\>tbcZ lv5 ƞ; ԑE_eґ%?1p.P[}J]2%WZ'Q+h U_Ks5?{0 &Fsvt X[j0~sP*S.Ca: c&gOFA&TxqR#aɻx3ƀg'il)`;w9UYz/NT_E 0) /%@2"3%(C!CrԿ'] v(AZnBm{uVh԰nz!񰶇96S!YSsbWƈ?gK7-)H$Zo1S= Vܖtl&#x|g3چjNh ӭ dܘx;rf@YYNEH蛰lEQrwnmfz/q1~|OZi ~ձ6p [eDzNݔkO=4 KfBגğh:Ab1l4T;c]3/ \QpW#ML^e5E]4%.zJ_ߤyd>t=! "Ť2[aspG" {Z+/"K" Maȝ9}XԧwAN`}(.R1|:-IN,C}p*7:oZ&1L ;]#d.$%S>g7ucG։<%)9'0489]++xX(Yj:T_~L$} if+WEk696RijEfӿd'*T`@8(sJW9{2{4vڳ -7_*ͫsDKu\kA46m=lAQV['̝>Ovm91`%#w؉^6wLY.Ԍ I] CwQEoM WNt*Gߏf]-'B̚^z WgCiGr6o(h.@6i|@HG-|JyH]&]ܖ-2s4͟Z/DJ@G)i/OĹj-:K ($8jky y41+QvEz3)߸]MwIҌ9}E̓*p$3,A58d `}Wx^pe-RztZZ,ʷO{h Dt<@F1-v94+,&p~;ns}}^rmäa{'[S/c0׊BaۄN+$GSAEgʡ]EP^t:관D Upby֭?~it3\LŸfez$zy}yz+|-gWf<7 4~ 3AΈڝqϓF 3?77Gl81z$ Q+icc+Rʧu㵽LTV3Ngh4_k~~b|2Tވz9w̋N㜜mwJ=,}/>@5nRPf? mw1ХWv;"2PV S Mw 9; kˮnǾp@)W z#љĻ<%DT'dUx +C!7"%3\+{D ΒJk6dQebI ڶ]Ày%US#vL_}:" gcfyJ1͊8;t@3ˋL@$ޅ9C268"%y=΀U# `Ā7-x637+'ѩHM,Ofw6uWԵJ&+J-<68! eq"j+f2MB%. o7sm͏/2A|Q#>bOv]R ;LafY-dmjk .hE?חUŪAR#VS''}} ] P2ͣ^EXa*,!_yw+E? ɁZ3Swޱ!g>^KDH lD~H^Q#G$3y9Mac|EqZ3KV ]R0{?cxuPm խri;Lb8>X<' {JW`iYi6JarIK'%>j`qÑo@"k $!5U:+cng󥵂 \'1q"8Q.F(dYOTwՏ<ÇlMݻzXW%( d2Mt稟c77*`u£ {sxcHPD{['I=GVQ/zp81>8=^xI%7Ⱦr劍__M_9^yh nbGEIoxdN~+EN7r6yr"r0jPoA%K;*hx1ZON h]/:f2B-[Y"/Mx4M9*dvt%O!0pwBSZ=U 'WoѳA̮!2H+?ޘ c 9.mKVcDnMQ;PG,4&!z u&G k kC!]  Vdo!oĩT η '1VXV,iREpT#ks;lK:ʊ\z.,2t29$9y?.iYĤ!?X_7iNnu c*Mr((J67ft0:YD~ErB(LyC+{3U9}zEi]_Z3);Xcor(rܒebKyKBcl_ч|:ˁYH=:#n}ȗ :;xڛ4 ox Un6GFGfB?{2h@ӕF'MP[yhrh?Vje}jkڟLDn0U b;;9U) 2 eL t<< gAĊxLdMw[Wӏu:]sj%wmG$k,iiD#(z_GgqN"+H:$0_Ej`n #Gm:Mn;5{^WKzܶd& Ȓ?ϳ1(Yh$;;-4+4 y{~Q E&4_I342-Q砚$:3k&G>6x⊹sDҨ5f UJ}j~<xcc)r]:}MNʣ׼eƱcV)tlLVg W 3/N+Yp>)')-yaG9+=;===i駺juTr*Z[%J`ICz*i"R2N T')[9$|b䖣t>^* N}=UO3R C$,REQ[+Nw6Uʦ]v;+Pg;*q@Cj_D,A&%ŷ& VZ&/n.s𝖄}Abx`YV$ L-_A({U_\H܋jZi.0C]\\<>~t{'rFhm|,f.N+jZ UcC/_졡qͦ>qC߻V Mu'dWG X, I|7oYto%aβ0ޙ_ ئ\t0O9rOa?}U[_y+/-PKG1; p!nuvola/128x128/apps/kblackbox.pngUT XeAPQux y{%6B0(\:T3UU%娘5  Pk{g{muO\#zIdo\r A葵mKU[=8ONy^^JWf|N[_(HKKsD7 YVzj|toOmm,1Sd/3 0?%U& aII섞Δ=䞫YggKQ[[XlU*Z{fg&Ƥ Iz9eP4*9\5:Ui]Y/냓̟ݝDhiiY2|ؗ/MX鑑DQתSv`8톁qM( ߔ8KA";p.]aKb0A;ܥh.㳂rjjfGD:g8`UكĦWNyP?lmmEe):0 VG18ໂ 3FZ/޽z&ۛͧ pBP1-x$K8$ ~X<ԋ0rAͻ&i\--춶DC9S,v0SOl 8v,8гP;M8¢Ph=jQv_<H ,25.veeڵ+Aeblllx؇bKgcԆC '{ fiV=w*x@{p-7K7fŁٳϞ=ӽ}h~F pc F ;VȾr%ښf{L Yo\ =6j=@tzeiia8.0Y>~_(GLtwO @qac$f])EfmX f Jxue]4^ꬤ)kll|附xRcϿ&jA}گ/Њ/o*Ԩ'6P䘥nrn=0'5TV`cmy'`j{%:xŕ/OgTW-J@ 4p̨Ѯڂ>YgWV,@+{Ή]Cѝl߰&)=e ]2ӈx{%OU˶hg X1d__S#9G_"a7 :H:Q۶m, \@:)yVܝA1.ic< sIh,d+j ).\TfQ_D7)U3ZNk=q(scD'b˜ȉmأsDĞxĖ`)ߌgxG*wg\:^RA!n%22?r>bNx9}kѐ5q@8VǓϙŅ4-'0%p;Ut{Itŵʝ5J]n{8B;!@|@#y)@&O2R |D˩ ??k8=T1zApQ|%nz6P͛u>4ܹ P%kO[HRDN++:4 ]'˩1WQ,ɒTtdmTD1`7&Čf: 2=*Z49FM T4~,GK9'g5@z*9^f;м{AUz˖-ӍټOlU깦3[l$T< X7QKj$ZWo[D$>gnEZcRTG (@WO]DP+W ;lx汿;V+3WgٶorN5uk2 ђ?⬨O:%ID9V (_@LC|=UMM_~ @t)iJ~<;Fbb)jdU輲45zȉMzɳךgH@K\(} &#""F xl \;TP8]d^a&lNj kw :I&weAACx"^11݆K, d܅~cbȏ%t>2G/"\?#~Vg7.lبBZx[vkZVLiD4E|-t6O[bE,ob\NVx+&_43ǘZl6D~cl}kVcQFaz,/8Fz*X# -U'JMgnb~h!bX6hO4ۑ=؍^O> t6.qJs]$AZ zOIaKHl0Ʃ}䔠`r{I 2ӴE%gYbK&1<`c|>TXyъ5/{Tc+i_n1MMDy|f)Ca ucʱZ@, 'ޡ)yk\1o:'<g?KT`MT]t$hibbU9A]C*FsIyghk)Vyۍ_wYf'9Obfmjoh,;&:`t\ӱ$Tɷ¬=M3ۼ.YNPdG~";|_ q*$^EJKH%|f]4J˻ Nfh缮hp#. seg3AǀUeD%CM,w_7\Nz.Sɩk֞21-(mCy@Z)u$&x唇f~?`\# n$N灺t,YxUߌ[']_]DBug#ѕQj}CyО5ay]r12g EDMm9'{  |uת%kqϗRYDdQ=?j4aދ+Ɉ65ްT-TyȆ[æk\TGmJwľ |1?I*uuVO9 M $|2S>|s`).2glW&>ZX9703ӾbN '6Ew z DRTJ-7\9yvNZĕ:F-{A;F!s`8T85Q{5ɇurTSW TtxOC Q:TuVRьXISa:M`)17L]Ў)n$}FD;bTVV7X =@)Sn1ՐB3,Lp 2Auc牀ЎɑggŖ9~4njYJ=F\+M떑w ,e@CY)6 8 Q/-|_Ya)۳)r8C7Z_Ciy&a-uRjyXZzpl|s(fUnIͷ څ0lۆD:4 TtMwŤz}+委OR0+&>3Uc\*jdZMN;S67.x<-0\:Ǖ$%B2z+.skvf}_JTC{i t•iOE +i2xg'a| 0F 6$G凍Hdq ym"/)р?16(gʢ|?C!6Q?a(!Wt1#:ޕ0GKB֚ k4U6kUdƂZHd75dl\rxɽ9= w1BT5Ax`#q뵇44ۦ.u6TVڭ Q!a&] WHjP[ű!ĕbJ,ո!`uΉET,+%TpuPRgUF}I>5̫_˓l= THUTJŧꍏ^ΔakHЎ , qhG8Xv !a˳3\)|aq9Y{)vg<κhAUߧ8_HҜFTs:~]힠5*CjCt_xygAIpS ,9A6"af>z@/F]p$7Pk: q m4J{gol̷۽{7QKK+ k@ʂoHEh}dYDxTAd=8|R2uH`{E]my^ކJWBu&/N%ZӢ5`E>V&34YĞS#/# ^-&0{*~g~EW\a'|~SF7#`ɂEѧH./Vް[K;NoK` +D:3JGV7tPM 8So YQo޽f x+YڍD, )QR%B-hNjgwL}"~NvK>w9 D(t.z(Z#)8ty?77\2=*3XiHHx Ifi2?s%`bw>9}^<"*< JphYVm^Ī;L}"qrSpQ⟊w~d!-بN b:jrm7}.04JihI \ƻxw@IfRH>3~ ?nB0L5R &R֭Xaɒ C.d{q7D] 'eQAg}=0o}G|EkMJ$󞔑,_ܽG>*Q'qK_c+$8MN(ͭ?p(9`csPh#p4HExL(2娺#ٱʶVc$PCW._~ ~A]A \g\>DP å}Э=IjLJY~%hXA΢͛ 81uμ>Q=6Y!,yr7Reu1%+M_@R7f Μ@kvתEs.Ro>tI؎=ZnCŘ4ST۹2 LR]f>$s^:g:.;*ƥ`IU~}}E#&s)Q'Pn"|(3"Dl{xkm"]W|=ԁ2k &LIa%CAdDe?pUXN43[| o0iI}DDx;~ZR*;,&n!%D7~s|s`i::N"<-pE}!|f7JﱑVU}(7y 8+-X ґ;2 n#0#ō͘UlMMJ|O;{٣Cʜ=r;8Z$Oi|Q72 |x'6 :5Ks6|UF 2 ul% SK&KÇEVz.Kr;Pz,`ZFNߝa>" kD pTqЍ@qhEpކFk='O̅bnqq-,-[@DmD/z ޡay+U f6>fbx>xrbBq?9#+gƉijBNb!W2&YN0K +&?? =]oh{&Z "ӕ;Ww[Q.}GroI-<;,~~Fn.cX]3AYxDo_}pd ?Guy{ vpv~T~nCv*%/C sJg}+7.M`/ ePKYN1 34nuvola/128x128/apps/kbounce.pngUT mAPQux {yX %k{ij23qI4:bYYRVvlhiSʔs~߿s1s')ؑ6\4 F@,%)J.;gJ.@[ŲSݜl8P^UrCyn :0hA4d |SI,N,`E?x>Fv#ܤƝTdJ$r+STCܫʼnfώ=a~ay-~4v!`PAJR[xV qeH[&LCw9΃43ڸ-[pXtۍp%?]d xJ?fti1_.ق<n+[S<*d-GsSi;.u(nORm){ói FZ?u@'t/;[.)::a7*4wp؏lz&{V\zH "P$gn:^+qj msˊE) d&gʏ)Sr;Q`CHfSdj>!vk0CAD1 O>I+ԾRRqjM b'_ika:qVm1*m*Wnu𔷢$8ܙ#)IÄ,ϧPE۸R5JDK-LyXl7xQ]j u^s<>%̃[Z <5l|JyHY]J:]3laio䡁zQ=E#e3Ss%_b00-6-э|&cIWȨ$:"b!k].b<ц1a{\7CcL@8T2-& xrS0]4dn3Nt +^*fJHs:[' }i%T UKbgNGłQ&D\٩+sO80d@Dd^~qŚUA'ї,RnmM܆iLFadO*% 5w |?c6X^Tba8aMy/{pk|iBb4C7Na Jp8aGl:%4>A#O9 BA5xq+~,ҌUex* ʜvF0is,q`+xM q2b:g+,UIV|ui|[ 9o/R& tq: Ҳ09bbH֗Jh4Sa$l%tT9gS + ɵˊwN|mNr3RVՒfyq p+3UYI ڟ'=O pA--S"pI?o. ظL#Nj墚Pr@+:;u-UQA1 ЮaG!cw퍀S)2 f jg3 dW(ǛI*'=du.`84'f+@dD y%AՆ0Ds-. :/kJfw <.Pxk GDsqyVr$52? ݺz0[6X ZG `$8cP. T GCÊ%w~!k>_ar =;0i98gDN"xY+ NcYw]&Kƿ2c o_EzL"\![z6U 9u;"T|K1Î/ ֪XnF@M)Z xֆ袌 wCXG85دK lF]VCPѩތD$F_cf gyHph,bmHlfN?T)h\*3S![Qypu>SL@! 읿}εT쉽Ӝ3̳,Eǥ΍h Ҍ`&q #b[ S{,y]xr[2 w>$8rMfZtF%*5(mFIjfF1(5BlLd#LTW[,5K/V}H?Qi_ۦ*/^B#FVa9CWE0\,ZuҜP][ԀxHFڍ>bgdA%I,f#(ECUGɡ# <ֺEֺ݆~!G d%RЀA']UxsYC݌ͩ0U/&?[KFuӁ=*wnT"сmAr줻Ǣ+8\5\I+9is*G-q؃Z%n%?9==.9@XS & ;WR)1-+QX'7 g&ְV^NZgݙ;1c<2vT(bB|)_dc@(0g &_%U 5ak,N}@]krQy+ۈJ[WkD7yaYr3\ؒgr+R%Rwz/LyɱQǟFF lFPp cM̚L?opGлpch1;wXڂ ǀlpO0¾ͤQ-("r=%@! q} h  Xmk.(=pAgQx:HStfSS? mPe$GCRSljA룒d}lah^ƙ4R'-5_d,}"/%#jb6B^|JlO"hډ/tzf @A vtkx5 qVVժ3rz *0#Y'E@3!Iq 푧9|$ })D`Z4\tv0Y:gNꖭ$E*9RA7Z]K;ˌn,0~lh -RA c>_yQ+,Y<%VA7):@V$m (nkzqԁqG֙ 3ѷN{a_>ة3,cUJI ` oX#/ß) LPoGp%瞾8578Ag(yܗC[okinT wï:Aq% \L|;Tg1غyH[Ij \AޕQB\ *sDǸbw9N ):Ԕ`aOO>|Q!9{.l+U}&ƇZZk2~Ube)1@~I wl!R5eӰ+rD=?iVY#r-i糨kyc6EFjVs!sz:Q(V~sc9pCIKAYv'6Dz,9++Z!gVv}soaPTր5 |-D6sQP`\SMsʗgKJ .U]]]F;RDr㒢cܻ܆nK;XBLr}8Ś|x-/,`_?<;X@uP$rgaS]1܍?@§Hl|,w7yQ cQm -{Gm{Y;S'GˡexcˇXקm-R? ɝ0/^^e&[fpšAr n:ԎhTcBD㝇/--+ }Vnh{eh"Yq<'y >s]]ww4]:)oWёf3D4#&QP.V~!HIxCfmYh$V12[z\ ~9tv^v-No oԐ`'[Z),hRxZɷ?]_/sȆK4esi$OguckgO]``^b$=X -P6Ov?+jߗ(1zKW rQb$,vIIsҘ^|anYޟ{8+B)uOYJ3&]+;aσ>jy~V% Jב2 NpƯ;@Xq?d* /K zĐSڪ\}u)enEwK5VX ^^_yuMcہP$Փ}t)/ 0'->6)7>iaJJ~$g?o-i]fyǬĿ|?V lx ^s]{MkGU2rHM@x\ MBW"} κ' oe ĉ45K3nԦM^>}~,v:S<}c;iKEQ.tp:~A!w)Eط)b&hps7bpY3[Ǐ]GݍnQLi˸W~ 3*5`0YCPsxvo*(-.ֱIv#u˄_(Oۜr.5z:]Z_fۇXvR CC0v|]BrN&CG>Es 8Xee=U5['p҄~Tvk=DȨ.]+9rd @ \!{Uw~os+)6qvi5!SݺqkVp4 yslY%={t}KHle}/8j6=LS2+ Wͦ>O=8}E}\:-2}Y9 lecz[i/ ld`ofV^eZ܇\'8TSfH*B?Q1OzFSx @a@:;/^;A^pYC`i꿩<fvQ*9,0=XGCtKF8ٽHE5HEquػ3rL._GvJ .[6 K 5(  dԿL~A {d_GLL<8O>\?1'| 2(>:Un(u[.C& VfhC/֫MAႏyn >[{*͊}pU *];Δj<:.'OgrC(j5 pym O 2?n/|: v3nHF5Jhyj-c>>EG\5ư9sY縗s2]*CM >z sfiƊ$VᣳuDs6 s[2#㜅k.-__^#7?KP {SMΊ`cOv'mdPh7]A @̚ ๹eןHyҙkR7PvYԦn2<3 XZkJӰk$9٤n+p7"&׋P=Ss%W5_u,(`50h"Rjl4zHXfl-o9Ov6vG_ Âz/-n6E)a A2 75:0h \[5A;Gф?Zg}XqW]6̗cl+3olz⿭7P.:_slg$KO ڀ`XBs0t}ۻ5{6MGN|B۱oJ3_NLl,F<6SبjQBOTB.<#;~^ۃ'*b{Zm;)yp26MN2S)w*}Y~v?~tXlƔH ĭ~S.~U#YP+ݫm K⪗(3_~h].Sp bGBܑWGrE} }Ud(X[ \Dr7>MPo(͵J=еdQXPLusVfPZĘ]gkӰo'2R{(v )mSJ<BlW*.jpćfY^`ng4s B Q( ="nROI]$ {( >(Y)d~fE1lһ}YRZOnTkj7!>]34>="aaV!ub馀 ح$E) EpFPaՐXخ-gw?R|7,cq=N J<Յ$9chכ'GCoM/,+畉/PY)>JS,?J`N3躚ܸa(x)9%2nIS=9L;zvI{Vðtc].csY؛[F~*:t"Y-6u?o_-o=:#1L[ /j4UCo'9;^N$G9M "|N SOV&\:2n3Gѡ[ќ+lǜx:yލ<[XՐU1́WIП :N7߭%7%% BVBGٙZm/O5J+ؔ5պ>*icZ_Qy#LWuGu ̉\㿩j7Mg4C5QS$krf8äTiTC*Ո5ԯ5X"4uzPУȢ $ǯAU='//ooεǏˮdtT催,#GTvI[UᾛQ D&>R[iČ;#$a$!<<\r~}E&JVMS]]HxvƍWİp_DD'_G>k"\,u J kI'9ȼ{0#~T}zN/sv(hv p6̖ӻ$]JLp'p\˭O^HEʯQl!u 8{l^ePTmT'$QU#~\fk1ÑzjrGxRΔ`CآVRڒِbFz;|>8=A肪@ 䐐َqjRUᙪ%+ 0mȾ r&Uϫڬ6>. ~kbS ~amߞ|'+&6\Іm8iHra3E{Aサpe%)p1ѥ‰ocFkyfe_W#N~` ~HMCV~}ke8A}z,m~e}HJP:3DANnj$drlY ] w< ifͩp+ڼ%|! \e 9 Htk@s:7Eً)o{F,^] A4LWTl7ei=뒼k\}mrẇ{oSpj:cG DO*8a½i1|RNә#_zYW;h.,$GBq@,:.Ѕf[ )=o[߷04oNab+:-kt0*;NEuX[;Y'~sC3mev!VSu!cH4LPK3.*j^ȏ:lR41 mp N/N¼,9;/oFbXZx9r&SYV_09WFwCS|/vIx-`JP$_XeN/9 0 A<'GZQަ/Ji ϲ:uߞY@ZThI} cX$; ĝPF}S` TW,|Xr~&"S0cr*h]op![FTE/JkWp[=^ 0b{i_PIHy0Ar]/m:0/& lmXss]5^-91A:#{O?N%f}g ֒w"A*2 <.'{Lܴ45bނ&KHhhLݹMh> .O{ʣ:J~XIkvbo8D!жBNr1^ȡ=[k_Rn|_g'7j$z4{t g<_73>g9[(>Q&-Kz+Vؘ|S k~[v1Ҩ \"D)*zƻ8Fb%:u+yHZ|yr{uS<8nG gL|ھDz}?:n%ߴ…HxS9?bC׍0@GaµqA^ ̏dKyrӦ,vvPj-d_nIiLS#b/BR M낒lqen(9ӭ _gImjAKVZޤButRw7_Pd nI@ٴ\Jt/-?+f:V 6lY-1 a:'2S=T4ѩ\ ƪ϶)PJ>@ge iebJ "2b( Ol൬ OQz76#p{tb9ptqM+ ƠQ9;giH:%GH3SkO+G4Ҧ#ix [K2]0-&ݬE#'IG|´I<~ӘǃKC+ў\ݔT}3+yR[Uk4LXdl}fdT| xXUdf/Cz{YO A#Tzꥧ(jXi5Zo~բ~u\bYari?a7X~Ġ4EҕKN{e/PKG1i`4L5nuvola/128x128/apps/kcalc.pngUT JeAPQux e{{8kafð"9ٜ2!I1q3 S Xg*ZC+ǤBTr~umk|>ݯL'QayaD:{'.xZ .$x3]q9s?8@ 8{qA#ï{Iq6|&S  hO;&QD 뀣)dADN8# QO?#/Oq2ҘbE=$o|m AyQ;RͱԿ%@W9Mp66/IW\S~گ!qJM"a ^ OŖId(e@;\/ ֈO)` @Q獮/kKGԉ̔y02k_!z1}Ėe3v qMȌ̓Ƙj bahFː`О ̚{s=~3!7"Zֆĵ[z.(^*  b,SIzu ؘVlywVk)bmc,'1<+%*)ۏ, 5RtOg3GX'[P8/Vɘi$,}x(Ng{r| ,xK~$O |ؠC02[uCkT8RE* #J6M?j& VyVOzj!Abלl#WS7^y @16,eo{1%ƽ{qCᔻ ZIfH0{@!0($8|A>u&(nmi]YVGkLo٠OV*IO@Ugn+>WZVF@ڢ ;}Z ؅U:+&ypN}?<7JΫܧÁ1:VӣKzrMnp;~aزi pƅky]C~쓍\pYZfV:2),ƈ[y_ e,(?gzI"$o㧍e.ޗ̬ ʙdPhmjmNRɘe,q.u0T 1;GݿavB,sv|㳾EU[wHͦ1E/1aS~yG$ȈBİ} מai*%$@ÿ2L$ajB_P~ijSYP6\KjfWrP6ep:H2}i,yO6KΕV/RkYb>9C%tj ےƳ[5һnoiO|DB)5sj&Uy_MuOxFhkZzTsծ8TG N4UAr.Vw|!#1dhT%02) S)US!f "D; DGFکX77O XIN#.L922+eUhw@\S2{; r "}T97dqnG/)HF$#,zYQIT #Sq|Xi.dǎ,WTlFk&Am(]Km u KxM[3át1e=~4{u:Uj0jqC^# >{Af9j].;=lhI3Zcc7POpbLw~ٮ(m(Go¹5P#95cS 3q\t(W>dq  Uouqlu݉yq')&aG'9bHDHm~se˵~0'|ɿKA7~Xǧ-LAL1V.pnt؟u ;y,8LfI ^(Q. &{XL}Rzcs4zRN`F۳죦Q:#Ƚ3ǙAٴ1s^HGV<1Z[.I~[Trf)G*̐,$F4i4Murw4W"Tl>&&kBn`(/C>x" *na ZP(n†*',D}zbu1|S-/BU /NVصFkbʕK 50]49u N@܀@xMפ 22CE!A2胱"8x'ͬ{cаݸtu݄}zk IA]$mAiEȮVZv"j=ZQx#|jz=rbmXزy *j/3mdwbKAf29krjnɡΌy&H2%nC!*o8Tɣt|A؋c=hae]C|z.IA^7A&]^+$/ϪhB f^Zt A1ٍNY],pB@Bb Oe7wDxC}lQȦ膼2(V.D,[D<b[<1d3J sf{zE q?nWR .>4ũz `Ĵɐ ~`<[u_6^BkLʷ^wKT3VT~=n:YՕwu{qgK/;kwYzܓg"y1wSm>9GtPfs;x H$ai/OkS0l1|᫮6ĖLMCs+sEގp~Z5L EtJ\R 9ҖKP4ߓriiԳg2bo-M1`%r!H_W GM]5bWL_!dFDG_IwfRo02z k(Pq!6//k𳳰?ȑit.gFuSŹP/"-W9z'yu2KDW?ԏTfwJpbذ!1ZSXmjJ \Nٸ> uzWLcJI=fH& cyocN'ߴ-S~|9كvZy=u>Y&HTDǔK)_Sv ٵ&3hfdc CUchDg{…>@39>yS5aˡA4CƌeMΣo䟈߻ ĕO;Oj~C*6%^g <@H`9( #ܳzz,益8﯎-MV!¹}T?3ͬG;[YOá1BGg~슘5cGUo 8Vi/<'kyis3"H3[H)]‚~OQ@7^hqN;)1䁜׍Nq;I!^ѐ{Z>@[!2T"'n2@ r"\vZYYH$jkk{$ӌk>c|8m\gPc?(LzsN.ໞmE4=C7 /Ȁ& Jf/otnuV`rr14CNp$ޯ/SQQiW.]hmrXT Q&<4=ҐdA/.VLX>OHY;XA wr>P6v/ޠPK(T8:%`_q +:RڢțWDzC^Dbe,;M"]UD6Lbك>pٗH5:1Ӹ<ӇBm!R1A3=:W=^RF} 9xG^`~\tq BtHb8-SAƘ^TwaMBӣt4A7-P҄ŖY> )jKMl=Z4<ӔGɖBAFyu:oD5+Pʍ]›c>%k@lOj2Efy~f}i|l8>˓$syl~SlVi؊ Nzͧ ly%[UE/>U:){JA&SH1ixZ>8KwlT\\ar|>qD>wܟ R 5~bC]D"Ցr#ie.߇&<㗅_+ 0EyY`f"$ )9| oˈCjseR!ڙ͘ coJP&~z \ ]l&j n_~9nTJމ _>JH"{\(6*-behU,Q ]R+{ g)3m\Q:eF;)h i E|W, a@Te\DQF!_+"Ab5w65wU ]^2`uQ QԘ̢FE(mPͯ1fEY6p-A:ײWi(<&[kb9R@e|gE͞[n5Erՙ̕ Ubw=.i'$ ;eБ XՖOMHKf𲗏_eW\(]%4nju5(i)aARi`L>2[f31$WUIH7l~{s>:Z\*P?˲ҠZECYv~\]Ҵ01aC{YD 7%NE\{2B?iI/Σ.b{0Ib"%X&!L@?px6'u=Cz~6ìr:0 8`d @Olһ/*4{4, ME Y$Dg WyLY*_(/O?|G }sq;|fTf]Bھ\Kvߛ;:k4,H N+&yz98$ffljDs9z]ٯq'bމti~l=%ᥧ?e1x jP \%FCf|&XK#{H˛?>{2Z |cj#s"K߻n0:@#KQOQ>)T@/Ggi Jlk@ac^$yzj(i[TE5ɩ}]_0]:uGB(O.T$2+|!KnJPao#|y~\[y6**j wz3!]R($^XB4 ۋp(cwj5m\ /V,?6Nb7E ifz/!z* #?YA`!H&r hz@>V;|eːr wmG_9,;:/M79X:qs1/HTG5M!?õ8n6 4mA!\@`'CrkʽsΪd(%b$^Dq! Bݬ}bZWCy G_~=%>+,iKKOnwA`_ ,(h,9e]0q^Ģ ՏBD$6f@Ot2{iau0罓m^nCw:h  ? &{Ѐ M5w'!!g 9j]c ɓ L3 +(ꃇYR,'TTFE)Lȵ·ʩ8+r4h>6vnu'K׶O:{* vqCRwHPs: ՛Gk`b@uT]@a%=╏|_QfUќD -&mB! bc Cyeb0%Q`ja[uVwU\^8H^AykZ6Bj;փ6: ?mc~&+`Ţ2%&=A&m(52BD)V<;67xq&Js'j j-VFkC+WyMS99LiwQYēP֖3e1`iIb)"',""i{,"!li7|!CQC1'+, ?O{n`g/5Psj O‚Кω%&} U1eKIH'՝5(wZ8"JBz 0%6S3"k0_7'j$%Bq0%9 {j{Vg#:9Mu |4UGO&e ʚzRє} hb-ՉVs뢟kAΩgx\Y pJMVgrחY$lfw}>޾WV&dMÅ5oĚTCy'V3]@ $R~d%5f0B+Wv-nS'$TfxQV+&!B0Bxt|vV$I8U,9'954pG3fPeJ؋SpQm(Y⛈CA[9FɄFm"ۮĀ܀g'o4AMK ZT2]Ȳ*bVATs o_1>=xͨ]/t{ 7laͻ @y.brJ,J--qO|O'/Ɲ;*$%hNld-Ld]m@ \uuuXaaaHx"0pyZplAi MyNB39"C_ꎺҫ$rǔCbVfPǭ-\B;c? 8s,L mXtd29vh ^U e\$9uww#rQ<S#Vhq0KB!IGnCݐo@ aZ؝Qua!u环 (ԏf.2s)bo˦bVjo-~eHT( K^ Ra3PTl^-?Mx' }}0ݐa%{d{{2o ׂ:L $_2MGG} ܬk,L*!/BTWA 7>/_ڳwBzKM1zMȭ*Lf]"ObTF>钥N܂i W$HYl$)GmQy< p{'yuv\^߰ex9"a m£̵& @JԸYŴ:c4:mITY2Oskc:4 #9žeŲ8|1C4妠ރ4Mj̡!?/H#qWTGua)HWz̖Sξg, 8#3Hegu b#A.p:H'w'ZO.\W.56Bv0|kLٸJ6M—A٦T3J#)E-:bp`zuk1~ C o9PJ&x;A$ඉemv{1J-ɩmf牁-)@r,= QtX>=;&1pTOF{F )z4S2?GGPE55oo4+J~hr.pXU | P~N +wn%[_=⿐DRi0yERFjmLcu/NV6 EڦJHv_ y.Ͽ4ba _ÿ,;9MXتoZX( efTs OH 釐OW VpCC>z3 ,-Pe!qRȤnH-gVbi b(w2=jf_md] P2DUEB cA> F%HKo>eX (VuCraOn%Vws>pzGe~r(ؚ(PQ!dSUBZ}һ)p}pbǙ[E!YDxbLZKΎOdYƱ$>/<Ȕ'_\\}H4@.SVZ(Kۧ}tGߩe»wsN^;l^ޝ#v l%0>?&.C*+-@Np(D2S69B2iqf{㵓uOt'&uj;ߨh!QH_i>")ߎe|QxrND꘲M2pXL9p~]?EL,Z#r2Y>\3N!e2;8ݺ!b.,-ttqٚrF5vPufy;'6 _a|XKhF8\=ZxNƻvp@kD](}G>{yu"KyzA~YG3|d9n6/e:Eg񢲽el,έZ{[_鯉GR ̝=2=+"B΃0ݫg gGPߺdШ&odg+4Ғlg`36 O9ڐt^"KoS&U@T%kNy7o>W01y l9>ɣZ|@hW *7&; a~/"9Âd*G.o MW~˅x=z Wo)#`xkSj9aъ-j/sm:;w fspn_#OQ>IKC,ux w<:4*&UU }P8*gJ0,JG W>ݱOBَ^w8-Eg<̆TiB]]!JwyZ| xu8`_aKIPK H1Lw"#nuvola/128x128/apps/kcharselect.pngUT eAPQux uYy]9EC.5<r@` d-Q*#-(+33s̬7tt8)>T ھ 'Vf*aS\;mylKNB y3f L2= :!& c<2 pN$=N1qǨ!1&HT.J2aM.~LrJ"jiEᢢT [#jy,+KVG75É9Jܾ}[XO6*x)ڿp2o6h'6 `ٳai1OdtNڲ%&Nm#!C O Dyf?yq@\T74=Y,8dc؎ocTE$U\Q^$:o1'+girov6{/~N1!||r mmOdΝ$)E? E&8V~9Jꐷk_k#d?rh3a|կWL_}r&o,G&jdrT-{e}z{ʕ:&&ұ]CQU$hu/Jx!ĵ>k,&W\"U-W;>RVJ˩+ͼX쩞rBgx6gT~fGw۲GXEMԃPuӧu rKtI{*)2RC{ڗNZ. qX|W!0"IůTџ|5/8䈦RCnrBIŜSs4AT?<--nӫ,nom:O&!ߕ s`ݺ֮B#[ c\`ҳ$&442,قZf`F}EҥvuqL+Ĉ<r 7?. c]-j_]Y t%:"pQg33USzr?\wVKAfp(au5&V/V1IK_QXWUH*t~K`0DЕ~\k10@4R^u>- OL՝+~ZȜEO3efEyzd雍}eq3(JhxbJwuusVcDuW$֨3gHVu E;)Ii=A@LQZb**%M+fwLy8|0*OOTvGiF#+u,YF鱠) Z P#DKsiˮ Et3STsu`%p))>Xa^7ۏ#c,!\Uw L<ZCVܣ<('ACfcW\\ a5Zt N-8T!}pm5xJs:3g$IB1XYƋ✾_Hg [88󅉠 cBU|KyoaG[OBj|B)M<} 0[ }yuޒMG$f2}W;Th öͩA5]{.[)n~PvE? W,Ŭr v'D)0940%`g-hXAq8* 8z+˿΢~3_t~!lq @#OytU MԵpo\LnNW]+ nsow5d,ooI9gY;(#!Ni.)U{M8̓bKȀ\ Rʲ4 1}ʔg@w@SҦfbT^-AMD~V9 s=JNңf3h:܆~ezXyY^K4Qt]>AGchdwo6ƺiJtS}݇C: E[b/cƊJ8%i;H0dp8+S$Πc۵r/$*/0g04Hk8ЪUn(s6B:w_xSXH*&5Hh_ւNX:pڗh:G!St01MM/o)EѥNjCZ چR4*|hi&!wcr\jf\X,YG*ܮ:'tJfK[Up6A5%Dcm5CP^认O=(PxC? &0Ӧ& *Z/\hҾa=Rs/ E*W]`ebU&'.@JD O_b_^-5eiwAoq{ђ 4&?:k)m />Vћ!u{H Ge[z\2#} V,GYGWp:}?oG T'NF2,߼wYxYǍC~7,=~]Epv.tv[ )3LrzGu_槵 >(Rt4'0i5^XB@,Eo𒭞>PT– ٵG' &XnTT0\МcV{#OzW>V? :hQR[V8!=1sjkTx+.H}*P,`\Q5O3zWqՉ2^Wģ{ q^z9g#>3߷m11QVH)gyx%y}t9EswQ=d&Ff%`m7 Cݽ>Aoj۞#sT'Qt: ?͜&f9^53GNR]6C<ݨFA~\chL{7eCKB$GJ.w!mD+fsUú˕[y g]H뮮'u"Kr.']eD'fg3rU:o0½ČCNyu.` c#f%Kϱy%s0iݜɐuP[_6حTwIUqum[X sox}Z5q@TK 3AuXEy& x zs9ƨɌy'[c,Uu-T\c?ֺBfo% 2CeV];Y?ko?te ̈8!(g]0N,]$~8 #># JIkS˞ER: F@i"?ϽGe3q#3y)9U}|ڒ_.$W!N5_h({,պCQ{Un[HKܫw"/4ƙ?7){N2lmW{VTUzz^ۉ*^N|"MɴٙS\P'#㈰9Y&0ء۾P~SQMMQ+]c%}t;u~ҭ*J? tA,XiuI[ewO:5)3}u_)-_nJ# VW\[ "WX}#Ys[.5T__}'<*qtlY/M/ o5@?I~Pƥ$3 b2MR{iQUK9rqBڿDLHq˥Pjz2DV=H ÛU.KHSy# s }EbuC!lZ̈$fU@ӟO85/(̔HB"^^^4ݔu]P fZZV(XSut'cmK V(F`KB,0e} N`4{S~}eP[U~?!*0e8t˫N]Cs}ρ{ҝHv۫v%}RaZ9za9CswBu:_nK*l xٖ6ʜzիҙDZ8/x"fkƩ "lXc:"m爐%sj5X Ews%бBH골.=09gUa Ml8)'CZc[TCOf4h$l5d2լRYa3 /QK4"B(<gw25 x'P 'HPKl@GPVOxcal\;ηru45J0?;vkRr&lLO?h5_kj'竴%LURyVwԼ9)=Gԯ}r%يyk2Gk7ӧա6SfsEfVc+3afӒ6&?Ȣ2 CO*ȈxĝQ*&LY-f*S-,bc$Zg^ Pgx P~ևhsZrҔͩP>km-O9<=ybh//X6Q!gVUbMJ處]~WڜFY \M0S^́]փU94I2u(3MoXp|FƮutRY0GaymY^ JV(yo6uwZ}̛N6ȗ<,@T\lǣPW:H1+H_r_&֮xbE{n x)e⡷!7z& 8ώAF#[,?}(&s{R6auBbѵYU< tDM{ Mgy'Vk&6_W^~3@ڞQvO,r鿰~2 nÆ58 eC|m}1g/Fe*ewcln<>C Gќ[jN*HbLM6־Z.7.yn MpӒotlp1Sm v:{4yL"uLh HH0(iѢ )Xm7iy3#> :BqEKG.i(8{STWUUr-[V@D~IeÞNINYwcHKy~ "kټyk^d}7Gm<;9A6+$茨HjfP '?{ qʿHspm-L4. O 7PKt91ZUm%X:;nuvola/128x128/apps/kchart.pngUT gUAPQux [_R> 머G.9ʖ=ڶR1ܙie)KOsjje9__^/8/~}_u]7NݹUNFCm^{Wߧ(~_$huSwvٽag/H!AzN x-6o $a Уb*[Ap t0*Dz !ޕ&'@CᶺK`A0c&z,k[a6$%3}(<O !} CSvU06Ⴕޗ-z7hBeq{@4ns?ۤw{~0:jP/8 7bTv.9z9G^BTQ"m$>j%o:Z)& ).6WOӒJ\fI_+xCFj~o3xs^/4p/:z&oiZk'`ʀ+heX[W8|d$-;$m6?Dh)JM.YⰾIQx7,z֚O볋6n_PfUvؑ!N4y>>'T\H1RZd\akw:,Fj;uL-?,l%B\ijWp8Xo0nO 2/Jѷ|>BLb8bުd#C5Q]3&'7l"{^)rt6:5 *QSHH7#6sMלhҏF%aT;~;ǘf?ʭ-e~49]t q4H{ZC_Uu"jb_ ֨`iI~P]bCJ+ rrjLVpW\uu.)t򜑧FOj# Ҙ$qrvT21m[hE@꽃A(#}d뻐v-.2Jf3b0N_1~B:D`p*̈́"E 68mӒ=?ӯsMFoWCl58hY YI&Pk`BY0)[R@yT+`IjdeVTWD8*-ct,>4V:S|dcYl񯴘S:E< Y } %JkAA dž'=jo\v5Йt4atP<j llkZ`[WJr~ȉR{cK;kÜ_9ҡ[U_żT⿨;|#i(wW=X:JzF2S{Wrc3;tUg;I?0vX36%'qH>\.~'R8 `-"Ȫ]NcK񏆌: cn_=bŏƀ2dY$1D˲%D+o{7629қ {a]%ozy6"itrRFdv-}r}SO{.X,@?u[|O+Q]ٔ'4IT} GF\'|FEIh4 MOiYoOoNt~JSM {6qm2uVd?dㅒV{ Y;m@`4pd7>q`GG,UhzWc{əuxezǀIIe]!^LJ_=W}(X|\c ,'Oiw4f&*(cJ(%`S<|D2 U@ C@ Lf5wAwn?]3`>B݀>ߛ用u?0Es$9J^/5Ki(i[!4h.0(h@Lׁ&/PUVG?M V J aDRz~rfk}7U&RicN:Pemfs1f$SՖF3=vڒ0Cac1t) u:U0X1pYh̎>6; M iP` cJ ۨ.58Uv-Ě&JM CG0rQ  ȯ'>]p?# :oDITDcZ`ɴp1P#N-!|0|/\)J+G`(a|f w*܅kcKeĹjߊ]䱍M?ՑFvkoW(Pr! MA8װDC"Ƚ65ȘĢ?х[VPd$ s#NVtWzl9c\ tků6laH= :+! P D QǦLVeN/Wgw4%2)׾t$$vmLa(M*w北`D"etliږO1n{fpCPrk`I K?ꈒ$L0iu5m(qߖ },4U6S;K9 6I{8/۲^أ҄YQo]ڪV:_I@+`ȾOq0AH-]&Iu75lͰoTU}RGň "(=*m/e"Umd҈/ջjmٍm#4qk  HomR^y9&Y.(jjc;C c.ykzoKsBRFb?gNj}eb}|4.b5'?ܬMHV=6e u wdzn\E g WA>yYuWRG 8nΘf=uyBViUX'Zp y^tT^kHzʮסFWx-uUn`z F}SZFvDAZZPTS(@1/,'EV}ep1?5-9TW?E)vbH ъ,+S$;,~j rq_魆jg̤}%+eޣUEÒԄZʏ&}OBksyc$Zdjx[^t]<ǝ/ne=o3NJAo1ReanVr5ۈz—nc'\Y-w2)!Ǻu(5/h^BFOVXVWל̨Aý$hQ׏lcU>HNlMŷyxo 3tLXˮOُJ\??@UrQCR o,含R7V'-[ ؚ)溯-d% {gg艷4ʞ ?JVK..~݌WwQZ+|p"(X0 0IÿbbE"j7Ge0A\ Bq:6L=,= 8[T{+~w|.Mie}O)E@EE:x5y_Z>@x웛aTCXE㰮T9 R'x<c-np-!FVΞ;Js^ղggxR\2E#4X`=DUuW }F)?ff#ne9KsX㚒;Ǐ|`YܨLG33RYx N็\F6αƫꏓo4K|Y]Us{?\Y& 8ړ/^%ButL'SbO$ISE%%X-z_j&k|N +^7Ce|r)5Uak;jJ䐓rg}svʌ٘4G1r_GOadj0aS;r}oGWN>Y~d.[ܼ,iS>lQrXhsO8e9 Ld|I]x'g¸դ+R("~m#}妣Èssp `\;>ORmz~뻡Æ/eLs p~M'@MǮp?bILeu_:OmG{=; Sskw6I,O)pdK|a}4!`ƖSdT;&yGI`\SPkM0} lid#+j9 z"U̢6JԧFɩ |p ؋άwnK iA0i؍sޒ}7Y層ﻃH(Dd0 UW'Q1d3;j{04]),y3 Q|'At!kXǵ|f+";F=JM}n'\~*C66B+[ zThQgS6 !FwRʦ$s*Ix=;;xUBm-Dx6d`KuEɐ3LGו#RNG1y`b~Le/,UNY4QV][>G߳ʈ{;V'#ƾL0MKxUrfϐϊ jIB$J:{4)P_I<\Z؟6y(!]n 5hi\-#ԸD3c|!_z MT)u/n 遱:ʷdb!8>xҌ˸A /D Y5Mh&.RWͶмG-P'`z39VӜ3c+ &Rn lMrk; lAv?Tܵo*C0ػQf[l{ MC}ru)|EΘ+@ߟ`%1Ts͇Ӓ(C@֚ ,i+kDs-PFM[2b[)`nPf'B 4} Qz)1;z/h4[ }c`m'15B 5َ[et"X{ 7.9o8V`ѵ|2.'eV<{ G 'Y#v'otvɷ!g.0Ǥg;3'٤ycT@̿%'{[ *Bm3̺$g(""$ VN8rJf6F9;5!Cp(&gHZRUr]A{(΀s\I$aȕq[nr/cIMKٽf,$SJia3@f2_wi:#%Ӷϐ*}OPhcw/cA n;O鹭`ŠMN6s`mcy};Ҋ})guS}s'd#=8mOorHȻ!Hɦ"(qzt(~ xL W,@~΢ո S* Ngt$m d[g+yxS|cvzƒC=f.mÏ!+b kIeB QBPPnfD('H1Jj~'aD6cL][9:u([&64y}*=7r~o׵iJ=nL]q²GjdE[8ؕ,Ϙ[é:R0.xxFAZ֟oĸ1N.f5R͙g7J,+lVoYUm`n8t&=;~n9M7Bh$pdeF_w KX wMѣ6gي77xzqut;5=QJjBR61$|Jp2$~V;1%Ž8.zhY.),,%7nSt.} `l\r9[ pP/nl84-o^F(D4NxH@#$dSQ f9:Vñ"ǯadU<99{%yB)E)mYWffGs.\XvTuOfⅫn%hKEB~(v&7k?Q L?4a!U\hW;;βuORGi9!h;?I4uI5!yEOԌz"YNQ8 %P4r@"C]G>,w 9.6fF`.ý6֯"jVlrE3|X.h[tW8MKLZsxH!{ߟ|պEAgaԺM#oM19~t:ߎ_Xxx3T!XZՇO;:2L^4 S+^CL v!@(F wzC0& Sq,]B .KvC炱 _:9|Ee.1GFQ+Jw$1![NvgsMybmYx3*I$/ޏ%BY,-C{ίn}(;PX\G$7X,7:&9Mof&C#|$LҳI3<+<+PnK臲i%s 9ڞM׵Ě@T6UyH|Ŀ٠FGYw=y?T-nGha߿.+u q'\2u`djؤg $"6~U`]H2ʝPxAw~ĭީ3Yn]Ot\YQ{x?N$ !륔}@n\)vv69L%\hf͉aJhC|`\`~@@ڨn#-zo7 &Ӝuc`!xމe@VDo8PJ/hB (iq(~պ-?OηK6xFɍy aq,asK)Lk}YTSTб1Y OK^n+]l]ZVER⨴˒݂| <{]il-TbD婠xk~ \JxlzxSY,-RM umv:^-jZ$o7ZVƗ L{"F` _@ ؓ ,テuxWb3uw !SG7cQW};Nk upbm(\BS=JYK-Tg(j`9h52 ۠znuFf&]LtK\ec)yW7h]I;x _Nw:ԃ6F.3t:6׬HIo/@`OIl*ؐ! ;+:#cEs! .3pܞr:vщ(v wFC{t(7I54ctWg@仿&@p͙rJ܌n\4|ۇA8 22-+LFxkrXm@,-j8f?ۅZ"͚=iT&UANy\\k@V5"- =v03kL]d+|M[ 'N H-3gl4FXx˺ Y#¸;֋1gp%]x|6vO5[C\3d6:F׌LL4 JӍ&'SDU9uX,i 2hVW5t$=-"}eYVlxz75Ѡ$`8,|1Gj,3T.3l.=lͺvGL*uyq]Js=k= zF?ij(Nܔ[;6hNH%Wr[-MWSb́A5zyN*4wx)Éf~E}s&9tpsU ibuxD_@;Cut_O1Ӥ"n (ӮR~(,(Ǯ-T?!n)]zo`YrZP'l%-g贒dSZPsmlc[[9ߟ3t7 *aUb> X|5EidZ~-RX7y_,IVlvEk|ʙF;dիl2˖u@NWc8Rχ{NxKO#ju7!n OI{ g?⽃ ЋE=gB# U荘h3Rgv!SPoREШg9I/ Y?mbtBroDѭ '5 ܯ{'_v\bplOкҹuRB'%ܦrC-'w쮦L6rӨ3ѩX}$$@[q V!#^8G`#7n/n ֶprdz0Ѵ\R*^mRjZyU$TH"ۙ! 6a o:S !Kt$ӗx7!xK}Kgh( D'fsx_l<̱VE L=]$=F0[[M^J Nv V<n=}S /h73vxGUVw4i\W*"7EL8 ^ρ)4\dNԀe<]dzB~?7VC뿁и<DoBŐNuD9gadUbw 9a6y^[Q6:o."gT|Q8Bcxh *\ Ԃۤ~_|$J<cFPƠ ,( 1.QLSs7hB.j< O9@]U,{8<|Zpiz4p»1U~:nnLΤt:M0zCO'h'!x$Gh^Ѕk0=Gb@(MľH%In`ԻA.[mqb!+r+q)IҬS;=>b [ |yI: `ETڡhDw;bzdR.Mpbyw\޻zFPD47rFJYՒC{_A>&<i,qlYeY)^uiÊ9M=S>B.c8B r 𿆪&閠Gݾ(1Tb2eEm$1;+XUī+vdr?O^=-gxXaO0IM{M3 Y.WW*2_Ƕ-;=n&'PK H1$W_!nuvola/128x128/apps/kcmdevice.pngUT eAPQux xWSW}/$!La)HJ%A@X@тdA" "DepªAʤ(ZA{}oVrWr}4h Fb-{؀lebpQq-(e7ĸ;c;&1:rklD,?&-N7ԕuѳj_ veAb^ NW+S(as[9ilX V@pȬDS..GN8ADd/z4}K۸ZhP~8ԮA?ӪV05,Lᅢuc/_Ԫ9b b8 z5U>{s8S6d` D-NsΨ/HP'Je '< C%ҲZzťdi q!վfZRUUi$7^fۭ` i֦"zGtxڷ&T#җ#W'?r]S+ r,2;C~ߟ{ ]!tAUAmĠ)TO Zn :&޹2) .zn߸OP8;#[~޴Kc=޸P4-M/륬yt},CˎAW! q5ع07NYjӟpm-Wҕ<ʴcfq0 gڭ:PZMS'M'Yqxi&ǚ4>W֟Vsihׅ]bΎIkQMԧ]j:%6Vy}oUŦ-&dOI҆WdKPT߭;)+V%SyǴe]jO-[ګSg {qf?#\AMZ] >OwRSS݄RC^we2^@QA" H42'x#mWqܱ@ZE9Ŕl^%o{-(-irEɛʄݢf}׃TmTkm `vGYd0R(YZ@8އmx+%`6!!A!8卵EΚ efյ2VR'VֿD.L8˗.Yk*bA ֭+ C{6!S ƿNu.\HWMxC޼2Qm`UQabw!/oҩMn|&:R;wz[3td:V%{͇W#ҾƵDyyp!&k-9];2_VrQYC0.çM7ţ{-v07r{Gڟ`0?,RI-gb? uG &53Me7!{);!zS@F{ql:=Q7((*/ZApWy2JWP^tt$2#@CѮר=7̪k>5XS~\ntd1U'*dI4Nv&xwПdAp{İCGSjw7{dmOY)b@s͕X|oK/hvfrCV_Xҟ: LWA?Y H;p\Ìڲ1vU-|QE|EIkȫ.\rf`hƠ_}#E 6] D'/]e e6 lA=(%1ZŸYlǥ(`Nn v3?vʒ32bόT͢a3(+lvaZ.؏IA%;%L~sDf3JH!1e 4)e慷{m$wnץ'JK }Dk73֙B<wauJ,jLGz!L}` Jd~!K6AYCL̏~};?z&aL&߇!`0b}m|bES@ٱn|@@G!ppx 1õs3.J+ju8K1u&[W\aʽqVZ 5-{|(}GplΪ _3FgK~< 9-x}D\~uu>LWG=Bәi7{; f 7j20Q 3ٵ1̄λ\.zX;%BVt|Z梸L+#&u 9!bhdm~}rĦ>'DxU9`Z!H >Co結k]jN ?]*X.50]wCgLZSpkqC7X܊ܬVYWE~ [bɋ#/XO24xA$"ZeVVV g``R(hbAGt 0qCrz>Lſх6IuxPb;!@HRm2-l+<+ ~}(acF !ګ4)yݯ$o`͛QurV6+RJ3 u 2=ġA#ˡlw]U~y$Ao[,eO57 Nagpgzn3do`' |5d̶Q{t/Wʢ(NfC^gíϸ8*vx ˚#@dp %TO* apw7GR;j X\Wr^e%7L>9azh%0_kkٔP:㊧'4.8PjI?D6{V{I¶BpicN0^ЌO;H?V,-3:90w 9;;g2o}6.1 ,ذ_y;> Pv5J#ЖЉ&Jڭױf$ee({ont2-EPAzZur8:xV<)fmJVbcf,@fvvǎ(+Vz$ R[Bs>tG6b|- ]0$ηP~/C>V?stֹ͊cX4kYmӒ%ƿ,e*_a !,=J.U*k. LGF- SyHtns(㥞MZk >VnK1a;"ZlޮsGoy(3ϟeG\oZKU@l۵B1N|1XLw!wJ1ժnpp@2J UbvO|~7˦HT*UK錩v# (sTs-<Ԓ]}GP[r о|zw ] xy_֭_.&'HI:g8++KQ;p l'3N }KM8вx sS=2էڜkWP[ s+4e>]Uݏ ?/Pw,8`_Ksh͚*_^?g*&'$Χy6n2K>?yЫH%Jǿ_x'K}kl~+NSplr7̤avp 3T7?-A{ Zb(]>\!s +q*-5Ӝ殷+wN؋JY*}7?`Z-aq|[.x#vG{FWOG9AQ둰!:C-2T p"F:"Hk*rQm! l%㔮ʃm]'6YHEO~DWcU /+0ml$ғ(/pݢS!hXJï9%%% mXZ Ѯ ;B \Zu bpe0h$2w~w?.mO0Hp ½Ve7q8,kc/<ТO4J}㯬¢=eu ++>Ҍ}ۭ,&7b谌4߾8l\(RNkoYL ~P0"5(aeccS*I&#[546]Kg29?&1~e'Ǣ^^5ɹ= }g1c]mm+W9w}~}eOhܜkl~qZ3FnDHHf)5?w+C.-3%IWy>2/Kz&ލ$nӃsg5W5c6^GiֿBG:x-%-Ș:1su(WǪbϩO ⱞAy1d"io͘[>[jznۖ%U7MN_׬Gsmʶ]8#7\1atI`Hi.kӈ2Xx?̶֠r:*L)EZ;ZVCibq(~O9rM@okՁyPKt91k"nuvola/128x128/apps/kcmdevices.pngUT gUAPQux xWR> j#9V*8gehZVf8hXĦk3i*uۀfmR+; ZY}^D(IX@ZE]~ w& /{̥i2'dĵRFMHޱ+q%5.;ekCDd4 KSQ PAq v'60UPY:p2  \-*@`uQ0_cf]?>{b^ ͣFNm$T~W7)tS1.~=Em0 -~%.i;ҳ wΑdl$.\F41)S2Ek___ XQqê%Ƽ6+CN}l]1͢/x}j4TcM]=.]Vȋĉ+UV($;-4y<i;H"a++jPTL34<3T}ٞNskIÒ%1 VxW)uy%{vn`_Oi5=-,ȫwnTؔ"5~Z";>ޣ!|K+aI$II3;hshW{+ž_{6uqLjo\5ol֭n3ҧ닖vZ^a5#tϧ#ٲR B-]kTC6:>RCKKy T`)/F;W(ͮx ToA"_B(*`̭]iaga+MB1y )w_Ie,χNدŠqiTZע3Ed}NNuC¦Iw5)~~-S[6{xd+$tksN,dğ&=Pt]TLOppX*#G1NA%\`KrKc/yO= J{p(1֕g>░і kbLLa%8W"^T3#N~LO ݀c>Ӯ?&{Tbmɟ^ԇHph>2R_R]my`>XRҚt3?=#CEô]%5%5kq^܅6ӺΉL%?׌Cf +C,[>9g!NmkEH-.:J| 6L`Wv꩔15>ݽr­EMAis=kО:;},FDlZ~+AS_3ӎra[un͝?@~o-D)6BwoݲN/b@`_6U&"ln]JiI^jMe5'J^7c6iVF#-S98X7p v6x 3?8\a* 0;* [a$F9ZYW[ACMj/?\@S<eУyzyc<-4ת/ 5pc4Y')$r9 E4`1ȏbwvtqWTʝ#m0k/Up AvOz %hKN]x[x0zv6{GWϗz[PeY\\hؘBA,*gʂ:bpl֭vGB\sk}/LS^cx(xQeN 67,-/o\m< Ĥ 6 R3򑤝Gc) kL О6f;L[\YBo/N[NH7QtUsbm\ԙpq1J 0IXpԨB|Z,%2CX( 'w`%_fRo_a$iMtE$-b7^^gL5c,VIUkG܍C|ix 6թ|~!FƠ%Z̓:y=<[j ۈda@@ f Ec e GD3 ׁTi4ې)x><'j!i'C/.SRZBv[IYp4Z05LK`'k} fH$*YAC3`* 9sx4]Ǐ=>0i_o3wQ&uGgsOm]vkvQx[`>qfOl| ]I޹ ڳHԼ QBbA%W0zdyc?=:կ- ޹i"UfeeE'.n>X;֏g7 Ce~ d4<8?`ECݴPs<@ֶ‰ ۣ0HgC'M|I;9g}-@stI*jkMۗܶ`A۷-xb0D3q! Vy}65=DʣtH\/-qf݈`ѱ7~PkTPLmPDxz"6xtT9 7_ ɍ_&~U\7 Z;%w Mu{Nm6͹CKR <4.4 ·@h92T1p?H%;<f=Jbkcks̀'tPԠ' =%4 9HS'҉ 6;/6M6NZjjr3,]`Sb8,cth&S: 0wH 6/n3f`9ZmfRNdddhzzlh4n^\9PT7Usk 1 6>mj,$Q.^[]?A&"ZKq2( TJ{`|F$0YR{Ji`٤zw ?M'?0A^Ĺ/;ڭ?Bj *Sd8.ܤ;ꃎ-JwfLSB-c^&ftQpBvcyseaĔ X=?_Im@ȡ2x[Uh3NEmʖsǃ KD_,~mV퉷oW$[Lbb*N6}rTR7)+9v_ NRt ! ĜS iOMNa]y#vjmUQ`?w=b ;k]^9ʹ#RWyV:2UYW \Q,@S.MO%o` XPj-Mbh}c%R;CyfxeO1SNL^p;bO;:Mɟ1FsN XGשsd&M6?SֽN $qBKk,<8Xn'fXoBF&Ԇ&Dr2zޢ ,ީZDWX&=ycɞa#d0ҩ'<eÕ.0qdRG֢ɼ4Wu„s^Zu{?#IwM$;EiWLQ!W~^J7˙ߝMUmyaIZ؄6(܇+utZ㣣[Qٛ1"k7e >]PN,p[D̝A ٨>Nfm!57rg'_/֗WƉ4*l|=_dV|笞4sK2Vn-7LȌ<<u)m^8%GD_@9֯xkd(H3 . ؘ;^'i'1Lx+!Į|Y5e5G3]]X/VZ&~zp6:.7w"c_a_)DbxԴa2?1K=Ajz봁b ըѵBNSm}ښKΫ9DYY@:yת'47)/R3ۏ3m/0^] b5)JQLVaRskMeO:;=FFS[$E(t[>='/7&λi_S+hbhU8@~ZZZS^gWysc4JðxLwaNeK{t%/o?W3DFь-"B ;!EpCOLRTp W;2 /l^ګG PKGsH187g)*nuvola/128x128/apps/kcmdf.pngUT ffAPQux ?S?~vuⰹ*STlI0]R*lk5\B)ӥW)S\,+\DQfsnssns|om]#*bZK倎p -ߕc ?|4 pfE7  f<+ovu1Dt@,0 ,ВH$a@MGv7@EMG0-MiH۪̳O^ū/ŤźQaR#V3GvEkZ`l Ʌcm0|2(ձy<\lƛz;n.-δP4DH5 28ބPHeHr:q Nx\\rCI}܋j_t$`M+T2_].QL$v. -O@1fRopU zS㥟V‰3@r9GDk.p}Dt)eĝibK4IP}͸[o. ~@(jw+x5ЍX_ڱ@EAG!YT*)W|P[TNڙvr @L> fE?ۦ/As1V緊BsWPĪ,.O-űU$)9Etd-|}e*EdCZ=[kaxfG+tfr}a/wkڕD(Ca-nst/GTIQ: +[LLX~ V.JI }2Q7 hZ7gÆ~95 7ҮcAZ/T4I'Ptq3wNRͯTnƫML{r*xѐH` rcץ&hxp}{( 43}j?N] Kp3I]pɺý P}ֿ.)\s5/bkΝYuz9V/mtf&Q'3uK{j: ||:tQ*or1gv/峵_p Ykbx&+[K]+ L0b6uz7;!͕жxSjNe-BAt󉁪r]d+2~eبܐ^Cnf`]-yD9hO$4Tگ,z:Ѻ%(/5b&``,J -^}UdDG1UqbP^e@$"pF<;C0}(`&-Vsս$!O1 r MZ#{aoGTn$]p{du}rJmJ6v[yFs!3;`K`glE_{ƑЌCǸ ^2//yWNe (OUXcEo4 Vx_0\5>Og&C궦„^[p{8/3oG@x anwt個nگU.7A%@F#c(A4(ʂ!5UZy&Yօ=_q$ۃ`XimhA;n~(s lϒK<Բ_Zy8 N)Gtu#;J RHn=AKk2S'k(.-M:w &\K|>U]G;fhTtR7֊ea2/[91J߹CWo"&bWs.)vE2zEkzߨkZ99# 0AqsA$7͟Pl/D2'y @i'sw䷔=YK#xnɔi'-8E_-:/nJu\R 4[#Ϯ >葪~+UU7mM,j8E\?$22DuđIbvK{raAI&`l@樘s kI&6nQYa!HUmr(#3K_WY ,UQ#%66E`Ss%\-{$OM%9бӡ凎YR:l]TVZ,00 &ϜX\F~>1q*PBI11d/bǎdW-$G5 qKt^_Zsq CM=*Q ^Nǔ˕TP }վuM(YWQ{IUKEPPET|L}Q_8/pv%m\&9 p,![3ymclx8T6!p]i O6&LIhm+ЂyLUK.M9.M ČAu殔zxԋ"J frΙK}pãӨxƕ^>-.,xrl PlB1ᵹG00\K6PNU.p7ѣѢ I8w2x%T>=_my|UjU{{zb܈n`i+EO;yqiBYҒ"{O纩Q#28\U!=I7 ~cbN+~ȑӧ'*렽MV3/ /P&~,ſ^f6<Ѽ>.l zoi.8m' ~vb!\I$3Qtr0k2TZʏPF"Fa-X{ǩU^rǰ[(?wt·QY"k ޫ.Y{$.]wes׃5o6۰Tyt)CRnٻT'&13S$Z@)0{Pv1[Mڿ,L3 WqjOѼkr%:9T0G=k ks0‚X:bI6Adt?|zV,-Oy.Ghm{_J fEM_V)Z aɺsrWh\t$J .k41K)RWFdIKS] kXkԪhD%52ߜ~pB$XtK.`J};WZMXTEֽ6R6Pl|$rTGqYÀ= M aI"F~MFکIBʍ􎝗Aԙs/0_a&M:_hv@tJ P[zJȳ}e^6 Q:CM^2q ՚[3=Eb8M۲ *o{Hyes K`n$I_ U\K"'r~6<o:;_jnNR7T"/3sDuu c(=;)#I6wcӧ?cX0 2G5U6tqrO=*!R2gO\5[3b(N@OʾS&A/cV?Iv^ ӰT,Mj4)Zkk*!oΰ}lh"h4亦?hI-dyeltAw&Q+x F:n&]NL; mݷH)H5T[=as$o$p*[>05# i ϹSg^vxVfHKLpBo&P_e|(:-Р,N\P$Eum=!wКxZR8Q7,C?jC~Җ{j=2/{EfMX-[q9)j hg ti uC_'=L}>i@V0 y)9^q elܱDۖ ɄV Ε2aP<|gSetm|;Ū=c8Lz=NNd%REؖgzn`&ǃDFb|aUɗc|zL-:*ziKҫX>>jU_gvUb\Y֡6I9<>6Î藅ƶ aKa3ItTD-,ekF8ҞdGE$&J1YLw,Of_^$0CN|>Y1OgsóJ'0kB9G͆ ]?`e׹) D?ZΫX\^'j@y9J)}O^ҙ )uuCI=@3$QD&1tIZR-)>AcO(R<[D;7 8yap^O 0v@㣵}FIejDLwK58oH:rvgm"(Y[hCu}Q:zQJ7Ӝv1p7';{*̶Qjz{\@~ 6iIC;u5DcF5\dKC`mW ":ֿlkDSP0CS^ThȂD{mL~NIiX# C/CmP󤚇JlrSzJ ? + oVC8` _|>J=E7bκ*vB& l(#;bN1E0Đ-JiMqVs6XdcDL`Q'V usd _!h'lk@qιp0i)Mɮi~dxi(&jWǷ( _._rN50&YdciIt 56pl(3§ߗbh<\N AAOr3غD90Ru^L|!7"ؼ)k<^ɽ1vJ"Ygx/(z^!ձQnO+tVnL4׷ùNݪ@ZF1 7S<4]Ϙ,X`r)#bW5P1Ll1˳u0|Wu ¯&hJ6J[?k P=U=|_zAN CZƓdyI|5^M Zr<8@H9Og&e\v4i Po!QT9=FK~omk4ŵԙ${@۴ W#έ'Ee*gz̞00 e&b$-lfc yK }eUSVz;PrkR"RSV2O9ܻu&Y{JYsC]yf@q~^@N [,n?0*c2cX]}UB1p|<Ԟ51N[ePZ]p{[6B9A/@PhjM≿AԂ_Hwe{Tf6啖;JQ׸/.?E}flSlF|UZ |tX Ԭ]_vָȜHpQTCv 7ۜd%WluKp][&)Mqra 9*+?ހnf ;;WIJ 4+Dָ聑;1񚘊!(3. \́޷ُDl<]w6Wg|bg/;3n҅t(4|fR·vn Ӫ1pӐ]WWoϸ;"׊Z"9)A곥q܁ԝ8Wax>6hT;cO16hbGy6V,o)G<w2#dA9!I)Yw3\ۨRj/%DڢJרHɞlC>Nb#+(1oug$&a>VsF,ID۫}Agb%]wYkv;7Okx,D:GP.i?LQs @+pFZe:%P7$URl0XFu 5U Ko&0mZ19.1G0_8"~f$Wm}O`R5M,NʨZD3m "3O &E6ٵtR1MS 3x;gqg6sW׶lvs;`i0uT܄tFJuS6oLOlw9 }=R<8PŭI#lF'¥or痬x7-olg١qsrmXӒ ט-0;֝B`GYDuWC܍xϮ,2y~CUt6cؔCcή3?ɠ&XyJ+4*@)Ԝb2c.u;RSMSuOl$N9Ʋsфڹq{ĽUg:ܣ=2̀j`NSod~NYJC%,d "I]-H ]ӔoB俬DF9]y u0]* k b e7~wv41Ařțw!9{$S֦0:Dئ*.&iB݋9տn3X pyMJB[C/;[+ZpÁ b94+bq>pfM%s,K8&(lf_$7pO}¬϶QY:>Ζf]c P㯉 Z 0w 'kߎyU@ʑa)h5h4]m-M-0n 7#iO04QlV0! c/BŽK;Qz肂k2nu[ȍEDb"5 ?| **8m67NpIwxZ G'0Wq & _ON sR:46s} #)K3zllOb ڕ8R!4URkg8@x6Mu"l .r v_/+&{gvT0糣'"yhG/kڠ@-G`Sl3D"d,3vDp*cllG-$XC8qPтєE60ٟiC'VD!PJsDmKJ!'a"?ذm Dz=cֶUC7Ν@u_WE2yۄ;$:ma?X7efu/뙿E_5 FZw'ucahrOhL*wiL:"pOllY98O)Za <=};x-u=0օV2 AE m@`"oYz/@dpe;;y%7SoPq=ه弁B&<}2>9r;WpR6PxJ~F$']T}B n&)8 Ʋ瘹B0Sa `L4M$>5^}673o$cm70PK H15;<"nuvola/128x128/apps/kcmdrkonqi.pngUT eAPQux {gT]d@-Ԅ*H(KBQ[DAQi"eE 6+6HQ諈bDEEA^r~ZɬLV29g'/`2K|='mu }4 m.@u9{8/^ܪح7,zV֒۶n ۻVgp.NzyF"qk5f,ԛ H;[RmPH0d(,9gihU)uuXcfPT0_é,zE=nÔ= d2_t$aoWӭp_cWSZw]QOhȲu|7r`%n '"Ͻ9G#a}-㻲T E ,0W OM RjG3GU$qQwnRP&&d FFFus𷎦tt,xm0S"GnBoӱbd-P8@Cr(zV.,wMsfe dùZ6pwy-PsƆe͊~!5#eOwkc-C.oدy};j\#uYk(Y]|c -:uJB"*[0ˑVv LVokkcyz2ߡ֑DYݓu[(TIe/mdQDHHqsG{sw J'du?~3 ]}QjKyQҌ%=/ |IS;7ƐMQ&=W|oMUnQ@f ?zT/4=9O/o_}d/wQmobń[8ʩ2NuTnŋ<².A>9U|KNEWH@e232&kһ5]ިN|soʘK/kRi!a>oVwZV|(mI֒!jܢkYT-N M UeF0U^x~`+/3Fuﺈt_:(?(#X|o&s:u)):S;λxMBx\-TV4orS"1 uLg}糹O!6P4DzF$_pj^y<>í`0r/Z68J_Tq vw[Qf!_!(IEss frppIOKx)fs hI7O[O{BjxO.MOlYbs6 6h+pV< B\ZЗj|88CT"']7~ ʷ&s瀶<޶\`JӜ> $Mކ8fPZ.Y'eh?ȿɃVGݗ;;by90>qHWk񂴐>&'rj߰2]F|;%}7F^ߒz`À`X DZ$+#Jf0mʬ =`!l$ն݇u|^^*NLUjo 9ޞ\Yb[g([S\h f\6rLȰs>]MϲS$S·!IrA>qZvCu@~~,s9!`A!m3=%bҢ){DOz ia%e"d|# Eg׬98m@\C]m џo KH8"`OH6{\OMz`jAvexϸ7G0X,֞}(<ė|E8Ҟ5!ȶ/C 1M= a´{V\C8Ws?0 s9"ZbFf"qo)IHA&ۦ F9r'@:tj¿ꆧQJOn N4X\Qgm?Lx͔mVڤūxsŢN E-Ё6L1$83v XMQ|sNVʶt##"p+c3Ն8 \4s+*fVCFRH=+ ˮY]ECXˍR#ØA }m50L3Pf4Sd\nksm G z-(Oc Sjml. q&XTQȊsH+闅؟3K_ǧ/:p~xn!jQ! D"uEJe.Jp}g5h;bxI- 5&&8326R8F4*7p~mAl+JmkZsde=mn@*%Ibʧ Sa""an[~۱[!Ӝrr26., ϫ FdP;J\!#:+ɠ9L2y 'TA\@<˷Q?Sߓv* x'_T u[)"ŸfAmtd$aNK 6-dR!bm4#HMlJLNloN.`<){.j p $] hF92ZBOىD[vF٨(u瑗uI.;4U߰=ʘp侹?iF [Iʃo;бF[םfhd*S8ȳPX8]*YN/!>(Xu[bI7f! w(1v88OZ.0T "[1חYi&;\ 'QK`stky7csp~u/tcE2Ȉ*!#zzbEa@S=&oLv/҃}ZcCVr9ZYiOC5ir1dz)i7~@ؚ7>K(AiAY7yox𼱚_ZI[ZI_ $㕺d5,Ō;ɴY'_Ep3wH}vu`8*:B !rQ;dX8aR J|/KYZùFEz$v|ޠ?j2Dsc-gvEZWZ?jm=H$Ɲ|hF >>r䶰g/Ōv7x Dw~ ˺%DcԚ |Q> \Z5͐WŤ hN!Ek 2O!^u 6W5㌩X?Hb(1\.篺(Oywk"YM2*tc]SS8Dl5"6(r?6ǪFxoE1sn1SI,~Ӈ;=4(a؀B#Ah.==bX4v~#wC~[*!]U\GEE4FkB3!_Js8njيߺwGLTs3Ym&Đ ^lyn˲?:V I:AQBRteց*fC%tkKT]}-)pɁ/Dtt-Բ~K,Jp orsAbQS RYҫg표/ SRwaaLXUE'kJ7Y ߤ%!@՞ Rs_s=k6X'==>TޤڀKX1'e5N*/`jϯWW`漁DZv}lWD~+~b>Xrd/q6=Bao*MsR7+d):/- 3`GgћمS2i){ /y^_=`R6bP |JX: 9 o5l|3JoOA+S5|j0`1quAB1  *gŀEs;itX%RCQ ]*rW jӯ )MLGԋ3v7X}))W͒u裇kB'C\5U^_ kI]pv8 @Wʫ@f dV7uv;ⷒ*PUXXѴ6čMPq P$fhZ Tj)ͭ}UuW!og~B\2ԛppy|HIf6Ԡ@6cF<p2lQʋ삔pـցPI{D -椴@}$0.ᜓJ xv͊e0ʜO8d|a~8?} u2kzN&͓X< uֿVM6MRt}N6NjyS{%C@,)CI&4ʗL(Qc<B y-M]n Qq=څ͆ȝ˂z/Bϲ;5g] MW0eƥܨZ4<$BQX\\EH );V?}W3 AJV gQq9OD={ۯV.7$}Qh݂J8vXA@WѺmڷ}ǤlXI@ Km"/Oeu$Gc3!uI`kh,Þv=>~xw9wgVCPf ]l|Kxihш9#NȋQkBPjcEbMj;7&=2n)搅g>{ߜ#-Sb% = k>`xUSG{I Deho)n 틜9}={B̾_w}pP'i)twG{u]Kdz9걥~Yd=.tv0JY?(D#݊%jӳgftmH߲k{9Ep*0/ux '.3WJÿ{ݸtke:2 T!#byk'uJD]L^hU:[Hf۝b߯Ղ^yp 2/L/M4[4xEAɖj׾;N)8uX~YZTwi;һ4""=6ݸqKW*TsVHX4ŊL/wwd%B+ ]E Ўʹ⢥j0|GB~.•Z書ES璔؟hMqܞNs$}w.bkw8@X p`wq%'zendRb ¥ՂlBσ*8]UaZ70ln2]/'Rx)\< wO +I6Mbmi=hؗV[-rreL/ǚmu̔,%Q,MQBcm!]ff~Es[OA^&ؔ߫6n*\ieҼ'DLB+l6Y::Lko~,ŭ׶L*פ(`!y %_~*=>r5(N-!%`* YXUD﬎C,U(/;agҹĀ 6fH [.N]6'էu=g{!E~v{?d S3hR{Pl.F$ +QlBא6+F()t$~H3];Dk?O0ُSR/ZD޴mB{_ Bxm0 KZی8R=qB&o4RU_9 c" ɺx/1}]tAM5r@P5i`o`h?Rk][, ^ehC>qz+ˆ_,s ɎE/=J^`Fg+&ׯ@TwI;n)'C4}ZF7zJv rigATZ`|aX'#yq^#_b QsZt:lJ^†KCtp%k^lK9&gIf??O?۲DZrEwC&Ѝp!+{ >Jv.Ϥߞ|\vDQ9̵嵵>~fp!x:u}dA??F`uȦ\aD E{Gˆ5K^W~--(ܭ8{S}yYR>>=T(!݈jNmfsSq6 16&9VQ~oŚ5v/6yr]z e%No}DNwJ<ϊEp7TOytcCU08ǍQoH\|ӮaFzWhDgC+#r.xU ySqܞc} ~|^pHȅ>*K kvҜh.gʾV&,`Ev>ExГTJM,yX'w;ybPUB)9($fFr%9rd[rK|&KO'f3]m oX''rfB;ݤ^<}ree(u>ŽaAY/p}2[^0% iZw6m9?"~ Tg!9Vv7Fx/Y2s|]7_ԮdYdtKF޹R~n+'SIXܖ&A'4' <EAdv`}УP^qԱ^g3S?b5B=)Hd=RAs}7ʘJ'q7I*?-TnNQ^!w۳ JM=0f-DYVEhm7YX^,)jvN D #z7BЄlHdyl1֥ID_cbk]x1vrs:&]lsZܚN?6!!t(Zb*]jHЭm-ȼsP.$ӏi I4gtWdڠulҢ*(R1ȵ;Fx'q.etJSZk&}6AwRp׍:Ϟt UG(33ʕ~?Md)-)&$׎#A@U36a^=-yU.٤{}c&؂ђeQa'5L+G>ΧFxve}d"]kQ+E=Vvgn溋iO.)-J/{؁P!pR& >Z eMimm$!b xJ1'Py}JNYJ=V&H8 _WUt]GHp̴aWEoӡ}\|CevbO1/H*s\D%$D^OOz7́Az]Su3,wA9TTkLxk}[Kv?hw5J/Im(A) jG:*#c}tz7>Qu~RS&= )iq<i[cۏ|w6~C^P4(Q:j.Z2{jB`}`*TNe\(!0s39z`jQN"gDryrǶ!'Sd(kˢ2 :ڵrr%}u-Ur F8.uX?7V%o /%/HjkМyBOK{n1yw6I=L=6ayAvPؗI'Δ5K񤌿}Z!F>E 'J pM[N4#n"sJ۶JooR\I3{"HrkIL$qB2:nMҘǚ5*j:^[i{^gj|6$֍2kPٜ2#[O}d$pG]GUsN=pIX.%awҫoe}FGqz%vB5gk)ᙍ%Ϭ)2"zRڲ,ߠY=7 XJ '06ޢb+SR"Rqzn 37SL/یCI|UͷnEUj$oѤ'̑ 73}͢ th|iayߜW Rj8mAO`@wB Lg٫|璢麗bZJe 6;ZY+v)N Fzg'tJ 6V˚l= 5 g:nkyK25)Tʪg FI͕3I+6)ْgyN`ɸ] YY-s3%&`ϣwd̈́Ro˪,|m'c5; zǟlI^I{3Nqf;|v2]Nzy r97_d"TIUxJtR_Ÿt(5E `uj ҼtbpcrG<̟^ B^F AL[TN9ULMZ믒._b&YōМ䀴@W7رcAKD8E k=9vЗ5'gՈq\XX}[7XHV [̗^^]]d"&&^ϼDO>}y>'tS۾,5$.Y= |mpYJo*z>ͼRQA#{J\MGlJBph'}Utg0||YH(<&&ER;lvCeYKR_/-UJa[LБyzppNk­RV\F[c ՁPY\;H,:ԙ'jC/'jm־ӕIv hSK-$IEoA?'@ai]uL^.4*FdF>Iby]Y22'&~jRu#߿tFgS}"t+|u(ۆdqXC}ZAF@a׽v6a6ƴԶ#Sni8h`h)Zo%aw8UFxᣩgQl?*XCY/̴mQwNpA!ы Emm?~ۿkp(:p1ȭJIg_:@쓴K|j%^=ьPKt91sU6c7#nuvola/128x128/apps/kcmfontinst.pngUT gUAPQux %ZwXR>(*%9*J 9}Ҷ 6o,}ӶQpje9QK[@Eu3?sYa/-'W T\_Hf68S'85&#+,&$`pdS]`wֶ!r!$UTi=iʿOG@MKA1j"`jjʪUWWޟh*/6: LufT%:\~s5gi`BkQd7*^@QT:hx-ra~ufeo 3itz΢E9T-sI[a/zq2kJ|}(fv`,&w قUVQ(Z 07 vq;y` e2sj34zg+z ٵ!f9@M'XYD7G uskKɕgkHZ3!x&"<<8nfI38?ؐu6Zӑ0u0L X|ܶ{bzOXel]]}C|7 X)K!=~v:,)نh@, ŀ?xĉ q[!G-FmqQ[7%[׭gm=`>^'wI_WW=A!*Q7N]td![a6quu{L8وI-:-6dGH Zo_)fwAw 4ƌ\2*ۧe;en1~M g~ib )~\.\6Z4C{= lL<]]Ū!""Qv7'uFj-z8)$6@ێF/; /vGo5tWKu$%(DԆ~~-F3 in e$KF>_Ͻν&ѧEaռ2F˚&:c~"SmEnӇˏM hAChtE8<_[;:$]l%?E9339| iV"!%Ewr}*!k$ a"۪!7"g;Sԋ;RNSvgͭH91[ԥab&]{l{3H #* kIԐhaKuTKvܙV3 [~nB#J;)r]C;]z0kPpAA>&wx |%jv z6H^rG>+Ώf*,AqO =S"*"m8AEOڨWp9 vAV#(r(%+/[ٌg,\$\ %sO0~m &Ew'a902$5. MttAĄzW \½C1tZKFH&Y;eܦ4i\Z.Mn\ίXdߥ/D=<àh7bM:Yxm:)*Cw+QP6i,e?##krȋ Axu::kcJԜY&gn{D ?]OD yYf(}m;btMsB6G_2?f{!7Ac>0.L: X_h.(KokkmMp-\ן(O :!KQQSCP松@xD0| ^H}~|]-TeC >)9m)ת,ղ5A`U- P(0!kX !~{?Bw;40 5<ӊjT\)wU=3yǗ409^ˆqdesY+ru1渪$|9~%Pc\JġjgnMIϛ6(EL6Z{J5ǐGvc=\bN9,<(f/$OLBB.x [YUg}ُ$n#CgbtX ѐR.aO8!Nmu? 1øzV}37;(v\ÿ%^B[xF>ыJq]qMƓA" gBqEGmu,PE8NJGy2)_Ȃӛovb^K1[+ǵ{L +fںyJ\Ekxf eG7^Z <]-spWnR5Nz  _y`XmdsῤGCMip*޶FW (LBWJ " ~c0;M;n=飡 !:`Asu--t<5YbW'/*!dF3q&~!>+dMaؤ*\r6$(_d C 0x:CLgXj4h]B%Ա ]xWi($ˢ'XcDWwfQ,y/e["ByjGzA +CeCS1qJE.C4 vsb>ʯY^Ɛv%R6!=8LT7W[Y@GNNt \#y2)їB6b$mU5NJG^U 7_o=1n'J9w=2)tyՎ35ET7ӡ3RZmud5)7dwe^ΝEQW9d`YAܬֆtnuLw/G9"\~J@5Gvv6+Z#xEew.թ\1lvyx'cҳ퐻t=^eGo8]  I],3FZ0e@D^t ?9Fૼĭ1h+L %ljI&\ELˆWZ-Z9HpYmI1h^A*NE+Oq}mdޖ_Ӆ~bNFqS䷳JD:hg) Mh*L\"]kL܅<'rWUFڦ7DgǼ; v(C%C>ڄq p/"Ep#Z&"N턔l&Bw/y*n<ۮCinɬ,9 IFvͫGhRQHy\nO+R_fd$2 ZF Yt Tt'BKsS֞#Na F8/yz֎Zv)9 SXiw%ױ9S׭F*9 Zs_չ(`bؕK$ X.z&s{==(~yrkύ*|bWs&y) (I]-}`9l_Vj\lwK%vQ?VSAZjԎj31#jG07h N.Iҵ>7"~-FfC-RĸЎ!_>ܧFUPe^jIt9kOR{֨C-gܷBϕjykց,#ПU΃Cnܟi{K={?MFv<#?4_?v:Sw|fw`͝Թޅ`HvN&-+vt B`8ѷ|q˛LkX| 8,+#EZ|B'r܈=;e@nYC_Ml} TǗ/oQ8tuA&J)K|'\D6 ˯F6M#`n h~%vB9uޱDVǏ´ t6%ƝY_x5yn=W,ɱSٯITcQ|}Ð[bqY>zR7z!}tc-2Z(M= 96 4WŢA B!u^7&dtK y-SN h6.8Ժ_k<y?k̡(NAM\@q0y!>>0_<Ӈ/y Tt ?YrO=@q.)( 7_4U_甊n:7Ɛ];9PݎZ̥v & Q5j>mlu_1/HH&I(L޿u6>6%%S1`K}hqdڣVo;"|799sOr(] z#xxmˏњ؃W ʄ\N( 8XV3 8-; Y}ȮC5op֙ʇqc_% ^VDwKA=jN5ϊ'*tʉV7`?uRw/EA^I!`l 2jE> }w8Y凢Ic݀&>#&_^.SofU\Ì8?:Q'%yXr%vb[np86\䀹Nwǰ)#Mߖ-i:f?Tzh$Mtݐ$x1ՕO1N9nB\`NirWޤ2ZH& ,.6~[OCK[oj\#j^~.+EܴX. 6p\6/ ށBǑe@ Ӵ 8kc9֥ii4="kr/L]z\jb:jkjUԐdז^>=*zDARwj" 9֭:Ҷ Tn3{u/FUqThcB&wݙrޭkH [=$"!hε3\")ii.>pP-T֟O,F3=.!uco|壡6xk -kjַEbkcgeYL7U$uIeRxJ^v ItgA?3h뺞3ppq򭿹 އu^eQ5Bru;^4 i G>ׄ^Z r6M܀-Rf+O>jj ƎKljçX c~4w%^ݍA==]َi y vG_J%=aήW͆y8۾H{ ,n#m"iBu,(6BVۢG^VJKs晏+Xo l =2]/oբxk7QF=FB[*SXɓDQh/wS!XȠCdfh^/챓yex)N@*W=wɞo>0L_- 0P[GXC!u؁s񆬐񻖼MtP2P;\u[g'sw/$":O!7 Zټ}  wE %*Ӝ\mK2`42ZT Zbb"|^1S#?Hj~N#dJSyɒBӱ=,..+74/2lw~:9/g8Hۂ.#4S{*e6R :7)$^zG0־O۲r˨}ZxZFZXkzo#Jn2Sᶾk|4`HvO"4IVB!h#a2i*>+0| &FVsk"ە-QPLr}ڀ-OnJ6naҎ[*bxGF5%xpo.ҊS'w35Bup!aA50vR#[)#Oɳ9zYo02oo'<ݑgʀg7_и-l ^OJ^_O"i› {?Xq߸G A=\ keWV&qđ!ݕ& Pb#i @Ŝ0m\ϜF'-?Jbܓe( ~]Oz<.pw==1rc8IZ`jZ/u {:Oh%K~ )=\4Ȧ 2ҋ"b0}|ciOs;JY#tUbGEG-H=UtM1X"*̵$סV5tug6ATSK*Z,C_cQ67•B>Faq'#q'5D{F͐ȭyB@#AY"rSu0q~Hs*kdI_!CqONE);m '/TXn>Y;]&_]礒8ywak/&`ΓŠvDIRCcupgf$YMs*ESwʘ68ܘB KW9){؎1-d>y=/FdμK|WPD'_G^/&a^{,]&WDMX|OWmQ MA{C_]?#d´"v/eQxOvWSyo b ੻*u7ƒ:|rM ~od\)\ʘ6nx68ܹ-Tyi'/#*UpeJ  gMI,ts9NM+jXxMxlNք~R:[L=2KzCCX%-B[QcQH>_zo!Z3DmSW-ܱ8ONU1| ]~&ۻ .l1cF?~]3Էt,&S˿M>+Rup'{my\LO1/ROV-c-cd)61s}o^EI\g_tj#bi1$E^J}}?*(l>I:idx1Ĕ<, 14&yiuJH?󇂣{{903|-Ůr#G|CF:C ՘reӣ*swIs$uɯf%ğ2YK1YK4XeȐ=b=U1n\B #`l AnJ&68{ak N(G#w&Ȗ*("fF!am. zy k";˩!hnA.+~{ .„2c >un4fZ[MN/y9,"Ɂ|76ݏ;(\XX9dgp'LKa6_xz&ju3UTfǜw$R;;&2QqG٫/κo#cgN F%XIiso:)S~ьr(zOt;]sZ}-dҽ1A*5l {nVM~Gz-A MnȣX3p)b ~1Y?Qd"p[BiΔ\>I҂ l6WtNSDՌk@ݗlL{8Gfe:_wk}/-]"c`FV0Dh!K]*` .<3߰W8^pF_Q957_yruo 3jo$t' ?)Yu NKY,A@j5.ƂgCApv $wBJ 4?"RiCW-RT2BV Щ'lhg{>3 `KW*B~_J"-,CJί66^aNr`;Jx_`W hDL,H_W860 [~!LGVX;^?ŕ`鶶"pHRk$G`i$_cͰSf\.*Bl#oz=8nJ#.wc{ T&8""F/c/^sc=Ν }[5H dM>Xk]z<5t0_sG:Z5d14j)SGCtbۮP0;[Asb&%@C":n6/*`ܯ=}P\~;)¬[gX= -=ּ(lVۦe*|7>eI}zuJ(Z:)\4vΧ_Y4e_G'_\*jJ\2ٙԄo]P~>] K Iqz/Z9J9Q*bBp*fM?^L+GC[ӆ!iqmy=dmPzg'f'0Ϊaք]< M Mx2W 'zL<0Y01'l+ȈF/^6Y3nM &|Tc~09Aϵ fP9׈œ9HBuOKd!Ř/ pju|R:m &/]h+ş͐D˺ 8 тYp*/1UUka6<:VY7-E\Cøm.qw7%Np% /al |`c11>l6S[3%"%\1hAͫ"TR>)' SB,%rQM]u \NԱ#梴R/ZD[V@' GD{?:59tQo+ ]z]o Sƣ?/9bKbzAggh{.%D|FFrSNx 3@cRV -HJxbj)YYd9:)R:o6isڋ!(ڐm5MM\>eH׮!|Ki\6$~o?v?Wk;.˞H( d>Q}yVzgQO&\vZK^.ĂIJӗ%h5Rцb\aJf';s]A&'"Z5ky3y ٨:̰%ۮ㐊"^Ls $WT:ɽ8ǖTiAD- k|dT(L߽Cz!:UӸL\ݓ)+FN^3^3l%;Gˆ#? ^NI mQkcx3JMSdҮ] eGh38N t)1RPmiW~_)Pi |D%.[AO-{s īzVIq"ᙓ+8öXnh(otsΩYs fd.\L}!H-0wp{ 4| /Ϋck_"U? yb%XL/[=1m#3s*ڊ22F\Xs=O]*zݎǼ[nѩ'0„iR@7Lmpi'j2 G+qHAm::\+NfHXEZP3<{-<)Ki cޑk m46've$0mNG’URrl86]˛#vYP?fQՊP5.jjh<݅"۟ =Ra^#6 pb9# jgl6r.gT;y\Yc\ӑ܌Esd%k<:܁῞ %J_++`A d:  %\k)J ŀ;31vT-T4g Pjil³(PJpel z3 f 1Z Ԙ><6=YƠ9<˻UT | gd<ɐt{Jp}6xaɮP8T,g:W8ȉzlx dhJ|.wM}Y̭am߷`e;? e+VF9;6a=ؙU!3T<;AVے ϭb:E2+qhE  xv=x8 46|@W`PgQW*KE}q-d u Rb.QEٯ^$vhL"Eklg1Tx71Q;6kllT3F̾kg\p! ĐEZcNvًjmZf|:9O pҿLa@j_Wo)ruf/ܚ6c]C7^XbvkE# n}y%r=w3'KYL`ܢ^{p<rߢN7ݸt *g2ZcךWA}a3QWTk Ŵ?)Ę.7?`uv^w̟lGjv{,wo#@td=l80׾e:}fl,ݘ^ZAxxGYJMsz3doQ$\kr8Ԟ6Ĝ dmCsZQqjONL}̭n%Yӗz)8hѸb뾿kTS~2MWeg-ZjeXi%2iatLי1I21{V~~]L3TJO-5M{΋,,W ̯Hvjs䌬[YMp,VU2 k+~2@sv\ok -4_]nй`;NAuЄlryvݾI$<3c-ے; `R$P)-d889i:h@A d5L).-|v}4@>3>Vj2yW&:z%T&Ռk@s777$-8Ι7aP-OX]$=`kGG`3gkWJUV9U7*y:ÑJg 5}L>rwmx+_,Q VqֈAS_ ""FXR,i]ֈX ӝCO"fIk?˗홇yܸnU<=;3(6.Ęwvrw'"R͊m%Ar&&#Rw('$p$?9gerqYFƼ<7T=BLNP=KnDKubQRNTU*V]̿B k6Zq%DYfA|xKs1GEXxb9DSdU5-~!~J9<;K%s7sY2yҵd -7!Tb}_rʺ>%'XF `/~pXw-ԗOЙZIh]Z!>=?6${Zg-)-Ke]CAKǒ6F3V>kPQq-m-sK֝Z` _ _fZ1boGǤqdЂ 5TflEҫ^DM`K3Nb!ral9崩0h#P,/y-ev]ي|3)lYA5KR xӪ~!{q|/Hh.pRcF1TtHtj5K *݊/AXv*nz9ʿM'zE|lgZpCxj6>$+%5vV^ $3D)dM`'oB{%##B{gnQԚ j\ȓٴ n ',K~6Ek$`nnZmIu4gП_Ȥ37r\;c3 BQu5.z {g'"ѰD$*{X4jrǕB[dIaQOdSkgO1YpgmVxƴN_vl(dUyآV2+f2ASMŎܶZݤI1kTOWLT ćwY~w9xYX$X\} r s0jP25pQ_sV0$=!疩P&t<xUR[2N-[=*Zpi"ڇ^%s >R6[te7DQ@ߏ>,KbAcmj!IL1VouK%# … IG.mI\kuvzeaikx8r(U&sA[2ܢqUߓb@=wK+пT e,8VX6cx9f 9I(9?GLJʲ^vUa qg5puj/JVҺzNY!TN}b<$S%0!jFqvgJř{4Y ZȘ6qk12l0VD*y-Y̴JZ7WiQN ;smj"kX$ Id#}ucAuvŪ qi㌼oBF/nH? ]Kr$WKҩ/Ζ8&)|LZVl͹6Q;}X;6ZC(/ 8+%s~5Œ\ujwޑMz\/f_k>M )u G‘r^ٴ/ s8+jީ\}FI #Z}\*. +Xߗ~{njJZN q8^&yAFDR9.j0is2 `6(f2s\ `ڛLWWp2ϧC> As,=Γph!'auKԋ5PBכGCICiԎ"v0-]-hwlBU {o!apn =2퓝RUpkX "xJMK~ {by`M3* _JuA QY?b!=$O}}>/7h#rTk@ED`gE bIuC_^| ӁFTUrpa§0diDG84G CN_~@A%Z67 ;X,ɧf!gqKxB` dhCUetOnGG0u↤Jgk3))߯E-9a=XYP%״0 vbAhA<7M۝6y0,XBRGAtj( 62—M+NdIdGDxL-?w!񙭉@;- yr}-HfV!A2HS8K1>-(~ YA۲;{ɳ]d?;Ŧ7+:$!+!+[z82pfO6|Xc pQ Gd pL, Z!ͅ@<eXI3NhӛLԇU\3$:G4 uX@,@'q4ӟkv(BC;y6/J^t8 &ְIX_)V, : %27qK(wހ4buIK# <`҆EWKJvR_DL_3-+,c&7ymZ?=;);^MC;O~wl,< (FZ|~@AW dcp͈=J֍ɏ+<`Tu: ->5ª-S2eІ-WcOKYSwj4\;^1c9$hw Yy.70jlYW16$0WVwxl]^nklֶBؖF{BVRk𝴄<4 8ksE2۬g{j! 'q4K[ wvw7[ 社ʤSоJC&0r]+z j2L&[ .ĄE|bG4]b w۰e%)5ɉl}qՅ $!FمŢdik>x#[zF^]_"[j 0ԉSHÄyb#iCߛðz2ՎSh,x7=aFe =.Um nMϯ jYg^kREw4;;!HI7Zi1 8w?Yn{:k*3b>VE[_kyZBvNFY]1"<]19 kp-_^(.VWn)MZwȎ$O'g9yc"؈c$LXxج#XEE食q dw@,D)%0-xVAqBwiZ\&޵!626Isɦ;v =bd&q+{~=r}Z.*wd|4[OLD5{c EV}kJ~9дcj͑Yf5YOc&b}9jw.FާP"ck  X<*b;Tc 躯oL+s&wvSr'4c"JX$^G {Z_]^]D {xyHN7xWzh}d^'Y֜CP!d(˞{%-ނ ?If=*Z?d̈́>j`s'`KoKHq!ר\IqY޻ `,{i"3n#`Zbi@"dH) nJAH:'}ٳD`[9Hy uCHpц]µan-q'@!nuvola/128x128/apps/kcmmemory.pngUT rfAPQux 5{ o[W[W Cٰȸ<43U``.G441ގ9-uJ scrw_9^%Sπ:Qmmf_] s^ &;lBDvfs|xPLWZĿ `ǝ`H}\fEj$>{v3agAꦭխ<͋ u[t.{zXu=AF֎c![zqKj^ztO]6gФQ5)-Ad'txNZX@e]™?61<1V`pJZ EYsn Avah|tG0w},O3\d5| l\Q*С*t }8vҡ" #z/(yrNXG,=z$X$]h:f|x HZGhfXecdb>G$dASD7ћI 0,1$Ϩc]OmzK*0)૦|#Xn~摯 r66bz))Vd-#rw02[#kDnł-R0D;cQ7`WiS1çF0Zfx!ۂw|3YCh&]ϱ-J Ѿo T"֡D,ζ*̝<ãYϚ1(JJ "iy|tr!~d*~?Lqdtbgbp gCҌ<$y$L4;RFN#%A1{i]&]/y2+XɈ/17'pS8`8L”H(),^_t7adfOT>@\x^Իfٟ{ J*?zOh &Eg||Kb!خű z'\[XC(ZGרlB@Y"ԫt.*Aj)}(BGw <0E:)1WF !3mƚ%StNj)u>Ukf@:n>ѽr6s)P6K'b2#^jV"i,ͧc*Om1i8c? \B3s^_a[ 7ysUB̅PӗP z I/-JV=^.i 9w&&Rvu2i1 YjνD`eL\ESK7n]¦/ Ɣ0뎡eMߘ!_IƦ@|cO|:~A ;݀4NgίM9oЂ^`0wc,Z)w4r4?"Waה^%[hUϿ,|fW"ln_/ĈeFUT 0<~ x B^θ9M* ١VZ֡ZGܲh@'-h#ԗzg>pӂ`.&@gjY1;*E,Y֌֔4zcaUQ; xO詩EbN{.0x7*npOxVdSG8zkc:|k]] XeK:Mgx́_&F邐vmKxלƟǜ~##xfdmV?u1ɔcqmB'ǕAK>nzir $|y%Dt3= /-%A*j& 4kR݄osa(yj ~-:rkP\HVun fJ?g{ƚx$0PSi`!h>v'C<.wfuva̸ϩ_dh.f{2H&Lg[ ^0)/q QڻrctsOȜR'WDjZcq͠OۨIbvlGM{w>G%ʞ%Ux.J}}XIBs_=dv[cd q®CJ#pqY-//qXk4!͞KI͢8·VwmK'^ ]lY'"1wxvxv '!w/D0,jWh˼ W=;5Dnf^j%\wAGrCf}L`w/zh)<'V/kyQv:~87"5h;Cy#ñƸ((Z}a- # -iDᣗڵ;?li9i[3 Y:?~Yi{K Λ܎.3Xon#.K!̵1*qp0}{C#yVw$7B4!CG_#cIҠBFOSIsxRE@~c(dҎkgKE(*Q3~G}<ҷ*O sک@0Ϟt5y{w͗pa\.4>M]J^@+ĸId&{G]3Z,ߊޑ/r>L=e:AJ-gt8}LTVU]љg7DqU/^[́s䎹@l.4\e>W=Y#acj#Ar-·L쯞OG6ytvAuJe_-ٜ1}zͫ3St\2#gCبZ;- 80"=ϣ i&>+lq!nD񘀊ec7W[aAlKlC: 0ms`W`AR6JHڽ@,bVKC 'ZvTEPbr̍y:NZ[ *d5q0;ј z/4MME"+ X) =|4q']jf^4aM>A4mÒkE2ЎMD'q튭J8]"[Fd@mKP~b%NjyaV؇lfZǕ2CHWx Hx:3-=5ӿdbK}$NP[c6$L x/3QZwd;#*g\hCj^Ṻk kgF0sO/2H 3(.A/DIrONQx[Bθǘ~YB {ы2nUW6yv<>+<_ԤLC ~5x:io]ԭ2av^ow8ZN]). L ,=8*|4Evs$!mayG9+Y%thor`eQ)_>?sa9"&SMܜx %>1ct}8f|6P0XOWwOhMbWnωH$ Eg6 g|oGZV6L-M ,E7jCDVQXǣsgruڙcN0.8 !u߀gZY|T$5Mo@ǻ+A6z&7׃`͸uGPs(Kͽ`/zwZ%Sq\#snj7{:EmXd0 "wl&pHn6oy .Cps L(v~~ӡJ^r ]P%l>'1&vH|IXX{*3t73;gly{QR4*唿MYgNȧa U7Km]֑wVvjU5iX@;5;=fZ 1*]eLY*rdv]xJSK>;̀%U)?NP{st,;;On)03_!9V"#Z?EFF訚?=8@< B7I<;Zxۯ7%ӎza}`?cc/'>Fq:[ҫ@ИDf,I_gՇi_i :4ҽ(̏*vIt}An/oܯ8emo򍕊 "2É.Y Ra5?J:Ҧr; 6]J[twVvݯr7;{ټ'3åp7rUdHJfCAMpHcOM`RUߘ룄LmDi82#|e.N8%yv<_TԤtAGx^o e9*vZ#OE,,3zP $m-2 6bҏ»'Ϝ12/֯ρJ_Y&Ap#/ITϩW`Ho~^+,lTL6t5PMͮ+%{WaP<є v| \G7tZ%xՠg9zl\Vۇ!Kr $jHn4eB6l,s,GH6JI2˭=4Ql #mMP99ƷqЛh >J+V hm;9hFY0M&3?dJZR:{wI# K6ŢVi+@oZ'v PaIצ>F,ŧᴐ KP{>Y,kuI2o. '#%OQ`/WЧ㶏\5X4(ŸCuOuP[? CGRҵԤ2u_ၮT Qz!ly"vOU`$3Av6wGVKgMzotקť )i%gk{- L1_2KEY[iӤo̲-(Z,nޭJ.gj;بK*0Goa Dޛj#J&gN@&>H!oM|)jg fk՘M69\b"\䜩&:q&'ŹK|mmׅwjI,AErf gփxlq3GL !aéc≒Zm"M=_$(>icxOť4k}YBz[֫yx{ ]1W RuFܫx\vG$RExn1D4>#̣y9}-jJOB㐁rSKN ‘uI`: p؀Bm:[{GPJ":/BMT偓uZbY_+L}~^cw,=`Sdg1'SOWyd}ko~ТP܀zE] mi{0Gg:AL1%8A=J#zJؕê@"^vEPfD9s*|*wK1UctiTI-@<: ~9;gTst2O~thzhYťUTayX+ģ@#ᥞ 5 㡴i|f Dka w{\o<6Q2|(iaI{yjJ ߽CuEeqĮvWl[8Cj3QaumО=FDW\9<_"?t<߼뻯>vm&[׎9'ɬ"&wQ'm| 7[s9h:^׳ AxO,ҿL'ؠ?W{AjL>B8HG2ɘՂGZz})kK]̉iU/0l%iZ3{Wj*;YѲjLjAhroJf+ C{pPbd7p&A?/o}\Mz3`V"-]xyo!sxdBS G1'skcGeP*1J4.[Z($oW,$(AJ>ᓤ3-u^gbsRvb!\*(C7{'Go,P\żaHcbY^[8sŴr|rW1$ֱ$g]bWV$\F(L'0LV˭yDNP]LU<-,Lg7xe4oy%ͮs~bt2 *$alǙ"J*uسdσ(/0By%zsKุ(پP:Wˎ&쇸ŸF挈>ѷK,%Fz" W-/i>)` "hM#CQ#ϲr'[#~ldYm.HE|r?vk_bF#~,󖁲.(!$a@pfbBK9"XK) w/U$dlQz)yLL؎뀎yD#vR2ne=<.g}\@ ZIf #V2<*r|~\>vMi S3=ZԢdpĺjh9q_xۀ2 ׾e?lHiX]曱SgٚQ]2ʪhHO3N~_v GPuo?J%&;\]61FY52zMh(C<Ugz=MV>dU^\~VHX5ĩ6O꺷Xzdy#tj>Ӏ_`gbo8PaXFɼEYTNab+j+ǷpZe3фS>듨b]5Ez2n@CNS'߁F ֻ-8X͹S11-qXŤ8{l΃wHwz_4ild#Z۔X?^#>Wr9IVXժRBdOW{M3G~C^wpiCE]T-A@k]WSapo@#p{; fS/{п7^*`7+ w[AD\<yv9}$sF7y%5V hF \=gC&I1fg8toDZAQ#h lk]?@WԙȚUl C՟! ̒}V "Kp,fS8;f&;;)#;U & FuhE@MRMfx2bD[XlrԬ^Y^gh{m%x$ېꅿG phC §`H'#I.+Lt+1{ ȘOiHѲRUP%_d)&^+q[ JmE̎gwqw%{H ȻEU/"hb=Po6 "O%c/gմ27!R 88͎΂CsUSy5 gV>0۽c!ǍqZr0JN 6W\S+j&gy`'eaaH_S;@!ab},%_Qv*9ŧ01LO &~b-|;VkVƺreԬa(c0Z "ы:|$E-Uh2%EǜF:Gh^XѦ6ecok(֌E*eMKel֮^5@nU? vVɌ,s/Ŧq"03qwY4z*Z{j&{ΤU/aiQxU`y jD2eVDkBt sGD#L^|/I1cU%xG|UCVeYN  /9! l^xϘ^+=B;p_RX{/L -ƌ,0pEYelI`mt;S_?.J%ˢVbA$ Pѓ s7$h dB-#];Hh?*e,ӕ)T@8?qe*K'B LҦ:TnTђ>*)oYY&}XTkXSkJ,״x?MmjY'3 Z?'sخ{,KjBe<IO>ϽYS2!_Rpaǧ~'n#`u q#o7/b,tf#60PjeB.r%Em>b(h mGaX:^Ϸpbҙ(f %:~e ܷ $-bL܈zR||{ӛLg//m T| nګMjB;i6 [[s3+I;-˞3~8΀}l6%XCg*9QIz73*(ƪoҸCu5_!H&Qv$hL6;^4BU⧻`bタgF^qhr3"8.7b^j#џ[u0G )f>%x<~%u 1K MM.zM nPLAMUN0nk+;OPv8&{G^Ij+NŁG ?Sワ0K7Ẅ́;?{DXVZ 'Poc {U-`. i+mO:iV?# =`(OP‘~͜=(3o:X?vZOӬftq7u!̚1,w|>pk}{N"n lB퇱WRE JEʐ^@K۸>\kh7[TqE`oJBl!#8v c~ͭ*, A݄1A<_atf8q `)5AY.PzjkI;߷R`ocNiU !M1P\L&c{؅|v><k~e*f}av F}Q%xzQ?{➰ 'h^bGgB1eKtf !*JWsrFF;t4v6?J#afx݇H7Nv=0@[ZՋŲ[8GUFr3װVe6qJ16siF|Zn_*\aYlaǬb*Ef&IUV}YswWF ]Z+: Zm\b3IH;ʻ 5؝d*@RUMsjDkgX}tTMO:ނvQH>`dg77vL?fą,H|;bNcW؎UFJ{^ MOC[<:@}02 w6@ăltK":4cE{o$/gb@M|yxyڰH ?_Y ]uZVC[v8=hH۸{F<**E/%(e/&_5IQnsmv#0e1SkPϐ3G,bKҾ1r׌˒an &67XªP#qId*V3ώ~53?&2byvWS1# g>GgML,֛{:Bec#.::9T7§q:~2"vKS򗝙qĨqc?v¨oh׉^dYstGVt::7Idiy"ϛ K\J`! Qi`Çaŵu-?7FmUj4 XOOukKN"mftV-._>a/<'_FZRwOn ]&̌2#M$]g ={]}E?'7RQk6 m% 5NۻWX}RFm[V=Nq*7`*l6_joFuA0brN%\7zzrkZgqe;E&KJ[i_,\WaECPglT@V{pOyſ5j'Ι3lzޅ=0 $mBttFc ~ O.HT.AsuODx]b^"ӵwxx|4'7-l^Îg\J07=`?2 Ae޸Yx"A:# R XpF>נ_  O|Ó"3(;Q}{uX{Xդ>sd}\76k!:*I{¸uʝřث,o]dg0~Z[rq:?;6y J?O tQ-ʖ{eSePuWM&{X1y%͊e^<6Hs^> :Oټ(z._}T Lߴ]I2JX̱tdld@5}&y؂99%{5|t # bLjqI0BKd^2jx uŨH&Q.CU$ ,ۼA&Y)27uȯu\FspD>v? rf~.yRbk90W?Ê5?}o.a]vl[hg[QN߻+}/4Ǫ2cxs:9o-)݃їWQTʭ=zXҘff}D> ƧSim930P?}!\F1L?ˋry`i9+ձ(y+zX.6hU!AW}dgSg*NժT9P·GZ(^VGzՊ?fD&P`^h;nULfLz“RnxmK_kR%dؗ&hjqލNGN~}zPuF= "<=?u-eiR*uE3{Y-Zbj `*zE?pӍdMMQ<>1p+Q\uI0y弝xhMId4&p7L*+}e!Br~E/D|3{K7bf0Ln-- }` !M϶ s`Z;X~ I'EF箍E&yo:_|z|׷ *`1qZ8r"g4^,.-.)&(]\]EH#5ᩁD?mG37Vr5Dy`_: vzssaO3 7%jb*_IKPnt u_NMCMm)K05cdV~1*ݗ {%6 򆯑3H3brJBF*eA֡j0&*6XՇ{iĐ49ȋ3̺ t0+ajG>$ny]%/3@U#3d6+F U eANB"2Y<{n.o̟Pp&Ѫ L1H Q&aJ-gG]t*19;*\U!kӋQlY_mN WF&|` <&Fݑov#?iU%tb\B`tR_KPV_\ brF&PI8!|QՓ{DiZ4M*@ qꗐ=z✻daqh>9bePp|q6W@g{ Y33r"w؆_e'.?]Ztz(:=7f 6;ݍ s2]RϪlLrH'*KZvWb` WaNaE,vQ2\"w>M$s{>=s@4 %NjY(gkFGa)w2sTS:=0ĀI b#~mn<#/u3(~6OC:vp[Ҍ(wTz$:6! BG= 7ɸ9B=]:$Ptڕ ItQCwy *#BáLyig.*&' ~?25OOܕSwh{΄Ik>y& D}opgQ.7s-w 0YtSqk#G;ԱOd*43Ǣ1\3u5<&+u%/HRNKW+63g=m]3!\>gCĬٖli4-Kp M^\/ ~B9^PvŞ*l3b0hVcB/ekհ ư< ^aWh!씶)ugrݵa۸1UU#/d]:./4lNXLfNۮ|ajZ.l fz8Q, K:>)|,BVCȹW' 6눝v#{רUK#W3Kp):1(ٙmyNjBsxR ٔc"vx[ & >Vơt9fqa4X_θ}^> ZPK:sH1Y nuvola/128x128/apps/kcmmidi.pngUT PfAPQux W?TiΙ33 2F2%c!B%s<&VFef3ddCqS&j7BU=ƏvvwE?'znxuӮh9aSB\zfÑw? ÉT}Qx^`a!>^P.z>4>xu'&r1`v KVΪ[j} 5U?ݲ&pוD&Q8`6Xj{0<$Am -ϳ42xҐ9~SbWYr!&I|nPPr۠!$}y(Gs]B{]1{EZLW6/<8@aY[L6 K꘮$S^K7$TD+ Z9y394&x5:z~1ҁFQBm% Os>e.+&I29>[[`JHH-9(u^U{X(גrЄ-IhP-:97]\Wb|99. 3НWn לndAc9z hL:Mt _nB&ϖȼp+>NR2FE~5>x<4D\zHp:XA7Z3h|ܳ>E!mS3bI8 gò`4$/&HnUJbgjH>6|KJVek:kfV!%>6 VBS`3`icz::(k ^E:Ch5--*o(}4enAjF`XnvADKAA˂:Dfo`VHѢuۄ TC'Lo`  | vcF(;y4Q4<'۞}H*0vJz5]-p*"}16&&wtu5uw]x@CMgoqԼ-}u0 dV)W 6W2?4v`ǐaym%9zB! {0 3#pcp{+Io[YMz54=KRP4V)pONx#v Z̀3`BFnjD6!,Y`jzw{\A|غA'SM/TQn~`4Q.{\2Z&IDTUWKO,$+piWwA : ::kTp_œo(z~gk2 K^ZJDX=0pE(B/v<흒\z) mYĈc=n? iɿSp!\{ l86Wm׺N=w[@%)SP?R.D`jlwrC"?Q@zR u+?9g)]~~7d2n˷645]'ƕ+ky\ّdEFs}ٹϭ[54lRpt~^>y]T.{֣~B{I]]zSMeE}|Ig5S|L$hyQ3̬R∟۞؛m]Z{"H"~[2~v!LK^=aaz)'GڠPZYI[lX>ϒlHTtq+|-]q/oUCy|01jυO#5p{ߴ-̆& 5{8<&k@ ek¯b8]QjWV;sj\|Rm'Jl=8<!<Qkl=4Ot*LA_z>کw }vL^gnؼ*qrU/F2ʺ zA($rS۫V%H_6 "1pLlƾ.VD ߹cVibEG-U|3 ξ&qDat<ޘl ^ WBH?Q]J.J]+UҚĄ,8E\Ǚr H/>|Ql6e XL3?!JQcD۔IWlC$={MSLC|G_%hׯ`ZSE5+>dd=_*FīÉ *,mAF]_쎴ym 5,6 1qq]@)pjqOԔv$Iлg+`J1? mt5oR׿D4L안.w;"6J2yZ OSO)V3B-! mԔX#L>}C#?N_.\U/3@BAz\⦞T$PPI|Λyװw0]|0|pH՚EgӃLHZ*!(bܞtZSdJJ ߗQ(dnQiUO[:>ڟ9B**7N7c˧_F`EɅO|,~n>A"PK!sH15:X;%nuvola/128x128/apps/kcmpartitions.pngUT fAPQux {{J : (m(?=p+#]~Ɛ[!(qG|t⩰Q92>< HXLT`TXdʱwQn2ٛ3{X&#rͱ<|# :[U 7s @2?@ M PdJSU@ &~5HN9#u拥Q*\|M[UJ#B fF Bˠ6`eJDBa6钘d WNUȺ8IŊag•F¾F17cqNd OuH#'7+aUЏb*$Aّ(r:%>AwӷH󦯭cLihi\!0 ο-cƊ E*p-3lՁ. ReT)HiIË0FfUfT L I {(yˢu>F: t|tZ 8YS-x!)֧JyMi*^ر >*NWRJt(yS[,>mck$XƄG<Ғ'igwb ,z&y4gϣw,:rs0t-hRvDn#Ơɖ@1%?=K2^ءrQ%ۅhmK8C )kVL wk,N5[ nIJ5hhgr´ XF@Áu9TpCDt%8 NɬXA(P#x>9ND=K!k>Q]2mq'hgr^IMW4*VY:GgrƤ p_V!|#i ]=vpBI٫ܪ2'j+H>?p ~g56sQrFfQޚFä!JDܣ!8mπ ☘${/Um4m!q{[89>5#U +w/7$(zlfp3Ќšq3\2ߑK4%Kcer}qRIr _GLo@ ٸtqXؙzqJ&ξ䚘LolW#̀wdj Ǻ_W}ɿ GQqd Ql{4x&)PQx7SH<< AΤ#'L)zWqm'}W}COG%jE[|lTY #^1J+2âiڜA HTeX>6}2k<;+3m&|~4o YIL!^ Q.]=T(o|::ĺm ~?o}B! < {OWZ~~Xgj quU2Q̶'8F,mA3Z슁wI%\#ܭL: kP>w?/mؾž~>A#j^u>R)pĸvW6(tD<۟W/8 >.dٳN}X=R!e@n-2qaTOqx?|^;`f /2GE'+ 㟰JV : ;R*"=! Kpٝ[[zЇ==oތ;$ZrQ$ bWosb[YYf΃3^:1"Ѥ_rE$A@fOrB3Sd9uHSOMjM3.l?j] Sb Hz?} h3tN2qz20{urSjSۏ@)4OʢYrd=WN{(im:IAlf׃|p@\fЅ +7չP7M.~Fa}߂ PJzFk sm.rFazIX~c2ݮ,Z1Tn[YPڗ7?a粷Yh)j$%h<'uXrҼ_U'',NƤeY$?С &l6U*>65n~j*$I>$!GIq棳Hmb4{.FGhУMĸ>9[ZWv }781cӌPPJn*Fwo#ؔvY2qzuJDl)♈^e-M<Fٗ/G骫@**8:?qczCÍH_!, p$g(S*Nmgd^t& MB 9B)c\ITWhKM`N 496W&f 7F.G ]Ko1ُ8S[TRw*YdCP=& -ͫ6Y}EDjo9 F9ky/:鞃hXi چvyCN_oГ2|UBZ_$`P7/%fJ`+F+Tڟ,u|[}/5Hj0){9ix$ 1/MU0jגQiIi4q6du*|Z&ikUT:}0 d9KX8o=}Zx n Z^e5CA1U;ܖ1@Kj}vi>(OꖅQ\EM,s"g`qKY 8 doEE:;{azF8a7z|zrr w3dޯ͝o_>$} Y+iys#)Nt12uW"t3:i%!mo|paTk?ˤ!/dSB;me;I*#- Hfţ3WN2xX=1' %6kSc3N{zr\W%=j~6)/@(W+jh gÅAH!ډ2aR(hqX&`o0sU{ YnCHyk4Ц+usF,[W+قom3-{o1<;.8P T׊911a[ 8/ ^=3],*L+=f4钸/- <^)[hqǡrJ(GdYYw#RIs 'ᄭY +4fvg&X\.yQ@}|cKx^Eh ~8ރvݖ BXigdjZ'fZC1R-s0$ORɸKU3ru,rdZ8Jt`H T`Pbp.WQ] HlR&~7Q)'oŗ(m9Z9 h P5kiEoܾ}M%kvߜv s(IW`Y$]l|Z;S<[չ{(ʼn*v&,>5 5Co >؎\b#yLhiNc[Wӌhtw ť?f,'3X1ϴs'"t@5I,;M>9 Ex{,v,1TL!2lzArdZZº$%!2U* }C#P"v1W%''ki gzׂDZm $]r.25d-UǝZ)SG&c&׻ &K;񀕳^^pMW3jCio~갳CS4C/][$q=1k6n0,|f9 (:SSG䖋*Hq4LkA.J(aE KBaL-j' !:h$MU WW7XGQzkKɩzpffBquwB)s}9ւ}dHH)XvHƨm;ujJsaZ7=aMRfcֹ˰s҄ةPKaV@$F7W~kjSZd֜ݫ7Qb"Op)KPVY =4;3قüMF}BŸ/^.lEa&qTkm'v;ag6 3+):[i+ /袧_CLZ&& O\]p U{j#kz+dPbbI) sP2Hp4⎆2NXՍ@V'[ۏ|/ 0 ْL6n||nxKxmpQ3q-e…zfr.qu#"j~8ߝو|\qJ )Ѭ,2Ԉbs!4lGAR} ;(Zj6(mqcgzpJWjfzsfw4ʚ^ x 5J\yꬎ?8ʁZ9h'\mhd߮9&1Fn ʼn(U'ʳwɼoD<[VJ aQvW+L}RG }{N؊}D,*y*O{ak#GFEq֦{gDJ?™d]B~cիCbɯkz}=?B\eJ2z5eȱv$ :MXTU>^3g_Py7L Ŵk卒#)2 Pܷ?s*݄oRm{)m_C6T}|AGݤhO@0Z!{qGQEOfjOH~O~A'"JLȌ?a1^V݃FpB^W^1{H;2\y1O,ǧ}{k$DR68`0'OpGڷwcH(dݯ UֳgrScc}F}ƗW_{9*xf2멞8X]~hpta\>#smc]BtQTA<9JWl |W{_NR(!íNw%ݬ\z#݃beip`X;S/^7@ y <۷װУsS< nFL0.2Tq,X\/JXԎbj-IVY84 +oh6x>zݚqkg(, @Iݨ*wFv.4 Zteq-H9vhS?+z"ͻ)mwcjTak)7JJZ :%٠qZN{tV^dzV?~"sR;|~sxnُSSmF6K)E*\o%іWxb@: >:NR@ y8dBV& {Ѷw;RjAH{<*g>"5}|b*Dkrc࣡xBоWKZH ƭG1`#m;:b4gPn9jےMIQC{ѓ_ E=?O+q׾wZssN<lְAϴ ;kA &?-v|p1rG [rh}* 8;S8)FY#_f~\`#hPIV c(H;ڍ5<Yȸ6y~Wo<ҏ_߄U>;34]R<&s.|u"UiBn{?I&%s.GFZ.N473'zCQvܺD9@bXDDiX [pC)CSS>jAįH}!4'I=̫LMaA|Ԁ̐!pChҳ(N~o<%0lOΜ]VD!I>ևRiy$T/6 c3g”ij8ƥCxu leKKK< RS$=~EMSXn H4cD}-cl!0"e:f8@d~W-Nr3GfDT}ˡW˃ܛ-=ܚВ@Ra*Ҭ#kHa~lB hdo;9 3SW/0tugh03ރkk]dsڍS|ȲxIr&[jkŀO:@~ˀJd+j˗UT,j.Ӝ E0>c'mi7c<&V;kdEa<0I77SV}QtIf/\ӧp< ]DSV7',q q:jƣpFhV2-NڼN>xvO{ǎ{$ tgl-nrҊyxrf&< oY' #l:6h[n=|8<{ٲ߭FRm{IaaL3Q_[9[(zחN@3l#ݕ aɹDA^p֋}F*^mj*ٽu봖9-A:Q*miNMگlbaOHyg_T.fȂ<`n2Yuq,YP'`'B;w#}߆tVvۉB~?Z=&X eր_~*4VDBp6d|~.PGgdEeKseؾ=vO- d4ǖ}+ mLJMQ r܍2*,-=o|p !Ր`߹ ih$ >EpE3K6|(ƓdlQ PyC^~gIJecK aJ+;޾mᠹ( x Wm(+hqw?sUׂjO2~ieS.}Afm?W1 F\2@*#ߍA6ݍlI|Zw"!Z{L߀(E9;WMT1H򦤒ک!pC4>,}$6Pbjfe4|/~jLTܑT=-uiƮ't֝|w!L޲5/!rC,@G/&x8btsبك1Kႏz]F=)[3GZ3Yn9Bm-i5ҸԯtW ̨ B?>omV0vʫT\@\(m 7z^e+@-hofb" !DlGXj[_yuT s$A嘟gAE%vO%.zaD*#ުa@HH"1:IߢD䇀B5Xo@I@*i(D3cK[1qVHZ:=@&ʻ' }Ɔ@U[fށC;s ^Kf\q3߂'Xf]"RQ]T>>b u;u(s~V@s` 4:T OUX) mFFFr/7gV^u?I8yfЖ5<=1_;2wG Ì.E] )?o}I)$^.I%g"U.C_k嶽j^T]B^6/ʞ#40d eRu^gP=G,^=:nhf}A ohixz`U*iƶ@"P |Ӧ6˸,n17~;`C<<8Zv*6^e[?i" =/ ef 72t@m B^'td9ʨ PxC)ĆB'"I.;v(  RBd"t A(Py7X$|{>sc iG1Oޠיm^f/L^I7JqrʲhY#0G_,74i]F`rna솩1GolJ8lD4&4dfh0[Q dML>\&d(C޾%R b++9 vv*-+7 9q(php0~ZC?v<fshC7%(]*KN/ ~fM_cɻ*C3: X/ I]ɦCtqTU9j3](=ge NZ2AA!''l]SQޗ 1;Evnv?}vOVX"rՇ;װ+ StgijWη! +v%?Ż T!GU$~ryLAW2YUD9x/4ӭ(·dV]G ~꺯ܷe;6^3pvK eB=uOwY\ndL ~S֐ *MY<eU0A44HAF>TcEXr~m&=J䟑0_9.pOmp%Vf|ZVNܓ\s>$j7*>)';U k]ؤ$;Φz~80'r( zi@xSO0@*U (`en}ddMRKE Ƴg"\KGBY(\)aEփyN%'7esgN<4C=CKYAX_AكtOuys] ivcC."#+*5?%'Bt9NJEFa؊9[` p>@oZU'gS٨ӛD?XiF m:r<OTVޝ0\Osu/?Klo3 IkYdfС4zoɳ"]4!>6!!yu[ٽz|Xт]P3|7~׶A,5mz)BYŐ j 2Ӎ.e1-Fpqn.` OVU~?r>.UPpy>gUߑź]D[֯'?pMn7W_k}<%.7? LΰyC}3&@]>ϯ_tsJc#3;UJX_*@(װɈ^ԥJMmDģjoV!2V?pfgvmܴT?8vXJo v =7#w.TW9$A"lbFgŝ:NUP Vt78z-`=Ν'3vItK rD֧),Kh:}!s]s':1MM.{B =ڶPv ۅ*i[ntR9L&?clL-p։lJT˄?ۓ|8V>k7 @~7dҝקŮ*K>: [D_k{uu/X[*$a6gl;;I8 d0e@rͬ{. Nb6H7*bP׉FUˆZbEbډP &թFg4{R‰YTS~X'p{ '㮾6 h-p¥ Y^閖<1/cS0F WKg <̽*mlAIn Qծ0Ww^5 d\G ՞JCD׎]@sWyt=^X@%_ PuacH+gjN"(cd+; bl4zcn :uG?_Q 4f.YOM(R7Yv 6š8C颺y=v3b&Lj۾dӄJDLdC&m+];;= t$aU3@F= |bH%WuǩKصΎݡOHfcFܽacJʮ7;o8ygzUެ1|wxޮo7AEkA7J Ћ6cMT[CH!i-c^%zϼ^\2x:$fO] ؇#Th4s\7e_M:PjQ7bmfaq+!LNlUnR!6+Ej[es)TVɍ6;zچ(]dc%9>NJb:U,jyE,x,/; 7_JPz㝀 z "P(]՝\#N7|`f9Ěyڜ}SN& Yn6+}޹$u׷n7Bu=iRB+o͏ݒS+peCZ765YVYݼ}Uۻw(+r2nQR-i~6ً*dAiҋKw_+x-kiه$l3)KǦ1์?-=w"gK*h^- lްͻΓPKsH1S"#nuvola/128x128/apps/kcmpci.pngUT fAPQux z7ToŘaϠR0Ԍ%Q*4v$Rdf #,- $K"2Pҧ-Vhg~{y絼l{dTquq'!rv7Pk%qqV|?gN1aAaaAg^%W'{`8ǀ&9 u> ō;+l YCpB' dh9 `ɷPFu!+B1VtOb~XE@@&b Ē v*/--H*6fQ.N% `g5Ev25Eg殙4/_&prTJQ^2exYv+Wwލ7>?Fk[Ϡ*L.!>~DDDq''uݡdyˀN %B VSnnvjY}@0y`*AE>'<$Q :{i8KcU] iG5Lk3lY"5Ϗc|PJ2#M Diz/ !8Z9 pTU8A9H"չt\ua8BO3 %3 fGcs"@9\.0bww01488kTSpNO㪺"hϯt4=u"pGHt;{o.ˉtgVcG)͉fjUu\fX۱v UyR"ϕ%O]ڨګHGխR[} ncX@ډ>=|$ ,3x1=;*g QY%U| cd4.Lel %9Dqx`ͧ7HBK7$euliuWQP!~'znBE7Qsr2.Ivॅ.U6Vys+uAw,ӬM$ۿ&$zZM]? .uJ'w7w_FrzP@P -u]DQ!`ͯ٠YE5ZUv]ّ3 %^-ƭGWUXkC$5ikŝpvֵ{J p h/٤:P`<*q-~,/k4Oop2:#t6] eb0* aiBՇuQ6ŕ/`RNze*}?cb2)td$|!u [R@3ߊ~9Yn7V YoonYy5 TcţmʭrN $rNGv~Qm?d,yܓ?xύC974T5;$V@ 7gH"%ñ8r ־fG>NN#o%!{453W+!Eݹ^ו$stnI&/~6L3?ccTosEgJxb@L(@/3 OP=ɇ%V]UzկnS'f'Lim7nxq%Fn:#6'?uۗ) rc_{W56Eg-FlVhpИ=gCO_+=[9BaCT՞2ݽH⁒/K)zyz;x(ͱ5_Klqqȶk8pe;+<X P(~mW:Cڍ; Z7jo5I$٦Sȡ%Rцgؓ1q̳/3"fu3D~*kFJ)QoypB)搆8.zQk>9$}36h ̖}rB'bӿ~X$mFz?`Ɓ~g5W})%_=~M3o^`Q|9.K36{קCɝemކpMWJ})ٴuḤַc@l]P,061@nYV1T2`JXlq(O] J8CB4K@]P3"OVKj7\Srv*[!ĺE ynIqEbXHZA=m2$>)-jJ,%h,RV+f`n:deo~pQ\f0]$f%lBGZq.8beZsOe3 7L|'AP{حtbc4ޥAj~,"| /Lg g&F X9ىfqc3 -jlQ[#tX& ,|"^1MۊӮnz]o+#jґ ZD^!UDyDIR) eBh_JHh^7.k]A>3x,Ŕ6C"xܖb(L>M,^z3GųL*Uk@w<s#|*l'!K̔bRy?F+:%wj~ N.e G&@렾q[8fE;2Nz9bh )o7 pc"g)cv2I皰0 *בk|at+ ͭya容T@SgKX[->JAGs4iil(*qv|,llxP{~UPk:UJR!7G斑^DҞb݆6 H]}-Aed]EĎEjέK|*ʬ%,J9<`_^ %=t7_jM*pRRkV vFT`Ē14wDm?͌7"ΐ |9u^jAc aanu*oX~rX˪ wڢ@Z)n5W0wfJZul¬>j;$3+kLP&)9W=DE@@ %U7$> l'\XY?\$Q5۵ SE?F̘DJ:#86ԥ(g>A2F-luYs0sUEe*AȂ.שQ\¼Fݢo_v9Kv^и\fʐ/ Zm $=6iCmG#vΨ<.gH_R& !6*E:1QA]5~Gkh,^ /_.¼ҝQrtL`\UoyhԺñkW#kFhH$y|.$HPCw= aQ>sFI _~2*J{]9+$lV+ܩz56HA~)Xb $?jM}]KȃF ƫH_`L>OJo"ǃq\t+ZLK53^a'Pk૴U|'h$ &Spt9>^H>K "%ZT=/&ŶvGYq01Z59.j4ݑU$Z9޳fY-'=9<r,ZD?yQ2 ?B{!XM*UyysLsB"mhn䅵A~ h֪շb,MUբTpCvTSR~1҂P;Q.wߘ~K ]nKo ?N!\YCu}Lm_pٰgV [ շ{>ݗ. ܣjZNZL+N.G:ᦕFMήꃶJ >0#H~kA3G lΟQ0V;jnK;P?-suu[v7Bt,ƕ#l٢NN 69C?b媉7 Q+5|r#'sk+3ߵPIjn=v) 4PFs@D[h [9n!FDт dx11VXtm!;G~FFFh#*v,cSH_mIuڱ=iX[WPaP} 6GByYӽ}\'H{/07g 05 %l2; {WGc,"9&w{1>: ?$TP  tak]ED%X=k" % }+ *[üBa>7DʷM67)*+۷ҪmT|ҟRpڮxБ禄8C^B۱Ÿ:è?@%1+ZZ3õ z޶C݃pzec'K. 8(Iul~^魸DPo%=rs{ksaX󞅩[αcꅀ G>)gE@+d#Vct@FijA/ .g<.VYִ2:Y9GIZUTղJ2/ _-L*.CIݤ%V؅_x= 2?p(r.m3d _=UYicDn{I5kT) V˩8> `@-m:i2>?9 }#wfU:C ː \cMDt}dؽ!w!E@;'4v!VXbMzR&&T1S q`;q/^Zsm;le̐_ $2K=R9[2S"fv(;@}6uhD^Zi9Rve]PׅsoԇL i5;t px\e"z/TY,aLt9-5F RT'C!bzp16+Xϟ`U@g< \1`¯~&*l*vp,lZ@V@}$]VbԦ =OPL)"FO8{Iu}2{H ?8jЌOEZ 2)1'E&Ue8-+kz{ z _|yp}e25ūB̒ө͔t]%òaϰA̘}+Fs)tCnH_uCcח1]*"h꿲MvOp`G@gFS&H5COX4CVO13evTEPj"%C QLNnz]݉_u÷]sZ!b_zՍ])0tVf8ޔ[%saX_3ٿ Ԥd؄\徶Lˋam8x].~x||: rc9j+0As;TOtD.BtWem{͑ˀet~ܬ 6(NNoa/_<~Ͳ> 29}x C k/?qćNuPKsH1}=S@HB$nuvola/128x128/apps/kcmprocessor.pngUT fAPQux W:ɤHD@D E@)I )E RDDA (R(E H/ 7k%2kNg<Ϟ5g*<2 6k\60/!n_pK!=b к-hBքBJ 1q4D_`jΔ@ň!@U Ͷ|8* > $&]D1SS@^WĤz2!W'VͶ 60`LuU\kmДl|=jB5N$Q;wNݻzfώI!_ˡl8::&|_+؟0z>|ž}[[ىWkC &5x9m_Rr*})gnTƯvr6֖E/)![߯Sب)PVKdagg^kZz:A烿Lu =ɵaXXrq޳g'3 m+~Ikwp<2tLBck@wcs`]]?VňO8vBQ*C@B8]E.x-͏闠Y^ CM ЬcM-UM8tlJaĵ }:kKֵkbEo7E.r /n@_BCo.指2p]/FDCБb' CpΕјNnC,V5˷vKUF.WNpeDȪ-HxrO[A%ſ6#h 4%zBtn޸!nnacgdձUJ U%%KQʟbV#I1m Wok fhg>iQ[ћB>U0T#O;.8ϫrm+">@JT:B ‹.q׎b%jr1y8{} 0&J$eTTgz:1 Bf2[IfX9༴5;HpG. "Ԍ~r bseMaDo!~HLA(`$x񂯴 |^B8_?`]vMR6.HrTo-<G%n1H>Qwoc/F,6Y*e,p߿j0 *ؘCc56P FJOЭ7U<[3X3 s|čk5=3mſt#RlNUc'p iP8yn`i)3]U?J>̫&y~hnZ!x xgX&%KǷ`GH~/|;.N u'0aTp H5]@y(E'G!BDUoY#0O3g$r* &χ8v6T)RvY"K^r/M y(V{-@ #ͶѤΫUsnڂ)&Vp{vH[efVP[عdjTf9OI\AM RnYoP?$aH,sa秫 ycCsl&J/v27[P}y*&\}S\<\Zr([o/c8w( VXd{f&V#)YGJ&IQJ{c:nQ=0vym;<^E f[T$49F27a>^&`E%v^mFKtJ~5tbgH mߗS6+\{ѷc6,)d)@^Pdv6QN.^Lm^Ƴ+wo&K2NDO0wקEqt;f \.:֧J.{FzO>}H<&{g6~ x;iW#JF=gZ5Cj:B_( B9r$^ P/_*@6v(mW~OfAH%~i`MLL1g%,-:-nڌRfB鱬ݻ(^Z՜.N(!ԟf a8Ho\Kb%FZ*ΎE[J&I|c Ehd?iv֑D{&p2v]$@JkpMDtvpo؄Ld5L4&,\.r0ThBe-NRW|kvS 7g!>XJ𛣖 &5ueCC`"}ûQ?p`z*0 L>}USnen@JԊ|Q o{dGW=`*)lelEN'{^TE]PTI F}=) 3@،slfTI_CTL'}DߓOQ}v<%d:14z% G=OUK( *P?MɇV̥{/ۚx)o85okmbTw(wn"i0e@o- BdKC~g!ֽHYv$.cx0F,% y`/꿂/vJ7-hskz:b @#p{=)srg^ܼZ'~p{-lT%qzq+ߏr'._\q8ѻ!t`$t;.67lkƒ}WzQVXG55S2HRݕbhlVkjkdN_E?ƦjדEe#xnE퍑O/cbxqJ غ%Aȿ{luߙgՅvWt)gk/lbmP.^^˅ h!ļs1[e~ܖ?M_H*o{w/^)-L#y&YsvG{s}紓-ߺ9@Jݟ6(g}K#DvЖ=?N?zL"6÷(DĈ.̗۟"tq?,q' kQX+-Z#K0c#1|ĒF^ܰrG막u+WljI@ H[گl5*aXq/x:~!(>" j΋xq7>Ț(?|\Q:̨hDu5̹>:-Rk>%|q ʄ"۫*|٘JǍZhbŖ n`w[(A9W*. Zq-$h !Gߟ`s{kM CD^U&2ܞiqq@J=sHFUÕuw׺CNgc^Q"!g<.ԯ }ۣvɠrpk海ހaLo{O[U9'&M?l#jG~]jcu]˷4]QqnzM.|r|dpQC5KLOйQGKxܟ(F-$;<&-dܑ_%**ѭ-`5j= YDV'3xW?{|\cd4"4S23}^o4ل  )ZDeIZJK'!0h+܇&`I%rٳf$ay=ec曎m"Ҷ^ZTn~cu,e ߕ֖Ժ mӿCrH1ߒy!yHx| ǐvq7-`H7Q5f] pӿ'2臑pu+F,mf0XV%`ځ{^˜J R` Q;tY-:d8qx|6˕/:ѧxQϤG(v\oANHfzFA8;wV_.EH81}cpxjplS֞ (yIX!Ր&_y[}> ר72vѬy u3c.F^};F ){;ZTȭZ $ʂqo9JI!5?z-T%J@bdTR]:l]9jkϭXFnԮjDדkkP@) {K~=0xe"qخh|5ۤ~'B&` W0RMs+ԫ~ZhA m[aE+=6U >fąCy]ae;Qȭ dawl s'A(Q7hvSA$c)r UseMs<>>"\Cُ|WKL43[hNKgZʥZ[N IF3 r/~}ɽ}@v+}*wYcʹp-o@9$'w0]Hxrɵ52z6` &@Pb>vsF2%nyԎQw 1`3n:- FQFR 건AZy߰&ХyS*3͓Fė fȍ!bWE/3{eP"KܫṰwj%F3 ]dN |_vk>-A|@`jl@|mQnqfY.T$s9#p@lxB,ҭ4&˅YUqQ떴'\t w9F[Aki7%i|< ύ4F Y ޵Ne lLIcG:ze XyXĶBP=E34`dk,xQ@*OLx_Fpu5hg%8/(ԩ.ֶ7yi 4디#7{-7brMvēd< 鿍;ӒeOS5Є0 ]}."ͱ N2ί:NBr̕Inry׾yC sFkF4jr]}9i@L``ٟ0ԨS"[|d]SCa x"_J{FXC.Ѽ1VUSM@M"0r)EV"Ue+fњNVѫ'{W@E^@l,_9H`_CA^pk})pRקǺhONlXiCpx\-$c*d6g.qd\Eu۷Cx[^"oQ ]@s~(:Lj?jzv{xAb"z47Lyط[9,X22^hz<ȴ?%Ή wEOjOв|sf Qx^p9B< c% ~:,tJ6Se%P^>, [tG~|0r0A`âmC3H`]G*1#D.mݍ^eVưN.aWQI *f\33QEԺM`^Ύq굹G)GUu=!"T#@ڍ"pI. ,%ޑ9YZh=h U9,}43um9q!Dɔrw!1rM"}3' M|/y*Ts@BԨ\*|Ek1Q>7lfo]FP.SZ065\]̥)>&Rݹrk{(ProVpX}t[F./yˁY-;[mV ƞtg;?K}GzqAiN L]GRm+!+Q$3c Lt14,r}A4#\'XF?N;,1 SwMw*R.HNUѥe}|^.ej \c4_zy{-hmwQ$@)M/Zo|6Ol[!B|F aRr7ФTP : zy%98U jt[.($2~T##s%&CG P%1 H!QR԰ݿRnb Y;ao*crXl e˰/(_" ûFk2^PG@V$;S4wעfZ 9چo9Y5ݔ%5*pTAy49+ϢBpmG >ÈŀGj;9<8Kajoe /߀&]@.(F|/;>U7!rX~)v"QSY&`#Zi!Rv\O*fCj_ߔ*KHo4ւC>=PW 1_!.;dt/@--׷uNX>mcl@@WTkޭԅ=i=qvO )?}3fyTQԛbô.A\C0!uVk)sC9Ů,Mu*5u~g'j9|h<bǂ0]h7n} (Z9J@q/\h}k~vTYv&ͪz-w h{Z66<--axy/XJj3JطaRZ4}'f\7¿[{Q=%m8ch;mrRT^bHO8mj\8Qwa<)u %rB+5ajьJavJ5}S9.`s>:qN+_NGSZWQ~:$^<$*SBx؁P|P)2q־?PU'С~4FA yJ%EwQ{;|{ l*hr;?G=K'S)I |G^.+7ӺA h@{#71_Lr{\`,No:ʠ ?D$JGa>fWI%ky]˔G4?mn#x} 9K*Q4?Ab.) +@qO^@jZxUB9[ļ%CԘjPuMAQ-i)4؂TiM > 郴dv3¡"=RoKaZCns0d2;Eяp 3Z|62FTs+%F`[@Y>z$G䞶i^͛scbϥZy$A&Ƣ w85?nTL -O{:&._*p&m8)w_cg>biaqq9/!M;^k5!!7{U v+NX{MW>Mt 5؟ < 6Hߑ CјL0\׵{I| e.^]XEDS}@F,0Zk6خs@N bpnN'Y fp   K$b) ± "_' #\$Ca]J@ ^0l XA[=/Iu#I-DeO+)q oݚYv~1ȭFܿȘ ;jJ?owOj6s#42TwYOWZ΀tUYؽȻ[^RIf~ T6 ͍u.xb|fXBE\!Y |G8r:֩Y&z^DžT4,O>WJ!lV1rO%raA$[ADjH@ZR&K9);c*z"g^xz $_GY_ ]5ئt*ϚCdz 9=7QeXO;^Ȯjk\ʙ #Y"N-i4s_nCuf2Dkbl\? !",9A{p/˽Rkk. YVz.25"̽#NQ5rtW;`FZ9' nrctD͒]a.A5d_0>:n*tiϢXUڀ`K[\K0g>'DFL"}Y|U @yvƒ*n7B^iKC՚-Mzxakz7M4&oQ#tkf$T[VJɷ՟ ?^6H}OM{U{ ȗ=`fWt{ X//J=G!Nuˣ[gs-0dlߩHưDU3yQ!TvN|>z8CMn#(6t@L|fT ?ezUsd eo տn^ᘎ|e[18֗_7r*1_U*vޭ[alC !9F wЍ/w vW5m&%?iB[8m@yJ^*}A6 *'z ]b[T6s]3sPr89[8˻*#}F8&nDE)\ih={DbD8ʑQ'ѿDh߇ɧD;Ȋ5'(# kHS۳^jTk%h+1(`Hka}޷gؖWd4vJ斖cUF3ך #Blc\?+r#78n ɲd2s2}5'fa+b@v5/>Wr[ 0V (X#bWF'y/9-UL٬b]yf;DPdự?|Q ։x'aE`Wo[m.H~ ̶D#OW=~ʢE&ucWHW[( D5u6q%7˭ 25}pa"M?Ah_K;O36g>ޡF&be1ʚ'uL4,7|&)(Ԛ|/j; u$QU1zښET1%Yގ>1͋ڱȨ 'T)s:Đ\!0Bڲ /qbQpY蘃 ?1b5[g·~4swmJySm_섖Fxl/PRvUM^_}.[eHoX̪d8Vk`䨛zٽLk~vbmAvCkfqP~!Pˑ<74B 񓙊a76k4[i xC) d$*R)Q :S07o]jQZa9ɺ=|ufNHܠwL*UH/iBǖV>`sYFiw{f-OU.I3r3KN[gÞ5tWReSx xr~L(Õ:RV%݈-VTgbnhXۭd"k!l5#s>KGob"Zer/@BM/me5q!+c*~4M[mdaq 熼[JBQ\|$L.BCmD,u8)AwrB8ŶaO)`~i2ɓtEeR̰&gu[<7VW^$]0 }tƀZk|#DۉCG_#j#:7(o ?,!+5pazM>Q!OfL]5 =;X@6O~S"ƒ\'8$ WEKΈyɟ)@5V <vԻ90sy4)': BT)2~+;H&wni}\4uYI~nhOw1`|z_ù6d/y .HM-9B7|g`Z˟Oj{u QOa|iĈ09IC59B鿁H:,]IL~\z#_1ᄱQ2;/1ˣA'!$}P#i@b]jƻrY!8%u+b7xBd[OG$΍ZBSDޚ$3U1enJf k]}$Y]{`\̝DQPkYJB<`%m) rμI0Z!:ԓuƲ`!0SEydJvT χ,Oz$9Vsh=rN&0vqeemz=ZCXaƘ=!q(U}ӊ0)W}Aaa7tN=zܟQ.mw7;GnS]vHt$װZey_ɺ1HQv}$tg0̠񝠌♾yPrNR\w{^Uݞs2). 7?G\ idD>u&$*~osh~-- Δǒ%*pۜoނ rw*ڑlC(EjU}jZBȶ=z3L+K(OyI3BZ twi>x{|.Yw:uQxAրl:*x|X텡lf']ýl1n[p$`a^t*h/ݒ2L4p菩_$ye|i?/nv#sжɀ+Wy ټT&p*u1! ݀|CqQ57ĉk`ִXC䶺@*?ɡURH }9J桖o9}h͍r$n iJJL1եB&K~I}@ J:7wA;;s1V>k)"ϱa7X3p5I2.2k=S-dZ_ r9x4 c;a.Fc=q$U Ӡ$h&:V[-ߔy-!/2#>ʡ_BDX>"Ý_curPIhޢhosmmbH_[ }fZ[t Rm#ǣ^PJUqwPqe!\θ 1:)КIDzzV,ko3#NL!,{7y^&хLL2&>6eDiMlR|96aiƎ+D yX\5DShc27;jJׯ_ݜM)[ZpXuN1 0 7aq\X ,G#!ϰdI^L_l$o[%ި3FXи`ļ#Tu v 0 Uȧ 474_cJpƏa>\%CL[#= T#񛆔Kx}瀰*@YF=r%ܮL]#yd*g7a= Sg;<4q[&q~=*..~. (-8tL6*΅r~X3Q]N <> sRhYiˎ r2~~<+ϣ4*D i垴}G}(ʯOI|7H0["FCK'/M^!iρ/׾Jg,5ۃcBջ)|`¬k)Ux;ɳ oMǷCwrS;w*@Z4Uz?A7sx< >]nІOr\'5b&k[|\v (ҔG̅X]k{ ̷/x `V=8; 롌쒩>7C3S}1{V-5%4Uq+(N߉뺁=}w yh:'!b3ut1FC*\8&ϱ$7͜ a\Vq)?:i 1TkOOFz*!'&b8'Y~O ^{BkgzI.z jSHDaE6}Q \f42-'}Ysx\r+,QH^ Ba"adԚO1 !U0?ءn^|cFsa\'vLSxc)lnKcwzu4: sb @,ތ >Z27q8r.u%_"Kdy0Da.K:C(aO~Xd7I5Qa·Y ~HQh 4zE1tP#r@5%#ljLQ1i ]_>A'%kJ!- x>`İ ڹ6_䞷r5_k 9%~Ȥ=mw|C߃lH=`A J5/ ̈Cԋ؍ E#^<@ؔ^PMusq6q1 86![\5=v՗ohOmܘCs/7D\DuR]B@fG{k[N}t/iyFI;̑,&G[,VO١X:$@{ZMmݺ|O?QϱEFcnmMQci~dto#k\E۰4U-p@20};u_ꌄ"/βoq>;=uVz[ĭT JarR2iRW84xcG9>3l/@P5qU55] t)T~<"o^#4R oY9%͞ =qX䮪j_[aWy@lL ʸDl㙯8", 94bi&HJA#IS=mmT2=kT[JH=\tQ(v$-;]n)-짶nzOIoo/pk:CG'=w9}>AIPާL 'bx!.$ 7o~LMKuKMG={40۷dz72>C ZsʫISvsw!{'/|"X|D ܖ0%Mr$^ X5N&$]/+X<ق np6 m|>fbr\) ͙)&sgZVHl\? 7I66ofѱ͸Pq |~AF; JM=Ucˑ94Wz鰫V1)fCƞ-d)#Ltjˣ.*Ll;V33]d;x(FhPu2!ڳhw jnmmͪ"Ip>>_GXI' 3&29ιsk'їDrYb\a2&MUҹ˽4*:=SWy ءy׌E8+GihkO1B>Qº+BץeT{ niw限VoIe=1 GjtkDda`I~' :,T>Ms d}1IGE+bn[k252&OSo,ӓUD0K@Q(1>H)GWVNM䔔is8.tgnz'+B .-,9z*W)D4gI x[]3<H,VBP\[h UWTjPt݈:tnqrl o'v+@*\YlZ!|Z|s5WA refg3靷oGK-ˎ1 %SίeJ1`9ryISy; bE23xs3g*"F%\/e+`A&$"c{ ρfP^k4~3/ 1gVxH5]VWRfgã[&-E9tl>l:MF{n>8z2GCGߟ0 mHS>R?Cn?zE) eG je *@L^ CwDFFf9)Tb_UOJtߑY(Y੸|~>pڦ@Svˑ`(9f: .'**H.2/`k=셒!8D=ZJI#OP6bOS/nGջy?g'>}uёr ̦py1C`vحzRP֍Q5/[0,.4&uQ0ȲvEX G˗{1@E!Em,ݲcGT ; U65`>*b\3.*udTd^-gVC9vnSUq>XcDC^q]5kۻWƲ'OyT9O LnyP)S7+l jR;2u:Zsb|= 45+] MLBD2\ Z|ڒ !!!.Ӑb2䞛P.g3EAfSWW -dʍާBi0똶*ϟsddf,rix N6<fC&H8)zP`g DEޜ1$zrŬc\d*@oĹ1y+,Ee˚<̿ 11W2)/a17p~@GFR,SmV~S֍  I?ι G0[<&b!\ϟ*O@4ʌћEǪ3噼`٤09xN )g[R)?wžx5}a @2( (Z~NiHvNM'0CP AcB0wrfWߜ *:ZUX~#U-?7%Qu՗6#/* VϠvyyM ERfE3Ejk-\u` TNvBB 7 &+:]t1N-C?$ /#:fii7^Ǜ} dU#ѕ/eF3ƀcW /aj)[xp{ưP\abŧw/EK O\= b͛8xKݡ* ?%I gWdr=U.8uP Q=gl 5Ο֑ENt Ezn$4ZAge~nok+ @x: .\ ed%$yZDxZ?Lѯ/bI6/8itE Yp:5{o/)k Ƴ2MYJ-_rb7x=G1&⁁{{W5u=A;L0vv*q"IU̐ [4Qr_bL ͩsR"iogTb^:ku 5(p}ɬyjP,”ޔj\ùyyWq˺KcNjyLэ/g Nfag7aK0u)&/E"te)664&3n> *ҎFֈ!If:FY`/%2 $UcHrڪs\黋X}L@v7^sy&l#``LBRҙIrJ]OHLP8NISIyޑ;]z%?shu{օ d`Utelc_ktj^*vU~n6t%/>}_}./&TN(1u4k,mx pl46hh_F](O1E^Kis+h/LYcs]z/$а5 )IT8ӧi>ZCLB} nE!U%4yޛ:#7w"Ku٩7ތtDIk<5,{rq?+(YEoCR=2:PS;y.?W4MbiaXF!Ag=Hlw Ax安!&#[a ;;TE"5lo5S>DYz H<ۤϟ5 K,7Daжܯy/+bhIL:0?/? 4A K:1oMUpvOty GSL;k STga||AIls)DF3;_Q Sg*Bs"ō0҆ߊy?Y 3ͫ#}}:0Lhscu{c9.~mr}F(f'QmsT@熷_U[0㋯qiyf1h4cx.Q_CGllyQƑW;,[f3B\w*>)t~f:8'K'(!h2L +T,\o&h AX=3aO_ZBֿ;GF֠/\H݊(xxD890Xl8G--˧> p;.[3sk7 I3_?P̜ +8)7„M> wjku9/[l̾ {Ll^T{)3PlIHTJx8ug wA8˖4JjDTntWfHegF> t|iF9wZ#k+^qҏ92|bn6ִ#ƩrLS֩!`Ш6I-*Z:jU^.X5E\<&o0['Vlnŋ92eU8|Ƽd7W.b+6e(0TC kv0'' E<ЮMiqfciH41,ц]T{wQ"ԿB $acޮ-g< O4#N}W] 怊8R ,BY*7LEO,q*}[VWUAtr]W>BgjZZpʎkeO}'OJO{lL>x>,{Bx9cakg̽^֪^ AٯYcvvP_"qשte"\+6]K.M ]`f>-G^yt5lw/1H1{G{"ORcotr+32sh1ɒE5|=|w$!c vs/탨36 G =*˴V<"Q7Fhbzo7OPIȄ t6EA_҇WrP$J)z*L5נʖ6,ց'33D+<;=3zK`ncLT BK/B5>6pۿpQ[YB߾Őh44B0A9b.b=)՝v{%Gz˗Q?dFWX%~Ⱦ6+\ә{愎!=!N "\yxF戱J[`/NKO{gƖ"űmT:z~NхϱBEGop6f{,ƞoƤSGW!awT_TJ*.&ڨ2nt?hy$WRn -6G W 5k!-6#ϠL2 [ZtNW_bG@@^v>pug\p$!Z ^_e.N >F@S:z/-M Џ3ϙ^ 4`BJ6`yi5! %Álݘ0p֚GdA)~~(yv ¸Jx:z▄cŠͬ MQ$#=⸾Q Ĩ D_.FiT*b؈ԻzlC"ȯί@(ȣϛ".EutRq'6 Ԥc3sH]!:vT t0rs_=V:ΣDBW͎hY 7. A0{ P^h%]%cQx YN_j 5oRA(ÔOeiqm4VH9_匟r73|̔\Z7p>eC)S%+(q]]x"\e D{p fu7ԏOq%O#'B8Z![N@8,ⓏHHp.ŃD+da{ hZVVSrO4xoodP2=>~NS(Nz=T=13zyn[En Ue\NW7וCB`Fq@.7/=D%> E-wي̫D')b&mg;]iP-%VG!ϫ9;"F2 '<+A17l@L龰 9uVzV%h}je8g;6zY?^Ѧޒ+b.j@=h㼒+P3r@l`Fރ,H0'-S)7:?gl1$/˥z Lŕ9& '-Z<b-B0Hp266e(Qm12Eh0@0ALeTECoR,C _FA+/dW "oӦWHM)SMѽFNu3[Aݭ|01o,pk0l8"4슐J1l8~~ s)/J&6I\*@%׈&Աf8[mY5 ,,x Ue#+ Kr:a-z[ 3б)8 5q]HR*V^PrʊE6Һܴh:fnFR-?P}j-pv784gol9UfKH<Wcã_^-!ؗY> S3 n`dY uBq:d }6O$d:6CS( K'csxAZ :D /OB^k:VL-TXsx__Vd)溌=5&qשq]!ra."0T (RVTϾM7Þnqa Q1'!"3aSr*}Ouiv@XZ-||k`s瓜7Y&oRZ=n1PKt91--FbG!nuvola/128x128/apps/kcmsystem.pngUT gUAPQux wP_7@zWwID@HBQRR芀" H'((`TTD*|d&s}ϳ3txn n8go.4fsBY!*7x{ g£N$ >{v:ulZ|vw-ڔ"U  oFT~Ї] XJ HHV\lE Wlܟ?8>--<0#zا6&R _1UWS$;Hv`**pnwL:Խn=]u${ՐEElj;et_" XDF;5> ɠ D35U4p72G;= Ӌ>#tw:LJꧫy%3KzX|7v#{v:d S= 27_ ֆeNs%po(;<]ppjtw7 n'" \I1b=!TjuHDDjʮF.얢լLZ\R?PeSR\Y9~leNW:zE[U UqŐJ܌Vp..غDM)tý~]KN!<|XQ۷ $%P&[Kt؂.HD(\y$`>.ami bMWH|== E Bi͎6L{c R (ĈQ?YhoPj֥$l-y .ZZOZ~[ޮ>,C)l{WbaGi5\jeō1B'uzӔxBԜtElc U^R2~ Jqfnlqul˗~I )PpT(itAU$߿/ޠ<'*&ue#ḣ-_7$wK th1Sd.ёwVs*0oۉ{E۷!2l,,+F(|'oOE$ãgD1wP Y 緇WS}ttnb Zə9F.3c:'&N&buB*0P'̛l/(MHX5n{} I@X$&0{F0B"GċǏl.l-͸uKDS"MA#? ~ g) Ƹd]?H9Z޺XG"Lix51u︵ERZf&@ۈ,gvu4)6f;H&NܶR`j,01Nb;8{sW}C#&^UǓ->.iHU~Bm7o8,e ];ۊ4ssd''E#q?SߴILP4a}R{B3XЀMriJn=؜g|-[Y뤜0<.07p9533I-䙸n$ I@>oFr/uA"+C[\DPb$&Ӑ&@$Q: {8;y(T5ӧ'e0wpyG? k}$ąw?{C@pRkc9,*k X$-q @"j IxFL+Eyep^PeKe{l qz8|.Kc)5L @?s{SoO(CN(WHKew-L_1rqs⒯Tn>gHx_ e3pA b )(T2w7!LIuE}Lp~lbTRz+ds%Cg枎Q_}*.~|bXg팴dI%!'_"M.JNo{C#`E*Zw O/ɓ{Ғi|\!'^[Ɣ[.{U/a]ݶ~NJ#|xx!1Uc$~~ qwg̙o mB7ڤvwqQ\]),FOGDiItdNL.>~/0(G.T׿{3Z"pDh]@.%EͿfS?f+.Bt=C2:G__oQNqCp2hiF]84p@. nl_o162PD⯞shqP^UWFI(yY&gSDhI݇΄!Y!vs_UMUF3l"ajY8UؤA^apT_[Kn?8ՑlLy{A V^{ 7q|Jͳ)!MηFDM9BRO<8d%BeMD8Ӓ}p up%) šK!V׀m+*/.s^ 4hpڃ6n]Ӿ %t"@Pҿmq,[LS:QxxhƏHh8 q~&o9uZ%XH' F] k7 F5:)ԕDKu]vA5]fR9U~ۊYBܮѢ39|wWik6hp,bmzDb>#ePC&^KY 딞{=x9^ yPJ !I񼂎қ<\\tusD]PY5 %2ʿbW{6gIMM^Z\$G_2-ǥ`2vH"srQ-EҬ¹J,2fCIIִx-FSj Fvvd,/K:U Nf6FHhZtaBV+8:e/uޫHM _*; gct'Dg&Nj'^|ihNV1d)nsa0Ǿ$l,@)#?p>q)m$\&?µCO] GC)#AXe n:6@?{wvy%2u~gDzeMeʲv4%.EJ!{鰒 #m#ya 񱼍1BRβAl){WE8!&-xxmf*RÂuxHrۢ<9Ox-K>%--r~q(.-46%XkleM$J$BN4DM宁YHMk&Ⱥv̙v6/v>`n0 Ūג>N-y!  y8`ucUttt]G{{&`H\` ZITaH˼v*>jvԼttdh#/ w5O`;8ic 9$kdM;fQ]giN3d--oxq! P>-]dϟ ~ PԮE.)S=,mKKA+)qhPIy#累ݡLM P<ʯu".j;ȹdx,VSoaJ0CyWsl"-! #'-{6}ﱦ\5Z.B0SG=<$5 >ǐ[ԨC|mB5-%y"~TPq>Pnk~.!0! Mn#=U> oCa^@!ꃏZ!AҪ</Y*JА F'&n糿ZωOTXa6zt xi_ 9KV*4COvЎ\lksz B_8ʮgo_".D`;Ʊd51/Qy9Uji4Q;/bÇqm2!v[ȥlU~'1NgL2B{X3WH@\+N;S-+|Q`L2jBiizB5\~ҺŻCtM=%[DXdݨow&D!I V~{R1PtzU"u>FvJdL&uRbrQ(s+ݵ^`y:)nfOv^g$ =,gG>s&V A@9)bBk|`╛i3~\_|edz?TQRP]B彸GnIq)Rk^tbC FW|z{ǫ\NH^G,YH*Zw~O;28W>b An SH.Bd)KQ)~0.iiq푥Ln d iߵ֝fri~4|Ӡ xL1Gw@ BM7Q1z ܦ"Ciţ ~<+z_dsh.ӝj#!LZ~xjT󨨴L=*Pvr?JġƄ5a.5ۿ`7uFlҺ$Yt䧖ڡ-um=l5˗{ ڑFu-Oewm2EU]6|~(dJYtW?_^q}LT6ņyn&3^(KuhDٙ&|gPK/M0=r嚷qa~b>v$l*x?VLS@{up^e"θv, lK'eOkkll#:eSijڅf6cFqUE]wQSUNb ]?l5k#ȀO>cx"S WSf﹧[,vnm|xH;^ZFTw-{CC@KK! A׍XeA iJCr l%v7s'EJ]3?YAD;e_9@mDd$'#¿jKsȓn L0S(/ Dpb˅bbNI9w2B_> ,?K.nX B|[+)i'ޛReޗ<5"mnazh7}>ͨy$WIuv>k= t ` "0 \џ.kZ68h.ov /#7%7vYCWR룠N 6lډ &d`HV>(Q3w,^TłJFJ6WsGtdCbad }i?snGL<ƱL&ʾ@9 V|Di*k<ˉ[mcA°{rbW`!`  K-h޻+,4sA OW2otX_4Cc7Lz 0F^48b L$iRBދ_#s.ߡ:zqG`@k%DeuutlcÙ?w}Μc}| 1iSgZH.D9iraHPL9ў<}Hu_a3vD6ވ n@) |W;y@SzRWel/:V<}ÆʹK(nx""_"@cܵlxPnw_a]p5SQtై*6{Rrc\'qI?¨6DnLi%2HA>U(B ۊm. @##]_Z(Py菚 ?3sg˒Ѣ5M"W9M3s,Z-2ImKLPu`\!>rj{3Js}pOex:Jʸl4]J!37v Ҁ[քoK>(5|FFFE[>N'fIOQ520H}{5[hHA@9 XxMAsήCHۃT& ;{bJ#$=7cIT'Ii;K87L^  è<>1jU D:\KU^Gʣbik:<}"h6 _v7'c;e P@V+M'F%Ͽ̥,-$ V{Uđǯ] 琉6,ng+{uM(ien.D [U|kf&I BmpO)I B𽢫#_{L#6 A%(UUeR`;_-h8wΚ a=*DJ)m:IZArF&bzo,_L`ojЧCy>Q]NI}Kb8E82+].éuNo~}5?t+9&yn*<@heXP7h '5LcE\Z 1r;Cğ^*;#4ASԩ |d 7eaw -^6 }>`[Eon/P`e9 ` VO̮<=]r5cifY߱k[N?,eI"8| ~)V^Dy -"-/;(+Fj\7ZZ71/'eZe耶Ɇ(tt1l.=[nO@i;zȷ8Nm$??z1SL,i%(1e3j %y\tgV붛ɣ.K~H:nu+~u@{y:;݁8B^/կ1|< YN={y"PKn hCfx.$'m;Bn: dʾλCܳda19A5?Ju9_E ݎ,40u>c~U7-SCOrH8t1zse.$P.xr:RdRV͔htoeY<* # HLQջv~j-pynua%mvJRS}2 {^~6-_KXL FCtԂ\lpGx?~-[A +Oݴ'iHUR^3܍S&C3?`* !4YtJ,`}D|,&?n[ϨpEM;(Z5= hɪj"_YofKarS5o9*e 5%ti4nwrWR;98?߰I(Moe`@ES8 !yLD]5]ϼv3\66!&Ĝ0?ÇMCѦ˾)JGOZ w;S_3)WkY,̄L:W.91շ^3/gV]E\ K =޽?[e٠<99sohP9 \n1׼sueKug_ΰ8(f`}\=O9MwEV Xt>Mcveů-e!oKϏӒEpm,J>J Suoj}H!mYXF3m\BPSŽڊS 3}QCuQ'bJR/Qp~8we7mZON zr7aX^rްoZc m [!SZ"Sqg;Y:P7ݢo#S VM򉉍̔ɳɧn"Yd7>]/r.e{^(+3 -G .O]斘GoS=?=O$555mI~},x̫e7Z ?uCܷndζn$Sww i):I/ne_gz&}.gECǘK_}W͜5ﭤdґ z˳)6bL0" \[;q8U♭*@$ O׵l Jܩ+RB3̉ d|(1vw'~ܑm !0.51G۞"g穮2Qϟ4AK^cv|G#ǏIW[ajd*vT盈iro5qiyun:F@uhñw{0\=UǏ'O $h**ze2h&T#+Xaָ_=z0N#2ox@%$p6LU%.> `Ԡ.u*!4LȘsY WbuOC-"fLz9 .BLoZ)K;[Lݙ|ZvbX(;sXЊ#^][9Og@ss_cqsK0Ioi /8 }K?:R\L<zF̞A)ز>ZpgE7D?rVWB݌x|5di? J΀Syp$KȄ>mzox${!֣ai*m^+;++X=6kW;B]`'jiSiO^I(nm,ӣ7\ZytqcӕUU2ɫ\F[R]d(IL?z<̢D-e䕿|$Ӷ ~+l d9*;eۇ-[ȪB\l-d hO-=x#c =s7H"dw8tkIkD;Wp vjo].y3Ng%"X9e" !Sxyy}gF6/Sk`29vYq@R2!ҕ{9;zㆋecڅ嬢b1H48yZ0$:ٚz=5M&?@eo|Q)uzqu53I>~6bDc #mKԇ2A ChnȘIAj)ʢ$|d6rtJ߾i5L#0C^?(+C;FKOt#y%;.;0:s[7+rv7=26O8-k|"କ !<+ɝZPK{&@u4CJn~Zc_󁯆%X,|7u&y@<ƤcluPǧ5OT͈djcXz6dO @h1ٷ I~ ԓyAd l|̷݀M>cC漖B'ؙ,"urf-&p7u> KT!}N .$8"m7khv>M}R.KZ~ S_i;߈5 &XxrOv䴴Zh٪DQm_6^bW085EޭQ7<3 Hb_ ,}6=U*GiH"2P<_/XG!۔R@=! (hvqz-@9~scdmjLtt]D&A 肑eYWiQcOz& /Dd{ðb܁d7jސLOYu iwLbwdJV|@D%lc۽I]I?- ײ|kΫפUۏˢYFWG2 .[f3*νϛ}14d-8'T:HNC ^\~^]' RI utQuӝG$$'j/NL5z8"ltilmB{;∂i%@ Ҷl7H"?k_ ??!-{Tʉ*rή!"''-*jU ߘ?~'  J?%!jf^ hpY6'[ z8. 8*#c(V&wg;#]#=轿`{_YZ2ArEuuDsK3=g[3To$8%,xBXiK]jJ؞+ukRWHx}![k;h9 ]3b}jQ左02H#@YWQcr SSCϟE[C#g_.D5>™Tw7I;fEsx[U8fvﻢ_f?aTa KG'{7^kSR:5p`o ]=kF? Yw%v]̐ F7|f )'YъՅ!;ZRaTiF㒢,#95|AZHN+Z}*Z M5\ǛoJ6[OeYkg>w̩'98C}c}o,ʾѺ"+èq&5]9ޏ՟i M TgD"#PȾ⺺(eT^_3]G_j u3ѴԲ2ld ~kb BoDJa0連ذ|:!\x7wPL-0:+=>S3|23t9q΃^b)'`=&WjO:ȯpI8t RbyNy߿(+-݃0z"GP6+l+-;suIg]pgwP]5/HDHFCe=t*lď !Ib@ WZhư_mpdTtʮ:J* )'OV#ma&/}{XQTs7$D޽=o eY腟0GO\n}ݽkS!G[E 4R8YLn|Trw"Kzj5HbNÞ<1[0g O -o'B ηZ DɨpvSI7>D%u'bcE+p2lY簈_.5x֧2J׈_і}=zhuEUnڨ4rg3 5G'$HcBu~s;\<ucUB(oC7as;;0czme +qIDږ XC6Cpučw--PݺV"\oF Zt[Z<{P<&$> P )Q:|n84^!8-~(H˓Smkz밪z?З*˗O `U{n\,\3ȌXv0C9[;`l2X]skjo@7}|#>ڔa)a%jg+Aϳ[dAxд~-B;Ϩ$bϦKS 4O+,p^NYԃqK܅(C6ޅg ?gEZ"T* Gح 6OE.zIb2[:/u4hTuch8)2౧nZsv7sw@(d6Q@O_]ob@t?@Z6Gz_\zY``x c/geiEcTKKcמ #p2YZX.rv`a;Z!y}ʌS,lĦ*ϩMD=wVVQIT,3Fc/hV#5ɰn2+Xh܏곈5iug, _;YYGh ƏWhQ\: 0}1@)\?MI㗃?\ 9<`HL8⡳~WF ߱(FN,}cyYD tU$빌C44p@P'GFn} }Y[_?L=]]a5d_"}aQHKmX c)JV˳>hm5bj>ގ#С /O>:FW9Zi)V?ZiN 4ZVl c=(| GIy XAPKsH1L-5y6nuvola/128x128/apps/kcmx.pngUT fAPQux w\R>P<2OjHSOR[qdJr 9rGS+0W.p2Ώ~z_~_}]כsҽV[y8RTwk@bF8(_>B #BG@ U=v cz 1޿RIz[ ߆r0?*ankfUI{HۃZ}^nL&!~A0 &?|3ZN\UOZ@{֥3q =F/ݦ󯷸ZGRi|ۣ# eDb0x@ά;tKjMWeJ\p+.eTtNeR P"更b5y:(v S(n` =gt9Gx{k-ԥక=+"4fΧ׈#ޟҩcu儙]3!-gX^ :%clY==J/®^F)F7 +i^fշD}h9,gc$-Bjnbhp!9TrVUהH„3PGU> ťP5Lqu[5SB%"m9$#v, KcVB4_tp0Tugc^'hk9dLfUM;d@.dsSf[&0Eڔ;DK kKG*jdPrH_Kd`]Pk%̙Yi:4#p h+vGvr2wc[.hyKt\W9^C?44ݾ0n^$KLخ>hiif֮ :qq*H)7= |%ЌP'X$2:DO/Ƙ%bc{Pbbw-sYRe?tlFoɕ6_P`,l.W|r:ŚVփ6fRcQzG^U2K|yZ$ FUG/˯e2׌I7țjt \$90 AsA g͡ye7Ş!%ݙԫOn2 ^$Bs&@.E{c2,vvyH(+z!Q|ݚE)n=r+q^\ )٢Te@8+,3@zA h@@^7KcX+!aYV'77\YՒM_%ubí,dìv{$W@W5tiYa.z.'g1N?%ԔwOK~ꚻ@c~ \#(ii sm ˀ<ڊ@R1a)($<,dP{iF8'ҐV}'l*޺'mD=Eia\GBI/$VFիIz@[˓GۅnΜHKJ%f͌9EIG?]12(<8 teB0j+V}X@,HCVxy`l?=N$^:+|RUO(),>_mY~Hl`&Ġ(m򂒟a҅n>X50Pn̢O w1RIӭbtm̩U^ﻲUVY 76J:S\ɛWD^ۀ}J[ܜ={|opXV=!.fݳO7 2.BE92E̯,\Hdn|9#yĶT-=fx1 ||f0!oC%'3=ﲒF2V'diBGtܠKԡi y%j'TᡳiDoqTYr* qG;ˋ[ںxD``7BQOLH$F.X+U^1R,L=.ǼZa؊\"#qp:' a^QĹpmNwuYxk9<̼*Vo3vQhM VX1Q\iF "rO[9T&OC:A|Pq7)_!~Z=Vznjڙ Y}S|iiXQMhyF!W,=3 +Mi U%4UdA=\X@!f" ir ^CH|ff>0j''갚կ'yJ`qZn2yxr'OI GK&W+0؜@aq뒒i1ઔ91Ly&=H/s &ԢH'/u,IA<`8؛:gp"̃8[3a+h# ߼pހxi= X`1~(608n}ѕ u|@&%%ekJ-8nn>F,q2Y eN7 vէymZrS`0<4gFpnH4k=ruʴg)j6ƞos`\. ": CrQKYAYBW"x_[7RtX-=^T5X).y8S7jqtjcu_4v-]GfU^}-e?#NkX,Jg$o웄0#a2dLw9Υ Z /uV!Fu)`UC̾'#3H%0= Z-s@&Ҟ~GIMMuCph8CN'Om۟Þ1#n ,%[7g%)0%%3ӫ-?מF-WoP*jyiv' D'8.3ѨSDP8#>a?'rpqVC9tmӠq$x׸NQ>>e7 rd/!31"-mAND6CD{8!ttHs7MnmxG[#nzyBa,bI`9~tCrYQTc ljp j[҆B!6ķ\GBؙ_cD|Jʹ6pvxc ^F3῝";|B:A%s0t])0 PDڠjɈr;"kd Us+Z% OLnl|SGO#s0 6_&4(ۨYR, ),!PB7-ߘ~/ #tm:JS/k\H5!@}-9\9}\/5zJ:u;E;1sv:/g(v7:`tnUz7IwPشؾ~"T@dȗ҃ R;f,$ij^($!*̆|;gddIi^Kr#vZԦ,nbkw7B?iBl/{6~'?릓ͻk?p\yTM3oTciwO],BPϗ@Bk׎$,M VA{ 8ڄGvi"A$oոJ‰6 PN4p)ot*mMVuf>_\ %66G>zV[wQKgEئ;2EJ)~R[ m6oHD4۸*gI{6kx;s"&_B)l>~t .R]'(qăSv"hÏi|*Nv7Aq,ټ?Dp.' ='KmG$_~Klf_)Fz$ptXhq*]:~(/9nlfT)=愔eOoBT4ޞK0I6 S7vg_zP!y -d 9޽U|_H' ^zw|:@odk9Eq"FQνQ)}W?O~ )ذ1\g|A9|T*|9L H|:)tb;""*hrMdYcgdLzia,p)r :E.uiK)!}C5ihʐ^PLdMSC̻7||*WŅ9K6mMba:&+-/{H?T2{9¼wnO#ϦD92Lk(g`3@u| Us) ,?m}.;4< kZ{c_⩍2]/f;K^"sY^";lZoW! OF:eT&7&N}ftd"TBQx1C97uMj/}º]xYA$X527W{g36(kb$zf# mx&eI$qJ}6nA-1{AGn/WlLaA/C9/ihcFgon@yZۛT_a01q1RG !1ľ]«F_5Tw!3e]Lhǰ]7\zv&l/j]VCŢR4D0ތnb¯*`6lV@l2NF@pqRjI6EWn4upk|o ]80ޑ2$ю̺:Bw@`iȾE\Tp\hq\L"qySD0$ -/4Hۓ.g9)7٥l>d[ P2 \B 'Zžur`m,EFkui;+8_gs -ȗS<8܎I_%-an9 :ܭ]&[ePiٷrY,^ !eHՑ#h52Tuz`Bݟ]9СNX9(DS$a&uGC9aƓ@`ͱ"CW.LgǧU[3 'tUX9ڱG: )͑>:t6=}&YD͘B+d[U:RiP>Lsr;+; ~/ 72*ೀ&Z}'L(-"ΥB-}q>^^Ix <бtͬwkQv,0?t-cE#(hy zpənm#@8y +r}m8}~F7?s`o)\=ϵB[(y1_̻nuuW_[̽zs5fv Vl4U)#,쑺4ZJZQg?pz^k.vKP}Gخ_H/tZ7]wQq+zG*R3hC݁ P47W@cnaK1{O"C. % o *-/í8'/+D캻9VΗ7.\֨;xNA÷T/K7ӬUNZ \-Ŀ="v,RFHOF:ӿi̙dG,apϸ1s|!Fdž+J]܁ 幧]Cx`J/Gs GXHy;]s2~bd"[|9F3;){wZ9ǠY-!^ݏ ѽ)5> Y*jzo c&-Qhi-E2$ ,] 4ޓ ٰB 7f`(0bk"z?uLеI~sP "Ɠ,~S@8x6$s8ZXsjG𾾍T'Ow(o飺 L S xZ"OcP(N[W^cnܥ>O͍̮b؆)h]纷d)~$Dsէן?]E. dK;9SV $ȫ&$2nv"K!61 Z>(nY*\ջ5&|5מv_Fy>mC7nߛ'' ܱ'2p@iLAᏲfIrիuR,Hi5}-^B pz}^v>On]P S<WD"ǧue1 ^hXP90:и.0LaXM%5fkJWWe%CP̊)D#󑔝@.jvbc-Cq /y?~BAq0<]l^Ե fo3Ƶ VGBjI-Uج)Bff: sv϶(Xv7 ܋ްs+qmˣ^ ';>bILo$K+ꂪR];k 3mM o's¼ZN]Jsvяj{P8B YV*hmٻ%PفAQ}hcU^LX6Rtv),7rNwodc OFuGF5ܓ 4Zm dwn\]Hpb)GѦTr榧uq)I:M@P[ot0u=~ҕÈϏV\zC!c -[<`m@J@yG)^N}UU _yRe}dk׭.Et;R*OJQ6Nl'DCz#!.PBiC 6%+ظiVU{[)an3q.7D,9v ~ft0y[yDM0X<$)~ҜRdnce^,Giiqegev#靻PY %o`U̯OώP0 &S瓬al#.vPt:a#?rZiJ0=^-"<{ ƩAܲ}'bq*_p=rBh@ mP#[yccy~7BmdlQv-Wbg"r\\ spKv]͑yeTo8Ϋ9IޗvFxf aݒ슋jPIF+h?̏;qFMcI%%9]LP =R| L&5?w˷-v],8䷄J<|:4"[DN肋mHW'#zaF'N}UW8I*[PR)Y%y`09`J-B αg'{"Z]m[a{gdPqjid1YQh\O|^W0ybé5=qKn9#r!7 G4P^ U[W|bNdޢR^{0+S?PT_j~##^<&)NWHwT8>Xk>Pz<ޔ A jm±D~UW9nM'L]c$mx`mٞ%;0cE90 v J%B{(Ǻw]zHbY+x4k O[\n.I# G'5)uDlXDvWᱵ)ʵ)/3Pj~uGvn(u7K7uYݿŭ/0t/Y1N v/o.;Acш:| (3LJA K,dl vRӟ 뱊]ݱ_±/o3f;Fp)[ա]BOg㒘A'J HshΔ5Po#HS$n,`\O h% W[!D!'ٻ)yW!Al\+Q7IF2E/Mnqh5]`&moq񺒶J.'LںHcv-3LTQOY%nb{;y+sYF^_#qV75I*;Krn)lV@l^zMRw>OZQ~fEZ攄 ٽ/ tdŻmk]g_DW$|DެKL]0< >AcXHj-R"%NXh:B/tbd*xCFHƫ)`寏 y/|;k Z+ow>mɒ 1mGd$#fA$7.YZgi* 1.A<Z#>HҪ_ZHPBY/9 ?{+7SO)iĨvv_V &VXgHy E .=kQSm\m2 (9X:/fpk[_ZMtŮMjswGߑBg:Gn)G(#Z]-Ǯ_m~ ,Thޱ.R6zj()JFm'Ȥ"1;C6R{^. WOcāClOtG $#6C}uv P;< ΍{ABX)|tupQBV|kJY F? 5"+W!`3"!/-hϺoG"oג2.7%f2xp|fg=ĹF}L1J ہqh!v,B/k^"Ҩ޹h(vG0bqFg7'zs~E:PRf6,=IYFrKIGlkMO@TdzdvX4 ,mPR_1*C[ד# LLIxٞ[q_LQ!zD .)AoC-ޓ6tn.O8gR<7' S/.t?H ]^eo;>>Vz5K dm dKlyZi>. Qc"_~ofmsҺU_v/Huc%,._mL}$e'Z.9Q@{>B$Boj+z-a \tB̯=o2}Rf[1{Ss5D)ƒq3 !gX9^p豵y}¼6].! !D۹$0^#*)߬T~ LIj6`鷆҇D6Vه\!0ohW5&ScjV՚@ *k_6ڣ$\{4"8[\zu0i=\T]1b z> `_zP6{ٹcHPK sH1w?&A%nuvola/128x128/apps/kcolorchooser.pngUT fAPQux -{{8fNEl-JљY%tBaPI;RdӜБNTNsum~^ktk6oȘ{kԟVG@wqGVْ{$5P @NX{ ".fsLDob\֏5[H;sQϢF#@jU_|&yf[ RҋHTQU2! At̳&[>#'[WO\pc+ˢQ?PoG?^Q;2 =*щ'e]6^ p< 'FnYs![&w%PQyyG2pQ^%d}ǖ(HjCgg!"w̙H8Lp&< wjA$H*K˜HMWЅJhg}URηGHP }n{Yp {h4#oL*5dS_)iٱܹ #zIaIof"5Zq́?5^8J]syX9XQqTQql8**FGD6(7G&6T83fgΉϧR]t/]A2wn4ӦRUxuC$!z%ǻ‚bZI2B:+&/ל:(ql!֢HQl_8Fj 4Nw$ּKPna I*b1y`P4/IIJt' !k[쌇s6$Kz&(]P66vZAmLjb 5>VSIa4B6۹i#$?'ɳŒ:zLO4,x 3Bg0ef3Ccq|r殂 /m>GAfg/@JI8Ǎ;*D|ߨB4HK#x)U#+0[mVײ&n_ZvsE1 DJP]kO/ypU&=?\|֑B7dHgCbA.lmbALiKAN-ۢY !J֟"oGR,*UYrbs)R4PE؎D/⢸Uï`ϴTʉvm+憵o~w C?Wy*W4xj beScx iKBo?Fs4bk *b U)ҧFraPυn~Kir;g.\#5֖ZxGMQ.cb)-;}qr$a݄>Ma'vjg&OV&z9aފp~kSojP|c\,S3s=۟)kd4hs8ɲngKGj1۷脿;Iy[ɛ2PzEƷ眇9|@ڝ`)Lʖ6~\6bRj-) =;,xn= S!m|~LtttkSy@q!~; :TGEde3QZ~YFhs01ٽv,?Fo-K`*U3tseS)g*9H㐟y:!jkߋgȆ7IP/+`,$.}0|ŰWKm8T)2l˸Dˡ$23y(r%O?NCsvhQ"IvPX2A:b{?~JUWX;NBR BWY 7d4x 'ޠ0NͶ1$\2 %n aV5Nն#k>Bo ""H}9ž_M-~զmg<`MT%(uj/Oph ܍ Jnت6I]IBD"OZ&|CvE gtbk(7DSΣOff~sYz7K5/P8XU?G)ϡa0Y:e⃒ڬJkV~*\ Be^jW@ߙV`i ^%(ge$q^ML) ґM~B=xnX% ysa6ݐpД3%e,2 6_G ͌]T#9mYe52QSUAyԐ(y{ \ɏW̟nl^`Xw)Uz߮).p> ji ް#cP ]9 Rw)`+t4 M\-;>K/O*aW>VL*a6βe6|Lb!H0AR^%3/##AwVݣgt0kKkxn7޹q4#<5ew ,F}X,Z P`8nKETl7$A n = @l; PI? }MyT)T;?u'4apO,+4pZ[D5,x,خUeDi3a#es& } YQ޼ġL R Ϗaq>p)\sKy'(T:R 3W6Dd:$:"Z3Z_$\b>a60~3AIR-|>eƄ[q7NF2%Q%#CSpNyL D%c~LI+n:BQ }+'"mbʞuΪ-"p?*)t$HBuн,"Ps q+r?ò1UL7=\puv֬1ӈL[*$'g`G8GEɬ^~IK4KT_P'%ME+ʣ(uNv1C-S#ȳrtA }%>#Fʟh^X 3$#oi]hB3ʇ< [|̐91+?-Sw5*5=ք.k4#~%o~,t,Q9OE?<>zϼdzT*x-&;F[/ӕ̸?eaf|3'50q{߀1PPbсóLqx/P ULTWQjNA갔W M_g^bgX|UJz}iS \Zw7v.]+B2R1v),$Ky4j?ݤй9f8p(o3=*?40EGʎ t8vY]1 G]3I\ ӛqS.B206}S1|To iB@:bg7ͩZecxn#dTlVwM՜t OB:yt\ܐN y7*f[H噕hQ %ڿţNx|^Opb]b]Nx(0v#m5KyEHdd%`Kxx@Qdi&FtsΩ:Y&8Us? <Qf2s ?HZD;u簻?U{JAXXi1SoG߻B;r΢_NMvLD&LL"el-+H0NSCXci=,dA|15ptIcj6tҮ\?fVzSl g=Bf7zNp g3ݎ[>A0ڸF򍟎_H=O< wrvQ7~Q^: 9TA!ESr 1@{5UrB,牶 _,fL]K쬇갦tM؍6^ w%>A+q>S{5!Vs]Dl73Tл6>JEq :ڻ81Yƪ:8y/ckfr%W [cG= L/Ԣ CZW2"J%N3{(%O₷oHyˆYԟcxfñymOpjݍ﫧duWgd|rn9a}8w,u .:L uI-I!ZdɈ,ҏM<>'(TɊ[cSOA<0r5j6`cu>y6%8%rn ھ݌{Vڱ1Us)noE_E2m%(SAWŦA Oȕjzr?W=j+ /:qsyujVZ$X|lR\awej\nBkYJ#=tA01EEQ?(]4~8j&5b6IÄ&iI?ߏ( ,2]2+Cl.? \LNLn>5;j:)VD&Zu8gKj% LE)@N?{gqL+EJ~[+pQ]6Y4ixc,rϥ֗? ڂwʣd>3JYzTyW3tZ(Kw~Rn0\ 0#x%.;=20#>ڡ8 q"³elp,[aa4-̨Yg6XjR(MaC|ـݚTf{K۷O QbXlU 1 @r'"x//K]^U1I:C TF7-k ౅gvFs,:52-1WPEP?76HƁex=7tꉎ,{5NxyР(=@t HDK/=V/⟝mLFʚ&ɮgh'^ CW ^Aϯ^8Ü#7b\ $v1T$ј̯P!}6N-rv,8k VC!`%4XلGu^X]POcCWerf0wTfGL]Q MJ$?Fj~IJԲPzؾ1m\s=ŒM-.0у^ӀH”Gvݽ XwѫWqǪ.hU_o䙋q>vP7 wvqW[dp-$+x/v` d `bΜv7</{ћ/XkΗ7အAu~vh333}Itl:X-hλUH־mh 8KE̓xS7۠o8G[\6ٳyz]rΗ|fOsٮz37qqOVK꿟::M/%QW6QZ;ڍqi؟]4; D̊0ŧ\ƋwⷼT((CN|d0u~I?Xa>,~2Ş%bhMH>䃘Wдb8_b+86ւFv2n?KT?ԯu䜃c sJ!? ϽQO$VUbʐ okĽ[0}3;RsZpz=hޑr%(Ne+G6,ܼH집6"0fdYLFcqqQ3_Р{>huW5[AcfvVSy$x g, D\TD੬G9NU#;b!Rl>u2W oqpX`6Le#fhFo_QA>Ƒ(kbG8AKc$yc` pLY/W`w o 0&~ Ud^FvvSA#Ġj^uOrzEF.ҷ_TO'qoKVc??m-oM`7IVΟqT~ O=Z)M%4[R)UVFJ˟pXn}{슺na5Nk|C៴d4.p2+31; 1D awAwqXCQEWbdPk{1Om\Nk}-!El~bF9G8hA'MnfaC9pk:wcdt]5YB6#P񐢴̼(7nR?.MM2)o|-lMzu^VΘ>6`{$SLT|b[yjGÆ0}!'<C5HF~u3 >cHŘ^֎>1pبjj~R<by1ݭU =l_r E'n%i>ЋۂÆ\k]nd拻l:I Gj ے"7D<9ǏFQq_Lk1ʼn_3Kc٫p:pa)Bu;?eP^n˛P78HDպ"o~” 3maN\K2E8@e:XB Wi*-3gda ?w\PK6O)qi=o`tӥ ^(Rb%#VNĥzxŔ|B#-\HK{<;s?~$mil_qEl¼X@Ssstp:,WT&nvջ]< xY8Խ7Ю%[KVzW#"brMɉ΀l51[G5=X8JTf\?0>Q`¢5yQsu_F\nyp~M=YѭQwg`N >c4TG,rOq'p_x[2Ϳ,vb786#4G=Ou.jrr' pۧoW Du#T(9{+cYsgl'ѠY< fDצj(W M@BvaͿ[ob۪=M'At JF֪E\rݓhY#?OȯKsEL2MU*E!8eQ|>ʱhc³,JpEjS]} tTu?yUÀJک%fM|Ir'.Yl)T=4EMY/.50 Nn5ncj{=ϘF6^+ طz]tGZH%kL8jYЪ]9:~4V$Zz̋%\]T*;?[=.\zo)jL|+DG$?yRsQ?zƦN_fNW_eDzP<&"rmW{R\Uu4]A*J߮R tWd \?/`BEI^uSԹͿ!  驔=;_[?5,A[P)*Qup#wh)iH(];ߞZ8S/ƴT\=rWj3NJՀ:0I sn&*,K>Jk77HInQÞ|'1)>=%Y:A#N(.о4<ߧQh^@WK o٣)_úNi.BMQ:#A[& w ޮ7BP;u~]J?wX6B0j,=-{'Ð\s ODxb&>cʦxAxՐ.A0cd 8ÑkаnV7-T7t֕w4ɼ{SO+))a;U$uo,Jg-9dKK ?Nߔ#։g`~A&VRCXg'3T`|m @Pͳpe`VT/}Et`,gUWWv3NW+pvL5ԗ O_gvT3%yux*#92#|*_$%n?DD>Zva^p^pNR{RK-GpqSA=ѝ 0ÓS-jMb:F k \J[b7ƏBW-"Z 5ʊwAT ,sJ-@Q7WF4{ԓhDM 1z3TG:*]mNE}qjj~y͆= AOd_sjo$!&sNЎ&$NE5z?zrΞ}`E7j^wvq#c 'DȤtAcPi\8s7Ϟ wx\%Һoj))L o]Rd [DFmZtXRAIr]R3Vȼ<eן*ףF+u ]*SfIFLiDOց4[nćx@肂|ݝ{!HJxΚɪ8j\ İ Fdw%eXm &ex^{Iv)@|ع%Ī\Lk1~ . HGG#IXLiZ[[0N…-Nj?vLlyL{;A;D5~.cr+QM[C@nkЯӘP9Uz?~%H+:bQ ' vi,  uh "'{5㣾{[:Ij(zr{Ĕ#[xǼ4M qiYwP2Ht?-nϯ>HׂS_(|Wvpbl({P Ngxw+78O.x<ᑳB6](6[Z nϪ>NoĩϫB&r^x(!oYt e~t>̹ĨОXF s%- l nR@E[ߒq4#(%sI)3" 5r4#U˅( eaGq&ub5?bQ !xɼ|=Z. Flu&Lо4,h51u?#VRn"_ô6rt2݊ȏ\F~A` |"l0ijs+??-H n"卮X,V$ G8/ 8Ǩ =DK;dzWWVZ`7H#7L ds{QyWkz)ia߶eyp/}y3'`Z%27ܰ(@`[67=\9r2=M71.\2lo8d.ylLMafL,|&M%N.o˚|16v1S$Kw;c֪c,08Zsb)Uu`-,pw–3ڴq%8w^&SM,HЂUZ.4RȃZ8E?cB<EW  7K>_:!ȿ4rQ4 1'p&4 sDY",`)XLxT<-y/Kye@Bꔐ_P v[C)݃:GX_C T)CdG9XW(OO@IɡNW!ǰtY7Xu[p4s2F+M2fV+*Lv1v7K[$E)"h-Ou|yy]d^>8b!,#SPx>s}ܹьܩQ}ylx%z.CJO/"u: |"/@A>]n+C4v~cEaԈiSW`/oOG7Aee0n. D.UW#x+Vc~0-4(;B i9K^-`X>E4&h? 3IXƃ($r `-Mao(/yVޮI. L> 7L'LGs,v-rgvcL!hy?ZhOJ*š4t$[6='p=U7*o U,6XOkPF\0<:*m)OQ756YԟNYU+/S?Nb`* g6?hv2E ]Q uP8-y4K_yr~OտX )Z|o^Ury~2b7hꋵGм9ޡ~»Ҏj#'KTx'i{d,V2_q3E'JKl7]́}߯R8IFXbWYrlUC8z,MQZ>AY@hR\elbhUVbـQcn"sU$q+kUni[{]ߗ w7f?FJVv(7Y٣YqmL"ǘ8ߑJ}f8ZSUߺ}:-~Rc 8ͩ Pj + MS9=ϋ´"F)m{i#aöTߍj/2ʸ)WkK 5@!:X%Ov!ry׻IsW_#ݬFK!UoZw2i/Pok՛HԴ 9mԬM&>hjn&6`7ߡrQIl6/L /vPs]Z4kU938tzDбg|zԘsIZ֋W ➭]bHضmd:er/cҞA^EXWHL2઱ Ce.^n)lxc쵳%QV$6"ǖ%cjUp6`~/|rg;BĻQdtW)=hї]<^'y84o 3ɶN+t:L5`]ɕe21|l-[PP H56רlM)v,Z)G.=[JzP4])ȝFA_zEt'%[J*!Rkn԰iX! s' !gKlůL3ZUfqH g5crv-7 WkY]xq:"NLSC{,A\I,.:-| ;Br&;tp=DI0RЪ»\T5hj5x1Fbv]ra`_=[A;M&ݗ'mwS m3?4I&L6M 3IS BXoܗ#fF)R`,3)uYiU;ths~n9MvEI^_)0OBu{\^fs!/lOH[C[QOVBQb/Ɉ 0«Oa1ѐh嶝G2#&zr~m%i Buzr*]VNֈ7a}l1Agg lflDķ@)*ڂ8墣,lI|ڶEgxئR 9|["*=3XɏNl+Q+i~O=gJ,A4NrzT}KѰ9% _Vu{>4Qr]ʋ"n3S{MV-BcD`WSSRJOX6g'lIq3ZF|-i-j+n06IyZAF ryakΜݿzQthv.5EfhEj-L-f#a*-,FЅ@ɠ (5t{#cp;Ksֻ1af߀{S{s1m3$Yz-l|bwl.1wqO8F\Sxيhxҵ̌Ul1KC*G~.n+o;J3ԴV<" U l# `+oUߕ1E WiKiƃ` ?Y6v p`Pe.ұo½zyCWV/swDEʼ9GvYFٰZA80wNp!lƋqq?gQx_ڡ`f:c oC ۍ.W4#""")Vz`7KbsBU T׺fLװ?m侍An>]t21AVC1Z8-][js4+Q͞]U9̃-i7@fxo[ ,?#9(őޑʫop (֛w8lx^!WZ1w űA¬1GG˸&^ODӕ]~a-_=~W7->vY]籟^@!52"DGR ݂,6L2-پX11Bċ$ߠ) F_#]l%x`ۚi1bQ#4͘g٢j1[@0?OƔM՜ ?PO7Ⱥ**h\fցDE_ ]IA"4_VVMHׁnۉݽKӊ^M:{&w7@{L0-+i8}(PNrc6K~qTQYt,GAxuB_:|Sj>i"Y߻Nw ws~AԎ{YLLu堺A(x#)k bd_bxK%Ga3Z{ Eg!V\gY jt,M#X\Hm9KflOD)z ;iV?SDwx0a>- E ѯZ0O?u@qv]'˴B/]Kr-2tw9ۚJ)&)kn+ v{2=z 5UM&nG H᭱2ɨm(4== kylX%ɦnl9QpF(e{Mw5۱kʑc1: ـr쥒hز lÇf/AN >@@EzVV }͞FA&_o|5Rm݋*) !]H > r'K{5aJ;#\;S/ui'%[P?no‚x@9CSTuI3Ő/ =.foċc[_ p,::.tLw8ODx}"Y?O@|vW`M&qI4ś0tk cBlIN Q3KQk vC5#wn8蕇A . ;*ߚ357?P>sDŽfj?VBLX|. *ْG]̣Bz )p6TG?]ǥxc!~If,$Kȷ4"mQ!LJ0&fTx[LOu@I~֑uJ*_j/t|^'gⒹSi[OAPCLثg\ h_1G4o}B$0~H"ITLRqnϑ +A-A8mpPw!7O]Z$ךXtqvY$BU>,KDVͼvJ9p,qS3TyVfCMm4ɗj\mm'Om[-AzZ-`[[e0 9++c0GC]E6I j"x$=\xRs%=B.66y-Cԝ$w1O;kĕF9M+}vY쳜E^Cuٝ.5R̬{3h+`].[zo %v{W^~k}F[]F 0 vgS|O:{c>w~Fg:od)!ʺkBbh4# rIKgOv{8oVQRڻ=!91R T~y14-Uw\‘ S/WoHxc|sa &Jq .dHc"TBy{7C7*;śuK%Lkσ1Z@a#߰UqE)j88Sֳ5iEoеj7~ Lۋr.a@>qخhIC4ݕ5c|Ƅ̆5 h_^WBwDtn%_MWqT ߮t@?tPw ZSVnoDIjWVg,qQq6yoj dKk2 Zas`0˙te[X@VˢU )nDMx22'}D^~*8XK^*nL\ʉ)F;dh?_ βD^d[~",J~knMd>Ί7~ASu%Z/,쇝G0YY+Wağ(X#?a{[}>:¦raoczczyD8񽴕]Bp$o[=|م k_zLB!D g*%rE-z _^me?$ &KO&E od#l&Ԇ"M瓮]n bcK7=oq[FzAH_G撉異u͓OA}J:O.>V%0zk7KUU#үg{H?nw)Zgx{Th7CaRn&ڸ<}0&.ū1Sk"!Hb?^rs-%Xyf|cnmY1T~P%KlQ4|.y2={V0p䐖ac6nNlJA$>&qC4<#V )IQnkĪ:ӭ5a%/8߸;u"lxCtlY9e<*rNT0x4PH/:|Ct/TGeb=]߹pfSS't#%U8ՂqWu8x4Oo~V:Xjt$vS6@edzWJRhFfo'EvAasXp)wn\'* w=[KVp=XrWw#@X_m䀹FMaz0~?LIN붙=? ;MT;kZ|d1$=։yvfrt6<1՚vtqzSFT OR[_,t+p/[=^'g3D?CPx*6Zr_IWt#B յ@dvROKډ+^k*FnGD7 s&`nԚ XVrpY"6T "/XVA5oAh<㧃+U馢'ITnJ#ݷkޏJ;.?@OmH}oXb*,U8N͐l1-w&Z(B9:^ԟx򗫲D3g=[\H $DVs8w/CKka˥INyWkt@pɽlqYQ2]M]t8sIx:gv=+LP0K?I,j X~׹s= (f۸==DPAkUpo]Q>F*9knyDI"C4$=4Z|՝}Gd.8v7k , }T)"}>wK݁n(Wze 3 _8Duƨ1XX+BCO`?Qt0!Q8-ٍd+)X\L"FQʥP P%fù<؂3? "6[ȄHY|6_u\r륳b`+LrXv@yh:= ):]\n8 ەp%V`Ύ8q4ԋ D7Mxؠ0BEbNL:VJV+:"d{Q}+1Y۷DGN2ܱ2̞>z޲eg'Tew fMxJ!m|&k3@G=q =m;e'` v(='ms^\4it7Q;S&UmZʳr unSSUF?GX'9z!ܲExf]Mʮ :+'Ǫ6<󯐡]TZ1GTzlsM:mA޷UaJnW5`7g! l^1poO~XuH^oWu~ 9A^@P*r? 1W+m75뉷CgG,~?HL14^d1 X)H[Z:qoCe$w3⻅AE]UQMDa]mɩ?qgXؖIjĒp m#,~\MVR_q_G?M޶ ᶋ۫u'~@R-`v86qGN v!)r1ҋ_{It@ooolpw`$>U/ jDl78-ۻF8@*r߸ "n;űC Wa郁+M*?LeylH1BL/v(hFsEf< \ D̬aqj"}ō۟υ>zywGFgZa[QQ2;6MwќF܋NJĝZ,{{60AtAPɥ,t#\{ih+ۛۥX<ޟM`ΏOzZ7l;6%z`)}tލ_F>l~|]V #dSDm5'<^Pi꼾Bs睏%77 ޛGdZKb, ha5l,ސ☩3w64$j T#مq\+7Z,Ǡ6ƃ޾BKbT?E+D*-mV+S5 d[z2rDTt'V&ae\go.ae`lr9..p XJ-hM!=?Hن}7YGߝi)DvX2%/Y\ *WuzTaM?BfxKhN%N< ͽ*a'@?+3ĺU?@=!-8?֯.$ZV5c{#[W0bfc4Gd^P$0i| zk;c׀qBX2W6U?ў, ~A%g6db.y#տc%Q7Ws\wYiaV<ێ,٪|^zKT\d^3cYlriHGԴjle30t)tXUAfy(cu!YkсԶSۏs9;.VȦ0K:7ߠ"}K] jR$k[dr';?]߆KT`=HD2NOy׾gq$W$ab ֢"ŋ_юAK;C񱁒9 %ir\vz?_K8FЎӆ~ bK^$lJ/9or`D}Y}F 7Ӽ߁VOƾp "POd3ӻA+1+{=hg룬2b3[uq}fP࠳,B_uM?7y[4D$Sߥt1ȜdF J؞LQݝ`6$E?8Pq%[5b+{W<0:#Wru"d@LMew ,ӀCp[r dG X՛$uFIG%1A oGьZrEF뀮م~H?exY?79"DvE'Կ,tҳ#=^"IOo~Z>Fyo$3A3ﮬAZ'ޝef #g]p1R{~A~<Pa-j9TM∧g_hs?*J# Xx}GYGRE}b2Y +Ffz8ZFh`/?[Z{=aD_;Br7eJ3鐥VM [ch${+F<| zNF`u%ݩWzMOR2Cd-жco2Z,:oij}THV2BJ%rSB(8GP_MSLHgT\رؘB]fa](U1U{Q=)ƾwŘ%2.T@ cn=umuʠg K&96gA҈\FK ZB^+VKRL9SL_cY0?:l8z^*x]sID *c" $.'͎Bqb.oAY]Ds׎yέ^oީEϪ~h |j[vb&"]wslF0-?-=rĂX^>iլI0)uGե糴0u0e⵳stv[/':!:8y}=B, v;W+"af =RHƼ#+<\Ӎ-zcԀ¹?7 $ֶ-= k% Ș1$ y0 zGlٯ3z>TƅĸBV (JVbXdO%t/D(>ͬ.X 6} ]~8L hIw&y(L?(aX_GzGa9 C= ^3 =fr\ozl!Gh”>$kXDDۛJ K c>y'«W{/ 3 ɗ聶vιkkmH,o?f$wA~+Vk >#a2\Yz\nc(s|]|!cM> Ǿm>?5Y̺F=-9<=6&1{]r%]ڻ5?<2( /KٯD9@ϼzбT8>I2vA'Q{Nxa? |[!O(b{AQ[cBPX*GpǀaIo* rp( ٮ/#o6x[n.Czk@p-/}듻5hb gq:'hPJVB)mFH RA?MvR[BUErD? u 0NƱ<nczɑL>툘eA:]CȌ8h"Yr 4ZiKZÿW&g^\rvk3LmZ7`+35VP3eA` ڛB͸zFWQALNƎ,ؓ~v],HMg\Ks)>W)gr(Ig +79[dE1\ʕ;ߜ0U9YK$ "~9zs|If ӤvK%:缰12ylw⅞ oAc:7-ΣfI(;K,a&MI̺D,# ezmh[; CMeA4^%=p3qYk`XWLXc' ^)jZόy>%3ۀs-[2rm2- ãvdQ2P,4cSz֑jL<>HrKԹ81K?mf@O!b۫_ǍX@{Q1qKvűO7 ]oAߞ tr#P| Ψ9_m/sM5]CˉEeF7{#gam ӾzϫlZpAwg-%=X[2)^ɀс dK~2N2yJ$+sVܤRdYCJ,11|˅-̀\ [zVhX%;ZEUcsώ.;?!vL[}jbGA,Bp<$s+hIG[f-c).5؜nUG9K |h7k@uۙ`kVFQ VWC}lvl,jV,B;M`}eLzOvx&q!ӗ4gu DAdV-ůyGo9uvR&"yU&^f5™j| B=ewowJl-0oe/!ǂRC–BЂY&==/ GmcY"oI!U-' B~ JY<䕃y1bidV-'J3 ?P\ y2NaP9,#LX{m.&'$Z(3ҙz2?Kp]lU4e/ 7#rIzDʹVյ-p_ʕ* 08ɕb.L ioxЇbY/# o:ze J:E[W{lF`B3OSBju3y%lܵj7b#=N໰TXeeyz EM4|*vm68LTǼ1obXSQts%Xl۲-PKsH1~=\? nuvola/128x128/apps/kcontrol.pngUT fAPQux ]{yTReFEqqHmPQˡT lRmMF)MT@!gӴFLA,*K3 JSSQ?ւ`-s9{瞛N_j :?-+T~ ?(/p& ]+Fo<|2 F zDCxl I`{ :[7:B(֭{ۖ՝d7jkjkijj  o%Wnx5(}'&%cA ѩv"k{}K+Bq8 |\,kKzqn@5e(<1X/$ -)A^NUqk]ҙ?jQ XRY& ]Wg\R.'GGD/ e@-/22`œ]X鐃fAP-g fԷ0j0I9Y+żRyzB`T(~(zzMc4vwL wZ;:Rs{\`\/Cux+]/6LBf' 0z槣0폮A3̽ޜM./ƴ)4Lk g?y%=Cͼ? 6LE֒; knLD"*&4AԌ7)"\-_ώn{O|(*_g2M~@Oj1Ʀ&(:y!ߪ+e;Uj)gTq~=ACn3ˑpB]j`[f;?9sNǏeRU랄\kz}jQq4 O+bg@'Z̖| OQ(+ːI#v2h5Dž4<+AC7[w,K3tzPr զ[bH> tP(}VdL:vK?{oN 胿/P\0s5w7|6 ])JLҁP%}w1^R0'M n})"}[;*N5#/yso FHf]Yf槇? әŕro_geYAi^C YȻ r܆[$sT4",u# |R^Ǎ"B!5?5ŋY>a.^at>;.Dk%=aT\F}qTQn\gtI !6A\ɔO4lJ<7YK^CϫfǟԆyB6nzfEnFYD[ͧPb3s7Y}>uxUb[O=v%Y*%Νk)e}|~2Uzԏ嫷Ej>- ðc%pX~ B]7[jٶm7I !t~GGvO]z7Fه"7 0(F):Z11oX?,4J,g>}a˹$>EwICKgI cj:h ߰szĴ_hr7xzǮʹ4OQo{:DMĐwB-k;ȁ={n 02SRV?L NO4]y"N8kjL-04Cþ b(fցyͥBqI>ܚ;n5>: ߉LL44wgF=:P[ }¹ާri|Fg~/IBx;?3D0`]L=*%ó-1Q u5JPlZlO+]e\m>vtTbN':=8#g>*r0򴻭AŒZXHZ fƍV]"N=.,#"D/؟H;ތ2bnn. w$ʑ9XƁC%eo,vWKЗsq9a( /E18ǁ/N JkAkk ]{, C <؈'/s|p{VoD=Ȏ=BM'2&EqAF g*X$H@F_TS^OjQ%q\-[T;\j~y7֮*rJQӓA-R lZٝ){^Kܣtp_ESS'In:O@d_+^*Di[~ln8a365 .4f3Xs``eR 96H+_LE$9-4ȈZhhdqsTlx]hSqd~z:w&6+R+k丒Q ,o6>6m[a)oz͈%[ѾL>c{M=dJ!x"h!Y2XB=£֧xFPWW7J- ooTpRkUM!Yw!|\}Z`=l55٩lF8? Y4qsy)#A4yAkឝ`)DsKU8 <-loMgG5 z%;uV-$lӶ|E4r;\mPr=cХt W?V!:1&!VE$t%ewed\A d˿VŎӐU]5H솈vmbjwUqZ!sC#[TA[-* W;\)V2Dڢ[iJcύ at_gFP0m䐰sF b_?kx6rzZaaZv@?#Q#71#&!.>QjIX85&/"Z/ Ã5 @^d `>~Žr0a#u͵gjLS?s!,ZT{a-!kw1yir'?`GaGAH1 1jq$-K"R̈-e#dlK>k9v1N׽14A*cKx#?u5jXjZ+nѩlhCBȯx*h]6_pLzT]GU+ٔ0W̽$H߯X']jrj$zrȤRdNR^}촦Jƣ,Wi=;WPO M gmlfƁx3KMe8*Iȍc/%Q8V:S 4[CehʕU| Y͒:,pAHocpN C~="KU3֖_hiY`/YEe z8XPJ;]mIj O[ZA}.D5$$"=0jAdynf9z$6ـ?3wBE `i;kO<TOl 1HkNYK %$KO6/125CsBajP35oݥE&#mJS#/lͺ\m@b@Ǫiem{&eMJqP1=lcw7}vןy =}1wqoB{ba %6[>ա2 ':c}高%s]#xhK}x#M eXKmc֭o* p0WWҁ֚7)^`@72,aRQuvv=dvkii_MWV|1Vz۫6"?}zFsMfLҸJNXa @ ^.rRl8jD+鉕˗2BQs\zRYFxZ=R6hm%NySw3k~ t=K94]E=sK;l '9T3zCI x;Lr`, LI/Z _LS|.ZI:-J?1A$mBH29R<+ۛ?|~䭰ʴ}׵jJr/4PI-5ԙq6pcaʦVŽa"ez(0p@Si4mEfSeR Npv~zh:H6秇 3QKww6;=V~6 qg:lCyZY<)DP[;?x3#UAȞ}}>zw&WUJG2qQu7X_(YYYW{-]ןG}gzvyRD^6eUPH&!&25=IKN̽cjٛ"Q6m bx{~\}A1绽AgX(69uj|L'א:w @GaKˬZН_NmyQ"In:&jF133 r2>Bڟ.ZdT\5nPyY)؜(H2i"+ŗv)WClCCC&L$_?,7"%`;^);t>+E'7u>A-Ros?}g&5`&Z "vi-|n'4wp!<;3>+&\&yU0(Y&x: RsܳuփʪWrr|mHN Jvt<OjzR8}^nvd CGtD3=yȓˀUKH:\852ӿ^Ӛ넲hr{>bJh?dw!Br5bo]OGeʮ8.4cÇ: rJѮ-УX;>vG"˺dG%JϞ-%IGo:ܧF+ bw"/+^27#*a"#E8(uU iĚ֬o-e jD\@BȮ`A31쑰|M#ׅf;A0N{W匽_@QF1 ,6Z ѡ\MNiK, oao=qZ,f.ۙnO cKBꬳ )\6nnl0NUӜq6ew91#5.2lqIt+˱!#R*yfTýK,5dD.ES7?eXǑWBT>l Ҡ~ v9HjeW޿1l.L Vx:|3Ee]CDQtmmv|3iiiQ]Ǯ{U B"J7;8]v/"K79+t*Z"%l `_RSH*^;5ާT1RA#p$/ط/];.̽*wZhj"l:Sa\MGh9ȫ ^J 4eo EނpѶc\rec*h`nV **E2Rě/V޼h{A5',cD7u˅8ΗzajH JYTQ+9B[2ڻ&ܼrfKH;4j|fdO5҇0VIŪnZWi&7w%`=ǁp8+fZwgjjGbipA5B>CǏ,Z]]]z1m૓,'qsɔ5%;ۂa0Q;PfрC4 Mz>_DY25utPGT,BꪌAmsʳkByJ:4 5DG !-gtJVax/~׎t~Ҝ+ L͏7[7MJ~þSh3#D #(\?+3TKi :.R4Ol6>ztD1ϧIGaIʾnTuz#,ڼ۶BsgYH /Sw~:;۱rl3 L(W,gJY<B]< ! o ,p9QpWi'X/xA_ 12Q!/"+"r2(wr0R/ZioԾw2E\+)bz䇹[WDGĸ,Ee=CnG@=rī>E:_$aT7Y6'55υK)kAY-<8NA9b-m/0vcxgt@6O  4û{L ng '0S.]oV,op=G_؊KGL NǑh&ܻN܊5P&) okQxiio&i˖i hoVr?7Um|/=w25o]lu@ ->Dܺ&u2[zs4YS$1OfXC -P!k`V:H@Ӥ [oj9 S]d 3@{8) YU"jݲM 5%YmSܔ^3Aa !`c6n,Lgww[8p-I2.gL AH`?Hx`9 EvPGk>S/ݖeSw)ӕ@ u6 amR>=ܛH GoY kNola_ּE 8^!t8; &n$+,.תR^$Kwց<,ӻ**6 Na,$l%(-fp|=vMEyUQdI!8nqsUWچx7B=#%w b5?bW%iM*ɷWB݁ޅIJt~ՃJEˠAv)Dalf9b`,zՆAc+瘁ޑQ}D(vmv*?,bAУ9ob"nuM+>Vn6x4'/$w)N^~ί_/{w2WYZ4CGhYЈov8qwu, 쯓 )>yL 0[P< X$ 7`2eˌ1ko!$}{@ |ԴAW?|)pݒ>m{^vڕBEEcD ?0 ܨ5Pa浑k_."\nE8ښpAr8.4Kf,gU" V⻫x sqUY)N?SŴ - יB a8 YXSh&.b]c? PI\aO1#s? tl&qz%A" muxZ$s[S FD2HkQ >b);ɹ/Wu Y)ҁ`ZmY)(w- Յv M~K-NֻJ']F[G8E;imd_X;)w w#6VKG`S9~ AֹL=2puYak4l2u87){yjAMV5t:sɛL.̙KYN[rܧOoj 6c+Ol8~/ףИk-F:@1YBExP r>Cz5gP};ݹ#F\킼 vdچb#jw5b;=GuV݅4-k׆0W!!.!%%.B7TVn_* ;6i|JDVo)F9&yPfԌ{cS#t`%c]: vRWE%On!K52\ز~Ut yT[(= FUD^H>GMo8>VzĆڎ{0ݍ9On9:de'տ '3CmێcBi)?kz)a ,#zݞ{hOL/ b(ॿaMCrU*܈A~ 'в矍M]h?do-82jf=raksk8yI*FWZsj]}4!L!'{J0Qvw7jݲ^;?ӧO/_v$u\Sk̂%)0[7kOFR-dc  o&PpvɤcWXp hþ:d'])=J+.tNdTouWZƽ6\;Z ?Ek aѦUN~9vfzݤQAVO{6nE6{B N҅Pn(n71 H_*H dT"L]Vv:wnL@HEs}xq5(WIm[̛I,,RA9HO`64x~;'T捯 <2턍ǀhgۏNfr%C1WAZR!V88ф{Ls>t"EXUZ y;>Ld"]s"K}^Ly)1HXDE|uip}}dG 4`]zޚ9j Ղ\K!?JgWMrGE Ȩ{YV"q R e͂};X9U8f a$4)Xoscioj/907 &c~;uqs$fwM)uO~)귕P6I}9DT?x$ j 6-kBk.`4^ǖ.Հ&B|Sy'`թ$04O@jOEvWKg&pLR@0wuVdZf>Ջ†Ul{`Ԝq$_ߛ9|#:g̪X%ՈMsIud;ڍ0?Acӽ![46i3NӇj#,?Wb`;aݯ&&f̶];"cS08Ixm -XŜsm[u9(hZD'i,QQ1Żj-..vU,x@YqvulJtOucA>Fݿos=T` t{y;7z]Hvl]>i QC\(g E+1{i뉲rUR7<[Kǧ-ǂ4 T(G3Ru,~UQOOV1:9peW|jb'&t ܽIZVO c,j~{st|@G$O4ynB^b.J~;Lz7?e'}+a ltRq:lU A%Vk=[I o35=} T=u!.e9cfUjAV8u8Y^?4:h*HT97Ǟ)/u=fZJ 0:TJFǫa,0@O5Tō?3)ISUÓt{?Ȼ cyI녕:(-8r3-yn3ų P¹XP q]X9jջ0ş"tqH/b,e5]AfִuYbQKX,@Ԝu.NZt :4yRr)ͭ^>Vkf`N^w/eA:Weq`j1>JYb[N+I;zzLRxJk.Z/[Kl\ؗ1;HTZoO8\bJs7~Ys-sb 1Mf^ྍ\ X܇B*3W1U&brs ( n>:Aa0s9eY91CO)͏HoN?դ^V/۬k>lH }GQnA-x.|^Laj漀rٙŦi&₩8:\6k[$.|A4s49/3wf4c_e1wLyXf'X1}8P4\;jɠ\Y\Gl/4mDPox $kpX #I- tfϪ43WkL? T}^J'*`aY*ClәZM<Pg q+hkM 'Nրp1Jno£drzE x;y`eyт3y1 fm 9P$ϹǰݯӲ%ќ>@ ( 2b\wSDЊ|@ebko_ U2XeH0 5¦w񙘑Q haCz u"뮁5 `t0e/A4' )͟2쬩k[Z7>/xjCY膊x $KpDŽ'GX3kJ1$aM87n=rEdَEl&\q@/ Z72v,c'΢dR [SG{U~'3Z[0y¼c<~!)ǒUJb!+LG 7T.O2Dp^6_ (&*(ù /[Cnt  /˸`ŘΤD9- `OM)uu2A:82. K Jk t{?oxj±;w6JIz;ƺ.r%z=>+{L׃~t&ӘcKs:b|<.9fypq;jQ< wL)StDp2bלtΦjC&I.CJ; _2^oaiR\Gp`vɳ,A''}UGD''Ai7b Z$cUq.9lBRdTXw,e GvNH@CcCJ2F%l@'?^&,$vF-PnXhPLCSh !4 >K &U Ȳ j=vzB^qTBC/ɐ{9}ְPn˒y¬x_}i*Y2afMsK`&do|=9SgAu0m]Rׅߖ?aՅ:~ ]VHY,%wf$ڪX򆗣ީ-moW֓eOn% ho4bttrA쨒x5K$Q L!?˂]0|߿Q-}3Vc_C6@kJFxaq^eihlߚ[PjOM?J~/'k ?>o>\yvuiԁ!҈$ghS&!z{w#ɾx_l.>xR~ݙ͆g ljTkJpq{9ע~eֱn$y}_?Ae">Y\[tb:5e.b ƍt.RS[(^֨.tFmhh׻~cBS5fV,ng2эSֹd߅"`| }vP ]i% )PO9BX?nD ӆ0F#/~lCmf?}yJp<.lPA4~RVbq SPVY;&bxIDM1ݭ;t='C6UrGBRwAѻbI ۋX"53hM1Jo>6le) ܻ1B?f7i쒗?ĿISQK˔h%?s$hvkV 8 aR,=tr쐡%|&ܬrSTC$GF&DWkUM'''ÒH|FҋgLRHlO"Oܬu!օh-Œt,V(+䜎aTwԏ0=QЪhYD7]ċb["l[Ƞv1T%1M Rv)b7I: UO@f|9 Dj.P 0!APT-;}/8p :'rTm?ms# NV[s֡4#ccBa.ѳmhJ$Zub1 `;ΣAA3|2\,6IUضnzt0Vstٖyg;/NFd Ո)n}q"R/lg'I٨%knԕ,w_`8{,+wvmu# fH3 1gCOTĪҿARgɜ@ M4&U~|h'Ji l:\py4@'nn"# "@S㱧֞(}`?C٭G.}!`U4iU{MIv9GwI*m'`ߓ@]Wڈ#pT qz=Z֡dOd=FHHIJ;kWٝ,up}iORF-if2JUIiv2]As7{mgQTgoC}WE47G.Ӕĭjkb(0oؤ@?6*C7v[PI5bɋƠG$: 7զYY`cy994Ž@ !^6`ȃ -ѫ:2++'}tA^d9<ѻ||!Q+'Fو992túh;DoƠBhTvƂ>Bc dUV=ׄ fA V(+VefR0Q"^cX9@6Q,*uk43ն?KE)$kY+Dco[jVo4FZ!f֖iT{[%?HeZ{` Ҟo}˹D3]$KZi=ŎF]r:vnI td(CMEmiea2]/,jMtn-amQJ5 3H?I۵ 6R6:n(]4bu£ń}!4,&%5%-%;uV `pst'xosH |][/9<+PQЙt7kQD$`Wざ2y۬tP:]Ei/d1-huu[z*,7UNڒVN4W+͸jlGyypVU3=3r>?+!nST0i@[ٟ߅ Ǚd~QBBxE;L @g e@˟{*^pZkȶ<獔wOp!X1^@620Qjsn`;ii/t1okcQNgVaNP NY_T@UR2T#9HOfnOYuOUtJC#QWA yƍ`[  ;v9[/k (Iɮ/(<B}ڟeJJl45^nIrP*r9 Zñ/aJ˩L:A:9+C"EE] J]C;m&U _U:M`_SlCU\X=zE+yB6|@p;e%,-7I_cVh$2~a#Vci9ҝ8bOq)u(Q݀E*1$[BsaAK\9} 3 3=*uagn"2㇣Wl֒ðYaEZ^p s_YUǹGSNH~)t iYob{fFhzluYO5j( dam.g-7.K=,-R;>̐4:;X65@: ªNe|7m2wC,YﰛE ~.bIʹwgW)M֬۞7ǘRnP||}Am"u^#mB@P]E$V[9T=lݠ[Hhj>TVwqc mSԦ<ƹsDZw}7HO ,93Ik\$Ӿ1G;Ms5L#a|>sӌ6HV~_1Df&/J/)czϳt-N|38.qeDw|=r+5/,{mYOyk RqhδG1ocxuVZv9j%W1qٺĈ3qR)+r `x1p 7T60׃[Kqr(PQr`L[Q^6'4ёpgj氯u>sԜv-ۭ H2k{9K?x9iϙadHkC<\f{sfD j-mӤk >f`^d;t}\?({dZj*M3z.$* zfКlZ%(_%}J + /VT6Z46@\Tn" MHT#;$CC].ޝA ]s }cf&*=z)ҽ۵@ٟ\\ۺe.H_0UZ`>xF譔F&&&Gۚ;Rck >T-_FНD nˡYѺ*t8 D$A^h{ 2X><HMfi}+͌٥餋B"WG2KMz㦈O~?OCM]AusN pWe7t *k518yj&Cp5)$pq@OeDII-paH* G"pwƹlW`O eI?N6U;=PKt91 [*+nuvola/128x128/apps/kdf.pngUT gUAPQux z?Srf.FِK"B%HD7*qBE)mgKWeO)J6FF*"0~ovxs^yiU=Un[[9(6-.Ao G?z:v結6Ljx]%Zu`W'2]0 A/ "IbLN'Ł5?= 0 sq ?>b "9M 0Q=7B)emqk9F]Wozq8KGҰuN 䄏r%I ǵp?(XyxIPNop ) Ӏs-n2wK}fιUss^n9x,A_寅Mrz:& f!62c,D6"=slZ[ vO)So"wI(5bҵ3h^&F@n{c?cũO7*M!ؓVPf #d$NO=85޵DȕZo֒I[& Un80G)Ybu u\!HK|b۴Bsu)H .L[VJ^! ?hY5 wNt@(TF.' ܡ|ޓ=ޣ:^Td3:9.4 M+.4326w#~EC< ruF|b)|S)#6OY"ʃ=tI  C4݇2[;1[[CC2ى WSD(@9jz"K1İ7sS&.gf晱 B&$8F*hM8dK lIG^u$@u1K2o X&e lFBvb)1Jr5_i&u#t#yDL8i$fPVsU;¯`~򊻘r]MTxNg֝uN.Ihmdq$N& o|\@j3&Lo, 60ΠueA}㉘_ȆS]ZjORdGI".5!5Og_t.g,pX9)w/٘$c7h њ^(ִ]КdM˷7.XÿVBR̫0!o¯5al$J5!}vr iВ*y E7+!O!pwlug|Ę/J/`sqn6na}O\x ;[=LM&UslB#KD mSn$;tHsrO7yjBPSt5sD\{A e¨\bce 8jHs0tǯ{^"{ޭU U@Mak?>*mu19[60.&$Qh_Ewج^!r,/3 \:n3&:_GG>N篱/dϯ,^F%PaI}'zcy6 r @2xH\Nv+/B`&JW|f@Jo2N~{H=`fzjN^Ix@hO\}.\p1i" L!}HF*rʘsӗɨ(`d FPc$S[A f2wƓyWLB;+8t~MJ1u\eUQ !O#BSg͛챰H R[ns/mq19ևf],Rlm0'?iü2Z };kCEKyY!ylȶm`֬)w*u[^EY}8,COMTyCKUJ߲΂Ԓ*8:2ψN3[Ze%6 S+Ց-ꟛOwZZ ֥qE~!23QId"[Yα8p. yf0MyDiL{Ew=iࢇ4gg:Z{Aap716 9¹rN IHIAI^?,7N_,4 ηb\/5҃89cjrz*i{LI\JoF9xx&,'0M/]hjbn:y" ݘ^ITqW>)Hi;3:sXENFMqD"D{ݲ|z==i |H}>мxyD 3_SNJA;+G+(*:?I̅*oTXu57Ȱ]TB+|s n<.(_.%S^EJIҘK5M;Y_/l<@dz`-aETa6=OMXPp]PO tI(lc0cpo3!}NhG~R־T˃ @2c7|S쏵Yc~~ Pa[{_XSNt2L %8Y77( ȇ{9} B[D-<'ݶY 7zu&N+,sncRA4pT4-$X:-w>sWy5H }ҰC1ɪ)F[|od'zmw%I+o:Pbơܝ7ͤmVX0,"]Ŭ#CbWWazﮌG$QD*d*m~]j5F^ȃꇿg8:_νcSP5%nf?ߤؖțsVur &[хZ)5 4^72x m5T֢0)˲ɷ#9lT |6ybCK1TBCȗ1S&h/|ԋ|)!{)!MG'\$9Hи Ns;lIpW1ԉZM薘TíՐi R􃷷ru;8"4[+,';I3GYvҎ7ѪqE[dGGRK ’o1 0ih^%p)c8/1ʀFX{{bj) EQd8J{Mm)SY#}3rl#nvN3 42-3m0:cc2@}+MYlɈ Y<eɃob}pcbѵ+Aenrnϖ++' |6#puuOwg5'MU@mM_>Q]͛}{*J[TF.n6iΩvIwLzaU_MbmMԴ})uv@%Y,9GLR- ՝('f(rL^IO:#6^ LR\/Uv-a." S'퍋{yU+h6z M&Z EΊbGFYPK@"K%zAQڳC\BLVk]|( Z̢ahaoc0黿q,]lěj0XY Ug&B/\*TP.A `|^@I8cأcleڜݦX h @UݯV#RwArD>@:XfzHYd0sV_/VbTxA喅p' e!ܿcvopR-lʔw& ͒hO??Ȃۥ6WčCS0*&GJ%u[j): ͙kW}wT2pQٺ-Fwؖ#ׇA<4?)&^'G|Ze!~Wҡ@f9&zu ɧ.KA= J1+՜d`J{TdV"TJ* G}+ zC<(f "B:#L)nkAeȯ^MsFuy8I~D^䩀#ˆ ir.A5pCس|OZFgJx@/:2^7=~B7G]m;-! D&}-DM4"ojү/@l:,\Y2^7c];CRkwq? ނn^׭|i]R~67xke݆ft~6Ns{ϸm&w ˯dwKo lyߌbK Hz PK$(B$-圌Rџ6SOR`:iD?`z(}uxxm(KSi`k{[k{xK3޶%T5vAPOG=?ưC-D\%d1%(ZL:`ˀt-j_hfgxN*:*BҷULRxhG=hP=z\NyhPqӍ20J4ѿH8u3}>|fFW+@0l7H}"nXfC'f|#TtdKxbXVY!y3SuHsEGN17ay!C̘)E9BTr}tlݵ_iOhc5ܘQYP jMZ$7SgcIܨS,}.vm]d,&QJ 5D&2Nz#xa%L6@r/zN\ y-z`B3xy7aH9Qv-mrN|0~1^\iIAV0хsϳ>MDi0l@ P=`XAYgCǵtj"bH݊ @UB _qFziʰت ײExi|im}^gUdG{kϹx{V&Lt~2D9%|wWrӻ&p}v|h} ہy_ } bQ3Ja6m^[6aJv| Й*P>hSG<[ܥW}b+nb jiiNNN7^Onu 'y^B }еjIk_miWeڴ!X?dMB`0Ô) Ne90AG/Ys5$H;%pa2#^cCt9Hv+|klfs!v-_^7 W^6Oy+SԿ.)SuXFgփ(<1 r:+Wa\?0 M&(w}X@vL~;.]@}NW-/7r@;6Vپ`ZV-,R%14Ԑg9 E\Eɶ4vG98ց4ĄdriVr-SY6ݻf7u8̪DwȠ>`KBr ) "=qEu,u[1KFv4R$'oUGfoݯLMn w_2/nEpi 5?;Pc;lfԺSyeATۥh#~gZETvHi֋3cEC&4}j_Kx+LfDYkC~G>@*=}%)x'@f] | tamɓ>409+4Yø%|Q(7eiVvygZ&d P|>x.s`l9Pj).>?I֌Ez6KiHǽ1.I၊vRD70f bԄ]%w &zUcG ѓ/2X5X0E4>-dGKSyH?f}.Z9i&Cn4sWuRBVL7o4l[9??)]?Ln誑k*\RLxR54rP/ϯhA9dSi>-H3K  zApFC|OS]qA/qFh@Q1h @ѯ\Mh5rE/>[\[GbEÿP̷oYԍ=RWmqN3\ܾB@aAl0RDIKC g?92P*~9X` b"E>n Rw͛Fb.ܚ @Vi؛18ޜ֜gUM  ep0\bH"H XEw{X}^EǺ,ڦLp<>_7[`WvN*@xѿ c,49:wfs?1/LWU*Dy5T҇>bo`o0皘dYEn@NPcղZB_ 5G)_YzMmԌs똟1qHE0YVG? <\E{ޡeRr>Hv!vߛ,#6>`MO0P  4c'+$\0lVr8Xdݭ۠(fY^;_qmR24|v5,եN'^c~Ai%cݓNA;={/ nCiPKsH1F2 4nuvola/128x128/apps/kdict.pngUT fAPQux -Z < l 1#T9J;[}%2%;:eݾ]t|oecYJ٤+öf=>ٻ*@RaAkG/vdJԶy}'eGfݞ3`$lK$/&16!kD?846N A43 s+C\ [hY _LcoQ-PQ{=a >cpH+C$=}2MY@;q9< \LUk6tf &~qXY%'TW1|Wbog!m&5=*RO)3 $$Ӂ%ШEOEY2KU,+">̍CjC պSaoIgfK\ɟ1E|5ΠvHnrN8NDƻYX{v eG1=b0#CsB> E" 5?$$Nds0/ V:$m)Ft(3}Q>OA-YH:kK I/I$,R?ޕa^@-(U |K)$PvfT,^}mL讞U҄]}/̖5[=lK]⭬>;| kG+I9?PtBE(VyJXsyP.JC}Zpc'ЃE%hjbYbY,υ uL}7"f%ao~cL;ceW2VX{ԥP:}K _@Hz4P oPk.fEԓmJu>,OE\E[&!=\coդXRa$F}:<k5ۨ nnk.ЫLh OW'XL̢ex</:^M"_ݷcY-oY Y!NZR_JOb#vbOv7WÝZwlŻ\@|1% 씐?:3B>)++_MҪAzU-=Ē:R:"$n*_1jiOFR5Lzq8<=1a 1̺+52w v$`kp|E2G>ưr-Ȏ]71@˝_ޫFH7>wh/ Jc#${c/ b1{lB1}]uZ5u7cwcݟn]0l}@xsMU-vQP!KtޡlxhR1v׽  /|_xw%\I(r;4- %?.S bަl L\xv;f~ mz Lb03,͆Э 2,">{D#zqt7N[*SU$#\]EbՊ_0[YUq0Knϒ2y*ǘWB܃ZɝAtAMGtR]FM#9!`깷fGu= qwf``zcD\# jY}#r/8()9Ee8ٰ 62ug+ إ(1L]fs]][p7K(Y8$/@P{(|*\WfoS0n7] Nʞ"$A"gV\5Ac؋P]+p޹Ds 0̙LLaQ uh}x^}eߵ*hؓFVe,|(]x%'%D^o-Ⱦ*Ԓ/ ;;R%%/\&i1;PAƼE{L y}~CrX^ T(:ʠ0 ?ӎExyf ,XAJ/չ"ruTDS6}p =~˗aM,˅bڐGZ>K={zҶ|L)fG5LB·g{'׻"\9 Q. (P<< Y4[Xo,R9(307}i{Aqk;RW+ZIљӯ~ 0&$X@Zޮ+;jO-\XTw]] .; ¾ڋ*⚑Tc_F=9XA h㾉Dl1ܿrIZMl\}džĀf3P9=,GiJ<"g0h:Vs]˪I6~0hRb?ݮYW BB"Bc޷-Y:!gNRq|Ii* G"$| BsP?rq]7ʏYmt#}uA!6ϥhiJiY)0qAb+$7=]GDt71 _ZgOypxp f?YN@}<3`PjM"+X/ں'AcPvtOo@`&BXR'B!siP؛/}t]j*=1G]PCLS]^~FiXaGcf_A_ptz'XR{76&vt|B=~SiVCPOkl)'tinTi+M/:b0 bwٲ)PJW߈ H JCV~zbLpŸGYX%I)ACi O@a;S-{$x3Vf~DNB3A}0+NfF]i`2S܊{njh |6bc+Tpn/)(-*//]- Sjk ž9}eb;96٬qɄE5{xI³(DGʕc<-S|o~ =}\ ;ŨC$L-RD W5Dxˆx>FS-`P4O+qO 3ē_Q`5̓FBut셒v6>6Pmn`'A^2P8\ozR[M"4'Ⅲ!*akeթ<^jE X 8Jň$FuޜŅ*o 2_oXn N>Ŋdh]-;f@l43}#`XʀF[}Bgp=GW=78e@V-gЖF_XqE8RJS0|- xhE~-IpCG(L) =[qczZYTcL*۴ʡ:kYHN*^!Kؒc-+W(ؽ8}\314Z{\[B6*piP{Ϥq::5AyRT8{2nF8Ȇ~vE~nd)I̍ݨ{H@cȨή,Ťm``dL uP1TY@N)%l7k;}B̬jKU߀B2K֪dU^*6;w1NRI>3>s"XdHkE"q.'5XO n#Nre0*ӴNУ-P2})4b K>ċȝ# cazľś˱wPDq`(iT;l3Jv{ N=1dg2GO22:]+V|s\J#)*)6cgg}-+z(u2ֶ,$͜ẁJPU|@À+?Š-1h2H0Lq_3fN)-xtș%+#+X({Yߡfn(LEyJh)l@ãyf\s4]F$thyK0w5Ivi<:f:| Ϥ'oZo= SR$ǜ14VsݠOw!^ [Uc+Vy{$̋ֈCcNV\{eVGY&A+<1z5Y X*-iMw+nTlhs3טHj+ψE$&;*b$iXutAam]AMc֌]־F=f6D pTVc2woC3 ABivqbG(ҿ \  '-OH>gUeΫHc;6iBvvgBcsojw@o18}Uۦx=P  W;AFwK讚V^~TW7 ]e3 a뤞[oY~5Fo W#!Ue_I-ao)g jT~8hJDr{aW蠺SyUQIQJAhK0j=z8c %Hoh^;wMxT[ .6Z ?`>VBZլ߶ɰpzڕg!Cg(gf˨iv6wrx9U@o^x;D=Z{(/tDʇ.99l7} KR*{VԨ =g0fӖ?ye6Uƾq@JZz) hā[{yaX?޿o`6.ѭf1nh(j]*fϏO?n7x)8e}nɬ|y;rɰ]?wu6Nkb14j8IBvG3kbm/`QqpK5z&'5Fw %+c]SHm S@ [L_?|p)FaX`a cȺ ܭb[Rپ;"M00\SlVP}bk8\ͦuN77sSm tm1/q,`TYu59aR^'my[RQH!7LHu]r)RS[|e:*k']n߆ڀ{ j:\ 46%.,5j{߸m0|{GDCTj|CziAѾ >C{..M ge|:nRE٣1>9-%?h3*L11cFi._h!?\)uwq gW} lD-p`k{&&\FF)ci "흑?I% SyQ'D'5j*$n҆6Cé~Mwl_ /H2>\-܏}:d0X:dМVpRΰ8օeSDe?5oLmOڜˀ}Hu*fneyyM/~k4/Ll?{;%=Zn\İ1:/$χUej& 펳>57z{ϜbЕJ΃|]E{Dx|ٜBOH+ p4:UPlE:1[ l_72Um *oH?L3,Z>wRta{#d$Ɇ`'RX&ۉZm6;_5ZM.:G| y8K[[pHtZrS!}UƄ5˄3d!;ĵjX9xlA'.& 6;9t+O֕u\ů/bpeŗᣙ X{'nw.3ZYލx DaL3]vn~ד@w^- ANZfD \llԙ]ɷ/Kw0_$0¥w{veFnNtd"?~~jl1EMsu$|[1p!zURp'1VY3 3ոпNb-IlK@e ezK>%nwR\ߋ7޻w,O =l)Lj 7o^p*rg[g2{jX1|#QcmKULUOc~˜$1&'6ۙۛvu~ #lnLH$GHr]7̴ـLń#%Uli5ia0!E꺩QwӖDyoɉ ,oKN%ljT1U'_}\' lj1:}lՃ}v=)ۀm69q*}A Kgvgxփֺ椎(4߮s%%A=n7؄9hwRҏɶ0 3t,;di,^_i79~<ś>[,w}Kf`n176E-Pwt'8a e.IpMđvծM^ˌ:/8V7"}T kub`{vhg3[Lv}1j l?KxI}ܠﵰq{d6旍 h/_* ͘”t ,P9{ve[ vPL>Q8i7R ߼3 1wWk`O٣K%h3.F{_]&e#q-.B!H{zQX=v H68#oŗ;'^& Ev?Fy*rVn/z=?K*05 ē47;jl"݆LXj|(\,L:߅}9IA}imh#B35:U:iv׳-z̾$ʧB6O%b q8B #+J^j!Y35y/A~xoc.wsLry BNg`C|T9<'3*sGYkŒW"[C.Dq`lC W݈^ oi4,"״ ׽qhxqƕo4sh]0w04lS37I-曤WkHm_^VCճ՝7ν@+A玶A2!$'')A(XX xhU=ٯ}ș<ܴ~31+٢cj > gC19Ӻ4l '$ +ו7= j Z[Έ>ds#1Aej-VƸgkЬh'׿ne d*T<+:eh[!.zG!mBO 9vm#eZm B]f$6iu ku+go۹ &[:!y$A>Џ>ޤڢU/N;J|ض2 Uwcxv>x͘,W-&U;-ccC'F\];'b dLc{U24ק4יPUf.Hl/ƚ?b4&<'3w|ѣLnLĮD̦՘m픲A+I--"4r 1ś+XNҸMXW{/itM2|B1#<,ϜD U;G1˅C19BH ^PzJ߶kFDk3EGbsU)QsQ*HU;8wݻC8tJ1r}Jbd1&9x"hs_ۜ>8Th%BKO@]J 7A[H٠靤hC`:jW$%OM): Qq8mF62e!̾H ZI~W\S"+ +Q<.9ɧB`Qe =DE};5|Xpr&I9axTjv3ȍ3"ܿѼq3~w `TדrjPe gO2>YupxoT>ґ ^ Dpa.ޗaYL͗^{W~v?\j-t.ߔC9qt7PTsvzdWĩ-&)ɼeCro.L̻]Q}fq=CI9՚;@HNă|0QF=b5*^:)Q?$;=~"dlc`+^ەZ 6,SQas']ms^8 S0ϗ NJFnuX`O'jڨBMZL!X슸/ x6EJ-*SUcϿj%L<(6k!1b5f=Ij F'G N=  V;I돪䴥ɣ =U,lۘX'cW4*+ *2>1lp%+D8.-_jR&AɪIV:,e\|& EN?u5&Iz 5ט.,J}џz9ϛzbK'd5ul;n)]ŨSg\Dby+;L-8]D帜_i][S?KDy2c1C ƱWv&Ůs"Wljm4uI^-Yhρmn=W+3[?gG+{(~\K֧vcZ%` ^ŝgySNF77f!jO?y|,?bu\,v6IR7,O[!*3ύ%brZ#+}ǎŦY֩|ږ)ŧZt54@]6 ސzzG$?mf/7\:ƪrO`14vz1c#UEnw3\/;VХ]n%> ݛ^-UOYͣ!䅾}?}i{y*۲ڙ^s1kHmpLfސ5NmpSU QTuLeM~|[*V_F~g;Ws #t.⾞Nҁ+V[k?jXW}PxfGvcwzI~rmvƀ#13' W8xy9tȃ3MB+#}ftq7<ፙã࢑pբk3'JLi8[ĜVg13j]%/h֤25'GXiɘ0iǺ'q~>O;@ ?oҧWsrB>_\~N"+$A5'=1ϕ!zb.־x=O? nuvola/128x128/apps/kdisknav.pngUT gUAPQux WR|!4šL425?eV8[YVZ$6jV6) R396Y9 _,Xyg];xidw)d2 '-Z<V hRg}lUE|=訫īmۿlggtKںF(ԬQPe$0xޏPQɼk=m:N{nm." T6q8A.N&urXAί a0ͅ n )Ja9v(W(J\^"ЬSvW2%Rf܍yu)8I=3ɌO0a +.tZ=DO FQhE#|W)^c0l' Mrk,*hZפT0P/xOוNW(YpwEU ]Ap cjǾeqAjٵކS6#t|xi]x/s/a\O~mSaEt%Q\MƗ3!VެXp)Z5S}/yiO-w_zKކZ= {!%` |~/n9+"3?Kbu2c|uc|[`hɜo@;` !>C_=*N@ i,ήHyIa=s*siw!"4-:hL^z7LЃ. J!Iq /0ÑP3|:Q'ė$4 Qٜ=WTF cI+{az=G G!X˿f1.t.9dCP:+Wt)lı yvD Auȣo) FXko.Og kUStoAp~c({Gs> D)Zdlvpwm c6y چk9' ֟c^*nK<@)NotLc`=W/1Dh xR;_F?pC FqVǸBE*߁*p TOFzViOvvw }q(hsY>(]/UVA4 1VyE#,TH8)^nMV\dd)' "('J\]tNEH{d0GO֙.a|Ƞ 5q)}K^ݍ)..&kոV۱0L\I1b*ũnZZ mtuk@&$T^x|l]j[v-DrR@'poc(ȑE аB֓lPdC<8l0`d-Tmh Tnï]JB٪ YxHlmzag d, ^ 3;OD[oZQCa JNxo L<ʤRxԥji Ů,śAINEJ=WCC{,|r9uu=R_MSCGkua :M!x`2EUkI Fӆ(M=Z2!MsYLl2>-^hs~~]M&}wrԉ٠6LKфg0i.r[)oLTf^ը1Ր N oa1o"PK:q̅yғsv=SXۭ |~3t䔘7iUIEw{A:axdu) ZnANX=ݪ@'ĕ4,$p_&|;ބ#NOYi27 mΎ)Zf`lo =ԂƍavUr>#[[D2X(e&-w{(#!Bk G\WݘĴl`t4 > x,G9^WzWˡ̷gWٻ< ɺikò垿KE]`M5ըtZڀ?Ѯ[+nu'Ƴ{{Mwq$RgC!Y,dـG=-w1 |a$:'hO/a7K&K7]nhOpAHN -X#W)xYD%Cx#NM 5R(0M[@_RvbLhkOH,,f:C*XO;w uX'3,kA?rWU{mQ]z 3RdMHGΞd'-EKq5Arςy3fz[?ZJMκ{LN~!Sf\G S4E:|_q}X(G[յhC-~$MF5k%$T~_0( WW #aw&ςe&> Qژꚨ-epJc_#fv>M={mM"f,l f"TL4\/r 9EoJ yA*'?E0 QE+[/kж"=\vԴ~}U 8 I 9𶣜 ˨le~5q$[L- {q N?Gq}9*{{d  R=:}K6S a]0j[د<'d8>΂&|ϕ꟮ȂYJ"J8# Lv0d8iQ[ч:fjPk9Y~)tr>oҶAR* ~N:gPҏa0TK'MOͼ6tYVJOӪV= ʣpx7wDD!RuVL54TGq#|xSN]{$p_PBmq kgFapmG ~LvN pmc-O(-| mq< ex2_+Xs?EUt,-JaO~RؗW唥lɼ WG#.gu|J"=13x{#F馧.Df>~v"QnhיR?px Bh,H v D>YÒ&=Uj(2?)m%?]%iùI٭ `D=wj$+U#ճ3r5wPvΑkhnlb=gB)b!_Jq4dYX)L کyCqAW mk+] !E, G'qf`bb2#@mrcOwƣC8;x22Evxa{sI z#M"*ʸU>%Ft[Hy#׀U{N߉-ExZ뫥p40)|PBv0 -ٵMz9,̍YjnG] [)z[`bOL7M^?[|[|b>Ic pFB>{N{<^'bW.kkyDM\*ھ-,=B n1_ZN}:C%u|001JSf&Sb~i dm\)\ H4`E }ʩ~O! (cM83:(2ճ@6$k/ u_ޫܚr.GijSkg^p0wF; L7W,A~pA3Vѡ৾VTVQq?/0g' ~X648Wq/^!:6JxBlȊ@JutH̔$6I!~D%eb)*F*jkn `j vH ⫞ޠs;{.wZѲ{>,ooݻoRj;}+]$%_8 cKrCHrFSܮ8}dwIuREi*<_6p=qX W8:DZv9?`!P{jR# zx?qֱkY -̌h#jKDNuV۹՘nmBeҎVp~|@L>B,X+*i%dk/].dtFA+(Z _pqN\}i)bHSY^n0]fK|knǗ72?'Id'w>k؏4axŪfţa/etl.jIoeQ>ϭyu>MogIwؕ_JQm+E K:h=/_8[zXCY=V7}:5Uo78 .c0o E^B$UEsOޝ Ȉg7 |CRsW8$$ѬMdT56@6 ddmuV.ٲpNyCCwm_Նŷ.aM{o~|VtA$;qY!ɒs`iY(cd9qH[r۲iZxe!GF$aeiҬ}BΫEwdb 'JY/Ѝ*a6yP¸ml ,#MuR+n>;kcwnF[:&vfEXIFf{>9 _7!A:{A}fQEfC P܉ rHl)~WקOo]mqݕ \a \ej,C1U!|h+ᓌ`3R,1~\}$GA)`}ن{z_L\YGhx=apJ5Cg6ΪڰAUL-:!8#01ߺ{jdqn'gD1{L%c`e +nQX<ԇTԩ4hhuLl*Jy8cb=RG#C !'gdˮѤCr?mY_#bMB`eͯ*Fq gz'̯k%k!?0'x k:1l2ƶ} ;]'0˿;rb#9FzM|1;7c]IXR&EM .)rnDNz#ӡsp\{%?yӢ_]_-F ~ D sj3d'i.Mjl쌏E4sSgnۧ9ue^dpBdi'r6UDF_W;<ۡiA}RZbx.O*\ ]0{lo̒JcꫦEMDU#UjrIY<'YxS9Qn:Uǣ37-qB;I9Ct0iY] nda_I;Jwz3O=2@xʡs޻iK ȠqUC!Hς>ޟ6XSCt'c/K 0km]飙 '4a>?Ww$=It1n pCH(Zi_x\CHr#5ӕ~NpFy ~7f[}>@J|WGSR6/8#ڛ$LʔD (>{yN/b><[dlzS'õ󕾭BQD̬*E,jb7=&56T=\Z/O3'De`UYM=>1IS8 z#_!z}CXKlґ` LZ"+!j `QvbHm|PP2n x/ں^f jhyI"Jh#9IS+VK J-ZI%!B8a)b6zsnZ,>i E{Z@OZ p{H=qKoZfQ5R2=UrYN-?s ' /cz&|?oےTU1BFz98my|•SZ1 QqN,&GVdj$,9܋eOx0s0`qeNʭ1 P6wѰcVep Zjdt# 3/ 6vT kb r^_3=Qڔ:עQ֢r]7d"tLJ?#.ܫ}ipI`%cA=űJEi ݷझ۔S(Jpi ;BZ! BchIWˠ+%TR#)3ch.a,ѡ Qn#<'FvS=I_wAP"-0oyO2# gի'Dxg`cxu>Wa}cea7\]R,rPxQD@;!k}lh!ZɻH5M8)XDg. C=V}B.%d&!Xy*JX{lgKڙ[+8b3:Żj:B>9|)kK`{85>ّ͖$|P8H8L@bBiETZDy8dP>@-NdER:<.f cJ]( d JM;Ƈ0+#"')~mWiB;_zיrJTlzCa%S6 %[SBp_ R Mmi'ɠ1I/8nG^&/kO+uc,nJX\7Z}B'%v,B8\:-t*kSK{ dT~ppSphijt0?4d'Y/pNT ġA *^EG~D_AMpG{e_gDbW|JٵO w p_#o) Nt/2#ѣP̞}7^qWQ-àeW,!;Xcu[ZG6ޗ|钋f sQ+zޜ;kإɈ_"~.xcB@F-oط?]C&]Lijڀ(M\ Uv|/5`ONr}}]oʶ}B{ E vd3`=Ņ\ؠN:d(a7D`:*ddǝctkUj:8wuoe$GoyEOH DC[} 'F8ol$ءƏ'MZif4k<`bhÁG1=|`C/\',Kfrj\ Q:Z I'9 AY#P7w+°ҚiIzĕeSȾxnT˅m $fM4)u% (Έ}MU)>ٞ mƬjtlukLͼ.cs ơ{~2vCc t 4jʝ̘?l?MղPkh;&;Iv"HkF2 gnClJ_-ɬVwuN L wiP D90׏_3¾S֩{;8l 6b,ы'ȼ "{fXZ娣 GM+qk^'Eh Gԕr;nxq\g*qh_p2uthn*j晭-}*.{._͈:M ՜ԗiգ4N(oXtQ|ն j)@q-O' |a`(kO ITB'!ZӭyԳdDe-ۏ6*>>JSS@qf5#4EK6[/-O |epBoU_+t)2ebоR^X=|UOnmu~yS3~i^@d! '/[qˆ _Bv 閽t%_/Й{b)_YyX iHÔ' _pv < BwiX~o3u}XW5xvYlD$bk49d 1 g#BE;пP<-6y(ƌW63 h]̵)`{/`%|5_PZ~$ӷtg$f ) \'*7/;OL".V2TKy9=PHZ-L\ڌS^=勈̟O!|sJ2|T(_ ^ 8+~,YhU 4-p-N+ m t7T1YNOĄT]O{6edNhr=<܌*N?#Vzz& 9nTxy J8([޹)c}d@HXT(:z4nc>$鵀QjlGٱ%+ P\K?T2]K| Ff'yPsJHmLW6qpJÌt8pr1k]ܻ;پ!kF*ŤL&9`P!-fjusԲ+S. ]d?^yNcَ_v >N|m t_Ʒ z9R:PjZ|$L E圣~/u<o_]u\y{9=9I?r=V齰_[hJ lOh.= Gp]O= k:Z(.>"%h~V7azi/=yx=/kD3 ʬ̀05_J|4ubowp|bud JHvޏW:µ[uq19.Jz$ڸÅ6,7ӥ I܇:2f%ؽ ;dJ. "$bJ<pcw܄ɷl5LFo*`nU~XgpA>hg_>;8M>QF73dC+;PA1>lyҝf>nz5ADz/8reWj!ztcq1,1bogwd}'&y='F Tk HR5va4\Gq=X%[k*72EUqoweܸmUԠ+3:le9](SқwØ`ÙO6.m ˤ,{;8ݙ*ҭJsy/sJ#ýWcʃ 3yKme'e~\.%u##exF cg 0Ris cTO-VFn.!ZotC l8:vZJlgT-vgNsSֳUy܌,!Ǝs\H#ɱUhvt ,/\ù y~߄lSLJ\m2c0㎖AVzeߊb(; A ڊYʢeR%)&?3<+/[ 9 .2ʤ~ސ>5݌B/CUV'V-3# x~2Oy,|-_ Ž68%v}ehB Q/h#k F\VLN˱%D$DJCf[hARubaz-WL1Nwhvmpf~{lˬO]6U`FJ?NtvZ 9F?w6vO]68De'+b?Z mgԅ0_DTO-kFהp -t±4F3Scjˬ(i䖯 y:v=JsF6m UI-ll!G} ^gR7}əU៻߆!;`Z V1 8nZZhfvK^ʨC)+a?@^SJO PP Iqµ'[F'K_`j% E p m#&l]+L, i1,3㳀HuW*#( vծfx|aްb#ظ!v=-PKrH1AaMN!nuvola/128x128/apps/kdmconfig.pngUT ĆfAPQux e{uW6/eE]E7y{X>2{c?]tV7鴗;k;>~Θp-,&$hpdS_; Ǚq:ÆBF&a'Lbnblm6ɨOjTC=ohkfDdQīFlDM* OI/ '˩TL6)",]˟8ci.qO߱O&ns&kN)T5= 2) D6nlIᶶ2SeAy) B9v ƚ0\SBċF[5MI͢;95LʸxU=qQSSQAI,r oun7MJ>٧ O9ٸJo%FW_ % pmdidKCOC8g޷'z g K}aح<\s̚P ڦdf]N΁^s'Dx%8]a76g= =<%>m{ckY>U|zf[V;-g?)k` Z'EW.e$z5(iO%X Iϱ kfɘRS|P"x)=䋅WNҔSo)wwe7/WCm1]{*J[[`uX(qvI j*/y`5bwKֶy\B,-%32T޾]nWMXn>|J` ] Cc<5` ޡG)k&:Ò]=M^Ra H3̠I[r)/p [ %k {dوF3wuv f l]B \i oI=:>V@]O_a]O>ݣr Ka6kkR-fxױ E^v["SpE ve9mel宍:h+#iJ+%O,P5Q l%W~^\k,6$YU%wXA忚^@CbK8xE/} ^vc]y/R8VIl(/Vj+/ {sY;Z@sBVoW b{X9e]xYll Z;; 0] ldT*/?<”Kh  S{6L(դZz y_rL-ZȬt` #`?il{|X82g҈zx$,F`f&%Sy@f$4mS#WivҘBJV2ʺ>!D= V{MGKYw o7? 5ZYgp}82I3?qcp}rtwOwXZsda6ru0>F۵ȅ._?OyQʨ7oQ SbjG*p'7<Fg5QĄv6K!^AS7+M.s!TϠ}I;\‚ϪtbO*`̗=W[^NOp~͒ow7e {zľC 0[VC׿8Cc~ucVUG# .pa$Ui4|3g{H 8J&pzLgewV o#!-³zksq)zo@{kg\.,'^Xxc~&x+IX~.Ieiu?waik9'RN(jr\PF)غ6_cr+N.<,R.5:OahCv B vx vu#࿾o0/eRiF&KKp|k.uNHѩgd򫎵Cݴ;O7Z6H/7SaA W5ʑR2ۤ-|V7vT6yFõS񭗙j+;DW9:-,8 >+.xhف{]{yMVKи}Tg̜XtU#jS#*횄^ՈT8TxWЫP|s ~'c<RO[0q\Dɞsr_sG80żɲ1T|>N kj(G9^,3zXduD/g:n+q(c7trBɆRRjI|&l+&lyN[ͱ ,(Cpp-Nm-0x̗a.zz bbY뽠 9@IƞTh>ѹsK$5MuPuL3˫AJSWK5SbIdpNޖLy#E!AڽF|` NUpUCR{bv ȟ ȞM%ng,+'π?\͐] ̼T֏|U鏭o yNϻǀ *_`5\9%vc̐)VsDS/@~5u]ЌJ(cK38$X 'c7m7H MWn/vfi] a9EB11RTs fR-L*A%בIے'f[Cѓ~gVC;ԏʈ}ԧ[Ro4 ߰D=59]q\hfW3ȱ;d]馉B3gMpC1c+>F_#c.l2$f"c쌢tߙ#+`o 1‹Y{K0L-~C~ kYл1b Pҷo,vt Ѐ(mi2E|Jbw-NuhCU@cB= @I D`k"4ڇ6F1,!f( $YVL:v'OIt:W'oιW"0pP[~ ;pY8 \u̜lWϻ,|'|XρPGg7U{ N+ªeBot X2lقv,L Fpk++m^f:8tQN/ mL=}8ӕ;^eڜK;R-IθmskmT)Y2S,s/â #p$1&Ȃk##Ve=̇[ aΫti1J=;@$a!.v ncGsKdP !qngfB /.zHxZbκ=ڬmu0pOyͳYr} zfM}__Ӈwu,ft]>h y(0 N:MO>(:JB.!_\"S? SN/d*j?\ 4dHO5}߯zt}ݷc>vJ{.#M$!mpp!wE BZŠˀA;5Mm՘!l5k. r#E8qGpܰ4>{}'D\h྄GWzZ?2Zq>o_\eyR74L,X0 ˰$3,ᜢd)rE𦓹ziɹ/ ~Hw&+(T{yZ?_BA~: #~jF56:#9c.~~ T;$Dڼ]nL[5 Ad*0M8VF?‹Il tiD} z/G70>Y‘_p,{r{ $߃i7o\}Y 9̿ĐfҞpjKk?iX(H1/̷)ySӀL(vba,hE&ǎ=F<ނ ooDؒYV>Y~,%r੸ ˻f ᱫm,ym7;g%7ӝlWw2>1Vm ?@|ѐhc_p ֖6 ܮAsjQPuVmPAH񭻐t*Cu;'G8CTmlmS]?E$#ITUL!P_pj7oѽVF12PhΌ_I)KW<2 鑲i IUrm\ d (W]txVQ9 <kuz0Xk\%yJEZ15^D jq` ?=*wc7#HeHS`'srҽ.m݅fWZ}GO5WU- FscڰLFI_?_7Vvncj;7^pS\# _r?\!Y)KB:gc*&:ԓONmgvk&lmD'<%$nh d{P} `d%hNC`'I4o nACZ_ 85B er{ ;wb$V^S ->ޏ[8>?NV  kw>MJS84O-PVd`8I.\d1R31vsХ~m@`0[o)š"?odՆ[6=j~mvĞM0ځpz!b"u{$t5;9ռ! J%[28s$/U_{gb I/5 n=WE Ѽ#ˍyswʎLx(v#n6+kkኊhO]akŇ]a~Hvq| {f68 ΋8 O(/a6H6XZ6ZSΜ$yJ*1nMAYp\3J 0tAHBG eCҚȖWؤ c," #Ĉh5\Au*ʞbnHsd_\oOqW\++>Cln%vvwMBE(y2+O|k"U|[YnYL}‘׀1od>΄ {w&&z15,[iW!`2P3mg"H.T{>-;P>Ɣ*]Y*5}U H࡮7=~!t qUӣVK~E±rՂ~;2 C-3C-:rx#>93E=^![8^csqj; x+g}- 3Ӹb\|<,s×쓑M ljWsKg M05rLvV{Er"ž:3lKب}= X:,pvP'b Wr'Yzo)s[,_`8-"YlS;NF0¦9 #%C=SmoL_Sd@b-*!D̸wًD[yU_ND3o~UI8kR AA1<Kڋ ?(|(J/T-eAjm|4Pc(J8@oiAcQY\7:'si NFڡ={ .aYȕ}IGkmٷM#ASn hA:$"=K.[ PJv=Z`)јc- @[ ,, U{eҫ6Au! U}@q7vZpf_;1W臊 ?E=+a-^rY$ųj5 K;#0 EZ6o]Sr38$ujEy6@/ә%oeך(+<:osuS& nS) ̓d=d Ƀa~K@AȚUR|ycHA,_"=O?\^ U4,j^,-g]+~ 3?0?rlm{ท*I*VeG GӷEG!*?.H ~X2u Oā&%ukp{Y+{ bCl=k~Vo:93"^"lS{J_P.^=X6bm9u[jC QZU+hf.zx}lSAj/\,1ҕ`SLd: /"UB|,a)vC߸"ڐ.b/m'd^J| %YP^q`zL Or"FfDru.b[ߊKiγxz +KM5'C9́ƅݵ7VdV]RWǼ݅xM*7_|DX<ʨYo@; m  uXkTYI$'`k3 lv_dz6N ld)tl>"ge7rxBО]mϯ`'91N' ĸ_ 7kzTiuH5B݃6\=2zQj!/' _͇y^ٖ=We<3XŻ{"~iܼ,Է>О$⺥-;.)Gp`Ë`p؊}wCik1Wڙqկ N2JbʩMr-6k2q ۪Muo7E E2t.&A[ݢ#1O%"@zq ?0TQ1`#~FdMu$r2_فft"]NS_&8}{ʞ0\WpwE*++.C(~N8WW.`|J󄯺}j=~ ,{^I}D%B(G"揠i_(=6~nGۖ `]gEU%L SES;[oD{/|݁iw ԄVcׯ?F=xtO rxmݭ|<}oi)6T {9v J@PC'GՎ' Di_Z]x8G\q[3ۉA[lcãR7e+5˲W֐p{;dD3a=G2=[wNgv0`՜H]y/Jr C<AC ^ tHpt?uoX3D<i`6BIѹJPѥ l.̹YHYB+WznvODm86V(}]1%ypL@ԥBi&Aؾ rsTU6J`pn_q%,̟m]Le=hf#E()tH@,a*tO<=LT܃(|)S#Gj]b> I!P~lroD%ʘl" kdQ|ss@ О`KuڒE{VMU»aq3S~ 3أA$m,;\qi3X&@#ҡ">]蒳ɶqm+cԤy3U/i~[nşq8;@;\`S(jG;&N~-[J}(?{Db PF0Ǐ/=j3n7gλA{IM\'>V+.|Zkʩsރ\"TW??PЉ ǙnP醺&FnnvJ'2[Cd<$oCރ|æRb|Câr@Ez`yv(0:h}YOzq}Iit r6lps t.+H0[sMܻ;,Dm(QbQXn^7sN/19N Fv /^59;mA 2fNJ8`;2:RM}0' D ![EL$'Aj1$2o}yͰѕI$ HbŻ68@>a#>*Mk*< w] 8?p 8|p~rAb,%Hg/Å&5Ӗ-"wy.pxWx?m򆯆Ww~0,vװ\(FC1 J+J^0i.ڧjAS(ꫧ飛p>nzNT}.o7{1~˝ os5y5ڴ7#!$*7eIYG%bt֩Jc^iG2,L? nKR(6ü* 2qw%(f|$?pO0<$;1)D(M+/coxLs [oZE2魢NC6NDD'X7T"8_D6Hn 0,pL F/X 4\y1Q׽d1I-ۥ 70M/3:{EUmEB9[G,7nӒ e؇~ -:{tNSUJ-ʨln^ԓY"RoB4sp[7ibH 78Gi` ˎfL7JtiP#-iJ~Ĝ؃9h٦@VگXx(e9ɩPI}Hubo B @n"pMz(^㥥%#O$Q劃ٳ@ڬzHAjbWlǚ+'!@Q}& jRjMIb !^zI=-ėG:BK+A+x&\yoc-O6f_y8 &Tf}_VEWNYqQz2ܻ&nt׿q7+xc}<c>Ek_[\.zGnlWUCdhN)C͞*>UDmWzڴoWEiޕ]^ZsI*>LV>6q84Ӫ06po Y^-"騚k7D\Թw;oLre}ʺ4nT2/W/ތ %Ѳ[e@[ 6$5yܳ, O4E@~~);GZL.OzA9PT^E5rhKW "J$7bd~c85<ԅb\n<99_^ЉﰁNcJ?ٿ?Pk1 Z:E ev*| YS[N* 5?u {iп+āJ% \ ujNKk"Wk5c'J$r% DDWg_I2n1"h O!Rqpxr~z"V3۾`I1Ab؏D ~V!?etl9A1QFf^ ,nmu˼$;ZE447Oћ_?8{'-31Ňw`ǟ4 .H&bPb_` ^)!=H3ۦC]rW$Tf},Վ^hj%_/pd}mw_*3Mr"Qfg |W9豛E46҃>!+ "(:gi]4n仭9/bퟆSm{)a\m'To y8oFrM׎,㊟Ԁo0!/O} ,Qq䑝dWٖk^s+[QѪd(?cd !R̂EwhݭhZDw,|s# ,Ͷ>xʚӆGUb'T.6V#!̱s#P{9tgV(33~+،(Z,V^@m̴I71#rsLDP95 [t&`fDڒbK@nF%7n./i!`5&CD Ot=]@^sKױ% Z&%ðtҷmg g&P2A7s=!j+g] chܲT`>ʅMjo3dϺ]^pqjq()S"~,|uS/+pZG-lw*,VC4@|C$%"-sԚ" tg&Nr7YНHHdGG>}"3k+)v,ኌɵٚTgj7ޮ쎆ҁ4~t_[L&h9Ѣ uQu~D7`v E(Yw♩\,w$9S %௟vYةum/ܐJnjG[.̞AbixR0}[NkY>NG՜{|v^^&ކYqRDܧvb̧&rÝ1F`Y!#H}/מv-*0Po 06%GPҹ7秀@ٻR]3Q *4@Yz=S/v+80RpYm'An&fۮIG}ik&? 0-I~ZFڵ(v\y0 *);uFj=j9*Qͧ.O KRa)!Nv.IN6 Q*+Q05vSQNWf0Rۘ jY*DʱMuV%YPva?h^0&'Ge`uu?RJUUFW%aJo Qp7Bfq{%.:8YaS<-{V86R.8%ˆT0L0 y4QWsQKS/b2B) TS/Ywrr &Mh/f_%,~qUdaH0E"z"[0e?,U\>wQ tJ 6vw*F ؤDQp0Egu65BF2yT7' O\F(0MaՋ̗dz%/d Tnc\KsꁖŔRWwj1| [2fmݣNG #rW=rE6i7H$AG=ϞTտW2'z=WEokljM-m7H %\9غgZȾvĀTť:jqbhpVmFTUνRGmMlFoQCsH؂l3u{YSe0.'b؆hiZug&p˚(baIS*1PXj1{ z60%d` N$ÌrWdJ 0ȩX,F6tRO,zՔVTk=QG$~ና(<>늜{9㻫`8ze#3w'|W9{EX<5UO{"-Ώu <+Y֝@ՔXY߼4cȵg-a rV nXe!_= XXێݍ͸"i~o,y]-vMK}p4tIӣvl%N 剦!"U*y?80PcCFInuD~7p{C__̌]ǥLSHAogdSII;!$^Cc:$ʣjC gCMիnዴ-*24=tDkᴣ!ʈ()ep9 J{$-prd:\dq5ezlڇ32m*_L@wNw`oקoT\󦃫wy?}*j$d{` #jSk ežn=|c [DSzH)bǃ»w'ŧh]{ۗF|ZИ~J}HcES-IְB ԡk2Y M#D:FWV /|ND<3}H!(DTL >7Zb7ڜN> {tSEsbpT;2Cdl"'2r>p6oᡞ1-5a "֎p_u.o;;ͭ:S%}"QD]9qz[PK\ʙ.f!Fwi1BoH}mGK%]#pbbx/÷p⢦cM_ Ɂ` "F羨ٜBw=F+ ݔWAP#b-K:JCڙhY%O͞"LʫȘaGÌAInҥ%UPDR4#B({U1cggTf|;u~ж(_-PU}dҝdWp2 mbiIiii>եUVxDa\U0?13kOmOM9% P¥!~bd9zX*Uyc!HV͋'9Vܠ{ҥ&|A4C=n fkgUeTu5Dl-Rr ~Y"go^b{Qs޸A8F 0nā{Hvrۜ` ;LDlM[uc|pA\xkgNMEDan@L[+)f!#ap dseH{DSJ[k_o]SZ{E6C=DM Xa1!u#K:2\Wa$~Q(CH5|8 9"8,lYU"Կnm.?Bـƈx2ohb|'c֭ fS܉Ŏ8fՂfHQ@@qy(sWu|n@ww`^ӧYߟgmdx'OW'@đЊ~#RmkMځ@а3Tjj>*g1[}|H)O ݬksHŻ9 paP<WT _ aaI^Ghp#&[rtHyHE~Sך\Z5t)cg8|cV́D%C$R)pk0,9&)wJ_x<`p!8(Fy+W -|{Qi"D+ V$ ۪ItUU IÕ/МC{#"WCG'=q- :`wڲE_ob3>Y?^]`#)Ų]d'ul'/g㣥Ad C.*2;T1L,D&M&Ytiw+I^^P  I:zT3`lL%d.sx1g=|]|H?Cz4SE 9:}A06X\ ll*yE ܔBŌº,yK, =7֦&Db@o B{{Ó-̛C R65,H36v19p`'6&ߴIGA դh.J^gAsAw.Rr44}AY*f̶ώF`Cr%9aK,+Yl4wV\}݊@o3!9Ti{ slFT,"{us#c=h ^b jp%\qx+25 䕂BqB|:OFYsw4 ?M&D%}#-,zACo:" p -Gnp3C xi996ig1rY>w%MSiSV7Rڛ=K<[7X  }0e1jQ ڴd~?OP['}0h7>t-;{rNQE#|bJ,Q>G)`憥;;Is,|4DP fs٘$T|BSqJ{AN1J@;KW׾}:,I+ Ѱ1k>- ~K٥'WsnBm`| 0U*A1\`44$'Q?zh? ό+j ڟ k9pԜXb PE}=4:y}w1VFdp?gd.]:bdQ4+2;zeL<@;[s] gҸRV%LG%hjH^k5ނz6$'_ɯ* gk0ح<=j(ZjOXNZ2e傖5y"b7z;G5iBpgvf#}^҅w]E=M ih@Mw 'i{+0x7-a3̼ӶX[w&{e}p޻l/۠9.7#ގE&z2YFa'ev5&S Ϟȓ @! gc5%ylfxz?!')W+Wk@5R5?)̣yDf'8B.DY1>TH> @Қmg>a,.2(S/I Y0t*-{toL~)$(UfT}YΘBݢw҆{p/eCuUCĐb7( 1v+ΥċgY }yTc/y@UC׍]A =NVe<~R-l;Ea(rr>"*Vǭ?!eM}OC\*]U*l݇aĝ-_lđ&3B. rpQE#_M򻏜, uVCYn:Z._5eڀ޴=dKڍZVkɵT6zĂ4tUW/xg,:ԬVLXm-fzs[֔1rVmgڠ]*yE1ܵ4?o .F >)N.í9.`Ʉ)}.ݥv;{_7:i_e*U"x)l42p/l$ªnY/ ǻKLl\<*}d*w e2c @ky$+9ubБDAU)xlm8]e]RYJ m,5d$ מfƲe/hGuq<L[`pyjePH*HJ?x=BǕ8qlvKΔqgiY<l鳶m(z:!m2JթAͫ2╵]'6GDQ5A_>䱜tI%F]ihӂ~6!,Q[b^Z(^*/wafNC>lP9)e4%3fN#w͢ %la-ኡB}"0ٴQڽ̷{LeT6!hRH}mc |k+OMlKzߧY9& gLC6C7sS% -3e'3LqTk!eSR{vGrBۀnGffƽ1;(q-6h79m9f ŕENb4%ylN~#R6M"/#wxQ.3ŋ1\hK1ĄkTQ(op4T-Tq{u{s\J|sS4%_̷Db;6iF{^F;k g{:?Y-=DYU<w }%14M c(^=ͥ~Хcqgd!5}&V .TW4tո&ud]%壔E6c'|eY_)d-n,0YzݖǓ\#>Q/ZGW’PwGy@n%Yʼn/ӻ7y"(-Z+%JSvqRͪ.C'DkW)[@UfsKǒjw3kBW a7FGOZأQ|ӵd9N |)(A=ג68vډTkKl$vn=m/jn#ɉI \lj~ zJ|tjL VEȌV Pr0l\Cam%EyLf2r@`N툨Bg/h]=px|J85Tydĉ53?-7z9/gf{9>ErK|̳%.J=u_Zc,Nzrls볾\E-"(nCFQ!5?45SL-Dz ;YE},2~Ʊ#SOI;jbLVl tv~۝%(JMzܭHhhwUΝܭչ;)K9 B;jO펥+[ᶾRB8L:ӑ64WUݯ`H]&̵Sfxn^@tr̶yZlZ/b]b?f['>$E[?J+LW0>Kkqd}i^$'bb"Ym 7gٳO>GgSf258W'_7uU"u[3z'RŦZv9:w q_4L$ٗ)7:vqϋ?4{p< ³=sE" &u*MSzoS^_EA*luQ!J3| @`?ǐm"`V 54y͔hK4j[2Ou758` d`hdKHFC`[%g'8I/ɇ91@\,RRӠ F O]-z&\8Sʷ ]=t=@)rƦIxovϺs\k~U|SӻkyYݍXi22f#/U~L^#Jo<~ܟ*W ?qǔH,rZO!-Gg;?~=KZ&mVXl*>zN7!38?&h\Zz04A9}a2 i:9Ch }s)[Oͬ+z);m,Vtɔi`2c(sZAޙp>C4<)9qAwk~3O((?^ujeM|N+5:T+dN+v95~htU4h؀ x ZX nܧK:/9RGjឧ+Ջ loQ>^C~އ\A-ܔYۿ,") xOJ5Ɏ/'n>=g֒!QNՉ7Dt)]FRzU`F@: 0yńYSSd{Pw>uVi ~v\kN2)n5Jgm "/HTǬcX4IvW`}]G4' _ADnyuQw;# ]4Cn.GP5{\I9oG0ϸť4'ߚ_ݎ}%:u"摕QE+܎xNKy(K.+YZ㷚EF+/Y`~!5wqzm:ԃXqz>uq݋˿( UO):fy oY0KCpc\Lo#[ 5gc`9(feL6 &UE9_7:k1ʷV*Dwܰq=z+-%@n9Rh%rL)dk4%AT/el2X|;+WO帖JM=N񶛓eXj2? ? ZM0]v=V;gglY;֯1 )VUFlj^P{{@?O鞙 #yʲ|##6BEA+7,~,䱢T`Dڼ}C=pl{|dE)qs>~cQzODu-]97M*)G3ǝ8vt n7?ٝ! d~'˻ ,tʹz7{%4f3gog'Y4^qܨGb)?ϲ6cOe( ngEq݈|:;]>Ң?nрHC=(vlGì]dϺؤzȆ4 Z+Mؕ PB>qZju .S0N(1zӖ6x"ؾC!\ȤGvޓLG-k7U@v  E0R/+3 +Stp pT:#Nɴ`Esu~Q*,=C `A0p}¦De<oB'Xydh3yI‚|[H\c'j.pݝK[ȯ-s T=S;z#0˹Ḳ} GWڞm⼕, 9 b`㆖F~k(1c)C *;bp8wWj}-1WZ2垍x܈١O,tzDrRఔ7{ꚷXmSJkFh6Lmrx4;޸%:3!IrJBAz¬#?0aJYW4V r 䕬  Xcr40PFzj[VOa%Xyi1Ki,\T+*h7JRxR>2lm[3fe.4=uIp])ؤBOW雌7OC,;MD0WG܃v/v6IPxsfg}&Px%\_o3|j80ُo|I!r5﹣V {#:]@5ٕSjc!o }|l<S,39g\6D2M1vrgYE-{ZLE޼ά˒8 b3-]i2r:&KU179Cȷ:C?W0ʾ;]F{0+ϢvSN:v |f(q2叞m+pwM,vP6sJ495.^F*;{'LwK7q]!LC]jrXG,U'֓qW6pmhԧLKźufϺP& 1ӝQ Q+&W( Hq_AK?RCHZs2Pp[s :h]x{uGˢMb:J>` xu9\!WmM- 5KE$olzuc"ϕiXT %`Ebh*lΦ=K|(,%NϗH# .)F}N3:xgC@< vLC/R׏8QnQjڄCYsL.> K/RzXbOSvKMT't9n WZ] e}Īze7[flf wDo6t?b}XO f8jx;JMΟk!ʒy*B`43΃e֤i˦+e!#V@v&;{#y 1t=6huM; DK3ZSpR 8E W HղV٨ѳW8}oZl͓s+{G);;sU7Jt+cXWvK#,a\f֋ky{_Pn+FI.*Ѷ"g A6R"=X4 [qWTم0PB݋z#`yo8F9F1,ޔ3f.sJpϰuӬh |m8lWߢ_fkyp҄Os* C;_J^  4J˒]xYrC AF]Ms/"x'824~?>fjG@)d΢RŖ]ͼy>A[7fLSuvSPPSX?2-~hLjnB=K !⧹kwX bZ6YLB^Zn5&B'7 -EI 0Z]Js*k9R DqBgtXEU Оۆ\-vSm/hu|A}z=wJN1)LrC=Ö& C/ e?Ů]djѐ ӢՌ&ʻ1R6=],YUNlb=ȒM֫4-.:pW- Ť[QSQKnw ]U %/%7 /sCwLqMeL4IJᐋ@:eo:4&@e~][hhxơ O [l$o"zl2)C }G f8kL34.tDRwT"W_eFz=1\<+P2iҡ>󖑰:{u!b;jT#ሙf٠-m؆Z)>NηXz'@{.=( 5}u*b\M(w3#LޚVuxxD~E͹X~1pA1 Rub9 \ vLKxOgr˿cocׄhA6J#Sf_A!7E㎇vQ쪓}Veǥ?'zi5EF¦Iv_A';6b3qd<&Bt)p1LǾkpzgN~ ѽ؉P;k7l8SP[-Gx>GbuQbigTml_٩XZA3'|Y# P>A;p7|bG䙒=Ur9JnyxyZ/-s%(lOwz{Xf,m=&ī[6_R{_4%wp%g%"ֵ[{e ˊ%*86]^YaX*"af[FAR,nQݼƮ8\xOJڈWdIn fQ9PΡ /q%?|((iT,][̺"U&/DCQNJ&`PL{ s:ŨFC~)x*H=3 U cz,׎HBћ]09ڃJ+3KX,|7(# 6 ԞH *BWod53fQpw0lZ]O9h@rffwHfOH2 ;J4Hd'Ӹ'LXݴNQMD—iDZr /: #!D`撙 E9vb| ks[ِhaB>D0WlF/es{3f)|YG'z%ޥOQoLGs¯C|L= 51cl)G>x{ME TČcኈ qxDx;4j׮̊z2 [[؄f0Gż5j(16Zm|}ҕ.zRK5a% "y)m#._?t/t|?Ӏ~(vKU]h9n9*"{h׉_b[5|j#]|SqۜCN7<-_>3)ew̩c"zc'd>e|tkᅢ/M_(vAq0݊K!399qbW3cқ^3^)eO.Ux?QДE3Gr 0B?mUƝ*"׵s/_+ȑR쯫KY&$e.D^` n^fD)kQV=[\0SCq3,M>l{ěn`Pz-cNOa=Q=*w'LM+uU%W/uܩ|-Z{Q3cnf:ǣǬyp<(rq~y+YgPc} {[Q8䥒cׇTm_pTr OL֍#뿈 ^Em״`_>xf}_g'CМʇeaov{i5yo/S_Zp cXd\&y}OnQPzNQwe\xe'2*0Hzp!Eq 'd~OK=]6oO{D_w`bkf!x2OVAYM"< tא]1+J1Y]EP/wR^]{vEzl&6wM&ZոP W:gGfvJU}>wjۻ:$ڝpO谺׼1 ҞQ~~?drBGB xw~ E7g`ocꯕ0-T]|)6:fAM__Fÿ9(W؞J>NE1)Mz[Ni2)c teZM ;ƼD6cJ^m-6ž4j_w[ n#ls]H9"3d4@O aMTau kI/ g<2KJT9fH"Qmmw 2G%d"myYDA/*ryoWK:mobCD-j36֜Muuu ׌9ڗHYzN7f.{MulN <*N[7O#WT{FW ub>oMq6 3 !e,Uc?_Q.p@]YˈrTl/TmlJ8 +ve9Y/'XT?,Q`laTvsK#ԾΞe#G齼xD!=j"nc E{<>}.zZJU -ΟVMLL;ٕΘLР,Bv@{H6u[wAGjܓrQDW $]cZn$9Pt!o o/R>M;gEjBj4$bbAus;YuL/*cxy*lsAp"h]xޭʢOfaE|¸T 7GUYSM")u8l}8ӌ`iEJf>Sf?` l15 =EV})"v8bR gKfMDVRҀ)Ƨ<4㏲־z3k(X+l`( xz]\*~vR?SLTH$nY*qyJ!CUm 'C`|$^`JHUm-772M`Ⱦ}`[1/XڴȞ=I\]WZ0Q&6 G"SYsշŸj؞n@GH2;"\t &c-Dki}5c-9*x@;ҷy捔<%>483%]E+w|+LpdY|.- ˜tK_/:}P(&oV:7hgQGr z^3ws3J=>@_X1a_4oDۺ`Ut!,Ļ刺+&G j >wZcgjDY/$9ʎRhgϫ9iH_搽S0}:;]5I~_-yq#k CW7_`vuxLOev8ЇK .Tʄʩ\o>ǴP4{SCءv`MVQDi4f?*"@ȇC[\vzu6ȉoaYH3ۚs CI%#gтzHH2xyf*\lEȮBu%ܿlu5Ȏb@CY(g,~P%)e+./[- EB-p1E}XlMc@*&u10?jG}5 ~cdJ-gg[//AbA$(2)"5FYFi% 7S4¦Toim+R޶7"*3G3r۾oھLeu =uƲnb^4H?[E`vKv@8x&lb+ FǙ6ws5Y}TfԘ7AmIgֈ;  d+!u_qb>#/\6 z{TA\)ۅ6t}KԣY\~e=2зXoT:684W%kdwc@:ZAaE6^xC yeDl7Of~% vZ [bvjD>' T_G73Xmc=D'&@=Psj|(fV2mZ9/'EٱZ0-b:;w%myr||綠kjj?{&'GY|hA|, Jd'q8yC֣zoyK{s󖏍V&,$xRDo]-x;edcۼO|?ᬋ sZѩdD3 |?V}gh^ [FQ#l0J^*uːZe¨ES84`W.O+5LƋjM?(>b{Bd1 wf2aC>0O(KaduwrCHa}Ǟ#+jh|7)vDzfD>=T ;pZ`g _COFչ#䯆)9o Eש h TCXT |yؾ? 2v[DgvR^c}n{1MQ'ĻgSQ;mGqgroEIЄ)NKܟή9CxZSݠT6w h\j/t;;d=נ! K`r/p*Qbq3>3_)BB['zuP `@/g#^ iL!"Ѓs7lJ|kC}5A\YGҚQ,8 ~cߴwn- հ 5,mN<*J 0 PE8F9}1cgL@7Vfz3hj)'1?='->;_tB ugߣCc|~62v*?2 |2-ZD 8N{'/8@9~Ԓy íp|~۾ / NH쌸ɕjZ@&ж@DdtG?ܔ8TxhFPcrRBs:zYH\и02w]7.D ;` pds =G] "vaӿTzt% q9^< 9PBJnhcpIQGW 4+a1SXд ^HPoT0=,E`~ZYz[c1wנ =Jm?EK&u xb >ѴZTĶ cvC%5?|zԍksܝ6)?e'mZ,a]h-Lۛ:%Tл{fA_Kz|q|I;:>Fu]ZG+ؠM(Іؠg8V_f$p;FWغ0<8c_ёkaY(Ӧc!ú.{ -$WόYɿK3%85;`"M;̔[,TPGm:zZ]-W} E=V/o}fmBdDɌ.\t%&G k/ڇ%(bǠgWØ 33Z/Փ1U_g cc5īԋ!0SC"ahx[l^)޾dpcMr~QrU!# 񏞿 H2}ٔ&ƃ#?3J/]B'uvfה~6@eg=EJ(jzSG*q2ڇo)_1O XN|O08R+YR~eHBykZ b2O<adUA[^œcPiL=侻ӈ׫ĩZ Mjmv" {K D>YWݨ5 &nPt`SxA|;J޼G2֥sF[b(OZzퟔul_'fm1PEנ7ksD:*{Ghz5DmJWRR.wνer~dtΝim<0?Iq^[ϧ۩CiUADGN5֣poD'~ȶԅx/:ݐ2Ms;L"q5Tv)-BTHCdM?-FgERvQUmN WҶM0$. ; s 9;(aMr#1Gs58#𠣝&MM;ٚWr?VKNКR?I %P*jy' /c#E[޷E.brC{~8KD7BH=I">VzME^Vu{."IP'yh`d'=د{h]'h^ - D=FYǑٛػ9 k;E#h-Ma? *UbGҏZA8LHbIY/C$+5o(9[*mt}BzIY6ھE\=gi&֫,&%1Yc+l03Yx{b~ <3atΖ #,&$5ޛ56 FJ~)oRJEm JiS!{T܋'IgZy۞$P,|ӼTcH9?վ-ԑ%B* vMvGqex&IhNs+D֯ADup62a< 79+m"fӣ(#yan}[RO,wQA.6DyK f]}28AxxV<.EW@UZizz#PԜdtI1\U ax/>1m!ڏn xƐ'EƽM)ʄq:"7ﭠԾ"y#~S8HI_(_-@3c=*]1+!`P5+Zy ޴.q]nPJt Uӌ ufXa{"[-jQNϳ֘s~AqFSu5hϠ0}7!l2lkA&QNĂ_c m*@ v,m:Ypl*xQvKv\lE:{*֬Q!Bn-[ĤE;Y-QnE}Bq @6f@׫?imt3hnֆplC\wPsD6F'xu/!;lWg ܻ  s^9 PYjD.&wܐj(Mؘ ˧]_}WV(tu {H=)yY~3f<83CE}Jp9$.at2Q ^>-'HPڣEo%hGR$ ӶiMLrqؘaO(9:xvRQBӎB~%Eh~Qcgo壎B-J\PwLBs(ԋOsf>";$ %o8E^|pk)CP+*O\iuSX |LŔ$D47jqFG^.bHZ64R+hid/}f7o*亏5rgm76Jͤ*nd\ xMdhljjOP›ŢrPiG: =llD/\3Z+|ٜStPYޣY㳃&R/]o||YT2hHHh!,تpvU TA<$Lt Mмona"U~h PNx|)1JMY<LJ qSRL 5|LY+ ߡ5DqAU=`ڔG{}05#>,LUnF5c%Խ.ޒ0}ej5ZKa`<œBCC~u]#݂*wlMm087 +*{6nD?vR5q90D%#5RUIB?PeߛS;sb?Z;7}8& m*Pe_g"" " 9)J϶Bq@wP 7 Kئvۗ:Ϲmnݧ^nK"T LWY/QfV>X-DXmໆbZ[VD$> |ek Sq  c^nYs^;绉x|4@W%#J荟NWl QX55h6 ͞eGGҕi3 r5^Yo~ÁɁXSBX V iM2-FL)N{8Q\cNz{yo`Ȏ} _poCʾdž%!A C}BCz71|S>-J4 å\VZ[C)@d?P"32j>cz`|Dlԥ?-bkXO C+{̇g6taww抍AGyƻ\f\##`k6̉m *TCY#5 $\A3Qtz0N?tVA|3'ngaNc!ssf_N*Q''q`mmpnN[̄9).#S)U=)Ab .{e(> Wm@` JJsM*v2 %a(!1[Ė.6"c-ꚙKd{_ __]Gw9^'U4o`ߚW7yi,b+b|Hy_pfƵ+ŝz%\'q8O ʍLlB?ڼ;lwTGcTG}!ޝP?y:Hd#;m)Z2=J+>H'!{K S2$Dr Ue<㑲N"C_nsL z1:iv4j4unN//!E6@&!J{[A4IBs4)}.Y/.hEa 8!,U",$YyW#dNODV\િ^‡7OpF%^(jj.VZ8xIW:sW&LY<6W0'u>M|F 6I"]n^n$VYQRRԲDS^T{j& R,Hdmvjh|5iQ s}5bH ycu_d# Q¥d3U"7|?xBLjoU oXqfE}AMh7=%nMV6e<ԡvJpqE#o|\HnmB\1q79ePhR I<,[WWi\w~[X,I Oϯ_;2\L1!i3כlpNҪb֓W}hiՓã bx>樬k5g=Â}qnFvb߯,w#|L )i^o|rRѯkMirgC'V$fl@҅_芓h"vN;w׮:>%"C*Iy֩V\kna#E1QkH ~Dtat+0)"6|p_kz3 &R&O2FRL(qPq*32nAܼJ^~]Yv? S WԜx^]zIZ 3g+^PVdž?6p itL#(/HMՁ/эK(NhNBц @`l\3$4]=-P xc .E! ,VɑYHkI!+}*]c#2P19lc Kpq__qJ9ɒ"/-8*Y~xȲju+AJOWCڮGݹc$@ @,S(1$kxPY,L`@E==ȳV4|ԡ]vaL2Ú>8r滂f"녡ܵAhhc vpa\kꈡ\n ~Fˀ Q{H Kz 7wr/((5m؀9NGpUa[If1K#lw8} ےh 8U{fVr:5ׄ G?B P," O8<wƋTyFvi!S_J4:ʶz՛֞OWp|oFaiFkVw)S+KzjߥT+Lm0]Xrq!Q!І- c*:8NoxspKL<;φɩwS]-g5;eBQ Ǿ#Y1{t<`SGt}Gi* Ot0m =GtTUP6q!*/\%-Y}{Pr2 [>m3ӋX"dӯǛ+yVg¸Zsu:=q⎻uǜM{f;4Nadx *"}Cq6w? :WD6Szċ׃ԓKd vV!X7{ydsYNV2M`Ϧ~{$}5>{ӆ= |~Em-j5f-n_7fhGrlW|zס}KOr S!MqX[+wHp0 uŻ&+|i^W d)s(3lK;$ Wgv;meylw&kHJՕ\˹k|\6z);uz#[1Q1TH^_8PڝL*b+3癩OVLS۠\?+ˉOـ5bܷ2Z~y[ ӕ ގtwh| ިN i(à-V0e=+BXgA5 {=#6#3Δ"i͔ʼO˜$LgmpVIDsRY:L۠w_QU+ t!'B+F42ʛ<\H\ƒ$uPLw5.]kE[-'TO^x\ؑ1T~$/ A~:sgֶm?MEʰڧ CgG6$&*H?h) [!GOٗlM#q;'o~*UNւCi_hGL[^r9XIjfPd}!akH(}*')z{`E~'F% BM"7ʪWco' O*ݢQ6Lj0 u7J`g\7p/xεC'E4|"/gE>]]z;.ߞ9.n_i>q?hR(3dr  |a{NK[#_I`8ؑ `p[^tqJ1~xѡ5+.=$pmy3qyO"+E,Jb Dm^SR_EY~`ۊds︶Ji7qPh9I:?qf lhOK<;~#J"?)4yЧ@bSNZh|y$^>*3 /Nl+ 6 CjoH߉YZfa//DxQ cxEL9n]# *h2{MQͧ]}  O֔wiAH~_Nfo1rMX_OtB *l5Ц}MBK>w֪U4}Kʝo]5@<sTS]yy7hUB3oy6|P!$Y2{OZJ " kkU80‚{_*J~.w{+ l4뾐KY @q[s)3JtMCRYE[ct6@oA1DWQl< Y>s8VPp ][^vw*D{s+چ*{b?'X"ዋivFYt@7#]A0Sƹ'0NhA\kzHO|vw>zPFg7WVR)NpBiOFa;J1ܶnA}+wgj*JfX/i^J]֋$`D r#u<ZzP4h^Wzr0n_IwI WTJms0q}2' ?3ufp,iiD.cޛ+nk v2*»NXrNdc gR'f@xZrzald ^t>*\3L0Wo=p!cؐ(.r|պa:!ljP \Q4r Wy }&c{ & c xM{@IKGʟTvJ9;QFZ;ug *8㣁>B% IMdBCI[+-u%eTəY}Xt'}N~} 8fp8*.S8C\B/\Ч$NB#AI W7rr@Rd]xvGלYl¾TSuT*6D焈EES qkt01eesk'e֪ɭ=Ѕ?g'_b N/wLi72"ts%$]T畺1^oZ,*LDKRFԼ_Uתb禶6E=o`Qx𕬽CTx+ >M#:ycL=qfS%"kfSI8/J;Zrs2F|\ I| }R~dkXZ :Y9!2Y,]~[7Gidؘ}rz7s]KQhDoÉMaE[~nNƃR0~l4StqLX+=E\mǧ5z &!ag_ї'dr*:J$׮hGu8''I"-mQ}7WL g~3_LYMMZ5=59<:S4W,6jlM;UWV1=r+:=y%1SFj0qv3P&K ƍ{p&&^~%~BE 5spBPbFYZh ps4\|WrwLQ5vŘu윦=W+6p4xbV\?=€.3໚Ihsp$E,BJjj:ѳ"#e8 '\;Yef)W:&Yo-)og c; X:RnuC*d)T9<*5+3FvJ3(06CgcKd߄eFxԌ 7Ӫ:*=[|ej[\l,3c X/2wwy3r;-p{B˻hۥ%dS `g uj)'aEG('ț3!ؠLC?:\߁%|эC􇳊:\QVFM3_ܻwE7-t3)ul/q:\8}QʃfdRVǁb[=6~ڋ:19T^0 )wתLŗ7oam@]"+XFP̠RեY3M rӤ?>}UB*(PSK:{o46&YUͿD y1^Aɫaf% "_S]k{v/}ƟRO0=lnʈz{'y me롶7$ZZHQJquFFFϹ7D#466A[ {}行I, ^*]?MѳSۓY29 Gp#^!IgLDw2H*D55]f3ܛ7p+4?MasM#eG\یfeu/]e%~Nީ] FZ=0x C޺$ӫle~T&8Fٔa>Q 8vDÉ<kTe 5_8'eoN ֣9{#.\w0 jqRnZw{L\%7=i'Ek].|ޣEBv^`»wˁzt/%/u-o[~ aOa+vk+ +`8v>Ʊ/h]'9!sK1~8Zy) hc7ҁ_T@$xSl?P٠Q?mv*NGG7Y`wM׮KG2v :Fvޝ;,TKXXFFcV**+v[O#i։z# 6l[?8)G_ҤKl \/򦧄Wf ar+M(b0sXz(xn\]y1hhhZʭ/Ӧkː}uLHoP#_ yM8Zх4k ϳ'jLGݒ_*|aE+n@s=WMƆ&> jM;68CHԬ]83R-UY;V'hˇjpM[6sSbJdZc>{ofw J݊i͋NwS#Wc[^ pM5ipiԵ.ze U"6ycDB*L8gXeho_)Sѿ%H,@#33CW>Ŀ>yq8\/NǑC5"ʖ#z* ¼ /em=.tէ7Es⫗4"Lj 2b_ե~"%3XrN2ro^wj-܏"+k5֔`Pd'mv;F`%Öt)ff 2az)`'ޝRPnQf@r~ Fb`b C ժ!mmm`, e#lpUݤt\m]1Bd/ ,*#XZ''m//$,VUfxoo<8`{daDIOm,97ղuy4a&$$xQS|xhd~ݢH -lr{4b0[L5? +  _~Sj֫BD]#O? 0_ 0$ui/X n.k@6Ğʯ4 We?d"_Е-N,Z,%JjMJ@{ev|g`bHbMiOnV:젚OJеj菁^ee㈣h1B(rѷSp4%P@Sck[q~261(rpxD!g~A_(4ջ!v@yBI5wḦ́{Nu:SMR qscX%-3μ&9KmTh20rư.nBknG"ڂUFvYv.OJgrOB8)L+|)\ >_B dp?By.6&xqgAAA6g 9 zQta-z֬R3mɶxT8QL>CÖ| D+')>'}Dsjdk!ƴTϚY ;nz]DLn,~ w^j#FUN0/(YBk/-4S`D;l-=Ŝ8g<,mS{ _u0C05#rPc: |-UQ5YZld>Zea |#5; T˺X*7S5NGwu d=Fpܝ(৙?rsYԚT05j%%g`ط]pbt#u.SJnK'489/)<@Un#l5FjZf?O*>ClKG i'\G򩘶q*'cbd~$KRN}Ҳ<&V{*Z}N^,w.U "\vHlz λ{] E)ύ#KI)^(Zı=$I[Qy4ȩ~/V.I;VKꔆCY~gCw7y"FXKfΌf D cQ,Gf/eD;l5TW^8Xl?XQqr n 7QH>O#WqIR}z'"]W~1g!s'! eҥhAlKIIaٲ,}了'8 :NM rPMyU581Yص>˱!Q@*{Mp'mAɨ"%nt Z 1׶_>7BVتwYm"l'ꐹl8?iq*h eG7Mέ*/X}y>́ډ4&6WX9~uטv%ڕ몀,C$,c;ȱMUґqT ]CnCy*,_޿żۡ",-N7 /TZ?Y' kwPS^VڶSY}aΟET~=5sz. }sLFJ~Dy ecX5㝕T8;S}:YRѬtǢfI¨S"9#v|Pq;DDggO|{vT ;6+Q}ي{y)a!ؿr0~k&&u[0% v. ׇUvKQ!LRTԼ:q9ٱ>!Vd,ϭlaRՄG*@&@'|$ЂC.e:rEkUTT,VNMٝa琼Hz5ք4Û?.n]ª^XnNHn?<珡]G7FVPDf )pّa;h4 )"dݴ..aדxJ PQRs_/;Qk CF>R}W Nq*c2Zw?_ UjAgf3u }rf>ӊWZ{ESH1δ"Hav\E>25c (xZ;c рi w&.CcQiZJC D-`9+(WP搱G!oDQq1Oܪ[*_Y4s=a\{¿\eֈvJb3q7N?|^[˜8vU]tBQ8r̷jh6|Hx,jF¼KqRj˯B 4T)ɥgjW_'WN;F+_+]ɯ%9ObJ1[$ Fm B7ȇ')JV`rg.mM97 UN*UmQc/)ymeeLǫTbϔ (3'/r5d 9,ePe@Ţ&U>h| #tו ja5 uIe'nw[R$L oggg'5)3NdE@@z$cBEͰVu u54ɫF.w)rrrhg_h{ǧ,$JP[RgI;tc -9<>g!sS/>ӧǕU8ˏIt"DYYÇo>'%Z~^҄ t 3;:n`YIc!}wOqjgj޽{G*jfD-U%P~Hw-,X8sEBu` G?7> ^ܽPKrH1$/192#nuvola/128x128/apps/keybindings.pngUT fAPQux [?S?ۙm%lC.}"s$Hb3!L 2RVaDK%E.\)|8gkz=_y)f/u>3߁FJm"ZdǥxmBZȡPҺ>!b_:E:wAb7&$f'2M&D C۞/AnQ\C"GXrbIqPH&v͑w: [1<3jg<IAp/e(0XBGB/vԈ(0x*dCy &շ,@ -Ob Ax "!Fs;c8}e'RjJV=PG$`=`ϪV Q߰%2A\MȈ]uF tBתdϒ<{s̲G 5`M? 4E\c@1NR\F}N  pm ӷ;TD}ۻ/EڢDFǂ\`"$ө0xDs5WuÀ84=JڐMZ"LuRVfdCYJ [fQKp)Bo}$%<* #'Հd^Hu&+Y4h:kkʐPb S'OXŲ&v4KV N[iSp^ۃ' AGUHս;Wtf )˧/]) C>~aŘ(L8Ph?DZ|4w_ѳ-ŰHfWMG" L M$;ӏ+:,)wTúBbnCtVhdfA·yFR.H-Cf!JV=}Yrc >CaHRhhߵ¸Vɢ_2bুI 8sOwec+ Vm`ّh1 ۽/`JȜL'0n%2DFe\p;,J Cz24uY'?bR/SP^O,@"c1QHs~`K&O&c!SSuds#aU2GPZ:CI~J= {bՖ11f.Z"c6g܃ HK$i`7DdBY2 6w0 pU-:}㊮#*whR-ȢG#&HWYC)OTg`).i8O-`4"W?Xk0̨/XAIɾ^{t]V pc0*k0 oHUX i{Mddk5^j=|쀚/S#Zʯw#"@>cq:K>yϿ;ۂ普]Z3U vE_ԧ웹tGT2۽iL2z\XY1E.*I sA35{>-s-Էr=[˰Mא:VVhxv } a\9ʨ@~U4uH˨[-9Wo5z+^ p8er2f K uaR0d21UGriKOU#+Gj~UcpV<ѓpTHQ,Š9Y }zg%V}9pW@p!oE̡`hWMa".MML;)>Ԣ&;]9CJ%ѽ\G|]pB~ VܹC01%$VT}KHgSK'W<2"50lA4ä|~ޔ6p0LČ b_=MH>x%?,cz&b' Ϻ. y]`Keф[|Z0"r3TW L]/y+[@ϓyL"/kENX1]̡LV96.'y}=AQ{ -#d]8XNLI+\~&)Kw l jk~4–ZaPtAYjo߇2>~DozFT8f$դr\' 1A"4da;+zmSk~ op8V0bޤn.f]EܭZǑru{%SvͩU U;c]~އ E= էc! AuH𫟭`^I =O!Nc7li"N/:uMڝ8PO%P+,5_Кˡ/Cڒn#-tC3t=Ji|:K/|s\'WTb{8{{u~+-5#x+2%?U0?@'K!Em$tEZR V{>v5z0p'cPkKO{|-ai**Ȱoq@a.qV'raĄu4}5:u1{ǿ7Rs\?l;Kj:!m& E΄7Z<=^ǔKF*)tB).;;=Eȓ>؛ *(%5Rx>@ y5L0^,f%q=7 峮25ʭ8,>bHHxC=]ku{$٨뀺Pi*EZV+3 Ui>@LtFPMe8L 2\?|;r9DU/YÒ]a%HCRS* ~]%!o<2z*ctcw"$iQIl_̯,c~nۻHnak9ٿ$I~WOLzCvqt-/c w`5~ڒ^͖FK4$k^'d5G=[B}7r(C_KlyFdZ0́ 先vQ A3@T&Ȍ:(r9e5x6vt|պ*c21BC-,U.עE;r}0^$Uj J εh ?{e?QxHh)?=~iαjIr]=&m+>e+"/[H F|%$H= 5q&=c\/s}#pOc[Rjdae~S'adQd|1tRn`YS_hL@o<)5+!g01DV>ゟ[O+8 |\eE@hHC;UC]sE*jz?W>*BSY+9elCb~}oHzoKqq!,Aw=WJ•-~$3&& cӾPҠH lamVQ|/&I7ș':9{=Wۢ3R'&2e5oԄͣt{us>% Zs{H R rjBS@nHC(]*^TMq AP~Ͳ>CawiC Rto,]#%dE}ȶF32tU|_\L_Bk1o'X H}):xehS`x4od|2o߭mG%V1] SjA~o~}oP}sDPSQf{^2W`]^nH\yi6uȊ&բKί^c_z "p3$8oi~sΏ="\ϓmG^)6XQxM/'a*ƽV6Ѳf[8u)^(1D2_oaaݢ.nq?gLeB; WHCw'J,Y:Q;ՒPd"!cz$)eͮ*rq捙GO^/W. Py[9ۆc, lvN%y|̒L Rd7QA#$DQ.zJ"F(&/'#&yDcn~KO&OϯMzb~YyT ao ᢔ`m^\ZRebEOf 9t[Mg,PY/_[dr<EDg5yTQ)PuaUب[5iA>hZ _~[!R"ǾWnxl̑Ru J#Axfi Q{#='X{(ŀ=~6bg՝HEczi]UK2:ߵ>LA40H!@(*EtaGF@ĒJbW=ds(_Y-dvzMbZFbJ@k-F"ǞU,} 1>5'}'FH$n†ߖS9ԛP$tU.vwLl/`\G(x2LyR&;82*a&, fLM!n7\{Ug0iIR*`6XS!*v&HYD:`&p6!Pl~߳Ĩ4% W~U42 5{z"96Iۊne6k5Apa+ - ^/XE;8/Q$P2~p~*9qSb|rB Zwk)NYjˠIFZ̥Bo9Ə_;)8(Ds+:ne(t7`nCq(^ߎb7ˌH2*uh3O23MS)*z:c gɃel|Os >k*tg񽀁#nsk^ !f]iki7RqjJk Y;^fsff3$vw~ۡauQ2W2b-XAE++/Zg|l Ϫn!'sc@]Uz64Ջv_TVmlu6n;qX䫔s,C5 #LJ8)P ğ*0kl5m%Pb)d2|q&!KrTJ" Wtv`~tR^]jQ~ __F,QJwȞRqj"v4q.-痻;aq܊ol1H V~b=BIL NN]]XY85{`0/! 5'nњ50I*[߰UڶA^ @SF-.r/IrO15PPV09 BH̵zhP ɁkW 4@Ww7܋; I3@xqO$gN21bfDn caCkR%3jDݺYKgxG3fl|h}nFDSGHN"|s:Qa=6KЕKݛUFZd~DV/i d@:H65֝ 2Eb/q ^BkfJCvZ15܊Œmʔ39P"FjN(1Yư?@ΎbQW2;,Yhꭻ}?WKO0dF"#Sp`mnnDnč4>KY*2{iy:O1^V:5gkĵ}5= Eq.\Êl8kcڦ6oέ|4S2YDT+^\Bv9gB{r?j c#t gEX%1cKK i8[Ի I`4zDJ+%,jG\)J\ҢE~ ԩP#uA $s!|?Cr{f߈?Rݒ50v~#2*jvxx;6 -Y_P _\)ŞJR wmI#{,c&K뚺 7#RTIGf=rQQ'5M^n@6 \vm׌kհxwL5)s 6w6.6#}n&,N ft'C,KgǭbV2onzTs8$@Ej4x?03ۧ 0HBQCg1^)V?[ڌhekѼiC :x@~q:1<*`1T^"]eFq,D'δA}`#oB2PQ.Ȍiď <\_3q]y)-E,61`}H"q]qfПˑ-uBi1W ɸQK׷GN*yv(ILyi|g Fr4"hXL{#_Bj/̭O]R͐$`޷_;1-e߿337%аBE6YeC ?n~qi弪ldJ 5:݊"ki8k_$@zKu B  pd)S}ZX.${`%l[#"LVɚ[vv7-wGS:h$!Z0u樱R'>f- N5rd4^ JIPen|u2?S@'ۻ037`2:c-:e{\[0OGwbtxmQ~>oy3Oi PX-UD񥘒ʀiŲTOR?lZ%Ozs`0N$_^,{\-ȫ+(h.b!`l"Ke{@[+ *ez ~459Mڳ ot3`d IŜ1ҷIUÒgOhpSw3VZi #|r! c95_7dV+2ue3Է&#{@1Z%7uwD-9 ~=eK?h{L^{+H7YZhR޶,fjQR:KSڳl_PZeh͒;}0j2u*,~"aٰ$JC4n?J~bͼPnLsĞ\r.cyi1dzC(lZlঊ29EpnocSQٷmes3%:Vuljk/q4΃K Ȍm+b8*I2Lt>"u E/Yce =)A|8 fIӤ}!f7.esOf(WOnjuBO'Nlh7۸t߼μJ}sLaΟbܼ{'.s#t4] $^/ V3 s "AڂlğMZȣiD?y F1,8i@#xE!yft`H9^=" Ӥ9dEeߦgb(: E9o*͆/ ;s  G\AiT$~Хc'UMvzf LUu\O2l QPkUʉzr̙R* lbפ-}Səõ< GHCޤVǤ`6-`9 "X;G!Iu,C@f`2h?t<_lg>[gX]ƺ+iNNn9!́ǽj(8c?3=cW:Ȯ/xxPVd91'D,cUǩb;QFǭMbEk{tC@:aR]\E7dK2I YifKI_\0Yn"n hACf 7}¯#H7? Y'8Aoϐoozĝ[:jrUMzW!kfykG1w82VQ&G *X!% kwoσ(O?`.I-̶,ϐ@T;8DAT7_ׂӑ#I+ƥaC͎]?X%ghF|9o g'?KPQN=c Z;ҩ+Mĺ4Fx )!$ GƕH+?^sroZ3'uu;;x R~N[ʺ' r9+$}?GQu |N>j03w]-M ۣ{C|ŊYrwB-kM_X R)CJF"|+$H~FNNڷtηXP0BSVÍAǿl`T H9,u%;DӇ (pg+"/&<\:m4:=kY,Q_Z~A {7&Eta#,*V{v ^M.2 lРWHO L= ~BJ* d&r(53;q:ƙ0k^g#&a5SvIS+~۸ڟ$=)g[weI q8 BqCLvZg/E>5~,o%' LI[8s B\;z\w%^JͿ&n 9爉j50bѹZ'괾$ik,%ി2u?F̅desah/^ I s$ , ,9bDQ+"¿/W)^z,#et[UMA vB+p>mB\lNan0YqZM>*9g CzGĥ,!s|ϛ&O @ZMmI2Iftv\K>KLͳ!JNⲖgR+{`zˏrv#aF&96w0yj%/f)5RZ1CI+ aTAyEI91=K׾s[~3Q{qF=sY[X+C\EܚT NR~Uɇ" }Jܮ7&b FjyL&Ak 2".-ON] ۙQk >R!MI܆!ٷnPRS Y]@6)oUR#Gl#:26DS_ S#0Ì26{2`, &FEƱmg{?{cЦxkmqsBMyj-}\ ʦF,r!{6%^}hV࿝R⯑N}sKgG^2-A=K,?=(મ[~Mw()sYwf{}oFa3mMb}Mg}6L\Îx'}'V5y5=D5a:;wi=d<-h OS:v~O l}%$4ya/"Z̧, ?g&&Q΂؝4ٽ-w8(:%џŅ|//?O- *h@Jh|kR:$Y[uA;}->߶ 3\j汘u"5Uc1 DNWλ(@zU =59cݵPKrH1Lw" nuvola/128x128/apps/keyboard.pngUT ԆfAPQux uYy]9EC.5<r@` d-Q*#-(+33s̬7tt8)>T ھ 'Vf*aS\;mylKNB y3f L2= :!& c<2 pN$=N1qǨ!1&HT.J2aM.~LrJ"jiEᢢT [#jy,+KVG75É9Jܾ}[XO6*x)ڿp2o6h'6 `ٳai1OdtNڲ%&Nm#!C O Dyf?yq@\T74=Y,8dc؎ocTE$U\Q^$:o1'+girov6{/~N1!||r mmOdΝ$)E? E&8V~9Jꐷk_k#d?rh3a|կWL_}r&o,G&jdrT-{e}z{ʕ:&&ұ]CQU$hu/Jx!ĵ>k,&W\"U-W;>RVJ˩+ͼX쩞rBgx6gT~fGw۲GXEMԃPuӧu rKtI{*)2RC{ڗNZ. qX|W!0"IůTџ|5/8䈦RCnrBIŜSs4AT?<--nӫ,nom:O&!ߕ s`ݺ֮B#[ c\`ҳ$&442,قZf`F}EҥvuqL+Ĉ<r 7?. c]-j_]Y t%:"pQg33USzr?\wVKAfp(au5&V/V1IK_QXWUH*t~K`0DЕ~\k10@4R^u>- OL՝+~ZȜEO3efEyzd雍}eq3(JhxbJwuusVcDuW$֨3gHVu E;)Ii=A@LQZb**%M+fwLy8|0*OOTvGiF#+u,YF鱠) Z P#DKsiˮ Et3STsu`%p))>Xa^7ۏ#c,!\Uw L<ZCVܣ<('ACfcW\\ a5Zt N-8T!}pm5xJs:3g$IB1XYƋ✾_Hg [88󅉠 cBU|KyoaG[OBj|B)M<} 0[ }yuޒMG$f2}W;Th öͩA5]{.[)n~PvE? W,Ŭr v'D)0940%`g-hXAq8* 8z+˿΢~3_t~!lq @#OytU MԵpo\LnNW]+ nsow5d,ooI9gY;(#!Ni.)U{M8̓bKȀ\ Rʲ4 1}ʔg@w@SҦfbT^-AMD~V9 s=JNңf3h:܆~ezXyY^K4Qt]>AGchdwo6ƺiJtS}݇C: E[b/cƊJ8%i;H0dp8+S$Πc۵r/$*/0g04Hk8ЪUn(s6B:w_xSXH*&5Hh_ւNX:pڗh:G!St01MM/o)EѥNjCZ چR4*|hi&!wcr\jf\X,YG*ܮ:'tJfK[Up6A5%Dcm5CP^认O=(PxC? &0Ӧ& *Z/\hҾa=Rs/ E*W]`ebU&'.@JD O_b_^-5eiwAoq{ђ 4&?:k)m />Vћ!u{H Ge[z\2#} V,GYGWp:}?oG T'NF2,߼wYxYǍC~7,=~]Epv.tv[ )3LrzGu_槵 >(Rt4'0i5^XB@,Eo𒭞>PT– ٵG' &XnTT0\МcV{#OzW>V? :hQR[V8!=1sjkTx+.H}*P,`\Q5O3zWqՉ2^Wģ{ q^z9g#>3߷m11QVH)gyx%y}t9EswQ=d&Ff%`m7 Cݽ>Aoj۞#sT'Qt: ?͜&f9^53GNR]6C<ݨFA~\chL{7eCKB$GJ.w!mD+fsUú˕[y g]H뮮'u"Kr.']eD'fg3rU:o0½ČCNyu.` c#f%Kϱy%s0iݜɐuP[_6حTwIUqum[X sox}Z5q@TK 3AuXEy& x zs9ƨɌy'[c,Uu-T\c?ֺBfo% 2CeV];Y?ko?te ̈8!(g]0N,]$~8 #># JIkS˞ER: F@i"?ϽGe3q#3y)9U}|ڒ_.$W!N5_h({,պCQ{Un[HKܫw"/4ƙ?7){N2lmW{VTUzz^ۉ*^N|"MɴٙS\P'#㈰9Y&0ء۾P~SQMMQ+]c%}t;u~ҭ*J? tA,XiuI[ewO:5)3}u_)-_nJ# VW\[ "WX}#Ys[.5T__}'<*qtlY/M/ o5@?I~Pƥ$3 b2MR{iQUK9rqBڿDLHq˥Pjz2DV=H ÛU.KHSy# s }EbuC!lZ̈$fU@ӟO85/(̔HB"^^^4ݔu]P fZZV(XSut'cmK V(F`KB,0e} N`4{S~}eP[U~?!*0e8t˫N]Cs}ρ{ҝHv۫v%}RaZ9za9CswBu:_nK*l xٖ6ʜzիҙDZ8/x"fkƩ "lXc:"m爐%sj5X Ews%бBH골.=09gUa Ml8)'CZc[TCOf4h$l5d2լRYa3 /QK4"B(<gw25 x'P 'HPKl@GPVOxcal\;ηru45J0?;vkRr&lLO?h5_kj'竴%LURyVwԼ9)=Gԯ}r%يyk2Gk7ӧա6SfsEfVc+3afӒ6&?Ȣ2 CO*ȈxĝQ*&LY-f*S-,bc$Zg^ Pgx P~ևhsZrҔͩP>km-O9<=ybh//X6Q!gVUbMJ處]~WڜFY \M0S^́]փU94I2u(3MoXp|FƮutRY0GaymY^ JV(yo6uwZ}̛N6ȗ<,@T\lǣPW:H1+H_r_&֮xbE{n x)e⡷!7z& 8ώAF#[,?}(&s{R6auBbѵYU< tDM{ Mgy'Vk&6_W^~3@ڞQvO,r鿰~2 nÆ58 eC|m}1g/Fe*ewcln<>C Gќ[jN*HbLM6־Z.7.yn MpӒotlp1Sm v:{4yL"uLh HH0(iѢ )Xm7iy3#> :BqEKG.i(8{STWUUr-[V@D~IeÞNINYwcHKy~ "kټyk^d}7Gm<;9A6+$茨HjfP '?{ qʿHspm-L4. O 7PKrH1I2()'nuvola/128x128/apps/keyboard_layout.pngUT fAPQux %Z 8~ws(6͡eLdsWR)o9RaiBߊJYTL9IQ·r}wzy}y}{ oKXnfXO5.#(Ò"jx–ذa'E8EwΔo Y` Ugcg1ЕwI./(hXKv86b 'li8ꤲL߭P7]1IyŃ(")0m{["Ltw7/rqFS ^[DTTsbង1o\'v҈H&F$űt9tvH> +@XBM%>6BP6@, "턜 r^(Hǧm\RKw'mꫣCMh/*.ccv|LLt٫vʵx@VAo8>"a n;^D7Iڪ 6RVo[1;Hrc2R ffWX<* `տA9΢g~J_^htĈVe^-%ti 3ŘcaqGm/⡦S/I%^Nf{G?yA֟0:~hWh"̌Hs exlrnӵGFW/"Cm)"O Xfb+d-̃[A67'aµS,3b*s  RFαCՊa k-Y$`- PߝdD7vz]Z <$]%>!MG7iFD5"SK,TIHmAb;) 0o S5Z Ѷb˰_I^۔#K %4]/e|pv k'AIէStGUEBHX@/MGs-0E5žh]U S 9`^ 8Q#s6,{T)9m+Hn; =*9HsrrZ){嘝v0l ?L v* .kyotj88DN= $W*l]?2N:L]AxrA[7bYW\JKqߎMͨRxJ=&, =H9+W1ި1|0$))RF"zeX籌' fS͍wפaK(,Gۃh|+V vX5 :~sbP`p}﷮>}y&8IPGE_x+g0܋s覃.pWقN)ΝLW{>u4󚟺Qt,]m"<+>2r=--ZL3D,:xM/J 4hB%Gh7ZmO)6p҆qw?ZcF=WY^N-~3p7;`m#IdcT\Fg8oqzf@Wxjtd.T?6T!U}W O+B"Z0MjT/h af¿VU8ɷ~g.L{áz|[VtэLbAlTvEC9URmdoG5t6Y fĜr>@^_Xn_[|u%ӣz#=¸z2,S"rfp@IKv7K2^e~vvC͈"Ud4-J8djohS=lݮ-ϾbFLZɸä"fxl(bOŞMg;G tY zf4N,Ifw]HTWV*_ee:~ݻ>yI źoķU$b1"AK5j>dq!PoW%LY X#qev ل] IaOӹo+Y,r/=tbTiƆAJ3uO)6 %՜6|􎲑&M+/+htF30Yn+A+oUch>io-]4 ȏDHkf'b\4UlZ0~uq4迁۾sQp{@0;Ɲ UlaJm9陲=;8VAX@_r)6+Yy>>uiyWoN|zuz7,yVGр.cBpŀjv565= ܻy<,*_iy'+-.^p3 5W e?t'n2];H7߃i?nBjN*g5xOj_T7G1.@3d1A`J"q+kO%.B磭KA<N׃\לC׸-OJW~ :ŸSt^"1>֯ 4{|w[PK?^U8M'9ơ U#@sɴ: u7.%Lڰv# ٹgA=ͶlD鈢%؄vE=}G4;ۘ1~5 gw4\m]쳏:HԤEnYU8 mHظ'j1P]]z\ƥ[UDžlm&m)l~;&q>n>(,1[AhBb]kř7]DžŹ(v%KF/5sE%-T"jHsgeTMOEz$ "+Kdu8[d}ʬ+|.ak?|hӫIIX` ۀ{Ce8\[Rw@rnodJoA"P攺]_9YYT9>Ƣ1,HR1{Q$4^ ʳYy2u܁ס8zX@Vg<d *~ɍS{jc>힘U뺤˪l&WE+*0ۛrp!#FޚhpM*:'e!~ */((D ݇L8$/LlڵڳpcڜRĵ/*W633;l>u" F ]l[@tO &r6+=]"|vqn.bݟ Ͼ4Om՗TN)zZTWq pƈ5d[DO)ݬʵPQf+r9+Cy 򫺶5PDDc2pv$[7-Eb;7 v4q|^#Xkq4B6I^doX{ Abgo+Xyrf['vaocQg<]Pb9\࣯a)bîۇȫџ]-a8їgxf,V,A\l{áR'wr9Z zžakUcqzc"i2}ufw*Q(}r MFu02?ފ׏hQ vwְ4$qG'=aw8DDf!#(B1` VV|x%{u-ąaRuܟG+++=Fڦ*)fcLT&c|TWmn#u9@?ih6rM,{S]Z5ߨMd j;&6antwk6ѢMln0usZxP gС { HB% :qccc9jeeqW>f#0w=hRf<Ёox<&QJJQF%`--c##4SC6ɜP`^[Du̠,(}m'%If~EpG)/< 0ȹwO=%GTrJVq5lb>d0EhvB 9C$؅LRi -1` 8)4TD ] h((2~%$1Ks\hR .VU9S 2 憓vwxS`]-]ߺӮI#X$S\%{o4S_Ms9Ѿ!3 T)r]((Z((w X4 VWpJQP wԯd;aNT `{b~*^vbsy8vNɰ|rq=GEy,F.iۗJe+ԬTh]FF,XeYd'&%R0/Y@DN1&k({ cN[{ƙyӶ^ im0gG.U2&+mG.~aJ!n UG]gzPW?3r] }Dfzԇp# ICتerx­3(%ؤq8ȸȈs84ԡ, mz-wy~E1D{=EHT}l06 qILma`#*;޲P{1?(co*D:"`LިUyW` ZI (J1 Ƴ5N ??ɲgi>|N3骬fosa @ɂS0+ 0CO5hC+%7_<~R;ݸA",^zoHu@}P7zo=EEWS>MU5Jl# VrM,vo /-lWՠ?PE2Ol1Wo闱҈p~fz;ŀ;Ɨ9AOv2Ց&6Rkג?XdC{Է\b@3Ao.}E+?qv#ϩpE}yfqlY}شovi( [C9Mw3>TVܘqgL@VCcHrh$ }:&n zQ႕`?:cAb]:BT[Zdl0MWmN'yȾ[Jxi qILcňz\<ж+WAq~Av#KoIrtƑ99f- n7N!}j:~0t??k+Jՙz,Q|{ W~ۥ; Qz-`gKohz![Vf&&İ &]^d]evjqZ5[e. +访*vҁ4A]>Իf^>h S0X6{3z^<~pJȉpG ~H[  ,7+K;xR-KWkb@*baӱŇEݲܛ&[_ yg eN @7  uA2TpѢ><o>ιe(SNh"y&=o(8I?܍78s{>Xy5wrAWcŊaqPg~%RcABR@RËQ^2эt8 |r}. a^P?Z-bv0>J$q3%C׾#L{ܔI0TQ۸rf1h?iP:=*`fj"f5E=TlJR=6ry u˻u*ɣOSj~39&|G(VoLQ _sjorP8V&It7߉FbCH^IKM-j,Lgʜro:ZBP닮]?Gu'Em:5O|!*T,L*5#ntZUt|[Șp1T&W,/tĸldurzJ@mL6C_-EZ1v16XYCGF 91'-:ӯPDЫ2IPO~49`C`$(C;lIi@yzB{Y{7~ytz6vVXk(qJ,>2g #<]nKJE*fOOSw ڵ| %z;=WDnZ"@7hr4ciȵh@"?5hs 4ID&M=/HDT>pywgoiQ:Tԝ3n e{~fO 4.[_<\ ,f[6RƗc)huC?~IJҙd=B豕4aM,-ߤ lQeLU=b Y1->RbeV{Fzc nkV'Gu8ZmVtZ RZOn=^6 +RAi pqC4I$nAYj⍢(}'5~`[r9gTHm@H\< "b_$e)eZ ⑊+:Iqa3 NU+e[adfE@n0ĩ˜eȟ@EnU۸7D2KM==uW`b9nD[j:ӴvM7/-ھЭ [Gj >V?'H8)T6a0T,;VbjuTiSǚ%"tyܖm%g%222899a5pЬm`n X{*C/+2ݸaj)|r$S0Zы2e^8]{"ų?uPt:ee(,+ÚfIO?ve k^W*r׆jv[jP|\aU_P{+{*\ bGX,6v\Td"3@'9U'c1([0\tiqf]Mt0U_oa#gJ,Hk:E[. ~*ܩ58v&2G0d@JNPI:R ߸%NsmX!9/+**n<<;v_Oέ$ vLgZ+` Oq!PxkӨq kWnYT]}]B)FeQJݰ6t,{LyB´è roH"r!~~zZwf 97e]yqCEZPRc>h$?$|vdE42⋢M2% l紎tomK`3BֲJ&&1䃔3 XO:`@f'(XNɊȣ+WzF3Q 5|Қ ikyA7Dy>Á+n[P˫nE )QA琲` Ԕ}ur0 ƧF- (7쟣#C<~xӾ42Ks bgj`4yQVI[[3{r_7>Vkx-kʥ )/Auf;߿'޿C~%& O bYT_ )0Di5<xf% {6YK?q[*^n2 r$]i~˔40tNa8DIh2;lOi1xj?&spuTtȽ1⸟ƳmS<^8,ҪSǫO҅qAWD3rc'c3;қ%k/0]foܛm5 phzGYsbѐ]0)sq^ @ѕtVyPDk^6tyTT5`rH3:@zP\䃓Dk"d{/H[Oܶ9K@8 n&JV#"P&`CKp[`GI[y{SF# o7L 3QKaº] B/t_PDiJpHF*-W n%{`pY֘)pLrTxA5l#s=چ<;C{v ٪2WE#'վ"iu޾z%V+]wS%"d220>ӧRziUqf3szYFĿL x(T-0=w,;)Gf <%OV{=D6[*4=s t"ǹWƘnֱK9vt7^6 2/ {gEYt+L5*FY,fql55lmݬ$LַjַvQ.}OUS$y)MǎBԲ(]?slj'&u~8Au68~&+K-D /쎎s}092`:Lzcf`v@8qH,YWJ%;Ja^[(XxؖS.x H}P9[F9X_Ok̫Ns"ڵ氻L$'733?QvLKЍS1 #-㿭:C[,Cٙ-8W!T+OV 7c|J^~{ ٴ6 3M- t/)WhH~[z%RWu EtNDx'D}t2{{1{pШ-x#xut`C˯Pʔ:/.VfsXBId[G5'fH th, |ebмۓɆ`ןע. B@~~[X+=ǩ;PB$'N EuYΦ MԵs#朋l`.}`XZ74u$b̎ &Fifc|Uƻ[4`4kWBE/y벷;y{֋Ls"颴Qc>[ x wn4ѭrҘ:n(v&bfbqeJ 6ayBAACC 8'KŹChW^6>4;V0S=06[$\f|cZ"!:kBVIsAQ:WsRq/xxmޡKOi$&J_|KVyHO YX)h`uZ )Ugzyb,:I.,pgeDVu 0 ,~}Ta >ʿ//:AG]Ko$eWqy#zy#s&{| 5`*䧡2DW*-^ +Gm;vBW UR:D'ٞ)!<.?~X 4$|.qiڶ2VJn]~2)BM]ֻrnU&ӋtY%v&9A*)d1`q(&0qT̨pkP1".~";Fќcܢo^ƀgY\ :[Z߭OO*&b0WC2S_h~#5$~ۭr MKcS`(.*&YX>e!&&0:.#a:L#/OV@P_ E>^G<rJ Qϯ袈:yhzmRnW<0} ]x]lwU8ZSOk" /^1̖{La7\P@%4U փ`&ݮ/Fd!Nغݶ F~z3 MrBᆹOy,MiASͰ;}eM g}6ƌ}Mex?Ɯn"Pj^YA#^/ޖIT`Hbbb)$vLPur:d! 0r1ڦA fc9PeB`65t(Z}ޯ!*JTW[SŠTؠX9 $D/w'0 ڢx'~)+,S O#kgt/ES.qPwi)߫iy툲v.7G'~WXy?E*5U?Q;GfГy::-vjdHG>&%4OLD/EHM'㷳޽ Y>ohKdtPaEp0Pv?g{ݭdgt#ع:7Άw1)wg/#h Dd„_7S x?H֞O{ا.hv NۣCpdIhIR|E33]*Ƙ\‡HX=[gbWC!8w: T(uIK6/Su~@b1Ã"ıjt7wDNJ~;?;А$РC&Sj5 \t1Ϧxլ*Yy\XuOcz+qE.:OL|ZP/d,(/%3]  dJ]D ЍTo@w5)Fm{nH@Q2zNmOOPXϓ'Ɏ֭byB,c'I 79SvH!,e;WKnDG(c0}7pKB3YcjOLq|g̺bZKO3j܀z~w%%O+j:D ̬&־10SD5HM*ڎs9᪖T֭bMow3rAl"$ݷ:bY5006ԛ^[#vo#߸C/qMVݺT8ZM̙ ʪKC-A+1N8xKk%%.5G)j 9c9GuQ^v }|/vP{PҶ',PypcCct18K tE"<O7By&AbVqޙ )@ ~7I?ɳqSSֽzJJ -~$E؅bT]Hrݯ,2D8=@)[.AZ0t9i@]+˺Uҥ%7-Ql{zoÐU%aGǧ^!&FW 2oj"O44Z7 *Hi"FXb=?טf'c0(QM'o2Snd)5pkNXL999z <]|/L QlA000((~V >Gu:*Tla!OQ(.xl9ᵂ˹} mE0j1F'~3C 0P2`ӊHq%:nrD_Z v>s3 UB{B'n; o1?(Y2Vv3f25QpdWcFl61(>GƼ3zVd,[pdT(+!韟(\79Ep]aJXJLnN 2|%[N  d c? U%H< oKsAܸy%9j8/R۟Wx#!ߋ൑NhI\kȳt@LkQ9Һ@87yYa+`y>{Ax|A]E'Nס%@~Mնl'R]~/F$-EmE)h i/֜aoe /AU;2 c a(؍~E jX,N6}xVG!o+ 0Htx`C9:] Ï UG^؜18y">e,qy&I<38'r/HML?QiF"@/ώ5]i~FdIX&%p9#9z!`9i?[S›lM~hLKFTfUrb)dMQ- J*7ެB͵&Z&3>B{R,aY[a|SߙE%|v jg Ź$94Zȴ=y>`倯t(CW*㜓xKC~ϦWMfiM}a~E9SVjf?]PTKtn&ah#Tʌ ?'_+%tbJB+ܗ^}O=;}. ySn}߂{*|V\ ,M}hJ~\M~%s2 ОE3!IaY3eO&| \t \拮됴,b6tY٧/KI K:^HW'0IP-XS~ߚwFػX2Y>Wz4r YHzPbtQ'JK^q.]IF"lwJ8 Ο6"/0նc*|͏qWnoiJ` d @zDd|C(h\`U#k3Աet~Sڸl#&^{Htͳ) se~}7̗2 ؙ[à*Bf3n_N:DD@&dS(~BwwXf_* l< W!Edj0{v6[ƄCŤ ZCkF8bgT- vPZLpBC!ٹ)"`Q N_{dWbxe4 /!8BQ ]Fj{tc^12l{xaiş>keGZ?>uFcu@ubF*oG lQz/v!LtFPhV hϮԌWmmI%`8bN7**Qƿ M.¯ KH!ڛdlZɝy_,O`Nڷ-zr>P ngL7]=^w?g,~&}DHv~I\:/%aջ6 [έ֔äU$doD$oAqW,'aQHpN}0@]yE_R[{g_JF:!.B k(P,_=ssӵ!'ulp4jq8fTnB-Pl ?zVH Avs>m]E)LpxJ4emQGI43{O{Hsm"ώѺ~I[N<2{4&eϽF8V'kP hTUuKȻu|^u]r{;V載^r>"r -{sacv%x$0@NEGFsr{At0n 0zrN\--4dnv/Tw]hs/eB7Z#4$I^M'"[{9bSNEڧ cDbE81w̱T:U]VjƼ&&y̾| u)L:'}]F!~*њ3=Ri%K+dQAPy@1 lv⟤xA18-H"7 nNT ]P0o۔t+(Ԧds+B&ìf!'hߪ58LQvw{S_8F'n`&ƜT )fwH""86knN8AuG>x.hc>ܒl>c86 U3vwMo4W~Uv^PW$RߐCSݿud?&>Wն w:X9Q(goVSW)C ]ElSa 7W=pԄJes=} @m:,ɘXܸ oYɄ8D5a95\w5IЈыFNQiv,*{nٷzU#ǿCc$Zf6^Av8[yܨ#DJQropǛ<8;&b8iƦEQ<}k_BPZ Jf'2Uq1t↍TkJ];#.8/.(+`f 0!3DVIfAUN<%w0ǚÝ;V:,<>~ݦg}g'Mz :q~\P[jE޸׊{9ފ;!K4lA$^FMQSnbiutBTiשWjRg.τ{0'gp mr(=ES^7_q>x=%ߐȀW[.ggv9+ㅠX;;7֥jМk2!Pq4kqe* CtfZ=3rPRx(<3.?<)qCG됛b' mt;} RNE L6z>ӈ_P꘢\'o g!jx&`O cUvQiƲ*hq#u{I`o3VRӽX466liݧ\ot!yvIuR?)%pWp6(n&#N:N)l^qI:Q@aT!ϭU9KUҢztOIECR|W)Pb'Az_mxquYhpXXu:6YHFhp,Ak/ÐD呧6T5Ka1qm'u"@IjRun*XfcSQB՝b7YTC[ &Bn΋2~ VweAM zX)vx† $ۻO JQn;i=D>:z ژo˷mK9ǜ i1Q/ZyOQ9v @tJE(Q1CL>~?}M77ޱwu'. k{հS⯇XXGuyNGS8Zl UgE k`KXmxo}u\gʲ<l awo68EW59GY]B~_^ȷ->%PK(qH1k)qHInuvola/128x128/apps/kfind.pngUT lfAPQux =| 4{{bls\ن$IGs)I%3%2%TdJ;E(*e&nLu9lg;yy<Z6#h*}WS|m| bkPݲ]24I"{"co9vOXm/=$3jN6k2Teƀ07ا؏ RA0׳;BV%H訨5,햪x5ɓ6o$[Gي٩bڜM=G:.Rz Bq*{oΈ0&*\nB5,pI e/8L.59F<1cP~u'=#&[TT O0[ɑW t`I2I;u]#j]p%RG1s`/~/swDg@6̂"F>פ9OujGmo$NAy-z*l6$yIM.d$idU G/N"JNJc4׊D/3~A:]˰ʾ-x^!gOaLu[9!& mL>378uppnٲf[+M64#H'zU8c^j\{)CUl$)VE.ZjZ1<щjlA^+:φz> %C{̠c/NYVqϏule*{N_VƫI8p Mgƕ#cyv|(яGvCY2b6,-7A-o%?V%DZbE+6T)6&\Z8(5a.-g%rIwupB*nE>>hLؠy"HcɣO%xiN,\L֣PJؼIbF1sֽJA|s·e.w\Td FnF,xh -)hSY]) Yr{6%*;08&yFGu١eYLʌ x,.ƦjT1B0c~hwlLlʳtzMWxYdI 5&vƉ47ISB7+0}-o;(+\e~eΣ^/3Pw~>:^=s'Yp>:dQq**\f wNGYGKz|e4ц+*u~ 4 .\8Qvϐ&Çbd?@n^Wkn+A XW 9gٕ;8YאlpL (7:hɆ,hQ|{UbV"YپOIތjUTQXDfm\ -_]$K`Xԁ 3j(hUxEN6={FZVe0=HX T32}}vƦ6ٹ}q]+Ш)im{N%,Uy7EU<ago9<{J0#[P! YV˟Z/v2q@v6|TDɟEl_澃Nc^QaQk} jSSE1Qԁ)Z7j#"rK[$4^pSm03tԽPIB: I6}gOE ֺ&2'xǏtF1J (+BwGFKjm+!E0׌/.\g|VJQ*m €̀ ۼwDA=t4]5Rv`ٛ8jH+Ro']00k?vv˻<%k9KOnboQGh~Ђ_|MdjݏaG]^ P0c3sE)58m8 `9~sE&]]DQp\EdEv:vL;bK5\Ud*8C_J±Oر5Fк bY&ZЀt> 91K`wOsY0Dg daY^?Eo-&'O}TïhvLBY⒐8wSÞrKVHWS 颣>ŸVdPI_SdnY{W쾄['ewuءCT$@2`s9\dyt&翏'f3*G|YneVCfOBn wlmm 5&Fʌejx=35::\2;T\ȉ:!g%$e %gxdgLI&7P0([`X5/ìc K~%vA( rVmCټƪ ejnp.kw@4UU1Ew&av#c⟎ze( O{KDnpccYQ.|s;\Z0f ӌ?~"ds.`>A58iJTQsʟ8SD%9b~U [byVQnqmI{Oc}E-%wA7ծ)9,7vN4R?JʕǕ5zLֱiS>yPNJv8SJ*)P,o1O+vY<@-t!PQ`\p izTZBፙ9Yq ŗQ I"7k/)p{Yb+]b'OLn'tNֳ<_$%WĄ*R=K S-||E?[ZIVDt^NICǞ[i"Jd`O*,FgmqLR环bpuXDVp)sx*^AM  +&|, w.TB8ڃNw >$ԧh(-'R@Ke$MW =kF5bURq\'0lt sqwfvP)s-"ؚY`cF[oaEV~ GX")g&ڏ-X;Rօ <%Zkѻ2-k8Yo4ua˩@<a 0&󳇂/G:pe3J5:*<"}iޯR)Ps؉^5Bڵ' Ě!1SU-;eQe`:s$hAr l!.r5=c5Bp:g* I ڝ>de@!6d%뢋t|ʮ1? RtlDjJd\]1E"B|Ώ_̝*p%Mˈyp;:fkM|P=KG~5{*|GnW67. EZ!z\lA[S^jNS*Ψ`9x8c^B̡fQ݁!) ܽk xgE.3`ID3Rς\#Lk2:hC+iw RB8%)|ʏG:XXΐړ?6A<R]E9V3y OprIqrF&,n>6'ķV:`/RqKKztg&?ciXmd°ˉy}HxCםt/46Vko`dT|Fpo_6t *]ݠy~LʶP JP(r?ዋ܆k{7PAU;w(rx-*L*6b4iLFP8N/I7blwE ?F b/ /D 1|IJd;V@JJcs4!>{c0N`lCtYln%]Vu:*л}o{!ZBwTlcW)d 6^ͷ}#ۉsmP-@{|FJ_1FO!E³* %ISc`IUlzuTʕ@+9 J45ncc UB1W(N5D@`dZ~-'SDM2Ntж->H_({YW[hPdiqBՑlP@ɏ(Tם'Dw.3ogux'/V Zd~?]f5>`GJAG61PHM#[&͢h->ӭ ()BoΙҰ|6&_줕NZFz._? rJa-Y[E[!$<$tx<|pVo|ӤbdW-uÂt&ͷT" ثdCM026T@^A"ɩ/ [DЈj ݂*&.k.j)-+I3%| j-aܹXO@9/+Վy̥FMKT/>)N'[,HhFbTfTR)jD-q=T%_w`o=ؾR+Z.5s>1L!<v8oY~}[(j"1So'I/ Ֆ%~žQcħ4kLR!#fc*[-8 ]m7e[7~lCBLnyFԸ`bH_[ލuCP7` hja*y%/ш;͞X"/[  M{ɖXa. fF!sliLvyE$J6|:e`3߂BS1EHl̞à 21cQp,S! ;;ע pA3=UdWޓlEz@`YZja,Q`" ' /wc}%wcD$8 GBfiW(Z&v钺0wOEK8)hbB.Q/m7H$iÄ@Un"@iPB_x?>H%֪r/RPC#3xAو*AMBugbeb%[ͨЮĩ$FX!&Z'j,G䟱 '@13%) O!$5ӽA sD9T*Xi&ʢ)!B?*Xsy{M +QhS=c2j^v9wnB*^x8eW`lLG[]-\3w%~* '#n;ul nO􉻑ـV윁IP%m?2YZvB)Bձ^q>;O1"q2Cqx>~.o@aL҃|a 8*˔.n WPǷ~oyZA_u'A:Mnǣz7ON$ȅ(o=w 럕Rcä qBW=[*\R\yO8[XURT̩N|5isDT(3BB#afh#KG! `SsD(̴Yh8: sCMMж53#ݙ]eMԘg!WW\Fh.rRk!$[p_] 똬d(ԡcW3sGkU`M&6AÅGO4Tv.5ycTGԐlv6:|@Mߛ\x!h@i"xҫI7[~mʿI=qu9;4L(L݃;4ulمHOȓLYg7c7QŻ٥z96.>.iAaD{NL= WrXl*Sv׻|RE1>uEmtyO˅u~/Grۍɩ^YUJTVW^" RK\֥bw.|kCq J+)A/GZe/"Gb9bk{(!Vy {2)=qw49x'nڷUU"K06AvS/xȭzVaܾR-Ǹ&o}oDXx,{;q@[P`7lgZZib9ta.Ah8@7 XGNHmWvj{X{%a3k5cA60'oiioJm{5Yx͍1 ux6ѠPF]|ӿ@ԛbimmmbBofl8477woMGO$8'AyӌhauVA%mO#y2,^@&:7ʪ@.Ԗ.;~ ;[bnrMXDh:vvPz6rwVmOINKp{JyBTV'oa#rd2Y-m~&OQhjjZ9$MW\< vq&V >J߭yn]N AWz+Ǧ1&lETofܿhROCjųd[}0dwڞ晷՗y!wMY"y '.^ ~G {b 8/@3} r=czZZp Uq=GqEzj9ZT m=-,M#8e}YFC-x^s ]Fy\ | r; 7HH+mL4 tVBgfͭ[UmɌՄŨky`6ؘABEPطt1dS.M'qO`. ŅMlÅ4A՚ZӣuϩOxJ\7 Sܛ$r&-t:M͜Nsoh7z_D"Uvjܽ\(wGer t1vHQ.ZFdIrxzY+5Fn-_%o7GK}r J<[Y%i^sK휙w%u/RϢ; S {0naxe,ypyr+՞VMj;6mUv5\CTfܲ2Ы. vn *\A@웛}?;934S(i`/woU(pgR@zUA](ejE0ͧNgvt}MRrSp?!h>O-Yp(Mz *.XNB*E=,`J@Nl''=mMPx2|2pP\%FS̅zȝsHk_~xƦ?.aWDif73%-ւݟgPE(wsn| s婃< W W$MGrdhXp~-6l'dNF$K^3RNa``fAF*?}Sfi\'HZK+YJan:F30l"mgQ/|X9&X1xLf>knp|hjn~ɛzPʁ8Rδ@yZDnޯ6,r0ZFY\|zNHy6B ~;xEͨj]^i r9$TE[g;ݻF|O*N=l~/E/ߊ ч+5sY|;VU-8Ž|\Jnϩ:G|֦א07JukmhqJWMsYYW= n)L豴XV'..0X>eSf fв=ڡFs5Ed8'Hb -B}Mvz10;*5KN3Љa̯2ƱjyxpiPyAc?.cw9cFNc2La\(rQ~vl[+Oa'jjGdkK2Ϋ1iCwVd͸gkq[tUN4ZG =$"o.6:eŌNh yw}L_I_~NrRdjkDYAS-ǽg |l P΄C߾dɷ--j$۷1wB؀nvy Nm|WHt gz~/EFnK Ca4{$3MPQ>BV*pnrթM= ;}tbmA97o*JP~{pVt&ׯadl 0fnkC]apUŋqNVwZ`fV?s~Rʾz{5sÇWw%#YMt?&|н7J(f%bmXp+K ґ ꞉߾?9QZ0ȡX)`b415{4*S`&~邺OҶm“9|!lziOa^TΆCuꀏ#KO<>npmH8k" 䯸x eɅ7n<^q- ~gv=W+HdaH8F,JWN4K f#L!5e( 巹v*@ڳ 7E1N _s=Y{'?$14h½y!*b33-Ntthܵ¾@ >5fDEB&ETg%9/B3}˨Z6)wk;2ϑa\F(V־\Xs=0(%ªt?jgHkg!f/ y`pps= @VQ1еdD4%*'1,| mNW6ak .Aj۳VҚUƒ7X(t|.8\e dc_꺘k r%҆qwR,^'s'%p8/ ef2_3b8YqR - +C՚ޑfv\/A|[#u ޚ8 )Ȋ ~Њ*3۶;;S~b'N[xQ1L_CoO*8"ʦ)y| PWUd5 )@BjXF a 33h y}.Uc ,zlT)\亽?˗B"Z+n? |3*= Ts&l7!&S4ͳMa1?a+kT\7bԣ$(Xf5Y{R+0*uSgƑ| +cC_msI;d/Q=>uv2~nNgąR^w0Tk=bT i}ao υ24Xَo\2QyÚt@ƞ5I!: }RPWxX@Ab(ISI4t۷ƥhiۗCCCKKVTRqg9UǓ&uب%JyFYJQ\E .;PEE?5~']h~3_c13M!ylM(\j)2׸3ۛ¼vpVJܵT=]O jl\=*j˭˳P#W g#jNvL_Yy0;<~?k&݇S2}b:HD,(U ~6Ǐt?)55Pq:3SkIp)ZX1(d"֭ܺe ΡDEo '"15Ɓ$7a޽Vc!϶ V. -SH{L)g_qwc2 8my%@rtM i) sԁ%(f9PPFV@c*rAvȥB[)GO0ɖ%_V_ӈrW j -Gݵ8Z\ OFe8r39ts !,RHIEgȹe Ggͼ WDsJ}z7ǣϡ;~ %@p*[WKTTo-WJ':N kʦ[]-?R}R/:V *i/_B'ЁީpϣպLy4Xk-Yهfs&Ÿ\ߤrw;(補7oY$>m^oEI}X"_`7ǚ2-6&W">X1Ğ|Od!@2_ a$St0+m>?. G }jnK4F5Qi X"0xgһz$Ϫ  y7w->n.*^L >V gKF-p\>3N ww#"X2i^~p3+QIh/Tq0YeAk-I3Oŵ=bčTH0&i~.o,W[7C(Ц) S[-vA]1[|}&4鏏U3E91Vaf@1Bib7l,PyBp:RHU?@5MۼYϳIWB}:<#ԥ͞}ʯGI`k6Z`}CU=I"eb8k9TbCE:RtRjG!|B+r/]SS㡲=QNϘ˓ );[pʷW3&5Di) I3E.t]GTc2WH9qI.ֲ|yL thb[+®Ef# ϓ%}CoU^QLyBO#)ҊoE MOC?W-lf~- 33NJCE=(w2^R%ok̗DJNN4VcHw .D1-}>KPD BL8(y#W Ex _jtAih)oݲzrwB$֌HahVקLT=~<řBrGQƲ`JuASJP5IW<bhHe82W v;<e-$R1t@Қ>?aYqhc/Sޟ{cfV-}V!؝ؤWG:l aa7Y/ק4sG @YGgpD uB5*+:xѡRYB' ڹf9\q2zoTw=H!.3+UUN`;g6Gȼ|Vv2 &HdN,{4-;,0#7@bnfoƍ7af]%l$3 P_͝Xl{U=ƕqO\?2.>ӋVѤ¦;WNۣ..ؕ*VMrytf1|BL-,WktozQ *8:f'#:z] ۷ -)\+Җ 3꟥Nie2ELRm$UU5N}M׏8萦؄ؾsoSjQثWb  ><.:?@S_ίn%"KZrعդzܛA&^ب`/-Y=U{,r>ckCX969X+VK͟b-z* dh%QzXmdcmds~4s)O0WV fNGd-+9L,<#ZՖ63~يJSFoK KV tfȚ )ӓ/{Rk\?'75>i|#0LX<؂%D :!I禂@Qf3THCzuቀ]}pAa`<ī̯ύ($a3u 2`7[QP_0.T%l-3 ih8:߯C7ZLrHU iSES;\Z#4kg_>,ZBtX'54Ж3%w6%2kB>5!xr/ d-[x;7oZrdJ=,e1n)pF3is??Eg|)٠Vle/kfO;X[X|m8boH 2wO@iNܴ9"'T< G&PB6lQՍpf–@t_>|w{s0K#kf< xcSyee ^}CNAt v7x?D0/jzo#cL=GŞ޸UeD4r sUp Wn]tM?rZ#C)V ~3z,&DM?IYګ R3>h6|׷oKe/Zlvܽ}{1Az&NYO? *ofŔFq1lp}.O1O5NJCtɮo9~^v Κ4H!3yw2Fe jmm{48p (}ur&Kf PR+|oy3PKrH1325nuvola/128x128/apps/kfloppy.pngUT fAPQux {?k%6g!6r QꠣKr訒m! UzR֙ 9*E' av}|wmm{ YBS}:kTW7T}J#:Ul+mnjGw/Or};cVtrd 5`GD\̚1Z:R rJxp4x4iXP.g?w/x5Q+*Dͫ2VL/?2jDD4;Ě)GX.#Vp%TQ{1BOk ҚzRUxDDA 5ifp Qv@b^>m=w]%ZlϘasߟ|YdΓH0soH/onm>5ׯz -;MfTmH 觡lPfdI$0YUhO$pWPJ;o߾m-biT^S$CbaLmBsaPޚ]'J ^Khwv>}ݗ+նCD&V^b]Rv );o98|A@Wa???C ~?5\ofkm ƒh4{X8Φs00э(ݼyuT& wx |ODTXleJ >˱l*To[HN@M(=bGpHL`ٮ|(e3 ]& EE%uթ\+J9 |^kԺWcQSS31Jo\ITGCCL:?i֔M$$pQm99?8X pccoeG42@?Ƣܐꯋ7T7O_=YŽr5Y/` \A=IX,ƽ45NAӖ{fe0sxG M C,6́ٳ#A98Ugơ tH`3+HYti6s ܳPw};^f_9I>a$n_$g(S^5H @k[i1k$%9?Ył{ُY LyPgӝXHz+>s&5{ىT[yYBfzN0|*WlՔ >ZGr׍pLL,#іLq#v: 7a '=EXr^!Ǒ2v~VVH\/SppQc^Y@) >HsQZ{N o)f)f?ad ØDB`bA=72X9EA0σ H:BR@mA.HX=Y<Oe͂5Gu4i5}B_`%Tg&1z4J$p1ccsYL|rQw{rSgkz OuycyA]vd G+,1KsNAz?4%w |򛅅D;Qh96XW*ISK ƶ9+1Y0OYa%/za24 Ž d M[ev;sH{(ZܯK8iU(4eeYs Vl^!D`فaGQQO]ӏTy 5#贙+=uhUl>ЬFh)UY`ERQڝ;*^pƉ|EL7jZ7RKD20O4}pHdM C8_:<">rzǏHlz <5 72㼕&3b%gܚ$iZ[2ʂi+! %@?J5Z**۴9S$<ݣKN;1BWv)֖-DOfDfb.+5$Clщҏݲq"U L&]E4tEW%QEwrQ5r3sn[t& 4p\*%xet 0;"]\d.Gg&;i~HEo4H97ͻ1c%+"f@S*b Q*bMNr^ D:I9GSK$y8IWl31VA^ӚVK{^lyB Y#8.04seocj 48yON.Gj)`.;w>7ca$pjFT&7|69:_QS4{{r7D= #;p!yb"laQz V_sh"Xr; GW%TmVƯ"{wyM"~<б/Pew.p>l` ?:)](@F*܏} jVE|[ Vv"^dq}hFk}3(JzA=bT3DSzيF%:"J{I2PzbCPMMU{tNb(i+d = V}t o.b\agui{>gDl2L$U@;AbmBMV߶k3ACR"sLVł/i2TwPx$mM).Z Q()ƕ8kCD [?[RK^-L 1Yκ#"q/cd\zn>mJb%*/9jwD<>s]U2?!)w4Q{2/`=լ }rפ$4Թ}Sj5OnFOczz,>JQ Qg:phmǕ*ڳ^M笱BgIՁrZe+`i1plͦW7^Zp{g6 {~lj67,[vzX󼇻RTޥc;&01"dW9 p%[ҼWnCdzsggX lgڳע w}[禫ۛQ;#Ff xgܣj%~eIUZ:\[v疇])%qZ u@ GA#muOpI1AvOY*32cuo^X"AO~Ӳ,;hci A]жо=qi& kk8HSMA MNpV˽z½S;g/ NY^ŝ[(x#͵FMÚD},lqq@8Iʿ&) `ѣ Rvz-I08()Jb˄m! {rٽK7dD[ES [,2 yni(B(9P=6#r7Tu"t%ʶ@ ?6.QQa9β9"EB̟O{c.*\2fe>V:&/fjҼ(Kں(OuLܻ;ȨcԻMǬ愀Ow!5#[Դݶ +=8V|74)52_f?>d,׎bhFFo8m`bW谶% .jӕFiNXw3sJ/Xyחuf;ܿ^w1jKP& P7Tw!ݥ]ԫWe߾%?+›{ـ2R0*? 4}V4@еelRǍz>Uy)Nzv?ԪJ8 XS^eO!FIKpj;MPkRPe?i젞?D67_PRM/?[wn>DJtom3B7 S(7c_[Z肙ڡ_ yH~#IvɀB6e`8@D0O1bP$Hxy{[ ч{xWaw=Kܡ!i8<o186DW:kK7ƌI=[|R2Z%_-цuc4U |nLU~aV7谵tF_ZII oi|qrÛ`X`L].I(ᓧO|bk%1r<8ɂH(Uy~1gvQrWr/eN #x߻q ˯s>-Ԁ6Ug[ځ@p$g_S3:_P,&pׅ_.|ŵnE\TZ(% łAYdBzhaQ蜤Y4½XZ5o``#~ 9$C C gI(ToB%PYI5p(F>7e\j٫v tXQʝS&RU~2DFbF`fa]S'Ԏ7"O ׬ YLs SS~C~mDV<;fLR^n=qBV.;N7 Iv4,=ӊehy:K_D4r7Yӊ$׽7iSzͥ+rR: czoZ5s0kź7dxM9bBsVPT\;Tj %/ M grв1n*-G9E9zg2`iV'@ʫQ??D35繤> D7R~:II|mb<۟èY p1"2æ>m'&aPњ>k|l|uw둇d|fRm!{CX:|Gfqvz/58UֱPphGrX,,hzNDkKu~=|얺&AbMe''75OuXzm"ˍ+!0dmto)w+dw7n.Z}skTw$j*p'6Y9v0]`ul} Ca5LKj/uP6i <69<8Deţz!yw}!`l` 4;wG޷mVaj@Ѧ/(##; ش_ %u A 3[)-ڢ0h WdmZޜ>L ŭ'4C+3ΞRKFN,mSMƼ>L&ԟQ/94T5/y\o k͗/;ݛ[_кGװJY A%209yøaa6mY&td Y$/޶? wΏW|w+L/sx&2=zhjqb$ҷxtD4 -EMrggQP۫Yt[̫ܭasD0 ݍMQN ?.qVswy/a(8J1_MU˶W&M'Jr*`5z~¬W5;LYJ̎pSEr(^:zd E꧕6ҔN*p F߃ޖ!(F9/Z@tX1ҦjQXcSĂIIO2Y]} hDAWj-Ĺcgd?ЁˡpRE)⤈-MEz?IR$"4w%̻'_1C׮;M xdiD- nOMN|5JLx[`=}264!6zRKEWDf߿70"N"49S@uJ_t!<2R{8x BٽF3 ԕ#.]ig8ԉtWC 1uR%9"r@GgFa3SFҖ_g47-Rh[IdVr,2 x>[>+a\"^P+o:v (zGS58HX*>?s.sjq~h=0o%c}_M _|vzo1b$quk|GpI$%z LŸMo JO0lV +IAs$ρzPUqb)~tlKy򚞪ß㣙7-Ӕ%з*&D o#lүC|uV^;Z`dZ#7yw58߲qXW7Bz'FHnI1fX!X R~Ck7nJ8ʌ[+be, ZZ5ʔ_on=FB>!xU9bp7vk,@7F>bȤcQS'/<_$yglJG>>J fKf&ZW9GFkI9+Ύs1zR|xMtc ݽ^NvdH+ЎJ-$E'68(esOrk]/k^.9~I6L˺WI%mA̧8QY@P/ߔi=3P^ cg+{mtڑN)AapTE7<3uA7OEc{ )(VkC8jJ%}]?Wpr߁9WvSx(iK~m6_)}ѴfZR׭(,Q^ fXpx>=&N tˆw=Y9.q'-+K_l f&aF]Hk RxE/V2b w e窡?4ZrLdxzgXQl~Q-DžYZ WbgKɐvZl~ MY&Ssy ;]QX>-|U\:@RzN \Aot4-==*h|V?]9473dsnYck`h8ǕSKYWIDJ9\!zs<|oM+>BBD!iS7$a 8Q^E~oG`9dhd2[[p׽S}39}us+ni[KNnklY('Qx{L4^-32rGbR{Uԥ|6{m>}fM]#c G9%Q220rio]I ,ec.1ɽ% ;p0|19>[]aHcz-k2 P>[ISM{[ũ>v7W_QEif+6һ HbXcX}7X`uZqAw獴x!TjKp%7g’:61Y[nffn!81=wb+K;hwrm700m~2r&)5c%0T죰3!՝0# !wIUoύ'407ޫL0QK H+ G{u5@fȟZ)|9{ۘ22DFwv X}B xXFD7وos7IV]X?x&KIRc S Kx(5\a p2:-ĈFHdO^]`I-ǫ {#@Je >+\AB5/ˡ dhB{n`  }p(%J%O|-+$K[g&I4K86AQȚlqy>YԈ1b[Jk-7h "4e>B&6HsǺw1ƍuvѸ(O:/PU‹"e fYV},7&.7DyR. }.L'ܢ"DԏoU\%@5pBvȟx=fu>r?'pWʙ<P½aWE3{U$;wKZU>IJ4r|D9=bǺkqvkuF{0@otŖ¾z\8CySp#|t>/'gdDMDK3;ifѐBS$N!QtW~MߵkQPVVQF4pLECIHBӯ#zl$ݪt`vUjjrdAzox]_ɿHsSDp ElJBg"?E9@vxL4ȿ=EIBUU䎴pu+\ U- {%'P)C!X0)4(4\k1%hSd"}!1`i#J!i#^J5/`C VG otTJ()omИ5x+K VxaX"e?O"ƃ{q!܏T}0BsK 㱢QWp; y>xliHDXp1 |osxG6_5EdUf{**Pvk##?•H5h[2;0UQ\v /R+XU5A%W^+.~*A`q)w&>;@!0T".?="\]{. I w!)z88- )t P ?'"5+JK*pD~S6`kbeb &BG< L7"[G/rI1n  cˠϠMf81$xf(?w IIn"{;ߋb W#lJg+L'HtfӮ_Rp G){bn!:|Z[ wp:0Ws)@3v0KQObbSFޫ (KI07nxkgE4#E:3$ No(AdQʓhDB )dfNs8~ҒWvCRZa8'+F{ E_@zzT,u= R:5[]~f##!59̤=,_ !eLhJZJ.%be }>*0 amlea=G6t<3@ Rz ~Thx#x6&W S<.ɄVHՐ /cH$GTl ce!ۙNRj tMT[ϲu06˴+%|HB ߄ 9KWPs{o 2K 1B/dTht/mUn ڰu꧳.E9Rp$RAcXY!OΌȓWoA"hicb&f0Q{ ?&tWSYB<5P]TݚF.f~ǹXu8\Vj/4G=Uߐ!SoOb6}(NJA=ڭ6xQwƧ_$Ð2S'hm#Fyk_ CfouH샌gWfEDi9Wk4{UtįĀODdj[3ĝHm峣A([+\J\֐`bmiBy@#b{EQ*U\Fu.'Dvhi8I5p:("(.|14z'x#I+@yY_t~&8#OYk (;}H*-NPQ 7|O Scۯ'o0Ιw5;}8m&mnݞUDHicOZ:%]"s4Q z$? 4}-$*Yo׈:Ra+-zJς;'݀KO緑08-ԁ<~bz:}`aIRA#l^\b.2{C~"Om߭vͣet'lȕf$D+7*@~dŃ3'b_ ι2π@;^[&C}U3pycDLLX.UzmЌ ƠH^P5v%gwyD:e'34SvX3$jPi{z-Zl˗5͘oߙR䒶 4w’gKE$<)/}؎ѳ`Ir%bE(?X銞h 눐$CCkKSMfT*XW;wfF^gձ[ 5Ӎ1Vi|$a[BO@+݇c~MBr"Cd&-RV-RtE ] o%AZmiug'iu3x&n;:; rgPd}+- &0 TGZ{ɏiҊ7f&3j])"Da: +njW&S#+(.8i,߇~ S\~TGk=q1 %^ =$=ӌÀ'U*».13ۉ~=ӑX "B)!MmfIҮű$bbO9Z܆#I24Q˼.rMmnm33ciSH(O3yqqw&CoϟCM Gvc[{"^leeer./a+jm2Hfhk~ rf]gdGQHC#{ A" 0Gga簬!8\=sQ2H *kK{7c]*IV˼+$ Js⌍,B[>؀{ozq;*3aT-gdۺffᆺǡe;Pn(0L0␓B蠖;k?=+y%:K{/V?vedZ-B1 ccY`ТP@{f@MtK#y !EnvqĤ$K^3( >+Do!1fߨczw_C)qd7t7*#//Dm_O> qqʅ W]I"XTN/Ö}OOAF}TW݁6%\CwTvb>\y§>a?t m X(/?gQԥR _l6k`s`lxjeW{>91`#1@鯯%@r[<K89}ucqwy$Zh>sk_$y.6*/H yw)#C7z=`&)yaO!Ɯ߰WU'a$2D,$cC>5>fś9|V@7KJ'ȩ3.Łe)R#*ޝψX}B\Abzv3;C;z&45~>|;DK?e4z}\@DE9`u7^`o/0 \yP+Bp*M$8$ xм`IH@-T~G,lG W?/+ͮ^č+lk?u NEU-xSON@\Ƀ bMa r"mpn2`u BCdVY鈝y᦬ fE#^4gvw7J;Z%!b }[Ǒ)z6{Q&LL]*?+N0>1kM痳[yTQ,"Йʆ#~12~is2CeL-)Ѐfi2~d_r] 0W}@_xہ k߮4;e-OnjU蚨G5-|Ls-_r4eޑl4]9W%Uo@5b~2+U hon~""{Q։]B\3j!tA] ~7/2y&$W0e>5=t5mS8Vj d*1-U4Nir0 (9Z({@Ҵ ~0 Qeb>K }9j rR>i=_2I)N7wE8f0}5wYՏU_9&߻g )BtMߍ鼓>('7٦s-t}PK~Dn!.q@6;Vjq[aDx!WQ h[x͜!*ûB#`4>Y)/0{Zjf"N-*S,}d,A¯ ڹIJ~_},wiDULΨPC8FʫBD}gL.vyWi {XV2Rjt$(uϧ_CBs?}m=ࢍX;n8%x }p"3A7lS^`Qg.Ħ8v@^@3FC?͘|C3dsb^V.L7c2NF#6[PAZ^7('Ũ3'Aag&"Dglˣ1fc{<^CdːUQ8=2!R+N]EEUk[[*?ᒪU:j`uhrlXU+ҼAFv,{5&k'_H^BBJ>)eEmR|9g<ւ1mpehٹ%g5ԟ:]+i%ZoyL%q?Fix3P?dTi†scEW;68wuqwQ-L?u=Rh 1.ZWb^T7}amqz;r[o:T4鶥nPeq#͏#)) ץ3g4p?`2뗞Ю9B\sR5;mQm2.>wn٬&]I9&b63>n6 De w7A*PƟ;t1(5aqbY9_4RQ9/6Eu AKGscyUY# #X"?C5C-2u@E3e2(wK zz,PPBnт+?Tx\Xm;`sC?6M13͈ϖ}}sm>')r"xO*vW$#?%8ʪ^K&**$lTYe=Kv~rM@Ĝ R5,zö%2I2ƞaJV)zv; $|Zw<ሚhm˰!gݳo &3d"G vF;|רp\N {䙗%"隿ystj?&[h5_'APO,+^>=YXn#qizښflZkǢ>XאIX0^t?9C!bՖ`S+*+d/J7jH]x.┢݊`v't<>f]3-C:zAQEƱgyV&Iu, Y{&MWH8C Gq^#u^lqE4IRW}6(̫z *22'ĹmBYStǙ{{z [PJ͂Rtu-=Ɩ諀nɗ2f4v5{o 32t~׾fy0Vߟ(KLeQxS ֥Aj])g/bU-k<0TN()';kҹ˃IZK(Rpvzq~oi1ش*ܰsfmbf:hęUD{%a]$H>PBr>yދW3&0m訁m ^$(~qrirmՏ-uH9 W9؎{;5wЍ:U |KHxP|Y@Ўq÷TYg0& 5o:Uz剱؃jGmc?Ҁ͟f&霘!Ϟ74g Z<~^ܰ#X I1Ld&{ °/.?^mFpcjίNU!Æ =%D!9"BJftb kO: s^{Ľ ͹e37JJZz5l),Ja ݲ3 =b-C/n([$'s,1"qk 4|LwG}2>) lOh4CilcS8<[K|~c Q eh2Jď=8EH?PKc N1vz_N7O nuvola/128x128/apps/kfm_home.pngUT ʹmAPQux |W_$!!@(&"%^D -tT AzW ADP RU@J 'af̚{}Yw+SVf~fX͌N8L=0_n h=:1bohG#j~;V6Xۇ<((Є 0F͞<6"Z1` ˆ0m ,!G`5Pz}„KԳ8C𼉠(h)~WR̄6 `{5#sf!هISHvg&V~  ԇ@$o"^\Ծ!-l#Dig9,0! GLE剘Tkav?"=;qG"2C]BogEԝPۈ3`dv~i:@۰A a³Gy53zFn[jS O[Q#ju@Hqw+O+۶۬-Ӡ̼=%zȪ|f_B\1yOm4রxY=ɇ|SgGƳMdE/\X67 Kߍnztj(9mQ';n_JZ5DF6l- _=ROSصr߆ger>..$ZZxG+i`q-(.*=pg&9c/Zو*z@䓵nu+'[᳅SikLs_z hg5X`xT-(  ̬ )o|UnZbFۧ~tYPhyжa׷8Ɩ^hXvԲL/2ֶVϔȦf^/mC>5J|[+l'7cdzzb!ͬ !U}&{[lH9ednlhIYvmᱍB/{+i9?2\@U=@ϢM>@ }z^ZqFٗ=̲~je;&iy<ytNx9kM#}I:xO $+uà?,6zՔlN! Տ<^8@;zx+4ůnHŦޝ1\b?JWAj9yTp[^2P `ƕP[|eE.Պqe|L)߆΍@^2xD)Pd4giyiN$5ޚ<ϻݨ˚*5# _!EJ*YsnݎHݽi U׬ Gi{:F38Bo';p3ZǥHP`$ՎO5l仙yꈮ+PhxS֒FS7ޙ?6sTi9_F=Bת4]|KZhݍ#/\!کᱦV,ncHS_٫Ͼ,+~H. %MyG3OwJx\H{_ OŽX|G]ѫӯ|CbѱkJ]jݮk]VI1zS<[ô[_z P>W<4S6x{Rs?s{.k.>HQ|&9#@'RllM QJH(ᔏfW#tJZ{O 'v wY;vH)}Hbq#+&9gh/NaE/ Vg7!sn}O+bO3^WӺ*fe`j2 Z7Xnv[_{К?+4?lxM=*Ҵ-&^θi|ɣ^\N?fo^Y>94FMopt諾qKXg"JŽ+tґYw:&I3'o#ãWk8MGq|O.D 2]?[j. I(q>N[hOB]cL)ʏm,ɖ`D>0+y0ڪ/apxhd'Mutwvyy-5J"U8M[gU`yAVJYM BSԃY=Ry^?7ӌ󚁲6*#(=;0%tv\1*fm['?\wznrr#mү?{w휹"{|?{W~p7IM ̱NíGҸAgXd|K!g)}s#5 ߦ%&EO|p*vJ`ޠ^Xo[;UYuaMҙ;}7;Ŗz;Ț3SܺƊ-2¡.| iǢmcjkG?| v\OB9?1Z{^6{{~mSISf̉]ؤQ8g{$ Hocp׳GݰzXEKV3ckd7W>|R4,K~G.u;2~t ?vYE ֯ 9^^a}`߰sFcIT\c 5nOܱPC?W4Rm8|-!eW7l%60~f3X~?ā?zd\޵-~g`WPr:XJ|ͪQ dvg0qHMMVvFPȷRoHQÍ؈jC3U%\z8R|M-Hz-\H2c FK,}z 9uwG8|5LGݮQ&/q9@)3R tK_rFxS.3`^M-J9&}cr, _L -o Ѕ [*hLu~$#įg]J;+@&߷?1Ul(y#UT<a׹kT]'s|8mf*/m׼q9? r#f7;r4_[>hus.+]KӠUu<PS[Zì꾉kq24 Or)OBLQ7EL]L" ryUFF;;M?$V,%K߇u Ydû J0Ĺ;qv򠍊7sqQ^!'8{м&|cR>c7EpE*%n y(/؏[E/ZAQ9c%g]gdxary"?i t+( B(>G?Xؗު!ZmÕžXT@We[e"yx]grP_ӨlpG *cK6U٧ȸ _qU\ g.!0=IA. xoٙZ^юÅ,ŅaO$J,S;gru"]IuJtYU{_|(.w/Ҭc(I*A|~ƍ\u3ç 14qLвaX Ҷ σ4OnqWw"e6ߍlvvh蘂F_گN SY5_>Ͷ8ۣ`6G oݝU{G_gF`3]Ÿ*XRREN Oĝ6e[vaV6=^ p>?qa>ܠ_Wv!YLR_O?S"Y(Ϩ/rRHX>.^$Ǹmq8i7n(O`p>|c7 xiʧh[՟^WrxuRu/Vt0}j5>Tw;xFBtc Z}P+W,Phio{Z'b<)sonƋtpסMF޾1.?'Vr\ƫ䩟uE^uo @➻(B#e{ҝۗ+%MަZuI&Ô< LYkmOj75*UAy} d/JW/Ɏ57s ZL1xX*wy?I#=xo8jmęjLNkP)wiZ.fk}1\o_ Zi0hѥQ> ^͎ߪ8T+x3)[̵YRO ܾ*hhNȰĪTBя:/reH 귒P|_m'PЖSGx^Rz.礪(Gָ1N Mr/=mYSvݞ )Y sҘ&$,gA2IA'.RDg> !aշ'l}qCl$)N $WNu-F[6w 1la8-~w8Iҫf<`U<7t/ez_9\׵qW'񻗡G#v9&E4D\0QflԑkgM;  YSU rctA){&\KF|`$U \.ڝ{+c +Nխ(;1JjF3WQpfZR"+0+s$vY/o)^F%yfɇ$ꙵ9j3@Wd/,U%*Aÿ%@n(BxvGȴ`ҡF+a{c8ˆ,o6y51D}|N'{1!Pc{\ dj+2(Q\9u6h7P_Sm?=GW~x?ޮBNx/P*GGG}>G4)E8hZR1pƲxg4@}F/4ی;M\5z&A 0l Ci>@?D>;` FDd~`7q¨;+LQ竕?:wv'lO#QweRϫhO6pE52?*kH6@O5'$'Z7-~ ~COgfKnfkؑaYG"P&&%MY[M ,ꗞ +*+G!qYH|!,"(mbYQVٹ쳲څw I !8[Q6ڷzt8b1&=vO-6oS|/q[\p~,\٨C=9qqȤr?z H]o_ߝնfk54F;>ܽhu? 99.α7>f#TiY+yq+3=e,M6$tN^ K\+An;L5fAVd} Uׁ}4 )%&[*9rkA|h,AꢁSlRܯZܭ'ē@I7芚*< nZ4i^xx;a]E$yקo6I!LCW79Z!br?FBCusV9ĔKp>[J% _߸{ iBOOVod)]]]'7b'mT3͟Egw?Y,I ܎k,͑A1}"p7 UowMG--롻 sM"8ܧ^0j SQ<=02:eͱ-_V>ҨA5&bn%v,bvJݧT E@vSqFWhI ':5#3J v"W[ٜ lw @x}8@"%S1gCUs~Ԛ+z>=\Zc +I(ëŶ@Zb|1z QDa>Q1x82TkC2C> w.]Crg޹Qua>S&BLTlnJZ(Ѻ/-)] Y_lHn18x\nR_z!=w;1a3q ֓Wp+v0'yvӸOJUeP70C jGp^ɸNcxT8Ŋ% C>%.#{Q{<"J`f*TEΡ3WxbNBU%ׇyUlc 9o\7|E0L?qgQFqgOkLTv n\uOwK'nx]~[u.Ჟ*h=(Mr3}4LdnJsMtw!d$K^|˄-QQXuֳz$[TعM=Yx r&K; wߛ?]y/;zŏʪϟ1}ky.yl򒽗M=F+U1A(Gm@ωh#,JEvl"85}pC|<f_FC./kxebbU(&6׏;j½W)lĞe<ZYJeӰHFt>yW Oy RWzbvvD&5]|Ҭ-Mxh:7} W[C c'L_O RAGW?ƥnvƇq?YxKAgrլ%oү1{Vb~e*G;-蜦ڲXkU\'T%è蹬}^w=16g-9FlC 7LF5+*991IqKq FeYk܇6XZҞvBV ދ{aJ$~+B ̤/GOX i)P 1J<@],eޟY﫚 e7" ig{/K,@vT?kaaI+_6-(` F3 4`eA(YlV8*ifߠ\h|>lQ+Uà LʾKxz꟝!X\PN# ;U'j`wk)tWvUVמX9duxY̺b Ɔ7]1_<0]lFpge(02ʹK5/>#\ş.v֒l[JsƘ^2%a?:+h6} _IRUR/6xzF6>0M,KmX47?S,1w 瀳|]+T&&lεZ37x`AkKGpuC\Ώ|iUz#hv_I|߻\J2=z17m*1gZBYlT!#^ ܳf˃0˱!=H<f{lzw96~7'υ4unGp*5Г SWy\dYM,PUhyB' L<י-97n& }T: {nvt} SthExf3y.ޚSEiHDqsXQxs/Bz7B_S+O=rP21֭]n@))Yfcf~=g}w۴]GSRWb{[ZIUsy "|л͝\PfDl(s.z聃WαB璍%eJ{e=0` 2guȭ) !?v78u-"d;5oGt <D? 3zzA*X8=|yzz˓1ݛ;h09sYŽuNR[ s]_zTS$q%=USx'4ڮv_Yw`&Yxvk{|;c(K$ӠKOR~aD̨$fѐz9!o_v񳡓. LmNU@04fwe˸Q<*n0cDMEK:i>{lcŪ\':Q簂9koj!^Rhw\m_^jwG/}Zok+b#޺; =/`Y[U@Qj^l;B9ac"š̍}J7%ٝ=[ElI%YO(b7ӝsm(6"/ sZҊ%Js fO' `n*Ƥd +:/(df%t3X5 IE j2sRE34uN4m2_K81]Qvd/r)HFS{<ledr;bHKܣ\Uq!! `%1RF E11 |G((Ț]6豝\*z NWQ/ Y3P[߈QdEaF)F=@S[1b?,蛈F:4?@qDY)\½9co ٣skeB/ƍ.fg+ x5 g0T->A'Ba7ق8Tx~, Syo= w=N5 U`?kPQ(k{" vk vC9"ƕK<5+iS-yY^/BMć񜞈N7$b4s+sues"ڿ,[p Ih :{u,(E˂+)֔}iKqy>L((ROp/%vm%J] FᑳuJe dXF'SݏŁGfnZoUC #E&Ýǿ$|WUIC!8 ¾3w{Z >6oI^qHI7ė~$V udA@՛ndRP_zѠm"4-Q9wݽNJ7y`O]tK;9t~ nHpzC'ٷw챏m\r@PcZcE_HY 抖M f<@FY VO 8&*Q,v3vKJ [7j!D2]=ƒW/H@(/vdau]15るI \+ k|:"K"a&M-  vwN>.A\?k"q:>.pu4ӭnP}L ^̿;` l#nY%8t0pyKtϊfUrFX11OI%9 "qu29=p^3&j放W ՘k'| |B]8JG[Odng~@ZQNڞ%GqT;|kL߃DNZ4Xt >)4h *C:|Zcơs#/-395H7thFsqW*ч,Ʉ-qh (/Se0]-3suх+@/YYx8A*+} )}͓r*)M~2lKe /`.?aw[W1i9x+dS?F.x׿4ms 3 $)G{o P (2L X!qU&E$,*erxeVͯM ]1JRe 3y~8\x [K 4;|G'!F0 ³Ah"?w#~7g'Joʖ#ٮn ²I{L4?n7T#KQѢQȨ>75O>*U$N0-p)LQ}$4 3yba}iX;kog~ԅ$.u*ёs fц2y59IXZ:HVPu7U|fK*janXX2go]᮴VIK* ^B(Y?66寊Y@^ioBاCUa9c bF613[ "7_x)-Hm=2.ßMr,˻O.0IiG}1B:ek'56}0E*nIB~"M!+H PNl3v.tBtn51ԃP(Xb<: ZζbRQO<6SLa@l@ $s|+i" au]2ч]IN+x"b`[\vKkz__|؁ܿ/ų 3$=JD=7 Gބ)3݄bR)p}0Frq8t,_KΪ44+AɷUV;7lk%7IR1{vL_uM쟅0s (myGTUO:Õ@} 's(8*a%hvTwBuZp{,Z99o׺~y7Ƕ8ڱl"'~It7w\@]\H$7!OD@iB٦ 찈WU (TD_5Y,' b (.yDr4G5;ݛs'=.`LG{[lYkUT5o>Dȗ.zq `=`n{yUkzX D6l]FXs'92h=;cc|QzjSLY Ӟđoƒ LHi?%?c26&K pR |Tg*ݪU)t|D&"MhݞFƁzϙD3jg9K'pg.*yn* r>xc]F} ܱDb=̤9f=Oߋ2ǧ#㫫aqh[X{n'_~q*2b;]y5.oteף'-zϋ͗`*tF+Nd>$a~$́2L6@{cb4 +#g鲧{ '>JϿlG#EĎ ݬ[tPHV#5.<Xfs0lw}#),_t=*'\ pdT7U!+ŧk)LG# tNi#сALxFO~Y g W9aC6,3lW| O[,GY^N%9y'ХFaauŰsI/`i53&@nG tK͔ZSvޔ%!m'Jy 8\jNjUp•(?Ud$_])D!O4$/%( ^@?-{̄:@=^(|sqƳmGD!rN7 e[A.@B$5|LoV?Hz ,Ν>؆]=`CB'294PYf * 7MvW9{|3PO z&vjz{a2!c/h]Lm6vlU%R $QɼwHנthdDle??F4d*B:I\bT|4?gG/^4>`6f<=flwXouHR*ƽ2)J'k6{1\]~oH@,Ac|~g7sP i#y@Vc*G2a@:΀:vYC\:l(E G=RBE8`0ps0w;yM+74k}-q1't 28䉘C ZcWhz\q04n|ge7 szf$ 0dC뻮ʸQn`Ji 㵊uf Dzw_̉ EیuOG عA`Lk@溰p1y/7H ӆHv9]Wٯ <%<'}d+J3E@.\DݳR_ϫa:eX~XҎo(QlI̭ӵ-{:Hj )V!)܋Ǡ'͗ٝ8ޗ& 7,,qoEoE``!6>X'n{C8v$>^QjAiؓmD#2zHg蚰2zr/}V"s҃LUTvބjD @3?k)(^_U/dtO{\?Ox0htQHAw=p+pGiLK@xޖ./"Xi?S 56۲GAϽPZI/Cy D1 MY.yCw(kg3Sq>[EdkU]OOBOt16onLn+ނ2!jv;w+J]zo=l[ s&xWtd ~u6'B7-Ay&N[bxeKzg4"H5;P32rz]K·87 ,Tml}psVј5k]p-}/[yĠ`=ypȘ9BiY@8$ !N?wy'gvO҄i6]B_, z4!'v2T9h!xuQ3O8) @hyro+39 (Vq8U=5*ꯡ"p%I ڲbHO^G%bYjT/#蒒&6r^6[cȗ:~pHekUֲu(Bb9 GH `\9ӈܬR FqH &1^2IvD+zO1r82y]8ړU2bt ^ 2^n-iVNy(śj^ac4ٛ!Cme1mcz]/nR}T{f 2Xl= 6U 3 .hG5G~ٹ{nܫ WBl7bӂ;؁NaTWc`+h4x9#<F{".dRwlgN?z u>?6uŏ*>'mLG.Wzy?7adV_Jģ爪R&@Zd)Fi 2Y֣DM!]FlΡHI~U 8ӎgWC XSFTS:L[ -&TAYUK߬fF$9ˠPV(cRpy~q=fhHG0!$Q;i**.|/{ tU^uI`( )$kz?f[ZN`[8GIB=./;%6a#Eƾ18g"Bqd/ʹ%;jsQ'-#jbljNͪr=I=Kᴴٞ077E\'l 0najR(0¿PHcS!䇚v%+TYjJm9!{K.ڼ}L5΁MG@Ns DA1fj#9Z N7-vM6iWՇS,0En&2g2LKL_箘abf)^G0Sa˜1GI#ZPiG2mՌ&;2;pzJۭY\/p#T1WbLJPޯ@;gǙ8d.i!ܤȵ۔^?89(j³'ָdΤm9dGfhlT|&#$[ɣQ(5©A_6*5%&ٕs*A`0o,|Lɦqq>{)Q(IПeAH.p C38>lc9 Y/O2g 0?/8vgv NRl-4t$QdKz[n$>u"%ic [.Ic'),ۅUSQ?8!7j)E?@)0a5  p>ss&w*^#sD_.A/x8u zNv2.(@ >D>~hǡЄ9I7+}|3l@`z0&0(vL~CT /;'C(@)S]FjFc,w81bПruBH*,8lK`8)\?aJb`Zxv ^Ŗ:lYwS1)M~suZ錦AĹ͐G],ۘ Ce>kl7$gz=jnuz- OP` yͺ܊d#kWPE|9N5-=Q犂S4eQV72 5r(r5#xz akc[%*^H 2M)eK9iO+>9[XyZ>Ϣ_4߹0m‘ T%љ疨L *GvɈ_'K_(J*Ib| 3 *$H C4^IR5O˧*3170/xPMHGpXY?liHHͧf:LqjkUX80魄1mAR/@zHQnA{kiܜ?MP 4`;tG$S pVƩcu*@x+fp HN}${7Re{7y<ݬނYW*FwFbpk,׆ӊY T |[\]A-Qlf r "m :k3z4pL 9\f ܡ,ʯ2їIvPEj.( 5o|[>Xb _&T+b jr])` Uר yd?59`tx.Æ=Ӄ*ix. )?EG d@1@G3\^gJ[T)!Rd=&!uXr"q'FGZ E%vy<Aw=cy^!2>s" 2L2'i$A0#ENCkapSNT;JtYgA͂Ǎ*b`휚 1b„9֠O*ij0ig v}#` @rH%>חs4nؐ)qC'@; 6K/*LȰon1AE/$rYcђKT)i$e#c D[@ISR}|piXPYgv_W19u2k؈_ai?TewWΠb[FJӣ?(gG1h}8<$(p_xQ1SN@.椺?(︗ac5R!~>vY]nD&a. Bx8(j8=9^C. wb ש xݧn( Ycf"Ȭ1 y#dVUYY "C-WÜ5-Ye bިmwxM{U?rJӀsRsVT͗!@:okM* }aK7p2ߙf+$=itFϡ4u9<$= ZHq5]͘ w78~Y`pv8 &/~aWFA&ix>Z9bf.e3NL8w<č"C֏mf_,M?7\@ rz%y{aU39bm4:A۸u`1 m. ]Q8!Blmü >@unJfTGC\i>p.e]Kl~yMJcUk H4yj?cVKW M6PmS Y pPovi JS:Jo'Nc+֞YUI:*/% Җ~J }ƚ ֤n켘FK:Kӌϭ^*Vno +D` 䃐.Kv EG_m zKf_HGfa5|iNDaޭ7a,ZW"!a22J)2Aߔ~Ӑx! }jAkPN+DkQ]9t`*\Ӱ㍮Iz*LK Ԩ-z–+E8C0=z~nN:ǁ||"`]󸊻ٖ-fHh1ϮQݥ S݇M+㇊ [ruo if%&{7daqʐutUW/j)#C@lԶm+a+}oZp5۸PߜѢl珖X9LA#rFo4֊x2e15! 7^RKRH r,1"MD@fmz*9{Tmotl]BOms=?@=QK|ĥj[CƺgvR>Q rg]ix}_ʃn*#yNjLе9M7]Y3B&)TdmҼL'2(4C WPy C)\HLW:=& ^ˇi"T#^lJ0]@hy4je~Iӱd}ÀqVWƽm9_l%v"[/ou|&CspieaטxR BH>ju56)<~j[zlb^ "> L<enXWz<^MN: ,g ,CQG.vj{u)P=G@gos,PO@v]cT_\k01kǏUd׵OCE3 ' CIȲ S(lٯ `ۋ*:(@ab}vus Ds(󐧾%y߫џk&DKv- g |IQe aͻ 3e%O_6+>ۛ'[^hzއhtWfz!T4{MHr apo0=/LC8遵Ucʯ9;N斒oSϵ+ܮB}{*e/~d٭Bߓ|b&p^xNPM^'vM0h}^ πKOH{!+dh{Lhr0%Wntɒ*RqpnATVC(%Dgl#Jn`7SK>`X22p\8vZe+P<`{r`Cf͑?&gh?W6xM;wbdյ2#M4&*Q)%eDrj[Ҷ^h`B" O Dvq83orOmcwz*t'b>յ5׏Sեkm瀵?@XCO2{A+=aWH|hya=9SmyJ:PV4Dj|SP{$1Xz%=?A8Y ?tē~ᑗ/??RUt.I(U{$%+pvs>]μRkzgpoᢌ!we1%ؔ3ҜwbOFy^FR G䖗&U-IH'h6t%CHJ5=b{P}_e]y^L&|Tܹ7,0TԨգSIwXJ5N.N;S Ϸ  %DxNY -t{uFUX&U5>I$>Dßlz{/͐`aݓ$&EȨjWb=3,]Z|YCډLa3=<̟c'snŭ~O2#w!PcuFِ0vtߌR,2K}1_(plfeׅfwA`;ip>/ǖj\$8A{Ԩ} Gԃww-y83Ǟ Z zewr{\cGbaI& I<>l)>96&u&eh^+h,nŇm3 { E>)F#%Y-rJ>U].loZ.d+Sh|̴lpG|Gg=Q7A9eΩpGq3]h8CXqP;- l4`q~:⪠ *ū@f0Wk5{cGi|LcJJ9LCpQ1Ex|B~=cF2#KzXRO>6kTo8WxQDԬNȾ C+F'CAŚ@ig_d~Zũ+o z cWy ;} ;?wܪ>^:n^qF4^FNX~jbA5:})~}BO4,xq^o|JW+{0%!!{C7jQ2^”{ kLb6kSgQ6gՎͬ1oy/ pਞ y5vId0&˪&Q.ʅ/_9nzR:43j Zt}j -Q/,3AM]x}/q^fج,w#UPǻake2 ,G"`k>W GU`+!0V E? v.hynu 1;&zui"" ۰ܓ^/ 2*dK^˨Ce|Sv|\D[*= `Sԩ@V@vJJO?PKt914}./"nuvola/128x128/apps/kghostview.pngUT gUAPQux ez{Ѓߕ0*PHѺUěpoyO598$įբ̡Tj奐1+++7lϝpN/B$[g!&'wwb!М؞vH;#% ǀ֪1~/o $!9*ͽ/j$xS> <=;MdY~gOcÞG-,ͭuǘY1}1yi͚y`UdbC8 &Qoл}J.ҦebI>Mk˒fٛ a-o/\ul➐u}cݫxgwm8( |9\to!ܓ}hLde !Vٛ(M?u|Y1ɜX_QMp zqc 辕9pKR33RNvoq|8u:& ,{>VkIubVdf|Ϸ9q`ɕ r2erZ«ّyz׌OsZ/SLR1)fxr<~,I#^RMXZCtd9}b&?bTnr5]1RHSj$PbLY3'̥-},(t5gAs ̹ɼ&]>MoP.hn|ꞣ/7 ~jen;A8GR it DuIe-f-SC/ aK쁦}ؔICZ׆"5ʔ y{[~S[C=/Hv[&g8ΛM&iC$\|pVΚ:cEu11BvCJg >Cr tKAl8/!;feCN]^ &m9YYL}M3/46T*=Q$t5J)u_=ki]53c@݉>I=1]]?yMhM_ tH31'Qɥ-^_Mݑ s0U5u=vtG&zTRG2FZ=2iBZT4dcVb豑C_g.sEo|I9V b|80Ep29"/edk4-b^Ǥt%z@OfCm)}2qByCgѳ}'{#8d&~H-)_֮ ل{V5. Ն84݀V'l,0 Kb $TRjDB:6j׎@$q ԯ =N~"$@D ê^+'5`}zNp2⏽f_ò0yV&;wDF^8E VNZ$$-$II9 JKEȏ-qPͲ@ A`bV"J嗾5扡+*F5-ZڳH硕5C5a9Fr0jcb%̑3'>dHy;9TJ^{* C?jb,#Qr)O4pSWMz :wĿۃ\͒S{7vh WhޟňՈ+JrCȭ&I-tD"naτFuK|dnB`/L oozWN,iG~zeUT"Ra޳3 %9 Yv!I_oHX2($'x{ޔl79XΚW9cUzDAN&F+cf"OAYsה}F(E( OA`=AsnrFM7S~8,<C;T{DXV}\W$ng$a o aLn!PՉ)RO dee5rC%\̽wkS[O ̧LQ*G>Q33HHH%2Z2g>I~O$P1#nI`%{BE58: G=X4DP``a tXJ쓳0i.ǬͤA(rfH+W`j'F"r#>5 R{]xUq=vs#O$):'j6Z%1UYY3^A(`_3Eܣu)Y]:a6O {D93m{!COFח,5fAN&.,o@$x*c[?}9w}V '}LFl5 U4ꉇ 1et!\?"*?Q=$zUY E8TA:lz%ϗfaA)#.saזՃ^,R]:c:":V%%b:}9'6EX,곘:aMd ~T*eF琌CK(!WIq+ϖ`!~slO+,2n.dۊ1k=>ش\W Bj KtVdvU8M(kG]FS!tl TWn%Y7*0 WufE0CDZ[ ``~goJg:cSA AB})&nMl=c>^71yqB]cQ}&tqxҺ4~fl@р^q5(DC#-_dFku|3V#)gIoz+oU*kpa_4{t?5[GEBSRaUj@o֛j//S{j摯iK*VR{Ow’=j:vLZI2%z7: zej?)s, !W˳fz(_П[lf4b"A[|2*KR4Y>$DߪPI=l?W @ЦljSw M>z-Hh^#%M|t4B!G*`ZA6PF@L{ U.z5ƌv\|xz .Kߝ=K vyбo"|ѷ]~A= 1 iD KNWǗnf1C%x2(5)b@2|@xQb2Q@2Xټ3dퟳ[![~ DeL:`/8nЯB3V5T^$gyԏLMɌ1Qf킼zk{(߉a^2+(ޙowݰv/|qexa;ˏz !o`UsRI2ѣ:aUw.LXo≄ޣ9\1N<Ӭ=yyYR> \V+뒙si/9PF1e{:QqblxSa.6[qâOor!rl$b39böyŒ@R-QJp.8ݧ( {#ny~~t3a}|YieHdobZcMPH&4I9fr8L9z?|<'DU^'(\]ß!tta{ᔛ:ޅ)}=O<\:]Է}ܖ&EmEER虫ׯ޼B'eO%M \T_LjbapTǔV2fӽZ0 3W&~IFljXpZ I cwdZ#|Eq}^6vayD]Xa3jo2Ζlj;ẹ+@V!T+iJ?D"U^kHuG01< ORػ to^YdF3QyykKRE ^+4d+^} eCSQ !x2ѐAJxN)UںM)衛NCAxu19%\G^)=w➎AaP)1ە)SHpX04/ȩXbkŸu)<&5)y qaS)61I|ѷ ;d|nB궟J0Yc׭8V9Ԩ{ʡ#`.SC@(Z #d>ޱ&>i bTok,", $ь.^W2/وvr< 0_pΪױj $ %I.yD vA}g07:ϙ}>x05+ۛY FuXC8¢p [o#)n u"ˮFS:q]ae~$YgK961?̻pCMW79eݓc!I_/$2\n{ YYUx6#l-/ >LiڽFଘ" @|@F ijnlm>`w_iӲGLtIwߖaBf5=4_$1Q~[0|D}!^ պZ<;IF,I̤ŝ/IԋԜ_a$Qve@5 tP*CO\l Ug>a|РEb}\/@![Ը9O,#`5LzZY4޺r>bqHϾS.jD#"RH7b/~VOK3|&|EG)DJb@%HNny]cfW2j=a"-[_fXI2hlH%5k `tU\-fb돇J _%+^1jA]بsJ$)lƧX;<ꮝBxTZcXgkwEZLO⩍Z?d4,d)A ´=0>X.:sٗ\?U$vW%ćjŽcp4 LsM{>1wadd-rL"R);iYr9;oβ)7x&(or;NsE%NJVe(ѓEp0p-m nE74BuRM.n( \H^_%ɷaHؐV؇ǭ(A9\{//o*ff̕f#W6,->gԩ  т] D(Ao/mϺ1Ÿsb3S"2Nߎ)Or*r΀@?M@IIG57s @8wyGe[ʄH^Dy6LqwυB]j>sy2̩]Ƃ|1ffC俓xtY=ސ'ZG/S1Rw{2X :"X0ᾋGQ\`9iF}kzXٗGSi0N…u=7RWqoֶ0@c`tG5$LgS?Rw-"XV O"lwɁiIx/%)pG-gn9SO?o\eQ~ʄ2(}O2oHGUYh.* >_ !V9 K$U6 &g%6CgvGG3V8Hdܰ e)2 k;jVuKW L#)֥X PE`Y4=J+}e@`}4ln;%E nTgEgf h1F` &o(SOlBOuJ?H3i6nS6 ƺ oPF# 4#7[#^ZWVXY$o32 D?f_,>r^tu oqŢ{&WVcliPsZke w (kG(E0%jl~ᚍLa^ >=|qxI mjgҐZ:n,2ym̤傶> Ϲ}} yFE\EX6^d]B(řrὤ_YH'<1YOVDR>zݠ ݥs~C(tdYiuv%)!uҵ Dr Ab 6`ndYO"ۙގY4sI#Ay*Ɋ=[(v;0s=eeT "'<-x|"Ee8M2N*a]A ̢.!@)ɏȇ{`t5|&& b\?w">rau҉,"ZIk"RR[hfb r-`piD] /ُ-BZ,DĶ| |j'0JSB## ߹H[ s72ux,)*-le\re]=A.ѤXiFx.R0p^Rv Z \dunE0;cD]lqzѤoꀃnlQw12d]Tb_w>~=tbxa;@YB;fnY{S ~iô zx*CaMd,ɐ6eh9;;>j EJ5' 7jQl3T )#6ùր)><Aa+r<1H^bVLfbBdV<ս\\ bYrʽzqbѰhr{s)A̖ 1/ Ac M )2 ̗o&tgoې:[xUv3+fttY|J*94Ḗw1Fm96xF;-ue{I5nE4-3-C11A`̯|d%B#$:(<3$!%fV2Y%36mG8=9Vf1سO6ͱg'ܛOYQW>!KGOyҫ3O_K{mr~/'_CR=&)*zOd|lHld̡Wڇ1k S*0bP,@w-` H|aɫJV!ZxŸI"cOԿַ_]?/0k߂ 4 C5L|ed Lƞ0tEV?J0yT(/sUsY@TGR b]Fb)A^/'SL%ړfW^]ϲBhU%K]v1),i.\6ca< **?;dtʨƷCRvYiӫ N`7p'#M!;,'}c_y.dG&/޽\CkᨋS·MU]uEGztPOUNc9 Q nsl|o\} m=c[h PFU7^G*pOhrLq=i]L5#&0Ir1cC`80{8y8VP| j77J/Rkfb dJX뤙/ ',O%¤`BHEb,CXY3eE-]4{n?m}\ ڑS( _4yyƊ6+16ag& >hsih\ \ llY\u3qs?Q7ڞ~K<@#PjRLh6rǍ⨰&.P|g/&&\:M Ʃ;Y*0c "4ՃP-M!c/Sѩ >/s-KFamp>e[8h/t*=jq/,Ym{L+D?#םhh;'5Yi=mup; Ž `\DSS)K/oٮf<*ǩcCmW{ 2axtccUbTKFLvEb0kHUuEyoF_u;{av 0+Yע~GRN!hڭ / ά +0y󯷭^ɶ&\ `\3y kŹg6:Z4z$VUU;N%ȩL`4Sd>8K{8M`кbum՛K4^|9C'ŕWUZS("rGFgPW[e-<6؁z`UaNroF2E{T5([LQN:JY!j÷P/(j"*l Ohc u;}Ԟmgn#!#qqQ =n+,,i#^a4H 0="2Q\_OEc/"(IǴUz{#`sxk d+ \hB2sogf\詷kkwYKNpMGh85>a],/íH4^[֊N/R޸8ݶϮ9A7AQ}=S=6woޑERPt͋tO d|f{(~Q;=ЪlסLlNYbuD@i8A=/beeV l\;M4t'f44Mg?}QN^$7VΑ4~2~5 C"p|zp 5]WmejwF1.7Gxшþp|5Q%mqŠv7`Nb.G-o~~SbDZ ƪbߔ:!ťuQh%}@^,7i}QՁmD#lS2]kYڅ!wƉLw\ҕ X;I6 xZn~#Ln[Y0;&oVeӃ3'Rwy7bO"Y$tt3kXUa|5C-'AߴgqP{~mL2OA =; 9QkV8弙PAHuix@e.ƧB-A!^":DUifCMUd˻$2JV]EDמ?95*"~咸 ly xtO(҅DҦGjapmXs,q'Cx{Eg^=,w!kZȕdښ&|S3~(fz瘰zFߤL*u{n$'?ù١r'zrCvmM^KEp+UεF䅢mT*ùp'ˈ yP҅:͋Kor"tL2kRkucOՙZ\'P,8cvfݑ_ה9 ԇܣrCjeô^ez *K*b?gAˮѾsi_<>[{vmZvi5tttcIܪ.yv[2 '-LEOQrNjűI>oH8xny,Z!ӭX"3⛲Qmbb<ձX[QN64tR@ӽ?D(cE1OFO˙M-|[ϧoJ>EmiZ NKa:2V97%UMVyیU|FZf۵枂X+yVZgї0}(zg&m]PkpMؐ+6[س](;_ Y؛4C C.!_Fa zg)8e V@ٕu(?hUvhc[-`z1)hJ['`1ܘeM͓#?"ԏ\zom;y+TƁf[܊2 V)ȱNh`>qMᕲX*Z%2|rksz3^;&?~50S4RX葏X,*\먠f@SًSXd4#)Z9\P{28NM80, JA=nU ЧIR۠AOo61Esz>$- yi 8| 9NDzn#3 d ih4a(?C*Eu+TYb ".2YNb_&<\V‘E_R|Jُ56m_dDi(T fM*xXo߮mliD f1}-_DLs k G iRH/Wÿ.5]twhUɕ!*0kKo}jsVS0>N%\y{mReKUPvT,8o#5}#)Q+(e$ G-[es$2򟛺 2G U\],&zb|_;f^a wyA=`H{Ë`(FF)u:.ڑruݟXLޯvej}vܳNfH j4e`BwM 3Gf@:`\,g=p]Os*](F .SpQ^ 9|W/rT#i-2a8 AfraH(⛔Hmdle:#9{,zy¿e꼂ڌկb.# ZQiћuSSKLG3zh>239ُLslG0.9TT#N-~'5cVFժܽ)cYXg:&Vi#؝ FqDo4gq;|w= /xa% )gErz0)lElRW, F̪_ĉЇ+UO-F`?%v'_^di)Ad]}}}2-IJLSaR㲉YڇoWpe;Obo!tËsjes=ƙndOUS,|a Tg׳[|pͩq[TJN^0LٺZ&/"#q7^#'Ǝ&#Ec T~ejR] :&)c0^M1,M3_F:xR<1%u `jjzvYclNtDR*5SB^n9n=*š)tܢStMp&y٭#2fT|2s%Y̢ {XTl kG[6x6%o)B鐴.kI#i?KПCRİiPx4]RLSDŽόz.dw˺N*V&-P`/y"ffH]@4Cݭc~kx~/{_Y*@}VnyD&PMM HIh TB㐅cκ7Et9;[q@FaP:o]}!^ _3Vs㝟4RWjE+$(J:Pg,M K]{k|S=Ⓢ.9$VjD_/o9ۥ+DKm}f}uFu{-=Fr?FjE$@p"ziƑ4Ns2魸cX_όcf[?yK,9|e|Ԅ~7jW9}TLl~)]hCڴC}<8f[FRqр>]-κi<,~$m8E;8&%ހit!daQ_ U]k^>E]hAX,@%ث!elC7+azuIOeYa3FYJ $N[ΖZKhZ< `_I 3A𵣯|ӆ_L]_@@u""VL|8tN /nӒ%Tv\ˈ;>3OnJ:LWLZ@ZϤx: Z{"} Nx3+t[N\4Tܱ8")J-5&2cXf/jzICq-C^܌Lǀ04PPP߇$nu"։p8Lbb gNr:SXi⏺\1;!)_ADmk Lg<{nх(tVb}gdΤLVgS#'<+ &n^>.P|l#F0 O47GxqZ#;uJ8B4:F2HMBLu4uVK]$lZS\}T:R7Bu &"Iz-p&(d' e9wdW]h ?NID&WĽZv4ZX@Jͼu%z:BV[ bH727ٻe v;vź,g.2\2}:N(}iQ&&>GK=#''k5hp7l+;{QQWHUͻ]MWmE,5@L^ye%'.nrf\! _x2ًWEvKEYf-R"!bMFJO1*$+KKN(>~V-LՉqjT+;8.d##"*Avx9:;Ν5GەDaWCf.r!F 6=-"` U'qA:.RO8;ˌdH'O& A[<|c[ćߦ`0ݿݺKz}=,21jlC5ZF{8w ץ4_OeYM7(Ug&ҤUGJ@?=,ubϋupB;i7i&<<G_*z 6:IQOȂ\W7b9)z=4^zk5-7)Kdl3l4-׊k[ڰ?@s>!мKy*7c`p7+P엵*wozwK98߾HsrfZ!-3`ڧn_P"e 0bog?3szez .!m&g5ʮ2G 0~m=6UN{\hpwՓ?y1GC6`:p6{K ,N/)vث_یSwQ懰VL~I>_mP_)a :ED7:\P(I瞢wɣQL|j08ߞL@Q2 Avh.J卝v?p706;|$Fa Q~߅ .36}FlsXdkU3ҳFf|?v@[`nfxIm˔Å ns9쵟o(k?R=G`rn1ѕ94#Z{<6@?MS+KWFK =%sڳAxՒfKf:07}fŽ(tG{ѡSnq% xE$[aCQ=[P[3֕0!F,EvOc]qV jKQ1v3§3Ry;`gН XOXjS{'[Dk,iv [Q6t2~~C˜׉# Z#_#wLxk/~솙[{`{L0ZHt{ϏH} WLWBu)ʓ 53kE b5L-R5==$G\Lx^4>4[caBK 3R޼fS(d#:8LGgl mHB6vlDP)L>A^plS)P]Z|#VLjAhTHeY h 5"Z@t&VP˧DHf݂/g 2 HɑK,NsNs@KTlthaOJc{\uq\ g\Es9_WN)eHPKao<-N(b?PX= +hr{Gxgh)Z0$ nuP O /]F? F[MP^źЫוm;:եcY,^ttGnWOٖ*F$_T't`! w8"SzaGn\]A$0Jh4aWoз_܈٢kX)eϷ*ȉπUx{>_pw:l_8#T,ehϦ-dnOJ|Wo`0G?5#eO]h ,]`#t-T63pW:pT!6u*9a"|mpG'4qn#xE*E[i*MM}ҳˮ$Fv,85kр) lؾ4 aÌv9V%G Zȩ&,J3£e(ow2X{LCӍ)O3I ~Sd)/@݅'2- /ҥ5L q/̑{kP{))j]6BL)yb`Ga͔dŽ \a`v3 k0m8;:'!-'x60xϐS {&l'(b=85I c߈~4ܨ~"%Ƽʮ&[CRۘ3ϥWo\L0t?%F5 /l͕_$VU {J[$D@y Da+ -D`RL r!KNNbʌO`Hh*&&/dC 7bOxާ}Fd9?]壵 z9g[Yoy-^k!xN%_< %O ^Q_7oœ,'v+N >T7/0\;#=SVi7k9J050 7*]gɔeg\ޜ]Xqu=x2x'맲 ײyKmT4(?[w'o>&)NFLU1RrLm\O8*Bcu蛽KeNr1g_CV@dbV+`V`֯mT0YR-j@ҝE'7Fu$1,\mW=mbUsdo6 tl#xR$h13j4޶.n%xE(KT}'҅@;b([qbw_m]ҺhY+)\4+RT--;˄<)tuR`!=qjCp߭+^/9F~܂FEK\PT qHqחuN+Oeb 4E~~T/kPϺ-HVss+grs)!51ńdg`=4Y F(M% _4N"]l7>RJWа>[KJKmEʗ%):ejc ,u#I1gg0Ҥ$5R (/$s?Q6hg7C6wGd5f'%,BOzYD9;I x.r#Lir0EOS#kxW]W_y "[@KZD]z,9˽jkkլϾ{g$;̽Ɍ9?<ܬiW'hcK/^$Q+Ġix']|%[f|f8E 5&Wԧ/biI٥Y]qFM$V뻂U٭!:N&n9s]Yi;`l vLy?ndb`Y >tb6ac0YA\T[3P'h)Zzx.qqbQBZ"\ 6i7͜F@DxeKZTаqISn4sCg'`зx(GW0RgƆ֢%!}::>-^ٙc1Sq=N+ ZatsoZ6vZzaYWҬRNԤfw -{ /Rv, cSv5C"b"n|YI>YgCA)ygR+p =)U ԭ_ MY[[ut4dI/} ,l?gbY=H甽55&)_(%zwEY%8'}Ã;|cFE8·P؈D$FxpD`o%پ5F<7$}`{`炎hR3A22qeAٮNBpOѻn ;'iB1u,J6̪i iC++M.Q; ⃸EL6&yј}$1u| $AExۥ~@٨Q+O粦6,t|D_eU:c ߓGAIuvh>g9b8? e("CE b/&By hl.)έ]lW= =5A>e^:XiwCy4poʿQP-WfN^ힵSY(*:DXհHӚ;EeoGRT<6!h =}A$[,gM |ޣIu*B{djՊLJHΙ+w Sfp^'LW^X|mFB+qQW.q&R|_ ˣlbv[C*ֳ`=F Q3aH ,-gN]-[Ec.|Hc .({hչ>߬kz Y ?Ze5id>}%Oܥ6Ыf0E2%Mw$r1 =OeV+tc v]e1@Y &m6(,?' Ԯ*% n,+*aط' e eB5ْvك{I?Y4"Umw@!fP#+Q0Dh5&d ,M~r+4 *HP1kV'S.>)]/귋g+w{BO V`RF(`_*=o[Nhv2g<N~ʯ_2.l`Eԅo-X QPz#Ȑҕ;0b56+񺭟9RVS i1?U$}p֖ysyy?`abHRhw!f:4e%0.&iIO b,ZL:F[]Ʃ97h`cFlSU,Ot:Yʾ8z/oC ][~ܱYj"K92{MkX|+]82s+o*R"i۳T -m< ,P8';F/yR >)p߱qU>P؇ͱ@K%fvwevNxzlT$Y˷[n`2h%TYm90 ՄYy' Ɲ-A?)?WK+E. kG=6̚7/tKwWʁgRgSQ?$a[f.9;u狃}5]1|719`2ov/Q\R9;QGL"I ؚqMlESyiB8s0EoE^Z_eQ7%QE%S!PnyWv/V\wޢT'u4mDUbj272B7ݣOn! ɶ5KtW*+Hֻ"Mj K&HKϔg Q:;4I1y/&4yIIȿBj-N)Ú 8!I ߸p!_O2d.(rmxzv Wm줳/؆fQ˘lt6\Ie<c)eObVUi] 8t@ A}MVR6P[o;Fbx!D;`<=e5-[}`X.al]#$.[hX򬽷} ]/=: uzXafNLpq s<1 #5i,0zݺ[}"K֜`a{D&}%n@s0U QEAS$OADdJ]G~j5pު/oZ) [A-1vqB~zGwދX;k29[Fo,*' @nCZ$z7ɎQڠ"[Ux05 *R=U縌Ͷ:V麛cRNky͡dǯskHx#swurwPTk(,9XnOI\Ԩ ' G2ςLD>_ЄOpiSN|&b!k񍬊eHWK!G)\5(I6nd"D*[mA{/)Z3M%3,mr#erqi?e\>>g@Qϫ+߸mݮ`O7/D𔓋z*\;#Js8"^dGR_tat(2rۯuӊ0Z2jxp Η#n|4#v|Uu"^/\oWh]MgAy\*`yxb;*VU!T:nq,s[~bB {d5^#yS8|*Ύ?d+tzu:dakh.H8@ʍA6zҘ [qྤK̼" 4da}.UV\lfLP&o.4'r꜐)})AZȄJ{9/GWiŅ@[7i_o(h&l>3m@$A X^v#If,jm5 u3ED$b}'A8'peہZx>} SbٱHε yc>b j6s uܐO ͎emtuY)3ohPrZ!|L'}*_ r\g< .E@{c4a  Q'm?݉s["tT鵱(JQnYJc^ aLZ=U*WDBQa9SGɀؽ8H-{e8*\axbd_fxq2UaO)$VJ4Pu\ىۀPNmf +(V4ZiC!t; +\p~`9etnZgb\XKIgdIx< t:FT҅,? UH_&m `@n Df@"s3'1F4Qe}m%/hܛ𣝨K%AÛ4t >,iAю]kpi7Peu}a&ҿd{SNowz;HJfNĠ \~ 6@ʗʼmfkixDǏ'$SUe 4å+.Kk{XK'8Ŧ8Hnj'4i}O%DL6 {=<LJZ|m~SVL;x8+MB3P%,v+@d.S3~1W F$@3\0fѹ"}yl~BpV+#w1 åujP- mj`2 Ւ~A#%fkwrՁO܍nMHҷ.@x 6V=E5Krd]Kɻ0 tzᬖ׳=;VwZW+( ӐqjX|iI濅o\[[O;-P4 ZaBdҝyLUBZq9P@i7SqgݵS֔dc봇G0w6ъ2FYMHIoE$vHæ.cVtֿbI\IK8/zӴZxVg5)]ԏj*~>d#>M(?EIP\֕ "jMgS~ח}kS;h!%x,&=Tx=8;#˙6"NEɍkOBjI(Ԡ(Pт&נ:X"ejjk6q?G M5|V/Uf(CʀBy?! ;f$n ϰvÎzOޖ?r=ב,m`8i`{.E0]-'ǟ`ӵ^t ec2b6cVYjV҈,Ct Wn&U?@%%VJXV 7xbdzDaB#w1,cD+ p ~_^~qwODV&6s ;v|8ʼnNbOnkJ|eP2cD*JlYж:\Cʶ7 a}'vگ%S}%ST`A tKqZ#E''6>%,CW96$|2Rߏ\޸1n_0lo}^A6LVж/is)zȻ҆=]5E'"ۭAчW01p7)$Zg[סNíɓX؂K&mT=x>|ZQe,VtT;ϳ/cö35(5r}❻hQ2&mA!ОgKeCY+u)L$r(BWRy`'kMq711y֝ˎGqƙUJ <>f+~C@NP$9{ yH`Jtn*Wt\,iƬ "FeIwMސ"I$U;dZ:\:4hDsjGb-'-*3^IrS=8 ۏ6'^oF@F=-<Rc%Oz*#[%@ֲbMAVڧWU譢`  @yI,+SݤE5؏t(xzl7ZA <A||#ԩ j*؄0," ;8e 0;V#0(љx@/1xRmFeOtȿD;q#haKPϝ_tG<[Q+x:0#7g]z:W6ܧ"`3ڞ-1Ӹr=?J$qi[X7.W\CYbYdxƱce JZPS~4e}s6)v[t/C§;xo#8νĦ hbIYBx5C_,=E@ nuvola/128x128/apps/khangman.pngUT fAPQux e{{XӳO:mHjEBC\DQCJJЇhj(5-(Z'mumϵ<_~߹AkuLYrz?Em :5bbSFI1U#bDD< W-}T0U%~\F4 $Sg(_<{Ҝ_%gz<]2_yрJS?jR UhxQ$`QٶHQMw(u;3`c ˀ}Ől(kо,& mdiCحxrv8Əѝ9=0icjʾ=[(:38Fr8-[HiN|DrpJDu_ ݇Chi !oYN+;](qWf/\Hqp(E/ycl- H<LjA Y|6L69Ee=Rޙ$7:UC⇤iS8~:4XPDCz)Hi]xyh'A0M)lծ+-zYC`zccU,m93re%8;k-#B p ~r :-brEyZRF-*’Q ? J ./"yB~:pvťc?q &cX.OE;`1X6rE2d]=d輟X\W4G Pu4#5[ 8j r&G׃~,Kөtoڜ~+ltVfT x )v'1EwBa31f*rYϨd)4kzivKg#K˄b5szJu8=+Ò8Vm'wy[T߯*6Uطc&o`'֚/mGz걬.k$(5@F1RLJin|"gk""7> 뫞Io3,5q-6 IsvW{ᣍ8,ԱT+{F[gY[aF}ڀ'7 %c~p4/kƟCBԟ8Ʈ m>SD>5=T!p3?V,ބ O2Qxff񔡈8/d4;ƻmM<hAG_yt]_pc= z7E+~C fn݊=T6Ud\NĒ]/koj J\SCŜfm/ywaY$nYPM7?M[+/Zj6'GGzKj<{{{[{wa.Y}m܈{,mWRsl>/1Ίk?%haӗ@vӆYBNA+#d U O{g@W"Ey2 svIӀ0FzW&:a`uJ̶UK + (feoOg.f#Ο^ztAlQ ޑIC8do&Tn|yp+x_7rAJÃ٭ 99b_9}%N]6b%yviu"̢BӂS{dLn݈'?'O6[r/ g*0?B c6RwndtKKg͍'wt]Yљϲ\k`c$+DUcN_p,KcZwm{* )+@ū#T+#3?= =M"ͼsۅU};[2NcGhŸ(.o_NNb徻9v|s@%`}aD!Mj'1>G!7tU<e+^ pVK,?$sojl1sPݭcdNd1g/VVig% `W>HǤ;V0: !lz& vO3uMoBF8. LcDd'2\VD>cS(:jIsy/ss"qzwkr=@9VbQҿ؇,ZZ*6*Y8XgcŐlJl-B{2g-=xȂ a]'|<=o}kW(6>B3b&-Ch4vYJ;W~TW@EXM60]PyF)sIPÈWv~eb})w(<`5 q8;xcZWM3 NvZ̓Qf,x/6MX@uiT[„o"B+h4ى^Del@EEuptp{&z,mQ+~[,BwV{GvC(Q0(_%dqV9˗kevC~rhoB*HD$⏪(dbfmS]u}u#%,ҫ'rjt/\ 1Dtsp>]rqphĜѼ*^nx<L^4^~rbXbr}yb[ TwTQi_-EwIPOi;Tdv^v3>"{$n:Zvg>q/B}/qzF6 a@1U~ E9=Bs g{j.|Uxٞ/ >^b_9XwV{,%^0,7;WgF޵lF?K_ ⋬I$ gy+`Qx>86NrXFɹw=::oVk@_{5mSݓ':ATsQ+$:`_ŃrKi/,ƉH9n^YG!(W)@c ȡuJW(9i:.:nQvb~ފ)x&\xU@͡~~ MO=,4Vq5{lBDva-&LX+CTuϓ~paӴ C(\jv\+!fQO\A*|Uˀk%͐FDD|SBK#+,֪:bY?Y\a9bQi,ցA|N|oRk'Rs!sZdևssu.杠`h۟;M6f&)*IVgR.>*5Zhq緍X3ٷybCCԖac+7ekYq^*_✹Λ$]9z!Hұ9iGpV$aUXiLzGjned&o+acX1v—Oe?;̠H/) lQ?4 |QiNaY1E]}Z9#f!`&E#Hޞ-*fS{7,S@o8z- /r'i3q]kMi'qmzE(2C0 R.W0l.J{+)>b!0 T)ZVj(E <(~b8Px!L<=hi{8jD|^,|ҤC,BevV;SQ]pKtSG-Edy8d~K3i[q7w`\º1N 'q|3B6dqˋ m&-}X/E-GŢ]r! Dsˁ>,; nJ%XFz$BHvߓ灶wPf K/J(ZO |7`e}[Rj\5bg =]k*̍&)~X IUĺ!안b7_{NLx6aHe )Y S yy@q$OGuhfMw~QD9~ ry*G3ڂ]kCp:b4-ͮl)oQ7SmDѫ( |Ԝ^$OftwhsqirJi/;]KoRA?ldq.YMⷜ'3Zé߶P~`43v#>ܜ{zF2Y!/=2t|N]3KK!-e5De"G-`㯔(%1 0ˈUb4 ZK `gy|'>!{|+ i=.Vbef@(+g5{f"#;L{"wcጇ}Sf|1ۜk>\ZBK||ߐc XrDrY$(>ќis}$SRR^:U'BƠarƱA:m$-cb]@,f$c&8H1 3mm 2A0u.·ެ3k/i}p+aM':mhe҂sBᑙY*y؛XepnAz<794Mjho7'.$¤%#Ph9 Ws XU0lhhm@/ٔ3Vr"Ve@ѵ\kK{;if.rtG:*O (%M-XvOM`7>4RۛP9L>HVyc86v-EKAp."oyp$P~{ c9SWv`$k#c,&[4bQEW XܷL43eHk~>Fԙ{5"؂‚;_mjHs%{^q1Eg A[څMᅙQBEz+{i&,}hkf /)-kIϝYz*cdVܼeπBc3gg]۴AwSL=u_F|LC7&6@,r*o9-J.@?n41جpp\/y>Ea"G1x76ҋn 9,kcÍ6(腪9Z؏) L֊LKOQ!gܘiP+;9Qn/[5Fkp%3M4Jby9D/yVFtW͚o`6O7ª W.|Kx0߂$]E!u%;a 3LRO#U/u8/'=5񽱑ڲ{]`C5H{ Ϗmۆ*JkN澜_בg"ZVANIHH}8cʙKng)-s|Uqv5;im0B-M[>p_>U XS9tT8$#qqm) VT*ƾ&05Ԋ׫JѮhjW٘b.i(ԴcAf~C1 ?Ѵ]/1Uͤ/xʼ>GA>F0.:e8x O^r\ѹlc%w- _ nC,| 8s!$$ݘ.`DQ%6sm$&DOwz \vB]42]%SGTT >`9Oo DMkzFF>ڼ$Ǝ{di)!;Nh>fpXB䬜NVCpt'_0NNX.JtlN}3,Hי]U(m'8vKIowFSDX!)]ꡥBE5Gt.ș lskdX ={[?\tm|ҥNc+au֩V}F#IBCD*皺p_EO_ܸ,qz4\ p 2-)FPxoxcxpxaGWzWζu@]dЀw1X:>I<^ȞyyܭR^+#z n;|rfSr;9hhfof l]:MB/ufgissz+S6%ir鄓A{>uݩ3.>nW晞)z{''5oAT8#ᶤ+8 o0;4ot%nV-m^7_/H0&g2/Ez۬ޝLO|&;˲wW[AVwZf}ŵiv,FR-{ڛ<3"[H4>j&a>iX+wP+[:^Kr M5_8cQiɽl> 73DQV!ۜf9N< u֝Wr-VP)>骟X*qKnpqAD3Z=2Rz2`v^4BRD zFz\hX^ To_Lֳ7WD7yTp0e_.n}Ut!ԏ6<#8͊h1O~6_;?_z9׭6c8h}[EkX1\4? >ۛ . ^s/ra7؃ }_/| )nU>S 4m؁=xd~mƃ-#.`nzķ,ޤ@Dj}&B88`:ke˖ (tkSney 30}3Sg'@K+u}E_5Xj]SчVM^Kfk1FXkMð\ 5Beg×5"BǕ7%OkՂB5OgE?B{WF;(]8dX@6'{N}.m$x QsMZgo;6MsdϰƜ'MQFYRhHxO;gY\3QF'')p?{̃.Oa?vψd(jN= S=L\j!@6@ElLmê5Y=-D> hGTbݮiA9oލVVoO{:WP :o~i1*+ݍR~Y^Tg.O==s]p]16ڃB;0~&*`BqlNگ-`3YO_9d`@*i#euqA#:g)Olu1|*l-sFf?S f[cnf(12X{łY\G לO+1nZM|U{*4wL?K!ڡy~UXǫ %;|B.StD_QZ;ů|9Sl\yx1KZ GQO»fqoKZpϿ@v!˽bnEMVA,=|tt=F^,]83&Yx!!+ Z 2pB:g_x-Tk K{gT|} Ùц].+v dqYj"B~sO|Ͷ WA4yV .rrQ3Wf9i m ^idy߆7QUL> aej:ZY*ekf=IO^gbZgrEtpp`D~)J9[nMvpŴ-I1i,igVo>oNQ"PHݬ7}b dDb(J!QNn9Te6 FUĤV]g Ժr7<^_lw$=V с&m77 jl` +*LAbe %Qr2;ΗYm\6*6q(t%^n-r^>U_P7`XgoʆIi%iAK?32֣;RS{2QËҕ\‹!7&o&CzAI9/ӏlP69/S\.WCJы<0ѷu A*%\8/ 4OO_)iЀWe۹Sz""*odճ*A9y %(ZPBzs~ioҐlf#;yN-mɪ]ːAg} !֝gWz$MfDڞ +Gﴁ)+kR'N{7C/TFڔn@8opgJEbZV/q aOCWdmDN{z${h̙o$=xCΆ mA^ L*{;#^fiIG7CN7Σ}<j32>{XF`X2LiRc{s;t{ >CM\\䝞lP~ol (>Ф?a8n,0>ucc8ژVGi⹔CƟOD5[rRԦ"n*ѹS:|_N;`vAai;ᓻTg*RgۧU&cd.q:J}ևԨz]?"VK~ r7p:ѿ`n5{FWEr2p=uPL@ӔEq&i%.W·uY)CUKe% OaN.7:6t+C/vئSxMROYWcv^ ަV7q൙GhO`ܖOd;8w b `t$i4>7ds[g.CCݤCy j;r,TvGݠ}#ag)Va^ "7nwr1ox \YdgޕT_{Glăo*o! F8PgQ) )V*5 n$̹zŒLep[qg ՝jqSi}y9h\{ur^bWe*C'V!C+-PK-V tO96X`'>JEhr ̈X웽9*~yȭq7 <G >*OB[ΔSJM3Xr*dD(`MzDEg+9k#2P/n#rm[fi7F.{FNPD5΁ˑVCI3ʕZ:1HS-tL GP$5Osa+-؏//Z itZ~~cд1WWteѨMu,>,}Eb^G4‡Pތ&ÿV[#"xeѼbmzfH\Jg2a)zV kN!v/fO-I\j؟TsG  lrq1bo{>JBgwQÐ9{wW}V,~.@bJiAMFDN а D="|I 4@_-x, _d-3x7^)#|IE1Qu iDV)|ӱծAלdλ߳k%nʾWG[)!nԍ6tP8"w8d<.EE7;dGװ9 ?QĚm^ViofʡnRm6N8T¸k6ixZEFtmko&s#b8+ו_FsZȲ z@?03,Ihic\e4'kRڥsEϣ2ufj{-*^Ng'>:nM?,f*hn96 NVa `3k8k5NP+[doEJgȦzYkd-8-DND3QaLp_nsNu긫>ͦo3nq ˏ}4!5Y -]_(|ULjإVt: Uob}!pI`~ G.Y Bay{? Q{(bj7QLvv`Iù&Nwo2/!Ѯyo[J0+#s㾛^kZm?UXGEEǹ,K7FRjhhM)[ja[!C):mMYNǎAaҪ=KZ^sR\pt}E- UNHfeYxF#4 RGJږF! |ᯃIgu ` 8`]a+%i:}SޙmHLcz,惽7I;:v[өp4iwO5q?#ʎ8l T*#_V~h _/|VDN؊?IhwMDux#Uzdt5#]] JBnUV2u7A27"e*6yN\-9`7"x1~,֬y>Ud:ɭr*!S]P S#WY>Jpi>4?4]]5JS~A^zU'aȇ$2T|Y+xgx d+$bkEVRJNStQ(p\C PBBpwg|}*.OD E1>_y[b )`P-yA5Y4/2L~9Y~R笭܁X|K1:ӁW12W>qFexxyQS"LرCJ4ar 'Grl%Dm(Lr'm* 4-m"$2ܪx*%8{l=(gbnkl4:6V>1nɯE5Ɉ${Ee{e'OYwulEP+M[Xdٸsּovl Yʃ-/!,e`thI/"68AR:*nK7 [&Aʢ"gSC*ڌ8yyΨY%͙?8u"}N4/QdPӇ\W;5HH\{&2¬P2dU?icB+!|f$R$"R>EM7{Ť@Fˢ=SJr9ǸŜQ *ujdZWW: ϚJN۶,,,`M ikLU3a7'kѽ3Y6]|ɉBN>!|skrHgh'T%a-ǔh5iVryߵm0ӂ|יvBe&DnBOEY!}3 9XU-08GfZ B 3wPqKMhFG#?.쎑ȓ9W(no/^fm {?Nje]UtQ<]RPc E[;yl U]xǺA!!?;;P-i*"v1.T119kvɠtש^CΕm@(\H;Zn3?2 ݕ əNi'㞽@ Է~ (rwTIPgoFL>Z؇/jjط;IŖ{h:&\L3 %^+ΜHzSS߫Loi>89"o4`˭izs߯9߷ⓕq5K&C17BENQ~,Ԝ 3sZ+5T, ׉p?Y|WP+c=α"TvGe_y,736df'TK.=7`+]!=U^|ũF(BGB] <"Ԣ69ųL؄?"}[?%,h&F3QRZ3:B͂0wL}_g%WwRsqep'S@zh2TEEzNr愚6=IKBNƏq}v: |4Ċ4- xa;,D/ N@ݚ_xLJݽBGwilzԙ˗%=)m0]zuR .7iJ=셱w\&ƻ.Xfr\e)H"H8u{¬oP.e8aM3^as":OO\Wuo<2TE#m 5m N\/<|ˍI3/WY?xY=L̤FhCQ(LS=XkYV1 bs̶qkߣ[A&gȺ㒣Ɍp,@d{>tʇ.ê TPR~`8G&*GYd>;\=RCA6I v1^SOi/Vh(LfTƟR9]3x ܕd 4%Փ.kOt$sfTCaAg>[vQSB=̾qNjb7HݕG~U莀sZ[ j6ՙKZn.LA >9h{T0֚ ܻ<ܚ9@/Ff7p";_WYcCp\bt$1/̵EJvW%BMiT?ӈhc)MtrzUӘ@ ^e9iY4bgue7nN82k̡vVe!gAOwi=zzZVY_l.FlȈ~)qk@ 3ɰJXbU C.}j`Dޥ"ROiQ-X忰 u/Us6Z^[63U'bf|?LC[0lmW OB3-ie2o¼bx[=5ǼO*Lf0n7O 5 h.q[7!͍G_eEhVh!91pʿ'So {=.6Rλ݀:ޓȽR8~I >>|%;톓CV~1q8ej} m=O3+~P"=gVY2Y0n/g+qll`lv@5:a6F 0L};4G1IGIzi_s_vX?=S|,>"'vDLl;`l(U1DM({9qJ&,d<+<]9ױl:mrSh-c'ՙϫxRv&] =UUQ{ҁ{Xjm8$/PoIeܛ!Y/vCﻒ*mwT3L } k)aǴW)mG<™ $#ډY`Ԣrڔ\fݤsj; zGBü#ևix+}`Fkv(Ja/1ѼpvGps`Ziaq Q*}RL2x V˛##*"Zq;+TّYX5ZsP25gNֻoEB1LmiZgZf8)][lll.T`/xgF12EIc3drNrVٞ,hBŚZ-dn@蕙 Zh t?L^j}PKyG1nU<>>#nuvola/128x128/apps/khelpcenter.pngUT eAPQux wP7)@-!J(! RQfE&I#HQQP" +(-4AA =@}T\Z 㤱ncZNc"_Q]K'* Hh +6tQ!n544`y)6c,gpp>Czu/\(&Rxϟ!|Hm)(jAw`)}!!n YN4< mH!4>Tߎ~z2*ڒ1"7 Sиu~TC#O0S;0 dvIZS>[l5-_( C`.-}g^,(®b^O4p_ԇ(K3Yr/\'fo#aw0 -f;cgeaNch",AnwƔ[#l$ʕamf88ƍXzB&fO2/N/H!m/)V #Ъ 39%ĻubWV K.&[UScbDލR/1Vyap%aG 8l6T?RFxGux2DtڷHK\F>$Hi 63>?&좮wݨʆ1z~昝MMNԩTJN ObC0>\;>Iwaľ%UoW]p:"+׭_zXzoڮ2{yy0>:xn<i!)Ix4\W /x_d&`(jwzw&id0y?0/:z@ʭ'iϞ*g|vR_G g`xeBׄ\D:?x:aR;bSgpM4W0ClGc^BaM>#Q d#}Ku{P d"~,=7+ٰL0tcU~_JUgMSsdr3!!M/ \B-%Ҹ}N ;u᧟(xg#lTϳ{hc 9'lPPb֔E q(D{{3H:1X/JV' >;/ '<⦣vG;Owda٤#]lw3h> ` jh!AKOWDrr/kr1傞\MW8^;cv/TZɌC (ٔ\3t\{Ow֊4B!Y.GYjY)Z\n&W|]B]tl ˞߽B{ߋUXaϾUL5؝jf\r"9 ڗֽ"Qˆmc &+٨DW,kh!NxAaa

    O_6 yYO;Л[e>P)v4dgc3pbd؄,Yek;'p1 1FzKzm,Vul(931Ӡȼϣj(\E՜<;y`FK-]4zpY"HN a=f+jW&wԺ].[BV[O{[JDBsgo^0Gq@JAW1KUBW0UU؄a|+,2!Wre|C !N= p 򫡮 9Wy丱]Oy:gPu2C_]T9[ T-\Ըo;X "at% qI0 i iM wWP`򅓏 O6L՞IP֐z) тtJ!`(C^zu7h?D] O5[Ss<Թ~t#R6Uio<~<όמl &3ձg)ff'KQ]*+8} [8J E2#- lU|ςV}S[Ɉ yEw[P@~yF {aM0{HAp\p3{K'ooⰽvK?E-gDB-F@SeBwɤ\d_ԞC1[AcgਕVjnó 9srOk8۶!GX/cv2Ɣ=pp?YX\x+UږܼhZ c"پ 3eŊzǛ5K!0Voc*-]-Y~D@͏/Q!O]!,e  G>Isy yfLDKjʀsu낐Տz|Ɗ&!UC& pU$NEo৚7^L^v~>v^+0,v3y ZK]nFGrLǔ}N-Q9ͦ- o$ɸ0$l,M="yjnxxGP'X"f[w`!%ri NTO dP~B ̅,}n~Z*yoK 9 3xX¨Oi3PϰL[Ɨhe>wP 3:161GO-W(VjB%*┵kyy@,M<<{s9 3 flL3P'R MʤI$4O5FKfoLyֱ[S'(khMW +2R-G@yuR!JW"%%  6KR_V,$эdV7zqR\4S6ܐ2k::A<}0@h\ѾNs 2D"6#S 1쉷di o`G-id +R{4'Jw0<urc ~"h4?00:169~WB /) ҢZ]RHO6,9FDl܀M,lcX(L1Qc %B F؏kgZYµ`rJNGSy#;PVO4i,~|TyW~"˘*?b֍>O~Y ,4; 0 Bv [7'iZuRrj3)="Fm!@c z"1 A0cd *FQfP ̊OIC$fa(_/X'RO'W'CJ!KbJšJoW)8Xl(l5*ұ`1C- [NaVSS !Gɣ{KP6$8vQ$3 ȿ8+kՑ-kp?-n~|o[KSCM.KMOtS7Bj;05b4=#% ۭwSlݻ捇 ih/?Ŋ4?Gͯ"&rtk"۬L.HLPV-<\~zen|?KF}|lXtry-_bW+| G@ڔn@K@HLV  613Sf6j=E$X2F 300WTwSb ;2 h9ӡ UtEtN$D:_& wqzyf28'w^W8KNkՋN`zhJ(kWNM Dz^@})߫S$ &dZFFYYGg?k;#˶]-?%T ݏ絎[d0aajW~HB%Ek+byIx@_3hC^Nt pCO͔ ;/W΢/E׷)@CJt^\ZAKqnmYFCXN.w?1\<6ﱅ +_ϫՍ_i4R5MglxH7A{SGfzNBQ ZWֵpٴ7S0ﮘ?ĊGX6&ku^k35Ąً߷WWY!R96b:K4|{WAxZYzs>6 K[3R@ mxQ$üƇM'(XBOOM圃w~RDjz cA@a!6s')'IM+l+740\f#*󒖂f/ eׁUvT0N3,paz,m(1[B{xƛMO83M҈8}rirFȢ%~zqnP~mT`MX@"ͤ)d=(ͻ<jL{ K[YV 0;i4(e. ׮y)?ޛh;].\X݈\tl?Ͳkޠt`JnN"?N<9#>Bcp`[!~~i†3oW_blO [4)vQ#/[OɥM5IڎGG! Z7'  bA>)Oy']ޥùeo%~ W"yG9P97ot5̢1fJxD0"C.K)a'0\FηQgOBXuEB_z!ۿKr"5㫲/P^8կckRh/Ah_ٰ*I'`ITmUEԀ:Vq4`>n{vZ86"@'vrSAJX?m3^|+MTMDU !5IR]6?ڲqhv̖[ w'SOO@T JxcsfRW-sbaRE` *Wh@-ʲO䝴-^|NPwDGnʙt`xri)Ni".r^ݐ&GI`.Q> E@F=iyRl֋(P.4~3 q.I2|KfD`6Hr_JJ)g:Z=c=#)X.ϭrs}BѿftRAlC=߻ɇ1cgJW~? Ç1+2L@ZQKaE:.}Qs{% rHo0^bĢ_2P(RZG !&')s3Bz#4xkg 1ڟ@et°:Sƃ]-w6ݑ$'])tpTqqm'~ftxpA %+0__]}I8/伖r۰* [%(5?ZյfO%0ǏR?bܒf_-xl(_]i۴7t~nhШ1Buu?C(OՐVi<.O K ]iهkL!ZT}tk#5r%Ҏ}͸4!C2Uc[U CޥF\PtCqk\G]=݈D~|C8/{/jwȨ.:{]QIN qҦJ%q{/޴R 퉇|3_u G )E1: =OOJE==5= ڋaew;e[M2)w,/ٹs!rmQAvb1IwJ$!ߥwcj&=4/FLr?L-x#i4 SpMX5m2Ҝvg07=@/yu!5}k8c:cRJGR839Ο†Z$U sٔ ʯ "|СS@ߺ_:v:rʭ`AZQ2B/%ϪіGG=2X3eq>PZem1šk5`5c!HXz#!BգTKr%ej.3q5woQm'^7qqih?0^ʛF;#@wѺyOӓ~{[3oquo{UAzM+i.nv]Z7mĢX 1P gtrtjy3-מ'*Fŵ2H*Q@Enh chbph3IQPDO SM|CgVa@5$;% }D8apds٩CKN_Qɾ0?x"Rs=Q{(݃Sc_J(*uEwk'~}4ppK5<<}!u - F P+D5.U/Ņ8-``| 0=snQXEohIj ijQ]LJxf{@ XXM? Uf Y,Iz9o<@_ B 4r?`^æCʸAA-)@TB5ɶດܾ4^"_\tڟRLMvU9*߁.{x` %V:J躪SR0K 1@Q|tqu^1{fa8\3p W #mps1&rq"l- b4̰֜.F;~R\e#@aS-:_իH[HBȺA>8DrxI ΞxmGwat#uZ^eԺpEyaj!ƕ.\n(ιRY%!av= Rf(W3*v·}|9o߼'jk.C[.u70%p7ob8؎Z׳ssQ?q-׬+yoIZP0iG2S*,SÖjMd},Wsm&@"Lw?cXD'(V'W`@j~nG-COA ة'.6̜yl?ڎY읉2W5O0W)n,!۩)uzSK1KWpCŋX\A<:}L#DxETި4S)P8xy#xcE*騒>}o}@҃ ڌ/$3pF=54l!e.rf"I/FSYN+M o"k%Ň®He w=AIYiσ{MO3!.4L@L/Z%%zS443l^߽jWt vʠJnwoh_*-r50td(AH}t&X}8Mv|1*NTg-B :H ZqA8D]Ftǀ=G*}*)E_#s~"#Y"yb 0!3Z0h]Ӕͬx۩v%Wt"[QLb#Dna!i#8o("@_Qkaጸ$a =#!l&!e9sϜϚ`CMC%IێJ+Ӓˋ(:Ɵ_msC.@_ Ѥ 6fpzmmY~Z _GBM^c:D`wl֛#g>NtKAg~ºC]YӘ )>.nÅڮj=/ 0?ɴ7C?V)UWx}<(Ov+^!D,iAy79ogXw2y<ZJ*2?HhfZ^= Lt͎Ў<"y.Q!!oB&tf7_aM9Rwzr=~~AᷴOCBm+uU'\ >ծ%4=2 >lL}(޷ a1Wy6cxjlG|tR-)rZHu'躈izjGj8tel/>QLNVVזv*UA"%h _5<=g̛?k[sY/=[otw7sj^uN&TIn$SovՊӜ }Dj%6'esX?w7=Tܴ&]`-'q@ԯą f,9':e=r%d'7ـr^TBw4Oǘ*\ܠ6nj՞[WaU`o1ZD5pLe±JpubOL$(1tXN[ӗ#=CeΞ %}/idtVW22DaVǨ]q7?eM Ltr!dwwnC.>Γ cJw׬U V+Sˆ9mX%˜ծ '}}9_ya+ڨ4N߮{gm ޺|'^|SKKuYeQ:l+41;ܛ TF;Λ+s <H9;@%-ˣS0,lz4[Ǯ06k+9XzϫcoH`'ի.uue;ą0>*U5,( i!Q!nry^!6 ijfN_iQL=F 7YXߘ_F&b8WFoН'}k= ;oj\>$hNP}V&$%:?Iu))i&^Cy .?* ߙ'Hmz4Z 86|pY|B \x*ciuW3///l$O}[:{᜖c\J MCyD 91ĻV^db WlLɌ$%ϵ =,(oJ+n&q0F>fwzwC15 __wp9&A5ٻ|Q]<exO>d7MuvIbCN$|gYG[3^4S blAݗgΞYϯ1-)!db a>ҲtHl:rO\'8"Uo]XȓDux)m@Cz;U.,΅uX˟$1mE7aVIb]Vrd]8h{ 5oېa{Bs+?f)5g![39XA87Din\7*p¡ @3*rA\;69L'y_!!tΟF\ d?#whQerѺ*"g)LR0_,1f! YS.Z#H3-'9FG8ʭ1N=iwyLqoZU*ljo}S$IjJǘ(p ${w~?u؁ 0%}FWܘmf%kk}e@M1oz[\9,~eI-lnNȎp3pQv3+&˅m@90Gn ï#[]ՎإsxѭTTQ8&wY,7Uk\VesUʰ@+A"7다g ᩜUC}^jR7lYQsbEJ2 Ϸ/cXĽJMT]hWi`~O&&/Oa:0FDz0W|7Qs,)!vQ݆AvsȠ#Uko`X+UZvA&Mw8< $7g='%I4Q`9+  'w}QP'kV;]w607"|$OURs)d{r9~bFY^Ƒwz&C?H~?\:,1 LfO6nxMR<ԺqYh. N-#"39Gu[޷ݽnjQ{;0abۤx \fy=5JŸhuT.} R4g`PP(X_n#8Ly<@8 x{e$G\pHhHuctd 6UBZCQўIz)t ] 0Wr\e..P#1?Rl* Vښm4άװ$Q=Pg^W9 }=PpX>v~]Lܐi b8!qĺadĚ|&;6ݩ0rn5{UՁN[YRb{fbT,pdgZ@șPKPN1v{<!> nuvola/128x128/apps/khexedit.pngUT xmAPQux yPR>|X<Tp%rL-mJDqMi2Eq+-mܠ\+yx|g^f9p?}}]gxrC֭P3R@cBN傌\ *yɾbD<"ck"b6DD< ܔ9RPP֘YǦE#Z` {c?=~.IlQVLMmeUZKl"H'/\!2[uV;OҞp8LPqIT?bln֫yaؿOAK'苺wN|~4/\dҥ؝m?JH=t^i2JoC19:}yT!3&'-- ɴ+$l-r&/ܹޱXƎ9QL6wϡ6sF 2֮~1u<4r`X`S5 FҾKЅFhO=]cqH *좦E^19c{ œ5棶 )|RA?.; "τ1c"F~irvۑBdW֒e[_BxT "$̵@__00sX^0hsrmNdqC, shLўNjAK%JmKpRF0r7fK!.: (捘8h8Q*8^uqFJC@~'!SZ3t.Da6f̛b6hReGE8Rlq );)MS oWV -?qT#䙂m@`3R4Sk0mtݟKBDD8&"k? */MA G15O;t띒YgeK$0EL Y%j EEo`9 ^KdzK!EtAcmϢ챥BJ=~u>6F (']6fw^q+`(NkĚCƜʌБbn /oCC 0'c@'Va1F04#D_"bEѧi!`)W :A;H&o|vP j/s%b&B[Pw Ӳř:OUR$cqqY4R˻!\& `ܨ`]ijAcP1zUDIbcE fɭ`㻙fC,v+L(R-HKK84˨%N&*ZYe*e_ $M{h %ypa̦Cm؆U Ȋoɔ] Ch}@tkX#B6D>\hn~fuM=cyn"Ƞѧpeo 6 ɕ{=I/VEQsHcK5zouȶUH~ܖ@ԍ涑;X[I3`4Y h~ŀ> cϏ6*X!AL (#MDS֐3Y$~#M:5̾ήYf#,Ag-Vs%%M(MCZOR+_'9b/Qqx'',16^yIls'|b[evxRy)~FF(}]~^):I0f@Ї^9 ;$8P-d h;L߂NQ~981 QVRgbDOC9=#5ѡҏ}'~M8R7' ^䭻AgMR\8_s/šdByG6f[zǝ-u .!bT NW_UmרljkӡW}Ѻy{LL5b@lMŮдT1;y|K㪙j1n:ţpB={A|g_ZD6+-FiT@1x7qlh- =sxŅS\ Yua,_\x@T{=/Ro4ѽ--8Ow`d,$l6EzG]6CCCg\gy^ ؎W9|3poR933zj][~}vZ'zֆ*%ETUS5ȶ>%y⽖RUXdvp*-7&t6ɻt= "mG܁n Fn蟵 Y;AKRWr]^1(ݫz/مtU|ۦX3Xl+%}QiC4\,syŸt^W/ b 6w9Τ-qPcO^/iiB0N $?y-n]ꔈC~m1L)o$S8.37o]Fji7D˽N+$jeE2֢MV~.hfBw;#Nvub&@[$` Pׅ-q:YCXzleKh>0)L/dXp󝳂CfLmkt`pU@)\NsOgJ, 6fۂt hI2퍕Ww]r4= s0ߡإ'{IPy":p7,A;;Leb[;lW⮤ or|7"SG}_wau]O:2%s&E~T{ދ~"zT9zt qwKHBFIU F9-l_W7K:t 䚺m…Ƥ)\e:&c~chyq3J9f*o%ԟc~SFI{$4.:YyZl"pC[Zs]?ć qd/i7UD`I\az,ۦKtV^ o#U^kͬ>ziAfDѾl6rI?q)[L`94ԍBY WȗqNwR iȔă{Je[7<OjhS7-vS% .rwf5PXVKu~[Mshk?)k B`f5"g:z=vbrW Y6]/̈́&&A[iX_ӯ-ﭱ*m$JТxUYwXDfs3._p ,?$1bqCgS Ϩw\DӎO;j.95(o@;5p{lvwjJ%Sh "0w`kM*] Nؙ՟ʦu6);_,?\JS'j?di/>hrԏ#10} |>9껌P,&UFkrj( k[7 ~-͔АU߼mfttz2*>2ޝх?9(.~%Whۨ}D&eY$:a?P` OA\26g&ޭ&~nv ZTw6$G-Wyx.ھa tB<} M4Ʋ[9O5~cS_'bTzv'Hb"uq_)r!{/o1ՔR#V-kk ̰C2ٌ^>C N6a)8znXh)~v[RhwvVyq_86ӅP V { o /P04\ΰE/@lBd\KW0\o)@U* x&1Ĵ\WB5Dw -^9Q.K7gW3-Q;oO^m4dj%MW70GqIkNK9aɈAԲqFaBJ֘!㤑?eڢAgb]Iq\ヿ~B~-n[y̪Y,'.DlFiu͐߆5˻Kx7ݭBQs?y;fh~+UT:z:؈G X\JWtul3̾u#-G֣" pTFᝣ=)[<#"agApycV(fU)Zy%ҁ4NР]W~SNE\b{ `pB1ĐTSר9J {Gɐd*/ TJ X  x7룳c]za?%U|e_ȑK!ih^9"ƖHmqː `Sْ HIix淟:H_G_ڪ*Ω&,"C& 5"oys kz NK )ҹֻSO^*_VAg<= 1۹n+db\jt_ﬗĵ ~l;]R{wKENtu\v~ROn0Ӡۍ0]!|Ye@|">/ת>`>a:!=׳bQSy۪+uh_Mfz I^qHPf}iBOK15_Y ˠ鷘m|ŜXbʹc᛿|mˇXw6ĕ[`h<Ŧ|BbRzSgFQalApU3ǼYLR,Cą&Pr֗yn+<0C[YX+}BɗvA7][jaH"M0U%L#PeI+U_ P&g~2\z}x%`̜-ŭ0f6Dol9- |3ͩuuX+`:*ŗ{SSS v@7uA6tGu,j4 >)x*iJ$NjPOGt\l4zm߽[j(Es~ l-{vhBK&e74|˩2ӕ{`𜬎Ax¢.B? R)ͮ<X&sPecD; A01Q*Ꙏ9EGU^DL) yE:Ǻi Pѱ"wxu<Ց3Ͳ[)纴nZ1D7 xXe2f^<0L1HJE0+vD{öqY#2躮sbEm0T/a_t}̊La~g^ izvȡ2;@(YDR +pbrsȯyl&:&kHjǷ,mX׉Nw|6T1^ uҾ t04C=7G F䰞 Wy*OK||E}KjI(5|0f Ctubh]b~"ts0aұeԿbI($Wj d>|#a!ѐ"njƎ ֚I*Rww$h4ڈBlo2>o&NXY#E$MDs]ީ=oت\~)TLdTЏ{DpDݓa?hܚ\G :Y].V4g"|0S1›* d~Rs.TKWuk|ij\Jw.(:m9ªK5mb(76{[wDdC-Ro4¡%ۦ!ޅuyЈHږn2[ Νjp#&<IC~N W`]XQ6,"3tycz5)r|;zHgI2WښhĊ5w\=:[A=S*DMg%!鲡JOl(ST ŸT/tԟf=/>}224đW5CYPhT=D-# 45ə r6l%G^99|Qd$ {@/ ^*Ц~Xf4.GErkۮ4>lʼ" &[67Nv"+,cH= н2YNռ_ڱ4↞(Xv+PC#ԉ$RR0p#i g%Q4#ZʔNkߖX̝D̬*h(U@|O X]ܔe~~غȉ=GP,!kEU^FEq%ܵUMP] 5rW1IcyXP׆ C`40{5Ф.hTWBJ$ 4D:wGŚT{MYD}8ab>A>I%0-` JeԎ*4+%Ä2cLIa?VS8g"VzZ=bBs햝G[؃""0E 7YᴠQO fgz۰y|i)9rAiG> 4=Oi.6@VZWp_. kt 񗏣P Zܶ`[xI8-Dyquվ |*vrډ߸rB5ـ^OzTif!o"H`VF Iwpd7߼̡ bT;fX+喆JB*pb iQ;VwVNƷ9ݫ VޟZP|+=}: L) jSQW-.8 jxBN ;|)G'3-bj4 Mu2U3%Xow+ Uk\I ,'G`4ń5fbxN߿+X˲= RCqShOd`b"6Ў;#{8~i]KM*=6>u l P(~LCHfMZoQeYN[%BZx}Ӛa1%S%6ci&;$%Y[OT9plo(kKJI]-;r*źC^^kz EGmٛˁ;:/ c@iEG OXj탙driEi0+'>ƙԨ¸Qa4tj)NU@'J͕^b痰L{]E@1z,,dTA=220 oQ=n0ܻͪ۳-yYD x K!5X)f֫3=]'gG,"Vڌhf__"5f9 vy4I?5쌕bhm3LO6 ?<:m<4}r ~r3u:] `Up º;=|UN R{v#u$f_,h x{nGX.5̘F|g"*c? N 3v+0+chl\܂퐰f:WtZIV~cqC.07V6=;ع:䈋?Sߨ'Q7Dz_ko+M $J;| "T#-LsJS\ݺC-y෨)x}E楃޼X(hx3¯]w2(´|g/QzUvW:xˮ?bE?Eb̧7*\s1"RIX 3^)#LUiaZCQgQX6 꺁Δ]YnwvOB=WvI]@hпD*~ b/mUJAȟ!M1"q#S9Akڹ,춍\-j E9v$Y:>-F`!/þ{67OAk'P2iغYY8ΑDlL)ud\~ik7cLpjc; n>(,%(9b|h/":/ }CL;""98.+C# EwvWV%`Z:'#kx`/m䀡0,ю!ӭư4 v-**HܶX̼i*= tsvф…i$Kf9cQ{M0(} :$p=+?d?R$'Fp3wllId{Op\KU͜٧T?uFBj!x?720 SBs"NI^;u$K{A_}X0pQ6l4(]Z0b.D="V m9 88?f{ON1&*P_S- ov0K %T,:5vحD^b)=O/ pH:szD0 ,]ic+5~MiJH_`Ad]m2?Dާ$pY;BY~U&VqB-UI;zkds3:9-Iϗ:e]&҃/֪=`jQBU϶1g1P3n\ K=rObBQL8>>"v儇`t2nr1ΐ1ܮxx\d"[w6=Ga5Aϼ!gO 6==8w ;o;ٍ(^^\ ^MU*D:ԐTrpJB61RBOPA#J)$D9B J?j0*GyB6J™À־cP՟G_0Kُx<&TkK_:!zn3\NOpJPuP+ Vpj"n:+7M(onyEK!c"݁rwPkljA-}!)/V!n[aeP JE(&!Q&041z_ώst'&SNPkk,lDbԾLD Z7zvc!zSP/~c, 8W XrlF9H$qNjXT(ck RՍO, J۸G}i`@ Zy:*:C_Q$vGo_hzsΨߖ !|S*48!̯d}4x=e8)Xc3b|vp\C֏s;Ӎ}[bCbPVVJq'!9Tql,rU~G*f)p_G#BDe*,niiXp i )|ǖdnZ`׷p6mA[`Xg:v{<>(hJHR#p~@&Zf'w;8bM4u>5^PKMN1rj2a"m# nuvola/128x128/apps/khotkeys.pngUT rmAPQux z{<}069ѐS6H*m O9l34LΞ,jt=B*Rr(sݿ}}zm|s]}mT7V@sw\_n] "wHunt|CmǢ'cУGw,Ԑr$mO cƛ)oT ( mpR0h7Q2C=WFF9;6TFxi%\% 3@>vjj.3YfB[3/ ll K2l[! wWpPWQA)QDH 5#Ɣ0wǤiƵ Ѐ-?2lw_ܽ0֥wyvM B3}pD] yrE"ЀcK _;~^NYI2sI5Jm;xnw;F:,$! ) "4c>XA5HLfckmotZCov/!^[j PG_ƔQuI$xǬra;3ֆŠO2. 2fiȯݎc=3*+N*D#vO=kҝ8v]y%r(: (b&aytI?PT~;UR].ФJgg}Ii2 ՑJ5lM:S_3jizm%0+XKlt􏷃'TrI4c8څRҀ2>c͍;s7^ -ػiGO0]]%’-ó: ͍>zwq-Fg<2Sj(-Y,z%c1,gpi)i"Fg-H?D{߲kcAY|\vzM3g&Dٮւ*35g~V` k)f5V'RJl;AN#}IB"IzZ+ų`j!_}EXBcK- jZ52y/Є*k&RpWq^|=゙CU!鰺hדSh _̺0jrnIiLSFH/ոuau0 eᨙE|гKɰ?V0ܦcG{رE׈4Ȁ+2Y($jWM){C/E߆ʛԘ"e…cF;"yTdb2Ux1f+޷mXKM6>o=]/hTM&3]A@S8^99x@:%7(>}+յȞleEAtrm,p]=ꭷ8f3dq} 5MXB^0s̯u,5df;Cڳtsw^d/#Nv[ʷG6nJRtgTc F ;*_UH֯Ѯ,5*7@erF}(wE'%aBrnG!j.x%-lzo}"4mמ|TﴲIv3΀-m WvDjjnC%Ag& c>krϠQR? DP5}lMc@Q%a"S.T#t`i!_P4`E[\ oH[k[nCU 0k)nޘ6tc74E䇛b={a e͕@W =6jPXX3Ed^fߘkt"Xv{5=2ZCmL7Ӑe괆H?Vx7{-`Ӌ欙 Lϩ"zMX5MIq|W5O)Q}:r/5rxAW-M@_}]0w4xP?p_Jf&q셏S/Q[ЎGھ@CQ:e6A{3 D'zps r-z~~VKQ/FGYEb/Sňs?5vWBUn1 j`I]O(k`˖D{ABi(KJvmds1Sb bhx{?bP;md'A`.-t zBK`qd G-o= [BRDrK(jpG? <^r9;Y*޵¯ `Jq3} KԀrbU>(l9@AO3 ӄK Z:8JP/`h9H|8Z5~cuaqR śǮރ߈W⁁r>+ Rn7&a) 8ЖʘPĉn TU&zG5.9M\@efR\ǥ(&`V y0J9µĚb̓i~%GgvkzѼîZLhk?R[jCsh2`pEPͦء~ =PB6?m>{w'v~[ ZZ ʯ]O[n OC>`&ܾDjTz/;by4 ;ghm0lLSfT?E 6xx{WRv-i*ɧ۟Y^Wf>DI* 1p\1ˋө\ΐ<ކ_$o$|,"o1맖o1nk* 3FھH ݖc;;)Ud TVyV(whTz~uոJٸKW}16}맼~|70р Xۋ0?w _b-8]ocА#Df 1nMf0%2o u k^ũܻ&buT ĐyB.j:/l.ik_9eŴ.N.qi'Jf[btY+AB=DCFūb'(D{1&xc*Ez# ͚w /Ҏf&x/]h`b< rT-jY9yߩ3 6"H3oҶDE (Bj%]gP-.8éjyMRBlMA(0t) QOB HDLؼƾ;i7Hp;^_]&hLEFZ/ _$) Du'hH~!L瑵Vr uzOZ ļj48cGvGi+"Nu(@Կӭ@>oN 稉%}21z h SMl%6\8LeNڣPAoEAv`~!Ti9=vhn(QHB;7/zs(A@4"P̑gG A$IuՄ̈́/~{V|4v]VϜ+oDw=7iIMV`!i$~nII&{*#!LԘƔ]q:s њ{bow&ЀYi"sv˽XDl(OdB(nf;>jEDFJ [lkbRfEIH.P7ƶ~@5f]2s%h'o4QY֗)p46:Z-]m(Mmko1yIbMxX\Վ3gBBiryzz meCE6A{ tv|}rg-@ӑD;5~<bQl.:ӧnFNԂq ^Q2V5h!c hA@V`vマntu4d#XeRfw[11}aDo,>eq<๰Ϝq>o))ufG%15{033ŵX9)=Wi(!8ʚPmx6b^o~]T N }}ڳ2_O;\T`kU3I0᪪ ýl<,n#yw@ ʵ_ݛX͔'nݸ&5~J* C|-[`&S C.pC$%"Am~n.ؐ=֝ uɠ/e /Wk~.VӅ"]˴CpONmQ<97Ocfeh*AծLK.6NgXW8pHZ#P>6nJL8@ [M!;vKL>]_=EMˌ0D?a"+f3[ |Y2&. Gmo+$l3O|/╒DS ݩnJqe˗0,3$j!L&pT_\EvƆ>8a9KxVR1;P4犃N:hU}2nH)>b~r,Tf.sb3{;܊xIda:}n$8Kd~n(&v@; Zp ꒗J…h+ k`!Ts]A$+S %?/n2QcMޫ`4] wȾ݀y-rZڽ0B,h' iA)>1,ۈ? xP&vPֽJSgn:B5fǎj%O@9 Agsϙ+=rY/cM ҇q^WN!< a^G7Y= B<>ڧIoFy{Jb-tzDͪ H9F#Wk).\8DϡWeG!(ϓ s㟯NA8sCm>YŻ3Fn}kO-rVggGI?Uhݨ꽘+a[+ҝMӐ3g#+ªٝԑ+}oJ{HdeAˤ*WitpsSBf4{u4.fRE/1;H_縮 Ye+pg3G4/ ksY{ z%*Qo{0g=b'ukjPRQZ M/[~/G"i R r j8:8(tSߤ>|u֋{po߸W$ _&y[ uwG^ _R_ "#6==oK|O~Y~@?0V,:*9oi ^L LӍ}:/v_B|<׳c6`:C9`qwm(o{ɡ[BqGB5ޱza~vuV*a0ds ۵95gu̽\˧1?(υf*m}?8 (c=T̲G;%XdIq!X U>?'ddjn9k,cd x7hg?-e 6ܧ gҊH.1*r,V2RSE$fу vQ8 GHiSV˂Z{%ֳ)sI4WOnYlhu]4uJRI%Σ(Ji &4Dr&So_:Wg-wnuvola/128x128/apps/kig.pngUT gUAPQux 5[ ώx(-P@eZ[_XjT7;)dXz`ݞIVԞhkã} @jo.P^2 *^tMIsD yCSOEΜ%%\[&Q*AV >/c L_n̨!Xjf׮]߿{_ԲQ/.}0@|AtEȽ֎A21'Z`ҥc̮n01Fĸ\Zs?tOnfͨQP*eʗ|#(ky ڪ3@eqLVOl-ܺqۛ~䢳))p}6V䷍FO<#6p4MTUrPUQ9TsN8Tg;;y7SߖKi]OfvX$ѻZSf@^8ͳ8*ĉ+~|6VJɍ05pO_i'dgg̀MgACVKzQӇ0M1*Mm#l G֓ɩƷu8&Tc7TTI z;+mmE FD06;{` 0[QkVWF;6[;B06Pn):__ 0D ,t4iICTTQ11UbmI{57UB'/մZRL-3fLپ 5~[ߣ`/WQ]WU7]}pt#hl\4!NS+>lM .Q`9@eЌ\(((DMy'ږ囙[Zޓ\isphF3Ι[ 5,r04rl6l-h c'+0YAb1yMx i!C'{rFc,k.ky 䔩ah̬\_,yHTQLv6C0m%h{+T?Ny:{y$:†zCNjq0 EEEFm$rMyז@g3X3HL-96>.tz`-|$-4ۻDn>&-*}}a:#$m< ^'(0*@U\DvI-L#YR> ,o;\ރ4'\'Q# %?ju?F#TiXo#Į;i#5CG]SZqN' 8־~Y _X:tP17_K/BJoq` ukQ1TeNG0>>zkt^=001z]µݻG(8ev&{ڬ}hPV𡷜&_y4u$h ,Qw/>}'N}vB< )찣Hs)ƳOnljd߈Qje[R%1u.ɮtg3Q^D^mT:NH4}4J\H-QHw6eX룝4 _>B՞ hk_0 5!mj)#yc]$yf_аLj˭R $nبDv ;wD8tiageۍ3h8YvʧuyO nGvOi'2Xˌr3%xXЮ'C] z.N˃N7{o >m9@m9c nqo |$}?$`;܎FwYF"xpZ<9B4NAa:lT5fRܤ|-aN. T'@bT[b?#ƅox^"+;]&8PgN)'nݖr3Y4U/%ım<-%1{u1f w ş_{W4hRLPOܞ@h1D$y r uPcB9v$y17NZBG&@%CdJcM*|u'XkqױUÓC.@_1ҹk렼|[rNb%ʤ"ɽC+0,s?Fz>_0T@9n9Sds=wAbVw?;T}jR@Kx&Az@-JNcEs(Ãu>!!:E5F0>qnOK/S6y"?OW$U<tXu,?}RC VT^NZktD'>`E;u+_ xK{oRXfCSc1Rli:fdM-!M\(q/hӧ\xZ?gu * ^j8^!xTu*0`vwzB1ynrYfam M^CwsX? ȫ!ԜchNsuK-N@<˜߱[ד^P(OIA`Q2bH9v]Cq>Ǵ B_Q&C]-=hh|,ohD_Wȹyբ xnr܈+t^ r- ʲ^Ays)7K~.?@m^mt~…rN!5ǤP ^_H0 =(.`_uF{U9x;[egs];u.C\-P ϮjNԔPyuݺzdp=BWu cn1p1Zoi`jW㲯]kP֒sN |7'Bm(ESjk&iK[vD:?%oJ%%yvH"jSXcɥweQӑ@9ܥw܍鉊y,tpjL9M.,<2A5`p"5m һءuF94o'9b-Nsn>5 he+v1k{\(9g쩥=\jMdOЧXߟG'& W0@q<{'&}w_J@' e3 N'055kdKz~S(1ھ_7gIn3̝ߴg=erKOT,{hў6a1wȑ~%F@\u4O@TF,Շ1^Ey%z_^K}r;u&~)(or7HkJg=1_f{p HmX>+rXoϰt޽Jn^#.liMĀ͢-reܡ k=#܀\ՊjEUs FpVش6 o!=%'{ 6PW ;#yC3P 9K6yHBR~)šøyP9%h=[Lrdj<r #':/$ H qD#nbRv %rfTl6VSDf,//]h]K纹jK\pw&y֟8~|>gx辠s*Pjj .U*|d!5pe>pȚ\zwaU:Ϝ[ 16F~P-')QKɥ](109ʦQ?tWC3z2Z%e1}KKUǹCJʡiD"oȤ斧Xբ5b'mɏ+@pob8|IR>EIs$^6cG+ūDjyL_~O</r4/oߠIS Ȫm.o|TWr"nEQz,j'<9aK!c[&'.$O 5#\ʯ V )@GU~,,Zd Pr6 E'+nжKO.Qzʷ?]w)an!Qc4ctʹ(R`U9)1p/ڐpQ/G@c6ev1K:m\wx"~jNH24=jc&=@O:R۾SOޥ7+W}mH.k:EԊKaX,dXAxXvʚF*I:M7]ѻש 3q9z?ߥѥqx6UI1maЌ4_rRT|MJ hI݊" 14]5'D2R/v ʊ4 v;dp}נEh7[niQGn*xZft v[n PM>n薲,l)A1бL\MftLTے175X̭[nIȑ2ܼhrD[߄1ad'c!Cي1 $(?RͰ۲YӘx<6Պc"_#7"]3EI}|XYk6 DlZVןD$d;N]gm=A'i 1XX4֩\cy E1*ZyJ1~hs{@x,ToDԵ X)TS'xӴ^x~Lb5s ;k4Jd#)'n'b%!grUgܺ~&[:vNe@h&+8f}슝 KJ]]cMR¯TϤV`l#êj r@ -aa|l&axAeQ[YŪHY8y6ƿ}?jzt9b|,*x޹sQ8ATⴇsdz޾W5bQqdmmHs-Y>:X5Y$ʀ?։F~a{Ӆ~{Q -fꅮdY~1IQbի|ܮ /g+~S,uN΃u)SpHoYJrip)gQKW;ѐG7xF [@Z36Y o16<`&|mPwХf[ƨ#Xs5?TmߵibܣJ%Pve.R ǡ Su_+G/͛ЕpPG4kN+G*j8ǫRP1XrNC39fZ']Cmy0՘AQFbl TK>k"}0\ }NҽI̚Qu-VuVlJ?IEc|q*ќ~M1AB6Vs^?GÚ8|'K|{yzw=[%Υ\}0:oVfkEY/}Ga  Ar1RS9ȈkT$~ 1{@mmB|_T̶|n:Y9'*mSk5q<|o(yԒO-F݅X.m?3[[­35 [5n/xת=1A1"=;Rʯ%屌e2V؞}(<2U^mt 1=W" C%wdcKWpq:3pd61^>I]xmhA.~ $k3[`oe :_FI<} |K!i9$I0vm;pđ_He#I8Qm Oc瑡M4<_H奥iyadi1D8,˗0x>!Q’X@WUJLrA"\}:-=f $6f"N^M19` * x▶9umKhyAB[Wәcm~HJ(R+-d{>qdGi6XYs޴kV(@=^QIUS5s7G.Oy-yh2W,ƐG&{pGQ&?ߣ˛wFPRczoJpPCWJI9p噱6(!=ԧ4w |t;bF,NHhyW qiGǙG?w3yy;z!ނ#̒|5C{8%AWaU| ^ŜTo^&hvjf'i^wiC^°8ŝtSÝ- -Gv`4ޑG2W'j~+G`D:Y1Y4@=l Ta/5g/<'xLn6GyׯC'R/WqjPL7:$v_&w؄Js壟dLj/5vg #7%` |N_xqI4kꈛ WuڒeH3 v u ]GqLHq̱~NٛpT䮾c+KW0TH}!6!!mQֹ<:d՞ JWHɉK|aM!>‰kn@rure#qh;T5s"z~&G]( ~~]3c=*B`KgK憅 400R9~#hD$/(cԈWHȃTrTjo`W(ax5`ތf-E<07#lʽD&s~Q"DMDhgncvs# M=/%4)dhg{,ho&4ߏ+SNŪ%maIdɅ1#3wըl#VP a}i#8<ԬUN5jsw+75pp ]*O e>: ƥ%֦Ӷyg_8!8U5W]K\XN`B[ufB%Nϸ[>wI~DQtc6NzHK}>9Ē>ނ CՎX]>9Ji\?u77HN_ E Fa̒TAxȢE 6c⛕8!N&l.Q( gM#:WH6a:=)Wq՗-RR*"YVPM6Rc^F%ZAn俯N.Xoѫ= =5 p'df>'f6$1rN!!kl"vן7T՜5.vxɛ[BFoC`}Κ2#Bk>}{բfly^;L`r۲d鴝hrK$P9} lif c̯.h]koG0 jJPdjM!qf)(&R}_^"]LDŽ,i~EvELuo:]Gxq?mo [kt";FϾk7;Նz4,s]*j/5k [TldRQDtǣ~13(e^~MR#p-3Fg.$Bu'f\JJG7cfJnpȡWqoD E%E؎1pV2zh, $I{ਲ਼Kkd)"sC_o}-]W=T8W. g"Ex]_[9{x*JSw?7UC1W(?i#a;Y HMyVSIѾ+'0jFIJ1%3ҫx$A1fX~*3*Y5𗞍k< >,`9+5eŸn9|qx2[*WuR.v׼H2Oܦ% U@Os: wLQ6 { yec5 񏁃7հ^qQ{$Lj[%rp(n׎'Wi'qn@؁N ҭojpOV ehnM rH5֒HJ* Y <*L_@GCo]@s,Kă_#V83{x}w RGؚxd3}q[7VY#҂Ya^+x: O3*?_u )|*ͦjUݨyDn宔aN{݀ ͽzI{gk뗑tACS⁁Sz(qO6D?f&K K>N%!Gx4$b=}ڤAKku_n0~焹=k?7+bXaYkYM#6BP֊;|xcs2Mb/K 2T=f-C5Y8$9e?$1{znDs"3C8^`ݏ#(5^JCf:xA;ޜOz=*JUWU-]<4DU5:zoSv»دAVx}FTnh-n*ۛnd^^'(UaWMr~h?aGi)AKoiKX+W2nQ e f-m؂B$ХeG$K8?" _r:ئDlp'QUY18C h<fiIH}Ii(۶xw,v2ϕX͠LݻC^}V N#}癧 J.gv)Du1 zwJz"ak Ws R@($.3Ǭ9TszkmQ Bg%n8jFņI:?4SkF~W";Є 땖03Vy3&'r8$vF%9*Q 菏hWkIxӕ - G͗/8UھCp-#vsP1H1'LRy8 <)_Xsw7F6྽Vv(9Yw[|t-e]ݥg'2roJq+ΝUIfmᢩ2eKW̃FLެ^Ǧuu%jh4Wr֦ Y؅^u@e[XbWlB4[?Y* v-|lƠJ-Iq?V3y(Fafs @Ve ,]\4gJDEڦ<;ryZNN2@8`+*x;k= AKC!ϥB`MEfPa™~xɞgRy]S1w{4^~i-hR}@G4Xp iOJgKL{*AWۗi7&SHƤqޯ?D!27#s%Swe)xэv_I?Nm9DZI=]g;i بaa)Պ5}F)i`\yF'A(̥݅ʠ~ZNӌA1VI®Rw=Tgf9lalBj\gQ?ȬVw9ԔJڋ=Ov܏|Lc͎o$|7;P4"1HvUuo 4K.cke ncktǬ4=P9=xUȥCW4] kg Ej4| ߃ eӖ(1jz_wz3[==N~V],АWp[*O+"Wf%h7YH+ » .)~.T Av6I;&~az\7ɯ)$(n3 L~1m)7F5y54OUplr@z}K+,>OZ(i{|jfM ^{4jgm.g &=&f 128Oy<V<>(h` O]/؇\a-Jɦ"iTJD4jg_;ZpEfRtZ=1~Uֳt |*י0ߦ6 (ҀD[Ҳ={k[+PKpH1]>nuvola/128x128/apps/kiten.pngUT fAPQux yy8{> c(#cJ}]TN[TʒPGfhE)2)8(Ga*-XTFYǹok;s='gz5=6xEF›C>nȀ cma@e6c/vGPJp40,740dt{jٰ3?HT -uC]оrFr(*̊4D(&4^Z0?[9y$77rg+mXӍLtm,o*ط)3̢'_7`ogg'0'!~m&eZjq g3{9#m[mgg7:]@5g|&ِ C5姧ishhD(4H̜o Vr;{*Ջ,-S@YԔ@f)%'$3v1S.p3wGqy609·ExDjjD|sE:~՛ c{5yYy5GW\]1_tAۺ V0͓P:45f HZS844¡H!#8.짭Q~\l8 'CM;C`Runp3+"DEmiD L6Ҕǡ X=k&*ciɬWQ*ڐCu,Ժk9y?wc䊇UhʴИ(P@B{2xUUT^YWPU*M(t"vC!6蟌dj16KFgtdRlY$%#&TrSd?D ߞ9+\"4$ hjf% ^e]*YGZ4W55fD014ss2#y9 {pAp$$&D;?] 1u kgDխJ+#h]bFV-̡ |»!=YQ*k"׊sK9 f:M1VN*/S1݁oS6E$p "I^ʻ=bsѣژQcb9pa2t2{X-ZI.+j0.*dݱcnP1+boԍL^LSF h]s:սހmZo.~-6iKh]OX|^%T7bk@FfƵ^}K']sf>LYsG> `RΘA\,(n,f$?@y}--]Uc0BD q_Zƺv%agBZN4+2VEY{;h@\__8E4~+rrSapbt_gM&'5f;z[bl@]h$tcܳ[|c K"D 3.\Yo6prt>0M7KrЏIswmx/-͹;CO@;\mv,-bl3X6`iio+&YV]; w76.i~RnXUQ5&]8ety !M]/ |U ~fedhTEex>ouvȴ`(tRPs=jI:pC*K}|$J(3z7ك7a}r1rVϱ&v}yr3t03XQmxNK.& EtmE/DzN$Ep'Nෞ+[ VG <ބޓ:hrS%Ϟ}\UssQ|q0{xo`O3c$$&rtίϝDps;G@ _Upb\`"k˖3W$C$`̸me15Ips#/ rQٵ}vDBۡ.oa\(YTӂ^`VxϢ˽7e&R J $ЦI}5`_ /Pg)ZNtQg`|tA%k"P1)MhDZz)H4C ;rB_EU ĽhlX ~:X9SN5-(ns`6U#.l6" ._ 6鰲DX,N{u'fYm,Ptk0rRV',3ʫ|{_P7|D$8-L:/#@R6Փ."yH&mY^M@g')d+B4&%ʏkpOöRrz7 uer?^h-66,ys~<"Dx|`tO օ Rj=m@/\E-Cw!aIBiv'ԩ%z_YPTT'wSL +Iy꿛]:D"}4C-PhX$$P\%o|eHy䏻ykn['[~g‡`t+9$$[ᶰmx~5ԝy @ܹ]$VΒj E}|*vo2" ʔPR,zBR:>> ǁO`&em3w" rq#D c~/2n}|vq'6\qݿ$PI;% ? ;R+UB8V:WD`hrІq̆dOgoc=k< Hx9+,!Ӈa'ED>74a64XvSVyê#J9v b5p<4&>=$ Ri(\,ξ*n|-XKj/4qbԉ`ނ%wl [}B?E^ .׷sp%'Pd䬹0ktMp~%ϸ;T&V|ʺ?TX9#Q`Lͷ @ۖwqOz ֳoǷK|Fܜ"n݈,F[M$ؒB,6[(C =k TW*3K_ Y zr*Y}Lt`I2}Qx҉/F(Qx|}IJJHyt,S\4kZ6eǙ*ͫÎJ1>mf@OƟ|ܻВNEpldb7]L*?zdy\ǖnHƠ!\/(  {aw,yDuv< -[~F)kd/L`̔GB%N={}dʤBn*_z俷`Zn)#3+WBx`$Sɀ<-Rudv辫Ju,CEFmJDiXuf'S8&Ym$IWa(zw7;%b1YI7i@sC:#Yd>+eMn̺̽wF))ЍQv K-d 8&BLDo24>gQmaނu pegsoU+Xt(|;G_ .H'5d9 h5taWsm6kպjXq'~RP*n#_qi/S6IkJ=hZ絍V_n̮pm}J)6^jaR kR% K x{mQPuc݃3 OHgGKI?XD*c!')]?;\6xTJ  //ϒW[h:8>PSFvj׋!u-+X(sekuw89%ՇP k_8M3a?k`EN7)e.ǀO0JߖKu UxG5ƲjnʜП,Tutt +542> uC>yκ^Yi8jjۻ7`bCq :ԸevPZVYdpHe@Sź{*&ŵ J#A[R!L7z4Yδ _{ds"SG#Ď?p2{vxsj*Xa2TZ8u$ؽea/MCP<,aA(Ϯ]'ЗK< XAD #+I噏K[NwQ3Yadq ujrҌxؙ -F?tnn.mTqoD'&&scbb_(Úu{{%ǭK! ffrDଡ଼QwErߔ6XOىxόÖ5|_vIj3=]۾nZCۊ>,}F^9|~[O%0U; d^/]J,߿YwG};\t>Su{}Ƃ8#QUSr9m:KKm7*U-RQqr:Sxuvn3\s*v -)#ea(Ɇ}L+iaF& Pdo9V]Q|9ƒXKfrU)<1]U&vAЏ䞘SE j_FH@kC0%ez+U;xFPLN 6-ԛma¼ל`J ҅獻a!WuU8:McɶϟI oA:cƺ C%' $uR<u6`@O3VEc#XXj fփ:0s4\*5!P,~i <+< _MDvsZh!y~30gEgxeO4fB-vw%|Ae "A pIRb3.|#JtJVڹ5)#<ׅ9JeiR07x(M-4׆u[%PKt91p)45nuvola/128x128/apps/kivio.pngUT gUAPQux wT5< PZBGE E tQ+CG/ WQQ"I#"`%WU(t7ַfdVfs쳟Ϝ)\i vHp@%Կ.o\zPe-Z+~[2ɋ`[Hߪ JeI:0NeHP{էݎI|R;E%.\_uMFUnGQˣ,W&=vȾ]o8i9i5`a#vԛmLӵJxKSi,Z'ؗ0j,+hBy:GR{m3"eu~/ՍcZWsX.G̉WŤ)щvGh5ÈpBTv D )T5FS qy6Gxy42Uhc@o%g#l/^`ؕ?ǡ7vG_#c2# lH6j(] \ b߯iۊ/ts0@ ]`4/u^J}h>_#X|)L_&"8$hhwM U?;[6p|C3O@c,d ;b%^m9d-5sz!=rOkaaxaѫOF&/Q ؉^-&D:{Hg$g} RoLj%ڎkV߭B*0NIto:rʩtE*a|h~gYo@ΝG FFʌd.Մ/m0˖ߪ+TC!~%sjɕ>:g}45U$,*Z 'o_ _2Xt7=SE;@# 6vS\ꛪ髓R(\xVmUp w5(zt  1!V{k]'I}N-@̟!Տڒpd/ad3lɳŘ2U݆K?|彡`G)&p$[GHQ*ĩE%ix2B]zo~xο3ɡc.>-ҥ*~>3N7fK'յZ~dAgڰĮ;μ! !z#~rz%ɂSOqpj 5,RJ"hT .W׍oL7t{\9fj'jjRv_8>k91-c$|H? v@ 70sUnገ_~* MW+"h'˼y粶7?fl , TE.xZFT=׳0m'Y;=QMK'StӠ2u T*-uHEl2bwV8uabRyzXl=u˿`p3[ 1Pm܎FGۊnutBcgf75,`?O%9 =wL4$ڒJnRmg2cIyYЭ-[ nR' 2:Ft>,R8s֑83Tx[#hf ek$b^ϫ? 31Ź8dĠd/B6G^<3(jC*STTU`+J/{PQ.} lppG*}!؋3vD\A*tTmEG]#6)vk9\d~[3 Dװqk%-P'QpC l m?Dbr˝A-ih9dz9`[ UłB(zSVբqpi ҃W ncQ4jެh"uaE#֊m~%#6ғW>9X0U}wOC:f\Ǟ!5n_ĖuZ͋hWUeID;?vJA 9obdA8]`;/*A%)xé6%h%tm&Otw'(%D(pɞ_,M 8Mz-υt\"ͿovL Qdݫ&5"HX"i#&*hdE¸&DJp@ Ⱦ>*Iz9+:MBںXGbϾmy*U- |p;5Zo)X֧6HKw>ǞfCGgO vqw[o%|ͯizMU ^r5ֈ)}/)R:TIe1ĉ|+TrQMQ4,3=u.ֺY /P,My\RI%jWdFNr޸5ңCՑEryYH11ꬺCWF){Adoh9-ORaH3"'u="z(.U"mT%9KzYauّyͷfT-Rp;q}!B< Ph tyMj)z9;I"WخS\]'$>/M \N2ٷjWUQ$L i>PnlBFOof\?FM5NCŽBv``ų/L*?P5#iGtͱ'g%Υ/ɖQGtPpZps9٨pB} JNg[562Up|ML>%qXD,hq"{?%hyUQ؄XD,H } a{&1Џ!BxOOV/fcsгj,#NԍY1emN\4zԧאEf{=< v5+܁8lVqz}qr~#ߔ ,[Nԯ ۼ,ݱGQAFs̊̀a )!gx+ٮSҊR̝{3g-7,K4ú͖ؐ.R~ ԛ{I?`KHQg ALM=ʈO\%>^׀f9TVYFAuASF-Lhc9K~e{_ i_וPΔV qjfJHNgjHu91f7TS_@p&nX$+1$mX`}Oq kS!s1j_?;Hs0ڊ\iCz`Q0jG{С=Ls1ukv+>paYu w[;-.ߤL! >Qͪ oGѲEՁ=i og/8V08z B2|XYw'?M[Ldj4w8>= u3mrv{w e6SuXfxEbؿ) pM^[M Phˠ=^_+mg}PVhhx{f%hwuwt5%۶W{SEGb%Kf[b|@+xlO臫bJFn ՈKJ{kD>}kT9gΒJݭm}ҒUr& 0g#ݤ GS]\uՂD %ÁaS Lߔ~0ʇ@mx A }0xHqU|3]PlV~Es4GUfX'SI7k2(V_ 4r*^J-l|˖~u5.XxYl zy1gsy0/G[_xIL/ E㜙m~`;{\GmK'z%|7A1b;!-O[p|D51V*}F|TL3QC`ٮjw.xڎ,#Wa.M~futGvzs/Uo45~^ui6" E}}VI,VU^3J܀z~mQX?*-+ʝlt-BWUk^M.,G oۂ:?`Lz?Gr~ 5P0k\?*"FLy2pbO0>b +{U:BU=dQG#Q͠d2Zi6Uj=,b03oڰi D|q«eZ~w7b%?}ꏸ3CAsJ !5}w1E;(=匇Y'6,نJ8HhB6*3N͹WY=|%>*d.d9811GHl!ʟ麭Lٯ?~ @"= 50 Aoyx:mn!oxϫelIq3$?m,5h`L[m5JwT\7 G'ؠۢ|V:(Wv!M=NM*ٚI*>:zhNkk `: M & Za;BV}vwq5NuV>$2kUM 蠵J؋]1ped'فBm0륻xE"Çt/޵O ޾-m=J#dz\<?=Ճ^5T?K79K \ĕyp|!B=+ )?OZ0ڼXwvR;VHiiU><|fcp{[ LX޵uq5=i jiIdF3'#1|$3,"e8OШ?y)Oiٯ_P91$$^24_LܾUjGy^ q V??*Xgc_P?=3etWD%o.-}vVQ^mM$Tcd- u^Uv5V2պז9淁kMqfr۩ .Μ=zN8 %!ήhRfv;0?^t:$^ au vcXy<55Kb.0Am* !o+U!* jjN͖Ƴ;uh}[IX5ڱ[_SG_5ץ$ E2_w7$ t82,u .;NJ4(|Q!x˒}n+)*b8΁lxCC̏׼t&٥Y>4Z+^~mf^c}Kc Ei~3aǯZ7kݘGw9,63 ݙZ0Muzp7!ʿ+bw(VM>nC#f+5Oi/ gOuev}y lx(A}$j@n1-MVLxȁ4Y1Wpa\ Ϭ`o?ZL3m!_aNX k3f.(y)LےBqO:sϐICd@Bt7YVQCD$ޅBFC73Ԥy" d\cz9FVp\xy~ƥ!=u.H^^+M}<>).?ϛڨ.ڰ3h?ڛ\uC%J6,巽ND5Hѧ@c_nctx8͹H\P#1L΄۹uݎurܧZ-3(=DzV:62BO]j)E zWPn1'@;x^kqۂ{bݝUx8^r:8BUt?UZaƕDڡݦ f/+[և!K=١,+~JV~LLOUzksTZ]kUT֕ rRN|  O':/cۈzԃL鋁 _םL݀Zg%h7eMaS E?~Cvd^ӮsqWf#QǴ@@L*u ~Wƥ m(JsVYuRVfS+W44Z eWCOe q+3S'I22=|t30U&yدkPCl4ŔasMJVf;ֈ_q;NLWe8 nl)̾E#2) |a+0av_[DYeqm5r̪ ׼r2<<$^Ԟ20֎#QMl>4`~gWNҢ K^,k dр 3XG 5{:+H&U=ƝF(wךLlyaf?"I`/U|η˲eum`.s2o >2տCENk_v> Vn[ѿX~7|a{X4h1!'C: XklfDrg󭹣GRig-"}OV'R =®Xl%1b(ê_Ȗ5 հ/HZ!;NjѸp|8'-[(]-#:!"sWڈɕ'y'o2Gb?s~~C a;c̢2ՄOZә&*>yRƒ2>3?,R$rr7Y-_ߞC]<)rJA`|E>a}@ir9'<Dž.ߚGأڵ!9螣Vb8[T=_Z:j<ozQ^_V酒WܯA0K.sce.~-ɉ 0s,;'<L};䴞#[>QԪB7I> dZGI)+È @Zs KQ:2v_c5֗^&>,a?pHv+)΀T.|OdZ}2Iofcl ;.%$*'ZXs*/\~<@.|_  [@Ok9h>r3AЂhϓ=5&ů6uM vCP]g|cUQVDFj?ceIz-+UIK@G &VRn^I(=hjC󑭶mK?\YuLg`bL~rŏqh,N$Ga'И=vw<-zH@6&u Er܀ZXY9#׸:nYث_p4yh9hy/D)OB ~o< \:gZ[q̊T8vE/M?PܵQ6p6Q>g!S5HN9wnv0!^\ go7uU8[ .E17n:9d6>9~*1KuQy&3PLӂAh6 VϤdW?'6^A-0iD[!L(K&G?{-O> z0 KOfQ%̽/K'Y 6܋ 8b]K(E$vه#גJō@xضϓJTєx(4~bg*"Qir "\ҁR?\M!7ڱ gK 6)aav%IdG:&Ha+n+hZJ4b4- U=3jiV# l,Dغ lY _Ǟ&~~/xzz'aQ(OFF(#ݜ·=A %z?!~cXoo//,;;ٙk aIL: ?5%lnƐAZ L}vnNC[GGurX$Mԃ(#Jد#䡑Xgޕy0.'NX*DF&@NpG c( OY9=ͼ}v?䰣>} Nu1"=)/oc;=cS>r9{1'}CA5g'SFo޼d jjאx58c aR}pd@TGµ;sR%RnegP/;ͱ] x?lZ0&B  (!kك~0E!ÄGZ ?Y-[;8:j(++kzq^W*z决(8cssVo·顬j O ^0&JS9Ύ^dre[jkz^Ea7o&%56 G*'_L)0Z=DMWĬmWאH7/ &>wc%aKBcNlY>9O]@anKүsO=>-= pl˳OGDΣZA(Zbm=/]WJI{̲++Y@Eu^?a#H/ [6OzչտrsV嚢Z9k@6e̬z]Lt9m/zd։T #:&έ[ʎ+C*`)GjLZ6O,`B\CuH o)0y_&S-ϩdXa;7yM'/o]/8/-# uxƃ)7l""|>k9NqBϗgbI9Sӊ]zU-l0)I}h -SREOu305]9T@ l&ɾmkİu^EI2c)'؀V[.yc^KdTyQ#HO[#GP==+(7ERL\U@˻)&Y)N5y)UyKK2RsNDI"gU PʰԳ45pAnRB`@'R{hL(QlEYEdo܃?jYW,%yyDyB"n;pv޽^)^}Oc|tgɅOok&d0T'1\5<Ѐ(z׷b~<||0M4lmm]||| _UKԬyռ-mJ"Ć~U~,+E^{nQRM'L.AsnD/˺YCq6|=%/ѓ؂P9}'1}&$DDb OJWdgdr. {h{!l!{ Ԅ9;QRb5&peh,;/eDgN3W߉p \ơ*:i#>i8`np}[^p_^y,.(PWrԫ LDECncԾ,k!gUˇL%)"Ac^mmv¤{gF͗bsٜĕԒo< $[i*ΜBVmWV5͚֮Dnd9ݭ%Y- t-]t.6Ib ̵VW\"@~31p"ڎ>*RHr[&H᩾J`CŘFloآmm95HnzYG1@eROZ@5ӞkݛB6j6tEn2- J k-b?r\&׾J]3ZӞ>`4߬7i^gQ7aָ^0]]&ՄVqM^?bL`}=‰֌H~[+Ŕb`k , 6}R,Mሑo6 Gd2m8VE:bWƛa;[R! GLTsS̴:o'w 9FѦ-`TjՀZ졓ͻphlCAK]w'<4q=/钚xlIms0خ{&CxJfnAk%A+y,UE%q:ʃ~e܌0AT!6fʴ9+ 0Q)!(35BqsiM"oQ{Cln9+J+QfWuп|%-/r<)90 UŒh'72:'w 6jL>.nMWJօ1zAW(oJ%  [y dݼd´v08mֈU.'l=6z lEhvr2!si]}쉃~ %>Xݨ!U}#`)L,vp %)K:rrT{u9\RT2!ьc6 ڵ NNB|y[M[=)/gM%[W'N|:v.&~*DI'{,+1]6)O#)A IaZƴȼ~F,&mC<^aKPIPMmGC\qb-ؐĄf}LiDp/&x8gjbɺPe g(ҪC_Lg~S밬^xᯏVufUG4zR˒]/ UIgi6:%К D6\Ӻtu>Wk.1n5꠿CR{jAL`̪AW{)<ܜ*[iE0;e;3g:K!VT|[8bWuYBkzSPvhMlKV"SqL HՀ܌^qf)B/kIv%ݷᘤ#a@bo'PŹLO)^=t),欃@.&2VaC-?n">?9z 7KaeMr}Y͓`uinI?:XX+UҞ;-ߟޡc}=~uOK~Q8azuI]\ IJ'G\|z07Zh/pDzDcn[BKkv@Byʥ ;j;n]Qc+?Cw] 9]C?{ ڢLns㐸H>%]{ kP(]dDb3fXxKu=b_r?5~L5i.}sdwiD_}F_Fc_om"XuO)TOKP&ʜمhya};-Ӿ %5 #ˬ3*,ʷfTuV֔-n8&ܸ֢##sibeMx2(eQzv)Lq-h,b`lYY{aQWdC:H]M2p7Z@E^U˗Hc4">t/w:zq{JcmgѺEW(4L\W3㰛 PZ0:lUЙ ݭJgjEjCBpmeLWg3~+Zً > tdL [k]Jz^#Ӑ쀺 O@m|TO;t݄@q?ݖ]qW8$!&R@&XJMM Eڙ\8 YXbݳeZվm؞E5X.ZXEIK rיM̅zRʚ{r?O}$"`8I;ݶ;>F P>^fAW*}僱5{qUJ5NZPIr1ݢ2X$ԭY=<2M}ԍ6 p V_X؏H;P470LEXB$Y~I$BTDH5>GR`{Ӕ'텠*.i$JJ!meS zN}yȩ-(Ј5m$a#%+ƶٮ3,R현\0"QHuaPm۶\7߰⽒ O;5%&| [WTXutÄ g\]bsJHXd*iq@GZ$\$ 7$>O;Pe+XhVuf6{ r ܹR?8}3Ӂo1/qoKnvܯ|}ɕ $Q; A/ʽEK3r13bJw@11f$\ y*#X\XKJ,-"C L.i}aY6Stg=֖;1h]kk.-,z[@,]'}~$=ȇm`}lo[uȑmN~@ B *!,c/Z{`opg皢Pwbt FHZ\ǘ˼[l㇂ ]wgٿ0m; cЏXSZ\ؒqX0]y ޖb?H弓B¨߻Sc7,e 띬9)ǎp X^=<8OzD5&PUNj<8xsVcNz !@5ه^4]dSrG6<$+r/uMc2uZ}R"$m?vpQ{Sɤ^ h[bfM[&>K`_C&-v$h>'xxm;Jo_YI8';xM #n*%f/$YT g׌X&m>\RAU^E͍6;#|xv$\x榽 D/`p)Rxrݾj\SjEy15WW(n# 133Ŗykhh&JmN'(`b3Ck;5)}> eeKt'LIN˅+|.R8*-5g Wӎ|w",l6ɤ.UgP`U Jo7bSҊnnmɑnٺ3f kNKVHpSQbs F,p`9v.'=/)isP{e8G|#{Y`$\'ZLWK!hZ]ա!8|m*2OOM',#P'z`'.L0{b1b=K ԺM2Co03*dgQ׽ ċD"߿7Q1s]c)@eu0-}XI4G-(EV+ s7<34.#:='y3҉MB -'c?T4~k5?U'9'4}\t[P7`3=;Y& r ]U00p 7:8xFo޼){lmܸo=gWTTQ)Ga'O3W`yaF~OCĄQ/Ɩ9r{HW1:E\.5E~Qhu]۳Xr㹃SZ ǬW (tV_zjj0@XǮC/N@2 C"o(wr`iU?_PA./ʽNTuP 1hEr_.sy'Vj|䥅8K+ހp!9@GR藑@`%up)G~fh)tT&msmqla5^vp'b.\Z\*an7$bؕC FpL #_@ u߮o]rQ_u-X$P"~)!s_UbwdHhF_"{>[&Ʈ-̼ԊnqߴC"MlS}s#sz)%@^ؠfU߼c:(JijHGPRn%bv aǿc gWJ$[P*H"0_[uؿ{ǖ.63PKJN1K##nuvola/128x128/apps/kjots.pngUT lmAPQux ezwT[PB"H/ "0 4QDQ,@P"* (Q %RU҅KB eɬ$swW@rN߼DQw]@ ##@%J$cBwf3bBrpT`~ɀϐ Bl@G|"u檏[@< _t#fj`i]J͗H@58__vsYZ=~8W1]?I0pjJFM[bA7Ĉp©a7:Wt KBX?^ "5k75e60#7ƌ笘P7>MoQ)N.I`htH` Lt5_PW}:Cݘw_oduL5 t9Rn@!j λP RΈ/u=Zx'bxK- JChg\DwV@暖0MJ!A469Fd a[ ŗ>J{ȹP.<[K fo, 졊:֎a|RlE\2D\fȵ8ۣX;B|@@X\7jhq !Je4h/PVqndb "HuvԄP6G'W'ah$Xh1B"UnoK Μ{k"X2@:O]9@h,L9Bc3؍\D.W8/A jGF_LNb3xc83@$cӅ+[D|X1&HP.Ͷ_= T}69 }᫧8,'gGL~ןAr6/VR Š "NQT?; -SVE4ڣM%Q @3SF X$)?F.t_QΑb[&SZX)^]܍q)WJ_ PQONS)]f/ܐP=l{08f+mCmB+VC{(?̰D_BES~郅-FWgvDL6;˄ۂWo(h^Cth{ )EYG"I\S-Aj=WNQHf@/XC> kWOQLq %=oD&0YnsUCv_1ee{݃V1̮1t]}16 aFnhv(q(=;\R=T:&š}eoSWxWd+g~.rX/Jh"j@V([,k\*M)dJMt k}o0!ܾ+6']l澬o*b̔" Gu%5ݧM uJ֭qm,ogr(&98{[uf4t}&omsg o 3&'¶G(&vևvin, 9h 95 3ax(%$3\I÷mK0sKW?01,':#q}Š]YTOϭlei:*\H RdP3I#2Q3rIpU} g{ tza2JkŎ%pM'ߡV3r}w@+@ _Aр2֞AOl1`l,V{?O]\dӘ{M8-1@ހYCM,`N@܅$oZ`lybk[ԥ̖ߢ6nCV]]7a;Q֛S#SfUsfw/;L2*)уBÂn>d0Slkt-hj/0x;")`YH3~z1 9JEHt%[Dğ㰷'_6P2&*{3XReqكc;eGEz(|I*r<)&v=*lm2aѵ-otf-xهLEvS-(m_nfm%:7nT寵G 11R3;3RKī䭟YO l!m"+-|ÜJ+YF! )ytka(mOy &!;8UH=I&}Dz,v k|4L?yJo?"%p|t @{BIg _AaG,B03N7Ɗv\/8Ed\%!]Oٳ5{'h"BQ \XSZ |L((&9NB=EM,Jr3+txD ﹌{Mj an~%n~ˉrb~c?[wwI\˩DEduKJŽtPZmb~--;"I'>%Y#BT"O8dnqYe$0H1`ӁWn/6a@XW'^F]_ݻgR&Vڔ Huq? |ѿ$@67 ޮ\L%u1$L>BFy3N,rߦ~oB䊲uI+ʮ)9T&m+KXJ'n=eHt s ^R f뱝w_wE۰χHJgJMBqN~=z6qɣeI!=W5aCWMHDD%|^,|sIO[f SeAX3w[0;jXA${nF>F`~:lӼ'W"4G\hՋr cz=K| V\4‹GNU9x }ʆbw!!XlU{PwYֲײ,KYM߂<돬赡 f~Q//dzѿr R$te7ܩ ?^b4kUaŕ&E6Ŀ0V(m$m`;(pO'SW]PSPk@6@/In5(0!W%H@O>uOE"M4ovF̦vϺpPꪘ. =egbCb gӲ}NliU=P=[Q(T[z-+==9THgNuXmVNb jdS>"=H>w|[V + {:ېK7=9 ϱrm8to\iJxQw/r < ьMϚT0\wܾM-c}&D=F7;ofN dg{k5| ߃e6ϟ]ݟ3% ;|˻֚XI3 e[9m8z=AȐVw ]v {enx>,c+[Q$7O):·bXj@GdG cJn \XNS˙g֋BU:Uf@հbwpjz1J_Y7Dש%b5Hɧe~"Wu. *p[+N% k]6K:' x$/=t*qhB%㵝k9ILE?0m.g!XRil`>S8rO'#G&!?Df lLKsW݄O՜IAkuseCgHp^|aVΏOk! ݊KG$UH/}YjU4lոV[PhrHy*=g/& Q u|Ȥ>>fK&W{Ɗ,F)Hc41$iEY 8@C_'X#p\qK Wa\^t̗ӐU>dk/*FH9l/M"r7w1|rO\"\#r1뱽*`soc$gZj| wpwG$_~ =pUϯ]mr2W.W<\t6y ` Not%MnR+'4{%R3ͶQ^U;ݭ!(bk7Bæ/9Y|)u"^}3gg\ m?Di˲|mi/eyeV\4SrSxݪlb(;]E5@3tyHV'τ~ Iޤi7j}Dk9to'wLZ簪fG2B])%N9* .Ε@}56;x7;@pHE4St$y` z*l|G;BIh| ~5"Mi9J*L2;eq9ba\OM#asem'r"H4I lMcOsnsWݕ#OGM YO3a>]i%i:kPHpV^ށ뗕4rk8PJ8]ϻgM?{Afkckpw5o 9F 88|~94nlFˈ947;@JXÜN`?U;:ťe&+7g65 DS[A6@j rrY̪ԇ[n7f_[z}I#2diu3V,SnlUOY #R{,!+*m&oˊ~fGP4.Z7֧ؒ!VC)o1`ZݗW/9dA:-P8 [%jMs Hnѷ/krJ8f)PT}|f_wh1`Zހej\p=OqNqZ)܋6|Tv%Wf k)Ej m)d ju/4pԗ{e΅X'Gab o 3W^բBkG3W[v/ |ߟ<{JD ATG8oMkBZoIcI6K%")ƞ:nyZ[ f o8mm[X7jjЬy(&J8؝Ml.t'[< s"hnOѦ)V׾:GioB14,}BQ,&3=Mº?=)( "ȜJXqF(Lh2zxl%et4'.6m8y'{،*\T||Dcgd{3wSCެ8#*KF0q'{Ȭ_j\U)`0e60D],j)k0A%xW#ļR~(3U0J(*NJ]E; M44ԘҴ4tp9UE{ }^W1nۺOZ\tuv3swlm5r}3p~(`׉EhmXhre,Z'p 4D/(;ӆ hGxu̼Z!p :tcF֡#ݟ%~.Hw4!y;u-+ոe^->YNZMCߦi[ q&̔b$:&WLSb,sٌ("K6AYdHKl[T+35=x"s溈DBcBm\Ņ{ fxLEC@Р|?h''coҔ{ .(ɜ/GTKd?%*@-E\D+f@Rif8 5%oѷ"s&c[)fwHm|;2tQsE<>4uY'ZwX;WC7-;7Ld0r4n?&+!qYT326?Zc8 ,Y9 ώoY+EXhx;:dVj?y (ezwkVL4z#9Nd?h櫛]rߒaO? ӊ?2u3wlES޻%B k6@D{FZSTJ8Daf!%E$xT'C(B% *ywۻ^{uϽ\ڙ rr(lsuF?7 !}8tJ5H8=~蔖g;HH&Ɵ,Ͳ)7 n /-So'K/jnvx޸_1533Y4<ERj`XaL9jb[,oTx[OFVeEEGiMMwiY sWiP& dw#ű`+tg$*"ck+JVfX'?Z4>T["v;YzT  (=mLz͝fcx)2qt祈=} 9&Y])8VczޛO e I'?g߭C;fdf`.ե5ʹ\Hivwv'nv󆸊5ΘCǑ.!pDU HIsfAG]6Hd sM 'fr<|/ )F,M7mŎfϳ Nmd5=;Vy$@B\}lK`~o 9؂ƚa 3 v,-,cx=%6{JD/,Ѡ:L!s9":wS E!6;>^8>HnvE~~K\! 2Kf)&fGǑ5 Pׯi :Jxx.Zr%Fs82t|b00uC>D${N! sxE?>P%3% on( -B|Jȓg#L?yp&p7KdgP͐A pђ|-E/q 1z mZE98f*f[1kr혠dB+)'|AgU̷/Bعl蚳1R9ઁ!00]bvapXgsӧ%BɃtkr , |ҁGk }"5N4+ajH$$(yL:Rrk! v:zJ];16=4%wU5iDg^~ Y'd]|e P.+kv;V#BO%&^wXc3ڙFrJ1٬s9E藿ӭ -]Q)ou 1׼"AJ^=adR#ʜċCM^;oy|Te3F4s)-o]?3 Vy;lzX=>H9CeAH;;yoοy{}VyTPLz(lhhH( ? )Ll+K1v+R!b$%\74cT渫 TαnE@; *(\D^PW_{1tQV weeKtjNWh3sߕ`69 6Z:7#+''^ n=k0Mj4 [tc:;vs}IGd__YrOt/@,CȪULV$˹1quyA$z+ކV`]6@WR y'n@%H3hz"x=tmټ#5T;%29*QF*BzPz#q)"JnMoc\ɸXkR)PpH9h?dpx{K! 羍JJ#Ŷ[L Ao @PF]HN`9ҜpG Dl~x%_M^a[&a٢jต?ڰ۵~taՕ[ñ[X5 K|W*XKoFxĉXueI$}MEݒ@ἓcVW8>?Qu'=Ufټ C>T3Wp63Sl{B#903B)ToLfSO}j2o)k=/7%,x{c=H=.;,ke| |kclo'Zxc&g '3iB3Su=Dtz|Lu[znQVxJpחc'xR8ae=ný~ IvZW'BċKM@8j+lsz7CV7=:1%YY/ Pbc(KmƜI9/+K@0F$q=lo,4CDϞ.)9k>C6 9qu40MsOSb}%#,a3Fs"ID3D0 8QR cPHf<.í3 "<0ذaCl(?F~wl(!f(us$ (]e9.w,Zt!RJVo &uɘ"A S?ZS`K8^QCCDa*Yqfn *-b.bϊ@ G71|B^۶x8lb%PKt91Fkonuvola/128x128/apps/klipper.pngUT gUAPQux ;?~nl3K%X 3P)"-.d) 3cd) JE(SI2P*#b0?~\.s?x> Z@UUA9Z0έö c˷wؖƛ+OeyWp>g+SS>ZOzH߿Fܐ"?ڙ+QyhmceaĖ;kOPǔ۵ѯ/j ǛQXϖe˙l- zC`:Zp請zGy5l5GE(7P.!d fT j$+W-vSpփFk56!:$(asyQ 6ፊHIqg Cwݼ| 8;;V9/+]R`fwX1fiՠb"ңX7ݹ=֍gf3x3^&1 ˌfXw:HVl`+{Q:> ziƴsZYuKzpMSE{N$?M[:rֽ:`A5m`r#0Y*LXErcNN (n K8:+Xϰ:1>X9۔"<l/Vئ9+n\Ќ:x<6X}#,; cyR'|RPiqz@w#2aw@Ѡ7TN*| 1*F4)ChtAe@'3'+=^d])QIin~IÔ++ S큛0 1X#uݢSd0TњZ{9pop8d?s;zsRf81Te(+2paJqoE)ݔ(ccXB.W ZcDf}5|CP)b8|^)UUaq8,oF zJMęٞޏk&IĤk,}M17웇o*@ԇ#BwF2n=s(d25 ՚~`tW`1cOZ%)x-vs5`?=͝ɬȋoC8mZ?D[]+:owNJ&6c$\>ŢWs 9G:{!dՂ"N(kIJb\̭N~azaQ(VǻThDF_;/xx*04v_lPΥˁ~05#i^hZ3C}a/vIo"m̖4 (}hCC'!{CH$ l罒-@0oy!Qj/ߗ߹*"3AE[|,d9ݢ~ʱls'Pkꚳ]ΎTi[$EgG!['II>w0*=Zr1tfҰ m D0QqBMouR=g4vG>59q 2tg쥠g VQ~4QI1=swE\&]PL/͏}}03 kRS/\[Ii*g*H;g۹FՆ,s$Im9(xD{pi=(Q>J`c%!|ħHv'YIĵtXua'TVeA:%!)Nr yj]-YgJ2SMhˤ=%X6T(F|ޮ} K2@ʢyH @w; up1WloKL8)qPyF4N"XaC10 83;Sn c׸A4P}[h,TIBd `HXf$zȿ?zۚN;b S6F4 AXE,,}c@HXܙ?xN9C 023}[wFZyZ7bS9+X:HwpuH$g⺆:!e&,*aB#lȬoռ"Ik[#i(NȑnNHsOErc/^ik|DZ.IZDo᝽ /@]p3G8Wedj"<Hk\;h,caB2=sGg]!.B/nS7o\%~M+_ElQʞ[ύZss{oHm=㗈\ R ud4 qu'ےiob!δadh\Cʗ .-IaB޷ ǔ%ѡ } mZROHqBqXΰqr|vz,9WkKR]Oϕӟ OMEb6NMؗe)oyq&kW!Lrha,H#0ymXil&=A :#5{?W Go.X*g0H"ʮ> Tc|~Lجcusqe1ֈSb1Q*Np''x_ڇU}}~^k2T̺`+L`Zn;bF+~g>k!/HDm A MrteeI+H ,S$ۆtgr#_"ڀ8#s';!qqG'VA9e9?m*_yN=sjHAki,xs['Xgie:_Fۋ.EoeZdAU># 5ӃR”0G :J?}ނ9.wQOreu0&HJ)qhD0?⇯ѹ>/{=}K^BH/`)[c/-1S< )E-l*ބ:;֢04S~|#x `6kSDy@ug=pɻȷs/#F?2r*ٺNxh=}g.}Lr3/dG{5 2{F)k++ƒ]=W%#c5dβ AXPw'1Y-6.Dy=gnP_=?vʬlɡg&QFD},.gPV7 KL}w~?.\n~{+liT7ExcyZ,FU382Zah)?5>Vk;7F bǞV/I+H<^K}clp^~Njk;T8kD]dBP.q(|3CleSxͅoā~+1U)T@1_݂ž#2ˏ`Փȥ_[)2Xb`l豝7=/۰Ka%F}rGmW_B;t p哴F'j }Xx y|-0Bmɉֹ$⒗ 80l:V>:q85O:| .4 sޤlzvs -Ħ CAƾCGo Y[tCׯ*Y?_/l|mďs16ܢ)/ mF:$u>m!Pn*p.$r')J:'"ڬsdK4:%JkIT)Ŷm ̲z)$ξ*v$?lO^GF ,Jq`K"%eDܣK~hHVCLH+[]L@yW7B"#‱\}`z4.EW0X.&e&q(ShYrO`:p͓xGȐ*\ ` RźަT5Zl7qA B%O·HWT#.wlvŕyTC[> @r16f=ŝ~C*b=-좺̵GM%SL{@LmIHW]^{Qˋ gTkAn~ tuRi gxmK2ꢾDre=֨J2xn}jIE2v18L$ost*]YɇLpVlOlF+%GftbB0G1矜Sm\&el-*Yлb_r-GJ s_Rح*ܯon20v+?>4Qs!rvފM\}q%m*l^ ){MQ,ߝ4-1,fT^p,sDc]H-)zbx aMQAPeÀݣly8D-hS5ڈ&kP2[L븯NE+P@ Iy2 PGЋcKx+ C~!l|[ <ܩCYŭ%xTd46' E֋'u 8icJ&QɭU*UOB+\'_O6^Xs9zՄ}KњguҌ":mG7xwya DπvO;YPV흔AIe7YJ1Z<}_L5 *M47dkJQ[W[[ Q8Xgr+,RmqR!5_iܵG ]lT]Ϭ /,1_ggN3~ /lوU 5pPQER>/+mVJ]O}Y*fm)O wKUʝ|E[M SbņӮ, SU4xu1${wtsq}.nNUI9@WFY K@xm` 1H1<hył2ikNFKWA}~d6ro]8j 恰}6|,bD)j@mڶ;b0QaewΈr}A]XwSN3=Đ U-!XϻL8Pߋ\ 뜞Ch 7%gP|ő#KQ\TnԥA"H9` +f*Pc[N !oE$c@? f}:3idd&/2.eg V7헡|;($]:yXejg;ܰ?Tf4r5p=-k~wO'Rb\"g/t \)XÍg ?^>DGUK X_=V-ަd YJ"1- 37_`1HNX5׏Y%Le(9}ݼZ|ٺթ4=DBRk8lp @sهS' *`^ʧF;kC;^@Uܹٱ2Qٹ^(er`7Åҁ% ]8d 됼4IcS :J,e{8zߎ]@曰oP K|n2|C,邍ٍ?5)r!5x~1*HƆev*LRgd^2?hO84ܐ̧'k.QlӳstVxJ㈉TK{!*1Џf,rQ^o\\)!(!chd#aؼ>v5*e?J B^1~~Jiq_B,r<81Hz-fm(p*ptM^ufUEQ/KKӸ i.sV(5iڄdMU>jm#s]>'1`#C{KʥTk 2l7Ms`'XLVy5hۑd<3^6N ~HD6Sp>7vߛLK%%+^JyϺ.EE皌h}#QhJ*Ei 5=RV;)>=|$nli6oQȧ聦3pƻ{|)},"z`CC~({h{Rq?(hӾj`dFKJmNDС}Q/k:Ho2KY1WEg.WW^Xg5/+gђlSut6HXKƬŒ&P}l&X.zGy;wdVĄPާS>Y9)V00Ç٩c{_IZ&X'z{bpٰ[aPvl*Gex.|<@k1Zh: .|WyFF:>DO{A %!3zn%r5X#P-0R(LvWM嫁#Zwdoc`TW K'kD=4oy$EeFf5ԱF5r%0[R蹏_Xu,h̓dÒ2J_yP9 ?Li:_V kBd? _ؽƑj?kKiG7?e e+Vllު< Acҽz= 伽KNKO8FLM5 ID5$yfITBBF8g%tSh<- Tr bmN0 mv9c%X:vGsډ#񔐥ބu2/գ4|xN#Gӳ61dr^e^`VOcWz))VME++I5xkW:G3܋y9>VK eG8uHA7 yRnPh?rc(BBSt \D*=j7T|?'{kfܳnF88~D+81L}YYwU2iOܼ5Kk[n> wV_.أVnΔFcM}bu֛f%\0q1'xͰcL04n}qX8yܘQ_y&]T |^@k{ʈ,Ʌ-`|?-:Ikum_z3^){6bS7 x ŬE9"0Rlq$2z}=4P|25~FȅJ\\A䠌 RNڀK%1:i! sE7ڝlly'!L z j2&ސdYjfTng=8Ek AfeOhؒBNt)z>XoȇNW3.nT>zh/$rg_;A:Sި>z\zK@ͱ ?&ރT#bT{k=-R^,hb?㇠ûXo9< 8U2^ZЋ<&ҮMI>"~wsxa A"di7s dxӘOOl)JT ;s|eU/ZCv)Ojl9$:bAO{=7N^!'V4sNW2BۏH}|)Gfm}@_ [P'4H@1B O* l?6I8Rti@,6ŠcI繀FrÁxƗWrWuX$X7~xRX>W)W"=(GOoVBkD%ňd'TO. TɨV ڱ8X 3+mL qURy>&|bWXn>2tD ֮ ;a?ɶdưwZ<.E}Ӛx*M_$)r-[;JobJu4~_5IB㓟jԩi˿k8 Ɩ#RɞvWFe;'.顷YE6 Fi\sRɭt1R{H1ʠ9^e]"L{9?'T)m O]Uk)~C7&}o[;Kos!h/$0MFotH]ڷ}.e?… x, !⒣0;z-N+wq6^o.+"#}(2CkDw$JDwCk -F`C*4ky/ӄ+nB_PL+ 9R49}2bЄuT;ǣKtyBF;t(t@ LgPb_ijO~ fڋH / qł54ITf=dp8VwIlhţ'>pDz,fxJ2%&Sy+?MiJu3*Ā,i.Nz 1΋@%^ru|"oټ <h+^cqzI+ (9[k j͝D۝ Hz3 J|;%* bj}VEi_A.-w`à ӟtol}8Z$]#ޢ 2Ciu8P '/h̉SB;$"ԓxybv#Igi/#dU'3z,BB61'h:ܕUylg4i#2T!Yb9)#~f۽ub`|SxCd?|~&x2 +MOQzfI~N0 $$k,Ӟ%uZ-<|5!d(j8\qZGfJK~̢j*a na2AUBP|)tc6_h|Z %UKIĉ*=KBBmK{-)n65b:(7J>Y=@|XvrWDRiV#9׃uY-)m0#e-',ݺ^wa膝dyU~!{gyɖS4CS`Uޥ'D )˾fM3#߾oJIK]R Oѭ)}72\!;Am!{!.iYϻ* R|ds$TLhŸCA=p*p6CЅk[jp/+ZK8sהrmlT#Njh0\y]{yIpA#OKiu}H]Ji۠i~M_%8c7뷦]zs$ Ag̤yޘ %cK[ >|5ӍT=~zZ^k % t_vu'GF¶NP_jX&!?KwMQ 㮪"~,T@[hͿA?@O}E?BWOQe EYsv'/^lDġ$79iC[+QKcGxydDIJϙ1ln4y ­!bcWHh /3mz9Ȧ(O'[ .Dß%bfLg;0K}ӱ۪$B2cLEN(9>T<`8Γ7m0GFq0mnP}m˥}QvH+ uɉt+3o_hU=Oy/JC8W)EX3 1#MMj *kucMJ]$-F)śOp?YTpW7so䜓h %.9!w1I2ĺ3]`o+qIM0g2|@l ;gZ2y N%,PxLˉwAo֊QѸuъ?n@ g眜 DwRC掴ю' ٩1ًy: ]@`ل&bƝ(n8mh =3p#^H`c$֩? B#(>"g ͷ1Q[k0LZMMya>#D =-.1ڔ [kvˁn&;Z";e-cu0UxUK{e✖Tvhj<>@xY5*])Q!/.NޱH׬Ϟ%:wA5t@6aKbN΍'5(݀ OdsS-01QO+ -썷]A!J~RK'lzp8l} bc,޽ ɲPZ߬CW>I.f;t'81ûaB͍:d,|oDEo9u+(ۨ5/Я8,~|a&᜝:EbjmZKm߻<$na+oawO޲8z1a{⯛ȳ-*XfB7JSl[t6]۵B!ʴ{.QJcyHֿ6a[8\V#!VGF֙'q|FqnOI:4sqBcjh!QJjx,#P)ڴ!cH'KEӧbr% 5$?ֳIM'UGSbx0]PTjMF (+of1~h=į\Lk8ČГ==p@`u4]IOK6zx{a[ۧPE)8#Nc..KTj$f7 fz #g(H׵r_Zw}L,]ztS0Óў3SQ}`ms(޺(ӿt$Id5'b72&pX77P4KUx-QWOHQ0 Ļ~c6_$BٕCϞQzOe>La6ԛ q04y+c&<~;:vovSc2Y*M ~ɸ|X?IJ];c*2IZ\ZftP2,bf|~te?\vNԭXcz(e=ơ`J7&IytYd( Ӊy.ۃ( kJ [>; O?M41xw,s D|!bhqz>m s zB8,Uzc-o"44r Kxw;0S>OIwz7~d扈oqH!ʗx4j 3~E;pT3{gqcy͆;[XWh㳐[oQ1 IrXl37Wᝁ$x{Wl܏~mw{yf#2\"g8t ɠ#m( gSu8A[4g.Ns lZ sWl=XKՍW`Y& &^r2 D\"#0"~s0PwAIL|dJ`z|9tфL;yls%aW{>TK9`޾stlEe2B8ނr%dW!W_:n跗orT4M@>&;+SP/=G&G,KJvIl _Cd1mi4(G5,FuQu>JSx?SaۑlsVBZf{@j0,X ;.~rgfC,߾Soƀߓ[1:+VJ"6CdYT${~or9)r"ڝ:ج %Xd-u pR'TZyd3ur`iP#vh Yvr`> 'r鋤u8΁jXh_3 Rh)kସ#Uasc:'mY˂RR8q0k %l΢jVP{FRU]ݬkV}UPm?$k[*{ 0>u,2֦reN\ cN 2MDTJ )Gk+& 1Fc9VǨ\n#zw|` =6q脍d,lPP|ϢUbPqs9@EI|˦k'*kRU>y( :h.GY%4҉cx'OQ-lI?Xk~jl-c9tZۨǩdnnؙҨX7ץ N@+tm\frXN##-XMHwne?7rȊu!<*,H[^>}so0ď|-#KP*/M`?%: ה,32e/<3.!#Uڸ=x<̝#3fb.5֡r@>ϪS~FbMţx{P.& Wϖѧ/\V Q9tQ}/9ù5ZھqO6FvDH5'YA=ϤgOCxhtBߎ1t#iK-`3B\sHҷIwH$d_ Ea(G^ݠ ?4> OG) $L aw!US6Q# x,*kiLg ^5P*Ӱd9EFx5lY( lLPp0-F 0Kh`l HeJ;>5mP`?66v-oki54E[ڄq"VIÛjKB1#}\`fJv}$b(u_J6YM]VG?%B pcn71%ZFè`m" Qk~ B|Xi1r8Z =y[zwa~ 7qָZÏL2__ g7`нGt9j1k_%VRKϏh?B_|lj3_9Џ6wvڊL.lDy@/S|iu+\6A0 )#>1˓-OvKB?*3JO=\9A(. ;DATF<1J3f+ З'иIO -_oQX\GI<ǽnL =S7,|KJ#`9cvp|y'mf#VA1\Q eE  75PN݇YJ#K_Ss!Ӓ v$gaH/9LҷۙH !N}Zx$E,K<$m8`.tL^" OtQSp#U|lu5c uA/؃yP;Fd^$0W XCjHɾ݁*1; z[UT0“Ы-{w~y\&V:Z3 ؘhx?߶ZkT!Xsm-ZT?R. \tn4SyWPY/92؆ňJn)QNkԪP:З_e_ы|ިg;| |ŊچLZForCK^xn+#j4}ΐ7[O'!˾h fW ~89"%33atyt$q譋} Iͼϗ?k ZW=dEDBD9~G/TcDe<ŐXo{E7ܴ՘ۅ:1Í9Z6E@E9oヴ2!*#BCN`ϱFa?5Z Y 9CIia\hLga/DVͦMb&Vk]_uבքjM;ʆJA (Eb#BN׮ )"Y|cQx:k/*␹<4.g|X ~,o{c"ÞM|Auo*p9/b3XgL܁J r&}RJn[ ;ȷRW6 ʯ+XGsHB7nK6 SM0AuBO4~igΠ7n&ÇRyPz\k:-C=,b !?{5#I%`&)|quj0\Zx!fyiMddJ0*&EvhYbnuS_ȭcoʍ[hV)4K+EaRfy PH&Cqur/: cNӜgL,Tq86٘e{#k뙩0ҎJ6Vn3e~O6vw3 5>%\?[Q金B.,B!5GǽfYWzrNpy(ZgSoo bt_uQ~wEf%uAdwqwՌ5nd;L galB9@ dyQ@\BȆP-!Kd_1R}muFc5-F[19WKA>]Q53hc>hCf9 6Js$lvjlT713³o^̺gU +"[t-]]E 4N!Tn\A#zp;P:{nRaO,}&50{ JnA/`Ôf""ߤT'j9{@jk19Ljxھ$97s_¯w('(vSjQ`$wsuǿ'2AJ@'u*XtxMm  tp"!sfLSX>v* FޖtNܴUθptvuѝWL_b cD([AI5=HxlPOrfSg}rẕ{/Ӛ}[UKJ@r1\984$fYO(r]o쏾8_j\zX@#E` jBprʈ+KxohX,qBт-=(M`Ia 3[c=/ 裫vbi7H+ki׿-w2gQ7N]#Sz“0+S;"_$;3@pt|G0?t}`)N+sVmJˆǫӥK|C]a)7e‹Qe@3/=Щ/vusrֺll\e6I3i6"D7W *"W|ed6M"n :n,X%C! \A/Y b;;ў$w@ejf2_A6ISLa`.q{%>(F0{M~i_,NCێWFtG#$qZcUS1]HdAݙk~<_'MNƶ70^!M: __:2~fi`Sk jd4k =xf80h/'T‡},)5LYl$宎\&3n1[ĭ82߆~4IfP3TGE8dUxͶpy6w!*RʗYcZNf' Bny&a+VL:Г|2>pLSy*txQR%81gߙOM8ʐ̴yX^ҕ^-wmLM$&+k-g+0'[G˘ b3!4Fy,ޠU`Pq'RGsL'BtRo;;ENyj7Py|ѼG`` CIv-ZՅ.={'g!/0,UnSD_$'ݒ(^'aEF|usޫWLkS˕RG$x8(9;-Bai= ўd7u84%ߌx9kO]Nv2) YٟT. 0Gn8xRE;l#ĖmA!p??ics U[4Vt&[&8DDZi/(\B,[;VO#N&. :S /ePȸ|3ǀg0 7b]^;{ԢAn&c5v҉7Ɉ4JHQ<+8c>~3CRMm1jbr̰T6xuZJ(2cjct>>)>jizٚϋ+>rz/x1O)>C%Lj´>KQ)7a4)>gɏ`f'H.8S sRiF0531u^ rM7!;{<AubHuFxJ؆/)-z) !DW[x9pNSQqbd<`0ֽLe K"s;puO/(hFAg?toF4f2 vIjcy䣽nA!a>}RL;Jl D` <pi~-Ta\jr8b R /l"ƭv^f')kZ_>G"yˊRսB,A7{{'u 2UnhD7gl8|(\$᳓! )G߭ OKR(n>N{\cHAsmW%;æk P's [g0$%_ lJΙܚ'dȝ68/|1*#|y gD<nWRwcp^o_cWD7xO;XVAb{>t}h )/ mW " Ld/W_j=.&?, ~䃙A*4ٞ G ;&1&yq,+ 8!ZH5 䞖B$ͻmt1̬#Yψ=[ܷ`E^4|G= #;z]I/=f57sS5V=F|Iy~5P tAN J-H) YI;ȉRzäP9snYn k^˕6Mb Z󏛶ǥX]'.cD6 C"㓷t'\K7[E"D#ۃҲLա@(>{YKTx,HsLKi!Gv{;YRYR!}ɥ~Wp3eo X%T\>zi3# k!߯nmuN|ʬ\Zx 05u췸_PHSo៶YjYY s3W2K3f>~iN:kh29Kusf9Ƞu! @e8VC(␊vo+7+/=2b!F523 Jp`Tnr~o_x5>πp}0tkʥTXUՌدGYV +тq!yr]]lYM{.v9ѿOiUBт_Ҵ'Sr,.,y2cm#+ioštk3TwG<J%10dЈ=--R`0bʬ펫\)!%*4r_=_3|]Vq;&8󟦺GīVٻ]߿R)V)^av?2Ũ\#PIށ~[~Uo9R"o` (M:# g1-u}/a]Bw-Y lAЀ)6)̨Ͽ҃qYxϋ BOסuu+y_w y>+@l9i!eF_⨣-qK+"%dƕۢ4h sv`rׇ{.MzzsX篺C|C;1q@:5:"/H>710h%{E!WVXr1H* 829!i5ћ) :oS0֞f9~ڂa$Ӓ靶!ے8Mv]L؁Ơk,$FҬ(ǂR.RqAxH'\>d?5–T.7R^0@k,{HDBQоMEݹn>- dX 8=\IHSGf UG@?\iӵ]}JIG0jEӕF ɔ'Q 7c0~W|*m{9*O$$z_ԡ S&YxXFk~k܆."os$0=dV?;H)jf{V]`0>8|>m8x`oA@,%u p**2r7?$4B߂z]-ҁ -_C7^Q)n7x=RE 2\o,ZZJby(,tAᅵQ}ztD]!J.&UƚVbؔ7V.J}ҕ_n9}+ O#3gwP p".vdC*^18,t.գ5ny&opB+bY8Q5H'SyoX 2^|f`,3yͭ##~~ܗ>둮#f?Ap"؉cu *=/Lߦ\'LLb^_kTfR9ˍȂ҇z'1 ,h) Y+5^cQY?YHםTN\'$E[~ڜptCp tQ,Fw^U.,2Hӝ #~Ɔ$-D؞p^iU2eY{bVP(Q 5%o7u^^#ոuF3(oc?vʕ_x1@:8cqz?@Kyx$Xb;$rjcztlگ;ѯkN1wzO >0A·(X?jES8@Ο > m -pz'X"O, V~c^}j6RiE|+1ey3??Z.P {& ڇCSE|>miNfcD't}-JZC9CMH lz8EyU7IQ D}O|q1݌<ԀoQ S)m#*%F8qĉHM̳ w"D(t4"8fm&֓Qҝ@Xe<|;@b%6rqsEu'n{Vk¯];?&PK[fE1=-d.nuvola/128x128/apps/klpq.pngUT |bAPQux -z{<؜϶, 9lJYR9JdL!%J!Dg9]~^uzJpє@[ВS@ m@U ¸]#fo̮И'BZpd`X@XwH@0]p} Ao lF04$mWH}s2339z ,s͞6Ęb+_wB4bNIV676uԍ  Slw~u iJS=Z_ GS3AO;\PJ nOEq%;@[,VPs"D4.рcCC这YZ:sEO?`k3Ҁ2L;V@t Quu@[B'/MGaffVP[x9W@;3 |~Ow9D;x=N(yw [k|fB8{)Ocv"W[0&Hqh{tߐL_"1`K9DL39bQ ėmLzќċ%0pӓR"J1K>E/M?PܵQ6p6Q>g!S5HN9wnv0!^\ go7uU8[ .E17n:9d6>9~*1KuQy&3PLӂAh6 VϤdW?'6^A-0iD[!L(K&G?{-O> z0 KOfQ%̽/K'Y 6܋ 8b]K(E$vه#גJō@xضϓJTєx(4~bg*"Qir "\ҁR?\M!7ڱ gK 6)aav%IdG:&Ha+n+hZJ4b4- U=3jiV# l,Dغ lY _Ǟ&~~/xzz'aQ(OFF(#ݜ·=A %z?!~cXoo//,;;ٙk aIL: ?5%lnƐAZ L}vnNC[GGurX$Mԃ(#Jد#䡑Xgޕy0.'NX*DF&@NpG c( OY9=ͼ}v?䰣>} Nu1"=)/oc;=cS>r9{1'}CA5g'SFo޼d jjאx58c aR}pd@TGµ;sR%RnegP/;ͱ] x?lZ0&B  (!kك~0E!ÄGZ ?Y-[;8:j(++kzq^W*z决(8cssVo·顬j O ^0&JS9Ύ^dre[jkz^Ea7o&%56 G*'_L)0Z=DMWĬmWאH7/ &>wc%aKBcNlY>9O]@anKүsO=>-= pl˳OGDΣZA(Zbm=/]WJI{̲++Y@Eu^?a#H/ [6OzչտrsV嚢Z9k@6e̬z]Lt9m/zd։T #:&έ[ʎ+C*`)GjLZ6O,`B\CuH o)0y_&S-ϩdXa;7yM'/o]/8/-# uxƃ)7l""|>k9NqBϗgbI9Sӊ]zU-l0)I}h -SREOu305]9T@ l&ɾmkİu^EI2c)'؀V[.yc^KdTyQ#HO[#GP==+(7ERL\U@˻)&Y)N5y)UyKK2RsNDI"gU PʰԳ45pAnRB`@'R{hL(QlEYEdo܃?jYW,%yyDyB"n;pv޽^)^}Oc|tgɅOok&d0T'1\5<Ѐ(z׷b~<||0M4lmm]||| _UKԬyռ-mJ"Ć~U~,+E^{nQRM'L.AsnD/˺YCq6|=%/ѓ؂P9}'1}&$DDb OJWdgdr. {h{!l!{ Ԅ9;QRb5&peh,;/eDgN3W߉p \ơ*:i#>i8`np}[^p_^y,.(PWrԫ LDECncԾ,k!gUˇL%)"Ac^mmv¤{gF͗bsٜĕԒo< $[i*ΜBVmWV5͚֮Dnd9ݭ%Y- t-]t.6Ib ̵VW\"@~31p"ڎ>*RHr[&H᩾J`CŘFloآmm95HnzYG1@eROZ@5ӞkݛB6j6tEn2- J k-b?r\&׾J]3ZӞ>`4߬7i^gQ7aָ^0]]&ՄVqM^?bL`}=‰֌H~[+Ŕb`k , 6}R,Mሑo6 Gd2m8VE:bWƛa;[R! GLTsS̴:o'w 9FѦ-`TjՀZ졓ͻphlCAK]w'<4q=/钚xlIms0خ{&CxJfnAk%A+y,UE%q:ʃ~e܌0AT!6fʴ9+ 0Q)!(35BqsiM"oQ{Cln9+J+QfWuп|%-/r<)90 UŒh'72:'w 6jL>.nMWJօ1zAW(oJ%  [y dݼd´v08mֈU.'l=6z lEhvr2!si]}쉃~ %>Xݨ!U}#`)L,vp %)K:rrT{u9\RT2!ьc6 ڵ NNB|y[M[=)/gM%[W'N|:v.&~*DI'{,+1]6)O#)A IaZƴȼ~F,&mC<^aKPIPMmGC\qb-ؐĄf}LiDp/&x8gjbɺPe g(ҪC_Lg~S밬^xᯏVufUG4zR˒]/ UIgi6:%К D6\Ӻtu>Wk.1n5꠿CR{jAL`̪AW{)<ܜ*[iE0;e;3g:K!VT|[8bWuYBkzSPvhMlKV"SqL HՀ܌^qf)B/kIv%ݷᘤ#a@bo'PŹLO)^=t),欃@.&2VaC-?n">?9z 7KaeMr}Y͓`uinI?:XX+UҞ;-ߟޡc}=~uOK~Q8azuI]\ IJ'G\|z07Zh/pDzDcn[BKkv@Byʥ ;j;n]Qc+?Cw] 9]C?{ ڢLns㐸H>%]{ kP(]dDb3fXxKu=b_r?5~L5i.}sdwiD_}F_Fc_om"XuO)TOKP&ʜمhya};-Ӿ %5 #ˬ3*,ʷfTuV֔-n8&ܸ֢##sibeMx2(eQzv)Lq-h,b`lYY{aQWdC:H]M2p7Z@E^U˗Hc4">t/w:zq{JcmgѺEW(4L\W3㰛 PZ0:lUЙ ݭJgjEjCBpmeLWg3~+Zً > tdL [k]Jz^#Ӑ쀺 O@m|TO;t݄@q?ݖ]qW8$!&R@&XJMM Eڙ\8 YXbݳeZվm؞E5X.ZXEIK rיM̅zRʚ{r?O}$"`8I;ݶ;>F P>^fAW*}僱5{qUJ5NZPIr1ݢ2X$ԭY=<2M}ԍ6 p V_X؏H;P470LEXB$Y~I$BTDH5>GR`{Ӕ'텠*.i$JJ!meS zN}yȩ-(Ј5m$a#%+ƶٮ3,R현\0"QHuaPm۶\7߰⽒ O;5%&| [WTXutÄ g\]bsJHXd*iq@GZ$\$ 7$>O;Pe+XhVuf6{ r ܹR?8}3Ӂo1/qoKnvܯ|}ɕ $Q; A/ʽEK3r13bJw@11f$\ y*#X\XKJ,-"C L.i}aY6Stg=֖;1h]kk.-,z[@,]'}~$=ȇm`}lo[uȑmN~@ B *!,c/Z{`opg皢Pwbt FHZ\ǘ˼[l㇂ ]wgٿ0m; cЏXSZ\ؒqX0]y ޖb?H弓B¨߻Sc7,e 띬9)ǎp X^=<8OzD5&PUNj<8xsVcNz !@5ه^4]dSrG6<$+r/uMc2uZ}R"$m?vpQ{Sɤ^ h[bfM[&>K`_C&-v$h>'xxm;Jo_YI8';xM #n*%f/$YT g׌X&m>\RAU^E͍6;#|xv$\x榽 D/`p)Rxrݾj\SjEy15WW(n# 133Ŗykhh&JmN'(`b3Ck;5)}> eeKt'LIN˅+|.R8*-5g Wӎ|w",l6ɤ.UgP`U Jo7bSҊnnmɑnٺ3f kNKVHpSQbs F,p`9v.'=/)isP{e8G|#{Y`$\'ZLWK!hZ]ա!8|m*2OOM',#P'z`'.L0{b1b=K ԺM2Co03*dgQ׽ ċD"߿7Q1s]c)@eu0-}XI4G-(EV+ s7<34.#:='y3҉MB -'c?T4~k5?U'9'4}\t[P7`3=;Y& r ]U00p 7:8xFo޼){lmܸo=gWTTQ)Ga'O3W`yaF~OCĄQ/Ɩ9r{HW1:E\.5E~Qhu]۳Xr㹃SZ ǬW (tV_zjj0@XǮC/N@2 C"o(wr`iU?_PA./ʽNTuP 1hEr_.sy'Vj|䥅8K+ހp!9@GR藑@`%up)G~fh)tT&msmqla5^vp'b.\Z\*an7$bؕC FpL #_@ u߮o]rQ_u-X$P"~)!s_UbwdHhF_"{>[&Ʈ-̼ԊnqߴC"MlS}s#sz)%@^ؠfU߼c:(JijHGPRn%bv aǿc gWJ$[P*H"0_[uؿ{ǖ.63PKGN1u β;1=nuvola/128x128/apps/kmag.pngUT fmAPQux {?k;06is&ʆنcR9)Q6cBGETU*ER:+Prf_==v>b/6= :T|*@E@p_C p„lArI\iYа@tr89×dTu3Φ&#+;xM;!e-?]WVNf|U S%a i Jό~]mp`P,$gN(FC^a(㋝ fýD|F$]=>0~ D8gYG|#sc]tUP`->YNIB9 = ,U 3qv[c_L;Nex};(Ity@!h`^ G7yu'tBji&3י]\M@9X˹vC[.P8K0S 6v0|&v!+Q` Ԏ &'oUۚq2.ѐX]տN ?~A7xzBuƯ]&с3{^tQN}*vz `(q;s;֪U6Z6(bojabw31ly~[P57Dup\Ea=3ˤ/RŐ%: mL)fK1Ѵ͛h3j8,j>2 p+GVA3kqzVOkz/ёul?xS -[__:~nL,QģVY L*XpTfFTlgv&9i<.Þ9ۜ *fu:e9ԬXGٺ.0wI^nF2ow9bUY9)@x Z6'$ܒ_cd2bim,'ljٰ^cfJ| -maG"@ƋELj(%afz?i86#{}'ʩAyAIFþSV<0 |~Bn(<9:7L ʺvT^ Jl7{:31v;B9#"/u~aD#>\wY>Rʅ z@^4ާ]qo5'+Dk8GE&00_ߍQ`; Ϊ+ Mav2hVEBF'p|h ^AT*J!4tsaӧN~lpjHl&b=Yt{=C(b6Z@4)un\};<(U=MCD\l3d~L_ O gNq.w8f>%Axpdrlס!MQdLn_x\o^``ݑ/OTCu栕 %++T:&y G-0[F=PW&uϥC66֞G۴I4TE6n,-=cj~2v% X`'-9%1lpGa컨,W9aRo nS>d)䓾C 4f7\vd_Uo_s;_+`A$PP{wuM8{l1m l ,پ};lǎgZ'ǓH6:3KPc衟Շr n+ bFJP*7W3b@H3k^8 xnP]0̓N gc{\x i1\c+zUb/,BA uu\gL׫0*kS` \'`tDJMMe^󪭹1f#jE0_+|{.Kn51'[܉e_.Vi#R}[Ҡ1e҃C&SJs(0>CXދnՏ(q̎8kE/=Po"%*3;/0PMgkLR6.15iڊl{\{lN97 db.ܭL3U `Q0,{r^J;>?FD+ؐGX:C1!E 9ig| n>Kq.(Bp]-?Q2=fR!E=s*yZ6SN9?rxIrթ?ޏqu^J;;S{?řr< ,w a`v3hWe5y.W (a鉧V[Nle r F``[l8qw2Y Q}eE!NlA$:7f%*Lv]"h Z"_2ҭg_b285?1 M9wU^DRj_`b-;oS~\fu#=~gqqq}:4 B:NLӘTJmm|PfoXPin(` 4vdKm,#Ks7uRFwoE]آF5YC+΃A g\!UvL@||@Ò9ģVW$PeS]pvᑵ\BSò/ ,bvnXq7’ [$C;azv4 (@TOCb fb##xĈHIb_pT7v'iRkz0TsYp*= I&- lf؛9ԯCc(1f#_FεT- su ؆YDY\cC|60zzF5TB!k.GЬqFFС70@_S"2[',OrhL0JײR0N"ǑUZav.װ/`SCpKil摻w%IS,ΐ%:7,͝2@:ӏA^i/|5v;2 ՞B#kkA솳T@qP!/$@%_ PR3*IHH:Ϛz7 apBU7F@[1&j{:j"8]hz,'7-ʱ0=JB9Ŝ}pet=u~\w(ntNu<ƞ"_ufuSy9_;=,Yg{/(vpH*I'mDsE-~K:-10o yw*9Ҋ-51f˓J MKtfcHIgcF 0J ^%%>ъ`l# -9{.BT%} % eI$ˣ6in_%N(ҵ[BמQqɌ ;^1h`$1H8ݒy3KuEԝs4H}ma{NcxjTܶU$`$wX,+uQ l= Vi"zYvJyy I6J~qz 3vfƾEbha&7pGNoa>-F;Ts*Xv:o޼٨?#oN=zަ&0F,}Nm FHTm%̬\XYl ۸yC$-)/,P13Oƕ)t`+QB.ljoZ("KgFLON/LxH/iSjA46֖u|~DB`(;$5d|M$LC>G5f2_CעBY$/qjAh4+!YAՓssb,VQ竓C^ٙӽ1ɔ_ݡ yB`-ICՇlrӔRtVG]Quѳ˓>z]|Ӈs z_1P'MXo|i1C6iSj)(fs*TY%_Sy6_:91,3Kk51yqA0@Wi%Nw^h0L3KAq侢'F&aؕ,BA.Nxzb$`?!6UA D%4yyqm +9u-"_ӄ(6{3 \R|V\Py aG-'<S tszV`SI1Qy4L%}quC[(~'pupP?@mWUv@Qmp-QkЦJTw*" K}/JZg,@a?z@sE>}qY|#].#ġ]nL?tG%a4Y:ԬHX,-+M6nZX!zTKHxtן*01!"Jh.p7 )^eZZ`M* zmhu8A$w.U6.oo>Rk~G{k ׏w?o;\ftIw23m(-DT}㮡ؤӥCBn=kNw6Iȫ󭕇3]mއؑUS- C(*U tVC^rL  kPe%c{d;AP%w= l,G-/.(m^'ls1rb59(_I\an@e oPc>%ˀxoKe5E a+sY8#E\y_SKp9 M9p*BPnB4!@K2~iAwwVS+7jg*aŠ:4Rr<d&Q%_'|`tk_Ytf4IW8|ElTck#i ȣ1n40u&Cj8謭T,ues6S4ȑ ^+4ZlT? U._E N<+7zv"rAқl-9Sjg`۵…@4`mr9g] 4,N] m9sUz/~s9$YstfS3%a%{ΙexEk,< ("L)ꖆS,&&d'e ~k"ܴ,C)NP|}:+W`ҠgnRORh0|Ir"!ik(#hΡ-xcGQn9mu`~Ѱ>kXUDRKNjga;@1&S>m- #^A+3*c𚔺<om]+øZ'm6}L7 dT9?Őw%<.ηN\~%[^<Wfk4>W2Ow P @pb~s9JJ]~1auM_e|2k>]gQ3[)XCwڻԛ*M![3cd1N8KxI{ ;BKpÓ:Ld dx2z.3g6C,k1!)u'" 6 ^*2;8"̑uFj@a{sEТө8o$ʴ0?| A n|'ڲdkk|ҟKx%݀-e$WRq[g,R+Y=;7|mu[ Y29Շ>J11/Z5]Кe)Q7Ѝ6oo 2PC+rS=98K xqBQgm06eeyϜ% M'G1mΰD`A#괮;:e`u$|I{Wx'2\xROD5m^ي YMLL&H$ d6Yruzncֳӟ|N"6*uuIgktHA>}@ F}aq?<+ ua>_ LF,G7踪[zQRk=DB5u8|5I\:'"ccWW:BᕔF>NLt҃/n!(? 44d377d䑹fP$|nK1b Nj??m.+tW^oP+['񝸤; >jHK$>_<"5[u;49k` FS@ ֖PT\X3G)s^_'tj zVB , (^B4QWf4{ K9|~krryTUL?or㚚z^r"V4s]lj =P]_K >ST+cȼ)HwY"%DqoF̈́JPS4hHy3,/ӿuOE~pPȃ!DN*ZO&mo8oѭHIa>r`+JMi )N 曎Eh|p2/Bgsriny<ޅ1?}pAMԓvS:/قFrI_=#YVrB4qc_ Q]lg(LSAEAQ$ЊBRgF7^c~3/f8 g;Xt*f7';5i5,2dEex ":`긽UE8āĝ.-]P&cJ\# OmݟQ\i{'JWTX[M"1X,=iP!XiVrwǫ+'́p3jgCFE+֘_5Et~P7K+1[INjZ^C4 LJLni\yl>؎jvTQu󞑥oR?|3c l 䀸 rn-#Wfߩ}2a 6ѠIаi.:ƫ)]hDNҶ׶LGX 2Hs`9[@e7CƨHs )* ̟i8Ԏ*5 {D'{viR\a=[9evdbD ,a$rFрW9(#ӏ!Z/JUv).]V8FJqG5nK"}mLj1qW$Xe,ݍV;LT~]#Y`g=cUť uQYl4gL.)PU!l'W. SZ.הV?6薿R/L%*&Yfjn*7E:Z)Y:=}jnjvP0^ᯑ |NEjK$%: YԌ>MB&&I8L8n@`#\eW >#Q+-hMΗ0ŋ΀^eht(Ӹ״~;vt(څiLZuS ҩY5Xz6gik6vG~ ;,8[ H b8/5kQq74-zsK_";6 14|֭S70UX.N*\TZvx.;)($~E~͕sͫ@/`q\H=4=k颤X;kHh]Aໞ⨖tTtH][[&m#당p0q\#@I :Phu,P{rUMW)R(Zr,PΘ0+2kHaaRM<`8s$lӴ=j= Gѷ $(/VVuCsz?F֮io }N[߆tv1͹= q&XGͽzldԌճ̽'г+y@q%S֮|^jq[ ܕvSӰbL9fVZP0@M5z5qKPO"wD4xgp[u"SNtCl'R;8/ؔ>KC}ٿI m(fCY*g _LXxm}ZٰY-Og{Imp~_,ɦodf+ Kl }dz ~WEims/7\Tv!1IDbC;g̀=?}&Ӗm6W"/P<--ji 7gXg]o1jS:/LiNeh7z` j6u[Hh OJd25rz B-SFlsƫl/+RuxZIUUU%pСbK'm__71gfYcZjhQsƛƽƋҒ8)zf $ICݞx)&W_,bQ<҉~XCrjH~C0w v'U4p c}E?DR`..6E:l=yx BvOpvӖKfЩ)9i3*[?,`YФ/k>L,E`U޶#K$CdVY:A>\;>  ņP;&ASGhKJIU\hY=ٗ9*lk[OxZΗ< L Q);{RA)pOϕ>:V &">Tf10+gOuCce+,jI={VO$\gҎd9lJzt*qAMZ8KMB]ǣi"baԚ"f`ת HD5gP]4J] ܌?q֡y[[?z5 Ra롂S5_TںET-'sssCVef%7)p C][2~\.@#PaSHt(ߠ3H'-.,?{i;Efɣl,ŴSeZ=E|lL>ÃB)dRľ$Y:?]GMlp?t2\wh B6BMX@\KMẃug]gWnU. xL9N(;~t3{QY~MyJ[ϱa<Z1&꼂)-]ܩR?1I_!(d2;{)D"YpsuN)ؚjTpic Fm|\+% ]ssW-A;}P|;O´ iXO rCL{ uI)h3m/@!VKX̾i|a{/ 8MsyޅM[1%m.3 .@f9nYg~nRʽZWX Ij軚g8W2ϤpuW%pA+ϾL=!W[dw8Z}Mƅ@Er Z ?>L݃`ش&ݍ!Fqt0-JrFB4+F L2Guw2ݟ?V7F#@Z1،B6Y 8Q4>:m3Κy^/Xw!C] ˅c=u)J.{؞QfyhlW(_HlEE4@ ;ǭ+sdࢂVA9xfú0ej);-63z+0š 8 .0`/ .M|^5%Xt#^>3ca,dλfTa/^P]_{~}r;P (͎/ѵ{^ܰ)o2;]* \Ԗ'T9gwy<:~XoA J+`0ED} | PhtyAtVz۽n(>&L#/e6. s4f&f.++m`Ʊ8{]a&Vl(X£I鑅 ID-HDI+d JtWjfaJ) oR'aN )T|_SNy 2xm3 [r)9 i1]jlh!>r@hylwݗ|Q(Iw 3e[F%'| ³ܽoKPPy$#e2Z=xՊX}Hx U3RN WɪxNfjAC4 ̗sڙfЋd kN~N''ksX #$Ùx6]\>6t_$=&KEPnj}v~iiݣ?Xsۨ=ut#ݙ`# l0fd)VQ>ǐCz0Us rlfh:6'YaLxg6*F ٔdLfQk>3r1j(CB3*ML#e`{Ӫ (͍ fOuDVϟ|Q0 :7\Ie"YzJ |?R`O3( ),DE'TZI**=6í(+KUj&;` ??hbiNMf0Tx v&Ј'w1&ta.2z yZKÚ?`=(>9,~akFx9v).gWς$nR 4):qDb; ~I䪝sЅ *˳`EߺL|ҊnH<'T4hLEJKOg9Yt=Y-7\a85YO!voA® (&DbPSp r:ѴdZ)4BW~H.wF*ǐvOT+4ðׅk{!+-_e:<=AhGP*=o vBDҋ=bJ:5 (Et? bh'©e} {ΆEPR,皭q?C)&_:ޚ Y ~!UF'8&z\D} BC7SAYpCNwc4٦L0meCaJ fʼ}V EC:ڿ0S;,*Gm?6/_9{XdptN!E Kw eBSw7Kux3NX4u}IAoH^t2emzNHAcʳ@蟿6*~ VeW٠?G,ښ&zrs0yu ~!&HiuE4qE7\9YW&jJ$NXGǐO*d.z A Yjj"&E:r8lki 2{[pTJwj׈TUO 7O@9|ό?Ug\R:mɛ5,YȺk|{KM`ל侇/כ5X>m^ S+SЅ{!k@E]yǝPKpH1%&?' nuvola/128x128/apps/kmahjong.pngUT fAPQux -Z 8g{T66B{/+(( | e:xQ=!IT%U/XC3YPv(bzA3pGRi&Nڦг2~k]ѹ|B5{zb,ᐕ|sNR+6 ss)^U{\v[-}fcy4LoFXCP$õL .C]bZl _LPDtF[+-m諎VgQo[?_f@aif_G} 9V9[x@%71S@A嘁# 2 qe͝ıyK Wt7Vs)S^boW,^T>f4XgY%-U%4l YScC4m^AgC:Z :9͔7k̝>Eea/qf;@ĝuD[Jkݐ-B٩hb=$Z%< 5_R3fIȾx{Jo0%dIüՙzjC3f' Ah=WT,Fti(=0O5>{0wwm:jo 7y@~9ðU27h>-66Hav8"mTMum rmMH~42t:^'Ƈhi3|ש;wKH {噍=#- IղL+֠ jWd8O8 39e]dz0 fDP= i$&8Kp>^|MA~8X'~>Lcq8ɓp7ཆZ:MqT;8[fD7f1rf=jK\ǖ{,e7曠!=M{F]\z:w˺hXE*۸}vQh]x< Pspx%񺷈$39^~nx"`>xSؙE4 _u%Y+ Y qT{fSayGTY=CEN\6xWOL;˺6i'6:Ӹ5wP=MJ_QIR,Ed6Xȳ$]9\M?1nM"Oh\=S/IܞJ2yy?Gv?/)\Ӊ .LB5+ň$ǧ ,L++*aʀn9(8}ӽrbk9V“W{[N^O'F`_b~_tփn_ [A'9jM|m;(G^q_+xq ɢ'4r7nrӲlbXX(fi!K~ [T<$ި0Yæa<#/NV;;ͿirwI {VS41(lx]</Yx@|3D[v :ցfO#\۪ZBrܒr](fS&J==jKK\;dG?l û`^KͼT=.XYMU-ΟGOC? 8qٶ3^ӌ;S/lԾn{[OᳶoF ?6ζm往ہ#㾠ĕ}j rX{?q5G <c@c"uV-G_}]]kŦHrWjqe$~߅,9xt$9l^GRnf脋?{}L~͍=B{E޶w\]uwIkBܐOQvAh[Kc\'(d N^93!AUr&y{;)6^M, $x0&ZKOCBM@߻$X4䚢2mQ2WGj]b>Iud2S!+lwlHſ1Xzf4іh,-<*bG6/:I]|ᣞ8a{C3`U gٚQ=N+G}RI|":> -f=1ecz)DكwJ]*an"^ZOLO_PM%`BE+/0Pm~ X .BE М,^Nw7d 8W^ѕ8|̫gˣ.]rӭFΕ9z[ 7ТBmEzclbKsa(bG`_4aI[f4:\ gap8*)83v@Cӧsh(<Q?ۘ.`X܅_Ux5JNrv"om]nlR Mm|[;'wLLR(Ǧ}*1ixqϟp#sNGZ 1sm)HGQhz}oiE1vV񵢙x 1v!JB9Z>1ap-CKpmX>>6.ޜcxԫbVDMEmbm8;^ZCWt> _ )gDId !u EzMES]zz2G8l!, ʼ Px}I9\ۨ2E͂Z/Ep$iQWo[kϝ;9\P;k':Rr R]&8|^KH\RO T*ެbYҐvu 8X[:tՉ^S?E8ɸG;ȼN&|hsw1>.+#';)#2Wavt^J-l&&DCSKBT[ŀ3sJSoGn:ɇDCcbTCktMd+TkVa8:ZVKMeiR{3Gnf )cyAQgN7*H@8՟ 5 %"bq"{$%GOHv3diCsLsgu"'~ƖA:2; q\fԫa1mzIԔGny0'EpZЃ oJz>a|IY{8tޟ!֪K/g#=hA\Z"sˇ)qsr\4d6SZl\h+IY ~ wDGA+_m9<oSάuRvBiz\2?6O)ń|<#zϗh[0xff:ǨD݌DžUp]mFHWI_ #cN'FWM 2JwRG:'S~PQ#݄u8mnӢA6?r3Q.r"[ٟ6bX$ϧ^TYv*?.,v YXpOڝ2WyH|:w\f-5L?Wzͽׁx[ԟRRC.@#Mca6܋-#Pˑ9+k,_wD1\>U ; r겿NzeK͸mf-YMIGsؕ70]J .Tݜ0aMAyLC@; >@=l6[a1yeM8W14o Ak+hu]_{I,uu=]ң؎Mn*f{|| k 3H ^ZBQJw$umDm MFHLM3F⋋%G$>}Z 3U[ ]|g2n*{SOO/H+쟘_V²d; f?,AYNp1Vz/Zߌ'j+|? 2* i6<'n~:Ꞡn;81 }?0L_ֵdߏ]4qu:r)'<(z9K7]k:wU1d&]G3\>[i7ldSV:Aa _p@/Ь֎H8\}5*~!1р7ݔFY__&ϰxgr &b ۳Aw=f '~Ns3>SiS}8~#sᎨSK4% & #5څo$yxU:; )ElԎ nɭHֿ.ZǺF|WP7aG9rgQk}"-yv߅ڠeyƒǧENftdo$K:B8ͺ9+z8>΁meO]' _}yqԲ\=ݎxrBF}K ȸ%PHN1&ݑO֔[gk8oD&m.uk!:la/n6ɬ #HIAZUx90٣:%u tոk~pg\.2P ? &:5Myd@ @TlF2y2p"y-mß߳`GͺW.Mu~Xj`qy*C}ggsBB'ZZtGy&՟xgiޤ-QI"? m<}AoܑN jB~&fKtsryS߹zT1K%#oi\5*L^O42wəS 7>G>0Y6!o;*h}]tUQGYvht;;u7$HvV)ĉqtd7ʨՄKZokЁpdCR~]4Fnø߱:2#%ԎMu $i\?JK?Y js r4O"fw֛Ebނ I\vJ=Jz)+EcxQY᪀)%څr e o7dshA$ELNuq`>CiFqy$z||FFHYp#.}R3-mvu"a(^,;\C\A¯7'4xm]Vv ]up C?eipj!48I4H l[嗤 jOl$7] n86!θ)p18kli%NtuTlc!9.]U;C;W:L%} b6lyk/( A?}??j"JAUMo1Sq61NsSsN'n tdFzK(o?+#k.oXOK췸bNpMB(\SP0w8 Ɂ[S|;:G(wG1 oC\RTS4.v2Qy 2s@K3~Qr?_UIxǪh jLm%jssDXAjg WH"\Jx0қo; IP0#+ F}[XWgE@_^6GjݚgH>Ψ)}ʥZa ibf|ňuQv(KO0W=;/Y'Tɲf;͎σ#C}ܯ7Kٞ p&8dtØcnB)ϝIlO # X:' K`¢_#7^K9~p} ڃ̷(>}&vf>: Y/ \uRWX и{gro"Dž֡%:Z]XJA}c=̫ˌV 4oz$?B :o8iR/uBwl(:ŽEVWofQSiǮL?57Q״AAﳿh֯Ô5ĭT}&P~aD!n-dǼI\ ڞ7%8i=o0h<5:1h@ԅ&ʃ#[&3:2M遶*|H u; kW{2U};k:5cvKcEsز`aģ8G̃?s/%qNq:ka@^& 7e^a?XaIloX) dwknh݉D5#ii%#ƀ26ŮsGryL=e5n><#'GW6s٩#"+4N ^2ΞN^QV܄e|[~^ 6x }R9YxT }w=k>m` Q8|t^gSP3e{$؈4H'^L[}Wf^U"B+{ӒZl9BP'd]lF~WR<Ԃ!]tr@iL^Ԁsy<*le"8qsslŜ3U6cxU+ȟ~?ʰkA҉vT7"o65yX0M6so'Fw CWeV7螐JQ8`5-{;%(0WR %ك~?\8Hi^?}`*]"4𮜹Y<n\ qoցVz1O?.qNn)q"PN˦GĽoZr1.,Bn399k"fS(CL#.O56Ogn4j/}o࠱s4ByaOe{K%6,ϘleG4}cU;N}9cqc  v(Hwռ1l[I-%z o* #1u7\/#۽$vG 7?gv= Xw>N`Mg6KWpgP+3qĉ"$ ~KHrD+AΧsfJ D/BaIL? 0B@sLeTܵl7"6ζϭ6A~:{,l1}+0@%}d-h[[^6x y@q*2K??N7%XxbENoj JuФdԿj{\>k1[y9!Z1LMڷZ5DaKkw1n\ u[tPx x:P~Ch؍}W{A"b8@TűrV7H# x#ja?n!ԮĨ{U%9@|GuzEEzf4v$FE[?JdıERJ_v[Yg{31N Rɔ2OZPņC5XB$k n`mg.}E: Ψ۹O"}0+_MI4i6 E"y7NS%mub-3;Z5JbCn[,' 6g,*":))ObS;/KTX* ]<%w"XSm^%=ؽm+ⶍ8}N`PJE0;;]Mܵ=)i"+iPJVgw)\"@ZI~$aaP}6dRwn/_p%֮OЙXk^UDF&n;Ȏ^Qa `Wr ܳGlֻ[q) ΁=%`|nU*V Xrc~έ]K zT][Q2}KbSz> *P GBT_,_+cFEׯcg?>80P9 ?UJ}Il݃/,|ܦ>Jf1@>x4s>lJ| [I $+{ϥ"7m[F8 J\khOZ wڏI6.dcSLGy"P@fQ-rG'9,^ f, (mЇrT -=Ŏ@!A yV:W%/NvݫZѐW(ՂOXWנD(*b% Go% ta3oRi- %?ͱaJ*CufJfɐAUBeE<6R.rWxn)1>L̏?@tz싵h^jyN't$:7!ΐLgG`Pݷ@`^KJ7v̍:,EEEB+w]D ]'r^\5|p$p-D ƸsmĤvnj-5mNN^zK~7i8V?h p de@~aG%*ޘNԬZ"ǺYpk/5|OUOPe+ }XgGS\mk&ꋬD3 q;~Yz=_CMմاQL ` Y?+رu8$,}9 èy&0yIz'$#p|wec˕՘ͰA  [SnN+ܨ}Rv鰡]߄-ԔGv$cB,q@nF\d93&wg@T #%<.[dvR\ AFU>pa0)Ŭ:1/?ܺ"oa Ǿa1ۦ'zy(~L~EXX|95p[Ƌ3hM@ DLo.:[0?ebJδ2Z(Vɨ:9 U3d}duңu.`P5?CH~3ˏ8MW'S g)O"XY@Jlw6ߞcxV`͸,|TH2gjPb W3hPM`:"yW m]+S fHXٔ/y4$8ę&$ac-̀?I`2ハ!$-fD",vIRd?kJ#?Awj]De!ոQywmؑ /DNzKѿbV W!?֕LFE@dRx ڭ+4H|C[q=Qi=%{G'1;KWV}I+LJ0V^1T }7b܀j&X8T%2/% tُmL9M>;{Rz'QB 3 7bnyʼWkR4^ض  &C:jA=}y=˄pro1;?Nh*9QyUeYJog c730|`ꢆܤ_nD"a]GdQK_aK96ؠ T.ǭK65(l}M௽Ko֔z3%gp<ȱ{c5'PVFdC2ׂԯ.oH.y <g_Ҳ?s^}Tox:QWo h}^]Lc0FȫN.񴰞3{jg$II4sT.p^{PEYVڊ @ׯR/@v!Z.B 8<|F'WXcIQ)F%CBSمo(c&L!'H>E[rXh( h"*_ A#uv3g}`t{⵮ cM.p>K|p =ìu+$'L[钐hѱaY ˳ PĿ.!Ŧ!&f ί}Mcr{Jnq>_}0Aٵ#%?w `)bh+p@e>x~`7VUZ{;jo[1X"޺lL5MqfLI][&**Ь95aɾw?7~NFVHWYRAA䱱yA g80)r |[G˝KO(:g@9ge]:P`m]# qdak"OeW;<ܔ,̼rFo17~%/9 oQґ =v 0xU~irPP,͂սSɇ O>!J{nxywǷm%r_ڸ(*F e3B~LmQaIwm'9;vR?F].FU$V,xdt9A;wڳΰ.*CnM"࿼MI~͑0(cZ>JytTC( z>V+&zh{Y24ʙr^W%"Ijؘ5K# y3̋)QϜ1679{gݿr%3.~]%b(o!F$ɷfrTL %ס (=CT[Ţ5Ḷ"l2?88~yQ ܻӧD}kWv9ad?Z(ng{y o.R%rnb*ɦN{9(]=is(5GWl=dʊ>{Y.<> ᘬ#P"&\ӗ^:3B0C:M` ILl@a)Mӟ$MKCTZt}ڸ<.ׇ ]01?^b'BT^P1*NzB8V<":|JǼՄiaf5áC;aTxP 7`EH:= JBL~GX=i2͇_r85CE2yQ}Qm ׋:Y^^Pmׯ3"Ʀ?GGGtF,D6N&k*pQWY3،U6ͩ8n9q،߸sS_Fe..cB%b+q=:S}H$L:Jo%T ;_ҒF9^6? 6/>]@؍8u!Mc^aS ̴Z,9tzuusC[c4w|-(H:&m 8B!U wW_̼}ae>?#ib;DP(ԳWx b =_މhΝ}@&i FQ1KD| fu^$ ie9W^3/DBn6%6fY#+2 HTzd$_OJ}mpf#AHsm16n*Ba] W[;Q $jsΓiCҬMR8o*33`CKȳ0qW0Ħ!l3?GD bISvz~aK#X2u]1}j"_>9y4p9wM*ǣ}-!z෗ŮB _eփWI "67$]:yh?9ovKbvM`e䛣0)lY?zWPIsꉵUER$ vGLk;@WkICܑ--7V?m7*_нgg7X0ez-9BO A'8jŒ&Ait[μA(8#RGҮ[\9}F/y/Ct(|~gqT{3ԛ7>;& F×1;.bta;w64=%1o>2t\&I|fx=X$W<: ԤĚb ح{zGO~<鈞t>> FWW'hNQKa؂ƮiCS'ޜ2үZUn˱NͭZg$^'^;4٥V0ƍ蟋&HN* }wx@ V[D*b! bzz;]؋_O*`G?VB=I1=D @YU;3̹:m!7ӗ*X~$mbcZ@:" }RdAAuE.pcʳ"_D`?3,tҦijV[܉|хe#t^j~D35c}h9OdGOeQy=s%NӇl޽2 &>n&O-Fa'߁U%")I[mRUQ>4DZ 8K5- և _!UWf3?8Jis19y2}!"lddׯ'wօr&DS(OmA~+aha0Hv>qѴu>tݰ3 QȢ"wStdPX`_?iF$>< )\1ח8˳Y<̑/^BM:45rbO ԡ!J:+0"yQg0!~M~?JHrxZGs kr,&a؄? Z|t#z$I03@ꚠHT`O_ +pL:}I(!ؔ.xQW*[^^UjІ?Z`IX;ĒψhZ*39KwrּłС ׌)&C\ P֐8L"E͍$&cg+dwr~1P_(A9jp4{l+(}O).AbC#{<Λ+=c/3w*kl\RsfnGo;Gɺ~wq!+ƭVAE@Ubv}.WH*rtha:a;w?n٭N( (55I8SlN6ÖfjF`$=׷^" }t^ofEVlPRĘ:J݉ <{ϸxlM1e^A:1_M&ַ'Z)s_<;^wVvhIDjJ)CTFxyD'B#qЇWgixDFl;STR!N }hp CwQ^;"fRxY߱[okkp8%T"Ir4#=]|ȝzo>of,G كcO3b. L!Zu@(dehFHX0;%_- Ut@rN&)J:QFۛu[/ҔPB`,/hU ?Ao ?Ѹd' zAPB{;s늍-HL |y}c]5䶸o: slnG"Ӟ`b,x1^IlnStڌB'h_d?$Vdp?]LLDjS<39^a4Fm8?o*9'RXVaRzV'{ =YEu ]^Jූ G\ MX}) ˙hL}8Z/w;"{JnD{u}#w AL3L!oݱ@4uJ^{ \Nz \w'wG'9$/Jϗǿ_`(^;e'eqV@ܨN3¯YW[Ed >("l{-_r]R%lc[c [- yʆ$˟OTF4 ({c(x]j^=\ܙU(]Ze:, dgk9o.Gâ&~txꍒa%|6]75H=қ𨵬B/s21׫ ,0 ڰ357=_0ZbzjK )_JD"Fi].L ZZމ>$TNxø-;33do]'e Ar俣39qt>Jwx]RZЗ[@s8D>c w漉v( +ĂGKlô2sEbl;'|bR8X Eva%sZܜ@x.(w3fۙa\V"Y6ӱcj|7̺߱η\H6 tW2O<}vc15_@já 6ruo) 5+_™<+b>5W5j |1zUA(Z˨CE8J)o,usȬX?ey욙+iR,>Sq_b6(TȅbxfU`7k=LZHlͨ1ѱjV@U8)*c>Lg]I)7i+:֖FHZ2by0`7TxbМuYXϮyJ>c\[՚w{e3oUKV] _ vdŬ0A) AC<Kg!FK$7DBbneɱfJ$%U95iъ~'e;9#2(B/\_Z;G8K#ߝyzg2ZǛǰQsPD9әgoɍ$W~u0)_xII:J11eჂ=gˉlЉFC~Pdd_5oBp3ʆ5GUiiSGQ%#k=\~r&giFڐ'7BKS5Ym q%1ŲBk]@ůYovl|ľfAZf~x?ܒ :G(8>ਲ਼Oz{ xKbѐdFcy+IPP<[ݷ>h TkJ6IVږ#U 3e VF=|:oiR"JJ߿ q8}wnIQhU|n9-y]9SMMd0g~uRQ&)=/I_OR.ʅ_痦2c* ߎWB|'}A+f@9EhX\cOST݁Yu .xOxLmB%#"ڄ0d;o(`FeH[qy</=IhGAǚaNvIGU-6a/PBd"QqKuܞQ?iua2 {et=_:+<4AE$\p|d'#80m``D{H_Hji)+}q},ʳ$R c#E3|^V2:ʜk[al(Әh4ۙ6lxŰeY+F1M䐐+P v⎂GW{U97qE.ˊpqPT@$! Aؤk"BLas m_ƈiF֤/ `cw__sr/_33XJz]u;wgZSnO^KFPҮ3[cltX2Qk>d!f0){Voݳ5#7I@>Th7t[yO{26]r9(u&?*!rb,`O!N#dHcR俚|~jU@=Nd쒘w[-o.~eڢ%Ty`Fj>覐<,LQܷw!oz"TޛF.EM0Tڷrr46ti.gdx *xG9Qȱ/pA!!.m_,["n'SDRE4hC{ݫg/A sc%\4 CHN\|.\+q m !"ZՅ4%.>8p+)vJC;Xc6ۊYYt( W5Ƈ%"i`uA8S;"\[2wē";8ڜ6?qM@ 22'<]-^¢E9zŽQJՅ,$Yȃ\亱ęKlhX -Ǥzj2"?Aڪcl:^fo\XzɩLOoU恄c;ɿ~B]O&I?qG+T]gu{t`Z]:G4 V~!\?OQa I 6~7,W>KY]K5Lߧ!-w,xK+s+O.?>Asvn4(hTc+o}}* 'WnSD4Z;pGVWzψo!sRQd\5,vutn\Tf&.ȊfR_9^bIȥf~aPE]z=݂#|.~ӈMr m5$…½U&KIcnJ'rPK`G1_KLnuvola/128x128/apps/kmenu.pngUT d|eAPQux 5| <gf9rȱET5*"J9& ȵJ%VQܹxl{l{_x?O&FXN!;S.xeAHIPi%,#pX`T_)J%/ԡS~ߞ}'\H1|;P;)* PS`0nTSLJG @HY:$%''G}))DW,΍(| Ōj"?6@^kg\fR1nnN]ZZf >DZ@M:'q3GAl<,HԛMaK?\šR&_Gw ejҒ%!nKFjQx`4CΑyϓ;/Y#,@vIʴ<.۵[O5^<etQv0lH{k_Q]+H`7ҥW)ԁd-}] \XƖ%esymPs쌚匄N@j;D!40…P8kFVq9q2ٵKBtb[7A.{vBD*[GxWMiQJWc. lNN/_0FqCXE7Wk@#'ye U \OhD2FiyT*WyhM8Xm`}X`A<6Zךg҇{L{P_PSS>3Y% ѳ.\Ƅ /*W&Ң x Ottsnk`;Tu1)CLt~rcc#xx sw `Lk=BZ5$˜uyi5HG!pGm*liHPwڷMeᠼuT|7u-CQ] h 1ΌBAUI[kЌ*7WDiYhC{RDsQYUT<]$$\mBly[ 1|G f)ܙӗ8u:%<[HmF A}bQ[|uO !~Պ V7"c%nAnl`lh<F7"Ylp`qs&<$Lw?֏P_Ux5 z~x.m&P=[[#nvAW\i˜W_Z䏱ʭ%0Q⾨]s,ˠ1uk۷555߾)\v6:3M} ؈J?k}?^qN|4ѷ~mҐ-n7gZ :ZhlZ;}!QO:C~V>e>=gh !hj]ء|򱳡ǜ9X훬ICt̴aqq0!y‘"ZC{_S %PZc<ں. |uAV| xmdGW XUZ[-|[|rtdStmDՂiWj3撽#M\c* TXg󳫴5ho>k[=o\+Svc 94 :<{aP'vHP9հԵ'ϗ֒>4F:]năW "GGt ߹x tg DS+&g͓ lm;b 8f- %* ESR iUU H~(%hA"#TUIOm=~QkF=r;0j]ßӉzz/5gd) zfQœ>!ݕK bn1%ε]& >F&g&I[ى2~pK pYpT@]SFp)"9_rc_%|$LyDeA-kL]Grn4AR%y]0[uT l'n.B!{iH&Ox/VXl** 2e<+MdY'zLB;l=ֻ˦ͱKcHHQR%)=="/< Is!sY|ek&%}gBaU.]Tkݻq߇<*9M HA-<sAZn}U٫.Jtwa~ي ?y7 ySxF {D(SE0 OxU#a~Gau;vlpZO)DSHE|g a[jS~0;Ku ZzĨ~͚QbMљatRӆj&*mbMLkY0AWk#3 GyHo" "BAq޻gV \c[7|@9TllW)Y11]uʹRM73{o%(V˜)Nb3D=x)?jwk]_^FM\瘾%GLGa ѕԪkMX[ EE(/d>[[#]; w q@222% #v5N0#;3qoy} ;ZEUhؕ2uUڞ8I,2@ g&‹bâG= g|pca͢P/.iy~{-~u ?뜃*UoR8R̄ qZ}&EFE$Z_n0]looXHݤ!fM7$!. VPXhH.={`4dBy=1Hyxmms?ܥ_QݤLh ( _VVTh+/n|xD87)㺗}* 9etyۙwgOat' gԊ,נVZ)Di1t$:+pw&QPDx ;4%.BTU\H9_jm˶r ]j7XU>_X DڸU}? co (" e`ӂq}r>)t@K 4uzߥd ?;e@8( don2SN"P!91=tW\+zqG0E|~v2zABOڛY_NNmTSM]iЧ(I/ܡaWB|4!~S/=GƠ-vO[w߮dmnp: [[qF=_7*N;_Χ[^:|-F&V/!j|oQa2ɂσ8S G^2L?j٥ /a)h%[Vdl̏ꃨ]W%z,[$%˭1DB5 99w! `*f(xx\>l.~qȑ7 ͹D$DP5qtI mm)٧}xx%שV؁05.m2*sۼm͘$ヌ>:VҤS'fBne~ ༐ $ w"y+bH^)V۾cʶ#!]R-twvـdz&1|aRexiAr7{A4;|n;tJM4x>K+MHY]{ݾQ^i {-Uw5~_OFL-6׸^u@9U$l&;!v5y{#m'3G$%Dedp6Ph6SN95 g3xIK>C4Kd@6Ί$χrFrYbCOy:7,+/>F;b:# +٠ ➊WJw]ѧK(g}*QEL-R]<ȝ3?_|nt@~Da71ź3^tʋ, 諞kshNՉ9oLq׊EmmoNUNFUC`Ժ:->I A,\{5%ңfq V}0.:'c2so4o/y~L/F@UoCmD{(NcŽOؐ匁 )uuUJpK?`0P{充䁛zC2#l+5gB8ۗh5L~NI{X(Qd f歋eõnd/AH[oޞJ֤Dj1џtQ;j˭VH HS{'_9to-l֍&Lv 5rA?E=BUtQiu_݁=֝10G,"{ˀI:e'::ͽ5ҞB| @IVeV\d‘"jD:*n NAJSzt͚QNMIA NquYbе.o313 b> F}~{ȩS۞'l8iV,g矅EUc >yd'(=plA7 {G̮ܳѸs-1=;ޒO" Z)$ Mc#]bf@ 8~Ǯg8j-!{M};,,|yPy;f853..F!iI䣺E9AهZ1:m$Ws0{,|/y, ?ј3b> 0O ňƶ͹/)!w$N=:﮽H9=> -2zkdl1M0^ ['$d_"-bל].Vr&P;}oGmQ4D`yy4=O3´ O2)={'T(D|әrL{&&pӉ]ؿy„2Zpzv6uC_E%؞=g_ek޷GK#Es,jmJJJSAqQMe!Fګ$c[Xh!&oo$Osd_ tr rB쬚h#y$B$ldescJա"#j44NL| C4%>%-}: 2O驰{+*''O9 M@]N*X*9֪C!x%wcy=\|n%Hj1*a=x<˅:>,vW`yύ#HJ=UXφMհ-.1yĆ,==V7PQU=W5 d'&veLAVEBI1$E#1&ӽ*-@ WVVx ύ$ !AH0dڶk$" 605U|׷1"Ј-#}E@˽RRNK؆c9 c lR#B.lүm=ʚ;0v1;A$#W,{G*[gU@/ # FqXB>aE &fܾ> %HZ ̩\S -zˌuXIzqGݻ&w6YԅгDr9į&]<̤e}~+ρ!mƬcۿ4G:L/ }m-F;O{߃QL%~9q,Ё*%w񱝇 ۗO!CLBf@/@+KYݗ~~ ٧coS00)> o5j(!S]V#P 4X7)|PeN1T3{̌0_+W##1 v2*]`˘ɰ<ac TI}n#gDYnŬ9SkfFBwۻ>0;ʙs>fċSP]Яf!pxVu)Y?X:{ z? L;s'94 [=y~%()w!=]ۜ-LafՃ :8 sT ˋy.A[TJ YB/ٖl@\LAOOy{F<]p^h ]s -3Zva’er3'g'iɜЂ^kBj,#Bǻ$\/D5l/\F/*B z!a鴶Go_o=L3i)_۱zD5PFP!-\| *xAH*?0CR_#mybx)b- ơ6XTM?G"7 |D JAJ.; X ^Tػw/Z$xrU6a2?vg_}84wO wݒy̩PTc!"![6 G۩.q8)rkgCa@׊!uNlM R <8YKUg:Q rRS[oRlKL/8V/D97Ma'Un}QeWF $7A.9`e,[R"w6; ڿ;eM~['AXfV=C#vjAr$$솰,fev9(Y-E-jxNKl: WĐTR!.| Hm)b7&rp?qrҴ&='M[ㅐ]kCAݤI+a9'2!*ڥȲJ4fS& G SUxJN@@ %l* r8qe FbS[Z6YۤK1{Z%GP0N6.b[9E`؃4gph}>{t_;;Cn-1tDRXuP>dt4}㭶LjAQm"L1"B8z@! C/s9rul"47r0Kޠ0·{%#mIkHdpwWHb{}#9~~9m%SL"+]Bdz D$P)Q-KlwO,C]+ D93E]o9)7P 1AC3Ɵ5dgJܧy|ATˈ6>&^%VWWPԗԟ?Vq];^Go1h@&LM9Cq(C}싗 n 117_}u,Z81Ev`e5AEa8fe 9u^m  T+H)";9Ҵ,X-ΡL5N3Z"a$`,(?S<}ƵlC*a3{^c`}\&` U'ˈ=);Xwk+ψyzpouvM_Hŕ?9,qQ(1#|,”v9?O\ KQA{+TjI]heUL cTTs '=^IٿG%أAi(,GES8E@?[R!*ʝg]`Ze AJ5?y5hR|l~"Q(>HG{캵-K~{Ky[z&Lu*3/}bkofB^W8jʱ&sYzdOyctΝj}ъ_^#v{ ?wzZܖf53:t8/8*yJhwƃljR ŷB?B }a; S(1`U-1J`L5 )0Ֆ:d7RB )e|xT /@nv>1hк9GWZ29?V׳!luP<q)c~wl_B)S!,1P⃧ :dEWXqû␧x,eb,:mG7k0x7wG]%WG+m ?quv=F@v 3 ceDc'{^c^#"SCLr[xRG}*,v*F]Ge4.{|kOep5^J4= " T"_ܯDGَ3fH. N^74 &Ƞ"E??[5P @1WU/NJ39r2מi?q4$!-Zӑ:ZW.j&Y!UiY!uձnx |I{?'JWfcwJ?'7Gu̚258ɖF)asqBA:T8^߳5[r/Oh' ] &ޔw63 ȠKNwH몐A å.'/׍i_D 'ȵ!r.]/RBm)BoWn>}*$!9l^|(m}WBP3_:vI:x49424H6)ihR9M|S!IƘgmEl=&fv c/}z^KSc2s‘^L|QX<cMM4i݌QSUm꫇Eϯڥ~L,V`նty߾? *wwOIs&PSa8Np9mڥefGH|pmt{u7fMЧ%ڟuV|zcS6?<~xM%/CvFXl_jCQ,iC'&Od^N3ϣJKB>KL:-KÇG 9TُD[%jÑԡŐ||u$i.xyF&&Ժr,,i{,5J3/T,^ӆUI_wR &{B fAIۿ2UTvZHemI1J $ieD# fF.|UTwG33xK:u ũky)*v9NZK4Yh G7=9ߞ 'Y72p(C(]ǏwZDW1N&r JOLpy'mƬPiD=4hjoJ "o;+_'ECB&)\zN{P?#g qgdbBCϞeOQLnZb 71OjD wU|{rPY f_jWsv3.+m`Q#k3zS;q =`#7>G fTT|Eu=7dl!Qly뺚4C~朳4u7v 梅w(C|<=t M^}6׫K:VXi3C{:+x?U!\]MmÌECg JvmcȓB& _ȵăX?X V,Zʙn"'!Vgmb701.`K%O4!mb H[CNq\8p QF.\|rq JgB۩d_wƇr>63t&idc$PJ\b6\u,쨦e-Jy q"9o33#҆x7[Ѯ!f@6ШxZZd7{ixGI: )O#(F BU7G?KfÔQ%˟fsO=#MdBI(]۩|ȩfiA]7p/ՊE9}͹鏞=o(F}۸@YHza"q[SQm8^1_MAnip\iה.?A/q،~JeA}HC:>'C{o؊vqu8mH(ĚwoP#7r=J/rcEf*&8 vyMBQ$HBBXt!MF7[a#IeY~ +M+CAk[?uҡG" E&}ZC-;R\ w"u޴ߍ;ǯL=цF *.$ivEIIKiOM M,E>CnѣrGR_55,&6phUU(]DfF1S\]KY?RRefAa|,Kx+_zou q;^CW9:xBĝ949o`w݀ڧH5\`umZώFc! Ryy?0ē1 [jUBDhf;(wЙd$$hq>eP)1j@_͡L6V X՜-c#Ƶ4ȃƘc$«1&۷c&d8u甄:@XQ;273ͅNrhW?l7V 'Q^dpKsVpe|Sv* ;I6J^V`Ge]: A7ÄI,cN߱,"њQR!d?u&C)4yέ/-R1\[d17vyN`cPQRUL@]_;39~*5-≫tC0:>^*?%3΃8VxL”z8cztx^z'8ǗJҬ!(3d#PяG[λJ)WD=GH`'YƜb/PH3K&&舺K`12&:0Pay'Ƙd'9fZ BI}s{Sg-U*!9*l,7E{~ WeBf!!0be~EVe٩aNXƺ'B7\FSNdXDČTx ]j}PwAn\mC+w+pEΊK}j& D #-vޚ4\oGF/w^ξ|Fg_i+/~+tiU㎽~ߔ w1HGGkz}Z2>] q@q+w+L1LeQw=OA|9Fܘ7'ba!5Iuٽ{V-p N@_{?c=bBiF(1PedcҳuJQj$u yM7Z "Ue1&)S4QR Ma,# +6X4%&,Ԙ;&":# de ӳQSQXe_xY<QTIH !9a+(UxŹvz=޻!|ˤNeݻPoޔH 1U@QNT)djQ 3&Lݱ/{Xٖ<2",9ry иz?`~nhwSەu goMjD*>!DwJ|؅7&u+mjJSUUs)`yI*RwW~}.$Rq%Eg{,!9a--Q&[P! r ;r={A KJ)PknNN =BVk%P TB6ɿ>%XWZbT6 0_â{f_PQ;NIWU% <| ;w{ǸcI+UH -\:1DQWp)JPNY-:RFƑŰP?+)k1h6r,T ̹K&v12 э>xz O7[Jɰ}Ԉ6_J`gi" **u&U^qmc~5'쿌|{*S]Kn5P6JMͥ.<`dX֙m> G9y4pYJr֎I&L-`@+htrS Zi)Δ[ R5BC>Isb;]ʦ2Rm;}mgeonleϵ_#3{>iI旓NȝW׫pRm^'ר x"|wM6^Rqr`nt!Z5۾([!`mJ{kJ` |JckGHV8Z7x z힂9cIHNiA rr)JfT|,>D?ABRCԯ{A=J۪1$ij䏧e3'6t矡&NX{ekUb\O#19b-՞KW˭{;;_>fW߾]Rd51N]2?)f^'-tXZHb0ǻ= Xm$ve5|unvX1ҒYG06yDU ?qh򨌃֣$r6l26k!.6e-F]ڨ$CzWSD@30Dݞk&"5T@+H~VJy5hx0{Ynb 蹅\i۔$'Y5?4m1bgwWC P.t,_٘/_BM_?u DC2Vm(| ۝œhIm_g@[BPnSCX-tO'|fܦ|t?$4?(uϊ|1 ~jˋ=k c" r|yjx%R7ﯷE/p:@O8d2ַ VSetz!"*շyx oXJGۂբa<ق/r)J(qvI89i{k}|c~ۓ|޿Kbutn~4WbyU&ebPd{ o}%uLŘ}PUWҕ>OV9n_*+ dyfwu}gSK=2"V5Iy4xpyAu1Ult~cV 1X1Z =m᝷*hY-m &3v^eHo?ڋs|9lA;Y5Fw_NCO9 fJh\ <\pMIPKpH1\3P!nuvola/128x128/apps/kmenuedit.pngUT ƂfAPQux X_R>  A8r .i)noU6ٝ-2m*VhV8y?yxY}Nza6(^_9>/hG/GV R\R$D&G aĝC#"C#&uG.CaKr9Ed46=6x$ KijXh6NnP} "=th@Ny!GEwO(-O//"{}yb~AI^'.! mԟ}[_~ f/CPD|'75`wI}o{{zMw$|k`\ɮ<'5{9##_ 52]| |&+XT0:=,,\qA7.{H~TZڵ{0\ۗ.tꪍ\3]1e#"t d29VGkq w&]OhH $߰GA&tBVVXwt([h#h5"ה}|yN6pbSw̠S+ʵJ ^"E/aY,/H2CBh (bS\{xQ]ߋ3MX]s/Sax :_;eLjQFw'51puFΨy?\Z1KE^+[Bh_X%{q%*AX5k{s]H:٬ݦU78"I>>y@rRw#7Pb M9X0RS N":GEſPZLQ֢2qghB2$HϪ( ?* Ty~4Ix D q (mZXo/ͼxakˣ b<0ܦ؈ueI7EC5pz/(̌<o5VIAI~%U,HN\L䮸՟'$z}l ?f̦8! &N \HpX%w^}w;{`:.6&ąS MU;j#`Go )(SkN<4AWCl^z#\_I6ψw_[5uBn0EBaa BTmeyf/ys#=utމ-']@.5 Kָ۫YF x9`;D(g~,S<-zXQ6iYX}ƚ?|mgk\uCYYnVWdiPgt{7j|s'gn(YҀ e}< wŜ/+a:|/)29[F[3>i+\ p0.tq$vB V}6ptz/"۪ƥk @Q?GA"bd,~4+W2A߱B_60/blҢz=<V5"Q%V^|?Njqw^K𿪏u~ΕwJeZiHhMoP~ ڎQ`n#aۼl*b6wr/(MOX :֥I}КCc<ՓK*S/isrTӊ<.YL$$I*VkKFfMnf$)>p%zW:P/ej?[oCL?Pj[xޜÈ}{}=Kдi1E>#q0Ɏ3JƟp59+aj,."6O3 i>iN++}M[>J>t tGsjRV06=]陷tĆH5Ⱍnn==s%q!/5~ C+ļ-]1޵)P܎7!v Ha@ ̶$ca ]yxێ[z8%~ ʙb׀o7E[߮` t M=}{ oDQo20v6-G<K~7Sa=2@g'͗ /X.<)E{X>yVr~ H<Ӵ @ExD|#sUvTǽ-55>e F4Rb8&;]۠gi5#H^}\USE ,hofIQA,e4zEdy)qǧea!8q#Puy54BxAk|[>jz?(ΆbL %u?$>T0-ko!s>jA!*V}*ם}GCAT xʠTA$/ԇ21/1F sa^ʲ~hA6(w"Gx+Piљz[xN ́33[ jR7Кm4PjF3 <qKּji6a$hjb7nj#奒Y'?I$\c/G]no'ĝEϙie̒LLwʰEڔ㭷n=drunMbcJҾm.[^W1l⾼Ab+%IY:P(ks''NZaȤo").K /+/[X1ŇԾ\(*4 g~Z ~$'đb=?;.Pl%;|u aw 04tΥW7=ksYBjFs7UXuC':XƬ3!^jg ?L}#n2gG̪Ü,K GGGɤRWxtԶigރtxXǣ!K*N3R*/P.zEs4y`K_e$ꊏrn |<MXLh^MS*ZZwY l)dErG=|{!rtFo_dnb5r ?VHcJ+zAd@W} xxjhk=SF0"Y|l~):`=~%|q zɱCok_%͞aö泖 ޾S9Trb%q$/δ`U4Mͤx%4K%zK4G,O0iرC_8(etcm>'}~*kzj,`^]q)G*Jď vA fe+踅Tm{P&g=P[H?x5c,,N+inh/X& ,!80kKn#pd/-F7Zm1r Bg 8IYXk fF(`[>إNkpVߝ}}E'|?F>NWo:'zPKt91\8`.a$nuvola/128x128/apps/kmessedwords.pngUT gUAPQux \ 4T:XBƒ% M;%Ťa졲0ZUJ0ȒNQc̽gΙ9<!S6j<)Y4HS&^ ڄ&Hr1Nq0%ƽ%:8uxz3= OHa9 ?Lhz/PaDt){ؒW#ArAt+y4W:0-  gDHj+P e"'K2XR>v,"> =F{PH0<HaJЩ*!NIzzų6RDSp %I!_0XN kS!ؐS|~r6f/RtqJ!Oq 85V|u/Pq%u3Ŧ%$[T2F^ؙI=Qy=Lg(K~]0D f=Hy(C{+֚,lȺ`Ø}M\Ϻ??aE#%D^ tW.e>r,.(>DO'_?o/Nds_Nsqlak=R֙ktA[s+x_kx.l0$2ѻcBF9ORLD%7ֻDORk)+n4].:4 j8ˍ&EoPs74x'OPWy}42=Jp@E=1H\II '\**J˞=MB)Xu*8lP*)U]]൏PFϟD5ta0J/+D=anmD~q(1=(XߘOy,|+VMGY{Uc'$?% 󃈲~dRĿ0:g̍ܧ f/Way},sF0ck5()V'D>0+cӉ7h>o9 !#T=nӠ4q+: `"+Dd{(=f]HB+m_ζȮKZ!g'łc"ʦ(Pj8sT, }34T<`_5 SyDuKݏn0ٲ8BɭrAYjQ\w3?Hrx'>Ԯ-9{v|G1*NYGY_v6g7SN<AMPMerƄ/z3vlMNO +(MO<c L<{7V+YVy¸F hClpE?J-1B9|yNiƐi`Q;_ѐ m[=OGv%U   Agt[y)]FEJ̈l wgP0f}}_ s(3 {J Fmm#)ZE}  f*W=$P+TDǕ,fC[ &Nö@ƶk WO*> KAn>.,l=l$ȅG-DaCހy*h=ˆ "JO睐 λ&8 jP%rxƷʸ5nU&nG {6U1ICNĂn,]B0;";1@av1w=-磊ƨ1T5y%E_L!}]J^r;V7b4KYD0_4"~ӼH<08Fq['|aaa[`wZ\h!_&jɊo@K = w3RE~%^mW ?Kq1*x&Q&իW~e?gL {UA.DW6+TwMjŤ!/g/&n%@?׀ hLԈVlaO>v|A>,QdJ7ٹ+$OyKH f*k?Q!):լGlpE-FKՇ@ĒTG*dS漏~ ȗ 2kZŢjЃ!)g]0$ZiOhq3!øh}QGBYf~§ܢy]<?$Ѯd3P:JH˺<2z5#ѢO*#_݃A¯ybGOPꇝ'KI{S7C+YaޠaVn(AH[wu:o r 5E~Sȍ<,_%d k{Zn@!Ny-8ΔV[jQk^yJ%8{*i'Ff!sa,5QobCZ0 2ǏBjI;o DWUr `$~\jUj &Ɖ %¿͖l\ hT%^ /އtvp8>ѽa 0jy|,֟amC%4挻HU@(VIZN /Q*F]hFWZAm#lji)]|<޼2D}qlسvv1O*<]a>em$_ ~uj*b؊uMa\fV2yǖxۼM+67z|&Q5s*HȳÔk}6Z##9 FZj;;q e'GhTb[nY:/5sFcǙgোZjD2d*rcjQ-x/=Хqe7ܷE ^X?<J,kLwm @Qr_ $ߋHs1{O%pgKbIb~s{)0ԆuBp*{k\.t4Dܡ䗤R6fK?P`9Х7z:uǰ=uG=I|Pb5{i{[1iJO;1p 퐏KFuܽIXt>}d;|rrSNaT[jQ Bs;Obn6_Y} N~㼼oqBByP] IfoYr#/=ybšVXcφ؋æp<}`'yG2VE=D5է9"S(&aV&y[,4;#%ީ#E_3J$&n~`lČWoQNQF{K꘍ISGXKA;_ UAe:.`C2.);3?zY0|"oЈ8ux3pZ5W#-Bjk?SVHzy?RtyhC~N4qe/ХGoOuKTkpf` r(DC7],:{z )HҨ//A|`PvG38 x!W(A"Oub]eJD!匆6/RV>~})tE 9qN(S+w`2RWC޽Z+%6/2N-I~2 8vmBi,24\Y+$ ?}+ KR{bP4C;(<紫<@䓸~qQ*>Q2Ee,{/fߜ23ar8vюAI{ :eQZ}_`s|@p4bلV +/3ҋ-7!\[EO;F^Iz.+_FNJ$$s(L9m,oNWQh4 D=mBB8oQM\~sεh77!(eH#>"xQ(@iѣFz 6>XQbliC[[o4J`[G_/~ YG! -5sGR˓¬muq|!<889Yukf_,=DBbAX*Ň'\R&LΝ}Ջ۔qE[D(: 5`\Lg`|_NW%V 'dG)EFd{(4FxE+h[b]=i}ac S=˩!:6.ogyܕqj۾bz0~(BXLWn3 ?q^WuѝFpH JH= 7/70)"K'_2o?"lpLr|?>w8 WAcB]n Fy,}{M{lez؃2f&%كK|>1;L ki &Q:zV0ȋ](Cna/+aKA?EunG[&䪝_W7G)N@AŠTMzJj%?GCUݑT┚*x@qMB|me#b{ՔyjHA1tJIYHn`b̟vq #.O 2)R#<˖~xy^C>$O"mPW/2l ͜>\a(^PٽQz_ gD |9A~[|f{6Mɒ2)3Ⱦ7&%>'I@ܖGx!vݼ[k $>%\d"> ӵ3;m360 $1@Y"jn␿ahk@vj̀$^$T F"Rwcm-\!JJQ4Ƨ9U4meS[}'S<[}RvO RDARWM6w)lȳ,"t1x Dvc/u$N k^:>b1!rbz3v4@=QʱR;ư\%홹| 7{xU )ۏȇQ,)KbŋG V1pMs}*|ߊڠ (oid(>)[r^Rz6Cː$`@|o+YBxR-N52}`0];J#r< )(x2UvV>pU8NJ5'ꑋˉ+GTHhǶ|G5H Â8J Xohvܭ-;>PdVڃwKѳCm`PLѝE7XDs4آ:VH"v'ڌz']ۻwlO:#A=F#bAr=!Z˱H x#Zg-S8iUdn\_u~FikHuqIB&>!2Ć dsͼHĕ5oa:kUjCoR̵=F2K/jfl%Y`P"@e _2eE':zJC_ZFsYLfd]7JO4NR.Ifu;y>(B.t4*zΌ\\q؄.x^`S[o#Cd|AĖ@)'V92~m_|QQ Fւ@.Sza-GqJf2RH(+ ajGDI[o}oYXi &aH&B~$QwBv;pG,9- k L{Gbi"VmbvE $ZB8FbiFba#$gp^)I$!t hQchibBuN~i1 _}jSbսEͣDM $gWo!!6|ϸ5C]QTǠ+K p/maJVbMUTᶶzj P%QuS&)*}G/ 21,Jg4\ۢ! 3WLJ5ʙdAF8<܉,Nw.RFʒ8 0tZ rv$ebSVHRjo~Ao/D9uV]:^E 3g'1?0',rE{I["LZoF>+(恚CVO;k"wMYI":&$%T3އ5&Gd}n @ FmrFww_0u.`y d&[HgD,W%{G*_vzyNIPAɮًS0e[]@YO鳱Z1 lC7~Jkyƥs["|vϔ|+v(SZpyqZ@|0<| Y'Z5Ug/N#%ѡ۔cNYuIVؗf'NP\_' -!#F^.FY veD2ubHZ@X~FjNf%, ˸9&f>*ZB_pa1wJb!]{/%ٶm`v3ov㯊ե'1?`<;MJ}$dZ9D ʗU$B FpŎ"1vbUp˿:i>3x(| BwX>*TĬ\$yURt"?{zn,\L2=T` coXk4$NjNT̓1NNK7܅IRtP>eYT+r/2oA>$:?Gb BVVvӯB9>'BW"rAN%"૫| +>;MBm2A)=sRK.!W3ؤYݺDH;5KqMl)g&-dIд//cNC[8pyCYZzk5 tt;OH!uFxQvߑ}N=k7 \9ro/$0oQNt(nÿOl?g0rJ~-G|g|Ƶg` yD_ʅُPpsA3-Bj ًr-<8;P-dh& *.u7ZW|tvBO,,Y2U=J= M1csh%ux՝kʖ|^|(h}f/pѝHGx=Z>Rg0yV ƁoL5)9 1ooT#f}fêٶ.'o-X~*B+3kɿuj4? I?ZHŇڕ% *e/󮒇|Җ|6Pw27f~'_BGIB^h;^k|OɰyFqnORDg\ 2Ӏ(;=MH?zo%)$xd%iaq"| 5шU$Vҏ"ͅA'sWЌ=p eMza>{?D?oǎ%Kb~.*fO/푭 ɑE+C>Af I F& -Qw>(Q6y~{oEJu@Ǚwr2~ 5Cf;aEw1ɁtdUwȲţ4p?:؊ Sﶰ?NƆc/3FrF9T<y摋@ehCZڬQ2'n܆4MpE䘠6\f2;[ʙmIAzyЕst>7͵OgǍK5+0>$as$pP‚;Fq_}Kb &zdsL)w~Kh8oV2~9,"1|\ޑJVp0|k\Lr^k֑<=eW=`(cǃ={l,-7':ISMAeD@۾#hRJBZͦ>}b햌D9͌аM[k9t؞0D*'`X.ĩeRZ\914# iS\qgKX+I[9*^-W wNýdEkUS#_ W=vD r?pG#[Q&W UWK>GX>/VM\:fDc,z{V;i 2ɫb){N=zl K#z 㦶/ȖNd t@ӝr Ȱtw{Պ^Z?^awU|kKUqղۿT5;&l #S._,*+U>J-:agwqM[C ߟ^;8Bا~ьZh pt97 :_}Ẻu Sdh6rGA}GÝוF~ԇ_d޽k}]%ǩY]%  _,dB ߓ:4 <öOpT1GvfwOҚT?I 2 w 8hlـ#8Y}l7.݅?Ѻ|x w5FQJ~ti7??uԫjZ2Ӏ3.,.e28k2NY`M{w!ycs:Z;hOmƇoPLoMM߽;a~ܮV(ܺc7?ɇǺc)K&"GG8F`+>1oZgI +X {-~yK.k7-#sYT>JlA>\|?Q79$'r~C>KawS\ʩ rwRV?p{4(ἻC\܈F1ߕt=4s0i Wͩ~qO*/FBO\}(9LE%Ky7gSՄRa,^hg{O=2wN|^Qq^펷0ڼe+bͯ/(cNY|}@+iŌ`3ϔJs6Z&Ԗ3mV(޳W8/XyrJNF-s:n}H:z/]}Mo9-z_ƚL\w`}չy肻n(Biݢjk|.Hؿx!u|aJǧn cܡ7 k;.;rDᗈX#sS=2[5ILq 1sRH _'(YjF*wx \=iE tV}yT꙳JU$Pxϣ=Oj|{3'7A9y,^R-ߞm,xxvboZ ^B Ǩo&v~7f؅Gm|Bиt?p9 'N o.1Wv/hßd+Υ mpOxNaN2ȕU׸%t7ꝙM?maj҆X # FM' 6WN"y!;OPp-6k R4WӸ% Q چJmtOӾ5*{-QeYlByF4~p1߻C.*roj >H2J~Y(e/ A3|pJy ~6a^k4%EgY! b8ψMQS z0ly7(,7 \x9\$Ϟrߝ)~Hg]TptmH=GKĪu.?|~hL}3Yk 񚥥CذwbkJT1 oV.Ynدmؘ7_%81^ȯc?'X+zߞq}c$UPbIg -q ܿe.VD2%>zkc_qGm>?kX,-]qj7MurfQ9jBg,1;k4y.Jl@݊Rpku]w˷<'k5Ż͢$V؁3G`;zE o IN 뢞.&-g%_=ͺ@F:)U)5sࣣJ2mMqRSnDdC0K\fem˓^qnI9nI7{-oL#EW5$K-)6:ïюB3ʭ.KqApra%n%l |W6J{B>ˆHK}QOVď,z6E>-5Vνe6EwOWMfX@ygo9l|Ƿfw_)aOtG yșmM:p-4'w}L19twdV]~2Y9{Whhk<ХhpQ׫_fgg~=fm:}_ذL~F{<Ԅ+π]eg+ xU(+6'a؟U5woƵ)"`~eWCن2_X4<@*.F,A66E([E%??5:pIB!׺[/f޼AhqmnNeճJͩtEq@CNEMLyMsw7gY'&,K=VzG7E\@}Ή:z1H7?.ŬVw t\KN3?+m8]z XPNO\es Ad]$:xF2"^AnE'58M;x"wDŎ16l"]0|mL DE쬾jJ*Ҏ3%cbkLҝ!S){AzRgNRb7:o:.d_:қT4գ\XR" FR,YBɎR!!*'"6R*G$w29Hݦ7*&+q\# p$nűh pCεs7DG~nĵH @F(W>r5xf$/dav kߖ`4ޭ<ǮyP]sxHhljS Z5:ebBHmQ85 Rf *qv-ZvG&6_moy_Q~*;ﲼڭ>~z;H7DDC~)[2r Yoj풓C,OưS>tI咐qīס1Ãz5t>3R-Y lv ߤR,EEOO)C]?{Ó쿜M@ %/Eu'+k!MX[YOm8e9Q^(v#(Q7BAb3-&_}964|gfIq3"jv22L< ֊ ַ$X]y Y&KrUD =@u{" e/AFy 늒N~t+"P Ɛ+>3~9n*O%9ZN{8MIL.>{iHETd7zp>O#\q[F$.%#UDHl"k>lNj*"$uE>>fe xijftGnm]%@(M?V;hkqKr{\nQd(=Fə]Wv  q_ꂭX+OXk\jeyky sU`P_|A6m|"NG-ƽP,jʪ EI9~zg,]"ݨʪ $9AÛ8@;ɜP*T5Q*"2(w.Y<)6Q Ɣ͍Y&ScJ, Ϧx89ea,F^AH71g.ݹUt,YWT@s`7Xʉ|KUUF(ͼ-vIR[" Nt9 r:rqJveyL_,Q' }?EtQzY[m"Q_Q,2PS$跅X;~῱T||ur,J8KX*j/N2C]awfLqQvot0&aMN>D#Dns%]ln @9Yu=V@3F 4QYS( ކ*U8y@Y5;a*b8rxW(عpcGlԱ7B]LKГ-w%WG3w*m#<[jJy V~[V7k,?ͧ^$ҞOC$6m(H 03O'M3V^!{<\L1 ݤL.IZ8-cLklr:j:z waytd.FCBA8SE/dn/[| W !"_+ vy 9O:d:H<пϙ[}X.7҆xdR_v=B^hKtOEҿ<>Lo8OȢiQn`] pdOyV *LcBz|JmYx{,|zlOy l*K+ÑD01x_l[oă#S+gUsG:^ /'>] 0)*"R#y>T#2C>R8mJ%-԰zyAɇ Gʉo'`9U~]p秭Hao|fj-BQj#(~6+*cQfߧt[&&i jiAz1qF\Z"L)ћesUQ4 *z@AZ+ L _Q*A^- T .C+=5mxxR %_-6(|m: 7(n}۠Z!spOI&$>͆2hIvx8~=`?*}Kғ/f6R^7%3_lN*GIcC"PB?saF$\ɔ|0?{?-\R)ytsx\\qCv<'kQK( p ԣSNܳf̅$x'1Ξ{AB̅0']l 2;8A62#Wp)VJ:(-m;&O` swײ5Վwxi\es G e$NøO"swͽe_Yh{lmVxeN۸sg].B~46sDm(3Ć(|P f^+{=5u h.= N(H~'ʙ)NBh)M ꥋ9sLY7YUMnvjuB _Yml½]0X]7:'W=s8m#.klff䕘uw"\J@]Xf8\p-OJ(5JnB.7^8 ܓ} #_Nzb:h8}_^(-A-3ɇXsctƽ$xmJngݵ҉7xS3q'd413tS0ga,cMkbxoYuͅbZ`e@륋UoOH| }}LZOA6ǯ19wh$0?H3tsfA~y\i-yF;uT<3k"ٝi.>d/Oxmil=?y)*Y/~Ntf-d%${eiNc?ߵ>Kj(.( [֝ fx QvJCj,xg'~eVoi⋏fΐĖ09Ol)^TH* y;0Ug% .%oLJZ' ߲\o\z"u ֏.f=!7;ㅡfJ̻ 3`Mε<PGO )u_)5oGdžʼn 3o)E_ⱟx` vHKRV&q$bUaSbRSmx6zY}dx5 F6@ހPϭ:0--Lu{xvtÞo\cݒ/ྏH\Ϗ,t񚱈)}1eJMш5+eڗ r.;bh$vyk{oAerJ f>U~v.xBAF:mYYwv=kkU@UDvxL0s"%JȠ˹!L!'Z%a7bo(ǃҢ`Esn3_$MGYD~QKf% *s ,@j&ru>W%3t%_0sŇTL^dp>WFHL碡 %J}ٿVQqk}=/M_G,0J111 #PD~^4 8X |K Ζ%awMMM/sWX1o(xWQ7}a&gEH;F9N[{$RHam??!RWrz~INBESfD tCog I>ɤlo6CV` 7|6T!Z:u7C@1;=n/q,t3P|m>’GlWU{P~_4|a;%Pm@ ǦؿFЦ-Ǩ/&WaG-A;+N=*KV\*%f}rNܡʿt#B0=6#M#h7n8{ ɭ!c-m7^xؽ=Dnrc sBb_yK=.Bw8sbd>iGk c<̧ 8'J{X9g`ŘV :|Z7Fe@sB<ދG}?zm1ᏃjGeagɗI46 ;[)VkiHܿ0͜xʡ 3NQrc=&d?w郠{A/4MEc:q(h~$y0oNAԓȱdh$ȣPEObu̢fž7H. l &ls`:8`cE94-O~j!{m~%b!U$p)XDJ[vg 7/}XXDF9}lY)4:QNRז~cg@2pKHRB@M3L벀(9S.6W1DiL2e' g]Zol5P\Ɇ$JȑÁ2nAUկv#t\k Y۽p93o|?܇!ML`!G!r^Edp,zI 43U9UfOovMmo;KGO^l/k tOch\3$Q嵶/A8)7kld߂C+]7YP*%ξ#Qz~.iݢ?q+2s5#ooj:X'D:0N?H`%DbI& ;ӱ}.U7i@2?M:ZٽL"2Kԟ%(**D2혂犥"!Z#y>Q +> #n2̓p.|߈]Qhb?8! U2 )j7zZ`SDž"Jp 7#|K/OO&#|W,ᨙ9۬L " e.jRu֑D)QVU s| Zܖdl#I-->YJzfۧ%= @%eSC=nG|o5Xtyy{WK5>l[#(ʗ$`,ok_bN.=Ys.I{kaٓt|<}J\m7/9j]Ỳ+5?a:F=0W%^ZbԹǻKw.taᇢbOU ΛW9'}a SA5Q^96mNqn(/IJW+Lġrc>{^iy/o%./314Zډ) s#o+35KI`6E])KcX QЎd? ُ ׎XJT]H^L&KYZ6n5t]~9W_6ka벶OȨIcXgFot8ヤt[T#GIRˍivo 217BwK%g0|տSty6jdvr!'P_o^!/dyC Py䊐 -[TwM1$,Fv,@ԬO8.ª]'wW(cUxpT j,+$!na o+h J^iVe:D%cג ^nO"vaF$<^ҖLuyd0WsI7\qUz y(Y&b[uQz;hkMoS~GϷM6]>ph:^wY ɖ via+/r]>~݌AxaHe0^pZހ `Yx_<\@{n75"Gu7HFKf<6U^R\Jzr41a`Z(c*  U;R8`QƐ=\.psZVn~e״ )z:4l&O_Ikt{K 'Ξ#Ɍi\ИLӎ.čuF6B}ZB4/O FFF_|cj(kѰW.f+G*|Ju!XL{!sGYHDikA%% rEh*HbdŁJeIKD^0@f/BIҟ>S-/ q^qCg>łu,.,ʅm_×9hKI.UmVW" j\qmt'5?ͣk&aWoA^w |9^HtXĔm ? : |.h8s(@柤'|o>14IjEb:PeaZysx uZ֦3&v'3AYޡw )غ@Θa?)L5)3PAC̳L+U ;m.*4k~tiRio-[/db*U㸆$"8Z1iXQ\H 8lG񹨩l 5q(dEd.{ge@!b_}yZSM1*>Dt_[ cމۦ=B\'clc*B@֗{i3Xu\'-d%*I)jEPwkZ8U^K!O'ooH2(k&󱾴o=%ARuӻ[.]\/Pg+2C>sg4o z)SB=O nzyt!]scA[>eec9^ٸNw|]J8\-0!{.DvK' c@&} J޴%lZ>ZoVOM]S 8E~G9aq*LQ-}}V ólԳ.Ut=(nMt[QZ7ks-_IugT~ 5g[ (t~y6ֻ@V]|@u->J:P/5'}#@) hGvq>n{y4KߧK#V㓁qEUxuM#˱7n0fXwKz>l+W- Hˁi@wVW2~-J1?^,Äqxr"7ofDmNj 񜮻i*x& |us,<~>IIȀh{piYܘ5f1(f]diʕ:2A7i%Br'++#)npȎo,O ly{.ElɴۻK:c̣nO+.%dO8ÂaukbQC&F˼lZooJG r w~TzCh=HIϒH`$W$|?hK(c^ UEP 9h;(⦆%O M$R$d Ӿ zX͋A広 3JF[T SU a"a@rUSd(hJcE>e̪m:oy604[Ox^!3}jf z]?v-D^II rVPk}}HO#/g}Kysw-v*p] -7 Nyg./|dkEpfHuq͞++b R=8tT䮊3o4!5'Ar=(FV^t›AB@aPUoc!='*`G1>R lVmWZ=@cԸaCYjK; V񧽘{uЩbsbPK7sH1U nuvola/128x128/apps/kmid.pngUT JfAPQux W[W>3Db "!@"2 (@DFH" % E2~[Z/DJE%BTpRAQ@g?`af39pP+Wԗ& wF+1w0ћ#.:?! xD QAQ6a^ T*v7}DJw`!] a-]g(?PjtVqzM);kP3Gpt|j]3hښT'Ng]S!niDŽb 'a犵,lDPy;?2$~^m%4>]AE{,Ap mg".m|y^RV .ul?v(>у,KL)@,̦(X5ҰI:51znk@39Z $ H;^e:e] [1MY_?tr~)B2S.3`'':Q݊! f@ cY{Oht**> AS>;Nd^:΁e{?z}aDHwH{Af&Q\ޮAoqe pk J_xhq ?uv4zaaTd+(YzLjAmK~o+x|-gm#ϺǞ@mjJT.$;G>DJO vY[(HNl9)m˅:/s|y2z%'L3rG،iq}W_X{ܭ?Eū*~&.gyl.a+k% pE04EfkNNNŷ[z &551 eZB16\c4h+#NfB(k`Taz*iN c >`G TsVrTY}5 ތe^!Mq^]ŵ+`p]7!рt*b1vD D]zW\у+H4=Pu\~?03EbĻat>/d/ņLثnJ R9wO֕Ri&D,8a<3lx#!LCƜE xʈ 9N/߼J t+7mcX aI0jA'-A~㧢]j,*nX!-b5 "YJܨrJR/FU\QcqҨ{wW7e*7M,= As:ʤeݳ:L0eX[6ℏ@SoH z%]Bgu3JL",'~Z OOVm38CZ]! mԔE}M,#mO`;btp-@6@ P#,:$R Jj1#,L9 i~'w1/4h+Ě2L$n=sVٙ;6c11fHTR(ky{pL I\Рmĕ=~9,82Z\/?Q2 dX؀wWgDPKpH1{01nuvola/128x128/apps/kmines.pngUT ΂fAPQux % <ǿrD(זcI!ی#*Ta]dcD?JsDfkx{JK WL_GSH E U_j'N<r< DŽF  ?}MX@ЙoxE^+Aᚲmy+Bz m€xn%~;GUl, twE@`1M Z- Iq &Pu?)7߼Dl CcqKK"Ջt!dWbTk?p'b[&' <otL5uu=U9S@"Ͳ":ڲ8q~A"Pw(`&+Hd5]e:.aj)!TW;+-:/gؚp-!Br c0j'Jy&HZrBä ļUexG&BT[Ǔ(%O#Юqm3hQ>]jXxd4ţc.I4IٮdO8z9Zjb0zg fj+bIb +&!2c 1 gI vR*R!c^ `Ezo;Tԩh,3%C H5JG16{s!?y.$I =?&crQMy*~tLk7zIM3d$%+ꠡMq\?lAΚX4+M19[:&KQjGPƏ HCdSk!M/8p4 &Λw3 rJl$Y' ɂ4 8hPp3!!SN+jN}VDM&Vc1t}7o#WҘ:]wv A pi޼I^e3$|f,I5Qp2wl=s]@=!+o$fRK}[z$Bqgע j#s~;VM^b3/or\M#07N_M)p%du,FѶ ~Vu9I#x9djfI߿ Ʈ򘄧׀+LDq{'H_%^cպbw# $_?=ZM־>shGEBz67b3=e{|gAŧ-< XKpRu%VB|7rj%!+S`+#>YT S44Ah$z6NQ%`_CA~[T*?V (B+2M#{uKn? (q@8,TҗњM/w0p: ߑK bÛ='cUM?­ Ľ]tY^{MM2C+19rʉ娕sٛOϏ74\4#';znʂߤ_"/=pT۟YEnJX'~.@\f7`hh{w>?B? lL_痚$p(Zf"Ҷ h@: /^_ԆR0?P55+/_ȥK{jBBBwj[qZv,NeSGyQowoaGQwZy3R_%+)(1KW^yFq~~mqzeǼ!{E䶦[<~.5f &M`^5X䄳 : tJ)P>vE$,/:qj={ozZh|dk۽#+"(GRS]a0Ud(k~[BOՖcD+Be&E,؝ϘR.IW kfcU{|IȢy]annRD)¾U+ ~2h~HY+琀bH|8 r1)>Z Q"KؑlqsY&q;/ǿ h֥gK˽UݻʜiA ~=s9_.%_߉t@6egGsvEy+5<-ֽ6:t}L>W@ _3u㎰T;tO^kw{B7]h{<ҡqnoMbPWAǹIE/* CLHUc%*څ3;tJ93#5)qS X]w˗1_#Y^}%0xZo5mg 672K55 Tw՘Y/TL1rP梯ry1d&ӪhY+eϫ_0 {_W~ Hย+\; AibFY߫ r[ZU>:²~ NMݲȸX#>e3K.Ln^֒.DL?^5 u6$t6ȼh˕3$zZ^n)z=ͱ Ae͖9  d p[s[8 ԫh3 bjtThCHmYɷx$WZoXӟ@4N[uu[jL. dp eϕ`Lp(6‰scǻ7V*?t{IG.L͉LUE.tIȟyʐ} PoKS WDK30{ [ 28[Ffm_UDGZXé᝝$0+'D&/U)~ڬ?v+bTlV6Y:8j$}z!$QKHGʪx-tt<0҈u7'Lk}x% Ӽf|U*8N9z{X -}kx$~qfiDI7ڔ)565R >:PeVW~6vt PN_Y.szU=} *1M".[8 gn'JDz~9mvvUU37vXw7֫3P^B"L7L^NECeD f>U ~K[PLϗQ}xݕB{B /1,VeeǬC ~ ȺIعҤs}[޺݄z:ՐIl9T lT#o֤ 9?+W6'[9C/+TB]\qw410J@M:]{UzTjB("MaHd~D]ퟟ8 G8 C;T O/\}nq)( xrQ NpTD++*( }ʜ,{IfU YZLK3e_oIԫ[9]T]ڝZ"߂q6Cl@FfDEqzፃ#:Gkr!t }b f{ZSm^G'|;]ͅ?Y?䉌Xapjɡ/1sJr_s[[ M(% zq *,:X &((sAL&,Mo:7q HPMB* [!yL/f\pİtxcMe̐H@8tb=w)j<'Sipָx.2TeiVK=y{&y-{|'T@yõ.~}̨'YYkjksSvj/1$ ֯NMnf%P.-N8eV1l1de;.7FƏo\eS_,g~;9SGkDWD}#i"'j|GUмn*J6 M`:N1E W+lȅV\]ÁՓ?o"νeDh4Ϯsr:h?tVs=8p`x'P|gqD:R8Ϲ&\c\h"iAj>| ]9l\Z\<[AbaMD5*y6spY)ʯ-ffYہ,Hv4iA3s0 Dz^g| }`j$Ԑz%{P.FҦG66nƝxyyU-(-Birs9y3ꠇ*B1i80g@5?,nz!稯ķN]s6絟4q:ghsk<ǵ+l/ 23&oՅ Jo]=3U0-9"˹DḂa>N925Ҡ>V0 *aGFSoe*I+󎣞1078QeHAdMhFDG=|}L47E{H\ld-A5S,S K-y3UZQwW'm#jo7eY+vl/BAMc^ZrNjId 1aM4Z w7I$7;kL@oTj9.f'lMūRo1?K3_hD̢w;n9P4К]-.Ås!)+&u /?륫"B;zlIJ%8Nd@Cx뙶lTpYM ߴ7I4]#[Jl,=f!k)VؒS\l710xxM /@.\@5'KAa!l`q-*X>yy.!_K ꍙw^H.T-Oo`_.Ya-ɋ"ПfQCBDrE% ί~;W~kG tEBֶ6 _8Jh#yH"su'2&|lN ui[?o *z?N;&~~0kK, 􈝙Q@b[l XM\k_uG=//lٗen+$ta7gO%nܸMFa/<;{rhCt4Se/.}mgNEi-3ܶgٽb׋-Uj8`|7e;Oog`vIfRdw.OjUeƩ^@lpyo.Fa<Ε@S1W0[x$&$ER54C)@ GU֮*b\e&+lyϭJMSk&tٽ:jW OW1 _ Ck\ u_0>>S.:&FsvFt>n.t N;t Z2,mTji`n݉iy.YcDz̻Uʘ;Āu`/64/ "ygJs@iiHHՈ|WH"a/cS!L~I-pQ**6g,rnn-Wq3KcG̦ӯio [ϰ`u.2L y?vT9~J+d;<$7dK9 ;@Ffh3+??ޱ= u͕:"x`{YAvƧh7+C(QSJ_`*@GR$=O:5̙8mm%u~*X\9Hcmb8Ez+*甦 8V.3,{ c6TV4ſ>zS Մ^EjS0(ZԺp).jTm0h.ɹޥX&g_~tW'C(wWϠd[-9sg5SgNi@s#AA%Ԫ}Y"VP~ő׊y{bA9 X-Ow3^P[Dԇ&, h3x G Qtfa{~&t97t%rgҺ8k]}c RvVFvhTP Bl25ʕ-)c'in|Flcsy7\2Ctwn?UCMVNH,3˫ЪZmQ DV%L9ن qvJI^i*wV>lm0G&[׀o0ۿuMEʍb{X~JRعۊKpQ8e|!|&9Va6Ċ)+Oe&Ix\?ѫrV[֤"`,kO{E_&N_1=gxƴ_O&06u"ijjjǏj@m%]^ν zQ>ΣTH 4aCzOѶSt4HӢ3sc31=)S 24c\q{jԢ.PQOL+1jF#tWL%S @Ynmzwf'Q eN [#}[OB^#8zUqbܥKn6$/]D4lc1Z4)ܯ vf~%p M:6U+< 1' ў]E}79ؓC;)+e.2|_ x>ړx.6HVKU$|wt?bX9g-C{Jy 3߼)S׆~>+%u.6jTViH:]8U?6^9vJ۩{}aNϙfjpGbB5 oDTy'=+~m3ffx@oe4fiͺ>(sNIԎn+u“u\Ám85@G0zh9!!<պ}v]=sQSsK";C)SLV>㩀k;wWJ1"\ DebcZש,Lqpr|4[G>Us\K4+J:jUXĎ[9Ź/9T}9#WHnܼ]nPKPsH1 >6?nuvola/128x128/apps/kmix.pngUT xfAPQux {W jBGAE$T+EP E TX MWIh/{޿s=s2;<|ʜf< ^[ew%nqy'!#P(wY+~}`?OE#![#BOƾp ^mBW bN`w:3ڛ#]ɏd?{0hfv0HJ3䛂ʊ<(n`Rlm 21Jƫ$P7SL2553c ٵ,hd=L^0~sEcxƯk|s 1$L}k׌ʕJ:śHYlk*))u;?+**m8:*(47JPP>O++ү^KVj46wM{:g'_ T/ucHѴ@`0$E0I55 1{V7r5N?yz݋ׯÐ}u)QS^{$JSpwndƔt+>`݄l4/>iz-/i,au/ <9~gPΗ%]C5߬-kMb;1؜ss Z ?؛oAZOߧw"X}\\@E_ ROu&+S_ɡ]O[덈P~Tuz?1ݷ8q!ĂR"Ջ{y]@8xZAR$pn,Z@}w̎hed8j*AH&y=Iy-T"3~bIT;T߯2EpC6ճ}uVi36MS,j]4H&bMJ$8@ )yAuvqKȷա5e>~akd03*I0k9:9g%0yV6x+CJRZvs1tY܍vtXY\Unii\YEY6fʊрl1jn h^e:K3] R0oZsPԏuGM=Êt.7JAcr4qɭJcCR6GwӢx*?yYblW{=䦫{7}W hapWvO'PϏ[S kt/kHwJf}Coautq)}W^tAz_]5nE*{^w߾-fe:.`%deѻ]X&H}_ NEMKm U: aŬ.[mG:1Q@\H"B`k^jZփtP-YU$ V$_#K+2nݱ K=lH >߽`M}i'x+%ny3(yeUx/"j 6%s@[*X\E ߙ2 #k^RJLjXBU;3(yVo# ycOtsۿ&t|+/O`Na!!EBlrعXvq5It{/X~%9Th|jt? ofqe/.Zn(Jo@45Ky=QaVᄜ9lUOwrtFm߮%^[P ~F3_UU8`0Q۰ˬ<+++K.+s^X3CU.ϯsȰX MMzJMϱlog&OyKy(w2VJ߹uBGUj,L!2et:ǬmXs9lZgJ"_@&-4FESpS|GS,f-"ǩgXV-:a3 }`l49ډB=_U"w8wV[)G+NmT*@oG(m0GST|\vqVNo__~]5H6\+Bnq2nԞs؈;jhݽ&{iಚ x^BS-f%bPnvZh]fup#l# #1Ǚ-{@1119JgvTzk߯xtUm[fM^dYԎe֥=|T>fuzpq v;t5ԟA1[;&%ڵ'"9p^?qnrʁxK>K dv oHg*nL_ݕ0==["-2C )ܝ+W *hWB8Pxe}:Xu &d4lXDܴs Q3J9ɏs&.y5)2 ޛ {y0ίx+jX饯 ób۷r2TY*$5! Űl? tG'sjYU yp~9BGI; .q\.2R 9iy5ͅBQ?fg9m~HY788. ڻiM*4uJ)4 cKf#Sit$8?)]X*K, ,޿Ɓ]좢CKS<̙=V8uj,Ox`)S4DY&=}GMHzg= ddpӬH$s9UQaXAchUQs$ޡ;))׮]0 !A|tϧ??Av[r;wNப! nm(~%hlMMuޢ_O4 ꐽ?.?Q,rrԱ;uAhjzHf#g I_s^}dPmgPk ͆+F҂n}}?E=] O! {yp"w,xQb1+_*3׃^B+V|+)jG^$Q Љ#eF1yTr7e#0j úH )S:KNAԢ᭛؎Vz<-MTop k 0 9@QBН߼@=(*L/6YO%`|vi-H$BP|}9'Wu:eFͳ充y{g k+ (I/e2Z>hozj Z>l»Һfx$v-=$Ώuۺ}h_rx2HU uW4$/Ϊ^y$I0u Z;և9 VIP\Nؼ$%{S L&|nݢQ~!u=kz+pPeݚQ#kҶcĥR}AAq Ϯh+)5:+4_kkaH*m8shXȹ"'6۰f ¢?-[HC"|c)l3N-r( x6ʍ-;3o@UxxT]Y2=A>7R[JUӻb]Z>i>푙b`(XDW>Y1*ҥ ϯ9Hv!=S+f!8pQ!cUw~"|ሪjt55E"xv,K7JDN RR߷ @JAA}4s౩i- c3g  pVU*dkץBKt^8"ޘKL/;Co|sh2uض}qER¨߸|i]`I"¥Bvf@n >&fȩG,F:9Nce7kdCh0\suMr##&WB9vVʗ|;rBBBj`)*!}SS%@:K  ǗG{1rxTIDe\],mÆsaX /@,SGX^٤b`/39V4(yYxǬQ{f vڀ3 P(R|K̛h4]8_-9GY3Zҗ4m]tq!<Ģu;vM _<.#s!y3K1Kܴ+I!f34c.``e㢾{Z92jX{o.ů![ӎ9Zְ;P\ t=Ո$"|s5 ;~UѮ˂(]YӀohFm'cnA0P7dm ܌bEHy8N,j3)8?eL:vrJ ID@7P`倱S/dk]Q^-2F ERº~^z[mş.Aw^ ٵܮ>+ N:jw[_ܤS$)!lb6iW5JVVEY~$&5y3uVłU6+'iҀ{4%lLs/}CJV_1N+7aJ Fv1V%| '(9z3SGLWJWunu,Y8rȄ[uUv?[>(w ߿$6q3F41uMo9͌hwO板J.79<6 \i b(YpIǕ]\ZT׋5DyQH{hvDy#R}^zN~e&1C*I0?+CX}<RĽQ_Z B}h HFS)R/_1?n+zළ!'s:_%(1seߎ)Ouz;bjadm}azT>OދcA-cHB[KF6H-+e;"a;+I ˎv-o'p/C9)LA@> ܾsm'8B!(ҡ[BVnpG 7VlF9]C#Ƨ5`ĤdpM8vQ'f8}:U/| V>l9bufB~Z|i**j$imh+??McvNOcwF zaw{Ph[^i1. (1t4 η ^#78Am+)m <H~6rR'ujd؝~|2Ga wp{(]\9)^ϣB\˜Q؄x)S|nת5Ljm#+mRLw¯ndRXPUH:xB\{j(2{0qRTX rhsQBwkFO"^EkkAG+Ʋד+Nل[\4 'kz4}}LsZdT,+uuk¢!WK슲LX`OtazzZ{?ycE-ݍ'AyE8)Ε_o}vYt{@ѯ!ΖJ5H Tu\tUJc^c}M˶RvcZE3HUfSNC_aɌ7#0P49A>hi9<{Ls2h”^rrcI@c<&Ɠ)r:|u;-zU,"-^4wO'՘uAt 9mI'$#tlEhf}IY%Ddp1䩥^ ܄h{TP,.^>I2^3IA%Dyi0p8N~S4fM9Uz‚:8(~RK9 ]Yģ_6Uҗ­Hϖ{יyk1vuT@F^ls oӔO;e Dt@2.kv=4~-_A뿊`g,Li 4Mt( ڛkߘ;11-ض Me/IUM9}4k' Is} ym8qs3_U(v⯒hACR+/@֎S˅+EҟܧpTMX 6m3h1X#L):}ھ_i ĴhR\n)¡SXRȆ<ڵ=SZ?]51M:n%蟧Ezk+ [J)}^ClXj f}G7d++dm6=g93q@p%g4kQl+fMSO)T<GCw>I1!@{}@"3/Ϣ o ^F,N-fWeBoB Mb^2w*j1$9.,: ]ލl~MGQ;>I᫉󈆨#{DA@@Szi1х^o_]f.D ur%:6?egkD}01%K['~C7aHkH ϓ_ }oadyT7WnwU/VH^:m/ֶ(#$j;om ߽Vτ&GCАOJ¯7w.Z֪[*M ;a%ysZ43 DVO{[5!WB68y#,_|b)#,tu z^m [X,ȭjY1 P>МPiO Ҿ/س9d]mJz dk7Uy̩{;Vpcj > a ޕ}NF- @Cb-~enZh<1%@Q*G*OQЄ\f41VC~ #ozq eh`Y7n-xZq VlV__c[HXeeuJsott%Iln}KQĞSK,ӳϷ06F=/u2Eh;"CUx탆˟C2(ܢqbcQt9 ) M(ı}TY}vKZ[nCu u>UxB4YO 8f)q3_HӜ&klm;r%`੩!18mGQL7^= OiBzFafFJp}X$n4ˆϤ=MV{c\>d9v%Ju,NLX!C ,ޕXV(dYR"^Ƙ@@;Juk)O,yų#d-ێ'lxǸlC8/P|ˆgX hh2Q qHQhԅ2㞆r3 ,i#Rm|7"/_ˬٸNol.N^6}9^O@AܓXֵML88w kҶ^%4:J,T2.LH):}K( Տo~8Zhv{x^mIӳ 8E+u5Sc*n`NE$|477@<-LW2_G1Ci(7H>VnSȕnO'~RBꔼN">OpWIXLuC|MwZ!iA#Ĺ{Ev//ͫ]NF5>RRL iV90^ :X϶>V/:c"fͪPnʔg{;¹;r;tN&2ɔ,/4hP&Nth6F V*+%- Y~{W,4-t"tTi-}xZxʷ|SUVi +W{r؍2(H3"ُT3N<){絠EZ>ү;Ԇ}Ij4C!7fpH0Hc;wG Z7}'mQo|ck84in\>i"C7n5V?Kwy/br2Lqݷ6E8Fb'c$[{r27uu_j T|aFZ|bW~»_)Ll#mv;|y"k_Ҝ}bVh/3p {>jl8<+?mBMFP(HALb>,hY sLV=y\"Cm.cgtSXڦ/k5WǺK5dH/?bⴜXMhԱcITzk ,P{5Rf$8܈D 2.Rr67('0=#%l.ak\v9ԤaP37E;& [Y 8F|778~>9sQ} kf*c~p§_2s C\x))Lb~XigkFk.=+@?]ݬ oﱹϓ@% 0WJs%v!f#bJWe_EQٍ_Wlʦ[Wj5MA fyxh6~ۄjsw!چr [aX[ ߣ\3ʫ@oU`\vlÖ Ds?ϟ〣fq V@vmX3PKRsH1GY<>nuvola/128x128/apps/kmoon.pngUT |fAPQux =[ 8S?涹+bL.)\JtJJ$l3 QQrdTJSVĺƆLav}={yߟ~?sr/T7R@sI_s3"Xbw̡/3IaIv&0wFƐl ޿q6ZX.R 4@f.2Qlh`i5q=j_h).('v'd uwˮiPlC9I\`BYOO'ȟ4/P$hɴ㲏C^{ݨW*SG#?ڍ2ɓE 7[յ,$goPfn%;ޕWKF.>h[أ!=ԆjcY ^U,Cdm_io~fXjk/Vzy=Ij$o NGx#/C2ĞNr5-wgMgj"rUiA\FNI9J#qR0r$Q`ӧ'Y0n+.|@mP̖yhV+3O-cFz&X_e^tpa?CCTU%&L&0 qk ,kz &l]D"Y'4zXYad%b )|26GZ_ht%TopDSεDXV!y EKk :IZnx0zu:S| ?dY½ ]uAң 5i`#sL@3-r,椦b* cרR܅ "&Fxo lD~b5 u 8vt6!U+@zZ$_puM,͘VcI0QB]\9vθI@]@X1y{PTWg@FaON">f*4%x,k$A!M 8m \)8*WI.hz5JYLNMq4eu/99NV>$5MKV w1C<%xWsHXE-R5.^&@=pVyƓDyNRr丬J|(=LMC?M5g_b"yk+`ʇOp2V$&F Mh0+?_\`2JlЩ"TyOg y P~ >P_5 U%TBՌѳu8a9jdg&i͉Tu~P9n/*#61l7C+ٶ+PQfu nȢy]Cdv`9(WPyO'a>>2bZ@fD{x!']nqC:3qe.2$R!nejD%=dDt6GoY4i47a'e]Q Mpc~Gd(ոGoǿ `Iy=Nv%,΢u7a#HsA08: 9J;$J!jV3+c#ʽ@_4 3>E ,XĮz!Q:'D8*duM$# mc_.PPD܁8H+ʋgMۥo~GhS]cƙyLE&hh\z?@\S:N6"'):I,G7e6!\ۚ ĩyJ cp}el?=)E_qY]|fr # zsKP5=iMuVmY5G>&J ;j֚I7סЍ.zXH ޯ7e P2J5jquVAj(8m7 S!jȮ[嚨zb6b nBӯ ;[-ٺ/' C5tlH .󂏫E;eIWK4v:ͼh]ZuH_C`L2S>*YgЍrgcl[v, ipf >ILŻoibťܸ}D֝O!ÿNt?t\ې6c> ^snqΩ<q m \5B2d -7C vQ Ĉ .uHLJKypL|e o?ne#z&AJU'ԁg'9.P]et[˦ <"pxd,Eypf?fܪ!Tiq) eMRyz"h|^Џ~^-yz5J4:hBf(T0!52Q`f$u\X!묰EfVS~K7,qYs"|"tzVA߲hݥKZd^]lRSt2ufR 4 U*VMsh|>n 0XsY7j]¿؟͜7&@3Ψ\~'(zC\P1+hzrL MY@$W9< J|9-,DA`rN9X]FG&ǶAuf 1yc|2[ܥm@LG[7dɉa}>hkIvzM^U7?pfm?HIdv|>Au\75Lҍ-sQp<vTB,sA[OfpGeơ=MGu%Y%Z6#l~`h[dY7ў?#D(nLosύrrqLQDA_C$_-QKкC/x`[툙rvvj_,hӍ` St(yKճ x+:th2{x©L˺zv9ğ=y$*؏<f(WDWy$7 @MXl X_ʾ XP|9|640-.C|M?u5dv7A*{7^w9@TYQv~O/~9@R!R"a9N*)/ůTPQ&n )=kk$f[DZˍݶP|,T|{{}_y"u3ҏl?i3~AZ*=D"c=JuȚ|,W<[ nN^$Ηo> :QBVE3#e"5@g׵F *n+w߷/-`G ya 8E-oG-@| eiZ{._~h*' Zꧤ(TܳMxN&{,STƢ*[ 4/ۂ,zTpТ לG8aitCp[#y#OM2< V2{>5-c\FdM,$x0Zq@|פ<~V,pQ=L䅀贉 aV`T==^Bܼ0tlZMz8Ѥll|F$6.4VqӣLOoCI6TL a)nʹFse; 7QӀe+ 9ǹ:7-\|.)IQsb QKB%=3Ce8ie >\9dkbP>`4&`qT*W=i X+?Aq0=_ ^8|$ ӱLcHF)S1ECׯv>::!Z)bU _cζRIaSkn^-ϷD Acz]qO/c,Yl` l\ւ!$l$h]~HF~Hu^6}E/^|^$9FIBM<;oI2XXEðcihk(uQ/dK%UH?ZEqљ5>!d*$ LkPB{'DYF Ҡ;א=Lrdh}힆"=B w:hQv*#;ڳ\Q[ȷXS ,YxTҲQA&KvI^d%R=ij"YsT@Ꮖ B ௽U~q="sUڰwY,rW'Нn'+ӇK|O:k=vUx64ȇw`*/_QwD8kl3w~ep ڠ PQ{+֌X.#v_EO\W(UL7Ᏻ{ ,ӁuS7:RŤk)T&Slu#AC& J.:-Gw{s)ZDqsoP.mgQv#|T]ߴtxɆ##[6"- GP!gNȃg.eqqqN-~_f+Jm\<+? ZEuS:UH 3`E|=yw3nƨkAgw HK5fC|ď5_ SLt -^D , 8f= 控RBmSN9+gB ۬< ~7gs{ gDQmJDZ1x""s>2&`&~En1$ֺԇuefT&?e 2<f&Bc^Uwn>e[sTc4ꉌ>V[&v#sb>g2 ~2z)nIuLSaS5K9o1a$ɼ_🧳Z[YԴ)0? kc{ KvpfKPG1% Dkϒ!7ud&>^ DH6#OD{34k/PD9U2@5=$yX2(=H_IcN)}C9A+nMs(kKئj߅_:ٞ7*G%4bzCWdKpm?` #lsQx0b5ҿ¬FQI #RC}pc2R[Mh ]3uKwOyqgu~?=>bؠ) i'8%~C4初*_C*Vɸ[0`=xx f]U J]7 ~ vDž2MbAgeT{] ɓ[+Hw}83R[}zP^ LQA}]U,x?X<-6ݒP8fޟjib$t~I lMcc/XIhOqLl4qՠZshB]kK :7FGx ;am]?5.gWH?e(Y6\~N'E p ]T_.rđ.?)ד?aɓ:1E,@*T=pUI-?diO kD* GwfhAFa3?{B> Kc^w Pttr3NI~-1dp,Fri>G}RQ?V"sZ#qv؝Ck}vCxIF$o`?THyu E?W@*m؍u{D•B12y^"+3>4`lزF`_.Pg!jy-jG%țp"PX/KnlcꀏFh_~KUqbZ\, ;+"M>gmd£SC!g}T]ߌ_LS14S'BLJK:N"yOKK~|f<[Zx{e#}e땄zו a{!V{=w=˭oN5QN!~NJ#@sa5zqOLCi3k}1 g7$f('fE rniE^o :4%i Cۘ0ScweK2_+7وI KF(DzsCh߲du?<]{TOsX3dnN1 ie3\^'΢,5O_wY꬜u9*ٛh#ߜ7ITf>菒Żo/F4gEhE*w70]1rG(Q@s@ݥGd+nU+F1&̂ bY~Nd!zS'~~Pv!bxP~K;dg'((70kTF`V2y'QȓM װS?;)\N~5?b>֑x1^~ X{ 91ib TU*I~jӤJ6}z sȤqeS< 2bJ9˵ė7ۓa|TBi!ÔؤT]<;E饥q>GImkR#U镂3O,^@C*T=(wi+HOVPŏn9h˾D 'Ƹ_HP:5g:1(bwꁩi*ek/Qbm`RBKLtUà?̪,Y}B1HP8gM)wSq_'ni\4sZB=fe0flZQ!NoxvIadNJv:s{o74OikwIv7%c-Cz]: }xí}$^P6gvJL> TTl)![=ьF]?I0 UyOgF\}7Jk}S+@dll r+FLjI$Rgua|ʷv^9Pnq/n]Nv,&7%4< <)֥gUׁ0ـXC}k4yߏQ4gǩ롗'|]wHhTu7`a_X1ME /CXhԛ᝕4=8uEB V1*h脄jaq$GCLɐl] 9T~\s|*}l_  sazy6DP~ƍy 6-lm6X!)=> XjO|VZ|@My?JZ,ĬO5}q102:ZUeךOWsC ooԜE$I94c|)z;W0ZY)38sc7/?QI܁-)2%x(ĿsR u@9~#ntYznmIՙbTN0qVnY@= BwWNRDomL&ⵧ-Q 'G+/K*>bЩ%3XvV|M=]:s|f-3ǾPNz 7&1݃`fcWqz4R|vp'YOjIV=d) oV'=>wp5\6oKg b+Sf_جƊm v{^N1vբ)vT.(isvcvH>r=1v}fr) څ sVW.ϗF$܎yX1{`~.J_AObd$ˏn!]3)n3V2V1KE:1ıCȸ;u1'uy rjJ SD/b dQ)ӅD-pmk"6)dTj\ '%A#P+ ?xƷF jZW~$xN^)hqmj9T3#f[8"~Р9ϛ>c PHHĈFNČ׎7Yy ccj;$fqQFc#y$gٝuĥ5y~Em[T"fJwNϣ@Q3}uރk.OaFbOKRp1WףN"@ tK\q,?XXT [Zo'*~S/|Z;6PMQ˖u`%u_Mj/UJLfE nKLZU `;67m7`ģ*Vey]*k",\onV0=2`Z|5N8ڋGOlR#ۄޯiT*#k:{sgS ZفOZŬ|ݫ.^4=BGxDՓm+=4L710~]cg24FD=NRPD,_Xp])Sv[ )3J3|74kjYzd$pR$2U=4Q͖ bj1|8'8mxr5Lo  lxwL֖WID{?5]N[ /w$ocwE)3|F@Q_i#} ޹4-g_7cw1oŬ;Pt`=.'֞b)[ޑ= BB P0ƶ9~*!6BjdV3 Ul;IvCәGaqݜш4=4O0xpE 1~__D|h6| ?E kK.UuOBZ§d;c!6?{y菎ʢc 7,c7bR&ڋ^4uwL~x*P  Qo۫k0s|5XeHkż7TX'%+/=K&_|`7ޙ8$ 69uv{Wa1s&WPb߄]d;9v6V))]o{gV{[';O¶F8|2cqȞf\Oc{MC=9Q/6}q2Z$j6q-~_s#oHp'ŇeAr;at栿 t@EE)aiaGwA#V#QuH䚙@c49T#dMc.>0F"F$G?X"HO#c?~|t7 CrxOD9[pܜ4mryjIءxDsk!oժd`Ôtb3(l I!8~ AqY] ӈGxîWCQ$[֘gMe/PbAR@ӽ-G.iMtnvZX'O $?Y "!gN$ոsj &ƿ6orpMtά!j 9e1ϟGC4`1pMpF>jz$ Tc̖[t=d|`7pV3^,MEof^vE){as<(CN~ʹu]`H8 SaqҼ= yz@;i5a9\nӷ8tT-5ԋ kpFI^(c[+s"h @ Eskpu1IO' 𗎨fv]tF`>׋mN(4<9i۳g15y 4<)0 ; 9CzľfWS e:A+ ^#[}is"5FLAll!$H}O{J;]w|4v;i5wͬu/9ۊۓ۹ݳ3q%j2koFRW64bNG y-. 4EYQGϘ̎/CHɅތBT}4ֵ)}|m'*$ 6iOZdF y{isu ߷4-IM$IBZf6{߹rxi8Pb{d/DU) ;|3ҵ:U"1:;[uu ߁uBnΙ!b1ݰ<;|u QG"05Úp2155J׸,b;G4=HN)  \؉΍ #cmvg6yW_^6:c h nc3_F̣4 1vro?=rL @Ld蚁bFBFK u˝FGaDN.6Gx~!3WJpEB%2_7-f[Im*.6v'X2J1 OěN9➙:!&SzI_v-͒yă_R  <0D:;L}]:gu-R#PN(/[3^C"lW_rtZ@[DeSɳ51Eiw\Vr#c2\RG9ѫ٢{^ *Jf8\buX: }\@%&߲YVoā60y^uǵ$p.raR %a_+}~U^ff 6鴋뱊ۍ x'1T(~Cg)~]l&`p{(ɪ wVKz/| \~3p͸mgwVaf1c*pt u6D}JќgU-gܧN`!ίG(FT$}RNL޼YqDGGf/4Qw΢+ؚ)_Z%>W!%]9 HDZVNyng;A! ]"F}֧pƾ*ly2/i5V/>w' {cpBQc̒vˇ=)pq5MGI/OEJNI9qf+X`~057mi(D g7g;P-=,r P>$'N'qr)}e9>|`qVGB-gE&e$!1r_={-(.8vF8tX0<܏y6U؀!ה:]2(Cb JX( D$/~]oJ&ɚgϚs3|{j uBH?N!< Ud2HvDƝ 9PcB#[DE ?{Uoq*A2 2Yp}Pܨow @NjPCdhZޥ2C?f &^ ?O%o!+d"Q/*L2'@Lx̣`鰗tX*4,qDez "eA&,!:qPKnT爜W/BEWJ ?+'W`{%Md,Sh80ppUeb5F^ 8vyqi=f,A+63.m} iqW1l G8nEnYgrsx(œ̃>Y/g.rNߏ5x&Qs/>P0LPMO,3N37~DqCɩؖ/ x8\omkŻ22xr<.>gk@3WGyt&F^osO`[4Kfo%ǖ0UA sBa|21DoFSu3Ɔ5hu%19~c 2]sޘ6,<+$?eu.JMQ1sr8'?/sR('O)BQI6 fڎ@!dy|VSC2vV?㸜7C1Ca 7^uWUM"h=Z-nްyC_lR da/_Tx6.ϿiWTB)P۶B1zD;B"K1JmWG X܂9k_1'`JuhMj':R `Nufkc_Qkb1$IK9,ܒX+amp)'a@v7?z[x|"1++1󲼱feK< Z9zJx9?U$Ggg7d [u-Y:);v#qTK)կ_n`vx6JUO;JaV?Ҍhs R@vλ"54qW`F{ uDY\|alɿԘ!X(>6ü}S]=n` /OfR2~.g>\D\GB2Lg@X0 D; !_>Ɯ[ @7*ʨژȯ/j#דg #~yZdv+Vq2eʺiJ2ZƳ_R1t1?;v~qws@U!4hz /8sb|bSKezJ$sx#>P <8yK,Vv` Ǭ*-6ܟfYhi*9 - M0P[ϗ/:֜ bڮa սP!|"uBYɘӡC+xBT..>U{+w}HwSNظ9ٵ.&^Gw[ p8V%?c?+r>1B_.JOn"P^mHjFrbQDM:IBZi(soxxJ4yvRݷۡB=} w؎hASrq4pדl %rǞHb \µUH{a#X%p 2J9e{|Gۦa!ka귽Q|eGnخ`۟9ff(vuӸ1{:<;BKkÚ^=Ab} R0Fq&U{Ҥ@k"w -Vd"5)!kBp݁,ͣ$:' g ir7)KmcJn3/tHт#c|;ROoNk)&VH%b?SwکY0LGCnKBBYnv1|(1zlO 0ס-eEDc3 gl XayR;i}BuzrYDlT'R!>崰0 89!LƬZ&&23',)ԛm(4KTLTY 0wXUgrC.1E1lKI_Lv5o? ʈPTjeSM5})NI!ړ0X(oOm7)'5M娞QprJ--/˼FCthZ3oSQ^)~&n[dEvJCx1]K\+(&zڰ3127UoN‡S ϥ!-%DqQ ݘ,&]azҔT=m7>%syhU4Z->xG\֠ I&U sF<C&TVmkxr쪲2#`%4z]BJG0.eo>迮%(Zc}฾DuRF<3RVڥ Tg Bq{y[8%^8` _aZWr #yk^Eg/2&:\3m_˿'$+Z{0+{93Ybx "{IQ#m@Phh,եh;19a=ڦŰ^]%]JN'췞6ti>eubUT>"%g 5|55,ic"* (8ʻ8[ [H53U Xҽ ~tA!)aBPB6`;)JJ^-1?UG^ LJ%y eR|#Y%95^Cݐ-/oɼdU"H~8˄l ^96*]t mn,3eR!=Y4`HkA$}TÊ4,x7?Wt씸"rOmlz[r-)ٹ{f%{/4jהJEMF]d͹a0;8ܰt9:9Lp9ٻ@HAPC'Nz~r;7m}jW}8]i7)M'gl5ŒY¡kE).B׌ZX. W`F}UvsG; H+XngqC0՗hbFđ. 7᎑htSߝpXGg.]j`R5-[.O{zH#c'_7BK$l8wM ҄wX0c=j_C VN*+Rʼ2rHAsFXUg ulO"3LPcdtLTܘ˖-kYuE(s^w." 7]) -輬i>}5Iߦ;q'!2 R}!JT2c'꣼u۽!TTW+T_)|hiv$`҃aN %QfѲy9چG20ak8 QDIway`UI̽y}/΁UHy%OAp/~WEpZY( .}zH1yA Kұᨑ^_}dqHpRBpod/MmnT^84E")}6B .`OWOvU1djCuk6F<܌c(QFC7?lu*}۔ TRI|%ˎڥn4"ͫg8J/Z~'J}_{}: _!Yf~~pSrZe=l>AQBGl8Eʹph@~nDc مfɤ#D٣]?`>aO3[#Y1]wm1 8mv!Tݡ68 3D?@Z%(?Ry r?W٢rT72_c:g}ރUᲊ=[W!a)FCpŘH$X2OEעٞ 5 SX|-ƸOEoKTO ݮ ȱ_,}X^cl-^Xv]XaFVOJS(sd`0t>}5 mMO⽻q:NB|}(j0 wlHE:*3O\1sdN*+E )/eG\:rXd~v/f/KO,RAr~ -h'" `ctG*vۮ1ݤ )_T lb %U2VnzݳXW-}UxMMf,u&4>1795?|6iVn*U u69d j#}rHymO?F{qR?_Ȱ9)ݪm*JiaHeN}rT3C~LapŝQfwn黣S{zoݛ-ĵ O03a&,s[:3 Q%YzymF &wlL3cƀMLkRJ`"Y6NJFCK: ƾVe|h< -\o;p̲#r-h=)Q_ۿ{Y,*Bn1u.H'h.Xn-rb0dL900qrCu>s/Y1Ť4 <$_}}7l=bë*wE?(wsij};g-pMCƒ]/ :Fȴ9`-5/5H:=FpqX$^wc(/Kd)‹,FmCI1#9.>O=*rm1FըyYq=_!- HV@ zR4TF,-"#:4H$$C.:wV:wM !c[5i/VIݺ%D}Q>.vi~4 r4/)YrECjy!D.>J=%Ik7?|t ]9[+L(KjorW?˘r*9;]I('ecEn4nJܼLVj#?woU 7"V-H~(Iq:du Ђ󘀎tL4/L58 ]SW%Ⳮ]Ļ(gIύFR >c% O6GVAs߾QְeQWIeͤi7'9' noFVұ3 S [>L )(b FIkD$F9wy n]nCϚ#ڭo(bKo_xMTon8@Ȑd&0kEyzrO?:ddE}iS(\{ KzT0`T/u-4_ }Սs!cҰӑ#!>~{᧣ly_c0QNEtܯ٥/lE.q7d8@uK)oSݚ#Jr!.g%ZZnɄJz~h M gΜy][@p`CtaGD{^62+R8ރ3-A*}E|]&)1 /q4U}s[ >ҢW0I9P#6*ԸFrsF ֬b@6+:ej[;l@i/FYw TY)V? 7> R I]qeRL k:#7z񭂙U`llwbZĩ8(0H@ggl< ȺlMUU״JhM2N++m/,9~D 1NS};݇ڮJYOJ4XTae}8ߘ,K@.\<ۋ }Z$GG@UlRTNw+)~ vQ0 Ji7嘦,SIf3zxG4MC@sɓhbjTUcهkO=UcgMZzcŸ >i="TܙlnG?SsDWe)Sχ`ɨ[,,ԭZ~ra mɴ~AJvŃM)J}{>gT'7pBm-Pj&Vbxȝ>},߸=՞ ?FsuJܞn9h y{zw]p5HURrl+X58,![{3jj%e0*b 6%ʸ*UrߺkOq q_]#bXd|7^x% dUQ^:0EFP7ֳP_Fy:*+h@շ ӓ64Hǯ}]YJiߡ2r0ĝP"ref_vnXTtfÆ[=/~x[Kܕ- k1nynhK,k٪*l!XXajmc5&o1EUq&Z!!b3h1H^$InjybsM5Ob"ޡjc~wQ_'i;$-eY2|["Cǎ QZZYԒ\k c#|>D)* K^^3c&5RyُfXD/̂Ñx#V=[~YX55O0S\,Dymf&9R6{J?h;/F2RNTX~3BrN0~r¡ë &7APs4D:"DSM]?-켾7e&SrKV3meˣxat3N-`H6y:?f~pk*ʛyĻ<.B >Y6fZnR OG`@U}H^nrnM`z?30K #QRuE63B.\PVfLO'"'KWfpA {w~cƔb6=;=gYG}\'G?5a6a> AG\n% ק7X_㶛WcW1{d3c#YeIKbfWמz`8WPH4#]܃?&Fد>0bȾqƿs,{P <)o*kaڝSmia .1 R.'w_J N*z-@B] d BL8{)!#}Rd}#QB߽u,_0GC"-uқO- 8.28cf(7?  -DhIa,CQt=h\̐3xdžz# Z5m:V! ÌLP(wd!@%ǒ1p9K-fwA&{?jĜSTI5{|G}1kk{{yz޷eP yeXYåѕ%^@ "5I9Êa>'}6MsEFDFҾ@DȣF+²A򈝂2o8_zʨM)v? -2~<řfuV u`K Yvc;yOVZZƕV\`}]щU/t_ HUhgޡnxGf$}^ fK;~s;RѦ/t` ɍkN}>[ߙoNuhoy w]o+izUˬ9H R֛vh4-4Mݘg %L[(ftNcVَNdS)S=3eu2L"џu#ql͉=ސ5)j'eL%f/8>=AGfI['m @dۅ;w% xG^/ktj p.FG,h`_i:Ak"?-@bON+)"J`}|u=(_+nu$j42$MChP zkSa)Xg^67.)s΀939}Z=8?㧮֏Q^spయE Ȃ}1"{p;v%m?DO5T P%1K@> [D? -PkZ9ⓓ_Cy\-T 4wxQeN8K;P= CcMW\>tJ2  d3,iU@~ L{nb>5 wDC FXe%:?-KQАh!{r09*\qgXHu7I8']"s23[QdaDa/#؃H~_c; &X a_o?2~gqmm|u@'}1w0;21))kF~B_EbFt0UH2_6 6?>m'޻)FhRXg\>OP~?^qFY_vW s+JlK#h3'J79VRǪ@MTRH1t*V־x'{EPQ_Yqh٥Mk&0}f>Q'W<`Gz6Gf좷2i$ A4n"!Iv.҆f'{)v%sfM 2G;bW,oo]kENv} Y/3j#3?]\iii۸tq[dUR{/U $?fĤ4 D(`al{ŝQ3JRqx:<ޖ R2D@ >9z! xej4V$i2hAnv`nb?tOR6*Qndp~rgbNr}Eb 3+?3 ́!BB ܣXt՛9'ipȮ? a"ӱd}Q"Wdzm&ڑ :fVД:oHAI WޒDKF%VwHVV||u! buF$zĞrWhJdsODg+3Ӝmhhw(,8& ܎Vn4`)Vn0.){!4^(Y^FttarW.݇s2~! hrOs5X=' 1P:dNҥ%geO+0:/o>'ϳϔ]P&4%.A|ẗ́SdH͓Z` #7y¨ta,L5LIX!CTTiΤKǔ}'FC"#\1d^w_I |Y@~BuK؀*aX,t1gڦcR<>FHqB#_&pRTXĚb[OOUKn0 [7YD99 XFunו^/& ҢxWmL/1& gݸ(VC`^f_x):fW[)OYiϗ\RRw^ڗt_7&$ ⯅ qO5]DP?\wP ~[TW.l[rAt9c1~fǗCqͲ%iVKKZӈӠY.CX§߰6|׷Ɲpkkt7Uګ-n]8RPKVsH1+u nuvola/128x128/apps/kmplot.pngUT fAPQux uzyTReTP2!9s!4)Lr,L-'DsH-MS3*˰y@ԴԴWPs(JQQ>|k}c]a{~s} !./!ᙲu„lK HO]&"h;gc}Npx }N#q_[S)E4rTh~m/ be @ m "NAF@ݮ_Y+uĔd 6#%3QxJ3rH:K5K3VXE%Vq@$Fiv$Ckءh̤Ɋ s1]㴷ѥ$3# _^Ѹ& ܦ[(N脎Z(n!>@{7rpVAz`+MՐ}aQMo2!ťΜNm1hL\Nk`17щ|U =UdTWSȹ0ccEURG>x]V8u-z< [MQe< tunE&Ǟ3PlD{22 JAg9[.E3O'HW‹4}I|Io+ҡxuuUr:v<  )FVI|"Wy7r›p? 4ߎ=Q`/"N0s;wwrvVvf tY l#]tzՇ;E჋ ޯ/!Z(,H [b\316QQƄiS jdVVuSSSg8߿ӪA)* ]D܀܋+ C* qd= Ԓ,RC ɓ[3.p?Dq֕rX爁9~dhǘnV¡)ʫ?>pȌ Pi![es4v^Ǡ "¨UiyUbg Xpg א81Sn!`!fN٩/(j雚iT_o: Y0 NqutXò^TeY/Amyӻ t^22\+kF"P BIi;K='_Aj׵Q.} c,92YR_~ظdΗF*uvVDvGb#m/SW oPᒏ_U/( G["`V-,hjN-ϱ`)̞\mKM6!vE }HkCu7+2iڽ@ <321ӒAGzXxR)dDyL-^"h1"V hG$XjŹ0|Ёjڟ+(͐uԫ)}hIˆ%ݐ}dnU\3ҋJ]&06-5#YP0@ĺۯ\s@3KuCY|ȗPXޥ32)%LnI0+*+0A'w%f~*Pr4f AڴIC'ͧb.LQUʲѷz KwgS1a>R",j/pJ & o({A28P;7}r+EߘRRy1ၜ1&|gذ*)gYBso+_F,G|Z`W c I7X#S "1I0kWY&Չy T4|@]M4ܠ*[Z8#Uf1%7ubvMҷeX^򆰓I; !)+Y "Z?1HߧkI~bxʌ ~]ǧVEܚhfJj=L㬛t#UsyZ.9$ŐS80ek1wlKz=H2/8)?qf o$0dq1)SIa4+4qJiT61Zhe|ɿYXtل )<:L^:a`/90 Ş)@W S)53 N >B-,C_ݚ o`E/Ls'!e+;]H~<ÏBQP'nL5Ob=T'AT5g'G<[\E4oh܌R0'm[Z:uuվ҆iK[F8$d;]e%Uƈa3,ѲKA6'|$^ 9k@TҴhO#}|_`bP̅*g7pI,jm~ 98Z(j?rI^8L(/m`B.Z_?уj_z7ȑ! nvd|Fqh,e{Hmd`s'g$+{H1W0%Io1h@%܏y>ԑhHxv5fUD@gu=d//˄:fkO(g&f Y^EQ-4J[TQՊ-.8}R Ůab濊Iikwo _vYY:~%~dWV))T45}w kH .4ncZX\PewܠK;?SLrM6g9}ۖqRQ%M Oޖwz;ue}*-W[l'-OAZq>mPs䲓wulnk*?~c)a~_:9y ]v]RLemoƱήf bx{ʅdUةKa1yаV~ "T[Νty%od~jag#z 1] j<Tw]6:Lqmq&s|S$ _$|FoU{{s "N{5#\_gd bis6tQiz~~GWW@U`Ld͹Q(Yu?mrxJhXeY/,XVw >)U݊N9;p{KM5o%{(/\-+Ю_9|Xpaf;qmo:|+=}II(fIT53GMdQ ֝zPK%9 .w;8QVc lAcZ 9ed{g(|cܼ_=L,CCOb%ՐRHM+ -saSh ؒ2!Ĉ}X')U/uL[-j9VSUVܹ#g ?m*S8Thpjf)n0%y&\ 7Eu'& ЙCw'ix׼s),[z=|l7;XG[;Ą@`z`,3%T5Q EH?qhzcx8@n>HEzHX CUR;+9B]{9ңokN$#"0j]t4*`Cv +7Z{.`;ɋEc**a)xDG:V#BSOB uvD͝\9&C$8,Q@˵K"?p6Q#ǵCSԌ˺1~zPfR΢䋲kIjX|]κM}GIonB G!c-ɩ8R<\k4aǐŋ8 \GjOҽ%T"r*Tn#Y2qm)rL~Yq_0{~ǞR?L4H3i$^!|+G>v[8EJބ.N<)&$IyG!MIv>TޗJBT"[tsKH ):'%bcUL3, QVmo\2d|gȐ\iIMFv_}VR!`9WKT lEp8_f!G{-}AN6y_TfBWRK(LTl9ّ|Ƃ}Z+lDS݅YyAw3S"Ug(N(^ j#59ddzԟ,/)25)t.Y7 QFzm$Q?ߏީ_lKe< 悷h'fwؤ-Szox7bTaO~̜@kBaw1ؒC:ȣUQٴtfNMȥD |}(|6k 'S kg~! !,r2Q+|xUƅu=QE̻͒H^fbHz,&O+F0cu<yܨ7U' HCFw0t7C4hl>ߗ"xR/b欄Jtvz`>(1 d]SBךPZE[W?9tfB))pw(}fKDܛ;ۅeF#n)!Y0 `HWNk/rSfCs\!}LȱnI~I{rǓ7 k7Ny˃T˕ v+|Iޕc̫˫nEٳ* ҉鿻^,X drlYg #\_OeRsi?"̩e}~^nyd~tJ1["giJ Ӆqo^jp(QsvZ5CXWazaV&X4g(L9s{c  N>uaԀP`;MzĐ/--rC B7ZhN? Qɶ(Y0Z&zfem szʀ:&K=g&ֶx(o|Sle$ +leNfd_Nn#i_r˦y<Ւy(E yO Ln{ikr%.w-0br|8\[vSjcZ*c?,yyONe0)U,-7G({x+:SC% u&_߲ [#vug临숣$l vUNpZ|f+YYҒ,㎇& _#ߑbRb,bjZ ۋw©J~1 O@el5y儮kLO (Dr*Ay HU.)LzudNc }3;pᘠHɫn mO »K *y2?%FZ^jmr/3FNfl>Px8RNެV2 \f:"${)/_]!/5ADG27T3@PXxDHb d̕଒^Vۆi<7 B[axSG)Kl;BN1 K+Y-3\, LQj`שBGRaxJz=!-+ccFRВ#܌uRp#(FTK5 %W0w UwI@XoꆥVuRgU7es@ZnCMЋU&/vSos+Ib—m59PKt91֝RS#nuvola/128x128/apps/knewsletter.pngUT gUAPQux eT>.twKw . %! *!ҵtJI, 4,!HH(JH,ty^?o9gfμu_3w%9946>Inu y T}U"Is}\\H/'Wnf.A>j6"pHfiY_|.@W@HwhZ*] Ah?2bY^K'\ڕ`aeӊ}_X\dd$jd4MJ2 ţp}`PAK\cˢΊ{ G {cL \Gz/}'ۻ".^/(`:++>#NNn73+&23,䅟U\](kTZ [G.ƧY:Ԁ&R.>O!4Y!mlblCx_Q#_X_WDazY.4IۋF[v27!YD=>b֦}270/uu&YrN?w B.:xb0 삁.S=v Hv0A4зG:FB-3Ճ 7ght%3 XLh1wA#*UcJ-%Z>R\]W PSQհ5?{{sx-Q'tj´Ň/+N^b"thjk/CiwQr̦7mk%=~F~,"v6)q VRbbxu٥5BOhı D贘`?pLn6Nv `iA*(36a=??Pv{ocnN/YR8@RZ3Y}~'BhTC#‰am-,XΝ(>z𠡾>`sGJxw8r ]E֠}X={׮%C; / 0YH'y@وt Hd, Y$n1re?~D!ĐxuVō縌[%؍rr•,@\kX?j9ȍMr7-I+_2"AfU 6i͓~u\A͵z is*~EG( s XZ&L)Nb@?|֮~sv4 7JF\D^EZo_:4H2z4d'!1%:`س0K=2YziEaǯZp, όWz,z$ӻ{ث8}|}wX&'#.ς3 Ȯm@JJ8؋σj]0@ ȷHO^&Lkw?} p_ C+pnJ}i/#iY *w+%y o>@xB$(`#y,iv:[E!85:M?Ҳ\dRNv)x,S(?*--ETI+ȨE\q,fMW aK}a^a7OL˥*̪[G΍ĚEG"m>}x*3Yh|w}c=X"+4ǗAd8dbd ;LTzfYDҌp=6QWkL2K`FFpv%ekkΣՍ_z)#wd ま<ݯaȾ7Z+܇(wtu xsOJe"vLxÃG%LXI&jT0$˓wqդʝ,m8a#*D67u㉏"j9{ŽO^V`^~>{(d[rhVr,];8w7^,t[%P.XV_bǒhØoO*8߯)eYᳯ8RxeLoT}%]ؤg(G+x--څrmDQ9|[grwLY~D.=F/yk]h!9f9ko [#̦+m?O$>3jqZwA#,18K\%-yj2.%+yS*}X娻HtFsy/]jl8$-KX_]#(&MZ$.r\*2JxKooϘ6܏#!`4hؖK)Yu_SMjfh}o3F)E{mvQ/GHɪӳEDD⥹_6$ ˈ-k"-t]"Y ޝAЭ穓zo\o񦺽yyFRU iV!$Ywnm҄oy̱1,B-ˈJ3<-ǻ1+,6/$b> u``_Q\K1QQxDibf\xB24-Bhl0;޲p~2z[f$kzy;/'ee!+*(J@ix|jg 䀍M$r66_g #u)), \bJ %?ݼPiz5RnTvH"3eJưqFq,e" T X04H$^8{cBBjfbB[%piggk|TiX&mZ6';kG U c]ZXeΑ쓯3 c UCX*')pfTyyA]~z@w[I`yupgS~3Q4L2lJL6qdȉH㗕y?V(/YgBp_VO\^"Mt.~J1jaf}M^2N5A\?3F^Ȫ)?&t{ww-D=Zשּׂ1eS #<&$m :fH{iWg@≚G`Ya$ Q\S jϯ9A3'^C%"tlbl˅,ӳ߿$XW\S=1<8yl %ݣqۢ ݀9"NG ~KAՠHHӚxRw1OڰM =Ax|4guws ykDnU|*Dվo,xL_mY1 -IQV%1g7 YgMTߖ\k+"_y1:S3(hI=8TKIjQYYd:?v1Ru$Ш翛m4nQVXMrAcR'|?MN~%%9 .m۬X])&:LG |wNg\׃LYEpG0aXiL%Gv QʎZugD9@XตONΡr&'#B3WI_s)*s셉yg?7e1ͬ%|~@8Y$׃϶c&5x5$QAPV8 ~U[jnq&ߑ؀ֽs Xt2%0׉]^mJ-~qA`G;u t̒,)?V2~RQJxb=Ry:y#V[fYǬ~LE=P1 ׌rMݳ|ӫrq쀥 WtKA놼z\@;(11He3Ź$@Ceg\}膤Kx52 :g(LwK5Ԭ-i\RIK>U>*#[,׳Dѧlߎk&T$^Z,,lٰQS.>(wr`LO>nҙ( ʗ>ERojpDY8rw:BLʭI΁秆k^6tVWnmciM)%|@iTO?Vn op§=sS\ac \<: V y#!:ʧ[H6#* )wVm-y{B{@[#BҰôU2~)~J!tVn8ؐ vJ}l5)SEÿj8ʛ$XQUKk|Ӕ| NoS;g'?q-nTF YJj(WsBeڙd(w(2SCܖ&UrR۝^E/ UyO.0Y7ih |B+&4@Mj޻EP=E+7t} .‘Upt4a/<2Nr 7.Tc/)cvgR05_OdW:U̥I}Kw.ŷױ11wV 306bhSo/&KC}W ~g OFQt@Qs{E?`5l'f/UMBիcU. :`?MӀ#s0%vW~@<~b,jӡJfl `QZSnq`l ݝlMN>E,TBB[ JqlO]-C6u:ۖ,NCicZUIhA`LHz_ⵟoU(Ύbz dI V=!ΆfÊ"@ޙK5܎D\>hmGZ m7-흘 Qwk챵$qMmNߧ.X) NGIE>b㔒@U$#cP`"7$7MkF;wLo%[WJ6Q++E3*20Xj/.5mgkǧwD*Z43pٸ7p^+ B fzOѤ{^wLڬEF'RK|޵};WSƊVV'Sq: ˚Б pZ>b;?T?uPŶʐwщ ΰ*vns pђTTROa>3/Z]%rOr/so$M ̎ .~#1#۴T^m34YިmĚXJG %ޚZB9^4s; lAl&şfx zr#F\]SڐISzCNFil*gk+trmb5E=>PoQS-cCo+[XIp|~#e7yz~i<wN9lJ+ayNj(]dOz ; N2cK`wiwƔN<5$cI| L42lƜ)s~Q o9 n<͆^+? *^kOno.{1tb-J ~')E2:BEnHK̼,hd A֜-{8j*"b}C=ܗ]Sh?Z-F旪Zh2iViq} 4i[]:K4Q>\PA`M/5rXbVّ0)_F,m0)nXrD M AbyOfK|rtk Ry8uT=n*hΎh J} =|g㞚; -eSPn5wȂxؾAR⾥o"D Aq6}P` `\40$o KxB@WX.fï~H?~>zr졜96>Mj̮" DU+>Gk;\TίJ VaYp@ Y"ԅu*dlnPbIo=zO<+S1"m`0PDh)s3cQ`mYrmMUX%izma&R٠#B!s;¦I\@j%w؉&MIJvS2ߒ^Aז1w~+tb֥z{5&x5ڮ?zd^B}[/v^DY#mOa* J?[ʅ`8i8l[l/쾥ݷ~EO=*nݔ_Hq(Ҳg- *,8%B.{o>l- lNj= "0#=BBWhElhQ{){' hlN^FK6}mٟCR "8)%|,@V.=ڵdY-9Vsw|.h'4Xd^Q:άsVMPZsT}yzzP9aC&Lik#xyXƓf|nx|؏ڹN-Uvm#ᾏiВ+]LzCJvbPo+sfs6M`]awBoФ~dH/~?Hv"jZ*ZhJkk>o 16%!XeR…ʾC_@Ɔ9W$0͌ϑ ;-GamX[!#L}>ɰ9&N8Oq_n EL|~5%EV.6|{XH(_ ש>*U"7oZSLu6(UƈT$n^TشOf癘@ΩuhaNH.3vEkSۛE}#2߸)s)YٲrO$y3xyP)% Ú)3Ȣ!ʑ\O|NÖ6O:ת-q2{W7>ja'\c*) _ ~ =Ϧ !JONmP}7, r|Es/u(Fכ?6Wt3: kbܛ+ٛܮgxvCߥ_]7H2]Q*{svR({n4Ԫ<4ֺ8]7`G59cxߠ"wil@W-C=g:<¦)9K8) +_%+M{ Ʉkt~r5B_UuW1x~Di.WNqy3 "A)C*\#LD-> W:>/srQXܜO̕4 ZׅkS=C$&TkyRM$߅! d6ȭ^;Kɦ= 67sDuuMUJx zBuJ3~Op,u h|ؠXfQ.B]0/= uuw>.$5v@1cd4_ۍK5"+Qv{g:\m¿W)gwө@*{7bYRxo<1RN>U"^FH2գʘoF/ՅhϝlCɐ‰U}C]{@։`~KOADI9C=T/5")c@˞=Cn/J2N4;{/ߧ^Q1dV\x,b-a}p1X?cƕ-+M)`)UE%NHy)YMC5'~+ye`zNYG}g -^m*ği^"gߣ` % xVsYz>A&)e@ fVzǸBO*; Eر\]a0LJi~awg߿H/s]Bغ׏^FL\t`x|ccTVw _6Q$jK ge=1UyIց1~1~`:ق18x,)%CEx[9dsnԡ̨c9~4G4Zoσ^^^U"}2Q ٔ(lYꑬMvVY '-t J@M$B-GEz?TR8]U>2w#&[\4Q,tvv86aR0qZ4OFp wek",w]<}-{rhcy7_Qn3\&s pŃnZ'%߆w #fxm|܃ׅF { F vց)wo钢iٓ(uݝ5Q9#dxo8aH{}. !2aH˧paːG v]DI?y],"F,/eD>&iئߛ&w3&HҶٸv<(xq9G7"+$o$jfj%;^dY<O=Oq9dzz7 Up+[/r#"aqKgދڐ8?%1菉Z 0D$hWH0yhiyPS*c姂Y".ၜ{EU( -ط53pEVo [0eE^"BD+%Bj^Zn"RX~ayzގ2=^]\U#o Y<Bs祻i _+NB 7XjrnzF5\+UX`S;&u#;]m]c4ۇRqv NLnǦpAmNSMP|j9JR4ou)yg?E d4踗he!Kr|.P?q>T;/k^; ˜(yyTDש@𺗗t"$~<i_j&6ɣgY{&?2U.Sc?Cǧ5<fR^T{bXW C[6Veg s?;#џf8W;m!4:ɒOʍ:|+Kn|u47Jh4Oִv 8͋Gj[ Qw RW/ Kݏ" pJKCFdaڷ󳑐m) t_K>=fj4UGh!RixȶT;ӣy:Y~sqOll?=Re5-m\(C!M07~rC`dK<Ƌ'0i+Gq/lt۬3iEi*o*[6@ѱ 4DVUŔkQyYU+6yE^O;ǍSw/6d?dTB\0S4Rg=)y9 r>R=9 oWwhjJVqʹ:N,~>Q=^x t'/j1 3lƸ,:ivt" -A78wGufHC(RȖFoIʽA~?89s^ˉX̧*ꗄqaZ;00CuE n#԰55jv!y}vqQ3dly;S纴ZZ.CL58Lɮa 0Okhd:W\Hd6vl!rA7O_`]9E2ж`gir!Ue8J-KN%7ܗI{wNx;vJVWƏi9'o5uDsǰ`mKpr[x+&F6U:9u\VEytT*@h>Wwcuvf3 o2$h{H:5"m%W2pWa37%u|IQL6֗u. l7LeϿ> OYFPYR8kJXh{-̿02ⲗ>y>g h͠τn[ON%Bh$&<95W: QCC[s#Tᘥ_9t?PCʿ䆓оRRnႼdY5]c,OM5 F0C\ rSΝ}iǑCMI< ajQ}=t$̪h$_d8\2QߜAw[%i{T ֊M6x0IClfbkNx]sEjY, UZKPY5 `(ZuSa\B;u-^'iI9_7ǎ<J >n BY2&ܷ4-Sb{[տqp>׵=07K0zxǖ}&㻬𢩳 GKZ¹m ^ x{`bi{2}aܑ#@:˽{B4Nɗ̃>ۏ[4Ü,e 2VM86/.Ƀ]Iađ'5V$[0lL+BK~.A1^Kƌ-ޢ*wv]7` L{lp:6`1Ypn%uj'6;apB>H+P7Ý2~D̴+'4IY?LSgt>5UhrScMOnF}Kd9qqpd4P['3OTK#J,s~`~zg{M<"G.XoÑg}QA8ekzg^I: ^~/OLawvvj LZh11LN AS=w$( fLn\A(Gi3$n ӨMT> >UC( mS0Y4)9̅ݑ%KADdw ϙ瘇oay}#Oa1'svOͭ2Zw7h a!Sa(̷COT'EtKO4241)1oJS#"M3U7ۖNoDOjE?Jv{G[V>P8:CXsX=ti_773N1ʇ{QGFڥ t]26} ukրl:~o,9UCE-3GK ;m#.ɾn~@ټ-']?a͋B)?Z6Zy5w({JJ.MuHXo 'g %y|ՔVH]; aH2[jxzkS9ŲyFՁS~JO=4MY!@:Qq] uk@8a7/sQ'FoBLAl<<GeT?q_` J,^npv&DzS#^7ؼ?S =K!˭,74.kJ˙g[RᙐlKUS]I4;<_*0D>b{k6l~I f 3Rłϵ{3fgO[=:,$r#s1))7*3Dad%iTya99cl =tůg] ='H7TX:>S#(B&{kԍ[r-9 8| x&#gAvzDKk`ѬӈӜ=Ǔ%z x2?'pԬd'x{{ 钳PǻF /N;A)t#s o9]<0O |Gyƅ1yJS<xg Ƙ@.1㎠4BJ#a$ךIo8. mIV&|Ӵdˮ6|.S6#H2wVߜrQR|Zq#R8c!_I|rX "qAHF%Eߗ [{8z3K.!k8aviQX8fƣg|}'ZwA1?L?gpWww=<2hj_k~4?ZbW dPeҜ4R0%7O쪊 Fqb oZzyư|t/|)[+KD>en͐٠ʹ j[7o?S*1=G";:8A]CN.fw QC-6S4RyuLl\4$y ~uqz5^#\ut#T^lu4htv6\cP pALVpH9lj~(2 7*'{rjJ]zCd19QU\2>(`māR9 잌nl~~6D7?91-Fiv"ބ -hWUG@LNpk3/eW >d#~ ֳBߟjX831c\/Ku2/΀#NV5 'gK,?PhZ_j/@y|{As_(D@ôQ*oJQ2]zW'%U?rm9`>gi!ed b") mn:Ήy+}.g8>qx { RŹf(^A8ƣ|j u(ґw|ԣ r,6qA{qFerv;z8P;e-susb-:욐25jVuf^荐٬gX,*xEMMKD>XAXuo>}'E3G0~iV"PLx4j*^C@-yvdKPjpY ED8~2U}<|p܁.u7IO~v?{J<3Koipi\P+j9׾h ^4x W ߇4|o!n7~QvMQPz@]F`h@<ǥO s0G[X9LagIX&IKUFZNd==4۩_RL11E#/ywvByۡXX usdʔ;[&TIWJ?m)R, ݂%\w ?m %5nUc[1Z>*1xRwcP4Ǩ243Z2+nݐ+1/ڋ)Z"kSo - brR\^].{t {|-CeDjFG_A >?nY?RD,pTֺzN:˵ $i z@ٙs &wbT5xuG˶S_N+hc#9<Ťfy9=ȿl22뎬mlO)M_7KtӻNaGq7yKV-b*`GDZhb,VB(N#u vՔ I͓??JY*+З[3}r4wբ* n6Xr!J;;_}/ /LDTnڋ0_Iq ͩ!x_k|}-$iE>LEpWGS54{ud fIĄ3cdKQ)$tB$, MG!8w@8WqKZ|3}F>%QePr'\k7wlsJq$,%\<1(:y!虞ݵcvj9ݟ;"0:jç,"5҂!,3δ\d.$ ti)4̞܅jHhD%?x^LK]DZN>ujy'_/֭/S#Pkw%W`0[6]o߿'@YFEGV^enIK\¤"9#<,6yc_CPJwՐץqUKF ̞Tϵ tOTiL0d '7Pԋ#}R}r 0ӹA)3߼:~݄hn.55,TY@hhձAF!r78:@ AC44i1 ǗѼ^bs$u;X(.7c폚(PKt91-!DE#nuvola/128x128/apps/knewsticker.pngUT gUAPQux eTT6'aEQjhnB%FEDI.χZ{u]׽zvMj v u5.6MŪrunyc6M;>V^vj`gdgec:ػO/.Tۄu[?'r#g/Ok1p$ RoPt+$]!`GP@yI:j&okI$M2!Ç>=܁#_5' (=V ;GdN6x"+5[t:pM=!$ZAZ:Nbg\R9@II{8D7u"~CCT^@w="O.7 Klؚ0|& 5%77~tRҭ"Kmdn~ң  0OŅ3"1Qm mEV^88(aZ[iȘ )c{?z@[cw?6v@_Ssҭܘ\rB9m{k]0L"рE="-aeeSlglP 7[FCaU3„$<4:':DodJ_ں_!%G<=Mv[dV0EE u;L0s|d=MrM ϴ{&hZXx'nZ˞cB|W R?3-yIJ Dh3"nû-٥3<=QC ')"ᴤ}!BE[}>uR]qX1,xܛ "[yy_$:*sq8[YI hf­uuc-( 62-/}W}}_blɾX`ىɁx{̆ yʧC(AvM6vD_&!~݌Ť62 kdNeT|A&=JHuWBlgtZ8!K+1W%/"Mk$#Tba5;PT޷#~n ]N4WWGnLݺH~.߲?>9\/y)\d{ f8Yt/-<2Ìa<ꑳ˃EyzX*zv7RȈ/7 f|1zz#۩A+d8v#.${}}5a׫౲>57I fNe_b1ǽVe#UC<.C<.kIXm9lcoͣg4>doM% U(o5vzTW 6Qm0*CQ4@ACS0#o8>8JB.K@88:ؘIlp64lpON}N9%$R%࢜9$, ^ ;wɠP[ ;9ʢ7#&vO=½.^h&VҒױ lnȡ{drpzZڢEK_9,!?36} "~q$Z4BLwq41I%|k 35fCQ<2??ifnޒVgAQɭejbV O:?='m ܘN?-gxY7aEjx12}szPMmȤO>a<7ZIyYﲲ9*߶^*ecA(GiY!|*loOOɮn6E/G|\p2aȵb|S@YÒh <#OG.kfnalIJR,7&EǓ+Y[4K ޙFxX+1pt jXr$=}}[ sn?WK DS4fϢ^eNNm.Σ5XR#j뾹95zC[p=>@^bCJD\ēwޠ/j[y6 PӢ ,"Rȩӧ@zyr/ q4ßhu/EcE.UmfM_OH$J#1D!34b/mnu:]\ܶtߖ:yTG7 8:˨MlB/hxEu:pc&oa3_RR֤-zZ-24p K#Gq;kWFm04o3mIiJ?I^)) !ʻwl/<1ϲ{c_|z;-(m[x4W^@h4=}7w7OC`tALStw,CaǞ|YFm*N*7 LNz \(Y k$7l=9i/E%%- 'Xئ~UR.W)^F,;VzՐ",2͔MK!*rԮv 0.1tMyYˡ`y"0ݏuE2\OV~m LG3* HzD*aD?*b;=mͤPm,7NRYpK'dOR=3x at;%F4@LJ(#R.TUF&#\k+? z:\mJםDw[UƧ3D۱Gs} *?13y O@IJM&zWr$l*!$ȃ)Y3bVO|߸L~HFl?ISbLcJ5G.S52t~޽1_5V?2&DH2ϹKnoB8Oz IeVhkq˩A:zz"cM"q-DmH3oM3^Σ@aZE92<0qQz\b>յM*3M̧b),CI8k 0gAT%1 ţYUɪ<eAI(mU&?1J&]UJ]*YQazt{ <:[\?TI1%oq7\ѝ]yGu'6D%fR# ;oD* EuH B3*>8'L7k!MnCh- 9xh\/%%'0QVҡϓU<>BV&3P=~':N>EV Fd g>`ljww[m1US{xz~Ic@!~~יiX,ϖWAyy\Nz*GlM1dXzص)l2T0NXzlbs h>vhRqNլf|9l/Gdޕ╧uko["b)삥;K[nrñXolb5\ט$kA /tZTF ]=:.{*Oϥx0e;_ޣ~X^P<4HE03vC"YMn/~{Av,g *ci-Wl6X/8?=Gʉ(+V6^/O(Sgw`,^&^R,o~~yE:\ \]CL˰!h{r --q) yo بoU>ÓoL2[`6Uh,X.)v`Xĝ*_֕n(N `#V{_|gwLxFG{K&3_п24|f ލX$p1`Uv h#XAHG #:Cvs8o>%gfŨڵA@״e FJOֲܖRIm,F^z9VISMͦo̷ v殊qf/_rxQBG"WSǸvNOV݈J5|!Y>΂7/,o7IHe`V pNLjxq)ԆYudC4C=pgw߱ռJ|ߴWdךּEx[W }JF5zA5x[[y"iWzsJkqtjvӖ )[B:YW'&Kc+:f4ZВ`"#A R{1E[f:OMD~7+eN(Av7su2֛ )%dz/ ߅L =YvW*%qyɖԤS}u]j+ltR ?yS &ctmt3c46|*[W<_27~1fF ~t 4؉^E݊"åRdh0KQ%xzT=@;674{gT,S鬹l/2쾧D[A3vHNb6Ob+C_Mw1nś0.s=Ĩ!7+F7~; zO8ƈul$ɠk,6W/`}}=,Ʒ"$Q~ 9 RJx˥6"R_K/ "͙;1a{d)Iec/QTmtQjk؉Ɨ#ݎ"! 33':EO}DuO9g^D;o6m/uLoc"(U[+/|;:orF(jt:nƕ(uHጆfpk47Iyoi< Vӗ32H\Ǵ@r}rC8H_큈{FI{EŬ$:AyC >OK; ZX$j pG]Vuuc\\ XsPjjܾ賰%Z ݈3:|UN;8@xnvɅ,cYI"ꦜƍ g|t-K*8fg*^Wd 7XGj߇lBn_~$mL;j12Ӱw.ߛh 3 M]NX(I\(vLF`!:@5r#4"D 8 g9-|/:jj'Yքw=Cd^h%fJuVتrt g|X7ӊb[ >6I=H N0D cg}q|Ԅ⾉Oϥ4dR2>HYqȳ@Ӓ,^(,pTu"̰͉USkNHddO:h0h#ٓgE+6~KʵwRO ;?g󻤿LVϸ M }AF ;gk6*lM$e6]uƳ4?$ioyq-xwg_tܭJ _)r[q-ĮmZ_19eحy`βun<OW5l4MgJ(xIa;E?`C5۾KLuwX󗏟k=ڧ$P&rH`Ys78s$9"{_+9zօp[`ww? ݻWBz?˫3+:<9P"I׫_k_֮ ,DZhު >?:ـP&.m6{T Z+uXwJe bak̚Z(㒆uHt:"/[pU}X/Bz[nv_k*[TӚ]_n"4峢ꝴg}\b)yX0@w~*&(H '& UYK&> اD4UU|XxҸ(;|f;W9(tQæ'QQWNݗN]e ^ 3{"-JH&+j&WI; &*\0p M^4~q&";u;rzw Hp鮪m^y`4To] tHi , j7E7׉] Yl}ϓWq Hj}[QPX6C1^ԋnU\"Q ]ad/*XYt*y!0wuUgBpݵ!; Ϗ{l/ 3< ߜ}b'O@Cs#QuS{^|œ$oݘϫ3NI/!vP;l(+;A_ BT苠@䬊`3{јْ@YKAbZ{,VݑD 4KПYMdwo@WV~*W1(X|^b#t]\km/c#{[S#z:`:.QD`V̾jnLk&ay[8CYwYq/痫O}-3pZzve:x!BLP^AH|ރG̓ێEPi"i4 QMsb1[PVkiVW1;9_5 J{Aŧv<~ȡmS%uI,ٷĉKᣉu L!{PI\mDA1-i\Ԝwoղe򦳛|SfSszbշ{WԯʼnEWalaU=e|,܉o D8>_OwS^m}n1Ⱦ"6=c8eTcDX()*G#\] YxZG%%h_%GIb+Jbt`יx ) Sh/~uoBӅ1ܹ MiDƀQly,ywx,#_QRr` 1BOh#] $`, O j&:}9ƨ6LJ9O$˶-ZvczL(uLcnաP !'us浟0H󞔙S_u33"p(jPk?{zwDS^.jZiz3\ 33)~yZ>wpgHt˲!EAH'ZC%K)gU;;aGRHV\sGIO7ڍ> B#llx`I4kM}y|&"'*YnNnoc`j h+Y%m@*d+C* 9ThѦ^A\RFàǙ1* דA%T\{bo s=[<8rPY \? , g{IrY 64_%)V3 |,(WLSpQK_va [1z|1٧MoQWgV*sXmrM£|EgZٯ Y1ctke+\ʴh2tIdp kt2RrNϊ O2yx;VNymܸ Ky97ᑥvr ?志edxC>Irʡo.3ma>C>; B5Mwm`lKHσeRƆ2KCRHLvcgQ@q~/ÿڪ_-0KgDl [kUI|ӫEt:$I5_zt$|'[to SoOnt=Ǡ-¢}ƽ˷?UGbC NJM11bS\7SŤ<]{z&c@'CSVy S,'9bLh=#ϔ U-2!ti.ܤb;p\E^}C*ܯvgϟCH^/72Wm}УO񃡢.P=0 OUyBd4yhPt( f^e?hl쎧"Q2WW]xs)`QSK?LE#,p;}$PW U*?>`8?(dhL.؆V{C駜r_43JR@ Ԯ 0b.Y .D}NqHCN+/QB=6? {l SmoTprf9:J;k&2ISQ}N>}x-ySQDTE 'iy*$({naB@SB#ul<%XjJ!(.`0&r6WJM { ŒS/)ɗ<$m!_T9Т}.baXJ86I9&)UvR&%X~YS ;?/RmI/6G;O08.n˧\U2L} NߠfamG I{ج;Gf#;ܷY]+4%t߅cw(褐*w1~y=Xmn -g~sݿ?ŵlO2 /vA_1=zb-^Xyd_t> ֣y~zG*<,tJn'Lz9(FKlT$F/1->ŅD]yg<.BN\D0o+)MŏC 4lp~;t$ݱZXҢ:!Y+/LkĉbGziH$yZ?W:?GYyp2 ȕ4ҁy=ùo4:=x:6TOiE38j̝ol휏Y^e~щ2usk+ÿ*Dnm':ˑa+fd\מ̰3}>ɏCjAP mv6j{Ib֦}~[aI('>3]S›V!l`xo֊|C_s|*ug/B - 6\`,^nr ) KYu>4ʠwWSTfz1&Ip@M*p?t*U]+Ugxq OI/ppr//|TLiF4)M<{Z.@zQsR49H 81ϳr냖s*|7_rvk,M  `w{Vj T dRzD"'S ь\%z Wo WK^-W ǏsL*KQ =9GV)aPx_B%(rjisE(3Poѫ\fRUe7h%7흗E3QڟX /@{$ 4g{O_tdgQV.~.>ylڜL$"G]jWO4t2DȚ9I4K㔩ot}ugKj^-Ƈa_ψP{t G\ʵR=Nl,)؄0`,c>hQxwqK P.J}z'1Ilע"&bf}l}=Yռ2A`*kXL}v%FVX Ǘ D`D Х5F9\ t )vb""^SOq@QIm6>Ț`4滶1}ދe§K~ ?Z!\)\7NB:>J:·&GS24>p_fX,r0,'qR{gf$L|'xC<x[$օ׸R+`8yG-󁔉 pWc K`䝝/ 4H9b_y  pg EtϧXrͰ`6\t&U P# )ћP]Q1Ӿu 6g+8W&߂ Dm ^JUPvWiPj9i?S0>bڟ((>A?7O (De*HuV4 xD{߭1Va~+i[ߝZn əBMI AP D Y#YY@!ZRr$nM$nQQxi3lRG[Hz3Dd2E#,JGO&`LYi^ym -LJ8 `@xNPZXM%3`:2U2ҍ#d.8dwѿMzz}wA[l6H*9 ƛt{zۭw 5-(82b.HBFg( 8Sσ%qwQ'p$ш}H | 2Ba$R&яm 7 j TNs>q"d a~Qd,ny4}&:u x.' V&K[La븋i~B9q eTE^ n.J.Om PT#J+ZZm] -g62 KzUKg2u|=%EE(}&'&zE( qуF",`=EVe,#ȆQ AF.J8qW?Ri */H="eF=b7ܘ!SBSac7!q+ҥgZul[u7hO^( +At5bu6H/f}K99( amfg]A]Zvp>J?z|FSY5gĽ-ݔH]05@0rzA'g꯬Wqv#/"w /Fb Td{_zhWS׏/ 'H= s#64ׇ_,Ė ѻ#\L=+}l&nֈr\Ʈ T*Ն]N"Ka*ߎ\ZL;,OBO/(Ruzоpi4rI OgGG/PX(otGޫBL69c*(T7,I3pr: p6_pH.l߽P# _QN-Z@+Սi+ݘ "hB -WWw6 'PqZgKh\Z;d&Ig0cʏQXA6T= Q랪ZJ;|DP;%.C8 9W@5v-5?͓$y E3J'8}#`2DC@UD^+J [T?]ô5\^ RaڕO%V Ob%-(WVVNq-=Nk(<9&+8[HNLp-Bwj-a !_͒EX5SN9_䥎p1.*]4J+2B+:IJ]ytfFnߥơ !V}n44/ᆌ7 #Rk=pW =oWt%ڕ+r-+@ydV|d}R孲d89aL^ {g*f~!d E AhmxCEV$V$g&T,?cf逌6J'T?zqҲr 6wf1fúl񂩋!߃C] >ϱ&+pgH$gǩ ESM!p 2|oUSP{ʥ; `I}8oJ߲''Ya.˯ xTel4xcO-IbO(j|'WW#,IN=JAʌH#A{2ebw1>*C,pR,Ѵw,:*s7:^S]֜-Asd\\x1-w#Mqpn >[զ!OŲ%u ` Go9Ss|~z0=u: \M@^inS0boy1 꼼⥵A-)GG .Z)}RoɁL5wg]w'X=r5BմH^|1'19N3? D{EדkR:3ߠм]ޱh44o+s ՗FD%|9QF*Tq4 8iU\'oQgw\ u@~ޅMLE A(mT>kȟ\MV[B6*}1/6S ;=C^zv9M1Q=2?]Ɂ,U ($9Fn) &^w~J& 5+'^6C*yF$v☉-CתT/weF8 |>#B9՟rOyT e=1Vt&n2(?BS9˳-EK~5B y45}=M >k /ji#b9KR 9=>JP+hߌL̷Pٸ86:/1͡gsl2s͘B/!b3ׯX"ʋ|ZαT_<7O/C2 $C!8 Ghy[B PKZsH1cqA4Bnuvola/128x128/apps/knode.pngUT fAPQux y4T?~g3Xbc ɾ3dk("{vf!}*{%aDd }z=z=xs]ߊ:6it8C|jWE;?g1:߷\w3qS\um3&t5!BC@ :S痯2Sp$ \UPF&2`9 }OM}eLioW&ߙtޭ>VԤ&]bf~>>;'ܷaK,ei֯>;9>b/*~x2̋!^}덿h5 Ta/W;&:J>~DS"O{vx!̂'k,ÇTTϞUd]re>S3(Ed62ٳ㓣hs$@ydkRLj*zxGnuquI+Bpո9sW7 ;EEyx]@E2v&3Р@;>?9+\jTB610_Gss# >SN"ee1Dްlmn Jl'tMɟgg%$iX5RKB fl ekb! S  ^НlP]}!=T*ByL…-1s\&)GXoAJ!ʵA8yGi;X/^} I?64Ȅj23{nߓ)-"&`J|sM$!_ ^]RF\MR @4ɒG$Ta^4겿nCu X錌 v˗5NI 8|q$ sp0<>))`Z߅>> :g؅-VF X`Ӵ'aaT|2\X~)kjSW;Q{<]'[G>T?UUR")kL4UUW:VF]$Z)qok\5X[Of-n;;9uq>wnS"&) lL | 5$΋c`,IRCeƾ/\|r 3Yܐw:vu2{*z# ٿAepzv]ӈcDe#xQրa斞^|ft m8_J@u3=~ &3] 7ڀ,e=n:V_L! }jR(M瑊>g8ifݒeτxpĿPvڍuHK߅ճDz{Z:U2m3jc!(&-햔HrM?߁!SquheH յu Q#UF]gPOL툢">Ҏ f |pUp~OÞteO x\\iR7ItFT:'dRW)Wd CsDMV3_Ȓ-/,~U HfN6Ϻⵋ ~ 8*SEΪ̋G9nZ#*E "s"Hqel\nG^Ըh' « ܐ^ @w ۠hމSĽ6)j nT ?:ee6E%=[䧔if/E[lrfhdbaGr7D-֭h _)a&„B+o\!^3ro{NƅwD<5g5>GLgu$.nw'UPbcP{'5PK;֘FjY3n|Zjg!u:;M.ۆ̵WraGDXl(ZD{D)%Ho?n0\r2"(,n Ey-苾Rx˞|[+ 66nR* GMj79-]؈wjmPw#1fe+!"z[O+_밹Qٺ,FSKlQGB?+Ԉ^|V)dq+ I}n6qq̒mv|u)'סi%׍.?(emba" ۧK #_WYv.|_7ewuFl QYe1kGM\|M˩'X ,}BG^/VĶa n%FlrOW&_TjK"O^ċrlhߐB]Hm@a;&X>P>+o/E0AC,O5?~BA:˗2A ho!J?;/R$ AP[wE4se_<{^Z~B VJwQRÛ'򩬦j)*m R]+wpYSgbh\6vq5>p.{x/Lq"z߯C8Ѧ%O{{^@ˮd,\gGbc4d K[<#iyYnb<k*horeΈ#d;\)_G nέ)T)|^fO0DK&@9*3O>Ngnrި8(p hm&. xz4T0x r'[c^Nb5EYW#O^(Y ^ p{p%eG,*NIiw&~w,B0-_Ϸ˱z$ic}-AESFЕ"@9PT6-@:,X㰯JWQ[MQMUQEﺔʇ+sQ-d?GJ?^ə ^uŅuftPw WIPDŽ _UfBb9wϗOZÉ1 3 MX1}nqOſ3;1PϡAӎ#YĒXH:A4i a%N >#+d{9d6y&\{[Tqox/0A>ML? Bo \jiy/4I`( `$Ws&l<}v G.<*$ lJԣ} qOBAbso'ymVQ$i;FLٺ๐IP5$g:C#lXoRNQkg_a13| nǡ.›#Q JWkCn뾸8I_w"ͅF#vY[+Jht6C唩}?ad {P$âW'D㟗5ܵM ud \sg@b`q[W 1_^Q#[u:>CXŦ,(#?m^R2җx`Ϫ*20f*?,f?Ѣ_v=׬~XS?x8Ldcpqm4L*?4U]Deq]fn<-. 1__z-_ƋbɗC =éa{`5;̣Wdf¢'PjĎP:xP D}RJQERiڦY>-M|뜑ka}S#}Yt0E4_f0ot97M/?qV7%FF[CERLpQ`,tk믨D{V7tqbbό iM5N\n Xbj\տ+_C>~;0$c 1LG gvT?SN >zYi{Haݘ?hk֟mJmb#vaNw *:S&Kn~Ȑ5kiTcV׀2y/gP892 ,ѶYiu%9of>e\ S<s6T֝[GuZ^>gi~sKJzﵶNEZ0n~ 3n;9n {ܦ8oո*0-WBu"5bs[U\/zͱ+g3h\ e{6,@*^fo%$LW=-SqY|2,c>ʆ+Ҭq]ABux;ĤYteq-# j64]_B%~ȸ30#Dk*h3>@0zIJDINX3&5?:7f59٥L?cV&40wiP18|MΩfleB©'>됍m;eE].y"ef~ǯú 2 rV=n0>0%'~Y}C:SןJI:xʾtdžFUvǯJˡ烷QEEh (88qsՔU4'7e-f<"JOqT:6KL oU4I;uB'Gc]Q6"g0j> 7z\Q.\+뼍Cb Vr_ Q+4/mpXCo(]1nAKH()RE5w|AQ 926LMu=cEK 5n$Tuݽ|b . ? n@jp@&R}^L!?n<="eS3[weOo^]}r#bO/cdXj} v!!7;\F*He}:^F4_|%m)#AhپFKj+|sBj~`j4]:]5U֞e߉?l(.?T (H^ĸǞKaqb{0m=Qr?<ɾeĵ'xIM k^~`)PuaB7O\ϣ/UsH5ȸ|=VZ+ T[@=_aWa4HMUqX|xP8Jم5i\J8oe|RG`Vd}E9[L%8齜WR4B BL,69 !?aJsinb7..QC6vxenJV'}1" ־{0h[Hz·/،0^HuK9ha ]̞*q DH^V{ïe%U'{*V2{|>e3:5= Pi)'W#=mjp_xj`LvJ] aȭʼ}TU0ªG0MuT<7cq`ɩOy.b;31nVwNHZ>zWvZQp>y@CroCrpzM,DP4trtugkGs=\lvHZ]~A @(Ro Dؖ"]cefL޻y\-ni7g C޷gi p{ȃǶ{ a]5Y[{i顱ΖnJF)ԓ2vZ ezJ\*mmDwTt4?ZD3^'v'5Wj |mZ(\j6ܡ^ͫt6څSI2#/'k )0.%^Vɕ$p] lr6\to t5ޜ"iX. B\֎.\fFvlRIxA6Lҵ%'l[?:uWq G~c߁ß` Ng`Iww_Zxq^ $ɮ4ʾoݷISFBGXXZpNԛҖ1_u=t#rt,7iςEdevJ՟׮:٠`N~7dteF؆óشXwSs{̥/6L.^/0H-Xuw.vg1kcb%$wQ3m/SI_nh}ytNF`28oLlZZvx8LsH/Kq%E/TU(^2-;1⺊Uiʒ$I;;}.b[ qh&e;cYǐ#fMlr\oa[[+MCݛ|UڧLtQQwArIaWg#F,{YÔ1h6Wm] *[_?|1`"NEE*BmeY[lп nBU0`JgJ񍭴}]1֢7}PgyNyD6_9kP- gԶMO S :fi. 1ɭ$h3% 3Z`Z{2&M gxĦK+S lI+nBfi@5AOKSxzxSD=DVfzj~lᯧ;#ZG_:bE}+ַ=pmEbbu7lpc(p)s=62}t"u,0  DO`6i'm3P̏J`)*ꋏ`rF{朷^]~.jޑ=J$PG*nVڹ9v#:<>jK^NyXZC'9eb* Jȸi!Fz}Qw捡M,ɠ0`@Ϊ{ds(G,2 -y'/nfFxXp]cHLboB.bxs&<%+\bu|e{`i:L7 rrw]3 {ӔSq#gulɐy GB=7_c{/yMbjQi)p @WN`&e,-/W=[253ebz;~Yhzo6C[1? EN\+N닇|0k DPFBʵ T-A&UV|^ ^rP|KԢɇܠ I@ha5{0%"),i}xKnɌ=.Fӄ?isn7isr*WY3rAt?wATPvo 7w=m!+,OMYϐ<Fv }}zbjCqHhs%"80T3-.[bVPoqT Ԥ=iZ,Y!c!dSî0=s+lmԝ\|}2дKjIϐϤ ,T+lIV`A˗qE"N%k~MVlub.`Xկ߿pAf}m- "sH]E=0-PwC.6 S,sǨk0Yjr6}yLqbZjJƒNbxye6z|w@1tV-Yo$#(?1bS%G׾ı`d+" T8\3)->3+Aj]&91ww Ƚ }+QCwfb _ۺUM]1ݛNNiѦ ͒cƉKOQh"҇2Es?@h-] ۆ%zDmD MA$|4(ș 5󎴺5J/: C͎>i9D,K|ch12jDM9w2HJ Zpl>s\Kn=4™xe>doZNUPٔStGPs`xMT&9 @[pI(˺0l0^fN9s *{ ?9 _z8QVTrN69.G;?Q`Q/brGlՍp޹P2AZ##ZIP]>2[ߖʿ j" M7by!PiIJMd%Z5dbuT/M.m=Aϑ[0{ mi rkѮa/llet^0n#oY֒TII&`/6}}L,!Q"ܤGmYsȾaIm8(x7m*Hw5wJ%#Gq^N3Yч@ј4M#Kۗ\b}N~\EHBI/k,ho~-hd@<ƻfUCkMV lsme.nu^IX.̦kK_&—BݳZɢJtQ%Dl+EU# x=uWR,͊{Yj7aF}\m3u>jo%$| EߺzU\jJ5ǻ|Q ,C`#$yWp`x0LNVx<,$%ݡ%!Vw0xh2!ע qU8ăǜC\rIOqH?T2ը L6(WA*Szug=~w&Jˆ5 ?N{6-oYHpdxӈY)7-/'u7m~sdq87INy %.}\$幸]Kk`tCLJ;E:D|~+WZ"є}gAWTaCqQ񼥻BfqH^a:CIsI[񅨀+sLRѻ jo)DЁMqql"]JoF=i10Db`} j/9e˗%<iwB$:@G@ `z|xjLGt*b0AM+i~KC #W`M<"Hp0]ȗ096ؐt5cDdp1Wx@jGה0p4zܙg=jydT^aW8}|D](Cg[. a P&"yUQ&E'Ȋ N Y'CSdM<+2pbv=jwk mA0; 8<6jt!8અOhҢG2$L2ۜմ٤HDsơρFΉ?ȡ`pk mvȢuj>z@oO=b⟲ CQQ6&J)(/3-*k_K3D}2%"ƫ2|$&&1|mwn6/Kƺ) obm`]k53Ҁ3y@=pj%^`*_S**|F_L I`XkH$6O _nQCMB 4vϐ2XA[լ;XJRf(J-o2Iz=1!Γ[NQud)#@UoKMFD F&0JWktUn{AfI/)}"QtET#АlG  3ygjZ]cmAaֿ&GR `ӡW$yM<R>ŠCoIf)uUu^*lj ioVܓu6b{&(Z{Rm$gM{1:6H+:uo33kGQ7/I~2Hd0Y .$OLj} , iq]-X[_>GɎ+0CUM͟]xs+OBYSruW`!}дɽǝ@q<\s>9=Q-C:ߙrN!| |!}tղ~J~)ZoE+PHeeDYWGIurdl3Y;TfDccȞNu TXQİ>}ڃ }#V%贋 F#7팽f̫S:)UE7qzBildM`/tHxct@ 5|GcaK_x|*\[ߖR€mIIsŋ, .wggK^'/ZT0ؙ6/ woUT( s֍4`\[:C@L| mJSw>zvX~^vCY vLsדoY\ Ďxp+x80YPDw28; B ЪAZ@Pl`ɮ`Q*gưr^_, mt=J &Xl  CnUD"^a'z9 qt3|L 6 VM d9c eMg-yILD(EPFFGh=sbIwlͣJguJ)D\ʀ C&nS֚[hIp!Rf:Uo/.OIkzɝmk#e\ oZALW#N](^9>BJK4@_DQd 0 f{p9) <!CQ~Rd˗VɻI6^TSO^v Ѐ9a43\1P0yy7X8L8- rZj/H.<PAhg]wՐzyc~cSs Q)(lHT&ǢM@% :7DMlA\ pԒl8* $7,xtxhR9E;9;uuæPspB?9Q-@1F|YKM5r:c8^FcV䧩 _jİN8/'EYukUc! V5w7/F tq Y*!ꧽ$U %Ne8ebd3֏ W`IaSWj?Vhk=OVHHGWImFֽ a=.צ+? ά&?wL3m9͎L}#egDO6TNm-%1}uXǡ"Qcܾ7sׇ_s~th}FA/;lf7hC:XmL]nlnct~-s<:R\@èeűZhz,3L؉ HVJK/Ws@2KPQI7{c AqȆA󝎤ݱŏ.Yi,\iN]-)efw~x*zs`*~(`tW/+ |WҪäB{t*bNxOMʆ;f*ptè۹Oz`6W5%8X:;aVOٳ<S2M91!W/XV^ֱ"y8c}-6[-썧Uλ0傧Xޜ ŷ^>g}C|X'KCr j|aL0L\#ήVݼZhf#fNVfEa,okGlȇSl?_;~Z0 Lߙ{%$] s9#;iP5c璤+^`CԧucHl:n* bLY(kX n(wNm,͕r8VzgR-R|{|主ɇ;qZrWzrʻ?u7ƚHC 9Q۱~17ew5bPvu4{A Kăd?7海/d@u;b:7yOLe;kqa l :'mX*ߛqRiQ?|d wO 9^|"|bM6n~RCz$ěfKM4?'b-X+`fUkԼEimtsS/ll E%Od=d<3|n* ۈA=1_΅:Ukv5:P0'cƽS,j2{櫃tX6xXyۚQ(Kpɸ{ri1 `pQ>4GVe =@%h6X_1R'h8wI2ώFZ( .~:xG%5&K3`fSQX7J7GfhM #'饁9-Zs*0% Z!(z?& ݫz_P]pʹWO@jFB˳UDjȢ30xoGmF_UzJMQ-fKmVQ0El}:}IjA L8 |uNyap}H<7W>A|<}@ e1Ma \.ԎWn TY>[/.v85שϤ zN*ͻ o~UE@^Jz!]&W}l|Ցzd.=.wusNܶJPë^9?=OϤ9$*z}OF*f־dYj0 3v3П/޹ i[aL!kBnZt%[9DN.&^ɒ}*5 |hȯtO" {&m?wL D=A^Տftv٪*MK}Qg24\%[0?5o,IƦiT!oگFZ (?x, fĺ(mS)`EiH^n: 3CPOi7彅uS@T~jnML顓oEE^+Q{'âS*YWA$VV\}G'zLF7GG]EWB& kx_.Ti.$w>"4DQ֖:P1p?.,^Wl,!W LwknZ_,0bNbk+yzc?ZQ'Ax u)}0(ksZPcZ: HNSX~Fn0a5,ENXr*s"o@\u,-ԣx {K[<`-7]{}4TL 0 ۧ&Dv(Y5 XڃE0KyGt`ہϱfz@Ql{.hx[l<|Ȋ5A?@Y!1ޤP3:lw;Y+\ x{"#e8.yUHqÒene~L.ҘxQ[9S3 6:- {)ERvԈ4'?(m2Biw7!X5(M'tTUfI) 3)0Jʄ)P/A欅AuN(^&*Ћ4 Ӕc;bXοK FNNŬK>YDw\r N}. [oip5Ф4F/J~`v'LÒ'.qfwn e ]' &0; #Weג\64zBR*;<»(uFՅ(K۝+hbap="äv8;!.e@!n@Tc\1eaaƥhSs.zÍVEdஈ7;#>P;zv.ठ*58N$oEp9Pm^ -ǔ+ӭN•*~&'jKS͏ i K-x#V`2xV4 HƦ.Qr]Q|8ufxj / La7J뇜Ro`B1j( 2)'3sY[]||#"UtU@F'{ S,['g(@ΠC2:@byI t!nш4EJ@*$IjeXakx0Rof2.58yISrX 0AIPNL:&/*ԛ(;\Ԣٌ}NΊJdf[ F,鎠ihEʙ(9Õn-H\4 Vu#ɤ|>@1N@aUh;zA7Lr'Z અ]@9ع@=D )vW2{GWDmaɶk{Iihc%9OXN$ [(TUW3l|5X4PK`fVQKawTn**2/Z!i&VO[cx/yF~Gzֺ55+H̤sD=7<#asuٟ5\> !c84٪6i)[AfwO[6 J2@`-A6AG q'^Z!> DjiVN@D2˓(/T|BՕR>b0{5e9+&h@+V#p-R(LU.?(mw7S"T|hl݀/7E87@m%,[U>jN|(8E `nhLGe7j r5qRk yՎ2ԭ կm TwHY&(~ԅ;I `gw! d0l NQv0+v)lVÍjx˯jXT]T :w'b~׎|Ioɫ;ĄXf  \wNkD`\70Fޡ36bVzڮAos( icLe3gWLG"U(+K#6=TrPĨj׷ULaeӛk +O"Ś"ʏ` Ixy>36 1K9L=#\,yJ/@zi^{j=h& cPT|D3n, LOutQ4^m)Ƅ,CF|ۤ,E8)݃Uz4uv!~dѓrre bF!bz nh3ꇶ%N.=iNa?e-Wf-x W+uOՐ~6*morG3#=卭), u:Wʚ꒧u7y+9%>vocN/䑯J*p 9?yƋ 'u;;rJ?z]{;'MDhN IC=4? n ٮ';uMsȕD qy[hBab{JAH[arc~=6O4hfqRu:'0M8,͠VڳCղ)QZ.a~%4HҒ[K.0dܖvJDƒ,1<z8 Ed;jPyF\RݲR ^270a_X>eVY[?~J2෵nHpG ϪZCPѬVQ\! >/EsKt[њ o[;;!mq@MJo9 s(uӾ{vaHVK>`c*x:]m GM)׃NOȸ-ú7FD卺 l_Jփ뚬G:׶6z1IHí^2 VxGϮ4Y6ۙFp!k/kdeMG=";bx(@`\e@Y$4+PKfG1.+LMnuvola/128x128/apps/knotify.pngUT p|eAPQux {8?~`nl#Y*lC(r)(S*#su$R&a{?׎<<v=_[uPm@!na'x u3N ~.?%LP#£Dm <6xRwKr23JXH X(V .^NhP 5 RiYGU^&&#CV D]w=#&ߎn4G-ݎo\9[$…C0S' lJEUӁlO9"AQ$|ul\9@ҙ8i5@1>p8{=jd H "7סGEPMAP"a+FsaO|M~ 2id)F`'6r2+F`f{ fkўy`-[_+_3*3oO1@N5)!'#2: P}wtYY i3"&ӡ/yxK5Ƶ+j.o!-ix0_mV^#o0Mo:Cog);Q:~]S\4s4y~n([x"y.RƬ <.i'l&@R硞=ip \ϳvd7X\ntO?@pI4vHisrhtbjȼ}! ~R !aMD[2Θ@}lIQ wT!y4lBMW| ’"n fWgi$̰qr eFH(I**K$)_x->1Ǧ;3!h* DC)pɶ畅| F\4a"u>v'CF@ac4?Hi ep\FtyrW Ds2DBBH'xnV?$sCQ'l*k=$&lEd~ިX"Zy;x@Dߡp󏂿7\9mu|QIL6< m̗0ZlE7Iy+a:sp3M!p>Dq>uq9YWG)iq'xL|"A:K9Uxn c̀k)jV )L&+"&lHK#|RˢA'ږ vJQpK09/–󝽏|*Y(Gg|Ҥz \$7Hr<=2E.埴0ĺA&Kv[RUm 7{A9`d.Ŗߍۅ|hY\}g<JM (kB7Z_B \_LO )Xgg1;#6Rj0'aCXx%P("OέPBmqz9-8lA|7"<c׍igkcU|"H*HZY8uVc<d1hM1=# H垡{ҽ턹($ ] Vva+#~õsvc(C`dg*sZ2WM_vXrL V`d xhQϩ =Dl'FnB¦g"P<*a(f/X WҠC&;{Pr"?#=m38C(s"/e3q{kja/Szpx$ؾnߤ >oVb 5LL|ʳa &k eDd[vDg\ήyBLс=S[_zsfRp0SaD,Ck >Р?L+q;UΘz_fL= }Gΐht Kr,f1ƷZ"[sʽ{izD˜EW\ gpXm<o֥K=aCMqDj,ˈb˅&"W"T?]N:AkN2Mh ǀ7,t/(y0ǖ DqWE6U>ҭ^"3:6#AHF72KQ HIZyfs.p CрVwS-' ğ8ZaqDރMֹD~KKf2C^#fU[% QDW/_E FE1E?o6h%e9p=VlJ6+~3-t1ȿi\f/[Yj[Q׃|7X1`{qK.ĜیJ&*wKAH;*\mu2.`0OkB w}ZY@zFX|>ʠ9(K0KsJC70TY<7OpnvW% sһeR %~݀>@.m$]ޛ`e~<_a}ucxY D?ϙ>UדBE4鉌KQ;;R 6DŽzzzyE h`4f{4Zq tZL+5E"n0fO+a mJtpX[+o!P6D)pup$_;8~YCb7i[ow|ټ1/ۉ7>= @WNIE:`g2sc]VOOP>};3ңzRʼnA e[@FӁmWԝ4f9"K:X^%7(NDsV̢]y܉5 ;О W)ۆ61:S=W^ZKlLugCq:ju#"YiYCW=1ohxT ǚ}/5>Ƚd8CWy d;&L^Ha0ȳa vdŅ]> !_֯{ ^gM[$/N?4QQԨ~^Džcpeeiv"%/tXD=DKR[`~sg|L>4m>Z}DBJda]1;]݀e=4꬀豋Ɱ4ėyxLsdsc fE5$ $dߡô(m/AkcĽqZ~Ȱ_6{[:ZO}6]آ5ݠYw Q"0̱KtHr7cs )o`'^ўWx eP"DU <6no7Nޅ+aX0+DAx| EK#+=W5F3`kצN|& &gR7O aZё$;rbƀpo?cyɽBOG$ҶGt+MTqqMl>3znUz)r?snCPx{yzPD JW◍.?܊!9Thڨ `}̖4( ڴ\듩qkxz_# jehaJNfUHѸMgT5P'xӱ kp:IͰr{ bF#a݂5o(ːFgxXsLƣ@;qؽ_I?b!;8t^X sG4gm N;;M'b&>[Iԗp]>-Po*#?+;v]rႋ9Z'_K!z#/{{ȤS}(J^om Z$Cwڢ'hf,ErYˍ惧Sϭ= _w6%q:4s)s)["A}lxyE4Awܲ#/T 2>2uf 0MugpM^o^fH $swNa*x6rskz#t&0p:9 4>SS͛a4y\ ?~,4^R2oWIѯ~W`#U;$0MP҄oOk l_(xM`;S@l s "z yiƲlĭpnju᫇;e}3$~yh>=?GZ |B" m^>s{3gfpʐlj҄ۢ$2mK:DJ%p⵿R M UxzX)h4ƟhK6A:C}; >_d\zYk6U_a~wɴť0c6\/[cM+ ]|j:HWetL8w/DFyt JCn#%*Mj nsHwB@㳈y?sӝ ^(s/'@q7x#P o!PPgJI1c+ 6QV YbRHtMêBXb+(/ ,JW&ͨ5UJ R">QÇ">AkZj/s޹QS _L?)Ri]>S\\@Аa?p͔ɾ-!DDI$rOO{qDTWc=+CiKRlNMq_w6ʂ]S JZȤ̢^8/Zdz"wLazә?sC:Uf*QսURXD[i=xP#1~XW2dhw}۠Z; 'C.g"+;X5s~WffJĸqjqBʹƴ{t7rP^y=2'Y4bSHEO[$҇&v sw!A?rKLoӢq`IFH*8NeAo =gϟ09Gh#`M y)]%Х+&"el@c^ʶӋM8 >ypKt;ÕpE I#zcF,(<Ԍ7O NT^E'st ZUph }`nVFR%6߽kʩzX&b sv آjmz6uޝZIs1 F Ubj>Ɠa%BH! < ڱ,s:i+ ǓZ:v WA-wE)3#.q;8an-;5"±'  .Nم|AةNxb/6u}L@8)H2ZYǤrRZ$r>ڸғ (8#B<8rjUmJ$-SکwI'DPn-|>N@L!' vl$b @J/HYpXWPIio/ \L{HA=˼WS~ȸޕy=Q1`Ξ5;ܠN2-S{t7;Zz+y6Gw=EH&n]50%;phIS={~}%#$sq7xA!ۨ⑖JX7=mIZ(rU/.!qݐɻu*wF򊀉_BlՂ ԄVLMG _za<"WmQv ,Ŀ4qUPj)2JMx|,* zUg+SvnPs x`WESq`ACCjh§FGby7?d+6)ndt‹B$^'(Y6-?+_ s iz ;m{ #̾"f{g.;MN@i Orw^ Cye f֤R⇞Ъrg1{ZR S&cxoj+0Zwj|eR{xtLxdWv#?I}smpNUin4i+tLeSfc>Hg0з6X1 Y%AjmwC>V1Nů|{|Mk:,4lb/Jp=c<Х[ ;a6 &LX:s*,Nf؇T`Z+AoAwx#Sj0[Cn#cLS]cSrid̸n3d? y }$HѴHrBaX)G 5Faakr3n`PѝW l@k7Bz*~!P<~Oԅˢ=`Ϝl(ؾ^Q{&Q<b (~=EvgSkMcbGg3pH;8pPR3MuJȄsz(|'\, ^t_m&;zԤV"?mhl}F}ېJ4ӱAO}W<~9WHPCX"}}G pwnG.ɡUĜ7T-WAFL^Z lMRU'VZy-ʕE{k%9bp ^r,`ϏK]Ҽ`w0WY4mvB]o@ cCzQ33rW4S 3;E-n' ߁Fq>sKufbݕ\VJbZK4R^ ;)F0džz8PL/ռ`UYϣGPʯMg짖!xU&j d;8op&Q!]4^vA\R#pI̎x"L}9Z]U3jEO c?yFߎӣM$*?DY|`epEcԍ۲E߯JϠʣRl/R /33rqm72WqY^ mJu!tU]S &DM_\w_׵˝S0i/Y$ |j3#EX2LfݢTA]TJa|r 5!%J)E36^5-gRU⢞F5ʳj+eD?Y rN"^3G6󍯪|+jb.C* v`AچEW]Ρ:O.}Xoŭ?@^|v2_{Vԛ sDz^M[sxN`W4" ?}KW=Gh 3$AOX@RZezt  ꘳(f=Vɱun&{syg qVɱdBiziJ("'Y=zğ~+}_h[ sbL ?6#rJ뾦DB c@ꨣo>$q34?Ƌ=Q.gtÜKU\̀iS-b%[]9F4' sDcI9dcRJh4ݜNJEJsL$Ijxu{-pɯ! ~nUކ5zr"z~=LD2b d$&7yQEFn4  /Fdw$lP"Ⱒ5]h`1z샆ԕk>\5ʸ2klx'[FT;lНlN<ÛDz[=]HJ<[0srZ99'a˩g@ё$NnTăoa)/㛛Յ /VI57Y~cs]߮9J"aՅJ'ؐ/? (©)g# ٜ/\.%7:]6ܝFd¥jzȞkA&xvrz*=`?2Z݃2 G+?" lË.BF(Ů9|q$Q+$2LY5KG4jw/n?h&Na: Ak 11L:=WiQ)B Cp ~"++ӳⰐ9j1c;A"\(Sfs>*^_ W=Kj7j> ϴS#LmY!r#g !E6x]dܰ?a}Ɓ.mpǼ(|%ί]>+3ftx!} JWhU]Is y\wԇ)_𭝛c3'۰k`gL779-\"<xG9=ވƼmnlPd3Yʏ(Z\ S!Àf yrr{fiI+F1 %~Ch e @o= _ r\^L0Es{*iqwuRqFwpO3NQj8GAx^_ bb8V9 +64%6sI.+>l*z sD< cDjVOdDi:F'hw>P܈={*ƍvR>3z}V_>2)F}1)>S6gkpnAVjB=+5<w[V4m՚ߔd^>1A rvQ*Y`HgMxSnToV@CGlzy.F{p5#~nud~'x3Mm:(AYT3nz>;Y=o `B@C!x{ 夑rC8U t2kv G#L42X6/ΰ섒+)QBASkDVV3!WS/{z?(~ckkKC&Lte g~_R pH ٌC}h\`T\݀gY!֮͡bza}crqdtޞGbPɌ2&F]~~ uoqE0^Q栨JU~P:% %/e$wc+3Or^AC}wϹ"һ/z#%[kڰ6rdyTM.OY-q yyH) ]ץ ~KiFkޛKcxwETge @=Y3HS!dC"$RxE o̶xc+A|6Sl&rKnCaRes`d#Ϋ` יaoNvangƞfZ51JwFa* O* cBDg"O\:!i9qqlA C@8b ۿ3?+n!툋 JU5HP񄜕<]ۀ qpI6 u|\~cGd cnf}? 6 ح_̍s~Wq ؉~?M'r2C0VcO}! k)(R\?]tzJ?K $"Kyk0\-ʅ7/WiI#:!ACZBSWE^UB[,~ 1;23;;I[zY^[љ8m~{q9?9u

    ƅ|l>cM/z⼏j l@$9)Dɑ1B,ч@mmFɸr9mx+-'/ Upc` y/%Zvl;T9ϰ ZsE auL0W+^72OW }0y)r)hϺgį |.--T8I tvrzIskɉo387SIտ_|2@+@yPcm:kYuZ!ײD{NI{'szb] U".4ɘ"[a#'@D2+tۛg衜"o/ƊZޮCzs8溉W's W&^,IF2nM&i(qlA^} ƮZ`\C1 ځoF]cJ-hȬG$}]X4Lu^va&Ǣ|E aa{09gW{<ܩ,qK X͔z.1Mzf-,{EhGpcޞ ZhܛQZx*e0qAsljԢ纤D~X^Yo^M~Fq"y\`w: 2C+ ȇ.@<B%mtk˲ОH/5?Nv1 ˦f H0vʨrnܳvK(wN]˾)N+h[=h%':Ay=Xn3=^7UxCg%chHķYHPi6 Ysc:jESzؽ B!?Akn%aZ^ 6wHë1Y= +H1ނ8\ŔT2Våy,zp*Χ qIcT(|>t)%aS |g.4j$AxϜF> %O`/+W^t ¯ CDR>>,FpZC]"K:IU`G ó;=6Uѡ")䔚\`*"|i/Nz/V>lF G\ 2%Yֽ9ҕ)ô^F% ߭99dDsWy[NP;;[or!:Z$c*CAje^syO_oge1U i5al7:pKac2 3mj" VaO(VKE"_5 l@&>=7Fжeps؞A`aѿ$ s8_KiG,?ibif9&Fz60(s*;=skХ7rҦ|訅u*iW^tv,ӔNykW}RLNX <B^h(3h=Dg圜z`1W-;VquT1SĢb)` z]Ȟݏ = db5ޜNl@ 1,Ҳ]\1Emטcs&뼕Ea8GY'oPs!LdJ^U~YMBlP4dӟ 7%zٌC N4|8B~Ic?٦u !?p|DSwzzÆӞ )x ] xv_y).!/V9f:8*^kTj))Q:%Q7F l{R&ſaQGI\h&]']x&Bv3w?]ZaNƂ^uh |mn Q`sXDm>%ySiB1GΗ+:XM@3Z呂 "}(q?cnAn*o~u"o YFᎹ0vd9;HI:sRxn>-~HL/p)IEg/ 7*Ӗyfѻŏ&W|c8e eL9 hHԺGe̎^͠Y֡+nSF[>PW*(|{_KJFw:(YZtw~$2>Dxc jzE>sQwC^}(QYs =yUuݩ+ˉQ5g~Ǻ@\Mak\i'ˮ)SqfmL jWSu^XP!oQ @ھ*mBp#qGzpȏsTդ$i )hWOWif|DJ$[B%{#dlNgFvv-Z Pm 3|rk"զpпy :; h\ȧ]X{0<-W lܘmЙ4ׄSUfGBo>W*gswͰn JZ{aEH }{Yqto.t|14{j~uG5~ɯBқIn^59C,<̕`Ծhʅ5\| 6&ӇP94gj"$1܁\PpR0HC%Hu2|2*},1z t3/  T x)BA?v^Ձ5 pkǝ-h,Љ¢ 7BG[Z8}r~:$o~&ʨ&㿌Jf.->^=@\p&ߎ^\߸6a#cj}If.k݇@.\anxͫ}Zm[~D>43ke\>xfF}dAnì4=\I Mө<Ԛg HpBȲd"VbF\P~lj}O|Kԍ]yt } 9_+ -i=>Y,0;La  m8 eJg&1rU^4:2D:,=!5v,5G>/5ӊUNȔ:Aczu es$,l^ϑ=d66XtSBS hȥA9S5_e(yYͱ$#PDtdf?ԙ>[X ܑO6/= "tW¡3'|] sE-0/4~Z4*5X{>}N|}|'tGC"pDw#->~䧹f4&ʔ!YW7{Dx48='U Ee۰1%Kb˄C}ܗ#w0Ϩ*&HiO.I$ԌP>;"[ڳuK[F0-kGR3; %@D|KF ws҃䟱"{krPd-loǤ/)7qM-w7AVUJʲUX+Z}sԣnQo<\ [L@Fnulс9]cNJL!K ( ҹD~>.ϵlʽ-بAKK/khlqyb" O'ң%~kwc ӣBA?;&/%_zU`_j^-h|in8͸sh!`+DGX5Ar%-x}{yh3ُ) $Aw?ݤᒄQ~8\F*_1;/ ӭ~§9@gϮwScM.6n+۹"ffD6{ABfڰa57=0c}Xg&Wgp}_w޳]r'+,*ItZt xQ!BJYO Ba&Kf|y(:Sn_&ROhŚ%{>ohgy [7Tl$7Sx ΐLjCea) N|Eu//jao hj )J/]&iY'w2B9p3:/tBN.5ck'&?uhˢ#y]62Dt0RD ِ>T*sK+3?CUݾhf+\(imyr .\@^I ʠ}ozARt-&TJ=Xn;#'+_aAX}{wg5v~(:m~Ѽ!48RsIm{(ow6N֐7y$Ay rBSH"@H]qOE,zܗ |-|e5(ysBkPL2O?'o}~/_8Xy,M/kvRkM-I;P W)O<%; ~jsMӎ!u(1.vޕ<θzŒnTrW o'-հ'Qy9kFk̳,ZG_%} L K_4JaofBnxajsWsސc oi)r*\NeD=rZ?M7f` w;p=n͂қ"4,[ЏmƃFSsJ<_hD#s|V6<8Isq06p˽`Qj)^2!~V~C˒A0 p"zYL>XVޒn|::_Es`;X: % NOS1s݌>kr2=NK7x(6m2}v1LBVQƆފ9 NDBn\>be:pT!jf"5URRI(.L* +0]OMo-]v]Y'eF&D5 >y_&xb#7?ظX u;]P?;,=b)flY%AzJVm]@9WdUCᝲcF@f<B;6]3o3?4-m(xOZb4|woN%<۽{3p5v8 XmX;-PKt91c-}13nuvola/128x128/apps/kolf.pngUT gUAPQux {{9E^V]n~#߷ Rwxf.N8bWlĉq%,6$\gp`ucew1F@Qv@_DA#ҟ=y2(bsd8&5`(*(H oO䜷zx~S!Rms}t%*5hKLN73}X 1R?uen߹Chnne$cidߍA}<+56J/ 5Dو)'5*I:AOqH$Y%?'05%w3LYǗkiGݒ|9\1Cܑ݅n!؀f;+wɷ](qd v<P0I)i!!~=8#OawlZ'6i܌ u)ժe7YIתҐ:纵@!@!flxocs.8&)*vPN]EE/ H<%WYFy;H9ygᛝ0eVoBG#0آLACu’A~FGk\ %}h/MZ|NQzi5/>ֳ!2" K$ VW=2L$n5Á0֥g`43xe_qglyl^u뚩(߫Pq㬾@mfӏ#z>lD2Eg5}pNc!TB3- 6 olǛ2ss&Fz~^FuVk΂?u[ϳ tP!fƉ.F̾'č/87L9kܞnh::&Dx$6ˏ_!?~iG-ߪVn0t)9ȰԷ W 9䚽J(Wٽ ) T3el];#BWq]7N2ܝ 7[XK36QT@>u :n|Ba;Kı4tCh +G=Ψka(1 u94syDkZZehO~EA1ٌ_<[I =;!K);E,g,<6Q8  CFҌ[;+5?fznVh?xV--┓'New`ˍCKy8@K?6,-(XwEm6phJތy)]c>:{MfkDznxX0 i9A[qnx@\e}){G1㐗N SZX_Pj]ZMħ/"CI ;%b~yiR,,HGP^؜ͩw/D8"5)y m$K~/Θ=&q#~ezӼs^Uj"䛄S3û6h 7cdzWWckV_pX, a9WBy4ɹx'ep99Z̉qayQm VD~KvH:^4쪘KzBD_3bP%de2x§ 'uH:oH% GOםTu'*:}TokNPvo𕔗{7 +7XsgRO ,<07':`X/ZHHDLqj5j %"9nD/۪xYNj68Ϸ1G`s/1_2} feޚyk'Mz~o~gU~:$FkZk،=mRՐE>ܕn=`mrk+ؓqg qX!im,MT,KqZZdt*vgc\D>˴t0'4'Ml0ң6^qޒQd)gie_X/,-JiV>G-1'?;W ^Љ q+O9aP@]E ru?eNZKtA#E%1< b !^@QG kadڮcj[,eabp﹜zRP'y^ kNږZT.Z:x~dW,g#iqI{J65{4F; OR ې99i9Fx(4~:Hj_ ]Ж˽{+&2fo{nlf3kT-1=wCܽVab]$|Sܭ$A=?iYz8cGۏ[(&QE-Y?3 MCaR Pw6xW`*Ҁf@]NW Sq^ZL% / zJ/k"Q0)ׂ#]v9cU_]"5c8Ѻ4DegCVʜk4ܑQcad]%SZ/ az@~ N\7 )M]A9O,G_2(Wӌ{'xJϷOuѪUՅg\tQ{w;+؅2r"HiF?5y=%c aPܥ o#J׺ ~RXvlZsٕ KnHOrĸэ $%>d; &*sEl,JK6@n!Rǡ j; bIՅĨ;|U2]lLڶY"%efe>5q<@Z%TqμFq-V-pLT.e<^*p?AЗgGƲ ,aɼ3"y(+IY9Pz:Nam&ȢMR{[m JBogi!nz>bD2(zbyMhM_MV/EP@ݴNIetIc.k1?kzo%K=?Rg%492Qi`?@P /nz +c?FXӅa Ԝ@^j82J &:u K#Dnz @N@r3'ic ;ӠU,TncL= QDtϞqunt>ھ4kJKlBc-&Q1@`&)(GGv]69/}ݬ)6J.8 @,{$K[#VΡE+*F[i;Jڌ+c` 5a*K JbK\^?~]y61 :T# wmfw{K.ڏq{pٰum)6i XR1Y:QPjD;H~!k B| QEJsOF{X6dufqׯim{Õ:(6Gz'N&9pi_ʺ(aȀ9(3~M$Z0ڱb*B9k=Эh{:*-:+\BE=oV@ aP&EmP"6ǜuk5"e3i 4V]pe$d뮝^2.2CtyEۮ<NH9 y)GWEyVb/kkOw;L4ΓbQ1:{-^YIkkGȉȔCۅwwB޴?_D^NgfDhjJTFPWߘr4ꂈ0 Ng%5|]hAxn˲?@OfhT["%xG[֔lfM[jNڜĕ:i js㲘ݽAjD ѷVvp b`ױZ%ɸw5g#vFFDr. &"yKe7 ČI]N-0X1co>q>xl#fmkg,uq Ӑ*ALm=ZQA˼wϚ;|yՖgn2";ܔ'K\Jм"ѻ{i r2 YJs+"g% W[/rq>ue &p"Es52kgW%?oÑm5LjNzU/#OצErP>J`qG{WQRr57.EĊk=)p~C0W?r4p8ӷ@,ȕyԂv1(~!E) /,ǧ+|.B5mW]"3iK E庭xIDf=:Uny%rpf|XKa7M̬IZnǎ8zxUBUW8lJ{'t}mǘuIY#OJhy6=yTc\ Ѥv`j/xz2@& /4~~NQP^FFmX%'_GٶOHd6TBeuFalo}y)W=BjG9eQPa5PE"OZd6{8DTUdv)Kp |s/@i u 71fR:,r.C-+×P19<@J@ nʬHSZC#oxH$klHw 1P?4Ṇ2|19)s"|i!DP{\ I7IGHw KGw8SYZrg-~3 gbTđzDg'] &ì=3WctLr-1'鯅>Dqj+ f@ Du7u p304WjѲV.)3Xۡ@ŔsDhUk5. (6yjѦYCoS`C_\Z8(3uHrTq0Ah_2eY03D*c is5eU'c{K|S 9vjY?TeԦ"HaL!5-1Sv[;&O6mRP8:O*Tw S<_!P(}Kx#@"i!:(%#AlmpYu6g~7; yA5ͱ v%J9PT3$FL\h l5 v!Mػ 5`z4 Sma:Q7~|b~.6#ɿJUݽTh6qNv#_CC>#1ob[Px'E~ 3P80I'!amNHp󱲈籼SDtRDWF>t,b$T΀3Uo=LtF~/d<=nRԥ3PD2>c2s#7rWfz­TKZҊ* a@ŀ'~rLxKX%vqɪjb)s{@<]ϱηۀ I)D-O4n6]M X0ce.IىJ6Җٕ5Q>G˚xaEe&9f3/}l' N(23˖[+Hb NUeFDDOF~u,6?(GeՄ:i*h1V/yHX3PvJ ))ʱH] or`'j?\;څ5L>ZǵmCݕ/éN!߬!)6_m`;V9vrK]5pix$ܕ3yF-Ͻy^H^D@@4f&ӭLcdjH ^ztW~F]֚X 7 d70Xj0 3e_"Y`8q'$՟"bytZl'$g)p5LMX󻵇 b,Q0e=DOّZ4J5 *WRɔ] &2Մ%Hj-0x=lid})-n:X,cڲmca'A)*e MAIE/fXW(&K*sɭt\o^Eu1&7$uZO7;3Q% ͼ7ދô@l$fSvyQ\ (%{Dok=NJ"hRyK#pC#w,/HL8$ayF?X;鏞aX>Ps- A'&RiBa"Z }1C>8j(UW3sT],^%T=&z 031 ỳ}HjOO OW3.ʏ 'A^hU&?_űmR2jSiCyHYY}ox5=S$AHgYXr=`/#~OY rDp>W ~}: 51Q>{TQ!aohLc"R:w눖m2Fxu۫2|m*6m$TD:ЅʻR' T:5^lے}s/+U Su+f :~Z/$pE plyG =xV%f~Ks%2v;Wbire ['P8"C?a=LHwֽ3UlPCatJ2UB5?8Wx՜5g`^REf1)Ln7V-t2O">r~^UڋFGxZP[[:}B/RyMtPj(uIN2%&:0]q(U΂!_o5ʑ8Z;&2Vi p#Fll4֒xTe0l,m&2^aXRwrܸ_ / |1JKf\凘'CS6gϺ7""̉@-k)ai]HzxPB^_\ՏBpt/!'9"Z^R侞@9V:LH!o3K0:n?^ KVsۀctCMO#(_TUT31'ڎ ]ܸZHke3P3%AGGP6M|C f!J/iJ6Է8pJA;z;ۚK!9=ьW:1TTK23]|J tYYGpȉ ;t!>y/{_,- IsTy Ctf|(ZC\U_=A+wgcI)He}3@ 퀨l#5TF/z3KDW,g=Z iTZtnO&l:/26$R* Cu`PӿjX2}W +m0Y*83i ӽ33v6HD*E{ZPeKSXE*qkJZm¯|L$cƙu.D,.~Z7Ap~b ˳<zҧCRC GB$ {Oa6O* 1}inԯ]hnmFl~ ]C\UYZ(1(Eܐj+y첊%nYNCm ov$yd4 vLB_RCAw;5,Ag!QԴz=L{AM;۞9R*a>U(^F+𷰻.qdPaHVּ5ykϹ|CƑ*عa+-k%: ۫oVg<ǝv̽9?gB1(Ұ|ZpK!==!T#qH$XN["eb%C#쫆=͒8|]T+WCqVbMm|Sk )M]e#YzO'?*ƭ];dm$G~1IimRJ\^0QZo&OOb ;0os9X/'fKZhD8 !@_ed?mum>8~R[(2%> - (Na҈x C)AwjQtO]dk d@9K=۴%Hp4mGVU$C,e67{AylfG_ /u eIӊd TXv95 AEAf\~+aqX¯#4SR Җ=VglX[ps R}BGwgI3]B0B$[H*6c[ "ۨؔCATR['S7qj0 "8[J:ޜ9<0Mv62-tQSuM{)hܚڷzݵBVW|28B,M=ƹ0;1{TS! himi9_{ZݾppʯŹd9H>s1k0fJ[Oz_2 ԴEa@؅PK7 N1ԣfCE#nuvola/128x128/apps/kolourpaint.pngUT mAPQux wX]N )0)@((: R$!@QB`EETP;J P)O++ɔ}}޾Y^VC-.;W̿o jܹAFҶVxW]1GZXLH8iaɇ;Ue mwҧTJ$f`7 a9w8N: eauҶSFkas\y5zy g{=xR nC S" Oz¿2`m?̢\vT%֘hh8]6LڠXz~6~*R[ ޸Ge`\Lse}݊gZ 9ekc@[O8H_/ te7Z MZnRp:8A-'1eop8 PeiJ>>Voәs.NNCa#X\y}8HV֓;Hy]m w*lb|t,^Η߱j] 7R wzbV"ʆAm 1Ҁʲ~ᓾvFO5S_6/{Cݩ^[_k 6& 6OG Cmg6E*R" "uu@6|Gݕix{&fJ&0ٓ`Vx?Ɔ+s  RE=(1m hom,Zܵ4'{})g ! m3Cu{_oIQZ'VP0zuza]ǹw>]"[";*i[*S)2Ѷ[(g*]tH 4mX|T_7Ddi" q8~w8k%t1rA=7HBxwOY+t$q.̖g[ Ǩ/Ҙr%xD[L#jz:/\&~E"]>. p̽ph BW6%K=TG.8@6˴jj"SrtoBe: *ލ;5t$uB9mDfaWQU: RGGZ+]~Ouq%M[-bgX6N䥌gb|z:`1L!z7W+֫Q>z>= mvi,|JY{}[7rx߁No>򖚂zod}> )ڎZ 7CU Gr aIT}wgd, ƩH-˟-=7#V|4vBE R >&fG35r>w_ё8+\$ @/qƾvT i45u#"wXx5as8r=x83k .jѼ:K.!(f*}I#a=sY`lZ FN3"be|u~!V0||g8b|@qmm`bi'oYXNAmY*ߓlf8eZLՙ#5dFUjiIs\s=%cuE{]j tg *ZU]*)ӵf1U*Uoz0;|q?55O{>Tlż$4O::ĥrTxйT?8YM?'>r1T]yλV/{ oû^> w2{zoWԉp6Hgd $)-;Lxv,)*Y;\a]>*mөIEts1 ALkBEiЄSW][H 1'xsE`@Z0C-kp̙K0n}b*W8}sxWU}}_#ϿlMߗJ{Q Kޚ*hjTzx`=ˌf _GYȂ)&2,V#ltl+=#6sYZI&/Y}U'歳#)2,2[넙uEO8\ mDN MskN_>DO\7YOdn'!&^4"|^:=2D缟ra9^6mZER zB=6:ej$2'B<߀tX4ep˷R!D$ߵ&Ȍʨ-|nZ̖FDV @6bUW+"|9_+?C/^R>oO^&N"!ٝ2"ANHη$#K<^ Y<>@h'Mqn332vgJ`?2NR|?3u`^Tn?H\v5'wmMܵQMr*z,Rueg&fg>8'¬wWg=.'hHԈUPj0g=5 ư6ЏORF~,st8wr~CAW(9/ ]#<'NEdpw?oPfCa/Mץ ;C2tV}{O{vL"Xu]͠*EbQ,:3դLh{|b+W\uOmO^1=KɅejjm'\]̐.2*ƫFy1;6bϨ{:M%g g 'w2UKӎ|(H"  (r{` :5Mݵ=\W5۬WX~15!k ʵ^bp=bw 47vEM`@,v6DO)y\s0UF(5zPb>ȡW*ƚt iఔ[AhicrUr1bltnŢDMHI(p%gX s@~ ?#}"x⺢0?PW)WWHe~PJ^}[e\&YM=w%hFz F^K-)3 C~m nZl Xnt+Ю+5`*<=:986*cHzHڈ@B1쫈 CԤL 1ܱa0 &Y-@_n_;6N-lBZ Z$ގq`HGsRF)\%+}x/LXS6#BwomKbu B9V(QO3W7+Zn[ t,yAZSxs@TM-@Ktot0RpIo{8C#V=_-R`[&#!aקuV܌y*|_/%s!7K/.[RZ.l7M[],AimY+nJ.|Ej.׭c@^"p|,׮c2EpԹe ):v.=Si6_Q>3\NH fXGjƸ Im^(i`?R ĸ7WQk0r=kI $uHj :z ݄e*I,uXم6P N,_{K ̬zoR|1+_e- )Ns!D4#?n]!2#QGiczW}$ U'Jg?kIVZǫBm 313anl7Yd[OC}}&daen2]^f\۶J[$*2ʨܪJ=_[To,F_C:cUrl ۘla],A||QyiUu4381,4;!v+J im' FTP X^|\kt'9TFI;bZz}UwIw3w~T3q@jp qvlbmqoMncκ\FG"QWS/v؀mXy`W]~74XlѲn9"vW~E#3_g?~i!E8r%9B&:3?51{Ieb"ˆp)/TSѾhܺ}:r+]$я|o4b˽|Bb˦~0a4Op!>tzΎjD`p #Ai IˎGrKLV'7#Y9J6|X^ >z6rj`}ߖwm*mGuP's N3c4Wݪ;F8o7'Y zh""m&m $?&{ F*(3%h[eWL~I_D/eJm%]ǽU;i èt0FTWq{ln᤹SX]Odܐo}Fp!ak]{;4L#J4nB>|l L_s)Hs1v!U{7MEzO:> 3+E1.zҨ\оe!wOX^ʆ< H2"bg7u{\vu<"~".Npni=s*Ujcd#)#'0]5njoNғc0ㆭGL*>?k24w2/ad"3lNe 9\w҉&'6Vv~>V̩n Tw^qbƙ͠Z6Ih?keVB=>2;Oܹ93E+`w#ZWx6?<-2l~">h YH'I+:o6ܸǿ#*Kv:lG0 {Ob]PE hi .?zN5PK0Jh}кfRt+i]X'zIy¢v3Kxٵ>mkWWLE#xYjW| & l2ec=:fpH@#66.^L.z;[zѿjgyKfN#1c'/˂<-R)L9WikˣrR//t0}$䶲I-MПދBhw[|~(S*(~(`GT8M|>i\y7uyHQ|6b$\WE]@ 7}rJzrH-w7UJ? +I qWI h[K+e3ucDeō%p2IwfжM* v}c/xC&lB+HH%~ րP R$V屰o"aI`C?8OH[:{x]mh+gF]"KQuOQ3oeɳ>IvFcVnύk;'Ra)ն`a^DZ2]Ka: 43M%iZQ|X18Vv* GY ˭ŎP3br!'9O8a']徭fg*["^ CSQil@n-8cFW}4M݄g]3zxgLg]R_$_u6!}ӔK3;ʳ vQZ ]*t-* Cu tNiPsej*ҳFߎArߚ[Ŀ|iVa8\c忸[@@lܼ?81tiP)>d"ťz(3^Ɗ(-z-šIO NXf}zWy~iq-q*:'YAevʈ LLa\ ^6!BNJW>M, Ztދ( 5O F3aY¥R=rwq6Sݖ$ Hl7gXH)MX1'ϫŰSwlb'+qB*_.B&~;58xRWR+n)/Lj  wz!lv5@p >,!d$l4^K)Xq;AV1m. :Ab!qh'g2 x1KOi s-X,_cE~ wlf|28Ǻʎ?c3ܳ"D*W^Rgp̊DHvn6*Tjxr]pW^~̝tyy@ eYuy0ĺElY; -_YثO:s?K#i#*ҭLl/EM5P[a CFFd@!G"}?u:bge.=W/U(:ۻÿ[Y`^4Dh3a#ABQh ~!ܶ3u,i 7ϛsCA)J(s`rh6rཾgR|:s+潴4S@qAW6RѮr>?PzM<ڃ(?(6[!?gV-GS0O*z&7c6$ |`26v3Y߼[GﻵQslA5_͇9W[)bLW#x=ʛ z2/WԎtzG$ )|=ëPE=uG﹮#ZD~ re;幂|ڮ'yBWU:L[s~)@4wz JFژn7K 2>f0a#5ּx>:~Ձc6nc{ "&"N 3OZ*^llc!I` H֟>ڣ2T>X 3vۈ yވޅavsĝÈvƃr) NqRGY<4T+\* c>R"E)9D>&ݣ_FKۻrtjq&2V^0đ2RÐ"3#M{==>,qt_d6ޭ%"\(c-"6[[9h |+:VhCs0}Ü1%-,O!Mn#]G3iq KqK]n^x!;Sc#Dmsr}t{c1[=7!u񙹂.#A&jj ?UtUWVj!UG=G-%4I`K}ݚP:S6V"Xu1PivDg*EP"$#oQeu;;ܿԎߑ2KpXk GbV)=R_!$wFxհ]b >wDINJ-nLAU=1&g ]YE4GǙƾ9!RKm?vv?ZIݱovw!tSdoFu$$f 0zc "2U7?(6hBihBHvn\MJ=9+4e$Mfm2>a<+]YYg<8O_: 4?01+҅QU{îڸCU A< XSA t)a*s_0^,̎sq^fv j;I[qSLBf،w~xk( A+lxJ 5|2s~+]g%"$o@s)<%YGBbG0G|:#QFӓnƑtzs5ebMHL9!.]HѲZc\QÄQm^t.X-~%#ZN(x|38&oUGT–N^jh[Ch% ڀHa _ylss_R.oz?*݇Kbp0z|q ,uEvD. 3/yMJ%LqK]򦊺&fn96[%ć*<'&wq[.IVqV71)VR1G ƓP\`=Aq!{FW^R};OtV|JN[R'rH[Ɠ4/Gߐ ݤD?rnGZ oYeOjuC<( QTL?]xZfDK3/B>0_ OqD"@֎f;NICVP*t$2$~6_vmIYA)&HҖ`^L#'t$"zwC> o9),-FI !u/UOWkm:Fn> Þ\y?R̈́C~(Ze2;VDdrU8>Lߎp1 Tnv5'f7ʭUrǎ-ҝ|a+]ʣm:F?I$5g"cJ~YbJf`MF!w) F+tfZkZ᏾<`Eies. ^N>#=O^:pigb믳i&XWr,_%K}-/r r!}r<$W8bU*Bqw C_' uS[sPAa-N ^ֆA{qHelWR#rOXPry 6 BBO,Zv! osj6=.ՎlZ59p6TQVT&~| 7@ĕD|6{Zp ES:11C3O嫵D f=p|婻EBICt^ pԔv;x4՗b,. jg$0!1)MBPw%\at,O8WP$^ ͍M[jˍ̵l^.q(]L^ojzIL{)cW_<ɜ-m`YE}\hMNt[VMPB ]Q8ǕjrEnaA[<`(f nP!>Yuס<1a!\-)+IO#̢ . (F0qݻYxA0O~[^3Y&d#lbi!2 [*>.Ɉ'[p.,qRkX%!3¯e?j/0܇e3h{p#l.o΀A-Uv]QYVPW^HV_w/,6as')Vdm_=\&&@6{uvF ;xߞKse^}a~.4%<̮#ZϠ'v]oM{oI>O/M?FˇfiP> #w>cN"=TP۵˚v 8Uݽ#CkgB޾ϜJB7zr<΋} seFmADlSrEx.ا!轲h~$'j 禙zeąezmO,IG KO wCfI>ˮ `y `T9sﺦHO+)3 礼 a7o`N\R:9u{?.sw?.=J"ied ;QOஏbwyHf" rfA"S޵z]Xe`ws6=@Y _FxٸE?<}a篌©ǫOyvɬ#|M5Pb}E2 ˍb]ht ¿ˣ5c9SއCⵥ']"'aL84 X])k f 3~蝺 0Zbe}u%Ǵʗ>i_?lOh{j,yx_>2:J/Iqpn2J/hf}6f?I%-0R6 K틸?ڹ?wЋV d9dvg`yӞt2K3o<,Mhd< s51TB6YyiP1G%  N&]5oER?SSh=fĆvqWa^ߪjIDn/YY{'we8$0ʙ+>8uIeXTX&VaJl%;3i "QY0#cWD8p[8DK $Ӵ^:A'zTϢTD/PQA}"_SlSax>d`n5=Ww<)IF `'f?lxܒV얎svܐ\8UE"9KsMǦʀZ Hi`a=Ie=S+Wo/KKGxA?XUP?-!f" }J{=M{6KהIKHܗ ݟ؉C}}jQe靋 Yzo0)*yڮnz@L[l/=rcWJֶ:S1ڲ5ذ}Ⱥ[XV+[6 q'"/\<0_I-!9l_o Y[*R8ʩ&U$pFMҰ}"~ It8Vw3xLrL:2HZ jFK<DŽ{L}J!Ws);nJBK5/T*T13ɲOs/VuaZꛗ:#wkTPϨAUUPZ;D : t#IhzDT*f6 ]sjop}w;-I051~& .~^)+jj2q@uxSÝK; 4s"B޾fXJ![[S '`Zn%B97'易P(r׮]H{{_F>M 5I\b6"O mW}+Oc"Cw\VkffZا|}ܨD߫n$B| HD%(ꗼLK}*/r%> &kk2JJqzG_[TpRUDSסNNUΤu.d c#N<ޙ>y?T"%,OtMk@FfKJ]Uy1q@W=PZZ%c>^bjUvq폹(ZNYj2Sڎ%FғN@e1a#*ay94rfҏlJXPKR?LS"VJ%Mͅ'vce@pe _eʔ$%%{x(w++ܬ͕_(WIJgrPuit]i .BaPq)JSE"@fK5l+#8VusH(^Ab3Rۜ>PMHb `^YBw3%ʒ"s*j-$=nᩬf[RRa\є;Y&nFKBo ޣ U˕tcSGꆐ.{nV? } %з׫lbXr68挤^qKSQ|E3oo02 RQ{s΅VFaw}zaTĻ{vp6b?)L~򔘂~IƳ|0[cdR Pl"z_zΰ@7~5# {%ooRF+uP,^lr=n턉у暚ǑFF~\`Qa,,M^ %#j#6媗^ƀ Q$}f 8q{go;Ê]!6V1g*[,SoF)"O͂wK9qI @0:0d1eS=5xs1^'i5]K l~úW䈍,9Y(skJ]Cﮯ_|a[FPA"irh%a4>Ofef,aEo1UQeL(,ťi=ûU0~: 镤'dgKIeUЄGجnCeV3ȿ-,3]$Ȳ!왚\{ik3E>W~W!܀k;L+乕, v:%\;=|ȽyU|3?~ ~!j !u,'|E-_RNG[c$K"/-Veh<2D~Wv{!:gk$bhAsR<|CI~_H 7x mlHŕk?J{$4܊,Xg oskyN|%E Ԫ%Ɨ|i֬]i ,l좀sƯ"MS):^]Z=FzJmuZYAn2D*m?Mpfx#4Q0h\GEPO kvsWK@iߣT&!ӡ./oNG^E_4(Sd2pn $Uu D:+75UݘQmbʠրY]WeGMUuxgX]m/njYu ؏,Q6.}U)jП/ӻԨQ9Kٝl1 =9Υ^CQfzЌevXA |^6I4$JhB߽Am4:':Al8=J=*&kDʵnInozzxO!CaK&nbѸjN!7{ȚHzgM]R-sꕜHX>\D)=$BuoE!"2*jlRvj*UV]9\Od!8Nf>K H2oۆ%%}Kƙpl6}-'}|_9$K1t@?˻Cߴ L]Re~ !w'yojxɩ&GIk';{`ee|Q׎1dZ8*:Hp٣g [ӬynMc[G9e~eOtm@ hNW>wg,5m,܊S5b]M ǚUy3@=3)3GgW$KRxʟR5..Jj7l7v[Q+MDo;^YUwdaoWlك=dF(8`gq g K"up COn(>߈`9 g$qB [&zsYU:;THf~]8옅]w Mwf߾-3e6*A"~DeaQ\`~햴xȈ5vl|X]0 䠯877(E9{??4o{ λpdɬ@J3uDRTdCj_1 "'z9aE* gX[l*%$f^!L@6 l U}t'#q;: ֿPo]{ e:+~yS)CkZڂ'+{lwqb6i`G\;3q6/r>F~ŮLղ]YO>'D-F|33Sn3ImdB-qe^dc0VA-財=mTAR? ne& ,BS\e #$TGn]ԣY{ [2%uh0}].i;U*\q4'SC*^f8SCc2;a?׵_cSKEb<##beP &[f ]e{<ĝ"tOH &DG #Xٸ;+m$v􂉝4 njc̥l`rGc p%)kBNT#2)kp`HxK1/8{}HK'\"e%rK[PqyT- Sli{;i܂"*X*CPl8[ʵMʙAQR\H>bQyF v'dkO!%gJ3$u71aLh@ޥx.c8 ѥ ԯ,#B|>[İE^i(J ~#vTGiCM>+섓 T9?G;A`W, O`cύ$`Kê$lc̵Ig%B(}̶ C. G'°a| K> FQh”?K:!OAфKP#""p6zB7$mnjLs|/W!8Dg+&@ 4\WC5Y.]c޾~x8jY{W`/*qU/Wp (<o#hh@uoZpM˭pAn>r+cmNKhdNk1naWtp%$oxm@]"@v2J~fL>ӢV)+F) `R ɕc)al7#y[gJ Üd-),~ ӟ('0yQi+r߉s?68cz ?{8T%/PKFL1IH_`!nuvola/128x128/apps/konqueror.pngUT 4lAPQux 5| 8˜mȆB9 ""TB*Ts֑6(:J#cD:RNilu}k}??\tsqR@f[~d(oD\~u0<$*?2  v?1({ɇ~b"GS iE Jt4YZ^١ f1+ bq0]KK ̛XL^h^ , fNI6نZB1ў"PJ2 iWJi t^uPmݞ QB丣+B )WsG<%4l 1mXXFњ* LJ,갾>ͮDުl^X+Lчc?6q]0Dd&Τ[c υ7bX%<'V#[XvG襓2Hc˗$+RC +G]QtXi/&5T^\՚{Ck(q++faIfy>G'ɨ;{Mu%> H^7Rw"x9#LSzX&0c֩2 YFD8嬅Eu4NL^?lP"zqlFz~t%gz^oV$I0o)C`HOi,YV %}u&3όӴui3&fo"<ikVU 7B#џs &;zL0{=Jq7pmPOcbW)Bs$#~7}+k1Ė7[(@dH+Q(aZ . E0os71؃Jn/IL{XH ؈|XB |3l>]H+Mp0E>}Mxؚ:x'Z@nU":'-r#(vr[0O ^ e& 4mq4嚦a3و; `]c]qpqmo%R`mȫR$5I\TOHp*;2=gqCkbD,^Sfrĕ{uc+hLj4mw"D!CGӈscr?Wof ?'FAe$X4M 8M_]&VHWԇ|\܈$l WL9"l=p@%aǿ`[^"Tn )R!3j[\tڿk*ӃĝcE˴Lwp3D ՛-`鐇SŨH7ӎ%k:Wn]K/Ie6CbPg!?t0dZ.උ~ !l3xME=Rk U>ϤLPbF6qzGI[dD//*O0q%4)+/5I+;OoU}{';:1LV =̖7&!KN/#:sĭ0^IV߱:Pi*N8B.?֖!l~K?)5]מeCe^.00+E1vVT9ufq}uq*HrG?SzF[6ǎQNdxawiNծw0\nv"~mi' is_a6 }{YX>||4\7q(e=oIZQ : ŖU+0gHY^jUyw&M&OL|RҪVv Gރ=G~@_Z3H:é vj ؚ'gユJB8ߔ!&;TDUiΠH-))`m:3d̄S~̮1p *A< QI нAV :,]m 2_gS ~Co#[D>Okzp{[ _fBa8e3pFHc6ۊ?E1Z@Ĵ=(0 SFŢ -]z9' ,?+sӠUB[(& ӝHK`h-H}thX{?CV ŀ A)\gMڬ5G4ugs^ nh*fF2h`'o8GQǐ5p6caDd;k s } >'&6zߌ8h~hLllx1Ȕfk~sKSvNW_א7\ΥLQQ:Dz}-J(m}/-az`;a\ӵcx\iB*^<07O=қ(~&AvQP4@A ;]Zݒq LZOzQ^_ _>ng␪FZȳ1XbwB6Aqp̸Q1bL*Яuh!eF0+ NcKaВ@X"/ZU1TGBn4\!s,sMu/o[h^kY%!`봰6mz6֖&t -"2?M_hf8aS"k6r5ʩ^?~,rfМɓM0 1 nF- <T4p6by(( !ӔsGm<+$1> ՋPl* +AJη,7LW7E.3W9(Wq" ɕMj7چO#Z3xZ1MZxp%ʙ֠tw@,/u>I7ߐ ^XlJ6,o0k{ R.#W+ys;S} 4'_MexuƋK N+f O©a/8.e}vR) #?U}0 KLCmоC׊!O']][@  gט׋.`#~3gPe2; yϏʭ)s^?Nf{8$%0K|(>op*XvGQKfdtPgRY]d=|Qu(sZ aMkW2ON}Ov`y)! soE󵶘xuع즻MWfisg2)؈=Èk/B +2f|aa*WUt۲m7v4PNn8䐺0E&A&?f͍ȉǭި<{Go@nw>[Ӣ wJaORl_Χq/*IUX5p/̈ϒR: `q,圜ɦ6U xYŲc^>(%+"$f5ֹ=9OHb"ujA qY3sb|A)l(Mzj ܞn貣M/A,~#Ϣs5Į"㒐 {D%:)O AqgbokcQYTcz nmV)rnw?ײK$v%n6U\lL1IXy"AWPy*PJ @JTdѯ@}u|s{M}tuNk4!l~SS/Q->p|H#Kө/$@{xJvT21;QuUYc3kB:sݍ;ާ4}ݑ{kra`'A-&NTł4-8?dUN."qabWʮCm(7S>$.}{E>MVl2#emTDZR$hs8|nƲpـ3]Bd&wmi.#/,k "}9$He It[p)TAFoTmgņI25^E.Vlgu7;,G5K"dP8۸WI7?; dTlf͏lx&ϸOr^f'RkqZB}Û8|:j01+J?de\Fz:؛L܀Swdqe&_?^"=Ή>$$R6Ɖ)vмKq^Zʺc$ݰ;G5q5ӾpJ3UDcY  갪*%v_=b+fՉR2;Om &З!5/b賱Yq+c(z&h$?Wx  7¼X99ބ{bzӖР(L]e%Q[k[g.R^hsSuysVAjGGA- zcUl9]$oYܜI 7SDG^ ҙN-R- X֓( G-{;o}%Uċvc[29Z4͊/;\G+yV [S_:a ׿_|MO~s/+}*p1.'=ʦ9D"E$7w*op4&a5'nz z hʁzc|')|Vy/d,,$b@kZ :V]CC$ k/QԮ1tm E4fex!PÇLw $"z3"R=e6(\ǭ4*}_WD Lԛp1p`@/O _D28~ep{%X *(4~mCs/+Xźd>d굮͎pJ G$,3xYؗi0,/G2Gσ5 X*XmԕcEI-fUX̀A.cО Ok !xs CGv#K /tΆC[6ڤ囼/}lunLR 73.zb8 Q5t-{afZy0Ji@m3RO]iJA@Kjayra'0I&'%t7^ŀ2 X Y{UtpRG3JK Vmpi? N,RfTS]KTG<\P74ƭƳu[u% B~/j(3׳Ba% ';`PtUڅ,ijv׌gdu`$ШP\(e]V~<"6Q,%hcPQi&Xf1DQNN{=HǑZN[>.%jA)^Lg@l@]ڒVRiژ-\;o0f&7)gx/88Q)Ug.REt]ú/SHH es?mW&udOk:'gͅada:c7U-foq9d3JmlnjUsxy۟gUL0Zi8ߝq|*5a4$hPRTG孳M]t%)ܘI ؿUrA{ ivHjjizڻwe#kdggZ}}=pSZ\:A`&u tN7edd~$!cze&GԷR*Hf̋ֆs9OOYFQF# ;S0 Xeo6C\4MLЌ5eMLn7UbW1;G S\f!T5j,*QtoBS드czap9&6嬁 zT/L' ->Bg݀6\!2 -CxUm| (neȖRLӡNhkk zz\SL--e%]5甀~uEdQ=-iFOcl9Gi2Bgfmܡ)1Suܧ¼IHLjWUlp\gW?Ayg I7+XޤB%TNl/:mRC]5X@% dp'^-sI#f")W7X4PȺu˶"Of XS?!yKic@OqXEMvY Rrmm5^g^\[\e_TDɭcλB].75ؤHT2ܜw]'{x[7-Y[3*`3?8pm YX!XlL[6COߠRBde=_zo8?OWQ5¢/MXҚ i]I 8q7yL6RdAݱS2 6`G>ĠPA[ P*ynPA3t0]'"QcxGxbSRhxPaHcXAU_zU+ TՃR{ ٹmn~"8ւAM:&ңkJ/1X__0iهo.|3}s9LQ'3ޙ3V ݎm'-sA&ʉo#|09R>$ƭjJ.h^Dx#]fW=0~fyGځ~Ab[C;`i AB),Tamf),l 8I=W8fS 4 ,,&x'6pL͸bS4^`K-%=j`DP9x6r*kիUQUR>z̮7BJ.K\#x?hm#@Y:8Щ v)&1R+҆z.v9b K0΃QXç 3croV }KsQF@Uz\IÇ_Y$,Bm;§eϛ?~ljF %$XSo Oz2{Y0ę_3I3?'*0E*)ʠgk?D>]8,v'w)og.N={7kFv_=q:#g,xΛ,Հ47~a;陏tU8CoK4EӦrt=Hb<2L{/ohIA[O#;Nvʄ"oQ0p: *+kܥeBuܻP63H+N@odO TMl)q7xH24t) 98EfH4VhpvAr5mΫ4G;ʤ{Cj3&`S#&)BJ=5πt)^׾s)0lYWUEm35 +n&./ci>0Ia2SR_澌{ɮBv r+K=ͩs- JXbܻHo.?U(V/ b\T@-Rfɰ2:letiƭ/v庫-eݵ2+Z6&ҧACMeQ{Ф﬘\^JS Й."KI X@fm`nrucC)`TI/Z!YScHIrE-ÕlDouax! Ӳ0+7yC_]kp SCd2VOX2KWEݝ# B"fuGt9d8e׈(K2![oK_g8EkǏZZAลfjU  \MNs4Oo|d䯆J Z|gӸ}fN{FEe;_!L֔i,ʣ̄$sgb^omPLjQ P+tR(XYrBd{b#7H0# لx>Xxu:j/ tj&`07eKf+y Liױ"K'&UEz!5U@w]#3B6H d;Ou_tcT'ܫ:w'HI;o H!E9(:R7ug gLi}pWzR{ hs$a=aJ3hhGx;>*<%`3{~_\ezNHĞa4[䝹lA3@s"g .,V*w*!) =;9DyϷ'(?G<4AK l&\ )TG>rSMq#BiR3P; 45sŚvcdo&4qv3X$77(Z6neU® Mt)mtLb ά@wN٭&kBXԴ!y:4#h?9ӠQyX0/.CGRwr9tKZdϏBhK oX#]e "OSpa}I{@rW t8{~fu?=YYu d]wJoŖ榪nJ̰:} I=~Х͎ 㓠$;R̖_{s}<%>!~sDu}^mm נs*W^hz,J-5WQ)ERqpaМ{Z{qCxr"u5N)HTjG%.4l q -Ҷf$0{6A 1 `cb G B߆ տ>嚙ta*^n95DD&-GX a*h6җWiU[Ucm!۵!4s4J&LD8mz?9o߼T9ƵOM((&Ʌ);$-)(uؚl4vP˸Z nI=%S%k ]H[y2ߔp}{WX$TPfjĸ\s!ǜh񳨯B@krI`~w1J]E|N EvΝD,kXM%"8알P|95r%+I|h,#m Q cjD3B/\?j 6*ΔՏGE"T"_G>%ZG3$ʢRmSE;`thIľƊSMӹ7~[~}hX'A?wiUR+3GO;Nvt4B[ x ܘT Rf!.hsڷnq9{-Tx`+DӴwe~+%X)#L/6W`ݯlWIw]@B.BRll n㧑:wJY9@:׈&)OWny3Fԙ**ӴCTdEhE)fP7542}vO{~) *PGvAUs[셱gױ/PlYg_] dA|UmoQzV- ͵_[l#D]>/Ayw,Bb a'f4lp=q3BO\8WGۄ/.c&vv{k3h'DC%fa2I0¾J)9pszhd]DR҅n pqs{S6%+_U(]VVBXK\fK|s-1c6mO[$gm $=Zw\(< ;mXqsL>h'u2p=ʹ}6UdZd#M! R)=$@Q߻2ב ί%aC@[%5<sC5}VղB 񉡠h>+t.!;>R(-}oS2(|?l$C&fIIrM*Rgrċ˃_jk+B﬋JtfYM&ݻC#[~g I#΃.ƞNob+N]|97$R_$yYU&lZBq0yi M2KN.;V墺4LF9Cy\%%H&iϿb9ެpЀ mu$?poQ?$0siu&#"|E)%?rdDo)0*#Vkkэ,֧Ot!{;wNSoo[S/޹VPSdʘ| uPFv%"&STO[?/%†8+G)nϑ>t_m%N{!nI>k? [ރ6vS'6b-X¿#|Ŏ3f䜈|$(8'J`ہdX]Diqå< Wš߻8VUFs^a9IڱZk-4X9iX(30n={@)V@tx=KNظ+t%C(T̼]}k/]MZgY7i(]5R9؉̌Oy`x6iKJp7LrΠ/4'΢)/KO2<Lqt{sfaC`YAi5(! ~]aN%CiaZhd b=-'P6هy6mhKM,y o`4Ez冩t7.xviM$HD"- XMD)? 8صnHw k!'^e\x;?9,[Qʶ /*fW8Ki{e\'C${uF[LJ3K ϭpY={c73 h42JkdIT89ߒ?8qqѨlq wu@E\y % E`/XN^ewDZsk2dNą)=|EpN&pm%qE#/ ߓ]M)ie%ͭvf1]XM83YA.Ƕ{R~dH⎼<"%/Y+sڳw6uy /gAU50KS%}bsϭҳIIE;w|tb]yKktPKx^5"l3]=UԕXyԬ7|CT<< i773>qD73!X]PS6FSiӔW`NYFH%'Y3}N.wKV?VglLΎ3Od+`jvjY"κۅG;zp۠1[W ?G 9nt7R\vs/~R#r{{GNq&> Hc,.IBhWM{"gUUąܱ|}] ٙ8/`힯e-}ݖCoFMLy3!2,6yZ#RZ2fkclA4[2vRC,p~y>녍AWg6+wAYfjǴMM|!?T Lj9q~E,|#\x~fKImWݚ.љ*[%dDN&Er_M~'^P%?/''%̌8;RTLb8z΢l h˞8o$=_{WtĨ٪j%f8-MJl15ՎY5_!u~-"|DbN3ʚa"̿Ct쑺W5Ky-VwRddd[ a&|S1Mf HE䉒f_fwڸI4wgfXTn`Oؘܕvxyٕif-5wnk\K$bʨ.$ߺu AZlݜΘP,Ӕ&c5 Ҏݻ7_L߼ڝjH#K7|w_79euH,n)!$p{9[xK'14<&s [=oUC]z#]ySk.޷ E߯ޱ[PoN.B+ШG9 z/m0)Oi=W\0;P+ l:M &2>3;qH ;rȆ/ϳ\9})[Az(G([}hĨf:ɯ \$DܡqOrf]cYۧ-msom y%gSFFCEmD)8-:?7XX?q2Ei]];7C-ՖTKmx_P}ƛ|x Ly]m뷚W 0~M_Ttx f,mYl$/b&#Gvb|\>i.Օ$3;C+#?؋e>5[[?u`G9wc?;- \5!30m]YU&#`&msLzl2\u{<Քu$?=Y2ַU/e^o~' 0}(f`4?>Jfx33<#d)/Ish$yvrb``hn|h.4@S4*ε>/rRXׁ$MR'z.,&{KJ.*s^3,~|?dIVx^P|fVm(ST2߀WFX񹟏IY1|ٰa>JcqrF[Ȁ[wGJDKb\K[z%8i&ևdEׯ$REӦ5kx? $).lJGψKGQ^>>3JKޜjk?ug*l/5dTπwÆ<ecߚd , DӦ}M'SOJK5I޻|?ؿv̕-deDrjvyԒXwCyRumjTeo'u~|Cy*1!&y.7!oUvdBHghw6tRƟ,d+͗Qc7Dy%x=Ʊ䓾+xrݿsg?*^!Ax~5sp.;Rb۟k}#Z(7@JyDk{h)@{168hnah.ӕtP~ͻ]yd[ʑ#_̻V" /߅4}oia-[ۚO@.x$YzRcO'Gso-^͕o:ݘ aUjHXLu? ?޿@T}Cs.]sɞ<тM vK`ӯ:ߏTqB@*[W_N?okaaW!N?. P%&,a%[B 9t韇TC'fG[ؗi5-1}^YT%{ 5?o8xEdᅦ2O!~V}dwKώܗ);,iŭXtßa:JV[7.W # w((h7Iȑ#Hig`F !&M t̒Y4,/~­:_?]$w7qtSn@>-s]\#s';SגZz'}U[?% '5.ul,sgδ8TUYũ?;l'Vӟ.=?oCuIh[nEu{32(mV<QP߻%y3,ũ}š1aLCNp$+m2N VQzc H74Tu8+K|2lfVN[Ț a3DgHuߓ,XDۀޕ< [6҂e&#I~,n9~ŤUV޶7 ./;|Z2Al2^Wx~?hwKctma/_,(Oa0>ʺb$(8HמQB$֎V{/axt=| DL\ۗ̽i=pȂ[-E^$}^|vsT8IGJ/d1RcznzH1>*Uv$NwcKTLŕT%\TٹN?]reEȋ{OyF!6e-3QX8HM\݈ܸi8ݮ$إtg^WY];C I>#8뵳l |L?lɔsbVK%Wh4Խҡ$z hc>:ʪQ/V(+%ntbKaUD BnhW~qY eUg/Mե $h0lc213h~ *4B^ܷFk7ח.)!jNѴ[ҽ$뢔a|Wy.۔XDg|K'Nhm\k$X- OìDXf@FS6ڥZ%bK]}'OՊN6܇n㚇YI-6 ~@3h s>(Cub ԧIV3C-upu)"6z"7HHs@E&CLHV֜ueSy?fM"O) @X<;|Ώ]Wcl&VUyW-sy e<>mRd|oHx`n50ڤa̳?֝N8bu RW\|In aIҗ6kP62@)`;ƸWA9d@ RϤ8vԂ8Vw@5mr.H-?i"u>#) H`cs8?ڳ.JPKL1|3FH nuvola/128x128/apps/konquest.pngUT lAPQux ??9ņe6$tRT*Cr,R)K'9mΒB0g}\.rov=R<풕V@LIݒ4U6RK^cvDp> G r3vU9<b1kyਅ.tr0 t4(/AM@0B "OUVH@xIN)Nt|ZZ߳7µ)bLƌhnG"K+-T,9@âer^pc ?D_CM4+0 y~P},|}[_Y[Fg)B vja-11VT\Ql8T2o]!Pĭ(bx}jx߳R{&na;~rNY PyL!G<3LYb' K ,9~аâ!}ya22g=;g訨٦q:M_p(WQ`揷@'"ׇ V Gu8 52iG#8Bckk"va"&Eϟ42ڄz&*JdD5Gw-xDZZO阰i-~629lNUaj/&?mtTΎ&+mެC.1?OhE;rꠓ5_ 1̦x20wŸ"2VTN @6{1vb yU9y>qG9͟3íËluOh;##omM<7׌yu=rǁ|,[ȋ/ͮ-GߞbJL- t^N |o%m 5A+#>)ѭlU G"11uW谪PVPU"{`{:w{lcԢ2vF25/ϓ֘gbm@[z ob"3T>[ 2%tτҵ™gՈ=lh7ufXL`oP>RUJ4^/cULOD Ҭ5iUOY 1!rE?~0VTQl:fa 5Vτ6!L7qoWF8M}=8_992VK2'uyGG}| (YeFA!f,č;X2/77ԥv8]_tRKz- {Ĝ, żBk KM6Q]qW T{E d3٤CN\M@ 8hxP &#4;rڑx5 Bb3]i9 ey D&ܻlgl# O0_GcVCŜWt+ !*4zFΎcdG_'F nj=ND;/yU ` 5x9cqQClķ:4؎2zDZSflgvsSS5ѱ%X ;"1r1MZgv q'Y HG 0YPwUy}dMj`bǧk(s\ T!ԟP0[ߢ>n.w!5E0 Y<=\K P }|7024(6 Yi勾]ƋVU_sR鱢UUlFIa. @KOP;E} g:mK[?B Q`𦑀TX8q ٤ !6T,VpUfLʿj:X]Yg;T|55ԃ\>2 ScˮKcT8 ő g?Ӿ!obw@v&1 Jax\ArtTAv0VD 0^G4SdZ4ܥʔȆ418'çQHx`YBÜ'7/^259SB`xs Kcj^ldQCm:"gڷR#"=4Zf#J:SLOI.P];4^jn#Rjl^KUi[1RH{ȧʦ9 9€ k X~7-"'r_ ж~1`yb^Fj<Ǒ>6+j0ֆ 6QvJ4/BsWIˊjLhJij3XVϚg&9E/PDB%! in %~|;ZyeG;M]]c/y?R?OC3?.C/Vf&e ǾDJTmJ\G;rU"R cvs1p= i;|sz jwi}̀a?Z"*? Z)\O!y|f<*rga nw>t`31"hX&p-XEՔ&ɪV,"ERSFR!~sGTUTFЧDڈ@Q -}ю#D^0)ep:2AKuNmF}ed%afbMtZ[m% Fw֙@8b./J;)a0 $3ѝ]C"H-xCo Ϝ"mxaam.x4m5Mj1K} "UJ` =gG~^`S@ɿ\O2|9:dz]ڊՖmӖo٣?ZP4ܒhaŽ?JU (9"F(lƴs.LYd<\H ЌLD^i.Z7RF͢w|CMdRy @s^.Tc-"Q(Lzcs"r?gzܷL`zɞ #h缞M6]H(Ym'x}tK 산90[V+|Q&aWz{/ ,omh/;aDT[}}W'uxm.0 CIL}5=.Dccb!Ԓ0.9Co+(o&+PUV,z:G }n 4)]oڶq$7+-8"Ohhk:~%mKCi/8 yvv˟?xl+\;FG x?S-$.'zz8&=+cZ X-k+7H#yw.:Zr?G/ TrE uXؘH%jO o9$!?'ާ8=@ h/ZR0+1Z4Ѝ08Mi(ILP{[JR``@yʹz:xjG&y)|փG'% #2 >SBH+e8jb}mfaV=LŐ` ZQ@73}[ =M!rE2(&|69?Sw#֎;9vmw~uMA~_w|1* ,2*VΑ?|?Xvں$bMpj,+( *,bv" Toe>!fka`&31.uf>NrΡed5.Z.;ͷ`Q )# vYx noF˖{n5$~݈Qewu<nlG9%UQd3Ȩa[G䟓 Ϟʯ|)6u۴ >r[vEh\,4~-(-Nt15_Og>Y Ue.ͨOs;H sa/E- ˡ xz±9]V$ޑwˡW͇?X"Z3:@'6V`l3gjs.U!\Isv(||6|؜>whb<7)*\C<-#X|cS*%<\0=?GT^q]'so-nv;k+}ӆpU{Uj?r9+F7}2:*U7{JQ-~qHKOA"zw3=Y9-Yu&UXkR(Yl'Қg k#E a!kѿޚH-GqT%X%Pex `n&BYSA cP4܈+Z\cGcuRsqBHҁɟ4)JY-~N=\8 $=30`Ӵ9#Y䬼A^x`{ ,YϟCRR%=UVBzl\EbLJ3M,)ײQ<`:L׌f5+EH5dE#UaJSf)y3Gj} RКDb<=%OT@^ @=f(4͉)eXrZ*q"8^ H*//TUepgǮI{`j} 4ǓM;qFzݸ-[:qmΦNN[% !;݆xTvHPvc'}fN_ Rgq&G xEfBr{\ǀWk11)9nؙZ01!ԉ۸%m܌@Y*Rh!pW]n|U?RN#+We)Jk=!x_"&b^,mJezB]YO{MjټAhpl}HW/=p%3d ՊZM"}lG}^#qO[rv?7u57fn&\~*xxdp4^nv`~4l84JYY###%Px{o 1`~*+?!=UZ䭫|Lvk* Hw!v5Y/mQ2GB9O#g xz+IV[MsFi K9'je#eMo:>/+szz>nJլ48zmTy C{õp,ERߵI \CMχG'*9ͦCd2'oT+WɖӳG*";M%5%-cFU+̃`Ψem$ǀYX#An4Z SD?Th |!~ȋ@¬7V#gCJlr8y?zT?FF#[wS$NDu?G-DนPћSJ` WƔs'PN*.ʞV*72: tLTJJUޖ:ԇQ'Q'97 ?[^E ,ÙR'Ŗ,:h 2i_mzu'5ȞHS"ꓙOvCVU^ pI6^j(ٱpm[g2 d]=pƃjj/|m+_F&Y98GA_@rqQ(}hJEm52+ @]_>B ́[#K 5˘zA%uBR¬R=>uRB_7-jo~*k,q-Njg] XtOi\u<1lh6xm=`w6u?#9ŭOA?}c~R63Foh:Nz;㖄2m}` /[ް.7B^|c}hcԣW詐 e>h"P-sC/bHpb2ݞFՃ0 G|dG%g5k31*X8??⢙vL^:ppe\ABJɷIΞ9$ `L$g(p#C<҇R>*Wzd7?%ʂz3}}s{˴G=L~ / c7֞4{&]1) 09Nf0 ,(et  2n& ~䊐= =騺Y9J |D\t0tg;d[C֍ڔz0RpX^πeMǤG[#`K'$( |3Twuu/aVP!Nݑ. >bkB`g76@2<7ttq.tk%H: MlĬ- %i [4 /gҠ\gP|x #U,a(&y9 WIxEnЇ|_-ۂZLfEc4n<n{T'ܒqimQ3ch#"vy0Tؖ}70ty2+%Un˜"~biI,3참]oiP{|ʨy櫖3[e!IۈTq]>1}M9a{7[p VśBR;7y&d xBǹV@*룝lF&/Ŭ=38('ԮAHJs҃m8+6p8=OWJ1 Q[O;VQ;3~ Fwz%C惡وlc:@p}G :sY;V+JJGp,]YkOG^29Apt]!tlo840DТgfně׏gFsMQU.E_vxH{ N eQ3laW%&Cs(!;rٳTMK@i -L /mp][Lxs2kmŏAP&̀W5[Sb nό`ʎ2ϣ5uU!&1PP~x(9wËFA)JüKN\wƨlw7h'#sZ@14L,u7Z. @*k[ݞhz(q;HG?|$k*NHW;XO8M|lClE 05:Y"R.p"_E[ߋm=s 2SG'v|a}6vK_1캏+vO18^6&!Gws& {Y7n/`ȁR oo /w.#+I0|`;*:,1}/Z'D/lq& C="g U/>O 0N]=֩]~Mbj8GO\-ۡE3û0@M KPJ]Xi1zzH1?R+NZ͡cvqEv@C7er?ej2%X$ۂ㪙/.~|fk#lZnCmYAI!H [BEDM-z M:4^$7pʎè*rint&S^Ȝ}nx6k \~7BYYHI="N@@8a 4uZ^D \::}vF^Ԟ0^t܉9MқRΫT 5ݼkpw y2f-L4$btE+h]U;4.,EaPP`tN3qMWE圁&Kv56@G>篪t`z\_L>"eC9'%}.!iE#8r?"c F SޘqH>>wɇJja\c+BF35rX.[oi)$zƭ{b; fYr=׉ 4fV9J"?ty/)(YQSNTyVuMsGX~U/h(02Lxȇ@op]fڋ8_JWKуq-!K7b?|xGypb6k=¼6Ԏ!vᾠHoi+qq*BVRj8_hw+/=F&T-&Tsȫ~>$QuZWH~zаKFd@&tt0ZALrwM@C_J)8B%kA3UّY¢BPκѳ DEk'[EXC*YmP+WBtFFl8$ =zom[HJ&4EH#:%C-sr ‡ :r[0[i>[,,G6#FŰ%8r| >y7$JS;y H8-9ۛ:g/S"\_l.[׋A<|DpXf7m@ߨ_p 빗@ןʸOHL&%^ UWWcO[X*ȡjxzlk#<A=t65sX!>”!g 0IV]<0pGjX(2ji1^1?1LY tZ$ڼ #vգI=^LfŤ\ixjֻQ.cj{ PN$ԃخw65Ii@\̏d$*Ȣ|:i;q}̊DEA#M78b>lD-BMƼ=__6a ȉ ܵR=b&rF@z/J[XƑdBݽ,(Nv{AޘYʞoJ/u$`0G)RO ?LL) yO=YK"c ]ppbe 2x:Cga{W'8~R* Nk(J^v=r%{|]Hp|دX.+0D[.WI[S-#m]h?Sqyн2[2/)u)ΦT@BȊhL[LPםIk> P?r ymCt #fc[h͙uRwLweO5j":aH͗y.8+Sfp1d+y|dIu3i!Tq!EC,u&m5:xVˀ\A'81!C$ L' 1C7d'0C1ɦCU()T澍1o17jOewu ̬UU^qu7(UH-WӞS隌O+ϱ"9*:)uָQ+>ϋ]o4v\,}U'y Ӂ=Si?lv*_3ݦ4sCӿC'{P-쌠I4Arԧ>$+5awd:>ccho7f${5O^>a_6^#%T_vc[]3u@ Y4UQJ?zPA ?SVaj⹻|xsGξUTى̵UTocyŒr:bG=7>1{^"e*Wun =zK9;xL=4"]U8k!:֚[FZo){aS>PЌ8.L:xlGb,<~[&3<qv!܆`Kwfw^o1(p}xl{+GsN^W@dŽ ʵnS6bB̗䒯)z3;vל1gu5D`Mm),$vх0\"_^"MMADu/_|"b !0 ҖpURcR3z ^;F4g2 ax*ŨB=fm7y&hM3!@=MJm)Ik_@~QeWNQ~f.iq`g%Z*fT"RX/61-o^(NjLz7#A-X (론_g1=`Uڼ g /iӱd%zqv N PC=D27jJJI}36*ITx3 ;Mw}Wr5L ᄶj]Dٽ>v2 L1`='|+;9e+(LŲΞh4CiG|3vڿ:VȨ=*`">c_^"40'ky@Ǧ\bp>FѐlZ qD:IU\D vAlYtUC#,rMUe_2WvRga2X TGQB͵->;>$"M%*Xqn".m݌,o]R >Tqqq_Ua-hJ֒Vqcd=8ˬwRZmSg=RTA䝍jW*m"[WR\cY )O'jN>;i?o蕬')S~cXx>0GC':\{F[uXw?ןLO]f9\ԣj\-|C+tiB6#fN+v&}pd_c1;jl꿌 wJ+NOLR miV(u>x|sg<גJ)\p1/ou{lr7k:@l? F.%t_e%klbpu 1eܠpv-4ϟ&.ԁr ژ4rϹꂅۋvϯ9ϏZ~w9:xYJ7rhcfz_>7gtȘ<{a?O c\|-Tf1 @78$|lzFY赗eD}Ǻ~/e!п)6dG*~Q?é:=0OpnLʮ«I1=FTVv?CwncDuBmQ:$MHd!#@Ô#3)}dA3̛Ƙ)œɚþX0w FbN` xW 0H A?7e&]dA5F'>eN a\!0[|sJ}2ɧx!#X~i3B:X*YBTnf,ӧ-7 A_!̪DU2 ˪I.h|AO- wb̝_o?x]:fna>۾,АCv;5R9rsy_rb=ekڿmYmMFA ޼o*n^$Os{oTGjsG+ӯ(;13 Cx6LLN噯B]oʯɼyyV˗As3 mZ٬q ۤ܉R[Q8g$(۩`fHo{@cU^`g ]mS5Fysƭ[yE 2KL5,2;x[zi^Nf`Q} a¿$*&E8aq<҆mA}ĥsFn f@Kyl;pܥKqj֟Q3=`,"7 z*Dج&HOladx9*|^+!;)lsp&VQ s9eTn,yEڅur_3j BzfLƍhr3n- ׇ=>|9޷yjW,6X_[]Q U} ༺$ҕbP2YmΩ YeOZr;f <2|l(w?b/gJL=W-.u+ D-<5O7bZsSU_.l]mDL׃b 1T/ͅ 7k +JsY:=dLE@A4CH1٥ZS!̛3f twkٱo_sNZˢxjq9 9S5ȉ=efa4t[ D'Qmrx 8.Vԩgu9wuO>}v?D ZkS+YjIinbw;+MGð&~|*qnҕ1C,*/ȪG./D!l, $Vyh lr5h$ŹmA  PoR< U$z&>9{I A;R-Hsk 5l /j:T$fɏ'd,-,Po_$14.Y\$T>cy'&[t7Hm9up@[%˾PP @ $_H#`\Ixץr%&]n~L*@rԑPK{L1fQ"*#nuvola/128x128/apps/konsole.pngUT lAPQux z{ʔ~DXK!83rrI}Jȷ1CG~ 3*VpFuCXV |j ggᢑʤijkX]-$y\JhJx㩥p՜o#KKNV/(.LɩL (-T_߾#f}!|eY$WLU^4c0<2D叩@sp8[E#e3_G+NLtc}q[^  ]JcG/7n60I&.WdQb{Ǽs%xSmHV';[RI]7U ?ֿ_6:}]완q[ǢΘ}[m{x+m@ЙՅiT6&l?J19sb-$ kYF&֯0Outi)+2Ȃ>(Ct>%̕4!_'#dҹsCX=e0[w4aYtVJjјŵlYB+bCi`FnӮy?ݕhK+KZY2:|$9ybd$ 4klBpݶ*0w׋۸ U^b"[jK~ Ct{>ͥ:;_ѲȦU2v P$AaU!)R`1R\v%T1&*J|&$#ۖlkk(u,[8R>%~3FxeQL>-MZIK0Z}\. ZGͥ?;;gڝ`_Ǭpwmy!:AldtE3)rLA$%%Ź>nY`ZIp']/K5Pb'!.8e!?Jbvd-!= fe@U]b.RΜqEуV xJ/2 qcͨQ3翭O{p^(8P܀.bhV|qrr7ŜȄPm/9w?A Q=~= 1.HOV~kT5#D<`8@ѧ9a)Ӑoݥ3ZWi;z q=ZW0 e +To#p06f$m̩w<](F\V}~O"w  6JѪ."^FZxHӔ(L+rE[ϕ(RdCm{@ l`m( bLVDȵ[arU݌71Mrp&F"1߉o3_1H O~&YNBu6;W 6Rl+~p)<6>.GG˙ڊa^LNv|ٯj8VKaDzLXO…{6 qxʁY #l@yjԼc>G>Wo{ԚG`mv̍2 »L#dmnФ TfTƁ/v_T{!2뽦h'9DWN)W:fi Ř_:{za@M)e*h57HϴE$>'SW끳7:CԼi-یR"Qe|m]]*Qn(EC.ܡQ;=8sduUzp (wEWX{ff5`(,eg#?r}UBۯO7'<r1hoTNWsFNqx+GDAWEt<"asu~}}Dw۔va4[;^ׇ`vC,֭[9?r@17Ղ\\$UUx&)8wtKsdTO^E@tPĊ' W2t H]٨9K4[{kxT\R4cF]f{o߾/:::0x"K(Hlfo(.VV1¨ pgC p6W XK_02D^FA"}qCS`OKYh"cgx7ob^f;&lؑӵ`3&޼!)T]#}E6vp6.~ z UBZ>p["Wf²iG!*7v[M4^Md"yM L:Q(m{unM$V,.f^qCЙAbϋqL.)چ?!d<=9kvHoCBŸpې`a` G4쏦T#>$Ib>vV!K\z/%7#ƔsSNgMh%B>8xꔻa&z=;[xQ"wj(<'cT=><}3 _`4e:BH#Wc=Gez֣ ңS4cG!Mͧ_Qj_@Z'9X|sMβ{s ~gkq@ !@H1V&" Ȩ@& n>$`m4~*@.+˦ /w"f(+\KbT4HG ?OFߗHo/n~EJ~~ V_s~s$J'#֥,tc7RC>[rKIx'O埽#SOu}sq%?X@G*=Lwi2}yypIg3P v:RV} X?[OՌ#Y`wAQzw]CrFhBXf ԦY֝W'eaêjΦMP;J1-(צ%'E/&/k&U0Ir]x`U]Pw-ӎ>; n zB8Ws~0l!)]0#eh*1[^.=E"HBP%כ*nuQ9#?KxU;@὾^3^L-z ɫ7w}}70v6%%}COSNhl=LmRM6ǼS^}7} #E(='^JZˠ *ƴ0g FсWi8)?ҷMt f1Xtfn,ئ`sn9!j(^2M Ma=\y*t8BqY ?MPRCF||2V:4ͽ$a'y x7ʐ (])sF$X%ύxes6#1-0Ύa'WL,C23$+.K&nr=L803+KlGE=+cż$,BLD nTd{EP|DT <s0";ItLgLyjq(]!Q@й_tb̅rֶEuȄvT @`-JWC3'mfHh%Hs\ ;K ى$ѶX/8ӼUti47ǿnm;j]uFevVyWm -h29,p mN W]G2nQЏKAZ V|`"}-tS!GqR=F'$y⑫s2?psTB}3f$3MRmbJVB:rIz5?O_6Hȿ77ѷD<}Fұ[ǒtc b~FZ܄f4>[#]{T2 PoYlxp@g2hăhOct3S8_x_> û{xCBܵ_9N$Q h&y E&+ꒀJh*(#Z&wƇ?U V͚WM/tAdP Zio0f33/7s5r~ 6kBF+rl/ʼnX@qxE޾ (<-ۮt\ԝCOXqva}j{ǜ&bTx3&Dz%KUfݤ Yeu*{b9VAAk+>}*9Cq~*r]}ѳjs1tiX{8MG"gdv%81_s3/Ƶ4"3 ?晚Q)|۪[!`{4# "9,.@957Oـ-p\gULk=G9LVq2.GNǐoĹZr*~F|҅=JQem2"v!ψD&.taazEŵ"@T;1 |6p*,0M컶qCT0wwI`zC6AxMfyXIQ8:9mUس-Vɰax^sCd+mD͋@1uc`۬*ǍfL`\"SdDP8ँ2ihs@)'P ѭQfUeW߯hkB)y`-oW+Q Ȼ҉!Q[BFtퟅYvrIgI3hxRؕGľcԪf{EWgߎ|ufۍ)濖S"y"%W64;` 5w&vK0$A=bw9%b;X|o톇i*WA]< GeWfC !3}dj8al+RHIŪjȨ|/+9- Uf" DVFn~undgƝ92!~5np8\\.xo %xaoV $.j֐^F3__8\;lZ~ ̑^{J#݅M˪iW٬`_SI$59ZNM#=oYuSC+!ރr)d Jӣ}Ѽ7$UH }IH?VI.=1%E͛>G fKLR >÷65Ӯzh'wH/Lh1^Dgj.I; iz/&4pC:/|FzJvts})`%֝v_`4[J E0uPDf!d+TO-vg1+˚{Gk4D:k"auikQ{ ځ'qqrLkǍC7Gѽ7n\83J`$T8oTx恑֓rq- ꓟGd_Gl1LLUWtP`Őn)fh4pM~q r3""SCդ`nɔ"<ȕ/Qjgw+fpgCWNi)^"CTk+vb4ɜ>=gc;`߾=?L_UOiQ` wRayʾSJ&̠,,--iyW1ѐ$*}lXD@Vv||XRRj@)].[RV.y0k$/nS THEZ8I(E6} mƸՊ#AUG3G6 ـnd)RM ʎzoɴҿaȂ@ Eic1>mȢ5pL[[,!Nl.#_RVHuPz3G!lY&֙LD*B掜/ɝvBz-߿S z| \!EuulPCv\L~++ !rqR^Qh$ؗ\-LKբΔR]Fjj?tf{3GHן _#hXtSl--AykuњsM3AjԎh}Y[ɉ Fl+ nX_NN 15py ʷYaSXP" >&*1c Gw0UdR d?w?7ЁßQgvZ=PKwL1:CCE$Gnuvola/128x128/apps/kontact.pngUT lAPQux Ŝ;l,69"!2H9| ECPu)eсm:R +ASm~ku~Nw߅;()(kʞ*Z]{WvXP wóܑGv'IOܣ# +:x^HFxmP.ӃK/ʄӽ@='2 h1v؄7njGdU7%>6V<欰O~)4%yW**fBoEmTG_͜! 'Fd&0f'{5T!?06h"_ )V9͆#Ę>U11 C]Twt#}BI!ITstLm]m}~#Akm NuB覰B/DaDKyĶ(pdT [Tr1ْ"M-Rvsè9@X&ۘhE;@ҹWh. vDMvI~ӭH(rL&Z>JJ\o|][sJSbdf#FA "8%';-zN< `wG'PE PT} |4'UwP";u7Ռ ölέZ;#.nG2 j\F2 bh0_"!HS 1_P$LvˤI틁! /-X"LΩuz?_"bGcHx3 CWS%RG6 N!B'TT" A($=I#QܦDS22#lEV5=ش2,xnBBL(JOH:og;6aq趋Eg <L,i|^WdTn ,q}q4:m¾<:Jp_;&jRG$u{N GkX'fs\g9\Qgꫧwa'3WrY{AocIa5SN3¨9UXV;W~,*p'-hWB:/ u/6cFm*K1ֽt(N>X :ԃ~ĖMZcO%HkPto n8 ±D"['%]KRs+b?<kb݋,*..S6ඃ1(p 4~EA|65hiR^ilemTֿov)=Oi0Qi|1HKDEAh)ݳXU7ffNPM>j"P*j nDS)a*`﫺$y;:[Y_4 YO3,hU5e{xnfi'Bip{nkKd=0'Ȃhݷ_6KPvO|P_}6W td;RAau'+=S0qn&K:[2Umdž\F5>x*ޡiSMNq`ؼ 2RO5MϏk6 >}-t}ٽQكC?,D~-yxw[6n6>2u˵nzDžg G#>\}d)ï4x\85=5JM:|ˆ_SU!鲃KNcrɾѬeĞT{S*lLTvt*I67`{iu4ͣh .Mh6 4TRLiL*䆾7 fPvr ~Ԕ%NbhX Nx"٘H'Zaܐ>nZ#{w} Oz=+zB85b+~[Cy=m/UIxrφ޼OFք!ҪDXp&aExYUv*\pUa^tp?ړ)nA[ʙ]AP/N잤r {! :ɿ Jң*kl7"t/rBg>0`6V`lXטb'%,OMyPW[aEԽyH_n-Xod"5l%xwk[^s+I/ɔ#GmP?qI[yDj-G[xx)⑉&; fMA*6m:<*Y˝m*xq9ٶ4c]\/ŴBG`2P]A;]xtt9cko????YSEU+ESV p5]BՁFj`":;w5ۋvW>eЦjT^ѝ+cR"./zf/޹ɭ䋦{ָ&ؼצmUM| t} LL'Ag^  !B[dt$*(3ʫ^X_3WJqR}-`h^Ps.~Ni8er93,b᫺{ !L|e;2!MmB%OQvg7V-҃[/>◔ ߹Ռ9<-OURP7I 8SdɧU|Lm_gD& Ɲ.FU Bhѷ|pAp{pvj_Mn%65Ƴ?ť+ mˢfoH_km)\Y4YiB^G^IIi?hkJWѺmS-Lp<w`sP^ʷs@5n{zcx/:`/Hֱ |ڸJ;UO}l2F45Axo)ܟCµnPx6>8VՆ.9ڦ5eOk* >MP8Lw;+Sgg}VKvUFY^l,I$3칭ҒJ[Zг e*dنC. ,LU,&U{_35~WħYCu$2cBOxJC>' s) u_Ĝf}I[QӏlQeR1)T!7>\ T*/C_@f-:n9qˤJ='9"݅A;U#OYa%Y[SǓlp5חc$Y$L(WDCxDO;;Deo\O81xud1 U c[fk1}Cx4qgBp9wl Ej 9ayT$_DM|* ɇr@ptի!].%4M{OTFJ620l۸q?NY M7FUrl!_E)%47Ҟμ]eH EdYm}FS? S}ހFΊ宕i@B?HmUmtlꠖ5h~~ -!*5p RGHr(VD&DНd6 k3#a*Im_'(ѣo(}}ZrOuo|7jYx)zi u%rp7ps 2sgr-O9r6kYEY nr_Wǹx͙Ϊ$-($b{l̈C㗍>s$,_JlI߀VN\}x'h{̨d9W{NX$R,aTY$e`[|a{;$:R xU @1D * u=&,>J$ \/ W%ƠzU9k[7TbA 5r TgDzQZa,E^;^̱ί,a7tFoE=t"4߈h]K4nr*sFl/jzs)r߲S$`b]/pB$W0/H{X왧XMdؼ\9~VL=Mc$\TR MY~.~B3k8TįW6ߺDl,P( KE(p; AL47LL6gUHWG;gHSo1b2q a1Y/Z ; @BϷp>gigO~ELsrt %(kJE#3=mܞΗܗb]WCa%/nE2m^"6 kLqM"!(ĢO$A'K` ( _ٯ&zX,d9>]=i$$Asn#S\ygRh"TPRiړ8 z]3Qnl ӞK^JGfHY'˿X A^X6'E^>:|P፵}˥DŽ@tZQ=3>/q?κ>s;ɸـjW^H;KR^=0V3?^|sC)̥]h ۰wWJh{ 5+'Yĝt 6+9bՇpKaQu5J(qҸY sd{AI 1F<<~v+XYw]vWW]zz- shmToI18*%tRTVEy`/NvB]yuW' ަə_68Ni _h~~ 7L4zlcKv$#{L4X Of sff~IëV)ZDZLvԪ8:v_ -[HSs{9f-&Ez㽷@2pc7.Q('1FѮ-;UnUQeAxÃ[MKd˕{{Lp?ʺIQl[8emSRoŨwde!P=?ma)ZLHLFÔ>?̈E>$?liEuxΨr|XroKԱ!jY,V- .&#}`'E?:zkN\:~ɬai츫GG~~%s0]#m A8wyE)эF_kZT}*7HVx4jY>ͮ7dJw k'ÊsLpbd"쭜ymR7w- bϗDюdʿ7v#1&h)bnLȄ=|wW (Q\$^`r{?>䔩{CX3 jr+Kt)MSն4}M ϴP4r rs.y_0گͳ Ί 5Mq"җ̘0J+ n-SZ*&/PBAc(;uH1P#z.Ж]Z2dV:t(yya/Nҷ(2E( JvԩRm2,>+0Oϧ .a*C1h>tzP឵*οSۻS._ gЇ.CXؖuSG, g [p ɩ_Zh_C7$&)0h>zJX6[ҊI}pLM#W-Guk0nK TUvM};E)!Rpt| s̔54J^\9)Q0.xXAd]mc$(fu[$~Gz*N&}7e$H Bk/!;~Iը,(YJ憰^r^Xd.}ՅDE#oɮZsԷ\[ lYtIA_@` /BvN)fi0`c<1Ɋ=% <[gue}GkZ?ЎjZC?Mh.Y\mS=,naب)K,f4G=m# l(}m,<ً9;KR196p5A)ej)2nF{^?h-0egԝ]FBQb!÷GV^ʧ*yv[4ti=G̫<Ѻ-W/Xvc }ouee<㶵3UQK0맔/C|ϩ ;Te! Suh1GEF4JɃApMQ W]6Cxvw3B@'1Kr&]Vajp~(anC'Jn/ڰ!yLL[ G]rv9%tF?_)x_Jn/'|TA*o%x_'ksԿ +(Pv47p]!>!c~~d?|;gr-uq*2U 埶?@}91\<F,Lr^(q;'.kGgڴYkXf=JvlY ~FN ,bǍز v lgrжAbA6w@HfxO#~ʿ'vko mGoZE5Q 䪭tq'j#s_?׼3׭Y=uUڵŎ˱s X@:)5?@o" zڎõ|8MWlp٭KUO-`òXjlClR_dDO!&5Tji8V>&xgg+~ `:$tfbqGx܈C8wMg*q2gߤGbg\gBCkG8?W;unfQ&A+}`\a$A1|jSm/p B ?[p܉Q*Zj4pG?av߁[YyOA⩳,jWDpAlzLXqrSgBw6Z3 g 'W'7rQM;\C_~j O4-D`?|U*Fzi&NL|,WaLcIy Bt7OnB?zw)"C`\?FH"D\ a+ 3:UB CےNT6vס^zDH!ɦ苚;K ·v(G,P9]3FE͆]1I2hsUǏ*;UP@h`lamHtllCiw5+0AeB|x,.efښѰX!v Њ'1wSkx@rK篫{b3FЀ>pт$Rjv|4+mH?lE m&Z?B]o v IvxF;QAеX JQJ<7l-b u'DߏKYm 4xC8+c(ae=ֻ1ms\d-(8rEX:2??ZWqw2߀p)=_"vE9.%Sq2Rh1GFx ˓#N*#0]s6: p:D_EN'ҟIc 0)h{`f>BB̪#-u Ө->*`GAf~?$[Q\L2sth.plS_Flf`fNDc+m%_9Ɗ; &}֔U&Qm&'ft"9E@˦S/S15iyڞU2͖aGFH}7U%-Z/ﱮu61a bA(;M!*G(G!`93=A}4`cH 0Qw/g?(^_X(|κgX+CBwNL)d09C_H(j2a DF /.1YP('~++FdS˵.RVݲ6:) Lp͛h 598I P8G|uc| h7fk]{\)g#EMʑj`<o_=«Pqo+dLjrODK Pd3ClYLjpPꑾ)ד?k1^Dʶsg {o}v'qsUvfo*/?|w[y(kts6u g[ϹT=X429$ ϖi~ePHI5NѲMmw,L5MT+a[\@XlY7P2 ?R3D7--3|$[q:וQL{( (X)pز4*](|oxQ ]PfFfsxf&qD1=⦔34:geҳ8&\WhKO=c(G,qb \?ה N"懭t&G^^uVjZw5|8`DYY/`Ct$lekH>Kҋ?麇!F[ל6%?xH O9SjPZ{DaC5_SN?\-跽ˡr׮iz abSߑ̟hā|L]aljNc;\KNOMm<|0ȏF9wh$VfF#A>yBڝ4qu !u/$@\6JkJovYk\">&@$kslюs?Y奔9.EdU q\%ԥ@Cm:Te6"D?FN \2cK5YQ3nvf/yX MdWZ@U]PRӱ KIUrVq9!pdFKR5=;qq?>+ >@ʂIctkblQ>Y\(b אQGpca+i@E&Vl~}QZol):|lDF#@O^]1"ߢ#D,@~`1Mw#lz‡Uf=#-}f 7<4IAzaq $N F7O_(}p )5s@@p3it$c 0{ CYuxȫ^Ѭ9 qi6n`=I( s$*w4e#rڰ xwگewwoi}{JJj:)>܎+`$3Ԁ8QqR-VSR:)xvU$Nw%HQrq3㍺Zc7=ӝ'zZoSd8E}خwa}wxK aLiP'ptL}}iנּVJ\OOhMBmUj(2v"f(Z,geNJ.%c=cYZJMZD 8rɁ0FWc^X=9>i2Jlbogeb9 Өuߢ`w ǓlcoUъ&bCyAxUzY7K/ES蹋:f6q|Mڴ-\ 62&7)-HK)9FQfӐīp,ʦwHٮ$?ތA 949a9I|kYwuh y eyvG"a2VQ }˽"JmSD M;l^brpM u.J)WVuo)ugEH/D(?v\rn&O=[ l8Pc01w^V >mCYYVGq& 7J~̩Dm˳EPzy["22k9n|WifKcfdR\Zb5jp$ˋTl)޳hqY+LXo{/4"K``cf[}Rzvx¸vT#JOKxy_GdfL K~#3T;vjd|sHȐ<]knD߀VEJmdN_ύԂB}\eS'6eqd=m֒e-9 L'eH5R,LkC)~Jh)*!kE;w'VTy |_V8}ZI8vEnuggii*)TAB@pU9!OP< {r4pdׅ|Y OaL}lͫ%єh9{7'Z!xbDHH>*7{| c6}Lcx)nwi t! ==B{V>ѿ4D8k|чd%i0wĿ!- t^QH"γ||rȌ+Gߺw^⻉ dˆѻc wx{[[Q16(ڮEy˜=&;V -찅vYEtv _XIE41⩽.Q`v̮ ئE/hg:PjПe Om` aSd\bM_2ˬ봋gRWSaxB(eL8qk[Mw_j&=lWSou2n#jeٺ1mZ.uM8{t-4w.k?)ƓO]rlfēs.H7CG%/zCoGګ]c%;J 1b}L⿿9>;if͗gm~ E *Qv+'$)Tfzzo5ŧ+Ѧ apCpSA.kQ8o)O')튞9C NL*/tGSrvю V cܑZtQ6ۆ_p]LRhUM;ߩ0.hǪQAڋ'&0ö-Jœ걡Nތ'H֤Cn=XMhy֕23TiW*Oph0.4L=ޭ#-aP8EI}ᰍa Ў]bU٧Nw`d tM޹$LN%HsK;IG^/x)jX#,>Ųbmhv\Ǚy5[t-Q#'Wؗ+Z'*7-L~F|C@d3^΃EL1.0/w,Tw]xpUb iHca:?u23>Z1S?8BzVnjG@h90dz hɢ,o4V1^PU!,eSل'F`SNS2ZJa~D5B0\ĭ~H#}/bcvYe,R ɷ!,{k{9O ɏ[! kBe0 <:8O43g*\# [B໡TX $A6 3_I߾?VzXn6 2k_'1&@uE8m ̺'ҍCU]G-3߿PCe^<(9PKtL1.'67nuvola/128x128/apps/kooka.pngUT lA4Qux e{{ݍVK8S`!f Iz][-湡8L~>>04¢X xx9YBQ;]\|`_Oyx e9 22 [ ɴo?bOUX8 >>[RP_ v`=[.C룑 1Q*=|gA|Q_vn"=C9OBX{w~T2GyٹPQ F` U F<-'JkM¶;5.S$aZcH6^7DrnԔ1Nͺrt}7<-^eiux9G x[$}7dݗ^|t\Y8;49Γ91&m +|5XkXg5kK𛕴eׄ<(xw%EW$\~z^b\,pWu' ߯ ކHڃ |K( O/V+3*^kIeKM RF'@[#a=/ #<K٘_ qK}o.NtV`>BꪷOH\ Jʔhji?|12^_>w!'zHέ ꙭ"ª=[G &piwMQ|" (;E,/>S nWPR,=s@E4PnIѡV~T $!fǒmz#K% n$X^g%} YD@+ʍ/N5M9|C[r p X! t8z$nA%8Y'aV=*!qjk_I3F[i{@@ų> {_-3J A,AջU& 5TE?[G-wh*"YE@DuJj"3ΛMK0r+_%K?p;T;mܕ+~|#k3`e kYRр D dN2i(4-J?_ Pc}y^IX0WO|m2*(+qc3MtIK]Gú(uǂ4U:qk#F>+?W~_qp>&z{{)"ಧ\ = :^PuQ0Jb[**Lm^4]gRkFFS+*Lh U$q)yW9kbϾ O[A6f{W(.L]zyvfS+{DY-'dg*T'gXP߿pTQ+Bz됎 $nR, bc# E”\ Ώ>9*V6ڵk v /%31奖pb@D[/$U#3a=[mL~m֢u~ꛙZPP.Sh me 4:jފ)xY?B@Cw1 xaaaA1))׫//KyxxY^*HA=uR@M~w$cf :""Ph[JnʣGwge]vs\o cWes-cc|}8myڃr_n \[ l5&}A E>W^{R*MۘbD,!8x %##*ʙH2:/okiytagX$Q^hbu172|1 nVpvkhIjie_dYuea$E찉gϿI邘Sde>2Dt3pK D%~t +aRR\̵ܫ"~ MΧhj3vg>Ŀզ ,Vp.lo5w!p9w\I ץa]~d0Y`.FBZ.zꔪΝ_|E~ 6’ԅVlop?_z˚a5 DʄTT`""!kk+^|E  @Z$Ϻքn{A??ٲG̪۟q|( `PfVp򬜜뾦 VxBj#{|x [k9OAM  !A;@ju]4aNͧѫAgÒiiaĜQW%)}#PZloxK![ӏ'g^j$]n[dYmTlqyr؃mk2յ6+2 QX[@Jw_r1vmć 5PvFׂJ'޺e=LO%9b.NSUY鹾ȳ3ô)Z Y.@tR* .6<,(FP_5 tM_W˄|`HQi%[7Xp@p-WSc|=pf#MbcK9;$F'[r0=L>T֞3oצ{[Zܣj9t=&K?9) lŧ#_ɉi@<<>:\Tҥd(?~Z4.ooM xT"*xZe ?EXhj m%wu9K=y1׎s-q6sd%ƺ3Qw1R?s`(d){kNPDf9eIJ"'#j5/]FdvzQ~)7H/Z5)r7+jpG.;S@d&_Y~ähAwcIe7s$^'ZL1Mae\kVCmCRLnL7_Y)5nxWgsϺחڟ۞D*|5R::ѻ(Мh贚^i*7@}vqM-ēV4 BJ (𨺭L} S$Guqއ I^@ټi9s8޸?Ŗ upKۅnxDw`co^qAN6Xe1''lh^@(c3@~nmR!bO\8ЬDMxY7^iD1dkv4nCݠ^Gٽ;QyhIuYvA3[,u!); @*^,{$)3qe8s흌Y1aH%熌3{'Vu.A s<3,2-L{+O{ciH YH锁9d F+ᵱ$lLU)Ei: 624@2W23y 2bk J⸞dXɰt;)G4v4$iGF>&ܜQGA ë& xwJ?ڊ3zk:iM/b27+]gA2m3ϑ+z)QS&$r;HIHcnF|,5s`W'h% l eޘlIK-<[|G (r*qpgY &E?M"{2TEaq;\i/8P"^LS`% "J=y7WG!da;Ld^^__1ҠjL8@*Bc_o JiHȶO*" ; z@)}|#+E\d6oٙ)pk1d}lCAq^p9W *a{){OqmkK@i%ꌚO i &U] xlqiv$wPa'|{ hAU14ر$zR|ԣԀXB[†Bݫ7&ĭA7%݆y2r3d# "{M%; qRIjJq%lht%[aIF N7<=ǀg_iix ym{vHqwR/E͊+ށt@ڻץ䅓p$ &er>yȖܥ њrwϯ˾7uyL3"AGgUce<ȊA8 . "/d> ɺO}|+]y<҃uH)L|5h{6΋bx\wo/_nOCL@MCmQ^"v[4kcE?*&xW {S/I!%vgg0$ B#2cW?*&^z.eɫٝUg֌ 1?1F2ez\@8}j$h.֭kXӂ6Dd X{Iu'' s;v095U΄D`܊K,`z\IN#;YvtޖRM8(#q' ҄gs+I i(~/C̑xc u3`4L~BƬ®ua3Um=jd8M|]V /oýISx U&_+4:˰Ŀ:)gU;sD)^pVj6#&JfWǶA}]of#@ 8<)%*jDv;hh T _ڿk,ضӛِxK uߠ$ Lޣ!%F됯۹|?Qڈ~]W?*GXZj-6#Y6rJ䩜+鏘Q AW/eq6ۅQ^%EFE!juvu2fX()) nw=hw-9S16^RV18?xO.0Wɶ0~`AP||9|juUB&:v(C!as>+ DRD)+ӗ),Ë?@o`A>6"=>k!h!KUU#mmHn襯dcc_沮ƾ[ފ7h"!6HnL ?"n"JD!zX$C>l_$zUU? lo/=^NDot04YZ'FZȘ}Gض Y:-q>A->66)9Pu܈"F fh@%YDy-S|\k~-%-Mc]9Z6JHXKkMQ;Dnp2/~LϤc%wyHZZ!kpOx 8*m"x4TFy ]M-wȏ_͐ hx7?*WPr@4"]ΎMY4 MioB p*EMo.jMǵD$6+eƔV8I ə(bMD>F! %] ,6ncѰj7&ޝh׆>;^7QwcW+UpCKUD~A&qB8)Na7S DAOJqI4 H>;w-JC;vR#0{zY٣/ Hnu";|PIRG9H7 [9zNy)P+,\8 utTbr%31kIL|hBscsjbnzłfD>m^> ӻ('w'D_:Z#ijZ@5Y8#29fRflz,4b~+|κ\9kJْc;InD}Dlس-5^c_{cHO/}g[yk:xẘ p\8p{L[HAG@,)J:7. '~XOnzz$]iߘQ*t\HZ=O_5 \gTK~N~Kd`S[lk…A}ZV&9N࢒O |7o n~`E_JӚCF4iʴrh𣛛[8lgT$-^D+Ơ4su"^3Y)X6>cMuYgf*=A[>`sǟL$-ʞ@ѱzZ$-(1US;ދ] lK`_`]mT"IލWPEo|[nGZc}g]lCEXVl|p1 ѕ ՟Q+RgO].BܻtrF@MQPN= M~\L|ʹi-fJ_葼3dyKG$o egF,8@O-}l̸k(B/AI"#0؄ jJNS2}5BJl Al OTσb?NQ8'nNwmd6CX_laVg-!jcփZ:sCu"1j]? V@@M)ޱHa%̛ß~rZ8!MCCD)|iquuՒ0/;3M۸4q V{I=w v[1[ C/ڂf_ə*"%l4k'T65 况)YaSʁHl=FD fU!99==oDF*+sn Y-=GĒ!^0syACPLGhe;~ ;, c-uY3*wi'az{&EjFEbOy2#H5g:, 2|B_2MN/d݋˭ij/4ty\mD߽MV f`]O7*(ِW*PK&~;4<|i 1~źh =ԫWhg[awPtm\\w4kI*ޮN.F،.<n#z-.\cJ aOp< `$p8[:C$?@K*e|NCVrܫ96X̎ 3*_r yr@H_Mb&gJXSѤ2O^"~ 93K>$9<2xZӘ `(ޯ<p ;?SBKPR8Ey`V\*#"9CAI@OAj_GĿ*+yڶQ \j5ac!k]k|$ aOusY[~'Ȓۜ;2fu5i3 q+BEwT:7ď׍)寽}|Fe{ccbMė nuYGlni 3$"Ql>{45w}2-Lt 7q0=dml ڒfFw Eflw?;QWoŒQ;~o0L{-q.miiZG8_&d]]jgD)) iĎ6\<5>?6K?a . Pn=6^z} #&Tփt`e6AGs\uuֻ#s1罼Tϳ<]g4Qٮ5gft gTZ)3K !#A8q0Zj/: GTδ}wsZNQaBRU޽`Wԝ IeBY"'ⰿ6YA3_*1eg#8yרDc'tʵ>d{Q5jK|Z"Ġ _y,pm h9CǍ.O}htTT6j ; 鮀p3&{%'!R >`9IWQg=jY$_-ˍ?9AW xK%[$<:7G\X4!MMEb i m%H"W(~xާ;ҁ(奉 FK]\fl2uƏf/-d=J*Sq#4!keOy :J2>m\X  Vg丳/qVf^[|Q´%Ѣ'Oq|.dMZ\2%QLCbAmZ+BB{) Gk'мg OR""d2k4)ZۛJ-Ǻ /ᧇbPC|Ǹ7d 9端{,JEjꍔĬJx]< L *\w:ڭ<$yL~G)S)͕t V281#pַ) he^&.pWld whiccNPh5KAɫ!,j~MD+ g2=,a(#^&_nDЁvELlJR e={t[h1)Of ܌vU&䯺 >8J { U\8d Xju9(%coi߃Xcܡn4$Y$xQ9ѣCYOLLHKledaoqWOJ r1q?ea`0pMXOe򽺝Q\hsYED_>9n`"Qѐlˍ H┍ᩘ}3wXGU.%X6D+pHPlpbpJ 0h"˚ %phQџt)aJ@t!6gnc$TYqjԊ +ӛt<R%B?!Mw߅u#٪.k7 Z ]vc)_Z|`j0gr`Z!EOom} uT+xc j J̾+*N$",پ$z d:ị a5/C'BϏ!l[Ӯ`; [>VkwE^A`,$;< 3h6ݳ|G[Njdij@%6??>UT;GD@,hzLlfIym`d1*rwy!6TW+o~ ܸgt i-HFQ<o()gϢr0Hq~?ՐqMoWWW=WIWę~fU̯<"%UX Rb wF#\Zq1}) OBoi W 6Kԕ={ ?|mn(t5F{GMGqI.8tHOugðr+%åOQ|G8%!f2T1ZSoO2TSX};+~1 /)f~b5~|""r PQ[%` 4VߥReU+p=h$_ޤJp2! [yy.½WQCC7fއr6M{gn\F&!Ư/ 'GoyY U6ȃ͡ʿx>ITț\Uތ y`P-,TG=7rBh'^cd 3p~92 O@}Rgݿ{M>Kzd 4Ň}(3#ҾFX?C9{̍ < u=8l9PK1tH1=(>?nuvola/128x128/apps/kopete.pngUT fA4Qux 7T?~g2p'XB%ƒ-̈P$JUʒP1 mJe*m.clmRTKm=9=sy^|,羞dV k߁./!Nۜsnh'zWxptTD|?$+?t {=`Q*jweQL`6@O@w"!mWe ~@S4 Ӏ( C-QY+'WF?9_@^¼yq }bH F603*wHpҥZ3vPic9MiH!N%Y,"h_C zֳ@:F5l\yV({67҉[kc+̲#5{%ba)})(Ԕ^mݯAfr<> dDHl8,*7RJzNUχ64XlIgM9 ü7%HKV]%#3T UP%Km2>[^f ;r@"+w8v$h&SGQpil$cFpZUlFY}zOaxrtŕ?524ߤ^^5-yXI%͈z4#ʰK@okՋ2*)ɽҼ"_7kL6uytxWxG>#ऑ5ρ*2cr7xf8[#KQ#Lv\omLaذ ֛,de@Mǂ ig<fVd{7YdlkII@/cZtdy›+?#_AFEfBW)5)9o:y 7kt)]p00Q6`sbWu9hTk f# BtgCGIKf Džmڻe[CSYT qD+GKF'A/J^v;&8x{IN i,tN&!mC%E-,(a;+Ȯ2c;1rb6, i[U+5a*,CkC0T|^pt)ɖȹ#}j[kDB߮x凓QDY{:)^YQ'i:{pQ(bt`-E&kUY:,o>e}c}re@H9'RDe"%l%`9{SYb#++=G̵:iUi еGǘAo{O:sk\KZ4587=ͱ=d}Sp楧P/Wju|+PrRӝ*w,"?@$"SP?ou uC ޗʼ'yW /8;ja(PؾoYĜTᬒit8O_9 mE.Ptq4g PИumc2IPF5 z8-ޕwv)bF{7fq*R0^+X_<8\kN_4nA4PZ'#(M&/}TFvJ!ʄ`%,"] do]4!fsgΔ"(O@άl[`hu;}p E_|WtM-k:) { "Ys 1a{(BIoodѢ6_rJm0V]?i-9 q H^OkNv mY{G㬃'Y MTkD[|.vfEV'< "1dfw$0Ej^\z@]ԮX ^7^;`Ó zim]3 q_3e︇4k}WK/Xw?]by_>Ɍb$su}$DUKe_ "DF(ܷ ڲ饳'jgX, P Ifa҆QE(e@ZBs6p3"@ݼWpD7=H ݕ~"XАmUku{rzEOe$,j&1d|i)B=2 p͠J;Zjaoڪ rJwPHwVuN K3XFރkvN>DMC`7# _gAIV2{^eh{g !Q^iTR4bTOk$ ڳŋSnִK3KTw#[J<{WJ_ u U𰋭qks6:L ycxy!ۏ l+t)|с4`~ s-lN;TD3"L!Ohts7qK_%G84w ^F,aa&S8 G7ù]sb ֠ûW{s5mJZZl va2#u0U7(?,r%gxyes}m sy?|B{lZd :W9݋Тk#  g%jOwB(Rs o=B"{C>8i`j9yb"+l.D r+Wf,e׬M%_IQ0}KpH3t XǴqC׽?a.!_Yن3V+5(˞P뼔y|#Ȩb)hھ#:X^`mZ[xlDsfhd5C1ãFz臫畴%:|R~n*WfM^.M?f{.3p8tǰᔚxs:]\\'HAЀ4w[XP _kly*N?$974-y!"ݧU2ғe(;PC>]L{]}С=4o?΍L)7@G鏕a+;,=2M93{ތv{_yQD-:]ݵ jykVD,% c03ee!Uq+_A|ڼ b~E/vv^.y@{ kee@F&7W":22$G6bvLs0YiK?H~wJ]a$lM g27C~NkX0eZ-I%!XvP,mC yK\+NJJ*{=)g6!47 <^1 mr};(Z9d>_B)f{ o'&J@k?@@뱯ZAw̺k ~0 <3MHk]\6dPQ<윟9zfHk^Ѯ|Y _>K,@Ax˥ QEi=$)g]^boP€.UM903u"Upa-b< Bnsu\VWuAJ^5óCWG4¼^ E__WH(<'ԡnL{hUm߭!'*,\ }SL/ W&4h*x0ޖ[:?+RLpۯ@A0H?~}Zx `y{6b/v 1+Y/`.3jO*擘CE,RGLqB.bi2SA!y+CuH-.ںd'-Wv9oV'dK‹I{l疇q+*32]CmOږZӶ7#ѱX 7Q|M3RV櫼xV;JO`1ڒѐi/NF֓qyLeI?L\ݼKһҁKxZlI۝NqnV<:߯#sLݿ,fbnG(dj_upo y!v́_JJ\il5GŃ۷^1j\ ʐ=BZا$W7@8:$/$6(5 'ٿ1//G߸ȌT"\Pg^m8{ I7ŵi9u)qU )KY5 [LޥRxh1Jӂ<܀Ն,szxbxW*v$E@îzR\^%Y/Sr3ch؁~cʮ$;kkk峢=LG"qK;ٰN8t0mw2掸.h6_rl05S3zhDh<}2wuUL34 bG=H:{r}a3KMoKxs%lMbX,89&ՒML'uSuhd=:" UcV>{"5R5k Jw"0lA^3s cbߺy^|+O3sOX${I\K2}/ܫs| rlQ4o.P#JeuJ(rFHCm1xOX:a4=}_^+\'7=t%;.s|Y7>sc8*jP )s,E|~+U))]]> bG.E8,*?E"W `V1~#ecy 9nCOiBq8kfϙS_:Y-?z\nwp){`g{]-@p\asBh訚Z~4>#kJ渓箂MΨdҊp֪TՈ9)U/K|HPPP4?VZ=Ғɩ_ ^ yj` F$!@cDO~11HA 貭wNLİ_TgBu)"Ձf+j/VCWJhqj32k7}w#uRŒ;G7A]_nՄƶ+DӦi^:zH܃@_$9yϑ'Ԫ8bǀ޽_MROu&/2* yA ^p)YpҮ~P:u?iD(߿GcjS|h)}41 h_űiKnbU˔"%=ľd*]]}at(`63}`ܠ`mlABPHlٲ7Z{ ٝBQz^-W!']r 7y-bԏx(E_}!!oxhoMƍH J,s0~vuR|w 4)^d_7RٜH4tAKn$5<}|r@2K WדV率L/拻m)yRGJ@5!3gdͦ<'n߈MKB 5QH6% Oq?)_YZA%/uu'E ʎ2FhF#M"A-*Q[]k#pEK ;xڣ/[RYgx;51I6GII G=vA|lyM!hqkGfYWM2}_C%O!:`/ZJ'+7u-g$#$Dv# EO8}ؗק7:b`? WA(~^EAkBO Zy :޼l툝k>Bj:pV$5m<>R%Kɜs_DGl,bޖ6v*s3^̼frsm9WxcIo"V&Mb>rGq]ϵ$i[n) G6t 5sg5P'*p~o^,]fӶipN3 XhS|/?+KE#o_%I0Y@w #G]Ӓz`'ø%FsY4h|URF#>3y,%í wyG49|yciPǞ UOuuCB}nDQxPlXmNqKDYNn&kk.yQ[ձ{G !t s 0`F UOsI]XF*lhΌ'C0k~L*i"2o)F OT^Ύ, Q5[tH&8p9vI UOuqPO֔6}ffn[*vm\# [Rm_y ؍3VϽbzNܜfoSd6_^^aT.,Kdn!5զߒѵ|uw\B~jDlKK dn]+E?Ln KttRTk$FwǺ^9+ lgx2 +@QOe _iG=]}©@z]8!^O?'?3+@GŸoNצ`#T-@CmD 21G&q})i e{<} ZeN&/F׼AT!᤻I ,Ak`s6SBڐxoZsDXߌyZms'?C]OfM/k6Noms_DkࢲtX^_*fˮZ :;8oֵ˄ xhrRt*e/lңkjkӲߢ1Qhjڃ^kNH2kxTGAyo-^RNiќvz{# >.k =;xox5G΂;G,.hnABGkY X((\(TT 4;ºg>d={)Q6IJQ8JEU,ɶg#7%Ub4LJLJ,A%EO0J=n7O㹩7lQKq pi*rU=(_f &jH(\+2>r:uV\C)d"ggSb^>W gx5YOhs 4N}%)Ve>Sܜj{]6̊xrjE6Q⎒if\-a ?hcH\@9z T.>@Cmwp?"hPEGpڪǤ U M_":i/|)N-|\tsMP 2?7揖1dp6 KKqmo q'{od$C:RIzOK/[ ci|N{lS;3WrgtIx:_=&0K*YWXB8ζLn?3C$6`<>lԸ^ow>ypzvs_-C܃ 5]$^_#о)X n!xRڟQ4fG  %]#Ғ.zt=ֈs쫵 Y|i:Q!^ e,6}dI+WZy{\[S171Riی[u;=-Em%W_bih?@. 9*I:,R_fICȫSǦ}Ы6u !=ֽ[0Gɲ mJ䘾|ofuDߩzcVB>!v7'Px^+G3w-Q-v*f.x Т-^/|jBEʝ$sdjy†dn]"UJb%ē!w,vnl)v.,Z*G#q濁ԛI B8) 5hV|k-9} Qė:)f$gbQ]L&>Z qhcpӾ!l1q*+])u2qCYp}if# :><kkbOyP {jG1kj4_qW460eҼzuW㊲SEY'UKY 驺pV]sVхIo ›Ls]-@sЊg[lwqIUmw)[Tw3Kk圎wC]fa`?)b‡_}5NOpY b?RBg9)@octaՁծsų=К;&eEZ}tl2bm3ڹsˁd& lڟܦv} ?K/g#ecD;I_=f.P6TCx]\ -~S 64iK U'ʑϞ83:x2W2YCDZg;7 `Υ|S&K~L;acø273u'Zv RF`JURUߩlr6vs?m w6x{|?`Rx؎n2KUJ %ǚr/]~r V:c'tx#x23nh͘]ЏƑ&3:6{ZzJ ug-4ds]+X}X;: y]4Q˭b. ")cpT^MiZ b,`foٵaނ#. {cmB'k|&(z@$Gq!OYOrc!tŠ.} lzUX.W$^KzׁX6r?PpJ9n/Ѷ Œ* _&:G |.=rS#aFr}j0m!@'>2엥Xk6)BڃջWX>||)B0|TJI(?͏PM|ˤ۲l Y]뚻\Bn.57;α>dh!OKȉB[A9$VCMqs̼<2ikmnWԘ:&X:29Y 5:G~QBt<>g3@h׆`Id:15 =Vndf:ivN`gŒ(x1vqlzMڲЮi 'ٶ2NQI:It;A_> Ú3 v՗ ʊo숓V7X?`ŮeD= cUd_1cZ=#uб*r 0p8>{Z-ӌFv(W'IPڄys8sRb[ 57| M׉ve_h<# .bhZj5 VV*C)PD[8E,33ݠݗ+@#_m)HwǛ30}~헛8߼!`|蛣oB6+ٶ[2cX|k> SmM)L:c0{պ:Ի]*R'S ؾsIXe!Y}kH#-5ZK.KWd#r%xf1^q*@R3tW>iwxM0wR.x9:j~+U?W.:/b0&oES8H0gKߞ>f' BiUQߊf}؅H P( ȴ# é9wz$IS&эAbݟ&l?Uu֐Ĭ_f ~5Av&$we)tBrͰ1^֊XϷj-tPoAkŶM;_! ]ܲ߮`E Y~h ]w'=_t< :fE:mk>|G(':;Y{`M[Oͤ]/v=TUo9ǿ .BSi SPWhA/?G8}dGe:ib%^^eff4vK2}ȃ&YEZGϝ3ᣫ*lJh6' ƹ Ai$+t ^x(z1 89itr *Elv@6:bV_2yC<*mN4_-idZqdnPltCZ)WsĞ Hae,J,W'ߩbn>VG}-5NdF=%3ɬ#4G|Hh,աW;걑6i# /%PB቉.%.xF26PTdqv;U*u {5AӃ~ISHzA8Cњa"(kѽo%쫐 6wEɈSl#D L+R&3kOQy+[Nk#6Qֲ:GeziF71B=A@R6ھWQ_`A.CII"\Wtv7jj<[B=&*Սvil#v3L*sfXz9fA7QR/jTVF{Tu }@}s1cТT.f3I⅄R=]Vh'V<;!97ˍR"B I)~z!71I:AQq 7qb^oqjIJy-PH+Dh.G KO9e/0mP}e={^QR[4ۣ)>X=WP-9ͮ|#fNӒvD2{nkmAм.P2/飦Őub̲.ѷ3/ My?b#bexqHw,Uag!U;qr=b.F̝dRA9زuxnc1Yr' M Z8~/OPm {0-r$ӵGз"У =H0 #gY;rť%B/PּiI?9;H4qV5ԵU,2D/Jci3M5ّ5 ]2c6 KkދѼ猀AkR'guMK"v)Cˀ޹a%@k%$|l69;%fVs_1ۑ{Yei.r2m7$E-4TtڛcSїnz&z}OxC+uzzl#:=5K+Q,kydNGD+ݏʕ9@~&ݽ|,'.AQAOJaY֘IIEsOd9Rz^1 bn5=MXa&] E a "sҚ% ?x|1@1n *oM7QE뎴$̭^S]51Ml,=J^G|>` ^`ྦྷ!ꂁ@9N>NK1 I$Ql^yI*v(at_[X8biqPf r H.)>PU\>dCS3dz =zb[ׯUtIJYD^\dY*gKjt3P ).櫣)НsT'z>%u,z(DS2ff3)IGھIj0V7XGQ}~]JE\:h-ͫh)y+"tE%g3Z&Qra1j&B֤-7Jpč1ܙqRK>a"-Nڕ5#]G`KXOXZ(eޣ9`O%8qꥦ{bLH(#*%v\ 9ҝYKk(<vSk&w ~-iiiآJ?kkRl-x&l]㒩Qk1*Ӌ,v0jO ՞͕+0; 7ɴ~ɉ:?Ι^3b &bxw\7%+;gحo)ˉ_Rx /ZJ|M%a c xH9 ,ꬋX./WHeVHSweiqvz-}*C\N~HűIwr:,mtr$ 2x`m|\@(f/ &L*J H. 7)}]G>rebps(%7ʤ2[ҵ:Ȑ.W "J-^4'6sgX) r]`'I`F{Y!:zw*QWFyм[-c[Q$i툱 ͛b ̚#RҎ6?JzFK,zq`BE0 B*}QA+Zc!8_jY'(ݜQ'o'h "u˶ jږ]iv9/]JwȸAM7mjDG ͥ\ÉW 0m4Y`v O?>Ejʕ[b\VirdCLZY1V4o5Lȝ=7z uE "Hl~lfeno ~g={35(g!"RhUf2\A!zd.ԹOǻ7&h̛O M5C9 Bq`BC39'חlB NND>{'{k:rCScʏIOQAF x|#Pz*V 5\'Cl;_q6{;96MqͅҌ{ʳDJ Mo/z^N#i\52}mMP~kt쐜Jau ZBU"T[|[6܀Q& rPY(eIR~92<~zXC+nMl4gݔ 5Mj΋SgrC`F#RȢGT~:XOD:iO %tdC4@y -;؛=!8}W0l71bcWO>{?T2vf7ݖq@voO*UzRH͛hlF̞Ρc90wETG:X@+ԄY22Rz^?N"'3v”eaF?X`қVprbk] i mX`;蛂P iFUR>/6,[oP-Y@ĝΧ-c"'nD_~LJe=v:3c~^XфN7D=zB=eص^Gr trZN#1H sd+s5qj r[RNΏ _<aIZpgت U5?)͏pz6'(28Fò- 3 A d΍a3b+HtTi;gjA# z,GWST=b*k͏+BN8a)0.+jq> ׆3Y䀰h"B_Q'?6wf Z\:r &!N>05aOWT&s״?TNn tfM14[m+^%>)/4W/_3-VQ2mɌjl #lS[Y>+ά+E5æ(`xI| 10|0, 7<2Mﮛ@tFDo)-k 35c+;1uҷҜe{ǣ̽oh,2H I*I^NV\+uyTPAffUΊp004<$D APFE'3*uoaäP 2׃ x"9^Btr+c<ଽV/C|1i&`lK!!T_uRhrsMM^6ywՑ9#c؊Sh } *1HS"fU# Z,tUEm lyE:=DggV+v6gw[iך:Cu%tt^u^ܻI@V)5 Fz1Z(^p&@h"ֿXNZ^AELVQ<^!Z7IgBwC~`oG'\.c1 @:B!w(< 2T7.7QBeXn \\Óxk}'a SȈҺfApS8H ~PP$;Y715y[gi Jl}f6="cŽ\h{N]LM%Dx0G@r.%s;BhKz"0D.R: >]3LDڪüӠN_SB~taX o_ػ̷Th(h2J9\AT@0}|5cnmL9mYY)>qK, r'+b`Wl:lºb)l[=;<^ ZD$mVy)rDr؁< [v21Ѷ~}N;~~-7YMĞ dO ēseXlMn+Nߨ3d$R_=NJ=]Jv7T0frΦAWwa˅S'.E]8o5GՙPPg;9#b#yt6d%Bר%au4-ۂgضel()Cn|@56'~}6XS} re>\;.@ElȎO/S7mi^xWb*ᫀ>jW{&똗Go+8#-o\3$eb~uPQ Q΋_yF+ioLsWB{Whb٣_yx 3/~c橧4ag~}owoEhչDxeAe僗ןyw ZȳuU?}DN=)R,JޖuSQw_[rțUN.RF*i B0]/ϭzӈ\G W== (w×U 2{h#Tol=]o^O7`NI OYJCp֘'I'B7"g](}<~f0Qf=7L0LxH OoVi8Ҋb-${Cҝ0 Eܞ9Xz%f/j䕳>o P$d-EJ慾kW-ǩMuݚGj#vAOg{ Fj2Y%B93K ! w#2l`OO^OGqj|nn>7WN8+*σX֔{Bݨ >k7z(l,"^9Qkx͸ `k]06r8;͐Co_>Xnka U?c8ȔU7n9yzkiw׽ Kzcįݚr~KS3u,J9*,dUjYM9֌-jMXq1ҠЦ՞}t 6 ][0zSqHaK/b"=hyYmH;H*yxTHfWqx-*g/BtJa>5W5W}yapE x\躺`S({I2sX^!'kJ&~IRFסWX^5F}+fN#xRteI_4 e_ H^%E+4 S^FQ~΋ڬ"d{ jF9MќaЃX{xPZ =w 53Œ%4w8%vjXv+}ȝ'cp4~-ؘdEN̆I SFdEe㵖%s~Gf9o}[=Or a3.2ZI\f6k~L32+J,FYk8ZX~Ƿ=x, 2\*3bY+ϲmN^{ۡ5'_PV`VpuRo(A]9,f;2]6LvgҚ+[+s OPI"B6+ 7[ gCOP8m|Z7I% _ƄA/.!*d#B-s&Ĕe|SX^ {΃gWv 4(-8{%<(fA۹7Sж sYY9s~C NUtB|URKc1Ȓ؋ C7lQc͐}ÛY-rAp |fym`O)Dx' bM!6yN'CȣHƼ0*d_t+nW^?[q]Q0 YSȹ,e::*[UV`E|)|zƥNTa+G>-%McVW]qce@YQбuvSVca\ T{Y[x (eL-ǿ{!˥v%WװAu_M/ETk-6~VxB3J^ʯ[E  ܷn@S!>)J4~ Yw>h&9+2=2Zّ#87M:z_\{n7}ΨLr@մ#|w rw|~XK >=L$EƮ>/.9A3VZl/@j HE~i,zs5ړ&f\{hvH@7dAbr_vʜg˼ Nh:9w !Нrqz)xO=*JJ"HޝZ\o(lp~ܑ Kv*Fʐu /7 QD?m߭b;bGC0Vnyx Λ`'>|w!;kŝ8 | 5yv'tKmSABڗQ%#ieaOjjL y=H9 >7&Y<*oEx]k`'2bu@~}5D09wx:mOBg!}-'#]Nֺ *@-R8y #DtWr~s;}>`ðmRd>1̆~qarq)iƘht7K[u,7u8={BUոUގZ'=h[c|.KR0EQyv}Up3` dR=NL˽EO` (QҪnG}ӷuetBPJƅ$ ;d|xc:) 73R܂^)F1j);;;$&|/EC@,Ov&Ny>+MG 6;> Qycy>dY4MFdiL4bOgM5V12,pB` 6E8'w.$dja2k2*+z QJs,hy{SV𲞴D[`Kt|hV=EM?i;W4I8Nb~l|1[ogÿ??tekTs73-] ez)\ 8T#Jv㶽"j8sFvU5T٪HTqoyZ=G!`/ZpjlW)OȌ8%[Oxªe`h=u-413dFۗSTU^@?}!J  }JV@:K=6}vBX WvdOyhաM<+FqƖO޲:pJ jN[~?,dV xdFdLB F)!WUaz+lV4:~.'ɍeI]n?+Q5TN[DgVt,o.O+5<>ά-p|P%$Cx@)鐶Ȉ_ҡ_]+; ei[r X 1k}Gngd[C܉1vUDj: ge0-;oy `=ŢA j}:Yi܂Ipb%*ea=CfE8bc<ϖ/Mo!E*tI HR`cͦzf..z\@] D?bL{%X@Ғ j__hd0=^?/D@phS SoP6tP-:UQIgU9MKe BGXQD0qg|p~~nD=fCKW7n`@'wY1M]< beǂsP+755>9((n $_tYuﺄo3svUQ/U$hqMXD ьŏ[3뗆ti3yI %늑liwO\Q6](xmZ7Vؽ9 auaKy瓯W1:Q>[*-i,e)  +t]C*P@PCB{ H_{?oԌk@[e^;vB)pn&m44K'#vkY=SW8y降܆]/Բ1،Vւ؍ ӓ TոHT&-.M dM3H!ȇS.TY 5 'RNiR?~M|HAi)ݸg Wb@i6uQ5ߝTH.!C|nrAlz_kk7;{ݽPDGVO_J=FEvB5/ua>mex SK?HM? uUJ!!^)9wⶀZӡ557mQW_dʥ# xpJqd<2놤vi1#0] AY{a;!iSAmTK4[/9 9[ȿ}ℾ'O- .I&7̸t lgz7ǰ;atLҕB͞ک .!4[X(hsaܟ؃g6VeK rUJQMAS vO駖e*2 ~M lp 10ę+oގ-Ɲ1CP`-T\o=x u L~,Kv^#Kp]ԪV`VZS2זdWE`Aտ ]T~oDTbJc! M px[HC$)i=$C9"q'LSH,"Xlk.:c.865 +\)ܜ]@Ü? #vDh&XOU.0_ -aTŗ:LUF:V6o*yzZ:L SM@k {O3j9z!Q?>dp ;8B$6T!3 |pzsp3qP.^ysu!sąWm[B 9z(<+?Sf=0 (EfGfG3g#A.TZ()AE<⷟b+lO'bz:(ƍnmv!Y+zASհoP߸c\69޽twx{.~|v> pg(ˠ55yD:J'rXuѨĝ ϋ9Ou%/P99-ݹHOy@(eާ2S{moڙ@.xri؃xBCf6Z r yix}ȳi>Ejj+:eev,[Av `5yz3h==-  a7*[X"gW ց%KZ۴4'neFg)"q4p?\s(OR9EoTgXئI>*b51Xs.ݔfMԪoou(;g HM/F(YB#iDCW*n(0z ܰy1?=; q7} SI7M[NE Tŏh_Աpކkhfi-_MF;FkN!=E gOFVJel81>%qvL&mZf)glt y)]]205dඳ%m?{jvB̈́ >Kb:8兰R[=QfO^u'MfKyXp4kvi7t(1f =p.P/RjWN[֭,񞕬gJ邯 _ձ .;PDQ"'pf]ɇA%y)KE M5I"[wt7Avs,"B{|W_wHm] Pqk<ҡjІq}rݧ"lz`c g Ӕq: )=opT f':Wr/\ } ء{`sf6&Mh((҄Yqp*̳Q!PAJþvtuϧU JA]ܙ~S+MOB<|phAYj<#fg^l8f46:^Ƹ,^Be HaT&P/34 z֋l!2$U F_"TxjcoS}CB Fh& o |?̼j+}OhU:dcJWeM;NJxkIոh5t{[jwbP4cz }nv\TqowPy&AÑRS,k7$gw<2%-l ߳.b\ErQ}'ᕓ3kpy02~'4d8#a_tGPnі~Qx+4seE­/ȻQ3n[_0uvRt 1԰*\$$ }[Y[ښ9PK?[A6k~GgmւkArb5`Q,(~L)Vw3g/q|6L(۳ 8&nk;xX5b>ʺ{q9>ȹb^ XO4W>]Hv{F؟>Ðи[[ԓmX]1"ũwV^#7lwA=m|të=aG("aIaC N-"Qg~h2Ky`N'&]$GH;럐[Xkc;勂@bo5FȠWiE ; u?LgxiTBNn\V㠛wh&]*UFͶO\PpGQ\KQ j*ح\ sL#dΑ G_W䑼tnAQ1j^#hfl5ڌ؆8S !iVN%*>B4V_ z#npBڙru[!ۆO?EUR= '+JIr hwHy^ȠHwl /b$,xH#א loBk*&Q\@7#TYS~CFՂ{]z9.7yo琰$&ly*,,:ToK ?~ӂuQmk W}' O:ԛF vg)9??.ݬ0;vA{ |!٢2 uIFse;s_}p&/7bO HU2-VZ)@ Vz~7NLG=A3z˚lݔ-srJyqd''Tn`q-k'uȮ:'~, Yn1J] wh#XHm4͢ftwI VR njȪɻB< l35!7?}:p~mFn0D+-̢Jr;Nnv')O˨ggUWSow M& ['SF5Xhesmlil Aߜ+H!/D6i~nY)p5H4sruNuh1ٰI/^Bo/'--x5p=&pkZ=uuhp~ސV>g'FܑhNS1O!LTp0 HgS0TWƓJL>++3usLzv-O ;Е&./q8s3uk#r[PpKֻU:d6\b_}>:nx8gɁ+#C+vfs~#C˕;0;'\s3/ Xn iЪΰ snXArNW$Q dƢ.#lnXyV ",VRq/&s A<9zRZV-7Nl#TRlwo!m9{S1HzsjmX26°ٞrgM0AF#՝Y#GT1G^5`WzU_S¨e hل MOj2z(X 1R gaY0l 6` BSB].,,ᚄءKL<cv!,/\l #ЯihrLV:zn& rwC1g$Pt!Dz(,<_ıB3OQu׷C Ot75SxuH}pr,xUyAB=̏Rvb1k 1lnJ`]AXt݀}mOޔV8'Vbwx=nj[y.,r,6柼3$\x#cvz]O\d='ڶ;ݫ\pb|EYQq2;{zC}G]ǫ5S˕9kڴ2C@l|T9ܠJEڝƜ޿!5!5G]637K'\~n>FyzFA\gF RUӖx[QQSE G ]_<@>6ia)VtD->؇ϟayyK-[|:f]&ȹN7k8Gv)bBP|hy%`ݞ2!,RhQoA=cZNSj [4EmNv{n3Tk9x rjɞ^ _%zp6p)DGVԄ^Gj`Sݾʇ"/|4F0o^ l)"ן[Єt`7rTj!ޡ U-DX'Nn{Ni% ^NSQ[B\۲r9a%4+mi'ogz,ĉ$Z;FQyGñ_4;s?Sǭ³c㘧VX|""}Gs|̼l_aױ/Bךּ4XCڜGU5 BE6-98J!W$m>P^\kzꌩ5ŋDت82 ͡~@\ ػR& 1B l(BmO>0ؙc`q jMQLP;:BV/+I]k VGa~=DP>Uf&+GڈqIm57 d^S/AXL:-}o%P)9%DK-*xa_=I|=@r(*P,39ɈMatFER|}|#az"![Gh(*gl )W~d T3݈u?]\u +Ô6l=Si I?v*B<ɠF}ÀP-,^fͤP' թfҖ/P,rF]p-PfnFG ≊РF,+L)+y` C͙wTy F5wrcȚQa"8 y$΋5yVNeإ!}oL@r_0rġ?:R-MkC[$3dpUy\~mڊba/j؟{@N|> x>7:=B$k#J<}wc?mvW.#:!:k0H3V[0\CA$BY9"jzC+~nFv\+>ֈп'}0s?_/jOP^ܥzFG%AeN󺨠Pxiq?2MW4>@^Q^rZ9eDm$#N7/sDG*_9q;NU]p8_EhO =wx+*@`@ImcK_@YFq[ª)vu]}9ԧtu 59LL)&R8wsk.I Qn2Շm~73K![+"ADг^*(2+K&?]td3o@mqus eUrW4SOm@ xiThر$hRt *..@;N Z4s ۷o{jJ<%kne]X2^s)%]OBYDG$ 4{*7i+L{NA3qbS<%!, wzhUn#@y1%VP fp6V T< ͻL,ضI嫂̫kp͡ĥikZ5MOG`Z}6Uj' V w ZS?.:r XoQ>HJ/=9rۙw q 2q8ˊ;9vֱN.l\0K;Xeא*K|DpXf]KoҊb=5Tv[ c\iKm'^+,wv+WI&-`9&nbB2tS!I,Yk3|Y-?}^x4 = s=&(Mi+h2遏{i<{>8wzxwjk+[4Q M+h jMmP'6tm"?O7ߟ!W VN9~ia}ej*4рXlo99X ??3 ,Y PFc4#Bآ鿌wB\W?1ap,\'yC=I (( 1S,|tF ǡn*@U1yBa&9R7v"]N>cC X+\BLQ Ŷ̂}ʋϨoEX\D{V_4  GsPɘ ܢ"q#9)3V@FASxHA;s zcCU\!__h7!t[_24Te,HgUUbnHŇEU A8ܾU`}2&CL Ym-۟CdeeHp-j OIϵ?(T$Sذi,D8ܱyVȿ ~j C@ ki'5ūaӷ})4@LZ`_)E0W룦gKGDsXsr:b~D0un g#ՀYw\k܍oxp1֖0Cmؗ('G]W$D19M?OgּC*47itgէ'sXg5s3Z+3qd.iÉ]D`J*Hߞ-`B5Fwnx ;h)U l\F,ѳ;gƃAn%Mءi?0 rty صԷ~j[2k[.!7Pb<߽J~1|ƒS;)wN JNRYutZX\\n5ƻGYYs`LAiLfslUx,<|$,{1;ER3W݅4ct6,\py'Aq< ^q\AHv%ΣD@Q&jJN7 OF:CfeBGB /Oz~ *=?|<znp6VJZh!4֌;3e2{ zG8D /[dZ!jd.Mbof}d 8ϖ|!/#n AUafېW(Fk/z)⟬}F n<1 J(`A%:@`0lbݲd=9wz$U[.xI:'akj/#~pf Ąڍ6س!X C50㝦TW_Aٺ#^&C >>2pM@Am]gA)!lQPCXE[~,ȇ.);baײ/{Q]2uc-\ %ɘsʘȸ#"AjgA"] _LMJN,/7/R[W|fs +5uYs8;c;AoOp'0jw}WTSK(̞P\ybCt4, lhjv(w{=2M*MK\?i3@~ܒ5h O4n Vge-fe鱲Qvݏ>}f{Կ!U꺖.w Ww>-g3d45j__5 x۰wwM3-8G>VxMx /ۃL+^9cEŸ+ͯXU}=췴l>]Ҩﻛ+Q##v4`~o;HGj=}oUF8tn:]R59f.vXw̟|K,k1[L>zQ1Ϥwj<"Dm#~npuP@Tf G 4#~Rmͷ^:bS=:yq$FnF|Zg(s`SҬ[%U?l8vm:Xߙ_(miدury+8ǭO7UPH׾FTYC$ )Mul, Ex٤֣i*zTygw=ߑw^.^>Kǡ`/0Fgr,D=О=Za$tRj9+e'@"WXB_@hzu!?2#]>\BUuKkuၹ.6eT;~JعvF&*a{&0iuL~Cu Yt[Vd.Z&*-݊k[ ](BsbXb  \2F!62S2@'G\<&6^[ ĕTSiz$ҕ:-Crˁ`^}qhH2ajdg"9:mO~Yʽ1'?`>)4À79cXXIlVrj9JNnATԸ^ISe)]l,B& i.^A͉7i*`*Q{U9{#kK dh1YR^(۫T>ߛ]Wq(j8CoVmxv5-?6>z# ?QmZy[ن*prןN3_L_tuů|;D\05Cٟj,~;rfΘk[ ҄ 7'ȯ.#|̃LJ#xalPh2k4yِ lygD]O(Fyl2\ߤgcL!ɑșFc_^7Z:1P"WI0$HgqI䍀%d^H(b촿QM? #J嬺]4軱p٪I($ڌO4+t OO>:ln] Әp.y<+ _oxoazlB1͘`n6|r(G)뭪f;V͏ɁhE>> /:3~R2iCc%85-7搟GS{p KP\<Ʊ}y[wñX'g'N:E"n?L#,>ayO#-Q1%fØ#Mj SP&:l_7ARt1gQߜgD5{P!0z-p[{di@;&71cz2-}rqȑ#i:Y|)Π% iЏ<- #O=E`zΟ f)swp2{vbv ʟ/iǙslp8p7Ǭ3Py.h׵LxWC*9SB87+\owU}uWDo{<ˣಸRȴ?<[]V*3; ?_~T m-.1<: ӠϜr֗4}o | hs/},+GdzA>!_ClӌwnY-qw+2'2?^ pb@+^!}&4"/NDwZS_$TUe)ի1DA&1$wήc.xw/-1zJq_;UE#.A|ChRmQW @乷QN?K+&Gl㧟a' 1.ә`[FZ&.^RKeV$cK\٦u}Rv}aѶ]FUVt&jOVMW۰J܋%R TRcRshb_U8cɟ9Wl(MA#ކh⨱e bRR8Mq-wbaMɀoJQo Fi=S4^*x8ҜYVQ-hhhkUctx{JѾmX<*̓NAλ(jeZ}jaQ_Z)X+G,+L]OU?9Oيyp|L]H8uEe*a3-KƬ%`Xx\>30_a`){k?V)@(A!_Nn`BRP%fWG\u$P`],<\,b_ko 'ʣ uyx7}i'.E!OrKJ`cm~FoW\{Y?Zks|^򑀽MkM'cd8Ό/o sOWdr*2q+B_[#7awA{~z!H n}u>mƢ 2hJȈ⏋.RzjӾ˟]qu/];@ov娬7&f?~jdO&o )|:JbDQ맬Z8<>6}@1 &z@`h+J}nvb*[KABe-hanRvL r<㱃M S=i9ObԠmZҿiMi]@Z0s~c2Ѫ)Fov8I<Mg`OsتBAk(TK7;DždbZXԯL#cx+d}TϢ]YG Ur*v=mZmMc_mR*]EU> *#5Gy^[S}_y$-/Fpσ(n2,9ݰ)(ίH^*rwygs3 MF+0]%A8 ',!:0 G-q|zſL ΍ C;7;A@%Xq1؃pN0>"IeSa*U {C.Gk34zCޕTV%`+ތ36f85LD7kJث^hx-&{|1@+̍fe\%M| B1)JLQg] kHeRڇ_iJѱ+JpV2 +u^JKjUԾ?FJsi2›SؑNU, JZË6doy^״ΠэkTy7X:2J)r(G[,:7eEb%ѡ_a.@lL- YXו% cC5uٛn`%>V0vW-DyϹKW/*E kB*Vk,,էN'l9  sx&uYFջv@2@FRcA?7u\xtD #:O//29oĖvXA<Ƌ3d B,IV>z GH_2> ` R tx#u¹jڬߛ52DъٞR*(ebvA]J\58褽"N9H4=yؘW4%Rq [AU(LʕnUC;17j/+u7)_"ROϰ LZ%>EB9o>‚@.]X YnZ+f}L_ g Q&iɟ~^Mey:;d-ɿiRTJǽ.@r F#~O=dM+`g_lbT&+q$ק5&w[Fʟ0r]Z ?k5E x.8'fx#iNe @Ty6#3xKvo˺QfpbVnjp9YD|"#NGb|?#q AkWqMQɎ9K<3YNfGNF jmE[.He:BNԃ/#ļZ/܍|#`e.,EAvY0\6tɑ?Kr@4#7c@kwy?DPKt91׀Mokq'nuvola/128x128/apps/korganizer_todo.pngUT gUA4Qux ew\RA=[p(nM̬Lq[YYZ@wjCLWʒ )6`7*xyu]y3Eymy{ږ7 \bH;I P]3tr$ 2x`m|\@(f/ &L*J H. 7)}]G>rebps(%7ʤ2[ҵ:Ȑ.W "J-^4'6sgX) r]`'I`F{Y!:zw*QWFyм[-c[Q$i툱 ͛b ̚#RҎ6?JzFK,zq`BE0 B*}QA+Zc!8_jY'(ݜQ'o'h "u˶ jږ]iv9/]JwȸAM7mjDG ͥ\ÉW 0m4Y`v O?>Ejʕ[b\VirdCLZY1V4o5Lȝ=7z uE "Hl~lfeno ~g={35(g!"RhUf2\A!zd.ԹOǻ7&h̛O M5C9 Bq`BC39'חlB NND>{'{k:rCScʏIOQAF x|#Pz*V 5\'Cl;_q6{;96MqͅҌ{ʳDJ Mo/z^N#i\52}mMP~kt쐜Jau ZBU"T[|[6܀Q& rPY(eIR~92<~zXC+nMl4gݔ 5Mj΋SgrC`F#RȢGT~:XOD:iO %tdC4@y -;؛=!8}W0l71bcWO>{?T2vf7ݖq@voO*UzRH͛hlF̞Ρc90wETG:X@+ԄY22Rz^?N"'3v”eaF?X`қVprbk] i mX`;蛂P iFUR>/6,[oP-Y@ĝΧ-c"'nD_~LJe=v:3c~^XфN7D=zB=eص^Gr trZN#1H sd+s5qj r[RNΏ _<aIZpgت U5?)͏pz6'(28Fò- 3 A d΍a3b+HtTi;gjA# z,GWST=b*k͏+BN8a)0.+jq> ׆3Y䀰h"B_Q'?6wf Z\:r &!N>05aOWT&s״?TNn tfM14[m+^%>)/4W/_3-VQ2mɌjl #lS[Y>+ά+E5æ(`xI| 10|0, 7<2Mﮛ@tFDo)-k 35c+;1uҷҜe{ǣ̽oh,2H I*I^NV\+uyTPAffUΊp004<$D APFE'3*uoaäP 2׃ x"9^Btr+c<ଽV/C|1i&`lK!!T_uRhrsMM^6ywՑ9#c؊Sh } *1HS"fU# Z,tUEm lyE:=DggV+v6gw[iך:Cu%tt^u^ܻI@V)5 Fz1Z(^p&@h"ֿXNZ^AELVQ<^!Z7IgBwC~`oG'\.c1 @:B!w(< 2T7.7QBeXn \\Óxk}'a SȈҺfApS8H ~PP$;Y715y[gi Jl}f6="cŽ\h{N]LM%Dx0G@r.%s;BhKz"0D.R: >]3LDڪüӠN_SB~taX o_ػ̷Th(h2J9\AT@0}|5cnmL9mYY)>qK, r'+b`Wl:lºb)l[=;<^ ZD$mVy)rDr؁< [v21Ѷ~}N;~~-7YMĞ dO ēseXlMn+Nߨ3d$R_=NJ=]Jv7T0frΦAWwa˅S'.E]8o5GՙPPg;9#b#yt6d%Bר%au4-ۂgضel()Cn|@56'~}6XS} re>\;.@ElȎO/S7mi^xWb*ᫀ>jW{&똗Go+8#-o\3$eb~uPQ Q΋_yF+ioLsWB{Whb٣_yx 3/~c橧4ag~}owoEhչDxeAe僗ןyw ZȳuU?}DN=)R,JޖuSQw_[rțUN.RF*i B0]/ϭzӈ\G W== (w×U 2{h#Tol=]o^O7`NI OYJCp֘'I'B7"g](}<~f0Qf=7L0LxH OoVi8Ҋb-${Cҝ0 Eܞ9Xz%f/j䕳>o P$d-EJ慾kW-ǩMuݚGj#vAOg{ Fj2Y%B93K ! w#2l`OO^OGqj|nn>7WN8+*σX֔{Bݨ >k7z(l,"^9Qkx͸ `k]06r8;͐Co_>Xnka U?c8ȔU7n9yzkiw׽ Kzcįݚr~KS3u,J9*,dUjYM9֌-jMXq1ҠЦ՞}t 6 ][0zSqHaK/b"=hyYmH;H*yxTHfWqx-*g/BtJa>5W5W}yapE x\躺`S({I2sX^!'kJ&~IRFסWX^5F}+fN#xRteI_4 e_ H^%E+4 S^FQ~΋ڬ"d{ jF9MќaЃX{xPZ =w 53Œ%4w8%vjXv+}ȝ'cp4~-ؘdEN̆I SFdEe㵖%s~Gf9o}[=Or a3.2ZI\f6k~L32+J,FYk8ZX~Ƿ=x, 2\*3bY+ϲmN^{ۡ5'_PV`VpuRo(A]9,f;2]6LvgҚ+[+s OPI"B6+ 7[ gCOP8m|Z7I% _ƄA/.!*d#B-s&Ĕe|SX^ {΃gWv 4(-8{%<(fA۹7Sж sYY9s~C NUtB|URKc1Ȓ؋ C7lQc͐}ÛY-rAp |fym`O)Dx' bM!6yN'CȣHƼ0*d_t+nW^?[q]Q0 YSȹ,e::*[UV`E|)|zƥNTa+G>-%McVW]qce@YQбuvSVca\ T{Y[x (eL-ǿ{!˥v%WװAu_M/ETk-6~VxB3J^ʯ[E  ܷn@S!>)J4~ Yw>h&9+2=2Zّ#87M:z_\{n7}ΨLr@մ#|w rw|~XK >=L$EƮ>/.9A3VZl/@j HE~i,zs5ړ&f\{hvH@7dAbr_vʜg˼ Nh:9w !Нrqz)xO=*JJ"HޝZ\o(lp~ܑ Kv*Fʐu /7 QD?m߭b;bGC0Vnyx Λ`'>|w!;kŝ8 | 5yv'tKmSABڗQ%#ieaOjjL y=H9 >7&Y<*oEx]k`'2bu@~}5D09wx:mOBg!}-'#]Nֺ *@-R8y #DtWr~s;}>`ðmRd>1̆~qarq)iƘht7K[u,7u8={BUոUގZ'=h[c|.KR0EQyv}Up3` dR=NL˽EO` (QҪnG}ӷuetBPJƅ$ ;d|xc:) 73R܂^)F1j);;;$&|/EC@,Ov&Ny>+MG 6;> Qycy>dY4MFdiL4bOgM5V12,pB` 6E8'w.$dja2k2*+z QJs,hy{SV𲞴D[`Kt|hV=EM?i;W4I8Nb~l|1[ogÿ??tekTs73-] ez)\ 8T#Jv㶽"j8sFvU5T٪HTqoyZ=G!`/ZpjlW)OȌ8%[Oxªe`h=u-413dFۗSTU^@?}!J  }JV@:K=6}vBX WvdOyhաM<+FqƖO޲:pJ jN[~?,dV xdFdLB F)!WUaz+lV4:~.'ɍeI]n?+Q5TN[DgVt,o.O+5<>ά-p|P%$Cx@)鐶Ȉ_ҡ_]+; ei[r X 1k}Gngd[C܉1vUDj: ge0-;oy `=ŢA j}:Yi܂Ipb%*ea=CfE8bc<ϖ/Mo!E*tI HR`cͦzf..z\@] D?bL{%X@Ғ j__hd0=^?/D@phS SoP6tP-:UQIgU9MKe BGXQD0qg|p~~nD=fCKW7n`@'wY1M]< beǂsP+755>9((n $_tYuﺄo3svUQ/U$hqMXD ьŏ[3뗆ti3yI %늑liwO\Q6](xmZ7Vؽ9 auaKy瓯W1:Q>[*-i,e)  +t]C*P@PCB{ H_{?oԌk@[e^;vB)pn&m44K'#vkY=SW8y降܆]/Բ1،Vւ؍ ӓ TոHT&-.M dM3H!ȇS.TY 5 'RNiR?~M|HAi)ݸg Wb@i6uQ5ߝTH.!C|nrAlz_kk7;{ݽPDGVO_J=FEvB5/ua>mex SK?HM? uUJ!!^)9wⶀZӡ557mQW_dʥ# xpJqd<2놤vi1#0] AY{a;!iSAmTK4[/9 9[ȿ}ℾ'O- .I&7̸t lgz7ǰ;atLҕB͞ک .!4[X(hsaܟ؃g6VeK rUJQMAS vO駖e*2 ~M lp 10ę+oގ-Ɲ1CP`-T\o=x u L~,Kv^#Kp]ԪV`VZS2זdWE`Aտ ]T~oDTbJc! M px[HC$)i=$C9"q'LSH,"Xlk.:c.865 +\)ܜ]@Ü? #vDh&XOU.0_ -aTŗ:LUF:V6o*yzZ:L SM@k {O3j9z!Q?>dp ;8B$6T!3 |pzsp3qP.^ysu!sąWm[B 9z(<+?Sf=0 (EfGfG3g#A.TZ()AE<⷟b+lO'bz:(ƍnmv!Y+zASհoP߸c\69޽twx{.~|v> pg(ˠ55yD:J'rXuѨĝ ϋ9Ou%/P99-ݹHOy@(eާ2S{moڙ@.xri؃xBCf6Z r yix}ȳi>Ejj+:eev,[Av `5yz3h==-  a7*[X"gW ց%KZ۴4'neFg)"q4p?\s(OR9EoTgXئI>*b51Xs.ݔfMԪoou(;g HM/F(YB#iDCW*n(0z ܰy1?=; q7} SI7M[NE Tŏh_Աpކkhfi-_MF;FkN!=E gOFVJel81>%qvL&mZf)glt y)]]205dඳ%m?{jvB̈́ >Kb:8兰R[=QfO^u'MfKyXp4kvi7t(1f =p.P/RjWN[֭,񞕬gJ邯 _ձ .;PDQ"'pf]ɇA%y)KE M5I"[wt7Avs,"B{|W_wHm] Pqk<ҡjІq}rݧ"lz`c g Ӕq: )=opT f':Wr/\ } ء{`sf6&Mh((҄Yqp*̳Q!PAJþvtuϧU JA]ܙ~S+MOB<|phAYj<#fg^l8f46:^Ƹ,^Be HaT&P/34 z֋l!2$U F_"TxjcoS}CB Fh& o |?̼j+}OhU:dcJWeM;NJxkIոh5t{[jwbP4cz }nv\TqowPy&AÑRS,k7$gw<2%-l ߳.b\ErQ}'ᕓ3kpy02~'4d8#a_tGPnі~Qx+4seE­/ȻQ3n[_0uvRt 1԰*\$$ }[Y[ښ9PK?[A6k~GgmւkArb5`Q,(~L)Vw3g/q|6L(۳ 8&nk;xX5b>ʺ{q9>ȹb^ XO4W>]Hv{F؟>Ðи[[ԓmX]1"ũwV^#7lwA=m|të=aG("aIaC N-"Qg~h2Ky`N'&]$GH;럐[Xkc;勂@bo5FȠWiE ; u?LgxiTBNn\V㠛wh&]*UFͶO\PpGQ\KQ j*ح\ sL#dΑ G_W䑼tnAQ1j^#hfl5ڌ؆8S !iVN%*>B4V_ z#npBڙru[!ۆO?EUR= '+JIr hwHy^ȠHwl /b$,xH#א loBk*&Q\@7#TYS~CFՂ{]z9.7yo琰$&ly*,,:ToK ?~ӂuQmk W}' O:ԛF vg)9??.ݬ0;vA{ |!٢2 uIFse;s_}p&/7bO HU2-VZ)@ Vz~7NLG=A3z˚lݔ-srJyqd''Tn`q-k'uȮ:'~, Yn1J] wh#XHm4͢ftwI VR njȪɻB< l35!7?}:p~mFn0D+-̢Jr;Nnv')O˨ggUWSow M& ['SF5Xhesmlil Aߜ+H!/D6i~nY)p5H4sruNuh1ٰI/^Bo/'--x5p=&pkZ=uuhp~ސV>g'FܑhNS1O!LTp0 HgS0TWƓJL>++3usLzv-O ;Е&./q8s3uk#r[PpKֻU:d6\b_}>:nx8gɁ+#C+vfs~#C˕;0;'\s3/ Xn iЪΰ snXArNW$Q dƢ.#lnXyV ",VRq/&s A<9zRZV-7Nl#TRlwo!m9{S1HzsjmX26°ٞrgM0AF#՝Y#GT1G^5`WzU_S¨e hل MOj2z(X 1R gaY0l 6` BSB].,,ᚄءKL<cv!,/\l #ЯihrLV:zn& rwC1g$Pt!Dz(,<_ıB3OQu׷C Ot75SxuH}pr,xUyAB=̏Rvb1k 1lnJ`]AXt݀}mOޔV8'Vbwx=nj[y.,r,6柼3$\x#cvz]O\d='ڶ;ݫ\pb|EYQq2;{zC}G]ǫ5S˕9kڴ2C@l|T9ܠJEڝƜ޿!5!5G]637K'\~n>FyzFA\gF RUӖx[QQSE G ]_<@>6ia)VtD->؇ϟayyK-[|:f]&ȹN7k8Gv)bBP|hy%`ݞ2!,RhQoA=cZNSj [4EmNv{n3Tk9x rjɞ^ _%zp6p)DGVԄ^Gj`Sݾʇ"/|4F0o^ l)"ן[Єt`7rTj!ޡ U-DX'Nn{Ni% ^NSQ[B\۲r9a%4+mi'ogz,ĉ$Z;FQyGñ_4;s?Sǭ³c㘧VX|""}Gs|̼l_aױ/Bךּ4XCڜGU5 BE6-98J!W$m>P^\kzꌩ5ŋDت82 ͡~@\ ػR& 1B l(BmO>0ؙc`q jMQLP;:BV/+I]k VGa~=DP>Uf&+GڈqIm57 d^S/AXL:-}o%P)9%DK-*xa_=I|=@r(*P,39ɈMatFER|}|#az"![Gh(*gl )W~d T3݈u?]\u +Ô6l=Si I?v*B<ɠF}ÀP-,^fͤP' թfҖ/P,rF]p-PfnFG ≊РF,+L)+y` C͙wTy F5wrcȚQa"8 y$΋5yVNeإ!}oL@r_0rġ?:R-MkC[$3dpUy\~mڊba/j؟{@N|> x>7:=B$k#J<}wc?mvW.#:!:k0H3V[0\CA$BY9"jzC+~nFv\+>ֈп'}0s?_/jOP^ܥzFG%AeN󺨠Pxiq?2MW4>@^Q^rZ9eDm$#N7/sDG*_9q;NU]p8_EhO =wx+*@`@ImcK_@YFq[ª)vu]}9ԧtu 59LL)&R8wsk.I Qn2Շm~73K![+"ADг^*(2+K&?]td3o@mqus eUrW4SOm@ xiThر$hRt *..@;N Z4s ۷o{jJ<%kne]X2^s)%]OBYDG$ 4{*7i+L{NA3qbS<%!, wzhUn#@y1%VP fp6V T< ͻL,ضI嫂̫kp͡ĥikZ5MOG`Z}6Uj' V w ZS?.:r XoQ>HJ/=9rۙw q 2q8ˊ;9vֱN.l\0K;Xeא*K|DpXf]KoҊb=5Tv[ c\iKm'^+,wv+WI&-`9&nbB2tS!I,Yk3|Y-?}^x4 = s=&(Mi+h2遏{i<{>8wzxwjk+[4Q M+h jMmP'6tm"?O7ߟ!W VN9~ia}ej*4рXlo99X ??3 ,Y PFc4#Bآ鿌wB\W?1ap,\'yC=I (( 1S,|tF ǡn*@U1yBa&9R7v"]N>cC X+\BLQ Ŷ̂}ʋϨoEX\D{V_4  GsPɘ ܢ"q#9)3V@FASxHA;s zcCU\!__h7!t[_24Te,HgUUbnHŇEU A8ܾU`}2&CL Ym-۟CdeeHp-j OIϵ?(T$Sذi,D8ܱyVȿ ~j C@ ki'5ūaӷ})4@LZ`_)E0W룦gKGDsXsr:b~D0un g#ՀYw\k܍oxp1֖0Cmؗ('G]W$D19M?OgּC*47itgէ'sXg5s3Z+3qd.iÉ]D`J*Hߞ-`B5Fwnx ;h)U l\F,ѳ;gƃAn%Mءi?0 rty صԷ~j[2k[.!7Pb<߽J~1|ƒS;)wN JNRYutZX\\n5ƻGYYs`LAiLfslUx,<|$,{1;ER3W݅4ct6,\py'Aq< ^q\AHv%ΣD@Q&jJN7 OF:CfeBGB /Oz~ *=?|<znp6VJZh!4֌;3e2{ zG8D /[dZ!jd.Mbof}d 8ϖ|!/#n AUafېW(Fk/z)⟬}F n<1 J(`A%:@`0lbݲd=9wz$U[.xI:'akj/#~pf Ąڍ6س!X C50㝦TW_Aٺ#^&C >>2pM@Am]gA)!lQPCXE[~,ȇ.);baײ/{Q]2uc-\ %ɘsʘȸ#"AjgA"] _LMJN,/7/R[W|fs +5uYs8;c;AoOp'0jw}WTSK(̞P\ybCt4, lhjv(w{=2M*MK\?i3@~ܒ5h O4n Vge-fe鱲Qvݏ>}f{Կ!U꺖.w Ww>-g3d45j__5 x۰wwM3-8G>VxMx /ۃL+^9cEŸ+ͯXU}=췴l>]Ҩﻛ+Q##v4`~o;HGj=}oUF8tn:]R59f.vXw̟|K,k1[L>zQ1Ϥwj<"Dm#~npuP@Tf G 4#~Rmͷ^:bS=:yq$FnF|Zg(s`SҬ[%U?l8vm:Xߙ_(miدury+8ǭO7UPH׾FTYC$ )Mul, Ex٤֣i*zTygw=ߑw^.^>Kǡ`/0Fgr,D=О=Za$tRj9+e'@"WXB_@hzu!?2#]>\BUuKkuၹ.6eT;~JعvF&*a{&0iuL~Cu Yt[Vd.Z&*-݊k[ ](BsbXb  \2F!62S2@'G\<&6^[ ĕTSiz$ҕ:-Crˁ`^}qhH2ajdg"9:mO~Yʽ1'?`>)4À79cXXIlVrj9JNnATԸ^ISe)]l,B& i.^A͉7i*`*Q{U9{#kK dh1YR^(۫T>ߛ]Wq(j8CoVmxv5-?6>z# ?QmZy[ن*prןN3_L_tuů|;D\05Cٟj,~;rfΘk[ ҄ 7'ȯ.#|̃LJ#xalPh2k4yِ lygD]O(Fyl2\ߤgcL!ɑșFc_^7Z:1P"WI0$HgqI䍀%d^H(b촿QM? #J嬺]4軱p٪I($ڌO4+t OO>:ln] Әp.y<+ _oxoazlB1͘`n6|r(G)뭪f;V͏ɁhE>> /:3~R2iCc%85-7搟GS{p KP\<Ʊ}y[wñX'g'N:E"n?L#,>ayO#-Q1%fØ#Mj SP&:l_7ARt1gQߜgD5{P!0z-p[{di@;&71cz2-}rqȑ#i:Y|)Π% iЏ<- #O=E`zΟ f)swp2{vbv ʟ/iǙslp8p7Ǭ3Py.h׵LxWC*9SB87+\owU}uWDo{<ˣಸRȴ?<[]V*3; ?_~T m-.1<: ӠϜr֗4}o | hs/},+GdzA>!_ClӌwnY-qw+2'2?^ pb@+^!}&4"/NDwZS_$TUe)ի1DA&1$wήc.xw/-1zJq_;UE#.A|ChRmQW @乷QN?K+&Gl㧟a' 1.ә`[FZ&.^RKeV$cK\٦u}Rv}aѶ]FUVt&jOVMW۰J܋%R TRcRshb_U8cɟ9Wl(MA#ކh⨱e bRR8Mq-wbaMɀoJQo Fi=S4^*x8ҜYVQ-hhhkUctx{JѾmX<*̓NAλ(jeZ}jaQ_Z)X+G,+L]OU?9Oيyp|L]H8uEe*a3-KƬ%`Xx\>30_a`){k?V)@(A!_Nn`BRP%fWG\u$P`],<\,b_ko 'ʣ uyx7}i'.E!OrKJ`cm~FoW\{Y?Zks|^򑀽MkM'cd8Ό/o sOWdr*2q+B_[#7awA{~z!H n}u>mƢ 2hJȈ⏋.RzjӾ˟]qu/];@ov娬7&f?~jdO&o )|:JbDQ맬Z8<>6}@1 &z@`h+J}nvb*[KABe-hanRvL r<㱃M S=i9ObԠmZҿiMi]@Z0s~c2Ѫ)Fov8I<Mg`OsتBAk(TK7;DždbZXԯL#cx+d}TϢ]YG Ur*v=mZmMc_mR*]EU> *#5Gy^[S}_y$-/Fpσ(n2,9ݰ)(ίH^*rwygs3 MF+0]%A8 ',!:0 G-q|zſL ΍ C;7;A@%Xq1؃pN0>"IeSa*U {C.Gk34zCޕTV%`+ތ36f85LD7kJث^hx-&{|1@+̍fe\%M| B1)JLQg] kHeRڇ_iJѱ+JpV2 +u^JKjUԾ?FJsi2›SؑNU, JZË6doy^״ΠэkTy7X:2J)r(G[,:7eEb%ѡ_a.@lL- YXו% cC5uٛn`%>V0vW-DyϹKW/*E kB*Vk,,էN'l9  sx&uYFջv@2@FRcA?7u\xtD #:O//29oĖvXA<Ƌ3d B,IV>z GH_2> ` R tx#u¹jڬߛ52DъٞR*(ebvA]J\58褽"N9H4=yؘW4%Rq [AU(LʕnUC;17j/+u7)_"ROϰ LZ%>EB9o>‚@.]X YnZ+f}L_ g Q&iɟ~^Mey:;d-ɿiRTJǽ.@r F#~O=dM+`g_lbT&+q$ק5&w[Fʟ0r]Z ?k5E x.8'fx#iNe @Ty6#3xKvo˺QfpbVnjp9YD|"#NGb|?#q AkWqMQɎ9K<3YNfGNF jmE[.He:BNԃ/#ļZ/܍|#`e.,EAvY0\6tɑ?Kr@4#7c@kwy?DPKqL1ABnuvola/128x128/apps/korn.pngUT lA4Qux |{8lC69ds&A9*RI9t d!*R)J)J9E,9 ߟbv]z'If:dv9{Kpf.,5ۤyofk:6aU5dNÀWG>ԖZkЖMMtrr)R@u$).ql>Ew6jiSRzW2ז*C+6q?Iq,4.0?[*LN ˷>B1^$8trsc%}rIG6/kPcRnP_cJǑ zG7 sh&T(oHV ɕhtatpJ?1dϽ+ףQhB ;̪*lF8]K9%ޢ_ϗ>ZT5q)幑[Fa{`X\AJpu){veJ` ? )E&2ԏik0]/5TSlsÐb-4[WbF)`=oVY]IC!# Fo;0jj|1(/O'(`:mh1!]&pYY8qBN͹I#?9k%TВ6h#hkwB^prs18pZlnHDUYcm| ulD䘘"G I~5@~6@L@[9X  Zbċh56Ak/KȖh*+xl BtQqsT%,&:F<)Q6'Ǎ#ǸBq\_MIo*SRd? ;5"$-:${:++W9bwb&H6 ۳",_Dk٧ȋ$5}EQJl,%;̽]}?]8Eq]핐HިۚZ9Ρme;ĭ׍SkJLN^Ī*ȣNiħSMY0NjQ g sތFoS e%NF3q)V"pDgq: o/dN ^sB[Huv&VՉ<+Y$ؤ՚?G&BSIWF[>5m/d?-r7OB.ƦtRx@hn_/M'M,@ϞS*Z].}((H&GKGЋ̤Ik jG@'!%۔ΥQ#^Vm#kdI" r$nڥ5cTAS\A1Jiy7E5mI%MVt~a@zV f'w!{-H {Iuyb BA}a m8G[%ɰ#3Ӑ9cYS('"%\oYr ԫؿpCy)#ǠtsHe1߆%!JۑGYy2w#irH`@`oKKO_'.Dt~og Ha/j X[f*w".EI%Ce pt~?Y(KAN<q 9rűݦ99{/LftE"mkś~7@ [[d蠟*=ng+ uka*DQ }Tq=~?r5d ;.{Ӗ7M>@晅EMoIpvPK3}خ" &*XwAhF% )2qH:H!-}>7/sW!56k%,7>Knܐ-gGZi\\לYWwqoCҀ.)n'-ы>>g*N<+D$҄|d 5{[ R'Ha, ׃(WRy O"]9rX#ӕu Xu)R{IQV2%%%B%j+ F3=g'Dkrs Сt3<8"g|}g/eUevZ&>ʢW6<,oژ{Y>ÂS#5_x# _4dCrgĒ7ٵ\Sz01 *LK&iN_4ԳQ8rO5^Ym!c\%Vĕg5HōHUӺ$s,_SaE7Z2ȯ $5i,pI gC#0A/Vu ɸ0SMͲáCH_ n[JV{;x`,,D&\~ZRXsm)cAdՊyp8kWҰNo# ΍ZBD ta=g5qͅ4~99X!X''~M .vSZ p-Hs1I Ʀk;&IRE˜X2JNRWi/"U k;ҺvO.S2 " l9`HËΛf$˳MfD:[`3'^G]@&ސO8LϥHl*^'_lq<(dw sOFF1&+ϕ&A_vn053e g|C˪6ewR(oey󇰜 X%XQ,iNh//-x,K`筇nlۊ lč(#3}xm }Nwv_i-{T;k_cLL*{MAE޷Ŝ27o6Q="6Ce]}Y;,K)Dv5ЕJIW0A* _b{> t-l>Kj N-ƧGG?Cq!Mhg]hheJ41v4 ќrЉ[q1IHؾLz*W$Xop $aΦ=Va.u \7|ǃB<[3=11$Gx37k4M\Kypt0Mg\3Eˇ%#|SI?IЗWߛ{㏅ P(\C? +n_0C|;־i挂1\~jς+egsVTɓ~ ~+ 61oBÕCy>_ Ѓ],HAכS-X">1P5_+ab'Y^;;~|dD{ǶP`vVaۨ5Ĕ'|{_¥[{ uQ-*sm]/3 D%gCAqg36ݺʲK9wy_Tbq/y}gφ9/Iy*+ӜG)Vu#jZG;v(}yrؕ2v>4YTz;]ٟͺ~VUds}|hSa蝉7{JH|nJډ5XނB kFvՁf].ީTBa󈴗žgbQw!1{KJY:yXHOjA^>OA`/xS\(^q4ub͍mP},rnd EL%{HwG[< ss 3?^%1Ua5獎vUhPHx }-Fh]>a5v"yϐŐZ6nYjm9O2Еm9n0s1im W~tBu`쿚wb/2O| AݖGѦKq! fU]%P.X_vBK^k"c3*y; VcyWo8ӤYo;y/\qV\q.'r/K1t=ug/OyNJòBEQ^ݍv9 'gO=\ΰVǸkϨB} ɛ&RyU`}>As^蝟x= lJCӽǏ[a76:c~H7/TF{zj[:$&.7ظV&f5ȟ1rnXI*RgAY t]}ߢ7=3?ldNt/(Q/hb8"SI}M8O[hE4qf_SyC~nq9I+#݇XU /1:"jIsϢ/uPy5dاo,50JC g3:9cMҬR/ҥd?[+)^K:AZ;ңXQlOUuedb >G?ݱf`jl CC _%t(])|v 5DаeLK*4!j*,¾LUM@ ||Eזm'Ud`@"v+9ܢM1"&;h-xg^è#hV@6:%3L@qݤk#5wu۠T9t!yv`hGKo~JtTo] vA#p>F(SM= l˥\j)狠B~Rbhc(w'i.?Z|4G'JNB|A |4[5bޝ{@>␺u;łď֧6f>:i/zlEҒ b z]RM&ħ1k`7Q_k*qHa(5Ę`Xmgq"(7RĕMoo:FXFE:59NPZDǧ$"LI(9>Î5R)ݍ:^s"z~x[Hu5p. s[rNZ;x~ZŤw~v26+k ύ4zdԛ[xB✵Ce[_[.D%c2l6уiVVŶ7>@}*~)")z .tfnD/ċJ/VHIS6,RBIL#K#gTw"O2QaGf7NxUۘBe& юC1an&xl8 1ySutBGhMG$I7SFMtW윆nxJB!. lBdtznl=&ὣp%tzn͝ω׷Vr mF:*{(Lx/g$:B}C:Uvi~?Kmn sm&')FcA=2lWzLt>LzW[[vYߗM=b5FH?yg S(,k*}%hSkӪYFeS(<+Um, j4HXw#@fV/6i^>TLHU1K]pZ4%E/-Ioh@ 7[#~a.cn1ގ#KdL͂@8:m]%%=/89,D1 `H0}í{ K1f?H8)k z"Ppfo%kRu0-X8l\mm P_V)Gٌ! IH$s?h69:؈`:Tè Ϗ^rB,* x2Kdˬ+#0]?v3vlt62a㳔~ِiQi̬uyΞn&ӝ5k~^"Ë;b=4{![j>xOu^a%{v4Ǡ$жn]%Ya}LQ}\ützI<#=fbYZzS)k|1l7a ,dJ?Qw,"Ac08Ծ`̈GFٱqX7O^~"TJ0u.(.V&P@OXkzfaL9*xH El{pnB4"J/E,_x˔6gAlJOs z>Fs53](Yg86Ӈ9[~M|wW ig}pNmBbAҺ GH^ix:FjAH$"XJ9}̀|,1%p/rӳpr],0"TSV71a߆z~z&>UJXs>7̳xn衰<]FhsqGLWV7哔IKI>PUȑk]E ' q-y=/a {Qd"l5<#i6fW1bH?AcK"~=XŹIDw"$"B9ye2Qܸeʷ V *&,Δr2a1~4D[n]eRɘʂu ׽CL8 IMus$Y4i=?`e$C2 zd`vG@2MǦR,N`t9:8mEW~$bZ(u:7 _LWXbzdRJR6VM e빛3\\�A'M7Rã[Xns:ZdGr wYQ`׈jσk6kIwK95;ΔA^- =p,>1kJLL)!ɖp=MXċ3~8VlLj䧘Z,q),QAa i7/r6]%5_XyqG]q;~oB6IMCɼǼwO+!Wls1eEEP:Q>˻xkcV\Zg@l^WHm@-|qSjv]AW+FI##]+{λSB14f>gYcu#qh֭ʟx->м+jtCj߹_Sަ:zh] blT q$[ÂM\ʌLamDy ̪eiP7[JphK+W&[o9},8^@:C6W:(ݢ]  yh`26t;8-t&~ Pf)7u̼x.0cm~r)6+:xvm$< Lkj?yۓj1҅8,m6oנte.0BzO' )BI9>-ʃc|.wTIJӤPtQ4\4zYl_ Rc}=Uue|M6,9&b خYx>4Kx82~@R5~CeL(+ڸru=0;ZNo g\ב3NsF2J>l4N:j6!Ijt5I2OQj~þ{-o '0$sy넇 0p5ͶOH ;E$U.0g&.0pۻ1'K{16if[c퀦yjV@]E|zr3$&Ah2v:GjC*)Fd:c'C&{OR ps> x_**\>(7BQɲ{:l0nƝ]nCu_a/@Xjb 1HkkP&P}ehOC ϻݠSɶ%ڑcb1;$9iA͒iG17YTnetwNf]kv9 zkI?38\}ZZۈNHi9S(1)>дuיwdVW$J 'W技d-YhS(}a ΈYP$w$| \7Spy)V{;JBuSKHz*cX`25ttОSYLu/%qsaV'zAO7Qwc;ezr9M}t\[-yΑ8? az||j,H.ik1A+30W,]~;*F.҂~?mJ˂v#+cS1g/|tux[h唉Y N~@Z^Ll$Sd޼g^9c  2JI-gG6i߿ 02wfd@ 8 Ka镍?ܙ{_2]TBB*{1. );8Б.G,cc ^9evH r T/;>2QP6_0ާ)j%-ؗ3 }Rf?=1`~c**syy%8^K54ȡ|s q >0eB`rX^zdj]Ƶg={TU?_!=~EAeqƨ'F:(H֍B1i$™oZZD\9EM2Ek哑spd> $"'K"Ј齾̇)ىOh2V*#kD6+fmc/CI 'CRR1R9"6"aF߉|:R ;kKNV%B#`)jQp S܈.=VEk9̎ e4LRp^nnIfSf'K8HO@ i+!CUr0ͩS`U墬g$JO ^2V5FUVOny|Kvz>bH#sI0.UɁjT1BG,H1ʰR;|ZHͫKsώ[!x 7, /x_X(Z[?D+I^%QmSΎbG'MEHwz{+$2*V}K"',ڳXvjHR G5@qЏX5:Lc R($+iI:{Y|딳S20ʚ&lLtU#&7m l{^ ʟB~g gQ\:۽mwrNo֌[;3B1C4iҼZC 웼{"ݣ'ﵑ&ߓ>%bd5͡l&ؤЖI K3C&5ւ?cc'"B1/;3!uE@ ke~딹g uP0ֈSVnuu%_uMѫγ^Q'oF[?{4SU{DDao%uzpQ! rNjkQ q( uA>#diJV֑QZXZ(tPQZƉ\;ZX4QOo~6 9CAf`OpYή17RG ;%XLDB<?)շ?VOHz 'l.f֜>dK綼!_NOc4_ dCiw+FPģ%_!'8Ixsssʒ< P&aA֨C%/Xb_ߚVPcBZ2˝{^_P`R\hQ^n@@mNRS 4{P@ pΨH{췢HQuxN@=pD7,F"F:UJ!g*;q4;ې<שM /|un] L \=@zzzNk~czF[[9ks#zR #{',Gq,N]V2n4Z\Azqt=6 !ns :fco$_RSPKoL1 Fn() nuvola/128x128/apps/kpackage.pngUT lA4Qux u{<~ocn6 CESNBzWYHmƨL):$ؘS:Ṟaq~lݻz^|6_qg,^h֮)PPQ韊#nGGI ;P#ã7 <~u3,7J H. 2 W 38,Z$o X8N]F0K.}DlQ ue'X Zkײ#.xw%L9DAʅ޹A%7)>*ǩ OFo\Uo\}D$"ؒqu3c7QWHG>z0Pe3r{)%LwGF#ݕ[ %JCē Y* +_} ,A\0A-t܋9i̖|T (}p} tc:6Ied2_g0_o.d~q-bR9j-5He#:*wj1$\jVFl+Law(m|iFﲹ,>SW e _v?t9 $"hiWFq( f|2F07C^J^]y+xJW:D#I|rR҇ wxaQ<{.{ z4f^WD-dd(͡L.%XȈ5״rE9 Bdsr 'N!AҨ?= ?@L."#Z3x`܎/[tP47 BgiD9_)rB4)R'Q-%B~lI Y}sF6O!&pzw9qMz>YJ* atLc˚Ѝ.ipE92ea}EjP(@ nx J̑u#;qNS{ٙG3K! U{hk''"iъeH7bQa|^$I&vAZQj{d\X:6Y :.>p>«@8_zӐ ^cD6M FTJ6G Riw+^ٙcɕΥw# ]ZƘ oG.W =UὟ%L2%4>fC߈-T{C[wElTQiĻt sT3":ןj+Az.+c''>"(3cYT00|ݙ7=kbmA02YUϾU{qC;u_hNds60Q OafL^v* x֫ 0B>W{'}GJ}#Doc貝k %Dkg"XF^BX`vA1MQlbۤYiS l36Mv 24qO 웪%VC/"a=4Ez.'!?>]z xO9vZzǯC4&oFkNUoN|1Jo7@~Ɉ^o\EGe,c !ٹ<f!d rKL?]JaJؕ-*g\>lm]EۆyzjtP%ίrPB\0mts{ |ۮן,l".bB?B5)5 c LKaFBEQbn׵Kt/EK; Emhk^nzdAg]* ŧvn^}͔4E,9L12g>eS(@\\[\٢<3Rܹ_.E[2rbnӶOap}~)?$!'&$RGne!sÝ(SNJUG'd:E;1';r;4~ k hދϽF@g>sT4j8)w`e1$ELd WIUl[}5j .P B\xy".оYم:jmSf7|Y\ɣ܌+9͛[5! S;Ouz>Ĝ{n@:sC,&o4*_G ʣa/ 3@YZWBܹF1ԶQ!V"<(ϟy3wjAk3+ yՂ$~zxo3i)%j5q%1_8g.MK+voK;7"%^xdޫî_%%UW 49,=\?C̢>M 0OԵ@ќ.U)GSN>{}oz]'Ph^jOPp~$LHq'Vt9 B@"[UjH*u)ioJ}Zދfx8"!/2/Fdu>vCGز3Lv"Im6/N'">*#Pg{W(?-G"yFzSlћ78$_8aN #ݻ׻8O7<"],FioULмZY}{1uTOlDź9ŀVe@o6!E.8<}=bOlptSsc4 9CWA19Wh0a9pY%9᣿4t2v{!uvA.wDxdՂUS%}^˿+ N:?I(6D4~O!{jϷ]D]ܳj+6,~[m"x躗Cd]g|DR@\4߿bI-{pG#iU)%))[Fѷ$Ŏ @a+bFFt@+Ԑ,%98|3lS 1p w84oJ!5Z̡n/n eS7c>(م1 2c-Bizq}r^t˾;PJKA-hӔ-Sx?c`6B~ųdk5ne[)EҨ>yOT4}*CR2TpKc2.>yɋ+nڀq Nl,dH̞RSکL`d*Jt;LĹBBć\/ށ%nȀ>U' S6pcR}Ĉ^E`)fo{߅dmVz@Y R+B&績dlHВ~͡(d/T\狶q ñ5{}$|qɩBBJr $2 WZ#ΆM){&1.-z곥Yxbۓ2ąN) څuWS!! #aHu}qQ&Bb + 6ȴ񼬭!#_ AUBaDEEU99$f||f ʦ5a o:Ƈ>&UjSϲ$fa>_tDh'7C}Cdy2`8C^G2maCnkG∑'^r.$ 9g,sLP*C{sE#`{WXgڰMC_mIZ,^n[k˺}׉e0L|t{"9+LNxkV~Dؕy%o/f>VtP.1bLR.wޥŠ<7_r*s3 H,=t $'Ag`LsT^N8n 6/0YKتb;1w{gQC.R=63s̶ij1I)S:U)PfUdRxE3cDQ=¨-Z AR35 lJ(He}SK=ԣ&\F|zsC-/yma3E 0~pw#0*Ų緕\flxيf^s3Z)Ja?bKRO}}4T\(7RF[T!ůs:« W'>xPVMط>k͐^k>IbeszsR).+G$5M4'+*QmaڑpZX4N@ w~)aG}%I&H3{xޫaK2R?׼8nf}wr]H37GWSHڀTU@s}-Pwv_^W r9]49-`jM2O1Ou +tBty!d|R1L @E+`:SRABH M"YŐ YԷ>lahgHtlAY4Px &?_ʢ_hc?Ag[B쭓~&ՒΩGb43Sa$.xNQ|+q߁/Jd]Ca)115i/x[uxxM3} o|#+yggJDzU+V VhfDD<ٲx&D y"t^+ƃ6ө>=H2^. fJ 9hk&aHZw9ː\r2NŠu(cb#$F;lq.ԅ`sx|UU55y 'qK ۹t=GB;m S߱t}s;ULJyvʺtsܹuyvlbO=. Ӓd#K+޵tl-M6yo5>TصԆP~!E?~R0Iu{D;R}7*2ghWh%&Dh0z ? rSX5Y^Ť7!téܿK(zv'MPc,?W#|İ ar+iz4lf$Nw,&T ԡ\cm\C7/=ˍ:&G9*x<>\}w D^Vam˂)Y!KEvlJ|buITZY-*kU;_E [jlsQp~gq‘a_ŰP5Bqut; MVOJπ1: S/r ƘVA^Kvb|* aQ!M_,NSKNWE]ٜ Zyާ e~ƞRp /j.rIڴ18эi'()4T^`6Xᩤg.XS/ 6|=[AgW-+!>uguf9˗7^U piX'LlpǨ뮊zLG"yYU@x8N$yJps}uV@?pg))=}ט]GţNKN9-1zУ*p_h7ZOןš<WxAH9ߋ%EK#7tJ WfŬӾPkSeҷnU{wN0Ŝ0FX;KTI AQ +{8brci56Տ)vZDwi\$$ Br8{:fm5I| ,.hzRyɏ'dT=UQ Z-KKj1(5 d/@RVIXpeXW 5ؓ<T&#M׭v ~{qkkhKihh*)'1 +)Dn?;|ٮ 2[0qa_.i&uwn!DPLOQ)q C*F?QsQVW2,ާw%*XGeP-:cˉbQj{̋3oA>輭] SgUB=r9(/^a[2qS8Mǃr-p~Zv4,`e2֯!}pFSt qu7/%Mq-"i3~pn[M%yI6)oK7+?hJvhC$3%¯"0\.:&/0: Li4poIm~2LE:"c_ {ȑO2FEuG 7m_O$Ow>̖/ ;bl BHV`$^kژ5Ici~ 3d&[7 Ha8*bfx`l ]:}jj攏㗥]%x9b,YrMo Ҳۻ%#(:)yS"^!*NТGXCuq9o0ߵyNh"1sD[ãҙ+scINF%eJz,/g5]ǖ\?ۅ@^,G~Ƴw@ZYvitʲY˷u\{1EE_\] ? /H|Pohܠqo4-rS0MfqlXf*1Z"EMa4J+la]{-8RL\eQ\ E|S2r[/혊o^M2bfop5ׯoP^]*"Q(!V!x%eKx m`B"`=òDt~*6h^n=]BdT? Kv_At\e_uCZZ,-9$E&&AfcSJiDܗ6͖ƨF7%~;A6 rw+GP(E,Yڅ*|$YmGu|^3jo3;s/\8Sry7MfUb6*|sZF<ީkVƇF՗u$q VAM1gHǻN+RiGޓ .ܭp'!2Q(45 Q䟳BݿnÔ<|"Zf06wɜN\Z'x+b][fBGNB|~ETbћC)wevo}+9T 嵻GJO0pP ;ϊ ^&#ur r+J޸U|Gs$H?!j7)53>naߩL{4>Er:{=?{cV IKPžXJ }KI%t N5-m%Yg߷zeu/=n>hiPKL12P4nuvola/128x128/apps/kpager.pngUT ~lA4Qux ?s6eJL͡TT%(Bm!+ˡz%^^ƜB8W)+a<].]x<vo-{*[6^܎:P +~9Hvv l=mToGy0yK¡Aw1 ) ,[Ƴ)l[P>=!ҭBv?M@$ܩ猼h׭3MY^kwV t<_ iXo_)ޑ & #:5Ġjd.@ uJw^"ܷ<2O=>mn5ZjylvV:jCxJ:3sv;ڢLJICj|"~gM*^˅\nÙ?)Q-JU^O}]E/%:-c/1M3p^uq#Ř=7>$صōo(] ~w&-1?`' Xvڲu\lxAsfkN#d{Tƞo[6z1Um /XX+,}VEge-LR.uD 8ߺ;to6g\| |UE hcW\@uF0Y6!a)sv*Q[ˈi+WuW3 %Csp.y ,skR>V彆 =TK*!QJ M P)Lg4 ~Z8^B X6`& $ɳ6`dloRXYs_`⡟T9j<[#] ԿǕ̓by^*ҬUrYtv!MVp< vN_,SI^TawCR~%dO`K*''H6XӄYCsq8_y֩ ܁pJNH'0$̚33ზ9B糀vy7 C$$@pS1 @7OLs`Z?AY8G4`L'Z^L*SWAG5ljʕhׁLÙ0|DT< ZWB{}ևY5 79*UeY9!v3_X+<*`,a4I&تRIO" -65ߑQTebq%Z Lw\S2&'m#Dgf̧7-gK_Zi3-A8&Fլ*mx DjV%ᄯR=atW(g<% HclT ˜|D(U7?݀o$M" x$yLc_!2D:kƎJj! evqH,?+ @gzyնi5qmU?sQw-H3OlFYJ{ZA1tUw7 =?27 L^ph|κh,Qa$ۋ hD]ț_ވy+>q'u6*Nw($yLbfzSz&f(5"^Xo?]T+~+E>=D{dū){)l]?w%\q;*fBǗC;>ImWU n *U>i1Xkrcjiɸj4$d^U 0\?u^6;_(k8ᢾ]4m0ULm兼?1Hfjd=^My}^gC L$$,J&D`{|FxႳ Suu&яpS9IKmi,ii ,O={n< ! t_ DH ^=jQ/t 'U\s 13?ICF$h:@O 9tb΃sŨh;8**9g1V%'cEzm+u9,/f@axKQ&zO,-q.&Yc3 %Xl-#kF%_Llj;K׾ʭ6pa  唸;/bVR-)H rϾt9\A h㘱[ WUhC Qi&h?i3E)l'aҡrJ5>5r-@/ ZBRgeZv ̗Q]Ē.*agvR-  | j,y\t&"ﭳdˡ5'rXOt4]E_~f?l { F:Dۗp MȅƉP]=֦Ɖ,4aFcx@P:U&?N:@Lw #2*fą@!1&yGxi6 V >> o[L˵ku7&f]yCgI k5蕉{$ʭ5EO?]7&_vL[#1e=" /&.reSY}f9O>*OD5 w.f#=п BZ|jsHݮtd!>iFG)J\f`Y,8w'љɼLNKj "#O1/)|vPf0S#LjgM ;FVQY02qJ;,J^YY$l)bآrѸ4ħU@]6 ,D.&n aB%L*h%(1" !JqUvxᾖ`.E~0ȌZLqME {,7gK*)'qE[ͽ+#Ϡw0)kZzH?o(arzᯓmAF ~0yiÅ0 (\*5_Cat# 0#.u" B -V[-$w¯*TFv]('Pto|CV؈1U]-wzʀ =?Rw<Ǫ̭@`g/W`bYЎ'S |!-T{Lsk1Aaa_٥ U'ϼWi[3΁`!VE+#9uґWOه7%w 5(G8D! _ RRw:6 ޮ5+!O+PMJ`$r̍Bz.wD[ b|B~\`QgD_$mHf zU%jpm@~LHIatULPS;׹tzM$u}1Jɚv#߱%`Xt]]%TV;%޻ݞ,vBbO& ɶaA'+4N,0 kڊ' b՗v-LVڠtPfL ȭV^m瞗.O0?+̍CX 'p1TPq)n~ Z*s _[ݧVAЕus$i&MzM=ט4|Ԇ%A"ɞB`IG #Ҵ2elf Dqٟ$+7!QwhD+?3xFbV[qNG+LxO"l}e*Q5gkRÖَ,bWhi)M|HhdεE6|zPz:L+jv)} JIߒQ[ީk_'E˭[jNkǻ11TsIV{z'ѭe.t~H7[uX*I .x.,b ^1'W;8mE u+v'ATEpfoZHɌm}pCNtP}weO8˦='Bes%&ZMYO;d׌g(`V.ƑU_c%&~y֬j}3ljPыZ2che"4o3ͯD?t[nL3`{pBG(I#ٖ`4cmz= d[xb6oY*7,[< Br}j]y!H8Y8[\QuEeYZzÓ@02` y840wfJjfh7HHO];;h3}+l8rбY(Mm'5}\Unh9_cs5h``[ Kwn7kcKW寖Nzo]L|J@Xw| HEʀZRNs-U"Ϊ]9iIۮ7ac%Vm\v}\U]-^ ڵeTP'\%;1*u eS:+JQ;ar{byNKc<'tL63aXX9~ Az݊I!stt} 8K탤6L\)9Tً_#1NMq;w[4+)(;֐''t=Jgt: &EQ-bV?:agi6 1&X\S\/vNBolȽ]2`L.Ù9_gpET-mOˑL'?;?) y~\ b!;PY6/'XvG(Rs⋳ 9oH2ں*_L54 ms!9^E\/CMvΝx UķˈsD:3b_X?uA7f֔AU,8iq][Q9#f^un U;@GHNBHwǣQjw)GS'ܸ(IˤɩSᇦZMj^ۉ.BsHvʲ7_Fu37G eҟGb[i7b :%GE'5 0]u2%Kf *L+__rAj@?U2"Ku;7mGTSQ{_({Mhk35w+K ~M Ԏ?en!45;}|nKwEmgĦZt,C#(LV3exJTY]tVEŘ9@^>gIBB]>;ϝ>2UcRKP\ܸ5PWq<9*^a>)5zA-@knb'U28WK|4̅GaM=ҍiہeY%efM+Ķ"u}R2U;ߐ1ƶ Pkq$~]2 ;ocTh˫f?NbU)PUjV.bjD'ב0K+Ǎ~rvqQC^=%g`~Nԫhq8ϒHjPdg饛Jh"tbbj GtoT+Gr{Sy6a Ƀ^kPK};` F/+Mw;ZM){Ds!(!͢Vut?l燆MTnξpz$d[aEŨ&?bV]*Mol 4 ?+>?䌒 Ov GQ=)R75r= ]G-uw;> : mKP)| ZAxE/V@{?d8[/S;u%'q[5^ЧO WfuulzF-Fod&y9g/ҜGfszmyгP:^q;_3JZŊ<{1CFfLOezjr ŗ*&"dfJ]APz/1(Ljؠ DmfKΡ Et83K#by1TLdE Nוcev]iPKlL1ԣfCEnuvola/128x128/apps/kpaint.pngUT |lA4Qux wX]N )0)@((: R$!@QB`EETP;J P)O++ɔ}}޾Y^VC-.;W̿o jܹAFҶVxW]1GZXLH8iaɇ;Ue mwҧTJ$f`7 a9w8N: eauҶSFkas\y5zy g{=xR nC S" Oz¿2`m?̢\vT%֘hh8]6LڠXz~6~*R[ ޸Ge`\Lse}݊gZ 9ekc@[O8H_/ te7Z MZnRp:8A-'1eop8 PeiJ>>Voәs.NNCa#X\y}8HV֓;Hy]m w*lb|t,^Η߱j] 7R wzbV"ʆAm 1Ҁʲ~ᓾvFO5S_6/{Cݩ^[_k 6& 6OG Cmg6E*R" "uu@6|Gݕix{&fJ&0ٓ`Vx?Ɔ+s  RE=(1m hom,Zܵ4'{})g ! m3Cu{_oIQZ'VP0zuza]ǹw>]"[";*i[*S)2Ѷ[(g*]tH 4mX|T_7Ddi" q8~w8k%t1rA=7HBxwOY+t$q.̖g[ Ǩ/Ҙr%xD[L#jz:/\&~E"]>. p̽ph BW6%K=TG.8@6˴jj"SrtoBe: *ލ;5t$uB9mDfaWQU: RGGZ+]~Ouq%M[-bgX6N䥌gb|z:`1L!z7W+֫Q>z>= mvi,|JY{}[7rx߁No>򖚂zod}> )ڎZ 7CU Gr aIT}wgd, ƩH-˟-=7#V|4vBE R >&fG35r>w_ё8+\$ @/qƾvT i45u#"wXx5as8r=x83k .jѼ:K.!(f*}I#a=sY`lZ FN3"be|u~!V0||g8b|@qmm`bi'oYXNAmY*ߓlf8eZLՙ#5dFUjiIs\s=%cuE{]j tg *ZU]*)ӵf1U*Uoz0;|q?55O{>Tlż$4O::ĥrTxйT?8YM?'>r1T]yλV/{ oû^> w2{zoWԉp6Hgd $)-;Lxv,)*Y;\a]>*mөIEts1 ALkBEiЄSW][H 1'xsE`@Z0C-kp̙K0n}b*W8}sxWU}}_#ϿlMߗJ{Q Kޚ*hjTzx`=ˌf _GYȂ)&2,V#ltl+=#6sYZI&/Y}U'歳#)2,2[넙uEO8\ mDN MskN_>DO\7YOdn'!&^4"|^:=2D缟ra9^6mZER zB=6:ej$2'B<߀tX4ep˷R!D$ߵ&Ȍʨ-|nZ̖FDV @6bUW+"|9_+?C/^R>oO^&N"!ٝ2"ANHη$#K<^ Y<>@h'Mqn332vgJ`?2NR|?3u`^Tn?H\v5'wmMܵQMr*z,Rueg&fg>8'¬wWg=.'hHԈUPj0g=5 ư6ЏORF~,st8wr~CAW(9/ ]#<'NEdpw?oPfCa/Mץ ;C2tV}{O{vL"Xu]͠*EbQ,:3դLh{|b+W\uOmO^1=KɅejjm'\]̐.2*ƫFy1;6bϨ{:M%g g 'w2UKӎ|(H"  (r{` :5Mݵ=\W5۬WX~15!k ʵ^bp=bw 47vEM`@,v6DO)y\s0UF(5zPb>ȡW*ƚt iఔ[AhicrUr1bltnŢDMHI(p%gX s@~ ?#}"x⺢0?PW)WWHe~PJ^}[e\&YM=w%hFz F^K-)3 C~m nZl Xnt+Ю+5`*<=:986*cHzHڈ@B1쫈 CԤL 1ܱa0 &Y-@_n_;6N-lBZ Z$ގq`HGsRF)\%+}x/LXS6#BwomKbu B9V(QO3W7+Zn[ t,yAZSxs@TM-@Ktot0RpIo{8C#V=_-R`[&#!aקuV܌y*|_/%s!7K/.[RZ.l7M[],AimY+nJ.|Ej.׭c@^"p|,׮c2EpԹe ):v.=Si6_Q>3\NH fXGjƸ Im^(i`?R ĸ7WQk0r=kI $uHj :z ݄e*I,uXم6P N,_{K ̬zoR|1+_e- )Ns!D4#?n]!2#QGiczW}$ U'Jg?kIVZǫBm 313anl7Yd[OC}}&daen2]^f\۶J[$*2ʨܪJ=_[To,F_C:cUrl ۘla],A||QyiUu4381,4;!v+J im' FTP X^|\kt'9TFI;bZz}UwIw3w~T3q@jp qvlbmqoMncκ\FG"QWS/v؀mXy`W]~74XlѲn9"vW~E#3_g?~i!E8r%9B&:3?51{Ieb"ˆp)/TSѾhܺ}:r+]$я|o4b˽|Bb˦~0a4Op!>tzΎjD`p #Ai IˎGrKLV'7#Y9J6|X^ >z6rj`}ߖwm*mGuP's N3c4Wݪ;F8o7'Y zh""m&m $?&{ F*(3%h[eWL~I_D/eJm%]ǽU;i èt0FTWq{ln᤹SX]Odܐo}Fp!ak]{;4L#J4nB>|l L_s)Hs1v!U{7MEzO:> 3+E1.zҨ\оe!wOX^ʆ< H2"bg7u{\vu<"~".Npni=s*Ujcd#)#'0]5njoNғc0ㆭGL*>?k24w2/ad"3lNe 9\w҉&'6Vv~>V̩n Tw^qbƙ͠Z6Ih?keVB=>2;Oܹ93E+`w#ZWx6?<-2l~">h YH'I+:o6ܸǿ#*Kv:lG0 {Ob]PE hi .?zN5PK0Jh}кfRt+i]X'zIy¢v3Kxٵ>mkWWLE#xYjW| & l2ec=:fpH@#66.^L.z;[zѿjgyKfN#1c'/˂<-R)L9WikˣrR//t0}$䶲I-MПދBhw[|~(S*(~(`GT8M|>i\y7uyHQ|6b$\WE]@ 7}rJzrH-w7UJ? +I qWI h[K+e3ucDeō%p2IwfжM* v}c/xC&lB+HH%~ րP R$V屰o"aI`C?8OH[:{x]mh+gF]"KQuOQ3oeɳ>IvFcVnύk;'Ra)ն`a^DZ2]Ka: 43M%iZQ|X18Vv* GY ˭ŎP3br!'9O8a']徭fg*["^ CSQil@n-8cFW}4M݄g]3zxgLg]R_$_u6!}ӔK3;ʳ vQZ ]*t-* Cu tNiPsej*ҳFߎArߚ[Ŀ|iVa8\c忸[@@lܼ?81tiP)>d"ťz(3^Ɗ(-z-šIO NXf}zWy~iq-q*:'YAevʈ LLa\ ^6!BNJW>M, Ztދ( 5O F3aY¥R=rwq6Sݖ$ Hl7gXH)MX1'ϫŰSwlb'+qB*_.B&~;58xRWR+n)/Lj  wz!lv5@p >,!d$l4^K)Xq;AV1m. :Ab!qh'g2 x1KOi s-X,_cE~ wlf|28Ǻʎ?c3ܳ"D*W^Rgp̊DHvn6*Tjxr]pW^~̝tyy@ eYuy0ĺElY; -_YثO:s?K#i#*ҭLl/EM5P[a CFFd@!G"}?u:bge.=W/U(:ۻÿ[Y`^4Dh3a#ABQh ~!ܶ3u,i 7ϛsCA)J(s`rh6rཾgR|:s+潴4S@qAW6RѮr>?PzM<ڃ(?(6[!?gV-GS0O*z&7c6$ |`26v3Y߼[GﻵQslA5_͇9W[)bLW#x=ʛ z2/WԎtzG$ )|=ëPE=uG﹮#ZD~ re;幂|ڮ'yBWU:L[s~)@4wz JFژn7K 2>f0a#5ּx>:~Ձc6nc{ "&"N 3OZ*^llc!I` H֟>ڣ2T>X 3vۈ yވޅavsĝÈvƃr) NqRGY<4T+\* c>R"E)9D>&ݣ_FKۻrtjq&2V^0đ2RÐ"3#M{==>,qt_d6ޭ%"\(c-"6[[9h |+:VhCs0}Ü1%-,O!Mn#]G3iq KqK]n^x!;Sc#Dmsr}t{c1[=7!u񙹂.#A&jj ?UtUWVj!UG=G-%4I`K}ݚP:S6V"Xu1PivDg*EP"$#oQeu;;ܿԎߑ2KpXk GbV)=R_!$wFxհ]b >wDINJ-nLAU=1&g ]YE4GǙƾ9!RKm?vv?ZIݱovw!tSdoFu$$f 0zc "2U7?(6hBihBHvn\MJ=9+4e$Mfm2>a<+]YYg<8O_: 4?01+҅QU{îڸCU A< XSA t)a*s_0^,̎sq^fv j;I[qSLBf،w~xk( A+lxJ 5|2s~+]g%"$o@s)<%YGBbG0G|:#QFӓnƑtzs5ebMHL9!.]HѲZc\QÄQm^t.X-~%#ZN(x|38&oUGT–N^jh[Ch% ڀHa _ylss_R.oz?*݇Kbp0z|q ,uEvD. 3/yMJ%LqK]򦊺&fn96[%ć*<'&wq[.IVqV71)VR1G ƓP\`=Aq!{FW^R};OtV|JN[R'rH[Ɠ4/Gߐ ݤD?rnGZ oYeOjuC<( QTL?]xZfDK3/B>0_ OqD"@֎f;NICVP*t$2$~6_vmIYA)&HҖ`^L#'t$"zwC> o9),-FI !u/UOWkm:Fn> Þ\y?R̈́C~(Ze2;VDdrU8>Lߎp1 Tnv5'f7ʭUrǎ-ҝ|a+]ʣm:F?I$5g"cJ~YbJf`MF!w) F+tfZkZ᏾<`Eies. ^N>#=O^:pigb믳i&XWr,_%K}-/r r!}r<$W8bU*Bqw C_' uS[sPAa-N ^ֆA{qHelWR#rOXPry 6 BBO,Zv! osj6=.ՎlZ59p6TQVT&~| 7@ĕD|6{Zp ES:11C3O嫵D f=p|婻EBICt^ pԔv;x4՗b,. jg$0!1)MBPw%\at,O8WP$^ ͍M[jˍ̵l^.q(]L^ojzIL{)cW_<ɜ-m`YE}\hMNt[VMPB ]Q8ǕjrEnaA[<`(f nP!>Yuס<1a!\-)+IO#̢ . (F0qݻYxA0O~[^3Y&d#lbi!2 [*>.Ɉ'[p.,qRkX%!3¯e?j/0܇e3h{p#l.o΀A-Uv]QYVPW^HV_w/,6as')Vdm_=\&&@6{uvF ;xߞKse^}a~.4%<̮#ZϠ'v]oM{oI>O/M?FˇfiP> #w>cN"=TP۵˚v 8Uݽ#CkgB޾ϜJB7zr<΋} seFmADlSrEx.ا!轲h~$'j 禙zeąezmO,IG KO wCfI>ˮ `y `T9sﺦHO+)3 礼 a7o`N\R:9u{?.sw?.=J"ied ;QOஏbwyHf" rfA"S޵z]Xe`ws6=@Y _FxٸE?<}a篌©ǫOyvɬ#|M5Pb}E2 ˍb]ht ¿ˣ5c9SއCⵥ']"'aL84 X])k f 3~蝺 0Zbe}u%Ǵʗ>i_?lOh{j,yx_>2:J/Iqpn2J/hf}6f?I%-0R6 K틸?ڹ?wЋV d9dvg`yӞt2K3o<,Mhd< s51TB6YyiP1G%  N&]5oER?SSh=fĆvqWa^ߪjIDn/YY{'we8$0ʙ+>8uIeXTX&VaJl%;3i "QY0#cWD8p[8DK $Ӵ^:A'zTϢTD/PQA}"_SlSax>d`n5=Ww<)IF `'f?lxܒV얎svܐ\8UE"9KsMǦʀZ Hi`a=Ie=S+Wo/KKGxA?XUP?-!f" }J{=M{6KהIKHܗ ݟ؉C}}jQe靋 Yzo0)*yڮnz@L[l/=rcWJֶ:S1ڲ5ذ}Ⱥ[XV+[6 q'"/\<0_I-!9l_o Y[*R8ʩ&U$pFMҰ}"~ It8Vw3xLrL:2HZ jFK<DŽ{L}J!Ws);nJBK5/T*T13ɲOs/VuaZꛗ:#wkTPϨAUUPZ;D : t#IhzDT*f6 ]sjop}w;-I0+)#19:)2pD\L@LD􉔗1Nݝ;} rU"!1OʃAC1C_{(s#o6@}+eYwY_1fp\g^^b*LZB^:T9c fwfF#¿'[~ Ϊ "|dm.{kÝS/a'C;S}~#,ֽ1[5\*eku\#jgi>H{_]AsǶvV+C'Oz{5Hw1xji]m [r4nE]|hJj=bi.tn9tu5UI_ey1Y@6E>kگ[}E xeärEC]+ףgO0p>Rx?薇 h)rb*,v_ HY"2YBd@5G"^+rL_jWYYYq7j>P/alpF yp#AjPr \Pƾҥ3>Q yPNψ9=0}bF/$(('a4F-HSFs۠*P`4O{B8 >33C)В]4`W5EޟKY~RVe׫ݽA7!J=Oo6a0~JӾKtMp tLPE SX+gY3Ÿ.(H[.MgxĉoBe̢ȇ?yM΄1Bj9J۲~$uaثAR?ЯʱGDMY yvU BJ\ơa+r+lpiiN>WrDҠd^r|;R[ke&^j\:P[(G8>+8CuN?\Qbm3O+o6+!}i3oNɖO9Lh Ќo+ꛜm Ͼ{taCJ| 4c"0҉W>i KJOƛ>~LC4mv FC|B K=4o>{UI i.EJ՞yWτF~{,׏ ʹ؞sҗgTv_mU$_Q8cQrdz?ּ]/z_mŷq/ke,?xj5}zӧ5 hZ%k)LԁGओ._Cb,TáDt{S Sp(#>뛳K&niqŻn q"gL55.e,]=>~JqG5&'TXȍm4Bc;OuV 1g7GwH HTm66^\}a;٬.̜{CXo 2@$Ul՘pG+{a6,)WϘ`:LdM~ EG !lřHNcc4 %_OxG.V` Zee8MSJ2^^ώد_6sWV,UBd-8v㸾0o{9 ^@AkBC|h 0IIU2Xqv1V*|w3,ʀʠӼN[:N1` 5SH4̛&`Fc>nuHnZ򹡟_gF4e,Y>(i %0ƾ~U^O[&sF٪;?ZHƞ { M{2EAJv$C-/䑼Qx{lrP@RPI2:}):Q k>>>F[%_NlOb/t8'gsD>γob _'ӊ#/}Pbd*`*si5 Ưg8ChIӈ9z9h~Rgt9iݫ䡼P+/b6WsOn@I}|mx4_{hrN > fR.~3փÎ19/>'zq{ך3{hYև ^*򫷎شDQoUy y!vdf{[uzm9:>FwY]1n;jݙbɍ147%?[ vlk6u: +{GQei0cTS;Zeg}BWit1h\0/yǭ҈Y.;Vg\ȍݝ]XhHu6 Q#$`U-O, lfb*R`p8 6yAP8d]2-6d~8Zr*o҇s˒t潑OwP$#{-AȜmI\-~ujF ٻzШzUu %=:lê$F}L Ec/E7Q%.n8MN$[I ٫()q 3;8+P#^jtOs?|wWܻFM*+kq 0+bӾgL)3U=Q<=;ng"z΁׷悥gh%=lҵZK6Ǎ0RvLIXЬB$;c!dB~I oSD m7fH5yaaEZF;f'dcώ]R_㲪)}a`Ě؈Xf>rl%!.^͂zśXB S\iD߁@8V(RKo8cx 26#:;_bVYh G! "/-VZƾQbn5MExt2 vd1Og߬6 <4G_Hܮj?"cF81p*J*0GNy; fQc@*!6)vWԙCCdՊsWPÞV"k+~e/>»}HTEY5:^C޳A-#Ygaq:Bf>b0Y+ kJ< `bwlrxgP*pGRϾN<~ AeQ5T[nl?_|_"/j?tQD[QK3O0)y/s)DIIkw$bb<%1SO#Q=kRug:/P ƨ۵>N3oL4}Zjg_!i{lđmƥ[9N.lLX)3v,!ֱ;Mf~_%MeyʦrҒt@+<_ 9J?!v|&Of@Xᖯ$(~^i:2դ(ೋ88]^E8z}nǬF3y9$D~Rkamǟ(+]é͍ wn2ykF+$ӘG0>g9 YDTݎh7CxriU\w1xx-سB_MP„}֮)t6]*Ӭ|fXCA~ɕANTA';݈"q_Ig~*884{&B,gLNDS\L6xolS TDĥl! C~ m;veVu4N1ZW7Ƿ6l0*ӞP~V,oF!lP OҜdLQj{B%Yw*fp͌ Xj$܍+[[[{Scg ^7U;Bqy#᧠mx uI=*ǔֽ62B+~^zjE ƽMa%JDLE уئ5R+a-B-b 遮z{ &#x?.<e<4GV1xY9?rؤO s`I'twC$X枢xS `N0 RXhd*:9+[3].Zj5|Qਁ `dURj5+3FsNh:p I١1o4nѺgr4G;"=Ѳ%+!+\nF~J~TlԛUK.^ET\=L`B+9 3C ڞoQ!4z S>Ñ53EE0W3VAy:Qh-RNAᤈіrv CڕI ˋRcb50s'"(;H̽AլX8b]@;6*O8t|ۢ.mcvUcT5/tUx$< y @nܞCX_]vq7{+TdZr@1'0Pa|\(BmDGP)ްjIgddVy\#ؠDJe<,h})>b^+$1Ƨ5(& K㿡(ǎLo_3lؑ})Ze<2֎D[W鋉xwɶ+KE[TJl!xʹ󭬜2~ލWMDʛf^:movy%,^xoc F_qJl$n8\NRSeRVi*L hu~țȓ慒rmR=\1q?Yy #<׬U~JZ F Ƣ}f|j"^yaͧ@@rnub[DIv~/WY24m LׂQH^:-1}UxWIA@%;T)Iw)NKxDVy~QC~ELWU""rY]5I 7ȟߊҶ+ ,ӉmA;@4+ՙ`PQA $D9tp˨^2;',Pd>tq=E+{!a3\U~o&7cgmNk!%RѻgJ%W'ϗH I. vuTIk(W%lh$M˔l5nkI0)6}5EyE!DyJ=+W"k3i_Nf)6H=e5#cW+뗴Dl;u{ ӟ7 Id CLDͺ[$՘r?jJ!=&9u=4Ηt\X%y.хxVj#p LF%ķ\@:'έF ~ar(&Ȉ,R AB7J `H`$LqWՕ[$K| jzim.CpR]X+¥HE̮ҷ^0mgC|)n?~$6ґ9_>$OW ADo/1H #aF[-=7>Ϙ%Pqk Ԙ쯫j,A׼HP9᫮o4uƔs΂]PV0E*!.I=~[հ $INHGݼj9 OhBt8K]naG+Y9@PSӪ@I3{?Oa*j]\ p9v#pNUCV7C*(Dٺ}'3&7R*Y V\TL5D*jm1Щ%!FE`!]S=Vmr\9d=$idA޽2/lJm ?>޻[ЫCAgKwCVp+=νre}=zx̉|<83.$i;d]lM[dԵ9Z/vCm@rkڀ&({:{T CQND,t[[ w2f9;r-V 1%=LLfDA ԪqddW lG@ģ8';rZd@ƛ 3\j[9f+dΣ俿GʊJ>Flt6wIrg41QQlZZ=VGT$Jy&>^!Hqxl7-o-0յGF(GC xР꼫y(ͭW>%5^zuiB}1X[$~UҽH#׳q2jU" f&j.nHJV{a~.u 4`?0W:!zg2.sȹ ? =dI;@tA0i*9c@1h-M94)z6!/_@,x 2 JA/.qϟ?(u_5x-kV;!*4⺲5INjiʕ H1&DTEe4O|vb^݄aau0)Dm/iTOj~,U& pi~" yL5}uOފXWPIZ^r+L!~2:~y>Xs۟_ xsMD1:6}>/e[. Vweͫ/ ]nQ%qFZvqpߝeD/ w|釽w6{ʓ($ vS`FĒ5$J6}BR hUV+ oczÙ7h]* y}N/oBG̷]~|7<:/!7ܓ>ˡnQc= F~ຖ굡81bjT>.=Yԙ%yL 4~]B/Cf6NLCl5&^G zaizM _KG{vu敎})BwXYk8:ec/\˗K)rw?i7d۾MM/j><25+Iߛ_rR'`rS(`uۛ=) μqtY(åތ_ jeS^ 4~$ 2vc%)w8}O|m/ 7Ty0J/M1oZ0Ô@=L2$p}-|XR8Cl@yC[{rNC[[l[.iz8b/E;@#qv\Ἣ2Q5Y& v )hܢz=N U8u 3y?Ģ7F)r"mt |n=NyZ5-TPv9Z3ڛpe^} >`ȜW߉WWMg-vOcgӹ"b60} \e;^鐻 p!p)XLL6[C ~pn|WM%pRdEf+&n6ɒ|`#u qxdr02hM[BQ:ϯ(?#.9GQVK鿦1ԉ.] g56!G8Cu`Ek_Xׄ~aZ[O`6Iht'EJBhUzHS(菬GϏ,J_D_qM@Z'}M8W"BЌk[dZbHR7,j䁈"j((PEKO'__9G/Zq` b&~d :u$s(C !y0I7,L%2$zW^_ƌՒ֣{  rsG,c5-ߢGI03Q\+WJ\^G@A xZ,](R1x" tѭhvΉ!w&lUU^|~Qu.}<\Wwh8g ~_K`x|Uξ!uaMNLJ?akhDemJrfv \492@ )_"!M7Q%] Pʗֽ$*y;[sMܢf5`}k e8O|/G7co>Ic(R%ڰ/Zs$Z.PoM3b&$2$S zfx"ߔ"A3=H%`\4жi6"~%Uzu"J<+sɁ _gW?'o˰]`+WI(Fp`55P\gϛvrD]hG06fn%y&mb|3w93OT sFeymN#g)'&l)`ZEvi\ ~QfUx]h<~m5(ny > ϦzDDPF;[{wϽ`žX΃+DŇOo6=Zlo(;iAR "]jF{j lu5ˢ߳A,K9ERfWVUb3:~K,,NvCH\(qzva,$۰= 濉dlp'N`sHW{^ddtCld؞"SB󉵜 xtJX#{WE>IYLWi XsU_R,!Tj8b=(ȩ% ) #5hJ2/ g=+]Cr`i|>&:" J͏tܵՓAcu(+.19 }PJI#rSwö )w|zI|sLebgi 6]JٚZt5ݵSOVޅ'_b`x\: u cV7MfA̮uB=mop.K%tjvf{,qfct'2ç?2U #jD"̭B Qx6b_xh^( T!0n$/Ak|F:,DhRib;vǤ?VdSYKIJayŦ uCO~z FeKl[<^:c ﴆXOaa!|=Unv}vC ~5Ön(fW!ibd K&#r$>=Sli5ej;7Tυ%jUC= D=eT--t' a) ^J#Ƣ k3 zk W&x rX-}BdwrVrj!{= .TϡC&>R34Eʟ[g^NU~vm#?#t܉6DJi9Ζfw##$C;0fQ&9pREE.${!(X2q |OmOKOt+TUN8V1u!P'fe>c%ݪZ.F)aw364b0g.1Z"ƧpQ%ԣUAxEj:!5~ՒTIɈc8@'lAo>'2p~uRRb@w`ư6U (lˌn;&+Y$j-f* c!q=BtG^_ כMɔWԇ)FurGPm\ CcG [RH7nOŶh t E&a-cVtqZ6*/л5 =I*|Ef{XRIxVSP[]`j`o-]E \ßEO{uf{J\M%Hoj {p.t j %4+)gv |  FU<w:`C7^,hࡺ=i> >f5[]Asl=+nm3$t~܌ QtxՖ (2-TzTog:v- Sȑx$T {gVڠ.h^w'J5g^V'2N j$Lc2sTOOi.|%E/`1Wh;nhd!a.S֢+~#BB 3t]!U Ct,..wᮃ*@֭bI2/< :lk3yrtLf@㵅)rz7b_}՟1߱\ y(EJq=k[aqxQSt4 eՐd_3ivЯၛw7\֒,6L/(vr؍4yI)0%( pfX9g$6W#T@Cуre~cCTfl"_ޜn)IYOiŠ4,!7q ~u-9&[ZA(4o8 nT*maX=,W7 _"v&/Y!w18 Y mrSqy*MceKu.*y^J2rٯ@|s?rXXb1˓?}&=(̔rMx/qZ$/Ǔt .bm9U[݃`zC<* 1y"T{p P$rM i& ; jAzsb@p_)c/}4Q k0JűMS.G]E l{Ą @0lµkqMգOYǓc% 'avu"&yc1aIZJR7=R܃fyEb*"Z֔'&ZFk= |Ag҇%n(}5fk(\z=ooJmdRϲsXXwwNqGS$" *7/ &rٿڸf\VtN/iIi(ݖ<3e2</=lLW]ηWi}Yq):&,Bo?O`q4ڶU]iP2Ȼ8O C#}3_3u{sWB#($,+~f ᷑aJM ƎnA2rrr$LP{/'qa~ @~1QB.Tk/AO<{VO5~x}2 AKH&^vq-sYsL:圶 3)7`ͷ&lJQ95'xiOPq52 Rˣin9?mH=r VҸ4+I"} gC5!3{ڗ+V 8$<5*8hY<^{'d8b0?9T .#_uK6:B@M`F6]~^..辙rCio4r޷rqPYbrƪʧ0#eSDDhKOip\ڠx9NE[u BNd)Y[09mm>]^Zz/A-gJW!@kd5"2ę͆ 2QxFh"$(૞ 4g\q@!QWʺ&xc|1I9AYŖMyl.:|"mŷ'Wpm?[:QW '#vۖLpUZ'~N$ t42315E H)C8h݉2)LF&vRG-*"-yOܘ8{BpӘG aB݂٩%OÔO%al;9*Lջnrfҍ 5@7lSb/Xr0϶5 Ozi7wݚa$dv2Tx<‘%3,I-}KZQJF͓<*>к&*8!J>pԠ,D!rg\-& q!7uɼy+_#bݕݽ٭R $ɞZO*P #cp=iki3R%Q "l {oa_ͿT7-d0bCz18xS$I6x=!r+Jlty~4?k^+xCM+< 9q :2"0#j{DλdK e?H>EvzŽD껚^-4L_YQ>xfƬ2`5$ό>$9>㙙 [YAk+V{{ --z溿QvU݄Jg^H;FU+]OFՓsLt`]Ųzqc;}z )OL*<WbuLK^U`nk2GvȂ,+Hc{ Z5"+K?.xKYKCʻNk%;:u 2$m<;1-ޤ{<LJdPMf*~XŜn=}o>~iIKt?@zI-E2aٷmӇvm" OKNPzfۑ޾򪐨bcEHLI<8Ymhb-SJ:qɞ';L /93Ën&QѼ?s;#Jxg {W] zy_İOq~Žy^'%'Q'c2/w'@{YUSյci?:8a-CS=3>W(T-+.dHo*>e׍+ :@; Tf/\ I(vR&SMM7&Wyq i$ 17IOxea,|$n])wyS<`.D&[˽҇uih%F⢖ǛCCy&ZAk8PSzO IB_iK<@xbI*sQ+dǚ,_( b(_ NY$\z~1W)Үێ~-nܰb3&&OMA~ŀ3n\=#Z~ɽ4AyMNeCou{h~tRs(*_x{Oi(jsf=|ij %Og)eU{3`6  Y22 ЌE%/AKrwv'Q ~f8(hvWpeƥ5G]*Y,Ws-b :2 SZ<͢$I&bkj"l32A(q rkVvw{2It&}8[WHū8;/bPIZovYe҃᠔Y]DH@?eŞrb8>Opӟ;A IJmvVunKm'Z*~}:6fTJ'{ěGAOethJjU1$*y.jlq.IJNq֦^mEaY48 }RgJԷ(܍j$@m,v8wx&wPOsnxa*~U*~<Hy/ ݉u1kzg4M+CN6R{/A>󅛺Ab˪4xHQ<$<)zbh /!?3R-r%!1u,xL":CU٭Ƚ˜=w9ͨ!9  ߅ ]]Ğm 8יjP,vN/* qyrzC!Y+2a#mm=yI˓m<-J#AK/oBQE,F闭"aiQ)m$v\W@ҜW*;9:z }w+ WQ_Z5L8>H>2Zx'aVYF"D.n'=w!!z#a(zY|Og!7Ko$`X 9i 0D~Cӫ~7Ӧv‰A_$^ 7*{}kjv:Yu=(Mf~}^|8`l͆O5vR\__+˘~to!݇[=7j9Q~DJI^-?H LP=I]|(e k.`rr|y8f.Z+5)A{oW~CWQz?LN?\2ڪHPqka|d:[}HfJ9hbԘsGr10g;Dpkhc(jYf쪉'WwyR'H`"E4+uי[ǰqu1xzIֲ% aLAcՎ(M1wsnTFoCpax')a#'ZGhj*$=xڗj^jt5N)Zpw(F؆R MeJK$p~\6-ihFDÏ"Zj/jHBӄwIDKFE+S3`-90`̠g>8'?rߒ"7.=}u|=5|:p2yq|[cBbʣj|>8e4`G1=m5_ak;gd8]k}7֠oӥjHJ:%~WRTU Q<+]rOhwd=Q*t<2\ϱW \{+7Lm{4ks/s{S(1~XAJ N-O趯Aaϸ g@ʻSwhu1HHK[:[1n*nyҞ`f\# 9K0Ȝts@!LrKZ my D !%bUgEv]4 ۇU?~\YJ6-j6D[roҒT>SROsxUP?: )d|Fh)g]ᾑ7ka nQ IBe#4=}4#=NI7GHyp68_3dŽ򪄗'༹.F}TM9ʵEp4˸cv9Pz3f稂.lRj p`|^yDCdL C|VD?܈&8E+=dHx#[ml.( 1Sf.Ɣle~0c!#?jL;ɝ$鄟 PJJFI8l;աp'!enu1 s}b5@=,1fA*-YN_>>н +n mf4wN`Fֻ#ų]LRBۉ삔|6V٘k5|9{C KN7n]Nz:cfMd'ʅu?աd ]&lՉX%NvI -1XT\sC5w׸ښ5]do|)uw: j6B";͞rdbtb*jDz rP}}ɺ)Js;@CఄڒӕbE Ƽrp>lv"{8\SlҌjp[WDD؎etMBm0YF:9VʒgUMᗐ.^`⁛9KSW%׹>>B<ޠx }ö?I$e@~,П$k@ ` HWJpB z8wa3DΔP#BOk1n IT >!9"Ki3'2l|Fۇ^$.}??qCG9 2TCyG}ehԛ }%Eֵ NDL9Xu!2KoYD뭒FW*{TR"DHݪL4$_ 0vl J$ٞ=Vo `ί3{'g˴R|W);=\'ԣthgh3"07/}k`]Gw :RυS>BvYnvƃ|{t/sLXn Oɮ7F8Hex. ejmyBm>5}jYzA#Jƞ|v^$xk* j-n"-[( 53ErŐchV A,Ȕ,'Hs6~˹v -O8g/J6cn«&s~%-iC?ew;F|o[ŸNdC_ rI@l:$H*NxH&":po,JQ,!WaڜлeXVn&gZ7!U"[0G5'ޯ5 &A>D0>O'Ҍ t |++j׈k!F .`S3};|V3?*PHHP0qGvI|yP9[ [1({})a ԖXqCٕb C4n6ܙ ?@1_n PU)|U)@+7#jDb;wxJ\8 =4Ռ&s-> 1&G_}!B'qBGJh"T)=;/k#P5AMn@4NC3i\^NksHiM:|~'rF?V+m7)ePRM?K{nߴOќ }aĉ9a6OD,maiu7uDY2<ݕ/|t&3fce"QRum.+  ;JLyy2QNOˤˤ:UrzS,Rb".IaovB uL6|>C>FěO QݢQ$*?G|'ד,O :ݪ7S)WM'GDOciWgwB6XCZonz\na?::11_}g9v; W?nspR8s&9ʚ)FGaIq{vvC{FP2Vov3| F:QjQSEw-; =Idi$lI ? +3#vB0w#F='I pї.UڐS͹Ky"El;=^u?YmegJJ`w- .l$8Kӝr+ße;r%'BJ8:` k&{8.Cl*V[>C qu/Ð y1 *#*=< 9ő)X[x2g8v2f+WTǪx >%~G84/א`.dt`/%P`!C-6EЧ"ve ul4;BLվK%X=5OC`ɢ]1Yc^PQ 2ɃnF] 7Q `mcݏnYN]-60IKɲO;YyYP "ERkl2U|zݎ"Eu.Y_:e-ζizmg3m6eOܨ)}nzGx;nʊX7s[H0]*^P-7Uu%B5]Q牐qzWC LAǿb4XFH3)/މ^xiSmd]1>@?-ttDc8 5ߴx!6 Q56鑙4H'Tq;yt!MZ6oGGN!߯*bpAkޔGz~ {QKmQVg]::$I5x;bILus{P4H3|y:d *sSn]c|)U$lrKj'v!rJo3}+,'|dӆBe5m9jѹlEӳcٟ(MȎ~x 4Hj> rz r@obU ;fT_m INn<$ ̗]\[׋,<<8n~M:<Ɲ& e֋~tx"OnC҅cwD ?npԊ')Zt=+v>]BV+.W <7n6f[J(Bq H։G1hW b`5vH%?FBVѦfQ$dm9wlр4e y^UD3 . 1|f':F s atl/b*1dTLj:XȓFcν5 _J!$IR,R9^9gxIl_| ׍`-Mcf(skbz |o_Z~>nw\pcW џtANaLjc)]/CQLt8_r&)8\1FrZ_8:)z6L߈o82V, _epq*Ro%jò)xە\]axj-VJbӰKlGMW||mȄ [qf/D:!\qжiK*OdewK7CUR @A(ECfERsڌk 95[pO uCip)Qgv珋Ƭ5sjAQU]^̻QRo) s˦Df12.|,k$`*wxTcbdPLK/oFV" :tM;s_*$)ĩ_Uk "fNGt[mf^_CgωLJïj>^\D@}kGsN f/Zҥ~eȅ5vAo.I% P5w]Zo)8{$ ɟ\']i}ȲcDLNzbK"y]ǐS'SR){OĆ{%mBȭ[{#>;Y&. $^_50O4 1tʴkI>MXv:JkԘ-)Bz `w/-~[ KB|f qA2*vE8%٢ Lk<]ڦ4)cT*;0E\!÷uP'``O"Yf#s7_?,i9=my TWC`ljޠ)+0 Dz I3bpVnY-c3's9RK^tEgK9}@/B]kUB6mlc%x:>4܊vjoQ#'i7nM`eFݐTkjB|XVH&_\xbB,{1B#RW`+|[UB2PS5و3c x9=JR7 I,c«;;q)';~$v=;ݏC1jENLzd(uխY\ ҙI1,L0U>]Ҳao srfS$`>(Xx%4Ϳ*ڂ*FaWHSI͆PAhq$M0Z#EEal4 V ȋV mx8^i#ZĹ_8벞{!.'5V}GRB= ^ʯ zp {(ON"c(BL!nYĐ I^! RG86fJgiX%HQ!w> "d-Ctl-85HmflIނeziF-D#d s+bFۊbLe&$dNle;·"_h"я{iʾ0JGTFMFmbe!#tox4B5%dT;T2B+4uhA9aL2%nHw()<9Wmru_oB4Y7AEvk,L61^~Xn@raC\ /J|̆? aswdzR!yz!W<Ⱥeb78!xreáGML{5nC eVLmFƖ5@1 $(xЍ ?އѨnBskb#xk6p# mSsog)x8WpW wkPXÃ\G^(ʦrdE=HN=z fZkkb\V z&']EY"9b~U`2r<6uqRb;3-gjwVe1L}b(VaҊHMuT|JvnB޲qtZ=i ij1Qr z)[%25~ΏFcl+;#~,#<*K.MCG_ϕEX%pyVj "C২|_!!U[B+fMߵu;im6]eW aO>Dj;"EeYǽ!-J:u<,8 O q6bPRF-c!ץSDf[l}g iWVu @ct2ߐ#.@V>7 il5_OP<_l|{!QlN ;PZ 2D$&d 5c-7h$XV.F߬')ؔ;#Gč먆c݆۷_K8t^?}^oz%纫RWmLчf%@'5 '5wJXۍ;-uYW{|2}>Ѵxeq쨔w²~ӵ9KW'qd.jYyfo\m7pbzD}b(IЍ-@`6ލ5*=K ~xWqш?#)(gn&V} WHkkw\)[clH<=^}kb~xT{^ǂvV(Xm-mg Ԝ ɀއx_IE3Љn cObf6WJ6&r S("^XʇL?k8=mʿsyնczw?}>W2w|[تfkGI[}{X=þnzey {ِ:MQ#;$֊z/E[WweWm;R s̿.nĚrVa<6j\SmjTs XGY)y@;&)c-]@ط[sCkZ{(KW6_=wW{J{3{ZctW;czE;yg\.9anwpY9|R}^R4 ^b~UzBU,E7 Pqne1}vR1qb\|w;*56I5XYQYu8* pL/ɹw])îgrwURtE55ܪ ;UTKy/wl·@a2}VLvH)ݚ )޻_UıI䊈H5;D5լoV"96)#Җ-B\<8]B{Srpsax#܇"Jy^xvI-DH!3u޸`$ݙ:߄r@ `Y_3:N[ HT. sPNT77}9ȔxS;6.&hX6#fmI1?[oo%o4t8 VRt0/2+ܡ:R2>ij3%u)ɍO Λ-FEBƋ H1؁ϖ+hSzE,530У6~sC `ӌt7ۨr?[\x kG$sȯl'tq;tsFiVR CedC$C/ĔQݼ9V(s[ \ҙKuw]s,'Dz42ABj)*ɐa֔~)&ROS^frElV^V[M^9J/Maup t\ TAs1"bl&yx8Qv 8hk0C w;~f1݊mZ܇IiZU :V6Fa"Y,@*L0o3ww jv9K "Af8_oQwy>$[NJŰUZ;q ^rLPO^>HS J%]®-Au㫝yWܥߑL:}8!$V`&1/m?W3 nS83*@rLRE$y6}So?\L_f`g)k'\Cq74τYG02oשN~ip@z{x?'G:~ B'dpo 4Gk<чTC [Q >ORP3qJz nly2Hݚc)Q @iѮ)|ܴ;~qW/z~m9R&'fqlEĠx=sl{ʹBj,et8-!'f%@e 6rTWnK9R2~)IFEܗ>| @ :M’F!pR4~H֎ ñq*oOeCZy \sގR 0qk:NB/3@3oq Ig}/խn 8*Mхveާ26èilpRittFaWF' \I{}g®Cfc&(D*b3\ꭲ H?й{?K9S;M"*w@BE8nU*n~@qEDs]^@vxi҃0aw=J%~&{_&#.H+:YT$;\V{fN@1%GwWpU]3BڛE3Y|m:J SeܹWx-4ۂ{Oƀ9?sB *7vtԐF{,e.;W)$>:L/@܏rWvJE9ޭ>^Z>okj3da5!6hQ9~"ovz8A2vݶ +d$0b+aזzIvөZ: Hl{L"//1/ސZf]x2:C?$iGS- eR^}w]W _qw\=1XD[c^Aa~B41bq^T2 lHsVŽ5e1OG Pi[ƐZ|ee9lK֖ iHۤ‚+t8R8Y 0BpӧqUKӊNHFO}<9`l\-Ӗ:A \+ZTCM$޽Ј ۥts 41owQ Y@2ɥKOU@Z^Nr@' u SH"wMы7/Ȑkչ*Jh Y<-Z `(7Z##eTae>gÍ͂#gJ|P$zc l? kNR9Qk;q/Y0YGh O0 Wة>5tWh5OvNʹ!:R[*{K a.naNvdfWw7JDr 0пq7հ'{_ӻwq?Q` 2q Ͽ` 7!1k4?| 8ˣr d[?҄IwUF; ĀPyMĿ WK'RZݨŔ6V q@'V\G!#Pp.b:_! E{`@Zv}Sf/ A4iTڿy{fm0/ob~_Ic/ jK@#3&ҤhƘ̯Ώ`{޺i=<尣l?%!ur5 UKP~ij1HF 58b>':ޣÆGWUyQIxn 6u/e37kE1]Xd =9<|ܘ{po}>Bk:V#[,[jhБKZ۷7ok SS~UKx"Gϒ"BkHlay93nŃ~oYJC(wl4_j_XaH 08iZp&r[ɺ#5*gc+N۳KQ5˽YD&+IGv?iT@?me-e^U6fpDb(*'W>B_XQۓ =~Nsy?/?+M_U `7R%mRE=cDmrG!mgnpǏ[T=F.@Q:qck9X*g}#1=?6g;@>ZFۂf6 y 7'wefXQBbebYKZP¥F "KBׄu]ニ޴Uaٯ~8VVh~2XeMx<}}58,FS./,G;Zc~ZcDB$'yƬ*%#$x"z_MP-XbkrڨI]P[Վ"r?Bن"aGE+YaQƱI;Puff;* bKsNk7,?,Aq8y_>*h`m8̕udMLiYQ ?|#ziI`ҜOfқfk\5q݁F=Ϥrܙ}6K*,n&>ʊT6B,P6?zƾWD1J7ol9׳.;KEDE7F#z#ʵU+y"zߡ⋫m%_|L\R$\`;GʠP8/gg +*zޡvL^.v~v];!me+41i}'`9 y$8!y"DIxͲtfu i~>a=k Q/{>}eҵUjפa0$*Pr']Yɤ἟O7~4ŜKt>Ozw.)Nb수BGK)8,߿\WŌ4#)eCK]o)>+ǃQp3[)XgQzHė+o{<0CHto.qX^$Wf"4^lύ&dj_;$ʲnrxw({Sf5%vkP˝E;O%%i Y_5ج;_յ .m _dΪ>UmLw. udsw%KE.W苲@ S# LUH27TgVv<{ZGBi*G4[`/֕YR;J:HcZ>7zz[mn%{\c:DicV_<&/¾+PBw ujlVyp⌘%T=Bs a NQⵚDA|'m/ه*kpN;Ð {} M'"\* /0K(+`-LBՃ^Py35Z$ߦ ZBb^)A'_a9} K~)/dwi@nλ^s gn"wN<(Oz'͍BdSh7'kucZhXhjԄw^A0&|fw(d[)}G`Nܢ6 SN#9 l\.s 1̮)rIiXur[c|>~|4N~rh`4--)jbj{:U,b9 (ȟIZwnL&rw ysH!y|sK[F]*BIQekHJO-\& k5W߾!ܡtS $ym?ﻄؓOMkz'1*pr7SN\ŷ.+?b%{ĭ/aF4n-rOz;p sZb!`K O9ة}"HЦټPX4\W={):6U`jpw1+Ҟ)/p-?vo{cӓxZu?Y0.NEr @$#ť؈_!ط!>@ NC4d%Dz@cS(2-RD[?O [RfV7K9TYcGb)XVȧQW)8x#7qE Z.A,tlV:/)ho^rqJUԼY “ 1Ȼ{d$-a,pS_}7W({ IRX/hႴCƕs;۵m(q&fc1`xyGKTpuF"C(צb3㗪,jT_B* (mxCJ&Qw15^yϞq ^=l/v--0dD}Y}z᧧/N=2諬P:V}ڛy)Oc"WP yl,G s; 8cn3l=>̞PKhL1(`?*+nuvola/128x128/apps/kpilot.pngUT tlA4Qux z{8F6gHҁm!-<)bH)!LC:NHU*̡z(aeNu??,o7%-%T;(/mpzØۙpy#=鸋]B >0 >Dv4(ϡ^ koosf^Az) \00m(q@񷫺 6WW;-j! ӘGPHF$gc)G 0Mp.(?#@Jڼ %h*|ǶŠt]F|aIS9[5.sZssU٣ek |7!gҖ: 嶮8n}Gk EH| o6G V'paIzD|c /4|> r\i<2REn߾-PL Y{tǎ^0߿4ƹ <n*Y+Э|ҁ pG]i*X;JI.@Kvfy~kRKLhEev͉7cVc+{ˏO\ظ=m{4Rl;Nymyc]_w8FYH^x7> ȭSQьOu~"x6U@&;b+Ai&/$D,~%wYljDY|ʬI `e֣H%~-iqp|f8ZHv+MvIB gXLb6&nCs=kY: xC%M?hIׇ%F馋tҀPv܃+@\P-̟?>u,Td$:;%ɾХiP4aa^daӽvHa=lߋ  ArD {"ӧB#{贁GXKn u/l$ t(z֜OiM4z.OԀ>; h7%>raHHׇ:ǁW@ؾƪ !5TFce̖ZU( mX4!&ڿj& >à[VbeސNm~RJUamki[,ӝOȫ a/42EXL7Hi[jb4pL3߻: ^uvFƆx0g9+45M^N W0M0W_҅5SJf/Ϧt7rgͫ3ur= X L5"`T.P1PLvO翺dL& AL;!:/6x-f H9PsԀbA;_)OLv/nbs소R-[M: Kwj{VwyBHxH*W -$9=aPMipq).wt l2fSg[sɽu䝹`d.Atq&r1i-|>?:~XJ}sٯ9pӢio;J/?BH)պ@p Ck*u"ܜv/)v}J6٥$K3&1zO1}(·U0[M[@]| šG#\M#uqɄZqfش>~8RA;g]p4<ڨے|3׺g)v٠hV.ۋKKͰ*WTߩ+2^G&.Q.[ ޝ- T拢H!E`v0(RJXl5xOp`C0 "7\K)uj϶dGfkylU:n`o B8GayL3KFcU$,ړ$-jq{цL:Z"8#_ƴ.V %WIĜIs>.>2@9 rxdw#ؙ 2WmSr}_Gb-9 lT8ɸZuh\R*w"Gm3fگ$RLU[%O!)FX q/nJ,NNW#~??R[pϡ!e)nӊ}($~{% {F9K}!/~[GMMnZO0n[@=ktܷ8\lN!$h| * b=Ĝ\A~޾%#a( t[A6{ ~IC͸*WQVgLM~K: /k\wᲅ9󆅰3ET*3$X/3.bh!>4A4h D?GɊC ZS*\ ;!9 WUaBcI]+(ڍ>p`ҋ=!-Jk2F lCdv@+;\oaz P@09CEHlpd s,*kOTԗ?;J5O-y4Ws9jw2:zN0h[-gldiXwfLAp@ŧ&.ЃBwJpj+W ZJ^e g_d2t_*fλ4p#n[[OMO\ Z -Z.ywoNj1RZlq&Lt TZ8AW-Ÿ̃juKtR^s,&/ NK\Aw5-& q{ AB!(W=Y%@`9Ó2IhRx#¹ڛxM욵ϱot8"4w`rɆ1Owuy٧*w v6bgTJ`8Ou-ݘ}MIK|qpղ">s\kVr藢V޲ۛZѝ;KcL٤I\V5xaݾc4~sߢNQI\PbT$$/ov].qC١CIvijuuqe |!>mz1c3lEM4PC8ᣀ_Ԃ ,1y=G B95w^ d?hԩ5KR .JZq_yyq6mX^ϲffS;L/iƶ Afwヲ8g@Sl. 5īُLcv2_a(.Z[quTVY#& 0am`П/ +9șqJId Oj$spkVFԓ:Wvxm=GNHɠ^,$85P mEL7˕&#%2q,1)ȋ6)t% v}oMF*<iڰ(gakK7 nt*_!QD=S9HC8)g! Zp$/.pg\: jH5Z¦+pY<u[ٙ@uf+F:1b D'OZo $7uBNё6zNL}qxG1 U'݈_Z& GnBZ(̜/7hkIDs״:+ Gn{łї_أ|NV'lr߷ĵde "ɭ'1aA>/t-iQ1kO0u'"<, ;s]aTw NޮQ,;lLdFJ HZ{ D0 ?1' l_7$]#n-qQ`ȶBIo1DVl,ӼwC݌ݺ 9_M> o~hĺKQ+2sԥXD%Wvng$+hB!дR]RzXCEi릣̚Dv߮g.>/gMe4u"AZhcOqSME6_ɋ~~1JVִGy&@ؘ큛uRt"xn |Q?N_$TYSqev]0M#1+=F4@z3r fc[V? ffJg4Kr鸋v 0#0͍&SGa@mWyoI%1: TIPdst%6`NV(Gma [[EE[oMIPE-C)G+5) VU ߓ9$QaWe!`)h }Iy,//o_*ntuHH(0\آ׭YSXIR$d~l}D7yOAe%ӮZ#hܤ- =/rGknF;x$[[u$!1?鵶GЕpL^ư-<2(SN÷W57zi'!>[6X!?/g ٹ5g{oGǽY/]gw,gH[pjD'4=]P sww¯~9t:S {Ts͔?l"^/G|lQ&o!w,\i3z+|5{k5Xg| /όjug?< ;7e\e 5y"wJZ>/ ZIlC,y %GAꘊ2!-+u =E9W7Ӆ<ɪKim lă\JNIkEU}ަG \z}???WoˆZjxHFy3[TM G7lTTQwIhŖb(@:W.2|` }_0hփR5kJ)6'AZD._ٽ-a vz_}فtK;xm1b` T}\4I^hJMt1/XJ5oGO߈/a7PB ~j&" ȫ}N*RU&'jc$[K7+!XnAϮb=:{kHvg"C%J7D, gXke\3Djfѭ60ap O"6Y_fx_:cST:BИS|u}Ms;*"BK+-p hlE򀍂Kh MX3Gs7:u ʿg&hHbmԽMr٢}W%.Zq_a&T&Ý[MRKB-Yt [}}`SPyhY r ۢ^\"iM|% ǎg|18*y_JKT2&ZxS} z }"5R Bg2\nX1B:0 kVs%9 k}Fy_@xвHi~v mQt\qaM L1@J5?tKӦ4tlP)bT91SiI^ťN%)Ź:6,]jX┺ZynMtw^|ERᒤ}ta7bLpJbCULOa y#SNvn!5 K [c-X9v~|/6~-z`KVhY126qٿނ힔f[s ض:_DMX]mm7WLisR!6!S/^X8I50'"0CFٗY]M`\' @x >d>W ן{o^C歶3r6ZSتN+}wU ҕ-z `"" bu2p+eng||'#M}7}➺տn[&3#J8>r_/xQZ}8== gs }){d0Ek =] eMb˟__._\mRY諴i wis:e룏RqB>͝V.cmmCOm,};$, lTnۈ00Il6#Cxp{~ZMx]!ě[э|L;k$^ >ӔD|IN%4f,Fj6qǝ1iԄ_ї=GF=8,"7OI @8>4ETvX_U33'; LYY\9sco3:x&61H$gbɟi!ȹxЃ ǺG,FMf# ]#=SGWU(QuIɻr5 ֒dSCl2TK *h{"* MMϧGb?Z!ش8݅ Kڹxi:,̸LuEI|7f}CU#Ĕ9QӿY=x3;S>W5fԼ{JF BD~ _9*hJ/)h޼zf7|]bFG H%z*\S~͂ԓoo~ib&1}W6 Fб[m7 j'YӑԦV1D9HR%!ٖ./<|wmcݺKqӐ?9'vTխ"!ҖA8ͼichd.cN'sFܲPƒTIvW''ɦXx_)!Lj@Zs.A{, Txhd+/&KK6m +c07˨lr8MhJ$z@[J<>؜# 2/s>列ѵm6mYY+k򈑢WJ*~ Xn{R/g3Y_3}t29:+R|=[νua}O#}Dh.gh֕នvMV#3|"t5ؙYCnyz(0RㇸG;u5Jgâ?Lyฬ֘3m.PKeL1R*()#nuvola/128x128/apps/kpovmodeler.pngUT nlA4Qux z;T}q1K$dƚ̨ƒ2I%U*JY0Pd*vP0vBPLQ*i03~>Ͻ{y7K@{MHQѭ,qt<'$ J޴76Pľ72;".& &"pRgX F h) rJh_ x</VV3hq< 0Vhs8B-8j4h0wM!v6}wӐpjRBMNl.>mؘa+dqL!X,oFCa9tRjϺ [b9܈Ook$RRTQMzE=qR.Lw-pMdD?`0"M U٧+ɧpϠLaZnftE*m!A/;Ƣ8w4LGjŜq&' ûYu@QfH)0C&ˢs$0 A{o<#g.TC-HNݑ50)v<^ۣF_a r_I۸> EH+RښFS #W`7S)s0ӘϣXpZ#C&5_#eTVTistZqnAJϱq,X7wnn;lW4rl|Ji8:[,eGزXV\TU0~?jQJO ,0QS#SAb'Qߊk }e՜YNJ#]j 6)(h x/  q‿Ϟm;BiRc6!mk ONESI>ދL,pmv\9Hڡ z~5,ŸE fN-k .UףDh3 zԠwS U0+RXޫf0k,jd+igE]b&_yL+F4O2ƪ K9G?+O*"Δݜ['UU5Yjo ,.|QŻQMC]IAv+3 n0l$N k k&k=Ds tn]mp A? /[7*urTctLT ֒DdgA}XX i೏C gm9UN9 COp~knuery O_l5>n".kmOLlw76BC}uuRŚ;dBpZT&F ,h1Go75X섇D(9_׍IQ̩ey_RzhFA`Ԛ;DpnCLJ2NC^RjBfz" ق` =OPSү_/|GA_ya7XqG0[4gX4^,n my92d| #pU-6 y@K95gSVyJ, AFqe(>ۍy(@mx8󿫍#P_-<Ϧ l|~9y'4U_pOs_DXQuEbZ+6&R{]Κ'hԗ>ƚz@W~Vb@ؓV\ӵt ]0Qe ب(#&|HKс?BUxMȵM{lGO} d.eA~QT퉖*f[Kp2!^sa `[7h*p[d~Ȁofk($saՊNh3[PMT+J]-u-3|Ѷ̈́#uMS5;K ? q]c$jq{,}͙¡5Ţ>j H5{%G[$,o@$\`} t۷#\q9&7.( FGD \a 8w_8҂i}=m]F,JLnVVL\\ u f+Z WWzm.qg^["X1-7mƴEOXom]ݬ6 'ـg'.@vW|e=BaJKXq:&vI9> {lF#b>ĻF"f6C1#5GU3z`_{T$ZIx*Cc$eza|ZT} YrwB vŎFcp1ZO#l[ʱb۸7n#V4?9@EJMh ;dQ')kb2EĭԆOp -\ aF2AIgOж4d(MDnϟl(w:gY[hB^^ÓGEu;<:_TCps'k?O d#pbxdZD_ĵ="2xK9* \0.u{9*7M&Q|?(UzIˋWۋ ۦ\ yUH;Pұ0<fYsJρv؟N](: %/7Akqnc1NMY]a5+Q.JGhG\Ox2yz->WR`^sP;IPg۳6^FQ6&+Eo&~d<"4!B;?Wp[Aї_Wa(b}wpP%*UևU~U} >z-a2gcs)"q}%Db%)M#`ʇ J.*9Z,PxHajƭZZ8m@ޫ0D`:.k4HzI ˚ Ҏ)q}¦`ڡ .9uASMX . 94"5oV Q1 y9Gblhc&_P':8pO-)ڞh+ADU7z0,FZ"@BП`jKVkmޘ⎗߯d5H>]e:p#F 86gE-$>pqYNf|4>M7_);v' i3V@[Op5%8 ,G/N$&DiE7 / ӄ=C,2r9DM ͼםNz_n v \ 9 + '"F>N=;BtkiS;'r(hJ:%UTtZ-R/4t掻O_NX +MNN! FK_&@IZi_iL ;P`jxoOǎjEHeY:m@t^OA :D}U6kb(V[E)74ODORksuyWKl}'?BlZ!"΁FJ]nD=WcÞ-dLRɟ-Ib1?Fz ˛h?ӌ#%JiYM$I&>lo璩\=DgFCr=Ln&=K-},xdBPAOv;k+-h%LU`q6nK$+ٱQE'~9gmJ=y]ia5?г%0XD'8+i.4RLCGmA XqNzeVU['޶+zy\~(L1 m~ml|l!T_B.E gMz87T>–S'S}>OH &5-r![8+RS"ɞWP>S-,}p@er{' ĊDqsÐ7_53~ߗdC\ UCb&rxмj"Mn@Z5o5ǨlD5,1k/ܣ2vŏup3t3HdpY/N:[R `ʨ6VG!:S 3f jCаZc.1ùa!]V9Rp˜ᦄ΂M 6f7G8d es 5dYǭ+9etRnCꅜ? ;HxOc0J>j"qCdg-G? IUfI߁ ȃ,+au#/  r:X\`ɸw0s4B{' kW5ޕ)T}dPgwh5$#?ƲXn؍|Nlr)/q{݀!kKoV 8$D>W>EB*Z+uξd[^Եc'0c K wp* \ߡ$h䭠;?(gG쇔5p}-L($:BS,M3~&:Wp;eGB #Er3Jr`y8fBmSARd hSmLjtf'T~Le9xW4GG=CR zـܽ|?n-h߇XXr6%AAC;/ ЇeוsmͺX:@V_7im[FЙfaQ9:K;gI4T`$ %xqpȥ. py₰3MlBwܚ`w_ӗ`(FOlGB_]9_U3,NPkN*Ҹ@TR X,pvNPdՂg0euSvW *ģcʈ@isFaV| ot[*rO6R'f TbSUq2CZNZ ߓ!zzȦ&pp(_xsOAh#|pEgߧp,FRƓdR)3=1g7DCSn/WAqvsׂ14x'ΟT+m(9 -:QRRԒFpa;&g, o Fp H ϴVe X|@gi/E0| K-:~1iL87s֞,ƝN7A1>I~ ?C'a˧"Nbu-FN :jçCx:i?g7 *邟49 eW$='ޫL8/JNѷxk)W+V=7>cTQ};l‡FtW6E6cD̨8"ݿ1-y=N/)*tPiN$"r|  bGti Nm̟´k?M#lyZXU5g ]:-@ts@棝í}.R>7x7JBDZtӘ_X/X"zVr!`ht M3왶«WsSfK\MOE4ΘJbtLEp-Nn4yKȁ9ߏ\#VP gL*E@U- (g`/5>oTP,_K˧{NCy҅RBW_>pz_X)Sz#ikCMV=$; ;0'=cЁPU8(TcuD6b\8nr=@¤'LSD/3*2%toN%ɋfDn!9KE/:  gOaȍ24a0kYf ZڙXd»o]>>F1<4X𦨉{ 4t{e `k,s*EO}9 *\]zYV$ ?ei V|l}K渱򧘺S֢/?wb[o1怒/J*"},0Iŏ*暒Ǧ/뭂eU]e7]اڹFz,nX)\ .Pe]2ӆ?#E\6Ц  bz0yV-DgZ"lSrAeخ[@U}@!dK)JC5^R?S8m۶ WUZZ- 8GOrs/:>*%Q8429?0ip2B[Q<;W"n5 '1$SBu*_v@woE~SֿߴEEfd']$B 7"_iǺ%3!/&> ?QmO_V?.PFl먕R޳K[Cijb؊r D|@M_n=J)Kx~Q~H]E*ei  +ZBxG0W@ϡCK J:02w{q(xaT4Y1IdͺR^JoKyFWѦC˧z˜&_㯯'RUkWr;E~ijo h|-&]ivwm -5" w—(km-%9p0'3Oѷ8`̎&)q*Aa\>uEpXk 7ě/~f"qdk7PKVL1ӳ01nuvola/128x128/apps/kppp.pngUT TlA4Qux {7{fnmB.wO)*W(wCJU*Q.-\"-r~olﳝz<9ˤqR@f^B_6BMV+?ﱧ]O;|:Oᷟ Ɲzddد"BW5Tw\ *PHbqpPpB#Đ@tK*?Lvn!B@[n!JY%x5u`+_7N*)x?szy}4l X' iEL9 s<^kjNI%#5^g v^G"ؙ%ߩJkxD_"`gD KWjNF$qD%ݘ*6W+E+%h5teڿCݼS*]OvTf!uDsJ\.H[`!; PeNF @lOH2Z<^%X8Sw Y_ƟSVұbkf[C ~$o*I2>Ŭ|k䞜bE~a/q#_AOMUl.]ѫ8[Fv%R/Ssw"ӹGRV81Nc?S p!ϿV/Wx%2='U< 0Gp#{Qfa|,528W@^(LGKaJbľ7UufzL4['KZLHgD{h ײخtheiXw[܀70nJ&l/b>[RRq1]:~gw"ox:&կ5.µ E,m/KZfz ,/jWD\?)T6|c(} w:u0ЧAwy&RIal\IS.r|^r"kg㶢NfiI1sRPq s$fci[OO]%'!jXX3B841.9S8Zq a6E{7Z(> r! :/CxV>v5EOu_r@\$ӍCjDŽH9:t:UBfIOER1Ji:QnzfDpzU@8uC9Y*O@l8}$) p8ʖ fTH=G֬$У3+ K ,.&5W9(."|*, 'O8A :h+.lsyF/7&:/? !_l = ɝ'@7߮+ܮ~1혇.[ .IJh ui+iw%CaM Q$uu8jӕe,OzAN5 Ȉj.!=)w.ܿw]Bu9U28GTS>L-8j'4y- ީL@KyPӐp]q݌].He!ԬDۀ: D$uKEݛqT9"!"[8:3"5!RƖwuf>>&$K^SyjފěCJgз1Mh5u~7'n<#,lZXHhmmeED6""ar1/r.oA(+YȳN`Ƚ7{%\VniTEҧq4z qIYC(non߲Leh!r$X@2O !+>RÒmaA$(啤i=qX=c SǀȈh w :JmWT=X @}[L?s!_]Ֆr,+ S k.@p` MjHyP*bRгIT<z7^oiF9Lό>UEY-PF?Taß,˂U8@֍#۲w7G ˜9rCٌEإ\Xdsʼn5^*`m= h Hԁ*낔;k5G Ammlje%)y߶Od|5*aa2Ɓ2 >WEA A|6RA9c_,#0JtnuX$\m<X ̝ͦYg_B2hyH5yR 0/DA(IF<tQĄtz7s-A ILmT i5eedf'S82.ftG<45EB%2oۗΤ wJ%CCtuӦH3_eᵒ\RK2W>jrh vu00$_qz^~4QF:H/tkm/nK܇Y8t^dn%I5z܃Qof˽IQyLj$Y{xq0ޠo@ ,oAXF#]ܡ QcDb6}93LKfnfR z$:RMo4*@s58%~WrRO& "N@7A%B'}V]m]E3c;Jfƿ&{ 6.',b0vABx^,DzӾM9ery؇6nH8Tz>u㬸έӟ|E4$M1E[C'N9 MBBޱ83 ?6{nז%ss5mvlwuh$<:!P@H|;plAAC!N -)>8D\hb$G̢ʤ/w6Ҏ&D!(JC[g);ּevp^R$exSM\Rq&ud|%~Oxt11*pͩF 0A!ƝO4ywhMdAg4P8d6)j1洫焠*tlbl: ;O9L}z):4 0q ;t zIQGsQe:.87^}-74v}h?nʆ-hhكPp\HH0ӳddZfP"w>Sezߞ@q-.h_cYs\7WcN5" ȿJ g*y Z}tt=]6x3 Ӏ=(gvILm (UHXwC%r`Df+zz^vz6oW0n%oSyym.B []٩.f>" 4Jf)II/1ڕD)~{Ϲߒ.c#-?pOV&8bQM0Cb&`=2nqw@;)ߑہ+zr[7q+7`k^Z\PR@d.$bXG U.WIy}"S&YRP31e%"sbo)H* 9Β +3u ~i*}$ }Xy] (X&…RP 4aCJ9<`QϏUԜDbq,3hsL+@Cl-QG'"Mj13K!ydPե.$s}Iҳ @LT@a+%<ڴaUp+6[{Bc7'cz"Tlf%oD,BgAꝖIKl! +'i0IC=.} N I ~eXnZٰv^!(oqreP[1S[$d)%UN3ǛZpȥ٠v av=9}mn N}ƩAlbC}\9C@ +LdF֔ИO4S75(osL}v7fڇ,e5nnϡu.5c1tƜ{-:ҩ<&!|,D)9[ḵp2mr@?=zל;[woX/p/^X12# 8ۑKVk`l T ce1c~s_ L i.;vMjƖۙj(q|dvb}l0Zg(ו>xu$>_0i}Ei&o/mG;.? M5˶HY^}'*<I磢[_H0FőG 4wbhJҟh([n &Ȅ\wϠǿ(Z$Qw,Wqe$ Ne9Q/:ZG#P8 c(NQV̺Am ގ[XA+nM"n(U B -tqL OYh_!T"Q­ۖkVxi^.@ʃ+5e>`]MV=Qmil]\$_ֹtlxl12u!W8m~f2M˟N:S"qcyUT6^aAň:ˮcnr,mvema>{dp9d1vf#ߏ ŌgȯX}_q'kW;$/#bL8=n\%Z_+sUY&xׂ0WZ'Th(!e"O^x8M?IbGybG82a&LkMa] oVq)}3ˤA]/ hW%eUfvr8I>v<ݛGqSZfM^: M}xU4׺ \?j-wLڮ,oἇY^ ImICy{aׯuFoaTo'`0f>U>B-g}XA\:׬@NEdҙ2Nq՗%5($#6 $"]ڑ-swyZ08q:Kp'qFI_dʻv^8Mm1ZH@eF8iK?sދVeZT{YX2h6VK r=YnF}!9vB~,jo6 U/}4m#a D_~eΎ/*0_AW8=$,9`?p-:b v)KqO%I68O(,=׏axSPEDp@M'kc; VN +>!of2SOKPjmq]vr$>"$(o=J1Jq 4-/%5tS ʟtt3~z*|r^}6_:/%΀]Rh}sQ|fh5MnĶռuw=#6\p$mg#՗L[5M߳:PDzQ/i o9-W8a)0^+j5'Dlk <0WL̢yM|ۇYB Z<:0kfTțz%#N e&X_j]Geٴz[o9a=zjBɞ]$6G }>#v?^ p*bv0NqeHVѓ6F4u)%K>#FQ7ރ2D8zezpFM9>LZ/{Oop?r%z1z?: 5l[Rjt1o %N_\R=L?_dݾ'ÿU ~=:NvII1o(tϹ{k5&阂= ֧ZTG򁕉ڈ5k'b[^o+u^:@rgʇ.l Op, (Qrj9{Nu4=vף Tq9z׌ !+++ohJRӧ2Y2d*?;ijͼ!`\]ZPE>/.{`4jmjܹ9]1^v=G:7Tm64ke܁fHʝ07&hj5I7Y,g`.9o-=E'#GfDX5aZ++?Vԭ7|b^)</VЂ3nbx7 Xm"f-8s;zZ&\gvpu )ܠ|T *lw YI-휔wNq?՝Pܖ0֘pDe TQv-9%vΗwPzeqI3x3[4wOmgw:0I:NIed3m $Ҝ0nؙec#~J-*͂\Co#ɿeWX;Nso}%a75B.H~ Y?"C80>6m p&g/!V3זrq?]ꞡ;ЫC`"`V8O8 Dv wJUWr9RL3UoAmq4|]k+e|1I=pY ݯ^t2`ФF>wȗaQ P! @.a5.P`ko'Ojkk%!Rp+99agCsQdY1iFd !w\;c_N~"ұ;.< xw!R԰f۱_4UFѕ'sEL#vtXqRO;_2uU%H{ca$&'j8${MF<|o%?ny)s.ɩ8:  H"5<$mKî0nC۾%7[Ԓ$<6x?@,9 gXȾT ]8?p?PKt91W!#%"nuvola/128x128/apps/kpresenter.pngUT gUA4Qux z;T=33}aB3JfHP!ddIІ(#y<@[T$/L}GfN"ʼ7|O=4}Q?S/ܾr`.x%&$Ϗ۽YJ댙BQl#8L[Hů: At6 J/l؁~P)W\N"&/DFMҴC ꅃ(IK܌NϠ;Dqf/O*GI*Stpk醕#u9H7Ǝ4qkɝ3]ޛ}ēUOƶtSNá#%cC pEQޙdb\>anĕ+0( Fϣ.i z76/w[\9Jru}Rejثd!ۚHO'uiSS 28/clH"t7T~ ?=SL1 ˨]3/%Ko݅uz:NiKiCz"9IcI?*.y5=yB:4 woĈZ)ܝ^?d5 ڌnY8u_jl_Yz.KZZ/椯j_qnV$@f1vx_}(z,$s?y}0Y 1LVhF e+Gttr3@S y-_ B+9Å3rL.nD\XcqD?@dnRc4VFiB(GL(V35oVhdLjAu7v?4)7&Z EV]kU-h\gJ@fKt5lc g_xA.D5ŅLcPcJ{Ҥ 2i('uz\|c ]|X>IqS%+H&q.#C5Ql C灥f {T,,M}W!um!̷Q0ƍ:{0a kFY |y/x\cϾMG"26F,M"xˇ^\UhAr6jYi Vw(gݴΝb[$'Jŧm3xG`(h AI RbWdhX75A0$+'EUg-H_.- ?aÆߋyOS{sr=wA));y w3N6#U7.v*ȫ/RA[@naj:" Bw`GNZl| YNtK2kv2661 ŧŮShVOO=/$p3/6] E.*ӈJϿN ԎF{F3e|tVi~;WIeg s^bGͩbڲbp;Ĥ8tr؃ݳx! ,~}ϙ8fm6Ĺwv%+)guӹՁO 6l "/dWps-;Ķ:(3=CZcBq1Ɵ_wS>$4zxSIwBSg~:276+$jPlSCŠx+ؼoi~\v-[+40~f\feihQYϪ dE0Hb&4?U96h_?&u}%BS#Ybc%ڛH*EPCؽCw7YO}f׮W*<)=w꼣:1\ w<|}ߐDGi.imcc^;6{ӇsBn')#)4wNI~J2Hu&E5e1fۉ|^3+whhޘV)`!!SZ7;، HyqgMVobމ\=…jY.;d޺i 8׳w. }\\KJgGo鮥Vd[<45v>w4&ȋBKK4:kFUE(wYwxCYrjzL D?JCYZn9 au1E9wN8mM!wxv_ 9 FJ-k: pVmR:^GǼn¾(GsݛDjH(.D3_5f[ܴvUfd9֒s՜Ӄ$(n B]70l-́PUg@KV]NkFYϙ.2s->KTe 29jN+.4Sۖ@+O6 V] >`ᖁVwTpӫu.]i'} gv!oW"ǀo)h35ߕT s &sgŨ0-mA&G0e sIJX߿ѐ};46څӧ䭥.(AAo8/<'[M9^)`vj`^Css ^Em˶ɲ,)m< {kZ#0;'ϗYj;jMΈRTizkhqZs@ O#ެ0IFn NJ?b$?iy=sFjfxUt bB`?& kDֈH#`y)JdIOJ]>l3n[*CdBג>y;p_ |ZGH>evvݴV$#heWISR*_(M꫿wS>qN/0ʝD9p̪m-4Hf] G04)q>:F2ؗ AJȾdtY}v4=2 }2]\ y:04H=p0U)cGm;j_Lg 'YGh5Ix'廚 ,\IO(Vc {{YH ـߖކGAꀮŊmݿD[Gnc}kkH/NHYh,w)ENjtL?eL?YSgob*K{po8 }gs .km' ǝFqMR7 'n!pgBLa!&a ױ>ݞ4Q,O 6OtE9/ AB\جTʧzƃ?&2DAB^(_kNwOR ժ̨ۗJb)T~亃85TxaW^771b]gx Zp]2<پE^e])˿Ssv6MF- > h4|#TPT,&oYaqDxKyif.e3qxWB:r83Q,ItA ȇ߀a |0B]I\ȵ?"0+")t>/HF?MRN{Kcь]xLJ#` pykv(=Ιk'zY|kaOI}WhG.\ [(o5j+yGO_wmrxwu8ϷrYf+ W{T}pM`c Yogsϭ?{#hz sDځ%GfOlC#CSϔx ~߷e2ڳy59\-$ʷ ׾v%"?Sm|ɰ[ w@^6. )iw4r:^5}` -k l.yt*eDVTmnn˾qoOw+Ѐ;uRL_ =0~q(59j%^ΧaL9s`"|31.gW>Ύ ̪ϫ޷VU3zIuR~gR~((|,uTO@ y[C'kb8T+]SԃۂbX(>Cm^ &0@|a2p (@|#B!qln,DQOl .rlqfn"'E<}fJ'!j-Š˧>j|:`eT+ [;LA/BU+oĩuK9id( 58:<&~<^aKM'e 2{$-h*N-0/حbMO CR.0 ,`T0!ҟᴵ|1(5tw]˿6 o`oi #{0er(yjw U;LXK%EE:e:P6&y_h{ .DS)I,u]9-iڇ(~P3'(>Y) o ^B3)3XO|#\{QT0YMtbIq;ih;8[&E]pl6ԾxN6>yt")Md// Nԥ%;LZN'mh:";4Ȅ^_F-xipEMxXp``V<[s7Avn-K###k<@h/.eOsdS.SEcO܁ǭ뇨c)qKq福/ WA!X^{@X=-8pes]Wnݵn8;*7Gf z1̖M OXoW~ ^x ŝP~hXa_#6g"&1U}PY*(vƏ"Pm >6V'_7r 5Tn*6}ےY3uڈz#ةp.#%.푋bAz,ٽ'?s4_2\_|-N/,X.'@Z pF(y<(|]T1I(F[ D~ Z@x eww~}Rn@p!#-*_[bp/< oݰt8ʪL]'&; w!hcj)!xכyln 7FznP.l5E;/~k-?45qj,}4o/?n赶;,<r롤}<.ggrT W$K, ?E8DKP# xa+:DZ*{ףkc[<"pee 9lNea4JGk1{6P@aF R^LRgx 6aM,\"5cX7^xD,0/F3{u~z{p[^U/bc%>>Uیx9 H.{\x1oT}Z `B)V -Pզ(_la\7?xGg|;_dNr(30gM- w#dK6OSjX' ~PӅI3SyɃvaY HJ^ [LK&v51rW4,Ew7|^aDӃ6~p_kǵD>-~24hVʇq.}Ly)_Os} E-cyaَ5ݽrz$>s3q%sL (n[.X9ib1 nF/t̿TЂlf$&;Jf(F+%xe~<(\MQnS/HBjkʮar#r]QL_\fB$\ZlbإhϊJF#1Ϊ'ҿca"lM ƥSڅup fOt+x;77_`'q񼸊aݣfO[gKzg1/4>!Oj6gv# 2E@S#)P7tqd~,pO탺_G vB7nВ/-ʹ#E9V= HGm@˝LךYQ5HVq4[\SR|֩\cLnDU/yWO8昊 5x1 `s^(P|Iǻ+)57S0?Mtee0y >.cH6 %hy|]ǟq2; eFs}wXz/y۠b 2kYT_u{t}K%.:%Ǽy{ig3}4TZ׃-}(ewS`:l$D))-k4lh~YiCB-K.,P/ˣ~ilo`\͌Zؙ9}M'm@ҹݨ$zd et*>^ T'4yj^x|l!!ApuV/Uycy2*م.<8(B6[ϧhyIe!4} :/-mfui8w)SXۀUyV:S~D7k\cQ4qekxSs-,.|(*k`Ȓ-݆w6'EfiyKWHD^rTj>zrJږ|y{7]g}"%㻜D3fՖ/C x͆a}[*Bg+JoV@6|RNjɖl[]-ZDg4Qrl!J9[y2RY,oMI/ nmGqч1iYp).bwcnpܚysR:MOtcr 8H#]ȋbOELQaU/;R<[獉6H3Dt%ib̋6]j<1o%pϱCEU*NQytH=T}& fltX.nHK?I Z)AFdy_QۋLfR,a/D'&U/Vk7^cJvK?WS*$.1\9{Y>|°=rq>- J4_1a$H ~ߓd"u傶Bk]߂؀Ԧ0cD&SR纞kėtN}w?3Ҷɵex bD+-zkl9@lh*8ВdmfzgUFVm27=;;׍=Þ X+PK/PKpH1ռ; $$nuvola/128x128/apps/krdc.pngUT fA4Qux %Y 4T,!(̌=!K4v"Kv--"cJJY+![~9g9>W"#( `A׹\YaR;7;0sz0ֆ*s೤p"C;>)rFLf1^qύB) A^p,~́B9Gat k׮C q؉L.,*$$\JdSsN`_bLG2&}kS%hYd%)ΘB "g<9[cV0=}0OFqa'7Ҵ8a5Qm5uM&ye߬ldC::&t":::,~7GNSQF ʘNpH@=RNrmNi*ϴ|>C5, )qȻGAyJi8ցrG$8b{{hTT>Zю+bRMXۃ g h/mq0W9=#ф.acGRYwd|C$ @q'r,9G'b i<{!I$XuG dH(ph-E%?0 :u 4nPpC@nh?Xrܿ |V'VqN%P&FBi%>&R:j.+d;>{ Q8y ٴ'ϖb?H,8i ~1Z.!7wp>ERv̒x8Z 4!6ps}rI@]_NSw^"d.{mlp"Kڢ(KD~ ViB]Ċ yJ°ć'HtKXU*'[*ےTt~/H*Mk_@e(w\ZX. ?VlUh]'Z7;hk~_ ݏ#lEF,/mep9 އAggf:) \8Cd3jZeC9ͮI]0a{9` e`syȸww}ZT6Y37\U]ﺄC^re =,W&>mS42̽.%ON@8->d'sRI`ȘK:s+'tښ9ڤk/š1w+_^*JV;dJw~90u9x穘{{wX<~b^H>cke̎>: n ӈ~TV¸B] Rt{c6LS&Ɍd29hA=*FOW@mUHLXk\^j#}57F,>TKN֪,ċeBX}1Pʷ~91x;kF>u1]g ݿ%tbvujD|>3HL+-s~J|,41@XSPpQ[iZւHAJO`Ӻu0 c"7Oh)ڬփ$?IVpx;^dL!s'j f~lqRM˻"2(jxy9|\Ƅ9+`bՅqq|>Ƚspl'a^eCp-v4qidQ9lFzKfvUd&˵xcbo/2 siC \ 9y4^ OD-_:ᬀD!@4jEfa%4[H5 Nd#xzo_Oʡap7"Au *w;9N/XE2[apoI_-W K Ϫ5#({:!B-- >`۫Qb$ҹBe"De \WFcPVbd_"Wm|X"J+bQR1.R5ZRcIk$|=d[E_a9_&ʧG~K ZDk1_LO x4-P=g \#'w"IYp?)]څORpR>SI?z=Xc)כ/"+:&Xjʏh5]i=AKJ!{ %]R'Lľ#th_k3X.bo?!!x9c0a3o+bx~cfl!$uX zux\OSV_jyX8d!z̭_k-m<5G~n_ܩLZdhQ6\i<Zfv9hc<2]3R!56AҴ*o ̹Ó0˱j-p%bU+-`كrX"<"XU9^kUHY6=c2(Ų-=1 vmbaOҞ"7kE.?dBo {JW*i2I|NA7ryB;֩/+*s6QJB'9фg̯Y_wvb7PN/^UB dw6x%f &y&pJt7Imj!lWSWiY k-(R9i -19(O5nPuVJ]sH QPw[yec5 - J!v,W-*"4?Hgiiz J 0l>siKx[2ũ"ottԴpyv02ťrbᱧfAK&WHh`5}!1ߕ_̨1>-wPCL*8gr1ϙu:W#sUGL _9tUk\ )֐ G}!]caC#ߗ~r3.9ܝeeWS Z2bO5{cdeJp_u)7ߙiy9,HGRDDEK`I/_!N;f;dVf Y@ݥzV֦]/\~loͷ+,6UeX 9Z7ظTmBUqh5:N71poy䒩̳qүuLp7@'_ +'=rJgȄ o+Y' Vf?!,Y6pYc-kuzeL 8{= nkmRFbнpR_gYb6drImkvSO]t6 O4o!/;=7J dW$F٩1:WӑtW9[aWn:)`:tvRc:= 7: -Aha8~q"Z#}Q ٶ;T?;V'9J{htn"aqVSzo}.lB{jXJس˛u/~e9dr RL[$śs)URғBrrDd'V uCqAHF^^~ԁ>ӱ6WtQ7m&j16;kA+V|X%&Cw*12OZF]]0mE E&C8%~. [.8IjD0%,Dܱ s+ͧ2<Z[.&]VPm G:G8wڕ |Պ}Jl>HŒ2 !l@FҊF%i*.=B bL!sr< 3s[̿ӓHfy(aM~0!M\A{B~|*>pA,m@9tdfBvBOU8N9rpj ʟDGFbdLYmo >BIwR/!Nև 2-z$Ke;)P. Ӟ'JN@K<2ކӇݹB ' !

    F3t!@\{a$NZ5N R ]A;5okz'Oa܁f LE;`^0pyQ 4D~p91NP:J{ sШ\GޢTT誀|"hQ}v6{8} $EGY?"!.$cQ3Vh P]x nG:e-ǶÒJP0&ǵO+aiSkks;L;[l ѳSGGGBMzY3iOTG g 'X_L:3zF yCuHع&NW 1\}91,PCa; lrh<$6?{OG vrNCVR&7-@o{5PKqH1iݚ!nuvola/128x128/apps/krec.pngUT &fA4Qux uzwTT$&ЋHE 2!b@b(0rltZɬYoo39+TTP[s?A/lSp \j]OL MY#.%529숊e-7A;jy֤FM+5&B~X+]nI҅c@%JW qO,3'C~X_MD@5cdd[&]JF:[J#8wb,u/{ggFNϊ6ݑX#DGYYF H{$!`Ê*R) +)cVkVl^z}jaĩ uʼnz2gm+͎B׳,',0jғQ]RC}sqc)uu,ѥĤkGngdrMմ&pw,iǼ@ĻpQA1Mڳ_LgV0c%*} Qj;t\ 7G"J |y0bMeGam>.sun2K>CTtw+Ʀ(oPbvr(nGَu+Z*9Gys=2()R܊ Z]XFEE @+BQlsN=!*fR Lǽ6C4Hn 5[hAprF"c&*\IU¯&)Teޒ-3(W˔v7la%, ͥVhp',)vVZ&0K1n5AL I@ ׳Tr\V*GvcfYK;*9n T̯P=zC6 (=BC8mxB5NW3ZG a`|4k!(&qU)͂E ]N BAUyltO*@o9=8pqq(/uݢfG S!MM;w( 2 Tm`@m3*mIYFxe "`Ӓߵ,i=|!^CUgavlD݃[762еP-fX>뉑IOp\ngAOcy֍`S`q>1`S~ ?,n\QNDa Z/YaaUȍP Toꉚ_7ǧ5l7T:[׃7jQF(D]'R,my:x| j}B[ žd &#=mAE-@ 1.xZ=ONP~  `48IzU?F=CHE?Qm eqxĎ]~٥pnKJ@:1P B,ZZXCt'@PCc[ZwsI=4}7O ?".vy8xFUyPv3E4okqq !g@$\jNѧt]0K2q;YK9dz0yH|1XM|j{dj:n,̸gT+9fnD3Df$!ד"JmEy UEnVJ9-t5N%ޑvq`:jS$B֚O'W6Ț7o7|Ae(ْj3v(O #Qd{f] Jv1>ش |A!]fd{;x)M\Qĭ )5l&x. JUw`.(;U ̑ĝ0u~cZ?OIc0PĢ[ei^6]xxo#x|}U]F(7~د-Md KxEO?C8gAy BHͧdZf\gP6pX;auNPϱG?fg8F1' 4Zq|CT5wRqd d(tjYw펱;R!CzT + 3w? "k"ӏ (4 ݐ:Ncpz\_,!B]V`?]wѵ Q> tБz-+tdo |eYNu.U'vkHK=f="\LAN!>"0AKRD +z? T;V ). *eل ӭ#yȽ:n6YA!܀Mr kU tk7/V7<[6Jl5yӖ紫zNcidPw1}%ćϢdd]kBNoPT}~9)Cg3/b !;#y4Ϙ_a2hg{6wa2z=Ahy=Ji:k7xR#qaQLe1Kr] ɤr a~ -9*Sm bC_HiI/fϜOm *nzh]3k*etBH_<-UeGg6By:9Fi&'ߗbK}|A~9̭KM{JXtiƤxe-nD7qtVP&jgߔ\ x+5'f~_z+i$7лX)?1蔝h!m6h.+!_]xKԇ–|tA~eT!)QP3+xSK&?bZq囐}mZ_cU?9NJxZx}ܙ}.i>t7E(mAa'U6xh)" \a0=jZU.y+ɺz?&ԫ'oɪdS$pS$[dw ǀP )&-S?XO3̂6/t7IUl5xXexIk՛^_Z>*([+*]qǰWT;78E*aسdrp+B[vZkO1 k_/d8GcW[4I\YPlFr~D:!] ^Hg /*my'/ğf)v=tSJ;ihdhV}فwu /g?k(T\}*ڽldm{s0vذZW!ڇJqTV~ٞNp/3 Z Ye"FdZ[ 6Kh.]inc+;ѿ8 +6WiW (UcN&bhOqc(7vs>?+ɉd?fKSxOz]3=O5dˈq7oԘz͊ǛO EjD Hxځ_滟0qBnט> =cSww"c'e!O(n+PR"ȸ./0oRWKa u[}8`0(lfk5D.ګ^Lgb I/-&ZoĹplA _`JG8Q2f+l8IW87б7Ge,(i%t4aQ~26tpibՇ )+x0VqҬT'} Vjy_)+i ex|&jg2,/{ VgˣXG#I"5Ean; WBJHv#K XU.s@p:SLVR%}:76 ]@ 9H'i')VK`\\ %Qm? ˿-?jƉV=1wPs\M)dBڌ8Ew#DTfxşx 1ƌMɉUmrc0t @v`J:8bp'}J,@z]UAo3)_)*1UTFZ37Z/|_lN9u$-D+Ù3-@u#˙h:" PCUPڏMԥ?/ds)<+#W\~š_L1ݛXC"5mZ7o{Ί Sqגfv}݁etj'Mv-s棫\U>eBGiRV Q[9jjk$PТf&MN*4 (3x'3Fnݚj6Wē~p-Pxj 3 ҞW Mi G/ Ɍ4ma7~#Rogl&ƭ88e|' AzVQWSi;yoG> Yg,R2ްkgCl==\tvf!e\af_ؔul=ťReή.@|^dT^v ɢֈiJ4: nKI ReBzvWh|4kt?tۖ]R!']dة)Jz7'%I;9fP+0+|Gaf//N9;OMktwܡ:|@{UעF14[RF4UfHB d*.?~(Ҹ2[v[ ;ț^XPaXi\ej8ɜrӐu͓jt3;o >/=Oq[ l7p?{y_ 3Eۍe{Lz7M}$!n뚥$V|JN'CR+`0 x؞.)-_lC:߯`'d6T\(jhCGgWg4ϯc͌ȻYcLg#CgX| Um>\;İ/Ѫ-1(hXA] Zkbh?\gt햢(k8UBaQLUVI$8j E" ~>e\FG9ie~Jh̝V+=& پoUxXj9=w&\U ϑ]}IJ?d]3gIϸþ_g3ZƗhe" )I:.uk5i3B{ J %]?C/ߏP(l (e>+/z"PKpH1C0M(2* nuvola/128x128/apps/kreversi.pngUT fA4Qux ziXRk 7NS8䬀lei5SNy&QҴ2-YFi错VZbN8Gq]gu^ Y5xZK֪__ WU~+pO?UNM^nwl;fwv]Qqn9vo_4=R1%c΃P) ?8F5dt,PXWIH:W;հ ՟(Ģp.aQ)& 2Dw~eJ~Πr25w@KChEȌ !QQ"ԭ4.+6=y:\! jW׮QDg3uS^ _? o5!y庘0o~dIk qnaSCު藼ݳA! s$ Wy"ȮHy&ڞG5Z JdTU.2rI]~Ux %/=9/40ޡF3#}ha( 90On~D).ANVM3A;." mBȍJ^U}!0ʀq߫Vt$BP8փu ʿH9gO9Uyg\lX5iJQz cnMckF;FW )8Λ_|i>/=ys%AHL*|RYSӑ:7Sj} Xcjݯ;&}%s&SK s2|Vz)Lq1M4ԄCEnߵŷc+%a8 ୬k7ޔhqSUuEJ|9r|(]6Z]ɴ`:{ oe歘Go %UP\v 'g響Ώ*Jt=xU#&#t qrNSƥ4+H:F@{.fY}\̚peuˎhfwL)ͦJp1,Y&NW1r\۶KYVB12혏0բBmg-axG>Nu"12|]Dž{!<+@LWFSh`JNpyx~yoi6$b)mw H hz;RY1ȍ?ӞTۈ\Ж#=:::t#GϺ_0:t~$ nc.L{_t`,"WbpJ٣N3xJe|C+W'/~dɍ[ͺЕr$xFš 0YrHt =Ink WTEsQ 0 <,Ϣ2 #%Rbnr^1 c/5 zqަμ6: _La30ʺʎȴ"UX8Ɖ ѬPVY,{KǾF#GxJngE|u&xI}Hs}Y$vBUfA3?[pkT_cK7:x{L^Ug=6Ku)"I)tbLn8əζmi:n0@4?D< Xskb}#KNL0fפ؂UӐ]Ax:W!'1<01~ABVf!˒',ӚDWtנtĞ9Y`@ohńdc0םB]ZnZr]5ek&c|3Ͽ=La*.pZdma\eibx7y!\~:7LJ;sdLhE(M u.>3Egc-w#'k3A<8Vk%iZ6$qОQCF!lM9qKklп*]ObNǴGr_Ge^>)*VhEa~SEc,ādzC^sU(')89)5N [h5?\p:Cp\ۜQj;? kt XĈ.]3J ,#M|*ۮ~/>xzԮqC00֚r8r8Mdc V6|bǣ GTUB1%1\ 撾C4pяU1S9QJlރOvDGkH{ZǪ M uoAK2LTߎGU֡ -20zZ7a (A5T&; N!;67-ǼZ58h߄@wqp/Y+x-|Tmo'ٝ"eMcޗ# h!kPs,;J5ҳƹ;8ZX+,A#CL퉟.kֽ-̚!UF)Ir>tQ$\}nAd9d)Qu5$J_;Ld\qbd.gE8,2Vw0 L؟|S<{+n5bӷ5!:ص8Q,ݐ %xp=/eosaػXlfI\*y!K~ ׽4@5ߵ]|&Uπ_(.7 i2?H|?!'Nyliw󭣒XdE}gj8=c\ t*lc$! Ca I_CR3)w3|{duB^U@fԺgMlX {@E7mZ l%}CNݦ*g5]0΁!P=/vTtyxCG***F0nۺrZOhu J0J@zo?e$ZO6?֒ݙt_ SE%jaX g?`aL{īG:ڎm&WV[M7&}Ď `C'T]h1P0:ZuLBVCцEu5r~Bؗ@Aހwnd}u| ]8 &<8䫌S\҈eB6Njj岀|wr8 J}f˯+n⪗Rzq(=3E$b9f"CD;PQ[yXrqjtT|w02ЇC؂#1VEܴIW!|蝝j_D%q$^EfgƢ:[Jv8V81'Oe'T4Eh!\qHBBdҳ-rvkI(z,  CN3ɴK!U Hv9BEߡq 뱰 Hf}3o 81;3sGtR` D &‚H7&V7τ+9цmV"^׳L)sXhQt=uqr!nb:w.e/˿<^Xܮ8Խ?F-LE OrnXY1Ӏ$F+,R1 ?V4z>0֑Z暔gF6@+0fODŽ|6Sɥiz\]c zbQn̍Xȋk4erİ .$1ޫWĴoNP;yF%Qj-Od`YjYr爡4h^_b4xAy&F?EG_sl~HmN suf {;7_r-% uOe51bqz-Ύk,y=""@grvR5~ٝ! xD |5;=LvݭMa;">?/ XYOSSgqSeӺbLJ!& k3M(cDfuB< / 2?7U/g=2ĽɡuZS7I5 ݬz d毃ť&,_nADT*h5G C*STKV'wIFڻ>iOtYժI)M v~,o iج"Ża6r(y3P``'Y$on1F:kN0i: SԔ&ڥzqϽE'%|JHd eO|{I;k' 39:,_+}D=1Y\\:9#a*{=삠)&*PZ0-R'1ӊSJ>I2߬A7r DYq5T֭Ntjʪ==Kܩs+4*Ou~#CqM1)I{.[;$6īgk` -IWd;V./8HNI/?)M=7I%8bk{WO t e!Z=_(t-o΅8(Nz>Cp NZl赨i:owSz%XƒJ֤nG;r _#HxKEr y)=HNz:x&0MfrV);*vűbU9Fńi (w]%R_~+z.#~ 愫0%9c!fYZc@Efe!^QB9]Ѵ"Bjs|s/[?d7ID3KZoz)3lӣ @"$2, Q䐜`PWCl;JNu=.Z3~d0ܨ:aii,O=Zd$< +^/IO./Zz%bYrxL >:3 ,~Ġ;85;>BO*)eq"FV A32IbeۅC۶)ߏAv 疱5y)Wc h|Uƾ_ʻf мpSZBС&A/jj) K)frXS3sNr13FLPU=u;WyP8Jk+bD'a.>$S&qz MAxm`ާo/;PH8ѫ:Ӕ1rc\1r2 [̒XQ6;| UلXO2%; #ai$,v+*mZ7':[J/JeCUjv45HQL=Xi;(顥x4ȗR=o\?1~4rRcdrQ×{Z1 A@T[t PP)C )FƙkH4 MΝVXZ~ u\l!' P)w 9<"~]|D(ExdA3b~ĦK.ɁzxN ;u$erAyŝn%H_i.!) L45ID&hZspOo?.TՋCuTarj*ٞŇ"Y eI+8HH8UVgm:'!veSU'|AW^@k A}8F 3%g\]$xgI{:|n+N 5` BHJ,n7I,9lfه$ P7Y6rSƇE5b| Y^lQ]TNsV]!bv>#Tp3՜\V5Y(?xJMO`5)\,hp=ɏM6ih NO,+!wD۶Tͩj)a3ʺ&=AV0N{zKE&?$`%.Kz I 2c=MNb_}+\Ḋ]9v׎31 b?'g-1󴆸 2mS ) C2S~&) v4)rQLV1NEAe#}őP3l4b*XxcE?;3xVQ ẽsh#\Kk@=?_@-H)f h{M޶MGғtJVC x׬OX sͣh'0qglռSN@0hTUE-'T@MrmO\o[IO5eDwEGW_OwsbS!go¼m^y}bwBJ83pMjv,$8G b?{xyy\Xx-k}6HRM:&=~7a vS>W5oRfʌT(}qy(A)=\Y$e9w2[d {{*mɻu9Z,.^ *\gFN(SVۼ#n,M8 z@vsDkAƝۢkIE t=oL˵'_lӥs@}7j7,*WUŃe<"$Re4Mv7GZƞW~׏g3Y@ Y'\i}?tb <SjU}vx)* 8,DВ]9\_ TT&O+aBit'2Dq/“}~c۱d^Gb_fG\Gȯg%0[_R) MM7H2fL@PrQ`Gs$uj6gVNgqMS Eё?_ [0]nc-%H=^L&ig [e6MY@⠣PPcp_f>;5Vu K*;YA)=֏g?OH'h"UFث#UJU~v_9EtLI=v~-t,ENp JsF-/0uC*H)N J鐢"=kzjcW;gZ&|\e~]rd{'.aCft=znGMJsZ|zpU$q#aSzEVs$:A-TJa !/\yS |Z:$;ShZ$F&M$Rw?iHv(OHo|M_F+]=zӯ:(W9͓TS4y={| L=_W?K 뇤?PK:^=1tC*UVnuvola/128x128/apps/krfb.pngUT @ZA4Qux 5{I#up~7r`9:+_4ywQ*S'_ )s11AO&v:jooۄ>kG,(+SwKsF2eT`lm'vO{? r.=֌6Q54E@qܨ 9Ƕ[ yă>Y-ndFKn#nI%C&!JlM`'O}|@毯vhr|{̇$.цgnIT6vAĿ*1p^FKqSS5d$\d #捡P-ήTxgDh!@ٔawFj]'*8*^eo/@'.CvM88xr( E {܁oᠹčLz=)~z&uxc2Bl}!ft;ݺW2W)VH8r9B|l3%@<,l6 sG`b۹jéGs3Suζ8ȷa@HV3`Л|O X456B/zY6vQ|Gi/ۉ`+ 4OXzkOj*2uYT|mN2%Ry@l_/^ ܎!f`ß@rB"ghD.fr&獔Ǒ@W !J~,p0K|N~dqI+,f wfBfGWtQ qKH&hed>N= D%;vՅdK>'ڏlI3 I޻c!_f5;&[ l'I?Rҕ01ڛ]:SvrU^zw|3:bQZ(-d|o >*ϋ@|mKOOIE(na\XLSX~`)mqޫ=Jtϡe_μ<+J!.b -<[sxJ5+j`9,\N BR~w !?fQ+RoM+oȇeBj)'|zH76#[HF}ʬfa;=]sqR!k8̈́b? C,ܔB-_]pT  f"timV w-v,P > 1ـ??":uۣd{ =裠hYēan|CRP1'e1b6a0ה]석yLi2tI$7Āf56LL>TFnssUN'IFWtΪow*/(#nܵ\{)r{s<56YteY=s[YJD)nZ;1/p k{&YKdCU8;Xyʙ'й|~L豃jK4Qpb8xFxGHʊ@<|M$Î+;]3&iJz$ܛ]ZNݙuLF&a_` *ehQ*Qyc r3c/1+JQ} S(_p`SWAL[ N/g^!)]C}Qw4Do^9hj+|H]S,D<]D?'O%Ù2g޸VXRxJǙxki \UQNGimƸv &Snֹ, Jt%HL/K[Pw?a}`HZ9U2XyNFsҺdċk]1PPJ %$TDz.Q2c,^Q cv[E>0Ҙ2K]pǒ|NOxF!듪Zp hte 2!ϫ&J ΋}ߖ2u%N Db˓geAU`5Xհ{%5;J2q<7>|n+.^ J (6}"l VQSc~G.jo%4c6fy20m A~=d Q7P7,j'8/M?ɵD4|R.tv{ P% iУiJ֠7ڑ,n1oce"j ktϱ"-@zh$v[)Cn%ץ$(\Yt!UoSXq,)yZ dm<VK?AK.TmA8;^AHRl>&m͒>JBwϓ?0F)QYV(Plr&1[vI}mp`tTIə"FFYuntY;F_, Wq \Po %YYm(_=*Y }j!AN,?&@e:tN#ƚF@'H`C浪anBy>#n]]I"'CGoхF~c%A D8C(e鍵%x un<„2u_FEYI'P\aQȩhS${XٴcI ģ2[VRnAچjoVωUϲB[r þOWiB MFXk?E1t v1W=Nfޥ#X$iI7Gi.y-( 78@\oF:CG~c'T گWGI"ڞ\ -ɶ(1z1:6D$ӯsI*(NM(،I/-eSM[I'I[D~BJtI Qq'43SAm Gm~_b R=67 ,ܛoGE^EB~?mQ6 ǀbzmLj J:F(I#YxAΏWX%K/՝Pe?Bp28N@꟏styznI[r=t PHikMdrB byBЩyVv%|@J0Y0]ӝbb22e97 5 P4i{Nq Ò6թ2|BѓwE4-(k&={S]^H0t+C)yItN}`~͌E2(nв/ӟ vƍ kA;[[l/[NY-3m$֦E"m!--#U< MmOc%SߩR+rsL- G_F4K`_nV"Uڒ7-dyjew[E4D6)CȪbW##|M1ғ4#FllY[LH-ᦸ vD)2vS$wnW%ʼnG8mP)5cF Mԟ-|U@ՐO#I#þ gq paf T֟ K 5f4W կؗ\~ c*03ROg *%3|ʅ\CIjPЮnFwLź[CI3EO#RcgRea: R*8~ď,~u'ٌ(nw|u&e =qz- XJ`rtl \FH3)oY%,RQ:[͢(Zn*+3݊ηՅ^/zacָcGId%c̨'rг juwF<?7d|Ġx©8~Wbu )U /+CoFC%:sqX i dlݯ%dJYz⎥%Ϙ~"nnuG|")w.^޼"̳ڟ]J䠠yY 3{`fe:27|g =8 hV$V`\a:M&rNK!yRR.y+p0P^aɀtK9Te](oCN $N)BX(oħʫ=S]t倆#ޏVkLQwb|Db9r$$6 -;rdOɳ9[g,o4/6^#HvTm%`;0%"Zq" Ԓ$7\3Z̀Q1/nPuw2ߥ4}IK7~>T߷j&瘚-{Vken \V `S倝+PQ,Ouѕ rUrhBcK4w*-GY_.ZSY(~Hf[*c/q"Di\w?&w5i^3o^ {߱٭ |gsNUꈜP^J$̋{ovHXw)}Vl/y.c<\Gesu[J THwd7Hk`8'[5]+vU6Ѕ ,A%pt H .H{- 7y\xTvݎ^!L^pIeAce8x:i|P&}x7|d;lb"wTNp/|]]8kQmΦJ~ BaT/G/LnŪYR/~P|WωǀcZ#; XZ2,;P*<ҕx28 _W=j Si)sO-Į=Ht+J30P 189+ MuQjvuꀻ0q{z3FGP޿2hpAa3!Z_CLnqB".De8)]5chRioSWbP,.mmQ3IesGUY̳/Y$x; }Mm@rShWk<*=+mX :~ ){&ո`xmM.R.zg X#B%Hj1 ^wy h+l3tT*:v' zTYyOYII?g Ux 2h$tta|1lWocF./r_DdݠH?D}dF^d$N]d@R CvU&6'[."yf?ueGPDFMt{a?-iLwogC/|Ftcy#FXgR:SV쩩9fzGrپ )zέ5b6㤉9@+DweѭD7g=F 'sAlCx+dk1eqP_֥'}av0ҰFA0C'`Q;fbaS}֠[@Vn58o 3*n'#KZFǚ[V62;b2 ] i&?⫱>8ܟ$Y!c%5~ְEWS@SEџ. ׺q]{z=8u &N27;$ S_?&j`.zˆ>=8h@\c5p,ealY%32L>[K}aU"Cw4IŤHλGL6ۅ"GPwsZmd lc gD _yA<̥ü7Er IEt38ycOK>x].B@t`#!W@`j>Lee$ݴhwEJ i&݈;Tzmp@ڝnȁ5m?fr5.*gv X!sElf cn+,R"%h0zوAhype"/U :/}U ΥT7/NjK8|U LL"Sl!|hVs#~*[c)L r0ǢpD2Q5%d?,_3;[e6SGW/WP3 hK1X|* Mw@(|SGg~`C-*d(pjifYiD4ۨr^ǖsdSVdhDdYڶuBIQ4"V_L%i.y죢/Ikns j/ES=BGP-0Q-`k!*%f o4 ǚ찚7t]m}wJ+S/ NGO>fPn?|[SR7LW:dyHV1 6$h?w[87lbF*@T!DH x[ 0`+xP&xPg~dh搞xoͧ0MM?Nm Ku0:v̲e}M/ؐ۝c4Oyzjڸ8= UR1E(+5 [䊰2d}%Y{v\k`JEG!9kL!q \G?[OksAv*ѕm`C>,D8(WNl'~Z:bdi5$18T;%Z&0#ڤ1?z#|D ǻT p-OtIYwBNsdg7Sy)C$,z8iش_s2%fJf:FC"2wdQFGӎr gj7=奜;^-Gw*PU?n0lVpsxLʓء Osy3\\@eH*Ό&.2KAТhsGEZzF_˅L{Σt'ߗОL?l2S< QK|JDaR/|n)vv'I C|(JNCdqyB8{1vc :/?/Rd CNZ4 I;R\<O~(?׮^(KxE$ 6@ئ͵LԜۄ?e}Y|%Urԏ}8z7Jު _' Bp[*^mlF>4dO8Yz'b*6Woi0쮼}BDp˵4hCLMZd/jD@fi󷙃ǶU1 {N%i\ >[ HlGj_l]a: :\ }sΗ..c٘ʑᬳ<3(>";ϲxKwv~ m Ee Ƹ {ഁI˔Zieg1uk;J0}gX+S X* *:x.2.ʰjg3S5^e lQQ[&lQ3~:ò~ qXuu[#'Lv[CE9~I8uvY0msa4c S ߍ,WHfuJz4 \km6X. 1j*~m >4YUݓ3dv*FVW6u {crdWShǫLHf{i9 UV6[5V ؔ飓~G.j%TU"M:W˞:Lhw> gG"ܭe~o xƂ cBؠTƵFo"cT sAd0Wyק[x)~eSk7/rY?P̑5UF^WA>>j^`-Y B/TؔFd ϕ7lP?)QRE݌Z\Lh D"ߍu[[ﳏw6m(qְG6E$m?v1O7D:Jŵ6 =XN/ywKCsi3@ʹe'}%2÷ /*Ii欆 d[[0TpRe J\] >; 9 T)wMI0SiC$A>?UDյ~܅oDaNZ-E-ή{be54avCzo ZdM'4GcEUY5N C'8_nfPR4v|,}WF :R Q6 ,޴|'KKF~k&\jiu  -SŽ#fy@)3laL jˋQzF }!ఉU9=薧#YS}{;3CB ]4!nwj2nE }3&kLҔb>^2 &:., PWF,_EIc;if*$S- j>L՜&#EQ%b@3ăwrzڵ`^kuNgǿO7x=dde[eۯ?$lMh~tѫ,ه$bU{}B2Xœ$w ꉡD ᗆBKCy!Y6oS{+_“ӄc|x lWp_杰:9g&6%7=mj(ZNO;U~ns\ /?kK؛foƠܺ;Ԁ)H0X<F)墏omVDkk8^҂"hj bU< G@]^S,Kj`LIAJ/["9mf)b VH!cl1wSXڀFL(QANʔEFa|f]8}N^e3Z6n#E_vcNa\8y3q !S3u8c2UE^XE+W[pjygҒ}{ƒQyțL$w92#aƺܱoD /N5i0xsM+̪VRjo[aa{3;%%>R0$ƊTtI\c}wLh8LڹHk}gTv"$ P{N}7v9Yq)2=.lhg+o"<?m< wj[QX5$k=XCcjEVOh5XYv<6s?x+)̸;8}hF1s>Ȍ0_VDZsJ'©=~50KBR-QdYgRqN4YPO'~۰WJ8X)K>R7{OgKA`Fp}*uґ t|L@)W?\UpRc-*Nׇ1]@D@P;Uz:Ǥa!˽SKF 䙳ypuIM1ٓ`0w0fFnK]ؘmz8i}ְ7 qxs""ҨQSTkw@}C둨  (""R2N>Rt%+FM BοuBEu'OgQ?::;&"0Wu:ͷnʞ?ӷ)xb 'l4YfE-DF +@m4FMk|40-"f#1"9C:Pn*wvAI'U#^B-@%!5gXlZƊW$|Q(DwdЫxz(*nn 8yi~ڵ"L Fzx)>T8H^+'>x{{st}_M +_dy̰ص/o/.>^ "e<s2YFV[|7K{Pm-yoC)޼MRA4:JEZl53"p:.$aa!k5ݽ-[Io}iXb6^[ YGNaY?1·^, `V/eiEEbS>I5KNtU'`HK-Bj*Cz>rLNa_l"]oYٰF;KmR;yxW 3ߞcw)@krl횬<"Ê1ϩ$rb~c6 YB*'i5J>܆HZ9}<#0~qق\Brw)*e/o`b\R[ ~݂7!i8/X6'п TaR(kw>90!gόWnpz"=NFZ%Z!MFހz Bf^blt|ȨTMVPJWٍyٺ, \y U0fPjqdk[DpA:v h >,p?W{nXYmPu$'ZD/˟ 5,}Qٹ :Rd0zt#5 }& Po&hSyUٱ![3f?'B=xϴYR#*/ )Hn'G[UԎ ~%]pQȈeT9ZX*إ}vΨYX7;_aْ}1 >i+ X$&OJRUrPIM!xc(-g85am<ܡzQ _bú'C*HBMQo\:nɼ %TUNwP>;i%uzgڍ<5þq>6Ukj'5(lÇ|((k_w.!68XJtgBO z^vI޻Z4 ҳ<>q)V1Sp Ejo?!ȹ1@N{NH_qXTj;NXw"mJ"J:NRFZ߂qAfVYi}8ޟq _5#a _|$Lm @o|˦+'W `O}/fp5$?d1gV5 Ja#N=kOuiT':xQ+*Ȱ7)K$W[s+hđq9x2E{w qޑ?g#D!kv7*E8S1N"Ⱦk0+v n+Y cGq;^ h۽6Lj7/ q+j;$/*WHE/Zz˗1?|pZ o/)q1&knٗt 1%̑TBގ<,uZZT+Awݱ*"%+ Ga |`|>GܬMhz-k$t&Xp$u r::.F_ei9ԯ{2FajS-N;m{(npyi6*p .֊Q,w 6:em8I* 5nf-JFQw ПjK[a%!r^!yl33sPV ۄnĸnd*Wn C9,"M)Oa ˔}HF;`zȎ'We곲pkC.11L;nl-@ 7or3jrQO_$|}j2s X_iLk?e$K3,W 4i#n ҏ9MF7|>J+aKn_ņAj'ƨZBnɋWVB:x %'2l l4Y֙m%gaQu닄f4f } / jB%4y.IJRiFB("$: yv+N@Av{G8(!3`d[#a17Pl&b,apl"N|!!ai I_U$NH}=4G/`>5??x=['۝ݦ:P1u-/&y],2`*cd$^(֧XLj,a,5006E?dc[^8,qnF.ܩ&?t?9&V@ Zݙ*ڙ\!fCSG}E[u}~? G:eĻN/@H~t&Kyp+nkuOR҆6jVS}5w1'f>"gyP! zqrN$XW{kUL>q%0VAhn D:tꝒcr\)C~Gs] FYC3㞰 W'#Bƺ݊I'5kq^lȊ m>^ /sCpʰ'0s wr (0Sscupw:LGBQ^'RSw2C~Ȃ%dXȺo뮜B59tL5-P4lb R[# PM)<~ ij&E΁@ ltpDKu8j%퉃{rBKR,hUhU{c?zM1*kv^.EX`7|3Zn*qL9 pvBr!NP`˜.Oc#ޡQ'4jQ_8yZX2*՜@z.3 Ny]LN"wӿn@>e+5_:$uiM=>1{73yJoSN TFZrAGf(keW;y\Vㄙi 4XoEbGV5rxj<ꊣUB܇ߟ t,kݔ}Wfq?42=L^Khٵx'Łk먨8~S[*> |]JK+}W.6(uH cŌEǿ|-@'<2e)a%b? Dn/o=H[~d.>o됗ۈAGw >Eb:zx&.v@ Ż!|K QčmNS0ڮ~攛![ v*$:_,JpWU z^|HޠHqԑ!f.1t$Bl㡆U.@/s$6~xjsFP#rr\AKAS H_eYBWR=Q}a1W9"*2QCOL`f/zL삌hl"R cib,8$9N]=Js"6L6/i/Z]@לl<n $ 7-uq,N{)Wۥ*1}aӉ"OƟpː¿B 5,Q?iaqFS`1ʐȃdxUkjş!_6_/iXe+'="qG5c;(& iÒzMM?>-z|ǂ:e\ w!י[|\ bq4dBrs_ qK? njd,㷰~dnlxrHBlUy?y23(l|Y6},Tnt.uZS^<2g\41V\ `*21>~9sce-?-{F+F+ \8^b?N+­{WIs?`5D#mTy2~s@ $$^`[՜ 孾K;~v"}*lgK -V_CJN]~XS u3i_kU3: t~ws؊m[y- zsg>Pw ?a)c3"Brr9`RH#{4~!WijcKF^l))/Ox[&mvӽ%w3O90mlAs}A @ds=R5-qό|~ a! 2sCBMv'Ƹ}EVi7S~~2Mxuu δ:IC7*.tt岭_7koH/Yr~c}#"NG:Ua$qO}SZ0"h4nqg}ؕX(~oMAXm3XqLoxkR|ͯ_dGVQ*/?)#vׁr#t,3+u L g}"f^RfPLf%ޖB./_'u<ӌ655 Ů댚qSg^+t56ƻW % ƍ0+89>)6eU`}a=?hB!xtP389oAM3ɽ;yrWG v%ޖ7aja6(x +4Dvg@NS5Дy8 =wػ= Ĕ0iy1vH'= ʾ]WEH ;y*>¯ Oj6Kcߞ6@/#w-[Jh_bRr#&c2UzCv SDanP2R/!5?q΂–)ݿəf&=!gD'ܳ#qIS &I˩9}s?XWp:+ݝN8\ps?A)TZTMi׉&Z>unRRIW>W`)=}c-7M[:'I[;yw.퀑')=ē!XPD${4S4 |{^|2wY|P")&v sjKjpq)"ۋ\\Æ$dLٟ!Z7!|m`Zċftw࿥"My*l.nTkc1R. ~1EIHnuY8.ݵO jq k x{3s@s/IlT:>*x>7>JD@x0eK ˦jk\OKҡγk)Bcgթ%$/Hz%HL7g6'7jP'r۴Sh ە;qH`&@a5 Im 'J* ݕ˛o#Q!aꇧuii})%)[im$"Լ9)MɛV BrO,psgŖ@JB=v!jh%T6|%tb^O?@yBx;Xf#3F +:4bFFu$4IJt:3SkC.1CY-9Ԏj[T|3CQnG?}z:ל$*6זb:C?7GS7j b_~LcN{\E~ L͎ۗh"4 LN99dU2ڀ?pϞOai6RuM?Xk|n1#Rؐ@,_O;bǃ FG0ZVNj$ PQJFiD*lkY%ek\TvQʹ3f=*#gb?I`[`nՀ@>J[:'lZ|toQ͏oOb ƽ>~U4IJj;<1KD%G7\Fdm&ܹf4'ǘ>xCdxA+;܂X Uɕٔk2{+F52,ivN;P`NAc6`7E0Jlؼ|]5!62ƅ mI]~FZw7{'vIOG{1%Mh9!V<,D'' yfaovFE/Ƶ"3pimCIR0l ね{ %vsZQDt>i6=FL)Ynڕ_9`/4B- [Y< Hc[UF]:>eC L \pW[A[rPKqH17oVIXnuvola/128x128/apps/krita.pngUT ,fA4Qux E{(7%C@}ܩ+qG7}4)H@"l:-*,('q5 CD&scF' c>.b+=x($)<%wijgZx0J.rSpdO`_ h88z(X2Ne1ZVy: 1F L¬7PFk@/]Z}(uj(v KՕ_/r9 S竅Khn hIV#خ&PS8l^1L/f)bfM *qղ`#8[JITYos+v}u )U& 9ɖ6)3uaҡ8`yK ֩{Zy|Fǁ$SWU`׶qU}' 1aȰlZME.#RQlźE#|2)G-3tA+5wL>|/C:{̿d[[Gy.bbqipI}T%.:e83J`$#>"ʦqgЌbw5vkiFvʿJ+5}-MLJJ#a:=5P ұcG1 ӅշZRO~ͷik6*&^$:^dqt To?,VHlɊČ%Xl[5j](c _}aV6a8Zp2ao  )ޮ owdsDt(aeKIO\d菿Rb:9G.U9Dg[PUAqNMFE"Lq?;\eCJfsŮ~"c)GӣH1G$&HMц&=8LRH0^)TzTzr6t۩,B/B .x}q!iԔ1Ϳ@-`CB7jaA`kEN=$Yo>v&_jK]SD<[]>}}|Hw#@Yi%>(ŕHU@Bw›`n"̑Jt.wZOP G,dRpNm:Kd`t$?aBve20+}{chRh&$0S>KnSW~UV7V*DId{ a.=CǴo|| Y뫻3r D_i%=ߟ _N%7Rކ1İd#M7hYg nG]aM)|ڍCZ>!['L5YsXKQ ֤܄R06HHT.*ZՌܱēt-aNlܓ|R(OSV3.t{z?X?c梷}}vjb80O'J`Y_et)H#mժuzt)nI_O?ZL7]:MK \?9˱)uQ$B  E̲_S@U9]x;ZEEoR?\@6#N(%Iؠ]eգw xkN8CvI$bg.~y3hŧkCd"7TG׿l^߻e jED ԡ.u7Cn|]Z*/uaju;Y8g\`F܎݄g;hWwn<`F;1ۜ4SauBp\Y@(dM ;(sa㩕Pځ —GuJC_bMvwr 0G5*l{>[,c6%;3;{j__*\+']Ry s8܊miNcv/Y˼݌V ""hVVؠCjE+F6%%/MO$pSFX DZ8.XZ\)𸩪U1tZSaŜgA3NX^=\/d i"+`myt(|,`k 7!=9*hD45ü{B1xKōPY|eo|u+y}p@Zx(tJSo!v-BW`?܏D)g,.NH+ / ExWn|x!5:@&{<{@vOUcKd@׵E^F–֯eU|fT+ u?YיuA:9HR2̗Ն?ĄGEbb 5%tKqTq;E~$~]e>̯w`Ga%eX,)Y䮫p= 0txbEMO[וuwLXSvK^gAк}$C{ jW0*1NS Mͯui]~ƎwcSp;YI_KN !|#lz "`L";Fٛk\[Ћ|*ZJv䙚(.kVP+X6 ~ VM'~}k \֥xknrQZз FOAZ|](>'*Crɺm\*JF ڼsʪmѻg0*SiVXf^G1A39_[?"|\Wdj}%ܽ´}1'sXC1uY\"W~~GXF%*Z<#*z i; ="ŀonؖ."}NtP>Oe{lPGN=AtZwu/"kr;U{P6;T?YP/p,V| DA1~q^v>o:&B<7G`_\W6Xl,fF|d Ĩ~A>G´Q~nݒs׹u)7g}`cX97z M.gwwsB.Ć#7i?_`}b5*ZgRᅯ}D4?,UlH{\)+|Evk#*'U y5usZ9'\iS%`aS?Ȃ1/50 lvAInf'򛭛vBX]-̇FJꩩ~~W\IgJj/؈;svzwo, p/lfllhqq .ީ@_V{JpuУ.Py,/i ?Y1|&OX% ]N/3訄K|DYp $x){CZMDKm#~y]6ףɒoC4%Eng TQ+ZqW* V 3Hcu$XK\zj?K[*\e+P\nnCԈPϞZ:\y.yij%f:;cMUP\SALrie > 7oJ wF"*uȠd} R,F LNȻ |L3Ln);f|@lִfՌ_mH{8=l%-N*4]>`vZou*l=uR\=XgAy[=Eyћz_UTThG\Y"(E}qwr\>,p&AVDKO7c<I [KmHe@b P8,V } *3[S( 5v"6fN_v>֒b; gfݜ(@`^RW 0V!mUQc_9r'}2l4 |[NZT_[5C$p46G1 ;j^ZHS `A˞(M.ON ? h@L;#{qU&#/3C>4nϦ[}bR W5Q+zE;>T(qL{ O%rWuI^okK' / q.ķ{M䷨/mz-|Rog8q}|ŭ+TA=;h@ ةHzGCl6׼A YNOO ~8ӓEXV->=ý|ʪ&Y_0M,^@ 3sH%\ vn:( }[7? 1Z);hM8pH sb*cmWӺm?S{"ۓv{eaJ*7"I53왎%{6}d8d oSAdHi8čEC3g鑌bp-D4doè*[g5Lw5ȑM<wj #iE4%gM#]uYN'\^d ;׬e'8uDꭸׯtw:m&\3WLU}+c%d(I 7CLۦq>E8yZJݬ^׏| <]ŒM0*::8-WLT2l[yD,LgndEaqiQ́:y?FH)9C?'jN!ǛZg"U^TlP즮cmЮQSSo/.xG(Gp*'o~hW<0T0"{o=Êת74k^%tnTG>fC(U`޺Ph$BMxb+D!ۢ*+p]H[w⥯Zaǘf(r,+ZO]y0SqJ'ԞL>oCGvx1L3ɴ=tz`\8g(H]ߔ)b5P"I|P-k!1R`q NC SUCMRk AF 6OG*9QtX07y0Rُ o.Aj΀Lv? –Yі33rF|.Q?B^U{9V+F5vHᚱh;JK%`ܟ=oE~C_\ԸWDrS+#igKM549#u~MzAԌ_7j8sΪ|Em'{ny|WqN*[ޣn sv[%^¦gYos?|'S_"ʈ^[c;]ijݑqtX/֓+S0 W,}2Vy]iB/E?.X|z{E2GLZM X?еcUrד J_o.>94erRS  NJ͞~yWvZjVG&q*Б:5?Ner΍sLen:1a@\`> ,˲l09B}ҟZCך+&s[4kOgK ͯcw85yd{?Nw}Y ˠk"E^JEYbٳɃqNԮċ4ɨn1y#?r&pvDL*cbx kx> V/EZ9pAc^+C`\/ Brt <}JuӉRiuEǁ3Si~u9jx 'v/ŝ!2AW8 #B85:^Fq-*eI:M9Z*j$jT8K;'T6>!MW\1-v#f874c'RLW"mFς{plNo>wwY^چ*3mb2!> K?~Ku7GIb*'-nwߗ$6B~[osWʰW7^\d^F`?~ \<8)4=ުuU;"_im~6>WەD#G݁mQrTbNȽ#1ϲV:Fj|TQ=>++tgi+蹦IXam>=61Yl$% 1fh|x+8) E_@Am<譴LUl$Ln_$w}aDy]șap5qׁOQkwu2dnrMQ3`~a,̜hQjkBG]*F'߇/SS}U Bo{G7+VP]|2@504Ԯz_9s=Hh[] 5m6mJJxCT.K?ꈹӺs=)gVn\a ӸC/mQM/^"Uz9|?]T@ЖowL~yteK Zݴ!«^z->v [-pX۔'4ܷ}BeRCJw=ʍy }]uPWN8,p 80>G g](3Y5ߓ2:&a)rx#+_ 6nK[9]ƅ;p餜gtd#R5<&_V$r<1IzNI)j5o$})l2q~{l˨Kh &Q۷/Յ=nA,(;2v{'\ E⟆ga~مk-OUG GԀZu?aYK$?W@Ge@劖Ep5Vhx 3ڙCo^-A 9TCM1yz7GrZ:GE,F5p!y`-@m`>HC{opt+Uۺ/y/؜-]qO8z '^_7dS^D6ӦJ/cePI^46xMDh܂p`{ @@䜅S%썅̼fYwG1 _hSQ&ƈkS8BxZiPm8M`si_\m`+Ѵ_!Cϟ,>BBT&zi`X$.6]ΔA- KϱOJUai^} 홠TIwdCCiT-ɕ?ʰgݟw/QKWd^m'_!Ľqfͤ՟V~*"kն6hl4"ZmK[1:^1[MֶO6WӿPxӣ=2ci#&zRܪRL мqTzΓ.LjKr,w2PuO&P֓Œ΄ ʮ鹘E+} L-W`jpoUc>x>CN0lC*l~}t'kYN*rUuXOmیO6Xy5:_;WLgϓU;bgcRSI|:Q;_̻o#:[?,~:G9:=c5F )|N:8}b6c EJ{s@c*Gb߭J鹶wxkSCQ4rt4pTs$}ZVӰ1/HnH_QnǾwVٝ3m>UӾK۴yƘo8_%?ѥJۂ{?^jP:U їMϨ2 Nvc"b* s^٨fǼkLɮ_;Eٞ MIޓ/R=/EWRK_W|8TD6*Äki9+N8gDh|L8س-:sEl[Uf\]Sƹs\{uЂ{Cy|I˧Enȑv,AaL5Np`5뤮ߴPF:=va&hp̾QTiE={slg}>4bp(5[, u7,ծVj֬SLtW^ <1%>eZO-Y)HW.c+ChJ&FڧȽy)EӒ-^ OY? \9i %S䠵_rXc`TlPOu%=VYG$?= SUPNc*+lzvj@ZК[㋻$['$rPi`X^ڊ ~~S/D' rG d Rw&G<8sMF&{ib>ar۴\ZŌڼH\---s(IjT>k$k,q:5c3U6 ?Riz/g xƃnO N[_AAt"93QІ{/Z%`2JɅr4,l|>|̊S×0ZrJ&<1w d)Oɋ0,`6cH `^5[t^{3A=CL3x!3rG{_O< ^k&E' ^ZV+,~6jBn >jf2Q:j4)P!$h3-Ҩjl\E:)k؄()r#{OB-a-';\GrgR!<;w:"^= ֟Keˊ0ַص,s=x-Bo^ZO4sxiԗW(q[<==*M@M wm"Ce0]f{R˴CEy~0n W0NTt!+VDg^= %s 讓Ę98yµQr#q ON=G}&z&vZ1cC }H&)(' k/.7:AiE|1LtSn+F³BjՁg@fئ,j,#yu\\E8|z:ɂ'ClurmEnlo$]**.릝V{y%#[#ɷp~OW;-lՋlNv ܥ>xn%[:HSC[78M"~4n.aH)PVAGp)C&l,:/sz|Z>Ә#ke&#nDyH]<@02l*Sz Q8lpNܝϑ6 8, Ik?tdUpbt@*.$dP$p"\9Ȁl8ԜW.<Δ5H['cϛ^*4^ICb=Gaijxh}| 'MMF|F8!,48\=$hxDpajZ0ɲI+h$α$B?xh5/ʭW䇥y$CޡdRmC+8]ur~հeOfyG8=DMCs݂c#ط`H O !=6xE裎:ZG+Hc=?MD/!X*д]R81U2l=r8BXU>2Oam k'+= ZH,_ Zy{PLSf3.ytļS=)MO,SLҢt;r&UXJv&Kb]UKEʂ<\-7,j!1au<(s|8,sZ"% ӛӴAn1_F-u 5{dԼP}${XwWSЪ%tO 9WZA\ "HozIͭxN%ys U=d<}xhO.EE|*K>1 ؉/>¶|jU?R^q2=`Rh 8=Q#C&zt{ FKkBVCPSmF¦/7 fhēBZ&GFCgQt2 M8''P CJG"Vkް6:JS6*:grםX J_@&^$G9Gh4﮴#ɩn/FTѫ ? /HLC6Ù@&HIt,y;u';\+:3ʂ1>;y#.VȤS0vk ׺ۃk;hmG!Op2#h Sp؞޽c-CHdig9O@Gp)!b}F^vh7>D|B.:ϕVDeU uuݬ48Z!FGG3 p>dr)!^@ ,i.a3TiW~c=bN1Dh*oEDE(i0N >ľDqcB5@.rN :sLEY&(ҶorИ} .Q evQ~1)Lb ]En!;_H 5`?|%سKO n;iJx4ؖ_xVs$"ȟ۵`bh)p6u ϯwL=Ui n}jȐ&{c/QL}Eo9y-{8"2̎o]v2}1R<*C6W9R1$pP˷Ra~)jjewpb`lkm % eQNa,r/P)USNZS&-< ~,Z4196D=>@V-84 H,]"Iopbe&(wϡSIk^&&g`jQz%SȊqqKq*{az73mt퀽Svblׄin kZ oR*H~Lim" }_ y7<]-bCoS ie\s(i ^m 7V{Q#3.PTe*QH7ê3 ͍Kax"abUPa" &'-g?YiҹC4(IaM PeM  Dhu%aÓw?Tc80E8)/j<==#sqay H i0XιWjEaDH]Z v#@05dNm=` m{ZX֧K?+ƞGp |(1s.2gp eRYcЛVuB "+dEC®kG䝼h}KL֪;dx>KZsHø[N, M_j8Gp7 r؄9kE=Gf) mJ` LO$rIbNQ_/@a m Kzbs^d@cSMHAKb(rJTa(6WȽg%]jjc5Ejger/CgN'Z<~?Ԛ^V9"]` {86[,%6Q>>iO ?q,-~ m_`!O+}9\.Ӫ1}|}'.h+ָ8VtRvx$hy [O~$=ڊkRlt$ )#Vd ',ބ\O;h?2,¡e%0ӌ'֟d'?QU.7w#_l<,;V{7VB/7%+5僁σ|\\~(h D7 "W؏U.QztEoWD廧b t } J- {wBuj ,1}p5G{Z3s@pE*P7˨|Tضql6pWڡjWZԠr2wgDبڍ<>,FG< 1P$r{ϑHćB6LE>9K|M'5Vp4ԀZ{Cyidt؂v4JP B&Z:.=C1=x$y;l2*TH$6֙\ҽfn&{Ȉ%WhuFMkiQi%+5*3~g gp4i q6""bDXS s?]'tsՔENg]Z5.64RWglA0.miyߵPR"4 Ԟq筛Ň?iHPStY {KJ;MpAe 8|D,w4I%XSKO`hoheC~wⰚK.uմf G"tr%%]ϕ8(V6`g'۔(g4 Oڒ p}+%h؆{>TsGLFLCf+j3W/|y+VhhɢeCϡ4Y>+FߦȊpC_`󮈍}FRR=ǩҠž.qZa}/2 U͹Kh=h9a] )./bIJ-3r3EeHb8݈5)3~MwV@}ZƂ&vXQXlkBFl(N 3&ǥPb|W1`e({;T%M"tQsC֚`uOO&1T?v)ΗnD=-9o[s^x-o,J j=I Qc2OS J4i$X-m Kݛ*ڟD75SVwcaaf..LcW&MuOt+z3&)ʻ!ykB:"jT`GpgyL.mǓʛ9`S}`C]0,몥R(P` 枃4&5yXiFbn k/WVC<)̳0mqF4xxWJʟjʓ$,!eu<Sn\%'A%a [z84>5eASu-6P?_.qȩҾWطR,VHh+PEBe'G5$:i9A-4d R&L:8=5!2M$s=ٷ F!ꉞKQI :MRYTӤߌ6pH*ټUј.Qe[;EIa4]&dض *!B Dž|l/ɪ<,aK%laZY[#-sHJjdXmPwyCTbygtPKI9*FDMEbSJgGJb`HEa} Q(`z2|&fp,Y*\jL;pwTi_2&//?Et$͕U= {[[OL^u 1o2/L_x{{,_$Z0 +ƛo5qC/ED!'] (V~js"Q>kr[վҡ _bUU]b3.%m)4AS 0#91KU1P~i kJXq ݍ +(ՙx8PE`ƿy!l'0[s;lcSzdj>$/ͣYyA,'֒6D]aL  dG t-~BrSal ̢eS#@<|"Cw(`3ݣSAZ6tW i\$jAk L.iW#,FQ^uKXQINUƏɼbDi6z:IF_(o'VbAC݇V%%̢P lE]ʅ\!%왏uT35{˲h+b$A_Đ']܊*x\/G6r>S[x]лD?vƠI%A_Nex|O]>f+-t@@).)TA7IEiYhq͚`tvDW=fh4(%`db˧VFˆGk_~nV h\WƬܣ>?=:*`V[w{d},b3)P"ۯqqlP& [C[`jW;،*_`Wey?{ T'S(;|u;6eN2i:&5꾮c\(М}6(O/Ӧ /@ SBzloo``ӆwhPK qH1~!`"#nuvola/128x128/apps/kruler.pngUT 2fA4Qux zS.z/J(%#]AD +@@z1FJiJGPDɽ7s7~ʳ3hok*  s {F11gZLI+gPSP0`/3%q뜗gx;/}=cbxkp+@6"F>` K?1*G@ W!@ZBѳf4$8)c1"wOm]Z}rA֊=?[Ń! CG'm>ga5\#\aPZ5y5R}WJw_N9F/_Ċs/F1Id_ő拏}y v_MtdM |VLd!~sM4JsV;YѩH}96]P՟&.l@|}oV+5jȽm\nӯ2F }bov;u}dbL iUsP VOͲ:yGnNy+;=mB:|[بן<|+a6鸣RCu qy4󃐷L\lۻB;'W-r9F>mi QW05f;~h mͱٹY1[uj@ϻ0|fU `9)I$v8Pj)ѐKt^v10e;VۡZ* u#j$jq/ٳ\ ^W!RbHZw#rdtd)J,`:Wo/ p:,#ǭ7g^ntTF 6/>(G9' ;q`;;DKhĚ'JG_~!!,ɻ#ÁmlV`Q(Awnoy"{Zto" _skev,'VY?)ҥkak莬GBr3$Y_j*:UO'ODW~?fH{h*pAyJ#sHʺ'2SG/Omjo>Phcs%ʨ ]bٙ(~x^6û |LcO*q\“.VTv@ [P3t^^1/B1WN'.-8VdwsB3I=w>Sce3c2v^kX#%ILB(&/_>ﶪ[g>2 {*CԲފhxp47ю.Ϧxwv᥺ dƹN:#? EkC8t5@%/4qkUa=zzZO9\GzzRy/4;&Pys SLq0%^ܞWpv73M\C'>t U-L|-Qj'( d`MSƉOJ5iuQ☯1|O!eqsOM:[鉤uO۟0,QwĦdy THmY&ߍ"m;<$|<_2)W{U7zKSbӋ#b}@m-K 5{囼dRx-]BbmD6īB۞\d%Eiǹp0n/Y{Fy&K%r@yQ陖Kš oz| kN Z,J.83AxG#g? w.5ZbEF9+K,'h7[H |M'T9H"n "USl3݇z7QaH,~<~85Lx] ѩqR +cRCJ#_Nٽ?;׊ԇF yyxe0-N`G%Jj^O^('KtvRv.Srz"L5 ƓJk>7,*fz(%Eiqi,B{6,l砾*q.Q:Y_`KU㚗g2.nKHJ߃%_,0 yg`WhEoD\ͱR7[!V%&}q!?YB5c|[3˔y)Uyԙzo!0b:AB_eyXKzh͹& b(6$B;73ArᔵC9%6~ag8V W]x@5SH#qq7Uq8B28r|֣FC9O[[MY_@,#!4E83^c]}ڏIXG, k_Ok5>_i:C_i7#4%K9j NK›E44k7ir Wp-F7Mc\io ah Df=?A'7fyᛞAkx8*ÛO(\/ɳС`0qW`wNEK8.vg̶3pR-+/4Xb p71W/gK\ž'?Mϫ^\ŚUxٯ6,|q`FqDSԌ5MG:\[1n<|)-O8ZC6]d3Qm؅m;\9Uv#)tu Y?3OEV8?{F>2;Q']=:GAO.x_ .>P(PY3,sZ}R0+$=$V--KuJdtnJ,{^ S?_C#`F@6نhfGxTUQ.e—kia$X ?%F]] ʾFz1*(ub7Nj8 DI3^;ch[f{5By[%C>;n sP;eN'Q l ʉ2=ǭ'g n&3('*tQD=.2\$?١~, S:"r-"Esg*5x >6F#,B2>ri@8(!b7 V&w,Ԙ8pC`A3{ p\0'Va/p󢰎HJqDt305"_Y<:k AGeK@I\^ RaRh2[JȳpD\ɥzX{l֝D%BGhpH\!u|CY!^&l%C?,n"l n%@[ch:nM5gVͿ!pL2KŅŦ:~`5~htl&w1D`7 5:hCQhiUL4O'("Dr"}zz ΝiTD$ !tB5;Z\ Z3baV+ 7$ZPS\y[;h?*Nb=+´HU ѷR>^BaΪv Wpl!+NIo,>6j~e,T7h2{VUA⋍`t n龸 1 4hoa*5p?K{4>t[XQfE}Xg҆}QO?q4|=mu5v#-8Xf͟u\{Og5YQd9|~ ۇb`+tuĻ;/@4g&di5ݴz b(R;$tӀ#y< ;ڦj$-HRB4+̤Eoj=˹ '[P>Luk[s_JK[V#ndoլo_b/hTD =%ςesBDڍo`@_iR 4$ p@tX+]!34i.LٷC'Fy[ay1U {ϭ=Ԑ2*| ڹ8NeBn/մw&4!H(L[2Mт9ۮrprxr[nԷsw̏bPꂍy ¾nfrVjURZ,=&'c"EZ,$< cH&.Mnbs3L-:@6~z47gBT;ҙU?V {s@V4c8^;&g=ЙvI:R}dz@(w2S(hG-44״FGr=֏~¤ctۓ'>#^XE]6A2LiATwjnxN͐QMq LN) b /tyiogHxϝVNCI)W] $4&怅lGMoIJ^@JK;GMEM+^,Y_(5uƱ־}ywdd^,ՋC,zP)孒6.x9rkAR}^ eO4:Vc,11Lgh4s'I;Hqȹ"\s:Lwa n/K{iJ,CMK K`A_2R,. Qz:D܏~cnpT U[qַ;͘2Wu"jVL2]gex ; c4Շ(dQ?9h9r LdbNj\q-k^ 7Ff8%]Mț?ab*_K,!M"Ü8I/wςB}73qyj-20QƿL5 5#s? ~e&uXxw&\;_ů^ _xT7e`@ 4ɎbCJ(X/ &G]lװ2[h~IV, <9 )߶r>켻1VǏ΄ӈӚ*ƏO[. a[ԋ%{. 줤wc;?KΟ>ـxY)wkm̑5 Zk{P I>1RYRq$^*L}eb(OE,f3DQ(,CZ31WJ\܋HVeZqS쓕nUz}JWNX Y%y<|oIoI} S]N'`\qzyI6{1R&E~cCF"// E'3-֎vdN >=D煉Saj{IkqO#P?Ў|ˊJNj%(YkE8*% _O132 4n&7$ڔ(~{ UH&ka8<+M $x@Wʦf' RW4w?WS د<)Jۜ}C(0uȉ;ܔ@;fA,%T/hF;\lCXXg's̎#ę㽬^Şƶ/(fLWgn zjh_,t#ZzB)q8#_%Ϧ8\HԄS@c)=sg2 TvO !FZC=!B{2HFAC5M&!Yans6:PE1яkH;]ˢsv͵/8wKs#+gwB{w@T11-h{^d9P}Foy&!@1n86 Us1YP} 7J&'sf:ۿd=D/@!}~ӤFKp4 _SF#jf Eש'9oc@"Mv3S>T5WQzDz*C+|JYNW  cΡgu)څ9kχ{XnM˟.E-rgD}tR0S >XXORҍLy)fm x"g(ZPа mzy Si;=v-fѱK΢;(jY5N KfF׽2P }z|?tS[FPKqH1voZaFGnuvola/128x128/apps/kscd.pngUT BfA4Qux |yTR_evS NPj"@ZYleH6ieB/+K*3+Q1++SQ~u ւGJǧvqL<ͽQ+X)Q;Ѧp+r"KjhmWOt(C8CΤ1 vQpNfԚӪ 0U,*(L؂{^v[E&O~b,Fluo{wDdj;ך@!A# t}P zhoa~?d/> %9b;OzHJE'OY4Ԯkwu~Hg^:j T]0!_Nw+{a!g!l^1{qo6"}Lz _-detdW'jrT {x @^,"hbe]q6< k NDnd2f;DZ'f$a]csIKGYW)t_3B#/="Y~UVM ix~#Z@͏R%::RZ:wYM3Hٞ gRu&0 A3`Xz`xxz<4TWuGUH̄(ڣߞrރ&>E+ⱺO:^AgFs(ƎBv޶+2W\ݪj'4ORZrJcem/tO7Wjd5@ֺcXs"DL3Oaw5~%l ڨ- ުcIyV2b(^aÓFMJ6E .k$F3:uT\isMGk5+,9rC6qRz|8 ODl4X˩qWh1sBl0흘{6sTaJ#Dv4fyx祦 s0^?;(l Q%i_oŨH{2oSR.IZ? ReJS".zdfj: N9OyB&3!4ҬYz!C%QN'd.RtK[:jy7QawWJbASzt$(?fSw6{&h3q )O`E-^tD'?&rV!HU1ۢ9Bn;+?Kkĥ}ѲΆ 羥 N\mċv7[Νdc57,\@E4d&BGv %D̤+OGޯÐs9U#xsnnig/8g׳B?N@?+f+gvةm˫kɂ;HevdýGCr+IJϰR:U`lP MI+o/t>C!3>z.eLtR6`Aµt P n[JHzpo]M~ gD&DG܅}PӜ ȋSnjN<\@s;V7+\7.ܢNe.Q],>K؝%/3R GS2cCjl Sfq:O&*[wERr`.l#6|I~;+<AF8J6tغqΈBH@<$ZU^<&p˪gNNURޛmު]Uyl\@/.A.ׂ;ba2DrHO mRgHliG=| #XL>*YV'y;z+D*wX#1g'6$b_; ^'疐6 $f&)ǀ=Bu%f]SKpL  MA 6%?,5 Uiʧy11)᪚ȲWNA]zwq҇t3}!0^䑡^$G̪x;$%sW i9;{ k5*X]-x{ILr_Gx=O|kK^Y6yu:%P )WRH(dRڐS&]rohu7P_{D^i=F&ķP!,4u t$4kNhZ@[ YuU0 _vO[,nċ[NVIDkH#C*RY1W2VP.@ѸcJ\2(RDOv~8h1+ v,^zG-ۇi- MPD!@2Bp}))؆k`|h h QYYLSO<%3Lŕ~ӕ%8)΀ A2 w?P8ׯ inӉ.Agqp:QYvt<>J ?/~6VK=%r/Q`l<65"J\`P]`LdșŶ(Щ0_< ɠTOB;/iQsPtIk;W9n-) ;E_%u1zV!b\Qya)aS6jeHhM؍w \ Xq$ُQsH(l5ܪ^HJ{PLr%eL >m(n%ehaVjzcqoQ=dżkuxphlνn yT]/ bT`*.žNIzHCQ!%tYzK0sbEgaVֳ~j2%/\6@U݉5wٯtTwgV.gJb]Ɵųt%屑ɉ>Qgr*ϻl':c3^O=>aB]u*\~#d"&P 0׋f7X` SU!̌qSt'VH8v>v_OxۇڻEbg?k ?I^]^rg=M Do+%S $`P?4-I{c.R wUnN؛EЮ]}|thF=9:p> !0Sb@Zԇ)ouǙ&7I}{ 0BiT zc&)nį*Cʧ|ܵ6M27ķbǣ˒K]w8#a|^`"8ڃEm\hYkVlˏo>[`e0[b_x۸VP\CUyU7Sݺ u9Im [halwhIul&8kl))nRu5]*sY w.vD8sؙZ!d~]n< g%9JN6 7d̲?B:y>QX-αȶB@ =>Ouߨz+!raY͑0FLnrhغ 6c&!Vm ^\?/ƅ+^)hX{w|1zfI3kn?NQ3 cÊO߇Gbp:cWӔT3,T`IiRۀ5H+m.-^Ϋr%m>8{Vk~d`51(ĨqW?D|W  Y4n[٩VO|r7x1qvy^ݭTSR #V&HmQEZ(B'Iw;/Eq0& [Y;X IsJEs[[\/8 )>]$ľ%|AM@UHѣį_8r|['}"F 7QCEW:&7ۯ]-"e8/+:|C/Lr}KqSO@^/JĔMKTt=a% BqƓ8z15]E\\WW󞶹zJjﶧ4*Y ۸4G` L^)ڊAԙK6rp*a_2Q22XjWJoYmb_ig< O y5-al ?tdߖ "ޏ/a\HPlQs"{t{oND +M>qmi! @MCz]cBgߛD j ~JCau$- M$<#5J1 u}傡%ﵚI*B8SFL_ﭯ1IK۲xΏ/*$ |TB(# .|C῀,3?c&ڂ9jDSHamGiaPU_A6g`V7KK'n ?'d:PsAJw?.$*~V|{z$'PkSXz'RUM 7-\JLBYtj4Xv͠.qrd׈c/r b&I!eP<U,kMUowRӡNvMQ*_2<_sUDtKccd>MHr~^fKn E嶈G̖"'l>nrQݩsxI$-0ZЇkq躟mY=tP)hUP]TƚWDVЎ>#`(Y: +}$+:e-MY y-25=ٙ92tU؟n H>{*B>vp`##YX%7"cHloR:5.r̳|$RA i=pZ8zP;u0)H'% t&tmk\Z@}8w]2a 0 ,-[iLld„}B<"A[!׮Mbl2Э{Mz G9;IRĈ^bpem^G8Ԉ6s$#M82JcSE?|$ AjCgyj38Cpiyr,/H,7N'Yޔ8ع_:l? k[|g;yVV M|fCX}xxo9 8.]qgYGtݬ"9$0XbV_m5뵉MWlN܄~<٘s況sS',=X\` bkV.)2詡e#EY0xa]1[B &XvMu= 7q0R%BBar>;G=!hΙlu!y }Am~z'pd1 ݝ@Y3,@NiLS>%ŭM+Ir}2v*ۢ_[!0ҁbdZѰޓzrVq# V",O  E f!"%ZqܺE$f + _&7ȉa14HNUIdOF; o/huGw\$Ȉ=LӌgЂ5|8}ﴹV/ ),((LWण,=CaMP2'$ xkyA^;Ojoꛀ?oP#<VBHYydο,͏`GJ2 oC$QݒWTRvԟ;:D;cϨ92A@=%11r7$bUX/6a\]/`( >qilGvNyo mGs`q.cPJo~@p~ѠN?RFQVP:MAоza%OXۥt.TDT&̣׾n'X`y9"Ŕr7F^GIU?3s1jKS[iXT%Bp×nk&ET9j W5\(w zuDxUjtu[w{s~ 8M%oڬ[h4y:q*~:aêTxYb|o,[+zt@qVbAg.[R)s|]+7 1aji*D~NcmZ݉V VbO 6{8RVkR5EʎDO ~Ր+;w=Dھ6aL` }~| Go]ɾ %I=5^@Ks5aŋ:< 3Ξ}r9djUv]N is3=z쇫VitPuTtL|15Wtvn9z6ߓtdˏACl{3ME <މQi~"甗%>̀a v#mc 秋$nW"I@1<'LSH&O~ %U,Gcbg u"b_ %g˜gbN*4 d5aKW`v>wأ`_ւ:<S.1EZn"C[=AfMO^?3آAǕUM)wGt0^|aL {^ f2YRo?4nOGZ\a]ϟCT\[7/$%5CbF2\Sk\2+e7Pg\!!u61KW[a\ȩR3 ?;N^ޤ۰U-FgSTgڲKS.D[ɶ >8ѹ"=ԃz q|5Y37JI˦Q MƘ;S-waYI&Q R!MEa0 vC+)k }q`q -:8<8aЗۓ`5/e]B7s)rh[+.ABcȸP:az~Ȯ/:&V*z:zIB߶,!xn)))bN =>Kkr>LÖ:Zo`$# x؋aVONE luyz.&_hx!,گU^]?G>fNP-#,':h|~iVB].ݳ|CaʊϾU!㞁=v5PGZEmKug<6:qZ+S63B :9r9֏l|=W0pv˂8?CUci  []EznłsAScB#Bo汸Ըu&u}:45jߏ ֖u-jwK5v"ӦS0ME6/Eu`zC'Bܳ]B[Vm oAY-k2S,?y+H+nF}ىŌOIo:I29>ßu:u4u7[ Rc\P@ќ4{cL/JϕALaӃ,:J$>C#Kk,z(Z/_gQ͊cvՀQ{f3Ѷ-:HYN&Bwxb3M\:FA)IM:V/&}/=Vݓb;tO/w&XEoQ+.^Cw1FO\=(90v1:2I] O0Gl6S"& ~}sxj yq%b n-B fv9ɶƖ(:ù*S4y%.ńAW++ÿwANBCǿ(?J'^-/)MJAgHA cMQv(V$|욻la[7A˰f^(<ܩP( 23dt1B|妾96~~ R6 WAh&GL+O q5#h f^iQG  !q|♮^[ߒWok ;z_kҰއ=CVa:STv 7so G8ܱڔ>uJE˗.J;̀^4B)_~\=͆[{Ój`Vhkf_ &h仑4{'D<)hU0=+kpj 1§a&7$_$l)" \lqq9#m|sO֫H%3%X)\7K;9uwV 5eZځ=p6|!ѷ4 RZ tњ!`DVHvLxS$}.ݾo@ʛms:voK>9(Y(V`S% =h,T kOְ^JT7@2qEV]t鹄koKƊ膽>"t 8{1'2\f1!%YMc9"6#q ]Vn$Qsx|g[ 5[D{;ZT:P# م[pc9VKA[AWiS# oO%`v^iv|%W~ TX6$[\ c:ܧoe4 VObz]:z3,h)1_nd֦- e +bf YzdI"7xֈTWL~#Qh[7Dь5#Y=Q w}>g֢ ̀.RNHz oxxyb"_|Io0G{453bþq:?3-'o@د %':o߸f1ƪ5ZT(5"ozL@Uk~B>2z+%D>5~HR)K}j u y!$|Ss#nZ wos闰5@5%*&(ܿFwQ.|n A) ܽ}}ΦIdǨ{C!ă,Qt5|w_37/3KWwa]*Vˀaj9O}=&x7`R ;eLf\:6Te贈ݛ-TbwzG?b 9uz0wzAnY0$[2V>{ùᏅn짭nX~NniEcK|GFj!d*ƿ{(Cf;|:52hȀهw->t3D(Ēv aX>;lq6.s4(%c8ΧrgFt@}_oۖBJRa|cJL|q||& [!J 'B:kJ<\IWJ)g~u&T! W'f2ZۖZM9]^z:?вA-x ƚd궽v=kZxFV"6?RXA뀰 k_- nsg|B~.u---WkVRҔ( (ܧЁuԴ([b$M uGlI܏y7Kws2qY,{ocm6pou(Y_}%`#@¿ iF9dZPn܀x-it-x "}"IhXY/O롥a)~Iω9M q jxvAqbQ]|@Tɬq8Cւ Н+ ws =YUP;B(S2hT j9̖ ֶf"u+^KXǖU{Eo=rWG2|ƧX::x{WeKVǰ"k$`颹)9 {]y-豦  .ocwmXKO2&ll-a3T)s 'J橈y'6䡽n_+=ڱLL~ul):᪤=%$}}JhѦ{: SG_w!؍T-)BO?{nA!xE'Lp5Bsh f|Qmd{Y7#z]sij[ٍU7Z&+'﹊VPz_Ch\LV&=+{qq@N{W@G9LEx?7יis Ksb{T&3zZHqwUܪI&BtfW:mn%mv<?AJn2?cܛJ]V}zL-菿pF}I}f,-rcͦDdS]k (kܘ$_Jv0L~ Ha^" ⍒")wl凌[rj繋-"9[ےlph ʦ-ɲADROL|ծy Z]1gnrP%P_6NSfT*KP&9|QLdtdHVitHLI?'TizrDotRSmw//pRSc0aoS}*9~l~D!Yn +z8s8>^x>m Dą¸!rz,rF˱l0. A\aCO5p>y4^herګB8Znm>Tlyxv9{kxlSA ezU'{+<kFҜbz ntd69\6SjRld] HR?Xp5NSJ0[J)S'%̈́ݡ " z˒ي0٢}( : @[-ۈݕ.n`Ξ搾xwsSccc$+^ wOҫ?ɾRǧ⬶l!|ߐ´Œ`|o 3 co;͢qډA9i^Ae1ڣǟ{/:?qR2х#β]΢gD>>6zx]#oWo$ǸGXq0ǴDKi":]u rCTyL%$@a ?[>͈JNyN]EIq#h^T]tnuH _ Jbݖ,KG/;ۧD”y3C*qTDMya[TbC>C/y(|fv3@h;̆/Ok)%mB _P}{1gRoMw.=D)>@ HU&P!g\#HI/Yxh30c8l{5bA"}~>_h_]DCpr^hAF"Dϫl _.E.ovԋx9' >yQ2KYwׯ1N:@pNˆ~miat#6t|)aT8]$iZ==rҷ=f $.ox|U= [dJQ ׭5bui%e)#GO[QmJ9æV`̉&*ěOOVz-h3T,@uVM=B7{Yֲϟ|{1s|̓VZq5.cWv;<=) B]qB בuJ=dL_`Q#~(kw 5"_`k]gbE^zj,3ĒpdXcNwaXd )0J|TAx_-0/uH7]Sı_<:Ex-kO÷#6} w^A-ҵ}|E7TWgbo>/72T9mWcJw' 9ScKPkPR+_&'¼plwݚnU!5~< {ݻZ|{ ԁ@Dj$<Mkdt|zM|KPQ'u<:Ȋj]xi`n0 #=rѸEȾ=V3Wad a͢G:g|HV[rArSXfΠ93 BA \3`yhx~Uwmr> v7?|S12ٟȈǤ>,C <-u9FJ^*3UlY2$[H$iLdmڄE"QV*D(&T*BR;\̹fyyg3'j+ >H~gEP/|@QRn!&3]2'~AqJd蠰:} Tm(mmYvK4dpk@vF|Յ{1zzv+n%<7L-H?7K>BYUߵT_#w }}}z@`nϟ/w8gs4( :/5:2gjn.,66d;l$2Kzs/7##cz~`jmdu~D 5ľKIl]= M;pi 6%FZR+hOn1H?olx,xk×AAATwŕpѮۈID-Iс඲ŔK[L!T\G#-g :L`0XjRMK?}3qONg.C2u&Gj}A{V/9fJEY|}ò'%k@iCAlYbvuEte$S\h_AS&pI \@>=z<.j!Jpa" WmnHa$.&&&*AKr 0t@Z&){YQ?uxq)iDIIGU  Q('@͵6Z&Q\\XcjM^vSB<Nvjo>'̺$%}mptдL(+ł@`PE"t+RUu \x%>pNBb _ 7obo!vG;)%Jeg0*MQzM֟ {<SRI_g{2wXt {-i?5]<67ơ=]rQF=3h*,ڗt k|ԆlG p*Ogw)|M4&L]}ẙdB^,Z-Ta! ~ܑtV[tk'Z_%aӛ"7ofY W;jCOD;mfA#hF¾QWiblDVH;},APNbTw)t,Q]"ƕxj.\E)Bb1obɭJO]GL teDW(baF\Q,`'3!!Rm?7:Wxqqf3:;%$%Oj300  6J\$)S3/1؎BFW4^ILlQFC96eԂW;)ypg$[MюR*rNDn:N7t|5JII)v@B=Q tmgJtSp9$0K2u+\a.&Ku>N$$$`(* Pٽ{wlqrDřhF2dj4`e|JU,AЧ}혴G'u[Hy1khhNZ\\AOn%f rR:b;dܢ 5_8;:+m[_^L}FE_Ò-d9TVq76J!bUXጦD4?_ւK};Bm~݋kCEQnMBbU=/C9!5|8?Vf`/1K:r,$<ta?C?JԶ677}ѶS;|)0 |9n OYҲh55č?vOVyĢ <44 QșGϒ JK{x ƋmzgH\'9Be=NMI<ܣ"VǴU,JloSxyVx3}1w~jzq+;7g(N׭[dT"Ϲ< E#wND! i~V%8Z V(X׫< UoGi'21=5ll֓^g^`462ښͿ<}vAAoߺnm`r@M,J4Z.J0ۮL|y) t1JE $XSx1D8].+er>b3~m}E|KHqt=N,ND3u-U*|!J GLա8]N%)ؒ1OZ L^u/"}] pSDFnt֓@@1YJ2Rc0"UiUUcN3 ۳N[cI-mFl)gҥPuW[Й<.;xjĆ-gJy2fG`9Aӥ>wr`.j:x ߔ &v|U=9Vnc~”Rp}7Lϵ?`S?HN2)>`0vƹ^_ gQƤܻim#;ixl@hE]\{]bEջ.+R@1] ʏ%?Xb~@3]>Ħ{ op뗡 Hb[LJU!{ ).v >J"9k9mmPd D͍|s3فsĻfWܣ;:ݎgp:l(In:= %k㯯-w)O!<=S3P}OL^`tE_D^zyZ;]|N_[] TeëVפL~{<5_sMBnr4~bcUaNMa39Db#Sej+#ℇ^,ʏΣ!M~d%hڗ岜;}UbAJPN4vNK lǿPa EtUN

    v}#7J!DdOwRV#VI 7p`*ɟ_7h'Avxwx;Kn\'5e5OV> sJ!JoIHJ0'1ז#ǑO2XP:IR Pl煓ؚu%޼︻: T b;y@oa|kD2A3C}[3Sߒ"Kdy>zD甕\&G9kO톴h "\AM :J $ /74:31O j*>>A mpItp 1Er!DF5t*i a~jD[b۲֎tSKjS4V X@5t*A8g:QWi-B~V|1Fbw; g ;}M'yf'FIVcxRrhpy4nZ]ńg0TjΠ!a{aSΡ~*W:$@ AaՅMyL,<|pC\`;>gNw7$[A?M]iJf>CW*߮'sjotI)p߫w V{"1 C C^'o `TR e۫.s ޥA`w"JE}w1`"Bޢa[ 6G62ǞS41J[v͵$qYpG" ӻ&Łr4dtI`0Pe$'z px#ȳZ/\$P Uq}je|"&vp /t|Lw" 3 a^βq;0܎2JTI'<$L630HȻIVX+n\{~S"EvB9`_>dd}}&zGs}~0G4ƹ з 6,5w׵xG]IsT#BV+KFujh _oUQVx1ǧ#7Z GO'5 f)/7҂+~=Q@78n|x]GB=<"DzY۠o禇@7&{^(qYvIUF[Pp:#W)U(:)(DŽQqXRGḋ'ZYdSv9!ݞA}ˊ|&!H|/c3 xbn7w)9~!~_ AD3ElR,sRVuYVe5Yo9с`^'6I0Pf1p\j?gmlrAI?8V?_cu}1\yQjs>+eYjT&S"bZ[DK2V8e^A޷ R@ Kdxj͖35{u#5ݻymIo fw; ' ?[yА|"yȆő{d;OYr#25w/ew&}*+ȗLzbт+!_·CBfnXlJ r+#L|+(k,RP1' >v28wrH1.YpnyDNx0^ŭϕHjea;nmIԷD蘝sHc%s:>})u< TN"N^=H;<5E׸3VGxbWWD:GȲ^78< v' )ySb,23_lw4X2E^z ΉSSkdNc'aI_Th/̽ɚ^ЪvW }SDuB7(Yg˘.?OhoSF䵰z5l9*9$*Ae#x"+߲'W%\X3tN-blC q!հm[+Q&TkgAG(!CnZͭWnMP1vsvL9"_yIJ$XU77R9Qϡ@|k 4HdYA# oeӲTg%j>^)`s}Ʃ}ou?, ǽSc5bP}FpDR:*g(ymGL&Dx{EĦ 9!q(z <ܵD3t%5Hիj'V)͕ .䷂foRq_Po/!oF*َQ1(=T#u4 HSG=gsEa%T/L *e0qxrT 5MƊ@MII +_Hͷt%39ɀ) {gx:qbYZYʔvґ;>׫}h/8l0!dBWkNg\yֻqOΨd3LV9at^|k[P<澡6wλ@ AA5ECG[J: @(,:Qf&OEQld5ea,$DpjYǣM5)K_(BFR? t~/ڭվF(m++ڪ r 2fYi<~t ??#:&9B79LɊIc[H굣] 7V^;h|GV2W6WW07:ٻeG|hլ!=Nyi\i-3=$⟚6ca*X ¼KP>AEbE럴4mK/4y?JTt3uēeC}S zNdJpU,zf7 Rѣw&UF1>SS<:!#AЋ_DԎs,>+J _*la. zhZdR).Yf BL%Jpf1H||I.hAiuI' .WM2[^ig9A dnˊVp DG'ҖhNbrȁt7-XܽkiP6&~د}6!b.oG}6XSL :LZ]d'p:f -?`l)Ɔ`3w5%,3HZWKCtWJI0p^{+e!?KOڑh|`0R+yiT-73NAE > DŠ I5'<5ӟ'[,\PD_)6yZr|@j9G35@.A li@\[Z!Dx!(IW{ff&Kn@"! u!}z.[U|AgGAMX}J%|ҿ9>3/ICn'|c6.<ДvP5T!^':ȍBV!:r-/ש?^dSAwt|_H~me Z2;,x %s% 3_EnCY@em7*yߪtB9S5Geeťf~ 5w `iCY07bNWs0?n|$gY:%>=NWW ƴ9BNmE35򳲰E-7_K{R-s>l%h u~5=6(1W:v@Ջ\[rezFZag\\4 [w [ aaEB-7J X,sލ̴ِ0<6#KIP5a CQccn|-^~FOgF\~f:1j*K7=JByU'àؕyӗK.)l*(i2Hd`f?_ Wqy'Dנgȳ|#zH]|`XС⦎m,_r0+FV>.+o]#Ha a}ԪE{,V?(ow7lJ])Y zWfSehn b$mm.GzlEӒ 7Jf \b>Oc610k%Pm)$jC D]jny2Ͻ?nhhO}|^nk<ۨVZ@'xҕڠy+`(FY܅YwTk#^s_AS\{NAQ#E|8l6JVV-_zELL H?an~RMhz8,&S##J))kG%$THpI_`IH1^l1GEqi//="HXxMAkA,--`;u&& yC _8޺DE*\_[6 KWmHflYC ]ifmZNIKZg7ՁÁMT=a6'Rڞ&Zn0YD_;fu{%.r[_M︯oXy {NV!@IULֻ/ؑQAtu޾}"L6w۴*pk+ ^XT;3z̗`VXQj함9U6WvphƲcqqg“p t:O> ~6N宇@ N4g`*D η=%'..] 4?2֛_!}L7nۦMg&Z_5=԰Ѧ5vFOZ!Gڷ6%Kgc|i&wZBV? { hQbcjkYD!F%e(3Iϖ- ֆ]sL)i`0 Z˿-k.ud"V^v mp-~ݴ+eV6$iee&?eNRX( s/E6jk~ZX[qS .ԾЂQDkjVu9X}@Ƃ(@aVɖdy&'.gk3beJɹ=gn5U]\J%q.{"rg*CQ $vnA9)'o, )S#oI23jԑFerHxꎴ0 =z;)Ҟ ͼ@WLaF:€~ +m Q9.}K9^,q(Y!ªe;l,nBP]gu#uuCd4][,Oto>1*%txznkg(öDQic<#z* }x׿ϬF=!J9=5f_ f6p{KOP-|f:$8G4S +qȒbz{ytɑ]GI7$c=1ܽ<řGpDgCB`_dBgg4q \ZJv^2X{q.6[52bjSeV[FH'Z%,Ibdl߮=Wݞn]rlRڔTZ'vm9!́&N7?mŸRUMatP!>7gJUҊ"6R<C.47J}x.(@glcڪ1D//wrԴjeXj0lSY bڱ˳Qk/Q<=8+P( ȸ嚖k"5ysh[҉!A i&b4ừЊ[ҲfMoVuGoܸ/\< qS0-NcF>bܤHS3QB#&Tq"C1dϬoωMkzs߈%T@bwe2{Mg;YExぅ 0NkCvV5fL.LKd<=\~<#p9Q؆&C!y_D/d[ /^ ;:*_a~a CE1h^~w`4޹0/'JR7Jbž~7֌,l(VZ+ 7?\ƽ&-e^?zcRk9-xԿ'Zv}L&Ê I7ilеs-vOtG3SI=#G a,Er!ib'eאߒ#Jr;9$ \JImGY7Кw 484ŅpcO..av_GZB;iHRU,bN#機*^~pȄI2!ՂO]S󞝆(k9zNKŇuwvfǟSD{YR0MWeo*|? nG;7lF'Pp-$Th+}@q>!ggMZ_1vm,߯(7V i]QiH. ":MSo\ʚ7Os7ζ4ފt)Vۍuڛ,0Umuu㶧 YE PR:#Hwa q6qċDl5ɵO^R.,F4rh=REZU] ͜mHyq\{l|T›mNۑ7/m҆Q=֐aaF)"?!qD$L_s^(sF<_ڼI|>1qQVyV[4rFՏ@_Ts?:_F,ŨgR>QBOj=^˚׫މE7mW^&m~9m4|br !BRAiv泸*/@ [UU78A𲐋_kZun;oz8"PV閎f59px*f;9;y(:!X%oiqT02ȤϪa+̠ᆸ9#g^;acgaދNML5Ơ! FpSa%7'[i86-C*O6%7 _4dC;ՁGd $"ؑw[G*T35I+F߆uj+v]!7ۀؙA#K)^>rjsG]鶚0ܴ&!3{7e2:RL&6 ~ [ģ-!N ?HX:I8Z2ui1t>$k0NgOiH^R`DJ*SMr"ȂoJX 88h"I&ϓwÐ{ڄs67aXߍuzs3wxk4l9]f"`xR߾h:4Lw$ЮJ ؒF gʗڋGMizQىyLVXv"% g>āW3~Өn8δR̿WAaHB}z 2͗\ʏZX@?#Mɭr?x%I0 jٌ!^/~ZӫI>*qvV[$q1M1PZ+)z◠a0혦*w 6W{TړWmy]ktgW4*gKpNzi_75= Di5\ }~wq|[c34a{kKI.cbsu3m%tMİp[5%'F X̭P-K;Nӄ_Bn2e& za2釭6%)>%^g]զ\o~lffOU-a;$wo7ӑe?s?\v?Ra`'cHLcQR▮@eǿwT,o+OFt߹GMJa~`ċRSjwCCZ?GKR[ ;>W/@$XbpT^=D࿖6HTUJ; ]H@m&l TɈX)(w_7Ic>͍O' kq>(-ʂykC{eliln8\A NǺM]G[}E(7)GSwOD}7mؓ3xzmxx9s.HMsՌVſōEi.өC옦ZrwĈv:']~A+pFx|(%qsѭgҗ/Ŀk'ļ?'c(I0\yƍB`@̔<-'n[b\=~^U*~KDq'cŵc=GOvpp[vjW<@j;cG_ F^{)>A,QOGC8ȝ}!_p'Cpg e1ps >d߲k|p`뛃{{η!#O"\oqۓ ѮD C7?mW->Hz"0xJ1fCOsbdphHrvYgW y+}qb"s9KrpeOp/Fd{Q{4}m`_k_zdqf-OIyc52 Oy,7h^bW0wI]+ M?U`F̩ol唑O?F>E6&=krAsl抅}dBP QkV~'XʧggfcJGЇȓ4Xv$,Ȁ^ۇx:Vvbkwl2kcҪאƝ B%x/@lnyApD];0?S^ AlX}8{mj5|NGM8ꉙݏmʼnW3;1/I8'GП~(aݍNN;/l #l]gV{K]|5j߾g~=i;]&Hֳ]wc5}hs N\Q9t]6yNJ;vQJUUkPݱ71[Fz C[]v* vwhM¢v ʫwm`%PnX Fo?Q^5$*eֶvZe5THHvHNaJnud5*2?T}=~MJkDyx@KB|s?n?Y= crSr A1z (~xKX# 3t|`V̾%_kߟwJAp>¹ѷئ]KMXEEV6;EK`!TƠB i߹7qY\|_0DQE2W`Rrm 3@g)8 bT4-eRv茦1A|SnjQ{:]1I\\3֙6,eᏕHe,HDۭ^Gc$&<xΨ/8h6Q匚4A쐥@:3)1+*p5gյ`U=q 䫛/;b"NiK0)ez`Vqb"IV G KwR_M0wNeiw^R˺5Qy&ߔK*H}gHvM;m\PWg^Vĝ?_5rb@еkT*-#Tb8EDjC_\ǟ2d).*JHMWmmfb[b!T>Ժ/ehB1пJH&?N;ˎD`vQc"N4/vό}ʷ\:꿏`\K_XO{q;S5FU/_ZB o# ќ^ QPp$.+K8g2MJ SVPXQ0OY2}bA$H**q䷥!-B6.혋 ;]x/v/)*h6٤-o0VZId,Q'ج`Z{Fk\% il?alfrä^~gOف ֫hі.'57@؆S]mFfS!;qdmf0C-$49} 2@ JESAIT.9r|QHv!];:e]\Iԕhda9KԱ!h9esћvV-׮V(2QiAX8|]WM^w =3>eF*vC?_O_ea1eps蔦Q i/AR/{0>Ԧۆҷkw"cԙ@,7yI$G҅ǐ\y.Fy{RסfB]rCߗ݌q6xӉZ< zp~gC/K}[Ȗ{zW{kzF/ʖNjd0pG3)(KldSX:3-o&z*FuuF;k(2pZIX౾pk*Eֿ_v"g8nX΀fb=ZWFf!k īg:iL7W J.ƎCp 8PKr 9 elr{)xQ0L>VhOhX)4UlqkY{e*BScTޫFD#6 ZB,i~7viZ?x>Q\R~Ǘ/gw9We)͉o. jF: M_'<=gf^`PA 1yûx  >UV>aKA;#"}@wU!wT2#UtSc Uwj~X\b|`]t@|EmSarhț߾#O5.wG~@6#ݏedyFE&>M+ٗ#F) ^-, c\/ ~^'0VmLaݯq1 "7t`{;n;1$NJmYtL9y2RۻPo\b2vf2?s<] GJR!9*5)rlFcH0@Ź>ՑS"j¢f*+*8=ebWC՘1fS5koфNR#a<#/27\E7\]~>]oQ2wCLaZo |y:n6,K9!&:O=(PV_̏KRhao8Ac}[dK\`*JSl+/цB~) luEoN3b>ʈ'U<j:,$|k.*CL22b 9cD֔m.7| ܦ=/G@1X%V uxؐ7c<D;4Hن-a-?Z*(Rݮ)i 8 ,_f:Xnչ)2_)ouc5 4[E&PX<R1C Tފi¼Th_lr eS E> Bn2 s؜Hv^ tQeXwV_x?&^G:w',OoգՂ oKಫt_ d8~i!$Dyo\Cщ1`'i^ e'u| xA1іNV@_Ko(O+.(:\/}BY=pV!'/o:w"ExPS'_ó(oXcƊA0oٹOX3|}R?7VxtќoA?_;&adQPRBqbN@dhC pE⾍0{l~OÜt^ݿOSӊl6qS'trvl3Զ/$! ~T$w377Phe 8W1$j)‰ޅ|rS',f"[ˢJ[ҡZ2w XNuY&Ꜵzl*Qd-ѣ`qElv1^[PWha8痻T!j+2/P{oK`>-*{;4"~l!Dݒ]⮟uΌGu YI>9bso`Sioh/V7=kHK^b0fIx@ TnP,YaGm-5 ?J0!'*4 PpKFn= =:kӕYZ6gR׻tթ,aTp}@.:I>S&"2F@S'JsKPƧW)~q.j}d?jei /MXC*Sؽ 2H5wSOHfZZ!.w(|=h߁Bɜ i#/V23&fR7X~* O*-l?$Kblw[t`<`I,NJ7H\y'KK׳2*NH>抸栀˕|$4kn$8wuG1NCqL?N '^>VW} `u.1x<,Un礱E+} IOR& l X0Bp̩>qdKƗ!r}vݔ'4bQ96KK3*qۊ,cCL xjc ٞ~I܏A()/%. t wR?s>>?<Ձʳ}qsc* h-jR,=NUtؿE2o$@@3\bR%=P([T8P oQFl MZIU̕aI=]*HjXc՟|`NvRqTBt`';WyB}tl/K6-K^ F>J88v~b)AM hdhoޓQtuv- eo"KtuͼY5֠ V4- \8{W.'(C=S޸p"φޏC{vCᨧr$--%X뭣rn YN-o' lotQ>>x̻M=?1B`k4Hm0*bx$3_:o}ӎi.rtaN4~ZV|Icrti@!dq&!-w=q]pUԌ]Im311zHC5(c`/avqRJFV4MZ1ѮxLU!Ө /2mG??|7VvlHd>I/Xej4(+c&hI9cK1E>]/ I}_D)\!?@R$ί] TaGz~r*G*W]P!~ʸ5(!|usrmԪ75¸ȹ؛X' bɞ(")-zxwƻhXCCjW"ְ)B9,mZҾLD iG=\[S:j-^6$6#$dpOIg%Vj+AJbg_\Ay tQs4߾FGA GMK 4_ybU̝ܿXIIg[n^7{XU{DD&z+oNeW8>՚N32ӗ oQȀtͨ=˱6lڼ_ܘҸƑyFbE=ebdlUh2P.bW5B7+T}v"su|䏶]HBA&d-]Uܗ/fD*  7bo$CzA[ zwn@gXܰL@˪Ĥ:&Sl g'5:#(XV+ YcA9Gy+{EX"A}E9A^ţEgg`~P-fInMd4ރ k32F-ϫg_h=W0`UմTͦ-yP˗O vj]_^д_e# 7J GOfvUOft!TC>(iq^UQ$O;*Z"z//o_ۃzTA¡JSsO 3VYc1 oT5ցhzrR +N¶ ['ݯ1 9|01P# i3$1Gf?jAo[!/%)SL9cZ+2˻ D*7jֹg?z4Qa9SU ȅH^FjiEq҄Wј9vj ޲SEvsZh=_6Ŗ?=ֲZePv~"!q̭/~Nu} SST͟>|j8XEPNsH4ͯ*gUҐoÃ~\ky\ &+!kU/EͪNTqL>²Gsg@ qzQuCΖ7h{eJڷb{wCV>`tˏqDž徔BY2LxA_E,[,=!gCЮs4IR;4jIvafٴ7->`cvPg_y%?ζA?.V(,@2{ց﷗9/'%X)HA~_[Dok0LI@?>RbD̯Sa?} ge 7lNQwlKLß[BM>[*C.*~yЩ1À\ +g5^En6BK m-TM /ǶD@EX֪9'b>F,r:]Q:9ʨ[i,o@+s[ l& paf!7y=ޑm2Zs77X1XMQSS)c!R8iCvg=7lx[R 9@7%QӔm] n5ɣŻT?er IgFPUrE!i6i+ثI}clt!maͥ7yq*kD#j&z%ğbOF^d?(mIAAʓGHAGt]7Os:D"` e9OhbZ&_b[w&emm:nbͯ/WV\^YP:߿dso?q6JTS+ ;5+OأO߽sGJeK JL|nn|_gm-')-xŹ:YtW'O_@_ 6>wc%@?mzSϔ\qo1xx]IJ8Qa"B?aS#|+_ĉ-ՙ.4[_MbV{h{>MMsRTMif܀_Ld"cZH^p?2Em7n!LG(2Pg)IOM59M֡2?_w]}3ѯZY"8My ehBYltY];gA<})'~Mt0w!L2V0;Y1> _jvhmT#;"ñ%|D9"JytC "kbW }&bndb>ЏF89,1Aݕ*!T"8L=5tU'(*X ŔĘPYҿɽNS6ݰfo¿os=:b"?pB/(gUjB#1􂪪}2Jy ;3}h7=+0SY_=^ڎUR[/o3vss@VTG ڧ } ^ >^۔/9ܩ-硵LFؽ@=*&ބ13OCb]j/R1a4i,5N\vQVM2*47ы=!o jZ`y',Pc|,f`ije{P3o?EO*-޼}m٩"?Ң#H[Ih Bb ,*|QCk%snK쎺Ϝ.̻u6IOxw,~OM/ egM8ӧї S5xwwE>rE.J=ې$-Ay 7Sm# JDzBg{ -YM9OkG3$| NGZʭkھM$u֜I3+ )Rbuٷ\ѣ\tԯe[n譭K"H!A)?O_&g{~cʟX E8ι2;2O}XE#EKwa*憱!asE19ߵh/{wPyZ~g `{/+(( | e:xQ=!IT%U/XC3YPv(bzA3pGRi&Nڦг2~k]ѹ|B5{zb,ᐕ|sNR+6 ss)^U{\v[-}fcy4LoFXCP$õL .C]bZl _LPDtF[+-m諎VgQo[?_f@aif_G} 9V9[x@%71S@A嘁# 2 qe͝ıyK Wt7Vs)S^boW,^T>f4XgY%-U%4l YScC4m^AgC:Z :9͔7k̝>Eea/qf;@ĝuD[Jkݐ-B٩hb=$Z%< 5_R3fIȾx{Jo0%dIüՙzjC3f' Ah=WT,Fti(=0O5>{0wwm:jo 7y@~9ðU27h>-66Hav8"mTMum rmMH~42t:^'Ƈhi3|ש;wKH {噍=#- IղL+֠ jWd8O8 39e]dz0 fDP= i$&8Kp>^|MA~8X'~>Lcq8ɓp7ཆZ:MqT;8[fD7f1rf=jK\ǖ{,e7曠!=M{F]\z:w˺hXE*۸}vQh]x< Pspx%񺷈$39^~nx"`>xSؙE4 _u%Y+ Y qT{fSayGTY=CEN\6xWOL;˺6i'6:Ӹ5wP=MJ_QIR,Ed6Xȳ$]9\M?1nM"Oh\=S/IܞJ2yy?Gv?/)\Ӊ .LB5+ň$ǧ ,L++*aʀn9(8}ӽrbk9V“W{[N^O'F`_b~_tփn_ [A'9jM|m;(G^q_+xq ɢ'4r7nrӲlbXX(fi!K~ [T<$ި0Yæa<#/NV;;ͿirwI {VS41(lx]</Yx@|3D[v :ցfO#\۪ZBrܒr](fS&J==jKK\;dG?l û`^KͼT=.XYMU-ΟGOC? 8qٶ3^ӌ;S/lԾn{[OᳶoF ?6ζm往ہ#㾠ĕ}j rX{?q5G <c@c"uV-G_}]]kŦHrWjqe$~߅,9xt$9l^GRnf脋?{}L~͍=B{E޶w\]uwIkBܐOQvAh[Kc\'(d N^93!AUr&y{;)6^M, $x0&ZKOCBM@߻$X4䚢2mQ2WGj]b>Iud2S!+lwlHſ1Xzf4іh,-<*bG6/:I]|ᣞ8a{C3`U gٚQ=N+G}RI|":> -f=1ecz)DكwJ]*an"^ZOLO_PM%`BE+/0Pm~ X .BE М,^Nw7d 8W^ѕ8|̫gˣ.]rӭFΕ9z[ 7ТBmEzclbKsa(bG`_4aI[f4:\ gap8*)83v@Cӧsh(<Q?ۘ.`X܅_Ux5JNrv"om]nlR Mm|[;'wLLR(Ǧ}*1ixqϟp#sNGZ 1sm)HGQhz}oiE1vV񵢙x 1v!JB9Z>1ap-CKpmX>>6.ޜcxԫbVDMEmbm8;^ZCWt> _ )gDId !u EzMES]zz2G8l!, ʼ Px}I9\ۨ2E͂Z/Ep$iQWo[kϝ;9\P;k':Rr R]&8|^KH\RO T*ެbYҐvu 8X[:tՉ^S?E8ɸG;ȼN&|hsw1>.+#';)#2Wavt^J-l&&DCSKBT[ŀ3sJSoGn:ɇDCcbTCktMd+TkVa8:ZVKMeiR{3Gnf )cyAQgN7*H@8՟ 5 %"bq"{$%GOHv3diCsLsgu"'~ƖA:2; q\fԫa1mzIԔGny0'EpZЃ oJz>a|IY{8tޟ!֪K/g#=hA\Z"sˇ)qsr\4d6SZl\h+IY ~ wDGA+_m9<oSάuRvBiz\2?6O)ń|<#zϗh[0xff:ǨD݌DžUp]mFHWI_ #cN'FWM 2JwRG:'S~PQ#݄u8mnӢA6?r3Q.r"[ٟ6bX$ϧ^TYv*?.,v YXpOڝ2WyH|:w\f-5L?Wzͽׁx[ԟRRC.@#Mca6܋-#Pˑ9+k,_wD1\>U ; r겿NzeK͸mf-YMIGsؕ70]J .Tݜ0aMAyLC@; >@=l6[a1yeM8W14o Ak+hu]_{I,uu=]ң؎Mn*f{|| k 3H ^ZBQJw$umDm MFHLM3F⋋%G$>}Z 3U[ ]|g2n*{SOO/H+쟘_V²d; f?,AYNp1Vz/Zߌ'j+|? 2* i6<'n~:Ꞡn;81 }?0L_ֵdߏ]4qu:r)'<(z9K7]k:wU1d&]G3\>[i7ldSV:Aa _p@/Ь֎H8\}5*~!1р7ݔFY__&ϰxgr &b ۳Aw=f '~Ns3>SiS}8~#sᎨSK4% & #5څo$yxU:; )ElԎ nɭHֿ.ZǺF|WP7aG9rgQk}"-yv߅ڠeyƒǧENftdo$K:B8ͺ9+z8>΁meO]' _}yqԲ\=ݎxrBF}K ȸ%PHN1&ݑO֔[gk8oD&m.uk!:la/n6ɬ #HIAZUx90٣:%u tոk~pg\.2P ? &:5Myd@ @TlF2y2p"y-mß߳`GͺW.Mu~Xj`qy*C}ggsBB'ZZtGy&՟xgiޤ-QI"? m<}AoܑN jB~&fKtsryS߹zT1K%#oi\5*L^O42wəS 7>G>0Y6!o;*h}]tUQGYvht;;u7$HvV)ĉqtd7ʨՄKZokЁpdCR~]4Fnø߱:2#%ԎMu $i\?JK?Y js r4O"fw֛Ebނ I\vJ=Jz)+EcxQY᪀)%څr e o7dshA$ELNuq`>CiFqy$z||FFHYp#.}R3-mvu"a(^,;\C\A¯7'4xm]Vv ]up C?eipj!48I4H l[嗤 jOl$7] n86!θ)p18kli%NtuTlc!9.]U;C;W:L%} b6lyk/( A?}??j"JAUMo1Sq61NsSsN'n tdFzK(o?+#k.oXOK췸bNpMB(\SP0w8 Ɂ[S|;:G(wG1 oC\RTS4.v2Qy 2s@K3~Qr?_UIxǪh jLm%jssDXAjg WH"\Jx0қo; IP0#+ F}[XWgE@_^6GjݚgH>Ψ)}ʥZa ibf|ňuQv(KO0W=;/Y'Tɲf;͎σ#C}ܯ7Kٞ p&8dtØcnB)ϝIlO # X:' K`¢_#7^K9~p} ڃ̷(>}&vf>: Y/ \uRWX и{gro"Dž֡%:Z]XJA}c=̫ˌV 4oz$?B :o8iR/uBwl(:ŽEVWofQSiǮL?57Q״AAﳿh֯Ô5ĭT}&P~aD!n-dǼI\ ڞ7%8i=o0h<5:1h@ԅ&ʃ#[&3:2M遶*|H u; kW{2U};k:5cvKcEsز`aģ8G̃?s/%qNq:ka@^& 7e^a?XaIloX) dwknh݉D5#ii%#ƀ26ŮsGryL=e5n><#'GW6s٩#"+4N ^2ΞN^QV܄e|[~^ 6x }R9YxT }w=k>m` Q8|t^gSP3e{$؈4H'^L[}Wf^U"B+{ӒZl9BP'd]lF~WR<Ԃ!]tr@iL^Ԁsy<*le"8qsslŜ3U6cxU+ȟ~?ʰkA҉vT7"o65yX0M6so'Fw CWeV7螐JQ8`5-{;%(0WR %ك~?\8Hi^?}`*]"4𮜹Y<n\ qoցVz1O?.qNn)q"PN˦GĽoZr1.,Bn399k"fS(CL#.O56Ogn4j/}o࠱s4ByaOe{K%6,ϘleG4}cU;N}9cqc  v(Hwռ1l[I-%z o* #1u7\/#۽$vG 7?gv= Xw>N`Mg6KWpgP+3qĉ"$ ~KHrD+AΧsfJ D/BaIL? 0B@sLeTܵl7"6ζϭ6A~:{,l1}+0@%}d-h[[^6x y@q*2K??N7%XxbENoj JuФdԿj{\>k1[y9!Z1LMڷZ5DaKkw1n\ u[tPx x:P~Ch؍}W{A"b8@TűrV7H# x#ja?n!ԮĨ{U%9@|GuzEEzf4v$FE[?JdıERJ_v[Yg{31N Rɔ2OZPņC5XB$k n`mg.}E: Ψ۹O"}0+_MI4i6 E"y7NS%mub-3;Z5JbCn[,' 6g,*":))ObS;/KTX* ]<%$2jlj8Fߴ* _k6;ŗEz֣5V|HvoM7L5~AT /^b8Q#I>if@JtnfoW]u9w$UP5A*ؕ[j߼h^Z6V]|z`Z!U( ƚc.ɋ4R@;.BÙ4b<9057_SOeޮdenemT{[Ƌ)2'7<(2\MK b%܌V u_ANsEUDr`!ా'tB=DOzEׁn eDpǜ- W'Emm-uiz=D$`Hr Go= 0S#w !CJXĜ"Y{V  Ӛz1dv\WYf瀲LӢe 'xs)f`7UM|vm}F?mgNoN`ե'Y9pt}b@>V5-Rh! L(04![/57tG/'лݙ rpTZQT.Ф6sLICxc؁d\ٕ GݩiWef'6k78sUT, -XR\J͆&3jv``lᕀ_DD]Y$А̌iW ?% Bs}%iZc]\}.@ѷt |0"=Œ}C6e/l~PNXXf -a0 ϓyP4JDf)bGr~eU6۔'Fe%&`خv]tv,c.63~A pY7-7vMf6{Qo-xmcJ{/<.m۞k޹U ݀Xq>X>f;N)Зx +xúEj{?qj ޼mc1oƔJm]b쓬΃b\j,f^NQMsnڪ9{DnQcv f&'2yA+^I'c I&,"a^ydqr1dXṸObѠ$G_bA֮E#ؙ$w3]C'Ym8P`XyiFLiKU>}{ii蔲jQfCw\M. Y ?8gŮTDXѴ[r(^SqDM>Ԍ u槩K/&ܾ[p/uɅ+Pd.9M,C`mfuUCbv](`Sl9ъCA6WEFw Ztu9  jt\'M_J,-נ Ua5i=sheU C+Bl^wg,fEJ~|W`L{P׵N dFd~v ?ۢn$iD,(o)BXBlomH3QB&[Nc_q&:̡b~(횼/#2D# zu;f„ ~vS̏FMR8a=y{Rb̼7\yo?!0דC;XggpJBq<|vYE[T;1sn׎jЎ*&By*.{WŃF7'!g֨h?M_iIH#t)/W %hB^;|Ʒذ;yBͯ+[1}O6|vפ'RaHQ$ 0B aĻh$__ҼHDH@X~P #E+Ff#](EJSJex )F`r.)8 ڠsZA+Uآք&,'cJ؂ځ[S3nf$#މUY0C)ȒJgU^WZHFܷ'trncM,7W,68Կ9љ5XAU'*' b-DLLUmF-O1s˳4Pn _le3ptBzAOa[638A,Dy?l>yLZeJjEV,Zdp_Mv.p-8o4a,ZqO_/WȮ8%"5% fbb-<G  |GIc7cj?\keWD2m-JclSƽF8TL\Q/ QD@δ0i"|N Vx,iGt]vvG~-OA}hkAJ4 ll%[\G'($}/6BXמue.Xjih~c)^^/(ŐλF^Qky,l ә_g2.urWԺ;p@)Pnۅ=;15`8{gsGhsĨo:Ԯ d]tE zqNPCZt,iQnbЁ hA&EG1.;:k!g8?}wH"ִX%S ѳ(`+cqLJт%u:w sL>i()g@=“$r@"ʜYozbjNϒ^=i|m~TS`P:Fl2cj*ن:,ݶ*$}]Ao_\1AU]X|@ +ൠ5?֖3QU^S/EC!Hm ::;eO+,PCQ(xQ3%{.aΜ{@i|Nhb|^!,o#o! uֵpHIF: b"Jߕ]2q q-0Duof"U6r h?a{16QN252Q嘰n YDwMaC;Cx>#|5+Mk\an 9=LcnPxO;e_=xYJA-/hnjޠ1 G :a hO9 yJn6q'fm7/>a : b dTȻ,f޻߯N{WSދxKB =?`;=N?yb;.v4"ڿ-%ݠL] j΅Ю>~ s;(;Jv#}b#,(&W1+H[Ӣ3A!R45/'ZvI~ i]Pi(Nx*6lt@Ezmi!#FgqS;("<8R-ւM\1kn- ^N ȡR޵2 c;BoQZrK8v=PMkŸ$ \ 7)-w-S*| yX% sx|>mϖ$؄agUöl){6﹫;:J ߋ(O]!GMt׻Hײ#j†x?v9%&Pttx0z iqUjaDm~J–x|^N9zO [#>1ols,Q|sη7Bue:6*KDϺMI jt-q̌KIxd\kh4/WqC+ RK?$BnX[6%re##J|g Mt @>76_>쐢eNe>so`4[vmNH g%i܃?&./BbzнAI0|S%8ƑKGW4Xw^/p]!yzbvfMS{\RKi?,W<i XmSH)FY2*9}t-[_=cEݮ^I47LP:!+ʈheX/Z2=e4?vLT$&!*,LS r hDvx8/ty' Z1UerJ`g~NdYs;;cl?11<18bڡGȠ#?}Ge?sZ%Ĺ:آA#g`Po;m {iǀ捛#c[=0|NМ5],xputz_+nP)3i=5䰡:Xa zE6){32$e{0@ RḎ-eP!WoX~wBo$*bMc̙\]#'هb%`loXSd,S5_]/NNjV-s砠W E 'eӇ@u%EPﭷ*2.rƹzݧ'$rctelۚ'mw0+:O41!H>'~qʵG8/]Z/7httODMv8e^W NDۃ:l /zBI߲f3}'YoYn WFLP/did2Z a+9lWԌ?/)=kXM86RMt'][}Uk;8odžG`0iY,+cq}E19#35 Q.`fRɎ^1.IHD"k"h Bj[ c.xL'OvhDz#'?iVvro8%}R (1$<%)&qq/gl7VYlp! >WXL0R<(cQkimL{W8WY2k c8)C^: ՏizFjNǰd`ʈH$K {SUF>ha[m&b{C׏fEfw 2&Tssf,˴'I֕'eF~ &#+ n8L}oC@o󝫧J$0;"1YQ ^c"rV1`]ye8HA?rt躵7/[p\ /2<(w-KaRv:VtFfNP?S"pb}mIC5e"5ۄw[:pG7MC@UO#^uޏVaJDᵄ5 ٮ'tIGc8Ird:1oJXcESONV~Iqt\d$W=ߙG~Ϛ'E3o Ln]SlL%3 XxkGu_^YrN{ l|qUBxmyo|U_ӓp=5ӋT⒭f46(mQe2Tyz^$!s6f 쾗rMLQE-Xe8~oRO3|/p4[8I9YeNbXs%p`'a7ؽCиm߅-P/6I$+mfhbܑJ,ȤN2sº: r[90З%z_p;mj{8EU St)_0ZO0goc9eT\ӗ؍(ѐpzin=2q-7bƿUM)d=ikk`nVbC{D`\cl`YvPƟzm>65 ׊;7Eo>rCY(T[H$N[Y篣V<}CNu߇ӬB&"sRF$+6Җ*$+2*jTto }hU|ZtkxB.kk_ T9_6a/͉:Bξ îjѫJZE?7^/2^^,0l\G;C)ml we/_7';C`)9'w}B&]Qvq6nFM*aە\RT͒J8qW}d͈@+ZkeOIO^ NͽAڣѹi.8_K!:;e˨qR @o˗)$Q-g5[?ulV %ъ:kH?jۙ5UǺG䬟[|_vM%B+Hk4QW4v#Qg_Pv_- C#]lݭfJ~6Y˽8 G…M.cNOsUV\p-K*y׈?]VȫP*/\Q0HL+(SX^9} ϯLi;aZ c*FGLQ}%۰".3er8,<Ҥ1JI*R b+pb2FȩU}x2p=Zv&`!dOrNuS+Dy!"ԁ-ح_F? neVm f+P|"!қxkjh#6\6 rh _˝77a3`Qhe i'F3 vvz6LzZ0JU联LTg첽Ir(GhaMd6 H3lhrNe>n҈-28:b*ɠ<8ݺ5>n5S*}jP>6ylp=PKqH1X|]L_nuvola/128x128/apps/ksim.pngUT VfA4Qux -{X>Kp.9>iʰ@ZYR+KpWPR\YISԦVAoߟ}:99CVoUees煮\ i7De :)slCбǒhJxlhôG_EB 7zRv& I`~1ezp` Pq 8+wnVh|6 _녴bRs ӐCk(/Qz,3X4|2ENjxd2TN0p!l/*TXH˖TDdz>As39n:A>o4SjvF!aD 8jQ M`/ $zFXoM,G }'yV9Rճe"5ЧNdVo}.1wbֽSczkקτzR6͖"Z+%~[ADm˗:`GX%7. ^==kYgcvnqNIQoӢ2YџX犏*D\ j#zu~@2N^L--f@~хN~עMI$j /I|o>t1Q xm @ RTI#hwwaV NoW-[ 2l`\VX\:fMY^"4XX2br[8@fw y>*o|̏rwCAFYv5۾led]- 6(p)nu TAnUۊ l(t; ,&:%Rq|hFC6M |T~f‰aJfjt)+818y^dCj?`kh#:{oHM+d1 ȿPfAX8oKS7\6-h7Z^,c:nTu=.p۾aWTC3 >eӠJ]p܎br}^5P􆥅1kkyTD̘a8U1B_ mKg6EmE%^ -o=$ύkO3ܤgmw-#By)EfpA*A?z&!u$ہ=mIHdp#Bܣ8Ŭ6ޢ,-  $ فY4| ʠVSS9k2=³Ο' |<>%P?HKxھZE<#wߟ|%AwH`|0;qW$ébһR~ӷ}J~akAB[m7i^"締˱ >"3[EقrT6CII$%P&@\nfCاIU ٹ2qNoĻM*ұI"Z姞Uoz5o}saܤqdsHͿjμkN6QpW5VhcGneCt-@grgyg5 nkwB?o+J ϙu)FLx_mjw@gTӨۨ>o}M%՗"4h-ȐO /@ɓaȆl̝Ї~Bz̫_- ;3]soϛ(馬}7-IJ~:X*5 pKORSsV=2irނ`Akdו6ʺrXC㊲m{SR4ګ1uJ0O7Zݾxq*gڝ݆:u戛FE'E7HaKMo\ňR057x6^Sޒ|< comfѽiEL^zE\<+Ȋ- U%9 X}A\L$MiZ3!ƈyaOGHXA;5ȜlҠK4AQd~ 99oc%!!k瘬«V~YZX[ 2SUyiLF'[1'1z3@xr͑H6. ^&Y4 ̾8n(hD#Bcs|,.^-tVxkZX箮X7ж-"sk+>9ؼeB5Y8CYD 7Z*[ګBabk0- >zs=Nߎd%?13`ݠ P1mZ$;:!Iko6_M;[?Gsp9ɻ4V: |  _>4"0 ,QVR^^Ņ$#6,LY3PY0ރ9k蔋hb~L=S޳䏐l7d,93_baKsGݭZ}WW'S :" ʸA<^Hz7-ۡł ̱r)ɖ%u d{;Ӥs%0*ZqE@4LS%WTyfn@g~T45ЯRl9T.H/Tok/T74Κ=_Mp5EZ M6òI}K癘acɏ/x(5c苝|ɬ{EQ5Z~-+`v_ c 1ϷT˔ %Fyeu=Tcw0K`%$=7GSM^+Bc{+7"@CQ==jukm3Y Cn/t?p- /T7%j4nχmd)m5G4QE_VK|s)#833z)礂~ڔ ԧs ${3/w#e9 /?.9@}`N-LR![JB2L@c? ,d|#[m4*ްhzo$Rc~ RPE !;~3m/ ~~H:s~.<&6Zy:#ۮ=`-vTI<:|^__I¼C4aSҢ_]ehj嶚D6A 7hif7ĉ7_̠<񂖛ݻȃЕ>bܣMe{_x)ʷSY=z=$KœOiԑJ9$O!a|_G;J1ήs94"`[Ә# u~0Y,+6$@@A=䠍Ab6r*`S&##8[ۮT`ī*ΣǔI?-n<<-{TCc S$|M^acq4Y6S~u_ULBL#MbP#??qbMr%rj&2~[$V܆Q5[nvP t%wB&e:D_;U.@EK>λ2 :>4_shqOg_qCP Y8G9^9BuWe{v!}!n sc$VnI w.9 G> dcr[ 7I JQFD1ڋ гG"ןYdC(P\ $<,$v:#JB0S] YQ@1Ycb )ԱKZ QxywIln>T;g0pCS]: XX\MQ- Jxxj0Qmca"ӔUç.&G_P/Fr ۊ5^XYgD?m*YV'rC"4 aimp0Fo~|3~h?/b9뤯\׳d4J6>ri\/>_Nz ޸W` i-%OBz( rV\ZEP+$FLF~ ̣h׏l+Na jvbn&:RVL DO!xIp]K$w>UW#ӄ ,!j.Yeǘ@&&`WeͲ8G ?\BK DC5mTa?` >}4*[P՟ԀbJɁ%+g|l*1Oe^ϐE W:ӉeiqaEPGpvJ\;{/hMog [plv&Lh7qSLqE@j="npz:\ r݀z#IÔќ}ue-w̛gʙ+iVڂ?U5VZu&r'b-~AiHn~Rw3C(UN}/}9Բ\9h Pwm#;I ]C~ LY8μ>! ca zn\Z%ŅWAt!f6R)fֆ#95I _~A~ k A365\u0#a2[ê=Cwއ|凹*$7@W@̞1; 治fTZ/?,iMU;7wrYp"1DeB>Kô@QTr, $Yַ[pkn$܏z~M>*]#8,ZF4^qIQiϽt*Pp5Ah+5?%&{IF@ uG4ˢ,iըc MW]V̄v%Ύ4`{0CcwNu''!n820K eH2G[i,~$r*VMhؖKDX+NjA2g]bt:{w'&gXO*jSF.cwЧU0kA Mㅰ5 Mb_k@Ժ3 S1s]l.Btz*}tֱԫ W"rަ]藒лj" F2گu g(ۑ9ܨmZ`8`Bsb[oCF&0gK:=-sQbj_}>]h!j=!+9 [vBl'ӧ|L?|6p#>oNDzQ{)U?޻Z2lIe`7)W5]cS'zH*H V~MrKz^+].|cI3Uj8#{èɴ>rgM o: Pp<OU,. tjȬ{",X`Y BהRaDAuxМQ@KbfcW{~?AѠ>][> yn Ӷ*1p4p HU ET0rg EE@ל1nF#Y>EBr7 ܹGl  ;SL+,a>B6f;+㊐\"iqM1wY/ G,~=ó/Lӂ.30ȀD*|+ݜRF_51YJf%8 ^y@,QҖE-7sF! (?u ;cQz,~܀,"R"5.}4/|f@'!NfrʛFBsrio@?8Сl7G]f퇑vx()3@>ma^i/N ]`ގdT6GOWH(pD}a9_`-p?o' -G[5T bUg#`A(`;79.Ųm%Gk!w@`IbpX]+We\EK&!@sVHLDJy&RaW8 e᠊XPB)[jR!&d fPDeUkD|PK&{? װ{oX=Gc,{Z^T=9̶<`Bf͟D>{у*:x{ T4~Q5Fp-uxЪ!ɍ\>rV,kXX,_GG }Uw 9g, e? .pԏ*G6?Y NخO7 j =t W=R=(/ s$=V33O9آ ;Ax^Z$ud{}@otBhi\CS$NyNJ&j;MOuV]h EVɏ),g]eJTD:a1=vS~:RIhZZ㊩20քpC6 -\av uȧL:kR7?s v,C z|aܫAcd'*(g͖MA-ˑI2 kV"ukA(mї3ͦx[vZ2[oKLzAڷSAi5$'/9|^%iV@^v>?R--w@BDJėU [!v;:1 (ȓxFRU̶ZMt.qK̛zwkԆxw}j:B@dE#t^O9}y M##'|DvmOM)~^[W<+ 8Šl3OS+VUpSJ1nE48 hGO/.d {߈;Ck>dv3å 7ݜ:Bgz=Rr:(t8[4QHT^-&DEWP$D"/ߣne)#XƧ<*=z/t@`/t}h-$y6⭊4SZ6Bu+br9.0Qzt|68  @U?i͚H LވsIp]7-N`=;2|r8NQbZA U(rq.FhZ֦~6MT}O&C%[wj֍VJpEߖ`{0 u)@ P?JlX·,ظ,:5 j%\6*8K"ۣa =KF:ڡ=BM\oIQg(ԑv \' ?n>d e7K>C8svZ t\ϽD> ^+Av^-I`)xwE nj~*xn-l/bΰDmmӀ:dcðǡysnܷJ_AI!{/gUHщ+ßGdwzJM1 e-˨  ^\xf&Zxf?g=a66gā&w0gմ9&>GOy㱐' > iM;V|r:P 0< DJ+Lnl>Pm(I0Tv.A{`Mth;S1ֿ{Z 2"从ri3S+<~<TҎkoZ),E]z4qlk6ͺu/΃ɠ]Ks3@jRc]"":~PX+(8ή,WO%i)T')$"5e)5nh 7[%,5jU\,uIVvsؐŜ鯥5X7_aP_0Jʘ+n]L,/Kg̗0Ow0cMi7P^ݜCxqLz:v se~Y<@Evnz;çC1ƞdI!j66-]R?9")*`&S@ap1F밞Zq%#Vh`6`/.iS9H_*y"k+98.qg@5\eZvxNߊDyjxDF" F/-Eu#?eHlZDZ_Q\Ey5^&T3iTuI:b̋lQ3 /D}OQsQ zG 6 P$8㭹V1'W?aށ¹ D)\  *,tubRGƙ*#O[,{6n(~@3%6^gԧ&oSoĻ7,0V%?f_U]{˕;-nMׯƬ7Քܫ U|dDk D3_MJX&X$dod.e<0AOcؑgLÿ%~$=-N ͮ_'iЖi#Lo¥I'/~5X[O*T}}tT.ZC$S52G쇋GM,~!NvLJaܴ!MՑ=%\:,rvz.KyS=N>1g/}mrPmҦW* AdQ51éYGSzAʷW$e7I٣)ip$bxF;$AnL6q>5)0S22{/L^zI vȔbz5j5KSܬܛ=aO7zRN夰s7lmYnJ?y!%Q k}6p?l,?_KCeRJk0. 7)6m2QB%遻# :!GD|##_kCG)ee(B9*jI9?Ή8"K3E3P=բADOeCZ.鲨i^$O`- n'n )L1c{g ItM>t"x_b9&~DPKzתvIᒌ,ћupLFx&] 1Lqu 2%l{-tۣ0\19aK3r%){2X_Ll1ArW³ͯh tQ"1NA 59M\EQW&Ziz)\oFܓMZNR0ZUtvyA;HxXj-ò53co#]c򰜘_v/ٝNaԿl?j%duXjPC& y"ET䯚Źӗ w)q,[KB6yu07-ܫ/6ݤ49OOTC~Y7&!)O36\Kq͒m+͇ V񖠹d$%îϟk!+H-qӟ<\ȅeӄbXB2dq {(÷Y*bT]bzT2w5wҼ+{1q&pMV8t}_p D]UՁ@,c+༒̾uK{˭ݘfPGO"f,0 f1 mm$&ĦuzRe%?ΐ&QJ()L r_M5S62L\A;(p1ltG9cMvr/+Qwۿ#8G·cnA *ObO}6 lq S8DTkbmr0}L><0~Kv̵ؗy*E_~0 ]ũ 6  wZbQ%nID1Sl ݓ c>}h+A#U,sd"^&9 lk ܂Y|(lLL I000DI97U gHJRvs6<2@pYlr0C.l+wkܒKi̐|¢є7&RrRcz-:],6.'Y*<r^+@ib0!GZT- I|6yk݊2C/: +hGd%iO gx>҂$:`(J j<٫Oh߼3߽ORYB}LFVk)uPXC_KЮ< Г$OO9i&ԑQTMy ?hR̈́ ͊!xiE\%Q( ,ţo<!LzlyH5LO0x 2LZ %/SSxw"nnPa5 ~=qho!}ށuw76b BFۨ Nw'#rJOSb%A=-hG9{1f ~nU_Ckwq?eW.šwW$r u2:tɜe5RAn9yDbB[T6̇bo\WQ!E{T aIv6׈meϙP =nF iHz(?SXU$Q#ݔdj{Q4hm2f!\m&L"O„o58}jFG+Vݢg0Ay:[A^ <5Wrr:.(L3ކ¼ kX^pjB-oO!ni~*_Wˉ@0?^4ȒT½"GMj|];iTyYuGi pM| Mwk~ dhӖ/R}%;Z8 >[^ 5+&Z; 昢'}7Syk}:I.X,sk24-Ļ??e.lqeNNAVob`3%4+mkI۽J=˘yx@n:Hxp<2j < <~aeuRUF7M5?ؿˁ)i@[0ˁPtG}{k)LieZ-ad׳{Ԉ.;E{XS0P*bBJT.D߭ 㞦ERv+Z/B5jѲ[ܸPRE:E7͛7Q&D:̸h:P HAA/qmQ-.Osy / 1Y )H?Kd[:1p9y32^aQaew|jC1*uW_]Rf}U7Z/A3 r7A ֓{ O)>n ^I-.0 ni*y Qz^r)'w'R<+]ժGA7]Ap2iyUCl^e)=|-]VU/,1sDIVܔٿۛN:fܤ'[HȤo!0 Rxdx~+vcOG5uu}t[R9#q<.~D݊v uDDIL4 lqmе}V fg{dxk%0< V+?prI=Zz++men@g0!ϼigi c-D.7s6eh.a^/ftWElCx4Zp?욪$CRE/Ff a^?VS% ٧*:,MߦE>^uU27@4L<,0_Qɇ`Lƙ I`;:h\!O7pl6OY-d@gՃS3 P,wH|{wc.~? E'{<ݴ_+~`EŅiǸw5bV9CX6C.|I"b[m m}{&B$u}j\Tbs ֈ]o HjMBpQhx`bu9 Y\&0ʿOU伨XĠx8ҿ1;4_,WU]U?%"C*X`dެ?(xW2"Qr f{QgRCTHt3sf*;ԆGé q~  m1k|e5D2ap++nlH l*=Z域D5ǸnoNnUűEMW*H9&kXng9C6Z™9Lp>s$iIx%V9pÇ0oKuZ aah r3jm(-dl1#]QΚGJe'82\e!} g ;8[vt%~7/hJсiuH\ᩐ Y+~Z#I&KTIq~N"Nb(\1f= *:B|UPg5 y{a!ԋ H:5Uʌ-?I2LMt?o"47kf4ê5Me8%NVBv^>b!Vw2!F|`ɗ΋{\rN} &{*؅u!-A\ UTSRppP#ndsEc-Â1+[ӝz60=ܵ7e߰fDc): U`wZMexuD:?Wsܬ&/(|!iI kr(ʲDH=[%m>p+ATwT5ej3QF]`MK)0,LgY_/g8ϿPfImF)tq)Nm G\-0ɴ%6y&@:R{j/+!PkA?HO b,Oef|K:2@W {ݻv+|q/R!D@`L'Bj&/uHGG\*㥮ۨ~+1ssH=<:Bf"^71u9Xta~Vӡۋ)c:Q!pkn/n68+2^hX564Wlݺup[/>s{n]ʰp?qKwƶ9p.Z,CR4%C0@-5(--=ŪNyjqMjJ6TĘ$1 id|'t(gcv!O~>E .Nb.sG”A(7 S\:@V~8~ĿD ;۷ħ*F| :lo˄ƍ9d˹u0w9=q8)|xyijtWsq8zd/ )LNygɵq_3+!17Cʎ"$ k<iETkFB%nꛆEZ%7n$g op^pHQ|Wa 7vi*[b.5ŢWTm8.?"NmJ*X<ա]\HXTK" E"?,|o]sL2Kz͵L-T9egNeXfu1rv|`sgF130頢R7|_⎂wXkKY!r6Jb*V͔dσF~SrLw 76]w'c*es*i5吏uN3A 驀 x&nK2b$p)s2c2b"g5krO>Jc-{ bnde-B}:e1kuYk-wPyᜯ/ m.7@~dv9Ct ?X)@ǎ@ם;4 !4,ۚ))(]PZ^߲qV;>d?eDe*1y\+$VnS!Pk =)ijҙ8ݜ:tMDPS5'Qř| 's|uD;L<#ȷ9ަéO_)p7u}-/R֑Xuܢ]İI W6ZL'S󿶳wcJLk)T?g}؉~-#ؑ,Oπ]0\CfU4q/x/zZc"#]8;vQugԎZEy!g("_yRSɳ//xoe[?JwFB> tCcu] Dw9O> ay.[ e@x$nx'6P l)d}Jb/PenierH gWXL~MZiNIIb_LXnjԂr_D%DT*3rpKҶYm),H˳X~ˠh͙_~ O< kт5/^(R#%?U|.\sT}o`Cc_>Zm'qW F 9L ZB$*h1 D]]A;ٹ|f$NK:vRN(ZBH*.X.2]+xЅn⋇Y'npA|'x2g3=2e~ЕEY&TίC5b ;.V A#va|-ՏyQD"j %@ kqwCy͢/gN Q7]quW(MэǕ,6(8ħa4-׌ߘN y_4|B[* P}*nJH%ۗ^WTY1(Pgp|깃yXgexnĶM" yJs(pjKJ=`'|Q#Ja2(t^pYV?ˡ/mD$1s X$?}b FnY#hAoф.9T>(5~Άpv+#8w]͞pc;wzn<1/WeC-D- u{B6f6Y)+? ەNZe瓫$O .vȏ1] ,b¾G$L] GV '"0_`{5 +&g_'DY(Y5vsŌH䵒U 8\&?ia58}T0DI8YTψw:Gau`%NPlθY<2œ:LӒ+5 ׽͓ëOoo}wJo_Ƴqය@i1(NGjdu?`eѐ%꒟r0Np{t;_)3]%;yA/yE\ $*}l fqID2K̠ c8Z獳?LhPHXPIu&hIfMoi}Msq1}ϝݦ ;(Z˅A$|A󱨟~zp󍞝xj̐꤇2c6W-Rxh̖7`FHeqI%Dƒy$'tCƒU:fN6I_f#1+/!:PDRj \RzogpQ/Y7zJ[ilOwEarC5Y>#N[ P4s^ƃT5cnSbmjEFw 225p ]_=>RRk.y)f/(,X Rxͼ)#w{4}86RoTbm߂oŻNXt'f/k*򮳴#z7X?q)BSUɭy;hANK|An|`ِ5,MHĚKDOֳGMO܇?AqAq"i{;3oS,˘bb !&4 Ij5Ü&;G^[#|iC5<ݬ ~+]z RBiꋪy%mn } 7J;'ZdzXwAoz8 R5,fhiec~l;0Mq^~*! 77ܒ2Wɓꇎxb?ڴKMJOI*(2Ձ,(HW,mm, Ǯ?c( Ir>臤=U]4Q67xIc`7,=IOR>FIF38S6NعZ%79Cԅ"G qJ T?_ r`۫{׀ =F;N6Y G4fЕ6SB8f8s

    kѽ-y/Թ,Sdo)p ФVy"C3l65^[`j'i}f%aziy;fUxd8Ax?;jjKͿ' $>(3!Jk3D''V{xնu\jsIVzd#( _X^#^ WD!YKy;:KLrqӞoZf\oVZS"{P;k'yNe8Ֆ:@z?Y>L"';{^toi7C> `cBeBy7RC&ВģpAIXn>Ͽoc>=j!\Y/KMr[0t ^?X4[zr[V!g xad A\^K=Kټ,Fx329 ā{X[HgߢۻW G"FyeBI='ov{lrw(*=d}+dZ,kdr Aanv '0tF}Gj 2OLD=s XY_%- ;d`҆+gSF>OM^Lýti7j0ĕLgOS6|zP[ v"~$RphUtl.|&PPR}ţDZCco0 3}5G~ nn e{2QA~3OwC7l|PKWG1yaDNFnuvola/128x128/apps/ksirc.pngUT eA4Qux |;T}pŌmƮd_fEfi3v"̌aB%$ʫhU+bUbƒ2 Ɯ\יsxRb MA+0oW -=yQyWn,:rcl ɾVu4idBfl8g]HYmݵ5MK<ĜCMkk"{qhS+fnU˵pnW>! KP漁_QF sOJ!t~ƛh7*P ݎUBwh`e9LuaIi!w+vʼ n|%QQ"3]{2 UoM&g2laQ>{72$OKD,Ţ̭Jl:*+,g1u1.X0[0 E"\W-4˷ =^ [Zw",<9@/]uEˍJi;ϐ,x9'ٗ9SSY!Y|A @jTf7υkԸOݛʲ萿_X}K%KgB?x)M.7nAѕ,UhL(܎&4czt89B6sںVvQ<mz^SKnXTKN/g sWSBUj豸FqygJ;G0O;K촥oV!%k19n{=3 iU}B2DgE!z[NOD1Ьr;Ȃ@?k¾2ૌVc=\!0_иoW(q#\D[3cskQhW*"O h=wT+ǑZG>a׶EEQ*gkwyeM`3cMߊ_aj8A/.Ų Ll>l fE U"nA ')V]\DD|=y=1yGrD-d_h~=tK. CơfH5%'2ݟ>+xcE9{lu'^;P.6+"Ĺdm;n!Ladcu?asXX!4%3N>ʘy_#`KtJYqK22̆^]lNvn,A_ MJHzak)\*@7rr(\N#j|>!WQCzmԚn95jAr|73TQ= N_ Yv<^ۏQY[z4ܘiLl_gnI]Ls| 5!٘4Ũ׈ʕ]eg]t'g%sP0SF+LD V pVu*X YNMuIN]:*@2-9i`i8{xQʨܔ#B}Jy`=`9*@_g.-(7wM2z=_,*ĖEuDVح5?X*^o.wCG|kfo| ]Sm/ T>6/|sHɧq @㵜ŸYޠs]%ɐ/ͷⶶ&#q!^-z{[_7;M w RN >Q M*_5#Ҝ+(7Xϓ;CO`. Tԓx(<#+ͼQ VNOgpA$FfUS$+6pH@^i7؏>M}@f?seՊ(6? B 97*FxX| 4RfPz5زLy(B4;5T{6 Zn~;G&ƤZŚ1'n*׺"zi2;eFJX^X ϒ3LfٖRMUX1rxŪsjYu#rNL'OmA[څ2s=]gnJ`Mp94qZ31Oðݽ8yy;5(V4q9G K ^*zbsueSw-w㕙:Gc݇vIU7l|sHϺV9E:#Te4u _*vN> KV0 🆭CS'Mb໘N9:s2!2Rh h+gR~9Az ^eR*KN)plg;9_bV{Za( Vez.~%)EN윞LڲDq!{6V=g5+ ΅sӛ Ƥt}mFinHy3rfj*/N)aUX)n 2% c-M#-i45 >]t?I{cOW%_H.,8[י6.M+>;LiL!8-%f3g>4[?_=Z;9DCBaaQ c! hC~wtQrUƚj[8p ZMgA@η&9nSըX(Abay(woj6B:LMMg\FxKN"?Yǥn]Ze"l2<`׮8Ǩ9}cvsIAxC qi 3 G4 p-h3A\}dtn,N,G}' SS80籝n%p".#gk>s:|j]e`; %.$I2qIj!ᅜ0`R-ȘzaEn\5DLl<0&L-%/ Vi _C*)U3[`[uW* -~-M:[Hn!_E7kclKQ;i0ISk䟝T"la7;W%&GŮ[`%> `6l/snVNڋW;:XutQw6Ft݉TM )qp(cO~;9Q.|ܶJ[J-O[ N*<_. B6-Yb\Vі(֜Du$ɽ[gh{u7g&Sc艛]j)Ow0򁚽d9j]gB笳YsUWtԱykT iVצ-( 7xP,}mw3p' i1RiN)ﷵsbS4Ϝ6t-1gaGv פNW 4j o8EߐM~E‰Xk5 '6\]Gic'{(*u\;8%R#Xp~<7['GVr1e1?|;p]dCB6?bV1n|/箜-:n wE(}vKw*|Z栦O Rf/t>;/)3jۇеkr`'{ב6d;%ߏ.HUU.5,YF0%Z[Y}nu;"O$}&cqG~L$y"i{# |Ǽx{oҨE3ZjuBwMiSnyYNDҾI jWp$!n@`ޚse|/‰psXyg?-B4TbDvy\P&ՏzY\SI{bcub?YǕߤ71[cRy9)~ ei% }Yu|'5$Od+`XG5D|ﭷbUMeVɺ6ST^+,r?RRm`R>rr$}Ckp֛pۥk7O!_rG kjs3iqү%ghO)CǭʉgaJ߮N,e|ٰMk#H]Dw'ϛv=0>6_/F8~DWhFO+=Lyn}Ԃ& g=9H"&37133r14'#R އOSzVƻQa4OC#T j9k?j&s=TuSS,!COvYwŖoz-igV06pg/:> {^(zi]y\Yzf%hף/QAPܵoG_7g6d{셞 ;҈ n eH!N0oc.G#,nݸG_̭. m l3(_\ 5AWݑv;r3Ti)w)kfcoY {zKmؔbFW {RF 7Ɠ-wu|ӪABq׬$M!RGߴaF\zG}cpwwA{;f[8 F8eY؉=ɶluy9V=A%ڊcD' R:x\%e [xdd`^{ 9aNw:_&x3Txb?-A=)mm?ڂn3+g4 1<\ Q~q!l6Rz|#_ I`1c&:қy=x 5_ OEax̎7>^0GFŭGCW3[c _s{j!ak5uWe)KU]}Z!e1T⧞b[#kiCo-P,? -g :Ed r^gE >ψm,X0LB@OCEÉв[ MB$\4vT\^/Wį|ox5 kkdHȮ{ҏGоʂREZ*A ] ^3RӘ ˶B(''9-Z􀚌'k Ix@/l+]twaHT_(Pț$UnxSBE&ȳBO >Y6h)Eh A:4DpP0~˿i=q;#l&++: n${`t0.琉9t{bzI'6;0Kqcg;GN{dAI̴U+dX7vN_v{;ۏrqAue+A+zYJAuM vUe:栾}# 2rr. Fا>A'Dozշ18ɱ3]Y$Rg('T=n:FsYĆqz2>?4DВ 6 [+7"_F2UufC0Z9mx?QFXҘR3gu;Rn8ӌt+?saoz+ؓ[mB ZH>=ߣEGA2lgWҐgHD2R\Bq%o]f߽7>$?CSi#Rn;LX(#: *_oh{ (IB0rCeިrt^+oY\əFPsGm X?JBjݱv鿲PJZ&t[]k`9t+F˙ WF٥ޝBٿr BGs,#)F6߬vvҤ'6| l$ SrRFfĞ;9譴 Mu=[8 @? j-A\qoSZU>~"Nx9%Xoﱱxࠔ>aFKj*[G|PHp@3w.8ݽEqf^c4]/Z@8~vᝠm@`xåWo5=B 2P+*|ٳ@ʔvӳ(REy8̳Jfu 'T-Z|{Trhwm 'ϹR`MNĮgu֐ 3?޸ľD/ޯj7yK] oW /0 -g⋰\)N1 M=Ѥ'F^Cc>i)ꁓ{,H-+әT e\8J@OX)!0'mp?4k&۶~F1<[#1`ry/97U ?o#޴i)βO(p ХG0EXbgg/1Qj+~7{PA|3筄Uqsz_Y@/VP/*H'$XiGGQ%ͩ9u.mNo7ExVpNFh30 ?M)q!,*pjԪj5'G[J'kq7ӊt*ip[g3V=-~ҁq;UEeb>NX#_":t3`463 3%Ur+%1үx/Ci~2 -> -pBx$HDdڧ:k N"e1qsYέq+4%?GFbxE}XP8mU(Ŭt dždž|lTq_\^bf_a.[Ԫ-2cs.“7cdG34p#Ƶe_3gRܤhZLIB<~33@{rΫǟSQ4 ݏNݚoJ_å} \|zm;?̫u[Y'cxfNJxɷ$\gbBAɻ0bVB+0>n|ۥpI:iO»4$妅 fUqSk "07%\Ρ{-D"|LeAQ͈ uqsBX4g\@fu1ҿo2>[G,R -0F*VH <S,ea"aN)Սl`6o0P43+-&@M@Шw4.L]mS&TGnKl6Zz:&[vHŚQ]#Z!?grь mIk,ˇ;D?%YVTdm*Wb oVᵞ 3/ /nJޚT2\ߴ-|P͎0!WTJ%ud2M!`i^l<";ePV%ZsΩ[\5)]𵟫Ty!8V<q߮W 囁Pc K;LǨQa Idk3a /f|(nH[JıTt[;nCcz2Hd1S>[jHQA}BU_aUieσ' )1EIۇ|4 IM_r0H\rVs}xp匔 j4.Һ%gl ?͌n~"{&Wu~}Jͫae_8OÒHQ[1\4H8 l3a]Đ;3AobfI~ *"?,'h!G>棁sl(lP*b˛93H+.X5L4@(Ж]zz ߯*dp+e ݲX"8_m;LrnQLRh6{ZyMI%2tb%K?\v=<_m=Od)/yK=9c#JW>Wu<9?1Zj-돻C3'HkjT$k]:E]J/|]q1PZ|Ȝ?uQFw]ya}~9H@5Iag+)_1۱`E&od7qL}z B6ۡ>ɼ8.P76m]R|HZBoZ<odnW //lٔh)'\[[UkxżȻ(TNS4LgT'sgr3hum_~^cls^9 2ø7?a=}bJh_M ҵJeS {_q;V*qCtp]ڽ3pK8|[v"#$~W(rKkN:01Spx'PƍwMs .jƜ9K{>WޘŘBgm}^dGՈ <7D"WgI"_5,w֜ ވm|"g OE7c6CZ-1>ߦ# y&R=ؾtRy}\ tAVq^HzȐdn˸ i~zI~]#"+Sm[!aωR$RZ6fȳ #B;b/RZн$2/Rԓ^F>-\m*,C g%2_c&`$)b .~6tqEhq:9FEJveQξ u(C}Y6t h͜"DB%賏`"l"紽`Sjg^\W cb(<0Z.+!<E#tC%stDW S2Ji)*UpxWҷBT"dȹpI f^o BL +/VWR#'؋SQXj/$蹞l,@FPjwV纃Ckޕ~' ~s06#s;r-bKҸ4o̟pD(Iop5b8_ +?e#tĝ%iޛ3z  =(.s$~]A^;hcDƻJM] Kѷq]U;^cnX9wDUyvC8O[o>љ>NBJ),qvjmk7;wX*-h;IM)+Kc$2Sp#/wkH&hcy/ApsKq?liB>J [KvW'Ϯ=W8t)wɛҷ5 d!Uʽy3ߗq @N^L(K|Dё!" )Bc"wY@Anf߃,Rv+58P5N]-7_wU(w른)?%'u]rNŚ Ad=-/'Q/wA-11i{8ƜKu>W8}nLYg vGЅG:n8-Tj0:6eۻM*Sm ,&݁ @ >@ho"Y0MUKekesZ3*MKmVy_|cn7qKdLKh7WeW?hĬ[Sǽ+4Yqg lPK9F*~.1=$O˵! //mf)s%-B Y؆5­Ì&βDP\ȁ޴'ƚ}"x ˏU K3Aq$\q=KN T{5m: eIgzdII@kgnAvwh"E'bRvKoPvqVGۥx{pˋ(\n^i,^=vyFpo]' G ܬ!صy=P:sx_wLjvH`;f f-A2;Ք9b]oo:R~4|ѩȠ]z+w^ F ,d!LOX&7QiC3FOC~+=]Ÿ!-ŗ8}DR(C?L%ڱRQmOآvͦrTHqo|'(j(V*Pdo(&abQ'  ɲÅ[8NW#7ž$o++ ð*s O6gZ6g+bXsM~4di5^e ^(Q~:EY~rɘ>JY#uKڐwGTQ gh-*3 k^2WeeB;#?mNTZ bMګpG_~vek0ϬYC1B.`rv!` uvS/Q(xvړ9/BYrwPooxA1K;iCbK܂8k^A' L:7 g_9DtH l!TW 89[WúThXp9Er)IĩDO4VvZ]y!UI8}Qs-388>dUUlnuNhm]-^$w~zon ffxt >DHrKy\}R}*hBU)ؕA~9بs@`ImEY͘0{yݩ N0֢!HŽ9ly<7ƚiߩ`^Xgmv/žM;sOgq4 'ȜG}q*+;QԺFQvZl9LEċHNqo$LdyApBOYQJ6qƕ%.Vj?Ym!lőӋȚ/"~ڴ>xQv3P8Z%/?97~2tg{K-6OS?zp4 &P{Qa#zPTyȪy Ljk7L*嘣ί@ptfO=%wٶuT[) =eԫΫ'B6$_E :/bs?rҴo1}ƔnNv'@6KQ$íg zTV_J8wb>&.1ٰ۠uq@Cy?:P$[uI>W+3ZuBVY&(~Pw/ڂEWNM˾לVun^Wg=V!&jQl,Ĕî?7|r^pLXi=Avg>0(=I+ Wxod[_rtz9w_s=Dn7lL?j7_x.+q{ Uda6@KӘ"ê]E̶DRI;&W^+x,ΝLI)9s(,Gp(F@}ch|o *.Q]5c=mz̈U 2i*I9x#Lư4BY:-XV%2jt!fZ'KEA /mr^?`]7,@6*^0o#Z ثKr9`vҥt?$]uu'ke3 ĉKü6 v2pDm,_sge9fbN%mj3MRvܪpI9C n)CAs}ӱ*!+]S{0GR=jn 6M+ B0|E< 4 ÕB~3^:XFfֳj4qkTS`++VSM^`y|pofRZҩ~9LgޛKJ.d)2tw[ U-^,3yqeL @0p0򻞂)mFαWaG)v.yt5 %Ww#[ZV)&e뼽|%uYjh}VQD"t.6o yl c x+M#H Ldddd=HC_hgq{ܗG>KgUPN-9 پͯDQ@ϩS,˯aS;,D|=\u߿m466c}{?Z|t~~*7>nbeGe七Hdk vġk򆕟2 r!---dy#oPRwv޴)<P3^G |\'2eW[dRk38Y( jt=FDty@rKȜ @??؋W#g=|GeMcV b8[+N(Z1ӀrF12 i-᧻54 sڵkp/!' ~bj˳Hd5_pEԷwqv7_]^P֣5M[rZiP]@}];Z 87}~ G`:_&tf3<9+Ljwr ^seDԮj"=lcfZq))0]Pu Xd4ў-P5ՖPS6n?&Hb k`s³ou(0e9|dQLbg.aj]ݫmq$mV6k.F@%B,$A|QF6S b;`R]p`?٧`څc*۩%w5G ƠgCuʺa匄dM\Ch:hWAX[lSH,-|Z/hj6A ;ł${DYZ⩭j^p8ZY|?@W,F,+VDqY9lD*'6 1q_}?ԇ"m;Qni_Du6w-zi&ZLu^\kmĭ _rUP׊̆qv5=?S0Р;|E僘nʖĞ|+lp @O'o4'S 9ԝ& H,RoX/JJ9ɬՊ@-!ŌhXC WW7&b$8|+gM*_"bop[?XQ9[:7vybȄF΢y( xt`ovX6Y glH29m;-܌`#-Pcj1eSpiN pq %uuu4zjLRG͓3>[F.f"Io烃1"[$8@2Ty -^_)jM<H To>&*@ >h"=OM UAC@n'D p b9)iXҥv7#/o@޶ֽz0uA5|k>ZRD bZ 2=| A'10I -́])k(h{k;Z܂!I*p2r~dKf`Ezxx+h;7k6L2qhz(f'LjԀӴgwɦ%=ZۮANJjV^6KzCM'}9izQ+u/$EGGo4G:QAϗa&Z9LNHl kqs4D[tweMlum]] z`vӝgM3IkN&&Ж" Bu'3,\;Ąϧ@_,Vt{]<){vpŠ*,٢nTcRoSp&Koj, l-NeG7OunY=v7LXH"ČHT@ |WMͦ@<4.|ruc0?1&1;lLyb]82c5ɦ-:ܳ\dVWȶCPiYtsJ! {P\( (u/w#z{S9a6Y L(2!E1KX_ w$cu%+s DYCݨc+س ?{m`!d:ob L\]G"@LqS>Mg}$]cNwԤ[YFq#++:==ZF@0?= c$ P0Ut{2If&/{! ͙⇭tanGNWFaIX?É$.+#{*q '})5B!3Jh;3z>ISw(Apƾ>w4$gКoWOG8 "b$۾cA{]tN5--z*fv§*Fl @N37I %j"<ӧ0w:Pd_6 s"Cꔼq{ *e$/ ~o'W# Gk9k{\*ݖB|+[I',QGvB`z4ϯl;Q/+gCOSG4c*UfR a1 BLAHX|B*cm2c^s4nD8*Q9/U2uϤl ABƘ0axۈ$B!rЭ<-դpijoGEn.T1Z?|'Rű8(TUp4%9UtsarO(_kFy>۴B.`孠!ێq`͖~T/W;="/3hl;zTl\tP3JcWlC.{ɇיxŏ3F`_l޼Y0 XZOw0Sbl5g*S 5V!a F==(Zi=BFcA)y'fx޽Ms Z|kn뙛wfֲY={PC}2?c,1Z`ff1A}\]S2!/bڅk>39~$0|GX-OAxoΎ82_;5ZE783E~mξ?[b\07H8Ťh]pZ̍C_Hc 32'q1@} E$,v+50ovwbETj+.v*p^,J߯ajB_UG*7/&; Y4;r* 9> VH:>5Nff,5,2ͽߜ%%>ɡiݦREg ,>8GzZ#5@ ~aaO9wN.R)G{l>_߂vϼt5 4jtqX~]%{vJu4&7TG`VM P+8 ĜԦj:I$o̓ #u)_3/sj%^&\42L$S͐-C̆$~ݶjvs\n“_n&rQ%wMVnnVhrG=`䟢l$f g 49A򂐾*@;Qi)EԀ0Y V˷Pd/ 9V-9?t؅h"VWմv(/ftWskQM:#Jdf{EŅ3ubW 35ovGơpne" Ѹr`Nڸ]tegqyO" nKHQ$ Zw;Z 7't5g-&|%fs51pńe"p=go0!VXW &j@0BrҨM2D ?l=Cm+{%o~d^OeXb4cHFuDAUKF3t DuFX'FGj\q4`w@ ׂٍ޳~.4/7RO!k2/AACɴ »4q~*-vWȺ/oUϖe j%C=gF$?h./ _ TdʶZF-S"I6SFS %6BTYE۲s!颙ܔ(+#QK90~݆28&4*vueƙ@zlZP CVۍCbZ

    wje{n=G\ P0IًqY|}Մ.XU.} 6Z/L,DnhnFȧa"f,4r5L9v@ŧQqN6&660:ksZ>ç1b%թrUjtRe\~=s1OP&g~H3;5 9 I IuB,^;BwȥIQ0}su4lPuz8%/KWA]e_B6 Qאȵ3cev2/Lt'~ qKǜ ]^vieۜ9-N"cMFb]j֋D ڤނo|M-!'[;uS %澩)D\f 󌙭hij;BjeoKW|9c[;X{֨HZD/#~-i9MzPt(](]WoVTa\n KF-NNadRUlzAm E"U < %=!qϓTzS۸#t1&>U+כSk]ūod;PDM1+f]|z @Z(AŮ@ĆhɮFZNDw.ƞ $W NQ:6>NjjjBޒQ3,,$ޓ{#y(xŤDf鸭5 xbоw챚r.%"L͠,K´K]Xox>< q40?^$|:1;V{ Pe 5m˲Ig3侢3T:epz+ED[[[Aړ_xфA*DmF&_4\Q p2Me/F>PtW `E \ ?50BERv/;O_8>.HPI.)wو%`g㷊j !jV'Tj9ݭJzxF8%|/vL驀yVcu8۷oiNDKɜY7@#LɌ6tĵ0_RN0{P8  It"/ &M}mj55_W癄$ 7g /Lf foTȇiݑ {0VG(yJriK ـAPg(e>0b{n _${˛Z?{dκWB23ܯd\ 9 D寙EU-RxmZ5dbOU.G9~6S욃n3w HVԔqQ.h .y ִOn$reMLLpwH],G #}%y~/0 .({'jj4 >sSL*QEcgf>o"cQM}xyTrlL?ut`F+dܓ,N]o^9c?<WD m,wBH^vqAK "> -~Ep=GSOtbNf&cg˖4 Б|U FVa; _=謬F!U~>*44r{St0:/y Wo&mF"FX&ʟg?i'ߧ{9#siJ2Eԏ7'ujk( b >•Tӛ^? )h17aF*8VtZ#-9 O|xً̺+ `[/W7<ݱ؛p3((!˥i4N`ѫNyjv^ c5ȜKg o X߃i=ށ#{;*ƈ^ŽѮܽZx1D Rw7~h yzn9}ؖdy W~uTZ j$gL1Q KbS4"2Nb\RLR߈dzaR/mJ9bIc M Z K.}hL7] -ltgHe! ϖtj~% jY74w`It&[i=G ̯\YÜ?mR/ pDa_.GD2}+f Wֹ@` )r\$K&u͔0uX|||-o ODmg¬y#4^>~3S c \fFy8 Fx 5 -ɅqE2EwODJ 5˧H&A;&4a]JM;_CsB;i]< + ^h;B.~'R8byI/̂sԒjyC4x>˙h@(Wpa5s@ayAx;Z# D5tb%W 2.ע-3+N,99A8Ą䲁-#:z (T% ix/^.S?:T^^Fx:x;SQr)Mz4#cܱÌrw+[K9fy46O x"`56y=Ta9 N} ,'bҹՂQy:؀kT4," oԆP7G>/hyry I'GSN`6j<5LwV$ pwO1*s%SJ ̹x)l4PR }=WZco-ý#opܻݐyU%4)B?/Uֵ 2Qkd XP9*ULnOsOvwZ͝"yo?PQy|6D/~u/qGJ,Px;s;@I㘇 Qnp["xE5 {rA^X)kq)_xZXoEr XheIW"(fP IG8ħtq$1jVg]%H|?,m΢;p`=ʫToo ?Xw/%3hwχ x[vWШVg.ۘqPKL1w#$nuvola/128x128/apps/ksplash.pngUT lA4Qux zW[P -T i6TйE (R.,Hh^ET*|zYkf̬sv9~RRV@i{LˡGshv[ld^cOxuTH%".,Hhtd`dhDrBk#ⷸLAd)=tdg 3(.`VO[@ IlQ,c:ZX*<58`\(Q&Bd⭊c a/|AZȝ@X} cAo @ks"h֕\Fo0 ,4"OQStLKèS a]>SB]7Ix7x.+hV^@x8]td-@6|%X B?R3.QV=[ /|`fJS03B[^&>4[OKp͐sUBsf ٿMI{GMk:(od%jt<]^JȰܺ` UaV/qt=9~@- Vs]NtoP-@*Tw@:SsyS ,}n)N4I.g_{)k]R߆Z^pC]4H^E.΅#ޫ<#kdfC5c,7?niu9kV YUgf<]{޷=@B9C5$0^Z /53Tm3f'^ T5)E YvX09'JMMv0Q8֩mdj]cJ!Dl MhF2}~>5*̹ ӗ6agVTã<]+kk ͊e' ]s \3{-Ù.<+ G^kHYi3h5eI13%)TuGjǝjkdR fg;s<?@ {-WW7ZWEU(gj[o@"wMhK$*9wXJCH[>X͸2s#y 9 AHQ}fwb&90L: _[1?4:sɡtDm'U'pV\QP%b>c T|"?]NgsMO 1]KOO-w Q\*z7b닽FK|\j:;[^3[s(dLA2lw75yeҬ&7 'X2]*박+6/Lp08Yw'ЁMw -Ol9 ^~#hxde7zv({ x 'SGO&/i_if 2rxͰ Z,@Խ V84 ?7<6I,"hV^k9{Vf)U ,j0 VBd$f̡?`Jͺj!?3JEp?φp̳ev+ϸwiJAj&U4[LvK"ujɿS =hUKm:=!tR<ҍJTy ~@8=lXȒ͡/DtNWNC9LG &,Xu_ N#2ȠP6P1"1bȜ R E8O5— w`8~0jSCThtkZT7yg &I_8OHCéIׯT Z8 U]ʸt+xXV,yEF{:3xI)0Do%KXWQ._$5 Rtp}U nϕ)Qo4UؑV@QE "laeb3*O*q7ݎٵ)N$A@[E.}m8'#ٟ%Ftm\S<*^WHWtR7Og,g߷>![~)&I?uN9KbpL{), g>WЍYu G[peJ(#^L<(©ѤĢ}hkz!k.JdDa=W b_^,ssiH6PՙU?+!ln50 FVa]@p76[lB r'BaB"w9MhI\~T ! Ydn'.nӤt!*bb=pD)Oo\89֥I@"T2 <vZj* رSk ,?FkoOO܎Y%&\}+7-BHmcNf &"~'(m3(aD] 7ߠ؈ⓎZ ]C S a*٧HNpM4h{16L6k><I7zB "+POrS"ҟbm[`o{#55s8=^sv  A ,ƺ\y{Bw{VBAsO;K]z vRYKMLz|fMF/ˋ^o__kn" ,g]ހ+F{I(B`D& |lG^ ET fȋYOP2?oG~_q넿jIi}"!ltByI~ľfhX!|\+c^ڥG|L!4k0齺J9;{cԌ)VR¡f)S8kI%1'c->&v ǃ>5z#K ق]f AKLyR* ’UF *ki c{~B tJc :H}w%gLOf)lql}kDΣ?M|e?`a#re<s%z{b?ni1Z)ye|3$!ҀO%h1Blb%N@JnBٳy_;Y;>#Y2E7C5Ė˴*Itj3-{fݷڼyywۏt:Te4ŽF~.J7ad׿%ag,_:(SRB糑ǟʖlɭ,ҡA[e'*/OOiMp ~b~ 4kkAM/`>&`!4Rk~j8૨n˙7P~7sF莃m,B_^,.lzq[mFOo4TC@ l\ZT1rӳ0䤚xBk=ԗkߢe~{(Tmn Zv.::yFPA?vT@>`(6)/v`N7QccWh`f {(xKþH^Ӳ{)d"THGdGf07\BBdCIIAp*yr?!)(`׃/ MP0ɷXR8̈́ yy S^ Idퟏ#Ōc-WHQhʷ_>,s|Y)57 #(d=iMxb<#Ι̼:_Rx×c57.RRu'a( 4"GBh9椉~MPvQ=Sb_ݞh'ԽU:w8@fƠ]Ua?FD`nnU OyɛCjXwy 7s5AOefK$7\kZ`;}Q ZKހ%?$`]3юr9&;nI)ZUq_v 0?jl"Y9"Go[1!QG%ä굧%npe^<ͬ?rGcOtpBkvٿYNPPˠ%u+u(TCH/߰ g*VG5K5Sʶysxړؽ*]5YM]9\j> x: #p&?P(+'j{дR ^r*4 |SJwQbD㜹bl!UleNp!üכ\)uƯނ§Tn-]k]US7'3n2-jN2 _fBAiɡ=$Pyݐ脸;8\[{>FLlTwSQ8{`z]\z\L^͌(nY_+ IЫt"ZT{xDXy;<'&-l]g"Zg;u|;OA(r O_$~ycdͬ=_lgwGӍ%pײ%QJXCiH#ƛCu eZeLo9u&5]XV;IrߓG:r"|M%݌~vTݿ**_._5s\diׂ -mXwZԙUe5♯{XMb">ra5]0E XDfM,W wJ=& t 0n5 z=SmJtAvףU@)\_t?{+#zBLA8u=&?6݌Z2ВUd~TF^x!>EhJT diz1Kd sOl/sQɎS` U =.eb$ mB4pkb+#";QSbV\HE۶Y:^fؖ|W. z+^)%hx\ԁ‹/y}_F6DH5.f܁dz#:V9J4}o4|{hWxbM]Y EUCF8E ?/ݻ;Fz (#~Ҹӎ 76lsbۋEX %IG[>~|}Sc~,F~,Kϝc_߇'Ψ0lD5/IPP2Rc7IJuaKgWn w{Nm{>`-,Jya]8{(%x¯:L&R^k`4 ->;No' U&kb`鷲G#c 0gsWy_F< ȶٱC03btV0.9.x[@iμ̂ c25oÏɘʏ?h`l}nֻ=jmujq9#V]w(ug>ʩHY^?QSQcTaٲa+HI~*y9|oh%j}cA/1zLg%#zm[Ncq$x!W[!쨌a0$Yk[oA+5zZ%laB]A𿼒5Gny!r}goIKf:xKo kYpR2$cH,75۰$WW) wڝ2`QAqQ(X-(\h~t6 s( ;P(:[E8h8K})D6~6t.ZبMSӣ{I /g HƗȅU4z>Jz uNUod0 2OO5AM3!ϫD[r+n[<|]iPK L1kL$G%nuvola/128x128/apps/ksysv.pngUT lA4Qux %ZyXR=P3W-946lYcVؠ9 fUn &EqLKZYY⌊?{]Zݛl?-EhYu,hջ+UuCcgf?U WqXp|8 '}(x_తpOck 6'Sc!9)µXYY=| "$ez1ƵdơK <;^яkjm$CCe`ؽ[F igg$a"/y{W#_ki yM!k8e kDQdnt@%JKY dq=y k¾МRp9M# Oƒ68+-/S rp?/̹A%)ncD̗H]6K\X׀mnRf ~O/%@[=enbFLo?Ջ4n6BU`eTW'gJ$ߏBN? 2Cu fYa"bmk{) ٵı|t4Eob'j )"+__7,q pѝv:H{6ݺvw_J\`n6(R`FIm̰'h_52Y]\ v澼5 }m(^YX˱Dk#uʹo $ io;EH~t?2PL 8{눖TOtDGyFAK<ɞl߂f̣~R,E'2ܟ tA{5N4}0KQ{-uJh5L"ѦXżXmF|k'[\d]9qW{U6ClM^-3ZQ{|ιrx,0xWB$_,Q*]d4ChY/CO ܛyw|9~n( =y# 3\C7-7 K׏r?4? jSL7<5 H79&C'ca^@ڦi}u(dQZqCԪ5j9Lk?tnd=S>9_|u  ܦPUfoKtiNDcfIkJC[ #vd]!'~~)O1w&l"-u,C %~E;g lE/_E)gFtEurn Ptkӗ )O1M<Rx1:V/Z@>祈$/ ufP Zu3w~@=p-ʲ5~^X8$=Ȅ]Nqr.\|~P;b2J72"2^ /)=OY٨z0-><939fС_W]2+ͅgS.Bw2v/w.E-x''> *{ec">;9=mޡ# SA{fOZ+QKClv_">yyY*O9Wd0<ⵖᏎ$7d<7 PUSaaLi2@Ga͢qXLGIqa2/ڬ!2_V g=Ċ 2)OOS դ<[Jaf3[K! 'Kt 9}X_w yrJ3k>}gj7, *Ze41ѷpxof(uDJ/r"$H#_ Hn~+\q!C+FԅН im9]qˑH^4}) kۊtu~u9>r'ruډ)ƅSs m(ͬejp%[_fKċv̩)IQP=j5.j>0lDDcXug;hkd5I {zuZ(Ťc@L`M78q}k쉠Bq +虆+4)+s9#6.Od$ª/6+?v5* ˂4;ů,^Zbc0- kqv%&p P:oxZ?A# TUZ)NH$}ӦMyk)sX46(C(H#$zv#[N3 p(ƘPj'Wmmc5ƼFv1x1/N |H&ygIb'///&299<4Vhʥ39;bKဌW-x7nXmؤy@h໊kX+ܟb:uVzFl1wCB_ 6J S\q\ tuVV8Do=p V,>J0u޽Y~ )C%́QCsRgX#|Lq(HMMo%c/~MxZՋp殍x1A>zjO|-Չ 3 ?/~${_1BX Fyv glX2o\˩=,6zvcXF{ ȝH^yǴW3 ^K]lB=15'kEn\Cf oj/x5Ff*":dgs[E(f_Z"2!*F>~鰲I62jZ^t~~gyQa;bQ*wf3G)p&݆Dɽ +Y@$iOZ(+޹p\ 3һ/[nv]pN[(&ޱ:&a)uXT@:c#U18DZEu7(4 (jH7ki@n".|u*h@Ps2?t%- +ib*gT*vcHXTӢlbc`aytShp0w`xRle.Rzb~DӼCPൄR"3گ@!1F(w |n崢@e}73 N%e5jv4t^üKg.-$ xvz|u {H9O^杇6nZ'\O dRfT V7jaBECK` @\o/~Laycu/Rk8ppQ꫕W'.HW>ABWz<͕Z?҇gΑYrE#Ӣ^D|CT_`g&.TerU4Ffj7BN< k)DVsb zOWV?pU~톾V_9\iK0,vQ*A5iW;-go>^纽xFղ05k1Q5Y:r#XϾ=._bx2ZuP x4>ȨFDe\}ońYKhCe!QگQܳn`WgΊ9Uvj8Fl4r$ te 4F,"Zj%++ʗkc !ly{Wk/Y}b z/kh>mq/tx 9c\ܚy7tK?Ջ(Y92WC~)I)ji $Cl2}֧L7 Ѵ3%m\V1mލN&*$έ,Ϸj:9^5L%;:Ld5l,{aH?v`~y=Yi?݃=dɆ(5 xW2 nM|^iSN!]\\j$8wX eo蘋]Sjϓ^b/|DvD[EF9qFj;S{/rx4TJjA.kuL7qohPs <DgN/yP T*`zC+%%zZ$ v}m1ǣg$XbWZ_f>dyDq?t;kqW aX (2^9qBRm-,0i`,4>+:?Ld$i, ".~%%Jc]P rD|1:y+^$Sy7GgOR4)E bvSL IˍZ1FP-"ײr GD$ή_/caQjjd;.XN1t|۫=מbiiz_9GN?dLMx7iaU)Tϴ҂PP4g-OH={Xo2l|UY^%T&w&86Rs8ӽݧ +q9ɀQA; X`o[$z}z^^KW" H$00mxLs>0_z\« t"Gĉ E?PW:dz( GOۡd)rty}\..2B8:k"?ҋ"U=J$-UN{&Nu]ڋ[} +v$^,@33 7%#[/Ņ[qR#ĥl) Vhz%zk]Zn eX{uq:pϣӄ^,\yYwhUBsER}gBN/Nx+tF Zw[Tp`nٍ+#H%("}YsP\#=JɈ$V<8X^ÜG\̩%iSWh.ެ!cY\FNKnTuLN[JF nwIѷ 92b|,rWF@/eNa\ABzbfwxZNSܩ?Y.xGyi=fG.KѾ'MRXX+jW_FYSsUֺs"{*пT:ֿLڢ_1 5;:6"|F.-G]jFd`` 7^ʾrHsO "b@x_ذCM<*/xyRܩy}pC9`aE>o['MiVD$,{(+CARsDz28xĵLkٯ}z.\`nA#6L~ ck(+5Bb)q`s gJ_u|v"<_DzW,57:Dw%|bzM(15{lMSX:mP&;0.SEp ,vG㋠U-_νZky5FNעLYK̦ᮢi=F>pjWL=E>$#J`vD|ZMf7DݳbmTAi-E;owG h ʍHߴE OS1]x@]UE|4Ŷܳ¤=&IR^^d Wy'>`y>'.ss쏆s̫`~MP ] tV|`+L4w„OL$ՌRhTKRʶ"\ ^{PK0spܽ!c$`:=i*L%kŸ,wkaX=vB5ln;.}dQVP ^IQP(dguFZ fF^XCQC?sC}K:@9DBSfQ[S&★%'-/wP-9l .M8KtD2ȔT+XmYzd {٭OCkQ`SP(wEi?ƪSn7ԯ`lp{E"?%>96׸`#OmYR:3"n/8񅾕¤ב6-Z]-;W9(6dH46>#s5^OQ`2m7}l&1cNWO|v s>sPxNWiCչWUbŏ#{rt>ZQLQe`uzA5G_aJsajY%ދiK80i B{E٠6^,YdCs[kpV ;tbrljڝ_&PM =zګ~zTX!Cu52&HԟSo۫ߖL:$SK̘SNv<|@tG a[\Igݷ(OR A (y~)URzZ;p8oksfؓ摢1P]so+PK L1zz26b7 nuvola/128x128/apps/kteatime.pngUT lA4Qux -ZTRLn-p{T#Lˆ5V*ޣȝe;j8˕-m2Lō ?Οs83yϽ  `{{ "Lkw 9|;wZe~tyA![XXA[֒;zglx}s#ͭ]"I/27ݑKX.8xƫ D1`J!'^wwwwuiBNZtL? 7#? i VV7SaK[#8#e }[QcI5;D?yp0A_U fJ2wKEq嫫@9a(|`SL`v6Ib.^bߵ2ko]\z̢3Vx/ǟg)1"_ u}P\ǻ+Qc- tg(׀ 0YDrŏ>}:^rH6F(UpPo&Z"KReZ`Uϴy=2bLk^zrpn8|~xD\2nC[JT'!\e.ea SpbۑXC`XQ犦UAnՒW|̮t4lP TҤf q%Ϸ_Q9ijt S";}ϓmI:G*7}G>/mݡHmL]Q fTU7*I8?T/6 [Mc)5nV>&aDX*׏U'<B!UE @k~c`FwQ [DWWWXd ״ Gj 3]J(h7AKhP%)}`;g3VNZHQ:'] E%)̫UZ[^ l&`wNofrj+$EkWfҩOmnF{:::R/a7Fζ}.2`aҭX}K?|@1pAK6#ʦvO+Yy" wg#=8 K7!rupx6Dly+~6R y Ϟ\ߞ}ڰt)okrb)`Nr"jq 툼/c,׸7dʥxgFy`Cc/Or&UP?/'a=B{[Z| I"%nGmoOe- ,L$it8"ffv&xfrY;ː&Şk=VwLԶF| >ut+43DI249\4Z$:>Ta=`Ȟ %z*@G8=їLC9,l5>C79߸񦌷9 1{+boWu!%ޠ:k }佪YczqXd_ ua S(.6 ƠG:0h/xF1Ş^9Z/>7ݠWUb0635w Ԗ)-E&8RgмK \`al .Z9,bі8e2SkJU9&C >70ZTI'{;HKEo eMV5"&Sҟ,Փd2O|}u.djHoJJ95+ӤoBRNԉ%>W'B{rbd/;y$4#vLmUHj"L#Ю;t1Rx*#=6:ǁ7xG(7c4y kYjy .^wt{o'`On#pO/|KUģ7{y7H^5Mk2_tZy7?qN r^|bkۮ4 aIV3<iޢ8^ S-#)-zZ?CMK"i !$/AUD)}M-B"ny1,-slXTg+:s 5 [= 6qh)wټ*7#!Ќp?"N-XO%:h3r Xct޻σ\7,k ;Lhb:g!JJQW 3h݌nDHxɬsxA6(F/Aj(AƝ z}gY'O`1 C9z.yB4l1.jTVW{H#}`22q!'lķ.[3wSk_kk{M_ hdʒ?1z3ovf.zlZwY 4ٜNE[ZmA0X!1~6Z6R>"TT L_n(B'OEzz.l{NP5VEew-1bcl<B5=T\YB*w+zS 8t3DUMr~`PUC>*$. "qp N.fjڊlz>ha@V1MOen/'^ɽˏ&4B!NI~R=NFB~`|7i[U<"ಭL6ϟ?Ed zUBۇsEҏRExӮ F}{Fw\S$*w=rY)K+dYkK2,:8I;wؙP h~,c0SR&V' -\]T#~γ8 fJ=<)P\|z& %Sp=c?\r[4ld<:A#$GzJggmͫRotQfHz]wTR:nCӆ{<=7b"4orWOoE8~-ȪF#>%{yWkUnJ$M,S ;*\Wק4l! ”^sW?KG,z+F Fg_v>>K"7rF\&מ}(^51;2iimd4hiɺދcX |={ES_mZpU%cдThլfɽq}]Ⱦ{x~np\x+K*x~usĩ}WVLexV7pQ cK(]}>>RL$c=z\ގ^fIF>~,[R3uX0: z=_٩s@'wސ씤RRmShFzlΖ%Ӓyvk.}%]XƑ>09cEwfg'Y Ez]gn{5\՗8uj}a'"KOS< YdMМ֑^/P nk\!{a}9_7qz=rXnf8H]8]ig]?0PoŜFeZsһV>cN"KtkJ6mJЌp6B;o^FS|ޝ8b<SZj6O NDѾAg1[FumCGC=:!;\\@e0lxhv'VjILZ.w&CFg pb!oXnkpTu~4:Hʡg##DO2ѹ  T*}Ró3†ɺKS{i 9TRT"D|FsIq{O ߯b rRvU_dk9SR`æxgljv{Y={ϛ l!~`y}bn`V8$(psLܴ{gg+Cl=jGz ڳ:/DB+I9J脏"@X|jh\BۜXݍ\Dy<2}r8Vz7LZk gk,b5/hGVDGЩ6=QI[v#w"Ly;ZZ^G4|B8AH{V7h\;hhΥТj 1_||c_?n:IN因=G|tdlOKwn4z]Z̏H!\:!41cbvgt_6Nln'0R{hnqUѶ-'goE2U1)ݩd:&( ޽)4aYtNĄ~tF!g 8O1J`}w(''"P I*xe >_/k$ Xaɚongr2iٴkE'ȐϹ9) MI}4a<W5PddzjMcaLWLǛMag7ƴ|S6q6:aA@{NKÎf@߿0X1:D"IܠixRդN˸š.a+rmkQCibwPl̳RZE?nVƙԳ$4BM wg>=}Ef[W.pQXv UN:òܴIQ?^<^\ʌ{w9I4˓vq:ֹxԗ]vIvuxyŖ4Uڳlz<.ɮ܉u<|O\ a~{ݐ3/A =GD_ːߐ}h*KdQ"k &*g;2 g%iJ,atZu+2ho`.fB'xPAu^emP)qi!ZDL@IKNKhSVp t_vUpgN-<$c_Ou;B,9F,^~g>$6+jS*ޭ}0PC:.|3[m wDK^SQ4_I&.L5v&*'S I;KtmTya T4Ĥ|?ϝiI7km3k ``knEG1K?{0t;6_tX^=y>O-t_<z. K^2OqLڵKUu@L">:S8e NЭ?fz U}(T򊀩5$kg4?Xϲ^ԋÿx+Zx'=Wsd5uʀD{pOQP㚅967ꑸW+4$nuO6E4G@( B\Ɖ;sJF*DX6~wz̜6I>;K 7HJ bqW1ְ碱eD[NZU6䊘FoW4% hPoQ=gol?Yd( [ӥS3 /w>ʆʜ̢it#o@XNpo?.Ȟdrݴ0R~jԆ@1(Z0z׶\'+Au1 0lF}&As(u؝BaeEl؊~G#??ԘT-eizWSi #ԡ/Ba;7+G)@ߢ"lPPe{Q  z# NcKt}>ӿR#6Q#~orrπ }&򒎺C+Pޓ(h7`5$Y ;߃TH@' 0;G3).NaEaXQ-k4\^Mb^j)98C|͐1ȓ' i{D}UHwpۯW*'~͊Z[F[om6wqQ4 hu)^53XR, lŴ.>l) mV-3[-Fh{^Cah{;N63& ׈ USfD(A:4ZQYaq2T(tTn3@iܽJ)?Ζ.V*]a L +"!P6( WyyyMЉ󶷇MPwlٛjwP-)ayR~? O,Vv9[&xS#FRp7P|wE_d4.%h{K8C@PCǪU%%:0U7{ql\ zB4 c%`-OuJ}:ۼFGY?75n?lWHajH@f8sm?:{Yy_+W&>aQ'TPLFs&Z P+-sܺ<+CXHAf"p8?2)6Aۏ([5}M1Xd=:n-yb1ϐa-=&'yߪG):NꄨV cG#"bW!쑐Hc쬁Hr~B&o96RbsXƮ< hyaA|~4<UЫWi`edCkBGҲ#F ҷ)j%wa[,X2z{Yۋ^\/`&Z(c *pC/X0 {9p6wL"L?³©FIQ gf#M`f eN|vs/R c>9cYq T+{ǻ&B%ǃS;?-{ vC.ApGPQVgyV0ø/*]ɷ$i ԣ~ l%D|W$ҕv 6&eK[<| |tV~'%zMVoy/z蘿 ڻGޘOIAiIU&1'"ϱLҁy@w-̺a|qMsAG<1,6]&j/1TML87ѳ2KdprH+1}}5 3Fi 1Ous-GD~2BQA 2WU=- o;qXUjU(-u:{%AdA$NԁN+[kX}˭URu2ਯ#ZF! _L-]Q~

    sygJ:4ӕx ~ªk.C ֭4,tMޗTKd`;$er95VQ^g ƽ̼:֥A((ngMKW#]l?S3Agrɵo69\Hs:ag( -@ހ.VsOj32_a<.q0e+z&j3Q- 2U7wk E0Ļx{rR'͂Q*V&5t:ڑUzm} x غ2צ,N21uF]5i7.+3TV 4͐uB#EvQNNynJ K8IJSݏ*jܡLJ;lL ?hL"pܞ9E8WkCIՂW J pxAA&'0iy,~-&me#[NOe@ Fi6_Ugn&JxzlF)1q , Z|m*PQ(hvH;rWR!]uGL 2\ BI vQr>(Y קH;b#5?ka;/[4Ceŵ{([5xyy܍&YI =40c[! " /pG1횑r M-jjjm?ӣZ8߿ɷU˾T:ok!1%;̄?nU7<᤿ogcVA $' %zB? NI` OVxr SƫwgWo";d5/%B?tOjg;!.lcp י[Jqn]9.a8nhO|pĖKHT5'xɢ{! fV{2"A9% ޕb C[;jm_~<ۥ4~8P@.(m@4V'{Ԣ: . OR9)aooHm vWA Rg~A==mIMs4U EP*BM^%wXtf5WF)?r'Vvv_j]w.W僯70jEfk) EV|.tv ArKL)^Z*Wv~1?5Ҍ 3K_sBҸ5_)zƙ\O.(OV5˴,}yYxd8^N tۼ?4Yʿ!t8ܒÚՖgnȯ+ƒKXZzU1RRUQ ]<܄NlϚl`i_K|88?CR /O:W QĘ\C4/dPaݶm;ڰ.> "P=̢7\A3LoxK7$CJ"QUĿ -s,2m6t3Y,41K4]x$yWhٙ^8:oB%quh:=0,Qehy XxP လȗnDƶΪ4A)CW5wi&&,^w/u ~Cu-3#$)3;XG [s7**C*$ SsWb(5 gΙ~ }p^e"[,CH0@ I}KC{f^6f&6 Mt6exa/ڴ:1ZIx<uΠXBQCPe"lwML67[=hai.lzFڿ^b̘ u&BS?6V9] 8YO㷗Qn\ᦢv/P4X [ F4$"Am -$:c bgx$BB~S4[]w?)]Zu G^]Hwi:IqhT!$e7}\px6Ԫ3Q'YD5+[ 5˲4c[+R 2?V':`V%;բT.[WP5%,$00Zctg7ܫ#Q>V12jTGN:5 T;Cq>5:|0TC0&9 z0׸‚^x^T؇uQ "aCYdN{[GUbfS65%B%'3W$Suw>zj+ۼy0؏(5(vZ!ۿ<3$G_n/qtV'U\րYʉSUo~o-*KoFtѢ0Prj gj|*#0@lNiR ;~bLR╡/'^(D o:j|+ w*{}OvTkUy[(G! L% "Ȃ>1]GEqͷi:WB>u8g ̸F׎PwHZyb@"/הH֣c$ !W 8s:UuH. `;3)/ DigА[_H~ 71 l}b.Uf0 T`O_o Fx골{&uN ¬ĕ }wqŸ[X2L=sjkJ 0}OXYKJ Т|w. Y' &;ut#W(O$ k5/~ؽZ$~YRm!z'ֶm\`{a @(%%wf*pK_J(b51*|B0Ng4G(2MI zwnyN:RVT~ (;7ƕk%21v]J=]a[]Azv_ UGnҡsz={@%nlή@v/7 GOUC9x:ؕg{q$^.릧'ǐ-F!"J^{W$n)ɧJNKJm/&AZd1o WgDi%!Օ:W)QƉI1W #>.[GKod詀ĭ߿N'E*Ι EdZ)ͺr,LT=7Nگ^0W& $Cag'Eu'BЍtщ ֓DuyY@ڊ:mh=Rg$1E~@%?C|Es{mJ# 6ȏ{DK* Y˰W~wj=l KKpav.ĤFفcRM,ul'@dG-ުF?{+x}{VhZ8juN0,Ѻ8Ncք2s[䱚Ve_%~ 4"T+• fM8 3;22S ;vkd#"cG% HfC:(>zŮX6q3j1^pid#]\Z/Kx#W(su%ʹvHxԑzdeQOӄ#KVGY]<Ϧ̬};|4U oo ~<٬3 hCܕBf\veURM[.}yLRc-iKGk/{)-hsװb@D =/x؆y.l'BOJk[UMf*=hҮsS,D}Q:u 2ܧ3O9Hne)vw.s9 " L)o)b5%hrh s:WF։+_;`KKC1B4 $xE4[l|#X\ a?p$"cB\6Gaw<7 HjQ ܫE. <©B Ґ>211h=r ̺ylWdZy|)Oy][g!z߿-在E9qnL[ k֗.mU%1;/5e|2{Nz-_\X,q#_G JY;h(`=DkGhwPNy[{#Is;5lXO\k>\3X4qx32GPJ[Gm^1Mzvƈְ/aT,SaG~ yתk烛_½&ﻯ8B=3ʭ#o֦lG~11# !fM! Q Y,Bkۨ$f.oZ X_i!M6J58;3 11ɚXs >k%w=;BąL\jwƸ|^Fn?sL"7A^/\]sz5uh޾Y|A3BZ\N}Q-~/+*{V'#z$~-A&G;ѿ݌]Y3xh֖{>_oW4VՍ߼' ;GYvzmh(.$UjW< p~bk#T {?Ǝ  zU v+f@!URDɏX܃yvM1ƭUaT.F܅^?bkJ\#Hu>ΡR'S7M/n,j3o- < \Y[V| <ͬc ⥀ՐGwNA䀲+yjiLs:Mtl*h49wr&dFv?lRzgP=c?6@4>qi]'(=HU,$jhv"%^nCj`GU>hpU-Z  KdI1q.9ҡ_ B }僋 c6w4eDnBQCٗ%+ 0#}vu:\J&`{@j`'mE\GB IlT~:̬OS"Ov!=$SCn>:hm"Zɘ'[!K d쥴F84Wʿ ?J|S_י+GROYe0ݯvkHhkվI* ԑd%^z\{e5b\sA>.BI8a@vF`a0PYPt Y< :tرPEJ ts4o0y.mJe/Tq~bS .ƗGs:Z<IP3/ICfXhK&#(zWaq@e-Rňe4ag@ SHyg K*1@cԲ^G`\[xg/\t08A6ܮwDŽ2Blo}j`N`}0UdxqlR!.;9Nny%G|Ӆ`[HjDMvnFh _)=#9;N:-7L8DOBnQ5'ϑ;֤݊j1n8I~dK}Huw CQf,EKPw&FDʦ릈gd Z`2РU@K$YT']HN] c£a<(G5`᎓._R#ql q7DޡGߥ$tʿ|{?1 ]85+q/Lf_Smׄmڔ˃TcuGk/TPƠ|( PLK?, WJɈ?s֞_!Ξ _h򳷅~++#~Q64$X= =xdH*|xDG2SW"P_bQ0DSgZj%:{vS#=dQdnVx< a8$zhwxB i S&28c`pWpkFx^Fj,+21'3y8pZLEk ۡ m=4uD@` g6bS㻘La}WγP,9SP7,;M`T{WԕM%R3eg9kkwy0?>ۗ ;I|sQi/8th8G@|UG&aa+3be2啡|f+A%^ TsdjLMkY(줦8SE-u~A/|mFC6=y *S}K~^VP:j+{UPXy7*C،VXQoq+RCQ*ޜ(ݒW݃]wK(FN"K 9Zn?A^z':ωp#8c$=0n ""@ Zs~(_Mگ8'yigٛ8u2\Jf -F>,ݞ&_ @a`&_O)uIh7doj ;NdrPv E]\—)K0Eݦ󪀐 XΝO3ҦOCW}fO+Q`}I55?Cde^EYOb/XCeCG-i;v Ra8eq1xR\ 0Wdpr`0wj@mibTl7!o٦~ 604ΖK@h"xcÎS=M\ڟlp[yɤ{,̒i/ACDk˺b̽4˓g}G2㋄?ڶ*%(Ro[RMWƵZ\(:(4wBNo9k;`+;݂OhLvn#o|UV.W3@Q .bu9AH-E)7ICo3{ch];r2B =M#z)O~4AffrQ@ ~ bb]f/g{WFσh[Ξ ݙ o/̬o#$S+! 6Y@݄DK(@DUWz١,B֒߆ DT*b"+QmF|5%:Bo*w9OڹHw,:%+D-tigcvs"ifDi(S D,7/zfK)PoJJڵɸ!  {fd2 -Cʝ]C]] h2w> ӐjT &>´]ƀ yvC&X JNz{>Ub\f 4j4B&IܟMN!i~H"`T2W|#0$P>mf*aa!R#N8" eГ"㶑(N," vk/e!͠[Nl71"TDHk~ FvJ9W'34~6k[?ugEB:9yLOi/-?K42w}┲YL~pR>W欳Caє#/hMlإ_%劆bV0]r۽ӥR]ӎsjQ*ᦊ1oɃgȬ' rdYha6< 8#Cy2LJ Sk_hK,fdB8e]y@*ݲ|f"SvC=]+9򔙊^0߿`RpSiMN4Ƈ&[4m |Cj#e&1iuw2|E,u36?=إIe},d k#G)sD(Jo=!J?fp2A(K|8sUH@a ^Xg?8JrwiIX 멓g.H N1;n#s|;F3:w({`"{cʆf:M4zݕӦZ!DXb̋{QDҿS̯ug3>hᦏ@xwL h爫o5kOoM)էOAaaht""Ά)P,ߒko_VB6*z9A P}]FyUwc ;~`fueE1+:5ϊHX]j^y{2"ѝjA獦T3gvIE찡e2`@ˌ1'@Z z#]ȭ+O*\XDf)/,p6jai2-BOzjuq/! 0z MU,r ==+ hq.JMWF~], /DEwm}ݝRN!.Ơb03j3OWOaWhuv}f( !p=bxbdCyU˧Od')~.'aN ҆"Yw4wR73XՏ XR=Z6$|~L1heDЭ@HvĎGSəT y| C?: "nDP<"U"$H/? )?6in%ᏐɼJl6o `wV v6 #2DYF\2&XR>R"inU$nܥ@iF-qA۝I9â'"/D&`K~o\5 vLul(QJ]u4~gw9o45ad%N݆&/t_,o6M7.붞0 ɛ{~7Gd/'"CMZVtք^'.:}9?'Ӏ`vum>x vzC3W +Gի ܏ o!n3@ %ud˱i } ͖ %CUۆt Bkc 'KߟY;N{<NC7, JYzPb@hi\P4PIsG\):aApѰ)gKȳddH@FX@l6^#lܾ\H eO;\q'Hc͠CA'UƐV(Es\Z|XoK2$섒ohyȝ501(1?|_vfDľRO6mm- !Q?cEw7# ,C8|y5qC$D69>?wt\_TH2TIW7ϖ͗Y٥.3ֵQAi䞋D~G>㖺t⓶r0j"x-+ؕ Zg lscnTDz G $_է{ˍ1tWJ<7v?@zQdk3S 9pó#}LRUOd ؑigz+Ceo.H3G U}#JDh[\B:8"mkupO6TP).s -ZNSP۟=e[,Dϟۓ(Qa*cO߬I4log25z}[o7|.o+:iգ`n@vGjݥAQkpnQU@5]sGDOV@ob$Z D[&.C x@ 9`uS){դ^v^u5X} t9)mG{pϾJ[ dB* Pf=jSeEdAa|Z^vJ\RQ0L!]*^53M'ul!g;BZ'J^@uKEztzsg:9`d֞gDM_-1;%z@M#:B@@ԭ5')5c^Xnr89 (76˅v%gx4TF9A3 8Q?zQ5 0ܓXy,g$P R~pN P~%0 wޱˡ<6eb2L|.GYVk\dد< K\>?vJ ?7YsOY?٤lwFgi P=!n> Ra"f9Eքᱭ4b5Vy#zaRш//[?sVD\~MFvRFӞ@iӞ+CJ ,ToLJSGkJ! &K( -,lmNA;^p`'/ɿsFG*VV#D:yP/XErSUiVU}/LKn)%7÷r?7(^_ ݳ; F &yjqHB6 + hӡτP4Wm'Xn- z6pH`^aN\>׬Ռo">vdܰ4G4Ne #$;ImW ݊y ~d#IԖ^Yh/'u@ܲcp"ȑל]8qUZ'Ռ:޷4~z/,ht11t:kΝRO82 #>$"*-=}pӊtrpF87x t-}X *'fl`$=} Z`o`{\axh?Km}LXM:^P1t]~s3< M=yb=8-0[䄦ձa!OETI? <{t]N_irr>>a 3<ي8JpU+q3-Z477#Gy=?-,4ofA8p z2=z47!hZ4>5,|Oyuhml2d~wyuOO"( dB:TqDћX 4S䁂| f>;%Hs"wwNj ~'_%O2~<yB΀QQ!4 l"[`#ImB|Mǜ20$:|X\5-'Wi< sü"cR;7l*uJNK 81_{EOcZս'PXmMYI~E0DO123>?-) 9l5gR~u*ok; h`~z䁲xjsxHA3ÅS>AIv 2uu]}LiombCGb\ "ҜfwDd;O 3kP~9IJg]R= , 7VZ-͇KS MUݍOxT^f/Ap5F>OrW$&Hl91~XB"ѮoW-“9k\6>T"+vLXC i ԂD]0~$oj5i8 RIpm’ {_~,Bl)7%wΣdNbF5]`jmym!Ѹ ɒ8p% WzF k_ڹ>q"X, 9鏂»ȹrPvDKÂ"+IIf7h:GBDqRF1_h\#g7]+R6ѢUfYgnQ7#Ui+!jW^BD"KD]R+i}쒚fg>iwm/hx$UouG=T5p`Vإk#XH1ݤc䞸tMv *(8d]Lu#6y|<)Yx/@mܖ,uHǬRxX/>/isecUj뭨 Z ^`G'%_YYUQ?ͱ /^.k1J%I,rV;4bN秊\ёl W趈2byfΏ!E$Ds66D3n.F]17ϻ1-7K,%FYZ[2Cŭ! .n!gZݻip!KIi?O ႭXo[,( BbdoȰۤאMK|5RZb}J?>痒RJ{MPvl2^!0)Z_ *d5݀ͅ1FYg^0u?]#-j) v~Q$((H$8jS 2Y754 H:fma|V'*(eccm[PߔM "ˋ@Hn6,sҪ~o,TIՊ ݧsנe*=kE#GxmLMrS'TeBJ gn !j^dH5Xq^%R|RTa' Mq=$߮O+E| k2Gf`twr/T~ݳJ\)k@~y18~SHՕ]cny]HUlas f0q!V8r$J"6^/!Fm hq?j4H5L8$o,o R޼b9GW!U3.N{@$2HJzjS=؀!Lij#3@`hN@*H񐩒܂U0yIE x82FfWf9^n :eؠrYmZ#)zݜYNu t  ۲M=ݕ31oi\ڮ]מx> %/g ZL>!#()Pn:]wxm1iqa%4&8 -"lk-aw"ąg=2&5A6: o{re0a4lml7j)H 8++H\9 ZƼpKB.ecD`%aT"Ӟ >')1zFrWKIr8+Z^*e=ْ0f؍| u9 I%[P&V$HhcHDB>"X9tm̔=J[(u ni%ۢPMO#"|>hG%dvjW7zq0ߴg4}%g<s8*"0GmŦs &ǞߥLMs &bIr-v8w@x@#N4%&@e$O{b/iT  t ZCVH_ƬvK_𕈐a{{a܋U;o"W*Bv] 0pK,T*+ 7 K|6(M{y¥bD9E]}3|;^"?e2T伸Í%UkctQ.eoc~3G v)W7Dä-K}KET~z=oDaY=SDXqzu>j6\=-}Gb鰳)]QC\ceE|]X N_em#?J1= )20hu}]\NA f@PT0G]eFQLY!^ b"GiBfPS\"Te-ZgU<~\Ά(\ݾKy3Nz]Lǽ23$%C#xp|([n틉-eJ\H$~Rj8,#p*]Y)4ғFCGàG-WC.I g,} _n,rwIRE6 oK~$V;`m#LO4د o7q{c={檜Es(󔼪죏pȣq VB.`88iFDmySATDL k#J-~Y Y>!i<Z2D75;ن pBοi<b1_A9.C2^G-Gn; [bhTFP8Β;X"B*n0at6e5J UR QB[J# %R9t>T *wߴRˉDgbErH5&1Tp̉7./vKOCP a¨cCx{* {=ѻ&B&s,FPExUhOS+aҘ$[E"r3R*e_eHđ㟊hty_[Rx˾AR`tևMŴe(vy 4.LcZ?d+X9c苝ef@ l+"ؔJD_jy))|Wf b"vtط5d/xpn PpsnJ,U\0ڭl[ ^szMAr~wڵl͕MS!UJ'hI(`ptɲH"65p/dB^z Ra$dvd-@N/fڞNuA.y7SO n#)vIpEZ{hNpDĐT *'F[GSG19e=.^bV7;4.IPz뺡ӘLT.X3Nq2Ku r$Xڒ5t^ SQOYUit>"E bNY,T1|R<6N4qP\O0r0\cD 16Ң^?&חWǧWY}m?ۛPņ3ZTIy[ =5w5h}RwS1oK8O8rI$XUf%˖D*'=d? hՁ#G`he"ڇ:k'Y7CzhY߱Td1I<Ii=׷gO Wflc3~9|!k!aq{q>j@|>< 'mOJt]WH@D) Q|^j,.*ϴ b.ܥ2EelXM3 _/6GzؐEٖlg^Sw1ekF9#TAT}-&u˛~UȇM+-J$x1K֤9u/"(<5x+̰1}ւV)S{jlYM> ݣS22e{GG3'#'>8&0ʸ["5VL <,dc93$Qe[clͯxLM.VF48wN84{wVItJqʓ̡t7mmeHUvt Kś ؼoQ>2 }`r_`H-x0Ui޻wF $$DRspovϲ@^,>D(f9H``n ea]"wzw/Q]ǁ?e#Zz$k1*N.@2Hϗ|kWfm@MK;br(MlP : }N NZ_O_4R8{.l<QnGy$^Y/3^R/ 2XF7Y&dz\F9Pb (f*U.?`Ig,nxF?ˬ-r5Juʀ.5j gs.ؿ3Οɡy_}lA[3`@Аԝ(m+] #}΂!0aw??ֶ˭oօ4Zy-ne EA+4ml8wI#2Ynj|.٬NB )k_,M W.u C VFk7rh4'4}i +75jLHte4'5/,/yYw1c9Lˮ@`ʺؠ 6|5l(&W"xr|Z?fBesE\6x+.=zwK[F|L,^"yr -Q:S{ LuY1wD?#(9Qf[3>d|Bㆍ?iL6$x&lLkxP .*$Od` ,.\/wnk>~<,~=g3T9]:2!5=Kk6k-dW`wU/S.jjL}FߏhTU_ =[$C*o%;bd6R#а6-e3"5a_ҒeQ2ğ5p&c( |6Bjh;=Ƿ ~mZ䷹=,eY[TT7O:d90̥-ז>C8D{ Η3r[*l"S'^\=h?{b ;!Xn,-zdDq,A61:) i+d:kg8)e~ʗ'|mfVzuQYհYnZ9(ι5ygLzٔ\HDdꚁ6V@ߚ}G*~单 ' ҡ7w5J 8Xdt_HIgm*'L0F|Pc,/m2혲9 L8/Y >#"6zOoj_Flo92?_.y܇8vnd 8/ .#H^C.gv-qbHrN~mNCZYA4l\fwz9n879 [?I*ɽr=Xm-j5lFy:vA#K.pE a*E5DR_z/wlӼ$=MyJ:RoƤP(C_|^YWŲ '[tٚ_Z#9CeR,Pߍh526^|y_0?;)ږh#3(b.헬"JAi@LB#꒮wezL~7׻Rj_D{۰ {8wP^fOs1+k/&-|Sl~^׶ ,B7e;^"B[2nblxR?lirvעnU>VKZ~ &:JHfڀ[#ѬMo22|ԶuIټ:C*1(4jCX\4JB|B|@va^[dcϞM^ChnDWPZx԰0L`u7xH8Zhm4o͑~ 9|x9+?Ļўp;"V\MH@29F(hg[oAsCx?rj5,0Om5J3N9q/}Bm[۰U,}H#eeV4C&\Kk }WQCG(p?IWҟ C;{[ܵ+̌&-_keoMR}QkǍͼ)4y?fscK`&#GӖ{Ͼ_|Xyi[(DsN<&7m-Dї z'nVt \Fe(MசI3&y3ij]fIńES9^m|fg>UI 5WfnM~ejtj:!|k0<|[RiDҲ=z*yp@:2R`ClIY^,mU_H?@Wh kРV^ADV= :;WƜ%'_ N@o2^iTQd?aTWnZqS$wO)/qB`hag./_;`TD>_ٕ~}<]9fm :d9b:sdq@РpY53lz+ x0Kl[P[꣖Vn'qt~"j+0]AMy !_<+BwޣJs+[M9u*;X9WmT惵ܝ(m7q+xɚMDgi(2MA.>_25 ,lCܰ픈w8gxJ6^˪gfN4b4Y8 af6i>roPӾߢug_酋Y6;&9ի%%<̽S ?E-jB?&3:',~vȵjb [.Z~WJg8)*ZS4Ս!lDn jjV>s&*:<+)q;!.%Sg&8OΫ4];K@S c ! H Z8v ŭ)߁{cCLEvq.%l:]}_ (m#[уUQQ}INNT/y1<(a'V3bE-戜Q܋*.(/ClёB]96؄*41 n5V yԘ~UEԱ[p=3ܧu}R\?'EAZ!=|fȿ,{9!4C*{M-ŋb& L- ;[/ab*4PpvϗR ߛ r._1>?AMBNHVP-6Z;_ yrX%x+' %n5 eR?!W%D_ \ydޢ+an<`cpdM)[_ vBDеݏSt(VO_3$n^T>tc{Hc4E`*c1A@tp'F+aT>$&LHz3H#`=a0 uW 3Uqp'ZnW幡NA3ҡY+{r D=ۅF۷4M]Y'zv!X=)$uIUp"ρVP:SD(gm8w )rxnAql;GG:L ʭG/]2ؤ5vNjC*hx%pZ/}64\ U:%'SP;1`tĠNz:_WS`#tn fw@CS îR 8i) CիVJqS.'OZ9-kqnfU"\7`TW*[vIF:aϿ fS :K._V{bpQb^>> PHq$S&2CWiHC,!MnR3 +H9Є^C>mYpRpj؉}~/IyلhS*94͚K`/Xg/n{f%cFvNjյ]"'geHoֲU`JȠZ>/!ı9tO^xu*@Nʻ%bhN;[K͓sB }nR R.dDGP"ʫ:ѻ/w7;7Gg7O77A¥-8/#:l8Dqv faPǽ6)1"Ö3eTNL+V$K^LgC[ǘ3ٿė~PF(>QS[3q\{*6w]|ݼGWҟOʯO OOF}"]LJ>]pN;Mpm)85TE %WMD2k^LZx"9(!E26~wJ%I*r2SkCΧ,y֘tI0މE\u"AT VTP͠wxƀE;߼Dǂ0oRhȥϒCHy gmb%ٍ%i y Uc~;DaIG-X\z).WEɋ [$jsWX#&Nvs zx$풧(gob yQU¤ePf9~{gIgV"la7lyAާuUFgO\uBi##o-,M{lR0oNXݚtIR Jy;]j?YIM y_K.4;|ꏗX G|V3^wZG& e:mR~YLm>ޕ#Q`k>_Và=r3M":.3"|R 7ѹKt́|Rv|1KzHGooUmM/фnNsi)($Α (F|aHI%8i_@!,%RW 4ݿaӨygD4ʔ Jd|jj!k4BBn Q?-j*һ=\x燲wnMjL -7eWq¬z.~:ZP$P=$ޮ%E3xrjczP7s}ڄ*pS{77@_^3Tw, `}4rIW MpL @chl:K&MAn_F3M$iR&a U%IĢ!q&(߷CB> .ohI1gśbt7F7]٤ K^%Ly`H OV6nT 8y-[)Z>`c[~ωO:j0UMM)#Νu 6VHn*coF(M%M-*87o"̬j(HhSS;P_[y\Z{˫;M(wӁjRY7eYH⽾Q J*^Uss P5}^` hYVy(5Kzfs~:#pğ }P33*z{ub_Jg ^n orR5b-tj>}tQ]飸bI"La:<);vxCk^JJ2p=y ܗI'1`M\m9+=@-Z$֧>PC))ׂ¼[ͺ/|%Y4$+1=>/&&E ~M@DT} ~~+(;z [m_p!V!NQloY̺e ]zۆS.Iúh-Dž[Ns3 1܅Q9{\RܯѬbsoU~F4!sF>lz=YÄK&}*^7`jױ(j7@^kowPK ˧(otTUIVȆ &&˸{ 7K#~`[6:;ާeŮ_ڂ7A"V?$ʴ*y>?Ԑs& Ilhc P]6UB&(kXq*эxko 8ԝԄB״"Sהh-B$,ǹ (DH2_y!dMj\n묈hT*>rMP5w K*5 %ڸF[22vaSNz׃pxhEwWTN}1IHO!['u&=cEQ6•Rn/ m*(kVЇ]P:D E8_ּӥ]t! A v QytYcl2ɼ߄1g^0i&Yw'~}[Up0m DnA"Zv+Q2TJSf=}蹄m7xg(:@@]N|ѺD$ec`)jTߖLaQ:5Ze&He?:2i vI6aY|e-fN"fܐq7>i<[ݤR~N_``P3?Q@2.Oֶ^۬O n>W2$ ~dżo#B#W&BYS;o o[銲:A@dUD-ȸ<nb(ԨTrd|oK|8$:.1dtPuONVbd6l2ʘ! DYC`t;p:҇&ȁN4f2}&"S&rBp>(\IX "7jїAk3Rm ϔ2)1V~ R[` 2o.9A؎$rtkMy1}—v|`j7h/>p3 !Mγ9Cs`DOe  ~,s8@Qcc:6H;Nx l7'G?󾇗,c3f?ո@Z=]1;6ASjA? W3<@6M*Bb֋6n꾈GKnKҩ/dI}8(rFQ?2uf`mijOz,m4e#|p]¤K&9usZ|{.Yx~Up4.Q]U~Sk14R[yyt^᩸CϺ. űϟ'GD8KW^lާR\jRVA o82L/1;PZR'Wa#{i>u 8R?tbESk<тw_=7 -Yвgy0} Yr!'B~WR 7,Ɏ)izM >Zq9-xS(MǚNPvjI0n)lE-I)ѽS3* l.'K*2(?y{soDz W}$2wEXݣ™ 6\nTXHAUp SŢ`ovz c8:n "a݋'^_}"W$M5\M(ϤzX^#$P *(l#?t%>*K 3748G}`\ (`C%qv:1OU} J'v̎w~tLD˘hh4,,l l{=֙dx< 3 IeLX1o KI [[Z!N@'uQR•4Xס~;QK2|fyΘw~4NE'{>&?ұw[[˜qH,ZYZ4; d,0POE ՚xn1UcFT:A68\'& ],%nVPTom_+aڦdS9VjZU⻛Y17^7≜EFn}5g?(i(ܹ3v_/Rן\4,lb Vkz^8\\oM4qe'<77ݣ<ұFب: X݂oKm ӬiԤc0{xȹ~e):f¾s)yE1ݷ$xKm&lkӔݥY|[^D!LØz~ ;eeBSٲlfDH,6b'ҿHi^eA,i+x@<+;J<r{Ô;Y1= fvqﮑ*GEWj`]TGvmm1{Tf`9TxlDW~<+؈QS7HkA%"ӏmCd[Yi)Mb ID}Lk|<߰$BBR0¦3K@8D8݊^/@b[dҗ&rr:1գxΐ'vu$Ya6"@'>N{֏ҨӔAmJԑ!5[L u^8m,j.s_c=e1:=X6k+}9O% FI'2^.yw;! <#RW>RdW{7m )G[b$u` &A,<=$Jƿk mRƿre0-k#i M5t6WE\8;+`%fHvXWK^c6Ԙ'fz˰w)_%C:QOdD *W*к(##QsPձ9#HK8R(RXi^G4, _|H6qJ?PKL15h#$nuvola/128x128/apps/ktip.pngUT lA4Qux uzyX K.& kVVV[]ZT1ԔNOiaYiiEiIefeei0_<낹}}~gl^j**xoP'xmt mVќ5.]t=uGྍ{ 8{">C#7DF{&>a(jtSȍ`@w ``e< GB} / 35L֑vݫٕ8EH,eQ(ڂMʼsV@.l@xwףyWĞD<)7e豕l2fOv(CByf?f2{1&/x3qfrbp2dPDގ"  }c$6iC|Ef1퍾t [í??)*2R{,EU]9i㬏(1k ճb0n?r(AP *Wco[6U8u6F층jR<"ß!Ȯ99|t̩U/ 1rS6/lfkHxV]+܌l.6? GLRl/A`NT5_eHӟžUjawZ݀d.RҜ.&DNr?+ݏenRrV5T4ASÐo37 ٴU*yPps}  M%Z+ٯ=u1\P=EjD߅ \23ikf>1PU.Lo؍= H(mȗkBy{IH汥i{ݗLrt"rLW% P-DK?jj'jQ.m,"2}Or`rA>PNMC=u~9+0=biL`b(YIuN9b{o:i $S@5P%ک3B _}<8QwP WFHɞYuT{ 8+H_08tdy`j)ndwH|٭P6q0 s6qwl:8+:z\)Ve: _3l #gz9}Kz1A3gc8+sYWG"}v>p@F\-7V0&#.,uTwW+t@  my<+XIsZl[O=`h ަ 2B0y0JvMnI`X nZ2T~S="e7vjmp;<ڨ9%}@'-s]{6Mƛ\JC @f >aWЮpϼ2F/j`HB6|?(M;b:@K]ѩ?5l52,V״؁$Ir|̟ݗS~#w5fXY?kƙurep ,Cij%79QgF}c)>93{9Fp$>*Gn5a"{,Y+Nkן.eRPyQ7@7$ 3^ah{qʎZsX7` 9^F),"RyX;Na `c&]X5~_4^PX @YӼ93ʸ800ۛXjЌd)ܜW$P;i35/񆼺~h=m^:-]o<$٬_K\V â _Lb]Yiƅu!IoJI0L^!zy#2$Esأ cݤ*篨9Vb=\ wy,Ar~H=Yzf]'b,s˺ iLv>s.-}W"\ɫVY>F0G}v(?m3IXj eML(&J&C዇Zfan8 TjČ{&DasOA__fV/z=ȈJ?=KYlh*:= 9A北", w eUL3ģC:= :N4aM?_:Y8b}r\Y§o$Oݢa2[z|{CۍY7iԕejmZ,y0fp<4MܧO"C1-AO' Wq"Үs|ZRՒ&TRz8vB/ ^P-UNoX-R WKCԢWߍ!\gyjEӳ'0ˎn:Rej !wҢ J[N%:c\)zg}Z^/\4ܑ=W490&f"-g;pƕ,P)VzKPj0C TP"Q0=ȧ\\ڛuW~uJ;mèɜVWY{${#[-s7!s=U[ zxceDbi".ե eU@{NFp(dJ7OK~ms &Z~,fE*!rbRy  oGp[WuXe_GTҵF?a}\lv }M ryEPK&2ŷ>h]qyr 9B~j#ġ7 l1iOsa,G7U;z\y}e&"|S{dxB톶 0Š{>4P^7se 6Xgyh}};?Ae[iv~S)||^xuk:y_A ^B.ӮD96\+^cYhfśAJ*:T[P`2ٽ®Sz/q8BSLMT܌gjF><=g0=zp8؀y GQڤqťh¸,+, Qz(HJmbXɗ2顰>իPd}RQw)ہyMC21Vmv1.{L3>U"mstVt"zű VKTҥsnAyȶ~65 c˰Ѝ n![tN϶"cyŘ;Zi\atO\ŝ>,lI=ڂBL^QB]wR̛3L!g"F$;a[]Sva=Qi?*j79Ƶ3k_KoȍF2:c;41GȾʋL-#׿1Z^7zgG 1:ťqɁ20fF)azBveCEY,~sMxj"Nn5!j؂/=]YXEąB;Ffi*J`w4?~o&h1&N-Xw.!1Z!Y\x|!i5£z}bύ(/[d[AO$K> _28oe ޵-ʹZgxä/65sB2ا:[h;23~'2K˰^p1]ܤHLGYN̿0%}m. )ئbd+uD{_v lBs*#Ǟ1h~>B7`hk|Hx>Ct@\a>v#|L9:I]8ځLh1]0:I~Es)9>C |1RYD,ӊ8dT8X#Ah`F$r*.@u[XBMN="3T\ߑIetRN]^@"ٌ3n,"݁OpóSm\*uƨC-Fg>6Gq-¹Rh^hmлt}5eRV ր5Y+sEI{i>nՂl0G{콸}]}6zp͵<㋆Rb̯.Pc廂š2Oi$_qdUz/t@kkHvPCY+$)hEE o\F3 4{o zo[Xx40r?S^ew41GP"F ~ BJʿt?LG|n[^+v p,-f6I!3Ĭgw휿}D2 ϙ' \+5` JCM/51v2ȮzBP(=%k q$s"4c6!,yc1ϕI \ǞǕoY&, ( |mw0s\0H ]|M[vغ9}U / q`ڵz0xKt^ϧ.Qgy/3@3-4(* ':='sϏ˹wSu)~O7['Sg7d ϜuMykɎy<;Yփ%Z!$ݤɩ_zEgQϰOD첝eŜ7g'TCE e/OH7T rqZnLW9|`W}#x' %\STa1.y*YvCqFG_YXvqeƐ>T7ڨq,Ξ)[)6vnz+W¨HE @ ٧U}|Xܮ(+_I%HgV4R ͛p;Q, CuJs/L 0ͅWw!V=(ď κ=>Vy/ xO8bKPs'.i]JA#g-DcU8P|MU*)M\XTjc13%}}VpiAThhdMI㭝}oҽolGDDĘx D 5yww[K׫2^_"45ϊ;!Lm!!i@r_'A6Lʭ6?|83xx.a|_$"NAIO@!VI <%ҾnWqz텅Q7 /]v0'#+h*LhU .QX]A kZX`3W׷+("tԫd(̓;kSVxVxw9dz$A WjN㔬[T R|ؖ`p}jʇֳVDW@sx(ކaWDx+rDx8&N kÆWڰ 9d ]m[)лjwU@޹:vh}S=-˔Z^ )e_w>ij孩Rsb_yO51􀓎 -xqաP2iFx-?s =?C_".ɓHf p\񰻜z6 XIU \Ƞw unQkخPSưKWE^\3A:A`$WRU2ؔuXMVg+r2Mso˓JJJ_)D%f 5_N͘'쇠9V[Z܃VFӱ,HѰ>'sƍeNK8 gO;r4^w܌_M&kp,Snÿi^wNۘ-jjv=4ba~8 `戗mm4w14t2X)9^~`TT2:bգ8`p7e SeupQPI/^$$kԕG¿M+.ݮu͎^Ϩ<\̍\ *@X~͕PKL10_N(")nuvola/128x128/apps/ktouch.pngUT lA4Qux -ZXؠ(q6QTAEe_Y,T@QliIJ2z:fJK2sVZjq:uw{?AMFJM wݒ+ _K.H7:m`g$U\ {b"rXLH8hpdSq/Ù9dC,&qQʢA7@{QT&ZXӜN-8\&VsIV}ҼOwÌNkN%]Hыus4w0M(Cx8"ZXꐔb*O( 䔕)ϕVBX~ƦxYZX}/>C1͖WFGќ>@&OK{G:pc9!~.R1}փV)s:g/w+]&3etA?7H%D .`fV ??-&M-Gk-3a *]* `I<<8B}X oҎNV'jU!8Mx N⢀^8NYt 0F< MB{}ħ']ugK\ Bedp833(6%XRw(. 4r\ |W01Z|/o?)'w&iP#6uD5rCOpXmywh?H pYx,i~<%a6,]3L,5^2Z6g9REFF0'γ/,Z{|2[5h/{K;爌UUs?5 g X V7Jd-NTItZ02 S  _id֨d]Eo H[U냶M:5m!t~ʊu DG Wv,@{/1GxKR'D$~ G?NbnsrbU O(v;m˄6ZqWBLJBx[/-;KWʛfԋN+M|1C=\jc86 T7*A إ02{ g7]Fi`U5G? Q-<)W`.VV}x3MbbnRƨ϶hVhg !W󽸵r, 'fj^H N (*pβ6Yi2晣 mJvx8Nɻð'R8/: _ !%2>C )VNmPOWYJd^0i'/ #̿em>_3]Xqc^W hdkfjFF`&9:][x MLJC moZX?i$DNV{$ܰJ<+l寫Uϯf"UN%Mj%'h4;Rr_qpQcj -wa~w u-SD"%9}1fj8huoCug cF2mvR(*@(}}yTWVVaxBmtiDblfa˴M\Ҹ)`.1hvr);Jm)[y`aaCguUCYvcqqqkJpӕ .*%eRM {]1ڐ, #)$vf05B$7m#ˬ":e?Ru/ ?ܱ3a9Ōbiszs"@oW@ﻟ?ߣkt}uP5Q0n&Ϋ*_[NYһh9‰pES `º: +큳)P'lq܈sHHۄ9]?k:aQ˴qcH]v5 '- Yo++r-:5/Y7Z{INE(ld,$ u;,XBhYlΌ΍}Kh99a0'#Tm"ejo>>> ɲ*4"_&ǚ= y{+~E_:p>$M4://Z]0~-*`z,ԡ bM/ |ZM4ś7[KgW~UZMQ&؆SOZ:~i\7wm$/l]="? 8IhJ yhۗ1d Ox͛:k"K)*U6!?,Ï*,)R{K[7"<_ xXNTM@4Ӭ*ElFpf&rD5Tߟ_þľ/uMPQEW/Ay [hRϒ;4Üy|n]g{/#7`ڤ;ѡdqMIB`4O@Z~-K]ez6 ROF8|HQOQQ@vvuq~. 7ܴܿ(kC$+_^/s}7sHD OZ4`᱉?2~ACim%4iqRbccSH><nPx=<֙bF8xFCvy0(N.))=}%7z=9Ll7x.C)cܰ:?GB &'}}}75~amwübybb7Y9qꊕNoF' 1xVauǪ,Nр.<2FK-M+Qrs[2+t==SsïGSRfAB/]Y fW9$D)ʱaJ8`ʃ+ou?"CZ'#LNd*** m/-@9u'W/ۑYw"!A5,l۝,m㨻kwRm?C_ORlIy@X1l8T® Ъ# Q3\;3nO>'+^sd_CUc'd{bV!0'ଘZ pv pNckE9ɘ8בU5C53Am񎂑c*پ̐4Ѯiv{ƍB K]W}P^jy(1=Dғ/ 7''“͈Ar2[.Lm:wuRAq,8 =0o̻mC,a^9gMk_l:z_Q-*DbO,{eHxKěZMƁ2~nRˣw2 . pw $%1ܵXFbq\rr# )ύA!Kw!K;4xIpܔr2Ч_u 8W@1xH%餫gZNK'7 EB$%Q:>>~bs THfL:}o6:39r ׁٰmknܑ:CFנ>{ 5bи5J tURXho_2v_#MjԼ,!t(vTrr^/ƽXF-$`fGp{++W3jJ&^kgq'->n^f/>rN3`fu,W'hg\koɆ1+`] ҹn(ʠ^()~;tUHIq*+ C-9򑤕:}1 l}xYL9 xub0K(`o:åv}8[(HBSmpnj">rl(G9c+=f٬OLS*tdYzv 7Sf@&+#jj<_dH (1)E_n;p84 |JzcϿ`{bnp4= ֚D~hGE{Wy{evAf\ү]A-158p*e,a)kD ܃zr.XRΧVMju{=]]ק%bGz3{)nliUJoY @Yk>xd=`4)3+Lb]#ֈ >td{PTL{C zݦD[R^hŢeu )9V+LmwxmX'`xQ}ƙSp4[<(qnfaO4H!ō{/_FBqxF"&ҹm췠 1RiIIXLwM٤6YF$4A>F07LI§|Ehڪ@Q5\9&Ԇ"+ ep?8%+8r d@l-Iـu əu eYo&;>>Qz:@'db<Դf,B!sI;W3JӜϘzc:o T=芥E@D_^0-O<6$6uM{rD.ELK"cyY|d]ῖg~ZD(EX`>M@ Xw=fǦv%RnMZDuK-oJ)*Z7kɞ+yu~~K8gAm}JOPH9Ð|[5*Kf>5glLP+B!"~s+Tp˘vkM!p2-.a؜:+NGؘ꿇ts[[ 9+."\ kiz|RR3q@}pHS]]>k*L};q` G0+ݖ}m`2q4EmN|I G;Lf65Tw(9e ^ #6NeH{@]/YI-&NŃ\]CʮfoཐOfvw ٣aain 6Vv[lj֦<)6c/Dr!fT@ӫئ\E-fǴcwF]*cI 7)0zoB#]5Ĕ=`#y*V"[wn@590d w e J^qH=zrb, oEz31a6QR Hg&yo3_< 1 gbA/'s4'!|{iDA՞9Jax $쌜3㻀|\Qjw3*{v(8ycx Í%v,W?o(?:j+Ø #| ӀeI}LOUr~n34N?uqhq[@,x*Wp.~ 177*wa{[4EQFtsw+ cM/+#oeKx9Ё|ѬtR_sQ-)hg|V>}l=99Owe?EdO'T0\.y7K(@kG"%m<\gЩY 1 Ϫeaw 3`M CjLH__zU=ՠ:%ר dE"m1fQ72gf . 69@!9J>eo'-ڣ.iYy?JDʝߙjcқF:&?CjɚHek>|nh^EqDYZ%!ݦ0nnPOJNlD'4AyRk@NjF!r0(mESS={lxj@ rT=)[_9bV̞eZQ`K2L$3^XH=:Ml )m`4A2 R)d"C.JmҏJQ~r&d_Q`)R&*Z[QtCW%7A)<;m)Vf*){ d4iGKh-PKNL1HHHInuvola/128x128/apps/kugar.pngUT DlA4Qux 5|{<1nlsڜe: ICA6cΧ(uVJ6J"&ʛ9m\u=z>ugRVU@yʕSw m_ (;(I.ǵ'wF<DĆ"l9uPhm`ʞa"-/̓I@>Dñ•=5x 9m-u}KBS2 eiʇ˼{vVL}{ &ބQ2avif^ Jy"$83J?p%n˺*Įjjw{Mw2yLʁבq8ռ 92\7#۞'P@mvpxrGp4S!$K]"2%/l3>X @g^!qu8 *lxdA.Tpzړ֊9+UtI`yhJA`?S3?^bjS#kzK2W2Ыq-"Zv<ҳ \վ7XI#529|˿ܷ mYUg"+H݂=o)M`/X@㷄f_#zTT2/+ NY<F]JFۂ15Qov)r+HNp)\Α@ ++3|"48ri9/l3RD=+.$yK;Z͓p(T{0 uH5>$lv ڼԠ"+mXȕ*Ȁpٴ:p\ݜzjۋxmY/P%;W}T#X"*a=;؞-^+rCr\wfeWuԂ=J2t1Hg0x!ѣN ~L%P"FOaqS[yQȐa2 LV gX S[ !C| ͮe+/.Ɇ_5BS%+m~8?7MXD@uЎ1mFI \z`!JҒl$pKRiD4mtsRD{ʕͨ$}vBMK-MV'E'Iw)6:=.c^E_Vaq=rS`{7emǀ!\I)*g?)+3К!Fc) 5Șv;nNE%4!+*Yӂ4Y~LӇ9sf5O]DnP#=qkŊŞ<B;!e^z^B-#tTOO-h^s[\⿊,WɏXi[Jس5V<ʢ:+V"I˃x]>/`79n{Thۍr5>լ<X#t.:3J/aȳ2h35oAGS!$ukg>;x9BpgD\oZC@U62S7BuyPKZQP^cdBGgJ!fIoVoMum/‘=K|Qf.t%1 w?N^<)_`r=n<8ÑT5ws2Nd"vAey`T;u+ o^PJ(wE~9k U0i,y/]zg|yrMĭփ* z0` M2TA#emE 3ͱW5@9^{(j[1ze 18R[N G.ja7^چ|_2{hβU`bNٵyUfUWW]%xh ٪ߜX@|\Q<놄`HS#7EHջ-JqZaFۭ?3mV)!( .q=bZ7W!c˴PV 4 6~K^OD\~Jyd?e uSuN׮M)vG\:S_woi-jS>{EM^Fj7oohKWh ˫·??zǠo곳z9UΑI4¦.\MM*QA1XzELBaJMŬ4ҍ4ԶwMmC0$%,l٩{adh{ @[gt÷ٱH1B|%yXaWusop?SEVNFʼI.rM~:;Ak7L<;`֎GJ[DfKd|h!e?ܮ?DI5~dwըE Hwt<IU<{D:@DfP ]&눕GtHC[W߆~j}i(iq+n'DO(>٥*?fl,1`C+ e"*F)vodU0kȸH%E +^.~Ɨh i6Dt DYO0 N/j'ܷp` y;+8 L'~]DqmpbIB|[j<ոM5}Mɀ=bY@ ܆?y|~28.r7@ |Le5!))K𠟑2EU/boc(K_ey[.coE pTf^gXnr^$I z @ŴmxM}%&+UUˍ4X P4[wS'6R3ϱ]+JyI,tϭtS`,t+PGlTkfM{E'"hSG()&nL-VhF&a!y'>^2f~gAUb02V\S%=n^۾aREjkܚDu~rִke{P @Bo} șB˲^f*?s|+t*[f)7$#.V2Lu5ڹ`0OTDpvwtؐR@& jW0@\z|߻ZI9͋rk("^2. ֍JСx[{NJ@!Wby OHO7A+34=%(5CP<;ǻ ˜ߌӿv vkt*92=M{Pé 2ܵ䩀T,ő-It g3aQ|G_M9OJg) 5.CoL=P F w/cq`Ÿxb]|xЃv5@aO>ڈ̡L."Q/|T([.itL=~bZM0a?<^ O$ݤOJ05ŹE~U74e_2_"UO=}Gݗ֌,[e]=դw`78Qo}kZMQ+Rl60&ued@y&do>*lڢOJML>d/n|E#Q/Q+2$?#Z&H • >P> V6%n/k|W D%iiOѐ;yRENH WWRgz@7<' 7]ޝ`]l)OjZdZŘq4H=' 7ƵMNrLGI33)a 9ۚ:\ㆈ(t-N䏢Uш~cw!Fb~Lr@S>O6ywnEբB.\E_ս v yd;b=L_SZME*77l;" #SUir.sKup ;@16k 6lu$J<}1t9G,.1ٝ-9DK>W^؜U{ժF+g,ָ18a}/\腦2^B z[ |*G'^ױ|sC ;){8pYu SMJ2 x9 1s'l*Ը(8rpA0! ԞiU¹gQ}`$mN>3˼ƈu.`¾^^a?a1OfD(jwz^+xvoI7":]N?< ~-|!=ZRCA8{ӑ9(Qv`sKKi.ل ]xn^媟K Dz̊GM(j*8qѽt[{#xr gv8s DNuxpsi!m@ #xI@~|+R#e}z໗E!4zW%Bȍ捳b<^Dt~'T1^Ep==-qП,̃wT)9;Fy^EI[FDX_ ;k9%|bkHxΏZ uP)gRөl u|E:praaT'-@ޜ~,Wx |3_1Wڊ H}4]oT}'\V<ݔ0]Fؾ\rb?HsG-Lm&Ey1.}Ϻy†9.>-"[ifR|yLM&S&B~cQ)cCW~ۀ\pͲl9+-2qy!q*IξJPs4aHkMV[+rSDpH/Hd& V]8jRV͓oK trL# GZq o]V +\)zɮk2z>] (5PiODo1 {]f? Q*觠$a{b#sT~fRRPTv[sf,)9"1yH(utJՑvnA?3&qnK9% 'aӄ?m\]}$_]j=b=JcT'BȓMd8I A=ܸj=ⰼC{c[oѰP:Pr T)I1L/C\mHzyyNdiKu6?NLw&= ҿ%#+İdSZ<z6|1p40$:ZlroDi;k}UɋHp-E;K\m gzD3`&unJ6CAUe^Gw?U@I&)1keauz6#xKiAеS>J U- +=&z(*xNpQ+;vjՏK>F4^'^?"?+u=f|:^5341F}ۊ)TNn_)O*T3fзkd߽{Dܼūuj݅KA=7~w4gZIGͿT~8|K8RRHK8a:}Zo(ێP~ߏ8` /t<ԢG`B݋VwfN֏i>w7C%68m[#r;w Z_cVh%#6G L{oaTEy5{o:W-VIIl:rhD[>6pRKtK[DBC_fFxB\m%y5钼[(,gZ\uh.I J}2Vtz PJ.| =Ybo#"~V'N;si!i3jNԁO.HLy6cP5|29U7xS͊k*v%oCaA?nm~X$;rQi^Zh's e&z xA$:(]9D_#gZ&ge3˅YrcVE]`I"U(U&?뗚9J{N6 m`ڬyzN:BRƄs;l%wh{> >2"284a{ڎY5,z?FkԺVKhlͣ;?3NiW ET AQp^i.7=,$:Ơuw혊谵$hsg+$TS=z7 }_[=+*",Ƒۅ6sԩF&Ď$q= ~NkDnOtM3GmYI5)ɉ9:.TGpV(]=DU/-ثʰ?tD@ fqA3=Yp.Ѩ꼜u|"~r!uz%\_5W0s>8hk]yx0,['s>(Oe'[ K?#(hL&RR{'u}"r[j;$񶖿\^V Q]ф}{hޢmDt6j[6@ff`ߤjwyj0 `bgMJ&8.e +W|SWڡ{rB !kd_`N~xxwHԨOzEz8H~f:gZNͨ*mOȨqsn>6&E&ftQ+A/_oH6 w&Lt8s$۶P }7qj|"$7nbdJ]#g q}uџ ><Yf`P- }97Lxk5(Ӎ=~Р+Q}zLՒp<=k vBJmg`3hmaDgL?;= *)^r2',n݁$E;y[yd9zoNc?H=gǞrg&n7DQ#Sη޼YOQ&;+P CV%~H'ڵy.Dwz=PK~ug` ih 7LaoZaT8:Y[i.prp6N 9-:n"N32~2ч0_(jÈeZR6JyCOaMLPi% {5j%h`.ø|02zVIѽȖ-O5Ov0 ^(6 _!3?ĕ}oy`om٘d۪5vS* ^鿘Q_+U]sUo~Hd:pNDzvG jִ1h瓧0Hm~F45O ^% {yQ48:"_AG@"Y[f蓈$ԩ_*e\;b$~Hn/fJ]˟xCCocu;c∘7w*};xcu( ;+aW9$x[N`h˚ RvYS<^$[3U&2ufHO1oHmsdtFF^=5MN3`B=.͑- x& tω>kB+q2%]@OzI&G"SyN.65ŭ!EZ!s9 VC:SsKff\P{zM"i~nO9 ^:w40~ 83ictYn UovWގ;5S4\N^пhwZkY/7I$TPLc`[SGD=>@lMGp&ϪRV)E*Tsk: ݞa SGN7Z/IKNW6vՇу}\Z5v6QЭID-_z,}O9텅XX|.''8:Euw7OVFP':?\¸J+k"v}oү>,̙T;Ҷ^+=ӉVQ m-!yVg۴胾[iGÿOyR!DŨ.OidBo$XnYs3\q˚Mм<Ԣt@g,+2pP6SpXj7bnнg˴=CGѕmD3(/k]xА  獵BNDY!8&[z/P}H`@͖lJ9_5ʀF4$ 1N4S_㟗WyYZJf0~OחoE-&#~kcj~:L4,ܰ)iQC|}} 7WVl^C+`y2mqt%(r-\*Q9r+OvEoi~]7#<&5y$ (٤?؉ǃPશ<eӝ&a* 뗤xR`W[3 yoU֯OUCA]SR{~^056o 1wzv% 1y߁iSPsa+D6Ss.J Wb _C*ƕ(MOwzߴ&ͥа4g^SF8QkY!** q̓$&׮aWEyEdžZ df//w\p }=9DcGGƱԡӨ֏\!*HO䜈tamOT$8&Z;/NүTVgzM͑y% 6gY FDWЧ6*9 axՖ:b^ XʙY38 r}F6 ߱K]s]`b63|r/07dU`Sy[0cv;6S̶TeU v:iriV bhא\cwV\bl[Ubi-gh6Lc@~KųG[/@ en%`rUtklϋ& $'/6]^r0X,-"BYal>f0u׳rNm'ۖ"7 9Df#k"錛[#>rLe]*w>*(MO)ubNhCAlJ~[a)*ԣX[ME' m'js+~BZq\9T<@^L{:b/,T!Q!س})u?ռvIXt'F@,* ,s5ckwg| zRR{i.pEJp 3"%fv0 ճ/cDʦ-|r\쌋@\NqߎH6_TF~{l_Okq1 ѯgT=O~%6i4diJ_GLJ@̊u Rx-&c5g=9{ @ /$$KC&Oֈ&α&AXhwI9* \Xa{Ma{"y7ObE[~z6 Z.3RC&nM4cbϿ^uR(vƋe%m_<;vE$:=B'U?^"8P|M.<.]%뜔m:^sp #OZ\wfbmZ1rѼCTb0|K菷 0^sn4mb&8Op-DނԘݛSnɯ4?6Lj~Yo/FuRȦ.k:c Tr~t9g={,UK(E(RrބcW[ ^BVU#JNclO@qr% d~ .u\!t&i pyCo >/,h:[wJ%%_oj!Jc:j1^-Wؐ[ٮE(u K#J.bJK͢(qQe;-mp #tTcz^^(nN?9Tb^ vD]wU+mEopU#:sj8RxԗӾ$t@0c7* Eխ%?bG*M4z*OrtPf y e&Xʂnlg'xoҲnOF3=&thujŲJx`3,kJM>8:0/$2QoS2ߞ)9׮}+z/rfQIuweZ+щϿ N NpjJ&Zxϓ DÚuؓ"(7/IKy ~}E6u"yQ/mߞ)0z=_%=n?+\k?]9Ed78UH c]EIOR-Wy|!F'))uò4P6rAM.W#=N!%"y;h Sk#BH̫~,fȊl?X2{}^l Zfh5ߌ'6*YQYWB0 tݜ&$Éyoa+`pG؏!"4Zz†]fMXH-X2_4O%;K{lVsl[8O؊r-Uax=0)՞f=vMwh׊X}d<|*4$~꺮h{y{Pjw=% }#m(ms2.aOTHΦA_7^|sS4d3Wh< qb V6)ҡy[v>oj 'EJV1 Y?,qwԬ=fuAePP3.]`Oi0yZT6kx<+ΒUpw[,F#^?I+:L?pHubA7t#/j~[ԁ|M'/g`Lx/xэPq!N|2 ?]S*(6;̶SbY}* _=$o{GCv@<&7$iR$gzqf@"mȏb`cL 8kkߨmgS==ߵem`gsG"Ful+y85nYN?LljgHCxYԑ F6=EFEׂJ.PToGؠ<R}FܯȤ\H:*,$ʫFÉj6m_3v* OF$㿘 nfҥI L ! Wl}rNǴj!Y,;8HÍ!ڡVXQpwێ3*ӽH+=~[ى0K8=/x櫾׹@vŝb|x!";sS lUuaMo}/0&aAQפH2㘧Z#mkr鱏{c`G 8?#ʭHJl?jWv״~&7fb*v)~ l៎`WOz0NGأ_IIa3M:P~PT.* jwd`e9|.(rC+RİZT^NlRDB_|\V]^Mm@0|wYmj;U tG&? ?ro!sM[ `%}s反-߀*@5m؝k/hg% :2z[*[3a7V0ljaEw=7v}pK*\wN7bPoFl-uL?ņ]5Y 9p+wn|;Xs ~kFxqj ^[ť[(x>6wҡ&B{t 6R3*L5xz˿ނmp^Vd\lk\ہkZ N` ZZ(;zZ%nȱůr;AiMZvi0F??vzRhFR]I /KѦ$I3.!QxWxo3UVȜĉ5j׋4_48g5(mO=@pJzW\6*#{3kڋwՑfP;Q[v^ WØ UbA.xnʅM~+Zn`;aZJ;Ꝁn+Hɾ7w\23 Fcݯ@ >LQaC!F C(U͒ug$k^Fb1Ѳ8]?9(}1@ %7!װ`9\~Q? /*h`ex;zF(/Kk,F;wpgf?#7p%w6kV[6FMPKKL1lFKH!nuvola/128x128/apps/kuickshow.pngUT >lA4Qux [<,(.k٭mfe I]fj&Ҫ%&*0p5s]3sy-5 mqoUE-n;d4u349Y<%nJ P#" FGn 8y9 6Eݑ-LAd 0Y0 .8Vx[`Wo@I| :Z<hSn2?^Y~>_R+ [P'av6*H奥~l?gD1VVZ7F~yzŐR3Gz!WN)[06_h䫂w蹴yBrDTV-~A.H>pbZ}q*LDUh-Bj 5͖EєmR14ۋIeta  ĨƺptıT[]K\#b2d7N)H&ٗ_ >vAc$+\-7%h|+(RbNCʟp } q'͋.U~dZuR۫"R0wk?VEE" 2D+ŝh.r&#ʛf T,ޙdemgFP}d*[Ejg Uc Z6mX>+YqұiN^Ž=8p'W WpS ZVtN!Y!K):;z ҵ?M[qivUz91&зT2C :)BVrr_g2lMFV'?PI726-GC2a)r[1o1\ķzl2E̶{WQlWIJ.qS Fɔ!L&?)ƟQ ͎?Cixo Vw14#9e+rEXoA/2Z)0qyzN"49Nr+=/!4AJ5'8]wJlhѮ˖dzŬIP2YYLHAHw}yD>1[ATЦw_*Ym(w W|CLJb[$&V!Py1--%Q#`<#D+t` 03tf9 ZD1F% z't썊ڨcւNW@!0@,[s]A(M Z$0NhaD$^-ɶUQTqܕ9yI51臭=מ@3l;zc:~P@YSlU==K &ܣXԦ w\ǣna+a~`[,awn)vbi6|S]+(^M+o)xiY@9v LVֻ :RZ4S"ҿV*ٕWD *d#M8 X,zC(ƩR3ݭ\v7@0Vzʛ#9Wp'C.i?`o]kpu*wQˏd?I#c1r#l2_: ҡsv`PHvRNܺnXD]vusc㵙 FA[zZPuÁM.xES *tr̸ 5@ہňK<3HtXXǜVl|\/,t;ϚAe%XOHqt$aGW L0¦``tV9K9ѡCsu ;Gxֽ!`[Qh,9Q?G#'!jb1ΘӦn̼;cܮ2d~Z=V,5tBLv&'tQY $ >e=EVm0z<0y4-~5,T3gQzjtY8X{.쁖b ͢KdEbsn5̩\<_U`+?U ][5K UAܢP!񙅩Qy4왬Wyl,|ʉÒ$9vr4KQ#myg}տp\L"kʕn|4l|N/C{ $|I*33 U8?~*A @*D'brNs{7Q |ЈՏ6Eٽbu_F:Ֆ$=[)/.id- ^h <P,7N!tzh/AsV2'5G9H~u_d& PߠYqc̜D5 ʱcTv"!M:K,!`.k2L_\`z:FrY.{W: 7T$j_2Pf:MB=ˬQJ4N6 DffD¯"QUQPQQ.L ڞny`0Ҕ D{4(?]Zv]FqnG)L!R[yv6<'y\BϾ&b-72u60%l\@lfV<5;xQy'gz{uA+_A=07Uٳ4mB -g,)m#\)ѝkfgV@G|*F25ٯEQkC V+Ws.x\5VNZ5[#;cT_tЪ1tFٖOBCQj BNFTLk Py)yT_C=F򅡺+oMp/> !,/ &(CNDqawI򎟰N+Q{1[ӪVs鱉-fր쫺7CN='Vpok˂K2ա5gX ZϾܧiz0Wk#y#r.zA POλd! ړ~^zзM&gZ}ݵ:Ӹu'imK[ F%Qa/҇P7N}= [y LՕa)D/ 2V*Tefi%:q9@ N6ҙ96FTTQ''T%*"3fxk'Jhjlj K1L~ĬCYKI"kNU2fY=g/Ivc]3vv0L<^ _L}3ƢERʗ7ͧϩ e ҥDmgF&S2L!|b˺%ĸpK=ub*Eju4mŝm$},wGpi 0#}BSG)ǁ2t" , ݞ)E~q[6'" *Ͼwާ}q*Q~!vIBln~(.vwmIֲ6yN=5 5SZYڍ`]l S3ZIG:WRMs2N4q2nz!3F0ׁ('%%r%k|]l-ky 2;\Qb]զFE/Bu`8˙gdkR=  s>0jzD CEWpC.s; Q,:OT6ƙvF_ZknGC_S5 B5WRJ|Ԋ=1yf=*a{z{CpL"' `fMJƞwu}?ʀzyM[利9 N^ųD4ZfؗϜŪL:Xy7߄ ،vDSĸ|zFU^$#5_ x'QUDAPS/1;nPvefjJ%MUt>Q(ÕȀ|ʵ y YVq $ 4 U7[u)gN}Anx%=;13I*=[aC&aʞ-LHgӜeLyr N6l|,`Ia@!RC̢:)`+k৩ Շef3/C$]cm~٧A\VtU.D=>F.F?[{*"kX2Ca-ZvADM|su7Wt[ٵ'4mBӝ WltiWǞ3Md9Ҧk(Ro`yIGSSkOg[-g 75,;iڡ^ݛ\ %N>\B. zTě 01ÖK_re*Tyjn5l ;K(F5d6{KuZEz1qmU]_ Ơ`ݺ# ?H96bպW5j 5.aϞ_ %p3Ҽic08)f(V4krw! Su,wxnI Ҟ7H?JꝤʾ\U%]M~%ň&I`-;ЋL/ 2Trc% #f+s=rPuuViկWc-"cg\ބ>*^)yL-ô?C #,s({+އn?סR4A'd;9?rd ⻿jEQx(ܰyIl%k+_f4vT銍r0~AhE8&y{)Jc{>XЫ<ݯcsskOmӵ9s^L3VE튪$}9g|µuC=%8’4=ܮpꇈCI]'5ƒ:-u"k@CuZ3}nob1=g]O4\ījEF [g/rx ܲ|>Lkޮm L;"mh$kxC0haNL&Rrc<UhݑI ݬƸ%Ɖ7;;iHttV<ÊxE-5@lgCFRwz(-kJL{‘Mf?)eg_0h4ħ#Ksi4P&V>m%C̿ԏ9MtC)NyO5ԙK- [mpQ|φ}Jh5Ow(ZxdsvE.;9g~bD$"ҳd 5h~mp;>Ac3b62 QSm\X8 ЯD $w@)Pt_)8^{FzPd] }Y]J$MtZPG6dqCF'؟\:l99gN'HRt?*x杠^2Eg:6qZ )-ŭLeai&>rtrGA>fߖ v)9EXeLsCS^Գ[ȞSU:cԗlG[ Ů $*Eb޽;8Tz] .=F9X'ZL1p q\ToH~1p%c- >`]FHccc3nEhO;yjDǿۧNiZt.}Q<{rsaI(ǟA̺4?s;ҏ-zWbѰ T tz pi6LHJaO[Ц0|Dn&witksT#o`K7kF) (G,G"%S'J.ꛁ M* #HTT>ȺfNԃ2Kdɽ|fY ŸvIXE߸t+QpË(Y#0^Ma|zR?5쥤v2R?h!Cײ!~bE4g KjOSӷh /5uV~ 铎L)ɈXgh: bb`QHd֒&| :/j RħzE~]ԮC;:ta‘_p3Ұd(u! Bh=cC )ag:@z'/"_BcO5H4;{4ڢFВ;̳F=RT3)G<+_dP6Xv)Y*զ[ &%s0+90H7%2`IQeT?q+#O ww(Ӟ+"sQu&g"&}Qnc&CK YotSZxh(\0dlm*XjK gwSOzKlZ<|.)K=Tx}Z/8D kX]Gs~YnB#@q3Jb1~(Y{#i8i#i샃^Vև<5e'>VF[3 VlܻW,Sޒ [~6P"Y܇ 'GQo)M9fE7RAh3n![I&^zȾ纲@ 5P됨|)S ^r폱•QgOٴxF, ܉ơq4S:>Jl5(ĀEq)Mv*Wc|ߠ6GP^d”wwthkQ|QdF* .l&@Uy|ɘqDfT)wL.COlI^)f.=tJΏP#Gv^m>Xq)zp m˖А̛mWKCd2ytU\,ܗi$USzYxZk%h]WTN+ Nm;#| *(!}]\k)U#7jHxd[".)5B1ɫ#.PQrɸZY=kܘ| }}4@ 1^4 /ȤF' L6a!-f+,2np:3ʟFޘϮ %5# 0{W?hq27]7V&Og0W4B6Ǻ.xZmۀؓs_~-}(6||?[_awQ.-za]xa #S ļ;꣒[J {VZMv(G@kPmqĴl+>oV+>{[Sr=89mڣ1+k7Gljͅ_H)-vYM[:fȷRN#u0c^1ۖK߾FT~rrhSuqV&N-MٰSmF3n~g%b!eտb=X:3>"azY]dzh(6"e"<ߩM${0Lqi38ܼśtE2 Cۡ|Ug:yNU i0Nq; Sn$@0i4Io.Lܪ_d[敶Fl@"bWM]F`d%yjiqђ0ITcU_ J L `C?B7Xש,yU%Q2p6Aϓ*_*,m"Їpmbm 'Y/%@]I~+1',S}{WnZ=;`۪~B|" d2 D8tRM:tRH"hg AkAj$^iںVɻ)c1 5fO"T/]t/aeS4 (U xeF]IR0"NI_,iK ֆ!;tNE G/7X>dq2IHRm (NVIOd~+hSo\Zʽ<T3i:; {'hܱnLICt}IMlAIj&֍z"csjqd.DXGOb?.ȒTӻFZiM] )y G/3adwҎe(LsByBRpz4W~\nChEd`Q}zLѥP#A<vPD :w׊vVʂUn,p8k4İa?Ub*s7ΉmTau&@jSvȈ@9~_6 !1$z$B,.ҏ M15IӕKOjC9Rr+ Zo—4CK@ <\ӽwnR%TD) Q("=`S/_dl,R4{i%] [ao/։+YUrhXk*\Np[\zNoce|Qs)Ӡ:U#VtL(-bz7 S|cTlz6{EQCΨi>.ڟh* -d!r~ _o2KnY%OOVxuiAR`kj7zP)w!O_U Z˨v/Rfjƻɥ8㸈Ha|v|l6D >)Oʔo= o5|T SİCbfh.AC8Ou{tZ<͂M~E >1zZP/s7y㪺 io-#j>FDg\$w Br0e4ܼE:i0m)0;s&% /*ð{L[1'Ssm"]rU2/a{q&JŹd8FȅN2v"aƙ4T/,]3e{o/TP}>&өIuyj hyxzM >R6dayA^bawW2S{_DhfɄiJ)* ~.g LGtCM`vע[$z5gqɮ/qUgE* N듵n:5xG=Fn,0}|&W\X"5H!"o&ҮZpԭ9ۭ«+͚h1:jeqmi7pu9ǗwP,?1 S>[ 9Gqf߅^~)ÚT~fh__z90rUk*c&L>q{OO'c-)Be;ۢpEaݓaÉQSָ /,Y{3q5|YIrj1Kܕy2c[ƣ[ߩQ^?&-"fMM}. tx}(=. lz'8跬WBǕ zJKč{P!*S{#-MNDV Z K6g@' Jw7q[cm UuOJ&'E1gCO/Oci),T&d'F p|/n%ۊ<$y̮u= OXIJ/J!Bq/4~]ڐzs{REWO#UZɢg"Zs7Ȅh/?'~Gp8,Α򝠷Ac+Yc$6x.CYfax$LWJ}sI͉ K2~#_|ҴԄFT&_WgDi- f4uBA`>ݞ]MhREhud'< |*eÙD<4c0W^X:<'"% /$mӚBsUFPز i0*n!J}0)!o'"Uv"$?Nw \dk>hy>Z2OrOU}ø xba/F%q kVح?] kCJHiۮ1.D)=A=K-7D2[$;y-xdPH{OIX7tWe,+ TiPp-;KQ =ꠌzp) _(8əJ B}A *ܴs;T(p"Z3e l2s_=daiVHl`cxحPЯ3pgj̚'`:@S bgA{Kug64z\ah%vPYX`D:  Dm/oL"!iY/d='& $fs\ Hѳ4b9:Z糖BW3G =?jQJX=u*C;5615~0ZZ0UK)I!>%$g[gzGDVpơ=/CeȇkB݀wUʵTwBuș1ֿ|$u>`sLixo?xɁ^P'K<~]T<|n5s@*| dYM!Xyh '3B,& Wr V|Q>Ȩ^f<4!/IZ-_2i؀)7HT-# -;t:7v"5cl:cQ`W| ev4$]D0QS*x: GmC:_X 0Y9s^<àdB-~__Pj֊ =Ѐ_[µ#ax3\&d.@4g̏:7 jcdfxѣ_r ɩp9X݌`$v*2nذ]ag}~4v(ټ FNv@qC2.pmߐxf'p)Tjh;BhyJn"ذ>20%:Y$2nZvt~ SN5t΁8[ %Ϛ,ZgS|kٟI/ߗnZ_7%]q^d8#Lu9]jLi3؀"~gv"dkA614'%@ ~ <,.}2%ʍ-߷wmlHl<$R)Ih7 = IC8~.z?b=˫2UO!Xzμ`Oo*yQOx4_:Σݜ|db)Z` yCp]Rᙵs0a=A^73[Sֲ\Iɸ?: uhGEC }q[BKh0Ü<3ZVXr¦4hz+GїQ(J,,͈֬bZjI ԅRcg o6:i+.C稘%Ó`fL٠x0aZH胚ᕚhFd<+u)/+.2|xk9d2/b-l# di })|2. KL=  na|$0~ {FH%,q ӫE,El,MW,4IF" ,1ʖh`nRяJix#:Jf(G~s]U= []%"tc^~wU#o&Cػyvo0π)"`紗.oVd\sJy9iq Xnl:zj,2Q١_l2(:G=|BBia_"/qY]mZݶf1P)~>M)YqL25 "g E {Jܜb7tX\6m؃PKL1PzVXnuvola/128x128/apps/kuser.pngUT lA4Qux EyTR>~ѣ88[ZCseeٺ6[(jjjYYRʒ[Z&(VVVs#ΨyߟZ?:lz=yXgﴀ-j**mھq I{Pv¥VQ,|t k;EQpV vr<A+.Z*&3 e_,Ǧ'asi$Вfd%i>=Dꨈה~FN=$0ݐoIu M صh=Σ [NV[ji$8TMA|1 05sԷLV/zW#ɭ_6`8 a"Z`U(5+U0 5$!'3T/ӷ5Q4;.ܜL.zHE-`&+*`CK]dzMOpoG:5}|q;N:|̹oqk7%Z,rJ[WӦH$ 0/-}eLsg`]MK|<9 U"*W7Q9y' 0RADK ~x'6"4%ۄ"U}DD@VWr',`OeMR3gBSpK˄We I{67߷ ?JJ/6B2CGZ_.Fmv|WXbzBDT HĮ4U6iVF1鿋 ~# Pvq9e J>2Mg\Vg F?Deۨih6$Y\|^yw:"$ٻ՜;O-UMѺշ;5fE H%:QX'FA n[։n1"!ns . y2W ƢVEt+ՈبXOM@7IͷW!OWezqȫS32ߓ 8Y C׈)G[({g.7J,NɺLbF/]mxW zS(4CE YLNB&sT6>j &>4 [F|>uv*/_:4u5y;Eq$8 w3Rj$Io[(*_x=/B̚5X na+4ͼB=jN0N-b̧ ؒL3M]C|P5LfijN=@Ch2&Dẑ$gێfϵ4=paaRtN9ӭ̿ WǕ4D]=h ؔ%$LEϱ s Op!%>qP㿜cvZ`5$HEIǏ 8Z2!^Sh(t2DԶGnC`N \D,% jWVOsSD/Wul#}2п SZ`DuApPTdL!^M ƺh 0`Cj8/zgP O=JCr .AXg2!TƂYLm3xG{T2]xf'%gΟÖ0Q,'dͻ`qu5hxs4>  TQA!DK HV%` Yٱ+=@fDa.YGJMQ1rt/*?WIlZI" {t ",KԊ+?r`ߍzAqF|hZlzi_ ĕy{*Ͼ'ZՀǚO]^iH`˅om,=D}u;1܄l%E%:FUIɧn_B$ ׁiR"}3H^ߎupp;JJHGO*VsG !5Ezd>gǹw_%3u4n7|ڙ<$\ 9yUQy mrG"rޫ2섔 Z)y$#dؽ3+CJ숺(EbM>κ>V5lOIE_A[aD1ݚD*ig3Ri/od#A<Ԗ"rQ視Hyq쉭AcTKԃo D`{XR/6.my_!=Rֵ3\(H`RVQ=oZXWB9r1w^E64C8[ƀ2 sS}y+Sτ(/ +۷XhqF}R]e!)G,+8͋UyCXF|Dh5~A`KmTVqWOOio f+v㫋rk|5m03DEah) h^3In ~E싞N,ǿ !W8y4#v["UMtٸWPNRq4&碂ʵ,Ԕb) l JNPk#Hg YېjОA`hJ1U*v &с(sOmsPA~}VOn}dZ+ U)^EП'ѰZzI֕8kJ=b|.J]L?|nj6M|| !zyK cȧo7̡܎R b;Շ{Z<Ԇ8SԨ*tǐ7UP{9l3.+?:yzhn븉yf1jfg^Pyj:l}qaz~kx霞GK^xYΝ7Gm`J+="d$薒Lm=+P!n4Hx_6QuȰbcCޯ_R<5>}ÊD7O\a];P, %ԤiU Tk"> 9:Q6m"mY'<U#|w)gO{ujHOy> j0}T ' J!sih# JQ싢Shn[-q,)T8 4}:$ *; ekWxgصcc1K]LlcT- uAҽ5X2fgix'i %qUzөjw[RɕHf@BTȤ8+]vkKVy(@xnM!rkӽ 1(GSHMIDLP68zG(/H+/nN&F@`F eĀț-̶ y Hœ΀3{»3;1дhxj9\6K)RqݩGMBAc ;:ٓva a8&[ʲQ?c.'=ߊ(K5t]gQ~d~j[C0k^/+?KBp!B50Ihm_1Y[5S5ۦ:`5?/t3bcHK?儕mG-u4]$}S7D͞YV^MGqO;bQm(%CU$èM E8hDNJn'6:D5ڢӻ~3(2} $)Et`T|x/uZ" JQcH80=u! owWMigԍXZ)YOj/wVRQ0we&6Z ("eS2?L:9(UC(14SSs>dӴeWGe\#m ◚%yyW|x7pS߉&hB &'7%2Q{{ʍwXA pV8ea6ulV{C, ܯ˙zI;>Wo8{OBGg{k%⅀tB$Jz>&*I~йk AW`ƨaEAqqJX/Zh{;n*8-W0D r{4Ls(ݦu~-vPMt}0ˮI{T xw0cfL4ȷabL EV@5"VQ"Laz TB@ڲ޻(!nйP`Z+J8:IxU" O[g#JJnNKAߗk{r>1YvtawKq98h3;<^K :Ǵ2CfpB[dh# ly${+:ۏ[)W1bxn4`p_nEhrnLqF* q³6yǭcߓ]1[ a 2.<5->!Ayu3r ki+lÂ޶9'alAv1{I":!b o&"%-P/Uz.6+zmDB٦Z&29 y| 9}5a >j"HM]Zlj6哨et(M=C`/Id"U<ےA?Hld5;_6-)U?k]NuQLKzfv+#M?%5$ c'b fK~^զ_3T!syN:3|h@T Tղ[>@F#Z U*ˇ/-<3 T%Y!#3&! Se(/ u/X#(1-S\2SED#u Xuou $ZHd9K|ַgM1im*,E9 яX?E̮?bo`}:XSZ=AآnSg֯֘] "sn> wUd6)k 93i{^{*.{r_T3 4Pd0DAn ֍L=׆(t irȔ=ԡ*AF ܨW/z5vtbjhO"j(?0h-'C*b5S#s~;.lqdr\r>?=kB\SۖBxsZhyR5/uu82h,p5L@g=!UNbt0H%OZҫF2l݅q1iGJ=Xn;$b[o]Vv 4V&BԊ6j N RDOJJp[\y}3|zsmR+7 ?(RŪN U-i2{S"3 u)9ƒGdYhu \dp k=8.oݜ*5!SMz'(`OsxJiȈQg4[n-J J 栍9e]EUpgىYFxˏOAAu!R[.{krҤq3wEߝ'Pd銊8k9( _0Cތ"TȖ_pVH@ @ W);Zd/[\aodݓ_+~"@g9uH^NA #^?LkM>)߄Y9MM<jMO`b란}Lzh䵼xTUc&*;U,ޞ3UϤ #VLfZg^5U1_讨DvSHݏi[$DY!O/POCAi^~{V|cާZlbx6C6Ty&bz Ą^{„Czm.<\`hn^w"$-J{?%Lw[P>Zs+ Eϯ`-3hnEg $쪄@NSH{&H"?"Chf9zjjj3e)@0Ͱ^[?vE {`} l?8`͟v_E|J:3fs/ePhŊ8zQ&X*߹sA_R}Ywgn@@Jh<ܠXe܏rwؾ#.vz=Pi T{8wהbW)^!! hsK&]Aբǿ |vsdv1/.H[Ί4 B[ݬhx!esI?}\/bh_V*U?8eWهF튡P3|`Հk!!؋[|K2Gkؾ^|B89􁸚vI:2hJ#U-a*Ѿ:*{ǬnoH F]9uVAJEwJ,pvdw.i@N.le [JyE& CuĔ3>{ {ptuklc78p,-qC.vȤ|έrMJh11y&ond* Ofi9)u % HX+1FXr+bOU>[/(Qj&"xO'=Vhsמ/KS!f+x4luX>Ǘ%Uc2Ժ1qWJ9oV^ 8掾D.WPi@}y0=4kw}@g\#l# ji=OD^h5v?fhĶfϺ֍y/v޳X~ :M t ^n6 knX{8^s_Π~;nm[|ByyjbMև8=͆@cPV!ݐ b~~m=YzG7|e{'кhe hj,X / ѧ0x>Ҏ = a/wT5To7-wGFvK>ͅH.qp!U4}?cކ[᭄)ᐁHW/;:zMpqQn{xƼj: s}hp|cjt4J8&1mz`RdVT1E ~|2iSFSLI" tri'Z~տɯ i[ӐX|{W [5y4Qk_#uv0z1R,bvF{^䎷ӬϛA{"Kv$32oǀRZɡ79^UA}!Q[ M}p &vXHlldkW_ `!`3SؓT%<&>0%U]2 x#ďĝcmݩCuпI?3@Mi',gEd)[62tKF5&D'QՒ?V:WB_m6 &mp{$Dkhfe١~k73f1R pkeyN$&x 1.GEnhA&pr ޼Q{fDס/gQ4Hzr?,WǍβ0,Mۮ\,.3*P/>">]2#0!:6g:!-c[U2u!<(a0/B\g:K7tɴz鍤}\jM%Ϳ  QE B5 bzWvdFkŪ9'SBw$*n^WF8U\)ï~*'h.$z,ӆQ*{쒥g.g,V/.U7K\YmE@4_d>7?,?bB%gbaLQew:R˂(!{N`I^_D3ԯxiBI=?[J>ղUOsr8s|A=;w,n"E[^|a/`/Ct%S۶Ne8/&Zf#IydX`%n VW GVH ˦ *'5l{38VYk45`krcx. q*d__R*[EWR3&8k `(C|=;^A +Nl7ˁ dd`h'%I?IKr+p2j[ZO8X b}Qgu5 ;Iॄ Dr#uq+>p H诹*B _~ԪA,~=y E)Ns:ag ,?2[6emc7]Y_B\ [>DЂd; 9KW6$ײl*Nx% ~ PFݡ&Gvq[/jx&*ZM贝M(m@'Wjxhq(iU]5jј"}#Ta؎DUeGwaPC~[Bʐg PR_rk[jH3qH#hQcY9y]m 6= BH/*srENӂ]q7%\Bsw_-CD&E7Lu1qsлHMi9_,\2P4w;ۻƬ5|_];8,( ,$Tg+{q~ 0x.+/. OldOVsȨzIzIڝKz}N*gzj ®rj{':bSXR@6tY<ýEk提#Ze/Ls .-Z91EgA~gF#dYGbf3:EisQ/3]*WsWq̬{bز>fEm;JŢʪBv 3VׯH@!OR)^gʛ 8}mÑʺji6 ƺ$[QH/iOIjpzv_!RqBbpntpH/iǍ;VϤ9T#I8b;TcYPp9 **\Dv !MwĬ{:MEŔʷ]PB#w y<9"=cvQt/D'%{g__wu2T+O[C}B$e 2u 1 d5"$UZP޲.B*F'n&GD!^Jen&:*j=8;Q0Y?t3Zh͞%] ~4G](2PKkHn#ҏo~$ kxQ={B %ݢ%Hd2Ifw†#e_sJٝƀ26z/ix뼌QS'Fm&T `c##X|Cl2~u7 ћjjBPafSTKܔʊ>J*v^U;wc _ZnX |a5_` 536L?L¯Hӿovne}rN?^rX!ӯYRɃ-a]AFVik"Pg>$/k43l𭥩ԙ}_עT.]SR&b :2E^##c*+-esZ_Lw^"BlYJ%FNfSDw4Xuc(#*Q@X- zL3m!Ri&ݞ|D4\M4Lzz^pBLpLJI2mdcPq3dXu(#ү;:x5qvbm'} :-$smIW>74/Wn5Q\Ac6-@ybr_]*1nK@CZ3n|DX#8Di0&Rg8"4^sµԋRz?eIg;?hX*V{ ݩ)((?=84n^'D kӲ)N w_=y=etǪN2M{ T^N Pwc3۾Z$,~jJ 9 ^3~~=%g!~}'»CFNw k][ wuqܵFu H?B`{6-QƖ/s'nӷN ZldY`&g$8AHar!<>`py pV ځ Pp6!VWmNs_TlkaA*hy\<z+wUG$j/cSYW) 8?npHvWWd᭨|;9J t6베gY)(ճ.\dpe”ʗ=z r7 NQOS7}X5CXr&2EɿPoa'2:oW8%I5$|lkű W53Xޟh6lpGq*k<=AWX}B7̺$7A~Re%_+|ʁjگ8*#6 Sש%Y֐B1qStn/ dA7y KR \ ,S,L=0` B׺=Wz6\ZR#X* u2~6lACd.=r*Xs :\Anvv{l:@J1R:"䌂rz Fr5"g"xatjV#G 2$uW2X׼)6;7ڃǣqb٘I2OQ]Dxofz}j>EHd,P1hLn+#)Od noR(%p8*m,K-eMNj/6* vk`>s}[x5BAeIF6WWN#O(BzɹltpB͞Gp΅XW}!=z}ƲcucP;Nge @8ۉܰTmc~ƈ@.l"Io5̡+OK=҃?c69^.YoU,채BZ {.6h<[όԿfunrVp0`_QUYnv}^ Df?}G 9 Ҕj\*Ӄk0.L ./Q[s.`S&RrG-S=ɹLnܶ.IpР@[Ln0VrE"yZ@~2[[yЩҴAuG|S;XjdҨAk c~PB)1Xڥl6}+Wv_~;1(@WϘqC3T}SK/OnoƟ^r s5}EtDEb>cr@8lTP%]ԱODVw{uˈe塈zD-_q';8uAh {ac?䃿eJwZHs sX-flYYH75?Fϭ= bF7ok7x0wwB 6ieg|IgoE iAa|+4VRS&i pک6<Ugvk'@x V&ktt׈B˖Xh6-4=:(tVב4!ڌafRvd٪OONkmaOUG\k Ⅼ5~YG~\m֪e8׶mܦsK84bX?_jEhܔ+zW(AT. [>C-Q1<9D/;  9#2|7 ygWqZ7__5POm{=un^Q֒v5|4;1Tp(pcsr ğ&\P[+bsY&NZ~Dn82˚5'/ O( y纝t`eQv*5{Dߋ7rPy˗޲I@sp$Dx.lf~[+vm?R^Իs\>ȵP-=*}㽶AzE5sTT+Lc$O+ |)qAO)G&LD|@==![JONi攀\}C7_*UM߮ 5"0AH5{$aYI;w3p`5 (&V{jf`e=.G+I_1/I*Xn\ooU}zלZQ"0"&'929nW=KJ|Pm_5+䄻{ j ZZ N?jgy0Nk3P _Feb S0zԗ(i̪2E"--w z s ML]y[wz(1c,3Hr@mÒJsAWcֶyʽ/r~>,f_ϼ!P:8D!@%guڤtg/E=U[NbE= XSGl{2NKeEAjBdJs \nA䭕C~^E7NRU^G"|jnEXzY:✖VC)Θg%*G|Jq, zn]uk061<j-YAljaÃ'@`S iIF pӯm xM~ Xo/uBzyc&`߱?fL[~"=Ve1޵BEgBm|~m`בV{̡pyH"fK:x ɅCV%q<<'ñG+n\tO];1K"H1jKHTזB;Q v ,SA '1֠F}+\N06نYy4vt.fXjg{5MNLe/kNxBpDޒ&ܶ75Ign l.c 󓎌w-j٨q(őj?>ΏA© >ZWE4Q V0q^eZj4f>@kxs$/&tyKR`F w ˦[|զc( w0E^~+C" L )f2q4NPVEy¾e:֟Nlfӵ=yqo6+(G@,U[n<Ò #h7!64VJ2vR~#}#[p!{ 4BQֆ@"ucxb6po!Ø!JcF]ܡ&}R*Q宦BvcpNݺ%1Q!-MuFWnw; VdLvrZb !}wx'꜆6z'0jvi>΁=g+)IT}< 4'+YGQ/=@(Z7 ?33gr neEMBFTZ75~R@s.Qc0`(_&63u:`3m{4z?ry-eZB&IVr >hNS!̟G 7rh_SQuʥ]tFT]S h2LZ9GvDaU,!pp»#fו GVQrőa^Os~"~bF (^q>@?/"6{-~v!y.0vތY8)\h@O=u(=';yU藅_ k#ZT &t׊`͖W::2)$  g|;FңobtdƧj>kgN6!b8զUi \۶6s_Xm=Bb&%;j~ȝ{<K?hҗ%u@A_T\|]7G)E8̈́@W; ڌԆk@#g8"^uAoQ J3xKeאr X<9>F@K};fɳvR[Z䪊) NyUh!g%Q6fR'}- 5dLXI;UVM) α26#zg < 1a!MCF")SM#hY ".AqCUat[/$ە9!*}5(ђ\|ľݵ Qˡ! T!< ")6P|OB> |+Aז^yA&:J}di(4sFLAS(3bpԥ#19iE\F[6흠j-1hJ TBR5v3lLr>R|YPDmk@7cC9[L=4ή8dL],IWNQa$/ɮ #{3^hw;0/8}ݳv ,|pYFsӂH!!wuGN +(9;,A>29Sf}&)\TuJ :D7[z7Y,xWSC)Cԫ#*oEY7I`OMRŀ{#Åuf^ 0hVg/*Dߌ˻bP0 MK]\r1q957AT>&-2㔮7\]e^A*:FݮbwqI)WPN1iJVܙ%.6vDTF)?k3h{;XO]v@YеBP\aȺ<tvID",} /Cfr 4U3"$TیS;$voTg`wT [;6%Y=Em< >5[kc-O _U).-H,G 1OYp\ +E5I?/B!@B-E;mk4Tud)֍(@uQdߖ Uv$Ԃ4)IyW@;خ'L4^.۴+>=hjL2ęUP* q#NY =ŖxDK?XT[7Ҁ5֞ &wG:@MlboЗY$ I6]:o"L˸?ѽWBDܹqNvT?N]ϔ!͛]iw(s!ˊ'#@k%g!RP\N?(pf\ij}[ kgHPrrlO{?/ۨb`I'4]j8wN3e_!>@7XqHKc~$< '9UU%qp)4!p {1#+繴;OuC>ջ .M^)e(p2N=%¤>탵 us$SK<{BRUTuB(8<Edqa%L^&[u"_^ ʍ0FxZ1&r.p̦m*V`1',DKK%_5K6܂b$iOH`E_.ي /׽Ώ̷T)oH`VbRJڌ_|h6Ԣ ]Cd`Go<ѭd3oqطTO?qrRgPy3UbG]j{ɴȑ;1N?s,Sx잖jf'1!*K&zELRPŸԈ(х&ZwVޫk͈_c6Aڃl=Z <_5 ="S*1 Y\KiU:ݧGZGurݵ186yU6vɥ$Pm=*#YfZZuaFnyPӟXFpx 0JTuk'eqL;4ǞžG21hf0`= 6|DWlݘ: ԩ{M`M!-o9H33tk-ؤz#xq6+/'}ٙhaO)f$6%v\ M/y7~țJ$DJL1̙B3h׾ , 節V)00RYwbqK oMT0xdr,b|LQ{LԸZf1l&&'=i ?aV}D\̼mCn5\>);yS^DMXgjHH}E+[F߿ ,?6xozHPKL1+ nuvola/128x128/apps/kverbos.pngUT lA4Qux y[RaGȬL1U K+VQk9ˆ () M-ɬ,i|Kr%.K15W2p.Ͻ<y>sޟ5'GCH UTWޟ7lt ~kPP{o`E즭{1Ow*OCB0l&4^w*Fk -@eu!<@8^ Mo@+&p@dGZ P8T)'gS0 Ë7Ӗ=ɐE}#JܔZ%u S(}8WfŦ5%h-:e^A| \ \a0VZ/W ] :jքΜT2qy]&Vt.RJ\g%OZb^N*~GcKy-\-l:DFE&=$=v}֪&3W쉾UĘ=)魍=|y>A'A[SA}9ߗ\d݌#&?r3ÃP-paSvN( Hȷ?ƟK:S#g!ߴ~p*BvXPy^wb :sL=h 31G{" HM j'D|I (æIsA#Qv`C䣤ETڂw3nožﱠ W{tEK`|>< u<aXNطʛxK6/ nNk־cw҃FX1Ν G!}"i/y9Hgɂ*Wb}Py ೔XWXŝm"W!6/\ {7v v}E@d#mbFLrPn&؊ Ksƶ'[|6ɀɡТn}yC=KQJ3~;`87 !4@"TjK[",W{җZU[! \O@k\sK1y d[\8ų\U?ƦF%tJ.]!OVX ~nMO8W\KHۉAi~3 aE{EbyyKM7d)iHU`-=#5sr$ч~qM L11Ǡ)fu dv16Ek&E#M-d۰K#FG#'[VX 3{t z0|t]\$jSEr/TXbvu^.>o iAHޯݘjh5 -R5[6TAJ-mC jH o QTNumtbW'msi`{\5,R[3`SƫE/\Qlj*pL1Q>{vKڢE*s(,9Wdu`TDQ޼44}liGr"^"'Ӡ 1^QwHm{ߪ88\v=bI ΰ0/#*!F1Loȳ`3d+˟/4m)X. 7ä1qx|ړ!5#F?y^HMn×+ "v$~ɈF<؂`x@z#L.Laf'oZ>Ŀ>D[ru?y6 _ծ;BpBOc0^pwDK}-6f,ŵ{X]8Z;/tEжSԥyb>8*?߂>le9aO%wƄ?.tMr#aX=gzA٢btnrE_(rޚj ߌHsDozpQJC-?O%&q]ތXjUnԄ.NSMY5(K!['M\ӲHJVR6 tzK&8gL[Aƨ05C2+q~DMͼ$Q M$L)@WÔ FO a"n dAն0sl)W",Xxbj#;F=#Al "/3jIg9%T"ZSoC/B~˷]:-ʘo勆a%Gpzvw~Adb`FT|m*,҅4zx7Z a!^ޯfVRH&F22$dP? @wwXvLz0u sHqf\y}ao5Fb6jLDUvcYȼ:JtUug ݞ>tAv4P6^OeȨ[ǡL" 1}i%8}DTb[]x ̯k?@cgeSQD FjixQ,؈)g>do..zZF js]C~dj" f4V$+CӸ[oBgea,"r17!vwZB؆@bNΕl17Εʍ>QxAOu Ɠ&fB Я!גk`dwV_ZOKEV͘K~ח:c4!>× aeofBx=?QŘ{0q$$N}gÀS<۸v&JdL+AY۠ġ%F͠K)p豝Ƹh}!7&QX ո3DVNal_<5]q+鸕Prв0e~l &5ƞw_8fmaH jF_? C~nĦ]J'L~?-=vG(қ.n;6Z4n AcNŊ?TNɉ] eJ5?z&rSێDt RIMBjl*CНO[xcn/žz*gx3KL+<.¬(R@ha-a:AƑuedeLo>ieQ_YXNif2odAHt 1;k@{8"DOoZ]BUE8}W;v?=M=i;'jub:6z3clѶ{i{a7G)]Md&jcKX>&]8==ٍy5mQ3#AO.{HBz'ĤEAdfDm O\޲ҁw޺d60C1M\hK,h& ZD-Ѐ[RiDϠ[%@45,soս¡Q7YC޼H娥̻laݽ5 lZtT+՛bXM l>d,>Hԥ&3eKyA(}:Q E|j.g7ɡ#̇3L~ B |/* (=.ێ#J9%Bg9kݖLcLΉE4\z.kpAX%StGtEr)`JG5|ͽ]tHG防4fP3>xy9vխS&LI3)B ^^NeI=L|:J Pz}x1\~'fe#<63;䛬64l$TNPgbe#j2vYhTx),YB/tc< bGv$'7no_ԯ\P;CWѠC.btJҷTx̽9G =~.GpٿA{r:$=dk |yvt]6Px PBs/Sq1Nyèf9?B亇lt}9vy]<_A P, /'_|9cITg03-ͅIS?]7)I(c۟SZG45,B=׀Wĥć-.gЉ@9!#iK 5FH´L6iQgqYFQtGJ.4!d5 \AB4{T b&SJB7¹tw ѼMygV)}+}Z+| ˮ̓lIlծ P^:> {i&<٩hZ*WP\$RYɲu *`9)q-U+Qj+2F;fN``*F:t ~cWGJwE o]rȀj5.O>ںVPid3:2x`eߚr+o% aڔ:}C'R>3BoBX(łYud/<t.I)RWʧ~vran==^s09j@_?eInuvola/128x128/apps/kview.pngUT /eA4Qux {<`.9Ƅrڐ$TʜUN$l3(t")NU*bD9V*IٜiT ;|ߟovݶݮz=_?oݨ&/mGƿo jҺ|@FQPq6y,1H@ n ~2mxumH dx^j !kkbCr9KKU~ e1խ `~no0~LY{SQVU3c{{圂UƮ˗[orCkg ~\æKK#8ĕ#k@b߀ad2/$ ih#tA#eVkI,,=^??\\C @|Wg<~؀4xȑ{6 5T(:]l&u՝-:6c#hg/!׀MPdvҞtNƒ+'U:m$P95"Qe =8c +<$Sդk0p#վm} jȶ'mt+EC:|“ij:ܙQ-`^ kqҳ\AGpQʶ3^D( rt51 sS=*P"5?w|Bn3`r_`ڞ&U6A$$$7S&ˣf/3 4zODg$L;$=XrT*@2fz4$Yv UyqٓR:*CXnnRg<_ٿ~o .M6QiiicS]?Mҏ)P`=ΐ(T,4r%}:Z?lJS%ӻk*\OM-iҬŨ&Qui:? L&BC7d]Q$ N?u` Q+v +5͋;wߺʎo.v2̬um߷-`]ᐰs%ς|fڑ)[JrE3hޤE~j<|!JJe/yur W}1&)(HK_&B9w 6#[WVܶXRjm5Y* B!AVSkb&ji:6`z 5zb(0S\u G1fL m]H_?N9yVt!o-Ny)hJj,!*AA4c':{ V?"WCa.U>]2%(>7Oe*;pa##xeW"u{}&?@UR uL9f"EFq[pA೨Pc-a*&sO} PK9)΁}X+:߯z‘б _ ]u\6,I,H~WlOt=ňsIc\Ur136>{=٥ʴBXQ I[x?O%Ftd>a^at (rRvK;[Ly)s*kQ7laQqcXwwwTĆ\-Rt\G "vG/̸6sy>ͪN>ʼAXz$g 8 =t!TihS_=ih`}w:dn$f҅ A)H"y :DQSED!Fxg!N] @L])[`j-0ss\a/oSK]Y3W$ІO}y½c';[Hj%karRFFᆍ} 蛓9Yk +02DLaH|k'*nIra˷ J^拪8v، ܶM2[w}Y!MLSy-E><4SfI.YSRyj-D̔ bΤ#ψ9gC79dE "0WxLڊ TTaJG[qK:9G1{+j>}?lC'OA,u3;,iWt޲. 1&,wc>#eY3h"7ԠҥQ8iviK'˘z, X^lxo/.-*UUcXV":;B˘K y^ d-I4nuHe:0/dN[J]b@uW(͔[!̦vվ" \"i>N ;|6rmb<"\@lYу\ 'O t>X>̾EJNpi㢣JUquR1sݫXgP. c_pcҾ~~ =m|N~¼A·[٨j0{a0N/?c!ַ)Rqx[% kt,Q7flDz KMM/㔝@|C l?ITߪ<ͰҚ=]=os1fQWgc} IJ8rW9zz^CCG̔+͊CȾ«f%~`2uozP]q}eV,}j _%]$.`Xȴ瞇5s<|>xËs`gתzB&%t0PJAlu2m^+ؕF;~\{b(}ޠzImyuJ n2\pPR>#}$FqqHIF:?캀:)F⌘BCZExH!E᱔/H1kNBUj̩G7z1m^MGeK?˅.U_|-r4T$AT:u "dIlqo^D ]_Y~c'!-!|:GPƴSSn딑JvxF)[}aܴ<;`YZXpۼw>U ]7B}K^JlrJU,Ǯ-j#$`yeQ0;kfdFݻ_5Z"]2j5Nx76E+P P&9|mZr;$AkiݺG}7ܢdmne0Q~$Bn 1V)'7LV ;,ltmEdRsί0;(H(S"k >.mF`ϻ.㤉:9ķM-X|' Hmz)U/YU,/#_!'h410`;7O>2l NQ,ao=v)7+!KHC2d0ENcBEW6#b^]heT* o I`=;G ޏ}a ) T;v{6Ļ$?QXj"cuSӮ#|Pvd-$lEaR }Imy@|ZʩHF_u8j{VAY*Z! xî:؊Gi9um.}}"x3wzFԀev~_/F%:kj#bl-?$ښ"Zb`O0zdrJJ~su\UoJ& ;w0<^Ec=t:*.8'Xj&OvJ.fZ+}JʼN&֒2ٶᰂrW %Gʺ`5܂ZE؃ L#n#+ oGe'j(۳CҲpW|wC\ڡ+vMxW+NXz*p3,8yxc8>2l~|BWU{WѢG^:\M=׿j]|4O5<4Peۅ$\-#.媘0\4#phʹ>J;`΃e}N1m;Nc蟓Ѣ|p"T,T{N!j(o"Er%*'>2N!/WY fQat+&-؇=GanMեIeO}x^JGӌnLIYmtn1c7[e:j]tr A(fM&C>o)e suw>&d  p,y@[2x]g4<3t?_^];(:X-}9ɨeuG ⡠"5t:f"RtJWZJwuWSH@8w0S+'/;DeS=Ц`QyYg9lKj Um3#JzZ(xq[-YMr A-1 :HP[bsbaD@46]r%f^Nv7sL)[̫RB~r2JZXW2{xҦ [6꓿pM"n-2R92Ev{N-rxjW^\GnOdE&UvATFJm5$ɬhTcNdW­(#2).XgQ4AlU~UtbhzUF]6rFLɥV3R^|F%̗?T#S\E[EC_l:ݒ)~QK]-[޾I1^/IY4)y|mw3I>Tʬ 4*Gp쮖_=nAh:A|:*ե@o/e>R#VZ{[".hEorE_yxlL aX^FHP48ZwTyF=pk=%C662"ņ@MT.u>tbSH̐NxybCգR%ul447m۶(|=^rLκ퇲ց…q:Jk\o(Է)A#ďk5 NSd6xU0p}ŕ%OU.ì =UB=]X+uuUZ@]_FݿX#a!价rZF z!v4l5%q!Zʲ/j_~er]hY7/6Z2*+\$Y83aF"M%xp+9{Ui nޡ5Z{_ JX)_"yuznJtւI5+ * G^|R5c:,3S16eA)x<="m\ ?JȔZ/^;iG B_u s cqf_9tu.vdaVtru 3A &0\(t8k'sDBH+gR^Koe"PZ7_:{ !ʊ#E+ >YecN:JAF|UmmUGy^oG}[3Aꐎ#0,=ZY`'5I@l}]9/Es޵Ţ'Wza'ηAJ?/x`9]`[/'(^(`Ϟ4W-Y.)]Xg2r5n!5q 뛆=ZL5X~A /j)D@b ]h˚'n ~9p֕V"^d$Kф#.:Y;2#>.\\Lz/lr(7|^ iRr?>ՙڗs`j`P)E_*m:~a+āEY^XxjamhDž,O{4tBv%Gwdx @Gg`!*YMpb$bv͐ u)*Ȗ ±Gj4:\>4/} .sԙ?H(s" xU)P" g W Nv[f/o ] ڳ7G^ ׍-TCsR7kq(9p) p v'M+߳/ţ 0 l}f$ҼOG) Ր{dȹϾ8E&i+Dh(z^K\175s+/ \VRi|{wm_-u(ntq#B0.v=r;6a8vuYf*IoU>L#.;7ڛalq%};u_QUTBp}Ьh& HK箥|j3ޤݡ õ'qSgi_H7?-";FG:,Zuٷm{˃Lǭ¢UZf QlN$Rx(~*]DZ?4 &ɳjmhzANڭz̜䢦V~;ؾ MtEZ_Cyb@y) qy 1pV}]ب%J7`z%(A{뛜wiE#GﻼvA|o)'8:Mc1\<ZLJ=2Wý듳Fe m ZK|v(i%21wɋl:ߦ2Ԥ ZodrW}Gl^_0CMDl->ny6d<܏]T?%A8x#G]m>5OZBp^l,ʶ.eցsb_hG'>yyN%z;D59H*vbÎ"$b͵~WɖHMf/- 0uu':{>&*_N \qP;pz?iO0VKt8<_ެ2!W[(8@^ʬmQ}hO~_/rbΈ3xl彃 =WU=ȔAj;Pi\փ`tiLYJseYHH SXj!7 ۋNs^,ći`} 1&+-zg*`fHB}Fc;Ki6Mf䌉Z^yĈM44u,08 %c+^K:W)Z& Vz-U*j-i E\ِң(m]2ZbQTڨmŭ9L,C,ϏSiq(bv3sŘFޔ 4ۢ5YBi)FT~=TD=x. aH)RsH(4"ԺYg+H:5Q"zE?H1SKr%3::џU-j}N6kv3!47f,/g9 )߻@(b˛wwJ~q;~~9z$+Y ,`-;gRŽاQn(y~bC0DS_*$=|7g%}ĕ1,{tfe`]rgy.0Hwt_qiv|8rɛvԯJuK0Ҡ:q46UQSFcj!vGkO9Na]}R®֬hcj"Y\qsTphn 4> bA5x6-%Bexè+s.6Te:#Tɩ_+yz4wޣ1}KDxh2";ƌOkUzt:ڙ}JYﲍhA(mBvݹ1>b-6k#Z~zqj UJa+W[0D_H,.}cQZw. ءM_O+ X,?+WNN +_ c))DO@lf: їk4w#R Hc}g4i'67~"GJvL{jG?t' FQwI#D/6BQ?р*%=Qq+VuiG5\]MDɞ80[r^#`{e^yI*bGgbXZ '? yU?i%f,6{qɴF2w!;b'{ӵ铈ş͝R{IşۀoV76r`~ ~9)#o q8amBI+~kSS]|be >v'/=1MbA0&t,͓qxM@&!VQ艎&coV#>e?5/ uL` 4~YJeޗ!z~CgJxU* IM9# Q@`\R$^5DנKCI\`μۍ'8Og첫 3Z7M3ާĢ,8u2%%fX\+뛥Jt sH^R/&b6h-l:>0l{Y*͆mȰSxmН&8򊬂.o۪$X,%?$dV[-~c} $țޟH >J"R --(Tγ&uXkQR `(Ku%|!&kvuO jG/#1[Ҋ߿f2Gf`҉RE^Z]ˬyQ*/-T`~v:QJq.}8=7^|䔜1SÃYh*Yy&Q#WM-\̇~Lj?8,u!"Ko?I`@iȐ?W.㒮ԜH%R NT]|U`&Imʵ0L0g4 1+/>W?sl~:J4[ 921߯zett0{IeUq$jr*mQ^E!U) \.`'>dLSk]MJm&dIϤ*;)Z+ZjBh|clV!5s|gFⷁn롩y!obaGՁAo<&F)wk|\MdyOYɢ%eN;14#4lP"#XkUT.E|@BH9{ٯ/?0M }D"SdߩӂBi0-Z&Dj{H\Z 1jB=#@r_q#\t r«maܰ~TE cYkMIU#ِv4;* T2R!ulӍ]Ѷf!*MkQ.;+_-/#}8G'+Cj0kϘLoӲqZx~AZwrR3.{`ꛍم'tK[u ~S2B`LRCKg.3ƌZM-s]V7 nH9؝gKM]bs0Mhf1&X%i闿:a|=߾QL"m$(~7{Im z5VP8ɯ72.Pzi# Y_̹TZ⡵Yx!?^ n ;"]eA{re!/uqV=KnBptsB,?54+]B/nͻ3 oC+ؑzy> :誅8C2YiGX&:4,#={m]_t)R9e8RQOfe3qyƌ^j\,:Ǘt|׽ 㲑V,q$V^3H'1A:Vϔ_7\ ֭N'5%fݭd 0ZƜxa>W09 -=#[.7#}.GqE=Ko^4$?1 a$-.@fݲCK=!Ǣ1{$dpk(Msrm ɓҨxTI!KeNh_kIK$&12li'[fz5;g>T89~ht?z#+uւ-2"zގ'a׉?}3cz# qA&{:ul0!N)?+p bp)8Р QPgRuБ>˜6 # FqŒ$NnK*V(0 :>r˄;W 'b ?EP^.:(2'^+\ US?i;342e1*0!58WoP;1&D;12W9־SO5@Y߱q*7 ,C&hnZJ,mekD/zt>D] OGYm o)7.Xpp:~ieS&p Z*gp1}4CAQ}mBx1pA3[azNw-_Y#o+ ,+( UF2'ƥ͐>ԡjQ_0mJ46;Uid U@/ȹ^)uo()&ŠM2 HiϜs‘~-; DZw=7 -S$:AONS[*u#+C3pԣ{Ü/vІ/D)N)\ꅃ_>i@ytA8`FnguRi @xG V{Gzy̓`Axp:ރE|e ;$ BJ`ɬ.jL+޷ViCACV 0+9Txmǟa a*Bh}w i9~>R-Je ,"I,d+ o\MfK|ַ:MklH4Ea`5yi^GNhB\I=QąrӕKk(Y,(c5V/aSDQ =Mf6P7{ާ _8W}=;;l׏}Ɯb \yRYbv9q Ss+r~3Om16oRk'ڛuIBT2T} _xqEjq".AA"Y+2wF ]]d`_P ج' /I@F0r\:Iqwd2&vpZS/)9|>>]4HSGV U÷@<[Du U>Յ ?\.Fx4Q!)5Ẅ́X/~7]fnpEڑJӞ g&цf{(  Ͼ&{?E?}Tq{#Ig ;FC^kQ2UAMS6=@&Z)\yZ G/hh"0_BD!n i L2>&G~*y|<_]ۥĹ}. ohmj2Tz?HA0 al.>n]JO*wDeZ:mLFOd-:(77/ mձZcPl}(6dM Mš^Bwl'IdC []t)~v &BY%+Juq;jjp}-䮯6JA0! ܖ߰ƪ6K bÌhn)/ NkNJJʴg|Ì wgkTC87t*^LC'.#csTY}aH7>)?Vk{)1@M=֥0V`)68rr5 6h#6K(N#'8 z*ySVyOာUDL?@dX="+J]|3E齸2dijp1x ;i(jtXmo|@jnSyyt G}8td؁ů\T"Am'D j^W{|,.K+koTjF2bw0ʨ_өȾ"AS,9|iÚ_jUSxa.= 8)T|A/!zߺ}wYF $pn{󰃆8S#@ ɛyGTDz|s@1[ v</b_]+?;_܆c}?p'ܭc+òEm],8M%Rza5o@k|ע^YNpcnG"FBI0%To@˾< X0~ c+ n֕\-`eZscz=VOV焄O nKbOU݆'N#ͽc\IJ9%tu+Bz(z巹 F3Av9܋D^V}C3$R;Wp<_JJnz* VCˢBצ hPKt91ut/JOL nuvola/128x128/apps/kweather.pngUT gUA4Qux |iXRav@q@QS!!J&&q423Q&lK2KmtgT\x~ߵߵ~Ŵ5Z&h Xpfw!^E1/N$jn=G~/|eFfOM<PSc+w$%K?y_@ݐ9Vd@`V0&`$_:H_ n(%{.z AĸA| u$֝.';mgP*:vE :@= *m42.!3MknF~5YŢ-.q \gH #16H'ʁ$쥬 0"g$ `gXinFis`K` @S NWR~bU@0]h]Ņ9Ŷ,pҊJf$ Z:c ]KP/$]Rp_ܺ̆Ga*f_,CrIev";X 'm(hvEJ#z'vm+؅;,Q^|FC1C\ECc ȝh2#|Xn( vn˽9:O`xEΎr^D{$@}hd1oc:s!Yt Dӎnai(Or'h9>!K&-_ƞ\)7yƔq S9&o7g4Ќ]\*pϼ2//zaZGЯdmpL 2Rk)“~dvOǣ9E2q]+^ fMZաӠZS94F.OHcC=t@wW@v+)ceId[,d3d1YFN^s㿠 Ȣ(s&"2'i撐y5Mܧnvf^7B5nF t!3U\$g\Z~ `t"Kie], "`wz}IB{:Sͪq[㫄|(Qp1wY#BgK*#DK!M iln_U&5* !eYTz 5Rd~ ${ufy̩f76Oc pJC0'吟?G)P'D+'epfK cqn #~Rgd0@Cz@N\> TrEEyl(eրRhв\% , XKmarB޻IU jO)r@ ēq @@8m3[^T#͸v,'Kj6EZqIr/EU`# di%澇ta);B+m&2CO볯;)ߡc=5 K”..'ӣ8> ui8r)f|I.tϻ|E S x'JY]* ˪ $Y3vfrwQkömE- jqRܐ"_|UJ9#:17لgs4s2b->OOg|fA7!Be #w]~>*&碷;;+^v ǩEGb9nps̩1rіf"z2_w ̋_)ت`W6s21+tέʷ}ӃཪѼUKis~,-w+97BskZu5ُtf>y3cp,-ܒV#c Ǭ8_vHR.vG7}xk*Sϩ:-դ_E Ͽ [:d2&$ 5%T^ic.r(u!͇E.i=ڝُRh`C25(f/ß(t(E~J^u%bzNk_`[ zNџ¬!c~Xnu Kv-~Av XV5J#mNtwI<9ٷ} VEz>z)s%~9ĭLd4f0 L#$F d Fsмt<MfB%͕z!숝|z5kl¤ Trdf"_fWMBs?Ɵɂ_.PYU[ Ω$&3z|/l>$|lޜ(z1u`em~ NҲ;U0M*Dx__~UiH7(bs.{:cctmI.a-6+y)> 6#p)u .x[)uzu zÞ~'#x.!AΤqu[6WoLޘ:|~`Y{@u Qj\L+i;2U R>KGJL$˿ԭ2ֻ 2A(l邜f!$mԵ@ mj%$ ̟fy+ g`U=")>)dSRX%{x߭Oe0p 6q!":O NwM>lNQLx9)YFPECWC$ )AtCglZ -  !uf!h0XWRt)δkH?绀'ڏ:?29TtRkY(+*`Uꇼ<6A.riZeҪC<&Tm[Uxl6c0[zh'G2Y(:J9MڎEL#L(/T0RրqkSHas]L08"$AB8׹9H \{ʅy^a;-*nVU깃Ow.{ Hû">l-sGeƸ8Mo;ą4dahyT,yV.|m\όMʁ䘽2ŦJAL.T9'T?i5iVe RREAS&Ϳ1tApAQۊǤx].yi!wYd;PXeD?:=㵭΄u[gjb wjac\`Ni{׬Ԑ;F#9d-ɔiU*pEXqv},E/E(-yrC ĝdٟ wggk\*Mԭ_GyOU (D)'+gffalury?Yʞ=A1nGk}2#!7̯7 DKBF8әn Mc$/eza' Mr^3+g_4snɗ.c2KW0IV6{;roܴC4Ez*>11#uE`Qu8WJK`rb]3?ΊՙRQr$b1+!ZVFJ єo@ 4wV>sz7Yiy X;jkj⺅K o n$_2=ZЭSyo7r y#&/9AV/}% Fl=!$K&Cb\э6ŴK#Xֽc t5t;˭ 0]_$S!\E,~U+>#@H+ v1$.G/z t|F]PS p1eDMPa@ΊoB`ByȽVëVO 1jpz2y7L_(s/N6S:ɤ2}PJ/kdAZ~$}P9q>1?4%3DF1ZIFXƗKg:A]b_׏8KՍ-/@iTR<ہffgdzV}IF9ް^Z*ej`2%jZ!Ma[B\t{ S%\A֤dB{)Z8ƹ>vuLН/̋]Mŭ%L및ƇA9u%;-%6ɧdW.Y>(u/n(D:|[p- YI:%KVV`P@~9/Ēש؅lx]4+Ր *nMx?ۙ;I!R"GOՖ`igOs7΃M$޹ʝ0cj!KiC"7CN90kL#VxX'-(QåY:`62"}r;MJoÑu A~ǯ2U8jqwj!7 ])/&2]pCtMD 5}zmGc-[:A, bwuΑ$Ŭ{n h s G=o՛:rp?xw1K w$͒VFZ B>Z6 {鲤VM=լhPGyզ6o&*Q΢Mk/J(qE'M-dѢ1[_͖@S+թFW_Fd޺"ҭ}NH6{zc<OArF<3fNw^@1'Y3FM񚓖FPEEøw.sX1~ҋ"qJ8(*P&|RXJvDqgb![b-X ߫ٳ[quϺ! ϝ%:{w'ŋR:Yaݚ.Ң)gk7bTP7 7^ȜםS.=voYDL˼n 5a9a|fYU qcAF}ՖVJ*55LV(1Yz@ r*#޳@?CbSN8\KnB~/aՙkG5)BFi2Fi{P$L!O?"ws\m!VMf1eY'΂ݺj}'o0Y}ېjA._nSpb2meD?p8rL c.pe-n!J 8 #o`b6=( ^NuQkJ\I$BܮE$ Ϧ-OWm2mX4$g:@/+$;Rr2d #9YES֐+|Oz973ovN[Gư0Uxg| LWh:`DdА3xy◓( 1 iΥXfF2'|O?ĕk=ra3zS,ny5yI+ҩGF_cCLϔ 흍xf˕dN0bsފ֪3BN5$+sw?bk^0PF\2\Tytn +<=ԩW$lZ((;.qv { <$IAބha/b^9 -cB܅޶& 6'4s/O_v1R][oa*w@yǏ|؅!3O9]n:s~{6JM@%!-Q%$Hz6sD%IQUt'0MZhvmBd rז#&#j=lZyYƀ"衳{Bƴ5Bhq*͏DY'VRY1F S(xfŌ>!ls_[o4NB5,ڄWZ ^aFazr ImA?`-z3[l?J(QsW_f'|܄Cjo8~qSQ:aX%ye _PbRV e6I=Ms&98otNF+,#KY^A|-<T*RXs3Ul8%A$SusCUkH󃞛U զ9LWÏqs٩MLn*NXrjb(i~zTtl|ox0%D?4!Jpg}JT׏% ۑ"0+ e[3qknzAf8OHtJ/Grƒe|`t9n"<ڇ:yip:@d0AZTm(gZ̐ T,ۀt{v!bdw+r=> {d"H']A> XZ _FRtv)KgKmbP:xݨ[4 -p\k IgG?h$FpB`FG(y/QRFxKw1ck^Qڤx}s.) ^)ss8\jɦ\WG(%'1DWآH6Пf­/h+ 9R4ΏVOXg+bLǴ"$U\7m O"s h[xu ;ok벙0WK\\U rU6DɄ}֖ 劃V.;/_7nx_AL1 DGnvD#u 9sI_OLjneq k6*VqyQ"L}s6շu5lT >cxUCdhuqN:z -ȣK!pz@Ml}5Qh4viz3vHL*l6mpkmr*IdW10#@$yD}bceo N0:jYhӑHRLju4`( lAM$Џ%@;GGG?ICO-揽 bM=n@}^]h`V*,qܭ nu5$ 5'̉0!I\bF˜ȶwDC޽pתf"!;7;iE6Ό#Tufo =VwU a Wi55Z;Zwkq WJS>3NE\a2J=e8{(zTny8+v/[(,Bw$S_m: sB'VdxJw_D,h=$^ލ˛X瞠R NBA1Z=lQ2B*8@TW 9zzD3hl/0BMv ą/{yਠ'xo:Cz!bQqBEfU:|q

    UBAaK>vu3a󳣂;×iҴٖ;y+* ٜ~V㚒H:G7xXFK@A6]h9RHȖ|^\ lw=ARC6:ziK'zX6@r"\{(NmC[jLo}G,+B xFm ůF &<3BP^)t`pVp1(#p9meqhcVl~gr#k:,w jw.5љ~ )JD"࿰y|R\x&/Xn& "R{ 3ZYObŬH$W;MQ$ O?>ѿ3v0wo}y Fyq(bz|x zܤ9U*BRH'/g17Pz=ejàVQLÆJ3ov#K2Hp8iI4)íW'G4(Z;6͖nn3&,dbo}<*zAឋ\.vAhU聁h+g#k;Îa%r2&4tt4'Q5e'r.;IR{H:\= *UjqoG@q*ɿ M~IONԇP`&XF|8}h󮽮jC{~I*ָKQ\yͲ7μб6ik3/^%n/)jA3`juAڏA"]34nc~}FЙ6;Lr{s*·Am9Wપ\ca;&v"| @r/y*͡˔X56#{GW+0m2dCz݃q~yw)vy{@Tؒރyfa)RnE\ƷPZ#;bYm7tL:2ߴgzڊ'R=$YPe1ݟ0x`u,&n\m[\^& 3ېrM|CNє#0r)w6̡UgAC{?C7~ F[O 1(/#3kwt(P;.\:#ӤdI39}or~`'G*Eߨ4ս% )r9h&FPLCez~|RN89uǐi4mG0,7 ܵcA3=\\攳57i |s7õ~Cok~Pe8kO}[뙻_Q!!{[= wV{Df(vdA\4w#WE2>Ff>2fnggaiF$HԆɠ<- )~+F5^ F"5~K;ߘ̊<"Lȴ5U`LvNZ.VP6VYVLokࣥ"w&!Q>"Mh-ij9sg50!tjuOK[d4bUԍ|Q}=kH_gi3 L*x$7O&{wd4 (F(f05*FI=IMiNΩxBq,6@/T!3g0;mho ,`D1F-P"uE 6Y nOu!|hrWZ"#=PQ^Q}2b4&m-}yŢ[IpO@*A{IĠ7<vݿoL2z xR&}/lfi-RR6FbȶҔ躳Ӂ)ҋW ӸE)͟1*,sr\'l | +oc/hYl=[qD_Krkv"':1Np91"YR_v &qj1|)7l)ԝnς{`b0r"ӭ“G y?c]*niKa_B~@Qn~ؑ- 'U3"fjh^ͶMZr*Vh`BLBgB||#J6{ObVNٿn[:M nP#n5-K5qG|AEP.a]Z6j wUwCgǷzAՂ\EM@z%t#}XDl_8E6Pl&[2E);=E^~8<9Tiv!ћd4 2b<-i FGGPzέg\7Z6e\mtt]mUޡCbyoZ*ʑCRߔONʐt&(+>_ݡfzSy)og?:; Ɩl?@jLAٯof>Mp76/@ꁣYfw%8}o[O)OԽ,!E}/5GK-7?Ztɂt 5Aj{)֚̂%92#C,w NB^b3|Vaf1bw 1s 4BF?O=w'i~R?R l_>Ef ?j", ,&wwZБR:~u[kwqh㲊cWHxŕ37Y/8rk'~PCR~궈Avf7&\^%< kr+*q0+F!:`+,ꠡ _9xRW4Zz؇G ~KIFuBOX {<&mY5d[)F9=W!D\ntv3"4Δ ?pb7mǩ܅1.Z d2TlEKP f8͏`6Ao58_* |6Iz%sjk|Y rO4^}LXʖkb*/VOgF0}xEj`vb:wA {(hd3Y^錖 pD -|cMC1v eN ?;3Eި PGu(˯= &q'~`_2$jj遨[>de;fdnG)gƘn9ʴF2F&޽/*mc]CIe6lvfi&` ,zzv.g_> :/:&G?NMۼ`"u6îg#AzXTF!UUzZ aW$Y3~/I.<jy)Ӫccgq4 }S;;hCS9Q]j5<5/p ɏ.mzᗌdpY}UaͬF FYa&MioP,P*9῜,#c@pKh<}jlSGJ&AΚcjbUA,ziUFGyKiUZOp@-,Hxy`?>ض:hż֍/~!tX=g+MJ P񀑵ٚZO!bE4B ±YKkb!fn̜:#~B {fZxm$A'6T Лp$z^v$;?AI:07Vr2 BR NUUE X]N!VsQ1ê+ ::9ZgYB&`&|&M)7{CXkH\`#|CRΖ{xpͯGml=7ǵl=HJyq8^nRzADx/4XƯ̝-(JQoyb2e>ܗ'f0zC̠I qعx,y711\  })!tb7r 龇x.0A~dBI@v2b an'A>O} VN@r.Y;K9p6VD^^=)> ! eBD˺[^-=.>q f}E9##c1>=ߣ- ١w 0Q_Xð Tsת8ڜ?@}N^KΉj]$FEᡢCZ~^(#vbp'&>xOMIke }9 A դO xQ9d/#3S5ִpsJdkoC\$Q0Mq쐈rzabyvl/˓WUEI-~&k \o6~$mm+PRVK}gafֲFPВ&rla7E9ٴUsUpu.WgB*zB(kio h@ se~H7ZXwͨu4tʕ}h`š v']6 @D;f ڮY̨G$Ft]r{nGXȻI/Fk!} ZtɎӑ >,{Fe,V(t<|L(EA 5fof]so &"7o[]{ѩ)GPR4 e?ٜ[sh ,%i!2F+uwFɻͼwwCM z_1_-,$. x+qi k,!paLW(}E듰'W,n n T-t %U+S sY~Mڱ$2ן ̪O= ݘL`B[90;P+kGL)UXLࠖTejk{IH}@_UGG$,7WOc0C #賫ޠKsh. V~gǤ# V%Ȃl;ŎN OODxb?)t@?/fh9}#H]8uFfԡ n5>7^~7o=^u*Պ ,#qѥ9g_ ٦x2Ӈ,O9]/YQƥs-,=zⅉVoEcϪ;7MMNѴV]L9\ a0MgML[䝋7hDI8\2n7*t\6ҹt>gJt{al5>6c] IV֓aav$~M^3JgY ԊL?/DB)xϬҺm:v結6Ljx]%Zu`W'2]0 A/ "IbLN'Ł5?= 0 sq ?>b "9M 0Q=7B)emqk9F]Wozq8KGҰuN 䄏r%I ǵp?(XyxIPNop ) Ӏs-n2wK}fιUss^n9x,A_寅Mrz:& f!62c,D6"=slZ[ vO)So"wI(5bҵ3h^&F@n{c?cũO7*M!ؓVPf #d$NO=85޵DȕZo֒I[& Un80G)Ybu u\!HK|b۴Bsu)H .L[VJ^! ?hY5 wNt@(TF.' ܡ|ޓ=ޣ:^Td3:9.4 M+.4326w#~EC< ruF|b)|S)#6OY"ʃ=tI  C4݇2[;1[[CC2ى WSD(@9jz"K1İ7sS&.gf晱 B&$8F*hM8dK lIG^u$@u1K2o X&e lFBvb)1Jr5_i&u#t#yDL8i$fPVsU;¯`~򊻘r]MTxNg֝uN.Ihmdq$N& o|\@j3&Lo, 60ΠueA}㉘_ȆS]ZjORdGI".5!5Og_t.g,pX9)w/٘$c7h њ^(ִ]КdM˷7.XÿVBR̫0!o¯5al$J5!}vr iВ*y E7+!O!pwlug|Ę/J/`sqn6na}O\x ;[=LM&UslB#KD mSn$;tHsrO7yjBPSt5sD\{A e¨\bce 8jHs0tǯ{^"{ޭU U@Mak?>*mu19[60.&$Qh_Ewج^!r,/3 \:n3&:_GG>N篱/dϯ,^F%PaI}'zcy6 r @2xH\Nv+/B`&JW|f@Jo2N~{H=`fzjN^Ix@hO\}.\p1i" L!}HF*rʘsӗɨ(`d FPc$S[A f2wƓyWLB;+8t~MJ1u\eUQ !O#BSg͛챰H R[ns/mq19ևf],Rlm0'?iü2Z };kCEKyY!ylȶm`֬)w*u[^EY}8,COMTyCKUJ߲΂Ԓ*8:2ψN3[Ze%6 S+Ց-ꟛOwZZ ֥qE~!23QId"[Yα8p. yf0MyDiL{Ew=iࢇ4gg:Z{Aap716 9¹rN IHIAI^?,7N_,4 ηb\/5҃89cjrz*i{LI\JoF9xx&,'0M/]hjbn:y" ݘ^ITqW>)Hi;3:sXENFMqD"D{ݲ|z==i |H}>мxyD 3_SNJA;+G+(*:?I̅*oTXu57Ȱ]TB+|s n<.(_.%S^EJIҘK5M;Y_/l<@dz`-aETa6=OMXPp]PO tI(lc0cpo3!}NhG~R־T˃ @2c7|S쏵Yc~~ Pa[{_XSNt2L %8Y77( ȇ{9} B[D-<'ݶY 7zu&N+,sncRA4pT4-$X:-w>sWy5H }ҰC1ɪ)F[|od'zmw%I+o:Pbơܝ7ͤmVX0,"]Ŭ#CbWWazﮌG$QD*d*m~]j5F^ȃꇿg8:_νcSP5%nf?ߤؖțsVur &[хZ)5 4^72x m5T֢0)˲ɷ#9lT |6ybCK1TBCȗ1S&h/|ԋ|)!{)!MG'\$9Hи Ns;lIpW1ԉZM薘TíՐi R􃷷ru;8"4[+,';I3GYvҎ7ѪqE[dGGRK ’o1 0ih^%p)c8/1ʀFX{{bj) EQd8J{Mm)SY#}3rl#nvN3 42-3m0:cc2@}+MYlɈ Y<eɃob}pcbѵ+Aenrnϖ++' |6#puuOwg5'MU@mM_>Q]͛}{*J[TF.n6iΩvIwLzaU_MbmMԴ})uv@%Y,9GLR- ՝('f(rL^IO:#6^ LR\/Uv-a." S'퍋{yU+h6z M&Z EΊbGFYPK@"K%zAQڳC\BLVk]|( Z̢ahaoc0黿q,]lěj0XY Ug&B/\*TP.A `|^@I8cأcleڜݦX h @UݯV#RwArD>@:XfzHYd0sV_/VbTxA喅p' e!ܿcvopR-lʔw& ͒hO??Ȃۥ6WčCS0*&GJ%u[j): ͙kW}wT2pQٺ-Fwؖ#ׇA<4?)&^'G|Ze!~Wҡ@f9&zu ɧ.KA= J1+՜d`J{TdV"TJ* G}+ zC<(f "B:#L)nkAeȯ^MsFuy8I~D^䩀#ˆ ir.A5pCس|OZFgJx@/:2^7=~B7G]m;-! D&}-DM4"ojү/@l:,\Y2^7c];CRkwq? ނn^׭|i]R~67xke݆ft~6Ns{ϸm&w ˯dwKo lyߌbK Hz PK$(B$-圌Rџ6SOR`:iD?`z(}uxxm(KSi`k{[k{xK3޶%T5vAPOG=?ưC-D\%d1%(ZL:`ˀt-j_hfgxN*:*BҷULRxhG=hP=z\NyhPqӍ20J4ѿH8u3}>|fFW+@0l7H}"nXfC'f|#TtdKxbXVY!y3SuHsEGN17ay!C̘)E9BTr}tlݵ_iOhc5ܘQYP jMZ$7SgcIܨS,}.vm]d,&QJ 5D&2Nz#xa%L6@r/zN\ y-z`B3xy7aH9Qv-mrN|0~1^\iIAV0хsϳ>MDi0l@ P=`XAYgCǵtj"bH݊ @UB _qFziʰت ײExi|im}^gUdG{kϹx{V&Lt~2D9%|wWrӻ&p}v|h} ہy_ } bQ3Ja6m^[6aJv| Й*P>hSG<[ܥW}b+nb jiiNNN7^Onu 'y^B }еjIk_miWeڴ!X?dMB`0Ô) Ne90AG/Ys5$H;%pa2#^cCt9Hv+|klfs!v-_^7 W^6Oy+SԿ.)SuXFgփ(<1 r:+Wa\?0 M&(w}X@vL~;.]@}NW-/7r@;6Vپ`ZV-,R%14Ԑg9 E\Eɶ4vG98ց4ĄdriVr-SY6ݻf7u8̪DwȠ>`KBr ) "=qEu,u[1KFv4R$'oUGfoݯLMn w_2/nEpi 5?;Pc;lfԺSyeATۥh#~gZETvHi֋3cEC&4}j_Kx+LfDYkC~G>@*=}%)x'@f] | tamɓ>409+4Yø%|Q(7eiVvygZ&d P|>x.s`l9Pj).>?I֌Ez6KiHǽ1.I၊vRD70f bԄ]%w &zUcG ѓ/2X5X0E4>-dGKSyH?f}.Z9i&Cn4sWuRBVL7o4l[9??)]?Ln誑k*\RLxR54rP/ϯhA9dSi>-H3K  zApFC|OS]qA/qFh@Q1h @ѯ\Mh5rE/>[\[GbEÿP̷oYԍ=RWmqN3\ܾB@aAl0RDIKC g?92P*~9X` b"E>n Rw͛Fb.ܚ @Vi؛18ޜ֜gUM  ep0\bH"H XEw{X}^EǺ,ڦLp<>_7[`WvN*@xѿ c,49:wfs?1/LWU*Dy5T҇>bo`o0皘dYEn@NPcղZB_ 5G)_YzMmԌs똟1qHE0YVG? <\E{ޡeRr>Hv!vߛ,#6>`MO0P  4c'+$\0lVr8Xdݭ۠(fY^;_qmR24|v5,եN'^c~Ai%cݓNA;={/ nCiPKt91<(nuvola/128x128/apps/kwin.pngUT gUA4Qux x{Xk YP4wvpW*eˬ,;KrgQZ8o `W:<`ǏV 1M0tcϵ>⤤صDFI4xޯWRߪ7|A%/vtmZ.透HulqPX_k5cVr_qh7 Ц@p# DBٚ-\͏,pM\Ro䗨w[XZ[(:DK-U`:t+~XƔބDUa_s #B9n' iaդuCū6M5|Z~߻p:Ͱ5=_r_CCBŠ# EILA B{DW5oy^yAWcEg_]~ $wvDPT}^"N!H$=thV3,lOV4+#} DiMєA䯹ڟܾ^À @a}KX6^&S*IGG(_O >47!,{{ D[/F䫽(רw(w3/\!R03=vVTDyAΆ#:=]FOX 9N]BjL9y 8ڣm֌g~G>8盖ގw>ëg9`g]8O:m4[wM#|MXHl|_yU|/2@8(-E͋zWjC.-U~Up| l09vP@.ЛA?:EQ?' h8 Ygp\,~xx`릚.ߠ7U e#B+; H+Yˌsup8j L=9S<<A\e年f@x!Ӭ@"xn(e WD{RwńvgO 59 ˼g3AJj7Uxb]yuSmضuiSKZM}EԞTzDٟ sU {c@Šf ;1Q%wQT{5ra}ɾĄ.C%~Y<7֗dcXw@>pH@9I+}z7V7Eg4焳)Z)#0N&=0<:+|ÊݗZZ@ٵoN~Fm],#3ZAө 11ŊD}zB -JQ*O9+0xGL iQ*Vo0^XRTT?hb^K*%%R І< 2!׌:7L*!ttts*Q0Ҙy ܎-}BǶvvp1=UєE|{o2Pv.kb4R{(eUzXo!;xyv[́G4_;29 Ȟԓy:Ga^"diJ4 MIW!DG t&^)R+2²cٛmق7==Av1o$l=3g0%HhxqyJ1W^L\4+I1Mt#BOB>N/+3#lj^(- z0 w,):'Zґ; %ӌi e{F^5k1U=)휶:ahu>PCקP8:{F׎4qw+]9sRdtch _{'*[fU9:0C1ԉ'k$%I 9VZۻ?[@8['赨¡9.4te@7&H ]9dr,xxټpW[y8q^l=ZuP]ȭAi nY\+k բ}3?2&6@}uƟinVZm&@OL"ś[@FzY"<[4 ݸ(ڛFd5anϴy 7]9N޾ /~@Êmǵ ѱT"VՑޟYZZFjaG 6L{5 bݲqpOJIY{& *%!zwU$N~55A@˭k? Ft}@5V ~F`ګ9Yt`ы5~>y1G 7Ǫ q]rTbj:tuX<,Qr2ZYpfF)8k5 ԙᢎQQONɍR1E71h5Vh}\Hs)'(<oCu~rh1Uǀ^'p:K,N%rGjnO kC,h6K^{Y?'`| -"XI[sy hk{,+/>ܦ]Y TQXI+ A60fϷYZI;)l4OlTn֪Ƽw3хe˾כ.YԀ]ǤYYpYp[\Qz!>+fi &=Sx[V藀"UYBpxq9nuJEVYKVb#g /*eeQ1)qP*0_;xԮ  tD/Vӗ{w2η @դd%%l^8&;IOk@^ta羄ԡx]73Y5T܈KbE1o_33AN|@J`9]ȧ\ŕyqqD 0Dc$w9CF;䚷31@b?!27&x##Z\9N.;I{-ݫW lK6ڡ7Lecf=hrJljMp"ϫEdG_2YgxRd`]]q_Kw|=6}O!QaD=b%%oi$CXy ?t%7[|L/Fc/mm]/M538ͰE|lbP/T!xf?0l i~%DMo-kl L&1b&{|neբ3⹔QP08p:3t';'TIȑx&r`vr)YDLgB %#kB;ȝ><)aӝ,yD#N(Tsfa^'cKWzb!"(ֶ-<0ݩ˒eYAl[Ҽ`(%Ѧ3o?w:.t*- g_ /PKt91P^#$nuvola/128x128/apps/kwin4.pngUT gUA4Qux mz{<밽1 ÈaNQ!ɻTsHK:IVdzdI*ERRyrH%Q#E¾{뾮}Ұ:ZZ#4Oͷ݄Og\hExcbؔՀOƸՌkVGMؾjOL7V{7hiX`B K@!|Bvv ڸś9_.Z%EY”|胳@ϣ}?i vfmW|L+jkK{A-h-eoLu;6'=vIʉX^N9?"jIo/yy_/|dmPcOpoxhvc'V\J< ! 3~@}؈&h#c2i)f,(ږ(6Zl)KB0r^q@kVzcn[3d50Vݒ â.HFN.nq.̟1ϓ'5 \~'6[F$vg:  û%nFT`Qe[i*B=,,}KBK)hO+a};6,ol8aC.kYG8pb ZDJDgR*|g߳ B*L Q~w5No݅os7 ^#|tVĖy49DT:y`ضKm脓dVJ5R$X\2jҸ K]@ \aUF?c\Kf1@bz¶R $7cHiIl㼹\b}$K%1h+씚Qσː3mߏ{W̸1vdX 8+JB؂,d`Ƞtvjl4)Oor'%U@o qhox2v܇Ɉ\-E:|e qt˴w/Ӫ6ϱ$#ѹ<7JIp\ O6CX vg. Ȗl$%-eL* z6 x 5wBVXI&_,Ele&v7N3 GM):׽\8LmJ`!*1X-RZ>#h%℥c' D48I*T`OsoӾz3}ʜn Cͻ1:(kبРsM8Ṡ!lmʫdkԠ{mPBLy^mFA):GGZ vnYCKatxJ _UλF)fE+u{ޘKLҼqi\pANOXs:u[@A8`WbǷԛ}0PؐD!-^;(pq{ItM}-J F8YQVŃOm}y?Wem3(|+ش7:=뽜pqrdY7h9/E+hYx u`hc"jxyMjr9ڧY4x*5) :g4L^[CNKpUn"kxPjŰ(P `"HhrcSgE&k˓ˋ8 3csھ쀻2U7K,J_֘we~!q4i&_%0'"QGYsn-A_ѡ`SdGЊ9yY-mOVC{W` 8=GQnćm DW 8qLY|J;*oއiЧ}vn NԸ@zīgxW !]TFVaُN!isb>iߕjIF;H:/P 8kiPYD,ghӎ|S&җbL6>M6qj5(5P= h6:מ,uO.:lM3]#hbaY9@Ժj'{ (P'$fMO >ǿoDo ΕGC [E5LŇ`j&❳AF`" F\yi\bO9Û hE%UYLmۓKd¡({l@F`/xm c |qヘ()t!:O P`pÁDܚ UQ{df3;9=`/ q]UC`.Z75/`UD@'‚Jh{J37Чȭ{?1 0Q聖I n?IˠoR1q۝+ifZV/PKV,ygO IRWS쏐 HLHB]>8 B7_Z$V^cj_1r >ʄvJ}o R hK~ozE|(2ܽig 2&VC]m=$Zzϴ~oTnTA߁BgG՟5Y,ai/|>4lt/=fB?Z?rSDy{ډVcQE|'2gq\* 0a s: )"{:9})qJvp\sْF>D~'sO$M>YcAMͱ!Pْ`< )-)$٩SvIY\Qf0BޯY\>ƙXGße񼹋IܥΎ hhxb9HG!c`6PV>d =vHR$u5Uv3LQly!̦G2eaz ]&xnћuHCf!o! u0 rq ?NتU.J_w&ݸ6NY} yoks5)c>Ѻm`&-.7j'q_H:n>w&>m Ģ=]f]. raO^͒AX㔊M9$|'+oY SVCq{,%S'w9#{5IVs\af2.=Ezް3(E۝AVQoR UQ;n7 a/? `mv&F`-A86Ak?NjWw50˺#cWvZ}H`dg<{A] yF<]@Zq1q.].oE9>QW+^,2~A@wȻCeS1#EysY E)&{#p92Y@NG8?:jvr4nJGNznϮ[]̆b ߧh-Ƶ|IZsX|GcZ9}E50qgFr=Y4X^OpiɸN,sxS&h#5 ۜJ ܥ'u+,΅_okVm$Rx!SD,e#mZ~)p]tBTl>HH,XwH*vA 쎢M~0قe8M4='.d1՛K"~֔|!ݕ> MC4H8ϺRw/9gYn \$r2=85c9o܄dul@jm-cΩmd1Nwǘfw=rృF[HR HՕ;8F= d YZN0I~tс`_T$J͢r'PtQío!B_-V큥$gNiy*tajpB诿Y)S>ܕU 82_շph LҠ>@GJѝՐ;1 /p9hV݄Cy/8h ȍԱ+35bNa%Iq#|°pc#_<U6P'FW*€F}uAl]`*<EJ6kqb#aX܅y-NZzs c7XD*ȧ?s^~.jھ8貸Kڇzպks(;3-8 }: g-XoV:|Pمw)gf[iZI -yu||X1ȝ2&[x(A(f.H̵/RpSO|whN]26l(Bzq⩒|{ؤ}m8JgWޔXxVQN-V=ʄl޻cO<^ 0B%a%9:&f֏k^btHԇ,{ jf!-5 T'+#ho]S4hǓd~~27L,瘇?ξNWg]EȈ@3*)p-0"sLNs>nTj?Qw蛩"] {M@smK \vSi5q suZ0}cD0+q33ĥ >@cg@_rSM:բ]&_S|%xSliRD7ٹ Nvzc9/|]{ܝF-R'A;if> |cߊd6 Bޫ>{8?cGfkIu c͚LZfu'RÝd2A~n:eyWkr$=%PD$+ α!3L2HV&#gZBFSYt"v2#i, [-J,[,^^wБC>Vڥs"1c˾ɪr36$E,M`, w&Ji+ ,:WՕfk?ȗRwr;PsQICAS5} EAcDGr𙮺tuk H)c8"7rX$ޓ,qk_,h|P YKwiX :#jcS0w~0, I @p.'Un+VkXi"_:;=W?I->5ֳ:f8v-ɻ \/IthQ<:-/Kt*KO68Sxp}&r|Α' 3iU:T|ZZurN'tZ&,V9詊Wuk6@,; >t!X5>^d $\[hNS>pjA튿r mH:x˞c|O/0g׮:AWL.\8o)<ѕɥ5V6Ged蔱rr4#YPSa܍~!|5տ)*;榥 yejU уsO%,*" q"hcyheEA:}cgHÀ]62<IdEzA|ǩ`{d/R鮓SmcGŢ!4)M e}uUWHEL"Dߜ0'Xj -.Nk*ŭlZ]>pw7~21ga :}\@3#nyjgNߣ 0a+'׬#wzZ % w%'[͐v9YuCmc,+좫,lכ0 /_93E˷kN?+Ajg3s並fy5v@x=u1˰;䳓9:So`:+D,^Zd`C}h-N1~d9D6*yVʿKS<b8C/]TqrjQFo؊tsi$N>k05 {XF\ԳИe\kX$6䤆 IA!__{-i8w#aN$`Z#SQGL|u|B4g>#]}G1+s*vlhbʿY7Rܝ~y#> 3}-Wo _%GKT Ͻ*sngp+~pJ2tS=CMz~X2`,Wd ;9,{8YZYpCIS=tU]5HRf$SntP>O-hc:viȁ|/.(nEy[nQ3@[;D;:I8r8_fb)4X6FRwz}| :LvgqlHxJ6%bD /~hiW~*6+s<fծ&16̙LmZ :on 1iy߻jwW?:s WqQ3BXΚ/SZ-MU'#F(1F:`zʬ-ǁEv d ޗ${> B =0%;grwd热=/6Wg'K?6c_B['O?.ATxL{d/C9]FSX8EgIF?*2lVV@⨟Vrx/e[[~"MU;N 3Mw4wRނZ `Ec[ӥ&ڵDw(ԉİU-Z2dhn,?>pyZmIu-Zy;D Kc= {= C5 Ҽz]bXٳ]JdJ?xlEܨaBEZ7w6@u,n#fYpFf9$eRɢ ,4دB>2{~T}譀rd0SP󬩓^l~ZeHe4s}Ͱ!;p=fSOZ>a\߁K݇HqA_Õ )*X]tM1*P`_Ts ~|-nZE9.ckd`wQQZX>fgq+bc(~)1_k= ~M:8): Fc̈]ؿfk]-{(n[OE2^G`_ԫm;JBb-ltƔhe[Zlii's<D5ܔx.nUxu-xu.]Ãs>mن0A.)j7報(gv MiRClhE݈^9[6ہ+1~G|teV01n!#kS?/rSEw?3!Y>S[b)Pפ Dm$N{'vgkCbO@tִ[oi/io MBP Qֽ_o۽x WV/KH0u"[pKB}DHY[i}t`v߯cttu-J:YĬ,^"=H<"4o-]aQC!LdP2:ɗ 0s5] 9t |y6v쿐WPKt91 fRi:^<nuvola/128x128/apps/kword.pngUT gUA4Qux yTE@wSprC47pI-ͬLq2m41ĴV-S,+Kziq۞lSPSˍ~9/8ssu}{rTPYY~d}0OGTN 5N ~ȿ ;@Q)qg8}Q qb|u>!i0LXDf/bz3ݓċ?jA8,Xyup7hRdjĕd@v]kWuñ] ҅s9jxLi+3lpcta&UTTdòN| aNp>۷o(uuu˯YC=f6=ҟ Wze ؅L>xheeXlS*}\m=P0WLSuږ7 V zXjeS 6w: ;٩rӧO e?R33lG$f@15^6g`r.Jȇg5@g<3Q/N(i&0((c$HfW J%00^Yb+$-?`zA'n 30Bg*7ŸZ.Mdr^j3怅QΝy NI)+սu7zt9AOKlQ)`tF{81thqTh#wlCx1YQ@ehB턌 ̥6G\=A*|A"IӚނyAoMZC5Pf[Q9+Dzx^`(@끤g{wǝ/yMH144$1yvt=B2.Ǡ,љi"$.WU O9p:[?3GN8 ]\dAd C+f[AiHVƦM+/aFF]34 bUvkd1a-Ew+q)exJT/a0saCA])V9^v-ᔨꖤTIQͼ8O4 vpVk#4Lr͛jnB ϰ61Xp)a6SaB{t|" VP(+(<$ޟ > (!X^K{!-JAw+(Ѥ{?w4pKS/ ~U X[/uꂺ:Tdؕ|VuC#ؘ< 8`kBNSG&[UrL~,yiA?455!;@p jYVNJˣzZ|R[a?NpZ *CqTja6nboZmm_AqԯH b`N'G;wxZ"^ԅJ@<*Oye;9,v9Bž={ 6uh<;jzPl9B._<9xU`>x <_&m ]}a!o+{đˠ*]%ۙ'Q}$|h=߿E>WawQ}UD.MNN *Ѣ^wŝ58ԍT Ȼ%bSK2apqBAYQLL4A(_?//µOOODƍyS\O>/.,Ы XwX jkfy5 &o" `##uٛ*T[ $EW p(-YX5#B)6,L}w\=~h𖐹/{ ?gGY>Ȕ.;+)9k}{4M2ݨŬՔؿDv/W,"/(7|^Zm4R2$a:2x)^;k:X"3|kJ愮D++Qbs@ {T]d"zeRH.s?xq b_&L*# u4ZU9YO"l2|ujzW՞bĂ;ሪrp(ц׷{;jq(v^6[J<{g|7@L6'}()2λ:Whf(3L@իGDWu ZyeiuBA VP6P6#}*ʦGh'_ucYqTe ypˎ>wέ&nN>IRkz,TK@F6L{s|Kgldh4ӣeΑZq}pEAоHh&u Ȃ]q>ڵxt?ye&'EZDzW~y( l'yM1/~n`f`ICխ[-o!xcMsir[2@3˩rv}%jI^%"y;SMRmoy*5nR^L@:5vıp>[W48s?(5J8#]=44] BkwmfՏ۷SY ce#|!Z {fXbvڄY} ]&.gW \>_Id4[ tiZA_^<1*Ag:0HL"Lí[>[boVbwot^<ٳg9vqp:68ޢZl~}tgW>&"L.Y3|]F*xR@~hxl_iLCeb9TFSp :30[ )XdDH**pqm5I[ǏKM ݛ5=JsK->DUOrwGmFsXX4B,RpdS<`:XcXJ((]֥W#ŏ*<|:Ep4NOˮ󏦛VVfvq|u.cJzpB4]8!.YϚWBy&)`{K:gu9h"MZ@.p.9oPuzퟂp$ԯyr f} y1L-}g ]WB(`ݶ>6c>#ẸxƂbE2Jd:ySI<19mt$i-ϯq~OrN$ }(:"砙NHǶak|t{v/#R_gJJ7 ~V$Td$gT^}]Bn'ܲ/,iPO0ll$OipM<DԪKqt[\[ friQքd6yr tٙ'҃8VYy)Cҙy*UWGH#($Ar-I`}G .Sw C 10&gP7L~c&Ha!QBBmqtkR~zFy1Zr !F̥QKD[G;[_w:ᚖL6E.EfWՕn4'c$],֎?<.y*#%HN9 գ2 QW=F.$ZJ(yp]K 圧8J3i-?Mt2NyrN^r( i&okJx~ S,E,Kldƭ鬦8~]j##AzIl٧躽\65z߂]kntwmH o:J &iW֑%;$71N ԴNQZG:|HZ|74`ͯU=3dn ^R{ۀi_!&,7˗쪏k|L.V`w ΏɃ0|EMKLua0(kfD["чj6x_#{6Xx-^p~@"Kc5gfWxQ/R`B+nj?Y8~ ][@Ӎ!QHp,&V0+[5ӗW /oqw {YWʏirPx5L8#K}S`?+17G͇"a C3jn͑ܓn|/h'̶S`?##آ2H4P','-xDm7 ڡ/UTXG[ X<@/`ꆭT^$>&4I;?CR4"N"Ǻ[92J8iW\lݍB!A}XnL.RS{u Nsxڧ &Į:D=K}t\mѣDeq t8G sojwCerWZa5rudZw f./$W̒"ޫhOp=HD0AjX$GCm?MQ^k]F| !W ̇F/FNh.:!)ᩳ;ouu*H;s<uiQސvnxV?>݈RY#Zs؞"},лu9tGK1GKҿHXb}-=T9K2jE==G0}໑( "8a*}R !㓶c sCm+O;@gR|A@Y)X-5 'xf>څ?< C62v}A {IWkċ^?oE G+u<*UKfu;C8:/OfOt/K>@:wLglD93Pf}H[f2؋!%~CS8;(˹p:>A}Ugz򎂊㟴83EV_7Τ?Aa~Ed`*A凕 2wF+jnrCډ`Y4g_83VYR݀kb5{3<|c#|w`_ Sf2x}w3f%^ZLה>E[#ڠJIY<%QNuaLFa%`` l0>>a)y% :c9n#.ҀL%VÇV5ԛ -W3ߋE 67Jgg]aΙ 6{u;3UPy xhXlH_VIWt :ee[+RubEQL07pCݱ&> "ZkYO'@ez zէJ9R d*s" -Dȧm=}#o9`͙贃Kւ~sJ; "bVlNR+ʻ{-P3ҸWDۧmLֈ/eiI֍L8!0PO:S?\|xwRStUCT`uߏڦnӢwBgQOJ!@pũ Ua{r\]J@+[h1TgPIBd~#1ԧ1`dAÃ$~42/Hk.,;](}}.8J.o>dO_P1vS0FD5%$k"xj OvD= :U9_`ye'AFe@õJ㠫je=?$%%&׸]KR@Xxu5!"[sN9ANNn&Wvۨ o8\)ZX TM>owV[MK˭3g#-vEȝutZ /^hu`A#RBMr'gHcï.W H*@3W\}~PB!7pvhCR[:Lx ˤ)8+YW Hg4.#>: 8"Hz+L:  w@2}֜Avr%*#.zd 2n26V2;m'`~ ۪VfjBSƵ*xIfI"-DO>+u-VKܢ4ᔎ!VI"ef,pE#B!vk+QHY g/Ը$Ys_ Ipn>i,k*CPyu>jrX:kAz_ߕQ?LI&iWb8!4o+ŕ7ӏͲ4`MJRث&X\!ьsVHSpJ?[:>d(\4K~ ]>y0mNH  3 V|f>ZswnBݡ xsbl5$옎kgҋLS07]NNEI Dqk]5]3w!C _ty}Qُ !#dۏe%KqXd,\qXs_^Kr[C>Djq~ lܶ>}U4.5_b]] W49e~h>m3V17G" 3ңFfX3/ ,Of-ޞ@o9T(pf)g5!'CsSͧk 8 1j%>0+aM|C;A :*"w]friӿy A<u[r1n٠LDpa,pW[=H%7Pm_&M<U㳎RH]ց[;9)CUqӱ'{4[(f#!3XXyÀ. I~^'s%b/EfD?7))l@|r%(]M鹽_TykVр30zV-| +~ N֝c6(ɒqE) Vdup3sYqD׾{X:Х&*ulCz4` ,vEs<ί*i E5|a8Yw%-2!ֶ)-Z*WG1v@Z~c 0˩ɽ߼Œ|hUwDyGP ig_>n x4kU6bR*ZwNR#AHWޗтKY w@8l!%k85ۙ|btE4?2{%Wm.`nUw@t:+a?#UK'B`#-ڮկ{xgfkWY5"SV{GyF^e,7JJtIX 4u~nv?fP,voF kfV ֪ڢF|;DᶕrjAќ*'p%8{PO]NEu ,agQ{bC:5(9LiMrZѸԡ TpP G~gg!D̗,U5$qqQ:\@G=\zWrA xwy%25ub~ZR!}}X&#-EFui{ "EKGt^gXEΨ='9]S;.bw09ۃ(v2znw9$n3AgX@9\$-?&*5;ޛ%Vl"M?0·vw٨Xj"?ޫaJʻu%XrϢ7NMj- oFݱ'XIvNo;Lc26(5)P6p?biFWZqxpjno;{?qf:Kulr=knĞ xަ".[gs4?ޘUSv"LO )(t^z-L.\ zɥ$+sIK_Û< ߣǽVEVQUO+J:q&5^>RQqsWS(p@Gh11"ض?pRRAyoAыbJTvHrQ〯dPir?)^ x oOy-.9{Wijc'ȎN${*e"QՐeR0c.w[YA3yGܸ\eѐ_b#:nX_{JElA x0k4"xkņr cvYqw)e‭ޜ20G.+rB>ILe:Ŏn .@QZU^"Lr ~ag4xy)|ޝrce_a҂ Q[/EP/)X&R@?$7?v6TvsF#7|YyzERX޾wN~;-0"Q.VL7#Nӱ6o,@.-7A{Πk;z8/9x ?(CҟMA+)kM^u5jݜ:?XNC>P s*3HGTu)"#i&y+ N x'+7RN{Kj):„yE 6<<𩀂LE}A廣gmWa»w ު'Z{֜=ה<Fw.7[( =XxJ6| R=הf)bO32M@~pUumHRtV(P+Zm!։Lr,kn>^qpL*~ƨ§O ^VE}ZY+^ӷ+0_?{1grKYVh8R/l@kaw|O^>m&Io|/U?KrN(ѵG;O^ t! R x0^⟬zDTݱt1lތ.׈)rʧL_1Zz<0^g6~]{ KeLW~.;h&=YⰒ"Ek0TՃmEnSҭ.qJޫm¾uw Pekpm{7u|ۼẩƒLܯ2{Z[EQibnOāQӫx0~]≠" ;RĬ]:$]( /ۃ˗Łc$Sl}4+ԥs`uX PbE>KAKnF|_f05-66ZC֌%D([[R\.D.g/4 19IO$Z DW gxՠ׼;mb(f1^1NytKpԦ 1|0, &o?e3޾4m 0$E.b{5npwL3ʼn$ ɑG )*kI %߹c/C9Kr`(JTZ2V|Q1Q0{L`K={3Ъ-< qDm];-j*7|X|ANR9F^b9Q5ϾJ8$P &Nb/ 2 +׀oh^( xKGR{+Ǿ=vׅ7C)'Lc/COb%äj4AFGFd[| 9jX:y) V/Q SCVszYïVqş׾ 2# ˷"I]mϷqqZ, d}i4BLM^V;\@KӒ&2[7%+^0-|<}~;or._&.ؕ%d|?GTW8%I%Qk"VG&^Mڼ.`4oPu$,VC

      CCߺG-f'[Ωbr23#%y4)256*Y$IykN[&;U;iݤ-C1v=J`<nlf*>;O9?{f\I"jzeKP5=ჸ{#dij V[X!>jUDTG7=l} `rL~2!zXs Ōi,0Hе(< _~3V y076DM^ɬKxCV܌^S#D04gcku J?pS_?:L+[T=d<'G\(ki;qhHCZ4tkA-[A[ٯ8I. EI&dY=slۤ 0eBl핓KO 7Nv^$#_mF+2=5hH_vͯD<(xe8t%vH*+[PUgDb>Y@^wb.DƠHGIRI׉$>5p/R0'XdpCL3::? (:Vň3T|[x]sTb$d'PQy#mPHg^ARl[ (F1э䌌E&k[p+7WO0I]12չ*ƟPl.x)&~vTf/~_N0}BGaSF=TBqo,콓J~o]?'9ƀտ7SbNg*8"p6Mj( #L}9ݗia )ik q$-)qYM_:)k^au/#f Эm5o[q]GP1}),-I,\{zo,\;@ 2.6L%RO' mrY\x\w^"HYs S SF:L-SR) tF-C^Zo`K\2|IJ~u}M}^==e֭ E?PKwL1̑CD#nuvola/128x128/apps/kworldclock.pngUT lA4Qux gP6)$BSZ(R E$ ABWA@A$BUDEE((5`A  $;~y>>;;;s]gO׮mJ Z (mwsٳg+[3ue@Y\ϕc>F>K;P#B㢚%i e_WLFa*}F+cZ;# WNQHbspPp|- \0a*PHV$B#OM/vSS2O&S#>Zc渍sۅ{ok% NU R#0vx7V*Xgb:C^-'qH#g MkS/9z=pNezxIv%z5ude cTCa['aSg @m %X?[ױnSxRK%+Q-[0hS8#2t7`X)zNij}b5xTFyۀGoyDo ӗk <.~Ze@ Y*spHVz`m Lu,ɰޤ,ʅ-lKHJY8rç6D_WÿEK$?.d?ɶ'_U[WC^rW'|[Ȧ(lə*fUE%J[oI{jw49ZkյL>s@~UB<P ?'ڄRRUDA V4;tѩ-\r ~Yb˜5}Bsߦg1*@,w~QnVQ=7-3gQtoJbo%ȷ/kMB979L| C2Bmѯb\GfJvFF1Z#WQe7 + _Chp.]`^Nb%QB|1PԦ)βߡaƿt9E)g+~pŒ4p^]ǧlhǾarK긱!J!ucp]RStWo6 &0=AS߯۠XO]3쫍uvO!7Sh^űf_Cr5I /4^ۻنmmΑ[6~5]뽥ɅS*Bk\t7_-\c:..U/mi~H O3 xSpFc?:ƭW,.Y38yGFB+&^6/=æ[S-Woi2Yrt1|&E8DwsCG'QB&X퀔}~Zg1fwD&wMa} UAMR]3~8*-qnL(3JQFUɮ92FJZ^7+`+tb] GnE*ϐ=g$] ĔNj[Eٰ0['&[ZDe;|y8kv -XLUQ? g0ueEeJ׮63@`N0ezxUkFv=/2P,*V/s ɯu*f_l:[Sʹy( =ԾY =ڑb gkSᓈGTKHvDX\#1:Jp)F߱CxkȴRww-^/5-%[-0VeRCP /mӺs˞`-?Fnԑ |`!'oZKi#Ռ`ڧym4Q$*sx^$Mp=\TIBb ;vj B/Ko3|#ņ'|ٛ{6$ s2}.~;řMpi4-+ =w ־ 뛐{![(@B"?,{kѥ X`?#co3HwEנ#U77äT 0R=ȴI7bje&l,w4 H,^5T]Ƃ܄A݋w=Jp Ǯ=PiQ,":7?s4ɀ0&u-vNG{s6sB~&?;Oኋ1u< ? 齷-OMݍm5ܥKw7oYp7kw ~Lb} F x0TcFGAQq6,7Zsޅ}!s{YKw"r\t TbDiї{0 0?`ZVo+Gk=K}0Ate"4vs֔ c+Nb;mgCWk(AZEߨ 1X;ol/I ߅="]I)Y#XN౦%,^Ż0: /*(FX[D(wv믩O3NXpi[]cA jMmuꂇ;ٝLDwriO:m~ۓj5[ mԿ b@y:f9[UI*0K;Ywǎo"#V'ygGEf Ĕd:>yD`Mg$(79Se#j~wPR>Y;?.,&`s踸֞2Ak-Vb\݊ivw`\TOgPCH{#N (/ʏlPٓ]#Nֹ(\7wzoW?;Zљ+ކba%ӝB }/ M)Ӧ1>yF?XA3i ܢ)!ڕ2F(Z;$k D# 欪$ mY:>f="`[1(k;[T*0lx+SͨNt.9e%;/ՖՂ\I[9rqOjAEpkM} E1 #<@~؎tzZe>3wm5rh35U`g<oص.U[3װb=}jϵ}aoGimq8QX^m߾)oSةG_H6%6Q !_ϲ߭ kmW2msPu@t%:G;w*y}_⚠=2fvXD:_ *r ފ5ΎE,No-\@JS3#:[ qtt.}51Aý״p4P\xoVa,U_;*qwJ0>EcrV|)_lOyۿS+0Cm\@a\zl)hL^4 tu&Mˬ'@؇݁Y A߾*7 U->D^Y'ǀhGmtAV'"4MUv&i=m:o2ꕳb\F4uv kiXG~;6μHrݐg=7uB UgIl%CCvE:[ٝa.&ު7; +vM (+pע98laW1/)$O)1֘EE2= &uδ+,-A!ߖMvr{Ƣ9Y"5bo$]Qۺ`}vp+\o~9L}D}kq%?IqmMGe2Ӄq\ƁMT:j1۱̡AXv򵚙ޔΏSK o(L)"HtQ!G>q g~`vvvhY6uz_0s[>oAS!y'Xɨ5wچ+w۽v?mb}39hM5bʃ_>HXU%K(7u}F `#A-;EڂlR-new+g?hf&迿/3Q };oR*);xr1/Qno~Zm,'?yΑ5N0v[/[q~ۄM'Zc0|l\ osqSOLȈQu֚-tV0ɼWcKMԋtRy:P/]m mGpP]i4QInY6/ΒG~GcO|~.u{$Y%bI_w84$j]Z2*YfVG`R'59MWr\&Pdaks|~@}C61C)#bIIIaw/>cClj{Rtg#̫y I_Ӡ_zx(6g#2wQ JXXX)Lws⤦w*n-G|S' 6)nY?Bz"bTn-FtY0Lj//|| ƪkY-̔Yw;zr6PRڕ ^gRZ|jlw_|0#;N]G6 !{$3-IQOⰱbjɬ-rZ/ 鴷RN$}:#B(H6FZS1hJ}~۰?=en0eq\r4;> o1D{_VSMN,LE#Rr"xXw.h|v^ |q*[gr)b7TL+.piX { ~h8FQy{bK RY=&Xo^Lhڞ{z1ֵ-qk5u tu!}k}TYUon-DG)M?Mv۱7d^[6}Q|5c<1#aU~ƂΡ C *4Le,ɼ&/Y'45oAd mΣ|VgM4m^&Nͽڽ r)"a`vHkCO]K!nU.swbI [$8v_$:'^P]2@/UN~j,FT=-d&~4nޤtY;E'|HNCp-3@9q~+2Uty 1/vPc딘{ߡ^rIaA7Eg-#]O2n ьz:2DJ13`joօ{ qQA09p-ɾs*[ԃBH?3?kX? @+N VKh7xAYAWa3[%xL: b[^]s3>a~0.xj0Ѡ^.MQq-KmyVj8][$ݧˮQѨ r|llV*QEWŋƂ\#O~ b+X8eJ̎5ZߗvA(a0?ד)؎M@eŪz]04 يf &0ܲ 绿&_i{ X*nl70hbt~T1&t%+ou[%JK#cp#9g2Zqeh2@.^\h+%o#lXޟY -K|S6t!$33A3 V~qhDa`=r>9j>cl#,T_Y' #z{,ao,xڿk6gm6ƘUY˺wu7D`KyL.-M,ѻmG5俏:PʩSڝ-,Hp|z~M ^Źb!٪[G9)AfTۋ I˘!lu]vMD\6WM8zCk1 )RW%RJAșWϡtԵa8<rb`FsH ggvHĥR4_Y{15?vl( kAG"M̸.܃Fe &Q'@| fD]'껦jRb݁Sυ(BC&ԳNJc pxZ~NmU//*;|ݻmFϼ BjD?7 p]|`dE>vj :d i "J 9Ȥ,;8=B#H]/LO;-kD,9E/%Xq5{}~DFf݉u5y7y֬t= /JL\]UeO!s/x>D'@f߳m90+wk&3C"d)~<2;5(_7#!co>5Ve#xU9j?9Do:5%G`;w(6+w}.X@LqQ`IB]wPntD3+H2$ГVlm;?wʒ9WL"X7s#& eű#+f3W*GvÆY0c ^\X^5wUSB|Aّ9:1B}Ak OljW`Al+zwEqsC~j3J}MeX GYEӔsr{2_<7hK|orC /Qٞ8}>Mq29b~=ѥ_"b&#Gu7)~~E_2Gw :'vAU"[fWdZ6y"n͹Cnkt}Z;=1dTjUƱZ"xb0%i⽶>[Fe*ҕR*`/_!>:nbv&U r@k`}Ђ{MN]$}mQ]gLzASyOz ~L,n6Ob?]e dHdfyO~AOzSW~=K2úWܲ,FGfYCzSwI߁`,[_b:fBwp}O=MS I{oZv-TwOȹ?hTp+&B=ڵmxHv{5c;tGgktF-~'ŋtZʚnjK͢YG*O ,c#VEʄa2 ,&-?&/7ż^,<[tQEdL+4% Ë7;,CDȑ.C_ *<>3^->U.B*:D"tTG0SȨg:j8OwbX-;M|2Kh@,{;Vi ;$fdMcJE?ޟ ^ɧ1؇ #okI?ɃDnke z$hMHBy`ڿ~@o %jF ,YT╁ KncKtr^r~ K%Zl)d_\UR"$Kش/؞ >2zzx[M~ +;}ajFl2t3-'*e[Qc%%f[Y# , R ;D#ь] 3~:Dm|`c߃TSd#,6xm9BA%r峺$pVJ_(QJܡ vZQ~G ]ƙa=&Ng^$Kqethp1f/=&w@5ڙB(FJڧj.TjvP_bZ NlݪA%OPoSs5,$]Jj¡XZZ(Kȅ6cM=szWE׮0c;]K' 0UxΫnˁxy^h:;@~ |.D$8ZgVo##W9XW ;)ĪgT Fu$doyא4gEZ1IH*OL:WS[:,,n~)cѭv5MOЏDx,@5GӮ|+m'&t]"s0%-KS#D01g}8Q]({DaGT}dzvU6pz˟AtZj"A4҇^oltsL6h6|w׿#IjOL3xi`=T3z>8SޝU&Zr([ nfƭ" K$ =.yV }[vv I gr> *Wuk}ge̪%}1nP*fcBVBWېH 7IdʎШM*6b+%OvP5XETY6KTqlȝRNs3kӥNG4› 4U +pZc-zhӉ% vī8 ׯqV'nѷL.Vv)^8M?urL,/rZe8EW3v@US~Q+5&ӈ=ź"$J㹟dT+ї~y;;Q?7|7bt6[ 3򃻏J |ca\Q ܐƴɨI?*],J |B0L'I:4j } :ڂXʻ5O|Wnf[EKHcjmJ&㟀ӌ!wLSvN45 RlKE;esu945hR:@❧go0}Ԫ3^Bm~4`3jf!LW;)JQq^QDme,#;0UߟRUbb7o3q/݂̐ZIU{? ;VGQ #>޶Z?晝 bW}T>r?We]]|1q0AنQŤp-ADBhms-n-׵.]Dvv0A_cPƧG]UT&N&wdj+*9X̪͖S/A ?u|_~\խېf_N.†M- Luߏ>y\[h}WLJ˱:˂Zn@2}mVtԾą(8%hDDUfe ao*QTaVKS/לtg$-m2)e5+kWaÐg4uA^iSEW" M^֦p ,0YO=[XvIPŹ|wS ݇WKԣ|Ώ5G6xH߫U s++Q'!_caq bK%r-ĸ/?Z8 @#c0WwH#Aa?3$2kdmWJZ?e6jӧ|6'Q<˔m۲)۷apeygZZNHHL EkAW_wF~SGVCJ fM*d Vzw`LwS~HZ!ч%Wuګg#gGbͷ&E`䦠+^I4G~)lIѿg|J3F1Y7 팅#=Nu8G4v ^Y69`Nѳ WW*YXܞM /eѧ07 COA֞1[ynooϤY1JU$[W7{3X, Ɩ/cٙDɐ Oh}=ʢ[_ L;r-,_,df ߼3;BhbZFw>-bk|q"nG 0$l7-- 7pCzAHd2w!WFcR "D*#{'ǗM?H 1v3Sx8rS$6֦w؀jˁXaR0$vi.6cE1OK+{H&ZcK>a>D2ɽgŷ]99WH 0ز(B~_QLx tq`rPR* Vzqӡ1|6~ dpp[o&O~y"=w X 3cSO[kZ η  FN8pg2~7s*~Q3",w$XS} 88}=j 6er0.U`ag|ӓˋ)nzWR㳙qm ߱?|(&Fnc*ЍOְpeU\5iLwtB BK+BWRa0'KRS:ne^,#2ݡǨvbb31౟70/7k!mXZ(sp:rx/na&;_3]moB/lBd}=|pf%[^DN:+' *q'O̿'Es^D%pAbD(?.ΕQRD<$̜ 397s74zj֋ˊUT/A6nT|q *tsCX\fd (](]!_lzN7SHWO>5vAGI d>%VU_//A5*uV+^7Vyo'~9,^/6v+Kߡ,*tk@y מd{ߕyV`0=ŜnQ0UO9=YBZ0;GuPQxY 3&ޝ%8w;XDzm~a<|Gb!U " ֡ǚ c-DbBLn$[9f/ ;?BZ00T +?SVxXzϝmuTvt y[Sp߽׻n @pbl={V*u;?WƝTSI]w9~NNUMϼD-co2VŖJ'6Ɓ>Xq*U,6B,94g;Ay5:iMUkO|{oA;z>­^),[ڋذh(CVRtP/-=gɪ~IX(`wNRfm+[:a s2I1jMVϊ^)kuՀS;?S"گ `].;3'Ξj񩟊8![yJ9['fMcf=x`͌,PG&y0Fc%iq/1Fo+e nɬC'V%B!U֮ӗ);fЖĦe?j2C )l܉\MηM;dIZߍ+Q.+=/n(_uZ79OϖVk<bvP1I,ܴQYƷ3&)v7Uʶ]ԁUtu!]<P,mao/O 7w)U҄ }<˾[zY٦h WC4bS/V}])nX$#fx(V(_WџUs5%}MgD.WD"ժ ~jŘ4}ύmް"qDє5kOy_dW ߠ6foZaй2#KYvN٧a{Yꏷ䟖ֽbV!;YǕX>AJBh{i`hxRIٶHVwd>wDG0:0ِr2xKnuddR:s7'[QxfT.`VVܨK6Kk1zι :|SVl`[%Œ#\}8sh0"b@&!8 |ͨjh. GZed[n|5G/^ Ͻⸯ~cyS*9XVbb-`}*̣KZr5(*~>SvM< rcѦ%󇔛&UN喇6p k|޽eo~c|~ݙpounb#,֞v HJ>/^_ώ*c!i'#n w_ۅXkPN 5C3Ђ>!3}Ⴝ|z av|ϥp:h6eGea瀟,B:/L6ދ LuS?3Ħ(e%O6p-mffmfq kuZ#s3[38'([ZFS%JLĽjn* :?IQ"O.L NB`]ʣ]wà۽pg%/Yb}J[4U@xoWz!adAa oclӵygJ/= ݳ9y>A[Ah)j!j[(Jdkw5!7+MnuW:߷ؠymzIm0"L}X |)nOzό1TIݧ>twR(gi$I 7dBMq[bd3>1ڡe*V("d%=GԺRB?|&qV]1co0FeAq$BWn؈$oЙˋ2UliP6o _6(;s6B66Otw=J?k; XA5{npm;:CC٧*beeQ*]Ӏ k'Ba C=ÍCt_Y²kc~V`oro޲+n΅M;k];3"4(]tcPG靜r;JwtHw XV\n pM$(v-gozdbjе(dPǐ[_9S~"#nhR2Q:#|ෑ)b4gns.a_qӡ; uɹ{4Aːv(Z2f6<ҿ^ir>@Pz硚lߺfjPK]=1NOvQnuvola/128x128/apps/kwrite.pngUT ZZA4Qux {<<\3gӜIrfR1g"!ʹBĔJZRĥHXrnnmu|>v޶ '& n-7wj^ #h[iuwwEO haڛE M:>v`7|$ ߘf&p`gwE`Vw[$QlC,er[R6i!h.U2NAIrOay[d㬗%Y&% %3Z16Y|nzJ{N1X. c1+6 x}\ ,F;FQ'd:@13kNH9n;B7j#AͬGX,i|pZohD+f \$f6XrR7[bdĆ3 ӹĈ -Ey{97}-''y2 Lk+v}niշ_vӁ(X~'#d1|oelX8N7>c wG'*#9rGz R9аuytNho ت:p/6ݵ{q}Z>7npo/.7̽߮2to۰+; ʯ2~nN=ksmTB2Em[h()(<*v"O!A࠶3gZ-*z}G4U,7+@ +o"_4uaX_oiYxzg?x͒֒n9I)iо :2 ~SiC|̫ Ap V:b kk!P:fq-b68P}{G5#r/P5h}cXhXYf-m̟R3}Ygiuc&ıv z[Sqk4'nq ^^+MΟy}PTݪΑ߿YCat?$EnaC/ /GHqNG(owPDD?,UN%MX:瞪Hn;]θUbebAmjw ey&܌PUE} =Z2i{" ;"\"3mMlAҝ<jPڭ(Aݶۻ9mo- rUxl%E%߆N( ,,,*QT >ާLm!{]m ˠ-fz X/!OjzooGhڱβ2Y, Q:(T`ߺܫ),~D\2î%D_ "{nـ]+",u+O`kw$K"oL&Dڍbڠ8+lL `^J1V=e޴y7Lu'[1y5uD}2Nu~}YwR4y:MBb"Z]nTo7=d2S*"C( `%)ga>g&ONRx*8FEu`VA޳[dd"&%j1TLz©~o>΂-EdCokS O GfXqvd9Gtcv"B/mR uGpY -/%dr-hIbjyL.Ri''70wL&^V0̘kEx] co("}f3mdr r,}˧ZV!e)!:Z],%;0$8b~O|D{,Tlke!m]S{s/E”C\֯=ۧa< g~Aa_d{ b7nf(UW}16@4CxXI*/#dXjcI9m<3-y0 _~Cט*GBSRP=B}J@~JpV`wɏp$T SrS˔uZĕK ϖFģZ㭻ZvL )|xVn!qclI,sbƀ4JZu}lLlB簃yiq 4'ȽI645_ydږ̹)K%rӃ䔪sw۠*y3\j1Y! FQL7yvU,ȾAWEu(1W;vpWKb6[[c3"U9~-RX8_J*Kf2:_[i*+t.ŭT}$飬\4} 0.rӅDw>z퇺!W]iz))Տd]%gQFdW2jI j2U,gP]yBŚFIJcgct`Ŋ~:fdRHAݫc(n6cmmi,.l <b5'Cm H!^7I }hn>4=nrR>DŽӛJ2"Z D o9cpeK6,{vՔCr33M\tJUPU.4`U+pLƲDEp~Kr}E|6h>6@[hF=xjb3,#Et۷[&ΖA SUA6%5Kڷ=`Fc6f #2QjE'2|ӆH[fA)?B?sh+d F;b.s9ADY/QJ{ Ԍ}rOxT7Ql:p}YB7R11n8°F%ڙR \Ľ lef[6l@Pg M) q7x eU#f}.6G ꫳvE Ӱs\;wo'!"=?IS4lS5X}p"XxL(ks;f0c'i?Ww $ qtKlhEtq?\nI]xYd3gͅxa4rA%eG%5:×Jֳ-5uv0g86~o )ʾHfZ{45AhVvbiSHb=ޓ1;>fX"£ Z&/7Rmm&ЫY=>cO|N7&/wZdî]? ?/eߏ<4z}fu0qu3D7h;l?OUd3r Lt`5U`G 4/[o լ0cy.fxDCx#6Q(Ce0fm`[@JPXܝM$di'"q.f=;z=w W&rA"E1k㍬K/>WWhog5jE o} zS)mk+hka/]aULJ-X}cOmLV qm|ȤK!6<` 3gM|>N@MՌR~lZ 5G4W|O8ϚSGUQIp~ 0kw&~~<00zez;j3]^cJ1xUF-߄ʥWA7jK+$csr/ڽ/ 9==ͱo>rw7Q51O,؊@ԢatA9M=CjxU`s7= '{[6xKPmN_i4'WYFQbs Z eL"q-JO n=<7 37͏u&miY!4ډy}amړ\VvRFGmfv;=Fcp R;1[EK59G? )C,P<R[1k&h ybd|';}ǚ^Ԡ-km@|bJpK+I筰pGFݥ$aOT020j7V ;.UJJ f/;7KOT*Y#i/%v0L&(b=,[N,| n~a^dD$mEOr PްM76vSg\y5B}ĥY)0ŲL*AFRI 43߃ek"V^Z5,T&Ul@^G3XgGxMe􈖬6+;Ь$ !f%ľmtʔb=%ZcFs@67c7 E7UI\ V*OsLwA$`b|ꃰ:b}{&6łhC4jfb-Aҥu`Hj4-9/@o_,^!ٜn-aq`x9ܜgXM 蘈,/ͣ+PrOK,E/܊Ѕ8J(d`h”f"մ;#*բ=]WvmGZ*'j+ *[L2l?p _GN⬝$D$, WG^ Z{31.`N+e4UЫtla 4Ҿ_XHBuWap|]d[.B oߑ2 l.-լ` n3G?k94:oOzSMLt{evcX\F4++ 2f|< G*YW[\8)!)/mL{۽=ZƦk~{ÊHR e eQa$f!VWr(P~GuC\>2mzΖL8K^:ט9cU728kR<[f\{ny|3 zgbEa]eraڎN_\_WzY2)Eu3-?󄬟VӷõUabj=f/<%eS6[x~-^jYg>By(O_="2+08rg說anyz{B΁ 7lZD-~ս Ƣ A-=Q%o({\j!z2 mZM*2@k츲2}Ѯaٺ򬬤-KxoLBF|:0^ {m])'Vn(@赡fOӞMUIXGe|ثUҶw꺢o!T>}D5xpگc.W$%/2j%?l%[E8 xDĸ됚}c' %1jk9:9dfǐ=ԗsdI_$~UUڹ>"`ˡuczH,*zUtXVm mfGO&2ԛב9YO)6)OQ|(޸G8=BMNvnfz1''=nv@Ks3a.Cn㠠5Y7 ecR56ੲqU?u_y|P8iϟ5q3W7W3o” ;g~w 'тcD cE:îb)Cb,4rQmdZֺjp [EcLqgG&fŸZuR)P ,D,;DJPq ~_ &\R.e fѲ{aa$29NBkыfAnӊۍ+] ڦo"W֓gY SEK젮W/ɐ2gx@E!^" 8*LsW &! =B)Iر!'ayL7-pSgb@_tߥ 7Y޼MgDZ65.K"ޒJŎMX~s,GugZc/ yqOaM/r{eMhRp &`3ڊR>Zn͒ 3p9m$Eu r~Ux 2X',mj۴"G=bt Ūn8ˮOY#Gr s8W|3&>#DsS1WXg m.° #0ި856y`$-ݷd8M۹?_߽9"X(viR29'\ ww.3Eq\ >%,r|2Su]iȀ 6xH&(G^rS~w@|p߼ < x.|ʫe*, g9{ٙ=MsU\{ e"Gp+v0Jա#?oiw rxga-:͠ -Zql"eH䒘)[mfjq2.wXleӃ2"`&Wƾk/{a/}3-y]y\kyejNPCB#t>ŘŒ:Kww6sV G{hvp ;.*mWxҕM,ʝBw5$i]NR|i+ 7e7DF<3]h*W#T"]d"c2E 'V.k7sXY-4$uh>,hw]"ca5@FwxN׻n%O{roתL_ѐȮNeQRA4i_k쫊_e1`*k7 dpڿ)(J/d qOgaw#G&?/CbR?˖A1aDFjͿa~l{8e`*he8WG$akϰfy3$y?J?ĄǪIY؅<Ի#JH b=\D핐.TV`~ k[][&4k@G\3A]=S}RՙߢңNM| E(a!A\\'V9drbqD 3߫t0T9 J7g /:w۽$hGw{%]x- !7:"?ϙ>º 7fA*duaÿ1Qkë"RL}gt U}_L#M!N&6ŽL/.ΓL~}>V@WXwBӓPzaʋz?#6F&;_\!vH;[5'+&p4*ĹrNo?}yXw:ɔ4vA4A JNw<Ǽ>XЮ:!> n e)zGPt[֜{,4ք., }A=jҹnI(`~+R6ʚK7Tࠀ لM-'{$/3ZtƯc!Im$6QPߒ=?fI6LSP;SjˈD6vvfWd Z6eI퉀☗Yz`5,QvU@R{Ug&zhEkAi/a)B^R( ]VB2[_f^5f]7zR ҹ7/`0?w X2!B2-{BCBYUd>J}r=?6LeR/EH(Rh"oj@Qp~F8XFE#lV(*&E]ARQcΘ%j SIUȧ3@m¦KiPOҲT"o upgk +Ӫ)JQST੍pKG . %#ې)aR6&}Yqvsb\1]${PxFWHw˂ۻ U6ʽgGs 024 |`jpzvHs&~-ωXJ}-rQ:wpڢ8(<`zzto0G xM fk_;t ͺ6UBk,LrLMw_E7MAqû8 m|um L#E΢&U8-M'~a,cEbz/l[WPKw܍Pb΍/jy::JGq{0R%w[xy|UU88ҾřX i}mxͮys fzl "o8X0}$Ya⿍ϛW0%daR$7=2kY,+to #Ţ2͡8 2rHX0ԌћrUQ_ۏ݅f:5}j@3~|8t+Ev.B=:ܯMw)/~_˧rB=!;&}U Ob%;^'Dh5*Ih[2gҦN`=7P}^X. \% [#$T + S|M߯K~F}+Rwi9<+Z]8 vV%0?ֺ*Pc=uGgoarAΗY:TaGY'2CɘJ.&hzxk̗f0z6ܮpmGhY#lZw:a s'1jup)d2._8kN5 zlpGЧ-! ֢LR3jOL a] 1(%wA3rU;^B݃ 1!!¸<9˴=bosgk:!Er\M$]#,xT.wV_˼|EN V SNw RvN.h񔼟UQR[qow$QKNSeHJv4j4AfMŕ)-aOq{7X&ڈ-߄.c:< 3'w8ƽ%FJcfGiDC qUU|a? *C5<|'%<1:ZK*N=mvj9<)Z5H7˨?"s#pJEגCCʤ|D/HÃZTύ{l~HڿST"">'Ȉ֥93g aơ+-TvPѼ:|1ԫzHW-h.n%A7ǬJq{7v5b|ȍNn i+swKcD {Vm%u!WoxNNx eMGnmbb)]g.I,S$j}3!jm߿1mװK7._O9yC{HHkS%b,ꗙ˱{G su=?Re, DԒ$2'xCkz^]catWĿ:{57^if5nm 5 /0%j{oIe OpUmE5l|ylP|"x^B"6+3\Ln6\תtDڠٙ'8NqwiaVr*=tFtK] 9W̜PH)q2dV^EݽxF=m1Am]>>iɀLZUt4A>25\=}ćnr@1D$qBg&Fm(Pvh@ٙuzFSgx_eo751PcI3,-[ċi_| ȌAjKU%;-8Z2`1¢jm2cvEYEUj0f;bsNpETpso"d,nL&`wO[?u5$#%!+(cx_6|,Ϲt>*Vt%ISOdfO^αA=]ˬYF(7,l)ßȂG|R2>Hx0|zDov)4*ʁ!\Bpyll3 (?Wѫ&DeEȢ*-,"v΀Dw܃oFa?H~bcAn}(5 o@mm6 (781~qF'Y4;i^^QeuMڝs`rDKWi^ [=.j'L@TQfVsz289ANH2J:ZIФʲ_vv.z!w^#Bsц'!o{rU}`"^8" IK~?vGeא/sO1SD z ?:<8v&3V_5SR/99'>Ukȃ)4HA'cej*iQ46MtTR'Zgc;vm{/n U/_B2/ zq܏=0z֫N. A*;_PT U<%USU;VZ lG&O FxKe.VNK@$ ăP78*>}!)G}7uaйWX渧J$ye]b Q6L,': hTf&ѱzhw~ ozh 4`pIy CVs2rh'xd ïL]*I}e<9b:]ޙGb}尐ޅ}0$ODwʨ#r*3o.Dx鎦5BޓtƃGMcB\v\Opa%LzBwdŇ$ 'ᾯ<3&jk̳?]}Q,iF 1ۊ)Ƈ3>|;,$WiQjۘE=G]~u1oڋ13oHYFuj(1Ut~xڅ_Zs7Q0/#W%Q.j30jdd冠caAlizp&uSIuW![mL QN!: UnIbd@'#<6X%L0ͮѻ>0Y1n=RW }d=۩zܸ8O.:zPP*]KjV>f`)L(Z\o EfG=W"of%/Ȭ%BRPGaOӷ8q@5咊ae/ S?nzF2jc>ܗ2Bo[x)JXi#5դq}7L_, ܛWp2헯 oZ$U]=fn԰cm$m=>=p[̟cmwK-zkN|z \n'tW8dH;ά@,zY8!WHVГz W EU h~B@N"@vǖm"߿PC<AA\wi 5Y~F@N''|D%00k*E="WšAnDaM`md}&J+[5 -| _0t1tz^o5%N.G a6艋5|uB%.{PwcI =*7"v!z߆h|_[M?Bc} "}Tj Sf Oa 3)Pp3W QKW7ூ6R= hTj.}`gg1Z'vWIԋ8GUʷOgr&_SNƬ6_&a11s +JZy6^ږU]rFÇqR=qj1@zÞ ̰3޽ =@2=%{k*&e^YXY9gHORb$VxEf)<!u4pߔ)J&J$%* #´R"";YƩJ^b<2xO5z55۹S@ DQN*Xfc{?u7\3R[G˹-P%t{SIc+r캻]؍mŖU¢GI[)蟱Ң^M,T_5NYTx|;; b.JY!b{V xt|+±FsEN`3Px_!ij e Pk.Ʉk"݊Tvʞr-WQv;|aj4Iw>b'1$՝%{ToU!/">\q4ɒOQi@!oK_. ),f(.Vjnςu`AE)B,nj?lNGFzɄIBPkHp]I o}}:9^Gۿ -Z៼xgGP-Rջ:O_lmOxpBTT.!ts`do%MǢ얰G,ڣ=pf9%&}'O#,Ȋ)N˧Ij [e'c6feG(*d"lf g fX/*SY9\m_(+Dl]p]iNYoDzMIeRaKj) Ǻ;.fw_λU\A7\8f΍hgߢbݦ}}Cb@xjJ{p|eC$-%3lv˪,0|TsԦ#wQ"1Jg[իdN@Ws\V ٕ PQz6oȅPKL1Lw"nuvola/128x128/apps/kxkb.pngUT lA4Qux uYy]9EC.5<r@` d-Q*#-(+33s̬7tt8)>T ھ 'Vf*aS\;mylKNB y3f L2= :!& c<2 pN$=N1qǨ!1&HT.J2aM.~LrJ"jiEᢢT [#jy,+KVG75É9Jܾ}[XO6*x)ڿp2o6h'6 `ٳai1OdtNڲ%&Nm#!C O Dyf?yq@\T74=Y,8dc؎ocTE$U\Q^$:o1'+girov6{/~N1!||r mmOdΝ$)E? E&8V~9Jꐷk_k#d?rh3a|կWL_}r&o,G&jdrT-{e}z{ʕ:&&ұ]CQU$hu/Jx!ĵ>k,&W\"U-W;>RVJ˩+ͼX쩞rBgx6gT~fGw۲GXEMԃPuӧu rKtI{*)2RC{ڗNZ. qX|W!0"IůTџ|5/8䈦RCnrBIŜSs4AT?<--nӫ,nom:O&!ߕ s`ݺ֮B#[ c\`ҳ$&442,قZf`F}EҥvuqL+Ĉ<r 7?. c]-j_]Y t%:"pQg33USzr?\wVKAfp(au5&V/V1IK_QXWUH*t~K`0DЕ~\k10@4R^u>- OL՝+~ZȜEO3efEyzd雍}eq3(JhxbJwuusVcDuW$֨3gHVu E;)Ii=A@LQZb**%M+fwLy8|0*OOTvGiF#+u,YF鱠) Z P#DKsiˮ Et3STsu`%p))>Xa^7ۏ#c,!\Uw L<ZCVܣ<('ACfcW\\ a5Zt N-8T!}pm5xJs:3g$IB1XYƋ✾_Hg [88󅉠 cBU|KyoaG[OBj|B)M<} 0[ }yuޒMG$f2}W;Th öͩA5]{.[)n~PvE? W,Ŭr v'D)0940%`g-hXAq8* 8z+˿΢~3_t~!lq @#OytU MԵpo\LnNW]+ nsow5d,ooI9gY;(#!Ni.)U{M8̓bKȀ\ Rʲ4 1}ʔg@w@SҦfbT^-AMD~V9 s=JNңf3h:܆~ezXyY^K4Qt]>AGchdwo6ƺiJtS}݇C: E[b/cƊJ8%i;H0dp8+S$Πc۵r/$*/0g04Hk8ЪUn(s6B:w_xSXH*&5Hh_ւNX:pڗh:G!St01MM/o)EѥNjCZ چR4*|hi&!wcr\jf\X,YG*ܮ:'tJfK[Up6A5%Dcm5CP^认O=(PxC? &0Ӧ& *Z/\hҾa=Rs/ E*W]`ebU&'.@JD O_b_^-5eiwAoq{ђ 4&?:k)m />Vћ!u{H Ge[z\2#} V,GYGWp:}?oG T'NF2,߼wYxYǍC~7,=~]Epv.tv[ )3LrzGu_槵 >(Rt4'0i5^XB@,Eo𒭞>PT– ٵG' &XnTT0\МcV{#OzW>V? :hQR[V8!=1sjkTx+.H}*P,`\Q5O3zWqՉ2^Wģ{ q^z9g#>3߷m11QVH)gyx%y}t9EswQ=d&Ff%`m7 Cݽ>Aoj۞#sT'Qt: ?͜&f9^53GNR]6C<ݨFA~\chL{7eCKB$GJ.w!mD+fsUú˕[y g]H뮮'u"Kr.']eD'fg3rU:o0½ČCNyu.` c#f%Kϱy%s0iݜɐuP[_6حTwIUqum[X sox}Z5q@TK 3AuXEy& x zs9ƨɌy'[c,Uu-T\c?ֺBfo% 2CeV];Y?ko?te ̈8!(g]0N,]$~8 #># JIkS˞ER: F@i"?ϽGe3q#3y)9U}|ڒ_.$W!N5_h({,պCQ{Un[HKܫw"/4ƙ?7){N2lmW{VTUzz^ۉ*^N|"MɴٙS\P'#㈰9Y&0ء۾P~SQMMQ+]c%}t;u~ҭ*J? tA,XiuI[ewO:5)3}u_)-_nJ# VW\[ "WX}#Ys[.5T__}'<*qtlY/M/ o5@?I~Pƥ$3 b2MR{iQUK9rqBڿDLHq˥Pjz2DV=H ÛU.KHSy# s }EbuC!lZ̈$fU@ӟO85/(̔HB"^^^4ݔu]P fZZV(XSut'cmK V(F`KB,0e} N`4{S~}eP[U~?!*0e8t˫N]Cs}ρ{ҝHv۫v%}RaZ9za9CswBu:_nK*l xٖ6ʜzիҙDZ8/x"fkƩ "lXc:"m爐%sj5X Ews%бBH골.=09gUa Ml8)'CZc[TCOf4h$l5d2լRYa3 /QK4"B(<gw25 x'P 'HPKl@GPVOxcal\;ηru45J0?;vkRr&lLO?h5_kj'竴%LURyVwԼ9)=Gԯ}r%يyk2Gk7ӧա6SfsEfVc+3afӒ6&?Ȣ2 CO*ȈxĝQ*&LY-f*S-,bc$Zg^ Pgx P~ևhsZrҔͩP>km-O9<=ybh//X6Q!gVUbMJ處]~WڜFY \M0S^́]փU94I2u(3MoXp|FƮutRY0GaymY^ JV(yo6uwZ}̛N6ȗ<,@T\lǣPW:H1+H_r_&֮xbE{n x)e⡷!7z& 8ώAF#[,?}(&s{R6auBbѵYU< tDM{ Mgy'Vk&6_W^~3@ڞQvO,r鿰~2 nÆ58 eC|m}1g/Fe*ewcln<>C Gќ[jN*HbLM6־Z.7.yn MpӒotlp1Sm v:{4yL"uLh HH0(iѢ )Xm7iy3#> :BqEKG.i(8{STWUUr-[V@D~IeÞNINYwcHKy~ "kټyk^d}7Gm<;9A6+$茨HjfP '?{ qʿHspm-L4. O 7PKL1waǡGH&nuvola/128x128/apps/laptop_battery.pngUT lA4Qux %\{(wCpAAk_SvDŽJ; bB=G=txyD"}L1a0*RH(fdg7y @ZaaE@pi"׃>vzhdc]ѐ"t9C.ūdACY K|H>Oo}͑j.C+J3Zk`M9f {GtP&8ai!n@*S#tWmxH;,]"-8,!OG !'m q;p>`M^eQTTD*aМ}i99sFzE Ej9?7uh8f6RL3̴$YIhnW9Mw \8 jBa$>2ZJ9SV.<*8=2>d+䉟|tŬtZAVȐqP֖FZ0*̍o/y2 =fkOHrH-6c/y/YQ-HÞq FeO! i^51R[M2}dV5ǖFG F(\T4G57i.,Ka 2+x}WX@+ı_KGTkNw=eXZ,!RۋPZ3me`9@-8 {]X݋-* ^ڸ1DCs} ')kH~>5A~0GS.n6PkiG>T? O>[02 lӪ-y6(E>K|kBMx*Oj8#l7YVfDhxXB02K !+_{T9Umȴ%09ksC&-ܖM BLӐ0FwjKyL}V$j\#Qz'Кû| pJYM_"-h ԍ^< PWK2'p(7-KyCr`e}ss}/$ח>.Gގ;dJZ2zA|Kc &!Pt%C,3(e$ͷ*qg7[-!}"{Bt3ITQ@Q}ٶD1W{jǠ^ddg v-E8mikڦ<̥KT65Xha"ßfvaÉyWx:4|ۋtfFdDႉ Dʣ1Zu{V" &}T|}oy4*Y~, ú'R"™&$=$9^ϗՕeYrNd,[** ?tԲ21WcZ]`g,_}t=3 rRxg*A͐0RuC F=Y]mReP d/sDRG(B|UY+*WplHw$ҙ~ cߚϗFGJ5a#Y颦04YF @ (/4]+y7: .}/@+lo߾tLM*T54ߤ= edLO7=CZYA_JWCMt?=ۭ K@0>IO h{ ܑն2MqpbO| |ʚ A|Cn_U[8_wξ¶9[6]"V$ 4~~OEc1!y+DAo _ssk@X{tmI;lBNg'gB<ޔ&˨SZfMVl#ϯ,[|22MRLgSVb̙Ϗm{}y q:̣cv7W͝`o[ ?A;]#>wku?"@|3bKE.X*쿊O-G..x^UX"oK)@X%œ++OYiߑ>͈Bb*zǸ|24ҡCf}̬,"I ἑ>6DcS蟆h|[{7b h:M1P7Ž|1GXL&&ޔL` V[}e䷬T!2Eʪ#H;;;wK1W}+L4hwaye:E2> `L!M[ۅ&k I/x}s~zׅ-O`)ooLg89#q;ׯżuи&TCc83MQI TQ0%xh Sc'0)ɧ@wz< :if~dN$+;\\歓وOY쮿=+ ޏ7)7Ff/\B/,fVN"~0uT2N( G{9|3 #Usq !C\+_.4V(q/rcNaWC[pM_8{d|{{f߽IiϽ6jѮ#vqKT 9>ռ,5*X9jo֗ycl^tægcL.@X^^B''eh+1(f p#e$حKvCK_'Fd#V>SyCZ}HЁPT[αk w[ ]"K2g7R[M0FXi99ř#||L+|!P #!tLdN@ Ҽ*3d^R41k BVR[4=ezVUEw(h0lob!8DMY 4;]oh^˴"% d2<`dkncZ۠a6,H POzbRPg7%a[EZ-{U=1\sNnj9ua/ *D|Qr&# Ex38V]`l47dhb,mdWUAce- rX28ct>j;-'Pm {"\L*# ٜ V4P>"w,ML8 cMwD>6= }I/F)5ި[{F0-;k[S䟇1;*9wk'+߾#^]q:ኼ .8ԎGn#N-BK ><22iTZZsP+įby*s͛Qo=Rp}dfqg:(ފT+=l_:vTM(+7|gsG]y7ceqQцN:h;ה0Mh ͢c,3EUC,nb'bEp벅@mSt|2(V˶A,ۤMMZփANx0>kvT*|уOdh~3fD#3fnNǮ1}aTou2aM%՛Um7_]v;*||z礼s虥^M`'AaU>o2u`k*4$)mG!( qb57 ]ϾY?9C'-k@hw)V߰LCFik)e}+!.u[GfԮov-> j.uʻZw4%a{*٨Nbn)H3J2I4E{d穗?M,f ;  /!}xv,]̝d>ls>K #M%ϧ/K1 3yYMi}FWgOOWW~oMb/?0hwy'7}|s aˍec'm"ԍkRrsDkpXt35aۛբ|0KߌQt2o6(\doNZZ $}H'&_r&\‘:n+"a{;%WV^kb>jT[yس۔iU?2Dr"w!mʜİ O h㤅~YmsJ5Xkq"WE9(c]f !>V5mUdMH=ɲt-U$2쎙Fmfȥ!_:1aڍfŶ&[Kc9}21$»4vҸ[); R) v|IJ3LfpVfuW|aƵ돳/LɣH6 Lm >H )Bv #X!PTux!At5v%Rk:)l+Y;1:GG* Z>E$TKA?@.5.Ё9FEŒqe[f'-" ߾ue< s\:e:ktÿ rjrlG?kB9d~PƟ`m1UByÑSf9I٥2@3*(&e?(&3pg.ZF 閅* 6KZ Xy ^ޯ5 U|ݑ,% TCP?֐[?/pAL?" O&~(*k¢XmC 0Dۿ \8GzQMlzV5f֋!-LhhB4Ez,)Km]|2o'b̿4`Ӌwq7DN"!†>Wi NPZflٲ+2rrk֑׿'#0?77>2i$I}ޙzH}PP%jblpቢG~󵚪{҄_s.T{Avul9_ʦtsv~ӑ54N|6%HLO /rs#_-d\7aɒWp7ܶ+VB1ܦST/Jb<Le~"Aߺy׎8_J+x5 ni3ՌyZk+}@_ a_Pr4$wY5pz'A k?? >_n 9:٭2Cg@4?7B>ksf5DԀ9ekٌ+!\'CV]ww - 2|(\2ͣ@c;G)SaH\^ W ee€e8> v9""k}DR"W V ޤ#/Y]`r>5eϋ.D`uQ5$Ne0( CN:oӓf/iS*Wlʹ3p֧,[N2D9:n>@<5=7fH*5 TNKu-=VЀzZ]tWwj-wi&~L"gAi%yÞ*aiO+piLė@7dr+}YvĻr*-GrvCū2|hmS?,D7@ B57:?3Ths-ې=J;5ӜxB?Ҝ4 P p\50C!Vxg⁼#;ū\D3WECl{Fq1Ǘi2(f`~qɉJ0hIJkf`;vFwb^xk##^p'Koa:@.&Ē|QCxv^Gufo{cұ&Tqڂh,+N4eѡb/8^MIuuPȭd yB +ɘ3@B1o#ys ts YL]]%ro+,_ې%ȷ)}վ7ы!TJl)rW\0򍬙d=Y} 45ͬ7:`; ̺`+O5o3GRՄ,c=, &ƳQ_+:U_.P%CVR$'`G.'x|+Æѱ," =#vfN,4liGҽzB*cSWoQ/C46ԑD.lM7#l(~Ebߺ8u' YIʢT֮T:Y"vRIAk$El3ӓ!\͵TsW; *CQ2i YMd6h} Ƈy`,)kYZq7',r57i7Ji{_uLlO׻X|_ JY!V dQ[q D~йE$u&)Tq dY͈OoTe'bN Sx*\8 F2 ZZZ3y;;&k@Oax& XH-RV3<h==0~۸"582ʢESɊ̌Oܒ.j&@ 8`kSa栖`Ac b[DЯ :%mAGk|jFJmz۾~Ba5VJ,tHD#61idn H+(k^01C2{(`37),J8rʔm˘L > 뗩_赘^ZBX[X !C<'\*lÏg~pTSWtpd ?Ȍʄ QH`̥ 5ڞ-?rSLݲ}|0Z. ]Q$-pyZA^q"!ZDew#@|d&BVM^?q}q[#. s&!J iG2 gYwd"[4{aGy@? ]X?FOwn9m䝽%967gרɐOsʶ+N~(M7V*fz~Fd&BC_(J/g{Pꩳ{/'F-u @z;&qC /sFtmpП:Vk=ns&5 vELU&/' Pkڀ<5!̅"?NQ$h_WDG}+^P&Z?2e16WMNK 3m|++)\L|d>KBt$(kW8_0E^,)r02;>Ü sHjo z7% :%0N*Q.25a /%,~#HCS01iG\ }f'@dCvkr1P5.0'@(\{=TP A_) ]%sqoR$.8OBѡc¼K锽>a-l&ӧ D7#z/C͟bX zl~;̡Xs~z-^[B؇#=fg8 VCeGL8 Ƽ_8civ=`⠘t0gdM ^V1b˥yG9pIBG40T?f3c-IXjjs4C|7?ũ{Fи_%4֋6həwXEJw75C6l#iP>nїyvA|ȯCs 1o8¾ulśtvY{XMxC>Zm`{c#!ye1sۚ x8%N p,{XTpyX^ŇE^X|%#}F'K厵{7I9r C@JB$?<^wo!$LI_y#2Qnj܇2%]IGh54 t8fw3KWf”tòXlY;u`ߩsGcI^ w (ĩy87>oFM[Te0v l(CFOAwэ@Q*a;YN TXw<~j o S`=K'߇FSwN}:|0o=b?}V/0*D7xPww:0~Hsv%~~ FE7i+feL %C!(1`QdbTM!MqQ} $78 ^ жYp]hD<:!٭-'#ô#@)5CT;uBa<ϳ.AXLm^ _&mAz~&o!Nh*鍯=E|WTnJ1a1yzp ?Rgj? H~=*,c_} 5EaMGxѢWs9W M]rGiZM Vd ~cg1׶(i G+$$Wd5ش.~l~\!ٕ8:3VrwT٪_^6zrKeݽDTrmǍK ,表߃!5=CY_ϛ'? ,^myx&& 66{ͶQyX/3衮MpETo =J|/WP6@Ὗe<܅/8Qm'ɠʜ/J91:V k۷wMN8񑐣Ok?{NzsNm))^3uvUa=xпfY`p9`iL%L;=FiSuN]|뮆䤛 qRc(p$%#0C엇G>=iwt3#9`i^ZuncN1bCe KZ:cuQ=C{yG0wFm0pX]g<#}mp30|eh>=:%4bkW''~p@3pW+睺Rq?Yʲl~`X,z {=L6wbpty#>A=w!2e򹷊vpGY(zG @T9x'YQTY};O96@ cZ8䓘 S膰l*7e3UC`P5ߝMѬY|.D: !,Y }klheY2}1HwGpoj.@Z>"̅  , 6cȬ r(+~q*r DE–S7Lr8rbǏ:&%W'C;`G^J%et3_U^ a$ʂ &,vC_9/P^:OaIU]UlN?ib/DrV #¿eSV𜅏 Tt'\UOn7zwBfylPRbRkLVjrH Pq-=iC_.ֽNM-X/(?h3k <4GΛ DHS2N,ϒ=gHw/T?SA'Q ?6+}>,?UTE9vu53ahEs(hⶼr󊥃Sym"r8!YYc"6/Tg.jj N t@͛yέm}1-zTHweefZʷ/pJ,kvR8ūm 0᦮~7Xd(''"PL!Է6M U7(=D;)f*O_T\R^46oIuلކbu JLzڀ[<=GY^K'e%s,3r@{2!Iuwt+LHDgTuC<7ްU*!5Ϧj悪INO4( g~*BCxk)y^}`8t ?)M /ϔCJ#O24 %'Uԇ=s#382HJ}O_S;X*+Qݱi^1TTNqh=|⹽O1gM',)~ǂfvqYoOouW>ukUtA0x7wK1k[EF~X}t1:"zCV<%l-Wp3i׷c뿷{!^qg㧪2 _;߿ođKJ߭{%/U41^UVKWnz)8/y~35 ˓0]9mLmuoA,$ހ$VR4}J1}]ujc~y)%ww9Z41`xxZswfa{JLZW`kˑ?<֭ݛ6%l>9u#k>ޟf>}V37E$s7kW1Smw;xTLQJ/ǴlJqfEJEIi2#?#tWzzNſtŘZv@43>\GbAvMuJ\a2-Ch!7ns\X~p?ˊaL{l>ք`a3@ cģpwsp1F4~,ն"3bTi.9eſ! 0WsBZ+Z *o2vLeMl3?=PgYE牣?_+.\H),ͪm*s~~|@|s3(WBOxCJ#M[5VpB-.8]3 P fra ˓R$YtkSmeX=D(z*u5H#|;E6۟ߖ9!v D)'rum?wv4_cχ)yDÏY苭PGtND2Ga]?ǥ'ߏl`f>j%Љ]($Xy%]^PU g?02%v:حߥM!Ywm\ yZHJ!E/B(~=Ywe/xo=֕c~RGGraYL̃O&V\} Uד؝Q3IʋBޜ mNwh8*^u^7L>:zc5Oz߼:=O*MԱ#bDӗwya_Uu'[ܟ ;ovѪfEk@mjYuXi #ݕ~mJi) &ؠ12]jQ/HzLqS>jBwa:o)NRBέ.}YO͙h_Hs~n X3{AAvhÜ)>q^/ ')x_9!"Dž:IȞ}Ν2r|vTǬPv(E>qm~f,qZ*,ȇ"oŕmG|V&hI_*:?'B e¿y0yG oc.w1.V-Vy[ZZ#kSʓ%rTETN>+mhW푓+!9Ce>&c5p-* 0Ш ()\fY/ש)W8n=rRKApޢQE*G\G!887JY_}e3 Z0L8ȉƬ++h ۫f'aK%̗bݦX`Ǐ;hp'ѧe"2hv> E59NP/_f|Gb?NdDvց\NfkX/VA BϞWU% ~|fhg"NXHf>Q)5 D.OOYE'OKPL2ISǖґJ5mFS`O7CEq.}r$>yy>rt8WӯI*G{X<@*_G罯ٙii )~"/N|n ]=a1ڰ](bvڛP<.ۂaOlDHa끟$GpAYٝf2}c,|#ŜaϸI][i[2]y؁zE477kM|wu%_ .+moo3Pg,Q<`RFf63S{c r*e6Zsj3Kz_ւ]s콟gtCx"`w4 O;D~ 1^1ǜ ȁg{Ny^ {ɇb Ю92( PWP0nTxQ 9`CA$ w +CA9tWxkqZAA!}[z_p=[@ hՏyN N{ua;7EZ,ch/PRv8pc2E *D%ycqX%rTAmFӚp Xpr^߿oׇ@r_ٝ7W矊iEL`;inT[+WЯ_LJjk`2wu/k}H)a^TqA|A_~h 9хb*1jrAw{[vo[逿MTEdea6F,,c*fB1$;eZHSwYDk+S̆%v,7j_NH䄚’l" 323b_Ŋ^~iBT]>o]Ahh& *L6H5XMZ 5}yxW%;- w/33Eopg@+@<,LNB'd#zat"@ؚs_r&ʋG7WKHKeœP@o/1 7$:D?ERF ؝Nc" kS֞`ԁ MC%jvU?#dɾ#gINr֜iUБ> zԍ_q=coo7s}yӥd$1x; b?d,}=JTv|R#asŠjm*-~+PmݺM8a돌>.C;^-V~h5mm rp}B4DBm״IupQvv.ȶH@FZs;:Z2Q:h`nNDa.;S 9A:jj.OQJZK}L 0M#TmgwZ]tEEٟ>(TAc0[*I$}1|} 5))4.1-[[q' KϘDHV6pkj*]lGusOi8S3"kzoW 9=(N [Ƚ9.w.9n3Fa{||p1PB+d45X}WnʫE?32PW@ښrtKW[NT~nzacϢCEW;Qq#e[]Y@> X{*c᝟75d;K׸!kUa~g]߯]uIL17w5IdL&U[{Me참z'u3;тe=eшZ+H;`OT/գWz)Nѕiave^\G:qbs7]= #N=-#ضBY>'%is1m_b9QwJ7?B4=0it-Ƭ[ڨgih{}mw8 17׻$K ̩/Nm~{ԅ~^m4k?9+-ߊ9|<}d$'>`eeعsW>YVp_V$g*7e_^E+4^8״Jr686<3'2 ǜ_4#zsUy1I6=ԦG!xg_}Bs(ҍCiyEuW͠ ?c| oot`=qB3cjW+ F[mln1,,?8ԿjڭUtg/>qg,2{>20B.~~%', TntS:ŏ ֨}ߣ tD;>HiWfx\<,QtP#nHEOwWc|OɼN0{}5$Kx*_צ_zUDwrG0:WbR8,]4HIË]z},?CM^<^T3IdI;]}:1(1\K:w?k rPa2Ї>墎>#C91D$kz}K7\7ߜ۶(!E^XGQd%!Y|Nvs5v!KEB#gh66dYSUW16l([$5Ł܇{X y&8.ꡭl { I+ebjS1/H~ Ym(0,dr'xux0cV6y֯ݞ{w,}tK|v).~Z$puwy:ITb:`-RI/B8t9VܮjpF=nW2ycؤ |KgF(aS+_|! Bfa|+Y>іk%ЩңFR]hkCL q|6wnO* vbh\QKAU)^NEkѪYK6OܧOȨӺ6)zT*^yȜR q:)Em4y&IuMBWy!)1S|Pn|SvX~G htr*CP)gtW1!Y7'8KiZNRWyhaS*|ޅ5kT%w:2 $Yduy!f)6~8/NgJ%h SfxGΓQB#|#|LuW#Dc3(2ӈ⫔N@nΩ$68gٳRW6R;S0OrKQu=&' קr Y#E(NfK :Kn%bwU_ws&2e S? i [tu޼t`RPJIق9mĭ/[n (TRW`K}}z|Ȃ(\ USMwJ-PJ#:OyR5}&l[AfDE[6.ځ '3*-ndtwsEq3 ?#WN=NC7^@>ulC|WhDGzOÎ8<r0)u}|x5BKVlX 7~sCw(ܯAV1tMP[AE)^ Vk멣]!iBLgrj7 [Rʀi΍+_p?NҢ^NNŕOÒ{>5'[Y5/r@`?;N)XTQUQMD^v«xP(љ[f#%okwE{W ٧!>jۡ0LeYSTeZ9S?J v(b3$;ȌO36"xk K5(r ;4(ܝ5b6tg"ρ2}47+Y/^>/t " D!>\- 00 RC}[UC`!nN]\:tekx~ȌЙ,C)k8~du}N /j2L&c I!-̌8' HAv\ZA^*V.%:3z{{ĽPܔyH8tONE׷1 Eh%AHD 3&`lϻ draihU^ ot הf5kDx)on,zKDa׮[ l%DCxmeVzږv@: !X S1ڏampzXuԡ\mFHUQzU ^DOX(Ir*G'a4erX]'?Iǥb3ӝDED!WmK7WK nOfF"%^*(1"2Le8#"q?%qSX 2Ϭ5x*$?EkN77;szeEI?44AAd!S y9  `M[T>;0440_ԏH"V;fΤUHu<+qsS3/TR5lTM(gp o E|2(48s%˪WVR=@_7A Ph点V y\5@]=p@ eK?$벖OV"ሡnv[}zP?zۻzapi0q \Zh.ʷ}F h33ipD0+ao{Q 7uOB&~ =: a:"Ҏ0iUu@v6q@^ Ev7OHs;A>ݯ L&A5Џܸ"L'Cŕ$NqAzg|~ƺ#\6cXjqN; äd%SkoB}rpnYi*uF(.INٹr%vKO}h6pN_Oqؤ?"+G8n,id:M _+?V^9v`:qIOZ@/\%';1EzFyuMcd$_ނC:UnD|J*~ *N Bﱩ|mf4`!4 r"ˎcڕQB||> OqEG~>F{ȳ\|N+$K rx7PJ,]~*Uc;jC9V.ܢ7WЊh"IQ }Å<#N?Hn?=?܈xöWkhʬR jFB~ ~zl@{p/`3b6b((0aKB-kR|Vpjn*CdؚJ- NVhWBWZ+Ic i"_ƲQS_":mj"<ո) ega5DP[e>` ^\r5_*Y1œ|m!2nuGF#ƂJ@~_MbǔJ0F-۳A5ia0wg 0j IrY%ŕ]G%A/`&H؜E}["<=ĜWS  !I"ۆVU 7gɞ&!#'Q^kMSO4 ŸILNM%g,@jU&Q3dm_) wVxv_%'lu؇jwQײGdzΏΏ\"HYVʭ]XF"H\y#t6$k#.+sm1-a a+P(i= !4Եzl™0-7#c'\HdP crYoⅨ9wst1а^;Q<xptKi ͚>u>g^b-tչyfH=HChusczqv$K41>pGHM#-jr2IJdDh"s=^yGd` U U~nG@HrYUy,6ޙboN7Vzm f+B&Ph'鹈dr%"cwѨz?BQ&T&불ʑ_\x 8m9v8؜Eai7 y#@:<0Z%>6EbtR,ޑUߍŲ8݄߭6XZM|LͬMUI Uxۉ1{{XTTwHfqv{t?,O' O s)q/WaֻqP+nI捵yƤD_wׇF4B-hve q040rsyr^5 }kzZ\+'_#hѓ+d{5 "E2:>d= Zqx7㕴UR) y 椪zܱQx*OHRʭW1$`fo\-!OVDUT< \ 񗦦zU6gAҤ Wp8 k[Rq[nä:ea$>;lӢ⃢e9°/\Ä X5!1Vj'eҶ;0*vTTԽg#O<\A_ml4q_*ڗcDr?qF<d8UQ^U Î@aFFir>o6h_dGlY= JE&!wyuabѴ1\N\ F on}^̬A5-:9E弯@@%}2b% Ϟz EqEd;{bݥo/  [+[zȧE$;5Uk$OR^QY(W̯^p9_q[/nxr囫O.Ѣfn͛񴝓 E2)~]O%J%ETxbnlb+{=zmWցBL^ % rYF,B,PF[;DIG z4˲B~F|`](m ?dn)sWa.GzU(/_C]~k3egN\_Q%.kǵ9Z*x ͼ)aW3uXy@% +=4Z~ =_U*u Υ$!~Xar`CҸ (guu}ϰ];܄%(X.rrrn8l+&QDDzy4rvAL~>Ȏ46˕׊x G *PݴC1@&I Lnp%~h}o0SNkÍlhhf ݝs)E\iW1%"=KnzK<7n% rF8xt|P95\7f0|YW l{}CnD !_ !k3@}o7;xQW/1;([O|?AՈAj9Ѐy⫋fAJRB%\w3X4?!J F48Uv6X1g'KX{2W];}%WHĽYv6-DJU6]E\|>dFkY*gW&.*(){4mJVQPS)Z/D .DQ+4v+Brp$6Z;R6_NLIJм0_8Yk- ?2|k1=Y^kc&9N2ݵO= ^{::bߚS7γ}oUن-$wK&ؓn+Xi>?>:?'g7\VrKBnTF^_Ӵh#厪5d+x " )FQQ3&0j=J 5fDK1mh0]ki̞_cCv2;''!NZwXWAU8<+v4HSPξs mYn/ZRGq8_9p*{[[֝3!& [PD f-vьn&k~ÃyVy?zoàf =}T:A1:H,t6J6Q 6;Nr:ӤrF`Z[jA=vց"Je9qj%D0yEs֭ztm1|`F|ٕ1%k Z~[H5F^%Q1Ql'TB?d$-`H>,]8G#Eg%>0>LȖH翰:"z u*K0Q]qe-H$ *pLwn3w9Q{<WXlϻE(_JK'g+p-q|;|yJU*'ડטgү_x7c1ܱ & ~WrwL;bXBcr;j4{o'ʙD0_?"eDKS8_?d_lcjXCF Qvl91Ztg͠_O4|<~ 5w޺\wH_w. >MC_Z, [D<E@YzsO8k` Gф5 Jz4l7_*[,-^+{7OS :<fUzY)}+.DܹG"1u.= A 0L,o#h+iXX\drd 8 y(x6Li mprmÔVSOV2Օdz 3*c 02Uiux%x݇kf cQhF]LwT롟W ֤/‘Բ0 4V`mA|E%Ngc-My a{2<>? G}]+P3;˩(Q4$YX4ĉ Tӫy}A"+νE޳.ru^\lq[Nkzq.\HG &YZ)z\)A+; gb/簥k}df́ʃ/mmUxDn5}rnvIe)546͌mNߧ/\2tW_Z%|hm8 +Yׁ*K)e?@agON+~zvaY _g䣝U q\iOr>obҼS|ΖA $ rzVagvVV Q#bbbȬ,1v Af2&05XbtNp&aZlmLQP@|9[<"9:wѽ@lne2iR & VB2m٢7l^~,v a|(JD+eYn2棝194 2<.c n/Ɇ2ZdMMH-XT,d:z;@,IdX؁:YCPm:S[UY&%2d Թ{;,C":9WmmGA*'pWIV(|u'Qpex [Ίpׅˣw|;*m[QQNq*Ӵ5boGYJϲ+T3,F N@k .PN0rIR6WVZf9p= S"rc_@$%=]`m|eeEC4/?6>¼$IÁ1C>2ӂ-r0 "=aQK[m-ܟR0_k++ pfrR:Ofe-oޮE?l C sDxal C!V0-XNoR.G0O .!)R $1:2QJRS=! 9`ACmlhbdU+OBM@G5:j壢.HVΓI k(~$y&jhe49[}=σZUuE@ :ṻ|X  =BhB ,%v2 Y62| DkM<"9n(I/MW r8(o=%Bg=}ajqIʵuK"_X|盏aәaUCp~̂`)dd!)/wyQDނDxR'"h-&{C?r.M2)\HJV翻J$aO`v5&7z 0^%T}Y85wul < 2 "#Ob?T~_Α=gjASS憌'/$"ZWjkMP2R: Ns {Jl2e9*}Ebm6"q^٥yC}T+#k[%[)AFˍ,%)%~*еLjj @ AoxUPiI[(|ҡnFֹ mQevjRVPϋw?`ċi@aVeu!w}i{"94 uhq0:"q*qgG1!iN'BlRSqu}52Ԃ어b_UV!mnGAÝ'B܏$=5HG֘.KJupXE}~:;L;#`X[_Pz̬$sݕ`̄95pZovhYǏ~jf9\+U6 kj$aq[ OB!F\rs]>^F|kdHhA) (Tԥ/U qI IӵMY+_8r3.pRAQ% hy!S.1a% G~0}@NP24.\ քN(V]AԦEō}K孡z~6 OG 14uMBmks*-s3Km^gj1ѽH)ں ]GyZ]I%䅌=MV 0> Ͳs6F"^Oӱ$r^=}Dsm+"X_ˏP- !ٹw}zw<֧wg;YK8$'׳l`fȇլspO_#_&$L1ٸgEN1ѷ`a|/E qNxh?SB}p.qI!XE*gn%uol5C_5O6+$L%Kx;qk„'R~ xJ+xG5|J"UZ}ECĔ-2b ƥc :p8gOَB_ɤǚV *GӦ!aqek}*4ŽLrCvᲇr褤s%goF*J%X>J4g6F-Hgw6g{PS}JBO: 0E-4jX"E)A?GlWl,៧!C:/_GNIGӮh36'r!:x -B vK6J`4Mͼyyӽo>:wOO\XS'Ûw+Ȁ(*=RPKL1Y^n@Bnuvola/128x128/apps/licq.pngUT lA4Qux E _9ڰa` k{ȋ 2 wZQ?qށq#㎅F!Q!=pf/O K-I*XGz@8pRa- >+5Vcw{rC4Z EPP8t(AnC@sI z%ň1CkG}nhW5 B?T ]=UDBV*CQXo͐QP*_ >Tj뮃F RvjͰDU νE$㉁ ` `dFuԂeiGS2s͒Q$BzfP t|A@X.KD!ƬJ_jO#/^Tbl?\^f]y2i]{]ZLVht0=fbH:ÆD:ȍb`*lԟ9c5+ >QA c2 W!o(P |8Gy[KuG5tEozL\ DBGeQ"d"{¾EB#p) zKǺWEvB/~$Qtz<w;V9ȝI T# VFʒ$A0a gi؄N 8X[k;}1&?݅VS-y}S;" Xiü5c]Wz:ί9xs1sbb$υ +:``d?1k&wՏoE=%(z" [aZ@-x9(ٶ唱uRŞ؝J]a RN=(.<:BNs&a7}—JW&uUOF1l[Ȳ6IW?[%I/$wTJw1Hj* D6Xd] G{ #BO673%kM0y3z\Zk uqJ19km|42P/>I&9?=\_+kGZc,h_eYܠCb52dľ.oFKX5/6 A#<툔S՛Vϛhi fl z|hnnwW}/oQ-j,vk41Ds%Wm΀m9a Lͬceoxw'7cjWWL՛55k!Ļ'x_,Guzh?Q|+RK-mx~8(ݝ4{  lG^Zܫ^n\ݿįtQ: ]ro.oLuSo9{Iq[H yW\A[I8Dp/y>Xzfʖ%yz]s+L/6i.zǦ&GыIk`n_) H99弣+'¥ƙXucɧFWd`x^= 3"udc>eF`0-26\ȏKt9Sx(I8KHkkӳҭpFJՎ[]|% \/Ӽp?>B!9 yD}}T*2~PG'7|$jik^"Ooj Dx+uycNl=n8 8qED⑝ <[Bưw LlUJ`n/EvLs =q|9.`*-gcF9-mfVOC C@͉JD$(N/a)Fr֢J@Ilo 1.YLzU ZRo;'鱸Q:v~آM* 3.)!@{Zfౘ}д:ɯGtS7ٵ `xdB?" Φ_y Ƚ[حOm ;JP 2ژ5X3Kq}@FuM[0Am7b^5TşߤT^gtY5*G^qcw1maТD5Dz-r;80 .+t)wKX7a!o 2e mCv H} msNqaoIW2<\4$oYK(mT*J{Z}*5aS+9za s 6)L~cqy:.[({ ЩCl4Gji>Poh.6RFV+mFFb^qГ'VH;pݞpEu]M ']™1& v(.yUEY{ z籣DFZ`H^GW(܀\3V|]H搭+{qc$j7/g%xl6F4PLBS.r!ܨ指Y?ƹ TF.q}_K920.,vl ; pۿ w,]KW-UQ] 9Ej?WY7fͰOi=f^- 9N$cˤK _qFf M 1*}!ĕL^ZvDD|!}.4ѯU/q/C|^? wtx;p'ܡ-6=.0k ţ*1W':ˮ3z;0=S{_fOgLY%Ib4>F5dm$΃3U7_20eiU sn,{Rb-Ѵ-~A#6G f9dVgB Jj>SD9rV'& ߮ѭ/xtĎMMG@#0Pڦ7!H(V﹐^nzՐe-M/h/*2JϬvo 倽%oJ0:hwРF^ 5OxC%; 3""cPihlH{Hi~M8p}% '[gb;rI-쐍/BаA;^m;y F5Dxv0`Z֜9؄\]ܾ#nsW~Tfj۔J;g͏ëςbf+-8.T^$g v39ǴdC#0r n^rŠ3a_Xi2,91'5็9y7$az/k<2jGLcw:DF+|zRսv*v"w#,I'~Q~X?VCKi֥ڏVz!GꑊެBdg"~e_hDiS[0b͉"!?Hߙ"ۆhp 2.`G&_T~]ԯ<#j GhCiPtԕqhu}E3[&HE_ydתx~໋<7T\f* ޭcY|yqn0X:B>K:cX !!9Ge3\PJDz_P@3Y -Vy}4hElu& S VكLqcwml@uU31ңuiELnkJȣVN(,5T;S>_>c(HYZbE[>aFl޹ޗwko-RB+8@RTRMV?COd l()?" TïfzjMMeOyYVch*WG%avy0mW9(=x.zhE+KsHf;zޫZm`hK c pqo/ZBHclo_g3=7hnZ>^)Z M/՜}B<8YԚ׾lA9$*L3[fz]Hlybn!1N=A31*տ_8ca; pG )9tbIcqRA9cOp`4jUȐkJ(4dh"?%CB T l.pOsUgx+T|p{M9ɟ_&9 \u- h{k(FF \|%J/]&˖GXtKe2s2-tݷ?PZ`Y-#/\;hpVHP1MZ (MrZ)~tJ:s&<7!gQUk1nCq h(8wkbfVZtE?x;]SZ"] .p;ev^Z)- ON5?|ڽ|7U2h~w Xdr%A;AoB-ê·:_bHA~U81k^13g֣V!mԩrRxi 0`c4Ez5 rEuCs a ,VJf&rGUD\!fh{ gdhQr̠-u۾H|KYè` TТ3j?"(1c34H wfAZ̤=r!Ҭ̈́PqHά ~ioڊuw1Rh<]O 13%aض)AjIrX|ԕXU6&.yG>Iw:dc@`RL6^`\p!k᩶VOŪv~yy*jq *Qz2 LR P)ƽ>|v^}zA~R(O+7 jHU#ժpU7 D,B<_ůAN K8yPrP< gǑh;LgL c[Ӥ8[Q)/HoEFa]Q%!10elGF<:jKauz}HWmjkI PMKl&lA[[g;ha|Q. I/cuZr 'fEy-Z]J/]}q:X 0ddܹl\v9qzlKF!A=AO+UrLiJᅰ d9;xTVt$]:ܛc!){vwC#"bddU` RKIjk%buEȐUx^Z+cXϾ` NRQ[FO!ycJPh\pM冀ci[(YNA7^u貋Y\Un>ujsI]{=V4"2XtdιߏW$+_}- vR,16eCǏJ]6R=yJ'v/ðTM uʺIcQZr B} vPoO}mISzaKY`"7:+vI*@:Eh^_8#tVɳXCÈ-a1&I I ./?%]TW\Zx4-AiC6'j~-/MJ$؟ӑ?JnNr"SQ7Ci3n&I+6peg0>z`oҲy۶T}㰴q;(0P(>TIr\ġpЃ^"/+^\KzfSrgC4kUηETo)bjFMSKY6۷m.W<̱X}B @FDEu6Q=8zÒ%h'V=Sj c47r` =A?dgkfx>4^%5#`fN7w.f6|2)==w9b?rn0)W=fz>NYHK/}=j&@lPumm+-԰zTrjdEs BNy8GNiA7̭:&?´R$[74?#>׳CPE<o\BFipAVo KU}N1`5<̩ g`mBը{1z "ck2APb+/lTf5iㅉk+L .7i؊VV*^ Į]@4m"MO٤(,WP:t~7]-qO#`;fx잇IYF3_jǠ3u.ƏPL>UYVL;2\׬FTb]M?R0.AxW>c_gx- <w }|ck\ZoF)bxb9n~HIYv˹`neC{&"/.Hi?'s?*D;D%oImoO/9~~,>}D^HrwdJR&V=B8,Ir-`H@,Ay AxtN E4q8ܠ'e,k}?ʅrTeF}Ee`>\Ycf#[#z\'υԵ=ķI3˶KRY0|z-DSN/Gw 5M 3fy}/ɺ!hU(홉ʑ`Y=&3TCtua2ħ}W(3GڙhOd$S)֡sy3dرprj g m…,!c"~W" 2k#ِF?F*dkDʈBEʕ ;ܤaj~JJg]{Ŵ.AfWa$:P=Jvrd[2Wv_|Ia$l- tyzlz oxViFd[rf\,8rLՂe}Q{#EZ 7gSwkDU̎(=I_Նhn'g*݆T}hҌՒG -m:n֒D͐e{lD)e]cNeN{޳ <#Tjsܿ36"$Dœ$`Z^zDcI&ü{9's/C".*:wd"Y0΢b1bH17Il^Қ@"K.B!/ Yr\z^B~DhE ,bMZqf.X(̹l܁Q!V8mRLpZP#xKnGG74,|R-ԼEP^)!4T$/2^jͫ*@˝s[oiy{ 8 f 3EkT٦sZһۋV>:{Skil഻|b~Ҏ:V_4iTrkAEbZ {Zb&lٺ%^ENR lkgD` +T¥+zLKhg;z=hCo4Vȃ Ŷ>-oƞK"ǙeI z>0ykvӇRjjv3[t#ÉbJ;8EfM6\`b{'j踄h">$ ?Uۅҹz:>|~)A @6KJWʹ˗EdQA;vCprG5 .;U`:d"eol:!l1m<{~}~^K]|j/Zw֠1_-FݵĿ^SXUU})p[-GwF@v #7 6ME~r^l@]oGg PB 6ㄽ}X+}:}żɂ?- Vf)MqLޠKJS3vK񨥘U{ǥvK f𙙋V Cbsfa}R;\taB6`+Y4{Ds>z} ^2v4=rSo6!,fUG}`дpQX Z8o mY#{\~-..i,JW!2eO o1N3W<שRouEa\QgT7}l%̎5{n|ɒ 6勶m%O $[zPrŬݢ.oD8XÂ6F}u i6U/a.~#{҉QrhBfy=j+*[bg+3b{1tފ*y=*uܪT98WmSxdl_"bl>=HxuA &2(^ B·LcltfO#]AYsN:rD>xzQURͣO7;rcܨy$b/BYΆ0ΜP_h+pYU8؟iPE~-޳%Jzܴ=/ezM&J$ \mz+g{܀`t=n ZZ!$ܴ j9ROUkGs3ޮdhatV'63le:k}sm5L)%iu) =V"UF*- =%ǂQ2=7F z7l\0_? !Fg0|SCqqMέߨ|f '8_ZGbsUvHԕY ,ѢBr9 Έ 9P !rx{[Dj lSt2^KvpIWakC̓+~-)'TW}brxa_0пQ8Cfp"3LFk+d0T:5v"q)^KZ:!E_.&w\ L:2x.z:FJ'c~6SцΪk4@=ʴ!_~_ MĚ2[x=9#?KgCԣ/s3BySR6EζUS #$-~?d|=Ƹ3wkQ(j4XWῖH;|lEx5:\RZ%!y%8Ϟc"KVO '0ndz~9#Dȝ)p;MdpѽIN+ ;H\K|T(")2d9蒨^D8vUxӈOG>.7|ŻZB`zS0; >rER:4[\Gr T竈`굼]VS4\-A}լAZށ)&Ӹ* Yç,538ҫgGKBk[mMlyu޾ih߰qAT]ҳBhW~Ff`-=;U1f`?{M` U%7Щumo7; 2sԃdc@ uY$k"NL#Zm3 /ºYe1;:&~..7k8 cdTHT I$Wh[LoTS%AeDc`CO.C9}U?O%-SnJx?ěd~>aTH~$ 0}|,)^#l}y~cl֠3\r҆ M3V}ӧup ƜLXVzB#.;,Ţ!̘UH E)`P6s_O&ʘH Y^o5O] J&L40>H'. cQ̂n[u33ZҏuնBӄ=B6bA,5XR9hEt:B .)CA"d~l[$|ro 񝅱*r{@8_ޝ7cCwANŋMt3Q al!AlaKiYݴ.!1S*mmg/_T2g,?<1*q ֊Qdex .qTrbTb0-%QT }rۡXiMߎB,Vr;NeXf$KS'/ςE@c'0Q x Gޏ0Lxj߬e= ݅+,b6 5GqBA/ni#a%%+e3הc q(9܂%lj¸Ҍuu+N?R!L-fAh!Vwaa'/|o#rC)} uK  kX㉑.PYCmQ[["0i\ 3:"˃#<*[6`_bmܜݶ wSHkg:@}CCf`4,f>ksA+k51Q6&F_[LAvJ{_:6!Y\V>M"}*^6ﻞz2N6OItp P<ehzMO(uj=E Zg.[3^ՑL t--m~ؽz5=Mtѵ#tv͙֝FKH 'BmSL~>w5hx]0v$*m1ɸn1~`@\bZ֢߄<]\<ͪWuXqdRF2e.+P~^?s|rLA;NOGv8XgSX!"luu(WDlzp֧0pׯ~9I]bP;6nSap.Ʀf?P:Gb]3/xkl`#WPOYMc/$Kz})^Uw);hU`Ļ_:/cC ;ft z_ݷASi$|{;ܺ*.;C1c:KK26@<PI# %K`ϡ][#U XBQ J[7a6.084 :pgw3.};Zλ1Bv5!Չaap"Mxìz[^v%,ePau60#ǽUו&{/=P$KL qhWDm /"#=J NR)S9n~S7gDXoNc0͍&+\H拸ˊB9tWg=-3)ac R0C],4)Si)]Ndf< RX)yQ77涌. B2SrB ?' ˗ `ՊK Βp9`kcV2/!ot.(^!PVv`FzyLԵfd>EH{*\F9èXw4URi|\sK. A gU^jBQ9>I!}R"t Lth* l<$J %ݻW ~ OmV]%ʠT"l*CC9XT?EuЍwӇDji3|*|l"_)BpIbB^`24GΥUK#'[fS]{[Ќ7h-'ѽNb+6emڴ`Lf-0PU{-ԬzvXY;e bq}ŋ׀h|Lv{ZK6偌H0|s6Yg@]9=W/atx͞=gKDz6?gc!_8Upb\Mܶ& dcd}r}ac<6YiٖV*,+i) ZЂe{J)Z}n-RZo U Ѯu]&/_cFlQ?*aa_Q<gG%AaCX+9QmXOSD{tk0{47z1hٝSy}:>]JHg>KǾ0ɟ˕PC0^Hh2=w0㊂ r64;؇wʧx;bd"E$k''J+N.NeuVtdqfL0 7ڜxfh '7p>F_XO 5r@vxqd\6&dK1$i<)T/8~ h| NH컢Q_u!=\vSunD(D< #KzF7diAaļ,^Հkٮ5bK|6 t2M]5ٶ)>}܏#WЕ?ޥ>`OB-3{6oA uϬSAQB[#[O]fo/y3f@t*=fcEt&op1@kU|1 y %pcCiZci}҉P|5GQyNLuiCvJE}79}6E%jmP4BMPɡ^{`~ xOn;"-Hъ Ggl?7+\RAOYgO?U! ({-uonocǎPagah x0vꈜ`X,-CXsW`}ڙ*,V[ZR*XN[0tDTIox 7t- T%q᪶yU/g1="if+uI' GMMem <n`?>nEjwWsGY{DBh}bSdOl W4|pܑ@| TyvhB񒼛N5yYb1 'Sx./]=gs>T\t(IbT>g@;::l) >7dFaƆSa%كGX[woL>ǂHiӏD5`Jhl5PCӮ!3X.O4Az{ȅ\Yɸwz *Ι kBV{amaq<_bijZq9rG'A+?h-%?o"J/Q5ZZe졔p/.u/ҜRf}(07pMR?a\[hB7.'0W޾P0]x˛ç.-1:hXc4i`±,* Apn5<.^J4r5P.| soIl0napsa )ӋKǎIU"_n12=uϢ8wWGB%{AI}gM5lG3DA'SUzd72*Emp˺'+iL(&%r"V@?DO9 d8q2upk^`r{%Ϲi $ uwaªbiہ^x4RdJɜkQQ3?2De#Pϔ.JNLR 9|aOp??Հ&؀޼(ZX5.cwחȂA>?dIc[=-\t`0/o>ܼ"*TԟiVbI q] 5iVf3 1TP5oe&z+{4JTc)NJ/R D;~ \|ꇾPRohn73wkŒmxEDd[ +JJ%], 1g7 {\,RΜV=%O<%# >ʌ@\)sq]< >݋٥˚?#_j2҅u#]yfm/ouEjln])x񢫩4/.&a. qasޫn],i-[ TVqd!&zΙX25$Pe (GxgnA//+\?&.PO4mnÇ~{.vP ܞ;viztyP̣2-TG(I˝tdaE.\9PhLqR}tdg9@ScC? IIӮH)i(1D:nzEx:g|N}S˱Kї-lJճ)ʧSJN)~/} r.I6f?]|.8a=T22٤1>Eֱ:/~-|K^o] Z]dH7-blQU 4ּH+ܛ]R$MRQM-vh\3QW*>Xp[f}G4;{;8WbEnuwST3$*^ZzO~e?8=z\~ԳY8$]W3N_N\UkmȪ$3i??]<& ;~CRu?J6&-W@(SۢSKI5l%{AAs*W'M틳ޝ]Ws;RRU=&y<|uN ׳N3uM}|$/Π K F]W;x)V*JX*jmS#ӗwYYf -ih_wIsLU;M+zH|"߿Z>!a.yJ +6_YA[ dcL?7rk71;=zƨ hC||<ǚ;m"?|ڍsgus r܉4raxw5\iKDL.Ch^!nv&=|[E1qe{p'jqhD P PY?0er*㕔ETNHVۗXwc6wB3 E'rsGEr^$*bop{zTAa_\:L+hSjimxg"1ݻXCxgt9 v.WE1'*_uTYœq>tDQV`c7Q.'kU@>ݕk׎ߺqCCluACkk=6ҫq:9:uRk`,U4Q}K0BS[_8K<{ad`U隰ptɄH4)Pc]Y q)Ma=^q>e#lJ:^%("p\w?Z~~~evvŲTIE r8:.1UG4 'Ck,r!Yk~uQ͚ K_MnfrSˍ޲03eoT`$ !fO7 `^ip}YRNŦa>BBB;ҜqX'ZfiP:9w'eqPcFW#D̀/W} ?%t]5ݒU[{t?Ojr'9ajKVffKTIvO=gᙾd)1̃}3c_н\%Wi[ľyqCr#뻝&וer$;Ӊ %|?>]"xF``L^85p*n@)GLQK p' d͛ܝoRPKt91` NO!nuvola/128x128/apps/looknfeel.pngUT gUA4Qux - 8w9ashs!raBTtB%FN"R!RTb>)bJ0LHE Eav}uv~z>aWRw,rL'!f`yQc/oLe]l,u<W&sU|2DwȑѰ$|m𶑔 tBVc)oNOuuu0iQQ33jV K|qvjLOp{f>rs/z܇ٟσo oOJbmE~ b0$yd7ZE$S q%|Te_%Sd*Kbڱhyt +F~ VO!䤾\nЂ?8`U"Aq TM]N%tO-df6@<mlGd5$PnXIql8x1RH!#ȹ TCT >XKbs=68@ӭ7dUn _A%u4!)=ftVfDaP&8me߀9ۥ:<4f[R0NN~Y;wSJiWv̥R,+!ěHhKiwv]Pz;_ mW޷kwCY!&5?]yRl.A|F[d|0NUծ w9|D/XJc jij!CW5m:0z=&I{X<\X5p8㷔I}w1l{cϓӇ >xM1z/#Mrn_m|4ANUS  ~y9O'0#c&=o)񬊧|kh<>b$'ظغ35?,$XQ^ KØ({Gn{FT]Yy,`_EkʒsBLN S'ܭ&zi- $瑲•i*A4e0xh'wnv-I&w7nѯ1nY%'d7kdWuFe2 J0 1eAІ"#X-' ?'&hT0?#[bc%Q#$HlOMy-oOcF|k)h/k vlՒ`0J23rPWP܍vH=" D=ss7A LaX^,JC_p?81f;{n,հlK>w;[ք̚1gjW2'pUծMvd?> 7}ĿE 6tܽ#!Lx.8A)ŵTWl%1L*5D*q8#n+c(xKA[E8vx7Nu?O= T!d8]K867~<y4(zƫdތ[J9BhY*I231B󠑏Jr"R0v='̜51YcQ.mkc_Մ\+CC.Xٵw@23"j{p/G̕@sg/*3r)%i5>mv+EycϬA+Ҥ^Nꟑp#結f,E0sDlx&$I~<:*\86hKeAJ !AtCNZDD_[Ď.NGt¢OQoE]GvMS[(8RWb=σ*l)~,=ř57''.͍g[q6e1Tӷq urmcYhMTd* ҧLat}%x*O|=q;Y 2Uc[L<]2pY_!ǖ$!rep]3ѡ'Gz#کRgfFҐܱ[PBqIdײnhmouJvxW[P cٌ]ڼK4S(#vj\,ҍ!gʁvf- p\0 ٬'$xf)=ôKx4({pFm##'߳Μ lj"ifH,4oQ& cɟ@١k#킶u`q.~ᓦ@8Ecd[šB4#U"<]K|w3˨wNe'vUuw/΂MZB7hC=KE?\*nn96`_ZN.Ct<-1 7o5:UcK*UcYPg6ʙ,<(Ћ| ѥVhoDUߔ];6[֐kC1+{x,#)s yu/جl4 BF۸K8~P=v<ӷit?B7K2w]NDd: 5+Ϯrb,)m~^ *ʹq7eY:dcMڥ@]Z[-dXsU7e.#rz8?& D Q]bb@iVj`'sZe_"h;lNo `Wy*pr/&Q\@TRƶU?3N:FY=iW3~0# hFNKit*Z{ʎp{i7d.唋vzNДp.Tg_T^mw.nPnGmj(yI~􏙎s&[\c>,BD#)hzb#6-#{)wnz~  m"ñH])f8@[{h ^êl`Og^tzmuҷ{XiTJYUڽ[RYvNQǵɤd7u{EfXG> ԾSg3g֎F;Mo' M,\[c3'Ғ;iKX[lPA+Mz@W*'788+8eY' A!x>@zPͅp*;'J<e~3wPp͡vɨj@c54PAjM } jW>/bhv'Y;ctNRBSfq"}PFqԉ"~ZokH ɔ-fD*sn?~f]@9-ᴌ=K3BEn]?13`>?7/&cLN@S3X{ʽaz-4C!^kY(դl,.ig\/$2NXȣnCکSqYsAp`(lʨr}ߙx 3Mgen{vuV)(AGA_zsjh"@I]N,c=+pD>'Q&\|\-#@bB)!N.xl:0&~YK㐁kA܂~RbeNrmx}B.j?T=(/M/^c>R#Ož^Αo[8EPxɁNjB^?,;y,O/p[$Vcho=Qx *BsӽZ0/Zj#^ٴ춅EZiJ2 %wZg:[#!XT,R3}ʐ@W hZz2T9VhiWV!6֑p`޿$D4gQgd7b/Y]}k7pTc)n͡`>3bMm0tU wAJVraLS-N2wNJ;%$YZ3WD7A`!_"]'kblTzF-S\&Dыl<_< וIN 0))"cOd4xN1P'3Oa3y) Z!Um0Q"Gf ӇBw8ɠ59PGHBl }&\QIqA`O]Oژz[Vw|Fgŷ{Z@PT۝+,@/d])bn 8E{;F:ForL;}@ b`hPSc4>3Q T9BH44iȑ>b(%dm`۾N| z P'{NȆaBff ځ0Wv?kǤ٠ر n; $Άo*<!Fh0XOmIb/oT ioyHO]Rl%ql*r{[E*w񶯃>>/FoW/2(gW~D>a>ZE}<<cV:#]R`=6mP Gr 4,qbNqS6M@z]b3dJɇ Ǿ+mL|0xզ[8nA4A Սj\o=lT4G*3c B#k k4BUrtZtT_gJJ)K*LUb;&d7,O iIk1̉|xH#[Bئ{|ɱ4!u -ac]0mJs`lj¤uٕ [5Pt#_#yK.YYۡu'hti R1~?9Q`.X_灯p=xN9,.Ǒn/׉=,j{W1\(\[ZϕglVJ}P<޶}.~L~خ&p ԧnQc]8c?|7 H¨+Ԑ(Ij aǤGR$*>m֣.2﬏Q֦Lu^yG$<%U%Ư q9@5xN#982>Ifһ_.1j(nlL xjјb!P%3hU0L<&~G(WEUfo9E9\V򿨸Ņ2WKDEG殍D鋩T79ATKv [@UN7tI}6*RnE*`WՐ#U@*5y|{ uRc<׮&GDЬm4ןgQ15ߨfs栘-inŞuѱIfln'D4d,iwJVN4Se_y>a.b:\CuTxvg=3 bhʧ#id BJ ll&7`輞ofXThO170oRBNFl.H܌?;YIIA|,X8wZ1,;C<3adw'dNOН/:CXn˖-F:/4/yǃ-BRS)OT/ ğϒtE?QO9֯syP7oft:t^SAI7Чy!|ėx Unu>!,&m*j[`-ʗ?Cpbȅ1aLjq?q!͞tAIܟKLma(dU2"[cj?kEb~'W] /Kˑ 2+(Fg頏jRn 27XVc0~us עX l vpTf{!#e^nJz9a-B%O{_Ȫ~n$흞s|M.$KҲ>Ő?D SѢ*SD_iΩ(5^[0I>Kfs`G`%#Wh0k(_܏*tZ9=aT*53K7bok<>ş3xܟ@D-mP'I!^p44a6uh e}g9i/K]MKMQvu! Og DLg{,4 Gl.yoכeuVAMJs~{9uIMNH=q_Nia<n,-NLBN{M6Ɂ72/0K8ION@ʞ˸ZH -qTşmVGYfy-)Pr7n|4QL728ɢA_e#w5 ?VgU "E3۸%E_*Z[8KL&#.^!y))Kkh%ڟ@( /bD]JRyʅ6oJz؍TLN n:BМo{&6]m{5a/n]SϪR'O`0]Hy+Ry-"l*zZ# Hv!% K@ ;]i~rqvT(՞e52$9+4\0 %}0[pۛp;.w?wSΦk%qɾO1ҪjKj[ǝ4a&}/Ep K  뷶 o!B ⸿wi?\X+`/jKRmSdÛ`uM'+ԼV#8muU9ds-2-MkM2UI k=L܂* }?>%兖pv^96:Pa}zYfۭЈ/)|`N7G1 Isk?"XLffXAŽP7:ljJn% K !]NJXoS0,fBq陱}$_ fSӨwQQ^n+B؞&O %K˘ᤥfr!ס5VhFyK]̢YOR@ ov|J&], C^ž'.+?^#P#AVQp_Ku@OҬ ~#^9 }vɅ>j %)1 ]!fW;ּ2sE{MAbߴ Օw5M)nj^啌N*o8F6Dk\pg~czoL>Sc F|>=ݷNs.vBb$s9?¯3,J 'drZ1#`HvQTJ73({'%!s̿eEѲh+xv;]FBYJ'"? SJ!_cScokiTy|ſU7={K9cT^aa=ls彫R׮lז;.V\uL1Ԧ|vkFf2+o]%,[b,+L%JkC$OhеeȂ톫}\v=;_.m}W$ c pIj40-]< YhApS5Gg⦣,soH S@D.tQxe"GY4;iQ1ef"?F$rhT;VBr΢cd%c7*ˎ G^^bv] yY׆[ܴYI`iV llr6p,;4>4Yim3<,&5`r޳#ě!HLh,&Wp"?ց!'YU?bc?pϞ)?&_[)_|zRe44ddBLc&K@βTV^c M0roA?.l}'pCͳgL$R~oG>-/K5ڧϦ'!?I07v%eS$JUg^8JyU7oY:>gRag ]bR|NssGiyLާ^ÿV)^ꍔߊnsJU ]R3]E孶=p v> ۷_$?'tǟ/ d)g2ʬf;AAq|`87ϣRszagY`}-~uÎ[ Pn?~_ΆCx]优bH,\I>Qly3OCj^h. ;d3rmnySۺHq|6 @_lLNیEf|N =[:&f@jB ,vma3PXzF[ Od[[4AQjWëms}_ eOTSsBױL,Qn@oKh4G<^* tt+i#Q*'ߤ&I:~GnL#R\q |vu`:Vr$辍bXO?.{_pO_k 8NJ ښ9Msz#Lm _ts\ ?>Smf~X]B}!Qm~y"|*CI πJ6.Ag~WT8JRsQGL mރ8u}}(_$mT_U'G~_tPbJJ[+ɂq P"D1XQ>;:u2>%bw y\&3 "d0@>6 tSoIrNs{r'% ҕ\,/ ړܠEs<F* 捹_=ϾCTcB\k-iprhxp (3O~vhwGvJI032@u[L0? 6}>d'9&DVM8Ndm9\m}uej ?vwO^)[5E[kN9-rPq$zEb !l#ύ,_~ RkW0gzx'E{"S[l5S!%18eިQ`;OFHv(RZ\z{sUn_ fnoe(-#RhE\x$lΒ]gn9ͦL|Gr/=bǙ~/svBBO( EЭ ɔs.PDyhO?Ѣ~К i->BdɬGQسhvfhI;ZP1-p xn*. ǂKxs"~Kb1#{nLN#P[z9 j}L@-LY𤡎H#G!4&]Z%uy54>4:C,F 9Kྐྵ9=o E2K2 7ķdTlJld)τ~6 //aW>ipIK'%DN̮mrǂKXo^t$'wIq7Զ k"wYi::)F$i``0wtnbӖu-$jt:cO}&)9dk)R2R d9"?z.iJuy`mE"ڻ,N[?[(<6^#ǰuU|!KAB_/8ȇ=Kژi^.!I\Zd&V S)&%0"$d65zt8CL3}w=ZIFz cqI=9ۀ f*l0DakI#Eث%w~]2>G ôA7Y6rxj(nv1s3@jK}C9`Z1gCcqFß<3k1F+k[nxι.)w }HמLJwШ@!0&ua&. /KXAbU w`j8:6 {1;b/k uA H_o%3]l/"%)D gZOBߨV+Yqas2>@ hqWXNv%d_UuPC9gBJm6?0{1iUcd;q@]g_fMLfq܆A@œğ$+l~A׀K4|fsB!g=?&ŭbjRṊ3{9Eæ׷9sV>kcnBg ; KtMuik@(8V(P+~-p1[h~{~2 $3O5B@n`Je,1|E㜳H%0/ 9}Yދᯥ`[tc7虙VK π+X/@׫3s<+MHUT؉8-|XLOd d]_ѪHW]i\KWC q־QF #7?? ͢x}pD,mJPM@> $ot?^$9H#+ dǾ$zsY`ڷi. A5n)jVZ7M1|`>`e6X.iIL25sss*U$5t?e3Ʀ}4m or*wm\˜Tr~q#w|3'&,]5tI4cc.W:֬리k)޽]:ԜBVS8=#E gl}—,s9U4 ^۾};I)Ii)v'.nzwiDӥb M>t/pd0$-d s@Cك mH? R48oFE'f&zGr _R,[Cn&I.W$-wf<EȈX羗@k v؏-fa=y#*QoZk~avbo`JDq $\omb7P藍HFe* @ P;Hjdϸn @k1p RS $'k`G= &$ө YsD.%ƽy 'U A;PQJrns x043n=m"z;eoÿo)a `hXX~>|Lh.le \[LR>%ϠR eCoJ87rQS}i&yQH9BF.器#v?Xx@c)i >MZq {bQW;Z;q#˿fuW3 ].sq,{&n۳]^*jF8휧(<= 4{?72um/;de̪ӗ뷑]%>ZB!宻> wcf"kTڕ{6: mF}$Vb32wUCX̻hXQMh3ͱ >2[%<ӶyBO&7)v߽` .Κ B's?ʩ5ё$|si !I 0^W{;'`+1_h i)HBOӆzwbvQ}ZSdwp\d7J %67E t)NMTΘ"쑘H}Cgx?cpnH$q'6 F攬 QݞA~[dn8m-ljL/!VW~żmO:l҇tE Ѫ SV=go``&3x pxPDH,51x4DWu]g?^'o7 I̹L"Q7DAgZ,F:nZgКԴJs 8ȩO89y»MnIw_ݯhS%mm\z{͡yPAq~~شƳ:9kT2MԨϾ[+*jCݗ  zΨr8cfJtG~5mep""3Ìs#i*Մ_W!b&LttC7j}WA{Eg"훟蹫Xs#/OJ/s[ܳWNtbiXI&Q*ȳ$צ\;M y?4?V9i%;DJ_eond7H_TpQ-ʀ>P!,7$MA|TE%% e_F657n/aR>=~yh ѮsH;pԏ{:y{PI9tߒ0{U,n9"pB (Ikï6Med= Zp:]sk;ٍqBEDm4!n 5fG8akde9zqu?|=b:Nhj}_>K#$]S )wAbe,癛=%D' u95J8?z,k|Rz_k{4q 3;/e8Ngk=!lz)1tsSyCM,FV|d$c, CZJlJP>>q4~7Cɚ?w1.,j&a[7l&qq}>}hϮ0=B4Fw,0r@{@T֛/V_ʞ^?*KޚEdhT68Ĺ0'%f);U^):)Eu<-]l瘝 ˯~tZJkI].dAU^Vo!~#i#:c@`\hg?" h ugc4჊qإ Mh5G!1׎MM8Ӱ۝CO?E; wv]yޅ˥~ڗcI96޼F^8;i1}?u-PNT缱TW^^g/:si/ʏěJZ1.N~0r& Sz)&F=Ö613ש[˩IhVH2+タoe:v vZmiPD3y{Ztҹh唨"i?DӾVo=R` ./؝=p{@rKW/\›W8?jhEpsiiy|釩g%\uUJ"yo"|Dyz?v^ RcKKΤ%EC&S~i&߾޵u2YD9S;g:[cdu KAð 7Q3O/  /2>"ND[e>Z!(Nj]fp3ײZ2',ϋ xsb:Dqy 99Ge{qeǮ:P!C6=bWNgmHI6'EqpxƵ}9[״!x9'-R|NY7gUqVs2jo~JNawI?|65HRNm,'I}kFy:V+97CHFmOeU!ksUng~}c{& .̋wR{sp۶N@>*.`tO\cD^SSvyDuinʁ1%h>3Y=i$ۯb0ROG;k>W3w,Wo&_>uԺA*;b)FnQk) Wp+=7m0^9oGVs<|UXM'>eyul_xȦοy7*޵:UFHPDm.U͈!7)}[Goۦ`PaqVh:ZG*OP]:n-́ܿ0r P|I7Hpwwr[l?UVJrK4r.[a==h[u>LKoD44GRDt<7n}1yڄBDUT0?A.m̖!|=eUWn! RU.o$V_دcŋE̫KB<$\"m@Ke|`=~Nd&[[6D+;M^qzo h z"MQNVj V$"S뫤.3ي /4gu}|<7:OAMx>lw3X.qKݐ7uSr O VfȌT(E63m(b߮g~O훨+j#ҏEa!Db%b) 5"Q6N:Q?O_ֈtg> Nxq1WIub)ZR:'&ݔsd7i +\Ȃn8˂ɍfn`IMsfiIr.rJIfzޥAjU=b?o}Q+C_RVR2a'c4Fo.Y:7MK:l{sa{); %aq-,0Lga|^_eYBwV.H掑,Ca@B2luQVBE[zΰzxwL;?^4$g\I7u/ S&j9Qx>JӔ"fk|9_gF*tXHhܶgg(/H/8CF]:20OMUC% 8r7 "ob2Lߒ eG@^Αr[Tӑ7٩G |9JwZl=9]Z3-ɃSӈ[<%.Ώ dzS 4 , ~m_ڐ$ %,N~bJ= YpO}zEypsҬ[xE_@ 8&ɂ]7DK$1~+瞱wگq hC<<(4rӏgy>Y4? hzOZU,F"N魂q![ 4t/U:Ӵq=NFq¦_߆mLv &]-Dw9=DD+BCߴ]i+;]#9;4Ӭutm9D8 -r$#fG5ÉAXy U; 0b#b/3r'MT_cЅ?\:9ܗ8l{ ȵZfƆjYI蛛 -*yp,7 wU-SXlwMXis)|>NF3+ L]i?Q\AqA@F7>)0gnF$S[ q~7po:%o=}GC_ҜV(~$V7&!zq'뤷%u@ ZCqZsߘ.8v8v E;1xH@s@ɋ")ȧ_y4X mdkWya` p$Z1b:|Cs*jc.:,v (]BMm1]l ѾlnU Z'J&E?'6JD/_߀VfTmD1`PbBӴ~T%[ꦺe񕑡Ȭ\IY f <>]FkDc<Z͏-f[vK1$T!bKJdY PSQwn}Sd'M 4p)k{{+QT dD5{;;Eyմ+wtqOr3[[vEQ!&5:8mYFR=mxfL5wxӋ)_L3M00;ͲsqWH%/po@!ə7`S|^1'DG$=)57icJUp?~gq9Od>-wiѩ$XETRI㶚Ѵص<)!H;2/r-kf\s: Nn2Tp3'|8">Bʙ ʢ(횳4"x*G[xJ8[wJyuMVЕ{LIG P̳AYijt%(}vHn4zW(TZXȫUbF5t 95U\}eW%<9@١A9W@U6}Oݫhצ!+LQ+ϼah񧶕ry_kErT7iû V@Sk,%~tZL.*FqdF&}n^Zn [6#ӣ'ZZ.-2PRħX5&++5+3 ÓP6o\6 u'W"e&ⶆu!EةڥTy+r[lT ?7 @fB~ ~ ':{b?^$Ӻ^3y7tZ?Bwt!90yRD@ټ%46+:aBtr[jYnL9~uѓ(~\RKusG ތ纩'X)51G[Fc#J:(;fUv#;#CSGMhG CYd;fJQ9؆Ma,04]wz;κ8ڨQHev.b<pIY/QUԯ ׎71[X):Z9iYwǮT2FQftSH(o:KB@NRI+}EN-/S/rIjj5!̨`֮rqbĕjqjl*ƖVJC$`%M~w d lp@sZ"oUx[`6-n5 sVO?(!sd ] 1gPΒ+%t8c/PFUXvݓh2;ܨC -Ԩ7] d|ZM&k#U Ǫ4mt!L>m'5q+ ]2-$<Tי"J0Ӡ:Ѓ[ 4F"iG#ܾF wg)+gF8" [wRe+=~9't;Jr'$2h,33ԔlfQlZ|Х,!qÿ^sL$JfRD8 ̂"BDLh{`[KK~Ԉ`g$bN6ddT5lFL;Y˷s3vYgcid+ZA\a~RYWՊYa*YU[)1#ZH$Ob¬Ĺk"I^x{RrջYJB 7VԠLo΃ݬ=7汗/)gNPQڱ)4z_p0r/¡10t!Bk٨}Sm[·b82XGfoU"Lv-+w? GL_ ^x] /mş9>Iι.F]5rksGk`ZFZƧ}?eGI'Vѯm'tv*$)"|py㖪fЃD+Ls#6/ÈY}3f%½^ q#jNzMKߕt)y\aoҙ pto-T&:FbP4rw₟E-m޴8MLp,Q{O<3z?]s^eLBnD;{KLYtOu k}(~u NqKdVdÊ\M*Z.NCde$~c(7%tY|Ejn&cC_ LN3k:Nѧ!4q`WF'Ƿ.dn#vk5n`cH񱃔" á6K".sO-c.5+v 6I2G dƙGaYVntҀA8E_ 7}PVWߙ!:dD`c3vW;Q.w.WUn^_q|'♦M#'Upv$zE6?;2Lӛ HȾ缤~_n8x&m5/}&66G΢<=׫ EfZ_qdEFao4@#&D4TP{uAYX[t8ݣdv㒪,T83Mss^Srqa6d@4A,j5O3Jg>VuOKq:I\U(߸r_5UP-5LIْl-/<"IKa*'852 qrPXbJV  7UxהE6hΚ)([b>,\:؅-yBE㈽@q%d p]5 J  "ru3dDN^0j\f^_5=%/"nP9S0犏2 dRy{izyNCѕ-;Ѩ"S| X~N zxQjު"^$KL1H{#9 xmV{C+D_0z O;/ k#ګ!Asm'mrp਺02BU);'ok0=z:]LL]D]qkaG5Cv!!!ʟVU刊o7ramM7Y0s oe}|QDl VTԋxȶͿϨaEkۀk(n%FIxWN$p+%)ѷ:EB*M3k!6^>l:`*}"Q o =_òeꑖr`ůd y]𥉉beW^sIZz$o&]ӹSS<" ]c|/6?5g_GAߪ{_%W- [߷T#( NPY퍗["LAp>`]T}UX&&OR8.G'jLZD5+ 1O<=mqR <«Y^z,I`(-7M.Bo-N;:Ɯ2DA三med*Ôr*4֕Z \ק-I~ͩ9`[wB ūΑ+96y\MnDZv;\w%"c}?CjňHdI3{ N2:3~(<~n= =3DA`F@5$-h u ]1 l 54ӕf$@M1TwTo 8FhP# 烑6HN<*F Ĉ2Dʳz5yv –fz6U[ܺ&,-|xT:+?Vξr'g?JTg9gނ!τaJQ/mk٢[$# Ef?92NE`Q1HkqnvӸ#%U Q{@eʭ*P"|ŜXц/C_Bi#Q}'*aVZOLDQ>Fjy%h=C' 迭odlsn:h e5  *SOx'?/K94v E^Mv3qK-PeĎ%k;tM5Gh󷪭|jsDg33G[q_y/I:g+2l>8&N\l|>M9oS]̓wrOZ|5>ط7~:Rky`~0gPhՑzէZaȽZy 'qp &;DUT2{8־+HϾ}9W\;yةA<8^&5n|WT RX q@Ru4g y 愂XcQ f NP]pٔr-*KCJergG flv(a[g`-h , c@zu0 xф6qՎ] DO.*oxV_[@swu÷w$bm·Ho]92`@~>d^S DAQKL5eHYM3sJsv}wB>npye"V4-1;C";*@jK+L.-i9 '{ t= v![4H! k_7d f&d\Rn:>MY \%SF-`s'lZΚZ][pa̚?N%!eX ʐ=8$I)mq](Dpx1aZ ϕ}³2x&(Ui˹CHuzkb ?+nZte#;t&'y2ZEܔ"?uf+mފxʾ po*mc-zE EF[(xajw^;XZ7BG- M3VBf;v╡OLATý O֤GV|&jxQpwۚG*=+tw?(ͱ$Xnu OSm4_"5ncQvFXר_D#ARl#G91 & RB_|E(MP달W)CPnYmsy_~Q4炎t6#3*٩շ/u9=*ӐEq@AY 3Fv6W c|{㝻6-{ ^vz+ 6 &jSƒCNbc؝z6u~p7{CJ.m3]/1wj-mc؂0&$~#rZ*K>N&U*~!%JZڥ*:xy18!*6Ա"XG0-|(M+bߡ?Xr!厍Z(hSA80E5S$++^q5V P <(szW$r~߃[!2cCu)ZfGB=-*th{tRW,qDN_ L#vgTm`j©XՇ77> ' ţ 6wp. gL4rq .!ճٸTSG2Ndt+'D_9pq?$ie0>dfaSHOF3㲳0Q̡ uQgط`:xLQ^ȝScZ~Tyda ,73/ Rc"؋宇kē(UL67ejVuLXy23ٽQ >0L^bE=Mv$YyVn*_m8d߃K2>ۚ˓P`PZ0Wyn%"VuSlH>:,H*lbpkPUP.7||̽p1aE5B{+Eކjy"ݎ- K^rD16{&$":V?O 4@2tXbdZ{2)B0w ʩ@dbꕲLko }Ϣ:̘0ɮ-c}`4m`Un}՟3܈?hCgi5]W]d<6]ZRo={@)ilCP:1~:ޚRtney//PKxLpܥ\%UApi<]s'dzI H \L9 <-OYݥjkSkGOh"Ff2aG+5?!L7Wwߧܑz ^yMPACظ}aܘ )g<  ROJYS D.kQ}=g~2!40j'i_b^%~A\V71n;h:OTBX ЖWDY/P3tL(Ӥ` ve"]/V3|fDJz^e;c`2%5uI 8JX̲83Z@c#ڴrWX k^[3J@J]O>ݬ8ck*dbDύΡ4jA䬟*./??Cbm9phR?8-')7|2]d-j|"byx\]I2?2Hϱ^`_vFhbP)iIfV`-lllX%8˫ g_ LjoPn(WؠNX\fn.^l-'pNa'Zt3h*) n+&K#h]`G(l':k-F!g7j6& & 8نvH ?Kvc""ļSW6\PϒBJa{J: Dԙ/ڈpuziჍ(rf<~a\f0_uy<>h];vg㠍I'rD:AdW 2qX!LXcr9^MrCX41 `sT2zh%.:<[yZ7^"FSua9'Ve$v#_-7{ϑؚ֬Ai:*\Î%UjJtgfw{ IOsNwY}D]s0 O[)<݁||iwc5Xflj)JQ?[ :/T ~X ޴I-Kxa ! LYT׻`/WV<~a]-GA^->W\YMlo^q.Q$61k@MpH6dR>] d^"_2"{D<93նW0{0)o_ďjCJ jl7iѽ@Hqji c/XF~OM+"X8 GN>s)"P`8H?C9Xfs0ӑ'r)4)knW?eK2N.u]brbМ3Ō7/T= #{;.)I{e[ߧOv\d*7a*b+Fk(}Ri\ fHCSi'YFCлkpi zyZf R|;ߘ8dm*{exekفeJlJ hm5n6YK [@yDѓHl~oNNi[]R9݄:[?p? Ba(SnU0۟imhjn^ MN+JD+h_Ͱ9_;32d ld*E6D W]ҭM #.-:0qSl4/+68D˻zۑ_dA_Y"ܤQ)ҒݚRׅz_H[jr̎)=tFbnh6ϧt58N^)7fw0$ '+lJ.PT/.fC;A {t2ᓽBV~vn[F1+<9%{vD?'*.MFZKU;ֳth[2Yc@S/ 'h!դx"_;f-poIܩ-{ Y$V' #RN:&ђApÞTK&k/~buoMmb >gB\S- ӴQ)ܔ1] y<öVGKu{ᣍ_yre k0(úUϲ#%,HD[wG?Z3R7 m7>$m'๫-)AJ?(mQd>aheܭdڑ~©UI0^ӬV؟hW堡;vT! /zpfFP5G|B0KrHD$<*xI.<A0߽z(]tٖ[ypTȫb?Igr4)@*KS/" evT^/t]Ǩ# v2֠q6\<^a )ʚ@^4HH@iγ8Ul$4B4dS1v jh*LT`o;g_,QCNRAH+.L-6xs>R9@74^bm\2pcˠVd%[s$d dHd\wB'-Ô/ )+ҐgAfb;4'.,P]v\kcַj2uo'C/xEOk˓ӺbΊtQK_"s9c@҇D+gSqG]{I}GKV&oSSs~wbowЕM] fg6γA(IHlP];&-U=,Dtj|-ʭA{k2&]<"cZuYZ˔Ss ק߯ܯ{kbX⽟m"Pɝi"[YoN~P[[]9?uƹ*!E !E@A=3WRzx6nB_q3ߒ? `ppZ3aԀ5ZEQ¼ZɼAq{mܬ=ݸ`{{+ [Ĭ{!-O`s%pǿ iFȞaRl4e =b&9 7v֜}p~5!v&p=ގ6XߑMGLտǵ5 5y@5Ǒq  qC#f+Njѱl^ ~Tjwu/߱vHWp 1A^ ]aQܙrEt=d+Wg/M4y1~cOؘjtEdJshPV?Nu?*>&,y4kh8 eBXE}Bԓ5Puc8?Y^,g lc]rMԈiLӞhZ} ]eP~hx|2}nw=x8htŇ`э1z)lYo+39H/v'oyxQkwmjMJkzLS}nٽT|Z>`]e̴5 C& KR;yCmF Zp=0U}[~$ґHx)9()u=ub CW%:js+`Ž2hsmHy2H}powHsSZDvc5q A`p+Lgȗo~Vޟ*$nN+&T8i ׾o%1})Ht$'-cہY59r_ں i;zQ9քhdBSxхy H5Hψ$ G=La*XT<>8~ȇ M-g^u% 0Qi~ʮIߑܗ 3IhQ~ ;5壸}PkB$\EB*]e Fbl8&J;θ?s0b@RACY(±X;Z]z篤q x_.5rO9ܟKV\p cqm<%Z @NT-WZMJ}ah~8TQ8\A0FfoID xZ"|ao_0jϸal[Vح qMt'$ξAݳMs$$ m^jArh)%: yc2PvvkipRe)w&5EW& SWL50{ XnE/5A^2X#QhIܦ;cclB%Z㝶OV1EiP\P(S70/zzTo5bR쭄8\5%U^Wﶧ$ΉX1؋,0[+qms9c;${+[3]"zDk Jm#ˉޝbלnܕ<7Iޞc3{F[Gf%M\eMڰʉ(/3,'&d 7cؼp\߿/`Ǯ';t9/E}yq.@M91x0}^xX/&C֐Nݵ58KE}~d!]Wo+9o B`v)qNt+Y9]=35؍WOΠ3E*]'p94? Vb~^|desMС+9iKlDLi( Ed&l*w@ibӧR^ b:zhg%hR-'KYڥKPM#'΄vtFgDvDG2ߌgFT$ZnEgv/3: Y=ݎ$I+H{ob_𵮋ry5SF]?hWma~8jbQS&P͸|yKC,E]Hiu•8>&q I6{ Lw}RNĩFz%&`nQjV(f~[e6i s ]u)p;qܧa4Թ͖ll>0G( I}%}c!bʰ0q>f`Cv{Å4~j$wʄhd85ȕ*S=?/ܞȟoðG•mqfZ'6D:hwS^cf$_kQF8\3f+)e|lLjEA>!*m8y-XC?_pl*Z\Q;UsQ^YzDXTNjiPVӘ8eW1YӮ_-8&y{׼Vm%]YFBʿ槽F>. mDzTm f^p]\)˟qǮ!faR$/3XY)km&RzS# %*5$osdgƖӊB_ǝR{g5C˙NKcY L{ս>zoDcAuQփU?SPOMټ047-xwP]dž1v) ^s406ᇦ]romo : mqB{E+~V=:`Sqqgknڹ Ǐf7wca^cxњ;&\|?a4(!isoԽ>8As6a639ۮ[dBP1 U jc._i6Hf.?0(N1?O-~xgdb^7r։ Va;J ëBDK$`:1Q|`uReSm!ӑFY;t_q{h娨?ބ: _a 4(:QU޺p* oUȧɮ?[!:d}[8?>}= F~~vPQ?,iI o ~N.I*clmQ0菴E|p졃Uk*`a]י{Y@ʫ'jKJ[h_ soܼ5 nAfq$5]Y{ \XRQQV=;qGk c\jUi^Äe1yԐO`-LH҃os~ݷN9 oLϗAfEtUٜ$bg{J`pO4'leAf .V;=;xߊZ(]1`qF* 个"DBћw_YM΢ϯPF\;&uW@*U%p+::k/2?I u< Wz2)rnUزd>W{5Pkb?J3<}ħ6>@r9H_aC:I@`{`fr:S+|(c(%]CWq\@aNl.yF)h,u[ș .7Ͱ[½|\œ8-~cިTyC" gH l<o]u_A򝑫bJh/$vVotf2z=2bk6T H˙_:ƭr)S{#%Y$lFkÞMA\xpM@cRW+9)@W$4eq 4P2: \{̮`2cQڝ$ M}-(W/X‡!Ųy΃h`LY^,Ibd蒨pSԷ9pQ˨ꕞ,w)M!%؀ӆv= wqdq ]Y5$ 6%ҹ`қsWK6Ciޙ̄skwHWpkƬ'yƪS(-pYp]Z\ ӷ|#` ZV@:mL4 4VrS@!pzB_bNHt% ,Oƶt^I@D??X%~p0]^cl>8nOeaڮ\c_MY'S[ZDnӯ܆ۓ.l~Rڰ=e|qT{(\d޴8h+;l /TK6U!߲mڅ5?PƊyïmW}k'ڐ'kJgtz\Jrl~F h[떓:棣8RW]z] Kfpt5-TEަ^Y(&󍐥: sLO|OH73D}o eN܍KT `mJXHLճkU1Zʡ: M2#ib(u>WJ֖噇}(&[hbNBJFкI6VAJyͦM*[uK ;Pe}}"eН*jNG+$>|*OD ǟ2o* }A>L=q ^0|nR0:zr' jG+Je_GdmJ[ njA< JVw9nL:X+="T TJM&ÝPxy=|wƛ{סNCY1%a¦5(]s@u87$7q¥9cʈ(ֽ՜ p~&֛Bt>3^ sA>FX1. 2n'0Pa iuف> @rɟzY[N-^<21rt`=8M$Pe^7"ːAF`o2hVqhc0s?.fXZoH w#Iݼ5pFo b>*H ow&/-)Fm&籭"й8#&r]́hAL+e\>Tߡb2ޱQRp\_GmH1Jk\wP.rXˉm8ypޯ ev]%x'7zH4ՑYN%l^ǩrZ$Gc3XlG2iIy?fl~3Ɋ=?`x*ON;xE陨'è8]wH1hcBGy&deJ/its8(=%}U=55fH;3^2\[P4K()MG=CU>/:c/dNIvA~%ѰK גG|H ̗' ·-C|pxa~ܫ:u~J]ؤ;84v7z"~p-/}?dcN ~>4!--;}fmJ4GJ~̅o!f4)'Ы7O~W$ґ^WI-`^8c br2wd/mFQ@S%‹k&2+nW0E %n~8R!iI*&m-wpvpO9z@+ԇy:u.(y{UȨc!FoZn/A<*Y'j%] fii,yqʡ䆂gPژ  icq-΂RHĤ X:}'bo8?WڂUABȧɔJyk?4HmY称7iXν\sŅ>GrAgoYL;ef!xiMNO4b&퐠 &!g&Z M:T2Vd 7`Gk~050`b؇اȈl8} Ug.Cfݳqw-|4dQP7pU.YpGl&9VT|,gfY"cLsA0;z5uDZ98(Ė7ϒ۱ز%EfY_S;)v{(`M6:o5ıSEe7yzn9fpd\=%M_TUbiu?$#]&c~?w8 bB! ϣ5'(ic̈1x96XϟX #lQD>6;mB-β̥d|іڹ )ABш|2A);y2p :E?pi<\ |mUMs[bvD/a>Dud^NlqSΫN5HAcw*yzy6@;rȓDҐHG&* CKna½bK F<)g8"N"wr= g~Ptjh!pr-jA^9)WZV(n L$cQ:$^7pR/2_:EL{f"4T&d][Q{Ru_H$y-wH,ك  E6QkU;xޓʶ?ˤoYoZc9D~:PnQ"eVcGPg}kh%X6Q62;Ahv˩sR;Fۿy&-%gUc0f:`y;JTjʡC !{nru:ϓOK3;-]< ?aڞ-dRE%;'A.w;il3-`(Fp9Uߐ Qa~zc{mnLI9~eCw0j/nOB-6hD6u{($[1j_z|c7 &:IjDK06mL,p%xO\U&CN?73?5ă&Z1fUΆCf}܀Im`(> g z [yٸn Ѩʽq΋:!bZhcË7{1}%d~.Y{$b3HY{ɆΈ3@mP & QI#ob`7s,m}חru [+Bc_ueM5O}!Rw~P椨dEۋ`G v)5J0 8xU󁲜Diňa ֵɏ,j%;#8 46)]"++ T%\[?e`fL?5%!hi[8oO041e1򶮘ğYd2ʆQu̶:Lv#S J>4mS|>9ֻ mfVcNS,vID"{NjA*Svc. *9hIT=  4hFc1ei9vG ցWL>q8K.1M&om&w 5dD>3#<l lEK=j;g:}M{쯾ޱrXG.&I?usQ^PE2^R1n9,DߋEKȔ/H ]:TP_aPʤa<qS#q?{ܶgnR.$[_k|ע^na^K&jnZa]:=`& Y]z-_}۩^Pz@ܢσzqtZT:riY ͦ H݂Õq[v/qH2qس x_dEdC*'G|GFi#aX iD;*ާk7$x  #)>/t|a>2-ʴށbL<==sfǛh\"2 dD|<>`=Y9Xm' 5纺b9~}k m+@:LwMIx7~衭&bQLbjvSݹ~oB?\",M.]}f73ĒqoS`ɾ>`ÒUmk*p5(xc=|a˕dsK26}G)tI*fk>nlG?'J+hTo7Vys꫆U`bimS,z!ӇE1d$)Q S%iڱEu"Ƥj@#dfm`ɤڟRZu[(}a1s׿yn5v&3QvGwq eW"y iG.oz :.Z)_Ì&5Wp!jU׵M/oH[&udːOJF)Q4^7]XѮ$.poV>?o ?[UmZ_}vxwSytw?oĩwdeW6DMЂSP؋Ì_N>-x qK^L~vG81fE ۙ3D1:X,6;Jv[-?bq P  ~֍'wS\m W6{^IzY\7d|w[()<]YXh8osjSBpy& CCߋ^R$?Ûk ߼o*OO$#(_v' aְ>9<&~nBrpgo/䙼Mܡ4I``&K3 X9_oD aT[5vgPu,{uO|jxHoxi,V>/[#ԑh6eP1_ii`;b(+~h[1DŰB`!^aN*5~XD57x,٧[N|WYєR95=7{}z#qOk[Ljϊ!>ߊiC>Dk09`u\JПHG GVh7+ě{!C*:d>L&NP2NU|J7 WJ!zl)_s#ZCnk<*3^> m;srKk$AbBjͪ+s_ԦQ8%yA cYxJ:c,yM'i0/Jt ğWאvc$G]PZncB,i(Y̏|5OPXy~zGuak?wMP( y`#[qƙ_q<>$n? Op$$r!᧎^K7eH@h9@f21ll `c`ۢ6 +@ZZ{ f/}~>Ny#;t̅>Q`ĺn^[boc! AסX~seD+$DNx3yz1T>DXOԕhL\C-%ʕ e z=2F|nFpg)J4b 4)&<###}W2!"?mɖDPlzξm!KȔ3Ki56V@: ԄBMlӱ__EQXJÏБƾAvT@ رgՉ7oŸIr[._\Kgl٩W{QBK8 41l!פ?o-̓߻C:Z:b79+1vO2'yk-اRBWw;=;SM/8IJɻ<66 olvfɷ rΜ[* (;9h[<ڈsS8^GN7>u"ސ +3/4HZ"ΰJ26\fޖw`zN|_0;>M#H'H+Dw1Ͱj($-|*d /^~Ze6~teD[MR?~YYt_/ n TIwB0g0 /+ cL缶)\8@!ܿ3sI&m+7ƩR5,Nk&/z+vɦ/>Etk u( m#gn 6̯%K::wPS'ջzwpH$텽=˯n(@ƛ>KB "'sn:E-K" )XT¶aRUW 'y%x;w/Ga4/Hmonij'^K5߬v:B~-?DSέХKC:G?qfA_` Fj@)J (_Z[I ek)"s鿠Zsq鳣$mF;FkTd-Gq0D7Δޱqm#rw^ `Ɩ3IT2!/i; ؁AkRשVaޮˌ5& ,n^nYB:7؈]c>/g=c/Sݓz>d'/ yP[)ɚdD}El5:g"{ 7P:'4-v_082k(ͼ>YQ%w,}Ԛ]N*Xٜa_(8x`i\&^`p̹Pą; kpY~0a&O$X˿ׄj O*}}m6o^f"pҷ< /Ra]?PJnz4%8WB, ۞sbUm!#F߃ v7$oBW[Yi]~Xf5t@c4bl1c[~IgCZ#FLq:H4puJd)DJ E,v.7K'iPS gvP k ! rlQ .Ҥh?f7h s 9:M8ߦG8OL٭z{%8[b=Y0FzoOf;AqV`jh8[`ݤRKm/m[k>q N1 tb7k8c]szժDS5r[CMڞE pACx^#[ŽdSHk 2 *"X}_⦫M(InxSe5}a0wtIE:p`2w3'>jUn+DqwkZWֈ||g"_|'Ǻ[cl̳z3=JX޿Ǐ7obzxB}[\7#91L3~97 "E QV^7]Ol]1amE$EȦЦ'?l6Q1 kc7i ;45Ċa#ŋ3E)On br&R;/ܱɵ.q/M3crK'ޭF-Q?J%GY\BJ&N56X/;)-H[Nr~q؝A4ICLFJ1` HSz+s0Omї0-:!G$; iI_brJFHqP0)aܽO9Nŭ.~! ZKZZģobslw z8=,2[aٳ]k<?fD8 f9+}Exw - d %cPҳ5m[hVݍ!j(e"ׇHÔݾ }nCHu[s2vԾzב1ㆆ4hqpӲfs~i΁cZY")eTٶ,z"8@h`Lx9͕mMMd匆,AXCUp{u95?sSMD}V@GzzCw~LÆtܖnkJY4OnZ 4qA{ y*j? ZaTï?_ ·1ΘB)^Q~HCmm` U|c2Lj`h=:kkq;bc)ԟ?).`p*?mL$c @K 1yrVThd |y2-)P8hίO :@nRe |H}nn>*z1:g߻"z4(WP]ɳ (Pdi&.ԻLKDa[dme{3䴫oCX Q5JkX2ۢr%.L~o˶JcTr(/"Bvr~\xͥ7FM=΍HbCU` ,^`T-z>쑓KOO/JG?j]l\?;E[|iV#kE+5%{q&rzV͚&ԅNRL~;ej5k!3# j0s5 p7 4Yc'=,Lkeꚝ:a&BiPOdcJp *m Aqfˌ*w!8y<)E}CT^ ,ze,i84ǘ;Z 9줆<9匮#z4A Ej_k*gs!k!O'h_uݿn*.2+Q߭,ž_M!TjȜvoĘ"$k`vJONȿpmm/Iٜ,rr PҒ#wqbwHYO/mn锎 E(M )[)XWϯyY5+Xaby !0><5Lf*p܅vPyO/) k 9SVZ2A3)E\D͘sfAHoJ8yHz!\@Hpl ԭ?dqu4Ko cձWaoN=n618'7*}5`_joξٶ5oAt1K#' MЉ{CAv^Yk'N"JCY>w"^<לК{)wv ;~K."~ګ3B1H*Lilܰ +ﵩ+~eRƸyjK`-`uB}Q+ph~EkaLd-?vHXo?zp SQcg eܲ[:o4XޓNvAGnGwjzc1[nsy'hjG9$3 5.a,YaGr]SÙlW h#0Y%Y7tFG#+P K6cy{qTggۍ#йEGNDi#cW9e^o(ԍ߳dݛ1O_»?WRu&hu,T3b颴sw@}S|7+H>H9X 6]n+1ŹfЛ'9([ B Iê{t5?ƚf^"`wtV؛cg^O O-cFD2(Y\kZQ`H'E"s8 "''b4pv:WjA#XG4ߋ9[Ln}if*э;"P9L xF'rMqd׊otu\5{G6 ]1bb!OfZ$I&C~0gk}PMWN_kPيчVOvJPp;0;B ;J˱d} h |+m&/n.S ,|,:\rb"70IeEowNb m/}ݻm>L84~9G˧RU`[>x;jK5鷲 u6rV߃tKub]NX* 3uCBa[|K-Vv@ܸ1lA}aDS\$R)F-ARת61OL~0sb!@x'My=^R f`s_ę{m]9W!bQ4I 0amKI^>Q n b,|v˓3nE;bCX1EȒۭԂ>qձaFҐD1K;Uİ֚@Xm[S(/jZAUge'ܧ_acqo3dz 6o=|N伥1U"FM_~BۯC Ğ9Xzs$U=~kZ_8y`Ylo #,,S|UHtT-q0̦x.jl-Xh|&H~9& kW_ P}~BQƯD>S& d?9Fh:T}SIWj34 ^uWug%ڽN.҉U\@ysg k{5<e8bwu 79nZ}vQf?F:cYs3S{UJ%bJ!,lHiNNH9Kx@F@<0Z~V!"/}!GQMT@z5nNGs.]}*w<~ {%o"+gX\ ;1PZTAI#/i} 9{Ő\N-+d48P@[`KNt0p2wyڟ4;=;ʮ4_%[Y L:ra<}#sr⃣^%X_}G,`ym=U`nj:\>;9XGyS5zֲowAH+Z]1ǫۂ`팾=CZվm6属ԠV! ۑ"FKaXuW]3Jȓ%#H3) ȉ(^gRGaL#y똓 |. f/cE!`"ρ==|2waG\hl\:͢K1=}ڪ HjZ;̒ckS]^z>"h! xjS:NRch]b2$pV<[rIUAKS37ts{+ (d|h"Xڝc|tA##ynUaSW-:'vmmck|Is{ngObA ? J:M'Ξ"ִ*Zw,WRdl_h3j9Z$D`2YɰjtQ# ["u)Q9 (T%y~sCJsK5vl} g^fNHW2\>=+fj `q:^AE- \XFh yW&FzSA3<WY>amƛklT}ޱ+彜y{h]*uQ8%*o/8>7s#K#g%qnM˽mjѝӽG (9 xUoM2 8rJÉaU2",jĻu2)X~;pk?8 ^b/׈ztH,Оb7}%mf/S߭yH=/e"i#8^u'h_jLimiujD$Wǩ¢yͧی_"z<( ħ?enYQ+=`~uN=NA)p0yi5JS6 QsGWi^޼m^~(D xl?1'|<ʑ3.1^08V!w'Z-|/]A&m =?=kW}~PTJ#د>ڟ%r(rNF.y\;̨ccEaledKY ĢA

      `ݵԇK V Rn^ p ㇨=*dm7u=0NS_iﳭCԝen~;Q9I~V~c8QtIwdz8w5 !_[u:uVǭN`BHg3W72d|D8^Lŏ)quBQUQޯ56(Y6kaBlCv$T3ӏ(!nҾfSGQD75TU/,;AevzYhǜF`0A0 Eajxe k4&Op-R$l0oz 1q7LxĻ;JsO>H=VM;!쭔9.p=X@UL59ͯHXOȰ|8C7^ڍ^?ME9~<!~lQc$Rp\ʌ4Fݸ]ঝGSN^.$z,tW'[{s7=w^ăV?U^m$| ਗg;3m VzB oNfzGopBߪC "mw%[6yG/m>Q 6 A$z&;3O6ƟLSI)Iq3\EF'n|BIy셻^ϰp2=T{-GX}4`J ?!D-$\ʡ\+ ~9 Q3ޞ v]KF )M#vf7m8sV[ qFKYa˭֎Q*7K[TI}[9DdN缥ݼ\b?E]{LJ:Kb _˔;OV`~ym6#@ lSP9~m\o`ʆɌ)3F<@IpWH$zF]G殉CM5n8E^ +8ܛF][f5H; "vy/ɤΌ=Wjcwqo;9nҼhCȦ]N$\KW0ed웫}[l1 \5f'Ÿd>|`I \ý*EW>t,e.uKvwGXԨ%wfZ o#zIHULpa.kG' L׶%O#$ #>wxO#^B )'K\=T²AGL| lR~#)(UʹaeS.y<ûvB/Rl 񁊻^8 V fჶa@2a~( PߓxNt#F "]TFEOh\7ݍ 龿6:rhSg9#0[=^A8#3=SeBY l' V&tQsM^+ܸy͸aC$(R)*f~J}3nDA;,txQd~7s,|0?C7[uo\Dl9x}Ƙ}čf#5e2%w h,M40ԮJzg|J?8W?YĹ-э̺wqꨧJmZ)R L1?ggOyJ-@߻ bR_FF=O_Q΍8RaDķzAsbeR.h<. bԴiqr<5bY0܅l+u>}/`tj0ԒJs1;XA0[Dz^ !T9eMdH3 wvFRUƽrIyб8}/x3DHqmMGY~@g> :pWC $DwJĦ.Dmɷ*ÍQwQ~aC6كj+).'| a5QZ[2\ L"yCȄ %M|zxvv,Q&j_EĻ;$l{JBo$iM۶K@W\fFr"bG϶@HLvi|:B\U\"5k3OcM$?hmo/Oضu*~jOG?V. \]5\; h*KǛ͎M;ڙȱI.mW . Yv fxvp`tc^djqXTI>+z:omp&[IՏdDq̥[&XPfxdd3`mnZiFWIn>LιÌ(CoܣLJ4f F^ 0BSsјcK\y2!ho/Ha柿g[䚽W;ׄOsܹ\i sD ;Nܧdx 5hBsq EX"O ١<z^n}T帨3`a۔~ e9Z5Lru״O9AҶnk. $أZ1mG;=oc%=vR>BAp"qhd q&glKRЇܦ,;+cwPmi?'?98WNV7RO z 2+[)V7ηuS;xC Jpqě,)Y)wK԰6'Ui D{VS9o6ˢO~>`("tnht 3d1؎?ROͷv'K +??ޓ)$SN4 n*ȂNeo_>cjJA޹9sb4hG7|-y~iann%j~Q˕+ FkhN0:hR͸qF"zZ}:wn-{ -jz;SO+.- 7//F6_M*bkzg=l3ڬK$J-kfbM;\t36a~\p (NZ7neܘ`X(g1<0V`O皻W?_.lv}[_ղHīCMRzmm|h~ddrrmRH&g5XfG-0AvDz߯&+g39.mGM]&cr%l.m(ObP,Ѣe\w(l8Z&uÆxfC%ScqN3-3^{͵%Xj׬Q>Z,Hl ԥ )CgU䦍W$n~gX牟l9nڇ_ }ר%Z)hɝ9YBDL~vAJomܷ m؀m O'{/GCN)M7f6|Q\W}Fpb$wEY꡺ (u~=Iz j&w]CuqZu7uLѯvRJ΀2/]Dn*2/7 J WsY@bӼKV)!?w\-~>%iKۗ ʺk~ԍv`ej \P9> 4EuZcaֵ0SPKt91͇ũ80:nuvola/128x128/apps/mozilla.pngUT gUA4Qux wT5<)$ ̈́PE@PDTTDE P@%cTHyPQP4Cd﻾ܕqsgVk2AOwV%)?+)bzzPDOwz*͑@.!5B|BzA׸l(S1b=`2XADi8֡CU%C8+RHU*q"uC>P'CpKwVRlqצ'>xMs /}ewLP"(\_Sv8g ¦Voͫʆ~:MJtP $Yr *:AQ!/_$ʺAٯ=i[yۼB} I_ F9ى8@ ;(ɫet?خ_65>- ح*oնB\H\@`F}#JRslx\ <ʛA`|G(lH/z1^yy.=<)P}'3@9Ƅ(qَ&Phs[y:|9*yo5+ϙI)q65!Ϙ#'=~=州1KOL <K҄ !_9aGd݈GwaCX$)] = bfseAaPOT}""(\P䀶vLpDHE[%e+ @:⏿g37lр^ 3ԴZ)XBH`%p=M] 8fHg]WE8xY 2Mz>➫/R{Pp{5YmYkfARݡ=v#&h(ҡ̀U%lp[䮠gf8^obm.^WSk UsX39>ĞI=>A Cж ЋGb2+l/?l|}Fݬgsq~-/Ħ %SRD, %ugC<)>VڐwƞUқP=8KP6+T$=q9u! oa"O)T_b_hԬ)S+">ϦNFR\#j< 0~OCZ^hMH祁`. 3{B~ f=j^.>Pg^A$a@o&~Ms#͔ cR**X磼]Rs4j_w@2Q\V5vm)CO0#xvF+ŧWK8Ban^p腄 `bH!7$I[jd8>^[b3BPi/K 7 j!B&}W7v4ySQ=z*֏Vp)^([BGw\Eh^];ߡ(xR}YwtJVYbJ^'O#@ 'җ~ uH='-M5ey-礝qCJ`6GB_O3 %"$? 1%v7 vvwYpHz*ܠbm(; 5Y6[`#+\_VcjK;ڎ&TvIE.q(`4Nt*4aqo>UͫMKPZ/ݜCWYc~ 풞bˣ N]qOT7s1C:l(s3 e`8CgZ1B| 1񅩲D| y!ᑼUz[4Av~29tS"?bǎ#S1t' c|G9'oiKyǩwm1hsR"Pd!'j+DxMD]Yr<羨[J\\&$)ms>+3@NqiT&ha|j|Xb:T%*pxW= )scԽmX[$ny~ ͳkד⊺%ß<Ļt-0? mg$/VzLrh]xHlEigk*qŝ-";M<;d}]9.QF@Ņx`.VIK^,I]R_ -SbƟ^߹-{g!R+PR>Qxch {ZN㾚zE见˃qػ)7Qa3I p3A $th3s1}oF9mBA b#4tJ a噻D&%Q!l*KO\se&Ek;Dfn̴X O-rs Yr CyO"34 fu ?Z ev/_ MU+ㇽTUKe?` Nf!v.J6*SmэMc2p"}hg܌dU3 n/Le#]GBJ??loU^뗝bD˨<b l|A$]IE~GA#]u"Eb֦(:\M:+-D>8vہIZ9Bϐ1ۥ 4SD; $Тx8 $LŸ { _E91^ψTC='p>(«ĦZ^g<#B8PKC.X,E1KM/I[9${>Y_(jE>@{Vgf{Tg00tQآRLk^kWyԟvTwDeUr̓63\|zԒ`Zr$w1`͕ =7iЃ+7e3 KOj2+sK?zGյ4z#Inmx^.M_EٓnC76rJbRXX{8u5OTv68z0{*[XHu<(-n^~ݧ)2-qUۗ]6Wtx{ t:Ap_9W )9xeсsi晊f]3 hx0Љ{za z.؅d]T]ߤ, &NvU4:QF)ޘe3kܻ9 _jpߙK7 P3b"ps¬eH_,NIck$vvsnUeFrI:ya}#" a#mnr 4Ik,"sO/9ld$jX[(%[!Ni8%L7#©3vb%)}lbί@ Exݙk#y tĺզ~p[[#Wuݼ'CJr ZDbp"x׿0@]<UJzM& _ɋo'pI8}Y-L\Et:XAY]%Jl^U{$*;K֣4]ekзY~=)/Oɡ=!ŽhWо?FSY7{/_W^#} <,6u_1ʸz|6&| -eoXB5v+y;J2T s_9529;5-kuhW/IyD{|:||>T[f L%{fO_55ڽV R(Mץ淑wg3ui-joqʌyeЪ!_& !; =w^{p1BN씠GUj^?gX1Kib+Z:JDοG7O TYS]=AadzReg&@2֌Qr)bSjcmsR£~2WsN 32 k:*wˈ,iAH3h cq)H^ c2bرTLP h/U, r4m[ r8mG ~F.@ְw] 1Ԡ~;ڢ lzz%96? D[‘t‘͎Mb ` 8>J\˓: +ߜ0V@;Er~O\DfڵcOX|8칂v7`;Gz+ekfʗZ~2V' E䩩wynrX`Ky)^ɉɫӮt(pQsr_H0t> 6jdlCqsXޏ&Rw(i$ @lJkfqɺy姕ئ>D_uGBXD -!\5Ne.$XTllCiW;;&9`7TRu V!XrBgl(w ,g;ގ_ayd,vjAZ!4~C (H77`@;aRM8j}̬+ٶ*g!VYE WO쟁A[]!0DvD,snWڒ&BD_@^h +Y8׺)@Rg߼1VDo }?%jHuDLqGgi&?5d98oo+@~ՈBrA5xz>c{x:WYO6X VavُSy'd=߿TzU(%:};trxh!Xj_Cs-t,>18a~4 9Q39?ѵv} "IkFu5E'ǎi;P <2B3⸺+H`#oJoܭn,nZ{0ʡ$P69q28C s$Iþ-`քϼӧb]  b>گ [t}hߞԣJgU!7ZJ]\Z7\Pv˘Q⋙ϐJ {em| RjbSJq '2ff8*żBoE=3馃/w&=xQs}u_ANR.L鴯y,g$[S#7#:픲YcoJ@ڗ.@OVQ8S'kȊ_qA^јcޯTi7_+X kwM;z5JH=Ҥ/s-= Ü'K Ϻjخr@oIcO||T4 >$鿗ȟ_=։`y)P+v*|/fq!NIy4i/Z^ OWӼNLϡ'\UeXW7W|:~ (s߄D0ֽ$֟X2}-Qԣ>Kjel&RѸ* UMF0IHhP'95qxbY `kAgߠ)ўߥ?|!6h:MŜB./)gvfT$zQ>e?L/qL"7]D@E)=HaB6'?2rЂkP^~EwW"`{/M'䫟㊿ScdxN_Ra~ mJL^-Ӟb]_VnDҼph!oC~A7EeAx=bfw$4IbJD9.ڰ(*囓%w#۽GݪɅ4BGlq3 "hHk?(Jmv[Gu*{=C vʮ:v p4te_ uY;ȐQ8Yf<˨c2'?`@៱AHA~q r>♕L_{ E=t Ƌ\ 5jdr.^2#6zpsY7'C LYh:INhoGʃYrBSq;Tgyd3ZA[It?]{0=޵u c?;a8&5탊 I}Kօz{vVtjJ Y"PՎ&C9|9(՟@HhLTBzMfK9"3Y@f0~喁2_HN~D -I zQavKxw?렍pwC=TkD~s/۱Ωд~wWQ' 1Yn$œ'٢e.7:Ig(>8mlo5q֚c*죈E; td&wqܦ.p9CUc?N~$HsD RB[wP_ڭ 8{oЗ^eHe.̛݄/nO0vF:M k%_,JZIL]SD?iBoM9{si;{nS/Q'9>S 3G}9GǽÝ+=3"\GݬHRJ6J{Mf4ǗF<;h膜iJaB omtrhޘmT/ $=xٱF00X[ HoeiOUbkB"҅PU_aMgS,[]41NFN$CHw!~M _ Odg:IAH{IujX PAN/ ~V[9SɽmRMC;3y:ƛ&Rv~o9BA)* :j'eH53&K"VȹMO$~ߋNJ 63R䏱c hдӶ媹7H ltf%asqlok e>*Q-EU6+4fYe֔+ Y[b[IJa7d){VI6 5G֦6ݢAOk̗up)ք_q`C(]W,j= LĢ3.ܡA)3}7=4fWY+yq_۽?qQuZ "fQMk# Ə{W]ЦJrI;+~(ܥtfmmJr%G A o^A}=Bײ`wF:T%/X5xbZ@K%jP@@c8XB ʿ;rfxrVZì+=Yaɦ4D@_m!;ت($)r&8 vnpQ6l[ 렿Vpt\0B02;K"Y^׶K!Sj8)̠kZ˯ D-#ccCEb wooz=J~k̟`tʡW?"z`@35d[e|c -Kʼn{9G~-ΟjQ 9~_&%?T./\+W|a=.x#NjV4wYXoޢL3YeQ̞* ݼ}hQ@qwEv3¿2<ϷU) 󾗢7dS}[|Z\lcTכn̲>y1j$ y@/YȐyQEdB'gސaJ6䥱:M (,\ʲs9k划Aa槇H_WI[glP)^ռmck^.XNDEMM  _~5j;W}$,֦?T@|^6hS>>g, s=gb+e,>_%JXrgᬗ[ JzLlWaT#y|wX1Dˋ5vshxC/ΜI BmG6t Z; }&\t/NڳJ%y@yMw҅f`f1kR̳=,zY`-BEN{f^2S1Gw@:z)莁DX0-{;"'M`]=P8w G*WUu%\`hbd; YV18D,Ri_~+JY?sZW*ݟյ̝$)#O0gK m%c]4ßڅr_i(z ]({(Q,yp-@]elݴe/݃C>|(^` WRq+]?{u)ME\,Y,^aӥC!PupOrN६VM'y4p;{GTOQ(6\cN+f:+n,*u3,9vWQB hZPp>w2EgGt)ί.F)V,w\.uGpW VPq^'gTMፓv⮖ƛԪt?a;#TǼf+Phn{:I ap七ַ;pdf SO|/tLi!z Rw;^.7s2@0T~kBif&C%/KtzO@SQV{3πhn KlMO_3^)_kVmpN?PKL1nuvola/128x128/apps/mplayer.pngUT lA4Qux yy8T}}fc$K {%!G1dkg=JѓEjH 5H)kN9?Ͻ)OW-nNƢO]@t@жv9* t`tLpy (oq1:z^pЃ TB&<}"bI!b`)rgMA %>w`QQkW1D*} ^G0)r{X&R`#{Ey% h6o9veK4R+NF =LH7T d( atF,eaOW@hl +8:e/&"%#s<|sj#'?_!-]!Vd~8Λ-8&3D(ܡ9?4%nsxM"(mfWbǢ9'Ojð@zZ}iFo^v^fGcB /o9{vSY,&xwćG"&-2V.${\w{ڭt[wcI)6?#2DTtLV3(IsKԭ)p9(+ժvT^ٴ~={SʦM[T5ǰk5zj1a`ٳHm&4:4{ m&O&LquKXō tE.Az;n%Vß[9B.;`O4‡]'OPï0z+~Á }ZϥԛUƍY+E"@56;"nє ~ۤ2X"eV)>иM0yK<3Ylcf6 7RQr^o>qg/K}B-ƹ&w.Ѥ('ioMe [Lc &L&V  mʏ7yqwit'J_uoDN)RwpQTJ\iggg_ׯeνj,k$NO kB_Ҷe_X S@}o򎣝klyZw ހ WBS=w>-eGB$`NT;FO3kVqOҴ{.I :@%pI'Ek+|(omΞ{5UW XRv빩bmBtb$n''sZ#sQ񜪼sv/o4lOT).aTagiGˌW@sy\?Ͷ@=6OJ1\Q(y ,*28j. DlZZ`C =VÔϐ=.^Je R(4p[/9(-jWi ./nʹ>gQхmjQgHlɬ***R. A\Më.nBeJb60D!ӿZ1ՊyI ReH ǮS-Uhf|OD11A\]2(ڔnͿfsp`3_B{kkkH@SO #EɃ9#.6tb~SK=^̋,UNn=Z5wl }GR.%ox{I]̹B+B@ ͉FvFS.2QBTlll~O.5.nX?ƼX%m^w5yA 1!>b>:}]r|[1UsEm;1mQ'nUl5KnvI2 P 5޾V]Mmhq +y)aII4.׍զ"7Tg2}m%o qw|m֢ȧ59Ʋmmc6`r\&<;dnzIQWy r~)gᴍW2'nI~C q3jp]|((P(ĥy }6PcwCΨ.e"_H3qsX,hjHWn+&*LH6FfF=z`#}K燒b!l@RuH[HǑǿ"z=09f>q䠩vqFc{3U |z{VÖww7#qޒV[{#oνr/D7TmGppên83a+D7&5o؊IdB,)}8-^r4+7uo Ψm'b8't {ܜ9ԒF5 H =Ej-HN<?,zb tyvD`Tt`P͇k|R9Re4'<ё3c28I1!co;;1VC f/"~"ۏ[՝;3&|mRc NZ=uyi"Sئ(>y¿)*vXGQjPo^CQRi*I0R]`-ּSh0M`,ٮJ]#-*i竍2$p;ĺ0j`&Vp7o_{|7d>j羈b( ztj\T%T0LZ%]Sr.T< 6 %J=ix0[v>V(X]yȟa!sTG$tE;/p#+۶ ٱ#i..y4R#nօـ%3%T<1CL8'L#! b\XI 8y@-+P\bƉ,$2Y}CaXRwG`d>4Oˌ {iW}sv{y% zBZ~f )=Ӛ"ӝ$ w∌M"{iUe2g]O2)Qg_u~^KkO6gFGTE>n@Zu;??))lgui@E4 ~#,Ȕ'_RG&h +]J 9r?<!T ʆ7^$JfXRoElo쮂e//Zق7 94TMp(#C%9E݅K mϟ&54R&o#Gذ+.N4|Y.L3\`k8:ygߎmBTu":M`fãtP6?0(ڲ0J|t%@42F;CV͈T\ 92 X,fv`.j{屲a[h ڈq[غuxWca/C++ط[ K PW85?d#(&u,L&W1YOG񑑷.ƍZdXǕ{{q7U!n 'fϟG8xWa/+lӓu%uuQ}T*1Jz eTðp hZT?Oƭ0`.54#VGt܂7/O@4'FV#ѭi;vO38VࡉۉZL.3pڰt.%agS ;0XG>_ 3w UXō@oW9[ @~f>4A纰/}mECڲJ.V/<>8ASZd-;y;S)^8f1C1e6 $@W ).V8뀧Mxs>7,T:I3@it F.p:b-#(;dJKXD|O>9l_̂Cy_ѝܨ]y>%7mtˁPKL1Wd GNH"nuvola/128x128/apps/multimedia.pngUT lA4Qux u|wTRe;@\)8Qs Gnr64!neW@wjraʒԔlYYYsz=q/劒ReW.u @#H$ﰆBpNE My]._E"v2ȡ P{G,/;m ;(Dhr2b *dHE"mWWćaIh`JlE/K/BER(Ektv7h*e'mW %((LYM|'N.ܡ4ܕTmΦf8%,-eyYBFriCL< >M9%%Ei UK D ŢB %* +ȉ{XCyў4q52saxKpi jN_#^/"$ w(KTS[IldX9b}R)|N?fڢxcAzf!~}}`^x nd}i>Bq[^[ fìext1}MjVD: 76N޾,.<|X:w}ble9ڍ/XlO:Qmi=g{:YHX9I=9`N2Øn^އ5\oLm0$.Q`\2n cDa!ZZ{ߟ'dӗ#2 91` 1R W8W0'$Z_lB&˗.]քwnm,]\i 1Z _$.;/1nT]GC~ L}&?[BjQzz֑V9K6,*X)}7<%0=.9]:<#Z_Q4K[=VhK'KQ1;1F {ϞU,4>}"/^UM [UɁFx2iGX\1E5p:)j5T / 0zvmz3Un*iyYwgreH6" A iN@h̔Fq@ŧ9"}tw/'D~j\޹*Z]>Tf4n#"99ٲK1NM'+:<;Mչ׶C=*aX("<++ 7 |~ 籴BrǓcyhs/[ZTū$0'z`Ş:? j^#d e7|Y]]A<ˁ$r3'$N';ue Ja"e]~0n˽魉]^YEb<66'U <"LYOjP~i49bxY"xH7eDDZDĀ6,5?4V eAr:։*l9\@wx`bZÈdOBpe7j+aѝ3ˢzoZ#O:|/R\%3`aaon8yÈjvYrxJ\upp@fff"5 4SlMŵj`Z2Cv$a^p򳘭Ӛ2_$m OU@sofuJ`W ڤ35V[bfH}@5_ThVr ܐg1-C:C/}*1 T,~G+vG`Ni%׆\~&)fnIe òqw99XHhOơ4rV>N] tsܡwW===H89/P os.vJqO6% (KgpC?? ẜ#(eIT;|䏦K?E%A?_7b. dׯ)1I')Ǐt}GQU*I9՘S L1̂Chm!K޿܆3tr޼yh{=-$04!0(1-8pdJY/udyѭ[DH^^2͢^F4nȽLXCDʾ mL>zS@4PAb kx32T+|j.IR &ߣAq#[)ӄ87{;f0,qt '^EWr;s{Q9S%g1tՁ&D)mt.Hspsl DZZ5vd0wOi)v;)]AFx;VϫUSS"jF:߳'9=-'HaXiPYWWC]4n=,ct.b}!ɞUfu-QfՐ،`N:_Xdw8 QiwGơ[a|^T^!-X]AqOԭ%"(1rGapN]`>!F{ |Pmo5by&etPo{U*[/nYu\zOxOuq [!+.P-N[@i>n211=HCc'D0/ weK>7M[n$ĖiL4 t/X`UNmom͡ϓk#M~^Q6c+A;7RJLQa~s=1Sj9$*.vyfR {Up;t![Oh_ %;s[::e?PGޖ=(dA4ubE6yCCyt\Ƚ9'J P%K[rЎ`*l .3a3gv~iHTm˙w77﷐.99kR`Qvw']5 r_[:TͩJ:,H.f0Ϻ`Ө5&͘P\Rn u2s(Cnzgaʊb=6y%:\"ts VK,d?B@Z|诗I-8o59 fwbg&!!afsKv mQu)MER-`}_i֭$OO~px'('xB >ppPcڊ9^쯾>*y߆ذaL[~qCk 烣-K66 ii :.= 7<E).@]E@؀z%x7ĚT1ؙJ5f?Čny*'a;J{ -Jӧ\SYM_wW*T~~[/|4:^(}_ΐ3K_8] Κv xY>0m;`jg>Cf̉~C0qѥAz|9ק2dߩ Vׂ~܌ |Ǐ_IΒ$c3q3I_iwE֖-ECS#p6YqFaMNoRjI*,sؒo#W|hs6(./2sH=3Ʃ}Ǹ$tFş*m++Ic1-d6ˉ=6E-3@;r+)OAW# c?L!ݰu4{^5zqϯJ蝹 DB6RWI[[>,ȹ%I"?v(}cU 2xЖ"\V@Tʩ!<%%e ?cd2t.rي3~ +޴cAz@ u{{kCչW]gQwc- sZM C%f b7g۱1]`/nӱ{Ut_*de mhٗ,3:^#u1Ęکoh7~/qcKlg9?ҋj{U*g8X$ *;fBY̰ giefס![2LD 9V 4Xh qttns  0EHKFLg+t]IK[ikYtttUi߰㲢5DFNm >$=T yƙ<;\ xD"cq}$ -/jf !y?HywSZi/Lԣ/kp1O~?AWw4CqmD=}Qj"3°$<7oL9e&"س$ɺ/T~{yށ&HS ; F OrxISx80yt? 6C?`(\MJqF*^8k,YMLE6\\E 9JPNEAsH_0j*s-ֵ6cc"ؼ@UϛTu\["K9Ũ$q vbG*UDXZ6V]SfIWՀɇ@f@*h% {ǒ>OZ Na2vZ<`ҍ@.wdheh4|tQ[#w'031[pma8zW>ϿwԷ/~uX෡z~Ȩ:랂^yBx o9Gyӹ6A*۬)g+f@8{mήc+A?\*$<՛]A\Hf\}hN-eOSjғ04pIɤ,I0}P09}!@7mfZɇN Nȼ@P|~6GS؝;qh}1]嬢s -Mle]зxדqU5WFӛխdV 亮x&}}P/!L*jV] =Thr~z;'XD`=Wr(Z[8O~/!o71SjJѪń ^wx*yD*Ya}¿?s863@ qsѧ*Rыeq"5xB'%D/D.d|ޠeALfQVR6O0Uzci#C' 1q-PmM `CwwESbd}_%E~qey07+!@>lq7qk20ϭvn.圮7%~)h6xR>Unti)E&ѡVn]AqVVjT>-ÝcA\ J禂 '@I WڬN!'IYI5d:Z]EpR)TG&xI)>]#/`f!:G~@Nq2D{TN=@Pr"eoqa*hN2p 䔶4zЈmjc0uw9OE ܦIQD-7”þ8u!ﭑ\_jPԤUyɂ'g#tw C%LFc O|Oa9}w ^tdk3TE`- BL+FɃj#2Gmb(AYRWcΜ9zqdJ_fo?v1RY(atIeee쯮+w2Wm.-{:]̲jظ& p%4 k]]29VpO? Zi5F"UVHp5$g\YL6Cu5=dٲoSw.rf|I۠2 vP݃sҔ_A#u=)ɚ_| 9{IE>߭ IJB̠Mw4W9ou5X Cb@_*RbMF&o}Quݨ-b7ȃrn7N@i@r܀j! =AU= D]h ٴIm=-[# a$(%MqjhjNepߎŊ+8IxC6{obnub`!88S>z;ҁ$TnI8)|H"Q%sIs-8I1SmJ*Qt^ݤ 8/_k䀋i~ׯO1QQ 뎳6N %1=kS3!d|W/>!wq }_Č "x\XɢgxQ`!P sRݖc!Mʆޢ/%kɷJW/۶0LYAG1b;͖ "#+h (H <}*?8K ¬ƫ*S(؜G~/|}Rʜ5l }"h"8\b";kƶ"s޹QX-0pL \ NgxudR=0%X00"f/,/{?fX_؂us6~`h@D-W* W*/$?ߜۚQ,n'qaPw 7vg |nY–Gk ^P/uJ22" ڶ"m-{'!UD`?iz:n<ːf=Nuf'!EMW.#3GZ oS&&Γ.𷑒$xR2aضeg3H۷ӇD5xQB˲;L,ZTƄi=4@ DƂ30aa'bg:PTDuzҌ7q<daDjc=GvPkJ$8?7> uS o>DrMLZJ'xK@X1VDpө_8ͯc-w h:px+ridNdӏ͑ZHXP >&"T&pN䒬uݬNzYƲt# #@:0In|Ŏjce%:qV"DJ9b4y Fs;O~yX aayx;س4`߿H ξ ċp6ܧ!I}]/sɓm ziRTo굪MWRF$'΂xe*ɴyY ۀW^A?4Aˤ w UFi@,7A>9D&ls 簲;u XL[,Ł^rQ!ӕd YgPB/{*ѵ:]bm9ɂC 5X?)Y_q־j#A`/:Nk^Wq_uESMǦ.^dqVKKK^00  k~~-;hE6fєH98-U1#X[[ DO m :YA!q쑡V Ԥg #&5b!Ŷg `*@@ؽvtLLd"]qV9.G,=-ѾN Jm4֫[fZ~aҚ]MN~?RY-rMb4(X͗AGO-!Zݭ#^ͶOc`"z*B;=BgGx}`<Ɨ'q>ۢH -ȦvHadv'rr Y1DN:³_Zcu 70l0fy2@j='xVtuiه씢KrA[4|Gr TS&wN_Nb\@Oar&nYsATʹr6X.gRs-0^#2lT)`v&/J 9 iK;1[:R|8YOB Cc4_CG:D<*۩ ˘%)-mKݱ;u2B6Oi[.C'26V+IGʥu9qzU"y.@Y`gNv* T"c7_yw gOY7TVmX774[[hÜwC ݾ'HAvPQ N-?qJuZ KQ{?E[ѶfLRv 9z;m`9[E1F}\3폱$0*yxгU (Hꎵ.yzx`oom9 1uâ2Ch2tFfS@ΙTZ[dM-Rn$ 썿*PkDi*SM+oP_JN(i<^u#A"AYCz֚<)qnV$\y6|[p~t?8aLӉ 0Z %Zwu;\Qp41/E;,0%e.axxfe:tk`. uĒb2Yl5 [ۃHMa]r, z:~|ts|N}55}U0[}8?9-Ε%pz9ߝMO>>m'vc:o>, z.HNBcSQ7e%[۲x+y,q{HhII1*FއpwJ*Eq0+,~p'Ǐ{neii/ y94ښUfԒ> A-9Ա-GVyb"vƽa0MI ͆>U{ԳIx?P]DL+eviE$wۼ%@_TJݩIDQ "P32]ja^f3r=@tr|+҉*YC#Ek")Ln OzbwWQ͝Tf7~'b|O'q?Ŏ)$Q S:} qJh&*= K1'~um:G`vGBDg-Ƈ[=,ѐ[aa[Ө.M_q'76NZ4d і;Pݥ;D ŵu! @KZ䠟4eY-sW07~zkx)ڙ(yͅCwKLT)Ԅ"@! +u A B̘tbKY* RzD'677uƎu4F7 ECTֽAVYYn&̠ZUҲ鵏K??9#JVp%?hIH~OWl9 2 ԏD8sr6X#9%WF뫉(1n,**\O_PL9Ԡ?ꝚzS,\~|ZqvBb}A=-7g ɍ orZg>G,%9FBinP,Rc +m[L K ?2zR1~f^Q$3++/<:I1qϭyI Ƭvrh_> /郠< h Eժg!?[d)eO#{ u bŤY RT( dbePhWZV:/mCc`nڊTAo*RU{-1!5:SwH}R | 85UgMIZN_pA’:~j6_D ~ڲu+4T4ViaY)9~O;=X$I~ē,ץVSs;"߀vcl븫ɀhO =mEHf|ƞ^alsODey2= DLkRvTX茍 7hqנk}6v2UCUwu(0ͫ[ >Gd<8nd S.HXW=7%#S%쳄sSʍ5rjEo`:Īˍ_kpk#ȿLKQ/iwrU l&|&&Bp7)ua`4eY MG#{xyW\ f~?VkDr3@T&qrɗV9mT-H b݇W(Wt f7BQu1"3 6$O*Q7o{dqV&$2X6|yqc4m2UcSF?(Qo [{mrٶVi;s@s! C"v oru#g^$/LRS4Ң? Z˰lKrKELƶte ~ő{4DG·-wZ@9k7 eJWvSnIoO<IOӞE]gi&%iny11$5'^ AW9ܯ_/hɜ29vV!9=917KNc2[.oW EuDO Kڊ'_"N A|˕~Q~A%~$%f+VҲÈÚR^n_8hi|I0m0ûٚA$w<*6nP丞 EgW v '#xl-`*4 w} zi@6'Lhc?)}}Ҷ߮"I P3YjaV<떷O*pMK8 ae!7r>׳{h6 >>.SeoX8ⵓY|&u*ǧ[dlAdbYrSF:8 =~9M\ I+l6/r<ǻ{r% lnƞ,d\Tm} ?^_\Fie)i5~Y-Iq Rh @L?XjP="$UM sTpdz,pX.7GC`e `7@`97&^HISC MnnuPf+ִ0QV\N!_n+)ʞ *z/pL#%!˺ ݵpgp VͩjZHL)41*m|$IUDqzBD|oW9 *H;'-:,7hGcHQĭ6dk'ԳªALF; H;hF' Tt}LR=F8h]<$zR5?—|GME5VJƪ_3ᝨsA=.7~`iCÛ:jdE '7+o %28JhPRnC,JO9HKƪ+S찙t@j׾ư2t=$ .{B!p 8LTV9:ٍ ؋ukI/{J>˙I%0ȉ"đ G̈́ĈC *,,s{|5wsĄm#J琞TfVXYQ ?TDQ W c grY9w[r:2o!j-ۦB/֥~`KzgG%yDiT3֊ږ\y5`ڂ87NF%h. ֒&]'%*l>/OA\isۭ ^w]b ,c1T%`.´&*-v)̬h DuDC(]s q$ّޥbZ<lʭ]6$$H&u yRJ@>;׮]M뒨uo*PQZ! \}ҭZb--C}^+po!.WB)P [^iM%M[NK (|]<8ƸYĢd8qas=#je,cq.JEeB~n7}VJ!{/:HQ|嶺 )ӝ!¥l6 -}.7 TU /7k喅9ʹϊucˎ*! bZ&C7?s\ ߌ)Nz[4G}ˇ) T9 C6a.I C!ʀec曳k%24Rׁ.#P*ܖnW$G~NP_sHBUem j~hfoցLy^;,9i+3(x If]NLh πw>zȗ_5 VTo',Jш^cE?@z{>I=C9nv^j[>95)7Nn_ |to&ǔc@.N_*X4Fee$;V>ݍ4 8|hU6G޵KnXs:>EǠ0<14MG3qC'smuJ4.3KI6=7?wo!]U*+kU*9X|#XzŨ|/:wm2r6*׿&d߁HPJnѡyUmee_^ED!:]^|lHtl},)=oYcXqY(yU4UG~P4{u_ڝ zyf/ jyKIôǮH^;̺kBi}ʺ9-U},zztul,ч)#Y2N7#l1fӬ,)!D JAv wK3uiY:sdL$h/B8!ے8eO>>uTIEO`[$Y~2|Z[H]F2/,hܽTI^ጠS_8P\r#bO a \(cA(;$"svc++ k^"|H$NG,f1K%bFzQ.<3^ iov1,:?@̓h)aϜX"]l8!G:v C*tcu``T88:o(#[u?W@c#/nHb>Gq+0_~!kT+3]Qg R(0ӻhtoP_z|tO+۝n}[Z$~N2~2? 򶴛n`QvGHcf?߄3D\'0Iț1O)D>KdjX*+P&HTNk@ |] i` {or!D#S@gpTCz.NcNl8eb~ڔfte_V(>eF9|ߒ3{f9?C[>yOu/\sVgɉaH"&c ^A?B/F2?I7dorQkX(r\wn+.e#*jLuyM)dd/"[ rU@Q#.o[?vd;è9hЉ| ilr73_ǀ\$5#V .Id[,EC׋+hu %ۦ1O4qZ+x軙b=$>YlN7y~L *eBÈ'Nmr:CPՙ% |%z ysoTڵXe7 r{%F=O]Z2$!~,BsQU*JC2`oNR߳رP:_D&`(LīDu.p/U zc 5m@WZ@RV pvF+,VfbxIʰJ˅Oh)fنQ)%ne`BVA:3 a@Ŵ2y%ŀYP` ݥl ;)A*0 t_F@A/Z /)޼ rwP3 =m'Z[Vsf8wd֮}.)wsБ"CF'Oj`Y %< :Zs}"]EÞ+Xne+s(b׀wtHۂ(\C@0;0iʪ_/')ٿvpjyy5Ae@{q 2jE>Dtu9WM@0NQ -Zby1~On a1 r:Crwc"/!@X݀J^Y\?&7 9n۔jeFR Wߍk.s0wﱴtcs+ltsR %D !P '`B$|aq˛ֲ"Klo;@Le =;;fr)U`޽ZwUP h}$#EAEwɢ(IYA7ya@_( 8Rq4'!_@ˡuDM$M;EsI/;EK:y HNElu[r.nb"HGo]8^E? (h\M9h`HV2DRmR]䖮RG0 nO# vo^E20}luK;bX","{k#qm:qZ\=>27+X"dIj<)fGL>^|j;9$2 dA佡UJh'Ʉyi|YEmZ . .sЛ8˯e6'ޒӳVhAe~6U] )Z ,le8:CRA[C8;Dʌ&G}+s-7V ݵ9cpT(zx8u(T *Z+zXx5`s31LDuWhMO Dꖡ|I 8L2;p2dpܠ nT0i! ,@5~,1>+=yT nGVF[줩yQw1PZft>M-aq B5{'BPHb]s9kp5cG"[D˝Y eX'uiB#8?~4΁P_¶E%HowXۈ" ܅Npqu|Bstf )3xkNSx^OK#4;;:uهU;) O&\v*@jzg"Ⱦ6hOh̉^+ AXWf૮z7 \m*BbSfUFRldNY 8GpGi UR[sI"*z 1}*tX\H ޒxo_DQ?M]JH&UTURu&jfbopu7!➞V')Kr|cŞ;v9OFYL72N_H?Tp_}=KZgٲL) d'  TTH|oo߹'[ >h5p '7i-`4"=,[ޒQ*8> ^|x:B]6$3f!~z)м3嘅ET!ZjI=QK|D \UxTk)< ٫X\w1hmg4Þpz$qt0Ȉ'%*Fy3i9A0\uRe(A<^(B=Dt*W++B rM=D'.{uoy12 Cw0i0R)G-ƛmz< YiRNlzMpE+yK~ R;۞eA% _w,_O_ag<4lFk.]S|#}'Sr@E0/ 3ƃ{[eU \Gx'g%ݧLt %+֤YjkgyeWnIEVwx rLRg]YDè8_yW%C01UjExxm9ީwS|"+=7i4^0&; s_6%%pHOa%I&=T[?2=SE*#-{|-l3LS4A(':RX”+v_s>OThL-,y"񆰂5@*nP|Eh_NX洄Zx^Y쁆@ rGB8OdZ!"3ډ7 [7{FFKE̗#񓌓'+= U?ɶYI CY`cCm\8b VP2GW[[+d;u: $Vl&l׎E}bMAG5w%qeZ!tMdX#ʜs~K*04/g=Ňk_5p뷆(c$l5W@2]2[=̔qc736ЎXY>.bm~ϐl,3I" =%ts[b\B]@(dFBeR/S\n>([϶(^. [ELH9+p=L9kZ1y덤xtnj'L[u \b,6;iI/pO>^|˾~VH:fڈomm,.{<ԃTLoAVC C8 v,*=xB Z14d%rn|@jjdY {9U=,:51wmaԔ'u[L]I{qbBj`S$}+u~:UצW $Xov?0V&k$LP퍍zSN0Q=&V S(A~2[Wwq&1f93њ(V]6N,^$wSEB] TnN47YzVLR-$7l?mC7;8bf4=Dw9s@unF"]-?kT^9 M#[+F߁2ft iKR%1i NPIuп~- ?rwȘYjΙ+Ú%8e;HfFGax`jGnB)ݗ|P WR;,Y_@ IS(yua5X. Ed6{ht͐׿G?9^0"OX6'"Y5_}F=U͸2x^s5E¹_[[W,n×˚q46;fE{msQ 3*vƺ'B5H/`7zbLEQvR |!Ufp@*D߀hIѡ\:;ΟDk^MsSKiSZՒcJ }6?<9@&[);T'|b9A/8b)'J)^mG㡮Ff^TO &D ڧ<߃+ӽùtStI_g{ef_ĹpyOʡtkd hc$o uQ%; } 2` ӛ9>Q8oքLLZ {e,vww&]z{W |V3}BB;1&[ڡ /Cs<ٱT^aJH˄$|l4spTFA&A\MpF*p7 ڵoEhT̒h0`p²2""3-)DEϵVJmbvhPq" JϹd v`#lQvuc^r*μrUH!SL|.Ž*m`4EWa2X}oB ʾv˕p̴+ pi˧׳ =Mh/KCo]i6ԧ&"PCFV҂h%z&>_~GvSO3n|-4H̚:(j˹X׹~RN!ӣ#r=t/58Ʌ!4f2 l`xS HL)$-G+7#O6=}\ 5-;5CfUP[ܻoLi<1>ap~QI|y42#ۅv"zBot@WjBט14b:́S&廜Yz724|1Ub|Cl%3IxDW? 4~<\$v\W,ʴ"\[P:QOέ@WO=A-[lZnfɊ}!}⠂ܸe?[Uoj 4(EcLE> bzyjq禺֢qw 4^s=`kG!}U:λ5XeCO!vE\SY'\8ͶiXY373s{x,޾ tAT|I'!e{cmCwAU QYnm1NqvZ7SR[oKT/ S I?tSBwP>?rO΄& YBl)곥Z%t IӍ zyp9ñ0 Z7{<~7^]4J9. ߖ|A|s0&wyēcؓtw{%xҏ\2-օ._i _miuׯ=W / :Ψ1NЄvɔMfN]곢ی@&%i> 7EQn<XGA)k[88{9/LdB#YR vhxYf~E<'dcC]>o'5wXQ7oL.)z(z1mN3X߂}io-pӧ>7KKXp pX/ʐ=z4sf̄O+~#;OEEdeT:=Eg[X`)" ,5X/6!G <ރazr%vXPvaU~'O"랧// 4dnHA~CJG< ^@793*[0YQGҷmK=8Ja)SC-i<>@}ܑC;#PI6m ʶ<3-W"}"Rat6YmU n z]|@1ApAzqʈ{kMeoj8B`NaMiJt;L#*۷*-0EC.v{W̡-j˵6 2~RנQr1Y7 Uӿ/ST#I>G>xAv z}uVrm`FD N{o9zX'SMe:U(^KUڇX~3/VySy q1؃J3@?|/oS]`;`77[Fy Dm4czm٢ ="&r`Qpғ$NTFsȞh.+ 0[Pҫj/{n#olj0_u. ݛ7m87Z8W~9TF:;p pqM\ m>/wK$},SmEbayԊVmpFfn2}G7gd=|㬃ԯYhSNKu禯yl?Rd>#ϴLOT % :~yNtM-'z40ΚcѦ˭o1Θ:w?j(Qk_`ڴeKlpRq7d^>>RԌߪCfI6mزF3϶[Om}eVj RMcՑMpoa c>cU{X+;}qI ]OU{I1|M(EoBz۷ P.rhv<^"gEȁ)%кuRiaa@б{vS3ວf(W~^$#g)w#Rx9Wu8 X> SgIq';EU!AC^m:41q;s 1YLVJE0h!Pʚa# @5= ҙo`@e.Zs%|5Ns*ن]Xiܻ h]KȡekaS$/ hȘ>/B%!lbTX!h}}}\AA*l c*X ;2=k3aQ'Wk#Ì߹$h MJHɮf^BuǦ{>b.8&:*˝/HX9,S/LMAiTI[5d,=?Z몧Uӆ"uWAJ[* s[)jM/{)?ć ry #ŬR(|{l8Zx{w$~2dnjS5rh;7o{v$jV>?_Ҝ0G o霞Jr}Reɐ n9,ؖ$_û_9EqVn/mlf_;l(5[;MMhmNix pscaH)T`e?xn$ eka Pzʪ%r+sҀhS 0CluLr-C 7$-JuV=[/֟w+yIol@=ST{B$DJp4bk{{ յ8ChFWVgWX̜WA)Z4{Ovdy,g)*}WMND8E6l.1Chc|ATxLޙ3:?\8ҖӖyKZ$doCO,e1}L<ĘR\Lu)j7\ ? ڝg 4UtT`ap}J+ H@͟z~sm bھ}R^`Љ= # [*D0zZ%c_:7}̋x0 2a$%;/;v]# ϷEcS5q3*xLr(mt$%`Pl]MNfbMԷ} %qvr<@_c-9o ^Hh^E '-FLפـ|q }xd#0wsaXB*,0~ݔhQ vt;mֳ "N]294pYqpɇB@mV__E×m USRIt6&(~+r.Nvm7d 3D^dfh KpK-"^„$'뒿Rvn̍8s]n1?y #߿0n>D:"T&2=`7`Zzܱ}P>,cqp<kDЁ4YJ%̥x=+3in"b05к/߭ آzER6B5Fϗ!!d܉ X}4V2Ä G.wu k^55ucS|y.l=wuo⭯N1 sM{PYwdOO]0۹? ,:mee%`/\qmpZD"uүiNMJO¯gN| l.1k-*fD]^4TzO\}/o%Xܭ:FɖMI6 7G)Øzdg(OQV?_D)=>$U:+EG!O6j|~ Q8T6*u#LOo̙Q9΃JUh>?Q,soϏ>M?[MSS۸{`Lj;Wp`KMs+>W[B-^{>k4u3^+pT3w35N2ܩ)l~kX3U`1'3ZG%$#HP-m ΂ݜ,Z.$ WR9N[nbk1VJ.N8[n{瓾2v>!R~Kg꣹z!@+>#>tï L4fHR7 o:vv,pʱFjGzY ^C}<TF-n\hPKt91NvL)) nuvola/128x128/apps/netscape.pngUT gUA4Qux -Z ܐqU,nQ|& ߿vOȔ'jeȸa;"c}lֺwQjԎtPR?'(<w+v"(v,n(̹`^aL#v$C=RKcʌ9i!qQy߂j܄2OKqa2Ц暙wm3o:6) mc57GQtG|P lޤYtpFc-(0|x;@~ \wqIc0tM rxZx^xbChӗo']ׂF7X>\ :2b&.1 P|VI@!S޳J"Q[A;u W@@U߾i:W!RY$-:#~OzLeDdx)r>?uqto2"`@0>yiiR'9K3e-[pk'P2 {SA(X^^4NT,.z^XX_88?$>: ;pdM&rx{ =2A}d%b0 xז/f|O#eHZ&uVڣ'>2W9 *,$e0"n[.ԞU1?rX2(#r"ct*}T /l(תe{g*%c -i)$?!13KQy>RmUJ|k << bNً,c0] Y8j0yߊF`+ {rLn]![qCaԀ:]RQ2~/[ˤ+jPO %G۽R׽j0YF,CV&^Hpm0"Pj!oM rp$qeECEB76<~ NI`(fN֮*Tgۗ,&`m?8U=_>ɋb.fxl?nA4%BR=|=>r6 MEg, 깢)ɀ# DRkMZ7c{nC(QNߣ/BI1q8~!uB Dc=f+lm/Jc[S&0ؾ%b9OthsՀw?#7/HlMNNɰ"WaoJx@οp=md7cfŕԍEAd7< /zlI[c iӪCfQR{rX1{m0=׆ڊg7ϱ_WLILT/qﲚ䴳jaupx9@G!`+{Sa 샸qmDnol̉uT9T_\G_9u}+y4ː\Cbv@A³("fทbMgkre#Sdߏaڝ~Oat68%3&JpVꋶ.6c2po5 Ikek¯}RP6]Qg;NdfϹ\mJiq>K8oQ9 U] 6jƻ6b^ j?-APhnĆT3\؞ H4pvt/T*G;(ln7{p+`v>vW1U5HӍ#Y)}jDшJrV^s%'kތi*y,}K>ʚR@>6XZ<1!٥Vc>}MRޭ "OpЦ<_y̦{=0Ѡ5%S^m]x~D`;K5n,#k!Ya0e)UǞ @FIrNEɚ8ݽfM?弨pyG I{J?{PI&~mo LN_Xb~ !t—7Fy}XeT$YѯD|$mwErzJVGu[#mZJ0EڬmOo=.5c Zugj,04tR@>`}ڀ4*קŏ~ }0 /B5B/S[Gts@h8 '&mrq|OȽ\t+e )΅jCOX'hs  /<UntwMYmWзVV@w.d,It5xs,ïft:zԅQo~de3-E^b^x4goti&{A_/uI%Yn }&\)RC LP#$~^ /[ Dg..{.V~vZp[i-(S_$;?^S%腭'pr0}.K8u5/ DDܸ &/b.)XrP7;kud? q{dze1߷78k%i@N"7:ԆejĔQ6pE0cJ]ʿQh<LY~iuN^ 7m \j\#V8}6L 1TGoCKr m§=0Kͯ*,+1gOZĂw2,!&IMqMVƂQ>vrh 9 oSd_l#,zM2>L8! EGu::k5tVHWٍQg'?,_I .rPĿ[|$wL=6dޞ2T7k B5LBDoȐ}g1I^}m:htDr9XvStQxޝn:C V`Ҧ{>` }soY=(mp\Pid"]aP s=cρb,3P{~73->fB;M0]F>Dl646qO 2N+/Ϗ.BKGb!B. C\mFȝ6_05˩#%a*ǠbF2);zVrvL'}o}k[U)72~=]BpޡcX q"uSKT%k.f[d5Wjʾ^CKpLV`\§Ͽ8cb,*Oɓ;$.Fqv?"FE)+?Zf13[bHgAuOAxW (nFu͒m&!Ufnjzub(Rr6b E# >28t.D;5<4hhď`'ት+ %ЋE6g7'W9lIEkOrw#@نő5R\YU%O9u|iʐuΐ ߳mpu_*W:U7VKD#~wus]6qR@Dp^ `J΃1eQ\ٱ.eg~Z`E\sy.yLp~l>}kG&q\´QK.dabu!lG0}-O]4+=:ج;VSH԰0,7""EbEBlP)f/- ${H&jÜYuC+Br+GA|rq?%faBdA^}hݼ3i1rsMvd 5*IGy.84ȧ0j]ѺU/ Gi]y2thcD`٪`58IDnRp8RG4^OqӍpdNұQ7P-ah8cX͢!l1!&nxttzgnX(/|uoZW1Xp" j0YY1:YlAW X/f<} ^Gdhw1Ñpը[~$#C64Vz1^l8NvdΨxQ7eG@L⤍2iNG_?a݀*]pd63OՔS߽sfJp:75S4!*6^D0Jzt,1nŗ=oܺ W*1 oɹ-zgdGr0)19\M8҂}u~k/Ƙ<`JA--Y 8ϑݖ(PuP./] |$ ֎Ě~F. {.*EdW2h$<즿FB>Hܐ?<%[eQ,^$ Kh H;;{yġqtf&!ֻAě a>ywMmv'__ cJ?S6) 6cp +h5~gF"? `ସ; _f94D $Pu\$gɸoF!-,NKVt\~V+B>X ۄ\MSn&&^ |¶myϞ\("čGZAO}wSo*?͠ӗ grMO[r!'d\ N#V 1翹]PPĭV21O$LH@ WG5B1wa|yڴϦMˡ<9_Ia]DCGEWzΩ@~Ƹ܄ԌJ-~ߑy\Ԓe=6[PY}RIHb;uI\ǂpcrLrOl/( '|~@yA\J6{3}ًΌv ΉvDG6b?˿h ^s- Ó:tP_mN Sq[Gb z&TACv /ό cq8OsR[f&.}%c6^gψ D` 7|HWHU5~(N&"co:[0R|$0a+9n4 kd~eX9փ DKk^B3mmp ؍j>! [o ]ĥx!\ G Z/(X wgK ~ V#3B_* :bj9a#V"#НFɀpϚ#5B_x4Ba#!岜mj{,! }z4.;Wp w-7ȿktr)}nyk@}Xu1ښ3^vBh]Xkpt9sע-h/$w&|I0}qcTM|)#i ٛO sF7Q؉5<ۂ8f~vil $m0x?U{fv;%|[`)_ r\sȅ" (}tu0x]p6m5ZwPm=п Wy NNI:r`t+TW!faĽLNs+WeVݭp[WvoU"خxi* b,P偏1hJT_wI6o=:3X+=#Y\c3?}=g4A-hsPL}I- wj±`.]gl;I[h(:m+W ̵ YOֽ ^sf"#%oDnEٟ2Bw=5̦+fmzQ$WET h0N[Kll3Bj9*~^6 Xd&.;9+jwCIzKf:jSq`4\_-6hweM49$Pz 1 ]Q; 4#q\SU H4<Ð rYG p\e>?ū =TOx7Y'+s.Qgt6dQJL+5Ϭ'ڝ^s7"I-V*w퇕œS>uI~IrDCc3bS{0F !xYa_jZɮ059=؞ݴE͛#U|W)1}&fC%eZ*$&+RZR{B%Qt2;>jv=MPa/ۗiM@WQ֯~4n*ׅ>mE<£ /]jmj_$Yڵ*lJ &11# Ά?]|&fE4`a693',eƊUb u.~v,tEsS7{mh7Z h߷~ߺ35SN: ;4HL<-=4Wogv71I(LMIHȚ"X,>ƃS\l]8wh]g`q]pQf'Ec[R77d3;zզjL>d&ω+;lPT)b~R}|H K.WxvJ?nq'ϪgdYY-= Wxp֞2>RAkГk=㔈׿j"SܱAEпF-X`R&faa%G1x/ٮh:!Z~>R-IfIݳg3Sjo/Yo:HR:OHz;kֳ#rrV_xGax.x*tś{rN؀`\qݟp/?՟j6ቅa¹c4;.'ɏYu(۴7r| -\;2> Mޯ|$ͺ"8?@/-y|a=QQ>7XMKHi3ufW޹qj/1E("ǹ*}wf hc?%|-ɖk*I'EEE`Ed%d~ [ǙH1˼@Ú4?D?z?25+{9`pp̟B,f \c'b0ݏ-Lt ?]ZJhze'_5hP\xf'Kk` 㑟zzm@(YxF[k<0B,VևS2]yׅ }p=2>ܻ2I.y*.䡞1`O)OFz3+4ӆ%ͨEt aooop˖.=.klX'hsuv0UGuۄDA d&b p5qݼ2|$6]upkzsRxW;N4ro_ceyP+?5I{ ֪U]~!,HzhvC~7[.vxq^ϵ>Sqsss彅?{>xAJolw8M v_x9wZ$>=|Z⋡A-6j*KJ+rX7w߽uvͽ3=&hb&A { pE+G)'̝LKtQ\w*e0:-+^ΛѸ5N-s h$.u 댡aѓ Cݟ]Ysb0;\;ܽhϬ]890|0IL5ˬ@oDtObaşX,*%dѣ k|||/󣵛n^%.YUX?9nTp 0 g?.\Rj>ٺ>Kx}^f?5͑8EaX3.Ə@,C_q \tm_=7u5 UI <22"^D^ [Y,|['Se!>шM+7LJ]9v#HK/[s/Վ$V'G/<7nQ3Y:"HR܏{"/R,͍jQYOnZ,w(bJR0PpDkN3*J{X6wӐg!A~yhvЁ7˜ _m-h}8PKN1C2A\Bnuvola/128x128/apps/network.pngUT ڟnA4Qux =[ 4v<݆̝r,!mH7Tҍ높(2J+E<̭U.\bs;ssޟ?y"y)'KDސ]-6E, B N6m άQM.mdC*k)f ?1 v<6ǺRR0]λO`D0D隗8/9giqn^zM }NKZ< kL-ѕS835TBUKmxsU  .8u٤eTӠ FZ" ztzD<+p@^],Pn O,FA[)"hB3.-Uق;%/5kX.cW~EsSVxM~ZQ6pbȃ9\N/:UCUi|Isc5*>[dɩ | 2OV"fDnEH Jlbª !|Ɓ~i-$G=L<-seV"]м><[0)BX}i\[a> ޏsԴ74L`|5ףSVuV9 Wh><Ӽzy`99V k;˥XwZ/l?RYZ舕83M$ kGh*j];J俬fIxOH]ʸ.w4K..Zvdu\$]K -b/*N+^ti=RAIo9}g_)0eiQ 8TTvC!8|S]U타6SbmKyZ(m;I'n7TT),+Xdb)?ҙRg-H(#ڑrԌ4i~^C2ZjoN> [+Ip-ދ35m] W~p"7Vw펛|Z ~WQ<(/s9^SV^T(K\XJFXt.*0mM>H=Gn<PzVZ֠DJ`b /ȕ*5ጒ /c SâmqՈe E ^}`B l $XDG(w_3p;L>豎iĞ_~ia\[O6%t1b諺N*_uw`SX o<kU(F҈ʑY;\k<ɝNG4PޗOPz>my7VS2X>30]KMx k\y-F"N8XguzcKZu5y^d fpoccN;@r+^(İj^`=h.B@}{{"(/c`}K0+WgV&Q 060 :ә&{[Tƫpe%d9fsD%bƿ6f3kk˺9לznCxq4Bd>]R8CѤenxܜ~Fާr7Q-] xz06 NٮN ft"]n T]%]/@&#s)U1T)2 2nr/{7$c\S %PxĻb+!&DԯT\vb]ƚx?tC6_ٓvEjgJ z6 QEgKrS΢6]x#LRG. ɽi9a0Ux # E['-M7k-Vᓟ[~5%Li włڍK;>u|EǛp] W 8LmQ޴ĶBٙӛ -͡ DlD,3 } aUS@x5RutPϥKt{I]Z-0`&/X5b-ck`bXF.%xzmmr&RN08JuM>ycكǹלoP\Z3|0Q=D G(/ 1Ja *?WP%}5` ֥L Pc=z>Tƀxtڂ.+Tmbfī $a=ykpՑJP׸k쳆 A͔z,Q :E1W=\o|p"J Yyv|FN tI^&~rӬIRW=\+6^ *t3Iݧ/qk_!ܖOkQM is$UחO+\b^))A>#65IOգ=Р,*89S y[7B- >eak\Kڸ#-ϋv$W*"al܅ڴL%+ҟZB|Ma~:gBnn_m&[bBRbwC|`̼ MYl1z3_Y=OG&Ы"]nk,JM1\q0 ^$tC"4S3HR7KЁ 1~8^xa^y?GuQĶ "yjtM!^ o"Po@5i,yh=ؑ_"\]|^[ds$qH_fa160 W<)/N$y~c_$ImRRXuɽlQGTE6u& salR؊2`;)=9dPyAM+ wQGM D9&eؒ'VfPzԷ5CgV 7i^YP=}XRG%j7-oW QgWuO Frv-ol(/^L|~ b?5]MV. Q%R(Pi O=.~F{wnVnX_g;g,)ͲABWH)N{ ѳBJt}2@ 6IqX]pbOoK#y66Ԩ^ڧ4vr{c9*MPԸmϫ?U)TڹI6b˶OF8i {̈1y|hƞPvkd92 פ6s|^jſ=[:si|~MDe^XVr=]ccCP[*i!!?u7Q;V(MM@ol@"c=ʸ@Pw@L{頏{&ٍ=C@Ƀ=*R4ߖr.יA/|0sZ2rkl~]iPl}Zq61ms3ɏ2ƒY47YG^5ek V{p{HCB}6P7,9Ls oᄌ]*;92'#\& J/V5!8 >j:mks=?`?|WTw=EGd|w/:d_'Rhnn}\:jxo֚4gs] Z-3 Fu;8Vohq({Ly؞Φ?O{sziRCX3ɇؓҐSK< h\Be-${SZXBBaXfG_-(=U`zʄ!xTZ_<𥀎/0k ϼD{注Ȯe'ݸ5` ӾXj|ɐ*B?o"0#LT;uhAuL VE{b4uf#*b^]y_Z$ xg * u2l]F'i:B=')Z+ O _A33q!0 >בKSO+o?Q :euS BJM£ĥ_.|;S8e5΀#/3(70RMhO5dIzQ`إO0Z* 1dHUi˒װ_HYYD˃zQzY/0qW>W^bvO+oG łEhEJC87Ӂ)ۋU>>#S⾚:,:MU}L*Օ:bItIsߦ"J{T%LO͛FikJ.O%vyq-[pʮ5x%tt"2 ˻kS7 x5ًݏ{1 y_?p۹nFθƶU/ڛÚ۩'MT&aC[9A/q)p=^ HUUP`02P/m P[G}r"gϚJ3$'$V;q|Tc B8 uV@^σ|ϸw؁Q弙!ok bp7側K9$eB~O $m 1oUܔ*AoLvK-sf6ufZ1mꮅ&BrU#UtPS84Jz`ro{rkL#Ga[ŵoW"5"ɠh:"ɴyo<ӱeXn]PEhlԒa;xqZwˡzOPJzXljx9j#q41 bH0ʸ# RAb^Hb$[t'-A|Mp+eD+O?+r L0`2&Ġb%#Qm\\ӡTA5X9bӑqD'ZP7@hkwR".<l%ћأ}! 0٨uPxT`ppt}/#.M} bfso#cW.^d1;ij\ {D] ` ))V2iFyZMFzF0j=vQ0c=KT^(}efc' i[:;1Є+W l)&,~uup k& Ng>{8<WmnK0+ ˗rA)a%,(".^{6q8PcQ|ԟQ[ckՍc"7*]*/rL UEIg AAueP;ՏcCb0~Cp<ݮm%<}\u^ppMT-S`ƋlAG3l4VC. ogiM8e%7-'e:OyaExy-SWbY!|ڱ\!g2odF b5Kb ׼f0ZXY>J9 ۱D Q)N&E ʤP@_0? >b>ג54:{Jʄk!`{C(IsO5T5(s4N?۠k'̮/m'Rgl[ fZ#b^f4ƣW{nefovV/eS|y"WlՂeT+I,j$qikR3 ?gb 9)MFmMb @9XbGoGPƺK~2[_HyjBJ4J9_-bz:UkǥZK)txvފkwygh3"\h\v ZXG̠z1RA 1/g")Ta˻ZcQ@suq9:լw++x ZƮ)ǖts `޽WV{`z:.s2Y- }Ձ43+j o8͇p ͺ띗\FV N-Yw›='3QOps6"1Fe?7O oWYyCCGc'5 A}P)}Z16w=)b]\Up/@Pηc~$$/\W޿QjWMDJ7jǝ&lU$_ת|9@X<,~-?p}:;rnaOm 1V;l);2ctz:g@S` wxqZ4<1E›܂:9;H3O{ Vqo`!߁?Č W@Vfm{)D 1w+& ح)Db0AXNUe%rLuTQiɺy&;fjҿdhq $\~NCݶ*3H?MJN4ƕ[)wFh/EX y5vw;r?F)1RYe Ps@NE,S\˹򽚆~Buԝ-!YF_ϭ^ $|S˫?OXIƖR5'9;7tz:SA\_VR :5&=ΗJO^ۘCK$fTXa&k-Oѐ`iP ?3}s>#ZС,=AI/oTVnŹ[i4\/PwmbR)x_y:ӂ+9A[R}H. xkr",=dk4!tU8=ޒ?IE>B!+fc%(7I-&uBrU

      +Xt|~^ \ Ronjzܼ$aY[t0;q7:07ZNe(YVxj {#zE%JD,V?{Kָ Sy cȋ~WS8$O4= \e(6@5dG,iFIpH"Uf./rd)r-Ȼ15JpnXc)R.d7>-G`ɅQmIJzQ9{۽Rmm5vkYq133tg*g@h3{ .LΨw)?澥?c ̓76xmð _Ov)˰ w4e+vH ъ\+*PsuMq_PnQ2DǰrrR;& *_ î"MR B*\~LZWScl&V}V| IR5VTCi.2# $iȬtGIȷ9bźf zj>>o:xJ"QZ,>b(s^^AQ"aY$^T^gXHUE2PyM+MPm#2?KlaFwN3ZP\_TC_Y{5eT jE(߇<6}ٌEB:ڲCue:}(mNg`Œ]{H!jaJNA)Fxt}T.΋l/F3h#Y.ƦҶު:c?OA&%iyD P7>{RSn?GJ'm!}J\LjŻRZ7g 8/Q#gu,t8O&\>m15 6w )NH:ףvkG BlOk^ :8TOȰ.{Zz?|LW/&?޲x?i}L4}Țp]UIi)SfDq{uj((nt}s[dճi-;y_)2)mY/mJsܮ%s]t{z/r!ے[ ۅ:~#(PUXQGt%M-T7BtJ} ; E_h'Z1L`jC: RaN%J eԦd[莂"lUw)kAСm{_  )gEAXJ[ՍQCJrh+[_>i<<Ɩڒ"{Oǽ]=?59{$s)3 0{Y <'蝦j*Y6}Z&Gvf 8%vWr0j_O{%a{n"M&y%UEM_L8 ^;{,s9_QAyBE]7 -^pv- ^[ʶ=[ /ΑxnRZk/Xp܃9߶#Ƴ;hD[=⚖AW|]Q9U,&p틏}wj@bhC>phSՠA4c]ddC3R=g2I\kܓ6'm~qFP1,v۱ȧbĝdp$pS7G[ B 갸u.#DMkeO+tv0Bb['{ Dfm:kyo]GU939GPV 9xPh&/-S oQH!{[w+ `M >( qWCZWs\x:nwgZ rs[@Ɓi5$7Z&+0ݔh9R˪'Ԥʎ"b MԺLJxE M! vSOZo{8()*2ZvBĨDiёjlnݎ/(DF\3DzSyJB fh$!^S;cDŽl{NC>w$nD[q*ΐbx+ RG *0j V;/4Vjoh(%DVo ZJ9#@CDm$y%G9(}`S'i$-<9}U7QKtb}$̎zTtd q dɎW?C~kJua:~hc(`>Rs.RG$|[NQ }4-AS0n/뤞ޅd@%]5{x}鱩Qohi vxL6S5^dDͿ\Ҧ&A*[JŸ0!BO$Dzc'!&El.*vB)t GkbBy=󓕪&+h['PEXv#kJX`o9\2Z, Ӿy HO ǴO˦`o,OўKԐҥ;HT*jԸIU7bЌBJ!uulhm0:Bl[0qVպ/_V*z=_ϢݤiL #y]LNmCvw͔ -Ҙiֳ 87&=ChI'Wrܕ6%Y`p CT | e{e$*j.JgMK}+t1͉ϳJObe'):x[<&8~FwAE/3A딿ZnqE4S~Up&ClA 57Y`RA0g0~Dnt~v ;^.Yʇ%a_M@" :dc36OX_K("o.P!m!ةZΣ>pdw7WLT["rx)}Ss>Nnw lwݎDj uH .PL/HuTmcoVz7tq29k鿽/#ŰQmdj[N[FJNDŤst!AL,s,mXIȨZ#SaY-6u`e)aեH(:!RaJ[?3H%@-V}:ޘQYg!% e?l~ݨ:t55=VTWyhϷ] -L2f`h]*G!4\`s<Os}0O-R'kʥ#i.; m6;3bƿ*tu75?hx[Yk/MTv k˓Ȁ] Y)?52'A ѴBhK!LD7ȕ_u MEJP)gBciqE`4g?v %8k鳍sB^k9MSn*Zua ̰ɍ ƍYJۑ*h+ uCg{HԒ!pl5mG܆^lڧ$LVxy2yQ +v;5v{gTW7o|p)Gɉg0'럼y3KϴP-^a#{ּ u Im\!wtùe)%ke+n]Y*<_~ElͿ\m|q6Ƹ-G:nK}NWkFVD6e@?Gi*s#aY)^c&\ ڷwyֽN)ĩY!˝< Kpn0<1*o%#}"  ީ.W FF4ߺ3ڿN c#59g|l2!Xx!x:f5\O.DYVQ3䆣ȉn^(,#1n:Cd BR p$֗"N_l.Ǫ5͍ngt gthmWscreH9R? v IY)f4a,i(Λ9'jdy'0&eDg$ZiV)/J,ȷ25`WU-GGOL7ߞ]aΠǞ a~x⣜c)Ow=9N@Ӂ{q@6vSQα7r!Ć^|IF yFJDI""JuspxqNuUd00#LbM DH yڗ$$(n4*d V Ӝ\دˮȓ\3aS`p,[c1>?+ψ| MĿ}IZA O<1{`){wq7vg߸NBn`iیw-NIh pEޫ 0ȃДKpHƃᮔC eՏ{%Bj.͸YH￀D)iĬ.O~0w eD,g/wإV{vف%)u/_UvK8YtI0%N!4l.JDs5 e%i1o%Zo`Rj$[@I}]ݜtBWPFe'U}LT_oז`N,u A_w(CRǾzGqe}\Q:+&+SQo uJs@ sz|%55<"5UhNe^?7,Ln#7q2ױܓ+I߮Fx#=0(\p;Td#i91b~^i'J-F\OϽr++?rØ2V#{&d(m^ް~:{Uds8j !5أHHdZ ͫ EER|mukƿ;8lz/0_a? ou)H-m*f{t>@mY-J)nI@<s2u1)mske}c9c]Mح%[@U_o#P?ef9Ftyŀ;޹[E)؄Nb\!ի"M#}6l,m)&3 j$̊V_ *ae\P+nP{3Gryzft~&_yMoyi-f~E9n\dh+Vc{Bۯ+8;?%5R{Vb%HMMT/36 C^OoTh=_bMsh!T/r#AzS+qY{qN22B2$_\B\7܇t¶Py5Շ\];7}-n{؟Q ]M^RGޭ]b"W$ 銇@>'a.< (5 MƆ$JH#\9Y=;*}8EG8Gg45kҨ Ү$Xq'$Nqǟ~Q>c6oz0<}%,P,yM̝!ؖ 0bjPI)5$@f Yo>@i\*XA~D v]ܿ'q9p:&[/܂iv i`zw^xI-MW4g)913ЀZ"tjBN,IH"5@#=U xQm+ѽ&i EKJ]௬*Qf? y~4yEU?;upO!drCVCݫQgdDŽu~[RB!'Fak#/R2i-{bq#N/Ϟ(U0cރ;Xbƒ @u]0\nrS%Ϟ# U&sȬ+Ƀuhm{6/ŁMv*V9{rZuc߼c6gHWHO 0 nw t T8x '(1w rr"ͻXl`Vf,d_ K}QJcWՕO/j @]3[bY߅Q _x7RȹU)^=v7򝤥b@M EwerHFڌ RExdc=nezRr᣷T53ĵϘg1aa|; DC۹tȤsU_x-VSz0S^.yYN#]>._J][osi=]1; 6#%x? ˚3fX0]s446x_~%)s2p:fN<0;a6JLdh`@8'<`c]Y$?nLvct6}xj`jy̷7. pBBmh*CR]AS4{T8 pdlߺ:FLb'g>2s)f WF8lxU!R5ALihg2ȍ6A{V2΢qA# Q0ZEcZhW  b-l?6\&}VQgG\0?48tlZchc.oHC`l!knE~'OAES0N~ FT utBޜQX-('cNq9Tɡ}8IxzpsPu⠺P:G]`Nl/i3BoE`)4P{ H}^)*̯MoAVe)TJvAG&$$h˜nKh 7x$m{K/"H㋋SRR޵YLKK)тb_lg4Yj6~FzYL>3aҳ/M|{P.߸rؼD4ҿS d#}YY)eyN;wzw44:$ }YFA3i'"$/oYrP% V8Ykn&#HAMx&aqQѐmIAcuF,O؇/8QtnkQ!{fmx5FkH&AIN5vOa;thM10QDZkζ-Z ~/8i[WS~cqj*hoYrrڻ3Y1|*0nlHZޕ=_EfZg U2F'[NR`~V;g}s9  6ECS&,pr#p+e\uNJ̜S+0S FЌA!}E9')o2c[Am=7_d,ts- +_Tj#ҩ>mZ:9 |pÿ`=/#pe6zaDd 7R7*%څR(/yŖH`Y1/c&#x^F这ުBT,*&ג=R\/gI$NX%5'[9KH"h^5'1 2A-+sY7LHÿusӮ맴T;PwcY'nL Nˊ\FET3%Ylų B(/ιXvBy1Eb0ږ yȆ!ߺ0jc{Aa*H~mP.{]xi@ 4n݋'H1Pv@NUxnl-&@O)ȓ; /=ZuF'슏(+Z}{O=S"n|~Wd{whZ[o\8˫$.wV>O]S}FRk jH?|\JەWOGԿʣHI],}Th>`I]@ol|so7ۤe2 ]ࠝ:N\('^;.R<4P}#<`ԀzOm/J68/M=G(9m3`))r&5-xYdn2`,#^vǁnb`HQZ^sڱCp}VBRX:A σгg!hn1fI٦kb[Q8zdqga:x#!E7[K1Kʷ&Ϛ? xq_ A-Ƹt  yџyye"E|ԁV)4".ع{һW嶡tT M3=4PPḞ\EURޑ ?'ω]\z{%`"*?⠾Gi@_ݑ='.:: _⢪@ ?ǒ{ںYWOD,z/I[96 sȼJg5}؜UEFcn|{#cG]>NbDUSB fILڤe~EAC).^vܭz{EX"$gF16jz=hLayn,gvn+s%XP}<8߸"1<堎H`΄zR7guYU)F_m#nY6 J&Ʀ0V2*`/D4ӧ~+HK_mVnW#*,/4(>/TQ?؋5xm3a+)Js]jBp 9x;*C{V50N'%Z/RIr?hm[Pg-$jnmD'WmBF&(=<$ pO]SElvn#f9K"47V# D/[`K1 hANfj(U8t SYrBupH 4tu/ 8մ4tQШO#-BMq":79Lj0dae80$q*|,SYEo|8/v6(BU>Vde>Ցةh PzHoߓp15;0,inw3?`VODl+B[/]~SUbOqEv wjVӮu^#CoK(6ZֈἈ`sONJ)O;:ͼ y}?ۉLRԗ$!0Ŝ:ҴyS!ΧiA}II @ˋj *E1{4Az;O 6͛ wqXsdP!7~YIH>Ci?Tm[4r$⊦1y憢aM֩ϰ$fs`nVOozK'BקRJ) +;!0. vNMR5+ ;1gڊ^)Џu1qRxAy!!;Cr;i3V @AUII]u^3 ~?qcnʸURpI9Z7kצ` )t#8[<#~t LQesL`{Pv2;)e:H15\s*ZIxRJK.Xn' ABM(w7F٤^ƽk Kζ4!dd V y_bܹXWrNuݺ;5(`,Hd 2ur5oYV9ާ: RJJS2[jZpj"U H)=|l2~eۻNG|X[์bb s"sY B_0e-Ʋ;Ia0W5#ͭRt`nkOKqWEETyp: 37JC>NBD>2: Md=1bi`pK;5-YCf;ۻH?2$ZH'F =O|y$[->EES"2.Hrw[?xXMü5Ի  ^XDrU(Xf<҆PJ^WS**4 ]@6D~xb aC`:[p~pZ=(&B)Y 9h$gU g!( LNrNd#V%!؈B[)~Ѧ5c>L 7*x`g629Z<${oyU. H0ϲnm 0;CU^(ʅ5v3VG1Aq_ ߠb[~r,<'c -&Yf3JCbcyz3y3P|qV! /'m|"UbVԥ` $:7SR߫G`GB R_N,P@$djq}?U_9Q$"@5sm]E؉yX/3a6cʮi|u J6,:~MD[vȑ"-/G7-ypKA4PJڨ+B~̦gSH£4Xj.^c^>JhĘbFw}|FiQֶjyƏ9 o5YLX.) J_^?v2N>x>Y(' 5jh 9h:K07#$xͲoֈ4DFZռl'^TM8Z}5̰?üj2OMWLDUEbƂ ض/sXY2 >~s Aϻ &-Bxwq# BIu._+8aB{n m-XkhY'JmH'GF?KH)YYw֨XN(WO0 ۡ3nHaCxbk"'cHIM+W H fPfa۸IG'煻EǸ ֋z}*~\'AkQ iF!~Bo1K^ώ~qzG_#`G= .]l,454ȿ 6ߡ&?8oXqt[?!ߤ1Ekّ$)!^8}Zn32HXZlʏ)ou|:aN Xrz'fAHok`Pc rV~^pucT?+e\ƄjR3z H8"@_JnXq]~^3/-ܳH9_Eʇ,ϼ#U[."nK~Q~eTd>@WXlRpB&g5?xKs, NN@ћi)?'Bl. o9/9`^2~0"0%9"r.ɕ R2U,FC36<9yyP89Pe٘71(eZkҐP0cdr͢gVӮ&aPΤ5$z6/e>^J.e9Asnssnbݑ2\8pU>Uk^x8;)O"*7/clm2z0<ȡs} "ϟxU#ՑjCҹDTʘzf;ZnntYV83ӲC豯o,06_0w_[j5}HI(H~vs3h'C=.Զv_-Ϲg.RsccR~9!|/n@ bEߙd2x )w!fhac 8Y_(q3 q]d8`e{ M伲ˣ7AbwKXM|zoיkGښD=B yRBۼՑg 5uͰx8Xc?s1R %8?G`91*ILIS?v\T%ZʄCSA]"b- ,SI[.US?-3'@ٺ&_is;KHI/a߷OI[uM^ܹv)$t;]5 S@U-X@*,M;( kjn^Ec >H `u5aV@1F_ƂEfE9/|(luUsWy7n' UW`4 w\\6`7U,YQss+儶FR%,S2 yS4?s^^) *g?h=Т$3h̴~rبJwRZ15Nɣ̽0ښ\q o{.罈3K][5qSMHe{`V@n='iL8Hp^o 3E>UyJ)3WUEV_#ٲVupFx̻^jLl ?'GeQ(m =IɌ}M*ZAu9"8Qv. MҒ*  ${oVt P_e E5zz ٱ22R'Nn6åg1Qg :*αًXSPĨPYhdh?cE#Y(Cx:Y%,JR \ш,2~/s#ʬ|*=6KausE6(_d.hΓ_ wԒ] VG7߯!d:IZ5K2ݲIô$ceKY_kb, ImF_ΐHp@Ih'決P<|7rC-Y&P \._#&y_D̥\^}-S6qp_G2oA'U)Y%YV ξn6SϰRxVz!~2ݽ*)9,1 FćGn:q؛H7po"J.J KRM#E@(6DrchkouPkyaD҆+bnmih\~P#\++00n8C-+빅L+xO}w{C?uݻVd-!EBa:P IHAB]-UF-0OAdF喞L$c=?hEx,Oe LaBmteц35DKDKVs3pỷw,bN'܁"ЄLrpi֜cc(Yb"xL[9z5à l{vNقfj;M.ղpȍL]D#lW3z7iQrh'O.5*49w:ьFe|A]uӻ{=jPSG% lJ<ʫ[[~B6f\?}X'i*NJgO/,4",@7GX)šr㉉ DdUaiKB;vV֭Ջ(Jo2Lu!bCD)dTd r@ž4ؤQfVB7\| -G FDg^y>nR=>nʐ:Y | kBM(%;'bx3F2:=4+R,Иi|08zޖ?7PwkFh. N cBI+I%6#e_ U1挂o>ȉP^Jtɒ9PH4YAcl>*N||M]40ϰcF fѺ}Q\ =_9KmFZ8upr*fyXY?Թ$F d,(1V^w5ʱ_i:ɉvx vuKG#ML9:bHJP0<0ģقsxwUO)':] H}X/²6+s3mEG&jAJx\qo_׼a5v- d}fGpҩ2($yN)r\ bW_^+d)JBFq_)+!c\Kp볫X0]Vb=)- &zmIs!X=1Ld<)h"-P ֛P%w$׍{o9%R/a!k"+a X:W p9;n9G=ոB.ڻ>IF q=~ԙ9(+_]-~+~v+6B.- tG$uH3\~In?l׊n㣨 &)3t&#9<4qʭt !d+0Bv9  7 V\`nך'&i&u>]@rB)$0 cuL|mt.eɩ'?@L$Iu &d .yC|KMq)Q1Μ1]Qy-~!"렕?E)@U)7ot%GRvG@rm}}7C7#f0;Ngz_4 &l@hz9g^GxdNXRze '^+DZ*v@6(WBpFm$XKS7wD1 >pd_lcd$Ht6)^Pe2˵Xӝvp֖y$ ~,%zXgBYMe2Wwz](d(/"HLT~ɿ! _$e&)`-WyeNIN_FUBM"W[`{0 uPhnF,#0F\-GR-@Ft-=N?xf _M8N#GZ`]4\?te|tr7dy-߇W{)4A(W}ؕ3J{Y9H#/]LY8񎎌B) ;,U!?|̫G e덌`$ϳJzt@ G*nOIi#[!\q Bǥ$WuLW&r&F=&ykBuI0Nvἡ!P'#UYU)F5F_$O @ƃ*k1-LM’1(P濽$k֕$ͧYBs+`#H/4? ]O=pnӚUV5O=#BBBxyy5I`M+0E=CaalU,T=,NAfepB ٸfaGN_m)c EBw*xk͆ܰrYNOmAR T7Ϫm;K.7"+mr}ʆ H=ͺ? f]=6Ǡ~]sBaiN~s+mB\$о=PzAp 9e؋)LGF] K.3tWdō<Lup3' >LܵK 3#7tev {82A2<ŵ0q7ew*TY"mZ"\ W+O7cr'}e]z\9قua=5~t==XY?vdlTa4 Xrm(TNζ*K\h="iZ)(/l)XP^R&#&{f*ho0`̒Nj/7e H.ܭb}*CFQ(826hG4 6nTU R,J]u_ ǃIjhLm u/_RM<_4TtwKk|ērÄ#3yf]X)  -h cK'X|2s)>`[?|IɵC6=!يc.܌ A8xpx+)b XF??T\s7}qHbDS f˃aoT%-.!!C^G=ۅB6Cg @\vN\X<(ِ\ze=`Dcm7Y|K5_wRU_C7PYk)7={buS'xF&8p{EQ^ (qP sxdLzk17ŴiHCm&zPDK˪>(l\GFY\ )ힳҏ \}s+2KI7I"1 [`kRwMNu ݗ |oS6ɠlb CL_%w{_PԨ>Sx&azF6w iЃ۸.a:ְ\2 gtDUύZB7#"Icxb89 -c|Q*c{zhٳgy>j`[Ůi:3:U&u!*qSYX)ikZ3vۏ:2Lb3b%!L=?J.$:{#+ůؤja6w”D+>Ƶgd}xghfTXS.N44.khiOױW5ZB39#$njs'/^[H_Va!w<1DŽdSw7,V[@]"%<-&WɕϗgJۙj[pc{:޴KnP(YCP[`0MM\mrW'{xu.YY~eaM.tx'g Ner[P}t(73#rB,{=xj͢kcPBk5oRZʆpCZN*zn T]g>]\s#yp/ iLqRʹ]ӹu1-| &C=3h~J_P_Gq,cliNfO{f6n و#$!3%P,3zNj'U]GKӶ <[\&N"?CRuhrE<1 mSBm{>J d=MWk}B#yvdǹk)[HYn t.[ҰzI#Xʃ;hړ'6?L9Al^1a;~q=!h\/u $pozrZCZKf6|tR1aC<ŧhu66٣- ˺ K{?ΤUY~HWuyD VczpeN8/1oX?)),,=Iݠ.I60X탙C-~X|9ƫV\4v>=q2Cn!ڥ+#UتRxo 04H) >)*p7LpZ@ȿLsG5 O2*V%rDxx~ ka#I;cNpHУpsV '7fo؏0F/<ҥϵ֋!lGGbv(^֚]urMhm֋c?<фFõ7 Y2{iLx6CHJ8sJF-i9c&0M͠'rMHT4K:ClukO$A yLj]RMYN QN~}Dj/[=54mvs ll!6t+] HεBVLaf[ORMƱc|7Q^w`ZH [-Cǯnm*UWs\r~pN>(оb`I1mh.|2% ރ>ДNPM" EeL:Y*9Ҕ!'>X'{9['̓\llLJAӸP:1r8J}cQDڥQ&DNj'?~c]oSBӗf"hfqTL~Jy tF;V# fm<.0 kS/ eرr8؜FVg6R:V4Eo{=0gq*Hۀj:B+($o'%i:2?GbwX]&8ChCTbIA߿>auqE@zdg`SaHEF}X\NނmKN*i7֩K,'1}cz__q'GƧ HHn84Aw\PkXU<Zv[cwm颯'[Wgɋ:7k؉ϔ,h"/TUTp?}]қc˯]#{AC\{x %z9}°c7ߺ,mWE2x)YU*dNz!*ײ %UV{E$wͯYU|{{dC:).*opy_U~ ë"E+S?>kd~du #]0&~]OQeם)[e)ّ"sr7hH{Lw(L/d, .i(tsr 3f@L%֓9*+iq4Fa F_U_VVv"X-bFJ[^6II3M|^ 2[*~9[KB#{Fu;w0e`;4UνAޓr'rL0bV2UF";h:kY =Sk]3){vO4+7 ! nsç,3ܓ[$zK2GT8A=1vl7R` GeUe%L2%8f}jJK:{[8Dek?VE U3$6,~-^ND1`(?Bj; Op% IΘ<l鍼DFYS3(U9(ZIULo wP>~A8mm $)]dy 8]~L|&XPd1:P$zd/^R8vh7)h֜V03^S/,,C:bȴ1= Aaҗf-cfFr&Ddƫ %.p1RRp~gƾKyѩ ۸ctҸŒEڴA4s{{)1UgPc&]c+J9RdA?`݋gO1woՕoqU@P 65Xrihv2N \k *0.ǠgF7b C$ #8c@$zoXp[7UDp8EXsnM`Hb@6Xs6 d8) Dɞ@NTu!O7 'jб (~+}Bj= o{휴ks>{k+&mSoB'ERuyMKr~On ̔K^G&`"[26 'Qm8(x'úUh'~xa(%]'' \yq("`X}*%UͲcaα?ϩ 2RYAR:,/_F :J\Y 1{0VIyU1斥0oT DKo]ڼ׵P H:Upcyͷh;TTTfPl-xR ^zoMV2b:g#q KScrdR(>~}f,*n E;tayFV޴")I9w~AN~(˔H27CCȻ24_ zP3^RfYSp"xlzo=*FǴHF z/ pw՗2kiwE=1pe҆ik/J]wއ绌zRJ d6\%*tGpm8̲bM簾*ine2YYU< 雕>v/OXQ4o&U|'/d)*A@~XT)o?;HzN>{]/fUex hd a\ϵ`& L8>lR~OA'px*.8vJtZYܳC9: q`6(+/ʯ|Ec2ərNsN{xNo*ƴT{Ǜ- EQ8I sA{u=J5Š+BL^-xzouGn v%^qٍs4*v" Sui5N5 YcE濃26I1VE":PdsZ~둂x ϔa~\f;Er]o}~tN oj8OxsyR+y-Ŝ%PO*T VhA[Z95^#ÏR6sٻ,Yc=Tbb3FJg '3u@\-ٯ=RbGtaQ8";ܚQkNc#HJ\feFS ug1lwn.O86mid?fWG:Z;l&噿^|!6jG;rrtͷN#[ͬhXe3m_q.c4؄迀5ɛQ>ب-u™::xbOn;e :wU(U9L<4.r&K0oqzs0;JZYXhJ+Z˕g耾% D+4VMj+$Ja΅XaM5ܵېv E ׾2؈?9x en'Q7]w|Zwh*-({*/wJ2ڂyM3Z`ObňV!Ih^|G%a-#eT4Ȭɔŕ{L){oPBֈ+`U%iqO#6N]fݑX u[^wxK#G᥏+&Qbx_;(ٯ0ķMfVPM%h;7K9C3$N=-Zc&pR8=eeD]dIXc >yK9Pxp#ꅩ0/XC)xC(z Շ΋!l8v;(~dM&40Ui8Ed:Cn}gHĹHK;CZ 2DNETa*ʯPKNu1Ifܳ[yiH)ӕ!EF",HE"XgT=Wmb3^}q[8)қ4Yt9& ܿ j[M^5Ȭ)VvEh*Ͼu̶!0R!Js >[s®d$Q?\Vk+J-  .Pm5zc0mtW?x ὾ϔJ2nDBS3Rd:ۀewb8S={˝?_0[c=_V^Ā-$HxDr0]P?Uy; iV,0tj8,NLy&"G*n Wo Cx@B/Q߼[rKc ]M8X+o"$xr2{ ĺDP[6H5$dۭ"m$:xkP؜> S7(Ljrڑgp!VF[d/F `{혁:EKDZ( ﱞ@<뇪?-4 ṋo[|zwϏLħ [5Mr߃Q("O:2ȴm^j xs#7TCc $s\?R}훏WK|Xc̎n`,Gby6:7*iMAGrCc .y,H`k \ú_Xaxr#{A&.y+ېLqxJ!+N}$Lؤ:)̯wv1lg{+OH.%iF¸rם~0/s$i~Zנ(P TzvYNgXCܥh>͝OvW[<>)8wo C*K;i+~)>r_nI^9c3Ēie;+cSL I][cq7TϚ s?\a [P[ gnS)1~XvZj6D-ؒOUE<ҰU >=2w蕑RA7)UPྐྵdPrn3)޵JZ;%~khp(iYIk*Qj+sͷ.~#V)[Oed.nra,3VBI*'i}k)E7<=.RQYJ@O&G? zZUQ8o ~^s;8V^NY0YExZ'q+mH٭̍qop4L,ݍ?8Dz~LSY3 5^c0hKVڵV\}O2HT(E:Ƀw{ kB-# `,o(?9LT)'(W% MQoϘTo:!i *pk8n8-FBo" >8\m/ğP"0S(K7@ :8F^2+[qՖnVz}~)YABh=75 n/"4<(gErcz"i$;6vF3nX;hS+*E"ނ}҇qM춑QEP Y !vv+cxD%#ޟ.M`h#]o\{+GՓ 3z,McsM&H^%{a{$kZ͛3š:U&0?f& P *.=3DhQYeXQj[w+/M+ʻYGǷJ0{ؘJ2 7P>xA,|Ci|]q\u*YǧY)8ul-LZ7V[>fJ? FXsK;Gna/odl SDy2TS(0jO5A4DPP`~n#D== BaV%7Y˺ɛ:h̲#@f?c` wc]TM+m[؊ O?JB= Ɔ81h%'3זq%~{xC~f/?PmvsndG @V⼯.xC=;y~P!"KH,d 7Xˤ]E2H~-XPJSAQ2cSV-a0֠p % ΠEUvx¸/&#yDd3~c@ZR%=gjw4_2ީ=|?[.뇶*gch8qZYZ\~s^"/2@nGRf,EUkЅԩ;=~Y21'c.юh1hnf NE7t?h(mbv=Ӹ6l2OP8Yϔ";!9*4Jb&UU5B.SSߐYOr!RЊfTy|^^YuXAct]QǻkSoiiy:x ƚI9F9$)L>Uozѝ9?v]xZ6cn{%u[6}b3U?2T qal\7'R'AE ik:"vK2K1c ؘU#HӵL ϲW5|+"LTf8.qgcZޠS^%!{-ɢB_'Bk![#V#:C#!7um3 Ÿ2yJ_ Mj}J():@yv ;f%g66ќCF`hT<ڕ)d-0;"5F[-YG$GJA*"63Iȶ\>pCFB@(I W_Rp MAmFnBך:Am2yN=M}JxRRR[|nPϔXD}O(J }Czo_66b)nFR)r{>Lsudm?}˦*1u^`ƈ(.Ǚy[Zn}TLk>63vyoVAm1Qr+v/EœLQ&Ô1Ɂ Կӌ QԠhwe0a:a$5ဧup70 < pn lq39(j_jgՅ-9dqSxXAdN@CHn!y:K\7;NPH綖L?!m|o(nfn:ŚqavBdCWNhNPq"Aދ$vb{Bl*=Xd>`21"LA5rdh=ظ3QQγ-/"& pVdnȄO 6˜B1 {^>鎛PS H> lejr_vU# IbԷBglqF)"uj* e i6Mlɫ_YpCMxר +Bʏ N'~O% #!3d'HHJ G  g >/ܤ͘kaVd C%RlNegh붏E/ !$5۶f:$>L+oid>,W `ˠu3(`e;  (vɧviHH;{ed+߻]̨F`mĜnJxȠؔ '9*us6>+vOwPw/)^gJ'fWe!L^m@ Up+!jB{P([saƕFxճ1P~xE`c 6M{7m,t=L)[=o^;^]fFt12@Ţl ^h-ZpXk F:'o  (㤚dטNĆ!78^^@~81p8D:@dYXKj%5mW[͵]u|i}!.ƲƸ5Wf'`ÙEl8Jp mkQ2- RZyk׵Q+ٚdi3Y *oU hs}ԄvD,#(6bdy+ 4ڟ/ ] ғf"B( \k<}& ldlM _%DE3$7jQ\DU,:}E4y.rVЦ0Ӫ?}*[툵;RWlZ/\˨j{[xcL𽦳gԤ#>}]ٮ͚Ct&Y=lH9ޤ$!qtYEky%dDy,Uτ9tΰ#!ow ~oՉ1OC.:#j^4 t֋lHP&Aapj׀ْѽOlټ]Ml~Ybq}aEjfѵdɁfCyx%gd`,V9Lϱrؙdn Ad2̭) ev\rj.`w?>''w57P/(\Ÿ9>AWlhNQ)6ax ?B<{I $ 8v.9ns#;C!r^\`.sL$F Lme,/ y{ΰ sri4a 8it oS3B^+۰kL.̪670#?)~S^/b=Djbm9ovz9AT!mm#Bsi|(؜ӟ7ђ Zg2M |Cu8(2~kl;@k$*~oʗŏDD%RPy%/G`"-}˺ =W8 D9\y 1718B3!Jbgپ+m^9I6jܒ|g ܽm ѹfr+1툐!ioHiM *X0|7w Vgat nB0Bygk! dY5cQG$WdDnEI'Kf50&i ݇º iu].wIwA9z O]tݸ꒻%D-b_hɻwґ Ǜx9 HD-|E|Gҙa\' ش۫9K.U}H *Yckgx؄/-Г5 xwՎ ̽~,Dc/5IZA5:@;"5_QCC!Tx~&{H%*COZY!rn@k`iK5Q{-qY4WK^$tQ^lMOO]_@CB)?qN)ن}$%ˉ?_T=ǁbsIknJ9aH1{Ԝ5Dy{{Њ$*G-y0XƪF㴍HRC Pc~TA$;Sd7Wԫ5<G1t \wܟ6?G#k6`r瘚D~gE L.Q _8?AXI!%)2Fy*gW4'ײX<{}~ ؜^,)P{UMQSh3XEg4&qIcUDt8t#laC}I`[w)z2!L:lQ{#6mܟ4qAL(lZ jn`Q #jݿrb~i׽& 'b헶Z"[8Ǿ|5'trʯgc'#XI}vp=9z=w(()DbMi,vz~<(11USǛs.ouK53.WKXژm)(|kr?FwYzoѬ'5Ϸ/;#0^>ṟeK݁y(&Ï|N3C^ڔ}Ą׍NfN;ݧdn 1+(M!'BܑiM3UϺ^;~Ke9sV2kOS.fd'+ڦy|Ftj]۵%nQTּOX]}*ڣ\^nM}fޜ7vVB7<&Z6νIJXm~ٵ]سPk{ £n+ʧ|U\p3KX,pokxqkAW37IZ雋|VJ^քGws> _zj'GQфDo<&/KH[03>I9tҹۍ}v77z_sZTL 5>x0Qž̅+׿ փn6׳!p EӨfUGK:> p7U]|ğA2(>ag[0<;] дtXX֌a;. EK&^o((XC#؋ɇM9Rf8NދHA >$+سGK5ȷAv v:OmCFCެjrDc6®Ezmm[ #DBQgy x:ӃYd<"2#GZĘצpMd{i&ӌu%18Ҡ:yK}v` r`=vR>A9 87!ٛNSDH{!֒T/fU`9eA$a p;I>d1r*s-HT?Ҟ)%3JXVl2bؘ.b|9j̞7f}|O"5:';%:,eoy* ?U!&`[V]իk v]yj&ju]<)8DH\YՄqg79?sc3pq^uQz FzTsԮRߧiq/2(A0,t95!u ᨙI=[m[bgFA9hRX)LLdB;iDf|-zZL9P-~rc5~ ~~&UFDʉʑ9~[aCѓTuQhĆ"qd_lf&aIt|l 1@- 1Y`SH%^ř*)]U)'a6ɘȶ@y)tdl TA`hXPyMF#ˤ9 lڋ,3j&vaKq1-'jʢdU;.լQ,7GE\Dы2?B/GGER-&'>"Ag]#2q2ϥ!zMۉ;-ɈtBm-tE._0~ s{iMl4ŕc{X'w#y@y6)q>U2VM]NC .:Mrlξww(fSK_$,R3֣.BY7Ńt=7)!{' v`1] H5\N|dRe`_[OOmg {oxfW݉ @!_g۝@uԔ?&""W Nru`)f$@ɬ~B[$bQi/a:w9/I:yr1+*]_?4П54yyFqY4?Cf9gzX |yXVIUZ %u*l^8=c] <>Ivzˌ8YuTcf7]r(LDն?Y*-+-{`i|W..n2|OR,˓lU;H!0o6di%ZOU---eEj?NᨒI636e9~PK3bK&3Ts=yn` !Ƙb!Ն@`){Tm#j;JJ6"9%[\Z V1ыc0ȸVy\`󇺔?gB:v0%yxFRoQIMePoka$G`gΆ8!,4$69QՎ˞?=^U?.0sךl^GkS;3G!D{Ҷ2~-o)áǾ$#,dXg/L4@,y0i@KxVFNf,i?1 L*8ykT\+hid}x{of#g)YI}`vm!ٵN*E;DV( 8ceS0]SrSNmvߴ/Ҏ ٛ}_fgw{cv_Ƭw>rQX9ڜ(Lp *̒CH=ネMWL?/%:ehF s*YWgTȱه1U_QoF2AL DŽ;n9gyЯ.d[rb%_ )e$ G/=p; ,e Fa/l{6{ NQ3a|UWwS'P"w@${*YL[c i>ػUf!>VRT}A{:QUgQP=bfhN ]rYP 0:"Q'4 Io'؉? VUzE8vL~;vFl?#Ak'\6"1G}.+@jRgԺN\6!}O8ziuGk>ӡM09;yچ_xa}>9B>ک-kPu5orI2,F"RuY8үUZII( %+zB;-/[Zl=OuEbv\{4 QR=a<~thy]܁=Wհ%<ƋoSJ[|jt }ˍ' |'oUmZ[UdEn庶,-Nv=kqGEYBvG5uU.ѶFdOQGX\?pboR M9u*X>jpDO}?|NؖD WHH.~*QWiXQbrԮ:N@glø!{:7hD6yq&(ꕞKx.b :c^Z/e z0kixZ4}̩"0B[u_SsA8.+P7$195jD/50UAF(3yH@jp^ޱzw7bNZS灾ANNjJYzcVGտ:<R{?qa} 9ξ3ej9]C37&78 Ja߸eiB«ޏ0h=H^.Q[vʛ o[9IC0@Ću4d1x ZuNPx+ XH Feq!Q5pqH.Pc7)Y>q͕ld0bfYC\:"mB(GLc^IU!4004~Cvx>8I5rj؆%o$9$] sNQgN7;6ʀxymϫAQnm0=4=fZiWg>G#͍zu|:bm*ťH[X#  A>RE]&A*ў]a޿I۶eKv[Inq۔Ͷ*LdG  Wm OFK4Ғ;5Vp^f?[JFnT+e7K v/uZaYH^T|1Ǘ} UAItnW[&mdPjyi/͜.1%^ c 5n%7$N޳Jio)IEzXs koУ {._1:wiGs3tiK"U:Iso)ݑD_\=xޙ:2ީ}ׯjbaw۝@ 5jߡ?7ZOuROM_4 }fS[Yg=bڹ!zJ\dj;$QWV$k% bItADY>(Q*~UB9l̄{zB^:UTn^B{=V$ =' d{t<L ۍ̬wm,yؗ@VYrv;N4# v<\=k `}IaeC @hFrc۔&[Cqٲ`@UVչG$ #`M`ۍCكc-ݖ~^CYR%pclY+r<[ZqfP<)9#X/&ɒo4 rg6W)sL3]]Kc}z+5bJCMa$dN}oŔ|=ڒ,Meߒ~CRǐ4Wĝj_!.u@Bwњ4X~fn}#tE(=K;O4|rrvOV8Dk@ ĵȹpȩ,:VI}e")4`\y1/ctڡ=_8Qࠏ*JO3K_; Kne>|O{tM +f7%S–HnE$[ hYAa~2vʔ%+N1J#cSXDL $t) )gD GYr-*. &]B0Aw02u(<__Jun쇮"#u-rrvNDZ7P Ɣr%iM$aP|pphZhvvN۰֜0\}~{Ү]+L#9໶ 6JhȎY9W-oP'FAQtS&xAH*G.0\"F-bywHՋ&Q}K"Xqw*Ǡ>k07pZ$hTXO-rDR:gUVf ` *Gh\<V6}ƛB1-\Z׽`ۤd<<0 {TfτűSQP丹:g_ymc059N4)eHa]`s+yf-ҏͰͅr=~G@+_Aqgp1wp?d_ we9D1013PGZC=BA(4TSˎh{x|Z$(AA {PdNBx6?}hj׳y>$AH6IL kܧDZ#=4I4Ӎ_0R_S`̱=jU9,\H ;\-`^-win}>S^Mj4޼>ȁPo\ >ul@FelLLL.s>]0ً@cg- xT(k)sfǭ8?7*pw nV䗭|^R!#z dtভb!K=`6. ~>m# ='ORZ?9=R U&*&!,ɧ/*;O.ڳ䗨=_&|vI%yLy1Pϯ瞈]po oxw:SKOHZdSTr?q+{O~as4+e@l2ig1x]t;/YC~^=_d]i6{+SmUŦTܨDF5 7N oo솇w0#ȞUP3J O*vjȊSmXkZ@D,cczXC[9Tx$|d2KI_l Ϟh 6k:|$.!PvL ȁ)Ov<{e5B)r*(ʉ퇃sڮҨjLĆl C&Tv'sZ_T]qVv>YjzqnR{$I^П_9G 'Q|#5} v[*Tb:61Oh6k8{LpjA(.lKKm^팒Xs1W?0OtCn<~~ nנ!&<5/' lF/ 9O eWX \'?S䰕սQcCR+"tCrP%NyG:l#p,**fQ kAC]Ti?~|D}V7 '6逖gv%b˰J!2*)ؚ?wΗUޕ7q:4  gfKYG$@ _h`5Yi WvactwIw{W3-Hb@Rcot?,'x-ΧVDuqY;лFctQ VrRHv` KwE88,\8ڌ={TDRL;^(3j {V༜jۙ5% j B]Oycj{:bwU5h^-~փT.fК0g|^T8s!4bl cAV[ -ub޽mn@>\NJW|H;GS }޴,}p)_ze7죈$"x7av:MyV#gE[6Zh8Xbad©-[868J$ɱ5e4` 8wCPYaU銃҃݌;ĩQBhB-+Y!Tw]j ^οLrq%ZmEmj`_t) ?}k/٠ )~gixcԸ81L3Yx>(=C +6 Gx ,5E4=K]%{wQunv*80s7wa p(Xjup`+X$_S'Ź㷰 ,yXϧAWr ~|6i~>l wkȞ.܄ǟbF +nA]q|VZ f$lF∱"5F:ð\eb><JsӇuR2g  :k!~;QQf,ΗyΌHaT%37cbhj/]? Юj$u&v"gnD I ͥ%3'TZr: u yl@N)8p`143]ҖvI0WZ^._2y3B(i4QpNJ uM9G2ƐJ? Wj 2o~}CBɮ]EVG]h01imj GۃkE >1Mfi#rgm{uC_Gx.''S̈́g E Wl;6oNA~P.,`t `&zBu}}mAJ+V'JV#{ żL 8SiШ5"V`1[) Ug#|{Ù]v+Bw+kwkT"Z1OuZFl-A r2纉|{7gx+tĐvt!$${K0'4{ :x`; 9g1\--+x_+W@MU-6DP3mmDÔ:Lpq KJUl6_!m 7oĔÇ">UԘ̔Ú x4ӓo I+L0h)4;ZqצΘc/`nH|[ ?п\  jXƍkqBumr2 wLve&F6D{ϊ'rЁlY5iWqugKZ<雙sqފhY*^0įeMM/b%J3V1yߚʭ!s2F  lW[`.Ͼ8Ñ$3\-@6Y&n\DIH8Z1*-d}}7M씙."D#SvVwf(ЕHO{c ZWdx~X15AE87OoQBu+cx#x *P *9"/Ga9~ѹƦW4'#WUؚޗ ;"x^̕R@=ޑ#;),}2W`c;O]HUEKIZ$tRde-qsr}8;sk*5HKkGr^]_{*Lń}Dcln{>\f𸵲HOU; *S~Mr`ЕU\cQE?wF Fb4ui_izZ m(e{ݹ"hA - \e J,$6vt|\˪;yx> V#̻O4'mqL/H)ISV; khY60{Ua)UO^ M;UxM~,ռ*Z;ya2)D{6lЏW9kp>iAEkR vLH[E9I١㋟e{{d}կOvT-zztUY &< G/>.-Q Ⱦ]7Ut֮W~I U{YZ,P-#DN@sh{1j;IJADYo[Am "|hzZ,^\_a~nuh%u_Ju-8~D7;R`PdG8aSKLh$w(Q0qh_O7M͹I?|2$~yxM+fjWt KɇtK8k:g]սdZ+p6c/n K>u`H|^^*"P ZΞ..kkl}W5P"eZ?!o+?0w2ܜ6?:`!s`߲Ƀi` D="t&+ǍYYiBKsD 8>+ɮ9,'AVJA'/ZvIIQ{l~?ҕ~x+tb6YyOt[Lؘ_|Ks*W;?/~d]]Ə6:IuiӝCˈMR [Msb_PY8H>aTש| %7x}O@RζJ!v^]48e~Qe PãjT@V72y3JT^,өRÍ̲}婏Zj>>jwQӯྦྷ[{yi%| r&W0i!CA!45Paz+̼df$5v]w ]Xv#I=Hp:rW 9S~O5[4=)i9j\_ -Pjk;{`@Ħ=.aC)㦕u6:BE=ŬH.6婴Ȿ3*ȧȢY/K؎Zz$N͐}eᒀi{ ^_xZU"ՍGpAJ_+M.v$]$s.OPq._..mWi#Kx+%\F[\PFme|ז+oK>_c8I8u(C@dH\@~UӻEp]s/_=vqbjX,65,N,fk2ZrmgT%3o;3%K1!,. 5Co礥 JPO&Sv>Hq[?/n:L+ׁ/W_/«Z# kln7}a`ZYcr(i^ Dnr93tr 'gqm=A!b,nש3g_b+9Ib6gZl ˋt,VBElyDu,,W7?)5HufuMeKԽ[SSw`.92dM vB<*wD$d)͠K8W9"woJmYŧWnש({(,uNWfL;Gh-6 a)eqD烠)L,u ڇwGPChQ/:URTFLɼ)B"+@ Se衔'E3Ϫ[\JAOސ{1/,7KK]ZǫmH̚ @=ƛ W[RIZqs{Ur{s*X&zAP {8 KRvI!n7j ca(ʹC*4y ܮ/N&ZoIcNcɟjFWm-VFޑWʥSvcHŘfGLShdJ k|W1<,Xger|,Λ* >8P]H L8K5Эck AMjX첏~j5Cl!Elok%!'w!O+#0cejl>ˀB4|֏ϊ qo@| ŸΤ\/ipu\uKpu,Uw0o^P֤^`*waf;EHoIkQ;mTVF@Fz9tolE SHO8ŞYm(пH@A.ˆ *ȳ6%vdʇ)9=M8  {fm΋u9u=y,#9u;e|4N[D3?ӆVNcDhn ee'"WqX s,F|O4\]!Ա'|ZH@d<;~*jJ?B@N1*T<"o $v$HΠ7t%~Tic C@ t wx A=}TU_{oN| gkrP?H'^ͳ^'Mޝ1M8?Ws:l{X9-*L"tb!lE̡Hk@5@Sh֧G}}Q ZKaw Hצ=ЧڝGnⵉC#O[Ί ?o|5+NM&yomjR/8դpTۭ&wW73k>d+l[QK*rW8G:!4&7ˋ j䬷Lg|^?FJ;mjC{Jmnej-)y#\e~ڡ$Habh@;yO|E_D;_•NP' ЈnB8;kU+H82ƗFMG#c08L<51iXh,g+\\\C2%:LN7""kU=k|YD,h!~|ۋc+W6leDsK>lO+7BA{$Ҁ=[5AyB{AH$Hy /HT_v dXhGUz7CV~'<\[ڊ O KuPvuG(yY/M[m&KX0R;po&7Ivl׆(Z e\,HrX삼A{ngwtST2Lee i?nmllnM Ɋve 儊/ud =2iԴD؞Սӗ@ٲ]Rsyzф!~a.2,gg ugQfNS%ݼ}hWvP1r+] M#ҷUg> 1hFg} V&#&N,j%^/ cXD4$Z)#Du6:j2B2`C#oSgp.W7.CSF|ǻ%G㭔VO$ xsugk⓮0A`Kpdc"ڇܱ-EurIűX sO~+fK;$$6`fGU8uR]YMS[?=Ex~TuR۽p7:K\Y71qg ut 1h=`3fpy[=ۛ/'y=V(#MOEAp -MO|~[j6I*V v/N4W1yV1A]qdœ^Rl;)E ǖ]IcƚEWǫJlal}@jp^A~JNִK%Ba$#N/# MniP$ 6[RY¶k8#$@8sty<JޮӨP/9ֵJŪMkr2 6/ܿ:GW3b% ** ٞ`8E@hH!gKRQ^l.Z3&J!cWC4GIҭ$o+l_wS|LJ}~շW oc&ԙ-g[*0aGZ&I±p(\gQ~44TT.dj5Ayf R[%q~Aƿl&};k///iURaw_Y3zvQs G^,9z\@%r? ?53)\d ҅B \AM8&nXPǎxLBC6L}ɏ!o^3H'!-Aò z^!/rW2 7Q]J2\ǵ8PPDx~@^XBVu2LU{>}6ز8G6Ae?Gqs"(f߮F́٬LcH53/$Vh ǷBOW hA܂Nr;bKZT攬C b> к;[Rl [Cu]w~%^ aD@@m/1Q&?.@Ւ[[Byg(u_L0dfbzP6ӗ< cá@$m/Nr]QWJ1䑇Gl WbS˃i/+2^3>tRM#dv\t}WʴJ6{s#-NVvopm0}Q|X^2]_ix.סt/ed-2 ~ aU3+:K \&p3gCCbH-?ʹUs=46|f~VVH Ey%;DAly7RGY^#cYiC( =w3ہ=c)O౸cnpFٌH.Yԝ1N'JEɣ43튰%pe"| R0p|~3L-v Ũ&M3=znn–a'ө5 6Oe1>UT^nC9HGj¾ˏ^B2DKI 9WU̞Vh2{0J霋ɑI|jfbZg>hPW+$k@J~UCem.ٌ3 ~_EW!$>@5R~Zޥw؅m6T-_md..(&wFH*}2`Vz¿prazN }8FJ~/qx9гyޜkԮ=57<^ڞo/O5Zh?/-}n˕Naݶg% ݀ơN55yy@{4Z ^ۏfDe0Y@lnϪ&Pq#(,CӍk~'Z>/VDd_XDkx[kVͩGZxiE>QG-ڔw{or؛@GcToZgW#^H!m2(ʏϴqlQ;ee.Ik}X:jzN^#h{N~nRETZl4_7? 0V-}8~(!}nC%R̷@%{QU56/2X*r t1]dҀ )A{=q Zhm?9(9] ^y >r$lq6Oqm6QPũ%]?r[4)wEM~UVJ`ZZx։a/w˹CNRYKW1TZ)\U͠nxk" 8eȿ_m80^wmlﵲ /M=ٝxw/=_S3ӧJ0>xҕ/F3N?Lxqb$x׈n.ԭQ~R>w!EK.Xreػ[!ME IJd SR1(1!l6$d1ں=u8#Ma`eb((>&/R$W|Ӡ Q; O:s?~NYǻyC >wG(8U]t8€ HR]_v]Zart?[(9+e}*s0Ϸ@u= Dn8tevv“=ᒿkIt)C %3ÐM}S>Z?>*❗ƘbK3u"⛞?"Pڮ蘖t?M[i!j{g~_9x B7Th܉;ּv-G{xd+x.g@OfgJ,X0h$ ⧷ F*L',ݐw_M"]`gĀXVpH".&h@? Ў+GL9.Goh*X;w1A ]e+WtJz~G M<>Le8 @TTyC=+U9&\c4 3 ٽw T|7WRӄ(`\x%sʧ`S47¥'ߐruKX[KG6%TA]\h x6ؙw[[]E7{2]qxl]ߊg,YG^l3 ].2-NBs\i۲ ׋b){; A<%Âla WhG-,K=V+GD>JK_oFiYٱ pTZB -m(pc$.?ZꙈZWjE̷aYaOl r;+4n|6c5>$a .S@ VHgg2r' WRr$'+s F|CyϢ+|ƫASdI˃8S'6p<N6 n~`ޫي)6(8Ŝ]|mlžǯ!ɨnR~Gg#=g %Bb'|B`G*BQI w=FްuL 3l v\=Roy>@WVX0&xTği+F\`$I(3 d{~+CL=E΅)piyd +)ѷ#@Cl+Upa f}= ` ..p"UǐVoT_~,$YFc`'u)n،QIϟPa`RV@m9 *$!;*t?O&+'DhJƧؒS ,"G73nCParU/Q ~T5-H9FX2 Nr޽]rtHyc0'Sw6ז(L9H)0K=(uӊW 2֨^]3Kniiw5LyTC׭е}GR 9 / t 1O[~ 9Slj>2PW=7G.!PxqEtbI7Y* | {hOAA-AA4Cee?նzؖh)(5˛'X_h9P<\$A4Z2M){;1g~/qn`Ƨ:[7^}/K,tQGNh!Q V5% *]=W&0\]vec7p /6>MJDڈj URJ'G#,nQT :tV !wI]le;z_/S&ou7mM_#K\l!sZ3Qmp({G@Gj2^!b9}-ߚ!>axsD y `6{zsB@ \H{ދL&wr#AR@A[1S(<//`qgX 5CK΢۽7='ae= vV"aVlw#g)ŐKROLlePgѓ驐x ȳ>:(8j\GKȒէaG݄ĹӤd֒P/.? 1E˾)z ' [DU)4$9ǏQHA1)k ;K]GIJ5,z zڊwcD&v5l|0 ݨ0S˨&~p!Ja(1,SX\(,Uv6j&$"!¹ XᅨD ! \x;vyPK.sH1D(U*(nuvola/128x128/apps/package_favorite.pngUT 8fA4Qux zy8Tm3;3e&e{ fB 6Ol3c/'JLQ$G$Cd Ymzf5~.+cÈ?[l_Pv@ }~L]%7rϩcсG#w?}4WG`G1=A+0Lm#dEz@Ѐ Y) 6Gd2x(Tw(^0H,an8;;?۶ pr.Gn W5% }Ҟԋ>": -NO .ӖtMuH.jmp.A;SjL(W]\$Ii`iTx1ș_t.d_h*l:$(CC%2e"'ً͎yzo(_' V*DsFBѪVTVFhoЄ@n6NaR$9pG~q?K rPLG0&Gdx!T)S)%_k[92TX0?YwPm8."YN[,VN_@ȷ*z&;NTTɌѫwV${;Je%2O/4 =HǕ aiѕ#-#B$2 n>Oetā#nk[֋h-)Jd\ }P2Jx+C9{+1LWӫe ny(>p+ϡ&<mSqRfϙ-q``~HwOw7yN 픔Qۖ0ìZpiJuO!kWy8ME3 p ߬ງAA%^eMsu1=AYpr䥿QPnRJzLAvFî\;2v(9ovEzs6͠+/2Up?Qd8f3jnL-?nsx$Iux7-Kt잊b>Lp6>wVEwAܓ*=hȤ161x".yt)5o)u ˦z(^!@'/I}Չސ',93|;"ЌlJ!P=[1(oCo-!+7N dO'pa=GQ7.δdo]]ģAW%OX5uMw,xZee|I_J) S!'4=vXX7rFv+JprPM)ee2/X~ X?<b" _^DAj^)-|V*鉎bQkLҒ$oeW zP@x.7_JǼk&b$!4((uv9]^/;;CSkHAS8q5-H^@Bdd?n{;7{ >QwDH۶7/~XAw JkP(U5rH mBٻv>KHeVJl&nWm81u^L=~颱?#Wۇc]mXhlpnjջ<U" a>0'עfYJDr YKϷGJQd{K2춁):܈ݩ9僨;5mA\s}UUʕ+R`fb[54c(ދ|])y";L0LQeSꀑ`ByS)v 5gr?l*ɖtcD:ζXŇd^ IE4nmEW92v>l6V>BތP28܀VaX-c3޽v%\LTv0? Lܱl h=,(Pֻc!sg8;}P+8WPe˒(V0]h ~V4X W{ZwI;|ow:k4.dfTaBO3>1Ƿ$ '<lh9/\p0>># 0}ˆ(jUM!@1pE-婀&cJJ@z 7YAld4qDHaZb0AJ#܇9܈fpqMQ 2_6"ߗazx2 d &M+fyڒNwZ aȇAVo ]=?JJG54570:HAu9 7Y<"NQ6ܣwߊי'$dmJ#}Є6tƱ:Y4WnZ\]1j>LFOYF2@ P\bb <} a:囇P0\qvu#y0r6VteKlXU"RKhEI5fn4RV\=hML<6zL#bSn0o71$^yN}Vg7vybqN}~@A!0΍6I dHV>*)IȖ6, Gi" [6XVp fvg)43sz-5Is֩q{%V\ wWҥ/L/Kx&(EI*42yWx'UHF4G@fx f(-`M= e4֛n7%QYɴ'} avwʙN|%(!o4^yf%G̽įðLa{4ke@ n~a4,y/h@LX>ɠ+?Z* u+(9mT:i5J{ێND{?ny0(a) <`A+׬M?.nrM:1#:IVDlEi?rߴqq=1/i(WTX->$;솧(i2p\abg1馵;x>8"ǯalf;}8bdL$lO6oОY/ U?_,ӨSކOaN&AGqN1k!W;S܀ %%q1:D$Yyicx圹Lؖg1i ԋtY_=X@j\pm} q)t;/ـFG@HqQ!w,njbOEPVO\+ΐ G 0BWB"9\ڋ>JHbLש%RWm KT}Jx6ӪsYxL }J(ӥl=:LbiIsVۊN5ڿZ<خ":Դ.6zB7[G֩)oqQm/M +ĕv xq ?+ns,֜tyIepfrs9򸇸4Mfqn& 56;SdՓajyask}}N'0 g)%2 cƼ7*+;&bnhkZ>kQWVDe QGWb_YJ(幱\^(dœS /Vf LBYlDp{ʬ)i2x zpT Udlo9J^HxEь{-bA<WMO9(/ R-+/?hQrU-.˃;F6_W RMxB3xhUҕF]z9w'NâQq^yݪ(%gaz'X阑Y2"0̱Փ.uMyGdv82"]q!KۑCi+oQY0P/71,}aԊdA$G8o_|}GG:,&!es)>:^EWl {1-Yzt>hЃ=YM$ҟ.xTI88J V_mqE ;%y2#Mx٢t౼)x|rlOHGr4fKBKa]GeSFD\RaI%5ƕ\ѣir23a ܦ+b-XKCŦ_#!!LR5! :z[- S*1$_P)eϾ-I8qD%b?CsRF<:V ^Ҏ~;.d\ܙh> # Fc)6 @{bTնѡÃUpW Q΅Q,0@0R’zijgcQS-S/㋴(+d|od n}Z{R\ȱJ(ńt!3WO .^Cյٻ$9< :^ o0D)zF)74mUoMVz"gQ8[*'\܆nT-󪔐ˍtbewer̓vhdiÙ1Oiֶk]^~?}#ӆ41 ϽB0{TRf~ P¯ӌ9mw72KC8"*U@W߸s^c,cZRxt|Tt ]\8{Gدmrw73VZͻۑ>9FP.sY:g"I|}GQ]|j+-ٟ30i!db` *nIt6/a"͌ދ[쏠&Б(4;cnSPՌ+Ӷޘ4C_]e0#Sӥ Lb ķl\v}URrE+Nrf+ƺ8;ϐZ'z|SW1%(YuYވ:ULϿL`\m$d3"xv0#%JJrzRL yoe.3(Z;&?Te,[:k{m+hKņBE)}5g*CZD dkqg?.d9:n +yr2D=Sw_RfH`\(əF8Y{U,-' "*M] -{nu)ں=R49J^rnVhG!x-SGbba,dg%bիt6鶓 WRiiT;+i͓TSOVIUחFgR5iC JG *W NAs=V7t3Lj]  |rS?s};ATa9Dؘni2E> L}&T(u'A\E 1 S4ыӜ30aqHqӞdf_Lt_̴9Yd =/SIo<tv"l `ye;6d[Z8s_'M?f:yz˹XtI.:I9| @h TpT>"_hQd .D5J na=t2ؑuȽXּ$_؜]Фi+.wͣtW`&l/N^F?2w'[q=~~Iwqeex;PpBV,+2b%6(L#sL%ܕbD8v1n&#Gȯ hR13{uJ/*-pzׂ q{R3S?N`K [tYS-Fˉzj1YVBX cVBijtقR45Kw~f6}=mѴ(h}}zܟAvI+'zDU]q:n=ycCs: *8//4+d2].~G0t]SdE~HOPoHNCmD_ ʇ'LɽC c~L"Rs[xaei+\ZWǒ,xs} :+ c71~$q؝g\V8XVNQ&,k(Af杔mXQz6u^}e(X1/רIJR۟׋ȫwHjS$IfsTG g6$]n|k^pZB)24(h;.+3˹cMX1+SC Ƽ֚&?Ÿ7]Ny3:d3~5x "N*_, oSڣnM: ֗?p/,+5YeE%S*,-AL/ÂpA!7N*II°/$=vxON` ӛϥS>*KIiנ'fC$k&H#-G‚DRrJ{#+Rb2҂(/?apM4+,Go^7?@-Na&[ DQ)Z"l;}ٵPrx|&.x*N`D= $]KK#0۹aQ͜PзϘսبy;+(Юlsl.4k{\s3O aL-MLk$k?Ve=oZv=qk7.Nr`[ ,0^b0Ϟ!zZ)J8 ɇ/B9+0Ԍpu4T&X ^*N\AH3Ҩ[[9PeiA3ƀ;0j@ ~ 8 ]) eXĩw XpR^c[bّ3ܝk+sdFaǡR@(7J)GUKfgheZ~AIyU*?h~[\D4wI5?`@/%rW*g,+*Ł/ فt0+ <_] ;M贫d0 ptH)(6n4V]SҬi `G]P9afAJ%“zG~>#a(T0Q܍ lDb':R`^8j6^v A2 0?b;}VfCSJB5rWVPɑ;&c9ah־yk}`\.# >xBC2w#L2QkƽnC_>k.GPPKD1]OX<=%nuvola/128x128/apps/package_games.pngUT ^aA4Qux {8?~`ssʶ6T·H͹T(ȩRraJ,)*eBNcJ$0Cvw]z^|EnқON_ل7h8i :%.ǜu=?*l\PL(@ </4($P;߲ә#/9uZFP{9]Xpdy pH2>AM[AD [ 3% qWwmΗXn94$IT/^ϻx!2"X_>~E=ȁ,A=I@"tY-ʟ&%c4ũ])6$ JQe @@5>)l@K 7yZ`S(*NHؼ/H+C (XZz*Y0n1'}3Wz9Vڜ{"&j(X~Q\WV=h(6$uyf@d@g|A0ŋ$nGt}*Sj P,;[c>zuΞuH1g>{:2-ߤ$vlC\ZxHWCޖm?v ˚VU}gO1ݚ)c֬<}pgɎdȭ@ 5@Vsrr:B+=b'{o$NLqpaG*m@hhWY.ac}ڞc.=^i;F?؊zvNC~Ng HЎtz"@dPazСog/»|yznµ=ɶaa7?4> 'ٿ`$ʸ]]5RZ BTβ46VfVp6ƩSFF>$޷kcıݼ?E;τJb;RK iy2 y7ngX.9*/N-BLU5>D !}p7A/]K8{d䠌+`*bX]Gls sj޼쬿7)/.%9CZoдA+|YC\p%Ň/f'U{*h,n_a)DA##XcjNIk$?ά0/ь;7~YZ$@ª=* >*u]}A"ȣR2}}0A _/ӏ"*gΘc**jxehjzÀjfpyP3ob}iو7[>VcRk!ʅV])j6ː[M(%~tZN~>G}r ]lƻi-AZd8"_j֊@Јtߤy9O*.PWvT( ޿{"F<q5{[d#}$3ЂTeBG;qBc$#څ`nFa|6aFdE%TԌ&3bAO G=s,/"! hd,a~6)R ݡĂz%ݾP3)Y$fAjϟ?Q9NZ$I=Ҷ^7oLJU*\ۯAe P۴&]zqΝ'77|ZMER61yM><2 RH/.4臢L3/Gb#XrOYDAQ"rw%0Ileu@ r언 +${{{;; @[\L7/TcFQ$)BNKr"p-v횬w#@뼈Nᯁtp'L SvE:!YH]F!Rr7\=Q :#3S=ͤ4)mkhUT\R"I?|Y:s+pva؈8d2tk-̒ݸ&Po姴sC!P(X~yE04X ھ<<Ұ1|p^PK(S )|B4&!D"y\ VnXڢMcGׯ󆜆[\\\[F}WD`CosN"q ^P␻Pm;sܯ(3kQ} UJ7lvAi[la}9Df՗pfdx~x/kd&gJ5uQzod܀|oΈ9.Rk$8 lNt"O+k "yN.TJA%4~BЩ A(~0s6آ\_{k_HRorz&g߶p]r ckms;*WH,T665hcbuWFw%'``gSz3'հew_7$&6S-7ad$g Թi_v T-?H̉߅47-j㴰3`RD%= M݆k 3jPjK8,"<$B~5Dq# !cPvd*n\uH9y:yaD[vBK+aeuatWf4) f'$N/IRM"[mPY 2yʨ4<Cp1wPbz#7)fU]a 遒Oh1+xtUbN؍8Joipd,~?sFͥX?mYȬD,f4WOO#N}M[oi!A7˻ftLcJ+7#C"JQ`ӎ ,U[⽤&(_ YRϵ10m^K@`s";z-ιߠ6jf4um#~5HO##sjAzf?*K&1?ZMm>#ډ)auGm!/(w:+4Gٙ@ ]¤LYD/,1 5Vy&HhfRpXc d0) D58l[{ïaclEH=Et?ˎ/{\:LH|imitτ)!v(0z05,3=^k!:Li쯐~\3 .A/ԝ, NPx .TNF[ DDv6U5HSxx=,Z4XUԩ=`qemq~IΚ"uqo'`+UYА16f I Ca<:'¼㫥?<ݜq0T@: WT;L`!_T*D~, E9M Qn [yx=:WW?r )Iz#,*̪F>d )qܟN$ljNI FqB"Q Q)*Hf3I͔pbX / ?/Sd/73x`9;odr3|u齦#{{v8,y4V@hXQ5b4Jt1}G<^E?"1k\o9z>ɜyb%k`1 thHSӶ07]qu"1Ch MT3:2x5 CKZȸyAt#X=)@lZJ%-}I(FtAaʢi}]@?>*td=H#miWv:1z%_oy@aGw*_MzC8MmGBt$~fI;B<3BUN J PakF'9X jڅv葽"}t\@ʬB=Ji`*Sy<( 05d?28iG.utFcTEXUv4_$&}ٜ@rT;eM7 nG88C6Y(f.$w XZq9&vMke:s,8|9MEaxH- &#+[)uرS!SquRWBue< E[{}bBeeU; |aN*YU [PM<=v)yWpV;JFy)s#LR-E@312{/E#od'=eӚ7BChsNTJ!)[LՀo.gHpAC [I ¬{cnIE͠˂S; X4NǠ".%ymJ}6GĽUtF4qj9GZci lg#^Ѭ5n N%)'})קxr< I }O ̈+FQ8mg6CqJ]2N7/{)]4Fܣ9/$ jk/D$nE&gq2w;蕞볋C͔NJatdfod|L+XDm8lL-;>.Z6)pCZމ>EKTT1}gfu!{fx;LXŨU/).v=;a[U_ڢDCVg9uo3{Դ!"/Y](*\JrM@J#l;:C2"GKwvHu1Q+&sk *| D cWo]-swxhkhҴ6>[ RR/GS^N,$v$yEx}jySf4?%ć6QpKKCCK4۫[i.mM -A !vD z젾iZQPq6i͜}#VB8Q3q=A2ʿO*Ǚz]!Ti_{,a\, Q$Ho}??t%tRBFE9x/sī!ϝaFEi 1%Vv\׎ƹpb8jtZA!H4ٝ -U=^[{v]|.G(#R;D?<>eޚ]?" 2g /J\l dM8&@E_bj3?;.~`0ح$_/]SYWwoQlJcbfn9,Q"!~]R3E$Ä]߳\/&:ݫ5_^Zp!T 5%۲X &EV{/a)YpI.i<GswѢEO͞X18 o Gcͷڦ.۶d} F#{̴j⹍|!!ı$n=KT@JlNYH5|@YJJ\F!JZND/Un-(٨̛cǺX!cl׷ ߬ lCD#_Ô&"3pe}YLtAwnյ(KN4UC`x$_^ Hqz\:<1m=LV9{77Z">qL^"WBr.JmZfͦD$k.zql'}$<=Ӽ!q!/"*##gykcDIYX4|'tӇ1a?TǢ2egL@c<;z S ߅ڌ(1~oqir);ɉ+u/>a o(x) }KCJEb߃CVP@?Q[ yL(az pLMm~wM`)Y{ؓ<Mxƪ2N @Y]o:f$>dNP"dҾ!jE?U]8cM͟76Qˆ[fk +Sia٤7v' !>S1~Al8s#axXCRyxH!*hgDK&^z n IG3٧!e"őH݈XFطXyr@Jٌ!WL -x`]$St:;ḋYss/i,'@εtB^䉸"2^!?).d?*KU5t32~q;Q8"QenςS6 RR*Su=Pn#$|z{5SG<=9$!<^—v핞(υ1. cRjK(+N]}xW&jqf=|GUb QmHN\=5}5]z_V[CEb/LipheE># A<jKbSv dTh WW;2<M'4E6}c$YŒP֍?gqHo1ljR51>c'; ^@l^[ I g, nƩJ t_FVnVM;/YBv >B2Ss/z줱֠κA`W;Ԙ* ~rcwaLoӽ eƏ|sFSlO n=C(R8&l{F9DǸC'ɠQdx٪nqf6$*; GHdED=k F{玌mPKFr'}ߞ5R fA' ~Չ礪]DGqx l~a>X:7} Wn7@P":|3n>gr|tFX ETxgi/ _B\ǣ2~NLVymnz&[FIwQQ3/4~rDW[Ӵ iidi:j& R"{:C͉ ڀ;@\4R{݄6`~1#+m-s%D~poKz]44R?'TcY~T@lYMrt+vj!]s08?" 6 /zTli N |BVDh@ eFom?4ɢ*x +i%곺=P}ZKIGe۱+c EsΒ ʿ} gOSĢ4F@Fc;  8l }fͰqwl&LzqfѦeA!KC{Xy-Zgz k@ Y6-PʱOk\п5y[3ߓmX.j@^?QP=]Pg~O?Sfy6 k} 8 rlgMQ4$X~޿9A~k )tj,r*XN9 . 8`2J)sDXr#RgW!hأ%Bטӕ+p DD$\WY,ag6^&\n'T￑xsY FO,[ R_BQȀY*x|c͛7#R=B , 2HJnskXkYͥàZoaO,R[.)e I&ș**ąz1 ⬃ԟm"j ړ,n۔8vG Pk'|hNy"ݜ֛95${E+ -MdētZ O'O>r'OVa)\ H%/55zHh굢nh;ʩm2GMrrgyESyb9CE4Rp-nB| 2~x q |(bA°f(ʧ/!1A@,'fKKK3zOBm%tFOnpC(Q ͏[(@YEYt aX}!lp,4V5>Ho4oH^|<LqӜ"vM=K :#bӚjX5)fas,Sȧl۝ HlhP]5'%ß9 `MN2- V{\HL>>gDDix m_*|E"~<(gREBGyp[-sƕv7AEAP#brf2=jՀ_N(K&彝"u V3 +-ƝRFk:#4p;G#E(1cI,6ͰA;vI}d7&{Ƣ㡤)Wt3QSvc;-^N)]tϽ-G&g #4fO9ɹC2!NJV꣫0++ffe3ܯYP0-$.+uVpWWW BaBu55 ofLw/rdob!b3uLRE*1azv@7 HPY DoO(T ^,'2 >uHJ؇1I<fd+1迖gqlCeqL(g%g9' ^2EffBu~|,j=t7+HDZږw0:lGpsXE!%'AWw%!"vZXcϓBGV<$a[GΚ*^24Zu mʿ@Ԕ"X\9?|_<^z฾6@Z_ bn3 yׯj٩MVGחU鉫i&6IukKXs)hnp\;ruOTA&?0q8$bOxo!.cZ R& y tH2AI]%NuvJuP|$Z5N:BS,ޭc1q7m(@߻w * #{"(Zy~g{jqO~ $P0!w5,_߯18G 3#`?+ixw8".e_}@b+6Λ_囂Oԥ7&؁06VNcV'x<}`e`,$ͅP *: (1~@ΧGT Y.x"pX e#9=Auƌo6E a9,͒FZ "|1M.ʛL!hrh8N 5$H@M:^ba=.xm Я_zӾK8˙ ohW{p6GU~TӍP.9$p7GÈpþT6CvI3[AX4 ?z'cm]UJKV>xBd#_ƾooT z+^= >7C&vy|D0G:-\$$,wQN~&~[%=;\Cݻv"yx;IڻWRǜ9٢6^@DE$a=k̢p6-9ɷ' 6PnPAvꌊRE<%[>Xੌ"*GGHHHd)D>~".>O^Gu<=HJHs_=P_=)/Oݮv6#C͋,-ml| YY[tlygBUൺO'u)wc*vHpۺ ;D𛽖`lv!uϊT`616| z$ !uDC>'LZ\"Z.y괱Ɛ97'KX V{ Mk}ho[fII;wPxt"ao԰513QwlG?ǥdCdLj$xm֟_YQ =@~E" %I`y H ecat#^*}2|ek#H0d{Ҵ6.*6$$mTW>9t)Yo!zPJKρ;RwuCޒ@ԅA+$ZoK]27B7A~);[7ܨ 1B7Ҷ< +sR?F(U*Zf%Ɗ( ^cБ|pHl.YO9j#F8W(ƋI-o,p8r3SJ:mCԍfn]gkmrK*Ă`؃=ȑ_d1VqSS@I Z.qlu6Rv}Yt3 l[M,[' e3bT.Mv:P'%L!nq u;Z9Jo(bb\vt"ʱ%(SJ͞,*K%8 t-gQ}f/y` sAZ˝8Yn9259"'~1gZ,~z3Y\$i6Ly KN'BFuDVY:\8!0}b /ffGEǸu16M9-$qIh) TA޷ⷨ#@۟k %WĂ@ M:Ơ&,n\luPU iUoO>ҙ|(iW},8J)lbK%dC~J,J_O4KXs$e f /dRO;= EbFgmtFCGa4暉T (*ZBs- Oh Ƥ{ґSCkilLsʲau~JT+t8ԂlfV&:h/=Gmvk/b]&y,C .W@b jDݛwX#w3)6dm!)ZO/]G{Qan3Wp oQ17דGf1Ƈ}ix|I޴F_ԗ!/{)s:c7]K^{RuN2 ޤ|8 mJcT" ^8IQ`?szvsh/]k@Y)0 phO,v-}SzpAZS7J47J9}\?SqROID +]hx*HJUL1G1z"\tq|;?oMljr\%kc9q"E>\]bW\LEJa "W3 "#q:!Y˻FK 寅 |t#L@-2~kQM D/Bj94,h],1NM{K~1 ^!J ǬT IUZJU٘Of%P|O/tɮY;m1A>QoOju"wTx$؇0ǀY]^aH98 prEKʠp1 j!ww){ N·Nj7w~_˥u@YJI;1CIx2|(4星4B;?3_tl}Z7'ω80y$h𤫦(`j' g~L2~Ίޚ~3TXNnƝ=*uqK5hS-!7?;=t^ӺYxçwvzZW9:H=p$^xVJ.S&P( g"S3kb17}$<*Qݖ0UfxosJxy#CD'jbN+Ӫt)ˊ v $5yzYjE5 sWE S"+Lƛ3?I sd4G 2<}M~yj:PGCgf5NMOT vû!5_~}Rׄ$LN1gvWsmBҌ9sϱW#LRLa ,XsUYrrB^EG|%cZy[DZ*$whT?7o7ϪM&Ϛ9xO@${~Lb2 И .P`3;@FV:Nf.{+t)aSجSTGH˳e]JWrAQC?v=;+Rq{ٽm#: S ^x⬀܀׀tt׫SmOY6}&+oC[ $Jmf+zp-1glǁG΅#F;+9BQ]Uݽe&͋uYAPN\EC 's>(/6A3Tع&D]=oHOʜE.<=Pb0I>:*("Hwjy+#92F= Yaf|~DIf z; 8(88B7DղNR Í=x2ӒsȺ4C'A!\+Y|R#%ޞ&o/qHn: NҾ WvWv~*%>0s^]:\b#qvK̟AJ/(g+Nt4N7t}M1?su.z"~mMSW2G,{X(.#ڎ By( $jٵakkk~]ZE+w x<$wI'I/bed&9~VIi^h]v^{IhV#n1>H9~{,Iǻ ܺ,aHfl15!0eĘM+ϔxw^e6 ?C1-OfkihnFȇrAP;iGjQ`͡#~*'8GN< T#.`^Aڤ %JG^h-0v7K;$9wp߱* \o஌ri`5^項 w6e޳<z`V $\$L'u/͗_m~@(=| vs& m6v-I~y}EM _Hiײ;kk4+21M`sӥРY::^B] mr%)|SVj" 7c{iۙ-ҝC<`Tj]dwСģVL]DԕO˂x3ۉnn8ӈj۔?_ s״Nu u1 \Ř{@GaLs}n ؒl)=Jg)|܃@qOT˭ y{Xy HzP?JVtYzClJrg'^bfت5 1s;rO3GMC}m-s{U.5%g;:| l&@ۡ_8{2#pS?-i#>?U m:ޫUp X+ܳAֶJ!m^DyIy]3?W[(ז38S^ _:$SNG8d1quG"S Cbރ٠`Sl]~Py1]<<UWCü!aa!?S"օ#b ;jw;q?BN cnp==֭m/t(,+g}U:u ;{ր35H#%)axm[S$ڝzn$8~|ӠYx`qtM-c&Jh4Ã@2ȶ&;1@qe^8FNo4[\߬v_*DY{j"YOGyШYq%<9բ'x}%b0h m5A|`{ΕP6|ZB2 T,^͡cRiwϖ4 +*K# 6nf̀gEFT踴.e/Q|hσڀ+~2ZO@!\P{=8ʑ}\0 XY;*,^\ Fn4ۅs?K̟v2F3BQ2֪Dt]\[,^3:'| 0Bv*d3&+ogƕH9u{{wGZWoFj^Hw txa{ S/^ ]+)Ԣ]݊Z`QtHe)3C IR>˄hMiSZbzH.T[VA^g|6[aIs|}ַ_i|F)ܵ,)1íVDeP4{+ű0ympTw?H7pxvqg3J~m=kpƋ+> jqvJnI_Dl|Vz{LgR'|ݒZa%.@Zhߝ=:1 TK/uվ{=d{}}}R^p,3<?w0m+e9קr\97XK7qCXbLR0 Ui0QԤ$QɷCt4g&k6Ugy |{|XCV6r|0&D{AJy73p}|l9N/z0= ĞHM_Jrl+㬨k;As=[#p|UUj׮]+EP<WfZW.ڼ垚%bۢ]`h7&H20:^u2,|IU# _L 1FJOYs'z~&߶.u؛#uꤕᱚs$>J ~z+4R!:MWKyq3o*bC89 yT=L^9)A(?;PSV?3qu q Wʹ{K{>/+5lAgH}P3x7?홦i[1+LRP?RQ:d-Y l3nTӶ;/^lK9JBZȎH\]~ Iaz~goR G5^t;W-%Y__/5 =+65ݰKX>ؘi/:2] 4ݻwKKly 9KuɰcQ.ѡsk類=ki4ʠ;|K2g}xUgOq,R3${CLeUIc&✰W'vàWзw+eꀿ{y@@iH$^pߙ[),5Jܹbjjv"-2}ҭܧ*U?WJLZ.Eno;46I₀T%%~_ÇҙPu{-d r W?LN5^ޡt%<ZO;lv AON5f%'{Osp;M#vCW"b٫^'_c%7|PKD1%wΝ4 6+nuvola/128x128/apps/package_games_board.pngUT ^aA4Qux = <?c6י\R*-/]Ub*[6! RȒv3\RI Y%KFDr\?x0cs^~#06o$\i)x]Pa Kk{8"(ot @ 9 Hzhƕ6# ~|S ȥvw(+l'@"M @d  KK[i/tkEi@z֖y_ֵP G{ PWH7JK:0lH䅈Y$ho8pyp/f&R&PPV[ CVX=?}OS:K#9@ @E5k @p$7m[+D!C. < /S***(Wu?q]OWIJ ŶYi(NJJJdS7P`}]aGCGN<'LJ1:;eJ(Q%EڪzJh4ܹNRXX7NSqi\0`H(ǥ|J֗J* tlPC 匎:@Y].ĊٽF0M Zm-$QB썞1,I| =~ W0 4u@sPEb`R{'3&VCǣ]B+E7Q$q'nʙ) /;| T!hH'1]ݖl:::j ;Eϙw3 xd╯R0B8MpѷM0%P\[m&l~V?Hջ *؃P(Rj|Q%YFVVQH}fNd 3YXDþ>Ą()6$46V9Yx?)<`,LBg?;#e.XI_R?=݁ I14-|12ߕݖasOg>#٤}AoB nwQ<5xo0v%/B P/}}x-2^Ab5vUI2"TڂE JHH9|gT. [ZY8*VhKs/ r/B`B6>"Ji |Smu?ԉx S==="gBԱ1I.9FF';"ũ= Lkx_vT(KKz3:TAR2mgOU7`f>`>fZ{_h|!όDL-dx/sV+ОSԆ|}洁wG.^Mq&, I"G.o"qMAdf| fJ &@BX;20b )hj'70 eqv'ãee9+/Q1s40;p^BJ555$ (Pq {cѨ^F!vcDB{8s^~>S!E1̐" ~ ?½-I\} ic ?Ҿ:^?{fDhI%qt_-d(c|Q@\m86X1C3*z,xiB+iCO~]|yأ}6}n|sxAd78Am.. %|I7`)^):=Nٚe!`<ЊT*]rw}&^H!"o/,Dt&;3Nvu9sڕQ/'jjʰlpq섟]70ׇkC5կH]@6Q`g 0*[7(&R#v}f%<~Fb"RV&†4vPlm"g/,Ɩc`sx )b!2Ih_%#;`N\$˱ɾ(qÇw .; ["9ߞ^G #8cŠn ߽rkcm Za~Kx v|$ {8#qG*$˛Cn  +WEa/ L*Fn2ڿ DU<1n5$-ş%L#܀"kdvcP y4)56JʉE /{ܕ޽k[oC.Ig7$eZ4_?. ƀI~L"romP\Du`F"[5 1k7,.5ALAF؎_hGDFƜ;7]ِ)P" KÆUq~#5|>ʛ u>U$Ir̈֌ Y2wܦAt mOСC Cx^ ܞV33a3?C|Ozõ%+<^69r&w}ӝ:f}0B7ފDŽtG|\)r由+PM hb1˺q. ]\]1u%2JFҰ'\ٍ @")MZ۸2m-) D}O Kgtr8ez,_YPWC,xBTP:DL]D+!HRljlOo ŸJQMbl0-Xxw=g:dǚvb/% [ 뒒t  'y[Tz=v-FSx+0fJ%fG8&mk-/\gjX՚m5F8 (gCSsv;,z\*@Sb?FrxY" պ:oJ]U4H)KzHsvv.jŻeTUݺ G@5K{A@ nFM$.+; *d2"<ԗ{=!4־C`QIq5*TDž4P:͌׃W][HKxNaoY~Hr ?4{s2_S8E0xIJ_`/.wʽۚ΀_Uc+Cvh@9yF![(Y*ش.jOfƃC [* ܵ- 6C #0q'lvQQ pVWWSp#vs -єt fT'QT @@JvnXc^Umnq'S|KrGQGq35SYd8b( |(%s*@hTۗ{n&EG(uҧX7 c S"DzňSh2*eđ6kwZ(Wuh(f)}қBgL%O?#[JX"BFc**Զ6̓q;j8Xn}S#Kh;_AWbC)QQ[<0#w÷.R J?㉑*/d]NL]L.E?.+S\iIg60>OTsپ=n>'VxW -Y:dkn3 8OIhGP;RKPPP2vL7qb'r *K ĕӶ6Bn"; *)ڐ`bѳh(BL\tK\lW/϶;@5$iC*F-oOG5wlYS@LTcn!뱚}P6gD6!4n}d\6_zs Le5Wbד=s/ym zy>[AN-#nۓ_tL|BSS x+{5 kp^5K|0X^گsG:!M +-Ii 1AZ&ܜzZPX0Ga2RH:PA-VGWmS\c w&̟/؟J SsSH*r(t#HC,cB5b'z[WK`W.#IR]Ғ G]wsxF&ưGn,R(wd _elgn9d5-^t*RXn1-=|m0?J'c/܃e>@R9HPlp ׹;Gϐ JG5b=/_~Jy'Pj~FyY :H<θF[I[;Zh!\h:*nvwL+l2p"~xku<.oeo1^zg/%` F.J$k,9 ^]3t"ı-yWlBCʼըS+Pc̛tKHgѭJ;'w. ,r"FRO'5οT@aJ{"빺,lGElW#S78m/k浾OLԳ#?{i~c˅ԗR;WcJ|PS7u`:Oo (JW3^#C=\=`^^*Xo[N-8'(8uip4CEsz蟉sc}[9vi&zn([/rk9wN΍K+}ykk3 w/WQ?f8|JY@ߊ=@A;W΍7,R2 lZ/q} XJKmIg=\:onvzQ\iۺ<ЇK i7&܁c2Vc%AS5˿MnX]~րQKl5oȀ9Eb }16*/>iCؐ _P㫰[?]=)RzR)vzIl s1<ಸYvenx2)ǵo$Db?q̱NWYSV+!Y=KE7pc&9u&M|Xa4Nյ$->HڰFL9^ϊ;r˔\]Pd?G?(:2l1 J'ӋAܦ p5Zпf<52*6텉`Z5A_)utz)hسX$ɱ 9Fi/xB܋n+zry,6bgCӍ&2$QnF&55ܖu!i6<gX rtoewb>A}FĪMiOdBi:;-dUQ))WB)͛"9j|{lu|7{ʢ*ReDOϢ0V=K1?*P̏J H Z9C/{k7gZj-Jt~(A|-^a{[kz9L]@$SAУ0WÆ^ܺЀlu][)7ߕҢx*dnpQp)sUgv1N_!ݿŠoPS෉Ga^v(7`iy1ZXʿS}Gw ݒƤ=xQ\N*KO+Qxo;U5LTm͛ﯵҺ+"owVR|uঐ-"S["RgH e K&]` ؝_w6 jő#JiU#p[h'`{ 4Xn@aV`z/?O:A}#[.v]r6_<ɡ_} N^cNI.Ϗ+7Sڟ־8ïq/pzw.RLXZDl^#73\%VVŪ}$p]`݁$(]͓2VLwﶟN;v2N,cmICbD0lzrɊ׫QH@X Ea,kg sCp7?]dw̒~v=+TjOH^WA"${/z,/'sKClGE[_& t셤ʲ|E--P".;[[@% LCYaߞ)X1.z>-,{>#n~YlWMgVe耕9>,寕좸*NV+ tj}I(|U*>^Żr$.=ƕ8A&UɅ;D nI(<Ҷ=: ny?C,++jI.L B<_"1%I>$̊Wuy&{|As#p%?| բofu ypcu[a^&w OXq" *P=FEjހS䳌J6;o"RQ!+eWK yȞ_J ;8A7ɒŨwdq{Q{_hȫ L_p\ ))'|Z^8A_ςG@۝8,eanz|>3x%Z3-mkML1r2$ qG\XE;(e$e(F+Zolή~J{%o-q ~gDࢨMYf7xZvdNVG'=Ӄ.!X ([矰.I@— {SyI£Em\CS|eB{rmr=]=_i$ܖu<P{BEBbeУ+U҂Џ71%_hk25vE1;jɢ==aܽ@,;?|3 _n='k2uɢCϟPUUF}Pf\ώ̚JB2{؁ ÙJJ/+Kv0 9?f svڑ"Q\GGFv-g.]X2Ԑ'3:T_8U0}1 ECU*Rhz뛼1BZg7JHL4&2sYX?<]UWlG0sC(*Y3+-) twfټ糔z)|x#m* x=zh":jY T1Us4"b5qXOpOegkџ' A5; Qj |;$|L~־H!\9ت1ܑ"hǫ|oWMZXjn_NoR󲉹>DQu>|3)0 '7FN]_wGv i |n Pb_gwwE{r w$)8)ռ2&iR(25ݜhe="HL e h:>fl̪yՒ,}|c.kt^P~\dǃdQi=t# T,3*QcP-WAN2fM2jd$(ŋ*U|APQ+I.\#?=/0af84{3s7Z1ȂP]L*X6:mL>Ψ#bb%0&7 mkwӴ>K4TU}Iaai\.Ih$0&FO[I`B 9'biمe_Pb ϞLI^Ћ;M?]gcl2]gw*r@[g=[]40DGIpkuHhO^r 9NwEhrrrW`"qnK녱%6ӨV[W%%!r73%(h 1fɫ-2uU{qN5x*< A\ 7WY+&i[Ng W[\CO3zClxBڠYN.HP52Gp yO$Ѝ|bd@/Mraiz!R|8|}9 eK OeB[rJGc]@gqOq;q`% N$IlLurUFDTZD|8<8-Ue7Wq ai푛kQp+Э"}ւ8{E*jkvd0AW/0Er8(*WWW'Oa)B6QWt7hu[HX' nV|"~LJt7$,4FÚђ00:Ci̼ i)G- (g Hn V>a<)\ Z,V΅[]"^Hs '1K(Ror(pE[QřU%9zßwAϬlUۻF) !y];!)IGRZYʕV7]]\D5!!-9=$#gⳚ*n Y?b:jO*d댿p5ZJq4l`(<=;(Mg0&YHRŋP u%-.A8>; z:s;a3ZuU8zz7p%9|saƏ^j;Igtu^bG˂YC[WO^чlBvxq SFF&in"U-&0lm/(}!?uTAyZ# wƣ*_j`\vw4 uOЯcv7Vܮp`rPRuu5wؚ/1~qW9aŬؿJL~$xpDlo#oM˳<4l.S@Xe'!k2&P@mkFGɒBIW C'[SGrZ:$wt̜|br`d|+ȑ\EeU򪼞/[ٱ 'ǻvs=&*ʁIH \ڂa!cYBUC] #I}S0  xD}:x(MDZ 5 KG'Ǐouvv>ܴZ6fW+EL=k>dOPW+hw:{e|Aci!cve`z_ UOP7 Z9u_62PK0N1Mz24.nuvola/128x128/apps/package_games_strategy.pngUT _A5M5_QeͿH;U@U;";>'4ySBl򑈤C 1&"職1@9k *0a, 8g_>@\|=4"0`c3^w 9{+)JelvL+˕9UE{c*]t7^0N{b:]H[NvjLTv6Kg@*.ig_VMUTT7i.3qE4~ 뗚]jJ?W\3HU;Z42tNNoS "rͱO1"^ZL>3ȋ™{y3ׇ3IA.^zT+Ƚ 哥'|8_Wg{囮#D&ĥ,YU8+=B.yi\3 Wf9df?ɕɍ8Y'~Vo%~nG8˞׷[Z;d?=88Ե{ 1mmb3;3UB8dƇY {p毮i&XTE FEF+Y%Yn䍲aSة$w d=`QY☭obs>pct v0N\!gW6HB)U&͖D8ZEɩS˗L&i3wHzWB=l#qdЊ[_ᅖoLϸpވm;QСEviv"@ R T{5#%@6YF 'xVr lG=FpO8p]oD\nRS) ťcBcEKWw17<_>Av{  y };E:e w1 j e }f٬Z{fs p[3}.|f@AovA;uxL<Ҙ!r!|?Bxf9x) mO0eAy AbqޅX$Api;{ *f@SctdngЂlVA~vuǦ=fTs$ {e KC s.4TK'kgĤI"Zq 'd[u>_)F~0S&xd}m9矘s.;daFȼB-h"Chl(Afx됗nq"M Oxo'F)&f"Է'tI߄\wY\}`|Q2jI]hsmz_xJGZ?Z ș9n]QӰ47Fw051th'1@/: ٖIBjz'5jVw$#qba9Wsd $`^᱊ /Pw!>m>~!3P. F~H 1c -# ̘CZo!KI~H%3{k3GV먕t\@1lZ"ԿA2f+勥6I.>uD- ?#+ EHwPJ?X^%b⋿B_IGrI3Wt 狚ӒOMOsm* yEYmЮM&z}V,VcPlnڤ@5Ӳ0oo= PDKa;j0wnv:}͇?JեPT1&§19i@ZaFɊ֮;yb eЂuzr*+@4"y-^bW [W=(}{`?Z{/+P+ې^xg&"#yTP~)~V$S'KXݜbE~ ZF]Vz*)yik[6 W]ڜ1S]wvVJW某`CkR<[& et<+ i6(tE^nn\ dT@ӺYrQz\*2t]e!^\q'SV!>|o vQ0IoȥQbȰ0}yAaZ$!th``T\S)ă`'-:pn0^}O1#/]G /Aᦏ kđ)ނ?ߖ5Jg{Xz>}÷s%UbeWe V̄B(KS:-ӿW8@ؼ]DɪHn\ 8ɮIcvЍ%H"% LL[L 8M&n)Z[aOWI5DA2I'8<3"ϡD3rU(.$N^I+0 d"tېPpY)I[}%SU~*L*V63fL9):{m3d_j43m]gӘw:ʮJw[o Njnf(FVxθ=QxL3XYo*dIE$k룓Kt# 8g@sXϣZd v$j`·gŰ%+p:qc$͉BƗ#?!U}:cnߦ{xsɵD/>jBo-@fd,_Q``e)#IQY 6_`o_ coYNS!-|ѰK;ۓP ]MΊRm httDQ\sA/?%MewqέcB=ZOpQ-(Sر׉I0NWJj7#ob"OuڙB .D@|zF@Cܝxnq'&Q\描`#SRTd3&h M 7|BrX"2tom;4[_8'q9كM_3 cr4m-|#3)z^yr*^I6ݑ*I2 *;v8MW] lHKЯL1X_NI~d8NKTS#F"\(+) Kbʜ32V#m V\YE3rUZXt&kO+aT|-H\FL}V N%8Lƃ*^XQGE.服`uw9ɋA8f u*dZL6@Ŏވ}oBKWn>LB>cq\A{%on | J#+㖡 Lx0JGL ,wDW1l-Bf, @@& .\KTŢLMUcc}i>}R( [XUwLuZG\Yke1S d'[]wHUUHh\I9%?Ь܌oy*7+x,K̉P֣Qoj:D GfO eOUSb7gdc'"[|;o ӄL}vc]Vꔖj×w8VR֜;;eao/h+k `-v-܂"ì&7 士VVp 逘ݠ,s {mg g'lˢ2. 4796%k ق69` =:Q&L -JR+r@D] W}Z\o$\cA0N&Gmdd?aɢѷW <@bpP5]56ơ𧲭R|~e=.;*m0x"2XKڔoa. E2 sۉEDKE"|bpaWDS3V{pWJFDhF{Xy?x;x*!Z P0f!^O~c2Pso(^*$K*b %oHtlds=Ǣc PN5HUq3ÃF#g2"RFE V:3 iNU[z ZߝzAͺp*{xo4"([ KӀ@(g:딼`Zꗔ{%P\y `EB+zy:?~uvXdJÚ0hXD+-s=3JNǜBZ]`7.$1b.SPČ`B19IZtJo8R*2Hl@z[B0xehSHGfʝeGzQ ظntoee@##ǂn>M^~乻",[mwWT45/ Z7`\sc;F`55ޕ Ś;9's6WAr$W 7Y?W%lJh'.ԓsHkR}{3v)xk26'D_DAQ3\- aFtHXbzF rQ /%j P(-n!:qR {Ua5md: Aӛ<]!:@xp57&콒';x8žrq)^CY,K#c#3,-륳߷dS%K0cL]gg+oթՔ~^LohjW^GЦf$=~)b6ZaGv)hܴƶQsUo[d6k<@}@v r$~uuc۫95؇'Cs#e $$2\j$.HRhxVL&6\\tI˻;vo6:dZ/XUˤI̽~!MNjipP/q~}Lzo1 n[. ߀9x[ k񹏐2;/%ꚺk3 KK?6oæUoSu05tAMe*Qj+0q!mW.;l9>q 1ͻ\gz˔lS{v!bxTFQԜ O녆1/-[YDDS_37P1 IfhAыG#I7ld^ܧ= `9? ; Ze;3~Cnʆ$s-BY8\95.=uz,+6$t)@]H pWo]'(}91w1w*](bZQh 8v3"ʥ ?˒1H̶Z@ٸr{pr }8/b$&Z;00 f2o&e/4y[eݢPmZڗww,8Z#+J>>.smp/ 'NU'{$.+ ۱'Buװ/2)q!7$88ەnmҁ.l> Y !A6ʬbvMeTo;eʙifIYv~XKWuƝ[Y+QrsP&af x@,g6ْf+E1wîY|GMi1&hl%x;754`#U`5|>CUZ?hhP5Glʘ&5)on^8wQ9LhUsa) 1i`rvҭ J\fid3W7:Ss2̗k@kX kC$MT|7`lSssl^A\4Eb' ;FXC!"Fp 2 /m90/<֍Xb槆MSyn|fwgԘ7?P_r~fc+>I[<^ssJ(Wg EkM? ~> jt_ >́(JK>ht= )*wV1kp8Jn/ |ZkW!Ưmj{כ6KDz`ǘx&)gppGSSJZmBߩKl5*S`CJ+\طF 8>3߇ 2Jܺ3JfRpF۔(}7]hB5RYn `{ƼfX_ rnt&~ޠkagoR?{p Fx̱3?XJ74 EqaʇTd~դie=GJ'Yh+,8h8{Nsh".g~#T=Z5a/HlR2A.vUwL^bN$',BE2NNk"<٧j` 릡rH97(KAU-ovn@"Wz "%4ό}"c~ސ)6ro/mo97 X\ TىwD7rh۬n;Y"~oV;i[gladk'g4_]Ǝ*q"`07yIt/+xED{Ugߟehf5Ͷus [)9_%cTeL9BB߹u{%g a g,#;թf^ir8X@; 'i?ECXPcKQc}m5gBO;A\;8L|cS)q< m([J݋t := [ɧf QF"f:iwOtyo { Cf~CU.|NsRsfB4wWO2 ^"m@!ݏvKw7A翖~A¬ Fۡ6]f1(#BCNex[9>6FNp`X>_4 qI1dÈb1Wmbi=t+kz+0,/M $l0}\j8wH~~k8!"\ʅ=f֘|L&=cB^eE$83IնTB} y u5$ ̐!Fgꀮ<Y^#loCGV0DYԆ1KO.eW,fZn~^/ځ ZMZuũ/~xNGm׊woo^Us0_;T Ď"41 #6Hi )hۂ|Y;VX⬡KvzQσg>j$gJr©S3; c3L Ѱ Ծ/GAA>6׿v߽~PjleSov )r";r_ͨ.WK9&,~#S&{2V CDP;Z`F~>z65'҃+`/7yM)m(g͒%fbb"B3tKZ*|[QuMSuq`|5o$ Ӥ[#5a ye8\QC?AI1uSQ9aE9g!B\ ]lncubāPM 9%*:˵@2vO }ቱǼ8\Nxè6k 6=_biWJ*XVe!Lmp}PpxK ߥ|OϪv`ZqoTW%+U'ΰ;^4S>j |a1:sz}h$P8:pKs轘j]/Y{9VP3*ĺK`0T \6x7R)qv-3\ڶ%:1qS_; Xs<2FDDEEO [%cOZ5,u/>*-W{=$ |(}qB4gr&a0*].$N`Ns^a&TO|?S!{#z*(vZ {;kyE֞NX{W0[`#K~0 /qk3!6t"1)C% }ClkhƏss#/3fĭxR$emτeٝm >m,d t6GPO^G}}DY[G sZkWΌч4E2黌;'gGnA,3̤&AZ/luY1>y/g @ZD?\oY{%h7Nފ(^M Y- lkr6vҟu!,2E^ ӜTl]FQt+N{e[LKO4e3`zT]n@O~wnTSt!+?>(RSžY)7K-S'\]p<(t ѢyyD?%z_ડdbrpE>ͩx<6sĎ؎5[EqC3O7U sN[V@S NӋO/O^3tk6v?Ɖ1n9}݄5ia* 57o]T'b| xc*/ezW;qO.ۄ⼏+S7 @i.xJi0y7"^[@?ȟH <$kV\!@#;nNy(E[ːbn?к7"zG29pWI߳d } !wޝ _>W?X?PKD1BKSM(nuvola/128x128/apps/package_graphics.pngUT &^aA4Qux E|w\R?u Ԇ)fS]iKq[YZY EKM-K-w[RYZhjljKő&QǏǃ{}\y{][4L4 VM{Tg߯JuxNpN*R⌼K/柨ӡjHTP(~=!OA ;n$A`9%(dB NÈT= jh:y 4@)l6f3++KI -C PQN:H4Ѳ܃߅ ÇYhTԊz5QF4VF L%ϮKg(cۥD4Hh,]OԇP y7 ^FDTC2n:+/"hmBꐽCZB le، #^Ko\E/L{V ^|?ͼ CJyz4=K0Lҧng n: \Ża~W446"[ǫ5ƝSzC<ŇPAF_4<e6Ѣߖ"ϟJޝx/ 1-}p;,чA'B@t3NVܿ6\f~Mbʒ[Ct#"~8`^@qqVZ7>mB!g%.IrQ%f"\P44QfU4RBB >E3 t6)"h`s0??W,]eU)͹V3J 4$ГVU!OQuC-. |2*}.+Ӛ1: 3ajBy"!3.A"АFdP T(!V2a,1H,&1`-r@!~3 7q@[<$c!g4dQcg0;׃M6Ip(%&nHOEl%c⾄R [K9N J(a:}-ӯw T[ $/q S٥dp$%)^= |vxP*x<%(GO^ vcyډ4WIr8̙85)2_ zAcLyӞ5 l2(S Sen`S7:챪d[Ҥi!aHmŵ߿>h *` lW?:~gZN#F>Cv)X.h-d׌pȈTmf0,;Ӟ _kdȟuXv'7|1J-_d %n{z+B{'їaF`$Ztk2FL6Z;CX:)yav}~b|rDxk0G([=Un+VG"vYTi? B ^Ӥ @3\bȤ6K;w.~dܿ>̣Р\竛W YuϝXY&dx&^ n4+d'Qw2##o!e镑;:Ջ6Tp =WPk|og $eED qG"ޠ7h_Wbw&LI]4rM!Z(lrbda!1W`Xh md _4F fo@hKrؾQJi>=CԵMs Y}^yd N"i\yf R_P 2؉Mq@U:%k񜎁l֫ y˲ _JO`]Ma6b19/{¬\EB V]FSzV)qзdl]s` 5 ͒f"\Q*i)uWi)胡}FcqļB~v9]6~@CEHuFU0Hdb>$V.z܌MUHrL8PBYϖnV0Z{׮%=)ШGoZ!kc:=F!d=ޏt8B{=νPjq#Q~G4@|<ถVI%fQyi+J׫|#aZ,^ñWcޅqǬ(ZFǷd: H^8MdѫMAݍfpBazct7%DZ~ $?X@F˭qXQΡL2 rޛ\:;Bl,Nz=VL/#[P\}ޣ, w%ڊ|Rq9Ha03Kfh'iCӦ =dOS5y^/$v;,3 -Oyx<^ko "?sWgzm=(JCFY7M5G/m_NN*aVW3/hbȔ#N4}fHT_Wokk'0yJn+͎'ӺMZX|m1\琔=rG,)b"iՎ.+}96Qx[mv㶇t9IvuUӆlINYne;S~nB}>pDSPt h;J<%n/a\,ubCHP>Qf78:@DjMưНrN_`G2[xCTկ%B2n G;K"=ozU?TT1 kS ;heK;x) /A >ڝ|uZIE_Uw^Y,l=@BpX|2 +klZvP6=KQ9g1.q޾T !؄2&2 ,#F?nna9Y)>}&2 [⾗yL]L?KiGkkn5" QX4Lj!s͕1!NV+勋7cr]hNZ:{b_mܷn翩MӳSȝ!Loàn̠榧1p!?FfR~.n`VaQxh~ sl [\M2+ypq_ǁ)HdbgҘ %s[g?g>׸RfUY4O' jӎ\9zL͸ CQ [gTQw!tZvAP~iq;p9 qA> JhrV y55US۸BEV7t]Sn?c瘁6Xsp!ױ,-8ضY WRnew@)]i ? 5&uͬ<)yozv!ZZޯ.ʻLj˸T[ 3PtE3 xY%v3eWWo:٦׻YXɷ3D4O}k30~.)@f9Zvv$; {ѣ)6HZ7ZMP-:~ZdV{?ǧ%J2S(I.MmW֣9ix @F *~-v+Gtئ n(qq[Iq_{D?K# )>;4|2R*)`^.p~@F-4̧'+bwF$ 53,AlE^>x[5c)2+ ,ä8*#}_T¾wldng)ǖ s` iB,V lj-x p`lŚ W;'/@_ٳjy^> tHxAI>F}f:jv(1~u`0 42FlwKU(f'd?F\FǸSz@ɹF>M8춪+ f'Z;v-EM@;z&aUQSO兆Jo3~\(ٷjE km -zWeC;R-RtMMa$WjJD?d8nH%Qm)RQڅAENT%HҘ%XA!Ƣbcn9O1 . M eKwg% 9ZM2&jܛMMo/: iq"$Ҏ~N]:h*k߯~sy,\ee!>[PH.Z٘-;`[Vq8\Ww{o: &Q|[.R E!>A>rt%z=4io' >0u --ns0nnD(Hp}=m?ʒzX28 H6Zx2SASQO{s+Kёf)8W^[\wFݥJF>d(.=OmgeupyGr^aȶG@LdwPfs XR7,/guδ!/AJnZg&nw5s֠~~i0c&=&^y:iz㘀h(K)/zE c3u䲙 O/QDX})sJ $G&q{Qt2*OTcc5ISꎈHg6^_Zz7NVEne9FC.&vu.8==}\>x_  o@:~yE^ $oẒ#F@d`:vy3Z+?qOk y8a0'N5.c(1}2q~kAtcLF̌47$m\ⴀq&KGЯ\SZ={3ہV0Е4cջiۣ\&+kYZM'S$.r6Eg-8G]3"f>_P]HKKgjr@8Y@ 1)bl#f"):ɀ~Q}T,I0ĬpF!% " Ew@w\dKRKO:,t47^{b(0 tD\%ָHw+M9U&.b˒C\W D  7yc[-|fhFL)f eO;! _ 1Fi[t#njXN{NETs8*SS3Z*`FYJ_J@G$EhTYE9k\ߖL$ʈp \ka)Q.wbCi/iP{8 U>L#YJ[s{ҕ)Uf0 $plgL&;d;]WKUWr>?l{npv6*Myk"̪’/vU}<-7:`oH"P|qV/~L~dO#_hƺu͎ sr=R"xKc:B'}H(-$ *S"ye*+Of5UX{8o*D3ha[2vxcĵi *S:HGX,zl`y7)*v=I)(:Φ.T9#$#K [ՠ=IA7A)J]̾Fmp y*lҨqį@i.+.U}5tAi\[*[N%[滆ԳJ5W%,˭Y>*X/Zo침6nr'JUVP+c\`܀w0Cusظ۪X͡~tڱ, ?٨tO6^lL2T;Z] 9)[L3ІqV[P}ӡ UdB I3{G37iN\xh5۴-9- ¹OoB~4^Û8jh.qKzJxtT}S>eܧ ,@,&̇~Tɒ`V;Bjgb/rE#@d}F$_&7Ias)1P _yp8qپo,8&nA;L2.Oj YJRj /r)?'ۥU?uy:/\P5SzkdjԸ^ 9 .l0' F;RQK⻧ e rV646L-*~ëM3<5u.--ѧ ٿ!YWӹ#JE.>"c{ oI;2 -tH4<[!A䁚[Ҿ3^M9AGޗ-$!]ߪv>C+Al^BRT_4p=R:V eb5]#wv/B*P_}ϳ@AE-R嬻%wY;rݣO }tOFKkѬCS\LQS7 #H\)޴yY7[oQϯ=qh[ڒ J)1Q1&/ivOgƺxлOoЍqJ|T1m~Jt;D>•./anϷqATW&cA+^W}Cxߜw33f zc<6yZHͷ1G!3Nζp*m_@Yvc\i 99EJKY-hvAlom0BS' 51PXNWY ;SGNGqtJ0ȫYCc}G]yK߄_&luI|bH>2T!^_7RuO3^9k~AR-[K8仨ϏCůa?EV*h٤-;OIyu.kP{ocAA[l&A^!V <_W D.W腱!O:#F!?a]\;9k̺~#DS@\gtgd77" 3y pPf_JDΡ{ѶS̼N&+D@,Cz"OR ,&"زBc7RuҙiX :dֹ.)N>i5zTW HM;%v E_ʆH`F^~ ;U#JnVuG./GB^.9آ /!͊tŒV3](`1Xl-1rȹٵkeU`ZtWt/ewqFA=֪ZIc=0d< <@2Gwc7nl]҂ǽ4U&+,(Ȥ0n03o0*bϟ7ԡch뾍gsߪ9tߟ@t)! Пdў [Os}8PItX>2 ܲŜ&>+a4OԓPqa|L壳Xi覥MJXnpoamÝ^X08n *d={%1OmmY.Y,4W^@>4YEf;ί3!LLt|BHI5F 9.bݸwPbAY#6KD,z2qt 筬'*ZXg\y[Û,#L ˵j죣w<Ν.¯"rj{AP֥0x.yY.?}9-`"ڞT&*}/ep]]]OOݟz:<–Hn2&>K]Y@&~@_,]Mą\ [ڞȟ;\{Vɯ62 8 ܪ5ԴKFFwWTPK]1<퍌'iP١^kmnʡ'Kecv&'/hUgE=h9ɦpIE D}Cl~|PQjf>8@Dr="Ko9AsߑayZa,:R'^%rOJ uJߟIݷhPA_EPKюTKA~^xl$6N>\ڸ~dRO&b.%E Ž{ U*z{mJCR-Z5KDaPݎ_N9j;"><j-´ )v__8\k m cݹcإk>uZv %kȍ}4KJiWpVP(w? U 1PEfb0|ѻA7OuMDѺ'ro XԌ!̿Ga;|Wg3*enR2_aQ X f`>mSTSA3ؐɺiIpl/}ۿr;)a 96)էA bmS^;A} ?R uA 19'o~mdmz!éM AUqD1jʾaL)?SjbKPS;1? W jäӃh(phD0 #?47ϋ<mmv <}na-9DZaLp =Y·mI~Vx*CJ=Ϟ.8Ju,P#MQLNps9ŃkbD{NY߯rþǫ 8kPh> `] BxPws~]<,+sDJlg]ձn+KgWugej]x$mi=Ҿ,yf:4rK,X)Mk"{ r%'JEK#9d%xdW׃)C)kfz(U)p"i1&$J%`W*.m XS,@ S-Vz[y~B:]FRL6;բ/Yo۽?w%.wݷhyOI *oǃ+#߁XdL4qۻRI^-#y0.*I] 2 W(;ڧ)soȴB 5HW5DJs Xq}r\Oᇆ܈ZprCvUy}^pZ%{ki"HwN{`i l#[ "PeAY/UsbF-:x=z_ UFC7 醿8BۃKQ\.M˸oH5ebXⵊ;'Dg?AbW1Nf4x}e.JD Q86zku=Si5cev\a{0dKk6;qƬrD8KFc&}O2ϗwSJDURbg@UP,>?7>Vθ2/vGCBɯ'M}ҹwI-z4QV8M]'{L:B}yקKLf8ȘmxPݠi5'Z*xt]Ql߅xQ`\%%ye5AI$Ak6Y9D{0!0a, ΋s6&{e'Fg}+q{@#!o nzU\,A7JB]r[Bv:r@2נ680n2Ep3L~bb;Q-UW$L?ZOnnjj%h5([MϮ_ǰO,O#<{!ez.]"ש-ZAP:Q_fόw) f'd>[ѯ`9S R2yR2ؼf¯'&\ =IļW{58#a b*6t-6\V4Kl1X]vp(ay;SYr|[4rT8"rTCƒ}pKG u0S'@,s&[V6Iq(_0ʠʍ]:.;hHӷ$i RtZ/"+}:=f$c:V.y )xmĸ9l~wN}|R)O/=.' KQ5[AS[.#}J9/ЮUk'J`J* *(KGV0?5#C-|+G}ȻjKAGr ڢo`_ ͮfzyy1C-Eieo}t*!`5d Ltֽ0$e#ҢW\CSYyzN$;nX}F^`ImvwTۋ z[ŴN€mۖBE/ܸˁPT"La^be3nG#׶P "sX:՚L1۠![ 23 $|&1Tk䚁V,cd :tR BԬ!>> ݫrM0%rO⚮#ЇbQ.](yp 3@՟ <3\T=[z:}=0Tz,}oEC쑇^4.&+wo-ծ"fvJy(_P^.촖@+ÖBr s nam""A# xRq"AWOP"Z.o n4bE)WM"xe!q|KV%3@VsGafo -f㿨j3fN lOQ2v(hfWjk Dt=NeIIfmVoPNbUQY@@#,YC?C#> {e>^[W1]k}kI4?}@:PX@F̙wqǥm0Il\߀$DEhEHuxeZmzc։cKpt@P,iѸ 榭C:;k@> <_,[پˋJ>\s8ơ yy ke*)3)oUĮ}t{KlGp?#C҅==!~E.d䑺?LiDPKKz ftM(;\xn1Bcv=u!ڷM9%%Ei UK D ŢB %* +ȉ{XCyў4q52saxKpi jN_#^/"$ w(KTS[IldX9b}R)|N?fڢxcAzf!~}}`^x nd}i>Bq[^[ fìext1}MjVD: 76N޾,.<|X:w}ble9ڍ/XlO:Qmi=g{:YHX9I=9`N2Øn^އ5\oLm0$.Q`\2n cDa!ZZ{ߟ'dӗ#2 91` 1R W8W0'$Z_lB&˗.]քwnm,]\i 1Z _$.;/1nT]GC~ L}&?[BjQzz֑V9K6,*X)}7<%0=.9]:<#Z_Q4K[=VhK'KQ1;1F {ϞU,4>}"/^UM [UɁFx2iGX\1E5p:)j5T / 0zvmz3Un*iyYwgreH6" A iN@h̔Fq@ŧ9"}tw/'D~j\޹*Z]>Tf4n#"99ٲK1NM'+:<;Mչ׶C=*aX("<++ 7 |~ 籴BrǓcyhs/[ZTū$0'z`Ş:? j^#d e7|Y]]A<ˁ$r3'$N';ue Ja"e]~0n˽魉]^YEb<66'U <"LYOjP~i49bxY"xH7eDDZDĀ6,5?4V eAr:։*l9\@wx`bZÈdOBpe7j+aѝ3ˢzoZ#O:|/R\%3`aaon8yÈjvYrxJ\upp@fff"5 4SlMŵj`Z2Cv$a^p򳘭Ӛ2_$m OU@sofuJ`W ڤ35V[bfH}@5_ThVr ܐg1-C:C/}*1 T,~G+vG`Ni%׆\~&)fnIe òqw99XHhOơ4rV>N] tsܡwW===H89/P os.vJqO6% (KgpC?? ẜ#(eIT;|䏦K?E%A?_7b. dׯ)1I')Ǐt}GQU*I9՘S L1̂Chm!K޿܆3tr޼yh{=-$04!0(1-8pdJY/udyѭ[DH^^2͢^F4nȽLXCDʾ mL>zS@4PAb kx32T+|j.IR &ߣAq#[)ӄ87{;f0,qt '^EWr;s{Q9S%g1tՁ&D)mt.Hspsl DZZ5vd0wOi)v;)]AFx;VϫUSS"jF:߳'9=-'HaXiPYWWC]4n=,ct.b}!ɞUfu-QfՐ،`N:_Xdw8 QiwGơ[a|^T^!-X]AqOԭ%"(1rGapN]`>!F{ |Pmo5by&etPo{U*[/nYu\zOxOuq [!+.P-N[@i>n211=HCc'D0/ weK>7M[n$ĖiL4 t/X`UNmom͡ϓk#M~^Q6c+A;7RJLQa~s=1Sj9$*.vyfR {Up;t![Oh_ %;s[::e?PGޖ=(dA4ubE6yCCyt\Ƚ9'J P%K[rЎ`*l .3a3gv~iHTm˙w77﷐.99kR`Qvw']5 r_[:TͩJ:,H.f0Ϻ`Ө5&͘P\Rn u2s(Cnzgaʊb=6y%:\"ts VK,d?B@Z|诗I-8o59 fwbg&!!afsKv mQu)MER-`}_i֭$OO~px'('xB >ppPcڊ9^쯾>*y߆ذaL[~qCk 烣-K66 ii :.= 7<E).@]E@؀z%x7ĚT1ؙJ5f?Čny*'a;J{ -Jӧ\SYM_wW*T~~[/|4:^(}_ΐ3K_8] Κv xY>0m;`jg>Cf̉~C0qѥAz|9ק2dߩ Vׂ~܌ |Ǐ_IΒ$c3q3I_iwE֖-ECS#p6YqFaMNoRjI*,sؒo#W|hs6(./2sH=3Ʃ}Ǹ$tFş*m++Ic1-d6ˉ=6E-3@;r+)OAW# c?L!ݰu4{^5zqϯJ蝹 DB6RWI[[>,ȹ%I"?v(}cU 2xЖ"\V@Tʩ!<%%e ?cd2t.rي3~ +޴cAz@ u{{kCչW]gQwc- sZM C%f b7g۱1]`/nӱ{Ut_*de mhٗ,3:^#u1Ęکoh7~/qcKlg9?ҋj{U*g8X$ *;fBY̰ giefס![2LD 9V 4Xh qttns  0EHKFLg+t]IK[ikYtttUi߰㲢5DFNm >$=T yƙ<;\ xD"cq}$ -/jf !y?HywSZi/Lԣ/kp1O~?AWw4CqmD=}Qj"3°$<7oL9e&"س$ɺ/T~{yށ&HS ; F OrxISx80yt? 6C?`(\MJqF*^8k,YMLE6\\E 9JPNEAsH_0j*s-ֵ6cc"ؼ@UϛTu\["K9Ũ$q vbG*UDXZ6V]SfIWՀɇ@f@*h% {ǒ>OZ Na2vZ<`ҍ@.wdheh4|tQ[#w'031[pma8zW>ϿwԷ/~uX෡z~Ȩ:랂^yBx o9Gyӹ6A*۬)g+f@8{mήc+A?\*$<՛]A\Hf\}hN-eOSjғ04pIɤ,I0}P09}!@7mfZɇN Nȼ@P|~6GS؝;qh}1]嬢s -Mle]зxדqU5WFӛխdV 亮x&}}P/!L*jV] =Thr~z;'XD`=Wr(Z[8O~/!o71SjJѪń ^wx*yD*Ya}¿?s863@ qsѧ*Rыeq"5xB'%D/D.d|ޠeALfQVR6O0Uzci#C' 1q-PmM `CwwESbd}_%E~qey07+!@>lq7qk20ϭvn.圮7%~)h6xR>Unti)E&ѡVn]AqVVjT>-ÝcA\ J禂 '@I WڬN!'IYI5d:Z]EpR)TG&xI)>]#/`f!:G~@Nq2D{TN=@Pr"eoqa*hN2p 䔶4zЈmjc0uw9OE ܦIQD-7”þ8u!ﭑ\_jPԤUyɂ'g#tw C%LFc O|Oa9}w ^tdk3TE`- BL+FɃj#2Gmb(AYRWcΜ9zqdJ_fo?v1RY(atIeee쯮+w2Wm.-{:]̲jظ& p%4 k]]29VpO? Zi5F"UVHp5$g\YL6Cu5=dٲoSw.rf|I۠2 vP݃sҔ_A#u=)ɚ_| 9{IE>߭ IJB̠Mw4W9ou5X Cb@_*RbMF&o}Quݨ-b7ȃrn7N@i@r܀j! =AU= D]h ٴIm=-[# a$(%MqjhjNepߎŊ+8IxC6{obnub`!88S>z;ҁ$TnI8)|H"Q%sIs-8I1SmJ*Qt^ݤ 8/_k䀋i~ׯO1QQ 뎳6N %1=kS3!d|W/>!wq }_Č "x\XɢgxQ`!P sRݖc!Mʆޢ/%kɷJW/۶0LYAG1b;͖ "#+h (H <}*?8K ¬ƫ*S(؜G~/|}Rʜ5l }"h"8\b";kƶ"s޹QX-0pL \ NgxudR=0%X00"f/,/{?fX_؂us6~`h@D-W* W*/$?ߜۚQ,n'qaPw 7vg |nY–Gk ^P/uJ22" ڶ"m-{'!UD`?iz:n<ːf=Nuf'!EMW.#3GZ oS&&Γ.𷑒$xR2aضeg3H۷ӇD5xQB˲;L,ZTƄi=4@ DƂ30aa'bg:PTDuzҌ7q<daDjc=GvPkJ$8?7> uS o>DrMLZJ'xK@X1VDpө_8ͯc-w h:px+ridNdӏ͑ZHXP >&"T&pN䒬uݬNzYƲt# #@:0In|Ŏjce%:qV"DJ9b4y Fs;O~yX aayx;س4`߿H ξ ċp6ܧ!I}]/sɓm ziRTo굪MWRF$'΂xe*ɴyY ۀW^A?4Aˤ w UFi@,7A>9D&ls 簲;u XL[,Ł^rQ!ӕd YgPB/{*ѵ:]bm9ɂC 5X?)Y_q־j#A`/:Nk^Wq_uESMǦ.^dqVKKK^00  k~~-;hE6fєH98-U1#X[[ DO m :YA!q쑡V Ԥg #&5b!Ŷg `*@@ؽvtLLd"]qV9.G,=-ѾN Jm4֫[fZ~aҚ]MN~?RY-rMb4(X͗AGO-!Zݭ#^ͶOc`"z*B;=BgGx}`<Ɨ'q>ۢH -ȦvHadv'rr Y1DN:³_Zcu 70l0fy2@j='xVtuiه씢KrA[4|Gr TS&wN_Nb\@Oar&nYsATʹr6X.gRs-0^#2lT)`v&/J 9 iK;1[:R|8YOB Cc4_CG:D<*۩ ˘%)-mKݱ;u2B6Oi[.C'26V+IGʥu9qzU"y.@Y`gNv* T"c7_yw gOY7TVmX774[[hÜwC ݾ'HAvPQ N-?qJuZ KQ{?E[ѶfLRv 9z;m`9[E1F}\3폱$0*yxгU (Hꎵ.yzx`oom9 1uâ2Ch2tFfS@ΙTZ[dM-Rn$ 썿*PkDi*SM+oP_JN(i<^u#A"AYCz֚<)qnV$\y6|[p~t?8aLӉ 0Z %Zwu;\Qp41/E;,0%e.axxfe:tk`. uĒb2Yl5 [ۃHMa]r, z:~|ts|N}55}U0[}8?9-Ε%pz9ߝMO>>m'vc:o>, z.HNBcSQ7e%[۲x+y,q{HhII1*FއpwJ*Eq0+,~p'Ǐ{neii/ y94ښUfԒ> A-9Ա-GVyb"vƽa0MI ͆>U{ԳIx?P]DL+eviE$wۼ%@_TJݩIDQ "P32]ja^f3r=@tr|+҉*YC#Ek")Ln OzbwWQ͝Tf7~'b|O'q?Ŏ)$Q S:} qJh&*= K1'~um:G`vGBDg-Ƈ[=,ѐ[aa[Ө.M_q'76NZ4d і;Pݥ;D ŵu! @KZ䠟4eY-sW07~zkx)ڙ(yͅCwKLT)Ԅ"@! +u A B̘tbKY* RzD'677uƎu4F7 ECTֽAVYYn&̠ZUҲ鵏K??9#JVp%?hIH~OWl9 2 ԏD8sr6X#9%WF뫉(1n,**\O_PL9Ԡ?ꝚzS,\~|ZqvBb}A=-7g ɍ orZg>G,%9FBinP,Rc +m[L K ?2zR1~f^Q$3++/<:I1qϭyI Ƭvrh_> /郠< h Eժg!?[d)eO#{ u bŤY RT( dbePhWZV:/mCc`nڊTAo*RU{-1!5:SwH}R | 85UgMIZN_pA’:~j6_D ~ڲu+4T4ViaY)9~O;=X$I~ē,ץVSs;"߀vcl븫ɀhO =mEHf|ƞ^alsODey2= DLkRvTX茍 7hqנk}6v2UCUwu(0ͫ[ >Gd<8nd S.HXW=7%#S%쳄sSʍ5rjEo`:Īˍ_kpk#ȿLKQ/iwrU l&|&&Bp7)ua`4eY MG#{xyW\ f~?VkDr3@T&qrɗV9mT-H b݇W(Wt f7BQu1"3 6$O*Q7o{dqV&$2X6|yqc4m2UcSF?(Qo [{mrٶVi;s@s! C"v oru#g^$/LRS4Ң? Z˰lKrKELƶte ~ő{4DG·-wZ@9k7 eJWvSnIoO<IOӞE]gi&%iny11$5'^ AW9ܯ_/hɜ29vV!9=917KNc2[.oW EuDO Kڊ'_"N A|˕~Q~A%~$%f+VҲÈÚR^n_8hi|I0m0ûٚA$w<*6nP丞 EgW v '#xl-`*4 w} zi@6'Lhc?)}}Ҷ߮"I P3YjaV<떷O*pMK8 ae!7r>׳{h6 >>.SeoX8ⵓY|&u*ǧ[dlAdbYrSF:8 =~9M\ I+l6/r<ǻ{r% lnƞ,d\Tm} ?^_\Fie)i5~Y-Iq Rh @L?XjP="$UM sTpdz,pX.7GC`e `7@`97&^HISC MnnuPf+ִ0QV\N!_n+)ʞ *z/pL#%!˺ ݵpgp VͩjZHL)41*m|$IUDqzBD|oW9 *H;'-:,7hGcHQĭ6dk'ԳªALF; H;hF' Tt}LR=F8h]<$zR5?—|GME5VJƪ_3ᝨsA=.7~`iCÛ:jdE '7+o %28JhPRnC,JO9HKƪ+S찙t@j׾ư2t=$ .{B!p 8LTV9:ٍ ؋ukI/{J>˙I%0ȉ"đ G̈́ĈC *,,s{|5wsĄm#J琞TfVXYQ ?TDQ W c grY9w[r:2o!j-ۦB/֥~`KzgG%yDiT3֊ږ\y5`ڂ87NF%h. ֒&]'%*l>/OA\isۭ ^w]b ,c1T%`.´&*-v)̬h DuDC(]s q$ّޥbZ<lʭ]6$$H&u yRJ@>;׮]M뒨uo*PQZ! \}ҭZb--C}^+po!.WB)P [^iM%M[NK (|]<8ƸYĢd8qas=#je,cq.JEeB~n7}VJ!{/:HQ|嶺 )ӝ!¥l6 -}.7 TU /7k喅9ʹϊucˎ*! bZ&C7?s\ ߌ)Nz[4G}ˇ) T9 C6a.I C!ʀec曳k%24Rׁ.#P*ܖnW$G~NP_sHBUem j~hfoցLy^;,9i+3(x If]NLh πw>zȗ_5 VTo',Jш^cE?@z{>I=C9nv^j[>95)7Nn_ |to&ǔc@.N_*X4Fee$;V>ݍ4 8|hU6G޵KnXs:>EǠ0<14MG3qC'smuJ4.3KI6=7?wo!]U*+kU*9X|#XzŨ|/:wm2r6*׿&d߁HPJnѡyUmee_^ED!:]^|lHtl},)=oYcXqY(yU4UG~P4{u_ڝ zyf/ jyKIôǮH^;̺kBi}ʺ9-U},zztul,ч)#Y2N7#l1fӬ,)!D JAv wK3uiY:sdL$h/B8!ے8eO>>uTIEO`[$Y~2|Z[H]F2/,:)9x@z$,&jGTXc`n])Wb Цx0: p,g%H 6]<Im`|=X$j#BV!z<`!٥\7%V1w%#RkG3|UB355%mm?y#Đv~xW8rh2S#\KXU3[G#>tC^R~W"Q?ޏ6UH ՠmm_ts=)EʺpW F+,co"/⁤a`uQfU,帙1SA W{Ljyw#ػZVmB\s)WzSHߍ8@vyNkduu*3ư'es{i$DD W$mMON <ݵARtX&Tۛ 7"teT{\X3N%)CT։Wotf=.$\[.׿m#҇*`_(R>u^+GF͓ B| $/6x93ہd6D~:i pG[^[4^CqlD.>5 }Y>eܨ{ ɗhgя(S#དྷˇڵ.u:^M/tϳ8-,jCy\z,n~d(h uɣm$Jve/uWKl1C7$}hffbuxП4H4I LHx Ww4a :롔ծ O(Ӛ)Mp ={hHE@ l>aꏏIy@]><ԼӁb͙Qĭ qm\<(e{խV,Am+Aϥ&]WG$ w"KoQGRlBPll$p^㸳 ץ tàvG~1>l O;)x"w"Ľm{~N0`E"x iXVg'jdwD9f70e3oen+15wHVVۀgl9l[Z22_2bGJl`VhRũС ]R$WR6&\6BO(#-C(LUtD@G\E!\zT)?!M$D|".ue-ߧ*LjY,ܯ>ڐ*"۟u#Ys#W Vl=Ӱ$Y߰! څB 3?A=p uj.I3:iJ_am9\-{lZV`7Pf}i X絒Q[eD3t+!ʞ|i8FS*ifCDޛx.ӥψ)R{:Y=_&! ɬ҈ Z¸&wГ[^͇歁oZAKm3j+,:.^vmQq2n\8w" PS+2o7AAQ#?w$ *yQЭ1-1:8kǪF8w.xD !aGwt\0ab=۠]6!kjmX?Aյ\d VNY }DBp p~SI65j&i 6j;h飬'\gȠ^[ʹ`/ ?qU,Fܻ3a02jR~mn@!IuظٱX)q&j+'m_rRn`0B .yB3%OH|kNaPO\uO m\m6ؑ«Nh^ghx0#frZFtЅ1?Q)Kyy|HbOaEʢ\P 7>@ ȩuHp23V n~݈ĶÜ?Nwl`TpۮI&4z)9vn}Si!^´]53 0V `S7s\`=QPvJ͘],%:b:\Pc7;w8Ϻim>kμ䝠ޠtDfKK3,I43/%Ǧze6Fc $rQOi~VRx+MJyOKMU;J}YgWV!ٍ 7[Ӄ˟Z[cOYOuRxgN#`,y8hCb7ӄ3$Yң(0Y%t\]V'0]4g+{ٮs MT+vceSЦmhv?`d3s/AX7DˁH0y<)-CsVc0n<2k* y:ð4vm–nNú҃Ul*e&a*K-53 ohiHdMeV2#zFH;uc=v@$ [̾q!`(!a3 C$" %Wݡ}{+B=kŃa^/ڣzҬꄽjQd۬8fh|D ̣9Z,P Nj4|șe ('[d4J`붿KEg,e\Cc!鎨;T\u*Q%B_f@69!7=g 4auuM䂸bSjXʬ ]'>/yHq%l;{y ;UD2$boD*7,_^4RzxuۋnzX\ym*P\kWKHрu[ !$m1mUTD!dR=z͉Ŀ͂A` t,@5a#܍/vybזGLy)*4cw;`ս}I#*񸎄%nKEbk lrW_ }:+b %j}H;0˅+© K+y XvVGqj@^=(\vWWfM* vebRT yyK `ǭ ]5ghP^{4G`D=nG 8oR'ܦ޿h{W&lgV|z4%qZu Lkd5LQfi"G !oBYF{6JWj u C>0"t =|.]hn.T(" j[Dt.KͻquGY lQS>3,y(ͻ*9=2Z=""yCs|z?m'sdE`bL)V:]&i&!\68ju?4+@8qS_!+s:ԟ ٱ,%AUyF2Wp. Ytsn#Bw(1~.c [ӆA (KҫgF]˸r-$ncQGU5yt4Ye=1Je~;neq*\(R&:~s;bّձ? gԿ>0ްVI (^V*LM ~oNp1 }`d]Z}LQ( [EpjɵbjKYcߔj&g{ݷ3ُx:/X.158 e/ =λR/ a( 0At2j;A%^4u;RQ/HL6%8ZXQJC7Ȧ{%6&뢰pUa;olAռvN=U"ä(hԙWKr4($2>AUyzì/q7lB4Blfס*1JdyMcs7:$eե&n*T j8b7Ts[6b!@-mmA޸ziߤu:q36U^_zJabϱ7ҥ'׉?֫ae7e(dN .6{1o_7ݣմB}&w [ۯ{\:I.Ly{fS=gY4EqI*'& TnKVo%lO {1`T=oK; v$UXYT1bp8yMa(rxW\臄_RjnΝkbƗֿd?"}Z"[XY8C)xF]O/H-J{x Vzl&XA"tEڥ>S ?`}'aАަs*3;C0U5nTN:n,cΞiIexbMjSfw"OWc a" â2 PRp?|cLL~HMAUa{+sw`/$Nk2NdH3oJ"o6|>>dHI6w ao׉[0:#Z1nxO:Y,pF|&-rE{z[}Ě]W8muAؗa.nZ %Bt.ZX$j2VO}߭R]rv]~@d{1['Ցq,FE")^!ݢ[3<.t3o{9f%WE AlG(4tK~pOKb# E߂A1v򷻫tE< %NˤDF6:9u׀/DAw} >LQC\tu^*l~sQGvz#n/$Bs|egjLVC^zŃ 븡~ju>6\ɍ6gN2%oƛ@Msj}3,"wӿB9u;w^,^mqy\%+u ml C)+_ ;݊P>-w'R G[IAAb&&pӿC)R&vf:(Nof7zїf=r\Rtjkd_iL|j^-bk ,&$K'/ڕa_mװqNw܋5dDtpٜW>5MyJ#Axzv/OaѓA 7sh3(QЊ [E2ѳܢ p!,щ*}moupP+0 1idgY٠%7/i)mQQaB!_`(h_G^@ʗ! tw? B@4@TSBxY.J[I v‰רR{J+F/FK`9NT/O>jĭR3yaWf4GDsCzٚR ~>z:,v`*"Ъj ;hm*`Ih9Oc`f`(&39Pbu>ȊX_QkIVZHÞ:&C;zlG(mJ~baWɡl`Q\624{0Wh-̓bGµ#@!nrJ Q&- 7~6wüeFTʴP"J, u˥:]xGƦZ%pVkĔ(IΌg\4 ܕ%s gAH!0Ĭ;jho V+>o; jySEՃ~_zs6֥\0;U!z}/nӤpYŴ΍|G+? ~G yۃfm(_ i}vWx i=aG'Xqe}FlY{[[\:ϐg$M^&W:ÅY]0a)f5(er:2U J+wIFFсp4ِXB5K|z/ntLv+0tu<&~}<{ JҒ^ɷ9}бEl1H6`<[s$` ^3³C}9FR9numD0 thީ&~o8 G[2! R8Q)3sf m'tv뇖Թ7u윈_sjz@}p6_3^]֛ \0OOɄ[Ӓo-'ffM}2!V)sE? )B(J\_bH z>D# PwfNXz_9rݝGD^F%W;fp)K?DxF J" ۗ=lG@e`5k ~|hAAnӪI( qlӖ tZW^LM%H.?ϗQ>ɶ^/)^㓥 z4A@ÖE*_$]7Id]Z5ĎK~DZi4[%Ԥ2ezF)_c+U㧤(Yx̄\+zʐŷ::Rn IqiDQl:B@|MU*~Ks@0k \L${a™]UCD\53p sMe:hxP u!;;/O48;%gy{Gw L=쾓QץZ2P%_B/$uZ'r;MrWrn^oqEr-=ygg@fv }7GcRHx=t|w=8=i5)n8.Z沟ZsKL'N冭^C_h?x' M{kjbW1-'4/O/^A7YEyQ ~7X4(.IeqmBQrT.u*Az"cs<lWZ?r3~A5Ikpʶ(}kÉzR@ bK'gfr=kZ,f%cύs~R`YNeiAn IeÞm[O8ur-BG# :bXGinrhDs^]>{: ]K: ݦ'2~d=hiEl s9x +'m81D?Uʙ' < ;{K>wC ңe:[DڒD?=ӎ/]T?3e.9uB,~! cY;ecO/} ]F-CtTӕkX0`OqJ@PWrk"1X4kI{Ē]čv3WD*`Gi1̂S.nlHzt֍\ǒ#2ؚ:R90kis}d#_ߴ,3JE bE@&6s,XÉxK >s l"67\X7\P8tXoLwbL#4:'UͩDiUԏ PdEǪb ZSeQt `pfޞ,ȡpWF&@".,ᇪ@.)QKÅ+;h85 7*pr]8,vR::7jK`h5{5uhyitO灻&H?"5xeWQFIaŇP&(La{S].gg |v˻"+UzN$m!W%BMΩ)lepAD38c-Q6'-%co+/~x8dgeE ]mJ_7-mefXeG˟1$F=(񡮵TkWS޵e>(}su a+G1od#B}\H[y :qZLg@[tmrOKZ^S5j}qSnxZI]w~ˣJ^*ce1a[ZQ@m>MQqh-m^A6xúYn#mĭ2g!$;NC*D U}V =/S+{qH)p=)VwsP8+$^x: aT>⾺+0AL.+B{pEWLVJݼl79!'&z~Nuue ql jKj;@TAl!㟻u)s J V*nΩJ;tYDY%(Q݂l/~wֲ'᙭T9s;?Fm fMr\lAp.{2mi<~+"Q5o{ HG|g^ûF"XױGǧXjRYGC]i'',R x_z.{V.vp@G"ρ ;4ܚ+RF.oyP׿AW4ms!4޲l(q :kbRhK`ބ|~ A&AZZ](!QZFqi *pW,`^Z$T],R1%\r8Ur<%,slM9 m[QY:);"S(r]ݭa.š9jv7XԼf #JXWQI\ivd=6e*Ur%a y奵e0DR{k=ik Їʠ I/߹\Г;8Ͽ&= ÷tzKH-$G/L>i?1GHG 6}%5g^gNJ`X\/ Wo|nR۔FjGC˝ʹ uaK)Cb$kITa+fʂCa㨧!c7}BVYS;j S`HKa)?'Z*|n_"Qɫr*nVq'Mw8 *MFO\X\-JOlX8M 6}<^2Βr(SݺlvA91~_tXK35nƖ<,f>R I˲ 7!]IQPd 2\ e7F-~;Tvj_`Qx*|В 6vFӦI.!  uҰ Ƀ]pGiE/0<4ҥ|tv `Ԫ C߰{ L U:?VNm , t?bV1mmEYq-0E\ۣam^k82ps~C'ej i`3T2/(ץXpKnn:.(#}W\|-Yqq{O Uy a5e[1K5aƞwo}@BA1wq"x`3HG2uoeꖟ:XZKlG,]B$._'}Y>+N>clqG\ZckXZ%vneb&%lY$1q[2jòJ9Sk,B~Q>`h!ۗsI.?H3rI+,> /-yԙ0vwD~ +^iZ'a(d"B_(P/+=wֵbpʋ3={a,KHŬ(liW)7\?:I8T1Dµ(R :ryإ9=^n_5 yݯhhg.cɦeMS W& ǔop{ Β>*~C7e&y|v7dNn@8,*5(3F'9?4Ȝ˥}WF/K\QCFq퇣\=+ޘr̘sy`Rxr0;q?O?_y~r̠#=VJpH \Lp"<`H$ SVtWtoNmAz.7]3hHS RdfC:!{H&nx\_$YJcWVݒ(E)^)N:P;8'l.Fsg;Yye tjzXʛ)݀egsaJܸ~XGr;Z:@ُx?6B;HYf'2mN$-bu ;@C.gRñ?w^X8zy~͢@/ s`條(&%_Wڙ1ԻLܱsKٵ7t9R2=oD(D,@.ųgr> o*}6PcdU7]l"_fy9E?U8Lh{p=~1,+~uOʻ &!I߬:"yȝc(5Nȱ"m=C1kg}#;ny\.C1am곱*ѭ1T d`7z)f!)kca"GF09dO fʸYFIj2.ݖHծJ`Q;ڦlP*Wrd;0iJ}$@UL LjxpLmyDcꘋZJaBW8,dslxXC eYZ[ZZ|BN^xjĝmF_L~y"gUzqExS!!ᷥ0MWYo^1o\~ɟifo*+tqe'ަ&. Z dmU*q]>Xg +^~a:M/!g_JTĴK]mw&܌jҙ(9ldh-ђ[wJ+.Xx.T8zҮE}6R[ y:l ~!с!mфW3 mh7ۛ&g|d^h(D}is;`J>F.x}FKɭ?t1J~۞ؓwp @K:hJ<뎌: h<0:n\PPBJ=܋R+}^…)դcL; XOYh7^ [DY^ޕwDfER`iwĔ['M-mC*kWϵb%c%W&b&!ྯ;%dQ<za/6`"_$m%ָYxi"~1v`Ӱl~ղx?2+KqǕboUY׮-)pBrӵךjzo׼]FVچsodYKLWkN|/3N֙8i QzR1To5Of[ٛd͠t񅊪0K#SK=wVڏ ,?V*;^" @ [R"C0c5B<^/Eȍ1lI䕊tXbIzs4ܪFW5/&kB5+5P"qʒ+W.(l|ɾE5#҅Aւfp:Y}yu2vP 4&${\!,-Mݻtlk1.iv~ŷ.!*(͗/rZJ6j":+;R'秓!3msMʴyrӍQ<賿u Mrcͥ랄Oݜpo 7& &t񱾤)`%ܘA*m^VdvGayoBɣpQؔ3غcz_u6 9T.K6`tqAP-f6r<6fJ`yʂ[H}>bUFp:N A6ypaԉ5]|ұ'w@) : >;ʚ5\J;aUz O,$jd*rC2 Vu 5[Emd>lfL$ %si,n&%vNj'_5 Rd#vm i"h!ʲvDMyi&ho!)ʑu.bsj\+8T9GL M0[ - i0WGZYOѵkmY1~io:{׫>#:[O˃KnZi{8林+ iq▣ ~Mp(^TLHinlDa#6 Ber~vrGPo"xk,J{Zӊ:GbW' Wqw/k8+f "a+ΊzaM0ΌP 2hJпފC{: /TSDsys౳UC fqBݕc!ϐ}_L[#jPωB OlY :`꟰u{#=<0F@`&<&"Xx%P~4jYƞ>@@GZZ]uj5ĔV- v K;qjyB?>rd'`'4gYM-qߒNrZKK -v਋ܮ =od(_z>7b* bj]4DrfnM|pBF]X~0FXˬ9Oˈ,_ 񏳒^Ǽ/hR#,- vRj<,Ffv0Aq|^u|x\D& L.\16R=aΦ3vHsRWc֘Eܢ櫆Yi7^$6l(W:!oNRב$Kb< >ztka&kA$?9om‘8*gXoZ߸::ިJ1u]21Nؾ֝@DFX's%eHw}ިb]'<zE_ '2ZPZ{$`ԅ{`[WOYq2U3u of#")p j#ѥ$UJ[&x/#zQ~Bϑ=M[i$#^5i.|6iW:Ha=PJ8(:8{9d5 2b]*7*@w9+ 5!7'31u@խm;ں5%Ѽz2M#z6glvRjV*Yvw՛ibJ)&v#bi; P-*{ cr^# y|:t=&_2baNCZh>~mQMr//z} /!2,կZi.iW#y{gfM%:Ll #d7x@e}{B$}⺧|ۼoEʮ\RR3nd˖EBd:T eh7%QgbIuXPbPHyHKaQb6fPFj<'p_;A'@=1jK;HaZc~:\ /RyM"![ S BS%9q6J%2OߊݎRB)( h,[]џО)KjS"?P/ Gkf o l5_'%xGGNbq5ٷ?a[T6 "bq_=+`@әVΐ85 tF*2'#m#gQ_é*JTBAceO1[3pU~ t4@'rkc"v`(\8[]^LMY\0_ Ԉ)(2WVeVb-6x9G-*."$㳒1p@Ϗ[Y"82$[!]ɬR>c kDy2t qϒԈ'#HÔZ.Y#$0l hXmӶqYQ``p .FiwfZbk Ώq}6޺VssF0kx_zaǷֽJm; 9i=vE]9r1pNzE}}W‰N*Plӧ^>Fu8\Ѷ&4W#@Z1YN^559uiލǓޢF79xLܽoB?mq̹':}sо}on}zMMkFl[!!Gr~i㵶 #+H+ͼkiUh{񞞏vB6 *(G9 WƤ]UN>Pz QTs2$i64 k?zUTTzR7$N ~}`Ni?x0;:ڈA o^\sgs [h|vt1 Ԫ PH/߽ U{JGJaUO"TAVյ|DDg%A<if3ei! ye>Sg?hJ1i0&+ZRmtAX|ۂS\۔|T)=vA|LZ"{YGh\ -]}0 D-Fno -l~}QGS|h7OejHņQ*538:dzPrr6 L̚Z0C@׹>R$M3 s2 A@ڂr*":Cni8{ubAx[@ i1|ehpq(19mW[\lJnYs37,D*t4(>4_ jdyVTV 1-?YjVɇ| 4Gb[ -Fiwѥ՟쀇6wu)=b.4Do,㋫ !(, -VNWlJהkwdm#Ug=à5Ro8'?~O$ϟ`?5:5ˢ}%Q6upؙfCywK7Jfpf)?/"?LNyF6#4y4R uե(Y^`գJ`aMN+WWՂm̯<- yyaT9RWIdGժJӺs[!.p8 nTM6J<|'"/ و4g~Fy~-1B?UIdQ Hj|!͞mdmjzzV^)r|z|u6FՅCR֑`2wC=&7AD OZf[Bx2EvW B|p.Oǵt{ܩA.jZaxdOKT^̙3pxY&.P6R+TZVÇo+-A`y2S'LEOuqΘP&4='iroucxyE8??F&n׿[n;<+X:ʵ<;ҥYwѯj8d86ȞnkhBn߾y}yʨ1L" YӤ<+.dKg3 Ӧ7B=^kGmszg{>)Gy Qi_x2wo1ng?'F1>LXw!OyT? T/&i9rEq b-mǭ{gc][F+_[؂q޸.ةEs8Thӓ'K}V0<`QY`Ԡim` z>zQWQck]iZL& d|+g T Dv'DžB!!O3Rs&4:t-&NC4r!?y҈Y2MR_{t556l|M/#|\ɋ1uD#'n Hx 7>r\;fځ F;Lܺ5=e=/ ȃ }UY4-;֪DzV|@Gh?\4<dΨE 1dAcNAAxV.gS?Zп5'Z@ъmJz45bf(-H9Q~.la5!ăM'N:lv6viE|QiiD*Tn Rׯ-#Jbɑ1'&?7vG7kiORq^F{^mϝcEx9^̢ED sDϓʳ'xNM,M)PgFO2eEĀv/&C8?"e67zPn}Yi')]ϟizqJh.ARZ-ҧрkϩ\|mhn}#]Ֆʠ& jۮ 62/uTn&fp}cFyap#[ƣ{ggᄤek$z^@ydiaat{P>HJMuRH|먡#ajⶐm+yr^M]`(v2c~*7<H``tXWGbS1bؐGM%+$J-2vKNԔHy,t Y<n/T!ͼ}"2*i6TMH$ՕЌ.^n)9_Tx'^5(ڌhС}0Ѣ}uzC{ Mj& T2=ڇ:#Հ8e (Bߟȃ#{<&Pr]~mh m! iA,DG!1KILa>9:=8#ڊ #1ÖĤBvY,&dV8,լ+=9۱6A.oX ef LD uCht9-==| @ Hf$0< !Hb$e Ƒ ?'f71EԄ\n0'׆a|>oOx5Ҭս{};YKǿ?6;dpe6?_M ''3KfǹP{/̈́%WqpgRW-c `60zv ;ZLgjRtPC Hґ)1i}A5 U8!E+#U-{|fL25pJ=24 `:=|zvX%AAeXΣC@xV`/Đ;ѨD__qM2b d5Ɛ8Yz7%嗠i02) RYHmW꒳\!{툝7f.8>Avɓo}ؓsם46r~}jyΜaOJEHR|) ^)8!j#/ ۇSE*C3<^kFe_gSk& ذ*Xxq16O~keoh:jdrrfZ'j2x郬&ER NvްbH)276UYTSVS @UڝԯXS\zΌ˂S+uL?SUeA0(./Q][r; ~ ijr}1(%&NM0ih)ּ#:%ٍ!j\{{l]Kn[n(i?|L]"m2֖Ȍ "v_XMҙg7z%ϩM"c6y98,>ounu̟J*VGERHpV.$ Q\ʫIw* byO%O1ǴONLW'QtMK3R 3F &yB=HXOb­-%Tk^Ke"L衤iի}[a 9|Cs?VAsyU}zq2;W'Knk{2qH5ٜ@mDߎj[@8e3XήZ|Ҙxi-m5mfw=<#ό_RvUQ>ϠTy3 氪H"Og-C25ߞ#hZ6iYYu~k/O *]P"㽏9v+: W8%FNB5b3a DpiI Tdr",X\\Pm5~M3vkx\JNu}uqcH/P>ѳ.>R*(cȻW k}7OU5k=a~B[S{X[ޟ4LJ4pB7g@wUD[_MR{Iǃ5U͓? ~0ebVQ]5~ LAO<&'HG6mZ Oz:3@1)%uwOU1,P/jNkIYFZswMk-cGDIIV!ày0c9~_AnwfFaqT TۦP?hcL쀄:/Vؾew;|iS߀JkrN~L< pI6%-6.oMTƔ75 _IqoOGt^Gѐ6$V&^'~+.Lv;I4*B,xwvu4 _n_[NTNO2mӂWѨ0V)s({cs)#uj|tK HA(^śR+ڴ $gI'y>>#Ϳ5‰nʱ+?zzՋAx!XZ7000D[m=FotIo ^c'qoN(u5gB$^=iƩdbfHCux6͟g;l5:g/ky勒ZE ւB.ϮFƋᛡ1$,_P i,C溌9`E}TLLDbQ(•*:񆎴?1nnNƄ"MNvQ«T5,^9{F7MқI1ѵiiR|G*LNCl[ix}N&#O#\#V qrdc {΂-Dz}P!vky2> =DZ}+WߨN/$^}b~ufvEÄ$^Eڍ3@nE)3*+'DP2҉.4wrFUs 8͙Jޥ2\`8eE׫/M䕘uz%-Ȍa{{L-'rdNˊ֔v?,ɞeC̈́"řXuڿ)7t=ZS{&EŎ__~_=ȝ[x !l}0;,z3Z]"Bڵ/+0a@ q3Fgiegtm\y5J(J ),t^^ͷU7@lC/ M0T*JP7 F`$vհݜs8 `s 0hM%})}77:uKoaٯ> Y,Ț ~ɉ_ _jATau+&\a~G{Sl{G!۪7,8C'I& Q/BT-zTCi@RbNwWqQm.aGBX ##GJk?1*Hv{(l>FMԳ=z/SmMK(}.|m 2ߊ:GUSv O` ~!19)!BqsK}WMyp(Iu5uĭgX 2&vaD͍kP G5saBHu m0I(#ŋu{ל =t^*TC,@|Sjj7-t-\A!1z<'(:c`2񫋨hoI%xjOo΃7ՉG̺7j:U1o;5֟-̖E36؟?Ǹ&k˼܋ wI\3Yׅ@/I8'WiTVϸ~Ngrw_LbPä/ GmDeNMTMڷI兰 viRFLg%_fe分io&pŦ^$ ҌPɟt蝝G/U_Ls'ڟ ?Cmsp_I녘:n dƌ"˜1Dn~io̜EG>]o--Awjj >#^(5wZ>bq-]鉶1N~[[~`a} WnZM{޲9fy|U絔w  c:ٓN:z > _W/^^bѸo4qY6M`U4d>B~,ß4oܲ.ӱZGd0Ң-..aN.#1řmɲE/븮Zq_arm X+ NWD|ѤM`XF>:314HjsNyڃ<:<2'sY=LaϜI^n ά#ko|Z'L*Rx# yG*ޕ{]@]XO0~vJkI03?@ަo79duIdzvm%㊡#Xt}\C@u5{ o,c V;CճQ/*s{!>OU<*H; =gKbOo;8`'[@C[~*6CK#fe[ š@| wc(NPfn:qer|aB{Ls1 S^XHzQJG 1 jU1q]Q󔛫46u=hNT7>6 tz_(2hw>h[ #8qw,xT  0iӸ,1+V~ϾQnxFg)7XW:?  ș|eڷPBkW\)D&pPJ]L.(ez, ,$͜1⢮ {kpKnȓpUs,zLiQZ<[Q"OaK8 d=ϽxMg6_ 8 JtRsn4irHFETjz5mg1SQOCCBO34>4h')%(]C9]|(1N~ޥ1o'1$}tkǪA./'c$OC=w `{UWy.9Ve4Aħ'Yr?!k8CvkF쳆  {Pye-:=KڈX=l6˗]. t̯>4j~F&G@>s'3?I%E KDP{ZځfϷH 2Pep7wPLd 1u-hmlctҨ\eT[]1jۏ/~E_>R!źiWn˜ϠA2ΑCGWխnw EfL0O>&v#+,8rk>yvV(}! hhhr5($~*Q ![{s,OftD/8c\71䬂nZ0S+6ûSYU h;[2K0e,"[[~I527AIK}%QKD_P3QeS2g}]nR4bY5b[p21H*"AoO9c,,˙V3*{OqqpO3ˌ?,[1Ĺm[$-Z( `9YlD:.f`Fՙ|3/ Y>Yr"/.Df۸r vt;n尘qÚ,3Cvy?%"M# .G1*=܊Mslʞ1!V_ cE׿ W͠iH]b㳦>,Mk$IձÚ5Tгqg\Åk/$Zgu+2NHy)Q wVi33B֠^;dbdڝ bY!7M>4 agBÁ%ofy*5ck:>`gvH5ڂRD\4q*yxؚ7ۆAupDRRmF<7C)Zn;gؾQ.@ӅWy*[ɿޗa Q!7iC;.c-``.Dz 5kx)y0 +V (bzwǏEYe-l{vߞ0Yt}3RamS]e,{woS8`N14z&Ti*F,p؊waO0z)FZ ߦ;ZhiO:5%k3_Ast)oϡ@ɱIY]|=w$Xqɢ"rrhZt1(z ??#3'H2)4{S)X3EpMOnCXbN;ޔ~ގ+Փ*#i+qT!7=NQgvGYJ#(73U1NN~)%<2"ǏH_7o7Ciğ[7 8켓'G<'&, GBy@V缔 XMޏ."y`2b ~OGIO&/WۅO̯ ~@3o|. -C;QߑL?RHGC?㳚ߴKX@F&!0ib,B+"A6AŖTt:j{i~$b ~|qo>qiY"QNOfzӎ5?-]| ODkGoF&Q  L ܶ[$^8PYP}0 `^<'Q:jMߚUA~ğ]JcŸ[_kse P? )0[+neЗ}Կ>4d]8cj/}ZxHa/ &Q;{xv{{x?C96{>)oAs(vR:'$SBWR<4]4t<]_ib;r2[gI@{J©nPMy`x TWƶ`ѽF@=MIQ&Uj 7mw_]so;@;R 0t_!Pثxw+j(R˯{2cY4ݙDz@R 7 ~ 5G)M Y9W*%$[N!x&y ˝gO-iD&Eꉆ6zP4Y9'A[c1*! Hv -s}B@!wE];bQ[&=-Rw{s$ LKqCܽi$;s |?xAەiGȳ힘hVH)9WvD~TIe~VPJd|LVֻ8ݮW.DC/eځn{a|X`VbbPqz:G޵*WAOep0|Ro4JI[*=.kv, KmDzr !6s2%݈k!}3Rc%șxJL7hOAGCBMiT|Xb<ܽ Ynas, dg{<ͼ%U8Zv2yG'~D^ؖr,?U2dogđ\wOuefn;%nҵ^+ SN.b- "ȁU >FvOqcRLzU|p ґm*gG:ƴ~*"XeohgTr #&Hp`OX@ՠ<ȩNړNjZ? {%(q =%}Dٞh` 롽螧R- Kpv?<5}@ڴ gdz1S=8h?[~i@fr{ *[l»3SjV=@J!&LI?ЮKRQT7=lS)Wƺ8:_mm|# df,K<޽.d&lUڵ@7{tA9ϥf9&+X2=leQ' \4rjܛsalD,~ 'uW%t'œ7% ۚFp7bEhSdLY3"LW֞**Ypq%R:%Hs9g-Yy_nX&An_y<{6K&PN>DεuXDӮRU2 ȃTV]lGa)CܞAMW:Zz=}f~}[ج(*>5;:>UM?7@ѳdJGw\ OrV(#"xIA&lh : Įۯbn'tJ̛+cJէǺq< Dy6.5h%`I9ॅߒ{ivd bw'gԳ&z{`*ڢ4W.Wc̠1I.޳^g/ח1]w<-}dU;Hn!zҷ& SU>-]:R_:k]~VB7$:TcYHY)?udwVk=kCs/t|/\ %4&@8nW)H8p$30oci$NhuAnnH@Z3ZkT-Wǹ Y-W1}U-U{8CETabZT/m4Ő; vZ> ؂S'EQ }Y-zhSdgN~j-0Xh%zP Ax*y &HN$듑{VACOݽ §hu{RyMLp2k~_)+=`3LVZrP^ny[&$C,!ጙW,(Lݗ:ږꯂ<˷dV{Ra\L֪M9۾Lc;$fL5ܤٮ'f@ (n^z;5s:J49@hvo&LI ?O66'IχMɃ1I>wsOJFyv xms&mòe7e_lj c+'N@e"p\V> ; [*~Lևl~ã›W ^wJ U Q$Q qeNjk^kM%䵊~ض8 ^-^:+gD1EͶŶz?Qd*W8;MH_Pǹz5@zwdLxgl&n|qj )9kʰWUAQ󢐥.ZO}Aou0Vt AҺ5L~U7)8 ގGSRin;[)oXW3Ui-A]ݻKJٿTf:W5Ygo(bP{ 9t7.vt=̙օҸYT뻋/߉VX!ڽDޕhB$M |{.m RBL|䩔qPm,@@,^r2>3gǹxbS[ _Iz\L/w#싩j0Sh{1 }d>|ZB[vm hZCpiL+.UDK L{,6-j# 1/S:Qa[".4|)VzA6ӆMvuF_֩ҎWM>Z_Q]Np:y@$Ñ좲>zALovq=Fa&  B@s'@*B4}5l{H"?)0zեu+h6o˛IgΈ#]<ZMێZ20K1 Id?k$>!B@WZ?YJ`ᇨчXX Mƙ(5Qm:Q2y_ NIxR-~4-}$05oiw3İ@B(gu"P5d^m'z?GU#9B/KĆ@gZQ.oY a`[$Zd@:(5ӣwxsMW vj t*Wt{0a5ݠ^ZyrH,䩗ڨWo @i;KmFrE^?d-ujQAAq%{~?,|pp9|_b/y GV"ɻcOyPdyMQL+|oMx@8 ;k@ _^ulH$ۅMVajᖰ/ƹ꾭ٖUځj٨J=:7|G sKJDq4bܰ8V? u˳A+ڭSy|SSWI FNx~X_0 yпEЦ ؾq ?x R*͕u = ʓȮFf?ݤVfx;!RL;(!ި _@=1hz/]Aml>7k|jX8&/Q^x󅻪]p3 2E,z)16[]ء_7y)"Z݂X\ΛCnB1 Bkl(yTNnw:w\Vj:؀3r|'ԤyoAZ`7FȼR*(ufoL?x^~.^mkW+h,>O,|<.oܟ>>Fi۟./)kB| Ƣ} d< Vi}}~0xT>K!l]?:$zby+Gvw:<ȨO|38u@,Aof\!qj!k u޸y(fs9,8եkq8o&==9m+Zׇ (1 |q9:)8X}`|ƨrD<-.H2V~@nX!>9+upqA<~TҒ&۳Yu> nO%x -5e,mŻ;#Nݺٌ< g֞ʁȨZ#ዊ_2>3ᬝT}!s3X @X)*cYѸC:^R55<>!9z.UM1=265Atgj-錒cb4Қ66HKΉQ.R7QUSId\V3y>M‘Kvxn?ޝnsYLAcT S5I`iztēh:plsgsaA&n|,|NUTs7>Qs5`㋷ds3>f| RwhfEٺ (aa4;Q\veba"1[nF?* EsMCy?Y1<Γ uݬ/#H- >ظuN fӐ2asa8mF7p| Œtg¸ﳘofuJר1`9G?ύ x/:^̎;cB7AO_ AHvx]a- h,Eƒw.;Q}q%;q5yW۝:R!DY\׻0wKѺv5/ʂd\!c u8j~mi%D&× H.XZR)ƾju&+2>dh` O.P^%R9;j2&{(Ew==4]DwhUY{*t/eflWNݎ3Rl&{nDzI(_9}^ ɷ{Ïnmqw"^B}^ҭ#*i#?|= ?z o}9 X. rPKD1xDiOjQ&nuvola/128x128/apps/package_system.pngUT >^aA4Qux |_ReW .ZZȑpeefKLqRS37 ;,%oVVZ& Ԥme4ō ~<^pr_p{ρ\ojpݷ~K"NAxi7 j:m$~ƻ?Bôw t+;\I A54rw:9Fvz ŌvWbK"ed[ DА @# 1<ѴAnwAJ EhNhF^VVĢ:<iw}sIm򴥹Kﯨh+ie+{ZYJe +=׽k8ca6rL$wK|CWZWS\C-=)wٝP@}8i]4SohaA>r 8<}?ClJ/Ԋ]+ya$GFv?]2\uwVվZa]g&5~bх2f{ Js =xJHi͜/?n1\qP52/#3: 5Hx.9wYmOT<˺&-0.7|X}4 _XV'T $3n34ܲK R̅m0nbm-#+9NKIg>|O32q%u{6ud(2,4Fq[m9c-[^1n nu/yB OF ~B]oFE8g/ugQc_%n? -6)gH`4|fh{HaJŐSf'c$ՖWFY R D2DsL%FL5ėJmZ,J{ӌ m zu΍\JS۫0).0fAw&1[ئ7Բ*<2Z羌^@xxM "z1T9B͟8Hi_WKY!:#k/5z\*[I uCӣ9&ed; 5۴"u9.IlhALVm˛67>6q4 (``a>=hF0gaY6m3Oo-,꧆?aBco8UHc3|j:G^#6lVr}[` з"\7൲PܧC@Ԝe*݁TaO{;gӦMe<RCV|!a\ >yl*L%MI/-:";G)h(ǂZyh'{j`z:o]!Jn|sh_ޯǥ '13ЛaJPXJBSRAo3ݤYo3е&4?j^h/53zFI1.=N> Ӡ)A-=gn\,bJ.L-;I @ۄVV ~EW Dk0'0 %n&b>NvHVmGU6=9a<2-,ut--.A{G3wXk x%ZF',{:ͧEivgK%}c[1uW J .ɻy325W8Cc]@up'(<_mN^UpCT?:zrԄ_TF'N9@ہ5E8 Y[nL!}88;l:'WO6m֚ s3VJRUV<=QJ@:JOB4N"ge4,qf[E,, &p1:c\?tCL@sj/}973CTp%5\o6Qw(bC[}d("AyE&[X޽< ecv*o{J?wPV&rOr䘇ڬ3|U<y 8V)4^>?u/f=|K5Ѹ} b8:C[ B$|1 :̏'1s˰p{=#~cu. &\ʤvbYQ C`qޒ$٦DjUz# *F&zgŤ`y3)tiÍ~gfd.}a)-2U!xxCii6p~|kf2D /[=Q}drjܮѶΒql@+;~:f@s̊gB*DBq}}&{>xDGwa1(Y&^6ܪ\vlΔ=%Ԣi[5XpskIA4DZ7;Ūss>]+ MDܰUwʗ|#D~w_PrV w$CV+'_&xZ%jˑkׅmhڒ$e&$)sʼ\Ÿef[EМ'br;ba>j'*YA]^el㝾DI"s{P:\P^|˴=AϞ¶ZNNIyۂQ*E'bIr'C>W,A93hfЃH&E{dy$CQm,#`M7gMyVwv| [t{Ingb6'8=f2LLJŗn*(W[,|{k{k'F̿D~i)kD%x9Em|naGT#AN/ߪzɿQq3''f&A^,N@U?{efJt:sgd(YJC8}}X IkRLZ~3^f6ܼ)p@ˌΈ N]VC?ʬ(ǫJBPM4nboo|-diAL|篵,#Tp647;+u2d}H7%k ր"ʵ얆 ־g~rл^'Ӡi~<;*y -hƶM"ϰPzyqI58tw 4` X9Y:$^iGQl4.)?lэĪ?j2TSWrfu#d/JZRc'^˃0bk,-YHy`|'˥[hb%v:E F~ u% 9L;//1 ZrI=j{:wo/܁%;oDX0N`r(, Ö|- / M՗hiTDb@>+$R@Hhg8"LGN餑Z_%kp(,n ɚ m᝭4ZR8n۴]fJ?-gNH`#dSϯBPp ;v]:~u>OJ'tn]} v켻k;_tuvۻ'Wmgq?A9Rj8oQ;ޜRhjՍ;:E#M<Eio."8S$?S)j?( Ȭ8pw3D15q$_kux3Y_N6mbDǎUrٞV ) Dk[5,r'=?Nܔ/6+lWڐ$B?z{rDcRkN!9H1n!aY(\] 5P/oC%96Uuk:T 8F:Z>r_EG_ko SpnOv@j \]4 _z#CfبpwRv3Dރ[U4xȜ%."Y#H U%0BRJ>6Z^Y J@ DSyEnV\ )mc Q/P7  ;*{ 0/cR3M` 9B<'Hq}: ĂY{UVd/^$X/3g^'e \>pgg݇C<}ĉ)128[˿ߟ%C-1▽#dQwt8cW`6 M @)/ 8UV/*H"X'pe^ƪvv] s6+<Ifzfh P,r#.PxH5+1?`]cYNNzyK5}fTYp۴h2H)alO`ɓU'S~[ ԫϟՖ!MV2Zƴ0:hܠSJ5h:/Wy6pY-K0aӵMv3-Kʻ1eI% ¶ʷ_ n @L`^i,Bs: TԆM0:v^>ExOb;Wy#[C m0뤯~];ARq ^q:Sf&2򩥇CXEiͨ[gl`v(2,4Fz>WqR?T ~;$[wkJ?1^!a:){IKaֈ+DmzSZqL) `(n,12o}ڧ97$ֆ}1"Ԙ$ *8{mPAQ:7޲%v`vYIC en,aidcG(z=PVowJIk^oGTc9}LH߱0vBJ<&{`8Nf3(Vt.JT&(\H=+^k%!q(1ا=F) -Y&|].#"`a3`ų&*HPDIdHL0Vb-|*p} Yplg9J I N%lNzVF9̑kU6z-"剱r{dUj9}tY/v*51K(. F|lQ@? ;}#Z`/Yf#ZWt 9TvV f9$]m^S[?%*~0F@9 PۤXŶ҅hؙ,+1.URdO"cN&%zsW -6BfB~8FHh zq7U,ރR} j8#~h{1" 2Z #~J :WY5/SM~S\'W ̕$} o>Qs+x% YYUJ{\A# l \1l`tԞwe@Rq*Y%!iY>]Skf@=a.T]j/fH1.Aj3:z+H; j%Z xQ24#FЖUuEGuuUhm,?_{?};~ }fe. Y yX]`@tL)~sY{Qf 8b:KES'%-KL,JY$Us&i'𲥅fyw+1(%wh[G[t\4  l`t eu{m,oɯOtK]);)#*+bJGХ! VKS /RŠ $Ϧ62fe#;LE 9X]1~ـ]iĖEۻ@d\`v*m7<:%X6YkQ''xcжl8W4n>(Xo,κoalOp5` b1_Vh<+Kz*X0 䜐JJ~Ȣ<5u#/gYX /jWhn8$>#%))IW0l(Wxy&EK,sP4 rbl;ҺwBZ!vRŖ?kCmKNlm=fkm|]i`J*{5 s:rF-ѵedg-F,"p cmf C./FO Nbv"v v(!N#̏!H{*̄ʽK()jPG|Z'&o|ox+[-1R]nnjHѶ;OoIk6~aXs!yaxg V_\6%63(o̘(nZHÏ͌Q֫ïB^}i[ݰړ.cNˍMvxQU)OdyQ7wn_m,+. &deqGI,afȟ6Ц셚AJr}e1quc!u@Zޛ.)0%^Hrq)4<9d?6P2O%*d4z˰DXQ9`-m+~*]D'&8ۆ ħnmJ 6OT^L;b*ʼjME]`~fwf٨=bQ(BfX8"S{=QzMYw&RU*h]Qi2+fR0I&6W^h=]<:1i"TTe;e[ѕ(c!򴘔w H6OmquL`VY2fhgWlvݻ | }2K?V6/ 4p %ϋpz@u .R%R͜E'C9=,UW Mm~^W o%6j-s i))wTE { V :S >73fB2S!w-RӯE'5PIA +vghh}4CMj7";*lh`^9b$Y|`qRfi8Npq҈%c+Yl]ʽ'<nSfVB[T ;H+!t>(,kY¬3ʝMGLjϘIxf`~EVY+ 6!2$Y3ƫP_`bl%023h@c{Ђ~ۺCL 9_Ej.pQ@H3o/;z ] ֝иE$YWe"8 N._5Nٔ;~jkNΜڸW-5CaI3< 6{s[$mTˎ\C**T(#|$L]6 3G:6G@훎H\C>EMaRG߱Bu"H=÷$Gӛ4cW 7F *>H򋝣Bji:iO65. Ɲ#MFEcK0.0鬤^>]ZC\5BFgEʋɉqj AIi|g}f?)A`̏З@ŝ(ShhV"V= Sny`%.R!)Aנ-L 8[I+m {#]G:j{SBQCK wUT݉G1Uk%# [>5- %@CiW}6ĩb{ 0pt:c}`Ee'+HNWȞIFZus&>3&p-tE Ժ_>y̶-SڰL 6Psoޏ9turZ?,Ji<OKz:X**79_eM(ٵDdwF_9'-'}y,IJNNUwGn =\>oyvEjf0Tz uYt ck׏=@{D! ZH5gÙ1dѦXfZ\@Riwf&T Uj%ϮzH4I/**ʅ̚vR^%*E`E &-6@,0j|icaQR|id9)nj]ҹJ@5I {^҉$@VXĤE9W ,Fjvzb Pq95Eئחv^%B3Ā]JC !?t"e1Vl]31wfBv3;Azi}a=3*>9[ffљ{twZWWTesvRV!W:c^Z@!+_/+Gb<6A7oPefc*e99 Th#ߎT8rD/|H?v5r9S?5, "r'X"ԕZaˆ˓=PT:^'N1 >2f=%zCwBܢ07tg&&GE_2Yny*cضwk$l]Uzskfadu Ibc)?ėMs, TŠ7=m,lE!hT^rSј 2\z:mN9G` :RY6d}*)͎͋y&ZQS2&@ʣ[F)ߑ; ǻͫ4P[L9/wr?#H0Lu\)W'{C.wٖs!;юGֽԳF`xyeQ> x @L1>i!~ y^]{4MtH_6}͌@u 2uRbpF%ćlL $Mz=(F _~<s%%N꘲+cǖ7{2A}U :s)A*w$ g2:1%L (C)QY+pE\s|WU9N m)b 'QDqc,<ʬ1/V"YH20X{B95g,S)'aY?C_z(ȇ2: mĸq& kki؆FFHXDBrqfC 5Lԧ@Rާv */׻tQPḡ`KlIm}.i doe .'cl œLklRԜ)n#5ՓGa)l2~u9KߜO%ٿĵO< [E`S,L!D saJ'и 6l6a/[G9iW ̓)3@a r``ۈp`+m널337n=tR[}:=ECQdU? }Uaji9!r[:-' .GڒxlK\VT]nil.H^[rΏai鿫&oeRkܻèvCX$("׆mLM6N6%ЅqLYU%h5̨ #U74:$OLFw0P='m@O_'I<= dEJ]䒚;&z$^]SEnZ_VFS4D־4҆D#nlvRn,pǐw+ yS\_HI%_^y#\GP En>M`%/|;;= <*񿤘9e6I#h~ʱUo. zZ ws!lxM:7Ty˴bd Iõ57`.}3Bftƪqk=+Y>Gzz$ZcyI Eyjfp ѓ+Q;"3i\r36zhF>3oM[\{8-20p^E3xȾ8'cuykmj?<\3F"P wmM[Щz;߿5GNlG,ګⳟZ4k_%,"oKW3LF}L:I$~9|VIoӫ(JWB4׭ʽ |oR }3ck#&)-ޯ#QHDP{2B׿9Z?1<"EL*@ #؀zmXHO.A 4;VD"~.X8 [V I'5^WXBFZTY!CU7֠%a$!:tfm Z-WAtQ\]9ԄCn~8n-xoIO]0UqT$s~=N{gd{!!o*+v=x?c:u߹TVKЧF@j& 觊V[pJ@5ȯ'$ UWᕶ\~>mYmj+*6~sν`. ;GV:]^x \Nh#@\&(C[ H Iwr<A%r[]:nn\eSU]0k~b[L뺃PK1G%h*ps' tAla@~\Iavy (2S5L_k}E9qwD1N͹[ZɔE_IClμ"UEj'۝pp#\uPBSРS?LG>Oɥˮڈ>HL٬Xte>a&uԦUȋRг<9uzəj9;ǭ"K.J}i1zP8 ҿ _hZAOLeR*v!GX-笾i˩/IhKI ݗHL:|*zO_oɨ((0L(qc9A=c1Ohdk,' >3trio=&4,T+!&X.ڭ.V"vkfi<9R˔- ܾ4],,nmprW |h=Hc"3gU Z , Gl:*|xO&f}( {o u&6\)?H~.u3 VVlܶyEJ˳3$Fښ#%quU(5 &؋ kg 7PSi ])/*TECRՃt_>K1X9HXКቌǞp!UټH @ԗ.⇈7eJwW#M?1͛-O-^}!w7qB7wJpڹ =uv1_G>[P%(PV2T/}S{}`$S,m;&$"4ȖmɧJ!vB(Di!v:I+jU.wQLGG{1tgH@(ד5]<2%,B-OHYMHu.:jkgm`]f[e-.8Չv&3ᖜ\ҥ:Kˬ2 M6xznbďy*V|4ݏB|Zf k&?@z\.I6_lރW=bB>M)Ϊa·KFqK,j'yn6[cN*\+Vsu Q'mG>q"8{vXy l̾?5>Zy8+$0^,lҁfbVG8jC% ]Vh$X"HWT%7G3Ѓ9 T*)xؗb<"VST|2 h8;^؋>-*e:o:RK@ߣ5XJMm|ɫ`/ooIWmRu 븷*@ceBGkjЗU>GGF~DTm7|E4!UO1NeJ5VTO"9;r$'7U֝L; 8Yoybx]teWv| m3ԾH4PzϼRA~0QÈ )j+Ý>NE%(i[V 6t0;Y71hCC/^9:g`4߭ːU2m#Mhhyz<Nt' u̹3&DjEPjC\Qҿ2=59 UW-tK$Zf%UC-27h|؞L wJf[s8>-m4L]_J$RR;Cy\*wJU6 RxrUo0f? oZ3V?cИv{1me)~IҘ2&a/@J!f4#/_$Bk !9#=Q.zvilG=ʾh4vNu3cn4KC본h5IBmɇ-WXjaqpnC"6("vڻ/CCx۷=Hf6#?)`#vE,-36w^nE A4P셝9޸%!T\w~ 9| 4LNkRQx*Ƴ^g&-5M#+<7Vcr5{ߚT ëC2Oc|CN* f/W!Љ`0`' {q#9Wu ũ.?)~6[p9E3}^TI W>fȫ(2FFỠ)kk(%vy!\x&d+>vW}|!w(D8[<> K^!7$[s&?GLf<}뫂Wͩ©5U0OD[%^5~~ v Fm/?LeހEc':ϖC˸vp'EP52̾dq"Ň٫D FtrN!đ:xt¯_>6y_[HG6o>ؿ_|$7y3O ZXPCH1hC5]oIsDG0],\]G5%<^f*ej؃F]u^C/|ˣBmswJ]$-,.4/yA>짰 M^l/Lf (X7BUXb`{LrHo2uVxŌ)TZbVY1{ öj,We@xJ$&NV,Zܷl $sM#E8A)}!.rkF^9w]H Tu]8$K<<JAܱt4} \i4N.GeJ:\_"9@Qt|*gj닎#ZZZyֶ6 JvӃ*+rDmTcdD1Թ"$nIQfQ?n)W24I;pM%7؜Ӓ=H]`#e6~ d>KL4:3ޠnu{W@~~m=ȪL@6O4TТҗ~C`hDHvxKBڶy]~}vVzzL_ݖ}gfyflgݏsDm* *$P7wgͰ$eE ؁Jzho+ )ޡUݢJ%UD6} r0]UL (;Hw/ E~Q}%b\$j `fjxyT9KK-H{/ڄ3:X:iv뚻͞N%E>"' :t U'&[wK@lA9 {Oey C\JC$ !X!NC,-` 1o.T9I=  ϙn-}mļ]zrJXֻC V g3gѠ0x_~XqD.OCrxiտ{ye\?ftKWrii&8wFwPY+թ3Bl 3}^5_Mu>ϮV7lcc|ub,AAv@"*^ YTD(7a#zJXx[m^%[bE) qA }N<y`fT[3Fޚ03՝q<F(3Z8~lw5 'H.r m-)m}19I}QWTֆ&{4OÄbO?'B"ZN_Z^rՒ;L-DG-))pcds ~JV#Z8K]'%=YJBt  [}[#|-e#V8x`" ND&Լ'93gܡ~dSH4j]lS4?l>E=v$}IH8U^ʩ%cM  ;&s\7d .J<(/ZE\~˚uK/ǩMx&,օk-gZƒ $ d;Ȋx夕ʸBqڰ ,[SK)bzELj GGA3 b5MeJ~TU(x5^zCr^ndCmN[4KRcKńCbԧhww`oā|[䫉_޻u1sXN *dX'u'ҕ}m_CH)Ԝ(@h-@3GMv>S$^ї\ 1JՊ:Hd߼IȜw^h k آb}U࿔~GFdvMA]xK@pV$.hS\aȫ zU͡g槮ɘlaAS 멡N+ԨE=ZBzpkqq2ٜLޚa<6oI k%Vcn{AcnS~\ov:*O dH|^4ǔ? %jf!Oz!]a] kd@qwyIӁizȽE޺[P7#!HU#{}v8֋DLaŀsm V9Y JwT)g*Cɗ" p^C9h?jk3H[ڜV0^:bd2z罹 ʟ&'hݜã`|*NI 1g78įTu:Dm8c:RP{J3._ؗy{jO+sCZIDVn}nV,^&EPOC ݌9P4VZ8ω }uh9 kpVOu((o.Dli,j4}|`@ T5r3ӣ+t{. k9ZU$,:{,#+vZcҮ=VUk.[ ~3E}, 3>'%~{vm){Yka}ܯ8$ _M_bSX _qetϴN\xO5 ?UC}ӱH$Ak~ʥϢ]_\Դ1='`'%VQ!D}q[Hã޶w'%={n<5j?: srY!ɞ ͟xb#}2eK⡟O'Mo=l,}]ψ2 |A+/$4W/;|co%?y]ZJ 9/m[bq.dnPmVkj̷q[vMݺKPIŶ lf IB'0dyD[)~-,)" G%[y]!EIYcݬ+ʾ&Φ _CoUx)NyY R*0j*MyLeI,f] 5'?G^+nH /dN>?BR#k$ vzJJEدm\oݲ9o\=,2"?2wE*LNw3` ?(o$E"d4{[ˁޙnEǫO~֘-m}Juyҷ,9SZ\CbTDTRSXBk:u߸Xׅsח~tD:4jw ʠ!K{gjIɚi%yURG"/.$I&U)A/mm^q$8?k:_|:,V%!cRMƬLښKMoJHxY[^+*gusN@23r5W|Q u#랫ٰ˾wEr=ZpX<ѡ!c?el~ϬҸeC-FP ^4p.u?|\nCN8O\Odmzm%ܲ5_]V{'˿~( }Ly1m,-y,LS>խsKSo"_}=4ى4\("wO{fDGK?e#߻W[vػ=7;Kx͗lCa en'ʹU^۬|SГ0<[6gwS7`(o7 b%ߌ~ ۴ڷ56[%{OMOx'sn`(4|~QfL+wu8 -XO|P2yL<qDҎG"\gh+Eǥc%Uzymde+o:ڨnxe_3Ezmo4/` 9@,bQ:2iMwH9¯_3ۻ$:HX{ץU~u)F0]jWAeRꝛiT9T͝[}B'K_#~~FԊܨ"s| 7Y&Co"'nZxX.I+E%F˨ QD1fG۩FqpO^<ǶBn^~H5l,;1KoN/t VqC萩H~K6RI6G ATS\bgW{Mear8 Gȹ\cr(aLj;mrЪؘxd=z^dϾ1B‘ ll̨g&JS}X]F~0_[.?bbqCA־)ḍ*M5bߢmhLiH3U;&߼x!w*(!F;<4?trb~Eb--) (ʲ;(fzBb3 ϛO|ײoB~O!g:ykOCWLw պ_{W^&lߟL~2cĚjL\gmԘtô_|J]W^,GDG_(Krv3PzHqK/,Sxy ]QiB5zjk:Ef7Qۡ|b@ZI-Wя`0tMF0өa<%+͇uU$$WHQ-f0MMM;@v[F3cADbBUEܶG&Q8.B?P,Ֆ͚ 6RD~$̒jR:EjI#t/jQ"|rzW)/LEb+9/c$ )^gnќRNN(uGE-$/M:{T.=;z궻֞ mZECjagmcPH{Vc !'tǛ?:ƛ ύROJƉ5&TYLQ Ivpk,nYە9~-޵)i噰LL]"C>0;;8%*Wo,ڮ9)4U/*7|di`PTgz8mW)YspE≨ѓ' A\m5J6K{)| 4iM?0KzH.drhJP'!/>joq=Ooj. Tmh(e( { Dh uЮK"ry̳#40T1i]tzjߦO{S9!xI !Q' :&Kŏ&#Ė V,#9<^ vn6'F侻W߽lMiY։uTD+ 4F~u/,3x}`ްf1DzՊeCԴ!Nn"}(E6YŦHُ.9!d;IĶi$H덡Vʵ@J>O(9^ GA[HwWX-6ͿfiM8{mUbhC^{TOfވc##e~4o-;gdO>]t=ž4NW$$?6*iK'}[[X6? ^hsDzn% Avug#{9$ `EmQz0uX&&$֦RoWۄx.V۷)wW"uAXpa'Nۂ!5P]!NLGsQh''g7o2C - ʯ?DS)Q.g1WD}a;g }om׮o|l0'T zu<7DƑ<˞}ےJ(%,5'oQo;zGFTUn\ɷ^kǂ2N¯B/\\ >KǷ>:,}1MRnZʬ^-i_X|P_~L} ǡuxYC ɣjSM-~4Ts0ǧ{DT Ԓ7$4XtbWsLf#a +{2o;KFkliN\AQdx4+'($GlT):2abo[N |jيt!/,""ĤTU۬ǓTVą):Z~]ޭ#FK;C} <99ywP/J9IbqUT';)]hXMc%o20'us$ ;N,W!Jyk-bcU$ OM/UDŽrR"#NNbMLu!q ty%&ts+3-ɯpLs'H}4`hXp F^ڡAׅ}R6ˏbF.Wٻ'Ǧ"{o=_|o#5:g;7oe,7;$eKxtB1{TT\q㱨?.qT5{s;%5;K4Ct3Ikm!]YZc/"71k(.^8Mvr_/?R"L߈/_)[z4sObk~9 x +C.|ŁHILu> yudLpl6 :94Pñt6^|Q]tr]0CYD7s1$,XxHvRx9K\ffC(jz"toQK§<\IKn~M_f9.D֍bHkwl߼ʰ\|l!T'.Eo%N[PҽEǯ=u^>>w^0Ee=t{G$\wx;]3QwV֯_ 6('l[F,Gz.@.Gĕ}0oz']^Rv<msAWQgGsWDV T>8͇]k:Jk*_C "{O&{Kt'*R#e5ýR3/6j Ιf\&ڔ*M6S\ ks<Tt+&rTs>Vx LXkZ|ԬIy?e3HCYY6qY{"v/̤\؛W&.oMmrovvBn 6ϗ1>,wڝ%Z/?bfl*\8tt^Sr0 /c[[S5 u8hAb>ᶪ["g O {Sʍfa MJ`ӫwcW̕߿rͥ}HJLeB{Hykb?@\ub$vOl>@Ck2w㼾VTo}eL(0X;&H_֥ޑ;C"AtqAU?P)xYQxH2* lλ\iyi'cg7wv' UUpïp wD~*{5 pi" GHQ%]hNЁf&ı8C儯ėOvOkb#Id\P㾓ҋGV_:K`0KT޸g7 =qQq, G 5:Ad Á,|?Z6gMaF$PiEE*K#p]yt_zX"Ֆǐ _qhtV/4@\Bn* <H%\#o}n}a㢄ArU?01I iV>0Q_yxTԋRJCI#1 *Mqƞ C v9?_]M9\UmeٖhP;4IZ)Ԫ=h$uwUFr^FLRY'j2[T7!8*4d|~=܄mCrn\c*A~wZIyw/"(s(%Eg姑ļhzE,c>WukP֮P8&o^vc+}؍tP…~$TF]x(_Q+ a@NCf?P&NgSnÝ.Q~9ka*)ݘd7.ʈڨpswk|L3^GvF0~8i2DͳO2 L:R++./eiАJG7F1U@٦\YepάJ2:v7N^!a_3W>Wd:yiAC pu..ZIqtU51nsΗCn3LK4JK>kN?_^YR2*{peoՈS),uO>,}J3qƷ%ӐwyX$̹/ρgY/6)ңP"0Њwï| qqhfۚ5Up5b ޳I-H(2Iu:nF-zDip]{@\I;O?~*=C yM-0I[%F^R\fDRImKKP6ɶB˚Rҙj@Va4#{5-o!îpUwn Z܌n9%dY| ÿ 2ݑXXgb4(1;&v5zgnE tf!BFM,хsad#X^ƢKW(/nCdqOGYn&HվtAۦ]V 7|~{Ac9+7m1KWh7ήvV Bδm5,v뫘z_v4 >2DNjU^0Go;dE]ņn0Nbv'*WES>7IZ^Ԟ"l؆V+zCnˀ#O$V﷑xcpra ĵgG$jZ8|eݾP3_0q!O /5ytEގW l`S['dl2 ID[J 8WAӁGqI-gvŢxa/A)D8KO!گtGGNUrYړ[`ؙ!eFQ_Prq ~T71S!;W&L3CdNunLq'_2ޑZћ2D56H"4}ӥ6U>-CQb#'QWvG> wvpl5o;BM)w`~Y ݴɘnٞ58syCZ9ar ۤED~ j.T>J̦'ҟѸIć$1=UzyjCX+iv^ylWܧۈpU$o򽻌oi wd6yq؍扟}'F(O2nبWCgF-UCg-*SD{/$XΈ}agWGg1~B؊$ƛ?re"Nt7lP*CK2~I( }=ehxn \(x48͗U^NL_NwJSG\J^*pX.4&tze$X֥hN> :8=v@Gy-b8\2jذ9O=_AWxt'v 4|wWlefsqh0$"}%HBI+KTgH I3e7|\YԞ=qK֠(jڳ)Mb%v!˴ zlib%qNcYJɚ?RmjWtժa{Ӽ@F*5$a9ORG.YJ|Nb:gOa0Z %/(aWJ)T*۸ %k?^1ppƑXw4Y(Ԣi 0e|bWKo3FyZ_sϘ#~T)Tw(rff"E_6fӞ.23,'em>O/(;3f]L2%Z_)Wѽ)50N[t^O|Grx"Q(5\&;<0g8R% ?6(ELW62Fe.(;qN3Bj:D5S~L+@|Uj-k+V ]\M$ˢJ#zw.?A|EpR2":CȘ\=8R#G}IGV:9S˞'G+u_1(ɕ vip7z^SYY+l~*y4T3Uw$נL]Z@#gڰ60+Z>b-t򝣬^IEHp{MfTv2nXѮDZefUI.$AZz/1 ti{/&1QlIRbx+M+YFr&CCeXߵ}C'(cQ=wOb?rpR$51y ZWe+ji[4HNO\c\yA{1EՅLCe4]X{,ZPGj9rB\Ąصo9A%7T)$e6ߙO/NBCȑA2YGj Fr#t#zV`sˤ'zv fvIs䡄u"sX!vɎBJ'[9W~Ԇ+nS/3p4XCL[W"'pvvpm'yj<sD_LkYWX b"?_<>W\Pm 2|pZ:|:??ާWh %)Pos=`vH,\Ln̊2Ӗb6w$ M]݋-SFNzBXh{ !s|G|GosBT? Iި~iwO] zAuhߏHgkښ.G If4$9+&sp*t5PW*֋J=9B^~3Z_nYNv DcPKzʙ,[ҵ`uQ [li&+-2ׄ䡓R*jAlVIV)Nm t+%'}KVYu@QJ tbrz CaD3$)[o&ԲF;G4Bh%wV~6MUi\\`L7pLCwpx=K{F ot"#MdH ;>Uk,K+xexlOnO0|ooj6s˗?!s ==/yxpoG^A/r.kC+>Zav&p-X]%)0>nֶcS2}6Lf1 a&ZR*Bcz,X"Je\)b|b}LzUvjw(&a?{ʈᾜN!I:Q # 0Urt<(k]W!d/OR_%B,W<:mgr&{x\:k,]B gdemSMjWªt/VR$$O¥++N~I%[&|H^8-rյ8dY"+U~ u-*^vT3Bdm[DD@C4յۓV vCǍĭ><~ߥ9Ju,јR m W8ԵHfþ >K9eɩR{.ZdO /‰]YpWV)anX?y@!`ܮܶ֔VK+o!|lrMLs\qz⣚Xi %{i,'9 .:ddV^˶}NK2f?)ormEA5+Xsv?s[DvGt-I؂⿽?s& \HjPM3sfߞg#ڛlY,cM^Oi#?֝/ 䝷Mx`Ғ WgBrvZ61p?;t\[@c(xb 1!q/^c(FKGvO`lq-BZl~G2$,D4idڜl-=_e sI9$xE̥eHP/=P"8#15U?G.ۙ yW_=f R) W訬$߷-$^5mH;>,vqw)ϣ.sx'#5>9ZJ9wD89! 9oKt{Eu8P<KG !u+ʷ%'qG{ vui4'٧J0k#*6{u83e98eh3/e{ 5tޙ^Z0lZ%kðXWRVPT+Zo28?Lm_BuHcW8AAlD(Gg"jSD-lBۇ>2WdCr|vuˤ)IɡJ5/C ɕ3>b5oB#{tSfc=:~ONN;;ƤzBC̫{N_4)چvzT.kăh )zE RF{N4sVzR'+>N@ Eeg*_J}X)[ZE$YɈƉ]#zЀ/[;x= D#Jћ0SU8>c` 7#vǟn!kT' YQk@ה[9j+&QEhbt }j&%k^.!ڽAG|쎭!+ |O~_p!W%H!!K4`"O"9KcoGx;8޾tާt U#BK$s~}h.Kr+RG QjQ3-a0]l,x֘Ou:B7bk%p]3G׷2XxO@ in5}3@\o hYu-"e[\QrK{4,vP%p_!?|c7W?uK @@o}%]pۯYj3CǼ+J-:nf,~/l咹s161-2b)sYGqD' \EGB>Mȅ!qzlGy$ u`M 501zK.ΉЙ?nmÅ'kTӵ7~=U0 ׂ;O&!s&y EȿGM?*ˀȓ'Do_Vb-w:zطʰk{ǘre>M]ű}QYnHnvxE ʤMm&Q_wv7N4)i`oC~@헮S)K6yC"ؓ 6n9:Bv+/yz8;0NNZQniNyZNJ#CDK?S< f&İ!2@Vr"]#_)i%d&M;ۛܩq~h;kf £_`QSf""΂Bd(Y _F=OX?ZwĒfF]ADU2,3({*]|zoV1Idcu_ikZ]Y?loUL?1.oCLq^[$'@HӴ$~UsX@I@n> "1[5twEʹ};hWLӐ~+oڰe#uA]lˠ נ_N[A D&ij Bx;]e هT{e'aZmZ{>\PO-'Zm7n2=[8aYS0#AALl8R#LVC4$~V nVLil`D3<?om۹%E9~mNkuh)]*jdt6s}}>:?%N=, w]rW˔_Ջ2Ab,c3FU+`AZw <j+yߟ4U v{eH I/.Ih|o7pQRpBǁ^@C$L0&5p]TlKj:/4owD}.Inf0x0Sl8yr\0(DH[n雂1a c  Z>EK2mڼ=cC~':fptuݯ=3tТe:A7 ~kH}_o;7Zrr'CW=der;E뮴CxU @PiJ[r _յl!CzY+/_ _rw~`?f$hhmbe{[͵z@k<8XLQbU7^AQe/4c=8wۉ3JL\#)a ߛx'ў{:-^{O84{ܢ j3I- Vn?K<hI]6܊ x>_d5۔:Zv Y;sE<?եٷwjp̧&E5D>Rx|f<$ްaX}Pz6{X@M6a!빨O5h]4Rx |5\Nד minldD镝#$wkJo0լ9L>m4iq/bt§ð+u8_I84'A ӲC ąO>p!7@7#"]4yKnj|O @ȼ$A7mă q1{>w^7<)#=ya| κkG$URRZEn+T,b*fSG gyX n/l[\>Yq&Zf P#AZJ2|Jz 45bUʦz$֭cTlk 2U{cq8.{c~{6ov)a{9PxƟMct/ c- v-7CʛZ9w!${ RQ /*bMf7՗M6\57\BMs?C!. B$vJzI ܭ{mM(%'|}Iۓ2[BF3LхKnUC  6mG rEn^Xz10%' `/1oKZvm*HZ`ژSהD #?tGSPKD1PMPg7<5=)nuvola/128x128/apps/package_utilities.pngUT N^aA4Qux -{{S݄ w׭{!WShVb5}!/%zya 8s-]$K]BY JݴU=}hQA!CJ˲U0 dw%H\.Aɠ' Q`t +gjۉ^FIz(yU!TgH}.yp@B$ʘPu4LF9\T:,!/)fZZ<@Y_X'>ۮ!e 0N9(83L<ojaFކlB##$HN}uk84v|IF-Jvє4ۙ(Kܔ͡?M!P1!BwrrI̬H@a2aLۈc1cS qkaWv4.g22S obHF"_؎_!n/nPQr伙7["jUT n%4үE%p*ɬZgIy -Ph擐;lE{N cX],QìS֓I M,=> ׻ h/}Bo=< VVSei]\MGd|ƭCg<Ѵ '~J$ -f VJVo!KG5Nњ!a4H}TY_C,:dو=XʑHPx[%Ou -,k5VuJ&udf%ȸ R)i1D1GϗWP˕,w )>9 ̜=̒F@s3dc09"Hf"@+HĭlWaxbuK).{cR ﳼl嬙OTNp&5 ֊Dhe_>o{dCin!.&bbֳP6!@ɪ\OW(yb& L^ݸj5;#L I( :1q#ADu"[ Bb!/'W_vh9m_ێla,`XϤ\;̾ (V.@?_ H_օXB˶s1vKv,&}XqI%xAH`يv3' {4ު3Cz_^<|$shf,NCr}\ 4I20F;mG|ܵ(Q,obQ{oilŷ GTp*/'Hy:Њz֓WGRQ>`w<ӅTD`,}8IPMfR 5W|#(ZiaΡb}N#<T)/=vt߆MH;./,*rs# o v=sşBk-:qcnJTMzăDMz2(5k0SdHub^dy4 Uы~)1{Ԁv-8z|)m=˳ꈼ#m `sQwB ɝ=yLb?ϧ_*9M^k9N7 a2¢NpknhQbɷvS LگнJcfu},(t^5"&E\& u-.ٺtWVL % {fM0 3=;>М 3ϴ+)DtJ\ hu?8ǎ_Pa#f9>]aN 5@`̃ ͝] 53n 5)u;Up/'Ʈeh0+)SdrDz4=xlII: W@~4|;g靻1޴ z˽fUYt'lkSN!Ţ gv`uyR9TX' 8iaiע 4]#z)Ƹ*G) *؛/ :ǂI[HZ&|mubw߃Cu/-fn '#1>ҞYq)9ᚈ >x`=LG;*y򰴄CdYќOЄEvk8X  vך%Ig?sa_ yhqlJLԩ:Vo&GS[*^/qX :S3\3܁-2[h@"jN]1xfȽ)V3VFxgߙi izt_(*vef pzA\GX[N3g|= #xqE4Կβ*:c*d.kkcpXE1g0- 4(knGKl9r1uYh V(1d׌L6Y$7vyӏڂV4Ţ8.Љ;v\%'#OV\Ϋ:;;cu-ꈋuZFNd辣gT BuG!-rgӟd:f+n>ٶ5 %*[XFR[rA2HMr|Xֺ7q3"r]kr=%$Z =P6ϭuߪЌ+FGcA]urvʖ8z?P:q,)g#lfz¢:v`ԇU!( $"Ⱥxzfw'R܂bhppRa=h(_%O ǢloAb t'Lj{t {3IC?_?ջtE+1R*WAի ,R=XQ1'# /2VʩA),J|?p9tSђٗ`VhaV]񯉕C}&hYY􊊭G].++ұ9i<_EpJr҂6&yC#/^j@1Fq/y7JWJ}go/qe-[8} .fK%厪5 w\l:oKYmy#Gj q?'݁^rEsTFW>U8@ |U`ff&p J }ď۝:kf(I[h |,9Q04Ak/L:"ˬe12 /` -ýFc:_X f+4D38oH坶giF'8nEV'Ynlv˨7@f8Iqk5$D7O46ԣc,rq0IzKe;] U:JXIbfm,>+b4gg#/͋8w?$Sl6t+}*‚C8Ez=?Yu0 1Fv?k!CkSpV;mapmUo!7u"ygIزpkc~x+ ,s& ?GϾ0XJjj_SΛS]DOlH))X֓Gl`,A?6bJCJ`8 9 "sNuTS]g&9[.-k7E~:]FKȲC2E;D'AvOW/jݽR3 we:'[( cY*N3C|d\cxn\&+ߖM&ϤU2e'ȗt$nQcGɧeAё` TT}t0@jTQ{LFCQ`14ca?2{:C'4P))Va?s|Qv؉|}vvl33TΛiUKg&73VuBOa}/K|җPzYv# l]=#yqd;q9/Hxt.K2T 66yp8[ `*ǏBf6kiD<L!V,wz2Yqkwuih7a~WI a c}WW¼|F z/ br&=aku^4NWrcEXU*v2BeX?J"DcX///_ ##84mIH$RaQoih~l6->_ yYXX60s_ݷ\lF|^yI4{ue+)[nCR=w?/h-V@WQyMf4NKG}9fKa钂t|')}"˳U -a8%͡Ci14놬͑kz/|i[Hkm2}_C>V`W)$sϓ[{:^܉;R̈aÓ؟`]m۶mCx{{GþW9i}*K x LH@5 @]D \ׯ?YWw~IXPpsZtE .#vE ]'&(Ob5}rݺ`tWvc^5c wWYwGyt>3ZߣlB91K!,|\Μ9fcݺ1'C3#o Vn?v6(NOq̎^)ȕC]*45- 굍=['9/Iû6Br In8c&" x>yW(RejƍjC֡HttwDY)wk(9$ ٶ~4==}yTHR7wy{t¬^'NYᨷށmՒB̊z E\S6|pXVSA{`{^R;hd6{~jPNI9a'Y")^y,?Nt06-#H;h8=rH 5@$2~ `R/z?OC,sdwÎ(~Yy q#umlV-(PeAr ԫj>@~|^=:F?.*B--Uxuxz'4tmfѾ}ыKg',J_68}F[Kʲ11]Ek#H*e17;:Ƒ1C AV*If5 XO^oDn*25 u](⯖GIMօXcG5,;rB cU }$4G+2ܚ80-isavsW !η5Flaw@ &/"w3~NkqGΦ)TgE2f kC4)Ql*܇ ='Bn StTU xK=yͯ#bc).kڶ N{hYlTP*sZ@v,K~yN'zRTgh$5%;8P Px r^z/F_{pB ݂kⲇ𤻮vtOObWJ ''ôӻJ[,hYqs],G&;)o|m\tpAvgd' Q4x#5P?o yۨ j좾)J^C 9a'lk}2mf kXv/{R-5JGm+i\ӣfV0+{r#5{dֳUDq s1b{Qx1hw fĠWxX$9J-\ET Ҍ)(D1IMBg0x]27ѢqћKx aAŦ^ɕ-UXi|heFA QaڱNy* MH--G:\ #Hf.cb>,쳈yKJޟ F#d :52Jbhz6We:'`?9q@DЬ6d@p mZC49E{ALU: XFq,V 5S*^ nDhe&=+ov?(Fj,d. b8VXX6%%ey)Ćdv*8L|ڑwIMjREEXk ίRSq_2bAHkO4'0KNDXl#L)0U}]36S#y ͅXoB~5zF@tf5ҴDEZJ/_[F? w{S<Ød!•@3I]JOHyLuyem6Z.6ӍѪ 7Wŗ ?LRiG^jDg;"f ˔.5UMnˢa$]6S\/iAl%Γ%YNALӡ^ᇢ?Zc#jV2+5kO }}WH '-4^OH< "N\~O:`yS[>$crjeL<-(H%tR:}y'fG??Ϙ5n/`CL,FEyޛX]6| Y^pt`n`bOFNccJ K֬,g'99hU<῎]]]]c~>VoC'ն|n#is z}$=7ЩAi:lY08`3CH4!G,;+T_Eኊ{A5B"#6&*#wg'^]PvnwLh'VN75Fz>rܩh9pngH[t7}O*sNUU.g7*Z=sV߮3ג˞5hj^AG$st73ηߌ9\󼂶%ݺ>V->+T᷸ȴ+^t>l\#1TU)D}̵ᆦ8dby]1 dx71AsUmwG*f~gɚB;05 CwXbsy8>Z Ņh7KYMydNHhc Pƹ:6$o.vy{}[i w#1WZG-S,:kSS(C*Uk,B-=lׇ&8<z^??ns[&n ppڣόSZ *-?4RйLZy/ߔ71sQpz[!Jn,x;}jvH1 3M=8d p*d|#XRU~φG8 XigbgNubs^Se /f6f8Ө*kP\z% (cprUkfqHJ |G.عMeItdh⠉XSWN y= ^XY쪌N{bW,y9BI NvMb/?',[\GۦQdf[4~)r 0~`Je!u?ϏVf><\(/jmeU]͟_$bAv?dd)Lmpa]M>¨5CɊſa2.c^}9?dpibDX"2YqjZLMSu+'SA<ۨ$#D$^I㨲lKYϯnH<۴ڳgf߾G8vug JS{aqCj/poĝw!'sr\u_nW\oM:aT(#RcTD[w`M~4?35B?RKПu7c]oI.ElmGק2nWݟb ͡)SN:s_deS'Brn4e-n 0~Z4`a[yheYDΰ#f>*ŋDs|6AنVG*!5i0JovF<,TPbC_PS9ܜRG@` 3CQn]1 ,_/"h[}v'if).F^gBt~:2-0(=4ئ.riRH%iT*&z!Ҡ);keqr2Z+KTzimǰL=,-9e0N2#g.=)hCj3S?;J갃H85u {+ oS\1@ٰ$5q䲬 24͖ј- S<wh*#'F%񒬡# <,6m1~ɁP҇$I +t]ѝ܀28Ĩ[_` dL!*jBcx"GP#FHHs2]dֳu[*w@aCf/O?4ї?6H'+\ pgH( B&[VTHO4MIR[0,d4(oGOR4/\J~`YɵŽP ~'[s2ӺnƓKyvr 3u5(drC|6I7"FT*;75s^@O<^ ^'XKVNh l2dW#Z9\߭v%,yR J ]T`ʚU"VϣH^$,63s֭sCUrU@PtϞFXm@؛vBkv2(+@a0eVUۊ])ArdYГT = +> ^UU,3i mds}nux?vUå~ÝAJ^;uܒ`eI& !+U4fk뤆E U_GQTX3&3]B߲bd{=":*U:^u Sz=֌QǭP5LOdr[oEa_  |NVpxL,nABؿ}p>ʇ>A$FW?޵-ls")s$Zi"rݽ&.5g[[Vrɥls+ WgE-z!" ;0S*qAkbܴ6GvȑexJ옩+"NhGK5Y[P잛x br]'+[ 9H) ˒mƾ%J"Kc$1c4ֲ$2BؕFP}:ss]\shkc, ;w,P_YdHsrjz!'4=yyx-}{{ݾ[,],qtA,@MIx/8 H?0j)=L&W(K8(%@bqWbboj 9`?jw|[ߩ&oU$]1/wjk)CXЃ ) 1}[K)\Fp[f :fppL5ޝHO G ^׻.ڛyhV#NOIv߰lJ=X|8}WmAb:۷`+Yh޽y6ɤB86^cA }ylq֎D*)W"CmVV!K a`+)8$$AYumŴ)6/{7)a+p0AXeBZ 9q0 8?޻*OcY_xȍqsPvH>*8%0^ ? ,R^ ,g:*"bsJI2p((I6̦^ ^b*RbpejJ *-PE.Wm- 2fB bbw^gtU^ԠtG8Jf!a9ʮ7+SQ}Hj7-L PV>e\˂aB$j:L{0iae?m>}!D_]*%%_D!ၳh6I8N~Cb(T$y LĆmB4ǚ9@%]N 1vs ၖ*>/եlՙCOJmǜ'h1Ufd "!_lKTAނ_&D-КbJ^Ţ%R`.5ˤTļ za5EHi:L. 0!KPuI\췦`Zc_.܀7[Pc&YفڬxF6'rl s.GwV@+I拠}{Qm&@^j0PkDU龊x`OF D9U&_E_^`-Tk4P 28.G//LP,8O&GW{{B1dmDGW߂=}<4h74Hw34<B0Yi&j`AAs#M#tzߜVTeOJ?fBVg$vM tN`6̛v,Cz;>P+AdD_mX{`/j+ gm0=֫TꇡZ'}p<~ ߹qsCuaWoel ZPMg#X]Rz.!ڧ;oOw+Åt sW#tڙ\af $u7"8;!,F`o'|iP3t18-)&Bk͟'7ё'>{m:PuƤBB~ݵٌ|SPIY fv@>VЧ%E#*hh_&y* g*OVZiTYw#(lM |*sw4Cr0ÿmݶV*Y Rܷxʨ{O,yjiKv@6[v2zpSз-I%B< ,,X~h tD =jOO oN`!=P31U PXq<߇2@O#`ح)]CZ-5}_@@J 8ֳ է ]hg=՜ V]n5 IdTg3ĄY$";O,E9`|`;"*iDW*yu"wdJ0cߒF(C4,dB9@qͳƌ_ uʌS̭gUvBs'ePrc rr)A߬Vu)Ї^f0kfqҾ=@X=\S$htt7>&]A 'L~ȓ%5˒dEI%M[noMxvA\ VmCw[,C (T8Kd Um;1g!03PC0>) T $Wvڰ7̄,QxNUjbz8କŚr0yJӑ.}NTIa\0ܦ q,`?|kn-6=P,+,+KB8ë 3*a\&{ϓկ ik4t$M ϩm~@rg`>i4w/9H{1%sLw@Mp,b| r'.e©hFbZW"̳Eao|gn-5c)A2M*;Β6^FAvV\斖5Ml*,YD}L]Dqv'URy'"vt<5%ӌuX:ϟHuWz~MMuSW8fZ4IE} }R"vift`bQIliC|8T)AoFO16k邀9Ƶl̆y1GA䫺B{ʹ#gs_Orejo>l0V)Fqz:djw]`;b&X?u 4.7۽*g9],2>S.3|vP4Dgg>rG/v5{z޹@[vo)E*_?D~OoO;{kړɫ#I 8,V#WP ƕ˾>#\|2NR1Oł{3ؕ9,dod}/T{-XS;yU"bA'x~ݳ.|GAy]PD_5t 7$6t˿tCj|$߂:q`7CQ;aǁuT,sLyڨqwĵ$&N\ReC8ץCs?d"Edlh:ӦɷA;{5.5.l;7oDW#,%񗫩Vwbukb|"Zq4G)dBGsTĀ;.K`yY;V嘸ss0/xGM"BS `$=uaiLD{S&>77Bk;go#y_XzoO.[?`>Kn#uT`᪕9*rƂVNܩǗΡ*D{1{Do]2M'CnBpE:&F|賻.b5={mut=cOꋤjߞc5Sc`8;2]ǟT#N5 x+Ls1Eh0v};Q9(jloƻԹz;H|ڀPp~r%l0e Q5^VœQtMx4ٍBII%5Oݸg}ʺgBǖ 1ZFx!ʽ#7|ۯfp S~f`&^29= &8%~G{@dTȺ]Q/Nkeĭ[z'#}c6A>Aq[窺> *S˹gG k9%6XzU7R+iOszp{ټwϫ+%ٰTg2~NH)`Ty!?9sySw̝\[Ewƍ"󲒾s|zw Y QvVeBTlzCpI*P#9\N\O:/YoI4xўi՛NHȶf?}S,` %sM@|lI]7:\4ȗuͽm{h&2IOyϫ=xO9k3o)zP?܀:bDeLxeh,,Β" R3[}z;O& ʗ,!f ȗua^ii"F90A?RToDGAUө"{prRGe-)Iͨk$=3bOMLx߄HA| ɻ/F"Ep{Ey<*ިTq=sNp!_ j_.sLv~wnFf}/rCr}w"L8 7"7KyĶ͠*M;`4\.t{0=!ߕP҅bN;4%^(<$ t\M\3(#7c^w(3̕eCH+o Ɗ%Ғ&kلOF4_zS;@la1t"`B]rt9>vxebφL$qA6e Q]}+gƗ~"~7代jm9;aLh1S+]a\YŸ& VY]YaA_.q_}_$lS&ybR"q"ӵ\炄VlW5{-v( 34lⲮ~vZPik8`iK8|h@঵@yPlWiڻj⽾5L_55ʤ7 RCK)ʽ >ƧR5<<1tz6sč46CHlGf^J"S) x.UV-+Oxq9W>{?aKZ)S:}pL!CT\@ڂ ܼqǻ;_(j}cٛf394U&cg˄b k}23I!,8*uW cŢAw#Xd_  ;gLރY.|sQxC~/_J -G٤R/煶jo%ܣqH4㑛o잉Q}p1M]u=کC#@bdjjw4vyt_Qj=R2OJ7p_ʄnRWыZPS 8tG8H@Whכ/{Rlꗪ6Gb83ٻ™f'RW^Pd""2,pnF KAס`[t➱}:{#Q/ mq5 6hs 3{ >SY:Qt~TYg2Ea IHsKw7zy;e!)]y]D@d vFk˃/g'-CJL…ZJ2ߗ~P´q荙~Cx0z+o !P|a !=;#Dc_ ۣ\nyx B&|d+iZ%8Sw\UX@7wng4¿KmmXK+#T-u`Xs送7:6u ]$[n0wϋ߸C(hkJFaӜ[:Kp.7s{ MѴ^G.`>H'ү[Sj:BV_8۹; '>(;ܳ㤫-b=W1}ӹj$tRZ綋E^Und,pxIJyntR0˜!W]ޅob<ЯᓉȖix >1NsXqYa]l 3Yy ǰ^VoyG_u-ɾ7/aά{ə|Fx}S,}s/ `_koeI/iR ,L1' yY=jȾɓ˯uJTWf+ rq>|^Hc~V 4Y{uxlvqhg%p,g| =7}[f([hbXߺJag1yFnsF:3WnCqn׏&1ȋI OlGZ^-̿<Ё Wն&/d\mAΉ+ NH;mD/+$wUFo}޸(z{&ԑ?́]~YVg/^|^;ѹ[{EhX׎VHxvWL:yҷάY(_pĄ@'-I̖=9D@^} )Un28TK̬+Hul"i? _gX=xg4e Jl `h@*&'ߚ T]> |zJ}yniSzOH%оޚ98o%0zO;+T) k]YJVlVc0ڸ4P#٦E?&'\Wr7qAK^yҋLZstu7?jEY uKpaYJ_~?"p-f\ \eĄkpRNݙl'͛"Mxycf@zpLʺse1*4ޕ]8sHPVBȱ=Dݼw9qBFK($nTۼk9#v]wE/J@(8|w߇f( 71eZcJB4yƥXLgH!ԒO*k=1 ~?fJ!IJW w]_1&X<{Eoo+y3GUƴ@3dS[V\eؗaﻼJxz%v ۻ3%/=1mՔܱ}Ze*n׊4ë{r _lC5=1nب ?HzfRсYݽȨk*JFXfWVrU@BøH&X|C?ZӬZ dнIAF78lM+u| UH:nJS rIw}\Ifz ↣UaUHFEIЭԛGM{-T\"qy856 ;**Gࠟ(Lh Ӭ $&tOr y+y=01"vN.CYmk8#ڋ_gE.h>o=l~Ћ]O=$ b{&"d~*dB2,uG_k#/wq򕼴X3&YGvo Q_Ͼl ѵcQj]w:l%_nT0LhPW7no;Cf*G\b26ݍz8=K;<ᇄVA((܄y`lx `4WDyi|]v w$rs~[e4?[\3aK94oP2OC?$X_m`"xJt| װ]Иh\"!bm~wMt7>);X)2j .O wcR 'Gۜ'ͮ+0̏Wov29~iw3 ޞ=ʺօGnv s$Sf.za$|mƄc)rQ<Kw,Q OvGz~},g]ȜAy>=d4~VE~#PPsu~FL/ۗG=91?_+#J/_f$DQ*H;kuw_w5Şw6p^#-%?kw#:M&{s׷mXZוA|L2sl,Ac@7vqOcƗ)VٴfɲƝ-]]&-@قܳ$kL.tG?:TLt%zڿd'mnۻ7>QnʃS/J <[&?|BN:qXUڤ7ɷMD"Fl3%!L˗ Š/jaݼ)y%fF1!7Gӻ(B”ԙXh>OIA9~AD#L%_cHTZxSʇ܇hzCc%:-:GoÓB /}*bG糗2~)\0}$x{TG0 8f;$ 7ǭxxyOG o8ɧ_w&ѧ,oco/Y}4P8A urO7yy+O7VhOEdӫج W:_^ 'U{^/ wuA?D^6c˓_;4 %GцM`k)WKQ>ۋy/F4HfU}trJE?AO7?uyK_K 0l}9EOX^dRF++KPCZ6[WN+A*%KʫAWh1QбO0oI^BR۾mG0$S+lFn$3fiAa%U,PpຄG*Ss$p$׃H58l\=!mX<:485)a`9=5jd:vnVa@o}W]"{Z{nK޽۾pyCt[^a/KJ᮸2/Aqm~I6Z Q]#Ђ!zRm兙ZZ/3fp}=-hyߧF ẊNt=B]FM!&x-.Rn,)*Z# V!Z8<i)ba*)}dʸ Sɠ) 92 o^T&Pl:.܃(p{EemT\k^ă Tqq?tWԃcz}ab-x[&PlǚJ9q^O@)*(Aq!TSBϚUB,:[h\ljYXe ;2{2g p(y3΅U,- f(NT ٯuK&Bmn٩̂ۢӗ(4~Z|~[r;p }̠s'` ?p6I5ǿ}<!\8cM"8UKlHS"jGe"Q) os ո228-Ie0F۴D; \ַ-s5 qX `fk>7ZҤDeIQ{aGVCv ;zŁ 9)T&耱juP8.E@U7k1b0lGi`=:E`D{vĿ:i7~0vsy(C [:⭋!w-/$0|i ΂$A )|6d TpG|KõguoւSU}3%3Y:B[Nmf{gÕf-1altu"څƟ1gx|g~^>'+#f8OKO?Қs}tOsA^-j8 .悾ߐe8[( +-]Y)x~u{%tqEe*런~*s'ۘF()tu^}'/FQ"A_Z?45i@9xeZqd/NVjX$t˻ "JX f}8t;+qȬv@m^L W+GO[)uDVMx{?b.|v2s5ʫU(_Ȅօ~*`a|gwFȓ9o` k4EQjɊt ptiXMs|6yh 3lJa25 <2z%Z75.A]_v,RJeZyFoRlxΘNI)}=~],vQёmԜaj})J'A5`/T7ɞYN`49a_]l FPq:L1w%c4E ?ŮK+R6Hb=' e\,LKbB>n4X'O. J].kycK:b 눈Gcbph{LAnٗT>Z91D6|+q-tq:fPU|`:L(9S@gU<eJRu0~k[2!Lܝ!Hl_/[))|M {gzî?̗lZ/W_ceA4퇱S"sl4WIH3Jg륔 ܡ_/~Ye~Ks1 ׇG*Tb޾)'[ f,~+ G͒=I?=mCqdˊސ=F[Ikl" r=-5! y%D[g*kY]SCѿW L()P@Ҡ;} ji^Fx`ܻ6ͥìsfU濾uxK;sJ@ĝkQ60x` g~*cZb`Mb@趈DQY!Џ3iS'?^;̬{EE 9Sc/0SڢH $?g0>@cM~HP ^b=KD뛤뎏!*39$"(4TI6;gm9&CxNMMX$GGETSKs~ Ԇqf;< Z+g ,z*aĐ7)"8)&T bcvSnk|=|xA!Y\Fi]pz=UPEtam6Ļ%ӳM'EO IPOz(R GE gtr^8Wyo,c heL̈[1L'&`(hLd!$ yIJ #1->+QWVh'MVrҍr#lb;9z ڨH:@eR+:}Ki oGm8A~,"mBHPR$OŶq#] #T].;K(^`읶+EkmjY[L 2^ۗfOAyOT!%"pk!(*yr:H]gD*(%6MwDl]"aabc\a?PKמL1h{-/ nuvola/128x128/apps/password.pngUT flA4Qux yXR6$8`)hie)91ieuJ2qx,+ˡP@ &2is*i8&VZ/}|}\l`u=}ZB MwjΌ߇6R)"FhNV R+*vQG ؔ8MvEf~8Oٕ)Z$JS "E3 [!vK Df@uP]xBWP2xh-:1$_ӡ5,oX,GuShP]&u5s`xD2Q>]?o=8~al4 nTD>TjZ2 :&- )+kAaSzW€6GTI?7@Z&6K)=2{V c}⢩ 01ir$23U0aKʱΓ4HI+&g[^ho]F_1:NԷ~}6D{'aTøX8bjvAw0RFYEkQtѽh@t[a+IUΌ~;z(,o$;eP27WE"'ЛI0 2Er+އFW y?V~b%crY{,.:#ÂR~3=Kz6k[l(,уzP(|n|ؠu 3+#$ +ѨZwA&FSdϳ>G,\)ilmu;ݎtM  lP)j' TǷ(2b%:zuoIVzI<W < $ܐ}Lڍ:\`˖’{xJ)[:g>]ĺvS_ٙyZk۟oA'`O?He xba3PJeɢ.+{IavqBޘBZZ6u(nKaV?ȬO8 D.WVq_P/l􌍤H.49i+hN{d¤Az"oyEvHEb2`ϼb9wf&-Կ;  M hEǭc{ĜnVY%7 P:Lʖ|&eU9u ]2g5%MOWo=F^J)v;bs%lI>G="ѻNKTo'SC+SQ0ݍCIm93 hYiquUx1m 3](?&ӑjv5wN?êYZҁZS;t[6dn@Sk27Zʲz4PjRdNxN v}X)'HI̮zԆ$a4] a0|H\7Kȗ"=/SNZSu]0mnT2  ȱ'h.݈#Aɺa3yNGih\4x su,@|A6x[@݃uwA0B.Éʃh0,;d9_o6\WtxM$ƾIc7D-%3a@ uN/ )zcYqrIeHP%@b4jrHfnR:AjUͬMINgĿX;5s*hZc o[7%Q[f;j VDMlt+qaj_ V&gOec @z8[UZo/cAr{%'IީQA7"FϿD+Fc;ҹnjx[>t' N"픥NP$F_|2BNжLB`QNݳln0d|5tˣ!H)kOȣLg-/{LG%]QJxVrcϝx2rP\6z]辢X\dDR쨳WZ[,XF~?\jvS:mt_D_(ETWA"ɕ{ӕeӜP!(un'5(uhW[.؈+%Mt._4vO4#<8P_׾_ѶMH9a[:50\#J$>TUY]Yq+Bc29-gJwuO v8f[rɾVht^x?; UK|Jzp.Ey~ƻ4nI6+)vrgoihQΈ5)cr].n߸u?'rN "OZSUd owqVs>X~'6r8+F o͈eK.YӋ'\ݹ-ɼsAUmHt6v ܮڨc dCs8m-Xs%a!Kw5oƫsBθH&Gġ3?<` K_N d;9OK=CLhCLg=yǶC/ % ~9b]GbuڍY 0Y>k͚xz >bc2L^EuGÛkP}PnRUu_Cjj7b[rZFx6c݂Ncv'=s@Q$`sϬ#|P!wxƗ߅VgnI- OB@ 6Kq]`h_0lּ2WJ P~պ*}2zdZt5)ix|@zYԢ,ӐOា,lك)1"6qс,:%* sw -!vZwk- X m e? wTԔI89xM.l"C4Ë&l8u=KMkBtD* 3$DzHABTt7ܲᒉLd+R3?/!-u=)\[aMT)3^Dd} 1Lh^-1˙cc3/W2u.H_r%  YSG>cc=C*aG} " N.߳ !g+A/5g!>p[DZ_K0r"+M"t5j㷮ДwoꁅLk6A/se2aXr3sZ#%w>a 2blpISعZ9]Dw+˛B44;n/2,pHy̟1%i?Fd upsLR;0,}$j4#>0\%lRNi1.Չ!`\9~4/(㪬D3I:L1S]ޅt!ȿePHQ2ַ`1g`9o"0#3MJac!@0NGwe7$ u >GTlI|`޳txѽW D8)_ibs)DWXo-g+r;4X:)>Ϲ%Ė#B+FLK?b0'Vf،c9ZXp}r4AraZ7mL](xoĦw]*O9uI4~`5w~nG4+RAfDǼ^CW_?~;*4j#af \ *@:YܖYjnrᙾXLfެGuL {\*p}+~[(1 $:?KgR\KAQoG<`hn"k/Sb?02Ik*S tՄ1{FFR2#Sӵ69NrJdJ >@s@:g@8+//KeR:yWA}J](p ʟvDn ,VaX!oQ-huh+2geC1~CS{2m)bZgP3ϮvítQXr*?qv=tu p&.A;iz ~zqiŃ}7'9mcr/mr}p2H7 *tn({ÚdᶄT^w:@>U$py1Voy>H|apԽ!3/oW*Ë&_yBʈz\0j~O@ A~$0qgIksnօI+`3i W'h!R?^?qcbR=CFKk8}n DO$ uD+AuռB6IjVC}~VzvBt042; . ^|FWxql>r L |Puya.5ٔT13_A8N弝Uߌ]6AtU!pnr7kYƍ5<9bMLB!\W#z^_rQQ= /.ywp(;?8So߲զK7‘17sd]G59Q3#sV{'l{]JGI%z,>yG'25Jg{ξKzw(/~h`_!\ߥNHՑV<f"3`3oAnttQP'yGXvpx' Vdc|lRLk38X#mpL+ h:ԙ|7+nރk'|Ϣ;2ʚcư!F(UOU˘ԡ9O߫l,Te163ꇓJLCb7:k0:1ء،ҊNj)zI;P^VHe#z|ZPeDbU# ]S8^tͥ[q8EHaxrb*Lo[ !(~ fmly41TUcOe[G/G,D<\Xs?[GaۻTu-;MZ҄ëzV:)zP=󭰙_%"&WsFi႙X^a?XNV'~&_Ϡp܅gaKxMLKPIiZ@/GE,>% 'HÇ <ϹocP[Jܿ5Ycj'aÖ+7Wr†R]212R9?'[ NtL/'=L{DQoss 7L MDg /@ʉ\AS`+?TSǷ/Ɔ4{XK*TٱRz,NnO'#D47I!fJ)G1qvӉ݇[uWRR-\^U1g=<DP5 _-IBzguuw)ohFܙBkPw'not!&CC \qAo0+ y+N1aaB!\oA3j7wZȢGb 9Ywm'1 TbE F~Z9h~ C]2o,C^~ʫ%S!`-jT>]>?3D獭 Am`KYZ% )  cHvL3B:Բ-xj ؀?w-Xhf:ŁKiW T2i`z Ljzo[pgX)ԣ{+@00(S^VMK S]y?h󐤗R" >hhnYbou=-6 @<2SʈW]E -eK"'|I=2%i\=ɘ[T(?ܹU]*U.\Nbm`qQzB^"Cie.k&F"\@`yN:܏S.5uG2,vWe3;R&bxtg]"|qg?*B6*>jrZ܋4ʁ3sS8TP4..A" ͓=x.ӈ?$bյ@",vU.2lt4e ~HoMťz&+K)zߟnʴxN O77˙: lͤSR1&b]ICS_9`gr'|PؠUt= xܠf.gCze믶Qem+K,?y@ >e5[}>A PŠ^յʨ !|wI/d|=~.C`XPvHT w F)q+ :6:;#I'О?־`d0u/1pa9:̎$=46W{t [!%,9ϣ8]gs(Q"-j%N4^ȀnرwURdy_ok:Z󋢞G0,B"-" ?s\sٰ6`*>`+)8':FIG F+tF@_Dk[L Ob,tF-NuRޭ N4ywPlkꅌ?ڽ9rrXR0<SW?֥98WC& isjdø E h膁s.igjYhoV׬Դq” ۝($.'&>Z݀elh\1 V=|C>^9K Q#./B}JϬDk$%n%~$uF *0>)4#cc=}ݶOoo?!FP+#^jf@<٢Ne #'mG1mۄTm}-hCvҵk`; ? G9BnTQN!RBGR ᔋzH#tAișkNkrJo5w t LwKF m:Pk N, ^ۜ{ǀŅi5}[?g*'tnۇ>Da ^kwp)˚l12#Ze70y.݅[52sԨE*'%,_DYUʄUE9~ie%1YZiH?Z͹R[Z/T"ůo://&Jٻ4Tҫ4+62t`!mFts,cwPu3uZ?Fm] `:"w\Z0 e+r@:]%#31RA{0ĠZf5^ۣV-KĢi@K _/0o;KCBYXF f jo^9:b"$@8 /a[5ո$K{>)޻=Ђ?0' Uf`-d4|B\ RZf[mu,Wby5\174w6,Q fTṷ̏//xiYFai/Z0MECClXΣ[tYf3~x/<>}M $\ZnF|UF8qOsKQ)ZM`٧W0p܈G)Xۢ+Mt&,8|&!LiMqd-t^YKpL2e7ž,@93㤾9z(Rt Dacj\MRR)K)5 Q%)[oZd;bL r7|B'" j-TxT00 } h^ԡBN-j0.FTNNnc\:K>5+v.WV@Ԗ+oH)SM8UAꅖeJn6n~[Nwwm   `ieプc3d,fH'VMf`&f?RLˠ| &eRz ] ͠&M;YS\(XnCP›)ęDhv$p,{J?3kpGu hv7T5- B2Maz25G$]z(@O[*ax])Q ~/c=ybT,kgsz|T}׎1EdQߡVE:9אDC~_x7)'R,Ζ+)4ł~:C *S1bWi/huwgBosr/`*J  J@ud@TE˾^K_ דi3M^pc[FϲLRjb K cG.z1 Yj{ h^6lK?PKڞL1ijDE nuvola/128x128/apps/personal.pngUT llA4Qux %\{-.DRرH@\x$aSlȠȰDFM^ۓ!b}h%  H^4;G Z=,X}}lk1 2F-T=X\U)ՔjBl_HcK]Ҭv!G6fbHKl |ul+l$0FZ^ιi} u⌋ :9feGZ[,NY[Zz@v6bh#d] L0tIs7pے/(dwz_nS{^Ly-k9鿬KyҘʏ? ddׁc{ ڀӦkHԡ|UB_m Gw&wEoVM)ޘ܀EDSHky0^Ul:u)i{yY=߇%T^UHC(mc-%.w@0Y ߕSQ2ʺhzZe J-BQ[ǿ׶ƼQl'a[tV w "vv*eo Pz rBB|̇U,wƅFh;h:~𨣇v2-*3uZWw#un )`Vv度Fo$T\2Hp7^(am$?YY*v ~- gM#M%N 8cd Rw|(Ҡpa7&uy DT2qоxs0+DY$ }l/b If wЂ=|lm{d#`{dWOOymk$>Hm\pgp#<- Y߬] H0rxqʘ;8$wVC(TȶLw쫾V.U $@K/ s)S#n"]C@u"L{kJh{F|_y[JVLQTI f{ Ki#klHv?51 ak!H .߁ oth nd' P$JZvnq(:R0$"n -bt Khq9@}<eqY/"O2At7QzOi#\|#;gj-n! pJy mr@а۩[BdC d0/ %C3!_Eb}G^ʻcPxihHfBØT 0ݠ+kK #Q͕tQ<<N: QA>TkN9$ۼFn=';.vLSz% oޅsfJ6JH$1:";E$[Tnt(2\el/:RV޲cKԚЙeimU&J_/^V1HBzdu#c͊wh b O]?n8} "NS!; Y$m 紂V( oaTG QA,]Rw znY/\1PٱXeFQQVEsw NcV7WXZPăRua@.l%S_ߦPD,-Z 3f{G(7#BȢm%->@F(S)w++!Eq )|wӎzKKB(n X!6 !"g |Yu?{)סe}\6/[01JeE$i+Њ!ywrU1f0ϻ,1 L"U :e턠#u! NP>9PA@9Ƴj'9CC 4: ĸ aONUo (([P sRr8HAVTZ;6+*R'밚*f܅tnFnW$1[y]K2цzz>Aqs/F7tB)yyVeCxQ`^ SpY Y:3ΪȠ[cpaSWV>U|(r+(W+eYNtĵ;NN/ճ!-PЛa}ϗG+f']C1gE2L@.,'iH[^<}zFOKmţRWP.?ŖϺp?\df΋r#uuӝ*ClTYPmg?Z/NbOiY?St ݟec_ý܌Qi)%M0nZNB1]KUXCuS AX28u{"R|ض-H6lHZ=^L޹M, xƌc.T[0TxZFVBPٍEMngPܤeVI4IU4+]^F !,\w^{B X5X]J&}2O-W&_}c 5H:jPe7')*$>0OUD0XcO:&|odqO $13cu٥~\hL9q}g'_`0w~Ms?)>#)jPʥ'{AԂihS0imJaBDe4ui1/N&GV2Y ?,N, JNg^q/]R 5ae)Cf# R(UM E:6- Ѡcє^T]b3lY1QIhw8 Cu rK8My қV` ʡ<1"L}Gx4H1g*xPA|Rr.˶#'ZXF~tנuPJsÄ{0ؤ])Yӣw}+]zh֧ ]̨_+C/1rd/n3xFxY}) u!F+c.S1̜ڸ8wԨ̟q R0,M-4up Z{y 9Σ?8qik6tgM5qKH N0ĵ5y~4#zQyڪИ_H v.ר5i\O+/`YfY4NOQc"Uy|8桉"̝/\ת)unl8iia#,2m'4=R ˊ?H'B+Y0cXP:4fE ͧa[*Dೝ{Å15M-5}TxEk{Rv$vt6 yI A|&*%` m鍊x;۳"ͺ"Hiϡ\o<;V d[YM8c]~L*yfmi-/ɧҺ RCHgL_iZHt%íM(I^}bz|+E_-Bߋģ W&n)rd[oW6xrNg+crTIT3]ϣ*o.,VF8Z@D ھ+fsRGA :TwPA:.e}pL-XѦ];{fNs[Rk9+]VHByzlBT LJ@2&P7obm}uXՈz4uŌ F؍b=O2L)%;*-L%f*p`W9Nn*F_7­kBENTX[.O r"츴n`Rs Uk,^IXPpFڭΡEXE?gcc/_^ne{ݽ`LLIק 6?ׅrP m̚Br\!̓BnN~78VшZ2ڱ$nv눙ݙ=l|mT> B>I"h.\{-Ht{xCt5ZR7qQ''ŏPv4j (-M Vlh]]#g? %<*)a4;s;út݌bV:. ''o" "8S(͝\%Tv"Bw4.V7x%YgNWo#H$ZI0!םMg|b{ƍuΌTp6p. &4}pZ$|05voV۝-jǓ*BhRDdxIC)(c`';H$\k|'}dJZ\82)qHr' ^&Lz3=z#P8 :O_j7Eݾ6+{}z>9숢_bi_ph.zgFٖ \pBPZb>]Ѭΰ!;}3BguR ڬ~F Vaw?KeOrYN4yyt Y%Xm'H3Oz ɼ.( oaoo(fWV39:.oFЫJ DʛRboTk㥇6HrpaP,'&oDz __ gMF #*vUyxg8VScXFj8*0oa ꚽ(S\cwf%W jcfX)lYaѪ9jE۟_V¿6ߐlhE]gU1BDL m3-Zk7ꞝ𹯭X$ƲwG!W+t 92"z(ص3|ɾ$6U=q?vvOS^N!>Kk"~_F]5j}ދ(ʵd3}K665;1Ɉ1BQb~wӼIC_근Ȏ!53ۑS6ӚdbF}7~"x%tVokG E iJ't^7# 9UfK:ʅ^F2B_Kz,xAH$m _N$L<LR=lbTdߍZd +51p̎N=ֱZ3vO" ÑW03.(9fĵU2/cx$e,##g#T^͵ -> 0Y‹0W +4F4rGғtX?y~%Q^ ~Cf6Rf#'2+ ?R:-ONCXVNk4\Y bbb|55qd kspA +ZgׂèOz{~@eK56PmJNz7ȷLw ^mƚ7G%.3CN/Re}BvY`g25Վ2?cK6PR'%-Ϩ>SolvI/zENNywT翢70󃑻ԇ;c:ߞSЏl?GF-LP/W2Y>i ,%C:eCZ ٱxbf tA8h<@3jzRxžk4-vhU#OH{籞t=Es: Jʼ yt͠oZmټ]+xtw:Ӭ_ǭm Ƞ];sbXhȑoWph|/Ks02&N޴pY'&2;87ְN 4V&hRYSpP͛mgfmaZ;5*qK`:<|5:'SlĪ0߬޹L#x˹K q,;`=b8,miVx,vlД!Dw+ת1kCO|#hUaWp%dבKgm\[b5tL7 j„+T6,kK PftUU"+wJa[N9NH? D"300-fޒFp,>#K8Gv ##>[0XڤYޔݫE*սF8% 8W]s)$o& ZdNtފy/M?.$*sPv߮avfcqPY5Lp>Miy}vƕ\8H3+BRAHcJޝ@@ʁa8ܡ hӖA\Z)ZW-9 _MoXaK܄'Df͇^ _" WѶuOqط+L qS?MҞ_+>#*;̻:WO!,wc;ACŞV?V( *$?Biy1ݨTMNr#K;Z>jތZȐ6~TyPEs:[ɿ@MӬsĤ[NU}NQ2szcʙt5OU=9ߵQ9G Z~úVa*2cܝs|mָ+%T"-1togd wMJ)KʬkA}> i}>G]ZGFaI*`Lo,7ȫEӢe mO9"td@i5];ލƬf@pfȮ[sS@dK3iҕQ M0ԋW^ɧ9?>I%lZ#2"a`B^AXhX~w*s.BLcڟxs=3܇Y$ZТs)lVC cN&0ȓ -D{Pbvk.O$R Do no~=df_N8tk}!﹎#E=$ c, <ܴ~R+?fxJ3` (Qp[Ye҈XCZ1Y[?_ P K*\Y$J:E]`ZP,=/רlX|Z̜.>s\tI Eo4y ܹP&m d2REŵ$'WAEzG ż\)Lh1aʑpgbx ѫ[Iٛ 7GhLlO¸Hj+K%6=BZn]xW#]ȭR"035vnяL|\C$2V{n.n0{2 iګc4"]sLV8Ӎv l\.ȥ ªP;]9 }s3: DpvV?3J̖+Ҥ z#`ڨ¬3`ӱ%_cqJ8rKW܅?Հõf`q\au2Zh@m;fkeH95_ôjy}ھ5RPv*mx3o e*V|s[҅H4J\*l]PVĻCjuᆸCQ{=ĝOcO  \wV,b?FMK]-?lX`!O-h^BQ b=1J掗қݨ`%0B(nU) >b97eՎ|T_ҺUEwZw{ 6Kkfk淝V h^'ŭJGnkBUd5ISf8t nBP*<Άp~ DZ8Gfb3ISS-ŒoM0^ez 7m FC#VF[ʰ&ZO9ѥkX%C{>Q63O,B޽'`t4z|[dԋ=85ԟ//hZp_BQhdP]53xB~؟z&pHA,>ׯQ`E¸a. 0Op ~!yD~Tg"#>eHn R6I&5[zpkMf 24mci;v exËqޚ56E"keG[־ AއJ}jjHLX>&dj |YOFf(l]7CvWdV~ƿSR84Q \(c%#Z&9P kdvDGpI;Qw_ 26?(!drvnB 'sƱvw *+mm?pSZvW@ м\ƒ ,Yl5ځx{ 0>(\<{ow9]'ӁJ3U<%9\)*>×XUɠO4GTJM˒mւ190 }ǷEv6]',QrI[s50dًZk4%͆3|mD)Ph@n'Q.zRnn]یg_&4|^a3Ba.y\pæ\;Hdۯ>|x6- \ސu}egmVD i3DǬ֧w+lo8wA%][q-aK 很m &3 R&l#pQ7,﹇)l~W /oV`V ̏~@HwT)a41fܞ>I8[` ;l,@͕3M.}?R?K^o@9~>jaNCpiS!ub2CYޗ06΄3001LyobƋ1JF pP_# ZVS׵W0O7f Ko殹?PdJϸQID:3xSzC9GYɡllPCy? xbtN*ŎmӴ2TIPGw9MT`?Th_[Y!n5t3?pV o 6"=yNN=nB bB03ʵ>~7.((O1r?ldgX/V( Y"vk1g: cs[x cVO\FLPMz_/`_R=YfIiy #rjͼ0D3e{='../o~_\p[YU煑  |@iFy׷Eg)mf^91WU*~/0[4o`K&F ibV/r̖ve0Иs0V$}?!~<^DHD\p#ǯDѥ7"@ bіtiF4)ul)L]s GX-cHb9ɤN.D $.q /Yk/hQ }xq2}]Ά..Kiw*K#BڋnӾL}iwRٚ5e R_O LbtͻyY#W708;zC,,<_'3{8ŷZ,y:AXJ_JjHO1#o^J$|W84 X5qMc?jUDC]o?z_#Ns&{sصUl1m @rK4&B]{fO |#UF  BR101zߩbhJΎIh 5Mޟ4sX O6. U:N$ޡA׌Nl#1 11 Ċ86ӌҦEѓwUVNQ ȫ) @s'{ˎ4_zIU,wfx h#T!&൑đ-{M9:;hTX U;;t*M;iԚTƢk 'Xj!f Z?&-E^IVV̯'?y(a 6q#yJNY'r ɳ` z>#`𮒢B?ləSCw0.}`^UwjH0Mpd.Yk{EhC*:+,NJ`Q94"'ær#', ?Lo੽TC|jƠwƻK_s2Bg_ঀ`ƚA(m,)1yV$Zc3-S8%eFN1g^0gŗ?"NߡÎ&y`)4sKħH_VVx $M -4 M,K &8^휦$|#7! :pV>uŚ5y1-u/4Fاx۷?#sA&YyjLt̓=sûl%O#>dחxEM> EFZy%*[#zT ХA-i;WdPeʼh9q2$'asX˶,mgxƋ7y/ϲx6v+^d*ò{sJR1r]$M7R+\yEŁ\jߢ*Y@>ÿio͈hu z1p<{XʜF{('s)*~fPnlė!ENDIACuTjLDa}),|! .BNy#!uT1>78ETjM{eDnݴŶ 5H';Fc2QLMQq[e\1C [y'/iy+/G )vq,`n9!܁u9=g\+z#]B7`7SH~> uVGdz"=i|K*XP}fe{J3iVw;:(S|)GݢXQ`lw"G3*0~Owo &Fhx0g *Y l1: M+|sB)T'5h[iuRv71VUUjZ(@A`D\FIxuu^9 kdre <;Tb Ae>Z4sTN1ͯ QzɡA+Sj8.N[q JV=W4Ӷi.#{ƀ`a'X+vNV z1(9v+=s$lPjFwBZ+4D(_ T,&OM]9"kfyt!Mr,!%T[3y.;9?;߭g= :ȸaE Cߣ}G* D,%*I7KmHOBSaɢ9LK#鹞xus#6M }Q]^ɝ3'l1qd!:u2ORr)⦍ѳ5SP37bj#!X&P&:'!ގ%cþo׌nVI $`}lR!qФ)N0:@잂HK#F_H:]9>{Z85vk'1>o=0#8ja;0 r ѿ;Яn#݄ے .;2 #wA[Qa!oڲU04xp`ߏ))ڔyO n}gxKaJuC닸A(76]`,@/?O:=.5yS<~\tdQCc@"aڬY/q svnr/s?M}oϯF;i6Q(êK|%N=üTc/hAtq,8Qp+Q?HP;"}zJT(_Ɠ92i0AD -3„1]xTX~z^&V`uu@ǰQا"%LU.ȝ(@Yie걤^)c̣Ql8{()zPSLS"a-2 oێt/[oim\@KX^zJE/M?PܵQ6p6Q>g!S5HN9wnv0!^\ go7uU8[ .E17n:9d6>9~*1KuQy&3PLӂAh6 VϤdW?'6^A-0iD[!L(K&G?{-O> z0 KOfQ%̽/K'Y 6܋ 8b]K(E$vه#גJō@xضϓJTєx(4~bg*"Qir "\ҁR?\M!7ڱ gK 6)aav%IdG:&Ha+n+hZJ4b4- U=3jiV# l,Dغ lY _Ǟ&~~/xzz'aQ(OFF(#ݜ·=A %z?!~cXoo//,;;ٙk aIL: ?5%lnƐAZ L}vnNC[GGurX$Mԃ(#Jد#䡑Xgޕy0.'NX*DF&@NpG c( OY9=ͼ}v?䰣>} Nu1"=)/oc;=cS>r9{1'}CA5g'SFo޼d jjאx58c aR}pd@TGµ;sR%RnegP/;ͱ] x?lZ0&B  (!kك~0E!ÄGZ ?Y-[;8:j(++kzq^W*z决(8cssVo·顬j O ^0&JS9Ύ^dre[jkz^Ea7o&%56 G*'_L)0Z=DMWĬmWאH7/ &>wc%aKBcNlY>9O]@anKүsO=>-= pl˳OGDΣZA(Zbm=/]WJI{̲++Y@Eu^?a#H/ [6OzչտrsV嚢Z9k@6e̬z]Lt9m/zd։T #:&έ[ʎ+C*`)GjLZ6O,`B\CuH o)0y_&S-ϩdXa;7yM'/o]/8/-# uxƃ)7l""|>k9NqBϗgbI9Sӊ]zU-l0)I}h -SREOu305]9T@ l&ɾmkİu^EI2c)'؀V[.yc^KdTyQ#HO[#GP==+(7ERL\U@˻)&Y)N5y)UyKK2RsNDI"gU PʰԳ45pAnRB`@'R{hL(QlEYEdo܃?jYW,%yyDyB"n;pv޽^)^}Oc|tgɅOok&d0T'1\5<Ѐ(z׷b~<||0M4lmm]||| _UKԬyռ-mJ"Ć~U~,+E^{nQRM'L.AsnD/˺YCq6|=%/ѓ؂P9}'1}&$DDb OJWdgdr. {h{!l!{ Ԅ9;QRb5&peh,;/eDgN3W߉p \ơ*:i#>i8`np}[^p_^y,.(PWrԫ LDECncԾ,k!gUˇL%)"Ac^mmv¤{gF͗bsٜĕԒo< $[i*ΜBVmWV5͚֮Dnd9ݭ%Y- t-]t.6Ib ̵VW\"@~31p"ڎ>*RHr[&H᩾J`CŘFloآmm95HnzYG1@eROZ@5ӞkݛB6j6tEn2- J k-b?r\&׾J]3ZӞ>`4߬7i^gQ7aָ^0]]&ՄVqM^?bL`}=‰֌H~[+Ŕb`k , 6}R,Mሑo6 Gd2m8VE:bWƛa;[R! GLTsS̴:o'w 9FѦ-`TjՀZ졓ͻphlCAK]w'<4q=/钚xlIms0خ{&CxJfnAk%A+y,UE%q:ʃ~e܌0AT!6fʴ9+ 0Q)!(35BqsiM"oQ{Cln9+J+QfWuп|%-/r<)90 UŒh'72:'w 6jL>.nMWJօ1zAW(oJ%  [y dݼd´v08mֈU.'l=6z lEhvr2!si]}쉃~ %>Xݨ!U}#`)L,vp %)K:rrT{u9\RT2!ьc6 ڵ NNB|y[M[=)/gM%[W'N|:v.&~*DI'{,+1]6)O#)A IaZƴȼ~F,&mC<^aKPIPMmGC\qb-ؐĄf}LiDp/&x8gjbɺPe g(ҪC_Lg~S밬^xᯏVufUG4zR˒]/ UIgi6:%К D6\Ӻtu>Wk.1n5꠿CR{jAL`̪AW{)<ܜ*[iE0;e;3g:K!VT|[8bWuYBkzSPvhMlKV"SqL HՀ܌^qf)B/kIv%ݷᘤ#a@bo'PŹLO)^=t),欃@.&2VaC-?n">?9z 7KaeMr}Y͓`uinI?:XX+UҞ;-ߟޡc}=~uOK~Q8azuI]\ IJ'G\|z07Zh/pDzDcn[BKkv@Byʥ ;j;n]Qc+?Cw] 9]C?{ ڢLns㐸H>%]{ kP(]dDb3fXxKu=b_r?5~L5i.}sdwiD_}F_Fc_om"XuO)TOKP&ʜمhya};-Ӿ %5 #ˬ3*,ʷfTuV֔-n8&ܸ֢##sibeMx2(eQzv)Lq-h,b`lYY{aQWdC:H]M2p7Z@E^U˗Hc4">t/w:zq{JcmgѺEW(4L\W3㰛 PZ0:lUЙ ݭJgjEjCBpmeLWg3~+Zً > tdL [k]Jz^#Ӑ쀺 O@m|TO;t݄@q?ݖ]qW8$!&R@&XJMM Eڙ\8 YXbݳeZվm؞E5X.ZXEIK rיM̅zRʚ{r?O}$"`8I;ݶ;>F P>^fAW*}僱5{qUJ5NZPIr1ݢ2X$ԭY=<2M}ԍ6 p V_X؏H;P470LEXB$Y~I$BTDH5>GR`{Ӕ'텠*.i$JJ!meS zN}yȩ-(Ј5m$a#%+ƶٮ3,R현\0"QHuaPm۶\7߰⽒ O;5%&| [WTXutÄ g\]bsJHXd*iq@GZ$\$ 7$>O;Pe+XhVuf6{ r ܹR?8}3Ӂo1/qoKnvܯ|}ɕ $Q; A/ʽEK3r13bJw@11f$\ y*#X\XKJ,-"C L.i}aY6Stg=֖;1h]kk.-,z[@,]'}~$=ȇm`}lo[uȑmN~@ B *!,c/Z{`opg皢Pwbt FHZ\ǘ˼[l㇂ ]wgٿ0m; cЏXSZ\ؒqX0]y ޖb?H弓B¨߻Sc7,e 띬9)ǎp X^=<8OzD5&PUNj<8xsVcNz !@5ه^4]dSrG6<$+r/uMc2uZ}R"$m?vpQ{Sɤ^ h[bfM[&>K`_C&-v$h>'xxm;Jo_YI8';xM #n*%f/$YT g׌X&m>\RAU^E͍6;#|xv$\x榽 D/`p)Rxrݾj\SjEy15WW(n# 133Ŗykhh&JmN'(`b3Ck;5)}> eeKt'LIN˅+|.R8*-5g Wӎ|w",l6ɤ.UgP`U Jo7bSҊnnmɑnٺ3f kNKVHpSQbs F,p`9v.'=/)isP{e8G|#{Y`$\'ZLWK!hZ]ա!8|m*2OOM',#P'z`'.L0{b1b=K ԺM2Co03*dgQ׽ ċD"߿7Q1s]c)@eu0-}XI4G-(EV+ s7<34.#:='y3҉MB -'c?T4~k5?U'9'4}\t[P7`3=;Y& r ]U00p 7:8xFo޼){lmܸo=gWTTQ)Ga'O3W`yaF~OCĄQ/Ɩ9r{HW1:E\.5E~Qhu]۳Xr㹃SZ ǬW (tV_zjj0@XǮC/N@2 C"o(wr`iU?_PA./ʽNTuP 1hEr_.sy'Vj|䥅8K+ހp!9@GR藑@`%up)G~fh)tT&msmqla5^vp'b.\Z\*an7$bؕC FpL #_@ u߮o]rQ_u-X$P"~)!s_UbwdHhF_"{>[&Ʈ-̼ԊnqߴC"MlS}s#sz)%@^ؠfU߼c:(JijHGPRn%bv aǿc gWJ$[P*H"0_[uؿ{ǖ.63PKL1Z'(nuvola/128x128/apps/randr.pngUT lA4Qux {8ǟ07[Nr؜O)Bʘ9T؆DAJ9+!$)o칶}rN\TAq{kW߁D}['x xb$WZDžO]v?wpЏ'M@`mq$o 7cG1A wB1Âmq6`k ::HWgHI@CHZPhj@ dX HW<>;H>;Cok(+;$eLm..>P6R1ˉυ)i Li7&z^5""pGrߵ 537wpZcbWfu 9FcM^:_Q'N@q7↧=ypk,* Mf^PPSI6fހФkNoTCi4B ')æFo"np2J^^>acJ#M GDg)%|N'OjabênP{D 舁4cQ4/3mPܝ*ߝ s$UQ:" UBM_O@ N1|c)́$ Yi:yy?æ|no8G&4TR6V#>^%þ|ZP8l \[; |e><2޹@KnJf(@oy0WoGSxڳ!n/돁:g~ΜjY^ dȋpaCݓ*oyVXQg9 6af>7E.SJ,tsCG|H宝`#?[sA\0E; ,@o%XD RQ+IpѷqGݺ>j,Q'I^{dSSv:bH߈G~rをƪlvHy5t%Q}V:zTӜ3~Ksc! @]KG)jOI *{X}̿4OvJپV$̝ $pd$[sn`&5-p@l8,;ΞZ}APl ` Mshw㨍f>'?A6&~Got~c4̄M z{+IR[ ᵠiVO؉;Q̵y-*KiѶ}݂59=@A  n6)3$iRQ&s6f"2mNأ/F-v&2G^bCRkq@*e[<ѮoࢺYL f[]E`y ሄQ|q$?6t_[ /fU (]" _#Y,u'|k5HP7/YRv!jm\ҔOAMD)Q!tf9dE^;({2v-<+=j' *x)n%2Tra(==0t"qj>pBRwୢX؛z^+4C}ytdqFsǟhJYW!9B-u:gځZD!4jAEqBΚ=}FKeȩ\xjj!z,*PiB)X ,p=R}CcfFJ/BJ{Av(}rT.yBR'b40E=Z\+Q!FwY=h'nm-؉鷱@Myen`soۆ1=וtWV 1V>-bPMFRًKkWGA-0>$m5#[@χRx`_racj̔^IWeflΞU})BI._taè݃Д#3'}n~HzzvW%û_/4B㓨`~5t+t{ #%daj|A%g|;m!LrxC.`)T`ʭᑸ( 䄇pJY쉴a\ؙq 19j;:z-{j{1ǭla$S7V yoar ߎw/>$21y.2 7dJu6Y2BvuUkwx72NVTlxNC^D!VB QWsYIM8֥i=iԑ J`CKFk̛8c y,Y&dAGh!U* զ5+  ׏gs8jaA `VhQ@=Ch=*pwLE#H7hvM&'āBKip9җDnb@3@oD)B#w ǔ:Q#(bVz ubTO'*Lj s] cgN&AaSFk,RZGc[^ Ht }[8{b©O5-u:_wDW*NnaX{ƌU1M\NxݢD9[bD3чDEQL9OKfNwcD'w$D:6w鵅" " b׹w&iG KT` B\ 4#ac2^O}%0[r3PvNҞBZPQ{u~|jTiR Tv?_ķ4\:J*z8XUiCg xeAٔgǽMM47LG$of+%%^oTNk4V w Uң-ĎE5&yIu5:.#ΕƫDƳ'a&GV3(ǀvǃyXg']'+ۏ%ܸC#8g v^!iA߬_ntJpic^7_5w+KެbYɟP>TXt[%+Qo3˨lZNyͦܢ91W.IʟPg8=:I;ҺF[ aOsi>Ĭ

      $:]jTnM=f}2bfGAt*חDg v<-߲SrثR=n"8f/}ruJw09#iæw#=f%DMJdCbzlU>B| xUK2*. چzcwB*AeJQx6;5-x'< jd.vjvTWb}"?IH;h;H tuC|Bn ܚoGVtGǴwX MK 37!'+`ٯ0$. B M`,l3hlPq@XrEҩeδ^0}b,?+) DȴH620ZkC=ڒU0W"aB%~Wb'AyK-bNCg]6#^ly#JHB OZ̧n$Y<[D\ *r7ǭ~ӥ]QJH픸k"[/ cG~K`4[Mcwh? Y-eaVMe<*7 Gk xQ0w*[ԴUتЪ95m;YAb2f.#HQʎO$;i?03z~'}ăD2=>gQ3#}Q6 ]'H(-,mr^\. hMʊ{qԑ445;KO8a;W6lv6D5LV1X,d3ȮW$T%;qd_ɿ}MtmQ1Z yL^0L􋫛j'RWH9 y93wF `gNw nm}fU}W=cdRG2i7w# '~PS Yڰƺz>9+i={^~,ދYrD- MRO)Jxocy^Qzu@l團UJ CV ^G<=fٶqjcM:FڨXR[K(9o`%Y ta=E-zeB 3 F9J Qp(lߒʩMfL #eFދ4_uTM4U=B\ι]ҢNfoJmM)x)p=?W(Ls>״6ݗD)C%\Zx`EQOǴ!z[ ۾/)OߓnWv {9No` 8" 8G;;_B;#Z$8W C Y5c{,])3ĎAA)3 mmSr-][LD% U꫾{lMi"<2aPJJ:wRbGiF;,3 jTGQR>hUH#A~CtC% ;ܽ덾C_YA۶x}-4cwZ?UJ:ݚ%WiY_,jy}2>!/UU.r[y;Y")ڕ!% 9a!J~Űڜs09Z]LIr}rX!YrJbg k~yYd)#Z7סC |2~JPĊ.CJN!fƽppF­bAK嗌H#o=r(A!(r TLJ\0YgvP5W%vw;HCܩpK pY4X#6xa CxknЦY͛x,q"p8 $V(ewuK-v*~Lx}33o-Kk[/XX/T:2&@/# s4$"nA ;F*ȇ]ZOB.S oPqB")ó)6Y?Lڲ߿MynqL^Զ =Y Gc8ibѼ1$DRӾ@^/ \ҁrQ۸tyn~<̷O>E}03:҂~<71Ң3!SȨ "1=0k=kE뽪r;DM]uKg蝈 X[3Rs08F`Xz:r0/+k MxFƍ䢜& {-vڷQD=އw,:F@9]rܰB"pO3-h X d'-}1 N;bOvk<;fQ_Exr TnWxs] ȼ!RĿ¢_hqWUө1ei"Hs3XSfP3ԻЫd!|,RX07_`π+7/XH 'wCiؤF)8y)HR#~yе?t[HgϿy&27?,rWA_eFݎ*0} +N}/ic~0CBog%S}0 9c޴Lfd]<*lǥAbn #3n?yQ~d?B9rn 뢨BTV7*{A=/Tv^r ³AX!=LmЇN;ly6cMVs$u`&j1w+RDd*kǙj7٢c r5z@MзX"g$PIk։UQפG8$$tI_[bjз6vWtcj)ǡa8JH +X,Lz Թlbyq7N4ܟ߃~"e97Wb ==UI`o_oл}^<䗆I+m)xn-V/o/sv4*(hW^n~А{5Фѓ8'!Sџo/QB: ]T'n(%Bճ)xHp.DA`DkWե:suci YeKbPa_`GH][C$;ٛy V_[w$Eoʪ22F#]5ϻ \wa]]֜b؆1Nz4<)K3#R,N }A::Jiޣ/ם ,@I 1O)x0\ƭu"Zol[ѡ"JqDIdnCsdx4 !dXrc+6ĵFl. ۤu9z/noC]1_}7)-68X'ñ kP&$2mG@ eM)BADx2XL?^K:2UlY&\p^А?L1ņgCI~z׬ls]/p[)ϑ"h8zaV{g~<+v";Ha5|qoS_澌ߏQXˬ9f5m"n/*E+H)R+5?tjj-gt#= yb?ֶ3&b} 9:|l>&%viid_5ZѤ?/ М0Aooxy)zPyWv}~KS6xمס/yk8n+ۏmB&>! i8V<]o[uNL[7DQrWtu<7ut?4!9y}1U^`F{}uUsaG e rJ7_A_#.Qw0J8<2 &[ZZBy=,RjѬgun>/lcf-2q,fwl#)编-UuuSΈ4Kk:u\_}2ޚ`$@)u<_+Õag<ASdFυ+]4v*˸3o~:;v%#۝Yߕ0X4'%zyHj{?3h_!P;vTP=oP*b&WV@TR6?N-e^oGewf& aYS->\ T\r2aXۧͥ7.M߫z9$'ä_mivtE@^@;W-a=)E'ISZ"#|Nyh,!:wWfݚ{WhR]^ )~rvqƧϹ\;☩||e2_Q6.Q7Ca]tR8By5ʴ YMw:Y\Yt&M]uK ۞Y.1xh4VOI |X{k>2QD{2[̞C'Qm gI<-PPmn;2?SwŜ SH33=wu[-q]6wK7i{/ZNImgV 0@$hqs DEU;Y*A*s["9Ո?{-l}RO_Oͣ48nyɄ"}aOtm'b0G*hyCwͶҩMݻGȐXS: ,%tc+R`F nۚ_ЈX;bltK%[sp_`5آmr7ngXi6g-qrlJЬ0gYJ'S?Zs[[ٸ $8>.{ntq6=%SC!~?;I3y=f½n5:vӇkK<. ?ЊVq|]{-A8F3R:U:[m1a\eS2Ib^u"-na6-7@6dV/=((C춒+Bx аڦP ^d1}1e<:: )׵#9H\Smi @w0L/`s%5PKL1!%|Z+,"nuvola/128x128/apps/realplayer.pngUT lA4Qux yT?l(f䒊`n([r\TJۤw[Y٦UVBZ-Vb y;{j** Qn9@寐XA'22jr>5!#3:=`ƥSWD'ƇGe|^YC1 Вtrj| Xq(03IHXc3ffS^[Tq,Wl@6"-BnPf7,QCT^UvCOj(# Y1WZ@=2`*F2%θ<({hwbAUn $HrD$C;uȧ^1O̪uH߹b O _#d@p4% H*d¶T555c QS2*%=JZRP7&܌T 0Px@s| iO/'h—fYOn/U=sWb'[b$-b>0UǮ)<~w@}%4y<)}*:FR6扏熡SWcn e_zb7IU}Yӟ3,˅S,deӅnX"-H{''A^k࠘)1v K-(}]bރj ~Z-9&g,(Cz^ o +Oۀ.tQco eSQ`YTjxqdR"e']]hbЌ c4A@K֦hVVSw g!OHWmQ9(]}-QZ=eǩ} bYhd::fpXRPZJCJ^6`uLgU̼C !|ns۽OެP&ha HHqYm@9]NUfduU!,yKɤY?x˟Yň*$̂7z8&b$ 3Sۏv[I}`@Z{2\ȞY;Y}kzvHSq nQM6t+p[yOz vi%` Y#>z.ֻ*j6k=|wYJoaAL e,%^![A90z2M)Oػ`Ck<޾ؒi*~R^pf, [P=塛VsxT &|;LF"3*\G%5ۂz֑rd3KofnwFd_=_؜ BҶ\$uwLL;憨.q>0y4֘闰/}_ܻ+pl8߉^@7"%3OVCe;'1UݭJ9m fmFi}Ko^뷳w geWPr絏3\if :Hah'[WOԼ?P-@dVd@S8 Ym+U5X2^D k]n*_ltAc|<~8A+Y0 1ՆMQx S aHo+k>fMmN߱} oo*#Mӷ,/Ӊ,6?R]%)]k%C «iqt wtMn+bmM)G1"L%G8]J>(B]Q9en#@x|k=8\4rUQE&WcǪV$ߝKoKvWNaHTi_ Eji4Ckc|©<4{l[׎\%eDoA%'o8YBXtpf,S47C;ČM7.yHWZ@cj9Iy nnF\@@b'$]5|I_rN^7&88thul 59jV |FKZq630FsPhH{aa:~Lĩޣqo6K;&2ɫ3aΨ e[/Bo}pE\tO,Y:0ӐVpSb4b3bEE\-nAD#_=Tu,Y)&}XO+ќZ2j(nmѴQhqXDv7U$XZH8S|v {;N/zU1yzSKN&kNcΨ8dj >ajj.1ԮVMڴ=8V00{>kpm @.ܑ[O 3jj29]ЫnЅ妐ba?/5Uf hb<Nۿ)2&i<*'2 7-1 īFT? 6seݶ/,#2[je|c[U1s)Nt|K{|`kPGcTj_0L2jPd? +¨g hfߘ37֑23m/^*kر~O$[:rŪMAo:w ܄≅oHVƏ,itGDۉ:^\\$x@ 2ܖk ::h?㢟?}-LWĈ>F3 BEWbʺ+G<EKM ypPyt$z ԁFwn`j Ynξ\҉ 2'xY`{pκvi_vffWZ\mRRt@Ԕ/A |\ T4 ?0 43&\C5fezV0mjI&wU15_̜2OZ? %Ӓw6Wp](k$R?L 7o~ݮV_oH>'u<%."UMY:&߇9 -<~q^84~!o:DE` |M9WZ˘JCnz 5€Xe@7x>`^uE S|RѦP+n^!^|oF18k1ᠽ_k"Մ %GjayR@ oYQ--ˏ47gOwJ>9PP.;EBc#ݎwxA I;y%$EmEsZPwT8+q8+R Zur?w8\0]z{L {,^ؔ`x>A6 gnmYfU[8;%2Go p|Q[XU ZyD=2Xy#%g`ca1(}0~_%ZGCX q RS"Tgyv3q{. ӐOk,ȯf㔒2.$d^5DZo-Z6Sb i\cbY*Z7 '%V_`0ՎaIB_̸į Z&5A,(4Q#K쯜NTCU[z5E%9=2z [j`(ӰJO}z ^irh.Fk:VbQZ՛(U*_jLȔ?žkMͫ;tO)Qr>Vu̠c[ພ"u] O&+sqf>o|B +A)sKgn}WjC΂*ShSi2'{P_ު 2:$>K!_Hjc:."3x%z]W&|ZsZT{9VUϟZbӎsTL:C=xVXq5fهaP:_+lNBpx{ኳ+Ic a'DG %zp/آPN)e.9>{dO~6㊻ZeKDo`GbNE"?#l S\8/5WO>{`pd%ݒvK,@=Jċ@'בHsm,mbN[/5[h\ƽ1*+MA䫔%9.6]N5,)2:LiA?QT;'( ( %bQicb}ir/Z* _Dƿ4ZKT,گ[2܅ ̓lqY. %gAd9%ܢ~DέV_lѥ8W`ClHsG[ ^Tj]D7]|s=M5ʡF&j|ЋVx`Uo {ÎyD }-UmesDYDe Aˣcf,&f4BzC ʞF%]ۿsU]ݕWe,27φ;+7nŽU?F8rR%t5֘gto%$33N7d̠LOOdݢ5r+uI9*=iח#d:]vG e+(HA+s˯/W EZ3ke:ݧ7h~Άz*r)ܡͷJJJ84!ʏ6>$6M>G(QK"p@/oʳ5b/9x-Fl L}H&?$?Jx5WdEjm, 3{?Tvbge_4(Eiʴo*-0Ri vhGKW D:V(ch¿C`g_Z;/E%b!+EŹGculMnlәLHM9% ÓyO%y3oV7)mPό]\G <ʛ~4(3a'z}Xq,,,IK05ʛzIJ RR(dYs"##߽{v T*4bJ oIJqw:5JZ֨xA%V}"aM&+_sc f+]ߘ*_QQ9I Xs;/ȍIX& ֞ȍgYUbKu旱rga4}{pIϺ=Hy\yZubVveoo7 ݌ 066wqU҂vQFptNW*!'}#Gi٪U7UKG>h_PԤ[Lփ{%~^z"'U!cY =O7CHp› T.Cl^(?8# ֘eO^MIqd;?p`xmZy;(z\.,zk%!̲8hav &"kUY,~eaM-3 KyuWS[!=ow:zl= _qAy䈸DؖJƝP+/Vy>I|vfȌl/j#}-InyH~5͡IcC=˩`EF0Jb}rQJhDqU  ?pv|\i+ŀc$s NݎVȇ3*Q\aSr腹\nIA:lޘY6h&>7{{}׽Y:/[P)<q,%-\ڗtڥsAX3:ؠhp,BοWfcf=3~#r8t-ogH"8׎'|ʍӨU@EiUrp d])v(:L!WʼnFGT\'D=|LWVIbp͆=q`$*Y;~څu}k42$LE;RK蘈T`D} ZS4$Ǖqe]Tx^:7֙ޠ=, *'_95inOj^[-eZqE7Kg2; rRMˠx\;9^i`Ʌq,RW"jUc^znBg\yYf4vIq7bULTqV烷e6;B|)0g` t?g2=c<N>ϤTӦv٧IvҀ9CvH^-^t_#ʑZZl|Oe)bpڪLEi 2Y{v~gl-LۖQ>NT*wzg,Q81{^ta9&wNxEz_9AP۩<4緎?6,2EwxbX:m~HV#ԌAcZ\ݮ%fwBS;n<4?+|λ5!ԸH6G5_2{bXua:@֞ u;/PĵHTJ2AL 6ٯJ<'JFU)465~ bK@ǝkgiA?Z#jsTspJB^iKz~P#:GbQ#ut^'Y.Q+[a|.?jښ,O{[>ߝB>8a#bY~"14 :.{.r%%;1rz d-'AQ(Eթ :">{G?--3Tϵl4TyUp V}饧T0_FDA&LݴQ[s^)JF+0=/d48z m4OBjoдMS{a5 kHg*Vi m$h~Vv%KӁ{$W XZn;x{ %8Ŕw<`Ģz;wo+5 4ҡSG'UrÐl]S=mɣk%?ܩ :/2wff,ooye9:Q)~/GUBت KEé}pJ}'lbAkci.5ܠ"nY]-(#JxwOR ]0Raqǔ SL e(k-Z:{p9N:ZrV dԔl479ɦ?84#pNҹ^aLzMc9RKK{MKI+Ƹ:ǵ߽{$5/|xVuC;}'0(ت#P!PIY):1 ,u nuvola/128x128/apps/remote.pngUT lA4Qux %[ 4T3wVfXbdd !$ZD IE [*RBU*J%e|{=s}y|dy{)@GtF{&v ,?E6;C17D =|E-;mXޒ$:40j&R 5fg<#K,-+fSreA DW'2g3P|2LZO>tlyaVm&@ ƛHY!HJd{Ȅ sU[$|w"w^Zδ󣳔,\Y&H_S_zERW9JG$OjPs6רCގD2W\ d&xPKN'u`Jr)H!M͈$YȮ]PCŚD2eEq)h쩥s?58< >AG,跅S_[7g~> H(HHHZJ AO>)EwQ|˴|=6v@yLوkH6iF.HfKvݒ'iǝ%3rڈn+`h)إLLlXJ&`Z$JoȾB_Z|.wA63P qgBЅh" NF\l 4dBmĥ5I=n~;6<,Vd qiKSpnlf=QRQ7@i%\c<3tܹQ"KX(IHxYO"{6ұ. .nGDĪ@odU] lvÇ-xu-O(<Bn<}=:5A#M>EsKk[7BOq#7@B[.Omso{iK67Yoy>dxɹWU]>>MP.X@7UjroBsj``La2/l"k'g[0) -*]:OJ ی67 tdǸ\Z&,\`3'4S5Dٟ>9è-MuYЛ%S'sdlQA9ؑRm׹JώMC3 @xZrFRΗծlP8^pit'>瀈o*xsאR9MghsPJ{9nal2!Xiܿo_A0&|.ȟ!FM= Qnb193N_nVM8#PI۰^_)g@-pj^0q@Nw^=,pu^Q> ! ނ1ſ~%Enܸ!\x0jܕ7]翼P$fNlgZM,nGP3˩U&{ L]|) ]/ ү+߮KC~C|ƈaTq8 RPJGN3ChVmS܉|WĎK3Lk ZBu;چ4ڑASZ4mD<=\J9( Q Ibl;Z= @4gE{=kRܔ%˂˙H+_P(,*wyYoԕM-&^/#^hbLy PG<iR%rHJmNu,{A?Ay"-tWs,{R =Er#-xQyqL&Px^BQ *ڈ.eK^G R~+)[l$O,_r&aMY@朞9z2zvJx;1X 2hhj `]rX( LA+O 5eUepudkp%{1[X\u@T-^@JJ 7Xw} *hK)W/{6`^b]N#GsSMGq9]6!x28R!;c?ُ^|A#bgNG&blG&s.}V7VC66O jp^ܕVw$obScux\Xhߌd1AqJ]=or5kg8?CǫԾ j p`-q{B ^=^UD"BekĞ-^pE@v'ږjv -IA[E [$BTc:M29oc `kV:UVʺ9j_Xo_whv?)`=} hb 6]H̛x8c:Bt>l+104d:Cܭm6K|x|{HYFU&gWirR fv3n*/訫Lpt=DE&̣sTRvp i -%fñ\\TwH# ͠9ØWBу#J̹BE8廟#]Z:67// ( fXq`?Wb˲ -C:vր9 ^e7OQC20j(4C7 3f~! |^X^{r >KlJOd|||_R]L2m)~ɝŭA=u췶ѽؒD ;jŪ>f 8K$(p3"E9c)2 ڈνZ\@VxnUan[ʽݝ}|yOJD65dXTa1!措jT0fr>Iۯ*(YO y yc?Ai,1( ,VzO{~ 26C[,HyD3TfI5LGuܭ}^ Ϊ w_68$DpWY0$]}rTk*ݝTdl1N&I%?l4%\S ַNuk޽+<_G&8F|N:C5\h ^ˏx._@B4_*}*vcy["eTGNFJYI֕;w$@e*E۸-1",;.{ntʰl=鵂іMǼ3g1Hx3h\HH|5w'oBM޲tMȖLRĽ_*T*n98̚hV_D:ytbwX&= =)1FCrl/Us2Lܰ) %H\@LJo)g&mq4 2P!t{RXCNΟVJ0\KSc2GYGsV>odM+yаƹcY|q"D:Ѻ}z|x_%Sm03-wΙ.j;Y}yܢhPs% Au)Y[W`sp?ǭ\1{`N .=vPw|t43V`K?`Jm)3{/i#ɧώ4^W lEъ-0Cۮp`C61%leדloH̺J0i;$-.CD|ErC{vށM|2._F !Nd䈁é+V_沥j<[_oAIfXY;3Dx"cy;E-=OrUcUvvЇƍYӆ#`bx'%O*eL-CVO_ASJn$,8ܖ2'LGW>aR>|MoQWOh7[%f[7dW<_6SK,9n<;g#'vUoXb+G"eG#]~3ƍUaN壂UᢴVWj5v^$4Ĕ) \OepH+#wc.ԶU<F%0q ~ٙ.DlΑWs` 6's4Bf ;W̎jd rSiyLa͡ -Ӌwy#xн|f]Gۦ4OSN&a}K4;t,2p]c_^B[Krp0r,tX3kcoi ǘzsBiEUTYW=6+Gdnyܠ230Hy^l_)+^!uWlVΑsNrHhK䏫b---'-juJ ܊MJ c4:o?v~ , uV!=T(\F#3{u_qYƅ޵scqiѼgP,rq>$1׍:[w|x JYR0i['s Z@ubB'/ ![sKMjci8uwA<(/QNW-XKz[#cPy^YHYʳBO"#a|4%O"Z!)K~YHΟ?M>DYwq&P ~!>~I=#f|QWTi&PqV&K`G8Ge@xGF_DKpWP7 +N*2nAE U229=Ӫ5tBѣG8VjAd 08ϳJ`G -!&_^-穏 6eqYߵW&n@3a_ ^sS*)ɏ NeE2f)ne- ϵh, =ByN RA  ba;&N8X~YŽNZRBM*2cf_-m3\dy+vs^%._NѴ+j`3m0/̿^kݔ hl$v(C-i=ԍl&y˱*|ۚS= XJQ^-f߾}{87&oRg1L8$y.g ϥ#%K+u9wn{Y,"4 hGZ&ꏋeя /?=i?ʪJuJ.xJϞ)Vl [ 4j.g+!577hbn\Ni4 ~VSasI ޫy ; Dvoj.T+S5񣟀˳KJJ@h]Rx[@*;\^M{G=a"~K45X/(p4j:O+`H:@b*HN˳҅A f[[,`"YBfPY/^=$.wL Nܰ)if'c2CYHƿRz)."6Է=6'+{Ȧu4O1dޟZ)r |sOWOe -c6Zao'aIAp3#*jZ]ʦNv\>uKcX2J5ϯ(%Ot\ȹ(b5bJf 1^=o$^5(kWjdhVXU`dU|/ISܻ}$h 5>36㵥;[ O5{A O'7 ޶N6U*Tk\}%W,֬P4ȇ'pZ^0>'T҆ qqT)˽3%سʐQu`hN|p\=Sok54z o<Ⱦ`@bHh+pzGҢIJ &?jX -tJ~#JԆLV^[2c/ .  A:J%-T&q_[ON#t#dqyĒ1Y1vN6AO࿽(M6/"40E@\gt`A999mig32Raı8{FМu31ԝ?mKJg!mECݱUw1a!HRȹz/W,›x*"ڭ^jPZwKl\/j ƾΔ5WUl\iW*zd@#u|F}]y˚y7jk||| O$#j͆9Yjr.P5#N#(%GB54/+61qehJR *s @'”ؿ;8'Uz2vclackOqV8eA}bZ_Y֧Qvku$Ό%4ԫj.UryaʾVt',̀ L.+( ]=VcAzܝŠʗC^?bܱFߖ6)zhYt3/M G!ޔEY$hk"}yr7T ὙS*N ժΕĥ8.Կn/|__O&EjÇہqt-;;;DPAb^5v:UlU&e!FVvC +rgW;7Xрf k|kf#{a?WͶ&n6mٹs51F_\{@6\F$vCO&%6ˤI|9H,p۳56:ȬMZ4xwRinnNhjʓ։xO>Mvxη7Vwc=<,ίƅd'1 n$Vi}x)5UEP WVŵihCLxֶ*l n1#۟zs5/z0* x5E{ѿI%߉>ܾM(u^ /g .%|P/j8d~PY,5xZ+$Ďс[B0(]NVLY!^?TQBKǀui` t7ba}wٳgo2ş:eH%-!RPPXjg''6&b%خo&4t{^% pԐ;UZXHRx=4O+-N|+eMpYUp Tn򣃿du>t-?~:ϖ{ŋ3 :u Ww[Q{3ҸlǏFuVS W;p٩f誴#W7@J\#cw~/F$]`.KBL AO]4稉'lQ,g۞R7G)!U&;!_Xb"fcuW]c` Ob߅"7`88siBG]";앨&v|CFr8T_ȕ*+Msa3T-y4y{+J" moS_#ʽMǏ;\ |M9!;SXCB<#T=v \X@{?C^@r~9GkߞT m&ST.O/$gVɈ87oTV7cDƯ/~&>a3/ny=_DzןL3uUP? ({gnh䦥ypįT!QB_+*`ٕiVz[Go#Dh~h@FrP$'t{Yd_RwBQ!37 Dں5m9]>r<~}uPEZX(j^|8%fe+6#Bqq xN6|Re!(;iW"ں[gfD9El ck{^n| D[wmX[[<ФO/8.I *&Ky+0 h1"ڤ#h૮3|\tQnnb#'}fɕn"ZYmgKmhx8q~עڈvBTūt#Zz8=T31qk=@4_-d>)ѣTE[WX˪w/థO tZJ=FO$%X˱͜U۾0F[9ʀF\V^%y}oϹ) .#Ǐ_;nB% 撒m}jjge@_nXҶc!kt^ ܓuUހ=\d"m$yv_7v#H*/ŬacC\өd`seRr8f?\&TX<by!ŤdHRRѝEaD37{4Gv,IkE:A$p9g, 3;sk9878 ~4nQA%XW5{"f*5ar5R=jMpj|H5$luG؆Ŧg'9f`Nw Yp8Z 9ECqzed]:Sy SK~,\gzez>t}ZSE`}GFݝv4Ѩ_]D$Ÿ =pvbIq|)xTB'#dAIQ`c58} R&֯, N3SjxV,R#_Ȭi`aTF1B.5J&b,瑨܁5L^nOTo)6O# jqWW`=!Gwq 2Ge`?5ޞ M|OB= Hu0)avH|& ؊Ԇq`IFJ1u@cAw41P>ԣlDf}Jo.J bq*kx:ڙ'mZrޫ燍',M@m6$1 .!o(R Ea֔;!RoVi"Ao8&_ӓkWz}T*wWZR4I2+bM(ܦk=wPQFsuI ͓$[\\<4(\(|a\8,r|L[? /XbҴhX"nm[lfd(l ?# TPx/czކ/? EFtrÃhnb#Դ|r0'VŻV칮N?PKt91tp“AbBnuvola/128x128/apps/samba.pngUT gUA4Qux -| ~yy:Z.) % v;ym('F\,w{3{"E p sYn;Buq"c455TW F0Sc L`l.b`Gu/u5Ut@J¡qC|dщC/E/M_[o~rжcIݟ#7k,fȧoY>}x_6Dfќԯ?$FhsqW* ΅5PàҰ:X+rT"J SOd]KV1 C͘=2}l(Q1+٘wL_TH>c'uvԧ_D"P\Z1pD* AEBNJl ]_mbo X;5}NӆR_LaЯm 0ܢ}]=P|6ჯ-cM>@Kh} x"oGD>{f+  ND 20ud,7fM<&: ;BH?gP@obVF@І@ 1u ##kPPIy29T:NLHPmƃX"}bf Muc_WI5b&>eaL ϖmc#v,cke"=&*߷Xw),Vc|Uǭ<ֳ?7yI\ڍO]IdKW@ }q-n)] \p$J1|qҞۨ q0NrbL SJ43Lgfh6%r ?m / 52@D :~q!,c+Eύ+*xDDqW)IIPegDe2^quGcdv=o. Ҳ,>R'O>idېZP??;;8OŰ;|Ymu$WE\9C=b,}kxV+.>J:M:v+`o'`W?@2 .KsCK]Ѱ"WFTrQQֈtx'X0t+o8~q(R> 0ڥ:N1t. ߮3~j\BG? jB JYbmVU:<;AUgʒQ˖s,,B/[R*؜Hփ BcYf Di)n vp7p2uJ:-GvAp;J&~D,1w43XEi) b wN,UH&6E|.?4*nD組 Y9r7-MFNSme0#scmdwxϼhw޻:4z`ʥ7LPFs 0IP9h^}\ ܹ&ۗX"zɕ _u8f$llDu\jW_B>[ өQ{&~֝{Ү4JpO<ґ";KB4ldJ#c7_C&!yYǫnRW1WVk / :ܧz73h};fSY0_`9&P! M]<}ߔ[AAc_t!IL Ņ_ƨ E$"V$alLA:;Z T @08`G &eTݻ92XI2s/@5!}Ax&J=.A, + `"^89 PC;h{̶7c DL!A}Kp[/:fMMsncQua_VHB"S8L/A^c62mzßxF/A-z0o=&ゾ+ ̅Vg5A6xcsQ=dg¹&׵ir'w~'%0|,i YfH1_ď{7CLBeۻPWuiNx΄"ZוKNիDuRaoa#x~9ܐg䴌GX|ٖyu"LjĤH}k{ 0nȍƱZJ ,p3a~W0gz`}[7?Qmm ~yRfi!/DV:ͳ?v~^_aHU%*y/wl"xjW.?D ~A>ui'$3"'_3-lw[_![_Hlû ~Y$%F2FEUBDϲxZ13-q 5qAINsN0oH&#SzCu9i2w吶)ouB~_*1*:IͿ5%1זn0$#bEEv6^ v7Ծ%J?9^P0~> ^}MՊ]'^V#*#=as+RMnH f;Wx1w|\ǀ$@M /i2'P{QGBFv `ZMdLZzZY[MHiur5lpo . 솃`XyQ6Mi(`$4YQ:cqq=@}j4Z⤐C:rcgf%I9 |_9I0y%԰R{MH;6pFfNb(ewqQ0ʈ=!#v=5YnQ6HS/~yI~k)k7ފO{"<=pt W;7Y~H47c_ }a_ՕX2N>T(T*+Tq07tݠdߝosSͣ~韔,}>M0} hVxc|xbž]!j1ix 1^J/l.xJlH.dL nSgz%NmnV{P[VIӪkL.9GBš{^9M!C ERuLɳ-7ipCjV~#448Ńg}pLMCzֆiaqU}kb]$Trqa0TT[HcbE#Ŕ:7-m5EN`g|&f\mai uϡ 1NGwMdYwcnh(P7 l+]֐$I&!qF)?"84Q2|ye>weY=i揇UMH,un=s<]zALfрt`#r ݳ؛0. yirNd,,Z%e7z":x.PŽo3b13!pGCT:o[0*ގ{U#z8=%zzy]9̑M{$H ^^ Ns ¶tZc^Gz)TJ<WnP$?%,x 7iDi픇RvC^FzLt~Fh< vw{5\T޷~iũR}wGdy|cϑͣw_5=/XO}EVjʷ2ڳ h5ڟ*tbʐI QBW̄tH U:~SUTl41@Tgg9|ۓ?j H{FYOAc vp@y&hݦdgc^ʛ^AΟQ| EqVE5#jKG4hYe{Pe?>Z(˽\c(%<C #gcy&jHML l_]^9>~9;ڐuk[ν3'~/pvkLrҩSNǛ3Fz~lՐ. \/ x⒨M7jsoWK eq2, +Gߝ:Xa5Z{Ϛ.1y1*0roއ~Db3mb4mUF(|JbN>uJAE?AfDF>X!Zii} q @O?ړV iEtQቑ+bnN|s>1_mǖK8[k5.^c{Tywo;ssG#C sF9>Cžowq_}e:2۞l?өN|wm\?n\WhJ<䔽ty'|5a\yt6LW1&;JIX-n4puR@T5X%BI0?¨8i'ղ+ {[U͍EXǮ.( G9q-Hk O$gΚ~/WШIx+[(Zۤt:{DsyA0C!fgn{{E\4>m}d)9+ó+DQV6m-*s ^_fEVFm}#ΧFru?~pyX)4jɮ N`>6uMKS7@77j<"Aґfsa7^Sǭ%%D8 :{&הs}UDzp}{M\o՗7ac{}f7&o..O=٧x_>aWۥ+ڧœ2}bױM>v~?.{ (/b=`5S9GsإpZ@B+ܑċ)t(dv[t@4) y/*z!QB;P 9h}|!/yMįKYKN`!xG1:իC_Q'O[`3qtf;Bɛ9|qc9qTF4˦@M3P U{î&+d6xʑ 4/}2尐_kR%uͷSz}O,oz[(@r+.mF^jQ^USNwMb7٨÷Z+^MsK 7>Ry?+L3,6E)-AP,ށ[Ԕs9U]6M\}N'85--2=(pݢz!КQP]\e}xHYm(?}DFE %arK2 u_4ν{2R:lv6=[&ɽni,Tpz»6xܠZzUQ-9OA~nqG謍 'ޮ*'ï?ښPи!Pz%\*G{ ulw8]05]VbqⰣA*j_A7nJ2gD#^p;;7ҦN+(f) P7dfs@^sSOzf(ĸ@qgW)33Rx&XkC 1Hm;R`]&+UWLxO aJ**k}vAcBp`5g4E=a_ҪLܧmkmOPaOnCJGFgʍnJ&8"nYzG{Ғ!t{rgs+[дR?3/e% JcЊѕ?Qz"vu{md"Yr F NLm:V oJW'{TW`bd7 V \94}WC{{Tkĵ_vٿuEHZO"a$I\IibA-s+^5IPۜp$:v] 8]zńs?bMvءJwĦ7 Bc>QR }x@.. [-h2@+3/ ~m;+`t:$`fq ]H;AFȀ8͸L;4SfxH:">>sIrۿ1 ۈ~$;6س`K' 9r Icd4U=)18ݷCI z>Y&H< hϿeq{x(YXȉ(::[-Ĝݯ;z86mNmt5;bUh@*_?}ΔG_feNeH7fG+;&^[={߾=ZD= &5ɬ4^Z)/(=i-tD溒Wf O Q1h΂HqhD骂ɛPFDK@qI]JY l@ ԱNŘpY‰vv ?`6 䭁,!R 8`Wy yo P90Ean Ȉ%ggw&jr,GdpI4\C\G6h50tآNntWZ/`R`&*fvU֐f~YY }7׭vKȉ~ZxLF ?H@W2r%G{5O7>9*S==ag6kޒ a3+̩=Qvs97:Aj Ov/d)+vON4& LzTwuJl]pF$z\UDP6J)J@iIr2Vb^*Y6Ǐ7@;ʨ^0wH#c@d [%#uM_*yu4Is cU޽К$GJiC0+{ڏu% c~gd{ET]~ hxͨ:.4w V-v0HP-]#aVYn'~GFv/k=FwB_aJot`38Y^~n۶477s-WM6īB$82|t.Ϥd;=[QB5 D~ob[[ON8}t9W@9-[Ex7'#v,)ԕ=b2dcOA'D.%g+mB'K䝚2P[eWfG~KI2ş 5_VʴzXJ3i[9AH5M( ЩG3!-|2Uzr>Z4D*JXfc,O;+"khwc"?N_/ '9v@uh-9<s5 }'䱽dΙ|$SA 㱹!c~jOhAGZQa^^[PE|7JJ%jAg "!B8kՌ(z!.7 +9eaE陧4lD/!TKݺ>}F}.o.g܄9jRV0{wDYi!1"dg)2ѭ 3oZoy|*:Hj&xMcܼ'ASsh,@]-a:)b8m˝vK/ín}0:9a*ΉՓO^㊚L͚pc]+MOa飖|AP0csHqa{;2NY|ݑ%Ԃt7Ɇc9u1;(}u)SjOzvPO_e GK]; 584~ZEo{zfe=cf)RKV ۶>|Z f^i}D4*Cr5]?1)ԷJ^ȕ m6''OɤPQ$\-.XADxZ.I)VgeFҿ> *&F d ]oA1/rFk/΂g4Cpuוa20G{H.2iJK NIhNV3d^}gdt|U9b>fjHDS--;2v6O˨6XWهRJVj#9j7| t"Tmw)Xqw} q[yQ$[&2iO·KrîW_5~d UR+{%c{.$܅ !nE]+z`.+QEBR23@H0gKԾmN{(ˁ !?-yblƀ]Jy3>;x@?x?*J㳁w#^[, b-nbL|4PXL;&Xl: Ff|q6 |C)?c$YCmty$n;MzmSY=9@:~H,#2WyfveNھCv 6uMQCC򝺼 Ka}Z6GƘf/gJɎd8API6;'U(wWaEY&i,bBJW*TB4C+n ~cW#Dkhv#~ٽjrVO,ô3#ڌyv};)uJ!ER6@XN1a?̀W<'&'}9C/s?toq.8gފ/ں vbEspSx&'K)cںpAk~//TBZ$rNş ƂV`К"PÐAG9D\S~;')Gx m24|0=|YOx +HQmyuv,ULGp]1=)৷N DAMXS, (Ҩ}iFzW*6$.USt!B=QdғĦ?G VH*P:X۪K&JoޕQs|Nw@)WP^)jj?u߼(׷4獨&߁)\4xKg {3a&pSY&0%:IhyTr#e) FR/M;eF6 1Em! XL{/q ӶǙfLnmV"0Uů}t6sAB}|GWIXo`p6lBx@YlǾcOs9J#3%vo!W k៟e>Tx\.Mzl;$JǪ$qUT(Ru! bR`qX$ y(?ٿ*]>x9_D͐SuUl 9e,lwO[2w/+bŲKƯVxU6@,B U:̰fTaWCm é}ĮհêF.➨>SDCv\ нtC]^/qdJ$[`l_qj[atK҉5Xh;b&PH)Bր`Rw@]]G-dRƉ9;Fr;JҨ:j{}V^,IF#]AF2xS7{,'V?fEwU a$0t5)XQ=}ŋn%Pfm]y+Fjo_$i)38HB'f'e'd=b s SD AkIB~3#ʪiY=M~2qa\~B3/.ӥt~;1Ziob 9V$`99ʘL~-η*yyAm @(t]zSlFzCDG@{ꯂ FS>yZa%pt7`܆y^+}M^h29LP"+/=/bdDNڢr+;Ñݓ=yWHCswgOˊV5gLfToRZYy<6T۠8MKMg}7I& QL\ʸ9g2Y$,:#А~~SNTI1Gކ->p2ROLb߹l{vtgGu0?7T~AAs}͓3(Eg/忽*eq|b 7:%'#iV>xfS^N',-s89S!f&ߠͪ \߮O2a)0nnx87a1 }g]{ߨ"V^:,+RY@Jm $wyû,.gpZ3̀o}s\L?r&Gd:4u;OL$ԚA6>c\d&"3%He;wJ>E_?]/P\hÇ{>" ~)3N-bɁ~J62Ҝc?mwk G#` EB#Ϝ}2={`#$bJ3cd:UА-c@S"E$]rgRRpOtI? asV,-b-L A,uogk+(DEÝ4N>Y0XfҀ?G.u~ݺ)r!+34nĨ8jD;[$iSs" &n dJp~Dە*}*I6B"8Ɔ~Lx 9 拳HnY?Va9c\P,P!8d I7ݸj7%OpS8Gxg9qd@ +ͨ`uVhw]*pfLGU"q w%LMr{gsllc;ծWm*&5 Ĺ.KvHї!gb m5: {B;﹗E.?(v|w(y̏2;`}E6waހwuь:ث9bx\3g͵¥}o` ֶo `" M_X;9-S3\gu5$U'= 1ސ:rݺ}]l+$vSz lP c!D翼>Oaw- Ev%O?9{m~z/9Ba0CuLו:JI8бQ׏u[x4qXJ>^'TJo!m𿮸o*:bCes)*9^f] _o23:UB4 :XCG*י~re܀Az;bkl]& 0GsypX/L>B᩸ekJǿRJP e.l1ŨT E8Ky"G,}-,"6StfpfNχvۖ\Y.2Vz^c7J;^a.u8wo- %GMt)WU? 8PthЮs_D}E2(+]}@6N䪑]/_GG$q1[c"O~ +֯mK  2h08OchShz&ƻ-I'%-B{γ{^F{Ip_yP v?|nP9\. j 1 /o6̒[0k [Bͩ+e*5_vx5,O\%e^ٍIf[Ơq{";&oe/e@ 'E|21"Y?bRJ&1!An0 ^03T/9/ nb=Q&8!P" р _H˲ ɄpwrS0=!{+2`:pT2Įt6_A_ϱprjc9 gvLÃ#Rb+#,>{i:ORSm0$O5wH\Q ݒDXYpI:5b8 Lz-u5kDz Dy34sG[5xWm.W&V)`DJ&uqKOb3TNq#3"6 fu8dX:/R Jg|࠼H{@Ѹ;Eg^G#"05QuJ&SkVdLhP5}h׊nZcz:푦u: k  s&Lč/oQO,Nv68ޤ>> )m `.%_?>3z[ !C}RB҉-{@Ea.0@Ϝ笪HPhmo.*Lf,oA@LFMtJFmxcTSdN;%@kcD>E3I;Tvrv959hbo[R8Ŵ@)]8hPQ0 g]!ۉӉ"׀= B \]1OEO(+V!;Arոz?d{8~?E!gKƪ@*u9!xb UL{͠xƔj%3Rk@ &^EAs {]kO@!NAt$?&unKx UAi-)X"*!P\& [Vxdލ1E1_sU5`!g&Yn,*^0DANez%-Պ¤m9ϨwsSxAZ]*!y7G%W [`:,lP N›xKmR6y%9Jԋ]HʝC-6nO.ttV/wJua8zT$֕.kjZ;:-BA6|8r\9әt.6<@rkʽ+%/+0 1{s"HH5ьfPI|1`)p8c-.S1R?:< eq' PAZnq 392%u!6(YA|͛[RA&gjw &up!$GH0&h]U(?U=A'_ t SwwO5B&,9dʿP4D &,bR"Eh6&]-!(?VS>F&泡z8ZO{,gPNOR Ma3LએXk-Bw6@TT,5r4p%%g׉*jT4<$8eN}Үwl+*,NHj ;ݴY. O !M\_p߲+>ؠ8Y_A#;k5'SԼ Ond> 6ŽŢ,EV&l`#cnꎠs HՀ~I M-.J 3,,fxn@ t ~rN6f䛾aGM@v p?yzF "~Gqq?m&w ;&u)N΢Oef^LmH^%W #AMTR`BHzUxkϸL!vA4KN=~>9 Z%s "FtDD_t,88D!a^U)nCuͲ(Ü2ndžS{7FLT8@WR/,̲2wGTtƊ.:,~_3^nj$wơ/nGnA{)L7g&J'qlpՙbx W!X  ҁؤ5]|RǬDo!|)hf]-x] eI5H}CEJi$}ոT'p(( #62 W|ARv%G" p bOkJGrrbOJ Q+ApM|&؞4!%2<lboWLCKʌ]A8KF18ܩdjrT_>d-$m6'ŭna ARnyzh5BIJ[JΜ͠>J/HfAf'jЁ߀= DMDŽ_[\jC%do͇ط[&nTE#2ש LbS3WE0~ٽA7׀JT6[\LgfOwűVp¹.̦c&<.A+^,1 s QAy(˭W7QJ&Ax`X)6R/ XhNP L@q~" -፷{hїRQ; PV =CVd/; }ՒȿYo:[a k5ZXf]]H'39);樘~MpҷGѿ/La84)Jz# r2~⍚pscIE2u9Sb"ZKO$v/R3<96 U%o4؆Q9?- }SWSF~=\ Xxdjnk9(Y9fQ=Sf' Idn|S1X5K1놊 ,m($;hgj.qD:8i4'6f-%N~J"uQKԺRiϋ?~@cKzB'ބ. !Pn{^k' 儍m1לq*wUHpЍ_ц*(^6-|ilI_3`Dc7+ҧ[ w2 }X*ϨD.[־N ~#.''=oÙjAg{t$en-֭J6lr^-&G>;(j4f`t۷=:krs]*z σs i+ %8 =ontq/GS`xŹ N= X%9CܮFM J!c^904lŘ+%HvZO˽?i ib`!y揑V.Mŗ_e]z4n0eXs*3=kiF&9iu6L'#s#'8g44P :W&,ljѪnK wDGEl+![g'۪Q(R6 ̳f€ޕ4f}-F"zwq/6%|uF-Ao[ }:^G[Rk'b^ϡZjsK#B&mC^)g~B@}wVL$O .bJNentHcQ\qr ]pۙeD~rlpCZǨAS_7&LC sF?tOy6,0f;Yr;գG ~x,y32pk :Y/ǁϧ~P@fr1і|#ޕl -S)sݕ1*i*9rtĊXf0*NےȜ$ Yzҩ.F9tN~>l VQQgCC4kR\;hN768etg&6,M *={":/dg6;T@&krO{D(&-MjLNEUgYJk՞tXz,a?5Co,WQB&`7*k.hʇAu'|@J:dtǶߕ;?y:jNhֲH.׹ϮzУR@MtaY>\[ԇ]jެ{,؁~r2Ya=˾#Yvup*TjE;Z$~&*&d&B5y,v)"=DÖd+,UQ]ѦϏɡϧ0%],Itth슬W}G!Jz%Qj[9`S?JTKZSOK^궑wģgܙ/;0oһ ݿc~+?]wdwY\.qt|Fl NKElGܗW0rjP̡z.r< =Tw\gG9aƊri(nyV݀AVbAg "'uMb~jϮK`!ҤU+LLTV 1"`L|խ R{xSoLN 4W>yvjIa`ApJf[9Q%ҙZdoELIDFq>#:+ia,RwTAt_1Pb_Ykx6+Rc*O{LDu-#vFȣR]a2sv6xǭD֦U9vF,^jɁ~jmV?'zBHFaXXvR[p`[[WH~<|;UzIZƆX9bw쿛킟DG/rAnvp`c`#^>K>a³gKm7$?VW7'hj%טk:y<\TB\jt,u.&.g_NW՛hb5Eɷ)tB .> 8 _#Պhk!Z-q!LwD£q@Ct 5³u4ԶЗOxܨϳi̧e&gmۮZ4EM[sUgf徶W~r z\2 \O:.z֦ {3/yRf$6 P6w;`r$[9?33UHܓr|sW_/2pj)3˽xb$̂U?֖˥"kك{ *`Vk;LmfY%XzR8흜<3SEy44Q[| `K\xwGt#DM=1sZڧ~"ŽF\ujhO9@a@ M,xEkQ昵ccyrcU8h (,*խy9,'~j"{1rK UOCh3cEgK2= \Tin3[Jۑ7P&EaI麖}=|A;a%;7>VS~(իUC ]⇰ `pqsP6Y]8Xyүv(GCW JE-)[QKճqSSsW[k8M o3xSsI8[,J:q{T9|ʨb\uB-%^el~6nD"7]/V3O&+^"V i4q'/BDgWeNGDb6d9ݷL|]Z ί(ߦoT*S2ubE{uKM-ٗ!O^~J9%ͪpbT,֥0 ^T_M th5\8\5/] \c򅠳K_o 0dwmm&iÕŕ57kHikHW3W|I)M,cD~G PrՇh-0_)+`L+ 5?` S, YqnsB(yAZ?]3/7nk3JL-R_8r v9hkN֦:Fa#. =Xt- \+ivk@].j&|C*c18 dӃw?2T:f8&$ϝ#љ,cz ~[Iݳ? K.ـw+hoZsɪ?yL+Uj~H1c҃ZI$[?~ D[$ɒ=у- U(w^}[<K:ӹĦMO+A[LӬcqNӝ2|qH)qP$HbGS},ҕwfʡonV—oN X2Axe \]U?![ngMY|-er"?#xf7ׄ'*ZȠi } VU$Ss8gVG%0s}C,fP A S$ bVJ?Kd+ E-(3.O嘜SY`vfrIg?I^|*cm{Bb6ʰjF_՛|^Z[L?+y">EԄPJe1T|zz&iH$'cA%z93^7q/X_5{ w ⨘r.ПshQO]؋ /&,:W/6r,1:O[{,2Hr+_Uʓ Ug= ,w87Tǵ''*"ҭL,:NEts#Mv"|YޥgݎytOL>BP <)FT^T7,Sjipp Nj"J$&9ڜ21g`X`Oh7ODW ME8;p$&gqkZ\%S] X*e&DU..jՊߨ y!x}1F\鄣HSө$]c;/$ɨtDZK7£svˏqC'WD|[W3?B_JMȧ$Df|pQOuY0ߛřsv2R=IkKvpUD h%خ-h%=B <ĨT0jӑV^//4k࿔g#;'^kVCE8HeK=}`{Ǿd7Zp &&ty-BT5"I:sE`Ԏ/38lƓ1a( .أָ3:bs+"EY}sKR!bDF²n)Jxh3;+2_g:L}҄#o)p&~jbq??,,2}q. M%ѷ/g)}#Rxأ,n*xUbK޽#'M!/ KPTLj{6r@||s>CVwtfG 0,NWr'-vpro1<^ZYWi&"n}4YF`H:V>%]>ky>bn>KN:44yeIOrlowRHx#av&h͏!p_.)8`c=KF*P/p#|e%[/>'?g9uwmzND_C ϼLohˢoBXgK3%yl:zrRNf!q'Lb(.Ղ⤈?>.<}:/7H19²:Y/i3iSmX@(d'om@jX[ U%5HDkT!#`U IQuY9=a&=+iR~NhdvڤD@-\4$o9IdDe'G[`6(rjG~f"UITՋ_:;.M@:6 RZdj<] z s}RkFCT;ۦ_x݂40_2>nB7XBEYXXw.!dݢT_ArXe=X1qiW)¶CI_뇜<H&ڊ4:F73Z3y?8tn~eɂRE sh3 U Tюʹ=~Wjj%@BbCf5m`UA'* R9;[- V82kScnH 4̓ыv,8z凷 ~hMS9H` DC:EJh:{=Y\6 ژT|8zY<^\Uak8Q!sOi80_;?A *(_2Ԗ#ѷ)θQ;uMN! 3):?;kz?8&gƨ␫)dĦ+l K.*oh b~qO"9RR㯲}70XCV'mx`G\GuV:U7ݡQ|I&Bb@*xw;RD]BS$B(Odޖ!o?z10E:- oXt78i3:-"8=veTA⦲`vw8זe%'1hg~rnm F#̜x9!ݛ_ <dr[&谰_C#߃yE6L=9st[gw|YPKʞL1Ntnuvola/128x128/apps/style.pngUT LlA4Qux uyy<{vnn1ք'c eJ$i1v-T2DɖmJǧ1X*˴<Ҟlk~>zlU*JzJ>+WdI"(^Ea\ k 6gϴĕ(기D`hz+0] E=DyH,SBAޚB`o@<10LpQWPVFE`+ c+ +82گ4:S 7ܶwA0k9uJ"fHC!B\}?rUz<ܻfq03 9MP D7dLo6zAhy2@)9Q֎@9e!j> 6>F ;2P*u\o' >3n똽7o+]]H3\ap&Nd:E 4,C5˺I̥VNg3n9_E|dcu9 ccs ED.?\6>6;\b! [ƹ’2=W]kycsKt\r>յcEЁe_Wbza8sH!vF-~P*\049{a}55v.$Εfܸ% ='@<^m cf=N|6l ;3TӀ2H_dfXR';{h[HBC/Ƃ9 |MOɅC}h42ƪc EtEl#ttq_L(U65whpWiTZY:V Ff8yԸK3FڛY{nQClvN([2 0b=Noo#H+3}A=6pƀ揻r_ͭK/eGC;unOLSkZIّAIAKY4"~ۏ6:p$Lj42}bڿקr/A-.fS= E% Yn'Wx ޼+mJ;}6=93Ҕ^5&kWM;Cڇ궐ݓϻD\Mz\oE&xB'o &lA[LlgDžَ;c˔E.xPΚB4~q|2gQ-–.\˻*sOg"&1P7+$z}On!#Yfj+ͬ1  `y *Z!;?#c >ҴiZ#-TE`~W'NphTww(!f2&aUW:'^ P_q h ]oV"@8r[_z_>m~TY'?K YS-APxz?!,?P)Lfy?^zUȺ:Rټ{(|6uibni3[!)6}/5YLU@n)#@mLꒉǧZ"@\''-ZGZӒ)FcX;j@` \WJ)v3V˝fFˍ[ N7h7>_\} rF T Mr{~EП,Ls+$$v&rh%-DZ!%X]`=8H+M#>Vw +Wjj7r0= ^Wւ~pHr h([ F^ T2(?K-c-٬SY;=l$|T>I{BvMX[[G  08$D4,8"Vpyq0O#m{Co_IL.` J)rmnWԥ%f!<_$QFUl}d Rlu|ʏ{p$^&5[;⌋o3ݡLX[Pi8'4X/ziR9o2m-Y$POMuڑY_J6Ȧ>6@3N̩>3]e \ $4T⤔69؅zDt ̰?jL>kD iP՞@n5 ac@K1+8޿4szilǝFDG-T|vɶ`S7$GOiQ.j A8ۃm}GsHwbs*Ё쩁ͣL3M #կv!3ܪ]X[7ۿ rt JX2O ejyބBi')!t҄-~{])cy$Wto峅,Y7I hVP90l 3!3Q/S&|Tas!X*i+ [4E{c!'ɅahN*.ȬYR''lE{.ThTyX2R0`b]RJod}tn Xt֑'Tt6E-袗|e%eqK̥F>{,qUhK3Y-z6T#b}a"wTU8#ےtJ+@I7ū䜓JtT JJɌ{WӘ0ͅUeԜJ*4dpO{Pw 27zإHǏ9pꖷⰊ0_6 "9,4wp}!E2X !B.TI?ءv1D- x)׶¦cvë1l *b;4R$MdidtqẎWNFJ24۬`xŚzxk8"SIBt[VEWPal+%%)1>6'.~qy śOGQ;ZZpJՕun1NGε2MH^ܝræPS¯@!gOVf֜P/lYps>::,C눈wǁޙsMα֭C榼)HwrQtj@Wtz꺣Qώe>=L}Zw =@ZuG#N&Ul1Yau(.s{\L\4vJrfK'Rf[d#T`fde;?-ѷB m//_tU Vl3Ş_dJKL\{k! yAim{)Ib>5u4, ˌh7v θ1 P8VuAb'%2 SU?N=L> Ï tq)0Nec3n,|.xZo)dj#hQ9 !n&%vP`x|3ʧ qsۿfl gKO'o^;x>7WG-]%Tgy \k=.2"*X] 9$4yAӗqyfzg i{B pOtS~bE#_G>ư>33.[x۳ ?cw 7E \ԇ>R@lFd.(+z:?"n1*-7Me#G}ԺBϬ֙R6=ɷs9EV (f޿ymV; (\}$ 0آ*ՑFJT,iKFT@ E+ =V[j>C) x">B@IpZ2{ƞ*K5_w:n~&H\m*.1l'5zfV)95,B巾\n.#vߺc 4G%rQyb/i{3^Y!q|=86>zs,2V]]Pvgc*!2+>HJV{4>\ۗ:gqoW~^MtSʮׇb/CKHZ ]i) z+b}m4lG?-Yz,7eE >\L cq.,C)7S~5KN~Ֆ4>9wݔl GEZoӤrqmQnkˆ 9ߕ/]tR=r:a@VI]UQU8;%Ff~T`;7bêgPQ_C}J_x HgL`LƎam&S~ f;}nv5> ƑVgz?gyfz}.=clk,[.YJpJ؊0Xݕ:R@+f!/v x.ɩ@4T{u/pw!ohAbw;3 SI/ߪcyFS6Y߆3*LsjMtڻe_x<>_Ϳc_屘K_Ǟ0ϑwi-NNFZ'|1KPktsVG 鎙Ic8^ŕ a9_Qİ?x6`Ek*U?jr;[]M:OAG_Ci:TsΣ#%\kjZv&gj ^GYt6?7)v+S1UeIy_3 g34*K)n=81xp vE9'K4^I9o΍ȚӤ6_X 7l.׈(D2C^b`->JQI{df''1b=M;@`L1LbŌS[/*|N]Wxc`Gx: ҼR*;BTr 3r odNUp }o2^xK<~YP._sW^@!`LFNB$5> |hdazӊuQrg3_&.n }S0唱>'(M:"W:lD(];.Go_¡d]{t^δ V`NvX?4! Uˁ+Oq,B8#3*&eһxEx}ߒda4T@Ѭ?%90 J%n;W =DNpXlj{hqt˾/^cY!V?_5?&[dN&|:Ka<"$-JS^Q:>SȻjoy$N&OΜ+IU6Uu2 i{4;C ;_yu(+í}r8 x0Jgs䓥i4nz݋dn-^ )&VJfE*o^(qZ6﬊=z_JsWNKY</nAr\-R6B#p9?6Ӂʍo. glTٳ&v&&Qhu:_߲u+8W&?tZ^)ЎcӸRH$ԯ!o8e&GE^nN]‚泔oLwpW %&.-fD k);nFN4!.S5rҩSqO82Ѓ*L8{=9: FˍW ^GU<0.i'o1\_ |cq* }*,tZt3C_x5%YlԶt1ݾukҵ|;8tgُsss4{9[ BϿxМRy^gK"Ϳ.L+2:N`{G[;'&aaƒ IٯlSYU*|rlhЊX-=LE2P9~ִ;~7Sm#TQVWX}[ڥ_5pXoI'I {a| g鋡Lv4d:1s %m }}}ҽ?hE/F&Fg> Yf{}i*?h}5nfVQ}Jt[ vSHpbܰ>뮪XIHhvU_ ֏ +bz-n,]dveW0A N0ARDNsP-HSF|cX7n B !ʪ1'm[TGQ!Z +_Kz}uRw|r=>`Cpi>p~27G,9#F"PPVtOGiG;ٕ -&Uk ;%9 '-Q4H 9_6Wo?Tb/I[PگX3}FԀ+ =dCS͊6Z Zb&8ЍMK)j,9\V _Bm nb܊f/U4gZ+3nDբ^iχ<"xRR`.(Bg=0wʯK?GX]LF֝/:Ŭy0}cGG_ iI|/AQQW/~;Bkx^';PKΞL1"#"nuvola/128x128/apps/stylesheet.pngUT TlA4Qux z{\sw ܸF|[T|8k "GPt' t~GIK,X+ ATiڠ\.ą,@rtlq0q|T<<-|#nvU!ԷC$9o0Bk&%^e_ Q~]E`]>|t+USÏ*/#a[\I>A4$?J3 c9T? urjSŋ 5W3vey>|3se1*Sڽ_Ȭ"Ew.S.*'.~ynM/_*bokSbQ ֢_s̩"hHwF\+ "]~&[-kSƹKZ>io9W\C 6]U2 L)xE eFGGi]VGd$ҋ %.(E=*U, C2 ^tby/(.V˰81?43L锓 cMȤe;'KB[ךǯ_\]!!l߹1MP >9EP-{_-i? E  ٵ(vo 83䀸}*ofIgC<@spɞۧ"6_[EUkqvv-AT:Z;l\%AxW]`9#'b[J!?+M*(;p[4\ gTA.~!U |^FmEGq(]Qn~$&ܒGEݢ٪l"YP6~ˤٹP#ǀ{sO8zdXLL05aD sɰlqI(l"k ! ゴ?tރR3fX$n7*:u(E2AN:Wmivr|pMT׭hFY ~3}f$?e"P>%LgaY0wϡ9c>N_c~k. >o Wץݚ).}X*#6>wȴ{0֦fl߿~>~UN66\L_")nƯ(㾥vpI<\Y:~iAmx_JG<(ѳo!İ9DBi#2 v<:6TNHrESWLɕ5~WFF3S.=+F87Y ? Y+yAGɓT~R7}IO *ծh֣H2"8Udyzs1arJF7-2ūWge@deesin;_ cg >|)Oöi 7~7*koh '8{xzQIY+r>Osø%4[ =WV{\2L, ֤ VR5VȭC,/[V[N6A} [>S6k i$6"*Zp6K[Q+m+e凲| gU],k]odžiԺaOWd   [y/wgCVUb̎Fsm4ϯ\n}2Ƈ?xR>iWS /NpXḛ2 G(fܨP8V|_̿'B m=9~$P2t$1HՓv6~=,,G3T !5A{^ C˜~c\.v ߡęmZL]۪wH?thMCrDF(<@# sc57+;`xgeCA⨨)yprE4N`v߈ 9;yf(,[HBixfgIteI@=I1_R_WM[ah[N[t̓`/8V,7ʅu7={ nT_8v@UfBVrbٽAISdiwf;z:{w"AOaY+!X[~\z~ PO){dp/zw।XV~¿J,J\R=5V.HW>.ڧ4Hfq@/^NmKL]:P]ڐf2r*cb`k\r~z-ӚlECnPD`geXeU ߇RhyI-ZU/uLAxۇ6"jm±]Ű@+.K%=U)9c@*\OP,1BC7p*2fhJS0% ,izh0\@.@O\&dӐ0Es7"yUAێ'2& 3x @z.ug7F_kwh*O-'j -G( yL 4^twSe)B9 pg}=?jCݷ^#2QbZ}?or]&o/d!7gdRZ1,~ĩ_#^̩?u=~[PtSO;50R]I$ɦVKW'D&=VDOK;!y1X p2,0rS8ェKru>cM6e;VZܭ7&o\>ӈ n\4zUD7gJ6:Sy!ehR(o)dg؏L0;," Op }*H5Bu)V )KQqI}xyU:12|5mr tlMlHS &{0G7lH?sݭñ3,W|C **[WO|.4C'<xZxKZ4sȩhj(OWãC\RoE~ǜFԸJ% IX'65/;jSZJoX#lzz{?;Zw K:Pf mO].'.[FYRXTn$>'k%_ʣ_wpyq5um- eoTzP~a LD(""ZDoNɣ F &v͑4 (=ZĚ)f]M1rQq'WgZcrg4-kqze2U5Y'j4v+|'&)5%..½ʸsO`)s%7Zr{HZNf >?$;M! |QId`S"쑼*u $J{ Pٷ|8?O=HU]G{{9}l^6ݤ.Tgcuj$[B/&d ~Υ4 {YO[Vdhk$ ^_.dO'C)H=،Sߑq (v SЯQEw?uuD èɏ梋v 1k .XlZXCuDh6z9ʽdAB!W33Mc=dg#ԋ_a豁KNLaa GJ BƺBϒI1KdjBU&C70xdsΑpO)]ЧO-w@W[{;+Xẻ ns].[z yi!k1}8N1Y8u2fghdQq[h#}d3.Sfty;OLǯ>L/R3 e3 x `}=AHUiFB 6D@>Af.bf4y*fqⲲjљW k벰MAÆOF(#k"+ki=hUE&n6ZŵNi3mj~KL/ +o\ n %;gX7ݤ|B0cSϴ{!: g!+b)ADJٞ%,ݍrC#c0V @J'-yz&9Sw`2U>d):=؇ŅW0qq/).BћRՃw1%jV"4 dudB{l3IrH4F=23Ǒ(LmY7Zwɳulډ]K\iD@!HGۉ--5@CHa^+ 438̖MK ~A}\*XW.ڊ)C odz q cDVggB<$٨_kBDGu6?v|,:Zo~Vף>sH}M"ہ4T ?[\c {x7@ȅ?PKўL1A3# nuvola/128x128/apps/terminal.pngUT ZlA4Qux yy8o3Yf:֙0#d7c'eZD(3d %Y oӪ ER**2Q"5Y3_s<1suy}ڋ  `_pen}0o=ACr.߂{3g;?P9Np f88XTXq3Pv<[6hjg/Qσ t@IoA SPC)D!L@n@T`ܠY;z{*D'KoLwَ.-VRQl =,V덢{Gחg-!kb! ~q&$ ЧqN?y4Hd>ڐg ٟnI,]_*c S^`ݸ<~WJ'%V,Œs]rb> ☶(%HTaOP,m6M8[#-JC֨٥](Bjﱮ(a~6]p L)}6ի'neākk\P%qðegJXidɫ&\*QM,TkpT\vNؑ C` c*^%sf~-[y r/lp&뙝 Eoz ?fd/#`FڨiuL`hFu^ַ.9<7Q$KF  )ף`泑ø+bW綉ݓ\'L>l4s\_ 7XUX$Q B%V>0c>\5=޽RsQ&>3vk~gH/* U@|3$mKԏW2fM5Fz$./C8GZ!_@*׀2FSQo\ho>~P"*dt+*c. i'05@oЌ)q`ąv#7)lc:@FcK3d(}i bֳDag~xH[ ںFI r< ޵A@V'_D\Q`c;zNL> jE TYYٜ-'`xSaqkשz驟uB-Kowz*Hڰx}WH I03sɌ(o! ijj&uwW%BZH؁%֔eNeJn W'~&0_qmLmBOY  MO ;Pߘ=A? F$`#G,4:A90E Arjq!\fPR0<$!-m'k HqA*˛bB) in ="YH)M];V! ^xfrR{A&wi+^d( 77w2^tTKJ9RYN>ڦCOerxIw.Sm$$MÇB,-ЃuAAemHաVJ$}CǦ=Lb?jM20:e' vue/wG=]1B71=ݚsӥ;4G`R|(!fiTѱ^oj3TN䰇 ineA}g]]T A4GKÛ^; 2^ kletȏvkjys3A9OKpJkت;np`x) gSiH,5@̯ͷrs3ARRRs&C/?k'/lޙ(zVjkzg&Ȉjbmt*5־~K <|Wd4Z(Hb8_Ԕ && ߮kD.{a*PuDwIlńFh$츰^+ĖWqW d+++ пEP===(eeelm̼r䄄xv=,?U%?fĊ}$LWWDrhv_u{Zrl-Q <<+ `fZ̉'ig @'Gc̾xX-YCS+y'B/?ҽrE bg7: ;7)OTV?[W$ˈv$[au|HQ߮CzZZR62ף*jfo6mۀZ [ M:\N 6BFm&)a% 6GL/ZۆL``엮._uҊ]zp =v~jpO/iŨu zLw`-38 G J7>3Tجɹpex9 m/&;8+\E52G0kb^üNO[E< %l.gf+\5:9j6Pcდ"EЫq{լ…>FD͌]$vhL&XPL y[^dq0w7'k\u rŒ ۳nn2 ֗ʜ3$V\d*]j4~Cgf?pQDqb0mj9!*fKSF|qF6777x\VT7I999z1x|a!_`g= zeKN#|e8؈u#%H(HƧ3VD;mv T^<,QR_WfisTȾ%Kr0++U(3#yi\֢%h1'0=;u}Ruadtt0°LD//վ2 0jƙAƊVžR FuF+Dǩj֏zPe׍ĠԔ ?q>jI(=x"5%!Lz9_{!PNط`50ѿ5֔ǥ& ь&CVpp:UXԒIJ)f}lm3xRë>52/\aկS~3>S>4c1cbBQ'WsXl! 0\x -Ja]$Ql2~]\\`W:!0J7K "x< yLzy_̫ .9F^d #ʑ*Usx𗮟A>{wNFώb Eum*bO|I~ $nHjX5Gny ˹vLx', } '.HRU+K&N Y.(³I>u>#N)]^kejwaj00G?Wh R:|*z@z[wsf8:c~~9Ç-u{pe`ԎBX l~aEd2͛8{}!ì2VO6NJf+V~mt| M+㏈EuVbz/j0 PK \µ\*NA!/#Lu(VVŧ~HYlM/a&<qU@ N1 ػh7v k_#V:?%"'T.zAGm,"}nMUoBxD.>Or#^_׻_ƌ(}Gw ƧucՓi{7ZRmPUTP4KH֘2ca7d]e{E/U} W{&*6^Cp+8OY 汘j64s v;qw_QO0̵[ktY7q~ G!/D(ѾH]|6HKOo FG/!P5 {uz֢lH-vqSB:(Xn`5@Yԃ=(y +?0 /{*OLDͭp#Te^/88 DWy^ڎȯwزoG(f"6~K( /HᒞU7έzۢ~9I!im0ūI!ղvͽ`IS1(?ݴK;ɶ6ƺ+[e.M|15(L O@K{ M|7A)nm\Nݍo7?nmgT1tc%Ll_EkaشcDeli7RCih_a\MC쎜%(ݵuLnf.3mC$U|"n{,͓!oXcnOaԺ8H” w>tD=V#OкɥBحfV)"&6873Dڦ5.?_~|rkLp2l_m,gaCw1KgwuʾҧC|꽛wȞT=5Em'i\B?GFb6@1Rn@݉: ļ{vi\ҕ[@Gy՟·vu3c?>Ō Q6ۿӀH`Rو3>Zt*ttRX\V}&'(3|1I}%-܉Q[-_2ek^yu?yVi|smI$ϙ[4~O tVd[T޾i7.;P<b`1zW <Nȯ4ȱĂE謾O%c뺅e)\E>N G=6}3qדg/v}<݇sFFa}H1\I~9!Li]ALO5uE-D}Z*1l4)[4b $t{ 6Ejo(6(aΊ@^GZFL9(jy8teJPp4y?wW& :p]WUEEH>Gzۂ}aw#`m8nCBcf+PF4s c1wOL!el?XHch 4ҨV`wA_d3&`/B}?cFC"M&CWX N dCqcy?8!D!OME{G۽6eVPKԞL1@-t/nuvola/128x128/apps/usb.pngUT `lA4Qux ͺgT6F0@ UR$QDQQ*JIB tQ4,"BS!A -2/~w֚9kfٳ9kv4t`};Q+1{}@ .k9{wlB ು!:N |M=bD:-P1C-pT^&1p(Pe*B Cn Mȉ_OEX\\:?v;u(<[E":{#u˅/f+ 䀕2. O7["tHT994TߴXX%4ODQ[jA.+ 1(15Q~ QVoRG ]mrLbHǸ`#4n .b UvFi">\AӖFp*z郏T2P~{[|.Jb ԎbJwAoT9d/ {TH*Adc6 6[PUgƒL T%eG ez;؇A!>E&߸#Y^-TȥڨfUլV >ðN򮻒=5Ӥ䎓 z}J!-GrP Myiz+2ݤ,/_f,ܦ?-V?O`.Rj4^%fkԼ j'(\~}qok w !(5c' p/OӬu؀] ~mjrA: Z:2`Xp MPf`Sy].g@ @iz.AlM #'u ,4lKs]{RhW2bÃt#?G*8 |Ls)^i$$ተqDsgrNF:GT8nzdh Ave ?Fʸf^(%Rӎ^aMJ4%V\bS}JKZ2Vub[:u /X36N&!,bAcu4ʅ?LQi`ļe(~ "]qWGqiQC]pU]} K?e)lwcBkIs wgWȉ(yGmfO}DX1p1 2<k)I|, Uty~,E(qb w: PINk;*(MdY"UWOND&vŒmbq;[derbFO%ѿ$J('ܜ~D2k3I,Mv;7%[_R((^4T~ ]3)T<,YU"BVJM7K,bᆆ*(CӅY̽S0? zxj .Xx9!liQu+l o?Gn:=m>&J+NUUHs2hTo7bm+@2*\N\W5cض+NZ$I{`iLݦohӋkzors:3I9V qtsqy69CޭM9TDjvumDMOQp]G zv6Φ'!H}|,g>JeBjn){ p¸?3oxQ[+kGb+643t}UXBn˗ľ WYs{qkN3oYln"=P2Gq7 +?#-УcY>9 GA Xϗ,) xj*4y>FB< *ZN8q UiGjCNRI`nDu3cVd`Ay⪯?j2 9wI%9Ӝ%FwrQ~ȓX+y`_2v}/rE"AhӸ>9%i$>ȹDȂ )AO(_ݩQNXh(qa`"E mc~I%ܩj_o^le9|:;Gٝp;ft&蒼1+j,h[nCfsD*gՎŞ<S.A:x ұI&D o.&1FgF=\+:[{N_H\N넩/bm 1V8_~!\_1EY1;+$Enyyp ql#nдxov!l"P'>Sߊ)Q Fɗ~B-1^uzzNRz{~!\v\WfIH=|7chOH/L+ G,HZv5WjHʝWP$UWkclz-Oj(Ҥd{-M.RMG"0P<h]r"̞P3W{yLIxMbw6Pj h:DtNH%4;;;*-Dϛ MYd Z4ҫKX,p}#e6^Q9"ev!htʫM" fYM^ Rs3zB68ɅdDҊ#BZ%8JȄ_{WLa0RpXy%(&\J5ARBn兑Љį0ñ2r oY爐"` Ԯ'*0"^ Hb)1=hҺ- =.m_~Ƕ], y*|<WlO"H39 ?4Tuя~-ZݞvrG+f#EMMZH)_ski'H4.0{Naܕnܩ|"+ M6J;::tLK)inG i#ٝytZ2*&)u>Ꮐ":ڤ3L<@wR@CY-o?:aZT8%Dq##$XBq]Bv*9ܡP\$^/`_ ^^l)4ӕZ1qſ,s͗$m'qHf hMFm( 5GDA"}PC~ao'tdܿ4z7}qzG[uY*`~p79;dhACt[ 9LWăI T+Isȃ1@\c44Bi<'MjW-񄠩v$42uTF5iJTw`  6ON 2f-:q$vN5}M'HS3G?TG ~!$_3T [ne+Ⱦs%l~sSgWZ笞=3ZUJnC^MFjH;C=w:/~)rU TNb`O-#K HR6-} +bZ[]؟֕rxqOfȻl~'z7o4qm$~|U>=EmSp/?#âZi Oq'==)|fM1̽ZXU{mW!4ޝj9 ?Vm V:E n m%CrFؑdj^H[$Lf ]%:k/xB23] Mt[d2j'Sbo~y\?2ۺ"j&rFȰźBA _ hKs1п\uc6!M_K+|*w|O ]'gҐ[3پrKCju\m82CX2;#$FxƋ#EʙoFe͗}FV*L/ڴ]s[˟x8]dHFl VF3>Y O~nNk.1mMD^u<1pIOrZaFP{A\Y%>@]D].NtS$ni;3Bg!ݲ\ͼ1T,qErIAg(>*X,.۳LZ:"oZkOv4ϒw>usT|[ 9#ǤhC95%lMd3]W̹.?vW}c6HءޅpF y8>ӄz:?}PA0E+PϋƤW6_7SyPFg6^I(u7W$3N!YQ Oa E9n`f#4cQ>iM.ax1K[:=@T_jc }/=p5h,s73;o#/r)(>(`k$  6 9%3U)&sQ >8}H+3pLlk*hYWF[yЎ/6k{\UF,5܁lՅlv1'Q92qK6%ڝW_Qc( #.wG"yM\F}VgoD6-U٢̐0PoiG$m!Sz6ACzE '=s+ l#ۘ-Z iv) S4 u7-J~b᧩5͇m=i9\ԅ}&-^f!ůhT\"GEțAၛfYҸƷ%3ejuDTi%:diw쾳,lb V9\M$߫ș"LQkPYyƤqO@=ڈ4hsfu(QqmvY.IܬZclRuz* u ^m]#t) us0:ƒh2}\;T>D)ϝN/e?&}q~GoZn3P+Qӌ~>ơ-&Y}\FC=}</!Wnע:Ew>ҢʃMQsEW+s_/ϼ|!88ڡ/2} vǨԡv5A6J}+n^Б;(垽uAJ,b|ӰG_REDN;)6(OA΍FnS W$ W2&v3-;{cv1Ca9cثYXBK2M$Y]#MǓ aVFŔ*0_;vcteAdN)<R؊2 Ēp -E]HlnR^c&HbU0[$wOIV+H _+aZ2OOM:r5[Ϻ#0Ȫ༶Ee[*}"/T|ba,V%`ŸAa|?kQH^`1ihOn="̟ؗlf\PhE:w"I[yپW;3]UHyz@%!V[-w"Y#pKT#bxnjyM̖ȃM KRUnN$ogIIDBR qV=z~I=9 SVn^h8TcFVk[2װ-yQc!T=}J`y&[tM/z5NuxŻ9?j!Lċ?NB@ +:PLN*1uϫi$-ؑxJsn2]X_0N5Gk Ny*#ղay[8ojpÔjcA|ބ<{֠؄ѧ禱Zq~>Gn/sJМ\W"Ed9^GwYxoypN(FNJKN|0) ՙn ֍InAZKc|evZ>k[鰨r\cbzNp-#Y=@vDB(>,P&:^B.mfkELZԙ3؆!LYdHO)2$U07n7I\x#jȠE| D;^{e73 G5^SwgV-(c;ÊA;2˞X4֥p8{M_@rd#)us{0}D2d |FY{X./L1 XI)#[g>t%DH _qM>ݜ!d\3c= 7LcsSK-"N؀<:"8`fwJ; =R@A,܅p]i K EШH $8V4c_6Xt-R<Hϩ3 C#&;ZД?=*Z.=cNhΨPnbjcmAD}[P2Qٚ澫QeUvr(DS-(m(O/[k98'iKͱMYߟVG++G(pǢpP&5oalf)rՀ|`Ú!x yё̙ c~ca@w)6$!+Z VM8~흣fAJ'oM& ޱ8DGAa]&wO^ᵆ|R5R^o*eh"y_gɲ^TLuǙ[j0e|?dѬcJGg/ŕQ( eCJe!1sKA WYՌJ3MlWCVfEvr>gXQR~nG2Y7jzpC0M%YS0n!^fo|z7%:tCEPz-/kfٕdL urX v]D~25ȦdYxTIsӿ,n CoGY"ͅkݬ7}ȡ2[lZD14ӊy5vҏ~\Dǵe^/h0rqµ:3x0mr\qۇ$"6O+8'u¸egg``JپfBKX5_ElȆl&E{!wVz\젴N@2k)^MK)"Z3b5oLhTYK <~;9p `C%  M2b&dQF|H*%Z,uFb>)I?g]Sg* rK ;p6d4\`IXVud e=ZLZ?E.ە>쮿)~rpzPKL1m]H#nuvola/128x128/apps/window_list.pngUT xlA4Qux XyTR>̨NZYPY9dW qlvh0QDӐeTiuVZJ*lV(r}~ [_ 7 }*CdzC N:z끰Gq5{Bc$?[oJ{Ղ ]L(9SĉE@v'‰LF,y>Ik1|G'zcF'TUg2HzʊX6$uoc9iѯ\H9`)"t(?Nӆ Vd yuU$xO@ns_de%Q(zbhqر&W>@?z-fEuZ CcJteTɟWgT?ӭ OwX)ۛ)bjyW)`hA C7c:8 @a 3x7Axwπ0㼂H! ". qj$ȯLeCjaDA,Df86\!'lM ԭ|f#'U5uօ6nE8 }v͢q)Wgpd\[TcWl8X`6b0LlVľɜwQf6?&,#81yz!߇H6 LK5ҷlqqϽPBP敨KO?w[o}m^Kky$:n w7ަ[SlEzҵvBC?DMZ{ꫝKse$N_(~xnޮ0MJXm2C8Nc K:Anar7"D[,&U(IK6=ywa/q WV'/}wDRͣFD \PXvS/ʾu~0PGzΛZ m6狛ؼm>uA-C_|jhtUj&$΀[#2G,PudClPц9SU_)>}he i4LXin;."@%IqVGY:}.v2m@NΩ$fJ0fzM_T_`ģsn+`^VLڹ/XcC}VWaΌ%~kx%HX'+gRf~-/ק$?PZr>C XK9LJI(#j m?(A}7z YiҨ-#czXNl-:8nTKPa?>w; ֏5y?4R"~[hm;(8w@^ϹPi<px`/^Qϯ^w+( g7L4*J`;'k/wa0ЯZ1zߛڳE_R'И~E DI,ʚ#L<̛ Tf9NQލ (TˌIn4_ vh'PXҭ9[ռ-jpMpd(<WGB\%k@{ "`1n@pom{ lPzf^C'MQ{' $a4`IٌɎ2Q\jKDp<!&Q܏ ɾpLT,tT0Gext*tP;8N""XSOFBkT(i挮8u!2BiAOavzx /54>es zN񐗅,?ċ@.95q/Ii>`fY"WQfs$PCh+c|v2%pVg(A}vq {g'/WTǎG?,GЏzґ^cS]PP4p9B~p$TBz%ؔmzCS!Z{V" X30%TXL=OwNȥIi^2J8?xYpA.w&:C ƶOM޷eqnց|VaWjT\^Pcx4a#({p4T%?i+9篞II_W(UK({~fƃ5V^kKx3!Ff 9q-m܁ mgؖVNY n,뚟QT톓yj^AՠB,2B: vj}OlJF_>)T7y{i(MO0`Q+LW̧Lxouğ-UX6NP'5qcг\vC +xº0Mqpv&"YOoJ.qp\2kElq(r(If1⃿ǵS-3$ܲߨ\  eZd>bK㴴klwMO,=4$tVә tKS"'LT.Hst VD/!a? ~*e_²hvg@ja0Ȍ^8{{saZr&Ce)gUkΕTmoƧ)wGXlbzz KXjQlsɜ^Hv"! 0y֚1gJf%"ھ|o_y! 2Jf@IU>٭ 2_| m[iqFUOI)!ӯ`Lk>96yEt;X=k0qkksիsah;li!gײ_M"oobdWѳ;ݪwMMwB)lDb/zNJ>Yp [&+`Y~[?la:B 9:wy&aj{P4KXREPHn +&9=.N#*ڌή;U2/˥5sȤNfc̖bfSlNg;>YftrN w{>H)[Asi%9.4M~A&j1{wWط3)]NDQQ_lՕ䤤ei&g oGS"&}@40>ab;'ѽ|ɘZJ6Bd\ Bzap]f6;JѡwqsO"֓ς*i/PDe<zY!V'PKS^=1]&T' nuvola/128x128/apps/winprops.pngUT nZA4Qux zy8Toa,a6cRd03c("23FڨdJІRFSKoYJ1(Kbcu99y羟g$;Ό8(:rm}D'tu77]]= :s:  )tpd> 2rX4P h`$'[ ^Ў&GPt] 6G" ZՃ^˄ kA,}EC](ٓoM-Uy}ԦԀ"7St3=퀆K>A2-ĩ |p "tfLI+(?ZT*kN8WQ7VM##ymtÉ:ݻCiN./cp-axD<ڃ@qg9fJO/ ^A ѷt+b2>1W$ +ϔzn?c|/7S "+e;PRϬpKdlItDk)C+C }B ќb=0L7ivy&eF3+p53Jpw3Ys0>n!? >`#3~XIp1[ޖV c NNA[#"?zB3ԂbD(_YMu@ѡ③$݋ҙ;1I1+o˹X4X@疚4 RqU;>W?}JC6}PlGr <7m/&b5;iW$zm '7Hlk='"r9WJM?k;%v}fx<0p=˯s"Iε7oK޻񌛷*n$ )U4Ɉ1VO%g(` ̿p:IBy|В{)mF6:9:][,B+BU%Hχitm ZxGZ7%g?{SgNQ|ae-U56.۸_ܔ 8)("zpǑ!ƤlRjm(N=k>9ܢ 27 ܖeK?YZhQ+b'Z-@m gj|IW"V!ō df'6F[O4ʸB}!Ks='"&p>&E!/Ӣ*튈Njhxۑvٹ}yg4 [=T^E%>aY~Gqwͨ"1'M=I~]f2iUT8,3j@&,sW5S||8[ tHT=g "}f+[/$;z-uKLmGE:)Ԕ6_ ؼAPh8kAx]Xu=jh/^_D0bJX6<׷0 ULxHw^("+ox']Y(fvDO_mmIMUt:TTPyCnP1 KZsw%bb@9ЋJmq3ܥx m4tSۓMLi5*|?Nq3cxwN(|uLL,R)s;~ppR|Om~u2 59hV?pwO)%߾2GٵdeWym]аoxXI`Lcuf+uOMv yz4}0G-y 0IM/ajl{AskZqw1\$æsoS=(8rGQLi./B55,\wxhP*i2EX.w~qh.68._C6jiA2[zo,hz`2\"u g XXb c~DpPinN߼O '_0Ø7zkn몼a/ rcVP<I̬ 597yy{w))񟶐̱~iRBY\Ϗg̯s9K]e~5΍ƪ$¨Ix$$;󱲈eyE[lD.V%UdX,M8NIY"4: !.^͂N+)zUɻM&];\-4ov0#nT!TjT}y1v[448Z #PS";8g)/OU)<MŐj|=x*^yp{'N釀? \SO#ݹM9 ݣȈw֊v(ݒp[ -g$K9[S'{Q%/bpi'I$faZ1՞JBH01%_&#$E燴1dE룏;:\3 [-Mq@6W:wm;G*/7o3==AU[(//ɶ&S.@?G^vvD[G{L<̞?CF?RSjԮQejl:ɦ?y,92?mhr-A用, #Hʼn0Y[NZNޯ&;XPG>XO m<V0=RrHW26]'<䥱Z/ir:CI9y9Q@ȼy⣬VƫO5"ra/[: g2ΆX~g_D^ݿEcXHuJԑj)nϟ[:7ф@?W[pSz!ni]S0ĝ qC)Kx%P`\Ͽj" ~urLc>fH 2 i =a}Ȇ aWY:JO|Ј2w.avZv/ypYCC9{b7r"7+whGKt[@,7My T BڶCwa h~,=@^ik>"}rB%sn]暑ۮ߼d[C֑"`TSbGUa|.`MuY-筩.qI.Ak Od/ b5jK >3e]+?'C H!'0um?JB?^̋]%m tiEj`1H|IrK (4?,D^`| %;@qgu'wOAEsre]r=l#D}rY %oDsȳ aiHΙP4R[)ºyJv82Ojb'f#^'P$ZވcчxyLsϨ=Z<`@u˸хYBÀs 3qHPk/nsUy_XX/>lx#GNNgkZ^}8sg3 _{~b8; %a% , mW_:h~u\0rDb+;\OCOΠzT׀rDQ!5Vn^ %P}M8Z] /x̳_++-K| iďbF 5%#C|@vN^mXWhDZz{/1y>[8 2=%XR#@>%R/ !Ȝ ՟I4T3"mj:KMAv62╕^JϚ o۳ q \$=Ct5:FY^iw"Ժ玿[T$tu$,ڬc(RՋW*pӐ42K(PqܶC<=LmDi-f6xL6=՛:|h׮npg)#u$#MD9IoW4Ҝd[[<*))lTayil':cCKz P7!Cʙx{v+lJ=ҝ=.ޭ;h?8x\;pm(`*q;#'3ny=w#FȷZl4̺VڈNf\5Bu]WH`GZ,IfEE?pW/?Ͷ-[͆`Ss-Bz" 3@p]x-rZ ̧\ݷneQ/g >7CpNd(x*hH1]YZ 6B8%NґȽܝ@m@^֬ *mQMW48^RzmNa1?cFc!pYGBfY% 4AD8*:` G&TQ<{)ÏeɱjR$M&Ϟۿt< c>'F;oһXJrK_|SpòJ?{Mi;rKW&PZ}3/_OceaSP3.m_%'q`tMorr y;+9Js>sJ_W@81$+#Ȇ(v,b`tHL[lh2$ҏ7P>es*gqJ 8ĐZ>hM4qG6j<"wOq6%Ş+J,ndFN}vp;Hp=Ff5Fcާ[|C_tk_B.{̈́G`Ri}փ>TQP_M8 Q`{6!aia+J1g0mx?eg<32L[1n]Sn5n".8#2%?}qhOԃGoA1 _%~&)pmv_[9aȁ?*HbGa?u#{RM?ic4s E͕r"JZs!_4HH (~‹QsWVԬ))'VaBsqJyvV$Q &# 㬝|Ih٘}ǃH(^Wy4m$J=ˁ g9b$T=*KdWmXha/ zg=VKx6&¼YPK%鄗"E[m>+^m 5Pc7L4)cv7b̠zGFO`^[6Mo׎I-]W9kin?Ŋ&ѰVr#I9MWPe+"c\ݷV݁qN= G)K=Eh,Pn$#_-G[>ee E:QkDL3xdeز5ǖV,-7 l$@J|@eƦR){o,J= |"gS0n).  h~~>ύ>MnŇM-OX* o=MʧT_`!od-3@ͨ^7`WƊHrdj{Wq묭U#/L9$1o^Ym-HD4Ұ%]O[{n+VVIXd_-"UݿDws3$Ixjd$ر9'}^J 7{]DfMh[rx'-={8cG@-F~%{/NI!Q4N;ޭ*^4}yj\UI8|JP;yFeC B4$gPυ~Gg0o%@wlɃQQ=hnec 9>cė'ٵ7!m9!{~nM^VO*Q7Ƃ2T}Pl{ADt1H# (ns6]'ѿ@}Ķ%7Aw6h~]APy< D:n^ȧ@x3q׾ӁQZzF3w3f#Sc>%f3[v?yTyn@a]BiER[YKdӁU(֭U6' Pm QL1[!7UTrLt ~]zޜirtR$3Z>PIݎѾ]7/k1f\ӱ[bA޵W`}"?C& 1~"SR ^ ;q.F1BdxqO &#u 6_!mj];Z>3/4 N)%TLZ[ _RP͚FɌDV;[7z{<Ne;烾 $#nA#r33(dGΚ0?B#>&^ 1 pO}jj NOgPD$?OS v^oՑwVYR B~!_ ~^NYc3_>6V*?X •/ʅ#:DV,f%&h:tP&;Pwr1U6N;/]z`j=\ZQISpѣ40[>BLqbsbZN*EE-˨8qH3JA{&5C# 4\V -tkW%3lyC{)%/S=7B?R礋L{"%9DYn!ӯAg˪抟66222s^;dF[8X#ȱηL)|T;{6vb }cx-Y%{'8s`io?Pe} "nAPF J5pYߵx%jMs\mXM x~&>7jQǯ4%iCDa(nͯ he m' /VVi #isy.^߳9iDq4C95V eH$#jlgӘJngZw"$u=ɑ8 >Er4 {=hս]?fpUbNѲ Z!ϊ1^ۄp@L)0nЊf )!@?E0f_?/Uj)DeM$sBZ`^\H a4MW@\+q3"-QHcp@e5ͩqS;ZPKL1L4n6nuvola/128x128/apps/x.pngUT lA4Qux WR5ʠpTHSKSRJK,sf-KМLKJ+'K+KYlr|],~ggڻSCmr߯ؓ{ [kPb )kvTOs~Qa΅BBCM Ii u@6A& m1!zP!p2dn!D++a ! w N%lbNք"6@s!ZċO]{ڵknHa@dOٟ\_IF3<d%4`)~ͽۂw<ҸGGaa>bĎMJMv((}vMf _w(Zx9MTT6ָbLs^4ZfY]t㽕R:3$\ SU(NO0}YB %,ZRҴkT/{ uuAXvCV[Ǎi̮ o`9$6kI坁 uH)1r/IpnF˷j⣤6_q0 ڙ߷DKǭ%Fz+@{`IXYBV>ee$M٪*V.!KTY_v#0w )+>ˆ]![sshny2K6y|lƈG4 ArǨЄ$k7 m bn6t m6T'*4IH9\Oc :{%z&oNfq@AA*1v*g['O(݊%|yhBSƙ&7Dm/5ªVvj89S ikMٵYѷцFg_FMҦ R&G8#=hhs\YRU.9ڐK񊻫bB:.!i34]oNWEk??p(0Hæ @+k/]+obhkcѤ࠼za;_X@ oK6Au;s _yq2N$°A.YwtDtz1+/wĐqe R~:ܡH _ec8TD +_mxC[8a#3IhF33py5'7l֞TkN K后:սb sP+`ֹ>NMS7ewQ) uU8Ĕ۴ ы4ɮhi^Rؒ? 6.N|i|Y %.h1TpdK `!ڣ K 'P*PJ[6F D Dn{,$-l;?zp6a~3!nճ ]7ng_LXU(w(Z\ȗ18։yQ5Ii?UeȃsgMrF}'H!ѹQ8$ԜObHʾDn[l6aQdh8~\cM[YSysq_g$n/t"H2ٔͪo?̌a?s6ܨU'66JdOEQ$@~>UD*[Cl]&sXw}S*|H#|)+ɤR#n4(w6*fB0jko [k](s3 T-\+-fgD@)+g&Cbo4PA\˵]L s$ByU^f݌T9)k>+O  s,}yW= :{aGj@XRsUuO2Op|H/ fSC#`UFUΨg~8v*U2%~s+\ Y3fJWѸ䜰M?g 1!_@<.o\:6%ATHJ:yǿa\K35un'9Q^IX ĵ8V0s˲>tv) A6< E0IrWYS8( ȕӢ\TK' -أ+YWlӁCxa'F+-hYY #$Heۂ60jS,m'-Nk=lծ?OsˣS2JJ^Y*J(^v8ֹ#V,VUsT55 W +q&Uьrav^*pDva< >ݶY`ȑKMj$G~ӽAӁEo,VK~JG+#_9k§=+8 0%:fS=QKi$C \%tld&@ABYS k|7czElz=_nk{{~#p趵~U=M QI!Nr;vsbW1 JQF<2紲kI>6,F˳qMO J~ M{ޛzz%z ~p} NNJpKtl:x?Kz=7b$@v˱) | zA#޻ NVXC+i\yXۙ*>i|4x!S_t6XvnnE{oEAO<yp -;^ F[?5~ZiL \ըZD5repGTc&Ė)^۟Q3l irdmyc@h?%zg,".2,$h#:[F& YEW*u'oYWoj9eٹ!`uyT*Ooar`j!_[SJi[þiOEWH,M;Z:gW^iBjy; >-/r" 5 MZ'=n׭x jD Q㻽gww jFh&NwVjC0{ rt ,#_7N߿$dDl>{p:XdY#1mj3l.p|Fyʪ6Ⴉ u"z-wWAKe%}x&\|vؕT5j"qz0_X(Q7<ةF`T$)BĬʥI&b aAM] [j6Fym6Pj68 Łcl"P&E sJy*v\d vQW" :/UbiJ'LbQioYJ,zQ _ٟ0.``/Sоe"c'5Bw6Bwb ˜E۝ĘQW{-31sوușM]!%^{BI)xDM捸+KOFGC^ Fʀ*<,$$躸\wCx'!N+G"lGD_rO̪#zaS{;7(Ţ<m]*ȈewrĢw2P[52=rT׫l4 8fx)22tšәʠJiAd7~w;S pUKv\hYhPW*ɧ'~^|Y貀Wf|89E{ܼ UmSªF`=Rhڼ'r Vc~~R@%ƌ"5'?a} !aC[+c &ԟщʜh[tFhUM#@ N?aǷEn4uqGˠ"bRP,AW7| dgMR\PDt Vªt:M+^YC⛸a[t izk桸ƊvRT<~EeKwۇp8k+xGv.)%ֳf3)̸w88@U(8%^a{Ǫt ju`ÞJ.) FӅu%P_gCBB~=!pO2`180 DS5_N]Nac_I?Ep*ֻ#m8Em"6$1▙\͛Y}%$4m˗ oC (Cv}c|iP c ^ E֧fb.%i!U3hlcc" -ַˢb'+<[LJn}P;"]:TVxɵ[ZԺ˟{p-Hk ۅruK1)G=_YgċJl[fװ I-'=˥ic}?8Wop?M#K"A]_ I['bX3Qi8#ܢԺ]8 }smco݁q_w,:.DR@9xvxc+"WL[ĽzʨyMqbp|qXKhIF1bj+]:^,1TSN&sBWcq ௫3 ƄUg-_x(%:wxcs4z޵h^}5S0֖C\ $dɒusnv%fT|+8kb\s%S4mLL#kB3Yǻ&eqK_ Y~!Z#7"!L(7Bvz\+s } t*Ul ^:װjSUoݜ1_|ǧ$51FĒ3ZzT[?Pj+xlycH8M}ŜDw?{zy|BA<(ڕnͭ@ú D{ȌZhh[QyAT`J#i{ )uYV4E,.Eĩb&)|HMKQ$ɥ= Q@zڲ,SnlZX=gkuhlI[%B@ġjZė>+w,vM)r7(+{ӓ(uYeO'W ؿnw▱X?\ FzX:$ٵ~¯C&V)A{CPwX3IE6D+9nсɒ?{͈% |yBAClf@m(9P#n]H!k%ٓv4x" =h)v.pwV(o ,rVNxZR{'9(v%g(o`}-:.yfvabSv*0 U|k~`;?P?Y֤-(ckae]N6IM:-߿pw.RJ}K8F1Mzl|(3JvK pu'[K)O{׀r(LXpL1̷6{RI;8{Xbˮczڽ|ŅXk%;wdPkYvBtcTaf"u<$l MI..ET_j(s]HgB.(QUfk%}uэV3?ak@u-j:OC RM \ }6fX+(/lM93xƋɗ"Zo %5uzͫx^ҽQ/&Fb0?(Q/XǻtE2u\3Ҽ;:Av_"/ C*EI$Rge rvk\ީ|E^^Xm0p;|iɣ&/KBp*$bcMcA^p|< ;q[oS2XKI]M^DkvZ!]z.3c%( bB?{g5ɒOǑRyQDpJ:\O^f5t0cL= }tml?ٳV|ܫdMC.G"O$ A ]m b3i`xu|)ezW?|w2ȾF./VxVMz a^~3ܾ\<56dҺz͋W+tP :[Z5xDDRS)mB RZr7oGNg>ώ_|\?ԩ)ۖ1ea'BPcS0WhkF캈vxȾО50 `9$vo38)'E}=K]gT# 8hzY]<#e(-s)pk z+Pr,uv2Kcgf2p{3TxG-䁚#[D'oف~| UUV9Zz@|||-㜺r*=֥_LQ%j™?4IúOgfj6V=o}v'8L`̸ =\7g`F7Ag=KprLUYғd򸾍9z>dR1kD!q@K32kbOϘqhu.' -(]u\gg^;e`H,wzSƾCs͜%pY  t1SJZ>a_/ #̃C„=+m1%ǥͬvk̙6TF'KU&)"?x?pX8Sȕ]7vBZ $܄OT^8v?/ؚ#.6Scw~N9 f]a1ri8q44W}Q7D)D[i(Bqj5tgK~|?3 rlɐzhć).i9_C:L4:R=%L>-*}Na*mpӽTLWXX%N=']9vV`DHqx8zЄ?/͹}(GD_+ذPFmE|g`Z {(RIM)57 `+W"٩ƥ\flιW'NX$x#_v4Z<nYǼJCn*ۇ+Rҷ51yWHu(;J S/2 O;`a>v:O-}*az>Qq:8wBRuOg{X=K'TUۛr5qi]ڪ[Jn>, <3xrBmUVSa8~v15hǿ&WsoX;.YBЕ uj3l{3% udooMͣOx[(^;M}1!:3J,/^=/+o͙н l(WCI;,SqM%FK1A+"$|%xxj1PKL1L4n6nuvola/128x128/apps/xapp.pngUT lA4Qux WR5ʠpTHSKSRJK,sf-KМLKJ+'K+KYlr|],~ggڻSCmr߯ؓ{ [kPb )kvTOs~Qa΅BBCM Ii u@6A& m1!zP!p2dn!D++a ! w N%lbNք"6@s!ZċO]{ڵknHa@dOٟ\_IF3<d%4`)~ͽۂw<ҸGGaa>bĎMJMv((}vMf _w(Zx9MTT6ָbLs^4ZfY]t㽕R:3$\ SU(NO0}YB %,ZRҴkT/{ uuAXvCV[Ǎi̮ o`9$6kI坁 uH)1r/IpnF˷j⣤6_q0 ڙ߷DKǭ%Fz+@{`IXYBV>ee$M٪*V.!KTY_v#0w )+>ˆ]![sshny2K6y|lƈG4 ArǨЄ$k7 m bn6t m6T'*4IH9\Oc :{%z&oNfq@AA*1v*g['O(݊%|yhBSƙ&7Dm/5ªVvj89S ikMٵYѷцFg_FMҦ R&G8#=hhs\YRU.9ڐK񊻫bB:.!i34]oNWEk??p(0Hæ @+k/]+obhkcѤ࠼za;_X@ oK6Au;s _yq2N$°A.YwtDtz1+/wĐqe R~:ܡH _ec8TD +_mxC[8a#3IhF33py5'7l֞TkN K后:սb sP+`ֹ>NMS7ewQ) uU8Ĕ۴ ы4ɮhi^Rؒ? 6.N|i|Y %.h1TpdK `!ڣ K 'P*PJ[6F D Dn{,$-l;?zp6a~3!nճ ]7ng_LXU(w(Z\ȗ18։yQ5Ii?UeȃsgMrF}'H!ѹQ8$ԜObHʾDn[l6aQdh8~\cM[YSysq_g$n/t"H2ٔͪo?̌a?s6ܨU'66JdOEQ$@~>UD*[Cl]&sXw}S*|H#|)+ɤR#n4(w6*fB0jko [k](s3 T-\+-fgD@)+g&Cbo4PA\˵]L s$ByU^f݌T9)k>+O  s,}yW= :{aGj@XRsUuO2Op|H/ fSC#`UFUΨg~8v*U2%~s+\ Y3fJWѸ䜰M?g 1!_@<.o\:6%ATHJ:yǿa\K35un'9Q^IX ĵ8V0s˲>tv) A6< E0IrWYS8( ȕӢ\TK' -أ+YWlӁCxa'F+-hYY #$Heۂ60jS,m'-Nk=lծ?OsˣS2JJ^Y*J(^v8ֹ#V,VUsT55 W +q&Uьrav^*pDva< >ݶY`ȑKMj$G~ӽAӁEo,VK~JG+#_9k§=+8 0%:fS=QKi$C \%tld&@ABYS k|7czElz=_nk{{~#p趵~U=M QI!Nr;vsbW1 JQF<2紲kI>6,F˳qMO J~ M{ޛzz%z ~p} NNJpKtl:x?Kz=7b$@v˱) | zA#޻ NVXC+i\yXۙ*>i|4x!S_t6XvnnE{oEAO<yp -;^ F[?5~ZiL \ըZD5repGTc&Ė)^۟Q3l irdmyc@h?%zg,".2,$h#:[F& YEW*u'oYWoj9eٹ!`uyT*Ooar`j!_[SJi[þiOEWH,M;Z:gW^iBjy; >-/r" 5 MZ'=n׭x jD Q㻽gww jFh&NwVjC0{ rt ,#_7N߿$dDl>{p:XdY#1mj3l.p|Fyʪ6Ⴉ u"z-wWAKe%}x&\|vؕT5j"qz0_X(Q7<ةF`T$)BĬʥI&b aAM] [j6Fym6Pj68 Łcl"P&E sJy*v\d vQW" :/UbiJ'LbQioYJ,zQ _ٟ0.``/Sоe"c'5Bw6Bwb ˜E۝ĘQW{-31sوușM]!%^{BI)xDM捸+KOFGC^ Fʀ*<,$$躸\wCx'!N+G"lGD_rO̪#zaS{;7(Ţ<m]*ȈewrĢw2P[52=rT׫l4 8fx)22tšәʠJiAd7~w;S pUKv\hYhPW*ɧ'~^|Y貀Wf|89E{ܼ UmSªF`=Rhڼ'r Vc~~R@%ƌ"5'?a} !aC[+c &ԟщʜh[tFhUM#@ N?aǷEn4uqGˠ"bRP,AW7| dgMR\PDt Vªt:M+^YC⛸a[t izk桸ƊvRT<~EeKwۇp8k+xGv.)%ֳf3)̸w88@U(8%^a{Ǫt ju`ÞJ.) FӅu%P_gCBB~=!pO2`180 DS5_N]Nac_I?Ep*ֻ#m8Em"6$1▙\͛Y}%$4m˗ oC (Cv}c|iP c ^ E֧fb.%i!U3hlcc" -ַˢb'+<[LJn}P;"]:TVxɵ[ZԺ˟{p-Hk ۅruK1)G=_YgċJl[fװ I-'=˥ic}?8Wop?M#K"A]_ I['bX3Qi8#ܢԺ]8 }smco݁q_w,:.DR@9xvxc+"WL[ĽzʨyMqbp|qXKhIF1bj+]:^,1TSN&sBWcq ௫3 ƄUg-_x(%:wxcs4z޵h^}5S0֖C\ $dɒusnv%fT|+8kb\s%S4mLL#kB3Yǻ&eqK_ Y~!Z#7"!L(7Bvz\+s } t*Ul ^:װjSUoݜ1_|ǧ$51FĒ3ZzT[?Pj+xlycH8M}ŜDw?{zy|BA<(ڕnͭ@ú D{ȌZhh[QyAT`J#i{ )uYV4E,.Eĩb&)|HMKQ$ɥ= Q@zڲ,SnlZX=gkuhlI[%B@ġjZė>+w,vM)r7(+{ӓ(uYeO'W ؿnw▱X?\ FzX:$ٵ~¯C&V)A{CPwX3IE6D+9nсɒ?{͈% |yBAClf@m(9P#n]H!k%ٓv4x" =h)v.pwV(o ,rVNxZR{'9(v%g(o`}-:.yfvabSv*0 U|k~`;?P?Y֤-(ckae]N6IM:-߿pw.RJ}K8F1Mzl|(3JvK pu'[K)O{׀r(LXpL1̷6{RI;8{Xbˮczڽ|ŅXk%;wdPkYvBtcTaf"u<$l MI..ET_j(s]HgB.(QUfk%}uэV3?ak@u-j:OC RM \ }6fX+(/lM93xƋɗ"Zo %5uzͫx^ҽQ/&Fb0?(Q/XǻtE2u\3Ҽ;:Av_"/ C*EI$Rge rvk\ީ|E^^Xm0p;|iɣ&/KBp*$bcMcA^p|< ;q[oS2XKI]M^DkvZ!]z.3c%( bB?{g5ɒOǑRyQDpJ:\O^f5t0cL= }tml?ٳV|ܫdMC.G"O$ A ]m b3i`xu|)ezW?|w2ȾF./VxVMz a^~3ܾ\<56dҺz͋W+tP :[Z5xDDRS)mB RZr7oGNg>ώ_|\?ԩ)ۖ1ea'BPcS0WhkF캈vxȾО50 `9$vo38)'E}=K]gT# 8hzY]<#e(-s)pk z+Pr,uv2Kcgf2p{3TxG-䁚#[D'oف~| UUV9Zz@|||-㜺r*=֥_LQ%j™?4IúOgfj6V=o}v'8L`̸ =\7g`F7Ag=KprLUYғd򸾍9z>dR1kD!q@K32kbOϘqhu.' -(]u\gg^;e`H,wzSƾCs͜%pY  t1SJZ>a_/ #̃C„=+m1%ǥͬvk̙6TF'KU&)"?x?pX8Sȕ]7vBZ $܄OT^8v?/ؚ#.6Scw~N9 f]a1ri8q44W}Q7D)D[i(Bqj5tgK~|?3 rlɐzhć).i9_C:L4:R=%L>-*}Na*mpӽTLWXX%N=']9vV`DHqx8zЄ?/͹}(GD_+ذPFmE|g`Z {(RIM)57 `+W"٩ƥ\flιW'NX$x#_v4Z<nYǼJCn*ۇ+Rҷ51yWHu(;J S/2 O;`a>v:O-}*az>Qq:8wBRuOg{X=K'TUۛr5qi]ڪ[Jn>, <3xrBmUVSa8~v15hǿ&WsoX;.YBЕ uj3l{3% udooMͣOx[(^;M}1!:3J,/^=/+o͙н l(WCI;,SqM%FK1A+"$|%xxj1PKt91~ [HsInuvola/128x128/apps/xcalc.pngUT gUA4Qux -{ {}nÕ!w:p}nƿ5kA㟿Zdڸ嵥bsjOə_#]M[B`\ܘq!uc 82'G*&] F:VV׈b;ACՕJJ;n-Ufo;pWO{d3vnrELu=Hu ; (˛!ˋh?eVy;E/ JMCFioKnHs+I#\_i616n`=56քBuPbϲ&񉭙j*~e%Ҵ=V,OѽO|ߘ–_neݻǍ:.Jo%7B|,Kﻤu chOǢqm@kubkm U&݌utT.|^T`P;\ݨ%>Ϡo4JcD!'`10==֘ʪ*,X.hn,`m7D*%lD!`SsUD(3s-ˎ۝?[)OBIH˘%` [驩|qz#R:=N{xcotvrϡ[Oܛ L{1z?_`a qzG,;?)lWyr۴zCۮDu8rŎ'!/|zW ." Btei Ϫ΁&5UZCwMN•9jaC>} zMvpnn ;jZZr]Tgځ L6OdWf[[9JI^I?jn']CO ޟytrHe?9̯ 2`~{ L" ~ulw6Sʇ628ԫ̲9A`Y1fze,l n7־q4o Uֳ E=^oLbM֥zS(?=REYV2>Lgmd'z\=2&}DzZJo,ӠR2w0L$BY8ݩxṳUW'[tJ#uax]-O'Fl.F.I\ʅ0u3^r8567bA 2us^hHFDT}FiJ'5RZ3yA?aNo_dK]r[_j$|w@zi${3u*jOtE^91;z~X= ,ӂi.q{= ILW $\7:9FX*./B{`na QŦAYɹ55M&fO‹O7R *+o]Nz}ݛ8p[r,HH=W(&822ty{㨏2St,pzX:Q,R||<]N[ *; M}z(3O4P"aY=wNcOMQmQJ<[wK8HzH{zՉ\F{^H{(Ց8Q-ܠɿ:Kn5Gߺƒ%/O=Ks'~tLt퀶>'X0,:($N'cķ2mܪ|@hεk= I2A;VfuJ!G:p&sFm&jyXG,;(K[ch? o,KD"!tvBտ>poiϟ``u3, $tQl% @\^xe26Z;WmK ov̄21 k=?p%?Ż?:_]LD_] ȼr=啭amGruKFחgMϏb?w0k_^EF'O`ǜbuƃbq2e[U[c80h^ܹ:fnK͜`pI$MM'`Xw(ÿpw[97ۮvsi`|rЀޢoEZ]c>mit XzQ }, u}}\6²!1t4yY3qqF 7I22Ȁ]&Țǥt&Ilh6m:NK6TB|(An2J$.cn46 {E3m?$| :ʌP`jj g߭@&oHeil *tկqK.} 85zo[Evqzbn#egZl12hrb?ifH ԏZPC7?)Yٓj磺 U@2qp{0k|tЯſ΀z68~V$5~ P߲;6vM$:^Ctǧ/W@E ]Pвr oeXLED(jǥ,1R4]ٕgxa_dSt| tMu jQR r"y ]"jeG+uU"AoTDA3b7Z鬉lPqC;8@@z:>2eNNQ["@6f/|_EIU>/}rC:(eF:`1=JI|#ޒ}pj'%H$k7 Im pxw2&ck {$A `] C- )v7O&tOԍV+*jC9_kį ݳj# MFumƁYe*$ىʩb!Z9=QGL?`bL~8bTgwaQI DE|bts$σĹsJub@23\jOE7=TGKq:yC̟(pxmP*߻0笣] Z Zmq6I>~7UTK<}%wi% @OM:jۃ)Hz$bEN #V;fʲF5<" { `ǖr'zWSe;~?h[*~DW,SCsx5=u1`p<Ԏ0]\`fy!( +G(4tIvˏ_}U距^F˵ʑ)dXۑ^K#rλ[>/xO'7μ/U݈;To)c6hbbgY8S.jJ|j39?è^) )_ ޳(tbu5ݝsͷus<6޸B^V$bn x$q\~/M^m!g)?[GޏF6W1ehW~A_ƓwJ+( Q`?2̍$ pZ2D+$ΤXGVdl1?8/9U) :lsS.(>yXV? }tG]zLHNޝ&te9&W'iugu֎i\~šL\mo H㚩'nt;-|%.]82Gl~{+Jo dlPLEswpp]GZ{U4Jc -eh]wKy4j◰eZ`N> FxA픣~U ,w!+,8VK8TDReVD Hposœǯ;!bC]:J̥ s}'05?Īa:p\z? f5u 18|dusY0E%$(/сM ׄ760'W>?||'qa*JNB"0#u  Ŵḙ!??r~!њuUf+XZPR$N[gμU}FYeO@VT^m`ಇыc/$=H.sZV"8F7c}GrWx#Kco 7k?m _'0 12m;*+ ;W?/f]MjqA{ӭq*Ѐg} J\wDef";LC\" wM#wػΟ?% MM/5<Usn̬,)2}F̧>A %6ݓ3yn6珿q e_":c~~~U19;H;ZױCڔ;b ͨmA+)}? 1 /r9 J䚘EĒ">~m֭`{`m@bsF$ώTm? UPSco=@z7'WEv}R^_E^ǙQ7,N9M 7 Dpz1 dcǰIIIS27CC}81< B~~vȕ̚BȏZ8eܛ90Nc;m+stpuzLܷiNiA?4PI22|4sq.a紵a'l5N n^Q $Ϻam}G[Ժ'R>I 3MWJypX<8W<|G8xK Y +^>ˎ_Bnzq8B[&Yi$Q4[55U>E qs(uæf\? A̕D+G`\m]-.'MQ͋&Vat>r 399{!ˣʔa MHȽ"!;&@GFGEnEaBiFSvgv*mMJ&-ǖ鲰^SKl 4äU!*JGKMrM}EDftpάTJgϰTBA\jLEdBݿ4cImz9⠒Ѩ1?J>Ml'U^ ~ 4 J9mmkNoDH(="=ĩ\bj 'I߆c:abE]}q_e똁_{@ $'FFDI'(6=EG%ƒr} *v__É9p jXTEdYt@Qw+#2;L`tp`k+z%XΝՔ6O(0^ᇜ-uamlblN^" X{\Oڃ6 $z5 *>BGlEKN҂i] Ձ7kTZPS;5 t;j͆XU=_XK$!@cJV$ٺ^Ҡ"{^GYvRKS|j7j.9~ yV@L܉K߰g^\6PxV =HKck}_@j+U|ҍ2gEgx\# Bω~6u3+H`}ؖIjp@=3Y]PЅ EI1`$wYGGG]"MNՖT?г&["O"%F|fͤ30 iK3HF$5台4r`7n(LEC˳RHcڌR%#:H$a8}-5[Hj`p>G 7Sp8 uu9jW[9 8{3oc^ NfAVۋژrm &ω'Of]XgkK=<\ڵVK2i*r܍ǵ3k\R:k)+wfIl^{LQCԺkL,d.j ]FHiK$!}&n\9IJAK蒆 Yeǎ\$MYb'ڒ6V#OgҩH%U[m8g/'q5#1\CU?=1AMH@yaL`"P (+rWPSH Yн=~5 3@NJƊ+p JɲÇm{ZYgʚKt?k@|*s8&j[\辄~>1uˉL7Nڷ+Cɴ"G1|f ^d@IZžب2ј;mk :_~j?d3]ච{]JH:p+ m ?́X}b*K̅/qA9CpnЩnk88Jݐ B= z84[;"q8"!on g.H~_`?œQ<.jX=.:N(,1nA*\/4x0кߗM 4}>+~h OҕO^c 5Hv!Gs/pmB|p&ߔ9 PMuԤFͼbU[c#YTBP ez"mpV^Bʅx!|XM%_iz)B&$CIӍ%h>t zH&&?v߻dg@nE|Mw_ $0Џȍukg< ˫V܇A j6|189*f- !6콰qېė5٭ 5}bVi?;z#Kj_2A`JAkwdzjnOl[y<=9bȖ,nH[m@Zaa5*oDɕY\hҵP@i6PWKKW/ նc|13wSv̯͑TmqB A$?2Jo@OGo GÁ&.~X;?e4}"U f_l~7Ld6>GW9ipG+SDrck$a-Jn|l`ʆC c$ܛ!ܠuؒ]夥AghRNe`*U*[%"ĔB6֖ TvISjw6Rˁ#!5e޷*٣܇Y>Z\Ή vV<|@ϛ@6i=dZ3!5P bB߲w%x8UvrZ9n?߭푅< CodHA fIOϒ. SI4u#7Sn;BA(rV){̾u"ț3rܙhLMъe&0/M&c3`2oi (2kW@)䷨e1wJŴohϻnjc?`N /ry6qs9>\$wCnpnRׯ'.L@ǃ[/wwXO',sDq%6 5}\%uJռS>uɭs[?stD`۷ ~14hoBHuj`&8l(s %w\VmF }Oi_ {X7{% Duzwttm1$bBTψoD3rTnHaXž p2&VUltܐ\Z %+; \2Se,e@fa zdg f )j2G}!i-ۘ[˔o0~ѭ2M[M173T1ߺz6cLj0cm;LIZ94d wV2s a2+o\+6S1LDDtY Q҆Ā(;3 nMhYd!恢B'̿TCLrwy 0sʉ'+2Ψ %=5mgJґrWC%J;;Lv=08ҷvٟ?oωo? ڹc=(ͻ1)=O UEZ>7Gŭ3j4QytHb7"I] 6C kߕ#/3LeSd;O`dYjbݑ*-> 0\T\׊VX vŤΛ7E|4r?_S7Y[A* f[RDnt-d⩰{{( ӡ3piqD)Hk9V \X_,Oh/8,~ǹʅkJ%"> ڥӟ! 2=u{ \)fXELy#Ͷ-ͦL)s[\L/H-օxWJ;iFrݝGVĐӣq/}ٛA9խ)ƟXMM$swv?!k.,3~FӶIQ)[-ޅ;UxN A 姥im(2_k8V\CjOD~ YwR&V B4ÇH#[mjKL.PFh_e hA0gt(=5 dGADT5rlgd@;tTbU CTr%;U]afSAȡ"x 8k96R![_Iηb{Pg)?7铗m;Y;n9;O$Kjy{@n\&˜b@ ]^XCen] UMJįƑm_[*Aݐ7Acm?!ww[t9oN}Kʎ8=iBZ"d]ǁ3Ӭ&Yq5_J0y/M֮,FT5 CGK0C¡P6پ:=c=M< m4F3^ex^t7T+I"o[%^kv "5ďk|kRvqqu۷+YnkDWro.w7SQIP{+٩ :A|$wEc|JifHKȴ(S;H(0ǝ^ -Cg"Wjcط{Q`~nOa0:DyOIA~9%pmC# V~ p *IWdXsT!C1X-^ƜŠN?)l-2"B;_6epv 32_Пd9rs1yt%Ci?[9[T㠈O~D\rYdI-wdAY^2h~ AzZ X. a7U/F&]V|O"Zɞv&((}5QV1+ʇV3Nc@@QMD|_Zq xq2hRR]M`֪sć  _!i>h{gYIŲ.> 9{-J7":i:$J=|< A;'bok2kiO@uO.^ a?6=B'{JQ*G z꾮q-r-]-z4^Ɛ4ԌdI/.4~Q#,ν0Ğ7 mK8QܦČz?ȈĀ9}CX :$b%ʤ6hya %g-+ZP3`vK + U*M>Tq6nuT\G$sEk>)ū$A~e6mI-?ЀZGC辩R珳o2[Bg"F"B٪qhb6Xqu+f|0#T*)rL=)EK$ly e5xwbt:@S>K!vaJ$!Ht_K]6zݶzFu28`ãtI@mL:ΥloD9 =9 9+MS+lcj!L=40_%a(\STK MZ Eѱ-qp@A,|l:=r<|C]B9l1ef Ru>t~.:{f}`@u}@Wg18fN$~9̌$w6(2e J*_A?hU?T$l9̇'ض x"P6ec_ޔ )ܧl'{M+? ɓ,'&|8O,Å bLل$6b6H WBB`s϶wsè+!]Ǭ2=ԩy&ROd8ի<9SO.O7?n&/)O98Cw$)MS9Ƽ?GA*;l[Ba`h [U9:߳Hd.ޥy?)kٞCO4}B͞TގЁ>E@™w$'B tTBG`?8\;z[!XouFA eؗ:' Jw(UO1rÐ(A+=OU[j|>5eקW[FA1y"rT?s ODf"S܈dc:K&͒$卸£ۮ.:I#0mc@ƿ@P$?徸>e տe "G`;8-+vo'vY@V9dX6/M]”_1+E-J>gN$: Y0m*Eυ"?BI@3bA=@<rGՇ@q5<~d[d_mH 7W\: boyI [%V< P6KBΉa!4òqI"BAn![RXG7:oْ]AۋAy~D:tc rt`t.WEXqQJ 5d@DU8C`18liW@P(FcSٿ#g_dУlWU;S=o'&@Y凔A!~ssfg\"M%-zu޹3I5=Bds>m/DnA(`M:X48ۈ[ԏ*F<$(Ӂ<[y@p$q.xR.)6qv,eaZ9 ,;ݍ=Ę53.]>X(\Iߓ2`c MsY9U̹XgrYٻV<ᣍ.ZٶzWx_\y^(%Rnn^!mֺt`FIcMp]7?qϟhZLYol-"/ۄA G:=3~[m뿵S4K=Vu.:`EZ7[EM3?wl:~K3wt>k0|^9C%f1 H_/[]i2%{jWeИEaRmll7L' i]gi=@ ~7#A I&Au;Xb{wnefW>@غ lmR$R۞B" @$Yk0صe%Lbcc* MgɴO//ҽbτHة Hk~ViXX)`zmsYyN|AF.*+gi)N G|) de=gR7S:8_7]̊c"VW1ȶPa""q_ކeeokߓV`oKC:<׻/<5*eT Pn3GkkEÝOR۹ϊF88h"t#>џ<+>_7hac.ֳTg 5ă4ْF@tuqnݝ4M*Ь+pye MTUcv^[F\)^1$r_3_k%+| i -6`yp{c0/a&Ĺ}ۂݻ P`nuvola/128x128/apps/xclock.pngUT lA4Qux %\{!nr |6;d*Ķò| jŨ"h:{NrNCʻ891+ _Ldԃ҈R~%eʁ}9wOO4Z: +r3xupgW^j%aGʣZhȘ.ލƒt hNJdh'>7Ç7;KF"ZqI0Χ +#f#^_8|/`WjoE`oQ@ܢ8hz&!alEzKS6ܙr'TަF3f@f@dkj(^0㖋AǶ&vglköw6q:Z7Sr/|#B&ebY/unD$æ"T\^ bhMCL\PU"7*E :Nz)y`4#9[N)Yrw 45\س(XRUr+-~s@-:8.J.^|e}V*ر*V‡[yerET<ժW;Aˌ9""]@vHdD8a@!6GP T?lh2M I ?iCF5|NtEqFBo_]&9rrGv0N sV}׫ Pfby\ x*`!A!/saTiZjk'T@Vf%yL-IKܳq~kq;$_Di7}b/@sFLEIl/ wh ",y& boP柏jH4"XI- UY<\Xϋ:rTȶhڨ1+)'5 IZZq)q}XkE`VM&]?U^ ֮V86SWINMDliMpQSD.tbҶCY}ٟ!4x#%7׿;u/ ZGG9xQ]p1tE#Lg9J$3z!o&KNӍ$Jgn';R!#,?u%3멙u54|J!&o#)Uq0W2.Jl.I#qkgKH#Oh3u{0?lG>%Vf#d/\$' ûdF3%芄Ca7u;tH9:؇)l0=σU+|Z˒fn)<^^v Ew3}y( GM*#DH(XrmY.rX=_jl$+ q_XGBؗf"ݔyOIT]W4+hHI{d sFdu#G5وgh-HT}+V W6+ELkwxU܁) R~= kvO-ESA2cmfM4ڌ&g In"҉]==3H陊lb&pH/rA4.gѲªU1cg/2oWflhdaW{Rcͯex?_1h}\@c|8rR]خXU Co'?ꛭ\1 ԊW[̈d z!e*f[ZZ͜]ΛgC{a8e2R 3}"\X7>8znXX-Bk[+2Z`Sxl9X?AO; G|fv n O?qצ \_ŭܡ3 0Zf .+҆lgP J $gPhXbmh7pVPD_ 輸╽VgLE}ݨ]5:xMbݤ,'=6i —ec Vuf2^(| #>ى-UQ}Pק[:+od0LXT]@\Ğm4#L!2b#r{}s zh$2 ?އ& (4J|_E5E+,fD$8%_&]P%xyn#t^n]^籜T!{:bI,=Ӫ0Jex4.x#A"2yu6Ozݯ*>6!DUςlҀ\{lV@GV^<8svn+3~qOj;Bqrm󩷆YO|ր^fda;g ўSxs^s003B^=Xq`9?Q}cR8kӴ & Թ:jx:1ǵH5JfW=BC5q;\pE.訯SZ"m4@ff&vJW72iaIh_S>WR&q XeC@6 #<'I=R}+ qֲP? `*8`/1$0:OS 1SDM|b$O!# ת綯~iN:emнڲ8[b~qx+mS6k( Iw:iܵ3PϝonH6[ @_\҅%(TK%p4 Am&pP#۞=WQRRٟ*h>piWNY:3RumpwRt|OEd{+XZr?\w3h49< #ER(vinާmǹ,koWٴ=Qxv->nd&vI췄`Gq\ʛ‡ui.LKNNZq[_R#q Bdgg%qVo2a{اf.Կq8&mc~ p@"1y(MPu>rBZ?!XTă0dZvp) h`>"%dxY_o>-iLۨYk+7MMQiS /ة04Ϟv C%hʃj'~Ia1v}BDԇ8ѓǺ96w3;<<`BvgҢo0(۫o_̪~nn&gޚmaSCю3dXnW.Y'XG`U@R}<1. U U4՗E FqW5X[dO?>  ; m,A0FA:d~7~Sϛ>!_+mQkYd6"N, GGG{}th>9on^O`>v~@{ 腷.KgB etíMy8 2܊3vuɯ,oeo-/wpL^>J/Z~ʑ-t}µ  3[;hAĶT+S8{Zعt.;gkTlҤtFP`n#ςPn~gQ~55fw7H p=cEuߗ{8a5I#{[13zcZ9rjY,xAP ԝ4@)̃eW.#2U4LnbC"4/UKǙ_ ^DMC#dN=*ePvv:ܬvv6y &^FBxXCJWkWv/]^/艕\X%tQ_d\$,Km r>H/l&GѰl]׌o_8?0x`]Zi7Gwh^ }w~e<.Db)~zH<2ah&I3_Ñ!U9nYmuJCӭ#0gvQ}Qz`. FtE[jvs([L`kkQݬm:vqg1z+րB\pǠ%˛dEZ6EX^m}x+I-fʼ+Q: +PΏ{~/|)e|zxd^<;kpx"ؐ[8nhB@<#ti V~SUƝ{Z!۴aߨ]@7kq)յt78@+[C|0:PR#C[Q >e լf_.&JQvϓHCa6"QKЪG D7VV~ݱie=}*,!q8 {h1hpnXռO_7[ Z>E)B%&ا:MI7/*PRFչEQ'sbv CNI8Sʶ;yGwl}&ETte#sW:GyT#VBp1+pdӐ4t)I/)q}N͊L=S7H|+R̒Ѩ\!S>PI}v.)_9 ݒ\))KO?O n:X0] ~1d#y飓4Xn|0??ĉ 2ˇ"X"d3ׇ8KI_|qb?Y(_v<`]$"lЀ[FOHl(8.vlidZY"mS\gzaRk x3Jti4kзMZYR, ^׸SUzzf 15Tϼx*&XWe)8DF;jL[ )Sᑑh_!b95&k>k3&@`M7}Ҟwk'y; :"_KwA,P)^en_E A{'>x߀6x) LM~<@ԤۖJߕM `<^aTiщI?huɰYmk+xիGܚͨcz>o;@[>gBJ5.>4U"{|o'46?դuΌ~NA_$h7t9f"N{w?o=eْw%nOBg23b箪dʾh޸>^ɝ j_uqB=N Fv6.۔Xm۔ Nw+~g?O.%w㗑fi@69cc$wu \DTKvC[f'e)-Oi ʈΥ!cX$L&S T5&N'v(" 3*'s9 iԉlkDmfG]Xy`@!.^qφo yTdUX&ǭUUwnѼ-A^(,G͌ˍ}\丘z5:W/^vc{J7W&!PFcg7+*BbJA0Q3a͠{a5"$Tk0I1m;v1ja'n,N(T7L}{@!Hj@ Zd]=K}-"WA%ʄH)6}w怩D#q_3)>4jx:F'ha?'DJq> U8SfnHCA.0w5bX j+$ēGׁG"E6{/_ 2ϟ(~{Xﮞ"㒜*p<"\7}♢p ^fCiޱ![:q۾IH-. Q!LP#vRl$1nyΞwQ1 U/dT4PQXh[zqb+wu C2Sg*6C=<͏;*)u@'V)Q taaNL1HE𺺈 )n 'Ĉ D:㡹$**a͹k+9mdl,H{./!Ddn[֒.,>F4V4ڌAu6Mh4܅},~6_wm9#a,}Hgr،D, S&0*WP|qHA0>9AU[,h= Ӻ7(27WjSP5d8t:mhUO]>\yvJ!J( 7B"_ȧɩEyz/"^0}{$I;嶵w衍<-d&E3 UugX3܄A;` EY%(aȰ{~Z$e0C)3ȻלOo/Zr鰇)#V,jуNZr =bqqφ"Wj.sN5cwϫ*r>Ӿ"44NR}> "D ߚ8-K`_,7^dkJ$͈̑{ rr\2uI&c +8sK! uE7} һIVbY_S,h JGʺ*q65Gu쪀PܾԔiiJH: (Ks 9f_ou?ޯs2E]]MyZh 1:Vg56]`uɗ;D$/Nh闵ή ه_xq' ꚚmRG9!Onc_kMg/bCҒ\quSl4 &缏qWT"XL!6e/;%ʗ5%$\`6ŕyWºUFʼn*S{X6$Jy&ctLdƟ&?Y'Yobh +`R`kgwVE@~ӦW{Ta9m)Ocӕvb ,(&@aM^"Z̋YUnL؆,s$6}7H^G߾Ny?J2\G FNNm10 }l.'Rur?0U2:+Д?wDb,/"\:,CNh$ca'PWF'/n4,9F Ph`CAiqѶ$δi M)WX$,cCƊwY?*bDm;<{ҺK{)7¾B?yS1V .Fj tSZ!%gi*'yPci Mٵn ЅIKxqTGixfV+_raE nf;ur6h#Q[_YõDFFڥOHC;)4 e%dӘD%R__߰ΐwQEin֊׳u BE>; Um<{VDh-kW o!@ݲ=#2vC}r8Zۿ4k11%AC +7gKq !3`%aZnȠ4Q3wtUp7]/]8:lQ,3ivQ>Eߌ_D(*iim~H,Y:W9Wd{zl}H܆6:ZRIީ(xN∅EUڣqE:b+īH}r],9B1ժ XUΆtd# \^`7k$H K_W /"<(#}qU[KcCYr0"T*t?t`YڿZ!m6#0/ DkrYB7r9Q5݆ψcusT¬g%,a4ga~ő Aꊸ" `i3-Y[}tD-t >=VwtiA( y|m<47F-Y8~2E!Bցwm(I Brs\%H{W ZKq0mrNJO'O yP8/Q;Ӎ|dz,eg-<{bg7_T;`Q-KlܮMs꠾cAU|?$l%4z\=8)N= bn8rg= pѠ &&p!!& DKL}z@Dǁq )ΌϿ% Bsaz'YspgYl,DcEr.BN;J@9*磌4D(5}2l99?,>?Ua y a"tu 3z{{ *kל[#{~lIXAhv)ib#n]L|,q\6bDz_q9H5eW)Q@8SnJ@׈^ PBtNRG\&}sJXU_`A 3W'silG-|,ʊ&VPW{L!N@em>_ hoA"z|Orvz}}#'bX >oA0OTKix2uv*8ay˗? Gʩq\N3E})StlWţ)G\ [{~80LiqeƇ+Y6$VE[vp=y;o+@7T{mݽov !Z&\Σ|XH i}ܾbɎю!!UN2( ȯ*>¹Y%_A6\)Qڸ1P!oӥpY,4lӎ8ۘwV5g'Xɳ'噒M͟oa3tt&ۿoYrkwE)zFс{ hmq7Q̃Pӵ2oW0ɰˉ,\u6+md u"n"bk4 zQ&ƈ'绍s2#}mm*z> )ocCPSo8z:\JbBIrMǍ˼le-V[G LFT}IϟG?;/뺂ʃK&ۼ }o N81/i>x_,9E}<]vFu}=P?,`S"L$[2E*)H=lB Ad|C}P@p9\%+wc2o{-j7x `^NJ.e7ljMW&Ž`gQƿJrIMCVJGzxM{րCFY3nZΧ=x0G]Qޒ}&]&\=~$ ""\Q^m>˜H X eV!j3qG7_ a&/E=X/5iII5h zXH}k${j-%9bbN<^[+KXˠ/PY}"9OPV]%7%t027d ?],-ydI{T^m䎼o]A f?-!ۃ!Lii |\,lCGXZ0E+mo*g,Z3o_<Zn 퐮rEaıڈHYYb1S5%x؁KZov괓ӄf W>I%0- ^BcU*^B{-Xz_441|PHNcZ︻ߺ]~UWuyG:lȱTզB:uo,]:=#j•DYX/)$-W]MU?yn޾3|ٿ3K?AR50Mt;r2fG6#ե~ ړ'QMܐW{_L jϲ)8KwΔϧ!"|v[[)uL_UA@~? sjM%ag:P/aX׋V<@)} 70yooopa$U ( e!Ϩ43\h#Vִ}%^CjFx0˷n1+}zfR>dHsvrv '-bAd.߆֊q¥4u7d€J .7R9ʊI1,%kCzX8P޶$jz#^o1bwtp.,Hqw?td~VEn,~oV5FU?LX|V!l <]MQHO^iH:*/1oZeC[icSE;\u-Q<*8,a\V7~qR5 |ꥪi7oSPA'fA+RbMwGSz_P[O.]zff XhalGZy㜈ӆHÞћˠ? lE|ǐ.Ef6sz480+kpxUcʴljDKjݟ]s iD]|hb/֧&6|6ӇarNpLp+ޠ+XOmP5̭Оcՠoa؍):*hs‡j j_fg="NFx%0ef7'??#U_X۱,%EڬI'Iu^$&iKN 60zƘ߻1B!˷IMm]!9&%G֡Q0)}jԁ?,?J'ۡsknV8<"֌ j b͎r$l6`*݌"4 g1 T@B~*tw#*-e-`j*}3Suc33 zb%Kv6 TK͐wɷ%Bj\j$Qz ;5'K}ΦT-Nru qw8+Nd~>a`UcZ|rx>CvĊ5f/L9WW aKE0HO< &2LFtL_'JtW>ԥ}Jcյf}s̕'MB3"Q6ǙsvR{(ϪQɿ4> s7;da`NuSF{w 蔠o5`YQ!* fg͛42kˇu6rR'X䝁ƐHB`aƾ [|/ 8]s0x('κ ^U)Jџ'2@ObLfgO0kT3Li8e lcY Jz݇݅ue`('Cq9 X3AC(VQwv`PiR%nfOߴcE7:R77ƒVAhY5ӏlII_ nڑbuS秫>5 Ν% Ŭ1.:>tw3X4c(o˹pl9G1?_U|QEܗFcj6lqh]nALno -!:1?RnLRׄrO\LŇsai+'m*FLP)w7_1Z-Ϣ [{|oM- ˽:pS=9F :xo#XURaÖ_V.qzDH/a(`r)M`H9aCvP'K%P|^$ЧV1ρ蒀?ħ:%A*X~Uuljpr(JB]kdnHyU3`:7eL*yb B@j+Mo[1/s>~awtt, n)ž$qEH!,"8o?8oFT;OQ|Y܈- ud0$&Kߚ)pA˰Y ~/E9g86#maymإۈŷ#2Ml?*˜8b<=UX>7l6%ش+Q+kr,*ygُY>XN؁]b\,=UyQbGxEt1ZA5J f$فVQs 5"M{?tXE '&| }e_h."v<݀SJ $U|y.&jߒM a]9n# v-kOa_PkKq' Il"꘦{!\&{9/Ð FHb&W>rh9,Is zoB 9Zh/'Is_)GqVoKFɲ!ۆ.`OJչ_-jcD́!^K| G y={6HQa5u.s@o<̲J+5;MBnoO=E2+mvCƣMӊi[cTTH1n8L6nYa>GQ;(^Cǡ=7|$Be/umN$]]ߗ@}dt'< D)nY4/ q 4_Fm*Qe7WqjLU{-Pn0m`t̪6́CCfmAu*vl4b"4f}˙Pׇ//a.$k^ۂ}pۣپ<^FY|iȃG`qoey;}yNZȑ6jFAX>x>r)7q\UͭYEzl;~5~,'<;@,7Mr{]S翉u?9JYQuTyLqYJՔӼݪJR{>ww[A]grEθC6TԾdBZK@S}qc9-G`sN 0 #`ȿJXwˆҷf9Y{x>/hWV9Kk>+DZCdzi+5:S$35 yho4:_|̮88هv+m?7!i JmӼF;K+ ߌ=P"au`nYyl(xNjCC{ÓCЅuKYu]7޴́/y$kK4ȟ˔3LdIi6ёcч?򧺵x'GRh--?q;ǵ>6Qmʾqi$4e쉒CD}_<>-ó@-JUE{ɼ%ic4Ƚ >$di@zւ}%|6Sϗ`֋4a;Y]$U#QޫXqܸnOi<~Yu}]J('Sta@^hFer}*J?y|uFV&qJ6.K~AFz3]Ss; NSKdQ ^!#N$NFbacwI_-2[b+-ߤ,&L[~eWwZ0]nԜ4; zGI#wWMKJ^ PP`O R.׃AuF RcN{}wD3+y4"{!!Оv17W:8^grLQW6Z4jkg0dsMi:;?d߳pzeǹZ 5ʺа)vB/4y$4y2YBMr؝_puۓN0_4`7A=Lo"l38 W+JӋ2duw%Rp,T08!(8t7ϧbI>ەAuAUh#" [cdvOoifӆ_,\(QsR;OP2nvJ'\ݠgf}vvF*ŭ m~J´T1Lŵz͝məV\x*/J;;/=1{[ ZmnCZl_|na2aG//zi\[h6yQ߽5Q$/h;pOT-; skxViM1 {hp*()o8F H c W ¤ "&&akf`}9W$д"tQT^E㑦dh$Ѓ/]*RVb&Ѳ [X%ĝ=DM᭞z X}a%CXfgAcsG߉E쟠"G0ߩg =! ɫ>tjJX/W6X.ݟ|8(_KUC4YGğxOda `X^\3p|uc3*E?+2R_ Q'Yj&uqp;qh[YӐ?yUl*sc.xq ϛJ9S38g= D #Le wAMnBի:Qkkf0{B唁zxL]+ԗU]f})pƊ3ll nmN^/[OC"t<N@oA85NʑVXZ7Sg?N~|o dq{Lo?;R߽7-$ț#>E/"o81\YlYc.B^ݤ];퓔>-13Ey}1kӱB~;0x=׿!>2l֦8DЫ/RgA-XG^UoVhAC>f=a$GNi c?pXPTqj$Cu׳nٵQ :9Tf]ycތ6#)dܯM LQW&p[bi1}LfṱMc>L {7z0'݄-eL:R}G u4<~=$WȈȽG=* R`Ї/YVb9!qY`G>}Yf.) umq{M;͉BtE^'#b tf[;BNpם//3>7Fjhr<뀓&e Jm[xзQՕ,Us@:d*CT p_(07 ޭmw,c4:&䜌kD&X4`[$ё]/z #E& kOE'({Wv|/~~,Um)U|kKZtGwZf36S3ґgb ->Uևys8HBw Eȶ1\ o8 /r;yfzR/uQcѮf!.~"q[V[qUY@7E#)):-g x8 -iW>fY_%Gxƾ}{9uCzF+/OQg}6D@̧BQvnJﰷRSugm7H|.io_!뛯vKr`Q8aro5B[(TG!͘Pq]$Mtסam)PX+kFv6< қ;8v^K=G#]b&=0 )p}cθ 5 RWbó zFE`:E.&f}(Nyd21#R) \mpDˌ8K*.op?9왈^9bcЂ+nƗ{]4M  =0jTjn_I~B-YG0?e^%-ڴNʙ ?^YOV :lfIsa▊ugO~Ie`Gw@*#?]jaEn`{% c/ms6[ރ oipbrZU<; &b;GLWpy(08 (keM~7ǯ3qe'V'H_^9/vs_U]!/#OZC㵜XQCy 'R-his w|.Ѭg#TAKldt7_G4~6Z`gsN)_`OP K"A7A -r++%"LP̈́ټ"JěטWRZz8mx8dQMEfW)\Ƽoٴ cvݙNJ?DQaT65w4}4n>4Ko+uL\ nlyַt? 18,Y=aVpie1Ҿʦ娖*Y LWwC9&l~=_Z$m15հGͧ~LRX>2-3L}|MǧY\Y~џ9Q7og?\w}!2/{R1n~s~竛Nqm;<Z*5p* U6y- rH)i3 ֯ApvbTJQ_[?b܀k joe/QTCzyuߧw-G`bMK3Ⱦߜ2fg(H٩UZ[3!8v@]5x6@sK0֩?7yྵ5ɮz"#{aO֝aWG'-V }0ҿN$yD$[O`=ٙ .Li[iGnEuhy׬K-XǨmT֮ߩ]o>K:&ɄߥfնťNLGw tI{n¥ㅢ$Jk>0d=q C*kԟ)um{\ۘVPnt( Tp~]Z@nŅ^Ƽtb qZ;}EC4d{p&2Ȁ5o6~{vs|PKL1L4n6nuvola/128x128/apps/xconfig.pngUT lA4Qux WR5ʠpTHSKSRJK,sf-KМLKJ+'K+KYlr|],~ggڻSCmr߯ؓ{ [kPb )kvTOs~Qa΅BBCM Ii u@6A& m1!zP!p2dn!D++a ! w N%lbNք"6@s!ZċO]{ڵknHa@dOٟ\_IF3<d%4`)~ͽۂw<ҸGGaa>bĎMJMv((}vMf _w(Zx9MTT6ָbLs^4ZfY]t㽕R:3$\ SU(NO0}YB %,ZRҴkT/{ uuAXvCV[Ǎi̮ o`9$6kI坁 uH)1r/IpnF˷j⣤6_q0 ڙ߷DKǭ%Fz+@{`IXYBV>ee$M٪*V.!KTY_v#0w )+>ˆ]![sshny2K6y|lƈG4 ArǨЄ$k7 m bn6t m6T'*4IH9\Oc :{%z&oNfq@AA*1v*g['O(݊%|yhBSƙ&7Dm/5ªVvj89S ikMٵYѷцFg_FMҦ R&G8#=hhs\YRU.9ڐK񊻫bB:.!i34]oNWEk??p(0Hæ @+k/]+obhkcѤ࠼za;_X@ oK6Au;s _yq2N$°A.YwtDtz1+/wĐqe R~:ܡH _ec8TD +_mxC[8a#3IhF33py5'7l֞TkN K后:սb sP+`ֹ>NMS7ewQ) uU8Ĕ۴ ы4ɮhi^Rؒ? 6.N|i|Y %.h1TpdK `!ڣ K 'P*PJ[6F D Dn{,$-l;?zp6a~3!nճ ]7ng_LXU(w(Z\ȗ18։yQ5Ii?UeȃsgMrF}'H!ѹQ8$ԜObHʾDn[l6aQdh8~\cM[YSysq_g$n/t"H2ٔͪo?̌a?s6ܨU'66JdOEQ$@~>UD*[Cl]&sXw}S*|H#|)+ɤR#n4(w6*fB0jko [k](s3 T-\+-fgD@)+g&Cbo4PA\˵]L s$ByU^f݌T9)k>+O  s,}yW= :{aGj@XRsUuO2Op|H/ fSC#`UFUΨg~8v*U2%~s+\ Y3fJWѸ䜰M?g 1!_@<.o\:6%ATHJ:yǿa\K35un'9Q^IX ĵ8V0s˲>tv) A6< E0IrWYS8( ȕӢ\TK' -أ+YWlӁCxa'F+-hYY #$Heۂ60jS,m'-Nk=lծ?OsˣS2JJ^Y*J(^v8ֹ#V,VUsT55 W +q&Uьrav^*pDva< >ݶY`ȑKMj$G~ӽAӁEo,VK~JG+#_9k§=+8 0%:fS=QKi$C \%tld&@ABYS k|7czElz=_nk{{~#p趵~U=M QI!Nr;vsbW1 JQF<2紲kI>6,F˳qMO J~ M{ޛzz%z ~p} NNJpKtl:x?Kz=7b$@v˱) | zA#޻ NVXC+i\yXۙ*>i|4x!S_t6XvnnE{oEAO<yp -;^ F[?5~ZiL \ըZD5repGTc&Ė)^۟Q3l irdmyc@h?%zg,".2,$h#:[F& YEW*u'oYWoj9eٹ!`uyT*Ooar`j!_[SJi[þiOEWH,M;Z:gW^iBjy; >-/r" 5 MZ'=n׭x jD Q㻽gww jFh&NwVjC0{ rt ,#_7N߿$dDl>{p:XdY#1mj3l.p|Fyʪ6Ⴉ u"z-wWAKe%}x&\|vؕT5j"qz0_X(Q7<ةF`T$)BĬʥI&b aAM] [j6Fym6Pj68 Łcl"P&E sJy*v\d vQW" :/UbiJ'LbQioYJ,zQ _ٟ0.``/Sоe"c'5Bw6Bwb ˜E۝ĘQW{-31sوușM]!%^{BI)xDM捸+KOFGC^ Fʀ*<,$$躸\wCx'!N+G"lGD_rO̪#zaS{;7(Ţ<m]*ȈewrĢw2P[52=rT׫l4 8fx)22tšәʠJiAd7~w;S pUKv\hYhPW*ɧ'~^|Y貀Wf|89E{ܼ UmSªF`=Rhڼ'r Vc~~R@%ƌ"5'?a} !aC[+c &ԟщʜh[tFhUM#@ N?aǷEn4uqGˠ"bRP,AW7| dgMR\PDt Vªt:M+^YC⛸a[t izk桸ƊvRT<~EeKwۇp8k+xGv.)%ֳf3)̸w88@U(8%^a{Ǫt ju`ÞJ.) FӅu%P_gCBB~=!pO2`180 DS5_N]Nac_I?Ep*ֻ#m8Em"6$1▙\͛Y}%$4m˗ oC (Cv}c|iP c ^ E֧fb.%i!U3hlcc" -ַˢb'+<[LJn}P;"]:TVxɵ[ZԺ˟{p-Hk ۅruK1)G=_YgċJl[fװ I-'=˥ic}?8Wop?M#K"A]_ I['bX3Qi8#ܢԺ]8 }smco݁q_w,:.DR@9xvxc+"WL[ĽzʨyMqbp|qXKhIF1bj+]:^,1TSN&sBWcq ௫3 ƄUg-_x(%:wxcs4z޵h^}5S0֖C\ $dɒusnv%fT|+8kb\s%S4mLL#kB3Yǻ&eqK_ Y~!Z#7"!L(7Bvz\+s } t*Ul ^:װjSUoݜ1_|ǧ$51FĒ3ZzT[?Pj+xlycH8M}ŜDw?{zy|BA<(ڕnͭ@ú D{ȌZhh[QyAT`J#i{ )uYV4E,.Eĩb&)|HMKQ$ɥ= Q@zڲ,SnlZX=gkuhlI[%B@ġjZė>+w,vM)r7(+{ӓ(uYeO'W ؿnw▱X?\ FzX:$ٵ~¯C&V)A{CPwX3IE6D+9nсɒ?{͈% |yBAClf@m(9P#n]H!k%ٓv4x" =h)v.pwV(o ,rVNxZR{'9(v%g(o`}-:.yfvabSv*0 U|k~`;?P?Y֤-(ckae]N6IM:-߿pw.RJ}K8F1Mzl|(3JvK pu'[K)O{׀r(LXpL1̷6{RI;8{Xbˮczڽ|ŅXk%;wdPkYvBtcTaf"u<$l MI..ET_j(s]HgB.(QUfk%}uэV3?ak@u-j:OC RM \ }6fX+(/lM93xƋɗ"Zo %5uzͫx^ҽQ/&Fb0?(Q/XǻtE2u\3Ҽ;:Av_"/ C*EI$Rge rvk\ީ|E^^Xm0p;|iɣ&/KBp*$bcMcA^p|< ;q[oS2XKI]M^DkvZ!]z.3c%( bB?{g5ɒOǑRyQDpJ:\O^f5t0cL= }tml?ٳV|ܫdMC.G"O$ A ]m b3i`xu|)ezW?|w2ȾF./VxVMz a^~3ܾ\<56dҺz͋W+tP :[Z5xDDRS)mB RZr7oGNg>ώ_|\?ԩ)ۖ1ea'BPcS0WhkF캈vxȾО50 `9$vo38)'E}=K]gT# 8hzY]<#e(-s)pk z+Pr,uv2Kcgf2p{3TxG-䁚#[D'oف~| UUV9Zz@|||-㜺r*=֥_LQ%j™?4IúOgfj6V=o}v'8L`̸ =\7g`F7Ag=KprLUYғd򸾍9z>dR1kD!q@K32kbOϘqhu.' -(]u\gg^;e`H,wzSƾCs͜%pY  t1SJZ>a_/ #̃C„=+m1%ǥͬvk̙6TF'KU&)"?x?pX8Sȕ]7vBZ $܄OT^8v?/ؚ#.6Scw~N9 f]a1ri8q44W}Q7D)D[i(Bqj5tgK~|?3 rlɐzhć).i9_C:L4:R=%L>-*}Na*mpӽTLWXX%N=']9vV`DHqx8zЄ?/͹}(GD_+ذPFmE|g`Z {(RIM)57 `+W"٩ƥ\flιW'NX$x#_v4Z<nYǼJCn*ۇ+Rҷ51yWHu(;J S/2 O;`a>v:O-}*az>Qq:8wBRuOg{X=K'TUۛr5qi]ڪ[Jn>, <3xrBmUVSa8~v15hǿ&WsoX;.YBЕ uj3l{3% udooMͣOx[(^;M}1!:3J,/^=/+o͙н l(WCI;,SqM%FK1A+"$|%xxj1PKt914?j@nuvola/128x128/apps/xemacs.pngUT gUA4Qux ewT=<PC HM+JK" ((PDXPMA( (HZY29};d}o{tJw;+ < ~|LJع sH^ބ{v7ؒ{=6y(p.ڹm/F]@z"|𶗗W(Yb9_S"QK, ohhf"Bw$|=i|bc019\m# Wm*R=BM(0OzN'H\qwP%u{pka^  ?7vpMp\ee%;)anSV3ԞA(XG8\k3It,r8陭"<}] Ms-iՋ; (d2H!!/e _zQC1bX q+vh ?uTkzFږSWY#5 ~~~s!>ϣ@=u:fk]BVX|𒾪o'H9.$))QQ2C5Iigd`/PkH$οLU J'"=NBք##dgg/ѣ^oo>R#1,3&+Q(wn"';vN>TLL 4w}GmkzDߴewUZ72\]/^\M(ŵ(P*=;$"ёL:{VY`^t_'Pi>.5>PZ@l/@ r `.ǿ#(*BRmEdШ!N<̭'|\OKI~ZJ Z@8$GosrJE9b(ɋRȉrTG5Es8"{,^*+̞m2'4A+**8;.$.2Vwp>?X߷J !e9s _%F N0@ŝhU9 PqvB(eC(Q;F?~lXv*Z:}<Gr'7I4ߐLt柯2-iB~BX:lȵ) [AWHQab%;pfk k-7@~] bŹ~Ġfo^V{ySt *I~DCoL#4TR]{8cU^ܘFOgJR( -Є\8+nP}ZRzrEeZ+|yY ',xDH  G;ݗ؍+Be?d']&L1OoצWIIg0X (\x?5d^tA`徑 92GH/B۲Ӈ`+ݣ*a$ih3eAOޛą7bq;e cug{,5+>HnkMq h9[{#m"ǁU]ʀ8-hݓ _ގ҄HWAhӰ%Eè^h}Ŋ)R6OA{Ca s1@?@Zbrw3Vhos!Mo)$Yq*^**9f!VZP6^QOdiJҰ ̫#F^:F[7&3&5־F[k̓IFf6Zh]@"WhӍ3l$E`J< LA)hS;oqkU6L/ҰħwQ7"zo#o H<2b/-[p$t5RJ ޽#C`)[j˪/Np$p˿].]'}e[ LMNM|#[EEoq<>AR(̃V{ ?bM;H#ARg IcH R! )?;Jk$v ɏ sIn֛ (uat.xIUE9S 5?^}uweAWCO0'ciDKў)ߍp27O<;;PJ{m?+rLJ,l@R}8ȉyL!PҔѧ/M+d} 4h.R`:dgoI˴Ϥ="w^1* * #>D:Ë /8=zlC85Qs@ a^QGάH8x %B :0vol .kWIyՃд#Zb$$$.A2(h!]"/\LNDKIS^(J%2>A/QC`޳䰚wH] &pV bXDMD4o_2RƋ;,?}AR" ajwE:j a. ?l W}d7w'2`6m|-˙O ߀@zGo[gL};%F-šl惂bU)[|֝;;&挌gak ػ j/'fvePЄ[S]W7G4 ߱ EgT7*9 [ vƒ/RŻ}\Lka:ǩ@O6S0ֲ(\*|M p}˒Hqj|'> {|3>>N1 nxLj~ߧپꬂj3 ֫WF͗s"qƾ} |;`UDvw LqF'|O$ԉs?{*((%^ PN๸0#|. Si#_&zU,_/]m;$@6-iTDn.F_,mnme'Qv<8e@640 ou#fWR{ JJ~*ĉ`vLRzB>&`r٦ roS*m͹R=؟n}FE?-`I(B^tZ  wyoMõ4`/]]X8}TP^+7a!A)>&?j=~3t.ElGxx qf4.14w$A=**qp"DR~JBM};71{{O͡K'MY{&HLY ;>ך*NLJތY:g=N[|Ѥdut' 0lk߉=X'GT^BMeC5`^gΜa ],8 pWT i5jڵ s[01DUk$<,V& Ƞjjjrv]2:c?/q 9"MN\[S¹ds$8pͩEnfӕ^M'>G@8)*oN4#Bp$H} rn3("\A_`du?v%.!1/}>xp\iʛU8)e/ʅ$=yrMzw€[]f&SQ8mZ7hG+D^tQW&~U4DUR-RP8mY.=zmJ 0VSY@w=4@k&8TM1dK)] );:X˥^aXVzIJ0a}}̋ƾF%[NUY[+le2,VH;ќ"/&S8 ^L]$g5J?Xe/)N aLH`D0 ]-Uz|)UP0v/DW0LAc2Yղ,vnX9и6bפu) FqdxJ.vQG$hj2^Q%R9ɍH I >"qStw ?/. B>g0oVwHjVzpIS (^SOZ!E|KxCP&,nPԌ|>KԼBJ~!㈕H?RkJ-9T.G ᯊ>P&;2w B0􄁍;EQɿcQ'vT&zU{}&>io;-_p7S.sy30Ҵ'Ĵ:Aَ]}ZZ#K%-ߨXV 49}Ղl=mIkZ;;E%p63QVJ[yDoH=Tgu67޳}v3)=||AVB⒣05n&t〇ϲQpZDRӷF:vH-. ͟mrv8qI+|?OCǂ@ljB|^km{ڕ=lEZޫ ty5!_$4 XU|}~lyq5!EWփg9娭,ȉRzjP:5 hh$*;[tjKKM_K4V`AQRV^[*_~ ?H/QۻnQj1!'A)wT4SF}|2ER8z\gʶ "$^wgO8o;PXaa\#d,-}& oKV_!|[i|qq`Jsa {ɳs *\b*oJ|I ! {EX J"8f~\XEOc]Rے!^v#_xHJsv!dY9V=VQ}T=mgPI >F!/{%ৎ#bV_~Ŝ:u :Wd@U40?hyľ?cWtYHƛe?QrD"Ej?Yi4O_ $Vyߤ<I^{ũMt9+{EO\EH⤊t&=q^O*OAlS[rø|$@S'StFJihIL-}$H$^ő̯S~?/k=j?dBOBPN :_hEd#4N~__!OnG RUe5fm[ѩ>fPĹzcdd#_^icۻHF|kB -Z8p&IEIE# 5{<ߘ 4n0jZ L xUJlVWc%6&Enݰ/x×K/kEkL#St{iONK| M/55Kt8VV əЋ0GAjPĒuo|Tl|:ɐBdzA3Dk ]fkמIsR?b.|gӠ#ZKKaU^]hA(`E~S=S%7757"rvNo-I{D} o=CV쾈upAqz&#Qi*ȋGŬ@E}n333ab4M"q kdSg.:uccZ-0u&ߝ KiiH@?%˰DR/3يx+tOW6ʡRPPp@i:z;ϖ0|iEE_/D(!L xnL+=}3!ة/oA|Us"7^?m6҄]mJŁ S DPyO y3dg[% KBD"0(N{({iIKWAH7bw,7Q^ёi_(п:"H+yxֆ\=DC.D --rҥ7v7$מ|i/.&"' u Wʏ̏*uh@ ~PTl>mðo8=A @:.lѴ"ѯ[Ea.n$K|~f"WWDfd:U8#2ӈf <i3u|ͷ2R_8#BA=N(HP! SfB;w:V{䡄6)Pt[ %骪"f{~BMfiy]DH%؏PR`z1_~m\MY()ƭ^ %.啡4G|ӻf~Yh޺%:G,8d̯ӱ7Ī4[95T+EsayZ4?n ;+cڨY )XOucRο7oEo3_Maj feu3ךp}CWX-D9Y!<ϢJ"QPH]j'ඹoP{|H2ea.ٲ4$V"))#bԶv!' oS#C×,X9/x.+<QDPZd}`tASg50r>8J{ȽMbX9ͬb)#ITRǯkW';P io^Cpq+q~G?~ XG=\p-CFL+ M[Oϧ2t>ݽ9=Ҷ?7iyı~@{veIWbO8wq/R管B 1||Fb ?A˞TH6"|JY^ަ/{)8뽠1O"4=Jnhhkg^yNčx.̝D4c.` :E{$& D λMK06)]3O;L]:')lfFm޳/84%bgJqVWI'02eϤtl&t(%~3/c˖1i$OY5g qG4ٲҜk֕U6][rz'6lm-zPfx<1rhڌ`gu I|<|&\QƗf",G}h2%LIg6b8(M\w>ZGp,D-ՠyܡFcr,2ŔpRF~iB?FN1: uMޮY1asX_[zI:kKf${jG97XsUo;`lE)efofR/N]m`/҃,KT6(6h!G`/ʥp XwX ˴vL3`cM o!#ȱM qщs9Äi= ,|QY%W`pݘek=caR@*߱88H@!;B:xDТƓkUt,5 J/.P̪B:N jB2jٚ]!anteSxmSuy`ݵśœ\(eӀʒupE[}zu|Q9`X!aXJ7;@<{bhhN-~E/9yN_z6ԗ9 MUrpJM8L}%G̸Őe=)Qgj`E}6NhgMpqlu]bbbpV s/az:v\C,k]\ow3\q&ON^%% (xȎw6҇>ٍq䑴3F)-5Ʊ! C_9MNc> ݻQ,B3O纋XJ2ݽl?IW iG]wx5(3W}wml7ԫorӐC<jk]"dXz߆[WDkJ%{B;640Po=SPUdh镽lkՐ{+GLD)Oo/Cʹܡ ̼޷CoZ[έk˘PKa>7U @,Ԙ17;`\Y$.)q$ *ifd,47LWUťbtRSkD>I S.D/Uú1q3 |X5XGnj槔~;Nw-Msx`I,#PF>}ϬgHf2ڌra7?[;tiz˛HE\,!iy-r$'JroQvmNܽd9HnFڼ. Qrqd ם/ kw`;qvcW_M{ߔ Q 6|<[r ֛vqOzM z7if>rC}W3g ~Z?_t.@bJ3]-g;(>/@\ Z 62"#: ]6W:GDd8+7qƎBW3' ` d^o2(QTI0ׂ0ta LE XtfFo?O+FV7Lq3{T4FȦۃAWHbU=xT1ckγZsz?+WMT~\'X^gn`W8Yz/´_ mkL^~ͷuܐ01'xy  aXzܵo66Hk0d@%sMq8ؤ?ZXA\l?K~2 WAsb܊'?c[0H }*Iܕt;uPjsneznF.éLJV5tp>c4#vfn69fq7|q~ IuXAw;QgNsXdطS9mu4Ϊ`fe;u1|lWSfg$GL挌ݦ ^|Rkߵ33L\٭wlz'v!GQ#PE\v 3" js_-zRju[.aNz5~ h3d4;4IBgWLg&OҼ Z;<'G77."oߥ*Iɰ;Dg}\yGTU5LsF9Q+eۤ)%c¬˾'e`2  ' V0[GHv j͂%Y%6H&/AEQKbBAQ;旅Y/ݪ)Ȟzҏ&e=B ?;5;8snH5{5sx1~V7c@sūjR&i\QRxu m⭢lF sXeHZLJWr aA!5ŏGd\>0w[=s%N9w=gփ^:Of:^L5zs@{ \v[C擹+dΜ英`Gn;;Nf]vLc6UFG8]D.z/hq$+3.pom&\ZcvS/W6RTP wyC^x'8zaVP1 0.M@vX^iD^,.gl<˗hw8*/[DZ;^8&'4<Ήz䏙]g-qx}c\jQ󦈇{}3!icpLDLp%5ݕz4Lm#0Д鯻S"J [JUs,ȧ{$~l͠!r(ts!=#qF7:ڳw:;*3ㅳ-', | ω DBbT5,ϰo&?U%e6wu[~qPvz2.mƞ:?JK|?g?DǖPaa8{tIVi[^~3rs}܍wMs}&;%QX-Iٓ+<vYańdh ]3V\P%qẪ|%SEAo`vaƭ=XG('۔ΞG+$^;n;Cc1oT*/.P 1WwG_nάc*A e>]4;! 熁쏿P/n(ID'؇8଀E>i5)Z gvs<0U=Ǝovq_])O|}C'eXu.?>4_5c8Yum%bsebbqֳͨe܅Uk8;YCjc84wTSX&r`AH_mrŞφd )@ ,Կ 1Zn9dAPD97?R+*yXz)Nߙ:\39򨹽t©?zW$8&Z[$^>g/g35PD~o I'@$~ %Qd.:Ng{1RJ3C~jA3R#2[]yO\͇9IeDKLޙڲ9m>Uy"oQXf}L}A""ħڴfi"JOР4#1- 0[26CB@ s B`B7i^ ?]LJ uueSQ5i6K)J2MV.= 1˓^)v[a%ѓ%sK emP&Ԯ."٫މJ& doZ˖<)p4"-vʍ4\③ȅ{O$P%$Tݻ/q*ɦueEgEGeDu]( ?r;LqJq3~18t 6>9zW\ԛU^oNGO"suݵp-(v/l!wp 抷<}zQ+R#È][/+a|VoXYjT؁ =*x"zuNqrFኗl)p+Bre|ߞi]^-q ^B0Q}ю]̠Qƿ:(~ []Eoӗr4Y j4 SP Fɩ3QC د߭]ya gi=K*xr4Ĩe%}y֡xJbt4 'MCHV[]$>=aNBG?vm<*合鞩74n%taN^3͏/&%:N9s߼gx?O}V7Bltyj:Ҩʿ#uY)Vp;3ሙba[u]$/H'~21, ޖ;%m3<97l7E+sf_5*8*Dހdl,abo|L݊Ā`Jlb;f{T}g>-|S`w3<龵}ںƪVH^ܐ$K}Pߠ.|~pCVgub҂nSEQ¹wv+XN:kϲ"hfH71MMN~59Xβh)á p/M>_#*\]O. GܫacQ+ONhHHk*ߡ.b ̍46؄ma'%ڸ{!oRe^o8bay @SJz,;P+nDdw$Oo&$.,ckST)^`޽pKŒ7✑K 8y6H~D⇵ݥޑ"yҸl9s)1-6:TDQ'Ffrs}9c=vX:z秧BCBQwg} vǞ=>#II;oE__G׊,mk6Drd?U1iI7˫oo(؊zio#B~NZJ{֊!+Ec.*A2HC +_ !tf)_|9FDLtLzp;hOf<{a/7 *f?|K27z*_oҮ ˹C?0ZOG̸WL-WS!H j6.fM RI] 6"v|yȖO~ {I?E&"@Ff.h ˶>nPvvNORbPKt91!+@vAnuvola/128x128/apps/xfmail.pngUT gUA4Qux |{XE;5Tap=%$fCu |%zffsSQQ ` Һ_*%4-%voÖvo~G" ;h;;H܃7gYU,2Μj1;Pj汲 La$_+ɓJWI lהeH^v #/O)_QХe,<.샹X߾q Jahi.=dAiϣÅɝL71!3u>4_uN}hƩs+rm uU`}3񩂢;SYɓ+I)+7u^\G]j.` n7:ɤ_gtq!:a/î~V$Vnni20fXȇ} :ԵM9a;B#<(8E88۾R^"(7f`Ӱ 5 #n&"{.'J?"A u¹HUzk3 E.JBL"97 \kvL?jɸ(W_~J{)':|%5 54{>wouJ[uu(zϟVsX  ~mElK& Vz ߷o2aҴ 6 [k=9|}^ڀI 0118;5pGghVY)GbiԹF3ƢL nJae 9K 8?VɶY,!Y|*YÕƹ20E::Zʂ)5T}wrAn\OiS@^x~kϟ%2I9~;U@ xTo|22Fי=\ 42PqHIW6V2~qVv/2eҧ(RiiñcWSM,0RiOpa_]i<G0ϝ,}Q [`d۫>(NԗzJA"E s0> CR1spT=+ϣG=Svh(rF"/R;n`=r%\bU9x6x8}+ju"Q.} 3(@U}SrpvŽ=P>vFىFk0{Q`Nܮm6jczF;AJȼ$jOxܻV˗{wh™,R$-}JҮm,γLЎwgs"j;g&0iG;P3PJ `#h W|㊛ƞ&C \OW SPd-lM$5$(klZ nRCiwJnPZՀH'S`7ENq⾯`2&m# HCYo*yv ;vxl7RKI5 G \<"PFlR̘ZMcIjpHBkKmb+n\wj=^"&^`^c$.G#b=bePm ߱~tI%cER&e @4z.Cq`BW]s5(iH*"p^vKw.ؕи|X sӂ'w}73i& tx>TOED vng{BY5fUI}[IWNʃj1?Λ~ꚃOnL"g/ʱ𾴏w  (LLHާr$JXe vS4Aj[@}~NݷXaAA S+$CR_ES1L~;ϸSwEc[bc;/T512b9jT `%17??[ҷq.)h~%0*ޢŒE̎3_b#wIa[j vZIe( &TC-e|r׆Pwu ^fCUϭHM>[mM YxLVHƻȕ#r S +*pxY}Ogd3ev#.q$KMWSrYiim]!ե:1P{[un( 8哶BAS z1bp↯ϥ1QVhI  ([^fΥړBqEUoWz}sf1hfNZH[5+Ømrw7sX+_! PWxNHUOŹ3-&/볱oĂ0Q8ctۂU ( Aex=Ht 0S!U"LOݮwO}ZET$ѐ5X'QFԐhMt9.M2⇱Ǝ@T[{qY#cl7/f3ZLx\>TY{d=X4!)Me>lsBx{M s4+¥@ *q)+WCؗ3Y0u4OlmN@(zRص'#0#F#EMr܃;cOy+HݞB/%\g_+|aeI2q@s'cШ:S[FNHh芣 O8O}q^YegNbd)\Uw?S?ET1TgRM0|aϱ.*X(ӪDE漅Od+_#9Pms>P)u݂?mSPEWw=6z CYCYDʯLR5i0/ctY~q-+;30u2ޟhhQv?oee 7[(Ǔe7Ɛ͌cO>Aѹv&)Z^, ;vH2YaS4]b=%{[,\ 5lço0tu3+(LH@8O 0o*{*yж4e[#XjʶALxU)hxԋ# enyUL7N/OCvԄ1zɩޓѯlwU:32- j@. yO eT !u/4op6-ݜՁs(j(pK(H>ݩ^]Q,M*mן, *#m԰zڣ/e~'U$|u6(8>Hu %* -/}.i|h5PqϏRqEaHLfrHdlϢ8Wlۋaw_<_[Xhpf^}= D:J̱^^)io r& e_LaVfV*5v: {x%ovCz̻g[1W}P? +-oߗ)^ N n%7豽}QPC6P0? ׂV5G>Bncjp*Á"h }ĞEz_D 7|9@ojo F@Xe;({R+dMF}"Op"W|xvQ‰:g` bW3:;bN5@9/; 0LpkL,QZuPO 6WT%jƵQj Ak7 ;J}xTń) f=}֪`yLKmgU[Yޗ}h)CaQwr\σW))`N!=: \8݃RVι}:+ĕV*6cLBʾk:%}m:QV\0@E6 {NQ跳gMFY f!HAx8vi@Π<WQ՗ < WA0G^H&,XC7?R}^PxK~Q J )]7tG(ٿ\~r6el92 nv*TT{X2 E/\Q\M6,s:]gdg zW]Sq'пImA\E=]+~O&k]n>M[M' 'mLP$;3<:2b(R+|gͤ+ORgxP[-Pн2"p*9řԲdrwq~ƍ4 ^2#?LN UDCv]mYe;OT&tcOhqڦ˂[ppYwtrcB{ #2Yĉ5[5>r<ɸ-X9:B_&F5Kf;юүíW_6_""6Ic,7G0Z=C宓C웡%D媊o]C:% I@0Nx;ʆpj:D.ZgEiתjB۶X_Q nr(boVK[9_hpu>Vxyh%_of]"hmc0XHJ)VN%z~ƗK[S&\\~9~ExMP}&woʿqQ+aw8̜r F0JSZazm~~sBhNj(GXoJ,-7X*/"+=_z*R?xaO pZ} jLe8xp &;b4ؖg?<Yҹ¿xyaWe-](iHd9զ~WR|P8*^fUV~m޴j>PݖWg$ePBqkis57G<ۇ.1+4.SV*׮]Mac*;9_|EHe.}dy;tOM&h"Te>4mj! άQWř*u"  qOG+&V$_j.Am識`&#Me}1Cë !=ox4,MijW336D6TI@Bm_f# afX{ۗ{Wkp 8oV=a6cݹF5n  l3\#UޯW=8ݪ' ľ d"xM-dYyQ7Ot~ш%@3V̇ zhC+?*^XWY%9U6՜_5 h*=PM >kwpZf] .MV6 gFZ=$olN<&NݕSXVl?JۋKa! 㔨lN H6e@Wr!Wq J>"PsLJД,PB㍵uZ!#CXf~dqc\ ^L'Ww="#ɖ!,M8M9(mi x_ߐ)WK~bϻq/%Ҷ3#;xn>¶{G Ǯo&̭aGF" `S6+#bT \BjVWܤ]{k EK}NRB W(XzۋO(/* 9RuCyLziU?u7-{E[J:hsvFZS8x{ +;bQĉ/XJcց£zXxۇ@o!1b@b/?sr|Zmّ>lλs/wG. })w hfĂYR\@qu_F֜``Ev 9;4멁$7J.|p/'%||<#؛,ހ+6EB}pX#X(O\D<,Cc2J<A]^)Y|s3'ƽo=ʵFM.[;6PjLu =5loQ'*LUJn/d C;,AfHE2k Yc֬^?7(BKc8C?z٪zZX́WqD-)Q*!4%Peq40QWlQ2jXWZgΣ5΢aIhR(bB 4?HX$(sh}+.-*;@UM4ZC*ppձ"(j'cP:6u!_ۼ95Rﶁ$rRZmm;2>bn1F`M x9Ef8}ʲqa q)Шf1|;):wZ>0}pm#cGva]JG21W{}ZlP0PY"hZFTتko t%U!A HWƸ}vKs%Ɨbr2>7G5hCݮ{ڊGEhVpdF-wu Odd\x2G\IC*[to뫈:MvO!`Л7.qi|IsCq,#I$C &dv r jش/g* W'Yhn]_D*NJ~Y$@X=k脢Ln'jlQ+?<µ4$B8vqܞ+9 )j\s Fӥh/ _ ^s~9/ (K!p$n ]zBa«MV9w{3ۅNW*Yʣ&82Q-]K-)Q3ۚ`VZ?}*gi26aED2ẋ‘*~ׇ] \@O(urWR1SͰLxcl~9,UD HlIQzjOAm9mmusJK~umy Hf?OGUc zU&;)?7ھ]";nC|@C˴ ȇ' Aw Q,7t搚Å=b2 MBCLcFkҞ}mk>۰+mk#4ɼH jƶO:(=(ߝ?M}X,sSg)o60PVA3XPaQPݰ&6XCf;qG a1ۨpزAkt(cߛ6%0)0j!M&MP5&]'Lb32DvD+G?n;etI`l6 l9Xcَ3.E}*Vi;2Dr Fvoye=:\/OЖ7W'I|Գ&F`[O{,LV#FnI@at6xҟxWQ~E?oC65rp^˱W[> m#Ӣǚy,^zc ^2c?uY.k-=[G~_-| zjqq\ci̧VXJ S\\l795)~,@Ԫv8&{jWޗsA@{ƹ8 }+<a߳Xܬ6ցY'n!(cke- ʟ[\}Z>*i_-Mk$TA U=5S>VdtzEo7WP@oV s#6wnR{ضn~m WB\1X*0GZTuɇp%Bu oD_b/b&[l367Y3D(:h8GmG'>La#7|, ]?V @G>_jf ߃ |=%5C]@kQ=gݭ"DX*т+7}l\LMT@k< XUQ}:N_jΐ%Ǟ&'0g9m֛j͘w_/f\Ftv PbMxߘGy_"΍7n:I}H@"<-g=mo7cg[V#kK~p7c;ʘ!1G.7JYd+Ov]xcB"vlnmT^Ia@[joPTb@lGφcn7ZvJʈ'ZCsirX[}$eܕ o:xUg+Z˭XT}t_ԷzAw=\8kNb@)le(fg3v_ar{.u%:f` 2B 6tO PdRf7?Vxf;I[05$WgDa3c@O Pؿbm{&p]P}s<ޚ@#Za% S÷ {No)àS3FTxe?*߅8CelAtᶀ7!IGV05e ^۞*ͻmLUC~qD)NtxD=jd>K/vN,U]Դ*}\j`Mƫ=,΍uw`:΄(Uᬤ?Ӵŋe`ڬVK ^.-[y~sqgHRvƵ<(nY_}Կkgap]d![4#9|y{){82X4bhniixr ؏Kjq%3 I-H e9m&ބ`~<' .ZF71##zqkß?Ἔ?9fp,ʠB!G_xq BŏNJ4?K.wK-mr +._|^:ݣ]j q/e aioB|]&7"ŊBɫ&ZY~߸H؜?ּ-imk7gNs@w/Ud3?doMR:%2 $)`N؄;Y68k(vN(@eϭu0'YUwô]J>&csx`D*m*y zѫ-O=/u[¶Չ7 XZR+&4\Mo 7'K],kb.2o ugmYXght9CQBJN5G}8d:qDŽSoEp>22+lQE؀]0?mgr|_C"/ zA cx/\k~Tl=%{׌ NIӜUX sZu\ҥk~cЏ ۑm(={6sG E6|"C#_ځ<ׁk22Q %n%Bb繥䟑q c:!tq34ϦAS| wKc3p39K8qC/(pϑʦY['O л~4 KEKoR\ zM*ۋӛx"ܷrpD* cĩ[d=l#2 Sauuf˳cd_bRPؾM&=xZ.lxY"V&$sH!zk;@<;`\ fDO;v+x{ Zh/%L7W1 ިW }lzbGuO6ҋ\=|ԏ=ޯrfQS?_I߮"/Ӽ֚'?p̼L@J,M}iVO1@=>B@\?@SշPqmƇ;yBVB8[PZ|P /Qc2noDYxe5QRwqÅݳ4벎V^Re?'IS-WN)j~Rnh-r4K,~6tC704㐌OO)< hd*'1D^TO_=o?Sj[,}ب][2kYr_ ,=)Ý^!s&۽)MPp)5;V MEmCYnk%ԅ'S[J2=֍R݆<<8!T}OA]D>rj{$PQ'K v^ȠfCy[A^|O1`g$+ѣ/US01Ej;#uFC"qQ}Q|ovʷ=MbiGD%,b_׭?߅? v.A݃. XfB:IM]B?u74w?|^sK^ v}ZP_0q .4$|3.6TD$ ,dh9s e{r@-(bwNjA\LO#a75iF[^B?\epԀw%34\ Lm45r?=dd%n T ݵ!\{M !_3Ub7m 8}%O} -GϹz Wf/x.~J|NRrƬӫD¿z<5w*v%<SDZrlݬhz?}&D8f&o+0!1tў{54t\cLkKeE׎'NࢢvzW"~a5 _/+#.N\6okfF l<=11, 称:|D+GKop;Yȋ# D,U'i;njo,ݑ[lPAnk=I?2+M ʤyvjRQ*;f:f~1zlh zs)nob,ǞJt}f\:5Ӄzd~tɦ,g/sϛ田vq.tW-?u]}#7quFaN@>! g3Y߸4ʲs-"`ewd j86 dGiR8/\J[LJ~h2wv`t2PY~<Ԓۆck8+{M-*usR2#WY!c9ek17WG_}b0=nh O˟Y_}&'/5/NM/i@شx^2OiM:%6EZEN"yx\⋉m,]'&+h_©0o\)ϽCS .ߕ"ꖫ+]v|;Ai!WhxMGNMr.GO}A%`"n$҅M"c3QmKaAjd@%2D_@UƯ۸h!Jk @u0q.[<~pf)FXN+kj1N0K8*C=@EaYY6b/|pT *t-` MC{F_En.^OwjLrieZZ F$R'#e2Dy@^RM ϔ\]SNFHԦkGU"hjhv8RDH r(Ntx5J~ ׯ '""B%7x;UwujΌQu:㲭Oߣ @E@yؿ)ڿvjPK3sH1i f23nuvola/128x128/apps/xmag.pngUT BfA4Qux {{<lcb9!e9JPfc9$>bU:Ӂ9UB)1!*}~zmk<}`nTה@qE#eB "[2bl:s,z(xy큠=~{B~ lRֺ36} H4  *P+mAm)#6A E؂Q~ J6茀ez@hXxgVpd _k3u.\>4D~S<=:37^'V/䥧sC/}z}IĜ_Ւ9L$ RʩU=b~E]31`꟥?\*ٔeŌ51܂vykϓѝb)K#FOZȊ gբ7uw|zu7s\i,Yhnalz@3n9Zė!|gl%=_z&:2\Iʇsp~:YAضF$4Zn8#Y+M;j;?}n^ݣbPg)>|~ɫWQ2zz&zo/ Hϝ0R%!;}ƭVᖙp/hpbm4{}>\K #f;]EK[P"M)GJ:,FMYIjk+YL|BX#uI Z ëa=s 8e]ZؔQL|!xjHAfG)5kpjڵVhIx?sIVkƺ'V +}?A)dSJ~A*V7 $逰6tQBmEjfZM7uu^HG03fܖA%+7L{a+/ҤkҠqw'|A֡\S -]ΉQ~(~_C8 %Ig5x^aRŭB{a% ϝwY-hNAo ;IazVTmDžZа9w#̰M|\ſNT9oߔrZG hCΏQ VC&*YvV-33SXWܼyȉ}~kstڦU;b|YkƩԳ3eO!畡ؚ 9Y(Ϸ!i^Vz|(^ZS95s)OBշ_]dJl˰T;lfYN#0u"x-VbQr̄]9nWs"Tr3b.r3EzyO#"{~S:wvC;#=v8i{{R~`LX࣫WFp8q׊ԝ5=Z}6VqRu=2JioL>ΎP#9S_BfAL`$T:n+I H2`-#H7 ?>="[nn K\qd}{VnDBضoc/N:]hZ’طG'hMn܌Cbq>⃛>\?Mi&$YOO9%r/^gcuAeCoklHKU"1gIŦ3tl\G􌏪P:}:W <ܭm߇jܛ+͸5. œ\|T^w˴=TڔG1߳or擒$AaǿT+YY{rLD튩 wu0c}ug胓Lm-&ȩL+EY?mme]hcPȖ^ E|18^-w"rojE!Iw}XIc%6ZC9CD;Gx>\$pPZC%$ҠjIq ÍQߓ?*Pl[.`[<ֻ>O^I`0@*!uuRR標q-9F, Zn_m&Jqk" p]d|GoxXwlYf6MYN̄z7_.+ `V62EKh ^%RcgfWF@zW1lj(3XL`ӓ M%>xu~."|$S ?gVzZn@2X>$[Ն[EEcێpzu!I?4GCq V;qka`lyS]%/\ QX"#&maw1n3)/31C# bFXjUqL Z.ڇN_!Oo[YЁRn[/9Bfg03M}*X(B {p״FҎqiN8F8?Pn@e-:ҫSqxψa;I"kSOe,8Qpr4V K|6,/,G˥5}.(Ό C'p` k94YYUY<տy!f1 Ѣ&+[dc^F-.N7n)%C/_ǾXYVl"_zY_r΋̴}ECl$ 6 Fsg8zOO_ʊ'^[R"R:S܇VhjP_xQ6!%뺣=CW,& :>v{ \؋bR-ͰY,^5SeFo^b£aV;>PQ$*f&熗( >"FA4=;A{ !_砙|xH7CtmTBrPaE=dX!>dW㋁S l]?H 12f{EѹRQ]P?*>X˂%fg]PKO!Oa 3twƪ"XfB؈ 3C?P2;@TH<h-󭻌Bc!5=kmlN +/eC gKB,;>U{7JP䪀UPV\ejH#%Ol4)ef^s{U9b2@e%f@ڶ()޼dFvuU~3=KRE{x|1 ci{/N*'Σ6R`MG-홝ٚ9/|2, THvZaM>[Y^ /?d^O-hQ];wmb 2;q"T=MD]:%He䩀>jDGb U1B-BnpDH* 3aUCA##+E_%N#V̓ IZ.f$my@g86Z- =ޚU.o ӧ.B?q^62 V2N@,=u @b0kvh+#mֵ~ }}lylv:9W,[l'e wuRQpx,Kۆ/yI _ w a;) KҥY鄽}8-Mj;F>`_gUşğrP^2hl:nvaߜ bCZ^77YYpq-_Y$-?$Rf?_3kiO !|Šw@үQ{%dw_nꏰV u ۚZ$'rrɉ/_Azf` c5ͪ/bU~/n&-I*`%A>PT' s])pҷB}M+uX̊D4ݒvM4 "vvT/'w33/sblJI8(%6'uC8h)nMvw01j%p H4#/`gɍƦ)_9&;0q\#C]VR1Z(+FdGDjFK, ؚ ~C"rVK/z;&z'&p>ٷVN<}|V.*!p'HI _2ƙ 1)6{З/J>@)?S:M["1JHݣ^0 \g} ^N#0D {|E#]|:A:خSe\H5X{}Nu#6o u$znT'NsZC$5IMZ94.ps0mmz1K{$q1Wԛ᳋6bHDy~:}[^H4 !YY5nx0L2;7!)DMt,O85"@N\~,1GLp\hO+yZ3z`גrye`z 3V8| z 7mK O4RjER B]T?"eW4n?2`0Y|Z7'eJ} |h:q'ujH6vQ{Fz122~ A]0'jԳ^J2^bصv ;`(Xȗ޺d|.E&V9k%#uzEIggUs`7`{[*L.9st]A%?߅du^#:7@?gFu!1lS kϷsEu+Q?edч[ۭJ?r9şVj}*Х$Q,Ajǂ4@2gt}rŧ2V6ۺ$H 8g&5 Z$s zd}%cݿL,[A^I$SUCOd<ġ:s22v @NOpk? ^dERsB*gS[|h٩S8l6]uz&>݂mgFmSn[YqB`0LuGOyv%sUr^P]vu$/epWRA}8PMΑl)Ts&hpXA=9x䘶v-x\*9kB*Ӎ Igʏ s5|Pq$.4jrx >b a QuU,,ʛ@{ -<~^`J$][E:tbNgrTD?^%!Z:Y8nƍp8 Ժ~c!, U|elde%Voua=a+ bmLiƋVS9W˓'-LjUz;W A|(W^t(_Oֈ_4' ygHJ6TK l?}j 72J1z)C|U _ l H&p#WX{GRE"mW3%ceVŤ.q$EOLb)_ďuk݆!3ȳXI21z'fag )]ϒ95@Qy EUoj̬q SWd|q k6 %?JV@UQCH%16 e"ߏ,tk6?Gk{>juX:2qT$Lax[1Yl}5*-Y}59Ș )^TȐ=Tb-- {j,̹v>C.aٲԺ \ݬGgΰ]W2~h :*s~ШG9?f # LDP*BqrkM;r֊e-GIueD`P\(L8|6155g.*ыhVQ}Gd;Oj=s X1,# :.tې6YBuXG{ EPƕzPOnL8ӯ<1.`RAƚf13FZ,;ۏ xұPpf6'+4dcfZ7;MQ8RJA= /!0rBiER"gz&"5./pY :CpUYRtC84х{=;*Tjfؐ6SZܹ(@6ԬasU9VZ9eJaB:/AK{Blշ%YʜXK<^r@U‚DWۋx6un3nA_#N:D!Xa=)7ª6rՓױrIy4kC_?1㒢R8^wNs@ tCXZiZLˆA:NwKJj`2hi/O >1~I5NhsyT u6oQnN[;Au)l|\cN ;`g _I+˴C: \D;rI uCx8n-ث,%M*-6&fՊ{?D"˯ j.Yc ٬8rDl4ƣݢN4,~k ^(;&ڮiYoK|FWQL0-|wq4[ X/a&Y%~Pyt.bez Th| Ӌ̀Sa{<ĸ?Y<5t 3)oa1FmOY Kg? Krq˽ASQ3ǝ* Hs& YHpEnY\efh+aQ{7tYK}ov~  _, &@9m;VQAZ3YFyc{"@e_wU*M'hIYbD'$e[~T<}7&+oMqt㇨Ӝ1 +K{' W&S,yqUA\/^F=ظFRp~܌աS|xۢ+<0T3(٘>i$Rg,kC 7} +/V VJ\D8^>+_wׅ$db{ kֹICN2\UJz?2. $#:l\z7dhhxaHCneʸnqF+ b##§w^K]40әWXTs-\Ju^+ @Ebת3D 'bP'3]Z:Ay裴pxJAblW.y$0x~4:8lj!fv͠?2ez)7Ậ-qg6 dUI1ڱ9rszl"!@R?x@覯Ոzՙ~]PGM޸ao+؞ǐu!k氿}7k%\w棻}6; ވ3)/Ums}`^~{FeR>S/+ϴR+7Fϭ)@А8ھd;(`&cUKJqoGlm_@FàBrbŌWmxl%QjSR㬮 V7bycܲX,Z)9d =w>ǐ@6~(tSiL; / !֝M$f!a;Țj7/ƍDrmSv~޷Vi h.KtSj ]K;7b(gO!hbvüa,]ٞZoO"ؐaBeP}R~.8 eZ !<9ϸf峻-DV329AJT W)N͔?ڲt-RO`Ŋ*,Ǡ )# ۛO)!GG` bl@Դ|yq +0mmd[+:#`|?J7ʇ,+JxTe>°^=;,ѧ{w`؊P gQOTvLa,YPgfLz+g/ p{_OU*U8JɊ8f~fbXQh)Kcf0Zj9gـfJ_(y<ȎH%)vX%ߋwJf73̉f},[QT 26+W#T!F 2w菺w&,(BW3H^ ;\ OwNC٫fIjTN3VP/[jV[tեlV`+vu# EC;Ԅ$0[P;"$H1MulK(<7m];HeH1BMq/1p".g/٨zF[NԯgQ/HYk4G>᫗lď+SRŸl&K٪M [k-GׂO"\rd*$P^JYHx*CYI"r:N~3W<:ߓMg-(Kvˬ0NItkļQ9Q_ƃK,nuvola/128x128/devices/UT ȤVMFSux PK|A1;0|1(nuvola/128x128/devices/3floppy_mount.pngUT ]]APQux u{{8mx9nƐIe#PG\!J%ی!d(e>}(eJbaPTJRFd2{~^纶ڮ={~߯~n:k}7Ϝ~xO8P']q3!/<=)Xb=15 1{Ǭ'5ޡ"D$N9njFpӵ@2 1 \N 7#|@- ]`ɀ&3{iu0w~MxpAS>=M7G7sGKg@p)7>og]MiQ}S1Y".ںbTFWi[> _"b ;Hh%^zcޣ+*L,mbZmbUy4dޢ(zo$dN7"cSԴf720i.NDugծ[s.& lDPh5vLfJ [un"9*4f[`l (կ^wmPm.Z '㩖83p7 [eƩ:2kD"M~Fʚ4j%.v?}a2)2d2oFA;[#0@YxX$1f kUv">]E Cm.sK&p#B|?)Mc1.Um v*T=@ZR9+/!5­%Sk8rp/ }p S% ] fSE,FL_ԉau"2%}-Vx6^)*15qz5x<8%jf=5yUWazeÑ!D[aIS  Mfq'b>D.?fW2VH_MkOj\ƬxzRlpǜFA?28St+1=C/H0edlbȯDXعxBx.+#܁(=1#˦Iͫ I(GSěU+ {Dbf_;Tmr*iGbwkU}⭘/b/dmD/G9E35`$eKgEÍ5~58 an!Nc##|Eїӊ}(!ab[xeA"VDݤo-4 /y>̊@+Շ!6xhw݅EemVTw61p M`uj3AFXo<%"e^]9+_8|޺w(:A,0\c8H0.wK*[1I=L̀MdCogI(L'\tjK@K{> "Oj~՛)|c'GX $5 'Z{|6^/ڭZUv   A8!TKX艖<7l /5u$;ȍc1cY,蜔( 0ZosbvvBJiݔ}r5@R.e:so_#^($ul;"_]?ʠ]Cu5ewj!m'!;leX83RKSʯ9 X,s^è3~k_.JQ#XRRw 4أ~Pߵ$/O6z=X} |n%0G.;r<%hVU, b >./;xA@䪅;{P97A)x.DN|^NdTd9~{mۄ7BZ_zq׳Ӛ:`('N{U+xKdlPu.YH< >u -)q4[X%e$=uS&uQǡ޻l7:y"$Ϟ!\c)P,=ŌI':i8J1>(y§޽W>>% ĦM h<șuua-qKAQ\)Es|J7*.jM|a$0vhC23c1¹i BqK?ʾoX;vFhl2)O\2u=E~kGw_`yƈ7YG: [;{Ƽޯ"kgj! ieCK&nI=vLbY,Rrsw,נHL94&Hzş+azo>~@S%` ~yufVt}^:IHՊ# 6g[[ԝVo'5QG뛎L{M\*nF%2o:SGLU!cK, H/@Š.WwSI\oteB|C"ꮔ=36N;:y_lDЗ`m[aVBw$Ҝ=J"W1j]l3SyugV&[q‚P4oۦ/'2S!.eeIח[UM][J 뺹E ?ޠ(;WD"><<,kN$$=fZsRLV4%{+Ao[O@ܯ=:6/nagw5=KMl}ᱫlbu~;jKkA٪‹T𛟻g: r˵#rO>jj-8W)ɳ *DiAgy`n=72Yg r::vq:=Aq.&J^!EI9F3h^ `씌0hϷ$MэiLĈVmX-#T0Ҍ֎X}e:1kTȌ*ąY{oE^@ t/m.hƧhh nXj{6/DJӜ{LPGSBDㆾ~aMV%$$cEi>Ju {-=h?0*/>Srׅw95ͬƈ";7'[Zռ4Fz=|7 ñqw9鞡"̢&$$f)jRFr1pH=tu=oZC#"O4ؑCk_ǽ=39,yBk^АѠB hJm&gmM ƴA9:e{/vaR(Li7|ij|q7GfW6GDÓ< L-Pp2˳bKdsCRHl=1_[Seyj򻪅$HC8|)i2Y||;%zPbŠumB/4nūnZE4+j}Ut,.j! Hc-`g9~Zy_S|g\bSWˑ2쩂o9x*S~VߥNI_uJ6uWC_{+R`̊)hx+nҝWNi3gvum`U>u_m/LLYm[sf8h~wG1R}&l3M7`ή҉SgN~XQW$q9")BFl WlJ?*m¾Ela/rz`CK#]!_Hm>O\sۦlGN&6S9Eua6b $uIRa^d7 ~驼BnV6%r E*`,4D ٓ4E1+o/C-<„RaHIBuK7/y5rI)ҳB{5C" lF3Z+MZ'u+֡qWgџ7,=-)6֘ |=2(%:\>qid|¹rV+w@pכDY*2FnjRK&bxXsG̀ˉ_~㊔84KqgC(h( \f] y|[>@-=̬x,vw@Q!/$ ?n{ޢK r3;s `& "D@r<܊&D721g w;] qtr!b>w4N6w~PDorz]߀] k|F \̬P*8zR*;2N4Z||h(Xi.|VX_0/0%g??yR` JnևPh[@w2H!Bζ61=Yk놢0"k1 2^!.GPa4D0:J0a߈<[34# sqeyv\-‡EIa JnV19OԴ\C㜃:l¹dITǏPO҇%m.4}v g.ȇ=I!mχJĨ@D)LI2*爽13ٗ…(&G* c0kV\T Z[ࢍ9Ôs KfF r+m4rJ q|z'@m\D?8TGUδ>@Y")Ɉ<n8/ғv8A(Ä XqLbOLlz09ߞ U]t)gd L܃^6w懗m;ة%(f*`"'mD@]<.uoDj%6iPW5*ɫR5坖&NONzEc#gY v!bP`%6ٖe,fC,rSփ ΜQ;gp *C\ϗsl9+l`" 2§',ڟh)WvEM 1{:ޙJ0[7{x?Vr6R(5--5'7t K#R1[x~$b,-Jw +xxv]9JqNc Q@g>@ M$.:#pb})̆14. vݢjn <*Q-Zm!b+ar,p% 4kq5}VF1ލVm|uҘ>scK&shuBޠ\3MLCz+xZ =*޼kK=xNyd"[kwxZG20=p{e,V8iEC XÙR9Z:5k#ۙ*y6">A1G Aj>\hXqFF"8Mb]!4ҢBOE~DXYlRRo}J}gIMso8G!n$L.h`,t?Q 0$Pm7c0y>֌[pS. yƋoR{ي8fTu#NI73?"b]!(p3,K&0jWfꃿ<&Qq>QӋɞ=V`+Ro7pN_9`HBMĊ HcŵrRD8^3_[\;&_#&W v~C yTi,QYHXϒZᒝnVU $;' IOT΃Ğ4|1o$LO}ۦoE : H l\)+ќ >@ȥ&d#yL7jlq_۪Ho-({lEyq|AK[Z'Z5+>f(:K)D-o 2|3AfZ˯Gf2)o<.t w@2 gT ە6͚l`$n$&.ZvpkJ n|Y17BvVy*: BR G3 m\^zCF-m?Baoz%,2<3d⎯rz| ^ٟ!$wtJ$V[-8Y[sB)m.i"n{i)q0bF9Oy.qUixaקؼϙ!;Z s :6+dU[I~|wBXjVA9ƘxT;h*tz2!8W:_f6 ۉ7dS16s!p#Fr;!u. 1 ysTS  uVOq_i،78`[4 lmp5di~NN먩UVGNip &W]]nԜ+m0oW)hm&&mB"[egȣ+Ewg DKvR~s{#wS7pz `Xb \TqVtfURdt_dur",ڦ[;SDN;kO.eD`w08gmx9,Hxb1b~U󖯣(!3xZP G98Z2 u/\ >Xu}$ikT։"=)5Rkϥ8=>BR :dCYf4 f!#"h5@+`Xg뵝n`#s }ɼat0<צw-둛Zx50$)6Vh"K!Z0y {Pĵ[:9~${mpK`!7;+ /zYkȭcZ8K^q5=/|(;9]Ui~pM?\2G X#iC\Y})ٸb䂩(Fr V`hpW![j?GMlַ_%l7 b3bk}Mc3UN/3CG}Sy:+ki~z0~`Lɳ'/>!V) k pG0eZ8gX,VMғ(^!Q tQ_ ,y,:\O=z$s%bU׀^"KOb[4o^-8;Q[! o>H88궬LD%\pؙg'#IMuiފouÿ>py)GL]UU]@/):nEHz֜-wL:xR(/J;phl挾 rR'l[t(v̜f({ɯQ,?`i͕؄D8\At ]ε3cИ>6`̃ xf<gd/'Z[qf?O_Ds6.G?܅/ 3(je !:Q3XLu uPѧT;aRt5 F-^؂4Թ[U\/Jqx>A@kx:׳-~Z W2 :.&j>RWv%!OEHuU_LD?I:4 u b=LffKM] z}9>ڑ= ;lڷp9*cnCef49A̘*sJD6¤#DQE+hGbԐmnF0-P'v`Z}nw;#;􍑘 SaɆ,A&Ϋj\bb J\e_toŦ.kA1 |6 %": 3x$h1a</\ZňUVJZX'JrjeO-]ٓU[7PlHsf1ãS;6a1ZQȦζln*q+ZͺԊqN%#l4nq[;)•#={7=HC~$(O3l[>✸~N3u)u3,>asS:}>S`yXCDS#RY3#bڣ9䡃E&bo|c&eαL6s.E\S;Ԧ*G~t׸0qw?ޯ6=DW)-I H٠8G?&~w[w[X\Vy4"14[$ɢ5z=&d,u)bˣ,#:.|%^R4d?n҇ȖC7z71_mQ7se폱CR~eqi?Zb0aqvCY{L_S=Ns_cj /,6[Q#GhRjPxaT*Ƶ1+)+q\FIvi֓Kif˸Cq_!%m8;~0|Bº¾kC. 8Xz4Qac&.O+wל5 *i\w~?SjW,r(9;$~M<,!/2jiQ_`a[Zn_{3>?PK{A1W }c*nuvola/128x128/devices/3floppy_unmount.pngUT .\]APQux yyX j-&hVfjffj=FffdfmqTL*K*+22%t~~s]00לs>s|3'?pz~|n,ౚG&s'\V,*Ocurb_RD\LPLD1K؏&R {-&e "l90xGsG8t9 |S lED}JS紶 m*'!w~&4kE4ni AB*ê- ͥHnx-ߙ)KAG,a#ym;rLܣ-i6"};`+lK@;1d+k{D!HxΡ2@ItQb*18dsr.y 2qRy2e:coaDnKlY G}\!gYĜs).sb^7 K-k7(CI^!9:jԘ!z|ߨuGdqu]2yog6j60CH,zmZU*zb.c2uX̔zOGYQdd[T?-B)L#fÑ/;*& MfʌG^+'H  M"1s]SZs?GEHyOqӒ,[l,N`17mQL.rldbG~qߔ<?C picfVӾWz}v̢Qesqh]AtشEVxd%LۜcVԛcF*o-;*]cwy>pmU9߾zn5wV #(( AK0>FVݽz)$n5m3 4|R) ε-J>v Цђb8YD.sKK0LggTIN?`<t++rŖTN62 $f^ (N;ǔYǞY܁^iu&骭lL488:&1ҹǑ>Xnff}OHߖRRQ3 %w7pUof6e\f-= u֮"l'犀jhwgYwar5 f:NvJM=^o*o7c + b~KK#U= zM΅dmѡ,ƙKm&}w:l$pӡ|1WE]0`v rnc؏|Fg9Ib'Svµ@)BtA_Ғ :xg0<μ ReI]{`oڏBn:# E rl!,۾ B#r:3a}EC56(Ҷ+J= `*wMπSs^D.^Q ^ ag,bCb܋44y=GUU.)oe.6OwQvveUZU{:1|krpb??m5b2qNHԮcM=wR5.~q':mE/)R(Fdf'tE;CFOUy[e r_ mʓZ]6~߭>#9۟wV]U5]^Uo5Q5 Τn0{tAS,E]3\[Pr,k8bY' JIFOF=+O˵j0_v߹fZU$e[yRB?fpcLIUQ8W*+ c8_*7u?;u*E";Tsy(jxݗ1/sudUT'Wڝ }TvyW{$ˊhL\xvExA.AI` C\B^D\2ܡ,A )zX F Z I/O-j1 fܧ n>I Ad}}E1uVFqY?S3ıC+0Qת_ڜVr fmm2_)+1^w_g9Z-5)8;)tp87!e5 r20 :\F3,9ÂΌ}?-HWW#DHcm30'nlFg\X7SCn|?`N;Eı5X|I,˸;N piV`D|nwg_!"w%@tt jfv^4Pd,z͍f!>O|x/zep3iJȵ]!LKS&5? -0aSglaߏ܏BҒ}+O^;K6>~>D1L{#vخsh5O0([zPO[!5Q͵_~}UV߅`zr-lZk>HRF琢?R y#-%iLnxB/<3.X wa6yܙ-+șQ9-}C3FOĚPA*"'f?/eI}xa/HT3??#%2|bn2w([6cQ4hgw[왲i1=WL5d7^AEZāS;㒐]- W皀q>k S}g )}S9 pnLڝrx^rj_bD!;YC/[)8I:Pga߫Pq4f˞ׁ F*.OQ]4~}A//][+53J͋T].|_`F,(FcҰ/ $[{rR~ $=ӑ~߻~ 9&+3b,F )M 5uk1f𭑢W &y֙`X6?D5xj'#!pRjb{g)YuSY$vF0"*=Zk_Zc׊~2 E,u.H8k4 ꃑyYwSx[[y[ -E(2'LUNWXuOhrܹAD\Ѿ& ͨ׵8ҴA-ϟ{̣ig!JbgR,݋D? vɿ"KHM m?r߱rP8"d )تq2Jf[uǤ[޳WgeTt]/2YR<(Ha9 S1i?Zj+)Ԩ'}a[ssגG_t)G@Z"rưsg:-5YJSѽRB pTv,++ށ ţ=$nEۍ<i3 7TEMk;wSMT^oG8$cMHk`cS |*+$|5O4DD+7C82 v$?s|oj@-6nAkU(uu0\d+.O" ƨ|IjOChf]wrϼCϬ|馋pq̞BM [/ 䖕dX=V9TP@SMw3Tw$q)SWi1|"KqيGwXd}xs:߰LQ9 K0*Y@dsxO|B4y%K<;ej$="u3LG^dc;}_/,QeJ,^y wX^;Af M/u_0u;*p1 !J+1 ra'F-J{ Җ?mwz†>EgcՠMx#&[P&!}e' f.Sаs>ns5tUX[Pkl`9Mbm)VA7 H$z_ {t?i{rIeD'#NXB).L?f %x}IB{"O/ac tu9H!4KquX#CtN6؂싶1GGio ggV 㲫jKs=FR;gұ@'g$4gGz5LOᮁ|MG5ӉT!o\?5aZ3K·:i]D9_v |l ;B.鬞h[:R\`=(POﺒp7C_(2 `#jlֱ !/2>|]H6BʾltRrv J jpጿ# `)+OĭyՊb"Ƨ~; &^ *2hK1OBY0@*,V+4a5޴dr\ێ9ħdiJ% 4Phf$$!L}B5R;Vc(3] ¨${{^Gkìa]uޗț.WUYƅ=ZrwfM橛C4 %;v]q.D[#Rk'qU(|-Dx\rk+jo[0d^WZ1Lvo |2#6mbPG?_ʛ1}$"қmi6`VY86ww2'f;E%?`S#٥4p6zrLNqi6eXAڴ'Qp}8yC٫_ccBp8n:9))5rj .uvt:{y6It LAF`` {,qχ7c9bG c !qO+\U_"B 95ofV2w\=[V2K7TRj$=c+v߾ibmɈ q+{+?~wCe &D[=q bBnV׳x)y'KvF][)Qd0|J2eJ鰸GX]kY)=_&dGsuPN}|Dl~؉d49}jDσOj9dҊoDL|y?M~12BBt΃MGB#Cf Hmbc@e;s6**qV.KAUOShٹ2ec:)BenʏnTǵsa04^U~Q 0GKҗ/$DYt bzIX3Xcdd6%Jۇ6:1PnɳvJ`H<~=9 A0,H Q&לtf&.F`ʻh gƯ)U~Fv5'DLVbNZ|(*|g~clckN|-ݣ7^ X1%-etwQ4KY҇(>0iY9&V-0 &wfsGsz+֜o;A&A?M7;Bwg PK|A1X9Yo+h,(nuvola/128x128/devices/5floppy_mount.pngUT ]]APQux eZyT~TAMp6-!4̼Vf6iH@{jIieڠ e bJTc-xks~} P3T@cS6哱E|b3OBۂ*_}Ïo?wDdr,@9t82>v[ldcOc=na%4MԒBA`Z<?<:Ad؊ \@EI\J͂0-1EoUŻeUT g;zltez9ak;C=;`4# E?V& G-YY]uA#0׼uig׼BCMC)L gW<8:TٖGл*KD"j#+DM3k6}/HrƱ{R%llgI/X^xBVU&@D!W'wim+ N~_5k &Ɔ9¬`27ݏITԸ.x`@%72'-\;^wjR駀oo^Esُ1qUPW%ιn75.#.wWLT1a 8O!T 4~c{Re{Ɗ3(cRՀbccۆ?m4?a8xب.NN8{J{T r= 52Ss}]uynnz]ueԘ"-h4fI%gKtY05Ӑ>Jk*ZL .7>Rzf+nj@qc2z^ɽ2^ޒ"@Kͪ|x95o.Edy|2NZ8 '}% eqj.MuY1qY!x 6G9Qk/Lf.:qCo_ϏD%,ra(UEdFV \!!DT-C͕s$(0 U ttYTsuSDWs2|IF=zw Ib!σ<{iQlwC9rvYCy+6Fu&_hDxkajL3CCK B}SSc;K:bӤ3I ybNE2Zod݇V'p|@P~u7DZ:5Le7@L*żo;O6A;ހV=ys]]6S6I-%٣9Etd7yp)K&yCQҊ$[K X Z2J2 h!gC\_Sjh?;u,E5cw1~/UgLiYYtI6WhqY#=Kʊl5ֵpiR{yO6&N(sT iN9':L[^3ğx0Ht*-888/ms>8ʺc5|R[Kmnrp|щu.rt9vÇ-9Cr rKD;^Ou]τ.$ff b)~Ӛ2Y_>BO97,>őJ***@^+ EMgr'h8JZeRf+/ԂRTD튀vuc<|}{3?!&z>ԗ`*--tƽmK&Jo!2  U--4D{!5FIS?R WWxaG?뜳R^ 0gL6  %e\T.Bo{|F%kN~[dӑu$q|Y5h!#0Ccfс %@(;Bz=e)yBx{G6wmJ:M;k8 <t< ON?PWW4t~n=GN=kUy㊮ĹJ\+ dab&"d,[ZZ+ E:F3F;I4;p%99NTO” ͣf9̿/L=?:z.˞Dqy>h<#a|emA.x+R`A5o^:\'s 4ײ`d^5'_qFwŊ_%'Ce^WRvgMxh%^o}kXfOb{WW#dO@ۼZ'|ey*ş^ q£f_q$1s/-rɘym⸻E>]b^EђkMz hf(L&&i"H[{T[wJ1e6 [S X` '2 /np9׿D[F2 c8P@=GCS_REou

      2[kGXGe2AF[i19a".˨U7"'B*S9G4r<,\#J!8A_ ;-IL,E~CD|uWƴHwa btJbbӖy?QҒtJbT8` S?"V*|{GpoLFر3,sA,@ӑg"[h3% ` לFXl52mYɋZ)ؒTV g Te(DRO>@ N )?jS;Awo>J[T*}.ngҷ3}0M}}NzDS3K;qzPW9|ZmC@Aəq<և7S /gبܞO@r.#0,Z)U)oswĞi^>*l+n(UsL2Ā,v\nK75O `?!78'({̯.+\гsGRH"ުQyN N>PS~OęO%u7Z)q. kvdQqELԷ֍ɨ%q1^l{:_wۛو^2?*;La3A!GsPc*_'9f: ZOݔ"YVA3r.{fj'nP7nc:8 ssʄc^nN!$7Pd-ښ@)B(JY14 y9<$dW=wpA+@ClT-=PS8ELN.4_ZU:}y0OSpl;-ɚvmys FnGgO0maQ KɱϻWpFA8 ;vl٢ftT*ٷo[h i&(BԝG;0^5gߞysc( mhJ2D9vl.&4_|W"f Jpw 腧5\@o%dxM/1Ob"+s(|n?m:>e_'d Җ9l5bd͞* m,UŨiW`VT]QTuw4,cfp8Es.Jd)wQ̫~>G!J/hBW^ v+s%(W_gf{H]ΑUGPׁW)q HDٽ\j cS355y 3!f, æD:$F ~x;.5 09}0+[nn.QF.j*woU}H\{[t»#Im-__#rȻ9 :|U ldnbd'{j=VsF_$hiمV.6 BboU'+Uh@,#mg86y@LJ|z%z(ߗou.EB`.f>gˤ Aڨ4Ʉ;r svukg@)v 6<ёɿu+~adfjXsء/`Ü'mЫr=8dC+js*sy7J)/ 2ORS5 HY`e!r쑭mqOc:R";Ξi(Ke1AqѱS*{|_(j^91AiABKUP$?S6eXxFԄa$P3GʢPAuq؆Uy5 }5IbÃ"{`vJhrV+oUN)W|2Xqf(s%aШzY&! ` ̧Z(:@CLKTuZAzdU[%3 ^3l_Kbd}Z.̰S>[Xlԇ|sg%.˕q;Ǐc%իr =@62qS|wR|$5Hԋ"xKhK!¥;,ݚX*'Ol 9>%;a8\ . Z{M^[Z ŦyT^H+TX֕u us uNxUίTг !xHNF"MY{QQU)= 3{ E}!$tr;{iyN[bXR7%\ )a`>tmq;Oٙ,k!3?^Б\c u?m hqnR!1YFJ@\mr2` <驞9fk%ޜ}\0:!(gaf F3*%8"Q5Lu)OiCXg_M5~^{+?u&ԏ`ǃINԂ_S[5LbUJ&D+F䞲 ԯs_UMY$//";"k.qovAݯUjlZJU6\hIՍF *7R)è~)N$s: VlІ=yTIUᾚ_ UL\/ncTL<-GÌw6g%#S?DO~iC,6:>ZS/ QqGmDC +6WPD՜ hS-%[ Ks)ɺKJaT2}~ @{ dL #3A\ lQ1+f@aGЧ !Tc2 D1^suv?, "Ԑ ;@KgL\Khdfi q嬎LB5+W'vO/Dfn1Sb&3ÙDp:\1ѻx[x2#Ω@w )aMH]DC49Y &p\5_:[ɖ)\bʙi9od6ک.firZ]o;دC5F5X>k0;j.; ?:* &^]TZ泎xK!j[jbԨ%?vAQWVN# =Qx|8NXj&@UmV-妾EkK,_5V5:r)HC'h q k@n3"V@ТFGs vrn+;K(c2'jP"~r&un8?\Jݡ‹%BmRJ'q_?]@KPzge?Yg='veSlrO 慗"DR $HfMFb(~#:<`Ãz#&F E$`͠sSG^ { wr[:qIU&coel3CA*m=LoVf*6*4wUpܽ0IE!s ࠱ B:K+UKnϝDc0k:D$:.fG\KUC>Lvz]eTl5dQУ5 ]hnyOSNƍIQ@HZ+g=Hk#2Ld ֖Y`.g#iQғ+]wjI!q;Q]atKvf%h "ӂϖ9TI/t G! h+ %GU0M@ʁXeA9bӞr?s7?q[NVwrL_WX:_sJ'`\PqF&W}E C+lɥ>$ ۤj!QI<q"@CpN|33ryaiMw֙= -%(BT^*~<3)c"$"om5U}J6d:a櫻iŗԎhi_i>P^/du6ݻpFucQ^ut9 ϹM}RLgZ6꾠`qm/w^jbT*ԮH = [;q[T`NuZt#󂛧:\%Hm_Q<糖.oU%%X`ȴ,[*[x:Qr mp#pQig /SŔpsE\"藠؊tW/$[A^,G^igyh2$y;Gv+ñ}aw @AWn [J(Ɖ|t_~B˳ZbOM1I2۷8#5_Ǵc齍_Ƣ4cMY#NzS/A;JekBFg1߈*MmiZx(FV$qLBD Mp'f=dH|=Ō 2ӡ86m 耤q}>DSbSF|҅E^`} i_@OC~n g\yGmFƘVDkV6LMM{|^ʐvMMM|ȁf 6㫵ƖߦGzJ+D'x`w>~7:I#[V)0 /srsZ5 ,kRІknxnAvzK<7 _FB9v+@y0'%q[w`o  p?ޟOeh쎑/x@Y9Hk=INK~WMexdMS0-/+r+b5eG)}P9s"MP)eo(e veeeܑ.~acH1my:v1\HȜ!@lӞ9tsBgWA|7Y)K(dTdv GjNqg6)nP9f| ;JDg0@8 IYT&5y- vܤN " eؘU> [NHW B`FŖrӌAةB R<5v~ə̕5ݛzE< ct,6~8j֭9!:`T{1i[0]A9pN>Jh*fi 3_ɛH~hx:P@[s}0},;8!Ssb('>yi,#=|۷$#>@G%vn\_( n!0AO9V%DUB*+ ^6ε5ybRAK>+*8Z2t{ =Ok:g+.&&-aّH.0 15SMM)tpn<#:N~zKWWz& |W\z')pu-n&#|)C[r:8/b!&;wc[Gc/ޓԜ0A aGwg@a0x4ˋAqO^TXsK;wnoj#s-n|yQ8pqEi!jϫAΖ Mڗ:52^]jASВ.G h(ٽuǚcbzb)K$=tyC]͹.cK-JlJ SLҏ m9Z&Y_ m91Er;@bKZnR@ 9 ̔P[ʕE#aqvUR A<6 +4s]-2#AOX.n" {()í3YNA<"9VCog$?*NŬ`XA\~eejcM^R޵eHͨ9|AW?fdP`AuOr\0[Y>+Kӥx%sݖMDb PV>zǧ,rnWEbuΌWHGZ<# 555KENa5\l e#V* }},LP&P@eYhEgL[nB3|OwED\Fg]l*쨛H̀n׺E…E_33Aã /'8 -pU2fR8%+PNI&^$I#}86:J?~9[HI.ߠ# RW*dLg̷=1kO>̊Iuu;^ N6XEfh1R 90 Flcǎmܸ:EZ16,DYS+H2`\#g+>iK^-Meqcཙ(ׯZGCiY(,+9MofT_I۷HJ3 FF|Y^=5?#DJ9T-o:ձC |՗:=U=$`M>dE e^ ZWQz,/oU3Y{` G)P_8u KK04fM@.~ ~,=1nSk1?S)rP&yEKPTĜd@wta2z?@{֔1E8K׉0" hۦً"G9uz`=1/bx de" xԝ7k'\+/I)斜px&n\WhHPpȓ<ӫ vdMM}򝳲N7I݉x{OǾl0/-.:{e=ǎC&v9ܸqcE3MfkUF1l^7bVFY\_̏3쌎?;HA) } 8%1}nby1{lҽcKkjDv>HAkx7)`C0T5!!?11/ۋ`rD\6"¡0r'˕a]Ø4ѡ`llq Hu'1[^t ӦMro߾WnL'h@|u@0-Xak{.X B^DepT<jvAV8p ~9+XĒo C/'KqpW;2맛ThYzuZGEs&koo瓋u"iuMLSf/3'(أCTO9JNfa' _!gJ"~F}ƏfZmf?j@B=Gm߂Y=#*Cq2.^b@~5xF fȦ_"ލ;eq g9mG$;#/{JvbAJ%)+hi@%MP6*(5eSIW*?01a-~/JW(,? an}nl=Letǿĭ Vr~{TO:~ɷr.<3orZ0*452ɛ(ٱu !GPӇJ)ڰ:avk1 štSpc/wΤDd'4Klҧ/\dFWM@ h#C9b㨋V5^XUWypTXdQsxWzXZeY%;xl6KPvDdK`C> ey]Lnf@Cꖜ^PHk|c] 2w ³ěo8~wo2gԎ.clx-'[,A2b[ @ Ί1E E+, ('hҭZW'k=}B`L<UT)^>)*ǯeGNglZd oSpe_:8"WըO4LMM" uE!i@9xbQ.orGKycla*|Fl MCaEfM"?a-ۊCQ(?tUG[k=75FA ?As?|% ~͕/PKt91 [*+&nuvola/128x128/devices/blockdevice.pngUT gUAPQux z?Srf.FِK"B%HD7*qBE)mgKWeO)J6FF*"0~ovxs^yiU=Un[[9(6-.Ao G?z:v結6Ljx]%Zu`W'2]0 A/ "IbLN'Ł5?= 0 sq ?>b "9M 0Q=7B)emqk9F]Wozq8KGҰuN 䄏r%I ǵp?(XyxIPNop ) Ӏs-n2wK}fιUss^n9x,A_寅Mrz:& f!62c,D6"=slZ[ vO)So"wI(5bҵ3h^&F@n{c?cũO7*M!ؓVPf #d$NO=85޵DȕZo֒I[& Un80G)Ybu u\!HK|b۴Bsu)H .L[VJ^! ?hY5 wNt@(TF.' ܡ|ޓ=ޣ:^Td3:9.4 M+.4326w#~EC< ruF|b)|S)#6OY"ʃ=tI  C4݇2[;1[[CC2ى WSD(@9jz"K1İ7sS&.gf晱 B&$8F*hM8dK lIG^u$@u1K2o X&e lFBvb)1Jr5_i&u#t#yDL8i$fPVsU;¯`~򊻘r]MTxNg֝uN.Ihmdq$N& o|\@j3&Lo, 60ΠueA}㉘_ȆS]ZjORdGI".5!5Og_t.g,pX9)w/٘$c7h њ^(ִ]КdM˷7.XÿVBR̫0!o¯5al$J5!}vr iВ*y E7+!O!pwlug|Ę/J/`sqn6na}O\x ;[=LM&UslB#KD mSn$;tHsrO7yjBPSt5sD\{A e¨\bce 8jHs0tǯ{^"{ޭU U@Mak?>*mu19[60.&$Qh_Ewج^!r,/3 \:n3&:_GG>N篱/dϯ,^F%PaI}'zcy6 r @2xH\Nv+/B`&JW|f@Jo2N~{H=`fzjN^Ix@hO\}.\p1i" L!}HF*rʘsӗɨ(`d FPc$S[A f2wƓyWLB;+8t~MJ1u\eUQ !O#BSg͛챰H R[ns/mq19ևf],Rlm0'?iü2Z };kCEKyY!ylȶm`֬)w*u[^EY}8,COMTyCKUJ߲΂Ԓ*8:2ψN3[Ze%6 S+Ց-ꟛOwZZ ֥qE~!23QId"[Yα8p. yf0MyDiL{Ew=iࢇ4gg:Z{Aap716 9¹rN IHIAI^?,7N_,4 ηb\/5҃89cjrz*i{LI\JoF9xx&,'0M/]hjbn:y" ݘ^ITqW>)Hi;3:sXENFMqD"D{ݲ|z==i |H}>мxyD 3_SNJA;+G+(*:?I̅*oTXu57Ȱ]TB+|s n<.(_.%S^EJIҘK5M;Y_/l<@dz`-aETa6=OMXPp]PO tI(lc0cpo3!}NhG~R־T˃ @2c7|S쏵Yc~~ Pa[{_XSNt2L %8Y77( ȇ{9} B[D-<'ݶY 7zu&N+,sncRA4pT4-$X:-w>sWy5H }ҰC1ɪ)F[|od'zmw%I+o:Pbơܝ7ͤmVX0,"]Ŭ#CbWWazﮌG$QD*d*m~]j5F^ȃꇿg8:_νcSP5%nf?ߤؖțsVur &[хZ)5 4^72x m5T֢0)˲ɷ#9lT |6ybCK1TBCȗ1S&h/|ԋ|)!{)!MG'\$9Hи Ns;lIpW1ԉZM薘TíՐi R􃷷ru;8"4[+,';I3GYvҎ7ѪqE[dGGRK ’o1 0ih^%p)c8/1ʀFX{{bj) EQd8J{Mm)SY#}3rl#nvN3 42-3m0:cc2@}+MYlɈ Y<eɃob}pcbѵ+Aenrnϖ++' |6#puuOwg5'MU@mM_>Q]͛}{*J[TF.n6iΩvIwLzaU_MbmMԴ})uv@%Y,9GLR- ՝('f(rL^IO:#6^ LR\/Uv-a." S'퍋{yU+h6z M&Z EΊbGFYPK@"K%zAQڳC\BLVk]|( Z̢ahaoc0黿q,]lěj0XY Ug&B/\*TP.A `|^@I8cأcleڜݦX h @UݯV#RwArD>@:XfzHYd0sV_/VbTxA喅p' e!ܿcvopR-lʔw& ͒hO??Ȃۥ6WčCS0*&GJ%u[j): ͙kW}wT2pQٺ-Fwؖ#ׇA<4?)&^'G|Ze!~Wҡ@f9&zu ɧ.KA= J1+՜d`J{TdV"TJ* G}+ zC<(f "B:#L)nkAeȯ^MsFuy8I~D^䩀#ˆ ir.A5pCس|OZFgJx@/:2^7=~B7G]m;-! D&}-DM4"ojү/@l:,\Y2^7c];CRkwq? ނn^׭|i]R~67xke݆ft~6Ns{ϸm&w ˯dwKo lyߌbK Hz PK$(B$-圌Rџ6SOR`:iD?`z(}uxxm(KSi`k{[k{xK3޶%T5vAPOG=?ưC-D\%d1%(ZL:`ˀt-j_hfgxN*:*BҷULRxhG=hP=z\NyhPqӍ20J4ѿH8u3}>|fFW+@0l7H}"nXfC'f|#TtdKxbXVY!y3SuHsEGN17ay!C̘)E9BTr}tlݵ_iOhc5ܘQYP jMZ$7SgcIܨS,}.vm]d,&QJ 5D&2Nz#xa%L6@r/zN\ y-z`B3xy7aH9Qv-mrN|0~1^\iIAV0хsϳ>MDi0l@ P=`XAYgCǵtj"bH݊ @UB _qFziʰت ײExi|im}^gUdG{kϹx{V&Lt~2D9%|wWrӻ&p}v|h} ہy_ } bQ3Ja6m^[6aJv| Й*P>hSG<[ܥW}b+nb jiiNNN7^Onu 'y^B }еjIk_miWeڴ!X?dMB`0Ô) Ne90AG/Ys5$H;%pa2#^cCt9Hv+|klfs!v-_^7 W^6Oy+SԿ.)SuXFgփ(<1 r:+Wa\?0 M&(w}X@vL~;.]@}NW-/7r@;6Vپ`ZV-,R%14Ԑg9 E\Eɶ4vG98ց4ĄdriVr-SY6ݻf7u8̪DwȠ>`KBr ) "=qEu,u[1KFv4R$'oUGfoݯLMn w_2/nEpi 5?;Pc;lfԺSyeATۥh#~gZETvHi֋3cEC&4}j_Kx+LfDYkC~G>@*=}%)x'@f] | tamɓ>409+4Yø%|Q(7eiVvygZ&d P|>x.s`l9Pj).>?I֌Ez6KiHǽ1.I၊vRD70f bԄ]%w &zUcG ѓ/2X5X0E4>-dGKSyH?f}.Z9i&Cn4sWuRBVL7o4l[9??)]?Ln誑k*\RLxR54rP/ϯhA9dSi>-H3K  zApFC|OS]qA/qFh@Q1h @ѯ\Mh5rE/>[\[GbEÿP̷oYԍ=RWmqN3\ܾB@aAl0RDIKC g?92P*~9X` b"E>n Rw͛Fb.ܚ @Vi؛18ޜ֜gUM  ep0\bH"H XEw{X}^EǺ,ڦLp<>_7[`WvN*@xѿ c,49:wfs?1/LWU*Dy5T҇>bo`o0皘dYEn@NPcղZB_ 5G)_YzMmԌs똟1qHE0YVG? <\E{ޡeRr>Hv!vߛ,#6>`MO0P  4c'+$\0lVr8Xdݭ۠(fY^;_qmR24|v5,եN'^c~Ai%cݓNA;={/ nCiPK}A1 q(l)!nuvola/128x128/devices/camera.pngUT 2^]APQux ͚?k s欈 9ItX-o9J,LCP䰨w*1Ё9E9V*E)Bl#~nm^u]qW2$G7.ln`'Pj.qRn#'{T`޳'{]8 6S]"Dzq`L@y?  A8>侃@ pE)+ @LT C)FBpwۏD+#uqq©q".nrqu1 €9QCE*R22H7,N'Ǭ'_8T"k=kۀLs䵍uHG:nx743=A% &II<$uP]])h;J<ƾ*/[Qp]4@K2U&Y}` Xm""%~/=.AMoB3#c<ޚRsQ|A7;r ?_txV$o%^ϐڿyTö6Ӭ5\FdRGU1lbkk?/AqYsAKR$l.ցX]\lS-s| ܦ%f?0]:/!'~"!81 .{lan*b>˞#7@Omّ{X)LR(dY.ؑ&0k'IshjRu[g}LNJ||t]]yD;Wty1_Ո&̏50gf *@G׊Ko-!ͽ(.d8IhHrR7YF\Z{weg6'%Ǜp,J »u *Za9ղ_$^az3tIkģccr,Lݿ~>UhcYVF-tw=4[:)xӃt{%ŦܾO:i`2}V%Iy ZO*a\ ez=>};6~&!5xueʷҋn>O.`_j@mr?lDv*3oLLZ̍t÷o?սx]DaTr[ ܻtY,ƚ݃AʣpKp硹!)gG$IpRblHYB<܀:ou8}IūTOOScU,^޿nLe%(-„X}bŒ]IwV5|nY~f_=sEɻl \|)t~Ņ61)Jlw/h zYKGsŐ<"<Y/17K-Y pA~b:As@H%Ć{>)t.Ԁu^WNۍ4rho7zJK[Xadk UF__4.IPQdp s@,9^(GC6S&/i1E; 鸚i[5gD=_b7:ywt/ص(7?rOI0ExK1q _eZ_3v-W~h'ŹV;;;bv0:3m ~&oeoEFUCl(*"n.I³1rR=@=sΖ}N]R|1XLtqt%L,dY[R)lTF?O`h"u "۠87ư&v/hECzfիr$SB&~]bEbo5z$|sefDt0&BfZbg2/iZUrlLAMG_ƺ|A/7Vg~E_~=4o]fV*Caۺo;G1 ߘD$VUZP'z+T{4 W6`ŵ B*m"/c<@B뎖hZ $@>nPd@WƦF:+]pW}1VBVW[୬/ֳ*LmШȾsG0g(}K읋l7V×z 'F]I0[M-C^XF::0^u~, ?B >0,M}X|[9̱伝s{z^mhV"R*AQÝ_:X!:O,ؕǼL@LCpf^Cy@~_:4{5x%`ڋ MLq):ř#;/C`..ϰ뛚 ߏlkO&NS1c.fu pR;n%VuA<-#&NjЖ_Lanc'! $c.󴖚04v;*F{65Z4V:w ^v $d]/TU *QyId&?КbV{:gtutoe5dm"RjL|b%0UUІu;qhj@ݿJ}k+O:=@̣1=Nj=8 3e@f}6%K15(XD[Q!{nydd ;7mgn~zt v}t]innNr|6 1IK+ȳh>: E# 4fSFymTYlX"#Q5Jȁ.#8EW6+Ȑ(b@!馳XBLN \Q闇=.oMlVxz\ub rWo-R3`ت7,`!u?F! ;d^*( 2w-#\̈́V`v$-'uWRhwOS C2Dfr{P>g5 RaJ]ͧx8UXg 5W춪7gZT@v>*psߛ5GLP39)YlT`sr޹r79) |mxj?0_rMS[ۘ ӕh/E5"D)G|͛ pyԳ&6bQirϸzn>/~^sɌR/Ëw$0{|9xHyYM6SmsYʳuX}Xi+ }4$4)l"4%\ʶsn쌮; +@ K?Zҙ88M/Hk6猳, -mD0`ojKP{5<&Nj'P |,<8To ~FVw46N13 *r:UXH/i tYMDfMKvg: 7CLWko;J6ёp1*G2jk :fX%[eV\dzbbڱ *{.ֿC~.` ? ^Ů_o/%r?el(4Z=bí RպzIicuuwnK hQa!&9Bn* ӫ~ko^E_<%B6)o+Ts;4ne's"sq;~Oߛ,|''-A0un~*׸N]~b+ȿ*AO$gK=ZѢb2F(bq1ֱAXޫWH~kx(U2j=^\w"3r{X\de]ה*JO}0N8Ѽٙ/PO(O!LVL(."=sj0D/Ɲ!yǖlex~/w]]6멥KY27eBEk*f[E*`]&GSȗ/,>Lv`)lZO@O"Z^ˬz`o1g&rԃ6b73җ! jepK):Tׯ{3X2.|u8CG>~*`;Snuha/Dϐ2$o }׏/IuYBo0mO I5 tyKͺFϲ`D&|"WvZ 神@*@!\r CvE6WF&gԢ oVxbzYԳӣ?SN 8z#ivʵZp:|G}/zP d0Svt+/dP.Ll&Ǘ%4^kgx;T`2o*FI~r8xRNOMnmX=jj4Î`|!2a:HIsG㈯f_SP-K9RݫDی^LV0P@6$!)-7-\`%9yaBi8ϯ)d?KLi{g0&inGTl86e2Fȕ ؎ pHU¥Yp蠳To;O¯|A" tRsk2 yeMm3ZT l.4 [-ln4 5ݸz*&laOZ,S3E"@D ,&mؾʗ2Γ,Ø#]҆ЌM""iK;a l:\[GXB?cbX\ъ& bn~x0$S&+# e#zv>gz V9f X)ـ@WK%[A|~nݸ:uȁ2m[aD.]_y&0ژ׌fnےY99KB+'y[/e L%+,b6 5R|h:id2.t"Rg\-<3ok56;(uV=}(2)y0cAݟ`VeW޽{'Q7%7#pZBC">'EF&ȅ1>ٳgln9bk6*{8'z4KBAXD 'ƛ7*-OY4' +6K̽y6!ĒHCkд%Zvo~玲Q7[q}. jp=r[|]82GJK75]bSS|_0;l⡂ʣH1z,5j_+EVpDcZ&fc[[pc]# \LEx8iP(Z $L S[&Gqil̠+AD3 /s;隥wB&rk}wqI< u6.z*cޢ(]HYP\\5= yRb FRI+y*UK\iM_*|U2IN}zL+b \Gdαb65jPK^E#+Ov)YYqWK%o1oee%bտ {S=4>8ך E;6aDi>HWj_T Hzx˜7 @*Xu(`3zЦ: eD VE5ňX˗TN۽ Uax)s7D UU4}%[Dx$gJȲ!=tDyK髚2.=B|B͊yk1! Veywf^݊R J@g`7 "yi= $7Ύ󷝚|o4vS?YU+D%mmb9r?|Hb!=wq?|:=ryfsPs )!ErOw$W],罽c\LHR]s/Zӗj4sĬ.(@/@'ԑߟ_lA;M_W{^)[C,F=:Au _NlXG2< ]I(s/OgbkbL7R7,̐ `ICf&lxЌuOMS`}kV0 ưP{Sjd A6d9UMJ/غ(g KׯYj:#"6N~<'>s'-gi}U q~.d;_+v;x1a=T%mx m]Rk^nu>T-Xݏc&:>eJ7inV!a(V?'uUq'{ m|"IOl<<-ӽ88dy Lss5ё).7FhUWX\ P V  3jx.|``5`nI.Z3l-ݑkjp4J5uʩS{hƂU0%7[2Y4V%]@10P'k><@o'nFn=GI [lI/"XnbO~szhǎĜ=D%Д};!ף2j)0MY儌q sJy~/TDWRQ2J5SGG:&6n\W7Db{lMM E"չrۆJ>mS$FHKu˨2GzF(=?lQ.NH$h2a2)촗P֝౪2PǢD:hYB'!G>XS݃A(f;FXHl?* yE٥ٓ}NTm\8xPW>AAdرqkD͛qiVO8j–|2\ 7AR=N0>0qt%l;0p˗K$LjiܦǶ!c >9PO 4n ,ICG?̾\{|fk.[w.Kf f;'<߼Fly7INQ:upe]Tw\V6~Ϗ0Ed T#)m #)^Z Tf?c, -4P.vƣg>"Z ZìkAH \Ƈ>5чTl"%Hnvb- kITo}D: qOYt˺O$$f@f{|R{k!m,׷>hؿ ?F#M>vPK|A1S㑆8G:'nuvola/128x128/devices/camera_mount.pngUT ]]APQux [R>~ԣ#8&9MfeZiΩMZZbOO4RYi8c8_\b{ugAݬo]#=Zxe;4;)dn{6t@ #l9+,(4Ի07pI-X,J(bBa @w;`;#i/  @n^NsFF:@5?n}*D :mT|ȓ:]K*Xe2:/?!XI#k貊O`#)z!4U 5cӗ_JKHGvݍ R:apXR[N:^,X&S]]Y'=5K> :,*nOZHdwsԛ29|E#ՒBfU T`-]oy'i9gC42 yqttc@&FSc_aT0䗆&0{{" LHZQ9Kg(ƘxyAiG&t9WeAadd$Θw+cu#ќS5߂7Z~4_m[E2dnO6Y!G. NCP]Ge̝1ƥ<  ~w$e>}pi ^;W|LYx"AYM c-Yvospovf4e [P*ϭ,M!Om%5 џ!MڦtsKr,Fn{.W4^\0ҡFSxetQncTua( PW9-:"C# ԩ^*ԇ8D g|a!?o0R 3 T?6r *5^flq:Sfeea.2Z%23#+{VI/D1}zuD T[Q Dkez=Ji'g?xMkIfݹ?mD'ckk'Ҳe*!-ڲ&l(p $8oQ9j5Qcju秦^m.yA$7F+taow 5eK a6ndOevHWop hx%tIm#".Y U0 3 _Fe[Jl˯{$a \ww@uw*U8cw=)jhg)TAfg4Z3ˀ]LTwD RyW ~D:wc/GO"(לKŞzbEΖo,u(8:Qqfܶ[X7 `Ek)cN@isPSJS޲`ɤ:&[O[B  W >} h>}qw > z|3HpU^nUhmjZOXZiG"`f% @x:YdU {_ 5q z|p MPx̢P;R(|q]@w-jIB-1T:ZqjʔUм($lO^ˈ癔:, !ѷ7 >g0E d%SZ)h5O3@G_c.3!q˜۸իf\&.,}9߄档í*Vfee1X\Y2]L84?fm2B%#5qSpɄ_4FUtL5vz<컪.E2Y# yԨlPFļAQ`{r~ble :bU5Čj UVj+Qx|O%d|.tޞZ͏0fA rdM3O-Y/zm"*Ώhm?XҾ5Eu۳D?hJIsb08򷐲2^~D]q qdhppݷyg:Z_|8\PuyƵFĽx[7IP/8Bb =պ֞'Zjs,0??_05R`rMs~Y666^>d ͤs}O=\(YAGk WdV ZJVZ6>2O>;Z;a8g(EYS&W8pL9 6kib~934vZ@y@zH@لlέ۶[5w" (g}#h"E gF^l@LzN$ہ(I`cF|?%T`L s'kft)kM5L癠X1z-V-շ gH>zH(7: dr,h V޵2hFOVύb%, Xz!7ӹ˚Dx%(ҕBfE;]ݳ{'Wq$Vۏ/ǟGgBz#:*" d04nAtדi^y~M3e$J.zVhrŖ3/6q_Nz땖RTT=5EcjYen&D*3MDԐCv=>QA^*+(C1x=EiB*VV_<E6YLӭj{&\Gl> [NsZjHQg_xJuR՗קT !Vp8qn~.iy< wPlp/AY }c^1ЅN `'fdN#ɐ -=sAdj vϞ=8ScE`ϟjzz*K{VVTh|hQĹsnw41+-po )3i0I7}pҺ%# w8{ XZ 3MN˗(G}:}<(H|f̔+KFE=_>-(v-԰cT__.дe좜-{0?~G{1U}e&Ҡu~u$Er.Uim]_KK1.|<]*tiy^˴hTSWGX9csIZYX?ޔڽ޼y^Ly$axK=N"௾*S}SCܫ9mmq?jd&ACzGRJ? #aF!?(A4jGcqc\}~ ǯIlߎkm 8·P{30E@?U{zO_GvݹS+yɜO{$S~;r/܂^'h\_QX5߭Vha9{ԼQj)S(,U!K7g";V7B'wDO~[%,__?"*~uwfS!CX2wEe7(d ul=EL>awڧЕ<`Yar)z0h-2F>}'#%0+-jD][k "2ؗpJJp0]MB}i6ӜOrKzϺ4hjD Cmmms6{TQUI+](ܿsv$ I尧<(=J "B1;k!}1 n4rCXtk_Z^^`HTOҬB:`%+dq̂333 gafOXQmG`7o"G=kšRv(J^1 vɕo 2Rbic|A<~etV|!Hm˼A;L1Cx"crnJ#Dְ޾FY^ɻUPE.y9Afa9e` O",.NGsؒSRlfbsr}ԋ&r?xJiFҘEiYL\7pYN k a=yZRw[]P=a_{ ~GhG=B-|D5q9r-w <A7se9^,+wk8숖,o <e8-,sfwU F8T;+{gR|pk[<m0qb \Ap|ᗊdm###!|= w~ǂ|l9It NBٿ_45~1Q xa"GjkP@~^[fqJ&Mb9kH> ^aZO rÉ8GFcs_E_V H\qD8 4(FJ@}6.bf-BHLGk\)4! [:A^:k+X;q凜Q(%F:< ƒB"ZXʮȲeJCWFIfJ:Q\=?FO>\a㜶XÁ m>%FeL !&~ɂ‹S:w~DG 33mS ஏADTqW'pOs?Nqp].] vr8‰w7xؒ4ҵ`5-x:)^~3Uj74(V_*3ܞu^˧/f |y$cb=Hbl2|mP;> ˍVP\AES4uo.ĕZ=i:v^_, UʃU=C6giA7 l5LϗX>x:v0}`yI 9wZV:Hp>=/`+N&ϏA`{"6&U[75nIUD4'h%#uSC]QGOX-At& Lf4z72gKHOU2wP vy{kY*{X,t 3*RD|HFq";98@`zzUM :6%ÿLa-S~}?*lXTo>KKH+p'WSUݷ-X [}'˾@:BV,9Ǜ{Ox i`O)|MdapA/ F8oSwhH0h@RqENQ t&ޭ|HŜGw`^P̆=O([8N}دxha_xK)ޑ1,ɕ.\p,[u b;p0[i p%zZX8قyi-KQiħ# a(9;/=gsp)Z2GTf  a-׷ulW4ގ+ύ6vUy/V(D37XzA'v;#F KrEPIeo+pfv/ ҳ~)jޗ 2WͪM8)tG[ 3d܈;ŢrM-)PSU jW'?4&T#U-|;)*,uHhr0+((`=|jIԧ^p-R^ !ceng]mד:}Ul7nʽ]^hɌ ;bj 9m>b2fSl⮖y7:5<2q8 kי3ۍ!fP3jh)F`CV"A_0.#W+7niFN%c2Ai"tX|u ž`X9,aǍ/JYʮk8GOw]D`ADB%EN`/ihA>=ݏᑤdlŵYm>>Ш',nŰ}@r-TyߪSg4F{rJ"P5R.[B1[2-9d1OY pzͱZWHY}Iئ`E-njv0svH*1jsZ\ITg&`;ch" և_#hayf1wMw6ϒ; gep9g-^%AzkD{c H9'/ nGRr4"giOk*gVDQfU#?DiN/|ᾈ3뢧ϗ!*v+O-4hW0׹8m_䕓}keW+F1KP+g*˫d؉"ė3 ְ)\^>'X[-#`T,7۩k'1俒"O/`0l t;=D"+oI]Cmgqrf2rIk$]~\fj F+eɅ^U ?BQ,IʡbQv}UG$vWm9Yai&(#0S}?+!/FqReO&@m$ & +߽qI96s&8 c0j(5м*& y@>s|efcڍU]/  %2:V 3c>k#3'QT(dR1" @!o+X Հc֎9/MB+OM"?؃4$<\34h3Dp)"h N_~,|^#Am!u2K ǵq9oAʠ VIGtg<ɩhiHEc97ט;Y+4Pdg孵ae,JN۫} !.N8B8eaYce5} rԩ8kPSl`z%ԫMm l=6ZO6֢;6Y'C?v;g0|:[0T5?c_\}j(-<4<~vʣC~Wk他ݶYնUb"CyJ^l$,;wl 7{9A - ¯oupꕭ% ה vvOD&-sJV4 T֩9vH9Мϗ{5As);cm Ue0V#iV)UoUOΗE7_Br2LJ #1NK}.w 7{D%:"3Y ;INo>Mgux}9`zii W'hgesgԐ0?jO \#m!MOݼ2kb!!\hjƔMnUGW 0tj/YX[Cydsd,GpVͶx,Νk[[mENmyw MPBa̡c*no&{81`zM\ h%&z7>XܸVMT1P2#5{05\:D=}VDǭENKB7@OT-k9zMZ%#W/ԋ1U*|SL^L;m5? +/)6+@n[+7S ū&^vU4\SMPeo/rK 3%%ȑnѼ@\Y%7#=zEe$QbhIKB},oink)cIz rWe:TɲTglGE9$}a`v^uhtpyޕU<8p~^3 wl-ũFLMx"ްHZFPp;`W~@^_!-qôڲM{ت"Tr >^0΋eDT_e7Y˞'1DU$+.1~=Ѯ7&&NK"%S͔~05|dz+ \0Q-Ɔ@1,0Z}$ ק4\Q|ۉCDL @=GÚOE}ϤM~ T#wfY(R2퍝nr X( wF; 亊=#CE vc %esVd% ,5MѰR9WGRJ^Aji~N]>*/7oc7Lʶx,1! #8ьWoC?-s z(k t\9,1{ hoJfn8tC9߽O͓v!$[f@G4͝CB^\ţݸr̕rt1`~ o&c1Y .^x[x:>Ƣ`g$TZ#YnXpDtK}fHg CU3tϙ1+*@V+?SkcN"DzWb8L v~bA޲|!E.ֺa'L7QeXH߳h_\REVypbhIuVY?-_5k eKL33kETj[ X7KcrykAI+ " ;d*Q=%zerB/<yhqzivu.fUU8p 352;DJ2KWДՠ;P,^Id ^7ߜJQ(S^Aь;=(]s 'W[/.Szi?XQ;u>  pjyJm 9CX!?iPk( b5(1SqU]a}[ƪ>=1݁8rDAG`H}Qvajd(QE<+&n{C|`lU%B4ŹmtH2JԄbdn6qSzh*+"L%\nUr/,(.kȑ n<$: I <ο^ ֞MALրu.(AzusI8L'利Tk =-<9h69h 6%} XǺ喀F}:|D/ꭎ39e\vp s_ET^/{9aX[`8mƁW?Tr V%ff&/DY٠C}ҝw9 %aG2&J`)KЧ)!jpV9&;m`0Л';%m33 zn@}N-:sgrp-9N Χcvς;?ه/NivL{vYĺY1o`(hS]$Z\ GO*2ַr[wG;Մ.T()%w@욝 bi΢#Jy@ - kp=E*uҽ"ZEy)V̏FVU~Jeztm˟BʆtS;fmq&-5q=7kRU9FE9mǴ5'c S]|L/᠂7 f4u傎pE_s!:D0AZx60 OFE݁n ܗ^9n)֗a &294|Ԟ-ي$ۈd^xy pà|^c%]gT'[ph&=sX<#+5S4|bM&/^SrOkM!”TJPq?&bw!؛j+W)j| . zhlOiɁ->wOÍr$L<=G4EQSs89>6D[YJNA(EJX(n{o\Y7-[Wܓl|I'>]\g [(+ozg-G9a'#.7%2H5}cA{ftrMwyͧošZtLBOkż%YiL&O/:FE,߬xg88Ϩo bk}+ZW3k{3Zˏ@#GKfe:YD=q<g_- ``."j)Zյ IjϦ'mN+ ajj`I]հ$ 'beuƒ!)|3IJI O${߹[ea#ad_g$dO4V be&y֩9"Ttz!.Y*m;n%ᢌuk XpeOxjsUUs:)[* k˶-nQ=4c1iycq0Oж5Y'i_iFQJ}G4T*h̗X"F;,kՂ%رFQ=_8]ZdKL:B bv&:]7|.䁾40+ѻl]fZ[[uVTg++EA`Ι<];3ٓDN z6S qW6% 2z2ұ75X+wp@އ9MKrHaMZPK5E7vcͤyo#tI#ו\L^_QCLNKpfx+Q:ym]ȼ+0xE}.M5b㭁"ӟŤ+zp૷T0nn%GX  g=蝛K[y1{{g ް>Mcw`8dJnK-$^'swՂSAxK:6)&Hi)_c9-&?p"6)3f~xsCR|mDc 2jF '/Q ZT+kjgD j/t]5u^MgwL_c6&Gp^k/' #Isd{@_z rp."FU4aZO &qᛧjHdZ=Lί%"9Z6 %ʖu7\3]oh0TMn lt@KPK|A1 q(l))nuvola/128x128/devices/camera_unmount.pngUT ]]APQux ͚?k s欈 9ItX-o9J,LCP䰨w*1Ё9E9V*E)Bl#~nm^u]qW2$G7.ln`'Pj.qRn#'{T`޳'{]8 6S]"Dzq`L@y?  A8>侃@ pE)+ @LT C)FBpwۏD+#uqq©q".nrqu1 €9QCE*R22H7,N'Ǭ'_8T"k=kۀLs䵍uHG:nx743=A% &II<$uP]])h;J<ƾ*/[Qp]4@K2U&Y}` Xm""%~/=.AMoB3#c<ޚRsQ|A7;r ?_txV$o%^ϐڿyTö6Ӭ5\FdRGU1lbkk?/AqYsAKR$l.ցX]\lS-s| ܦ%f?0]:/!'~"!81 .{lan*b>˞#7@Omّ{X)LR(dY.ؑ&0k'IshjRu[g}LNJ||t]]yD;Wty1_Ո&̏50gf *@G׊Ko-!ͽ(.d8IhHrR7YF\Z{weg6'%Ǜp,J »u *Za9ղ_$^az3tIkģccr,Lݿ~>UhcYVF-tw=4[:)xӃt{%ŦܾO:i`2}V%Iy ZO*a\ ez=>};6~&!5xueʷҋn>O.`_j@mr?lDv*3oLLZ̍t÷o?սx]DaTr[ ܻtY,ƚ݃AʣpKp硹!)gG$IpRblHYB<܀:ou8}IūTOOScU,^޿nLe%(-„X}bŒ]IwV5|nY~f_=sEɻl \|)t~Ņ61)Jlw/h zYKGsŐ<"<Y/17K-Y pA~b:As@H%Ć{>)t.Ԁu^WNۍ4rho7zJK[Xadk UF__4.IPQdp s@,9^(GC6S&/i1E; 鸚i[5gD=_b7:ywt/ص(7?rOI0ExK1q _eZ_3v-W~h'ŹV;;;bv0:3m ~&oeoEFUCl(*"n.I³1rR=@=sΖ}N]R|1XLtqt%L,dY[R)lTF?O`h"u "۠87ư&v/hECzfիr$SB&~]bEbo5z$|sefDt0&BfZbg2/iZUrlLAMG_ƺ|A/7Vg~E_~=4o]fV*Caۺo;G1 ߘD$VUZP'z+T{4 W6`ŵ B*m"/c<@B뎖hZ $@>nPd@WƦF:+]pW}1VBVW[୬/ֳ*LmШȾsG0g(}K읋l7V×z 'F]I0[M-C^XF::0^u~, ?B >0,M}X|[9̱伝s{z^mhV"R*AQÝ_:X!:O,ؕǼL@LCpf^Cy@~_:4{5x%`ڋ MLq):ř#;/C`..ϰ뛚 ߏlkO&NS1c.fu pR;n%VuA<-#&NjЖ_Lanc'! $c.󴖚04v;*F{65Z4V:w ^v $d]/TU *QyId&?КbV{:gtutoe5dm"RjL|b%0UUІu;qhj@ݿJ}k+O:=@̣1=Nj=8 3e@f}6%K15(XD[Q!{nydd ;7mgn~zt v}t]innNr|6 1IK+ȳh>: E# 4fSFymTYlX"#Q5Jȁ.#8EW6+Ȑ(b@!馳XBLN \Q闇=.oMlVxz\ub rWo-R3`ت7,`!u?F! ;d^*( 2w-#\̈́V`v$-'uWRhwOS C2Dfr{P>g5 RaJ]ͧx8UXg 5W춪7gZT@v>*psߛ5GLP39)YlT`sr޹r79) |mxj?0_rMS[ۘ ӕh/E5"D)G|͛ pyԳ&6bQirϸzn>/~^sɌR/Ëw$0{|9xHyYM6SmsYʳuX}Xi+ }4$4)l"4%\ʶsn쌮; +@ K?Zҙ88M/Hk6猳, -mD0`ojKP{5<&Nj'P |,<8To ~FVw46N13 *r:UXH/i tYMDfMKvg: 7CLWko;J6ёp1*G2jk :fX%[eV\dzbbڱ *{.ֿC~.` ? ^Ů_o/%r?el(4Z=bí RպzIicuuwnK hQa!&9Bn* ӫ~ko^E_<%B6)o+Ts;4ne's"sq;~Oߛ,|''-A0un~*׸N]~b+ȿ*AO$gK=ZѢb2F(bq1ֱAXޫWH~kx(U2j=^\w"3r{X\de]ה*JO}0N8Ѽٙ/PO(O!LVL(."=sj0D/Ɲ!yǖlex~/w]]6멥KY27eBEk*f[E*`]&GSȗ/,>Lv`)lZO@O"Z^ˬz`o1g&rԃ6b73җ! jepK):Tׯ{3X2.|u8CG>~*`;Snuha/Dϐ2$o }׏/IuYBo0mO I5 tyKͺFϲ`D&|"WvZ 神@*@!\r CvE6WF&gԢ oVxbzYԳӣ?SN 8z#ivʵZp:|G}/zP d0Svt+/dP.Ll&Ǘ%4^kgx;T`2o*FI~r8xRNOMnmX=jj4Î`|!2a:HIsG㈯f_SP-K9RݫDی^LV0P@6$!)-7-\`%9yaBi8ϯ)d?KLi{g0&inGTl86e2Fȕ ؎ pHU¥Yp蠳To;O¯|A" tRsk2 yeMm3ZT l.4 [-ln4 5ݸz*&laOZ,S3E"@D ,&mؾʗ2Γ,Ø#]҆ЌM""iK;a l:\[GXB?cbX\ъ& bn~x0$S&+# e#zv>gz V9f X)ـ@WK%[A|~nݸ:uȁ2m[aD.]_y&0ژ׌fnےY99KB+'y[/e L%+,b6 5R|h:id2.t"Rg\-<3ok56;(uV=}(2)y0cAݟ`VeW޽{'Q7%7#pZBC">'EF&ȅ1>ٳgln9bk6*{8'z4KBAXD 'ƛ7*-OY4' +6K̽y6!ĒHCkд%Zvo~玲Q7[q}. jp=r[|]82GJK75]bSS|_0;l⡂ʣH1z,5j_+EVpDcZ&fc[[pc]# \LEx8iP(Z $L S[&Gqil̠+AD3 /s;隥wB&rk}wqI< u6.z*cޢ(]HYP\\5= yRb FRI+y*UK\iM_*|U2IN}zL+b \Gdαb65jPK^E#+Ov)YYqWK%o1oee%bտ {S=4>8ך E;6aDi>HWj_T Hzx˜7 @*Xu(`3zЦ: eD VE5ňX˗TN۽ Uax)s7D UU4}%[Dx$gJȲ!=tDyK髚2.=B|B͊yk1! Veywf^݊R J@g`7 "yi= $7Ύ󷝚|o4vS?YU+D%mmb9r?|Hb!=wq?|:=ryfsPs )!ErOw$W],罽c\LHR]s/Zӗj4sĬ.(@/@'ԑߟ_lA;M_W{^)[C,F=:Au _NlXG2< ]I(s/OgbkbL7R7,̐ `ICf&lxЌuOMS`}kV0 ưP{Sjd A6d9UMJ/غ(g KׯYj:#"6N~<'>s'-gi}U q~.d;_+v;x1a=T%mx m]Rk^nu>T-Xݏc&:>eJ7inV!a(V?'uUq'{ m|"IOl<<-ӽ88dy Lss5ё).7FhUWX\ P V  3jx.|``5`nI.Z3l-ݑkjp4J5uʩS{hƂU0%7[2Y4V%]@10P'k><@o'nFn=GI [lI/"XnbO~szhǎĜ=D%Д};!ף2j)0MY儌q sJy~/TDWRQ2J5SGG:&6n\W7Db{lMM E"չrۆJ>mS$FHKu˨2GzF(=?lQ.NH$h2a2)촗P֝౪2PǢD:hYB'!G>XS݃A(f;FXHl?* yE٥ٓ}NTm\8xPW>AAdرqkD͛qiVO8j–|2\ 7AR=N0>0qt%l;0p˗K$LjiܦǶ!c >9PO 4n ,ICG?̾\{|fk.[w.Kf f;'<߼Fly7INQ:upe]Tw\V6~Ϗ0Ed T#)m #)^Z Tf?c, -4P.vƣg>"Z ZìkAH \Ƈ>5чTl"%Hnvb- kITo}D: qOYt˺O$$f@f{|R{k!m,׷>hؿ ?F#M>vPKN10TD{E(nuvola/128x128/devices/cdaudio_mount.pngUT nnAPQux E|{<9eLl IgJY@a!BQtޥJ܌(UaJ) >?~{*ksldbP_kxl@ƺwv;dפ^A7'>~0pJ):<聗ॸmKʗ ']eF!؀z@@ AmoA0=CRa Иl`2â4"*J{{v|APL ; W[96)eFİ~ Ѐe-N LeIӞ/ Jf`<0ʌ(Hbϣ cӨwW鉁N'$+dHRPj45#ϟ 37 ϏyB%t{HΘ75p M` 24vK? 4BD;TQI"} U+1)C]C(,[X$D鵿r?#Gmb a>cyX_B]Sj?3PW[bM="wx1T*uA,'gQ';>m55[:!hT+/ׄ0Ut`bZx]^,Z'gy.pJR$MH||QDM!R V*$8AM2UH*ghgH5rr$|b ,=@̜ ySynpd|mM-,`f#ӗcRW $>VǤxP+D\t wvx@#²xl65$ͥBn'_bV8îJ(5f֘Ȩo:9? 㞫zbZ}8s3K3B˹,A{ZN*Z}T`w- 7>^> q†IY<6td >MI;۱o3GNsݝ]y|Q<mr ZࣂˏDw*KeDZp6/*w7&~嗓D:8U6T%ٲ•$dar 7ldאFÀ%SK҆fL1B-1Tک(ehFVS DVy'x p`f8G}=w HA<Z*񸴩$ɉhԝa,KG#O\ՃWLsGM*l?(e; J*csv]]9c [-k{d4qibA;BRRf NonK'r1~QxOo#6$DNVZ╰`֥ttNL#&<LN}D^k #'KR;4k`2d]Ț[DR&;$&h2UYN\LYقF|'X'tPă;pP_,}*f @k9%i*4@Qtyt s|ϟ(B!m4X &%;y/ʷߔ5h(i]s',k:)]^(=R䍊xv+ j.0*n!hEC=P{`e v|޲7=/pH]'6G?nߣ{JEcqQ׽' y^~OkIخ9$"BĻzƏ诸q4h$C5LaQsQH#ъ'vueXkUTnP6kۦx+ʰt<ֈ".ۗg,= -kSL ե"|Ϊ5ϔ E3K%k@~1Xcxxvv6g^Q7m=f-׈챭ëh0d^SerԞcTV60LyU %XqK$﷊X^'O?~},cƚo8 4 D VT۵192\G[;)oFfNFu^3@{}9y ?\-Zz5RZ&<*+ Sl[T&$WC#nrOPR{v-"TR˴k=8)x|YAz$1;ک͊IM{ )ylMi] b7}uɔ:蛔8%F(i *?=Uh)=@mmQdj$~*F[eljK15蝥Y@բ6;K>AFPk)C < 62/60es܂64Щ'mTxV5ˌƧw# h⻻_p6vBT *a-e|;u+IB*4]Ԃ/ƕ:yv@#~wTqJN|LE=tX Tv~El/|㎚DF@i 6 V@?eC'9Ki..o7:*#V nHgw,jpwE%A ~_7W`5/3!51'\%Z_!QFp]70a T-fV;{kW-z2H6HLyj?JR2XUC"{3Z$=Ê WEn_[ʥwHܿ zlF ӱ[/RNܴ/%.F&JzDTV֌a }|7 _n!3}a**斔͜G2T-)d zHD2u 6Ζ0"r/1 Ai!#^ǒ%1FU`=;F*]efc\9 α1|d 9)] tm;3 qwdщgKNiT/7PF,ص+;7ao7łλl~\rMTIPߏe|˖-}GGw㢪(/e8SOfi*:phO ;?]`Bű=@)AgTj?Hf DFqVa(esp o^u EQrN Vx71G@Q庄xE`*;ň$fwKRŽ^3Gt0tlH E{ KeFL}/Jqͩ)p A9u{[I #ˋrM'lz zWmV.YWA̙U_k?:.E$g`Ig8\&e , Òk,B{Ȝلk2K)%[7Įk$zT@T[o'dIޢ* U03`0Fܓ^T]0R)~7>}+G7P4 zP̿Qʝ>֒+%ū [r({%o[<#r{~YWr>f`e؞Ή4o7oRtK1':qf."HAՅKe⚿TIȞ,1RNq=9,sJAiאj&,M2,`wM,⋰5G7JϏpE]W|C8heV91Fǽ7[YPs]H*JdYwFYW;nq;ŀ0GvE.>{3s, iK9BYue `;9 \,횀zcs'9Mb (kmep,܋ÊLY90(YpG)Bq;`)UDG jܥ[_͹Ѝv޺FD`lW`ygq6O&hq,A;f]~ޔ6jk]t1ELZQz+>Pk@@:]fr:IۇmnCK|6?W JWo3V g1g} gFQJ)$qKhizL @)4s9nA:>4IH`7ǝX9@lȈ ;z}e=Ǵ! z&,K^_\B njYt50SU4կ +sӧLދ8Hy/Z^$#@WZ|b#*e:b.#v qk~ۖڰzVۉˈr8/ 2b(z`(s =2&KεUJp#6qǬ$FYw%"V>ʰjk6#갛 4Q5*>:PZ `_ n݆dC? Q'ak{{G9O< 0}aO=_~,"mtR<;&֊e"uХk6A/b~ Vw'N9>S[>X~=JKmלXk5qA3Y fno߰yHNz )&qNkA#'^A)fu#ZH>eJs%D ڊz;8F'dP#u"pTN{+gkUyWuӢg2$b]bQ<&oҡjZTJDY\( `Ss3(hjѡsh{->pՃTv <1UAәuHޣwU_e%)-0r89)]M]&?EqARfD 7#/@a2@7@[-Pu bc^-O돵O>_^DMױVF틅1غY7 M̡~7p L„v 2'R}<"mj$ hP؍*F =?\Ԫ~dkoUX]'wٳ'58ХuPO>^`#]Q+Q$Mp`/DZ fN˾pmu跖mNlUr;"I8bs='"7i5͚_V>\GqAsLحҝ9,㺔m3k.RWyVX$+C2'r zRi<[iUWX{֒XI}+=.̆As24It:G9Ñ f;&nL,CӸmInK0O#ّ A{ȳe |<ݳGJa#CD Usiq?=/LwVj1_gYEG 3rD Fwqd!-9\Ln 2'-F*|%*e$="_Q93'3aW'M#qm/{[$`Rc`jN˗Y]롕JRKrwN4VX!wnLQm8kݰkk3qmi1O-wj%nOa'MtwQST7 \X ?Egւ-33GPtcPrฤIi!ga |[["j0N+<loy-+޴ߑaj5߻Zs"gڪ&#l*}lbW~8\GRfkqoJ[z E|>F>C [.Bf\*>CB0_?@".z :3rV,eQ6A%FS3np#4s3Bz,% Bf=W{V*fe&aCf|Imp šSPdJ~[?&4#/X[YzJOHd?% 8y,j@v㜽í(k],u-q'o Ǐ<L3qBM*҉:3/*`Q2Ohm>‹.a1XfQ` UĩӮXp)~v\yLe(OɁSϺb/.] 4,đS^ Žo 4hu2LR ω`^IᔫY_7TqN t1*YR g҉XZH@>rn淯'qv1#mcr)g oWbo*QVYY9XMr٫?c[Ŷk 3_ޯ `1u1~Im{uپmuLP ޟwRq CHd,{1InM"Qz?T䦴r͔V>w&:Sz-QօWR#lg=VܸP/?κc ? hpcDSz໱C Dǡt=(mA'4Ē`a/t8O03*3i==uJd|PAjķn8(b6lbœS$q9O[rVޘVJ#RZ\ܼ\?Bw[PɹA(Z>,Ƅ/ @ps28z.ϻl#}lerV+=}!twS%*H,AԷΛjnb64FUkT̄q}>OSuC+$rd~"jnL֎Jcq8cФ=qbJԅAy 3%yl(dX ޷KbsvY9BqEinj9Bs #̵'* L8}MbZL93kJHLhs+>6]&\ WMn^[r@,xM">+lf>N 2..v1xzYѹe$'a_P"SO֐4r"DF8ⅪA{˔ɜ15KN"ؿ1j(m"]y=p4JZ^Z٪&IGQ5C373ƹofit؁BLէ'\ӈQGH+[ϒeUׄ>cl|D s߼zpۓqʭb{F U/\%1w,{k֕DSakpDWdcz 'N)Lx+ydkVFdҠգ,Bp}H.YA~ŻYw1 xҪ6Qy(HcSV#of2)G-?s)JEmM|;݁daw#OHŸ 衿ȔcByIėaأk2MQSd {؊/qǨ X9a rrFIo'T5twg9Z)@;_%=ЊpoS~YX.櫰5cy+7O?eP U354C 67>CJқoXb^M6fʗB_8nsI 8Ҵi:I>4|I}c<˹Ϳ3< >K:׋Ek҂6qBBr\R݉[=Y5|{:JE;~ܮ҉1[[ BPG0r](%5h8V>,LH9`yh қ/[Xʍ_TPf<5.kl]Ʋ"Iq7p T+2S8]?6Ft.6k;w )Vfr 0+VD,ySm:IlbETl_Rvh }:i"!!ŅJ?/fbwa:YRюU*T&mU_ m[k u{]Cи<K,;PeEeuuLDlDZ”ӌn`K1lEXR:DJy# #ՈP$rx}f|O)B6ۼ1O۩F/^\hEYw,׾>̫+9k֭TolȇVpJEmJQ庙 #up-"*BQ\])吤o.( V[WmbNk/Hr Gϐ->8†[!E >]bS-ăM~nX-R4_9m 6LM\ =l0 olVظ쥝[<΀+a 56_Y<[tt࿾~0kf߭ȧe=\q #ndnJ|mՕR< 5z1UPy:ܴ]{wW[#ԛ`I3cY >h?iˆ0ɳi@UUMﵸސJ'`=}~{j0 %B6N'؏Cg&yʬKs{If g"~HK,2Ȉ na<|X%^"L! 0,?s%L~U_;q~CgJo3cycbRѤ:z5, 5:-h-f_VȖLSY-娙_g5V.Ta!=_DX |KiQq#w4Q[aax `Y@r+71xlC+0{C)g*3VeAKvsbݲ0\i'b{8=@tݵlinI3c>ј} j| ]cLT^bA{+,ֲ#`FF.d92=Sw= CflI iz͙#L )!M6ys{+H=.M7Y|`q$/ƿ' @ڷNg}n<د#r.s}Btp%y%~Q'L25:Ӟ)hK{7*">WX{uv{ rAcC|/rANL*39%E톳|gʜ;{A..ty\q<@+C)B"Q=猹̠'R4໵db}+ TE֋,-J1ܔSOIBUn),~ -c&g-`oL2dNMoLϚ*RZs2ʣCWUaqlMUꜼ8&S?OcR;k#ee'a[0-D<&9 Z\D#*V4PKY5Vtx-nc9P.(_AFbS9|{?N~w9qN15jUC -v$HLđ~+'R㕙/)pxbAWŤ*mqCY] Xl3 o1Rda"t H:|jhn1aⶣV#/gvak,-W3z 3S.dd~ii="SSj”KkJ+8rq2J)Wuhଭ86Rƅvho }94-mӠ}[>Mh#;N#@"|5uB䌺 6 =maQ7 -GMLx,= rYYL3jdym@vCpP@(Jkq9{X 77i`q0G& [aXLqV)&9h+] ~H{,ީ+ E':*gQ9[f+ܾC8x |+Pku iX\sPaܼԾ:{qDn+B/]MUGRJ`(O1;q;W畂8)o%w #/oL&vRJ.+M \g'@$1o˸'CsS?vpehtJ'nS?,ҳK >"P~mc"GUUR 3|%<kH~Hf[b 3Ux鹆u/{akEؐlf: G~K >  >H qmȾgTQd] +_ etfaw6dy砚0|}<93~g~z^PX\h/16FxشGH& b. ?)HFZW ^jwIv,w} n\M7A;gC 0ɐ9>ML#^[n״xK@#==k+gϮi9DyXcl5V;3&Bҭ!7M:￵H!C{ࡒ;:5u/W؞4v6DեL>`Rr`#-ڥaDm򗒖6rb^Zr1C;%a .|L9?8OG >}Z:ӉK2}s7|вO&5Y0D"`s Rȣ6J+6!o430v~W'io n!x>!"Ŕ=5z#y_euE.+ /EGZhF|9a-,sp/{*SUЋ6/;n.(Jv3pȂ oU:>҅YRl4>*EH KfSsPzPci~8>0ܼr}[#a()l'3nen*BCM6Ljʍp$3T JwE'#@r}"}=9R#'u:-e7M/YEfcC+/_]2`):t"וj6+C|8 '#ѫj{e9y|ڧ*s*iDO ߦ n0j]iWe23ХJ8tXMYhspcitDD$k}Әnh rJIyXh\r`$a VHuSXX*3@%;cnkא $\+$3m{'4na`!=F\"}@j{|f;O "$! YV Y[$3v9x::,=Ftß>jz9+ %z\m1SI7A'lܳ~?{wkS߿1O88z3IeqƤگl68t__sLF['p/F{Yt_cQt)ɵzam"RK[A:DX] EfAK] K:J;}y-Ӭx?׃'揳& pXv?PD5ͤ,O-W{>gᚡaVp“ bVpU/#H,-v. z,yZm'iRٯ3Sdi%/.ڥ ,-Ad{wa rb3xFf̨O֙qEdWeIS ΩDOnj qUA7卻 }0q\r SUmǥĸxNyyB/@2DlZ(IΪNz(1֍N`CiBorZvч$Y?Mw."`W+U0G=й|ZŇ0܅1D۳4Q"F}[kDGyh6oodݛAU7{{9Pfx3,k4݀cBDHXCwXpDnanA%cu6 0\kr0'cn_g5n&|C%ɀOײ@yÝ d87e-&~]4ěm_ 7~@npa \ 5 t TZ#E6VKV>_gViJy!NnU3~2 ,h8lA)%Æ8)D>c} μ˲cD}t.گ[fɼ.nW.qY r=};k!Ӏ#vUb1*?!u02g@aְ(@lZo>,,NdAtŠ(:^&Οߞ`lǔfY!Y5k_[97Ar!\ɯY'AHL |tE5Ee t\^BcB+%bȇ ,Dc<+ iώx4ԿyTh+S QϯwyC~VjMܺ,8 )A\~R1 ATYOR>`:9r)0>p~3&Nv 5=,E>)"^UlK 0+=fy2-2ĈAh@p588B ӼFi]&A),#=fyyH 7"vHcCSW9VW^<ֶ?3%q᧤N0SKk^ m{~5\^23ks"36'J e)-.;hsRK|jJ+g9u/) 5c #xGv?83F s9M΄hy͊ "p XY")z>͍dt߬,@w6LZ ra:2 2hhѠ Ղ/h 3gn%fƌ;Mqs7'G#) BהÚIl[wi,^PbUuGWۓ:zC)+KrdR}p߸oP?dɁ#8m9ʨmJ}3ف9E(a_~Etǻ4]_S\3s+[1lY-e3t9?ʝ".d63Z[=ܺTYdVm?TRh`ArS.z}o16!it@"HȻ S%U<%-`I8xMƷ u9^BT~VE> ~ M],&FJ$N,/۔45_jynn}/Fs}.RZPDm][>< =Wb>%PO\(^sZN}z>jFIs( mN i\*R4;h-y;s{L ]j:zӠT'v41m.X%:vj<ϐ*]Y0)0Dy;%4F||Du3!K8dfn[MFxl;JƲz2_7yc8lc̭* E)zɟMREKMpKxkP$U|s^7蹄WxWVK) :U`%t.'qbCzȾP U8DzުI[0_}3nFwl0ZswWGۉIߕYM!Xb}iMyp>w[{Ν?;[%r4Hti}ekP}hT*YֿM!A[,9݅Bͮl(Xfz6m!rO$5zC%<(Uȧ2Q}}h-PP~3qwիOΕN7<|^J*htQ\k;nMq5\tc5J­;Y:Fn8)'8޴$-KוUaQ"dSJ!`֓=$g[sT\ڎƇs1ϟYq}?~qםYv&2Y_QR<2VpӼfK~;~z; Y=_ Ts"k`fRD"INwh>:~oe|}q[ȅ(h85F;@t/X&q0v1 3?,i^U`vo=2!Ep|te[qmEvȩ= ?\෪j$N}#H= @)Х)K9L-T\$Nꓻ'i.\Q#M|_5>g: E2D$:򭫷O5|$ꞗ.G#/A2)x>nr؁ݟh n8-)YnL~5S\c}6ͪ_pA',7w0/oMb7U*_jb8 %uy.h}H+}z1/+yY^Cİz.) 1m3׾Q5K jtն:T0J+7+Y@ZAŽƼEm"j={nyjj_1rbd]YE=cc:x߿c.q?F͉wJYvurpΌLbVu&l7#|fvo)iա>7d[l]~sݴ۬g.8WxԷUޥ/rc$5ޝD8ٌu(A P| 4Z,>X%۪:p%vF{Cāc~k7X+& =;haRO%壣cȹ15~S_Û^">yik~o,MpbXf LHz BV ^B64@^ kiɐ0$՜Youح4' /v  GdZ dĵY?kffɒқ`k2vŭr`Oyay7I&ϭW4`j ěE[LDS@%bg[&ڈׂ /6q}Tlt͜,lEwm):`tOo߾ ZrPjM=NXY> jV=OWQq?F~g -(k~V~`3/@yO tX*]Yџ:`Er^"tٯ7mr7 zh.EeN.6ҍd^;r]yW?Y0#-ɟvgXϵ;V؄E*n|P0ڜwXD@QJi>"Asn Ank;bӵ~PҦZp{1K+ c^Ik5?W{zT;u0T /E+2&DEF'oo6as_.|vB=s}HBvK߉JY!J4,#CdX#UX=}*Y(>wCWU5mm&!k%oy|4B'pʱurc=d<7Yg\cC#{Ǹvݠ#iq(<$t0GBD+jXJWc*E~U_w!nv.g`v$jKs?RFgxfeS<:7 Foe߁*N$DU¼İ#i,O9\D?G%4++s%jWa!⌧UIpvfOSfB1R.˖6N%23.D޶j,-Sl# ybZZUZrRi{hp6-3mOD.[?`BN# ^Wx *.zeG0zJS<\a-DRI{"njH r;;4_%/76 ^l)FF }_P/\MPTşuuɿVnqI{ӟ?1_{$e-F(&`¬29Hʎ5-J{I=zZ$ܩ!:FMi|`? ϫPeT;Uǫ0ĆocT_qzhQdɉDŽ&Fٳgk)/qe.0w^&0p㿻/@i 5OԶa>|s{kQa&! pVg@=mC7;'DN.q֔;Q ƭPUC|MwjG&V(t|hyUzUP}sY N('aCBZdg?֊8n*u$QK@9^ETQ`ދ/)I,ZBOvwJ|v(F:d&z0LFUZe#Z!>j>%7~b|8KZ'>v^$ӋU/ i;1~F;3bUU%jyIuo/hERs7ˎNIK}*g,'Tz^W\e.(”\`x\@惌{qFj?nf>i%&(F02<ǢʓO"PO/^nM {#@C+e\=xi^%\/{;GvRe}(V'`?_?깭wLç#dǽ0߼cMr{ jFsqJ!lBz8pus0Zξ1L2"/ZwfVA6x6>3++ t`ۮs%1޼]4c":T=!<e@XY=d;ׂTV!*02EXEK& a/55ۗr hR%EN_U˵lAJu/P~v{¾sͽhR/P-WD5C^OG>w6\̰H`kkuH0A4y^ˍn8/Hi3IT?za[zHє{00Le(޻WrǥG {ak|k1]S-AB F.U>J ]ʭW& ԶqoQ߲6igû#hڼ?u=VyUEn_iDzb[q240ط?8(_en37.XzzFK pp:h{/L fv$]RR=W:A= WvC?LdHs91h[k#AA֡ LZQɯYQREW*‐xѲ/ .PG.D]X]MV0b$WCZpEX*OFEVExj!u6,"JTV!2F.uv3Iz_sBP9!pn_l[|PMĿsVDjY)&)NȇX! *:d{q8 @k~q=mJ5nl3lSD19pX}dGԬ`T=o&/ %]>z,ed+x҄B|#5$Oz΍qr^?(Η7(>NcUkDxXT&q9\FT*=)eSAu6eہ4oD򩢁Ō~g.Ksӥ^0 ? G8ԔG{{}ylg[Li~ߨ2=JW,qE@j(Ǎ&EsW^]s[p3m[{P*TT[^'+=yAuN8`*(y&i#3 TŸhKF V faFQwTй$=ZYyWQqvh+c$On?@~3kiSfM2}7<ܠl d=k.Qo \_zoː`^r>AxM~7'jp{`,+9kfY>@ԉ- +J6郍sgKM]Ur?Lvaí*uЮ [f @bZ̼՟SM`O7pz{opPЧ9hꥬ,C󏶞VipFWҝS-|˅\ Y#1@ T6C0Shdz9n'1+eo!}vUc]iϺqڌY]CԍnҿIsֻ8"Sz Lս+\~[l}0 )_lvtZe _ Mb.,-^Y;{E=\ٕ3`^ (;+gD7!TLƀGjm'Y<{tEb[JE[Z,t.,mw1ugvW/fY+Wvd\_6 o_P:O VLݾHtꙓlmq]%>*HFvqNYex`FDE]Z*J aZ|-=FxA0]p]  7!HpP飏j8iX{o%dAs7Zx_UeL|D (6}k`v"B9{igjؘ3,ۘeݕ#~i ל_|S:}DQdgpֺȣs!}%L}xAwOB"*@jrJJɥ\!e8?{`ٜdP97oG<@<"1es"ɪPv; JT}nNx ؕKp|rۂkl̛)U^z wjPϋl;|fg0XEū+FA8@r]+ xU̿`HE~*? ?A3^= N1F d$)E 6Mb歚'ǫzC40gIy䟦2?_H|Č1N[4 %D4pW xi(Pp&\$Gh YϪk碇%Ҿ;:sD,w+?a.ٴ. ;iD>NPD`>g.NhNT5]-j/uE3M"4gHhdڢ0ؑ={.:ՙ^j4-Zœ͡u;7#01aBʳbKr\H.)8κpT9>Kc(+F h~8GSF]__ %Ɨs*h>~Bcuw'uަv'E)z. 3-JwPGc&onR#Ћ]#Źxf:or H]h8@H;9[{9eEz(xT[uF]UQP0`(s]n"3/!^2rm,0" N;Q ĕN}z0:lox'*]$X".3fҹL}`%e!=O?WnE_u违$&7:Ǟ HS,X zvv )W s'I;|o(#ʗ/ a.Ct/q5㤎$j`5 NQ~;e9JD B|Apu#&\dHrbB/]hI{wtǶDM,}t,WlJmFxhJͶѿ.ziCٖEEX&&&)p~<г_.NȒuzA=S&VzaKuiEy;,\H2)"@[ؤ22 FV"g$}THJ!WTK!tm7ҭ%|®Ҟ+DS(< fwu6Œeh4 t\FQ$#a+DU;L1!M,P'8Q9?\T 1h?;0:l6?GðV8V޽iֶ|~(6?{6?Z&^umhj;OtH{k3,{'3nP!~yQ楱*?X6& c20IX+F~ !xTcEq #kg\0 A&gkO>BtÒW,8jRQxhj+&P9$EMͺU u-AmR J΀PǟyvasMF]=4xsO@I0+䰿P<깯˳LUi3fCn?鞍k*]fXSLs9Hj3Ks#DB:L{p3,E ; j5܋B00z߮η2^9sBg4~Gj SEH]0CP/ /h2eWISrZ[-# W-{:_bJ Y.hkk:.ʙɲ(݉'A-q+_eB1NMxɫ"=(F㋰䌷30xfWhP.-/ƧGm5z fkMa,*ڡ;8+u,)/Mx9'D`{3|dQMmɭq9*t "'F JFT'f8kr{]TnI=;$+76KީrWn/SA`6qi#1sGm'F_Ow*t t?F%o|,JqN.|}s‘̐-6}~۱AS>f;b>#% =J$%}#/S=/RksO8zȩu]LVu(T7VT-Ap?طJVߏh{ñWVG#0BPN-R+|R:-@Rگ:8~OZ;#q|W ly]&ysjA=79r/ޠ{:MNH3ɞ mF;5(aHJYr#Vc6w>ax"cB@˥f vT.zs並#4IgsLO`Ƿ͉9mʅ?).=hZAe~ xWKZՒÍ.fRa3cı27P.`+I&=<1HLMZBC+ܹT,.)oeϢ*$  m;1jjh(lm`.? _U'ju.!/&^@oXo!V~{hS6J; K!1x4Ynw"tƱo]mݽ x2OEedjv pfvG30%wh>ps712HxX~2~~O\' PZnjd?d {YVc5yp*DB|ydGdn*0.HrTZ+c w '_B,/cJĽ<0pJʚ3W)A 5c<<PO侅sMHb:<=a_V,]T'8N24`rǾ͸$嵂[N4}~jZ뜔U*Pg{OҖw)#S`*8S֯W ˔0YEFׄ4 ܝ{bݫ|)ZN=,}NTNH-Uv0N>O<>O{,16S%IHEǤ#wѽP, F!?h`@I8sbr@2Ϡ,#jO>qgt aC7cLa pP_hx@#0*XYo:S[2eV Hɕ/{~=+kPQ5Gĩe-3.ZnBچ+u;؈*Bˏ f??" Rغ]rE+S!/`bEг7 A08Mmk)%Xo.8|gy=e8/OϢ8ÔPYk΁zoⴽ`ϻd؄WY?.AVx?>&!fǃ'X9|8223Q|XƻV˨SMit9YٙӛЋ+$ N X;F |i%HpCNk*Ő-/zezּKAA¥iCQ6 #èMTT/"ݻuVN#@ F^|cI}/xxG.(jjp ڿf5)qF#CMH8#$e&wx8M:CC#QEoc;m~aM D Zbd9䨕 E> L؂ci0rSE`?V%=CnS!Khx&/TTAQB<51VWT'_PߴzbH0L).tƩEE! Whz<)kkسMbkk7\H^?w[WI$ .?eKPv0hҺNf_X.3_:T xڨ?n2&kk k&._P]Uڥ)T"61b_*Ik>#RNZBY~\3J*=e҈8 KHٹCDd \-D M Plܚ҉VKDK:>Qc'Pe u2%ەIؽҩ @oQ]I)8ђ*;,_ 6  O[̕K_I"PD~hb[m,~ƽ.9R|Q}:D5y13aAuXÆiwai'M>(FRjk.sDP&^/j!ZH)tmJkIiD8b]tN&79LǨ~oG< Dח8V/?kn\j/CuYA ed'9?'eec|&BFl*Cb!m[ypJ=`r"7G:I.0c-oV>|_ST1ƨ?,> Al +fفB ~*A4}sX.3~=KH=qO}0I6ݻ|?݀G~ԺIlѮaoկ3!lXp _E`Q/~7Kz F.pR:b7`,Rr?F6 T8j[Ƿjhr>E1S3fP My?h#R㕚Ԕ] _קzY+GkKh8(ڧT$7XVN2`e|7u:n]}]fߜ 8*V O,Gƅ1^Q4wi#FS@ŸVOa_[ra7Օm7bhX3WA>}Qf^@rÇ:NR4zϪxƶ:Gz:4cI؎mZÈ)F9m!r#Lo8]?I0f|%5ߔ!b#nƪ=u>VE\_ AV_ViȣxXVNɞ,Ma ~.|&ADiwPnA,+sovmcyPEYP#Y=k5w9QVh0-TW߬"PtN47pW ;[ȣ!5ؠӝ6IQTr | s.z(Bmv[sP?}oߞ0(9/'V\IIB,y7FeKku)Kё&U y>l&lDN1Oߧ;ƝR˺d̝ӾA; uzıjNQJ]|ܴt/GW2Ւ޼~4ɴhü!}^m(p𴘟jGDQ'#_4 ]6ebA47TvS,\9xkh&PɗoZ63b2aRɣbC٧I..$pwe9o_kj5qYO\gT J&7S˚] 00ҫ._Mn^ks5=oF}5$JZ q=I?~sDLZ1v}vYYʖ*(<ܦe }wϝ8zX!9u;b>?,Wzu 7/`D@2NJ^:%Sa!×O0X!9rѯ:3 Sa["dAY}p_c_ǟݶ;Ю!ؚ5hƳӆPq+(\nFe(vwuQ2h'ɪ#y9V0}|pM{KHV&8ݼ_UG (^{N ]H0ibvFY_#Nkϡ]Atؘ{;NN*Z}uػ>ͲUj.1so$/PR(G\C_'iw;DH#l/ բdAfÕx_W8#evN8 M m/gD~^%Nkrr9\,_.Wu*z̸:viԏm˅cZ}\`*~֗02LŖ[gx rclk@0>QImV5cP ̻gufFt~-3ntZі -m@Ě(EMKl }k@6<>Z5! l]zj U\ *f1=.57]qTEuנߣ>4v 4S[o <\"rDZ{|Mm/^++[2D(G=wݮRh- ItGӭ} ]%4nRc0҅y!pkJ͍oZ5ۏp8Ӹ_=#lJ#ëϳO2<(?oYvd?x^&r;\2çtd@e1Wr/uE]{ \jIIxUxtK: +(_rglo>N@AH~3X^~tupW{S2D_7 ī-k,1w GE[G T K|q=@n{c۴6d/fp{_ׅqK**l^܉246n?+?U szr:A(| L һh^!SM%9y?LSS}`oGV l}H }Ì Ԭ@AE0*I7g˰p aE]ۍ|Z/]DEOH{=z!K YH|F!7!׹x@yq+uY !A8~=XH%AP`B&|h%O&:f9 \xhtgJ^ DC}҅"D7gn ۨQ>WXq.lHFk=i SNsTDnc|~*5zU;H]Wq[^ .dWƥ<Pxo7#34ߛrTCz|jZ"뛛A^yo_.'Q<7or %߲ە -^i#P=@ m0Z {`dAԉ@lގ>:Ԃw{mTdvmz }p_;:FkH'~t?sM0L[,#"3ה0UG13M?-ǂX1D%d$v(ݔTQ6SybV͎ײ"gG W5J;~W9r -s[a}@h#x:zȗRV~yfdd@\Lvg-F&sb,23Ү<D9w^d ;;qS*fvuޭXoIؤVO)!J.By0.o,ԋHM9^dD݉~-2 \R(F*+,"d|Nށ|_9&}@qQ9[ҘԺ/1f4$ZIq$ 4@`>n*eޙGUjF M3$W=0!ҳsdAV?/pRsvz_/.(IxxkK=!Ҏ.w)&Y4̔xKVҊjUyqrw5i/YO4\'9SEfr;A&eqpuaس{D[TLj#oBᚗWkjRi™iڛYރ4q*-aUIH&ob o˵\nG)G{So .UE&$4ڸ-ʃ)Y5 WJH%5sPCFvxinMC̜0J2XAWyƲC(tWbw+yfBWUH>VY?tJowWxv1%Em̋jFaV?+\}/88Ou  _ l,"͸viPK|A10TD{E&nuvola/128x128/devices/cdrom_mount.pngUT ]]APQux E|{<9eLl IgJY@a!BQtޥJ܌(UaJ) >?~{*ksldbP_kxl@ƺwv;dפ^A7'>~0pJ):<聗ॸmKʗ ']eF!؀z@@ AmoA0=CRa Иl`2â4"*J{{v|APL ; W[96)eFİ~ Ѐe-N LeIӞ/ Jf`<0ʌ(Hbϣ cӨwW鉁N'$+dHRPj45#ϟ 37 ϏyB%t{HΘ75p M` 24vK? 4BD;TQI"} U+1)C]C(,[X$D鵿r?#Gmb a>cyX_B]Sj?3PW[bM="wx1T*uA,'gQ';>m55[:!hT+/ׄ0Ut`bZx]^,Z'gy.pJR$MH||QDM!R V*$8AM2UH*ghgH5rr$|b ,=@̜ ySynpd|mM-,`f#ӗcRW $>VǤxP+D\t wvx@#²xl65$ͥBn'_bV8îJ(5f֘Ȩo:9? 㞫zbZ}8s3K3B˹,A{ZN*Z}T`w- 7>^> q†IY<6td >MI;۱o3GNsݝ]y|Q<mr ZࣂˏDw*KeDZp6/*w7&~嗓D:8U6T%ٲ•$dar 7ldאFÀ%SK҆fL1B-1Tک(ehFVS DVy'x p`f8G}=w HA<Z*񸴩$ɉhԝa,KG#O\ՃWLsGM*l?(e; J*csv]]9c [-k{d4qibA;BRRf NonK'r1~QxOo#6$DNVZ╰`֥ttNL#&<LN}D^k #'KR;4k`2d]Ț[DR&;$&h2UYN\LYقF|'X'tPă;pP_,}*f @k9%i*4@Qtyt s|ϟ(B!m4X &%;y/ʷߔ5h(i]s',k:)]^(=R䍊xv+ j.0*n!hEC=P{`e v|޲7=/pH]'6G?nߣ{JEcqQ׽' y^~OkIخ9$"BĻzƏ诸q4h$C5LaQsQH#ъ'vueXkUTnP6kۦx+ʰt<ֈ".ۗg,= -kSL ե"|Ϊ5ϔ E3K%k@~1Xcxxvv6g^Q7m=f-׈챭ëh0d^SerԞcTV60LyU %XqK$﷊X^'O?~},cƚo8 4 D VT۵192\G[;)oFfNFu^3@{}9y ?\-Zz5RZ&<*+ Sl[T&$WC#nrOPR{v-"TR˴k=8)x|YAz$1;ک͊IM{ )ylMi] b7}uɔ:蛔8%F(i *?=Uh)=@mmQdj$~*F[eljK15蝥Y@բ6;K>AFPk)C < 62/60es܂64Щ'mTxV5ˌƧw# h⻻_p6vBT *a-e|;u+IB*4]Ԃ/ƕ:yv@#~wTqJN|LE=tX Tv~El/|㎚DF@i 6 V@?eC'9Ki..o7:*#V nHgw,jpwE%A ~_7W`5/3!51'\%Z_!QFp]70a T-fV;{kW-z2H6HLyj?JR2XUC"{3Z$=Ê WEn_[ʥwHܿ zlF ӱ[/RNܴ/%.F&JzDTV֌a }|7 _n!3}a**斔͜G2T-)d zHD2u 6Ζ0"r/1 Ai!#^ǒ%1FU`=;F*]efc\9 α1|d 9)] tm;3 qwdщgKNiT/7PF,ص+;7ao7łλl~\rMTIPߏe|˖-}GGw㢪(/e8SOfi*:phO ;?]`Bű=@)AgTj?Hf DFqVa(esp o^u EQrN Vx71G@Q庄xE`*;ň$fwKRŽ^3Gt0tlH E{ KeFL}/Jqͩ)p A9u{[I #ˋrM'lz zWmV.YWA̙U_k?:.E$g`Ig8\&e , Òk,B{Ȝلk2K)%[7Įk$zT@T[o'dIޢ* U03`0Fܓ^T]0R)~7>}+G7P4 zP̿Qʝ>֒+%ū [r({%o[<#r{~YWr>f`e؞Ή4o7oRtK1':qf."HAՅKe⚿TIȞ,1RNq=9,sJAiאj&,M2,`wM,⋰5G7JϏpE]W|C8heV91Fǽ7[YPs]H*JdYwFYW;nq;ŀ0GvE.>{3s, iK9BYue `;9 \,횀zcs'9Mb (kmep,܋ÊLY90(YpG)Bq;`)UDG jܥ[_͹Ѝv޺FD`lW`ygq6O&hq,A;f]~ޔ6jk]t1ELZQz+>Pk@@:]fr:IۇmnCK|6?W JWo3V g1g} gFQJ)$qKhizL @)4s9nA:>4IH`7ǝX9@lȈ ;z}e=Ǵ! z&,K^_\B njYt50SU4կ +sӧLދ8Hy/Z^$#@WZ|b#*e:b.#v qk~ۖڰzVۉˈr8/ 2b(z`(s =2&KεUJp#6qǬ$FYw%"V>ʰjk6#갛 4Q5*>:PZ `_ n݆dC? Q'ak{{G9O< 0}aO=_~,"mtR<;&֊e"uХk6A/b~ Vw'N9>S[>X~=JKmלXk5qA3Y fno߰yHNz )&qNkA#'^A)fu#ZH>eJs%D ڊz;8F'dP#u"pTN{+gkUyWuӢg2$b]bQ<&oҡjZTJDY\( `Ss3(hjѡsh{->pՃTv <1UAәuHޣwU_e%)-0r89)]M]&?EqARfD 7#/@a2@7@[-Pu bc^-O돵O>_^DMױVF틅1غY7 M̡~7p L„v 2'R}<"mj$ hP؍*F =?\Ԫ~dkoUX]'wٳ'58ХuPO>^`#]Q+Q$Mp`/DZ fN˾pmu跖mNlUr;"I8bs='"7i5͚_V>\GqAsLحҝ9,㺔m3k.RWyVX$+C2'r zRi<[iUWX{֒XI}+=.̆As24It:G9Ñ f;&nL,CӸmInK0O#ّ A{ȳe |<ݳGJa#CD Usiq?=/LwVj1_gYEG 3rD Fwqd!-9\Ln 2'-F*|%*e$="_Q93'3aW'M#qm/{[$`Rc`jN˗Y]롕JRKrwN4VX!wnLQm8kݰkk3qmi1O-wj%nOa'MtwQST7 \X ?Egւ-33GPtcPrฤIi!ga |[["j0N+<loy-+޴ߑaj5߻Zs"gڪ&#l*}lbW~8\GRfkqoJ[z E|>F>C [.Bf\*>CB0_?@".z :3rV,eQ6A%FS3np#4s3Bz,% Bf=W{V*fe&aCf|Imp šSPdJ~[?&4#/X[YzJOHd?% 8y,j@v㜽í(k],u-q'o Ǐ<L3qBM*҉:3/*`Q2Ohm>‹.a1XfQ` UĩӮXp)~v\yLe(OɁSϺb/.] 4,đS^ Žo 4hu2LR ω`^IᔫY_7TqN t1*YR g҉XZH@>rn淯'qv1#mcr)g oWbo*QVYY9XMr٫?c[Ŷk 3_ޯ `1u1~Im{uپmuLP ޟwRq CHd,{1InM"Qz?T䦴r͔V>w&:Sz-QօWR#lg=VܸP/?κc ? hpcDSz໱C Dǡt=(mA'4Ē`a/t8O03*3i==uJd|PAjķn8(b6lbœS$q9O[rVޘVJ#RZ\ܼ\?Bw[PɹA(Z>,Ƅ/ @ps28z.ϻl#}lerV+=}!twS%*H,AԷΛjnb64FUkT̄q}>OSuC+$rd~"jnL֎Jcq8cФ=qbJԅAy 3%yl(dX ޷KbsvY9BqEinj9Bs #̵'* L8}MbZL93kJHLhs+>6]&\ WMn^[r@,xM">+lf>N 2..v1xzYѹe$'a_P"SO֐4r"DF8ⅪA{˔ɜ15KN"ؿ1j(m"]y=p4JZ^Z٪&IGQ5C373ƹofit؁BLէ'\ӈQGH+[ϒeUׄ>cl|D s߼zpۓqʭb{F U/\%1w,{k֕DSakpDWdcz 'N)Lx+ydkVFdҠգ,Bp}H.YA~ŻYw1 xҪ6Qy(HcSV#of2)G-?s)JEmM|;݁daw#OHŸ 衿ȔcByIėaأk2MQSd {؊/qǨ X9a rrFIo'T5twg9Z)@;_%=ЊpoS~YX.櫰5cy+7O?eP U354C 67>CJқoXb^M6fʗB_8nsI 8Ҵi:I>4|I}c<˹Ϳ3< >K:׋Ek҂6qBBr\R݉[=Y5|{:JE;~ܮ҉1[[ BPG0r](%5h8V>,LH9`yh қ/[Xʍ_TPf<5.kl]Ʋ"Iq7p T+2S8]?6Ft.6k;w )Vfr 0+VD,ySm:IlbETl_Rvh }:i"!!ŅJ?/fbwa:YRюU*T&mU_ m[k u{]Cи<K,;PeEeuuLDlDZ”ӌn`K1lEXR:DJy# #ՈP$rx}f|O)B6ۼ1O۩F/^\hEYw,׾>̫+9k֭TolȇVpJEmJQ庙 #up-"*BQ\])吤o.( V[WmbNk/Hr Gϐ->8†[!E >]bS-ăM~nX-R4_9m 6LM\ =l0 olVظ쥝[<΀+a 56_Y<[tt࿾~0kf߭ȧe=\q #ndnJ|mՕR< 5z1UPy:ܴ]{wW[#ԛ`I3cY >h?iˆ0ɳi@UUMﵸސJ'`=}~{j0 %B6N'؏Cg&yʬKs{If g"~HK,2Ȉ na<|X%^"L! 0,?s%L~U_;q~CgJo3cycbRѤ:z5, 5:-h-f_VȖLSY-娙_g5V.Ta!=_DX |KiQq#w4Q[aax `Y@r+71xlC+0{C)g*3VeAKvsbݲ0\i'b{8=@tݵlinI3c>ј} j| ]cLT^bA{+,ֲ#`FF.d92=Sw= CflI iz͙#L )!M6ys{+H=.M7Y|`q$/ƿ' @ڷNg}n<د#r.s}Btp%y%~Q'L25:Ӟ)hK{7*">WX{uv{ rAcC|/rANL*39%E톳|gʜ;{A..ty\q<@+C)B"Q=猹̠'R4໵db}+ TE֋,-J1ܔSOIBUn),~ -c&g-`oL2dNMoLϚ*RZs2ʣCWUaqlMUꜼ8&S?OcR;k#ee'a[0-D<&9 Z\D#*V4PKY5Vtx-nc9P.(_AFbS9|{?N~w9qN15jUC -v$HLđ~+'R㕙/)pxbAWŤ*mqCY] Xl3 o1Rda"t H:|jhn1aⶣV#/gvak,-W3z 3S.dd~ii="SSj”KkJ+8rq2J)Wuhଭ86Rƅvho }94-mӠ}[>Mh#;N#@"|5uB䌺 6 =maQ7 -GMLx,= rYYL3jdym@vCpP@(Jkq9{X 77i`q0G& [aXLqV)&9h+] ~H{,ީ+ E':*gQ9[f+ܾC8x |+Pku iX\sPaܼԾ:{qDn+B/]MUGRJ`(O1;q;W畂8)o%w #/oL&vRJ.+M \g'@$1o˸'CsS?vpehtJ'nS?,ҳK >"P~mc"GUUR 3|%<kH~Hf[b 3Ux鹆u/{akEؐlf: G~K >  >H qmȾgTQd] +_ etfaw6dy砚0|}<93~g~z^PX\h/16FxشGH& b. ?)HFZW ^jwIv,w} n\M7A;gC 0ɐ9>ML#^[n״xK@#==k+gϮi9DyXcl5V;3&Bҭ!7M:￵H!C{ࡒ;:5u/W؞4v6DեL>`Rr`#-ڥaDm򗒖6rb^Zr1C;%a .|L9?8OG >}Z:ӉK2}s7|вO&5Y0D"`s Rȣ6J+6!o430v~W'io n!x>!"Ŕ=5z#y_euE.+ /EGZhF|9a-,sp/{*SUЋ6/;n.(Jv3pȂ oU:>҅YRl4>*EH KfSsPzPci~8>0ܼr}[#a()l'3nen*BCM6Ljʍp$3T JwE'#@r}"}=9R#'u:-e7M/YEfcC+/_]2`):t"וj6+C|8 '#ѫj{e9y|ڧ*s*iDO ߦ n0j]iWe23ХJ8tXMYhspcitDD$k}Әnh rJIyXh\r`$a VHuSXX*3@%;cnkא $\+$3m{'4na`!=F\"}@j{|f;O "$! YV Y[$3v9x::,=Ftß>jz9+ %z\m1SI7A'lܳ~?{wkS߿1O88z3IeqƤگl68t__sLF['p/F{Yt_cQt)ɵzam"RK[A:DX] EfAK] K:J;}y-Ӭx?׃'揳& pXv?PD5ͤ,O-W{>gᚡaVp“ bVpU/#H,-v. z,yZm'iRٯ3Sdi%/.ڥ ,-Ad{wa rb3xFf̨O֙qEdWeIS ΩDOnj qUA7卻 }0q\r SUmǥĸxNyyB/@2DlZ(IΪNz(1֍N`CiBorZvч$Y?Mw."`W+U0G=й|ZŇ0܅1D۳4Q"F}[kDGyh6oodݛAU7{{9Pfx3,k4݀cBDHXCwXpDnanA%cu6 0\kr0'cn_g5n&|C%ɀOײ@yÝ d87e-&~]4ěm_ 7~@npa \ 5 t TZ#E6VKV>_gViJy!NnU3~2 ,h8lA)%Æ8)D>c} μ˲cD}t.گ[fɼ.nW.qY r=};k!Ӏ#Jy!$E4Ӷ>ڞkv~ݯTϽwiߢgC@!c)[])zO gO㑁'O:p'y HlǾ|g8(Z+,E; 'CH5]$ 5dDR$FU _"Rk6WzVI##*0Qs3y JC3()%a'۠P1x;75Eky#Vg&:Hk:N!vю-BLҥ#DR ؕ3벎&+ Hu/0)5Ez=Vl URg[J>d{m6BQz-[2Ȗ3[eG./0ELıu1?< a褰;eM~c2l\+N-;pح~+ژj F`hѲɱ{=EՋӆ{Qv(~T}q?*zU?eW=@|7#;L׆jWf~t"k# eTvjH~>i(Qݜm`Kq{Rzm!Cפwt9tKU b'޻;h.y>/LJat :u:4q$ `55DIm+{$x vՠd!OI546&]7=*o/Wj$86s}YТzԸpOZ$ϙNM6 J5sI9g]pԼ+mw`(k 3tecݯR3!.mr޾fS x07"␇ "r6M?YiV+ѦkNÞ@v~l(|CLWtjS0\!nBa 2| OMVu3,Q1z2w`\$jmO S9lXbir _WkhTTEh{Q5˥#_hshn @ ÎSǮyj(:jw"}aHꖊ1b6:%@={M ,&&6}i2U=ڋO] W JA})jޜ[C!Y+^a=Mn\Es]'5'((O]ʺ tJ>glfWoyx;9P7?S !ۯVVﶚiNF%<@c:H#G z^^MtkĮm>|kqDhVZ/x yENYKȬRGeiǼ's`Vچ "GⲞ/Zo-&3Ad߽Rth0rmcTUU>JRJC#c?D~z\-vIY0 /&!MPoW޲5 ejH 684!7iNuqQNCO~=0Pł#Sȩ*k&3()Rn͹slae7wmqΔfT̬z>7jjs*|1zIgCZ3OU)\;F\Q`?p@006KGڭ,7T@}*SXZkċb4E4.SmKY(Uڋ_WҼ҃A4$Y4C_Vz.:M )@̵mBa- W. gENA?önN5>ȅx> 閞A29jRsOBU.=hߞR]!先R|Ql2C䲽ސҕkN~oUОua,..C{ݠOi |8ZHǔ,e7bԊ3% (Y +, ቉kJXQ|;[ywqW(ٱ&A\KZJhM䄬eԭ D VZv Wɩx3C }zz-HqVZ@ګ{mUV \Uۭe#K4Yx&klS`IȖwWPǷ@Llk@[!jiVjj)'ukY%8](P -إfYZ2!np;brȿ>YNn2Zt`qlI׊ajJ&!=Q9$=jG)h|ڳ]`?ؖ%U6Pzޭ6%X#wGdէbGRB^۷ @pc9x]o,hp4r)Y&adP5G;Uqot7Z2Wu$$$1{[`+(@h@`YhO翐:mnZ"Ǣ>a*kAcq]ST+2(VumwH0P @s< sI  Իɶiqv]̡C%2'>|?2&{sSހf^H?UͧM'8?L!!ҧǎu}{Փ!/WMv8D2b>t+҄i+uCB,W h}XP\K[!_lvԈ:q:#N%^ma9wߖB&g*fR" #r% fWebs55H)K`]*4 4O?amyv:4K TKzuI.|w..9|0y%~}I?q ?| Hhc֣$6fl3>Lbg"ɿ=\a yD)M[cH]S< 0_%io+g߿%0A |vs01n"Z8f['z*ULxfSjCümDx'Xy'z!Y'GTy;E²TYT@_#7N2 Ex>Z$؎WGXR*Q٩(c}^ɥ\".j=FLv5lsmwє.AP ~/5ы*4~VoCLD6,5Wq\v1YXb{@r 吂RS|`|.ݑD)h % S־Jhl_`C7 MSnC=ULӾ_ney i.{q$Br]]]|zg̒z%p8ސXgF_QKqޛ[gQHFcѫ \r|eܘw $ Zr~dٳ!Krj d%3ne7vt\63Ri*޽}э1Y/2!vr=YAek |r~wm|'4g.|.4Ⰾ4ŀ1b7hA&gW$9&Gw:Mtt[nP'` {{58>ؑ%/œ)y d2 j4d2F>#+1,wP 3L$y_%S! lߚ&& M>!%_yމ7@ 4}_n(2GLKT(Xw=K"()DRRG~P>yK)ȝ! .xA)nxF#_5d O9.yiδap?2aB @-t`/UGF)ydϗoZW昁W2ݺBK%ȒF Dcz΢ l؜Ha\Q2@Ln#$A\3;2V4.ic;gB)q$I}pf &*iւ}Q{ 2gn_ڲ4AC՞r򦔘xpxGTuGL32V'ā& $-tUaLpQ|1qVNuIoomO<L%郶XQ!>~DŽ(K*Fl;#ImpU,7`FWFc$nOmC&(kG?~00z! +>ߍ#e)~1씄hZTA^8KUA/Ӓdfrܷم@/d糍{>o;QUöN8EAg%+j]*, cVKIL^I++)΃ )N-o$wqgGƗ{<7P$ Ǖ!(~R5jGprC/U}s%9\]}Z>bIXb%TނA1@WYID:yjj4 ,Tb:4SuP߼diWdOAUOm_9X u@iTLTX =@jt uÜ)l-/MM%=u};OY`ǎ;01K2k=#JF&CF^L6[*2B?o$AimF+F,$919,opH_o ۂ>s^,-v{xAٗ,14UXiuAuQŤ̥kC;-fqr4*pQ-dpH$ݰjP ג 4WJ#$:ZjOM;3PdU];b"V3ٗ$'[M-eOK5+rB,)2EXS>g*<7j[J:H $z\-CS@ƷUZՅڐ0++k1=oe;Myro1kM)V7p *ר1)Op%g|9>Lq#oIFx-@| v3L'+hryהA"##$ftd0g1k2!,6[u-啑TxޚMRk3^ń*vvsѯP:O Ysxr}0ɄD8Wm4@w,Z4sWyJf<^pJ˨B$#C:jT3%-}We @Ihh}o=ACēa &wgZK*9̘Oװ ȳtCRÜvC7ۇ-l?Pn(._İrJ\TSdtpVD{e>u[ƪ @OTVXnQΩz6Sm,Pn.运y RPB%(dB0D5TPLJQMsPiJ 9`6\1~}5t9)}|L9M { ,uӫʼnW9f`]Ex,<_4 B,x}Ht_5'XBsnk8pn!Hd"ݦ5 l)ЉMWpԚ7my"M>>(bgbʅ}}Sk(|^ ^v!?ߊd]T *ZMdb*umRSepq I(m67pZ<t7RhW??u#yPh\qZZ[JN_ LzdȟЖh22NL<:+&[LB}FA>"5f1iwItɻ-㤈Ai??,#⡇v\#VFz8@2xZ`͡Jt358K' * ,C6OI5R~g![5cmzlΏw|M%˱l|LopjWz&0njsO@aP†Թb%2(pcgXL?Bb+*h?%h e47 M TzG Β>љdu F) W w,zר.}b.4#+v[]ԣi*Sϛ AΚ{C$9gq8xѱW)SOY@Qܡ>ˋ[%3 M[4ajAvRڼ&Sy‹Zc7sW-ri;֍uw|%.~f}r}<`vu5+#Ѣ[ 8Ga$73,=oqPtirJG2Yn+xA7n G%]-"&og+Κࢿvlتn9A>|_Mox;AJ;yb(ư;:]K\BHмM YW6_E?Sjyl|nYȘbtmrlX${ =.P?h }eGUk+cZv!D¯!!$|^,Z}t!)N6AE=NK rU,蛒oA!̻ĺ ]nOV>~X$^˃̔ |ȅ3ՃWZ, &V@x&/ 4b>0EAxN<^`۸m[B"[׸kYYߕ^*H"ٷqF7WvʮͱBa WSAcEV 'eXͺMA]qEixvm`PUtfQ]r| czhGRЊrb֞U4Ea˛E3/R7]9Djz#ȿlY,vnW)M4ivdvLlc`=M ?kۮIV%el`A{k2|Nʌ3{EF.t?-}Wd#=dw~p2B8C4{1v >ͼ9yWc_SĻ/3g`Thq۬ s/e:(]+Τt`\,M]Xg0 *KْNƔ,V >Tc/n9F)T7%&GFD5]9TU,|MŽRmB.=M9O(!N0Kǿҧ65 X1z=ݖq R1MK͉2dU& _DÉ86TZ,wUBku\鷑Rb<#TBv~lScrʈ]7Qkydëu-M$$-ʋU9Mur/d?ߙA%cنwؽE " =]<b>TuȱJ}'x[ٱ ?bGD/YA.Gm0:c i]@hMm-_> |ii%+ 5+/`}a" L|Ty7*.$+SDM\ ?[r|b)* OKpP<[unY5cG?Dk be 7J; tYУ(we0wU'3]A EL@OGHc]1B|cA7lAع4~r K} s.Ț#T\o#(0"R\/)ǶFǼ~b x80)ՂU>rζq]3^E5_ag[#5v3*VTˤE?@/ ǎ6<ĪJ@O'8y_V;Pm =2 HS¦ze TfAvas9'$[1Ip<ھk)8 _$jupscxՙ 4͕j,tZdbr.;l\/@`0B Mk6swen_ycoݡÕ ~4m٭qFs}g1OlCXbB-?M+#SX1@hhlWA8۞o[f^~lsg]u̲e-?+5 ͵?SY2ZDn4+!~F?A"B"rXU[0:<9q}8{HF i,Zy/@;"DԆTȾ{E {~ҿ?ąVuieܺb .y2ZȤi"=X0We O :I1X _5f(L5Ѧ]ٹ 5巿Av5-$BvwN䍩!z?ۧt5j罟5?ihaLBoQJjF&YVrGBM oH K"ԡvV~ө( ‘%Moqqŕ'qcyK'/7\jûǶB9zϱ>]Pޱa;ڳwy30uҐlR듟Zuqj"!43޽ ?/͚ڮ_V/Pj*M=Ox^ʷW¢IOcRYTڵ0%&i_**!?+QU62'k ƞ?5Vqȿ[Sq^C3f?Zjm icR!b#ܭ%6EN]_ǺAc}/8vqz^UKQ29n~B=iB[ 54 [+HT++_ }ҮҫucrwhÛCO ޺l0$_$6YlFX}lSW"I7v³~i*OfVcߒU䭙f04}״6}y'*kߝ cGYߟ.W\i`  kGuu??$UTx>΢";QK'BL6Zd-{ss7f3Md\KP !Q` m?:nTBhď nւ9rH#K 'p4=xg;?Lt^jPfBSi]_3ddK0wV[nfa 龝`w:&;$ro(P]rZSUr`ZNk0EP_euYYF㓧l빳|\_??>G뚞:ֳЛs檢ȝYHȩsmgEp7A1 R]v`e $㓨qpatC~cےPm,qv>IIhYYd h߈֩i3,.Ԃ9b-tym"r8mCvd]^ޙp ƅ.] UFMxMsFQq`Kѱ2MMG^9fFo,c9]|#(4 ՞#O#'ċulːk9]R9[r>: &lMkP@nco|z~uiYRdm9<14aJ5%o[Z{ZYW_腵d״ā/;g%݀5g3G@|2wLw,8*6r w@~S7n(92KO,o5-Nє1=Bw)A oˋ?ZQo 4׈2@@p <i$mmtjw?z4P6z )y?B9~μf^QT뿱F|.s:Y4rqqvd "JMA. ThcphW~IA 0Sv@զb=j-7@;{.!Gv8c~ þoF Ł񙥥G%$0B߾o-QGPΚ0ۛrƯ1<Ȅ,&~hZEljD {7'V25w|nã;o"Cb0Q;[nuwڷ:M⁷w`BeJj҄ɫhN/d'S8p.f[=ټ4ѩ1]p{$g&:#nb9?oxՉCLk XttVM+;AIh{ onY%{xfAz*t}V ! R6KG'﷦hHI*͂k)oO|qx$!V1s ^;^=/PԩY+F~けXP5_gLo;g_.&$b~( qrɹk-22/jLVV ҏ}eY)]@S,lg7g>Ҏjd54[9xMq{4,!,tA.C5$Kb?$7;dy c K8lDlg,TC |XWBeʄ?Z3BI)V$!77TNUvmԴxQ\Eu0C{A@7lt}ipPD{{Vt+dZ "hu$."71D_Ղ˜e,FxlC^gPo:K.W{-j)wH9=y9Cdl0]Pꖕr~gV@l=!eBnT#cm<,_Z1E?GLME7,UCdY#8f{ {^ف6(f2Oh%Vu j@6+mOWUE-3HFtm{P1;[auiw-A;]ixnP>[7bEu)667J{Na>sEDa.iIn.Ed 9FL[4LZ^/m@I-;x+[iqΜy*^mG2QV `V;7(32'<s1Hu"FZ1B'*~gRˁ$vɯj#G`oBpz&WƮ+ R_i7Ԙq 0 d|YUi[%F JI.hl*#1;iO 93U*sMQF`ߵlPI"Bi R> zޞ{wp$PK|A110C`=>)nuvola/128x128/devices/cdwriter_mount.pngUT ]]APQux E{{u{bd*7KD.Jg(qߖsdhMp(<6zktxԩ#mkSg7u{)6(aѢ ``n Xo29]|\e[$FZ< hRm"݋k}c^p@0WlaN:S7r,勦 i"Q6[~cj);tmXԚ_G0xvaq!_0:gΉH{Fy4g b?-tsp(E4;zL}zt LJڻDhf5dh?<'R(pe*ÁhJWPzքD9n cK[X`_) Z4BX `ȸqxƏѪ`zS[hS B.sUr0J'{yi$BsːbѼ0%Ƣa\n|֜ K]qd_Kκd DP{~/и}]Me\K+ :w'Q䐊-+^#qHT HhӫX>' rw~1Oԟ {F$Cs}*>l- c_qA_ U8Ÿ"G>*hɆ;vV;gbk. j 332ҡnm{[{c&FIRrpp?g _}F/󥞨y^-ӀuE \ɷF C*o̰ߨ_+mK=J) ̒R }py2:8X)b#RAR ㄇC{n{ X W")X@7"o";2z:ؑ/(-QSL-EH~ PKѴr~kܾ U*BfIJA_zgGZ#%5(ŗ'~Ɇg|x+eF̟6|V^ļv.k9. _61<=n/%@&r*yjB^W%S.w.MLV ?3_@6R`Cr2BSs@nra?z7ѭ͸4te2@\J9 '7&v! 13ͭ/bWU_Z6d<\xfvIhjUe7BnΝd7nD=m0x|kK\<9r:;DOً\t@'Єۆ7[*[g'pfE;4b{E";?P/Q~Fať{X7ͥ 8v1bF!T1DOo!|%pa1Ȱ{;x| jc0Z|-< b٧xV)c݃v ]C{ޒ\^Zcc)QWȭ!*g'n(DʆGW듏.Wr+ X7/5n=ܖme0C{@ Jf2\|,o; Y+o[|C INwdm4heuH{ޟށb(pj?D佚{tmwyu#RӀ)OXe3c:^u{YV+DvQɲj\ jEFI?7blfM᨟ k׾پO9\{=ŠFa  nw6n0ʒ[.um' S[e<ٿ&xo!L+q)_zQ.Ѷ9ެ+`W`lSj[?]S(G9)+0@I/%'{`Qn /-wkFXA U؞&+8۵6Ruiym5yWD1GVۓP;I^:TO2@%r0Ækx;Î~aºvGQHŽ vO`^m+vW䭋Ğod6rAA8!%lJ/v>1G;B["uC!wӆs7%hp2BoLccP! (f3rqoުkvWQ-Gy”QM[ʗٻgb՘oIx,^Ho7[Goq re+N`'opbh@/N<L+3mh  |:YK&g^jcE`S!}f10-ˤ*dW}< 5~a&dQ1h,?+]T36+oh,aB(^3.w] ލMLXon 8K\ 譎em^n f'OV[hÝQ]]80Y&M5hg!-ىT.شoyG&6jC?MVHx$Hs~za ӳ5TPRT;_H#5 ?Xb(c|z9\vOy/=}d(F %~uN_ܞ-!/C $CԶkg_ek,ҸeçAwx3ؓ: >GAv9SZjvJ[54]=##d$ʗ&.f}*+ѤiRw"فg76b+^^3w+C%cPvc4.mkʝ43u,HzMb$Q(xNDL#L|׮<}k(I NFܺWYC,\zACm7Zi$Bm= 1 f)OMw>,/Ve\Ư#ڴ1)u'j5QcG (TŒ~ .*- (\FI:':@Ev0qJrj7K'=>W8F vJneh/wٺa6SgfZ4L=LjkgJmϛB*й 3 ͅ+eYkqEѵqv2NfKЍGq :$hIKJ3&ֈyè]b qn.F0&dvĬܪD>v̾?M R h%b/m TP\=8'Qf7bvOZ\٦Ob,n̉ȆɼnEmlk1D)v1Dz>Z% Bf0]K_n%}1ګrk-UYD4͌v!IJ-RmI̗# A0D(@%y2{>i &zQ[$3zWw(ù/\h1rѩ(en-cj5}B}0_Bw^˗=9Jru.ޕsQi=lR0dV-s0嵣/#X٫K8*ӫx& bFDuFhY:}i/PQFw!n%d+?Gt'FbB}=_TTf^`ð(dV͂ r 2'&I:X WO} --ďf @̚ݿ TXH6 0Q!΄$Vɲwam.\V~fᜍ٢<s ߍ&OotO:]ƹph(lf" ,w;10ƑV>Q|@<ܭ8sˀkQ _"LC#j&=̗͉@ˇ=ػ8Tۗ禁J {Slh%+PA{',_EfOui[,.V2I%!V+_uw1CiɐV{Gп ^c}?"иM4t5rkx*]XVNT;znV 6_|mݽuNmi̎~ m~׿Tv-}8*BFb[\ϳ0p!WTtYAª2/ɼXBEtIY?s?Qk ZރŞ.0hWHncJsAVH/}} X0CJ{ xf^N 7"oVN"$勾| lpGM| 6X;F>nyϺ}uT`EKrR<\\>`fWۦ2XuNdױLC"KL>Nr[=& ;P5`ϔ>7NW6FYr8AӓPD~DpkQ`T&Ψ V襹AKd_С]gUmU]r}Zw1)s.`XhDFŦ.6] J֨Y;LN'kDƠ"'%HGX"A=X'pBr}ȀHyɗ0d=PEd)s!|4V.5廀©MUsSbl7>;ǃzzl53Muqhr2t76кqм łQ!{EgWs(م6AcYE܇=ۥ6WSoG ‚O,qD'78Ҩr_  I.aiP.p ׿Rb-*ڽωR[58 c*D`#e&kSE3-Z;ГMmD3ref2694HF<ҁ|EqiPJx]mf.LÕ,: WYٴUʤTlt+.M])><}ca3q87qL7|ioeڹo9ǣ5*(*KU-s_Dc3w>uZ܋̎|I^̪z`>%?T[jڰ w֍]RM!xj~$F7-mO?NuB("S빭Vx=wh> N"<~.4|>ަl8#t$) ,,dhԈ~Dr\5>+@@2^aŃ_~fyZ8W=`%vX6&j w3a^T٠-5|'}|uAz¶#:?{&KE*%hSM*pPn_Au+ ̹L\FɀnIq5֊.>n׼~amR5Jף˱ xnߙfMWgmEIv|vrM~sO15H: 9?B^Ӊ۬YQУ(ܗuur*’Lȕqǘ֓D'[ J|:ku\!SHJ{ Nzr\<|'i='|g9b8)ER?s Jpu]_=Ym[$co4r웒ь? ngT~W0˿}9*v ۾ WD \q<ꥰ\m46JSA49,0ƾ3imBg[ƍI+MyHݻKItBARZcJL᷿A&kr1k?Ok7"H!WE#TG~QGw3kABޅ8t*MtQ^PߍxIP,K茉ڡeAVÆN%䚑kkxq0F$S;Jwr^ks_~)JG \'n^)dR2sqz).+j¦M =uЊs(qh j:!H-X4>/ DfR*0GIG'ư}ҏv!8r/_d8$]%Cs.&@h&"7O(@{ JP3[Kc6a[[:18b m؇=n>5kgf^]2E$lԳ^8]lf*:ߗUH4QBofΰ5.f@Ӱӓs)flntyؙWHori x{5۩Qpѭ.p*4 9^)o[ɶuYC]vf԰fq<+ 3zsu{gz(XQwޕh2@j-n7 B# bL.Ng|a|tSB[4xguh4d} =iO?Qho3\*hŃ~MdZ$E\Rdg&A-02!99=G_\}58I#~K1rLg,{#)ma04  TgZ‹)3D/0"I8,M*5W3Xt{625C/-P/2Tg"LzZ^/sa\ &;Qf+!:oߞv UtxZƿ-e7y{jRjae{0=="OJ]/y#i 7|Gi0.Ww5:D[o]AUD̩U/mɨ8+oĿ}6{;'WDu/$-o)+iܹp,Rt47ƂV!\Bx]g[m!ayw`,@0#,B2ܿu7O=B1S/`+,7(ᒓM[@+ӻ@+pz dm)V?@Qe.M֐?"#\3v8 Cp4z+z:#A np`$>q ,h !ʥ eMJOplrU'|5S6^ O *Oc"˾}|D:YdaC}??[_ތcEVר _Ww ; HbsN)!CC&s8_j)cvɣ$"qh b:P-X~1ymCiʴJ_a/3Ε\}՟ X*I 3+xg90nc*խ9? hpiA&ŸMuՒ]S_–hx$w%J~x?@-\O4s{EgQ8K%L{;R/$s-*?4 z3`P][qD +Aw/יXa7e8x"Cox.`֯hZdU0Ш@݆Ҋ$Y%CSEaWF {wJ&hZ0T&Ciο+q'xuה7~n6&doO/㵺 B]vϿsDc+h1}gd=0OA\Er߆t׃Bż 1,t,G*lT\Vl<{ˠoIrL900qkP8QKӼN0z.}95qO%wri!R4ծ(8254l]G`#X [p >Xw@Q9%Kᰈm0<2-`3@Uz=v.Vrb Pwj]]ME+oS(cU/-=QV8C i+7gRVЅf0Hcv'6?haR&.=^r=[u7c%g0&wrG%N11j9rllߦœުECZVԯIat5@ 0f{R ?'\D_g3FIT%oK.خ=8U;X8gWQx8n=zG"<ۧXZBޚaްE= SJpỳP,3‡J9韂?ʊKᛲ&;se"-db5M@v$?e.H4˞K Dwp6&zAʲL[7h (P9T<_|JݓY=@s #iy/WK/xVHbٷc؝r)d1IADܙO"0so|!Ök U}uk )?C>6j^h 2άIGaM#qou*njkmq*By7n9GrHݏxx$ȧ0p"BO^R%1FX5#YW3mycYv:%~]O~㼲6os20)zpȅڨ p}Mׇ~nbAmsbeCذwl? ,*yVI?NhPg6+]>Oj{ʝ@5s/ոHaae`ߝSzhuX j"R cc&g}9bMꈝoVwr/L; k.}I3JiI%j~pz#ԽM^о,ijLu?AW}=Y,(yU=.Z\6hħ򱜋d2C zP ?$sΓi;vzgX {4eԣ`9u;iПkEk-":1t H^d, 5<O[!FuQ.FTt3Of(m8y,Fk_-AwB&m?or7rA]bUR^~AfТ)_Ѽ4P E>s2t5#\>֝a覾?R5(ZA[ӯkVjxO'׳̾/9\`Q>0O[4-/37oA}==Vl "GP/Qpqs-ԭRA,s /-,/2:yVY+'Tz 18+M 6 ׈'2=k*XJ=y')Y{ `#fb2с:ZPK|A13⎭,{-+nuvola/128x128/devices/cdwriter_unmount.pngUT ~]]APQux zgTS[I!zR!b"JE -@)R.B (҂((-tx72FrF~k9Of~ 1%1$v:y oi!CR/w]D? "O{]j #Nă_|{5\db~ pDp\dP%h9$+"%(>@S ({,믓 k=?B48Fi)lX_ %YY5"opUs{>X.yIX1 +)2 ykQh4B׬eafKH )P2&4bY ʖ)`/\i!ˎ0##epCӦvIlMj6{)y46 YdaVz!@>BB]CySd¢I.KAM7^d'zgǞfOCDER ;;GCQz[5Z(P L9R<Փ=y*_AgW&l5 [juta:>42:?0;Fʹ <9^pžȼ>ḽi]X,dOmY::a)WT(#/ܴHXZx-Og;!QH>A2C"m55UC-0D,ea,R]8aL 6%UgA s?T1h;&$Zx[MM ŸT R,|+y8 KACӏ!g\{S >8KQx/bfU֙fz26ط-Vf~Nt4z ANI3ځ,,|lCRHsoH2){S qt.1 0/q5H < n@qT tjŴ(FoVX\Y68ܸКM fhg`ﳅ4EQ  ?_wj@:ꯗL|zGܼ<8&zhsi?bpWؓc2ku ^qniAeҎ\q#kfJFBUrCִOv8hp4MaՔWtfhFjl^u-35~ Ġ./C3R qaU]c֚xfYme0|1;p&oV%̪^xv7qVMi(,6ƀO ʌ8 #X3F7OP*3ĂVbxx0;]v5!޵@W\鹪uP3Q T3TdrGX ^l<^WT|~:0e*;c*(F G~1<+^ROC5/~Qd= IT}4%Lxu=ʟzWfS3m.B_?OC4qޏaDeNF%Rf҆4SMA6RX|.pL {i~@bi5j$Z;Ӣ άHL#<@͵?aE}3ohhַFNm+0` 3r4}jJ.RnPşa{}V-ݮ jc  NWg4I?aOh?=2a.S~ȩ]wOԫW;"kL92x>l 5s v/r  !|⥤h10P] z%RtSo>Ѧe'4-#0\1坼)k?h4 ޭf8EwN3>:U*p6=UrSEhBrTX@G PNߕā;"3ˆO\?"ohI=꿛{B~&+vȺMo#'Cb$u"_s[2$P\Q˫j&T!sʟ(>^jəC-`Er$<I}oBm` X p`čb";)_ Jմpo{ ZD P1}1/%"nRhXI:8x.7wM< 9:0q ?Sqꌾy/|*09(zXK b2~첌QT-q…8#@4В5uFݐ )7N^1p@wȑX%Lr -Ár Tb!wʉ=X%:ӕ 7eif#!_ ڈΆBۢ{ѷ '3 A|߬1b9%:pTT[\3Nxp%Yod\. w{i#EZVR>$iBTHQFgM^i.+" Wqʷb': .B'ѤxʛAr QW{*DM= *x o+WiZVk#OJX+{}A%{ zୖ)yG鸭MP _6 dA;1G[{zʌxMS-jakۦQ"aJba(GdppēpG,WrN-tPJ6: fuf @T7{SdRp?dsjJP/d;|TEX`{~xXZ\Ƨ;'aRD֬1mHfQq؄% t:<;?˜gg3twOC楁o8p ,X`~2?')!8–wJyN[< :OMH8A ~'piFg#~9r^KQ qso0}WD ÒiGjϥjA4x87Wo:fVΧta&%\vmΣǼ.⃈'}ҬK /Vo\z80+vbEL3!95;RD^oy]+͢"K TOb0j^A,ðU s]5%k)3X"aQۨzRkuK"EG? 7Qb5ѢϷHUJI(zDh>Q/gDž^ f'tFr5uDÜ /f(AҶ+5H,.@9`zj/H#_ZQ`5 ( 0o M*;C ƤFVSkdl$/mMv `Na TPͫ> g̴3+R]ggNFG!{ָe"p,.k א_'1`%`zb8Nv8/^-/tJm{ mT{-R|tLCՀn̤LK*&0оj&zә孔8R19µΩ*_cԋA U /{"?蛮x/َ_a5iF%o3 o(2u[I]s9MKMnJv͢_s"ؘQԽ]'T-F.Ԙ&l.( h~yB/ 1'@H{myf͚遲 jR?" `|(zuClu4'"trͻ.fٖb/ !'\47:{ڤfo#aG@IBrPij# SBf|';-n:{@nӈw}Μԡ6HuoU"B=0Ul*NlV&'o(:i9#AolgdR̓V&i66Fܡ3ӤEŷ1G}D%Kj"@0,E b3)OE$@Lhmm޲gdN▯[;Qff{'sAI_)廡VRZqJ:wJ !+҇,bosD*22SYjYN0IT | mwG?rՅf_.%cBÐCqY룠}#V U4՜Q77s&fWt44Y}jYqy/(9jMM#EtugɄ7fBp儫! #AT fJ邖`'GqB#3=v)穁HЊIh S8 DŽt"Bon7mSPNmFfCш hl@/Ao{aCQw]c::u`r?\EZ/65+&LƟ^3 =N1#iзq $2W8G4_Kamq`A*WQ%lƇy?>>!.@o^"?= 7$Hi /ՏS.MDRS| 9Y;~EwHV= |JxnTm\)4-̈́ģR>$b5/ "d ].qQ̐;ꅣ>2%8lq7+^&>>UW]E~Aq \x#7=e bg }N?=p86Z8$"6^lЕ. ꧦHh+ͨYf |01VpML~~h8L,{rl!UFa3.|'sr|J{N~M<9fz BTdr DD)V䇅PoW$K3=S:űCy60\9l_'n կJ! i1풂/H5W6 3E҈Qu(xy(M0RO$O(~k^>9o{_irA.P Y*K-Xkм>-q;8 nvF0 Ocźzr)<(cif_Ϸ.ù~f6XQESWrVyd?imu@FdRoIALFyXY˄먑7vL#3Zc ΏuZΪz3-FK`|c-&!jU BbGѕ ݥ5=`DCzVÍ2*m{$ Ubo뷡gu'14_L[kuNz zCG]A\Y2ˣ&B8.ުTbP,WTkI9A+桿vu~Ǹ"9~|Fh^k03DǏ m JCٷ~5dپNoo~*U-O1IHs?9j3ﲈ]=%ٌ%#3$+BrQDk)[b/FI3}}HG|wP$6'UN Ӂ|,Ifu8U~76Z:};G u!W!sOkg7šB !MjԇΠ'Q$T3f42mA^B QK̄ ^}L^yQ˸w!y~sܳg͘9&ܕf;V{I9iAC,nGM ƹHfG :r%yAU:MrL .> B;P̶]Uxc{#3U12;"FC86OLdaӘ"8!m`FIA"oV8EdlJd ӢoaArH~8!HJwče&"X =ȓԩ4Jy@B%+@1l:` b}/$y+wm&2mך<"H,SaDjӄ5w~~܀ظub\*6`x53!&p#s3ݣȮ_5oFa2L)6~;# `Oʖ`\v T osUyw8zO7t6sgC<{:/zE:X7^ҾCǒK,/Гն!ZC<>s]c6T4" bdu@Pڐ-r'\&g]o-(I =vj<6ă\-¶gUGRuRN3L"Dޔy_D}61 k`9YI[x6Ro}99j3zel>-}`_Ϫ;I%p۱:JuZ|vЬmFs!]tMBf;t?)~]n= *"k37W&9rl{4\^*,#y}I6{Rio-{Q@.zq{œ2ׯCHɰCPjOƋt^0Z\o|cy|f:{@{;trwT]Tc"'ymw ef]lbEȝK@NS k364aFMhqzc>Mag)i^KݾB;"`eon/+,]K vFK1xX?+$Ouf<֘ZB&<~8/*]Pa:Tކ~ 98*NzNS2zQ(U`r+DHD0(; 1htzW乹ckϧb5RϢv]͙ Yv?R4g¼=6NvK 9/NlL7%Cѽ4k2|or- 5t.ٔ'xi2?+K2x;| oc3܀ @+嬠7ԋ3;ӓzB*z4UU.4igF(?U+O<>Iv,EIcx^Ob .{|xl#v={e|5,W.Т+ /T_ B0_7`%<)ŕ->ALI| T x5y/XW+/y!k뢟b&ds#ӹWj&l 1a%ےf6{&_sq [$-ݿCwU+)MjҒ&~&I xI$e ȤNgWUWXIJy3OB?Qǎ)W wS p~Hٷ>b)UyӖ9h604=;L@Zc-SР,s̎O63:/fpe>n[pӻ U=Ip`W-;BOvt 9n.MgJo<нPGAC @ҫ'BäM\Dw'}w@Srx]ZmP7/'\a< ѫqLٗ.Ȋu&nBRQ*B) c/1 (?V vka 88okr>FEZt-g1XLls-Vv|MhKJ'{~Wyav;t Lc~*AXFܓAI!^lYq<4y8p£z;͖1TWCar!mL!ԄJ*#a8 !*ЦB<z݅n"уl| t勼Ѿfqc7mny~=4 N 'whON0HRXt+c.ŢPRj[=CtFʍ~bt92w"ͭ2I.RO >Cp=|?/Dɂ]ٖ & u\dlG+Z\&6()ѝe>6J;t#:x:]l/k-A'Z-cg|7,+wkQhmm/07AfFSVobf(=fU8O5l`:҃X<oQulj-k"ڷrT, }7mTiF}g#ǓƲRuPTa8-O7k DuNºpW Ev `Z@tX)ݩV*G +vfEH˝*5haT:"qxQtekT!N%9|.pNq#@T2,~@د=c"zL[zmz‡mFl Ђyh ex6vsu3`qpk6@iBSٚ.D~I<ې>`?'g8\a:A5Ҋy)Ϙ,xIv_سA'jhtpXPDخs'ބ9LO7Ꞹ$Mq5Q΢vP "8j<9;rpR3T04(S,MCCuv]A F@0a} vIYqqbd何418.KN<ԎСdRϿۢ_3+߆{ԙ{lHE[`YqE:HQf+9VS7qnpnd% rGk%Y=LJE։SY'VCZlOEs58qA5dP"N5P(  OCU`3*h,5hyk[!8L3Af !@wz;*aB/t'Zn6^)-;yMTr)IwϠ$s2s%QHבDtG+)D_1tt(F;zxn'0v_}U35IgFdMy2~˷JR *:ʻc-[Z }k"c/F'oL77ZHOҘe,RohʽI"ѡ64RQJ8=XOS0ًLu*z4v@L &Ey~lG͇2rv9>?ݏW |@iI4h<>vOkv+ ~#Nqw/ F%3io9x^i[;K{.̘-3qf|hx}IƝ!#+%㟾,uZQr X |c=hIsfK|cpLRSz{yG{ȃGMbb>c+VqHmk\SC!++X,E&-Ҩ^Űu10? ӿ5YOJ']lmK4Q}!؜3ҦΈ_Vw36B죨Lj>`\sނكm~#]&#J+ z"vIŘ!g9NrE>l-b`$ ۋ+R~tv 7VM*`(57~Z-{x`cdz#𞓼ĖTu׭8u&`tq7%.|߹JTy55`[zh|/ݛ9V5_mݘ!%0qV=xZYo;zh= ܎UZڏ!/7) cFeΉ(CF7 IK!o)y@wOg|}T*#=SYp'Mc2%EOX0o1gѠu]]E:ud~DҰ]Xb]g4M2T"@'c&to6I{㰼_ffӟEX}ZƂDW$zD&ɘ t='Ά-li5`S' drM)wpe @?tI.)GV4d@ F|Zd=/yt:<#V }oH6g;uZ Q7X_|Eץ} K]wnMT^M|\U~ſ+% 9~bRg\ ?^,HaX6فp3Z -KGOD8!}wIr5#k:xA_'Q"Bws(m؍S޻^Y#p-8|,= b>1{.1ix(yc@p8i Sюˡ\_2Ln&K`Ž)$+Z<C{<+o%丨V@;n V7<4n>-_ rm% + 4ʟ((Iei[B[בMl]({+Hqv >_~N.Li v*Vuv$Y_ E [ ~lEQEjle˲n8Y;)us/DӸT2I ٵ=g#*jwb"SNr.8'aFkAac55ہVbmD)|5hX@'\!䉂 X\u/@rO:j!bρiu656A5>kdW[9u~E. zs=]jBM,kْ?vh';9$fyz*&#ⲵv H:qCPe$T5շ|LEHqטU;l M8߀z;xKȵ!9/ w! m"ݠ>pp8GcOwxlɔ̕1q<"M;ε}'TndCɨJIIB|9zAkzR2E ?`,>.(ۄ Frǭm(2QdIr+}c߉?L aJZZ ɹ@juӑ.ey2p?m6kߞܮm=^έg[t6O9} LL$ӄXzu5ގy'@KM(Y vuܡm~.Xt;`JvUdf_;CQ=SEVcۅ8ʯF<[űdkbM(uGJ{ N\/x{?oB#+w}8^$lY#}Hluld??m[aVҍ/7PZӨ0 EUC~[=7a!y{+Ǯ~tY}>t%g&֑5~4;fށ!ՊcYղ";z6gh2Ԁ,flV-zԪ;k7@3G|PDӮ9_3 Źqu hIɠ(]HY-?lo >/uZsg/cQJ 2c"xϘU#"vF /;Xmǻ jU߁Et}퍖e}ߋifok,yofu8^V.qc3^b?3* n6La64fQ_/@Pc>қlO:s1sqbgTcM'%^Ԇ <_?)4h>% 7@ܕ+k=ӔhfytƿNr^Xoy=~׮y mu_ EQ%==}412^b6'eh)$Vqr@룊5!ƪn_ H=dk32I}%Y$ G% g>0TQ›"&*9N/Na릎 OeҖ5c+h AŞ*F,(ya:n; )Г'nJjF$!2i݌O>v.a?{P9Wƺ*2<MqZJK̔-h|@x.j "&ia0y} % d̊P4.AVSUUCZG > B ר8Kb6SKDŽUj0Z^XƋ" +m~$N [*$zt|ET!9G5*%}>7_A[Lqamʨ]ZMDpr)}ۤmIh_2=ijfb7^sR; ٷ*.&2&Nna;c]q!8=}O{Y Շ僘.lʘ[ /H+tm m筹&z.ըUh{q"?O>)M6P |CGa2%G4Y2JkM:ǎswY RMŸ'&>KȪBy˃=oN ,y誑D=sT,_{]J.|Y9.fzO9c%(dCk/V1N.q-WMe Uy} Λ0~lW51fd~2|DQ '=Q7oOeMUIk(d]~81\ఔNCC::AJ%ѝN] W{R:~"2,/y $*dۦx^$'H m0tK9k2/rOtV@2b [qzvX/5sPGLGvQfZf$PJ{B&j_%bmmă B?//԰^n$""F!}z!wX7%@T,s`tI! 3f&m-?kDLN%w =?Ȥ8i5i_8\QtB 2TOyÉ,laHi? n<ϐgnX 6(`QxdA!<~k(#c3{9v.]f@]~ټ gyh=fTpݴI s8`]U_hm0)&7%K\ 8VPQg/eոZʋLLZWHIt_8&R`,](hq6}:?(/[xQ}_JxCCoЇsN*/"JHʷyJ[?o@)6oꋛ+si-mf30~˯Bso_M>@1W_A-1;yȳ# pSQ]Rq2PܓB]eRIK~W۷6jOWsjt0DSHϔ.#ty ڡhB "΄nV2DW*~rSWHnV[{g2>7XNŎmNrUL? _ỻ.n 9%]bjge0?2qLMOo,lvz75Ϊ%s9B& &Ae_k׮E>VfնS(Ի"4$dҰiyw}mϠsd(\ (_;i(Bv0-Rw+̷Og$sf"[҆(ɯ VuI G\]']1s1)=)[E.!1}i穟Ӌw]vMe%u>_٣PF5]@A<-p ~?BIdrr- jhbbncύi(Fs Z{6=fSփjCgfb\[m1fسz6YW[m{w K[>T(}ӳv`~BvT?u]}pfg2;[xlI9CfÁTj*CzЏ~PBy{7rF! =z%+BM_ ܝweb{ 2)1u&+MuMo)tj;rCapeI`RR霯%=pwAX_ kW&goöt3͝о6zBF+rwWmuf˺V>` h\Hy_ta| hiYW:W6دp4QuP[|} ?^7 .s5A,?%ޏy!~^$K?P/mZ?s/kd_j@kS6Zg,q/(J'X{0Hׇö '?/lI@S.tk)z?^Yx4$E|c>UqtbClw&zzA31,Mg@Ρ4F;>;q<xe1'eDy/S ٞUm| 丸N4_P_sy,B#g(,OK֒;lۃhtot?mA,Rp7ȕ H+^Xܒ$_`U?FCNSk >ca"^VwqA HvV`e4sfM~;)|+Am+Zػ }eG0ৡbi&NcxPׇKN^!#DX`hOhCꔗz=*p/9鷢@J`Yr>~2t{` VnZ-jp$wC*K?zk)o YNXxJx!dp !k*#o/Eh 4g -g?].zW'mŽ{Atb+fR8q+u?Y55mШT .uȭSOSbqHuI[ULT-ʲh[K7$.O|W7֛OoF]ZjeƫD f=I_ :Lqk X՞H<Hx5kKэr I} VvbE\mt{_7^|s%ř4tB&5-g pyu | Y Y=MiA>h]=Ftlj߼,,N*A_Ynxi,/ޝfT'o_Yo%>9ybWV/ڊ"PZTJt6M|x'14I0 K1|c)*)>vE1VR6иіKs8 _ aU99yN)C/cӮ}Qc7{1G4JU]e+-k"r 6NVlZW7$  ነi t,ZNA4]H!vԄnFjNJxn1ssxQKiH"WC۫ SI}?Zxv92N7_f̗r Y/M4# C}._s+PPh]coKm+o]l)Gũc>:C$Gp;4"ur$ m-5h"F dOL XKdb`7C렍JwJQ\I beb>)[;5$ԟ~S/3RDa\ Ph ;(2TyssMPM˟t{ ?YzE6Zy54'ٳ9a$xߔyK֙wP+qL9ȍY9޾7{:&|UqM,1s2[18SVcCR3RbbUߡl^|%Y\Pv i<.*c+ofʬ֦oK+dOimrn) H ;O]UL v_'^KbO3ٴ" 1)c+fenb%p0Sp#,0xC8m vX'5-S,$ +7]sX&u=$ٔK M4&Pn=QB,GTZ tT,MoZG m eGɉ֢s6:}1\G>|A1T߿ݴbaK 䓃#.,jsWt4z'03H ,59ө8C*2WC==Nr6V"+o̽\`U*b8;wS,J^n+8^XIO/h;?,N/C],Ov/o\4xr937^y'퐷{ǢJq8(FΖY~o|T ؗoId%!UhC,YlrUf+vGq2U*%_88}(/t.y:LFЎ;B}M ytYJry-\b $yF086^uXΕ-͎+t#w3v\:#_:}45Op|qRH<Oxpq^'1Y/9f)3/z>c].߿'^;n(<@VlE@}RsNNH$2T"S3 '+4Wfur{x BY\g̸d]H<휡>Cҡ//.|YwLw'ZI=ԋ >NjHQ( 1CHٳ8 g2B*}PЃCˡ+A& XEoe[6z5%^ŮghjjyA`ҬU+s^dϱ?Nû"ؿ SS 6wϔg*A˒Y U9'6`޶};;۬ps㯻y-]] O̜;o*d O$;_U46_bS5t&͐Tߎ9XPʃLWO]HO*z~#!ջ"y0\1dn^U$΋&V9=8%Nxx˜ѫ{496wRng,T{d"i/DF>ѯ \$8`ZCL gqk:soDV*}ȅeB) uտ׬Z?<|B_1 _hQw9kw NT\' C?omRZ!2ϟ ?AwݾkF"Kx˯ֹ ُPZ~ lA ^IC*WXXBvb-8 Gܪk0(Y us:/@Q"g-Sо!T:85g)8VӸ쭑;SSTׂ |/ʴAHO -߰p[m؜oX )rtjŕ@F,;;ml"@׽Uytk.߷=UF8N}ȨU\3ڇObzdy.Wb4R(85jR/9 X [H :6M:IhO ]@P\۽ub^F % 7EAVOKZK=Blh|]o{ R֌d$)c؝/+{Y?]lJ&nQWC7^M;5ݩh%@H}ۭ&zx2(K2k)ے r Gyg# UIMc }# 9W0RY B6L~C</Y[I4G!ID`p4 A= uԿyWϓo~$ /95i~ շΟ@_}V Tsn %"pVB71Lf;'%c6uH&Q<8Jꞕ= ^"*rM8Y)dYI`N~+5pH֟iQ=9s+o_P/u;JK}nN VDtXK-^ܘ!];2tf#WC J? u? o2JkE;Pc\5j'I])=2dz}dR`ٙVrr_gyX#;KO4&> {)/⠏&l~m:m񪬄vtj] )ΟrQ|+Zfci"i%\ar<8qW)9?`k *}+1KȁOs&zr4JYm=mU)TǢX / ?zLU-o%nn0^Rޯ+;d$C#y8>f`Kk^?I%Th+zWV OYQdc_ 7Z?-kV:T,ݥʵ]_YV"v$Ph8%{K'PWUOeaIprֿ%2IB bJ㺹vJ7=烌=;x[1 +xJ~ȃ<5Hbaj_C1,|yIi];J7WF)Ǒ# # $4RTÔjmzIzO`zLFS5@|6l,<,O6޺&Xg#["amhga׏msN,NWt"f~;F)%Nc֬bO"O opb# ?hwrr}Y^J8MYYɮR_p[a=p憩41=-hAi2SA9Z KXo9/s (=2W`et͹e)qXk}iiSZ2(i6ij ;6iکPK'lϺqeBI~SW#{Z$#G I7s>PK? ;C+xWgZX)F]j7((?%d VaTEvLm?$]q>Dž2_bugBg]BHCd{# xbS9|1n#$#qkt*~Cn>bOymso!4gaf_逭q?)ʝU*Ԟ#@9̉ѭ0lIU̩ xunHݱ$6w8[\b~~›:+Xwތ-I`๫5ӁMR /~WfmJb &'"_U_rDbZmDHUQ٣TF6*ۃᇐ@}:yU9>oYrƔ ^qKY:0ޭNyf H|G6P{HNh?˕y93wwOYTpK6-Fla#6".?M;VKy5峲k"[!NQΑt)PC^8dLʂժT3}# V[9>c]O[8Aory/Pг xtxnD7bm\bev#FwG/w)u-V>anظs)`e{_A}akWJwJ>-X;`@tQP'x Ӿ(I|Yo 1wm8wjSyùNMɼ|]X_uX<Ĺo,aM 3RЪެ/b|U~]LB]ڹǚVS} 3k&oyp{NŻ/davcנ-cKd=C 0y P3 G{5VOccmИe|9\5] 4!k030hjiwx ࿍⪞ಳof|[ @݁% ݝ1 u,WsQ00o ,y>$FX yo ɑY[{{>oȯKC,Ix{tk.PƱ 2SO̫WW\n3w_l!SFqt  OS=`EڦM ::<1o8ӥ97_\$ܖ!yL,;n-G]ɀ?=Ǽ38)骀! |j֡?g.ӈtjog擓NM=xpVϘgONY3ndntp)]tޓ+͖(F)^h~g!0xarqf$O:mu(Wk? N S\@f""<Y+; ߚDjT?o4J )rD:ƔZdΩ%%[ W\ZB QH1<|~ÑZetYlrw*%nh(D0+=b/AKZG,Z436V/+dy)rUU3;}Ω$dT 2_`'B-1=T, sU7b)#/+TOٲ{~[~5 WĚ6X3H(37LuA۞UD=)T/VUsmQ"k  qLB|؈cz#jL&Mp"AFK?V74/%(v3ܩȽi\\!ؕ6/R`乇~ Ǩ!SԕCIl ]S~ ]>8EMt+_,?cޟқ KÌJX4lv 1,+/e1zDx&qByEiLhm@VVr]d@r٦`Ώ2 BXѷbF&{RK`2qwjԀj9s9FMeS.S"Rh .˧: %"2m:%+66'w^$al*tҘR9['nħ}vZ @U#&ZMsnǥ:w"R( A = @C s m1I v+}O}*"7:g#rn7RPK|A1Mi ?@&nuvola/128x128/devices/dvd_unmount.pngUT t]]APQux {7{w1w[\rĘr-PH76UB(ei]uEƄ\;!s Elg;;=_xwil@nJ))m 4-?>Ãc() ?PkYJpg %@xבt(XLk-Z+|̕B [% 5@>MQ2#Q@Ϗ~X\HgU"37wo9j]jNR@,39X["axml@ux^̼tO%AtMu ;Pm{ s;nvM!4;/Xn^Pcm~Ueւ_Ւ[}@6COX)n>JU%9Z{)EHAP,.vm: ڟ焗wf:Kr9ÚZyPNLn6j2fuU4SLPKGt,eR9b;뷅͟{{rUO /$ys1;e8**ޙx9~ˌwVL]L,K;02RÀtrsswGbbI#da_9t5߇l(Cƃ H=[xчZ88Ѭ6Q5]ۉ  V-x~TnZ8ɜgC-]'mpJ㿸k[Y\4L%W~3Z|etxq@=0 9簊IP} 1M4Hj'ԡef,]x,7NŊtypL@z r 謖RYY!CM^.X;X90 j,@XnW3?Y\oA 2QBƝq!SM2"Lgf8( rrXhljul X=v?n7m{AP 85bo4? d)}uE!lrI>LƈR[.Pxmp*)CJ#eܧL,;ٖM,NMUق_&s@BL獥`Քe7LqɁgD5z:'JF?M*2Az7d" ٿ6|wl~B:9,l52`Bv̈Uf;v2 x\h!Iي݂FSh5u 6=TC+9Ԙ.kY"k7st>X 򪦩Z4v|K5h{?ӉdWVSھLqԁf*Sv4ԇ?5-IHS"xdA ۳9]_" %E~Rۂ7P:6FGN,Gew.l/J0r)Vd.l"i3Y'ORprfP>}l|kDtpG簷kHYP6&_4 1h0_w#%XDmV(|1X-[Vfh8uLb__88S8f>in]30(b#ŝhYs5Q`r.V:3<[ߘ(^ à]MM,ETQnwICȟ2Kt{խte.>8 {ZOWM}񝬓q+luO7pRx~k^f ft"./6^R$L(x gT(xl.:l` :USvc4'd$SA>@5d;yR$R~JQgݓJvӐ^m蔙r^O#ٖ0E[y,̣3,/.u7T%{NM$~U@T+(7]w!(Up{O~m{2<\5pb>c(6U1<T@蠓;䄅 QBNy٢쓐v"%նOd/?BD<#xqQ+/0? m.͓ v?ɡQHږ Z38Z @{C#3"nt7` mĹ_d^Kc~Q̠_A $!C-:gݙEڢ b93> G9g=IbSS z+?ϞEfcP#x\a ,*~1 'ϝj׬lDyAy,;i"썤k8ؙsc9:oFџIH??; ݙq|J/P_ G":K˝Ry5ZRԓE{`BG{X`W&JF?ر* r^wY{CڹlI.^#ӝ: APQeԸ؟; mDd}a4ڭE?D7^IL2Ups{Q6{j--IEѺyE-wAfS[Z-*UUSyn.1:J0sf7كPex(21T(`@JKߕg\L^LMDоp=&Y㾋{MnLetgR}nQqŚ(EhnOy_Gl߂#K-h|4I9߄T6`E5S,Px1l2E7 ~ &*kOeȜ@iֹ% $%Z0?y{'{6#A$]I͸9; T,_qmDYb\ׁ@>T-V"ve>PFzf94MAb4Xrӗy@v[=j u'?>D4p5CYKRm5k(qk^z|ՙpYyCH`$sKf H*[)aK]-HHb9oA aYYVhi9[bDbq*3NjSz?ro7CS dKowʠ5[p[ϠAP~$o/z7}|f;&4W%#QhN`'~^P;Y_zuY\Z{lRuXxoRJ]m!&et#c"fȂ+ѭe}%a M+ pTߗR /A0s׫}Wμ~a˶NÛQ5C%[Du _S;%} Ei cT8)L-aAk%'6_"}-5sɞ5#zփ 3^t;b8̺]N2!.0h׼5|f{IX48׏B>E_KjB0cX-pgf0'糌s cMHؿ aw/%ޔ e2{::w>Qf3sO M ]oަg]y|a1;3&Wa ̸|iYov2w95{ifQ>XYFq47<`QR@2yP'+G$(GwCb٪z2:z⬕1/&oZzmҭ!P7 ԐFq}y$/:d~F<<CQboBԽMU[拿(|A\bSO 7)[Im4 t>m+Rܙ?'/a~[o_ł3^q6eY0*3?R,S@Y7bPœ^o~\'E[~ǗRK佰ӖM&څTUL2-M7gyd0<#2#y5 !6tt{=h2l0^CBrDǘ0of|܃8Tt!O{"Xaʐk,NWmMAj^~ fy\ZR%|,B~*MڌyHW{mk ?ɧ̿rG\Dn6 =~^s eӣP[1(.4K]X& lo&7d[WRX5b]ȍEӌċP[>KrPDꑥY-m{\җbj`@ڸ,ZLmȟ1l2kDҜMgdSi dNJ*)g%%kF3zI <ճ3X}x1\Nz5ۍ9G4ɺR{}ikt?>2 N:*]bq=RX;ij:0[`F{ЍGfޢl;>i}-=J|̚~|د=g[-Nm!ȱCxs#%oۉkmdW,>mu]1rE !Jۏ%c}Ȑ4=.uFKAYC2Haf|E'\YGoChP<# x`݂e5\گܩ .'\ (.!ϼkv-&N>sonn'7329uěfXK?/9K-7=o;ă4_,i"qDCOB[kB.1+nEl4Gv'j3cbl;!W 9dՁ(].R@GqgcZȲ6K[R<!gE:\ |u^Sɔ_1YB`@#7|V hq ɻz?L*|ޔq_ʞ=EJ`N=Dj+FJ')~iŽ](u[ƫW/餃]" X;39(cEw- &T7c٪QC\] Ehjzfhcb:"fa WU cڌB{nY ׫uk?+Y;=nmڶM ps^d"M#ix1NLZ3/^7RU/0̋mL'2mN#xE2鶻S1j"!߉<{B a͕slm rIC3|$џB&[CoL)iҝOPF뾵jUeZ XhЛ?6=nI)?ٽgIʹ..^ҞMB1cL);VaK;7zC[T Le}Gļ$ 0W@a{#._blP Q#\;7XPe'8ٗ[}Ǵ9!ѓL}_ӝa?# Dz̩?f!R& O b3j3"vՏ~9F/^΅<eh+f$D } _n ^Gr SS]&.9?.%1a9D%%) k9M*OX?L }ntlDjZ[.@R.h}[X:Rw6;T߶֡y̳x-Z2WJ u4]~HKU|H3!KorюO:gD?/]]{@Y?3mX8M> n47CsK ֞~8MBCNvr#uQCC F\aKDܽ{v U~9S:ˑD/sivbd5WT~&GLj36{䳹7&HwV< bn&>{>J-B4͖G89M$dAYr Z $}PIi3藯.qC7%[KY`cm~;{I# ӳ7DS<5 ;]QB?ۚ;cgr)U ]HP$0`*oxb xhauS-lv@aMthC66/dΓ4cFCݻi2*Eþߦ&H,m/jٯstkj!j.XcTJXƚxPǪ.7^}~h?S> Foc}GhûN{Fn$+q/Q>+BJrrumŐ8s{ - 94Zg=WP/ p4#Mv|41|7E,ZH"N ?vu\3^GnCH,Ӏ 4!icZ*+IQ:@ gT{{\}Ou 8w&6ʹn\A|DF:4mԕPbTOGARIUͫ3=^<3Qd"M 8ڸvnjF̵1B*7W&ʉή4 h%Zȩ ZZC)tGm ;Dz,s\!9>~7j.Χ=d\Z+knܛbbG]'=߼YE'/E/ $dZ0x0M5umh8 Gx<^s` 9$Ƽ2طnb~ %BG,}?)ڝ }{ejc1,v>N7Fx$uHqWP%)eH $&>q G3$`ڗI4΁hD`2H痒`h;סcT+AU3zzڒ\MM#"m?,]jB7wz!RAqsd(G _Y7f Phϩ@#+ʷ (qTlF*5\^ƨԡ#~Jhz_+.PDo;z8vnՖ:jrY- eu+@]75+m 4,'3,;7Xop6<gFMEH%8Z_3?Ֆ. W4=iJ L9wD'l1 Ih]ENeii9YV[Z>;!/\C8TZgk2:PlJ "CGveoc WWvhwKb# YwLff2?!gmQ}H2ZTڔ_lKE U>666&N DxLOƖyuۆG-g 6edqen <z?~kvGTqf.sO ڂwDg^X<F>>cs1jR)EI%7 ZN@>5kX'ډ^X,^c UKYOϏ=o 'upWܜ35ډiP@tTB >ڟ2xJ|ΆRW6vJ)' |[A$TI#/&6F%Y93}X93sM @n6Ia6ə=-.(oWd EnR9}^m2#8xlT'6+&n[ܪ<{]rhS4E+юA;W[l)n.9{А BSp8_"[xzVqCg|C6z"@춭➇Ζ`9a@(z C`@M/{de{3֝Qө;f~ݛQxɜwa =GѣfR ;ɐܼNzK=+3W8u֪"[_RaM/G e^ߙ0U>pҩ. 3e@SFtf kQٍ6.ƙ hi4=O͈*#x.Б`wsKswI{k*BI@My H ;leG<nyXl5F,`sf݃JlXq7v(/Xi"BqUnv?jtɳ I}-ۥ&]S3&dUZ»GICZ 0'F 5ֵR7^ݔǓNM,pܷhE)5?cPMa._  L錊 (̸jELlKi`X\D9;Nw@n2SP"S]xm}zqbV"v߰AϵlUߝ>O9ugY댥 )͏<90$&NnUg=rDLw+cT TE yO4is9W) W8~!hN4 $=$Ͳ#\mʤtb88Z h`|9;ԿdѸ5J5p 3[f .9oI)zpy;V 5ajWHm ,g|`9nS8Z[I0.M_CAI˃E?Ms1ߊuvf.Jtq .i(\ك4\DӺ_Hu򏥭_uwRN +Uq^YwyUc LK}LwnOio"vT@'ynEM19 CkGwU=*Ք\ ;G ({IIAMz8/;V1nلrPi;A'_^dmIzqQ%g0t̮T"ar*x;?<3ridZ9ʂC^d[|vI8:O'JDqF,\[}a9D8IN<MV[*~йyY3e2̓^SD}19r0o[!H;"[|zwE^(_U>33FA;i=V!^ bCrDqq^YR7`)'sm^D'ijêsXcx9oo,CVM'ޣS=QciW.)GiB#{wO5\]k?N-:u3C~_ Dޱ׿b%0xß.AɅBStu_6@xDt YcߋzS)Hx}e :LAp`U0Kѕl0j﹖mۛ? ]v1j~QiDTn;E^x&߶X[^XP x^yJV Us'[]|.uw##wGh~[qnjJJu3r U뵩K\~7!V>Nf"k`~\uv(5A3ȈGuسCⳋ#IIvW.dP'og޻CFvA~'حU-ñ3 t;gMv&mKa pUz>X"*Er;7lh6cS)G)@ұBشEYJ;6/=7%AB|?ݽ>ʥ?:I0h$$ o-/LJjkur{jNi Zo/o`} S`?No|VBE(*89+^Zћy]ipJvj ] #?!3*P~If ^4NmԆǟ<+{x0 TXv̌0Jal?hUEUS7|&%H:?|.|\zPW=V|q<#$?/ψhxLb Q\3o#]oAk]9'\s^~ԭ4}`bja%Dߦ=~]vM.0E_XHio}+/JG`tb S(ZFŎ/B>hɉZƆ;|v5-5ܸ ..]*:5HI/oP:id_* qjJ|C kO-V/aGE>-9xEʇ&.<~٢L0%DXȐ!c!?ӫ/\l }3\ۏ_-ab֖ p]b=r27*N+,88XŁě+qC-7gJl-b+*+WƄ36 3SB<SΏ~);c@?59q׵Ie\4-w j;DŽW2~@iN2=|i5 8yz_A}qJ>IڑFsz"wܾ@w,d>AE䔕5G:fBz-KF-a2n;^+yS@6~@Kȥ:/vz<%cQPzT70LSRx\V59w% yS[{5[dmn7pQ&1v"F_K|;#/7%8)\NT[wk8ƵxbԺԍqo=/oݖp~ó]O6<["j~Q=5qs$a 2 h{OgVAf`3ڭ2]GY.ONn%:g h˓YЮDV#`v`]5 ԋOu y\"bXڇlW\L5m i3/s| hD̠z $N*Hz`nN"lRBl! FHOר3$WU+wxQ#pM;;Z8u4 ꜖ҹ.*wڊXF 71߭\_vu2MJůw6t1d*#?xJ*xJ&,ds.u2{Phob$Ao>4ki׷*۴ :k4HN"0t&snV-Uaft1)q6~o<@~f!-c}xAoUWĉE¶Y*ME6THv4'yUKWV^-VOBR UO2O`.m>Z-c\=׍YZSA~Q.~ cW?$\ʊ zH~~RҦEڇ8S`rn0BCF=7C9flGoIgHX(_@#&F ?@M8Φc`@Urb^b2@NZnpNtzaC\UjݺH$G+qw[>7q}0`pZ8h/DXSށsj+( J0'K.͑ ]N`:lEm{f{;vP=Q^C kcX v#غĄձvڄRifYpkXƶ+Pa?Ą!c:B[⮌.{k$R j8s{<={퍭Atr_D$ExWq,a|JE{Ȓ˞}8 H{ww|PK|A1if+P`-.$nuvola/128x128/devices/hdd_mount.pngUT p]]APQux ??x#c؜6gɡmΝճJ$L3 !#RYuV)cDJ)3/e{\~^o3Vhii4w ~X+Y}AGsVrs/x? ߻DN_+E460w+-579_:7I. zIr#3\$ ͅNi^ĺ0G|q S4^bO)8"X Y)sXmνX [ւ뻭ʷL:\jAbetwc 4泗6AMFrj\*?,,h"O=ASf:+@= ń A*Z >C1iJ2e)Z5={2{hzzd-c+VdTUUms&jXy*O=y@"UZ:4´Z04L>b{(lJxMDRH >:;_qUbV>, >?+/>{NꉭD1Hi°YySOc-V-ɨqWI܇T4LQqKgc A[ῃ ƅpWm-n3xhW~ӟR$Y5[bJ_$^ȠZwi *C/%u8}6(;3,zJG1דb89jpmU*"q㋖;eOe͊\TU&NKH uDnho ~2T$֠&+$h`l9gneY]gٰJVVU^{|Y^1ˀZcl,̞nu&1xuË+${iM5/pى{}DgSWPssS47mQ:ZvYآ &=<Y0ê𞾓eL3q9G{O6rɬkEm5bwDFD)F50Z &Rm%LkJWp^J2^.u3ĠQ bP@ n\Hb?nr ReDi 7;´c`^ElG2s? `X,—B%꘢DH 9F0)m~S5UcEF_1<筐CNa_heHc.oC.mP1 ?#HVVtIAsBz-җޜMH?k(Ӛ)3,iQ}'6aA/Zq?wc~}P~p?>X/8Ϭi7ױ.:*69Մ/v^|xO1KItm"*`]|rGFWgf|\Ca[j_R don.hjmmb_ x]Ĺ6x<'px[q7z򼅈%>7#ִ.%ZH]a,O;Q+ ɖ,{OWaU'a{ :U5M D[Lo T/́|` `Lb>ӉXXM'Ʉ|3,.&i~Dqg2#Cur"Uni_-Eobgsf{"2J]5zs:KRXákQ@k~rUC'Ë'Q,?jG(q@,jn^3_558e!wbs-5~;GYFFVԬ <AE;740IB݆9|H>M녃4Y v_0\ȀpVM닻p8լDը[.FRVOM/QJ j,aZZ>@fiݴ|#"rD{$V⚬7,+^>(YOhdH5J͓7?,%EmjO\vZ1ФP~e Uo+ 㐡nOjWJTw[r2-F[ٮ;}󵵅ҒҮ/u GLOP,w7Biz)Q \[ŬJg2&*T}*~^r&qqIe&j1NHjvYO%p%^>tiί>u40h6ɿވr# wwGq1n<%>]H HYZ?=n;2~U#ωVhoi#=3;L#Q<&|klDsbđ6?5^eآnaZxSW߽DzߘYGl)VmRҧI9z!Rl)WcavV \[T}FX6fNJʵQ7NQR +JO5 u ֊h˵蝍8<"ޞ"!!%n,JNhYKcfh.Zqg22>$<"!KMUUNLs82 >WL^.4Zx=[ 3g%!MsJ9it&Z7"VgȒy֔_I5K)罎6IC28B|^VZʢ_R٦ۈu 5Ҹp)xCsBObngcbR $ Xjj2%huό74#5MdoMiE5=i;}0piUL+ +J1%#Fi BbeUc0֔{>-zCe˗HJj=A;TOY+>0&|ƨ:27labzכ \bM>:*F%8[::ov.fK1 % tIN*"u::z^ܫމGE72`)˚7K+Pٳh[1:Q L9#,G]P#[=7'; νMwp{rO|L)9f>-āŏWji=ԣn:h]?ƍ^nוL-G?PNcjLz_?[ 3/7KFmHc:i]3uEm0oXCP7M&*}+ *=u t?«ܞ|UשV0%C2H?O-ݚT1V)G' zr3v8aDG؅]]]JIQ6 pb.^2ƗkI!o]9^3u +J`?Tguh*{D3!9 n[͛$s{U躞SiDMTԴ4?%lTe# KQ>+ʮ, Xy[GPbm+;G ]JvyQ^#&8nGEbZT\-cdHqIԗޖ0^rBB^zs.===";|$bzENj ״wVEs,[74 n3CzQLN}8]6oҼǾ`}_cC5~.}$Ӌ#6>K}CVvU\v.=8Mll|7@P)EOz_m1Ԁ9[rl;9 Y)JjfZD#= kGeJG'%״ZqL-ا'EOܟw1XeNo# i@UWImR_GwwNs}ښ󅩰$8EDgϸO v{)Lx)3$d;{lkDAAa'KKi]Ny)8:U#7j*l9AxvY㘢'=oÆ,Fjb@V76°n;y'r_:uMlc&${}xlv4p0ŌQeE[Itvp 9 Ůj85s^t&&j!,)sMy&Xb4ud;5) =r ,)VU$1Rne\N,Z#bYC'WdS}vJO6ģX)dp`#_MIsXbCLX껰rtz V$q29'rD>sn%HHL<k s*3U!dNh`gi,lggg_,rY%YF,ٺ$<_LVv*[&ħ=MEJt *&*_3a[Ajj6ɏUD%{&Wĸuq7\ؒEuiہwlX8"-X+J~an*?۠m+{1+; AV1w;aK:loŵ̈{ZUl+עG-\VmqQ,7kia#lBP?ȃԮ48 5!# 2EX{9~X)c!{Օ^\R6 ;ۂzZ=v֓vMgE140BXy:(=5EL pV*]b:-]bQ]7Juj[z~S %_E]$Er#*/Q|jºWqakl?wbRҪG0.cZڍ~g&:Oxt19"pLě: qNRCJ"u{dGS#@0AM)+4JYi =1,lcf/H`[‰/fDz[nA_7V:x$W.dhrtw4/^DI_[w?]Rv7aTmzY}'a{']岷D},q9t/plQ7Ɔc枈['9 F t9E{U'zbTu..E/QFsPٳEãД-e{crjo' )ckWbu*k@NTss-K.hd[̾'zbjlp5q]dD{dxrc=84^㣥dGQ(7CoJgǻbu.3X-g-Cxzrc'*lۇy6Ȁ; aFHEi]G3BP76.v(wWj~/'H/V'kTsscZk l6;\JN͡@aՕcjgp&W ,Odn/oycʕ^qcRi5c捶xUEf5jV;'?9<)Fie5D=\zJ 3g gS (_iխHj,zc{#e; ȥ6ES:8L`_M3mr3}UZoX|zv ,~. =)YBv]ͬ̈B.ֳ 02Z*HVڵŭ}+sowu$$X!ߪ+ hL/4l~ eö4zP8VjPKW(t1G m׼s*E>2n&~яf@G|A[[\Wy<-uΓ,_ۺ\̜\֭w4KwY07I95x=J5H~ Qn.:˅&m D\/l_hGNz`$p텛,o},`Cz׹_  {nNYXP mzjX;t{MA zbo,ӨZͽZ&uF-ߢ2MPU muAGzh1bY9,;8ԽQWy/GU3 :vVNɓ+Tsһ+.Ap A71clȏn.&;ͿU-+xB .nQ}X)Lt@J=׬ڤe3:βI$\?זցu 9hRי/Zv#0Zg +W㆙yAZ;h"WR+0F3V)dSΙ@sa0=C`>xMIe w E72S Au|>z\Ko0dzJ Fs pA/!n0%[O\9]<1$u dTxy>样w[L[=j^KǑL~CV.߯\FV#=/Dm\y5"lH{mkE#BKyhm-AOZD@mtU=z5@q蔞 -NpYD0"&s.qZ)7%C-~ݪB8`"(j5XPQ2?Dƹi0%Xt{}UlYewZL;e\fwtذ+hp pɃ4VC ]K|ٜ"o.> Lgo娒欓GO)Zs"E;`0E5E2NN\tѡ@Ĭ椃z`}kp Ro<%/e$ۧmq2_[93l@Le M{] ] 31e b m] Yt  7tm%}֙kɧ̺>EFn >u`|ze,Jzt(?{H,ז^H1?DSJlH,DMw%Fqdqd1櫜]9dd,wGJʟ<eaEYC ҙ$[νg}?2ˮ;T Dg{r#h oĥuR|Ij F Kfpg ޿#0 uW254伾"X^>5d'jНA?婦0q @[*lorWQY ?;|KyҶ&L%Mk`Apa? hR~/òᶤ@?65{eAC=HS,5t 2YrG8vZ%Qϛ&b"/e<J$&5z?x'R).ÓIюUPJW{J5𮘭k4dD{I¾I'6%]ڊ1}mAZڿД3j 7{̅@5끘 1=&BXw^.;y.9{=?+MTWW9epLC|Q͗?AfO9OƪN4:3PՙNҵ"$G.k% v?SI%i5YR@"]v)瓏~@mf~R|ҿppSO=̘Rr>WKLJO3\x4tb]Ua):*x]%86w'Q057^]PSly5ߎd|\AZLEL Oz<͐;/U&u$H!Rg^޷^E;~5&+E()Pd/Mg'=1HK P:U٦JB GhaJMv6A[^nkM<ŗ):BԈ6{". 3ht#=)L s|7-eU73)ɂ_%ic0/jJ?kfuH]hK70,k I֯3jD~O DZh[5ژz,}N{qvuya\".iR9j Ut"&͝ڊ >_8M;vÖ C{+{65+z P N"{5= w_H7|ۘ6'KV;kjEZWU5AEpz`1@r 4_Ylekc# QaRڛ>:q ,-{:&c%8{s8S6d` D-NsΨ/HP'Je '< C%ҲZzťdi q!վfZRUUi$7^fۭ` i֦"zGtxڷ&T#җ#W'?r]S+ r,2;C~ߟ{ ]!tAUAmĠ)TO Zn :&޹2) .zn߸OP8;#[~޴Kc=޸P4-M/륬yt},CˎAW! q5ع07NYjӟpm-Wҕ<ʴcfq0 gڭ:PZMS'M'Yqxi&ǚ4>W֟Vsihׅ]bΎIkQMԧ]j:%6Vy}oUŦ-&dOI҆WdKPT߭;)+V%SyǴe]jO-[ګSg {qf?#\AMZ] >OwRSS݄RC^we2^@QA" H42'x#mWqܱ@ZE9Ŕl^%o{-(-irEɛʄݢf}׃TmTkm `vGYd0R(YZ@8އmx+%`6!!A!8卵EΚ efյ2VR'VֿD.L8˗.Yk*bA ֭+ C{6!S ƿNu.\HWMxC޼2Qm`UQabw!/oҩMn|&:R;wz[3td:V%{͇W#ҾƵDyyp!&k-9];2_VrQYC0.çM7ţ{-v07r{Gڟ`0?,RI-gb? uG &53Me7!{);!zS@F{ql:=Q7((*/ZApWy2JWP^tt$2#@CѮר=7̪k>5XS~\ntd1U'*dI4Nv&xwПdAp{İCGSjw7{dmOY)b@s͕X|oK/hvfrCV_Xҟ: LWA?Y H;p\Ìڲ1vU-|QE|EIkȫ.\rf`hƠ_}#E 6] D'/]e e6 lA=(%1ZŸYlǥ(`Nn v3?vʒ32bόT͢a3(+lvaZ.؏IA%;%L~sDf3JH!1e 4)e慷{m$wnץ'JK }Dk73֙B<wauJ,jLGz!L}` Jd~!K6AYCL̏~};?z&aL&߇!`0b}m|bES@ٱn|@@G!ppx 1õs3.J+ju8K1u&[W\aʽqVZ 5-{|(}GplΪ _3FgK~< 9-x}D\~uu>LWG=Bәi7{; f 7j20Q 3ٵ1̄λ\.zX;%BVt|Z梸L+#&u 9!bhdm~}rĦ>'DxU9`Z!H >Co結k]jN ?]*X.50]wCgLZSpkqC7X܊ܬVYWE~ [bɋ#/XO24xA$"ZeVVV g``R(hbAGt 0qCrz>Lſх6IuxPb;!@HRm2-l+<+ ~}(acF !ګ4)yݯ$o`͛QurV6+RJ3 u 2=ġA#ˡlw]U~y$Ao[,eO57 Nagpgzn3do`' |5d̶Q{t/Wʢ(NfC^gíϸ8*vx ˚#@dp %TO* apw7GR;j X\Wr^e%7L>9azh%0_kkٔP:㊧'4.8PjI?D6{V{I¶BpicN0^ЌO;H?V,-3:90w 9;;g2o}6.1 ,ذ_y;> Pv5J#ЖЉ&Jڭױf$ee({ont2-EPAzZur8:xV<)fmJVbcf,@fvvǎ(+Vz$ R[Bs>tG6b|- ]0$ηP~/C>V?stֹ͊cX4kYmӒ%ƿ,e*_a !,=J.U*k. LGF- SyHtns(㥞MZk >VnK1a;"ZlޮsGoy(3ϟeG\oZKU@l۵B1N|1XLw!wJ1ժnpp@2J UbvO|~7˦HT*UK錩v# (sTs-<Ԓ]}GP[r о|zw ] xy_֭_.&'HI:g8++KQ;p l'3N }KM8вx sS=2էڜkWP[ s+4e>]Uݏ ?/Pw,8`_Ksh͚*_^?g*&'$Χy6n2K>?yЫH%Jǿ_x'K}kl~+NSplr7̤avp 3T7?-A{ Zb(]>\!s +q*-5Ӝ殷+wN؋JY*}7?`Z-aq|[.x#vG{FWOG9AQ둰!:C-2T p"F:"Hk*rQm! l%㔮ʃm]'6YHEO~DWcU /+0ml$ғ(/pݢS!hXJï9%%% mXZ Ѯ ;B \Zu bpe0h$2w~w?.mO0Hp ½Ve7q8,kc/<ТO4J}㯬¢=eu ++>Ҍ}ۭ,&7b谌4߾8l\(RNkoYL ~P0"5(aeccS*I&#[546]Kg29?&1~e'Ǣ^^5ɹ= }g1c]mm+W9w}~}eOhܜkl~qZ3FnDHHf)5?w+C.-3%IWy>2/Kz&ލ$nӃsg5W5c6^GiֿBG:x-%-Ș:1su(WǪbϩO ⱞAy1d"io͘[>[jznۖ%U7MN_׬Gsmʶ]8#7\1atI`Hi.kӈ2Xx?̶֠r:*L)EZ;ZVCibq(~O9rM@okՁyPK|A1-+,nuvola/128x128/devices/ipod.pngUT b]]APQux ezyTReqDSs!L9K+KĜ4fCfeee> VZVh6Κ?ww{{}n{NASzo#wF?.<w5b=b97xpL8 ;N]08"|kxp؉#Ý,!2ClL~P<0kH(yP'IF _M&p듫Z2 #8ESP?Jh0eK{"ؚ-%,RdNO.{=:|baGPMB8<"<2FF@@ܹs-z`YUee$=>ٛ#W>Ig֑& o_ 4ʌ1:Yc,> b5&R3Ͼ\{y\8Z5&Ϋf)a ˳ɚj;w RuuF\4yn.^߶3\ݬ6g}J2FGGG BRuvBB3 ^kgYJDž X6m `h/nZ CH+`cb#K+Ŝ9S<%p!s 藜~z|˓a4-+9I97m9܇--5Ă 2D/)@`F0M;:mJ<D)+*ڈ'ϒ_PQ2~I5p`]|)x2D, &rnY#>QM͐HzGe:;??a$l.A=l]5DV;b3Q;R!ȬxpЄڱ#uk oz̶lk/Fl求6Q^~i$'/-J y~GCd_Kih[G> [lp! YνK~X>L,HdgI)!1FEa_җoMY=-|}-B[v#aI8F~,f/ɯya;:EGpEyV\YZ3:fr LZ1"r(+x?SP+~KNO9bgA7@I-9rIݚo!{#眖R~Và]h(a7֐8"jK]GTr&]^4!s_a!aj'ʖXX;sjZJ _>{(oфRx"3+8qm4 acQbNa M#ALeJSVs *o;煁3w6 K3orЅ4u&e\0Rܡz]P =KSA?2fx;6_HgEl1@@Heäz T) ̜nS-$Bj4ڀ pa !fl=,4u_3{="Ca(='I} sH"(Ȃz/)޳2D>aϞC2ҀQE"w )OmƬ@Z?2FzϦ#êaF6y<;:84u Wae&̖g"ӅWGa^qxս%wtr] SWGP(SqkAhr9m1[l{L1q%v 8zuKo:]uo5q]6U hʿ[k.e7/"6/\ joy>3r52 y#*mcE̛2T:*af9CMaWHM+<^skj8&ȿgzNXS}'U[Ca/gb1[ǝ"E b!.B9'ͫCFPGGFb?Ӗ5{_ 1ѳh"two3@6@eA!!h찕z4zFOxנ N@ 5 IbdaU0m.Ppj#| CZ(nVay*KJqŝ!˿?u}ͧQg2 & ES-N&G5P@nuqa+C*i/ơ pMaKV[ vQ}0bew|Oy{N3lgPuG;.V x9F^E9عHF7yr=;Ơ>ߞ&iJ1vq\Q[XS7 ohK-{#ml]62^ a lo >He<"+8?| ~ Q[H8nN~Wc}E9n[Y<#_*/y!D.jdOG+dV-=#yl2)b]]YyuBB09spM4QR*;{7Ht+>-mN( M\^TU@idܿn09fXܝ\,|o0uy%F}=M5: UXFWwTKm#B;H9Rؿw1Za]4Dɞ7 ;Q um58kAN$:n;#z70փ;o`5̧Ope[5J6Ķrl|)C?J oYA,#Ǽڀevw6"<S\Wlhgzܰ-0۱,7Ԙtqؖ y3)wDoԫhEN(%坭-ʔ'+| %,E^HǙjtݳ07:iz~KwP5ϻ -g]\EJ7"~6+"%fw; c ,4DH' ۝a;_^je>"uu4goϓ1(ؖAF/9L1olp{ѕ>LH%rq)=f=.WUJ ~KOH+.C3D  l!=spP2N=OL/(.y?\}s=oe-4FⳖ  l|l~ݒ<זcKMK3 +jrmO*,&/CfxCX\|҂ۛRjpRM(CRC}9 ]Bl/ ŒRE알PCz>e1M/{WsqSc̍IKa݁K KϛܱP@4;.L Ҹcx7 W[JȞz\`n_kIJ"#>WZ˸=F議&P_uERٺ 2pFκjILW4fYa۴ӮA6A4X*jkoǬ#3z!#stckS#A~EyP_~='/Bb_x# mؐ_?ܲ%]=Ux $B;h?gI i1E5"Y![nc,EzK aAdN?MK# jxpT {C#=I&mq^\r dj@))B">;+sIQT f,ㄸD3nƎv_OXG0vL7S_knvv"fZ}LR]3ИFl&$& Z`\蔅sK d[a3gouG*]~&qq.gO ;"?c2ƱlB7W[(zᯜIωvӶqhHZ1իئE]EC5+ӳB8Txyx<=sCGb8w gLS^|Oe6j9^_B)b:N! "~XD ޸AojV[} .L^'F=w${3u95-z~BG  `C76m3 5qX9XlՔ-:F `zˋdQQSW[Usȉ7Qdʣ4|qwl-r?pQʬ% 0BɆ}CwW8_ώc+ЎeAER̺yt+n, CpV8>]r6c[AkW_u ;UvsO;OMv U`hP)+uzm k\0µ Mޥyr;'+=5؝"[J9@x}jGJ*BՖpKв?e]q/krNBjyzIebˣa[|䫨 {}AF\\s?R@ t#U2rgb,,)"m@ZpB;s$y*Ys2!xpp{W؋WhѢep_J,GDu+aUldmE .I ~ %/ 0׮]i  otwDVdT2V}լ˛^*۽-z0|UcܩTO)sU<@bp0zIKpSzaN4.Uڂqʏ/լQF#a7K vf½L!hf+t ;`OPW1Y Tt@Ȗ=baQX~føTU*gqQ[Q fwj'-=5@+||0EUNig2#1A~2wQhD\.槿tp  w/ {uHj RØ-M|>$'nf?zL6 p_%ytX Ψ*K?؃j75\z_?ё+ !E @.1ۭDQ ak5B(372T&.a]:,QМi:m܂'^juݿh`ȕI@W[wA.L22%x]YaT*/xnV֬(eakj3y  7ݹ$K'rTD(H#K qکeY7\KVR mũA,+{T]uN3WIF8HNkOnvv*_sY0VsUB73+n?6\U$[n=g[A)_MT3L8W!ETǷRMM IfKaҴ.`< 8Ꮅ{i6V.N>3/ރ i|2=Ldk8We{O^i7'F 9d@1 ܆ӎ3X<] q^ʩTA"\:,8E{TWCx˚ZM>]X,#)Jӡp^ޏ^kwJ 9GBP1veɩdK3'1J*@dGG9 WIfLqua\ V/ŽYU{VZ՞GVl!?F9rn gz0~l? QΥ(ʻz贯G]xJ n7c=>浧DypڵSF>k,]X=@5sY]r>`XW#"g/\҇}EIFVN)*T\:*n~ˢn*6u51G)9 ǦTeLui >r*̋Q06S F[ R^+Ttg=0=WTd=8&NTd@ Wz {!Ǚ`^cޔص`"*آ wvqPAJzr3CB.(G6MSg#vzerk>w5iBSVcY:iڋnV+cq9"52w:y)Y'q؝{[AX{ bD0Ai7ոfnU Ϟ<ŧmmmvPYd2k.H~xlvQ )zL-7T,Y_} ܾh-9+Seex<$ h|_oWՄla] hM=e ]ٚ7ݙꅐ@a1N]Vh1Ÿ8!rH+kNeQ)gΊG{ p|F礿Ns\tWIɓ)QO xm'*tw+1*Hnj >nb\̯;84uCK_mѳc3RW_ΰ})Chf+,/+W j`5Ǩ^,p[mWP5RZi]!NQ(+ue~.'@!fd4Q Tn{Yӣ#ԱP(CjQB)nMMѹyǫ:0VF!\sbґo Ӹ9aYE?frU2ٱbI??TYGy453')5mwR(~5|nIb۬4뤤pi%m^/fcd/3LR#vōf1IΠ;J;_jEaAcif`fFT_ ~~ +rnj hB.÷ P>uu>q& vWf~:9"#BZzQOxIkb9dς1ry# Gg*kpiцЖ8b՞V" 2Z#dv*)3 /*lx -m|e;\Fh]/;(T~beFZ0Jmnղ |;l!  z04׋ _9GfCѯ'9zDl *{ ޺5$ÀI>Nα+"8nw > wFytDe79B-y cFmޙ6Ceuvdo ik<,Rvm2Dhw.AG\X ppBdX3ܽWfmxwNjgugt{'޶{і?T5F{ tp VwYw/Ptpm,{~Y;7@S?jBdѪ [[x+>n#qhNS-OmiѲ`0_:%-Ŀ YylیX&l,+Xyx 1H,nG'jK1=Fʲ3dD[Wp-w>IQ웺]R~>zy#s7mr!Ǚ 2O[\>rĺv8Cer(Bו`TAF3EndQGN\}Y5D7~[FQ.7t{Y{#eˊ7JDv^ڧNO0n  Aj PR0 F8G6|I`:Zwi}O}-+}Ұ><;kŹ77/vx.kK'JE@KL4nJߚg-E [W0>I6e)Zn k|Bsm$!7J^0[!`pԪn4 ~ǕPK|A1/^%=`>#nuvola/128x128/devices/joystick.pngUT \]]APQux {wT(TpaYjil(HΦ~~߲4 HJ-MVTV&(3 8rFϥ߽s_s9|5e}zt/?RG.!]~A!9ϹbΆ㝧B_<N;]IcJ@5Tw:9F&;_v("M} 7@,S dF)*VJoݿwYXxѪG<lNT;p5/eP59s]DhfH[NZ*!,IH䈳$t_36`7=\yK|A@Le)s#傣]%vAJtw`G`rS)YS!?GYѲ_YF?FBN 5@&ܗ)dWJA|6JbVAϩoJOIR=E蝐L&pGL|-݊ Lؽl绍䉤<6T (EWQXsE4/Rl[SV|le~R@Yhn'7k_D4"O:G3MIFzz]HH lʨa{S*qML,-,T(՘A0qDAyz8nei:P-PȤb͂_7q^sĕysX0v_e2ܠt|z'pz0 0SK~x9N>TwcDzu66Y.u>:V^Ɗo@*:z1 e˶ZëؿiaA+ƹ2dQͲh+WW`86* W_K(b0abSaK>9/tߙb+_׷~(A%JWHWNE7- "#2wXҡHľ}Z."T&&  ?!@QJ(ZjNo" 6}lqOTU_P'- W))W | |. fe~0bΜR{0nZ"duCޜ.>#h jL𳤧Hgf{p͛C*q"pq M2r}/EQ+=ȃnxwm!jpi{mm"VLWuŸ.*~m螏C솒+G>xWRoaȒORlP,s| ҁɫ  IKsf6xF8l#`ͿP1Л*Zdu1Z'im~뀿8cfgg‚N39PN Z]h'f *ԭBk2-;ggЭ_tM+<@DElV#xvg(`TvM:4:1qq_"C`XqȈ- Em,hgarn2 TXFRI\.ʦ--X=35B"JfZy-['&O _wuToeWkYp B+F2BV|SVltޚGIuMrMpyĜ@kDʣ^Ϲډx~)S˺"ce쬯w#S}Gn:Gfpahr=6FI /!h KY.(TdL &޷5l'Fm?L}g'xk1GsB{b`zN ǟi3Q,v}3ҟRuqHmf1~8 wf:޵(~Hv֬'G\r+KK wq9HLȴ[KC-;d*q&+-:<#&n@{c sUVAT\3ȽL=/>:h{\=}z3%@ovطom?>N[/kBT!fxX؈Xuq ζqB>>ܕ9f 1f ͮa^Ʈm|JDMk3?DAYbNfGTW:g' cm}t=j"ʙͽPm(G~yGW^RDpko/Pqg1krwL9^c_*S 騿7ٳ(/$J&duPր?騼8Br>ѝls!g>MPGQ-C)[%$gtZF*n2Lz-m.ǩB7ZЯË~D c.W(^#=ɹٹAed ~W G-[3"ҋx5=kƖk[8+%ip vqGM*tc֊՘aE0y284 8j> Dx/Ln3xȁH*[dۖ8_P{<{,΂Wi@$bVsKahkiO&܈U&NS+$S B2Nà^2@JThYL8-a~=X[wݪR<@v}V>&> )0k1`=ՠ_jUZFu*nϹ4sHG}Q4uq\G"t-ʴhΟٺ2ͫpvw2WNg0V"9\EU'hj I+YN +4F[p^ B~]wB0#($;4nX&`˂& _ }NweO`_Mز]koT1 1x[h<+o;-'F#xi R **ZZk>4H`g_@"&R-P5N3̟+2xI~1&$Ɇoi~a|M*ߜ'LP@T^1 cee%Q.7%PVUU,!oL^9괃AWKݹ8rވ !4:x]><̗Xbql[G-e $_PGw46ȓȂ9 c;M*y&J(9Wh7H 4lʤ^PI{z>K]X.OB@ ~\+MD6t Z]B@V*T/M?`?K%`5hrJ[ [Tz(gtYKK(#e@wb6O!>ՓVܙ k !iY~r|n&٩/Bu.0rCQ.&-K) T =? {q!x_ZVǝܞZ t]ΰ4)M?9VHNk> ~/`\`pWʤ%/!wq>0^|5k INHi5Mڂs4ԫ#5uNpˍ4Mb16I-EpH|aE`lgmlHflxTһQe8.3J(4H$\ji } Nb Fj#qr8y|ys7ǰ/ma#,Lg Eabf@}߻C02gqP%=Ya;+aMISvЌg[ RWcqRH!r ]Yyp݂G[: ;Oa >y]( VR*Ү^&ua yŴ˗ Ҫ.Vac0b'҃/w`4aD@'Țz}p+0w[-nQ˳2ݷ.y,cN =#{νpfx9Q( ;M?5rg~ ƏPbtJ'5kp)剃FlUN{l[OI%Ѽ޿%3J\7MZ.61gnL ]Lݍ؃rd…J_CZWiW{f %jbu\\(Ǔ!g-_&Yy!Ԛү\W%)d"n9׵ 'k_@,~(a%!sMx>W1xS2u!ϔ[YǗibpDQ;C qfUKUC? p<50] sPc/@9XRٔ ӪܧGhę;ffWyf$'g\R\\a=o0˵]F6Nm,f[AZb5qv,IRi01>䢔O2CM33vB4Vz|2lTqۮl> "fe͕`Z,2y08CeZDD8,yf*hknO8mW[@2uD6ͣ9RfHߠOZ f\~b|dQ3$"fAs͛1?GmH@ޑRQС_Hn'2JY,A:*(6&η_OI6*⨛$N\+߀v&K;5qN{W,yڿUV5mޠ)k丢y m9F8~|bx0 D{蘘uY2902"6p4ЪLzp~vM+$V9Zs#*ߧQ{8'7崠.;{t44 >)!:!"6 (HT(fݚ!1xPMaxCa0u, u +K|&k l'ٻ%s<;hY\̛=INbT"={~}]-Ӧ]Ǯ Qx;{ۊ{zb}+W*Z@M6,kb?p҇S':O| 9/SBûﱘ*ѝITgW'm$_κx̏WBDgyga~};-hfH6[t9xiAuثgH}>6,DTH-=ǽʎ-TY+Y<.Z=8В WnyWq hٚU1\Q3GmFV2khjBPɽHT26P8#ʕ1m?ܸ"iVZ<8uJ#,YvIZ~lj5)7PsrO 7r#$hRƠpzq_m0u@qH&}yš4.+]MZV6u* = e|z#-owd3UDLMNN[AeJ a .x C6 ҹK332K-D֜ܝayk `C(Kʟ-V)c QFKP:?9۫|@/v}5v~V9K])s!9]Ft_LAҥYH0NJDU?!q"IY^Q2l&ʗ-%k#+9D/O_g.8s}=;EozpmA^@>‡IJWi~'=ZBf9WTV-,~d+y=l֭lwO˹ޛmR,᪥<#{ws>|؅oF2M?$v T io+,kHE;_/ۈ&(<#);k@05B]fa7EӐ7@*$߹ߘ"`9eib}S0ـHld-Xi#-EW-E|@苖NX~luKg!2[bwYܙVque|O_gXnDWHwvv& <OmLɧ(]+(N4i3'oTP}"K 3+S?5u hi/i[K麸9a1kTOT'ZDzn^g,&ߋ[Rj؍PFCsxw0m9OR%f^]v/r]<\iQS?;L0_*A w׿G%r+'X[cN3byc|G3uPQ ch(.abN"[%cqWKOqQ,slv |CydNdV|,lSHW}/Zd^?*ylC&,V3Wc 6y&gTVfhR3hT{*jVu70bioth+Oێ}Ư2EJ]'Co71٭Zv{pkIIQ#ִf9,{dO! GG)5:gLM۶7(+r?Sԑ}ylKƈק+mg㤈f,F#>+2qI߄+>B%IЖ2` ,@]3, sY3ӄd+--.)5IJ"s"4(2xDeJG;hdhrFziMrj<)2C ӝR!2f׹CIoxoMh#-Qdni&]T m.O cp!0jB&" ) s,t^岀GgOB3}|,.HH^#ʌt >Ѿu' f;|._Bu@oCRnrT2t8[{׭Kb~TFX 7-ke9*xB[IC#˽|n-YbtmMu|oꆎƱw])4Pp}.=WBUsʱb D&xЅ0Jh D$m;Xv |E4jE-~52psq8)WU{=F+K5_*q\]r#(Ža9feQvR$١J؎Ad@uF,]XBdSI JٮD Kvd-sLN#<مo27knOXf}~vp؆c'(+mY ٨OW} Z`4'EߧDm:qKx{P3A9P06} }ϻ9^ѕIP9=@I~keB5$/ПΖ5fiLga[Huxq\C^8vmh]|Ob Ӭ)$1+9Aϲ9ȬcAjP&m! $.ZwZI%Tm .Iw"!?p&!v!O09Eמ܄BmWd_kbz;v탵ێ56Ew@t&GWBULs(*e<4Z);_\z3 TzAG! !$d$epGv5)6jhGL W}_b.8LVZ2q-U}j R(z)$1A ܗs^F9$;mWX׋j}$%,ܳ4WհXeh;X=0/Xj6 7WDcQߞhq)h.#s^(i:OHSDԑEQ~TޏY:¬T^@>E'_$Q)mnxEiKxx>g6[1}=L@oָz^cY4Dfv_cA!N4mt%RISddV9Xp &"vav{Nk.w$D-Fz"$i݊(髎Rx=Oɟr!tn\b=I_zӝƻ$呪_[S7Vfma32 1 ;4WRAkl{&Է- gehn 9Jo$9D4~BI˾$5Ň,g3Ӑ6t Ux)W5}Q|MTT1*Pm\sXzpQ$|/׹G#]ņcmK_k=/xEoG@0' Jvg9lq@XXvjxMOovIpю_.H"/6hkv>ݾ 5OSyCGi[h=K7Fh\BG 4WސpxdWmڨǭlˡ.'&'qgF_~rxi@kB ^+^߆s[{hyrtؘ7lyz:N\RFn*^ -gتH/av+ -kK-T}6HE"4AM *X?J9SulT#}6r0-G ʾnR~0&OS>o C4?|[wC 0;BSԶ\mS< @jEˑXI*H@?\a󑦒;<7{xI%+!:*7sCo3(1id] 5R7iڿza5݅۞kȋ;>mOEr(8 e5$8~Q+xe*}+ZAaȯi3`?j^KFWPh?UET'bȓjtQ]9z DbG9kɿtZmmbص}-<6IXn+51]GMd\0 yxBXǞ6D_vhkilXPɡWtYLK-/(OSy{nטAW4AZx(O^ZhMO(6~C[#r&s*>6QĞs슚|/Md M˦%EYtQ&̫[=1s:!e{ ~.Un0z-}QZ\ TdkSwz_3,}s4!w':.ܗ xwgkZˆD˘$VtoX iGЫa~~Fz֣NJ~a$ObMhMsRp;&BD5/.DtDSG"1[ wtg d2MYYn}*'~ɏ\0zD#;RXK,Oͬs!'ưcsPMwTEY4~ohfb6mD6mgmTkX2LgXSY $ATwOrU}Z*4`y/nr>PUB ?e}uP&PX;47P#)G|27ڳ3hZsq<Ͼf ,<z/?D>RFrݤ>s-ĠkqFw3"K@;9"T(av7P+5C+ _?0?,>ɲR@}9'royE96?bz«{{$gGMxi1n}ОOZB&ìjϖxW ukBKMG&Ka&'{n+ACMcQJzbE3D@4ٶjjj #6?jt"_NlmCHфӢd $%t@ʷs A ?M=Vz6x.6SJ&{(aUG.o>[[F˭4od%a^<^yD޾C/Uq1 ! --IÔG$-p#}6e"#k{nelK/Bӫ G ֮ EJɧ ǻVh-#Xo3pܽTAWlC5-n-7 v y17d^~u2\ɸJ6f>VիqiOKc׶Ɋm0=lZp>U7mCUCՖC{@j?c}Ubf e~b>L? v}3-yߵUkW_߆-CIRNNi9ǘӥrűo4Bg#nȠG,RwPJwA~zGnNH);vO8%Gn4u}B7ګ_DU[%';vkripze%nHxd=2'߽ʴsX#QS.ȁݫ|]v9+W-1{-f&M3(0f.sci_`t )9h q$[o38'ٚ=HHNJpHcuζO]UtwC=o_v*]klٗlZ`^N^j6:^3xMde&wCJLu4C:<[/k$Y@Oux#~#"NH3tF~t0w:Qì\vG늳ݽ KMH.++*9TDfk".NrGqI U7 Ρ ZqN#J^ /rvû5L$ΖwWDӇ^m@׬7<[FJ|Z-δ/";V"Q(/R ɹWt ٿm>PKt91[ߝA(C#nuvola/128x128/devices/ksim_cpu.pngUT gUAPQux wPo5$HP %*"E TQ.I,QDE JT~ҫTyf$u_:97zNDHV}Gobҫek;E9H&xo=P|y:w7G?s.gKq^4eE2ك<@[JPH4 5P/0R-H4b$L phZ]E@Nq#/5xv0 [\-Rh:@c}^ fć_$Wwo[ЩP_r },cR'juvn'LmBL-C pcWqyg lX^^:,c_%K+u é5)Xܮ,o뭦ߦGGG#l`S}s#߫㐭1?"ҔAwe a X^ "+0eI YIf}VV#`e3j`s wG8F-t}Y@\Ej*4n?2Yi$ŸSQQߏlr# SHW0 K꯽PBU q@GY;l+6 :U2x#T')))Vǎ IK6%:y3Ng~?wE M~"ιss4C/`6V&Z5qILUUALee%Ɗi;'sJc?:\w/5!fkIOIxV쓐-)g41lîۉ֞QgϞ ')I7PmG- THLN6@P/+u~fǿmC:@3D!(˘Boqf!R%0~'\&&&!L]֖fձ"9Ȥ9}lg@I2G-232|m(M0Ry^?Q' 7O >w&4sj,w@ûsxsØj 'rJvv S̝.0 yC{XqWjse2&<G/hE2aWjѻ7ov:'E9M=+KDC}S I9Nh 8`w;4y!bDu!}r alp/͍%ɱc(xw5A։' X@.҄d];摐P~ (4 Ej&_?& 4FFDFȽhҟ2rCLH%f+kjn]Qw=JyHMŔ:2n &IS?M԰5]G[!8U=tsؾ ⌸x c޿ɑZYYvڙ$Зg[)z:_!(u ׌fVd-lAMlgȦ/Yqg!7=! \M^у<de9s dbdeeg_F y~[7A;x#BFY8qgK" ֌+d%O@9F;(qB-?|B*P8;QXVzVWe%\}{+p{#Lj33FAG}&%IxT/_Lh>^IW<$G颬 ,+.b:ʯpƾu7Pj<3LSlj<ɛPepP.msp_@] ~"nJj&0Cߗ25[ (:v "nE9-d˩s ,:_ Rd=E ~lg~!)@7T"#ف r8$N1 |>م * UD6(Bωw] xq992b6 C0)'&zQJZWp 0mS *8O*q`q"V\\-R93B%Pu繋>Z'| x/I.&oŽ QǏG2㌥DžRoΞ}7Q HqŲ ́gNBjqQ%QG G(QX|YyV`UWjQM=Ep $3<4Kdab%B̉*HC37uEGS&|acp?T\)sᴝSM)"۞5V%܀ūܹZ@>5nþ}hw@1_c.p)v!D獱iGVۀ󸴇 Eٔ5yPꂛ$Ӵ=FE ڻN,,XFS&iVF./ʀ5n雐S"!`=Ei_vp a-nrch GIZkDDZ&s h{L*piСBԬX g$ms6c?4SC,1_< x,-n !#v;J6q梇Bcۨ~bz)vF3X*ᣲ#";ÞUorjt@P껿6w=qWZS!W_-i} %w333 '"k&![sE*[@8""wTnpaN yr,NN2zF>q$/"sM.s?tH-ZPٵg7 /rP.Q\/l5kPؘ!ZF.Lk0@Y{=M+gww/m|oWcF\>pzSD8 T.npmSr41^:ul 0oVp-U7C(wŶdžc,6֋^U{|EzF 9p{:ro2;Y:78 ^e:J5f~`Tn  a+ޖ떪~2o9l7Z Ԍi~xL;Z;{D=~E>( |j{9ڻg"."vc$,_EZqw,E1Qe2˒({0Bt6Ux{k<%vsb.s;= Ӵ.S0<™UZ9Nj,ؖ?^DPڟ@?dK&"7g aFcgSWR񗑯A=zVpf0݌oePᏆ.((mܩ~PƟ>vrgSb;1C60>4-Z_'ˇ0_՝Yڠe{F]*VOPߨXU^ap(H5k̓W29։-2 gY觑7?JG^=nPxyc7iի$\-'n<kD>:nXva.-C*dK/Z{̯83.L͋E煰 [S0Q?_dYZ7>YIMN͟Txxt7CSc>'7ӦpN@8& rGfNka| BDoqZD@| FM7 ٛW *vz}%[WnZy4{.9 --V|&WðBl< uF>e^{pk%H2;-ˇzT-5DJ:'޴Mq,u={_B~Lft^zi(%f:͚!1Sۚ߁ēGO":޸CQ261xy$œӵWWQIzwAOv5݁MxS#f}%$qrI!!%LtzQgu-y j<I&9`ˢ,9"-qhN(}*&Iy~H:(2}g  =$O:BہZ|ZI' AS'჏l=?\jUEجV,m~ˮʻy7ur.;)x*pOdk\(z},sF{pإ_r~+aJ =;+-%о$Gps&7Ị!B(=.;DVLA8YGd1mp&d1;q%idUK^T|VKUBuՆ%wX־2zc|jBMO% AnmOvEdЕ22?Șgݬr> J~\n}?\v+1kA&‰xDH`Ixu+yVՌ}ckag5K >n /f΍ߩnB< 6|R6oKG\1~ uun{k0٩4b(f<.ɃSV2:|6uuvQy^؆_G`7n[9NrR bkf . L+q#?8dڊoՐ-Zj/8^16e:lvSMA Qa姪 \XСktZٜ{_|ڱ_jX"Zu&qvbb}zHv`4,Bu_U܈l -:u+'N?}P 1x`vCZ-^Ks{ ~HpNJ5tأ,׈v:dT;rGnVbǕDn얺*r*wn(>As ~:Yr`Cm§4'PpD>.Ԯm%fX3wp!Ii9Ӕ3Z#r1}ۛUwʠFknBbкMLuRo t}5OA[:N%{i޼'%TnGӋ5/φYep\ aLgfe5Eڍ;+/͇ Q> ` ~s|U1ȭXZI|Ad2(0GyrYh"+`#x@jsTn 5}kHNĩHF _ r(C &%F P.`LX | M9+AhT í~^d9?.M)K y1nN$Wg>VdXi>{l--.nm!ЁE(#~ē=Vڨ4\{cT9vY+ȁ,+C} }Ta¼oX怵\Pm/Pt6&'פ03bbS`kSy_hlkvu*slEZΈ!yʘƺfُf^܍6LkadGdb;]Gic[I a4Gcyq5f:V6fn)>9.>qծdg(úOS^~!/xro#n!]*h0Ll<@"@mKNuњB^m:i DAs5`(+ L1w33)_&.fyaw_0~YlI=oˍmCǒ z^.}miu؉-EDI)ӿ>#0 *2-R=dy8l,@ a61uMĖJ[y{n232EvfۿՏH"Y? Ҹ!@o>JxTj 8g  7 ?;V`f{#^ðNnbw xB6y_/(.8Ӆt0ou֛q + |^Dmf_{יclO; '݈ vSzT Z>p`؋R s )tilO}j'Dw/T>92ԾMW:*c w$/f_N ,3>[4 )\R':eow dxBA 6vG'n!w%弨$?ۢ)b˹ )a1P!Cv,U,C+1\]j>[?AfKNEV=9 9Ă%卾ˉcw4(>}yus(h)a[Ewr ]WA[3㖅G[SY 1L jPyv14 0g0Ӗ+[DE.{sP$Ǐ7D OIz9w,~kQ G7f=Sc82A I GsB5Yzy@SSdw3jQ§)YXy"'l[H[&wxKD]['L_[ y9-Zs5i MH{!?*YOiRPy6*(4^]]#LsQHg#V-o.<jkÛ3J:`01@^]Q2]9}?vyMdRN IՅ#ˉ;Ζ}97`>ј葁:(*?y$)v-]Y$ޒ%y׽t?8d P@w>@f%-DL;X*J%坯&< RJsHs},M|;Ry>LH)艺TIg$7yGW2]\i-J:A `h?џKW{2\} Ss[;3> |ilxl1>vb@U$UQga;2.׼NM!أƔFGښA'PA:09^>¿ ˜TQ^XrpAy,SJyP,/+/.р?pJ _j̧t͙GtOq3(:Uڵ%[lQXo+Ò˟U+)N~JoZ)xJ o h%A~킔{LJ;m2%YċZ,Ml7|Of? 1bG3Ӯ{9? 1*`0A-'nBمNp,(H r^0`y><gmfm^?,9i:kNI=O ^A2ol/7&X![ SˡB~ sҿaqopĀ;$[Dp+0 A-~f)Z>Dy[k70#hI/H!*1K'Sy-qP׵&.'R/X>GjUIgVӨ!=Y)P=\"Ȯ=);F̷./Cp[35>$cVff<9g{MIz>rB@D6X'zzr%<=,;~oOa%h~)P+P "K(8+pae RD`$@σ?P=c7i^!a; D2:Z[l |0c~ynHho+b<\lkBۡ h7 rxgZr?% p"GOY|Ô "lc&4&]|#tIybD2qjs2ec7}&5ډ$o1o} O8 1̆pD0hX|̂ADx N5.3eYX1+ J-m1EnLTY6p2{U-*l"wKN ,wyIJFF?cCY ȓĭ8}ǯ/oB19o=sI(ϲٹp6D|7E#pNVB'[ Mg\ܐ>p DCtG7`)̶5c|Ļ"̟.L%Cswi=1:hLQ~8 DVy8ŒM˫7(];KR2&s inr qN2F0b/ XY6;Oӫ) hl-ps2Zɒ%m*P+3MP?H0:O oS13]e7zC^PͤF0f#4a#G6ٻ\jah*_ ]4dmB-jAr4jt@iZc| |'ba0(i*m݋~*Ύ:dcᖎ 9v$_d QM!o þZ֨\:yIOd`1>.ljӰPMH?э])`1/4bټl0ѼZ&*X+3H'"zӬNӍCx ۦBqTLi|.SiCQ1^V\A pBz+3H/ fVh r_̊x ВxcDiq:ɼN]a3>2:Z|(8~ b&܋J2E 0Wpjx@R=D敦wha%wcI^v/ئ'^h7rmٍsnZ[ > 3\GRM\ܫfϡ7cVg\_ ltaN2?ұCeLeXV:$Z8UWDbޏ)}{#B0F+pA6Y3d}ʹ}#£ʹRb4|ѝǪ֔JeI< zai?[ d7Am|'ŕ-8f٣Qz<稻r؏TXvhh)Q$XyN@:%qc$n]DH$KI]eL'%[cJ;_\FVㅼ9A_78Z|hxN"^C^@C8/0GB&L9 )P4]`G>ە]ke5: h ~ (Qw.&[)q[)N;΀ƒOȟ&w.L-?HAxu4Ư;<*IN@vQPB6 mOqk"PViἸǐqr oU'g+X#KJgo=c[|4tx:$( ,SEr̓lctTbX.g\mb4r":ߩsijwܐh(9 {`u})hї)Y  ^wʈLД/PmbXCɘ ʗD,& ~FbY%'!@WD ~r_ޓ.\#=ɇ/ ա"d;)쥨(ě:>|fyy>MDm*|x*xN3v S-) #@l`=&y7m,@uh=b*s|~ʟSht9% `*NʅDŽ|Iؒ<|Co;]G=vUbl(S.CM58Drhc?CP?y/Xۜt*l>m@ֲj1< of.Iю:C%iT$±yC|lS$RKØPQ0i2B)I0GwfSmCKa*aBbNi1~ '-@oO {rH h2uĸw? e0w0ÞOaQgv43 I̹-`lt 0HY fF;.h񜱂#~P_d0m,orSWe^H8Ҍ0k+vlO=ϯ)'!GMr~f𦑫w5з7@Fo5RDNxsOv#CE*/Dg o!d3+o~}uI}ܜ\\92SY0Q|1m+ݭB=,N"d O2]?M#E+|Wwkvˢ#F r'ka?[fzzD<Ѓ%˴ ^}Oب+:q钆^%CYڸv +8{y§Kuf&xӽYͳx}k6}~)]uwv"i8Ouw>PNmn `q!~ʖ3Hdi_ ]%JV^~n++z:+_ f&Rq{+n#>% "oa}Cl^aY>iv13Qiļ+ UN/l'[lG/ᒚRrdnrm)X~(Xn#jMt`y/G͉{`琏\ܡpI` D/ڇGXon_̝.LNޟyPӻs,W3mE㟕 ng2''k{Ġ0J@2@zژ{Ij 1ϖx[Qɫo:%׌Mc^7η=xi) ؛ 1g;1/gѭK.Eelp<;#)/C+ZRQͥA'c oqI +I(K#\W7V/ w |J^lKƽõIJSx&w0% ~E~.G(ul@S.nd p.NpŽne$%v/Nf{dpUXN^NYz M%o(Lex26^ _vgkGU׺L!.1wՑ_$kjiekm߮n5Sɉkezb㽩 6EPXt5?F̝'cm:䢊A٨W# (˂YZ߷bA%4s `O0z-HAU$(ȐcHFW02 ں&D%؈sahjz.Fm:M]'ur߂@cԋ+ȑw=  o.a8O; Km^mɪ7 T)'jny}ީSbgLӘwB HY SީI3ZnlAs __NmO u$RvM'͔o'gdu00,? hx"l8Z4œ"kS@#G֏+JB]ߒ 㢸$ ëN`/Oz-*]y"/ǐcn !d:@d87J/2_IA ֒3ae!]f_jQt?d+V5IU uBlZ|#cW{b(Z8w9Y3h\W u?qu^?MPN%\Rʋzi dnks8k>WJy4ac*% Gm/y)ȋQ%ܣ^[(% _~01MS.AzkD$;.`[<*w<)Zti`@ NʪV^[&q{0*>TꜦW7c d>e(DИ~F޻+{b=oј@34[Og/Xm,/@1:g8ar&d\D)_q @ɇ!s7f)YˈMj9Rܴt1'v :Sn}WaR/\A[5u鲹.p/x{- )'pYxMQ 篮M@U*=ȻGb;oI!Tp(J@?aoD.^ERէ?s|Kfj\Sց΢gmNZ|_ צY__WE^X v@SǵU:3=.9=% Bމ^:qD qhw^;"MdK437Ch=,M%j@$(BCJ(T1E _~ zL>"_~FYy: kx@/08ҒOk%N@C+7w5lFU$GYQۈʮV󉪍QgDq 1A^ `h=j@e]XUKr@3 h>s S51L ǸMu<>xz\?P{|2<@m>^9zsȶȚPK|A1ղCT>'@!nuvola/128x128/devices/memory.pngUT R]]APQux 5{ o[W[W Cٰȸ<43U``.G441ގ9-uJ scrw_9^%Sπ:Qmmf_] s^ &;lBDvfs|xPLWZĿ `ǝ`H}\fEj$>{v3agAꦭխ<͋ u[t.{zXu=AF֎c![zqKj^ztO]6gФQ5)-Ad'txNZX@e]™?61<1V`pJZ EYsn Avah|tG0w},O3\d5| l\Q*С*t }8vҡ" #z/(yrNXG,=z$X$]h:f|x HZGhfXecdb>G$dASD7ћI 0,1$Ϩc]OmzK*0)૦|#Xn~摯 r66bz))Vd-#rw02[#kDnł-R0D;cQ7`WiS1çF0Zfx!ۂw|3YCh&]ϱ-J Ѿo T"֡D,ζ*̝<ãYϚ1(JJ "iy|tr!~d*~?Lqdtbgbp gCҌ<$y$L4;RFN#%A1{i]&]/y2+XɈ/17'pS8`8L”H(),^_t7adfOT>@\x^Իfٟ{ J*?zOh &Eg||Kb!خű z'\[XC(ZGרlB@Y"ԫt.*Aj)}(BGw <0E:)1WF !3mƚ%StNj)u>Ukf@:n>ѽr6s)P6K'b2#^jV"i,ͧc*Om1i8c? \B3s^_a[ 7ysUB̅PӗP z I/-JV=^.i 9w&&Rvu2i1 YjνD`eL\ESK7n]¦/ Ɣ0뎡eMߘ!_IƦ@|cO|:~A ;݀4NgίM9oЂ^`0wc,Z)w4r4?"Waה^%[hUϿ,|fW"ln_/ĈeFUT 0<~ x B^θ9M* ١VZ֡ZGܲh@'-h#ԗzg>pӂ`.&@gjY1;*E,Y֌֔4zcaUQ; xO詩EbN{.0x7*npOxVdSG8zkc:|k]] XeK:Mgx́_&F邐vmKxלƟǜ~##xfdmV?u1ɔcqmB'ǕAK>nzir $|y%Dt3= /-%A*j& 4kR݄osa(yj ~-:rkP\HVun fJ?g{ƚx$0PSi`!h>v'C<.wfuva̸ϩ_dh.f{2H&Lg[ ^0)/q QڻrctsOȜR'WDjZcq͠OۨIbvlGM{w>G%ʞ%Ux.J}}XIBs_=dv[cd q®CJ#pqY-//qXk4!͞KI͢8·VwmK'^ ]lY'"1wxvxv '!w/D0,jWh˼ W=;5Dnf^j%\wAGrCf}L`w/zh)<'V/kyQv:~87"5h;Cy#ñƸ((Z}a- # -iDᣗڵ;?li9i[3 Y:?~Yi{K Λ܎.3Xon#.K!̵1*qp0}{C#yVw$7B4!CG_#cIҠBFOSIsxRE@~c(dҎkgKE(*Q3~G}<ҷ*O sک@0Ϟt5y{w͗pa\.4>M]J^@+ĸId&{G]3Z,ߊޑ/r>L=e:AJ-gt8}LTVU]љg7DqU/^[́s䎹@l.4\e>W=Y#acj#Ar-·L쯞OG6ytvAuJe_-ٜ1}zͫ3St\2#gCبZ;- 80"=ϣ i&>+lq!nD񘀊ec7W[aAlKlC: 0ms`W`AR6JHڽ@,bVKC 'ZvTEPbr̍y:NZ[ *d5q0;ј z/4MME"+ X) =|4q']jf^4aM>A4mÒkE2ЎMD'q튭J8]"[Fd@mKP~b%NjyaV؇lfZǕ2CHWx Hx:3-=5ӿdbK}$NP[c6$L x/3QZwd;#*g\hCj^Ṻk kgF0sO/2H 3(.A/DIrONQx[Bθǘ~YB {ы2nUW6yv<>+<_ԤLC ~5x:io]ԭ2av^ow8ZN]). L ,=8*|4Evs$!mayG9+Y%thor`eQ)_>?sa9"&SMܜx %>1ct}8f|6P0XOWwOhMbWnωH$ Eg6 g|oGZV6L-M ,E7jCDVQXǣsgruڙcN0.8 !u߀gZY|T$5Mo@ǻ+A6z&7׃`͸uGPs(Kͽ`/zwZ%Sq\#snj7{:EmXd0 "wl&pHn6oy .Cps L(v~~ӡJ^r ]P%l>'1&vH|IXX{*3t73;gly{QR4*唿MYgNȧa U7Km]֑wVvjU5iX@;5;=fZ 1*]eLY*rdv]xJSK>;̀%U)?NP{st,;;On)03_!9V"#Z?EFF訚?=8@< B7I<;Zxۯ7%ӎza}`?cc/'>Fq:[ҫ@ИDf,I_gՇi_i :4ҽ(̏*vIt}An/oܯ8emo򍕊 "2É.Y Ra5?J:Ҧr; 6]J[twVvݯr7;{ټ'3åp7rUdHJfCAMpHcOM`RUߘ룄LmDi82#|e.N8%yv<_TԤtAGx^o e9*vZ#OE,,3zP $m-2 6bҏ»'Ϝ12/֯ρJ_Y&Ap#/ITϩW`Ho~^+,lTL6t5PMͮ+%{WaP<є v| \G7tZ%xՠg9zl\Vۇ!Kr $jHn4eB6l,s,GH6JI2˭=4Ql #mMP99ƷqЛh >J+V hm;9hFY0M&3?dJZR:{wI# K6ŢVi+@oZ'v PaIצ>F,ŧᴐ KP{>Y,kuI2o. '#%OQ`/WЧ㶏\5X4(ŸCuOuP[? CGRҵԤ2u_ၮT Qz!ly"vOU`$3Av6wGVKgMzotקť )i%gk{- L1_2KEY[iӤo̲-(Z,nޭJ.gj;بK*0Goa Dޛj#J&gN@&>H!oM|)jg fk՘M69\b"\䜩&:q&'ŹK|mmׅwjI,AErf gփxlq3GL !aéc≒Zm"M=_$(>icxOť4k}YBz[֫yx{ ]1W RuFܫx\vG$RExn1D4>#̣y9}-jJOB㐁rSKN ‘uI`: p؀Bm:[{GPJ":/BMT偓uZbY_+L}~^cw,=`Sdg1'SOWyd}ko~ТP܀zE] mi{0Gg:AL1%8A=J#zJؕê@"^vEPfD9s*|*wK1UctiTI-@<: ~9;gTst2O~thzhYťUTayX+ģ@#ᥞ 5 㡴i|f Dka w{\o<6Q2|(iaI{yjJ ߽CuEeqĮvWl[8Cj3QaumО=FDW\9<_"?t<߼뻯>vm&[׎9'ɬ"&wQ'm| 7[s9h:^׳ AxO,ҿL'ؠ?W{AjL>B8HG2ɘՂGZz})kK]̉iU/0l%iZ3{Wj*;YѲjLjAhroJf+ C{pPbd7p&A?/o}\Mz3`V"-]xyo!sxdBS G1'skcGeP*1J4.[Z($oW,$(AJ>ᓤ3-u^gbsRvb!\*(C7{'Go,P\żaHcbY^[8sŴr|rW1$ֱ$g]bWV$\F(L'0LV˭yDNP]LU<-,Lg7xe4oy%ͮs~bt2 *$alǙ"J*uسdσ(/0By%zsKุ(پP:Wˎ&쇸ŸF挈>ѷK,%Fz" W-/i>)` "hM#CQ#ϲr'[#~ldYm.HE|r?vk_bF#~,󖁲.(!$a@pfbBK9"XK) w/U$dlQz)yLL؎뀎yD#vR2ne=<.g}\@ ZIf #V2<*r|~\>vMi S3=ZԢdpĺjh9q_xۀ2 ׾e?lHiX]曱SgٚQ]2ʪhHO3N~_v GPuo?J%&;\]61FY52zMh(C<Ugz=MV>dU^\~VHX5ĩ6O꺷Xzdy#tj>Ӏ_`gbo8PaXFɼEYTNab+j+ǷpZe3фS>듨b]5Ez2n@CNS'߁F ֻ-8X͹S11-qXŤ8{l΃wHwz_4ild#Z۔X?^#>Wr9IVXժRBdOW{M3G~C^wpiCE]T-A@k]WSapo@#p{; fS/{п7^*`7+ w[AD\<yv9}$sF7y%5V hF \=gC&I1fg8toDZAQ#h lk]?@WԙȚUl C՟! ̒}V "Kp,fS8;f&;;)#;U & FuhE@MRMfx2bD[XlrԬ^Y^gh{m%x$ېꅿG phC §`H'#I.+Lt+1{ ȘOiHѲRUP%_d)&^+q[ JmE̎gwqw%{H ȻEU/"hb=Po6 "O%c/gմ27!R 88͎΂CsUSy5 gV>0۽c!ǍqZr0JN 6W\S+j&gy`'eaaH_S;@!ab},%_Qv*9ŧ01LO &~b-|;VkVƺreԬa(c0Z "ы:|$E-Uh2%EǜF:Gh^XѦ6ecok(֌E*eMKel֮^5@nU? vVɌ,s/Ŧq"03qwY4z*Z{j&{ΤU/aiQxU`y jD2eVDkBt sGD#L^|/I1cU%xG|UCVeYN  /9! l^xϘ^+=B;p_RX{/L -ƌ,0pEYelI`mt;S_?.J%ˢVbA$ Pѓ s7$h dB-#];Hh?*e,ӕ)T@8?qe*K'B LҦ:TnTђ>*)oYY&}XTkXSkJ,״x?MmjY'3 Z?'sخ{,KjBe<IO>ϽYS2!_Rpaǧ~'n#`u q#o7/b,tf#60PjeB.r%Em>b(h mGaX:^Ϸpbҙ(f %:~e ܷ $-bL܈zR||{ӛLg//m T| nګMjB;i6 [[s3+I;-˞3~8΀}l6%XCg*9QIz73*(ƪoҸCu5_!H&Qv$hL6;^4BU⧻`bタgF^qhr3"8.7b^j#џ[u0G )f>%x<~%u 1K MM.zM nPLAMUN0nk+;OPv8&{G^Ij+NŁG ?Sワ0K7Ẅ́;?{DXVZ 'Poc {U-`. i+mO:iV?# =`(OP‘~͜=(3o:X?vZOӬftq7u!̚1,w|>pk}{N"n lB퇱WRE JEʐ^@K۸>\kh7[TqE`oJBl!#8v c~ͭ*, A݄1A<_atf8q `)5AY.PzjkI;߷R`ocNiU !M1P\L&c{؅|v><k~e*f}av F}Q%xzQ?{➰ 'h^bGgB1eKtf !*JWsrFF;t4v6?J#afx݇H7Nv=0@[ZՋŲ[8GUFr3װVe6qJ16siF|Zn_*\aYlaǬb*Ef&IUV}YswWF ]Z+: Zm\b3IH;ʻ 5؝d*@RUMsjDkgX}tTMO:ނvQH>`dg77vL?fą,H|;bNcW؎UFJ{^ MOC[<:@}02 w6@ăltK":4cE{o$/gb@M|yxyڰH ?_Y ]uZVC[v8=hH۸{F<**E/%(e/&_5IQnsmv#0e1SkPϐ3G,bKҾ1r׌˒an &67XªP#qId*V3ώ~53?&2byvWS1# g>GgML,֛{:Bec#.::9T7§q:~2"vKS򗝙qĨqc?v¨oh׉^dYstGVt::7Idiy"ϛ K\J`! Qi`Çaŵu-?7FmUj4 XOOukKN"mftV-._>a/<'_FZRwOn ]&̌2#M$]g ={]}E?'7RQk6 m% 5NۻWX}RFm[V=Nq*7`*l6_joFuA0brN%\7zzrkZgqe;E&KJ[i_,\WaECPglT@V{pOyſ5j'Ι3lzޅ=0 $mBttFc ~ O.HT.AsuODx]b^"ӵwxx|4'7-l^Îg\J07=`?2 Ae޸Yx"A:# R XpF>נ_  O|Ó"3(;Q}{uX{Xդ>sd}\76k!:*I{¸uʝřث,o]dg0~Z[rq:?;6y J?O tQ-ʖ{eSePuWM&{X1y%͊e^<6Hs^> :Oټ(z._}T Lߴ]I2JX̱tdld@5}&y؂99%{5|t # bLjqI0BKd^2jx uŨH&Q.CU$ ,ۼA&Y)27uȯu\FspD>v? rf~.yRbk90W?Ê5?}o.a]vl[hg[QN߻+}/4Ǫ2cxs:9o-)݃їWQTʭ=zXҘff}D> ƧSim930P?}!\F1L?ˋry`i9+ձ(y+zX.6hU!AW}dgSg*NժT9P·GZ(^VGzՊ?fD&P`^h;nULfLz“RnxmK_kR%dؗ&hjqލNGN~}zPuF= "<=?u-eiR*uE3{Y-Zbj `*zE?pӍdMMQ<>1p+Q\uI0y弝xhMId4&p7L*+}e!Br~E/D|3{K7bf0Ln-- }` !M϶ s`Z;X~ I'EF箍E&yo:_|z|׷ *`1qZ8r"g4^,.-.)&(]\]EH#5ᩁD?mG37Vr5Dy`_: vzssaO3 7%jb*_IKPnt u_NMCMm)K05cdV~1*ݗ {%6 򆯑3H3brJBF*eA֡j0&*6XՇ{iĐ49ȋ3̺ t0+ajG>$ny]%/3@U#3d6+F U eANB"2Y<{n.o̟Pp&Ѫ L1H Q&aJ-gG]t*19;*\U!kӋQlY_mN WF&|` <&Fݑov#?iU%tb\B`tR_KPV_\ brF&PI8!|QՓ{DiZ4M*@ qꗐ=z✻daqh>9bePp|q6W@g{ Y33r"w؆_e'.?]Ztz(:=7f 6;ݍ s2]RϪlLrH'*KZvWb` WaNaE,vQ2\"w>M$s{>=s@4 %NjY(gkFGa)w2sTS:=0ĀI b#~mn<#/u3(~6OC:vp[Ҍ(wTz$:6! BG= 7ɸ9B=]:$Ptڕ ItQCwy *#BáLyig.*&' ~?25OOܕSwh{΄Ik>y& D}opgQ.7s-w 0YtSqk#G;ԱOd*43Ǣ1\3u5<&+u%/HRNKW+63g=m]3!\>gCĬٖli4-Kp M^\/ ~B9^PvŞ*l3b0hVcB/ekհ ư< ^aWh!씶)ugrݵa۸1UU#/d]:./4lNXLfNۮ|ajZ.l fz8Q, K:>)|,BVCȹW' 6눝v#{רUK#W3Kp):1(ٙmyNjBsxR ٔc"vx[ & >Vơt9fqa4X_θ}^> ZPK|A1 ]OIQ#nuvola/128x128/devices/mo_mount.pngUT L]]APQux E{8_;؆1gecN9-Ǣ$J LCȔ]:+b1r(E%LD%0u ׮^|lJ : (mr۹J仄@((Pj'w]"B#Jܖ!Q;#BOop[(e2 ы=ph0Zgu%4@1]UG[r-yjs ۳_.V?)qy,)9lnDVTTPQ=ccVF,t悠'q&myne;6%Mcy! FGPkZ5$3gylMJh}2 R8;K>~L>PߟVa蠚N^G8٩bqn<e{@ǻ'FUKߴk5:9ZymɆ\ h4Y$oeؚ_3 k˪N`KY̡_Q +QcXaU7T'U*OynnJ޲zGn;f]$2+K@-=:HK*h^[YM✜ 젵+5H1dS\$x7/V&h.@`3W]ЪPS9{$Иbc\. v¹chf&* Bu"v#VV׍hU:6}=nLsd+#P|~4N#{mEź\db7,//4;R'7!zRݥotϋS54NlW31jpNGy>wS)W5RR:H߃y^nB3 Tj.Iܸ)' ]r=!O lU46lȥ$CJƍ^ O'*oIǽLb j4~egff#)CWY?hlL44 }Rpv!o`*S*p)/ HWQj&>}PH;!Ŋo9] yUtPBE]mM~./E&W1__`Cƥ2J@15p핹ۢDR\8gh49|8Pr z\ |-\$,W!1 op m^(Wc1 )Kc. <KJDٻTyY;~%+@LWI~W~c?_4aa`׾ c Jɖ)?ZdV1ټ[&Bex,]}}Ms9h@ͰyCWݧ~yCqT-ޭPNia{b*u;/@0t7__,qhFD G,#-͂k={KhqNz-7i<T±G?z>kԟteML)`=C9&;tt `*Ѵi5K.̋.ZQhIBq2[3>/Í_>(zF_dR^\2f_ w i^I}~EOt`r?H1Ne MDӾe_Zv/n~2y!{@.9Se/WlĈ-` 1 X,ީnw,~hh@UmUR0/II#!!H +v8VêuWrf^0E\J9)V[5d}h˚W'B QAΑs!޾P8`}g Ȁ pά*K(Հ'aŘZIkʂ:X0^5 5ސf/ ~KB ,j3}a$)\ΘOk M+P #:[0q>.)c,MӢe~iX#s'N@7dr4[ e`4V̅\j oAô̷=,N͙<0PIj5V>?mОLɦء3A_M+{xh팝;*_эb~L+7sECsi2Eh@bj[aB.hi^5.ЕJEW!~{_ӫM'0q#`Z~mN.O^k7cr㢘9QH 7ea3ȥ ZQ-ޭ-ZL>~Ɇ8S~}х|,1\_% ڸiClg<{A>(Q} !I,@n|IB[['1KɡJQ aFi.0+Ly MJ8Nd}+׬+ڜp[t-=iG[e ǤꝼGʢ W>5uGDnn}||ٳq̻YMr}]8j/XMEoJz:S?a7;h/iȿOg~YN |pjĒFXгriyA|>/JSBA4d~+oe=+h@e+$5nnxY?ХLݿ>ct9MU￙ֹ~S[Q?%ԣ6C ;3W[tJ<ľlmnD7!HNK` ZrD~lSS<.G(Uڗ&h+qK.pq8xRQP@*r=.O(%?Nzu !/# зc6z3ܚ ƸRX{\?<Ғc%+0ugRU ctFq2xg}:u!T}{Xh7{կ@t8UwumAKk?VeqMqK+JM֪fCbrMUrw[KyW.DUFp 4-|,x.$5:j& ڎm,bb  rC+Ԓ|EDdfȄA} !M7"@@ ҿpFW2Zo13O浫QIK E+Q,:e$ fs9yb>M <)Ead=[pE!e1seB6$XϢʭF:JRêr3@ ;xf\ڨ(<FUV:⮒W,[Kcפy-OD'?Hd 9NOӋ eȿTOe{v<)8hXvBmOHíRT0_~%-.ゟ_*Yh{hT\E(:~?QݘpA.c:"Hg/0.U:`GXr_hmkԠ~7W۱xrEC0}˄17TͿ wR@yI5w!jvԖ} &Oc.3ÈԕNNȺuM @9<|ywf^f8/Q!| \9UKMVUԡծK>A #u% YGSe3N{aك+%OIߙz_(k֥Y֤-))tlA94w~.~k;olcLTÕ^m vV"jmw򠥝'2R}\FK#5MGj&-ǹOOQ3 $χ3H3NWvAF6HCc=K}Ⱥ4 8˵~DnF; Җ MOȕFH]O#؈)Sb,JI^=IԽDKAbMDH*d%QҦ ١ں=9#N('8ꡲH~iY, ~9:,j-._Isc&2)+/}?=t5gNٜyS4K%{dqD1ox& i"A[Ue{݈~KLu!>{^/^ʥ~m" $>&+@{ouaSrnrQr<{mbDQ~j/3&yϊ}on5zr0}F: psCe)sڼ%JE B_gYӥ:ZTU¸+q'$:QmO yȆqgݿtyKnωT!u(,Er[F/^[*9Жjk-]_\1P{ BO +6~sb|4\Ӷg\[z<1u fdK,zb LSM_i;:ꛨkqYSBH *DwwIݱP/ogw krSJ&dG33Ĕٵ,8ye,6Y`|IyPMbLB|\H9#V{\h+G8û*2I> *cdȮDv"ecG,}]k34߭@*zօz$WeAƅwB(n(j]v=uwHhY?{LAYGketcT@I߿P/2(?HC5vMwe}65GC j*EIҷc< K-1cytWp[ gF'P0܌%! n̫L^eyI_%M髟z#)~>xPJ٘yرi 1Ҭ|Wʷa/{y"T Y s.JmwHhS{o&'?DD:RE2} 4̢PR %R~F嗲#Sb)Qrj8KQo2KqiU~U7v,AlBmss݈@ϓ̆Ƀmon^b+uJ@G{ߟRqqPL|yDzD6ˇӣf]kst-1NqMrbuvG=jR{J+c0_C@Ǩa힬}'`K@e:Ϧd<.5*{>v4埻\j2ᇩ^^VP:qǯ}UT[zIQ^ $k+AȖ5Nk qqY7TrQ* M^$pV <}z$?N?c6+K^b},aAnDRߘAp4'1=E^@YQIësOyouq(@iI7s U ' L~I3br,TifB|9yOu*% #'[ɔK1rѭY)yoJ9s^*/I U#l@tT[@Іt C4]Y&DiiF4rW vGd8Ų#̈eьnwOn HؘQєpoUUU'ԹeP05 d3NT4قsP=b=D]q?'iE۟z &@$Yr%I!rCڀTKW4dCIo嚒(F"[_-s.>\擙PK-R2&2a@drGp.LnǎkyvǚWtImz15 S!|lJszNt@0[k,vB Z-#/^ B vcSDUF6U +_n%JA@$'Ph%S).j :(yӍN|p.Xdq:AY*HwDŽp[ jIVJ52*"gԜ uNR\,.M.Ů !Wkά+5o)̣Rh~msWԺvr^YrmP6CFk, A2b]LNRgD?/f.O:.csRviy`3ҷ,\6bFcQ׫_L8~ϹjِBU{mࠈ{V}OP$ Kٷ"`WFh: (Z!p UCy_48*g~ 6CAourIb1,V`eIQW33\UOH l]qkO!9ZReQ6 &񞵷̣:-Ѣn(]^:w }k(Fk8S&'\V ͹a`Fv1;%df޽āD_ٻ:S6VZh҈K G/pJ#! 9k qcL5y$,w @)ŞCA"{'܊߃%"ľ5 G[JG !߼PO:?#yXImEKR,=%kd錽} 5Ki,dg6߆Sr=[nO۠]xC,O;߱Kd9d}HJ_%Nh]Zgx=a3L.b(Q;Ǘg24{ѵVQ fAF5,4ިQ媍^6o ѺPEokbbV1Cr';bحB Kr-ﺦTX [] CT ěmbޭ?eR,p\Xr^ao>lѿ? {v2t`8|P_撸(dgI?B8ݥJ'T ,bۚWxr19  n`qoΥt'[+LujEU%vntE6O#V 8qXp\!3k ~/!Id#,I,CAZQ*nܼFA+qʲV' 6teLŘ+p7pX~w`x ?:Mt>++(,\#XwXY?gVkTIQ Xq7ʕɛn]֨!mFW~oS ϵ=d4g/m )8J߬g*a Z LĠ➗e,'1 * \(Q¼ ꯇҨWO-"bkkx/څYX.xٓt$7ǴU(Wd=" $/d ~wM{l;[3N5oMjkȰWC-0KTY;n ĩ-j_ hq/ߣ?W4ûO톃4>T'ګZ`ؠ q-hZ;Npn3H  lT[&aUR=q|&>mǵٻHR0="z6c exUW֥|jґxTUӆByjLkȤRRDpցJuy>ӂ7GP|lu#f2~CGOMk8(+=R4, -4[q\ ʄZ{ٶ xV^F/;eH> l-*`Ӥ䕟Vԯ@'\ ba=}a 2?EU'%5":,S`Vއݝ9NvpD0>U9d5z1z6_˽o[y='4k!@DqWе##RV^Eԗt!6Em-C M>D_? ´ff^NZǍP2p~Y,/(!02_g]aR`{vAÎ`k_aW1>d\ Б@AfE"t2#7}21GB6P 0Ǔn䑓TExsG>ٰў?XZ!UJ]B=jX.X*lhGMgd&ch2ltQw4&eko.}O%p ŸD`ȥ?X"M[>A88!!k@M7Sy ^;e=-CsV$AES NhO*8⺃81LYn$u(]KCU8c0 འAP\9Q&coJE-62$;䔒N^V4!:/ǫ?˟U}ULW pz>ѽTH4WpD$xxTp췎s~'K- =QBzz ߎ58 TyyUF$)YH ,lF݅eIyWrar2L/-s|>1tv?}o@Ч4=ڈ_KJWaXJ_TN[b PW#}ucՕ,kH"Fl",U'k=쵘}{գ|s>',~wv|Ն%Pk93 UAdž0XJ _wA5Yi+ c&;&⸁N,]YeihۢlgcX6`>*= l 5 R@Ӵڣ:Q|f}ۙ,̏yDb#ӄ`g㳿hma4_d%s{=='S>K>3سF SYѹކAoS ]On!=2ý&t5`>m{bdl:%J,imF&n);*͗tSu!Bث]pNM0)C` ^fiOjƓ:& q'O*JlT=:Y ޶m#Z`D7|W+~UWa-y1] iW"\f ҧ; ct MRVoEcwO_wڭ no=67|;Ȓ]@Nߐ(<>R۪Y]b u _[H`9xx {Z]+U&Œ5 1zRyBpZNrcGPtd~a¤խ}`/k%%NwYj.Nvnr#9ͳr:KH)Pa+6gR%gZtZ&)*#п7GwoeIG3Mi*h`70ƟS0?MgމHyo>r ʱ@E"^6a @b&_j􎷞'9#=_VWnz!uW)ʲԢW8o@>߸Z i_#H0%tx(`5ϪvR(%A5Z9'`d{Ntqn4O=Q9ݾn=e7FN$^ 8^YCЃiQ @ցXC4iCxtTuPȷQ˺nQtoL2ZI$LT/ۯo0.k0A,^ 2D]B ->!o`*GRwqD>P&rC{ˢ"LDTƫ&r^&vW 2kAVKSxe ~#-Z^_|٬ _f=lB~-DcET c4$spn]6N' .Rwh!4M|g OO ,PI7CGOGd}l†i~[r⋶vNp\/Эx~J q9s:?R nF1Sھy7< ![xn#@,zU`e $yBD1E𙶸xr,9{̱ jk'mtmzuІOx`@jD4`G7e[j `ZHI$l*r%%*nđ?ylxսA6ŹFEY\S-kuTMl'B#`Pe݃5e PZ #or_$sBHzo ~}9/ֿ_B ȸC@zk3nx-~b-PZ-Hk D"Π?N?vFlbĐc#­+EȪō±0Wv,Kps D1PeZ\BLYoctC(dhr k^%!#dLmu4tm,KPb\`|qsH<:Ϫ!e4tڟS-%_t\%WED. On.{0Fyz[CH~\Yf!UwL4qxxjn1 |_@n啦3r!4s֙>U ))1Lp?v*7^-G2)2L}(FM '| qge3W;n֯[?oWhI|L tohsNB F=V3UD ciU2w](?^td ̣pkZ5u|QiLP-_<sӇ` k< IL bgaZ&\]\I ;|7'4IhUo̪_Q''TQwk}O^QJd=قK`{.#w ~-̐ewYoxG{w+ ~N^x84B76SE9b0}շBq_W0Kdt-_ zҎknęoJ[ѥ)M <~˻#w|ޝ𐳻ٍo3B)p7ӐLxRS+X_"*_ɄU]㎑*5ͮu"ط({-r'ϐx#/2LIC >J'o(Q?F;K:?2.e9BK*эI Q'u/^)кZ|Vv Ug:;Yi\\LtEn8A>7V,U[֐|9"?DQ[ #o: #-|,o\5yx6Lp\M( (̐?ٙîODit*~ ,:7LS/5c_-h_@wlH.p}2pHEZǷ2%lb Gdx3?iN\9ƧRk)4p+/W ' ﻕTzqVʝ 1Q;r|+hvL І+S3tcM!=s^,BI|mc) As>5a>v k]$qH۳[1aYDX]ece0Vne#Vh utwSXaVE^@/>q'0"Ɲ}g ]Q%0W#ZZ,ߺAB!I' =NUӔ.e/#˨wZρ,F,[3<-&gg1h8MAJ%^Oކ g>\!py NѲ. m Y']H>[zr&2%FjeܝQB;k06n^hJI@_>=ٹn뭭8 5*~"n瓼VE_&onNծ(a&SJ~G~sC:n{YO+K]΄[ܡTkώC&UGj;$+|Hy0A?z ?bO,`C_apqXDx#?~\rs!Vu\lװ̺5!U?R7L6\Gw²5RS;ZEʟnza!xo $^ NK؉kAKش4pdThv/Q>K=wc߾a~thsbMhI.r-nD rh+s<tjW.g= w}WpDQ]3;vIOb~Rkڍ/G(-}N/b]<\ bΣ}lAk }whVT~}& fz]29gϗ~f8ZY~E$Aϲ6l>QvMH0dEa#DK+"?xctuS2^ Wq*MgFR贒znvC7SIs 43/˺.c<}Xbl)E^d\,NڀQ,Cǖᢱ<.֝%yf3Cn/W2*MW6pƃ({Sa twpL.sc=xaINx*AެZvο9Ib^b,x,+A(#2?j"שML,gzȰÇwwV"Eq:9EDD4f7sN*]Z6vQ\l>T>`TvEE5J f)e!N.K*&όɂ$2X[.lEIew 'X/)mG?Pjs2!äG;!ߋʻambͣ xun#ī7qEC7߱lJəgH d:^y s4ZKi!n6SPK|A1DF%nuvola/128x128/devices/mo_unmount.pngUT H]]APQux gP6P$!"E$bAl"(% `Q; %@D?PAPM.-fssk!(-ZXhhdiQS]|-SotΠCo'ڝIr%P FV_1ȒR4f)8gOy0dtrEEҁ(+K2A"kTsT}m\Q]A9WS̹ڬu Kph t ҏqIvkh `(® W)cQ=1U:%jZd{, 97D~T9S2k cPFtZ*=ĝl9 }MZ ˇPGd)=7g: ]+f |6" OGHS-z(ӻJS]aQ`vbj[4FsL8Yƥf0^oTﭠ!Gϧv8gfƾy~Iݤ͖2IXBc{ p\7! zwr+ضYu>=%z7p$Nt{hv !!9|<_jmo~԰ҀCx]AD?r>!fEVBY9'SrzK jseGSr RULj HS-t&S& 'Gu֓(,ciA8ihpCMUY ~7_hɰ{Ǻz noWfph}␱'pjA8xjҍ3h ΘATۘTQc3u Ġb ## Xh/!'9:뙚B{B LOv+&;tHcb]۶w=#<1?31r(YlKT76TQMӝ{46Wo(&S6r *q^Lqmvs8$u?FXUAh7VpC[iI7t,3FE .GOvsɽ{4OOB@t=tdlB`c쪤 !7_;8?'jo- NDd؊ }&Mb$7d-t^ m^¾u jO^|+}y,X80 65qnQW?\@fG#& y' Կ*\#Fv3^[G=nhh9c @,!T7oڂ4uS8nmci|Y2/my'U~|aQN1pH;$q^+ by?` BǡwS5$aL"66X,Gr06 5?R*Ab{/ޯV'5v Hzz{j=ᙦVz/OJaLL˝@+_p2v[E$K_/ F'/QȠ8`zxŀ&5^{;*ݳuϲ09sM'u51|uOz|Fe~ݵы8)CZ$ w9p]ſ^ M6^=l)#A+J|m֟xQ-TRqb>%)F)"HV:i>Ang Zh0OKEPP75 yuBkM\&~͆?8<çXF8Ee@(znM4 rJ4>S۸̂1@^> $TZ*䖖QR:9-1+ Xj'r|]r/31 )zGȧM,e>) '|7_" ?|l( z`H6r(6??X" ckV OW)İ>CK~/{w5{vX@t?O& +'aBh:f^+{J[amEMZ믍xȟ1t**Q WN_~O| %HD< l+R47~_{1"<0ԇR /` I&Fޏn'&Ұn8CNM[I$=m/\{O2-@Y]KO Z@&ܲz^|YWP%:ױgf16|rؘD.|47NL|׉zdOf/ hj]_-PT1jH^0lr0xc<'Pjx{N P"|!'z*]Kj%,DJ0OS\}p5ڪh N-m<1Y RZEu#A5ɹˬ%G-wTh_|:o{73:*WXC=q]퐌9ˎ* @$ :,U2W+o0jw(=Ƹ?&9~!+\.*bh<5b`tYEEKW[d&^] U~5#D񷊓] 5yrm!9a)8`JjNAOkr(fe}eWVM,zX (RGlJBqDOsd4o0vaUcr+0;c7½UǔGMCq.[JЅjNLS(-Φ3vvvnyֱnrŴQZh5f/Bb E,(PmfK^LFʙgp?xj1Q]DөAlbya6@vvv2(tfځ1 BadrDpb})6( Ja_[3=F喞=U$e>~GwJZf~'ȤI#xo,M$ e8#MSKʻ˖gs_$ ?6e(2*fv۫A)$j/-h.rGO)j[OCUUxWsd>+fMe v5;RVe˖5\0Z[z\XXd@ȣ/vx,5Tevש)Rs@xu>^Kab JMYmakOpZネ&0_t@nTM/beCPT92?_,F4CEbӧ'J{)VdslHT$bQDynTt{csԏ=0=PfnnI%%V^8߿r*+5OZDߔgO ڬ&_zaw3, Y3ـra=Z{8*,+E 8fÇ".).GH`F-&vy}0S 5+um ߙpv1`JĨ knnr:эG=j,M7D /X;:ᵯ'5߂j, 9\>gW21u }GJP2U36WU*-ag9rtXmN\-9=MYbV%M ܲne?"^j3!t\ߠVI<kXb:0HYO\Y+nݫoD\'g^aFK“q 3WFT EZ&.tRYLl)uRzeǺeDŽ>u*:™ Z$"[)'bCT̞1LwAN)7 M/ ';^l,6Sƌol5RnrX _!2~(ȧKg+q%ݐe!Ӌ & rI({^s#[S@7b0\g*bdWKX> B O~J;Q,~*]]"K.C|5Wj 1(((̧6NTdvk6c\ L`-CO :!uA22ڀ}- `p<$P)6wS7Ӟ4 >sNȶ Dkv%U֩t: o<.i~|~4~b f'#?_Urm/c{R-$h1C[H_#-R;ϻ0d :KW6!>ݼw#L؝K8ئ6:zP|'8e12(+\U@΋XLUŭe*QàLKi!8`A cGe-H'錙Y%~}^moc5i!7@!e>ܥ㫏'ق 2FxkasdӻSsIr}E^)`7mnNcZf[gm<b_~f%ж2Y\Cud[C~&51WDJ}s?U˦BN1TϷD-~d߰zcP/rY5ʬXe.{(z$y@Y}7f| g[ۂU%Lީ {|Fa-)jq.!-d7鮓8H<Sx2yOCsuUr#_|*ɔ?uRX^&9 P;!t'7dZ*ةHYɽs}Wú7Z̋!hE5`ʋ3) 9vu%qZAwXB#a4L/ߩNTW'x} vRk@)<Vˉ4&b`*do5X yZ\6xx~)se$ab=\Kj|>^lmR\jP'Af޽H1{';9;ԴY?F]vq&|: 3l\Bد0Zc0BO R͓h̹% ^'}]fO1ZYXt1v+N@qV`:KR,h&hW-L2<{R ,SxH1%>P")AYJD3Z3 g?apuE2I wiPӌ%[O`/_^2c쳎B^O>ZL " p5C0M=I!c`4n¯VlKO^F-C8$ɋv3?A[dPBƢ㸈"'͔/5|7.J/Ȃ%-KX忠;~NݝktI ]YQq7oo$V p As҅ ҘcQy+\EPZgM"oK殈&뺮#!qW@˝Lio-lBUl]]xf76R,{#Q |L5H S&SS3`,3fqFfhvi Ie; uTO?I.cUhK`L=Ee#fJ/ =)5 "\W2JDhw@}q,̚H} 3^jQvlLߊyԽ,5؂|84dyg0U;]zt_lzcy)yT~\?1j3E 3>9M y h@11ȚEKO2]Ldiɤf'IMWJJJ5@uuVMrX3E>PWGK|[C52<~6=e_NiR$ E sKX4~~fg+})KTCD9$Sj RM%kXX@| t~1l{ @nJ >:ȝ'^pR !~Ih :9¥Әs 6~޷pcwj#]oۊ[.MQvH:3s#fP}kI DLɧOaj`sBkwJS.fAR%UGM>Z280 fυ$>!p\ PRLwT(S_">5C\[XRfwׄ!Hs%^Ҵ#Ѝ^"wWWpt6$o\-:Wsux-g7Q*z'bb''|21K}}ǧ>({DdqRu;z4]}%W究d_ ۜ$|JmzqR5 s8r VDxOW.7%JAӶk DEҜV< }h6<&ŘzmGiٻ*q(+fuhhߩ7/ˠ7Qܵqj,v3XFy+@M 9(4#`k}HmNצhMH oH = z8 Z!]Bm1(wEժk]J:%=a+v.Nșݓz $qMGc`ڗ6KppfSQA#„f;14֑)EEŞﱅZ^)a6inG6$:$y_mHv#.(gqWqIf&o;i"uv6Tژؠ58ɼ٤5/~3BBf丅Y؇gɥ RpZh]m'r%:)3ހw̲.qq=y nkkUW%.H*N| ,z o+sE^9R.XU,.l6>Tx\> 82@dY]9`ޣor̆VpON:. P3LG ;W.ۨBBav K(XbfaJzbO Uo}9MP8A$sM^c؎珃>vG@.BQ Yܪ:{? cZ뜥 rȃւE;BݘvxZu );+BPds7bY# ZXTU,qѻWл4ASN?C?<4Maׁi7[6=yj']%-L2n%WG:E_,-5eQpzcj;w`fob7`ّ bAGFRZ6Lv.fJ,YgUCZ#|&]ߠ:I*gu0#\8 ݛ nm1[9l@7PyGi CCC !ʏ6|\)z3Qc5{`$~jJ2lcIͤF:GE_![Uoʢ:ba3g%Wa8ۧWHmU6ش8ڞ1mZ6vF'[DjSpdVQtՌbCN!ѕ,ڙ a5D6}ZM^Y%\{D7wſ3o*[߹2s o׷^]EZ\~ۤV`ҙmQ3N=@zkb Z 1lK/wWn~)v{!A0U뚇/ا^]atJ~%E5_Op#}t~ LX:c pFg9'r3r*Jm^zf0i#볟/%,6eݸ<ฆBԉV;RYħ75,D~wz^q<\6i3I 烴>}6K#cS4{^kz1QE^Um5u5֤ˣõ<9yєY_KGUz|6Ε:[±ru's엉*Fpv וc*J4"z_lq6nd]%3ڊ~I￴{ʃ Z.<ƺ(>)*lp7?#d" H$=s@Ha⭳7LjPkDNK *:ԿSJbA7TG BTGAp;y@UUcȥJ { 8X#*uٕDvt2%ܙm @w9dm\CZLOPQx}C>†C(r*B9P 4 ciߌzp +U|RE^K# 2v Gܶk0ωܤBZh] B9-xުKlDL.gq`5>kV&WEc 'SrAG~c{8F9|t ,M>=(MXzEztUmaߏv# Kw rf}9V* uSc@_>؟e/dg/檑Xc>J8|NI`?0D0F %L:c{4-̘Vb 5tV>Wݷ7OT) GFoTǽT+퓤!ȎǶaH8.A!Q0a1wb1_&ΟSΞp9wjg/ n^T 3Xg|u}N"&cn޾ʝ.8٢ HE}ay W+[ٍĭE)E"7qL&8:*f7RZn!B@o_fAaR ݸzD.>XJcjY̐tovIe=XM{7{r5:Ւ,u'xP[7g}8]K7}_o'ZƨŦ]N]㶃; W{`]D}7w>8@7a L%Pa6mScz]1/w5Ty(>խz58YkUo}0peWO8`*VM!YNnXs ٫ l\EXThDܠUH* h1©?c]=,9un")L8aUrN<2-$\s|ڏ6J6ճp| LE,;#+m[oD`!543-GZtDYh ]e"G:. x"%zw7XUIJ4Ǥ]ʭbݘu%[Z(.>zL5 s)?D%aG{Szf4Yu+^Tmy%H"P--76++'õ‹o<n{3oOe܅4Bf0~:#8ASY)ni^<лamFmzwx>)n :bcei%z}z#K+!7@ w.g-ETJ ]Y,s.? KaȽSNu~jz9*L"7}%M m^;0ț/E͠sba~0*z-mD?CI  cLUbEjU,pZӁci+%`VҳZ[;M݉~폲B4.J?L#j9`A?:gt#!͢RZ]RB1a4O.DެR{{ar||lmkpN[}EKC`2#X#e+Kȶ_|@>7kaY=auWiVheuG۶!"p<Ke~8=P~1KW{^,œ/`|_t~yyid@)_xҕ\Y^s9Wi myxd^W.z<}3L{Q ^>7K+ڕG] -6G7rܖ \H8-Ob2 -`ԅ=(Y}.UiF7OkD[L'ޣDFE~qv Uڸs?eC`cR$k#_*op)8O{( Bme_E4^!zfrV H2#g4q'> Rة* "'Qq`NԴ42xu,hP8XM!Hs#H-4](HtAq-A`|Wyf_+$(zw\&V}I.J]y}ee9\MB5^ {w"Ǥ[KI͐U6HYe%M9ټyTtVIrTYf'Xo\u\h{1@jd 9H'o,e7]-㼝r9v JÑw}t"9\Wpbv;ꐚuMwv]B8[K<}ΝM\iahힳWέwO%޸ n^he5:;8=?y>i2u Gjm#xzGGqw VU1U01~e#hmmv@k^Eg=x@@ar/GT!) NP'e43c#h#a1O5H,d#SIrܾ|}$8"h>V'"Zvd͉ӵ _"W=C[1!ṱɬU6V%[-@^rZn߯ _j QxOrپ^X!^B?wQ7UZnRChcAcQ>4p˒ןXyEep0sǮhJ>'\OU vP;\MoEpf܄0ogq?6Ju(ZTt^l9wPPADRՂ}]6՛G%x"m" Hy,|!ݢk㭙Li cnZ3 o)x枍=^JX7Ҕ_-+Ыɬ_R~ybp_,[Hugﯽ&^UTLd?~|\i+ܛW5O:m˝~iESIɘ[A6A޴u4`o%Sn‘c6fSD[}~}ݹk>-ﭹ%ໂ =? lUxepՖъXu^sYNrmd,[ahX\`;%]IӂibLclZ K<՚Jͪg>bB$os;7eC O0T)̄?l orݗqoe#q^Q2}ɀCN-rpV'ݗDlf>O+bA͸ʴ]zG?rvBr2T-#]˾aV |2Ar0~\nsԸl'eľiŨ( y]Te!#B<ä)ŢNE0r~bvJnm>T3Ǵ-B<֘L?v";lLC±1Q景{v\GƕY2IdULfSXOԥcEz/@^OɆ)r sڒ\' 5,D1m}{"m^hMv?ي8v?uZ;漛sߑSjd$g=izDNB+΍' 8+BSq!i !XY>{GRQoگ7FE qf} bUUcW^hnW;qyNx36̡˭|ƉsǝϞҿqɰ$vWcFSDS)`],c?e8!Lzlm/iԫ1dS{ma ,>>C!3YiY %27!jTlolv8RDl=A?y X f'nQ q;츺 SOXswwKaYϭL_aYV R@{y3o8: ǖ ٓ.?YyRƛf̥юA544k9e-VIrٙTяE p010.GV.pC:m=^ FRCҕ<XzsIn[Vo =D]U P\&HJ &RKK+_H)}uA'Ȟ߆ok~Vۧ]W~ jM94ɐ&gv"=)rR(wW%g1iiaWح:]uAKקD bt)AQGӼg8hq 12B_./;lڔƂztԩmQgg`{y>챢,A}ތ58KvC4E1 >cl@F,SN(l7N&8M٭t[;IވdL<KgRhw\m ]9Rg,Yl]>У V.ƗT=[#h}:{XBMdgJq'&X?T0Ӵ0al r-*&[v)9NaZWCum+[7| r&B^nS cm%q}AٿqQAzx29 RmF6 lim꫈ e؁T8-|L`LJ!q;!HZ_,2thR?%OXp RlcNd}k>U8+t]<8<-G%**k!7zνsyYuްF>g0!XjM[Xb8!!L;&VX)Tk H;s+}gV}pҧ<1艒!%4GO3w9ڔ2GYAQ-@{<;hEk ҹNU㭗c0'ٕXr'pgS= :EKV+@ji’Dm93h&:YAl[|hǿMeuLӣ2?OXwi?~ rEz͒Mk:{S5I5e:|^{ں9dSqYH,2/7.<}|/& +A$D"[69}Ɩ#u…eueJRPbJҎ%1Tu9i#ͭm9/*Զ $?dqŁ[,3cÊЊSc8ǻ6TD+e71}GCsŬK&օEIOV;};ʋCR8jw뿝?ǦPn%Cٝ@${p{GzJ2 9ws4I'AFOўOϙg\n\էW#H@ |[L͙mIek+gaӵ[k[M{~W%7ijc{І:41;#BL5 CdH5J){yy?&]EE?d=°+φҵ=@ Pi&c^?{ǂg1(g]R|/_zu v#E}^Qu Bha@]2\a828^(wѤ$p1(-!'65ZIA6 T&SNr>8)"-| vůؒ>X)ty{M.=#/2o;203Yyڦ#5Dn~i\>(LOɍ[,؁ҼQ޹y!ywnCoŒ.0  Q'(E2VG$`tV (~o ./oʑTo&ԴM骽oyNQϴnXأڐ~gc-+,lK'n-ܟW-국 >'4;IISiEgGǽ%9p`f}ZGu 7(2h;ʤ$3+aqNFq1b8_6Ӄo>67V\4v=3$</͕3$dRxdtҮkcgehI.mBKCoKݩ̊6mɋhgcDYޓXY j;7kiP вFiD!JA ߎFbHceI|r2SB2$NwVUKlG"p@Leks3cx=/`2ۛlD2PHz?ǓrA! PQN-.x !dn! IefWN _Kj} X%2U^ͱ![1!z3{ ޖ   EEEg:a6Ya-_]...YDBNkm@tsB9PmHC%hh$^J^R#a![b/(++R玲,90DӢͱЩ!z˽%,G PQQQyhM5E"AU?qdΚlr?c$k4vy}bRDNQk4l9PJp.6)=!! ZԷn>7I` led \& ^2HJJbO҅DC3+9¡w1߭ɁrUpΧV@ەv,ʄ6-VhڐB/Ɛy3C2=" )Lqu:E3 ȭgV@ϑ=a?STDkk댓,dB-r1VIlvd>C5Z.1*=G߈1. (t#rC-KĮ-qx=sh\,biG)yYKPQɮ+y)ng]V`Lڬ 7zճrhEo Mpv\Du1\d*H{!\Œ[61:@yϊd^`'@!2e*āE\ͫ6PwS;laxDW;'GШcd.gg"^ximsR`lN?53.VIV=d$>'Vj )HU9 %#l}-kyAk,%1"@SX4Y* (''7ڲtZ< M $YUe^XK?]8~cF8<&>z gS_J7AZDhv  >{'i34bdT n[!xlrc&G)1C~\1P{0>:]]_PD چ*p!w~4Z%_4,f~'أJh TVEq!YsN8.?Nqꕽ4F o͛J> -K iݐ['{˷e>/2HivY6ny.7 s(yf ͵[8m%hYßsIخ@9x,uns=s~&08E@F|Q k]u??깉D]!bY%F}cpr3L`S$P`ڗ`7©SJS+@xD  X+*@Mv:}3_ 4..  Ҟ9*dW}~y;>7n \zؒ!`0/6V޴^!NZZ*04$di$–*%"!/_nQ?0G ݉ԙ|] J˛|_deIagQu)2<3ws푦&wK&bq|i{1Uei- iGajƥ:*)KT@4zl-%T6 ̶e;C>Pn@c,pb5.s؋Tv2ϯ")*uҳ(/%DN&>81i6N+S}z鸤ˌ r4mڑf4p@ҎƌVtbE)+7gqDWv1|z2 jO]\ݎEAJϸ?4#"gRGnceiW)6Ak^Bom6ې #{P]4qD1r(cDNlkbB,nCsnÝ^FO9ܺAOz`{  ;1n)WGw_̌u5` Yj xv S׻LA9gӞ IzNM7_T1פ),! ;Gh9hs;B2ঈ9Rƍh|mP N/:?I F죮ġ߃`"qenc_7N {A.hpət8M|ge\[סQl%g{z0 ?P&DÕN}}~O@_4+fˆq{b}NqⲠ3K}4\3%g1dYFP$kUlOˑX> WD~.|qDCHW$Kz:D| a%aMcZQW$=4g ٚbo tA4+hhT <'ymV-aqwfF˛a`WH&Fxpɕ_gG0P+AY>Ùӻ1mk'QbOX]Ow4OyO~2D\*ؾ^/"Zf ckR4,{K&ЈCb\erm[Q;n>6PXDVbB~rzQ2XN4/4\v}G\־pܫ:4+bƦf04x\OD|1m0͙0OJF؄7L/9G9u:ʏO&&,$=4;fZ˭VP&E8?.tfiX^k\4?<^vrcfF:b$ͷK. $8:5g8sx{v`Mz>!d6;/ CS*~XHƵ۝ZUIj.VC6fa>Ɍ2BibjwHh3z'f%$|? -Of٢jQWʍ`Jc/\0ͭ 15dd.,"w=NěvGbo&¯70ƧGKmb3l1L=%&<<|AdӂrՂw&_\GCԅBDnFW:R&,Ŭj+p%etc+]]#HޅE+i/CNm(IB}-@]ը"Y8aJ1G9I(KKF`Ȟ87([hqK-=*a4KCZQb5k2Ŷe鿯>-MiKc۟)"O1@ Y1XDrrqCqw&p4Ô^Uh x:p.LU%[H_5ňZN㐇"yػ6D0d26#fw$Amf/ҏL2FgWo씹jE ظ.X &0rl'pn6Sp#:e 1۷Af$ pzf5u8+C$٫{+]{Wx\ܫZx!y>NfrЯ@]iui !UZƇx#EXcGH=ʌc<̿qd#p:(:Е"uR_%1@vGzq_{Bs~f/)&zJ2{ g4 _J8al=n)\<}ӔYe:t{W6A,23OIA)ƴq0(<Uϰsm 0ˑ8B챱;_NrE)n m7-8m ToQ@`M&k*[#oQ{W0mxbK BIG0nɗl?g=3,97:*c<+l Z634}!硰Tę\D`RT̵f"3,2 ê'0>0:=TqJ .o @ž3C@}PtvܟYD?{8,a¶S!k̪P3%wӺ n #7:9ca] X?9.~"w0, '_Sݤl}A $ D!_pWCnG/A)֊-iOrǎbh0qb%c_^)!5FvrBlj[B*u*c!]3;!u$HcNJ*mʬD;ۭQ%e48vsHPu kBҮ*̏a) 䒥QHި](QX#Pqx>gYҾ =^㧽 #6=ۧen-!߇3 ,\jG-!#̮߰Va鄆Ly/}1|{͍jθY` HOEO<-*^9ۿK Խ(Ȫ{`&.)^hO{T6Zwy0YG g~0^G<{(o30}`"j}ԥb#wm >?I5ZƁ'Ϟj {KOb}LKOg0;{ɴMEcF}D jo1 y%l)k*SlT9gb52Ŭn77KlX'{@]:_u ιC4q}sl('|Tr7`Hw৿뿅~nɥ9eRVwB!5 c #'98,f=w)d"iz{QE;Ÿ3P G{wm x!x 䂷mfw«k -ٿA{> bFԾ-}Mr"9Ɠ%"Pό>_!ְw] ;:B߰ĈB\`0 'QaGG%|j"XXIJ B%" C?UF[:,1:IB yzkZyrM>ZwV+DEx}'VZ^oN$hv} P73VQ4SL5=- lfbBđC!VƤ?ӝ[5JFDzAqHI[F d+ Im#ZDdpY;הBuK˱ץw5' V z+kV2֡.D1ƍh=K ߅lB8θXjmT+|uBrJ]{-$'e .n!G4(%Vϩd`؋L4I{PK||A1156 nuvola/128x128/devices/mouse.pngUT <]]APQux {W]I@H)*H$t J +@KP)*%">b JX( D$/~]oJ&ɚgϚs3|{j uBH?N!< Ud2HvDƝ 9PcB#[DE ?{Uoq*A2 2Yp}Pܨow @NjPCdhZޥ2C?f &^ ?O%o!+d"Q/*L2'@Lx̣`鰗tX*4,qDez "eA&,!:qPKnT爜W/BEWJ ?+'W`{%Md,Sh80ppUeb5F^ 8vyqi=f,A+63.m} iqW1l G8nEnYgrsx(œ̃>Y/g.rNߏ5x&Qs/>P0LPMO,3N37~DqCɩؖ/ x8\omkŻ22xr<.>gk@3WGyt&F^osO`[4Kfo%ǖ0UA sBa|21DoFSu3Ɔ5hu%19~c 2]sޘ6,<+$?eu.JMQ1sr8'?/sR('O)BQI6 fڎ@!dy|VSC2vV?㸜7C1Ca 7^uWUM"h=Z-nްyC_lR da/_Tx6.ϿiWTB)P۶B1zD;B"K1JmWG X܂9k_1'`JuhMj':R `Nufkc_Qkb1$IK9,ܒX+amp)'a@v7?z[x|"1++1󲼱feK< Z9zJx9?U$Ggg7d [u-Y:);v#qTK)կ_n`vx6JUO;JaV?Ҍhs R@vλ"54qW`F{ uDY\|alɿԘ!X(>6ü}S]=n` /OfR2~.g>\D\GB2Lg@X0 D; !_>Ɯ[ @7*ʨژȯ/j#דg #~yZdv+Vq2eʺiJ2ZƳ_R1t1?;v~qws@U!4hz /8sb|bSKezJ$sx#>P <8yK,Vv` Ǭ*-6ܟfYhi*9 - M0P[ϗ/:֜ bڮa սP!|"uBYɘӡC+xBT..>U{+w}HwSNظ9ٵ.&^Gw[ p8V%?c?+r>1B_.JOn"P^mHjFrbQDM:IBZi(soxxJ4yvRݷۡB=} w؎hASrq4pדl %rǞHb \µUH{a#X%p 2J9e{|Gۦa!ka귽Q|eGnخ`۟9ff(vuӸ1{:<;BKkÚ^=Ab} R0Fq&U{Ҥ@k"w -Vd"5)!kBp݁,ͣ$:' g ir7)KmcJn3/tHт#c|;ROoNk)&VH%b?SwکY0LGCnKBBYnv1|(1zlO 0ס-eEDc3 gl XayR;i}BuzrYDlT'R!>崰0 89!LƬZ&&23',)ԛm(4KTLTY 0wXUgrC.1E1lKI_Lv5o? ʈPTjeSM5})NI!ړ0X(oOm7)'5M娞QprJ--/˼FCthZ3oSQ^)~&n[dEvJCx1]K\+(&zڰ3127UoN‡S ϥ!-%DqQ ݘ,&]azҔT=m7>%syhU4Z->xG\֠ I&U sF<C&TVmkxr쪲2#`%4z]BJG0.eo>迮%(Zc}฾DuRF<3RVڥ Tg Bq{y[8%^8` _aZWr #yk^Eg/2&:\3m_˿'$+Z{0+{93Ybx "{IQ#m@Phh,եh;19a=ڦŰ^]%]JN'췞6ti>eubUT>"%g 5|55,ic"* (8ʻ8[ [H53U Xҽ ~tA!)aBPB6`;)JJ^-1?UG^ LJ%y eR|#Y%95^Cݐ-/oɼdU"H~8˄l ^96*]t mn,3eR!=Y4`HkA$}TÊ4,x7?Wt씸"rOmlz[r-)ٹ{f%{/4jהJEMF]d͹a0;8ܰt9:9Lp9ٻ@HAPC'Nz~r;7m}jW}8]i7)M'gl5ŒY¡kE).B׌ZX. W`F}UvsG; H+XngqC0՗hbFđ. 7᎑htSߝpXGg.]j`R5-[.O{zH#c'_7BK$l8wM ҄wX0c=j_C VN*+Rʼ2rHAsFXUg ulO"3LPcdtLTܘ˖-kYuE(s^w." 7]) -輬i>}5Iߦ;q'!2 R}!JT2c'꣼u۽!TTW+T_)|hiv$`҃aN %QfѲy9چG20ak8 QDIway`UI̽y}/΁UHy%OAp/~WEpZY( .}zH1yA Kұᨑ^_}dqHpRBpod/MmnT^84E")}6B .`OWOvU1djCuk6F<܌c(QFC7?lu*}۔ TRI|%ˎڥn4"ͫg8J/Z~'J}_{}: _!Yf~~pSrZe=l>AQBGl8Eʹph@~nDc مfɤ#D٣]?`>aO3[#Y1]wm1 8mv!Tݡ68 3D?@Z%(?Ry r?W٢rT72_c:g}ރUᲊ=[W!a)FCpŘH$X2OEעٞ 5 SX|-ƸOEoKTO ݮ ȱ_,}X^cl-^Xv]XaFVOJS(sd`0t>}5 mMO⽻q:NB|}(j0 wlHE:*3O\1sdN*+E )/eG\:rXd~v/f/KO,RAr~ -h'" `ctG*vۮ1ݤ )_T lb %U2VnzݳXW-}UxMMf,u&4>1795?|6iVn*U u69d j#}rHymO?F{qR?_Ȱ9)ݪm*JiaHeN}rT3C~LapŝQfwn黣S{zoݛ-ĵ O03a&,s[:3 Q%YzymF &wlL3cƀMLkRJ`"Y6NJFCK: ƾVe|h< -\o;p̲#r-h=)Q_ۿ{Y,*Bn1u.H'h.Xn-rb0dL900qrCu>s/Y1Ť4 <$_}}7l=bë*wE?(wsij};g-pMCƒ]/ :Fȴ9`-5/5H:=FpqX$^wc(/Kd)‹,FmCI1#9.>O=*rm1FըyYq=_!- HV@ zR4TF,-"#:4H$$C.:wV:wM !c[5i/VIݺ%D}Q>.vi~4 r4/)YrECjy!D.>J=%Ik7?|t ]9[+L(KjorW?˘r*9;]I('ecEn4nJܼLVj#?woU 7"V-H~(Iq:du Ђ󘀎tL4/L58 ]SW%Ⳮ]Ļ(gIύFR >c% O6GVAs߾QְeQWIeͤi7'9' noFVұ3 S [>L )(b FIkD$F9wy n]nCϚ#ڭo(bKo_xMTon8@Ȑd&0kEyzrO?:ddE}iS(\{ KzT0`T/u-4_ }Սs!cҰӑ#!>~{᧣ly_c0QNEtܯ٥/lE.q7d8@uK)oSݚ#Jr!.g%ZZnɄJz~h M gΜy][@p`CtaGD{^62+R8ރ3-A*}E|]&)1 /q4U}s[ >ҢW0I9P#6*ԸFrsF ֬b@6+:ej[;l@i/FYw TY)V? 7> R I]qeRL k:#7z񭂙U`llwbZĩ8(0H@ggl< ȺlMUU״JhM2N++m/,9~D 1NS};݇ڮJYOJ4XTae}8ߘ,K@.\<ۋ }Z$GG@UlRTNw+)~ vQ0 Ji7嘦,SIf3zxG4MC@sɓhbjTUcهkO=UcgMZzcŸ >i="TܙlnG?SsDWe)Sχ`ɨ[,,ԭZ~ra mɴ~AJvŃM)J}{>gT'7pBm-Pj&Vbxȝ>},߸=՞ ?FsuJܞn9h y{zw]p5HURrl+X58,![{3jj%e0*b 6%ʸ*UrߺkOq q_]#bXd|7^x% dUQ^:0EFP7ֳP_Fy:*+h@շ ӓ64Hǯ}]YJiߡ2r0ĝP"ref_vnXTtfÆ[=/~x[Kܕ- k1nynhK,k٪*l!XXajmc5&o1EUq&Z!!b3h1H^$InjybsM5Ob"ޡjc~wQ_'i;$-eY2|["Cǎ QZZYԒ\k c#|>D)* K^^3c&5RyُfXD/̂Ñx#V=[~YX55O0S\,Dymf&9R6{J?h;/F2RNTX~3BrN0~r¡ë &7APs4D:"DSM]?-켾7e&SrKV3meˣxat3N-`H6y:?f~pk*ʛyĻ<.B >Y6fZnR OG`@U}H^nrnM`z?30K #QRuE63B.\PVfLO'"'KWfpA {w~cƔb6=;=gYG}\'G?5a6a> AG\n% ק7X_㶛WcW1{d3c#YeIKbfWמz`8WPH4#]܃?&Fد>0bȾqƿs,{P <)o*kaڝSmia .1 R.'w_J N*z-@B] d BL8{)!#}Rd}#QB߽u,_0GC"-uқO- 8.28cf(7?  -DhIa,CQt=h\̐3xdžz# Z5m:V! ÌLP(wd!@%ǒ1p9K-fwA&{?jĜSTI5{|G}1kk{{yz޷eP yeXYåѕ%^@ "5I9Êa>'}6MsEFDFҾ@DȣF+²A򈝂2o8_zʨM)v? -2~<řfuV u`K Yvc;yOVZZƕV\`}]щU/t_ HUhgޡnxGf$}^ fK;~s;RѦ/t` ɍkN}>[ߙoNuhoy w]o+izUˬ9H R֛vh4-4Mݘg %L[(ftNcVَNdS)S=3eu2L"џu#ql͉=ސ5)j'eL%f/8>=AGfI['m @dۅ;w% xG^/ktj p.FG,h`_i:Ak"?-@bON+)"J`}|u=(_+nu$j42$MChP zkSa)Xg^67.)s΀939}Z=8?㧮֏Q^spయE Ȃ}1"{p;v%m?DO5T P%1K@> [D? -PkZ9ⓓ_Cy\-T 4wxQeN8K;P= CcMW\>tJ2  d3,iU@~ L{nb>5 wDC FXe%:?-KQАh!{r09*\qgXHu7I8']"s23[QdaDa/#؃H~_c; &X a_o?2~gqmm|u@'}1w0;21))kF~B_EbFt0UH2_6 6?>m'޻)FhRXg\>OP~?^qFY_vW s+JlK#h3'J79VRǪ@MTRH1t*V־x'{EPQ_Yqh٥Mk&0}f>Q'W<`Gz6Gf좷2i$ A4n"!Iv.҆f'{)v%sfM 2G;bW,oo]kENv} Y/3j#3?]\iii۸tq[dUR{/U $?fĤ4 D(`al{ŝQ3JRqx:<ޖ R2D@ >9z! xej4V$i2hAnv`nb?tOR6*Qndp~rgbNr}Eb 3+?3 ́!BB ܣXt՛9'ipȮ? a"ӱd}Q"Wdzm&ڑ :fVД:oHAI WޒDKF%VwHVV||u! buF$zĞrWhJdsODg+3Ӝmhhw(,8& ܎Vn4`)Vn0.){!4^(Y^FttarW.݇s2~! hrOs5X=' 1P:dNҥ%geO+0:/o>'ϳϔ]P&4%.A|ẗ́SdH͓Z` #7y¨ta,L5LIX!CTTiΤKǔ}'FC"#\1d^w_I |Y@~BuK؀*aX,t1gڦcR<>FHqB#_&pRTXĚb[OOUKn0 [7YD99 XFunו^/& ҢxWmL/1& gݸ(VC`^f_x):fW[)OYiϗ\RRw^ڗt_7&$ ⯅ qO5]DP?\wP ~[TW.l[rAt9c1~fǗCqͲ%iVKKZӈӠY.CX§߰6|׷Ɲpkkt7Uګ-n]8RPKy|A1z&34$nuvola/128x128/devices/nfs_mount.pngUT 6]]APQux -{ X* &&ffVfY*&Z7lq4Vl{5O?0s; hj<$hf4ύ"%Ȃoפ}Kݝ@lz"HHY369qMbl=m~<1NVNi0rӕ9Ne ^Fԃ6Q;.!.-**13+tc=WZRhŏ3&/ Jp($g@"PL$NkJ7Uƪ&F:}&ӗUm5x\<hGdwoV\w흠eßXavaîzܾ"Pl'O ne4Ç35J#=?2˭DfԱ/`wO^_;Ⱥ˙.Xιuv ~*.cֳBFח/:@OcR6wD^T;}oe w,''_o_8?--l26sQM2ms[|"fPBEaΌ C1]y[K*=ۻ4ɈZse;yN=w}I3E*bYos`f< cJȥ oE4sXGV}6Cy}DeI0Oۯ4#@;'ԌuUf麈I:ߍM$/2YvxIgq  Pk ࿃}| p{_Cpφ@zIz1i`ދTm [" ݅*6?} ?ѽ Z ʆM6+NW;D}Ʊ{TMjVCb(-v+5@-`8lH xAԖSVh[ 85SIZn7=i(BrjRƆn;_Rbj8d5+GH Y4I 6DBLQΜ@p9a ƒθw\@:>ǼϢa9I1j4yq{aV=]ya4ߦ)(<=({08/s_`n=MZhaX_ LmC5}H]8hhss~]'/Պ&KXcuPW3),9;Z P%k}"k߫h6"Q'hjt aoR+휓'A< nACJ24ԔPpZ2%!ߵ Ԛ|8 noTɝC)-vMj#Їlq>qHmDs,}dƺEU0p Zhg4Op!<ՌLͺѰTP1;xbbEXtbF,c5/W95d\k.ku f:'OX(F+I0Mȶ7|#Cx5cBɽLykG SxNyt˗ ` tPCFdtW""܁sdN{"гNAA>ᱱm`xJu= Q|( a` DP}V4c4 k]0W4h42.*Ur,iL(q@l{?Y {T<.k}}j۠^[mMދY]VtkJ,N\tR2U>|1u*MxlY<<25Nob@9**ܹPy y^iXENv;f#?wY+խifV #d 9Op2sbfv,^|e[H1ҵ{^7"ܴ{< ٭ R58g)Jիd¥|Lؼ{"dש!<=h:v O8`) p\D~(щ5NҮ wh!W:,q~ l# 0^zaUƾt".vx08Q:cXǏ2H=P? :o[X +D5 83..y?qMPp [XbB>~ V b7چi޻.yS⢧g)"hu.@FB" W%+HXsBLʆ{R?d/#?P]$3!.J\fTl5ʿ,Zytqw$ UaErj2 >I)+/w}eT<Bk"|>co`? w r":}B? ( -}i0pa5V:5nN𪷳ufѵrʉ|3keWip#i< ; ul7kٿ7ϼ _cp6BŜr? PծɅ?|4 {EЍf8Vt(9S!f{ܮp^V$ m㛷N^H!cl?TfכUw&x4S޺)ec b8+"PtN'vN*Y)23i?&NJԛDV뮙}AZ1& 4hRr@)y3p쟤0iHfidqwi2{bIl/uCl1&)7'3G}*hD`bfNʜY޺]"S<`N[?24hk1ZDo7SVƮ1˝ɰwӻq7dI%dcHM.seT q`ePgct وE㥓;y%mmW_qE\2| 1C0Qf'h&Iw21iO7EHBG; sAE x(*ȀD'҆>Ҭ(>Ci/nI{߽+e}g a &5 Bޖ-w_]6;Vm' (.|ejb͵AMmMCñ5N>IG |x~6tNa0ms Bw($DJC6zDHX,g: X ǎ/>011aC=8/R /av6"n쳝m=P}Pun3GJC0ׇc6l!'WߗwI[$]`re]+âp0 {n\@13w%|hA\N- ]ܮ~2,]-4_w^j|yĉH?Yu:bTcP׹G?ϙy{{[-߲e$R1’Bх~?kIqG rhl2ï}lŧ&&Z~AX%9Rg5r=D|LtVֿx\ɬ(j5WaTv&]ą פȗӿ آS1 U?A! D8֩)P,UY引I  &Q4ĔlKLҷ~ljӨ]~եh5uHk8j![og5%"xgr'r%1EܳgewCypx9%vv.\X.#r>dc C2gg53vV"݃8`"++Vu^ )# L8NG74 ϬKreeiz>C&bkOd!hwaQ%%2K2߀7N7(./0o&R%?m(;C+]w\yLl9'nR{`('{8urg`3In7 %OGi"= ɲdzTԴqӽhxה6 bE=Y0;`/Fp1k`{N(a|wj ҫ&s|kIuO~6" ֛.-4bRS~ehv3...LW SzEsɅ7oj[84O9BXuYbU(6zx3ҸT Ak^O"IyDT}}"\P*/ݗAXlv4т]ڡN"9}Tcґd)24 n,@LgջEM_?3ˆtvvnuÓ6HWӔHW6$n aD[`mO-u/HY/V+I?po?Ѥ9;'N9&}܏JR k emn[t&u (1=+xǡ - ::/{+1P>qzjqGrZ*sXRqTP^ Ez''|+DqvV266`'Sb-[mį"+OT{7| l7;<݄$^KM%Deg~gQ N~nz\6_r_Y&,0p ndxjM;{E]&Q§FlWHg.U'ʼnܜý:`E"v3R+^=Z 5|✥8&{?:*71OӋ5s9ո5oDGTq7ɯgۛJi^1^TʄJ2n>T6wj-#H&V&ߦJgʱAzu#YI笃wqo*BsU8b]k"ި_<]0E~~~u) )j{+U]3juqBA:#VR5 5e g9og㹗n.y/tVKw ?]J'K Jpkz|Pjb[j&G•-dgWΊ {MljA Adu3=`Tw~;xTcpcL{0:$dR !sSK*NY uס'\X}26och8 >\DSm4.զY\>AnW,si^b|zj=[+U5&Sn$ :ij3sWs@1ǖΕ%ZUz7B~Blv:F CȿsN3 GpZ”Ν.e7 NDW+ bxY94̄fJ؟GSW?-SD (,) Wb@6Q{$h͌ep4f' mƛ?f'z;LQEwXi<󷎩Goq%-.Vv!{W[4COڢTVbH#Jc'-{h^cT*2}V>1h"PrfG]cp8K٭1i|`3Dq;jyO{/ͽ ZU6fg=H9l ̠'\DcP?i8 4p`x4߃qX& 8@ ])^RP41G ǧAC] Wb!F-3|YkӰ??vg$_ŎS(㣸 QZ<V "BS^Њz-mGcq54ejV/"ocT9ꪽP`g$: F"HTh+^y?Z(LM~n V-/`cƪOJ{D.ZK\Ls;SEo2O:lN6(븺_:5="?4h2Ozr LfΪ3׷_d:'i ¾^&ajjЃ \X[nn.jkVT=ӓsOZԩ0DR-=R$L^]z_<(I0%6=w@ bzDzlGSb`V7F{#XU?2a/iRM6K9{y}9g&y2RRŹ&+9WWr1Ԑ8S}nuNYjeJ*7KttR8Gח~Y,Vh_e[4xJ9γ:U bg$髣.bizL MvltK[C߁t8銔,šF+l;"}K=Sd͛WmՌQ:,cw14Pi&fixD"] ̨և[$~I@g%bk8{4#آʋ5oϞo+ }ngA5QX c9sdi0b}벦La`9v!$bEzVʣ)U#rq8\732'+7Uum/:u:2#ᣧP;NkĤSI '&$ܜ-VɦgE%zIn~bjT! "ټw1Z},9>;K>//&;ЂԖs@:|X29b,2&++ uB=i<-Z~@0ԄX}] UZK@ed o!)mj9%:S/"G I[ZH'դ0J])@o:iu;Y ZFLބ Q_#_]Qԫꉂ|Rºwٺ^<-^ᜋtjwTO)u,9 #dN7:{;K;262޹ (af{1m^><ښ[ڡ>u=}'zu;|.̩Ԩ!)rRR[p5h=asZ]gcmTj*Z'ڇ>l"^"BSXt&ub)9~\lu\}ݞIu.~ si ([sCY{MTuYĥlC||+:IAx#n3?siެXChr:P ] r hKW/PKw|A1}p&nuvola/128x128/devices/nfs_unmount.pngUT 2]]APQux y{<36[Rt朤VQ)ޅd̙BNGVy^g2&)r(ʱپw}u]뺮yV{GכG?aMl.3#hKᑌջ¢#""<\!f;'03\THм$2o?h.;^sΝUZL1 !c!s'-E{}2arHHS(H:ggbw&JڗEb޾>*FĽ"RZjs7Xl8&暡o'd.BLHp0ͅ[B^N^k $2ε +)t<}iÖlKsm?>jB3,XmYYR~Nӧ@~`qeKm>y}b@|{*)TY 39QطX$%TPa>_)L&۲c~}0pܔ8 sfO8F5.na\3Kԥ2q1X> +6{!,JB;/-g:4'|x0r7?TdBUkNqValOEc $K1(dc]Q+HSX՚c.AZ";]V(vJ 5wS@We\ o9]M_ iBvvk ,7HZ8AQQ7נd%$,D N^zmGI&] )W[} 7'?ZBi߭5q?Гt=#14yK=|n[V :[duޔ QO`L>1Dox sHsCsuUGo.w,2qW"C:xiG a`8\fHK,~nk!_dlyB)& "ϟ IItTo$QKj͍ V#{{=uaQrk ,TZ0rWNSq,'Ƽ#z#ZT'&\\\*tm-udBCUۜwqY%L`_r[shÎnGLtބ3Ml?1A@L !jhxp&HI4_qB&x]`\wնr䦍h=\A&XZ.GٝW5Ȟӂ 2|owGcjҬ-UTCbN+G PsGڹ<R\yOX\dA GSB})<)}q#̈dӡEQxCX_EH]_pW4pe%sn@g JϠ k3шfiQ=ߜjuLsei'6-k<[Fu@}}n9ҊHQx347I0byos>ZW4)1& _|Ûo0∳Zmd' c;ߞ,TQ-$ˀy_ juO46,4J0XIvג9-i!cGŏDS]{F ?cψj /; X[ !1vYV ~X$'{ZQlOϴ5qbȍW$ro^xDڲJ={gx_vR~U[;RO fzvjIWסhj:m18+C\Cy4|RR!.hk$Gjfnx[[1߈u)?";X &r $?p)JE^ﻇ=Zo?>̀:BSChm;ps:*B.~:$9/_3U7znt?>rNLv!}/.h5~?ws$z_K_Ў:& 6O3a_fL/u:(oʹنy[IoA7nѢ.68:ig;8d'kT6Hb'D_)UᕉcXfv{/QrV6Z ֵ1hK}}"Dka)e3ϟY >4~k[ԋcUEd v^|^ZHԋ, 2u^DO-2rO٥e8w(FF' PpD.nJg en=!y:Ϸcu䭙G, jԿ0PNM7-s:8ʍK0-رܗjA[P ֆ/pVm[c@|Z)mbo?I$H3,9i& vrܗϬ44+9rۿxzClcSHYŊvjn ca#hso:fh-c:݋u<:Su*Frח v q]Z!6 YJ{l6a2nn` a|AEg3[ѽxdp),ldoȭhݭ%٦ohRW3p\D[JM0W8xs-Y[U$6~b:WAu w<;sw<ZbwԻ ƕY=|!b `4CCʬugfW)/u8+>0ѡ|lѯ6Rʨ~WoIb ZG;-R=j]DlsV//<D]J9~9ty'*4zQr%%JXY Omqx]'A_GL /qcs*0#(tCqR%-d=@'ucҚ |`A⣜*D㈊ Ҳ2 C oHF1 Q\5='|u"!" HE9'M?zA3-&y79zT+畂T;j%,uZh$bG{U˦nxܸ|s^꒺q)#Y&l~: TL PMJtK0/**rs0Zx`f#zI=X "nٟyuih 㗓1!yd7;)Kj rњh2hB`J3 1ET5b[@&HR.N({vt*EJ}M\.ڪx'fz*+G@y_]J- яdW(>q@qËwVEi 7EJI;"xqt,n18+p7{c .Rmف̖2g[93l-6b)z,mVT˛K{*u(۱r+_} b\Ǥb]Vw1-hYAO9'%=xZb˪<넟[3H r{)Z*K}O}G _9 K?]R/- 0OqXc7t.ǰTF!;RzyaNR֚51*Tyf=跰,oAEwIdD+^?_ӫC$WXԲb0ual(m<(:0\P`&:`ya+hfx.x19k!{オIKe Y)磻Kqv쨯:4^gg8;"سZ& :IpSb7 5VX )H[!%l޵˿ShR_Fiq zE"UKKK3@fޤnpu aC҇^&aa vɰN0~:9889f "vƏyR[5 ~HwףPV-8mkK-~z)@Md?^<LRF;1W sԵ-x, +mTR/n _׮A;9KiP<ւLD8.ZTt %_,y*#4X}OH8\t.Ae8` {fgil2= 7ՔNr8 0FrSi?t-UmxǏ & >|Qёtz`TѲߺ~.SVfI7(ڏ5e!ۦ坬k.Vrpu4GGԲ24FEc wD~X5ߴtxq[>9𾋈OANq {k:AO6AX9m6D۔lxehV% _kPv2F&U9x1K\h+C݇1(fls]9DXK.tPЧ)E05C7?*S?FI/]7"HśԴĦء#~~tՀ]c)F P˜OlemeroEEu[G;M"{qM+>}ZU!lQ' 'ҥg?/Pj/5DݻSsϙܳnkx4UqmYNCte iP)'nqMwtb^C(ZilT-Oc]\"clYC`R`OA V]00ko@v*]+@1"b,eg"eThbKAPSlmYpے(|%9eiRe꾾ʅG#ĒR; z:s3H!yw`_D[(wJ" f]5(yjQotv50V'&Վfa/ZN9azO_Pֶ@yv/x#u@+k؎*"`9VauX'fx+Cx kza/5n G|CɶDV?\ !hjuox w# `g8;ȴ=ɫnkA bpR%˾,X/Z!(U >Cŏ@e|$ߐ ?y|g]`:ulQF_Wh7H,RtJ Bh!y[~^T a34Q [vTH- cl"W&kuNlZ_Ĭ տO`s %X"WoxDo K&Y3#6HDc y ACFնmbO}x󎂸C!? n^\ \G&8ڮ%DZ:Bbn.#Իq_CJmwF Z7R%%!ߵHVwdL榭'w]lp@~=S.7;|_|DgDt$=Ă*O!!;Sjg2G10Yw%/ZюVh3zָvwCᤪ<I3:9?"TAt%PjTkVOJP2q)XHP&͝aK[yP?}db/K= Q!5 4 -tљ$L6Bhk.XIAv`H)@']% gLQW]K,,5| YznPkldٻ!R$ϮVeo6E5k)#A.Б]ބ\,JcG\@O``*Fď#z.KJ[p+ [B-)qW nHZ̆ͥ:ebj'0k*= n̋O,3~c;q-',ޤ 7R^8CXK澹 &( |g!91i2 4CbIk1L6VӮҡz 6$*#iݱ@\.\&kTtՎ(TֽX?PG6f&6=tDQ0+fṄX1"Q;F5"UJOU*aQ>gai۴9o>"$`_Cfw> Qh3SാCK@W?^=ρ :U*XJT>ae%4f+๹[SRd#% pA;L>9m-NHwߕnK:[g9)&?f? Hʩ82sk/{b<|OC>QX@8S\#+9]dRGPSsxzyf/l*ޗ5*eZ~pf۽ϧ&'OGnn9|q_|+{b?;]oϜL=Wѧ>#՝­!G(ԧkag;T3Fz^, 7.ZGYHХk6nml΂}`{VP{z2nF 5xu.7~O QXCx`s۾L\~\xNiri{ݲ0 ߍsk$):r8v45essV­L3p ͆irvhL5t2/3$@_$}q|䊠Oqn:Ν34jrOncC6q 9-&RM(3DnD^ q !N}׈zq$l+B[ v }RXLm:wE%M) E &{2N!i#5wD|!ܼ>6:Ì5 1x5pKrpC܄K OsgN ],ѿkb b[t#[ aܯXƐfegrp:M-3ypYAf ; c o MEl^ WKzH{:slFZGǂOfvv/IӈS۔K?PJ? ؓ Cµ8 ie"^v*Clu)-|goj*+@nRR b0sÈxF |g}QjC_"So^0}:91LSrCC[W$wV;A7:]~UGNH>OMň2L*\Y|OՊt߂IlȀK6a G4ةXN2WR؏-(pu(g?i |H+kΜ5ygîAC4 iy1bPk Θx8E^ *nWȎ[0|ZJX +㝱|Dg>zX۫Q[B,]6;,iph+D~g8#['\e745أ@Y:dnlt;}8 `_S"y U~xkz l.xձ5gE"g#$ Ӓ,g[Ze<ӳ1oS/KgNV q{`lKݲeP XE'GF9 [Bl.d{5aw\jy{!ЙpaݮQfR6һ03ȂI3G G!*# *kLdAյl],DR{y{,nqo4%#v51KP:aLa|\ S#S~hLQ^uSZ ~2f]h{A9~M\hv:H,w8FФXTT %3œ99z(9. Bקi;ֈKWxw3]Ga=V͞#)j$lpSVY[MT AVCB|nU7҉g4z//c!Mؚ%̞v/h h{xo0I=my_FC0z IЯ؟Gሟ?4.]bϮKm%;>H^<;*/q%{n2x0qwJ ei_tK_9LnߋBQ_5BBC)|`"}ŻW&V2(1*,ݾŒ&vG>ёv@$MOf{qC5Rﴣ1Q{#~_r.'jבbIXwTxXԏ|0WOܹPnx{scuEͦ-lPZu’3|+:ď!~jվL@Y7_d{sbn щCƹIKЀL>kGYmpm}v}'С"2i16zn@=|,9LenXkE_#%-kD4< qF< rmNMF edM &&[,Yr<|HZ]5KgR긥'L8*Q=Ni8 xxxoryv|_7?t:Gsꭘ 3TjIcI;P߉2 wgژ{geiDk˧ Q_E'*U(ܛEC'6`T3Z >#o,X?@PV,~{v?Xŀ_oĤ u_y<_U1t}u;GeH^<7ҴC //k6׌My{K49*8emMpEۖ2&څ|Di`ѪtA[?lis&I\(˛4A\Q@اcJ7^qؿ^!83s.K>oʿj[hl+|\Igخ"rdA[yqsss^gNNo-wg].zqǔZ2Z)iZe=:r&V~P5>}e S[<{)b[z7C=x3N ^ P[om*Vee*kI|,+P]g\eݚÈw<3iDnjQd7TPn iKl9pTWE>'uL . iL|\1S[!vp0LjϙjzpW#q0;TP6OAw[ =G?vI0ξ_J9ͻMu7γsev1=((+kES^:obG{R>+XR%ȃFv>jUUM::H:^"}?{wm5&uWg 'a7o>;l@kا7T27;Eg'b*y0k*J'OA9TaRtqi9o:>=66rEENRt{,z(SY!iң$ԨHyG=hQM5̌PKq|A10(on%`&$nuvola/128x128/devices/pda_black.pngUT &]]APQux gTw$@jPTJB *EED$*,Q6!" ( *hPTAQiB(bT""W}q=gf3|ٝTtP?CvfdabM:.]kJOQt1сQtǃ6+b][Zp($KpX;pfY@:fVLp8Q7H1@-Ip۲eJ$J<] _Ҁ  b쐐SǏZ0*=&K4zD}M'"k8?@!p J*YNF$JM2 N=H}@Yۦar5azkH& x gmڴ˗ŋg6ZLO۵WW$twwPL%Bs8Xf \5_HRH#u͐} T+{?ZpA"&ox`/hδP|ƶ6ejDw~=O73:܈<"h&ј@VfP&%B^5Q$kL|ml b&$$ ~~pB)`bfbZ`W>4V{=I2;-?(F0mÖ蒓(g\3)_=tȼDr -eOZi҂˰ȡ!3\ٛ71CY,3mm%{!8p y=h]?;+/}+tFG4egQ"MsM/!vYhy  lJES/K=QvaI'=盃{ZXy&)Od sm"mv#E;fվҌ)}j>eh5v陸T Й9XpZF| ܉4BxE=Irc鈶C}yZQ}i-Е.>s99՘d mOK~gf]_sT,t*z's>8}/Q5&A#9Ik{ M9i+++]>8iz+}WPtًMqR]/E [!ّW;g"q'q.wxPz{bvQ^QMtL$WyO!=n Ն|y~_+ډS=7+ss ޞq*tOVs27/|[r̩cSlHy6I@j&tyYY'1%`"@^wvX7KzBw  \~1{i$Y,|wuco }{cOGpʶ!n(M#]^<^$h"]h|Y*+xoܔۆOssA%3:W{ib1ŗ2ՃR MkdN(s̲I@3K_uuPn 7Wu{T`sBnVP ޢיOo0gqtUpϫs*ezgKqͱw_%=B]>tIdЩ4lUD0eUl9rعc)>cN%ۈu,b v(oc za?>S߁H1m)wSd*[KwBX|y6Mݸ<(W&b ?UBu3Ҏ&!}Dn•?@C.+ irJP"e5֩Y@S.evA[[{<4ò0UHߍ3"IJH} \rzG2?X2)qf>H+00 ꑹ 2+_~H^N/]:cY۱5͈" ywZt"ɷ' @I$`FYE2 Z G G_"o'ٲԉא0mc$O̅SB ],7;ׁȍE} ӽIc*%J.kTʛY p(fXDb8nqб>Z/3VYr]AS2vUz.֪O*?kgb"N ^]=Rr ℍۏi-oq>Oke[D7R؜nrkA *\YQRu?uUmI/玩ںG5AくVWn+ݤ(] ^6CŚG<-5i4 x3WكavJyvڊp~4 9e_K̀AEܬhn]K@g^3fUufP CO=nq5|M1YP|JvRB3~upM#o:ȏRܶeNf@ti̼d_<\R[peN^IF'_iGW5gCM"E@%K/Mv bNHԠ> 3| 6W $j!0{@PV!~ `#0ꑵ`\ko '[&:U1pPhaX)ojM06<ǩ%(O䨝Mi74zbv*>E%N!@x1>j8\rXMp_εa }H'1,8cAARSH7a'Of~?C{jfwNa8_,KQkv+>\|;Qketl±f;$`M6咍Nq㲿TIB}Dc7=!%3MqђŒ3-Ñ)[gѴCy *CzX]Oj2XuXq)X 16g_O-O5{6T-C2! 48V[k6I\ૹW9 Η]V85du%5\QEč^{#)AW den'xk#RX;+?r:R ~؋7p; g#kJL-oeUwUU~ 'Ρ K;2}$Y9jVKq,+htT:w1GE2iцwv5gDžku-:BnNgON۾"yHjUD&PN|(žtBϑ%B? 췉nMbl:glW'x19i=a=   @zEThե,JHPm ̛B\VIhr$IR~`un!־G[Fv<3Uʎp/B_{K* O-#{i=Cݦpb2VVs}~8s7ܬһ|9zm F~Ѭ(-DDߢ"[RP2HIBq ]be6>@Ka;\ *m" <6ϧhtO GAZש&۴es^aD y[YڤxpaZdB e]3[ A֥󳑊pIvSxչ h#_nQ_4gq[h:HֺY\401 lakS-:sDu "qE.]Ej |Z!a M>uҝ2#Lؔ-3iIEs͗' Dgm t+7(!ôYԼ!(!75Q^ `*pWA]O=Ŋ#Ji]eӂN/{ kb -r#Lf` s36z>Bh9k4 ZH,Ebv`.>B5v|jtF$~[D0doդ*S *Kq@TT}%rCTk'([Fa5*S'Q &^Z|ey6ma,U, 4$@JGvDD$Y:c<<-.0 10}Fuq\B?jd=Y kˤ0ŗq e2N%rQྯ Tޫ/)RۯW~38hb;@u3?Xӌ= eyy=/_cǹ8_-B_k㸛?O]&=&/^ێ/\GbDNj ?9O'w){lXgwS: z1ekdNGpΤ|5&CJ-0Ϋ о$e*&H+G(m'G \wj:JK ԊO_'(ѭԉM-aUNg啊tk'iV...g"k㒷n""xRZmG G|"ik(3cp2>[YPy=`zw7102LEnfdndxILZ:trv3o޽Ff#x K\0lo&e?Gfb|?."vLz)qD9I'%N>XQ@ZmN>W[O#(p%#*erLsX| 2.;x`ߪ_Ê 䮃1OcWB0k6>l̺Sl&65 %نW\AyV ݔ"TySe_}Ʀ9 G}: fgxz~cfcA_‡8j?epb=(3VPlA3uU+C1B5nݺď/OS޶gSfRoIڐAՑOq#iB5, 8IE^ L讳$+L,ш3^2nrscGn;E #z}BIkW!'BWt^v.k4ip%}B5NYǧc #vJ` '?&ZPzREZpXPY_k`@WTYN@ q,S!2;/+Aw—b=!RtUk@\_<%5y/!vb)Y}l2`R c|b#q(|p_ òM?wL|l5\M+DsV_Į'md*ovu,SM>Imvqj/`i{UG?בUqFsE9h;Mowg] $jjaG܎aT[SK+ QoΘ3o3}}l2?5Kp;Yt:ämxCr:V}.(hDǡ|͔}J ܌i';$}Oum)y'psKMS- G²i̙)J3erV;8 P`BqvX%\)ViɰJ®  CϝyV@)n6+ؓ1ӑߍNm.b̞N0x`mBN zMw=-Sw aXyu/ A 4#$<$!/eCL__^tQU* 'PpdG^SO'#sl#,PMVqZpȹHY끞?A>GG# XgKr U>?loGZŇGGOaM.S6\Z7?gqD'{[$֮aD75#o^ ?;f93e[2{3>Eu vϗ/wMQ!p{VʼݘWDӟ9:D٭eIM‹\\ 2AաR ]J5Mj%,]EcT(E߾%N*ilTAA&rަ ?ܙ^r{XTkZV9KDC,iѱoPdkQKXrR u8F=HN@]CR!b<&zcACgmjC* {%.ػ s XsK Dξ1x߽g OhňQRk0w֭b-s?=1.ҧ;1I1utdky}Sg5)ogHC\rlrrRpP%iӖ<#:bpB [`%̫`% j?*vlV?Zςmy۩u _sF)s@ OWF(CYB9,v끕rvRBDDMNEa٦MbT%aadxFo曃铈SQ%HA&K˸Zꟓ[YAaKLJ?Lթ@I>(;wEpd%9N_tr)mvP(̬O/p[~N5Uc'OgKxiw>)DD;JK-䥈S_ZEv(vM? y%MR| '^iz<*}A~s?B]sZeK Z^ MGB dfa_EQ0XlӆZҾn֋X[0Ƕ s i6K P~ t'j vB]l%E%6D\@|U-v/8SmþislݐBr]qZ}àD@bʛ{oGʺU"A\ɧВ'lD5}ϑOc~.'dUSPC}YMTM$E=PD ,}J% U,Ѡ+u %<9!N֓\AY= JW'!&?s'Şa:ZEGXDT1'89紇:J] GL~5?[|a?SSٻ-ZXXJGzb_bI>Nfv|.u<2BDv u4섨H2s ;3{]pJRVmn)*)ЕtHƩ@x05 .y ? \.=W m朞hCGԱG&|{C;ǫcGڰ~=#wK` x< Sl`WpxS:4vG_Tl7zlΈD)1.Q+w]@b5:5p %'*6 =C|ڼ"elĀq?Gr7CC<} ,⃷OnW\IyJ/,A;S~ouCl`  Y!/ 7Sm3m~!⻧!5rInh4ԍ|1leWUոz5Gu6E[#;᧗>JtIBÛZ͎aM^D$EuU*SeԪzB:_3I*p-TOchzC~}"]WXmVz}u ?B#Ȫ>j+j^[ZzQKKjR&@[KnH$8uJ7Ƶg9aK:HU_# ɿ}[}ۻ.?Њ#5_A,_Up|8VD0KdZpٵ"s63PKX1ox}ZwZvh3&PzI}?25{1c0/#|LlJC n[ȘF[`c Jax:(ʽAtP QZc@e5{Ɛ/}%ܓ=t֛<~quɕkVL+_mOu~Z`L`#ExY+ZYų:>VG8c 3KZE)2M 1}dz0b׊WZqOG(hi|nxaײ ݗ!QWM(벥Q'kr$y.^4`#ɫ(?9O[p/\`w=VjnPKn|A1|pA{+,#nuvola/128x128/devices/pda_blue.pngUT  ]]APQux y4T?~g13f3K1Paf(K)+*RafeHeUJ%-/-BbdF;:s_<<3vɨ {mdQ'1cmSwRV;6S{N: PCNݏzi S5T$p/"E 1&D@q#k]x($(n ya ɊҴ_ Em13u9BG(l#1Ć,ug[*Zn:&,Lܶe48]HC$c@{IZMs2sw\cȖ?*B@<$} Ts~P{HccG/KE{=~ŠEzxLk0wfɜ_*^CmE\:N̨& @c żvn 5V4l2}-Hya'-߃gl8pueq 1ZY^x$)c0= Y#tboR7t{>2mf~ݺ&"k;jWεP`sZ%[DyqS\~^^v _dQn0'Y ɹ Hڪ XeR ]oU-2QO!eLU5H@1%КGNzX Zr؊dZ4u2CHk$ZZJR2$w`L @Fu_"v@vV}ϱ lt !ffڎ D]"ĺ 49ρ@t8 PǙ!{`&5eɸ!}L0-iud :#vBQwDzMώQ|6i+ W8RWdyuU;rnVޛ=`KG\r '%7 4g%pq7m_ _"fQJEO<NxF f}O&Fq<9UV.UA~\a鿢{ S^MS;^Pa w\M?/&V $^GIhmS{Oh߶T/697pA~ +Ppaa萢/PHX{l'ʜᚤ/.ś^~~Scjz1D;+y?}3>WwUrdq&2=>"ʲ#7X^Zct t3NZk3|%ֳuy'&Գ58Xp|1K(ov@s(d ߾ mZ!yªo]2+t2*t.sev 1d@Jiq.m4ⰉJ,=/pޑ#CM!sIˣ* 6z"AtiM O1MM#L/K=)DŸ߳}ofg]( vOvl/F7wLڶ, 2Ԭܡ@28.1ni.2k <׉8vuLvz7ם0YU ˔ޮ(|҈ޓ:b,">fW:L4,.HVudk=1wVޑ^'=j$O|M~H"Mg+p{@<ϊ }+Uc~P8Ksnsz)֚:&*/X E~CF䴥B(0Z̴=Um4W}MXeDKo+1#Ψ 8n)]ޮ;21l?'݅:}<}>BAwtj촪Ⱥ/DQ]=QWAFy(ޣ \ - Vh$W q. ZÁãjOxM?&e1 ݗ7}3.TCX]jlŊ9^،v_$;m6_׈M픲=~ӟ;9wK7fp>-&1tʰCcMj+6kDft`MDQ>C~V>,%wԖ֪ШWy*]5Pv_#Ì6cJv'ˣOV(F[| .}m},9:kuJzkO: 8 =#x~_ ㏉^ƣ?p}/K#Or+K,,`Yؑw< En(p(Z_&FщP9]fE t9C1Lx9$cO~WZ*N;cv.lk>ݾȿ].8Ia7"rLs(w_iS"-|nWLSc/yb'7z K$"- r$+(7)2.RC m\( Hs61ܰZ8jLG*u5c': }4쁋x]]Ӈ[yM)ou.a&u˻#soxUU7l{v^{ZMf}"l x+~PpB-G=>ǏuÊhlcO? IC KB[(LpzE: FY;Q|z); ~pP:-z|L1-7|KNZ[n\{v*c 4c/=gb/x@b_-C@Eǥ6AGs831@>fDiC_glm!֕$Th5\7@_C_v8\A:5^]h'G:r?s%^Tf ߬lLFaxA# SdOO=/7wyOqU`mJamYR瑶C"r2 g /D(nf܄t@8Oi׭gտdəCA̩;R.~fvӜ97qu"a6 ͐ۥqćL"0ƘWb0Xv_{op]"\SpOm 9h.rQGD@9:};,.mA;*41wGJ$zWPt tmqR]H%-NsBkH A1e=R~5F%wDR۞ }72F,'!V{7< ):`F*1N62mvo.ůOopDJ:u (mBgJ1=QV rٚ5)LUCbp`_3~Y[*rWU~rת`k RZl-[ٝIى]E$>0~`B`'B)'*s}J1?^"ȩ--ʾ!W V$4,w7N;"2".7-XZg)1ǏG8::*o~}E~2L97Ke֘dk !ͿnlR}ґ0'POt-E41)t#كKQd0ec"ȹ]rr!-Ih#<ͷҟ]slkׯE̱DPrcI8䟍p}$Ɋt>l;sd } )^;dMѲXjڽ#!c(cp6{g4]{0w)|Q ]5??1,< μpD(+"_w<]ŠYr&v pB.''NB#("EpSif1Ӵ1&1O J5ƂjZ>sQ ( I$Zql_U)[: Gn_ٔ> !?v'%/VvNm&6 UF3Sq5٫j}&(JMʢcH]p袝jUļ a,E}䭩k"tPĄyݫNMBFaTc"^xFA<#GUL5s, wx-)1w;* K5FEZ8'O3lpNmqP]ֶ a41]"kl/PS**lLb-.mi!a*6sJODdĦMy)cmJi ]|:i`/Dtnf6Kİ.433K=1ij(Ooh}qOبlr-Zdڙ{0DL>L$1gڌgedǩk1#CvxEw1ʟLs3C]%1aQBRZ_9N/"o\O]5*4d](WQ(HmLR1JK(_\٣#HƔ:UXpEPR0pt?V<da Ljw 95޳>j[bʝǻ^ny| )hJ]]~Ɯmo-FJq.u&w|D7+wѡ,/$UI/l.t(9@Sߛ e 5fɘfGϾaz`V<MJ:,g4/A‘H E}L6LI݄n` rrx]|(X,_q󤄓]ՊN qAEG/LDBVOr;y-,Z6q`P* g}W/PM ~%]햋|WLT\=;*s) @oTS己sc7}gNT ;p5K6v Ft靖kpk5JX vJZ1Nz2jnQ#Qg&{ނLѢXp̸QeDG aG ܣ*w1aCn evGhōa S*]fnsprᑕlRx|2,baO5mCِ`U|}ioTӠFzJ4/k_OK(I{^nua9*+‘hӟd+K\=\iLK%yЖ7Q]Z4gnvHBeC6,~s2F{W !+7꽅4 Kewte)T5^:#_M6iʝ)qpJJgY܏dt9*(~eUk\H@VWͭbhB攚I:ňVDuERypS=B-AV-v52OPA 9֔eH^3| L9i|b!s[B3шVSHnp9xύq.䶋~|xH|qj&t BaB.T%l$guX=PJVl`ܩSgKRCɺ3?~VDk[p0K#aGE뒮N?D~ dK\p=v4e )El.[u;~~qyMi">Wy?T8Z<`_J°pGKP%ޯ)oߏ_[Ze2e]0CB͹2_`C7W@"Z/b[72?ӄD>=Z;3{>⽌ڄ`HCPؿXD5ȃHĐP2sLѨW^~! 'F**4zl̎b \(vbr1MO ]DN̯[#$:4GVzб:Mg)Ҕ k2hhYv64R96rք '#Yl*U&AB :$;DΫl&aT#Ȋu#`G["KEPY_H@ao92L>;ΓB L o)Q R59E"euF `k ̴ʜ#<~cv@KL!L/`]꬇%'|s`Ds 997.֛551=k+Ş?PiϭԇmDR&i(Jt4>oNq @µ~/qAdV1{Yq #}fvqIqe)O,B{@OfzI37W^%V9!5o;}>Z=3ȏda}&'Wշ^ ^ ykd.I2F>#{^MoiPQGMCr&-UXBIR`0Z2'y`(~A9e/;day[¸Z Yv^/޵srbS"5;ċPi$lsҊU("U欌2jFTD7<Ҏv M`Xi y!Upv,PgY(_|FKG}NbReո;FyLGE؆u˿5&.d<J{P86& -})QhA6,a"FQp2v:< QW\i4COb{Y:\u^G-[d@R7t17m!neeh4=gⅫf%k%:I<#-n/, Lugi~\1GwD5_Ĵ%.Goפ) ԑOᥡ(.$"&|D(n^B4@ĨNAd^uySڀ믠e;b24Aj[L^iDp$XcrZ^= W0+%ݢg*,5kB6@̮U5r'1ȉ5` Ot3fVA,DKB|m̾*84ȱ3}AD,tk+B"G[0Vֲ_EZ"ĮPX!Nˬ{\<X51b/WAfBq9L_$B:MN]P4֬R!wգ܏$mfz޷(Fip9t4PĒXYNO+ia4AFcik,"H].9Wq4.m>t%PKk|A1:9: ;&nuvola/128x128/devices/print_class.pngUT ]]APQux -{ !Sm_9糧:Gȋ:h&Sw_` &&@51-,3h~A10?w_p[_ `O{{w->¾p")BjƎ ̵r7PS;Ha^gN0vo!,,ǫGlٝRo<*EJc>dJlihf&StK5ܱGWSvB')Ze4$孩o )—6OÏA 7a1w顡!P7{@2BZT![ Au` p/E3ȁlw2nMSHX~!揊-~z&RMqw ;+~(vFnYb29A( j"\b Ņa_ÔH:O";f3VB" /xl=#zӌI5C.HuŌ3\Frl5*Y.0p>J bd8Ec%2"ZAotomyq wsyTݻY0.ZP2\%k] 4=\4СCD \>kycc2Km߳YQ>> 24d?n0v!EM^^7&{Js F % ߔŦ[ Aw!rg׉RMw"ļI-"z`^pC"Q5JdćqJcp)x2;228:avy=pmW攔$ۧKCo9ߵ,8BHD *IyCłr o=sH.y2:PKKKNe~{&ˤlg?lon ~1dc`lp$NJd钬F5].|yNR68v~tQUwo}KGG\wI/ݓƮrnbP8xqqVG/3acۺLӍD3ca?cɓZ -lM_Ɨk_^V#//2FXO= D- C4kGZ~^I[XP̗?=E?}({nMgũAen6eMKxې,OgѣX 3.&D}BCUiQ]EK5eJ\ɗ'y-'-חc{ /.bjuhOǎ%EX0M,3b}y_GL%ngv9"S^.|/ no-9 IQ4ƆAAwj1y{$-v2a(pF;']{<$FW[(2L0QsEJ=b;'>BGV; oYI82Kb,DI _ݻmAwIy\,ʦ? Saaw랶e R>9LW{'=?~~ȿ ڈY{@t!2ҸUdjj |f4eu|~vdoE~ArymLns11g GmЋIfŷoLCyj_kP4 @0(p;LMbnYKF)_@5ݛpۡro?r⍤ƗZ7.JP-` !\-m >\w-_rǻMt8^V}2+bXn&Rw" 39lZ5IT*zz">ڮBz9$6è'kqj(+8$Y?IUh VQil*.(f29Έ/"b>| OcBR<"'oݵ ZyUYOm5~+ђ+%h:&Dpŷ ۟j?ѥÜ\ qCٗe5yhy uC6j%}]cK]EͧϠ+zI4IQѲ!(NAo>־B"iQ3Ͳ'7&pg*yTý<|D !tэ%n1*rtcL<~8nDfU¶uve]u8&:T >.HGFV9t8,/81 V+Sʆ(y/')죳աV%V_ qk$,=.e)ʠu5QȩRvRMz{c\ڒ{p:fU3_%IS$1״bPLI(V&ʃHBs+fgOƿ~=yyP3T)APu"v*ÿNKUTttUO"4&{( u?Mf\d#ome#ܧ^A1kkCwx;p~8âJ DqkyMվgCD>3Y[٩OxzZ**F%Nu49|z .,,Lti^&Fml0YM Nߜ>\t=|d!hIdEɻt;;up] 'D? #.726&d _PݻQLPՕ${N ڋ8 k_5@0l{*gEn1Awxք8d@T2_0iDwOhBd.f\` 提8qeqܦBLPTh*7(PiCZhlߕerÇG-_$Sq('POdaP(#ztUT^jn~ ) Az)4i}lۖgи7#!h_stv i0tLĝahvcn}(ijUPa$eGi]BǎspppSSyXPRn~GSŁmtGA>ry۲m@$DO*%LqBz1 ,UdW0u.<##`9-="OT3ZcR4S{.ʦquu6!\u^e%(pspprhA<>q 5蹙c_4ނGÙ:#`C5OH{w4#iH|:;,IBVV!2B[w;};L[4cgfkKqnP k4KL4.1ӛEpb1- 7lKKͽ :;Nݡ"UjLI=H^(W鉽 ܼܻU-{|'A8~cC_:uZGs<@M< ~V d^^fG!܀rKKמ}t?2]JUxd?-)SG.`b" %Tdu`J_u#@f]7uOsg05.?'!L, j[wF3S<_ /%3.!KOQF<z§|-m /9*˚oHPCw'O*Ƥ}nloIM!PK"E .ĩ$39mΡvm'n E&D:kr@nJP tARڜ2®}?`lj YɤΡeR&KlE:#zHôֲGV4p˵ iB:7hjD"]3Iv~lM[&./%'Pta=L&>5Ǽ7wJ\:ZZ:gz7 禱SAg\0,P?ywpJ UT6*9 ăKm Ѥ ̤a! ".*k򻨨.>dR}&qCҮ@tbnl%3L[T5a~\#0XƄLߒ+5Ư.%5o iPpP+^ x@!G|Z**|[w{啕҂cަτ2d8HrG#c۴ G lmI~dwC)f-Fu'9EB._"Y[[sTq$$Z%4cXV1+7VTsDӌ'ǿNWX9999ut?m7='*,VmQ}'l#,"#D8˻ -]֘81"|u%v6_%kQa6^׏Jknl骨9Bu+ $p?]~W(1$ $MMݿd; - 98uT|Cd9+*C8![Qd#nRk4XWDy(9 )4G߻~K4`V;Ri$ã%\2Y*FCXeX .d fXr>#D&3E{.RFFfQDB/aepV,(s;pe0LQgZ26W_퓐x!4t6ICx昻y \>vLs9$o3C1U}o+rrVܛe5> '-- ?|pL_5YOrሲ >\TJ:r?x{_bnzIcqA<1iw?~@߰w9^>ڈʭo 7.P3fQ pT-72:5*6S=0ֈ ,j?b<=`v "wF]%#. tu4Ĉ\:&4 ˰\nD\zCPgzK{n[ ա+ͤ1zj`#ِKJ0{q/zkNNiBq.!=N4ΐe3/S<;M9߾ nPQ$@ 1C !cĹTE_cMW`D-;wAwT&=V]-''qiB^kAP}T蟪iiAooWXrw}ZӸ+%|Dq.Vֶ'E yw)ݖ41x)=U%͛d % |BvKoĥe;/y`|EaV.:II1 Q@ g}!4V(i)!xrggBSB6+N3`U)'/UuWU`McO+纬G.ra?⡶El٫0H21qjNyO.LK([$Q֭[1W`']}Wo0]⧘_Hb~Wx[1+ЊĉIYp5wL~.#9CM7Vf]o4-4.XfbWw:=*5N#MM$ӬS[%™"}xpqed)Y%[*(%i%,|Ӄ#:ib54xʾ}) lsm5wڵwYm:'`wcGY#A:|PKM=y5 x, {rIؠ~Gp[ڂ3Q7M B;{] \ي[_X Qhv.!i2W*P7_3d]'LzO #jUjo|={쨠>(/lQȊM;w%qnG g&*ZwTYmZL^N<r>C&4B-M޸kkp_*Vfx{6R)0SAg45+ M=s>1qI@\jS0*"?G]B+v-=5_=[E}J`Iv K'1c\SZq15;WkCO@e n5]z㑺/\[! g75-ORզF:FzzNı#y~YٔoG7 *MY P2؈kDhW*!ݽQ.iWE4YP\ze"Gͮpt݆6Z$P[RBŠU2^Uuu8Tr+qzʯ=S;)0M J ANE &GZ 8AX~YS9w}.Q`F ћ?@oTlFWJ {Kƅoi μA(@/>@WwI_Z«{{Q툊c^lGk\>"\qê[X(Lr)]6{AT O gP jKP׭ա^^ϥ IYz5zzem-ҵ)BOjGgwjkS{y6WBi!rr0a3hXH9(9Ofǟ uLF ??#ѣҌir%ۊnS"?kp{L*V~uO}iA_0сD y{g)iuڽeЩmW;͞g*mОt*u6LA|۞9&he|t狗/Ci/ˎsH[95`Ymla=g\RaHMm:Sdn"Ez γC%+S>Sp^]ɞ[%} 7m;c&+op﷭9Z%NHiisɞWg}57ͬo}/M/G,!GS@$ӳdޖ8PUm%Drr=թ߾dli|ďd.GEcc3'}O5M>b1c+lAͭ}IeԴ;M u969aooOq*7ٯϿG%V]WΉf p=.~ۚxKr)+'[XgK޽{777-~ѿ3}X ZhI2okۇ.*Z3r`^H^4)lvЙ9"Fio*99:n.4ƴA;iON~+,4u p»_)(f.И?_qk:~B|kG0vpoqfe($ ;iOjQ.I:d) 55\׬;`;$(ةk` KtUk%#3 ?]A >;µr]ݙW.bJ bK0WW_<bI(@DS =xZّUd-%zv%^^L^Vk!MTێPVO\SI*,QozI1Γ Q6lY~S2͂D:-@ֽ <Z:嫣,6l(p,)7nW&{22e HV֚Sepy~^&rTm7i7{uUjtV<wl{WTU'| 2sM뱠L8me!Re...ޥ5"\t3GS`0E+xIԅ5Iu0ܷiM8xd?& y--`=H3 Dy9|P^.z1~= :JM{kVpX`/{?|3|G}@f z:&&*7f{JkFJ4r{%eo4Qڛ8->@ QNv7Jׯi yw (eGU.71w䃪HPEtd=";;;|AC6M)|ګA@_ 66v-|xu{ +& jV%\RnEn>ExSh0Ym rR0bgqn_:<8)tE[I"4gK$E'>DPFYn<(ƓI1<۞a`&cxO|8h,wqq۽,~yI V gU'n߻  >0u6 qMԏ 뀍=kM-I'U셟uO܄7<([WP\PJX>I"Btչܧ攞'gfz}a/Ww02:ޥKm{ KY \CАإ4m:ӛtGC[so<p- :&h G`43"Uj.1G~rN3YPLI:k:PwܚBs#{P2Q Kˋdp[Gdjj޾wODŽ߻|q"?/_])sOEN<|r$c0Z]S}@WD>c WWW[̴;7Du ĝe<#@C[r|qX2 1NcnHŮJ,𝆺𝅥8C߻,!`WQK32ς$k_8y8novjjOQIIɓNZ3> i xӸ_F&v2O& a苹]/Pӧ*w`~b–'{$,بR[cN-nS%aNjbY0=,&BP~ qGj.02OwX\3pؿy1`jiQTuDcN&bBSY5Td\ 1~q惃Hdm]$^* dƟPӳn}a67P<b0}ݣAPpS8UcXosg!~oaGKy|'?7.dϮtc*ZQB,O}bѨ)SG`Ew[e1Kz$#10mP~tR^d{`7xNo/`]X^_O~Ӌ%-84 %ğ u*Vj̎Eϭ&lHWlټTh"9e-lS/S#kʹLC17L}~weiÁil:JI}`Q(mBkq8Lr31~ͳa,6N! F ڜ?oL R1_p{IBl87BQeƒbizX+W..AN>os/D  *Uv!BM()q҅N'k>܍Uo{d,^vLyt\٥r\4n J7f]$ۅ!T jGPTږ7wHg+ah1ӋY/IԔ£ǏC&pv|Nwۦ FP'o* InaYЈ-m8|#M!K81/H7JXDyl>y1 8_ %ee!O- O+NKAŏhAW n!=[ɛ1Mg$EQK4/ *ʃ6إK6V&&6v$V4{ɰk;.eq,r N>eQS^7%9%THH |#" R TAf:nd%(PllNB:Ӊ}=341N"a$_ q! j>F/1ReH߇6EUUk2Qg+PnW=>t3g  vՂ(fRZV1c*Q(>e=Ě[[ g,"qbspjPst{%1 /ht $/Q_duMLszU?WHx1PE&쳭0^G8w1FZ?.*u1!QZ& ''|<dLnO :˭/rtrtmCVJ\TVJ6_#fMd2y>s _`F)y'C_eUǏWq<5~>@)Р9cdW<1]5 C5 4 \!Q0(Z,D0bτxgk'zWSNX9}>#!O3&M+ge+23EكMv2ݷ=Wb'l!bs~TI@g|L_EDlvganSS@}L #gB֏alDڏǞω ?P&/\y}2GO۸w"RZIMDmC(EZ#W۱LdO)Ź͌hwvn/1d]|g/0"DXכ>(Ei,dA!tUk$s`u5p?f JIsD\L&?* pYLy1k(O~E W(dx>pMj0]Xvg7B`MX !@BE%%%#g9k$]K=礕UU>`f[qS|/ G=tCuX*O浈;;uwetr21T)mIOx-LȐOk8e% G=qBcމ̀cjᆄbYs&'2i?<6ui:3\)8Lh&y"weŇWs} "8HhI(d-baWȚqEE>݃'M/Jף4PB{S쮞*{ t^][/P&p^x8q䆳'=h߸ b}/ggh䉧v)2p)!mZ!ωz` !Y(5Α(I&\QU+YYߔdE9XE.څ}}~@;s⿥ypdGiDr Kݫ({U/,)¾. jiݧJfU[jjf^SsAL/ * X_{敒h3/ FTd]/.KKׯ!"67?N,(pNH |(2*+1A!07ĉ"?]6\އyӭ. "w.b`n4Yquf?ݗi);r؈SWSA(c7mA(]gÕH{`".)*#"K5,]oQF7 פ$t6s~J B7[LEjzΩ{]~bA 8YkIT{ A "ˬ]>gPKh|A1"^Y+j,(nuvola/128x128/devices/print_printer.pngUT ]]APQux -y 4{a!LR^BOR]#T*e] iIE1e'I!E_lﳝ^yy<-UNF]nN+ H/H' `9>ǃ԰ؐppqm`v'oROȪDB"ąC0uO@Wv1~]0ݥr.RIڊD:>2lY"koϟxnjeE[up?G" f۳ Z͠GKVډL~6S8/N , / 54ٜ8(8#MOoL$.-}̇NŖpgN59"A\EEg;>xiUӨ sJ.穜8<5)8"Y2M Ffd,qv`Fr )^r`\[*cTMFqEA}=3uO1֜ rJڕZxBI>@ -)\3D"͟]w5"!1v% /u3}8ɥyẁd%0DZjA3!Jք햏 3#I{`ugJ᫅NӒQÄ Z Q7C1_9ن[M!tBXGDê;0+ݸTLKuzܚg_NPqAa؅HqjXa`ie]x Lj sؿ, Ha/;(08ËiHCOˇGt`$SrP3tP8J&%vWE俏5Sݜ{%i 8 B'iav t.(.HCʰZ`H1\GxHN^w-q )VGtЊ1&6(ʖLYJFOIA68iqH;O]d#cʿ{?if'GeIOd[&)sz*%nsGڿf!1I`Po_EOS*=d*_-~P*n/>m E֥B8t=#'KFktze509ٜdxwJ 9E*>SWpPs C$fwBIY`!j{ df@(t-,L,щsZ mdX6'zhfZxÙYxʻwW' }ٹqխ.`C.>cbgH!;+g5ɾ&WB'-NAVTUUUWVC$iZr4isR)-`(%b,Lpܿ_u~J ,6R 37pQJ@ɥK{%RDcXt^^tMa&1.|`qukW}f%ajiiVT F@ѣ s8DVweyQ 䲥&/4ď`ܫ J~޺C+lN-Ԝ*=^m6wsw7=|hQzr!|.3sxC0D9a%`vnW 6mn[HVsG]QR@IC2g"~|r[B۸ b^#֡\-[3+|a+ʃ&%%ᬭqpC )n)xDeCVO@VD|aoO55>]4 %ߑoSDNs'* ZڌѦ# S [rCCwA9n7rjP Px{UY]]#[jsߛSS[  ],Ly⟑Pՙ"tk 4 rN؞M4^-N+{fW_F_<[Ĉqr+k{b'(gbEo]ls3Lq\|GYUL2 H?oAܳCBB)kOW_CP_$ɬ)k 2Y'dO"ޠYYYF6@*Dkg &_G]-(bqz|AQ?v/M!:? r:Ic !%~qևfJ6\KgM)᷇$͎.ɖI6VU={Y`/ֱ%2vMMM?Э[eG[Mm=6nM+{\.9T]-B"S@nwbpQ{|ǠSW]O0E_zCtrÙN$Xb^ځ5wV6ixv^DMvILdͶB_4 [ VSÜbn,`+T@o`[ qdPGq׃Dc<7CCÁjy!2F.D83 O2'J6m03= /E}jnUD߆L= O386떮og*@#zb|r58 *B]Arݎ;!9ŖP1&TOyf1V9if0U̖.\|B_pXyČeSr3LT pTR€[SXlC&_3"7E"h Ϲ>`)r eqU/fiitcd]BU @D 3qV7Ҿ?Uf8^ .*{>OlC@~]x䊇S^Q%J(^*Z@iVť8x77(R余:ks_ hgk hJT+f*&eCˏ)XY܃ٛsje+C116\[῿i?xs dfiQWWBHuHґy)q+ǁ Ɨ O,N+r{]S (Fu?{| }&>SJN~LKVUuΫkG\ez*Μq)amae4#qq\bTܝf[4c|ۗ>:]5F il6B/`O8ruYb pPnw!ZCXAñH:EV ٟ(&z X][ZO+Bq+/WN`![@BG#;C2G᪅R4 (q/ѩH`j I MZ~B?|kB )CgR2(/MC(hS,w14\+ŋs>W^xs:aUlOZEE μ .[4j<.UAnV|%|4R=!;)(XYEe1kB9^4Ȉ2ou kO\S+?v]QNE1(e_֒(1y2rWsF̓X'L^]1|Gx5U[NJ'spJʤ&`3+ 'RNUnDZ9rW00\JgQu~̪ZE U Ja?twL4|n7{OK ;ϔk'l<5eϞa3SS!ԏ~D%M}+{Q80(Vg+ /)n閹,,a>Kk"q5EloAJ5==~JŇR@1LBoplԚ $KUD$uf*MmrKEQRn)qo!.~,'48ܙKZ'khXOapwܯi @idz/},IҖ]J-q}i.O1dd,qvoInPbUD4v5uvͮc(=SM|mxES ˖IXWs\1E$i_&Ҽ *d;Ǿ (0lT(zc*?~?Iќ̋jHQϛ۽0F5XJ.p_֖|Y:eŚ2ZX*Ve7絤 ">ňC`dn(G.IKL6\GÙ6JknRC >icp) RN#:Pc]F.l̼8)% Db_`%^unP! kqpކE6׿L _g|+*]^ 6rymwX9mA i:'UރE^-d49kL_vU I6wړƿ肛2nQ>^ıP/+ܚwH+JS~9za0PvFFV]6^KiN:ߟ |ỳюaCe z[[Vr:>躞v't%Ĕxwp>5lɺQzh~yZfh佇oj׺ڴx < Z}XG1_~&H|-JLG\$%3 F: `@q(vQdSڀKfk<ռ%⏺j?cxbW7iJ| ƒ`P2 cfl6$ԫXI1aCAo臀uר,=qE'!0-. QN@"Vtײ^Um"Y0ES7Vt);{E'`u&B5xY)gӻz} {L t+.by>)ɨӇ?oMKm'1jEϫK#ht tcB>\/zUIRi\fR1э69989~d 4P+"Eߔ( 2z06hHņK?"mKAOH%зRe k;%^$VCi@,9~,Ú_/@R%/yNbYz[hIJa{Gč.(m?>UBD b W7= PfҡG}$i,N)-N{k3fp@|z@\]`dN8fܫX6uH\fKڊ1ө ƄPPA(gdL[ؘCA\Ou=KX6-o#يVNSwg*Ķ;Iwʅ<HYjMT 빉 X@7lTra6(ͥp1\2%>,X}ԓ*@Q Q_33Im)o)ފQv9+Ţkc1-κϱh0RX6~}hx-&9e ܫ8ۂiPsN}Vvv5C6C-З TBry"G6777v6l9E/>wWdW2qt<6Hotr[=$j'YCЭ9c 7Po@dj0VT+!7nJ^&."Ts.u !Mӻ7@6mf"y@6KZ6冷&sT>غ8{մM_v,p4 Nx?R`L`kkOq%S=ڷ\QLܚ}n Td?6*DRv-*Dy3JkΜeb jݴ <w;6UlXrtCgA%[t;1f5oN]w+ev@ٞv #׹mimfF|M- Z!rWem֭W`v'eʍᖑ\ڿ&$D=Mlٲ%bMsO;$NkWXe$VsWѲMzyD"+u 7ݡO`daxrX}H0^.qFP- Mpc&a'pVI)6+I^eaO(@nU*<#Ľ~āa{,?Gd)M#\v-\<@8~  vEԑ'><} #チ^}5,* 9&?:n@w7x6JŅ'9F x> <I|6znϻPTkg^P΀ c1 N*q<¸俕d~H*ԃ^b_rsQ356Y@06O=ivzM ѡװ{g""Lwf ڷ[p407JO Nx1$w=hsBѸLA ,j2&\b Q"}d528am?a 0޼H 5?2-.kmd$F鲋p:7z|2r*^pG Y{iwI1;[oەqTy~ u\Ԃ^U~q/֢6·V.sx1X o_Ν%2_M<1Zľ]UZ5e)kEb0ϻo$.Ng t0<=̓oV@𽽱(ϸJ3쓓N#W.Jg_,zB#߮Y`?oΞ|[T,**hmm} ?Ð;]m莮xM j@&)m/ K̑~%@:!N])$Yb,JW4No{@OZ?~Q=є*M>OH^0K4X!r}2^f1:'..n;D65>|H ,9D zy0ճQtn9Bsn!qu[ݜ|mi~xEp'-r* bK/|֤F#?3M"ӟyV75~WWJ)?Yae)7oRk^־ՔڃSM^6STeō%Sib^6q%?C5oW7c U$j$Vs',,M*OHn~Y<{# IW]W̖ 29C jwK^<LP[&GUP=C/c~8о0 e:Wq 9Wyv׈ALoQ%W4pp n& GQ@7 ||yw<9(z[m`xf%JMJu]UGd\/3Ε`899՞,ܨ$_OL8ۑAx CIK 1VYZ%>P c!J <ĉݑLϝ[ _+w@B֫B?g_m<; *״\-<6Yr4pp^>B=A>z vbDȕwRbzHqGk޹1{aG;j'&C풎iN򖎕2k+g%ԪdKPw?_ G៯~:kBnOdnPȂROms鎴L/%#=J6iZQWXrֲ~s rOZ n}%Rr!Ϗ*AHB3#Μ9opvۜܪJW/.%#{Ea;ME%x={3x@W$!&yzC٭K.##}A ?O!=F]wel`]QpZ%h+@3v;%(갷J^^ ̯}0[s2H:'Q5GBl(Dҧ1:hތsSVR3 7@gK#}V̑ Տ Ln4[2cN:PKf|A1=-d."nuvola/128x128/devices/printer.pngUT ]]APQux -z{<؜϶, 9lJYR9JdL!%J!Dg9]~^uzJpє@[ВS@ m@U ¸]#fo̮И'BZpd`X@XwH@0]p} Ao lF04$mWH}s2339z ,s͞6Ęb+_wB4bNIV676uԍ  Slw~u iJS=Z_ GS3AO;\PJ nOEq%;@[,VPs"D4.рcCC这YZ:sEO?`k3Ҁ2L;V@t Quu@[B'/MGaffVP[x9W@;3 |~Ow9D;x=N(yw [k|fB8{)Ocv"W[0&Hqh{tߐL_"1`K9DL39bQ ėmLzќċ%0pӓR"J1K>E/M?PܵQ6p6Q>g!S5HN9wnv0!^\ go7uU8[ .E17n:9d6>9~*1KuQy&3PLӂAh6 VϤdW?'6^A-0iD[!L(K&G?{-O> z0 KOfQ%̽/K'Y 6܋ 8b]K(E$vه#גJō@xضϓJTєx(4~bg*"Qir "\ҁR?\M!7ڱ gK 6)aav%IdG:&Ha+n+hZJ4b4- U=3jiV# l,Dغ lY _Ǟ&~~/xzz'aQ(OFF(#ݜ·=A %z?!~cXoo//,;;ٙk aIL: ?5%lnƐAZ L}vnNC[GGurX$Mԃ(#Jد#䡑Xgޕy0.'NX*DF&@NpG c( OY9=ͼ}v?䰣>} Nu1"=)/oc;=cS>r9{1'}CA5g'SFo޼d jjאx58c aR}pd@TGµ;sR%RnegP/;ͱ] x?lZ0&B  (!kك~0E!ÄGZ ?Y-[;8:j(++kzq^W*z决(8cssVo·顬j O ^0&JS9Ύ^dre[jkz^Ea7o&%56 G*'_L)0Z=DMWĬmWאH7/ &>wc%aKBcNlY>9O]@anKүsO=>-= pl˳OGDΣZA(Zbm=/]WJI{̲++Y@Eu^?a#H/ [6OzչտrsV嚢Z9k@6e̬z]Lt9m/zd։T #:&έ[ʎ+C*`)GjLZ6O,`B\CuH o)0y_&S-ϩdXa;7yM'/o]/8/-# uxƃ)7l""|>k9NqBϗgbI9Sӊ]zU-l0)I}h -SREOu305]9T@ l&ɾmkİu^EI2c)'؀V[.yc^KdTyQ#HO[#GP==+(7ERL\U@˻)&Y)N5y)UyKK2RsNDI"gU PʰԳ45pAnRB`@'R{hL(QlEYEdo܃?jYW,%yyDyB"n;pv޽^)^}Oc|tgɅOok&d0T'1\5<Ѐ(z׷b~<||0M4lmm]||| _UKԬyռ-mJ"Ć~U~,+E^{nQRM'L.AsnD/˺YCq6|=%/ѓ؂P9}'1}&$DDb OJWdgdr. {h{!l!{ Ԅ9;QRb5&peh,;/eDgN3W߉p \ơ*:i#>i8`np}[^p_^y,.(PWrԫ LDECncԾ,k!gUˇL%)"Ac^mmv¤{gF͗bsٜĕԒo< $[i*ΜBVmWV5͚֮Dnd9ݭ%Y- t-]t.6Ib ̵VW\"@~31p"ڎ>*RHr[&H᩾J`CŘFloآmm95HnzYG1@eROZ@5ӞkݛB6j6tEn2- J k-b?r\&׾J]3ZӞ>`4߬7i^gQ7aָ^0]]&ՄVqM^?bL`}=‰֌H~[+Ŕb`k , 6}R,Mሑo6 Gd2m8VE:bWƛa;[R! GLTsS̴:o'w 9FѦ-`TjՀZ졓ͻphlCAK]w'<4q=/钚xlIms0خ{&CxJfnAk%A+y,UE%q:ʃ~e܌0AT!6fʴ9+ 0Q)!(35BqsiM"oQ{Cln9+J+QfWuп|%-/r<)90 UŒh'72:'w 6jL>.nMWJօ1zAW(oJ%  [y dݼd´v08mֈU.'l=6z lEhvr2!si]}쉃~ %>Xݨ!U}#`)L,vp %)K:rrT{u9\RT2!ьc6 ڵ NNB|y[M[=)/gM%[W'N|:v.&~*DI'{,+1]6)O#)A IaZƴȼ~F,&mC<^aKPIPMmGC\qb-ؐĄf}LiDp/&x8gjbɺPe g(ҪC_Lg~S밬^xᯏVufUG4zR˒]/ UIgi6:%К D6\Ӻtu>Wk.1n5꠿CR{jAL`̪AW{)<ܜ*[iE0;e;3g:K!VT|[8bWuYBkzSPvhMlKV"SqL HՀ܌^qf)B/kIv%ݷᘤ#a@bo'PŹLO)^=t),欃@.&2VaC-?n">?9z 7KaeMr}Y͓`uinI?:XX+UҞ;-ߟޡc}=~uOK~Q8azuI]\ IJ'G\|z07Zh/pDzDcn[BKkv@Byʥ ;j;n]Qc+?Cw] 9]C?{ ڢLns㐸H>%]{ kP(]dDb3fXxKu=b_r?5~L5i.}sdwiD_}F_Fc_om"XuO)TOKP&ʜمhya};-Ӿ %5 #ˬ3*,ʷfTuV֔-n8&ܸ֢##sibeMx2(eQzv)Lq-h,b`lYY{aQWdC:H]M2p7Z@E^U˗Hc4">t/w:zq{JcmgѺEW(4L\W3㰛 PZ0:lUЙ ݭJgjEjCBpmeLWg3~+Zً > tdL [k]Jz^#Ӑ쀺 O@m|TO;t݄@q?ݖ]qW8$!&R@&XJMM Eڙ\8 YXbݳeZվm؞E5X.ZXEIK rיM̅zRʚ{r?O}$"`8I;ݶ;>F P>^fAW*}僱5{qUJ5NZPIr1ݢ2X$ԭY=<2M}ԍ6 p V_X؏H;P470LEXB$Y~I$BTDH5>GR`{Ӕ'텠*.i$JJ!meS zN}yȩ-(Ј5m$a#%+ƶٮ3,R현\0"QHuaPm۶\7߰⽒ O;5%&| [WTXutÄ g\]bsJHXd*iq@GZ$\$ 7$>O;Pe+XhVuf6{ r ܹR?8}3Ӂo1/qoKnvܯ|}ɕ $Q; A/ʽEK3r13bJw@11f$\ y*#X\XKJ,-"C L.i}aY6Stg=֖;1h]kk.-,z[@,]'}~$=ȇm`}lo[uȑmN~@ B *!,c/Z{`opg皢Pwbt FHZ\ǘ˼[l㇂ ]wgٿ0m; cЏXSZ\ؒqX0]y ޖb?H弓B¨߻Sc7,e 띬9)ǎp X^=<8OzD5&PUNj<8xsVcNz !@5ه^4]dSrG6<$+r/uMc2uZ}R"$m?vpQ{Sɤ^ h[bfM[&>K`_C&-v$h>'xxm;Jo_YI8';xM #n*%f/$YT g׌X&m>\RAU^E͍6;#|xv$\x榽 D/`p)Rxrݾj\SjEy15WW(n# 133Ŗykhh&JmN'(`b3Ck;5)}> eeKt'LIN˅+|.R8*-5g Wӎ|w",l6ɤ.UgP`U Jo7bSҊnnmɑnٺ3f kNKVHpSQbs F,p`9v.'=/)isP{e8G|#{Y`$\'ZLWK!hZ]ա!8|m*2OOM',#P'z`'.L0{b1b=K ԺM2Co03*dgQ׽ ċD"߿7Q1s]c)@eu0-}XI4G-(EV+ s7<34.#:='y3҉MB -'c?T4~k5?U'9'4}\t[P7`3=;Y& r ]U00p 7:8xFo޼){lmܸo=gWTTQ)Ga'O3W`yaF~OCĄQ/Ɩ9r{HW1:E\.5E~Qhu]۳Xr㹃SZ ǬW (tV_zjj0@XǮC/N@2 C"o(wr`iU?_PA./ʽNTuP 1hEr_.sy'Vj|䥅8K+ހp!9@GR藑@`%up)G~fh)tT&msmqla5^vp'b.\Z\*an7$bؕC FpL #_@ u߮o]rQ_u-X$P"~)!s_UbwdHhF_"{>[&Ʈ-̼ԊnqߴC"MlS}s#sz)%@^ؠfU߼c:(JijHGPRn%bv aǿc gWJ$[P*H"0_[uؿ{ǖ.63PKt91Q-n.#nuvola/128x128/devices/printer1.pngUT gUAPQux %Z <s\3)Q-gЅN#WE*fe:Uʔ 1DIRg:zm{\%U%_|g_;ާI|RvSGq 4 O?@ ' w\-;)#}WE"[XnX 7Buggm-SӼ_ʘ$h] ܇Gx\ 3&jjGwlyD4D]N9N`x!l]?~"ƊpI` H___V0; |_fӞEM S|x1x`eeMq +%s7Dm v}oTZ*V7{Z*G` NДMMcQ+fA=d=>{Z4RtRZ%97hab,&8Y@G P r}?0OK?$H%+u8JZLeF>\LCcO꺈4^Dٖjn&d,a57+AFES̉Ɠ @PV:p5W1|/AT46=mu(U& Ȓy%n_J"qFm]}NaɌjMF|*i*}}/ k@].xUi!i@_)~V "ͦE1̄F,_9_|Yd%!f@~8`\\7qH zu3"'Q~RbPQ!$*v/^$2ߞ3򕗈[_< 6M豲ɈNJGMX?`l8%9*_.h EWG'ΗGV°͕ `ID^I{^87@M(Q5!!{݉"pXMGFzN E."oڴ)9_A(O5A[[[έ>y_!9:9rrR82F6$XI!lB?i.p(e抴u檴MDY)sTޏ*(ѴمJ諌br2qQj<񥬔 ֜Jr`= ы -nOOc @PkTU ψX\.fލ޿ߌE#9HA!]NՃ*pZם|vU~ç*, TMڦIkq[gQFvʱkqf>$Ů&6 (O{NvMC`p~p~%VIvrfTTwt!:;yѬ:cv@ "Q&9+KS\KI@zŌ),(c{$ԶYnɰ2DcԮ7x_tRf~E^4;%t CCBEŞxѱs ngA [I ԼB m" K>JRJˑra6iWdsL_}{2{;@p㢔Q@¦-/}2yxF / b]Ƕ72;mI CZKJ>ɀ9vL7楯'SՠKx/<H"IY C'I9{/v'RzHQHgU[C>W;G3GYZe*fOR;-ogQ8fnu?y^X\dW.6 IWh/*L̉ 07F<%y# .MN%O5.v! N;A`2'@ C%Uɴ!' 䗃U@j%BcCPOЯj! H$i2n3LY߾_S%,{ (C~ utShhnZ]lu{ao2~袓~?E }_'T`S85Cnv˕ >RtLLQ D1Q*~`aiğA'۷o7VNR<To/7̍Dq>~W9>T:B}S yU.xR`fXN!Zkl%gviv Q#׹-t^cW~c& _޵ܵ+>1zU1M MlXCUj Ԅ"G'; II5ӷnޔ.Z]Y/.PZW] (9C\xE*C?ǼïA 8?BAv*Qk1 'cqawJ-r?يi9is uX:~ LA2O9Zz GCWy9abO+=S5=k[-}6ĚHs@t9z#԰ 33F_셽sDqD*XWOEPpTe5θ:Baoz L[T0]ɐ3|B9$.b U[_n?XiҗFfB#wuZ xv,&i!URKWV7޴pO;$<>ƙv1Mӽ}>UbN;8t0a CtŏQ+:j,"(le畦RNl,'=pY 5խľ=jIc6Y{H ݑgr[%N0<&|J>YYّ/2:;wEVW׌̔Xן".F 04xs]/+*y$:bq9 QsEqd&"@,7Ҳ !|I*0}sc#jM В 脮t\Gy'v9qӛ{C*e[kڋG,xM-k0K( 8^-H< *S4KsЮ<@"EG ,<RGıwhsk+O.Ǐ8#R_D&D5VgmG2$݆ Z>:yI(` NXndx^X g6\k%YrkEO8hR^h0*Nj3N)ϺA09$io޶:ټfk>Ĩ%k)r#\̉Vͷ6 @VA4tZU%3 3[k\f[p U:<J 筫{Iy=ijG#!`dtnRO~=S@$e)Xv&y4beN瑈'Hx"D:J辞\V?y #W XmLhE6|'wx `LHK<ؕ#9Lyg08&*&а zS"~o݇XPX'`IuuH@bNo%U!_c\{̥#C5-l{!Bȹ,_C wSb$c& R.No,Zm~;cFf-y%3܅kgڎbu.P#V􇍻̗) 9Zק lxCYWFMe|SA*Dj-[0gQָ;*SΎ8Sᰚtʞ *r7:w~vi@y%"iJ=@1쾊~{#!VxSLh´7Y]nqkjxť (LAʥMIg<ZzJ'ا|P\fCai2 &z-̾ 2%0ֺNşދڛJ S挧,UF0qy&_pzu)-)2 -%H:<M6CG*`9~cFK"S`o'NS^wx#;*]]փ.L@q9[ 77uKp mYC2#"Z v's_d>-6sT7]i~T˥+AJ<ؔU+{-kkݟoׁ}j #-Z:W ^{bזO&"1'L]]%\w Goa`ʪxuðR"xNŒzDQE1TP=9 S構 @E!kD=Ffw";ЅWN'w:t"hܐ%?S/&Gh:?^ngxpeK\;"#K.ѱ?b*K:RONn3 ].I\A_EfZRɬW1c5A3N&~J5:0E5E@io X%8CeuNiZLj{b„)J,NŽ^_wa^R'ݴ)QyhD|gI헕nB}Qct˯@2U61Fڋn~yqm#e~{rnr8 Mjk6cqB grr{uS:ȟidh"J!UZ%Ĥ[@=wU+ʋ#m4G]fX[M~Va H}$GstKȹX3E;h׉HqV7⚔VK&&CKrDKV47$4$j8&CH$:.-TOMΗӾ"+J^/lHA % :1Tr@@[82`ΎH Ir0RN7%o^(?H! iyp3Rort>4x/Qv;{)Lu90Ki%W7̝)o}%vWNk3'vfz0_<%ax=xL-#e~v|HwMEDwf3hU HK,3`E{Ou ͩg:-&B% \kwf5ƽI`yz#<͎haPsDV}.Xz'|SVF`y $~=.XI (Q}y;cl< LOz/a@%Sũz}ܬZEʷMITb0ڠIYSKTK}^^A[7呪4}Cv[pIt^'-876v8YJG<@Z̋b$wZ"zw )Ư4OA+K3"^_ƪKY\/ =@z'~xuULkHku9iFB Ҿ]̗-ʣ%/RW,!'֪F6D.;D |jb3kQ7C,Qs"1-l% Wu|oٺ׃ː hKW*z|v~16H tuuY s))~їؔkhZ 4:GO9Bh[^q|$&?vḪ5sAxrHI' z^Ļ@p8+<lj{)R _-A&?duq/e[ "_dPbG^i譢KnChPv8GhLjPf3y}+ ESȴ &w[H6E=yԏR<cB1 EHUtӤ:}(Ƭ zC*Alk'FדeS"}eRt-\ O27)1j<=|ic<GKJ`%A#7 .vօ|O2GQdTDZ'1Ce+={b}+Y=}{vTH3xDy=p1 ?*6M`CQ==zX |)ԍ!Ģ}ߘO 5nO_AM[g'O fA?}BZS1ziZbQ|[EDD _`EnW+P9>~#Hu܎*4\OyP#0ax懘7 ]@GxOo{)a>d?h(<B-|3㊭y2d//E6l9nK4|d61Ks6R-cWr:a6?LƉO(&|֧5ϝD&Hl]J$.͸W^Q??-ݷ%I0ݤ"8o뒡 4*I@zI֎1ZBoː*9+x@-&!8#<1髤J0Sp?@L?V!%%%MQ+' I>5Iy~u7'u|}8h^vv?f9a CFXM1ؖ.-U\__~udԬuN'_mesRTFVR\Xf[E~$/

      {4ܘgYE>`2V'$YƑʲ7aޟš(6.K6.A Hwq#f;dkGYa{ KIُ{+tϐJE)%HSϭ1=ӥD'lv"+y4=UOYOgz :0'y}3ޯJl{iaVE)cM\(.kE dU|ۮi>[:6sX;I#!i`&W'*%6>Dز6}ƟL ҅Fķt ڪV" 豱.'F&X-GrFﯹD@7RZH_ŗ|]2, ~?P^Mjyҍ3ZPE d%q uIUgrWwōDqҌ'?pU/噦bQr5>zQ LG+ YAUsG"a;/.&GN]2ԭ(ûf)KHIJIs4?*zIn<a!*Ǝxfw "S;X>1B؅M"=DO_%ՙ >E/m<:[j2uvv;$uFP(Dhh(mtˈ2𴉎I0"_bøѲS3RD+ٝ%[fRW:5~iޯ L]wN2a0hʍWy}<)6\1Ȼ}%(ujC>!0#Vg2F&{tPiw%ORR]zMMۮNuof)-eAN LC`[ y0V~E/{_f8٭єm'-yh*漣d e%W.Nq޾uRAC PY/I&§ԍ DAܼw<[&gnNXbQr?vnony$Cs|^&z?q%|i1]8<eJ ½&QZ! "lV־!?lnjE D" U۽DP8c//+zե&g޹ J ^V 0;gz$=r4.aCá6 88<#!$v ]^ >TIs^Dˈ=*iඵ0Qwy40Zt8 HA,nEFDS.)*ކ׎"Bég;v+@+^~4kwoxtnj5ybF"mW3V!GFڦ$ xk~!!:qΖȻ -$],E2Ap$\n}XX"Sx=m?՘d`[\:AgnA[||S EwVVG:+p`R r5!I9W-g^E?dD}jl|VjF-R]?m?Џ!'90*x(\ |>1O/8ETī1m2Uڮ#p+ + *7b/QHZ+l8G.l'(쟶^ĿgB=ܣ.C; #[4Kg(w rias %U!l ʥgD(MTbs@rP3$V\\WI+wI J3>:SH3e$V*s]ZZ[ߧ[X(xl7$+a,e=`x0zPHZdmxaz\)/_+3S﷈T4%3\=WbEhՅ58j#_,ZCNX|%lubOl^tR,%*UkwVӻ91O8FQ8lxΠKlmE̵B1u[g7XA!${Xt%}9$q oC~*אzwMH׷ `@G RU6̳j!aCsD0#7޿ vKHN\/|1T8qat^KJјy2 }I3e?xJ@|UP͂(m麺^"bNiB k/]]-z5,3b}<)핼,c^=,/:_H޲eGQ^zv MA= "`Psɖg }LӬ[X|;*XgPŔ^۷lg81X`8S覥@F7I$KpkPI>*WB`2,gnmo|3Ťլ߽˫Ԁrw7 sE>ȏ"bQqAG ,S5,=jLQ*زn]dHVFieW+ARg.U`ќ:(5va):0]VV=ݨc8f?~00`>(*S9ȉ28ݘaABQf~FRB7Q+!olZ9/sQ8j-_{% Yu4ik<2Sc~ ͓IIO<&,)+V\|#`\$Kҝ18Tca/K$9ˬTݚ; GtP1`!1ޤ/lN/P. 9.r/Dee%j^e57p\5PMvz%G宯oQN~Zr'& c%ADK1xz]L#qXfLzśԙB^/+áίWON`RDZkǒȎ,>\O(.sLvj΄0C8Ay]8 Ceo*ּwwU JDГtHY_8oiigC+oMN55~Y:Af jǽOՃ/߬GbD(^/ 5<'!Wlɘ\RE2ZkՁ&oz0x$f&avM ^<5a"=W+JM)W:0f`7QR`ʓWӈפ{q&Rbխab(-*//P:DTw{s>Pds7{i-q g@UKUIXI'h[.nL`ۢfi͖t`M,OXeoѳ0^V(Hs$Bw=^9ovx uxah_z5NlV~Tm>;D>VD'ALFo*K}@{o;=66VKIsY -5"A v l73`EFv^q^5Z< A}`EhZEh{ՂzZ|gajͶ wO0ga@V%.r_2kmme#8&yef,Nl7S** ntp>L_&x©T~WӬ1\o:-m0xsܑb15¤SyNhJ/Gl&`#KNrcﺫĮ%BFH|o -9B*d_b Idw~m N- 熳+2wҹmi?dqd5FX&&5`%2?/OG 7l wf'{ y䧑݉՘AKM 2kn6AQ )V*Նf3Br'E;fVY;jlCXR=)< 20ԟ")k@ZWjVE^ѣI²SR쐊OHFSsn#W׼p jDN!wrMb4A%D9- 4=rtwqm>&MYrO>@x<m,7Bf;|S')ZTdeaK&q:j*];V?6[XcI(fUs4nfKD yאva]& 9 K[Y-"g5.S G|EĎcLpe83I(o@^EҨ?!5j8T53߮pzL1ԅq&5|87[hwB['>F1uGH='&|Jj,Dq˝.ZHinj8IE{R (|.¬nNT@źociBnZ'KQ0J-2VԆ⊯R=W.Y@cbdI˨&*JC/,]A U3D\9;K~ {s^=zbcԴg8|AS von+NJ WU^]eAi'5HcY|j[*u*nf6B=Bku"018|WYpdcg[ʼn].Ck+e&kB| n}̫InkƤzrƯQU/8XS襰|R_Hvs)d|c=iEGH Oݸya\Vзfi-nZkqW+sTm@K;s x(H ˜fкk"]v)Sj\dmsOBtIj=&X袐C,@>  Y 7f~z> GF("30͸N ~jRi;MXhefjq˙cu8E.6gH bʫ>ns4Ǹ]DB)蚅 BF=|=C0ۤxP?A>}8&N[JQ㷼h*QvPI ߷/wvUn&>[ɣ0;r>t52!XFPX5kytuĚu:4>E1o:>pT\GR댻tpOIo3U)9Z0rB4A~QgYHZy/.3نl\ζ?Ҏd%Þ 7~涪}\FWdǧCeۛ(D훛E˛ٿcE6mlC)H;Izh6m#|١,M~2 }Q`ZFl;Fg? o;"+S[6uxq+)Dr-Tv`UKh4f LSJ̖Es! O++_Ғ-r:p %WayuQ2:I?뿫_?Vf/=? UM[I[/Ko(Uc[pNo##oS>_f* dt :#ى9^iH_l,FB%Q7UVUSyެ^I%ҹsj=k ފm\wPIĽP~@wAOLĘz\hFsp8(:HVطe+>RۇB弰YtΡs'i_g Eatdw̦Ҟ>? n\S\ToppqZ(|¿qc;vP+^.rz-I%- B"BMp[awds)ig*GӒL 6a pPD"Yl(\]ɝH\nS p<-HϝR~^ま:ֲeR iz\M*/%B@ߪ?p!_1 乳u5[qXETkU 3Ӟ ご_m>Bu)c)'VoW}hO^wkO&!$F n{&|8~4oGX 8pPҩՖi<I Y Bwo Ī͋\\0|yS.`Q<J^=ncjׁ$j^,3>Gԛ-Qan|:}3VsQ _nshp?ۘ[#RITw9/7yG :+.7ٗ/_?^ }kcD1[S1+4Ƙ؈ĝ89Go'?? 9Hl2Lځ3@2ќ|j/MuLS<;4֗[6 ª*:Hju,}5U:4K ~,r:8 }e З:EWPKt91COP&nuvola/128x128/devices/samba_mount.pngUT gUAPQux %P7zKh ItABGDH&MJ( E PQ =@~/3Nfw{99gf&;;@䐝[ɶi>H$(m1Gl^:~hx( ?7OPkV,Ȇt,/ lm{OͷaTW堔o%!ç̣X]by`\46 OS_o!>/FjIv{B;g D61"v5eE\c\}ɓDO[IT+$sF潃ڟ}Z6g3EOHȢeHK)OBh|[эR%Q_< eK NU^8Eqަ9X7$Wh ',ܑZ?>Z{YTP WH_H A fD?b8$]9|хqQ#R׈sPPZsxs' ɸIT:J [xȧv]("\vD'KƉ:A>\}zNQ$R]L6g({~R255F0T++4DHJs"ML\K/ч0u?wN6^1߾+aOQuD6V=gQyX} f bU`|ge ?{}_OQro$`1O*Y]h-$h=G`[Pq@=O3 lnUkS7.dJ_.ź{`"+lΨ -IDJ08F QIx{.ىxJ!66*%ϡdL1H#-.2F ʺVV\˱@.9/f&eaܤמ9`)SW ow[Mˠs1@RFpFIR\<ڛpF+A?5g-; )>LK jҵ@@t'e I},-==+=c$D7seƮ!; ^0ejj\ndjZ^Vnk2#|05Zr]0g"*L@φl!~ kElM6gn )uS>):3XZD3;Z۵5#= 猑>kUC7}D,߮%mnM Qc+!| wI -:!xCSD97n5TQ^L`/X2%\Kg/."TK :$ 31Wo ysk7+HY]-v )Y/ooo?O#Z<%byAC$ydg* sv0]G֊ҿCSudfQƽR'jl^$-PD& T3,삒_T)[[Y[ϻ=~b~Va0|Cپ]4أJ!´daSp bR!܄x;q~Ff4]SzRj|ܭ hCX'7?bK˒Qֲ};ڲ%PI#H-M[@ FUssb/;ǐcSMORQabTUۉLOK% A x;3|DôB^(w#>o1㭋ۮ{2CSJmC{ YFT{ ι^횰rܸ//ox*" z y7?S`}<?O(m{?#pls򃍅M.H0@hB¶Y*nEV5j<]}x #Z*o `"YL3BPxؑ_A/_0q&<.rEPڛ_ d# jB{ >P[{6{|iM"&u\`9Sb y>H*%yKAF#34Ǧ=9VGKS`g rMؘ7V5ᓹ R%,xjܸ$-ˉ>"yօAa?CB7hk: 9赳xte6?۠vSȾ.:ʠ<Vl;H_%sCbFpș@ 5ee;t#A&qKk(YOB9`\(_?PX)& \9% 5U^h=2%'$S"|8E=p e\fEa%זF+DvI+ }{a瀯2\$`n}+AFz]^gN 74n< [|̞d r'PB&$@DSrзS*Bl&ճ:י;p8ͺ !/B1&5+_' g9e(PWF;9M*Fcp ?*TnV4G:@[N!*gFEk,>T8zIWQQF뇦ً' N̂)*>@ӵ[#k}#II]3t{ 6><~6Dz}~;Zh6M ۂ0F 3SJr.:U/ӨӬH9g=dKϏp'IhL>sd&UYYXiHyyI;9z} ҵpcQD,It{=k0' x拢'&a>dd/!|1V٪9rU@2T:vM = Fh"+ 8FC‡ʹ/3/74|s¢*.5eT-UΗ?x@GR/M|o4FО Ǔꪇ^x]IY٨vW25[*eZ(`_O'YҨ[jßxއ(:;Ihe);㘙qjMk\so3-t6N]NvGRs.S {i3Q;C4UeL]≡3.KX=%5VhEy e)|_4\)]/Ux},}`04򬦠j),Ďuի?H][]?Ź9)XX?pq#u'Ŷ:H-- P!=tK~&ⶍ]>y8 QGþt@h]j%{rRff;lާCݭj#H 3'MI^Y䱈F~p1%w_#vz*Mè3FC 둇=;Wx kZ lٸRQSp%Y7; G FdSV򛄉|#kBi!{1GMӏt+r`)Hz"7^)[ҵ?>c  ɟ`Fj (c R앧N0нvK^F@/"S/Zѫʴ±}t)&W֡m=H59ipr,uM)Jd2u'D 2 As5޷RV6m*IOM8s&Ϯ*fYvc qˮēwꖑ\Zb>\cΉ9ci9 v857:G`}z=ir?㎻w^kHQ}}Y;u{uh/]mV5AuםA}$U;uiiFQ{ I۸kc\.\8ߓ ;$ӏ,>hN(Gv7B& Su G,E+:~!LtבQa=K1CS=툧%Xa,2t zC iy!!πu;5ߙ?9-vlG~UҺ}P689-Q&zj:"k'g&6oxa*iUG\ eT^WNR6Aq4= REj+T(P" t!aYq QYP'7m~No\m1q'p9H=}G0@չɲ5W㑬 ӕKfG` ,9tKx+xgo̤tngA\-c+Iq_J~a;!㳤cVo+zc9efh$Nk*CŶ/ ՟bI"Âm+iqK$yx%Z^]a89yk`U˔mϹt><ǵ:e4o]U7<≯e c,Z'rTrIZi-[9&ܫ0$k~>ltf/E\oG'5'5H-1|{!^_xcOVSvkY5Y'W.}a(/Hw8v ;?t_c9m \J"v޼VbDH<>0(s\fn?t:/.-(~r~DN\Ef*N{.yJW3T%φU3, /j6x+xNqAPrCLғ1oxg]7r)b%"T^?\xwk륚U=Me{>& Qmc^bVNnrp|܇{ #ztGgZ7GtbK\F>meaϙ![jr[g{I R.2dnȞt䂔aT]M$ADD,LG"#"Ӌ3a& ox+^enp~ćԡj1v- >đ=_UBsңλ0(tM裏vp_u\x<گ$SM$y8q¤/9{YWu^gMxju(fpDIqoo'u鞽=>4pe,fs ӧ6C^&x0=rGdwj;ef0Oi27B>6{, s1SKoYh[l>B] * ns)\Yu5D4J_:+}|_W0d:"Y²bUO!j蓙î1!)e~Iz?FSejS>Ky㾷yz:'$xS>#pA 2*)XMXڄbt*>xiiy4T׿ףaĭB8]pIwj&Q7wXwi53v$.Q=f:E2\+ڤ8xtDk/fv[SPs7B% Y ͮ!ij!g^}۳gm>Z,V^Y%s1+5ki50 %(0rkWW$5`o?ە2XG u+hsa kjv?r.+KO1akV<^Q!{LC(H"ǯ:G{TFxڲH<3K5-w/Znm&tM fO\'Ü_ Cus=^!J+\}hX=֫m[ zLvqE".e=wi |=ԗu!Ŏjƺ{dy-2\˫2{ܐlqohoT2fC{3(mA3h{XpLZRn_><.;-ɑ&kIt?=µDžL8Go%W \ E h(MV _nAׇУ,$>80famk,ˣF2刉޵PDcc`Q ֊b mN5%!IJ5=V fnn(<"D'oTvkM# PEFZ>3u}Sy :fT)ɥ-Re7$İy9[-e~yo([+cRcܜ|ٜU-(Hs皨KgPA1I04 ff#'wD<̈́y,.N/۝/cF fM%,ҙ:dH<6ě !X!@(rĚ`z"pZC.7y Gy9tB${:3HҾE Qcu:%PҚh(kW~/G7e<UD{&ވH?\0W^?V9p q`Zś]U\ya44Lv٨9@1{+-f5.՟1XQVnDs!欦W$|xϟ;̗K L" KW:;Ͻ,ٛJgj->˖j]jޮ[y RXZ4 XY S+ 1jD(3_#fJzK;b=| aBWx1Us>C8DT5%Q>xz2h)YP,&}>YLKv0(= ұcWUeq+%Ql񁭱kk&_LW`P8'( " Wx>\(DpQ?220VT dnG4,dL1:cRӋ믱ĘoEXn{ffv݂n46^K)!?<2'„_A*:+䅼~rKl٩ފgFub Z{J{䜹<(-=7Jw$m,9K8X:q'T^v+UOQIDG ?!I7Բ7U7rm&|2OVq R38u`{]#iI 4.?+a2 ϗZ|&; bcDR2v$ni8"JVM \T~ND#w*'8ѣ}FcA}u}uK.;O5MZKbeZ=vsu)e'P7W k̶Sx} #Ί5z l3rDVQ8}">/IPoVl)-F wi _VU@ꇩ;.n︝`^ϭ,ٱݏ.EwTHˋ^'?*VBFI׺m +7U{CdMNFG]G: 7r@oL1vGg0$2ڼ@qW,Z4=2!tJa[3q3_Ԁ'%A / l5Tƃ0zO;k FҷK}~Ћ:-%af\?{i%BǸÔrzPe^qxLj޿Hd+`[[e^'Y fdi 3'V{yXWC;eG6AI 2G`nVɦںm^L"wNxiΊYDD)VQDOnC#W}U3n1\8BM@_5Im}'0 0V7W P+|T̗  $Y_2TVnq A30߆gn)띧 ᪄ǤpQa.qvm;[pPNQ :̿ArЃV\`CK 펨BܜB(뫙K \A9$֡C3 Bݍb之x[eM@vy7 Im&ϴ$ѥtR!:VY$w%L@K+oO|\ B>gf$$HΑBSüTWu@nw&j.M7eXF)/Ða5C㚾ZV #ߥE{_GZ bh!̥e$֐(oZc0L 7|"O $NR{DV%**ZkGKD嗀4|B%NMXd{Q %-wg#FWvdN 8Q6KJMqO 5'=dd>fk`', ՙuP 6%GJ Bg!E :u?UP1rY 0>,>OG&~gX*P !Mƈ|qeȲD?ϒL5bg27\N「,D WPJסhFg⼙>PvY4>^ mD|S#ZiםI[z >#M`ueRfۂDm}i"~AJ R!U]C4E묽XsL~Xp\ϽճxҤ<1 =Q<( ~8&& HMr!49uR_N6ބhqR؅ ^0E12dc5ZTmX)G6zglTVZ]=@T>K(ʾsO*S #&Ű!rOq:EoE PPji×jo~Hl.!z:;AVI*%xj8`envBWB.BQ0f̓ [ z[&!IRv6!>S!*XxiLn򕻨%4); ,(&hCw :td,^5;U4%PX/9ӉhmU>G }f[{4œc3gȥ~a55x7if*HjlˌWE)NZrG{P`'jɒvPk$+W-bbo$QH(4xSD _̩TK=(kA>\үHK{!?;i>!ϪI֘ronj=Uw5~v5igUXz XǮ*DȣWoy YO"A]Vǚ3`.Q,?1%8ke[,"P,g+e4͛3>-g@?Ob{78 sW"7.X~Z`ҝxPTߡ9V4ư,6ԜvQ@:+Wއ/ފ aJ5G󭤐n+G%%D< ۃ̫P[6O_ljGscI7SZۖXP[ rI`N.T?@wqo2z!qUOQl隀dH!ѕ>һ1RFmx`B̝ EquH UռRkd)7J\Vhg XB(?w}J둂Zu^Қ!zV?Ȉ*2\1՛A\13C RN[X#W*hN;|SNSߙ'&LW_ebWpEBg:6%LRUce2 2?j^(N-.Vr*S8hPQ*ŘJ*"R.C~TtBN(2mI7^0b_E*լJŽL`wa- |G'.8Od4'ZT\j$fe|2  >Ύx:˻T߻S$4º'嫳KфPxÇ/ Q{yI)4N?Z1sPI$~34I͔CNR>;YBI0Enw)^kwsznq5'hm-x# 篔18gb[]YOI{sZ2d֛0?nA^AȚ@#Y[et'#,MCQ*t5K 5$W\,3[39` U|U- >ڗSB% ݒZE0ik9ӓ3S}"ƶ 3~{.pyj&;] ~ka0Ib΢)k %|M#Ȋ O}'YIM][qj*Q̋ ptlᆰF`PU͂ L>8AjMȅl//.n,k&fBC۞EvbD T+o#$ĦSOYmwHf]uC}젦 tZ kUdɉ}D[FMpѿz<(f- b!ķy[Gzцu~{)b6rYF?mtl8h{ʧe8hYڛ,LԐ97FLb '4[k Vk-x}?Xos97=?c^&`篴EĎtGD7c/]t- T+P9EG< ,9lBZ .kY.ojY)q!$_1diG؋DAj 1;_2Ha".j)\dgeB,`] S|r3}$54[[*6hhJRb#dIYU n uVssF:HD hXq=&qDxɜ.!dՋ0T+}Ԩ+o$*uY,І_e$樼ɚXeu` D, f0[x;|qty1\ i axipk_o֒%ݱHt~C]W`M;~}+\$q\rۈ?Gmf[+Z =sP,dCN8H/"vq5ԹM{h i3f,#SAqW0mP2ZO~bB=s 8e&Кq˝gɪH -3(PZ+~p]v ƾLD9i:x(B1@8*G| *W<.&yPdEm3u{Hƕ]qV>9L#GoWiꡎpϒ2a\&Osr+V'AoqL$Bd.K!ۈ. GYϗ 'H̝g8CebjlHWcGᄅ+ lc#`P@"OX{8CɈ]nyӠW3[MRӌ@U3e]UIMZ鏡ے^vJG@rР>I݋U`4ni&\פgeҷAW$:È>~#@сcJo~5݋. U)Ynq^ r{xw=@odV`G5ԁUBPzF;3c9# ϟ@An~WS7|yQkkN`lg1QBq9mt_Defyjoϥ񖱂0LAJBy S}V= C%]A@\ަ^M֎2[(ַ6oN"Pޅ{cDZgf_ K!\ٺA.(fNI 0+KHK g-*BN0UDo|挰u'J\YZ s@}٢L /)&&/g7[?n %nVKޖȓ:1Qa% 3LAV  tzv*/R(1`YU5XH"V7k߼Qv߶mPɈ:iԚ y;rrqqR?i?̈7KrIoQcfx'Eo[”Xn@AA3!gSjN"Hw< qg ؋)aQ?;X{4>弻 dHI V:)ÔE-!7&59VTJޘZ )`XlYkEAkY`qȪm\KPaq6,$ kw]q%nfYu(u:=KV ( EpHlBn4%voq%5u?#wP,`/$3I{̻uHyY* F~uyxՃlwy754R:'`ՓɊXidH7@|9<<9 ؀L lɲjxLEmЪ5C!,;$_7ӕ mw;tO:dA֋^:gx5E(l۔N>Jʰ$P!%YҋLϣ^Yzu ?y҄W+m^ iBu%k1ND|U~oixBY$*yWή4T_1ey ?2Aþ#pXtF\s"W4n=T%qro&ͶsʏQ˳/Ice[ UƨY/GF]F7x mtl=o@f]Du훰=l2`0;<2mqbfhW9uL@c!y ڣ֨uȢoO7ҋo]:GƖ¥(~JB >7sR@̑nEԱ(Z9΀q72|ɫ!膁Zv;@pQZ g06<^dUȦXw=7 !WX8=EZؑN'˾i !dfXIfn/*VQh#wϢJ)a)l3I a}~r t8KdXH"#࿱x`(  fdAP6sɸz!-R \dTD}2!CwK'*O梬(J^qP0TAGCHx L\8Zuu݌0eY)yUA-F]'d".sD^޸;D_. 0<1g DS7"! K&X\em :>LE%%Hbrct;!yy#.͓NԒɲ'ٜ 9wեǭSM6ꋢύMs_5Ӄ*Rv"xEGHKidcMlhԘl3߳Øs5]s(C~G,V7|F߉B"UUn-j ĉLL㔝 ݣh4J|wQЈcgӚ<C@"_)ԃUS'/o0|Yw sB˙$lFWuey9ìaتr4N0T=Y{Y- <; os8K@/q5`;YvG@' ^pO`oQ= dՇ}Ʒ x/RͯA!_'Z?Bۮ~aXtZakELA* G:?$I/S%\MTRC`ʽw뽈=Q?-2'DS_0@`j<ɠOL^%W+Sw^T:GᜢfB*xCsWp rIv{%zh{5y#J*MOljB )#Mí#'=_iPМWmVy5ƎE-C߱O:q׉#¦"̿F z,v_TICwFz3 9ޙV7(՟hnxN5aq\>a|P9nw?9OTd~~uk6 j)ɂwOiP-2l8r:؂SRndJ ޲P_?9 o`h#FKH]kιwu:ի0͔:>:N];&'üiTYN6@{>赸6oJP9F`7ͱ^FbFR'#.GLanRkmuO1XGȄ^ j7N0x7_l˨d¶E- w*7]9woqH ۘAOL $N":oVSX.<%**,aecwIx궣{>d֍dH6b FOo,[r-im=o=2cy /z`s[T=GvG5]#gRkw)g CD/Dႊe۴`¶ϫC Pr&H{p^#+ TR+"(7}VRoM:$Kd[/MIP4д5q@yc ~:hj9PK]|A1/&ۣ?r@(nuvola/128x128/devices/samba_unmount.pngUT ]]APQux %[ 4T[wNdfoKb*E2}_ZRI(2c'bR(f7s9s}<oOP:w#f G-#è$#lg'p~OOnYY>(#7ci;ml.MvyZs&ZGz{ݭ[XZR(vqx2\H(F]pv^UUv-V'"lU)Z,v`uuSJfR`&A䍿)Kd )=Bxke{a2MShy\~&ynb ዗iʷo8 A&kل52Zg%FNBQ1WΏL<X#E9\K(%Z|D#lv I)RUk!'O"CGH.1Zt6Uܗ\m 4&#U)V?(+1mG5ZY Y#͙L"ztz m B@ H+iee6nSÈ->vypFq}4oU5=nKℳO-]r7Oܷ~c:yqφhOGCzo?Zd[qxY/II;-3iE`@sAsph-^,56fyxٺ@e*[ $=qw8W| M e$$x `TfLnu "@W=}7y$Qy|rIHI >HaM7ڢg;e@rO C 딳?O:Βe?F~r 4X}~8j_mCs5Ubw$'}rd+KlX\ ~>0TQ ^W9v CZXn:On>׉`8´.|:~ãO\/j2?ΣCз(7ш6fYWG_QxXу%8f7ssUb oBjl۸SS^[\y@+Pl w:qv:EoLc;0?($_ݢ_<}#s^~{eyfcQ==WW7˖Fl2@!oq#P#%"`o.p\qZ1?}7 g`jBDp2>!&IjAc7)ĵPG_2]D(g7,؁3@W XD9kDAQ n;P8SkT^]J6o[dUajms _od_'Jq``[JG+<)3e,gsypi5."0\lJo)_ y7c:$TG5FLz8赳W`&%\, ^%UrB.ƅrBX (6Y/3VNH9qp?+nom5&B~rI 8*Ѭ F q!CP"/P:<{YC-)u ?9D$BA@P6W0kћ`IzMsE:5J^%8fB ?&6;qJ,}RW_=H`\#)AA;\ʪGTy8P(ō#sWA&> knv=7@`V2 &<[dyrq K5 sQ1&~Z 53μpRgQ.b>)Uy "l6GGQIsM\YK[OL߿#  Rٿ)v,t}yZ)Ya'e6Y=xԙdCt?B/(97d-/^΄(;eȥK[ N `kg':OYʣ!H87]YZ_悰HEa#qɳncP;-jqrdl*ƮҊz@f:Z 5#AGKbO(*Tjss3Z'ro.ŞW@]VJ 1DIIq`.Oc;6RBܝE1/L!  NNH/'sj)!H+]|CaBcI+=`Z,?6f+73 B^ml|@~Tw4 IƸFGkgɕ`P [;-(r4FFw-h~miOF #NI?dCsYxLm:e~χf;B @H1s!{s>ܵD{S78m pQ49qk\*+a||Cssaơ1ʳȿ@@"zZma#*I: =˨3%(V+G[4kX\e)ܔDbUha+O7K{{!_gμͩ9DEc*P}(J/xuuwFe|tώkz73 }_Y*\|$6}O^RWxj{Eڷ*jJefz: /^nj<enoг {oIw ;Ue@dy+rjH\wr#낗֧hx>XcyI_w+V ֧z]nW~n1tq5YZ}'w0r`E뇞>D Wz] (µ,:9'J7GOq$%5xLpXTX[ b;1qz)ȵE'E,U\Uظ=_NNRM<$6kݠ~s-Il{FKIw!o)ROæ`y縜nxŊGV0T#/1L|H7zJ='Y0*{Rg_ӉhÇ"q J6t?E rWqTÝ!9>AP,:}`3sĨu ˪qSy_zqեپضD ǞBJZ#?OiܼD\;~k$.O#m#\Hn4;/~eaNad!P{z1m/t6n22ҋɇҏab?oBU4|&1[u w:. ژܣ@CP5UUU@v73.ki%o!Voʾ3x,pލK9t䜈DMg-"wƵ}Lq,O4I|uq7Y2ߑ3Ih?l#׬~Xf/D;QMF mb+S|Ѕ_Z]!5#>*pU[ΧOl!ckh[㉾l5MwUÌhUhu [>Bb.4MXũfcj4!^-1` :cR%GxZ'qLoʹ߳&|Ů5f}$j*Y-ۗ^Od߽%dJ8< cI/[djVY_Ez.}B3ZxѹxEc?"Y.qOM抪!n}%oFO;yp%'E>}N,ݫL\M3KP cG޼ u2㥰xK/X[;m/QKOG͎/򈮪ϓ+5s 4 fut[\=׬ sk`$_yyw+w[fПW0—=iMSǵ8y㽓a)^#"+3Z. C 3n/V]kS/l#T?Ǻ: {hB+%dR\.DpK=xk Җ .ud'ϿݞZ p޼Uu`i)2Acg3Z܉_v l%emDU$PTtU<PDRë2&]R$ iL o\>oC:қ5ũWN;=qhR!Kc9\8JN*F~ox@E#ucBGFR÷ ]yn 9kI16U4oUu ׬*g  <r(y9?9'J6ԓ8ZbbɉaRG2H.3 ۨZx[pqc9~h|Α½QB4xä3JyY%-Z|JoawfM{_lܢ=uZ8hPiCit@"<{܋2l}כ?_/`@lU>1#ڢ^J9'1nsx+.{Acڸ0)/,YHowֽ[⸶玟A=%K\ ^S74f^oZ/DpyqHR"NiZ 4ÜSVNOvoyEZ1t;;}NnxC]_}_빶O>MX8B᪨ç'Su`zxч"rnWZzW$ZV 85JQvƤunkhb'|/u.QIi#ģGY5D|-pY=Knrj6Ҫ/.%yJJlM/5}5Ϭۖ&{IL}BHp&Q.< aQ/+6s '#u̟ t|^07j#s5)UF*0&*]);.em .2ݽm^cP7P̐ne .YEa>vԇY32ûel,c7$&}`YT\g B1"QlJEQpU#0?m鯤E  g QlaϨT_^(&Hg #$}c>}W^|:q&?~{]:#\o5j-y9⻐ٽ{6/D~fAlj -WHY7OäW1ڪG (§>5ϙY4|o]wM︇9yZ/h7.z*nP ո}c㚆]lQzUg/T R鋝~O?m֯޾?Pnï-RV/ ?қ$4[}ߏ;,"l Y8ىKϜNԡF Wuv>5C'pKFzz Iﱪ7[sspZ<\.VO,xqp[7O!nR7n<6yn1 s,9K4.wUw&d6=w;oC_}{|v-@6:9e@;G?ȧ:Ick0gﻛkEkn;!߼?A_LQb?0OxJ (>N /FAvA2HuɀTz~?opM*Y 8Syyp]n*3hr㥼0D9ͤ#QLq`DTOBRh;U4Zw@kzm>{g_̤xbBW(H2%PQZ6gr7>tzOSl1B 3~o؆AĵIya:cde;T+F뇊fBuU&T$g'FφsPޚLJ<]~g e`'Ex^R_E!g\H>r"75k:@+[k4㱽Gk$6.< zW\>ur=#fϟfSe)X> -KO^;2T#0!d:ZN_ْIո ҈BVNm7H`m!7 =Ӥ1"ԃ//Z;ws[=cFf Ls;1=x!T@DSehPZ\b6!4 X!+<ГL,}F 0{%d@n]P JnBY"XӅF8+9iIp42\b|m[fҜ_9,įm7<#(Iӗ4O#|BH˷ \SdW=I|y${+A%ʠN9CiApۚD=8lL/8lꖇ\*ȾqΉKdlpC=Րxz% +G*og-_g{on폭{|`"FX52 BQ]^' 9"_UD6f&xO%^r'{mЃa{jZ=zz C)츽.ꃍq&ՐWn+xxc;E΍5w_WR*loPLÑ?Q^ (ȭ^>w6Mn rQAT[ɾs~!'+RvvBF@_R`[8.c3wc2yǯwyUz`EeRP%S YnfZ;x-]VSC2B5^VYi8?K1:ZU4DrFJ*3!C_=;?0OKQ3c?t`LzAcYJ%pn% )ȉ c %2&:&ƃȈp΄R“UqVr@~,;Hq _T<^iLsO^q_;K9tHk6OKN&?4ɩc= nGl>0sSF!RH7GǪ!8ZmARG˨X~f,RШSú&,g4+6ʠ~἟&XaRAYuQ$K[;$l!,rp )U4 `[\/-C醯 oΝ$mDOzd=Y zo|ͽICQ6̙l(J1gEZD g#B.Toka~*ΤBBx;y]]؊؆`"ؘڮN͌ã/dCldM7bRGYL"$,2ߎl#q/\=:P,39Do_ǑnꝀv$$w5:lQ\SZ NY/4UEȗa&3|M̪kf:uFEgIk΢+HKiRR#-tK=Hl_a+ jlKP_}0hOUYqӷlfoiJw>&Hݷg<2U7#6e9ycÛۯL >I Et7.T~ܳtfC:A)v$mNP`mL ,TaQ0C5QzXsoR3OOG)ǡa9{/y fCRFۙ!'-a9߼i\ӑpo{wie?O=pow@ @ =U(} Gs]/#i^=r+;8ŸMdVSNeͺOL}hhףQ].|~JޭǠM(粳O}%0j\6kBǹY"ÂV#xg:[@`v$PK>11 ű{u{'[m#'p\h|DVW j]jg]ī|_.X%f{s'?tKkH}\e6RVZw'󟥪e͵ 3:ӉIO­k(Le8b^챉}벸?o5H ^1 EP-R[^w7ueEj6[U1[0ɓT~^ /&B 2[Yj$M/4kuڰ>fUH|6 ѶqM260^U9ZQ5xpk۾կ(Scm8g0>9Or=IH|E<(Ve@0C٫t7W7$Oc7}Mva6dz9b?}iQݚ~T5kl/+)3w(uv^2@̫f󖺷/0r{mo+y=ț8Z']Ku2Լܻh$jOSG7qhh>~:]?M/6ʱ%]-TlvKy_HX< Q_6{8=q)4?UH&V!7ލ6|}ɖSc}G5'=eʸ{t@dà!]V}?{-xuIoYzU lS#//t/WB5@u*M6DӸ]ó|cr 7v:Uo*KZqx3E!G*)MLx_{s8ͷEYYmXeXVe0,Ø&Lg%l i ,~b߁4fP+K%6>_76Ķ|R v'矡"H{ٿ238y9;k睭"$S<1/S{[YWO`О_ + G?ĺU&2w(XV;oZ. :HG@B(DޟWb]&uq6^?F7[ZJhTI G8 q|}mq8j ćA\tk^D `z̨y1tҢBTJ/Cz{Q@1t/mPٌjrIQµK!k8x:C<"TsNbw 'h2l&#~'%8B^AYRJ3kh}w[{7iEB0`\p7^ZPUi\<305GF8<ȶv$,'2[asP]qioie^uV\ q?I 8N"< vƛ{Eԑ \NrK weۚX3%TkiGq `q ? H7P(TNQLx [C3lDWhn."$*W@RfonT}`4\;==C iܶ; Vq]897HC_ׁΞ_,/; 8 q}qRoc,Z" 枛{ aػO, "!&,& BϱÝԂ2TZ~j9hױELvxnOLkb9:9נ*wqH!:@6!P(6*fޚ O0F?7R>CCԙLgfX^8޽*N<@PJ&WfJ떠{?#v|=>D^0Qz%N]ff}Stcu6\[;  WMD0>Gdy^;9BD:gm_R?A5ln2`U\-㧰UQ|2|9 Aʶ7XLj92Y 61@Ԓ;~D|Gϼ%.!Q@M vS N>6p:HX=,)}n ea .G.~-`8 E gnrYe:17VL^/pw}>~/W5$D7[Ƴ!d9c-Ybo)UҀ{B*9t7[7 *)knߑ%[LS;*x2@~SU"3iy1 _=Fg  Dc꽞|5?!@cigt+IB殁K V[\L 1][Ώ< 6L25Cԍ=ó6E32 !>Sh|CZ6 I+&wwqL\jQhN"x7ܗx‹3J,8yf|$Ff&>؉rE2.g>)ـrRzPyчs²PxYz? Dh&;өv T$ߌ]vz6AD1zu{;D_"g0fঀܚ 6u3U/밬e6 Hp§P~ӽq%}u(A{;(m{9ȟ I[ʝH2GkLJtH?103`4&DEa?j):nw=4T6Hqu)يwU  u`$OG@phC ?"'D+9JJ߾!?t72p)rF*-At94hbǏnW)Q!oB}ڟi@+Ljմ(jiv}CM[ON 4 >Zy]:SSv۳7UĨT&o9\Yk1%kZW.L*KIJmSʚ 7c.L.n/v͂ 4-Լ1;Jl7epRp9)tLyHS@2 ?|gnv']J5"/P g6Drs5_< R@L%}Γ7,CL.g p@@KgV/(~r<4.xQSt;,ga4OJaG ОŚk4p94vkwFQQ*p()ZQl˪@0P͂>CMKȦ0dX XJP%?PltvTFH˗}*oۘm^_h\6jVW$n H:|(Or"a Nyr6߿xskC(z#0mXAVnG/0Q89Rb f,*!}Y!rAZ5j^P84#%%Ry7jE;7Nu!D-v@C'\7]a81Xfȹ}G澡,glSE.ʋ"wj|te!x&V%]`TihڝMݍVK8S`!f Iz][-湡8L~>>04¢X xx9YBQ;]\|`_Oyx e9 22 [ ɴo?bOUX8 >>[RP_ v`=[.C룑 1Q*=|gA|Q_vn"=C9OBX{w~T2GyٹPQ F` U F<-'JkM¶;5.S$aZcH6^7DrnԔ1Nͺrt}7<-^eiux9G x[$}7dݗ^|t\Y8;49Γ91&m +|5XkXg5kK𛕴eׄ<(xw%EW$\~z^b\,pWu' ߯ ކHڃ |K( O/V+3*^kIeKM RF'@[#a=/ #<K٘_ qK}o.NtV`>BꪷOH\ Jʔhji?|12^_>w!'zHέ ꙭ"ª=[G &piwMQ|" (;E,/>S nWPR,=s@E4PnIѡV~T $!fǒmz#K% n$X^g%} YD@+ʍ/N5M9|C[r p X! t8z$nA%8Y'aV=*!qjk_I3F[i{@@ų> {_-3J A,AջU& 5TE?[G-wh*"YE@DuJj"3ΛMK0r+_%K?p;T;mܕ+~|#k3`e kYRр D dN2i(4-J?_ Pc}y^IX0WO|m2*(+qc3MtIK]Gú(uǂ4U:qk#F>+?W~_qp>&z{{)"ಧ\ = :^PuQ0Jb[**Lm^4]gRkFFS+*Lh U$q)yW9kbϾ O[A6f{W(.L]zyvfS+{DY-'dg*T'gXP߿pTQ+Bz됎 $nR, bc# E”\ Ώ>9*V6ڵk v /%31奖pb@D[/$U#3a=[mL~m֢u~ꛙZPP.Sh me 4:jފ)xY?B@Cw1 xaaaA1))׫//KyxxY^*HA=uR@M~w$cf :""Ph[JnʣGwge]vs\o cWes-cc|}8myڃr_n \[ l5&}A E>W^{R*MۘbD,!8x %##*ʙH2:/okiytagX$Q^hbu172|1 nVpvkhIjie_dYuea$E찉gϿI邘Sde>2Dt3pK D%~t +aRR\̵ܫ"~ MΧhj3vg>Ŀզ ,Vp.lo5w!p9w\I ץa]~d0Y`.FBZ.zꔪΝ_|E~ 6’ԅVlop?_z˚a5 DʄTT`""!kk+^|E  @Z$Ϻքn{A??ٲG̪۟q|( `PfVp򬜜뾦 VxBj#{|x [k9OAM  !A;@ju]4aNͧѫAgÒiiaĜQW%)}#PZloxK![ӏ'g^j$]n[dYmTlqyr؃mk2յ6+2 QX[@Jw_r1vmć 5PvFׂJ'޺e=LO%9b.NSUY鹾ȳ3ô)Z Y.@tR* .6<,(FP_5 tM_W˄|`HQi%[7Xp@p-WSc|=pf#MbcK9;$F'[r0=L>T֞3oצ{[Zܣj9t=&K?9) lŧ#_ɉi@<<>:\Tҥd(?~Z4.ooM xT"*xZe ?EXhj m%wu9K=y1׎s-q6sd%ƺ3Qw1R?s`(d){kNPDf9eIJ"'#j5/]FdvzQ~)7H/Z5)r7+jpG.;S@d&_Y~ähAwcIe7s$^'ZL1Mae\kVCmCRLnL7_Y)5nxWgsϺחڟ۞D*|5R::ѻ(Мh贚^i*7@}vqM-ēV4 BJ (𨺭L} S$Guqއ I^@ټi9s8޸?Ŗ upKۅnxDw`co^qAN6Xe1''lh^@(c3@~nmR!bO\8ЬDMxY7^iD1dkv4nCݠ^Gٽ;QyhIuYvA3[,u!); @*^,{$)3qe8s흌Y1aH%熌3{'Vu.A s<3,2-L{+O{ciH YH锁9d F+ᵱ$lLU)Ei: 624@2W23y 2bk J⸞dXɰt;)G4v4$iGF>&ܜQGA ë& xwJ?ڊ3zk:iM/b27+]gA2m3ϑ+z)QS&$r;HIHcnF|,5s`W'h% l eޘlIK-<[|G (r*qpgY &E?M"{2TEaq;\i/8P"^LS`% "J=y7WG!da;Ld^^__1ҠjL8@*Bc_o JiHȶO*" ; z@)}|#+E\d6oٙ)pk1d}lCAq^p9W *a{){OqmkK@i%ꌚO i &U] xlqiv$wPa'|{ hAU14ر$zR|ԣԀXB[†Bݫ7&ĭA7%݆y2r3d# "{M%; qRIjJq%lht%[aIF N7<=ǀg_iix ym{vHqwR/E͊+ށt@ڻץ䅓p$ &er>yȖܥ њrwϯ˾7uyL3"AGgUce<ȊA8 . "/d> ɺO}|+]y<҃uH)L|5h{6΋bx\wo/_nOCL@MCmQ^"v[4kcE?*&xW {S/I!%vgg0$ B#2cW?*&^z.eɫٝUg֌ 1?1F2ez\@8}j$h.֭kXӂ6Dd X{Iu'' s;v095U΄D`܊K,`z\IN#;YvtޖRM8(#q' ҄gs+I i(~/C̑xc u3`4L~BƬ®ua3Um=jd8M|]V /oýISx U&_+4:˰Ŀ:)gU;sD)^pVj6#&JfWǶA}]of#@ 8<)%*jDv;hh T _ڿk,ضӛِxK uߠ$ Lޣ!%F됯۹|?Qڈ~]W?*GXZj-6#Y6rJ䩜+鏘Q AW/eq6ۅQ^%EFE!juvu2fX()) nw=hw-9S16^RV18?xO.0Wɶ0~`AP||9|juUB&:v(C!as>+ DRD)+ӗ),Ë?@o`A>6"=>k!h!KUU#mmHn襯dcc_沮ƾ[ފ7h"!6HnL ?"n"JD!zX$C>l_$zUU? lo/=^NDot04YZ'FZȘ}Gض Y:-q>A->66)9Pu܈"F fh@%YDy-S|\k~-%-Mc]9Z6JHXKkMQ;Dnp2/~LϤc%wyHZZ!kpOx 8*m"x4TFy ]M-wȏ_͐ hx7?*WPr@4"]ΎMY4 MioB p*EMo.jMǵD$6+eƔV8I ə(bMD>F! %] ,6ncѰj7&ޝh׆>;^7QwcW+UpCKUD~A&qB8)Na7S DAOJqI4 H>;w-JC;vR#0{zY٣/ Hnu";|PIRG9H7 [9zNy)P+,\8 utTbr%31kIL|hBscsjbnzłfD>m^> ӻ('w'D_:Z#ijZ@5Y8#29fRflz,4b~+|κ\9kJْc;InD}Dlس-5^c_{cHO/}g[yk:xẘ p\8p{L[HAG@,)J:7. '~XOnzz$]iߘQ*t\HZ=O_5 \gTK~N~Kd`S[lk…A}ZV&9N࢒O |7o n~`E_JӚCF4iʴrh𣛛[8lgT$-^D+Ơ4su"^3Y)X6>cMuYgf*=A[>`sǟL$-ʞ@ѱzZ$-(1US;ދ] lK`_`]mT"IލWPEo|[nGZc}g]lCEXVl|p1 ѕ ՟Q+RgO].BܻtrF@MQPN= M~\L|ʹi-fJ_葼3dyKG$o egF,8@O-}l̸k(B/AI"#0؄ jJNS2}5BJl Al OTσb?NQ8'nNwmd6CX_laVg-!jcփZ:sCu"1j]? V@@M)ޱHa%̛ß~rZ8!MCCD)|iquuՒ0/;3M۸4q V{I=w v[1[ C/ڂf_ə*"%l4k'T65 况)YaSʁHl=FD fU!99==oDF*+sn Y-=GĒ!^0syACPLGhe;~ ;, c-uY3*wi'az{&EjFEbOy2#H5g:, 2|B_2MN/d݋˭ij/4ty\mD߽MV f`]O7*(ِW*PK&~;4<|i 1~źh =ԫWhg[awPtm\\w4kI*ޮN.F،.<n#z-.\cJ aOp< `$p8[:C$?@K*e|NCVrܫ96X̎ 3*_r yr@H_Mb&gJXSѤ2O^"~ 93K>$9<2xZӘ `(ޯ<p ;?SBKPR8Ey`V\*#"9CAI@OAj_GĿ*+yڶQ \j5ac!k]k|$ aOusY[~'Ȓۜ;2fu5i3 q+BEwT:7ď׍)寽}|Fe{ccbMė nuYGlni 3$"Ql>{45w}2-Lt 7q0=dml ڒfFw Eflw?;QWoŒQ;~o0L{-q.miiZG8_&d]]jgD)) iĎ6\<5>?6K?a . Pn=6^z} #&Tփt`e6AGs\uuֻ#s1罼Tϳ<]g4Qٮ5gft gTZ)3K !#A8q0Zj/: GTδ}wsZNQaBRU޽`Wԝ IeBY"'ⰿ6YA3_*1eg#8yרDc'tʵ>d{Q5jK|Z"Ġ _y,pm h9CǍ.O}htTT6j ; 鮀p3&{%'!R >`9IWQg=jY$_-ˍ?9AW xK%[$<:7G\X4!MMEb i m%H"W(~xާ;ҁ(奉 FK]\fl2uƏf/-d=J*Sq#4!keOy :J2>m\X  Vg丳/qVf^[|Q´%Ѣ'Oq|.dMZ\2%QLCbAmZ+BB{) Gk'мg OR""d2k4)ZۛJ-Ǻ /ᧇbPC|Ǹ7d 9端{,JEjꍔĬJx]< L *\w:ڭ<$yL~G)S)͕t V281#pַ) he^&.pWld whiccNPh5KAɫ!,j~MD+ g2=,a(#^&_nDЁvELlJR e={t[h1)Of ܌vU&䯺 >8J { U\8d Xju9(%coi߃Xcܡn4$Y$xQ9ѣCYOLLHKledaoqWOJ r1q?ea`0pMXOe򽺝Q\hsYED_>9n`"Qѐlˍ H┍ᩘ}3wXGU.%X6D+pHPlpbpJ 0h"˚ %phQџt)aJ@t!6gnc$TYqjԊ +ӛt<R%B?!Mw߅u#٪.k7 Z ]vc)_Z|`j0gr`Z!EOom} uT+xc j J̾+*N$",پ$z d:ị a5/C'BϏ!l[Ӯ`; [>VkwE^A`,$;< 3h6ݳ|G[Njdij@%6??>UT;GD@,hzLlfIym`d1*rwy!6TW+o~ ܸgt i-HFQ<o()gϢr0Hq~?ՐqMoWWW=WIWę~fU̯<"%UX Rb wF#\Zq1}) OBoi W 6Kԕ={ ?|mn(t5F{GMGqI.8tHOugðr+%åOQ|G8%!f2T1ZSoO2TSX};+~1 /)f~b5~|""r PQ[%` 4VߥReU+p=h$_ޤJp2! [yy.½WQCC7fއr6M{gn\F&!Ư/ 'GoyY U6ȃ͡ʿx>ITț\Uތ y`P-,TG=7rBh'^cd 3p~92 O@}Rgݿ{M>Kzd 4Ň}(3#ҾFX?C9{̍ < u=8l9PKR|A13r7A@C!nuvola/128x128/devices/tablet.pngUT \]APQux [RPpw*23 ɖ)n+K& H^-Lh۔ -ʙ ,E3͉8_ޟ炋su7[T T V/S !廇6 D\ਘO}zsqQCOFBqa[FGGF=1EC oҊ8 bbnQhuxJH: }%@rWӴ!hN]4wB~k#8o.ciO. KVöp{8΀0Ϝ<`yhŖ[y] =Y ZX~0+UQe|uz:cWkm[ TX8gy, .mlR-{!::wa֖OMak[y~=GX68"/oN,/LԆ;- Qw--[BdzV W+g-Q.dH ~>[`l Dԉ #ӽת\\y*iϞ~?ގW⹮VMSRr@/ +ے a؟ Mi" ҍOB:7@u?p*yy5!~hFs@ ~ D6s}zXgJ1k/倠'Mx$ 쳠8w*N&.,Nۀ)5MX%J ja{`VN2] ku4oǣTҸ]4vAHmt߉I חR0:*vK{{I=ՖE,prdynP<]ckC|4bdaraip AH=c 5O<(m~lE5V(tc.U5K' hId~fE{uk ۬md qKMPp5}HW)Hh] krOnzPCYKR ZU`V q WAYeBFhг['T}wi&ZcLqC_1 Ꜧ'?M>}P6"%porqOa&H)Rꑫsj&9\G)D1A.ze3:9,\ ~ZBtzvR7B jnmm9j6H)H[ ֻKE5>5o0mlkeijb[4yMZ !i; Ehgs̽WҦlqM{-‹~xlY `T04c*oq%o%SD]eQ>qOLO.po* |_Ͻշq.Tru1f&X|hP0(ƿI"ift56L D a l9xVT['r"سG7wWCW]k{)1 [3QL-[f9YN&}†n#(`{MO1:CKoRS(KmTG_Z*{T?tn`,*C*a aWF# = Pz.f]=LXHނ _4<8~b(W~:+9_صVD3kXCQNvލ۲NL,Л 5,֏UJ:hT7q*+.){n*9~NMu:EI9(Ye>$Kɣw~(o!szw eo6.Lx7EFPP^zqA3>Q`?T6g")%[8FnEV\x7,k6 _Hۀ1blRZFnΊJ'u JϷ=e&-'uPa>o!?ШFSO}'gbgP^T,ws5, wta9z|D"ʜDK' )45*ct[Ԥ[1y7ԦTr*TU> ۑ@/Q9MJ@m02e'# :πZ0X9}t0 +#p/&rpóH}vPcbJH.eꭈAO+!PO=gC'q1J  ?)oz& ]sK Bjl$>+|7L`[ VUU:Xv1'; E}3U&35@;tE >_XA rȯcHGH9S3d,x Ž8wܘ`}x6FU׷ mvT}vvKV,76c'%4EO9N̷l|h 1DEZ,a濼r=K3L`Je24gEJ%\@ +=9dN4I;k9ۘ?Í%]FdǣӒGgN*x;Y7 K~~c ،dh=Y 웭'K+LF:X"a] qy.2QRgW8Þ!Zdo*1HIRip#/+QJIWa]aa}HQMyA0~G 7x*kV ;NbG9vI ' ~a+ꣃkg 6Ym:Tl7 GVC2n(mFF: . ̌Wg>h6:Bf;F`mzN1ge;5JI}W\wYӖƾ[[x9+Dtu":TnP{򑮐?=Yx%/aB sijhb" 2 r6l]p>~YFeHr8^~MV#qn]W]ցN.ٔN (s>(=`(EpjCٞ\&FlXþ0VikV5t: ߭mL }SgA!x0 z_=sB ћ :`ri8ϟ8[*Y8guŽOw-&ەtF1jlCb+9cfgi3߃k$ЈshnXH|1Rm))) C󌇆3IG FW)#pLmq$҉40e,Ͷ82kvM\g6Zhg-|P!|Wxbe%jlCZɔnݦ^l׸R&E_OwAě:ڬb9].}y` yI\LcCɧe<^)oEAT͡fTS^L6<7w|p;f`ª6TnoӡiYuŽq 6ʏ?A?Mpsi ﷓#᎖a{P m-PaY„r[NW &?{F C1W!,~m J>E˘#WPX=VU:EE^c3T)rNzkEYX$ge$g1K)ae4WGx *{F6*뗍ήτxTI5 0u"8묣:0k{ި?"etU+ *ΠT"&TU ,Io5St{IG<(׸UXBck-grC=՗0J /!:OPC͐ބ&lUdA?TmZ/8Z,Ms:2(]4 @_𧐻GSų=x$C+2}ӮMZ0d lſ\ޝioI}$V 8sO#3hB (5_XTq[*}qvGp1Ä+-[j?}`o 6j+]$1Bz?«yD:`ø2/N0Bն_;3e7H eYLCG|WžL%_a_,ebQykn5d`hJ'j(tXEM™DE6~ Ś"?D=IL`ܓ}h##Ґߨ_xssΐ;,v6fYOOR?. f#kgBh<*`ՎZßbW.cϾg=]Sqe&,籠t=m؝ .K1Wk@AఉG:zW%PZI,:{v!N(fǒ)]ܟt^WV4u?xk8 ~PsmL&^,d#j@PkI/ytdTeA:3Y,|6.;2_7#BgȿնL~<7XFYBۓ%#Q!a񓆌‹V*,syH+"җAۼ|2b *"]3`Tz <O ;`ޒk +i֚""NW7L"d_ʬo%d eDw\ȸ( A vn0k㥽*S=-=75:e[l;Y߹',=K1QI>_}mӫpOTf@^ C_"5 /G^ /NJ\]XJ{z odcYGZKSm|ˆboD4ԠwͥQJw(srr]76՜cg(u%^3w2|\>(=&ǯeSߢVҊcfpvDX'SLи@'h_ }3T"wMao{+#*3BLᢣ7b`;l>}J}_'8_Q|/:zZV}"W^*ܟe|`6y јBsז?C;a^hiF+}kcP *t5CO5t>=7i|f[!!psT驍]BDzNџ} #K>D4 4W*x L@wUW2ؚ¦倶v30J0vOzgYq˪%xW&MR= TcgKJ͍מ|"t5Ki1_ͱ8r$Ep)=g0VHagָ{/+nF{k17VUaMΎ2-/u?yߖ)kѕ8lͯЋ޳cu<$ojޘqeg4šv#?nnSIivoƉӏ+Tu&\74_k&70f`Sw6g!dU뙁qjzt?Ej!G>}h:Яc_@٤*)B"*LGalxg~}VT^xYdeQ{lݓu#E S:C_K616fcMo4^vuo*v"\ŵ2077KƇڨJ{ yPpOt_{0tzNs ҵ& !ᘆ"!#8NpAGn5bܦtXjS}Ev8[)md}G}>OSpu\)N$>9m_\kie8?0\dű]̙&w_EQdkZh| m3 LE*qq_Q 4'.ҁ5TT@6(9rD%(gi.χ/C`L>SM~)UC#؃A&+3/}3 +Y A$dyr]veAʗQMbEPIvp/U4X^y{`͗v_eO}̣nI뺥NJ,@{N/ ca)'c֒)l73}従2Ɉh}ŕn hm'< ց*Rtx`P8kx4i@o˄SV]?xL=Df9ZGmOFpw9zXPM{NѦr6:/~H&Պg/ tZcB HxD|L!2,8wp*߷ÕsBpGjeؗ mEZGčU.IГD&a E@Nu3` /_ 36 .c5_":K׵93m#3ۍ {n. A\+^-^)t(tQel(*f}tK< Mذ"W6F /J xş?Fl=/k+wL-Ǐ~feE fDg-hi^3ݵ+wA7,{]ױJxV({XS)^_WBiZ' .\@z1rPM(BAҰP?d6̰E{7i~tN="c( ߠrwUjlqmF&+vcJAjlzfR\N?_qwa5MM/pG!:T!,tCm,S¾EvߧFNۺ碙evߡ}}|L4?)]Ӏ >tBSؚ1Zp#)۟9j\%ݮ8ѝP@e-< xmџ3:+nï ;Z5:nm_ I993l/VAL9):ѿk@dWzzta侶(^[ayaY?W1SšǨT "U&l]tsb(W}p>aY"~\xj᪥Wkv%I#вCATN-=l/HA&.D,(y{o%W~w^b)MC^Ǻ:{~D|O\a3=N >(/8c2be6ѨSfQP%5}[ڔ*Tm7mܹ=g=dt(ɽHaۘҖ`۷^nAB-d Әm0TwDJx "7_oH}Dk4Ηx+o=*=&Q^@ϭ{*Fa9SG M[ 2X JS>e[*"}^c>PlH8/mW4=ߌvRDMqeH>RR' ߛ<*x%Iꅢ%O5^BT9 .G NJ a6eY텑!;}*<ӟۀpW@EK3, ծ3z>O ڦ'raix}v6M~bf*5+x'r-h:.vƿ-uqb^n=4{9VF̒k.B]  <<ʱ [Bڹ8޷4#oY 8*0]1/W8ȗ,+Py} w@#J G%#`@?"R󀽛#I@yijD?3 >k^<3gç%8߃+ B`G:5:[o{ 0 *&msrVV  GFk; 1=s3:i8 /BE"l{-;QC j$$!,a̚ȴ,5ƺߝWyP2pv=g# '@ޛOx-`]wE1C|"M 5Tt]c OͯO9/#Q(ymCM+93ڈdf)_mX7:F:r2 Vj*1xc萞W0 t5 s$WN"4a%Ȍç@Nфe̡1UH6*Dw2Pk;ǐ}  ]hTkTDkvYcx \롣1T/19$[hꌓ=Km497?./Cba,g"71UPn;޳%^"V'YF#(.Íp0|yZ@ ~ir5' ǣLܗM׷drW~Ĵ}bFXmR҉ڤ$ ]8N ¾0'"4z)9)uW=ԙ`@dwr?xQAwܺosctW T¡?4[ $B]u讚q$ T҅.16SɝU@Zh۰_KH ߝʱ+*`wo~۴|'#<6虞6F?ozG}W=}]_39;3ݕ_B՝SY$yϑ/pI;d[+f얇lqLP<汊մyFY'-`X;L?yqIZYNtQuA}+HAiN eYA%ɃQa3QXdJBa/*æT}s[t#x xDiXB8eont'YK!2sⅣ){vy',KR#к.(d[^p֫.oo(S #4OYZU|=ri( }8HMź<ҥ] qBCoRA_k=o/%yg?|7쉎(;Y9"x5~ƿ/8\q)_%Ƞ{ڪ+OFL;[WXzr#hQ]4{Zf/Ml0M`M.cO"ReS:Ts!{1&8 46"ۗE˔}Oe{m{QmAaK 4@A\q\[""9)gWPr c猤#Yb(* nS6p]\\es1orÛPMc6O$;샎d`+Z%е.\9k:t:m}9S狼5NK} fr Xݠ۰`m}N tyTViHSS*HTKnVY&-0MCfd>m}w' a<"w>qf@"$TqDF|Eik^`5d6U mĥ ˕-%Y0nXEvr" qJu3qbդpEP'{YoK,خAgMU4L0.'U9?uIb!qG=_W˔]bap

      ךfDuDT*yV^UIzH{NY^Z̃Y:EyO#iYqo^PKښ[L ]ϭٛ j &Vj]GZ~ j\M$4.צSֆPD=AdYvg˯s<Ό v>dOROIU"St]H"G;!cgPX i$~55)̥<ݿs,oSZU ZؖM*s+xyi`O`o~Oxie/sKIyÃ&!G30A:@"Dnj?{{O3sѿNO؋8l5 yPh15\#ZwG+qᏕm@>c ~VlT 19rcoj 7wYzcax Ǹåt^D72, .ZZi(_|)+ MOx2vW1]YKUQE[hm:8aN[=s;83L a5i"P8+7~3[?x/|/(EX:(J3/nTs.tF3\ qb!usYǍ?j@2 ϡrӕ&yq!$uSEvwTF$OvV=0GG< G^ =ډE2Y`KTElW쵫.ф6HOIbWtPjAU?xM 74#rv-EgfI‡lŨ` }ɒ^y%#;je^nWubju?*y>\'U6# 38{xIv7j:lMH™Erբ(gŒ; 州.aPt emf+' Ԭk䩌CݖFA<@Ih=;&Ro^ fa^$B*' [?ճgW=>L8ioH&,դ.^<NJ7!.!c:ġ݃j8[C>mql\J &&Qsw9M3mrnFϮXL&fGȆD>"{m(IQu+[yH; )~Q?bh9)} ?_|GPx/1MҵvRZ n[)Κ#);ld7  ״q;ܟЈiGbioH8==c*[GȡXa#L֐)9e~Qm2Kx7NX꼵yzZ@8m.W~t$/<{#,}k24jŋE}]*_?޴L4fkyY6cq~g4 U&Z?\ݖ~@wl?Ig Aڟ8y0X)C][&+~-Y"E^@6C0V.2Yu8 ep4;O L~"s߶'IҩاG,[Q_r1憦݋+,buqQ2غI.6xZwCn&&yb ˯[ ҒYcϧ6kv6)2#%-.`[mnGEk-y9AYn*`jFZCx>lna;pVP6gůɣ TbDغy3rPK|A15.nuvola/128x128/devices/tv.pngUT ]]APQux y;T{g30%^ I+1v-Ǐu*ZQhalQ$-"Kdl3~yenLQx03gaf IF^TWZ-/qW\Dp@ 'o K9< na}{C%j190ozk3 Io+ qXBS4P`Q(D~< ҮJ2W~J#5&ڥv"""_{<N:Tu{Q¦m΢M+l_E+3/BqkRr!4sje^ Gex5wT쥐 aل?~3 1}J pwWmZ0*S3L٠T'#3x1kJy9_~d~$p k* d3ٓjœyFCƦ ;,h|H י*54~ҷNfU"T'ɗ UPhLXajuwr4/CCܢ -k!:EmG9T#Y ^7[X$U*8,sBW7 OKU\.;1/qFiq1 <-mV0SUH֒ E(PIPtf mO$sm5ubom]+&wșMH[䍮UbuǷE{mGE~ CZRh]mzҩ3@rXaY T1#3&{CGx9dT;Jc*d`ڮٯ;{-$ Nw<£VKV0*nL=a_KA M.Y-{H]W愆s M!tZ4W!őό!MGG>SBT 3y\ ~9R4pD-$Qiq"gq:P, {PΫm-Ea{{+AOt#wY.rEΤ5Jz13h~xol6,x`Fid)3te '45ϝb%_G)1N^BA,ŀз'e%WB,TƐR%G Iz&8m蔶EoBgWh}(iL={P\{;\JߘQ˄(Nt$a>Tsf.L,yqƁ*Ck0d䂼Ny^ UF ~]fjDL'Mx]j},_E98/\PaCarܭW ~L#mUt#$i:pmu46Ґj9"|Ӥqͦ,BXZ 3@a ՔQ" v.X91ȼW~/]dJa?JJrŗUkxpmgrKQT64lg` Ϋ c4QkHtW gYL̦3O-I(2Z͂p[MNY4- #ĪSWv-<FdT@S8*K/jOLLxSI#C~}"؎IDW {jՊ%sECHM--.^y?GtCJg|E=?I"f~8*{p ^d7_xi;(bh!P!kllT+POKw# @6ȫ]LM${eĤUG┫ܡq:؞3FrV!K{)}cBŶh]8~ʂ=g%W#tK ǗJR?(#p5ٰ*}Tzk6Mb*ΫpBIb|:}QybZ8Yn;Le sq,dy2IUx& T`KW.]ȵOLZ(AnSH &;[Ai8Oַֽ /4g҆)TK[i)1EE@ i `lגWbE 2fi7؉+6➉&*}t$2E҆(~sa U|]BY/d 4Y R VˢYxn⬙I? ^H~Aw$&Ɨ,:dm)\.ph$ ?/=JqUDd&V:ݑyQ2J8Y8G4ڇ)LNw0N% ./`!j*_+9Cpn/!im5USqDq&IKHh[-8ȬZT1(98,^K=ưkm9Ɯ;>z7 9 }g|Qso|8UhO`OK댇_YLݣP Q8r~no݁,z܆4A N}l$ QIA[9Ń u rh5꜁W]D4?+Έ@_U*PzmXrGna5{\?BP^kďǐ2u9:h/NVLtWʻx o`b-)b &gG&ES7[]"<_{͗hhPn{ĭS߉LP+edaU d[vѯO5q[H9feei9%s_Tz_TMcԙÚ֭Z⫂+ EE^AhH\13iv? 3n34fFʐjGU=E3KGq(lUKfJsoS& Ҭ p^x;B+**yyy߱S17-Rsk[MWm\۳WJG+lH#掖㡲r0|"!U1ױL\AE [~ 8nEJwDD/z^3'7Qk#3I!  EBhp Cٸ"nԘ^dU' 1H]:۔p'C'{ꓽKGnoлKh7Z 9.bcȺ<¹%MZo? c@?`"HAGoP6lSzXyaYB2n:դ5nT6g$Ȫj %.Wӝk[iVsO>KuM2諛 tbRFarj#;1'g%n=̪aHkB=-ÿxbui)D'k^TUm,2hWO!D~>9<*lԷ^L`:!G <ɯT-](\L6q!<`{˃0XGu)-ɏV#P,J, ue֧|>ʾD^!GR'%w\y<5h~Ԟ q)Q͟R`O!U+ K+//r/(0ٙ!H/@7yS?α%bWQ5qAH/\Jvszc\#L-]P*&vp AodJwv4Xd zۡ ZCD \HԷB{C+Sު`ޢoD MeOl"55Ok9jS~i vV(P|H"0:PT!jd#ChiٍNT跒gbi =C zxu53G@XcꞸzX?\RA [ ^gOɇ:G' ԥ~gMrN4 binG}f^UƐMpMW)hyŜa:$KRDП"@Oţ!p2EP)Gwdav̚OZM2,6?g X;zu 'nl۶WLkf7mt&T]7gvȌ㩕N8:ammNB$w,8 YU%,-J~H ΛN%δ{HcU/v&Z;c_%{wЙ)6Z>pHqlU2,IȀnTT " 29#Z7ocC"sϖ3MqN0_7[ Az xa{OKn<} lo:~sY od܀Н][uTM3?[ܶ3PKqA1i<>,nuvola/128x128/devices/usbpendrive_mount.pngUT b]APQux ͻ;0lai9m9#9JQ6B(;|*Y("BCf}u߮vqٞ{>qog^ +PCG%yuԭT;+)O|TrJ52>#av<;xzoL. 23|YHX HA 'W TD0K y$(@CC 8 uU%Z?jC è ^9SM&+0C P5Uoχ D }+c r~k$L?S)bS b [!:'1y( ɖ|j쐿Z*# !--նxlvL/Y^N.I.q9S&Go*8MtmƘ"&tT2xT!2y10!yy_19=M88F;p W,R25\KJ{i>!}Rz^&[Μa!3Nie&LwokAd xžmD%׿Qڌ-, R8.H-xf`O% 3: X?hU"^yiѷ'&:-K`SZY+hqcͣMt(9[FzZѰ'wTŬ=dp"JTuY].$)*.(e3^/̘'m$.47h|m*5iǤl[^Bw.ك֊hg}\$ eDxѺei+[ljи܀ܰ?*dB2GݮLi:ܐyoAM M;FJA'*E n56N5K-g~b>t8Qmjy3=;|Cw/((ϐ-Iit+0 t[M}c<42S-H6MzpN)Fm8E݂:ujP!\з."lsEuJL.X=V}=7ٟQqV)pIQ [A*y{ƩG*7pk0BsɛvDX񅨈0 HcA crtQ=`<-9T.gֺuw)t-/W~5Etcp JbAnԞ=Qio"`ff7w}-Qjg9~][ݝRNRǔ*KJ6A,4Չ#uqᱱ-~/_-]7͜;]tCy&֯[^\Z8ߨ;!% E\Qx:41I搃G6K)D7Xj6.l3w6 >ry:xu JGG-Aە0xDw7Uu:-ચn[Mӣ\6Vylqp΄JQ hH>|q]]]ܑP.$pYMs5hwJښ_T%CMڬ&֯Vt=vab xl }]:/FP. &_ &Yr-ͷ~IQgQ][0;vci+|'gJ% S[H7'4A(,T,R9upjh-%鴒70bq\E=Xq|^?rml:KxiC']9@nBE(eBA Z%H>?Jzzs5G_#݀XZ|ɱ8v=ٺ%gYeIIӧ4,}f[0{U3Q\%"W5xs i ,+``;@CKV-}Ft#2lD ]e?ɋGEZJi{yO n +I|?%e$Lϭ ˇ0ݩݔ[\gA.XAr h6T#.cip@gW{g;^cy en)ӼVDB`܆TuՎѱ>@Pr"@m\a5gttVVQ)]|]KL02ݓ!7u[ ;3r[`5.;?|Ɣ!qKS),OXc [SE!r0Ph M1^/L3a!eS 3[Z2̗崀̚EqvlDcR481@apjj<&ojICǮ՜|+q~2X>QV q=Gg(2זr#ecX / &ŭ BY} H=ͮݯUwv{흫&C~\(m5d+i8#{5AH8OyX,y"eDs wHf>\A+13Uuj2g\Y&IU'ecu©NjP1*zrd9CJ1 K|V@ 5_M\1Xw!"l,H>L1^͆mHY(gPw5zIE7Eȅ .x+`RBq"IcG7B!oϣp4LL2o>ӊ)\K 1KO %E[Z =S\7>MgN8,a?ecCv31c<{l9HPm=r-(4g>sw˜ w+St= 9ҕ0zV#(tDI,Y@tH|*W80H(g _zM$ۘs.f)AetP %* Np߲1fśS^O2E@˧hqУ"iS%d%Faښ hw8Q@PzoF'kuYt[|{?6yށce5хߞ]є*xna%tO5ҡ `XBܮ"t@Y$|?XHT:qkXw緣p?U 5OKK^^?S<|r jH2~ryã.3f)qǁѹ" 9cțs՞ Iw yh|?k@sFBw̐v/ƈ'9 FqCL]1FU6ٿCz ;Bu=\T6u"D wH03)"a_NK_#DX?Mu^QQXચZfDP\R ;T<&%MR6PW4T*`'O'gFn8 ]KgJBy;9~xñ!9ϰSOaYšT-S w>cpw UIE񈽪IwTpPfÒ%P41X3ŵg3onʎ=N-pxlF )PIQѾv {?bS~XM*X+m ~inP~}wA2*c3(٘7^'"=jwW<4Tx説 b7.t4Kpz-:"Sţ6m(ڑ6NLkI+B9>Mlm=WKH+o3OTsKSzic=EnF6T AݝTTAPB _AծPKG̹I˳J]CZMؼpM ܚh}c#PG%!fVyV@FQzTG $T^o##Otţ|WmO&BpkrMvGʹ)uE=|G{kZR{S TTS?q Ob+#U|^4g+tzWX A^tx3bW`6#>iA㻥{yhNmw-Kg2D= ܟ߳!t~su)}Zߐ1IN CP }Pa~twkr2. dNVk["++L[>.-d"WFvY}gvԁY %Nޞ\C+w6aӜ&XOjak^RuSc焕JC_"f6'e;ZbzjfӕDvKKO#LQ)HE'މ牧Wzj+z{zuxa; ;r@:*h4BL\&HA>7]ܚ{!VStZL7LxY`9$$y"h?oH9C~zR'hd$}~e Tߋ3;Cm*bw !b-]*f^޽f Rs'qnc)J 8{F9;Τ,ۊ( }|c܍2z)MrwrڜJO u*dXu$wplF{3tM/Q7;'$MOʃm*GtOȍBl/OE ݄Lc)MDS}pɜ 5\nf순2+$IB ޥr]JGJ𔶉 u%Vg-"&¨k{rFs&svFW1Gy*u,p&B1az>B]{h&H{%欼b'5uƍPVvP\gg0aWހo`+Fi``P7rwu02L-Mq]0"OS$i)8ֳK#}eJ-H׍* '\GR,U)W<k/8狯2Ő`960oua5t@~ rrDb:V_x½{0VƖ\$R9j SNop,qH;%yL<4mQ7R]uQ{Plءi9y :2 (;D)qCmKDժq&y\[wFu,:l;ɰ0y2viR6u$ 68򉹑9zr0WmX`R%zMұ`n|jw9fw!jaKd:A|g~(F[<)3fyݖoբ˴ǯV|NW"rpY>3H0w)c$`u` ZZ0wYTSXYlRV+V+9 gA\hچ}.'e m-bx_52il!&"<5S&UZB=rjyBK.ӏurۧ@xiY)QegnR(d ,hTCR|[ $E|c33Ѩ(3ݹw'_*CZE 3=<3ʓ1P5_d:Sno])场V9%l2; 3zqfڢ$S40{GOEv͖,-uaWJAA=M#z(QFmEDm)…cy2QTGv^;]|<RCQTS'dh=,x n i7&"ǐeS$jM_&,^!S|7' åg]&zlTP`[dK4.S5j$t2s;5 ʼ||x ǵ̒*BDԾuki9.F5l9!%1v'&VI gJ#{*lnsW?9/I/kڭh"qOho˹?J+Μyɶ`*p/E@W p-I37JߗV7!S y:O \ojO(ڍN1sL`3=./r{d@38e VVzd(>)S!y:d 3ﮑaQ RSIMl#k/ƿzunu[7 `J";/1FQ 9lK_)#MuQKa(O'6DT?z둈>lݯF^y%\4x%,l(;l J06L-eG:og׻xEY^wJڼLzWp8ToĂd3,<(2M6c+dZ EN Cujh ˃|?cUs!-7 }Ju&pu7SؖܭXO@֗9K/ƿdTSCBφQ1H)=T3vUvrp~EDEKRxA>EݶFCe$1"i^_^Hgt>ÖuX / ]Sχm#373E ̈́QL OjFeŞ}uƅA@(K}a)ygޫ#qk4~{aXۗ&r JA5Si1܅##|p(:sX"iav`57 A̒v5eI'¿~'z,plQFiӮS-~. M/V>rh J0 ם***-7zg>1^|ov8uu?U }L*R̡<ާ1wƒ@3+Q4(Rp=ڬB#Ce$~07 iN]F3v(bKI}Vhi:3 rՇA8▥,ch l7j !FDfK[/a9^a0>og\ܾ2P)s0+;4U{ 4)|9S,YD c>}[iQ#tw. +>w? dsT&LعKE-# m(ltvv! ңd5+(75Y\ 8oGx ˆ\깜DT5>r #4\&*Gm;E dR/ʕ6ٞP/[E_f%j~Twד_oQ llLR~K{=LmpJ˕R"zx,rgD>nJMk>H 8{ۊ\a?ߥam3ߕ;ޒrѫ#yMk]&"8V:#]xڛsNs!fD=𶋦k-?}_VV6\+c|tq]PQlVm밗*e}R=noV9f) -KVG7~7oj_>z16~-¶ O>-DW~?M*N3cUI5, +V0mswxwmXa7eNn;#AUw0KwJJ ~srA'!QQ{PL2VqxzqA[{# +=)(ySy?8YGKruXZ:U`g*kI % eHXwV~/x]M&'O)٬;[C1n1R[I(Fgs S(K)FXc8alCX@(“+!>]ג0ۑ&Y!.;jm}[8FIhkF5eu~e7 5>ܥ[,}QBrBcp33^DGʔUh".;"edYEQo{\|Nww7"'zdzeհeHx>Twj/o0vS]+zz%&q۰_o=ЮQKT}Qa)r~}w3.1=#fa`n'dV_gϫPʕ(Ά6yKjP^[\tB8{PzՕHjO܋jT@ :j %ǖ0F4a@!''<{G*W rSj]y/7e%WH]vM%7Unj- 0ffE. ZeHܡIE-xa(wOkh?}'N SM&cVHw-Ӫ%`Sok`j:< znNW<LoP ACmݴ-SU m;BX?v 2a~Â"#麽kcqM=z-=aiN6AG}CVz>PS"YU@3|$7p$az>1~ynl>ZnݪH +\ } JSS0gM>%޴"u.`YβE2TlPvx>eua|6oJk:kE.Sj3,h%hTv|u49Ov/c=SZ,Z^LjCQzI`dLk# ?~-!:3dk3X8go1D>dH}m%g\P@ztgmTdGWܡ3=!CVп)A%YHF/ԁ &O+ۂ/)?ΖX i!-?.FWLh%1GMtYB8EE!L+8R Yakfbq^sw;sh W'GbvXT$ɢOR͂''>A&Q!$PЍ/¿R18/֥/nj@ ߧ=f,YyGPQ(oGC3I ChbQ կ^fY@MءſndlHTyM%ӆ=M$DݛI90=xn n]_|i b[Ӏb{̦M{+8]QqN=/T-v= K%{`-i`f8Gם4i\͈ӝ Q\ +D\z_i~~sc"l{1PނEN0°1~Zmp4,cV,Or9v3;q}ޘ.гəL>" AkӼBd+"常v}@y )FTU]XZz 5^0IVѫb*XǟJޝq^^婎V%Hd޹ec3'?N[wbہG1gƤ"=իž6HS'ѬXMs%;#`XUz ]wb fJwigM9r&_~xiP?-aXI]4q>Rb"Sm{1?1mǃB4Ks/LYL[O<~Dcd\aez -PBWy4.LOi}[ KTX;4"X 6h&ƆmU+ Y؀ڷuӆH>r{$c- ~4vgn1ȁdlAQrR00duϗH8`t4xRѴ,XdJEND+2ajlrc%4I e_/,ׇcZ k`cgcQ'Jb YX%+#4c#$;'(~=*՛xR%?Eks/IƉiCL>e%o%speeq5k:ø%.uN'e6nlYKwxqZpH&oF$SmS-mOY*[s7B!*גCHyI̝["y'7[0kֻ2zs7l ʋ5aY5\UM '^U-[jaڦ^+=q% *\*3[Q]|L8S/,bt:2m#ogLwUSnM1MZ6E*5BC9#j{`"r}|)s *~ezhæpZ?`1h/2Az^AGO={~ ԇ~kǙx|.YXv[?͝;dUvw#3YuEILHNRW< rN~ނm'gӋPF =Z@Up`^Sԋ!:ud=M9,<ɁEmVi[]3` ݐlVm^32ݝߏcfQׁLxgYF؇M9:܃W7x:l24pf6ƇsZ`h7_/ (oh Zi^2mcL T^U/"ъXG"Ml" _!nB+Skmh3K,| NJ]\ 볦 ]k)"E5 "|0Vh⮅๻ǑYq%$ Jc<^^2`T+#Mÿn`3#9}cݢPsWv@"0WBJ"ZDc*tԼR3pn )}f0HkOлHy\&>>Me5o`F`Z0}rL%޿`8vG=M@DLa5%hG?P?Ň|󿧂hj|}0auKm_œ oaL1!+8s_^~;JFiKơ8p[r ofd D#朳~Lʳ v+rH!BOEbyN ʤ0V$w(GPEhd?5Ϙ%j }hCN=xs;bиCfљfD9]]Xr{ 5U5ZF)R>-yzވ'PErY4Yl3W}]7_jѼ7*n (c:I*%w?%5@ot=el!T4L"zH.15n>eS2u L/^*-1b. K:fl9x\Pߔ*fEOfz<ȫW) \FޠͥIkl rҲN孯>NJĆRymD6%:!.2I=8o6?1wy$:γŻ0*KJ_BS *&Pm]G9xE)^(vɖâ$ Kz:j,@yQ.!y1 O!\ :ĥK^o[=l^Jp5[BgbHxJ_1u pz1_Slm6P˴;(8UYL>hډJaϾ_j<7QZQABL<+_k0@V5kEՠi(JHa=6'+Wd R 1 E3/ֲ?渙ؾ^nHDvV+X7/ ü)L3 dvb~ebN@>î#/ȿ89c%۹O3=UlYoe-H!W@9ht[N益 ,P:# <_fw@|ϋ[Y&(T%~>Ya}է?5rlf,mtĸ??f+"SXv5=.}iR4OW&H.QjZbFBh<𧺓o$JU1/KjEkZ8Ag:ئLK52uT-dV~:l"%J?-Yt8}(&\Y Ut'\3eP˳1whU'@vdu jװXv )gE$&T<-e\t 4*g& huZ=U0kP׋`;:!Ԩ{P=gRŵU,toa'x߄AJZ8'f z'@Z<؁mqYK@}[:"ߟ5BeGכid,.Cԥ9Y'xq0A`ۊ 'aQOum6~੏&wmHrt%|s5.jx|| -3XHCCM%n;qىrhkEk\ I'{<],2%<()"r*B!7B@P0'!݁ЌR Prd={ ę2oB $daycN0*ODNGm 'd5Qǎl"|yJ.s#"RJw6WZuٍAn1L5l+N7^bEDǕQp( #P-NKH 9618ctN8#E HbpQFx' ^2Z jaw22 ;cε`”)\`#Rr'h/@c/%6Yu%o!nSЪ&m6{iYPKlA1*]'h).nuvola/128x128/devices/usbpendrive_unmount.pngUT b]APQux z_RahF4EYZ73Z9p Dr6HhZz57/?{y<\IvuqRTP@q]d[ƟRηimAT(j@\}V~8$0<', 8}c-lZݻz$껯H*%7#ۑE1Q Cݎ8P@-9οpR md(mP@HvC ֚]g1r=TZ=A;J} 폆u5q~%I/"J3jUt:}v)#OF$?N8 ~ؒ}t+r?ؘq~כK co5phT6#]@t{"0iT"}vtOn)!Fl3d3k.p$,fpZlF~ht)?2kZ&MN`i.u-22TtRo7PxW=Q\X)gS_b&|e\T8r-rGWzyx*n*B;A  PK_Aa 9@h\[=x9Φ >botէ"T?r?k[>AV)eJpQ([D+]L_Ȁ/b#6(or~{!qVVN2 ޱQ“cdMc;d6"la40n#ƼdYu6`+ -dL/ߐ ?fI i%ߩԾ-rBƣ|1]GfcV\JB!iXL s~݄JMy-D=G@vr*^j2]21Z)1Zo/8've2LE9C=HIBDvCSV|i~VrMaAS78ttvE6SRQEy 6SmNɍX*~de2ѼDΊ0"_&Sha]]Sμd"Vfʶz°Rw%ibw6l8ܹA(M8gc}I"¢mA3j7r@Ʌ]|{aЊ}4&J ebfeLan%Èyլd~K_R1JwO[kںnV0ѥ,}#mh>(Xt 㪝B.d 07^gh |V;J8h{q2-O pUlWwZ-+fU!AM 󢙶 Eؗ_,TjA_#,}=J䖑 Q;xM?/NKfq̃7Se J`C&iu,a-#t){h.l]WZinKyᓘo_gYY~A!f~4WS\)|ɉk'^GpgW8ZJD_=IM~\26Mt¹a]['.X']N?rʰQ- )Pb|˵uf B s"ۛ<F{{f kFk();n &sRz`<z rzuwnC c&^ s|w'ҠRf'tM~}2!W8+G y#3]gZF{ ;{!޷~>c|:"Yn)Rr-[(uN)"5 琣:;k' H==PB#ڥ,,]B|7aGA}t,%U& eToLu=L{!AGs-__2oNށށ?V _RX6 RI&^5lr`y0iSSVS &d>q.۰ݶIQuto"fpi0&HY6A?~F"J ,O i3L}-[Das% ,}ǛuЌLytJ4wx̤8(-ɯ>>G#H\-e9Eu(Tܼ D)vA{GJn]@+kqw,J6P7i@DFQQv=vE4gζny#2Ϭ/j}}ygexW:7\w0 W-Ӄ q~Pmbf<bUwϠHt@Gy:``Ԁ$SЉ}iC Qed8_]8MYݻ/8HcB{l~9v\4%4i,ݓ,booTFx++ѡf><[Y~V\Po45Հ*'|SJAkm`)צ?;;0]!ܐV,W %jqk&f*{<wg*x--&qe\RekzLam~zn 6; ՞u瓥'Xbm_n4 >:8q} <}g+PUN>B]c*J[ }WY07% |rC>!8zz;h?3ʇk~`^}6TOs ȸcle97Z7 oa+F/m\[?CrYPKjm~brb8J q8d!ˠ|٭*AR9=-]]Ts?ZM^cWk6F~gA,Wu騍U3>J't 8 b=GjhEx!U.`ۆMZer|_(J`{UoGdwJm닥Nz`w}bE*3Ҟwl( QTZ_?5Qr%O˫‘n4S *g[o`·mlnP*}]+zF_i ޛ)Vfȡ"}ďqs55b0Q!>CtTW}BQ9 Fm k HxgO[ǎC8_R[V2~t_(Vb'Vlm0JJݘ3j^fia Bb⨂{][qnLo#X' WjQMz3[^"6"{89 6rV5Θ pI1 /0̟ȪV}^ ϞJBAnr˨fP'윯ۚE8"\ -*-؟$kq&1=8͹Zj{+.q)Qq?^jc}}8Yl󮮳 X1%[QM:RGU<2z>+U0U_bu$C>TǾ+c %𽀩C`Lng4nk:fs%"ЬT!G$E}:m5U@n]a0%ZE%S)I1ތR]ZlTqPYA=?o>FC%-M?~`g`vwC-}5`uu}ţܡߋ=AqQ[mƤ-* ȶD=;wL@gB42G`;"0 *ZFF1V}_k.)+8SOPd6S HWOs+k LJ`~㿨 ӆ˅$0A+Yn驀 KJ+Fx]&msTmicԡ|g/=R>::i4M[mojh &SȿN9ͪL[^-8"4ZNzؒ9.9HDakN>Lr_ vl ]ځf=°U:"W%f:CO+PE~ G8aqEem5W]zレL)=\:31w=GFJtBN 6h߂aj7paBonjl>6т}L Ql T \y&sRT{@>'d+84g2$%Щ\.{,(YPttZ$d'~~h4b!Ӳ+,OMk14ο{'{][7q8p,/-f##&NW?kiɼcAJ;OtSdK[^JRv{:CjZguq}lu}SOE/ó4/ǏZJM}C\u*>Q"(5=B1k{ǒ~a;7%<-x ȑՋ3d[vJE#J(EbzAjMCnhMП9r;oWL&Jl~NLT1%Y8ƽcU_{'s~L_G-"g}"X|*Eşc@8:mP:C6cW0GI7agobrnѹ%ݩ*d|]u@?4eQ|﷨F1wBy4 s!mI=˜!{0I"$kf~/kڿ͊K;FV~/niW:5Ӫq_b#if] |7 #i L-S[e aze?v>m4Q T3`KuE`c.̀yykU9r9⯲u{DٔTNB}̣W.<N`fgzltV)2}ff~Рh*t1-ADPWǁ(6&l&QWOj0-{78ge-_mgtb(SGӾ}n$EJd~%f1``3qHԣuV4fLKV٩;*Nw{2%hߑ_* iQ|2UEjta#éR3QTۍYe+ Ps6kϙ*^7+*5gw.}tiuLɯ_<̒Noم rٓR]OYC8' Ho1:1 BʧzzB*-Gݱ {M0=f&kƎRlš~x$noez$a=/v)g6Ʀq ~WpFtQg?Ko u:b孯2C2{rsi~^jmcG09ZQ322۷Zb)-eJjBb酩'399u󜫹(l|xoAAЂRtNE#V,x?QvPKD8( tt{':>W5\rIz ȳOyhV! @;kT7yx=e. Zs_gqs_'@Ϫ8+{'`/xsƤ_xԐQLo^ٞT/2o)t/Em>CjwNH[鱉( &z5 o! s0;dP97X2-D-`uѐ4ק~o׽cl髩5+t˗K:2}[rل{I I0ՂU\%Ӑ"3YvyeV jF[ )BV{1Cmi|~u7A7#3ʳb:B ΍FG[O`4۞9Gpx\7Vo 08V)i'E~~|Z~r@_@/6.~%s&Ul?LdC HA_3wv>TC\ԫ&#n?D`: Y9d@){P{C TFA)ףZź ׉u=%p_Vұ~A7ZQc@ Ә列L AQ~@f{^B%AA ͟WwOL4xYڧjE}ݿޝnC'wYIYXT1eȗGCa8 D/81@3]a#VjZe}L'KB?4q(kʰxZƁ4+'zFFr1Qŷk3~}?Tol ֺ%uFv iQ/&ډlJI5 ͍Y=薅Ӿ΅k|^r/u-0jjdRG 4)vf) e^fs115UEL{߆O:2n |➟2g_E~(X- !$JH3U}IA;9.ހln\ƺ&{y%wp+K0;?}:Lห .R"ӳLoOOdk uQJw֫*Kzy d:de6UkW>rO}akAIHa~=1Er/{CB)S~M1} D3*K>-.q^ ܌ FH9Z|-]&S̻w.kኯ T`Ga*m'_u_N p _aiIvx8|=#T*?#3C Ofx [oM{\UZ2BHҠ.?3ODN [A>VEEE@+lɃ0,,)1t1>Ⱥ7! ZX5$2݈t{|#X;`&EQ3x*`6;g(1E6v ⮷/8[W_wt?me̛kh蔾q1{oYF^m>na j7D\Іj^SoyjkwE9:':$7 jnلd=~Uk*ΊO "l#4\n>Qҗ ?;:ǽT0š_xQulqt&ka[%WЌ0`t|!ԃ?7|]mzd iV V"1YvA$,DŅAy a]/Ԃ5;E޼*RP|K;p[{+Q#QZJQydG߆-26 ʭ~|qx.E*<Ȏ*0N\m$'|~_`~65\Sd<'aa!g+Re%P"̇TԫzƢ~&lV: D{ytBs$$O/E5炯Kmu2g1FSv"m*p|WSY""j.cQοr/YNk5.,<;>' &uBZzcqVz*W+ D\ODZlMaJfRk{) B;TήhN kzw:@$.23EP|"rп:uMó&eܩ5&E tD_"56 pk7]`|ѽzP}@8?52rZ\2qpyOM 3NwpV2A3,&Wa)+}.eEk)U.P>JRyi!Rx~T@7۩}dE6 NuzHFQmaN`2/Y?$s,n7nu X`|~@`]aɮ3Ϧa-K!@')6L"j+.k1c[@Z;^~ 8dwӔ.AxŜ.O]r37騑4`@!DjIܻSn.0RwY!h/D_ .MK&RJcfv}.NKGPignԣk`CkjC0qIn*{MJy(]V }bYϗm0>3q' ש'|t@ࣁ#ŋQ둍Qh0"ǓLK8 e.Kx|jc]@>(]h`I=z]կ*LW7'*\^}=Z rAD{ㄛB]-V= `7z".Ikf154 "`1=W?8@.yXcjۂǐe$#VP]=O4J$R!K?Hpws]q8\CVmX@mx)O<! ^1XY]>ku#9O[ߢ,{K}*f{xx&o&Ey$;ЁХ`:,՜ktUb@e!t'8}AWp)9S&{Sp{uXk*:"71zxzV ;?S(z v#أ ?uOU)I0 ]8,Ҍu|Cmn*s(+.I4Fͻkv=P߂[{waP- fEܝJUK?j :(ueKK=!+J|4A?L>u{p`>VZ@i1ƪ6Nץ#7!u{EJsJ;Mmn[JEOQKIךdrb.6*I%иRIPJ!5L'c]S{'F &EPDR* $FT.'U]\~>ZYEڞ"tي>;7ѰzO\UJgxFZlrB(;:6 )ahvlhTsLL7T+R:M[.w 0I7|!ΞIa 8Qy]xpn-ܹ p/[!32IYY)kWlt-zHLtS8%k8%Z²`ފ-h&GAC6Р?{.ȝ HVRzlr$yH#)ِ&ϝĮi {FM8j e5<|TpBMkV?"oТqYv)ܹښԙkڪ8$D\ԼucPZ;^U%n/NjGvd a:8 n|FMXPD/ xAoovňlX'MRlIC͑ou65e ^ڽ#*J]{V @z/ZTN_dzocVf|>=GI66Qt̜{5|L7WՒ g%$yDCxCNka>6tYm+@1WX:j&Q/gߟ> t s:?ʷ/j/pZnJ֔GFΞR;kU?dN7y 3,eX;^?6 =,yV]WsJ;kӂ2ex n-r3=V^q`v z2@?N\O Z75:%fTH-O;֮, ^ڶ4ܧLu] '49O[3ͮB:+pM%if/k[cS:ՂHBG:٦fsp2P20{[ݍD^i5@ a2bvSaGa P(uףk*+~.& LsT5_ /c<.4鮧gTc jn*({.,@EyާFM2S@ gq&mGPiBؔ.eL9fz$т`QfHYNJL iivM{۷0 hJo#|nUnC Q[Y{z>k z*%LEHGd@oY?l-CwmI#x^-8,^0~m V{~hde2|wXt~U4|ylIwQНȊ,s`]M$)d㼨C.!D|6U$95Ҝ{43@zVsGKȭ∿2VO5ؤMO!H|L~/ww=ramG}ٖS4,ML5 Z?ZkY1§PxY|>_ZvzP";JuM0pB NF*b_gU$s{^ #[5_V=Nv-RA~H崈$z>u 2[k`%"ҡOd)vp0U\3kNl+M ?1w,2~H:N=$7x~)sÄqgg85o-ƞdͰ%A2r羒1SPC_~կ].Ƽ[^%% o->Fk7ޞr߆l^p9ڄ7u6iJPe_{r q#` Oa"zp3, gvB~ZB8ʈK4#W5ub.3fH%$k' J LIM+Њɾf?Z[9 ߇p`3/h)%7e:G3&hV{V4>8x 4&rF%۹|*ăek.G[Nl@vq}SMs 3|btibr)C{%sԫhԫ_`%;e9+AΦ&\B&LDZ~2U?,`^Aب,C_o"% (ۂU=^KXh)9s>kn_XX[:YĆu>5SF>A]kam;4ԣfk+pdȳ|8fw5p }&xOHXFJ0w5\5`)9@b>t?OCS`pOvHCd\8-X~p/w5gڥR3/""inE}]tAX4v~G>UH~tMgc{G}BKIVK.+uu|NG8sǟsʯnRQYBױ[ƍojr}i%Za #>-@@'ڬtEt*pl&% Ѯko韪ilq{2'*t @ON.>&5'g}s{SXee@,Z.RWH~U8+d<[ W5Ոg ւ'0qH>;E:ubobRLA8sR f`0%.w)q\S9=>ᗲ-8\aּP*D x:){-t/#g< NiEl۟%.53`1fdv!8GFSؚϡ (8!$`@`r2 }GiVOeLooÎЂ-sd Nٷ77eF.闳sؘA 9myo1Tj $+IM֌}EcظuW?U%/cfQxHi|Yn'hRŽ.[zuxl2 =#7=^"|VBĆ`>EuW?@cgg& 5^G@a`+A.jː.Vj 'V rPHnd2*7?E1R^')E:PĮkUe K9K9IVQЮ̡m?ŷJo-rNA -7v y6MO @z4x .E ւ6Ƶo4m3M(w,EN"8΅lc*HB[Y}*>! Fҫ 㑳p(ߧG-4mQ|ʛEFѥ ޒ&6 J$:%Ҕ\>5nG`lsƍM֘GDb,bƖ؎Sqb~Pd1FZ!'cqb"_W]K^F;"QJR>Yjξx鬔{}Uj~,A ܮk[ `IRF9La\ljIx%vChVKKUi{Mx7oԀWo_,Ih}Rp >}G-"{e=HC*!UQVCC;RzZ)!LTpJyAkB[Knˑ "&"Z eөMU`uL[+zT*Ć@8ֽrmWRܬ˲b6ݥ/λم="j#Er/7,y( =U3M`];?LP_ɼ?"gQ}ܠ)pOg[4-,IW{!@)'52 *(!aFIi1X_JogsFyDsV8SAFXs%&⧗qDwxanQGV?1PiGzC%$ۿ1o :"InLuZXrL9Dխs<7dp /:kZq{dnG UT?k:Go0I9E7%V-2h,[}1E\sM7ވ LTs V3yt F0dJM.3DOl#j}G1\' ) p%X?pO݁.}`i¾}Bg]\k`gMbpΪ{Bt3t4Ϋq&֬9R`M± qW̕y)9U2=q$?`Rr}QKɣp>)ug1ꃫ/yx jL4#bdw[ѳBKy j-Z]mGOD@aCR6^Q2ȍ|\^$ug tb֐` yvNMh?w'Iq{s|o R-AmR:Jj;O0[=fFکrh(>nޣ_VЗ2,6(ۂ<+E#2_ϊk*8N,,`I/eE)/ezPf}Z/HS`nGҞ+Jܣ'^+x4}MJ{ͿL={LۇvxX23.5 Tn68LJ,\8cmDO_ -ETŅE0퐰bbi{JGNUz|ZaDK[a_I1|>mh; ,-kߞҙ'DSYxIRGإ&0ABj qs%}Ư m >"A/j&gR܉Εy6[2e "]35wu^MgxV1M=ʬ$Vt2"K3M$ՐIFYF*7cDSTHTJ 3}{yfs{>kyeRdpCҗC~۝B#LÇb[lW\c I0bCP=cB" ;߹g-2Fӕ k[*\aahHy" к pgzư$ZbwW7_)~yzg^6D@W*\ϔF7p?c?F_FuVO0e~֍jſVVV6V(ľZv$e, )7s/@Oy71kuU h! @|$ `;QV{Ν8uuBu֥ߥxE H3gPƾRKїj޸뾀 Y;>3yJtMFddo}zLp⻥"Y-ɓ}ZlظVbE07rYv@ =<=-~ -!zߺ0JeI% }gK~0|ATn=jI:lnj:#'&,<2q;[MxҵZߠ08-EwehJP:E۫2*57>(toƆ>TU+0Дz͠X:i bhh(QAAZ|5geEĴxoC[FPjsYQZ'="YKe SZAM =0 Ade[^G\W1rWK @Z*DHSCy;'xҦyEP&bZbyZW3O*wiYB$db5x_ZuCϩ`ud]7mA~ 1̾V ֿOpNPѦ1L!tQ9 n dO(偕b_C" _wŝwrì ѩbʶmmgZ@V)5(u,Bb;s/]yWFNyP-{$:m?zP@?9G]@+ $asrTwBTUEK}meO@hexɍtg 9 KL̊uEoF &Z As9od5%aODzoIuI\^iG3K (oRx^֥c=PWO1, 3L i"Xb(̇?K! ʨ-3?ݧR"DVb6'j1P_2%zKIÆS@} E11d.<'ѷ`\"ט7ȱXU6ȝTub7*B ^m.uETp~GZ^!ma՜F]K4O 1U_fa4k,BUJ?xhxYCR}R{6G>d͛!RK`VuK)hVkWc$xi YqQa~e ; 0jv5Lvmlx% iOq{vCf hJ>ޮEz:Zm'2y8RP M{)u#$>-aCs{^{#_7{>.C')+ Hv H#}:XYj"ٞ[iqKnrvn]D~C=hxsu s{R0!;z+[3ߴMiQ%ik@T$sSWߟ֪y8 HJmp}Y=Ba'UJ:=Ə1hhK*Jo Wg{٪<<n$صg:18Dua͓yg~U| +qr7w]1SPOWO5Jɘ`+#'4R5h}9ܿEAך?6=9*3 xBæҡ/s%›Q"+O^%yߤE?FE73+]J;]y'p/32 ~"xUGt Xf!O5 0IPR 2@b@txBTe0w vF_Mb'o+ҧ8 b@7ʦ1hL?P5o跋4%FF-8v'?U  燜ivۢEW2wD}iJ۩xE|iHTQqg fF87%Z6Pq>zܛ;LsnDy̋۾07FdVre'+I\^w"VC[wZżJ6Vo&96JhC7BJt#, шLBzv >b]?-E(I=:JOQMGᯮ=eI-wIuRN E=4sZFcޞ]RtP$Ȇ45]m>8>TLxFx{;>ʡeF!"y;p8oY,4Xb,Uf qSM4Nsa#MrЭJjELe 1l"U$α*۲Q,ٵ׽o)Fեs٣H͜ coXZڲ?.We9w:S m\8XJIzZ@ 5ȿP@jdH,vsG)gؤg% jzo-Ӏ vy[c9 \C[2>m N,HK3z]uQۛ|gGخT>x30{] 9=iafuJnRn //x(Jbo [+t^sWciޡ77 Yq tyVuM(QK;tMRtu9 ԠAlzJ7U-b7k庐ZwxԑR, &M["jmT7\ʲ֯rR*dn \خ_v/:zuN&B_Y#f ׄT/42.pߕc;dkI( n~nڂMNW6:R .!-EC0:a=ЂIV9GZ;[9#9gJCn(İ"l^ ߅{VeUq5@4`Sӧ;R ێ_mHQbS\Q7bfp(`oRJp ^@֢`9=[)5֥*qiC=Zc?Zq砆L2pEx֛+N D}/ѰcjvslF.})?J)~obgH31NB\ӓpqAw~H =yϑ%DZ\1V| :ɐ+D=>*[|;&jE93Vwɯu7s.11wСYGYQ2ss,1Ƿ/`f›ͪs2avFi2 ̾N4-`5{EsbWL;A!bG#y|H1GQWYwʸ?dQ.\/YK_=}bD~gYqٱWiXXjsǪDro_@MS*me5> s_`gN. O% åBﰛⲍVA?g -._|m\[p)P<=eK&kFSqoPa_B&]B8oB^ڜ8nM")$܇anO d ~z|zXcr: ]D"Nد>!uCC~~ʁr4 s7 퉴!#UW1/gBY#0/ ׬.Y`:T-N*ejGՙmz&2&{B#&_l:VӮkms[;.48MT<읳;)<פbZMR =I'-;CNf:Ak0|.k~tP~TyD0 =ųo~9[zF@|#1~epZ" Β0@pgA ,36]Sԡ=0!t-npYS6O,N^ ea;ST68K^@ % kT`aHAE9QcMr߃r:3%) C}Y[1B14k%es{vd<0 L&0E >#t9K5aNEKj,5+ +7q;@6j˗WMNj3CC9"vQ(Ɣ/QV6LidkD)3gHaލDTr# J,NѢil̨67 fׁLVFN79&Вi&@2qSfHCC0*mc/L@.BZ֔}*9//o?`,3f>'3yZVA-ܥ }qls̔2`B'0WvQ%/dP[vbbJIzyzUM˚ 2""3i#"T^镖*r "}f$E辻aw( aSɢt:k5dTkڣ\-FO0WZJg7W8]Cnk,E( Z[B*Ưz;x/9eR5Dw(k2YFHQS 2To9`1)\QQDs hv>g(:ˎƲBPaќ09wi0aE (]H2sq]bXO~bP̞ZgQt|ހ@4A|KTsCx0%Y -9@MG516yxŰ `;Y7%Qt#pT[8NY 9˾!#>}_i 0wٳWb%HXcE!G/0P1rGfHQ_#2EM h_`ط` u#IIAFH:ՏxP|&O{  O*WsegVPK QL>nuvola/128x128/filesystems/UT ʤVMFSux PKt91,'6)%nuvola/128x128/filesystems/camera.pngUT gUAPQux z;{'c8gIȡF$%JfΔj()mP9CTJYRQ*aIOk}}q{EEMxd fk,BvsxOwi{O>O r <& &|_lu#mGba7AH@CJCM!4@tEM2E@Sa WbH9o'2֖.X+DIICth*i{:DqdnvvXAKQKm ƭ/ϪW7W'̠埠/HJ)|s" X+m:&!zd|8Qb 99vw_?8NwB j_XxǵTJO)6!g˺ՊԻ~]`N q1XRAa3;I`{ WltG֧"WQ'}jZY:pbd{g#gOHr uiI ϩ1KFPfXa:*[MzFPF0H5Sj.Ocr@g'vPÀ8UԠrOVxtW.b|zTE O;`1 k~:\)x x:7o ciR&!HLYL&uႈÀ? )Ll6c>9X^pU))Ô*X6@Xd35iMW`K(Yڒj$L`CZVnWVvFGXPG(Z2E>ㆩ*QqZ.L}f-&WP ܛ!0ˌ@"|UEXན<\Vʞoխgaf85+]g;&h NL)(ƒ]KHS%o=YnyO]]FbhHݕLRuP O#VYy9qt.NmAw;8'''XGS P//D2ⅫҌުasysy5{~IƢw]'l 0mٲJXO[]NAk{9[i27Ƥ<~c5`*A+ VH#gCi΃dr;7Q)}Fa. p7}~^,=-[&L=|ʶmI))L6 11>*#7gfLHJ =uR|7CR zJMbFfoXį22Э> , /CV㠋u-# BGv"VqFToq&`(I Yrns{|ᵇH} i//i;(Iە_iw|GUS ^.Ƴ5@oȼk5OOq|Q{8F[!jC@3,-ZZpOg2SFK?WBH|&ɡqqMܹR£:>cA ]:cCXb6x:)iCRe$2(bzXJRȄ ۳SwHJ  lhh 5FR6Yāg F&G4 Ln5cnJ (n$N r.)U6eByC=Td]َVMsbDh*+#&b5Onh߬S:[&&V+_J&w3оt^{NͲ ࿔|f*)"o*)!Ǻ9?-3&Uv@Y3hs_mQZn!]\ĽiQ׊p1)'^Be誡&=T ks5kkSF50|SzGC1.UIcsZ 9s{/Feby4 x|$j,&6<-`XR.9X6yzzĊэ~8;r]A_ΦvL#6M{hMB>mUjjaL]NJ j6 aMpۤ ?6zs=T}d"v,)j0OJ&pS:Cܒʜ`MA) `U^-I5 r;+1l0 \nh("z7 v\b:m%5k8A]/gQ׶!r"::5$ @(> ʆ-{x5]Ƨʣ<#Hlja1 8 %gEE!m =@(]S|BW$>㰩DIf/`wrSC% 0 n4I;}X"0[YT9ߐQI'Qz2W{BIIS432 ]/s"|pho;;A:ޒ0 c|յptt"׸vsUn"sMjG] {/,,b|*#4Tnn. 708ؘw:bKT"J=5J;!f8=9T-QtҊ`c c{K+ k[ɉZՔC{?`]\R[^Ø"4ߠO_W^g sa#^gnR32CQluhoxHugLbڬk)H: EKAoQQmC2h|:6Ani%3ܛݻ髩5}j I)3'fvMLFݔ; .oT#R:pPŏqO]x8D/ 2W4zY4[O(3mKX&l,eX`I<&DO (%sݑWDTmb*1}2xacUtp:+YW6nd 1M"PE1{vbg&⦇{? [BQtAѮC ONa4 QbJB+ уŬQx/1iJ.Τ P?/..9_9 #MmYS1}> ^~ a;ș8?&p J1x'+ϷRdv ʼn2PSLߢ0;Ju@힖NI$Ék+%"xl^"U,'2ݮV/ de=?cn 1 g#P URiO>o~Xј@13LlQ J}FT>+@>^6;YaW~`݅>(p=% x0nbɵC 6wż156AhDeR?wD5SNmKB͐ 3vEZ 7u$_eOQ`5겦uo)R"puX ߲@46A'ߏ'x/0H} ŧY ͝8{,V|_q)sG=eAOJ;So@Mo̎j#} iw"8y O CHYưYD/l;w\>*hNd8 |.ML*^4օ<`iK@ ;4hCTL7nU]ȩM‡q"gT3'JVӔW_WcFKv)iQ)jfxVOfH< TiEįC&eE-䓫)%j;\YvH cL# Q +7X#vi[?vEtq/ N\B`?e9[[v7rs>ho/cvD\YG #~mQ&\QG0-$v& wC38Ͼ9D5 #2+a9(@P`6Ǹ~f#*A/d2w@%zot~?B8:>Sݸx"L]*W(Tܽ+n c`bd] oSucAŀ &"4 ̒#|6S8Og]ۤ53Naf.^bfCJNbU}ԑٛhU6w7[ jQ;`˕6 {--&4|c/9r`u>٫4CX^]e^ M>#F>3\dr9hvO_-⫋(tqdTMO5aJو>-=lyLw wI~p FBr08H7(??,_92S\ Wy>$*-N <Ő(al \s`<_гz8!rishOx'x ݕˆp9&RbCWhw=V/3o*V$A FS) R%_X\ 1"Ŧ}YP^bPɞ80Ǿ; \E?IPoOO;oC.Hl!+قqO.B5ox']=25dG5d0&Ğ:+pCct/ y[h`[ZX:N?c{̔争tmvRPzHT=[iSΥl8gʗhwDPtJPi @d4DDjr <*D/ہgN+y쨕k@= {WHiJp&qˈB3feeŽtw6Om c /gJ[S#`vw󅬟H3<'7j#6@cа7Ԡ ~ȿW~#jS|AOaxi6bWsg{*9Ba/w8}bzva5 %k;b*;J9+W+2@>(w\ʶ/b؍Bۉ`^SۭF>Vo3\!i]/(h IwpJ,y' |FwQ7u3XSg76`HH\\ErD)Tu7!&)V<:FzdWq-} 9 ^/ kE`Ks>n#I|EW_Zq !mS~QӘԗ)gg HϹ ޅ=t"Lҿ5y,|,cD!c $;-0c&T΀MwJi['Enl<|X!`"c()'Ս-c\^qu,XnV|@ {NZ>;cs)/aO^6]ueg2*w *RO<拐#;HOTIdI@J2|L)R*${j)؎m9GvOp34+`x%7t՝@Gɉ$CEHy>GvTEWl ?]j-"ܦ+_@3QjNF՛MC=&ӶXh޹762EZz; Rݵ/ݎ\»R&6w;۽^Ԇ:VCiu`NuO{N!nmc >ǁ⫩}?+쩖I 3iVp:@7TY >"sz":Qԛc r IDz!yxEKd^<]֢OKq8U;`7riĦsBߪ? -j_t&. J?5wo>Bg,M~ueG}Pf:=q\ⴴ4g3 ze :jl뇆md|PF}yr[Q7UBι {5 hR%sε2[q6aT:89!~D׬Qټ{$ lS-e2/@UDg,|\YтQͣ%x>FgF WAeI|(ݛDŽ=F1m|'XRy7n{~hKMPKi=1C*/0)nuvola/128x128/filesystems/chardevice.pngUT ZAPQux wPS=zB'Ԅ&H 4!$bTQiHB4Q!***bPTT$P +JTD鐼}7f$wnfr>K%+! .əKyn EF|;Xwɵq#$FOlHTĮǺ"ǝ'm0tM,vc8Z'}-*cF$?{*qds ~(D 7p '^5f2{axz$&%^/o\ueJ$62ّ)ev3i׎ZWp1Rϟ匃 sGGt#EQN䜘ȥ'(+gB*a2̡b$pF\2D+?7lG6~UѼ}V z6`}yΈA: ƥKc߶[qUCA:/,b6®nq<8,ݰ)vwIK-//f>'El[5H)/'/8LV wX/k8FC F8W8}h:qDnje5}PJ3۪ty DJ&\9C,͎k~~XvAy3ss'7kd͕@43fxY}[hsd5'.k$u>pddȇ^o羮pT(bin’Q^kl8wvwd]ދSO蹬b}BJB͈ANb}/8HvKHCغ͊{R!֢7-rk)awH}hnkL^؟4лMGNh0rwKhj5s?ϝ/B$*OF5u5]!iz6>+Sf  (J+yNDTڋi3V2-)(>aʚ7BKhh3(&{hDìdKG !m4Hoz<@A("3+PbG,WM胣NJSw)Ϻ8qשN8g/@htOQKssXfp_όN6 +!ʾ nl(.!wW ym[ƣ6_>ȯt>w?Hp eEy/ܚ/Ru+~N?rҁ Y1ZV3}vග9x2fLh K_ݪﭠ0}<$L7,-?$Xш?QI8)53`Ί}OށP>(?.;?r&N?&X9d2S-564䄼YȨ!B\YiGCҟV xm)PQBK DX*-e Ʉ_7Vbʳ|Af0LJQXTQQea}}HI8q^!QnQ+]1雩zd^Wq. 2;_?z ڸCi,Ce. jLmD\qn<1٘Q~B=xghމtCÑwW)֗$8ح2p:n d'';ogv_&ڕ ,ʶ*װrZ&m=~9whjlwh4Y_m h>8Qƍqp#\lToąWvqosK.P5/f&m8oT >wֶ9d,/y]ND")9!ݬ6YHmi"OVl F 5Ʈtc Y]3h@/lY%aIuѦM3/-%t=\.dWʁ(JEU6k+S#͗IH{G7GQQ1BªlPWtCۥ[Rh<И ,E=0;&+ z WBUneJXwk#cY޳3 Q޾!%;±Хt,~5lp\gu3K(Ϡھϱ#y@ l̞$&%|Rb%cTzp(M@߻fzl`/44TY**HG5TTVuzD[Ahnf:( J u>G_#+ʣq6֔ F\}=ZsB$aWK;tlzXK܁Ezܫ]^E##`Q9BK!`ȴi~adQ>T1l/bhΎێy[ κ ()N1DN 7! IEhַIV;-_XM KDY&=+)@Mi_qOGCCo>\Lc]2jCLi-{*;}ӄL.IE EmQj̷# 뻃Fz'_ g#%jFfVgUib}|܇T8f?O|=>)`>]bDT H(7d|y婖}SDȁOwUR1U b;wj?X!0 gR&GfI@%~!NȟCWa7g¶KtRNډ<0%,WEqpC. 6+=, * Wm9dsFDƣH|P+8Uolλ$b)>L X=ҡCY+#?ޝmvp}A.ikzs:wfu |[ eh*[VfZo6'6BX K荳wh Gկk?nJdQ*D*Nm6d|=(W%񊞈xŬS*C?B#Mu;GlD"x{&*?5sr~x|+bFӧv1")@u,Zy]k52K/\-*̽Zڢ8P=@NjmL/W)ͻB.6ͽEV֕~cZp3#l!^c>dI* rqnd `,6r+JؕI#dq`% ?C>t~ǁw=uZY|T t v<; nVJYtJ]CT*]њ8j+ * ܸ{U-?[wJ q' hG8{*S2_s3\e#ނG=|Jqq!B}c)6E Ɔ&>1<%2Ao@#Qĭ6c Mk#=~96(n ,h8 6!9V֩gn('? x#7Ĩ!K1~|}g.~iznْ-CšձJ,_u^Z!n’`p %^aRuF| %evM)H=;#cj;/BLԉ!;Tq 4Չ~ RʲD[E_ dzM=͵`:&%p+;NSۥ#>hgM?͐va)c?Hjm37?RqM!a0Q{eLU/ZϺ~) }f 1wQS('Tsۿ#>R3.50ӺmOg/)3Vt䮹ViC"hXʪB}| !6hþ7"$p7}Q~WO7[ 6J4KuD|Sl@XRȷLr:(1JnЙߨlC 4|K;$<76eÛ^r-*KD J\ʜKZxXTg#!dN_ҽ1]DtbyZ=d\`}k{w޽{Xl7kp&%4`kH Aq_u(g0tQw4QW8]oŕ]Y:F1BgmpL/*%W/8O-u!H_1U'-u~X2ux3c²/ɶeJUͲ 쁺D.|f'GhwsDYigaTb! QW.ʵNB*뉾 zL`#G (y0+ JF~S=N-nR.o #oqpAC88KZt HV]N5-䏴^ฤZT 0.6! FUhDTdϝK/1Cw7JM5*DCkecF?8'";5UJUP^E9G @Q3of&xmZ!,,@yt[jOj~[;_Μ7-[R9!̦T@õ97>3Huﯖu,<*+*5?鄚 5LPϢgB(zKj<7SfU2F䲌S+sGLm_mhp\`O7 KaZr /~<<>$&Y9MDC…;3K}* QX_F3%^K'F|P*NIPed6qdC:bfneY`HM;ceT)ĖqN2$.!KԔ >oWݴx5tI.#\ L+ѣknϲw3j}m>NjyI8>zc+}lpp`,uGC>nɱs_dZ\ D vZV`7??QC/cփA|6~i.I[sɪ!3$Qi+PMIwb :8^aJӿwR6 P+e!Yf!:5>ǚ\NC-Y +|mّ ;Mo}ДMAMܙ?Y192e@GrW%O}Sz7"Q8 `O鹴;J^iqWhJQhAX̛qW8bYatl&HVt.?<}J@q -L]{ I1SiS_,Dqߣ&]])/p|b/ E(GkDZST:NE*dD[扞kYhANވ3A햎 TBZ`38y$v̝ vN]Mr)5u-[NF,ջTyo 9{`Xtvdu":X]:3$Mi;)!¯En3K.//Nu )1O+v5XRw䦷* kל(@C!tGST oS}r3u7?l/H"d/Xv)**徿e(D9o#>hq)^&S]^dEמx08K8Oei ADӪcQY%3*0Cf'?DRfUiZvjF; '#*mF-蹫}+!2eROHm 1 zq4w;&@$Wר"fs5Z~AjI׎HH.0A|Ex|F*~zIb0/+~cs_/Tvܶ>5RwI79oR;Dv]۹Xǁ pΧ{!,C>hO*-6v_Ջ%!hYW!zXuyu!@Q9΅~}fwP_V_ZF|J36ox#68x Yz|[.%6bݦ1"])raӞqe뎐p-/=<`3F[h"vZ`[B[b wG$\2 ̌`p`W*_IHқ~U0P>9z:uX32pw2n%O"cF8L>K梋ȺIvՂgŤ[CL?42$伣qUbBiQMkD?&xBaBG1($e >ZK2)4 )Hk7[O©<㔔L=6M H{tQr@@c@Թ kǠ ku443kVmn }'#$ !+p7E?R]HPNR=t$7XsEL\1w˗SiH%O\w\ӹ|cw}W c6(0{#(Sl񺴛'$lqs'їTqE4<ܻQ\{ 61 "<Rϝ?4ϛ= ZX\P F08i6a=cÈK8LkЩ.J`hmGd>д&ICH.t( c< ƻ4J[aoŲ_)g6A\Iآ%<E_vm $:Y>Oa"=D!=tʽ$Pi^u)W:Z8-Mx('DI5 Aɮ‰l3=S';a@m"XQ АDJS nV?(:(g a`F aJ*툼K^ۡ[]cW/Cu jA*R$S-JP>ֿ'`H4iGV P+A=]u9UpP1]`dbhi\N$R-_dL` SF;bRGMuaY!_9TҖ@Դ^^PnWmkoހDh04f ^ >>-i3HG]%?KBa!'^BK͹]^Zd;4 =*gK{; 'EYnNrle ͤʻr#"+0m\C6\c>l-ond-$BQRZM\hBFA-ŢČPQT>PjI˗/e-]]@ߕoj°DIHedDxX\\;ON8!O@5UY܍Iu84T8eFcaef%u# ŌIN6@>~=Aip`^U$w~jH-o=ĸ(^9Rk-7ʌuw&NNLA--R5:}rp2qG5^2O't%r.t=hTwCAdBOB`L+ܧ {"XA%8?=W 57)Fv6fhG\DME͠]1!ZT_O: {|E 0<2deO_B:8i`Uh"||@gWw:C^aK87OBm>:W$ZߍGĻuTqdhh?rnM_N>E/D Zz$;{hAm{2yRcC * &GGG直q yG< w˄wB~c×Օ?N'Ew,hՎB[dgg{CF4T7^Mhlgi CYްg揌ӵ偷-eAK`Ko4\.>(k輚AV"fȩr; R֙`%>mĤ4ޝ|BR[Llw޽HXTBL{+!+v(׼(I$oK$mxdzG`m,û1#QfxXdp8juĺ4˶ oUfHUG܋C35" NJ=Ý@81`wNnOiw^Bfz猰%B Vݠ}胩)TKi=l0ےi\TYy9ݨXYB[[[NK_eDmw'EQ-\|PfVݽ. ՌgtheԎOjˬ4gW.XbI/O_6hި?>-Г>?⵵M^2HI,|(`(O~d6| th$~I0FFxP;c9+G>_}3 ;_M?Džkeo@*D_8Ԡ8hPXTwtZ^YTVIq;wӘ F[ B* 2ېuPΣo4V>{+p+8b>\)YPKi=1 yK;M&nuvola/128x128/filesystems/desktop.pngUT ZAPQux |_?Co׭'fj1GHW)-4QԆZҶ)M-MP;ZNLrFE|y<~p:z>\ٳMYQW(oڲWz{O[`"NM@e/ޣn=/:llP!$:(d`xB]!]-۷S~$D=KA!NygLrŌECUw+Z # dJ$VxtK`ȉ}?;>F2rBO6 .v f#Z:.Km3ni^u­/*IW"ſ "8A\i4Hm 65fXQi s[;rX 8a1:Zs" 2|`c.n=&HGQhQl&P]`Ҳ82On OIǖhϷ=#Z:`ߝ) ]9[Bݺ@J#p/gyJ@jW.45|IٚD'!l6M&,w}E6B^=z:y"X[0$Ȅ7vC s넃<Ԗ-"#D3{h3D.۽gf,s_o-~wra]JZsnwF6G;^¿̚,8+ ym?5/{A{ V.b*&@FFv8-zA"@s8/ 5Tj=9w``%>lL/bZ!_$#2Hd}'|r~. q!1>;~uWڤDtmB%=Fj6࿰cDb K$ b#7Z4HҊ{s)dE2AIhBBUUٰ;o9 7U1DZgz$& tȰgbFܓ!x1/.)]!)-g2~ʮW9K,qAv ʕI ρ sz A(Uh7zeͥx|Pf'`bp,L /c^_ J Sl8#T@L*$oۣ`BDFx`~EdOZBh {@/VV+X,HB(+x. Ɋ.U U&A 8̧PV GM}XQڃRr y47;%;\Bg1,h$8"np@]j4U $Fp\i%9)sk3enhCr[*4؅nFsA< XnGCJ䱮i_I ; H$/C`f`z6d0:–PU}wݑyi[s YY^~@z|TЙ @LP/\H&?3X5P#2 {SJX]Qx>u̧/˛؋Qa' fжz_#}x UxZ:A97i/w1%ԯ(wh6g/)6 $;ĩ6Lx%Іo\;NTGn4@ w8" $* ޴rF69pY߫@j3vT`{>%+åx oos˃>læ':8%AVl*h%U]N y(#r. ق?#=A/nE>f{uAbnLMD1LjX+cR|l{"5Ù\X'Ͻ]Xx\S4*iL`4jS2 kJN$T$\1q PDr2:J,F~[7Gq,zhM$XUr.0U l׀Mxu'v8hz߈%pѧ\z4mr!h%ˋWGXG&MMzaǠ0SxSpF%O.a1Ύ}>\(Q}czA:-bk%َ6+mrsfrghK7.Ίb 5 c0:*9źk#Q;Hc I&@ qxO)U*S=Y=EEnz3CQq\vt\JYpftz֥zy*DK<ZȺnz7z " 䪶t0k&(F" SVo[)nD3=8Q?U~;cXa9r ĉ]=F'⓷7V=q?*s7K臾HC0eLmT_VtV[1quǪ}RC=֤!*2?vCVV߻<9CkمUB",~EŧPk;DZ ns_Kȧ1/qs/` u5:ȏ5j:Wn'6̜ìbՇ~K93t[W$w$d+$ls 1ݭa#-,ݸvϔ<]_-8c+1~<"R|Tw1HN[+^qq4Oԃ6M3ѿF/\pՋo7,ʑ{ƒFȦfoe2y#"3q +)ER$v`/xzR}8&2p2PB ./Z;D PmQ\0Xף0 CKϝ YAFrՀWR;,퓧e+0ϭ;ߧ٣Fpy\KzbY+0|jl p x'U5A𮇲Z7ڟʠ)+ɕݓn,**D>.4s83\5\CU,eHt8e1\OåcO%=eC >O8l W΍곋[iB,|SUQF $*ݙHpj$/:5$!\*_qzgW~޶,7K)xP M"m]mRεVeMVzjy ْ߇K#^GۇdT=ul.٥fVv)̚{庨^I2ȏ GCs11jxeq 1l ;,%\<03T efjcB3neYs6.btuɁ`M?4=VT#AX`\җCb ڜt \=yv(kבTF-:5 H&hu$A2 􋬱 USvɢFnkKVBM75\~3iRzy@dfEw6~ZNSFL]:w3Z =ٷKb$?MEʐ%)\&.9\1W~ ll@ϼ=VVZ -e2$W=[/<]"@_`xVlBM{DK3ٕ>>\ٲ7o0%Yf&LZ-HEuA;};psf'Qey9D"ҡ^0E 8쟒2?#j#='pʴo/FO|6 /F7挥$|cb#?M!1Z^r VrYaE5&\#6x._b 1̏0>y+r(;k{KHؖ8$efmh{@NF(enIkCK ? f̕)gr Y+:,pni.aɨȲM/"/.pk2pńc{esKDD2Usءv?ڀYyE~(Hq}ؾhs'4vXn2G;vzav1zL.Yf0SXr8DR#X#:]c\#畂})FyK1w2WM"Xr+?Ŕ ib;$GL.KJۼ*#, qCt U#mT)mvh !&(9:-H|!!Xl;v/ԯ$ɦi"2tz.SA3tFN1# cԒgZjb;/C;X S8HAbkmc,9Y΁GFzsߘf9`~L0>-LxSg^<;<2>jWK/b٪lKYӒL!`=- bDrK.9Gv)Zz%#ދiXNT95z1-D(sơ*2u#T ZHE%W_˽"hx>..nx?22;y~>lj Uzg"NBo+Q:'вV1#مy 5ʎ8~,±}_emnnRՋZ4_Q$a5n *ͭzy0F0sh7_ױj+ǃ/m u#l n̾ r NlmqwO>YG>"xb"ʷJ|YT:?mXبSr8Lɉ8)U2cd)ٽJbN,@~ ԫyᤓäzDEfF4]Gk]^`r(I"(W!$خ 좃r}_^Jf|ǃ{tPWqUW?_{"\7f lÙlȘ|WUS XٔYLB;y%~ˊ?\kyye_+grAGqYӈFey)D_jQ-&V؍;S>Y3!?'v6lDϟd /PEVYwx 2GYAХowdgۆ W}[x"mGb /Ი*p~ٴxm95r#μ@T{&%XHsֶDB_+Ro6 [.Qm98d<%z=S_!*Ǫl]}&H2ٱ{gcxp nwbKo0"UȮUH6PX4̖ܴc<*k6ӽ~咢#Z]+]Qݘ=3zV 1XSkD>;;$ЕkoAɓw4yUպC^o5-^kی6jB" V7^5m!=yr8٪~hH'L8a R }wJCc*;Pk\'%*- ʢ^W>-Z4/]+&<cA..FMW`@׏kZ+}G1ǂAY%8ȸR[~:}z.+>&gzKq&xEy XFgLGsYmS dHlG*8D0|AP9R@!t|E\y5&ެ ٟ+w%VFS>h5#ӏծtބEk@KX 3gc: dsKc{x)ÿ,{3G0I1/#jOÜba> ”nƦѣY,{| F+Z!*>#\1\`yvg \ S\ c OpP[LM>#iضWT-x|▎!,t(Tx'tBBvҏPGC m*ZZB[qc1P nY){Dl'8֕RP{+JTB^͏' 09chܔ\ "&(b jd3_zty" ʼ H ${ZuDf9cG<Ev0:!q[ѫ6<#n_"Gq-&+)EkLlڱT#Q#ANbe `0?e 9x'W4OWRHj;Ja[Y(~fMy 7z޲'Z6cZpScva$BE/}!~zYt!]7ҌFyz})>2m"s#sЉ˧7_s4 H4$^((2@YUoߎ#:ŘN7չ&qfbyP#剋aA\*zZMh:8.!`ZaB+ _rJoέ7!?+U5RS>lX7uzJXd_er=H3,$8D22HU]|>یmE+m_B4_x,k1&(d)flsЦ(9OȺ_ݐooW2\IYHB5zƇv<`HB6k-22p9hxm&m UPְ<#K¿%q uVlQ ujAaU}Juo>,l ieܟ)~ubB, VZ%3?FHhKW5GZv W kY8лˬ+1 `=EP?UopwxNX31`sZS;o@T'&Fڧ::ZGgX;"CBq/iX9sI/YU*3$xNÕkeopd^Ĩ_ЁT^]O[TRmBەHG8p^&:hboV4[HrĄ$y2FQᥕM RƮ:'m{P$,ɳV=rWd貉CbPLHY¹? CunY#\$89j}! h=!HУ O[!BZ슖zXGwuUja:UJ,V$NZ*z(K;ti;2 Hw}.Y_X 3tc\PMA{wۑݕ {M^nqيZCXqާ,қsx^\1ҭoXv|L33'@[[P&i uy\a MgW4SY`bȱ,_&3Ycb|VȮjkK7Ƚ.\A.2-M*՗\,}D:O,R=͂#:J"užD?Ttq/lXysULb㼾hDG\'Kys|2YTn^%70Qwh}92K"׵ {IVFc3и*Jt,go׼vq*Ұ>6?=(-J^De;d "پOGM UȖzE-AoMVnC xhEF+&gihr 2jq^ZP%+ D`{Fᵊj+u`Yg=^`:R)D/IJ5rSq1$tekXKM\ٺl!1J?&sx7*RU|,\04:J[%EQy/h؎nIG<݊"V~5EY=Vע:փƹ p4""E>CY(ARB 3 <̽$sZFQuMC7 AmpdīQORDCxNy{30DRu<ʑ/e3YۼmHr"D\bVW-TLѓرH*]I|w}Ҥm KR"$^b0iB,r:# OaQ#sK ;un+I<%K ;ҙ kK^*zLS)ʋDр׾a3BqG2bVHK÷e  I ij\Vx3:21Ijv|Yrl-=m'^jfJ昇kյdzsթ J Ѕke:Q]> B١;>w/ G3e!2.ՐO|> K|wDT;!T*.̛ZCoA@BUZ.!AvٰsSE5%}Sw-{E.)WB?tU`ƝN_ ~ !ق^'~/W ٗ{o1 @]kSKY 3siT&`6mqiy„+h׊tY+k\벯9`XG͐0i_ C:セ 1P;F@-^ߟnAOZ*pp8ylFΤA^,`a6ʡ/[HtœjN4}ŷ/s;`=Qg&< DM?1W?Rh_$Ajԥž*16.~C}g~-2\ߩڅ WxAwo]ȌLb*RBgě\BQsazKI?,- ga~%gۺL '&- Bc:^?wא\5l1PNi'ݝ NrPQG+}^!D*ǟ=Z>#36Yn ->ryEH65}mTOfgFێ$emXR8{WӔH{{zӨps̕#*>o/#5j=pw ZuϺrc`ڎi :1wL0pJ7T|Ihx@4[E6g0װOc I^N1JPF߿˥I0=}i"L_zhZ#NS[S}U2<U5yAYRhΔ( wJ#KVj⳼&uE R:VM6fط! ~VQ"_^ xtӫ3RzFdk7yaG#N`SDC7Bu|K_8J9]…*RQ8:=9_n+<1d#jg Ũ NV nc?2J;vAZ"Y26 =HJAŎML; %H_b*Aߍ^T'BTہQODY,ap`'ȊcdkvL !`'DRN1qeCM-ʴRյWi#Fm6\B)8! $1=Jm77ӌ|#x[h.g)WB] RyK$j/Si5ف>ˤ:Ԗ_Y .F%.~y.|< feӴL!a> L1R;>$x7ik=ݞk!fUNh޺b @P1&ANJbAF$ siY-&Uܪvc{>AK9ЗʌIo) -OnbÕaGN슃YP9C>U~]v7}7>j,\mljېI59LyV͘t^PpwUՁzF,j&Sc߶FWX '-buS7R_b#?A{;)Vd735H.֙ ܕQ|mJ7nS!)݂):o%?9[&bCw}錻YbNPnI<}#}[Y hEz2H6ț_‘E (!Q70-# ϯ4Qr5+V\"P9Yx_{}zSLdk]Ucl`}cit0q4yx8#X yѕ7n`G^%lrp mkOB8Ve /pxzQӈ^mkW\\+;#=6=a\4b1\/Iib(>:ԵD`eM8Ĵ p^^&60@P<2.MAR0K'YpҏYAWm7l#tQ_/ȽJ:rcgJ`Mi;zzAC%T'TD !Xvt L93o՗m`J ?cϺ^S8LsT*PuBg=. HOK0 rNH[SCӅs>+-a\u0r$L K"__a9+oE(BRIV2lڈs&\-PꊂL\ wEK#uI?t (U^,NxyfGڡqJ#oֈߵv(ѬR=t\XD09~^Qs6+Qn+Nu0bY *'vg(ۖ"N!BHcʹ),K[;|Kjlym]k{[<4ZC {l ,!X+3TD0ThpiԴEY{ϑH9F[~~K8H'sM(,W$Q~wcLݳmPcj&S wuQ~9.7;D5m~yB=9җ8 Eb]s΄DԐy LE\yy[e%/l(F\kO/n3]f27y~xW WIME|:X^)N~Q:PbTZ&X^ʡbzXn nJu(n%ՋhDaYK|=CwkMxRl'X3^) F嶫COk&D-Ǚ7dy}yhSVtesZ\zu%&z1(D"xVdn|!$0/NE,浼~#%_IQT`&-Lv/ *C̜M|8wmWGkɕfW ?uw- ɽE0?T}۰^kO=f6j.*IʣrW0+=yĭ7f@ +<7bN)Ŗ\[\ 7L+j$axQ5aUv\׋* NB~ٲ(qT*$]r6%y ibVZvi  T{7k{2/ f®j^e-h¤I%&ӓ~r[-Sab&AOA? }ǦF  28N~ǘf[u٘:N9Mt[ R=oxgg (1 )y}XU{c1~ogj"QpYl˒Fv﹔@Xlex - dNmo{eOn?κgO3t0hh;Tl؏Ǽy$H1o."BMq5C~g9R0E,YįQ,Ym-EfK5??ڂ%7\Y:D^;g䛊_&#+a#$s$ttqu=35nmgtǒ(ׁ]-t>\ٴF `]S̸.y)Z?ua'&|^(TH'MաLѧ6D^aN<*@ AՀ"~e^jAZ?} k"cK1Q(*f|"3-:% w6UXʇTMpI0hyBX]yvv~/XVqMt pf/3*j7ˁo D> ̌B鋙woy W`nj/PA$F=% [qkx0Mɴ- Vȟ#A\7|f(Eore+@#xo^DS&/Kf4NDM"IVГo*񚡷OV[ ޭ/FV\ #KoQ;&U̯d.$EQg_|A @1>Df&@iWΛk[ZV*,N$DJ;ZW@5:ؔX`Not M%eλnQa+棔!*X?ivP )"CIae8H{9~SEU\Ǟ:766&9n7{1&,U#5-,hDt"+qOB9?)ҏ:̽`L"xrΎfSGL HWi鰺%^kEԒNZ fx &P m~{d+ARSwGQxcuLTpB/`A@j?**z2H' ks 'S  dpgng 1G1 !?"&X@ob!"~ct=c1 >ra)V9j(QA!QهZ[`ݳ5byIo?$:# z^zg57e 0Fs_|[)d17/@#;@՛Xs; Jc4,W kfIuZ3%TbQ_Q8:Aq&+kM(g~Ve&mpMgJD ᘛJT +(jJnF,Oi2Raz&g2=GŘtw?_e`|51>@ᙿvsZsf<|irs[]O_R3njZO0,4+vyY@-ZR'm1d]0uKb0AVWHLF'J?LBh9@kZoLPL;i'} ro躐MN{̛P4!"J L}la?u&p%ekoy?_ :i; +,aB[lyPKi=1f6+f,#nuvola/128x128/filesystems/exec.pngUT ZAPQux z{8ݳ arHb6TH*$ym"eJROE7Kt(9r(9l{um]z>}P(;H٧5쀈o6{I!I[$HQ"IDFFGDuE3m|\JSB=@b{qQ a0(KBy@!0PhR8XA]gd?O}vbCak8AQ~JmaEv#$vTޕDK 1 ݅貺!B*A3ݴ)&N9xϚt>[yUBvdr?E(cK@*PXҾWz-Ҁ&S=֑klXګpR6/i id# _-7_q{H F8{N<<;s\fq 8@ݞ-.еUJ .;v=(3V|>"S`'8;I~*WJ-XsjݯMyA%J+r^E2= D2f!oJ/u ML`0__ˆ)%?$vd>a?Kp'v 1:aHd~^qTƶi{y:k/ue .JȄQ,h j p֪tTlM#[0NkIqM(HP# }ݡUJr܅%y7-c!s$1^ HocC_كT%2f(z 3F2-,E]p59VCVy9)ÓZatBB}| v^L ț}dJD ߔeQM L;EJkq P >p x0l6}U(.c g֮JHQdx(6|LXV,L8x rCFݎ"`FO0yc)Hoݰ\iƕb,Q~(ois][x"`[ A$Ǫd(65GCwc؃~}oO>B/0[HJ:U Ԛڞtu՚aqCyƟȼ $Û{,St%[v.NIG0T_"4gަ4y[9}3qyeD77Zg^>ZS__JphP*Q-CG"oj@D*>"!!GGD̺\Ak$A"iI@X!@*tu~헐emX AWdH&H.og+3G{ j{r^랸p .re|r^M,!J䪣"yBT5 [i !j}Fwypve\-U F|@'Ayڨ>\V#Հ%ZJ uYFuGZ|$C쐊s{,mu j)u +%"+z!_6H r7UGAf2E]9 xl={;f̿+VWo2P/,~-qxW wv BqUFO0zC4\~\o_#wNOP5++iW,81M8^*Tfxz@;xy8#rD@V_=SiZ1[9u0 [0XVsZ}0U@>%s5j炑9n0ĺiaE8[CćWK%Ə G:*OE*JtFPdm+q\=Ul"S&zrk1v@4'K[ h:5T;rvXWS-,l3mhʨ `Ę@yl uq O-AV:{rkZSee %?>G[oLmQ*ޢF) #~mgVCTqx*iѕ7}_w]j^Xh1_*^ؽb]I,`-,ejÉ/+u}<ևSJ|7MQ'V V*S =0]˨UˢlK;Ӡ!QNO)6_^'\Coܓ>Uթ@y/( ]Xm2zÄQ[9ޗU.H? CB_QmGr#"{85 }M!r`(}y;9j_`V=k۳mmm:-RNMAm~P&&OR:یlg m7!_pҊK4j'6)<.l9!\)tB<*!5^o;j:x`?S P*rHY|GJ?L]^ X]w72q hP+j1"#s|ov$>EghJt,j\ANH42݊ 92SfGքjCoА_ N:_EJVVqPO,L?D:^@\9%APZ?@x3t1芃rYstkv;%R*6jY,s:FoLJEJ>ʾ6IHm[w( *.]8O 4Nm{Nh]"1d}pf|sU(@2' O;~9j{ m1b~ |%]o55sWe;^Ο`&F nI^X)n~*FJ %?>svAu'ňp6Wm*cRc43h;J4=T^^sp(L$%Ǖfafu35Oɳ4:cVc1T9D-'{GPTҐ(;xxCZ⃢{\bD[Khءч2H蓑RgHnj9+Di }e0_HYK,m/Jy ' XF2>v IU4RxZ:M7k%]amIӓ5w*dǕ+vW\y~ܭ4³~ @f}aOD4q a+6(jH,~F2 .ke~R0R;[ϝ Qӹڲ*&<e!%+*\%DuffW6~F hv%#}"ƾ嶃KJ3?Huv6 SߌwDJ&iSkLwɇ[#ˏE 6+oi#ё2¹:bI%:-cQ+y?S{j\ # 87U?xH$O.9}%0eO=+\-VllؽE>O3es*iJ_߶4_૮yLÜAL&24 ?*|-~Bڹ#b?#3{Vj"dGM&NJ-[|r(M5܂!vG#b0?q5#[/3#|w'`4=Vt(edf &4A < uŭ ؆ҊtѰ($X|bw>mEye~H,-uvZMNiMfJGf8ZYog},nݎ' MY3%Mؔcb-Nur-s/5 gػ&7f,3&~ _֜cܺ }OF  WgJ<U||=kE|ٝ58?#u@L[lac?@s^\%wEwz*sp 'gq.6 5ha hpDqzor 4"Bu_d@nUfs|\"~-說)&[ l N" ŽXv16+$il`nSVE1DzVDWZ7 5kpIdtr.a4շ?a}ZNFck(8kr?L9:k>!VvΑJfO }O]etV,cU5d*~w:EK|emrwef̦_t6= G7Op :RM+՜)O3v׃t$ YRtGQI|`jK摵HziRp +ΪEQ>OWt _b*gERbf3؃wAÒWC#7!@zT5OP5-q[5q3RTt;1G!XfKd/(jɵm;j@fI땑϶c&Pe~+a[ڐOEFxfucaѯHekSa67ySoc@ }eА!'vθ`|gE@cQ!K95_pJ=s?@^xCru%Rbd5X1{p]VݭcawI1wjn==1=3#\_%q [E4l69wCMPYq)GEhTH%CVzt"]eHqJ2t+(ʒ N -K%RðQS-12GW|)r$yƿ+^9l~~bw藔F_/_J;WZCE=E'NpmEy_^(CҊٴ0E!Iz_d5OXɪwu-^>{#g_ q AByeˇwM?%f/Ź!ĒI}L"ZNV-22gm&BC"F=c$>{ILOXA,6XrbK` ʯJ&b.})Jh)Q7-:uN[_m 9ϭTÏ=}jL߶"" ltҋw-Ki{&|O9xp4Sn|I3/]ϕzg;J6{6EޏϋMIիi;skNn?QC?;`KoO$lYZ0*t)>KfeݷTA?(bg4qHO&=~Jm^=>{P*(Yƣa12EXK79o;>&8{TB>}c0lsoX .:%bOu˙ƍ"8:iW|F.|EѲw't8(9z(L&_||r$h?sN+ϗ7\7yP8 Qj+aM=^E#SݶYimHǘY:y3O otگVk|x6"Pv>NR[ddC>Uך]m*HiἽq Cb s#^fJ @[ "1fCZ3$3ཿ*opnG{vf&{< QTVY*SH=%!ؒ =O- z"'/XѬ,#sאsI-"E~ķ)$ {,2 k<]Bhۼ.h%mZ۠CHn/L< ,Pf%Ǚ@f%Z_'"|pu*oZHz#3gv'=QiKƀ hrX}d_n!$e +-I٫)ZZ^!C;.P K|hbF? ycݺΈ "}⃿#y<[Y5эH(KuH+]R,3|f?@ ޖw :Xc߅3B5[9̵ 9B4KE.q~?QSnƯR+axM;fz;4+>޺Ev[=d4hitYu;,elͣwEG"_v۹Lv+2k/ȸ׵XMI"5xawˁ6nE jHۯFӒJ* ܓe|r4q?4I}ߐ^u{ hvڝMҷknу!9%o;&{M;apzΌerǧLпaEUy}}~@6oxDw1as|IE3@-|0s/P ե>Z)FKg6& P k@l۬1ԓ>6[$Oz6*D!鸜ǥ!XxnC (=h1T%C6l0js|#Bd8{;1X-{:,,LQY%bzVPcLkUp&*ЦI)R8QAZL%%Lt:>>.xG;UG~A!`zdItĪ!,.KF+jڂY:gb4| ѩ$~N96,0ajG7"2 ĂeE(a9D` դcfr`X2;ŠnPO2NѽRoOI*ũ:AUe[LVa^5ڥ+ȵ|^F}+1JNx%5#u|d9rD@LXsחA2!ŭXUDK 5]^{T*eE c iSJv?zY^ws[w@Ɯ  mܢ`Kؑtn%B\ϥq.9#پ4N>̰Ba<Ÿs;kk1ZTZpE#nh MV^ATML1CcEQ`>3bX$":je w7[!ˈ&&ɣ]P2ˌSWy^uՖA7LɬdT;ğZаj!_ndωZ\O˃mt9v„b- O3,߶kC$.Eұ7l le!Z [DU^5T7/=6V*ż m%/y Ԩ?'gLfGډpCT"A_Vيe+L52c g͝hZFєx|~03s2g=xfO/ ,%IE7Ŏ1e0jYTd1rfKk ]GJ3>:*ţҀnc<͈3Iū\Gn- S, $JO̸e)+w:-fGA3~܋O!ˌ5FHJ\Y$wUM!3Js.P giy#(=a>/ &:aQΈ@8L&v,T\9:r]:(=e&2u*_'w.Y>aF#z 5L'pN9Ekg,LX KZO@*yk9Ā< ton/BLe Xօĺ ys$Lpy;1s`vWCqf]?c-CmhF1RcAx:Wkam!i/]ziٱ*Q~5^$1Ng P |j}\9}]&ʨ8fC36Q9E  a_(qUXMؐ' 9y(3B~+q4c١1XSܫp2y>o9'A5B]W5\OYO$3?v"\k#VLGؠmGڄ=F-w$§/H+7 {m?PKh=1+I'(*nuvola/128x128/filesystems/file_broken.pngUT vZAPQux -z <=;aN9.s cfʙP<ȡRD5lVâRUtTV,FV IʔB{y}z_z?+WUS@50g5Z%bzS$.Q䚼7r3cͩq I b78aXxꋛU(ĖUǁ7,@o%@50h rOKHq~~~͇? +++u7]yN9+lP<^kw <Uxګ2Y@i.wbna7Ĵrh}gD811ccQfj'2?_SW&dZO*djmm9uʈ|Od⦖gi?ݸahiii4Sc)?W CǏ&j2`zՑcǒ$4gg'^ OǴmdi[NiMu'*P>|DVG5.'TT|q057w`]!DY|:t)du)[- UTThw+o4ߔ_]--)I(\ 8`P[2)T^ϝ;9ea(-N/& !7)u"9eC -k< r>q*}3YW/^nnE#>rPfIpR.Pbj= jU*/H fUɩt(:ț#>yQW)0Nbhzrٝ:v>=Hpe!2yhdWV,ʠdSi"#*1vPӜƷ|M1k'^SsӆZ_u, 0[G{{ŏ7j' AUu/?DZ^E'!|#V!=1#Cb&#*2LFez1n+fp  kYRW-]ߏ eb/??3_C^|yW,=_"mtk+i~vVil5C! 0-uAPϮꆆ k?ygW߃!<][GU-..U.SiWK?QE%% //\H2.Ȉ;|#I*tMJavxt;n$92NfL9rS| #mWz\3C7@ԇ_IxpP/bT3[3dWV-?B{  YS_SqI{pT?[DKpY%?QzFm*TZ]mZ zKt[oE)EwGxeݹ,؋O6M,41JƂ xn(6~D4Uj9וT:\xHMw _W:*rii_4fsȭV9݅O{'u! eBMF2Qpd%HQ`$m{yѶ9?PbǙȯʹnbE'zpJFpO1`,4g6*0h`ȟ09x''.@emg6V vy$CUH}d@dDd8K-u\?W+#ti;NUUzUޫg?K7Ĕ s(s:w}`qc-,/WkWL5 !@XUЀTOc_}4mZX=*ȆM"{!; d-R"(Czuct01^poW)S׵ fÝ+>^6L˥ve)$Nex@5B5=MNɽ*, 4!UUb<L`*_26Vfo~F@#k)Q  Ǎ J6H9 }{xZS`J%A>O,̍? &N3Gļ\]ep{J%ǀAIMp _8KN֪;Q0LXi(z#{^&dX|ptVE7!Bm \Rm>I,$V?$x|OPr GO%ptqZ16Eǒqz|(`fyLt~BBvg v!V}qc1!d}Xg]Vݘ6]ǽw`cMcNz\+_:W[ S XβRrK/) 7o6W==FVINgOkE:`#ǔ5hp5"P3vvRg? C`aV$}iS" *|ܬRѓC7&UH>HX ilcܨr-7p~%f.*G0/\uE8zzj^\@f,=Y6 -9PsA09ݟ;4MdK4<-Q*R+c^ѕyiߢSf5')KDAܸyA2/~\]_ 3>|, .)8][o29Rl/D VywW8`mby\ y>7GjȐ_ %Ylƶyj[Kb!Ƈ3óϐ.F@W=NmVY9I`:XR/mΥӦ <"KJHL:hY\%*EMt#>a8%Zw@rQ>9R'ǜ@Yw9LI?ld @2t^L5G;敷Pz=/P@˨W#+̃8@_p<,8?MDsؿQ Ys?'6rv;c/L?MJ3Q~Yp-pk*x/4"4Жy-fcT>i:6᪣9ް;X;L2$3}\(%S6I/k2ps ӅՓZj D ]aŦIwmKVoµôp2˟k) wjiʓ1YK)SCcE*f7P±Fpab&.lw_ \{yt.]plT(;6?7m0 VC4{.hh0n@0:Ch̪.H}4(˲2w\/)i1IV=AHAf$WOk^iǬ9ndGSNQ{kR2]aQz!RDIH%( 4- B2Llbkɧ}fW q<+󀖨Tn(Ad#|DF݋+o33ɲ? q閂pל-js~vQp֒Bs}dl #O#.jH9RZ.q~~{ʞvÔf-4 8fi- "Md|R~ar! ͐PߘiC //JǾpg|O&7 `*ʯKNA?P*fP=^U`zd5G?(Ӫ$4319*:'x?a>3 ,' 19.(jN׷(D;mx*bn5Cy.+"HT05nqvm{6C_mlۣI!Ӓ[d!ysqޔDCQcI+b.|1[Ȥ_R NC-SL,헜N[p%$^ Z+:y͡?[]UcHC5..ޚ(h=MCP YfurU&|EM91'Aq=67=`tȅs˯=; 3wɾ4A%RӇq^0폆Ӭ_-Fk5(iUtMY 0a=1m(i30;rH:#(0~/G^|+?.Fw53޾Zsb <ߵBpXnKOpGo!d ^*1Fmq yw`NqKyԘ=eEO}^2}%^뇡8v1#{1”'|oc(Bw\sߏQ\l&[J(KM9DhE \ߠG'DI45Ѭl9|@CD~Sy__%OSoFM pT1A{j(jF 6ӫzʻmM,hu5rc]8>bPCfyp迏M''rwIK^ȣxMPnwFB7Af}AuGOֳ0E:o{iLYE5TJ8jjPD[̞@4m'1 ; V Q ƞfͪ˔qњ"855Wy \`W:D]zWId?S IĹvxTwo,CcCL'gB6e㕂(JZWmb'. mrPz%#|eThq1y|y|n0w6-*{kCT;#{iuUP@g6x=d䉧R#k>t?9j%UxҧUC|FL PKbq|Z0BH}ۤi]M-ץV<;%&N8ΏԔ2 {dy c"/ʋQ}ٓ7HoIB^oT e[YZ ︅hw]0v:ԁעBMiO{ rVzUtP棔vFG]ձ^f_'f38 e<+~&bSa\7)%㴅Ah-x}e,·ڧlOٜ rd\\hŽpxa='sBrQ OS'FYW;,}=Km;(Ś.0+);2d.H bWE Kۯbԁ\ߨJ1; .Ny͠ ޲" 6;2*~GK^\ND4Q<(dzL)lWӺ؀ ­9w= shl9LVo䕾0ϋ*6aϿY횿&qo2/۪(b7Cl'lutbPT+01b#FlE6vG1| Dו b=0dRnv*mAhضqI{؊N6e7Q/@ݺwmv0.f G'򡻌}U':v{ r-"5] Ӆ0Ձol5ªL>..(d'jU+)X3g!]$VP(蓏r\&ztdDhdlUY| 2]Q2]/;3#;[Ģgi'ܞ$2ԂF `0eF]9.5_{1'rkCZ䟉k^زvv?]TOaw~~|+%Fh/-Q6(иLYP8YvKNHam20jG?}IHD~TΞhCNuPϮ-4Ԋq'AVJe7xG,[}ݚ4"iq.*`ht)[H-1Î6& bk>HBʶ6h }\a^:=z&x<1 'J˳*FєA vT/Sv|ff &&Zrձ~)~8 ԺfTЄ78x(ҰF^yJU_"q޲nWፎQhEYWi| wz%_J%Ǩ.0@s_)4F}YF޷.eꃃ<owdЀk? \u" i!Ӑ OXn_RHH/kRũĤu][pfGÇR 2:~ZW~Sˇ1y} ;n22П1e'<M{ yn u~RLw',Tjt`Ut"78b\*$.-_/ܒ)rvJ`L|%L`plhPc_Ofsw^c,KLx"u/z2Ræl9Y0Yg+\g7d"uc.鉛*oNoM yv6O,1r=aˌ$1nX• ~R2bU^50[ϏnH˒ q],8H3<98zҽjs R|vtWfuׇz בosǏpͻFŬ l:\Q=b֕xzq7qZtrKQgE,WmK,%BU?9;M%nH@3*чRh  tr_ON<^ ~gYŒ~+?a;ydYa)gelazO.5!*dnQ?Eh53?K>E0SaZ3V~='Ndz9zmwuL!S۩g\3x Z,mǴmm789:wpT0cA\<2I;!]UUځc<:R^.d-Bl (Zv2 5բkE'N އ`,kP:@8lfDDVg<ժXňMTDEEr/c]{Vr Q">Fu?Eծ`g) |RwUUk}C P3kaHj `2(W zf *{z$1'~(sߩ2zm`aVR`Ya=_ MK)@kk^]az+DcDe6V[l)&qk{,5 > f.x*/l-sPF/]Si5y!@Ͼ'\ ʀՁK.OopPK i=1$$$-nuvola/128x128/filesystems/file_important.pngUT ZAPQux EZ{so>?~{~#:;#66୷~d'>v"{:J w{j㮂&˘J]JdpN64} w[l'  YY1P==%ِy5g lzԀsK޾]uJ'CwOnS·,YS'lHzk{܃3*1"3(߯vhVWG4͝)*=MZ hQ7 ܽQp irhu''V33C:jp \[0XZuW >)'̌b+Lrfal<2Rߜ!* Y6?_  =n@ +-E_2A9 ޘ] oE'WZrix7~_I/ Ky/O=_-?D϶'I p1dڥzg*h9ZxDpbd(*&PW.O>5;&HDݱ&%pfݦ^e[TK1`$"ZmQ܎ȻllMU\x H&rw=ߢoFSߧP,~W"gjW[8\a`Kx=ƅ+ȫ[mH/cyhj9dՠjRŚqHNoG(q-x eO |R>DsE~bLL4yPC1fy3 8Urz+\ );HVs++2fn(s~.̠sf+>EߋqrE'O OCon]yqy&Soo&7߇(Ti }e ]|fwa&TU#K&9|#Dޟev3,u%aUJ֨<ŵ48~B5C`h:y{Cyjwdƨ_Ͼ%17Zq*}iAIsnJ8Mzl)Zw22KNE V$MqSv7jJdQ~0r4IĪ*= ɐn+NT+E+.]z15LZ\EGO:ޖ]gm軋7)=Br k1+\y"ʌdg}m-Hh]+#)sx%ę 9] Fqt;@z3[qC,k& C֣7@%S[5d<:?XHSSY!>&Ib&4UZ%O@Y>2"4q䶾l }qҖG%w}≋5 *y5IMt4܇YV[ܡ,,D-V1&B5OUxA0z.xƥSC4Nb!U 5=7v9 +8nTyY }q͏{ZmMU] ػXu SϢr+v;[Al W%?j;nQg[y k&9۩$83oE.9;nBh]%k{-a.ΈNH}24צFr迶0yeu֣gj*r jJl~vy:%[+[0>CY)G>61tnleu̾;#F$*K+ǕLQH)q(/8%. )Oku8BH2Qq#3U'KmS3xy71囪z_߂Ĉ8uxl Y!:cB5DK0a045]{F.ALj-߾$4˜2c###_ CqKåm,ESH?/ꞓTiFjkdM?L ,'e 5+/[#A ѧ9/Y@͞C0 Jջyjdo=ž֬5{XB,qsoԛmRO4 avU]2v=ONv^萹W$ NqBdmsrΪ{䟀(wWAdȋAPͫfҞ'!Tֿ(j[7=Hm:9ǏPwZ: ΘuH7tM0V[5 Ruэ|FY!N#U3/{vo@wT5`oEhCfp}  Lͅ_F,((@z'zp ~#CʎRQGrF䒺Zn×Ȯ4YhP<_X*Ԡo6e=s2tYyaA ui>2 t0%/4e\$V䷊g4xB댄۠9:o51`7C=fnWWO]+k&gWSs)(K OuGp лCU 2BC?q2JۇːQ{EzÜeί XA[P???TjPj#x6iMl/߳#LYhBvh6b-)F*X9:0 ~/x^t4icuZHn~]]?@G#/2ȗ?_7b^ՔzTԽZ#8>W/EiYz~Rb^Ħn!!ŷmCȃ6Â/6 {/Җˋ|}} w3 _nҗ;Dx0Q'N/9iފ+6͒OYvaRxӭ!GњS[HU`Ûȟ:>5^~ȍ_@#сǎ YO& YK߈ZN1~)ǣ !v38^Np9. bLXGof{y/h)u/DX 'ac"'faJ׵&:˓ꃿru5ƭxy3t@|c=tfv _I8 %m+7oKE)oT9'g kN,05Q+Qiگ,p#oMZݮRmX㟉r&qvW|xyȐרKS7v?5+96B=uE2%=ׅfqaXׯ]hZ15X>~l-?2&[= ŀ,Ue,p \W~м\paK4EKrdxu0q:钤K d.P M}Y좊UQgUMQ($S7Z$O]be_lrݫU `&|0s_B؁ZV%M|{D r0ܸr™GxdU49LĒRmBˆSU]:ly53=XB g_, q'ukkүMپڻf1~Ʃl~r59=/a?"97<$#s9)T_''ujUP>*ά$_NDL.M O'kbKb#?E!BadRag5Zߓ#%5ZJ;P~9 YiH8n|ĄM\\QՂiuSvcφ- *E.1c[@Dva=QTzr  W,Ӧ̭U0!:㢧"؍[ܣ{  9}hD14}'d:Bjz%i.1OUuRCCy.<Q VbLyR!6m lRʝ KDI'a:++OCqd%oϸxu[Z3aQ%/swumE/H+ tU `Wmm +E 1ZymA3l0l`Thٶj_[;»7RI9U|q: SA{RU=Kg ѕĥq+o""wdH3Hq~86<:NA1b(נ$pT*32f,,KP3׀fu@qȰQk7٥e|yd "R hMsDҳ'"țgrg0CԨ[;` SxJ12t-)>ӝMaaģU֘ m;(XKw5@~^}dYq 9B ~8װشǛDmN0~tF{7t 4!>W 7`LFzutYI1׌}6fQ)M,% C!iQ[!66G‘K}ڹ̜)uQghuRXat6 x7=O}/]BľvaZ[N9Y-l*934]3̏KU_,-~2ΘeHgݴPjY#šNs?l 1j/;W*wqB|=V,ÔZc,5USvʏy,ɟyb`K$\8dןNUTceIgE>3sY u\8p@ {bdKi%X73"mֈ'Iy]5!́! VdA,lyyA+<ш8=iC34=_wcgJoIy5f4Z5.c0[+C<{ȵcK6CQ=|ЉdЌm*ˎ1+<(THVIr?=ٙ;#S5*1H1j43}3Jf#S#O3A6xx_HfzeYģ0>h-)r8ؐ):.Ok$O>=hasHGM0ŭ:4uV>'ՑG (uڅ TNvP5_/(Cu%2=cǓ֗Xܺ 8#tM&7 ,D`QߡZZY^@O; v |f0Ypy#.(m0aVVZD&JP₿ڑP8K`:hz(S0ܸ1D%*;P;bs0`AH!,L2R:$3JC5mxWg:v[l(*ƆZ;~K)\ z Ov6D?]Tg}o-fxc]mYI)vb>هo_LspC;nG>7CɌ݁)x GZbmnl4֚@ԒU(/:*f;r㒟sT~}9ӌ @? }4֎諳xa.$Amjϯ\.h,(N#hKRZ%#;{ɫ-^m@mzs 7J@7陝x 6:섪>^6ΐQlec3R֒,9֫"8{?ֳ|֙ [|sQ0@$&@&*tԛk}uKmhu}}} )vљCZW[ [)8B\9҆rГ{[ q%Fi~FӚ Os̼e[}vx@!{I[u|@n6{O^= _۲)kN*I9T I\urOW޹2(.v/sL]pZNK?A`Җ҂Y W 4D||@7=e+f%AN2LuPJ6"Wbepº/`ٍ~ p Q诎tդqM n}"e|ۮ8=VKKK~Pܔ1V,37ևyPF--- 8y4&r#lPlx?e0C^><][[Krllaľή|* J0ގyEwqqRPYQ&rJpuxl=U^.#l)PE:Z+=5,+e1{Bvh>cW$Z⾳cӛ9ҋKNq((ȵK8SM4by2eOt^gGED2zLV/h$/ '8-x'D:s柏.xԈ)y h[+=!^?MKO-,C*7Y˟5ogyBң|:Щux HWRҞ "X>Pļ8q&ӝ-NH̰VVN@FP%Ek|b0q(DR^$p0W5oڮERvJϙ/{B1T'CfJY7do#[ww.YB!,FAq/tvp="e爍ɟ+VWfetgHeP%ٞZ6/nTQw O8IM`Cw/#pZzT52((` an z*;s7Y@M;Ok?,[Xo` ;~_j5!}g@!*\ٽ4}ëBk]j-XHLjz ˅p8C[Uwh) ``p);CxW|{KԏYL%LJ4& a55u{$@Ech5W:HxȍZOoA}VJa4A/xߒ(~:7MkK1-X9jʥ} #"#}} G͙CT Zn:/+;Xr`~8bpu9]^'8YhnlfCsc-B.S *qV(-лckH†"T,8Bm$uIFt u Vj2ia %"q}\s<'a8(GtV2_[ZM]:CV5 j &!%#!_s5Ȯ(4 qp%t1SW4 3hѷlk͐1p-\R=;>;+vfdQ#a)u1X>x~?~*xEx,Ow mH8ԛ_eڌnؿQ8,αK ȩZ ƻ$Geo3Y ^7gnp)ZguQt7x1{oaA,Ԩ;[mlKzWQ;GyuII'|5]cH7-L6$O7=T kݑQ'w,3mCQ&e!q:p `d{:g쓙0j kzxŧ6XKXnm[sՃrqqœB'=n`RěVo,t)sS=zu Rֽ{R&guIek]mtn!qvsA[t4̭"a4_[9`cUs7o}!&2qM"+a=kb>l.'iw`<:6;!ӹ 6#=ij\bfsvg=SBBhȨ ܩƔmRrc'0qso> vG**R*+l%v?gXmE4\aO@V=3Jun]4Pd{ÊKEʿP3hc˼܏~.{m~ š]xV:<8``%$S^K=,g6[r h2W_oM:pX7sϥ夑_'Z*z 4][,S'Q_L;m!sT#W9ܸ^Zbo%l*\dhre1JkVo=cp>nea4D:s>O`z]uĊ&Xf/+& 0r35|ynOrT]\LoC)rEcB'qrtAzJ8%?Cү:3EjYj3aO|0No A W)NT]m| > ΰVS>N,ކVηgb-xrFmYI~f$%\ͱ X[@z# $NnnAP 8ei&MMJ)%" 5|ح֍Q#ֈptgF5{:rIrJ.k$̛_e4Kb[)YfM#jz3o)Ѽ>dJ< gϗgia$=v;قC[uٶ}qTunǻɲ~]gI5yɦl2Qɐl9]ߗ /Ws7IH˖jЭK> :rӛ-£Ǣi҉^мw;_1VV gL\$,rsUIKu/؏EI*<4@5F{_WgrjYGVLIuM$XEo3Z ƚ *s/Q0 Z«C Q ߆&++1/84_1ܑZB a$3n)B+QA(U%7ZR[q((ԩr 9 h($= t>_]~o *S藃u=cXDs a&zч_v6t”P>$d}zcvr& o45r܊ (:n˨VH7d%6n' OX/r׸ӣAo7FhVԫ-Uk{l]qi>ƨNMֲ@o|Cj+`?u[2NUzu;ߕ۫z>g( ++HÚF)qP^ets>U]=ci|3RʞY"=YOz)5 4c⮮E0ݚIa⛄:%_PSPPY&ybF̸& e,Qv;%/g ٻ~ђe)=adbOoQ&FDa)Gْ8 FskChqu<.y,CGͣf2>$.ЕQ֘Ӛ⌃ 6GZ#_e&sl8Y_"J0,ʸ3tFzގrSO8-qn\4U{F"+uA6 lH@^X"gu8G73D?=<tvfxHGΣr6|]`X6} OE :!:Z&1$W&vŋxwϔZ sKUWm3]PX{r>Tg5k߆Dc^@ C-,@_%_&Z*Q J<!"4Z\ǖjX9|;-qI8թ.BS74'7]ұ= Z-_jomБCXE?q:d@d"a͝P3nßLkBOOzӒSO .$#.I]sٙ%ӂjie^*Ђ>}vA}so9p+c2ޙe^%x"p^Ӝqc TQhD 9Ш ,!?Z\#70cr)399F5*R:VӧJԵ 57 =ݒ/LDzzg z=}֭)[X0x%ZϢ==m!Nʻk/^zz:k;] 3`ɓ ADTyWy'ٰz%<@s:+Šp>ӕhQu4O0٪T'l1#ٙhšmnŏ02Obחn 5%/c @*FH'.n5|@ [1 Yߩ?7=D5~n&^GW*z3g VwE9S<yy^OJ"oDųDf ߻IU4 [VH,"/";D {;jXvDž֦‘MUkVT@} iPAJ3hd5tToߎ@޾NI0֌ 1ZP wM^V ?2ڙ!$,X?kY䀴rdoȥ7g3ـ= vᅛׄdecM{ҢI$QX[S&:o|͆Ȫ]LEAWgU}^E&+M"F: 7N?ͳni;Xg(G![IBQ2P$b4/12,)z_tn3ґ*r $:9EyGsk\~ب^+RQ1n@3puVǹ; bVcٍ囘l]9.ZqmbK?Ww f+ 7׆)S)cNZ-N5H,E;K?_cL~ˋxD?(P7:cfOa:g}k8^qэ+U l}ʕY)_GIKCyM 9k$|LK*1y=?]Zqe2aZR#c2-.b%i)1++^4B"^.hX78C٦3 N pkVa.ȵ"6Ӗh>tH(.aBj*s>,3Rz)#.BSrKZgk[V$wf9#t!eid}D @7^hgc/| D͌c=l ݑ--ă;:ܳr8i:-j:99Jْ/ڒȡmKۺWǔNK&ea0sLOk;nkLubTBlZ@\xUc#f1G,:Y̊{O<HlWR%ȟ|҂m֘WK.ҷ !b&J -o-PQP}TaQ㡚'NVj^tM*dD6 5m_Dnn r<96qِδXD]FiڱIJ$` sU`a=qʹ֜w]]O7'qFjW"owA6ɞZk:Tc/fIgӾnt-`5u)LSVٍ&f^떎ژc&:tFyYT#V|gBL?A.&n6B96?]`^2i@_xCQAbKEW㛧AUGLI3RD:o( 5g 4uMsNcCM@\?'0UWFVEA@wGVѡj#RMWI]d\3Mwq{'5~hx4^ZdOm޼RM=?Kn KO^agt$6Zݙ[K)#? {L?CgSn׹sSxFr ;}{i%#1cņ-&y \gJ*ǀ= & `v`]N.1:AzL6-%jK{^VճOyNrVy'I܊6 ZD <*tgv o׷ikL;eÚx9 K9.]Gg6}^__?]b Q{L=  yIq^{ߜ=}9#ah +;՞!<}`,;<;^Iz2,IU}LJcbh"Ԫ7{'VUmIڝU"f*פTԥJݝ֊+۪FL_򁍩8bth"A+PibT.Sl!R0 X #X8(5-~;Q@bkWr"}NZIQ6άpm 5B 7h"}Wo|>cke}#õ\scoD茧i *P.V+\ɮX3eCl*U~ #YZg|LHZ}?PKi=1iH8R9-nuvola/128x128/filesystems/file_temporary.pngUT ZAPQux E{ 7RM#wXMZW"lFj-o*Jn!9wfGH.{Brӵڽ|,}YXX6DDh7g[(fj#7]NS}Y9et^,kyzۂ x:膧CTҍ)ryhRNWӥN S|0St/2j]HX7^#1Y7qX5{{!-f(!VFY]FV,H6LwoI+J5 J]׼&!,"͖uO\Y0(mTTwr) aO M- B:;-Q2m/Z7 =8:ڍbNƦpiKse#?g#ˮ 3l5)JTuMlb45FSӏK5DŽ%I~K 5C I"0ogV+3kvˠ Fv}^^dXjᨑS!Еujtdk 0{Y'xVNIS#~uK g8*]\5`e1$nj^j>s+FH߰*׿#%x9[%MƶsG[IocݘL9 Esu^}dC ;84p>2 X˗Q!˽_|h:'xcI}C/-X35PnGۄȀE{̥ZN;L`y{Y/ ]wi;avtc^~!J uIWW0o"pi6 5[7{*bxܤp ks)zz-Lq=5,ېVJbo{_ɳw~8xp.)4R -PȾc SupHz$eDiՓ\WCA ! P2ʗ; vfc?'q;'?t+60WՀTڥװc pX̣&U3lY0Z53@pm jzD@]jCrZAtʖ]DhА09T{UwW'q{} Iڤ䞶/g:*@0d'w4236z2z3ˡl|MzQrgIߜm#}O-};kj/jt@gc c46LE"L2%Yq0eM88f=t!8ф9~O4XD YD}l$(;Pဒ4E_Bzu|ɛmOaZߚ;g*M6cJќWFiؐ M&".8RsݓpL3X-%p=̵_:KN E?4"&[BHxleCmj!wV*AfLx^|%KD!*WPC冨hJx(+0y+{ >鹧,!͑/kw)7M&aƖZQowNJnXp)•DwٟM-*}gGfvm HP)v횠9ͭInEss6mjۛ)!f*:RD>`4,Qangj/qF_ b=ܭy爃jf/7g0rJò+Eۖc!bb3u5lD`eF% fZ )^.$?-+"1j!1[Ed>)l/JX2nJ7Mwé'r?z<BJ&5'Რ=dZge,DAVCPQgЬKAgGv`E NAW{WRȾU*F\{\,#qv=r+S-Y6GBba/l `e)e܁JY]%0kpZWP!O Kzդo٣ WkamFeXy)7?OAr[$ԥP8-ZPi P&|u??ў"Hw!Ɋ3n*7g=E?BL!w05^7;]9X|g۝U@̧MxɽZb#:ԡURerX33hWMM.ܨc+*F}BmE3: Ćox1qat*\0׌K 8==/e_{z5)`+8b'ɐY3JǀWu'Bo9>}GFE.pmw2XX֊c-} y\aY Yh=I}$T >iRpl,a`^sǰ;)§awPUT*_##o&]m!~*ضD=<l==m9ζحSTbK{:NVpOH DRVJhb5)F(b)j`=$cCg+tLr"@7w1jO9JsQ\Y)g@ @v, 5Nn)7MtxB+x]߿ )"MLZA@+˺ةx\ݏH ٰށFp֢:CeS9i'6%PR,[k( W]%d"ӊnZ:yR 3.TwGq\vdݻNI!n:W|Wʞچ )-]!EttFs5\]/9K0uۄZHBt|E\l) p3U{?p(1 Ӊ,j1G߇ŁQV1gN'ɟ>GTT gvƞ?tEVT꽁E%;ZZ1ײYQ63\y5\ج5?!?^W4ܽ/gGʠ Ĝg ,-&QRԺ~د69}si/JP++~rFozϰDU=+7s#;Jrj5_[L^C2͟`CnޅF҃ůK;7nꗝ"&T!WhEKk B?ڙ<;ߋ 726.g1PPS^)^K z rӌX#c7W4uR0R7j.aj`gެGXILL7xUh)Ƭ  N㲥)s#}'/ZL*ߜ) ) jpσ٣zhp|rv0Ѳ6J5MD".zl1I}vKbM)̻݊ O]1_z_V9#%{<}6]Y:lƄ~3+ /eS1"pBjfF#O zu5d47 b.#ZrMqkjعMP?Q='_7*Gp#lM>s uMO*k,}BJK辬/"rF,G`*}i G2~)WI k9º~:PO [DY29oN.q q{^%ed-K!6`>gGy;-6N'Z;%-0nRe"6ܲn0Z@q,z݇a 5Z$L f62au(UXn0@8lxx$LShUAQ+9P!,3#Rb?'\1\?ndEm8k#r:=uG X߹7p?}|^3eD0ssf ?]Cc Kð|r?rO07qV ƄPj!*Uom^y#p4 `uпmuo}Y?{{d/+U k3;6/1qѕ^JwR֬Έc+s{/ u0CdIqdRz6@NQ H{ COUZp[3be.'5Y&4ޗH d/]ywϟ(uoF,|MNNVX IDxAjUߕXo-&rmֽjoǯ^-sX? r4▊ϛK~hqqҭe3[GjkT qD+@|FirX~?QllO T)--W>oe+Ȯ%8A`1C?>bбj,CO)zg[ WP*ov ^+Rp#u"[6^A>_21.I1Z WBQYykh F""O'!gO{۬ZHKF#(#Or?M.t">MN!D<$_}"f-0A9^KXY .!BE`?NR0#+{R\8p.ۨH 0ܤ2<[ $k1qLk< S/NN؛ ) 93ł+{bּǶ Ǭoj}s}3qoT˚s2Y^1V+Bͫ<FxR`ል[X&[%RV.lXQbXƱ@esdwp(+ԙ|YFL[s=䕶W4'0J=RTnՃɹ~:kPIB/0.=kqoz=;2U $/Wa[Pϔ}dt|_16+n/⺷Oyyv5RYZIEN+qQCx9a;C~6`-LSH\f'&<6 \ 5o:o>ka">~Mz:Ϡ"ynkUׯ1/_^/v̌/+KGh ?6v IbZ[~7g^AN4|ٻd^3G`)\Lt+iKn M4^vP"#,n(hPZ2Jϣ1({Tw3C a[֬矢1FqLؤ2%aDm43ׯG3?W`޻ECWqx3ӶƍXn=sbLBNv/jZŒ(hB WdkSYWh@eLK"OS$^b\X`2j"fI㳤E!qK{ekP&Idbŏ%j, &YItQ0 L%waŭ[Ndt6_t>\Q pY q{Qy0qR#UЮTP=lRw+[wל /Hu.+ի(d]+0PaOOX)G$82 Q1θ@Nq1WU23M| ũ|q7ә6wWjwP0f!g]ZYU|1@cq%KiiOY;8㆕}0JhNפ~ZC#qvPqG4@;qb+K`9er/ѾT9!ym;X((mMn]; oPLWv2& 4èU+t)*ZZ2cn\Z dY?_M%v0f3(飡)2c69 `oA!Q^-2z-Ndj C̀X1vqNhq8=YHL2;evgz:+nЪ;̭AhXh!ʡ}Gbŀ'֞^#x<7d79't5DN4bՉyKmM.waEoQW4`z~R{|2~=Z5|3 8椬:mX3ڄ G־xdm?I*U޸qc@'/C]N~Ig%.(Y~G-K\`t9V mkEݗ4UN)_mܐ!7ٶiڑEa]6i7ưjZ+ҩ-}>@Cn\u>|Acd0 Ɋp@ǍQN| VQǮ 3DyyUh)lJG!VcJGh2 #w,8f)'7r\ᖅJ7\-NQ;͵IoڕFrtعY^]Kff=)?5=b&*hN.1bǶI$\T[]L;7>"ZEzÎ(Bl+Wi`nczUim3?Oc]mIN r=TۛBARfQb)߿Jzzꪻܺ>@}{IBqwkzfq;,(@W0U:U$H,|l/XDꯍn&*38FIt3v?T}.v5ü8 2DAnďϺ$}G$%,v Z2~Vg-K ds-drԟfAohGĬ˳=lmmk}>@if+7iR,Q·=K7BW+؉7f7!d/Veyo>n9'8zzx+{W ?ۨa(> %'Jp`&e+;r9a|Y?+$V5 D 8Svp 7 E  dC3YpYA-Z͘Nd7g[Qܵ^%Վ3Z5mPJi3һ!R˗yym1kG(|8'xy{@k vo5{Y~Ii#h#"C420scRu0O>̰d8(t]k2Yj,t2 ZeEY-">m7գ(K :t]"V{G 0"uj "@Xw?D:칔 -Hǩ 7]i)k\~kL9_hzDYNil/+)oڞ͝u`Z0i3x)tgy&6a?9,nfВO4Q E2^NܢW) ;vs®}C:V%' ~WOBjx1{#xhf,!t?Ϭ|lň KhhB+s]CTD.Kh|ڭ9TͲ|60BMT!sfTNUKK"ŹM)/w:`;e \.}Z;3]?b7b,.TN뾭pag0>(nKsR'7G G~\4aGAa-+CгEqZ lX1VKMog8FE+@Ii7WOcrǯՔX26舍+{8v:E[yF:ɪN_"3_ׄʏ9{9r;Wɴ\MYΘg]}Iło/-B?G9rm6"L:>\viڢ#BW 2e ¾A8?M$̠Քc (b06O9*9$%XbGࠔC-[)`VajֻN쬰} JC)ywv}ɼ0r |TY^n22姳%Q6̅3<\wJ] SNLW%pڹM-Y1Xs:f]MX&-1pF~*jj˲1wŃN8&mz_ú$uB5l!82 n󭼦.V`LtI9{[_g=2"|Y`|M5D̿%۠r>g)sf&sbv NpÄpOϮii8h8,_ vjuܭ| ٮ& 3[}"}ysFOP|wȻ6Y+kg4lFW԰8f|&ÔЉЀP7;YGCK!H>&[ȿ?NaBh׀Zr[:ga!mxv[x1h|fhի N"D{,N;6,2 ?J:yzRSIvˉ^$Vv ZO-m8*oxDB#ivcH߫_Oa4-j\JA=ZYxXlaM+1R{T9'{fgr'"˂ဖFJ莋d˅,'g^9OY OZUm)s#h6)mU@I{Z$룠u;U >(?7_7r⚹[l !RuG~!BC!Bq!<z_v'ِ BPnzn<-t$Oiwsy‰X]rDEW=pԘct1M>nZ ;E\\"VNc1SnX(9_5(}쨐`]wdHVsnx 5,~_ (*~@nu-R:T)>ZJ4ňck/cn͕X ~dѽ{SgC}-SLϿF f/J28ke-\6Ecj05uŒC)g.:lXt}8WOΡ̻~?wx_;v4Yw;ln0ym|{@r??ٞw%`F3 0^s`iZE^B-b 50R#QK'Yyi$Y$b96X$tߖl0RRyR-_@ƞ:s.4-|ޱ$LV!9i*c BmIr]&f׶Lpݘ%1asxϘ?L#cCb.%o->[ }_vؒHw?}rʺpճz*:J +f2'_#a\#o("(SQ W!d#Ƴ; fб[wuXH/HO%!4lBpRL"p٫x?8`z`H1xzAJjxXfҞ r>EU-qX[\xXU9p!d`/[!rGpWVpIk}[$Y~ , I 8L}9w@}?eh qii}, \2/ b|rɻϛ_K%b}ε,Y޳_jPwM][Ae`[2TWi$Yy1L): C-V֞^?NJA";;.+AJ{KK^=}sF#9h \ʂa!?ZԊ(&KB*š*  ᬘam-+d(Q)mݵX?"&=#_4ч[@1R9A/F5ir tׅʮ(F 臆 mYߥ*ܤ*>>˛{ z.0},_\p pYeA8ns;J ^vٗ`y ޷wo$O0J~9rRo!&iCK{jzi~q#<מQgn f%$*ocJz 8ʺ te&qFny`zZ3MP\}[^&n$>wٺFu6&pq۰ 1VJJJyK~҅=S kӾxs`*--8ls' [TN@,Q:|#k_oE޷oE0=Lmw6CރC=LVI> Ca ]B!F{p皼[ A[2qzE<yqg8x*&tjO>4p}^};.|EXd 'ԐY }l.ے,yԗ \^ODֆ܆hjQEʙHIh@QyR!XwIN2t塧ϟG@vv˽uJb'j4>.¤BT3Dx:V!JA&D~^( > Hߑ^"3S 3*8`*hȠ&޲ Gs𗁫+-g$Cd'H Nx(^)jf K'7L/2m;_O!IH մ#2UdI2?V2i]Eb콞ْzJRTzz˔VS1_"/w[b(&}mp%PK.e=1a?0zJ!K%nuvola/128x128/filesystems/folder.pngUT XZAPQux u|wPS_M!PPHIBi6iIT*4!4AtPzoIL;Zkɜ4gG[~^i^Y썔HkO"%@e!W߽R֞#\ a|\|^ 0W?}Y oSCXJ G%Y >e =@b%~WH$ϣdSXmMrׄaw7Mb@; #M+SP$/.E\MK{Q|^#|8 JI-b{wsTSn lkgE" V(߉ Ъz'sg$WxTePM!ӛ5_}4Wőx̋4ބ 8)#.IHDg&n.?/ {L㶲@^Qh{M<=wqCƄB#эKm TP(t~ׯPϠ޾-AwF:@ƼI[TH#Տ^n^o&Ml17!hMSa ^!\;\'E߿u(+6{@<{TA,jeHj:#"FTw323{N~b.OeA#& #"tVK!##Co@fL6Aoa9m[`zaKSLݭÛt-Eѕ&c( 0$ڲǏkв`&&\rj ,["m(n)^t kiLS9 PG!=;nuYQHl/u _ +͍_vAL*M|[K.?߈j{%G mA!m=j܉c!54 y810hߓC=oˡXJ(p7p󄇇 UOzիWM=+U5W w[ xZ7G/ >3;˗O*&ten8nY)c[Oœ>ZH-ĿwȨEh[/bfwݸrZP!WϜ]JoSr3&A ttt-jo%y9UڒotU{{t "Dh{ HŌ}%'Sx6eg(Άn'DQ, Puv[,+'r{phndΕC6+{4qHL8/Nvʒ&?gth3?676-Ib2;*lFnSt٫m;%z3u0E#u;\}-Fn&z tj|~~~I(/ RD`20mmAZAHm_h|5p^>fĖ?.p*}@O-onOWCqVMVS-tSW@߃OMM1d-Gl!++b|\7n# X#wdp=[@_b%.4#FN G䤞.XRP0GBApws5-Vťz/, odt-,-?m.9>4)7{6ܣ>m|l浀g#Q⫯Mq*GQZ&o x[#e? Ť%'Xѻv"Dڏ֖hʴFd4/dP$&'瘈SM=d/z^<  s6 xٙ !%2;bs((C8̴BSA*$9#X=  RK8oi" WxG8qb9 .Ys2p.ܐg/P ^@cGWeM%h-2{5Yژ?,8& &/Q]]RM,B(7h?_Rz6B5i@Sa1=..7D" +oޠ{7' Xy} w1H564kC_8ڼN|OlçÕGzTwe6P<=UP7Q 0^'׋WE@u\ iv6lS"%#lV,IPav=r3CM%Dܽ$ x`|\]$wQ$]l\ VFv9u2yR{٩bx]sC0B]* *;Tq>)8&̷]>m!gmo%*&a=MuU!@žLJs2HXƬ*['!2@Mo"{*ƄFO>}ƪ3#(xlѱ;D} T4ҩٚcR'K}(C3-Juωn^>ҸovrA8be2gfV$ Ɇ{[ynSd/9CYD=yyBfԌa2b6cuw>.evן^(g$t{m;|zKNU!~YdW/X+^]i w+ۭѬ/~~gf+dBA_HTC .oqρ>VnT;:Z?{\8uV1ӵD`\J}%b+upĢt'jkeHiqcIJpaοQPN Hݝ/1jS4Lӧ pWԽsZa6r l+ڹUW8^4#QZt/hzt%qLgo>iQewlsS*'OnE`84d5I=C?ʌhYɭmN{}e܃Re堣@kUDT1@=o{#?N K^H<^ |6Q{=U5_4&{5 ہQzӅ޿| ]`;VDZSswޜB!K 9 )C:;c!j!3{3fEA eM*7$,U|XZs%GX8V,j%ZWß~RSyb+Q\5Fq*I A}%cC#ls544{{>}e"bһ4zZhҮD/ɏ5;[V:ym r7K[Zݻ>8.ETeˎf>ԴN1ۄ\ 3FgSkjVMRm6xynvl檵CH{b_X]2l37OG %@\]<%Z/>G##9BF~cw[| LhLz!kNi2Kj[ {˥O ;I~=O2ݎKCSȴKSe*SLGcvicbjUB!Բ,,H^Bw"@;>6瀉#> 0o0!J "Ѻtu"JN78^tVYud&v2u@mvf}^[d\ۛ1{;?vtK+f.3d+mqc?.7|p`kw}y2}ACF=N Px7(CS{ଗp#S6z$V)CÒcGŗxؼ'MtsŴ@)>=4T9y%g 1VOҟ*Pô:s`ji|Ypap,oݯgsuc Ns݆jw3@սձꛎ5USSY)2#79}s麘a.h-L-~bWo* > pBIrFvw4Tب }qu0ٸ_4Ǚ6ķ~UHaIi]ХN;JaWQR7s艟|閉Gdə>k_ duR+?\W6\/mDO7F6/هܚʹW;0$gL>Aio$³{Y(R4'A'}V"NtG?U4ME"k%׮7A])ҙMSߛ_4۹.p@oY{;B ziecey|?hr_RU|jn rMHW VMvwTPv-//GDvsS541JQwX#~clˬ128*׃tWzkB1ς->ǏH A9JN`+@wR^u+ĥs$vgMcdycY/>a}ԟ2HLr84o~U'Q2% tQiW;z ={NAPKD\=Fn:'Q\ZJx=SY D GUN^xo<o8[s[Vs=Xl7ԗV Oʫ?6Åk J_mǎP=@y~qõ{uۃD+?$He[M)3=m 2sӃW]}0my-oC]P/6%sJ3&!zƑo NF(4zwA_ D^ ^kcKtIb9TzɚҏvIZtɅ kTlz "w 6̢d;~oilrx[<8;CO1Dк;y˿?8ՁrM%kR:ԍC0ٿ=/ߚ=-_:m"J.ØI R}df/hS'pޱ$;|C~[GyC{Nfx^651G{;e? ֲi;R7:y,-pZX;٢!N Y~]TTSmEӓ`{lُ]nn͝AlŗJ<2kQUKy&Ef?oL$d}X+춑Ļr|cK{oX Ƽok/.L$ D٫pt1fT! GjZ$q٢BJkҷr󸇐 D*ds@|IH/~I\^XN D**;2$4cLyF 0fA$-VZ#$MG.(J6؆ma{̱Pgg|*L\J˨# Q]@sQ斍b߂ç!DamON>FiIřZ< 9':D8|>'ivU+T-Zu9 vwkE:?j<ќFSY,%|%|*iOtDt![ yQ:ن +?eO+odC"6Y"&[t?' @xLZ“4%:}n'&HNfKc1_GaMˢ0ml$Lv?31TFM}yqFgp$3,~A9A4mƭNV:"/4#+4xQ񾰭z̓S*~Suk0R H~hX+ b.[GV|)g!fV<紳fD>-L}3ɘOJ{^V~^c?we*pGupOTGW{K E0f7437(K#w`QĿ-ѹүByGG' B퉺~O]NN.92[l_'L83_J[w\Rٟ/z];|GWzB {HQUޥ kt.^A$8_E^!@޼1 V!?l/\4@1{Uhw関O"gKBk) hbZp5~g +*G&<];׌.' n$phF>G?e -lpҴGˬat.`%3 2{R3c}x߅#ڐڛb]J{"O?gz"WA...L<O+p&)e~9P>%̧^A|ߝe__mwNL&/pQiZy |,ձl)h\Y|)\)娳";,p0%>Yj14Nҵ\gv񵨆ehϜ CqQ5]vPc?7L0趴*- TܽRǃ4^{]#ف?6C^} ھ@܏T:zIvcsB[%ۻ*V@/'δ }1lt* ݕsY_s^/ kO9vX<64J%F%JdEXtwNrR^Bv!꒔7QVٹDL6Gƽ݌M1`^6^0}GWVFۊެjE-XpY21Vߥ)rft#bN#S! $4/0R -PA\7eݞx66ȱΞBKk,@4+jcO9gKB[0lj$#4;WcZ%H=BP8%t! ZR v0ynHvM'j셄a0By OUL_c;~ZV$Q+.Q#itu/T% /":@eNp&1C2 <K+~'PGO B*2$wu'h'3N^7>>M4FGgBJ%ML`8:Ŏ,W?LIJnY$LhK6sjZiiKjtMϦw s2mhΡȔ0~K(0L-)ao Fwxn`@ m|v֐y J{$y]GQs1=NC\?JN9搒w$#)j&%譣gaN3Ε:_kSo-<Ce6yFNNu5 Ubd)σU$2&.8N:ܨEp׸%-eR,k5 "E[ mj}ďJ~P\v{8߭fs:-(+YL܎to'5Ȅu@~H0L]бN}w?[.!d e\nO(G֑X]ks>_o~(ܫW SM9ǂ?JO@a@:Vg-ݏc|C^~U[H=^9kxw\ő\.ʞ,ùH)Ħ Ǹ1`=ma0ϫy+8G6S5Ŵ'JΈ!UO6%YU|1l;\m$!`h{*;VT Q;T0=q #i5>z]$N> L.z/+SU5C*_K}(HaL9S!GZ칲OK;- IԽ_U[v<=B.KJ~ezƘ&!XUN oIҒV\+Wcկ^ϐ8~_{ugіD?SV=aZ 3)/W&{xs uc&mam<:ƈaӊK^Q-;ʊљzGO13p%-o7wƟcͥ4ܛ7*gs? l.X B4e鲌g(bz9H:sL7 ާܻ[~\sQR *!7̦~E?(U/S2UN[{V/]?qbOEJIN+뇰]`6bĖۣ|buêk<0egdH /pޥkOo^H/>Uvq(<'%~<1NVpIN#}Kg}UU h3vt##H1I\ di22sOd۪=NbS(XėA*S!2Fӓ}9#L]4O} _ȩBCH*\Uü8Z*fz +ɰ-4Fj3K*:rt‘Ұ29Q0!kXE洎3DzMtmhͶO'& sn<}rJ帺t+fiq2ck#6>g݋R< |>{C#"SYl gZ~v\}0*V6Tc t85O&wZfBWaڷ5Uްw*Ȥj7?glT)WoPߝ=n?aY,9IWu:L>i(/׃@3}͝BYʇI5U bi#uW]([*o>9XO&[a|#xPv0h- ?v:ut/x7|+7o3pQR\{29 _EK}O_K䑩Rh!ʜ93\VQUY;kESx/v3T/%:䳵пBVof5[lh#¶G45G!7㲐imL^0"< e[og\&}nM>)*J e%E-r,>êo#W@I#*7\CrGr8Bzr_B냐Ep|mFq_)ף={+u?D7Am]5;e2(yZh,ҁoɜ&35A)Nu'WDL߸\>{b#Jsz[9D[⧰,k; -UVFdMy? C?IN=z3ΰb΀3ZՃdF8|蝎; :ZJZG֎`4Rx|g[G:yv<9-|9l%xC!O4N8Y9ܞxnSv>GQB^VgS8IȎ?Cܐ8eYEs.<g.lmSC2/> :2>X4lk So%%n5'haQ Lݓǥܻ?~ћC09;C{]f{ =k,)x ғ gg!'c*! 4K_lFdL(i&?UzDSY)0Mf}GB>`p#U/ނCỈBߔs ԻKh!U~bV5uG'D ^ȁLHV&>L/u 1e3Ҫh瘑)鷅Mo@3sU_TIrdMdY11βH֖K0ي.NfXuwr,Lg.V@N;V*@>~&Z|]9V+gJu(@L/ r;fBC۰߷hZTrfNzIlz썯7neƭ2EE|XQxyi J87zlTJѳV4"Zg$ #Qr| =l\_nATnb6-ETF>esoBSY]'=As;r#:WS5ٱ, f"e5*vxP:]'U#aq 3"tϟzg_`3{q̀';3L3wKu_ǎZ#;U5.f.O#o?^^c/? iW(;uFLɈzvQA]y]|=jҴ=9܊Iz ]떶w- qͩA'1~%pKR{9.tG1T 㻣 7Q4 @i^&\J~d<7f0m)I찉NQ.xLo/^yݢJ5~}3ѯHJ"y3 Yd;"(컅jBq#9T=njt_DazhG[k+KSFx{6()'MyVW<^$LKy2~*Nf_ Sؕ)$ Xd;sDq{)%wB~62 ZDTom'65m6[0\;x;[Dw"]/`wdbz_H?8.^Q:sUe+X`wrI۪rICIEԸ@.w1 kYC,+cv6OSj]ʭϖ8`lTO7ЦMk[ޣ(jxΟ/?]V0T1 =|<&7=/K, wdV4b lb; 1uɛ9!'|!zy:x ʢ[g a.sgKpևV|i9Zc*@Q߉cc_$BaQ.7M M:q` үPsבhM)k;SHnz O-WŠ"i^SJ&i HBT@eWmSut"=,zAս41In P~ڠ!("zBulaG-Hg糠҄I{j1^ҿ _}KN_ VUY%s)! z{ߦM6:piAHk=A | p,{xpT-߻. H+Y~5up?3&|#7_uQ(>άCH=`üt m9gQ7kݤyVDGƮɿriNܰOO_Q*'IzpgqdL?|"{+b͏ ~%~B<L]caV߂E~9%w&p)U Ge.A*i*ܙz䭬B@!?LnVGre;iKv(κ4k..:)p^L?d{z g<G57'mny\&b*-/ @+*-܀8{lSl r .0c8JˋBi@cw xx) ִ /Tk"BM/}ńQ9bk\[HJP\g%Aqe2dvC$?0B 8Úk2nHU>F3Cyiϑ:bپӶ --V}*nqq@a?ΒL. Ӟt1zTV&RbT&&1I3w< Y7@Sӂos04Sĸ -E(GeY0,+L}KLH&UwpsaG$znNBB> ߅LTş]9JjK~g+ [h7`mի(Դ$JVQP Tfu#.6`6!N6?WCSzAT9/?sw0{l҃}oSf`׏߾͐K{&RYy8Bk8m+>Ȩ_&.C窓W4FK Ze)Cttb}8н֖EiuS^$X̛ 3ͫ"<@[QU<6b"yӌB-G]␿|^wkqbsln&tg jVuӟ"P jw,$e@**(%~bvKH)ԁWa%KKsĝC5VzYAc!8}@ R<9@Ƹ3u,ss r6*rpMJl>=Vd\NI:֐x'{"p"L vd^nuGD4lU_P!,}`Q/svAʨPFڃe} ǧdHkE|ˋR +([ú8W0p-ܗʉ`ݫ8滱1*62KDy\,"imeD&V=6!`yGxvsA!Bf?-JrYHݜoK=,LNc,(>1̃Y~".:.(bw. ? Ym!ܗ_WȴͯOsM{ z8bL+Fj(N8yLV4Ѫy!W i1`PSe̿0A3W3p=W0%'F I~#z7ڹy<Ѥn{bWeN=Ù fƵj82{QZSI|kq7VwIMv<[B=.|$xu}:Ij}u=^J;' UZ^a92ma$eN_r-ƫJR+h{eћJ~jAFCt:9*m]^5rҤ; B v, Bz~,_/ha"+'qѡ)_ )}σ΀P;?W{mBӞAGAZE_Aj|-; XD6ޙ-]Euhd/S$`O4=b):.!v>q$X0+ )HAiX v|| . K7Y2= M?7?سGJ|[0m2$%aj%-nuU^~ٿ=B{̄x2CJ8mH @\ANʴ9FXBHhIH]))K|N1<"0(rhZ$Qd\3(X62[+pBIaYה;rBfXݖ6e =@b%~WH$ϣdSXmMrׄaw7Mb@; #M+SP$/.E\MK{Q|^#|8 JI-b{wsTSn lkgE" V(߉ Ъz'sg$WxTePM!ӛ5_}4Wőx̋4ބ 8)#.IHDg&n.?/ {L㶲@^Qh{M<=wqCƄB#эKm TP(t~ׯPϠ޾-AwF:@ƼI[TH#Տ^n^o&Ml17!hMSa ^!\;\'E߿u(+6{@<{TA,jeHj:#"FTw323{N~b.OeA#& #"tVK!##Co@fL6Aoa9m[`zaKSLݭÛt-Eѕ&c( 0$ڲǏkв`&&\rj ,["m(n)^t kiLS9 PG!=;nuYQHl/u _ +͍_vAL*M|[K.?߈j{%G mA!m=j܉c!54 y810hߓC=oˡXJ(p7p󄇇 UOzիWM=+U5W w[ xZ7G/ >3;˗O*&ten8nY)c[Oœ>ZH-ĿwȨEh[/bfwݸrZP!WϜ]JoSr3&A ttt-jo%y9UڒotU{{t "Dh{ HŌ}%'Sx6eg(Άn'DQ, Puv[,+'r{phndΕC6+{4qHL8/Nvʒ&?gth3?676-Ib2;*lFnSt٫m;%z3u0E#u;\}-Fn&z tj|~~~I(/ RD`20mmAZAHm_h|5p^>fĖ?.p*}@O-onOWCqVMVS-tSW@߃OMM1d-Gl!++b|\7n# X#wdp=[@_b%.4#FN G䤞.XRP0GBApws5-Vťz/, odt-,-?m.9>4)7{6ܣ>m|l浀g#Q⫯Mq*GQZ&o x[#e? Ť%'Xѻv"Dڏ֖hʴFd4/dP$&'瘈SM=d/z^<  s6 xٙ !%2;bs((C8̴BSA*$9#X=  RK8oi" WxG8qb9 .Ys2p.ܐg/P ^@cGWeM%h-2{5Yژ?,8& &/Q]]RM,B(7h?_Rz6B5i@Sa1=..7D" +oޠ{7' Xy} w1H564kC_8ڼN|OlçÕGzTwe6P<=UP7Q 0^'׋WE@u\ iv6lS"%#lV,IPav=r3CM%Dܽ$ x`|\]$wQ$]l\ VFv9u2yR{٩bx]sC0B]* *;Tq>)8&̷]>m!gmo%*&a=MuU!@žLJs2HXƬ*['!2@Mo"{*ƄFO>}ƪ3#(xlѱ;D} T4ҩٚcR'K}(C3-Juωn^>ҸovrA8be2gfV$ Ɇ{[ynSd/9CYD=yyBfԌa2b6cuw>.evן^(g$t{m;|zKNU!~YdW/X+^]i w+ۭѬ/~~gf+dBA_HTC .oqρ>VnT;:Z?{\8uV1ӵD`\J}%b+upĢt'jkeHiqcIJpaοQPN Hݝ/1jS4Lӧ pWԽsZa6r l+ڹUW8^4#QZt/hzt%qLgo>iQewlsS*'OnE`84d5I=C?ʌhYɭmN{}e܃Re堣@kUDT1@=o{#?N K^H<^ |6Q{=U5_4&{5 ہQzӅ޿| ]`;VDZSswޜB!K 9 )C:;c!j!3{3fEA eM*7$,U|XZs%GX8V,j%ZWß~RSyb+Q\5Fq*I A}%cC#ls544{{>}e"bһ4zZhҮD/ɏ5;[V:ym r7K[Zݻ>8.ETeˎf>ԴN1ۄ\ 3FgSkjVMRm6xynvl檵CH{b_X]2l37OG %@\]<%Z/>G##9BF~cw[| LhLz!kNi2Kj[ {˥O ;I~=O2ݎKCSȴKSe*SLGcvicbjUB!Բ,,H^Bw"@;>6瀉#> 0o0!J "Ѻtu"JN78^tVYud&v2u@mvf}^[d\ۛ1{;?vtK+f.3d+mqc?.7|p`kw}y2}ACF=N Px7(CS{ଗp#S6z$V)CÒcGŗxؼ'MtsŴ@)>=4T9y%g 1VOҟ*Pô:s`ji|Ypap,oݯgsuc Ns݆jw3@սձꛎ5USSY)2#79}s麘a.h-L-~bWo* > pBIrFvw4Tب }qu0ٸ_4Ǚ6ķ~UHaIi]ХN;JaWQR7s艟|閉Gdə>k_ duR+?\W6\/mDO7F6/هܚʹW;0$gL>Aio$³{Y(R4'A'}V"NtG?U4ME"k%׮7A])ҙMSߛ_4۹.p@oY{;B ziecey|?hr_RU|jn rMHW VMvwTPv-//GDvsS541JQwX#~clˬ128*׃tWzkB1ς->ǏH A9JN`+@wR^u+ĥs$vgMcdycY/>a}ԟ2HLr84o~U'Q2% tQiW;z ={NAPKD\=Fn:'Q\ZJx=SY D GUN^xo<o8[s[Vs=Xl7ԗV Oʫ?6Åk J_mǎP=@y~qõ{uۃD+?$He[M)3=m 2sӃW]}0my-oC]P/6%sJ3&!zƑo NF(4zwA_ D^ ^kcKtIb9TzɚҏvIZtɅ kTlz "w 6̢d;~oilrx[<8;CO1Dк;y˿?8ՁrM%kR:ԍC0ٿ=/ߚ=-_:m"J.ØI R}df/hS'pޱ$;|C~[GyC{Nfx^651G{;e? ֲi;R7:y,-pZX;٢!N Y~]TTSmEӓ`{lُ]nn͝AlŗJ<2kQUKy&Ef?oL$d}X+춑Ļr|cK{oX Ƽok/.L$ D٫pt1fT! GjZ$q٢BJkҷr󸇐 D*ds@|IH/~I\^XN D**;2$4cLyF 0fA$-VZ#$MG.(J6؆ma{̱Pgg|*L\J˨# Q]@sQ斍b߂ç!DamON>FiIřZ< 9':D8|>'ivU+T-Zu9 vwkE:?j<ќFSY,%|%|*iOtDt![ yQ:ن +?eO+odC"6Y"&[t?' @xLZ“4%:}n'&HNfKc1_GaMˢ0ml$Lv?31TFM}yqFgp$3,~A9A4mƭNV:"/4#+4xQ񾰭z̓S*~Suk0R H~hX+ b.[GV|)g!fV<紳fD>-L}3ɘOJ{^V~^c?we*pGupOTGW{K E0f7437(K#w`QĿ-ѹүByGG' B퉺~O]NN.92[l_'L83_J[w\Rٟ/z];|GWzB {HQUޥ kt.^A$8_E^!@޼1 V!?l/\4@1{Uhw関O"gKBk) hbZp5~g +*G&<];׌.' n$phF>G?e -lpҴGˬat.`%3 2{R3c}x߅#ڐڛb]J{"O?gz"WA...L<O+p&)e~9P>%̧^A|ߝe__mwNL&/pQiZy |,ձl)h\Y|)\)娳";,p0%>Yj14Nҵ\gv񵨆ehϜ CqQ5]vPc?7L0趴*- TܽRǃ4^{]#ف?6C^} ھ@܏T:zIvcsB[%ۻ*V@/'δ }1lt* ݕsY_s^/ kO9vX<64J%F%JdEXtwNrR^Bv!꒔7QVٹDL6Gƽ݌M1`^6^0}GWVFۊެjE-XpY21Vߥ)rft#bN#S! $4/0R -PA\7eݞx66ȱΞBKk,@4+jcO9gKB[0lj$#4;WcZ%H=BP8%t! ZR v0ynHvM'j셄a0By OUL_c;~ZV$Q+.Q#itu/T% /":@eNp&1C2 <K+~'PGO B*2$wu'h'3N^7>>M4FGgBJ%ML`8:Ŏ,W?LIJnY$LhK6sjZiiKjtMϦw s2mhΡȔ0~K(0L-)ao Fwxn`@ m|v֐y J{$y]GQs1=NC\?JN9搒w$#)j&%譣gaN3Ε:_kSo-<Ce6yFNNu5 Ubd)σU$2&.8N:ܨEp׸%-eR,k5 "E[ mj}ďJ~P\v{8߭fs:-(+YL܎to'5Ȅu@~H0L]бN}w?[.!d e\nO(G֑X]ks>_o~(ܫW SM9ǂ?JO@a@:Vg-ݏc|C^~U[H=^9kxw\ő\.ʞ,ùH)Ħ Ǹ1`=ma0ϫy+8G6S5Ŵ'JΈ!UO6%YU|1l;\m$!`h{*;VT Q;T0=q #i5>z]$N> L.z/+SU5C*_K}(HaL9S!GZ칲OK;- IԽ_U[v<=B.KJ~ezƘ&!XUN oIҒV\+Wcկ^ϐ8~_{ugіD?SV=aZ 3)/W&{xs uc&mam<:ƈaӊK^Q-;ʊљzGO13p%-o7wƟcͥ4ܛ7*gs? l.X B4e鲌g(bz9H:sL7 ާܻ[~\sQR *!7̦~E?(U/S2UN[{V/]?qbOEJIN+뇰]`6bĖۣ|buêk<0egdH /pޥkOo^H/>Uvq(<'%~<1NVpIN#}Kg}UU h3vt##H1I\ di22sOd۪=NbS(XėA*S!2Fӓ}9#L]4O} _ȩBCH*\Uü8Z*fz +ɰ-4Fj3K*:rt‘Ұ29Q0!kXE洎3DzMtmhͶO'& sn<}rJ帺t+fiq2ck#6>g݋R< |>{C#"SYl gZ~v\}0*V6Tc t85O&wZfBWaڷ5Uްw*Ȥj7?glT)WoPߝ=n?aY,9IWu:L>i(/׃@3}͝BYʇI5U bi#uW]([*o>9XO&[a|#xPv0h- ?v:ut/x7|+7o3pQR\{29 _EK}O_K䑩Rh!ʜ93\VQUY;kESx/v3T/%:䳵пBVof5[lh#¶G45G!7㲐imL^0"< e[og\&}nM>)*J e%E-r,>êo#W@I#*7\CrGr8Bzr_B냐Ep|mFq_)ף={+u?D7Am]5;e2(yZh,ҁoɜ&35A)Nu'WDL߸\>{b#Jsz[9D[⧰,k; -UVFdMy? C?IN=z3ΰb΀3ZՃdF8|蝎; :ZJZG֎`4Rx|g[G:yv<9-|9l%xC!O4N8Y9ܞxnSv>GQB^VgS8IȎ?Cܐ8eYEs.<g.lmSC2/> :2>X4lk So%%n5'haQ Lݓǥܻ?~ћC09;C{]f{ =k,)x ғ gg!'c*! 4K_lFdL(i&?UzDSY)0Mf}GB>`p#U/ނCỈBߔs ԻKh!U~bV5uG'D ^ȁLHV&>L/u 1e3Ҫh瘑)鷅Mo@3sU_TIrdMdY11βH֖K0ي.NfXuwr,Lg.V@N;V*@>~&Z|]9V+gJu(@L/ r;fBC۰߷hZTrfNzIlz썯7neƭ2EE|XQxyi J87zlTJѳV4"Zg$ #Qr| =l\_nATnb6-ETF>esoBSY]'=As;r#:WS5ٱ, f"e5*vxP:]'U#aq 3"tϟzg_`3{q̀';3L3wKu_ǎZ#;U5.f.O#o?^^c/? iW(;uFLɈzvQA]y]|=jҴ=9܊Iz ]떶w- qͩA'1~%pKR{9.tG1T 㻣 7Q4 @i^&\J~d<7f0m)I찉NQ.xLo/^yݢJ5~}3ѯHJ"y3 Yd;"(컅jBq#9T=njt_DazhG[k+KSFx{6()'MyVW<^$LKy2~*Nf_ Sؕ)$ Xd;sDq{)%wB~62 ZDTom'65m6[0\;x;[Dw"]/`wdbz_H?8.^Q:sUe+X`wrI۪rICIEԸ@.w1 kYC,+cv6OSj]ʭϖ8`lTO7ЦMk[ޣ(jxΟ/?]V0T1 =|<&7=/K, wdV4b lb; 1uɛ9!'|!zy:x ʢ[g a.sgKpևV|i9Zc*@Q߉cc_$BaQ.7M M:q` үPsבhM)k;SHnz O-WŠ"i^SJ&i HBT@eWmSut"=,zAս41In P~ڠ!("zBulaG-Hg糠҄I{j1^ҿ _}KN_ VUY%s)! z{ߦM6:piAHk=A | p,{xpT-߻. H+Y~5up?3&|#7_uQ(>άCH=`üt m9gQ7kݤyVDGƮɿriNܰOO_Q*'IzpgqdL?|"{+b͏ ~%~B<L]caV߂E~9%w&p)U Ge.A*i*ܙz䭬B@!?LnVGre;iKv(κ4k..:)p^L?d{z g<G57'mny\&b*-/ @+*-܀8{lSl r .0c8JˋBi@cw xx) ִ /Tk"BM/}ńQ9bk\[HJP\g%Aqe2dvC$?0B 8Úk2nHU>F3Cyiϑ:bپӶ --V}*nqq@a?ΒL. Ӟt1zTV&RbT&&1I3w< Y7@Sӂos04Sĸ -E(GeY0,+L}KLH&UwpsaG$znNBB> ߅LTş]9JjK~g+ [h7`mի(Դ$JVQP Tfu#.6`6!N6?WCSzAT9/?sw0{l҃}oSf`׏߾͐K{&RYy8Bk8m+>Ȩ_&.C窓W4FK Ze)Cttb}8н֖EiuS^$X̛ 3ͫ"<@[QU<6b"yӌB-G]␿|^wkqbsln&tg jVuӟ"P jw,$e@**(%~bvKH)ԁWa%KKsĝC5VzYAc!8}@ R<9@Ƹ3u,ss r6*rpMJl>=Vd\NI:֐x'{"p"L vd^nuGD4lU_P!,}`Q/svAʨPFڃe} ǧdHkE|ˋR +([ú8W0p-ܗʉ`ݫ8滱1*62KDy\,"imeD&V=6!`yGxvsA!Bf?-JrYHݜoK=,LNc,(>1̃Y~".:.(bw. ? Ym!ܗ_WȴͯOsM{ z8bL+Fj(N8yLV4Ѫy!W i1`PSe̿0A3W3p=W0%'F I~#z7ڹy<Ѥn{bWeN=Ù fƵj82{QZSI|kq7VwIMv<[B=.|$xu}:Ij}u=^J;' UZ^a92ma$eN_r-ƫJR+h{eћJ~jAFCt:9*m]^5rҤ; B v, Bz~,_/ha"+'qѡ)_ )}σ΀P;?W{mBӞAGAZE_Aj|-; XD6ޙ-]Euhd/S$`O4=b):.!v>q$X0+ )HAiX v|| . K7Y2= M?7?سGJ|[0m2$%aj%-nuU^~ٿ=B{̄x2CJ8mH @\ANʴ9FXBHhIH]))K|N1<"0(rhZ$Qd\3(X62[+pBIaYה;rBfXݖ6eQv>Xkq_=v`C|8N"/p_FljkOJkڐHA'P[+,D'%Mg0L˜[A[@)Ȯ#O P-j?jlLQ/= Hm?H5"0l&WQ9$t,^eڅB }?˳gr &7Xg05}:0 s݄AWnc9_xG0GeRչ`_I $b :#L~&y nљd t̑4-KW+oN Z݂JN):ݗ-A׻2dϝA(>lohcp:RLsTvqSXʈ;23Ӏ}퇪+dN}+ʲ/.FޏSֿJ*QY;A2C$^L<0v K9 pVZ 2®.S -#H{@'_+Lw}@v'M KHIL: 1Qum62Qow^_?en#5h}C%7jDjc%aLe igԼJGÿf-/G/~/}?=>*O:9 '͐6J:}zٳGYLraV\Zõ-Vc-:RG[u?k,HIN4:D<C6^ImIą 2 =>LҺ6WL(=̟֋wkqD,o5Ri 6*Uf@i3TzLCVimѿV,@T>2R~{IĩxQf`wcEuSKRjR47$vwȦ駱A!)Xl39ǜц]_q#W`z89] d*|wYc:B7ս+Ge^rc[:dR>Z b-]o{slCl>8dv[ ( >5).ޜy|쉏d_7 5,[uXR|Uo" 6]DNv"1-8 ݗT;{W燒$;r/nzּuFZuorS*%r2S5CDs=_-CE>E?u]~iQ6HqzB loU}Z_d W ЋR=}3FKe L~+Ce7- 4@RiC Ӊl)eWZ7)ZEyfa[ t7c76uTK+kb <)U?q~+^TQP5ZΆ)*[6]Bz u Y!E uw0]?gÖe# NmMO 2V ~*c=bd Gzu%$Ah$miZSc&&nA3)}޴E#Yb%}[eܬqVњHVuz(2>Qsx߱ec jxdԋ?z:ΞBҭkCtbܕ1%z^]l &gל23 4jJl߱c骖 qSRg^$'? yE'XǷc#( k.}j`o/jIBob^q.lZ| ziX}g󦤥bA0e߫| ;DJs[]%: oucUUpnT-”~PcGX zC P7"0RJ~[@M ]I9lB2a*F uۣZh_E{EKjdg|VޭG:-fa1KB"CEΕres>ѽʈ> [ lXNS {&ge_B{Q9ʑ!*_$-[''X7ze\ * ]T*!{rz9ēWC*?WJ`/6NKx'\PcFc9yNz#73/*=#PrI,p -vt%+P}طn_O; 6?~{S'gՈ$",G'CGi,|b; +H}>;mPа8#*NF L/cKE:2`5;Ia\9Am /YG@"`zrV0$Q}ro:زYgTw+h*)GD9ShCq9OxElI, XqVڛtu[M%K2Ƃ㦀^;8##A>';Ҍ޵kzeJ؄~OmL97 (Ѹ?b4(? J1idI_UWx478pmu'P%:6Ȋ9U &g%im+ǵOLl(QbPD6j UgX4f,7|U05M j~KO`6|jj^{ew>hA'W,M=ial 7>z7=ih ƅ wcJ#FϾԲ(zЩ/O|#瘖QTl{gٺktEӨ Oo}tv0x'=wUHTPAR)vnoZ° K{wf[' p̊R]#WI&iszI{V&5{OmȲGŬ/^SPyգMѨ%*CߔʼSLD ɗ˴7]e%āZz=M6h)w? g;fFnv Ouw26V2- OQB&~nt JfnNJ`Zr##(W/ؽivV1?!0S SD%?n}+owǝg8*]R{kxy-,j}amJ 'T12Yi&%07XYruTjߐRb14 \@Oܣ+ "d̪L],Qi3[Ǹ'틇 ei*ٻA;oomGOX1% uP0&ݽ&ϓ{MdIkV M $"ɚd&q#P& tR –cMzǻ %N{~IݓQ<9iw$`^ (ֺw5kܤ'¬fO,S) W},4 C‘7 q2[PK2s%W^tJynu~fu꾳liqϽL)Cze?Lw}Z~W}nw:4H ;?&TG:ai*HxQnj3lj'woT.nFPnnH}?3dzcbs}Scu3q.̌oҖC"[]=Hk=7 1S1]dyLjp#+uo*rv8;PwOh+*|=`cRv?h[m.9PrgPcR.Z˰N2Բ]bL rK;n6g5KC[9+I)]Ms5P_XLz@uy"rG ?t,HT%'2B2K)-޾&δhA N &'z+]湘q8t/Tx&Ȏw#^t?pQtE9`?G7( S i).ΙO4`OҸk#mH'C"94(_0O@(vK?IugJ7̮G8(|X>;DsyU#hO&<u/*c^BPNcP} œcɰ40cD]P=!YY/,/vR S$'+8:,sRu1u9F_:zxjݰ'oQT9*< A⼊Л ZX;7Dn#!?2 <~H!,0eZP ڳ 0 Whas~6v&/%BT_4tė@ޢF{Ey y5q.*ǝ3Quu!赭ַZc`103 Ғenr#"&Vokf{hV4L,z'{piWWn¸Դ񪤈fȕ ]q:7j6Lc62Wώ`Fx= iOD[nUbu;d ]H pŪb^.+ 9VdEݘzx,;qFŕ[fwPs߽cuǿSUAX2[= Rj/mnEʦͷh! i^3 i:H)zw9"_)?!&>W6J<[ &*^ns:gTbiCIF۰IYKPΜv; ..ÐEA@1X<qtk@O57ӣu]Q#+9fLQ"{i ((GRAO*槵w;,S/OR눻V<)^HVjr{ZqNi\U}l o&;39̂ߚc;8T0D9/b]Ry%Zwt=c @\Ѷ$G8|ܠ"|@nUÜ>˰wPw5.b.`i fBO[U-V7m3HK2JBP~] -_N#(Gg:SdbbITyLZj&&j2Db޸p}fvyfިۣfkFvY,8Bc?nhBZC$VQl˔+ T>NK˹)ع mtT~M K j+zx8wG_aԐpk.s RpX ua#1bVymII ql f}uetͅ[!HM[;[hŐ R}zؗ*l#Z+?Ϫ^;N1@P^J2j,=vϲBQ΂g߽ot" ꉊ]]fl$%ݲO4Zef1Rq 2{%䞊 ?mF#%oE8\-ryrPK|L6 }8~u14NZ-HT /{>u }+.+0T@ͪFf(&6,iCI0[VYUӚDҳp1 3 bd'njI^@$: g>U:~T2F"(+0מ'znm-^q@M;dPޡm_ˊSq+#Hp$Xy &z#0+9՗/Uc"[ " 9|r.FZf"9>‹zHskէS@VHxbva{up͇_il'M~Wwt6f+ 'LAwXeq//I4+ڔ|&дeH:3 ^BQŌ7Γ9w Hȳ"l۲ߨ92p OOљ#+,`/`I^lՕ-ټg(c|#9a)kxX HuR\Q-噭PI~mJ7W5I/C>)R۸.;@ܹ&snbYf)M>imUƑn"2n6OtM\k|wwѱ?_--d,*~O c%٦_\KR0RT:m*J_[?J}dӣC0/_~gPn#q^x˿;,KT,~?M`~2śhA̰ch:fUg5Q1oQ'((8}% 譈p 3T? FNkb:NZ5V"tG փso_ȴ_MtPi"폗܎j4{'f!51`̳j ȼNًk)A"yzzuҙ |Q{o68qZmŸlj鷕e'W~nb-69ӻB~ET8]W~DD3.wW^_V-ɬyNbO[sAW3x^O"dC#{3HfVDe-$m} ` psTj?JϾw59X#-qɿyP(6W rQ >ὡ@ё XtwO؋,EКL h/ 4 'WԸa{eM׫}1ߋeOJ[蘗vWĴC /oS97f gGP@;߂HH^Us IIWt^RG3@6|Ԣ\PS;SVCX`KD"٫CŒ& 퓹c d?ǯG7)E]q`Nzy,8YDqڭWJc槦4f!{$^6zFqpv5?1`_JqLE;l[PrEĤ#5 sK7vifs%:KzU=Pa`BQcI/-zG5pW=O05u^T5ALn7B\Wj'cv="24Vq̲<ˆ86\w.!'nxqF֬@uKyod+dO(=f aI[z5=|7Zx5$Svϕņ(a%ՌI@Sem76GJq_2.=&籎?_M[̲ţT#F" lK|tΌU%60+5ݨ7~dl!# =2M! $?7C >һ._z_[uqnJjj &}:\x. GOy_KJZE#P@ |'/dD1Wlu_WB@zE(r&mRXZC Me\>$W;~K5f7_|#s3WE.NtCn4L5yA"~I voF**r NB̐3nϞ2]8ܐlD%ΣQ&nH1FNibgJC:pǍa*s 2{uϚӾKI Q1Jy^;dWc¶bR[VY]Zp F}De FP3b;'v]gjl@ʷe8>X)P$7/, "|cp8 s^֤ߐΧ1 W`?9ʨrְxDGu3lH25ظ2F*[*wJ42Ŋo=5mmD.q\qV?5u_ P,+8D-ʙOeGW|JӋ'ca1|X55N.]ab[\I)2Crp_AI{/`RaPRp]BzAI'qM'4{FN/[Α!4!9-Bi[ )goÒIɕ! D J @3sdЫ YtT(ktE2bh$!VQ mb{ )C: D簺WHwg ʲrp;.i]#Em^4t&w&gj]RfyT(\,YO |vމԄ)dw"0,Wltrѕ3DQ%:166X9V1P$Sl4.^ dKEwN;s :Wl }ɻaҩ+?~_4Q!; Xirӌ$z8Y"O#(W{+63QWN:tV%.6s˶+ң-,Z>GS9(wjmt1YH,tMN1s7JV8y3t+\HJTĈ;.́ e/3.֣俐=*-K7 ˉJ[kR)\[Kr&&_aa)E*-Dʃ|6 DO%ZM9MO"`Fu򸱳D-Qoc5!~\ېshq2790 +Lwgeۦ>T0.+x4C-VF7W$o|r4V} άMS7 .,K>B]sWg"00{4P!񕧻[n}E{PZ&^lH=%57IʛV͋_J.-op$Wt2wAv'T08 \վxԂ|Ī@}fzX\p(;1! r Fnv'aTxkLS #cRdI[&wVc Ӆv@O^mM1`KUA<` |dR&QY2]Gos\BUuA@HY#ݗek.UNPK+e=1+QtPQ*nuvola/128x128/filesystems/folder_cool.pngUT RZAPQux -|XRap/pG9WV6L*n+KRsbr5lJeejfe,8Jͅ{s]{y'^qQ%Q9;)݅[l[߯[P;H0 tR!PN,a!bvp$F$n!+{}IQ<':su@R"sjX3 r *,*j;b@ysgmܹ!|i |4:b0w  8PÌߌ{- :Մ@J71((@JHd S?w$x(#6C DF$F c_A&| ˂r mR223d4ipsu[e~tp҄}l ʼnYX+{cUl ;B ԥP(t|IoRϠ޺i$ӛq# c ^BaseƊ]a0XqAg>~H#|lh"g< uZ`]"K} 7E>/|;99ir) N#[a{Q**.DQ++PX|*vUB7X@&"*fFff o?,HCZVda@G.9qD*++әTHl .4 \UtCBW# 5^Ôs]>[h|oʏ4e 5ʢ?>:N$٪Gв`VVU} x *I6믍Mir꼒] l!?xHi2B;;no,Zq2hہ|].ʺĕrf\X&S5?߂j#zHrݗ/ *j[[иp608 lĉEo=Uz13U\ U${A~ \1Sco@W)w;+@vkOd<™H v{X|BP7!r. l aei8iܷc_a>LL 2{ a Uhpmmnt&+h sVƚa1*!a- FCX55/)̆20aڇݐb@'qkr`&y+0lk288PXJz[t"yLfSIC"Lykb|S{jbRJ9HŧO?ʲH_f=i @F1}dU~%-G>c1[:: #'w6*TUU6_]pYw=rxS_{~(p~OϺC碀5ۣNtw; N{QBeS_ega񀞨bQ1t!0>o6v%s*\H#~>`=J'F(J9CL03W$uvvPa5w_˼mެ )Y.\=JĪAˇ{} -Zz t^|~~~I(X(P`N)**Ì$iT-M0.G UʇĜXׯB2񭠧71t?KsfMm/2m1&6a_8#/P[z(bB,}!f'd^ C檷mDmFPa17χO>ݴ]3tB-K̇i'+*\+w[ nKHDFd&:;&$"tW&4#IUՋ R4 Á/> Z#[k^BmNy&.>munH#ja-x@zi=ŜkcW˗{{3HoMOm.RZyM򹞝&*V \(Yr n: c` ZZnf' J ;02RhڴhS.S!_Tq{ihqYB07qͩ'Rb'p[nBcg:t )!¢eeTk*zeѿp|1}Cd[m}TId BiiðV#GrD"F-fÅ~Zˇ0yw:XO1|h*1YszI6OMǵ@١o;|ZJ% L||K w$*Kجy 3SKaCl$~K_ \JYYyۿ QD6$iԣpL7ҹ>9o8Sq%]@BGg 6Z6 / !_4vI sp#k*pbD *-H|KB/+Q))#4ʥ4(rle)IA@:)F*M:rټ]8h4}qg+pn4# zzсGc@~Z%Z$[ӂ=i괐ʬFL%.Jx $znQݜ#!@.0^W©X[i88X@T}eJ  ٘j!zB!]* j]ZENJqdĸW(q;U#e x/tӣk%@kZ°)=zL9n:%L2V}@J%[Z[YM&v`#tGA,'xvLqjd/3צ>w8Ả˫g(C{w=367-&z`6M*1x#@RP!RanM?0 mV༑ >+3n1B}2ُ|,fAL;=*ع}{jFߙI_M,7>)Ko5"g]^kgm$tk;wsh[%WFho뾋 |'д]kO fѼ̙o~4dfkd.GkLԌZ̯ ]Y }kv柪Sh񦷧NW?#1Bp9 TYٛ36"\#_]eϞ yvs y:3Rjuu7 |608dzƳo1m iN*OƅD}t^͠[4.^ٽ²Z=o8G~_rcrD&1Y$zV]G:H?: FptNЛԜ$10Y5yC 3':k N:}iQlz wB츖[&$D*pOD%avQWka#4P~}Z|Hȶw lS1e_IUMjۈ3c˸/zmM>F};QkRt!D?uO A2â}G~{-bHԺmpվ9ϗ^ugtNЮ3< :6vvq$j0ds71"lSC!;L&FsѺ6 ?y:EL;")P5nk{ ڡ?BwZGG1e?# Pe닑k%N5ki"f:3t-fa_Ů|Q|ø>L M$5҄aBivgwA*|zxK׈U!ZٝƄa6J`ءOE1Wᤱï'rF xY?=_Y5G;s5^O_j?~-%^#awyM wne!d;{?=IuOv޷MqWMY}-ts-L>,:E%bީYJ9''v+9w;bxc s {]}:N?ś|b(YDt?3Ii ^"baD!5ص^;'e/)oIC狥UZS:\7充LT%#}JO8gfG@"MR45,{^ÝKjdq 7,}wN} ;[ uLgl(. d qt~f3EN]BҎv:_m`kqn_=$Zg-52>'3=0'I7 ad2WXn~FVMJPpN}ڰɼTpŷc.V+fcmbW4&//5hv3?nv"Dʡt/zW1t,T81f5Rږ ~\f~PUħ[ מ{:T~-2b%nbc] ?K= hi<]R:UX/v"tL9WK<|,]z >* @:ZHoIVm3G1cb,ra.++q~@ 9F{{n Z2eO2ƹS+37q(Ao; ^,+^=W*~Ov*Gde糆JC ̑AlTTL"..?T'[;#k<{8@9=?'l:DcӽMnȤ%\ Mm'WWYL(H`JQ~[avV71j6פk[S@MpTp&IO ާ-tP`GRۄG7<sx3TθC7ጓyo7(T3h9fUCɹdManGí/5J" 7آe}Gެ'4_ɿ|qgP\,M@Exscpos8 Gh* yW 1@1lL2%V3ߡb5Y܌pC-C D:i&]aA-B,KdiI=tNnLֶ<"[(DsBɔ 86IuU)E{tIF}KwaWֿE wS%Q̑'3[XJ&Uug;! #D@HI;wQQ3 &1RrSo;H\b/[\ʮV2zxʒT22g G z·3)k5B_ų4̈́Wr_uy-=4OJ@IKX=5+4A1wlTL/Oi6`ɓؿ/X3M=B唊7Lla! O^czIicVnniPPczƜ5: VI(lJo'lhY#_k]]Iv"6a;BHE$RAn!k3+4PT@89o@ʣ7Lګg\CDxȑ'Jk[/#Նο:Ѷ(p3n#/%g W( 055ukQeaFBa4aQ0+s=yo/MY%pGy. .Lx/?r#PPzl&kMפ-LtNCaR$q61xKӾyVaӥa4GMKL$s`Hu263Z$π($8d`ݹ{S/Uڷ䦜7/\2 3_5{v~ұk}%cm"3Wpika^Nc8]%r|* '/qI]lc^ {77Z8+cbAnϳՏ#ӸF$S[vlڡ"8&\3qIxbw+Wdm, #es&nXO܄lSC3ߍKeӖw |IAp'kƍK7y#_ ʩ'@98+c^;aɑxAk 2AU$} .Z_m2BLa.JŭHA/ \vEWQtcfL|Z)(T=9X.&6s_vh|K-6' L`SucZ÷Kɫae x<|X:p[`Vy_C']^Ti&e!5 @HU kF:3Nf0ùikk~..*"xSBirJ4LV!#]!|˲ ct`b挵 )F:̀OפPjiw`HqѻQa& _|| q5r( H$|٤MC)%UTڑ1q?-KQ ^6P٪G9V$]$xT)|*Wgc}m2 b*2YgG/!$1iOYӻTC.BUhqJ-F?|LLOD1=a֞^_g3z w6$m?<O|IU=¥~j8ULre xl3,޶3gHvkjEr>al& >FEChO޾!OQ 4 mb!x:#ԂT;7 KjwyK3q,ʉ3P>8R= AƬMWc؜-4(kM8lHIP \ WQds/ŰKJ6ѽ2&WG‹9vpcP仦A=vӵx<nmdk~xT܅pdFL.3;@?)σ3_gG>j:9ZFZ× o 54Τ=I#w4NCa[=O_"텥UIIL4"z6[(^D>?D 1Qg:ikmg#@&Z%)("h>/6*չ<}ڟ䈳?X h$:8S$%$iw-*c3^ +K%%!X˄(GB[9Va 0E*\ ~tE2ymP &L 1v|I]!:oLmPPf1/hwMtQu[d.YGK މC )^2mwXVTO\ ;jH5 VoF:jqӾT).}jw"TVd} ]zZbqj(???XI֔ARa")H\PrE5klR(W@ʎլ_q1ۄ C(ݿXL*^)5&^FQ9J`B\s}H@BuCuquP.y ˯ͣ4M9+z85|! 씅> ^4ThEKX"wy?;c  kHh^U4X<ʹ^Ǖk6a4Ud ~4 ͅhȽsQ߱ 8J"'Vu_fv'k(=* cִ)Ɇ,oj;%LIѫ,PXס`d_ WjtcBc[Y"V/]ܒO UYS(Ncq [:_X@[Yۙ4e6Z-su"zmu[z^D-P@ 'Pl]jc۫*oZRᜮv:;U&Z7of!Rq7G] ͯH%.-̀wjn~:&}*Z:O!>_jӏa,W$qmOjPm0"Qtmy}ORNωS@B|pOX2*^}R87>D>7竚u‚x@K$-?O5r}e{2& F.Vk,)hm}6X W_.@alDcb\f<=ey![?o{oS8 ȨLi/Ǘ^&ۋZ%޿'*xNJ:4{us#KC>;I2|i],jc2=Fhb Ezښ嬜NVB%K<7ŔÌ$ ꕟR}{A1Օh񭡍0w9.,{hs^yٍ yXvOI Go b]]r{={,BWRO_IN /]k\C^= 8.vW'nẆRn@bd$[ͽgˑEvqٮ%&-=\VDJb?7D/.pVᤱ_Rɏ'(u_uBYa 0py1ѳf!Ja؜bZgϑBd,Է?8Eux;aT[?" *s,Nk0dۘĚ@B_XX÷R_liA~5 BW$-\~Y~MYA0G%l-;洔uY2%³x^HF# 1]Kr/֤rQ<+AwsJQnI<3qFb"G6fOP(f-Dz)fu%VؑN~lʴOh=@5O k؞SdhQÉcg G?AOV_G &KꑒPŰX-wL0eeQ~c? ̛Z /ޭÈt$[ U5m;ȝ3/]K3p)'hȊG`s)lJj_lbgqeTΜxӡoH/v%f.WQ!djU,JGԘB$äڮ{_DFNvlĔ+AinwV&WZ${sfP-5l1ʤIN Ӕ 킺59أDN]D‚7 lX}Г5u 9c1֫ n[Ѡ=4tϙ1N¾c>_Ekfh65bJԒ} @;"ЩOkECf8_Wj=uē^ͳ#%8.eP, كHإA*Q<#ezR!=hL>UbwX2mf!ͮL+6Ny@X2I2[\dE*up+wb<)j+%e(z??OPys($WN„|o-icFuOGZX1?c*=Cٔ~!X`uL*bIr3HzWkfB\Q( `ם#AѱH mV)&D5$3R0 C,/+1[/)<֋F͎Oܽr9D]neއļF"'z3f/Cy-(o,ތ|J6O'iJ9nصqܡ "Kbߣn~>\5 RaCkyZK_A)Hꭸ[Y~^?ln6m)x?^r5~GAKϹ)i8yUYu!:]j'N ՝/Mx2ow';i(}Qaw`- k}s@XT2$çVJMzBW'hhnS%Ad͝_`{'/k~XJqο) Cj$DC':_ϑ:R0Tq P ēKC)q3>kulCIvE|INiq/qTgq4qM_3Ju/pge,FxH?d4RGl|>UrSM4h:{pSn 걅:+whƶWQĂH7l+ +iDYģGokLZC.IH M=Vf HpHąjӑk_j+I@ fUs-UCTMWoLNFR4[Dܩ,Aw`ʯ耍Zw㤐% ^(+=w"33?R0ϓj#&eJ@ʳzl VjNw 2ap/?[S'2H-Z)$ީFKBr:q9'.zd_ GvhΦ' iݽ vt_O*[aߞSA͇L ;~[ӆ[^F^Orq'`KPbv )2"EkB& cC>dtBšh0^0B|)Ve񛂩4v9_pҍ릾b76T@yM]YhWةke ńo&]keyZ.=Ҽ}RZ:`h`OSw1xD/FN.\~A&htqr/!!$g<))"7 idNoP*{nN@ڄmZ+"V[Twnka`dž(5jA\htsjjAmvw4[-KDy3 w*zg6~H!H-)n}麐}r++,n_mƌ-caЗ IЮ⯠,NObbBg̏ft=%7oQS'|zR-\2L&.D .KeHShҸN%}v#O~ܼG7$ %l/$VU}B?vx~qsj#wdA+!Dx#OvG&`,s:D 6Kw@ ӏ@._*EO r 9>aaCTYPT~ЖhRex ApU坔a~JX*)g,M9ɏ<; |#Q!I_RI!D_S(>kGg!N!%4E]6 Z:MI#=-(vX&no^vt$q[5MώE0"S* G'Ypcc|QG0Op2<=F.YvӞtP jd$zV=Ij:u@x/ALvvQxz7g:l #!(]M lra3/ۆ&-Aut9ßK*Qg)Xw +H*P]e~N`M*K3& (!D[M3):a2AFiu9iY)ߵsU udi L) +\&ʕhpWh'CP6э= 9UX3b P)יO~d:ck`j9ۗT'Y1Ѩ;>>ud|Zw&䛯"'>J_Ð@7t[ ajb#f^*X/V37V{S/_41?$zBql* 4U `Q7oUaoq?sB BS-0ڤ$$xZ@Y82U;I o\L8!,aj(f{R%%p%i\K{7T\c{]wwBzi+Ç9s;?M&g qk\|A,}AdGP80adt?@L>7ÚV iM\g˃vnAC-t2 ZVʦ{B;c*~g]I]d5|yڒ4)Ƹ1 rb_Mq 4+ԥuJ;Kuc]]:Ne*x93:PꌾmRe4ʽpEJ:)0|QXx9oq,95v`R8I֝{!F$- 7@ªm#*h ”7}Ȩ'0SH JI?osq?#F$fT+ִ&vy , o \B:b!/ذWY`+L?I>J]Xֿ7ozҶUVPy QNYVPf|B ~hp4QW-YM+{Vŵ փ392i)ݒ-[QqqӚ ģ!ib8<(HpqCAeN B2f;8BΪ!D]`ZL%5D6ѾA1XYjA.Hub[cdU7l' L?@4u!jˏԔ"9HΈd#"4%;9Eo:7,ՈD8DŽ&v^烠Fa5SU}}2SFN%,T"LP#- e*1c 7R=߀?x&_ w6ׇni亂פ@#YȵUz6739u4S`y U&oM?J}f_x ʕ$qhw?{\,׫x5_;a@MPI*ฬ$[dRc͗6A!/F-Mgl iB0)D#"ޕR猰[x~ނ+H#\"ih£[#KxT * T+=oS(P{eaݍGNg˿/ 6~F%M-*YhA\n>Y;eظTVwwuD({tཥqWz[= _Fd 4A,x zIEˀfñX5`a}븼ֈdWI[SJg]9)Klw|>qy. z}aٓ[u<I~վۄ++x,8vHgÌkTT|$ <vFW9V I iCT[>O8BZۄ1֣-wIq^8c!?^)Bޥ?Ky= j֔Aͧ$n77aFxcݣA2(yRHhнQi%6[Az$H+7ao|xƵ^9B @ qp CՁq<##T7DnsDeD t v6D ac# &li760A9$|v ?qޱN~im\D\@BXm!vPK=1L`M*nuvola/128x128/filesystems/folder_cyan.pngUT ZAPQux =|To!.[SpG63ẂrO@m4ȴLMʹ(gZZ# }98뾮n~'ҔI fF+;SӿutKBB/ {A^cuG,6/E<Н2_dK:s &כU\|~ 5.N x'm!mXh7f4z= 1X$*Ib+})؁TPODT[p?{44zW{{x[Q~1ΐpM VH#U9G ^\X, ۼ0E;!c}=….!b}*Q=ݰ>F sr2SG{蜁.| J'v?&9F_hۛ)hŞl6+툵=$} US#ÇO8b/mkAISc=]vTjY~BI98AL܍mW<ϭkU3YOB_9n0P) ~SdS`/)9oh dZx컘=VeT[E"hÇGW<Ua3]iӧ+ssA08'mLHHN-GĴ=>'X:lf:yZP;U /MH#E[;`UVV޺|Y.1'}@',#zL=svEޜFMqMQV@ߎa0YfRXNlOvbUtPid"s{{3ܬaQUEE]kط?9`fR~ɡ=EW"wU`ʹ_])[ eOP> 㙇/`$bµ*&EpNExdYC2(ҿzr%z\ľ ;9D.yCKSťd Y}n]sמ4PauRO^d>ɲbW## psfUESDTQf[ V$E,}TiN4Ď|Hk㒒>iɾx6 +& ˄ಳ'?rFi&ke*1S_s ^nJ{re`g}H*+ !lʤy/;N&y{þ3T ZO6:7ԓl z4 !vy)[4AmhKt\QQQ34>>![bI 绪%Hya^\W)=sԪvqppL6ýQH'VoK$YLf>e<ȇ@;dNAS?D7SO3"22303?qqqU z%dvo7TZgv C\;= }#ț%8#DXaNU|./)YD(yҽ!1ֶ4歅l)@o֔uc# ֧-Ku+Wuk0C4x8^UUEɻ3WF:1IXOK/qp(.]M>rFc>eu%~BbΐɉV R'6YǞEL))%$[Z"QW1*`ssm8_oVQT?? f[T࢑ 6aϽјk`de$%fg?wuniϊg餠{E2d{2N!gC\> ff ?ڥ;C~)(k0&1 {՜|9xIHp}|<0fd ew5'^7䞾OĊ =lmL= &]$"fk7N? o`kjABƘDt)h.߽=6\H\CF0ȜSO"OŠU*7zX>\ު$N:ȅ~CsXąDl!xؚ&dsrA.a'ObAi2GD`Q:t3 S꼍ۿL/\h OTTN|rlCD}Q4|Foo'zcqá* v9=Z8 Xr;oF;ߤ$hsxvZs<)u}D#ҿS&2y|9q/80(C&uR>4 M;7?v|V=KT2jR5?BCt: 8}j|L=*,l@Sˀ;5 eb%dȑ\r̃] "b|jQ`eT\#|~ډ^K!OQl7ej J/ ù,ϝ ~"aIvю؊iXxYioBby ]%3<!*2"}[ϟI+m*nydh#17PGykUs;O,;y ACW1 [1zi8IK cf(.+Xry;Akj ׿V=]baoDFiiu upt)/4 Rvj:؅YoKK EE:38~mGL";Itv밹iv]F> )WN $S0|q\V7v+,nIa5ǵ5v(ES#:>*I-D|Rs35gVxr+oo2,*)IqUwݱdU~g 3ЊgYˎ?r?1۳oj~2qS_DIdaBQql!fx mkT㤘Dǻ̡letwr?erzqf-m/tK9Vj=i)m/I2X+ZsY ot#>KL)@fy5:ұ)g?-~`=覷){zajۺE:3G bߚV/A.ǁC)&?/El@ "Mx1=olO誂jYvP_:zZ)x_d#Mok\9-)Im>;6 wgMG7۽=;xT0ym+# U=]LЭgʿoVL.ǹǟwB*(\4[G4$8x~p\j OW^096c"Ԩ:l/p+=I0ׇDoΣ#x\ЫF.ݰr0p41?!*®O)['tsȉn BW-q3LDӘBǾC;sQ⠲C;Vš绫Jw1$Iq^dRejrK^. D܈j6׳/6EmQ1GXkʥj56-9X*QmR @Æ[Bޙe/g6{`~8C$H);/6nx؝ժ"K~c5[b+߆s;<JA TVM%~(\^Fy Ƞu?8pw \kMQڎ t4ѐMw%Tj٫'80*@A'uJ{VQFQGw$r+e7\*mQ#u ܽ. bv\,НFtjZ-!7ptBlrexL@ u|da&+>2h -5~l!^e$AO !烌|yː&`D踖ڏܱw`+츉_#n ~qLCi{8h@| q}EhFB/Gu*u5frS Fѝe_OH5殡XT:NqxP^/'ys˼QP/75uM +ϟ^v!5臏- CZ.Oy-V5GSQsE}K0ba&E(ڞz"󃱙 >>7[kÀOݦ>؀gnYz']BOg8Dķ̎[NI 7*AWNNA:'돿ө୩MmQ^r$I,Jce}7!{ɢØw~?B)Ɵ; d n/AEs7<φ!MD9)A~sĸqۢbȄ}Qc"\{<&bqXLK--/+vjycx1pJВqlvŁ;eo@a"wRDyUKh`|NPۓԆt9&[d ĭs6sQ~%;qREo[F]γ ]9򳰥O;A m"f ǪS'VG H?B! :1׍r>1> (uBwFs{$%ɣ 9U.6vm]xJh蔴V}ܐ|} K1b/+{l  9.y9s4+4ʳWGu*}oV} K*[#]{[8n+{5d<6;Sp}DSqUX ~婆7~ϿQy7Hc0@5 9C%Nm9_eXzIZ gkH1Ȉx#xnф+w |Uxt >z>;첅K$ƊAP2HH!KsQ &_ IP댹Ww:x.lῑ>TEK~@ݯտ6w(FŹ_3-V<:1C|^<~v^hb%W燤Pݿ=I;oЅR|[f|'l/! a>j A!+V1# ;7 `Ht%en.dqf!ׯ1JȅQk/kZ,\_z<5s|35][0ZOvCLhjzPV30.?99 g'+*5GZ}5G2'kRڑ]=j dѽVx3^ohmSn v u&Gi`[{)K|OMT4&TnAM34m֐ 9pNa+M.l\q {c1~ygGPV\c |rZAk>ׇW'>5|/ 2&zy|&A6LyG@ ~9usvbƶ:X&}9ϙ*͉ZtLÿ+e\z}#ړ,"(O=ɄVW焦JT$!z4s3c4u62dFUkR,w1-E?i1{NwXn9)!dA_U&7lMM_ :wär <pIrj9V0} 4[AlbtVTT1aBG`ds̤ mc_eW;`[Es1p[k{4r(EmE[Q_vxBH-WLllЃ rUru7Dyf>g$u\m7Վ FoL|lnm դ)z⡛)w0z'{:H?I9[3`c*_p-sR?$t ȠiQ!k+ j]e~?P,k86pnOb(sK.B|JY2hxHf#~$x=}u׻|ɀwUcxSCo(uHsg}Ϥ_mp>\ƞ{ZÃ{tNE8%mWUE>ojlm)~lw,j J8k0p@2nvBqg5,vegva.f1v-W`kr˹C0${szH>{Q5> D[]"UH^[`y94E孩g2y7/v(A+]☳urҨV\_;@Yo/&6Ql~s}kM g I=_F:t s+]v%X?//S. u V4.TT_9xzhY~\QX8cR@<$yx -izƖFg_dC5OBc&ŊfK׉rp,&U?w\c.Ium&èPZ,M#SA⣦/# U?bz5?`ɵ` 0o-cו  dH"mZfy;]*I1c8Ϡ8e7P+wJza!/ݰںC^cN6o`^ 2l/C$^թ.'D3h6t@9TU# $ >{!X <lJۘYv0Αv9U;H~G*9oJΧmv_gB_ʤmޫwiX%x,P\Ej Y]288"FG8=,<+C1Wzm #r5ʣm~L-P 1MÒiF!\\?%h,qΛR±`uzئ/? |g%o=c<-MrO_<,❳_bby*!ą>W#=g봃+l q,Y8U%~KUg7x<|CL{RiHB jiLk ɾ>ϟL<+ޑE) p^Xx -W۾k .k9?eу3.I?:rGI'Ս;QA|os&0Da׼4 _{ aSr/.tgK|v9g&c 6O[;dڲF}?a,"Adwǒ-ںC;akSX1Ɯ&W/ܗ){ᖡ,zs*;9#zBڔzK3l`} I^wWTG/~yye3Nե[ZpwXU?&RNąݝb, =C nߎf#Z:wN6KS)ܟ#NiWF>KՖfR|yg!dmsXh@>}́ voS3ME~w?g8I‹tE?Eԉu3KV_F<@y~7:NhIǷVx"maY$AqPg{޽%>,"d?#}Ƥ8Bf3Yv*ErE~qV<ؓ QV4Zn)kWK5C.T ÝAU"D*:3u檝o_/% ]'ؔ:v͆sll,P=< cbIH6Z|c_ͯ| ~ge}2}P{K3)Ԥsf#ʡeE*o5_i^*Xhr <"^^\K"dqk!jl tGL~ӟcH7ZJx;fn΍VnoS.ܶ\[ᰱ߻8ڌR'Q#=֊r2n/ܿebk9塶ֽ`I:&v}uhXh8WRbLft$Ԋ5`@ &녝8<k@ݐ?M-f#:w-l1[";H7UNi i +I״vs4|!.AJŅte:p#㹯 PmJWx´Mzf\?&Ia/zd)zUuCRm4H ࢫB礀˦NҘg8vx.Vݪt1T]_3Up/ϦͿ169ۧ+Fpdq=Ij}Usf 󯐥~?z r'D.$'}=h!yJG?!5hoY]Lf;l|h1/s0? YzscB\~<1ʼn%w0ʒdG[6 a7zBd@"Na ׷:^Q |fWbHĄJeޥRG~ߟO`U.nShn݇)#Lw.O=ǠYG XwI/y1\9\,ܩ&o 6&Vx"g!MBfFF+]hh1BMҥ_P?&N8ʍ\ y+G 5--%晏w"kj-?uCtH$>&=9Ǣ^"/-[z)-A|c0`Q8Wfr0>xYWy#BoO0H׭23_0pֈMi@ʐ~`ÅREm~+% pѲIM|BI`PTUE+J,$"b#RLi'Ihaʎog5,|v#V먱eH۪pZA)\65}QoQ܆,])=J5/kgnXn2cW%P/,rߣ=>Ւ!Gߐo~u;^ZY[ߓl'>'ݵ>sNSrDP7r(GQFpr zك~~<n8_w \#N]:{|CܜG!}i~aw!ߗ}C"U^T ~SU8'q?Eo?A#4S _eȷkdEϣl[p;~^{GuZ?j*olk33Hj2m)Eu&սHέ7ll-9JhQkR4W=$51vt!WcF+n?$=9_j!yJYtglg?TM癿:!!f%) la6*{IvR+5hՖ)6_=c%ӵ=?whBmh6?;- 65\Cڪ",5HEridBТmb dOUhDw,hޢn14R'TlOWw/N2("HB1w6Tyb-Ȥ4̟c?avÅ9 ksg=1|7'/6HxpE,36&ӉNbҧ^@>4EjnjǛ 2:3?^ayP"!1ge; L\Uט};ޟb zs3J_#^TZ043k+[΀ sG69XYޝq"uƠbeX=O3Pv |c\ӃAgEM>WpHcj_]5@OpkuhoRo`4-8bocR1*M~:ٌEhط<&0b#l91pnX doWd7s^^vU'^$' o^~'u+Uoik A\[X 3C{':kRfh~0xpt {A<_պEơlFFeVwXK .y<|Ą,$OcL{|隩j+ (Ma'Y eDi,YᚃI)/Y(lǪ۾lbC R &z쮀V=A S@b7O+eEF7_FEsBP4P7/>f.MG)B]2 B gNҨi2N;X+ĕF<[;s?͟F5sb!T(F`g䌭n7P^$]b1Fn EMh4چ pj%8j58sSJLS-IygBUdF"C'.2#w̢K]$1f A7gTNk1I Fg }ztlxN n,:hHB$Q w >Ǻ(F2VMp 4:d Wɺ(oì?zV;lv@ڬ1= _y顙޽%oyIUYE}'o \c&&)#k۽Bn 0e~¾2pG_ Ga' [ \D>>QP[՘-Y.{|SHǰOްK'_V6mnt%o095'J*{K3iL'؊,>Nڧ1Ӎb_jJhbv|\nG4prL')%*h?/!fe2Yޯw,˸7|&@(N9mvc"wBt__ VCd\I:al3y}:8Cy vN4Fp. 0D衂?0W:[J~N-c$܆UfO"%ϹHWBm% bՎ.\];&0lM y/{`1l ĶK AQh}N~BuG 811/xIIc3dv ֎c[(x[hJqꖧ:r PrCo@> vS_Rtf!76N>X0?\Q@Ojc,(;٩Y}FMՙ?h!]O#t0AM?$28b< (GS/oif AۊL( v`|m}WӶ`@1O9*{3_c8m؏ A\Q:@aRsҜU=C3Ć=6z:q)6oM;[lO#Q%^|!?%sh<@0?ˎNp"gd4aP~\dO1!/B9 R>ieM/J.G3|'?/6A衜 Ui_H,+m#b\ܶ20vWnaKvm0PL6)5c. pkόJ 2yF^}! V2$ە|ALRĽt1dc 9Z(ki:1ӎث˿%H#A? l &x3}xȽwsZ& Y$bp_>(;rD q ~$I(ߤ\E~in}zxj~)Tσ _-jnґz [R/V }%K/[G6 qGAKu8G.r:jXэb (jh']aǓAW_ n᫟((=JO#n压"r UgXKWUT>ue?1G-GSHmڋ0^4-ɣ ˟HX疱|\j!=u;Tf6ipF>q.[ ;xY(ʎ>m(;#(ߤwb ˿ɫK2Hq"Ld[b~u#_l(#jSDoQ j[0ݧ0DO6WֹO*ߗi/,Z\sыlߘg;`qFj~BZkbGrPY(.6᠞&%in^sDJ99tg _%<5Z!Pge"Ew9ӧ[ ^GN)L4zN<*6Ն]WT7÷yf߳9G]٣Vk~Pp?W&ܚM-xw{S yYNos9c~QLܕ0ѣ#o,w]C_?5ki->a-!5r&"CVy˼ ]6%DL[P^DCnT!idD6 (bn&TP0!l/gB=tfGHn,\e=Byi cTe|rXQ*Q^0@gq8ߡcxSƁ XI$IZ h]L?43N:Ț{-Uv:C {]{a/ Wl}'?'HʣF 白"Y˫!23caWhb.\MPhَAxG*q͓Bi}stxJ"5dw:{1`#tiSoPjL*8P)nqL渒Kq0e%+. bX/#fj\jy`2E$LXbhyOv+e++a^ B.L76D4"'ꉧ֮B^F i{[=ey,}XOScbVA6a6ux{bYՖ1Im?>iO? pŒEΌ6E*WCp;C0*ց~&yDC6zI 46MXM=:W:@*gͩ6aΟE% GȵZ F:AUHMg[:ɈXjkh:D $E[6LjA¼0a&]$7b.E*&]0|E*;s*L( 7fXk(dMV#rO-ήY* Etqw QiP"Wn,Bn]T0c~2T4rV4V DUJ19OPg [L Q!8=l7;M43U1R bOHACh G,K;mh@ZꤷV4n>#W4|ɠHg51GP3Iu UiI tԃӏő]wmʕ>  O-O*5kRq_\\LWP6*# s3JD}vl:aO;54A^h&s6_ `O:3ʿpCA11' woHk@Z Sɣߦ|f0= jm%GZ`WJH1#Am.(xNYs49Ac Y8n u>>7-HwWV4{K GP/aNPY8d$Ϡ%42xq*ӯ:Ė_ˌbUP}u1^>ɌXc_0GNZp|3> AA¤PEDFi[Mے2Q_LyЇ ψ4lI ,')KWwyji#("ȕ>E Bvp}Q[A:ΜNYo?9HătGG֖iIqjmus46KLa㴹lLoE<s+&+TdtMJQ{e2m`NnhjjV@X_goMLrl㈢kt=/wxi\]lv w3 2-|QDg{~1C:^!AQ[Y]å@SԖ <7^Nje<'!o ohAt^|!̔yyx8 >37Uf֫H627Pwsrp~o֓n} /7(zS>A'+w+3xM弋\.:jE%J&~^(oa<m猪`nP?a ρѸY9 lFO?p_{C? L\*|Yal.Z6Ze'e|j(\O?@I1+HusD'*FpY3ҶVBί@>@[I98Y&9T!.Q ^^Z6Oi&vEG^¾ (3_Rb(p .iAwf<"qT\"G |8HIMfs5y6`ʲH3u^lZ?sT1&OOjc/ QS?Jh^+lБ VvmmMsU>T2^_\}'6bŒ2ZDKM3$§fп _o$0[beMiits| .^b=飰20%%Xolܸ]^\D(fND T'XIF!v\ "ͯ3ܠwkWZ9޹<Α>En2m̀4"[?yp7 9GL'o̴g.C`&^r CF0&_eS;Jo,,8/|.kԘ[sw+[]|)XQsX| v~j>*hxpAߊbJz`Pd\ @Adդ ʧm1fՁ{NzKQ=5XE̞ Տ.+h};x'G 'bI˖ \g5YR76Kuht"f'[Y2(2yQ>_z~xnlY+=?T^[K>r62*M3T5THS77c⓭aď^_ҫYay`G&z'hJk"xncѩ S3NZ[d]Nՙx!QJf)g>RNӺ}$/-]3͖\Hi%fG-pTҝ9p&So4z<ַً-к"u+盶wB4UD/Q̈_3nv$r!Vx|BPYqk _?M0eYK. A"yh-lΜCr6l%Ry۱Wܟx%9^#:R}bםhxD5%h$=M5[+ ֓B\oYiC#&7ę~ xU-ٰ^)(rjc@¬KabiϵEnL_ZK#OIKO</$gqsndʪ䨟^ݎ> Ŕ<ܣ*O{`?/ی3Ѧτa 81فTrRuWL|͞#,l_vA./*^Ji5燍'oU=u{n[{|V']:[b`}jz'z`-!8#^7xbC;ګ $!}ԬBvKRb!6=r8&2n ixHc0SV]0&'*K|qa"we7O"t\IԎ:ɒe"V'%H^.J2S仭RZdwdǡآ8(OJ0m-8E ;`V j 3;YGs Jy-ʻ53Sixa^t&uʏ8ٮ_,;ξ[/t~\*Z N1z^/+#!IֽymVaeξGoth yl!HʵZb˚3ﬖ2!E4շA+Я̕ļk%g?RM8[8fM/Zvo13P#\8(b`ɕӏ{LL68ȵ[^ipg7s;V-5j+&;1m|rIV!]ߛ;\bšnE[lRuT.XRLc#O2Fckֺ7/^R0C+R^(ŋ~w$bO|1m)~6NG8:l4}rθɎA#ߎls}A#++vz;ch{9e/.}տ[BylV;tp7STTAC-<Ou mI;,+AxFZ!-ךǨO1_ Ǣ9TEFh4PFe|D~mZ& If{m+ b؄{/LwK)gYF6+Y ⴊS'smw{daŔFt2D(iT(usv05Tv^@M|iN{~?NHƜgB<{<Y'әGxȧ~G$iX`:*f~ h-Wr`K0Maq6a4|hkCN&R4?E;[],/uOZԼ: `x)%X.B 6xJyJ7B z; h<dzq3i|ra9{ @/Xr>ܚYyHj3I[SX#g> ]!u7g˽B`Q𧕀TUwT+JҝHYɓWr6f6k N)[j$eK̎ ͐z,cD%W:v>% Oa*w0pXhnoz;m4S\y|Οle`rbقE B/Ώ#H!5A&cXhzY’'WSD~jm"³`,#pG0l8 l'婡NWGҘOmT\54͈vKd>Cx3@Kp4lY<#sDQUxVnݏmrzj#krjlG^zj*`>rԐ,ƕ?~x'󷼷bg7K@& b%8GEUPs0B!3"NZ'ghC~q Y%1z `2Ww)҇0ցoNfNΩ"q|V ӆ}>eSyɦ /# Gpx(q5Vܢ _$ |!=mq5IrPr]F0A5D*, 5whNa|Y(/8z]P"$L)ghݣ*,6A4F9!5IYE #Mۗh@2B gL. J>sՙ }wEXK2QZ)qh/Ol-yZ &`Rn0lxa)lNԾ!OGaHi6a\m| XH\ֻF$!21;F t&ψ=rkڽq}Hm)$b)y-T>] 2#y/. ] Y´niV͈f޵)ラ'~ _t~t:KqmɏD$ƯMqY{d8 gd&K*1Ti J Ms7K2 p,YhE 7ȹkҟB$K Xre&REO3nTQA@W_[C~'h HtpD oh('X!\bCem[h$\@i~/ڜߎ9NJff L`!(W1 RSatd6{Ƕ3W[6(~-';XMNI?䎶 u^۠jc˷ HդǸ,M)AVN~h*騋)1Xx㝄r&Ŀ~J=84T-vr?J ,#Z"W%j-y.ragqrNߊ_V._ԝ>GZ7r;ؾ}9+\֥PÈgI|gծ3^3U/x, g]fJppTDBv壷w;~%Ya]:a'=me##Jθe|~ύ5' 3~+0Y`Řr$!_o\Өm륨P1@V=&&{+Cj)3'AxǤIf\5%(%C\F0$3z x~'>"VQGxg֩ aO@+H Ef7m RR W w?!g7Q >(s1nÒcCZkQEnèݽ(?QoUCXֽs%ռ D7J_Fk»ú?\+pRM ۩EA/(l{U&3Rg9L5%b+ǧ[O+1devXf/~@pN*`a{p\,62_ChET%TƴTSa,xx:f#v{m~wu4VX&Ӥ1\霂տ<3'ї[.Vw qaQ.1rtQv{VYz=$ېT}LNT%Em+6&h+9e񄢤`:jX;l}BE@N@O{%hM: ƚVQ$4M/L$@*,Ij(DRRV4sNȜAnbV. py"5E|aɓ"ϓx !Xz+aIѽK8? 2Eۮp (ՐbRZԧK12O6xîn^΋ZѡSk_ geU~#-z=/V1=$kba3cϊ*^@ ֐_՝3"TPc‹Yd÷WBcW4Kyc\E8է. 4kO$B6ֺ{Ixzܰ`_iV5a^J]<{NN6\2=*Mb6V֍l"`q \XD/(g&%/7yHo˘~ ҡBlunsaz74&8}f(arƥs_9 f=?>Ԓ2'3uq ygw&շ8U&>u'FP4MJZEqCqd8|1mܺ5il꫐M;%3ub- G81}!oSS~"R!A4`,U:UtIeHrUNÿ1/IZ2:dV~)rWOŦ!fgXPd(V3Uڔƺocrv-Ncq{ rl`:5e9`g?>1v) hp*(ɲ[;Tyx?&Y;wSvG]xG6$ u'=*,Ȼjki࿖;QΥ$)!I5ɳTS۵𝚍)Z ,N{,.nCZ&R?1d-ywsnwڌ CL7D Kntev]ʼkVV#;4P$_HO-|L~` _G;@T'va< &vDL!-Y= zU+rԎXCqdV&2J&lz&)/ ie?ZO/y>MΛXk:Zc mT+TG7H@H6O!v.UJ/>1xv>jc4d/aB _Αn4??! k7xeDsݞyKl!d˥6tYJSY9[or6[ Z;sم1ԇore4?!OFa4~OSNtM <^`l9_{!dq6Rm,r#w8ꇬ@.z1xy23)W5pOq$wRB÷ ͹< CA, r7DKH^Es3Xdl-!쥁3l95һv9|">6'}sCnQTo;s>M~Υ[Wyr?KwlMyAt!٫g!ZڍT5-iiGq!PK(e=1EQ.KL.nuvola/128x128/filesystems/folder_download.pngUT LZAPQux 5| <g16srlCG%VIK*T挢e$Tmޏ?|=_-MZRM.6Vwq#1{cGFŸ;O >Nv vTW=xt!H"AQK]0Pj((fdeW8X]\mqr/Lf*(?LQ U&{("5m2( WZ8"`< 3>645mm7;L0ҲlFVf@Uիe"mjNhJ]Oz- {݁h|83)""C!ddLYQk-?(0 DIJ 'L>Ɇ(*olxC 'aKLS0+w%c#} `3cML@d6 ұ4k&;v4ęF 忉J$^C5Ϟݤ]C|Y&ĺTi;#?3՘fGC7o$  V GWYGapXTx1xy{э@C]74PQeOF?"chٔ[ԖN.~}='7 [U9xf5;gx# 0" = DOtf_F_%H 13_h?y1}ڂȗI 7o/]61/?Ծ>o_L}EEũ0;U1MCmHr‹M Y]>2gjXxyy%iYZjKs&az l$^`e&x9cݼAL$ EBuZ#2,IGfL=έ ڝ%)1M$Ok>4|iDy8U5Чol9dl$PxUp0A!V&nи0?P7"k-YJISD#G4x4b'5P)v9IJWUTDL- gݧ&]n9;°N~w@d2x=3KEyIy"Tjjo>HzS$ DVeHF:-NUBW]yt+|rNIeP>:>zQ 0XX(wBJNl?לa|ET:<] 3bbbi8w2X-ɝ6bib&c_ha'cCЌ7+XI&Z@М"Z~F<$WLl$=@侳u/%JI6kFG\42t0r-j?~*XBOm(4Q5̉63ܐ8rOC<3F6hT\J)# @'Řzw TPqtHh;:|Ӝ jʳOB t܂ι R%6UW:vB-xC"{ ˡn݆zxCU f 9멹9 oi!X4U/H\hmxp(/F50-/>f@pHJ|A)&Qۚ!GH! ax+;+ueڌyF !I@=, ) + &jH)* #Bz ިQq,D’ӛ*"v(u=r{C裈M{}6C1jI񬒑ϭĽEМd/oB? د.R`%CvXXJs@aEj%;"\cP9""M)@&Ƀ~Op[oy볔 @#yt8UK @\l!%j\ ݮ:u* 9=އd#RR<(d儓] "]?z0*viP)uqX?,| e*-NrV@jǑѻ{z؝=wwqF.`rϜ2_Yjh7wŕf>5O Y}aBP"qĽ`J}NFvN)%l\7xy|m#b7!`iZrzҮԊq_+Zt?ċ Je1D D5 laOVN擓rEiضzqPZ|^;a쵌g>`~ڋ]5myiO]à!iF/Z}$ȝNz>KkdD979q86NRKDK> w [f.<1FeͶ0Xq#9T=lpѯ?f=&D Եݬi,Oquҏ? P^#a3᱾j2ἓk>$;'V]s5Q^b瑻Fm/ }vA\NBQ_Mk^H " ẕ=gjCYs+D*^{~/., #2>g;O^YQ\2efziPlVϽSLkIP).yz#Щ$tpB y&\3.3TKz0Қ;y>R߶򌳥)p4M/ոmB~o.O,^97kjpև9UKgյoG44zUAO^#ʐFŞݫۛhk+ĘL6*tqŭID@q4]]mf-owBZ-a/3`%!bz JSH*1$Ess".Z)gm*͗,!TFM]Ⱥ_*03Fna}R >x q݉<}.h~6@t){C?|R F07k Y%4>jdGpt>wb8xsdݒ@ܼ8K|(Y17Nm>OČŒz^F|AL&f7Q`z̟6:'~v4Iwb:נrk55NR̘/L.کpSƏשOn5/c|ïԖ;tE3z$G4E^t1<}N3k?d/b>ԻDVvZ]ߟ/ٖ\̖~E#p$+ ux}'M'}fO: DH坩 ]L];-^-l5c[uڿRp8Mf3(J]ker%Tt[8o ю5~͉ܶ1K Z$Ldٽ9hzd8H:\iͱV H&ej3s%s=G5y=>?)(p=*}opK,#o.IwymU#Ŵ?<]( ~Sw$2YOWBcԖpwGgFADECV14_ŇGF53Ӿ&T*5)fdn~]  *3ZpXC oH 6~ˆ* ~_,}&4/\ƭoR>lJyYhRu-L 6kۯGFK |DMbYo)'Ti@p"~%/3;)=g)\z'.[>몢&K*ҝTHDDK `Խʧk*O.'<&p6Øzރ}(|r%$5%k~Txh HYҷ2a3Qvg1]D 0t^eTA?m5Y 'AJ G_]yCXM%b7g[mԴe LbKtİLSM{U϶K?@H!Kbp-cQ͍+󋝃0"Y6,,k?6?}ϼbl~>άCǘ9<1r>elӢ8':ԸVocugM:)?Vg#cL#ѬXz`K=3K47,9a]F8IhaR-CRОqy-%,d]'aQѝ^l4mytZ$VK=mmBɳk DbcrH{ \nМ/ƋƇlJ2K@ddAR"ƕ& _6&$ 9 YW\>73IUΪ#6]3xlO1bg~>osw2;\U;׋>P[ؔz)|n=xnyqW`ؓC&?޽z_i.EtfE{kVէ$q=pJ@z*9eux]2h vl\v;% gb #EZJ`AzkV\LIsÇ6hVyw]Ns{974dZ":#錮5=s ƜF s2XR QͨYBjdCݤ-ntvIZ!ĥ;~z;_T厖=tC!l bj3HÈt7@&eY^-XMdph>#1uRVצMeeՄyIWH#3\r0HCEˇ'gG&~IU9վ`U{_NBÿ{_"ٰDm;[͟i%Sep'#A.*~ɲJZ݈\)+f'YqOmO ?^FnhҊd΃ $IMKfG-@EB}ԫM/ߔҰgQ\|K_Ҍ'gR :#tNK 5}_Pܥ !g= \]$O:(\yJܯ/AMXa-`̒{ c#0!؂oC_Çf5g~H!( o;fLRogZIv #"׾oj(l6n}b|t &e[p 8h9IoH{P7@ N~85Й4X {Ym7E=(tq=1f*#א&kCGc/J/% x$^7a`m_煜IWQMo5h ^v[ľ}`J ֱ1w8M6v6%_37́e8iYݤYdڥwz'[N,nwժ+%,~K)vcMxk`^jG,P,&$[Y@#&}r9 C/:Dlz[Ø:MШ؃d&8tu! $6&k\nV]G^+hY?'D IWƴss%W[H([ *X G84v?zş KI'~^"Yi}}fQMʚupfʨ}{Skju Jm/uIw0F{ 5Vz85L&y"6w2Q|{#~BC++mf:&]^D]q(@a0%'BBƜ(,6]weudҌhxKKKaJ߳,)@{`zWeWA 8åm&V%Z3X)_zj1{bvCk rGƤ}I܅WUbpR>sW7%+_To-*\[jU(1?#Y[i/ wJD;_匓I ]3ئ";Lޯ7IVs196Tg`qJxe-Sr9feg$1gY5^KkAȵvQ`[Z &X+ƤI%c:ae F^WƜ'Q4 O˚SNL\恔ԅ#$Qhh@&?1!|)HF~CU!w P0 -gu'g JY0֧0R(WA%W+(^4=YX]X(Ov2Z(}> 객!=)Irb 9P*V+UutH粴6lfqnd# 0X|Dat6֗|7;nӔ3$+SQ:GLu|$Wʵqű_zP_ VO3C03)kZ5)yM#?SDUJ 7 {w.*Z,evQ06%p@UGF #5T[4Ec/v"v󞫧:p ?w{|O.hd*&q+yy:K ſ>!А*ylD{Kye۔rHU#-%]fm?wB>}fYBZhҪlmzk[Jl c!;3b$YlNmĔ|dٞI&ϗ\C%ؘK04Jjt0ENNd?Xs ৢ̴%P-`$5,pM,~hK6VXBԀ ;|#\uztsgqYbVM@BPSHrV.~6SMc<1R9?q4y]ց~ IvgrW<^BDh\@,,R9#6} ivSDrd * 6Mf[,v{-G2k QOp-¾.`{+tn:`,B[yJWQ@?2j0+bߔfq@ ,i;F;ٵxPY2 fJxܒ'DǢP__զHu>!7pV3lUuoshQ) Cpc7i'LǷNAؘN]"LPn(gjbmB v W$XX#g45CnZ`3A&coܯT?p$cL+|e G<#doҿnOduW~!r-X6C1<{'s T kR"pK_cG?arȘeϽC:LN/#($c҆I}ILS|\}6<]gVB)sʵ|;Z7]h.wꨭJ` m/v%+ Oj&6!?D i|PTAէsRߎ-Bq1C_ɖjRy#_ *'+#%ӛDȐ8yztS48̚oHol6tʿv|[@eE|EkgHX@ ׊ 0R,,5 .h@'N44-iB&|:mRXo\#n/!,+>$BV%*q!Rn͡8<ߩۅ_y Њ:W2^Lv{:Pxf.-`y\ InQA%g4S~ZDŽJ[z޽:~&v%PrTV~>A[qwcG.8LS A}mj5­T%<{"s [m^pf6X3v7gBȣ@)堜>P s %Jy}$ 3?;#ϠQ(T}??2Gv+Hɰ9=OisWH9%WG>oZmf dĹGLʊÀq"TRodqT2%TDsؤ6-+Id ؂txA*2/dZ直da>)7;bxrv| 1~~I}vd{4uG!wu6H;qZri4wjL#ͧž4xshAT)*BAۏS_TidPr歘v !GOsum]:Y.וec!&7S' 6+KJprVI}˳hz8%N( ^Ó֊G&W&r IqTt:7"(T_5ܛ Aҩfܬg)`@=24 3r]U+" .p^u?\YUE)pr둌G ;dwi^kDeA =`t il6A%<HYm`8IꢊdAwp:n)i7wB&Z6SzOS֖iܘ#ZT)ZB&i`-H#\ 0`M75Yh7}?Ш@zeDR5e]b/XWz͢b.*0sNxGT N6u3YS#T_kˇֲٿؾ/]2v?!u()iuyFbzR(n-_ϭjY&QC]*KK p8T߉8 z^ۃOU7?M>#cĂv?uE"i!&ڳC3wu>nvR2]GqpƏ|!M?5Fn~/m.$5lIg>EjI ~[>'.V6ѡmM**\^c:t]?6 M A{KDR=bK>Hچ@Du%Qn.IfNC˛-TW<$86HKue=Er%w=To6:@ l{ /esD'ص+Qy#dhcw?S8ScReQ-M~78ړ~Ne,D M3 ،>=+v1;$HߊAPf7bqjè0܄ 3& hv G&קEElhٚT䦱jv+Ho,*w:`E~&~pNzf(X:ReKqB߷BRnZ~ET&P *Tu$E+>B?#+;ҜDJ#D luAQ5D}S [!! ћM)I"tM|?T#m a_XòSxsf3wCt9kerKT7W7Z%7;0 Ќ oYDwj*IR?oklyPWZ·Zyi_ԨJߦI<.꜉C4{3 ޜP F`i\/0ae#LڹTa__[ijJI'#^ޥe{7-$ Ek/w,i 15u`eT<=O{[9vW䏈?,蠷0 gw]bn ed}ѽ(MXFCz=/lbX%!&.woh]y5zQo\mojß1ko`{'Ӎw܌$|A a+,okƢ q6VCIe5eEH߅ ;4wԮ.`_wANo[N;~$UEzpN.BUt&G,\ `ZN.ν#ʖ_<Gu{U^d-hZ}Nߋ-ueG?åç<,. ui)D L)i7eh1nEmZöq1 @Epsd9߰=/S`)iTjm7sWBsѹx[QwR $[C 2z˴̳'UE5N0.Ji nb#oZ e|xtEw<9uæow.T ®(`0yO탪ՖPFn1`4%ּ.A E5t}d=M.bN?$̾oNZ$˥~# Zb(u_sA2@ gO6*Sa= =|oDzVV6X B=PjHmxI~:-xᅒvrS@-4rZ MZ_)Ej^FsVnM'yŮ6^JXvV^Fmbn쌅i\vFҗ"K99Uwk&fvRR3wRƓ%ݚ5i=;J"xC,{"VkP.ΔeF(lHo:TK((^ya"͂>O`sF,nOo2I r8.6Sq%HMnЊ{a1D`$d8<_wlk!ϲ?G[?I)貕ed%=޼6%V/,Kl)2_YjU&hI=IbMs qx_XC #=GƻB,{.ƌRK͔]XfR2c]90=vޢ192NK\7_`@$WMj EmpT%,_`؆}ۂ/eYC~{lW"'f5&jmVvE.fq&WkƓˈP`Ec )P?7a\ɔkՑu.\숏e@zOCÈ&H70߄s "TgCh+K'F,:UJOwd=Z!ӵ;.BBwv{~~yqׅ :02_D{E)P8;r WW$a* iayS{;8&wվ1mT:'@+]ޟK+- dy$5P `_o1<Gu Ś\ "YdžgWcʗ Q(/G ivVrY'$XPeI)r%/ZʙN/e2xQIky ;EX#ٝoz+D@Q+̟cledAc !jfa Uť_0Wn Ԉ4˜C!m]ӂ>mJu= ۃd(RϏ `_pwhy};x{"Zo~c_A>k[uוR*9/^Tӂ|+rW(2*7Ьrdh[GJ:f&PLmĚK5Ԗ"-܉pmBlä&}6-N&;^ٻ҈[ry j-H~^(qu"Z?9'qF?]]Nm`{/HY/iO..YƢU),Qd8mt,@^lMisxe_Ɠ2EK f D%#=MT5A ={R Ka++- is1/]T΁y#6$ʈ9]&1EBg80%xbdYy.dzI,m){h3¨7Ӎ04As` ҺB}ʟ1lWi-h5bLIDDhmupNb -,s<^oOD _m[?2f{x3mJY`TN+sK?L$k#*bpa-k6lB8b W !`. zh%޻R kF/^t M4ح1`0|~2'<*SmEiT6Hkuv3p2ì{zdKRs9p܌ZX{]߇xײKR2is|)0ᗿMr;l5+.@&!#yuLp@ć7CuW-1`ʂFZ(0 WO|dRhk* :nJ߀(WQN-w&7=/;'IsM<d7 3 Ÿ+Gp9 T=4v̭8U`9iYTϔ$ :ƾҤSG@U!UBcSӻ~&PօݑQUЬp`a3p]}}"˨?i HIU.ߥ%:|ehiko0[lPN@g+t}-ƚ,M:83Gx5݂J{}P0PmyMtt.>ѣ!$MHC߬K$5JaYs4#G&9+-#])zoW$P;b&2>vߐҚƇ3̰X7[Y vbn˶7i;7ϻŎ129/% .QPվ`6c*%Fe!/ciK]-mMNe-S͝/1n=G-_0tVg_ sPƂmՉl ]F{t \w஛EUko[mWc<<g0{mN{JH_:e=A%VAy[SP1=  y+!ý`~"f>s܌緑-H/&s[uTL0Exkd˜W(}%{u㿳1WW-%qu͚1X7XPhc*#4b\2c^ބ޼4%cj$ܔ7Q!ß.4]+K}7|lgςWyآsWWגdATL'_[2qr0yv t)# l>@>oe7[f|8{]Ag`ߘH-f- k j+ $ <: SpKa2K`y,K9/4=$?A (?-:T" M#d5 Y7ؗUz Fen8S Ml!Ht[KI4T fT\wTQ8dè@ zog|>u^vh87G(bm߹9C.Dxn!gr#gCbĠ]<l. g`MJ*. bF7vc"y1d j*Ib,H$ܑ#L2#c4cMw 6V5l,@ Ws>_qIL`CEMa(O vhܾ;7Ow0k s~2!5?c6&oĎ –K=5rn!RIh"RR;dasπ?(c &u`s(5_ ԸdL%r,8) --++5KƐ7Vy!}M/om(KSZ7g)sSmXkgs C" 0= I^ǎ9=l-dz;8ili$K)nZ# Q?;l$ilM1_Lf \R,V ҝQF)2gDù1rMX>~TIŋq!BM\20 7&-Liݾu#x4pa93{dzy9엥 UUU:SKl^אJ>I"^\̿:#0Wg+^#!בj٠*ХytVUU;rd-/Ofm&n ıޜ 5& d4tp9M'] }|BO׼ʼn_mGY#1@@NjgAy 8I#rzQ%V{zӇjkh! и$Xݶ퀨ś!GY}GPԣGPMJI(p3 Pp[i@0Sxbek"TWrN``L>?߅0a{z:Q Tg,!&8:Y-; G1>=_.NMcf/(:I 79*0:mKݿՍD|LdnFvX)JhAAD矘y0O| A&J{{ RMݜMvͻ`;Is'(Q9맒&?DzR$z4 鬀b& #;bqS>?1}q ehT2+X3--8Q2c'PpY7W!222*6]zՀz)p3Z,=!ωT䢢cPDȠ”TahZIl#[FL MO͙M߿K8$= =sx@dddX c%pxj ~op3#ci&(9y4֒Po%,2) 7Ӏici**!vĉ_5yjG,EBܒ% @MRht!ɄNfV| CJ!/)nFI!೺NrRW?IzAt |()!t8aȏb\fA^3MwpH^8TjS'V5kxTt3[uʵ&D"q@= :UMq1̈́lA4#3se^@$! \'QB31/KX5@3לQHɱF ŦUmݒN1zm%̏O~yGw֨Q"pڱWWfOb(ڰ\y._#Eu6 t :w"piUUcgt ?+*P%bMIUz.s p~L3M/ML83SvCPHAGh ;mN"4)a׀\z0%pm'+#yu֘~B nrG@=" ȓ yF#/pDe*-Drd ޫP4i'!lQ8p nb6k`S3(ZkklRi4nuZl3L!)J~ W vhng}n̑d0;E}+-:  @-! =d2wq)y _ժ8q~kZlɃ]bnǤC8n\'(I{=w˧ٓO.E6܇"X@ufTEaX:EP(_)|$޿jobvں?j:z܉իe(<9N0Py&K$ & Ut[riT>|xR鯉:z;~}9+ v҅>0H ?RuHmOe(O( ?\n?eBDF;B qx/W>hzR%}w!W neѮ*o<󧙻d9Tv?5a2<{BAqKSI "Ҙ, Qޛ&$YM=5;#H\¡vurN8iJ.pbw.+vtQ! tpm[S U %AJ5Pd! \0gt3K\X5(vZ ŎUiB },*\-=@E( dzcFN㾈*-d͉_J0c }ZNAmr>PPIꆷڳ)oI-;" sBeΗo{t)6â89Ι|9JcO+D >Day<q Gq\[`ꤐx3֦~ %bh!RwZk쫹l }BU1\bgF z췜uP_7p@A 5sBw9r\Txn+n )=IiLɜx\ '/~UfiD PKp=\7w{k=Tg-?r^ǝ^/^kM,)) lYHpduQw]ygJK _:}ɱtfL.2,||x[%μ[pD_^F4A͸s-Y,2R+t>q2;BHl-kNn!b>K>-[/#;-"?=/(,T:&Em r>XB-.>'܎;* ~˩6Áț^?v8yF%[u՞,n<\=տGjy$G^Fr W2n#vUYJ슗i˚go&6Z[pbGsOb!S ʲf9Կ1,TR~&) =x'HhlU,<#HVdTVl+J7䶖=a]oC/ڝ nYD]|h<3)z@=,܌gq?̪bo-i/l&˿ӄ\ٯ}HVb7(y^V۳][[l{GaQBaB2)ym!S_qJ#MQək$ʼ+8|~jTf!_(iV_.A\Y|_h|ze'\Qh`(;Ё #EDho~ڸVW# w ˘N&AR{o7 #.%,ҞjYu4\>qRsȐ1 u&+L!BHW`v`ϯ,*nL-$| ;O[usz[y^r4^bF|IS{R(X_Soeu;?kL'9!Zv0<۔zBg[ 1 SNSoo~,QJzZ\QTZa~H^PK!~D*uj4zOύ j>(vyJ.(U9,8$O,F(j1 Ƀ9hZ&W/?ɤH.rj>Cﶶg ObKTfsZK,ψm/1n1&gƔm*'}4p~GpyH4H7ޣ\#e-91t *: 0QV h`4QK0Aчj3LRWŶu32"Dž"xYH{PVvSI<(4!ͭ,bAKX"75sNLݐ\nT*lb9"CysxDQde1)$~qBamoC 'v lp/ϸyI'W}vqrļܳs]pj_r&!imhw"/~bLV+9^$< s E jG._kҀ+yi5RF$BN[wE5S-pTE=̂׆wOBT ]9 a$ Æ/hpocPt( ;drɡ4U\leI"xFlvs*?+Sv߻ Uf݋6TVbW{S0B2}pHT4Co86 %@5 tƤ*ԥ*DYH>' ߣU\0"+'Srvnvtf7-b"u!ĵ5wOWx4b׳\B;$=Xd4;p2NHifQ 9+J/tBr$RoSBQ_c~^RO mƯO\؀TĬylRtRaJʖ7ʧJջz㎄ E}Yu.yC=RvȻ`t6>+V3}Cv|%˙玲Y5))[*#1]_-zT_䏛1~/cl<t6Ǡ湗 GŁ׾=w Î[+WG]j݄pщ?j)uO98m@>TMM;b|%]-Jp4O!JB Nb?+# \ZNU}Huf[y:ثbK󱈙# 9qicls?|삀=|xZ]x5I%쇷byƱ-zFR[v`ci€(Xro2 \K}qį E[o>7ϓ։_Cƫ\V ImgiR!Kۿ9iΗ/}Nf FqY+5Rk`Br *p&*Q0iS)ٴX!H!6$ciV}0~nFE%.\ehjޑnr0AoE`f O O@ԎCzNם(}!GDY"8'~T`i{?ؔoS7}$Rw'M>kV랞D5@sgUj3d[}5>aR]j&%JȰ:B$BRa<J> >D5 (ƈ= %;yAyZ1Ȅ/Fa؜q]ſ;+G'\.KIh->G^)?ȊsΑ[$=$xE/9p7U ,#-7wBn1@봋%jfQ>8ddvQ Z_QzIx?ׁDC ;;~rqb#ƹKvndI h'??MhX ̞T14g*9Zx{ /|0V=[+N`$YS+F4M;2UUoϿIe&t dh xT_]ınFJ:95O!6QpgymxGWϵ{:~;SPe_{I囹ʈV(rH[_^ivU&V$U,~.A\t+DcEH_^)FA8m//wh;{zy}Agl5$8rXpF֮ôr~FZ&\}2jst%/&>Ȋ̉6i9B%AՒ6+⳼?":,R~:Jju m\.>Y~bL״.]e\^gV;R{?4M4AJ`9~qm镳#%13w6n[TOH,+S?~t:=G'H2㨲0̖ ]+~D\aSz}kft-#nYRVr=b9 C|]*?)H߹8DlgAkh6mĎ$5,I^h{s2ۓF4X$dHfyuj)aw8 nS@cgx\UbOZqJDNۨS%~v >N+xx;2|D~>l5e*1s\ꀚHo0_[-OhHXգ7Z4 I٭㒖O%O<4aVO/5~_!i֐7h2$/')bF~[/1W#~#>13^SRˮR,q P`S22d.fzy䇹z(9!s5$_rK%NAZ賜!T׋(z,[O78MX<+5EA| Fէfܙݚjm (q7."Sicc<C}sm dJ!JUMڽ_@#Ԇ 5B2+}5kʇG $Z 9'ze,_ִC=&xr]C&$'еLو"#/E mc+E& Io_!ު)OanZasGj2֗NEj! #; ߷-PC iT*K`o>!G'L|hLL\1-6Ph*`G $-1R2p#9o$"GyXY|.38+{nlzi R U$gDgTao$`BCD@l/;Fm"d8vGt jۚ_xkREDZ~ "MU%%?*bRa1QWw$HBc]Dm:}G)rSwSvޠBbDGrbb-'z( Q hi3қ(- \́!W0N>|q܊]ppѱhkqN)lCKtĻ?/^+)dC \I~OD^4v r3 9'&d ݵ?;vM#ܿbSV8=~05ˤm20 B2B ]"JXQF ط;ЏA>k}loJrP6.Trɹh,v[MDN,hyj}*vrfC_x:! Z(|ɽ0*z:$v Xg5,&/5bQ00&AX::wqyfL2ld V>⼼ D]柼>:窘~x( G N> %a͗:F@uO /n*F^Y^ `",XC"a6VRıL2$@q.0C BemfV1&5;ABQߔnS3Y,Uj&`{u2FHO/8-*a ~[nL, DN J `|/)\VY@Ý4ˁj^﷮Ld??& feel8 !y`^ʲ!ۘTy%.:ݸv*)r"OF}"=G֓A逜Tp,a6Z.ql*pYaPol`u"yj4^ Fݶ7 y&΂esmVdžȈ=4RrǛ_kCM `JY}McARgY;zȤ P2ash|ӑ#IzzN\'W4Z_:ْ +׿a1WfRgn?,vlv?D.wbx/ן4|ɦ)pQX QPC * s[ދw|Ge4;?A" y\`Kqoz\:xDVS#;R6e8m#=βqO[Rc˔.Hb=}Y\*^'$Rv*/Uf(bO܏E^0} P챩t]x=6>km+(/DA CHP9dLňVt999U 56XIv+v^R7IVǮ8+ڔ ˙aX661:T nP`AQd3/*~YNu $ QozR#'Ө-꼪4Y  }R;'aTgynBewAn4 QgJ%Pزiw>gZ0?F % d2bnS]xh$ ק,5)|QNPod?;.{r5CHuAQ'7vµj1'[YA# \;wm6,F媗΅n+wJﷶi}n I_'LdY?fK/)j|d]d#KdYC`wYR̵D !^Ua SY\L:#wɖBMGj wJ[xRX20Aǎui,#ʌ.$ xlXDa\ABRIye8hSvGrldov\0ma ˝*1ҩ?[b1|~Vh:kC(Stw!"ݠb> r~!u T!U8CE5\p' u)n߄^*gɥ]=5k GjD=@Xc{tׂpV;5=*#Nx2U`bC2^v?"=[7~Ѩ7؝d)U E)J m:dT_k*76>#5\5̯( gU^P/jcU9R8 s.|S ͞N\+xrS9XN 09"q ?@.uKVr#oӇ\i*҇~iC˝l5D.27q~i70wb>|S/d;x7 #s;q/c'c"Q7՛)xnQ=m`_I*Cs0jʘXH"cKlm4dvHqSHI7٬V;$:E Wmc~\QH5F\:)U^ "TԻ̵OPtp=[BhxdGA HֿFQX!JdW/ΚD$Q\wRM73 R]޽&>R<*Rk~&q e($m"PI %(k] HʶB-x`iyS a;#."%HXl& KP-BMXir>{ȫR6f"ŷX0F@m 8'PpPgH<b8s3\NL} Ǟc&1jZDy ƣO!R5"g7).)tV~]7d,G1k\D37 ^#5) 66Co#"*oosQ2Û9Q(1"nc׿W9}^ceDߘ -QH5+I"Er!+2Td.Y|zh֬,*OAR @5 >DinRL0b Cȳ KybW_ ~ `w8_B{RWuO="M;I0K=Ĺ'k$!34'C ޝ27./>8VA.-WOgjd/,OVGMcu&lWȱ$Bܻfh LXq5Qr6v}b7,'+z ڟl q].s?\R[QxwAGܾ|##Q60v2:F TKK;"_Os݂6ʗ6t P9EGijl܇pY#ǵFw^@Ka?ě1>+;s҄ ]U͇=r˄-hɓh-gqg`탯= q&߿(6 )99ҕLtg. KQaquvucF ~+iIX$[.D疦"#,kkS|2wI4bEb.LMdJ=Ӵ-]ݛ?Z@6%C1޳,;(wt2ѬV%$&^ﺋ&`(jztNsVuQ<-~1"N5ژmc.V[ 9PӞ~ ?_ɩ];w#VԔ!V/lr=j 8p=IQKuq6+y%t]K?!,IOX=X唆:7 dͫxL1$+h$mۥ!b=yTTCKr;ZZE{\e@++VIFX:oq Qg{0xe]Uch!^웳8;o%~=[--nFYj$1}yR>e$'S 24B/i0FrG5_IF;4OCɓ?Ĥ+WDZ,g39m$$bJ@dM]shyz4ʈS+ PI&\ΈDiO~<Nm a&;EN=o[? 5!:Eтy*Kymt*L&h^QمY+ǘqw1 KuC5>m='Dta{?0^w2"|vqK`:樻~ꓶxBی--:#s*3?Z E^ܬJ)֔{Zz3',̪Δ!\o7޽N(ff@<^ި6GR'[oz۷y;4`+wDH͌͋N>Ķ 3u(<0#B-pTך, TVzMf8BZw/k6ĩ t JAwmׇL:)YLN9j) {Mp1nb#o(#2! w𛱜&5e%}vS8C)n? w$( 2Z2Aڙ7FMa } aNRXvTfd'YWǙ#)hrr0=IfOG{v&lag/_Cvk$>bg NP>%>?o7QcF Xgs⢸)3K/Ng}d҅p准uF}FhzШ{ޘ$Gu- \T&+r<,@H^. F`pjkL&*\EU a֞e a;]6g8av2 *T8ji{Ylz/*}%ٙ`S#]d&eVlN$e#I,X2&*rU6)8$p@O5GOwja剀).|o<&l  vH8d&V(g772xG, =t(CE b*W&q y=Y;Fe3kjGxyO>VyΕs QQO WG& Td IP::tX AvzO?ړ͖8\s@h!8GP'2cTN@UBfgfī%X$f+1㜮̺'&e7o6z3V` OO[cz(Rt uSPjcyx%7nNs[m9c]&rA@|;2\<,: R"<-s˜7N*c7b d]ٲR*`(zgyYY<'Oz#SFp9rƟTEd`v.vЈ=g+5Dg~@8x" H==;~!ҝ]^Pj WLRzE-3/N) ;SɁҰD.Q2c]9B9j"ird !^\5biigz%xDyd~(FDy%L:'bS#m60rEc{`o!ǧPK"e=1k<@[[*nuvola/128x128/filesystems/folder_font.pngUT @ZAPQux E 4?߳}d_ 3#RT*2vȒefCJlc'ku}0Ϲ95z,g pۿ6[xtߠ~380I,r)BoHx򦇟y۝>fp51|ȓb5QE"F@OkSAE7@:QDRa&/13`v(HJ:82¾Bobl{o.$d0mSF ~YbIJʤmgLuzW XFEe-dn.8|,rkыR0yyI G;_ y6fQFmK(FMLw i߉U~]m"{wsK,cyfH0 h?{TҒ-rwy(\"')ԄޟhK[@˛{3l{)l檗4tp  tA}Nwi~ (8XNSH|ah(}~j=&Ĥ 0i(&`g }!dWJߍB .#c^` GvvG1MƉ4X;B0kE ,Y'iz?E~:Zhzr ?75BHccc, 9ptB!19% wf[Ӊ 4U)'5T|b{o[ r(aD^zJr}/JrvE^&O8}?f=u Z֏-gFK68|-yLNj,22?W+ᩉơ;;JKo]9› ieͣ5bxĹ$ ?j8BQ#& /Ǫxr=P Q?$=8"9!\.Ȓ^&fDcZSz[ǯ*"WgGU)Ю+ng#CCHuzr؛@46} Y ё7hOs`QR[n6}oXsZsM!HLJo n刹XYٔoKGj~yBDpo_sh5)g\b5mwdUG/?`mHz(DS/[=> h'5 :4@zu4t :}ByHS RN,lCؤagOjxsȭ6+ccN%ddEPJ Q~"v7ڪ"ND*͏_%t>37sQ,[*iZ?GxI<|) = [IwWK$"EX}%)tXEG\ /Ι{ 0vVfOݗp}j71o߹ZBݷ[K ƀ64fl7l/F"`h@OO/ ~)}MMM7ѹYHᚐ3iksKu˙r:.eԲ?ǍAꪂӋq2ʀ$v$;9ۚA/+2'~_' ass$s~;D/.vF^ 1$yZ< ~HU ?)\3Cpw0:,j zezZhMmz7r9~F#N]Ұ_AVrg=&'fn$C5`6r'6? m-%0Ju2HdSŖ{SqUa@r5)4^!lL2[L^ :QIMrKRɴ?ل(: A: =1Jr)')@,:wv#1;z跧!h=}UoLtn4ꊕ Qo)O<=^on b'Ǣql'˜tΝwiG𧎬Pl93t. )DC:Ǹ0zz: >ށ\=ac8qUVJ)8# A7}bbV*<ɍ ߿Ҧ^wZ/ !Z(W М ZZ { K:;L?gQ9_~ e<u,1ySH7Q)g}1HB?߷O\L 9 @Td &cq4=v;Ke?WuΆ]yel쬷S`+u\n 9^:6>}*Gq.ɲI7% d۷ؗR蔼m;_$H+|QohVtm])u98Ƶڽud++_yrdneLSMK᪪;Fs/ 㖆\$1 DB|^~`T+ ᡋ6ck BמS|l(IꨇA]@lF-$}@Y-kE 0ʽ PLnwmW?'DW3mT,Lա3\a<׆FWfB9.XʀQ6e٣sfbc'}.A Ai{eiN$Ypq1F}\wK1gcJwG^]m|[IΉFf-W&z$?JTlUO24t}7ic:0VOxyGf~uLGMNKW>.dc檃MT O9O?Om6:&W-c/ToZnO|DxdEӰ0[icm7̟ģ㏭Ĕv?^g"ؠ-FLoL4!5*Ff=7qqCՊduT GFVSYrK73,g9(/~)yR*v#N"'ڇ؛ _kn&I5Ǐn-54"z0i5׏[sh{b%q86Wz tt&|lb ;}$`kҞAb&aRX]TrY$/:˘PT.ڦxsa:UdS}DuhWV*!m--i EŦa6YC0{"S+פtR#q*tޡdp_ $D;I aZfdpe8npwJk&%$C~aF`bZWx]$wb&,D#L<*44cwJ-jTG>~8R7g>1|d`Zya:ڥaG5;r%߽j/PVOpڐ )Hԗ;<G͑4˭ST؝LȌw%ōŻe;e YaMKS". zEs[,^ ovH{/a=]ǁ4?lLTbk=y."6!cA|zV]*IF^<$ts.Yq^D;خ1z;ɱ.\i+kd:GTo3K.EaBɎB{i!NsڑS=5U{O'xhyY% zV)>"kv$(Ȱ[J'KKJ^51iG>,L3"S"`my0'BOC&EՁN6j|@r{g~ĩz]7K1yo즯E-kaByZ<(\{ZovoòM,I;oVcqh7:wFuY[[I ݏ$A3Q5m\a{@@+`"V8e ߛljC"Xq~oCfWJ`:Öuz( |I+)j,S!`Τ'DaNMCoxpiS$ ju3&I yV. 4i2@Ovڞ<}_ a37?=eG-tKo BY6y}+W4YxT>q҇<.Y/L}XR~5Ͻ;R{/@3'=nNU#[G`V?۰d8O() 9b yO݄Ӕ2eZȇl^_.??aRkS;{Vr풷"g'--ͨ!c;n &U!y.ѤɄ[XEAGa=24u5n `̂) Zƒ q )w~EYe}b5G" INӬtÍ'(׋6 qz܇'0h,Mڒ2^=pa%FD+ě@*N>l|`QL}CE?Nz˫Pb71nKFv{&N&0_Z?rJU~Z1LRz Z1В}IN|yŞfYL\BjO*3FORG (64Em**& 0vjr+"u, /D]TW6nW2uRokԭʱ /^+E 7cG܄0|Iȓc2΁S69v/Qzvu)_GM7J*@Oypp]iRB,`"#XsT9^6gmC< cK9uL4 ;y+ul𔊓P{];܌a1ܒ W <5ZBsB x ?.[$KSC{o6O[s_+w:] zb[ks[C2j^(vFitiӠmk22u i#-Wڼ [_Ήڢ{C] s==!zEAy܌:y}9*ޗ; LKܰ~K`(e80SLEUJQ=㖌?rI?kj/WXǪd+a; ]4w)$DvA1Bbq2Nsl)QP9m7hf +A`? wzj~ Nܝ:2_rK-F4?̓؏X52BZx śIJIӶ7%v%gJ}:;X xYvٗ(#̄A7?bF'd;,5ޜ2GP: n?{a*5^'D{$0OJ8uJ5@ͺ 5^my2(uLIg'sc[+zTt%# Ʌ*i-|52$}f}ARUMF a{/Kǰ:;aie(w{TZ?ZPbq"MǰHZ[g t UF:[q~]2*YqTscYI2t2a15U.>_צ]D,Ra3%lPXçEA9<)rt"!Cx˔ز&g?1Eik' go6 !b g ۇh nC<4esoedu.JH&ptzwX#A|I!3yϹJlM3Q.g:~ONn1T:]=-*DHr Mg{fy?lq-bPU$9ظ= RShØwNut@,\QDlN H=e*1x*M}@3aAs&Shfܹ \nLd[ ^2֛pN+Q9=QxC|ASL@Kxq^Am04@~I?qD?8|h/R4X/ ]Sӗ3o)֦\[\P>uHJ j\ FkP< `U3&hh-ɠ<CC@qo1N6<opkG\\4uy!ѱ *f*THnNA#c>ږZ+-QFNq7gaP>k#TPM.l58/j/n4?r&ziM#-7㔜5X/ܵ%&^6ڷ lb߅g ,H[1Vm1BҪ~^LּZsj Q@[ *zs'џV9@`!)yWr=VThS% p:{:Gʿ@$IQ۱T.C=d$ ,p3/iƾXY[ nﱏ MvzX>Oځ_'B5_P. ԍ+hCD(@LݐWoVhnSW(xl"޴08#4'T-Զg=)QG03tīX܌E-bZ6mp@Zxow1} R6>TY}0^-=_E6b)EOgGKN&HmjY'蘔Lk9aÓ U7Mma ϷQ$˺\Ϧj"rq/{fSDFtTsX(2JcDzBC]}ks >tѨHzxD<"YkZໝKiU2N(_uXnb?UYLcY_Pnfח#N )Гs:( 9BOJ&`S].C#t\ڽeHb&͕p{iD8^GJOH@k2ηq˯>PJMM4 F;LŘrs]]NBZp0s̕}L˙У2}im` dK~>~9W =4{^KZ؎ ]yaT]FFIo]}Zۀ˰\ȱnݚEVЯuasxgU{^m['O9FoQ>UvPug^n:2>t\䡦 ~r{!}~! >.)ryƀrjEޕ׳/}9z<_"~n{>prktJo޲Amem>ѥc8t!yPIS8yv[MFC5E8\>qշLRͣF󖖷mz7āw!27ryiUn FCk;nյ‘?q{yQ2t9œ3Q-v-kg3!&o_<|8 sfJn>y]@ :$놑s{빨1)%bp[s25m93 6lcn6& 'CC[M ^qRX% NyQ#`x|)NaUJ̰RӢ,zuF ö́ VOO{ߥ{;cX^Ywnܔm<Y;,G C`-"z$@m%/U>[9>-uY+G~6h{=Zv =]Y_}_~{  aUU)`)[oE=7 O篮P9^>ݹpű%<'Emi34exF ?vX2}5BꜞfO*G8ˊ ɞ`]T2 :Уo>埏] im(ģJyk -\_7UU$eˌ؜m8q%RjǛ>{%(kPY?^oWO/QNvhߨDMSz$ᮣ^x{+Hб?~C^"Eve'qVtxzË5WzQeEᯍIq8ū +Wd\`YiTeD؍$كɾ/׈GB'R,~p"ѼȗJoFURuys_QI ;j`]6E)y()>/K+|.K 2 c z=]}F2Aދ,@99uKgK3W@tK1kCEc- aLZ{eu.];}S5I=t-98g7w|pXͷ1rdk/!3?F܆Ou$qr^Se[> L53)R z>SS>~XKlt&rʆX +GGnr,WtQIytkZAhDR֚DΩ=ZԕJj r >Zn77l"7%\77>Kռ1wH&tv;<\ O**|G hQ4HVj-ь3ZAAݯMawTL9T,ɑ땵AmK' L:Q;hu1-X`1C֪Dʞ1ﮘ?wo]M;N˾";'=mNm5u VUs'_IߋTwb^*usOؿz],foe,~'%v@5i 8[2u6{]QJw;R M  oڦ!Xs}׸$ZS$Ī !6x}; 5ϔ>䵀A[HwBOw/#QReAAPO4 sXa ڊD)p5ƘP\/SBR\i/݅NŎy~}43 ⣎xf Ä+JCߜ'^T1).Ǹ>5ڜtT ]Hcc`(|*+4>]Ewqd'$=Ǝ͛[#sF@pt .}$4+c__7*ͷJ݄_a>bT&5 XvmuɕDXuhǓ{PVaV(ܰu Me3tW4> _cb`FG< }(K;7augZfj2}Ѣ0[z@W3/<*,b\}/&R=|,Հ x҂ ͌al˨3D@d4ɵzuӛz)0.7As8ΕCiÁ15 }nԵY_/_"p@`2wkZx[y@wbvChɁO D[(|iadUJwˈ'(ϭ#G}>.FÁ`FW^_=%-B7 FIY&H˵ddœ#[~8 KSlePw %݅b)۱Ԣ~+FX^{AHB[𢭗_ח5OcR{ګ=`쟤>YVoL K_.Xd;`h?FYY楍psi+BS+g#)J4k`Ãe4]kA8 6K87v7OƂVX ]}A\ +F·@?HL=6Krf_l6Gw\65:;oGJYI530_RF'Ej8%޾#X@$P&c %.qAJd ] 2^%d @I(E >\<@^ب(d2,XܘCg9ӐGtB3Xn8 *$dKN}}!i' pE8q8& xsVMT % ' ^ဨ[JG,$!ٟqC>U4RO;rXvU GN kA@;Ea0(S+qH?[}}C\oxIQ!xT^*&Aw6HQsPM}U$ R踲pQ vq~SF_zEͣ%QEnk-p|H}iLDqsigZ7G#JԮKod U4z'TEV"`z /pH8q/KCq^\<[ }8(I=pRq z+mEbv`.LP{NxJɷa{ԭ( DlN^+QH%eA0C,Q6ӹ%?Ϳg`x_7J^ȝ,a}|a>F_ft@a#ϋ4.gl %2u,dE ->br9]qBJbj4墊YGxHuFeYsF \dTu4 8K8qWGh2NT5W]VP|.EHLKUvF{\`T^X}9C xt\GwOLY/-2pMf0bjV7Nnn歍"?mzkNѻ>_ŧYxtPv]OVw,m!-t 4_}AbH*cC>ݷo/|jU4齇7"W, U6$ D~~+F/ jo;%R#ﻭ1^I>Y߃.$ؑGi%G'J5;C^$ It^{ǽV[ Yé[Bq *0L}OhPʏw.@?'aÁz.s@#lgNtf=ReԞ|>Qo%?D@Ѭ ^'{C쟯4 DJ*8Eud~i=B ,ڃ֦pmŻ x‹iOwf- ko 4ftt&B:L 3 *!O)_fWO=:y9\VLM׋{CF  /i/s/]yCRbcFP ;F ľc7s&ypJ2cOWpfx-`'LBQ|T(䋕ܰf7_ww͛텡B6&6 .8$ݞ6|Iu6\bmcCgkS8}Od'}H$ uR:1M]u`:Ӱ{gagO܆I/x7O4ֲ̥J@N1oGS])|e,^'N^SI95#k4L{$ab9]^vt<ޠbfx*/PuE\Nun6h5>%;} {r YcHg০8]o7Z 1ukۏ$Hp[l0 c?>~BwC\*>q RnߙWy׀"+S8skߑ`zt=wK!^`Kcsq*Xz)DR;6DKl="y̜፠6O$W)ea":0k|*F1){Q! {SإUI[KG^ Og]FS5⛴;pG4j rax>lB* w=,_YAbU2FP2A-,Q0TR+;d+T ,[?WJ3瞿y;Gs]R۞o0P $BRQvFﯤǯ1ic`z\[1VGE˚כ/W(++ 1{v B~VHwٻՔvo ʽ.RLOLO54;R=PoJi(6WZh"ɕ}hv e?Qn*U|o(WZSbCۜ:>.QJ|FI_g8ӑa;Jͅ3ěHNGdm F/_$&k)4?1Cl5v(iTnUݠóؠxG0V( $DH/}<50)РA?0+HޠCAxƯVxb;˾."x ӣk`ӏ+*'c_Zg~)SKK-hoH0rnxm/ޒ D4 7[͚X{Ew7Ę:{zd-t)ד΁d ds&;;7yCI*oʾ$RwrC JC$M2OKٴnot@չD^b܄8ree<3㺽0RhB!݀OID6Vdcq/>HkNz zl g:$}F 66gb^Ƙwѐx*wA]̉%C2``s_߿S| h@ճ9 1g$G? 帗cq3`)F ojs_ 埛RbswFh֢'ps%FH[@69Yo?LoڮDOB:έ+iϓVFH}lJ5MS|E>+dt `3k D\O jQߙ {_xo*( @eOg# ՏP~+>r02Cg<3Aw:"ڊ9sӋ~/:^#G=nW4R:4x:Sg}_ u@+Î1};ą?*c~l9C[ʨRJNҼ̫#ه2;h[`sEE_N3Dui0>:"mw/B_tj}-$|H `ʭHߴ V[ ʹ%[6wfj`حicE):P !G~V-Bg\q."}w.*oME.ߦ"RЃ y$c)XxSR\ X2] @!/P=BpOꖖXt'h퇴lF V_WAa@b{?\'px4v%FB*ՙ O˱C~Kx߸Em*Sq'yؚN'Anma1zPZ?Ei"}B*SÎkoa/maqFSxxw+"CIh*6ܒ]T nHDYᵸ ȕ18!n }>)= 5 X{Wu+ES,CflHBMڄzښ,}WF'GO v2@?MK˻z(oT}–Wv0X `<ՓbˋOe)j)s~+-PJh,}_]XgW&F8.YH|pqܧ 0-ub{݀8p9ͷ/nQ0z(.A?`.gkcXMg1\*B ʘuԸt8}kCwpDxUv3E"UPHPق:IX](UbwsCH"L<kCfR_prด^BQCs XOh8$Xs bOw&E拻H6*qD6-bo45Os^(ce"c{ XOEa.<nqg<sVH;,[(pܳ:z c.aA2ZxO 5{/ֽkjc'G:/)UrOz"^:n?f/BP4^4zW.čEo5~՘BC ߓ.}=.pcEC{=>Fn3a<!MDS3VAFNOY1ZivOp);^.8!BH T*f6V%ӀeR>3ڑPѩ k+bIm{iI!>}p`Tj2Nȭŕ\ -lU4Ӡ4T6pgQy'KA^ۮڼ?;XvA­ p~bs@VykSJgwHRst Tb.N䘾1l^认68l~뒟Q:]6_CPMD_ʬjANNUE_͹mUSVNg۝ԓ͢ګtw*C㟫s@=ny aq Q,p9#=nj$N+_4#c4u`F^f/UIK }K#e9Ab~0+K~(VppΠ2P^`+WWhLT5DV3U]]R*#^u?M I/. Q[Li{ds^:,W6RZ^60*cuپLFGB4LSʔ9M. Q H+&+2/ ![,$}mK$`^Mo{w8Lj<,ꕎgCas'&w)/u?b6ȕ}^nY^)f=x4o[覉'NpWq$\ߺSdeX/,D;@IG*@ uYkpM6qD<`Z}Vo?KE]ih鶵饂g J3c$(*$6f\ $Pc#sc{ S}ȇRua7A.V-ZJSE&տd&Me0έipjȟs0 ׬Hi!r̶Ws%sleG^p(v7mسe}+'xV`O}VqÏW|["Nz\/<#ouNeU/D(㫚Ӭ|Ɋ?g1XhLj3 W?40ATӧM!k}'m\Edb+cR!D&^e41rRgfpPV{g[-⥺Z(0Xsx96zxbـ(%Ӣ͓r{JXl̾v)^y0hH]23 k旔tXm\ {B~|Zұ7[F/F^¬֐@yK{'99H]Uw8[/42&l4hvhsXlx KcoIʒC ~K4,!C(_jubBQXoqO0@v|w.q5zdPuYlaru®CY~ɇrpLs+Z9,KU0ft!M @&BRmSsMH[µ:T>n~mЬAL'JҌK88k{{(@9-!<>uP~զ.ASMyBoL @-V bJT:G'Ty;󵘔ug;sO%@)c)_u\F[K&!ЕkP0T#S341dTGAoMwa0jwO'e|%g I,8tYG;U>} G=xs6*nv\jf#+::h4W郹; T&|(VPc1- 7)o@z-hn9X83Wa:kGdG)~zYeqOh1R<||-Lߐ67ȑpU !ބF,3) `b4-8W..a^m6B{?bun>@GX@2R<6:X T/|n@1zqBPfws2s>>[96䢐{n35Pjl&e3^|<@]r*``8yK|PKe=1{8TU+nuvola/128x128/filesystems/folder_games.pngUT 8ZAPQux 5gT]6<B$t+4 B AtEAQ%** @DADRC|\~Yk2k#{(3&({omh7&us' @Ec|W쑨ظPd`xC=j=-'h<][@^Ȥ@SwD@q?;p(b~p C$45  "szXb"Mػ>Yf]`w$e6^Phub+3''`ܾ}{pu~S Zh?Ci/&P7`STڢn-@o{OK:-԰yFu)eƾj`F GEֽ瀓ҟu#3 FH/$"sGa-Lyy9 Z93Mm})k!#/"wuΆ&kH og/JKjP4[წO;}aaE hƪX͕c)K.J\66E}}MG\tg/?xpkJ 7^n<*pmih(ܱã2;NHZ^LٜtҾ$Uz5 Jy4K`Ւo%{D}Y#@R@0<@|٬ 7նvp~яmúnmK:]KNc%IL؄:wA",, K3ȇ]ONqh3}*)EQcf2Gͱ9sĥ#\xը`}eDkug 2hģV?ySPJ(X`Wq`m7%^)zA}i/#( 0.H@;#Q;]Rl# !Jr陥{ޫ*2=j $ 1f̚gFBؠ $IN&pWb=2w&-=6lR0;ɐjPƮlm͒R $}v~4Deeq哸"za1on<YR ̳sr_Մyh4S P`|IEкE#A+2nHO9nZ\]dȰ*9^UU A΋-j6g^4 ,ϵz2IŪVԇi0 e! %֬^`8 ĦLP:{$^(A aKUX ׀Wp-sHUՃ]ff'!8Uw c_` .61l꿯rT5KM^)B;w- ֘HIkr795K4b;: \RZj}Lϻpҍ۷2pwXmh-VF R64QO^|(#|j.ˉP qss3!L&AIiQ$Ie@dUFEAY[ KimWWJ@t:x6~P2#`w\R6aZ? Ntw/IoyU"5ApuSS)qD uʇuh)8<枰FR:K22Q~v@.)ʲ6W+Yxy]LDQMe.xuŴHcqX2_Vg>zdywH< ޑHII/´}@ y`pF Hǜ R/@KVy}~e0 -g DE ,6NL4A,QUU"P\Uy@5a8YlI+˕(5!mb )>j'!j|yK]1-a̳n"@:#2NZ?cmKee%]\ض_M.ӄHBfwvRa@6  8֢JaB/0#,,oi[5ڔ ?YCjXQrVlpIDCBB&֝d8pSMjVe 5uv\8NoH(Cx8J(ud735䤔+W畬4ГMBJVhxn.eBר1Bi%ߠwfچ ̀KiL Gr4787:䓤 l,K .{3 (i&K[301L$M\B@)^g>9,@Zp '}98rr5&uaݤqӐNiAa=RT )bq&5H+/8 My鞃)EOc#G+7mASt4 I?r\}7dUE~1b~ Qw.rڷyCI3 {!&`NS*A^0wXGfKnz,ė:J|B )qwŞ8$bw1L~wwJÆ3d6˦ 4e*Eϵ%TU &|;E yi_; [LܙZɽq􏢃Z2q@q5ԔnԾ{D!=hW=y=j4]OGkk>qDHV*ֹ༰;^OLԪܱX5};Ioe˝Z['ɲwSCeWo7Rm}X7Q;ԑx>Pu*M og}#V5E\Q5^5V[G- \1^[Zv\`r7^KF.ɩ/Zݫ{Kkߩs MneJ/_~*e()v7pb;^J|n~Њa߻>9+!N/+'IoXβx=:6PhˠʸH|xm|t0w̑0KHz%Pv\z.{KUHi+]|?V+v0I%ywӳ\(1[F ꯓݮߔq*GxDX/P ЯGdr"gemnOpfi8hA4]^$6y/}ږ&Թ ## ^c:DMKiFgF ?"pR0&NZE%}Of5򟅍ŕnI4YzXk%KjT5IRZ/ᘹUhfMs0Kɮ;Sw*75Tb\$ob~sX?aX{,G,cV5ce C De^"bx3NJIs/9WނAa~}{_hv)LRx%A@eNi3ɔJ|=Po-L~^ C]_ n 1 -R-<2]JZ^Uuk6,+~.L/zNt(pRݼp9L-L`lGw2 I66{ &dhg!dcʹ" T-M5ҹe\ ?b7wsMԛ˞Ȏ͡EhBrp>oVV;fKΉ<ű^D{w'[y2зEte|mYiAf ?N)DA)Է}wV 'Ծ=@eYm/7Z-$qgl'] mP,>"ߏ?ԫaQXƋmg׵o~y}L8zX7v Bob!5Á { hHc}X eS q'`Wv^߳i\:,nPzLdī"å`%l ~pk<'s*!cc?ȍBW*lhB*T2@#E_FɁ`rla&?Wxsgz_~5鵧ntclWr;69BJD,~PYcoa23wSl0ȷMԋrAZL1$e֥Exq=PpJO wD":lIiio}NYy}SS4dhn ߜL|}Էːp@ ۅYOƧzvW J5`?~YP[J}dfm1ytR?h-&OUpmWL)*Ƨ*pfx[i?39`biԔqS5[8NR&;㥧)Gr\m!Kԑ &@i!Hik'3uuT^}I*Zl%5+@?l+jrB(y7QMJ,l*<,<rqI{(u%\&nѬjD kf,'W&o2 tJ$y!?[;ҽ@ݯNLKƋc]r~e )=,QD(\,O{]aK&~YDz{ er˃Xb$GtU>|A >ju *]& mws }9U]4DNm6?;6:# iI1&'W?97@Au2(xaz~rQOzg*w}nZSS3_K4C]0~X2E)vC_%3Ie*N꫻ȁv l!ep 堑YRK]FFjh"*I`# zO"ܑJ9_:REBoҷm;U@6a) " Tr)߽mRh3|l Ǟ4Jb?^͒Xv촉FML2$3:щ ULJ8noSolL?Ayy'-7G\aKTD #o]2AԜ'>Jx־W;i¨B)R ;!$ǯ^WٹbO N#rddWi3 vbRk0(LqD5y#T)A&)' 'IXr_|H"o3JCM?L\ 2c 8{&1}T'/G҆'c>J%~p)5R~7}۞sQ7VPB'ͥcϏ?~*tpS= $ I7F$ =Iݞp X%gƆhNđ!Vy/&9n9,FV@}2pִD;'[;wKg?e {KT"'31, g }Cn̑'.1|oܨ 3A٭ڍ1-^EO QǏUnzMX3Dn#h%2y*y].=cR 'ILXNP6phm$=˔_fj#ʪ9GB^BF!/;(` @gv[mgjJVB!-U] (Su*ݯcEv}j́DY" Ɠ񝕸nx0\cFg_Z㶴1wxq[]$gHwBrouGc0&Iz>TKXuײ7x;5Aׅ9/u0.3A+&Ry*t J &!Idrw]9~w7+~%q F8[LM2S#]Sg\XwaƵ`:--\R.pK##)kpS!̅3\۱4=f$Sf"wY0~ۍ^邨T GS36M@p65M6)'³c 밞:~t=I't/";'=0\|\dYoNpBpQPfv"RdgO<ʟntq_$$sN5;8)$&Ʒ׫>qqEϟ+.&q^6pe^uE/`sXp`RM'犷F\ mbP]%+(hfOթr-[oMbX 뼺Rwdf*҄/(5h3 A 8RɈࢅ D&e!]#FΩ"(>#$A_e)t|i+I vl8`/$|D2F0Uۋ+8zTH"C Q~E uS\YϘZ@e 5۳'Ç|H? F8 &v⯰߭&>L# w1А@4V [0 j:.SZpƨ*v6SVUб(@$v̔+ڙBhuN1Bn$Up~nǨE\:O hXiVSk"]xcPKk-r^Sk8_5Tc<',AJ$h=6ctڻeqƂ[I4Li/tSWXūT xqBHqwhLĺhP8\RPi8I,Ľ~K46m#K㍍Q.+xxb\u\zBVRJé%WJۤ"FLh?P5zd1$wwJq?҉e5-UwZZ[{wi-=DagA1 m_c0RR1oNQ2La9[Z ]DHt-Af_{5hgW/j -i @:ZN :6Y/ِ^jL3;ћ;.PF{%S2׻>8me/y-|ƐڐtnzGld" XIRebjThynB>6^g&6B徃(o[ŷIiOfPLJNl ;piúo揘m\dxmcT<gC2kG_Ya~i+ڢwt^QAy$| *sܩ&T&p`:<;U0O\Su\̘8^>v4I$,0~]2]ʐ@vD9Qo6lbF;, NGXFR0c[ qj> I7B DBW^B6UcUKmm;Oʺ{_lPߦiJVa"Y1,&W.A=yˋ[+qD;]xTBa@?/F:L~F"utK. dx1Q y|}l"Y0u1U)z8(pPޑd|zh2*@Έ&@E.#ﯘU=gEw eg+,;. -! W Éow{6nal qh>VRP[n!+- 91͘0Drd]{1վf_ &gTI>mڔh*}+iژ->c@+,ܓN<ܰQ0rcJ.AcnX_o(gHdzFg1?j"D,~3^[I`$0VgYA tPہGGpW-JԆw-wBIdfMu2)໙#(Sطe ~Vjlh:jB]w im!ӵiB0*?BjWz#S2Uiqg&~;rq򵇷NzRw-WoԜ907īwI]B?ИewjzN)B~]S)n/vQKy{Q9jo֕D]z5ChS'b{)u<mpړ)k+\8A[V}:Yc\nsEJ:/*<xOxB-TDžr춽g9y/&! g6 MѬ)oZp6)6v6NN t?0,|g L+م!%ׂϙn)•QTlKT0K5MLLf@(Let}N|LT8;`&aĘhFD1FMⷍs]u>H#4s-8q:L-!=! bHx(PzoHz𒥺8N C"`cb,X]̬[= R5::jamY#ci5?QX:%W:\kt@w5F/MR_w>VT"~Z~H u^V1g*Hta zî_va&s6dGCrj7=u:V֊X,a*=} /o[|!E 0 4޷g4>!=9IP4|OݗBS#Rk'[:9{$D&k9CL@hk^.ǃkxÇy, |?`|Eoє+$) ` ?uYR(*:F0Pƌoz'lChhz:iS*T ?BјwSfBÛNFCR֨vذTƭܠkq](!>[ ~{DIl ܮCQ}ֺG8lja/7(@9N+zN1S^G#~&φ Mz:s{ȩϲ.*"=̑'OȏOK ;7y(/_SxCV_{W쬄,ˍa}[싱ߴ쁾(هC2?Ds}=3PaHC|k+Nvyvv"-:^zpp/SG#/nI2 d*&cMG}:zzA ۣGkOcU}񏯵j)T-Xo:t1sS){Ar!6}vY'}k~Jz)hʳL7_qeu6t1agҚ`lPm)ofMkVJ0_hɥf A doZĜ84~nxSOsg"u|$RG6]ߵ+ڏ%[T8țPkj ɑdp*^G5{jj$C/zS:jRP nVM4M{p*=? I?2ًAbўOC.-ykѥ<}ǶhKŝo l$ς<'4`trhG$VOuUXwp!l(6ngtm95}puƈ9!kױc$|N ;%l> ֙ڣ߱1?4(wPrv{\5éDԧak4[a {aA'H}2snImZt|B/̲Y@/ӌѤ[7잿P4T_һ@5{eE >(1Z SB  "^ WZym,gΩPIiisacvj@Y#sw@Z*-0Κ tkC&Qu]aUq3++7m1{Ȍe ZrEҶ]utuP(iŶuuCLWZ[e@f޺|~O9 -.T͟صs'NHFpϥbOI[Q Z3+3{e4շ4HHV$`ĞF& H?Z2䏙KE=TSڹ) , w=g xw0IánM)GoC *bAm1Mzb2 zjRCC+B~eibȲ @QPa~rR?DY,Kkag( wML* OMSz0^H#l@=~ofSyJA^XJgĐWdl G=d52^~hNSz<wls 6Oh\ x>E c[ Ft!8 +_qQx@qϙ9kFa}~9SI*'E=)#XD y~HrKl_ wp$RJ)A^ݝtk8PY{a|s74n53nrT8#3 N ?إpm̜h2cy{Vbw_ihXuqn߹Dj HJ#MTkBS Wh/BB۔hS=)EoLs a)4΍ʾM0CuK";*5кHcu)vL"r l4$? M[u(N : hqʿ)c@ c?z:VVyF%av o[U[ (_ބP\KJH's5sq3l}s硤lkr5D/|]qye[\ﰀ8{#OrT4O+*h\42!V!%Jgpo`kMkjbFq/y98q̕ > Ѧ.}ߏyc_ _xpJ ~>vb:.D mO},zZ6Afb8pݦ a\<3;Agi2jA7;۸Tp’?@ɱ' J;KL'hu/6' ~jwR 6ifPp>N rw^.a3r_t=w0 }wX~ɇizn'HIbq# doíObWhQuwg(ລ׆<_+`\I[vc*ڳkfӦ-L,e_0g=zHg1JycR>xpMPU 1ieS EuoolSGK NKח HKyw+.֨(!I>4ц9͏9"YK Paee.Z_pB?.!EɨyA@{;ᏧJs_rd#WsyNTM9V ~ L#iH]IA_[~+Qp{'vq,mp*\[ۄm9Zr3¼lLLLƊEMyX9Vi RKF>AHa1fCyu׷y ۗCUSdtrL6c- S+0?34n.6g gz(z_= vIFSOתg!^hhf+k̅^8ߢAT.J8?xmLX66J\=)iw{ آUS"o& PL B~]!ÀfCyg%Hy(zkn43L<,c,rlC:5!$R ?fXƝ _1TLqY27Λ%y ~uHǶlHjd]v !ƦB`O(j28wՍۃy/ d.~yZod4ZxdرH0685oх)4}T{f-r>8k{(_Qrt{rhp}Y&Bl:k,ldM *N0 +[ yDU\p^v4{VA><^G b$mKCfe=&jc#(R! *0j(6+\C%XҊxsN㚀uy`4߭_4K$N-,Ŭ5-emE=&dse}.Qz7߄2~ 3A|؎n Vii>mTC*D]WX3@)CSEm7C߷^~o%~6!zoid޾ّĸOV#-N> z7gu\f$mw~byNIi܁[{i]ee$"#WXgFvhG)\lnk $k;THMo+.M:tUv~3Qa>SZ3D\4*¯ǜ񗄐~?Q&y.RX58HF?V?fP(kgAWx|/9MDԨ9˜ 5fh)?@Qlⵌdv:٦094$mu1J+W(:"fᆲdRכq[@ӜAPՙ"9sqc6hgAPG{PEh/&~Wc,Me_jݳoS)b/x~(*fLwEwRP7Ê(j0bdzrο)Swb``OBA2R.6|r^9ۓ[߂&25䕿bsUJ\ D##+kr7plk隊nUbexݑ%X񎿵v${XaqނdB9$r$"KjCL $Yf]=om:300_H`}+ży ¢OҿFZɹy"3w%qU\+")s0j]ZS[Cc3.r?JFOSBj! 6\)r̸SC9q0,C xK13۞Ѩ41:%=7-a$K(Tb $FyRnꚔͱnlE纳P<9Fb P-ZZ8{d THwˌ-@JBBd>ޚiqFKS&v{1Iqev$߼zp}]z"fcDʢ EKS6,X*.MX>Ab 7p-uX#&,Yi5I)l5r:pwGIk,VkvY/\;ݣg6]cݍgd"iήSpבqFbiV|Gr ֘/P wdpqزJp0,0  V«j⬒f̬%E"|?Q1Wyܡi͎_Z_[vw'Kʗ405n:ebS8OHU,w|UoZI&Mƚ\Kjycv+|Pm#Do}T F * Cӻ:UwݠUٛ־Ole>;h{:C~^U qĎ^I?Xf,%4^* =g͐ V:$0 jg?g\c|s#|:R!&A(^uBj L7olƯTc4>2iOi>FhGر2sPk~vUK.wI(XY`fzID;$+ M׆,b+g=5rN Xױ׀iAAj<<t%H^%{ HIJ^zmN0ryښ]tGǯT>.6:ꕂY 'ξ`IJKK>^R+Sru{%|HC(qBH1 4%8ų¿~tH.5 xh!55OsPc"xd:ܠKGPBv&` mt!OR6}a YdaTN븅Tip@)I*rUU~փtBg15` l̙'&g' U4Vɟ) zCJl4s({ғ>cܓw>6 ?xc>Er @4t jh*֫,Ϥ.2Hɿ ߠR&4ؽsfl~8fKIPK=1bK:L+nuvola/128x128/filesystems/folder_green.pngUT ZAPQux uwPS_5|Sޥ"B/RDDzJIHG@QPQ"""EQAZ ARWiBy޿;Lf>{:s$kKcFz^zMM lO>Hw{ @Y:MoCǐK>!aA+[׽;ޚ`mj 󠀠N4w5 6f#u sH@&.&ga~@YWygMJ:9-A1.QO'hA:H5 DZOѽA*[S*ɪO_V~ ڸI|C⡣;360Ge.agfn^YAjl]!;+E0Jk'G{?nmLl6U7AOCs;8<4DN`25+cPh8\ b!扫y6?m.G d>)Enl[fI9NXU5#8=%9We$RENt C| `h"yKWX:vB7"mѦ&v>@SR4ߊ$5 'k4DӰt8 siC{#~;b-R3OA(Ĉ {>J%cVgdt\Z#|H *˸N]%"ˋG %G Ts0vYUU(=} h4o8/հԓDCcLx'/}!!bbPӡ0i;J[a::Ϝ*xĭ+AS S]t< H%.siůwꮆMsD)9|7Itj,Ogcl5'^𶵴 P{u̙+ۇ;nѕO/4pܬǁ.;-too3$ko,WlCk06Tlb"w۷_nr<{WX8Ǔv4TFi"4%0Y)˒MNZӋM>HBPšu"/$):kB E6TB`V'&|'(Hպ-l6f^dr 3,%%H+&ffx./ScAKuao׭G4Kp9?VMj9}5X]r|w&711Ab6CO{ >$/HM{I.?ucxey5##RrԾ^EGDDzXJr JbOiB\<>&>Ez8*O3q[B,v)^Ro[{kO\ Rd^0f\)CT%ZfJSVti+Eq&.4>LJQv"N*DTDu6pʵffPV:}f@{; =^sYՓ fQ/}0`y`v>V?Mxavˍ/n(|!0E!Wq.g^N-ZYgI'ɮCD/8[&,Nm(E2|O~e^v8upb0"! ~_؅wҥb Xɼ}CV"O¨{wrF_( 0 IĹKRp   4L:EP#1=@2̂O{Qwb"o[79ԭni'bj:&e.{S~*CQ :zz=)RFװ.beŌ#nh'yEikkSh/"=%I'_~+,*NiTkPY٨=ugĻC TQ3JQ˛K?&zwd*@Usf ;9Bc"CC]+SxqB kun}fج~ e\Zlg+J`O#SL ޵ά$r#?ϷsHWMĵwʴz Rm ׏Mu,oGXN}=c\|weoWg)dpLV;CU^Ht/ng#)!>5Gj1h;s~]z{+_w7_;8 vBOtt.+OТn^*y&/]{g#9t#ya{Ő&!L1X7;g&?R? ~2*X LgN]7tٵZ/˱D{52d3%7:uJA1vEQƸ>OW@Dgb@淍[Cw.ݔoфZi߹p[:l.vu: XE-:>#D?IWڥP>$^6G4󣋚n~ )snƚklƁgY|gocSuvSyYC(y@ JGG$'@oň!oWny̕\NQ0EԈ0=m )WMj] h:p{eSuE.,I#o߭5Syso3k,Zhv?{5 L\Dh}@ɯ1!9ܚ[X 1U*m\DIoBuj8jU1| fkQa5C/U! h=IGŲvMJt K}n1f&dUy P>Lv79q)m F@G$/Y[^_E|7^b ,w:Gn !_t4|=CCC* 9zeuJp{>9VG{G-3:W<ڌԸ`:ڒ?=39>Q23. [Om:^o--P?iS$DzX dZ2DkN~ :>iycl!J@Ckf_.9qOV|/fuK5Zq;BLW0{g=a>tO>61v3 T]Ȝf#+;Gx鈎12>=@73^s@Y1(2s]Xwu@Ӥy#jg&xnkids v0]G4X̢QD[9z~oK '4@GW4L.ͱIu.9_gO.Wn/\ R)rkSXkS2?8 w< >ao sb0O4Js˚oO@%mq)9=u ^Яg)9iVά`kWTr\7pGڨajNs2Q[s7jcE3 ]b-t|WDάf#|7%>w|_n3ov{dk 0iP#_+Ys7uA^.TN|élڢeB@2Wf;/T0E$5f 4sB@栟efX־J <^k hVWk%?=zq; 8FuTgeLۄIYAX/NgDϠ^ꗰd/t&RVO_̻_JBVf;v @<9lkޡDtNTWf`bas B~C&:O;Vvi-q 娠-kyR=2?TAW&Қ 6L_gϤ)ߨ^.mS*PxƂse65㮲KF=Kĺ$u@ƾd]88s`;\ӷCijbXA577%t mv$N|ݗ:QP:Ed/UL0Z$3zw,#O;o._pWDC* d[ n:_',Žv(BbbyЄUb`<@ܫ!ft\ņ 8vbQXi-y"7wenO;8wgЦPr&@&]Ǖh ow?z@ [zh3ٍ*eNo.o9vi1SC(~p"*oM),_z;}Y3L@qGm4{LLlr{ᇊQTfc"[9=!GJ|BG|H )TRV:n2κAHv{5m'2< qCMg:oAOw]pޖr y1zɄNWM~mqnꊱW.?p?zDc̻SB ,/()'Ssyǐ\ W.!eNF1"|!AILC;VMES)gJtNw7G!HD-lj .E5+6;S'g9$7`{ XRox%$tGj:.~URQg3)Gp3:g}8ܳF 4H./wx,4ww- ap{Ct BGNSs3qR# c7r "\x8w>['L_璐uN q(gg^hXPw`l{c7YpnFfvOq+G]5ΙHϗtBA0@ ]V?`ֳ+Ou_bVhCcuse 2&- gA-,ɝͲGn!N|R5(kU:o|at~OLkrM}?**.z8YžvvL1:&MvgbheZ ]E N{VL2M+58ԉv'{H8ae_9o l{LjkBRsj*$dn1ڲ6Ӆ(2yo,֋<*NDŽoEHO)r$/*Bs7bq>>%t ]9ӜNŔnCu 3dS?+0J~׏0NW)ޘTb, ӃGU>Ͷvm>}th ,GEViFurf|u?)U\A[?xl4t"a n+^%*{s]7 㦪=muv~b!ܠO)xB{Pnt!ė+`؆aȾЙ~躸|>'"3gs4އOjܟE!NR57%K<늏0.LW@W@ٍ:<(Z?V|IYP9 !#ۓt >qI ԓ3 ҷx\taIr% u Nl62KGP'xJ^..al+Z+R[@RM-WN\5Tei$,756V"}(hvLP%h)Cցia:<㫊e3Z!A@M!3)P`cm4HaU 'uI,>7;_)[YgbuDpW g1Gi [5BPQAA޵WۍF#?%nVvt-/ܦew,9 RNV\/2d: [8fgz:t &ɔj=_hu(z<9\N)DB}!?11`<` X&fHQ7#3A14cX(*U!@`kcr9`,+)tw7qX@g S{hm~1*HW)"r3 #̺#l)0 ۶e~Lo]򼔒kn=rLb4xQ#p}G9>e3n<Yh9HW@A qJQW"y|Vl N0!ׇ8g`RpxȀ2eu'bT$BKQ˖ŚVW-m5ƿ3iS0VCs dJ8Yw[.R)nT!ע%À3~%Obi bS $Iu IQQiNov`y."~QrQg|O#I$Am I5!0C$܊+bX]HRp03t&&|c}%"]0{]{(ӣ&+~VUӧ XB@zCJۘtQf1d1o{EjeJ.ǭsj6røUBK9L'ۊR*c#5ߚ=~M+yN_dݎJ&izi#G_;>\Y;!o2)傷NHMQ:#(@ j7֟;T-I4^q'͒8\Q•&7ЎQ!'LB(K'y8&[s\ X E F %k΁s0WU {*ppR$ava.afT&t@O|ӫ\_5].0!c ^r1Sl{*lvcNM?dhlxWϧ @!P m]LͿ϶c{Q'̅WC@gv&nG+Iwz憮u J?3hkL)D["J|t9&w^E^C>@?۸Slsw<Ջd>;pFAZh۲A[[ӯnێaOYK,B6uWc9 ߶'G~Enp~K6_[ uG._9;MZ{x~NK4<{(ael|L%su2)>c )9wa]͖LM@r\| Amf2HDIY,=ldcݚy ̜JE/}=ԙ~sd-v{mm}z:^gj)lLQ^l_;>xAPsr*c)mG;k鷓p 3,<׍R\awUe"zyO?/~T87bPiF_9YGO>PSPGCtg/*My@Wuˆ2L[Vh,lj>*<ЊW~8F篳O 1;CT%/_#^-G@?܍zj}I*3} 4cL 0a@?sy"iF scD˩-N|+XixBͷN@aDUʟEcI8 p4*vƫSC2%Bҝet`ygІK{CS[M̠HqH`؁鏗UC_C:<("^_?6_9~2fo|]Ts"VŮx(dtcr{w͔č/`lvN^;o޽lۈG..ŽjazÌHz0k촌;Z0EE|c8f/a6/ FM{F|-Uw7=Z̷.i| B^+1[ Kxz?/J7аPhWyB_6, w[e./t@ [_k{%^=#88c\ӌBˬD9y @ʈY,оv5g}0-U \`+ԵK!Ov7;7_58n ߸8k/.x7׀1[q3.x@vWߟل!7EÑm̉LJ t1wrl52iϿ/p$Ugh|uӘ=mSo!ЊӠNU'LZf UlSpãhF$yCl.+zط7 a6˶tʙNv?DlsD4nW&0qf|P2 @EKO&ͅ bRfԎ@s}0>S+IO`1f8+t9ɓz%ݍeW}n0~;j+93F\o6() \~Ӈh$9x5Inz>p3Vc!1X*x%ّx^Au ok;kj.&5=O:(pǵKCaPL(9dK ͚>*'0~zt&Vb~2נL*r! JʐI¸UB.Hx`Z.8_b7^u{sE㷇EHO&eZ$9_U@>yػs?N_f4;wWU y@ LH'eICR'ٔy>gIԇ8]+rg)si;}MgUHS!ʔ"w{kLK*Ot!i_ k {#/C"/}m0Y /9.[ITL*'xa7>>]w`6/³q I1 _za\׌nԉ /˻$'G}|/?.t ±8V>zZrϽ $|(jUĦ>x5E{L#b;CJ hs9=HdH;s](SUcȄ$VTjP{ڣoPRUő%c5WTӬ\乜-~J(,I "v%ɺH,pȈ_ b׹H0Bv\ fM 1zx;]ׯ lm{;Ng~dWgLOY θ\k!]LC[؀UԘ! |.mһ?uZ>/.x[JVQUzE)ڬzgj[24ݪԞvGcG4s8JA)EWm ;>]+" y&Q6m3.s elyܻ?Co5I78⯲,o2}V͵Y*^'7V+?H(po]Ɋ_-bqH8@⩷/sR`cfU10ح;~Ujo{%p%`Ƥ _(|%rۨDqfYܥG]}+ q7>* +STy=qZ8msGo٬ C?@[f k7"a;ڎ)@|Qo6kMm3*hK͂h^Hg:t%4f`w4pTpj絛3CmM(mtr4zƑ;[$8pˀGŎ1BB͊y{J7wo҈Q3si!|o-LC)0 F3 鈵So֊b:،+ SW"5{f;J\T@C|E|GI?"! u"^{O1ޱ+l"|,l!4ْ%?_i 髝4/N ]Kӌmc<ŦLyNՖ7]f.S[L Ɗחx&'>SEega~͂A5bخF ci=n_{pxalv5+x3ʓi 4FtCfy<ܰO?7¨8[>pV-~?sDlF ۃd8~@IqC1,(|4.xH_2jY]*knVw 6֞}&-̥f̞%LU-nOgׯLg͔$c%/!I _q%N6hU({ 7מҺ9/lpVY%;2-X-C*+h4PfU*,GQ ܡ:SӍnjˠl#?Uw ?/b[W|Hl1[X6{JB9Jz%*RxLۥMgpx1恩7_u;C*w{& n 3[:TِmNP@"gOՉ{doݜ]F2 ] NAX޴^99 t,#B"4G,_)) [jB~ֵ(4T!$r7`BrY/> b@!doMRfGſytf< R͕?j/康C]ǐ[Q}?H-M3z Zav'ݬ?DIʷ@mL|?o*FEp:f\3V :Cp GzA w`<r%h܌NBrck^5pHmG!8ۯ8g⍿dS yQL8~.WS#;N]¸Kq?gwV ݾ#騾CVխfy>$#C1>d  K?0>I:[b&-'AW\igU۹icB  rݙebs؀Q:sl\&SԱihX53!'p ipFʍkGlf`g\Ⴐ$ 7Aj"I_y[:0WVy^/#}ݠnn\n^C**B[#HzdfnD f6L]Nkz -yB*`?<3l*G#tH<]TbC n `ρ>.H".o1_HlKYlnցo~ܱyCD!yK7̼WQ+[GDT[*G#'smӷPLTw2-8&8)/S\nQw~"1SGrh?73?7Pr{lЯv{JA`- p6{2+d,K-xQ'p b i}-Q#'D2 LED)xݳxx\x=rt,9~½7|ai۵A7̺-x*ƄNG9\A76i ny(Ge>md.##G#q7Uo1j\칌4B@HnR++4a>@,F=TcuT.xxw 8vP06^GVƤmaE`nIbw6^k=!=]M'0nGG h-FE)_4k}{QU>bgbtvShD5V cU+؊VU5@dAdozhqcIӾՓmߍHw~Hif_,ꄟq_9Wd(#ғqO 58^l%Qɟ/'>Ua鈿JLJĂXBAb|T4&r6,0z8A`͏ u/Z=mk{KGw?%B9Ou۾\=3 J@<3F@՗$041N)ט꽑-Y^Ȇu*s|3zh;{xWp֒f^4귦֫43g;7u {0fX;⏫vW 9u ůw 3/Y)-T)-u)hR0>Y?ڵKo&ZdXaU>řA Zyq#<"'ifRmÍ~ Qe+iYKyN/"O]A{uK/ҬTƑN]p*{3;΁XZojQ5=nd@| S'ZIN lj.[ҡ\9 zPNd@9--syeN|{ަkI!!ZI}t-NxڑkGycӂ@ʸ,"?4ޘKGk -Ԅ+ x)q!:*7\;YRh h<@ЉԄW\].'1ذPFbR׵uXSqE}LSKq yLC c#Q NnE~_BO y͂ǶEL?Cx~P.:m߃ۧ27s~L{<ŐwKɒ>~bRLkjz^x7gf8XM7} I1BǬFI,Ix'WBsEǻ$ŚԹ-Hm,#,u?M{[p}%)QQ¤'(PvyqT@zX:adlHY}Qg/!QA;N>rt`j3yl_\Cl-2(!0P׮ X\m!Y4yn ɌHwє6&nᴴkUMa9~nPmp܇qJ5ج^wJՁ)"4_Dl, SDawGR2h|4>cPF̹aoȹSK-PUҙg[X"ݕ ap,ޥak"3 PAt PE$tKTJZVsk2 'ʦ-O0^A ӈ ثxr댦_s4;RzjQ}T ws@mw;}yI'K:yV8E8)wjEtM $6 IȨh=ŏY/#bPOhk}zԨV4Lq/뼇yaޭ߻o]Ws6 XZrj :d۳FCiqho{cBwA7;ʦb˶S$-kVFRu #?x.֨ɖv8oФW/^6\N^>)Df=-qaܕߖt ~zG|V=Da49u*rb#𴧂ǸlꖫaoҔ7d`3q/@ X2zSnw[u~'h̔tۨ)ϯ˿+n+KXjf~^VpM>G-014ϖl7bDu0dE5)ĥ/ Go Z%ht]:adL>6}(O$3_iѱV]eCJ(>'$lXKϭG]N:/IpIXIk c zQY.F|EĦHiŭ|2gYt!Ӫ''WG%n橼&CuJ&֙f<~?^d;:e{©;"@˕;emɁ)o[;S+RSOw|_V ޶{ y/wD;*6\v,= }8rhqsg$,Vm$K<"]Vƣ`&VuK-3}j/v=fZ党tp 'RK>`;<QiRyBr4,ofGލx{)ΝKvDxB-!'0z^^Ru+Qdn~JzWrF9ExѢ~vX550m@+-+4C3~K^{|wTsvZyaTn d'ueOXn'&B_ ȋˣUDdz_ "Xtr0Axe?X_SWw5a'r>F|I3׋:B}H =z%}BS!wܤ?7]iXeC;]1$֯yi˚نYߗGH`->~a?5UUbkWϫ1^]2 Nj[O8MjޕzTBo•EQULz H}&7a&'7їZ/ {:s($S$}Msm}qtA:bV*iFq&'PܻMz\BK)hN񦠯n? }ڙ4Z;C:QFy:/m-"LܼW*'<,mrF.z {^1eKAJCjV{8|~?owݱԾR_XvBP.p_{V󮘑Um,89*rE0o]G2rySvm}JB{vEeZ.eqc~"ũU$Qg3eN)(J|(.{%PO]vv㧨%W6%#cVu-m9 ͜ M-Ee3H[9D QRmɕl=Gɭa-RӠ!,3[ruPEWצq9#P(t$ %04vYpUT4(tt я< ҺLg <2U5Z{peL@4[ ~XV \еZCdtna.i[%6(mR87p@Qа@x"b-m gPZ :T)4rpk1mTZNxvPl}nG[R!F̦' }maOwRhnݢ_OVҊf݆:m)N;KoH=Mا&ljz$i-x&سbFzAxU 5At,nUhtV2h,|-XNXpgLU@LR ~Lyb.}So㩪 /Gy`g /Q8{.?o$@y Jئhl4M J_8`:Ho~Sf;Ƃ6Hw5aµ4aϢqbƝqhgvRDsu~Y٦<|%DK#eW+k)mMb&svmӨ>͈Hu n)CJ$DT +< h!m˃Y {{{ B j[ jڔ{F8ٽ{8/?~h?贚TP"}Pe͚ŰtEPSI۸u:备D^-rt72T}X2Ѽ+u]2SB`H$&N?J?˚I@K_z2+,휮r{y $[>$>U~wuxiٗ5"Tt.hVob%0ax9Y9W9ah"/7L윅$˸SSxz6!fk5wݕ:Bsy4S#'(1x)vC9#HZyu[EkH`gwuo*e heB\wi1wЮjj9A{Ũ5 smIO=-];pfѳ˴6nAٗRC ["#sU,Se27%*#$|yD䃌?>O gY*]du(AU{Y-r|ɂZRzw6 eMm ?dgs6K~" fq.hh0-x l#sJvnWjI9Z $B]h]O~ῆlwmo})0)t' .p 2yW6 ^I M5f8>x4S6Éx+PQ1߭.HY>yا[: ],k4߼.v>kX;&$ \|` .ќYnQ fpY'yEgSz.buGfuhjV?r6MWd >|h7KzCN |qX %Bѧ/(;@>qRl`)~>y.G$9Wp}9L$_icCVv~542~*xD^L,)h[{Q>V&08ݍ, zFZU|{%wQwc:ZTM6B >7 &hk"+cG} PeWӓ{ cQ7ŋS"UNA }w(k)ŰO#2uy]: c1!+f>h=AY:U+@iB,,^nqiNkJF;&͢u5b-wVJp)`;]kؙKH`hڲU&=`A`mtػ [^IA)geNR>`KKmG'Rgd,_H^s&Ϩ`_*x6$~mota1L83~ :rɹ6eŹԃi,VVM8[tA:8rf,zH9ϥ]}.2_5oi=S[VmH lj7?tS٣+}n&2f"M?!ַ ׉_.qNrz,œB>[T[a Mh E{,ٹq[6z?[6ICo5NCT}'62)i8w W,Bdx@4ګ!O3Ou:]q t)ZD6 p} (;,*4n)hxJOuVIv 72|M)5p4 !P3;'7`ֲF06ހumQ19":UI,XKls"GQD Ee#GS ?4׎rr h|⎳2l]{ˎgce,3ɖ:8#g#־('׽)nŽ@?5w̷'yR ~*nY 쟌66!=rv.ʑʴZLnsy;oR@P'.(Xa"ACUT uQ:x8:$cL&<*|bc|ZEp6Ҹey15-WB铺}[mFxpһVh4ev4`u1ԭeVwBN7{Dch Z '-rX NJh^x[1u0K "fJ˂"ͭV͐>7Uڼ]_ezX-KÆ/m\#%> $I xF<"_]&&ּq_@2EDEX%E{)>N ePsKr镐y^kҩP5\rteg:[)AEw+jojAw *R0"m߀E-1C%nm! J[*?F*CX~s$do*Us6T7]k2jLl2&#v2%Ǹ:R?Nm2o< mvKg_*@\^^,4ERem. p A FWe1r&wfHlrZV%@AaDn siɛI 9J׸|ngrlPNN5_vɃRFOF=9]5U1LѷBڍWjr6"%w?[ceWԜ([_rge߅/ɢU-vڱ( ~E_O@yah8@+%!ҫZ:gϤIδz1;&1tY_[}Ȥ#4(WWaNC%J,VIϚƈ 33HgrT8vb*XT T.F@0ȅ C<i3^}y'r#Msb|PuqmJ v…`_`n=|Vq;Oadf:_-&H7uw~  {eC'>hnCڗ~: vKo 4h/k,==>Cdw;)HRتT} kУ-]Buݬ 5>FC%|&,-,pI~,W1I;_}("hOl^70g] Vqk8,nq΂3S p|&P%BoeJ>'Fqo̱Rfuj2  n+6`-V/A|DUL|U.pnI*)qǗq -GI-peS ƓHR[i/"<HJU\rZ%5hZv"HrUtK4ik]K+)y3)ZUӸ-;7ўJrh6#ygWXw(Dj '}@Py.X5|Uϗ0q [Hl4/jfH& _w ;fyʴ-ߎ.(Ԍ#5 'T>'wea],;ApTBݒT \S.pSU 2{}x4}vXM@Sk@\|k=(>^BC[H(ݥbHC?6e~--vyN'}Cބٿx~qȝПԄJtz/0SY)Ms-ewa`.]> D*\]JʒԥlOL@Q靖YPJπTN\\"{Ii}M\~b^A5^qs&Υ fEs9ا>8B|bJ5a{Zt+HL$e!EL)l O8Vfr  $4DNuAy+~mY48Ļ/?h!j?qv|depzgaP&4bXͦ"Y)t묺R?vQٻ21qso^݂qA)oU }K w#{}2mprfh{)\)T g9-s%x#ax ;Hł+Zf޸ &/YYlĔ(Mj:ǭ(;=!(##86'1 8 |gE8?cޕfk%2ĤDه&lFqqk vFWBUȠ/™ք sz+! 3?1lK*"M^-OZ>w!>Le:NCCyϊD9>`DF4'=BHq[8[~P6 SKȿ 8!6⯈PA׭<>>zJGqa!?l-yP7njJL:7pP|,H8 fPŞ,E\if_1X3ƿ: hd僢@yH~kѶvaչQږ^}< Q`\Xbh@1_E[NgQzJ1x/7#ހ^_e= H4!{v(~OU (1$ydp$<IY<9  aE3_V~3r%;~Pi{f R'K!2hmUq#|k'vI ցJЎMhr2 {\n,?Ň/vGcKu,:WQQBmv}fkE5r=(]u3prNK\`{wzs3~iWQktB-a0}'r;|C!l}@S@Q`bi6lNBF0( F :gu/|z- ka[Unj,|p}mzXO&J9% |>,VINWW%eD9+U)๔v$n_z,BU_JH,&|;nǓhf}h&k`ǂ<9:(%V’$1Ɯ"nd7fgEv 9u7{{ FMągغwWH]'٩Z;}׺Ph!^[ ~Eݝ4BKG]\6 vuݓq&X"~JWRR]?"K}ic_F?qL᝙8x]YK8&y܂/y+,\te 0iFK ЀpVr/0% +ABW{ݲU&q^$`(@d)Db74#m2;p]dTdb+.fI{ȼϠ`{\Z@&Pj,Ɇ#cg=qy{-Bڵ>;tMs w?qc`E6+76Ӆ2> vmUujkbqط5`/m _\ kڻSmeXcy}y&~=58+^ozf[|͸2s}Z ͌PF޶ʱ&sLq"2GWZD= zJV=E)"6iEZ61Z*̃+_1+|j?6Eо"5v@B8֝POi]?Fiؖ@zGD7r[c efhqu\Y5_[Gt_e,p> guuZr+ S+`mSW]Lf+fsL?N$EJN~rֹ"!Qqz_xFiOhY~@"/c5vbvwS=^z>m/ks=;0sj`vU[ bllBrEA2r#/W Cm̀fJF@`ώJ!\}64`-c?`};[}`Z E|uGT^G!(j^Qt㐶 s `&ڝUjT Τ#Zc ,!T)kd* ;p1VpCWvky5:^Ttd0촃hq0WvB5(daVPZa724vn~_^ )BP`n"dUIc9E,Sk,)sŃꔇ<h%l#7^>ަ]Ԕ]R'}%Sߺp޵|b=R A`ψ(`W3[ "{mfB1]#>E(~C-ð$RBL@Mʝ9RWmV 1290Ukbbߋ;L,!MABee)me'!A5Ţ] İ F 6&:"/:8IABPa)nq ir\NUfG#Ƕ"X ԧĞ/mR,k|*+Gu">wcJ X]5߷P]Ul}HW: `JWhpgI'%=kFvs"ڊˋU5~އ fa&, LSIC8LS s n_q2UGz"b5o4UL rtH{&peߣݥjO ]JUF|lM<*! }3u:CzMۻbrYB(sqr6:LjX0b[ij92xnF}K~Ma۝y)z*k }mDe^d|zmg,7]sDZEJ/d[M 9{cFIݏWzffs橝0|եe6Ogm^]'Hq(A|bj3@zPfw1&#a&bf*\ܧB,,赫mU(0MI[9 ҿXcG8@Dv̖P^\ZE@X`Z%-<<&$M_JL mQ(%|[+ S]һ~'JZ[1hҙwPD $RSJ?̞ *׳8Үwg8p\?7N0l3 q+c5us$(廡r` <ʙhLo]V'NE'ٮ`s-wQ={e:diX: }@?gmS/1JuۙʒXd k|Z>B<ɦB3&PKiu0xV@S& @50 0C?cnǀbax,q[9CP"n>$^/T/%ӇM+?,y ijjWKXL7jo3HDHje'c<`3뱑qəp+sq3bM=$6, x2OJ ]?GQ3ֺ5._*3$ڙ-arVZ*m4p*<ݤmuouuރZwY]WJsq3nSdC#༃aI6^"fꮨܘR-|wUHc(Ss˫H}&6W$2oeF?ש0WAW.{+)PK=1*J+DD*nuvola/128x128/filesystems/folder_grey.pngUT ZAPQux E|PS]MP:J/R$+THIU@$**R ".{'f$gr'sk3$ΊSc#7l3e@ "Twcp8} ]?wb3':FgmJzG. d@ +@A`8@:wK}㑕SF"h?6'@Ȯ|J"3 {[h)# +CM(HY0S rJ[ւSU[^ŧ(Ki7&o-yDEo0YjȦџ/}PgkkMO'<&qp8ZS|=|jJK5OQ^䯁t論j(wXbHy:HP==:[!m-sڗC ; _Qz3moü[#;gQX;'"@&"d3/^.ܽAuK#ZVx6 *\ECGApCx4s Yhh΃ڗWp: A*|\^^&YNaQIjk/VW9Qv(,>TwmGISc)ΆH?!]t^FfG7olMQ6=OCiL\ĵF,&X<qu91C0<{S=Z']\/Q'3$źO+Ssrx!;0I%} zaCMqi=c-)%&p.ҿ˂9kS}#G/"cv "#''n[A+/j45ɢ"}19S)->K젥 x2٥Q{TVArqsFmݑ]P`9 \\D}AOVj^imuu-q`Eݸ8p~W蕏pO<]*"d%鳓{ Gy8 DMPbKΚ P33U44<]^Kj&,P4@]qͫ)рICfT_24 q!4[@"I66rG|9$'Cw麠r@>=9b)&OC;k"10JSdXqOܑiKsEjaZJ|۠㙕r"ٳX1"Dܡ%װH m$ߞg7Vc B<<$kc\YIXW ]'*(xQW,_]^XSSRZ>efSS:b3MGN ^BN@8 //NFsY.wr9)Q99VDIp[BMOuk`8@8?&f2z),ibj u#6&|ǦEH #pB4BH.Rݫ=_0RBQ CT4V ,v0Z@M{b\QQQ0ܙ+ !""uu4=5HIZ,;3K:Db_ji6iˬތҠGS:k5~qGkN rOtdftN#[H ЗF7(Whtqfa>jSj o/?{eYG^$; J=(~=>Wx.۳xu/ǘ>nN:Pm:8-+ zOH)aQK5Q~E'5zL7a}~(B7FLk\@P^*P{:9҇(2e=XJ30tC`atD-&aZN;{>W3cYj/0=trg8Li8SA"IgTJl#TMaLW/%'Z0w"ߏ'ʈ*b`81C8͵']?Zlk^H ?[WTFt:pQ[w3\TpxbC3AL8>nCCy7C,$y:eu +6W6|ʛʼnBx*p# .'No"(/x]#_[ǝ:7nB3~ If}ZA٭:ƔצM%-F  &1Nww4Ptlm&:9$_;$][XMbuG;&[Fi/':MM'h )sBm>ݍڼU%PD$01-bo+5J%%EA$y  @Jy-k={R{Q?4bn؜@+1`ilonAyMPg|@9$ *]8ii>gY [ۏ wTOu]$wf%u_j5 z'TUݡZAVeeT@B@s8h ~e-(k GJ09KCEXaۜPx&g%zwL 3N$Z0ĉMdoYy:eVc7V}^0o ϡ:g=9Mg DV@]>{P!L7:ʇK9 {M7&d-u|Q}CWpʿ~:V1.JP72zx]7k;׵_y6iIܵkgSjv[F^s+-xfԼݔTjN{ <=Pq?fR bՎFo EiEUѱ5aJI }j]NԷCoze,/? =VH/h& fw康cڥ>36/ϗC1F3 ^ħ@ì>UQ?s#[TQ1Pأxť%;ϣ̪XSU`_ C](I@ټ:8p|&l#[ݴ`NVzunnYWԖ|Pw*o~\KugPty#Fil;tqC|W$n y1Ͻ<.oѵjJMQ^"k|Ogf߭}ʏ>B׼[p<U.f!kg4e#sm6I}:+~@ޅJ.(3+*Ƕ_`O簆AnHx!хN׉kԪ@uꞇ=u^jezTiGcpmQʸ >?b3kOQX}ЛiIp9=tm*ޘwK<ip㳼O`= LN&[Kov< HԲF\e.^2 n_x=ޚct)75[8%g<1j6vn=0*6[Hk]R)y0m,ЭɤOb=ny/}2rYQ_VE9GaoR^;&cՁkֹ2Aq~{zXІI CGwن |HRBXE~6#~瑦H 3U{&vyi ^uNdM]3)C?1\",+ᇗӓʮj?w"ԿTwKg&i&S KZTYlpHL=M90!?a'?]re &!8$(bx,ϟ3wzorC.dkշROGS%` 448t1QVٴ/Vk1Ge :h-;"dp:,d쩀ȱŒBIP]0F Xp7m8c>{_D1G\e>T̏3o~$]^?Heg+ݺ2㳁tJxSK4#TUOJjT_.Rm{S@+g]p/؏Wgr[g, &vhEBNƇp?ڃOYc.V;uǞ)i u4蒨ݿ޻̍캄jPRA2Mid{:jX(W9R'm^/wN;{D$'k ϱq?Bo˝{s}زE>q201y2Y?~eI$ix8n^B6ayAx%LC`<e ` w۷Z9t PiKtAuv t2T0+[=ABaY_) Q>.gShS?s,@!9Nö ZLu:|d% FKn[z6lMŔ$w"PWgAs2ғ0zօ ېpz>c JG-N]qЁ#Oȩ IO nׁi uK uTKI6j:Vq`PV4\?0xtgz^`Wҍ?\3 S<Y 8xyVѩs$F.)~&  #@'2,PٚbP! )C,H+C_>H fH'l1k[}ɧ&<|PW&aFi=*xAʗ~7J\ݬi?#,ߟ>7/)p JHHr?pxSZ Y+)* \jhh'ۈ# n%rydt^5ϸPUURG2(X~i7e;];`?NY+ B!֔jCgD?= >CY"y_N~RB?~r%7;56keBd e!;a'yO @{ޚhae׻b3%㟡B]nw*8c̬.IkU%*ʕ4R 9ӳWcS7u#><۹e??sь'u߹onQb;_dEj)O0Pncg&837 ~ U!sOZWzJ7dVVŋ ?z.V;;htOVSBhBսiRiҡ:Vp^+.J[0b_Ug5[qGFZ3 <}!uT%߭XP A8<0ah}}x/iY&E,OKqz4x$m%v_?`cq7Ҫ#A =|*z <\RZ_ #tHֱ݄ teHBD(tpkpeRzW:Anؠ[F*A=߆~*6GA*JYu1-ij{ie'hGbr4=$'ssY[~rWeAIES5I*zn]WJwD&轊>A]rդln%2N]=6|bwxFˋ(x5z \'M%&H$SF⛿6|Gw$HޱTZ;!C|墯W6'*m}|bF2%R+uj|@:98U֤- 0 p[_xwQAC!h2MTD*7{& "\yC74%*.ilimSHh~O"τtj\z#Pkz?0 -&Zmǘ^Yr*Z=6;*h;]APjg6q}wy+Wfj^s[M>21祽b3M;'OUL~oV+6w&$vLVv|]9w< V1o7Pwpkt4ͩtӈ}3vG2Jg~WPp7'czRxh&:}aQXpO@]xy.-zU<׻'ߝ]_/yv[ d訚c2O`z7Ñx461Uc֌srLP)lJP*L{qF:\xs\+CLЯMѝ*{,_M_ȻbZwM%el"Lj4mܥ7N;M`ƕW Q#gc"WPz1|kβZ}:Y U~$mLb]^.tvw77tCïI\rNEGI=Ӹ::jusa }Kɵ;~*vJ^B߁BPz5SH7bH 'ꍓLv֯i(o~ϥ K\xzOqk#k'P 2 /ҏ7wU7- SQmFPo7:8sXTZIB7|ioد_=TXaGBbAI  6Egl XMbexmȕ_!gI=R_X8`kP}iz6 E: IGVEs~I&ֳ#θ;J{Ic Nv[gI7ifn-Nߞnڥ }_?ڷfE:ʩSBŲaF3oT{.=j}&.|lswEg- sʢ $H^3JfW}GigJ[0wG8Bp梣$T c5)lpJ$δC>#߱K_OB~=z z%W@lUӂW a`^KމܴCcpJw{k JOx#NLzy S~,0D`KSV)gJg_D QioV/ݶ9+O, i-4d տ7 2)Afr4EKRQg㐂_ذX VEZe=Pb~|+[TwH?ا;}S-k+MǕ J.AofAA9)^hK[zZ7߭7/[n/?/ (9))uh8vIhaDŽ9m@]isޓ-g2.fk5揟nQv"PYcp$t#GlMߚ~~prG۹ xKm=䊿gu /\vl\ a:a'b(r!dL2P%}}&O)*GHhn᪡`/ݼ;:@_v.#>^8{r~.J<@)_E =SÅO}'0Z*^h/R^s*o53-ȋ՞g"ǖ)-}ޓn:J,G5Zireu .U}Εj#-I?/>tq8ͷ?1ظn'amYbML`uU¬X6:. xr7/9^25z-?8nQ{ϛTmc}cՎ|;|3 ae{QdzaMۜ8$tE>hz?ls.>Rv0t D܄}(4j85QlԊY.`k]h?BιU"9\lHy#}U<hks $=rd! jM 5|e|wy&{vyX\-3߬^|$:2~;} '26Ob]k /%EI ^;#Q E`ZLWL=$[l;|=a Xr>4+FꁥR<FGO,y)0u5GE~~XRޢ - -h o7e\ʆ3Nˎ"<10p[;Jb^b g[X[VhQZ6`ntL߰5" #AGY=8m'AMHhCNN6PL_|d@ gq $:b=LA֚r\+F鸭Оn!ӳR]to]mQ2JԄ@n$r[DGM3AAM\ 7M@y~e9Kh|o \M9G-Ԋ40v#cS()*Hs-MjNR4,+Į1[uHlp%c#>"aި`+7ӹ͒\M>w2R2y?xS(S s&~Afq \)e愔p2Dij H`qcPhGL٩S/; T™M/G@\H$eIm ^GPhZZ)|8;CZrh<s JȈZ_ȃ|?]ƽ$9ŵ!ĺ_hN>͘}9큓3`$#,~C: ǓXei)x (W̒snoU*VR鏛D FMոy1 ?Vyd@R 4cpDNZ4lV 6 H5zj]TTNzry+çel7C|Hh ܦ6O3T1QkR"@x7\#3 E4\#~2wy)-k}]Dm֭۰ 9| ki^6fY; q-^Dn. )l 0^ ij ldHIv5tއRL(̛TZw+Tz(2Z0BAG_9ed Sc?ʖግ7t*K/LYel4Xd~o:3xH] 4W2Jj& :S+y{k\l3777f="K~ȋL!xχ a?K?F{XQ-t9Iywgo$9Tw, ҉%qCVEG"{Pz V@!}Dwsk;wqS]+nTheV^mEgfw*O_t,P,0}SKQ߲1aBMJ)+YG'"Gn Y#II8g#D93aa56g.L"OJZLHSp8 qpy0b<$4`t Pr9s@niT cj,1hM_P#x ᱿EEaWYfM%K*")'HB۾Y~"֣HS>wYֹXm诖AQiRB>gM7Up+o?4&s stOxw{C.b5W b3 H0fõsw Qt滹0]hQZZ8m T1‚Pb'~Ƭ|O='9ƆޢwȟxV ,ѓsq#Rm-c5NSpܱ{x0ь[`v 0}[Y1G&15G(m r -/KKKÞGγpVMD5wq䢴kSYxzl s\Uɠ' 3zIxCJEQ] ;XZ\%JJc5Q w,uӈ:~8z2R%wg&cOO{2=?/ o !/99Pl}͛cWrGjQr` wuՉ,c!or̈"z?5|xFC#}f. Ҿw0&$-sS@p?df& Y&P~Cr:7/onhÍOxӲ0m>+mN Ν &|PR6E5Y̍.8Ie4RNr%o:luz~*B83m>2=lmЏOߠ~%Ƒ (QE퀆 RwG?VW'4{ ZoiiZi;_hnb0l!n odȘMȇFEѢCvTJnvϊ?.+zDt /fw=~xYHO so`ClPύ>$ 2~[ 1fÔ$04uѶ3X-{(ԬI*r}JKbk8ok:%\>F)@_7v$_c|8-X/&c' c4e*w,N`k(mKDoiݭF]} )^1Jڹ@s(Yњ+SGR~KQwQ^'T( >dAb+GaOZTGGS)}!8y C>:z }X i}ECE$ E ;R,gR/K$T|.pL3Alh8w\6xoYb;u͊qD$ Zfǁ8uOzL1ZcNSaO;XHd:Q` ^|aGTZO-X{`A',[u7 *i] ?Nڭdћ'MT0)Iβнk|s{:@jJJT'mjl&foa]O@%}W?M^WŌ-Ĩ1z"2H>8@$qpwwHZW~W6̎AМYc>g5 H#*y 9wIKA*,އ5v,"v1/\:F74g\ǡT˛Z>EpߏҰze+M`9ƍEs7Az}  LH-uLڻlN*v;y~vn m):w&P6V>cHxd1yCS)ȇ*Ϧ0=P{71ERM64p <8807ONǺ'QeDbu5&g~FDv.O=Z*_\NlvtLcM%,;k$f/.7T:֫[ik~Z]2F{@bC MjYmo+vel'nYt:`a_Xi)! WPjC\r#WDU<~fS.44'x P9 (4h 0UYz<Vj) +U1>h_.R}=A ~]H볣ֹFݶ(`u'T- *xY `RU$Z/`k0`r*v8XQ䮏D*ル0YoA!K8HIOD00U=7\دcvMIPK=1 &4F5/nuvola/128x128/filesystems/folder_grey_open.pngUT ZAPQux ŻgT[:)@PjBGzU@JB/"RP IB z`CE EEPT Hܜ~wYkfVf^oyړz؎W~{#;^poP3)-gw4:$.! $@9p-U-a!@1F:]PLaKES`4@PaP,w`(Jw%A5} x[䮧mᝇ~F_fqTz-k.g c*4[)KҀdPANˋ{7e5'Ǚs2D#@r9w-vu,Yƒz}E.O6An> TnAuꍱG"녇K^6P9:50>A,"G ٕ]\\<[2SΝ,Ibnhe*bX=2 ^!VUUEBūr9 9 ]пvI@xxx`/q!xoB3pLh ^\DU:XZe%*){ [Rô^RRM*\ڼs"OyY\8|rٝh4Ip*sxq.UĦ(:LPP{h"$^ӆn5tyF;Ox5N)V1=f=x} _eH.}G6M :4&+*08WOO`B1NTy,d{GK2t0kvW _$ h'J;026Zǚ]# ^?SM19oOI(Rk}FBJBb^;+;gJ~'A_тpz |R<'V2Mgmj-x ]d]m5)*sO363K=sK4 _Qy%vfi"xgPDƝJ:߷oݒEE$TƏ  Ne-)sأc]bLzZXƀ }|3õ̤倇]%߰ƺƸ֠Ma b"K1*^&fzJ#HVry5 |"q5ʽ;"%w`Cx⥰VطW<w ޭlIUF)Mvˑ L( ]15Nza{'GDɜՏ+rN| XHCQl?ԵEItĞ":Tp<4wCxv;({]cd~(Pi@c@%4Vn/_7CX9+w= .{;yZyq~-_w+? +30ռ:k[_~렯|>XrsT_ZDN[z<\O՝/]x3t*Y 񊓜cx4O暡ݲ1In)kv/^<$օ&$"{8n$d/6#߀yסw0{/Gq&ckHl/_x?U?poBsl ˞R7n8G.U^{M JKxFNSP/{2@.@Ikc=uBrbRpPMpB[FfI'% qG\8j:JxM*%uis]ߛ|5MCD1m&U~ݺ'6m7YNbl'86itFd~żiޫjy%Q^ d7CD},I$0, a!zwUxk'2MѡpL-nbeiYwϛ's[+.4j囧z/8إ#lEC$lH`;;j'!zN8Zu-MBS#-|ߒN!*f\%Xߟi&}߷1N>t__-VC8[>ǸޠBSkϒ MȠ܋ P9q@a ["a;>ʐҩ{ix+.S ˱H64S- E ,lY|5o,zyCaj9t&IK><<u =t;R"[4SAv'w1tL*0rc ƞPPYݭл`{fxtXY{O6H:!k{׿Q#V ZBIlOWbK[(>00Iţ'ԭey)ёquN\HpbXv:ݪ g  'ůAخWI&yB:eoqKnY-iڳH4@.n"?֖kGęam)MPo*Ln UV䇡hd\56z+rx }o;^=5 a3Zꇿ@ ƫl>g>q'Λ.#3V ;7 QQL$%~{mL[:Jն0,( Xa^W]Gs%r2me NFX0^'JMYl_>#'MfV $Zk{vGNBuHcp+(81<0;)o$WgCRM0?)`Y"d# 9.廽'm`i,V.~xC]?Fv"|S`` a1=OC=^m.7dRh;.aٺ5ě@ȟ#?z7c2<<2? Z:*OBY12'ꅵZ%oR6i%mgOlpr rB~$''5RnҐD=jߔ@p!PIa߄}"'nLκ:Yv%nm nbpuԑҏHg*>\Q}Sevd̙GLP>u8{k -rkhʌ ]NV`%´5FJCyjS, 1keL"<El}K)}$̸9aUP P5r,g <}N"ۙǑOdH7gq{3;c=k$urcIx~<{a3j7$7n6.%B9 Sʈ"OyEMƼЖΤ`p3z*RxAU9, 31XW=zu-՛ƍJ_Tdno\̜`]sL![{LA$"6ě8-֜}neI|7GG 0N1n Yu;=XoACoVZ8Jܐr\ꚬ̊ZgO?en4嫰'9-QyHC==So.todCm^8k(_M] 7C1"0>DM 4dZ1+aXAʓ9W|TkH&85T㆒נnurI9ۻ(Ǖ'xԅܦe6eJlm-D;;/vPue}c! s@{ #׿=Wϰ^WT*7pI:|DP3=F!S'UX{J>sPXeF{n_+XZ90za!Xzqr>h "h}%iuR.6-F< =v, u(c: H =o俾 5ABF8,lʾ\yrv`;3*A@Ӗ2dLIG^AV fYl2|^c!W.2~̸fXӴdBy #iM|j `i%}lV@)BR}]t)~DJG)R/Qt&,6Vc_cevwuEzxʃ*7ECt}/HG_pҘ恣pN! hv&N䷳yUL'ӳh3@`]"3DQׯ]{?Mp\eK|xB O_luG?VHwϒ ݏ HT3Ex3KMjNvc^s Zynrc­y)e4'ک1N;M,x.}YHfz]ꈘsLZ{+=߹}=s={JS-=۲ `=OAŝx>QšCߺ"d )4rp#= uqVm^MS(|U7 b=w۪G-g41&RTT\K2)(Y$FlnJv`,/7 %L#E" e k2P ϛ+3A2{Vo)F#c&&8 ׃M`^}Y;V)^SnI|:(2GJcȾ= +eQB$d2UxF׹!~C\w!뚧]"-.YS?}\g@?]>OeίYEҢ LO&n,ɼsWв=8jJD~jk) K E )I)DQ oa=EiVMƿA<4GH7;/P;AJJSϜdΨS%0ա<#^J;XZ4Z,Yf~%8 }grH:A&th@+U :8Yd~Bw4K!>y)%"  yBmU;?ջ5S0ֿatf\P<ڧ#F[pRB=iO*0zJ B@e" %4pKwC(iBFAu7(C" 5uu(fjt'Pp\KY KE GJH<%O6 ,=PQkGL5 H[;汗Y K]&#_QҍŻ= cYxӒt]r9I*vz۟!-|I<mlDL)ZJ#M"*ī/ҡxiye,lw1nJ!Xo{2Δ3v:?9;"KRBd$LV4K^ٳ38Iނ'5f$O%(<>󘪯ӻj\?9v~ Zs"dJ6pkAR3:ݞ-+~M''cJ׹D6' /#w~N%M*mGk~rM[਱-8SItq٩;rUFxN#e ݊fMIv )ơLgE ך) 76I]WdCyg}h"2Q 0Nk}VvǚvŽȏX]i~&%! scեz_bSIb`&<];H}Q[ڎd?HO#h^ ; 7% ~h)Xd) v0cBrc8ܷή{xC8-10, (@]Ga*ՐMU-Lx2_)w_2ע4,Sؗ56e|4N`/k:wmd=45 y;{MnWvr .fWAd*+}oVCR l:o=L( ya -r GZ:݁Z+:?;?1:ted>c앎|C$|$Mulb;QXҡ00dJsw=#vut';@Lۿ;gT|hAop/ uTu^sr6Y]=VG9> Z}eoKܥ v$o7)'skIYpJe"2Μp|7.(,~>\bi+@/o(zT݁ ~劼}ʧRB \hXYG1Fn6%7Stt@6`$P)4Ȟb,s2Z3p^ٲ-xAKj qĝ??E(AxD*5s.AhCe\?o|I>m~d8o¢b+׏%܇KtMr'lr;Fef*:WtiMs&ZZC`~fy'm-Hpa퍻,-3KF&/ f^Rf.(kTpJ"ȫ]w1IkǃD$)L].+`v Ƭɱ׋+еY\{S|Ȕ@[jJQu+Ke h?>TOgog`>(.}]çqrPu,O$;]_ Q`HBC6Y ,g6Gt . ^v.,D)ݮ20Xwg+{>̝~2m6Ig+f,$YYĿhRxz[ q5caaLqZUU!eCٍ^LIink(LO{^];c:mzݱ+Ry|p:S=> H![ qC+t̞² RƐ:s??LhUdggIgehsǻi8&E8Kt߉m"/[/1q9}y.7~5rW*hGⰯ[qrdO̗U~s3i{=cz:8[ٙլW21f:!pa-i[\8qk.\7lip#|޽ 8|<yM "f/V2OM /{k''8Nt6KUcrUh9b+@ YBkV`l :xc̳E?T0#e,1S*GfK"Շ1@60Do0?`"/Wf߽ޱ虎??wziߘX6dSmA#\hJC{LUȐoCGth_ˮ3Y]u|Z#k<'9$`|lRa"EF?+EƏ2,`I.5#S ;AB>*tTqE\_%uTC*g{c[Ɋ4oY-Hao,Wup%!a1 |^U,iArqp/jav"!̬,D>{}칗R f%O5|Wce-{YwH_/ T\9 +Xj(P!QCDq ~x reAgTw0"w7T3)foOP$˗UAh}n~Z6ZM>1%?!8enK`DE%.OXj-R]NS"ڙ-^> /Ƌ>ɎD1>l+.93V [2xd#ek[N^`ʋ/tOgu~aEM'?c-\N` H>1`" CaZw/y8> ւ9(:Ee<}  UZyp9lPKe=1vz_N7O*nuvola/128x128/filesystems/folder_home.pngUT ZAPQux |W_$!!@(&"%^D -tT AzW ADP RU@J 'af̚{}Yw+SVf~fX͌N8L=0_n h=:1bohG#j~;V6Xۇ<((Є 0F͞<6"Z1` ˆ0m ,!G`5Pz}„KԳ8C𼉠(h)~WR̄6 `{5#sf!هISHvg&V~  ԇ@$o"^\Ծ!-l#Dig9,0! GLE剘Tkav?"=;qG"2C]BogEԝPۈ3`dv~i:@۰A a³Gy53zFn[jS O[Q#ju@Hqw+O+۶۬-Ӡ̼=%zȪ|f_B\1yOm4রxY=ɇ|SgGƳMdE/\X67 Kߍnztj(9mQ';n_JZ5DF6l- _=ROSصr߆ger>..$ZZxG+i`q-(.*=pg&9c/Zو*z@䓵nu+'[᳅SikLs_z hg5X`xT-(  ̬ )o|UnZbFۧ~tYPhyжa׷8Ɩ^hXvԲL/2ֶVϔȦf^/mC>5J|[+l'7cdzzb!ͬ !U}&{[lH9ednlhIYvmᱍB/{+i9?2\@U=@ϢM>@ }z^ZqFٗ=̲~je;&iy<ytNx9kM#}I:xO $+uà?,6zՔlN! Տ<^8@;zx+4ůnHŦޝ1\b?JWAj9yTp[^2P `ƕP[|eE.Պqe|L)߆΍@^2xD)Pd4giyiN$5ޚ<ϻݨ˚*5# _!EJ*YsnݎHݽi U׬ Gi{:F38Bo';p3ZǥHP`$ՎO5l仙yꈮ+PhxS֒FS7ޙ?6sTi9_F=Bת4]|KZhݍ#/\!کᱦV,ncHS_٫Ͼ,+~H. %MyG3OwJx\H{_ OŽX|G]ѫӯ|CbѱkJ]jݮk]VI1zS<[ô[_z P>W<4S6x{Rs?s{.k.>HQ|&9#@'RllM QJH(ᔏfW#tJZ{O 'v wY;vH)}Hbq#+&9gh/NaE/ Vg7!sn}O+bO3^WӺ*fe`j2 Z7Xnv[_{К?+4?lxM=*Ҵ-&^θi|ɣ^\N?fo^Y>94FMopt諾qKXg"JŽ+tґYw:&I3'o#ãWk8MGq|O.D 2]?[j. I(q>N[hOB]cL)ʏm,ɖ`D>0+y0ڪ/apxhd'Mutwvyy-5J"U8M[gU`yAVJYM BSԃY=Ry^?7ӌ󚁲6*#(=;0%tv\1*fm['?\wznrr#mү?{w휹"{|?{W~p7IM ̱NíGҸAgXd|K!g)}s#5 ߦ%&EO|p*vJ`ޠ^Xo[;UYuaMҙ;}7;Ŗz;Ț3SܺƊ-2¡.| iǢmcjkG?| v\OB9?1Z{^6{{~mSISf̉]ؤQ8g{$ Hocp׳GݰzXEKV3ckd7W>|R4,K~G.u;2~t ?vYE ֯ 9^^a}`߰sFcIT\c 5nOܱPC?W4Rm8|-!eW7l%60~f3X~?ā?zd\޵-~g`WPr:XJ|ͪQ dvg0qHMMVvFPȷRoHQÍ؈jC3U%\z8R|M-Hz-\H2c FK,}z 9uwG8|5LGݮQ&/q9@)3R tK_rFxS.3`^M-J9&}cr, _L -o Ѕ [*hLu~$#įg]J;+@&߷?1Ul(y#UT<a׹kT]'s|8mf*/m׼q9? r#f7;r4_[>hus.+]KӠUu<PS[Zì꾉kq24 Or)OBLQ7EL]L" ryUFF;;M?$V,%K߇u Ydû J0Ĺ;qv򠍊7sqQ^!'8{м&|cR>c7EpE*%n y(/؏[E/ZAQ9c%g]gdxary"?i t+( B(>G?Xؗު!ZmÕžXT@We[e"yx]grP_ӨlpG *cK6U٧ȸ _qU\ g.!0=IA. xoٙZ^юÅ,ŅaO$J,S;gru"]IuJtYU{_|(.w/Ҭc(I*A|~ƍ\u3ç 14qLвaX Ҷ σ4OnqWw"e6ߍlvvh蘂F_گN SY5_>Ͷ8ۣ`6G oݝU{G_gF`3]Ÿ*XRREN Oĝ6e[vaV6=^ p>?qa>ܠ_Wv!YLR_O?S"Y(Ϩ/rRHX>.^$Ǹmq8i7n(O`p>|c7 xiʧh[՟^WrxuRu/Vt0}j5>Tw;xFBtc Z}P+W,Phio{Z'b<)sonƋtpסMF޾1.?'Vr\ƫ䩟uE^uo @➻(B#e{ҝۗ+%MަZuI&Ô< LYkmOj75*UAy} d/JW/Ɏ57s ZL1xX*wy?I#=xo8jmęjLNkP)wiZ.fk}1\o_ Zi0hѥQ> ^͎ߪ8T+x3)[̵YRO ܾ*hhNȰĪTBя:/reH 귒P|_m'PЖSGx^Rz.礪(Gָ1N Mr/=mYSvݞ )Y sҘ&$,gA2IA'.RDg> !aշ'l}qCl$)N $WNu-F[6w 1la8-~w8Iҫf<`U<7t/ez_9\׵qW'񻗡G#v9&E4D\0QflԑkgM;  YSU rctA){&\KF|`$U \.ڝ{+c +Nխ(;1JjF3WQpfZR"+0+s$vY/o)^F%yfɇ$ꙵ9j3@Wd/,U%*Aÿ%@n(BxvGȴ`ҡF+a{c8ˆ,o6y51D}|N'{1!Pc{\ dj+2(Q\9u6h7P_Sm?=GW~x?ޮBNx/P*GGG}>G4)E8hZR1pƲxg4@}F/4ی;M\5z&A 0l Ci>@?D>;` FDd~`7q¨;+LQ竕?:wv'lO#QweRϫhO6pE52?*kH6@O5'$'Z7-~ ~COgfKnfkؑaYG"P&&%MY[M ,ꗞ +*+G!qYH|!,"(mbYQVٹ쳲څw I !8[Q6ڷzt8b1&=vO-6oS|/q[\p~,\٨C=9qqȤr?z H]o_ߝնfk54F;>ܽhu? 99.α7>f#TiY+yq+3=e,M6$tN^ K\+An;L5fAVd} Uׁ}4 )%&[*9rkA|h,AꢁSlRܯZܭ'ē@I7芚*< nZ4i^xx;a]E$yקo6I!LCW79Z!br?FBCusV9ĔKp>[J% _߸{ iBOOVod)]]]'7b'mT3͟Egw?Y,I ܎k,͑A1}"p7 UowMG--롻 sM"8ܧ^0j SQ<=02:eͱ-_V>ҨA5&bn%v,bvJݧT E@vSqFWhI ':5#3J v"W[ٜ lw @x}8@"%S1gCUs~Ԛ+z>=\Zc +I(ëŶ@Zb|1z QDa>Q1x82TkC2C> w.]Crg޹Qua>S&BLTlnJZ(Ѻ/-)] Y_lHn18x\nR_z!=w;1a3q ֓Wp+v0'yvӸOJUeP70C jGp^ɸNcxT8Ŋ% C>%.#{Q{<"J`f*TEΡ3WxbNBU%ׇyUlc 9o\7|E0L?qgQFqgOkLTv n\uOwK'nx]~[u.Ჟ*h=(Mr3}4LdnJsMtw!d$K^|˄-QQXuֳz$[TعM=Yx r&K; wߛ?]y/;zŏʪϟ1}ky.yl򒽗M=F+U1A(Gm@ωh#,JEvl"85}pC|<f_FC./kxebbU(&6׏;j½W)lĞe<ZYJeӰHFt>yW Oy RWzbvvD&5]|Ҭ-Mxh:7} W[C c'L_O RAGW?ƥnvƇq?YxKAgrլ%oү1{Vb~e*G;-蜦ڲXkU\'T%è蹬}^w=16g-9FlC 7LF5+*991IqKq FeYk܇6XZҞvBV ދ{aJ$~+B ̤/GOX i)P 1J<@],eޟY﫚 e7" ig{/K,@vT?kaaI+_6-(` F3 4`eA(YlV8*ifߠ\h|>lQ+Uà LʾKxz꟝!X\PN# ;U'j`wk)tWvUVמX9duxY̺b Ɔ7]1_<0]lFpge(02ʹK5/>#\ş.v֒l[JsƘ^2%a?:+h6} _IRUR/6xzF6>0M,KmX47?S,1w 瀳|]+T&&lεZ37x`AkKGpuC\Ώ|iUz#hv_I|߻\J2=z17m*1gZBYlT!#^ ܳf˃0˱!=H<f{lzw96~7'υ4unGp*5Г SWy\dYM,PUhyB' L<י-97n& }T: {nvt} SthExf3y.ޚSEiHDqsXQxs/Bz7B_S+O=rP21֭]n@))Yfcf~=g}w۴]GSRWb{[ZIUsy "|л͝\PfDl(s.z聃WαB璍%eJ{e=0` 2guȭ) !?v78u-"d;5oGt <D? 3zzA*X8=|yzz˓1ݛ;h09sYŽuNR[ s]_zTS$q%=USx'4ڮv_Yw`&Yxvk{|;c(K$ӠKOR~aD̨$fѐz9!o_v񳡓. LmNU@04fwe˸Q<*n0cDMEK:i>{lcŪ\':Q簂9koj!^Rhw\m_^jwG/}Zok+b#޺; =/`Y[U@Qj^l;B9ac"š̍}J7%ٝ=[ElI%YO(b7ӝsm(6"/ sZҊ%Js fO' `n*Ƥd +:/(df%t3X5 IE j2sRE34uN4m2_K81]Qvd/r)HFS{<ledr;bHKܣ\Uq!! `%1RF E11 |G((Ț]6豝\*z NWQ/ Y3P[߈QdEaF)F=@S[1b?,蛈F:4?@qDY)\½9co ٣skeB/ƍ.fg+ x5 g0T->A'Ba7ق8Tx~, Syo= w=N5 U`?kPQ(k{" vk vC9"ƕK<5+iS-yY^/BMć񜞈N7$b4s+sues"ڿ,[p Ih :{u,(E˂+)֔}iKqy>L((ROp/%vm%J] FᑳuJe dXF'SݏŁGfnZoUC #E&Ýǿ$|WUIC!8 ¾3w{Z >6oI^qHI7ė~$V udA@՛ndRP_zѠm"4-Q9wݽNJ7y`O]tK;9t~ nHpzC'ٷw챏m\r@PcZcE_HY 抖M f<@FY VO 8&*Q,v3vKJ [7j!D2]=ƒW/H@(/vdau]15るI \+ k|:"K"a&M-  vwN>.A\?k"q:>.pu4ӭnP}L ^̿;` l#nY%8t0pyKtϊfUrFX11OI%9 "qu29=p^3&j放W ՘k'| |B]8JG[Odng~@ZQNڞ%GqT;|kL߃DNZ4Xt >)4h *C:|Zcơs#/-395H7thFsqW*ч,Ʉ-qh (/Se0]-3suх+@/YYx8A*+} )}͓r*)M~2lKe /`.?aw[W1i9x+dS?F.x׿4ms 3 $)G{o P (2L X!qU&E$,*erxeVͯM ]1JRe 3y~8\x [K 4;|G'!F0 ³Ah"?w#~7g'Joʖ#ٮn ²I{L4?n7T#KQѢQȨ>75O>*U$N0-p)LQ}$4 3yba}iX;kog~ԅ$.u*ёs fц2y59IXZ:HVPu7U|fK*janXX2go]᮴VIK* ^B(Y?66寊Y@^ioBاCUa9c bF613[ "7_x)-Hm=2.ßMr,˻O.0IiG}1B:ek'56}0E*nIB~"M!+H PNl3v.tBtn51ԃP(Xb<: ZζbRQO<6SLa@l@ $s|+i" au]2ч]IN+x"b`[\vKkz__|؁ܿ/ų 3$=JD=7 Gބ)3݄bR)p}0Frq8t,_KΪ44+AɷUV;7lk%7IR1{vL_uM쟅0s (myGTUO:Õ@} 's(8*a%hvTwBuZp{,Z99o׺~y7Ƕ8ڱl"'~It7w\@]\H$7!OD@iB٦ 찈WU (TD_5Y,' b (.yDr4G5;ݛs'=.`LG{[lYkUT5o>Dȗ.zq `=`n{yUkzX D6l]FXs'92h=;cc|QzjSLY Ӟđoƒ LHi?%?c26&K pR |Tg*ݪU)t|D&"MhݞFƁzϙD3jg9K'pg.*yn* r>xc]F} ܱDb=̤9f=Oߋ2ǧ#㫫aqh[X{n'_~q*2b;]y5.oteף'-zϋ͗`*tF+Nd>$a~$́2L6@{cb4 +#g鲧{ '>JϿlG#EĎ ݬ[tPHV#5.<Xfs0lw}#),_t=*'\ pdT7U!+ŧk)LG# tNi#сALxFO~Y g W9aC6,3lW| O[,GY^N%9y'ХFaauŰsI/`i53&@nG tK͔ZSvޔ%!m'Jy 8\jNjUp•(?Ud$_])D!O4$/%( ^@?-{̄:@=^(|sqƳmGD!rN7 e[A.@B$5|LoV?Hz ,Ν>؆]=`CB'294PYf * 7MvW9{|3PO z&vjz{a2!c/h]Lm6vlU%R $QɼwHנthdDle??F4d*B:I\bT|4?gG/^4>`6f<=flwXouHR*ƽ2)J'k6{1\]~oH@,Ac|~g7sP i#y@Vc*G2a@:΀:vYC\:l(E G=RBE8`0ps0w;yM+74k}-q1't 28䉘C ZcWhz\q04n|ge7 szf$ 0dC뻮ʸQn`Ji 㵊uf Dzw_̉ EیuOG عA`Lk@溰p1y/7H ӆHv9]Wٯ <%<'}d+J3E@.\DݳR_ϫa:eX~XҎo(QlI̭ӵ-{:Hj )V!)܋Ǡ'͗ٝ8ޗ& 7,,qoEoE``!6>X'n{C8v$>^QjAiؓmD#2zHg蚰2zr/}V"s҃LUTvބjD @3?k)(^_U/dtO{\?Ox0htQHAw=p+pGiLK@xޖ./"Xi?S 56۲GAϽPZI/Cy D1 MY.yCw(kg3Sq>[EdkU]OOBOt16onLn+ނ2!jv;w+J]zo=l[ s&xWtd ~u6'B7-Ay&N[bxeKzg4"H5;P32rz]K·87 ,Tml}psVј5k]p-}/[yĠ`=ypȘ9BiY@8$ !N?wy'gvO҄i6]B_, z4!'v2T9h!xuQ3O8) @hyro+39 (Vq8U=5*ꯡ"p%I ڲbHO^G%bYjT/#蒒&6r^6[cȗ:~pHekUֲu(Bb9 GH `\9ӈܬR FqH &1^2IvD+zO1r82y]8ړU2bt ^ 2^n-iVNy(śj^ac4ٛ!Cme1mcz]/nR}T{f 2Xl= 6U 3 .hG5G~ٹ{nܫ WBl7bӂ;؁NaTWc`+h4x9#<F{".dRwlgN?z u>?6uŏ*>'mLG.Wzy?7adV_Jģ爪R&@Zd)Fi 2Y֣DM!]FlΡHI~U 8ӎgWC XSFTS:L[ -&TAYUK߬fF$9ˠPV(cRpy~q=fhHG0!$Q;i**.|/{ tU^uI`( )$kz?f[ZN`[8GIB=./;%6a#Eƾ18g"Bqd/ʹ%;jsQ'-#jbljNͪr=I=Kᴴٞ077E\'l 0najR(0¿PHcS!䇚v%+TYjJm9!{K.ڼ}L5΁MG@Ns DA1fj#9Z N7-vM6iWՇS,0En&2g2LKL_箘abf)^G0Sa˜1GI#ZPiG2mՌ&;2;pzJۭY\/p#T1WbLJPޯ@;gǙ8d.i!ܤȵ۔^?89(j³'ָdΤm9dGfhlT|&#$[ɣQ(5©A_6*5%&ٕs*A`0o,|Lɦqq>{)Q(IПeAH.p C38>lc9 Y/O2g 0?/8vgv NRl-4t$QdKz[n$>u"%ic [.Ic'),ۅUSQ?8!7j)E?@)0a5  MI1]@ұ4ĕZmi^Ml'kzIM>T* Q>ڍ9+WpMf+4;jfcʩ.Lr{Nv&\i]Lm^=l>?@ cLQNH\ Pg\~o?? H {AmB좜9G]nbtn9ڬG}?rBoN Ad{p=J]]%<[ #.'7B>^)0yɁ7&O<^M+$bwY'kե|==z<8u&z~<~=KUˬ}/ax9Q(auSfwnɣ??6^c +mHXv_'?ZBj쥏_gԷh,cWrנq5E%inI޾uM#%#q\ N#^VPZzfa ee墣7JMՋA(8ư;PFܮ_)&59G~ /!PZp`v=7pd]0;d'C ,ԹkhfXgIf]=l5OٞiE${+3ђ̠+@:Kpkk^EcGҦ xp +ȱ6y^,?V0]Fx)b#Sp%n9$v}RWý$r Q#G441z'5@9օnT[2-k](iI%iI8361;q|Hi*֘VF;Ǽ`D=i@͙b0ciixiZ5Zqt(OJ{zMS},DY[apv!w|r ܊zG19ys(M<7JU+bCި*'8$FEҜWؿX)醩Ōp!(Q+pҚPUUGa7o*V?ZcϊK4zͱ-$R}o\'ѵg>on0 !!2xN0ٿƈغT:M!ɶlʹMC{+sD&8Sشx-^'jެiqO5Kȼ>}Z5wB&vTD<(_ \V+qUÑ9l\)ж:~[,Te %9ƀ*<'ES]䈥 ߼9NL$6~N?=ώkR4OIutrJ\[jF}_r >JGx?/ KMXCR(sԞ=㽦]K,}Ol V(ي@GՃwM獶m`A;<fYPӬ}_oEB\Y>)^y3e!I;!\ڗ< RߓȈNwJ]ה> 9~In݀n_Lrr|̩z:+vu]#+_@u6ڳʆ׶8mu0v}4A@])ig(XuvmyA˃rZy<}1a1mjr ѫ+w?$;G\r5޼{#wh*U{gOYP{z)zÁȽ<1m%AYM f4dZ9n9k+vֱ'̃IY \8<0 %/h.oKU|o -.^Ƚ(WOovlcj%blslIu $ D~w-}kUE [ɟ=[m_ưr 1˃%^+κ$u`u27**>HR.p vaVFO4UߌEj`E:P+N3p/wA԰c'PTf;{f OMX,s,m>kNBaYvotC>uFn\p؃iH[5ˌ @=Z*@Q^§@|}։n7(K)uE4͎v[sbcԱy?D(׿ AC%?*t9Y}Ahbʐp7y4sN0EGvt&Ur^Y}G$ 63jͤ :"u> u Rcx|>u'1k{/[u8t*FhH 8#c-7\s~BvEDZnFK]f|÷&@Sڣ+>u6i{;4ζIQg5:])_%gA{xg}N o_PS71X6^ w\?/;$IVrG䮜Γ{v>6U?^[l(cWhoPm8c[+;VYz<;viVɊ)POъTd=|MPݑQ_!F&o*33xx30Y`Z5nsg|漢5w0"r'v]Ui偅[6?N;g7L6 \qoS>lNZR7K,dyǔ~{w/o/On]p yH|Rfwm͚.: kLZ k-,R Qׅ$i*!݇ERi1ta:N/Gv,%R~T被3Ufֆr2:*.qSnyKnںb?tPw*q;%o(tkun/\2bmi;:iݜ Ѩ0@M o] (GŤ;>@qC'<5E j\ɭ/y}2demu&Cup:{n6Io:Mnz}0YaF}՟.wN;M^O%6I$wɍZ[L|&$yC-Z &:'^VRS"r:K\)Jw=A|F̟G*NU'gR<-e/"#_ͷיG@q;TL@=Ǵv<;*2&}ə=|Sy׺iU=[W -lN)%+l,$,Ve9:1Kzbc>`O§2T+G0&BNUT[7 c۶|f4ΧL~SO^M=)r}L#܁^N<ȇ*uWUgyenTy\hGWO?RMƚ'4R[-gޞ|wD6V ª AE\yI彊^2&8u (WdIuc00gS-VwاKNeŹo:~ߺ;2.4S]ͬ#aTCŽҋU6f ϏNlύ[4Na?6 JۘJ`qϢ2 f/iyq}1D1mnܓ5"OG;e1 ,8uyPZܕ9{(}؟eԲwѴum/W2Y9_8[$lQd߾.ݥy@Qfŗ>(%,^m}e@e&i!8B (W{b˔D@(?w>;UG̾%8~ CbX֤Y8C߳=7ӌ8A#/}=:S%&5)o;"|iY4G$QZϘ6kToa{&(" 8?Bx"tTp8yNrTr|LG`IHǮT~LKXoԽU%rh"*7uAg% 8&t2#koTo\vl4YJOxakuSX MsqF-jra]6Ttu~RgyoIKo@?_Ȧ~A1 غTm;>@+ӿ-:bŢ3&mRӲܶ xr ^s.ZyOZ"6-[3cbݦs*ƕBBˠKsMqXϜ8ksk>:H䇌T#s (*B% 8E@1L2a u)Injv&I.hk!ĺq$U8\ߴL=ǘԏ>?c׎Uǿ)ȴARyyA{NksE/ _t.7.oF#dRLt 3#wVNO(>)ZWKĻ+[zNU@ C8\-j81^ g4fV%7,8niKC27#\N5B;2-cD+8a*Ĉ(39`NjG qcIkp|8|iVbSԈYIG@;N̼$5&:AQ2~x(e w)Hnt6‘>e˳~=iXAN~0,m\4ڧ1o'ulb^P]ʄ oҕX:~Q|;TuyLPR=5퉫AJb $֡/Ϙ15=Gtpk8ZHLh'Y-vn/\̒r:Y'T" tyjz2$a{o +>a7?Pxk/Kӓ=ԧ(tm>t;T7JYV{"ӓxF[$qVVIoQܶiO@N'= rt^,~kjB!>*,:,!گܫɨlȥ$v[y{k:m>Sj[MMf[rN;e윏Zsh8tIilGz!2_7=v|n[ڵ }EPÿ#rul=~^9;!^`/4V L[dQ%V/SʎfsN+WDvdySowV.p5~5=s_\NOL e8e*wVK}:l%z_K|Sn(oH}D8zg4kw(Ɔ"pM'm_bmV.ܝnt6=d@mf `H`|hgq1bظW'vN2fY)-um:7t׷5trmáBL@*1V"wDaR[# 4́^Pqʼ'mQm|NsL6|Zg,X{ L{NqLk\SY[3nikc|_xG=`i+۸ 1[lg?ll]l`tO7nH'h9>ڳ!_^ΐCK%ћ/;19_7AC`ps0۸\^㓣ވ FWo4D'G֑̹o^xW;X nːy1.- t% >d;.P2:E9$G@߾AgFoK@ł]$RZL٢ ^!jtSRx 뎀-Uttj;ogQ81G mG=B&PU{p+kFmcňthCʊ\lyWU(fk䂣moQ QHZ^(W lN)]>aFNt9t8b+Vms #Õf4dlcc͘<侺\JũTncʻ5Xwr?h1H;,^QĮe]Eb#_T8:[/OES!tOgf+A! y?p1[`e4pbO{̦x}>%N(tR[Z^ 2#W-ش3b{%Kb%BIՐ^gE0߾O {RElz*qu=sԐ V&DRi6'ōaPEW˪ 1h@H/ͽkUy+fzE Hgj >hd{5Y]xp.׀yf WnjוUΟ4quWh›.tLLX+SKef,c[zX{QǛQ:R \N %#~CÃVF69 `}NuLG~P@6dh§}d!S[et&4܍!G)=א!_[PQ}gZ67\U h&स =' $lK̝`+/{=aRڨaV!igF.uwH>/Q1mAHI5d`%afFL@;%A@Q08E24&DZ!R3jdװ), ,Czj ה[ @Z5y|uN~5 ~C H Seg' ) :mx;b MW$Vϗ\Ԋ/>:yPͿ\hɋuL@}. >M6#$Ox$aY xAg{! : &Slq9 ݚzii(T6\Q9{B_>kN*~7f_{f* UE5R+|* T Jh`AN%FZ Cu M{'A&0i?uʧ9Dq%P`"}2lm&}jA`?/C;<ڍMrrflh3f~N* 8EegYlzt+#(@u'oTy\]ӦNtԎ]\e)hUrӆL` ޚXF#8]]icRBBˮԋoqF`~*i렔.O{TX˷!0 ) $s=^.b%$/XZ"FZ>U%T@xH>& {‰NOM8?wZm`G9%A6H)~ͨb2F&n]o,LJez k/-6>B /g鄚}K'pL#Mw7JX!.FrȊ|Kr$j!jBq%K˰>e"vmb>&FAFӡK:bF 'SH5g&=BLPi __)7.n꼬']7 XdB{Ƒ孯J،?M.d#lh>`J:KwFN?2ZMhW`[S!ºF)+tZh3aY^ f뉖p}>ߺs,rm Z[!/V4 0f=C}ȑǾG JJ60\=~Y8B-ٜ\/Wׁ1^ &1΀nډI #/pr }FcWK^R8c#ެ;(m!uv1s݌ڗOvPz-V(n獨Uo'r9AmK1iA$)ݿ7D0ʊ,srpC*2z7>V`e[.H^ȚsfT} W56ͬ:)yaдu5٢Mߌߧs_|qHIBO/gfW1SA z'|8+Ks4o)5Rz3诱^aC+4V$D՚s\|i+/03(hMo=16W>nY&^mf<fSRzħ}/_٪ ˜^Uu-迶b=' ͫ6#aZ$OkmBl@%[ln h>=rhk0Ѡ,jj9-9_}Gc$as={S#>{m)̔a)nMU~'@)fa@jJO!ȢL_ ͑1iFqO$ %tH'1gX/`Pc2_4k=Ïi-R %ó8- *xksTTs=`~5/{ˆ3G ǀUwpTy#"X:_+V Tw>pPuJe Q:d! ЦWs[U}{;[s[.|ke31]Dpu"eY]vl>B}ÒQHt7ou"C#No9Ӄlp]ٕ,ڢӈ 0d6M#+s$'Ŵc1 4'7I^Abq H ԅNdQF%2`|q'I' (.UtVdYNBM~Ɠ\%X:"9YԷS{DM(!sM!7<}[귌yh_3Me\s Y%dfAފZp6 +C7 Iiܼ6imvԛ)ި䬔VUDgFC?jaɫalL^`YRXvWj`4Yc1'6(wFUNWq9LSQVQǪa^o{;7Բ~HvYH8"]+F82hE3p]j86r츚C[E&Bրo |AU",A B=Z 8dvB=?ǻ3M1?|:Y6ZF1u17f]TE)qSI9+`s?\N_(A=_Q*%Dly.Ĭ%^bwM;;!#wݰ&(X-vR;C Y垍:@,a::4R@ pj!Ƨ]E( H<2ldP!|&/xzsugIilk+|<9F{uwe7 demY7⦁4UNK׊| L,eٜY㾴Ɗi.z$4,rZFe:sP])ۜdg[8 ߄Iv bW>یi|DHK?dx%iCJF򜢝@ Į@[mjSKֻ[Tͬ*:SK3_ Q%@G]{&A`|K4aјFi̜z,!Qď'k\coBC)"e>3*a?xUIY|cuuemE!Ȏ J$ާ!> BߘӒ@nE 0C펞jY3n(6-mCqG?F%)Pc"nR-fRB*BGG.uTQ[2B!q/iI`w̿D:~޻`9귍[z_4Q}"m0lJe4q9@Id 1jFX0Ż[X0i'l|+VrGcϟ/{u#g'v1 +ˆf:6^0ϕQqKDh^4iV\2gB"Y.sr"S [5vGyW.{~ An}>Vp#巬)/njR'СHI}4ؑ+(WIU3X]f&ZYإrH_IݵTAM9[wcVfxGDKS撰W[0v>1]0=TCJa^J#x~cgR_]B0mj-Ǥ-m7wHUTV bZ5񯾌PoJ-} Z &]ds@M̦cFkߧc.0ؘCϔzrEX3z;K6JderԾzIgJ ;Ӽ(?ս&s' 9+F`8TpՒo Oo9V'ݙ vQ&躖о5aފy`ih+ /c2vYm_>;?WJDe9Ea7epYֽs38jF^OBo3 1kc Gԟl98İtݍ+%s8\=X,v 4S+4S@hǟ`n ٚ IRݭ6!h \S^oӍ(ߋIä3D6¯#AUNcPb*kIDF**~nj ~K+ ]c:cE,'flO}3`aA]{kAv'ˑC9_IbS,2 $>q:sv^SZZcLdB,$qJ(lȿc$5n|uC^a9z)0n@moޅ)P4|lC,:ԲuLuLw"[b,[DYj +@R;DrKc[s yYr=Fh&00p^e,5'Pz$ʡF^0qP'f_"E9}ZW^7TGnx&8 |@SBx24&75|̺Bp.,Jev0\HOt*zXgk`Q(~[B1}ncڳǗUjS<(61&I: 0kvaWpGٲ̃^j r,6 lc"YI^ kK8X*j64*2j:yfQ#䗴 bb#&|x1Jt 2YNaqkolE/IcKm>^XR`Q6K`a7Gekg{3-*甮gc %t5¶ BSGfyexēP`YYAvII)s[&*A23mۃJ;򘐟$oWCPi {sHgS(鮋V};'>@y4={v 34ԎS{PgP录t̳TmNf=JfŠNdﱻx't~/uHyGcڤeu\ITHB}ꉥDC# i_$Z/篳3LÁУpzokJC,*:n[wpg|+L̕ӀjdR˽ᣍ:Nc  ITRB)C㭢Ū1Ρ^s up4|j$0Wt I<ץTu,֟bWgғa[27yi}kG<1v0g+3ڗB.:cOc92%y7,ԡt۵9p6>fD@ $r\vdFGD8't3{YLaBR4+5zQr0Fsgj7fO>ڧA] :ȝM-x,rGd~?xs)]>W< Ŕ KުMB¥x/\\0ֶ]r|o32W gaKc0Uz"_m7{ڦY>$͎0+z`E!3es}uQò潮ĥQD͂;jy. m۱Q2-` 'm7%lB"z?B5ʀ*mR<76'I`/޳0r;lޚ}4}>-{ KR,RnQp9J)PElJ1 ZK=7K[o 8KHkt顬`3' bpN/rRYyr9I, 5MA7|EbTuUR^K៼ cY}3iE4sjˁS;GT\o%?񕮈R%gLb(W^J,μ(෿v彔̯/dhg|(EjQ0i6#F9mqڢmԌ:oHi,CQm'vr(Ujց5+!GN`rS~M64!<hPoWokևj! ~[S«a|+H0*Ԟa$!rR AKA doF2Wg cE%z1tRs6tSoch˾nzR# VGme-cjeV`Y%lב$\IrL֮<Nm3/vԍ =RNⱹmS3?xDzœ ;8eymtJP-@gJ|eG'tP|nPnE>qORQD 'Z5±pJUqg3VaB$7ZƽX="$\lz(_6Wǻ`1䌤e̩iX| ,E 5fTb7[9!] [D)d]nƈ͉~Adbt L{R(F#lzGZTbNЦv;;;b5+o'7ޡFּTK#و?<)8j0Xt1DIG^S/)luu>m[&ҨN9it2 %&K.'*~_oc+6-(\e)+ALQ{a}aF o%+mX0`YN߇&ӯ(|{90N#{l %\xq)1yp-.oiėLd7\zKXZX}whii\f@ā ]Ѳ I wԫhr#d֡X@2@Dw_+gv=,jιz.)m!e*lx3yvRzL]qT!$_)3SjPOPyUW3ZzUFN~:MTJbj^ b@``L&:拰DV+D =, u"8ޯvZ\ӕ#!C, #|.a ~ƻ277KeIӿT9J)-#ߝ;OVDdY57\A@UŜ4Borbڔ?6蚫EvS64zn=5!OULJ^6qGm=!ˈ" JyxJLD_JW-;@J>%2Z0ix3b\=?z/\}༳(0Xe,8zc3~`($hxΓ-轼O|ddŸ\$' :SoҒ:KGdϢ{qZiMɷbdyS5byK~3Obv1QSIVvVfPhY(qt8KpZX<21"\ՁV%THI )sR0Vŗ\š.NTh?j,GoK6ubCG԰O (dmi}}0˸؏{D{x5>֤ jBS0ɐPA;O)~W93ghih )',(E2#;p{yŖMT/CM0`CaPK'N2Гb n?8iQQW5$gC~`/:fԹu1-sRʭxA]f2On<haaQe>㖧Ҥ>t~0|7v AC lлq+a Ntw"^ٓ3^iYqbNtQ,5+3Ÿz]IiCj)0w$|O^Tr+(O9e 2H}1|X`zVj]ڰOˆB4 xPeC"8SWM}imyƥK>cfс!c~TE%c_\uɶgKyLD.% F0~moP V|k%JR@=+ձZ l::vbn! 8WU%WjRxQ8Fxᱬ?$":o|0Fo19& '{ 8#࿫bCȣJdW3R9zu!T4N-x7 VG_GsnZ$)GΗׁ{HZxow3Ɛ6Y.v- UܼbC+1qLY,dFӼl/ Rˍ2pj+>2yc8VOK=V>IT4l +3\y@;\o(W qd}6G6e$ +J#c6@f4 W0y{$Z ,&-PZ ;im!Z=$Zk |E4ȉ7zkbdK9TF{͒m G͕>ZŎlǾܴB~tWNt:KB0Ͳ#+$)"o8Mڶ;+]2sDd9(ЭP2V ?KޛhtPT|)0༑\1е*Cu9?:9?{\3npEwk$G-P5oKB`‰`@72'!`Z򈶋CKM=oGl_uamA/Ra.K^Ͼ 9X5. ֖ߊ(Mxѱ|.IwܸNAN)r';H^]\';<= /j'q~*0 ݮ|IB_f)C|` 9ɜ?#4پ$,I)|0Nh\,`k͓"%5bUXw?q}vU_΁ࣷW?8&T^5E˼GTZ곘KXzM4Pp]1 ffl sqaqS7V쇭*&,SGit>,cXdž!nA<~QXDDv3T~yz{R2S 7aRr^wSui+h7瘰hCeSU*Kx@rQ+N[j>N&wfBSzZ ^tu I!5%qU o#;l)ĩ,F\0| }#bdV!;[ w$izM\}:Vy6X{ܱ#9PK[e=1 'IJ+nuvola/128x128/filesystems/folder_image.pngUT ZAPQux EP)$[ MPB"% ]TDRE A4 b!*("ҾAA@Pj}ͼ$wٹ{O9gNRyy?nc᰿RF6zu/)"s]*%lXu?=~+Ƶv?c8^r܂5A| Rrh$_>(@(zjg+Q7V7VW@IilD" DEvOԑaa =Fdp5&(ol rصL<h)F’.@yya)44Gt1W'uj೩UOPJQWJ="jc"& zllhDܺ߿B"Ν;({'sBI|{- P'OyRPSVJ=#ݸ#Wc1%)1 29$*!#(? /1]'ÇOp=:kы.Y"(x\ϝd@^udDKybӳJ@UbcB֖|B`".f!uQk5n_!oo1gu< d~r ]*w\`n'z@eJI(Ӻ!31=hOC|K4>G6X9qz%u~Q!C SM [}u0'q|AM,T7LvxPJ0\3w6JR' Ƙ>I_uA ޹r ԋɴ"^ K[M M+f/\ZPbh`Pd*G t3k"Tx mXЭ;7]իTi}׳$AnnnR߿;)Z y֙ 2?w k2xyHҢȠagR@nGI!ekc%'N{VGu Áu1o̧(e5`fn۵:g̸p٤x{*A@QQt-paQeGo1;)ڲFN8vԟ}\̚o!:R{_H1\|BVS0#F-@~yFƾǵW%(0{kpmm +R|/@l B {{mar5A1Xe@Fhfn\~+OM{co< `vj%M.YS2 M>~à@OF]bũ?́;25bn._Kr|^P_enD4HZll@ y'Q/Mp!W;7-9X#Jh (|HmݳAb:=nYC0K1ɴNĐEW!)L?m#VpGSLV45=w6 ? EA,uTeEfD7*LVYSzV]05YK# s_c2ȣg i\I;+so|[4~[&\x˜ á$L$8+obv1Z &*?8<`iB#β3<'EoPȢy39K[Q1;XO*mXy#AdaT1* r|R nyPE5$tv2Z:-]-֮n!F;Tsں;5:!:\ B5c9,2?ھ6lPο p}4׬@Ks6;5ڌBͩ? 'nM03q2QPe+t;@f=άgݰ-w=H&$u },f5O)9^$x$-fmGF NvgwCBrԔ.NL{_~D`eA:#槮=(Lc k9˺NC+m9&VϦt e4-p*<`ۉbQU*R6Wn@vPlh pj=,tʐYY .bqh=t}UV}άՓӎoA/jcmm!5J?{zj7d/U[2q'xo/ZmjΔ0b&榇 b@ɸC4`TanޭN繱;7vZ 3OR# Xg'c3=諸u;zӬ4oqu~tgmJ7=4u<&:㞞(t,LA.<ͭz ZO<|fh0Zy'E_mnC3o~{(n?{`r6ןKGym:M"4470{@g3GTz2I:مJsnPy&wR!tvfg2 ~ˠ3' 795EH3Q7> plR-nlPe^_or~kR I?ù/,mhzqʤP +RƷέK ((Pɿ]{|Sn>m s4d{_W.WW;wzĥ>z-qUlKf@čZd'+0 >bk;60ze$nrS.i٧ۃ&z0Mte¹j^s#zO9XfPt$ێZAvL+g̬^ nZ`rݥ7H&Jήr^]:Hx֪ih.^D+g[GXKwV=,4>U?Թ#lv.z*p OI٨7ҿb%Kv<]TVHY ˲9޼Z-r&vnጊ_tڿjԤxxW3m! -Ubȉ6p~#ܯvз!S'vlA"K )пjֵRV(»l?Fف?vNc_6@?ªamEq)b~2W P*D;!|-Y"-9[yB )$`r0^i5(T@wKi*ჹzfgŌa#1KLj>{+cn%>!~ISeY*5Qǹ&lR&/hwʔ\Z *j&ff1$jqs#'l=}89ė9 ]00!JD4ym"]P|;[eUmnTFC yS󛷠#jӴ't1OerżsGOTivE)1^:*-h;efjj9?Ôf Tī ZVG]~'X</z v rs?< )㒢nN&}-,yV '͞w~ӌƈɤN]d;$\~FqFy'GG?nd<ϗ($X4yc=ESkw( a6F%._q .E q]7)к5"04?Bг! 5Coylv!F O. n+qDi[h}[%ϋBʾ6׊T+\Pa>}iu0q4 =Y[{{̢͇P H"W'n*sSsb ,Q12)'tW}R7؃? ľq y`@$0;M}&ȠpLƔ {W~ _|Sh;i%)ꠟ,(͟m]D;fށQ8W$9#8/ uFWQ&oz!(%^ xpz oکH <<~_P1 WFO[OdO&P5(L_kҦl$6 OV“6R!H#üRxgvL $I@Abv`[Z1,7[k6jVw6eM\/inl-b$B0QU<"Q=Q1'Gӣ&s%gU^Vl.U0 C͍ڼS&b2ic7Dm-N-|!QLj~RKwp i׭x'-zni !Cpn*u+]6[(nQzf`WKw/\_g/ElfOuEJ .z ׭o )Z޺ 3P ({6鞙g<\HhJ}/޿+{&ಾ^H ^r?.r̫kY$j$C U s`Ar)F_NL4& bwy(\6 t]Pi؀ zW&X?~jv$:no~Wyqr:Oʁ2h}dyMV!.ơ9JU!q Be +3V!r Ch(ֈ0á+y.k I]/чx×'ARR!MPB.BTI|oX/e* "&z~.:$,{Ie)zu;d{\WC7|#駴7h}Ҍ`SHM ]̂ %4>x;g]h0j(:ȾCπ} <~?4^{""'BD}e^Q_W޻}qk)riw661lŭPifJK\c즜ōm8}PC\D;}uO?;f1?sI4ժaׄd )t p,}`m[X>kcC7ɖAW4 4?7I dAcwwԲ.dְdO w@ˣ¾fJ<C0'+cF[6`)U$AwL#=)Kr2BCA2q-_!ipmL4QhP}ߑXQ[_q8؅.Ŋ"(*ڐ<-_^ :}ˁ:52ӿ>k|LT+sm(12YY6~P{wq&xyoGoaSF2 iV,tvԮry t%Xʾ[5N1hV3 ((04:)bsKRsQn,IS:DUTqbqܙ-đ)9"#NO )OSr+7WzTZM;mSQn辘gq:e9lvz@z}W3K]uhCLh+:uqOVIB`yt\\ڴ` L~%ȇ(F|)rvrN轒#/ֲWw@i,"~bv~R`p睾R7~񮯇PTLIUn4];`mER0| A|*Y@zpp_zZݩ!lM'a$No?jWryu7VH HCajAye єڑ-TZ:pzR\j0=Xe(5UYl!ga4 T~GZؑ4R ;>[0+yާ1m޻4 L y FzPI Y@$cxQ[iXU2m0k+][W/QKBQEA~FK„˪-< ܑx_yfX &ߪ\SȖhOP„ G6^l|+ kIU74B~`i*W zcجڈ'6[c9!1Rߧ{}0j1UJ׷+ t7pMX·0L76@,pf.?w\,~n%YxME}Eu?pU]v8\0鈩C[&Y O"rMeahVfxz(Hאk=:ؘ>l%Ğ. FJ A7V&~n[q =hu*4H2*Ojp/4mPCti?[GaZ\nbkیBNp:$: F:#Q.+8U]f!I7zZxeؐD`z #@ʅDw&3 ]婗=\ ki+Fre*_ /Da_"w1Z{W9 fGH̩JD.>5hT^ +Z,0"Zws{XmJΐ;K/4" ȣ_ڧ޿4 'c:51$cm${%-$)@[~p=D i}Ը`"_Yzu(, U?[,ӿ#w*tAb⟕}~uQ~&zс0F AβU (.|yn:eRU{Ջv_O=i1aK MA6A)$Qs)G+y3Q:`V.F4d5;B[y*"2ii8B(+P_O-(]X5U?;ɣgec%ʫ;akKtѥ*X IPe^DKxI*4NᏰ G}Я"שc\wXv?kp%ߙ*X`wG;}˯񺼐qP^{G9h^)}i'O7$v(ylYh_nٿ%>Uy];0)*H&CӢ2_aRX}HӮdh8adI] W~c6gTIadže{yN;Ƭ게'^{qwFɱ޷2GK]ߩ5 vSuJC 1' }E=?[&a4ȷe 7{oDuϭ]n81+#|m).ZD K s$04Q[Rw*yP9" ^1V?H~8 HR|x@rsCG*=G˱ n4%vfaܹ?/E4R1\7];X@/TE(6O̙2IN ~a*AiLbCɹFwohtg9%w2D&PWS۲/"R\MO9MM~FO'aalѐїfij{zqBEIc D%} 9/wWp9:e-qq=b"x/ܸ$rUfsx)nlE^.eo; E9 AҫnX҆1ufrv̡peA%P̟Ekӂ3S08Sy31B+zІ OK2؆G[:9ԛZw)媀k󀔣z:l`nQΕXF=Wv6GIBR_8M>J57]Υ/"7wRhz9_Ok"nFQ@ whPA| B>qTpCn5d ;~iݭ,WHD1X.|]W*&RݨjH:sW/бTHؐ'Ny6u79zH'$',Z+7@!r9u_WB `$E>^hԓn19Q3ϔd{fj|Z{)X(O(Gb\Ig7UwWUa8 :3_-!fQ/"p{#h) ټ#u_$JN$(.~}4M?1w Ɠ)Z5ǵ״uaK:Pl!Y~dv10@OD=cymm7MTƾh`e/I$Yv6'^М牑!LJ 䏐"g. 4Z\{r<"jQ=-+ ԥQfo^H 噟hy-%Q+v;_/- ގAaKqwy(:?7N!Z^’rLb6RFVA7W\o'FWk\-KՒOM90U(JB=^3_\~N~Bo jabDm)#N %k%-v?ڻK%'v :H %h% r=8C%Rs%oD0iThI~'xKm6' X]Foe!7iR%{ZxdG7.UЦ(Sp:x04ߔg)ƻS(c3a1\].l61!zܭ>Ysu a'8">T:9Ax (Tv^:p`+ #sJ# mq)pa<#jn ƃ{U E< EOQ+s{ lc} Ă/GߛNR Yfks#@"@`Z7jbC(4;$̉G:=w 9T ?.l0sK{Iۯ^vfŽtO!*7me)=5ڈ?rMp,ŧ3[T/vɹ']ҵ'*>Uwyd=޶>oX :|E5 ȹ3\F\}3L^W4}YSե]-ۂ1<\+ߛ2K-3ژIپ?5Ij+:ŠjG}FSikWPuR9*$TmWhZ n >iBD9x[ :5s'B4+#~o݄ '#kgM.RG0Q~PT`2v'3w2n;yRGITkYO]'SRɒLFPgH鷉dKd?+`ƏǸ1Tw?Qq1,V3z i3-k?_8 &`_3SsrL}Dr9!50!!`{xKt÷ut9/5M{IOv\+EiWħxbbiO Fri/%iHyĄܛ;VGCP/V'ޫ͋5d$'BZ)8CB2H$,m [;h Nho)#B])rKඨ'M@ă^eӽ GFPMY}Q9ĘۨFJ'2wZLl{oeyvԜ!$JfPmlio%b8dP6[u =gډ,uo5,{/OH4jMaY|&[]I< >R0XC¶3-/ɴ%IWIC8(TTw-^#!̤ISȲ@GE\$+bnAZV='u}Y5Db0㕠 $BG?qEADr)^koO~3hvO8Җ9fmp|)ӘYʍIv~K&򈞏eHltjK 7"H=`` ?/^z ufD93[YOtjLZޙ”9n#O<]+W̜O PcC<@yPpn0f'wa);4`'>z_LLñlu>_Y Э!Y'$Zp~/ a[\:by=p뇠;#;~.O2a>p^|{s77 qM>7jéF<*g1}=?Gv慫;ԭ |u bDsTK"YHZkp>.،f?p!ұWk7X wI醙 :l̜ 6e%RylCp CQ}?}Ϳ9"F(-9~GOd~k\]k VK-R,%C ?ENRDpVȬT}]Wx%%u4:#pp=:Z~XK%\ߣ= NB@] sQڂ.SmY̸qSTxyFDBwHlgfH ]a",$}aE Jy9VBA7'JV"Z_H46 k,\&SUOF:fݢm0j* r,xy5;gf͇~\?P}iC1씩7´7AܣA;+$DIq* 3Brp,S|p* )-7UКs+0Vo6;HIM03ҡT/UV2{ Rn`h% Њ;ÞZheG",W9`vBsĐC`rJ {W9nZV(M&±f܅\]]0yxq8򾰐5 ȵM T6N |c|1C}HMvSԱ$UY<֮z7 ̵"_I|NyV];&$7#-Z H#dJ#7%1v&^nrv ugSQx/BYgV2k5nXc,iF0 0llX)s%|AdxR$}ʫ1cҦ7z2U6 6vȵY塚6q` 2k>dyX^ ߶1W,5 @l/k\)]yxm*f0O- $-!AŤā[²\F*yn S2֡B/{ՕQD\J7-MjYJpY E,IkFlU,',ż35v 3RHљ?:eyQwtN84uolh bY.@CY$PʂX.UGKOIn1KC=yx\ L$:8H|'{Nz|&lD_J֕Ic|cz85aV_UOa~I mY[F*mRsI=j#x+M 3i:A]启Ma]B"bRrAq36 * P&jT2 7lN~{B"\1&vY/O*1e'Tr ߒ-W s?O?_s'@Б#\ ƒT cjIƁ?G WN/=tj tx[sǿǐNfs~wyuaNױ@:=W_|֝pSr+R _nX8"at%m"r5_'naDylUf4Eb0q6lf N=?B5gQtG?㍇(LGF>SZyPw S&1hy s)6,3>UEd8^> y=?:%?klמk؀`MkսNq [{vG7H%Hj ~wL!ٝ['}nBX|D3D%sӻbj(!6Lr8sϕ\۝fdzhMk㜞Ӥq투W_[m$N>ZZ5^s ~ů2˔^B^s01VEl1>EШ}hvz 4]e0vk`zA3KZK3C ogUͤCK\hnX3WI&?moknVxC/ m,kV,:Q}[8_؛\v9Rq3ˉ'u /|宋L{C0Ѳ| Ů N97}+S\[s޳6;kKؾyƒA6a=Kw+WC4!GʶX)3OIOH%)VJ"#h#a1oƫ29(/8?|yM kbFIwm:NU"Mwp|i]\h\7P5^@H=:sdP۪tOXcԠuPp[a!truCKPA,"2%tBgx\U?Bm>όۋk~;7Ɲ2z -h,S 'OWRݝGG.'N{j8vLm'(ѽ/ 9 ע., g*G=F&i*GqXR/b{)Wssg\aB8@h"i&ž!|Μ:Wׅ)7F戟, /*G I䖼 ҟ=ѽu6Z/z<M{`b$dWҀL%M1>ޓI2".`J5\Y'HQV%27~{,)9p?]y7z7]̢#ӡ157[<%A3|B{e^1o!HIy+4я[9$ ({'?pV uΛ Ev0`67}' YW >,z%'|_-,JHPKXe=1gZPR/nuvola/128x128/filesystems/folder_important.pngUT ZAPQux ={8?~4lsڐ(bEtpĜUBR! Љ%0(i!A2Ps߽?v_v񼯗;{6Eymy{idwKP "v{ąqbrhLp~aAgOv9n_E Hb^xZ; ڻ#]΋bqde k*bQ(ھCl*b:5H6W@8?SǓ+X!5l౩E~Æn1Kߦ /MXR N7? diL]=34<[AxxD0'rxx= C*)Y}2:(Pڹ37!4i`aDzTܓl8pJA)NC[YUUkX]&w7 RN)/Pч# 1cik?7N>-Վ S >)4-FȔ=T߃ݫ_My3~lF-T%IGn%6Gd' f{}`+C,_JaVP^iapX4V6SZh6uKYjvV#Q꒗L?Sw; o\:@cUٜ3$-(~QeNJފDH&[3z/-LW}R<+e/OK 'Q#[>AG֧ߘyR***NgW9:.#L D#NՅژ!`cZVCt$ëYD@?)?eO_my CxY@F$EJYUyPB؁,R7;Me R)Y3~ q7P˨J(q .@Rzbf扴skBMRSb}f&Bba[bى3]HpKV(&U8Gw u.Ð8> +=5'z,w Fc2٤LŤ%ba%YD|K:o&!~["ecH;,OY'# 3鐤V 8yu/;AL#ds uqs0ZW~S(-(XEKCZ&RҎ)5 zcMYJy 3$TE$x>Tn)&:;!iZ<]0SJ|8c|bC÷j4JȩяJ }RL**x䈚&jӲ 4r\Ov0uXu_2uB ܨ1- SS^W_Vy?(Um(M38,;##QuW@UXEPQ\WDbPTp饩a2J27AB5,Y/BsRP޼FoݚL8n0w3FPRA^LY9$~ڽ4=\ŤaY)=!/χ<:XOO"XCSd"w#UTv9gbakǎw蟛1b)/F\*˗ y2eGRQ^N`<{ H8R#z d1S:ʿAkz/+#oJA퀭;u^Uโ1ӴE y#^N b<8HPħbYýOEu|-X|6 Fm-{.9e@=YM*z#uH{lYð-{^&ɐ<쓼+ Ԉ d!S7I bhJZP5{~uL[wwF]p wx;i\=d#pc6e93`=e;vsQ4UNL,ϧɇL tf[?MNʿF׿cne6TjNo4b=blE+Rz cϗt\Y%=%+E:t 7H^O *{VcM8kfMnusZdj.t܆N'rA.9|U0ocLvg했x~oE6܇ӠF:&8+MjbDG ,S""DⴷvqZ[9m9D=K?rJQ~!j0Qx6Z:JDV,ῶTu@=G)>o=+jB4󽼕Zr>v\ts Wpq6upn~m׏XɇzaB6Lw vCma2t6b]t)'+II̷s֛VR_#_783j59+/}^8_>^l.=΋h8צk"U}Cif{]~(ʝL 99O>\7Î[ ;_!_)QN %&A oe:[vC_82*YM ֩#oaE hngOM쒺uG~?5s mv'GQSw{hSvc>ةX_;mY%ŘՕ{I\H"z_]hRRl{j٦s'wi޻s#ay4#`Sn՘KM[TnoY{ۃLv?CO 5) 9aۼTeIsMӄۻ5+W}:ˊ*ܾȽDRnݶ1df.x-}~AVqelЕ_Oc/8M"~ GlyFy. 크͹Cnjo<&Ciiɶ`.r3O)r9v55nA%Q{rrrW&O- >W^gf7A  v3n==xx?Y{}̄*1{dcK*C]',=F)ac ÊVfXJɶ:O:glv{X5X}5VCR~xC#,0KZQ6w4]-̽ d#->j}W7*;^qF|.w;SC+gR+3~x>y+Q<|.T!,BxZM^b*d[NƊL* vs;MqMMFH)iYݱ 4qq z;u:7cy7%Ǹ̸Z{q+w}_,I~lF8}l5kJ>ۙpD c{C̓M72vtk}0r7w>m&ygغ#MUQzg::2ry\23.'N;0/zN3`98V֊$U7t-W0Ġ\{pe틅P]SQ^Fv' 0+\,ЗoI|=X<ҟp;ÒO>{Sߵ>@ߕb_dٰeZuO҅3f>At1)K^3lPtތf2M7+{4F"N8~~]ƻ݂SU݊];77.W ѿd3EhESmXnEz|%̒e6k~h Ҝ*~H5PDSӉ&Aar ㌼t8AmJJ9l)nȉ5x>O:dL_Z0K{Fni]B)y޺9B}Miٸ6(2-!y,yd^ 5Ӝ~zdeMYk[!Ʀ[P=S10O@},kNJw9@ p!#LsJsHs~zYwWمU 98x)e4D2b߭pyV@`UD\KvU}sJ_;/y{Q2?W=/iBy7ךgFed}C4 0z̎Sl_SD!>*נ (b:e"֭!oHΝn$ľ 8!uDѼ]#8*%UPuޮIb_諙oX~S2yYM݂uϿBj D gYsR?"xc8֨䷄;-`D e@tDJa<.#h_e|!Jq+&(rT^,ht']3vb4K)*sC۳l;W}qc$Dsul)7/ut4^Ojk )ya ؗh{w\\J8//8pOrih{Vu2gŮy{wZ۳cb<02W}?-r>ˤ{+V_wK!޳"ʼn+ ȣHJR0Vj"*fj,#˼%Ik:UtмoEwG2!=.vp0 _u7=J\ENz*~ɢVgF d i-Wt~ln.{A;KcL֯0)Ro.˭)9tk/]ܥ־ < \C/꞊ya=M:GDmhywj]QD^xy&o[KGȯǜT*zehxWםW shĆ{#`Bp1վlmWj}C Y~qԤ@iV3m/rYR&[M:-wV4d:XdsZ!1FQ/Pdpa܆hWxzgyO@"l~RaT E,2n||~x[ŰHJ}K;ڰ ڑQQn@nY󋏩ZRtEÌC"uC`u2m7MP46x J'A"DOڤM bE9gnwv޳БDpj g[-3DbST8- D ;=_kb!v#}C'K wFq$)5 i9{gb%3fqZ*sA%^}+G )2$9O76R/^" 46mi![q=DƜxZqҔX D.8hL.[Zl^#6&)}I[ev>;?p+&<#Ur<Ά[n=9p[̑ɮTJ3G{b62p?T /ƧGE83 EUԯЫ6/ga2\_81쀯?JNV;kp%6 *!:𰬄@ `D*ho~'m#;AP:lS' Q6ݛ9@eߡR#^XM p nm=V(Y/{OT.%ۜ1T9R`{LO~go=g\.2aT܂4EfG,Mv ."z|-E8(mKjf}k6ݜZGf\73@h<׿a즛Sv{ UOyM$*b'mlP6Џ\ I\7qyMioڪ1K7yi7c0)vZ׎<<^JFĖ{/9wM!r9lRٵ%AO,N#&Xci$A6^BSJƝ > aNGṔ~LZr`a#AY"X!7Wa)P MIotF6Om߰^a4k"_䤭 ][Q~ˬm½_::e¦Aպno{y$y1֦ID>#qOj؂kuEoѣԬ6PY'Ag69Cv{*n 'ȼ^D OE"J]kWG qYb%Ư/24N* fMxOMssB_{С0,O?XX{!mCrqWm4}fwBMO"VGobƷiWK1`-Te>4f!6Iϱb Rn.AKF?9OЧ ` ;` 1c"]v*1}Ғ7,EĹE,Y!#Ml3DQimwB40Neɞj =<.^]nn%b ~Ѿ ZfG"l3 tVdF>d9F -24\Jd3|wGCCHc .M8J7tg>3hmȗ\NN _u V ]_*tCVݔ?}'bi7Mc!"}[|3r;fMxF1rJ xV:=eMJa_>*RItpuDZ5<1\R`X1a5YT+܏䐷{&Ԫ`Ja:Qlȶy`^@z^*QwR{2b[x5{1ޱ|hC%cRcޤ_+oxcWoRe1*Ꮩ$)xms;kF]wEOY~fOxߘ{oKyrRWr6vF$bJ1ŤiKNF+*⇹|ڹ 9Ү3S_q|_⠣ZV ; 5`[kuߕav2LMF;}:T[~Y\t5gۇ(Bj ԢSh/];ߏZ8LX~mV1"=AӏɩeQy?ޝAݵӜiSʈ $Pv W2\"4Bjr/ |7tB 9 uNPݮi?C9^ \uUC[\ tӫO7݋*pJgރNڵ(?CLTPcPX!\"R|U.ּ1fZ.Ԩ$]_5r6 ߦQ2$.ٵE S񥇔+2 m_zp/NFȡFCtB0N"-Ƀixߞ.jV3;b a _k y^hoE=n y ,d+ɦ %Or`] ?LWk-Ww*SYQ&^.R&z)6~rܜ|r]²rJc ,o 5?$?<6*9W1+IR֪f4tfwWBя[)t« AS G0Z=A=a&&&ֲK^嬷;Gk_I~9N?R~BrkQsmhl,nj욧H%Y$K·ެh#ys[,7"cnޢXS;'U8 Twߌ<&>{%N?ELuPM?>VBm\]{X*h}x"< @=ZO 1v .[nQ|/| u>Eq۷N\k:*~""!{Dd=Z/DMd*LbBFB|J V Oov\E6Cs"0?\x \ `;t fV8d -`lk{Jv^"qghq6^%&rSÂ{("\AVKO..MSZtiEI_A(61GNG! Wbݱ7-` Ə'ee*@P`dHUs#&eL!000cnuj#bm>5<</jp&}k‰0)݁b$b\q=WbkAOԐC&0g+en5p O\sGx'DWY uxуKCmݠdGa y oSU`Io&WU?m\*tvg@Pě\x>,6` U5?o鹧+c`&K2,=@GЫ(|cgSMy$?^nў(N{oׄɯ-o+F.N%'bneY:bAZ%h+] %\{Rۡ4a̲jS$`&)RS;Q@s6)Wa >7D CGs[HNth'DU`KҺ8fZ9Jv8lj*Lwp:7{(սgz:9oMZć2"^M,H&Il`' kE-{>a|e9~$QO }PZh d_0S 0dЄG'3O6ʒ8.MqrDp/d2(uM:  D%WLxA\?NQCgb<8x98p-7 = ռRg-RE:ΞlF0yD'3 \|1tVty41Xz~gdHė (ȗԆ4{0hTfڲPQ2@_\`=02xA#o<+YZxV{A)wXSV#Ɔah[ܯ[R$d]Y45JC)bd=YJU{k@yk(SJ+Jd{,͛L 8r"Jwwͬ/)#UF=V"ǰH]A[LȓiM*q kJ 2P2ڐҮ[ _wFQ8`ؾ}( u&4#dQ u=8Uu jlF\^&oy1+飝K¼^F+tgAvHȒ?u֔߅2k>N()YTJ_/#0fJP:<@ n"K3+Č8 exc8(!z\w7ق2A( k&{/=~􇴏&R!?{PTjdeq6W^7a12 >)[)ܡ/vf7`U C&qOqWM,--/`Ƭ#Qkzv5fVqqVf .m姝9mqwCFzBlnh_W 6>J vKTqX*noqpv!-++x@ZzP\Xp o' `|=ݮ+=@P 0 H@Hxa jwd5">ʉó L3p4W'3VڍGσ[}uVO8}dhjT ,ht58.Xq\!Jy'݋buxe1wi%'r =@n{|4B2[]xKKroU SUV.ʵ;Б+QHxpQN^)j=}yDQ%Cױ=gD`f#D-XkVNcHli4BҀ`ÃCKjІm3qxء3nupNr0.:iz/Gv`rD3RWAk19.!g%oxeUvHTRe@ 2 Y/%.MRbcew΁93sZ .ؑh X3(h)Sf[NG4a9IPL#:ڪd?!JM'jlX 6ɹ^T"K8NݛM^Q#7\/"wG[ w9*d9WK+Xd{+4mp(O÷,}%AtyvФdE`CsI['Q"nV?yL)1\0B An0~Ҕa" gXE!@`ZH%t?N?p{*JErT0( ly~ͼRY-T#`O]#OO9[@RbU9 -q¥e5؃r]Z *G7;kO|mrڕ?4 cp͎uU8 [ӿo) ~R =A#õF%ܪ-!6h'\M.ږ'46J#6yd?iT6qû ~k)H 0FJiGپxmرBN_YWSbbM TP(v`ԴȭR'/r"y3S`?2 6K@VSS"(E"{,znכw?oC F=Bepϊ_ojd^).Z^^OBB1M:Fa_Sbp)Ox0*.rﴍ5 ;,&GYk>N=^~`ktG7~ޗbfG#JpN3mlDZ0k>dZz"1We%?^$2Z!B!E@w6-{yaez4DO=MBhE|G]{%jAGd_*FIQǁsf_϶yklb!a}m!GlqN*)H$,H=?NS-ca-Zq`l55񶘴 ` - H:FBO䑩JP8sVHZ7*lEC/$70zϔ5&Vhrx:yQt"^,qg ;+1Lyd eHJM@WJf|S׭K 8z)%GN!> lu1{4$ck@D::MiTlTuHv^'mej4Qi z*џ(5Wqխꦃcx`2Vp1H}*gݏ)0>Z6LGxҘԂvcd釶y>вmL4}6vR{H ɀМ1g"0R;ŏ2,;e6nEc-M/o*c;G<_wq"^&4PrVYsKzό(8kmKɐv3_Tpﮥr4ϥ'A[σh1(dI`Y][N.d٘G_Gh#bRʛJ su`$2y6!yqSbn ̸nLtZ?K7_XMF11#yED%v"B/J `iP)F?P~'26F28ϖ& : CVjK :)WݍKzrpVD?cS\ڗڧQr($Zaz2%? S jJ0&c=1br/ ‚:J2Kj)-y +ʼnY9H ֦=:|Wʤ#1i}Hx{ؘռ"7JCodf > d<@_S׸gbnчwbmVaQjH ˦mu߸DTDN<FҤ# q5oQը<\棍!!'N[yĎC@tΉ8pAo>ֹb1э`@t}&9|6)(1åض0δlf~{%M g/`ZᱳSCMH;&ɎOe6n-A`[FM<[ Z*Bl(I{hQ۹% :ůY:K4݁t>;#0G.o61*R^pxufl|Dp:i3"]Mʽ֨Z~ERYBRlknM_X EMO:ow޹m1eĚI"Y.j䢞ؓ6e> YȻԔQ p/3 7͆z%X1$A ee&!o0xԙQ=}l ~=,aJ`EDwIK'+p;A*rQ `)^\`ѺCzPD)D*fAq{y8~1D:J[U%&so2heJXf= zهۍ}(Nޑ^f"䷿X$B]VׇOEFaMH2)+ML%%HSmK@(h%/1.:X>gk/>c\ # pߞ>\6!bJVtMBx>;aJ؇ g{2U7|{m(zkQ1ME0Ё f$r*_FX|csJyK*STMD2z/4eD>w"6]Rÿj5[AfB{4Ba~k5DV0K7iM =EfK)[BQPmV UFO*1Elt }j ]2 EIS9iC_Q#K[)5eu UdX2<Ł`P3g%Mzi{$Gц1xN\0%@9~*droRfFK/UlpW t]ӫڦ\} ګXfIpʹ{F!g*w] 3~\n%Q@tpg-s=ȱ3iO!q|ZReJ/u@{{44ƺEZ_tv&Q5ms'l X XJ 7s]!|r"6끒HCvDztod9鎁h1_U'B?P iOqmN( XDlXNFݩR.]½JN g(7dIa&PB]/NӶJ@- 8M#eΗnL(vw_l'"v>fELmv4@jocŀA?`iN Mng[u%!m  ;)~Sl,h 5xYe+fݨT~{ UК_0Ҝ~4Pr6&mI0:`+[`mdY)dtro-owZmÏv-GDg i tk'$fGu| cD+P#zgB<(PY#my 45D2Jc~G@W{Νl],ƒvDߘ༥!wD82qU#c‚W B,IFIn)O0r@!i%}74*eg3aSTn3^BV YcغͶ ey {ed̾[\Uo ro`^"Wv߻GST%Fk#m 3o`x[\sr&)3]}:$6IauQga<.w{,ʵi u/ !@nv[f6S<m(Tv)+mTd q4? tLWg()Zs8 0><w.T8.2JM -R3:dvE0\"{H)@E+'w!d*-ASL%ORJ! $"?h6ُݞlPKbe=16>KM,nuvola/128x128/filesystems/folder_locked.pngUT ZAPQux -| vR M@CG  ep3 /LtZSE5oM$P$)4$xS,))io@{}{=~۶,4wVf@,FgkS㹽q%|3M@}'=vc"U3sOW mP#nn?فT܋,Ƅ8pJ^NICV^^} s;ys#M ?wE_xV4S-98kWK넙 K2eaoܡߺu~:jƍ,Tii놧>Fب3oA2*\N-`SP/EiߟJzಟb N"kh6N@}WN%h1R"oLMu/LKh޺~1;/.93ܘuHu˳d& >jjj:d2a8z /lWT|Rļer03UbZ/`jW>gr2UH^KVCxA8kT=舃#;ې Gdtoa<PG,P$Tk`+-kHm|VnKwɪC|͠?lYӣ$%V8xHg0!ImM__ra^J4< xwc,t7&l e$qZ0~G>1p9UT6I5ʋ:P@09A75&2۷b&r>%Ծ|ogMPv&]5F,^礕eYBC%8vca^bk#<y4v-+O)ޥQj&1x5"^Yi"Mg睧=soowp{L~{AdI $e>g[GG'4 8yHD9?-B#z^s*%. jـ.y9{\?'%qr.P%ƀ`j  Wtuu(t@ BcKƯU0C+G)***.1츛!ӄz+Eyu-^ZV/]/yFER [( *8bG_(imŭN a͍4EPwZ߾{m\xa%||UX GbxibZQA3+3ĥXJ@B7Xrq+໲⤡Oy9jj>߾=EACYpc@+F6b^AoR6clmڱ2Eߵ(}6ܠ]ZZ:8||3bKq==iQ6k@m.!'gػזy{uEՏ r?귰~zuBLg]>Z7pTHQ\L`zQSL$C"|bhRᴗ7<-cN"fN. _q BHǺEt`)-a5j^(b.ndGtʞ+(}CDmٍcJWؖC~^$맭/Qn9XHl,b~Q Dž1윱4CpIm#mxGzPl)ǚ%ND΁ϬUP r,DB3`I_!ɐ<커- RKC X:3Bh&3z,n~I\KG[Sf!P47,8uxgYQJ{~bp77 3]9\M{fF91P ,*C>`Bv$6USC^;uGVq1m"{. A8?c\;KٯS*"kc!𹢵Ѷ'$#i<-*0c^ eá|CIс(2vp&r[>,PĴ3 )`+l"G-+s v᤼lnNٟg{I,0qV Nc }oDw% I6 wP.Ӄ@Eb* N\]hЦC8;PFNWWD#Mjɕ*"Lɥb_@n$)=>/8y @]Iۃt g'GKHF |.&nVnB8k`Bxj,n4k_hl4gJ/y@6S6w& GknGWeОvU3y-~t+g $2ADZ;Iꈈ7C.tf2/k>ZG[Ǟ8C~zng*/f1z7SߥF[-=ؑϦMv&3BS4.H>y}V?$ SOј#Y"vZؔ)SJr/r\>/|L7wbtsć2g7G*c<ؙw_cgE;_"ޯ)N٭ֿ6 PC=!131HiR/ICcv,lu??sBD—zOmlH^Y=u_8e~]ὛfO#'ZfGf5ŗレoҽp!]0x pSBpKFYN8`U%KAw{>} ZGܬd '6vq_9@KK'Rk{+WF|}t#n5,['`3s -$Llǭ3wH:ߨf;(l yu8),2@;Z[= BN[RxJi~iAklrr޻UzeFy ?J*xDE+HT~ç  9>OC׵UQi$PT 1LA"GC?4nj-C,k"P<m9OvB˘Pt6GnqwVrK_0 '纈*P]yw4!7>~3FޢDݕ.tA㱺hJX!X:Qs&=g@Jn8{C#m-3H7H|hlڛXCPdmAt^jFr.q'CI=`Q9Ph }I!?!lBm)k[7_<8t*FW E.;=Q,8& S;D<0O/Eڜ3T~Ζ`<|_ZW|7WqmM4nJKFleinVQj&Uk_~5U/20v۬$ma[F9VO#l5_S{#h #¡=&%Qi/ l2mW]7D0UDdܑYϿ].>tqFhkⶅ+u̺xX%|/ˤ?y@4;}WIzlJ U= ^Ϡ\f)DkkqoT h{M"#Wރ]OT۟iNY>r?wZc`s9Y#.qW\j4ͶKfo{1Ӷz7Z7;ͱ ] Axk=јiթ_K4qCw^Sjz\՝K5HBԟ,]\w]mDD_ 5jPZ^AW֫AbZ JSnH.1%Eå)j)Z)IYyS$J=]^aQDx_ B]_YTDDyk7sGif(M;tsXbJݳ"KEQs=nuF}09kxq>{o3DG?>B\sT {I[D`SΆ'cx{_ қ۹Q/\|r31z{ֱ]q;P6a/ULNSۃIrHFCEob>:M^i/l Ēګ#Y=5U:S!s'qfͬJcɸiԍnbrcGj$?S'$7t-E"E <p _GEy2n}jɋu˩pa:~Qz8AԸ\Ȥ{\ssΙ򫟂w'rz#)}ʴ~hT΢uVVg*tW<[z3ܗS=_P]*,5:fzF5Qdu,' սSNdJ`3.=qO, JߋC-ig]QP:f! &ɛ;sFi]88ory/^rRvB3!5rGʣp"?:(Ȕ3ݺZ#̦aޔK01ھ`I/// V^XIsa xCʧtQc)It3ڗ/pW=+\[,"79 @=OO lV\bvh}> e_eś!'W8K E`cc?V:^M>rͱ؝F 3U-iȈa̹-"1k0_RԵ4ehu7hm4!YU'<<_/ܘ< ӽil^[mOYj*Rٿ_Up>_J3\\)9t3Vώ}o'X8^ozk?tQ-WCeӧFr /8^IQ9 ᚱYwٲSv8ov%s^ 5|u#Aq(vl\V35odv 5ȸfP Ws5fƖKo2 9r8a!cH;V~mCҗZ=2>ki6Z; e/y ~b5co6{I$We_|v$ݮ >!آDE#Z᧾pqTlUƒ ]PkN~h}@F["'ALjF$胾ω|_2,$%ņRS$=MTOg"uuEwLjup1~rT˫?ʱ1u<*/$~o|_}˄P eOkև7NջY(SAsi+VLV{O+'/6[8˷d]3tz6[Nb6ayӎb=Ő׌Z_ͿaI"ttwņk GS`mؗ-K SE/9k;&tx7c]_ۙ]_yόئDqohG(_r|VPQ  BN.a_@-eF= -|I*%ZDs[u߶+cg+5!1G'Ms֣%5&j}۩#&%iV 9S,IE{*wF=٦9puq?-Y0ӖfWJN:S-j$1(abƣSdК׵I;.p`Wd(^+@1<5l]̽YDo\՜=x_\]fnUCA_<L|"$Y­Ï-UX خ0\Rr)|8 l v1sHP,hrb_8 1Jk1/D BNo_~yN,ΘmXX!vSԲ;nA|[El-T\?k=FBc \llnf?%1 \{N$'+sG~R>N/@ݸq Kr ͅ;z%rt8_w+x5TFc-,<f+8L8bj&6TV5HV,_9ǑBƒFZ|fMKq'y1mٌYS8_/8F]n9P KX,[7Pg02oM϶O8aĢvJy;; 4C=pAPnIEc3\J]T~nZXN^\!Ȑw1faF$W*O=\19אugG`&p֧,X/0i@l*9fH̜$ =  똁M3K"L9DF9 XA+8 ;N|q^+1ɍ @Is֍ QPO( `_)CwΙBf tsK̢:A(Zǫ}Ñh7 SXIK"P_OS$8|Ā~]$SzmĊtQ&uПDRFMh汥%Є% GF=m}GgG2,0/%]=sSW ?AYÝkMhFf`~!bjwlCq,楸rCm֨K#t(gxNą(} )3eO Fw㷧-_}>AaXi`QSQAtZva=R6Z%r 3N) R*ia]$=MK8]1?^;dgc0Ao "_ 2}&bzޅ zG[B, ujmSy/iC'\%K$j݄9 9[;ǥ `w~Q0k% c, DLC(D~c>s>RtC@m_q~hL˺PZ c#X/2 @^/} XC3*N]@Q Fb*tkPbEJNXܵLK"UQ-}1Zj:CV"oW=&hGXU [Vg ]4]Hڨv~;ňvqg-wk4xߒ7T4EúT!R7* *5E/_YPd|EQ>*%&&57v҇ a^p8a R{~>A{ր@XҥO֏`Y?''; bw[gR#ӆiB|Oг|Vljz& ԡB)!UqTmՃq I@}鿍y.9nAĈ>rFV|ݹ&j#*-`Ӛ$._gtS<|K7/w922#SF{9T $LZ':7~l̒PN󂵫p'E'"# 3DO)20a iϩN]G ,,OʬT!r@\=Ŋ| )LC^=t/Qjc3"[0R!Rӷ?| EOƌ @y͞K!M3|pfB8=gf^Gw֯&Q-(kp`?mj SN{N:̓z|dlTl1zsu1TS5O3S3g/D ;1JiŒ>c:sjFc(>V벊[o,sW57 >>&MX0b<){Da!kε  .;.. GPA%VkSj0‡!򡆜4C4/BAJXg9.,?؃-Zσit9#NV)ݛOJMjӅG9˱-% k~\]3?wP|Cit| /$&e`$Z1j́븉l.e&(S$x#™E81Aή_t7#xcxS/]D'z0/ktʲj[}2,f|y_g(]?>B<;`>WƦU 2?˾ke-QQUdRY}}bWiW(XfItBwjΡs1_ {fᔝG>ҶfVO!kr`ȷضow xZĖS8Ҟ>3Pw~b' v@܂)έHgML9i`C& My<ڞEa^#wreJlN!,-]]HrRĮ1ŠXyzg_6!a;XQ;=6P~N%&m9>2`r-Fd={<҉榅T }S=BNXF DƢ%|δs9؝n5V֏{ge4)O<@/FNs "\a,g0b#@C5"bsK 0:|P L?(pH-/zڏ-GqxCMɼx]8sfFqʺ~D3 g>,>U( ~6͔ͩbό@oyR67z O84xw_9n4AqJIP$H~E]Eg[ DwͥO4ܙ_|-:B?zEyQxH(1d>yM&g`<2N.H)+`l`KC5࿨3X:E=(=" $.!jA'wo0\NR)ѻ&p<7*شՏ Wm?,j:|zz4N*r'_s6%a sU8;,ec+9ɣ̠c?OdtN.~OKPZMgm&M Hm>Ϊ @Iy(Wh|fg2#7O;7[?!W%q|CRFUs'hQ; _8-ÌN(z ɖKKhqKRM"0 S, y U b!AvT OԤц&],wJ>zqC.ˈT]=yDt]tA pDTA+O᭔6y0D1DSvv|ysK'Vrڳ7"d fKQ|GRhM-o1v9фLZmN6#ewfKٜ 4{}In6B !$>](3brFs 񓓅7DW%t-İC@gg+ɟcfZ(;e/:?$|EۊŢo[ZBU r8i13h%팔 X4g/@hjePBŢţSHTXo2hCj-4ُ ͅו{Č@tۙSnb{BȁRjX۹sSv-iYMw֖$D^dH 7dͮcSS?f1z~b<5CQ/v̀",2ם3x*A]wuH](U#$\ޞtSc\T0t"\Yw,}hڞ#uV+58%+rle9XO%\"X&T [,PqД%SgmXEȩB}IC%sN8t2y`}{$>r2)Q~ G[5B(_Aϡ!n PMTf㵉HLpQdAb%}Jh<2} 0n;f܀~wә +Z^Q9rBY1] miɖv+ F7R%g`uGAe8_ʈt& >p yK f iXPDevsGX\ lMa $ :15+H0׺lV;+Msꯄ3Bgnmp\Iַab|Ҫw2|p~̻&B hdʝIhWG !^A ɂGLu5+wLmܜߩ(WTպLPV-I ݰ1WHNre+lwѽm$W8]qyzhd_jAV@Q,CM DtB'_Ď_K`;w$>OoƑ֍W*YB@?Gx_@5ߩnB[ţkvgГXQqrjrgw:>K,Xw<^:(ʍ8VP a,;sm qcrG=dCѻЌt$v5YuTcq&i:NVFF2rd QUq1E@gZtOh> EZԼ0E=qjOCO$+܁P+>A_S*;DkdBiEېw˓֍H$Q {db%f~Vo-$Gٻ9ո`^nwDJ,8MtҐj%T!& ' ۿߙms bJ0kI,6 Bvr3qU3 wD*ʸD):4rq6\g-Z}5U߿C6T7 բ\.=x} >}s {z`Y3ֈdglT$h!@(L V?-cM^19?-l~2.& mqɱvpFW3R))K~ůiIR@@g^Il][Yie,X%|q >!Ub' lF\muF{*郲BGGqmM 0l=q [0B!µyj i"gyy NIG:5燳Ԯc1i***&\U"B$[m/?jkeFT==_I` Ǐ2C55dHqٟLrϏC+ Rl{+ RIK>摀lFȏg5_YCe6W~42@"B/=GyO{F:t$*|_;S̢MH7,KMRW匣s)jma3@JJ"N;jzoޘx8]f19WV.{:>,IOf."$.\0:(urJK 0ť@MUٲ;ws+uhλH́ڦ:Zz؁L:bto&4dMvؤIĦyj5u<>89@Ja:Gh|y`{(5Xp9BUJ9Q!]g ڮYYϟ&=҇9E2),vrЊ'o]^vn]Z=/ݹ,B]Ꮿ̢RW*O?!XEx9yr=Nց&,ZB5Q4hm8_4-+ˆDp"^ɹAhGhpg=Po#1rv5@i0>)dmR=B׸ jOrIOҺTL8I)}hY敋 Xb TJe3L{}m4i.>?:.~uzsrD{ψQsh;8 (ݼX֌wAh_"KS4܀pެ,УJ. {zmE,<ʨB+9p3=M)xrFb#:`d S(^עic1HםAI^%խóGsܢ:؅9Ye:?hqXJ]h2kp9csLveBT&}reF 2OY T,=0t+ Cs/}xIざ&|E & R8t%.ve+^N ~%2mu52%%i2m*ql@cEj qtyH=hR{EOsL}JBo/W0 Ȗ*'G,.(S$Ym~E i!L|DMn4]Va2Quˣu\p;e;b|YNnZ5!=vhAͮ%o/>`|u&Aw8(^3p78gFɨu;Qی2>?5nXQȝs0137my2LL#K$G);1QPޏV{(jCnD߽r~xI}n Ъ%c|oɽfpؑJZJlmجPTPA0)Շ%GcB$SfIR)'VƱiIY5 k;YEܑ*"&!aoP~ -.H̟__\ yPYymD.O cYI-hoR5Hm3SdPe `ѕYsbhLԵV"isrZ{NCEkIN"kV*j!,ЈSv mMXu9u4'`.p{X]bx|׎m ا 4+Ќ?X8TA,& 􁥟6PaH-B $Hr6CpO=]FJfbc E)=ՍFwߓ*$5:Gp<L A+Ә U#jW uCD8%R^-(J+p&{:'q]`pUKIEA]0}/ 6/_"@"SļGqEЋq4QŮ :|C>]پ&Cy停GS [W`ȖEnӂ"kUʯ1^hzH$Y:iߝ4ܓp؞:÷OwK.m*D$1wI(r LTTbI%];c"H(dö{+?x& b  I>j 'z&} i2)F\-Ōm} D 뀃%ʇHhib,H$-dGJYaoYoլ-S@P,NWcDX1(RT汃RHVa/g~fD+@Eko hIhNLz[A99[DPbXX FHHdÓ3 xQF!Uٹ )8?P'83Mq.DV~` N*T땔#cH?7E휭%ku*h(hi ֫bd:Oo P:Iפ%ѥP(t|ɋ77nS\Q ӻ)#Kc MB~sun끷b&3jo=g%L_^L-apƳP/{n_c SN!#91p8Ek@}rrӧgPUW:>TnMB9teUDƍA[7i:zD(++[sMXo]6psM+UoA@1Lݫ#t$SAڝlݤ,3Cw?BW_SSs"I؞=B<_8 U(n9Mf0n=Vi C t~)J]m!6o$rq;P&%,+q G3 T-+ڈ j}N^e6 "Q /Zbӯk>PP,%8Nt[a H4Ux bF907wCҴbfca>{c[za̜+#T'/%*_!xAd=ucvv2\62k 1 q`V``hq`;)zU=g&`)rza$= ABRLʫ&QgO>iR_ dll]#LQ T2QP'h/X&"t]uz"V+sg!d/BDeT8tj?%XO57Ʌl@4'7w ҳH4aa_Dl8ЏHU\D@K:bWJ&eχKP[aΏP^7Yx+~`6ʔzDԹ,$M}~@w=W"H-?!8ːGFoReKK*"͌aEd4.8RD TV8};zu5ʿ\$w I*n !?xИؘ35m+JWtH1]I?E ݕR"JBF%0=?u*, KJd}f58 M}Nh/&|!lLe/:>"b椭XT(?( C?GAER!5 A8P.@Tp).#\\o1@vŀ6% $ڛ P/2 zCݰCyssGvy &|pR`Eavu0;{;o{?`3F_ű(ʴ"v(pӫ-#: :M3f(sgަ8Aţݣ;XQw16?+Mi\.YؑH`r01/uSSVO_.h"psD^eȇ#wTeVB.Wx䷪>Qy.ܥ%j#m)oN%翿zY/|^ؔ :gh[7F9v.gZ?~}NܮQE$^\j_ EE qO_vdh&o@5Hrazؼ6Ts'SxL*gƈ|q̯>q/#WL߾+]3{vHܼT q=g;UMթw.t.H)<66/4R2z!fsI[zC9."c׫zl~} _i9y=zt|[,ӊFmۑPsձ$ۡWbޚˇ깽n*`Iu!ᩯ5146޺ YMZF{ 8V%yPp=@ xߘ<ᅽ끷E/$X!ū^#K#>ݽ޲w89$Lh׍Dz/rv^ב o)xE!ޮ.sf`)b M-+2sʲ}nXUk$y\UĨ5\vK8V6a5D R,^q~RX{̓(WJP,<+ 1CUh9Uo$MU1b\~#芾]8Q\y{?SV};Ròy%`#cPTÓDrK96'[ɢwJ߱wQ}aF(Oڕ- 'BY84 zHfQّKadHLPK7[i+/-Kt_hL|7%lb5eJ#ݧGZIS;Zޞu=}⋗Gڻ 8KK>vhk@M;֘HJ6KQ!7zU=lh_1"V1EMsݡo:K w psrvMAWNJK+ 5Hb\:ϊ]^շwlVd8QG%F,k-o/a YR \)E6T9 wKE|Qhwa5KF *%g,)VGH"|~/`ܠaQ!/BVP_ߺRI^GC/we:OP^:vm-Н/+x*ZHWvS._EpI- /ٻ7Dcz{r4ƲݜEm0cJ@MޚYsK?}IR16~ڧ ׻7@=r^n΁I1;sOl'Oڝ;Eڼcw2^yH-"C)Apl;:Oyl=+C(e ;4F:蛉_"?I42p77vokjGxOK5~x2BxBaDO 1JpeX_Aѹ欑7i5+ZV #Wiְ*C(#OZ#吆D{w}U/ǒ4ҟ>8r3ݲbX!=Rq`4qMUWm Mk W%tOvM4y*ˇg|jyҥ&vurva=Y+q-&NUǣ5*}o[Qxg5P@{,pu.Eз|_4WKv?H$ ˗<>;ʻTZ+Gh8~[oE{L~#ng͉vHvcuiG~촋XMSz3pӋŵq*ETs푒[fsY˙S=Ib_=XD-8`(9uMc!r@ }8*(>e >4AiFFׅ:سe׷ zAUYr2X73 O=g]q}Ҝ~`BʢWl.=YRcr!LǷ]N<,Cq+P%]WɳŔ2*T{ *p@Cwy~A. j9ʐ8澦u^_}B3DST0L<')@B=. ޿kE>(|bob'~I/a!"SLߋIn_Pt(*!lFW'ø 3FL)܏[`x)a  f~,)Uuno,lv*vTZ|f;I9 =%Ʌ]U`딏<0 NA2O&͊X2P>Km~aR2cG_%E(~fn7csdZsY&ÿ5㐅uڐ AH*Cf8`zO".w9na!eY{@HUqݵc"?9??q|Gאʴ\`QtQ?JIiByn]FOu3q={1w/f?ʥ{@nuvFҧ0N ys۬+% ߧq~TB5AF zEv};#͞*,/^ρ6T2[cV:ۭPVM2~`D:Dǐ}%;Gna8> W#OR7/u'GpkM'qA/}hIa5Q$5?mCͲDj wAՏGhLֺP6g`6fЩb"s55eق5Ӊ)l!l1}Z֦EaȄ e ,=s=gч@*B%"Iy$%Ȑ.flAb>=%6`q\bq= @(R,"] '9mEyɢ%p#KmI2\&V~m]hTQbJ3}{S d- iiIU}:̷ng'd5ԜS#rDbg׆eo*DQ*΁[*9E6~Շ IM&zW (F or~ޙ)Te3 .PwҞ>΀lц\90sE* !ZKաcNfRĉ.@"* Z,)4u؆C ЃE%ʿV|d)E2Y)=aOfw9謪u@FF^_(cx*(N`jjOoMZ.M؍"lLm4;)_f(4Q>Hf<# bQ턤#O) Ɖ6}͖FodU93EF>cM<<1B#ƺ\u'VolR~v)^A|Ol9B1I3kv=olyi`w}t7R=s?c^s"R},gS {|nU/Ӓ}SPNzI3g5]Te$T.Wũ?Hu*%qҭyRR64[1/㥅3z%4*\U}ww7.FsC}s݃LG5 ,B@`ndvOoha#}w۪g\07b?fKX2CYo72dSщ4h:haDP\j(d0+V#qQ$H'Y xܴG##s_u;?՘Xc0P>p6>ny~Uѽ.=HaM ޝNmkf읷eE#/"J)>gwy 5i|"`U`كN^fNi}QjusdW'p|B_CyeYAowO.y[g3ѫYQB2#"a0o+Yo}vlZ?|D6θ aNXjI^s8 mBmO\Fn%Y yDy'ǫܻO!&3mzxx:&4>'~A nO 遶4|@hP\ dž}qWyh0k\*cID{BN]k9*{9ɨ&}:YbWv-pTa@j M5w|BtngڃNг^^w$Z!!{70 k;T_QңešqCql& i=q(Zc Oxy: D$]>y_HKG?lcJhsǪ7uσufL'!Ȇ@L 6c`B{/ZOy4dv0Wi_$}ԎmaaK$%֩KS]:95QII63oʻ1/^tx,F;kJQKu{uֻ7%2;ԯ Vu fw7o'.<<’n\&0+єSeXӿg&Iy1[:Ia5fȟR05p. w4 bߜl~7[n㻁a=4M}B3Go%u7!dHHjF1Iy04'i?&ɷ켔1i N9*WV\~~ݒ<纮.(ɩ,'WqtԡA p ̢Ȕ 8 U RX^#vC>!#-1/w663cA @􍍨oI-hcUü}nEB?n*L/W27)*%06{ dUS ǚrl:YGG#D{Vp\|}2L1[Z_3=pex+'i'πIaI WUD6Q7@a$b5Al79<$QQrRq6׫$,2eC;7Y3]!Mޭq`˭Rrd79ɮH~$Ui^pi5Ip~TV,'7;aYw8sFWhc.+;+RNN!+J!Cp>N{R2=sAk٫x< jp)[_x3C|wvZ[tԨ$pGstّ[km3.X5drξɗ dWC3un3?ȰȚ3eO*@i~\yW%eu^a|Bw7 D <3o|3o ً]|K(yAZ8yal'WXT@̞X슆\CMht`bd|9rpZ%s1J+Pކ&{%p*״ΏLv`85gg\ *ZoT (QPK)lFf8Ӫw!l wuiEބqE5a.)v+jrRJdNN'C G"E`>{6d{S>v l#P0= i} h[X;Π\Oעfcdփ>BggU6c/)W5zj,h61 X ['(`(.P+W0{3sh-sWK&nf%;!/n7Zxzηmˬ~i~0_z:'4/!Mb9ȃkkR8j}?;;> >5nJڼF]*d"8ʤ==oQVw}@%>vQ 5 aDأ-x%Z5>s'WPOg~#k*oG4cpB0Bif㯪>&d8Cs%.k;Κc"e=xc͈LZ7#"eC|fYWo5|iԁ0ւ1xR keenT89C87ϾG+Vk/Pv-uOHF^QITLF("Y-F5uEO((KLTH$$jelg53 HgДx&fx,ʬh$W1̞VvKSR~&ze8e%rFр6}>P-[]K̺y생80y>FgYnUHBAf\v0}Y(xΌۍDnaݜ c$T_Kh(ͷZMJjh/Z?߽Yh\E@Codo3>0ݛp-8u>7JĨ5r]V Jǚ+7d>9nrg'T2ŧcܟblgm;;eyk2Ew*q4|ۦR]٪N !Ur8BPS?vftBzA?TA_Ԋ`P?q#6\TofnHN&NKFO%ľ(ZYmӲx_F'q&3j˛sc߃?1^=C q/Rb ¾miQ٬WꦜO0esc+FxюG m\Z)[W(r39 #K_m#3}x4%TE@d4ͿhDpB Rf(̜#"\Hxo9^1{p\| 2&6f;~+'jrJ٘mؔL F"9g܌t9̔|۲Wd$Y Ѣ<>Dđ,H#(hj@Prߞ? xF|5'7ikCQ;`Œjx+lSZ:>2m˸w3!FRB#~6Gڰ0Ui5b`2pyuT୿c. w!^1QKi{P$ " Œ+t_14 뚅8F"ށ*0Nz n %;E5|g2ݮ-iDV { ?BXeXЄV*S,\1ܥ' [ݒ=Q@<3(-ǰޝwJ PIAB ǚPArɤ`]IBY.\y;嬱2 8\  ^;}`Yu~JuIQֳɆYp}o"LܯmccGq`4H6NQlNo(_o<+AN{, "55AeP:[Ɣq9௿RsO:=5g쮵eD I!Aݨ}-tyIBdhͱ8 Syxx#r?Ę%c,<*oHX .`1( s,:_T'l ճA=MQG|'7O.߷T^~0Rs*^3h0|O[iJ\m)X1VgYԵ"ƈdd ]/v, vCmn`8)"ӽ:W[(_Q~ ˻M#sp"G%](Xy<{̝%`KKm=Xbhux%v̷ff/<[^] |w ),Y2|=$73퍌k/o-!p_G-SYn)sr75=RhP-xn$.qaLtD^>iru=qNu,c{oJ޼>6"kxkl[9A7LjzQ ݛ46qhXуhr۴J me_Gr&9RbȚ\@ϭPP7ij^ʡ^i0s[WS.,ӺGp#P Hy(#5 }ix7bdHAEaEiť#T9%иByȷ5lRؔZA;zM!cPƾDݺƬ- :fTܟshw(t/ָRǼz>FDwq+;Y }`h)ֳ0[d. ҜyQԦr(a!x$a%ɍͩ;o/ 4` G-UpCy l Wuj~ka1C$JHs#{zr S=* :#A3BkXTg O4 Ǚ>q/qmňBJsgeiVwcR/[IoT Pt%U@Q/(o 12Rrؖ?C6f]%P~ ay`>i+=i t!+mB Rh ;`U e}aS(W0VB_fERϙ gr$=C!ʾB6ބ0,bZ}h%Dw jdDZ+4+w gxyc}"+OMح:9PIqE8XN99␅v7nO=OͥшāCW4>QǤqcu =ڋGƭ"׋rH=gnng[-yTղ:6yBݗ\wuSRV0\Q'f5}i%N[W׬C{i9u Ez0>l/}I~ rA@RL/+*pd\RqD-u*]Zs%h.V%Mc_3;\S( kϥOۡmT+cnRउ33 n jEg[3"qip-Pc!.(eN>I)̭hf( qx:}dt\r&,_A1)}~QkxA"0v\ T& 5G=ڟ 8?ɨ¬13Ԅ $Ϊ JlxAq,EU$Ii,< ۂʮOm+GR>k[(viGF5.1իMqʃeBYuLŜ,5WkYg-UOŧ U߁1eVZ@)zoe3lq-QK`mɆ6IuUk!r[[ݬA,&$b@B/.ov"ǽGSi 瓄}ߍcΦ;u{J5A|`Ult̷3"m(~ *K#:^؍ -pAJ:vwM:[Lϼ?(ZiU)?#V̇8FURH {ЮKFS&=DpzċU9.'Yf #sR3QR71ߕ6H䏫YSƮJ7S8Vn`mO5-p6PgjTumפw.8 ꖶ|}"yA֫`%/n,6hkHH/o]kXg^}5p(W"luMZ揩>LsEΒDjÞ1Y}#i-Q,j{(,nig ul+f(,Rs}bPS?NOJE("4s qlEv܉Yb_桓Ar]TOc\~L,ʏ\vʒ:0CÑ8P( ƒ{Gp`cˇ:,#iÌk҅j[~#KNaL㠿/cf>_qDYgԀc9|f1o3ֱ:BdFJlYǮmf mHb}1"2!fb"mc;u::|y~̙|7g1E8Iۄ;{]ȇej,.9F'M<r. <q,"$[;t3{(q,=T!;Q0xTP{紓 SHXTNVF>\\SsB hV22?10?>"gCB*oc.oT1xT#13 ]~gl܆12,ᨺ-D 7 ^HjJ~[Ar\\WȻ$7F>%Ipk8P@>GCkf=ˇLX)Ä.WJJKQ[닸v@Y 6[ioF*.T&Oxٙb5WGMBC"{QS݋7o_Gwi]ʴ)!.6ozcqE~4Y_jCR +(K{u"0x$3B81p8e[_;aseښR IhL[3l8,]nEV/ysa$ThЛؠ4Mb-PRR1_i-k>oCpa.-QZm0TSN&\gȔ!#R#oJ-J"o|Iͅ=~܀RR" PS_ōaG[3dZ9mTj;73!J $}eDg11J]"бog@nrg򆫬::bZ+hR^nE'r{y Quhooz |5s sO{B{CBL>> C0Ƚegs:b' )\"O$ݣq҈FΟl| .,̯Lb:Vq98L5CN)NyA${"wI4 a)E޷.V"^K xWAQ^^N"Ecz]@%I31TVJ7>"dZ4E {߿;jCwszBF555גDrn~px"Z3( ؇G: #w꣠kcm!KxŎ5'/6ii/՝2:} @b/N./ {PVZ YK0ΖLiD>5LP\Yu0$\~% IE%Фx_SY9G@Biph0&wXΚW;TZ0ݗ2!w}qLԭʶI'lxhC(=u%'byġ<">fspk !%e8rdjÇonPLֶ6Ť/bF?RKgKע`K&"7\|T㡡vm/{ݏ"҂yXş=;:R9$ MşةOqa&>0P^pHU(INLM =E 하 ;~|yaN8Ix.*|J/skM@َP7rIb"H { SWHim8k nE X"e B"H ޲_:)Xs+O(ϳWw32MXWLV0xl;4A?KCK#,]J{cD0uJDK-U$aI98 >Xv@ZÔ8Љ'7>*ߤzПӏ}W:Ny2o>pCh)Cphbt;}Ob.[lMΧ ^,R%\h Gr|eFlGFʇ&Dy8<V;m& S-F'L{~?={䨿pduoX(@aEx^o~. .:tX]Jh,J9|QHNB!W/Dw#]8{%mP-_iP $ c#l^|jcXC.q6H gc]ιMLّfa0Iy!3\({2uh!ȷ h%C”Zwkjw/֪> ÞP<5PqLlSB\Ģ h2 ,nT}{f}d v/#AC=wMȏ$`}睍EvGdZ?Nۗt.Z}о]B~zRÞ2{yb~H0d@[z]=F?DJnإ5,X<3P]DžOO=4A*|.ojU3EO/rNufĵO9.yuAVdz_)tF!\iuUjច/an j`qɔ'sV͹}XX*+;=n3bPC-;;IMmdPR區y;iZ6Ì˲T?QvMIN53)qW@Awa7T+q)9uo{*Ƴ&A9:YN8$ vj&*ljt($Ae~5|Jt(#vՒVC$1koP^˰i2@]! oBfbK)kl[U ߥ]酿t$Y&t )Y .^V^5I? ]qw(EWZ z%O'k R._QwWa`̚G9sG?~IJG٣o9)7!^uj;TgR*ڏosHˁ"~Qzn_yJ- UX/SeC+F8v]!=0H]i*p{fm[LFPi~:(BJ0{1+}ވ*Pv58 ғjX7Wc'qpiPAiX+cMƃgU 8aU3%km-.Fk9zql4u=*?C$^g6;>4rLKbŀ֏4#OHY;2^T|!$];M?}p.no;VO>gJ%zu㺲zg:")H\`zL0xp۪ O{W~7ܞ*K*6GQoצJ(jǖC?_}Y])+S%$ ]>ik3[|ߚܮ ͢& @-1v1G %qGWoǎ巚D垭/{t'Etճ DGӤvF't B-@5Lc"3~r)Y!{O8Ќ &&@-^r =74_@y+.b{K栞F zsz/*/l26ptNdv!Fw%$n" )a]y|ܟE OZ G׳w_ ^q !1p d,ϏCȑP5lp59EAO bbWmg w)Lnb޷QC9ڥ:6-QFtOQ=/& vEF֘v*2SQܥYF&N~3gӜٵ`TA6-s7VNxTqUп1k^d't Kط:#[V)>4?ͥ)iU`be^c<mΉSkx)i>Ill{cPNѦQ.K`z1y^1ahGAL }f_<6e H)(St~XrS8Vk  @U' Hثo b!n1\i:OẰ a1/, hӕU9y@@E ۝U,Ts{ @SfH >o.54yL[zSmj )g|(w}AVZ#SVf^ԀFrK?o1hOw"u* \Z})>V@d~:>oK}MhQVq-$0.k;Gmж{P[aC/L>tbvv^j^cɕ,&Ww7M-kϊ`z0e\jUvoj{KRܒų%{&'|X ph jcc\ 59t rWOE\FT Eɰ=G-VªFsX8) ,_c΃%?+!J@hZ'SbZE ~L_S \;9S#IW.GUU$!CT(?iolKJ*n; )KG鋜'%+ Td*sO~k l]~[^3k_c!h[[OEI$7`{? ޺,2Ӷ􅪓I*IF> G&n<[sP|^3P^u.UƦ/(DƗfwh T04e]dلSDEѥAW"kɶu.]%lK;"ӵ*2 \[%殔aFk^a" 8#=>-P\Tf13f(2D&Pv97iNvha_T Wсe"jMʭ/_D?M/y8+&ֹ8ZvAޖBd/gb n<1kќp0(!6w ]4MbMFG,YO i[fg. Q[ mp sFoX_.q+9۰[]O©gIHfC~Z2Z'qw?JY4$l\ھ%&v%tnbMsp5x~K+.!߷gx 0kРi럟^U_V1|.uJq(7MQ!\}!żB d)fl EzX_jM k'Ͷ֯E_5E{WNn5XyTG%WRW'tӂ'э[&I&7NT"[i הZHKJ/Mo G|n] CJ, $PVCCLq`M3RB-S^)+6|\FbK1N+=s _Ŧ9칵^q5 u,-O So8qWCߑSKEq8s8tw!9oEiЄ,--36aUI9O KߦX9؇DX "'f?꫻e .+N9s.X!`hD[ę= x}= Scw:b9~vоCʌ_EW4b]?  %}mR,T]0D͵46n"6\n5"$!8aPz1YK%bƏS]02i?Q3$ϤH7?*鱇Zz] +Kel:SFrsss^z$5\kDRyIf"\"k~YC)man k|QOITm<0 8n09㢔9bz3ʃX._k z2wܾqvYESJ'w=r'< ia͛%GC;ؐZ i3 aĹRov3ސ?z)˿ξZ ۂn!܊1:{]..Tfဩ;i_eK;d0w'\/Vy"doL|؆c"8v&MB\ F3P((|xbt%νS9/|I"'-K{9-dp[3s=MQ  u-5DɎxU,gҊStMw]Ai* |L*rШ0apƭw U&%B =Fwƍb"ON kj~6=!?Nq~&HW&9"l"8a##ZMH)9낾C1U!|o`$&!5, x[Ą-/?*b!kn@&G _HE?2E2o_*v Q-:ܞ=f㢀6 C L9vFVguBW[m֒9ĸ:xZU2]*'k>̶Sj/mbb"hur$}/ix5ut у'`@Pkj7 56

      d $dAJϹTwq76Da |ZWz'f8 y%ȷOr%Z$RE/<%?J0Q; ! {+UW1 Cle"+[Z=_On5ow2Z> 9~_+C??Wf:1}κڬjA۾}FK]sHvj(uڼ2дq) |M/ MY#bCg %>>aayܳAgDQx,r1Ef@^^ȑt *eks) /CaKjw gFJ{=D$LjoMbe`flHfcL' ݘ(K&,4QDZܝ;jq.;;;%''|H=el2=Rp^~52[hY"4uCQ 3$Ǭ6+/SM)/\}v'ey \~}Bz(ò>,6hJ\RZkkoЖ6uN&rř >wkNAnCS6Gd;\ψF<[__ HU%}33H1n Vp1\f(/#ڥG$/¾=$W(YqXEIE9X:28!:wO`nhc2AB"'@#nCK@~"gpo:T vg]$k`?򙙈F4$K޵u3դ>2#|RXQ&kz-:̣j#5k;'ldVT'p<y@|nz@pӞ+튩|Yhح}Ip+6}s.mkm[Qitw+BW+- aoU(3ak1X!;Cka# ;ig \D\~y@p[ prܫzoNU¸ҎZE_APgՕq@+0fk$t)`]} ہ~\E4LX/B~9pJ@x'#<:_VP*aX:.}50CjF" acp/Js@F*R{, k}u1ަ.aѹfʭv-=H/iĞ,܂9tkO'\ iBZ7~|W?QUB-珸\ϵ3#bI}0ATS6&wNm(z o7 E:8_i01rn`w")UV"GO7Y߇f #n1űfS 0 ~ԁw^)F#80RVt-xΨ7AAλrEҼ"A2@' }i=3OZvomAPT$8}"uo\`PUEjqqMFIP¸gyk%.sU?!<AAKu ` ?^2{$Y}7Q։dVt.ӥ,u;#Ô_ U*&{ :7˄8.,yvK|3!2nm˸Wrv߰ iw3.1oÙY>_# KAw,FGSf+WZ#alP dX#vj\GnKw3&d=R`JaMr.'f> lLuZ<9 E?KoJ`?QbתSIʢ2קܷ}р1IO|$n_OW w}AcYo dK%Jܾ4ʇvo*pNm0-HcOOr1dө 6n7N jw-qrUg@v#SB7x!ң}r닳:e;[!BXM.r@ko#ZlN%DFư^$&k%@%͙]Q(K?V*}PB/~(;5j^eג"Qdpzuq <)DFN|I*ǂf<37۪_ +?x̕QE7,y,8 ^ԺK ;HEui_bkm9lWCGeLyz,0P%PaBg { 5C2py Y 4g0o<lFzUK9WN. k|6\CxsTi jƟ1&d^_"iXopz/d)AiI~w*pf4֤J47>i󋬀#m"%WD-~(V3$*{XX⣿Y"6&i1]YFM[4M܆dqV ~V{n~Tǫ!?T6+SnVSnI,XurVXQ^^8?`~+an Z, :̕0];~ P8cv?ddl7*ȷL98jC4HNۡ)*sBN!ȋ[-t6l9 ag,wI$az<+1_w1y[ZOg r >SNY;DI00 ѐ5ğE"oOMWMp0qLaz(}[' B $Z[,EL^GۏJ*Wvmc̍?Hxq4i36/ {Tlqy$|_κ%sor׭ WˬF1e?E_ 59ޝ =x/ PzhU7pwHyAEv<ˆ g 4fjBt > 8?S+d Q4؀eΙEoX'zM?|Yf(pHxE<&xtB cl|JZM:ke2nJKp_8\cv:CexbÇA*D>*A_%o)g6a{'9*jOzL= `>V fʠWiyO%uz?ܪ~KE$8x Wy/-9VyrКr& X|$I]~,k}#Qeb1NI ]Kg٨[aTuf@6`*@9zGb@QI{Fzo,:ۻ47;-~ 0^Q}ł$ikU.(];܋EM~^r^ǁdm佺xCIc~jMs=Zxgy'k dKfjqB4+UgƳc/f]D~^NX=+n\]9=C)H;9㙵9wn[X/\Z^ѭjBs 6!wA 񏿤Nw,?M]\c]pvȡT}+: S8Rnoq]=N|WH_ύȰ; v~W(4__Jň]j;_'4Oyllddb>Ĺ @FPM[igB1{ܥ>#30w۲6SPS-1B'B80 x,Q9B$eXQ{&wׯ !G7!@|i?>.Uf˘IПsZS1}"oQf^"#ggDZ罆ޫA$CVV~߿!@}&/ijhkgFoG’iׄ!%OĚ*i z8l\)`c#BRV?e L={ۘbPR), Ki7X17jtK.0ԂUgF=Qp%5wr7 Sҷo9+9 `hIᐧ5 r;wGy3pMֿQcu:WG_I'YOQ>4Lo׸ͬc;9FЭKvz(;#!2O]8&ybKjk6=^eOh%!LȌ@a5AʚU$h-≛,@W[r|bz7pH4sYϝ2c/W$=6B³26["%/0pyR_-̎="K3h7VG7PkaL~rnvfUlv( ΄lW+A_j6K8 Y Wg]@n&UGs8/5\%xyM0]Xsޔ_a/2 UQ?L67UX 2խ3921QyR()d#^άj[ 9tҞHH<7h- BFU\L* sD$3^U-N+cs^*'nʲ4BC>@#<Gmc5gfvSf0pnxvֆ*9=9f Ճ``˝+ehA7h|)kS*qH"oݜ X"n?6pFU#tROUvqWGRxA]b8CexG\8.hK\؀fw_rjzn,V/NuϜ7xswfE`8 A5ľǖq+&*l&0m%NQ1O'Un."=oLn$1-S?6=%IhgWt`,Au*M?#_(2RZ|4%#jЭo҅-gzޯWcuc+e#e#몍Z#[\][g؋+2$B | 犹Z/ak2tWB#8ĚUW| r{">3AUE k(hZp`vĩLBx;N$xQeXPJF tTzy-CuC{sn.}|Xa&f,IJQY\,o~ 3%ns&Zc;<)꽊/Yϙ}7z9faF-˄)eQ\c` ]O|P}orJU*^X`V(Rp&|7AxHc;c_ Lȅ}9 A ' L*3婃Ʀ<~ʹD[ JEr`>}Iu 9 ;wB@-0f)/R2t8Z#R)jU;BS{8I<`Dm ?Ѝ /$n*I(o@;7B;lOth&/75 (@X7ҕg^l  A*?w-ijQ Em$ ư=&ny Xy 8gLHEfKY v$2v[fݏjy$3E3a`qpnL\SMc`~&fM7W't5>&4RF'ibG9S.\"gnK ͢\RyΡFFފ"XC?)(P6 cm^ y (y*c1Go>rX۞6dhpw%".*sž ?><>~؛ԫ,:UG(Ŧoe P:KOPDcmm_&5h~FF'f@7aϦJ(O6`~5tPI}'VrvC 9![st3GEsltjx)Neۋ xO⵽(=2<~lՌciH}!!!St:ȩ&dm\Dƒ64Մk6VK"T(ˆw_ #pd=64;9~~Tvo"34Ɇ匤/yyuckPTh:?m[ ^~2毫M{!W F+W41= ՘rODŗurȪNE.rmh)҉ܠ]BDp}#E-Oj}ekjzvB2f5?IUi^+x1BZ=?'\dOvM'rbt\o$1`Oޮy'ُt O)jh^VmLB֊ "/=ȕ%5<},d6$D/?k͵һRP4r#xuIv qB0d!92׉gO-K>Cc[挶P:vD>ZbE^ +OޣH|Q/)̞(3DT=N(bD59 [BsW/L]9LM77[QhM*>)r)=߸w|POD,p71b(&/ YF@aG8.G*hEO-oֲҮ.=DQ[~!ٷ!7hoD%!)0MM]mvz|"a&n^eK`=gJ!UNWE4m9v0>%+xPCeۑסN%p1$kb@RznMhZ̚B<¥=>m/ QOOȋ63w0]2%z ER"ĝ _BkQ4u]Рߍcr4 P&ހvps+wp9qďdڷ'ܿk cud\sk.f3`53q,^/ :"Lۋ&'d>7tK{Vv kN 5_Y&a7w5 AMzT0EfL8”> S #Hؽ 9?! _qNOڂh۰!Ԗ^rQRamVH'e@3HG0HGc3iZ&#N>;.Ds՝6qFhZlΆeeeI]LqÔsQվGb=7=:)TխD8zbuj_TEEb1q)0-eJ=b ǑJ=$^vӾ{Ùƽ31 ltw7!% c9$8ބ}W֌\0C݄c[Tz/>hFgޒGZvn/9]p`_j֔W}p/5T`&_cB:p's(Z.mmBTK4Е'w{i !7 mYBG:0p #bj[Za a$=x8:!='$85tb|>{eJr`+d#u$c.CDN/26Һ6 W!/jHK-\OjC#DT_ygspĽΦJU['McGa|! tuQIP*HxSo#"3Y<14KXxǮV_YrWO&9p*O 6n-`/_ ҒAstCYxQqO+WNk(wK$0foإ$CDXW!7ݱM/T:`k{0\oJb(d8[s?mJA5 Td&Z4f?[mYSq>KLtH(87T'|6^27p,0=!,|۾4qcVɉa_T*ǿ1M|ǹxvΌbnLJf{sNjh~|#  )}5++wGzzwXTm{Z4 )DE"~"l]vܰy(t_u##]M\%+DvdT[c(a#+jaa1ZXTDo8xД!O HՁ?11s̪,!JK!rg/W2.hGs_at!2M#-D7Wq@_vn|\^'s8?J(3}},i51eD@E1kgg`T?:4\Ԝ4簡ɆB_Evh+@ 4{_ZZѣG?t^J\L|4!g?l^WҨ2m64P/g q|;Ƽa(2~Jq?ͷS8~G܂;+$,lNr5<<̌X':K%Jم7fl&L lٙFOV>oP8f ĸyMR~!AGmHPfovz,XVGNU}A㋞1c(Ӈ 7WӨ *coФj]F={p_\k`ۼ1b+LLws|^=V;:ʵNd_r` d,L6R]hӄB`N*%]_Da֠ПT=(GTd#t:Bl׮h<a'[8f=aU/>q{ro]2@z;UDx>ܼɻsP9v2) r# yaM+:,Ƶ)95.3Y=HU*N07c5cB܂]zz\71 *P~x@b"XšAw Oɹ{PRYyfc ? yȬoa`5]_ϮnԏHP~y 5;r8J`S}~F}/u庀&ѝCŹvOnz*?t-zF<$M7 8)Fk(0%%U]ꊵ̨X}-/;SzOΙX[7'C'W7;DFFfPZZz3: @ϊ6OsÜGh>^JXB=KW -B~k9yoƍaKDjo~YXy_'')]O2dlK`(I5ԥ=~@E!K2ޫD;uSDƍ^һwIh(|mxAOPps{!yq"-ꬡeb66Is-jDg, o^O r KA0_~OD 22H''Գ?w{SrP[;1~B^ۈy㔌5%h-6@^Zx^W'wt޾"*_\ZUU9?1JK>wE36 ~1\6+~4d44d⍍x"-om $.G1vcxCeSu.7vғVg ,dߦ/:{ _92AxѠ5)}1QxZ2},!tPz T(8@/okd>>:w;'4ND@/H䑽%@)=ĎVΏϸ6`fPfګ() Gvx` B ,|l'4?RM'j?YF:3r'#ʬ3C {ȹтhƽvPתD{в-ZFEx?HB(7NJ8av)>4K{m.O&޷v& 4?\Vl5PyKc*=GOXWu:X y$MmX]p@G3 (n|C5щ:iXQE)ȶuR! f 0pc 倪gA gY$f,w 7p$^"x*@v]MnBaZ8gi_Ϳ$2ìE׼(lkv魒opo+ 90)RSe/̀Zͳ g)3=bm'Y{*c)X&G<=1~hrwTwc{Ó KzSv2ͫvgB9G= 17T*̹xY[D؝!>sH'zc~CrҾ鰯o`}#; t^zrcǫv=2m`=nI;GSr0MV،cuǺs-FG⯴Dy=¸nIֹ}MS'vӶ|I}#5l\+JWx .-z?]\\oRיYIS+w9~a 'C.+3 hAln70Za!Mo`5||j8JE(E b4u,"X-g"Ǔ$WMF}W'ǔ`fR"kxo!R#q?AqbԼ{C/gP9' :)vH٫i5Q,D9YB u=VimI.lydCPp9, l C!,L2=HԼnKrC0ݱ0/v'lRz11{oeD7}V>nH."8_(JrOSO*va% N?Uw h! xYx%4P̖\WgjUXv܊HH"ppNJFڅ{K&:bؾ}ּ.lGatyr].ŦH),dè,J8gGA0_Idث_N.I?)@T_-/*ndxGc?<@5]Խ#}D纉. QO:g LAVM"'C{>Cv2 ?Qt9G:Zf3ؖ^Kٛ*jOmbav ")ZɿCe?3|Sni!E;䌹V<#e:ŗ25FkB.6x1j:NLs^!ObFU1Wi7K<^չ\˸|4b9E Hْ8YZ;dQ.ʊrv ֖[u( Yq(OJ(}ǚ"[ )W!(wMJ\bg }mc_P!~W$ $?5C *ZHx4C(̧t`KCw1r2@}Ypoޟb,ЏݓX̯f0$wVC>*o,~qDoJϿ! ±OBN)ɹCZ[CM'bܫ0?#`9ŋϯ.(nN.[9ó> 1R?%Xi1EC%3\sFFѝU˿=ř dd ջjM.S|iG* GF3p)Ԟ~™Z䉛"5hHB#.W~i ]<d+\{ݹy< >;7էqjGk$.0riă*_?6?~˂sGK5OAkSkV_K{AX6Lm|vlM?~1qS RoPu]טؿ$ Befq`NZȭKjx䮡 UD ri [r3Vچ˅,O0 eC7DUѝlDt*Bz_+ACZ[{F*/ -ٮ*Mi!in/jÜ\arCJpY'֝l7Ӈfcksd~:de>18v¤޻.X'W*.$g<3f:ꉍrYoNܶ"3 KzSJY/n8J|@Z)o`5~)Ye)j"|r|8xlj~Fflۜ4 ? 6 M~6 sV\x+7F:c}܍vqE2Aɱ8C˘#P6JV;vsos)=d C 'fRM UYW? ljh< 5e ^H= INcƘņӤ֑Pt0tmozl l@gBb e ڀ6k%:2jsM{3Z{p i]S,b[XW"LL>ѭhqkC'Kk#["ԥCz㡸}1C˯>q}cf  @054] $P(yT{~nfdz;ﭢ8ebZO]Sf}xu2`ײW"c$ܟeX49bgOeS 9g+&Je/ĭ%m8ShPYVKƮM0\XdElR#t\jDʔϥZ<ӹv랸IuY%OD^zXsZ LuFU_=] Aq!˙@dGo WIwIK*#1Xkq)aiqcea<|kV!Ykv,ŎS$A)w7L$ ͊Je5\k[D]W &6OQVOv$mHH[y<2V37UP<5pBFƠGr 45rK`8W}eU~&4>^Gi6kjI,CGoWRv۔R J/ }Mr~ A*X5apZd̶6l MBECۀ."G3A Fz[s9iإ9T`Z+KF.až\.җ}7,}.x2z*z|qÚ*t (Q0'Pް<}h>2$©  5U_ qdpc}Jp6ݓ =Y ƒ{AA ߌ~^]oy_˗~SrjЄ@)h)uY-Y͑T/|=-H_lʏɦgB8<`~'Ԁ[9fDYlhdؙkD1i`W7!c{큏0"i忬ܥnVJcG1H⩙Rv#Z#c}W 4F{\JZE R_,շz>`bji"Z%JYV}]`^iJb%>"WΎn9cqk§FGCh nnn&YCiGDcGGպ$TK97:@hPr"ᷳDnrk ]vϜr'̜ͨ;zSM]6sUI3B>&=,;-  w nT."fDCg;-XŒu&qHu&IG`K׈ JϷ, [t I(ʜP^q\"ʮ.E禽~a\e.yV閼|^ nG*k|[ a>\sW fa [ .~,Ke͡rS@֎qclݒn +\Soh QjEu1*W8Rq'Gv1ct]k^=yxsQ:TܒSwd;o/D[xQHbcg)ojNY~W9PkÏ6@7n_:zo€X7Q,(9#[6\?9CH#ΖI[Pki(_Û]vV:)Am 9W1inFoeYi\@kjzc[*Q}#eo]K:9Tf'b`WT-0MMMHga"Ke%{@I-:3.ZU5 'YŐ"0DUyS0Y2t:_t$R.4OM067%SʶxRD#h4{yikWlCqd[sxR LGfc=Xt/n\CȾ~kÚpC:]tp!\]*sث& 5QI77$G>;_r|̺i' ~xN>Jބo4p ;pɖ=ܻ'{ }Nl&b۳һ R~o^Q{Z_sZ4Vu $Fw^jFW/>FGd*gM!X ̤{5k~js#;[=ڜ֏np~vj_Uڥ? )!0ԋ[߼WRbw~DWf_g6-L0gf[]H__ژr;ro8W*[%vDHFdcR \b_`{1>^"eQL(tyVZVZYEԤDTG$:2ebZi1o+ٵ'PziE[ZZ@ p4V"B#-~E>z^=m5؉~@gӣx{|y#H@:94B,LXk:OMb0FI1W G&&YþoXwyg\U<3 ]?M: }|# qfmK1%iLUzAmFR*@<}řV.{d@CO2}`J+l:GsMX$`[gŠϑ0>uWj6+oNH xGu _ `}PAfF3& 7Pٜ#R6_w)P:kMGkY{=aJ g$rWr*ʘ[ˠl 4zt{{J|*hkraUJSM݂w̡WOh:p'ǔ[1[ޯK*k"W쥥xh>]ӆMMJh8Ƚ 5ZZp\.Ű:h:#Q3r d(6Rnh. $ȝNp6ְO# VVfbRl#aXQD [A4Fӯ[&E>we1>ʖ]}:w Me>Rĵi F>/BcҤ57x< F=PZ18~հw9ۃ \Ś2Lܔ@k!iBRuL1Oqcdbsuy4 ݏ"[--HECJ$rIP"66AjoKk A,9"ͦ)>P4C kCraGrdEq{Fw\TT|?<㶈}@?؏b-ypq-HOSڼ Kyg#5彞w5vfwHHm vTH}NjбDXY),d^ =}Cɼ6qvAƉ1[86Wͪ/u7x庠=24e&),0.RW'zzq7u\]~=AUXϵ^JM)yrvYYrּA;C8'" nPNoZ&`|d0B^ Yu &ЀQr @Uo--8;so.afϓ^%~bx! :kut4;}ژ T#άoQKJ܌m"XyN6 $'n-# 'u||I,V&@:KX㈻f1HnaWK0޿( s+wGrw2}Z Oc>H5Fiyl  x+'%#%L|쌽pž# \A"j Y@7X˜.~a81+\R['?gnUe3tmt=ZPܝAxg,eWF 7 ӟ]GDZվe;q Q{["5]P|_eeR JgVt'ȃgMD-o%&rV󁬬,iz5$j nH bx(]@ cmܹ"Sumky5cwMpڝ @3A u] Ic$kuqirO]9uj8Jk4ֹi-G b},P#AIwqeòyT*{r>~ȼH*5o7h#z1vTSTGs{cT 0㯲5;;1>$EyHVi^jxAt \uAC>T)97J1k>!< L1#^+^?BҝNV;lWą;z o(Z,Fi!d3$4 8Bx(0takHڛsHaRYo%s`;SԪzJ TB1ia }o+~K}~Draj wsуd-qaqު7S5ܶVgҢ\:@9k ,剑0 F/#1xi{ZRc9[<GnQC,nbE9/]%9ޓ2q"VB/,H2>uuY!NGBկD0{MWL +13 `=4ىR>'BSZZޔaz@,ǟƿkڧ\ǒ-#SF:9$mh0 DI $BQՒ`r{oqb~s!9#PA |X 8B' 3*899VˉΡxJ>?p* >0S@˜;aco߲(xPn ($7rJ&bݶ8wHĒ%_d_\y,WG&"IGnhlNώmv3K+? 9 P IܗsjQ;[ú?@[8|^tw{~DNG?H&qdCÈRhŵ?6?c2gUC#r#t]+(H)>@WR懓7r "Oz}O{I:8557+  4N2-]|TnބAzJO_>{&Yg1A.du:]ud*EFHGA#&(5R₄?} MFvNp'i/Yj]rJ53F&M]쏬6|y҃9)v/UZ R@qQIHY"mukugѠ9T)L|h#ki/d1igƣGs<3lP~%yw >:Kf&[lFzZE0ş]E ,!-qJM)K+kTQ #(*jU7;hS 5tM=S)9˄l)ɮJKJWm + }y'cb]{pxqot!,%:55/T&~7.JƤ6djЄ2{ʏMԃbi [i~CrB%`?%t%="_vz9?fTY`Ǣ+;'A?->&TdB#AW壮*]VּY.8#%YUW lW \wû5 s'6J NaA34ȶT$:xYSCr? #<2̤QhDƃSD$BFDIENIe47"m|__2MG} arkHF,.O(Q {*; t \ҦܕAژwG { fJf+Ѵ e3|`_#3X)vg̳ŝ-2B= qYا@j]5J#%E#TPp{1!aΊ]-5RB+w.T`c4N,c !Bbi8v=7[&>C1c'EЩ,^|HFkJbi_ E3QsA ?~qsgc,ۗVcHɛ,p#p7mIuW#x(  ! o]7tгs,$c0c4-sNȟRUo}k(Juթ 77y0W!6{96w:t$CCub_c?\=/)f{tc &e_Y x'R+[yk+#fr}ݴɞ]g 4@EΣdB^G:Zdžf|)rV+M>+HlF¥2% Sp MJ!\ǁiPK-"b`iW hٻB-$WE1mXz%ŝkeltj*6Zפ2y@>D@i)m"^'${@xf,w+H/d{a1'kj lnf\Jb3b%3u8[ꐦMѐc1qd.zGŗ[ܩ"X9|rSUj7W8rjZCw0)!y74B#qAa' D(ںTQԚtTړ]wZ-C)PkKPIPEet8W<-eJ%<ګ[#+>gH ߻S0 QQc 3xk_1[b7!䙁s[D XCvPnǫ('Cmhxij$T7z#LŁЦh;B' 0ޔ=aJ~P"`Sc-^vf=1U)VwEi64ZXdܓ;`FXn'L5$WIn'bh##)M Y4 (\Fu]m'PK=16bJ67*nuvola/128x128/filesystems/folder_open.pngUT hZAPQux Ż;0fis !R!THBEI'!B'$9B#rH#Cʜsuzm^xҽv˪ {LFs:Np. Tsm2}Ɲwfɰ3bГGۣx pݷ݅/kI#l#@&QCat@} {#X׮li$.\ifܢBch5$+P$Poښk]~j%wy H ,|mG1+X->eQv>Xkq_=v`C|8N"/p_FljkOJkڐHA'P[+,D'%Mg0L˜[A[@)Ȯ#O P-j?jlLQ/= Hm?H5"0l&WQ9$t,^eڅB }?˳gr &7Xg05}:0 s݄AWnc9_xG0GeRչ`_I $b :#L~&y nљd t̑4-KW+oN Z݂JN):ݗ-A׻2dϝA(>lohcp:RLsTvqSXʈ;23Ӏ}퇪+dN}+ʲ/.FޏSֿJ*QY;A2C$^L<0v K9 pVZ 2®.S -#H{@'_+Lw}@v'M KHIL: 1Qum62Qow^_?en#5h}C%7jDjc%aLe igԼJGÿf-/G/~/}?=>*O:9 '͐6J:}zٳGYLraV\Zõ-Vc-:RG[u?k,HIN4:D<C6^ImIą 2 =>LҺ6WL(=̟֋wkqD,o5Ri 6*Uf@i3TzLCVimѿV,@T>2R~{IĩxQf`wcEuSKRjR47$vwȦ駱A!)Xl39ǜц]_q#W`z89] d*|wYc:B7ս+Ge^rc[:dR>Z b-]o{slCl>8dv[ ( >5).ޜy|쉏d_7 5,[uXR|Uo" 6]DNv"1-8 ݗT;{W燒$;r/nzּuFZuorS*%r2S5CDs=_-CE>E?u]~iQ6HqzB loU}Z_d W ЋR=}3FKe L~+Ce7- 4@RiC Ӊl)eWZ7)ZEyfa[ t7c76uTK+kb <)U?q~+^TQP5ZΆ)*[6]Bz u Y!E uw0]?gÖe# NmMO 2V ~*c=bd Gzu%$Ah$miZSc&&nA3)}޴E#Yb%}[eܬqVњHVuz(2>Qsx߱ec jxdԋ?z:ΞBҭkCtbܕ1%z^]l &gל23 4jJl߱c骖 qSRg^$'? yE'XǷc#( k.}j`o/jIBob^q.lZ| ziX}g󦤥bA0e߫| ;DJs[]%: oucUUpnT-”~PcGX zC P7"0RJ~[@M ]I9lB2a*F uۣZh_E{EKjdg|VޭG:-fa1KB"CEΕres>ѽʈ> [ lXNS {&ge_B{Q9ʑ!*_$-[''X7ze\ * ]T*!{rz9ēWC*?WJ`/6NKx'\PcFc9yNz#73/*=#PrI,p -vt%+P}طn_O; 6?~{S'gՈ$",G'CGi,|b; +H}>;mPа8#*NF L/cKE:2`5;Ia\9Am /YG@"`zrV0$Q}ro:زYgTw+h*)GD9ShCq9OxElI, XqVڛtu[M%K2Ƃ㦀^;8##A>';Ҍ޵kzeJ؄~OmL97 (Ѹ?b4(? J1idI_UWx478pmu'P%:6Ȋ9U &g%im+ǵOLl(QbPD6j UgX4f,7|U05M j~KO`6|jj^{ew>hA'W,M=ial 7>z7=ih ƅ wcJ#FϾԲ(zЩ/O|#瘖QTl{gٺktEӨ Oo}tv0x'=wUHTPAR)vnoZ° K{wf[' p̊R]#WI&iszI{V&5{OmȲGŬ/^SPyգMѨ%*CߔʼSLD ɗ˴7]e%āZz=M6h)w? g;fFnv Ouw26V2- OQB&~nt JfnNJ`Zr##(W/ؽivV1?!0S SD%?n}+owǝg8*]R{kxy-,j}amJ 'T12Yi&%07XYruTjߐRb14 \@Oܣ+ "d̪L],Qi3[Ǹ'틇 ei*ٻA;oomGOX1% uP0&ݽ&ϓ{MdIkV M $"ɚd&q#P& tR –cMzǻ %N{~IݓQ<9iw$`^ (ֺw5kܤ'¬fO,S) W},4 C‘7 q2[PK2s%W^tJynu~fu꾳liqϽL)Cze?Lw}Z~W}nw:4H ;?&TG:ai*HxQnj3lj'woT.nFPnnH}?3dzcbs}Scu3q.̌oҖC"[]=Hk=7 1S1]dyLjp#+uo*rv8;PwOh+*|=`cRv?h[m.9PrgPcR.Z˰N2Բ]bL rK;n6g5KC[9+I)]Ms5P_XLz@uy"rG ?t,HT%'2B2K)-޾&δhA N &'z+]湘q8t/Tx&Ȏw#^t?pQtE9`?G7( S i).ΙO4`OҸk#mH'C"94(_0O@(vK?IugJ7̮G8(|X>;DsyU#hO&<u/*c^BPNcP} œcɰ40cD]P=!YY/,/vR S$'+8:,sRu1u9F_:zxjݰ'oQT9*< A⼊Л ZX;7Dn#!?2 <~H!,0eZP ڳ 0 Whas~6v&/%BT_4tė@ޢF{Ey y5q.*ǝ3Quu!赭ַZc`103 Ғenr#"&Vokf{hV4L,z'{piWWn¸Դ񪤈fȕ ]q:7j6Lc62Wώ`Fx= iOD[nUbu;d ]H pŪb^.+ 9VdEݘzx,;qFŕ[fwPs߽cuǿSUAX2[= Rj/mnEʦͷh! i^3 i:H)zw9"_)?!&>W6J<[ &*^ns:gTbiCIF۰IYKPΜv; ..ÐEA@1X<qtk@O57ӣu]Q#+9fLQ"{i ((GRAO*槵w;,S/OR눻V<)^HVjr{ZqNi\U}l o&;39̂ߚc;8T0D9/b]Ry%Zwt=c @\Ѷ$G8|ܠ"|@nUÜ>˰wPw5.b.`i fBO[U-V7m3HK2JBP~] -_N#(Gg:SdbbITyLZj&&j2Db޸p}fvyfިۣfkFvY,8Bc?nhBZC$VQl˔+ T>NK˹)ع mtT~M K j+zx8wG_aԐpk.s RpX ua#1bVymII ql f}uetͅ[!HM[;[hŐ R}zؗ*l#Z+?Ϫ^;N1@P^J2j,=vϲBQ΂g߽ot" ꉊ]]fl$%ݲO4Zef1Rq 2{%䞊 ?mF#%oE8\-ryrPK|L6 }8~u14NZ-HT /{>u }+.+0T@ͪFf(&6,iCI0[VYUӚDҳp1 3 bd'njI^@$: g>U:~T2F"(+0מ'znm-^q@M;dPޡm_ˊSq+#Hp$Xy &z#0+9՗/Uc"[ " 9|r.FZf"9>‹zHskէS@VHxbva{up͇_il'M~Wwt6f+ 'LAwXeq//I4+ڔ|&дeH:3 ^BQŌ7Γ9w Hȳ"l۲ߨ92p OOљ#+,`/`I^lՕ-ټg(c|#9a)kxX HuR\Q-噭PI~mJ7W5I/C>)R۸.;@ܹ&snbYf)M>imUƑn"2n6OtM\k|wwѱ?_--d,*~O c%٦_\KR0RT:m*J_[?J}dӣC0/_~gPn#q^x˿;,KT,~?M`~2śhA̰ch:fUg5Q1oQ'((8}% 譈p 3T? FNkb:NZ5V"tG փso_ȴ_MtPi"폗܎j4{'f!51`̳j ȼNًk)A"yzzuҙ |Q{o68qZmŸlj鷕e'W~nb-69ӻB~ET8]W~DD3.wW^_V-ɬyNbO[sAW3x^O"dC#{3HfVDe-$m} ` psTj?JϾw59X#-qɿyP(6W rQ >ὡ@ё XtwO؋,EКL h/ 4 'WԸa{eM׫}1ߋeOJ[蘗vWĴC /oS97f gGP@;߂HH^Us IIWt^RG3@6|Ԣ\PS;SVCX`KD"٫CŒ& 퓹c d?ǯG7)E]q`Nzy,8YDqڭWJc槦4f!{$^6zFqpv5?1`_JqLE;l[PrEĤ#5 sK7vifs%:KzU=Pa`BQcI/-zG5pW=O05u^T5ALn7B\Wj'cv="24Vq̲<ˆ86\w.!'nxqF֬@uKyod+dO(=f aI[z5=|7Zx5$Svϕņ(a%ՌI@Sem76GJq_2.=&籎?_M[̲ţT#F" lK|tΌU%60+5ݨ7~dl!# =2M! $?7C >һ._z_[uqnJjj &}:\x. GOy_KJZE#P@ |'/dD1Wlu_WB@zE(r&mRXZC Me\>$W;~K5f7_|#s3WE.NtCn4L5yA"~I voF**r NB̐3nϞ2]8ܐlD%ΣQ&nH1FNibgJC:pǍa*s 2{uϚӾKI Q1Jy^;dWc¶bR[VY]Zp F}De FP3b;'v]gjl@ʷe8>X)P$7/, "|cp8 s^֤ߐΧ1 W`?9ʨrְxDGu3lH25ظ2F*[*wJ42Ŋo=5mmD.q\qV?5u_ P,+8D-ʙOeGW|JӋ'ca1|X55N.]ab[\I)2Crp_AI{/`RaPRp]BzAI'qM'4{FN/[Α!4!9-Bi[ )goÒIɕ! D J @3sdЫ YtT(ktE2bh$!VQ mb{ )C: D簺WHwg ʲrp;.i]#Em^4t&w&gj]RfyT(\,YO |vމԄ)dw"0,Wltrѕ3DQ%:166X9V1P$Sl4.^ dKEwN;s :Wl }ɻaҩ+?~_4Q!; Xirӌ$z8Y"O#(W{+63QWN:tV%.6s˶+ң-,Z>GS9(wjmt1YH,tMN1s7JV8y3t+\HJTĈ;.́ e/3.֣俐=*-K7 ˉJ[kR)\[Kr&&_aa)E*-Dʃ|6 DO%ZM9MO"`Fu򸱳D-Qoc5!~\ېshq2790 +Lwgeۦ>T0.+x4C-VF7W$o|r4V} άMS7 .,K>B]sWg"00{4P!񕧻[n}E{PZ&^lH=%57IʛV͋_J.-op$Wt2wAv'T08 \վxԂ|Ī@}fzX\p(;1! r Fnv'aTxkLS #cRdI[&wVc Ӆv@O^mM1`KUA<` |dR&QY2]Gos\BUuA@HY#ݗek.UNPK=1cIeJ,nuvola/128x128/filesystems/folder_orange.pngUT ZAPQux ewX0T (\8r Ҵrk#m\8s[%}2ܩiieifU.^89:|/H;|dxtP_ywp{dtOPG}M+xx߽uE̷̍ aCl6jɹT7 $h5~@ZS]!-+'7YF$iBB dGu$־#lAJ4P $\\J׊**ˣx#M$ew6f/ U틁lz̀hn+~s2YUx#ė9%jal2ŝ͗ r,Pđe\v V?r;c|V s7l}NQw۝p-pti]GХ&;%QL& ٴ %//!DdͪQ{ej[#M KjOc7s'N`@Zk(NUAn0d>+. Քzg#dkGAO.kyR>_Q5͔R@8 L0<|^HGN^dؔجFiZ񹖻a$ܺu+9!mi^٢kzO 8(D;a7ʊ- DLLG/^{"( ,u hwRsZBYM8sh ˮ?( _>:B"tNt$@'A {w+p)UA+Cn6.7uđ22#O>l~dIvo1oHgzMټ|tΉ:mBbo-yJƒ<8AޢY|p'GJI]&6BLij O D$> TQ#D.^:ym6yKg" >o-r_xYx80=cYqW^sl Qano# 0ugjH~[`eaQR:GqO+ü2rd4㒲dEH9q̈K:JmjBaϹFQ^dfZTV^;d΃%|ϛG!ֺw`;; cSbL-}ΡaI._j R33PQ\nEeX{cqNNNY_jnk{$|"W=_ y п"}&Z7R% \Rߔb7& Ǯ<[X_B~!h$81)icxb@5ICa"7i"~-Ѱڱ%[sBHoogHuAQ@x|2b(lTDMPPV*eaA\AQV@Yg<L\s<02`[{A{Ec4`%KdRTKIp(;/ T(ʘw^^!-Gm#!Es3Ct*(p9{$>J.G.m9}G ]⃝Я=}fWl3 p( ܼ$ $ ZmtjT+ı"y\>BzSXVB<[Vn+$!mP)[PX lM la.3 KY;PSHb/`>.XYnv`{g{"΋z2x^KlNJSXUGIH uE1#$Ý"#Y8ͺ_pHnj~bWNa]cQq(T1GG:oY#VϬ%)< /82%XkJzP+I'4%~U~P#NB읐K%k"52^C؞Di-V uDUtscA.BvYhGq>웆5yv!7Gm<';ĩ)51x(LwKulCJשR{D墽#Α}{߅gΝ-S%r;u?,4 Zӟ{ ;o833Xq%9 'cIO7,ɸ',]V](Lv0NSC159Wχ*D8d.[:x\6@iܭ 3@6%pJZ\}2\ZQ˙;/7&Ϟ/xy~{uU`i]"۳|/3n{=R|Oڻ[uUzJo(?_ttk?"Dd %7} }tƑgU.F~z5P[H\8 %;_W Qr9q>u2LJcOW8{Efc$rwYc*ߨ['erG,dSnep 6@'CfkpHnm V죺'k/_ۂE/ʳ֥^HbyEN}]J?JRdwA(ӯOs7 (PxiSN)f^ܼ芃ƫ?.*y/H%m~5Y!s!3|AZ/T~ zT:.XQp#ɳz/4̼>hljޓyݮ96b1/ .N]|59~R(Gٚ_ ?f"@Ϯ@ʅWIO7p5},nj(Os}ۋpk2.;+bpݼ8~s9L#&J OoT 9IpO%[U\ItIm}ݰZgjGkF£HIhTHTV$rdm('"^Ỳ=yv:] ʘ}%xB!<8-j30zf;\@wfChNtƁ%7#hWKI(o3-[?GN~޻lMZFt=]\Jʡҋ3Ć<5&-ݬ8c-f*%PhLC_426`sb|SH-TYV=D|ra%#1,#WrIYǓ$#&bX#:s2c}T6L׸"mb5~ˢ$"u 9F~F'Fug{}=~a=0QVqkX°=[[.ܯ]wcϩ *ToC\A2:Ο i*~'</pwϛOܠAy`4?}tKǦ`7]&Uo(]'sw,lb . =3䅟̵>MrF55u8ԗm7Qr'aԝU]70Lyf$Vjӛ~B(vz2>79+3WW읂}JW|ɉ07ɓG.,D,K-}Tɠ ig*tn^C˄4md =6r̓6y^,+@].qnU}>wujɹ<7Vd /ƪgbîNE2Kby.Ǐmb`і|VcFynՆ巼W:&1э*uVUkU*XN|ZH97bP8"(_wɱtE۩YcDi:I>A~?=v q*fCo+PLoNy#I)$ 89o'׶?Z4Db=Pxd6vW!>/a{}R6Xx9Qɤk渫`r;1,e IZRX%FE3}Pr[p'>8-ByRGG*qaKCϳHşr6+VT.w)}~RD$GB!4p };|ܪYj[߃B p G:n8Ho=Wf s4dO ;Cƙnݽz섭6y3rb@dFU\{WVU[=OpuZge s)Z~aJtG;˩{Y)[>;/צ鱛jҢ` }g3Tg(A3`8ke8u`L0:U82zY&-AGZ@2|ccz>0zwޘ?b\ROש䴨*Qfo [ժك o=.rȆ+p6>bЖӞ;7ͼ:R9$Lj^x3,:'7ߏ֠\wD3p۬ Vf ˲wX+H1cq.t.xq̻ـ1Sԅ IP\q@{%gN@K#v%r'#k+ ?2A"ʋPIOyP34oE%K KH/| M.iL1sO,n ϼmiSt%!ܽ׶`ͪb8{4 w.OK-ujmФ?C]:ߨe}H;7H1G_f+xb 0O ԐTyTP^mb 7 @ϞE÷OჇk;"jxtWݡ[l샌tuqzHgIkf #ҿ*Uz[m8 Ŏͬoԣ{gN*CSyz1yqͲFe苾)7t ռ}wa>qK詂=0r^TaUG̥|ZyACZSh3:bjwecyf"uH?kȋj$.|=aD Vo4WQ& nݾsW'&Cl55]A2Eݠ9غg g+gE@*@2(""[gX.fo ;WօθԃO8"Dx?1+?|w} 9C !?AG?8${k."DZ_&ԺĔc.ڭ ¦%*y-4prl)RѭHt_v4*&>zu^A->"JQܫ E>Y3FPkj`Uwcc[g&*oqDZz~Ɋ}r5QmQ8-TH!|$LR mX/)G^$ws<%gogELöbr?CvdJDY'$u:=_׈(#֌C8^snoZJ)ڬ\Z˳e5S9^ GY6N/ti@TQ9J`) ?'ى)u\ 4ɧSߕ=R/KVV=`r[S|R144~n2\ y&H#hU K\?}5O]4x[+iYzEϟF]{1t+؜Y7!R<ٸ)}ɍtaA?@tYekղpIZì+=9K9@K6!ٷ3_?b 7% |  Zl>ep= Qk&E u(R,&|"ϔ؃l<}R1y{Bע5E;0Y*DjU_Y=3z?JCKRC8 EGh,Z}Vye'Klf)̀NZsbZuE/|R1NҏN7q9Zh$h%(`RgSp?9Cˣmټ9"b> ˛Ol03Sl'Nw˶d?ZI,u}12Bp{y-9K峚\yH^} NN{8$˺Bg:"֣8_g;z.Bbki#Y dqڧCi(lXiXJ=N8M U?љ2ɏ 8>7l=ꂆ!ŞtSqRBQ=GH3Rw_.߆PQYyj#'eƙߴ<_ev%3φ'c hE<ڧ2:; ;7.\5r_Ba)蝋:I>ԋ1 k͸3DU2x򭇇HV3vNw:77Go+/eW #ͱvc^6w6q/RrWFc ~m6Zyv"P9JQf=r웏Wg kꘞ `4ѣ7[+g gS G 0`Xz~DpJ+ -6Vclc5#P\xKEޏvRbl,"@IOhP`,N tw~_Kפ ~0Gex޷2}8zMO2#kT@5؄ ,lXK,c$`F/A Yz2K6ϳi _+Dmb2,DAUyC0>aW-P0>)/#>! '݈4~Of~t|"#*\b'V٭1fll|$x|oNF'7QCYn!^XsT<}O>YzX<ާ_&m@Zy@e{CZF:ꡔqyD͵`F $3¦JHH*ơTw>}4 /*ςŪJd+6! (Bj_8Wqo. {4!?o•ܳ,2v3Y4_JˬEs +qK[mޒW8SzX'|޷w>B˓۳[o\8\d50] mж.U FN|s=}9PoGqꐖ@ײ=c.m f s\Cٯ>|–b$lN>gsoiMCs%} ni==s:aKDhCa}0fcCfR6Mw/?L4no?6lݓ]`+,2.NʯZpҒbe=I} ~dW~Jg%>Z]]if̢༁K}JOo(Wsm|܉&r4dzJn%$cWᎿ.mȰ>'%? o12tѬ(+1O<0J-Y65d]}"UF;gj1'UCZ0yKi7w) N"#CԊ.|;}I]RqQeۣ @D@k[o3·kmf8*hk8_'rTk`rټZȋ,x,Q}z]1<)9yÐ{j~a Êکϑx{"/Nn+ir6SzyEf]3S_>) #DI1ң\D-D}ցN :h}];APS!K?VT˚;v3U Eps€٪(Oo&9[mɆfFr:IV0. y\.z#jwF$N-YDWif {(dGf: @VI5 弆0W^A3(7|wa m+>Uf=z[6GZ-_<`d I%oiFA2Jʊ uGaW*QYUiOqƂzK?D? Sfi[0)/Kcg|;~ԝ 7!!nhc1CJ]Q/[ f1j7Hm}4 ]ԕَ_D?Mz]C{uT^q2yM}sTk feBQ ⸂VV, #^ |kbHGK?mi/A?(LΝxg`W\WcHKV6[m<[UvwPU\k\<{6.A =LMeEm0λ!wwݻjPQβEVsOOiJM; c^U.2+auoGVwVTd_>OX,%_ c~ȷ jk;޴?)4 6S 3>Q OMK9]>,Kv)\cb)<Ϋ[x U$7キ~LlDAeJCtWKl[Ќd͑8sj:ȼpv\~r+&p{5CcǼq>c;W) Jo;3q4}n9c<#( -4VrMr,+a]ՓpO#:emJt\:UH&֜F Ӎ3<%5d#ȾJ`ʤ0V05@6',1.-^85Ru3ӽп`TM+Ei¿E'QJ@Gm$ ~hݵa"NC#ݲYG&kޕ,\?>&MR!T*ѽlTNlȷ̳"W|k ,93!ڋK3o03%!jG{]IQj$ 7o4Wuf0$JV5;"yxf_B32P-Hhi₼}YsU 8K+Y1[/B/*g7yoX7MӠ\ӹ7bd쓻XėEp#AqW֏#eSaf@{k⎏"l&9\EDBR_FiLg`,?O=*k*Y>?-懴r&m;5K6g{\ =a`" !sד'N!X]/KX.n[寀 7{6Bȋ3C9#\G )ߌ֢E:~#A6J)"pz)>L >hWAn.i"4)dlbUs^(p,k#?CA'c z!:B?p5&Fu—k ЕO=N}RԚE U>6VIͯsD |g8d:fbe bcd^uUV L&}Ez/o?ɗ+FO[ɪ[Ơ[kDN۾4j70qT"N h̖%Hܟ/nm*4Ix]~?ȑIpjsޢm}(JQ)q5YҚmIAƎt=O2+#9i r1dD+_\QҋC p_pyOcCMSN^j˖f?Mrޚi(*f@l1u$MhW_-? !' kUѱ<T'd+~3uhz]cߙݜcԬ %dskg!4\xթ3*idwM5C.]|4=؊G^0x$"}4YAbxfy[˩(ĥ{@MU<gz؅څ̯5ΆǩA'Ƈv#:F1|7z-Tx$H78#pm:%5\iEرy*QL'.7c@qr~Q%$,xNYǮ[znTcWnkc !xڻm+1/ēz\VԌFEY7$^~uٛ Sb=dvv~ĜӬ69Ed,sC>֡)x4B.(Ag$ixcj|g4 & }ho/XWZ v/&ø'>?Ϻ8X1p j]Ns,zArmeSP/aɠK/.v>iHGHUx{%4(b֓%a(-Xvb0K3;'Ld.ʙG?T__@ۼP7ezI 43~W=Ӽ {*4wPKQo} g"G7'WԾ!d[GE!kg Q]5I[!ӌ+?b;{Hhgls߼R{9Ϲ4Ut2%2ÈEWL /Hdܷy S}{:wO$أw5[] ~hu &sm5B%ɗiQwIl9̈U@R|.ovd,?ucq|߰ln5b#=$)[ }8\@mޖ @}YWǑ$ӼzNwesnX+R2AS6D]DƾNm1;J/;jDt!D4P=@;:j0/6G[-9$+Of Qrpc2.e.=1;]ej9Cnn6FnJ~+D*)I8y+| I 0GB-9[2$VheJ$AB8?6'(FH@w}=x4 J|`A::'{<ۛSR_ p+( x@N{IAGa2b(m>8BH[ɯY \U,cBuO[@u!>! Sz)_ Yli׾C rXJv3Đ O 񍿍cetx9(G%KA8ʄI$& u$TDb'BߩS>Kg:tve`cr<@!HWFEc-cЊ\țĩîr1=s:U|G*#`?ӡ]iTij7 !kB@FGz9|a>nD}o"'DFEXɺO"+8DdO!!N"A:[GQ ED[M4 7t6d ,;=#sPzMoqhl8$+V^?4{oF{ ~bC$$e)͎~m=.m- |?I"DSG͢2%bZ@B/ ^!{R\Y@?yoB>:Ϛ!U1rQ;į˨n:NgJz 6dѨܿCH$Z8-4+Q"sgC6, $ScGX I&k遥يJ%)ڻIcl3Z٫d-ks (p7ǐЭ|y ?XC=bE3~NG9>zAvEzhآwMr@\j4v4!X+y>u-m}udItB6-D[`)QODvd~J!D6'}x˛.iݮkf',/p< ?Եc+Riǧԛ7]+?i]5wn9 8ȐE~' %]d*]pl~Q ق|V Ǧ9n":a:OnDuxo)?îDNIsho6w$kl{CtU0zfnF'3moNmva3J誚wAlJ-EPqFbkWjh6,çaa4k$\w"ms Ģ#Ǵ͡d(N|yzk6xag{=bz#uYTȠjRZFEJ닷7zDZ'2\li|'8!UNVo e4gaܖoQ`S+)Nki@oO⿷ц%,{s$-mf JKR0YsII8h![.N2)l.雰vow:1NJnv\=RP =Є+QP%!G+4uOPƿ}%ۮ@6`sDC9BIȠf;FQwKl0㠗 nBaJo jD*:sPy?] 7d3dU&&\e8c#? $a0ͪnC ?q -}L|{z5=w4 5J E)Ы]nȌd 1n԰8pjaeS3X-+"WcugDTB5]!wFWpϑn)|~  bޘddi{㔩yF9A#>s'y#US\_jkOO-PJS ;Id/`b qUt~#1vJKN1tJ='LY>2ütvzd&`Kp\"?ml$ғAՄL` l$ɍ5R!|2/gƒv Dv7euJBU >jF\E`nns %(}&s^]Y8y6;󹈎rH|5z\&$T{w6|`o )E>kb:ɫcIYhvzȉ^ΡHad'lZ $>F/vztRG z>hF;Y{,7&B/fe#iY^c߁S|G鷀?c>ȵXOc-Hi:.&py[r/]`eO(, /NK6OFy~X[jH@hԕIƋ^uy£rEdjK9 0n|?45\/?*w:f+ 6>k 2xGIqI'00{ |0ޓDqn+i,>Xx*M-$4()o{fKq3+cl ﵷmBH;ݏ^y4.Z}`#_Fv1SrO,!Z(He "J9L{ l4}c9I(|-ΓNorοoW,P C¦B 9.:"f y{BqG:dLj_PX}U]wRrl_~w7W@б^dtBN>mx)j ;SjCf$SWVHJ/-/2& Ǎ%*ѿ-lC^Qų#pJh߸$ &%@C)V}lX6`#f,I,E3>tV-d@zҽ%.~8盂y}p-UZk51Z]7AZ:m55"/="&pE΁_qj֖͂c::sm5p %b"kz O (}{E~5lh)|WI2r0u~?bqpq$Sm KpҨ VVg~b+j:vE%ٽ0U:a7?k~Y{PM[b=;ml mDTZE~&Zdz8dH D()hQ_k؝ג{_)I1$oGO]W# жT bچ4 &6$CMpTAr !CL@.SFz*oQ6Ǥ{f2]K*' 4kKP) M.1$?PKܘ=1h21|31nuvola/128x128/filesystems/folder_orange_open.pngUT ZAPQux {{i\֩J1CĖP~ ੗V"RWI^`QCAS9ygX}mlwhͦj%}b`Ŧp^JU\C Ҹ y 3D^ˬe^Q͗6-T|.ͣBᾩ.[ۻ.jCآ\?Z'{o;ؾ=VakuX|M[{;[t߭WQ1H:[f#!⡒-=k9o]vwxC+/c7#N}qWHؤ*cnQBv`?N1x燝xTU[ɰ0w͏޸!޴3=UKP |8O/wByY%${uR'js'ܽTPm4k㋞\7N/s[͌q$7Қ8:fiu㑿n}YU }2Bl~~PmH \6gZ% om5o8й^-`%Va̭QwSF.'-F~!rnvQo;_EB*6: x 6}7%Äqcm/Ɏu@ͧzl z ~ S?Fu:mv:lL%$~=Xm^ O^a)gz6`^| y%z{f)功\IMK,Qr v_{^4VZ^(ѺORGd!uAާ(?-k|㛳oWF+ `sc3ǻ^ꮜ->\S!`gN伆Dom/ܑGfSyaT2:pzf2 o!v $ `^6ĐgT𙏁#ZvNW\!~iV-x>C.ݡIQ<{CI83&)xuWsfpIg S}8@o77w6UMI _.NcxAet7v6!-Н* "~`M)h{ALdp/II!PU~'ckyݾ::I~ _fLcauuG=]x`7ۓ B=H xJY;fw3֕e.#9_ ιX z# pRE#"kN/`p쓄,]+Sjd L 4;u[Ne [zXmbGxa [, kXbegl>f NQƀrŮ`{[J l u BP܊=io.'WOxl|W=6_ds:W%1rTjpPh. !-77Qs:es͵rv)/"6.٦}ۄ49 M9c=ݘa v@X/1Kk1Ejb(~*X0> .a;,דB\tW@,yK>qi( EږY!|O. 24ae@eϯn1+G di}eJyDjm5[bvΆHd4LueS\ݘ(oGw&IclOJFϙql:[} eG5}$CZ5\)nk=Ѱ2`N[t['?=Ӹ ͱ>w,1wh"d;4X@ ݱdbTr@nkc_퀊\r`i (TgO EɆ8Q1nn2|z]{T1jU]1\pV4E< ;P_]QUD\^"S83h}29,Ȍ*/k}VM2dZsVNC_vjx+7w~ƖKiyrhuwuHwD]1dwdY./H!Rĸm1auGei_v"ED;?EGIߧRnGsa۰Z8/VGa#mֶ]R}r+wk_y yX6AA`u6R7wnT=.?I LB`I`YB"JW1q|,'qfϭmIcm'D>?Z셂 u7ɂ_(TQRn ԝ (M <*,޻PJjɣ[ ̰7`#SQCH)BM(φ$*UƌbHK7!D$:F[T2P׸׽_1Mk|.+k}Fuv%Ho:P&!5y3ya?*5r #{ي=4umu@\lYU՜I뫪Yr:CuȥqCDl s9̥1rR7*]{H^㯃"OqexF$FHQ22Ye~rL}XW-:R oሲDŽNG(,V:pSbuo@l@4X,N_ \lR?:A߸|eu6;iL4#(mc/ nuz~9aQOKP}V@~r+4i{Sul!4OPX7lAe849>?r䷕Go1" ؎ ܝsˀymcC'UC&]v!+; fMoʏMiʑXl˻[`4 Ŭ(j/qyרKZ9%c# m"+{!rdF5|._eׁ?iQ{h ?MZ{;*V39[v2TPxj7.ЈK$M*`d щVϛ\9y' ^vQRhQo|2MNDxWLL{-57M@>^?Uy<.æ7Jq~T GY epׅ1 #uiޙ+V͏yw(n(40\QM5bhr8X>^Fؘ)V|TQ]aM50Wx3!.b9̰rvS 6 5 ",k+uV"YbN;~3yVqĬNzSuS&wأ3Լ+Խ0li?}Ye@Dfm.6*L 6wBxi8{"&|-t wrC- =ƌpG:ϯưWV+L YbYmkܪ^}8hYS \Ink51ץ8ZS鲾b?^D״R$B()i?GeK#uvlpFLpDlQo/ rJ[ wae/Pu#++VLz- {i #g M`hl>hh">=H{Ź񲂺.&ͶI dI<x&s➡ՙ]HWoҪ5;/%P@Zw%]7}9d }8h@ b'~V23xʇʡ~K(FOUAGLwz_h."˶K>dba!I!/uY(sz6Tyfi75,r\[I#>iԻ Yi!rk-?o?ެoWeqoe*fɈ4O☈t9-|7T;3$9" Ff2FfM}̌RQ6;]B)w5u1g }~[[ g~ʶ?)RyC{PU ]b< E2aIH4^NǦRX5`%\S6ހܠ|PTEp .nuUU8 -aR:,}*D)A)WfG3vY7#1YaYL otCڬ.&ƌtԜc^QO_7|˰^Lp}̱β2^i_8^8{1e ?QwsQuE}44Hh*,\XNZx` IsYN>U]@ nQOAKz/KL7aR9PFJMNޫV*(uM- 'th'ATb}յ`UΛP;mauX.B5 RPmuP~ANle$iZ_%ֲP )NHC3UJ,}&ZPsdKG站,`&{Px?Pehim\-GFC<KC‚ŋueac['[- `pʡ@1(ʝ&B{tf&EWґw|j'/:VزGƨܤ[զj;=3fpW 5,&V w;V|ђ"ʲ,q,$tB NyUf&5sٍQRG$ǍTݩwbݠxe垆q'gv$EB{*x 7iCyyB}/R9B\Fߖp,`Cr!;8Q.FQBbmŤ˼̳}Eδ~Hǧ3aӝOߔ-f2ڷi <7$:No~GKE[io@?LEڰ`_Fl>6hnqM" M^hڪU1nٴ^${z~U9㮝?]= ^ Z^,.wqO0;{Gya(ݻ}{>㼴uȬSUK\:AgdS:4NO.⎭Rdso|?X +ehۊ6oߍ@+fӽEm_Jy,LY..ˋ#w s4my`h+$Fz$8V4&w^FJ?m-ԠFK-kLr84kU(yXRD_oM@-M-,++7h/zXoGMxK9Pжb~8w.$&tX ~X"/ H7aZP ,)KNN_]nDhcm+¬ݟ,LMеB^yTzsWʺbVŒ>BlPDE}.rtEw ?ISg.QJR&noTZ,ռ=Nlw6O>xCGQ1'Mr>> ho=Ǟ~~\12hs}cI%*ZZ>[,#^|d<4by܋/T4J踯fh?OZi밫$Aw]{{(GI;^ԢMƞ9Lۧ/EaoAv&A7zu!N£D@0lT͟R ,jĭ4KIb3_nsv+a@ѕΖ/ 3i$0ަ_+Μ>b_uHV ~S8JBUQ~T1Xa_|JJFٓG6qa2;( E"h /]LI"sd/ j:ebN;;A5K4^}-8`.H/2X{o*#p0fN:ײy>óP8Qp(_76v i(g2fƚ|M#xZkAV|>>@HG5yDЂѓd CT!3U&ѥ8į )U.t SOxqȉ)0R+ˋ$& c 7geXc UJZH񰭃)ۘ>\B KD 2XƪP2v7n5l@ؓ$n@o@1_$qһ0Mk#`ڧ,?!z(NZArxAU*J40=[9nW,BE'5 ʨ5{щMVU-w뤗Ѕ7C4q@wF&'lP][|NNG߲՛XBocc ^RQL7?G;+>՛{  ]兰ؗ\]ݒT 7hEn_Z]nt80Hת$~UZE!A& c 6EOLq}o~<9} 6 imy!";d@cO3lJ+Ʈ5=xGEXG;Jh[;j s{r}e؆)#Uh%ĨRml+QXz2Zvf`nAY9n|*.'ȼ/wtj;롌~)([-YW"RD5{P TRJvDZ#, &(jG6_;A":Sey^^44C#>`<7=AKK N9ŁNcȩ%LumIN T KqB'2/"1;-9jyMYN76!l-{vT{ւ\ ~癮eO}$]_ڞ!=i-07hD,4k}[odߚ_"m}8˜V+ʡ`SR5IM!j{ jx8\COA6ڐ@13wi Q~ӱ{D4]p#4N?y!z4eyS~ 6,ebu,K1`nYVx/1 7K2aŎUs2sX#EN^BfT@Eiƅ SvDg>SGx(f⵻ AAT1 W&A6Kiݛ2R_eugaY|5 j ȸh[cn/)a/~~W +qKo~Gqc2B:ԭ.;?/&ZI5yb?7Q]/,j~ ҲVbU?̿dq[c7XϤyVS֦Mlp>Jk&-<WQ .ޑcBGozu0tRG 9a $hh~h X-/ 0#+?}Zl]B>W 38k 4k:{⌖ϿUa־g575p,3EZii `莁qATg{͑L@s{rv<+ [kߛI_AX,uqe.u#tX`TOD @w+ JOXc]c||%6$?H;ʲ/F @1PVp8/-xCXc]r)4em ʛsج}/15PdY.Pd iNlb[/;UZ~1a0)>Hk3cSyQ@#w1nn;b^PtHՏJJqo][?݇D֮C'ގ=;F5l"ʑ= Q `o2𬻻`/z%HWe`34AI V!"-+=0@ڗ/^J0yl9?XB WWPIN7`TRVLcÇu`\zm]Sc G7%BK)#_+ѯU?,[Ғq~?:U't(qnpATAIfoO s]wMsJg Rbb7YSDZ yn}tܪڬ%ua R=gZ>_r ahx Nu_UU5 +==0 h \aoy^ ;bE)u^gy8&Cy۱m܅`M/K*f]əٟ ]0Og%q}}}>DXiHгߗ'CD9Vd*ȃψxvp-nfrgzRIII90 _NS5"@$%e ڂ2)Qܚr@[6b[cquA|mWUif5؎^gMdsނwO@odtc-z+.?އ*hcdaZk\QEews"\ օ98_?'k';o#j=@bbڊ׃UXGB((yqikKuH*&X%BQWDijN ‹A*gWu:;36> c. SJ˫^ TC^ORdffԠ[%|2TyIȁȳgn.^\H䒵0ZFVxF9ƯLx9JpyrAI^_sP_S$_gCK.» B xAy2Y^9>@_THF?^e%e]Fst)/uu):z]V%QZNA6GgNwab\P"`2O/Qd=apdi-mD!yX>=n%j;+c˄_aP3iT7"o پ+:ۂӮ:)A|X))_jz&!>k'i! U>*1(xxf#q &ahsɈ2LC"clb(?ۺ1 c9NT*`6ߏ/O wJr8`-SB[~Cǝ0)XC&:o Ӊ;S:K uC0bW9QQPN8 81ߟ!g-F:Ffz0Pod 7$g^]NBu!ʍr9H&C3P;?P?~v~Av :nLT"+E@E۷ZgT9`m$6S"=ߑԧoHg=賬՞8 w}iڜ,מL;dzx Q^֓|wt )j::Tg{m:Q,,xƢ~YJ̜Vaù A-٨n=ݤ;| /ы쟫dp{m^46s)NVV?x~ ~?G$:UĬo~iɿxUxru9BAVOIkOQ~+y'v?»> mYߑ V%r 5XKJNj+}UVchl4;[M^RSTx\-_hNii3a{55&f,0;Y6:1}p|48&I[ǵi=5Jw-;u,:L}ڣko/DeZ;%`;$}upUkL0Kdۺb];HJԺ>8 |WK[_OO:/,br7p=u:1yMOQ\w[v|̖Ng?:rڥ#=҃Gso[*},}sid$&gvv:'TbIQa*:#B }+ީmjĄݦgĢWZcL@.gz e>u箖bŋSm_ " Cg-=Dɖ[# "$1[Vܫ`?0Թ )K[8AdY? /eF:&V*7s0%1~ۋ:Bw_ g? wt3"V7>v5 )Gq%&UH!>.IhJjTToU}a5:WfEsҗfJoʕ @w\;Þ͟sj2$4D+d[.e6Mem-/uqY6#=6"]/Ԡy|j[Z&_Kaa۟@c8}ɞ8̲s ? BAX$#.H@]:>H Ӯ46pŃƩ}Y 40BKc2>k*7Ef0^̷taqj[!w!YM?=Oy 5]kT,;1KoNmTe3 >w?J/hUiq8`Mvٙ1],Eҗ.?P|$G];G~r[W}GFެ}J6.ϗV'`im~JuK=q@rG(utDRtYr׉kG2~y>YŽ|W{gğV2{;j4{B" R19g&*n#" 't=1rMJ=OCm2 %ω5Um>Uk0R ?ʄνlMpVtAt7(#r,z̯z;aW= Jm_/<%)J/jֿ 3۾Z]:2xÿ#u;B`\=y@s )0~qi)$u4]f%j GNgyӆh{ HR:)?N?}pˑweFiP@f 3cvhnmY0vh }L#1]{Yw~|򓕓W `tRm3n|AE7W{ͻ5p~ia^8!EޣwAG;m(dぴ[iP7tUI7r]4J G2z7ck'ZKꓲf͗~@7sFDLg m-"y[WA> [xdkvn%<{amoE"JzŰŕOÍ.u ESlȀ&][zLPʼv/-GXVrߜe18sxN,ŘƜ_!=ұz%@͹F.jP_6.F`}_Dl , :bpʕqE"#Ul? oy^V8>!dUjnߧm\>˷k"spt$G8J4z_39b(C!gو9[e֔SFCU@0:QrsMzCƋo)H8e6#iEДfxj/60qlw./OD *^89(4j1eUHb]~~7ʌ6mfAPƤ~i;21-LFFƳ,QkHʬox__ 3v*דq1S 3*>kf6ךcf4jvy+Cm}zj%U3Vzȥ)ҡ\Y$h}1߭ olqQluuAw 71eIˍIm5f9y~ Ԅ=nZٽūS:k/YiX]5o\we,o92w6&zc$``͸JOXA* gdOgܴnsS2#_ D+iޕ=:l$hF8Jb~% Wm ɤhA?Rf8b &J)~sB8-CP9*^cYiA.bH2= fqJ~]X:c"}Rʅy'c7_#Y)tP ^>ߧd+U2窅(Kh)yp9Ax03&+4'.fY]8E佶Hz AI*{. [^XzGk/NarL_ \R}Ȳ} zhTY3hu~(.aJ\sEW͜{ohRzD\y [4pq>eΜ v'V:A 2_*?H37{ R@8!mݩ} T6 e{mx}m (ކ3FohHv;ojj쁟'>{<Gz%;WWy'OiYQنG{͙lL!y _/+)Sַ8f9PfpAԓownȬDNSWyEC7\& LUm4=A9>: 4b_W>0qEsFɬ!̀;G޶ *:/u#+&L 7BʱXEnNR F޴@+zib9'\A˹J`}c'|/UF.yG(x/I2u΄Ff뀺GO+D(wj "W&h9 zrQn&+PwPK32ui"JP}8}֍H3fق8X3;wln(^x"EÈ:6ڝy4ﹶXbսMx8}-]̄I.ET6s8-ä'yg!WUcH;'+)*$;]J,JHXd805N@ $xyVP>G"+D2'ʹAt!!1odC"H^I|zA-xErF)g|o٥0qN V )`TLľ ؕ (Dޘ iUG@L!2F 3Sğ@!:&gPn(D&+XIyW^K\^*s~Dz84K3K(xYS%~gᑚpaVF1ZWukdnLJٱ￳f+ Ѥ+A]B%UKsK<yi/#݃ɭ$ŕixy%J+Myi>9_ݧ /+.{#Mnp>ڇ8u* eX@\[RvL :_4in<}I;oB)~Nwi TsK#+۩j)(` O$38^[=P}<xQh1|c9MMBa* ae"#/wۧa!Pbt8T=C]PenV&>%_<:x{%[1]h{8虔ѝǺl4&j+߻%'=n QRd|rEY^  .(tWw'Pk+ۥk_ǁOϑ\$F,~䰒+?[~H= \Xl8Z:Jّ[P( 9U^fٗ'dv2wA) {...}c|&xb''e~$L4j\$t6[ c+$"wryt}9 iM*\25&I]51ҋWNѵj-ѿUš{jC_;+*G2-ˣ 5)!ƓؙNܮuE7{\ uu_޹B s|P&[T4?8rPi/}ß?!w>^<k+乀+0iRJ>p7VSqHGvc"X_2xj>2iB ߑrY_s^}_]?ϫ뇨f^Un~\R o; 'jbc-EVC,[l2?eT / N+!GfRN WS 84>n@in&f G순4^N m1cGiFPڽ7"Qj 0芽_gE]/b[8ƾ nq Z.I}M|ϝ/B)ra%n&;'3qﶔkaA7_\7;uCHOƢ\'XιZP NѶ=U<#I6ٯ1%p=B`(y.C~v提MkILbJ~xzgqŋnE@9-k4 ~U2R*]4:e >du"z#sL6B~Yy@q2_j_ F^DtFVԯvp.6G2>UOb"IIU0YJ5%`meq3{;'J҄=t.ZFو3"mTaY ud!ښ[{b7 )-J[}\.;n~5ĉ_$|0,I^.J8E 0@>^07.4J'ɠ\Mꥉnq`g;Z$ y"xf苪I3~YuyoEKZ is|&:FLԛSFQpp#)~{jKj;)[A.C$Nel(wTװyx d ,M1NxnTpV2%?Zw<."N/\?Y|"}OLֲxYG͋oL%ۣ Ϊ]¦vRa !?5NV:(nX(W >OW2顟ßK]|Xw>}߱he:xO&֊I'4flޫ>fS`T}%39Ei H^?iY: !\p3~ȥ@ dM- l᲏C?0Ҳ≏n/!=a !_0z >qL͞:]Dl!_eMhj`2rvT YH'!64/K&xʿ?WrRfp#MRv\JʂJɡZXD:ܣ49kaI ݴܗyyZ폃D۝vH+u~zFG`9U6:Fܩj0k Nri PG+[͉p*a1! Eҷ kQ_pNu8Gxx&<;G_1cXI,zK?MiYۂʼnx{{v2'zWV6c`cf~]Xk-!Wap**vwo jt\B 0BJohcYcC|[_eTXm;7ʭ8 ~1g]o--I\g,(-4IR\Vh)mQ4#  ~ie'ߴݑ%MSyjs.MypPm(hx AS}.\"'jR͞y->y7i@a<;e,7'dU"_oFϺ<,J96WcI@]|KpË(Š ixƋp%rT]D8oΜL Us*{J@#BՁk.ISԵ9<ҲR!K%RR4ξ>=zy }G)cO2Z#Ĺ~aZpq4foi'&aK3ey %e5H4l^~-;s-==JF:w&Km=VIౚ 5ghDR%&Ç| ȅ܎{U[zI,Lɗ;'l/_%=̗SjVO1<bZj q,1wl3t% qu'h7ę -K.!>3A4j$%*a4`liO3h[g=x'M{*\w)4b֩LJxO䬄a8:[jDMNam{ \v}./F%BAPY}7g ]wBkvGa&*.lL½%%F*~{. P|>}f132hVFdpe*"$oӱΏUVx"B6Mdb2Zv?%1*xMKk{w7wGݦ`"ق28c]k|=XĎ:S:9鿽z3#״`Ѹo[W[ֆ GW| \Q6\gc3qzCوFu>Ƒfzvk)H/uP| W82Gx@ ,E<>1ߺ;,E9@i[0Il6dr/y'lhPWqޖ+MDFYn6WqXIoCC:_OQ?̏0OȾ)iR:4T1W&dnf &n獶1OݽR^luH84{6Q80dW 2.Hy~K)٨@\\:-R6^'kcޝDNGIv{56Ǒ^͉])QvW)rO }r[[A2s_1T ?6<^Mv~(,|K]!iKCc.rõ5>g}=\gܶ6v'JK hN튲~x1e ?3)I6 A6meԒ=~A*mOP?ʕ &g콼${ 7sIE U]F~SuyLxe u@T5vޚ$꘯Ïy1 5=ډ,WpUQ[fj暔XE-7þEw֢M$ώ_- 任bg{ׇ`\l;O>pe&`~:ת C+9WjD/-q2(o8:b]c\N0Xrss7JQtPx{r FMek9'R%/ۀUU Q%7йAtѽÄ_/JU) C҉;tӬ1f?&rȓF& |SqxyrS( DxsN)j3'rGO$ޣ!'GQ/NިzU)Ɇ$7eɁq *|Z塳IO*+;񟽢pˡ r:ruG>pr.#ڿ@:V O rvv0ĬUg-QʓJ9.CH&<; Pk X`÷4gJ<&d(V~!("= ۆkA4wϦT+:f;#RqΠgՑ砓ל|hg@ܪ !عC?+-b{V"4 d҅SBfPU5P 8a?~|YG{3&>A!<{|7ؼ^z'4gj**`{MA=-L/ii%дmZ2n | ZIW Gg37ǭsށMvuiSbr<s CyJ\DIcWM'+Vܼ;(L|D_Dž ؓ nfui XF4Qs_6bC^hV[0êBxB63.%N#ٺ/u8ĉͮn5>ksnqDgęރds$Mɫ@! Gc8{{/P؞%YTWǎj]p>ki9'?sf5%L}:b܋g_% 5D4PM8Stij2޸ O(ApGn RE ƺ# ÍuˈU]4ay@`N k[/Dsx)I@ڟ`Ғ췽aKeC=Z.z`RIa@m-nI1_O,?t[9q{WJvOh-eM=sHAy] Ne=(RWϸVOgdw 6"wߵ7:o!'Bajaޖ_#xt sRm8+PPZ͜~ZG<5CmB*k7r!tt7m|]QZYj"24|eXz)Q5mMԀsXdyCcz^X2D& I]osXk3\sA@Ŗc]{ݺJ 뵜2*jQ mEzU^aEs2 x  N"KJ'bx'Th^mۖ;KGɿ:&EpKa~䕨XX2nAhkĬ"+xP ᏡZx|g`eUȍ6`&&<pa! "W4uPl'D|?ff~QFe(xFg'2H& ݜoS~jV U=h75^m5|9""` 6 ~";,j}~q؝^-l]R:&f"IIm!P&G2^^T;}s ܇z{>&J`YǑ%<k ~iTjZ!cǖJVq7 NT.(H4Ƙwv=um NQNh54 ֮H*ea/ɿB ̙.C?'LIA\ᩎQ 0! ;ҤNؒ}ǿʣK*=\+{)X"sMgk7+Sz^}G@>^B}½MmB('=\hƘFIDY,_z=]T4.3K01Kx ]NOk*ѡْUoW:r#*<``|3zjK.vyp˭׍aR7*2v'Lu>[[< /jgj9d)K|35Ñ. g܅7o6$iS\6c`~aXK } RpIVSbIpuw#ɫZqqqOs,' XP$%oH\H1ツPs'A_A'g蠻otG#x$TGtXuz@X̢0D X_łWf)6F˦ 2p. .Iٞ) WhW1*p)(~3W.f .$C.âIT9q?НvNضU a{<;Nc3g>;y# 9U)7Ӈάߘ?JC=Uol̻WWtubT>Qpj2Um{̝rGF %?SCKIg$cm d[z?-w<<魯L2Y K,o bHpA׈Ce*mB˷" SX[Zԅ)ְ cBٙRv7 ;*O#:?|xby{ս7-!RHWĆES^;6Y@sЌvX7$O-ַg>|E=Dho3_GݟSHļ.u=ЄWȬm(kHBwu[yH)>l劵&ٲc`E!؟0?M2J'Dծ\0?%HuK:F~P8C!C,RIMufpc9$=Esߛ&L4wCe` ǵsx^W$e 9;F"J\}Fߦ/Ț~+W=v=mw@V +g(pE1OI*H%7sީeB%x蛙Kmsw{7ai¿L|ˣ}D\vCx{Xg(hKWɉ_6M4GL. fiDJtm+H-bs3H+8\g{eٕ|90/s{v?c[@󣷄m eR!WLAQN?͡W$@Z}MыJao]J얫'+'9,,P.ܹD5+2|0OJL\\+8K K8+ixbAtkI'0um#d˯Î88Մ3y 4ၛB=QQZ4ԡ'TA15l@76Zs)[ c`e&o D XrM'?>#d4nܸ___AL$OM^: U+ R}dbQO J_J_[arDG@G!} HA]_/ڜ+źZqs<ɥ ߬ƒ |g7!:2.O&Q@A"9AC/M<*#wj|ml ^t)x義u+?mZuB򧬭W~GAuy7ܨ3j!U }@%эX;% v3Q``k6"U#MTF3A{4<+ 0W0].7a&F0E1f%ŔIg. FoN?r!4v# Ns~nKPKCe=1̴TKL+nuvola/128x128/filesystems/folder_print.pngUT ~ZAPQux e{<?w99ICa$TsV El39BTFt0Ą(s(9۞?m{ly=߯v{f8@ݑ;?bʷ{w˔/k٨CQ'Ãb|/Āp@#}O]hG%q@ߦi)Ev4Rx_3 @;3_Y:@DMmJ"f'a15ރd|da9y[t%eS N=kU޷3kidDo.wJy ^ݜ=:2 [@ V)?AAA2!"x'#~K{^G4c[05w'Ƌ/%fi$ <");] &W,*..س@ƐFv6YCR ,ٹCLücfUބ'n/v`R:j,6a!M IɧN}m2 \7I"; ۞ˆ4AQoYmH;p#b1Cݤ9&x"2 vGQ.gb(+v@=2ݻ /.VVQN(,>T)3iN:*^dBP)*)ٹIeT\hϼ6 =NRF*B^^ƒL$4Ao)8[=Φ[")tfqOW9L3ݭÇt+QEciX J_)b}UUե'rsEan)jpx\g Oބ 7'I d4}dMs.A 4'H#%&N̡Ugj݅$S܄%E2 hj6ROȌj)xDZO [ham]j$r=ofspiM/VWC=nʔP/p]fyBv5wxSߤ8 LL씥Z&IIjn0q눖vPۗ/9,E濩?݅D0 MbKHвu >f΄AqvJab}V){\-oʶ_:xy .EG}o)4*$~ɤijzY%&O&iw&j@#ewr`2m@snA rgmܓ2rZ$F;ل@1g[2hՂzz>Cm1Ym]DgJ(<JfTvuW5QJJޢfN"c,%~#|܊y]=mm I bUڽ]=8%=rbF`fZZPm,\㱗RB\L%\(irx@KmyNA8~p[%ldWC%7gWib?mfya$3|J](ry-`T، /8% i).҆^5ޖ/xthTg:l1s4^)ZIEEEiSB$]. ̔"iwWZ2bu^oK1?44tpI=s{BĆ+ *"nahc-dpXDǵG]}BefS++Y66faO/&vet/$yKwV7еzK"uHȧZVU(7s$}Bͯl.n!EW} һ,xl@%)*%?edr>Uܽ;OBApӰO Zԉ/v׼:N~gomcysiTE@Ղq]zh@hc7N=·50K]@x3F/4'"5N111˴ z J}{?@f޼VR#x** h/^Ӛc /V";.XWwutq =Sj\".]2ڑRy ' էSJ<{Vr@s=IӄKl i"*~9 ɾUx)$p^;ygO}>T`w@ݚușN~w`aX8E}#eXǏJM0gB*ݮ؄2̄~A(4#3sc}M"iRTdAooХB|ZӜB"]:6A̷G" \mY^)6ZYw~:q_2ׇ%Ge^|pנrot00Z\̸c-(f83< 3t >tE`B/|WT d$12x aw /q8!g[JSuͯ#~HG(>8|E)!Da[909Ӏ}kZ(<2(6iAOS%ht+JG D{k f`$}SޞFH\ok{D rF~@ = Z3pduy']_ ea ]^y/GQD Fm9^(ǧ7 >:CL5 B3a'}!mbB:e:x1[bh&3 d[sF~Fl 䐡+Pt mԾInmRv+6)+JfK3(&yOTBsȝ iG}O%r8bЄv&܀C]>}(ܲNyehР |uA,Tivap9-4&."Ă{BVX+r0Luq9pբ IM_ jksZXiZ||0 dOmHCMD;zz]z>`v~̿5jؼ1>r^+1TSB<B-xC=יg`e=Oς*}Q"%+qG%؂qG͹.9~ ZK=8$df*0jI.= R ΅{_goOMُ|"pB~Rv[ƵVῲSd)wo'y']+GkD/48>We_ O<-\vf>]0esMwA͟!bQ~tV ~b>j98_q I_2z=|gkaf+.[ $k;'#gp]{{OV/\푮,+N2:D}<4\4]Up8?CC3+/@g^0#$XUfq$d{z1Uՠ K`wʙr޽@vH+A\N9Yt݈{6e/\@ A=}+t:30H>8bRQPP$|>eBwAGDGKW3AcQ'XyEgҙEeg>< TS\n -`ak0.VPf6xp9늛n wUUj}Ǥpoɟ-L A:ooB_${fk{e~ DT;F|Fe{) nQK BVfLQ ]5.*N+Cc7 뽣-c'_"8Zr@n-MmC`j8ǿ+i&ZUWݗu3h˿pv/Z[`rglo o+{=^׌ܼ$w0)RUCBs/jȵrx%l|IP)sVfհ,7*͕vgaUX0qeoìm_rG?^5$Ht*Hqg*m?;iU*OP_:خ>i"Zჶ8]ſdZe*2rR'VBձܣ[שۖ?әt9m{Y횂:Exߦ?wg6z{ iOZkH tR$P*GPq -Z\'w͓ysfaS$@F0[o7卨RAʘjѲ+[KbĕJz^gkŸԱ[7wn'տ#8ԕ٧6VPkX;egioj3E=>@4s-I^bw8"P6blQSfxCw(%e0x:B Qx`"gk=p( 缵ŚN+j =m}aSBgCx0ڜe]R-IpSI``hr W1 n~c*tusPpV`fao |'z| ) =nJXAҩ_z6![Iz7;7ٿ^̫Tȅ$9V/ +l6*AH/U[Kiyǖ7H\t;yy7bxY,d>E ዑ[W.;82/H2ݚOHh8}}b> OHniIF D*ۛjo,ܿel y~0 \0(fu,!^_(H;$j1:'>p ;j՘۾bG)54gn'?rJԻEfwZ >/>=ofFCam҂?oJCz qC原/9 {>*AL u e٤3S<9Ӥrp [;'zE/FX3ڋ,$ʐ[sjŅɞ}Ƙ뵪$ւ-RN̆|GӀFS3 :WQX1ăt.%`>>+mX%w>ݬ9k\Kt9TC jC._ʶ%AA#́ju_ ($yӡWgszi*!+ÿva Wam/ьZ h/ĒV.q?j]P1$jHTsyZ_pؙyAWE5AY25DAl;O2ʀVBQNcf@a?6ASFV@2r*Oˆ:čq/ir))4Y}Ubٯ2}YljR-X)cn/4QOLE,s[Wdʘ$LnݚUa=p}.Hrg`!^,(,%^Gy]7ie<&Y#ԞpUfU?$f BM:I>I'J&kp0W (c;Le%Txr,A#՚fb޻gZ ^}<8l)@lާ/%{/zY4㝴-l{IDpˊ^22mҰZ% B`"Y*{2u;CXeu{S^kwl+Tf!w%PĞx=a˖'Wprl39RAp[W Iw-/'kAIWͺ1>Z ϽyIG+W"I{b=1.agݩ7hG(b1ɯZYsf2,kòLWѝP3p~, gi8 +YxøMz@Hb:r =eHɢM\n+:y-Si`6O5u7sΎ3#XB7 i[w.=OC~ p48u Wq>$ Mj` t06Q -te\`?v.ƅ1U/xW* agI'OTY#W= \>g`8[IJA6CSR ;oO_"k(h>#31T1qbZi|<)]u S7a*J sf E?S.NvA$!ɈdH7}I3qDoW{O {*3 D2I3'- 8Ƥ$Un A1]vf=7{˦ҭfe^'f4Y;5EC4._fƫ-{ 8m 7hbYc-y!:P+[{L,/h7i|ց6hj榎}lpu_%Ee6 NZR|CTwc fU[?5.]@>=2"'WYA >،,Y{soԤ,@Ͳ$kk""5]}llWx! gsp>).5=!Oߡu;v ~G1.߄)p_SeDӡDpos;xj2)Gh~%>cJT)sIväQ_۳L{~Njua]6Qm%*!$Z{L"U>xL7`NX/CYX{l@[$uR:Pbg^=7YY@>:;E@4\\} m:dVo?m0:`)KlhI;0\# aNQtl[a)Ʈ츧`xMBh?{kK63S*k5q_9hjYa G7Fߴz}TQ#'s of fӤ5'©b$a*f_Y lchH}/.ᔳp 4>x~%zg dpe!sƩwHK7߽|$ nx=ۍ[b-Lƭc`=~ Cx%`WW 1@JK#czRؘ:إ$:&j-Y)-mlbS ݩbv46~c ֐[86u-$-e..M%{`DyvT4JDȀ H߆7,P{|Eg~V×!J a=~!dZxl- r3Z/(> o0ׇ"t.xkiItf.lDُIgSuˮ r/f&Se7UgcFYs46I#gq'܌p(f @y=~`?6 ]ˠmAhW6 J' A(\/qn_~vˌo64=JR"k?w4*bSB>Kk6u%v8N Aw^u##[[dS_.YF\$M4ӿ4;vΗRgllD< cw 6*Q5X ?Rd̏ښoD6 o~FNA '6SR(3]ErײQT0z R!>փ^Lo@y4Ftt Wm2|ԋSr/D6)>n¹LۯMn*[8?Jމ)k1 f2IY!mϢ|xv1ȶ{ݲɉ`9vNVns#F'&i2uFMq*O{.Uٸo _>x]s%)Z:ocBdU†ڲ[ЯQ\%.1yxovaj8k6=x,}0gfJ >];c5cՔ[H9>pR]lڷ>T*&:Kt ?vrɰRwKTN=:![Slolйhwt%&!K(kᣎkG(gaihЇvLNޚ#JB*gA0HI߀v9ņy q0gǓW2N0~Vyo rٽtg3(]4Fo"4!}m|ȕ3Ui᭚Y{,'E!v~-cYC=E|i?7<䕆\}Ζq(2ĸnHK;lq<Nz?gF5ݩle?L7j<%$eh3nr8X4-~Hoc6J7kM&KI!K]\2ǏS}7Xf'Ӧr}#II0DpVZp7vMAJQ:KTl jtkjtz%; 0* Z5Mn ob9KZovu%iWaH OM/d$nZe [_w  8{Zvp9E2VbFnopKϸ:vu<;1E"N#/asċ!fOʒZm"T6lQto2>3~5:$" sCAYl3U?.ة}a-8?ײ#X\`hh @@օcZY}lvHT'#@2^9e`tVȁ!DF[1քO9r)C(J{^G?ӱBR:KG IwyR 5*\Vs)[_)t$,?|ReVf, LkTa{ +,W}_ے#<8ll2cl6r9gu5))+ o<2߼W 5F"A p{˒$IP޾} 5 A;L >\S,X6=rnY55Qd6"(o#tEI{.URH95 ).$SǙһ}9ƻ%d 9VEy%APO޽Seeh`Fu35>mdk/ ;SKE*&WQ a}HDžAv,Qj`2"_ tni$ yO"hjNN ;Y?1 @&<`[/Zced߇ҽE,;cPO S7S)A'|#hkwƿʓ6ed!A A"ViM%c;dT٭?cA"(myKQQҏ{ 0Ŀ"6ιWN!)qU#N'ZxoֲiꞰ_c v>jb2wϗNzp^:67`ʛƼԽD~3G˦aϕ5! 'wEd$.H,bdYwE]}w6P(ʴ2\e^X~Ae߻]8WYDvTsQ-c'V{߶OLQQWBA=]mM1GoV(G%Fl遂'F֜;|ih#,W Y$fZQwT3"3Wk` qxZ j7{i 2|U)a`B<(v%nɶŬ:qc+*dߎ}B| ~,ko̡J BDYHȀ0,+2Ecd׷~_\5HD&7%0ޑ_> ~hXelwqԀtxߺ\p`}LB}RO_$}bUP*0Ҷ>sf#7lIWpvv#%=A^SUӦnlV$\D6.&[cH2 q!Ex[Le̫o?''*w)D'?ߑ̍4}l/0"P2z [AdyB\s2H!h'&3RaJ{{ѨѢzY3sV fKKnMei k+( b7ҜC~ $c;h@,߱j',|aq6I{:_ O[ ݽn.Bkdo. 4j򒚎UyqGU>}7'yQy픴 &+:zjKKV,(Mgr|~-$g+7>Z#FC\#7Xk?>Mhz2NTb>EBLE#-I m ju+Z ^XjA9,DGIn ?fã!M|"PђnƳq{gh)' 4C7bfGy£j^-3]!];7~"qSDqӉ<<JIf/A=9T΍.amNM8-Zj~A@ %-\_=M{S;tcAHFG]uB cWE6&MuEHLr$cyfaT썴N?OAtKi2Bq>4Gln̥CImZiÂj@[_G#+9T; `<$m+ Mpl Z.P*:*9 dz3{7ead$&}Q̧zҨef;Kbxq R.bUHV;(7hʢ<0%N,X\Ypb잨P Dӣ[.ibtIn~R`tPgw~xf,a2javA]7fngkլ?x!vl2B淚g[BEpLo؈;b{iS'?) CU=?Z~ZpaT@ũak5CN:nᄂiU_];)ǎo!WgkER D2H'zrZFgfff2!o[LII1b,Am|dQsĻwNdDS+3q1 5:b_.[w^JQȾaZvƎ$Q8aKKS.6&Up_eԱt!.uQyNے{SqU)'%{nwwRpERgmWMv6} g>TU9(kfmoS昺|'=| wscSpw0ŧl"*aԅ5A9.ng<tτH2Wz`x,vvq[g#ux6wi^ghA ȫミ6ؤhhYXS GIMCEQFzY=/7Rw2lj[}JkQGw{[uY̩n>'~Q_󚍫[=1}YK:KGۍBs.jjx#*u{Z5D?©sf&2(jSQ+t(>ԷT[ \qN./NpFG Bo6<*w2zu3,^G0E1ȵTItU:4^g"rf\N @y_qN:C+W0 IXۋUjƛ0q#kA$dMChh `ƞ7=BNB "IgY[({g 8o 9b N0V-!G.]BI|ք+ xa)ygWgceXBh0{f1 m Ӄ S/g%G$U=Fpׯ濔{K' 'a}qĉ11/v #"M |MO;*!+-ʹVBw8ciJ&I?$x*'A!D2MǦKw8mm$񡟦`S>kgheh!,^vem)ꤔ(Vv2 XQ@Ҏ8vjs L$T}OPhVakQ% ܹ秨|||gϦ$BWaʴ1$Y*YAk~Riyq()B/M;ؼ'(CrAfW!d_KɗTPE|gK𱌠tBUHN£%TC]q\%^ƅS|TY@%ܥˤ?tiP?;#Ai{#hZdV"E:/{FN-$>uMZ#h !7qo $T^Mmw"lEB5GXk)*o!>K~ ^VqlaSr 6ZOlp"3) =y=; /T1A>;NO9)]ˤ!cdoreR:IIIf2% e>-k?`$B^W}u %lwሬq,сMB7-ncƶ~C1 Q"Xk_#-Mq(S6k.|"#=%xI f}t 5J- ?N aT3[ҩ˃7J@>TL:~դ-Գ3Gn i06= XV,:\g/`7:SUMR|YѓJ; wg )fcQt m*+E84 0rwFpAp^r V}Z*~#W7wf|ҞBԌAJ߄㆛/ |Gr OR̰҉p+ئ}f]NCi& JO;E=A|v[q>Z~,߈=M]NY4[(*Oja_.H ϨTt4^Q|0m ) r_rZV/4Rqj<ZJдW \U+#2XPk9' @h1 m*zBMIH!B&S+R95cciu|=^`![yj=?=&;[EV3k>tAz; hq[ "g?.QU%Ƙӝ9X\ȹ)sD~Q(lO7Xîa3#ٯV+4l]<+CkoӢA $ͯ(/R6Sioc1? }#lRaBIDP:z`ig[5jG(4 jr8mx؈ggYHj23ez$a|2ssW eJ'ȈfJ~ͦK߻W~Wq QDF_YhTV״H&PSqX!Ĝ}Fo[l&o ݗ-e$VSKې+Ă9kA=| #O>xh=䔌騱2H$oH{,z!:-֑]9]1(\ul&}< +D#[V7<==βV4<&ENJ[l:̠A foJC&s'VkK [,QyObPxjz|\z<ePm{QQh<`ˇHD S+GΣL0CET+Q܂8 -idfq d|v孇'TZ(F0ZvQqn% kyu_QFi!_j-FGRN_jKIw2'sWi1EhaV*m4%+fyޱKYݟ> Y=z0]T/x[B}"0{Cun)oR!UI/~X= tF76^ >8K:&|y"Ps;É}Qi3H'H2VX8Bsav+O׍}vvA>ɾ77ϧ =慉8C\dc+oj24P잪cDsHJU@KfFЦu}1,Nf) dz\9squ=W@r͕)ؼro.H^Twڈ\޼$&<p68. :~ <8\p{o˙85wʳ;O$7TUUZYYA hü9?$ {"4hRͪv=bŎ3EͨB*?LLLĻݒH'B{5K.s@ {Ms: UOL@ސkBQeg"Gmlɬ1X@,J:nΣ1nx@HǃDpASRknr͹Pi5y1uk<J6xb6T@Z geU<0p}#Fd`3e޶P(J@d36Ȟ<DŽAg[D;V3V)PXQ$`\6Gptvw#";2x9O3s<,3y KEdT[Y "5ox>"!M\)c8W ̈>}koiF9+]FzC6]100+((&Sɳ3S1%L=2A-FLIBIwVMF[n Q Y3L *z J /.?iDyB\sE#uͣA˄GzyIh&R+{9/?hs yac @7 QgЃoF${C hx0'lqŋp=2݂Hz hL\EXx81ē?ԳgGױKs _<FO1ACM<&=Аŝ'Kw~+Ɉ/Sq>g|wt,\SEVV$.SZ`⧲]ӿ[@-\f6r4{gyY&UG<ҧnxZܥnQ>OA 6񥆿!O\P܄CXy#t9 cĆm936{ɦ겁 wNzEnաVJs)x#?',Na+P%E/NRe7?P-qcYPk9:ʥ_AME>3N.eXk 5bI$Pʎ/wäDXk{t6RyڜwG?:+-䐺w?3<0OƱy{\l? }@]}fM>7 csG$!:ūˬBz.M_g}R]v"ωuBh"s" HG#C)IIF#l;ܶ+ ;{ \Ͳ!ebb" t2k gE6;C&b4t>>wTg5ٻ@43(͈5! 䥉1mKx Hǜ6 c[UU[MS_ ר3#$v9#5!X[4ɝ#PHztznȲ!Y?2DU1!`Mxv'knQOylЎdN/1 H\x-Y;Wiɱ'RH@"[w*&Rm1cæ,Q AL|]1)}2|w.ٻFuga`tACHG%WB{_W&HTuO#)`T:߽ew=ph,JI;_bBm-:OB5K8Hp f&-Iu 658GHL["CZ}8yX(\µ1cy'{A4(y<,HPΖw,JkptLM (ElrI/hUCa A"QwZ]:ȱByhGA~= 4"y(VNZӨwM][d|1C@MNa鿣dv#}ު $f )oJ(I{/`:S)oHyZjǝ-ϰݢ-(Ԥ!5{X(WSHBh'iRBA^ZMA %:)gQXIk zM⨞r VW*j9 [i[>ߚ-ڪKl;odԾ}73YU|r%ML?lQN>] # HH nGXJͰa/ݢ0~Krs$–pu;`\| ,oȏ 6AYkڞ`θ{/OHʊzݐ)>Mw Җyc\Zi7֛"k#nPq͝V+i0K-9Mu''ʝܫ0fa m ~~k~"&JU(p=谶e-Vs:ǂ!<jhϏF%3E]laW.g\tԽxMSJ*@=T^qKu&%W~m`Bv/["Mau`wc,Sl}95IsT޷z[ Y!a&rꮌ잟W_9P֘ ˜mχz)远@K&]u;w^KЦZp6,A&X_%}7]r5䉭jb`v;N{mim%B:εO#C"F2}!W> kX2EFj JdWv,<7xMw~٨c*_"?h/ԋ< He!PZZ`U/$Kx갠gI|UcG%1smX4JN)N-v5vn3*c8šTr&`~\:]H6g1ø@zAԊ.۟ȧ zAHa$玌=Pe.!68%08' <ZE<#πs-1%[oݱt]{icVO"u kͷe롚i(ٟݥSoOS029,7/:N lz)S]q^yGH+_=vC}NGe, ixeUAWO&t?@=KɤX?d- xg߅˸T\^/9Y/X7&R~bQź({9V`%>V-q>zkEᆛ_dWoG5GڵŒۮ]Rl}Tkv"QYo({`R'6ǾCW'aaCj|/ 06dcʥ'T0t4y$f TNJA%Zd-3aڵrҫ/_Y33YT6*O #ނ˧J=N YrO,Қul3{LEB͋]_v&+6zgefr%a{O9xMNs }UVse9Eqoqh蚯yU9IlŋBd". yČXZ g N۰fւNCU'? fZa:e@K0Yͦ^ /:T2YzΆ}:W]%<ʐSfyFġ\V80`^i#M1GE7Y)=܏KK~"r"޷wo̺ /zWrG{vd+Sbww~oHxa_X隫ߗ\seU׾.IԐ}:ɹYSgas_i}A >Ļ Neޥҽ%g®&'5=ƞIwH!o}]\4VML_/͒Nڕ!`L#_7Z2!խ{5VnW E<PvE֫0Af"Wc_z5<ԕb`p9=Q S6:[hגUoLrj}ΥYeۂ';t)nikb]R6vFյ`"6S ☄H:bM,s,cDqiVwsa(_CCIݤ)_S>k 69f('cLrO-;焚3 xtޕ%Gl,mBS夢W%M"X[YtEyD\fmw}6.8!=XrwjMqH)51?-Zrflpm,_R?D8ž ugE(I"+"pFBO)u9&o37W氯MSbR,۠,+[#{>0xFn'K\3s̮%INY.;ǕR!gV͊Nf5׭dPp+tfIZs8hgQ{j(U`e"$HRG@,6Kxe\,) V]moI},|HGq"?_(Qwbb{d±J|el=_J/M%dCU%B}2A6i}HtzUPc<ŕ߾*(^9Or{(n Ut#>SScDt%U$q׸j҇\k 5 'z '|ȽP6+|GTK^8"i8+DrG>T{TmVpE|Ik:'E>˃wH=#rt~2)!/Ia(P:)~m}퇿eoPs'57ˢL8t#}d!ILYMH^)@e#>KmL8;_bvn@F%)8q3)u(` /ԟۗ4HEAe XY(Ceqr+,"\C];i4|1}_@_T) .s^+ ?_{bũB$3#@Us$u"7j;,0xzǑ&!KD:~I%X(b,)؏:&;HbwZI/J')F/קαj,:C? ]I[kLOhJMW buQ ]pq Uvd)'o4hcWwgoyZT׌hDCfR$meL]? n.Mw \pF޽+vnň:3&?B,WSICmMTiFC:ruZW^8_GД~H:^;!Dsp ]za0mߕkWi.,ZzN&S)J9HNo\)D-TWF֐97^-Kw\o7'm7pXl@Kӿ}TT'$d?gF?:"߿#$ҢnB5Q~Xѿ7z6ij|RxkHGLqpG^[a椶}|J#RW~1bmAXYefic`σ^.P -ľj{U=j3)1_@&a?HSM?/>O{J?Pɇz ʇ˥߼.^ULIZW Y|GSMJfkf`9hTߒ%"b&sVY# Klc~&:-)|tw" yKpxD#Er%(!݇w`JJ(mt@MꆆxB~s`)CVu"PQEd, 4 "%` A!HS Nm%˼ X>>y?}E۱ wڕR<A?sx!cF Tiˀ QBoҚ1L_; q1FzQXýI2㲓#&\Fɮ1M~`ū;חQozğ zTO:޷!OmM|3vYD&E l.,V[#3Au&>CqN% r'UQk-Ɇ=ΙiQqOoXQkyis=w5"A#Q5 4>ZԷ_s _T( !W~7BnLSqЩW]/.Y#S)!iZcwfb^<VeУ7+~5Y 1ݖd5'o/<ȪNsUZo{9cYV J ŸS7!yb+IÜl*&mc If[&!:ތB(Hmk<, ]F-N"-ȮB xAwy%7J%+05/Z'.5ZMo aVD< my , ;Dd^۞<5h+ԃ knpnD*/+y) %.͌sڱ>[ $QRt<*7%X~=ќm{j=?dz9,-? ߗA*|n`ayLŹxd̷|OYl,=tU '%|Y^лaœ5"}$ǃW9w.Ď? A.޷Υh' 8eyq_Krv}HiOͻ9 zb #6KZXU:2E~fXVȵnIx)Z,[$eň|d=8/FG*uP[}/s{3Ɨ,a[H#<Apg&`͉ID-~1Bm:Wg:3&='W OJGdί>o]F\^ԡF{З]ÔAsg6)g9!2EE9ɽ:dCm`'h,,gc,?Nw^TęC1Z@zhBsYh|'pB-0L`xQNp.?9[ܴ(M+PAVλw~D۴'{_@߅S?da"J,oL6Q'|+-jV̋US $Jl㭴%Ź;ČÅ"5߻vpg/ZMFGPI)Iծ_*J Uʧєs'5iuߤn1+(GSwm{ۄSS,F sijcE /US3%uiyd8$ ?` I H7<kq%(N*+)JuxKQ n]2I?>O@8҃;p[ب@>x>2" !Ѱ $IoqQyUt !4y͛j*IW[T(,x9sF2Y?&$Irg˫VR"֌RLԄ*<a(MzcMc~w];oa Qbc~oHĥ)|ZB<Ybi`nZZR .(5S" GqِVdhx;?ͨI#oPL3@[t?KɋC@\|DzȍFҗ(/J3C}IXīm7pY־ xWT0GDG#3ig=Psn61wΝkco/îF$vμzU3ʺVN!7qW\-{|Y [r=ٶY ֞{n#ZTx+(Bc._XMQd"SIH? (t铗/mNykV/&w[<6(zx-3Ѕw0Z< c7lt%,;oX;N jlmdB:?Hh&LbJ'DX4Q<"HlOY^eR޵Ȫ~`<47M],跮J蘦$Qƕ%?aT _ gt$9a8lWw PYZP5votu%%X0@L#_vj ])d~![n+<*<\ {u[jjDB۪ $D}pb&fّ' bMo7Sӧƨ=/~;ԔTD%Ed Q@NI_u*nhDD"?C<Y4\8/>9G~Kd =`wwKF/G/ȱCʡnBoV0BN|ks 4#xdrrs]J9 ~ySE#`/׶%ҖY܃_ai<< }eu(G酙Sֻ!tf?dNh":=–)gQx}c\{I&.V$*%?yRsA4$;aKw20W{yD/;gUYPY<~QCOz@]9?uz&jDBiB<>xP0as)ɱ"A=UlF ,R'A.GDȖo Kؐq1-Cc1 ojO%y" ˘4v ,Dƅ@vq鴂[I@:@3BD#B&_՗Nb<d;[o:i PA}|+\n=i/jAv_1ϡ$n_2Ϝ$u"M!QIۑ>QW31tćjZuXƽ_6OYU;39G)B<諰µYmw3$7?o;,9>&SC&yu e 1 ˬ掯 x#Z"*M*Ae CedF# 55xR4QGsoZ49`~&s=fّ.2tlX' AiKho!ǻK8(z r\I#5ǫ۽޸`5Io>_cH]vSWKQ 2[w]VTm,uXweWˊӝߍm韌>_ j˨!-:xQ' )͏".*-Yz8).,׉7z&E1ʤӋ#R0%w/Wt^}D~HJkZ\8a~.ݓGVB:|Ms|{%c۩K+#6$Ο'M%愞6\%$**s ~'_sc~޿MsAN>hULjVJG<>VO+ѪN"QQ4ړ}S )ϳ54qH8zOL6z(6 Iܘ3}t[G=A0mNP=hS366s;|˗`6r/Ɔ"Ɉr~$[Q 5|:uVcc"s)Vߎ9UεV Ȓ695;]1!΀Q4=A-?>8A\$b S(砗|>J .@;h%58D,??c{FJ uзy}X~C]#X|v y6QP1h^˃7Kƺ7b?]qQj~~d:ufPX;fOxCD^2aL6'S|;pm2c?ggn.0Gz-# xpl>[u4(tu?._q )ٓE"+lxLAyY8Y+|סYUЗڇ׭:lYDCN6Mi;K{ڏ~4$-Q|h%`{( {_-υݛ}*PD H qoOg[mх.5} rxEEnXzjq?襶# "X'TTgp8.t;O) \y=SE勴sj1Bub2BaIbƖltdfuGڝI.e΁9Pл&:<41҂l$d`)s žS, Ģ?yAfmLam6YJ}}cWMl3 N,J v(6oHY*ag~YdCQT\Rh´њW rv" lG/؁Tc|mA&v1(6Nk sL%CJz 'e'hc9˙20j]EG7$[{[KQѧi',m_!o_6p6L N{uʉ"{|-q(el1N9=MITL)6c'noMn`!SylV](3#X>}sBp`^n̂@F>l]bN ӥ+sj r+Xs zu+15]n i}ȓR*S?vjUz-CLб^zS%*mNL/ye&JU6#sNU \.h?vEۋVlh嗓绹ȏ1eـ$q(f+! TYC@`%& HLEc.u{0+"ѽm\!QM+c݋¿]o'ЫIH¦n6-\oh|p~d;O 籏4sd_ փJcs]m1V3yfÅ=\zbP,`\^N&'KƗB*? W͗S&[E@Cok4%[Ӥ`efz$ /NhX@ڞ:V7"JSx0N-a6,Y*j_XWd_ΕMj[_g8mXIkB'F]u醢L,4&"-j)-m CɃ(.KOWԅs5H2r1xӅ l, \SHܿ8EA}XE%qC#CCgbI9tFÐfkL"OҜWi% LLZ3{Si8#4_A }!!*RR!ĥc4y R8tāf6><\A`wQôsPTt2DdIUϊ?*w|z)~5gg,`&!@87[ :_Uv>}B pĖB_잗vA *Ig]hE/X[@l˲_Coy:[D~dRa(RwAHծ\潷S bNm3el܉2ήE}G%E/GnOo;a-bY.yo=oķ {OOMML[ۧ|{ gxgf&]eGؤ<ɭPr3R4/`Lw6jWIvXiK/T{3}&Gm5:_\)9S3pz0Ҹyb^-91?}2W)D!|ӛammqB2XP2F渧o:G=d0Ȣ ѢtGv0{?Te(vl(đ*ڦ .z))y!MEE$I%Pd€ &R-W!S?%ybHj S^uԤ`OhgѾ&.JͯqzlpLY X'FPjXL9Mb\ll1onstx]SBQQj4Ou}ԫ-<ˢ^0P^;` gaWC;;`gZBĭ/~Y4D\"9kƌ:AZ**[f~uE!`Wf&dhډg͢` V)6U(V%ľ Apd9UlX3SNmP~Qyk˲<#]ܣCTjȫ)2E< yi]?4/_ƛ Ŝ]ڜ^ig\.7>tОs1qb-3&+rq팱˛OK_Bk%#BΡzZpyƇ+ڛg<>I0듏twq = no!/[59-5)=L'mmvI$-,ުEs}=(Croq(jEZNiճj*od b}q"cepL)u@pc9IM2 &X'7^,U({\?~D5mz}xUS;m6ɏoG&|R2]CDDq~/;Wpa1y @:9$L97<דS(žS”y|.7L ζUy["9㔊uVA?+I!4 LO<_K)+/#u 'Ʉ/d- gAI9Zl`…SC0dDׯr / OtAGG-L;az$ %xZ9'5 /θxGNop8'՞=9hWAn߆až9+[ig+%uaUbVFp*G[eOKSx0Ԙ̗Qv\DpwW8 CUtq[֭"ƙ==s޾2| D=z̑Q'~oH~Ir>SEwn_N tm Wgz M)p;Sє_C\ySӑƯ7hی"n&;=¸4Qcy7nC*n}{s'SQm`u u33Ҵ6UL0;_빵89|nJ]nԡB+~#SiyP)dc@d6pσM16xzRv'*a੬?<_1XKw^wxk|/fQgcמdPBC1mmڞüxyT|]IoՂnN5935C5(4kSP•,NaBXG6H[lm$eM0u5׆L'iSQ' ۀhCav_wGc-'vcZi&J?m;sv=]^ö8oZ!v G䙀dhdA"ZޟN7vx5B WoqQb s g7b6T?blDXHz!o}]77v:_BNI)Ǜ$Ay~"2wՄmh~U EwL}"0շ9q![m4}/_գnFeVVJʕbQ4&۝&+_L0e6ɉ$/"F¹Ua+W/mUEDLIn%{[6췳ӿXxyH-5Qicֿ(de( 3R;l"~<fMo.}OɩPK =1.HUI)nuvola/128x128/filesystems/folder_red.pngUT vZAPQux 5| 4o;mΌ]ƒ% De)KEƮE(!afB 2J( %RPc?ۭ> Q<v2}:u<<8*R B r 1fOgqvMFM*!$@("@{C{<.`g %TT&ikj*&vh B\1'rXf;ݭ?HE 8.^ɓܦ*qr $4E{ۊf,bS4 [˾\;%.wַ%9a7ztE ]qp `VH$ ҥ=9?uR=kr=@8r$˗-.r{z7r3eNv_gԄ:\CI$'=N{>޽L2.ڌ> $h^'sq t1 gx;ab 2Z/%;$W CŸ#Dx1`0Hv{GDqzuF}(f9Al0#c'Ź O ]ύ_̡TeRꢀ{ 7~ù oRGP+< EEdKzO$巑ÐBY{(gji9{<9F78C@{DTUѤ0PySjzJ}D=cbN͑xb o R{H~-fj;I#(!p\4!B zzHJqhCs%-*W[A9^>fց_~x3{U7 0]y"?: @C%ǮUDtse<:V5>1b>R(l3]ͯ- Zuqmr㞞9OP+C`^2߿+_Xr'mTV0r@Y@Iؘ/$Sw-Dٕ?o N <\ps{LbrK66 [ˣX4U.Z֌C 4Hy=h l#jp0?Cſϣ?ч=jr~@@uSZ9?=^L{qAoTm/CF(窔&X߼EQ/\E]hkwL{ R\*4"2Օ8z Ý uէSQhz3(. ONOԡ.[Ebս~XN}O<ɼ' ; "?t"Ljzr-g:Q \Žx9&(+бΏS>ݲ1]o)X:^VY&DA:hi㐸/nn7x< Wdx7-iV!Um u]&C:P<ڲArנr[ON9]oHPeV&bgūp%Rorݓ$lF~y8fGaU P\1@Ԅ<ƱD `aÇiQB'8\jVu~<\w$ d+ 3NY]tJp] Ąթ h800p\7 z/*xffH`\h|\8`Ҍ*+M`D %ѐlŎ0W2V/քe$J?>n=|.M 0&O.ꐵz҆<̟*ѼTXqQ% ݀l x=v)9LbMJ&?7g"KKB;$hY^1Swܛ2'+ NTl zf.D~qLR 4\޼Eae U/"-b}{|r4yW bsۀ=^#%9%(,(ia eZ^H.ė>ˠvMIMԻP/:XȔ#`Kx_oO_HO[+r4O>a=>''?ͯr,zd/jy;.ط4\LElcmAkRYfPyX2N?Ӱ$?vgltJ4kȭ*N-Y 54ȸK=ecKNO5![^M[:/.l6ohdb>sYӴ'P 2&=O3Wʟ5k,/PVy'wwj6jxv^ㄋxJT@B5ʻ^`>ҠҜ){'N܏| S7 J߷ja+hpGQt?~L5]-Mw;HӨwZZ|SO=WIχn_bєޚմ:XeRr?[tnp=i}ف2`⑷{%j (:sqev60CPb2 *l !5?צ؟A(MHRwK-μ9vE򧟛=bt"|쌘!GSɭi_gnh%˂a擛F4N{gFd c)%V~̵ SVf:YJ0 :{~UEfxܫbѲq &yv"@Cfot3>AC.`x?ѯNJ^Hɑ,` Ԝ'IUB7>Z o\YAE9409E8uV.tWׯn/MIXČ)4Q$N:yfi%FoQ˻_ m!殨}u/W? / Ičm{oΝO[4hF/Tj`'`zMk XzJ)6a_CĐD񿗑g:N$o^Il<7^w­s-N? UH)Gex9gntY'#Epe uKY+:vʳ#Emb;=;E|uN =?*X/ |~=`xtڍ@k;ڛcއ%Λ<>o70+?,SVw9!`VY}WZ˟}}Q~c.& ~84w6o"a䙏 ӴmFn~oϿ9-Z87+}a GJ4ϑ&{jU1:]:[|}+߄+ȯ>=|SObXcZ{3B'9`,%Oy!>'{# rN&jIY_Oׅ8B6NY;zpϝUD =ْ|ƄPxnܣ)qW@hy:o3d"Nd8<͞_Z:/1ѷC<=!B<جPZgu&t vM^G2w$1}W)b>QLvJlgj?R9UCtP{2re5| mV8^c.&,My+6wCmrZnoEh$nHM/Dpȇu/b4Ngu]X*=&NZ\9P{q觽YEZ1Ǚ6!9ygC+gYi?6:3̼ qNQ?3¿Z_~I7oԚH~H@߼V(w1XYrDlfI)]^z$ݥ[.=^wu9uy1pw};gHJl}Ht0UCLz~yx7 죏GpŁ%cč/%;n۶sКc.rd'cvQ&ZdF{0{p^K#ڀf.]u|Z՟ZޗJ6y`d;rl:&*Jvw/KG[y&(\nxƪ;GD4xNv'&e_vls w3(UyIɆu)oM%}}S!THLk<ϯVx' 9Mr,$rU(HpG hBZ1ݜbi!URԑ I5>͇rLjyĀ,w**3hpo)xDLOIɄ,x $?Jiq\VӾ/_M  vR?9&ߘQykq3'ݲސ.5 ̾]5# 1:xz`}_ôڪXMϷUI iI4_d()FqrD^_ /4>QdM_iҸ\}߱/o :`Y{,(Mh6u2whJ2uzIWk}JM9߈'n dL%(]d[g!f {L,:lЁu(tz]^MbvfJSL:.xm oC.Vs Lʫ> N.5/roy?ޣ[C6_\*z{hC b#^e8ǝ$Tb9jԳD;0Tx 1?_Y$tʂs.p0ۥ!$VЬ( k- 嚚_)* p %?ȏV.ڧ /C/jͷեf$uֻ> a eYk|#ݢhk߸s?Do1Gj)}\]oth}pO滵$Snܺr! _歚w|$0r8gȮy9Zb. fo7-6 l쨤-;O~lqثBG%O9dPb^_}(+|Ù0a@*43Be cK͢4O{,n1"_is}vbiDsH^4xvqT 4(CfQ ;+;UIymr*)֩趧ac ׮|,{H8Ǿd)#9!J'7u}x$sjµWr{|n?]ʼnT]5tzu QpEAZ]6O~ {*n~#jV?5xquJP y"\UdfTةSxŷi_LS@Ev#)h9:k)4L3f<}"p-yL߃ACYKAze/q4?q#KZ$3)z^RZ Nz58Ơ< ں@o})#d#+ZOn3O(8tEr'S1QWPOոSSޮ2Z33Krf~N,Lutd{ )},tFkJƣwR|i#`4WB. ?i? hMd"?E&:8~Jك4l\_ !g. Q\ ]U.Էx/ȉe.q݌ 6#%r&{OZyy T}~(k[6@wV?`>rBڐd!&EB^dLE)Pf:6)G5k#l[=zK''Mi,[]!13P#5M6Doʣ_o!O#k$ 7ʿFܯ.mڣ+±¬QfyZU"ʓ|%i`+;c.RI!DI{U?1gC,?4?|gՓj eE_Z^~^󧴁ԯ"@"sj92 jr'o݊ge&)c=N><~L0apx5b˽]"Q"|U0NF8BUMxK,s,>~ amJXb/,Deב-=yx8{Tಿ+,B X&3I~j\V$2 zyΓ7vYo/݉gW$Q{D`)Ĥ@Iscxn/0ag"wgG2N:^?ЎBy!X%@m݉~3o^yW n>{}So± ?WRh~,Obyd|#D-lRL_/D 587Dw j? p;'{8R_ 0X6qi+NjC ?r]G[zg J_AIj_2wq/p7`cme8s0gpv=q1#9\E1|+Fj^{WK\xc֫tb5zr/ opK +Me7>M}Jz :h%-H$i _gW;.+R vK/gtUK],Ȍ)3FٟcWpJXԄL7*7f.T΃cSfnˉ ǵe$RWTTι'N#^'NSS;g?m8:R3w_ ]%_gvOa Q^! b\2$  { %|U__=.L#[RɀO: Nn|?HBUtD1뼺3/7 ̈]=o>|Hַ 3:vHjgMsfE.b'\F6yIoR0wa|MIO}?'1&lMBwH]5/ OH:>h"U5VdUrt66}15P61%<{){Gvxɰᢷ2w޲mre /˯H ϕ1@j}_aPxڑ/nO?TwN[C + Ow ;fB`uQT]=ew.3A}`"$V8L ~c8P_t*F>5%\P~G`` < %&꘭&u ^ѡ@+4ۡfY$`W=Pce;#*D>>A ZdG^fns;JE{?^N?7N$w9KH8Ef:gHopqYI:b+p/Xs+UYJR/Tc04!3٧efnk-rLAu2)gV.t{c0T)90 A2NW"F>=Lp;{p-W9Y&(6lOgrjfKH>(1F4O z/ VޏZ#MBQLr]ılTܐaOO_@yp+?Cˮ;:˖o&6$1SkJٓ5Ьh9qp_avf[Y檙Paˣމdޛ|e=a}Қi A5dl-;u8`t Kp`%jwդY~_nߩr̜wk<^Henj4Wz2(~}Jc:Ylpn} `Zp_?#D(qnCp7.EȎ.ps4ռNP&:)7Τ))a-?-m v;=7b 8KGj0ٔDžNQ$$nXR]JNyV$4e 7lyyN`n[. {}n*ug|%GI[fAe[<'s[;l霯[&De~qa45~2署+*^);$͡AQrrb|n/l㇗p]]cgRCN>XİvkKhw@w+q.79b+!F; ujwx׻SU͡ȕNuɄݫO6ŋ=ƜFȣ^*pKy{W*&/|&(|r4]7 &oR[n:6OU4sS;z3lgq >z$,< sGmYīVfDYVX̉wrW//S9\RA\ζn%Om$ BIt6B#+tעgf'{2*B!ӾB)D,/AY8_;1ɋJYWR'-Г⸠L8Y^!1q pWX !^@9S9Hnx N q N`B L\nf'IsjwgSp]rJE wн 0&TDbǒ&|vք1.Gێ[ ROlhPn<Ͽ*/YqiD/k[+<;Lvm&^N*ՍgDr:ƭ||֠ 1!h tYNM*x3IUv0d2`1p$Qmuc]2+572{'$, n%a"%"W^/ t;/;J!D:e6+UR%'kMn| Eb#yV <j*8,mi{I=ʮx\;+Ꮓ2ꬱH£3!#{`V}E%ɑ-_ =XU+[j}1wfݐ`&š,eYyMHުsXC;eBtvd23}d 17Id' F:TPHRz.~DVsz< rHfbRf t!epY|w#fT׋s,N+CԭN)+z ΀Žs!feQ+*>BmNMD!6i'$G뷦z0ȿr=h^ň/KL'>J!\q̈́Ah At,B6@oUF#gIꄆh-\ˎbgˍy)n*6]4"U!Je*uz )`kGy A\ bA/0h\"UgR#\DokBbV0;;U_e 9dׯ9$wTRߥvH#@p_(4Iy+de[ gT{j[{6TBsQA=tޡ.1/ $DtÒ*GK G `hD@{L:K`'Pϸ "<$Ç ~Qǭu{o\nGJ>_BχK*]{Gx2&c$5nڷbI&rP1Mܥa,/-u! I9o S-zrY廦i\R ,-p@: {w2 t ӻf-C A s 0hvq;~)D [{/AJ( Z)CCV/ KE/3gDɣq<$dUtjIyYt|KLˎ7p'"o404H4()}\ӴI}8##F?"y{%*ӡ z~}}.teWb#}nOfZ€},v;/=\.ߺ2+h1$ٷ;L r\nz?MͮV{ʜI/.]YH 7wb75>\adb=nNBUGZpltb}% :FyG;HM}3,S|8#Ő_% id SF /aMU|'BEJ:'iCvXnera 9rziVF`{zo?N>,6:U"l'XrXZ=0ɶJ{tFPInvgjxY3xgﮟv9Lm"?q˨ 3ϪlBpGem.M>xegi[8r0#7ToqהPШ0s `^]&'Y< Z_L1? mɣp>=%32DxyU*͹l`6"WTψ9! ,nΟ]\5eU`cIqQRI hBdϪ9ȑn.va3!L>SP1T'RP>>kb#% d֥$ d 8\k93*GXR%aKQg|.sʻ96_Z-~խ&\39MGk#^RY#Bj+I*Q(u9 ?ucھՕ氃@H(0EXOW5کDDjR 9?S*_-2u- O+p&K3NZzK[T/t*m.Jӆ&!Rf]tC1 &7Q&JxSL^g%V Ϡ7_sPxzh˘M{. 8}ѿLb.#e#+톼zf{`_M&ֲ0{3U:Netjެ3'Om%|:kK`3M$ 7c*nK@P^"#ThڙCn8ɺTg24Lˊ3(*ڰq?Ig[8 YFȩ 4H;; <.c4 ] ` ܵd$R@< ,pzw"-{{BQ>I4ǃJrS~,r"u;{y 7T# 6"=1CiЈ kHpt`}Ui)Fyr惬i{3? IuJߴe7nK`"'! ĤMEX;L9VZzŤ8LӾ%wN°!y4Pmzꐪ-SV=  r2ES ;>u%EM{1=v2%'CʴɸPX*Hjp >lQAOdgsn@D1fJyvlE,0~y}@,{|-8wR3&Fbno!,17)_^$-]U4 ;s$i'$ t Oz >19/\(~69+pQv*ޖPLM-*-/ -4^(DijvR7X)H^u}\Ga!srS+׽_^7=LE$ҰĤ8[0IXu2g u" NՏ*jXqm1qSl[hU1GB&^THK:`0c`>\4͓n*{8O +ȟl>R˸Өd$2R.i5!LΫ`4(tMD2͕ l+'-6x}Py qޠҮ}K̋"GQhDSiGx)'+pgC[e`nQ  gJ*/chI z>~vП}5J:Pʿ"`vLw{ #ʖr=ALI-Mp%wP欞á |#shͷ< :脅n:-Go?@Tx^mTR$~(I)Z3͆M\;U]^rÒ$+qOo1i~~JUUKC(xoTyˆ  wHj+Ͳ;iH墘JUƈ3d F!i(:&HkKSdb޺"ӣ3 $ ~ϴ:?ϻPT#{ҁYaayhcC^3>f''d #Bi xoYL)OK7A1 "B^%%)J咴vvw~cfyp( Ă/[ ٻu T@ X`Ppv:  [7(XAo۸ooo:ŭޛc&gwd|.w#69G#e:)!y{aE[^ukRRm([޲͔븋\ݓN]\TN+i֋9\:W"qC/CI#h f_1CC0ݛ 1Ð \slU<y/ 7FZ sm:yJq83vnyUyz(N&UpW5MTFQjtUcx,԰.{sE*=b~-kSR[2tY~괌n!0 0K_ZU\b SL;Cu&g='b<w{d %|ӌv krYpӝHmہ K 'F(7 "0sŗlE7$[ⴕ"*_|F4UHG"P4]7 <}t/fۏvX\ILQ|`\R?~%o(7}^޳`m Zgc߯[Ul kɯQ=sv,<'jؐ1~1{!~>g~8b?Ic>7vT -[rFhHqn͚8A1Re1jfqP?n9|T` <.͑x7gX#YKq.U^Z]uW$frҋj OS^;(9UP$BKW nr3>ڍk׈x0f]>.{.7jf6TB`9dc 2rb-G9|߹p*Gװ1ةLxtS'f`Wd=9YbvMV9|?VAzI"ZؾN\%OP0k7-)Q]#?~rw^(zR5|CP*u#c疇2xOZclϙOSyBs ^:}<բj(dKiWn;巭5kx}{f0j5􃲎 Tǟb & r3B?[0y,M4wvW[i~ڀ پHRРMz!=N-b( lF@go8 bOfF/,wD% >XUx3-fJNrTbӌk't2gDކ%0TYǼ!>O@#嬪Q'' #G/8Mv=0o5Dj蚿7Y@r@KgC9ۢ66 I_덌a[1Yomr6.u;xv[郐XhB]how(ヅø]\ d&2+YuJ)]H< STqhXKs-չ=$?M[l}@6SP=_ uΔIIAn@84P5 =N[a5dvj=۞' v!'jE.#'rqs +$J@] M5sgtP{ehr + oiĢ\[YG7 ~MvN>kz iye:˰ OG+ Zfjj;n`#EbUZVs3.c+)W,&yNb1<# 2 &Ri֪љ'\IVZeG9w?J?~\N̥ CYmPK$YJ4R$"#\lNBDJZvBԉv*onZ u-)V ʃ@gss t9Z3{<(BX}rjzhQ,^=f qGx?;%fեB 9R+ 'V4vx}Zi5ѥHL w5 fs[{-cgjNoA:wRa5%~zzt<ӧ`:~wnuAsM??ooos~=`vHQ'/ų^dI{{Eفl|Vh0v+bQfc^a= Èuoh1l^ǯc^>]3.bs.6w@\Lyx.H öong!OlMo2/ g!d $]DMQz'A7S'7p6\xy"X]Z13մ㉏F~~;}ց4|Pi,ƿ /}]얝vTGv$qR O1H9l"v #*GIT r~)5p)b)zԪJkIzoiTR<6u|GgfO# }^jĖ`b1L|RB'LOvI D-J˨ d{\lTBjܟ UY# b.s_+5g J {/$"JRĵ7' lr^lcXC)|(8"!8$! /dvu^&YcvUd2\L)19FmXE0N9Lrr)+߬5L'c/.'`\eCu鍴?Mɩ1€ 4ecߋJkh5X8IY#Г PL& g›M]4@# r8Lq+L a@^nѤllsJs~i; P@ ycPw'hYZ.RF/{m܅im,|1 ͵\:0D(zobSB>licw}lmʔ"8G?ٰ6s9O@3$Jڨ\HAi[}U5S2uwT?tUQ{m=a03ʞoE`|peVG@iMc݉{ 79mwΉ"?wf^}4`'Ũt ݐʨfA#x]`>ĮyRMjm5=od)U MEpګ sS ;&mXQ")Gm7*l 4J|)-}!(sfֽeBLRTČdfzF]xNԘokhfn( MͯJIP-kndKζSh.3u{P&vd [??X͎#rS`JM$iJ9\?_^ouB1r`R~pU =g;%my>O\CMM:wA]jg?U [Ih* UȌ>(5<ԏ&ؐtBXRes"IXYƟ)CheEٓǏM§]aݞCK<_"M=ۓGߜ63SN[~Lr'+P)~dev)+͂jM6+3,BBE܃<,ql.qq);Eqo Y䊘/yW|p,"ǘyzNy"kN`$]A(c W`Z9:ߦYǔ .*M^ߞY]G5>Rw p[w,NFMĦTVJ[V-ALIC9,&QP @E(<p=#CXXAE?L0F0!/GO0?X(q2rX,\$^a; aDE[%#ݟ a7HɏA"MkWoi>y=K1vUNxDp8o" \1簅KGzZZ$S;w;c:#>voFי]%{= ic?L0S#,5/ ۜL~ "c^%&>ڹ{ƥu_s]QKhfq\;PJHV!{jR5i2wG(X$u K{=2Z'MG"\8R^lpŀz[nih1r+nhsP%/vݼp.3-`Iu\*%9:D_jiƃxI^RR~}%mZ8L аɹ(/fV="Fw:ek}ZC q55# [h9mֲTW.Cy7~abph(= R GqϾ};@Bj[|q8든&?4Zaɀ\NPn:qE+Bwj| _υ~J/ㄪx`'89]q ou[&4 ؁ !bvҔT5 "\q%oj!k ۶O(?b QW#(#?8 pr+.N7Ϙ4Qx옩]jr3jvlWӀoaYu:b'Ki?>=>3*d#8- 0%GZ&v,&56p&ǯٌb`\Y`R5*‘RDK[q]|7ab5C1WL %__/"bMK3{mHhQG-b\|PѱerDEQXomif8+adRTĻ.cbG[jvM0Aˆ1rc[Ns$HiD,`g4$c/Wutk6楁ُe :Ǽ͔i ȧ3dCom)٤PK[HeƧ7ͰfX^=<4rje\ٍ)G֘lDDg)cMwۨvq\])HpϢtzojh8űѶv&@Ufۻ26`u, 믹}8:q-9 ו;@jY-M+ 7Ks,uJ`=}q>:o󛪀ݥ3ZMB># e3fgtY;;5f!)PX 5zjZ C$-bG1ꋄHc%s=3Ϡ7r[v̤i^̊Em%&:8r.&‰bhrBa'O1Ȑ7v0(qkkl[8 k]S (~, H5ncmu߮vݬ%ek׶e20m0ϑYN~4 XY>2$`Wőbmr0TX ъʠh~ skm7N܋tm%`3)FuΎec[8=9ȥEE 3k[kqg".!d&.=iJb(`݀fq8y9f»oR0 cs e.HoożK: =Fy|-crcǃh,`xMs-S]8x^QdBJ \%i}Ua/0WVγzf04k~ςVN/jRwpl}뜴 E)-ǬK.dvޒf$OS®4ާ/GOO %Goh yyf#1I٦?B\N]CHy>1ʣ =>),Ubgˮ+Si՟mL0'ͻu:u`1ޖ1`6{ɥv5zڮӌW:_@p`&mKo#%k We9 YM(iUWxIq!pG5_'߃1`. ,d/ D]=mDLZwff%,UD&eTxq+`k~w6;7ft!w@-g K;ЮZ!dW0{s/7bw4')d"p)NG^B7ϠY}Dc*0ʾ31sx]gۏs'}m6uo9mWSǪgד$%{I D"55g_^Bpwp?M,͐[ux D\1^=Y~}4icLf܃}PTҵ@tjYc' bj|Aﻉ};I^_1dRO6aTswj; %D( $qa@PGdSS>>9 XI oWD4} ۿ4Q<Ca'E9`` E8%2?Oa ]FD]Q# ڃv/͏1AÛhr܏<󏋝?zHcRB0aFRrDb"\⢌ŁV Q?}@1!/M<ͨm+ڸu`}h}]LҘ<IҜp F }^oph@5\\_ϮyLMr;i=1$`>iSbdF$b M.YUf/@am?f銂cSɓd)=HU#ɥ*3F`sV8]!D2r8heaZ}ň`Τib:r`/}RatZe)5``08bJM+Y>|A7=C,r',# bN[l:!6Eu@;c+yK,9$F094nj*vّ?"7q@;eYA]DZ SkvS}_#|LaݎP(inJE0`¢Mɕ1lR%KΪE!MAhhJ4Ʌ הx!kز}ّN "i}Cfˤ8qR$KYWމҚck ݼ`HxJBg0*00‹(LHLyЊp3nL*i}$f6nb15}渇ҕ'xT!J%LڒF,uO(c*5j`P([:Hq3!Ύfu y;9_ UcTG+ƶ3tStH)mˤLwb1.θ}0:LɉNN@9V!o8(_AnE.@TuP b|K06Jhm\nƍ 0Fٹ[ YX/K m& ~m[ړVQvbh],WYw X^T)TՌq_5x9@?ER\}!Q,R,AJ jUŷy~rƛRbDrv |-k {eME}Ūbl7*Aأ\]-|/HU^IߘEtIjX(nR d8񲥆+9Ɩ3,>aUM 6;Xgt2 ~nLFe?n()QVج4i${Ĵm @U`:=2CH%ʵg{*&HN^H֮fњnaˢ2|\z͖E١}gw"Qh*%蒄9;}|pQxiQ}u K W=OY56.q5ESU~# vT CJwZu^;!ӧB^[bQj8W8]B-غ0R`nmi ~޵0G?yktjP~8/qj;`Z{FPK@e=1)XсVW+nuvola/128x128/filesystems/folder_sound.pngUT xZAPQux E 4?2%l.)s)ln(n.aiK ӍR ٘[KR >l{|w^ﳝyyGD#e:2(~0mAP mGe4X>i:]!BaY++iPa4wEyTfEԋֲ%dL2K OtbOAeea7R_mR߼`4Ճ@qh(eTq \oGQy}s-ihW m'ssr&2ۣ$>BZ{D;i2|vLg#nF:LS8ͥkHM$f@ULbl|ۏ_&&ܖ]obVp^l8֓%LYNp K ~d59r  n=oxo12@T7Gwj0nuHMvyg髊=L.u ?w8rA(&yW44Bu߁ċJl(,0RS7͂̊!_hQPPxa5Pl|Z'\0#qUU*\[}P)m}')*=֠*2N%O7mfɔ!5es/FOIMAA ˳bd cH8᱋fpfȐw9_͸ɭ U  EݵH%/2ҷp!#zzн1D+OD4/p)by.!wU0G"3aF"l0TLq{-:r(}P Oc&ƒOMl۷/ aETMbH**RGWEZ<ت5KVI[G:$!:]I$?{p XK HtHk>G*JOȗU>Xƽ*24!Ydŋ2V*l_/fpqLVayuu;hjk-~݌{-1 xPkg{nxCKK +?_9Wә;}jsVB$7)"͛)|O(|+~>WPդ$$G3|EY_xF0uBݴMKP0nu tAYѳ0?O>-eWD?08k~=\,N~7٭[keN lUPR*/GX\̌s@C]ZVPA5G8CƩ drHrzSJ7=Qj# |}7Q dv_<Ǻt/R,?oeYcBa6{w1k/2誥\nvmF$u`*j|Sl>9΋4rr4Ô-!,4.KOem8L^C`a6w1_@ێBoʂe@"MnY@)`0ȧNiHCHڇֹj0Tu6nٵC:fN)ZјV4Ӗ*pDQ ^8ŧV|m'sJYOg`Ĵg{ |nΝ<"m#֣-tE^3f ^$0ȋM&jAg4|b)}021SHY >`QGGel\ԦRbÁ: ]Bz@e'h!Z]ͣ߾(xCjɉX.*M~u^4\fU'tNEI3 c_`y @%/Cq]3-.pT? K#sO!ljZDa cV<9|Ҋ!aLq$,|MA5DҾCg/bB`=t\bšQ  W#yoP`msۇC7"BATe"`/#rP_gc^zY|RrT&8 c钙^K:㝊-㣖 i (6F{q$^Sfr7>%uMW46Sm&H1? |%kvRJ@o?Eq'E'J@#U,0 [EFhZXw "{FGukxtYgHD7Ŧ@j?:#KSo&Z&&,RT<,R;.p1?G hqZih`?=7͛BQ?lcn5ק| KObѝ|qW X{' Zѩ ĊՃRfLLfqv~勲@HGieYX6|I}L KjFjJ\$QR*=ΣlIu_ͭ/ xxN7KRq枦;Ѳ ߣb88'PiiQGE 7h>/,q\+bdu'%&VϞx&G{sdˮ;):n[ROCagBFx!RꂲO:Uk{jb!9Ix^Wy3N6^v̀X>\=ItINTm)mIͅc%%J%s柯1_>{%DT>۫spqj& & xzwINEuIWz[r?v<2w&S:S.1=w:C}*vrRMN*8kuSsk=& mϷ4}mѯ! ZިLV7,U"3PJ}]ե+}jps>tCqꭾ̑mG64^ȋa-<6_ɋ~S^3ݏy vnL+jW=8z?BzV#8(c[m|BW_.=\ҪmUTt6!OUg9 g=9XvZzN  >g}TM2ai>dmk{?G8 ,*:sVzp1Y TôQ ,ed\r4"woV 3ís0s,aR:yO&YZ2>2 \ˬ^P{OeX~>bG ar(m ]>K~mf V/\D9D왝߽We#w{$MYeHv}5+/ Pk$0M˻7hi(NI8}i7.,ooDsmkkx4qꈅ]ʁ HX۰ zVE qccj#*s9{MM_(3.IugCy4*{ߺ}1b0-99U lԶu*XL0d\a]AV^l-m EmqVOIE&ǡ=ZH>fd^vn>MDQ巨:3 FֶFANʵ<)Z 荃?a:p 6>˶)w%o>B) $~NHSŠT صό y:Ur3a%o%T- BiB}ߚY;8PJ(Tfq,,K I5cS|R.nN\;qmcj75⿊bNaI:u=2 bEWf$Tu5^V!vr*;{GfO@~7Qi['3}xN R1xAn*8$tM@=6 )P;NiZd2XqJ9z/y P,!9:{+*ZaATI$͔gM/xMjk2&FQ~¥$:#97NVhۂpJzS'd1]~ΤA EwH}9t^GB=xj$j3Eȟ8pyЋh^ <;z'vx4OਭM+h$(pD6lPҹ"r18Yz"{e[G^h/";*QVy}aU!M@*Y4|&Kw3(`#xՂfBE!F}Y=3QlcaCgړMH^8!Ɂ?L9nJսmvVH|f>lt4%C2AlHW'ZSa=O>D`syЮ"yhָVRU1㥧ޣ߇{pˏr]M8RXw3$M%k< HZGM|QZ4q5Ta<,|3߰d29֘n I4+pþmzrw%j45.WZq>*eBJs nLfV֌1M~L] ǻ-UQv~3=ʡYy*JZ K)mήAE!B#M֙<ӧObN@EcUƍ4ͭMjwAz ИVTpx.UD-+0# y|X%ځ@vàgʂOP}N4vt'N[iiA12xE8V ug%b C@{mHYŶb@d v{M /s8,ju֝4ѧ?a ,ϛdm=/EWQv<0,| Ɠ?lze^xC&.B+F $Wǒ2>AҟV{2x%mSJMܚ~v-Zv.et4(/ɗQկR_j7 gitɌz<b{JlLZ8BYf%.}ГȚs;Y?2#~`13XXjg^. I4gϴPxWm .ۀuʬЬX9WMvܵnԗEey\1]XPo?J=LNc]M?{޻ºEuQ^~ `OJZt$Ru ?h贠b yweWГU:F!1m}&K",+dH2qyh.2.X7q *Kn*-%?`>E`D`#[ۜ 9ǥ v v+fݵYB)D췮[e/鎦Pq>5›Dw괾44r:0[ņMQU?'rB4z6B!sSRA\D$|paP `H,DCf6+.!l <٦N{ΗA;ҿ]fޤN[؞?ikxW"H` #k3{S_(cr _`5{`8>2_sByq"ni*2Ǿ$/#U7΂/!SHr>1|Ϻs Њcj6PȂ=ȓes_M̀Jǭ`!+sUf%~ʓ::;DVzmV~sL9Y8siIpg*Û7U&\Td dw eo-ۆگ{1: Wz)+/|X1}HF6QO ^% xؕ.bs"O\t[UuD)QI(W60 ,ʩR qDTL=)`G5`ŢG*HG L{RmƔ#2Ta7ޢ2PjQ=tbOf}'Lb}X̣X!VH<`2´qh{՛J*؀o6L+E[DEdZ´a۟ 7jy"N\'=m8OP}eWPO;߰xr}:?}3LJN=[J`Z0k߫N1C?()׃I?cxra`0⁦.*WX[6%ZYfPɺ" |:tF9'g=_}ʏ0ԞT(&JEJI9i(YPZ)^FW!VfkqWrF.tճ`-I/*~㮇c+͂"C-;0 # =͐̓Qf置Y2-0D6_2Տ}IBH7'ͿQٿ-X1\2ҳ:ŌWkA5vx6q0l2e;VAdPJV3Cg 1-)U:x>Él1<ƯswECN?3s!;_YyH.>$#Ǒ7m|@ ^! T(U:ovfn7VC`3^Z:˼x)iV<+:mLW僧LԆ=zW8k-Y~+o%&ڦ&oڅ!$fz#˴V+(ݫRTKz2ދXJ._]}8& /h ߩfwQ|̈a|#) p~Ymƽ/L0ۼG2K:av_`fBv4z6#?=&F@+. }w؋wA/m֛6L`/0er:o .=%i50e}Zܟ?B'!~Dx XOM<}"dߌVZ#3%{L$Tv*~Wx:XX:,G8s%K]-L@v [%zˣ47}Ӕ&Q'Zב^ [:<\&޻X5lW6z;l~[l05t7sHYD8lmF7M?N7K.nZZ}&:7zWBi,](jTd@F)[GEoiz;ń#\. 1W0MB2 Ҽ̌U&=!΀ BA='jF;%B_DtŒ8B]o0%-1US]E;B,k(BC۱mu݉)/l~i#{Q3ɘ(q_jDߐ ~ :o"mVyR܎IKkC ޢ{ܱG]*+lY5^QXRBUOXDxՙjZy:Αw’D39H)Z-e5OC 7?JuZYiy ,cDݑ3x;v`Yg>IkBJ롗 5jO2l 4v~pu.F6 &i @N B#nQc<4bx)EŜD0,³з(v=({q{ߣzq xຂ%qZEt"+J>om;U h`2g-Գ̌OY4/Yn^O`^H.*cی" i!%8S^ً gaʾwvjY{(swhwnT?23P!'i+)r$lY:M4m4$p^BoGwh!z3рndLvI.<ʮ;C9߰]qi쯸{|]Z6XW=G^ͺ#BS՘|9{c:mJ. ʏl07q7Ts7 pA;[ĵQ x*^XO@>! hjS$mm) !:/ЩJc>MaŞSCbM+ńq.W RQ ,)B>7G0.i2!w ts l\ɘn%%/4 ns/ax]pݮ:w׬K|Q`{y@rP 8$5-5{J]?T_H䬟,VvEfvn.ehz U^NQ^Q,˓vo[Y'ǻ~cRIzxx_1@D>\d`Q)Ey7+uedm'5'>(Gv8F]{ؓve%~D HgERB]ɞ洁"%_w/pe؝F=:\ *H%B7ڠק=aT5fWz>Q$/|uD+) ?U؂ wس CgEXŏHWj[3zRzi.vcP94rUDc# ڌ,H!hx)dLej)Y#󬌎ޠ~ ЀSfj+t-R,M"@.^Myig$7_DϏ{#!#EDZ_72[ϫg?_Fq6$1Y􁸀G2Ojm^slS9#߭~G3 2OI2/~ Xʎl' -מ+*|}*uz妶l5ZkZtD蚈V(dP=yj*^&Ч!3$T߰8]r6ec~Q ^`>ZA0i7(Dp…$$ UBc'\h|bT޽H[R ,8j*َMlS|d*nmoQfK6`)SVq"½dF4vNب$\q}SqNDS{"uc_ɌM>&.`wᴅYoqlsHW[օ|dOpV^m-w^)ц{O6~|˰cŢ0gO~ 4zϔ 5 npkyQE.=jJf ы8ϳ xg ү&&NS[wִD*1O/D<KnLǾ:ti^Eȉ6CvLShȧyHǘG--mє.}у}tW&3SEpoىYަdܚXND:R v pR=b_FW l $8.HZB<\헗L>n {%u&'$;4ذ>ԾoBHY΍0:$00c?sϮDU`[=7sD @k!y#h!Vud*cu`G,2 /uX4ކ\Se,ߨ0IL6pܯܯ-8~y8'5y"S9jo$Κ$JJsWVNƐn2qUe)\E57|,/d{/@0 _J4qj'G+E:(KH ?=\)Ra,J-c]ީLQ/%s0BaR 0m*qH>wGC>37G6d#1/nI4c3^fU+mt:ArUR"a#1n0%” B@VA 혙\UY9)?v":ydՑ44y6ZMn>8SH~m"k~'=7\f 7d^ )Al~E pTPY>3;U b]m- DRS>!7]F((܆w/(x38!oqQ=Q봏 uR^斖I TE^O3]h"3Ʋ-+wǥ٨[(jw&6o}^_3+q@j)f k|w.{uvmY:{{s/ns>\D/9z4_ގ/.ftќb}Y[g9,^<5M84&ZxT G l!GU^m" KitGE /tƸ$ߕx9xǑ4p[USn酯W|OV*J}eTU\T3ϱaŘԴq}vN[JM|ju\gxXqA򃫴W!K +x{:ۡ#^ OLrZ$c3%廔z'[D7hʿפF[:Ď[.܃㣋'^w;[%9l]a;$ޜeǥ~'F o&A#wr151VU+46eQg(رѡn''四^+J/өdqeR;ҡsL;c]y5{miA2(ȗ /gfKl8)8nm0v OpNo&Bzv]>@[:8ST.e1E%7iȪ>wOoл]G /5]0=. x WV,{We\'>2 헚̙Gk1o3`m4'G9m?5;=+#㪅ʇWJ],>St43Rv2a\WPl >tWfmyݼܗU' &=~s{K~ZDXx' [#kI'ǟxB u vs]Aq‹hS([l.>=t8jvJNk،&_o <'V  (o۷j|KgkW}?o_.)kf|:,cƑ ؃Mnk>}&71[:Uf_ێN>%@'Y8*=:I]ڮo$6#Zv$#Ʌqv.F\H5Rq{ϋ1.S"[K~jLV"Mg/+F~U\wk/ů<3GUOGW~cklH?{Dٵ]"Y@m 7}9Q`oMf[↓{#O=~O/8K|yp+4b7+0脮DVr_WZͻj~86+U_x(Skg1۶YӼ[.V ePvח;) ]oLH9y96|yЈ7'rG9-az]z[{pZqMߕ:{ qŒ7VJ"D0w(Su%Ae]&wua"oȜF!`_|q)m4: XtmV2.A/es-ԓ24b?-Ϟ][/u ?}#7ÿ/FcR8'n_ 1H@ߴ:mg \9eC1)/)G1G\nׇi&R'W*@gꗵ)͢ ZtXթ>7}ːI>\ieķo )$B@՛ײ܀:yKd\|?)V 96TɁd`¬v"( yZ?%V8Tn 0!%lF6q Gl~ D5#PLB]c\n 9:y7[ί͝h)o(lSg+jX'AIRس ~* C>&=΁} y,)lrsmfu:v+'񪓺F'=,k6y`! &8hON=Qhďv@*~%_x;|`?x9V!4)ЪG3wug S-,>]޿o8DWT zxR=rR2NKj[h0ݗ"Khmn^Ybz߾=5_#v1r>1z]W?.:Pl>ՙR;ه:ްxlUs'cd~|^QK#?1/xĹ}ua+AJ.Jdo}HNs#lqHHpTuJнW&~Im*o3 6To8wNMy)]nj&sW*9dGj*Ȫή>h.Nw.oQJXq?nqF$#ѻPՕ|CRum} snuί+N<5C{j}bædv;}]?aIڻ"l70#O#/rzQĝK% ^$'!5:W.-ٱ1*o؅]N ,Н?As EU|BhU*CWmW˛G/q+xŘZ =n-tX*R0tf[i?W|p"_ONڿXofˎx%J9y܍='v;^>4TyHGr7nĆÌ^kbt>V>+z{ef}RAZ_#=}rN)zcf'sأXnx]2Kcp/D阇¦bWD Ӎ>Ar.B(RYZE*0}x+DYKśץHL->Cκpu ]jr?^,^߰\xWA#UsnBEEנ>C @TJk)Α :/qgfP2ROC`f[ز?&^uDֻ!oeĐ?YH 2H Ӻ4Dk^H%hnY$p%7Z#)☸/%e['4-~O؊S<1"Ґg e H\[oOdz 00iMˈ P˓*s~`s/fOW i 8N zGdjy#t2f@snq{Ҁu}hJ"˜7VR@zvX76 VM "D$ćH3X4:ZijzF Œ;u-5u>YY0(@l MIVus'>kڼ167|gKS ˛x0Idk%L)B/ T)t 8/u%2bnJ NRw0YD1cK6@nKg™UzPuś(7ࣜP:iZ@٣_;`wSnwlߧպХ/짳'm)j4|{<1|R:1`U99LZȫJ8VC 6Xd)WhSᤃ{wwp25Lϝ!4yAcTDAB{J8l}Me@M(dxB$gOTS){Rw =!,DvBxx5G1DLU’ 7;~dQ}^[4Q!VNj.Y|vLlIwYmbkU@Ǡ,Cuؾkevvv,D9Nx/\{3h{ыe]@ISXĈYSq;_R&=؋! 2|Yt/1t,{jxY7Sky{e$4Q+Dpɡ(3r$腓C1k~@GҠ;a(rZ -dsR$u(%/3)Wb;zVEl?eZq! LD $q# b\?({P5YzտbV?P#WLXeш4 *m|5$K˭7NDޓ/HVU40:aXiߏ!@^SNZ%lsG4&_j#FS$wjB}X5oI H_3V?\thp]iB6E [Z㝣-e-m b/V87-?L!r +A2t$! ņ"ӘV~MKV3 `;:i/^ Eg/ګG5&0_e 䬙iN?@Xl{"8"$S.ݪxP#NmA!OQ-"D>`B tVftFXbɄާV > < [2w$c;:B_#7F ?;JefEEA&:.ݾMsX̶2~p㛷kaxWFQ֑j6F]T[xHIQGc^0B+hHsFnq*gk_![4Ԝ8@e!)zD%'&ɉZbYɐ>,xm?7-{C7|sZM76H]022iImb%*Ttˎְ *Ύe(vu/br5eWW?Lq`=̴ 9%a|XP{⣕a`ˣT,ugY Kzy8~ :x5tcCĕq+cvwIЧ j ׺䅍 -DsշXh lXܔ #X,*?[]a3,\p{w֟U5zGhoθσ$` iQI9YrHQSM楍Jf`&qҥ휒a} o[vqRUVq-k%-mjrᏂ 6ڨN 'htjLtc%5 *mEi[[IꍞTxF ;={X6 $(|> h({L7 K*#>Q1>P76)U~ xHs` )bf; QHV>c(f} bGR雷-klA&Bڸj*NX`dܩU&햘Z4~_YqCg#H:tUMAefcs5y2W 6xO\DyptW7Y^}ŹOr^ָ(+E[z^2~qĊF$rsVV4rE{Q5ˉcފ(e%;!H9(̦3˫g-:/KS*ǣbGS1>eY%G i_k: 懞,xf€A;JBC ZhͯBC7qM̷-1]]:KF=RTV6H9)j#ruvQ"9p|'0B\; tjٯulg-&oQ'`k m7rه7Gpɷ#ܖYZO4r !(* 92b/G!fDpds2A+5E27Qp"@\`E餙{(>Q/L 3I!NμhScXӏ`=^͌O{_/.>%D+u+cкn,8+> iQNWKBD`ѣ#T9jY6yF%SԚCy:Ӕ;~d`fl)ߘ&5&|5Qo>T|Dj=G~ә_f7;▰x?3vD K8zQ>~x h=>M۽st%h} Zq8q |Nv\g d Nfhr4]:AGa,XSѥr^ʀpd ܒ4?sRu[]_%# pp_= SwbnBښUm mmDZAoX)jE.ֶI?߿`މ7\(@44tHҽk'y>JK1j`T㯀> J+%Yz^iW(%6q[PYUw>)_ jyF/D.ʀ9]^}GRؤ$G!`]{ǔa QN(/oU{vpxPKڕ=15ؼ"MN)nuvola/128x128/filesystems/folder_tar.pngUT ZAPQux 5|{l;?q>|^,m({l64rƷcsSRgb.ϨAQ1J@_ aξy{(bAܤ{ 腎Lj(4UxO7  E&HhjW-RTz)0mIX5+8P(&ʯI#Es@ؾ#wn٧fTKo׋ 8\S]=y0̇\vr6W*_)AAAt:yĎd9_vVőJ2.Gb\]|蟃s}>1ވ䘹Dt7e8pjn1^Nh GX#|lnͥx9?^aLücԛ^PN% Ne--O-cfknY4SN~cxqqF&5\40#+3MG Æj!>h:&_/∤i܃}If_+D`pɎt3S?\.}qlg:yS9‚(fe ''QkW%tIġDBdzYYG?Uǚ37'l>i6v@*++념1cЫ! 5XUH@ff^#՟c{Pqbe qR?ާ+*>ZTٚ1sr$akU]uPp8S*|8P(ӟV;pDjQD~IXqh-Y1|Xo.6Pf'g[q5WYOLRI9CЌa-zy5D&5h==髁#G~_4`ˡW0Pu %^9zB?rvHХ!-tg#Ac1??&iQ;߉ j:߿xBl"CwWG0E ltb/{{fV>QZwq2So; bTPܴVzDr?+n՝](m9s#r{ Hf21 q9ZQO?2vbģX D0g6 )%EBk:ݷPe>{+ Fӯ\iѤn@(0KJg϶0kkѱDgB(F)Aun~i.| oYٳ4NcPhɞ!=ΊM}JpŔUkeqʒ#b曄 ~<.G]$ <9P:nnw0 b0Uٿ%MX9rWfܱ# JS<|vixcme9OQtSjtBi飰NP(H-UT͚ _[a˅'! ZѺh% t gn~qȰlGq{+#--n~L$vn&Z wp ;Y>b?_ga|Ҝ(CR8m~&%ŎܶsHFC@ܾru 13̑ARshd_3Tݯ )_޳ ۇ|} =$6L~&ǝ\RbdB-JY =I4ѽr稲u6o''-quƠ}=,a_T@`|X /*Jt i/`hԝq}tgl,G5#{t()obB=e"[2d4UU0vahf>wr/X-룽 24:fPUK+4ښi&5`O:.7H UEz[!!ar=6H?=a;wc! _{ьz]'H Ҭ }bVL6$^3$>m'[?rZ5Q՗iG߂ ò@&qΪ"$FŸϏ1I;]&2)nBC:pOIPie4,Z^)a:Y> =O$bm;;9֏]m[ˣCŘ#ʼn92#@IWQZ *Q'U)%8 @ţmJ} 7Bؕ FLD/\]snz%c)r8HZPyfԙtcpڮ洞?Ǖ Nęw"X4?S*ȐE23 ~ Tsźi Of t'^5]ゎo^tGϼv}%3}u^[ }4c~9/ڽ!Rއ(?m į\0^kg$9[4gH 21R%Y#5~疯Sa=t޶M~̼mN;Efk9BFHS6ms|[wZ3L쌏Y͈ GSWE"c̘ى(V#Mqr<^AC堛-UG ^w^YE> ]K>X]{!y[e.7BדׂtVȭ_;o?SԩB{EpFpcZS<M JJo C,ABBaޕ'oLK[X ~{d||6_TƄ~+ddb e!d{oV;[x"WHEMKCLtw2 BvI3e٣ؙ_H{v`I夿OmAYB©pciuitvhyj>hLSzȌ Pmi77 b;UuFn+̟fT5 !p9E-je\roj(Rϡn+Ջ'QE7r @g PES#&ۑ #^*'3Y4eӆ#4Tn; n^ѥ!UQ諏#īSC-g#:J1_:s Y$5#!p׿{S&I:4P1V anUrnNX_VnwY}*Դ/f(Z$!j }2FoH %K{&~*x3ݰ󻷛ZöcxOp̿WZYǫF<9>qoW!ģO ’^< 뱪*=9c !Ak6=9sm;g:|!ʦh eQ| j>~{\o9}qkԯ$YSgJJU' ͝o`R4~>{t痰nqEz|hL>Sx6mvo_=$~hi؛clpg8ik+38Z/ٗwtolݡ Y^݁DWXs,,@-}ܿ_VߍYAR7e͢nn ;7CVtv)6e8.1 T]_ZC{^^`y~lr-?,9V"dF AKӴiZZ,̼.n~*"Ok'N Qi 0SfVnMr1_<_o8OЍP[vk̳r}sB[=NNuU4VCh,]+U[$=[!Z9vv TF7lG82P+6bd`U&O )h}: l~_`y"q:C\#6Vmͤ}E(f.¨ա8tjq~E?6{\ix\?F!;_gkzV[-U쭘o!_`[C&ZV7~z(Jݖ׃3>vE}OЕz[mgSrZ~`n(<c ~XvJ":qU~7Y 9O[!k3Ҩ%Ru?`'͚=}_*g;O$_'U8?r15ɬrX6e8$֡Oݓ&xlUXҡ!c Xٓ-7;okg9+I靭bg,ԑY?s6Z%3Ä~y1 [ 4ҳ<)8֝8X|_aOA 6=3¿RPpL8.y%#SM[/->|O&rj} U;;aY;dhYslnyJ$aĵpޝ:HYْ[K)bI9$E7ڠkmW/ {qhq{{M~MSo^WZO#n5+K@#R *Fsڄ<{ _Y SYsk3:~\.4_pqĽ?JҶeyy>8<ρsnjJ,[o/j.>N/U95ڞv{4^T۰)]Q[Bs ~~nS<2$P\,E]E$c鋤UGEش4BƲ=K{r@ ͢BъsBA&w8s& : X굉@S$GH6 ɡBysd$K? X[nJMX^GL$pߪ|lJ#{ "r8ŶS> 5̐.Սѽv^:Q܎@EΩ=fvbVd)hJ5ZDXLDw}/L8ݨ9;NZ|z?!J5 WlKI}ͽsgE pܪ_|:.am%oc< $wb@VZ,gjM*S4jh uxpkL?0wq 7~('o~ڿM[Q1 4= }J aY|pS*Ow%EMѿ`=&kTZ]Xx2Bw8 _+V] E"Uen͌NOD=EqAN)fLpRf|*V#=Ǎ;rhjǮ[b=6Mojv"Ps4K#'+ 4(o-Bo ו|G7־]So p._"VlF\tRtTbH͔ _T2mj=E&^v٧/?=s{NaWxRϟdؔl_'G8c?9̉aOl<9I`fe%MhIu ӣf\z݉/@C/GoH8- w4ӕGQ_ނ}"x  w~Y$'Ew]_]d)xZ0"p1Fh|BT*.&]zKJ=Ca> sR0*[9Zڴ9]ֿg\"Վ8~;b!pß&ahrLPNAGn#ԠɔG;.Oxg#vBِן Aw̄PqΰӿO#e!9Z3,<~ q dt*;IJh~\|SR+ 4 rѢ  4Mc1`O (QCH~ês᪰/;1Y]DsT/pE?ihë6IAW(b8DRmRßM/#j4'UTOJ E ᜦ kwDHL*j `9ePLܯp=F4=VD!HGD8;ա!S۵gxrRO"d$lLb[;oz_r`{~`R0nД:GSF!AAA˰$=2F)܆N7)vR|4 ;} 9kڞGEVK*oT=}|H9\|z]ב3wL|ЛG5SO"th[ T{HZ'n9T~$}s|8fO/&֖S/tMx?keo ŽKzI߃/\3xYыRÏr?fR`@WۉHvT*ݏ_?xh+S+^10/KeYt#kI[(lLY&EFtc$GdJ偬NQȏmsWGwcHQ `򥭓P~p#G8CXtpP0oA(޴.= wRȱ̠S~X.~QTVAqqj9_d,/]Tl/z#a8*xUq5Ȉ;D#ݪD'q# 8ɶFP6 ajsrU']GU?-[XYclPP, < Y>XE:F$^_/ocʬӛ̝k$a{)^i'O-i,av@u6x ZUiVoBcm.lG #N.L+&ːD382}u{1"΁M,}1 dkn?z atgc0 2=30WOpDmE+}lh?>~N+4Q!7{|kykkbbVy%Iԃ'dF#>ܻ]uwߚgD$8td?xVKJ9D̎ƪL>`a3w'+%w}=|8~8EͮL0' E!]1{mc'acfGjfLwd\YY$4ܷ;l-.oQ_֔/Y'yZA?;შLq*wz!ڵ"r[5y(F]f%ϐ S3l\6dm=e8†ƋIˑޓD޺BnQƮKi72"V%qN(*bb ?@̬&3F@P Wr  Mtp'ėx0V=)c$&NEt LHDcLF@{CO݃•U)/d"/co0P!ҳ'14ێNG. S/.3AS5sӯɼ|ᇐ*03i HN'%a twiΓh̋w39lr$}A#r&_]:^2bqO:r5aY]©p?d+e Q%_Wn=c!.X.ӏ'bY5zUI8L各.Nll-k[Ťp*OwS $R^BηAvύf:-i4q5 C9=;.iSVna8B2GJ|efp7kn>/la(̑ت0I[PR^W}ON.\{iî_o+- u9,ykx~߉>ђ'†_DM]6~yVpvw۞&nϪM%Y aB4{qKqW Hv\}ȦH{FN ԨN(8&J\NYGb (-ᓫ7ҵ^ ' c7ykM8j"+i2D(}qm{rr ު8Jȥ=~Sqv6NG?z{0\BM v)9NsY,?mUfUNt]3mF瞋iҋv~@IMii;ð}B+t#N;aĮѸ&߰!(Z BwBd@4Ȥj_78Iy_p˹J=*K\VzoۚKctQGD18lz S3ٹ&༹jrdY._\:͐aXɑRHH{Lp3OQbݛsCY670)#pbit*=8' 0df$KzGy /TUdΘnh|qY p^ڥU74chd`|EMvT5/ea9/Pn@o`Q\7'nґZb '(n}.tiRѦҁ>s9 G.Cucy7md<ۖ .7ͯ"'s'۰J\C :PJS;DV!lhF6\7xo:=;aRA < v'ڞ"q8md_GH_6pݛt3温dCl5[٥7)/nf "#i.U2$RLH78u<57z`S?b>A_o(m U]"N&PMLFG$$^"hD!6Ig pcWB :}џ 1-þB9oݫ0МʇQhVC^ñ!'9*.0$Ѯ B'hB15h'6:’T7'VS+fdiܡG~ԣ~lNڑ`[v3l|j4}YQT g#V\zo:l"{M':Q ~}&j:e;*y*PGRv6ң$@&D!VSx6 3}~ŋO$R±/,gi"x]_wRs'D} I'>`G84 ~hRUx/_quPM 01fj-8LTUUb0{숟NI# حA,˳bZ݃|brlǜݒ5'gGU%8χybrw| QqEQY-uL hs_Zo>l>G,0CϤGSKI3^eݰi{ ?w˯`P/q]ÇrWskEfSﴋw\Wjeؔl|q[}"I9*'mga-~c27;(m/j73|[7/(HMD5G~ r |ڽS2m/=^5NvSkYK9~ P uʽ$بy}d .Z۞^@I czhAބkܾX5,ICib8acw0 47.ҏ7GKepgñPq+gM'6tdsUz{#=h {S^̐9 l!!ZSvS9 4{Lpf ;¢n'm"ۧ6g,0(v (R' |={&Ffsʵo[ ]9t!4ufݕUꏩ'0-KO-9i?$B- r J]#4kjO-' \iaOZm'B.dbDsB;C:)^B$7!nvgbO9Ͻ|W]aGn+V)tFp9X9ٜhf!LXB#*) _x͸=WHVTC=eCKzġ/ ti##mK%Ĝ%~_S'e?KeW*WGC0G)@i;!*HPi `nex.6*5dfqjukܙUm6U;OLD. vk ;Lrr9d3O'mI$nOఆQZD *džSCփ&rɡ441tLwr?YpSqz[c={u*fX dvp:+;[3&mݫURIv(Nc|Ur|B9}up|ֆudV\O"IMKٷH>(GDkR +NID6t3P*J#m!K,Dt|i.Ͻkdu**1`zxCӷj۸ї#Rs$wjE?vOLGNBj;} _&eB`\ҕrmt(oA9ސz&O?1zuBHC#yppAu$TsX->hV7["֘|]x.86|[Of0'D 4ER<3DO`!>EJ}w BrNt5C=2,>|!XQ^xGbl'-f+jVW+SUi FgWP›5⦓`hX?~w Il'zvǝ,4Ė&TqwayjT-7?  !$*u]X&[R)Y(~؍|LϔST|vkl>9l9ݭإh5n|QEb gAq$赿2-jJPwT;0$O G3Љ@ kDN[;z`_|.(zi*0WՆVYĊE>TI,vt#~YQ/#^͸?# +:TUZ9 $HJEFSFPFnЙMu죀\}nZ-]7'eՖ3hHޓT=wurUí}T&G4=3zmǭgaԜ/AiA*3^_/ITI7hRCBtB!|pCUM7b8'ܥP܌FDy6|"ܘrēֲbƊ!5UCe#$w6s8!FQb͊6TB aC 3 > N~@s a!.1#>a]cSצe8~Ugᦣ^;3x_ ZXUlا2ε}(^xX(hFgqbɠ/ qLYXDc˖FkgNNpLEvxX*Rxl{Sph&ե_2L!g.,#+ y3 c'ZY-C# '9?u"{{eyǧ=P ӿ#l#Ҝ8wА1P&U_lӄI2&OKF6O,|J?16E._Qq*#3Af0z|a7 #!@;{S (fZr0mV7a^菎-F6ͅ, )GBpO .@Od 5=Gb,VLЉ=N |ĭRlOކ%),=d'UlgYń60h 9[H~M48Y[:]3#= ш?\^ 1)^lz;r;Rkx@S?ڐJ5C6Xd`mDZ*LmD ۿ-D5Gcۗ0&ƊKnTC`Fq6P/Ob^%zBmDL78%6fāKx|s3􌼴|!ꊡ=Zt>/WP;7qJhTqDW9*t=h s3=w}uk-oemYMު̷`]i".Ft$pL~ĔOC;&Æ(c"Ysuz$ݓ%?ml'JYm0ti kh p#pbaX™k$S%Ů1,EjWn-L $6q #,O: u'v"Ȉtɀ"uwyyǯbxG(ږ`z.=q<bwsh7cq2"ތ<^5Ws"D8-pW@xӌji봘ea`:` V=fqLfb=dLȗ&dRN 鴨%.A~nF\s6ԋ10;~aBBh/= FM+#Ln+fӪ.Dd+b\eؚ$C@Ä gF6]Sr4k{EwRUm&tW^rqATvB{+bJ/0%.W%kLJ/'rP/ \FlPsO2b_SIU\^ߨ >ƷߴԛFꙚNB( *xvLqqvw4݈L,*Kz`$L㶟3tYd NOQ kxbwF.8E&W*C]`bGĒU@90CJ8cDLO@N'8) X#Gh8\L6F(7 I[sI!'v0~itGv :8y׎ ՎД<̜9^+DMY{% gMh$t+\k2/ho!ygeL#%Fu~jS?Dk =FBk o9а}Qs.T%\+U'?80P7f?YNkش}DavΡG>u"ܨ?>a4-+} gjyu&3vY^,\Mq{~h}V-A5{s|mA]S&aK؀LԇC<",9HT)% ({ue@ڡϽ/XPyHh%ۑxk_~iEsgj܁Qsb7)p jk4z}_.v̭*WF.Vo)F޷R\m,lHjTyl%qV 7 UPɸ%yɾژU)qߟcpAPn #엜 `)H(:9 Tنifi|ޠc;N*\ 'ŎJT|wٗ9]7m>*{"3ۛ$Wɉ[g)"=;%sG' `+uI_~-1\~bU NX240棔eWjMT1bzOs#/\;7\9݈gnrMbjpoc*If~Ȱ;L 3tPVh=q4`&W&EOeEuf #z. %"]Ȭ zp QR-@ oy͚wc/B44K}@~Za0,ri :94!ؽv߄`זP,l\@`xEVU|{B~+KyJ%3`(e2ߐZX䴕h'8h>}Hٷ{HNN!@}mO6k*qGZs V լ5:ϜC; D+m@w- s LN$Xᕤڸ6Lxxl>qWﮝq;GeR3^Lǘ{Ư_A iGȼߧO THq9֙ I;7N~ۄ$JXQ.$^[o@6ws?>et/K;ya Y<)  Qܴn,uʼf`8Hg    k\~oڊ}E0϶}A>IVcj;Fߓ}1/Z"W<%=b%`s|So;R$F{:h@r2 :);#>A7_1^Èj27 a#.,O[W^W_x ^?PfQ9c"ߑ$3#Dx~5K8v]l$$N㩯rghmJ0mxZpL%ᤵbXLصY?۳ 3p,Fu$m]/ =C1{ \ g2WCru?YK0;,dk^ϝONU8QQmOwFv I{n]nOPK7e=1_WY)nuvola/128x128/filesystems/folder_txt.pngUT jZAPQux -| 8{g1gӆBQ6! I'tIJI6P*tZ%QiNH6RӜmumϵ]=_~mg9>^UPkydwW@.? \ۗx$u#]~K䟸;6"Dp|8@ 'l9+<87wo!R$ ,uQwGA/{hPdP 脩Nh4wBWr˥)\O,Y(,k?TAI˒QbFš5 !mmd[O'@r'Җ_FaR.OO`y5њq*q kwtySȗ5{~h렆0޾=7!<(D "4򄥚|8ݩ1F~.O :{y)čo,13ƂAK?W 㝘͏N|h=Ƽz,%\3NY;4U1'=?k\zvtvvqEX{%CMcQtO|`p8o %bF@CsR')%ܜON՞W 6m(q`*\t67c{[{|)p9$-MP`_K&H}}}O91pz .WK|x_!L7Ƿ9vYU|W&G>^_ǧw%g/tݖ5X* y+$5if׿] H/eO:jgU' (\Ϭ@U1Xخz1"UTIPk KJJhw߾1X..S(U`iMy߾}_vM9W 9UP*(>B)C!{lq>V3"<:Ps48ѯq0 8^d"B##K(3ۋT0$_nǗwsdZՉ.bA^)069S`̷V+3'&ˁ4; Q1d5]hy/^/C{w=\1ndfU)]DD"l,ԥ* ) ¾r3DʣUPMA:-4a2SEeLt ^ЁbnxS{=omڙ&'ⴴ.2s~j%b#[)ϱ!|ҵ]nn܊^p9Ӯ-þ5\2<͎c`'<dR9#^s/}7O̕||'Gt+hRv *u9.rGZV6FJ"Fq }P9+0`XhHUFat~ etkĜ`*|:˲0x#^-V/IfȽ4+6 ƞՇY[cXUd+C'˫0XG6|m3((dh9U7L'3-_3"!%ѩ*BQ@; (?mL 2)_W剉e= ~5`F O/Zq?6DB|Rߔx LSX(RfGi$"GϏxC;+BtYrv5?=ahx  x[QZ:JCC9pm_ ]O<=^F䜚9?!T*XX9|_a+!Ş*#f{{cȃ\!釠T NB>ҳ{۶{ o/Y3?7|&Ȗy1ރ؞9ޤ[pmJ[yam˪ ~E504qP `eͽ e+,5]-}T1gˮ5r@YgNA)%HeL=C%r7$@8EJ`D]m2^9DA|d GdsDrژ{1hRx5;F gm5-_ߧ)EP.g͏Y ȯKA|,$#C?`@c$߽ 1#RgE,+@jz Frt?O Z ۤ7ݞ94؇ىԱJzMi7-Nyz6ۇ6.L_hp!ll%gA鼓y,4ya^`JtAzL]Syr/k:.M-`RB.(i~ߊ&g4(tfo˄:: @ M?7YF qI*[o1EUd3~s 2*;;}"D>bhTՐ᦭vIZZ^r靭?iuPZ)NPQ}sjg?ml;3$Pvu3 :үm3\,9IOXus6=0nXTH^q~܂}aS;xg6ioJyp8΋g?\q6g޿!G69[ʈF#ޭٗ(u֗aզSU.Z:Y;>t|$_ fwC+i &XwDa։_ׂs*6_&4`.`wIS4K0xpE7ҁֿ.? ~-]7_9NCrOyEknx +π+A>=t] 8KK>1A !_U3fV}Ҷ*kSjW-34g]x"sDtNJlLr( ~pdU8#5x`eu `iY]rSb~#9;ѿ\.=#tРO [;4A-J"p,a1O4Cn[ rҭ_sd:; fveP3 Mg/4"1\Nܿ{ԤF &pjڭL^[8a8#%NS|ADi3( -Ouh޼7v&͜]=aTS\IZщ O2eikbB9t!paҏ *[^e .>v y]*YcqR*=लvsqr'/[(iN&O]_4.zߤH"֊++.x'k `ǙS>]dhxEUiݓ6A?H?rه؇W n%9ߴ{0{Ȭ7qTr ;~|0K¡kw$Ϋ>:qMeL>< %wͅ+oUd-&ֵ?z\ Ѻ򠶋+yk"XOlvL̋G>)Rc3EVflHpWK'n7hj.= 3Pc|4C lWJrk'A{E݃wSk::v﮴e^ .Xح%~ίoihؙrͺ$˂'_!l߼2qjńSտk܋3޳o[_I #*_Ddsѕ^{; -lhe.:CNÑ:23spd4pkAwFAviXcz.kZ1(4[P!g%)AQz(]A>_6PqKSifwVƨ_0k{sVnEml9{yd{Ak^h\XWX2_!n"ު@"gh:2nPR(*EKR58kR΀6~Vݸ+V#Yƈ(~ĝuL|/0mN."ڴ?9k-T GjkᶛU9:8{$Su/9k9hXuQZ,$ C~]Q>~VH,^cW~#}Qч7ךLЎ|ws 2)OcbjZX"i ǹ˙30/K|N ⶢ]印 O!/nΡMn9Xn}z,D&>tK m k@~~F4VA)ld-BT әoglxf.a]M%LL:i ]!l4Af9ɬud2K$NU1duīb)̉I2P%vĒv>..LtvHͱHGK]8KQN4YKdւhѨSЦ!xQr=V83z{h`GoS{Y1-a|ⲭRD3ۍi!4J^XY'·6TS'/ ca1n Q [[=V?Eyn mޚn%"<~w PBڻ&$vqQ#s Rg3?UDfr%4&ʑ{|^o&w*-GST^ҹ pqi:n'y,F"{XZ9& 0S d< [*k͏-a=7< tat>{"|%-hk[22 V_?x]+=Of٧eb%bjĜaMo\eZp5>"ѠtxRJv$"L@0[ފ:l`lS2"ڳs *yx)*TGW!Po2$KkRfr)ktЖA?Zݣngx!dVSTZN9k {jOLz 4dϵBP%w]i#i1z[AVBI~c# Dur..lqz#e [RO7ה$VV$nG%!>Cjw(Aih s ,eJGڎ>SEƞ4nk}MsȄ,y'vAsc^j(ؽYQ$#W 5v|LDf)^xC.q7U?i7[qZGA;`\_ɘӻŗGbϳ!I=h3rQ$gXh`)QSTc\?5fQ`9.ZQJN92:!8}yCOh"ed~6~˵*B&qKg:Π2ŧaK 9ʠm` ]R?h 2zϫ"s<>RjL G2`zdd~d[eCR#a-Jfuŗ% G/.-ז!`X}C:pI䃝} 0Մn(|XڵBB~t;nY4>Ng.BG[ܧȶq,5* d ja4?oP `6ޚOϨ@ ؽR-sD.jNOЖpNYmkv1 o>х }08|)%uw˒XL~pb&ōܜD*}晐8I~H/m;]!BA=6\oޣl$22i{E _boEzʩ[Nߓز8pb1`ZbX~V׫V0I!$(_~'{Y"#h&c&O?[d3%ysn?(+j/Rڕz_z&Q$q$7rI(\Y"k[ZgJ1s(FWt@@]'9XǥK~jMK8DRb 6x) \~ $m1|oT 6~|򛳷 #nwJe73 A|-e;mt]^/6.2-"R}VA˨I, f-ﺮxtf‰4j$MdibZ8>ؘy 9ȩ24AK'66mĸ)e-olPZWSa dY7ԯvQk;99i?n1a/.m<Ǘ]tتtzl^}[y+%=%r A$~3Ka<$W?|,$w'O2"hp5TsѶ)؂h俎uہvs>YvvPyxosӮ0Χ+6s wJlۆCUdo&Hٹb[$}c?JXz ՜\ k4hjL 1]wiJʷ171?6YaqhƃφV>82A* ZV+|uSlV6+w?jYXʻ4?7QljDL3j4X)FveU|gɻ`A^69G}` D}y7z'Ԙ3i?kZYh]4*wCI$G.2H'6Ί'WvhNJ? }wOHV ,7 9>I?(R̂MzHƠ"ﳼ ,3ga d~{g!KqaBbyiqi 1?;h޾U6? 3N] ,b3K{=k˼ ޯIN+:uu!ll,<̈CI gIqʌ kW\nࡳ?AW{ Dk㊹Ef|:}a_0CK91E 5_ٺ8,$*gWp 6I 36 y1C7),`9F NaX~0[~;OryY e..u I\vu9C=ֿv6ٽpkֿi`P ؠ:XT fhXc+oZf{J l(i4S5 &h/G*ΛYE,#Bhgwl'0_ _?"~huZ!+JKsĩ`;aH5!j-MwwDcq򕥂DpMI4`A.RDwIy`pHtn/歕ܦ_P^2g~NpI ;p{eC \"$K 8|um!`|[ng3ŗ> VfQ$fT}.r DQ6Za{tƭOcZc,-7AP‚2WP9Eؼj+i<41wFAZx:7;gBhҷọ|E6ȡ[`aM5qO71{ٻOdzJL9oI/ xl* dIP_I˶ !2Zߨug\&gD$22}i Ajbi)߭JUC GSمOGuF>Ni.A~A<ڃZ/bE)*d.O.0A;DKK&M7oGXp/oΜ=gCQZ3f+@VzQ5neʐ)Me&u[ k3u)N !8088YvAbii3f{.@$b) ` >Eģ?f'!g=PG4Ư{KRݯ\U.XSUpqțknE})!r^t AV a@_WggHpnQHRd2ȪO*,ZnW9̅ O3d/\f2 2ޓ̞`Lʆ''t'HCURe/Y@^ٳ^}9 R.[5)R0r9eQ*1 ת䥞<=ݥ+\و"+:Rxla0:I'߱G.EH w]7F.M֌ӛ`~={%E댂njrohKrlB|fSrK*Qn_0=^yɐVJ . CsP"ل 9ՠ]71%3|U.燆3@eo ,w91Ro oㇾ9 [4+ i;ܘ}?2LGg읣p[V& 2p_M~k,ȇmḁ-L_-l>߆zhY,~2V/3T 3}ɢa 5e5lъ|Rټ8~,ESz W3!7RT+ Tzw`3U*Q],~XZ`:炖#/ѱ VSgBt?o]^uʈ 8T9?㱻. x~؅DfZY+GPc::a6R7f9f=8@EݧS~AN׍|:b@{FP9.i! /eϼѻsn}ݱ .އ[lPW6h~bR" zq7.>ͰlƷ6YazyOkZs3!Evc[ -wħKP[^$q: $KOI} JSObmdԈհ"]1Mh&i.;@23Qg{z ɴtC3- u|}qL۹Ji<\-5:,B_7| U)j$W G,G5_[;@c"?#$i>,$0r92.F2a| \ypzLɥgJtueۉYJȦF Gꝏ'^#C]iԭh~bE;c+cBA)3s_wVi&nF(VCTͥಳN'<<$DPG\h1kS=Rdc9C \ i!1RYV~Z.~_F_ܼvu]VUS9Z OAnd@  O3/RL %haf5@$U-AC=ZDM%Ƨ zlhMwx4$GվdmRߧ6Χ0vئ%("Ul; `5kf1FȽ1|#\sY24DՆ K*/(>S\+"%!40wƊe^콓LRy͉%Ԉi}Òf ?΀5W"Ohi7Aq'ZGWJQ 6b, w7K(! VKGf>UKvevNeo|fxuUl6{0ZIQb*r,t]LsGA M\č`o]faf$6(4+>*SIùn$;XZ<%"&Ի6mګf£îbESek8x?,,8C߄P? uz^O9*<Ҽ&:WFg$"Nr~$ةG~Q1 1M<4粳&=t첷xIYuď7tƎ+L\ p*{(v*Oh;iYf`VuKPFCO͹UdZ`сhaNX&(r3p5<4P?ٮzW 8"IQv*88kXlD)[c y$CN#mo2c)?/ƓDzFv}a(q~;%ʾv!_p*z|_ m%gSh`$/l-tgyu|~|@hpaۓ<tV..p3d?͗8D}s10C69S}(A,d{Zv4]ĦEФȦ rFb_-:C\0#)K*pȤ>KLs<.~b*h5f^ݳ36~8ENmJyl ?f%[n@ēL`/T4#{#Ʋuzq=]Mvn^mWA*3t?*>?@Wz_xȕ>KҖxQ1X-qe=ȷ-hۋaoM#mMT˗Sz -`E9l6ѥ$]0WIOisvU0&{WND˨=*{"KZ{|܎hLl;u/)\zĚD,=𰋺CfD|\Y@,'Y'OjWgz?R) (~4jR>M npK5g]be6,)03hƪ!7 JyÛ oveAA?q9qS|tȬΨG_Q() i0c$^uM![bB c2oOƆc-^{*#˱^/w›hwڛ hQXmT/1mQ Dz-\U<}ፂ@MZRETG}E?m9Wl ZhF}/2^\P>מG;{eB傸Z휊&/M* !q r6'q4&e!ͯ-%ؠ98+WAq䊂̇^$`VU|8mmDKp.G$Ip)9Rq3rǎ}Sm{Ep$S92*:9t┵7N$갽+l\(VNScDE2}4 ?.~ʕhiFK}7 3SIv3'`~2SԀM;H$>@?߷24.21IǝNk:tmܠ$u!~'$^%~hTtp5P=ao]3' >WV˪Ƿ9gԋC]|NhF_;7֖e`ahtc%` WCRAy7D;?Y'(n3J=12lPPj+yLz8~Q$?4;oax[r V'֩P3;uYQEWx\ !kv\}umXgwEk!H@חly~u p`ٮwSa$5W}tؽ3Wnz<mo}CsIoQ zxXbEXnR*n= kn$zfyO6B۲BsV>RN3j#g38*@$qʱNOc(r`i5((yJk[15B[,V8>G).'Dv·oQŦ쀗72o(s{Ar<ՅrYLg 88LYftvhB꺾S{Fޓ}' X7 Ꮫi |V`E6!&sl,3͙[tߎ&3 ^Zqi2v[;I"AȈS1ϸlăڂ~Ӧ(VC릪[ &XI+;b,w';!"DyJ>&/aUcGOe{}[nr<96H aHBYՎ~>51K6P%WώctFosm3wQ[qZjqsBӪǖ, Ϡ=L8(O?&{d:pcg1&Z96LXl_G^vc*N}Oѯ^I<..z"I)V0 `(̆FP@*f1Ī''t.0!erwz@ʨw'ٝ&\z\6U|d433,~ϼ&Fi;zEk@ R3&p:޾hlŸ5=9Bdikm#M=O[Hݱe]whL*~F6٘W>F5(guk}yY(=R!}?B/Z4*1 1m<#~R &OҔ+rdCSƥͷOPS~Xd8}/YcfYjF gn> GTX;AHcS&\/3P*ȓ<؏(۝ۥ D[DrvOum?q1gΘ,`Aߨ"٭b.i/KJ2Ix4o# 8vR_(S! "\>e>_%ѭ*0~ٽXpM>_s콬RzqVOk2_W'Vn'lvr:qw&H quiDmt7>Kч3ng0v=/Ve=7eC4;t_Tm^7f]JfuNְZ8~'oM`[*grj=؝!UW>P=C+؆X\r;[B]>x}<YB$˾!ޡfN L9e=SCV _DaݶO< m%*.p>*ErK Nn:*Xիt& @|jmSwXKa5o㭝Hjv:Bj i%MJ%o8 k8kj}ptĚ }Uq?N_<U5$Ӏ!J`.+&ƋkzE䗙esK w|έGL`M} &[+mT@^-3-]<`ElT M\ëےڦk~RIA#e~wU\Qrbfu+Pud~i-v~Ȉ)#atj+e* !A|b%DSfTrAKA _!J) ,lh\7a:;?Ykl@Jg/K"KCXgmӨ.ܹ \I;:H&i5}-6_ϻ)Wew1 騏"JRV&5yZ/%D_nH8uOExEq:8c rF/cL\>>Ƶ.0ּbJo7{{X4pak}zok yܩ_F׏q%P`|rFދ-CȚ^㹅.:{GK}nM}'%KԳ&gp{0ςnowD@ͬ"$**F!MW u^d  ]D`& oߐ_=KۉojC|8$,kEm>/k2"+ae3Ko|R6nnR%?wD{p4ڦ~M sDv 8?|8z3B`H\-W͙w:gSc _7v^22a8'*%?|T^@QM[ (.""&NL4ߜR .ax&z oB!g˚+ 1>(4ybɬR%]S| mYEA&7ǿC%„rKNV+05QbvvAcl[Y01/lL [C}nH n(í2Ż3N=i(@ 6o=4^nH]mwD<d_ ٗZî?Kw("BpK㝃YkC@N{|}Ԫa {)ȗLMloJ/"P95D+4NHP uY p Y@h4vuy/N(<Ě۞7DTC;q6ɚL$-#C'tl4B#̦(iиVJڰSB=ktd#5h.bOI3* @ bQzD~."O$Hi!ez}'1dCvnbl,Mܓw!ր>PzN tOd=\*LPW7 3Cdd= g]#;#〯E>gc'dI===*dNi[ԣo;E'K:888*0u,J(C]CسSH-#摤O?E ]$h& LOOVX(QY~34@>ΐPPU'j'楉, -cz:懄W Z<߁:[VVqy$JD__ u"U@G#_5P}z ൐yĭU>EK2.D`g#@󝚯:O[ ;W4κ;ea KS3#5۬`$Y'/;6A&bo ;7MMKvX99 ,컠~{!U10cWěvLIV Gz #1^v{}oI?v--N }/}2P^ VH(&httPE`b Bg6/QR,H۪H⨢p {G9<gg Ty%9{xol6os- t2HpB?-bfU4AIAP ZgaģopPR v\dd#>Vjڬ^c{ז*kh'C|Kr|pFEuy'_r05ZZj`1acw A)}FK9Fi 1)%U4:dN~7&7pF4=7?H2c! tv@y7fcäQl]&YBmoՋzr(GM%CDS埰{Y9[k@%]z c)SH7| \Bycm{٦jQC.zZ=* 4 w0O8 `K; q__eVJGIJI%qNu֤ @kå$Bfa41*@?[)\ۮFaPjlavva>38ÃŨS ْl9uDWug3&mr/ycQ"^mzcH_oMxmXVswfk)6,\,t0TWwFmvpo\vxO'OOPD*\[Ukչ+H keo?i?A#|$[-~mh!1j⏦,]t0yu`hRחR`rZ$ Րd8BŃ8KZ8˦E*PYu!Jlv)ZBIYۈC7ײ}"@FrBSדOhhn 'QMMщ /p7PHK|B'L!)I6>rT9Q}O0qaNBJPIM ,o,m\^ܩkS Iߧ#'ь5THL9TÜS :2G~е]}cߖW,47pOY6T*4z Ӎ} )7={*̀bU(myhlC׳-┢YWygwK3c}2%PO(tiޛGPӼ2H؆e y/?;Se$R%5jfotϸCu!5|Nbt*bIKb%ldMyσz;ӛoWTƾꘛlb=W^lSsӇ3Þ}wqJ\t<ܔz,R {J=qHR>EigGq4LKRBlѧ(nؖL'\./ZQ.wKXэ+M5Ht4׌]^ղ9T+טhG^kTwg<%Ҕk'ˣH+T>O<3%mؕi}5=NVWCWCw#e. ƯczvvjW؝tNW{>Z5]/ / =+cy;,+"n>P71n5N;~g>HK  戚#RI%W>qt]xTttr1*ozlmt%4zPk8(`8e'.tûekJ W'D}b\tx&>=L_v+'[ؓRBF|râ1=4XlŢ_A}nڽ&/HJS`pH> WT A:{CX}BP=کKvF½F9rWyGK?nK edS4'\{W;521?#bUje`~DѤ Gӹsg߷ӳNN,]æg 6åMM8XXX47Zy̸"1xZxg6;.)[K")W3}B׬*3U:9`_P3y +s$aHDSګkH ~Bn8滷_BȌ|TwYBӽ<(p_RIy@y4嗋0y*?`.|ZY"1_Kt^w_Υ&p  M<.OXs=-(YKXkaYf%Ъz9 \rqCRJ)g]tؒf *Yx="n'Lb7eo#/FrGch/_Mqer|dT'49YW/{(LJanj e{67Tz.GR9Klbe3)?}E)/¸Mk/4o Z3h^ێ9iDnE2}*)xg)̃)xsayRӒϓnY?AX'L $= JTA7E?3W"O`SS|ڒ y|x)IPg62oQ>NOXB3'Z)NH'4 6 "@N*du6> fi\zRCgM 1K ܛkuAxn-/@@۩JΧcR ge3^]s0WVU}?_KJ`렣u)N9Ha$:4Y-aZY"B^uLD49/} %bLx eP%=_fX(aP؜߶FtU4@De^b*UO/^D(EILDp2cH\gaJ?k?|ܦ# =MX9x<w{O @&?,B^ߙ>2)5KNi!jn\DLTABbwaZ!Elo.?R=-~ߦL}zGeBQOA&ƥaw7+9yYN RB̾&m"‚7n{ZZXjݏY |mx_f3k//%aS UcPGȒ^BV#tn{|q~qZޒ!ěgCH;~&yݜzuZ$fs`(~7  BBB>Kk#v\v5h)/䵍 pa7CԘ4ϧ5L9xsYʒ'Z_`9I AѬbk b&[teBB?i53W0/3yd]gwb$11H$ر&Sz~ ae 8pFv՞CIVgYBW7yJ:M==DYTf.IOfQ|;*Bgō&]& rוjևơEJm!/YdS H&Ȭ>W McjkƸ[[Ud DO#參Vl[&4wJ]-[Q : 8{)Ԑ&2R66kx|4JXXPQ ,77o,bȗ_]Q8q8_ulmVUu2nZ||þmLoT]OH 5 HTԁЧd9LŬ M!<]WjB \:04%WB{𵉰' uY8ؙTKI3~B,š>36"^7bi|V1|-tڀ"b>sWP; jrWsŐ捄#*MSw?Ѓ5-]|x-e״ƨ PE܎[^z5B,ʥC# 9$1G(o8wd[ף,i2gS|Nׁ*./{*k9jXJh(tXVr㋇Hߚ(_UBH\VH):6iLOEY| D rh5I몁$Mܥ "7WKA޿Gtq "5g\%JVgZV0= &om}7?$f{53! I[0av.z\&>N>W^OپI<;0)y9!%'_&C Hٱi2[.&9e)df“DB[l[筪3d)ũ,:}zUў?WmlNd @oL\ahQY|RLw3Kx٤rf'a}B AFSQ󺃾 32]'l9! gWyu{ط?cCKd 33ٮq+VΟ/C)#S3K݆fQ}r>@9o9Y2H`8s4dBز797_ ڿȾ$~ǔKE#CdnjrÞs!hz⢜c0CI{6ox)]e N4RNmsd<;⺆k-Z/L#t-&l01@oܸD[Bг=3}Q(^okkgԣvh%tH}G=Tb&ƫBrm9^B4e@04iLa៣WX/݁kRNez*Odqy?ҡnN5l&GSأ&-rAfKA8#Q096 QVf@9/ w@W;Ĥqx"XGd C,BzE Ha锭-ڿKcmI08&N{NV^tfzpQC}^ݩbqz=^VTڿ=mPbnK鰣jm~چB7@K~Ԋ'@/ 'ײ5z֤.C :␺z"_^zj X 5]#$_dcooR,j;2INƵ}~ZѠ˲<Wg05Kz!@q[EqX$=?nMNnB'_*WUgWYp;֞{-wY7ٵ Pk~ G\ɏLz:5!ВT]*y-{NZҩ@uցdsml$# )?4#S!qE &)$a,?zǬ,T#?4d/1R?HVGW `Mdzg/EÍ;]k\s)໷}C##!x;8b8IP!7f7 i\YcWn,FfU< ARܻ;]Toe f" SP$fkhFNt?yNGN =9͹o$`aaMmޠp!y EE_.v֠ ~zBx]1TKTAxqmhy@)ipd%+ Ťc !)KCD|E<n )pFEv5d!4W+rnkd"v ׌uA qƅsr\"{˼6x(wT5{q…P" پߵN 5(<xz*Ň teb攬ӯl4 }6 takޢ3E{阣f FP VJDzϫl20EdJ8.&#xD1ۚH>j3%"l& oue(o5&po]c@T,^ip&5'*dab'E>XEp3bImCfļ*N+{b}ۣhvHdt1Y pe;L'Jr}n]]X=W^`K eʁ`@/M$蠗.{q&˾٢e&I7n}3ŦMeO\^$|i'MxjMqu>e!IOX@*O-x5hK>ȸ)D&[\3Gϔ;|7oh ykY/1ۊI߲,o4 OI[ڰXuL[Al0/yC TR65u^Gajڱ VxEV6^q+JwsvT|~٥r&ͽOavمiԮfq2d(&w!qꂿlAUuWsIWv.r`mC5XG}BCQBYf bB]j 2(6~0hkc= YèPh!zOv!kW SA!, <()?>Ϸ'CDkUPY׉hwQm}}EkXb ? ħr)aO|?rCx}FxX||_;bE*" ԟ'3F w(|8RZtHF蕭]{'TF۳{䖌tv i%/K.y !'|R<(&Om&{ZN l{&Qm~;r-{UA:$¶}c%rU U9d'WǶUW[dFߧ])@C.@!3Ow)+0ɠ>jvn9!)iAJcկꛓy1əhtD!݂Q*WcUxN?,=6ȬoC㈗/_vbٖH%kA -iA|#&&!Bc SI|xK[>Е  ~#>grd,e6svwSg#&_Q%lq} !~rST$b7,ARQ%)O@zj_+>krWr~£LqA GEmT;i*`5]Qs qq9H1CӦxѯ 7&(?~Ocm,=FJ)t'0cmxqs3"ۢt2[HXfm2I 2ɴv slwP^x_CyC/.wds"A7ʬ!GY[ X}-~x!ӣ4Je%e9I1W jZG~I~ 3RH(xMG ~zr=1ugTF+UOc$ϧJH roXDԯ3O1"Ѧ~'\8`8ɼ{g7wYç=/DQGςٝ_6, ~gz,>XR,ZKq폺ASVx~LMbB@"|0}W&99zL>Y+p u]6)Mdr|zyǵq$9O33 fv;΄2˷sr^3444T` uzUmygy[X0@=`5A]B0R)4L:̐o~ګcỲH wmar/S ?E.͇CV{m_bD4 f!t< rZ.&oF翾4np'4 59EMn9O g)6 m|U1׌z> D^r z.b?b6M8hʯ yU&?40;{wayPUᖕ (:+9p U#hҙGHAٓ8p8l]~(rYr迢|N_v?=!*.B"7j7>1YCmr} ;nPӷPﳊLi[:$ 3B7K<8{/}:.94R5fkxrpPuV2 ߬[ȯD@s!1Z0u-Jzo2zaOa{F4Q(&O*tQȟD:Χ{QĄ].UmH9!/Wf*g &+F a`Bu`_+}@8ux ʊeY_++Sx?aԂNq&Lpޗ Уs[ n+ MdE,l|cx|Lh@)HT^wJ%i: ӂ<_?F3@_BaϐbaSBdmV9mV"A/e~C IJp'I$4pɞPڌ!ɴ!Q . Ҝ:1`}3 (Frk'A%Gy Gm[<u;YrWɽf)èr A&poSzf!ڻ)G v 8C:PI/싆S;gdC QۢQDϟOP㨫IG[|t4sTd'_͌y9_ SPǭZl񗊊W1s],̾@6o[WEf4k"rЉ5 +tk,A/C-gEA_A,% a+ҒR-Qaɡyp|X_ZnFi=D ^KXWusrntjOZkWR2_I;[+PVGPG QS qݛH 'aZ۲}$u!4/1qyj>3ŀg[4u NȼAP.Kj6Z Y3Vm.5q"q5PE ]{&rh` gf2y)aMP;?jK".5޽?yA#ӓ`9N>:HW۶v@OdmC;ܥ/Z^g΋ؚZLKQ,/ t@lh׆#jH_D0C\&rcb[ZQ1];NzP@YD8'sD~⯀r3g>v=6AilrQZ 'u@NB?v';C p H=(U=V0Yy3i}x%zjvcNqD.?ЕhvcJC g?te43Z{)(AsLנg/g]!l J@>`VN &1dPd}^v^]'_Z9/dY4=~L\P,73&ݘ~ ojȔStS͔CBf Yd[s _ϧ> \֚RѺP5UWE̘.wZjƪ- -Ēf䄍OefA#deO  SLVX:I2wN.ehE ^u`\DhtRQO %ocڲA~9793НO61 :]vO~zx>[8#^:"oZ08E@IbJ +}4YkvCƠ~<0tI/YSq2ô֨PH֥<]Tf)297s}~mΰ:\ﯤ_ [6o]P'=)JhH뀹`1|}ex˥@68m ikcUpG=ͰV-]$x̚9%'OĂvfdǜm(yUݨމdqq^[ÓW< ԸIp\7ȇ+#߸Ipf#3ػR @fI36-Z2'Z8J*0oQ!&o?+i3;_L+/@ܫKB^TmΑFXQKJ{^sxfWx !$^(X"Md#{L2[Vb?k"l)N}ɜSv(Sbfz0O?4bAR,oPzE繟6K+`~j*HB S–]%2OĊ5.F&Bl.Ks1s/k"TWD H^YCY T;'7'DVX9]45{H5?[;LZ8W8Mzg<2^J74 Ҽf`XH7Miצr~Wi79#%E73Bxm9\4C] rGKKT D;(ȗ@ggA4KE\=@N+5:¶'.Tf,J'[/2>wڡz.[iS`' f5Nl8aMWo=-QdA99A.҉tJ/2g~,?uF0dc  .(b,Hb(,u";EA. t6tzH=p8']/^TD+nx`HHg _hY/v)3.x#Nߓ-zx1!e}Ev2AvJ'a;`ED"ڶRv1<_^HAG s g4[hG.TAFl/Az h2ZʂtB"㬡(c}4Hp\/EbrkdHm5` ~m)l9#~[c0s&!@MOߘ(kϨaAQ"O08 ~]N^:m 쭈1lķ8J 2G=7}l# c'(4YB"?20l >)"oj r99<-<)^ \4)yOյquGjNdd|c`nrApƗݔ=:< [cCRz]k΋˧)}Ġ ֮}'sVyd:MM1ۗ58P{ٛ'luDBjwbq&WF |GF~l,sXC)/5F1 |ga#f;r&T: أn< h*Bcd'l^Ks'ZPi';c= AXjgIk&W#9^5K`@ WкzP7GN}U#08c0EY֟?X,efbhg,.ރ|,,\_?Iqz'QEᏭ4і5 8 Ef [lE,]k- pgC-]$0GK&{݉K*`ƈ!?DPwe6 >*^gwB}EEE㚴\dGN]HeVeiJLob5:CIAҟ}+ݿ&;rh(l@~ꛯ77=[—juiz啛rEET33.>Hgxζa>#^^C+mPJ(n'{yxH ɮWk?)oPठjݖabጘOϟO,"Ur̿S?e.8n6Y -=ii)Nxj#ke&,՗A"$#ۺqZ+1>$ g:5d7M":az^>_DBbLFu_07I|"A G{{yR_ $N,w;ެ!PB񬭕ԱaSZFmWdB(TmftZv.G_] q~¬("<>-B-$_D\8hl\]oM$\),fϮOegVm"xmOȓ̾wՕ4B(zcb1ԌIʘM<ʲݿLbmuu$|e]?AZ R`sa@EEtFjjP8EjIj\8QRsx@MmiNF8j+;v1[ϞJl'Wib?o}mfYEf&H)2y 0pl*0`lF "~5_-ІEkN=r҄zs$CCC/S'p%i"Xydӽbib=RO@IZ@E &-- Wn1Ӓ4EC"y`xxؖpT? zzs{BDEEGj;~~hL8:V9ўO4!Tha!K]BG./Ss ]YCw;1߾4)_ 8S}bMlMF"LB} /m,| {?$Pj7J;Ьx99һ|SHCyq< Á#g8Ig6 wJvA,>f2{cqThfOvC2Hrz%?ĩQM񼪈QQ=đ#f*u:|jCf{ ٍ)KO bqbokRuGGGV^K{Lp_*E^11ZZ+M@T(R7Xlٙ!%7%P(4poHOa~&-'#wP}5AEMNO¥7յmŸ+x4.zyym^_"<?γǜXLgnĿ((d7k"r.L'j}U]1a;,2& !u%XGWW; B(.@3Qw~6!Fgdb?Y\'FO@ތ/XK2BԻ5>u4xt8sqFt[b[g~}]]<Ǘ!Cy//A\OTs5ՠkuQO8P>AOהg"" u~܁R/Vظ1b1 +"&(#=;V-crWr2r\.:ݞ꺱Cx':8T[_|||Nb+Az*<3PFeq>_I[YL! .Q ˃!O`0m W0B6TMEB-ds_B.(&*V/ 3.N˂ 玐~u >;lpuK^5׳|;[|{bFV-DKH$)k~:mge{毚y&O\deDzlz9H 민\y}R úsaT7!?(W[A;ݑЫGe/nvm"(<υOE"3jt&;y+!kR}OF K'3'T%( ElNV*>Bg)k/NpJܻ-on/HQ]2yݼ# ]seդ#N%^q9/#O?p;>0~{+T)w5R.Ee"[d'g~ 6w|/s B?91Zu?]AIrB􀓱sŀKfO_<ѱ: l:ӿ%h ||/ij-b喫21/IQ3bU*>@JP;uw^/]8zgO BWV1Q7[/XԠxU8?s۠les$hFu}ᗭ1W3\ĺ˟(R͉WmX?e ,@223L5~D.MywLqJ6*k$ Iw6OQ;0ilBoU.dTdN!4 3Ҏ ђ5tjqSfQx-bT "!$ wjg.m|H5A)Ov-F^G~qhVg18ko2#4Q8ʏdoJO8V}{ bb >f>"xqƈ=M%=m{6:^N}x/3y¥/K +~𭰶y/z`^(}uLK$]@W [;nU; 0zy~BjۚlOss T{s*'Ǽŀ2>8=9ҏkECc&ac?s}¾{ñdS2df9{^`p:e|}ׅFjR<I^x.v&Kk] '[iC;ćx'!S?!Jo޸D32 WV =o{y 7u_oAGvt BC{vBƘhɩ$X;UU9&cȦϧZ{ALkp S\֜92 ?4ުx ы !P|Wo Sw-݊x(7Z L0~Q|ϯOaMZK&|;*1}NM;Õe;VPnc;8AqMyܭg OyE*%sXD d(2?O¾ o\v>`o%-Zn/93F$<[E)yG4c!HJ K"﫚Ĥ=}Wm0)?I?vpr .;aͭq^;ˇˇ&; T~j i?98?2tK\HY%hAw#e ᾱn245C 67`k[4xP1=`nUCg3gU'-O0 Xx+jq2#GãJIr>N]jΉ% 7@Ȋ_8b4(Dȓ"nS 򘉱N3z/}dRi9̯+υ βw\"#ωYg79QP*Y/u$ſ"%sFZi*&yG)MMN#l>DG"M ť ̩.=4NɊn&"2]^ݯB`jM{F fޖo)d鬱gql< #Y}t7ZT\GDKfm/AzY8  7$" =I }տ?Tg<̫KV` op.S0Oiۙ7Jtxw"FAZG (X;QF<}i_[#}~L|;+yuď_q}u ^g== o͒W&Y{::+/wu#2X2}C{cAW^ ۞?k#+E+֚ Xu?Z5銯5Mw|ZgRP}8,@V C6Lxa0$9QM' ifG2s2dL!+BÊYpm&V%07 x7rSf7>r/Noޑ{|{@`VzZQ,rgh*K/!N_]pZeJO =8;9#Ru@=,OyAm4sh $1tذ3H "e͂0iaӃTP,(тwY=AҢxAsyts0LU u>_H+;>j˽^N pzw~e<${H(CԽv?/ܷӤ)(Z>L+Q;YX}OذgE-t{{!}!"h5.15;Tt JzȦ+Oոݨv9V>|x}Fs}"@A\;sⴆQzSV,s6"[7gk?RߤME( hEA7ϡ8m#C s.kuQ;`~ԧ\|{uު> ԑ|7 4ekᛝ;adꚮ&,KFmk`ݹs(Qd8DI)-#MLUfledB4U6yD)n~sDU ͧ#gz]% JO$P@W[:? {XR<TCo oMsOطVݤ}*~ mGc+~3 q]vZxede>2ŵ|2[nbӿ1 "{<*Yo/ssFRZݚ @Y*$'3mi;IdF#گ_l`j]dA3m(#M|6 d'V_MC#MBڋ?uGL$( o$'O)轹<\]wRœ==$uq/ԫ\[L~<J wthzzĤlA4!\ϡ.Q~2γq(T뉈kˋ\<4#lR;ڽjU٤u9p#ɂ9.%Ps="wUo/T֦Sc s2D~T|1Pϙvjj17v7YzY6 2d*W!qB}_>,|YX,T ̹%MdRsop@ygEJ-|_G۬koXu]!@ Cy܉FNgҿ.acLSY6$F0wN??1 Lկ:.xx[ށPvҵ)s#W dpV[~#jiĻbm@"Ǡ[![yܞ'C4I.&9E=%v)}g+g3hӧn}\=R<%R>ʍ;Zcj][\jCA"webHITfm)Bz=q no7Jᑺ_r2Mke(K tQD.*Z)LklSڅZ뻀҉=d:/ mF*͢ L#M?ꌁ +*v+PýRq˴Xn"$Ūy,B%1P}87Ӭv?˖78dG!dx8v092zI* 281~>3wQC".(Np(|Yx;jm*fƶ29o%3X {uOb]Fb8gu*ZP'ֆм|!e] zZzرfvܣ;s݉w!ӗfZ OwUASH+Ԍ"Qt*E6qc/}J9:Ե;^(q<&ps"m Mvx9unSB(BY_ ` g D1}ABW1r[)*)t'@;x WQ&QYbP&ƥk-~QawB'ZB ~X DYoѿ0.3(0ƥѩ*'_&Jta.P1'h̛JO?(9 6+*mң,F lvC`ow:4BͣFs ~nn(_~+, +Ԓ?-4Q\kt叽P ';wlš"/ڜp<5"*%E:.݆5AQLZǒAtW$o[T!ESnhb 72/:;QGG6[ͱ&sݙ'\xņ dR4R= -r1{;oYMpb?+~)K\DdS)Oi5#^3Pma.iFqj@Ͱ^Ay 8R{EJPFkn+bŹgfm7ni֨Qo߼*եOZws (AV^x.'p#lVfB~yv<p8s,_rZ=.d΢!GQT8kFTWnᤁ ؙt=5P4SC)2^Pw?-{ BCB SEGxdYe_=ͶGN&_@_=Fp "zy3~59(prb{G}q+ӚƯiΒj&IQs F6{kK[$sYM䕛mOji'sKH>=ؚn@U|b$xYKߴ~;s-QD(Du #N-Lɠ~"De B'X8BHQ!FʊG&cu0y S-SW4_0YY m~8n 8II]_,&.NC`9ou+GgR`<,( 6ʺijnw&xA魱f.,Z%#;r#O_?{;]B ,hT~,!ofcEg`9gG5pv:즘n %]B~Xx?3؛(kE\i+_㤿LWk<I5:_u 0 |h?zB3fW+ntdj)Z,~k ٛ(*{N`8.ciĪf}~>},[+=]Y< ʒlD7jـ라<{ toq'~h[V zF 337 sVkٗ\|U%!s5:kg=~P* `\=wuv *XS>x2M`-dv2.l!\%?;4$8s;q͉>c=K(JyW-f;-z .VaA9ύ718sxO29԰-)e<)0IS*]Y_lex23CNϫɕ$Ճ(i?8|Q3UuUW>XQ-^#݃ڈyp"EM6OKr9'?[( h="7mh6i|VimO߼-i䐾GSpnD+G]}Q/Ӈ@i x>i=&:Xa[Fk^}S2ޚo>Hௗx) H?C2:F]qt|q!c=7ψ -B 1Irm@K /.\ ӓ?ef+L.oSj}"x83Ő*7wŠf%h @݉mcaG#s63_&˴p3Ap\oh)(4+wr!-C<OAlF CnӦeKp'ڎl(YL8 1Z i<7䵳d纗qācz\jjK{Ûgn=ٞ!B $C!ED[g86 l(B\E-|?@m5*^´bPo);P-(B3}Vۯ&2^z_M` 2V[bۏ }n: O곤FP[dBxԄ p]4>Sgi<~oz@,P?}o.%Rdrܡ/=63dWtrjم;" tdpqEw庯yP* ? }+?.:SѼpx*m\2fUOze*D{ 7>G~ԧR zRxLG$޾~w\G6}LҭCՔg=Ggi@PCzeV,Bݭ_yp6sd+;O:o }!_=CZbqC #];H`?(/Bu{CXJNc0GnٜJ61֪ [ylLa/6M#IQ ="8f&q(W lUĆut}v0ߑMr@ Co;bylfKmNկKVd$4ߟaYA&mr6ibPrni4Გ߸N/ _=>q nkpͮQfBbﶉ=jtǟ&%5 Ʈƭ+'9cs}쯸#גǴ֨'&|o_y~OJi9kU ~Mo.o׏P(ixl.wI%+Z8$9xN] bC?VF(Z|vȷ%Ha"a|ǼŚr;GES\[p*/"4*S].iVtm~.G!{B^_ ?=  KlU O}zҒq7I#SפNZ|ןfOD2 cgsBԄn 9$Y=ڛq=ះt2?"t2}0}&JUαj7*pKSl[Ue/G;Wd_b᣿'ҹ?#*}d UI! _L{ͬsC($ڄ77 >15]w-2Sea@P~(i~%.wL~r*/M?V$y :I>q+' rx`f[^f7ɸDŽd€*LA}%)/.\L\?CT"SN%ׂyjSS߱-M;ᆈ|j9mXMBwx&`XSaGD zo~9ђrc*O"dhԻ 񟸑'>=h=p{@T`Q0i'1/K:'ov ,'>N쁣f%SN*4z~&O<)Snp&!f4.w;pۡE n$-XE+<9)Z'z*Vk G]m >à6i;CR:Shءғ_2'4Cֽ-5(w\i*oX|o8)"Oi3? 'm<+k|9zDlsM}?yοL)8*~e|]G7Dκkg\~(?%CJ+0 u=F ,EXL68j tĿlg9P`!?wW Tx>+~kL|s_BeX7 r뉺_dEٔ[jo*J=0ByPe EO/&ZyAhDbj0Xj}E"QY]Cg8& @nRDon7}f:fKN_ +Wh klkoOeC*47 =hYWf{ty@W2| ZV!4eW0Iw s4#l7 ^1qo"ob04)yMUDvk #9gq^INX7>"JliA≊QY5Y3fs[Ih; V>.&GR_{tH8w +iou#Yy> ਁ~c9B5V Gl~ZuDJ z(t[yU$IC3$j; O! y17u%dk.J^1wNy42݊qmk|2q 乺& 3 iPpiRLZ{Tt]ٝm.GHЩ9I:v< ҭP7Am!Ϋ@nZD^QqϬ98LD[rx/[}۞qT6#NfC$F\=nseFm7 7wۻ <׻DAG ?=vyƣIONUz4]/Q~oN8\q> Xeޱ?14 ֨|]%0rTSϥ"f MAƒ$>>]⭟z4?/ք +D;Wsưxa)ba"/iq BNpEܳPi{ZЏZq[ Pȡ!r2c|gKx ((@yNm5acdNR>FDM<Bi=ȡEٸ3PS1vKv fKNb{ 4:"%lMHU؃\63juʽgByv9wy~+mZΟRr!i~Hơul1L9!nrO~g)Ay=8 ~3yT(2!ut4Oj3?k`vV((4y#g" aK*'cKOM$/νyyLk:roB)3xnW˵ʾj.MJc޶j[:PDKm'bIT([.1CGR<#v0ovÙAy 9X1ܣ)D|*߶Jf&d kfDj>=uv¯QWAضC.ްۇkὅqV}km'f:V {4tFB/d1ھ sxhSLj< L&|h(֣<Cyb B]CUnrxGSSlOL}PP>JD>ӽb%tlc0zGo3# V>zIMSLJO8-dyOR |2|ҒwD3k7WyZ8ssBqR dDfLrLOQAbDt[j𳖡 [˿_>'xL;|#'/oiϡC OMM'\@kao;U3R'xlk} JeB>^K g?YOdIJx {y蒭O-D#r5ν ؼՅ\B <99d۟WѬ1» 'z+Pn wief4Kz.9ҧq\ebP  ԃ\:.G!8%Hk!PT~[El;>[ "+̸rpxww^J]ׂz-u 񊩂F{^QCG^)GlAn "Q[9b㞊[s3 B/ Y=%779N$dTa}t$hD_"/;/Y(&]w$x+~ ni{ͥduHE}+4}tsE4)Yٗm-=g'ߘ,NXz$ :@c l[1\)>ņeGzm5}/F[?OS2vAiԼ{_l'J\6OG"U0-TOa&<.ϡ lx1MP.Yб9sE2-uTyH<-6 +Wރvk},@z g ~An&8u[TN9pQ7[N%qͨBp}gO6m& 2†eKJ-8k}; ŕ&D\2")!S:?(=':L]u#apO_,^X <*HiN{`Â[J].1Q4%/mnAma.FS:/MW=y(.eUx i Wxyԃd(Cӛ{}p ^ twe3NT]At(Rn3PENן 1k#TeO%ꅠ|0[\)]p YyiMOQRv6B(aIh\ clꇤY(d >*=J`ˈ=Q -)Vhok>UUG#cb'HpjF3K ;s0 ڋ(Zn /HiBO+Y/%lSYdF]2D>VnI`;yLFio1i%^SN][zH+c$ç&4*(3P*ֺu##$3ޮ4ms@{n:gU+-5#´K͇Bw>LAV)z5Ĉyy?H٬{x]w_5QO,jͼ&ʶEn";wVoL<|'?IP'=3N/R~&/6Q*TXs0\h6Kt"ޢcّYs|򼪢cs4vqfKqu%[eԄ<Ǘin~VȵWP`V0'_/.Ftkv5#aOR_:{H7XC)N{ u( Q=LKHulwjUmAJPKԘ=1|)9f891nuvola/128x128/filesystems/folder_violet_open.pngUT ZAPQux gPS}R: B((PT",*T H*oQAQQB+AP)Hr3~~<vN3묵wAiIUI:ym^ $bmԹyGVb6c;(*|lPL`{:("+,(a6`;KlC[O-pCaT@9P ,88>8 BSdh%$+%J_ڜdjowUT"4(sS3xks@9L0=B *$`3X>W6::7 7Pչ6QqѢw5(`2v Tr.g H"F)|Aͭ4`RS_Q!jow߷ykg_j1сnG3n`Y/H`(!oq!ilPDE22b}3֖?Ag׷ e2~=L1zvvuiCZXVh8Zf2)X(N'!.O29MOvjK3m$]`Cn&Iύ;8PnKY](ikERL.\MhH˨S6GQQPwyol\I #Pf2IL AܲG< ~uTCqFfJ_-5Ai]I>b+KU^oTZaڃ|ۢ0'}֏gQ4F{qO#Ca亮7/ئHl"$iNU3)M #٢jRώhЂ<l4[z̉F{m6䨯_hӓMp#o^U9 һG熗*V^v]n|3J>zYͤAbwg/|`O;]Ɩfes=q]fw$7TZ kp||-ɼP˝1H#;I,,~F qGܥ=*RYxaЍ -@fҤS&kay$'S| Ň;G΁.X6E-1b*: f:.r9w<]>Fz fTe wM00 * J~[&ʟUcAtE &Oz'vgmKOM`Hվ;z~q,T'_l-שCRW:l)9sb ^7鼛C2%]@#^g"-_!`HYTKCmFt rDƯSUK(t[e8qǭO cޝE=fagycU0mmK/!߷ίΙZ{o7vU<Ъ&l|j AٌY)RhE7 2E, >eܳf̣_65511_rtg~nQ:Wo/55{j+RTjՎ33Ϩ^GUչ×Ժ7 _9k!G-dJ$J?ery+If#HBO{>-Y=xECj0?4fqz!_;b_D;Wxw**s㣅 [F#3aLn%0t[?|srgYBȸzһaR_~|=5CP|R W;ϢX4RM*xe2pfmw: 1"S^4r N%CK>HH@%!Ӟ [M6b5;ΦCk ,:,S"OsUeܶ:Gj^K|fB;K|w`OÎ{losK 9nqՊ,G:yucUKwT ^IHvp^S$'oIOEy(&Vhj 묏SF)E%bƂd>AW͂J(9!{="; u1P9I?gE&tWȼS~&A|.?)3RݚOmғ~{'e,lX/yJr(뵄EdWP"UC L AN8MF"۳xÚಲQڔsP|K蠃K4wf!:YOua* [9dAvL$9.m` F)ɁQkQz76<7[1-=)NOat y䭁j'e2C3.k+?DU Q `%8=tnBn7|is%6~b!vʧJL-{~ơI[9N8\z-9v \?*J70xսMTJGNy;s=3w?$N^ڇ=b{m[l* BV-`8=^hvf"-zH5)?t3YE#|@/E UF)Zr=,5rlLq7X θ-Ns1bb,~ּGm-j*mg $gJ}3N7۩5\IlxTNq1ب@C"UxXPŕ~ۡQ[H&N 38̑|z"'`6&eFڿc9ï~'8^-*J+9Œ(F1[:Xldƾ 1/s~WGvu;IK'AӚ[Mv |̆xQzYO!D:0ъ'deol[!J%؏bqS?ѕ^ïv{=)QTX,Or3g+=Vv{0r\TƆ'BRzqA^,8d 2q,J3I/R=ߵ@^L\MIXU4bR|mƋ^fqw9_"ףstArI~?\if!HHVF˱>]#q*= #?XC|\eoۋGZSU@h˞޺FzN;HL[2 3p xxPBX~t(u2 \eI 6?*[zc L:hfWp[r?~5Ku+G"6k|<$a,g@2nQEPԶۚw1rJW#5~&'BC̿XUBIprzcq-F)c**ࠊfVe!$=eL@:B9Sw %!hx*F$ʙ=Ct$^x%`P҅h:% sٞ|b/">]`!/!ۃ."}jP;6^q%ӡ`rWቓ*췫550ltPf\ ic/BTw0&{9i Az-@>~m5p4\ .Y wBëݒ"O!|Ij d:Qw_Xk.aז=l'LWȽ'r92\AcLI6&.7(Ohq<P荟KHttt(G=y<6Ҩ 8dʖL7i7G{#/onاw1YGP%۝@I޲xi՟cLׯ:Xg8@l[vm+Pܗ S^]FtFZ[>at'>gc}s3ixJ׽,`?b{H#ip{uuI+m"G5p.Z5!b_3),J9H"Uf &ipe ^+ ulLWNBṶToͽ'ݴz~.E@8U.u;)TLأHD+{QcS\˗PԿϚ5uJi9ez-zjQ-E9/.Gbrj;Ɋ=̳UǪ,U cIg̈́N`E/S㯓X~ߖH$_ȤayuO(ZOȎsuZ߿I n:gu-PzY2cߩJeF/M_ nruh F ^mWԧ ܽ:N,h n <QȄDsU8=6]1J ZBK.*_~ %d=&iZuU <}RO3>ʝ&.$Q\A32ߥgmacP0WAʣߞ웛/>,u#5i+Γ.=P' ʟ88MnU k,-/_MS,=d&wx1YB x<<(wBt(;+>]Yff`Fagܷ1G=9%a,2 o܊S ܁0!*w/gqpȻ@LGOC8čT4Ԧf2 qN*&Ńcڀ4|e un b; ̼D@zt|naċe~V'q~EAV}'2Jh3)@m,֥R+ʀ&U$"=%4SAi("IUg9FphF%t{Ve-hF; tQSss37ZfF48MGYp:xHh'f.ZTgJ m5Q&rsՁW@i 29?^fJVjyب3,}(JbFd:"m%_p/S| ,4+/i7e;\#PMJq+sh,0:E]Ky79mtӒd5{7%B߾`}G,ojܠHK:IF+1^xfubNuILW֞!'Y//r$VFhU8zmܩdpǬ0G@ #DIONBSKf= 3)7>31}˽P_i|^;Z qzώlQ˔Pz#fX:"pEʼnQh NHH0EjzIAxW콬Bl hc$k(`e/ 8tR> {O0&'.F*Xwr*t5^Fک$amNS(2b Vf[`[=iP7Gz^'"!$f™H'"τi+X6Xʼ}vjڨk:gS(N~s5G"{gH*IyS'@{AY!o@LOvI}{_,\~G4svgM 39~#~9ʹ; \E#6[AA7Ԕc˔3k0 <^GՇ~m:B,a>67 q"H|rxjŷokb]mS0F`1:s38+XOkߍ@'@r802jg3I;驲0A9zng_*Yb1[E!nD{~3@jUrF6fE$Y4%Dq6ER +۫NKu)?(Pҡ 3^^m v%UJi.Ɖ(.&Y1&e f02eY4C#wm]2O!OWCKc'tW[Fk[ߧЮ]auչhtY>jS#Dy~{F4.:$nn.#`>^ ޷ȍfI}l (t~cܷPᢪmа2o0-$VVV5F|:bo|}ɞ@mŵ },?39$2p%Ś|`Y2^fF/$hf7Ia[ %4%4bA?$#_b^G1&+/T6m}ٯ[@U=o1MlomeUO"Nq*^+ot4SSnJznڸg^y''|Ea&vqŭ`VU?>!j3y|F@S wPfKayc91)tOm*!s'%yvmuXp2똝Uy(oL\Y~p_ ,q^O XEύYಏr#>mVOt A]Cڝ69rdVqռg;;MzW G=K[s1g:98[!fi↊*e5$+Wnbꗱz"z/zR7Ul6O$<_o/LH`|Mr1?㥏ڑ͐)p痭j٭5V]g4G| x$P-H]u_y,ݴpZMښ8[CjK4wMk޹"9w]\R $AWZkm2߼5LQ7y8S^2$eļp1(} 4ˈC]g ߮k'.cŻ.kYQnC,VK,"TgW%k:B>=ZzPMYhn\p$.>8f~O0P'K)U9 x l-q>^cǓ:_wFqXq[yX#$Z%UꙞNa[%2оaCNOD S䈟'Q>3g.%pMx$=Y^n7|0RDX{Z1͇h_`Fuʆ?8}_^RCc+ZqnʏXtB.jFx`[A L{O/_B3^o11tez @)ZRU"f֠s? dpDDQ}~l!c[)-c7gl9Cdd[qCWF3eeWoCW*Ť#A /'{0Y&pa,%;:Y:+.(ys@MːéDK uňP (oCII&& ;aM޴O¡V$+&]x'y u;gkuԄ"{1WjS0Z$3}KE bLhɄ=(2 KhfH'd찵5_/][H ɳn.Ni\IewxBpPwȸ<eSIOwTa5< s|(tT[&4)!6|2WSM ?\%f}:ϟp&G|]F(П9s?oC35$/ 3v3 h^g_{zm!9䎊D~@^gtJuG=8R~]xU/T s{=qs,DV Z$dAWN4oaߔ]BBR?v!2dxl8qRLkr[%+N/?}W$zWC' kRJXZfqM߮؉:y*_9T9Tm,'gD2"$Ic~9A ԊI-SBҪjWV>AR-@:*A_I#6Z9ݣO(XaCX䫾.4u\D09A jeioj<+wn1;-7m }A"^;J፦i9Д'Tvl} 2])g>g,4sSpTct)C7oުyS6$d `S9cG#k:6 r^\5۩C y^F4l"NRҾsoCIyuF,hftG7B{Obn'y{OS!xd4duJn(GOD'_WPNj湹>-+u6E({+rwP'9 HϺ@{pg{y;By8)l ZW4Đ?jV/8|s$丁@KjZ5`^UrH?ήgMsMnJ|4|S@qyz_H9딠?vBlwK~`L=USsauq9C1b:R_#eN?ps=*IPK.=1dgG_H,nuvola/128x128/filesystems/folder_yellow.pngUT HZAPQux =| <g1͵Ubn]E(HKBkiЩ"K*ZR(1!DRt+5>}c{?|ޟL]򲚲ows(1C:é;G/vɰظ5daAᇽ=~x3lw &S\-@dh00(n@ %@l.``0ĝh=0X&duòxe'VwC(g ԗ8D `K?EZ1 7ׯ/'Mha,C+HGN c833hI`\"5nW2q&DU]:a N+(!WTV휤hVҁ- 9I?:}d@xܘ^S@_Z>-O7Mv L ?cPi]>^̼q#y2igG-,dMM|- ^W&w>b3#YN@}y8<+vD}c(@R(2mv v`1јd1 0r &qQԒ>]!+qc%;'s?{0[wz93_ *scW߬#8 x`b/Q$3\YIB~"ô.xr|Ziy*8wZuZOG3)//?g:V~"lӦ%ުD{U}>Y/](h<,q|^E"hbT{f5ԚǪg=ZH(Te~k/y*~%,*D2:-GhwԵ?`rԸ$^A[玲Y]!uNJdB+) }}5!{r=X.2v \Pd(!Q0eQ 3HӰ'RY:}#WZ`H@ L7!J89rrHJKѓd:VY>v<`1u/Nc:NM)7E|852(Ne aBx:ـgOa>j2 zygR3[R`WP2"¥b @:~jhHI3҇!SDyuG2XgHHҪ#!bk!BƺyhTfs**M)ORI $}rifm@=Ck*DspcQf:R{}J9!C{<*=⿹B~]:"G3[ȳ_q W4Щ{i}B}5z_5X oH7]+`cA]im_[>Y7x%16lUZ=W u+ Xzp~*͒LoN/N| QЖ9! U${-෸Nr9H{5lmޕM0Px#])yv4#֔喤ޭNNv\.p%[QQ!pӈؾx$c`}1rRIs^s+M/J<,.q 'Q,Űb}.}~S)ƀBUVFbUVP cw v+{73'Rx^8pCCԩS مN`Pho)O4WB=xPROlh)0{-ʙ!gVakb/0ݭ p2Y]}-U{*LC323` [/PTH#EF//p"RWr^'̣L E7Pt#64}P 32XbdJ(cbx_'2ض6uEc*ru|ZHȢ'y<y]:#D:v؝QQUM%Y'HطךmisG4/k d#\LM6o睐wOJ{q^l$>ݚNcT0XJܠcދۭH#_^-Ͷ"OԎ|y0<9I . h-&W.OĺzCbo! y]VAm9w/HFސE+wJ 6Ft;]]YWR:-R79nmnK$ O UTQvcs\Tc`7Ցo_מ 4p'bB 8 )aIş4} aCCCq555n2IILdb'~هGNB\a)~*<0iGgImR'z$ zKVDP+S6n6ަ3N)/35WלTыs#̞IS-SL/ oL+_f棸BOf%c:=xna q 5zU^0|7omC1T|ɡ0H4Dj 8Pz/1g]J evjnNDl_v4= d=}q"&bGqY^R-Lvo0B;KmJhյ..`vHVZ; sQWN{qMԿ<]| =<qp2OE#-Vn.eMqq~U$}aR [c = DNcHИO VR2`qsi#J,MkFG *T!'(;[+ࡊ5j1,5lٵ=A@IGm)ZVԠ>_kL[RS̽ 1gOT2vcN zqeށl\ M|d$؇ʟ96 9}:FJU |ԵW|9zˡc*iogdoT_=}y-9J,wp|#3ނC9Ъc^Yy82unJDYߖ\|t-%}օs /3y3R=tv"YӻiJa**hOX\~*Kq7IQ`8Z11f'5h37OV>2ZP`T4 X12J˟ef1kCxmBh|7t4sN-s@:gM>''y <Āj\wE.!$\ʊ\B(}MqfaRj(GPܕZ:93X9Rw43DjU:325/1 ew %SRoYrкyvVnI`QHk -BVቭ‚% ְ'm*8~ʆR.oQncTT/%h$- cqo5#StgRe.F U#]z6yc#Bo#Q\3}yKx9XJ l@G{9ˠE/vBTgrB-E"wYiߌd.Jb\ 1U2yxuڊ>ji-7hL9lUm:RBUmzs߶B >9ka?&9+8*& 5FB.kӎbUГfc䆋1`ӓ*ov ҶJFJrC' <6!Lb'NES4-Nkdbe< C\ DJ'9ӇqMDI.m.=TCW V;QVn}֊F)즟R᫊?w9;H PY XfV݄ݤA&*|(X#74h1rVe^}& LŨd19f*`<jKŶEԪyzn1ii ǪʉeDs) u'rfr1Mݱ kNLi9};WErSy@Z@, lbb~Վ㈒=kyX d*kE]{Ps#]GPa4{Se=pxx'ep WJ ^h_p & +RE;8f˗R;OSe=)AxI/iXK8S uŠfF/O@sMiwٔ5'Cxa?Lv?PX,:FϘ[ ^):ݯYFXu[}N pӅ R8h R@7w45vC!qq@O8$[{40> V Sj3]rek& 32z+#G-QѯQv2BW,AtnW| YOhǷ-ϱ %}ƞR*egHW&1vcӔWgd_tͳ&/rq vGexEPӊ@97;\V6:}Z&\fհ$2X"ӻnz$@Zw.^柱&l}C#_օ8TTbstifsW*T+)v!-9:y5 5|}P/7l:Xҭ4⬈zFDGj/;g,)K =v2H/.#jZ:37e>dP<$F^}8b>Q,w`XJ,:7]I=]O_z=<` )t#OO&"?dsqr9Ŧ'M3:ɻWIuFEjG]I62epD>}UlҷS8oÜ:[Aڰl4K\k_q6R}Н &'jÍx蘯9)lqOU\6^o5r7ȉCin;J(Nx6cI0l,uí.u.OW+WFA@DKql_\(xF<Í̐wt7Ys +  钁rnwY."G}/kbQe;_BXZ3 QݟM = C ~,!z3 Rvx5=difuᬜhSNn{u7PZɎu"_*erW뢖q_Lg#]Ys.f^U\m!z) q pS4yt9I넟GܦvdṒSg}z_ FosuP*9ګ$KW99R'g{7_< @DEcx+۸O& 4X92 .RSod6)a$$i" OXo/R:x8g_>HۭBs`h0MpA i7T?amu7s0>h_Q #8.Ѷm;cZQ@3Èg!4'h+VNL*=ehδWtE+.N۠EBF=Y3O&teI#oh{+nHh#,jѽJC %/D_hK8U5 Zs`୦ל@^[W(!4E]m6aQOp+= 8Am]aꝁ> -dtKs1m{:Q:=W^ڨKO 4}ݾk!y~ymtN뙖fcPw㫬;EJcvՌ(>`$eWwuq즋!^@ȭ$wN^.jQ׆X7v`|Kp{-4BQMN{ AC|A!ҹOH#w 7 z3ݞr)^tPúg#ʻ4-eJ耥lרKt&oy4!!H)P%n.0r~!q?{pzsg^1x}>mW'[HKhiPr3eϏ+ BhRrSxf ȨݛCOL\IsMvQ#bA& V66͖IǏVPKaݩ]+}x,CzjdA>a:/( R |1vQz SO8A SE2>E,0p||PWQ3=X[?nc< ޯW'Mz~l'aM[7CNMy>9(Bx~ũ㲱yS)]VV`swIh^t^fu Χ\A$Au l ~1h7%1\*,!ZNsߍ߁OeF:7"<: b+UJVM>}K2$+4]1#W_KaVdX+pE_1Ls bzѓ7TZACE0{Ir=$-'؊Ʒ% ѥq+M8߁e{$PQV%\Fjaaզ^~ mPG~h΁d:jk#ojWw+s$cPMy`F',Yj/tl#'.ƀWNyË7M: I(,%AM<9boӸ[rNe=;k!2xeE̓Hv~;2zi5|:3Bb#KG=2PQ"g{ز;2.mL$`j I6r2Z*%'qI?&bŠ"Rҿ_9-|{@Ϭ߄bQ~mn[z4ϩ}{mr!+G u7^ܔ}]R\u8y;hS!qǵJ]矨WE_YN_{ԵH/N2杰͑_tPqcW vS0c-WԽQm2sz{ןj?~φeF5p Xh;H56 4RuY注5M%+J̓yp1r-};}| 6ւ$*ʿO hM`mܜ+5M#FaQ)):DfNN)bXܥ>i"Za:O`~"<؀zC%2D !29ʃ;UHΆopyg3+Y{<`/:~;}>mV|02}AËEOŌn{ Y;)t;_bgrvc_ro_w`%vMs̀_|WU\=-lc,Q?zsVRkl;bYA !CK#q<9p*Ɩ?-7v+\ďVGѾ̨7eП/Z'$7+N&>w{w3,BJd}\0/bw"e򐡠*׫~bFgQQz'mςO=y)wd6P;|ę " 0x7z-od— ŗ/^/"(m1=~ЛkZ=Hϲ#*mk:>86?4"*,=W-5n&i0/,o2yҗVޮ6F/zpY,7a#Ð kZ@ヒrǜ٩vu^׍6kH J 5ΪkVDn:IngMʜ).{xdp,?͟kś|A]eΏc?qW"97p:z>7óJ:G͠ezdYЧew9\A^4z|;2SyA6tLh(8ŁKI-y/{Jo!x =Nq[XFJ;7yjݰ2 6+/k 7ŻE`?Nں4(pBy ΁θڷPy{qB\z}}7 ί`[Ώ%zKn*Ʉ[!X޴*Sp9Qτg \oI)_0#,`ff| 9h𡙩و)<-Ӯ )V}b }'Ο]!2#ZYE%maESd_XN;9 LRl~Cڠ|A?% G칤3nP{|z ., ,{\ *~f&A&Gdi^jX1UFʤ)&-v lLDpm!8S{| ufy/OES4\WZx2k3t@|W:`T c qUJa"ms!5oQ3?ˊ EmRnLX]h_W88*= x"&:IrDʳ=JG/XTҼSEC;u5 ]#ϑ=zNa|]&薬LgCN!4:.d Ї t2&llŝb\O}xQm+lcGKSu;]_ ͼ*><9ЍStfIv0rI"iڅ $1ZHV?YR0p-K.ぼpM.6(Ea_PmKL13eRڬyy"=1eP&WR^mF5/VQ@#WYB<x yDyцDG}MJ3+dwAe 5sfM1K;Qh{nvtj!.nAcS |"cNlJ|2vSY(h0m åX?Ђijxx+AB X֋y`Cq9a<.v} Fu\:\20(mܦkg =?@"o@Zyueu:oP;J-Fu =w47i)aCvp}e9C~]fm&ڛxxVb!2,*X:7tvte΃zv*5`2PM5/_6v|9cs0XWc2γ?էS:󵬋ae:JgӂVuג򀽁 Tdktp|eXw^ڕC ̬I(c;Iܔ,$!) qZV1`9_M(868%NyVg^]*nۅ-+FQ?;X4_A5s׸B[ gM(ίe@7kq=ǖ WdKy Y?ԗi !-%%jS[F\!'Wؙ/Kcu31z/1tRȈϷLtxLLGAܴj(GY$.Nd4?^E5x1Qdp$.U$i'ж{0(9 mg{ ^+U5kҧm丝@\Z+%ha;%ҥpCVRX;cZס0q2J^-ZZWFBD+ŹcoSWIeče;OEǠMψ Ђ?Hs&W$qlDO )U\ 1pQSM"/O>oNL^y%WJa'ܙie\Wls")Dyx=6Kë_2L9 Dwݧ6 [8H]ZOԸ4ؒT y+}蟋E說8L۔<:1#\|lN!%[ ak!Irs׀87gG_l ӲV[t\&]SPKK&*NqV6-jP>PȻfbVQ̾ZL]ރUKlTei2YYBt:[ML,82f(zuY (b2)Mɋ/axKrC [w Ģm)5/CG'zmhSI/j!_t"'@鰑vvJ^FC y?iK: ngy?Z.-Քf[>-qg~b2-~1_TǮ=u.!#ӓt܏ٿFݝi܍B[JFJosYc)W<78& Kҿ;e De%/r'glw<)d`&txțl*ad}N~N%S *\;GZYjS~#Y1 릛n7%+~, 6; 65KX([&>?p-Ơ9¦d 3ޙlwn><>tVGޚiyPrM{ek=y%:2|+LKI^7ۀI~L#zVgHm-|ER OO~HFsBzKY'|~/\tL?') ^VV)VUkoo>{oyCQs//КP6{i}Bm  sb|Jhn܂~ҚP=vna 4IyW;\#[4^;žh'6?φ,.VAMRҮm I*,ᴁ~%> gj13:z)$^Iǹ; (5M4+w&4AIKG]ySBGOX>_LN䶜} T%DX|D ,4C~8M$N9!C k*;6߂ghWv;>d@М\`D9 5۩}'{@(R ;_V?&"E$ JɊ3c,~ڰg ]_eq9Ta߉.\g2 \hO Y'MrgNƱCOfH% VZC;'"XNɊ/50[1"ȝ1V,#ʲV|+ =Wʺu6c{ UlPudRg'#zD v%= -Mh4Uk4#SZ15ʉņlV0Rۡ/}h6ܓ^]/G0r{ެӍ+0#/YYךٳ z>( Ԃv3eqaS"X/J2oDi*}7.Rh~H&Yo׀Wx_Fw;nJZQ4mDB yϽ>M`)ǹhB=#I}޼l70!+m= Û1휦F9 >fB0`U>1De BG>Qpg '`l8$ ͨf3 ViI#XN!խ, p hCIL$KMa Zσ"82Hÿ,P=r1 Q;y, 0t+ 2v$]AL=eLqR\D˛f.h 0nsKNH1 i<"Lz3]YT,}\Y# ESM'i!r=e.*Z;27Y&KD(GjjE=-ٴ`e&![̑a:zmLsۑ%{~JR3sm3yAs~!,Všzv_*zU5 Yy ٞQyx?yEƢtۜFY86[p"]2iqCᤛknT6I)J}8dbJ(Do%>z7ӷ莱}wQx~U㧬pQD9"]+?v/(-0'$@Ƿ͟,sEO4glRRp0"(*3xBk_ ҝW>brPn8 3(s޶ox+-PK=1޻0q21nuvola/128x128/filesystems/folder_yellow_open.pngUT ^ZAPQux śWR3*8(8 8RZ٨ keVfei efe3̓8cidVPjfh w]ւ`-߽p [i rF#'9rOm}Nw :%펉'-6>:xp-OAjB#)1`d%@62?q ng O-z CheA]E f6f:JR!,f%ƨTЍk1+h^F MF 8Neb,.F, S2} ~.|FPņ!n8SB8іZX4eNVvDžߧXQHuNvj/?B^{=:hѤ~Bq_^5IgjɩBUSZK8{VtMN܀H猘<ŕBk1VT.ޚ"ldr([-BO5HRZyVX0w1$pA2*`BB _eUr'scj)*}A p(*|9-1>CwX[>=聼-&[+ʊ0@VƆA7D 4syX.]XPdꅧSjh 2Ì4Mb3q1a.50 IM2u~A 5tFI0oF]hkڜ#=ɐuB.z JFg=O_sKK0le-c^Da|nbH 5%&+$L(6LihfK_V$[t4Nh2YA ̤A.,o]<3IV'.'d.2Xl.3׽ L˶ĵ!NA xg2z~ˋ8D /LngA5hl.A֔3Y⣢r^tEPUbaG]]Ш]G\u hcRx7*DtMtdԟ &4Xg${.\T1L-6/: w/o݌,wHϵEU:˗?`"iJ%0_1 ;|]|r5mȶ:=i7\36X߱tx;nڕBDs$.2F3L3k㸉;zdqa}}CPDQ 45D Tm 9MOfH']2BywX` ^.0q.Ĥ 1GU{9% dªnqh~dK>@!%jO_({{Ly9Ul.\R-ɱLNu%t] ֬iJ᫕pXHn[A(@vt 07E8kz%y^"{XYuLz#l-~#">+]'AZ 0w֒"HH<'NY ;&>REE@}嫄hxIF4KI@EO2nLkY*vP:#M}L %4d&ӝ):?N_DnYmU6nqfݣ3&*1iq𹁹"S!K4 O6x*iầCE; /M^ j4!xH4moU9ˆg mU.{0 BO*ZKqg$cbqIis5J0&\kl * _>e>p;vB MMAAc1;L#`^"O2xPJ@qlCvHNt2: zxڰڋQnE_h> Xdm-#A)9 A R5?u^T;{b$5({~:P 2@\޴X rru(Σ@}j ,4>/Y86@hvF_)M;k2Szx(UD}kHأTMkSCcjI Cƶ®\Q9 ifGA'^ɉ/bK)#.׮@|̡J&.j$eRܠBt]da:?nvPvo1g9eYU $6SzC_#CQ! ɯmʇ&wb/Z V<ʴ)|C2ҁ9ڞþd"|h2$%-_$;r.Y[^3?߇D-m 2GJQ y_?"XFc6eW{t3XjnJMpGUmh6 `&f]چ7U[Tc|,t%żNFzr,faII*Ȑ]gj?r1"*9%' =Nx{t;oE? %rxĖ#hE*%PdIZl}sAn ;k]x&A;<5&79^MS"A;Z2O~;mp6o9~} Wi&7fQAA8˜l$񉨢 \T#VFc6E$ˆ ;+G^%X/3RT@?12!sW:[E :ȼE,`s"¤_\*ݚntM<׳#q -˯,ν}dT|xm嬿E?9/˞*,c. ѥC>F-]TB+΋={Kħ#ߝF"|;f 2` ?mTva"0.u?[ŘB*{vdIUq옄,W-q' 7k!I=;̩}7q|$Zdjri1^.z%@d;wRljP]"k{+-)*nT)pMl@nyb/v;%=\0 f5#@v kC?r߀_[-|Dq퓪YuhVUrx-{ LpG☐EK*jAAw Au\ё0/{E!΍_Q2KS7/Gh\[u6CQapWpGFݢմ_@Sd%bv%) gf¸w2U6 蓻B@5iJnr1^ӆ]~3;YaLFKԱ>{ >yc$[鏡)󠕼=ee[tb(9u-4{(%9p}* *~XD0e~v9j:4.#Wդk<:꣋a1*`,ر@;^0:E{[;G@JMC%+B(FQs(7<#_0M;zq) yҽ^ʈkT8ߐ@B fA?+)˩ΪO ]7<PKЯ?݆QPqVdg%wbs^wa_fy',O-q99$-jzs; #yu|l҈ZsQ紬dڰ3|gzߙΖ+0 F?Q<ͮY$#N1w蔅IO?cUGReO0B.+'8)m+b{Mp4sRwbZd8q:߾D2,Jf40eČ{Ǚvx{X3S0=B;@ZLՕ5̟ڢ)'rWO0uzm$Oi{Dq{/*!DSDن߃udSpCsU"/rRlMV}i}My[A1_FuܕoRGvi,`u' h/ϲCŜٯ}wqq̽~ U/jBe*FwdWM|NobG@cdd:=RIzK'/E `66]7d{V0pyl]Mʼ8a@Ѱ4\ Aషe qʓcZ'Hfn[epaР?2, `lP5fL@H9IMɬc/c$"[$+T@Iġ|gr.TumU>գ55n9yܖO$2o}k&*tZo`gmƨYe +Ʉ |P6 $X z+`cKSIaSͤCp 5lePs&9C|gs0T _^~қsanЊX>z^ĕfW{9C$gX^ԑ(y;AjÏaL8&7b`Ed!s9\e)َز` ,HoȖΣ&\r~a?9Hge%?\e1t1,3c_c/0{X8"F&0&PX| #A6r_P,Jw{4t}8ޡXE4o9}W, FaKjky gO C 7CՖ99x} !#*'k7~.􌣠Oj0xqm+5꩕{o/ jS4bH]5uwwiPa琉]^l͵|( '5ZDxRRj/hdl*}"^=׃,!dm1nRBB{~2q;۲R-*%ּ)42~]阍ٿ]ZӫA/ǨL AQK"z 6Wi T+jg+' lBԠw1srlNȊYWٽB{xw} E.7А(LӨjFV 'd8{AFy V3\|tM9sa̴҃\8M/~t2a#],f%x}3Z{\UMNBz|\2aJyZ*g/YUy@2~>nphk. VTQB m@In㏲N sh"~|wK'k,$ *uA+A9Ed|J5[{ϱJFޢbUu? O7D9XQ&&2\p1ԃ:~qGlKbYw1i-K.W9j B7{PBquhr3 ?m_*݀#qx~$`dGX”qNLͱ=U Vǧa[_%{N;WɾZ^[o0OA>өȑR!H 2wR7X7 49vf.~UҀ"UB: %K { Kޡ p:BDiWcij"?2g{A UrQo,p{.Jt3ك?ƈI[뚄!ooX6T#ͷ+6K_ #9D%m`٩ߤWc!Eh Q7VB7dKKHj#KfRa.J[e/u~6Y)FWG8 oQy@3-F.(.]ɞʱ:X{=yUV=Fk ɿ|Fa{?<| ]n9 LiNvcxvEro~gSa 'jRlx8!_{طfkp͹;@PHۢ/ d\ [Rs%[m/)8C[h8J'E `EpȳLM}X[AZ"u8TbGؙІf4|'Z_\*.4~k&}Ϡ4mEAffCZ="@W<&\GUr2M$ H #})J:)*jy>-l'Xe½$6X˼mmy>I/ky 51MFEP齈-ǰ䬿(6%ݺOa%X<Q\9W7/|±~q ~F4ӾH 6+׵%%Vl:OqeC|ɖ/ȶDwo%oIy!+o-Te)E8[M<}.eBk-T16TjV48#_`KnQ9AQyZZ_OZrC0@EUnEB%֎K2ҍHh8>c_Cʉ}m ''SR/\3ܪspʃJkS1÷OmRiEqس [t?'F`/s ;HDt}CC};3#G&촖#qbZ{1K4ߑ%7&hxKD60\*6kC6?;[  31w`NJN myPrɈ79LE7ES+=H9Vb]~ʑ &߆R6s`tgwHӰhx|a{1~m̼RSldfR41K48G6y] ٠h 8LMn3tE'L잺h<]y G\n8 Ce~V6+v!h`DŽI~FS: II1e49oD#@+Pϸy#(cR4xŎ / _bC ®0uE}$1/!]_ BwV^)7z׆2&:nZ5&#vO@^\|&l܏3鳆SaH6HbwCf rG%(ROOW.:\y\m 1ʂ.z)YKaJ0V}-Qȴ`C/m:fk ۛ N2i^Z?B = #8qaͳ*fk#mΩYƶ_c\W0GjlcT1^y{pLQ(6ۍ3遥CJ8@ 3a72[ը#K@h iGs%j݇Vp?ZO1fcA|IX@Uɟ֙8m9qcךSg?3mªEPޛŒ*C F>[P R2|T o/*o>@Ts^ݖ&"jH%H^W5Dmh(d\^:-NJyJ*~Twl)i wZ;jQj4kl6WTj=k(PBMd* zgW5|hhΖrE93Y?}UMqSZs/suru3vAzE̘`eTxg$#) H?S=_gs WeVfɉPh =QN #j.4꫄\2( HjGt=$M3{@~pH eUe/FB*LZwnoj\JɬU+|h8\Ҏe;\&ȳNOF^[Mj]Tdv{di 2KFm0}ƒ0'ʘ,7M f@[ߪ~~!"/Z$\ U Eɂ7X nk}X^{bӓЪBLy9lw6R-0 sܣWe`~z7%uy8@e@(ZtǙyFڇ~R7/װH3 -}ŵjaaZx>_;Wfu-*o=Ӆ-{T@  NUj-nR#" *|`/,f]Ƴԫ Y\x?8@Ni}dS[㙘m 3 Dk͡QXPoq-xXuU% 4>RP28Z&4,mrW߬ j|ONR~W`0XVVNE÷)&HVwtdcw[8gTMu?2"*Ywv)l&@gsp&.]/)g%C߼DVy(+Wdx.y lyBܸM:dKhñ[ N.ѫat` Fpm ޥYYe sΨd|K:?HJBȑғ *7?,H yt}*1%UvwS5ڡDx<%nXs{w-`ij;ݟδ^ya5֊bbc(7#kBAcהUIN6 YL~,\pˏPKe=1RNT"nuvola/128x128/filesystems/ftp.pngUT ,ZAPQux u|{k}{PVU@yޕSr~Xdlug5SNƅP{CCƾ u}nAbȳ@WXz;;}E Vnkpc3337w4A,TZcSBr( 0[ 1,x2Z4FJHMlNʂr//{CqYTjϙ@|bYVnJp8trqNDGM0$#w$H'ѱVyF)=ªĚv\vn ּ;aFzyyQ8KbL ^"W^h.Auz1.xNĀ9a!`g Xn nQ:MVBqTDor$2X4^,jqMdK& W<;"1[: ).pfo).=Ceu=-(֣ǸIł:SF`wvlew{Rv4 |7-Q,}bFo@1QaWs0!qi^8IIU{a&3n1PuM򏊒ׯ% Eq\&pl&gPWu]C}_i h(O'XOǰ ? [=h ,]$C nI$Y+ۀOXnit$>>I(Y'Y;" ̱ݞӆXfvFcKt`斸՘8KHJ#~*N.Cꌧ({x*):A5u)}Xk3۴m)Čί= "'Kd.b%ߕK?Bj:Ev\}Hq6}8A嫽F"a6ґBrA)_ nv;+8z-t uBy&zNvFIC mI(G/bp0Z?4${躤%}$3fl!^X #m^J~CV=C)j.2d[ax\G %!ύqD Y-#4f$$rL~vQ#AAr53C W@%k U:ŴpaW3uk˝ᶍmaڻ͋g-Ӝ0%Sr_)J=BB]EY<{EСզԨwajk8"2}TG*wu̹.y DKη13.(%Hy;)ٌ C_M_Ť,/K;al^qCnO@Rxpwbk~yvge7EUk8j QP CKb?Vd/L6})neUDSI4U "x mMoVEjbaǰ|_KzzN(k:ضHް|&ʚ63!䔜-}͔BeHHuVxq8й'aI~sy%ŧeJp?Wٞ_+ r+کx<_s`.TP$ÍVB&YtA`'h*?ʼnbl}bٕ 9;)tO(+4 !0HYǐ;J⛰rw\ɹjQLfץ<# ֲA ^X_v?>qq m?mZs .u*E{0~Grw@G >`c/,(X sCo\K7m-/fEz3i&tA90VQ^k+ĺZ0dv4};:?ڐ*Kl@=i0%'!ⷘe; 2o=nBtE"Eze=7gw _&s]ax M[ftywD!/haOFcrW5Z<>YSW&_@Kv%n8=Me XWJ7LuN,!9;BKς Th&1ǙwvӻB5ݮ|.EREyhg/kH)P1rOR#J+9 Uκ$m0} }І"J+y5_0!^,0>#J4d1h,a]wo a=5=6,T7a~}ͬty{s]Ss])kymVtqeX(f GX'w&?!N4SYeٶ@`dECq_Q|<3/  xXՁUL;S:ҫK|1L_+z,XM.rrPJG|X:l\L+hKkEfr־(8x3nc_,^uE `#ZJ4r0.b<~͌J0(a@oG u7/yKdH?wj%ł=й#RbN?4)º:FvrG-bإF_a򌼽=%@,M2;SsM6IFSh?C`Wot C\1>ژ+[mctVJ[j g=)%CoN6Fk&p?j.ZQ_L:pBŲD|/IP*>'ج8-1f3gͻv.$\m}ѺadYZsdi1G5A(<:3s,`^!b1#`-E$ZTJ|**I2], YI{3֣e:'g5:i C'ї0!0iɻ)ivu |L1m}JVqcB¢)CRa: IY+VyQL!9/eQgPy#"&tkg@W `Xx]] v׺[Oz =jm[zuU7MJy$sQekZ%`jy_r (,JǫI XIR708fFFdeW+,4 a%ۗ iX5,pbk]fW^SpJgRW}v D$#fYb <ʛI;p7-ghu3F/H e| ] ptDе2HlCz J1yǡ4R2)3wk y;#osQzyK1 F(AE&Q,yŝS j{!ҾAFF Pk rW=^IW!2hQPsm{O؏QܳcsF 5CB ѶA*n]< Ci"Ŕ^ڿ2b=M|v^jbι[Cq2~8A7mHp Zt4bIZ['!'[144os9n$`XǗ|5 '`?Jȹ>9 ;x䔤[aUӄ[2:*ehb{i@ ~` 9A30\Z 3O N)saE55F˷4)IT$qqOlS5sEiHՠ?Gd71>N~ Z>hHBR Ҷ&u4&fc?7!^&V1!u`:6 H#tZ5' t& j8jKhb_Z)s׺7bRpaH(zb"ghFh\N;NrV CB)Rphƃ'bߵcZT"ˀ{'= ܏SmF|FvMUIۗ{7n$u|Kv"96d%,|вzqj\X[!j61#<9vr*v$UCSx6I]sCU< "_nf3MqKFc6*bi h'|Ƕ6)0-2\x%;1n2j2ь•ɍz{FZ; l#$e{3 OͿ.W@BY6l*צ5% 9i.gMpyKcյQhʎpр(UA(* 44LY:?.3πh؃ŦX LAOWFҳaX-[O&fxr9 3'):K  Q킟Y0݌MB QޔO]4d#w}7/bdskxMC5OJS$bMKL})nƑ.XRn`Jٺ| I'@ }glkޖckMt˱iR-xq3PDά,V L!82яEC|QL!CS=ZV3ςЎ5߶xڏjՀ(iP@lIɮצ{|/cB1Clq.wZ2կ92:M gzjƆ/G!2A:1%zfpUdB>R]jFT8s VO `cR/NTt6zJkp[ᮻr2 )1F:\cLM+{q1AáLNf :mqdetY?ǫ:|q*62A=]Pk^$y 4Hm@9p`AKH w#B GNd.)K\L@6C933; an@\5ب\uohMOv 0ToAA r0ҫ[_,y22c#:!9/ƆT|ԩ不Kof sLqk@ M_ QB{jtUa 2z ȓaAi[=5*~t*\ I.$+(nkjtw|~eNibB̀Vо܍v|&\'8؟_ɻjj_އ<5u] *Z炵[Џ7 \&y|tLJYh^_;~ڐ]",9ֹ:Ʋ*Dg|cDEMK=kHgKVe9yM '쨬*sY}cruprPg/[2OՅ>)HŢ|ǫ^*}uݞٽFUVN^6d;[]T~~hd C]/r_$ӻ/}Ih.H'ݪ\+g 2 v`;Ol*Ti}ft oR7]eS' f[^x1yH3XssXv47O eΎ2h!T cp sESV= w!v99fIRuaU/u`s)9vFjO<ҋۙ6n6=+Ӫbo_xnD/nʯ8(pm\`žFWwU}vuU'i7'SJ .=8e~PayvqU CpT5GiԛS~鼓5A귺2U[,UW먉.u{5MTfR`ޕzt{WK&-B1}E_eKF `F|Zq|fGjhC?s]n=CMq;~8GiZ}7UiВ< צʯwrU3C/[3`mNsP >mnb.nrZMH) aߡZJ=.&2M- Eܵ邙֠]kۨHDdl|+S"?U``Jed4d;Q8Zhk|(C؊YpߦihB"H;ȓ!9 g2hG$. 0 ;p0ޣѯr fdNʴ قwr\uRp|nI:rq8f @ TX3gZwlU) 苮s^jB6ZIoo;-B"V4=Dr+1΍^U4Y%OZ_vB@׏WRNMƿyćxfԛ7 2(٘sugVbIK+w6{؄5[&M,` 6?m`U(gZ˚p,]}Ak/$ɧ7Kzߋ(߾akw솅}[ga,g'Q 6aU_XP?LO Ulq.`9 d:G&kƻ##Z) %C5P+TH3uf̞\]h–}h*VD~ή9+ H7>[dzNiwמ?9 X-gP$ )uMCp2J ͩ<0A] /ՆV2[ѻ:Oo0zDTBjFnD{‘ b|6ڵ#/>` Ԟ=eJ~sg`+@WZ,E}N! RILN89Cߨd0h[4w .8P֏S" ֪  !`c-[IA~ UY yc&og#ܝ=fӒ.k鍀o:8^ޏnHޒ"A1.'Yo۬Qy!KЫG90}Vru4SKqBk]yܼF/aVknoɽ>)+Z; %<z"3M27 c詷ɟձ_ EׅG; c.5 ?[Z Q XF,X^>dԤR`vvVFՠaV7 u|qp1OqEzp^EF;tHAz~si%fg}s*3LkíFgbN_TǑ2 D_4 .U-#)$  jB|ZQV삛.с?'lWY7֕y,ͧ}=Iyk$9ڣhdʐ;rQ+} P=y׉]J`* (ۿg zo >/6JsAKX.VvH|TO%;q>^[jB=l"xnCա2sBMgSDY6z@vero x3`{0p?{X/,KXFe]))8K_%mMp| . %?8xBJkrn!#br-H+6Q*_ ^"yUAXϛvHs )km;Xnun>t8_[3vQUPZGVtMaz0C <  wMNNz&Jj2t彛eQk!$VT>~Aey0U6} T0OOrUrOB>ʏ<9pMs9}UUi# AzY NJ`*U*q {c7e -#mpp+~:^TV}r'vB^<`e$u[ B:9rC'+JHΙ8xA]aOʛ}mWZmf @Zݾua|">첞̇{ƫxeO;9YZr>l!/fZBWZ0Ur4"|1bA}rj5 KTYstr(|!(BgY]gY%9ClHrAC.j/+7W6gO2c%{8G gt*]F=EoM]֢+Rb.,v{CYqLBWȆQ^C? >xb 鶡EhƠ[w/YI 9W=%;H$Wďd@3ed~3hbrJ3DVem}mE z0j\yxChV J\˷ꚢ6ϝy]{'«IȕqX`$Pf^<@[ 㽺׳qeͼ"6Pѿi^e5B(}V 8mCM\|5_R(0Pnj,GDJ R)aKOTWt W$DCfzіիgC"R.dC6".{e{)Cgvap5yLD|/]F v!F$UGk<՞リ_?e 1a+ egpbXCĸwD^fctrlo[3&sb$:BQB}C0+7b1H2!\QlX4s] J!?1j%¾p!c%} W v"TT(WrǾ.e@pX_g `M]loHSkщ1^AXs2 =S#]` d3]=q901¼̻ r/BjG}E/cG_[jP`krQkWdxhiNlC{Ei6C\Gmqz{m7փB;G #6ѼsI]opF*`-XY$bAdG֝ z\wjr~&[f%}~)tʼnS\^7;-<<,O E\g3bMEex:\cNSwFWLrrkhUkwFqhVs$I7)6PQe4096Gߔ>N(Dsw's([e4|jq& t^v~u.b_'!ic̟1?zC"5A} ',5Č|?X'g*<5pw Hk;׃$ pYP8l`<6MD _FI*C>\ o*z0Xr%ID;Mϒ| -|[`xi)[0? &*"VYRsr{!GT{ëR!نj.ygHLz3ܶomZF9A޷os}G/Xh H@ By$&+ L ̷~\G]l<)}zF5Jlͭ\ӹRmZezZŤjf3يD$mUA<yl6ԇŰ4AKNpSIhk](E{G;ʇ1;@ Ko"#";;͒=JpܘWO7Xld?4aH%%~#Ǫ+/ |!:R;^:/ 2Cv+kJI$zQH=.7rW"v,QoJ]蚦ZhWH޿Rt>*u}66:N6 :\BI`2DxYEVIt'fmGYz)/F,[&.6U0FCX)w IWz\RFl5MB$Av!NoV@h!TϴjSgB^&ߴ T.ia z摾 %ŤB p|,\iݶ SxD*bHjl~ǃyCj̶"nEFt-O nS2&bH3U"=ֺvqCk6!i`/p /^dDJ%( ur.-'?l@z> +Q>F*yN OJdڰ2ZE^$I}Eךe$~PDB-l:R*Y|T=a#|FR4z*o+Q6RH~=^u#7w=R6dQ3}##3 z.*Ifx Ć{)ƩrHK ~(^XegTB.=Nem7pa3٘_.H9b Wb+Aztد/xd ﷧12F607xws=FY #2Mصߛu-?X47s gݑ.ִ̄oإ5tFA E| uu ڧ.(E#BY9u)*h$z[kD]Izl.ܼɄ^80k|~w+0KS]툹U@H쉲MX^֏i9JN `#t~;WW~pJc\VM+o45.C/EVGjif!Ik,l2Ct%G:[xci(#s>~rxAslHgR/6( a,%T%>A4@VZ,t+FCw}3U +k_JxwA&E^@ [ Cg(?](`H*YA.& %M^Zt<.Ũ&`DL#*q@ _Q?O]'[zGyxQ谒+ba}K(e^6f*R&VKr:Hb#$ԩcjȍ0gC/#`W-bZn,FN߮׷[uDz7zb dOu1xg~%XPaF4DW2ks!Rbf~#`b(ߖ~ G\,R I\|ye82Hq+2=0b>rWK7!j'c巚.x˱ "?{^`dyV*o7m>bDºS`4L<% RHZU$ [R۷#67B U2_7TxU^7߽ma ]yKV_\T 1&]&sjs}Mm:LBT ;p+r7B-A׆nYVb..guYD,بsʥM9h, gšTѬUt+tR[pOUBZ_ SR- az6a{`>6k=~i8o9' _f'G$3{ ?|!ahmlAG= 9.iHbf^:i{(c6W Gz=5_ϮU#k S(T`5)nA7_qi<ޯ/"v0 C:*6ZQ/y4HU%Ǯ¯d6 +0`8f8utJ5ٌ)OFi2o0W}eaTu,/  ҥ[\-6gvERlx4]D8ө!DD|K7)Hf-$b .+[OokP3{2h0rXz3[л납a *W6%%g9ީ~ C;%/۠%eYp`VQzn<`!`/:uΥ '672aQE?:'CJ>|jt{4./ XHnjZ0KQ{շ+ˎdR!M:Nc͇͒fD: yT9ʜɗVWȭY7QI j]Jh+I*|J֏>#* 7RoyՀ*4hĚ:3#{~̠j/(5W(f!e>t/iUV!hHYHR"A9n)4%4ЋN^2V"풭r!Xu U*`ÔQ( g5<>o2>p۬ڭ|OKP"n3,^].x 6x8zp[ ]D˴dR"?8.\u^uz,\@ ? ?llr]lX!H<.Q>$(F_B 1Ic[LivQ% Zl-P)к e|'}e<pVwQTTe\ؼ񏈪=BTKsuj&ӮtT}1E:ɴRX>/ܱYg1⽤4pԹUETZ`@Y4Bk[,]*y8X׊C˔(Z 'k#IE䞿2`EcJ;`%&z1/pb&k87 qbWeݤs.&tz+ l?7Hkg3 Yw]jF3A]hj 崿KeJH``=)>zAO q x?h0Qrwr*8y|vO2 IYdZ?"@\dN򞤺 l8xr J}" 6Q5iw;iGS@h2HhIĻ~{7剪FɳI[t/ Kj9uŁ(AIv*ΡnQBQ/]8EYWᲣڔD%F+u@?"*{s] D rLy.RtKnAP[L,[ ;WH:0mv~f?Q;#ݝ|:WH)!2Vꭟ}_NG{=|Rl6@3^j|N k:fxpу8G6B0DK=*ٜ-=sW#]xA]9A<6"󡌽I"VIVJv ߢ&QaJëZb}EKNG&u?Ͳ%6RPv$:`sƥ^ k"nA&j"a/z7%ߔ RrNi-1]Ra{7a{T͌ʹhqu >"i.lPr\Z{fnu/s8ZLW0c@mG󞿒nH/QOt$(#}o_z g=3/EOmg99&-^;t}D~d3IyB{^8y0] j ];_ 嬨I4]7}/dC/psyoʞNH 8 k֢v,kiULѵ)/?D{k.~tRhafHH J)R[ҩ/;/.HʈK0BU}sn$kgh[yszDO*m ~8t"6츎)w=gJ?{d/En\`#*Yݕ^wuj,LW%cGBM$#\o {KJtL%&tU®*\ݵ @Vp= RZ#2Sy*I u"*S"^N(:ȶi"] . Jq ȋ='Zw1/<8L6W⪼<aȻ [bPa~VEuL-B@;akVKrUu睏3z&$7oۜz,dȿ`bP6?(,qTST"Vn你!wCxWVJ]NѻfzKH]=ಈ]0K Ba艹\`WgI(غeMPKg=1Zw#nuvola/128x128/filesystems/link.pngUT ZAPQux WSٷ aĀ+Q" Idb`""BTPpeDPPGxҢ ( 0aAe$ʌ(*$7 uUsϽ;͓3>OT|6{E#&J)Z݌'߭R|S}ʮq@-&bKи=ww?0͎ܫS)bXvs~fZ* IC pOl"M/d,TձOofLm)AAA3PhPAm"c_}C^1s,dr*ccx OⷱZ _ST:*Vdx ebqwwܚƝi*(ڈDz)bBcIߕ}yV3:ƶQC^?ۧjx^ڎY'[jow`6C %"!Mi,PF9%{$yR_ KKyxڒܝ*1Ԗ!|?.^R@&oX,w4eS"d-J!uxd$lΡC&|O" d m bAbb!:‘n輩9NG> %T\]mk0湬@P8$ i$X +f B۞7Ŕ|vXJ.7W];չR)TEa'J?H4\4b=uLEZ9GRYRۯWz)iZ.n|Cea*腹Kx_,YB?~pk/uu4rγb57Mf3dZmUI)8JHn eZZJ>K… :5k>GfPH y .LdȖF5{ޭƁ`. C|ccU ʤܑ32-)bjNl$")@\5(nxiŰNMrྙ|!#,/K2U5[M| o_l$.gMowf=[\ 'baG&#ގ x{ްFgn.t^3oRΜ2b1x :J_0-ilo[ጉqY-[M3(Y}A@*j@5MRΐNJGjzGl?SsamvKԿ; fAFS|>{lbif4W.}E)MO/ED`"սn6^7L䈈[+36Tʏ ѐ[4` $f@o$-;\ϱ&y8`Ek$_ݦ=`vO‡b`dG Y\q*b[r|5T299>齾HA?It@͔EfJfs jf|ͬxd=(Ē$ @8҆Q&$$dٙu3K~|ӪF(yk6*q=x9Jh$9*{n-:Rڇ_r;-jHJJgY덺2&V8Dt-Mlԃi2A]kw] .c1='Xja].Y,!|I(i8xjqq ciWkI. NO<d @y-F?ʤ-jK3pKKXUȒel[lN 댂W-&Grǐ}ԧږMyyt]+j6D|l+a j ]5W/Bo&-O/sd&4uB>ڡi}"=uyĵkϸ*jw=A6S~"j7fB^EG1GQ׵$}(i}Jwj^؉ʽ\m |)Ɣ.(lW ,:HU ّ&0!pT ,]̆s ]]oZ7Yt{""M#PI>hڥGSJuJ# $uQ[v/[fmfj0b+RY&*N3e舴_-c,/4"!"-X*5#y9$O·Av <<ZL{g8S &n6`/bu4Jq˄D1g]O$yM׾Zoӫ !+,t.*;W4C̃iAP %z ?{i >US1hCQuIK&m;wQ3sJmI :+ZfF5>V E5aJ'g^zSM]ԆMN&`ŭӈ3,Eb-rvΟ/:Kꧾ;^:(Z䝃/h[YhD|n ZOύˏJNPwjG%+팹OW DędVyy?dS+@0 sPT*0eԓOY%*'zXn+XFnBe90Vn168}OXB+OtXK/׿QK}1*Y5CBSn+L Kd^kcy ֶt&<~q74_ \&8< %DUՔ>.i"C%nFEk@y8e!|AzulϞ<~dvع1t.7{G/)3\Pыj1؅&`LYK6t74]o <2 8RX T煂b2cڣ3X@tvj|=U,T;zTh^I`*ȁ{k޺WB;1)`aERljH+L)QTo!lO.)sq2}~i 4Z?@ۊZvW%rlRyAcq@g'-qf /P ԚDliO ,O"@H3"fc7OIRP8CC>f&~rt M#ZV]5i%`k@a6!-ܓ=v=P(ʣ>mj×^vKul(}."zWRy*GֲZvg/9שi~^5\++F?f\W;)AU\GhrRFJDuY P@SdIT?ޑ|(+@Tpj{eTP-HXXѳԁretM:VCw3jo/1q<@H0%OjvvKK˞4rxȵ|(y|,;hqg)arA޹wVhؤ!!_Vo[OdOY[ C\aЉl_'Ɏ dfv~c)O{3p w9JtH-<i:AYIuƾ S'qG<DzrWle"6.ˏr}/ld-urCtL?Zh\(~XDLbtp0P me3Dy/5Ϳܶ X4Ivi?bZGhlkp}o fN#͡MLw/^!Grmk4V24?NdfgpG)OWɕ̑FSĞ =˔0z^/b5_0kOM tӶᛈJN;;zsΖ ̢>8k##~Ԕ"Bu'cn>!u|ç oѻlJq[]>Y[g]~u;cI 1طɍΙQ۔> #Tӊd=?PŘ> 7'THlHO{c8czf^=ׁK ~/LOo ;<]YRպNA>}'ȿ"2kf^yaTabF፯s,>91JօRw<]Z2_qYk6=%Y(j%3?_]_ H=~_e {3 xmC")boXq%^iishs N,Y%X:^*hx__82ϝvL52d~%m"sfn|-R4 `[A{f]m+oT-7$ttðÏi}W㟞2F:M׶RŠdHLN;\QAYbqX ؠb8$Ӂ$C%mp0 ).q0#OwkMMQX̊wJ0j+ ]g0|KCq])`80,^bηz^AZWJkro7l]cgm _]-rD4Mi# ĀpH5Iτg'P ?;U=kĎS&kvb,^8n$/Kŏ7MWE* {ht&y Rkj@@]Samm<`Q@]̈́pjG6c*;BIXUߴu(L܁!S@5UeO H"U|].=9'~@=WuQ0lD>^xlOn(#̝H`D7Ir2$(AqO|z8QR:Ψڰ VoƓdٽ{я9>_"}Jԣ He`O~?/PE'ϸJ408)h Z;w@Arxe,gDٽ?&^M4:.|7cłEQ(*(B 3^g'xAS yJsO?v|wS\kkhܙNNrO ׺AXMJxUU[GJ3xhY^0%N?2odhqCc t:àBW-/'y' nj<ƊV;AxX9oќژvH`hp}vmBfJpcpV 7jcщY)'KDސ]-6E, B N6m άQM.mdC*k)f ?1 v<6ǺRR0]λO`D0D隗8/9giqn^zM }NKZ< kL-ѕS835TBUKmxsU  .8u٤eTӠ FZ" ztzD<+p@^],Pn O,FA[)"hB3.-Uق;%/5kX.cW~EsSVxM~ZQ6pbȃ9\N/:UCUi|Isc5*>[dɩ | 2OV"fDnEH Jlbª !|Ɓ~i-$G=L<-seV"]м><[0)BX}i\[a> ޏsԴ74L`|5ףSVuV9 Wh><Ӽzy`99V k;˥XwZ/l?RYZ舕83M$ kGh*j];J俬fIxOH]ʸ.w4K..Zvdu\$]K -b/*N+^ti=RAIo9}g_)0eiQ 8TTvC!8|S]U타6SbmKyZ(m;I'n7TT),+Xdb)?ҙRg-H(#ڑrԌ4i~^C2ZjoN> [+Ip-ދ35m] W~p"7Vw펛|Z ~WQ<(/s9^SV^T(K\XJFXt.*0mM>H=Gn<PzVZ֠DJ`b /ȕ*5ጒ /c SâmqՈe E ^}`B l $XDG(w_3p;L>豎iĞ_~ia\[O6%t1b諺N*_uw`SX o<kU(F҈ʑY;\k<ɝNG4PޗOPz>my7VS2X>30]KMx k\y-F"N8XguzcKZu5y^d fpoccN;@r+^(İj^`=h.B@}{{"(/c`}K0+WgV&Q 060 :ә&{[Tƫpe%d9fsD%bƿ6f3kk˺9לznCxq4Bd>]R8CѤenxܜ~Fާr7Q-] xz06 NٮN ft"]n T]%]/@&#s)U1T)2 2nr/{7$c\S %PxĻb+!&DԯT\vb]ƚx?tC6_ٓvEjgJ z6 QEgKrS΢6]x#LRG. ɽi9a0Ux # E['-M7k-Vᓟ[~5%Li włڍK;>u|EǛp] W 8LmQ޴ĶBٙӛ -͡ DlD,3 } aUS@x5RutPϥKt{I]Z-0`&/X5b-ck`bXF.%xzmmr&RN08JuM>ycكǹלoP\Z3|0Q=D G(/ 1Ja *?WP%}5` ֥L Pc=z>Tƀxtڂ.+Tmbfī $a=ykpՑJP׸k쳆 A͔z,Q :E1W=\o|p"J Yyv|FN tI^&~rӬIRW=\+6^ *t3Iݧ/qk_!ܖOkQM is$UחO+\b^))A>#65IOգ=Р,*89S y[7B- >eak\Kڸ#-ϋv$W*"al܅ڴL%+ҟZB|Ma~:gBnn_m&[bBRbwC|`̼ MYl1z3_Y=OG&Ы"]nk,JM1\q0 ^$tC"4S3HR7KЁ 1~8^xa^y?GuQĶ "yjtM!^ o"Po@5i,yh=ؑ_"\]|^[ds$qH_fa160 W<)/N$y~c_$ImRRXuɽlQGTE6u& salR؊2`;)=9dPyAM+ wQGM D9&eؒ'VfPzԷ5CgV 7i^YP=}XRG%j7-oW QgWuO Frv-ol(/^L|~ b?5]MV. Q%R(Pi O=.~F{wnVnX_g;g,)ͲABWH)N{ ѳBJt}2@ 6IqX]pbOoK#y66Ԩ^ڧ4vr{c9*MPԸmϫ?U)TڹI6b˶OF8i {̈1y|hƞPvkd92 פ6s|^jſ=[:si|~MDe^XVr=]ccCP[*i!!?u7Q;V(MM@ol@"c=ʸ@Pw@L{頏{&ٍ=C@Ƀ=*R4ߖr.יA/|0sZ2rkl~]iPl}Zq61ms3ɏ2ƒY47YG^5ek V{p{HCB}6P7,9Ls oᄌ]*;92'#\& J/V5!8 >j:mks=?`?|WTw=EGd|w/:d_'Rhnn}\:jxo֚4gs] Z-3 Fu;8Vohq({Ly؞Φ?O{sziRCX3ɇؓҐSK< h\Be-${SZXBBaXfG_-(=U`zʄ!xTZ_<𥀎/0k ϼD{注Ȯe'ݸ5` ӾXj|ɐ*B?o"0#LT;uhAuL VE{b4uf#*b^]y_Z$ xg * u2l]F'i:B=')Z+ O _A33q!0 >בKSO+o?Q :euS BJM£ĥ_.|;S8e5΀#/3(70RMhO5dIzQ`إO0Z* 1dHUi˒װ_HYYD˃zQzY/0qW>W^bvO+oG łEhEJC87Ӂ)ۋU>>#S⾚:,:MU}L*Օ:bItIsߦ"J{T%LO͛FikJ.O%vyq-[pʮ5x%tt"2 ˻kS7 x5ًݏ{1 y_?p۹nFθƶU/ڛÚ۩'MT&aC[9A/q)p=^ HUUP`02P/m P[G}r"gϚJ3$'$V;q|Tc B8 uV@^σ|ϸw؁Q弙!ok bp7側K9$eB~O $m 1oUܔ*AoLvK-sf6ufZ1mꮅ&BrU#UtPS84Jz`ro{rkL#Ga[ŵoW"5"ɠh:"ɴyo<ӱeXn]PEhlԒa;xqZwˡzOPJzXljx9j#q41 bH0ʸ# RAb^Hb$[t'-A|Mp+eD+O?+r L0`2&Ġb%#Qm\\ӡTA5X9bӑqD'ZP7@hkwR".<l%ћأ}! 0٨uPxT`ppt}/#.M} bfso#cW.^d1;ij\ {D] ` ))V2iFyZMFzF0j=vQ0c=KT^(}efc' i[:;1Є+W l)&,~uup k& Ng>{8<WmnK0+ ˗rA)a%,(".^{6q8PcQ|ԟQ[ckՍc"7*]*/rL UEIg AAueP;ՏcCb0~Cp<ݮm%<}\u^ppMT-S`ƋlAG3l4VC. ogiM8e%7-'e:OyaExy-SWbY!|ڱ\!g2odF b5Kb ׼f0ZXY>J9 ۱D Q)N&E ʤP@_0? >b>ג54:{Jʄk!`{C(IsO5T5(s4N?۠k'̮/m'Rgl[ fZ#b^f4ƣW{nefovV/eS|y"WlՂeT+I,j$qikR3 ?gb 9)MFmMb @9XbGoGPƺK~2[_HyjBJ4J9_-bz:UkǥZK)txvފkwygh3"\h\v ZXG̠z1RA 1/g")Ta˻ZcQ@suq9:լw++x ZƮ)ǖts `޽WV{`z:.s2Y- }Ձ43+j o8͇p ͺ띗\FV N-Yw›='3QOps6"1Fe?7O oWYyCCGc'5 A}P)}Z16w=)b]\Up/@Pηc~$$/\W޿QjWMDJ7jǝ&lU$_ת|9@X<,~-?p}:;rnaOm 1V;l);2ctz:g@S` wxqZ4<1E›܂:9;H3O{ Vqo`!߁?Č W@Vfm{)D 1w+& ح)Db0AXNUe%rLuTQiɺy&;fjҿdhq $\~NCݶ*3H?MJN4ƕ[)wFh/EX y5vw;r?F)1RYe Ps@NE,S\˹򽚆~Buԝ-!YF_ϭ^ $|S˫?OXIƖR5'9;7tz:SA\_VR :5&=ΗJO^ۘCK$fTXa&k-Oѐ`iP ?3}s>#ZС,=AI/oTVnŹ[i4\/PwmbR)x_y:ӂ+9A[R}H. xkr",=dk4!tU8=ޒ?IE>B!+fc%(7I-&uBrU

      s^ɱVUC:[ lPV쒎^k!p]߷tv}3l@٬>?7jsRSwjv ]fhօ܅dM죾rt#C` u=Muz0&1#/(U 8%%TܕLC 7FBV O Fq[ЗɑN0W+Yy\m+Zݹr֚j \%1J]ZR=5XnjB r}ǀro:2*;!Ϋ%_'YPU CZw &ƍ@ܡ_ٻ:eLbяΥINRlO{"gD̈=KIzKs-zkrDB3__Sz{Ga_1_yoܞZ:<6CXw!Z(rE |s/Q}2k]h;ar Zs˿+(+Q)2~98pޛ8L.!cગ}F_(sad|젙y,@]|mE ?qh,(btN=C ixذm*ꘆ<,1K2t:#6gA BrR 0Nf{u6HK &/ͦ >YX.E'173^lҭX`kJNEct~X/Xk8z ؿ5~+ޙfJ$ֶS6tt]O@)\Uo%:ϷgPu7o3Pށ: >wk}?U*_뀄Bo<0H:4 ?E ~u>C)y^#hRptsؗWĪ{Z0K)% 8|s].]-マ\M/:xKK+e8t'ѭوIJlo}jo9Bkf2l=(?!ѥEU({نScW n,]jnx\S 8W|>4#kWl*+ahn&Qܦi AEvR*s SXwvcfv}O-M4]9fJJ<25 i 9ћ< ٙ_ bEӵ݃+I0?IL qgȉoیٓ1Pd Mup3e²Ѓ=_mvlh~uZUE$ f>ݣOW=ǹK=/Cqw=D.SR $9Y8u9A1tXCZDN]Bj*Wc^}VD4<:0LSz: Yeˮo<_TQnƾ{Csʙᬏ[%3џ'pn±yw qSrFZn"|/DY7,(>2bm)(ђ|Li[9a\3`ئ" &jҒ7fTCSaNB[ZzտAl@CE,UItk ^EJT+a#}xc:8)nu %rzz {j\p:EZsn62R ̒l=8nAmM$gn:e`>Z΅}*vr( ^\/`MvKsI`U/Q˰M"m&&W-vd{t?ubyf%bKXC7an^jIRgX}er>u%<߉ru?7Tqo]uPjrjNp4k5y$hq_ԝr }?QV8Jk-Y;٭öm[~V;_Ex5EGxJR~3Z^X9 m}Vd+Odl8!^zkSe6huM6O0g5{V-Kf;H Vf1d)I>0k'64N_8PHzE5RN}mZ,{G9|}`o&KTKcWmFO+c|rԁ>76zA,U,*m=%Xvp6^nѽCXՀEVZ[#mxN꠳4um^ܳ#C.!`4X9rN2wa[#3b"93 p8]?ha7:clK@ >AyepZ>%2&/'J`*Iij=T'CL^U$Jb3vGKGec!oT j ͘ 4EtZwݤ4W_qt5Pn.DbL'+26^oE4|xT˾+`kֳ8,䴥9ꝵrGa8lgzz#<̌޶m[zV0Q-{) bZP 9s3s6{ #,u;%kblѡ&96Ubn lGYp,5KX6j ®/};MNFIՉs:]x3]N?tC*|QrQQB/.wB3XMtJV&b\k'R_VWo_ 7-w`BEBQf> yl̰$dsyֈռskUTkw>M%3UF]nW3?2fFULػ&N]wԄ'N5ŽuoWc_|{%WG9tDy _4FP߿%fطT&2&[6 =VP0/P(~ h3*ږv]zΙc5[LcDâR5ŷjQP5 6%L)?}Ai90\Odb.ncJ7R3%Qfv_jų`U}jj-$iytk{STK=0OW{Fi8i0k>ѪXY%QFf 3`1Yet *hȹ-_>J"=fӥeB u.~ Ed@HGh!yQ[Bsc881 0v y -) kXR_c&Fr}S:>,d`|>Rx. y~8W\sb~v"sHr$2RV( "r8Ɛ;vKۑ~ЕV^ZT$[+;ccs9gFz55)MB[ŷ}$1}󣢙gKg8S_ewђ)~V` v`jnV2sV5țSF&)q 5H3 HC p)PY8i,͈l`קɉ{NhC afv",Ii 6=JSki o:3C;8roF"^bTuHZ"cfb zqgZg8o f[ŵD&hj1VՒ'QJ[^\M^^O.*(iL2T"7֔xzw:ǤfZT'3IȌ3gɽhro\$},>_yQ ]lA)fÙ)ǝt=n6c?E/kwg?ڰa:_9'H}ə:'eDȓᄐv!fQhB.;/kΓ/ j!ҡy po jFE0ږ'3 <;iknd2eMsmӎkkS1ۃir]4Li/ԗ <X7Co8aV#Z$sTZ[q cZ&ɯN*^r%/OBqLxsE2L^41%5˒Hj)_w6GvruЖqtxw܅W[,_"C?-_MоղdH"&mֲ0īNnIYjzgAZd!dFAk 1;j+kdG g590S)|1 0S'!/ݎ>ݣ$Gj2}ሞ1+ o%1`{?1ke['BDCK0E"s\j62PDlGa?uJT͖֔a ZB&r^N-Q;` 9'Tԁ% eMAFY0 K?0+tZe6(Wbd\Y4wAQLs]؆(V"!8#% R)^07DU&K*⧾y@@,2}6[uǘGL@B"A|c<6 ՖrVu: $+bGGܗpOe4hiq.y PN?zbF`;kkksG7Fee-ܒaFSho>̥@8O8ЀNq2?9\h}B:Ei!_\;.jӝRIIgϪژ}V|HH'퐳4 0?|UrpMu!Rw܉54"s)_ ]Zĺne@fwxʒds`륉=C+QV/r|ԡ05nܭ]EoL'wqw݋AːSSӝ! {ÎV_|CkzwTLe썎?##8<+TP: UdafׯgĴ zzp_ 7'G8([UEDFDJױl_]ьZ>VeǑ7|dycl ݻlĢOON uSsyy߮>2Ё&,hz) O["2&0rAE5 cW(C666X---O&D*KıqF`j0ƈzk'n{5<:5|-?=MEeT nۓ2=Y|B+$NԾGe>9hޢ',nI*ۚ;ϔYo|U瑐pXׄ$0fvak@Ge{(fn/+*@ 0{"^< %ug'ƹ* P ,HeJ,,ʐ,t2+^Y|'@ Lo259[)@5^QA&/eް[(>IϿrZ,$ P kr閠lH n{1d;m'L1l;+\SLĊfaZ>@|q .C4=Gr iwB;z4C̿,4~ å ;}ûﱵJiIS~sD}އK8ʁL12HǡIoukaV4: |֙12\ t-(ÀhnSҴK'4oYѽTФ6RhQv(^p$Ch&p+Ŝz-5/= $!HNT(>"i$(Z8zw3'[8aTvJ#S&z1#xScJ<)9_fM*+\q0-v$#ű%~nNAV2~_{q)|3P'b3%ڛ$U¡ _&G+Jf _/'Hz;X%qw_aoUW%El;c@~G)u2W pfӆvWOU;`.ս=vr͂9 Vyn% !a=/) 7殪t_}[ w_Gfn"f9%&kh6%]"k (mkK"Tx?LcH v8grE~Zy9MQc1w˜NX9,oe-{>Q/ue?03v}Vf娡yJ\">-yӤ@֎T+8)%8+g$sjBҪEDz-%;p9mKjZaiYFޗ[;G?+ב7&G#*ux,tf*ӺHt@|BR_B+fsMR+W1v2ǣ)pXd()\@^tX0mD~ꇛ%X8(\rZ?׃,K7M*UracU`9bqT 5 ȸU{C(KtvP\u6E2b&`#riJ~sz-8VGca[VS'o{?7 6lY|]1{ M9\E\ptĤdX`9MκJ9'iץYcAfKw[Uz#gL9i\ݦ(̻8'37,zyѮIoZ?<y4v.A'} J$eX)miGU$Az4ğ$yr|Nr,ƢXm, ֕Bh'm]x}q,O)FTE>e;L:]|Ll 8]1njݗ>8*dks?^f$z|9a\饂=&r6@(?a/#ZcMv( cwȱLMmlL\7`,}/cOBSŷ|vl$(T_ܶ~FbҢђk _q VS|q`"kO7w=A. T8ٚmFW8'l5JFL9y@.!)Dؼ'2*5|8XDf[;YЮ.# v܂IҚ*F8Am(OaC= 6=yp|W*A%ߠ,GlToڇʣ*1,͕ CO`zŦc+*y@\C$Adn\'כQy<ᬵ Ho[@yvH joź; _rrR)fW%'H)E'~t 5zݨdQ񈼮q4Cz+ n۳K ͌ħ6T\IgFK = XР]qB96Ej5?7?w cmbCS_t=G8_fw|b'W|6gMlT+Yxs,拗A8m4CKc];:fҝ9&v/g+.X%P!BU39O mUc;G-\{d}3۔ȬݨqĦ/A4z24!ޙKе*ty ,ʯX CΉ"YMqWj2-K-0#'㉔\Lȿ!{&jP)ϟ?./y}{1pDae ㌢쬯lct!ӂ9,.-n|j)!mX_ڡ"EH{uœ[NxO!Fel}ԙ/рoXNcT =E9k%?ˇtIqFM ؼO8&>73=Gvtl? k Ϗz$D{՘6xjZ3y9bTi~ɶbf ey= |7[Ymޱc͢Q$5!nꞿE :_4l7 1gԯ.?8Y=~M]"@$j*3FVC=O>{d^bgov S75g卹DcCA í<ν߰ս :=c}E,ۗ/`wa}wk5.b@mv;c>jSUY,XV*&6ʀw6+]xxzM%J̄)>O ©+0֬Ivſ%sL3?&ZMtvGwRF ݽu^ܘEGJ-X/)?/>"pkEOF!&͓l VqޅVjr. 8*fC21A-CtʻЛɰY91UӞyd\9TkB*.9F#A廑21s4EC,:Q9+U|eEoFFZ25--WT5[HiqTg~)s^9z.ӕӎ&GkutʉQs <ڄs'r9u "KQV"zzDk{eg^s@0MeJR i #'~l< U%_}<},{>ail _^k|OB81l|}/>'4=L$%ΰ՞& ?|TiĦLhxIXw&,Y;09R~($/n5 =<5o^@!JVbDtM>$natg"^$?n{.(#Nqd `3spKru'dQ(p"UhRH{Dyɘo6l]BqH_bjFT;_"1}؎9 k~V6xuA__k*G VS|ih2+mXe4_avrLq6UHFbkst7w˯B4o>HKsLFq8bl7)p<n_`쭝c,p:TٹMeqfI`Iwbe5d.rmJL>Pu\gRK3aӧ3w C*̡"޾KRQo&RTwb$σ|xA&:nu%ocv̚-vl#F_?P`ElLe>PT 5G= NA0uGkSwVf-ߟ ynE`b׮KR]]&Aom'G÷ۣrW NS}|$-Q{R3_VكիAϪi1KYpVWjmңTgnzz\` sTkj ȼll^LfQz ytVM{kI'(٘vغֽ Vke+[/^t83M7WY#̄z%%F ǫlPv._>A :y*NQFTOb1C;^ܒ=<6_wSbS N#.Yw5ܾa];A6͒"8 :!@a*u~{Þ, /~-EbdQ}p]OT`Iv24ݯei/m1s! MTpK^qwX\hLT%O^[- 7M-l{E_ ~'h@BB:QꞠLJVƹoj,0𫀅j6h$ӏp;.L /L4y6y!CkghF5C ` anZ h}^;p aoH! t(a}'/6<׻o7*c-CKaweew)}Z̳-w?1>4m^zv w̔`JR #Vù)ᦃ}zBJL}H=ӥi )>^y*@w̯G0O߾hK#dUBU@PVWI}V^.1 Za`)aaR? q^2-,4QjXE#^ʷEAhVZ'Tf!i쐪yvϰɂrҁs qA!Z$Tfh^LotQx *YF#aθ o"c= P`.<+ܕZYHU%{8:MV29K:؛f,qƯJ!;HyPh #Q,S_ 5"iU lj-bGɓ'PW#c\'i1*q . dQ]FO)665{]nï}yn13A$nȪuD6& Q-LW o|ԥ,1BTsvo4>V#7bAP_he8xXm:+uJ KE}n龤KǏp?UĔ-, 9DIT{ibgnֿO j!)i~)0<|GyL5ƫ,}y[7; yR:xx")m_$F5H&+ B _ЫQ3I/Jw l 55#mCQ)-O)6S_P&rћ>;#ћ?`/c] پkF/ԍ}%u߻dosyv+(N"'}d"ἰ ҩ@j.}a*QNleuX\gLA}%.| kU.ItDi%[kJ9gSҼkk  !>W{MB K#mz[P _cLAx_bPbĸp|LOxГ *ۧs(6uB ''->CPEgڄ {S[^U(I0qrGJZ@cƪ~"3 TݺAs"97X5L!0aO)W} $s!Vب1^؟jRk:ldIVc 0Z)daDYd8[]sArhy:\uk)jhG^*XFhyÈ`x?[/+au=#%sؾRƳ+stФFc.#5=uuFL /.[u0xa2?cJ g&aQI剻-rGX=mE귁b.5sҶ/ ff&X5*)/u.} e#\&tkkw@`gTQ ޾<#/`څUWL x; ᗲgKM܇OYy5QIS;y8H~Z`'J*xgdpn a/8- niw0V*UEUGF:vu+Iby^eODű"Y8.$yPrTՕ}Ǚgm#G;ջؕ\`dv@-awC7:~e$ĥ%&}Yes@5f:86REŨ:C('p k|,GT<30h{8 6mP-Y5]I8 Q45q5`"BoJ>f*xPX`nz䃕@VKZ훴gr0 ѥˢKD^H5ʌIk`3X,~[ͥLӜzvmZ4q6N˕%?^7SZ~v%hNA<<69=bQaq󪝆Uy,cT@-&T*{}Yv]Hgݛ]zľFX@=seF@m0(x+ɑXg|G-$,*i_ o92S58qh {zǁ&tsv0a$wԣ:?Hf#y3:7t YLn` 7sq5fvSdsF5;9ݽĸ}x1|%νoYQlĖ> wi)A-m% g>='Bc'O"\%DS>?#|I_InWF8YSgG.1GWGzBQmݳC[ :Q:Z3pcpK̔=9,AƶWL|/VmwDΎ(@\ߛQt6g/Hy0VpԆS8=qӶA_rwQ&Ap67C?Gywt᮰ Ҵ.(^0S>3(z$ =$E5)MmSs-reU*lrF^*-5  8ukL+a>˝԰C-y fCݨn=y~aFJ[U[+ZdOR0Cdf{VԭKW͈ e|pv[}IDR^֔BW$ 6&Jb_|l['j|o1TkІ7|OMƚl )t;D=UYO 淴H5%^, sC!-&bQhk"atU@5뾍ƃ/!B.ذO+K_@W6r -(/Y*M#L_144Xɻl; L]>o/ɶuuZVВtFŭKM9;Ziyuֹ tJ QăAZ9O ԁ\Wv^oQ~ܴZͮx`v~5klyΉ 8qtS=CUNQ52Zry<CqGgH=DYXNo)+ y*7:wܑuofNMN>yb5,.uʓ^!S:%mѸ[ХoW`A%w`9yYm]-^\_(ߝt+Z.\Oz&y$91ZA5<"]5PsMJ=-%*f6D1x@S"j|tZ,6mi>[7g᤻:,8+~i4/8.IH 0CC3+N[(ܙsFaUvAg4i˚ztڍmCJۃ& h49H IadfZLe<;v,Z駦dle:u>~btgw㖝ZbKhc˴A#K _PM6{@Ao?坻[U.:-J;Xn~N>}񟉮h,_kWW1WT1!4yq;B"О?A pєH­\,|EsߍPGٳZHxfziOpeWJ<@|Tq?D政$Tͮk,WOlхq<Oa*~[ruuvEJLNvW4qoپD|pLVHYC㷏iӐc'>S44[VVq^__P_*_E0z;_iQshryOF t cZr5 ϫ=lv@ETrP*g!~mxY?|7#i!!Դd]Teά&hz.֙wҴ|S*|߼S^G3"aqAiNEt4܌(ldC1y* V! z` #nrQ97kDP/m N+ᄦثb%ɩ^'ZM*ZUUCeSNP=ʙ6^\ -^f7«/'|ܳ HA6c;*WjFwOn&F8mYx{o;th2fp56>p\z%`g! NKI]sZ8q6K>ԐXq_:PӪZSy!폼__fy譐ay5B$0UcLTG~֠B4sDhĭCם9cL:=E)ewۃL+ZY\Yx՛nt J`x)l!w#r`ay0[-=Du y ٷPvOM'C (FN._ Ͽ=0ҭRƒZ?PKg=19#$%nuvola/128x128/filesystems/server.pngUT ̔ZAPQux =y 8Ƈ9C6$2伭zT:xztrL"JJTOP0gIReI)l6osm׵zݯ~gѶ*(sRWu3ZסN?tGO{c#7 ?o۾𽉇_s;= "$2_Y^ľ$? @J_6\kR3ddfҒۏx ƵI?hΛ 6Cu!%b3;v! PM.Sxz^c#R͔>OLpLEZfla65(|-A2*w*I)!UPG47I?xM8ؤq GeH%'^E] nfKyL9z|l Cs9(w>s0>n< ~:4-_ H΋F ea5 QP"RHuK`z`VdNr.^TJ%(kP`r}#Iz$}O&uq#}^굺~=6"م\-iCqN_^[ң'({byVC˷Je2Ԫ{C2< l@Pw/LDr{{'gg'٩+C*[\_v٤2?a~݉XP98?S|%sY'S*ol9OAtG< PȎQ@K~x/ŭZZYhCߒT=t)b;,z%SnX'HVEcc%(cwr%FG=<<[LhD}.OkLl/'$&/Dkƺ'x+ VnUPA|XQăr611(p3t֭g'9:fxó ~~&eY9.̶Vf ҷs9f!##|p$Z]33Z̈ҩd}XJ{>})B0ŝE+b/$L pPJ Hm^0' <1Quo55,@ёGcIQݘI4^W0.[:Iw&K6)1[<4DP-he20h)#.Bh`cfT=aM~y!Rqphs㠕$Z-HEʅu\b##u1Ve#Cqo̦tzs\GT^6#D#Ҷ57>Jn8t(Z ?W~9ST hћ̬!7pgÝ@ѴXBW tq?=÷G÷a[4Z{皏{2}hQZoC)t](u7Jޫ@?H>U).Z /I ;ys)mMVI'q '*F_ޗE& s/߾VV>}NK{megR'$^V=d=;gڏfy| 9N_)<]3^]HGeK[=R@ m 3<0T0✦hTͻD#7x_<6͔)AEpL̏&y`=ź53L/UH^ێY o,Q ;CG_l[OJې n*!/bqρ}WE;i{ ~R.eggCוX_gtSBX^&W:i!崝xh."mr2|b-.h\p*.3 kJ/')VX{)M4ifil,N5du557)j6rsY6Jqr}Hc T> "G o{J$B>?Q,o:[ysBE|\.#^xDL4vutVPMڽ KǷvڄ?@y%?tE@mt-=*$@4WLۉ_4hv:э'U HRcWݖxyc= R9=jx&ɿ^Z|.#eCX $I6,pB}͓gS y8y6@2G!XlyQ![}|a C/7~~o b庌20 ˺l߮`{z@t!:aM<8ERr XR$C܍4zi!d?f6 P_5ຊ!sj q6}.-1W .xOAtE"eEQS>Q.^6mrŚВmJwtx1yӹ'sd2.Y BNyĖg_SS"sDI ɗĹdR4כ8wPm&aFq>XZWz% W)n"ӷ%4"ǒ\D|FnH|~lѕ熮h^6!qzT-[+TzjC2*L>b`v_\ƌ; 2jƥ}X=NIpĝ] eR1 pR/t!v㫤jvvaTPHK>?{/2 5VzV.XB QȟJ0WYcq)y%rIH2;nhKedЊ_rb$g]ī,xbr',03ݮ,Z=qڴ58lE:Lm̼ݗǐUAWad}P"䝭!qVi25(> ;R9R+zccg4ԠT zc(@GlqIt>Yj\\`](䟤%ﺃV_g 扗*(Wl]Z-QUPehr?.N=)H](|Ta`mOKJ}Bo;F3^aJpoa?{Pqy8ю!jطDT$dBrN:*^aa J]-\xteF7\ZݫȖăMZ;c??ch4R/LǖjugzZZ^۲|ʪ0-᪾Ca8~keyx8Hl)N3EU3}uP9jPHke_@?{7#HS۸;7KC6 uO4vϗeSq2usrR=GU;FHb eQA|;+UEbN>и ;رÑ MU$'UZJԤh?^phՓFؿ3&^OB] `ՙ_fWP7G9Mg 썜_ƔI_n&͏Ϣ>-y XNyfx{i$|w "Hxx g@2ЀpO M)^%:ci )k <\gS:L콗G#Iwlr\JMA擂kB% ;47]\l j7S*Ti=:E>={bJXWUX7q㨰R0?^OqYx,F+^Q'Y8.+n.}Ue/.5*zZAnCM==У5~~N<6[YY%;1\HʺtojTr <fZ5|#ҨKkStpL?/Kgco"(s2{Xr;q̽,zXGCV*\oEE[n ,66 G^gS[jcԌ fNLު#>6n2x[,0_`F*KHd#amp0ˑ$h*nQq.3ҎȋB[@J>z:[&x}i\Bv3n qs?w{c摂Z0U+Zf^;&4Ar8$ oknETڏPvn4w70ikm'Iɔ׌Z7AclKGu:}1x\,θc折_^00==ʿ>M Ctqt_XÕ/(<=_.bS׮dif͇K(>n/4OX>l(U?% Vr!h;{k;$ ^D|kb#eQWUVOվP t9~HÄx s$0Œ!aLFר5>|ÜtUsƆB)Dv"[ƆdHzpaJ8S@c'|Q@aDe܀ۋV7ÆBģ|w17/)|nXjkQBF4~=䞦]vFigSk+t:WmJO/MH)Ido^]R~yui$0#L#7 D?sŽ09ydUhBMMwY`S!mG^$oJP07S5|F>z-稭qyWT=Ͻ+ke y5u1]bR>{Ŧ{+/?x۶sZSmMo?ϫNwO+Qmi` &[ e|,<[TLA?"77d"X6\R^Z,WsYϞY9%e9 ś9q#%mIE!8I|Kz]2t>A'/lU?u 9(ں J/[ysyGz̢+!`|pcaC(S% ǿ4x^^wGaDBJS}ڵ(+UQ9s FC_CůDzj^reeɩZώe;v\cxU̡_RΧ-U&E;MDkvx> #{̿8fѡ|$\ s %VrHZ|O%)9ݦ;)L7S%*d㝣.kffm^LߨB”-,:Eܳ>ʦM83|&o `2h3K8haLwkl!d\d37ZJ,wf Ʀ(\fMϥdr }Vw92Mb eNJKvbA H"9^^ځe^I [*ŋdy[}+蟰`),ʛBɖ_|g?g-1,3 sPlLW6L\D_&ը2_b>[^K9D~&-!WP(J*rPKPMt Ix}ʥs_iׁAd-yuV]~0ӫFT"doǑʷ.d}޻E`Ŋ|7<zڹ9JPcht 'rQ5hiח0_eF}J.nO*j򾇧HQ~gݪ- T-fRְw; p׺D%Pvk}E6>(2\!XyܶNʺƏ)&u gIQsAEYcm\3|mp1h 1l/HbHݵWa8zO{>R׮j}. T.,\Fe0o @tsaAvբc**N/b~5m]/5gC ]]t!vim01h&kWEuʮH"tgi>Z cIPrH<:"Fqd+svjlH pgO",]6VZ2#\ EVP%#o"W)'WCNµwt69UI ^iJ3]H>~m[ J 7zzS3R%aq{&{2^4!U BHR;2Pr6`b0AljR#鋳7a$A1s q$d)Vqf4$^,coRxKԋHXw(KV(*hKxR+h)rfDݙJ<&is6B#_qY3i Y2iBFtK6wqᎢ$k 4TZ|UL.p`qOo}"2A6gJo^`:ST2-AFn'[ÃP?vRZ}3+Y,<@:un˰hB q?@l^m{lWmuI;/C,#9ؗR"/^Ex?za2[.+[ |&2Ս䔯RU jk; YXmxdܤܛ]0D*[\ SN|ӿR_욼0( 91mIok:!ۉɸsKqz& [d\ՓӼG)%vC7{p3 0)VcU9db-xad ?GBwc,T!1=lsDrl_uQ q}4F+?-cW//r\#g ֹpgȪ}L Hde̞&Fb"B{]U:`qҳuΚI/) Z+cy>WZApu],\: 1{9,yyht0@H>^ᐕD c KרٷD.8 ԈU)IKB&&ܷ `$Dm-mͶȘ{n[ v#KYRGɕJȆ\8\v ,M$CQ ^ ֋1}sakJ# ymlɤE\m!#{02_&f@LNXN!<ډ: r9xO`x-S7wFluPYc Q|gQ1$R?Uk tN2匳$nXlarX>stM6MzG'(tO'Z/4c7x }+X[jmӲR-Gz`X %*K>Z}Wop:@{$Lc0\WV2/yڊvVk|c2P~A !Ȁv"6 p@6N/$՛R9 wc AR񄊟5W9Lmp;/ea]{[0ܦ!StyaQmf =P BGw/0?=S=$#@5Ad h_l s[ԉ 7YsnF8-rJ^s<9ak ,sׁF. m];cRt2 -ظ( WojZ_혝3}q4@BSA2 UfHJcZx@gD_ txs+ɎTևIs'0W#q8wi$TyՏ@,W}]bե.B~*v0j}>K*&k_BFvcB b\]- R g{۝|V-Ѿ@67T"3Ǩ+83^ 7@ Ωq { w\kNe&9;y i ˃o;ͼh vKI%3$2)hBiH!r]hl!E/"g `f|˷$'\n2:&iacٹ=7:=i/Uxw:3߁+tyrJGwq9&#P%m ¯w dOL@Zi 1  B`̹;rP0 H-c=&@l'  g ?ͨ}h`6UBa7OF0/ECf ڂ } ZE@焿|b&Nծdaȭ]; ~tfИRCI$'XX 4Zt*.lBj ߸:mڮ˱&*m<˹ 爎Гؒle& %s$52?3Dn4:ZgS_3u yoLf63wJ$$RZy&kgJ(uiB/y* XPg/rL'+Źʬf{!GpASfQ2;T,a%tRTWkI* Z١fFeߘ5%OכJD}{rܯ-jV`g +i? fX* UläL!%Cp<ޚ.RY~xЏcxTU_{T_ӓ_lV.fj1O1gAhuEq?%c۲}НDrVå4hk&W))h9P}錍1;R9s;ڬKTB[\L9NM牑>/zqrOн =eAu뜏ulr2ͧl^D3NBxܕY9o z B'Hn<(!mjgMML_Yˌ{8/[W=c PkuDTy\z3K?#& (8]/П`ٻpO7_Ut!}Q,CDK<+¿[,YV[ن 㱢yx;9#Uzޭt,6$cN9(NB6 (84,Pbk cЇu7sq=-D߽qKo f6vg R EhvMY9+gyH0K'<1av3sFɜ_--: G8fpBh`KUs0qiL .+?Ʊ`^.ffy '[= .gްˤﱔn!훥{L T:']sI&ds3лM Ceb w * PZ>-W솩??ŰbGL4"yz~l/IZԘn6r;1_cbuh} ] W@2X V.R%j '׻A >4OqOk;IgZIM QKKHAE=cʥ\'`x!@Vmٚ@$AW;TW ²YFL 窠90gX\MPLܥ!yw!T K|t$kUfiG&Ftf/G$zzA w}=VhK/`_űŁ?cI#{6"G'G)ad!+Ĩ5u7 rW*/! Ozll'9ĉ2#dDMD"4tf򻝨zX[džcIB/R)nEܳ,\ ?]]SjWl}=8n8JZE+tY(o!Lee)3f݇Vj#^Lv$";b: 9Y] ] ~ \`yZI-Ѧg64?!;':/I= _BoSŚoYw \1.tf_=럽W~جٽMx;-~A]YC:+J/$c&(Nv|/snLOκCFM`J>3vVl22aM9:gb}jgHQ\[ڶP_!J*]fy;|UPYHs/l3S_lJ;Rhc>pm-Y苣0Y>9ON5ڿO2Q嚚5>{tlheoA]>ezs itz|hS%ȋ9YpHvT}Z5.hV< yV(S9\_caUXYwue~qExmX:6 [tJ kJM{ f/lnJ^5$Ƿ{K\XTx6d1xI!xfTkx7pn1EU8ċNbE+ =8#aeFbhFY1ӜX#Q"\1X#<yJri_C>`v>G&?Yk/e'YxgmbJοee);ʾTns=~jJ'92 mNEGrrz|3;55L[{Wig#CJmg/ɉ 0y34$t4]B]C[l -j?'hكNxڶ)=}F3%JG{]K)Y!"4\U]۪$vZP__ :"6($ĥh&^/;_7o3s}*AA2b&~ ۉC Z"^zMlYWTiוx䡻nsB'}C8X"i_:V$ԼD{b ~ŭ19P rF('G9E8@O\D#~e)=NS4|ԅ%3|ďR 9`f|/aՅayn6s?J?XXZvIy[I쉌0_ggkQLho+Q1D'o*ۿr :S\rGG۴L<(̟cd=v)}vZjkRqufՑ+\{m ]5\fz|G˾*y~ی(חQh.DÕf/%"rۥJJ="$ $1!^\o#.}EEA|"jG'sIw4ؼo" ];/8.x( 5Wއ*?Qv:kZfEC/Q7Hx9Ğd= ZU(-1c$?%Vp@4as_YCn0s霋 tGT_Ī/gǝ ~zȻ-zx12(;d2zsI_DwwM8=f’oV!FILdzd3IwĄұ슟;ѐvZmI3Xr@}Y RG9Z6 &m6̊jLN>;wӥ 'uOwPْ`84Y2_cFL_ޘkQ~?_ʴ[?!a(?6 ?ۊzDugaBwo?6nZd`aҼ]\kbVqrn :,_n 9sGM{4v /xXi%7kg8ߜߖD4ާmQRm3pͿlRF,Oxc4|5 xX7 m,Zį\[i{J?=Q{ x~_=nL9<.W$7zf$. HE _԰sfǍ=aM"'wㅛ2&ߺجYbC.e8xKBf! L*R̟ry* ,]o{4I8'~chd"(b7zgCjTX2duNJ$~cnDm] ˋ $CK LObLvd M3S &B ]SXYI&~JF {N PNIIjwr.n~ٱUXODm&{e3T=L/,䖰:> =36o^(R>9Tvk@)*jWSCax3Fl4ut%AG:ӯ  ށN,2Q-y+QYbu|2AEi Vx6oR3=ąYZeB)5(*hWgGkc;Mn]!8Ù8PWbt k"/7 iSXy].ZJIYn:y`XCO6sMUfρow2!:kB]E:igM C}ʻԨHIoK "t],3 BXw:@@+ UpUk9TzHf4Ow"!Ty"`Rh l o4J N-!_62Z,$ƜB@< } hf$/lwkOOt{ ݻ̷28 Ӗd:$غ OY. /~&"-~j:^2xgVYkn$KrwumW->QL-%&5AsNp4ćQx'l[ǫ:3'ocSㄩ5fE!$m&p< PFȌF֧̒:KeWY?іC9w,bٛ11&hLpx34PK $'^P!@>ʯ%f3*mVAgD Y[-CT0"%L Jۄ-t${1*K, »>A[eΤYp,KY*- .!9H럣;FLhb1 ^HOL Nx a?qKYܚFF&c^,*Hl=|}ȫtl??C* Su7Ke);4Pb2s̅,$7{~CMvb=Mn7*啑qъg22U6γf>gاk댬~*֭5  @ADe!6 <- U!  `\. _4dZ&nj5_y~`u%}#L~N 6Ɇ655ojw^kATZ,Mƛf|[KV`?ǜ4P7(6Ld=xwjQ<967B Z0ە0+ɡH0N8mvU$*-Ҩ5k$۩ ZDM,].BnIhƠ<8:eo!saHs'CZ(,lS[@>vvc`L9nDrl1]ك\/Si1{>K3 Νs{z)M-魨OdӖ3.c RRdgC'U.3Yd1*q)}Jx~hχcp#enY .ja=ʐ1.#} d><=733R OQ?'† DŽ{8əZt.AuQ0#Mː$kO!TUV!EגM9[Gxloo7 } 3c3)68pZ3Y݅Y/-سr})G2w "Hʠ.ݱPAcxwVv}oO:UҾYiͫ!_.t {8[w,{?X KFҋ a4_7ۦMDUvQ0 =(4XGr)F{X0l>߰09zЖM6b?7fƯcWqI=]f+->Y=w%+4=;ՁU$Z=mػ_dx\=5GO,0#.I2.CΒy5l=[6p.LK?|}E>88/aCs\G|MΔϤnPr{0ٶ3  wϠ7VfSv6"Px>!bO Rvô£1[rmC$dutr3n[AiWLyqB4=<:w||Ol.LӲ6?ޣ+6dӳ˪6d|͙0#CPa7ddApM ;"\D!_A} =DӚLb/Oy0B/N,׏E.oL͠1gk$KDPQ1)ud3944WcY }ftݤO>O*Sm+rOyGNs#٤DXar~n&~J hLB!: b`R#8YRe9jgd6^)U9qSB`8k`P1#=vM$$PyM`8]ٵ$<2@{*h]e0YPڂ>ZI;nL{*:IَNhI&.rϏm>#$\z{]jqe+ϳSsm'kaE k m+RvzCj|N;Bǐ+Cߎ||Pd";nV+Ŗڰ|,UfU$ABt`^:; jŎȊɚ$dWo ^tc= blII69m3ׅ+zX7GLbqyYgS s,_^Nbo9"?juoS[leLI[?}W;k +ӹ}wa?1fB0LOZ;M[K;@OJv8 yMxfV`yȥk.5xJlm9 -VvcgDI78e"mF84Ek0s)#l7dVB5r?+qP̧ Ҝo?QssdLs (x51T7/}lvyǟKb!b=+HMw`vY`|Z*.l\5^KegPKee=1+OK:M%nuvola/128x128/filesystems/socket.pngUT ZAPQux WR|8 Nibiifei},-Kq2&T@Բ2铕%Z(`ZZ98O}.wus~gqi,6J[O ĄBQ1"~MEɴkQ0SȪLK^P!!ɪ8@3.}(},:E_/Zk2$T_BlDBIܪ0EJ3O䀗 NH:rr[p5BIT-߈1EX*&A$B]ٟ`NI<؏(h+L[*6*^'h4)o^W5^nFg٢m"*;kkxgAo#UN^]]ONpx%RERx)t0@^q8 )4Z檍*нPb4KQ+o"u&49 }XD +c{v85LW !:lm@iszݮ!TLEMq1"K/m;6w/2~͹480,_̷t$6޻`Z=\oT׀8Z7^DxJ0'="l(*dHQS``C775q*k,jPuyyʢ@Ѿix?)Z!B85,fޘCO?/3_g UkPnt~e#r,ʴQ&/lkrT[ȣ hqޮnYJOU7]2x|DtvDH$sXp+}uoH~;DV cb& ]sOC^]gڷeMeI-,gO 6Нԅqxg>ӮN&(cR⯿A"i㗺OCJ뒩ia/a`?Y rUY;Q[B!|qκ^UcE[~@_n9iZցGtp /oS:$ 0KFX Dbx(NǾ ٷ )K~Ows U3X:DO){VU܊kk.7x O'ERZL=zֲ=L)T/!-HDEw.N$[O1;"ګסo0Ra{qGG|xDEQʫosDW;9 m8N`?tb˲hok"X1e~.=`BQai[Z34COG:]V95j}ԡԙ 4t>D]"0MDS!$WjR)kHu!PAb4GɎJ$O#UHjm G2|[ aFa7%'e8 Q )'&פith&̻X¿YdͰ.A33nrs[O'?iGN$7SvRH,BTܶչ_-քނ HH{#}7#{1Iއ1_V%!g ع?*2,q [ACz]NWk`&&0wHR7ስַXaXcu\B\h/)~Q4]$ӥ( 7J|+ ŸOd%FD=~YDa0*襶#F "gn~NU*^FS ?*v&t!Ě=T\yqN4{߽7ɾ>n6 &V!^ycM_}l@AZ{FY+aGVØobK诌/A $#v4 oG֘W0X)p+pfHtZg}`0 G]q8OOc#"38Mv+sjg3mX$zψq\@bS]mݛO `xCJk%zY$ɐg755J_ZM~ vqݬOc jaM]q1SPnL4&g7TM`n K1\T VֶDAoJȊMXjĂK%ՐfPwi1} GC% ;P큚(kny8 s-nKWĒ$MWāc#TX=_ynD}t7A3S]Ɂtzz r-{bEE M8auuTKX%EpFk%Bb =J}lsDN 5v?C{/M04S+.1eZqwR4㰊;8p{J.mP v[m=A|qoJ?ޱ?}3Ȼ s8f[)@ZAHW}i3+qVLegzLʙX|(-~_;k2B P%2Ǩ,zON*uľ a`3̣Q5?|j@u!"}tXy` p Sȴ&Џl͋!o*,W%A G_Ll0^Ih:5⊌ǐ$äAmZԔ7)rz{?q1l0t.jsKJNAc5h_d}?orcY|k'{A2Aגkw9.E׿fɫDEnJL9F}V9ntBzﶰ S^J\xÕH_H ,*GwQ=xJqs|S+ #w Xt,ty]UpwwӮShN;76++Օa<U@y1V/ Lx!l˨姍\({X5ޱ)Au}cRnk(H^"G1wAv礸TZ!$VL%t2Ru;3P(Szé7L0!BS5 Y;ȹZoB=݉L d?A]tV/yx1gxn S@<1IDKC&ISȕu#n{:%:dM>}!`k<5.,̄4BsUG"&ک(} < AhEN#yNXI1 j(ӾYr2f[!l@檸 ?qAǏ¤M ɛM*g7鱥DX8?8G$^=m->[ ᛗ}s;òoLOM]jlKUpR](}ۥy.4[9 X7}W!IS{8؄2>~O?!ņqլ]흶|$۳]0Z(73, XH ]*-i}oi+957B\M:͈rlQqF'.Ȳs')G`O7y-VNw7ᱵ܏r;?jr`V{({Av.kᗗV48nԹ\>7 ЄDqN%dx*nuNO+,RDNO/M%ŝt,2|!1@v{=Thd᡽K"dܹ_?.yXp,0+I;1gñ>blr1VSDJGC˫Հdw>";%Ɔf|Aˎ [;ϑ|auogd "F:05ϯF *To,d 9D5ϰK?5q=J6ӃK܀FGC)jgk>C6T1djHb+RpT"BMM˝[Me͸8sVD9^8+(Mc("_4nXXZy@-6b X Nev=du?2,XWm-!6i#DmtLb #J\)AsXD 򩃻9*dNl{*@$r%kt16)&'t,k|UqzgۘGpG)V<@b蘛'$4̂U{7a T~mtۗsQE֬^VdE׷@tqnVœ{oLK?Nlee0-OՠO35m(h'kz(v=VGidONy,zJ56Nc+s'I |gZ oڲh z|LsJgxvQ`j[rH 与p\}8&_Py 1_u&a;^xH}z![ĊAhn@}bvw9ό0l̆I?W"j( / , o83Vudܺ u9|2@=.h+KKC VL N;g$}dO?\BGkUu``O硞V_fshCӛsuN C| zG['RB=;%̳'ْ(+8rMXůىs>ҩgi@AJ܆)WYmshαf;DMI^G.򺎧Ń' [)+UMI cA7LL{yUX?(Ge{ ~Zxb橦%^HEi/k,w1F^(Z9z,q1H>fDC, .ۡEcx4U<ܥsUқ4KfNirVڤ'<z{ -+ΕKZF6no<D{(iGUh~8laz/N/:ci1'gx7²kdYTnf\qNGOԱʟnDUwrwE ؛zNʠ>>)5t=J,E GznsLcě`-Z\zRqOcg y1L8,9F. Vgp'01"HheH Zs<0Ck@UWB5nVYW6KX┐d̃f$:FD EܚOJhM#f5:gyLndSvJm:U ?Z+W_ym(Β>{G,zV/Z5`'BTBGC$C.v{z{QgWd C"Hm4~or*Sշt4GM;|ښO@mrkyΖ ۾.8+KCr+k#f%rז-˽)E V >QF1\浵Cl6yzK K/?ǧ/߷T$cP ԯqMm;nVT.Ӽqb/$">3v ˇ%&)Mxs?s1׵Xʐ[c}G֟njm2l r̚55Z\u~91 #zUY17q@jm l.or I`r;oRQ3 ^d+l5vn;g&Q)]6xMyQSDv HsX^RrÛ\R1]сˆQ}XLw_hXTB [^\ .4P^.t2σ;v&DxL!t9v 5}bRPY*Φ+Gڬ_ۺ% EuO&2hJ'K` _ף>ݠOCtآ+ι/¦!^B5+eM cͺwގ&{xT@qkd~`ϫ;aiGLs[J` RͩM5D;Q%Ќ1[jY9|CyN9)]>#q ޘ1;ªFATjZZja*+3zb-o 1sdܧ`lx EEK۔[^[" rˎ_|+sqKGJwjA >bM> 1pA崕,,j} ֵƨ`iyb2^֞15"$ϒGHA]-̼`] +M?,^kĄ&K˸ydT}5 dtR! yZB,-~@XF"#YaBJ1=m"|5I3n,>'g R$W{f0f$bS ڸ5ډP];-~y捆:F/7ؐNa΅F.u},"2ՠ{-[S.#풨@CA/|V&^z5TjXN9n}u F1I ek,E} zqAU@\<3Wzs{Ůvܧ;1Ֆ,k%F>2)3 S7I_fq-e{oW[E=OM9Y 6\Y[efB_HzJ~BjXpvжjP<[OI]5SclGn: ^V:Md n?)-lSP*,v0k@{;qeg;|"ߔc2E0[㛥cMzroL2 x*nhl'H\l_bL .y;%3 HʻO/n #}|g:Z lnWY{;̼<_\EE" AΈxY+czl ##$rp`*v4䯏z6+ޔg–(5tyqo"?> jJ{<#"S"J$ +fµ=j] 9/Ģ?q3{~t<kJp8CSO?5ޔ}h~r~(Mkp/1t=#;pއϗ^xOdPQbrO*}D@F]0F`ƭ﵅nͭ*X i<&j hDd}Wy][Y "ⲩo!O]V4B@~mWL{ ➕eh0+RwxCXn(b)"II}&'$?6&ӟKh7=5c^B9bmt12A ^x v5I X4F;Y<ډQtwW˨cf$In/"r /Dt՘aЛCd%?5By!@/qp,pD^z7-NTMFw; 26x!ˀR3!Ɏ_\9{DYENwYʞrWɭ,z(_y?a~MԽV_*="gsySzH5m:GG_1*bȲ2r&ĸq\bE'lC,֣B۪ZNnǜlģ0g2Q`ebNR݉$~ȗɚ;.{^oN!PuB"ѲQ~l/Wۚq|ZfQQG ՙjh~^!H%HLM ~^72+ Py?O biTmLqsY-,&ÉKn;{lL1[M֋>…h!(iNkk;Bm ԕЅ_w&k1 sKyHX؃❛[Ҡn]Ns`C* YִOhMDl 5cZx{htENR']DeC\w6f_2ÝBWtr6  aXVX'x\_ۖerW?1]qw_5hղ&ϭbF\v>ܐ̑^,[}'ԴL\)& w=BP$a۩M3}&WG¤6h["X4 iЖ@N`gX 1 kB+^R0WA?-Y 3YһGK̿(²؉},NvFӄz>UV+4: 1ۭ H(q7йTקgUo;đ TXDzWMA!ƸC:+v+,l}{]k[ՖڌPY/gu8ϋǓr=Jr>: b^t?\ x!ԓ\'b"st}9eF{>a3xiLK ryM:t-Gfd*}hU\݅|Ϋ=>$g\ִEؓ CzcVe[0CEPG"rƵR y[q'>߬ k}_hjQǚsܛw*y*^X5ZADTq|Lf~d5wyYMP҈l+vq?ڽeC,餺Ϛ=. tŸn[]1uj;z/ZUH3۶a='!/gr E[޽YI@nbQE9aURVA\wFqFKẜzn`U w\:\PزF (=x/Tc Zh?I*mevRnw\ .ZsS}Df̓jB/4 Ƀ/OMLVzd.H̼*N4ZGc?)^↝Wr>Z&gG[ CHPs_ܛoTSEigZRÎ̤қ9o<&.Ofzѿ^6wxAKM{\rlJ0(-vf]—7wC.cjR2L?wm}C|TFCC_,h Wb~&#IҥW1f*pjtEoʩȽsAwUoxD̹똻fX(`^bN#6*9pk}T(qŤ:7GSc7, =|8rRbv."s<'Yބ$J6)$K **i6iV{)1_5s%¢9԰s.m=Ԑc0"8y: Z?:m_k_c\>x1x'},S ˆ+J<"i"阮Smvy0ՌB}x(S@0P+ rX2 n};z(Oa;d~q?@8O.*j sANF%)dZ֔⋪WdǞcLFs;ڛJPyʞ3|v@}-Ni:]:3h{=zbYT1q{ "g[d}KY{cyP_b)5}> GשJ3AߝhQ%WP5_ڙJ ĢB-Mz^^'WC궳e'O$~<[3 XF9LHl)k_# ɛB9Mbеa͍Hq?lH">rx \*"yÑ;Y[_z0 :ݞoYDK r7H+ b>䩐EX'fg2N-.u#]a↗R2mIV7 U);JՄ@rH|N4س/>YyMIrC =GJlk1f&bO>:xu CMm2ҕwTnk%/X{~P!{h嬢+ 39:,EZ piknoBeΑkނN%GJ' >ԏQlFqԊ6W ~vE6"-!D8,Ljµ§.w w1dxIbùj$hMIzƉkB*Z6n~_Y^*lflNZk324 } skplƊڗ*OS=Uz\K1v>7`|\$RZ\|O#Ʉ Kw u̲u|%'Fd*ձJ ݺtlI$oK_aHbŠ-wK#0_iL 7sմ!Ol(0)Gh:kޥ :ԛ|@]zQΟr??sVd:lIF7zY6A 5gU X`Dwv :9QKMI2m[w&:׻8k$}~|tuﱴ`^X,qk2~({?d?Q^rVdCC!4K|B/A/!j\H>"tU^!n0>C: 0IĮݠKrHW^Um+{zm&ۉ>_o{ X X^[C.SLXhM'Qx2Q-bca s}o,+j>ίc rz)2(_yAYZEpdn$D2ei1AGr~"t.O>06s8Vy~&b$sz2Q&۲^FSpy!)rg$x@xұ;ܟw[ыq7{@_Ըh6)Pn8[=4s٩L$xA$(f댥$A.Se;|KygdcGw"(qs,,r#įD&j/m\.}:;YRFqcIlb0, 80_;7 eN"hv2B dx9K8 5LoTCi rȃ| ^߽Ri<#`dW+G̸& Dxc,_`d(G; {4D2::̯Y\+#j;egK>s=DA[!UH@[{!TnJh993CBؼZzN }nz53򺍓T']HJ$NŖ^al65apevEr2}Ь+r,YFGk'^'TUˢ\|Њs(5_6t8<ߜ^\A ztg_.E9ZL63r[@y~|X'ڎ4 K8s$ٝj%u(o[e{RYeE9DnĞ|s [bo4{uAe$C7ܬTZ0Mg`y P ;! *h5X [)F:md/Ԩ%T5N]kT­9Veڧ 5s~)LGP g!UO h2@sMMWD=tW6^&ih~g=FXsL-*t%}>zA[< j8B/We }\&S.+HdIY"LaRS!:'ԏu*\,2Y֬E1.2b4u/Vg9|\X;LțS:F`HH 퐪emҜ_Emc"^1_Ҏ@:5Awocz;5z[8lxQc"Kb@8F:g@i: u]`Db/]_ble=ƺ[zdք3m.9dhl.b݄".O:qYѭ Q)]='-gB:Iz6o]s5+Ј3ފmRZ쯀 0`'YО]^_jC:!`g}LPdzڧ8nh0m6LZpf spI{T#dz[p&AMH+ХxG:RF/ivJþ+!}џIAR7TAi(M'sA,@L̰.;+#_y.}7 %ƫ;Rϴ n.q9As} ˱>>e2 jNt~(ȐgbS) p{(@ dYI@Re$L㖒u;"Xr*9I3jew [hĄ3ֹݼI J@6cU@Lfo@FhsHXY Ef:ŨCs*|Amiڍh1Ȧ@I~L4v߲UU`?S*tTڷ(þTxŷg,,6V}B2+5՗Yo#PkI2/0k9\߮E+GNo [sԮϱ]b ~~t BC$ߑ_>㡋TQ?w@a8t?{CHZr)x nɖ}4})4o&j~grGv !_c&l$$C&3hv9<1"aYNPάɲS*Ʈfͮt9-'KnGy DĐ~W'g]+FFcu#acF>SUa35w8=@vɁ0wk׎}.϶SPK=1-ix,--nuvola/128x128/filesystems/trashcan_empty.pngUT ZAPQux {<?~ƘSlƜBS:6gHCHrfrB*EsI9ʱR)5]x|}?v]|^ǕMQ^KEwgٕeNAL:o{B_฽=,&d/@p^a=k+5=B$D$V+`Z썄Gd]hܗHJ 2b(HXn,L0eMCN"V:Rc{ľ#CD IQ2 oZ@y:V%U(fe2;DCMM$K'G.aaIK rU ʴ{xk1:N$TPNEHV [PL]GIAUf JEF̧Y~ ]c=B++d4d׹u mw.[@+_h.vEm|Lg垹XOO~R^k, lOO THJ*LNep-u#FőXf㕽s3RX %Us[, 5zi(A]A15ͱ/x}/Qd"B̼ܚF֐"щ(?^j孱gGͶFgu6ߞu%7J ^|{Ҏ޶C]u=nUY KgRᑱFm|VGK]e3'Πis,C V{v~{#\Fe)C̬դbNn#gtQń:CT  k!ɢW#wiqR429;=iF^b!+Gѕ|K ot}tg sцȹN䬡Sܬ-kR6VE|dB/gkO'nT.M%K;E?2C4LOO)P w0=\v^Mi: π oP-s YݡLGSD8 U9L(_呋;rrCɣ Taӟ-5?Qb|}eccnGLOĿGT(tT{---x踖Z;@ꙋUUwTbFRؒ10YWUS;bmMfNAGǓ+{܇-w0*#>7`!qf z)^\>t7OFkK4c8[N&VEޣm.~3 n}5ZLLokniN&>«lSo*}oy}Dc\>>lNc XZ|FfYSfƼURV*S+ XpRK%>2\(C.GH$!s1[X(sX` KWt(YCY2A>ij;Jxʈuሐ S΄Gg򟟓Su~bT%o$MGt{e0) 나+Z3*V 9+3UpC;Qh(*"lJ֦lyka Z{t)o=61 aqlÖK OMI5TmܯY̽L!f7n"$w+4,C"J*;r6n#G,>rb+np%yaܡg*(\C9D}ok !%d%P-?ʌ\3UiDlL Re4ÊW/1VvĚ]!Utawx4}Ig2ƨ[ZvG/F%8 jƫz/&Ȼ7lWGp<],_Jvsp$(! ~~j©" ޺`E#o,̏?RP߁8R*>mel^ec {}PZ51ɲ}N7]N2 q ۪u ,54Mb>?[Z?3)#g88Bۂ9)<;zOhˣYcHmje6Xb` 9o ͅ"<61 >_itx۰:{]>w1Txͨ ^[kI*Iƍco s5ҍ_1{p%:2' A=EW+CDubvCU৐^]\S~{|{-eGnkC<34Uԥ6 )gm]LBąAos,r YGal}?ixez-,Q?ST`)b/m#F;m~)"ؓcu:MARlVtYw(Z[WOgkz5e ~~Pӡ* X[v5ス>a\V f_sc @lq2$~V}ON Q/_Rngץ.I:TUg)TqiGĔLE᭿&A#ꆳ Y9a#5W)xqJ)Ubʌ?O/os6ž$1BĨǺ? f،nƻrs!(d2abzJîVnNE;)j PJ T>o>k ڮp/N7,&czjڌ^ ˠC6F{ۏK*ϯ33thK>=#/atҖKi;;c \S.+_y1<€%e L7K4y%(b.-|![6샌1Hl7廜Hgк6wѤ_q"_q\LIQyH#=1r뷂sea6wxM@o=ͰϠ-0O[nu { S-Zl_ FE*rF|&bx%vn7<>V#$ ]X/xN #vg7[u**w20NzwAO}дax mDbu_?jhwׇmSY˅iBT(8oVϥ_GJP۬n{r+od}jiȺSFY 2A}~)mm!%P'zqwܮ;^{|W+ÌVtxu=/:zHW+UR=! &qUrLY+ZBtikľQ\TmPo[JHZMcE|Z9MRӜQ@IfVܵCy}0QV0Q񯗭'.IH7:H1#MRihzwU q5nlS g=}Q7d.괦a:dfBX FIKɃU`~f77xNu"/j:">xh X,9 ^8[Qsf `9kHnA:%k6R+\<]4g(dmI4a@zGu|SL{@lۤZ6@=K̍AsOL`2>8언q NjEzAx5tRpX@y]ƚpjUya 2ˡ- E;Z7eLӵ| PޒmTږVN{";%9J,eըQM7.Iύ,\rds:YY _*aؓT!,I=qQBJdKJ]<2? ?> NO;c{6̶=; n Y3a^M&&Y+{ ~ )k}aQ񨵌|5"C3 |K hbb.Yܳ5ۆra1ASs x'÷S$ltir*{O.}ʴ>w ~ҍ`Lv>Fy}cᅑDlӽ' B҂3[~m(MDDSα};tz1g݁^NBYNKa?HbU?yweUrXFTp >Z,=_=LnJ(p튌Fqiȷ i̽Yٻm:k|olEi\Lk'$ι+W+ HgCBޠ@*GE=ezjD"!v?qj,u\9D;א+W\^h{A*N9R_ u>9t%ȧ=t<~>1[qeZ_}܂r*o+PUWf=gE}ȕnR ]ĄZ='Zo\Ύ%vUI>-CiN΄ɍ7|-9)Ą;}E .?_ohק tvtMޫcS[>I Dv4sTϝ~ 2:PS#^Vg&mVdPQ\׶iܑkף `9򕹖F8Tr9rʕ M {quiK@xoJ3{^&XP煝fs8c βT?Xy28UإF8DGNFԳMWڟS~r>#Qq>|L$99]T:H ~3I/ft 9_}J?HfCLxElTг,큛TaRjV&1Lԃ&X΍:Vm59JūT"?~te=莩$ѻʷbB _j2u=j]YUCWfq+R7YnMR/}Bea&`3"Bs]SQqV#寘jLlg*x(wK/ ^kq^}1YC.oCiU{FA,HN"-1<ޏNaH,A傭 ­{XP୩ZWXFJq,TJ-sgǿ+8lzjo8`Bs2={H=a AK_!GwdŔ[OC|Ǒ9Zc_%xJ2$F_.mHq]L 6] @*YؽaDyo>7 (NR?@Q**eifstXBǼpQm{PcGVi:zM[@YH,/lugY,ƻKB.p<^n 6Xfd\tiӖb%,%B,[FM]jW?Дm76\\^{PUOdQ UZ{jX3WG[zs$]_wAaGzBUr(N$kE MȿoCM[x< Ezr܌pS~,'&bs%Ѱ.8;BsOG]_75>x'I/6t!I sA/-ԩק:D$.[GZ&G֖;Xڜ4 q)?X9j/K7t52ٕ䀕אԳ3z!M䟔aq'w?.)ʋ ܇k5 ĝBoџD]ڎt{l)+{(8ٯO Ɯ%܏KϽ/Gĥ|Ɛҷ1E^MׄZ<{K`䍝3YWX(Ε\a˛`ĸ]F6r)aiad2RIn,?qŽ&|*#[r`ۅP+)y<>8L| O0zNpPW?lM (ݵ;DqOcT}Kt- Y90cy3 EofÇRyviϡ"SɮrE~ݬg"NqjNL+j{sխKib A! m[{"}*U:9p_Ji*Kr82O$ΚT^Z ͣO})(V>3zqpzv@̝Bŝ]*5wh<{pzq/hд0P.oRmHSrs˸ dB&+hN>EnɛsQvGrΡl6 PCk7(Xu6MyA ҟn}D&kJk&ڭdiREŪ\I98WbQΗ^?)#@ 'u";P+ (QI[p >5Hf5 PBa &R+F׼/~j6[γ/p%'h': tt L ގ@#MS;93WXRCׂG6rۇzJ{p}}+N[Dp:6#$g?gO{9MevcfL%E"l/#Sn}$l{kV ={+CΑ**WʗZD.xIJx~Ż , ،͗F GJ?zy0g0E+x  Y%IRWhr?Ƭ=$閩,8_kmTߵflJ}%iֽL Ə7eaq_׮CȮNsN6

      f`(DFV f6Z%Wc<_JS" y֒cogZXDო߾(1>P|GŲ6Aelz#ZbSa^-Ul-ѿ{|=gjg w;ڄIwv&0-wK ` M$|btܥ1ӥntǬ=D''csR-G( j ?l &(I@i LMс=) ]NQ& Wʭۉ{m+@=*}[{zQ8ٓjb_.D~0hUbQ%a@[o[Wۑ.>-(Q"q*bBF RcZR:.c~0xdvݪOL`hkතS3GL;Xs bS(OuxaKX,`)PC5M!Gi4oNC(!w!Gav2B"._j6C( FX "O))48B>0<2"u?۹>:^hfSX)B^yţ56ZK$λ `&Yp -O/S2Xٌo2z3 %DfȐtRHd'3Rխn~{{]]]ϸu:vѕ2W8s>.,˩i?3#ڼM5=YAMgXDhb&6YBiu {H%46A|}M򰯎 $v^l@ΰˬ$+\iJpji $2Dt>tX% q]vFJEECi9.}螎Yt<{V)s ppoB=IXWH*M7( gٛV45bRZ`3}v19 ,t\ :i0в F'nWӘHsFd;HV>TVnG>W״I@➵.KNDkaACh#mkQyl,t0D=9y څ>/VJ3Mŧ&/*k$MKvq&(J?"6gc\ZA|S&v'Srw[})} fӯ f.[~~+Mzw+lr>p1%9 %iǢa&Xm DER0٣Y:!=V8J0Hhܐ*8ĚCA%c@Ӛ0d/c LTMWK7yn_Y-WT+^Waywz;F'A7{-!AFJ#]:WRdA$`?ّ#IS؜TbHiߍ&EV4yuC(~0- ΰdlMCC G9G,p_kWQ\fһrn-ͯi&%k2Չ:''q у^oO_+boU:8[>Ci_"S3GKPW~{d Hށ^) OROnOȜq4# CߑdTmu4T3 vcC d-εPK=1%IJK,nuvola/128x128/filesystems/trashcan_full.pngUT ZAPQux gT:@B "E$4 `TJD AVXJQ z\ӝfΚYk}>{?ϙsv=RJHuv8R;WJ:@ X{9Gs#C]HA{ ts 0:D"[S S P:h00I%@fw'K@7U43eEhqrW GTus&g"EBqǘ]0.s8GAb^`EΖ'K=YuW%[O2J"T9 ܁;Ȏص \sTaÊvp 9:kob%DQ लf-G|X Uê%KCFK8S &:*uq燈f.δt*m2z|Vz|ƲJ(G{zREIYA^, +C CH1'WRK~Csb^@fF 3NVaɅpsQ"R'tkLl!ښsP(.A1|O[H/P$?: 6 B@2hJWYS^r8bo))d782$ MCq ݼţ嘈_xKip'X<46P& T@s=g&M5d+_WDLk*Dm{tAh\-~oCaE&L>?Ϧ ueU} M4/R; >GZBlIrz{NyH o #"Fiʏ~"Թm#ߠq?@ZMi:f)!_]؁nT[2lfhƋq0q;4^{B5"BȒ]7𐐔ޢDS:WC #)>*=,6~2E$@6pwr8<*s:;*[WPydLii# ֲ'k&E* m62xw5ӳS^&~.<zudi;NWF"uԥx Q^^DnIPBJ22ADDQ.xe蛗1'"-LҒ=pqgIu9i)*"o{IHzr)b+Gt9}C&WE:=RohX :hN1v%f'x9k*c h2.Rto;Q>˾;D2Ez5׳M M~es"8,vM>~7^!S@yp;Ǥ\:ꈝ0){\وfW,R/(@KLsR:q0fF=9jpCsd{Zş$GM6Y3.=jbZ<}3N(u;ieSchbY~X(V8E3y"© !QNٮ;H 5WxVp@>޵N99}BÌwYH\_2Bi9b? T7:-CuN/+,B6GPc9Ʀ='nݜ&Ѣq}HT"5, Bs4L/jojf43>kb5|BlS?e?7C|lt/i.aDyס9`|)7>ʛ""L gjTkcElc>AK|v6YB(D8W>)wUȕjmdښ ty8巡(kЉt3L nR Stn \KHDZrV R>a@9H `c;piTÿ?cLyh,\6fw0M!`9pV ;K VRjG{W-6w !{sr~#Q,UUn Oۃ.xPAKKMĉ&e}:~nTEi֨RKش:wM E؝*0;BװW(QK9s>SǭT]Cl|MayOnaj.iKwh~d8+`|ݕ Yq8enGAx$+RcJqQ{(Yç|qI$E#}1i9ؽ DŽbN/ԕ8G=wQNGN]Mf>7lܒ΄OFR|#* &of{Rf &zΙ+Ǎ1a-x`nN̅1fˇr@Xߣf?N<4U*IWoq"RPuAX *M|K 32Lq BS~|r o2qq S~ U\T_9ϲ\?*uxe3-;*F{%lCPSc!Ju8وgj0 :PYOOqٵdiQXr1|~)(`c.?0Gv3n rTYi;@$\ߺJ,T*omc<92n"&֓kM_s"Ҟj;1, .VMMBU1?, Nlw%&Ei1if{yyE4w ?5N],^X蓒O9@MZ/{תiZU%zN+5H9<ҕ{,Or.~ vLN [P&->IJqE3jQfqTC',Kѯ?c%W YAg͢8 ^@^W NB~Wp*T۬8퐅HJPes%r'/52H2H`mIfDl׹fr#(?Gl-tKAs1xTp@/\en**I^׋'􌇆W\.]T: τڒigćrR̊/[Ly>3GZXHQ@ 3y\==TEGNԷcѥ 3 yrnv$1ezY]], -#k|b}m CF^ҤOW}T[8a?.'k+o+GRؑC7,U%;,N5 wXfw^'IY? E+UGB}R,v{M{SQ(t;fLWw.E|DRdʘoշ ?^?Ov}I|~!:ZM{姓w?ۓf,۟HB}}{ g\d}+aNsQM~zuuvoo.=مQ'%`j/"}þQ 7:5A( Re-`MDx_[]MYk1NorAh^t̋sV!ToGDCPN׻"n3 3&c1QD1o[.[vCM{)snHyZ3հGm;>o>Hrtz-!@:Mb3hR+<#l!ʺN#-Iz7 _.̦/%=il-ΰ;mzP{nFd/DG*_0~Tߺ`9NǗiGevE602B]s{%U1J.+8T>?vg'ڻ"V>*<GTMP|V革pښ=C &ez&/To7}ȦqexTb=wAż%BϦTD#u ثֳTE$)nGC^f3Ae9^;h T|7\D=pڵ >u-XA:1偮 t8"? mRKg "H5up > + dS-qȨh sJ=g >p+.Ųd՚N\AjiBOFvO@\LrPzTsQc_}Շ<m+>4XGP!+\jVNq:5(!+,y0q@Kٺ%47ê%5RR]ͤ^u(~h7: h;/:X*f&k]G>q6>1ZEHI}+5N0 nQGkyΩwGnsԉ5gDIW Ib^ڸݒ w ܤ{˪k]m`Ɔf̀$W.yN] mx|c L'k6P 5ya븁Iyt nU<jYL+lMdMHN;yAUo0IJ6O?##k!'Vi5KЈ$ j^Gr _*4a>Y.UGBҺƊRP]mG܅ijHkK22EY'&}X PmsD )}ӏ_'֩7nkn8YױxDTi>~sMlf 3R/?0N\%sg5bvbOTFb%X_y2 m\Ps25y^;z;?J>TD_d)MZm*.JկVhzgR#>pTE]ػVu]*'B]-k)j~xa.¸t Sڃ!>C_7y T?dvU{:G|]E*g-}EDX`\nh.5IBD"H|_oyC?Q2'7˄,kFͳCzn݁;'v(n kJ޲Ā6{ ldu]lSz--v#%xnr]:l7yЃ|*ؾL;VR}$¢}Y D+w $ZZWjL 0&ՖC#x\CvK<]Zc܀(D:7e_/5i}Lڠi5`56I+ Xz}T6 ωuHO00|>,# Ԓv@HT"Kw8Pn,ckg8@_@^m 0Sf0l\!;misac/]usdl`mGY¬LV~YZ/g$g"+u @T ҂2Yv.-%XM=)oiL{DBF Ǔ;&h4nqznb {O%*?ךJL~T5M^-@ nRsmZƃ[?V5-[jw#+v2A|*tZI=bVܺZ!Sf$} }P 4'0ฎ^KK4_uKAQoUGyf ._V ߢ6oگ^Wg3p頷RyPT؆hbK-i%{dT>;Lض&&?2͢ˆ be 즦v|%i1u7I\ſ&ގ6'/õNp? # ``Aư!#E?YoPh5d\v~}43[WWnx$"=ߔ!4̲ ʪ$?s!AR%٫@X.~' ҹ# )B^:t]a$bufl 硫s`8!)a5 E CTPw)c25 K&g9< k1wc0 *\_giڢo*>5%м IVHҟjrُ5d/?7YQ>{3ݩEElr{VHuH:IE“_̥M|o)5`>v-(X:^**>Fv &/~jJKhJ],}C0X 7.Crp^yїR?\%[ٷLU ?@D$bMw#f | Özݯ gmpc=zeMҧ/óuH$r - 薕{94 ^aum}|W~W,!ͥ^unY >F˷KAnw/VAa0#E [N}/C50'ឨ&H'y+^VNn/Jc,dϜ{ M+T3H-ۜW{Rŷ+jb qgR CE9T]Tb!֭`dyo_[gt" "TXxqA$$=(?E${EEw?T}{ۣiO1=#C%2 0l*nA(ڌNlZ{/~p?giF^J)e[׮7=! 4Mn}F{6挒l·=( V+^ L:xRm?K Vb]|ৣt.&\CUa2c_+#OC[K!u:#_t޹rU[u˕_98^<'Q3[F=qGŷ}˸f@D-r.&'{ge1fEu;+~= iz)=˙7|:}  R"Fś K|aqW~g'91l>d O/A B츈}oiFHPZmd'NI,qD.۷íT)+qcyS7E 4$躕gWUN`x taSk8+*bhINC{Ӫ߅S:ԧ>5h`x,.z*g${]eswMИ_K c]Vn[쏉=V# E`8?)]ak<6WuJi)]d9?~1#*O}B !aGzvR.lR' wc/1#A#k&И'MiRr6|./{ΛMR܇PsHmRjIxw)'srs"BcW, jrf鷁9`$zQ>GW#^gkbUj[o}|5V`Ѵye~bsXfhD%7;~g,DMH'!7~5 \{ndVfoO8R !Kp 7_.ޔGܿ¥'e' )HNZ.:]])P_{z™Ѻ{V/L@"%~^#蹩p]r\WH񐜎wC:T6ãnϿ|OLXlY [&7]z:Gے(q=&cFeKΎu|v#Է?!^d%mIHLBSF,ESg}nsm3E@ XT+ȷVUpxHa<<=r$IV#ً|v׽;}ֱ:˓U[o *wZp ?tv buchx1~?D7Xݛt=%Q].y%W7}L1ŽØ$g$S5#/llxvM. @CЋdFqrGs779ʙ良]Hf?g%?dcbzjv.$G5*KB'% Dr^aԳ4-znYBa}+);P ܶp]/R0GĬʒK\3r%s-۶XE t2W'+4ۇObFr$5z+3v'L}l%3=u87PHٝqfvwEvkDme&Wnt_I}~_1Ʈ!I};W=J[E5nVgU8{6ڲ' {ɼB2ZLFmrVqFZ{9F kCRi٧SذODܗH˸pWNF_%,VC&G-GMԉ(V&w^_o:Lm:bQ[0aDʢA;%=~w7T /8&+A#x$&P3= +k}c(.Qm7-Y1K!4|aGs5O#>CWYQh்ȠQm{XR:WYΚr)Cѭz7fC}+3>w5wQh^>)O}Nu";"JRƾ_͎8>ܚ<*w˜6. /$<5JSK޹]{qruv~)xoM\JPty&0ֿ27F3z#2V@wJv9v|hwkh=Cs':yabmd\\K:#*xh[=H wJT&F>߈mY.ԭml߱oMx#" 9ʻnyYSb zIi c|Iϯ,N3a7G#aY[GhMmLKU,5>kS0`Y0g Xv az(u`UTI8V:݋K eyf#aAI2<nXǪO H1"XxN rC L遵 FH_:̻r W!98cP$e-ȩ%b-S:@qKo?R+Ff*-/V TCϝ"G 1Aʺ}O %o; '>㍐S#v'q[BBN@aǘp߃@0PDe 1%eb9yulp,(g,,!(fgp8D( ><|fu x7!r"GnEW\T9Iwꎋix}{iϴFxF'6x,@tߋZYjyԯ-/EɸuE&_a`ıfJKp[$X A7wl 6AQ9$ 7ixP/a#Ɣdhpզ4cpGHTxPCUĎ(_M bɒ~mQiN=yN2v Y_Fpu"k'!D,yx,8<g^UeKb}2MbC4#5˲+"D~afBTze7&6cEX] 4&ݹejI*_D &#Y/HCߦNbs Dr-.*]VؐQh˼Zļr/MRSC:Ya&.ߥ$yWvV Ps NX[r6![#FcEjT ށX_}j-*і ŰKo0dNyJ)|HK4\L>i 0Ty^5xe]}S/,ޒuvpKM<n'$n}, zW=ZAz "R> i#@A ka.2{x ݔVdlRy Web)t;^]s.wJv#r}'댅ROP8m4% Q pImiKʎ2Yl CMgcK~cUQSPj.0ϴi1ȧ>K3^[N!eճ3g!)R+< [|`˰w@rFdNܪdֲf4H;dUM}, uoyVVgx-<{vB=xLME {%Jes6vU4F/z꣱c﫲o(twӅ*rûX\p:'">DW!gRYofe5P**կ8Y$D~?נRR}dndw`z|agǜO-*Z2CVwg>I}Rcs^_U'F/Z98IM[JSu?~&™2#]ط>/R~)=a O?܇;ODooɍu$I^;i>K;WgZӶ![t_uȎy|=/Qmyw.,Z.]I$oqv9ֹRP<5l֓L-bs;3/H茆xhǫXR89-vINT'=Kwv&Y-1ޖz@xYH?qXB_;9l{ ^>H L;#:3uj^@s,5E-a l-yIߟ6CDj)~EV ߅"!&n*לkM]`+qL#k,0ᗤcܘuv!\%hm֕iǸhR.urvƥ{܎ut{WWб;42GWzOJ:t6%1ɲ6%L{ǩG)ݾ%3FvhM4;Q {8Lt^a?Yar~T ㊢}g(}X?[\| ~g4MnTĘW,"11+ nf\(0SъZ>Th]#6qJNpOD\ُqH}}CaE IE2ךE íflvK"ОuΟ…}Yd:cWYjuiD^ L&WSL k K6]i!$~Ч*;R(|jٝ(0d+0<7V!:ΰ2Lxw9I%_vH HC<`7Y^!H]j$>dՇ7kB;%#A6FʶOFZP!jp88 >7/.3=cǿdu(Qܖi`$T|y݈l3gK3* t#ΚJ$!3a귒j@A2)dUqiy^1cg8\-$5 :&ʿSHruLw EE}\gUiLǐg5QX^EU_Q1_TZ1na(v^xZH*c ˠ>%-ǑmpSQH?jPHdiVz ~,b}qiÃZą j/>_-Nq8p {~2#WӶ"C *1zQ{Ipw_&.cLNp~Hة*WYLʠ!3z&ҽso>Ev83 BkJ$$}>K$޺U5B)UH@kԠy&Y N!#YzYDN\>$u<ώS*?P|k#u:aTz&IDZ#Ыo+S/!a4bti|Fwyc7:יSmx{r}- a2BAFDr ;s"Bͥ!J A)rCbe4:J{_N%zHNxR)ktc}k!2k|!=(-$%J߹1aL/G-D~9m@FxF"L OZPN4 U<H;  r@q\;  ~` oJP%~5Y Tӷ@7b{z :ke;?JK-Dj8u/0]G# qʻ f7,)liP6L[ gt;#r( )ڈ*Mq~#cwI -Nn)FϘ; ʃ rVR;p:_W7`n%6fzj=;\Ir,iDuR aa>;శA386v .i1!B*zQcO][&rc8^vo&bH*i 6uSdK\e*G/['5NVF.T&-7F6!F,m!ȸIqW_YkO;eXJYORJl+8emm7M=;Hz ) c~T3କmr2"_0}hXPԁQRY.tSꍠaC uvr<nKQlVdV#rDZp@+jV v]LjJ/`>tK֬жt;7wQ2VF8+>{zש5qRmA2 ̷I$ג?j_KVEiTl 1^pD˰µ Ĭ#'T'eSDm,O e{|nQN[p3$iMx!YSi;DHQ92qf dQg=p :UB ښRLBwjhnu<A'9&|ۘߞDURlpEGU۳i@(o*b:,ekR!7' gQ uZZafR fhnv^x]R/@2E("etIz8=ȨypdC0kVi>dmPv繀>M7'Fo {f?݀~eSj]\ve2fh,!kH"69O m_ AN4}qsNq7t-g56|n8coNkۈ+zIG;Ӆ4#'!{,^snB_Qvw8-B_Y9R'jr7\Ntړ~ ă(z1dʟ-@%<~aYy\| $mǔB7@=/>PN?΀/m,QSuAx|{ovhˇ!~+/N/Rbk>H0_g? ʹ3q m 2 }ӢN-xT&eKs^XwWGePփkLmxʴJ'Hvhm%.3i [w?-}|Cz-M&&00 07~"g %maLuoB/]4$@cVy|/3-рcЄ+oÒJ!MGǹ2;NN 9͘.-^ _$Ɂl777r|/OC0d`bxٍ3h8YPtNÏ`8ΏY:FfNOG#΀>'s?hg$zR T"ZI|2jRx//lBwXqKnn&C5;/ĄK!)q q>vp8z qPDg0- 0Pt1܊-z7e,rH s-mOY]\+/Jw1L>{+dG@E@Tҏ~ xq,q2WօT<*3e Jylf#'᱂^׼Y硋+Nk#L"0I6L"~Y}}J5k]>GR[|2˲+Tx&qQneS08cW%v;ݍ+Tۀ3,4^j{y7N ,\g!D ثV7Nj.J}cjiBMJhEsIEꓥ ,#;FU!ezrWQi;  Z&OKv߱L-xD'S7 e =uC؉/R0>oc[تX &߿%@2 |-qO@cu\1w.wOu;J4@A)tg\z΋TkyLI3iIړzk6U,JWH$ϋ$a.7SŠja\ %`~^ΦQ Ur&řeyȼP~rc`u(wP{U@H@Q(6qsJ^)(f]k)P;NaSf&ʛntF:?朗/:s?I`.C,nob2,ߤ!#lCxl?;S c b|= ]}na  XjQz.@D7UaQ)uq#L=rc#ӆ!_l ;"DG`8bjsK$?mSn~>/Ӫn%S|X{BFDPe&pCd3#<əy벳ZT $?*#4PHHVPKҀw9`n\ٟN#wv]#6K/Pccw"KeߤLjUu(mkNV*F?<&< ٘Q5Tf4PQa? ?_9lԶHz6*`Ng k$dϝuCĒ`J `ǿ[уhmY19. Ee.p,_[(^ByKnA﹑g$nl[ !g0kyQCDvCTK4nGcD%Oꑴ Ufjd8/;[)yH𛉦DNmAlud̦s%]~ގpguzZ.=4<~eD+Gy"-߇@6Zs=zCOBōM|m\v&xܠywht;YD=z.g|q.<'\nP 1"y!x3穚ɐ2?=v@bSc =ӹ쿫%=|[ 3v S!Pu$ } N5|vyݖZTZVHS8csJZJt{T~ ٜV+^XCxyl ;1Fٕir]I3r݁1dآyEX k&JyoץM@\$ QO΁eD"|gi]Xw)@5ǟ׼.3,u'^kbsVkXFFdmW;v%1#s*ePF#RA}Y |%u.joSH#t[z9dnIlyc[z5tVLܶgo E ?2~)}&_x$&0,ŋZ#歉:ţJِ"xB YL~At^ &VX]><$,&~|wp i>tO;IV~o~2nt*;NP+jIsX_c{E,z9JPc-*VOk)sUю#-qy|mTg&#`VD>|11?;v ~,1;}ΆzlGUEREOl F+o,#rH# _?c]_% g5vZw`Ve? -`5Kɽz36ڃ`p}p|ɍ0j-Xi+g*SC\QՏG{Q6uqXF o&YcNu5g%PFNt>  J_fJ&WN%D"Vqm𧕞V.^E?FCAA"^~4?c9p\ çi#E1lu5XxNhXRpYz,+c"<3>g!\fI[ȊI~ +t|:™PSC(п﵄N 7(ե%"0 ٗ*Ue[5|12y?.Qey"\Y~@1X1C9pTA,Oe'X4jXd.|2ib_ϦQofAk`g҂tm̨;;tO**n+A+Uu[|[vǫ%ɃL5ΑgvP9%pbƧ1mfJSً3ZEAUV4?k1c#!=+߼{'Ie~[q+idyǎ"b(OQ(_wACJ*F^IHpYdTlH[puBs ˏl6|$[*EqxsOk~),Fk;`$&%x2 e?hl`}kRvڼViuXF/3ApCp<ZZwj0dX}'4t8g &^0e`"`qqlū=JiS[VhvQ'w8Dū0[;^cȗ:F4Z*[)Eq<;>9<ĐSŒ5 V%LƏϩ6j"f{VlI{wLzS- S ڃERpNMb;dU&E3s-5CӁ%YCxH!| v@Bաj7D J sw{v|/ 朥~Z22ˈ ʃ?-$E"zFg ~&!E4G0ic<򕴷ra}d^2lKNGn`LV?/e͸9 `N*_}ti"Q_^ό1Hۍk.AwJO!&ƦZ~1I{6%GjhGTmSЯ)g`/¿6`5\:&p͹_.lA\8iL+kR&?9n /wc>sAkBwƁ㤯j^' ym{)l!ueK~fJ{|ʠ #DDU ZeJ*OvV!`pOqJ]451`XZ'^+gQ,BS{ac"IyF^y "*,| \"п"gT2v"}[%Fl:ʲH!RYoA9oiRh?OK=q"gEqSW.(8~ad[vjE2:nJu viԘUYt/Խo22\6]&A FFzL\߂qx]:EmtBz"'_eYPާP c}SuCagm,ƠfH>r(& l?|M6h~"ۉ)S;=c?儫P{0dVY:¿4yw|=oQu%V9bKueBM!yO庎(yS` :m}ם .dJ z(EQJ09h72b1>LI$x낅tz; 6Y-=e'ش!tJ*| |S7[{Ҋ١j!8fQfItGc[ٿ(XyC\Y)%:/+26`lz7O1S8^/emmY/*As8*o(5L`Lm3SO,fjDM|ոBzֈԍJk3S"S5kȱbkK2́BsıFM2Mv=2QP:?A~=tuM%] nF,&I2{r#&'(q%4.zvߘ sg! b.f]R۳7O;jx˖ol1Kop!6H؏0ɑf Π }ezcˠ7[@T+nɻ kZ(ALcț_$mIs|!Q` Q_bݷ8ʃtF}8,5rGTL[ h:w)}Zz@3e?}} 55%!mOq[@!aJ!u}4s y`a?s %'=~Dwh`i;3D\/bHa'!%Gi^A(Xmfo;|s},)'/bR /qqYe8Un Ox =. ,h[А✩<(\ I?Y~_7:3|ĸ0oԸA.GO5w86>Gu=ɾpҚ[M?c*-!;R-;P ĊJ̵CvNq8 O/Α~Eefۤv} n_Zmz~;cQlI9bSG.^X(G%+u5oDrң׋h&A^:Wh;0i?S~ qk{1fћ2 I>q:w;y|"u9F/{! Y\ OUK2? WԤäu+itf쪱0ޏBϕ`/sȩ4Ģ)d 6UvX)nae%9 ؇qb}~fЀFp;0=yfs=Ps'܏V;'R\BybT.IJ4 zޫVx4t q.Ak & {ǫP7*M5Pgs$E;YZmƽвcoq\=,zu)M>ҙ`f- x~)n,_aϚ/HFNBU%. \]sl(y퀚8Ox$*QdfQ9O]IXne gQTм>Kg?Moc>_9|gr5b8K{nLY ־Ly3{>Cm \n劋ĸW G) u=hnbj+ˊ&}lxgRi2]d9!1*qWvKq̆(iܶ4` Ƚ+!@!e # +,9OKz'Iug@-Nm ]T =ѷ@9ZmN?76y͸@L簃kܺ ^ J[+˩% )*ku٫;/rO_#!]9ԩu4f$_6u<3 2ȶ2X \4킰,C?9 ~1F^oLmW=@Â0la0 ?-GҴ5s ;CG,Q^{d?F~4E.$s9>s8_ -rLc;'d+IN6 hQ"k9a'"V>):-@ ,)8תݤIe.A?ycKzc9j3C1UeeՋR }}}~uP9i73MYzADme. łI4T{ڿ U]4@;G>(ip;O+*sȇJ+\DK^JwҊ}'|?)]+Jg<%~=[٢ݣ&_pAXuLɾEAӤ o`ɹ*6XRs x}^٣jTo`տ0=MlE2*yf=m1dj괌[IPwP=R?ƌ:jە9OnX|"SWA{Tur>?J Pf9mUV+C+qR)g6峮\%J-9ԞAwK0#óRLQDqn0['$GGzyc=96E)g]k`cw 48dؓQ&=&6_-$89r-\AQ=Kk> -m8/A=!Z|{RW2,7WT%ׯi^\A0l@a/[輏Ődtò.><8Uú}vsij J21%qRѾ\5{YF~j7a.$0suƫd99}٬ަ"dy{X*os_u2ZQ6kx?Ejq*!"B9MT)M_bK0Kg&_L-YlZBe% /1׋0,AYYw$H94WzYv}3m(h:J2Qe^3yYoWp$"-uMj΍%t'VvRg'`ܥ0+Z?EE!dD#85]'^6ËoݍY5L9ohº_܍.=<~/#oRYiP;Gs O^cCԕFvACln`Vuv ^n%9셜aputxQnKV !֯Ӈc\)KUeˇ tsho^-V>!g oL7r`]TգTd"u舋W?j`alv n@ xf*@hya*ZSJgnwг7YH£ER,2quqS4n8SV팺t?i;aM:MύpȠ'~W\Qr &clTZpqr#:'GF[?6V:bm<Ҧz{Zn=%;7D9UsaBn{U~r0"6(kLu̓׭YCn#!YrT#`ѤITs~uK`iҜi^M&NhF4I 3,n ẢY1'm3&KźIak[Mo"Coֲe)dz)>ⶡa[<-xœj<>N?G=#Aֶľ {+L&\K1e8*b?n -N8rgׁ?;@\"#I6ǝĄ 'FCqƐUav&[愮/^],wHPG<+, +u5x8+]|%`\btׄ0hT_y'lɋ!La'ec2q# .W .kZO#_,CƧ 3f<}CBqO4_iGѻ iqTz٥ KPX8]GmOc" t5_a+fZ8@.>|;褊8$c 4 6m}=Rd9NI10`Q)\ņ:% J]P'쪐?\$rJfw90}r0 lxCҋ=#_{ ̴'4JYyQV+_̛ƌP-k'/@4M͜}[3 yal݋>*vV%#X#Ά% cؾnPzHPrz|}of]?tqഌs' o Ӽޡ#hof*#uhŷN(.ykiD)m OD裭hIU>0pFޫRZum2>,$!fxeLyw nK ܛyeߕẵs$j4(uM vArB^5%& bg><=nL5kUF X!NYЕ]D?m7@^ .r$we -WY VD9uHBX8]4F|ʒy8c {_(@ب*cv| 㪩.Pp/QFl + ߯O)r'۰:&&m@b͐f.LQ*'s@P`^hHḣ HMvD9제qX8MgxŸmTD#d7MHTb] Oz G|;{z9E5n=geXˠ ;*V{Dvּf \>HRݦjT+Œ rw3*{-.R``RBiyi:=Kr@LXNSnv $@&@ޚb[6.1^ؚ^̓ff^Zo- ee:|ԐZl y}!%f ZTIٹF Tv5BGF?%z8'jbt ^z2G_5D` Aa5!SPzh?$P;쾬S²/7i%MIk,iF+6A؉^}.{NO;)܁hsvcqj9n<B@~yJh}Dڱ "YBNciq n5/6lLj3О]M#'{uC`7[7%uD =!)Ckjcj}/Eqn,h0F]Ja@Iޢg8% {aE!B-HϯBm`|Y50'oG-@t4.1YV()"oFFjnTG׃|>;%DR::mdܯ@(O%|H+aL_K˜\Sv82oRgUً7`JP1gM>}HW昽\r{mtmhIߦK":pZ2b iMOzjTw/+$Vn7XxXw0V@AȮHXޓ%VTǟaj6[jDα^'BWXڗ wcyRa_rW}LK(XY!D*ָs z SSooY%د贛}uSut|'Eό{%_\Y^mSxlBM4p,CAolj)^O÷o0fP如ׄѡHz#>L"ll7jmI7=n0v^Oh-˱Ae"u;B0.()3EEM}z_,?N3u_RŲu MἰMQܼ>vzqTP.OmsbN1D[m"~`~fH\个-]MGǑ$J$eHY1~U Mu_H:%(fyA?vBPC` C-1w%1X歧h[x`[۶puMzs+s#!Lg֎NyD '&I'3(".J:o$TP2K~E|3-h9HntXk(.od V‹lTF oV2~ܿ}7=D'9ESL`Qc[&U*FB7JOMz/#u) $ Vt#[ˈ1N4xUyEP`9W/y-Mk9ۋY4ywQ2(^_}q\g s!6!DV= iMZ5KH_UN$ Z nm].?υszŐdCtط/ K <ڛ|`Lp&VqU!  A:$% /Ien{$v8sUGBݨE7}͉]?ʚPa%;z`hee밮Bɍ'0}x*ky'pq|u4Za#"gNmr9׷@N~_F(u&a;t:%/XɻF &TW`d*GSr-lYn X*{3+7< o]0gUmaS71YkGB_&H4y(Jw zXc\ h:"8L3r7㐌4~b)mEzBr8HV=XeWFA:$/Ir̠wuо[J/\YS vyU0bG͆pk+'~@j,{4eߣM$-C&<#wdKMkNd=ȯldyQw8()s\ Z蠀fE[/8#SN߉ߥz`HldM'q?Ȓ=A_8,-ٮh lbf>UxYfE:X,r'pQ$}KoRZݥ?e $1 R"7eON}O=dj. ]ѹJ$S)pWs^?F0x?`o$ q?Je5f5hAA]`:vr!Qb~~4&GE&>)RaXY6|kKX;*: m%TaxHneo6rk4׸[id_\b_"G7 J)X[hFmGnb#HptqEG͇y8 u^V/rĖ^&V"U6c4ƌ01yYqI 7V=t,9O*ACu^_׷G8sdY.=6¨9fr{D̆}g1J*b;H&Tb}#,C$%_qA6ՠDO FVQQ~b+y}nyh V>2@Μ|'RpPJ=jG#]TäTc³e|ї`Lx<GUjWDעԪN$}vɒ;#X & 7 8I BH_9m8N9{֙JS,ȑQy)M6c/G}Odfn2`: &R8/H sfrh>L`_%LK3|*9j-&0?ݯW ˱9`ecP4no㠟oMi7x+mdȘq~ޑ@&BԽ 93g{^,d3b9s>b[lxN}UdAM;bqJV9f6V#׽0"b@8;a>~[j\-ٿd3sSvʯM?wXZq17Z^늑_`%KE8'X0/OgOWKtZ7Gעmhxq9F_v7fS\ytL@7;2:3=oc")_S_@a =K&魩U.w|]R$/iV{VtT] Ёt~_K(g*kbӊW |k|u~ˋ^p]17]5#3L uڂd} %Ioe7#2KhKvM 6%>Sޕ~Y%e ӯ%!6] <%!Nk#,NEj#ڸ#2YƗ֢+ҩNs0(5(~qJ>grnƉ=NC3XL}VBIf+E}XVpt{9OvpoܩB$Ol:YA690tCbް|^U(ڶ67?+W|Fɥm^o[GfT_lB\:2о ir~92̀Vp3&av< ŗD=f(I{I[a;H9jƍ2$FKC2N e:߄A" C3/-F kZ>J L(ӈ5pU,ֶp1bI" E! Ϋiخ6LK>ODY.{;*1;0%y V@FF:.菛3X!tPQux UkSg~7 ٠ FB Ve Q`l!ID; : XQP."&, VDEEZq#Y-R0UtA?;g<9g߳=jI$$C"<5A'-!AK/p+~NnWgd7&q$~:ur2IZR񲬇 GGC[|ٿ :]Z1~ Uzp^Z6Us37h6D`03r!Ϟf˱oH 5 *uɋ7Qz)} ledM"o[B-iW[Ktlm!T5tvD0D-1>YޖTl4jKc廓jœ.Tp]¯/;M|=EsZ_ E }0=>srޑ)yHjR$g\ezG|WRQ)'`єOvk@Kyɗβ#t}bnh?3 0M}p8ϵq"ss&5|ڀ,^i);JQ$$ԖFB;[W/f"HMMrzH@SrWٚ2}flM/DeW١JUPٚ"QZZ#Jpׯ!yt:`dT[tF rX7=SmJ1;i(.`̈́ӘG#wen&Z }"rrب<ҐEJ쿸ٟUo^u(+/o m1lgC8)6<7ls,㪃ֺ*wmj{HTao a;\zL@B~3x"V$1zm\󍴴M#"^ZZ&v1s˧p'6u{RP ǧY5'V88 x4zZuX('@G'TիUn12r=xԧO E_ϧ+q/ '؟=& I?y.xnJkx-(-\2nRu9ɕg~0~= 儍7;TkX}BxA#`ihgz=}Wg{˖HOHTPK RL>nuvola/128x128/mimetypes/UT ̤VMFSux PKC1'e(A)(nuvola/128x128/mimetypes/abiword_abi.pngUT `APQux =z <=y#6g!9%AIK69D"Q$P!*1%IY0yv^?뾮}]O&CIA[%/Om#{+~EN2e ԴCe}o 4g*tK[*͛x‚{0Cb fp,Rg!>(ߓҭ犊"[;;#Hkׂ7^l:Kf_'רG: YPŪ=`n_M#Ý 1$ ?ۑm)F&&v/$Qk@,~̈-,TddЛLK<[ܜs@μyI̿ k g ՀׯMS\c,ꚦ$V*!F9IO5 }WAޭ[H y4UiXrHU7]WV{il6hITsU$(#z=""N~TձJ`#bnzQSu3q0KO+!g%7"x1i,dM#I+G34dΝyȖe3gW,rjU5dWN䶗a2˝hC_bTA*pVab%ǨTp7d}Xhq6Tӟq'Z痘Q#osCfG ׹9ؿR2z^w2;R`6_c2/-IeΏoRC;#+b^ӣ_zo "mQK \nU) ^ɵ(BTx)p=#~n1C~O֬Y4/~uu Mue6`4M_Ree%{C $<څOEWYן={քkD$|M233#I~ WVUiU 5^rL8xy~Ûp?x㞶,]Mo!]gԃIKyeaU⤹9.>K LLL /;{ߣ 0xgWx 8U<7v?yM c:TՑ7n܈Ĺv|j/]>y^u̲B}~ܠ,6>Qcuv‰lAA*4UXvcnv6TwT_]|8TǑ3׸!N!?o< Uq&U zȷlcuZ{PFV˶mE)] 9AsX j:"ae~O$5OB*RX5K(0 ƖUU`jaiupx;s?};=v˗/j[kh~-1A@C ѿ;\3aIa4&KWWZwd7B/Ehc ) JCfnSuׁ0)'ig3"R/_6=TW[Pj"6l]OwhT N[ Ά3I;bse°7&&Fނ?H;#hbu쬐@ mHZXn/3j`ՠeqYrφ53з-d<U1h%xEtk58==,{a:== f\\K]Rwp5뭦+ {oF[ιə>{Ȟjlfev* hsXȎY~8i_ó21Y$ю)XwɇfN-nCkPN |> E=ud}Shс$- LQ:ednAd"l9h=||\֠adH廏.YhRI U~m.[39s&eUBGQ"X"Rs7 e;GT!ʀ ֚gؾ=ӧyAFشuv`Z'1y$r{ˢgTԯ y .{G[c[wX[jkNܾ EuؗpYxX9GYD[ O#N0ܫD&)I4t&f$j#{G`EONXWKըZƐkF<Q{/Ϫo|t9tFG¹:S{g7%jYU`i*/:26=Ir$kaK63H֗?)'#ΑNHmg9 \(AR(x4w+:OjQqp!} 1kFOI>x"2xq/{Ν䘌fXNHړ.!tesǥeXz9_nñt-XFߒT׎gA^=l>/\IY^u4CPai=j\Qi|8v0zd37%ʑm@k QNi'5щt-8Ѷ֥0>3 aDUP5ѳ{( FB" B7<̓NqrwZ/k8)(di;5%^]'Pޱj~t ]쁻n49U!NdJݛ7ofF{ mWXrn Խ{um`Xt_X+Z '8s5Z<%5end#JPB W%WV KCw|Gۙ@VN,xl4C]ۋ/qHTwȢ  n! T3-/[6q) 9zWm`69%L~A5pDY䩆KgEo [sFUkZ ^qgy;°chS8"ܜxi2A{j&'{(_Bnꊔؐl__cqOT#t6/čP,~xJk~_ȴFLIXּw\q0.\ra"Z{pdcZe򄓝vz#/6Qgf8\ILR>VV|pC?GܜFҹ檿!O/yr"p/*8 zGp.t2 \@%Oenvs{ykW~-PvH'Y5 ^?1&o_,awu)TK XS_#Y׍p_$I%Oַ E],(;6/N䲠N.4t&>UޝA!V-FΡ&z/m1QQL>/^9? x&l*W jQ52sb6( NIċ(śҤ3 Ϻށ?=| |x&l\u.`|Kcucl+dSa)J5'@wޭl9fhEy ޙs6[nt" Mc@s ,A#9OlBӼhM2lP$nsHERmʛ(4k%G*8w$-*/0BTvWB,p|={5!y?B3W#ЯߗasNqk[q i{P8dج"CAHlJotSYOH^>s6c;CL=bkqkkD:v-+'>?gK> Ng @OauK`iy9;gd949ˋnfBҥ0hw'E#[&^Ys_5枬2roZX4ty7OK$=j30϶5+b1㞕^j {uy֔bwu2g&,KQۉZ@PR 33:tݙM#FS UU쾿ѽvg8@ᤈk wk cSxoBNX_YI=-+nib0,`<%^^|h]6Xހ2<>& m'Ug\ak"&;ٝk-Q Q06~fI~)5E'\ :^׾aJz*<6$Oi-U#xU/gğDŽFR6 R5-& ( )?"b`lg I$)8|zbiqx.DMzcA܇_5,Vc_zɤ]-pxWS0m+K@ōZKTStr]})YyD+G Q$\Ą#S(i[_zMU AޱQ8k JCx; $vk5!})nTyK˧ em lSFrpزHHRJi!Nǩ%v뛦5"dT6oa˙rɢ`:[''ūhBCFVjjhގ!ǽRw)rk}j{_4(fƄ;PmTyW|ڀ.[桮X  Xcޤ1:/(˻(wi5p}'Xei`n=G[=(F\X^oZ\A gY:*ZArQONurݞX |,nBc7ct́ʼtp`ׅ$IV eDvL{|tîFmWna[nYc?.xY}&hSt4"{{HUh-}9rj?uBhoKhj.t }NSL7g{QC6 Uޔ5E\-7[g&Ph{/ m/5Eky_D󂴬mV>YEDP{l'.\͈8Y@l`hwHtY]|HQ"w486gFxyI aXd K_-7zJ ҹLgL2X%fwSƃN.[_*w~tg4ޚn>SW©g5.v1Z<I8h_4{:\d27iI^m[L8}@`QӃjeV!+E\@Aw>[ ԥm+C ɋ(ݿ` nEw*J܆ zɜx;|z]"_#_C:7螗 [eTʬ'-4߁|ݛsGJ,ak:F\{m’B\#^#5bʭR~ gٸ[Cj# e0ms0x&)kEsR kM`-*uP[;@tNv.PEޅq5Jw A1yZ:koLxHم5|Yzk>JZoyHm6ViZ5aAF|hg>g?iYquR<pqyp`ɖ+L-|:z;PDc}),JHyF&`?"; t+|hzAD(?V8?ps$.7#0Fa>F[ce=;nߧߚEZc3 ?gHywm%c,wssbF^z$[-})5@!Lnlc2"4}L%D +KEC܌꤉}sP MBT: zoDhTպkJi"e=Nw.@5%|QwZާ}x >æFXg7FwyC-ĚNa띂-hu;nnaRQE;eT6geMkl-Hwa_BpDg'zW$w32C$ʮ2tsM"d/"Q=PORcL۟h Hז;Hǻ)Qk\[ W&_#w;"ނM,_C,,]h['& njIS 1DLmۛϞ䐾B5⼮Ζd6q#M Ո|#$DCde/w%3{ХN:a~+պgZ>Uo\ԗQs"ABD)<wK?0KkUAʦ84AvlƸ|hn^#g@NRR jd{ϚKĈ-}h2>K0ȟ- F/6p vo wȽy"?,q;boݖ֢Qbc):q/d?}u)`,6o:ώ&732^Jk(((-M0ͽHtg7|Ӭ ml V8 7B.Gޢ4L_^oPv{qS踓EuSY?u&---5<mg͚8qJd)ko>y/=H$N* lgzmmgюľ&pԣozeH#N#oYEФ9+VKNո lyF4wa=\ӧϕD+X4[Oe:Gl] meL gPYR-rXܒi5b8b`!+Hr)G5<g] Xpύ]ýx֏ v [[s΅$w-t`=0 cx1f>7L+d13";YZ;FlvzK9iرcV ̀"_< YZfwyl0I( <,SZVkGfXEɏ%sۆR ҆ƘL9~ϼH;w䡑-t3qVzȓ.s*`D(Fe? 4>It&'8-; 6i=Skp'^,<*7` e% ` X,e_B _̣u+ĝh9RWm~垵PXt$.O ohr6u|Vdb]Ԧi!f%ki#\o&/]Tw~)VRgkQS~\>gk41/^Հt7+ /pzzz-g f$.pdi+FnۺsH~~wpuUC-/gMV=ST/s,<юD_%딼]jQ9Lp2zqھ}J0ۨp^~$lS. ܋/w|hHj*O`F}K *>Or[=B6c GxVBtZhټys<q~DDaTߋ m96Em4ąpO6|,V<%&.Sx5oH.j Ҋ%Sr`Jۑ–om P|jan ﮇxְjB6&WR0#U|p;#$SԲ"DBݦomlR^b-#b0FuBW]J/NND}*| nTyh.D? 0W)! H-lfQe)B[Evj.],xum,'? |/yϭIP(Qܓ԰f A$-Vmqb9(LRYtpzGQ,MA~,CIOVQu/0 oc / ȹe,e(?oxxH=)&F8@}y*s}7rCݯc- P/wpt*0BEZ i~jU{u Mifk! 8~\Ifn'YhH 0MjSYH5o+9.k0O=tq1Dnz_Dh(\w3]߻f?aGR<J.W<Ã-MH٭\T'Z[ gfՒ Qd ^,ouBk|vbBrTLUh2D?6&-){ɓ6^1PHcn} dD?6a8$|L9zb\HazD籈=#MIW92uS8>q{:iw.]ynA&wi B.z>URx-y,Aw1Ì!a(ݏ(M6 Y\A|lzQ`"/{p]!34 PuDA5ΙA%&GR,X3Vf[ZE՘VV^`Qƥ:ٷ `H$EF!qH!X Q{Qu?2Xb3Qdq@BS}mi4qaHъbPm'f -h^buL{ň"`9C]K[ڡg`|᛾ra5!\3xw>QL1+fgDw갪xNaAӦG!qg|ֳ(N^םY't'ނO*M'JmFO&Y ٟeЕAn›55̧%;Uv&#ȱ}6hΦ ALEO K&^nƦ}iTR >qNC-ٸqd5xxZV^ CYmK z- aҳRfwA^ F.J,_2/-TXO1i-AxA$6dhG\$#9T=/ɳXCz}^IEcКFb1uiuQZ gpyKc'{ZK=jBTGE(j]s: ց׎gǪ $xQW.;v'M m)|p{Sq5h -=0GPb'{NCO%52 7Zu*oC1ЬrnrFYcy78/knԮۛq]zkbH?rXaEڜmQ|מ nSpe!2rƁK#K-qG1"+c H^G(&,]KqEcfg\ر2b ;⎞j>0$j 0 k WwAp%QZR sYhwcE9w6q ,ןO]E#mYc4>.FňWݤqC\*y JvqZ:WC^ݠΒg?BZ_̈TG(1Dp駄SU»b|g{n/2.3}gH!~Ǻ d0;oqdҌ^!w)ڿN5L5"]%mtދ~Ciң)V{S};*i숆jW\ ꊌA:BB{`qXHSMF}|zC[3-㮰ٷ=X8,HMoVcaWxIh(.GssZ^l:,'ٚH]_q؁'^ n&64{­C$6:4e\AX Z͡%ѬVլ l.[;(;ysnQg;gU\n3N^QO+ P/.7?Eeö{n㒟D2V*2 wӹɧ{;]>:_}Oˆ>m*>OHN{Dp;kO!+.W\x-M+K~Ⰵ]H5LMoű*]=jWYf}D˒ 'w75~ve8&u v Vz]g~a֠ZꬓS Hf!H磈FfY*zE/He=Rf;b`AnJ>RW͒Tkn\=kiQPxX0*iZs\w6 %ϓ0c,E)'eKSdH+7;zS6aIyj&ߟ*[+D}iz3Hʩf7!#^pawx%]cfJa>U+@Snܤ e.$N~KvZaZvd_P4\wW,z~EaWlo 'ypidJ*Qbrw+?ƺw%|v|l+#|Zsxkz+yKq3~YmX&85r,ۤ L6gOM'f\^7Y"&%v9q9/\&^=S%_ ˨a2ܵm 7I>D e^_|I(tijmr,}9Bk?R\Ms5,'oߡq\5UrHXVQGeK@9'9\RXľAk&~=_zM5x_ ko;rsrxMSֆlHܞ;*9p1u;bcBbKY:/ƴoss &%<)?#fc>v !3hk~m$٘crj/Z I}})I"emoo/=~B[+$mix z7cx%XeryԼ}@穱VzKÇcU]]Y..Zgs<&oʉWxnkE$EBwxO[Nh17R+qIcſvA.Ͱ5#?or2k[e:>?neEW#Rc˫Zd3Xeu^fmZ@԰KbSaxS @z):}}ӧ7j歚Q5ϯE8az#.#\Z뽀YKcam3E ";B-KF=(;Q;hEV4H+YeđxbS/=B$pkQ0%t ӤNM)>c7jUDb)D" 3 A;a0NeD_Vhi:䟰ȭZNJwcu s+Ǡ/Bqv.x7>?Q@99¶Ն oBh ~yJ'3\(X5{e rܛ@( }pp4OkImWw,]"a7FM9RKqhjzbG]&''՞>-Xx̊џu;.]IׯOLbMibq>'FUw myն3OoZ.Yf_ _iiyG0+ߏ,mWƛlTIݜFƅ?DB!lj=o\ʣ}/h`Wqwk'Zʇ>ߵ9g%W8:LTw&-? '0Fv}ch\*=U7ؤ%}զbMϮdRhh 2>*w'i/Xl[/ J}JV[t@>l١CYiF+|)Y>78WILb:\4Ȧ54㶏_)`?QuNV{0[@4J7ł cUTʠ?N,J居kYvvv $lxc ,{Ke"̘%֩*"ެdz.BaYԹGL###}.TR Zb>-oƕyqς),h(.c ĽIFK y)ii缽K S7|Ǹ0$#ئJ cɓCNӒ,8k1]s2ʐi(pq, ZS!.bۛn E{f;XgJi p} b{gЪf~Ѭ=*fr֊92g/Z^N0V^tB*|l/$9 ͮ8Qqxv-q]6y )U%v7m> )ʴT~.]AFx]ݛuց7g_nr8RlZj Ǹ8W^԰?R'$ɐ&, CxLj]6bNF62w]?I Q|p v%7l{i l 8wCHiy 7+ 9@TOQt%Ȫ*^~א.1cMX+dZmuXmev4-1ڎC\[d ZƮH\lPp0M4SI]mvvHbWy'K֖h4}WI;,Қevb\hh\bW,7. wtmO@#ֶZ^:|ãWI#\8np9走,&/H\- AX €fg~ϯy ]7hwp2OD4Fw3媓/x@wrD[V}J~ʳ_xfFj4UZvdTu-~ : W[@2aY<nEC],jg xO޿~d E ֭Lϧ`R"< N0@sl+6 _ϻی*9ܑd"2I{eñDMˬ>y LG`jPURdm:SܐENܙr98Dybh"}2n CA DTV{yv{UClx @KNr;Cػ6?=@0i5'Xu }{xw{|ڱGo)*)GUf!hd F ƑRN?tf}a ixU (Tev99o.v{ȇ{qnf|#7Aw0"$[*FiJG^:v_C֋"l ȮZFZ?=pbDq+pgWj iIFp^^5~LZ?xO󵸭 ݛה eeI>>SdUţ?z,s,$Q(׬D)(਩1"Ǩj PPiz9,!]n>skCdylN4 @FL+oC{X@11~EmőiWz#%#~g $s% 4>d8Lϭ ) ^$%OJnGrk&-5@?V?,x$oIn7oķӗ1 4mWrhi }]yW76+ Rhr*#e)2O;[@'b]<$yIQLze{y}UνVOF_u~a@P $/ }マŹ<^%v qDء>ƨ$`PU~BHIm3kJa2m!Υ IP8iu.ս MJHkkgVs(u yy/n^S페OIX!>sEm1ݞf$xtqPGP=C$]]:mOsn>L├#ZS5#,&T -ɚ3xs.,zs&ءDbwνl!MeOLLvR@q'痩wR;ur;ue Ylǰ;<1=VmߠQ>Al~4^@R awR_Z3_7B[*j!ueT7w8sÜ 9NT 7c:˱W*BL >K}`<Ѓk[!6l88U-.#\Fw& rLu~ɵ:|M>:[Wvy+t 8CJ+l(90_ T*X@T㽼lmcus8@ףyb"jb%ZP$UN WvDBA5d`\B<'u~VW//F"Zsp`E `LD|1kx0Der1pLL0CPKWp8>zX|A% ߒѾ1#MF/LHhX_{60ظqj&Jc 퍝tۃŽ|H-bwo<>܀Gc.Ltь=xԇ|owBts:/56xw `qM^1p -BgkszHh. ^JbcIDI 5S xFxN_:$+]6@LR/S-mUvdA"֧L jz ,'N8(@:`񝒺i\ W•o5w0]dyؑ Mi:|gFWD BGޮsѡs'2H/o_LZ?254RKcKwwx}#IӐ"/z:>X>&Nv C0("y: NFNwd-7\. ‡Uxo@b t:h{l G jJtqGV{fH2 :b#Ij%H$AG3rCec%+oeN\k|^_&cC8d<3۸[[ljj'YvSŅjSR\hbPqg/Ĥˑv1*LNƦH1r2MGm\ӣꅑ||^$mW-nj9bfu7~afzul/ Xw ~%O}b+pr^ttn 7;4x\9LNCh(3E$ +^Yr7Iy`_jL8=/;Ob9r7l ̝0Nr ZުuW($+|^/^k1A`VRZ\qu kC$'.L4U,>*222 x8 IaW ;EXv0 w%WMlZđH5L j& 5X 񵬬>@O}>iDt``q; x%I` ptdPxl .VKedt.ɸzaFtps>Jѯ8ygE>YCzHIb珕5TB%hDzaW&gUti{2 ENQFH<ٻĨ: @gj-Pɖ6l>L֑1ᇶ}!0ߴ6t9&?rΦRo%E0ܺkL8^4,1;hr!o\ uD>,e8*bκlJِA0X֊)3bju-ӓdv>{ua x/[VG/o*z*Kb4|"~[uKwp F_ )^BK|iQQ؆ZV5|e5 4K.}t@>q.<P}Wz}YOujp֠I4_Q4!~r\nw#;~$n(XVWpd3=/(lH"Q"44G|ުԽhH )\HnqEӦ>w IJNL :wBJKMvtt9TUޑyZ3o?B\n8yc>BؘiϒѢ3%ɲ cҒ^(x]ght{ӔlGT$uDho۬f8 hibDeeQ>CFBgejt]sYLz("lùmT?"(12.eT^NG}:O:۹Sk?cZR2% )D-~>B%L$ u޸2KKg,Ct΅afuw23UQ8Ld`;sKK5uuܵ("="6~g5I%/X/ȤPܙ_6feff2oxr =ܱKz Tm1L:~}rax2x"A>2{fzM |gw֖&Ś#:D#l4fĈcKQQQJ981՘./̀tHee7|n\@p-PCTV;yԙ#͇4;lW#g_kRVɦ XNtԯ*g"):IW'_ i._ϓjJ)gi|yGI>f9NʔSwlꊧ G/=4F 3/??} MDREFw.K > G#^`XX[nؔ庚\f6|"F W:> r ލ ߋ+!$_d<3d11vW=`XV/ؼ&l\1g3D\[_6rgR@>`3ճ.e>rEz&&pֱ~ k`MjiTז o$]MpUx4vx A_KL߬ȭPOZkȱkMM$%]7 NF6%VdVtbC<+'eHn2BggIYKN2i&}FtYW]dž> {zd2DbZ Y&5LJ6f?-N`S@dq 5S}lhyH,-%I;'?Ope(OL޿^ȋKKPO 'G`˰aahiжNa؆F} W3Ob| "8%g?53Qܟ_C fWIhZP } %jO@zքU`35/4^E~bY4HŞ)Ng%/kpO6 ׺<Wo2>kwTew=oc`88xm #Mj(PܼH'G2@ xOEPQ2#\.+i$I1;{. q? KIazԣ0&)?!8R[3x͋_g218'31V1>4:\$&>᩽\6Y!NcwC>'؁^PZM>I~>X9Z /2S F)2@cڔ>'l\ WF5F4I0]au}\f.HzG: Ԍ' %&QF"c"%ou٘OC_kb>_-P8&-=M.7 fff{ڽ_a|c]@> 7Q/*ܵ|pZwZ8Qlp|fbݖ,0ƅ<@&~v.'5t(Sut\!&hfoVqeT$ ZixX0q6?=!AZRVSq(ò~=7q I|E1$DȗP?6Y?[/yBigJʳ$p^9L|^+@jm5BV|:yGe tKqAv6'Y_#]s`L: c$k;{Ճ:ႅ!&Ta< ׈*"4'v|**b2unؙ\g Q$c{nE0B!F( t0 >":j7Xl#)+C8!3}v^ _â$_^-}(~v56irXn L=9X͒ ?2m i׊1)wmaR1gk}5jw9=pb9Vw2\y"3W`lez~{xb\WT#8'u9Vgx$~GiUxA͉g={f LA^4ʼnUOۭ4p/^  !`X*pu#/JiGY(TnbG f =шd F`!  o67ӀmoOx0<= d{-r"W0zZ=hsXbC#^o?>>ّS.vā"4E niӾNdh]`G‚{mJT%O7l<(܌0oʎvCre=źfWV^,Y(,m9}R8/HԱI#ϒ߈9&)mt*Ey&cn0ZWjD v\}0>fEGNF_%~ L<P޿8zOn]]ݯ:Nxklɬv441&/G}'$=VTW oKíQ O,0OEB^S`co/LDž6 /Ds=TRoh\(?*۱E@8y4<2n-33eQBBCϦ s_d.seb0'x0)dt1/yzF K~';2l =)D b|Sވ e畐O1"5% `ƑONa֍gb_Oܟs^GK{#UUcwoEd /ʪ3qZJl˴q鉰8PDNlʬB'Ƴ KbvR|*C$8 *;B6m2rs#/9\$E)6⸴?ϯzS?a*ʣwa2SBۗ5B4]1Z xcZ@Qj\(I9F9b.?҅(&~iim},m$%oeT)0qǐSHn4 kއUq/^q](]O0|gB忋n5jVv1exOd [XdL;/_<^-&ۅ&znp TXBNNN~.Ve:c,S+%\誌xe&g_~t\؂)٥2܋ o2ݮ]?]2Բ sjPW=JIlQEb|K3\oePQ\ynI;<] ^ٴ,);Job:u6A[!ZP2 d Sk0% ^wB1 G ~ކ!Gwq// @|I@O G?F+^=_ m̪QVF`l #cyBa3c.+{ n5 HUp"HH_XPw]鞙MVEt1o;X!t%Z ̵@M[|sq@!]Rm>,#%=䷁X B\D' E@Ih֒NހƲFOpt==? - 4{P5PKC1- r#nuvola/128x128/mimetypes/binary.pngUT `APQux Ey 8ToŘa1cGe߳S"4J,E$[YD%a, -$7~}s]g=Ϲs{\QR9ظδw[PN$'%%z?r|$%$@=L9}$bXI3!zw{۲k\;&B%:ƽ]r*N=1.Z8Q8J.72NS$:\.A+ouםno j*O:E#S( xbz8c-'G07bhՒ/CGʻwf1`@OG`i5"Pm= 7#Hca ̚ν{(M~Ni*-m|9pYN͉9o a%0?! {8+ uf!7U~]76ЁuUUuiUdiDeBe b,)NjrꦲךY7N a"I4v\UI>rYw./Z}_kccFu;caVۻe}xglA'slt@87_@^72N*&؄k pB͎eʟ[X1ڇN:vr pUhp{rYыHgBa^u=q5.dmݑ2mi\kt̨1+:6#4T7FAnllbggkrαد J)))$"uMp~ae)42ZFYJdORWL (L[V9X;.^`GnQ9*@X* \ֱr?"9>`uv90(XNJO$1og>,m&F|&bf7_ŗM$ڪ7l7':S_WQMG1YH< Vow/XˣG_e{ Qc*~@ dM4 ="|0Vk+IJoǦ:hroZRd1ަ_6n-mst Ɗدr7q8灝dzoS/;+ھ\K>GD{d *ZPm*0GNZk>⺫ٕѭPϠwI4glmQ_p/7SxrqW" VSQMIxn]HIW)63GW 5vmJAښoc9 .ӏ/BpQ,ku(Vt'rɽKeRo/?inKNƻNqf3_=Cn^@^Ms>FISߊ ˮѠG;Mfu_\G¹U3A;ۥcHR$ N/Ν+:шFvQhsZލ*焔W],/e-+UƇ$}Cܐ 1c;kesD VׅgijiMgKܽl_iUX6OZit p e[D V#|񥥥 ?XP.[EjqQ[ꜟ+r>3S4E Lx3a6^ R= c.xr@aOO tkp6Zx(maRl</?6E:?_:rۓ=*L TD}*-E8\л-[h̶AP</$x.[^ 'RbQ1€,h8''Cu`^%ب;ѯiS)VJqbpvMrzq^O& $h"PHRi"'dKN EUu5[)ҹ0^-I{ѶFDy5> `Ɵ-1OMX@v]oرy$UEe0P_م#JOj \^h1la qeͯ/r4mDn?uZ!Գ׭bbvg U7zhkt΄~;cS;C?֦7Gܐ_h Wd tcfɋ>/{o:8z[dEvdiMh|2_D*Khh֩Sѻ V(.?Nnh]9c̨ҍ?`Z^JkЋci)_ )'&sOeOȸ ZsS0\0l?LR5cR-arB^ȜSKa]xjHv9:{إg/xbL!&ID#plZ3R9!Ɍk0,tyyY[YqdT[GG1fz:Q8tOکXN,L6Rz,pdg`Po Ny"_#zB8N`4EutU7'"ߨ[-Id-ju"Lc "=rd/9N7lpPT(W@2y6k}3Fm /W l%>e׮WWz]xE=w'v|i;' d:R@y7߀mHDDh1c<ODJ3\T}8ɳ=q|>{0ܸc/9rw3kkxC2566XÓۧvi_g!f0@ϴXLܽ6*k-xh]4B3 Eќ'/ZS(7J/5t"x$qt"Vp q]8K eS7it[msrhs9?se\ ;bf (⪲_@\/i.ַAݫ pفe06&#f7\ԗ[ {5&%!2ݨlXk;k襑K<7VTݘݦrvvzoWOQb,V}fr1QNp6oqb+0zUF!yȫg 4AB>1_~ۊ{-*0=YW i/f[+Uo(*֯MofqEq'e kZ{\cxT;jy*`aŤ S({1 +V莢Hp=)-?œ0N]1n7k4FT9o@%&T,uFՔz.TKHULl(pص EO c,uMA !$!%nAФf]d l{H%OcTUG<).mТb},Qj[L:`V˕)^sJb?u\$c$QEhҽu- $k^ޏ.vyv]q6v*;ȷ2z#  #*dz(yh( a$_tA ƸF N\+͈تĈ·Kr-iUy-MORp@Evܲ nB m}z9| jP O/$IAAL;8Bš^鴕&5ULp(nӚc>kjׇ=x֧%j}l^Y_%g{׿7ݎ"|=m៼wf==Bht#z$jyZ7Fu9yuS[M~^\2WNojd i6%_:1Fg|iۓk_'zRu V@"Y=$M/hI7R>wMc`1`-PC2Mqs=|߲?TS}&֌U%P&?\tC+Lza%̡4 GKdͯ#jrx]4um]I78Kk ߤxn;rvwvS47*ՅwXN6S%Fn^@ PeIVuU֛ƓȌMKE[-(M.yT_ar\8$WEI@F?Q(e@ 11KpWңح,ajʶ&3YjɖʖhKɀnʍ2CVpYU-P`c;ρ?+q>%ƕ=@2K%ƀX~k_gҤEW5=߉{UT1VN x Oe"1ȷpUxŌ)ܒgj>;BhӭQ[g;VdPKC1K&-.&nuvola/128x128/mimetypes/cdbo_list.pngUT `APQux Ez _;$& ~ ~;m_ P^뵀cbvy 9 "q.'C;2 \HlNt :(A*PW00zLpQ)@]v92m)h9owjhk!Ee}as)Wި! %Rjyj0<<=uv=vt2&E RAFIΎweq`@@Z__F5h* 8$F$ ۞&jn*C۽J`wDgH]p3>&hRRm^jwFbv)uaJΦA) 'M!R*y+xsu s]bif,$$*j:19ieBP1qjjRIXcQ |L#U< +MVT$zg}_Vӂ3dR[m}95~eIt@)А4q'dܜ toN!ê4w7 ɘM<@ff:)B. lPXv(f5斃>'TuvuАf(%4Tq[P`))oTM>:!XKrRKNNj7}(^gӴi~dh7Oe9 Bw,b`M)o#|e3 &rlT~_ "CxR=jұ_Rp"p|탓zJDb4@a8Bz]ƾaD'ITZT^<&o/vΝD' Ig(a `-*+XfUu<5>:,}QwgAm;EBTķ?_}{N(Brk a;hШM%Ƴ{gAНk׳Y1;SXPY '^q%o$"R, xd~xL }IE2@bhHr-PߜEn];Jj[Sj"_(i5U.ٯh;bMD=!bTZDYx˧o\i`lqlUH"-11Q?ujy?WVJ+,[J‰B5$L%b40Ր#fWuKe>1ejEN4x>u!>X煳*A(\-32;wI:(SCE*9]unӲO m.b. `VrRo^0;Y+DlDFQs{(qR.{WN4l WHbC6V|W~zj͈^.u2vj-*oބ% *}@rw@zCߒ;Μ95 gi/U P>4Z[ӹOu-!{mp;45aNov xMSzYm Ҥ/_z,SRv ^a &[Y4ƮG:]T򷌝qͶs~ n1*2/l T:3Q4Pzatv-VC|!bkôzVT[ Mkˮ+D7 aF<2n:h]X"ATpi -_Z_.EԔ'lKL?x 57 cmy=L" [vV>*_ 8M8ƱZQ?kCISkW|[ 96)L [fGqsA5D9;ym WhV{I zrB\e"Zy^owRe}ZjoA3nعe#J-Se(aSZdOX4K̺ΐ&˭1(H΍ʖEd!{ <_@5[h&N;{o-x[ӺY$8UΜ Ԟ`*!meU^!'=$L!/}s}u_~ JALK^̺,-T趤b Ӡ$s8|߿xwĎ;Eaԋd&q7V~#Q䐸;;mSxoVBThwJAxz2V)x'; Uk+g7S6(y݂>9덚;wx:i]V% SJv /uPIw=-Ѧ=nAKM(@HcDW25 @`G~ڙܸlJf$@?BPT)`cE,nx<#f[/#,eD 96<;`GBў ЪѴ!a MǾ=C';C+sIo~ 2P6Dޟܱ?:sdW¬Ťݻa_FzKmӲk ^(>wQ^gDDR$>̒ e*(#=UMrD#9Io ] ˘ݎ}Zܙq|x٘ʙG*[YFqhPf5%)#}jO$?7j z3!/vYikv؉Ly&l8A>Z}:z+|$.lY"A.L%(2aQ?g]'EIp n{E2^va`ʝ/bSHuz$_OC8nXN^D 0x>9;Yo<=#g@rWU%(.Cdz9F; !-=E| ԆU j5[4Yo޾\<5x/ifF w ~M˰[BkJ>f.w%M`ED|-2[Af%eD+C~sŪγF.Uok=yc<˗_̻ Kɀ,c"n1BC_=]܀ݹѓo[#â6R?XTd RhےnvIO?2//%fH8k*S\j,R=I%cckC6x/\!a1dȠC )+|Qә.<ły? \׶?r՜l| t|Q߽;U\vzU>)'`o_ Z-bOTh @<}SlPAM5i4xY^$5+ }`/_+acM+~oc""&nP3x:aG.p#>p#3] pR_!)!@\]7?OXU%j? N_=TjĔ!>]'P (=@*i&6F9;TC8cOI3,QqU/B_i2@v3^3#®} &rtuHqfndT2粸K]pz0an ڣ gQ(8ދ c(e*K<9a8\oXi?]+_*IR=O x" b&$d%X~ O=>z\`zNa xNOFP_RP#FwofƆnLbbs  c]SӞ:EMKcꦧzƪt~ sU_z熫^ɿ 'u2/tQ$;""K(DbԢ6XnoY ]sP0Û_5&eiɕyB{@s׭/^Se&N`*_H\MᔴlOC^7o [JU{] *S\*&ĬR*wF]/`!Λա  I4G5c3P=sL`G̎] /ww`^w1'1Q'V~\,<<5ڶiܞ|r89ܗΪ\L4Qnr/_g#2CdvwԝM[k%ٔgg qP)?T64˂*kMKVs%mǩFI{n8ʊhmH%:`0!l;#={HVL~I>%gր=@_ @*KAݺ.b*M2ݖ Y")_h(͑^8rΒdA*YbეβbJ&\3?,nHա^ԌDEpSe%)mOPdsrz,qCisV>{=YR>x/jp0J *Qu`#V_Xoq۶`aZ&Aalfܿ .-jwl/[i(=58a `h~|rd8 uHKBlAkeTյ0g,kS EѺ( B 3WI>7@:p`A1:kY{pEWxiÀh?*]N [c@@B?.$xXbS!q~*au_ƓBL\v O1rP>J곾>ՕʼnD)a&d q/*YΰFH>Sm lI3cx=N 4n-+*X3xF~oHz.U=w6}A*_CD֢>sR3&ܚc#-s$SigF|+&R\^Z&Tȓ/@XOܷ1ҳ*G]Wa#c| :-z%<@wf.KC`5$)39Y|Vy@љ7/~)~Aj]05[șF12d}MX)BH?![FnT$~lj5%%rnEg%A{_%eZ|"}j|v_H?VIcuzdR:#T{@n|z߼=rXbwȏHO=AG=`40R3Miu8OR7T/3Fo+4= IN&<1`Vm rdFz1ʱ,9$r?rF `x[ QA$Mwb`ܸq"iT`'䐴)[bd.q' uBq ZeBSBn'9 [=)w¯:z]cWng+KY KWpisĘñ+hiG0d21Q vpZf m=>?TU/xK DZN'q<. /fμ"=M`ð8WUUȕ+Y.I,9]*!꜒ +ۧ}'QЬ/^'{hBV2_F Hۦ](3!Sjgt6Z~kŚ.UL+}m@bOPkGBዩh, _eOWYbvh]}7{l5rk)缊.Θpī_(cu%(s$o0K+3Ϭ7*DCw'1zavvDkt`/Mp7@&Κ|KLQɂ(^[[=T~}7{{兣A#'T2Pc %'yNZ(܀e "@!>`!>"g=#Խ7ݯfSC6 ()x$:&܌=Ω9[ :Zĕ=^tD{JmFUQwEhӤY8:2<@V<8} k`-`͞ vr[Ȏ!ģ0y5xhL+K6tffqi_j~6xwỢtEƒUnE; $osکe3-mgf`R7a:γ x_jSNy4bܞL|竇v=B)0ávQ9d9Z)jɗaZEzKZ:7oo"LjQVJvff oA<Խd<;fj7?yocZ\ Yn KSԂ=㆕Hs!*c'y~/х91Nyv3Aڊ߭KbU'Ě偫 (0.VoIUR|l,x=Qh=_{FؚΚ.f%2vT_f}y ?ןff6ʅhe.{iCjG~OlttǞԐ!sy1JVv"Zb{nIӳ l$mH?bM:'q龘cB!$lHX}7ޞrSeّ2=`fSQ!nHaK`6] zfR䣵7|c.` r̙/%#ߥ9qr׾Kfr`c:ˮ8uJ6yRao6Q u}- \^+z΁.*6@ߴWY\m3lഭ]"^b?lDL=3X#H(uV 'r)Rp%MfWQRc~zvB˓b%䀒;O+S]<z >zD_Dߤ)0:o]L{k'4pb"CKҚA#{^^G P1^ O HWHĎ80eUZ[Ok#)׬9.?Cz6@Ѣ/4C`﯑C,Q8vX݋ PS,4\&PcedmQT`A@(n40_N8?ď[WkE68v5.k$/ f_= >6$ hbkj982$^NˡBx2a}Fۓ^|a,Pz~ #,>GCLx8&:eT/.k1L8'}[;{[p4N7=w'8q+6dЈeK˩Fm'о[Mq%Q%/3}]@1VK'E3:fa2k2O骏]}x 0I\Jw~>ܟ}D^ƃ$wiKݭR_,BZE+:+.BW?Cm~C* /ndݛ3Y{@8(%s~<3)яW+tL?X$Eg6s۾և匱&2NV (W DMTgԾrz>Z(!+yPiNRvva#6u$rO)V4jmUNwIiEu(1g" =QbCo2ki GeMc~H݇BW {h7=rwXP.pTJqN/7,qhhЏ{dMGͦ^4{kk,to'\>Vįr`/NODKw]jӤ2C @v6R'CTaY ڍop61)1^-Ӳ'@NTӪL-|P*=]r$☱8i_X`f|E_Q2ɟܖ3 $Q׮@D7C-c ;/dۺ'M,֘^G"yVrm b(ybaq^BUd&DTa4-ݛgTphjmvCXAql*;xiZs42nZ,3]z ׫'0}eJUmm@W-BPxb)S;:+wZ-GlHjъqLģ8.;ۗ ̍"P!!nb=O'bH-r4* cm+VdIFXST3Õo|E+~~7jiuES`$rYtRBu&G+v22gG6 ƺst{vk&i]%Q^0ڒN/ K \*O \ m)?ȇ$Cȇddy킌 ǰyLj<+qhY۬e6jK4x}kr8iMǸ@d(;#>/0ʢ]b+ p<p`+{Yby*sdC # [7KīmO fkxCП匦pɖ+醺ΰX$۶Q6|mHn%s՚E\>y_$>B%p+yy!Vz@CLyc ~yϯ3ҖhԮ.oUoIFFA/w]^8_ft\k&m[4xvcL5s6XF|L;QR;\NrhD4RMT+!7 IHʂū!X~>{OՄKKB;pyyc*cjƈ&5lm >E8v(?z4 ;Ѯʅ%jGIՠ0mee!^#VV$!F[}rCɉ$suʫl(cqq~#\DJsc;W/'!Pf[f\Z$i*eY ;f*$;&+v #6a^=L[fEͫggϞS& E*M=-hu1P>9 jYkEf}Boac35)V~9*!YO uFcB{7|ݽ#Bu5_`r1( Bw"$g /N{] B+&:r O]VpZ[;m PoZ;djP6SjCkijʭu0BUb`Ecyh*xK^ ᢥ,Ln+B"/4ʉ4څ"wu&~`fgVt_>2 y'tmm_ =I/la レ".H04Рﲖ߷ȥΨ*jlDTmyȢbX61S:.@0 |5Պr12ׯCԓПp8yE( rskGIPKC1 WI12$nuvola/128x128/mimetypes/cdimage.pngUT `APQux ={{J.Р7ibQu9<<B ϰpI0ܜ#ŠvRGʴ s ԔqD²7D*iHpdP(xg:Lꔮ)3Yc!:|#p>-{4;ogv/_: (ؠLSn(=RK4*z++< 8L\cݒtU9RVRR6#ִ;dV__Yr68H4R^n@φ%zz3ΟW=eY =`<) jO/TO/L^_PX'ݧ̑W>.߼yӻ0eDܸBÜjEaܚ8RoY.gt|c&11m(w'mb #xݺ>GaÔC-ZwVp)koS VJ֬,ot48N> E;Y'Q-ux8G9&uu7g, ʭzot!0u iw^ɶ.ďe,X>xXK0Mofmb867ѯ%oď}ç,]ҫOvRE9Ɂ)q7}xB߶J;Nov<3"Mfϊv4|X7 ׁ.Ngםg'Ih$eDžW6g1{dݩME딻S\[̠7$s{Mf֯k9t`0|Ih)lWk5F@=!td堝b3$ɉm0@>؃7in8df`> l^졈[lz*?PIiqBOΕL}};\@L3*^3É%pW1)/vÚJI̟YK`ʋYyFSpENwmo> ځqOl1-=4$d5 ֖d˖]]G8;m"bvmS@RtB.u"`fڇ̦ (UT|}#y7j!K8ڶV!r؇T*\xD}>h .-åuGoc&r!_K?ۧlFW, 6O?[w#>@?:.ec3%bV 9Hm昭\:c,b3+U'mX\ELƾZ׿ . Lnt!mx`M$:AH{[QJ╄}ef؈e^>6wC 5 qD/[ҫf};0˟u²u`8s+_ -c*XňB4eczWuBjog^̋v1R6*˻d>s)ZGm RŠ׼TYWUZC&ϺIU̡ 7*LH+-TJ%_!5a)˽ۯu״KiILj+ؼJ`lw1Zs)m['ް.=C/=5!Bqޥ!ŝ wK_c| /k`HX0[:yK;+̬]aa_NՍIc2XwK'[\% q Ywg/gtD XbPk [}B%A+̄9boaP5 *gn\b} G4GgpL3sך0P1Rc+,i&Qg ^??|S jz:4p)G` gea^ig|Fckz5C-/?nRŽ}CJ~Hm/?+U~PEϬ(З*^ͧ=pwA`T.<(])o>JpyUKb RRL_/3[@+aRP[pSp!)o/n D?-B4HMJ8Uԝ> ++AMڤ N`S\귣LJ3$Wi?n=>阜wiв0 ~:t@i\`j[JW3gr}ӱxX<۹ WF#أ?4#k& [kag`l/L7j]X04k5轢 ޏA9.\QV}uM7ed,narJ\*T*˽45 V K9{V7 iysQܠL Ӫ)¼T>= /kE=:O47CCm5+f`̠{B O9$ OskU`mi{_]XL"9aA!m'xD@xM/WzҪ6F1ƌmb wGF;!ӵh‹vϣ*mzx~KyW`BQK F;DD-X}J3#ETد>u-UlI+ w#ˣAǎ{e0}D /A LKɏ佀M-iniYr?DCGB 0U,TXv!=dWy2r*] ٥BԋWu@8,~ 5GBczB*\>Ÿ1A"mB_{ɰb~C+m RvHJcca<[pުģG6qŖK<4zT_׊#@K͠9(}vcpYh!i,<,쪦bOu7p f #*3nu-,,G-y4|x>\J 9@<@T']2jjp_Hi góNtq; Rϸȣ\6nJtHŦџWzJXb㬽< &N0_*l'.{`ĩ\Eю9^|XznYVjR̲ A$ڛVoJ{*V:ہ|͖ T+e.$5Cq3>H\oS,?dYG`܊ J_T^:+NH\X5n%άq{r(-"YB䱢߄O63^Z>|_(,r'RDլB#0J=Eڤծ;j=J~K9w*wӮ.NNS"c>a'0C,A(ꦌO9F6XZ{%4Iygt1:.+/㩽|-m>}-hg8eJ2#H, kC]t8otl!ݔ]3$ZWJWF#d~ $_*%)>@Ic?ڒyϴM祓Qg\^BF Q2VIn'Q-W~r1PE7 IsfGLo6CC)(el2@<PP_7sa2Ĕt0(-m9wQXٺZ?t5Ngf-+bw)|t4S8*qd&l><'FEն%f0{Y0i•*CmcA&;̼̒Fgzɷ% <_z "MM}\]+%iB=sWTٹ3{ %y[]5N6`OE*lwW)48/SC\ Vz}'xQn$0JBi8ro"V[[r0ώMaMykxr_>'1h.[?'mר=k2.rFP+uc= ~y{3qc4FSҘh_8V)AV/u15=Egp9Ȼik9Vv|AwC#o ubYM QAL+>dnk ޖu8܉l}/5HSJ2meumG IJf == 9oؑ2T *CPRu VJ՜޶w] kši/:D)"hp*DVYZNLk< 19pؽ!j pXWg>F.+ûYvq ߣۥ5ym2$zB)DKy2(TǛU۪Ԟ30ٛ[ԼGp̩R?hx/5Ej6vS&jG]1%8fkXͫ`PJ2zZ+v]]T TAvXX8労Jd1Z3J#&etښv4֮{:?ֻ.^ud1ŶaetPOR7c0׈݆Je.„+Asʊ>TWzĿIcN5^3 AT>nyB%Hw5x6>Z&! $EkǤ0QH޴L<#V;jr0Z>iTt<$dAa͖Nx3~x5jc~ֵ éb?CϡLDiΰ7@H*{iBTw~N g)<樌gHQ/Uڰc 41sAg%mHΏM/ %nhj|!mDמ_ H3ºD#ty+rxlk[QL~Sujz`G~F9OxK4֍/*/. HHOvrN6V籩C9vx z}. M WA0?r#򀕣4L+s']AJׂ_.m({pӰ|TOۼ??q#ӺfەpVK%+L?w:"ԍIǟ(cbOZX*@2tW3òM믘΍a2M8jPn29un4E@s- tXK3!6QZt_U<@B'sCr+^gE&}dJ#=LZFft?ԦFgĸ{kj4IiyR +\%#M VH[IjPkQ[f"b N?q랶M^WȎ$S8O3Q`#HT~&颷-9U TA:+-1^&#\R䆴FCQZN[[_K5by(+ҖxI޻I U6b556 ޝ ^vQy[wŰ/)0$#yI|(O1 !/W ʩK{`*c1H$to 7"ZEMzx,BaC."β,? }Vhbf9$N`lailNc]Pz*X)GDp4XnE\Qoa!&eSx)b),4E_ {z!!$e>KN{2_b=T-v)K6xqveTʻ]=a;m|R! :LѪƓ|54瘠}+=F P>FKWv?@5BLNs0h-M, JcS!-_˖k=.%=c&"FKZQĹI.ĉhXeXigQ2;r\]| P.)؃rdM뭝]s'M]3}W#qֆS| hު JIu/N7eceh8‘w={gL|4;Xԇ4=[JK3$oYSS4qDfKڂJme?a.Vz/+[wC(\Q@` fu*kX9MG][uո\HϚt"\VXqzvLÑijݙ%7鯨?h_!}eoDa%-]33mU}@A}OtϮ]NRWUbIsJL v2:#7cyCET^tbT+!k;,h͒LV>E{.ŝ!g~+xߌi#1 +CQjHMɣ⯽|JQ렫8mxT$|n+g7<} ؔqX@S.vhۃ2Z]ҫ wkMǥ'z% 4 g) ,g=FNuĨz+G1_g~5^ 6X1 { q83~]ASjӄ8Eo>~ g"߇>=n*2ygbnBHRVش чXr_&}Cmjh6[k s`:Gw>X ^-w[]5lTT@쐇[!54~jADj+eN}'8 LNԭ,N9"C ςmjeWv d[BymOCgh8H\K]#yJ8s8>%RŨ-puaiq jtd;.lSxDrZmlr olPI_t3(赱W7ݔ*}YJOVVh!տh6HO ]과RRĴ%.H7GEggDS 0S3IU&*1,~#Nh.[B} $Y] }C~B]ǜV+ǘ:K}i"BYA"21SQV*}D"F _* VeS+;džQ-ˤ.nt[wG."EɻiFEheZVAVT_>+vdc~n06h*RCWCBܐS;݁Qʮkh nѷ@QMeoG8Gɚ 7gJjZHW3Me37b QoMW{ QtvClz DBڞX>]aΪGiZVV8 fܙ_?L1-@bhGd͆1{qRA95DYO=F\_qé 3(4gľ4ğٲ}V&hxx)i!0dp y*C%N[?\u֎1??h56d$DPYΛy\P8f4GpoN1*%<_҃)M?U=Rw_%2ĸ!h /ӳR^JEwU9Sv`y]q"<~ryMU0Q:aW="^KHC%hHS:r0}$Z}|Gtwl<5774x<Qق-@kk*Nɾ\#kB׉FZ 7MĞX̠oћo9GiJuWK5ʮ4v*1:n3cG^~~L =M#U[eeܴE(b膝 om@N94=b%QBڿ)CNjKV#{j |= eH:H'Q }4 tqIs }kVS=17oAM^ fG2`zWxSÙkϗs=XCnÑ)XnyR+ ¸RK1S/Q:8s}6dji5$%aZl0+`#PZ:/s髷xCj`^ hA/jg J{jG~iZn3jqYHk;4%jԲs pgͶnCWUEqBjt/:rЌ'GiնdCk jZ5j둖fGUlx WǸq'$dt;B{6/NH{ DkМF7n}GAM U0*s7 쨊s"?GϨFVxh){vѫw.twsj ?l6=/5nΞ#rl-p/߈+:*zsz[x~/@~ScpXa.?"Qkg!uaƌD/}a;|7g6 e erp{N/'ٻcG /V] ^A~#23תDZ{7ۍXnyGr}Q]t\抰~upF .˩GZu$3?֞\uN|t޵+} 3R啒(E\ETY!"&1 Wfyivˌuժy|/8MXN\Y47D^z/dU !d=ˬuEL.Owi@_R^r4Rm?g#Re/-O(Q*\Mvάu$l=,!*Bx/~Ht' 8ŸifG@u<'yAEtee6Gw| OrSFtTnFQ/aj~9лN^MAIn1mRٰ!(wƖ%Jc7ͪ y1"}t;ẗ́*maE!}4ðO67f@4هE͇yǿy󀾾q+rH:`e,BWj,M W9kp es$Y} ړ s[`(j ?)Ȱ QXzdݸwrM^p\/O ^*2DX#[,: 2ecAvtDLpyΨxH(F>>v|Z#JӰ!_`xKn߽מ$UfȳGt曦wq@sK>ٷWUm`~)!m9'ӿYC^؊Lm r.J9OVX 1_NSu˗ LM>}?㙋iv+y!%3J"PQ+ep oJ%vcUQi>:w8ʅsSdaDP$Shs23cG?=.lȱR'k8vx,K >x qr0_IIUc\wK\Jv+H`!ȸ;'f\L$ !=1 %Q1BQMw4PŘ뜡}#He7NQL0m٧w0Z҃'.e)l]̞oXECixs |ׯ34Rv4O@dԲNL+\@\ʅHa\$Cf[M8N(H^<]o!?PKC1e() nuvola/128x128/mimetypes/cdr.pngUT `APQux E =7ߢi8/Y3W/^:l 1>?_LKN64BtgʳH`Ul1ޅj82l^Rƨg{Ԉz+oE[ZDB=fBI2aUb2]aNv5\W iTHUwj^f:zh ~e=c8o>@"V"_\p5Hz) U58g* Lf CTM{TUR*O 5D3UŽ'Y]6쾮0ρ*dp ~hS{7B_SS+q vm;rUCXͬZV@ ‘>֥K |fuRO$Za Bրg'TWαj)tܜM! _PK$ EvG]ia}?*3_VBHm~d_B` m1s3+r)5Dd=J" F:3kx^ zmioTgD<cbqXbQZ sd q&z1%^:WL/@ 3+ X5㺵rԂ#B ciZFQԞ[O|>x0?=S+ӬRBSϓ;̿dlX5}a١=@wfIm'E*Sw#58Dv ōEFȯp{SʺE܈$s1&MXPYGBQ..[?ܢcϝާ"qTb25 T= owi0 u[=]|w3Q=+?)cnR@yz`xՇ7p崤qlS#+f5F^Rw&SB L$>g3.baRF3X*$&~~]$x,*paM2 n/T&M]XY~ t۰߽}}kuvf8!{,b nYȳVTl^򤤷 XЍyyD= T[1[0/Qy,{䡹:jזT/;2!qdV ,x_Zq#0`<UeS[@_>z׶#GNxtĆɜf!z%Fr95q-c xH>^LGn`]i0/LPcQ'8ȕB {B.xG2-'!>栘7XI~} YX>J~=2$ff;ɽI2`n7rΝ o[U\ J92eT>Xt(߆F@/:ib0ýWĮBB}FkI/`cMP1s Cӓ٦3KiN.2a `(D'h4vC/.3 a*X%}xBq\t[V$?@;}Cdd\*?~xmB5Yw?-4Fk;^)&2DIKW "b<&d=b-]gPXLV]-sV2]?t Ic C<o?|$.՝]5wpkV~*qsL}L3״C:;)N#xEcRGW7};'8&L9vt$kJ'V砖|o$dPjš O^뫟Nm;G,Tw$~#2"y)ˁ'! d;v/_%#dEsG\?f$U3Vd9房VTM8`_Ĉ6=5 *~-(t1A^s13NzއV8~/"0Lޮᅲbݠ3ieNf;!*$a-.Y:}aYk |q]qk|T\xf\Nr *=S`zj|@mZQa>^p m8Tz9/od#HzXqJ-S'cz@_??4z5XlX&#-RGtiBfB+'DPJ5ˏ26% xgEы}K:҈}?v@ŕ>XbEPAX]xJ\l'~$N1mJĒRO(K(K'6F3wXB_,TD:&@ MN~޷e—?q̃yW{#o}ib d"$W6anA7oX,٨pou͙3oןѭ z"b GW)@šh`<mF4$S[ 6%/9_*/zխnu"ekWe=pac$SD ˶۪h;d|Q?uR%E^Qo&"Ģaal֭R%݆RF36c"nɺAZ!S~۬sbNU s(dA"K΁O@K犣^C=޼ShiJpcgD{.AB \Ƣ.cY;Q^grJI__#HT$ h}M}a M9 Hom? [Z↙ݹeyz@0縻jM <۲Jt.+|{›.&׼X-Ttr.]%Mk7we;H3~Lܖ$)f4`1`d :l}z[f 2^l*Q)Ghbd8m-cEMq7pڴԄ;3H^ѕbE!JrO/'N=i #K {6g"b:Pԏ~̵6rhf4N]tops|o\ 0_SE 1$ PZ*OJrhVQc}RI,kTխRBPg=.~O:ṰKR5T- KzhEPkʵbʊ>lۢj'ag*wӊuf^A`TeFpXZ!sʪe_o] L:m|j$&-Kk*1C]V ⁦n9`X/@(J$PWETR=9a'7C6?AEJFRɱG]#&M;zӨy5aJ< uyNV^;<^QO}.:[ILSAX; waOZ+v >ԽGrE%MĀ\6>ۊj^И[u?V$ oY?.)_?T}n [IO$E4ՌSwUDjM&C_pbs=C;rs /` xx|R59*48%8Y+S= =.r<9~CJONBUݖ _a0OUcU䛀n^Jy9sn7`wVvɩM8"&S=с3wgxԬƛkC+0N[ofV:u ٨9b{=MtZXe9:,%3 Q+ԛ] O٩~VZ @KKhewuQU\v9irgT"!q! bP`xm/_A\bڜL;2xm]|\|̮;c~d7CIɱ#C 4̑M$WJvLE۴L{vU*٭Ƀ٪-١`(g44p=w}1iL#>]颶ˉՙ?7+ʤGH/ %c[WCB>84aBE㳖 xϳ%gAmsuI9 B2.Rz4H3O7i)蜷d(pO@Ho0y/w݄GaXXXK%V /R\Y7P[q{gj&Qv/n]A"~q춫-5kFg`_uFbc IbRtƀM,~uP긵p[ljƯ D2@]r*Ј倱EM݁+U;ͻ3!Ί%֣ W7\wn͡f!MWx{gk=qЁEKjX$7m>u>3u?|lqJP2ztkp'S>v+x%'ds=\܍+1GfbYn.pu@PhS [N޼ms` xCvqiZ&cH_8 >٣63D-_rl>!j}Dv[%ۈ˼ջ}519 n!_|ȟV%O(\ӽ?pϹ̲ڸ&{g ;\8ktYa_7ͮMNAB~,G+'44Z 8K]2A QpZ,99qu/wC{82b%*G8>O3||8i-n!}e@dU0w .,vIoϸtm.6]pGB/ǒ p4}荇qG!)&_Y8_n6"$&L2>20d]rOq܄I NNä˜Հ~æw]Y"#Eҹۺ d#iVȥij ] T")#TFzwkt22h8=RX6uΙ T?9"~+cIj=⹊nFK/%~CL??u?z̕WŴdWc*iNWuʤCJT?Px%Ca)>].yMP,{蘆[:W/t|Z\BA2W 37=Yt@jDZ3GYL _])q-i#Hd{9lYoC Mva3v}WZ||>`Ls& J$6HwnC2sDEKU[ V[zh|J.c#޽*kz,|N՛ӃfN2:;'Y輮*=r؄SD4_a @9SvQO]) SHDln)޼PcM7`WLmsUC3@_+ mf*zOa.?8Y[n70y%).*1ϱ#M =CM _VzI#wf&B Z l|f.gwz<'ak`x? j 55}s'⣒>Xvx LM'[GIEA++/Z/p_ٶ*ߜ |# :!/8.1PHY_1ɲ6-zv`NZj`TzjXD5S3Ve3z׿0-D7KpOW vHCQ2C2`Ci 0 xtܬ,=^?(y33 ;ހp뫖s1[#>.#{j9̅k{Щ-5; SxdiVv1TE.IHx 0"=]nu'U|Ng˄cKx0'|>2Q61ˆN 2+}TqN^(\iAfC_uWF[#F%ApqMU5}bwi>WdxYPNN%ŞR-Gڌn `Sw;螛Wgv?T#Nc cHKCa.+i/)e̊1*ۨضwvg1_zES=o]oXuc^#/?Yl;tAZPU<]J.ս IQ󂶥dX3~T3E,۽r~Y@6(ze5;qo kP, Lfx^>u,N^w_Uw9'b~ٵ[ \e޿C~1Wy.@|駴aA4|. *pJZr7r[2]xO?xUVᩛAy}ApǷˍ/ś0,jyρ;2t Cy +g|2**J2*'45֢A`a%T8N91𸰸OD.1L<vv3G?Pޥq)g)>yɽ$(oi8?X"Bw%CFY8SJ 2a. 18l/KѱTh1&-o(K\n5Qճr2N#,NtvTXRhyhV8fqLCsAgCE;ٯ-z/Qy+L Pyoꁻ.eTNZ [ ASn5@ G+PKC1=q;=$nuvola/128x128/mimetypes/cdtrack.pngUT `APQux ={ }k =vH_.9 #((Pf/us|1bJhLpn󑠈aA'sn߄/D♢НE E0m쉄j\iִ\4z:A yzkh~rD] x%r+@pzB"6(mɷydH܉rLN X$h:XA' dpU?5]BT OM;MK4  eNq+t!?~+>9 "ںvv;oI¹}|BE`~UjC{_@tEWUYs24|%ys`*a-AFF^8󧍡 W{L6\ Z\lTLGlLRdbe?+{;?z ~JnyfgeU5GpDgyzx=5,{zT}}j@۷}Vyy1m naH%)iH$V3-mjӛx R[;hޡΛn~xj3/r ( mVO7֠bܦ8A;۝ ɠ)` EBV NCu mXg# n81RYZ`8aI"jd`B|.\TseQkU R+mew+!$#w˒ hGbUQdOMtPb@COs]d88 (= C0VQΗqI1g"z\i1YCfl?I$1lZt雴CZ+HzTtE9W-XY*+ Ks&Pjt))Q >66;p-R{=eV!d(gy 3fVe܀M~| 1-aUY_x$TMߝ*2dI)iJKzǀ/UëyObJ5TV>J2Q c`ll ˗ܹ>扴 Qٕ.TVB!SoPs;ɾ?<\@^)r4/乻x_R]K+#]Bt:,3gHy2֜TSw=֠_e]Dqͪg:<@UшFv/6]sM,Q'Ef#}Lݺ}蟻 dˢsCC9C+W震ךN+g߲Z:˭`̽^\@ٰAٚFY^QQf )'tK [j6- 18af+`4ed9zЪw WZ +G.%i዗Km1BOfe1XHgeWFw)k$1b`aߢ].n(l,{`ؤ ^^Ww,en{B{H W Sb{c1pzHPO l!MohEq5D=X4#0R8;X Fl}mK6|.W/2ϟ/c꒖:9zWDÎdy"6ovAY>:vW2u"P 1zFcBF|J7=V(V3v) Ӆ~uIwI"VN*8_BiU];Dji-s 읚DbK){.h@Ϻ4$(LfKyZU@b'0_c6/?_pΓ*, 89pL5F$\omc,+?_u͢fWzkfR/Q jq<޻-hpjaw&o^hp>Q|BU#IP[{|ewII Q9 5CkQz …Qb†(F՜JwfQVf fa_.²Tc6E'`DScҍșsR{/1ch$ȹK`*.D*= Z_qùkނ}={(8؁D%zQ9_ @Tؕd &RMC˩#6sJi-yWU-k%*26CCu+kOy1#sM2#8 ZqJ{YP MAkyړN qpӍx"ʾx_`K?u@ #̄20&pjՆ{|5U->1 x-SWy fϱ3tqKظS+7Ӵ'G=~E/nW^Kւ=t>T-9=Ÿl K86+lN6-/Gհ:\Ԕ%aі{BKg@ 1ڻƌ~$L=qzrXwIRXy%S862Lb]er#r#`*v-d]וC >'-o]1J?1qx2+W$X, . 4#yL esE0ri!~$8 7DMDx&<O˛r-8nkP˿H]w.[!6A9=@_e_eiE:B`m+s_Do;\>cRN:N'.4zw7M ۲mcAikY3)Mܟ|)߆| PF0agoNE1)Ğ0EB&6Q@<;r7yVM-niSĽ\vӬ"2k@! 8DD֡2Hd0AGWN+^g/R7?ɹޜ}ϳ"Q(bQWGs$gcP`^E{uFVO:$v_)N1 FTؚL-g0é yXo-w)L1*4A"+b-c7[MKiIY/geSTކJ!n0ڨSsCz)۶$;W/72@LVf!5TG _Bh&C6b9^S")}k>ܑ.򜸵)7hxÐקYw| S]uc=kdùdݔ=AlyrEN?Kh<7Á\MrpcQ48! 2Y:B!I܌kk 뢶u⦻ҙ, `*S!njhζ&ΉGݒ 'U'/˜[\7nkڠ`-{H t!P e]J ])p,p>]Pq)F|]4OAs+ځ;[BXλeF@k"F&Fx]\'xݟ0} US\Z r"|<|o+\鍶Nu#:V ,S8īN[:׮VJ9fDDt6+}y 9]] J㨧4'"N:b I(}%Mn% EnF6mZNm E7QE'Z3{~f}  Xʬt|AvMmlh9?&0mjs֞=ܦ'H$ZmB~Jyt8_@OxIP'I4n)]$jV)[Z ROE<x{\;#h==&A>C3-!1(fLNz}Y 3sSR3goI&Qf'F0C|EU&GVf59"8an˪|AdeT1l>&Z`*Ua3 R6\RxbH&1l,:,.{#7C$HIǷY1)չh~38_^T*=[baUy@DƋ O)mGYS1cC1Kc0l_R& N 0ksB⁺\&8_tQ-߱q"xKkP '\M=]J }sz@J-dܖFS]W{rʾjmeF0] ѬT?I Le瘃(BUGU2VN09->{zH43_ ދ-,n 5H: ڈQ)Vi(k ]J.M\C6$&FU=؇m"lB9Ln#?JLyCяOdsnS<-[qZQ%oE}ؗd'Nlb9DO=lCiʇykygC` <,62\5؟K5"8q ZPvk۠Io̜g>pWa)C׋}q FIIHEMKmfmpzd PW`=<j6f\}koqo܆XVITӤ,_JXxQ:Je˼+kP%5]zw+@6]X"͚%r6˰#C]?.gA>r_TȂEP۸&.B1;P"Sik祈l)ȵƁ9˒ sAV(e?M₂VGPWhUpo/aw~'b9ڱ)1bWGq7Ȟo$$m/?X),FF7|D1|U@Ք7 DZ ~,BxX/#' RcӔ{Eցb`J=qھi6hJ]W@:bk |K$%|wz Y\ HjUw_kUdѠ}_+Rӧu ;ۯ2%-M(Wާ«6 0!ѾYC,}nIa|:N^w$,Yd{"Ʃm3b]`$,~eѨחHսzrv瓲C߃؁8jzݣ(  {wױ4ʦK 8cka9#9p酺 seƚI.#8,A5:y5C/lIstvbX3K]8vgTįGԃ\爉5]\.>/&\:#-[>P'#Pތ7r.?`6XWCvH>VJ-I^LS Q(zÃԲ`'Em-JrjĀwI4OGzh/&G?Ճ_׆;Vb˗pPO/=b Q«S`Kh3*E%DWX=Z(,W  dRcLg˝LL8-,4z{y>MmkfC 8~. e:/G Gu>)f55÷ND[ۑ- \Vi6,;űc>s1=1;!{ю`JXi.SO5u ̒u;5խ50 la p!ijn56;_pR+lʹTW"A^ FY=Sy+jX[>G||L?r--T&L7Vu Wx /6 }mj¬B΢|}#Dŀ?̝8n} -,0\ϚR*VNDGT*GJWH9$ɃP @?]Gc[[nkͤ$:L8fU G􋔈@OޟnMW9d%r=*$6S^2]] !9#RF 0W Ogv"=)FNTa@7X9!QsQ*J%[!CxqP̖bk^}x)5ID |}k)Jp*s^cz{> Q((Z2kc5 - 8cȤ桔ª$qL`-QUvA*o @`JKU9c^8mwl](4&BXJ9| j۾{7/wdv[Ýc\sK$C-@/\AgCQ @>ϋоqM;81 _(]%`f _'N^f^/;^'&'L :P}KN>G<LRֺܴU>ƍKèC3SogjL\,} [!;sAZ t4ĸ9 0`7z.@z֟ ,,pᢖϺ]C uTTk9ǡu7% aIDDȗ[I b1>ah+ret7AI7N`l,NS 4Tb$% 7A$ 5 ZYg#1#/iȣ\$hۊW̸TJ f4gp[u@B1bM]W0u3͕ ?Xķ5nh~Wb7BԱh>-76I?•O"G|P>G>"k\N嫿)Ӕ騞cku9} *Z`ߨe>23Ɲ ".ɐ/,NjLX|MBCm9IT`VN 5Ci_rem{eCE-U#떭Di6m Xyӭ}z*ݭ-< ]zӳOdl\N-v(-@TTrXCGO4shzp+TC؄]*1q9lHXMay";ýX}1 d$^@ U©x~Kb*VʏT2rϮKؚ#o ;R1~', SݷM 7]%mrBMiU#QB wc: ˡ9`*΀9 !B_4z&jB5!qJa^a^X|8]b>aCpv(xAWVik LLIrsQ)XqXl_Ć_˃ /s mdzǝb7omALgt yg)d3eN`Y;c3J+˶/&q VSg+ QzCG~R!Vp@wڂyC+0zv GTDaBtQc*ƭ&R0ųkEQie , ~-hf/ф$TZ >r8w.o7FF;ݓ݄o+[S{eh6BޓCY+}&<a2XU% i.̑@Q}z:^6[x V>AtU 5:z umrP/tBzy#=QK"Õ/)k%j0j>e*譛#WmfzRt\ϯbn)=!F?!pdCSD略3zM0 & 8?h[pDpI( R#Bd+ӡf}K r;; KOVO ٌ _o8X`U{4*9:TH9q) U]kjG׸S-e]zpRʛ| tXSPwymx2GN qk#wܔƫFW2>ЋWťSW(݀ǿb٩VxΣ0wZLEfRysvMR3z2a-y˞U {f$xO"& ]BޠW=+ ƲsC IC  6uh:A1Nt69_\y'ZBC.g`'?%|̺ަG;́1YF`v"g^8Q'V)/B^"/HI۸G} ,YfzkA~kRE9-Tx%olK3^K]7\VqWMcEvY;3mΒxd%ԿfȜu6źahKlBL#X?1O5x mGgAïm>v0-Ŋ_~*T!/@2QS&Pe1p!dBO*"E_,{,,+ 04aV5(TwſV]gX C"oCKޤsls@ Bn}!SfQZ3_H=` =9ajřOeB9? $_J L,#fƧx/~%4RghŞuFZ^m<8@$x].Ą}NZ'>õYn]Y),Kr2  ~0 |% &liL*nב:7,5+l\&0>7^t`l[Au̘fW~7"vu8tADYgԚ5=QO6ԱU |Jf#s}4Dl=̴Ka,DV)i q8"D4d^b^si3>U6',l#}ʖ{_[__w](IClߠDJ$wznr3h&5XTʠQd 'o3xVH4F  e@LGn^ʇk/yl=`xߞjۍ۸o:_Z$F#5/䥲K$:?S>%T'g~j4Ape<%fO%=xpki{XG`dl=)rX\?Jzt+Y?–kBD+ m]u,FY M+W!Iø\yٯ]lddȪ1ve6MKQW'fU v:|GiF5ijN4JOra(e=W}3쇚jWkĭءEwSkeF7:">ei+#u9%\5l*bJP`ԏ Wy~{f;VY< * Kq>PԉXRcǑ NLltlz8r>^g0qMR&[PvPgWU oAAٱ*gF &W_441&$2a[\d)sB57崤!Ijh"=#:AU㫆_U SVה( iV>SYC#"j(e'z;6KRW3I06[.Y<Ԟgʑ-:x|f7Il[Z\q:7 ^kSv{'It:MM::ңcF?r{ h3+I.΁RxӧUa B[\U&LH/g`rc/)c/T.UА2%T ]Db΍n5T ӿ&amDPo`һ3PQm'h!X1O1s3PQSigvBYSu/XǣLU\E`voLt+Qhd91^3ѿ¥M1ʢ$nٜ%qbê/ Āۚ0Rh 1'b y׫VMe\\E(=_0G_ւ7&ٛ2qZsJl4=4jr2ϗҘ_"BwEL[܄]xK{DזuN:>h]/ilƾeS<mʅ4OL<}S)y=˜+ fVHOHT:]^XNS?3W#aأ䌶ָ9"QM#aЉRNl8A$#Ma azA?ҵ;mAv 2352eC|܂ҫŒK̫Yg++X|)13@|_!6&*u yP}s ɰ@NLu}Y,0>W ջ6l@3wFMr#>c@r? _Y ?}t Wɏ&m2O":2#mRQCX)=.WUUaRe2:~ xxFI+Kw$TF8Mw//C{ϑM1{0U{0}Fо0MP0>⡥r4@gňٶ o(9{'xyۨ =7%q%"XP|nS?w.K E=JcN;th08UX_W"o1owUؿfe&w <+$x7OuA6[VYZUrRrHtTWye_B $~JAGNlhf􍤅hz2_k{޽ug;W~"SF.Il$WIߓ~!u`$kB%kN]50O]Vv ն8wV"?lNE6KjV[ߖD5/nڅ.<є#;&و~W)W=, LLx)1(s<|MyDs;Rakl~)ަ+`a{Kǃg퇚6y5Af󎗔܈Pb6ܨtkccccʮ_{!qfgbkSe& ?|hdg9V%Jp |%>/l(Wz 6w=ZPڪ m%5 E1 ʁ!>hYQx;bXn½ׯ+WXw6m7\4Fύ}F.k"rmTv܄0K(yGd9*c?pGhm:g;x*j^xFaAY09 LěPg US i2NȾ< +=}t(ԏ%2j7dB@77z=@MPKC1z/+2,%nuvola/128x128/mimetypes/colorscm.pngUT r`APQux Ez X.nn.kZ&fffMMnڪ ᒥeIe%uM!4z[V~y`3gy{>NSHG*J+w*F*wP)Wy?6)jlJLq>zB8z/|u?uKv'Y"F@%qb]*) kE 0ϙ (QiWWK=!3%bIChu9SjE3 X]5dV,ٟk\&}iw0UiíZ7D 8Jü}6>hrpp`_hpPꉘMI$`$Vzꈣ9QhxBABIΕ'tē<=Q%swp:\[v0u[S/-:X?Ē^1#(GrKWᢪ6:6jecʼE:ʳ1RGN(,~ڊX.-ao-|}g6<"ƔBR:xl<;6 MT؅yotjۅk׮m) tk2ƴ%^5 eᛳC2.f3h#cSraL>]o;0Iaa C@}EjDD0[8La&Rʬ`Wx t60[ D>'Ҭ="X|k>d?*qg0JWgMNX /5 TWt/ %#(ɖ~[~@EV^gH< P* 1ԡtU | Rm/_AʂaW'ㅜLeQ_=R6]Ytz>ͅN, *~cTNJ,5nEsj0քRu-̣)rO2GUk+ )AlXiS5,[2ӣvB27K Pc#!^46cuc1X+b9Ǯuc 7` ,.P70>_:5IwZH/-D03$,V:T| . 9ӲE1K D#_Eñd>Qnm F qs +ZfYKڴB ӀНp4iViĩ4;Tը}&|FOhPHwcGvӰX]]Zq)Bap87܃Xp~U@N75}h_1P7Xp%ZOhY35D8pM7U\&!P [:ϟÉ h4j,}iȢCE55JؗK?>-b~rŒ̞j{pJSxjQP/2u2V '^Ra8;GU5 CD=F{%bZ!RC,s ߊ/k姊 p>TVG]9T})odetDMw`(!lꦌXez^^4D1 .v `UDgp]M붆B"3\u|l݋s/?U68vXA]=4|YfR%)Q95d$.D.+bч,(= on`>3 Tൢ#*[9/X'%M%I-qI!?5MI3>)/ .dZD{|]6 \Ov K˓{Nz[4w~k^^Syy]i:} yF¶DT'Ye35Xd܏P} +)պ#W#TyMQ&MUl@G淄ܱCK-3pGTdخW۔O;(p۾52-, 3EOX/x gV zه)e5`e=6 qp6Yiq0:!T=UJ-&}̠ï/ ,h?/8EŲ{3qT!F3h]mb 8M_h$UNX}Z2hay(HV."5]cb|h^WLf5OZR/㨐9 qCB gjdj:TVv"T1,j1| }yTL!. 7it^b} 5*LqB.XcŋB^K@#2pʼTT-f :|pRA%U|3k̈́ - Ub9bSۼ]u"}xoc:NNP??j>*V6L3smjU,{٠wQ`IS|o) uw !.]!^>%NZq>88hzHjua\~9KTrLAPJIv| xS Cc0狢C9ކao#;M[_Z㞬 ÿ-9 fnP^ZUP3!Pjȵy_2uݓ4b'6+:OщЉaF(U> :yFnL<8H"Us#u9cG^vnOF |VK8Sc^spݢ,6픔 &̺ 3V8]՜FJ`~UnGY*֓SSVK\=jK1GݸPP D8Qu^fe䫾+ep_8h`Q=9 dc^}b̭.@"OcpcMC8 .b(FV#!ܫ4  ~CE߸.۹1E}R0r,"a嘤^F@kQȨ˭!gBLB*@W`{ѓO_s 풡wб璯pF6ߢwk<7=Ҕ5 X U#^,V4;p1 9y:(8fn@DQG0{I_uZ5֊{uC ⥚-s1+4 R$B>F+41 +ձ%qN-ƒuf0 I^^>#Q3h?аݪQ 7{ilnjIqډs%pnf8M_lq󇛽s>U`f \`J3a-'"@LpڅzO55,pݦ0%4y}t_Qt Ԃ0n]꽱4 _qh>>]%:GW*e~U8`ay{QWɷ.[='Arݬ B*,ҩS<6XaT[.zbGCa'XaX,*bd]sRfˋ^2MįP=zMO\|tN\2&" ' pmQz" r_+^wcdGN,+Ya*ЋmZ E.Lܵ d1 0 d:,bj) mKfŜ-ݥŦ_eusv?-\A+ (qvOuD(W.JaUn [ Rat|[c;OI5bXN\}.3dG&Q udB,#S@Q -i-<$u+P@}fC3*y*{ L:W)vi˺dZ…riE_-S>`3ђ&AR ? \.pм!?d{(#1>CT`pqWIfy`pv`"ɜjwZ(rͣ Zh8bBx0}'U1+Ox.͐3i'9WuOq>$ ^/,OZچ{h%yau/V(:'\7:{7RLzNR-tL20%3q N8!)pSSK Z#F0R7mz)ƹ] xC0wx lڊT]t q!`p$1n f8I mus뤅- PKmATB,Ԑ, !Vz>Fe~ʦ$DgKsg{9 ]2㾭zofoW!P#xL"ÎrQXs AsL NF٘|?: (Kft[ѵ)|'P{_`8!Z%FfK#-V|)^_[)r~ H >.6NJ53Ĵ1J7 5巻y?ŹD(7xm)e*nL6M.c  k8؜'-+dH ZI >GWm737&GQ+FlU:jsL)Af9[@Am4~+VLOr[1jw],EwJ} *6'<-茘ڬSMѠWP,sAL7k0$x ' 7ݞRH&z.jݜs) |wYtcCN ]_A"KQU$BdR Y p_2Rp4^9JҏJˀ5.χM z9OpkBʆv֝^G-£9jF 6 \+a_@`/UKE jpfD\Ɨv;^3m#2WRb=.\B3(gf{q[\I-Jĭ%T)׊pasPM&넑^\sOJ^cVѪvӥ݋gŝ ܎Ƭk1͖){ލ-wVv2;y/8OJA#!qTE"~1y6+m5ЙXCoр,%xp^ R&hijL7M4.D^|t$Fv=8m ;[B⡾Ս 럘YC)J} 8}Yh:GC={H<%ߚ mWh<<3Uw<5b[eNPh󣍗}m^# ;j*GXK,7#˗ccWzAScPcC),avnqs˲ ]vjoTeIGQ9oy|_70zRطzw_zOGC US *Qk%i_Z  >7LE$_(ȷ{.wؓI/w5# #$nrcQ(qŲ!X) T0H[Z<P3_J`@!-{ZLPp# EM^\옃`}xR'!Zi7̩||bWWE*ugwsiqD3/BT4+ >v lk ^O5ud3u턧?]|hDS)ک'LG 6V`[j~ f E7INGOšd6e Օ6yׁ`XH.ʗ P?/Wđ@gAj_7-qg1/$~ ok 6r^N;{X}Hg{dk œX翣I]F &`кщp@):@BSs݊( kq c<耲E7'WW/3G| TbqVA53  :ѼĿpŸ\zrAEo>OR.F$1* %P=&Fe*~dGY2\B Gq- X'뵿FO%$$ TN&jYX` Q5E54l۴x"$)ȵ: Bce%=4i':b(Yr@, ֈ[,M0GE)]E, wĤGيwk*3{yQ^\$K-N@[VQOj6c!|K|SeN/lyܮ"YWM5ļLpi@P޼C"T؜JHA;wGBɴ'ʼ/Fʟ;P0% q ǾVeufhd&%&򉶶Bz+a!BG5[h{'܀0H nXy8EӐ wz:cEu Ȑ!1e=pߙ6_iOfkj/ظ%-i(O孜5C< _G$::>L$:8: ;7|ފKAWaԠ./7 n O3$7*A`=SMD;ÒbHfT_ 5DdF9%,wEv|;#O= tb5~hnwΝ ǡBף'~|8]\=kt Zw =1jҲF\GE˴c ,/tD]M#| y!1ND$/X)Tz2_l@Uuáȝq^^"c'+D&6c4Hb%F*)*{!k׾|Dps*4zijƽ܊{DNKdSɨC?;N$“#&;j.iRMӟiOl"IMY g<@i%4T< PlY~9P6yW6D}x4NΥZkB;`gf9py"h~z{צ. vIt)cA㟸= ًڦ}ɽCѺSCwW}ᢢCǎvK$EvB#P6;[Y2Hͧ{x/v\f6 DёݒlKovhv oكQM3 ^_6֐myt3cs< {PKVo ӱiKv8}ߑvSH{1"XZ{wWb4(2SG(@P劳BER5XOUZ Qx)Z_.W|=x[PvO~+T*h}oӱM0,m۠bAͼ:c' %–d6%,? w}[W\~HT9cv}/һ>peܛw3CKC‚&Ò/t2}Z& ߺՍG+ߕ`nj>_4Cق 5Zq\崥[f,{f%os>4T-5.{<=%yǧ2@¼SɻcFK8 c`Qִkt9!+5^JzhC`cv RӱljDEO`_چ2?W)1Be䕆"}TK >rJiqbg9z >:b\©9-N|;Oʔ/׀;wV>lՔ`JJ(-%.~ 774'3#H{6n܈[roIfh֞O`Ad!VM|K>6Oi#M/ɕwWvޱ4I޳g.+GktɼcnSOJZ߇J CRn$2R*29uuu bnYt\k#VU[~7{$p\}pm>}sm,*`@h *塥Ÿ%Քm5՛6}>@s}_*Z5ݲf5;pIK)]k8?qP};\٥~+%%!۬ +=U; JED¯y :չbѡkY4jȴ[tV ]#B,cd_ڹTq;wS(Ar&W^* x\3*_w -PKC1z/+2,%nuvola/128x128/mimetypes/colorset.pngUT `APQux Ez X.nn.kZ&fffMMnڪ ᒥeIe%uM!4z[V~y`3gy{>NSHG*J+w*F*wP)Wy?6)jlJLq>zB8z/|u?uKv'Y"F@%qb]*) kE 0ϙ (QiWWK=!3%bIChu9SjE3 X]5dV,ٟk\&}iw0UiíZ7D 8Jü}6>hrpp`_hpPꉘMI$`$Vzꈣ9QhxBABIΕ'tē<=Q%swp:\[v0u[S/-:X?Ē^1#(GrKWᢪ6:6jecʼE:ʳ1RGN(,~ڊX.-ao-|}g6<"ƔBR:xl<;6 MT؅yotjۅk׮m) tk2ƴ%^5 eᛳC2.f3h#cSraL>]o;0Iaa C@}EjDD0[8La&Rʬ`Wx t60[ D>'Ҭ="X|k>d?*qg0JWgMNX /5 TWt/ %#(ɖ~[~@EV^gH< P* 1ԡtU | Rm/_AʂaW'ㅜLeQ_=R6]Ytz>ͅN, *~cTNJ,5nEsj0քRu-̣)rO2GUk+ )AlXiS5,[2ӣvB27K Pc#!^46cuc1X+b9Ǯuc 7` ,.P70>_:5IwZH/-D03$,V:T| . 9ӲE1K D#_Eñd>Qnm F qs +ZfYKڴB ӀНp4iViĩ4;Tը}&|FOhPHwcGvӰX]]Zq)Bap87܃Xp~U@N75}h_1P7Xp%ZOhY35D8pM7U\&!P [:ϟÉ h4j,}iȢCE55JؗK?>-b~rŒ̞j{pJSxjQP/2u2V '^Ra8;GU5 CD=F{%bZ!RC,s ߊ/k姊 p>TVG]9T})odetDMw`(!lꦌXez^^4D1 .v `UDgp]M붆B"3\u|l݋s/?U68vXA]=4|YfR%)Q95d$.D.+bч,(= on`>3 Tൢ#*[9/X'%M%I-qI!?5MI3>)/ .dZD{|]6 \Ov K˓{Nz[4w~k^^Syy]i:} yF¶DT'Ye35Xd܏P} +)պ#W#TyMQ&MUl@G淄ܱCK-3pGTdخW۔O;(p۾52-, 3EOX/x gV zه)e5`e=6 qp6Yiq0:!T=UJ-&}̠ï/ ,h?/8EŲ{3qT!F3h]mb 8M_h$UNX}Z2hay(HV."5]cb|h^WLf5OZR/㨐9 qCB gjdj:TVv"T1,j1| }yTL!. 7it^b} 5*LqB.XcŋB^K@#2pʼTT-f :|pRA%U|3k̈́ - Ub9bSۼ]u"}xoc:NNP??j>*V6L3smjU,{٠wQ`IS|o) uw !.]!^>%NZq>88hzHjua\~9KTrLAPJIv| xS Cc0狢C9ކao#;M[_Z㞬 ÿ-9 fnP^ZUP3!Pjȵy_2uݓ4b'6+:OщЉaF(U> :yFnL<8H"Us#u9cG^vnOF |VK8Sc^spݢ,6픔 &̺ 3V8]՜FJ`~UnGY*֓SSVK\=jK1GݸPP D8Qu^fe䫾+ep_8h`Q=9 dc^}b̭.@"OcpcMC8 .b(FV#!ܫ4  ~CE߸.۹1E}R0r,"a嘤^F@kQȨ˭!gBLB*@W`{ѓO_s 풡wб璯pF6ߢwk<7=Ҕ5 X U#^,V4;p1 9y:(8fn@DQG0{I_uZ5֊{uC ⥚-s1+4 R$B>F+41 +ձ%qN-ƒuf0 I^^>#Q3h?аݪQ 7{ilnjIqډs%pnf8M_lq󇛽s>U`f \`J3a-'"@LpڅzO55,pݦ0%4y}t_Qt Ԃ0n]꽱4 _qh>>]%:GW*e~U8`ay{QWɷ.[='Arݬ B*,ҩS<6XaT[.zbGCa'XaX,*bd]sRfˋ^2MįP=zMO\|tN\2&" ' pmQz" r_+^wcdGN,+Ya*ЋmZ E.Lܵ d1 0 d:,bj) mKfŜ-ݥŦ_eusv?-\A+ (qvOuD(W.JaUn [ Rat|[c;OI5bXN\}.3dG&Q udB,#S@Q -i-<$u+P@}fC3*y*{ L:W)vi˺dZ…riE_-S>`3ђ&AR ? \.pм!?d{(#1>CT`pqWIfy`pv`"ɜjwZ(rͣ Zh8bBx0}'U1+Ox.͐3i'9WuOq>$ ^/,OZچ{h%yau/V(:'\7:{7RLzNR-tL20%3q N8!)pSSK Z#F0R7mz)ƹ] xC0wx lڊT]t q!`p$1n f8I mus뤅- PKmATB,Ԑ, !Vz>Fe~ʦ$DgKsg{9 ]2㾭zofoW!P#xL"ÎrQXs AsL NF٘|?: (Kft[ѵ)|'P{_`8!Z%FfK#-V|)^_[)r~ H >.6NJ53Ĵ1J7 5巻y?ŹD(7xm)e*nL6M.c  k8؜'-+dH ZI >GWm737&GQ+FlU:jsL)Af9[@Am4~+VLOr[1jw],EwJ} *6'<-茘ڬSMѠWP,sAL7k0$x ' 7ݞRH&z.jݜs) |wYtcCN ]_A"KQU$BdR Y p_2Rp4^9JҏJˀ5.χM z9OpkBʆv֝^G-£9jF 6 \+a_@`/UKE jpfD\Ɨv;^3m#2WRb=.\B3(gf{q[\I-Jĭ%T)׊pasPM&넑^\sOJ^cVѪvӥ݋gŝ ܎Ƭk1͖){ލ-wVv2;y/8OJA#!qTE"~1y6+m5ЙXCoр,%xp^ R&hijL7M4.D^|t$Fv=8m ;[B⡾Ս 럘YC)J} 8}Yh:GC={H<%ߚ mWh<<3Uw<5b[eNPh󣍗}m^# ;j*GXK,7#˗ccWzAScPcC),avnqs˲ ]vjoTeIGQ9oy|_70zRطzw_zOGC US *Qk%i_Z  >7LE$_(ȷ{.wؓI/w5# #$nrcQ(qŲ!X) T0H[Z<P3_J`@!-{ZLPp# EM^\옃`}xR'!Zi7̩||bWWE*ugwsiqD3/BT4+ >v lk ^O5ud3u턧?]|hDS)ک'LG 6V`[j~ f E7INGOšd6e Օ6yׁ`XH.ʗ P?/Wđ@gAj_7-qg1/$~ ok 6r^N;{X}Hg{dk œX翣I]F &`кщp@):@BSs݊( kq c<耲E7'WW/3G| TbqVA53  :ѼĿpŸ\zrAEo>OR.F$1* %P=&Fe*~dGY2\B Gq- X'뵿FO%$$ TN&jYX` Q5E54l۴x"$)ȵ: Bce%=4i':b(Yr@, ֈ[,M0GE)]E, wĤGيwk*3{yQ^\$K-N@[VQOj6c!|K|SeN/lyܮ"YWM5ļLpi@P޼C"T؜JHA;wGBɴ'ʼ/Fʟ;P0% q ǾVeufhd&%&򉶶Bz+a!BG5[h{'܀0H nXy8EӐ wz:cEu Ȑ!1e=pߙ6_iOfkj/ظ%-i(O孜5C< _G$::>L$:8: ;7|ފKAWaԠ./7 n O3$7*A`=SMD;ÒbHfT_ 5DdF9%,wEv|;#O= tb5~hnwΝ ǡBף'~|8]\=kt Zw =1jҲF\GE˴c ,/tD]M#| y!1ND$/X)Tz2_l@Uuáȝq^^"c'+D&6c4Hb%F*)*{!k׾|Dps*4zijƽ܊{DNKdSɨC?;N$“#&;j.iRMӟiOl"IMY g<@i%4T< PlY~9P6yW6D}x4NΥZkB;`gf9py"h~z{צ. vIt)cA㟸= ًڦ}ɽCѺSCwW}ᢢCǎvK$EvB#P6;[Y2Hͧ{x/v\f6 DёݒlKovhv oكQM3 ^_6֐myt3cs< {PKVo ӱiKv8}ߑvSH{1"XZ{wWb4(2SG(@P劳BER5XOUZ Qx)Z_.W|=x[PvO~+T*h}oӱM0,m۠bAͼ:c' %–d6%,? w}[W\~HT9cv}/һ>peܛw3CKC‚&Ò/t2}Z& ߺՍG+ߕ`nj>_4Cق 5Zq\崥[f,{f%os>4T-5.{<=%yǧ2@¼SɻcFK8 c`Qִkt9!+5^JzhC`cv RӱljDEO`_چ2?W)1Be䕆"}TK >rJiqbg9z >:b\©9-N|;Oʔ/׀;wV>lՔ`JJ(-%.~ 774'3#H{6n܈[roIfh֞O`Ad!VM|K>6Oi#M/ɕwWvޱ4I޳g.+GktɼcnSOJZ߇J CRn$2R*29uuu bnYt\k#VU[~7{$p\}pm>}sm,*`@h *塥Ÿ%Քm5՛6}>@s}_*Z5ݲf5;pIK)]k8?qP};\٥~+%%!۬ +=U; JED¯y :չbѡkY4jȴ[tV ]#B,cd_ڹTq;wS(Ar&W^* x\3*_w -PKC1yl!nuvola/128x128/mimetypes/core.pngUT `APQux EY < 9yaq{S1%y̱UwEGR4:ZE-B)J g{>뾮^z !DU*ĥA~++v4tk9"2=gd i0]P**h]!!Çu&k#/ ,GПBR()I9in ɜJ`B! SK"i].\? ߯$3X \2h͚U%D JFs2M [ju 5{vȥ+u[؞0&>ZyR~ݕuHH#m,^+%pd_|?Wpڕ]GЯa3ᏹQ[ ~GO#glwT|ԏ(C3 HЅ3 woݲ$7oLdOuHL0>PIq^$y{kV":y+V:ll1ڗgU"i r ZL⨌i2Lg fXg"o+ǩ$ :qfۡU>sp3JnC]Ã[e.}xghtm~!#"@|/8_|.7ؒPPs1 xך^na nZf65,IJ}ITxfr\>"mdAlȸZ{hbHLˋLOkx~r>wK8ż;mls-cȧIӄO>6mDPӷK(=t$^[>z,k~1=0MFа.7'QFkx1}Ɯ((dbH{2X9KGoTZ0,qoZyEPz^vK:;áKlIY<1r>yɑ ̟QGf~=.~',wRhMw P*Xp#p̀Q$I`:;{@z'O{Q$Dj wvu| JO+P \F5̳?o!n̐{W)?l'ՅYCv밋7/n[xt7!ύmTNv^K[eb-Jc iKE.)U&_fdfƚy_NG[ϝ3[ #h2ӺH|R[wՄ+1.9+WIZ~5l#P@>'N_s 򟆑 sjc~=4NFaWhG!PhhhD&mx2^h]ճ.Ke_FޠOss [X~~~l}+s5V>e0wHLD*J\l6~ ϱy#QVw'Rty_WbE-:cj;ws n)eN.&tT՘W3Jo5Call{V i\q۷p[`4G͛nn&ޑ)%oȑ:㡁[,gIq͜5Z5!S6r~?NM[׷0!xY֋˚ALMAMzgIumnt>\+IԤ@u0хAG 0YT*Tc/p_mWZ +Y_:M, er[ታmKhpnx"× ɃꌆnOE>x-XJЀn}#v 7麍P:hg"Nt+c*p0Z6d"+EO'K(AHRt,7gKQb[[ۼ,"#whvɻhV2%Z)_,;{2ǖPj833#Zqp/J_ pL6w]ل>yEcZu&DX:߹Gp%U04Vz;>z4glM`2Dsi %6m1 1<ۆLJs 2O.l~[$a?e@fӞXZKɽF7|k56zHp\'Ծ4JBB12Fڅ܃taGm׊ r་a -elFZ:ggPz?!TƏDc/?q0ߓ4rJqU[<r .8y4^پVxO>_7@bU Qgg+#IE@ݲ"~*U-?"ذu!Jcn?-J܄ݰ&Ǩ+,>kWo ?{ wT@#A*\T*i%ح`ڎ9iuˮ~!Gq5Ҙ9Tg Q4sܮ։"{yp{8)tяF.]6|9/$E}-|%>Hc̳s]VE Ŝ}5:np35 [7[QGijW2DEʐ]%ᛋ³:(8\l8e$-߭Ya˞uk^ _AUcYH4şuoyß.bPH\`l*@AI@0TQ;y`{m(IfcOܻyL/ -v+FFY3"l:,L3K/e4&4i$|Dڥ2\|Uwf %}iRgwن 6ۤŤt;,z`3')m ,S ܖ-U]0Z(zOJ0`\=-'*u,‹ޭ_ɿazf5͚ ҅5rx!`eqЭZB}mnH X^1(kЪ |OP Q%g8:f#ձ㱛RWpC@w$BRvs겄y.ʳMuNiA8D~ՠY8DŽMB,9 ^ 9%< "ZwJ(95-{ӍSVMDa}K>P;X[z͡36W}GFFy`1@%qVyD~<`5gf]Sz[•kp4)uC;8b0#ab'DeRƲבϵPd uXS VcxFߠ 5;?/<#|%fniXϼ?Zpv)L-X,>&MMM~D C8jF-iy'cRkcAKĘ1@x[oB:\݆Ż-N::fǝm,ƉדqF0T !8Zc/ED{5%TuP-G`(--- ft?Q澵+5IofR]ehKP"a'ͧ34+>mlޏ`o@Xh$PO@Eє%S񁥣F>ª(_Do: 3~>T:cCkVmvG$򳐨1 <ikk#Gq 0ոY59ᶿ_d:ہxLi d"*ozE CB!+Ux~+6v%M+QhW [H=ln9㦱h7Wsz(R7mE@@][FtÔ e?ҙ}NZt<~$/uyfg^Ct$|]-?Q97dTɊHX[%V 4 VG2e ׫˚<<4ߺ2K| 0Vh͟W[PTE-7FV NWӣ7.ӽi WwZYe[Z(gzCrE)9CV!L5GL̄Ň/B,mg>\=mmpOWՓ<բB;(8T>aGAst;qD)t[Lv]%jt$ -RHWU{_`/zڞkʢPP-OSZ1O󞥷t \,B[bv,}1|OobmJQemm986w5SZ91ׇT|H)&T\H䥏@i/j_ZnJ>~+} Η%-Gsښ-P^A] wc?fz{>,7 (Ӑ;Y(h-evS P{gJV!lgwv` ;1 Ǭ"v_ Q)vUk'hN3gQ\w7wZV A!  D۳s\K{ґ~$>?W|KSFD",N48 .?PKC1~s}9: nuvola/128x128/mimetypes/deb.pngUT `APQux E{ 4;+0v3ֱĎDcW ! PJ_JuYHDQ6Ky}|s{~zS?jWry,fS*ANn_Mak_(Y`/TF: wM]T<l6H+%]aՊn貭0Rdެ"\߬vӫtZ3G.! % dsCHb!]mIB=Q?ڬ1[U"RWUHA Ld۽1Spv17/ w=IKv9ulLmzkc6CRt#PHeF \ K&}Qqr~ߛYDJ_$>e'9>;y >)op,nm}k^ط ^ t"H 4Q=FXAZDahAuƲpqp%lATy@/H sM$vnmVNx]L}sQ+*Y`NOاqx/LLT"i޿[*f1n|Fm4 1=q͟N .*_9HEB ʤdTۑRFoT즒0" ~Z?xhkNUʖ)"*e^Z|AjyɳQ@ΟqCS>19<#ߠ?0~ ߖ&6؁E̛w.31%?뫠Hx{/fp iR@P y ءY+P"\}mnchfDWzxsU֓?@յg}ൄ; .qKP+M:7UHsod^(jNO-Y8K &L.rmcMu<#x˯'[l+cVVN&JݑNX%` )^K2?NEIR9ɯ6C{"{>$`6`-Ш%1Z" 0dz+mq=v"GA iI$ ;+Lt#P" S|B0 g#y4^6jJlnՕ3 z 6q7H zY|MwτO I_"MazD^\yTљCO?xX fp[ *bހ}ɗHaHљ7skDjwq58 F]ڈ[n?ٷ (Eᾓ|e |a/*C\;E yGg,`\d˫y;j;myOvʔm C/~ i:2 KY6_6,Zq YX$A믧b|"tgd9HK&Tz8#ftzɘsMv8]*~PWg[IB*UݓrKK\?v)]OX9ڱ vl@]U==z:kŭםp WڮKI^qtvq~@x=EZEg7V{ض*fG)6l[xxY߈%b4ָKџ'5})xS/q14tJuÐ܃Nff-_](*s9TXŁֶ]SyԭiNE l t|T3](cf3% =9feP'\Z]`M+R_hWAޮT,DZs95ᇟ4SutW%:BW! z#Y7v'hOޞ%:5^v|*p=okçuLN^&:yՖFlPD}=#Ԥzmk8}y%40 Rh VMޒ 飔ދ[2n#'TL<^ Ԁ'&P|7{%]nԧtPTqȤ=?OoD=f'bZv+tZ{ŊYIw?Inxf5qU^; nMVCb<8pU,X-2'&!A9w=Yޙ8ng;z WyeNZx$܃Шoyt1>Հnf6?2QՂ~+0!S5_TvK|O]i?2lD::-jq U{}/j{ ɽ{I{˿4)̋WS#F\h Ln*R;=GO xL̓Ph辶5"=E#*^l 78y<J<Аue=՗$w.(w@ *H \[X,vyN7يgR-}t9s`6H)+%(Zΐ (˾{0c87*`S *f*$;l$;a*FCmg*vr>41)dɁן#Y&jT@=U,Giԃ%TQCd㬨Yd3^5] S(uRwt qXEr9\M@-0kZ&N`<,}% Se30+x}!bDЫ*(ldE#F7u|4>2(i*fEiD؉ Xֻ5 >oqLq\< }±zemD@Cf`~Madr{7HY>N483J}w % #~K&`\?ȑ וkOMyp!9P8 lep#HBwΐfvS^<bPrHƙ ӫ?#©\G'8c„:~2O•<uU\v` \@!4PAf $c8JV빜JG˚oR3|v$"1NmЮ@B6s+ "GWx3]qυ[R:<}%OYnl\v ?z}cZtܥ8+-i`H7]#RVꞧYLSߠ<(j{굜roQ ULۖ| nȎ?l'ʻ6P;Wk F kAxs2؊>>A~=Ր_[VPx"-(%xϛp͉ZU]3d*#Xv _U"'Lvn'Mmc%ۚh)\Õ]owVClkJÎWP_ze8̶W9ЮKJ?-{?!nF(ˁ7G4Vw(5I~f1wۅ B [ EKY=*.2fZ" hy} Bڌ`;vX) P[|ȌqERc^8´ qgvW|>"y'Ƕ>"| qKE8})՛EУ8-UWk3J.d}{W˾eҏ)ǘ\tc6go42LꇲUlEXDfjd2R~=*|C-VX 㞉)-#B乿9w _QAjCkCzcgр&ǿMGFmVNNH7>lȔ4(m[di#&yitoi^|3֒n]{Xi»[7VBSYr.[f44>D8L'8Hۧε͉d%;kcG KU_B#i45ݦS>MdA\l{Νa<9)3X3Z"G Kd6tRGO0_[96$nmnמ.)Pwg'zUY6?M̒1jU3a )e6 Xݕ48>%ymqh|菙HtC+0-c^#~#3@Ԝ&.y>τ Jg?~FyW@vP=IΉ.Fh(t*mߢMf\PURnoJ-dX'n4H_17(y&GE* Ё_z ~i-:h%*ݪ pr(hQ*)Ĝ?|߾=6d^T|]W_RsWWL ֳBB2G)ZuIYPL Dסo/f֫ N賢Bit@ʾ7kXgؒ=У+-Z:R%?뷶iPulY7*Ÿ}axYCEQ.p涗%&Jyzq[n*6 W_ 6҂i:o[OT'NI"Tߦc]TVUe͌t kzs6#*>_pK_Ȣ]"IԪ_2AL>!vwk{e~*юtjMyMF?姼Wz#TuogA=j&I&i3oU*f1  onԧ]o7? aXıʥ^p6´0QNaDh /fd8WZy')*޺ W`I qW`QO-;zb0vK&-Pji;ߢsORzOnqE0G/qw:s&.A0"at+y7d6.*Dnˈ>|/Ա'T 8϶IB-nO,\+8ѼXjvCeƴz0p VͅH-y5Z՘6߄Ä: r,rN|ױ'-1ĿGޛlTNR߁Rl+01"%6r tbj.}mNa?8ǓNyֆ^?Sbdp"չE9YY H ;SUY+@4ݦT1# iz8IRn:tв /?AuWueQ^a kJL #WU/ˮ %z)SfWlù3j8& W_y*GgC&͜*,J Qi2?-|T u$d<[*/o ƭ#hvޝW&̤>k|o<L4YIoݑ1,+QŘ^w)8i5C!81/?ϝb9V_TuFh;і5'p'R~: 6F42[9Xӄ,t]ŸfHT_YrhNA &)fgm-]F}*MSh~_WO6:6ynTα6 3u:E|@G(>ƄݐOs<Y,9anM2τ240|F&&xcgq2"#Lp,44*nbEJ[,+5:wG+g{JR\DヾXѮ湉nkAh$sHmt{: =` /S tlEF)e`;L%a6z@o~7Ҋv;[?d`㰣JwCBM?\; -fvDw&e,: ; -xJi j7eߡ|fRݑ^Qlʯ;kkcFgA7MK=0Dܺ^:3dl.3b¯aiBdBVeLw4E#0T(iPTy *UQL{:/5JP҅1`Q-9fa:#uƺΊqe]#ިJ,uB^vx#B3 ~OV0(>/mz3E0]XUPkԡ21cl  Ua59{+tVH +$ bouu._/![J Wg?IT2pwKc"1"߉8v0~ۢ<˒2D9)Ƀvi9[dP"YHԗ\L[$X&h >%h}yj0׆{¬ͪƴ :Q0>iQju@E+&g>FGI{sʯ7prQ[ E^lDZZ+8<Үad˹# 5Nh?mжAEWP[N7&="{K"0a/n\gPv>xFm眀>ʻ!5(%>R eN#t&4ڷWWwh-ўj!}ވE5߲71sZ8ycmh`x4|jAKj5  ò\_R&ք<: "2R6w ÓFlΰڌ{|榄 o^Ao8ڜsz}?#Tljֵ&'bεK7EսrZ5Yi*S*KƯjߨ]O%Q ҾVG4i/dGR1SA=xvdrlSvDD2%WJgՈ%漀X7Lg ?XEpl>TRdq{GRZ'r;~byҔv([Cp4fnkO_??#5D[0Xכ NHnۀA͎HN̓Jmk9i9%mmV=Zv$PI5yZ˦kr7c]GVz(_̓l6K蚽`}g<׳ň!_VjsV*ya]z[ BWѓsZapIW]ged^{Tvz!V#t f"ef^3$ %">Ou*핉Տ!![k^o. any$ð1FW/8pz¯cAct,?2f{;>J,ˬs*%"x]4!ohNB./o U>o볍5.xAzi+oRDX,OnKr|dhn[Ձ5Xz$K˜ i9L5EUG;:XtiVC{q \"+g>@ W[J\WVGD'AwxۋU"4llM=ce16-])iy'4 {J67k\8 <g3ZfHMdf lo\ђɽr_yK?*_?>̟1ssq3upk#.N4}v6~(maO٭pD.1O!aDb":PUj04bp7i;V :DI_ I퀨V5"oDv  rF=s:-Rm`3)"-#t,7 i5 ṱY'N$nL"m/ Y /-e1 * h1̮G+xPhJ)e=QbCF%]}[WՅQÐFj3UM" ů/;SK`54LNƱ3 F`y gJDݝJcdEYo97c02lDAа'7Ұ89Ho~IQưrE:rT՛Id@$xYJH-Rf].-fUG$N>d|{n|ܷrWΩ9=g~?bU{f3f;KV۫k8v cS64O@Mv\!?|*rp[e+'asj4P:z~o]ڀ)6e.oϣ:<L[,s6o?r +Yb束 b\e~)P,3ߍGQO,`970>lUfAM?PKC1^&+,%nuvola/128x128/mimetypes/document.pngUT x`APQux -zTSBZ(P UE@P)$ *B= >b $ " ~/k%d;s9_/%mvxik_9QvǺv{߲6GЩǜJ? F87:ثM=I.Fx7éuAޝ_A+xz l%ء5$ZV/?dIάo5RkS*ͷ)1hU6NK}6*R'.V#w-^\^NVJُKn'/ۺ7W⹻rQvHW~:POO\sV~lƳ]Ei-MpIuXT?#Y/J  c]Q\ti=]>SKX,O{m ֮j*) M ^IĸB%nȭ"tV:lkL^(rЉEu T(G#[&8_uUܑ9Ctߠp$:oyGtͪx0lYas |s!閮u.3l|i[1QTmBA̛mw;@T5Zn|$PtUf?tW5""1d#_<_2Y\k{\PqTaU"odzҦilpqddFV1ju7|60z hT & >K,[׸qIbg:L~<cK*Ӽ:j a:Ҹ-l@!3|cC 3¾tkbfX59E:}6X`PD[Rv{T"%϶m&j%-;/,Ɨ{>p2ylͳFыAn=SU`#vJ R]ͥDN 1Hv $ x"ro1ԱFkFDzaW5Yi{ir=!~ؾ*1bX3uƾϝ䭄&*WmшB[ v)[~?85'ðtU0z @w:}ol6*1%jf܋h_K,_OڌM טau mcElWx_w z 5%{5ӋkAeWsfcTEOL\YizK ,yEVI̧UX}1"s-]< flTMPLYma8E1Y a0yXb%zuޑ7H`k!:B=yHus̵(ÙhN~D?u\@v>e) ]˘ϥQ TҞ 9H%uNW7P6zCG\hmǡv'{vV\ηCiEE$YFHHr29>"q䚿G3kݙhKɝh5;e_[V"S罠 nyug7v4:P uB%Hz*|~S82Ah׻npޕ-yj#1'c}0AbI˩ڤ|rq/uoT" ilav$R3!(ܪ;"E0Uݡk[f쀚q+:R,z{|QSiBw[AO'X l-=DQ'cB2Q5YҀ[;-lĬw~^uqR&>7*WҾ hsNq[p6xb`DS̉o7fZ+j[ZR13Rt*CTB7-4dEex]Lݧ]s؎ ?.׃5mlWu3/' F2yOsԆw6LBzPYd =)8-9&P4oД/7¯'mu}n}N*-8}Pql8>je\']$:/EePU8/I%6#FbY\hюf`fJ{vt6 <7hgVO)WC,S^9:d>` b~o܁yBQKXAqM20 Uc^-FZ= yDd❲^G(\StlP {X-$ [7} & ùGy'w&#ƕgsZELO.nlܠg~!K-(Vx%80R-'-i-*^F[}e)A9ڧ,fefvF$zlޝ^a n;\cK \Dp^_~2VgV3bѺH=E ..Xmu2z;igT@<`Z s cGSUOʃvEk?{܆qS2wdOu6~h 28pxD Ƥ=lڠª}k> XiS9 !Cp,:Fh45LdVCu:[}:58 U/npVŹ]Է]5-.'!7B:; JOk\ug?f~]4I!]/(VM͎y#dmB{Lr)呶,=?^4!::݋qsZpΠ1'峮狯 X!;t4=TGgX"#)6 #˩D{}#;?\dȇ;øUF?_.VqQY5 sY8͞sudpw6ܿx 'eʨP"E-ݹYGcY&tKn0^ȦRJS +REpic(ԡ}U]0TTjG=ipqX}4aqjkTU4zY8#A34rHO8rp}4af S GŁʇE7Ec;ryN ΋H?c~1~n\YYTa:~KAUnvf4ʰqZK˜8|mt\ 3|: jt7#6NJn{@2` |S(WZREŒf[O,2TCoӡ)T*±MK.nP߱6NE7;u0H2BkcW+Of5D^(`C |[io@<}(lU=Q&~uz&;g|{K2I)@؄:tyX#C?U߱!Od16‘d{vuJ/uAs.[u4ȀLC٠*/Ꭓ7`X#ԍ"MԻrm;%F7df cM+Xj#C;駄6tM2^3PŹ0^w%` sF_f 8?O|A_9Ed ylAmĠ\T#6'? 5D6h H2CU,!@ߓ\[AuI Ŕ`8Kx"'3aIHC)v߲w6o$d.,Rpu[g:Y7o\w\x`E{.\c>T 'ܲW{`LŜ/EB?*OVvqKu q2x\7S UJ69 踍˄Lj lL+ <\x)Plt\l`}_{ĈFi5zz>~e#2"{?}81+p@2摍)T}[d%ucsQK nAyh]zŁS`EsDȜd(3%Ryl%?j #.~7] >)ѢzIZQ#{)LL`i0)F!9]J?9||}߾nE>o趠~ @xC"TC6m˗;)z6XtoS?2 Lb{f^iviJyx9(_iwf'c,()_} a;?h9M}/u8b1Am]Z՝IJtXCU]c뤌lͼwBvJ%5 HHOm}G۪wYŵɺlwHkztqZ*%bB`0W|c_hl`K>˴wAEzԏ7)2fT3^Sd>ϡFtFPG9`[$N`Gdo|agi5wW]SA4h{>CR _xgq!/hdu0ghE|eB$BY_tW'JųZˌ4Cm6zz <.aMz1+D )FT췷m)^I;,M8u,Mcಓ߭4 u֧{/~IA9C$:7-Iκ>qHo(=0b@bfkk'xϏQᯟIR୸ּ}[^veZnϢӕIBq3QCG==EBI`*-klͲcV+ݗl5ltI%C ]-+;h9,a<1 -+ĔnEAh tD) .h@(N˯ZY|,s$AF%,]|{%Rɜ%C\u5;*]K.5$J)CoCNOhOV|ɿzQXbv+#ba:1yK(sKdWfQ>#Rޛ2דUl_Xh1ҁDGFw0|/"47sbʞYRN$渠2Cxaf!F%?/#Gs3{& \m?6A"}w7`?o W0&dRH&~il=E! ,Me!NØCx*`-3r-9JJz08Cwep?/D52:nA56zK2R,O QKn &Mr-Q9@ n)twyg6Ax\vVtty/KvHSHjc( ?B^L1匿Z#7)@HaUBv <_+NM\s]}]9 fTI |tѨkAJJЗʩX2U.e8J? O#&fttLx5h {e=*\ع 0n@v%s:& dAGY}q=-:4cߌO()Fmiu,.̎r,O:alcv3 塶KO6!Zk%-lɐгr*9g}1J!}U(2:50&V(␮,FiA`!f)X ]I]zTՓW!X)ӟ:PqL$7b!32R=&`stX6gnberizfj$IٯzDVB;Nz@&/Fʼ=0V tD}S0 vx{ +Xu})ȘjW>u9HmKN$pSWۀ K[Xm1^{W2 װ_3fY|"CUGC.ƌhuK,ӄJie+]`Qp0 5w(-0csi%Xڟ%*ecQcsʔpT.RܵA7eժMoP;]t92H)x풿˓M```Juuz폕1Y5%7LW휫i6WKP X4S1qW mC[.dJ (!q UsI5IW?QJWMZi5Q xj5S!W YpK?Đi3ଵ;f #;=|_SK'N8 9Q=/(Aɳwb0L{Q)rXG3fBڦe钏XC .f5p?4pwx߹kWLLt[=!3N0z0̷o9N|f١_Hg fVE9 U؏^)$`)<ުXۥoXҧŔ@nu `&j6Qu_\(,<8HezBb.Aq1|hgW+\w~FYi{O6u~um.v>HCAdv9"͚ BAOd*>t0 Cm xShmFZ} QOQ*y㚊Z.=|7qr∳ TezρmVS# r[3&cHů| \.Kd2L@=҅[-N:lyC{YBݣ?|F* Fj)7L,a1eOq+t4̠OJ%܃‡;u)*Nj:#g=;a{ OLcFk s?:ʲI. UbU"L: $r{Q^\۰uڒO|'X ;Дv+^8F~=$lxiMD)@\P!e2뮶R["Mvǯ2hI4(w]I2Mau(/egrNUZiT(\};wx2=B!kGăVRM90ߙXLRiH]ROdlc#nVNw=B^?얅U(b]VrܒJMx<#SG%(iyFk۲G.D`}:lP!h-X~ص5P9;QxsאT9<SPj&ѱQQw2zyK{J|B os%T)wR-V9t?TlÆR1>Ru>yC 8U} xVv9 C*Tg@\`֨ |I%ݤg |M~W==ִ#&DuFН~ +<뫳To\s辕ke8eT1a%D禩7_^1!pO(U\U_A9$_t}퍲E s+PuMk٩9h_~;8*1pU^ : 7՝Egۧ&Yn+P=ѽ&93YUe"P)1M\Y쑧'_ '''H8F@NnlO}( 0/UUU_|VsΑyɱ0H*;}G7XQ|i___i`.S:O=fbzy}tݾكlAWiX;3ު],טLﳥڿ},PMHX&g3czjjLrGA>4e=[Q^_\%VYo*Q Ƀ !!L juCH<RaCxط6-%Uخ8n@O/-lt91Lqf߲2yM{)a4:=򘆁M]]ݚN W3gV1"~ Gf;8P#?:I򚷌 QA%?z4.FpschSe 쐇э~1T"L}b9G 17$v'[wKF,e3ORdx}CQO)Q;P{*T8ئc#,d˴P\O|.x\,B]_(6CM-A~oS1#1yK.a\0T[?P ;g =>sr=QD[=BG!ϫzs ?÷  q\Tzp5'>L. ^m@  KK%^0=@b c@(W\]=@IJII03BɧP8@4Z(x|"N$VmXziyy9R]6 XyÍk x\RaD@ٯdD<{2K4?>@(*2XӑZ`0h}`o-D^^%x]W]@QjC;ՕM_ l{ŸT WV:h>k'rw2jQ6{elzlԢ?ZfGMz{evSpqO|m ϶?K\&/ ߻M)rMm"&#"SՋ>)c%*01$GGNij P{E4o*1 Y K61{SLP4LǶJU_ s#Dol+|9IR*aaSP)uPsypbk"묐SL8|6mSJ/Q}uOmΨ^?Š hY6 :*ME3NDPdݏ2h+R`rڨ Ϡ bNh~!nGдb垩[cP,2!ͅDK6qqq_UӇ_]q|)U,Y[M!=ޛ>W[[;`u+<|Y&4\h[Tڊq,Sɻ 7tT@-)9Rԇ(|5 ϝ55 b^bWލ.O 8HR1m*'&:3Q[0`%X|qEsՑMV57p~UP 7ï_A:^2 ǿ"BH8W`]ЪEYYY&Zi*E gc|HK8]s܏Dfa`â#յaA]SqW7Ɲ3'`*S>NN{쵃b}^L=L۵O W309a:;+a2<@`3(,8ǽ@}滭s< ၌ݎ$ ކqbI3 " o͕ۘ>5ZidE?RW \srܜ9d-)w0ΏdQ[j>x|JFEJ`Wycb'CIYTqB~%Cx$sT9ALXWfE\4RQi+)EKks8q[9G2/+?x(sNly NuQKY}4jV(s),˗< u!ḃ^=Q,P ;!_wr~~HHASYFsTWt`҄ Cs-,_ &*j&)!QhLܙl Hv~n2 P-vkBu^\Lͣ$nnL #;^&  _lm\5O1$N .ٴZ? XrY+4sT+q)8ڤrr4{[ Ч-lY"J*JnNu*]=dwV;n1~xݎwY0"*l_V/ NtdwP긄eris::<%n~%5XWU/}{/Jr(i LOeTmǡW0oNNg2 B4JWd"mCvSϯNnp1b<ׯx /θ` k_lqZgU9*E&km$Kg6t.ㅄ )aG9FB[S\G+&bk~PQngcOW;D(>_T ́Q0畮X\ΛޚEVJF y 3lw?c P%.&? ~;]nV-cml2`/ zsa"NZG%E?6fLXosyݖrv9Em_Qoŀii\d<|C`=ږwN2Ȓ9_C'OCJX^yBFb$$<93A#kvVUģ . Yd1|1Ȥ=4i, frnhUe@2ٲx| CVE49@[5SeaHkD!/ p)f:N~$4[pK|;浚Z\--pƼ~TX:\3+ȥ;ZYWF iI町z'-j#-IU/v|-)L(G“X~Ǐ^2N+UGxgqJ|+MDmL';؂Po;WRv⣟jP:G֯@o|exR8A?_R:'E۬ !zs 8udѧ`G.>;]f޴7q 3A]Z_aŒKn8lGm?2mu^Up}S1%[J̖a'yqD{Լ5kks;~#_y/LY(nJـRҌ-?5JFiOWΠ%m%dF_p B:{pJcEP`ɟqZze9xJx-xbNrjf6Mq؀`d]$ 7Sr(qӚn>ëbev% n$^E-d6 Eޤ>.SJ3gqX MeO=YdOiАXyo}f^B//<]0A~Ç5foשmF1`->>#Ϯ /W-}xKFY"i뎬@vEyi`d4?U)@eƵuڗS.zAwh_A},6R$JWo络}փZ,O-6/)j4dz3{ vMw +'__M%̤tQ UvKW %^w%Qq/A*.}I Q9^4+Fݩ,y0MnT3sq6b6.ZmQ(]f9˜-MfW/Ē\0{˭~ݻsnnj*zstKWN$̆o5)qg%Úԃe 0[Ӑ^;t1ΦV Ejm^?1D[o>`4dE׹9Bh$y ncolbz?*H5ufAU>HA5%W<)"ӀΕ6zQ**♕ϨXZ.WI.@ ?$Q=JJ7'VN+X,=vՎhMz 'Sl5@A}vos@'_/9VwJTQ?pN{Kď|AtitN7U*#|&ʸ/-^3n"Og g,j:_LDmoήVN{`oL/Ӽ{* YJVtg ueR*=E=<~ H+~0Qu~p{@F(^-Z>=ݝGJ'!J.|*2Qw6\LϤ.uW<|<y'B4_}~JѻWyS fԭMz=8Λ??5Ìr&XWۢj ~|s\N`/콶wVBu8NpľCpJ=[ұ)p,H;ښUZ!'vZtYc EoNeJP͛Wch\Q9u;\ZPezBFp6; Ly~Z#o.Z{`z7`ZWӅ^[mZ%LYh˫"pv;jλ([& ޛԤbnPW܃L_` G]>&"0ڊˈCa(% @% Ί\'H oZPWn+m{] NbQ~کm{, 2α^ӚbH^ws/fӗ7]|.1zqeg2W'lΨ/Їts]=:Q&S譧+#S9K []i2̩w6z`~6V0Eu cb֣\YoZ3YScEo&,2L],p32 K몃5Uߏo;,.#I"6Z>߭gU֛% ْϦ8s{M$hFcN NklcRy,)CV'#}Ilt4Dam2xE#t i1<@[/,- 8&4}Ҳ}cօ]Aį}v8b(o,qQe7 lRm(PORz HPSKa^)0U(*xY8U55$ `i.| `7ND[])aǦ4;{?7݁O7X]z%/0TV޴6 b _XjYg1Qf.2(BC&|⑛G8˴AuЍo\=8tq_Y^系h(a4uoЅy օYtD&VsV3qχ F)?+L 9FK!Fɔ2RE3u2 p 1YVmo6\{b1>{oòDAi }A.O96m_8rW`Új9qzMtԀaUߠñ:+ZjԻ"jb1+nTXoY5ʢrEBZ(ye=hN{ۙpwўw?[wĂ|N')jϗiCVfrUD?f Ӕ{$iyѨ} %w 3Sd019iOpb{^gh+t!dU(L,&d{0;mY*PitJA-Q“cnH J/r+ݬz&焨MnU(mv-7~f@Uًڱg?#lwOOy iEb2[dCWwSc]`l,od/7Pfd'LYBiXJ`?Kï-ZAϯe=6R&uC}ނ ;!C q:($tOu&r vw%pZPrӄAtx ) w aQP.0"b,HDmbذ1_Gblib4pЄIeVPvPBkfs'b;Ef[l v_ ۂ<;@} jf4Ak/T1XOQ:zUǾ? IbMx2*> A|S.V;K-t~1#_zᎣouLi{{lѯFy$~{υ3. KOܚl7Rر愡p5F=p(E&9Q{9!6T <:~#{3}9xd .S`$kfC 8(zYdEKTޘ'f0Xve9e䵺i\$jH4v;o#`#qi|HG8V#PTs-/!sR&Z-07$uӰ tz ]ν,_ aPRt'LdtˀˮS2 i0U=~G Q NݦglJ@/GgYE$#5U~U:)iV攺  vY˼@Vk~%\NW]НɇL>3RWY}T`yj V`5V>NVi}meg_8դ]tgu'wKKE5ҳ;N+! t?ӯԑzl4)7i6KXp$[T@a8QBiif}/WK%,ۡVSA;EϜFI!KP11Vjh軵0?Be]#ۃQZ]P/]]7 &?+-]*fɃw?_Hͷepdug'ѝH|^v0dn\ C/7L<4ׂTEE+濆SW@&FJJr6#X$h͠wJ]>a's 7\+J8s?a_pWӿY:J1iW;ѯn!«)}왇e <4~ĺd1{&Q]D8,/:+⧑wMHC'? C3_IG$Irؐj^,,V )eqK{C/GT[5/艹ˣ `w=n~F|/Mm`($ o}Y[/RB'ɶNl<=Tl&4@_b -CkL ;DB$#*goEwEJ2 9yI3x'W&jQ~ɁpsDsEVVV6yMl`N&'߽k"EO)!sm&3g@O\\! CTJﶞNo/"s Ƙ`)t4!e@ h\N?p rF7}jYMJOJ@2NJ -!YsvgSp_2r;&A?3P-\'Bl[Jizpz?R/:=Fy[h{0I(\0K[jiꡉCd6uԄTgV!PKC1X'(#nuvola/128x128/mimetypes/ebuild.pngUT R`APQux Ez ,++FP#"4M l .'4~ \Pr]9NG%[YfzK_W|.ả$F!ÐK$j3kX w._NѻN]8yUFzoyht9Z?v18 )}OISi[)Oȗ2n˟]oʶZ3<]Җ6Iҡ&7n5B}#<@b|⧎ =Ҕ#]\t#m< ຺-Pggv[nv a~u#J2 ,/9ҷN:['(a?lY_ NBL?7$b[VqDYVgSV ND*܂O3:´N`d_dt _qJINtbko0Z%>T_45hSL%#z^`0TT)D3C<>wI?X7abe^Gq| .U3Ab]\p }8Y-Ms\D…]bKGЄ埪ɋ{#~ U ) /FnױZİ ~~OA3@n\r'ԟDVWYuHx^+eϞ"ʦ2#yn+78Bg)!XDIbU8*mdp_a{tTwmGna5aW(Sk'`=Vʙv 8W7QḋźK9FLF,B"64gET#Y6(PU;[({|yQ&y)!VkH~fHMr+QKs1>Eփy{Ҩ  qaoѮQp"/' 2hǕ4J91ز;_c~Uq[jkN cܺGJfӍN5lqeP|@< uS|`ûU1rFb)jOXYW E(K5iٳC]ٸ+QͰGR>ф4@F*QQ>rLkr {v%'UZvUcp1@

      88~wB"cVa z)p 9+JzJdr_`q^L1'tJPv+2@>G Jf OMQpQyU a}Uos֟sg8lKT\pf$#ݤG$5OzaIhd5&^fB~sBs<3=ɞXs75ҪWDvCsG#,Sz|Z׋f\Uyy'@QW/+u]ܙs`5<׻Rl(i*OS/O>D+)SeXM7Bc<)4\2!*fg68Wy rWSo6 ^JPAbRWs6@'"H來~~8TB)$?tbAYApϒ_4ˢs,ʦ8+9B {bm;ǀTjAe{ ?d{yg r vW%=cЀs]$=BjS# hݥy8Y㉞%Wxz36=J7祽N]# +1gUW-Wm4zgQn;HHӰOX࿴v\zUN\G] wn85HrT9+i[xȲ5r[s f/Zƿ F?@'2眎EE}o=|_wm^[ٻwnb48r: bxmC7# p-PT r%ws`P2(s[7P||4U'5: 9x/|I9dc] ۰K8]4IUp (rN+f :jObɏw3}.O]'!9-:BgUM0 WןTs;/܂=b\5q~:Hfũ~2RߖzK$g""\2nGm֩Hue7tgzL'NhK]C_bӗPaJ?[Hcؔ4k / GvuYyb{*,;iGWܦ|dkqX{F[\zS"5~wУaeV=(ǚi7>#xTsz?RT K? \M&%hfTޔ_u*/b Gm!m@l |6#-@0SruJAVۊfosRkMb^c1t(Bm*l ,TҤ[;Fw-h+7zҍ=)ŹZu={e|V:Y:_a&&$.ܖsHiKiG ^pvNtnшJ?!"~<{,!rfMU]B" p/N+czv|+#cԘӶ ՞HWyTӖ24 C(@"49'y7X (Kk)Uk6"NJyv% |KyAW'Ȧ{d,dru6j}z"TuixjX=r4)b]353co09\NQBZNK?vL!*"b>f;Ìz(9Ia Ya)~.yyNX9*rGH;E~LPɂ@udZJgCIgzwWe֙)Să/1oAS!|ع迲Q'<ƵʍKN![R'æPi1a@ d;"M8i_Sb=~JkF9ޓhO )<3NڐoaWcMDqgwt~_.ƚ ךHM{Vl:؄4D~uMJ᭫)T>BNX ɓة%KV^l#áuuVxM+}(|>=p1]mI, Ɉr3KKK"2UXǼa_y/P7|dSZeZ;ȞVF"쥱{Kk/Jƒ4;do.s{<6TJm|76d7m rn7S@VVD4~ C)))O#HڬdzO |m/_G'0+ncVe^FDڏy{4+;[ёj0-XlUAt{3N ^Mɰn|6%kx݈Eqџu4k&Ybm r'Hm{վtܑRAca%="ZpVw]V`Y +5[<= UnJpd7b Äva0! ]||[Ut^𶺡#/o\? Jdm[lHHnoF>9i21  ̆\,!q77gjfx:o+ B,7/s'>ր쓕e5yXq/k̈́U`xE_&ne}-`k^ㆂA=@ Ӗ7X۾=(xjTUeL݄,n7:NW_ybh0N).m{ėnx4. QEW}!KC"w=.4 xNm-1S噺n%'_nog3Fc&Irf*!Mdx\n>jgԚ}í =o0~ޥ&mcQloB=C}4tId@A'ºةg2ɤry%[-\3>\yF"*$ovqըFnl]M:?@$&-M l*D4/cؒk|ԄC40$c|Fڧ-!8ؘnx3U7ޭ6e^)MFw sTvG^BO/' O7+ 8 [dH7G.#t~R6*o`G,1pdt9?ԧFea+"47 ;!r7QwT=6z p ܰOZEf;RWǛ= RHk|@V|v0ޝn'6#Ix½?Uy_@N-UP1*GtH^JPyy6n-N,jβtih*J//9zVSL2x}- XshKĩO;-Wox^ nFdi%?f!tv0!h>q A 4"sщ6lIULi<#>)ˆʏ;N3'zNV%$?;iLHN8gP|g-TZ:v [>FygxRVJ⠥RmU=N ]+jZ[\h7֖^krW;+j2E˸5(L)# Nc'(ʊmbSoʼ jIBkLkւl 3a-(k'":#ܺ6aP]t DXu >\I6!jP՟@f7eOa2!wz56O 4$uۡzDȒD\R_FLzL35,,՘}к& VjfJZjpŲP,C ϯħ©=,#gun(ceFd}MjðZI-E ּvǧ oPM3+"}Qvթ/脄A:D$L;vzq{۳;۝Y,I{hD\u_:^2/MLDQcey2F!56qiyX~%g14\&مOɍK6f7 !u tDwamToJzLJrlVf M-/]T% B5k'i1w{Vpj ߊeF0`iR[ ftxoYlczB6 45lj1} hD9[_N#J)en@l}:cPz֮0PCSYII ]?i(X#%pKqiZY߁k{ Ay^P)8OwB9wrիW ]~|zu\nYqgo<Skd7TAqŀ>o[ljnkΟ1Tծ lKl;"+rjI6*UtDϧ:2\9#̤DK{{dhʴ*0%_>FشH5MndGIZ;^4@rs#5PKC1Rf "nuvola/128x128/mimetypes/empty.pngUT Z`APQux EVkXSW=y@$&!(D޾ XR5 bEZM@p#00DJD,>Vmk PjP~kfj]4gd_CGIP(}Y< +HSD FFV-ud2OzuN"~XtG d8= ULOG}h`E9THUN݌,`z4J8OQa[. !]J lP'z|2z*C,eLĦFL2V=# s.+B7@c@9hmvVE. {Akl<b;"9@hRsb-;G N?a+ 6;¢6Y;N(M!$Ə!2Y>x3n_R\R4%O\g3s6+;v胉VMA[ƇcNߴ=[n]WW`OdXͩP3w1U oKoj!&-Hf>gx)cq!zJaRk߸kzh؎{e%X<#| B=ne1޷zSu9rG姳qǺn,>E:ONI&{[@TC52n6 ?| _X~K#ɟ? KAK. 6!;>)o.<O=UkY ,kɗ+&9AuwsRA-/e,BieB{wTd8axI 4WRޕ nhkɣ5?]%3 WJݎ ܐz?ʉi,O~ a6:7}6E&k7o#J4JJ~{-];*`6hOjpdy3yClQNt|vq6e3 vq9)IB tKѪ0 yPKC1e +!&nuvola/128x128/mimetypes/encrypted.pngUT L`APQux -Y 8T0v1d˒ "f%VZ\KL e((KT!A0};9Λpє@~r/<7;0v\o]5}"BcÁa|(q]ADk6"("g>=m-f!Ikg Z6g9;;֧{8EEEM(5}7߀~O>.qtH3/d|5{ .Y[tww-|=I_S. P088 D:$hIvhQ۷"<2իԏ#}SSS :|Ja)kHzѽAfSdDyӱ5FK4r1 ӆ}%9 ZB66؊^t :{ʍ/ wc_-)*+z2E3y==mmȪQR/+k54W~sXt.Ttɨi7*2d3Z吭'3x}c MC4\"W:nSJEug~M| Db!:򟱼.oqѰ`9$~MVIHxDȘ#vqWܔߓdPwdN$958UY u8HH͚p{Q龍IU;>&x~ZYHf2z\^fQ`\g Ks9Tj0}*uZ0v2.>k Jc­wéH?X;ilB:ĘRv|H!!)'6(٫HZ&E!) pt*Enˏ;nMo\lmue_R V~Qu5.\6}nny>nˢ/ݷ/gAn+{K#tapA^iA˪q4:I˜2IF^ՔN3n=ػW 𾨱*{n\3g?[ cY.dx]OS`4ƺg݅.FYiˑ.Z>[R*d<$+6ӎrݖɍ6b_!aGUewѭh@^H(x!#3d.;{raȮ'ӤԽ \J\qAG ۇ0ȭ"01NvvJYMy72_w8)Q$nzZ:__=q(y++u& ,25NZ 1umyܓEHvŠx})6O|{2.ZU|@\S7硫V UGQqh#sM|'놆~j$48u߭Xlxq{\/nS.ƷA;ET򻅯%G5/-r"U#0.ujMyXT|]_EyE_O`wG{%X^.,:%W! ^P.DuVnE\BCLO˔L{eT7AkjQ,Y/JqE T;NHOO64!Q[:?@B "aJm/ml6N*Mz`&s<mucO F2 XjL^pU ,+:N$ KU 'dng"x|N 0u⥟Tgs9$x]<$%vrǞ̋Nalr7tym:Xas1bv@4@WBĉ®`N ;HR ˴OAjdwFi spkΛH;m #,t}pT; #wl*S`cOe= ~  N v:lhE &;OܠN~RoKǛg7|~)msԶlv䔦j-,&8TdagZ0ZwRݝ/Oʂ.e^^u!y)2B}.VU % p=5 j"2rI/X :aqs͗5ZBHs*P0BQI@Yhu8HA,$֊~ ߀y@3:a\&8t3J@K1Dd Ė7JKEI<Kic`?TGg +L\>WZ ӟ.9Ju@!?BbR 0@rb,bʖ T#ZqFA~l)Gtyo}uYkeE~v4XW{OyXD:m1 *Z;ԡpa^U-" TȠz{HCCㅌC$["OãY,9;i).ױɡ^r|]t 8D#*d?aL5Jq&p;$!tqM XI>.u-,_/ꁃ*t8GQB+֨8CjtDM<,*jGޞlS&Fdžui )k]@[ ?Ě1KWRP+mNwb,jGe]dv |zx^0+~:r}4:Hpw`I!"׏~ytC{ҢzԶ}y(2|p?q[0<Ыq~لNyQ4eLJJ7ywp$?>k4jvbf+3 mC\/m}ZmGL1)OzU#K;ήWg+s5el(m`v 1`25Db ^,Ҩ ^Vn|Hn]J[&*le_Iu[J,#9:iV,EGQ{ z?qɞȹvfp&WN=b688.ѕBh[L\Oݽe\*r{\k_V> I`%{tm_HSoBHX(bW/Ɖ4RYXށLYQ$].5UY>* *\vZ$H[_]P͞XNix_tu)z.>Joh6ǰ:  񠹙A9WHmPwGiq<[ؼY;iI{ъf^Α= 7<R+VwyB${'OTKV8^qQϹ1NreT0N=ߘ`} "[֔!TϻfTY6ߛmTv■3vīVY+N]F!47r[[N([=zH"2lǾ:eWod`p7j{6]K1c +Ζr MJU$񺑄{O1N?R?V]Ӏ `j$^<, 3 R%ًߦ ᮜ>~W ouUi49R*Xm N"=f17qrsJNjL#m5ֈMvrVV"x_ϺO(,EsVv W̤F̍x-7mry&cT o9%% x5c{EBx`cccHy):CHWjŶw#fUx#P 1prt$=Sqjπm5Ep Qr1v_ҙ(H Cm_sы E25;wtl UAo!}zM9tziW[3we# @FB??Ak$mEa$/? XxTYf׭}2->\$Us[QU Y`003/ДdCbBQ䍑 V`':]#|9%=}]=U@ 5<Mwm4fPD;PP-9" <p>pPp`z;ΡOcy.-V:=c h'07f_?]Cذ3EV1ec[0=8x*0_twf0PKC1qT"#&nuvola/128x128/mimetypes/exec_wine.pngUT D`APQux eZ{Ę|xǶ~>9uZfZ`C{A~vO]KROoϦ)+#R6K9H1ذXFm`}9$  K0[ ,8~Pu`(7q֚W` s(wR~ʿvZ]qB >}s8ְ-،ۨ$`!'EyХ7o&=KZq(SSS jÆދYOqsOuȸ[ caW,cZotj@^t *Wh {ug300@OU~mbѭr@[2I㖌&%'JC2;qqqD):a3g4>000C"Գ%5H=V~dXcZ>IO* @%>=s320sh>S=}y^:~c< 4x] f(D*ȼ; ϖ.zǨcEvۍo9k0ZWKukXu1`k.`HfCW׻ kG>{Φ]/sQDҐ$"ҨQaE}K {w;{G[嬋9\eDxoGXVJY ~E>;jFn5mGlAOTR ǂ$a-QPr\d J1p~%lV!' .2~i#C<8Db Dx]gNEhx±#\9? \9Oe=Mb$ 2+MIԟD~Wbڴ0QTϣpM )z-6GY2sP+m̶,nrʕ5avm s~l  WG0kq0@튩\3fvS4A٩ʥ#S aK3=1$冎<. ZYK gFWrrs:_EUe@{MD!Yjr+/x/>1.ś3dI!s]QN?w]s^Pӗ]>' E*=B"Y}>qtrfF-C[0j"k5u7WXIϵl ")L\ \𙴙f')}T\B!dǵvgj`ǕsENn>;P㾉tU3%AP$r#-V pZ45(H_ :e+8WdwpAA^ss4IN[NXx3_DDcele)3CUFzV"!z3g9gr=E7ػ$M֡2ʳ>GG]>vPgw@o) &۵n8%#@m= o_׷-yo|/ҥ%$wrg^"̅Qw6o4x̺]{i]AC͏E b>y4U3)VOCۡ}wtlRe4(et݅HꠏAHx9;9|6⵸*cgn\8oʋ4GK'bWC9sر.QY*p?1<'aZ9LZ>6>P\+j}社sʼ[>ooF;=ٸuk 8I$mTf!C+[t ?ЏNM:u4M@w\qlVW}OG$8J51B(Xi};>zkĚ0&ȉDmm[m߄)YHRƟt((\ QhQ]R j5s0 {D1N >y'FC lruQ9;/(W$s^8Y_R$]t `IIjWԶ>F֟q&)f#\I5x&,Tl X&roދ_IuNO}g\ӎ$x*}?LcFUC܊1uS枦 k/DK "ex f6$.-COggiȟ_w8_@" K>5lDX.JNgIjTPm0B.-@sȵ[,ǵ{x=a0x+\pFt+LY*yc)<6և~"܉}!_^bf"[,E.HD"j3c/"76mƒ]NWR4SuQe/eB9jv3ѲErSPuVXkfUyyU2ZBFe?cxvʵt8=bSpֱ\w۞*q Ac\Q!j* Ib⸜m5-<<\+4z˽5(mL13dY8\͔g&õɪY[=g1vcpҖ(?=hVfp$Pj?-lض('K!Ru}KqQXV_׀{HY#{r/$WG3tkZr} ?6|d5j< #+FU-˙CCºE9o;ɎHL<@큛'x`J+G675Lz0֋?X׺b_H)bF=c8Fj\{C>:6il#<< GU =x4EH%Eߕ0\}^aB6ZhU~ WA[ZFuRʕBI:uӃd"՘$m0{>\ַK+F6üZ'%F &s7?~Z&O.DŽ-n"$l*t6k }7Spz}'МԨCSMEWG~JBL,fdcŒ'T!x螔}d8KN;QY\8YT6jS]NX1L!)1ͤx |-=1N$ΥǹԫG# t^,u;s'^wIVβ̬yKLq}E5%9Ws9mA ][vvbϯEn~5Aŵ@)m(u}ep;TG\C`V)A|9>Wiשּׂx))gȖdW <ӸomM؈T\ gL{J0="6 <;^Mϗ^ؑ#@Y mjon8pSU9댥 ^[>3*mo'{pm(MJ&l+ȭ` h֖whEe"XQ.L_9_-&/n.sOa` 7ħ d~7*7̎}SNpNT|-6&nLݠRO9ZYq[~\sB(^guE|o!|!Z~C iDJ#b[XL}AgPNwףx/taۍW3{FLbߥT_b&G;A*쵔J=b7{V7(Q{Akz̜om`O>U 5vd \Y:|y/+ͣnيg2yLv ϲ,^rd? fw-.!IDḾ2;ϛS1K%:60qCg{'!a_'ụ0/ut>ySchf,D׍ipf_Kc& K]V/bO_,hKxo=^T|!)I oRKӕ*L{-C1J=cdq.10@߷ ჰ,W6W1MuE \=$j!Z)['f kF#⧡Ӷ8y*g e#&j[嬄VTRrp\L6hnֳjฑb-(e`.q&-CskJ]i(s̸wmD.0=QȲ (ʟ ilPĵ'%)Ii}|#P R6L *f=^tKtcINSg.u ) GȨ zs*|H0Rp:MbǏ'so! ntJ)q7OBikl0pn_{f5 G\3Cw;Btӻfw[ |WfȺ%Q5IO9iuNOgmMqc3'ׇXCMQliEB헅KIlJzݗ7l6mj/WrKXKsT {@6b,35`_+ڑh&ebr?l*Lo[wEZ392``PcPZ+9X<"TŜϣG7!Ng-2rs,'TWxj|ـ53N==I%U5, FD$t]69R&˸z-E bVXFm`85 2gVpyQ)>2g{%6HDgIK1k{t,m6,(;V%6Gg0جC;gr~"=yǼ,Bk=T/ m嚽JlA?a#uSDv 1ycy}GX'<\sƴn(9H>[ ?2)~ =L3`1XL۷ iM|&1:A|?O KL0R:m0wȓ*J.1v~4&Qژh@1yF?LWq]yr5dHGtvdroh%s5R1Km;M-" $ʱf].k/CJ&NXLXRHl;2z38 {Kr52'zC* N_[ѩ0MWE13ۢSXr Μ9O6w- w^b샟`|!RZsT4]fj 96>TuT*[zk'ZZ^ 0%kq6jXK=3'Uż.ws98L pqɄc5H{xS; qq^"W: t%>[4d`&eV*T G[27*hxb'C?\On,[㸑*/ٷ ԧ<'lO+Α]Բ&(q apgҐ.LXPδK俜IQ]*!1QJ̑S|<͇)Z9XԷTMQZGg3[`=GmQgeox_$!HTٜ"$ŠjЍDje& s+Bf3NzӖ ~z:9km8 vVw198j]ItÄ*iU|rvΧ͋4@niNA2og*gЏ]?iZ߰iPU+#wE&';*[5N c?\CCqFSU)y`K}!EtTu;8{Qf3|ًO|AnBRX'OfØoDK(gs9:x3:dkx{i-[CsҮ^1*OO1 ۞0v8~Zoܞ7T9pЯjBI鰢[dzY0ĒLrc6i *6t 2ٲe˸/.fgcPkb!?-\Ӏ D!ʚC-Il ̕Ń&e4LIILkGG4mJ̵6?l쨗gmo/ֆ^l'h@t7S(VUU]^: p9MXJdrwחжi t(1'CbmgA]guT:Pɉ9%^Uc4 Vnz@{ങ09ѭhwfT,w9,WGLۛ>7C&Da(IuP\A[I`ɫz] X|OEz%F}Z@~j h%F !u(߷%iyW^L0+_;kGwdn%zK"]TʿDe$LDk.w[Rp){Ӟh;H*"*DO`APat<:LnI+T0?̮/u~7p^ SdsW t8"8_B@fNJ Q FؤmRX΋} aêZޥ,N? G|4n$*@ds7J:++Gz^)KZ-I\7lgK= 7d1=X¿#yJJFXb ,ez[.t`?/~>V %R^鈥(EyD>Ҭ6,[N))զJNqrs;Fۛ"WŇd`ә~SA_3gP>\= ǃinv{ H*/I8< \ir M]mZpV5M7bs_+JFb,_N.\VST j~l(0&tb$<&)nr͘zk}jkv1[wz*ܴKF0|э!Ş۔w_G3$ի N{'+`R/պqA&嚑ˑb j6lh|E/P3 Q4&S1bƮ]z{3v^;iT}Km]j<>=)i SHJ'ffMs &"‚ƃ!*܄2TIZ|)uw!9QR d` 6.SV[1꣼Qiuk-# 0w*f&K3ry⡖.QO!TI!5sG2ԯx*0y-َ $$؁wML}q\(`R1˞=8K ] b[Q⋶˃k%=b@OWXCxov=* z^ kG=&D;ètyv ʕ^0`ccN_smw j7ocQ)n % WE盅`ms٣cOdE!WiQ+۵V52+x}[kbjyq%K8Dk\Ael=Li꓿K;' zᡧ:e\O>; &W}0Wаi&ԍ"^|Y͙T.r{**G99F3 &!c|~6 zm{ X"dƔu-;-"?x,>]SqeRna 0)?L"z[ZsZnjv07hkR^ K?]%2y>]CzƄ(K6ˉ+W}$(2EX[##s9u~Q 7o.(fjSonx0Y-e+%ZF zA5Al2+ Dx"I%=:":Eqm&I?#{x.xT "/,\vtܠ FEA[cETVnu 7 ~ee5Yge.)`̜ īiqx33M1GE}?zt )ɞh4Tj v6ŏtZCKkƸtelC9Y\TҀZ/#eܽfY nY2-^Rt jĚTZfff~ sN#7u^jZV+vMo$5ElT^m?'$ 8i#p؅IZ.MNN:<ǩ`эJ'jPڢ%5D`|\MR )UeJ>=MWU񻐕 ,VZ {@P+XsEEE3ȸ"IB?R퀚NOorwǐb\FZ$v t#@b7Έ!+G*=:>0&*ZnG}_"|S wN.h,zNF/3iԁg>aaY*SszH39`;Zbf4U?hrjBfcBBzwŹNȺoBqCzA( ?~u۸ju 0y}ӋTwWP&C)MoUQQy"ņ{fx9}b|-bqU$Zz-xJ4vv7;)&5GUMi+:N0n\ Nzham几㬂4Ɨ`' ~#5C(ۘww(vgpmBzE­3|L2s`ٳuMI &C(SŊGH 9F bػeۻ6]B/]PUgњom8ÿZ X;Yu#G؋*.:WEw|Z9el@]xZrAk?(X ­-Oä%6Ri*(4y(Z~&+}N(8s1[ʟ!L)O8>Xwn$4555:bTx`m?*TjSuF "^q.݇,"}, c7ڗV|^(,?>envJ"~US F7ɒ*"˸lr..r907 l\i4 ۞Y U Äk;7L->sNdҹ}᧱<|-|d\Jw+J~ i:O2dV>3d''ȀrntC޽k5b, XM!i.6 mmݙ50{ L9-ιYtT?J?wRs ҏNٯ!Bʰk6EfKBK`p4^ŸPGMϮs~.S%9 PPuy>9Ηtqw Ɯ S>[qb.&s3vF ilW˓CgA.rrN-Z``f)y_>OVJĨ? %9sm03`UyR!3f1Uf ¨bGu)A9]^6FnR:N ' ޘzĹsVwW @3=LwܻIh2+b`6G w0׌ooK$r',6=5uKlpSgJJΟj`dICyǾA߳)'vCHJ o;;Nv!Fo/F,/"̱ogAsNG~ ljܹNkm=qwe'h$2Ty, u 5%$4eWNBdp||=FEȼO!U1zwhksM߾Ǎ$]AAy=xoKMȒtkl_>6jTLO5_-Y뾿aU|0bF5:|Oސh͗c=x*X|'ĔlI 8' hktu?8K5 ޘim1e[A]2;$ʌ0ŵϏaCٴ;C:MfLSV",nqb\#JY0GXava4$=&lqW,ZC%x\rB78==? x>i<3 LxUm$ۆDv: M_#q`{LvB9%!XlWb!Ckt'iD(W\>rd`GNԐ3Ԧs ]i%C'Ќ܍TJoy=dƜD V+8W/@7ɫ; ?ZYZ)FgSEuL1X=b}, ZZk5V8Ji$SQ[Q-$=19x !'PM:a%G}]#*adjsMa҅}OV홠YXGd&.^ ΩmzP0aiՇ)_-x|o:aȿEsӾHU>#/ ,UQyX,_-i%Y0~Z؛d3on`],- ES4 nk*4_ r.mPNܲ(@tZmU&Cc Hl773^(/:~ο3J,BlٽԾRBYvo<9% ci|PXL|bMD͆i.}noB!)._9u͐5$_mvOs%#56N??#?+{jt; guȶČ/|t8*cZ@y(hEjRh.㤴]9{=f+TDv17o`pN](b3ݍҊ{k 6x% O 3W5zU<5(q'j4@gv0!v°G|˛s" JFL5 6/Jo达y 0@jx`72>ϸ<ËOM2Dezjz}Sʭ<5* s|fMœ5D><]mq~d~/i (ɸU.&&TVN~/]>`}d/k{"ٱ5@ 5"^;pdUZ\z<{C `T*5$F okP+P;d۶Ϯإ@`?zl˿;wXesX|XxNSzKH&^S֭Mh8DHi+c-ޜ([ql.M:܉x>APݴx 4#7dA/4 0+\G#nC 8l ">^D)R7tq`"7B(0hO[x3*54c·Qbõ"Zy"^/DxkVX3 inn Uv0U''RƳ>5op4t-Nh8٬RaIQM \BSLO###.;m(M+@0w8yO.;x~,6B?RtMvn>]nSbں5 .-/G˺.| &A@Bwr!?n: ^ ` a+'dKn2SF870*YV DRd{m$B t~k4ń6 }yK8!{\O/+="< *s-|}&vry0㘌<ؽEg WWp61R:m%Z]mmp"P,SD%UHSK8gf!Q:GV/:*&hk]&Kָ .|d<ڌ+4uGh"8BPDg>2V'j|>JLߪ⟩Ph񱝘M /^9#^,WC~u[r[l= y qn&Z ;`ƛ4 xdv@ۆ6¸r/SljH]'ZGxU(ʶg<EJʖbTJތ-aIː =Ͽez\\!۪8:\ӟE_52nLObKHF8N^B<uJM(̈́0!T~=/XℍBl Vvй]+@ɓ* &INn.b6ڒ%YlCMb`OH/w6I"{u2c2?}HL>4gp/##ގY~=&$$Dܖ0Pڂ\]𑾓Bc0%6%A 4zv_׿x}{s;52}vFnзa?Յz~YW?1|4gB8u]jk:E"-´`XF_gh 9CfaZl4_!Su+ ZXޓRЖsc!JA#'AY(u݊e0+Y -wC Wځ!N!hT&i6Zc^9!8 h:/LS?T\lD$Z߰WWmCv&fLUXP@L u4cWqjҏ2-t.DcDMNga[#q>_J&d/YZh^5$LrYd&Sα~E=sSy&v/qm}K𨏟E\ysm p5d[^^ (?tZ l 8͍@ıe3YGzCwT劒&j"?g?j8&yw<ض8m z"1;1w/$1 o|z?{S[rt 0'P# [#Ņ Kviq~M w5bȜ5CɴgMP}V9(\$Ueb>tBOʫRIa,ۂ"hndY#g9cinai61Dps@A TE= OIw:퍾U9%A%Qⴵf%vI4 4c,USAԨHm1Ȱ~1?VqjtQB-`,#Oݖٵ TX8TUfkUw2b?(mR@EpQ/Juc\uRJ GRNR0J> Z}v%/cg')$˝[!& af) L#k#9<t2s~ux>ڇDf'+7g] ~9кf"?5464";]VqFo Mg0S&~||˒ ^oɅu:t!N A6qoxyq!BS8"c~؍@|Xk[~&ڽ:z|<0ܰTݽEXְ;j5j8z)n򢊰oHnKVކvJ!pDZ8Kfk[#!lC^Yu#C{ w AeZ n,em)'E!L{0M#('ӓCyh[#H]N{kux;NLf[,!C+ʗe+dH F@?+̻9Qd#vh344{}{ ] ղ>%U75,E>|Q ã~GZQ %_ujoͫQR hT n h\AQ*E R&~28~2蕞-Vdm?= Ơ >˩6<| "#g 1Sd$~XINJի^b` 0 sNкY\yz*=Qza1z..("| 3*zv&H qyB"%B쳟_m7,~2cS8~ W&Vt.,߳T 7Gb-~b'`=dqM9NWW e՞r81J.n{Q]ՊguAA&{^3=.W> _ENU=M i~ϛ[%e,:7sR&d}}0[^ B:7&+z%YbTƤ&kQyپuoI n7<7Κ!"RE;/bK<Ob\筻wm\@hg1v2mQ={&ێp uni7f IW8.<B|2*q&Z. f)% E!?br,(з-kIf7w֚!4D$Zܰ|o4.I~_PTj@PP|!bDt4]ܹ6_C'0ݛ#"trc3ۓ_HJ*wbt:=<۶š~jTԗM6/rZZ VVl+d|? 3(`8ZdQ.VPm=v\d]ca1vkPFuҶIrv^ 'EOhe=,+KeeĦ09+jr֏^mjV -'_S\lβ @z?ݟ|YcҐp?C[' iJ:}b-)9hO>ֿ)KyXB0c`vɍxu/ӯ. f9k!0z4%%lE50{IY ӐQ-G{y2L6 a??0dVDo3)]%ψd2jaYeXݓQe8 KՃϤv\'YZ&7ɋ7w1tsATޭ+̤gǬ+.Jy1HRmw U/Aattt %DL!tAft~[΅/B@U{a\HEHxq_<=mC|#[6ex xI$<Kdޓm-Wm-$!ۅcdw࣏c_N[clMvzq!-!Np(0s4s>Ĕ}{f'^5Ui Oٚ\N0!-Ņ sJ4yW+d>5+}!^m N{ SC0 M892?fxUX*lSkSd2}~[2')˹2~{c׬5NR5s9 y{>ftk\6TysK29!`vFHoWk8gX\˙.LHeAsƁCQk fze>,f`1UM΄bWT(@ :qm @1-=lgX`롈.]Rϲ%bhGjtLʿd()@:{n&i}L|tJbag(4e)fDJV%g!Qau|%{/mWN(PPE;B\4&Jmm(uIa!j>*3~;}OۡzebhliG<R~ b'@ſ?,~K2VDM0mf@X""~!IՔ7/q'nGzHVf I 9Imuho;eL Nīt\]:E4W+t?6zxw*&N/%%/a{]@oq4 1[YQ3{=o_Sa"g qYiե 1p)"~ge4ki߉͏ j?$V=̀?# J<叡Q*+Hd)9PT:x]U^?\bfš,*㲖ĎS1Mr x`|R8nZ Ɠ6+Յ ?+`ZNuYc13@;H _LItQqWucletѽXpFIGj:*.yE"["3$|Tߝo?lUtH2vcP, (%FZa,!TzEUDt[7ׄϹja犺U\ˆwծw(ɢ\E}3c0 c>.׼X 8gZvS-WR.݌Sw$\ц5{Mx0C !\5ӣT-#?9c;mxKYs v]vc=^抮t )^`SwYr+D|8c8)Ź ]:3*Gkʯ7%*2}Yʱ ɄlF\sTcS |Nʸ2JaLe(>FI# rKF\҉Ӑsun^*j_ 2K\ʊ)e>J3 G&Ͻc:e /hۚ !sϬo$usJa\Im$/ɞGL&)x'ER \?Դ'`wcZ66¦z.U}G-g٢Sc 3ȀUovZ>mB6˯_h $=npGG9e2ulʿ,yLklV__ffݝ} +_N]Axԗ27i*4^" a5{bryɶ_!3ݽ}%G}΋$2 u# $* ۈp&2>KcaHr!c{Qƥb~lN*iE2\Y3w+8q`BZ0٬q*Lfx|:{$e؟vgS} \m:g/`(u>6Gt&VܞʩZf3AdT &ubxQ/tPe|yZw@e] V^fH:<*NFM/ip1a)JA<\}T l]ڋF#SRgn azv/6qoKWF) 5>nF4F׎'K83:8߿JllvN'6HK?A NH P0wi䌨ޢd_@\ϟC'7li O.4:Yi 3l.گF]yj$= _zU%Y䎍V0 W <=Ϟf~S2Ƀ`f\X #,YH݌.+&l"%+nbEu8`Sc5] f%d2w LۓW8#U1W`:K, YO$P].D3 (E]bQ0J&JLVDׂf %e BΗh8mHl8x_|]Y*I_QvPJСoPWae!ON*|HP 4k@ pi8u^H:S?S+.ZkVe_)>]"d^/-?5q. R^^Fas\EVѰ6y.M-2ݨ'}"rfˊZҭ#b㡆@Ⱥ%r(}֞5I%6.k >M-IԹ 8[W,wC:`;g+1ph_IdC,& X[Gm'%'Z2qJܕ@ J <QY:BQ^-`ز xriϜPz*6/$k,DX "BCAU## v$XԲ[yt\1Aṫu GOX*O8p<8tX9KGh!E'~UdPMi'\yJpn>E`:C8Y B(ǧGC fߢ<@3 rԧ8}Gĺצ.GG)#@J#_4H%w0~mi*6bikyªKsr\Z%qo@< n~֗:&+dnO\͍dJ -=/=iۿݣAӜa$.?Ts.,W m 7zWmCYk2c2OKnWW2L00mSc [:sHC<@Yd_ʥm`TtXݦ5U _'Ft"ߐwO1}}oA{uf['|&(&AHq[ *ecŝ kF縟w](% 5BJNrt#CÑxUGlS{mS56gXNhx{`i%s?bSɵ-f] tV|phٞ.XoQc˓ʭg]W1<8$Ƃ욨֣vdk'8ͥhBJgzd9.#5*;9&^f5#vIӲ75P{@pћj?K&@~ Ek8}.'kS"&;ۘ[vĆnxKIĽQzJ-V_ߑx|p=⨋]] nB1aFhܗ`1I߶aM;V ^R;;3j^t=uஃ6ϐ2w_N_9 ~D8SeǗ঒ M>=8*w&#Jr;e]{|V k Ġu8NjuX75c0]M7TV&P(ښ2&$Cv;`3-@7ضaxX i n} ~fTԀ''x "y⎄Fm@6A,_S|f}-&>uވ*9/~}mA&:Bo2=,1bJkc җS7爾ԋyh+#1oXg,l`8a<ǒ k'NayQ'`fc2ګXD⫙saCU?@{z?7@0E7GDEfl?7:bTa kDg5m'wttu05C{z2<D OaHlxPzJ-)2N׭(pT]DPZ}5C>8 tu_v&o ΤWJxYrN/*{/J-w?Sj"ӆ5(MO (^NpAcT*W56zAl\mUۭ:ӇS폱r2}J[2njg1DXC2n%!oe07T^Q`>9Ccg9A{iPp-O.}[$QyHٕ(M>07?x=trBxfㄙ=!<$7ͱ`df<$(ܵ`IAR0WZEjsi6Y†筭3l$~;euW\mj:rZ87&* Y:W23jx@$jN 0qv 2lǑHf/o~B33sw0 m57ɿ'@,V<@SKqK=/n-ibH3ft|>::Iej[Qz<Jφv! ajL!d9$[y*4dxlYOMwFfB􃘍w61 ^/7l#w4xB,t22uaHrUaL#P?AOiApgPFCʆԗZO_|6o,"WyEcbsϝ@]ɜ$Ԭifӄ x b?}rV8vo ftE؆z .9i)-^zK,Mݣ`#{t߶ilrېW6~}抸5ˤR3y,%eq\%7cBoj7Bt_e%˅A̓ߊ k@+瓡 9T?/w M2.I&W&wÚfFEŴ&n]Ѝq] #gw/3y0z.Y~{ pfdy193-{~EB UDD3B Aԡ\t| i!0IL PS`YOWiN> f|G\l3ғu. p7 :MJr|XD,3}-auX=9}kiο/Nżޘ h:czar2Vh!_`#2kII G ۠kuY#yWp%'XֆX,(KL]{cmǓv0F, )uwfXSf3yAO:ڪrиƒþ'cCeƜ;̻+R1N TKhH;l[:*f zԉ*~|%+*@x'\nzCKz}?[SXp̛(ù!c SED9Ms%ڷq rB9lڊ m;exĀC)F&5Q"vg=_KؒӈӺJSi* b.{kLD 2C;k3>> . }./8Q&E5 }kQaT?ꮦY=rd? dr.Dee]W/ke'klTZSkFor5!N.`_7AEux{c3Vڅ\"3Wq{6j9fSWnl3gV4xp(\Ym}5͞7Zfzz&b3 OM4˕Ic4}$$[=]IM3& oU6mrNc,?r%IPc0a977T.0 L )0!':3A_UPiz8hcJӊfLUcF~Sfulѫ+#@'Rx5~U‚{F8d_xLh{{-HK?Az{@Moc~Pkސ9V,;Fq6||9]qs.Vz ([kݘ/MYC`S?ь^Y%P#yJs-Ô 2}f p8\-; SF!|j)LVȱ5æ=d^OM5oNf w! #V: U42&Ӆ?F̈7D+26F1h$sەЖt*O i'-c%RQrSafkRɷ8*ƩFo+=}Ur"JZz]Tz?Mk٧*GDnu3Z_f*7SnL_TxE*Vdg-M݂)b=FAַNj?ʅ P{H-M:JؼҴd&8F:<]4Y岾5O^%ޜaEdnM| x̪ϕq-$P`@ˆ.㖆}(nN.Q"j/_`5`nDӿs>4E.DXfn!PIIDh}~JcЌL^\REYD01JǴҮ(+ok'3oi%?RDOٛq{k$mSEW''~jdQP2Z*!P,-pn ]4#4lJ$TLqarQ՟FI;7q,~44C ¶GʉO;T*g%|p)辷LĴ)Sr]6KK3 ᘯdڔ 3eIҸҲ:68?{ >XN|#=Y;{&}Ꮞӑ'󦊉BbFf]Ӥe$__`4-l={,o7v&Vxf6\N'jSdHrH`:GpAWG2EBy}h,(E~i;GRjc(5/N %sڙWX*~Ӿ6}Y1Q?[3►~:;iT lg`?k۪LcUUqKK[Zv3ǿ:NWȻvʌnS&|)]J$o) X oFW8gt 't7mi#zc6m>jovoSOK,?޻gniy`Fɗ[]4Z~DZlFBę#)sOhՍ:OչD-hdH Vg2!gnnR%fZ>8)(H1\߃nM}Id(B~S)_a79> 7FǤG\!30ׯ$SR'GjyUTebz.Y#M=u3vԍ_rTp'ଏXTJN \puKL崍~ĩ<<1 |xn<.yVq> AQ^ӵ' ī0jWs8*TNMeΝ26ݔZ0HwTvS& ~H|0erY?7 Dɫ VaVGh5nTIz[%ݓFSAôoͮz/+߄MTWToВ䖹b BjPs:dH/X۵_2?K*lBym3u]T7" !+V.\7F-WhEHO~X-l? (Bu#~3|6I"Ds367uZ¸-P۩M^NݴW`R]~fnx/dCtwWq[kP80ac&#o^Z?X' e/u5 Lm;ݦ rYEZ&G9)"_ $xI5\ƺag*@G;e .r*òEK`6ĵj[a Irr†eԐXψ/9XkڔMUrws|үUoi%hF%s!- |uBGfg`}}G}qTnqkYW{K!gOlq*H#wn&Y۰#%pf(CKzS`력zռV\\%^L|<3+`ƀj HcxU F%nFpo=Z-=qR5\Y8:^ociV'VQ5Rj>π/#H뷮`kWS&ʳEkHF vSvrHk\4̄VYIBAV?)եz&HBOY}Dݔ7<)JtW>DVLW:ƌBIMG97Uٯz,Z,ȂQ}fm\,A6M1j"b({7=Ǭ:u?( Yd^B{f+8+Z%2,I7jT>a`D.),,Բ" -=]-%7^yPh)2n cMhѰ_P9t~\A-3!aN[3@H'l7b3Ǎ8 K!V9Pe2VM_*w5q kHU 『8mjDѿ0^N= +T9"2R-]UMY?tWJЖ2 0iˏ+[0hȭ2F?]|9 qr$$xi}꛿eh#?IC EK)"'0DdX8K8>Lvޑ(+GD>gy aX.| X45qu8+H]w   "+]_U%SW[6s$@gj 0U6Ndܻ&j=#~XgV{vPKJ]F/mTzy KW-}x>=  hsBܷ%ن;Â"= zB wt#[>yʅQ]iu>IX vWfB{:0L]v6歷>1V]myWSt"gS#+xIx  PLS9ZdQ\m9-x2EB.S E-8fN{¤>"xU23Ytx`]#<,;\ΦHW{&eH2;k,`ܞ}wyr_# Gxbzxݱ_0_Jz>e2[[C+"~!]aT׎ ڎ_R#RwᢣZ9ޣWP! 0&r237bVt9o(Q/s~(^mq2sV03c$4&P.v1k]*VffW*?2[*8ם ho͋#/w=g}]Fe|v0R#[9-FE7M@xQ嫰IsE{V(:2 Dm5_- nh lHN E`cEX.&{`yaRՁpzy+FK;}>h*o:pu^爡|ϺI7LR>e8… ;U866g#7B_v'^6IQ<̚+scKh$(2À~mG^x3j[4@^l6WeLȁĕ[y+d9y(.uLb1aА-%VdRN짾p7jWy?y6}ӰT>;nqt؞bΏl4oK owG$SդM$.0JЫ=BKV-:0[h*U&@fr/I` Pgmϰa XvS +Mdj~ֲu =ar/җ_z) H/$ <=iϼɼDXlȅ:{˕ G0;P[o+ͮiY! ЏVZ w90+|U4C̙Ezۃy+[S"q*q~]6}gNw1xtLYjTb { f^ؐ\H_ L{ lڼ&\p980BGnGme^̥?wk(Cy$Qv`Pƚ=\mm.W%ig[gXYX]AYQ@㋸AOג!);+m;9E"z F*:~g~V)OW&zި:vT}߿-}l' \Go x/Bjsa^`Jψeom-}8fޙVpI{aŰ/|wPFmkۋYz%ˋBLk ap_Ʀ>kq6'Uǖln0`@4;&`(z7)=GQwɿH} F}q9i9 _>~|⣴nӆR)h_ i..0+>sJU_D"%|" y?&+xf N]e .[~WLvvH^bנyCw{6E4;JLZ0_Mj[\ߠ<1e@ՙfI2R3R, eWK+Êƞvބ#)];){k^ ,Gݔ0}8vtfqz<%+a T0E3F&/Sp'dلCDוߏ+A&ty.y^kx E̷&˧q4%H7+ ={#JZs7Xk!\f_bYg^wG*Awcv6-E.cf[17 ͜E=P q𭮭m?Gwm ~/{Y*V ysړ=řP~X"&f;BK/^8.pOȼuܺzgؐ jO2H|uN+n ~ZV n] K|k?=Qhe} k}kȻ vךUKev@^(jO?cS%N# tT7U;-|nWH./,yO>tΘ&=OgMiO[ b5xὑKqDeG9b#}Ғcf'`iQFHKaesC8o[C:ZϿ{ՙ; ropiO+lyG:9Neۯ\&o-*@ (QUg*-_4[}n݀e iWLRڥP &#+wjq%(bv5gA#4wϚB}Uggęs㘥y?g=)&Â4> :Ɣ=StZ|"JW q@#mShs3dN jScDmZ=]" 4UAeg\ceL(Dϩ%Q# \] O #ʟ-/[XLG+9F'[{fγڲ)ȝ{Ҷ1*sgD&bxͅXV.q̔Q8o`(x}ŏeɇ$crk"i*,{Ya[Xn2{\_.\p%MZ]qa.?>qƌ6&Ft!cpiԧlvϬWZٿ{RWM/a)u.Ǽ5ά{1dNwݚc+%|5'jbw7|DޫIVnh(^pHEZmޝ&rc&[/+GTM>@Sw{\[0=wթB01ߣaZYcuc}|8}^3&qAb5:ҳsԛ\&d_Z LD%!6~S_MX%CP獶rTwQ3sh& (x.o:GeȠ ǰ<ި$ΫS'R(͢6N",=MB14X3m[\# Iĭxan`ǍSdwve6 !ʧZH$7]I`=G ʴhD¶ 6Lw군\Vn&&ݢ.sJWMj)TlyQrtDs9JmB)w/4ڒ& LxFžhzw+r^Ueq:oPwL8ol}ģ#;T̴DNaȣmVa{OreP;;yל-i2a8m7m;v(ǿa8y@VX8m7641]؃FJ{ 3҈*5"z{M55$V{ Mr%7hnK?zyqXDy%) ;se28ThNWe' Tpu2e3aL^ c< OZNqSm'|#혮oPyFVsShfQ+EjiF9KfJzh;^B xB^`{RckC!"i:9nmgiS$pu^&q  v[&˭^̖ҽ{iU x!qG;qI[zULaJPP% QI-8W7Փ)!l:hB(^Z]`HYKKq#- "י94M^dd9R>-ovz.#Y*@3pԔнy&kѕ+AzȚD߿ӎ]o8)#J껢YTbg&⥮> SӸ+&Fh.ׯʪ: ŝMPTG_ H,QzL.=,(,)xx0_gƨ;KΑrsůhšx;R;Wf01aYe󍎊#k7otK;;h?> !lEӐ$8i_XҋOOOU*4ÉGjYot|NizhիQ`Jp(Op>!hMyq'%LybF MO>+2-hC*e~Q!k THx& ֤Q4wGIUu!^ @J>bR:ѢH"p\^)9-}RN)yZO/Ƭ;IF;'b_[Lސ0}A -m3>Kp=^| GR׸`\R+%k&]3UĞp/F!@W,N*n5āNP&p. 㵶Ö́p߼M׬-5 p`\Pm}韥Η>kTЌ LsUc˔ p(F6(3;9n8o~Z`ѳmhvGPgi{DQ7&H{s/n)Gd~Z[IIIH{wm+v!"E'"!43m}{%??fIX=vnZ4it̋1u@+g ^C`Ų2yapKt"_8ӽ0{3O>>EB1$D -#Ň҅呲KZ_Wbɗa(i,ޑU 1͍?={!:|pxCIȀ#a vRG 3Dɀ3J? uD%l---1NV2=sp=ru"M^@I(Q8aSȻøT#I{k.R=!_L2w h#rAT&QJ0C)\$"T ]rNE+?fs EZdre2%+@g~^6;YIӤ'}L\069>Ό MM^} L\h'ߩJˊ%p^1qSB hk璈DC8ӝPĿ5;˛W~-%s1V+qd$Oޒ=C RT Q&}JE+8伟` ZcsjzAZK]uԑhhH0KktAǪSSt^߽=Wnnc>pJ\ ^1]Hs msUO@t B2ˠ$1K&^@zyx!8ao# 4%?!EI|#(1@hffdګxWk6-@TTCruuM͖x6"H41c*XC O a¯0Rd{;1',WXTIv7RmOTTT$uw'fp)n5G_bKy|WE0I4E#Հ4iqTTX;u*[;ɂu-RJjȩew76qI_?&'9n\db5w'Fٸ%]#}KF9We? !Ӻkt}.#kZ+'V?8 MH܀41J yV=x-QNE;0)/8ق4X#gʲ?M% f!AlA,$Dށ`f|Sf΀g,7%kٰUgxbp8]0~Hk:v\$Lm1j?`\hi7Β>ޥ33uy̌Ӛ}dl'cfu1euI֟)Ăgt0guDQpr 3s)b$&%G__'C-/^߿Mt:`|\U}/!dEc#ɡI0ftȞVdн$?fnNsgTx-≥هq4ѼK@^phf)S!m".!/]4JV!WojT{z4f"2كn|`IN*bZRHrjN5~{`_pc~JI 0u?:)'†՘78Yҫ`2d蚚J[@dTRm3e Ϋ m.zP7 N#pVI*%pg k ǧKҨ(-gLwyG(l$M=ղ lS4퍵l_pePuuDC0NE# `e<% /YA8[ڻV(=VG&pC:juUX7~(!C`oW`l’ ^ nsҁhS*-zԎmjrxՁ@>B7ʩ d";Z[I)[|ilE7y e'"! ߙcMW-fD*:Q&Wڞ2Jg3F[[jr,静$~ˑw~RQ["גɧUR)aלmb;cf]]{hHd1pwfOr~8@"5RR:[7k>mIu}9Ț.aզ`G ..iyu+q! S_fyG(oh 1$Ozkɲ@ 4Y- mdddj{ia1(Td_ыsLf$[ X A8f Y +wXZ> jX274x'] +.s[1&4i&A/l n#VIBwKwA :>>G BQ:hi @D\>6܏*2FtF ߲^eT =0/ܸyTN&c=ў Y"14LD]ZLrJ)Z<*w{q<@vo-i9wbSCN_`6NxCaZ Q+_b Y) f(f^_GpVLGP,튙Hx[+ !R֝F.$m }{5ڲ_GwFnO 9*@C/Uح:s%2%m*=2I*ues/hF],S$}/cΊKJo#(({c,#r mNΖ? DB,+UC|}LXxJ@w_2& FQE~ہ]/0m)X dƝ),ҽLgFciDr(yaULͽN˟-A^wMʔ{bAцnQ@B`BxWT0]Jyc"ZK"ES d7r'$]{!%4 q5Dek/f ׁe[54ttrLo^_Z^&qαՖCoMz +Pu]cFkBNw1L^5"GЊˁ0V(4R@u[E1NP ):C ;0+{|-oE;wUh_7!"hO|#71xd[<{ѳν/$. ?6h@sވX T:d*˾Э+cF .;9CCkoJǿGģ t8gI~xWvdV@B.l4/t7eb\qzGO!zR#Oá˄%GYok%Ee!m:t6|'fRXK} MbEyVf6Eޓζ\zԜ'߹^6WzK鹴`PdkiS!7wrRgS.ewkMnՒ|h)zC"ubVfj]( Ɵcȳd蒤7Bퟶ=l6߾'Gf Kta}ۥsu.< d`|x7^qB&a_[Th]U.״>;/$e ) vl[ KyZn2@ޑo\·܇ ?giVyLގ1\DyÀk68vZU_k49omVaiC4h ZCrA` p?u6V34{@ oJPP? aW Wte' z%_ڮ)ö7eSf}A?rעYlpd*JI&ʥ޴^GH̞T3-yҤVHDӍ\Á qϒ-3ĀsA Y0-gzR{Jiw&[=;e l@_dX8Py\ J<.\yQ/zS߻=^p\Hh(u%L<1D< S/L5MX, [[c_,Hr"DVdMn-;P_U@`?":uW[REkbB$|?}ė,'DZՙ:`"$`g#?6()PKyC1*܅*(nuvola/128x128/mimetypes/font_bitmap.pngUT 6`APQux -X ޞQ~IbX {"b#ߏv@;#pO{ HWċ`03K>jHDi_yBL cA+5Y8vx?0`Q?UuŠ!wϿ'Gލkm`տ}tVY'2 hPzFJ.AquvPr OeϞmu"!3g`cx11z@G86 CヴK1nEU$qS E"g< ֥"-G #0q?eRXSb][ϗQp7!Ç$Xtg(gFW؊GpxQBБU8qL6h/ۋJާ8.p#:rƕl.{.ļz$:*CNnhe"<=vpBz_ mr1dmџ:?>Y:Nx0#+X&k^hgѼPzҒuNGJO 4E?ggN ^{FB8%uqF5ys`]Ll= ,Zr>?w.1oAHNVN^AB||'#p AZV`&q7Н.(_Àuȴԛr2"ǮxAѧ{TKp *⽓I.x/[nR4" 6H{WJvSa(Urb;6R,UF4so~\U+e>N Xa}g3z( jiﶱ Kk}7K! 9qe?U*NeP^wcO.8-""HǏNBxx'ۚ,Ci[WcOo>}'dzI`*.H{ re.sʛbvC/3F8!sT!xIO'6 +#?H{bژ֘ɿ7&ڊO tIvw;20 V\yDb[HS{hRFAI"XH|IuxG?o;O=_􇙙YlVrwA&o`ηXoB:u32 b,0@(љ -DATN(XI|vȬ1=k#is#40KiRsb&p行&7Jw Ԩ}s1pV/MsԘ-|}mh!o{g%o+ +Fu%f&@!i 0Ɛd}k vZKrp._p t.:7r݄5nw6X/Aa AvfC>8 7@?R0yNL"F'_7<A =DP?#ȁ'P(a(1}߇&ݬLgƕGנFvEtoU?zW}Ťwֲvo8Fa?I='03L\WbUsh {wK @0?w>xD~d#͚|Lj`xI*mdDv;ɃXz }ñbt'0sd$-/K.sz{9\.0LD ZA* _/tobA9a{g[`Kbt'{}Q{w#pVN;%imߨX/]A} |N׮(oO(U*Lt[:y-ө.EVll\ \Byb< 2^UNb)a *Xܣީ<]A|+3He PSz?Ro<.o馬~̳ FGvʉZ%Me*P俄*nR&ȲBDXd1-Hf6{vG]A/허D~Q-8)!Oy(C7D7}}';_Q L7e;\z?.>wE[#m+Rc:շ"sW.ta]YZW˚}TK!l5"Ϝw5Fer:'rb~#чZRc> z«>35i}*y>u6RAq]+$6^KX;2>-bi"+NיZlerK1FB0 v_ʛHɓ:UQKM:_тr ^hN5)%h 2_km_7/ @jFZ_p$xᚬ</f+rKߍ *nBrea' Ya#˃rѮuvzeSE}_AUnD;ڹ?$em2 Lp Ͳn@|z$PGWm0'T:!o es'Dx-Iܯ7SLٻy=8;_^=Qws %L:t8g'gւM;j ]iֳ&$fH,8YOq7Mn]mϿ|w{nmW|/?M<~XSS.p.o$WzJqfDE|=/re,)1J}ee%!ͧn'&䅮OWCL_<{^MwN2d1Ckm3ဈq֌F\8_UU5sIFw D}4{'m0(U6~ﴞ=%cw\|l=WXTeFYRBuO .0\UTiMҸ 8IlPZyI41}\,VBA|4Z*3e;߃91,UuDͪl>p8 ЏWWPKvC1O#$*nuvola/128x128/mimetypes/font_truetype.pngUT 0`APQux -Z ;ωFJ|. I2Jۚǝ8r,ń]D{nk\BEDDf32-@ 苂GUxhkߞ|p _RRWdpxhGB |񖍖hVFFVj:ݏGS7C*R 6 X ٠SH6t#lE# ]3n3Ꮣփ\!*羛KӤGQi gU o޼雟2bfL賨λ0iib9LdNکcR]έch-pQ !h<%Qgo1Ih6`I\w7A__oEzەT\o&B,alAՕw1[r$>:醛A|!1 i-e[8~)LL(KxI_挈qqApT_rT?f1e$Of>#v< @,/ N)|dN;;8q&R:-Z9)nRA"5 R#rf̯nU]&.JYuq;4B:"T8]; 7>xU8Q(67ޭjh|wBkEԨ]0m<>S"@tDyjvɘꔹ)ٮ:e3w8")ղ5ҟ0v Z0QhA/ ܏}g XφhŞL(/l* ޿)MhmY!X`_#vʫ*Y `Ȉ1+e?V15F5qe:v:ܙo1O֭}dIS=@hXhazn~t@Ig_s'+x*N~.9>D˫ M8AX7bsW_4HTVߊTI[?a(rw2%žUm:@ODTEtp>5M Mi 8@(8g19"AJVUdX{-A0H*}wVƢCo bE}e4}eI8qQF;'ҥÎ3Fx.L_(*)c*H4]z^9z5Ov)e5KR&,w fYba|Z*L0@OIcq?trH"2zzvMIKߟhc%Mp;2=օY޺2u%-;@ K„?' :ͨ$47ޗ~8)a5aݼi&:ͻvc,-_qH~6FӋ/ฏ%| \ ?KT!boOSjӀiK' ԝ"mVJ`ؘ!c/䜢zvy9q5խ 0ьRT8tdp߸DV$Kwnf{W 9 5]?-,Zh;mIdbj ;O_9''JW%Kc,$vDflfrn_RS$3DYԢIͿQH]D8ܾ݃9`qNdN/Ɣ3 ǀ}fgE.ca#_UaS]i?:r!NΦ2*En*]Evh(C,X/?_N\ }ӥǒw}puy86AShƽK,/kcvQi6fBWk ԙѷNard>=wv~j9+5aDp !G'Cs/Q?%Ϯ Ab]P3;.Y.k84xӎm$ 2eʪ-?3yXJm248X7]1!~#=3fhݠ,bŅ;Fj40ӀӤM'ekfFh25`ě,ve1'$UC0u5u^a圡sk^!X{=Ha7%w'߸Nsz  ;e;0ZtR5_L=;ľ˖^3Nu ҲzBO;_ǵR޷+eC`9 .:#@dwRy43_&NGոbL9@cI^2){cѭ?<8?^狩kƝ fkKR@nʮq)wt&1ԚZYYFssCRc|^1;"D{o "M0Jh2FҀg,&,thyE5AZo{ntױ4TWjU)'H6{cd =vȊ>R^עi;>UA_Uqo{fߒJYJn^nk[լeo`NC]ȴiP$^_a= j/99+:5'J*+W2۽ύNv c-!4ėDsWDccY^-GsȈHsZ˂>X9br)S5U ]rZjK ď] @̨qWhJDftUm*啋iK߄Zm>{.XZ-%qE)(G}p1ˌa~^X´JW?~|&)Q-Tf18ږS88Ǣծ%LSnJVҺ?^An"n bqƠ=HWyP&m pSz8\VVfcd?~HJ;a&|y3iSkʂRU8wd$9 77 4.&ω}V5abIwQKz{,)(᪑i Pw=#iQvBv *9dks*[}?@Ͷ$}RjKI^%h}!oDÀ\*A" kCuíyo 2&RPȖA) P~Os6RG1,mSD>1'M xʮgX蟆HJfͨh4]rdC.#~ZCd)̞#dg^EôNuK~J~4hNm 6Z%e(5Y{TjlP.3VA?-V[? E_[! ,!xLetTb-ѓj{V,˞,..a[?i5`X SW!m^Hu> Y.)Gيq4-4Q8o{d\=3"BC|UuTOkyYCDSS}~=MDOc'ؾ gk)z_d2f/\RT`wK)ʅjkk_$lM1OY%dĉsQ38-̘ڞf":P{nqGbܧ6ׇX>jT%lT3TÕ*W[rpsxEH/{Z?7^a5*֢}(jҍ>Didl%j@񿻦P l{rX Yַ%cq!e-;*n[YTqj} !jYm%UkbVN*NRX|zm[]X#$AԻZ O9*iKGNxy;\ر=QOB3r`MG[`]B+m-^ܺ)̛/S|Hҏ]" B*{ lc9f(lB`~sCyA3׀e:O8g." _ VRA V0 ѭ$>$8D0*}&䰐yD.@t^__3Z42:T0LO_©.3 &Gm :8}_:5T'^Oբj _/CҖB0qa?WXF gZn,5E7L^ْl<DV: 4gd&O afOddgTI:UގխkF{V]!ݠh2IWF"Dl#6-h֭4mF?hg0V q \Thy8e1d0A'K0IF٤ǝPxh~-./K-3Φ@PM@mt]J@ ;4)+-݅9=v >K0F8GcFJ e[1VRZMsf?Ҫ;!\UFjl됿-:Iǽȑv c\J:uj/M=zZ=|z!~+{W(gτt] WP^fc1$Rs@ h|OW&ZKQp\[g}A[h+5B\B?Č W2 9w ƚ4wB- Z Qj11CfmV&Y(r%MZN[F2ʐ_Uϵ۬Ѐښ-KЩyŘ?Gd17ʼ4#wcL[p_fd%gdNIƷH5'L/FB-]jILExoQ k ' FFOB^71u?ȯ}a[~X?:7IX u(:|[J(ld0] Ɂ>|u,S$yٕLJ*0?n8ՌdGsUw2]}Z]-6'>&ԫB68AW%\@ީO5[E鬿v w$(?%KqُM68.s!_oh].|:},Z#r ln%>Ðzi͈Li)s^;S) K ʭ ua/,Nbnmfo&nQ[ [F}%>I8,x2 cZJQ>FӁ/=RKtZUYS݊Kj`M .V|rǞ\[h5x_n{&P-qyu<{y4rW[1!6⌂NBP?P)3;5' awZdA!JJIHZ`вP< g}.@0Q_\+4g}bUdy{dϴ=:f3{px|uل&PLk}V=6|~޾{WԊFʪ א{+Hٷw[s>3dX+H׳;ORO646US5{%'ֱ=V'H kye9rLO>+'K&24-/< +E.^~]Wtww1nHVe ohW%NXXgϞ= 0ɲuiKvm¦Hʻ}6QTp钞 9ȇ+Tǿ혼b%ZDD c(cI :_R!=9jfV]klwrhcUY`*O΀ʈxyeoUeG@$_FC3U!Y;+"QAfgFFּ[}i,{hWf,\,*Z_ ݼy /oi3oL-Ul@}FomZ7i i뽼Mf &]U,ѡ;s l^/~__X .'?WҤlA?%S<&T{, f(r\s׵ko˙G#.\; rשq5,1 mzsV[Db;+:T !Ew*pUUVH3'ҴfWjX[:w1}0Nndj^W~n*R'w1DNjgx$D r#`[q6\|;TBAkgw= =>>j|y# TL!XeOA 놋4iX}qf S\ˡCKf:ub-MMq !u:D^#7)ƌ,%n%/xCSSђ%d J,JCx׺0H}SzuWf1,:03,[ 6be3Gv%A/Q?t-c}T 7+X7ZK) a2@ &,(36^u,N'Č/@'ܿO nf ϟL x2T < 5qXs:S%ܚ?L}|EnuU(!W%H D 6sgq#7WRߩJad_UPv< Q !|//h⌀FF7_I_Jzp.hMEkaZXr2Yo J6VޮGd۞nu2zuؠ;q/FE <7ά.r?9/+TmGY=;+9EJ^apg;Ms hB6ј*n) eADL.`O&Ōqb@\~i?C"|gU Zw'E&:di91;!#5蔌{~Mޏ!>(Rp`NVҸK̖|rh.*4] " tTaR+/~~gɒ3!X1ג!i$+OBk˰8,} f͓I~[b\N#d{:z=n0cDž5EA ͜. `MWPN cJKs2+F# bǏabW!R)_u02A}*/ZGÕbI.,eŋ{/KpɒWgZn&64Q>]p^|K@A^Pϊķp w?Lʮȝ;oWʭwv}H3)osi+ i`4pgr[-6n9Xļpll]u^]Tgqs=Ozi W2ɏDZ<%L#m47 @ /W?yl&ؑc7ǘԳ:9.>:17O;D"04Te}TJŔZEP\gˆwF.ZzEFU:~t/h>w+L6ͼ|e5U؋ٙLS>n'BXε3W.ƀa`^q1w/U$iL?Froxh R=̑3~%+LIgi6_h،+7T5<;Nbyk)jǼ7[-d"='lR1'>bFy-\!0uY\i=}uF?fǨk D=n+8^\},߆ƌH>mU(##~|Tby0tOEf*=@†AYavn` G)\Mi( m`$G12|S|:{<#=2@Cf}mV3HIM_ѰA,Kr9N " d‚\૆ȶPi/NZf2^HxB?`4V vnOV?% meo)&Y ~#x3Rg<{pwwH4$+ b*ڦ$dݸoq)8'xeuimE[n|KqC#ϑBֈ T~>U'])Dq\LYS7a 4MJ}) ji"vj ݶ|u h5kGEh X4;(7b],.8Sce/h[J?QK 9LTݜr\+Q\Rޖxc;E_*R?C8]Of*zSNtmaCl!`zsy0ag=ZU9s \E+:),!I=lk7Jɶn ңTv4Ї'w?,nٿȨ5|@䙍bLn6M2NgĿ/q|uhYwiU7h~(b:Ɗ 1?/kNH496 +cڒ uI^!dH&< _!Cʭ5wµQ&eRU){O= cPu`#}MK׸09|GO|9W.r}N+'"̄Lg㖁a[kŃSǘ. ?7щr J8v&UPř{dSpK&01odkPuc tw[QQ+OU~ n:JzFXܸ )4Yqw<tw h-1{@_sxq . ];wTd.;Ĵ< n}ذa;uYLT>&]t QNyZw]+mL~%7O% RCcq5!mRh|Y2_nX[4LS|EiqZle ~š;Jk;Gpgd>zB"oA\(;(57nz=jz{0$N dea!{ޫ8=!m]iv$90%zՁΚ(~~~3orOU#rqb0j$&/kԀ˹QE,QHWʪ`MdeFI1,(F34  yݝ8_4!XƜ{&Vц=ʾ'jǢ!m{ځ[Iر6q^@T8])}M5O|;d`7!ź&%}._Z 0 56 %*39E<J`& 6pY3%$ fc,s27(Yw+,t(:W&v_'٫L0SSiY]h]u 6P"Ӭ+D:|^MU>1Y0j)6DJ_FeQ r?J *1},JlA__YZsX~)b[ ՝X2%UB64Xˑ!'nm>áG>5oUw`%LTC1ˎs+ekkfkvGӊSOq;yūƕAW¢^?v`1Qz,јXe}Li7QA_5 c/܃.FEB=oejBQ+5p?Do)iilW;x_B7E~zrP&U9b+5oFChUᖧ)L ,C-EWP|C`61j0f#7J#B;{ "u۸bܕ-E&s̏ȍWo5rj'*O΍C.jvm455!%&Ui\[Xihq(pWui<|q5_Әmلi7.\D|ݴ⧎8 K}} ]i/0_ɏ晹gF<`dbEJ1Ĥ?0^S;㷁m.ΦM1c3#4Ư\<'Q{յ:'yƜ~zӔBSNo b" V`#p#/Xy X@R'O⣢R Œ$.'6oFI(u\ & OG?!!D5~wq:\tL-Xfr^Ͽp2 iML0|߬hou"mz*+cu)aPP*M6 ]]XkωjX =|,}lv~%GJ_#x)gDc' РV4@?nvPKrC1Wn"#$nuvola/128x128/mimetypes/gettext.pngUT (`APQux EZy⣕6`{pO:ߌ¸x>Irו5gDB lgh<i<>Dk8nX7"I źug }tb͞JԢVrhkeF)|lᜡN25]o:i~E4tz⣽ŠYTޝwRcjEZ2~9^?Eta) cIr/h淚{_^~.Md}&O3ftMcjmbWl0,9H6KiL`6ín mD!}A6ÞGϣÔJJNڏ6CQ/ U)auw09Z|#o6zw+-[m+'/r#w8CYސ m>rX$a.GBuJ+u/ZC@:% }%C)*̫V%QS=!8w,_ɕxkX0yfg@Qe÷"٬xw|rׯ'%n;#a;Xxg?d,s 'uN**G} mW>+`,ks͙WMKޱ@sB{npX`%Tf}ŧ9M)ב >P5`'=|.֞ _y]&x.V'fcPD ӥb|jAјPCӊgPdc%>g%5K=׸U߅ۿUyKh J0c"mvhsQQ:T(E^° Wi*j fyeXR4*fNr>Bm*Oa _%q遥$,LH=O@Y{<~vAV)ǧ9)0wvII`ù2.`-HE>f}kǕ-EK)c5JMl, [ }[Hd{b?j9/b.833Dj#Te)Q8XUOeˣ1q_Bvz/56o^@[YAZoRj NKL$iZ-0{5h~BY%`}Ktѭzbe mbۚ k(V&133g-,YNpƥ9s ʋUH|L"># fsTp;GrP4z.ŌL׍)>Hx+CEߏIB|mB)lόB'~A_5rٛ::pс e<~!j݈=6Gm[XT885  mCҝXgڒ9 ;.X5~c9؝O(s]SQfATk-pp5L&\[3)XN *a lK9vDk^{ 6~8a R%J,6,lf}3E=2uoqS8!W0zY<]{Kɘp;O4 > 7٢Vk&~'LOYOˏ2Z(V>Kg V=l[BppN~4#/5_E~5>1L Cr>rFhc|F\*,b%݋ Pj#42yp^%ꖲhu Q][ЌC8M͸q1ܑNy;ԭ򜮢U>s$֜#LZq&6{Z7A).Aj%Е$V[[Ӓ9/+NF>ґOrC3}ad5R79ei7'N2TQ*taG,@qm+GW'xS&jwJotA]P% 읯[1k$5#RZ*j [>ܼj%ZD 뮢lYuɄzpoX۞ȣs &#Ctu?o)RXiVRďŵ%sګPf]NJ-bApRzb(4IHO;MMt}xJߎ7Q#9ʮLmgEEt{yWxmr_$Ԋ{ L~Q̭jSNxnګӜ}gϘFES<w; N$[x8h,# pw$9;.Y"`,PU.t+ nnh=|pr> t=0*? 1I38t;w??˫/ڠO/# ݤ ?)|bv޾uLUP_7<>gS.Oj'Fnh[\lr0iEOB9019ڢ-)̇I-t-Oz% ڄu/Ҳ(f{R׺0_-eWH<4@W M|ϤW([^At*h|4<eݻU^\?3F tA-j%?Ah[MRVın:AO҂AOLR@E}n^éZڝo]Y*O됟I[~9W?ΤZFsV̩u.uenUP^)Z{˥dTVDsіi|Zuxh$y;p7{yף RZݻd8}]^tqO2Rt)}4k|ڿgd-މ*=쨕i=v}),.L'ӧShI mKR98bKȐFœ*ik؂`4*Q@y}h"Ja v6!15!K8`rm¢rE|ݱ<|~Dغp[J'p;ӔR<LN:00zaW#Dek _3-/q\Qg1oy鱪wEs϶5C"/dGN ރ<}e젊;M2`oEU3f~Q&ӯlDi\JK# FYΊ}6.HX"*=ge| 3A4{"0屖eMuN[ᘀ١# .#Xˋbׯ'(B|)'rӽ[<~hhFkUvVpQXdqb8%w rr4Z{ˇx~i.0_O"Pjg"+mc;m@qؖ m3~J'vL>|MьLjQݥfÙ$.AKq9sq=́'N^'H)/;C{0Qxvmf_lv.5^blLA[Z6S/)=qc~hlc,G-HgdXH]KewK|Ǝ84 ހF K1 WYr[Xk17͍BR&>U#ZY@°S]_h\9|hεy6J[ G:)ɳ3ϓ %?TU~&R**(IJJ}ko55Ug J0<H0VWx~S !*~.r8y}"]PqMUo`fT(Aj?wk~Cl:k{#5)G>FF`*|d ݲb&܍nYP^7 ID>v V;-ĭCRmgf?S+&6P*ݜC 1-Tpd/)77 JWDjUCpMmzĈyDv=C51 Y-@ ѯl$W* 8 Vlf4& Q\iNX61G?5qs~9&~Z[Sρr _98)*Aj|I=XsqbvYvS]s3(l Ɵ7NtnO~M1<\& Ϲq M`6n!dQW3(|{B'+*~)dfnAڧpͼ 7Z֕BiEx!I=)ws$dp:'јR)ܧ AV*kYM/_AJ{*[O@/"E[*X 6Px@_ab@}/oƎ+Wu>~+mM~[ 6Sf."MY0VwvO}kNK+`㗫%<4(\`{T2a@: /Eqplw9G׼J'Z£$boM>l|ۣ!8l1ay汮KdʚrX3(95gAَ;btٿ݈iW'^͘y3nP߮TbО죝ɋ6} JKġu><F닿RC6:6E9WXi~h`狶[ ZEKI)2@B0dQWyC{_՛ob"ث/bJ9٨Jz_aA9bpIb;UdlŎwTj689}8̰nuLF)|Ѫ֌%|0-<[,{QD6C/{ ny_ ,m6YRz+?9ZਣGFrf2FeG܌,zGpyzGq1ue'r7V}%ϢMppQjw'ZKx%;\G;Bxm[WWlC| vo%;Q+ḏ_ S#KJ$B^&BI3,/ϱLLd5Pi"T>O<_\s+`Γ񪥥?4+iuo׉b1˜xJ#kH/K!Л};k 1уy*RkQ-ا֯Fs  @r*^7ئr֧[QEI|~l(rh 4/aۋ%X=;.NXyAr-e6_ ;k72>_^y$' Obx*>\GQkdxn}+utJlT *3ղ)Er;Æ1k3עMpvJ?PKkC1{g(=)nuvola/128x128/mimetypes/gf.pngUT `APQux EZ{<vz6Rсi꣒( aro>?~{=y\u_uu XZ՛w҅"ȗ2խΨ6wLh1bkFn9-,;׮Fd% x>z LdW/?Qb+7G>;)xXIZT𢻯=3cO+)Lh"O~go#SP4q12V*og\T>²՜pY> AXPjS(PN;;{eX)QWʞۆң^Uw~M^r;a rΝ;1kkU3e,'|DDlEjFwu ^9xx CRc5~jzj"))72 I:KslWww%L=T {9\`_Bm#JdHa{9! Q&0&vIR1a2ғ*@x1a~ӜkM|υO޷|Tu/٬uqrQpuL$a;ʐ qkkL*=/-{-O쐹|]F]!{|(h\Z pToN:o\?I%WL^ʳKjxғ=\ܥIkEذF;1[3} rohׁ)]Q,&D^A$%٥/.VmI0#,rEG^%?-H&n⶧n^{wa:=X(-Ҡmbnj΋\)YcˎR+5Pj,%6;m zs5. Wzχ#.r GH\'O陹VUTDb%:̸,8D pU6塚o Ѽ0ŽªVȥUWkA(g7 ' & !4#^YH.*G'tc:ҿRsPL%=Ф$\fhb̕À[Sd$9G%]'3b`ǩu= mmiiIuda1dY$&5K&gȾ$dL}a)Ǩ+2.;)ǺX>MI6NӋ O+ Zq3(~=GkȘ-HZi ?MݺdW2p-n­l 5HŢ3E(?= 5[[)&]W v!@wFj?}{!caQĈA3p.vWq=1+e_r--76@qM2e=Am,ʶ({>I}!@1;VCL·‹}%XPԴp"K#dMEna!ymm#}xsAt87=mwj*R_7nҸ{{m)q[:Ľ2 Gq!:JHn swn:m P>WH8=k BO=da>q')/=:)q)c0Γ tğPM ؍\^:$cI`e; HQ-#_`S_Tf槇BM4̨/7V:݋tapUh ɸ[UKwGk]AO(2#mڪx0pфVl2:dmbrwl)eK/"S. v݈iK8Q']D`+#JQlU!}pҋݻJ<.Ҿ11fBh{P2hX( U46R`C~!7 Q]k-&xR/ƧLgRlEIA7:p*J8"SI%Hg8/U$q^B< BW߈3_Q$Z'΢*굑/n ;6ѳ/>p &÷T8 7 ;uI$Z[ %)7SLnqr#IZX_R Y *i&17?i/j/5 OuJ|V؂mz,Ԅ[#RPB* 3KmN5sh.2|̼rrLngメqN,:_8l[F0 ܯSHm]Y䈁՟Ƥ37YTʗRX?2ĸlIW~qџ `a턛j xtS¤OZzI"e~QX{ ?X`3zTEgSKدVqP?TMf5Nf`RCVH~>!~e440& nxN@Q)U=o9NP0S1 LSlƍ*ć9B|.a=D>oPu/62N~];;tX;5S!|ܙH2 ry΋L W`_98^_96Lձ8~V& ȏYP8=nDJ?E`o65M.`mѦ ; iezPg%R9;?|vF\,JO>Fqg,I:!N"qطgY zv1'iZԞ RjW]m#Qu,Ѐ>@"'Kg3Z Y~ !'~, g'rCOe?ux؀v׵KA97Y>uc 6+*oN7.Kr5+)L~6v?/~^pJnѺĮ16#N6t>я&Cs#LpeqD # ⲣT_? qG"*;`aBFB+ •M IYH>U6aNJ,' 3|N3}^̘ SKvX[`dYWit<.cy|Waʙ߂hy^`It$%4?:ϥ3.#$BvM >%Ȝsu)|"vDv"6[-vsQ&3'Pp쳝{Ɵ\v"_G, Y5J rv".P׹!  7K&>؃hqH q>ȨxdӐ'1y 8ƸBYj̱Ӏ/FEe?K)s;+?g*}OۧEVں!ջEI&sH1Yl`RwX_DsUVcȒ 2i>E2}slV0 |EJŖB;k 0/$6']87:z!i3 i=c` =~O#exo?`&MYEE2wH $!b:'|&ΜxNlP28)`yh#q72#7_;R Yw THwdOuK 67,Xg nS 11'* Ϊc-}WxȗeF.{0`uoMuC$V,S2 񈯭*=q3,U0eMe3)-.aL!8\J=Z(65,-["法]Y`Md1f>2.4n%.Yw',8OFj_¢LbA-. Ѽ"zAsAZ5>ǟ&ծ6IF4mE WpMoe?!kL:[BPG1xbR2h3܏s4bv}vPj^V{JۉB+"_}36\m8AF{In%u7TG4F;]RJ /僱w(éӛ VȢ.xp~]`O'I_7epٴM*βE6ݞE;άu Z9:6aAtHUj|n?sQϲScW.[䣢xv&8>8I/$P _Y轭G/{ 뛋0'eW2Hڇ1w T& }r۽ ߆J-(o}OgqϡI,l9%w=-MRbO{k +(aQB3s-m\u.7ϋ~)!(82SYI9z L{Y iĽmҚ1;uoۗ%~ 0GK;jGS" gEWάw&,- sX_4jba+?G0rZ%%M+!;((r|_H܁qt8;8Yw11K2ʂdd7 LqEa-vzSKģdzJ|. ]566ϼQ rޤf NZqV`0h,u[|8EK{q"z]Kr&Ȃd#_75?EG ឩ } \1Mn&'r9ʬj v;?8WZpND%y;V6KG] HGٕyO3 iA4߬ll_y2|}Q!ni!_Bh,-==Mfi5> a&a5JӧN/Y6^?Z*S._W5>ΒS9ϷtO1RF$ڲ`*m|r@B+aB!I`|19S\3P>.1 Փk:,a SA|BN1a,-Kow:L)xS֫eUKefWOl,PUušk~n4(ƒtCIJ 6;sx z֥eBW\Y{2Rp^Z\]*| õd.,Q 7NWR>579ryH0Ӓ+nxlQSaؗo45޷VWAUdՕ.6`d|j&J WT}ndٮhV9-*Vz daBOYeNj#Cpe[M ]wG뮱3V( jk.L1.+Ua=_)\ 0f*ji~Ch]&XN]ww`{˖ɒRiܝ< ĮC^+Bɂe>J! QP*=*KJPOɄYxyxT@Ԡ_{ ZNU@(|h;w3Y_t&LM}O鸜y $9*GRO]c@a$`Esz9X"~%u葲݈擬GU~#okejaz)%%#D^gd?LTvW.K&?q"8n0ow^PKhC1|45+nuvola/128x128/mimetypes/gnome_app_info.pngUT `APQux E{ &&.R

      87ާU}߼ysgNⰖGQ7tLܽdL}2JD"rii+-*y0nBnAW%'p[u[g^URR7FFꂔ7' h+1CV;hLIL(b9*(t4 ڰOTpTuǡ05d)_!f]?ci\qy#V3%c嵍 3Gs:KQPyJ1&c5d=1É 2ve1}L{Mnƕ ܉6sǑA;H"㆞nHwqyK5 b@0]a%`'/2)kAJN7L]Xnoj+㦖Xg$ 1QV83f@0iYgY7F6mbNJBEb"G)jt.sP80W1]OG+m=$ir},}Ӏ&e: @RDjlk>QSCٗWBZA>f Zu 5jJ1 1\V,-8\q+_fڟ,*&[34cl55`MeBG ˮ&lJrgR:g1"uG*^Ƴ2Vm%B !VBNs+?*oi\]OD(ޠ Z~}kqg;)UeFb*v+^R  >Q%ڻ.] zaz@z],q=\3@ntҦ3*3Gى޻%\q[}Ly] uեV@x['W&'}Z.)axטI1K$!|G-rY(o{,j3d\#wLUzGg5_vY,QWWM(^1PħE({ >*!gb455/c}y3&;wFK#}E-N5nJW# jUUe )UhYX)0&pv R+eƭم\FHJCÌ:GA'^E|%HDoTn@egz_z/; TM(tK@02xÛ/ˆ&A<m*>ף[?l6?rr5.y6LY򒍖 <[-Cj"O-"feVEpќ}gq=joFW, us֞*]4V_vBˌx9CcPWې Uur!SHdqo kg13(?6.:4ǐxq3mjQeo.%?isoܐ/AP:$RQX"arkM_&~BYDGw5:PGZEx2k=<q2~ʑI[̤\QI cfCN#7Va;wӮnižBmjGٟGHae23jYbEMc'TM+Oa4Z? n+<6Od>Cw$Mb遰@izE$[&/_lm&ͤ g7p/F=@6nOh$ģF-CN6g˕@ZuS#h٭. bmFVCdB 7]g8bn FTOգ65w[!Q Su.nJn!tQoDx(~00H%v3a| bf2X< `2e7$|5 ~1h=z~+К#Gں!Km< )[!=mǿp^,LczE}&fMHj閘m -Bulh "C@i` $r+ՃK q Ks0Q`vE\tIi·-n>/\"){&`3s(ɺʅ3 sܿ;v䳻ҐA`w{McOX|VYxysHmE~Te5dyn|GC&jH_"4*SDp{lfU!noKORSi/+S,٤n8E#Õ':ݞXM-izMm 5r*d>{ R. **\Hx,? 4?G^=_U#^pxw]Qr5?yby~J䡭i&V2uwfW_gR/Ϛ(`|X0@{Ϋ z'Y7wʺZeJ2~n<%E#P'|Is1) 3)[~uzB_".>bjI'=9E{gpصM&yr{9^@ Y`t;Cbp͸%ŵJ!W tU M\h|m kMh+3^J*!Fo-sc% dڇB2ީ " faȘ/O;q;IAB/+0dYPϽ7)Zg6u?!nF\tp|Ew(֮xfJ@<1r*>}fډ޼[gG@ɾ:Orݪ~9E4Œ,6sƍ3'f !Afu(l~)ߔ#sP\\ȥkBH=)kdY~ 3^M,s|u7{eȌïlSCL<rdʾt;rr V&27׾4Dq|]lu= ^;V7BoM,XqRЈ7V!rj:O*]ZS1vCq'״뤼FЎo|n~AAMd$R#q),^'4cZϘr| fs*Be<^(#fׅ}+2U_e쎱wgEC\sP,~=~-z pz)WrHaֿŎ{+4V7w.Q(\Ãhi5[gk}eY ա"XOfނFʰoYc;m0M?&hTG(բ =x"0^6sxݾ=!-L1g6j7𪻑SyM9@\D12YYc S+AV"gnt!gc瘆!Mz:ڄ )mFҔE|,QOb;ff:lq~{3 u*°( " <wJUikqUǗZ2YT|S Uz|3~o;qppN8WLJ3*#ۥ'Egwa4)壦{~#As-|,O}Bfx|Pxp+ΒnHqbѩc3ޜ@D ApYY|&?C{i\_i'R+HPW>~:;@>!nČ&+MDsZ3J]8ӗ4 WNt^j*IP?Ļ:mj3b@gHe#>m·ٌobs#kϧ_etDz·jkc_n[$,~.K3p ]Q4#V "`Mt[ش.wB[sYSjʰw5ybz>beћָ.cJvQvYH~HgaC3ZtGLl_s[+rC7!nxIUo1@Fw=5It (P^+Ӷݪ]Mj YLeジ#աvl̠Qۻ`̈́3k=>vPDV>/%Uwu&Ұ72-ըl_ϣ1s$3-qk[%c(b+hg G 3E|7 jL}wrSs 6IVt ,sGH<9o"ywE*v}PR_PU¢S̜ޓ3=JwGbb:>ֈyWgj#0uQGu@nsʐ8&ϜU*}3f%TDir>FOׯ Sm)3{2} ^[\n-f$;{kPVHHX µ8 q7fJ:Ra6m&/ڌja1}4 )-})Js8^!j ^EEņ`ԔKD9u6vzErO`7l:IO?>"'*u%+ vx`VDJK+Uv ǣ m<8!{{2¿'+.֝kaޮm.12=$L1?z+( LylQ?2RQխ3z,0Si ȖXRؑaPR.2r$3,ޙ%Ь6yY+[ M$O?kv+<=_*'12`.1d;SZ!.\\s[24jx(k4y wi!:>]4{j3um/|.1- X]R/KwH>7rߚ/i '6t6`/_gEرu0sփ ՍlW8v,y3]}2h:<=DyZmkό^blCODj>$K$e2obTJ x:xظ@?: L.ؓV!{gh(DTfۦ,Mܤ>3ćk(cei4q kcuxbdff>15P0V70y:#z/3T,#|p21#}V,_<}0AÌzKpBqnWsضNz]M7ʌ]ML $5 'Y5}$;Dg.SSGe-2_*kxhtj`4yx&N%梁aao},6m`KilKyv@Yg<2&BbUFNiB`]B$>shpR~/ێJqr({r3=R tM\4=B9X%;[@Ԍ?^LjTy>6So|މ-o-QkV0A`{3vLZck`QT`)gs u`Mⲽs˶BkmLcZP2vnE[dԭ =摬 9K ztf7LyT( *ƨDA 3Qh=w)_8վvX;;s;J Wm+@mP>:HfVGwYX+ IM'7/Q~*5rUC݊WTL~8v ޽tiwk0𰎄[.ċO7΁qlG‰nPOdgtVy'A. C#qe+gVp;b>?%ö [ve$mUrijrw-mB] U-$)z=z΅A"B7geSu7GFFlb}V!PFG=DX@-Ϳ)ڸz65#fYt\P(JQ6 }U H[zh҅ОO?&7~]ك>\ќ_P/`SYBc5a9\nKVi,ZQw8FFnd#]Wޚ~+1Dv9t=aN_rK e^Y%mz2SB$&ˢܩQK ϯP8)J)q"&{{U/kb LVٺj\vNO%C{6yˮ P9UU_uP4/Fx1H.{3h(2gy) KBp񅯫/L{pZmMm0'>VXuc*v1֟soYwXv2a5' K׸e+=IArd^ԑno\N4GԊT0NPaFO5{Hko0x:4wlb5խDtR>O>?Æ[ھSP55qvbbM(HFzj]d}#,#I^qݯvQmY5O!j:y~p2sႰve4.l&c_eåH u'dŸ-G5mr6*(_lkNxO=,7 Vv'.:}@U0qܖ<4bܭ uT?_&=S @^yf1 هZ$C1U0SNv !~:TQCҋqBYsaW8~ϥy5KUPQ =+-M{D \^ -m[zi$5I&E-v`>UY_!4n?*G٠;rsMD*B)S9</,77?*l3 R7XyJLjADJoƞR:HPD >Q&IKwZuNu2>#}4쉣R zYi@UgD&3^t;2-Ns&ڊ1azV|k0WhqD4hI=LE O.V)/3ZM}10hol^&GO=}P}xm6Z*=luꩢxeXTn׵ʪ WakfUu/'ChԹ&[K~XT:AzybA3* '6*׋mP5 :aP!oG7:hP*$#EFIGuX'2cttv 5,"`OD[F.5![y{TLlkٰ̇jn>:‘HTjDBZ;rz(_ Q#Eލ}՘ɭ1s]O9<p;%@Sat'$ʞ?ir -ð!JU5/Q|G,|6w;vl)B`bM^#O8 /\l{qp҅7k9"a#lvEpŘW8}X#2 lQ=H7ʀ@:&Mjgik%<3F\O8Gl.]smkKю)Ob0huy]VGw5%&D3oԩdTOl:a 1\~?j5R b 729t5J 4!c}C*,eԓyb%ŋAqU=%ZU,gn(UffG@T?>(zDîUF[mߺu'sJ5 a~p-i9mۼ߸LCn[&}${7t+n]K7wC-$=πAꗷlq泖9vA|BDQ~=*#wr =q[ oV;Qè. oSْZAs !O Y-k,;=c S3s@QCplZ +"q=rg%mjIߛj7]&PJlmݖonܛ`~n``|AϹ*qD"b]FSSS|l]vLhxENTKeT  ~D_ S(3>(n,駣3sm!&~x,_#)<';gm'!<>Kx.C"@vl [m@5@'^ګ݅#D]~O2>$'7*+-Tٯ=P\k,|rVHټ+5PKdC1|K|.Y/!nuvola/128x128/mimetypes/html.pngUT  `APQux e{<?~o͜m&C¶7!S%7s%Ijl3-BoEL:xGRʹTR6|xu}ﺯzu=3|=tP/=׾rBidHIPų%-c&9HHC#p;Q"#(gNpnI k~ Lr8 2p@z]#`ekp9_G6㵈w)&t-rQҁP"oc0*"{K(rdd$9,,LӬ]'4f(uq^p@X^^^=YXX0ogX "Y!\72Bm-Dt +?D#[? Y-Wm*B[ ĕf"j*/aBL}^Җo 5jpFm톆mLLl}jҰl h3fQC9=[N7؟1]2y&D K/yU\QsvQx'6ӻ8=={͡ix{n4k*Bj|*R0oSD (me\gv*#[мXK5펛u7nzQQڀu` TT@=EY2 dpZj;u=xgJn8 cmV,=eus^ҥҿ6]\e.9i$ 'm>^ +^3g\3 ?>tx*0MiG2I֮tgܖ-&:خ3tMDM;=㒲p[9M8J|z*Ӂ&Kڄ%#z^=)|ߺ|HE__^΋ )aIs{ϱ L3p7pF Tt^Il%B@./+F'.\]휴1K:nVTGX%#Ɩ \^~K l\5jgdyX[{(((wVdLj=ꑹWr(ZW$04w1c/ 'stoW r~CS@k9bVٞV:thErer(]FH"rj?#V:8<\G O8""@}2ɦ+59Gnfd{e6j;8P>\lƻՈ޾.^p\1ޗk6f;N2OV=)1TyB*pGUD[ÑNf7w<)];*&gDkr[v#;mgO9;m޵ᅾw*Ѧat7agv$E_iŔw)K1'~֟[k!B_Bə8Uo!qÔP>&fvBGwYҖ~ӖSVYسiĩg}7P}6}-0;{X0bO]ͩ`eNjVa0Ϙ;/1A.R^1 Hꄥ,ʖg[R}jۡL~~~ Q #/`3؏275 `'I|xYO~Șf>2޺Ή[6`d@QSX'׳GR!e^`m37u|NR߼U~A!4e! Gb()tDf=[>]XC<'Y#fԨ\?͈SD+#gj˿kuw[yAm٥/ SŁ%*1/7G;p6u,w<8P/[}ic%uW:(d2xqA v.y̠B{Rϩx` ^&M:mmT86P6S} &QʘN 2h./<4Re0,W'Ye0|nAD(9N}_x#Vg}?gÕT>`wu)1+ ɶr??;7bďcN_wf^zGmw.ShsMƃ8woxuɃL WD0ޡyᑞ'kN-ltms2ѡBnK‚ 1,xR'41ֳf$ҋԤ3l$~zKb=~tѾ~In*0@jkonȨ&IFH?ذ!dpH Y_}/qD[yQ(d1A?f|}fHl5Bwm|p88c5|6%NmT9]ՒsH:\zSdmijMu2eQ]gl{Og@f8M 4`K[KrX32=\(0=:ZvfH gar,eoҟ]"ϕe6#EԡBsDpZJG zx]՚Áe'ADX`c˗F!o9160A"źt% 4)(|ƁŔ'+o`}OEEfV* M>GrhIP{02֭&ew(\h6ŖH p'Bl "pʝW″'Qq|$3N"ե XWl0qv0m_-(bB݉#6l݄%$?ոuntOXd| vCJD$ b\|S\VQ%A t?G/0>8,X>E ιn !pkc]%ႠztmMzt*Z.p:1}JC3>RbqrCܤ2ߣ>ҐȾeK~{!n]D]lHߦ25)rhNiOT"A=*Nl~R&ڍ]q0> [vADSh.Chև’$Cc< wF^iRD]"{֧6Eonrs22&Yĉ[Y>&n`uJY$!hRJYă!O ʾZ ^.|3WA"vyA b3Aoh4ɸ*(T`:Rqm8%$tV.LoXHH%f@/߆'v_UnEN8:|URG?8u41Įl4Z(MJ%?zw<9ҷ'2'6Wݟ;w)#=<4d衣~ܻ-W( %$Or_kwn,tD/njL8$1r]Ps]Wc| 1uaM{h^F372C.ÒtsFheҁo렂dIJ"aPQveʂNAv kQ=GS;Uu Ԋ[oionR}dѭ4_)gm>:^y#8M٩tc Ŭc i) !KASΏhD%/lA(v$оu!]e#_6b')9.r][G(#O{P}WWFP܋'viYnqw[p 1ҥXiQޫ^2GA%sWV ƅ`AlK)'s#qUT[DtCN4e}C2%"1Hя{[JXp o@˵*YRS*[k˫x.P·|ķVItK?vԄzl>]ML#PE.aRԒ5|:W 73(íKϤDхD-*q[R(͚~c?GmL>fi6&!:)i _u[[t[,xW.c|14I:Ζ:)%ɜE]u4fnS$C7%IX^'0H_H^`0/j0ݶmȔbJ2J׽ 2S)dԓ"rO+ |! nQey|N5M^L8#gꀩen y cQg@Y*~׆_JHV.Z[;_ s+(QuovCiݧsx2߅f 5Aم-VIIKaI z.&^AE);j=&<qʀ 3mkϬ,S0"O_6{YńH!"x}w=rEm_pEǛp8#ԱtCَ /B쨈/+ȟVtbdހ=n3&E8PNE蟳jlZp7%V~X\2C<\A F*ͷsκ;n54DmpZq\vG&+];?UAa>WnT GM,dorY<տs;y b0wWfG{'6kyp@2M tjY^;.D Q`o<"}%tr,`mpG94ZFJiԐ< ̥^Tp7,x^DTwi]쮃$^0iw?}&+.pSWE.60Ի1z.9lB%гw>Kd8Nd70pcZlvֽ{*tR4&{) [:q).)E9=3"p:,R$-#1 WohcUJ/%/ۙtNJ=*J۞s/kD=XTKa()"*`0nHz@ (SFXRmΌ!\]:X [E]N.HjN &f_yӕS9GCzva *#Y>%;_nc+d Vr?_5  _ ح.._!y{R5 L#M<[Ty+ؾvvOIVelIBO2Ff@94rW x{Run2TdĪږ~kk\y/^YԆh*!WryǏ1_gմNO &vdw4p\ح^9ZxSeYBEN?^0:p{oTtT0x9)iǕ%NmE@/]gCCL&V?$6at^ ѻ.o8zԦV[qi@u.pkHLz*tauuqK<| uo6LR6P=6_ۋkp3+_ty|Q4 ܿ:ev=:G h}-/5' Ņc{f4ͬFOYRl|Rm> *SCE%eSʱ]͈\Y]3]kL.]z<KUvN1"1/2[dFGP 4s,_D[u?*F)VږEokЇmSo9VN!ïhfFؚJn@ .F6p<حiHDa2u@LzFDejޯճ2jlXpP12c-";Guvt~z~Gx+῁Sm5 ytI'`b݄"tpؔiB9?J2~ګTh6V'ɭ{2Azio49&ë_JKNtK^Ɩ7Zj4A-;R{C.v- 1U1?ZC5}}twvYP9U_͆Y-ʏv4mz[T¾L:Z~msP|EFVJx:򻖈XcS>f!t~ p6[Qip ",v-}ogRMiCһ+6ZOB51*_ )$w0zh3'Cֱ_;:s i-%c0hxRJ>6 \0U'Z+[+0Õuɕ g'6ߩFYGrcIҰ32&N=N9Ii 68nFZ4jʬȆ3~%8{ tl;1>YʁŔ ۇD9, E>ޱyG^𼫦?\ 9:fNL #jhޗ1di7O8LYw uS=IإM*+-]hĞMSuwîuE8Aix X[^ CTz27w }X%f{SHS)P@cXsl =Q '>\7-qhL?6%g8V>[i\ +{A4qT FX3>O*)G^syjhv^XҢY>F49Qb%S^"i+.֛= @3%.zE ι`/d>9=w߉ u|rq^bDžS_H6sd(}WOշH5o͘R9v^8neKDߚ01lr"ҩ"U'lib/͙fY~.X P7!P]&>R}#Ih}vۧx#)?R:s#Cr,mu/ Vu"73TJJHUɌ8;nvuÏqx]r .ACnگ(3 +H;nH~`xϠa5G#j(zNG*Yd_,_sDXS7xU0? IRJxnީW.ng8+zJJg#=v#N}~) 3HVh5d2)pBCXy>lzy'Y{Cz t71P mt\BnXVhd{єq:f{Q]_˒`+3;JsǤMk(2]jyheWO-YLbp J,H%6wAo п8! 2Hb/n0vF\dރ,mћY()g#n'W-HAAuhSά/.}rz~g+GPq-D'Xov[(z!E vc$7i !y|-.K<4OִJBjp<wX5T61*Z;EA( <;7cxhC\Ν5WkSC"CBUB`Zs臃,g=M1xό89j;Xp+} 츟cܯbtZM Ef3<ݸ]fDϳ~i"6O .QEf'M̛SH) :Q;~ }gyqC[/9$jI[zOOAd;lc_ .b.Ej[yyzEGΗdUGg7*JRQcxv+:9B1yx1Zpi& ISPΖ Kؤ0jsHh$`j%| cqJ =jVG*0KVb/NabP;Ħh6">#KVp4W}qӓ>&EqA!ԧFJȡ@9z={^}_uz_ם롢fO@ٝ%3rqo6覠[c#G.᱌zm@fwm TJDV5c:>IwGCq#Tu"f1TFcFP_TTͫ}Cqqг SYmHeQZ%0ni;x~h.Y*yM"##iaaa4:bfU|і] (kXw{cS#ssS0Fhަq?֥]'ő/)"S2T P><:jn\p0JIGn)?vGd]ڤRk~UhsoC 2vVq%U+iS&=DM Z+**+ lLLlX4vPMS(2xhFk׊+8M+R 4:Y;o9hiOؘoܽܜsaՋ/Oϴg'&D/QԁK϶$Yq45uK=]oL^VhS(=x~)3%je-Iyzo`Vlqi}pEbCH<k0َc:t>_H8w_vQNױZ`AP }yn UHi7F̨ /S=N],ca`/ɲUg./(j6z|v)no_6Sy?v|'i7!VFF靖XtTZfz9d 2230ofcw5ݒ}厧)iZÉ?&M*0d.*Z66)LLOvVHgZ Zujy9uL6XDi(ӥ0z1YGoizM^h&|n~{yOFF*wct\` Ih uĀ~Dld:#ȕ7;Ģυ`U:1 :SHPeb)8Ϥ~aG,[\P5x[Ʋr ҉tXQjɧ3cīd LlXh@O)*"clԣ?;o~*뉈`^w;+{fƍ\LW/8iKѱRiEG̯;[3]={M084ٰ߅[_-{DכyCwF_DܿP^DC(mO kF!+<=QC^I,¯E3v2.%l43̄%.@^eW꾡۲>-"Uk]\s 2(Grr~qP֓m'%E@jnMÊE tX@(_6Japu{fml7#ř3+R5U×ia=s12 R;6o:Rb&cA;!]-xd яS`W(h~a(84XbNp|vvwTC!dnZb2[uO@Jb~@@  `z9J6;"ߋ _TVpn+H-˱*X4)+ʽ7Q+;>y[LVg][PA0sZze@t'pRlTƀs?o[p2IPD ?/Ln`mHܣǫl/dc^j:(EaOD⇍I/놴Mwet(.h4RJ/T'A}Э]yXtY!oR$JZwfZd7Hd;|[ ti131*-7Ҋ5mF4‘!Zn| M6buJiL:qT/x^ i{܃RTWHh&h[+l :60 n ódÿK"AII38I1M]VG+7KYְJ:&e`C'!]{L/(膝oTD^z2e*GUX?%53%擝Zwe+-!'ǓjmjH"N|rޣ)LRZp׾NLdgԮT=曚?YN.rẫ+IuNq5{D0/F.Ϥ*Tz^af wTѡLr+'/SM|e6pj;m:^QYp>:8sC!,^~.}p`MXf)Auƿю>c|, ۴+M[<28aG8׊nj1gaY<&0h?A,! ҟhB3Nĸ01,GB8lM(yF(bJE'rܷ|b'HOr3s#?½lm i4Kbi>xyp 'Q J0܍U3OnAaW '~Q"S廊5 ||5-iޗ^B{YٍFx $wbZĴ3 zj_ 4>q+T%Ik E{Gۉlӌ]J\c+?5ÆGa! =C0{mDZezX'Crh>wd>sX E#2xo/))3=-4K[Y{($ʹ_ҋbl]#` Oj_*V ǧ^CXVODt2WXyzbAXnXGt+'8znSa^1ۡ [uq" GahY{W}k"t+nk&iF=pHFU. xӝ{ѿwnRg'AxwL/$ ]%wT&[{kw⏭ LjZ↧M-vdR d :oN5cяi&7KG=Hyr oppNJ,ДdZCltEb?!$h|!8.Yp*`f0R)`&E,5)S󟟉`-h4? ANoJ&g}NNOYzIv^k%L (22u'W(sfK>WH9hΰtݚ'HN;h A)DYڑbΟ s蠽rF= bCkfz<7עG;K;v2꜖%5}y%+&1qwܹVjO"4Ho=~Ӣd9;^bSwo#Jzp<*Iӂ UWb+iMfP[@e,j$& `ט-/mZ%hkI.N,i&_陷t)`sE,OsIjÇUr44waDHE. g3@OPJAL-(Pus$Ϟ:A>"wg]q/W"YToE! W 3)jgT7&WtL G7]"vtw,-uSfBcŻ? %۪EHȻ7>aVp*QE$ +._=n2S빼MDN㽟?WDqdg-j7+4Ug'#~:xLN&NA >_'8ޛ<~(IY(J\uV,)v +Jg]WY ~]^E9@޺>=Es`"_db7B;'Y"p\Sg=/(RR19rmyEp,iR,vXoK~ ߾}AOޏZ\!};>ֻ7X211A֢$[ǻГ ߽ ˣ57$S~ׯ_J̠g^'sR4wr~0(/<_+qb2v\s;Z`F'6 KZۛ[*MrO&^trLGs/VAcf_煼Fz׌7MY_0d;/Zn~"kk56/u:Kx8v~*.ye n7ìR> &l2GhDdf˾rwP(N來l؜45 gfz&ñ}7dRMT/wk][dp*oKzuwcW _\#3O~B;|Yݳ0LsgUUh#hL\P9zdeKg8.%95y ?08،.)7+VE举on(tVeƌp-bM) -=A&e=<]wԶ!x)5+KQE;2vcw#frV:*ںUoϿ<$0g*k)a @9@ RG1\ߔ~%vh }AK!zćP/cTmnt݇aOl^ΆO|柄-Ng`*65a.=Ȟ:0wz/hlg!(Bk-Pa5vD-L Y+&/*I6 u> ۉ UA>xtSWٟ;0*ň`C Oh/5 Z]d)|:n6/JF=YhSQ@;8Ixw_>~7s?PK[C1uI&'p('nuvola/128x128/mimetypes/image_gimp.pngUT `APQux -ZXR?  r2Žr(2w6$Jm)eYڰl ZҢ2w6D͕?w u=~゚'MJBU)wgљA!D<;rrv6+kIɀȓ!<64qA?s= BWB{>)2H0 hh(zDtUBPWWWtPWTTLS&h=xCsiqz̞W0›R1.EJwH%рP*```zpWs "\!EFFHd2D7͸.jhK4O P;w`b:۶mcj0LS"Z&){[P(x`,R:q@R ͢5Ւ~$.\XDTM,ό(0>ؤ,Ov #degZ9n`HrPm";40ټٔVE"qpZZ Kʚ  赒4 #͸tI7X~X7 a|(rsr"j=~u}'[n&+FTqÃ)Ɣ5 {{{"#I/94AnxRhW&((׍"EEr"R`+vUR2~h%ZZ S53iK9H'`pY ]̸qlaHOi P}[i9*\1ѝCr;Kd`{ Ǵ)泇&wnTxR@Lv_9{r\9*+m"_v$RpטLih]ٮv_y-RF,(\+1qٳgϟsKFy㺧U^\AJ~NNˇ.}IIn=Ͽ|UagMS5ɺW#S,E_\X 'S4y>?Dvqwtf(l2_KfҼ~OnIOkX7P-@ mBʂԋ" @Q6 ɔSFN,6(+Ӵ*woHr^~>!;ȼd Ol*~)6`X@wFl y-(^w[@\1}9="YFŹ˃;NbedDS:409L}\c+^[HSTPo096 2&/}FUM R 4uVX:*׮Kw>Ȼj r#]. "+ƍt~ˈA>rBm3@1@^(5Bۃ{F՟ʳtp@ Yfj!U}Zz3`/-Sos8F&Ƥ_Rnuv7^!;?APq MoJX)* r E 1, NW%WfWӎ$ܵKrEv<\ه?'OKlxvVm콯z~q~R4!Ƀ8 'Uwr;g[tk\fK]kRFjڶl׹A,AZZ5T=+ä6Su=T%iW"$Δv䂣]@u?˜܏\ P-? xaGh vA46P/s!pR/f:qj)c`dm?WVѻ_< =а}@KhIpCCkBՖVLwSR;Ga aH{5Rz68OE1 QSR9r*,jn'5/B6QgdpZ&"-r P(8y?utۄاjąZC$s`y<<}37Pp&Fwlj45{d#a|$a|EbbuH:#[C ohq%dLKx11}EVVfYjdWU<pشK֚ 8s-֐V$`(\y\@oD95;2藿ba;a;vhÐ`1Zvt;,,*4F '}%LpR#xKpHْΖUN8g=qX} wF^ T&$pfF\l #JV#R%a>pR5TP>2x]AKiC֦A~$-A"AtCizPQż Tҿm N!Hu(uȕLUB/:/Cћ:I[Yz;x"\i#1zhG ԗ0闁ۺj8m5sd#fAUqb`mw7BFHf:}ߧ[3Su )9E2}ItUATՙ1LhC}ⴊNy?NUGtzR9|&+' vNs5SwtXrˆǠehAB$zo_3G*IQdo]x~ڒdO'+(ET#7۟‡' m?ka}x`ڣRT/]pFf?C;Of$y ˣn~[[9/mjU(}JCSe3ƥJ=': `<)歼œ$/~;bxE՝Qw7GJ 9 o'[∸#K[iwT{o`dHzDi^V. UcԜId O~-[0Җrk1<QT)cf=ͩK a%Djfz+;GUAwH3W)\\I[آ:ẊU۔hě/Չs3%CG8׍,>Q. 7ܶ3`H.?Bn3*RyPd3oVYWB$HbՋm&j/|`Rcb@#_3(6n<$A\]v#o y4`:YTk>ok4~Em~)M}=L3*pIbtЏl0ЇD":}'.5㕽s0%%hӧhp=ek8[eL7#o qkl\!F=Pe형c!H)Aڹ p=IiG{_X`e,B͍iŌ6:ƌLS;nGѯ#=R.ȧ7)H^GXju,`%"ٔ/+w2dH1a=lB"ޡ0ʍg;(DwTM}}e69YLaZ0  rk- -(y4;!1|6`5=%_ۗYro¿D n]9ޮit8 0㹃euqfO Ah6$fīO-6hy{!ʈߣtiݿT)޺u)Ly2DEO*_z@{ˣKGdV%+`< Mv_˿1ǂ{p܅tnV2|Ԝ܋qBV'D:@]+Ҁ 3MG3F>WN7੅}*SnjҬ-*{Ef&ZL g|v.p|֮U8Su[ł]G@މҥi>__p.CzQwJ}R|Ʒ pXZ cZ:j#j>}hbnڋVV[3=7&^H[6*O.+H$pb'o,bnƪ]XaU0!j*(n,r7׵S9VLoWukŅ?]xMǓ0r?_!);U{(|A13֐IH*`PU}MZd}[B2hŹt^ QaJMdl`c݇hn`0y97`H&3zƞS"RrK[r$ɾ SByܡb}[4]]] \]鑘=2M[yXzDk4Ѻ])|^[o7:yRbڧ`tۥ˖k贖 kWK~ћT7 h 봯K$'Nn{̦gpiÖfP:ۥ.AFo3Fmoc&[~`u\<bN&{^gиNOE]h=ݢ} dl&y?Վq#;lBՈW "/L.| a@wfGD@NJlR|s}9{l`ɹVM}/z)%ً̑1ca^`?9I%ܬ3'rhq3bW?V!a5l;fi,NFylJ6򗟋䯾}1\ؔv.QZ0ʼvL߱#fZrMM0|w3T ~RUf(Bؿ!?9 '\ï =2l+ 6$[ D];Ob`02MH U"j Kg(nXzH5 uY.tV0҄W l/[DD Uo39aa&oʀ9%Nh FLZ%gc#=قc#:y9j<1luiF&IJ,G+)  بwtS0di)UUEKts+B>HUFO^Fr}p!9_zѴP56:OW?u/=C^r*lԭVyA$`Au+Wn|ͤi/l$l7~nܕ j3@1 |o3KذR+yqډ N(i~+Nw*/)9,`';(Ӛ\ wl,M {ZE}.?̡I"$I/Uh QXuO'÷mӧ!waV` ^M(0ެ6oҳAjD)k_xPV6-;eDB}&Ax=. =oL|칞řtզdC`}(q6ml|snN 59t):Xi[7ȉ;H@K K@\urBW e& 뼏 .Oq`2/Oqs~Qs?(s:ޔy+sܩɮ{r=K c3&K&dωϯ7;trh60um=>x\nXRAû.YTе/ѷNo,v @lWgBrTbI k]f0G=8h|w",QUW#뭢ޭ,rům8 QF;*dJ/-+Jj}MWjhQ-{qx#6>bJ4WהŃvTr+#9'X!OVR©ooLcf\ j&-_h`Ux e9e&Ǐ:/1NO~;^Y\T`ZyW&`jƌW-?au7ti)[" b{':I Ʋ*7TUvCC&ׯMJzp[4pPodFz!^ ( tOIh%瀖/ZB{>q{clA]( IoqH'ʲ,,ǏᯑzZb Ze|_m)GiG!*S^k'r,Lv.4)fp[SO >&V^-bNzʚ/3&\=jLY,c^cB&i݋e4Pa!ã82˰=Gh%wК%~/;a*B'\r*wS˜bp=[r9F1jkѼ&*% t4'V֯9Xh#<4+" F~{ FD%u^v!ׯ[%vC2dI?KU|L{ǃեNmWexwwwL挼ք4s_Ljz-"ul5 |,Kj$:5u36/јA7aemavdן ~|DE;?AzMpK`.#ԼXszHMZR-AH㐎Tgi7*#cҰOuQP!x^SgasB.)6 GC֭@|BDoo/>yEy,bhD2naqI z<S3ʉ]O$B9SB2i ~To0$~|a#Veg$wA$-C˗4@밋D=\a!jÇX^ԮMzʈ*Țq%ǻo;_ ~s"sI兘gg?w q tӵ,y4B%xoHW@طOhņb1&/!\?'bMi*莈>z +JH ҎӃ7La%WKH1ǖBlDH6uA|>o܃k<(/t(g_kء'GqL-cbb->q6O&ޛo?~~\swKmsK,\ܦs53}}.tD~/<؝op=3gΐ.rMY>PX ui1vf߸;y?SE 9_R{.gXϦХISyөNà(3ڌ|:QU<6v`A7doޜΕuXGfX47I{z'ea,CSs!tCW.y\ 'J kn$u_<}6VB]=D$:U¶VPPlBYb6}5=ME3J臼^[XXv)+wVsf%| 7s 8S0Ջyy^s̑Ͳ'(P̃%Q7),7<< Kq222hPhcmp1g z۷VyGD×:9U]qz|}s#hZJnJMwDwWV#;EJ0ޮgI|eh*!~!mGk8b$ a:t1quE^A<0nMi r}c^&ٕ(t}Q|{ٔ"l; Go]s1)Uzm2=nfFo%"Q9wuso^UȷM~ܬ>j'm,8yoW-Vo;j-H1ѢutRs%a&u'y^]%X|ź?>}xfV@_^~eON'`{/j|ͮ[21} ,T2KR;a.њ:~RQkp;鐀QDp^W/+XVuAE u͍EvnolB,$(xN_L'zԗehӗyy #0K |dYf }W+h/۩%IB 6^r'tTGC{Cz: NZa8Jq1[$[,ǼZ~n:9=XE HBCN>4} i/HR)VX\T/‰lxd ˪z>n#wDOed@EIm\,ps7/Ƨx j^r* pE@hbpCf45\XӫKKܖoRD &upqHJPKTC1I ('(!nuvola/128x128/mimetypes/info.pngUT `APQux Ez {~|WfoMu#u Uyd-~U_[h򀊦m`bg_1W౿G; E$ qHW̪ד-kQDsUL0",&jAt=*s 5>ST\\\ˊ7qclfU)i:'Md_ŨaaɚI,X CV ˉzSTS [<,#** /K/uKt.SnLPlCT tYwő>_Zr^5phdz^~۸5\-WIqqq$X*X~ ; k9Խ !2P>sGRR,|QQݻ([onnd?!|`]~gqrmzOap*IaAOw;W`*; v\W9Rh`dZj qĂJؼYSXe3'1-t|,AP9~^nn?6*&'U! lhut>޼ys[^Ҁf I?):֐BrKˁRa6TMKW}X|"8/_w,fDG}ue9 1 ׽Z|GgdbN*@wߑ'lQ$J[#s9"r0N)?Yʉ ' %mX kτ*3KHjXbľh*o"3n )^F.D%bWlUɡɿyݣt\f2n+H4$TҘXCioFop΅*tkbqtTX#~NU'z.ۙu8V3'on;vo*) Ľ;rtd,`\7lݷ-=eb+p,q u\ ac ђthW欸W Kj&O*[fZKz uK&AL"hjٷ 4 ~.eJBylsZvje®y9!"EMOj\G= @|D61cCWWHA EY+p0]`V 5 2dsXѼ=NJ|pא]VR`{byΫff[3hϞ뵯r)&K/-j+sQ4X^No蘿HI 1#my)s1DR 1qfPZ$|fAb(%0Cm^:RO!u%Og6; Na0U2r:܋̈́9ٽ$)`Kc6)K2T 'dѯq!\ UxǨOAL-˜k°^JعU>0߈0x)Zg{/c]F0Ttc&s]h/Wi?N^8ӞRGė c_gp;LDJmDJ(#q=UERܣ=xO{!ln'󀦣HWʡE۽KCJJm*α3DOisAPZW`~]ǚٍc qRЁk?~d׼`7sspJ-iv]C85w4gx` ez f}-^\ , 7T/U-nk ;sc.GmorŰY5_-h qCD} @,=H$5srg7@OK~#bWMJCcP1v4_>8(Ѝ q=z (y-aU@f(x 48fŴ6\\?*ϞeOC }^'~0d&s3g 0(e u5X« I5E8 :T@[%CoMg-P*[o?];D ٓji7mQOd o?Cb^6vЭƓIJTm4J woxkEO4]qh^ogSaun7DF4 KXx\tvf&t\vVu$;L#fQDq4`xIxa A@2 B> ҶHcnS ΅NIvjSU,&vvݍ>HFY>CS|n!Ů2j\RmV~b54䐴( WUNop:O۪vB䀰Jzdt旱Fߍg-gWV"+;)[tį?\*#q.Șqdh)ZϨ@yHk.g\P%Ei}hK&&6U͵p!ǪjY6|xTڸ&O=2L|9Xﴣ>_!g*cĶQ/VB߽H1byͳoL`^4Ia,&hnaӰP#ka PFzv*_/*"ih$ e8=y-ʼO)5 ? iAgrzEqLkV/L88KcfɷP̞:p:M@ijզ&f*֐Q,7z?*Of2bYh']Ȃp~XRٛ9>8lzYϫqtH3}p$N y|T#ȿ@74ئ>n=Y50͏9hwCxq[(cT;47NkeC݌xA#* j^1"`-ULg)h$qT \ B=q}5fo^j~6;aߪn<9'J&x0]E=uT&EX̞iծȨneJȤŔɲ>{J뷂s؎ ̧z&f3 $49?Quߖ-&N:쯫5U KH&3o}levhҔ 2fhv ^.1?NҴdª.͔O0cȶ6c"z0#NV^, fB Z(c9AF%Ij ٿR lAm1)HbmnJztإ8b>)17֏A#/dn5(C6D1^d2;dVgܺa|'tЭ)-j'-"bǦĤ_daVÂu^@W7b"L:AŎ mwCsvhP{С)Xafb:Z}oO|2_aܱ!F?K5 (`h/ c rGr$ke,(: ODR8'O r3iF#Nu[Ay%lRqYJԼQBK$&?3(^MNi N_զa-`Ce8sҲ篨/ṗ>j09M^X byS̏ <;=69G^fK;T |93t`2_&OH\F@>$GȹƁ椃@5ܥ b$Xc:0GSn˵z6+T@rXa 3h'w1Y2_'h&v?0%S,ط^wK ig].A% j^&O6k.Au^4-ڀ:q;2Nq3dz|7zc%!x3>9:Fg3:fwChcU ]3OR/T) \Ֆejotۑ/]WS#k`}8IPK|k(6*lݿMV:o,XFI?Gfϒa6q;ǰ$[Ccim]=Ci6dCXzhRQ fTOfPK!P2(y= LYTBE >-!|boKzм0, ^ pdޞ|_5Z>Fo}y"Vv::RQФb}yJ +KA#FrϩGJ:#m=|ڟ=2kFi'{8$qab>ka.TXAbӂ;2J;>3+ppjt>:?LFS!3쬭*y 0h}AǕ.ukP٠a6;trPMjsy=Cp3 蕅3hte 32\1^ e‹с& ?˱j)0Nxi~vjXr{&kŏRhᖆG NPxo|#Z !RږҪ'ln;=/y9ts?AȋCyI>Fܔ8J)ͩ5VJQ]ݑ']vUesUA<&*$mpBls6E/[c¢Y鏮aL-'&<0rA*-(ޞ-{Q%@rC,6H|G%OM 嘎CB%[klfP!?)4\ 9ʘbOQ d 3 %dOkV= u0V>w[Ă/ G$ Wc#A(Du t1XhN-Ebq|9v2-u^Qg;5Xj~&zMLs(Ӝw$lV|Cx*θ:^̌tP_3]v7Pڷ!M`V-ٚ0=|3:rSx-RYۑN[}pnاT=(ϯ~kzgkGyqTpZpIx& ~[ ;7_}@X8u|J\ /[ŘU/"ax(XNn| sOr~f`c*jukKPWvJV#teSF8J+:wzۦxqPBls;ԏZrd \Ŀ01]RLCxz!<_; ۑ/PWKF-Ş$|nV|Qu!FMycRu*dzaጨeoUJX (/nԶ]1;$df Y"M5Q!SGJLlL0 ;E>pe(8 //j݇sG$[Le4*jUwݣn3'N{H)e=V !܄OKߥ@Sh7 5{x"C,*b>\Jx&{rDH V ^3<=Q]xսpqX"Cq:U^'s}Q+ X~5J'5ԑs1jƾwzZzwYj#/[Iߣ_!QND:2$! #18vik̥]W8$K3S]_*;e:A;Q$U~?sXV wۺ|UROcj>w a`k8Ss-_ Ϡum,E6E:^&t_/z^be`Kkҷ ۪Hitg1nU;[ʛꭈw!GBw q͛`$ <')P|՗4P/1Rcj&j#ReI/gh?9Omx*R*alguiyczn5=f +gSPͯxIVS\fl\T@1(WC*>|HN b1?Zxc޲k?`3%۞) C#n E̳LEެ2@`%`6J7e}Lp] sY&篵F>0U|=)`O_'y؞kCg'K-VѝueɃ{-4>@q7I(dSv%^f}= TF;'Gd|L;9qg&~ޅB߈QaK־j5tM{u]V ]F,-CAB)rz&28R%\Aޖ۩&/Kx5! $&ٳA'ސv$,[EZ59ӏhUee_acf.Uh_et$?\_SsUs;eכ`IvaR)VFUA` tlĝg'. RD7BFY]3oyS3ϜT(nf6TIe8yƂퟙvȔmDVd }Ex+WRȝ93<|l?G~N8hR~sr7f0L y%0;Cz8SbEd8|V|(z; [Y2_W뫒?xs{I)$$*ɷ YokJ:s GMbVuO<W .YGtf7l"I>>~RT0`ڂ `Uer,$ى_dR07M#z֤ipo"ι([8fmboWucV/(;8X.ͫuv$(vt)!ca^֜؃)Y{׸J V;JrUDh:W<jm:A"D@s]$Uu?XL"9:*W@eUِlH/Wh@uÄmH=:W%̄Cx  "ûArR0 ȏ,-&!$ o^F+")_vE1Bt_Ba*B f\~tcʼn #Kߙ}mb{ Avv٬r"l ^5O,UR՛Ö{F(|H˪; J1?p ƮPwʕ[/Qt䤆#h|-ߦ[q=S]a!,lV|HE>Zrn`*XS!fSy>-%>^py8g,{ر"m>ޏ뉥]?IZ1ncjFibp-蘞:7֥1zdȰH*<,^ZS֩l3jUYNN4e h8dde!gk%[r{$T_lدg*+iLU*eA.eT"K] R Q\hJ{JIwX~Z@{I8ecҭ O9$CCC?Ë[b`nutuQVSϟssqn)_{}L}1h`:2e9@__3Pfn'(yN 2U?YF <aaǢU>Ek/'\ RD%` |:P Ԏ_L%vWpI>Gk4;pFVS 1F&Jߡرss@k@A%?ۓ1.: 'Rhfn@``.ͲФPz~ߢ=S b_ZN%Ulh trGݞ-x-bK _g3P>lܪ$䚟K(]Ҡeu`St HFS3rlNzH| Ż?ȣ1JXzL `_/61M?_hA*9t:/4®Pp垆 Wm8{j^KwfPDadiMJ.)K'f(zA_4ͭL${uF"vMe\]^YKKRJV#3hްy 㞚Ay .:@|%Lq70Գ슇Gz OIP @/ɒ5fB xuf 9cs@z~a h#)an:"խӆ]m5rk[AUz(`cc#VwxP7*9ҥKѯ*ȹX:RWѦ{>\F;&@¿sgZ2Ϊp z֑ |1I6^ied C=jR[.Ѕlx}UeD~멉ЖF4` n1>uSMURm!6Rrq-Ajj>.3sRCVpA7;̗(; ]9+S 82bs.Ó֚5V^ !b6MjU ȐF9_Oen|UO8΢X]`P)h vX+%x[Lдq:RqIBv&Uj%z"©,8,N?`Yp-LyߝPKXC14)*$nuvola/128x128/mimetypes/install.pngUT `APQux =z c;s>|;[[X5>^#gF~%aM2]ԲTCm}hXBE\7,&*0*,؁Qn/FPp$6j)bX` -p\2S_V`YL&yzzo-[RTT`H7)x˺J>56IƳ.kg WQ9@5#N1U_ť@+B +:: Y9pk}Ä\  =۷S ;;;˦<>XY{9zer||<OVײe.a3=;>NTzb.}sAy~>Kl^^fh\[Iibh4Z0OMO^dsElam 9עe/ Kwќ/º,cX11F*XVLN}BD݈ p+igasrNU M4[˩zHEdY:D Zb_$xw@ׇɝ&͇^aa.UpVթr\AZn֠#;^/&:@ 0I fU0.Ta}Y}IojgY [~Yɹ9I-G_ S>b )F>mO@iW7|x8mmpVTT׈*'DŽ=,nָ=*wc"VU6ٕ+oRU9"#Ƨ">P EI5ԼCQEB 9#3VoO>/a3Y7'>TG,Z~ԅ@ӝpotFuyTï̧_~SkxP{Uqn(2E3bE|G~#<$FRЄMa軚JR&f%FiXD0h# ZM~ %CkqG;ml^ɦjF6nH$:pўDـ>/8)P#,r5/협@cN f0e ;I""$Ka #g0CI->4E%C%{ <N}?jKc$tK LՙMB2 XOsn? 5l%Qb*KhUY"+cu󖕕~nX;fx!66(I<(Z-Golvxe?#K_p}M@7~ }x]&譱hϴXLjg:k >ˉ32YiܿuknO{rբna>|mwz߈̇!Mh_$ WhX!k$&Ȑ^ ۽p*ޗ#aǥH`W##}L`gKV[3Im-9I;aE!> .1\Fp^-D!卡dX-U/{}b^ݭu+ְ+`M8!;X@M" B ;>^ᘑ}'R~$h\S)s3yG*BGbH֫cˉS/ + ®>6s[~JNO9#UGFWIxm: qGPZ]Nx!ZWE5&7J9+/SY>u=`_lBslDen_1p׳$pBO'' "4U>KWKjwy[0Kkps: L@xl ܁UJGY0$ZR 'mނNU9X>~j|ٕCJN UrY8g-lw7<EC`]g$? X/x{C& 1&k}+߅# WY.|VLCf\=NOHV aaQ_-2?Po^5"H%.-=b71rSe3kEϺWnXeRv?{ëŏ+5>d>pm*K? > 3:{㵎ژ)j-ܵYb,Dc|tMvh"A@`MeE߁@ v+mW+!џ"'r CiA3U0э:rT>W-+&`C0*< $zYg#-=ʺɁՎLM:GEH<$lzrpF6{Z१뉴ea6ƨr^5BpG<9ko $N]Kx[7y-<$0]ڊ܋ { }&1p4PFis#z#/Tfɳ}R׹oxl.oyyD?RWBeC"XvWhl`-$Km.2ڶS(K` Ʒ M#Ej'{+`db`mV!Mx0@Y؉NOI 7bМ'uV=7ܯ5l o6c2榦0(CU5ExdbgZoX`# P|.*[SߜUMq2eST=qy':n~3J*ydvߦMasIʙ tHpmYϐ$Y/Z0z@֍?@|HJIۛJ;-kC&|Bg]Qwbg|5e%S B}#GT мBcic Ɓ~|Z-7 n[&^!1%gwsjq}ʖԙ#O>VKp!NPzեCiKWMe^m/[5*@`dz ٷBq,Aw ^!QڄREѻ\7'.#z;Wdw:c78574CFb*dcz:M]"I?ǘFX-Q͡)d0Ls~{b0p sx-+F|ndGԿ5FVxPmVS{, avH :0PT sMxWPjj[4U#t?Pzח4Ԏ):OA$Cnh5CxwvN,SBpU/yÖ[jpF௨_PgfT}gѕiШI,ޙQrQNӪXbVTq]+at `LŰ!92t6''j)г I #_BO^#,<0R, ^(xs?./ B/R#%|ق 82,z+K^n8/%e}FR۠ؑtI,$#tEYG<+;o cnHO+~93:}|k:9ƴ)B{u{"/ jԛ#!@,X[R3YXΠwl8|)ʇUڝ S;_7}?I:ǢcC./L|H&=ܽ=Uu*6An0T$]A"ôa3z,b&T™IƐAfn&\v/g-4vڇB)TynC.-_2ߎasS* r/Џi;uye8jR}ӺD2pv|EgvaGAkxb_iҽh$h`=21w¶ۦO s&"ڡ.K);=X=C82_$vVr0&<H6D\lDܑF+*rL3c]~޴mQLhwzbzN6?곶Y5REF/P$M\ 3ߣ%?[#wL!S\DHfL eW NۘKWOP%s4WXw_uvql4%8>p|ח:a+LՃ%jg ޽p.  JR"?@u!j2_x'yx{AillY)lЭܘpN*{{d6X#'C]h-dž 2:[7ɖcfcc:d]48S< e{KYGKWɳRO=tG6hҾv&PQkFDڢ2|JS +n9 35F03qO1^z;՝㗢Vǚke^e--gLo9IP*,!?eC]':#'7~5mq^ULՐ)OSh W?:a;RɇHuRe&"L?  ݒzߛ8שÿZT+,^C%g!L;v$%-Ҟ7흪z^n|\>F_ +E$)~&䄉+S7eh\;>hшsN:vV}"jo;n.EmF{XDvEcth>`u'{izCY*t)gstwxymͷN.r(-9!rfM\\G!Gz"^5u '6{ #?ਊnUзʀ.-*ulQ'˃|2֮=_LpM-CJeߴjEDij'6pe֤;/T{TĠZ6 vcK4qIԷg|"&sz*#))9mV_4<ȥ_g]9z`jF}_]W-h|[ॣc%Z^٤sO)vSx*i6c0rj6Ds'yb] L4,)JVձ $w셯cv8FI`wo)V! R>Q荑 dbQAE[<cOF=TT/ф6S߶ktmEϹ^^MFN3ґk p׃"cw67HY/j\h҆;%ٌuy@}(Ҭ~ܮc}+6ඈB\/GVMVc%M7װQr$#{y0jRx 8 Gd9H$5碰Ѩsj3RQM ԬGD<<9QwMtFqy<< 7,`}g|`S.w[ n9 j9;p>%a}/1[C9sa}cvųlGq5\=g{Lm~$X-!)zk.]#ݻn9P +fXKuZ%&Y&I# d'L1"zk$Ltg}+]./^twa$. i%"z^|f|G1:!Ff %l |<4lzu!T?ϻxQ >;V$VȚ-ZOz:}n lgZ #ZQ7U7NKO>8.$~9/at8{<:}".pm{)ɔJA^I++NCN+SeKHoJy 2nU:_4eElfJbSs3CvWXT-kerH$"~hψ5Idѱzk;vtڰmC/N>::^O8UrI+"vU*Mrv%}2oO9W8Hȁ[ԧӗƞςn!O7g]3.KhȜLJѩ}r<>((a#Şy>Csڐ ~B/`.,菈Fěs X{0&5G{`˦xzݿpJs;K&u Y9¾C#9x|i.j f07R̓7+ajMTIlÚmqF3Xpy3|ײ^hιpAh1ǐ' Ӣ\׎Ż69+RVXmoGCQIg !u{@s3Fs;D' E׍? Ze7-׶!*KLJcCڎ:m))kJN7rWʂ}٪q5fqO^._]w­ oiIZC!كOΜI ת6_WBsW/9t( _V6 G\SJS%Sc) xqª*$lJhߙ}& Ū3t=5g33}UcIwF'f qGAg3?DʦKhRܰߩ 3m(3DK6.@n޵֭?~2n ]kUhwxs^=n KkNp}-[)yQ=]OKMQ'[if^(>Kp70*Vpoy(ꏧ ɗR8 @Hۺo*E |zZcQL@-wm:ÆzS2\-Y}H֍u`MHgZv#-:=mx@~>Vp@@o?6h-&`)}Y=x6 s&FKdDz-|a =hO{ߣ:jJQTI]RwH{pLoH<$TEEwXZQwLccDt@rBfx=AiT}O 96]m 09K^waIث-0?2*| n/-A? ͯĝ; ҽJ3~4%3c8SM{GrjT7xr| ~i2J:@$'z5i<.m o8Zs\_7&Ϥ (|'Y/oU9hKJ"3A9?PMщR^*oy% #ڋ߈5uR<0 ^Q*1;pDD߉uw;X1"P[ߒnn/$zSٳ0Bq) A~QPs]4|i1ҟMYg$T3r_v{>gT M7jY52ҵ.]e{qݣTr$iHt֯g ؞3m^.n75hl$`3.W3V\U5f\FO *H;fd=0/q8׍~|*?7c5 O)ZU$g\0^T9[wz$O¥_M [bm[/ D 2V,r5a!~/\Zy!54HmL|2W!xQ@җ+hy0=w\EMUT&ԡ"-ֶQovnt"6Gb/m?}qgc\ )B%!zx&nj KCdQo._*IV`m^i_~[41 N벧Fd̉~  Qm19{|,jpsmvVm&iyG@!7:NE1#>? [C#}y4}bK0$Aff%/y R39157}(0xtxώu1gH[3uU0$8Bx" ??gU$ߪk|RGh>lf_92~5 o#RU0>C}BZ{OhG u t 蟊 qYqBYB Lo^Ē/.$-nCKW0au7&G>"=XnvJ}yp@WA?!~nY[ˁe_@N}:GnS\T&&{tlF%7| q5nSL/愎Ol x~J莨 :Tww,o1U~AUvX}V8ٵS_h C qʂ%dT o${'yJ6VPSI2/ŀ q`9W@Y+PKOC1Z DD%nuvola/128x128/mimetypes/java_jar.pngUT `APQux %[{Gu&4&גVZD <48Q#Oɨ c¯a !AQm4Wo|_h< ZؼCu/TiolQ fUWc6q @x(~dx6)%tco iaOE,̆`h_sفd<󹦐pml;\{Hgo$R+Ĺ,pF5+-1UmN(p2@4ϻ%rۖq_Y 5JawRW+' h8ud`sTWp. gRQW\{XV*[U+Ъ@"šARglj8a+![֡ p7pD~2pG0B4#1CPU\?Fz(N+79RzdV~s}.`C 1yX}*56ux9a&)CMۗ70\{8RnS E]~ܰ1uu3Pjc`W su3Qr@,}نWAlϩ;}z$"c&Qv}amm(V&@ᕯr!̔ #/^*ꍁ6+*k3:VlCd P>4z t5Tj%5oHM$1G _ta}6+%Iu3mm9:byIb.D_gǵ?%!؍|e߯vc7''EҎ*^N|+qJ0y1E3t' \1mȢ2UX\BVleyq;3/]T=T(!̢F]Ƶg33e~vPtB qC1)”=O(_6&we- R@p7' ٧c 9-ނŪ5>U\ mk[ P%|U`Uh3䭓>VVϙHB:j{VkL9E%Ii_tޜ΁*,Y*ሬzRoCwQn@ hb󥕏aC7 p]s_\wlxKc7cDNgbQLwj+ú*`eYBkz 2Z4:q.a)/c9$ x\dDt;9Fa >EWullVsAsGUJ[1zi)'į?^]T҇ [R~g꒱u1Q5)xz[ieǷrn|ڨi9ycΛUxJVQOe6ϜP.lBǶaԿLf'oG6(^xx:Do2ykۧ ?jBێ\vNC\IFnTmBϼ?{WÙ+ nxe~YDǀlA v̐#mX;V2 2&MF+ 3JsNj>Fh wf?rn4קQxxDP]!a!4<]8sy9MϴESI7VX9H W"vi~aA@S!8َ] _a/b;Tׅ%]Co9ILW%;iYBouFBh Ln:(F>dy ع?&>"L]9GԺR!-8_y.xh X"yfUɇn3Tù%-%D4AV>mG!Ha[[y5 +rSN% 8w- }>(Q4mafaki (΍Vr WqӚ>'w+qto_lk]-E!$ ܷ" j\xnZ>,>-Yy}}UI=RƩݮL`[lWHm&]gU")|R2ƫ/yI"iX˦GЗ*&5nXꜶ Il}X3ͪUpi8"j,ⱦDB%=`T\%QC UĹ#ŷ%Лr0s^Kfz $ .> 2#!EL'ats^;SB0҇79\n;4QôѢYCJy"OP ANoHפS Olr0XgivQ ܀g|jO|Y+O~>[{0}YWٰT@Wq ).끰+ |ȿ*Au#ScgI0%%% NB  6 YTˊPM_߅嫴`<>0)-|mQP0*,R!4x꡶Ob* LQ^[wqS7=5 2eFi@qGpY]DMaAaf:M-WS9ACRQa[Oï) z i_5+H5r"@n7bk@uGAm9O@eo7p\%Sʕܷ\߇ˈESkfdla(Nj"tg 7;}t+fg2Ʌ^%edV {>D 0fENBn3e%01 a*(Cdϧ+ö,ҲǶ#'ׅF><-߆V~|苊:2ms;lM 0hj ѳ ^|M~ϕ K]D] К, f'%#180wU\rGvo{JC4n$A.--'⟪/.'EٱK:ijfKܪ]Bb8J(Fdwz <'XkGU/F5MŤ$gT } C#5OAG kL[; U)Gʮ` W`n$:b}!Y\޲(OEQ?OGҮ6gm#ozE}Z^aD_6?ZCͷ&RAg"7d_)tGe붓~ߊų!cW[-^cNS6IjQa(BwyyN-){5ٗ[}=JO@ܻw8Kwd҇¥d$)9JJWž0^Dc~zP vNZ3GT ˷^3hg1'!˖ !1\G<ܯsޣN? ]MnをMϲIȮM>ɭjW|]D?4Y'8Aj)f#0Ycp{R,tٲa.K9mNz#\Z<>8+<F%C3z88X(" .Ɏ߹W!ȗ$P}=Ǒ?mWH-d2x:Hyt(ww2݊WN܃?~t1TPtbDNHO2=_ Y!M &: [\(Yzfk($S,dP?+()X)N^ H:@S|K{5iρ~~2ќ◤>rT-л!|f#qDko#, )]eYOshFΖdf*A* ZNŽl[ggԜ^]o^L/şz5ZF3o`L((aV&ϐ>'x4=L*ɨz%*ʄ`͕ ^DzC-khZOKQ )ႅ5繛X'wDٱzEp  LATW'a67k;ozPiTQҩ KcMw b>]k!SrP\| Ŕ<|'4}"E J^(4)+$"Z՗_QNOFfZF-$m*sښa{]f[[`Ǒ$ DA"O]b>j@Ob[ P\P^ƭEB(wUardĸVuxD$>G'=J~I^,XF&4 >  G)E@<|S~%&GwpXƕ'El`΂Q d,,CPXe\E6~v" YF'ٳ1RzǽLXPna;!X\FNip]Mn~po8bE:jڍ:NÉ쿝jm9 ;Xɶ=d1krYlc8 (v1ʶ&s&I`QtǾ:!ȵ⒅7ƵmmoƺճYKq57R> a,S,Idls,w- 2A⼼o M_RQ|ZIIχTõʸ ;7$E[^zgbҸNσ2f&@ r5:$ -61n= fCkȷ|dNFZt{:69(`\̻Z8дG=$Hc:'XeJtuW!iV ײv>׃!k^IjZ;B$c 7z!/$#Οzɵ^Hu6nrj\O7lڬ p@~5 ̾($zbCG[%P w3䛑)~]Tӂ!Pf<0h l(U-~%^BJNޗz?dUQYc-k>lv=v5w+~t L}i y 8Z@?8 ;?7/ua..+YޤZ /b&3V %u¶3\%6WoBTدm6KK3u:c[ ~!c#6߲5b`J3J5UFkNREi*$_!rLp<ʩTz ={9/{*:Q/ц._ jV{qw#a;{ϭ]ۀ'Dz4g^_?]u}7S7QDJw17Nɂ:NN|V߿m*?x(LFӺ1@d^UR\=vrW5V! p2~}ć7V"PӛEn_all֣M?噶q>Ϧ.kK=LŐ$eD~P+׽3&QuDE 'o{gӍ_v\N>-m2#xZޫvij=Đ6`t|E&OiI*}w' clûOg39fO{u-|rpܺ+gmgP0ߜ2Ę8:Jة䟪>f_}cZɑןDTKm[cd|c;.BCx6ٻ-p I; yO%~m~Dޮj֍ r?=-aA"M0V@:i6ilt$bg7Jm۶ )++~dLvhGXoNDޗ '<=ߨ#u}&z!)Kj=-)1؝yO>Cޣï`g81f/rc = XIh V`\".Uw7Lx|OH{yboMMFr!jKk;u{K 5ek:=\\$|w­=<l[iWYOsDt3|^)g۹4/}e;޼:<*Z75;F匴45EeNÖH0Q4ֻVTz/y&ǨxM/he8@@+T<حY&wVlG3%ybr'O0ώ]?tjjEӮ%#6;3[o m9jUwKbCtMRI+]G#?|ܽ))K)~5sBvbD"OP tFW~L7D;zjFg'ǖ[^=rB]J+g* Ngj=?snvʦUM6bNoÅX#bZWc{n'۩5$5>j( 7G<@(.ho gJYg( N=tdHL# a?|&!SČ*bӧOG+>5(ymq^bčKA%@҇)BYҋfIJI=('ڦM*]'"/y=sJGJDFv0 BΪ)7\!;ДFYp.jČ-בb k+J} 2renGgH:4]cܖE{Y6 blg|wL|Wڎg?bAZ[ή;s$O.#;-b0UYynJƷ-~_Dlk7-ozvk`j+QPȼ2b aF?!?ħl8#@E $A;uב݃CI[!JIJѻ؇|xWv [?u#NpkO_.oF| HQ$y-YWOHz^ID񡌂a$R SxЊJEh`gIC@[^# mXN[|b-V1fR S-7XҮW!tW!"xPԦy)*[ '$7u߽9 P}L9PO_kZO:ø4o%LFY|a"AROܣ3հ.![:FJZ)~z]hߠ<9Ny@04(R8,GnCICʼqgYP GV 3\d/q\Qs2o%"M.qd7ux1S@-츲]`%kvmK{jHhkԋ[Xv)7Uq~#oo,W ݽ`XG? wgxЭZk%Imġ y !^a.w[u?{[J,WymG=p̙$7s@mNcr %x'H'G tu*u]Ca^o.}}!Pk֯LUl:vy;r{-2sdO#^ hfrBDܐ<Sٜ~R{Tcaܜxp%7A&6]I@xِ9x`T G*ctU+1߁C hbjpuebpo$=u/"SP=uGN]prS5Z/ rʣ E5YXF|yNpQm}7lV,>e~5{1F%Ly՚_Z Qq|A<QX_2>YZ#iNыhχ0d𭜳 P* n8By ѷ*i.Pڋ,}NAiS{߁ Nc%ZY|/ÆJ®W*C}<[rwB$3vqoVL}VSJ0yoi=tHq(YI$ :$hb ]O"juL,H\$ӞoE- Xc+|]CzMW&T15GV}KjgZt>1v-WW ~TuYU +8qkՀ CƓ"55o2EKq4uΐJ2[a(nԩ見#Vx5WSQZkj 5)lUx?2+N1{K[՗ꅫk =QߞJXg/&鷣 xF7ax5slDs?/C6ҒFmAx̨PP3iL&78 Ȭ22%b.#1r@$,im6 u~7ChkB37Nޒ|+Z]jp{~UфW:P,NRUU=u>6v䘤1Q.\ m=*RU_͌>Ӭ_3 Nw\ZU~gń>No_fؠYi5xdlQCt`gy-^zV lnvk;@ DsRH99*Mf@Џ $?-A<A~lt{vƵXUc J7IE]__||Snn =DaQ"fzgaUyySYXw+=WzXmrb͡Ee&nV!& 8mƳmvvlC)rN&MT2Y IH8.ub$~IfH?NFM磑O_q}b0.`=HHd9P0r4j.*wpW6>dݷ7}`rsAG4 t|䦂+ %\4[hED{40BS.fwW+iI(bk|M-1ع*Eh`ޟR0ѫIjYlR: `HszoѢuQH̕a[! :&؞PKKC1=NNwE*nuvola/128x128/mimetypes/karbon_karbon.pngUT `APQux EY 8Tk?0 bKҐJӢX'$QXR(7KbP+YRIF}7slOoR(U4ЦƋt^A ez VWELUv?P>B/(\'{kAQѶw#&+&!r9VTFKF]御1{B(L`uaqQMY#_jk (."zs КVV=o}kaM+Q*]ninV`+5e[Ťyi3W^}OCk`9_m&9>A^!JKC'ܘkWɶMkk"fHj`'RtΝï"RS(g~%e/5/׋[Zi:PaʇX>wHWBKt:ynhQ{uH~Z#:|Ԝ@8w65֦MQ1Am"LU.̌k7U+BWʐjYה編'|g"9c+ɬHF$\OzW#e9B1p8JP ýQ:: #5=ȑ8]x¨cl3ֻƕ2,o {&%֋5}0J_s=(X8?٣:Y]]MC N}&YVEO؝QQj5RNȸ_> i݂c|=ڎNÐ!?tk'gǭ]]CքIfO#_)6dgf_}VoB)(&8mZp>RExZsuHw{?v,LGzqke5Ŝe'>PX<#QSWTƴI uh+x'X?\&]ln}BiV+?/}c%x:2G=ہӀ.аr)v.'QBHAz^wiL #9NLW5|[QB&K1Tt<=4F2 ۧzC_D7rq=)C?LR(aD9q&f h,z DHnGNd"l'wg\B銛%e%W w*V%l#wgځr[B9SjF"4x䄕//@buvtVp%IQѫyy;H~Q?ĥFk$Jg-+>2vؿ_sH҃c~̔~8uJ\ytN`|4 -^ݜ{hNȦ¦IR@.zQ8h}rBZ #]ؤZ۸qKG\fӱԽTZ1m*N{.1+uF`Za()om+{zCԝeWH+{&2<ib(ǜS +5<\-wvwmD"e [`?oG^gtI-$~8h!NZcgEm1uX>xxY P)*b&.ݶ'SR^1Fȟ OEzb6}~ }>֪:HWXxҊG[Irksį_9^0{m@w[iҿQ?FEV+gzqPCOt%'ϛ^1Ehpc~kٻPg~6>*8WQ:&D aۅb^˥4_>3^k%h<ɽzPCZ kS ڇ ~% ] bw3{r^6wZLg%}{E1!6T/kWpޘ `žYh {z8olBX,8K屈Z]~<5|Ъw1'zR ђҮ40£j@^]=:%CkT:9_ESr梣y w~EwRcMohKg6 oDP/uwṩ*8q"UMQS$9 x}e`EFN4)I*Zk<QY<8&=f6j|W* 5 q`.5FmΞ/H{̖x^ݭ;C-i`@e0~J.juv9c^ : ʜ$!O(No`qRU*X6g Jn {֑yxaVI쳈f_2JuUOT` \Ug [wTY⺾/-(&a 6cM`Y'G]w?XFfzx۝]7MtѠky"{^2trTYL,_M]_G2!$Wz P, %Ml*rwu KkmSr凌U+,iECtJBl|Y9&>fzjP:6Sˆa*3ϵ|.Q-ꌢy|F]B>RZ_sTTeSh!DlF6%Lho_jzN%V%zcM[ö~G/tx`) A?i8ñjU'Oܜ8nl|hXf[>㒰86aŞuW6嘽hjHO8s STtkC;4¸Y h^ϔ7A`Z+?#ǐ;MK?,XyaN=gTE؅{D+f,Pt^<<\x}|tM!ȲI5ttm \uAAFUFﻁNYViFr8} XRC"S][F>5N]eb&%B+ljo*FKK%)Q'Lkpy:4Fa088c5I$SǾ%^ ;P 1KAǃ6.U-?[#G1 RJ60樸!)W!/g?-Z СNұhZH4heԫ~G&NGPVp(_'l;zƤI`*}UJ.#l[5g\?qtHbe HV3=l0V5чcVἩk/k HP"J۴2)삧;}Iϗ[:385/Ì:Y axiU1ԆXď/a\^[PLWPqnr;Txzd++9][vmwr-.@qN!eӌc;@{|B+;osL< B^<y[%~gxDMKS5+*_xZ`0r<~ZR>I E0m•kQ̿P%P^TĬjšҽwE+ڇ73[*16;7KMLPԀ@e}Q"))%W-Lh*T^]mW]ܡ:>}X$P\pHoٽ X8r*}:>~e#k۶ĚY;Rk@;XYu',=㛰d r; 5ܻw Id\ʹvm|տT!*pGR_&e#y"EYf'b nj*DJd<-UuM !ϐm>%LeQYD76(G#XKߓ4DQkDh.0q>N؈hMg h2Xí 6ޔq}:pI{"uX/ݧ#G;)9kU3'8Gpy@+RI4%d\ +TMXpؗOPD/= ̘ݽ/h8:[`/ i..`daw]_(ѡRrQouG]Ω:/W'Cy?#TG=)~j2 vdWΦIKNw!F}ҙPzF G>i OǷNXqA} "G8i$#;JZ$}bnE3(J:q$T6֧o[. wȲS>0cg}t޶;E+'Sj+9h28̽s핰I<+̰^mI7i5:k{iJi|Zmq-84G55,Uj]dZ``g$2PV\.7PC:؁afyh$(cOSdj9b۱&#SZ x?] ?u$.+km0%^f?rኧ2&~>\!%!` kO'+ޤr*dayGq_ZČ`]8J#vrWPV4GQ[M:%׊ EuL/~0(8fAVXyNӘ'0?|g#<ľk[,9JxsWa|lQ~~|(#e84WP`C=iz~-Y- ' j/90Cџ5N'vR0NxMa&'V5.L Ǩy]44MQ,#(7sR~![1z378}"O>a!;'EzgTg.(5|sG[=OJ";t%+(oMHں֤aA,/p%Fr{ 樌w|ڰiw7O )g}J+e$V$+& p iv0FӁ{Yu 2x]7,Q2Mvykdľ2gLgx9_ [k[,֙:g>:̰uxt-f< TBܨ>4wbش*;%ʍb/>H0ߋ]͚^/E2ڥs]h\⟣>ǏGkklIϝԁxINXGȣL{Ϟם}~%i+eƚ-bhƀQϟs:k yRROS80{PXӢ+(([5`h; r݈@/WS{zI*||{(/ѨӗZLm(X"H`E.B[oX@w::⋫E'E-zT9똵/l4zAN+NmBޏTR{(JUA)8I9Jv6(3zVӁ+>^F\݂hw:nπƬFv?6=4V)Fʷ}A,rTvE R}y(BOk. MDxaK/^V5s@I5aXak_g?7H}_Y?pgCh7bR69v@ j\}uQ6񸳖?PKHC1z01(nuvola/128x128/mimetypes/kchart_chrt.pngUT `APQux -zT[BK(BB$lg'BB`A$ HP(BT|%**@h"UQ@+(B拿Y3{瞬?%}%T6zɮ?_Wx)chhP,Ev;1_`hã1QAQȓ /ɋ=p SV'U͡GX6@"Bco-HA@ln8sF~|)(--mfѥ__/^y^Ia/= y Hw=I%_cCCCl>?Fl,&wFGDD Ī JSOd m&8À3sNE1Š2+Ū6urZWx:T!hldj^dztlTVD/tD07:{Q/Ia!,ͦ%B`VԷkk=^~f|ҹ‘Nfxmh [ⲖLuNLM5ewtMS"/U3QT9EE=,]y2EϲE%FY6fFVUB lm oQU祽~A)dҍȾS[Ȇe69Oz&g[yvcҊ!0/ пV$2(U\I1S'5iayQpr1\!xAdx -;ޓUDC$S}hF05xAH=xL"S~s2ɢKI n%D~ Yp VLLR†IChU HOX/8 :RO71{?0k#s._-df^&*7P6f۷"iﳍeHq˟KiKs7i܅L(uu]N,߫ d[EK2R:˴Vo(dilv%s{ |oUm GfGq%xGWӪfASLKdp ^к-;E^AlJpTf^G?G pH놃{!P{Rms3;٩.Z)xvtvD6ss{վ^`}Q>[RTKw7v&Rh{L)=鿽B=K cləM /x4ՔZbK^V2V#Lȯ_`3xwH9(㼛rTak(lUw wPnl}k9K|+oXLe̶Uk`M~A0 R3: ;ѣ2ܥ :.MR 'cA@\{&"4k{RΤ?`O&ns+e@=@%ۡJG NDkӨ+g\|OvQԩ/ ޒGϊaN"PARx`N|rUQ}r_QǍz˽zK~ѱ"v*(B .tlrVD @h3/2%ִ^쨛_Z]{QfpF/k'e+.]*]K/ Qe4K#6܊+B$Yнba"16LPf ׋肦qgpCz$LwOl:|A< >=PSRI">Cɠ ygk*]ľ MC 1>U0MpG Tʠ@4Lo ^? ϣ^RYs}w@^HCVu+}Pn+bȴ'JtcVG*w=.Tjb- 6tfIθ.ZI#V)+owBSC@sUI5aVti@;gdy]A[s=I؏S@iYvQ *^QD1 ZR~ NFo5bqpsH_cal|@C7K:FɩxxS!=6-Ggն`cLrO:w(;m];8~h$cAUHfR#G^9nxWόy]ׇ;U$쥸US{Djz 9oŘ<훨VX 8zn{WOb7?‡GǢ}ϊç.坝4 U#%iuְJ"Z1CX̾‹@DeY ۓP$ie2>S&0 uĘ7d"JӗJGկx.` nf<;n}Wܙ w~M`E]7QZma4?$QPwpR >sK?l'56}=)䭮 gh{tRh! ,FYGѴJ=ȫ*#EЩ)+!#{o^8|eql6wNVyfs%dhxQ|q! X^\sEx\YUESonoG8{}RR+&-kZ q6ϸ }P=&gg#%;(<|?clG_tPG_C yuYວas{Jɕh/winZltUClCxX2*Nr1YO -86rp(g{{NE7Ae73` N6]s`OT!LgScȿ"KXYT9`:SX1sס:;ˆoRP  j曚+y(ZC;qN"MCghqrjFЩ81|?I͘]Fm a98Ǎ߱uѸ4 lMXɂrZwp."@1F}20IۧAgUmD_9W={;g vK;^SK G'º ~u DZZ)~i :Ru+c}i{êeH:|w9 c2ZUEqJ?\-B$ױ՛=G-q L1pY+O;-ZdpZss5Vy!k7%X}$ڷE0CEZ]WJp н<=C@'0Xёxs"{tF1j%S9jEߊGyDFO˩TtTxkIzr0JƈF> K#3(J="JO_%S%v5X,, ,h2Nu ( ޵*DR~UQ>[OLQR1E)c2MW# GϤ-RJ&,DV~[;1ѿ)`u^02i(3~%V -go,b }ڂមbP3G˻޶ ];[d0{8mP:[!,ryr5/ip\q+R%*wIT&X*[1XaqsjCe@ymHm!GH?]\V>½ 6}]p5v!/෪է@lI=$iYq{yiݢG .Z {ϳ "Fsd ld pfxŨO,#S,O݉kysp~Iji:[S|50 HΖ{qUTNv>`p:jĴ+rp<%)R[A:ΈteLRHjuO_JG%CV?wrPD3B?ՙ܎) ` (mot6N'G7*rc䰪IZ h]s&u0T6(?T94|x<[r&X~0JJ!v\6^jToZs315+V@Zotc+S{Ds#R(Sn:!K!ysfwedM=B:taZ; P>}vC?\ ;k/}8P/{|1xHoCbk\@P 9{yq>So0aKT !)_fvZuqI3^JK/ZUC]+_V|,7vgJ7(i^M(7 K;+qf9x5~j8djF3!jw6 Kڂ7m^ TʨsV;wY86۵јzm7`1,ZISa1#4Ux`c bqfg@PR%&x#d%ޕ1C%ZDO RS$. yBJP-T܂##Kؤq,ޒ:1Z In7x}A*{K+7[jW^ >*l2_%|em\&mM;WEtW);(|{L9-,)jPZ=2mPX*<܅KK[bʦ?}L:&6 >fJΕ\=Ϗx_bRsq~3 F׾e:hi$,[m-P+~rl =ev |-HQi%27M.B]]pdF)A->7R%/_To#pJ vGK0oܐp8M4enA~Nщ %ıǴ''_!Dlǂ/y.vẕfY L3[9)+4pa}JpJ ;J ]8QyhǚA^"t3VS+*Ų?٫b"̾t':6tJT:1#~0~f\씿cHf@ZA;Kc=is5sQV$g-rtǸ#-QaYەfީQ3BHhS8v5ؿC<"-5]3d)ܪՏ_ݨabBzU-k]L<8[)+1I(J\hzwJ!=^ંG1Rxms4IpB }δ+ι'b8ܪfxיgnA_GfԲp-e{.Zm$KQl,OҹsƲWwnD߆skȩR Gv/[y$UĪ͞j0>Ix!@+ZpUP-m벚4[M\mV$vRĻv(:ah\gkӊi:{ 鮴;ࣁ~ǔifްGh}\J&}1P8Cߢm. 3pfͩҿ% %BawxlǷLd5/zގ% o^jO/~bFJ*.H$W(Rs4N=ǁӒs򛻧FW&7|B(h໕Nɚiim5] հElaǛ0.JIEDÚF 466f2i'xR Ƨ'|`a? sxJ(3҉?axOcJ%1ѣQbzc{&PL4UteX>lF$d^b?SH_O@%ڶ Վ.>O\ >O8/t:a T@[w0X+SQ<յiW'K4_)~zQ uƹ Fw;s-JU}{6ԓ_>v?r!MBC][h#iM eЃwtGC4 %R K؟F땇;~ژ 'qtL'Qt,n-rF͢1YccxdoCjUEe׼شʂpSй{,0~xzƝ 5:L\[[ ɻUq_P~#".&pAF‱{b*Ѫϰa+Rݗ#D {齮_ՋM9Aҥ\\#l6$B-;q;aMgzb_,Tq ?{YZo}{9IuJ?? _}F-=ubSXZ?^.3M1e_2䜻 }Eyn!)p|Z9~AUPJո 'nQ=о?̠b͈|)aւs¯{A}N&' ’A}b|=C SovMMh hdL=?l~8"\2N)VtnJE0rW1C-"8q>@YE _m^L:F?W%@u>?Y(&{>Ÿ!bʪE|\ѦG"lOET?74iTG[s|U.B Nu{E?&)3C&JdBYIF|qlw8Yu\t$P{.hJzYRP ]Jc7ҿ axSFRޮyL* 'Ѿc .:2䂱#q84"29R^" 0v~i cРZ蛭sewh Vh| rE,edC BR R]nZٛqZum(+ qV96/ >,'s?U̘$wd%Zkt]N~<5YL&GC,`fm{㘉@?_r߶"!`>b0J jN^B71~ǦM[a\8)nF[$7(9R_2JYXx)Ern uT]OCuVw J/]Mk?'Ic֜+YSԙL^G ~^S[X\qeIC0b^539PJi0R86pDۆ F'br蝽^J$SCs9}9{`-Bw]vªWig87C'cm^ nHeU:uZ`O6i"]Y?[DUy1Q^3WDsܰaR*S^mAm (2YbS>Ҳnd3-EvS_oι{!v\dW2XZV+>=|g.m'XVS-\|%\|ppq#K -n9_J/nrލ‘`uu9@y-Ӓyf4\# \:ۇ{F̓,et?޹++ǜ1&nH16);'529+W(~mjY!# +eLڶmucJg6H%!ҏ31r$+(MVߜĿA2ENH2tE=4iƿNQX]1uv5B6B~y#[.VhiM٪s0BI/ӻamSD٘XW?a\+$efLiПR)[JL l=:6 08?#qv߻vEBv>fʧ}ԪPQ-J][SSWԍK:o,$w/gͦ-^*GBĜeVѧzK iVU}1y'ГM?w_"ˆjR:u#j}x0xox!wR`8@o'$rGekɺeʇ ˇy'q$8t3ywN|SsdOad R4y E֋廿T>=o!s<&UU Ud#"7P?ؽ5 luw=PKDC12# )%&)nuvola/128x128/mimetypes/kformula_kfo.pngUT `APQux 5z 8T}pO2%LRiRIHcI$I3FcI!d(%)PB7C*-:s:}'.-& VoZb_sP @}-*\57~wLXC%4&akTP!CA'8P$~^H\##1iPjH_vS`1ssNL瑶4nIIIL^oV$;=򤒔(ΞQ1HENWVmTK⇫l-,,B gU:̖aVwx,'z4K&sAO&7@ gGU4W[}+!OHucf4G7iq 0U M(-uøvg&,Y]WҎ*i!J+K6܊\`CBBr}KRt:=vF5iiH"xeQWCͭD@tiDJ`K/K7 ~|~Q=*jKhl8pKC|Vȇӕ[zm[@g֦HC_tu Kߏk^gb.`m'"08KNդ{:jjC%1>Nj=M#BeNju6 w>ilt89;#%)Q 5j{R8|-8Ht>]i!CޞB8/ b#`nr2GA5~bOܐsj AyZ`2#0mM[鷗6d3m@6O;x ̋e!,?^F욺ÅdꑅyMt4~ #X>W|)'^V-adftcN2:CeDCӬ u]~MU6xUf|ULym\ "*C D9`տ`%em敮dm)Kdgo3__^[3Lm',W8^6?jccC3籼|Ǯ$47 )_ƗT |ʍ-fAvS^" v7<|L ӓ/e.2lҩSQQ{qf]ikQJ!OfÇͭ4.8R]Ze:;s+7?柠M-/Yτ 7 z_Sb^b\>#ubNJclm}ݻ&NFےSą6`sFF.`4K .//[ZZVP[!GWRX;)>C+>O|9w)CqU4 BZ#5l3۸Q2op0 džXLCwo Gg9аv,:[|Nk8"gH4c~3c $33Q!_xR1<^P9[rub#byyK[uD4SB/"E_ ƹ8%Mm#rAH-$}vDrxwi9ceTp599 38?X?c,LRm9*HyP]bI1*WIg܄QDGRc푹װ[717?q_m|;@"Ǘ9:џHk;o [.rEYbTŗmA999PFFFаϐh @leݦ4A }ƠSϷ_vwrP;*RDgƭ(~w^͛7k8-5ұޯk-w$Q\M]*}L-w#ᶀ|6Ѵ:c{fR;~&G&-=  dn[i3u3[<}4~zPJSNIN̏Fx!Ŷ# Xo ̗4@G 0lXE43~DE  ===uZW_Յ:4$_ "ܭF:q3FK8,F %n_m|tV`d¨||ҧ] ؆TmBws|7]:^(Ѩj8Sl )qocΘ\߳]R1z:U]i~ƍ!?2 ;{RϤ}*kϣ|c'},*OPM0F }kxVIR,Jx&P(sb\iǸІ1\`adm"i%1ZSr^*))i7{p&_Ѻ]tw!v#H=N'"C&e7A=ĺ=PCLm2~DQaA[8(O$)5ab@/}ԆZj# m. q`q4uZ6 mz(uWq -ql *"vᴥǙYdػWiux1/7J>RӖFKCY]@1+3#3е{ɜ k\g=K~Bi<Þad2#]* ({&^{|wI;M %[#u/"VkI3c` 4 $}+o7^_xcKތ &u -ZQSZ'd|E0ü3,$k<&-צr{LH7s {FwPSp} 'B*9:f[M@ްҲ$;7߄,g*pߜ:X9 Pخ} 1P/JlXh&"V*P-&`?Ex"o/xd(iYsfVDȈB'!=>f,cT+g?.},.s|_hnGA&-|r7 \=pi&5$&_p]AlrZ6QPnIO l  sFoz?5ˉܸėA#t Uep4i %Mx *[4XW3c/VA}#ylbU~`4FAز \NX oKSl1!6=n 1NJmA`ަ/{pLߥeiDLўY^82 g3v0Qԫyvi¸4uk6CJ2p~lƇOrRB׈?^7x 9j Ȕ%ʜH?|p0mFFy1 A$VC6^,rw>R`-{Pɧ:6#'{Ta(Gv|;.܇|$oֳ>LnV^%0X(GtwSKBJ}彂{3.U_+t>sxbQJmG LI$>5m[035=_G ɾOm~קm|d#ۭbD"e݁k+Dz/)up2eˤ!]ubMba}`wsҲ9V+ZզX 珍QO^s|e_- ^a'sdXB<WjfGed1G(f7Ͳs/0"lB3!a~4nИjjEՊp wWrLl-0'%+®$ylRY ^V#x'V=p5G1Vƨ?Q6 iG6! l*x0}_227U>i)C^RuF'KwJ1HQmV2"KI9+ct:y/ۜC"U]ArC ?rBc;CJѬKxNݔO^K,Gޞ&.Z ]2Q;;2cBnaxmoXh XQrx^;cD60~(!s OPaˢџb@ңfUpjM{&Y4 hetc QXMIׇ% `*4wb?LWf2uJ\*%fI`eaP8|]Nj@c-WgOJg='h|<4:OHJY7g_nk$A|Ȉv+Ql@g=m x Nt =Ԡlɏg>U8 "^nXq0*0Bʡ)gxHl6"88ZE@Sq;RMM{y[;yCH~E󗅋IlDڍ0uƆ<-v*1[5>[)%PdGҵ|#Q~iL([fxw1_0?@iԞkh➭E-*\5?_8SWt[PpH1J-jv16vՠjKb&jUTiPYJ-%-G짝@̛"?RC11,#DD ⇦Œ swlK i&~j6h^ՙ*fO'!PN;A!/&,30.iZ$.-*5h Pe!G>ǰ;;95 7UƳU-*W{jǃ˷i8V'D ١EA4K;&#LsU6jjP'7 >7>+y(CZ\ YUT;ŶiϐP8p@{u'Ikdž aБWVٖvέ'ڨVw{SmKS{p .#>p39)LwռۘJy7M&km+  ?Fr1=p0fpr<`$ G#A?Īcn ^Sz|d=0h楈'nPH诅y98KhU],h c傃A .`Gk"/P! 8PF$'JoܶDzhɓIwJ[tMt#ib8ïŠj*!GOO Li`- ֮Y ?ʞx_^CV YsgIa}=,9&P{R^.Zck /1'Gxdy߅'bBX'[3>3} C}|[H|klNh7< b@]3Ź} IAM 6yS\)oEd #hpyu6Y@߫S}O|h4|zB7sc ɜo~] nś%t΄QEZꃲr]"_ތZxMdQXBq{LPwVof(O=0AEnMHЩC%C\{[RN㍯^ד;j,kQQ^T9%&/;닅:T/j_wƦ;2Duʒ u+WSkk7}`W Hk{ṵ]7Ck}9y,emPp\~4 tČsY]funli rtx{>~:bWpzÁ͗ jhq{ Hʎ<ŠsIN s[M!^6TfN'@2PҀv=o6Ǐ8dKe};rTۜ*vP!\Zux*h}&&j&>']}ѵcP1ZII)V1!$+6荀C:_98u" O|!H%+/ۻwPoIS8,IQ6^E|'1zYXS pc9!ΞW;,p'}A5yyD*Y8/Iܯ+gMD;xD%bf!+oh-F2$NL9G.53#"}bɒ#I=-2@Ӈ1|05 ׯvmI懐 lb+q TYw`DN.a>ϖHUGln8J2ʼI?[]\lPKAC1=wdE&nuvola/128x128/mimetypes/kget_list.pngUT `APQux Ey ӳ|r[пs^*i&t!!!@ Yst.@]C'ٹ *:#+ \Kܢ:X}9jǑ:!**|ȟ2|RlRh70`xP6}%;;%`g7<^pSM:[)zʨBيnuU3/S̙~".o!d;lWR"mMLMm=BjP.SBbz-?߄sTffj>O4 >t yF=HOM V6L*~u'4@;ԅ ]]h۷wlj5<ݭ eBV_QDid_n'!M߬W|[wL/ h.rz#6t'6A=˃t ej5e`_`cz;ܓ(''yv7AN]ݕr)4R?VsYM.#+.\'#5{״  \u _ yCf+moĦ (l=L&0q$AYF>ߍD$aajs"BT^HWp d+H# "s(p0T)W'ƵkuFV\6.iQa02!}ߐ/.%7We7u{X0S4fM.l|мt^ĆLToq oE‚h{+}ŗX4huҙ`%җ0sEudE݉^)/#Q{5ӐD}'qkg1mij:?1 ~%p1X\#d+HKJӎlU9cW^՚*˅g>Qd%aL3~V(QYb4fwcL\sjNM륑e9.ZX7 6_d5ݿ~~|oFՠ & N3?7ޕ F''/`\n0xl%-}aqJ܈{H^ZȔ~c}:>j]TZ]|B9+zrnEK4ܠ;O CH al3msH{~>yjld2Zeh50ilH$-FIyϤ E@ #IQ# GJ,f-y?1"XσҦݑ,I|BnJ¢,u>IO+0E ]kvp)şZ{trLj'ZHJ}]ybε4 {!evF4V2A &8m]_et hO^ᒳ/Gt(isR)31 'K(Lpǫ){ԹyX~l&dcGM. -& X JSL $!&6 yP/`p?j:Sm z}w]7GB>>5}u 76eq7 P0E_PMY<0zxQC[1bD),,?9$$/RI5/fWQ9*?,w5C(1諅^@O,f]|SI("BT@Nqxv]*i|%뇔"#=u!D/ofpG4mE-G{H`Z\2|E^#X̿OW AtOZs21kR>1%ŗ_qQg$%`׻ SrŸtVqNݞyHx0]o,WYE*c1s_6mtDHVzކVδ@i(bb;Rf_%x}Zf3'>RZZu{.hUdw% ڸ:}9I]8Ҝh-}֤j0\0^~~vA)x'ic1sIy-%dB~},k@Oy[\J߬cv-˽WB20 /%Gř5 78J3*vbGU&D'sJQ~"."7 [" 8MR)o5+}fKC祂KG Wz /e?4.P3^^Ks%zgG_ߊ岦m&a83-W zV;r['z`kyw]QL,YAM)kG6Lchl hbau,`kP7x>7WғpG,dj}?j7{+`ՒY4D)Ջ^@Ow+l|SZ=dF_#+9}'-3R1!NObd=xfn2JE.j( mΣ8fZWfċ x ‰H ;Tvu d U5\ {ihܪ ESFY_osŬA w&,Lic~!jŠ6~` q8VQ7+m(_be4'|ubRl?ItBerhؚg]PE6 bosf>o@b]--~|]b?'*/5#fWB!k>ղ2)%Nw1+spG9O0LZnYP㞧&a۩Jw8ι[_ Xf8۫y Qc`E9[Rʶ(z/if$cy؎[Kr!o;ƒ윿p?i'ܚepHdS"=PpT)Nl%Ugy= 1cZo#,W5;]njM):Ö]bZh5ޕ?IuyսBv*'ol)Glܹqj&ir%wDˇܔlR8|\M8-5H(DhŅl ا&8# v.OP{k݁fOMnUGFQ-OЧ'bvbZ{!"Cׇ2 LE e*9In/16.<9_w RPM5M.HKRtzWlaVK: k~@Aŋ#x|۹3 F5ƞIHR+i.tڷb['',j5kFˎ>@1JLLNj_>7%Z㟩/:A)nW1#ٔw r$~J*g)biܮ8aVUn F.uv_:Ņ#x#G“Eθ,fK u͗=L,K.:Hn3X2~іȸYcv>$ O סm|B{ *?^ãؔW&&/Ѷˁ,!Z{E[tH6ş0n{q~͊xt\6ڱ+fUqa+‡j0$*S'En5 zW/bg;~I`"*۰/)NjϘA:gI<'caWeӡ^NZHXh8ʋ'I Leyn< )GcɈS3ݏguuu@AWhG,ūW'`\/sqGm-7o*ehNࠀ2{o&3+`7{fڿߗ3f`YXQ:QRz^{3؀pBcy|5T,G۷!."+@N: Co4Wq,v߅>)X ܙ.r C&j:/}^;6TZ@\GmFquIA*Ok{~ZOFI0F2Y!4z8dG5hKX2?b=WJo2*29FMMm7\]wrC ٔ[a&!3[$&l8q }eQٹSMM(c) dD`^V9[N  (au9HU I;с܏諾woDju24Qz]7QEi"ubl 8.lzWp')8}MnѓM5z_ޔ?eiqJPTS  ˀVFPK6C1flu#!"$nuvola/128x128/mimetypes/kig_doc.pngUT `APQux Ez hznVoUSѤ< hi@V%gLy?rd#I1-`d @D\昈c\ϓxo (B+\@dy&` x8n@7V`u9zo23C aQQQ-3i)t{-W%ɼd@;W*Z]D.uLe@__j/mj\h!c豱(zDm۩KɃuZNCb?P%>e޻wO>x2f_jpP,Wx̞괖ğ}8˂P:HJ +9.{YH࠙ RŋqX#λMTdfb']yxn]nME{'^CYɵjc0@RzT ˗V厑$`wiȈ=N& *FT M5_R\lBx b2Mw{'nKQ*N3|2EN*ĥ=9c5Fsyj8 R?y!jbR:!-}pT\a`:$c1B7Ƕ#64Sl?1#q 讶w.lI Fj֢B4,nYcW2(&H?At) +c7{: HMxY^x]0c+81ɱj֥Gً bCi9U é0P퀌?yl-+Ա6cKsNZrfY8U CCWT@ ,9Xԃk[mTLαW#4W /*!L(|:$"՝88loma)AQxZ-3;`Ps,g"cLT0Z2pU Pz z{bUnݓrQx"Ǜl X nn+$_>ED~^Chu`:W;ewFo٢͊M[tYָ^rC4i@nxPXhV]XV'aifڹVP.HOᴉ*R~mFPib[F+3tqI<;!;w8(a՛~r&5X8>A%z,YR4LНX#ʫe Zvs$l+6J!/v+Y[BY*k%G?ϴ$|/o@Xa=#Pt\ǧcPh #[ ?cqa00j6o #Yԏ{d{mcm\ͮ1vfMxl_VS+Q c NE[u[4d<&ROt|iI?{52k\/4VfQ1߾eaj5IUT.j%lFwCkM+h_Nxw[:uƂ0˥skb[R[U26Y=2˚7 -4BAצTv?[{{&F µbg_|"˴TZ-x18 (1,KF V r媡bty15v r ܡɑ$\v>O$2O3wPj܃*q$͞/W%nzllg\b8^/; ( x}MO7M./ J9qU_sPUB5Nv8I`RV'Wy!]?0KD AO;JˀT:tMЙnL|=C8p"nZV& llۋase1gW-0+fh^SI ::M/ AxY[ 1z&YjSWc jeP#pzΙ:U kpuUEFVJK0{TђqU3؛!;GP BZ;5̤0` 7УGս 81uBƗZh-<>4K;ݟ Q JPSBg/2ZLPO ?,ZrXg>AE#˩8蠞ATvNǾse1}*"4,,EzK&9D? Md+g6ZZGJh{ F,Ͱѧ3?Tm~} fZYx ȏ{p.?GG~RQ+F[p{xPɨ66Yګ!w1Պgus"^#urmmս2U_ S]"n /\o z&s=Vf׊zKG|^/6hqz9)kۗؑk) I=~$]e>D(H`3 (8%|4(Fڹ^ ^=yy–\@bVI.81)Ԍε$}0*Ժt\zz"ݡa㶘:w mWT[ b;LGrmlGMrm *[2i1tJ9#.`*^eJ,/obhAP~]os@*Z7z "_3*=2 y Kn.[H%68D:V%D߯`zSS֎<;~va--|'b쫀`?YHS[}jy[|MU=uT~}mwNBPNou' ,YӜjixgdf98q ]()x^e2Pg,k/]frR De" y.yd!<&spE=Rէ"  vaPVw@n͚}硃[/CQn+B`+2g^*9Y @'uT^q#ڒPcZK"u _3v}ǀPӽoer;} o2 'cM) 6̌\D|DoP(oe3/pcr | ^IawOAiwI fYW%@fF:k< o6WdWsV+[.2۸`\I`~ˍi]G}^X2H'<+qF囧pqޅkb(?5IW9b"gL9=w7 j.tF 90E(H՚8W6T@t}}v t(fq\]Bו.[NS:S۰D|u=Q2OA׬<IkNw= mY>._ǁnd- dяTchTxÍl HR5RE)գ#QsAKjql#UZ(-6LkezZk=!\W`sX6ga30[~&u3v&VÛL Y2q޴ҧrD;2iv_T֠hݍh UZ;edAڟgc/5_v2zDfY4#5i8Ϡ=.59Ѡy +\s|:LX;}j11" g R4jǯ{Vehp+xHr/Jx^A\c_ņϲj,,97thЍ{ YΚrq:TٗO.ĵ@`V$ags`yTs3uL:T{'kCfqYp]Mf7oՃU#B\ZG?+-K?z,ڀ'J~@})Pbbz5 dR 3) u퇙0'1ÇɢzN^G^Ͻsy'\H#N":o!lRY"xXpoyWM"X]-.vE2}Gy# y]S{WqPA}':QtX""8(SJ̯?YZO|[emߘ8.`ŞbBO04rmfRA*aR=['*x (crK5ŧ{L|OASNs:C\wzO7AãA+7H oZ 6BcSJ Gu=M|{;55$/[m_=o[W9fipВzAsxefᾛ4 aL@w0^r뻖v3sce"s(t[^c`7;y:c'i>GI ,Ƀ ZXzjL_dn /Tss@CF2 +^cTrX(n6X?tqWg#Tӻ]0ۇ[SdG+imÂ'/ у~J`];ҷanot*#9qn&XU#T8~\^t0ZݣbD8*"V.,tS Ԋq&Ym|X6I OG[8\X'/ML 667O )~m.  aˎT{$h×6+ ?o 8(<*:̬2^Б!Txr6|>x !=.I]`ot~Ik+KMj;5<7y\ XfV.9t`#wWibRmcJ( 9r5'I(pKQǾӫ&S )cv~0/^26Ncّ LN6zEYZG72.dmǞSC9rPZdfNQ}3!>G4ɽiM 5?Ҳ^Mm*Yc~2P&tʅ\_"'5 NIK|Uғtw|ggmU(d50HGgsk`6n=v8k 8"wlA$[]c.Iڶ6ގvY@ؼēeބ2&"Kkl~B"v>ނt:ebϖ|3G'Q*zDFiꇧ'41_Ȃ{6! QJg):f.6Ewc0B  %u^aH&o !O /݇A( OEKh|m:H3;g\̀A/Ǚ@D-#vI&JJ'9Q}G/*ooцFGHֵ DulJ֙_]%"F+cLAB^-uiPF8w9q! eEU|ze]GkRMǽPE ^0+،U {l~~~35+_ِ< 6V-.ߚS}_+[˶Ҫ'yp`qzQnEW; +\86-:`s}(SDdzЃ*6 S:5xG5ȺŊ}x[n7ŧ>@}E;dto/iO)bbNVXB ZWQUXlF{lI"&[mr= '>/?@ wzPK;C1?e-.&nuvola/128x128/mimetypes/kivio_flw.pngUT `APQux = XR]>|8O%h9 SV6q25˲R1ʰ2+3+=F*Cs6ɣYz~q]pX{uZ{Muu4WzW^YUDyE{kBg{ M<""ɫFG 8q,]1]L l M  0Y P,aP>0Vy{{4gf[hİ . 9\gAi1-LWgFi), 1blZH !M!料;WDEE!Hh(&þ=Ϗ_k*Dx 8.hu'ʝ@1<Ճe4lg YL3>jSNE {zNN@]vnRZCH=^S[$lgu60:oӧNape MUUCQ4<`=gA6d++=ݰ #[ !lEy5[+ J8aòܒtyoxM/8?ja~~#SA}7op[w`ؐ@7^*A3G; x*Ho5/3!)MO2bhd۠_8sn_eJN5cr> o/c3>{UEή#]ڠrf5F%aĮEzp JI-4Ma~1*ønJG+dQD+;O904fE(^fut\tYF)Ec3az̫۔[&B .S@ΖN>^ (=,M{mGY65g&4Wgxq5߽{XksM$Iz{VdIٗN +ЌVU?fL1sT/luo7D<^(Yeo]ܥ& }}ȓGp<BlV Y t2oD.pIB`N -s.]l)A@ vSv8tܒ&)ޠ* }ZQh$!-j;DZJ(!^&*s07:j83[qwHr&v;R,/ZcG{+{8Zegjlb]iaPQPL̾~2e֫/!i 7A:JW/;6$iTI*oZDd(C>3C[N,v|@%J%`._# 2X A. \@39zͯm 9OqPt5:t@ e(7Ђ9D;iY u}6j] /JFQ,mF,8'BPxX&f ukS/*Q{Nb2i@co H[f=ROO9qW@)TSOY1`\:ކV @ӨWӺ:QI% aLjqeФNZw̺ #e%Ч -J))BqB [s7{!(&_3 ;w;{6W !\ 3pľ %O_sԀ3Y{o_<  +O!y)[Ln*wxka->* H(J+ /ђZl|z`dF ӱPk1n0aOJO ehqO' R4,"HT:p pWOY3tq1W*=@+VǾz>o 0 ^`ml>ziHn+wz ;]^aTF=~ i۞: 24]7?pǓ=0r货{RQoZe5rPsi8ӔGIbۊiO`5'H"`7Q'4ؚKTVBB#"UA&!XTGٵH5QʶOxZ1Srm(P9upfpJ۶Y(|-:#߶.'Ymr*TƏIߒZw35YQGd)OM?8ۍjJoaP͐/_^-juX^s^qUPRE ߊU!ډݟՖ:1ceSQ\{e 7cE#ίopXA6fTez˺sk,'J{Y PJwHn/(B.Ǽj"ӿ|/kMD a/ك˩'R R{P|:je2fRQRT=on vI)Zyۦv堗<U I%mh;GD{: "Εd|&+U]9A跷z3uEhrK]sO\=k=6ӕY֔M@oZnWdPC R[ou4y*}g4Mz G_.N/K0W|= )E[ +O:s hXZ #/?K]Q:\t% 9)N~aENPq?Tn}ϛhe'>|P;GO) Y;kѬNQT_U8yJ5\k`Ȋd+Fmnܣl;'p:XWM |r>G3ƘvO{5kjQ `Ɓ[w iud_%_oQK"Bò`'#br1rⶅTӺCҳTt g:X}3hp"W7r@#G:Vg6/Tۧ{CXq#u>(N,a7S=Jf$[C}RdpdP3I{8iS9|=>o<-7|>KsUkjW`5Z,NgQ0.֫yݫMBPhucz!3"䗆0=2ōG$ZI]|;gIÒo}87:BxoDtȁ^ڋ ^QkX^hϊDSz4!=9_(X܆nTM_և8/Y/3_Y;#~hYma }2$VI""=Y}sXOf71qpf: HC.g@ߡ\muq{^FS ZbnWJjÚC>úJLJW/pOҕǀju_ &_ɅZϢm JMsvS-]yOnK۩bʡS9.wX+ngʎS[F t\ɼr]uEsջYAP-bi_cq2X$Xa W~+m/Q"'6S w]ޤM,vYqoT Ө#kM#rͷ`-ro'6+dZ}/5]Q::͖ž'{ÄN]xKCrVJ>?t.x:7FOP]N e/SaE~$iثPhCZo&Qt_+=1Mrݟ}?Z21jwWda_FO v!jvR"2&f١#'16d)V4^ﳅ',gm̘Zgo5ĽJe Pc(Riy ~2L,uþC+a{;?=doRQ1)12f|B; /r/+0ART=T%C$jbʂXNgY: /LVtA/iVθP3iﺒxJZXHHDf\̱̥X(<~_){=@z/ !+%?ה4 l~q&1h7I> C2%$,#zhwv6/G" _PSݻ;"ܛ ègk6b|/o%0]_%qZkL&1mM5:_+[snݤfs;HnG&Kasxʕns~ʱxuM9NNVKخ0F}Q62zԑgH2C[a#lhN rYv-NL[{{5A!zJxCWqyjqUiR$0[ܪk4[*2;enhdm71=VԨA\EN"MVɢ*wl##*ʱ7招LU􈑏KHdznc;lNr>W{d7:.މϓ'4޳BхԖOn^lEw$EBԲ}? d/!aw%Xr&u !Zo%{A Q'H6݄>uxu}2*EF1;k\Lz~{!"gO*+jҹD鱁r%5?688j`32I+AȘ.ECd?oCB>Pr##x$*d&xSj!c' 4vhciVܺ ? bAƣ[n9FW~4|RyH^.iq;>){U։yԑ޸0 [qw! L8l "fG"[{),bY?r$)!;GN<a].x?>2܎.P̟|:S'ZņAX6ԞʴN&]pO;gc逦 dR5 Տd~F@zKGAd=0/OPuTsb㯁58: tb}l|]?wσMA#N sni'>'h+Y YKRm]k1L]}Ԯy4Ӧd-ZvU"^猿W;H+4FzfUgU !Gf;X2C69ɿ.Ao_m]6FĹU6a~3h2,w=cN#\o^=l&ћBj({=!`vX'AȖLߣ QXV&qM?;:;>eG6[PM8MQ9b5QV5Lwƛ؇{R}! Aέz%oگ|c ?'`Ŧ<#T5nb2s? ' 7eYp"9OuM#z$+S%x3eiZG|v{b7v$;r=^U|m+!ҚXోNXH(x慯kf/G[ծxH? I{!U_C8mģC'Tzl',YA=#3Ƌ JoL]uh"$ب⁶jNf il3[y}ڔ98ݛ;׼'&NV?c:mFn.Ofı5-c5s;]&#u?KJ2v$1/tɺy&$ Bʺ; h _9ؾrfaT*9mqd|ni^;C ;I\5zpfl"Q2eFXlPc$=e[5SYhIEF5(c7cyGpE_ ;9wBp\9f[9,Sd{7瀇ez^ҪpevREڻTdpT> a3zR*[*kt,l:d{VF820}u9ZXj*l'MiTxLHpeZ49#-av v'j۵t'2ޱuy5/_k=e_0sқ9 ܪ!4nXF윣%,T5'wV?(:6== y:*j|up^"lבzYPkVXΐ~R%bAUG%yc b߾\ڑ/$^A۸T"<4Yp:cB%~5@͛-G7Cп\#hr67u/"YM=6"6tB{QT{Pg 6eE&J1T!y](z敭JKG&/Эe4-S(;E {GU6K6o֊ϰQ;5W~oχͶm{<#gy]DYylא'h¬#(hD;uajV#@T'Ӎ^&_Sz;W}Ez\ъ+e%pѴ"5#0Rf n G(&fX a"A\GǙD9qv(l XNH"$J\[[[\^OnX6qi9Èo"FvW3Uk)bnՑ=4ӬbwHܶԯ2ep%t5/ 8~| &M$R:žUoK!]*P duHμ_hs;'zhʎhOX^ۣ[zvNTӚS 5rG E%Qֆ:7}6kafBM$AA%m "jK[ yM+)x&ayeīM nq >)W_u؝;,vꄗChCԔۈ#Bl.Yc55A<(sps PQQ 4rG,J~z;aoQuxzqzJ{/tZX#ōM]ɦlbRw1KxJծ4W}'&&Nn Na.&tA%;rl sA}>_ ]ͥʨJ!.ueV]|o9'P^is: p6D ޳.CYv-śEcukLKO:59g‹-!`foBcD;g7`lPaY>$cnDYMrP3?x.PdDzY vڰW;,U/ `LbJd%y}^Omh[[*UKr\Uo:.RyFQ4C?><CoJiפ$mw쾞n3w3?Ecm鉻abmcB SI{Q K #@WWW@\JIo#ŋRm'h4Ѵҥ7Ww"9SZ la@LKbz )(LW+nǾ BtuUHPBQпK}ݭѣy VRV7}3? lyOfX_^2Eˏf EK Hy8W5S 0jՅ[A!=0Ԓ U9ûJNbe"L45O^?9]6cV3ErdnՌQ~Mh*X]ݵD=gf2߯cq5wѰ "g8X :%iF~@g_kTQb G13P>Vy{^]?PKC1o0=S  &nuvola/128x128/mimetypes/kmultiple.pngUT |`APQux W?m6\5 NÄ^*/klppic6HF4w_#j^9h/ Ǐn[~>Αۿ:4%&hh$Bot@ y}fѹ%KnClxN!rUSrkNDNK]xpt3|PC dnooo'\cHlZ pt,7hH&ԩxAjQBYf䠡7i[/#';"/]ҕa\ @k!mgCRFp7%%G,,BF'ujGE<@PΥZ Y`o%9;7}fE!,B1> L 16%w 3"!ނh<՞U* %0- ~o?0ߚҌc3pih] e\5ÃɛoϖJ:m}j˜^z,Bœ5+1`5k29!\ |NlmeQ844hzz@u4++K:pf?,s5י;8]&VŬcy`xxXGW7e'ZpVOzg+^OzBi[;[F^\ X,=ɜ Ǭ?1}1O#޾ƪ- 7,Hdd$IGQ}I"ɻ}Ԓ5˄b q$fRͅu,y k'o_ @ݝ?8YJev" 6;!(;VkG`mBW& ô J'2**[Jk@5,~걫1W5^eFD<x`uF6yOekKU驊JtE!PsX+PgJ1aMGn0h. '$~:*n$m2upJauPCYC/( b yE^(T2WGӹJ.n>k,R=Nbb]6HQN-kIZRI-!xG.sߏRaicYJ[EZAxQÕnPSt[ec{0&n\ݏWSn?S[= ic~uV qH3ZH'HxUp-u nlllcobl\.ŵ߽w*^ cHmӍQq'>;Q3[<[k kfu)A/qD%%vz䝻vch|Eu~m0kYqc6VcZIͭhSQM5]ϩ4pl&FmL}fS=a\07\UJwauR?M]s'!9WZg‰{ID*l|D'[X_QA !'z5Fgoߩu,Ě;Rn)VBRulڢQQ;ij<'~*`Cvrq5O ¢4ڋ%.F#!޳RFjT"9Yb< ^mXwҸ [ʱ\7^MTZ=C\qVcxM1_Y2x[b;\a2ńhb5IOf/M?)!}]^B_^ fĪR~6v$ +b )MFQi>t)2.{F}z5Tf=}ݔ_P)ˆϣ>XjQ]n#os"ajr Q+fpr2c_aj[܆k }ݬ s{! ,i|OG]s9ȁӬyE EM)m\d3(lѢlgJ^*ʺL'Ws qqqw&L"%Dp K !8pPGF@` w]*-l!y3]DgFx{MR}Auq7k=[%U6)!xE(\BBZrhxbLgkȋڵk 4\[,XU{_~s\P6,;Qsu)F03Um v˳%{z/KwS6ɰuGyauƚZ9^H0 NmH=Q QIrFD  ˂ pZn0] ]o'2$ (y.8f$PlK:?EByu3/GPU3Ie~B C]PN(}~q}sbS6]XT欣w/ N;i7Ž v%(Ż.|C{6tH+ZdIqG0n̑'`jdJhr$967A(.%R@A~՘ԯ* ^&%`/͑[eKթ}r@&5ԕC3ܶ=N?5 E2oP_UG"+Vy̺3O&֒ 5i]D e󻭃kayPNY+m{n0ְq8?v`|⾢G'`r؄3)U.T@ p_\=-`Q| w @ kv٥LjGbw*C=~'!Ʈmɷ߁>-ɐE(J#|q =b+7CwKõj'rC?ԍŷp+ѺU%R*X g74ܨ{[ J gS1f(C?Ip|Ȓ"d<(*)+ɾdC2kuOr;X]W%?~\oʸm"$Bſ%Zё1ݑm .d;<`c8)={.C ˣk e ;/$0?Y8+`ߥK:je?Etx\+#xt8,7Xx֝Cז= ^vw[dAXse[Qpq|_.^Bkgw bD{έNKg$J 7lH h'U;p{NX}B>YDܝVqȶ4W渌U!D ze ~Ć-)"lܭݣ"ϟJ'2u>b}̎& ;g$/NipKSɥ kpغzvQ^ S b2q:uinn&3F ;_n8:D[VC|cꂥyV6=o; hN˄̥v+(D} pbS޿ة~JH_6!gCP'0ydp~&LKkd#GCIӿ=MMWg+ y-֖7%k &ƝZ̻w 鹹m2zM6]'FMCharKܣP I0Pl8aoTd0dAk!6܊w3rׯ5rq<'.B on/Ra 1(AؖV$&~TW6Iފ뀉%{T7~LW]2vh=g2bo +r">0#0G`D~Mrڞ@`~؄bmaslWbQh^w6/a[TRr҉ZܽE]lǡI{W,jГh5=$} .)Zّy^I5慑~gS@ld9I%kkWMC*G)+ 7~2l>P ZӢwtl5}D'AlDs'/' ;Fv3](4b|o(a&ql 8w I7S5-')$9l2!ÑcY2dEz,b SmյLM!aa,5[}y`i0)ׯ׊mƍƑd{pL|N_T t D LuOG2Nh(3K۵Sɗ$]+SհogeRp8 X86. wI/;DS|öF|-vy ^QW蝜SO߷&$e323#ATJm}u12e5 FUtTۮ`_Yԥ?6捧gNӛٸMlH %Ʊ"&zVMd/nH(k\g@H1H Sd9lcLJaշ$KVYsj-ȸE2^:敦e2'39nm92ǂ$~V%Μ_aҪ}p! e矄b[ʝ%{fH jrw%'vxGEkxryp+E08雯__,Js)ⷨIbzkF?,!ݽ*WmW^=AEs:g`h=ݜ6 ƿŒN5ͲpU`}>@stAS\HIؐ4Kƴo}{v&oa FzzGi};;}bI+hTlT8:q816(eCMfk g@}rU9 a7Z&:Q{ݞ73mJ%4g^շ<}ќX0/Ϝ'~r0pځbӤ]m$Ȯ؉ST#6eIOX^ORde0JyŔ]dZ~- N,B_OѵTml#F LcIKL7\Jy:30#K8fw\_]nĖ$M>b:}aǾb/݃;C!q`wvt#Uߍ$XX-=V/Ӆ_Eν`WM@T~ֺ%1ҏ/% k;P hg.s@n'̐7ei`Zl#?r`ݼ% h2b3 оC qxH@UOó*D=Wbm.Qy} Uu 711plu{'X=^fY NLh {(!YʰDK?`{-u/i|eD2TKqlũɰsFՙj%Vp/}mK3"-Pr8g]H.ec=^.aȵPA,ϷeCKHCy'萦-yptlkXr3|6@,cY:ThixwEZQ,'WlVuS?nXl~s7B-%h  lSV<3G"V[PD@RQbޫ[Y)|48}+ X\4c\R}X[V[e38lʐg3mM@ue!kC:ξ4W -AQ45M6N7II`h'?SLk݊>w-"`Ydee d+:홡&7KЖ0iFw1Ն֒U<8%起gļBL1zEijjƂʣmA g7S塆qF>m!Qַ 'g5Y1`gmgGfull=xX!N qjtX|/<9lWe? 琉baJ2=ؚّXPJyK\a!?G>GJ9zg r۩-,7up62>Y%),15Z]+ 廯;;2nR!9U)kx$Ca^`IePZ¦.myNQ{) !ZW.Lw.r%5Ñ6OEi+rKHG^??yua?bC~"ZNdB0tNymA,a&[9pc&q]~JlHLp*,t 6$A-1A dq4ew#B fHc/Tpg,!qj3^Ysh4](A;7SA! %eqeq@9b0q:>kƔb!giϔ_-9dޟfZCmxWdž2Df%¿y2Ed_@adQ-$@nt?yw"C[u䆮fκbeJ%If{Lt3`˞Wڧ/oܐ*G'Jn(&3)|TK |(HAqYt?ǨÏR5s3!dVx%an?{hdIhh_ɮ"|lXC~${ZsIRQ=^cU.Lpu fB+DvǎS0=墳zb>e3iYJjj!쎝_8i}Zp7\1_pSi=B8`N5aM7m"Ҕ; +lZ(Y %쫢4(&Ȃ>ܻ掩pLPD(aѬ<T2~|Ϭ"_Bbb}.Yh\(gQVPI;1w)c ћ ᝡj+h3,ŒZ~4,>J`L~`>_i-^k\ě_–F4:kM m;T|O&2Wfd* +})ͭfomD_fKP1[3V& j@Ý 7&#csFwM;) ̗:YZ`~WAW b`ci.6 hFeCըmE#k uY"arT8 q햍21Vʱ4(D<5ϖ6ɑ Pze߮T_$ko0M$PVX G7l5'1|~5)F~K c&cC+%%xd o@Fit²Iлv 4p)Cqp}](1f8/#\cTG[u5J`Bban.ѯ !īˀ@n(oυ0`}V}r];#Օsu?T>ZDG6m~s+0#N.P`J4䯶Exxݾ3W>"EѰ|L33m&m燷$i^_AܗUxD'nބOEЍN|R Yfp/=]GKIHi)];{apG?a4B;\~Tqb ;IOa&F|*v:1} :^~ WXSrEx/˥u-[襥(nYj+n`ʈjE"͵ O±ae2ts!7@TJ(} F C2MRڹ\6p! <#rɈxiVF|ΨaMo@ƕCqkΘyvDƔoT@ک{gRZq3萶 6i*LZ6T+(9wFz_c'O 3u# 緐? ៺hy&;Ky<&~,|ZT_}}0(P5K"?-xIԢ";s{@ wwߏ%AI’GW;$DW(WMPNcIlVAޚHo(z.ęc[-J޾V̛!N n 9^)P jXϓE}lnnht>[7wyS*{5=:^yX)sV:DKMÍ1s"QigĿ12 !}JzaH(.1w*0K+29y%of!tS!2UHH`*BX5{ql }HrDrd?,JzM6S02 >Au2[+x!)*qR 'N83%yF7<(+e%M;QM%VSSܫXZ~8}pwNŶ4_Wиcʼu qL7M[" \+#r`PU ASD!߽n>dp"+upO*;u1 wwg} C+C;v[‚kk&xOE n=$i z]dK. }Ĥ0]g0mR2H,:{]ӦP . 7Y!W'oԗ>̃2F_X߶d~"6-kO3:>#c?o'$'~ZjXqhkF^,"ɼFj3 H[wI?SDTҦ6xŸR~ffO@I v T8w#zjFGou4Zo(N@w.nm_ÐM鵵Rt av&cRDzF- ԱI6`d8؞}`|AD([8/:쑮3ȧ`KPhm#/nf ЗN)9kP;P"k%E,30:JÁ6'оT({cDTrN$ff*&WvR+IWWLf߭FDo?ha>P>B_ NO$IPW+\b Fx$@Zׁ#q_'{roۈQ۽o"s6CZ_kAP.=UDA5 *Z3aU 忱"j *|DjbOnXfή/dS%ڶ3$"jyȿS0~Ӷ {az]ڊ4cBDG^zK$,,C9jIPPuwSF=}7B},֌C-VHR+N:pU)E;9)OݝINEui&b{2y񨧍Q|ʈ: ֝g#]ڜ,c6Aċc>PMkfe|w-w;_!ʟM`e|E2sv ^1MV4`5 }$cD4H*;Jϛ(`dWPD]PMnqugQoMs;=H1'ܜrɈ0܀ҭ=yfdJ#)صأ ^ -{[¼2JڽG:jZuI)= cVR黸4mF1XKgK]zT s?ye)ᦌwR.cD GF/W(DEU$OIe!ο ƴkMas:-?5}RêGB2yOi&mx sY45)oE<2ylkOA}#IKRrT_-J=-N9U+Qu4evw~3eayf+a(oV&hc)v>Sg9&&xPȍԽ椼=%KҐjMՃ ΩdN7"4 2_s4<~"M[@.FMm*AT%' E{'Oj9[?j) /(``/K!ǙȐ#o}tyцzpUl@P 9XR+^>8`,YGCTM-:̗9Zjb>~SNmP6<stK[ݣ-<ρa[լ*#p H0? "~ Wj.įmnޮ\șPKC1IܺHS%7&,nuvola/128x128/mimetypes/kpovmodeler_doc.pngUT n`APQux Ez <{-b91gr&gBTbs$tRm9SJoZo*J#BC')dNy|繟:}뺳=*$3W/$B/pn8V 4t|GCn?{-9D!xТO&=qn)"R lj4 ix(N({GלHǙ# Ayyy;3Y>kGU$H(5W\"K4-L Ryf-#_4DҤgwWhjll,5**JA 2̫\R/V$H@$Uf]]aEĄ]Yp,gxtxkڳğJbbb"O#87E5UnymcڞmdϏ=RV0Uj[oj f*F>q)϶|/6ROGWfocDPV?[Z2oR|YDcM YZq>K9 .)Qgߙz"KhxW,{wA~~Lө0X>WƣSs`[yzWR^/\~}G}Bkq/`dg5 }߻D> 8mE%HBVf:G \[ȢZ zu6^4 ;d$"cK.A qqX@[忭~ضqڸmN78t1&\,g! ֡oϻuB~Ur#P lTN\als皙)')^mdR7j/Mmr']Fd=C zֿ}7KVEہ_z1'jvc|]-Ary.+oyF >ۮi0ͅ XP?`Qgc=zUNkZ2?]0ed2YMf*z96j  %z;_rH*Y8rɾ_CTխ.XT>:1VFE6ЇVŹ2]&"#3P4Fʴ^E*DOZI㢢bor~F}5Z$ڱPeU)_ow6cjZӿX91qYtI8;0` aozzm]hKU(5e"f䳍&kEǴZn FOl_eKSALݯh9Z&yiiZ?S{ExB58/A+#{(K/"óD.]F D ;OvSL&g up٬~\=ă鹔@7U~*{x<]ZgO&!ke3D+QH!= SCY9JC,6VDsD‰~$W~^HCw:έX)]${5b0C4jy]xc(b!6~w`Lc߆]pl#qE~7)7zk0s<1$s/D }eeaP##&eqYP87svJLwTM!408!$s)]L&$N(&zT$ce:~PYxG.ޒ'g}r$~dH@6QhO.Qk&]|#6>\ UAŋ`~PDžtz@|MEho 'R ~+_ZN<696tW?q6PV4w/A9:I ?/+~U@nn.(M27;IT 50+F6[- uJ1i#F?.;$U'ĭcMCZHGu;U uSŰtj W+-z9F66夦cczTm(LɧȔ?&\mw f\hWt'Q"98$nK?<\l' :>R !.A $0>#oo$|~d,BILJpllhmR?GSlQ/IU$ iKrOOv%ڨSFa!R5!\ڣ.>`6! HVϨUnu݇`H&DO,6^Uɐ"# EZ$ZA]/W5X}e5fEBoOBWpC)8F!VX~w7/f0(s -k>cW7lVXqvhA02vᖋ-XuAs@@4};>)rYcq=S j1De#`tMiXcA쾳ؒ:S*unwK!U Lk9=+Ӥȯa݄[?iEhq}({85wƗ tMҷV~;TwvxxY!%SvӫcfP_DH)~Y:|3MG7MSh3>4_ËSpMx4W'W&ӏU1ܹmI_Zg]Y,_*kxЛ(|a8Dh{!ٯD A5/r چK {hN#o,f?!"O6FO}$=k`1Qb^[z^]"Wz߼~vT_0@j%0e,CWhpiNY$nn}]AY6+V|AkP9f!cCgŹ_y 8uɠ60w(kD45FQJ (a|h=H+h.r'ZtlJ#.ƿI0'yeJ|k H^ ٌ-YqB|Ü[EΪt5\7f8cMڝg^!74 2Ϻu@DypV[|dl !e!y 9;!%QNo*gh`NIjM8Ӷ$&?&[AT< zi6bTvʱphH5Z#BF:JTEYJ2wˆoߖ>. G #ږ{ :9cMTShT䓟f .i{'أU&~֛/Ow|gT:uFk(MJ2G#T" NȽY?bQr)]d!Pdkf۝)ؚ'UI<hFp>;kw]ZXs`hkcKOp:-E^["PŠkc,5샭")AΰŅLfe* &fw`䈮 k$KIҪ.aͪȷq}deLPw.zqc)u /~F|̅s}1XzA&_mlas:J &Hʹw ϷZ ȁ ʯ} 2~a)4_^[g?gzl92 tt[?%,NbOWC`Jσޡ1:[Qs?OJA Ijj'h&ݧrpيgP՘}deP;iI~@V^5ujX+"6;sRk4f/v!" %܃˝B23?L8ϖp}mm}6cf<FylY\tˇmKz, aC+`Lڎ{ يbJ[!Hl߶mܺ{~=C%SYgH+TA3wftM^4w1nPZ{q"ZJ }3ؙ?H 7CHCmJk3DaDuTg lK{"E3Uȃ'aY+$|g P c-֣6ʹ/ P c2(!eӽ~1DXVV(qSNXR;Ɲȏ= -q:%KA~E4vx?bAMygm)$הʹ#B8u}H@~tD(Ѩ+ |?:/0r vc)Vu\sB@{u*;eӖ=>qh9SNJ—fH^J@Ҷ: 6 en&Xа50Șh `sp͏<#(h-|j96k?+( B$VMVt: SxL"M@(?:|.+rqPEH+ZFlL>RN^l95`^B8,'Ta?\mrq! %2퍶Ja{iґKT(oTA.)g '%kD(yV)qFh#8;N*Şu2ݪC%[rxY܁S(zKeI}hO*wF5!r2Eء*7v FMMs=l߻1P 0Ux {&2.CHT.2|apZ7с1qbIcA(Q} cER XXҬg1,F~kL;Pv8+A y"@Gd#Y)țgT|̛sGK/8$ʂ~OwWL9QD3UUsXƒbtCԆnw,9iU4WNmOEZnYUYv+,E 0r57!C o›? UBwy2`ԃ+ 8հ_o |LCmOA]4#NýIb32㝡]"Tyh?ЙU"hUcC5~I>ZBc|IQD}u\SS܍]kV3Ls=Y\ɨ $ [ԈxM⸒GƂj> ^H"/CА  w]bPshu2QY]<.r3k=o$qA6 ;Tc(o.HP,@:<9Ev\j[E690o Tt̲פޔ &K?]9:# eH+a r<fy[0*2/e&_~CTD <5 tufQXjP60@x:5~^wEb4bF?ʼnG4Hí} v+QR;9L$xlGO#Yh:u7]m"9/n ag'QΝE7v&Su~$۶J92X#>-7~}]:7;H@}S-v]L s~: )C"~)79BʂTΥdёK8;x_z9e*Px׀E ^`9RƠB4PEQjǑ)O;pNяJ+UVDgED m@p;z*e$B?C^D,/ uoݷZ|P/{08vqc?KrO͉ࠦҔ*h'qzM~U4XZvo4-h~~Ҧo`Toq# /v+UWbغɬ݂PSR_hX3g Ʒ)MRXmȓ++`62ʮjF[~*(p{w>ݦv߮nnx7q Ny+Ծu3.NGK2N2Hx&H~plXPl|0@06E?q*0KX2~;[8 SQ4T>g)(/_ҔJa߸.یZ*37eEޘ->v%28hC+Tqx -om8pߐr1tf4Y9 \ $iq?? W10W8<\SG=?ڥ).5gZgR)8bcgvzBԶH=$ ~JYeܶvZH`>7z hcҕ$Z4PWGuJr ;7S|4P(蒂UҸI=gW)Zx&H7ƛ~pZlKEXX$ 4kd%Sua$?|T=X,/.v\+E><֣;M8b#Y"\WFG ?k%žw_Ӗ#Fg">菀;,p\$μKRzti žiZ0* .s8Sfs'1waKbPSqGO4b8/f+AѸX<,(^}f nUs.PG?9"aY[␩Q; ci'(P9s7P');cb =ŭwq/\^c) x>t2Zs Ac1Wa 5qoBzU٬:IHnyH/T?xo h)8Ɏ6!s{24=+,Sɖdm ONWʖJ5.` FkC^ЂWK|{{n'o|0|ڬvNJp#Zͤ #k\f%{k2LVKiImpV5K[=Db?[Q"(:pNU_tj-}jHil<$gՅ7)d>σI_-Ԁ&~f/ RS$ 6,ߙ뿝.=;xjY9xHC5T6䖶EZ8dzi'JW/>HK^ŻWUW [.C|yÓ-kGj] ZD"$(6}.|;w~ЫY={l+aHj< E?1؏WNl_; ß_f&%&e|%Ʒ$Q[>̗3J\AwdܮpJRwd䟘^5]LRtI]$ZvqFR87la\厎 2(.q`^uj6_^w~NmFJ'Н8t9gʜN@OL8mB B~|#" ^>eq8`tc1 (7ȾRk7ͥ(w鐬`& >}35gȦЛeӦ@CTg2x8 J-r PT#vV&rxklca 5"I',:202,x|[ %a ]d Y<`!썁GiZB 5dh445t)&{rѯJg'3%3z*PN-0̮J!Gl|2$"נGEEaa0TRS5g ͛xǪ"_:+Vp._6p(DJƞ䮸Ck~qqqdC 9j">qؘ} Y 8WT-";9nP%~Fv(5vyWZZ@7Ә7}N h*; FUa'{3 {V%MH45)>)dV2>yQEC=NK\fUD*փw Emxc٪Wc"cXc/ͣz,Ga%Dϔ'DD.J ^-S )e8J.·0OlRE̓H7w:@bU3̅_Hj|ǫu ~R4L<WX΢/7̖5*)sYPܮL9HsmeE_דČOJ(]Fb~Y+`\Es[|6Hk֟I0a0)*IԪNFޞ& edf@dYJG֦ b^JWyEKYw{,*(p-=-FK|3}&m _=:3~=x %cC_:҈^I?؂MU k|M z5LBO>wsEƻ.oFDgDċyv:l#3F]]70xw61M6d34n$7n>p`c;X7bKKC%l*=:l`ʢ3qB">v:9ϢTՇi5:OkkcEhWW]<*kڃo&xCVdMO]o ?G~ }F:1RYڡL@b_GvrDxBl֞  e+c6{lݵY"{<9Ύ\s,p%~%IZK/, n bojg.t'ceV%{^A}[Wt9M߬j@^{ ]xq*`>%Ib Q4 13M;qG{S2>q߲@栩q5M %?35.Z}%`u= |.VgDEy+.#?䋤.93 ʕAr8$vczL4x(2ᨽk-#d']% B %$CZ"b+wδƂrMzۀ_9Nohr/3RYds3 >:mbHZ xЭhѩj`IXjbΙxyG&XM߹T!XA`Vg@X8Q^.R m` !=9az>"H)c RTC3溈V)?*:!׺saWHʎ]p|XY 1<)[e a׀M4r!YZy"MmY5( 3T|UD2& @Ȳ* lL4 X(2oŭ@?vg/\1FXj>83I Xtޣil\65E5&A(O eBqs.vu2p~URXw,XrIy'ǵ]5HX? Ĉvboc!V(^ F¥YljPᯐxkA2^W65{Yrކ *Qqm;h0wZ`N ]:`s\Eg`YFv,fb  V#{/_N:vICg؞.5/qjJ7 f9ƽ,ChZF2rV_k|}5t+80p(l*)θQT}݃f]=L8al;ɯ9]@ j:|sTnEzhW%j2%H`d']FWD[`Rhz?~ cN1Cn'?.'շIMyp)@~1* VS,%%$RG^jIFr^Oz٣vlU q2p;[ȯ+Rl!T5 %lWbmdW8!c7 (oC#N [ObZl?c=YcR;J\K6Oe0,+8z7XiZ5PYC25I$X#8,M ;^$!} n, %"SN7#Ӑ߶)R=p !;]UCLP  J\=WR7vQ8 zl+So+kfգ% `0Rfv2DNoyΨwʼnn$SpZXJ"QG? ubs`?GGt`0c꼄y2& C&%m;ĸw|<t8(}}›]s~bSKߔ}HHNJ~qT99ljY65v/p31)iKV{RhRv`dH A*wd[Z80ْ69VNf:.DOxwt:V\;. P"ck>+p _X}A͈6bબLdrLߝ͏9W Uv ܃ĿdaI"#>jvKcރl;| EmQ}W(hϘ;gWyu}.cC]K.H]brK0@U'F  m6tdk߬ĒzF>|?%6#őe)85p oA (\DUy/2F hsܬ-_^Px3wrƀtiKFےJ ~.-'x Ej>!˴Yo9my isn,@TUr^@֭܌WzrP=Uf)\z3:on]?GCeY+jߵpWW[GҾξo8Jj@C8n(Q{[\TuhDJ"ܻw{W\{zaECmLj=|QKݶ!0j_G{ cJ=N=)'0[ȾTp)l 6*&,4J lȽ_cC7bD5+:&Wډѹ mJ?* o13. XW=u:1Sd 0]5BeR<;ws)Hm37Ÿv5g/RΧ7fOB`pߴ4\xS47vo,}[Sv.jSzWqJ?R GRU_cAC|DMG˧  1O+i¯0a& P|﯋M .E ܹ u?8AmSہ ʍ ¯<;:L-g>p%JNK)#RPMb->cgUQHQ/E$)~{ONZx.@mVe uB =B:z,(LClU㣣 v䣧U5QatYk<;0mЇJ Zp()mh%MŦJ$ZNv)~a3Xiz&*οޚpf1iE[&ywT:g[)1j,Ognc|CٛrS}w51XR{LrѪEdj륁"IгĄ1d9TJf+*e\gÅu!"J%xA*B- )wIBð?a 'R:+oi0_~ؤz}]*룔 n5 Ykb2{i8dI|_EuKҦ\\%wTb_c/UhŽs'rAR"Fw{6wtQwl T0^ʛ>b6BUZⲢ];4=aĬrQC;v~T[SK j\E=cbOעm3kOi s@ ~%T٠)d0*'` seo ܘ}#'ݘiHL!4L}pCmEV^nj_R'lʯUO.y¨%Y<ߴ7J1>]x]4%20 -zMlpMRۋ=A0l?qo 6!h=pc<~^V/)e+ n3e7 6' O|,)ͤW ͒l'*'36w4C{lM<9u׃Zcf ƍ 0{Y"`zSrgL>ZĬ,UQDǫ ŭ*Ђ3n?ޱQ Ak#,Szao|?^`7>zpI:>]baGr *#$ֵJϟc{Co# c>`'d_W-ޅvvI) `9ۇ#Kf,EUZE?/qF.šb<jfq%i:(p^@8Fxc ꨥ]7pEQ0ʔgN=MಧVא=vo{hzdD}(}b"uVրLpPN)e,ϟ 'D>^AuzħBx] AIjfe\yaʓFSkkАu'zMoϑݬIhG1^Cz3\*7N{m-#.Q1}i'---mz7Ʌ \ڛ$+# ,T bg^[,|0j!ieVR)N1³,o2qmY2N_8yRʌ4sFf'̅|o9 iO|#v\. {5(_\8&[ZNj_q>5ERD)~>R:GN_^N_g4X܋Zr%Ȉ ܪIm&Qg56DŐ?l~} xi1GOrkL_b^.vnUR|[[-qikj 4s:2w8NTRy@E)sa?uXf al@0-]Z4fD6V8;~݂ƳάbϫqI|oyNe< VBnYk7?T#Q(547@A~>Ҧg8Çdghz"<2IW]v=)tdRTli T{c:y5 Q.uGfho pV1~Zkc˾]㜝 0݈1UJ*؁5yɲKBjJD] W&FFOUgR'lU, 28PS 0f!MWC ?KW@*|F-XPQ7@޸ţz==PKC1Rf +nuvola/128x128/mimetypes/krec_fileempty.pngUT ``APQux EVkXSW=y@$&!(D޾ XR5 bEZM@p#00DJD,>Vmk PjP~kfj]4gd_CGIP(}Y< +HSD FFV-ud2OzuN"~XtG d8= ULOG}h`E9THUN݌,`z4J8OQa[. !]J lP'z|2z*C,eLĦFL2V=# s.+B7@c@9hmvVE. {Akl<b;"9@hRsb-;G N?a+ 6;¢6Y;N(M!$Ə!2Y>x3n_R\R4%O\g3s6+;v胉VMA[ƇcNߴ=[n]WW`OdXͩP3w1U oKoj!&-Hf>gx)cq!zJaRk߸kzh؎{e%X<#| B=ne1޷zSu9rG姳qǺn,>E:ONI&{[@TC52n6 ?| _X~K#ɟ? KAK. 6!;>)o.<O=UkY ,kɗ+&9AuwsRA-/e,BieB{wTd8axI 4WRޕ nhkɣ5?]%3 WJݎ ܐz?ʉi,O~ a6:7}6E&k7o#J4JJ~{-];*`6hOjpdy3yClQNt|vq6e3 vq9)IB tKѪ0 yPKC1 p-.*nuvola/128x128/mimetypes/krec_fileplay.pngUT N`APQux ezgX$&@BZBHH"""UZP#I. (ʽrmb@肠AAE Z捿dsg>Y~ުʺn&s\WD .b[P樐]L8th{|IQ}_|DimQ%Gs=0C SEGSc9D@0xP 6dGxyyied٢FN6(K?nҹgTD,ѱV^"lTY No]* ˺ hFdd$#<an]N9y藦,5AIeP$ܸq@~x=5]z5eCnLlh}jWx3berBBJC*!Ybdk\d0jc ZP\RE4@JfG=?gs30DzWhmr| ~!C QK8/qZgb7훭-:CH26֐?}S(6zL!/r2A??5^Q ѮܠW/yyQgVRt֝M>>ώGd~~dfPOx3泆|Z6_D436|JK]VP ^7#P%GD5pUM<̊0XUAWYwEDY #&FPި?WV2wc06q-&"^5rJyN $m͜/ۈAGU=H 3dS2Ⱥ󼫉\Νyđr)7ѻXMԹR۠ e?}+YQ^6EDeXhq& ^*& hWmBԎ6ԢxO~+mMѷ߅Ƅŗ( 12 ҊB4 g>.j=#g((\‹IIcgfpɕ S=t9 @?9_wlHtC_@OBݲ2>^üGv=!+x(k\yef,tUA~|rx6ʛS7}o@(.8 3`^N>w-xVa!#(Z{'IVda-5Tэ(Qa@MD}S|'K!z~S.YJfB/(~^ 5pyN? v&wb2xY&3;a;)0pv.5zYr'^eK˭B :^&&4M;ʲ(`^6PT͐=n*+nHtFfO C0햖T7t/ 8!>[.GJwQ҅hW>UZoJe_}'?\gҠU)KЛ)_>16b>r`9;z&{DZy]I1k(vlZX1]ي-o{Z-)W2$]s&F.<] ћN؞ؔDy$m obOځ3.tӴgX$&6Lo.-XH 1geLwλA3x t/`n狉CRt/!c3\s5o*U`MM_02?"fs;+_2$W߳k>5=!!-St8;ۚwӹ "OLC aѨ%N@6Xf BZ ,W1o{w*j?x8^>(sn+-?R1S08cȖ"SE1 % `[ $c89}D%x7?_ ?aHKK5`}0Yq]QwWBUccW$4ֳ2"^ Nv@l ?k)I)y|-gtgjO[I& <}]wbP9jnHWqu[IUl↵+ȱ O;s슧ژN9>bɼ[.'Vՙ04!MgKcg}OsnSqtzӐ7jG Gs1T^f,9.m{0)|.=I9\ƼC2m[v?ԥ0}3 A iyAq %Rg7PE^ԳS 0pǑ8w cbFdϽϫ2 gM(t9jFC oV 8 ,.O/Rm "Б#bF)f'ӎ=o\^Q'G{g|k~X/vO ,yQ*Mk3\'Ey4hr"Ajs>qLI=gK]lg?0S*jN#> F1ZyP֤J":c[goJ*>7%^2^M&0')as9Ēf[A[- v#-#w]ٓ|gEMkʧCpsChl9>#u{1 Lْ7xEB'~.|rA(3O*X֪DP/VQ1Toxy="=Kȃ?n\3팞dtІ-s7?FA,2AfG:|SNXAc[VSȮvA7. ̙U@Du><=\={kˍ sb۱N(XGw>,ÑGx- '%tqƇCr l\zk+jIH_P0p{ʋ?;,Y> ߺHt[irIrĒ-HrĠ7888:CR-Yp]:L X&,WK)A6c=F9!sYj˄ݻsraf8Df-#{vk+v|RlNv?GPZpr ;A_Z. sZ^8/ y)<}xQ3ȤiJ%l S Jw3&>ݒE/(`񟟞|0"z[^rq[]h(. ?$/?CLm~BϨ<.]SKD84kIcO6k9_Ͼ$122s*&&$V@ZSi,-ZfjGAL؈W) {@W* m IGLI@dmW59B]ر 0a]t8AMUI+ ^ 8Pq>sB&`zOz.zp 4;pP-۟BoN_ZZӳ{O;kC=GRJ^?S_c~-xs ׳;YjvN΀f[/%s$ym0ViaDm&:bcD秇\uv(0 9*#{9dr DOwO|;OYS8X>YnJ@+d2l95m1^T.uTV[q'<pRͼ{``pXv op:`ϻk{22i%2wd Qv2uյF+)#٩`|}cAa@dɹz A~U!-ԍ U#]uzyXVQbl]Q@'YE3PGoYKۚDM2^6,h}c!jkk9YCTS2铳3{ȋK19cY+SklYl}N S W NM\SgUBx骺!CߠXkn423QG7QN~cDf{M5pr*%S1mvq2pDBRbOi?4ndҌM).z*қ^,T%JԘ8L3js5K}mBiF=hbJG+[<lڢ寣sPT7&O _w)N LӉ혞6hXSP1]Vuk$i%bodCc0 6s$ E{Y6m7[ݜpsYEtJbP'?{M&gBs»ryg (SES[ȪTX-.h{#۟c.m&\y;1:Cx7n*ڐ,I%#Ӫ$8R./JLsf>HB5k>(Ѵ-"р;F[ F3?nP]RM s ҳܰ&]!ž~*Di?:4@].!S_?$#_}v]wy}},FJTRJd4w34,INњE`n^ZSX *03Y*5c(J]i Iq}4ul9S*Jw59=C%ck[:8@h PKQ.XXj݊L,-9-*mfLD7wh%s|%Jtq ꏈeg#K3AHErf#agkϿ fT($ ^wEF}~)JrP*Ȥc (̣@@۝;w>%AşBMmm#"jty >7\Bo|ה)mo-AI! . Wet3@P2 *au@"lT+VӬf!PQwr w4HWwjU(,N+[Ȋ+[I=kHk!klO7Kڝ*0y3n+S;cgkt|2xuֳa䀢 'hQG GڞmF,E;wݔ$*}ƶڌ(;&-\VǞR5eiB gFI~mpK}cRuyΡfo6 nԇBMZ?暺$US9[OwXw(o!(õU;hjcٹw"{D"+XCSLJ0j?<J9oWaR/*tn5"/!Ob9 966JZy߀J7u0|+ɌƩ׏Քq;B,)mr#fn ܪzoj9a)}ʃG >#/NтK/oa>v ~!;4D}E{c}Zfa~. m} cR57AL.}FtBNCXjc`ݽdr yguFR wskyӥܠ:R2shsU? Uk\*^Z6]m5;`7Wא43aISثhL=|X0'cBygΉ'^kh{WTbyOҾr+LNXzQ4峺AMۗ޷I$/ھ.ec:0Tt`;4~yu6%meVaKs7cVb 9l+ y 74o]dR( -x8fՇ ܩUʂZYHXJHE4=2!,6{ԙau07:=exg( 0olׄ+Yew<;VX`YGfI%Dž⊞PfhCH{5dh5.O+sԝ=}$sN0aO)`dī蕀B2B'B{na 5[>|Xk-B (zv6#w8%٘]Z4cR;::|:]]tY:&33ߛbK0jZdLܭo_> ;b,bcOi j^\ry^}kyG}v=0Puvk;Bt?4fj䅿*x! }NGIC{1oO}Ǣ3*gW5yx)ws @(5x ]/]7MaG'$2 Jvcּxrcbg@bYv>76gԖsY4^XwκnG 2rv`mdCJ3sۼ%OM4#!00P;0_~?6뽓נL+<ؿ?<1TJʳl$HPk` v닃'^_ DEqnDRlNJmZBSYSJ9N9 >I-F uGlˮc ɪ?I*&裾Y!QL%>3O{ &:ʙ멨&,KSZyX!}nFwN{|2&~`+a1RH)+KOn!܄A8Tn9I;EN ^'*Ms\j1WG+2/,$N 1qm'Ʃ1*Bj9:FPKC1ok)nuvola/128x128/mimetypes/krec_filerec.pngUT V`APQux eYy8g7c &c:Bd Cd%CSD,TT:m2BMEi%I.fd{]?~s]3>>|fzp8nNJvd 6T7螜# aWlDpq 64v$$27JFd⢈[SSV:U46M>$o?f JJ=QȈZٳ/#h[<,NQjܪOm{qx&v ZwUOVZs6ۊ?}z Y5.'0436bv)Dq]C4]^YQɑBH▔ȿ7 'Km}g1=b_/o:S(dtwuMxCY^}}r˗ G\ u;/~ŇvF]RtC7JBNf&Zd zNEWz1t]hrhw&2wĄi$a}ZH%&+kΐ K} g+>6eI9Df"e2KEQl+P3NpE % H{1.Kvȹ?Ac"8k=‰SijCA-ͿtUPO,=6;(^Mn2_PS٣r0) 1E9ۭ~q͙BzoX*ݡ>T8="{=5J U'H.pjZ%g G q6q8xD&-gXuFGj/koCAfj,8VoՏ&AMf >ɋw<[|_NOk*y f+VXǴOCŔ@U< D8R&YY"RSz:R,Xsq$`JOe7Aڃ)ߚjIǾɶ_Q2&=ɵ޼+#f+??Ǐs޾ŏOf38Z>57g+zخ\ W_[S+xYY/1eXv 4T$N4KNZ.bWno97WYA/uܘ$4ei:h{Jg׉Q)X-F&a;h 2Sa6!Iگgc6YwS}ǣ1,Yf? =*CriPN YEcgddi2;;)ǿGI-w,}v:|0DwL￑=X-7e}+g!ĵ1v1XZDxk8pQ|0G2 \C)ì]]D3?ȎCF_ԭ71Pbwh%3G{CaCO,ٙ9O59 vJ˫gmR =E5++?_t箬S3o?9| UGFr_s ӶA ѩE+׼B+:-|w(Ou`!Ἡr㏶guӯa8EâG׫2'i}\EƓH=BBVv/]&dJR`#y}dKq3o!!ģa"Ɇ%Ʃ6 zVAG['duqÃ0k:I݀p[ ]z:x N;5`~*౅R\ te8[ [x/b0ɧ^OUپ"<@{ڶD9 ( `#Z2AH8OI\("# bv(" U6vvH9@͑c1:UvևY.t)ܟkGSi PÖ/AhF ~mYσ&K\a]0߮µooK2p}Λ ] \,+QL@];p 'lԋ#c(FޯB|rS_݊J_Q :X p qoOus3BT2oZ]bqy`7*w!s 3iBl̟ XQOW7%BdFTQI9j׌ݰ@%~㓡ChM\^-'4(n.Hz3}1=Dj|~e0W CG34~O:0g=S'gBІ/3^odz1#DþE>f cx/|#`=Y;Bu|bެtlj]FkJ1bP0O#L7ra[OJicfMlMGqBP<[&-zQʗwŲZwF=ZQf^fp,aض|>9g=- ] @;REX@ۼ)eV[䦗x;?)GXn ؾɰO/K9"DioфED8D&Bzg$ ub!3+:CB+jȤe n•h:HbQ%?Z驩݅TfgG^7|X4d9m |1?'$Z,q9C e_0w%EibBnSdbZY8қ^ӼD͵r_beZLl Pg3ǡZxVmNx$IA>M֊C0Av iAF7.nuVjIPkq4Q@~VRI{Ij [" ;$4k_x $.Ӷڷ8u-t @mh\q)44.6>)*/JC'Lal.ʗggE(Ϯ 9: wkW6wjxx,#Mffd? 2 e+U$-+"$>%Uv{{.`Оj0% 1%}e{_!_eY]^\ tЁMeσrP#1i-vs3?]w%NŦ[# rb1? `_]#䀺4rEzr(9ʼnO Fg$ {"o Xih(sw 0SR$:'_m0Yj ךSƯfn+tgӴsKcbCH-Q$o=:[ˍo?IYE ν _-”ף6x|*!͟yXTS0`wM^N/-M^tit ykhjo2~jjNbh)]n))qCvE4,G-߇NvJ F 3J$2Z:<oyc4C:Bag8~=`jJL󚳱{hj؎ C=K ݯ|@oaQgul$KN^b̟?s4oύn.z&R*o'W?bqMZFz-I׫`wzЇ/+<{}{s -N:uwb(f7[…_]/ƭ/!+uSACu8;mTMAڞm4G >iڱ=!G4(0^#Y+-, 5uk2 BmwI9\&4k:5#QbQ(3e+@s|wM8RJ[3O`6j=Jֈ>Iݢ`V؛SP.k[0W7uҦ)f>|s\i r 4Ⱥ(CJ#cU')*bэE( ٰ‹g-5( t!z3O6 sXmh y  .j;g3qdi:|60LמalZZfI\sOLv77+x$&A|x*H(Y+5}R075\ U/YnQ Xfԣarddd2 (ىKH4v-'wԯch0*̭Cn;T<⹺p-,,L~ߑ4@/PׅX(:fw̅~P}J:`n߾'}Ljl8.Yr\4"G3Q7.5eg !)%%|̈́b:k9Კ=[TH3%% Mmm$wwWkiTn䊨:˭,)h9 zfQQ_oo:16yd,VK208jkoʺAaB+kk ؘh!Zf~̖Xfx^1/!#r( D Zr ??@ɹx`'r<@evچyk:oyx6`CX͘5RBvV +H>Rݶ1E vӴ}7Ŵ^Xn]Po \pe%$A+H`UtՊ̧V_ '.i`!RN' kelUוm!wm+}c'dEL96v襮܉',[t.`A =&"v^5 P/gYX'Rv3AQ}%:,߿g޸E ދx**Z_<($Ʀ0УshjmLuڴ;g4 ^ogCFtڵkކnk{,l:]HhgMhIvq1\CHXKͶeg/K6v88S*mnt$\]e>UL$,a&M<0n 1-G*'9.bu^l+cG&xl?+$` C#>FZSn>] +ρd mVwd]x`ezD_ J ߖ3({]Ӕ |ۉ:{L[zv<ԯq'kPvܼaq$6e2#Fbq3-ru݊!C 6=ҥ _@┨5ƣGFIMdrswM'8x%$H; Tj,,[oI66Ғ:]ݻa57# - >}j թ~\- n5_%G˱3 ySJb^nw6x{'))d5%ԎQ~\)I/T.$pU38w+8Y.2W5ԢMwn_L?Jal``;(C8$;P C٭//*˔a],c<,T?y !()XM rOe\֬X qC/9)/l,]kK`Hvke~wLWJ/ẑ lXtp(UwQC 4-6;^@_E¹ uX%*,9'įdQɊARt^d(!V>9^ Zu+qYUkW Rx(CZitރX(}D|ۥmm8O;W`k\V㿦7gb}ȺUy'+_W #Wm)fIJVғa4 z6ZGf}Rr$L#NIFF/TD5&8 _ j,vC0cT?$5GGLӢxNjJJ\:jV;)q_]2(7\) :!`L|{X5_e&qG/.=•vq! zr+t88K8狌O/0P%}ddngĘXv=vi] Do%԰=lxR|ܪ;`c56q Ѧ'j~)A~%|x>=uP. l3OO~/x>b]Kl/xfN>uhpnU/tGp9k爜C1Lpkޤ|mV%b܍>W"]OCq`*Xoˉa,7+nPt $A<Һ ytҵ<)"C=|8o;'j׋pӝh5n#X@b-W,r yۤ=fmaPI5G߼AYթmr&OcIs3B'[!44*}LndK;0$yal>{O$'7,d@#pZ _# dV⶧m/sf5pE!Dž[|hj[dbiAuBt?9N_ }8)Nq|; Z,ӊXL"o8|ԙG\I @*s?ߘ?wt"AK|GgEu `__ip84G_#AG)T{3R GA|+ չ^T 黋NJ i+psIŕ5vc)%\q ]lK#ɟR aD4FXLwk 8tSjuбt3a͘++ͼ+fW6Bp )T`ye4ZC7q2U,0]caS]ga%ΉZLjLv4h :ﯕdunwMtq[1]+nO)Qq^Ҡ{-ׯhgX);1h5$d7b*tJ؇:QRh~Օ_C@Ma srw nkhҫZF`Gs$1o`hPP=-J!7\޶: {wO.hlU։WdxКБ]̎YWG|@ @zu=ZԾ g)j /GL|%JnL¶1+ ).H;)F@j\EqlSkKt $Uqf+H!~Y ܍Af{+Y0xbԁ9$FBZ) !bA"ЭA;/זJs\~U|k=VYm{]`3/R6KSbk%dq!.1shv*Lfvi-JbB6Nq?,toSk#ȿFwLV+{G{Ӗa5α.ɑǙOuZ:7_Ti? I>ہ8TҼѡ ^SΜg\K{$ k횂&M_a|& S9]oU4A0tuQjN1w\+d"{I[*E˪ō.Yl \7XBrs9@cF[zxqj"',7Y᰷]m0RC-0G;U_ :qt#mBTQz\/_cwYPwE Gib Έ.Y AQzf ))_ȉ 7*^|! q܊;]4}+ݷX|#_k|zT?F ^_nzhB^;LpOyYqGG D9SBoV 8j+"U~ a]V$Yju7 9 !{aӻF*kKzXQZJVF%NS|TO$pxK!=%&#xF[tՍ0P`Њ O#mmTsU27C=.`?aEQHem2<% nQ@:E< l0evݮVai{ß@5/qA6Ȩ+MSy {h~hoS~)Yj|%+ΎKLQ[C?rxd[Ɠ+uAЀVK @J~1 Gm}IJ;t`U~,}y [q=_dcZƞu CxV,pmA_Ŀ\و`$ UwjZcv%37R&)ܹ<9&ܑCYGMRISuJ3մdqNO#cFTJ j|lEb813tJ+Y>?0BOj_kভDT릱V~rklX7ٌD _oNfV z37c8C0?ƍY*n9w_S;2X-.qwbQ)Dpm}GSF!bi._s_Ocѡ\6s \<fzt`YJ.סvC2')UlafZkU>B_B1\M[zW-gf%3?QT[ /۫yVϏEh'aj6_Vsw.0ɭW`QQYpvi)n#K!ꍰjs@=Nd'RSTp_"AAr5rb3#0Qh$^ 5Ηiۥ#mrWdMċOIG;woBtCXȼ}8 WO^4ߧ'_cjX a/!g'лn|E 1!;fS',[sA-lNp4 B\a$OFML*Β d_>$|=!nj_x=gN'>]Fh9ۦ{|б:᢯uYQv$Oi8ߋsO(o#?SS8HE0~$Ϻv!kn8?Fڛ%^\Eѓ@_nIsfϿA&E:wLps+bv8"6d>fQ<"g`NWN~Mjv<9hĶc-Tip f3dmJQ$ȈtA:Uu)(vt YPt TT_$L&n;K1ݨ-}3JdZDIJD' Pk4>@PE6I{P W1zՕah#U_ ò>ch~ ,L=1MG6#9܋Dc\ZcGE'6;XȠ)X/2Dp{2 1-n˝B4Q"ldf-#^Gl {A(:'`ʡ#kno##~ڙ fr*[lxfb'++`Or֣7NW}䍀hTaUtܓb,mN1upkUs°fv39`] Kmw ń|&-߯}pLGR}2zڵ9w=%jkCK~@cC#%A!gużg¦8N:~G^' JucAsIdfv#vsWζCt1'8!^6w[pЁM\-&x"~p [[L 4XE_/^/++VFz]U]tD6i}#]F=*P=}N10 6N鯷`?QHS;C hG=z_BouC1rDR+cTBB7>UH%6TU1J ݶo/ *ٶ@T~ ܄<&D@|U1% 춶bc;W#Ϡy_ڗ.5U۸%l8 dgjt>Hjis~9HZĤ2=[uQ}("o}D+⯯bBx:/f氙߼p҇ CL4GaG7g6[4F,m:OH5*`NJ6‚~u *_c_4R[WqNl!>0sm&_bq\jX-YG^7fDŽ;ed:WAQVKOŽ9ss3C}撶~%Y+ ¢-#vmi%e B_{~Hzɻ~bgS &SDo+1KY:fbOk|ط8.V+Wk៯d/G+iѐ5KG[_ʘs 2N .יπqP`wy;;cY+s#פ?b]&~7ӻK ȅ(̾D)È9@*yI)mIaHo .Qf'×2P$xEv>jxT*YqYq2P; d:6ipXv ju,լv!h`?"м$OR-lNY4x;N.Z\#uȍgЕ֧;ߪ MMym~T@{m7%ج8kd)ӵRkc6(f4.nov?Οp/"#`W/s|d*H{ګLvTN8VϬfo0%i G,|ҬqW_E{9XW6y1Y+9NC` k17|d0a۴r!wZW@0YSy8tU%pJ迱N'.zG,m7K]M¶c-Vm/UN?R ui.iFM2'ҠQa_sH>;` \Wc}h;sŚBo͟I'v {i(N Μ/~%{S6|O3%$ 7fқǵ9r3z|.fnT rNT,.P^ߵ<hw1dy+%z@υ,n>d/j䤅݅C/>6&_Q6>Qz D%J fHG4`q-بuȖQ!ʃER`cz7C(緟y(r`73Y蟦2cxgBm?uW#U[hrX7Ft_9p8p/>(!CVwaС_u&8Fr+u"ȹq|vM''N7LVw.VI[}qm3{}w \R-p{pW}o-&n3&f3X)guZ5wu#0h I8pU ղJu%m|E<".o ltën\e*Rw햝*dst5F|crh' aCw1ѬQ.=;wܓ0sJ:ǘ$Raլ+/b۬^V?.u =F\gnrX!+mŕ of2bTޘToF\Z*ZSMkW€?}G~:oLjBOj]`ecAqcsy9#0n]/@ eCT2s*CMGpHޭ],S/B*m=xw~Zr|w=eq_ %.3A"a7Gp8ϋ,&9⢯⺂7xːY3HeicdP]ӾƮ`k+Wr;յ x?t5/Z(uPׯ(nbRt0 =~)2ݫQ&qb7wG鲿ԗ X{XWx^'x84xvQnmuΧ̆AHcu) #e_ZܬZ^y^:u,YsdFŇ1J=kR6aJ1{  'iOhqT9Cie"kpFf&èPMn^ޡ6;[-/.,՛bo 4EGk}He'yM :< P q©];t$Zۈ:{V'j-d؋ܞjW#@J qb}33΁4@xQZ/$H>;?c@N$g G1 pAO<7t%" 4M1eM'#0yja b/߮( b!Z!~ M)+ slu'oacãxұNqKƩ%!DZ+j1I=1)@7oQ3yƗq6>x-+J- ܔe(2 w16KS q?"'aĊ(ɉ3X#:r"YU #LJs梐zGܷd\b# "HIi)qϱ/NeD:ts/.+]l}%3%LT}- W襔y^R;xNC:*ĈMBS7/p4C|d?T%@R7EyGOEd'.QaRGxg9+e_3;G,+ M3EM݈s5Yy~F]ը֯dԎ&֛ҿA.1KeFTfQ"mIEK›&@XB4ʹ~o 9vLW|B0[)^.,l7ou(ͫhuj ,~e1`ǂ`s^|r~J!R~l"5L\Kv sgJ:cCI ƿE?;\W')TAb_e,.i iKT h-z}+eTlŎsɟռ 277ōX"%xD#WjK2O6ꧫfsvm 4tGa3N+3f.!pKU\]3x.#P&1L؏:$JE:36^,g(5MQ|˰- /*9㩅@| ɮoD'-\+࣬O;A*o>DgU,j|[Mnt]xNЂZ)r83//]m*2`ɂ{AAnh'͐4dg=L:^t}t=/ΰ% X$W3YR7ʺ4FG{Ј n͇JjzŒN#֞=#]obL_AdPCi1-`rB+n^ O<1Te'^+I ~UpD0*iW[g "v010 _4" E;T&\PGRd~K$4ŨƘzOT U0Wwo?B)!#thwF-&|Jd͎} ,O/O' L-O^5/PGٟ %9LZ}<+ xwijխIcz >ʪ0-)S0}He/ڬmnˆ>n='d0n }gj-x15?=e~;+=o1z?~Ņþͳ:ܧhM~mi"0M b(zϟ9#r3O@3*]@.H,k;1<ak ·˵˧`3)eK%zxwў $ ^KcSR|.% !BYDCzqQ}pJ%z_UPp3A.YUc'ld}}uq#˅)K)LO>"}e} UD[;c_)⹏1ݤ8Hi0ƾӎZmKV&T˶{Ul^۸ZM /ӈS-QQUr20܂O8˭SMFrj2-)roofS~(ҐE!9ctL[S(voAVn_dV T($} aHwPէwY O(@k\}U:qЕ(t_R>k=r*cTKb`<TdRj_fyFfz%aUܼa4<=`>{ 4~`vMQw_B5$~P=2ݥDjUtvEpfco"fUi;QL**D~}VFؚ¸?0 VX#\BNm9tfTJ  (WCj>#gD>5MZrMͽYN7,:p Ď1p܃ 76l!=85]"1oqY 8u{ DFQhQ6!Am Jw^jw`Y,kc²cčS*7 S'(>$^[%"s3C bH!ǔY {ƗUT,kN٧E$W]$SLn9Vz rU0`hS(lzakEXE3|J!̱.ϊgb4L n09\쿂RHf?Ͳm2β.>ǟ*J4t?XeQIszFwp~#_~z^3ԎuIs QR@p`6$ SBXo|A0T{)4./Wy6 v+)ؼg.X(|<4'mк#V-hm"TߺO>q0q5:/\`6LV.YanQJ초FƄͅ~hyEva0l6A:>7/T@z^6sO?r+rfOB4h!=wz{wM'^mU\Z0Ϧռv Altk{/zr~c8)65755[k!J[6LAd[G#( K,\ FB5/jJV#mąeeܑǔ7n aX9ۥPnG{"MZ;b4PiS8buJy$[?OB&YTX؄-Jaj--J;զM$+Ӻp*Mc@ՠiKe_V"e'''ANIlDt!79 q-9y/F#|.JC'^@]ύذv9X> |bogjje?d>f_e;Ś }3lSh讅1*lӶhκYG{hi>Jejuv }tϿU,V'PA:L6f8;_+'hˠPKC1{-C.(nuvola/128x128/mimetypes/kspread_ksp.pngUT @`APQux -z ި1!$*89ϰdtC򪌂:ҼM 'JPIz3CNxh~yK)K zIvI.x@&=@2P^ )P{3>?-!BF?(]'144bmsAoKrl UEιHg,CKS=-! .:)M8>T ~pӼeK9k )I㾘O~XdL./V(" _4Ջr.0##JTO$ɮqfaKfQ}ҹV4|ɋxi dIaZOA3]_+ N-xwGs4 S!9OZˬkїxS_o%e %]5>mi諣s %?Q w*+\kO!'%q8*EQBJ2 ې/1[`kO'z_yK'+ٹhkiRjmWf8IH Ő^\V^{/Y9^MrJ"ƃep 5'%~X"6#d[FǬa N+P|Y]h{6;j8xjt/w Bt-Ϣ>[*q&[ņ ~jDUm_~z'='LQo7U'Wݘ7ۋZslbvHr!H!`6P]/i5D`Lm -8(2{|ތ#y{y}VŽ&IdR6@2~|/8)L%Uq zeI Hak^(qZnT.Bezx],+kBܓ{K 2`:Dn#nm*݂ehma ,vxo#.:К'S*KY];$u :ͩS?_@k-+Wq=C+Wn8HJK /B^ZdM"aR A hD 㨨i/=gY}YGX,Oz$tPL6,ϊ虙f:~lP0iƨtG/Bܹ30AR"'ց"[4Z;dA,S48\ ҷd-"RH,np;E\jl2HKbxA-؈ypCi-(RbӌTT b/t^w0j$z"9vY>Zڲigg֠MBs r%L&o}C6VY?)]_0Xs ʚ@[;֔pzQۄc=x8qgDK@al@'jBbM0O^]qN=|D@ F ug91wHux*kENJ{EѼ+j9uqZh^{] =֢4UzPōmN{v^br`K-vNpN\+3kߴжHX3Ų:D};iҟC8ٌ}/%6Wϯsԫ/M|'D_[E>sF@dS/(W0K,PbU7%H32_Dc]EԷbqQm]4{f`v[Kz4M~r«S &>+[8$TTHOXtP f+7 Ɯ\2*4XW)L^EtjKd ,e]:{kkn˜p(z\e,W25-*T6aZru/ǑvBR2R|hiDo#{j+SPӋېz?Qv0ﻩ쩽WX[Kge"$RJ2ؕylo?_'n6 ^㥥 H"w%3ixM缾X0 퍾*,$CK)w/HXHvb,qG?B\IkVeV,3(+TᛑTGeCdGq;~-l ywdgCOA]hzHDҏ24 cO O#Zm,Sնpt ^NԱ5%@3*PXCjTɩ#H1ybӦ$"Z ^H4M(wϾ70rCtݩ\_Ƙ̛*4~>g})ꗌN݋sHq{<ljxa̋^i"pB TЋyz7[Xl}5{Z@OQqՆށbp\*KsՐrnaR8CUdVTCSzݤvZC|/'Ǔ|u=HL_Yuu Ӄ""'#?nj钴I*2Y;3ؘ.wbpOR2FkoD[JFbgz,؃7a߈n *H W -@vɾ,ڱ, Pu nkT<9 Dk%7:9НA(ll ~h?\+r2" ʼqwny `1g+ =5ctxJsϻJ> 1+ 0$Njm3A&dő+)i:Xa XdK[hMhW35hۑlOE =bj"3/Lq#>1s d2=J b~*GIslwX[s|:}]}*??/_&@jVO#d0VfnGuXTaTDϣ,KS?[8cV&NJD_mȯOUU/peŏDJQߋMo7}`mI,&k+!+RoRQ(KiƊp5pzY(0`'*K@o21}n3>"}##95/N+徯.Z Bi??iVV SuY_O(zApp|z!0:_h$?IR}`GںλWChY9^- [PZϚPR&wMk{H~j{D*UmF6E8:cm] 28,ߛ~EX/K=xA)-Ju/iG8?B=8ڐ4CNHTd' 1EWa| #e 3s vҊd f\oP8p-gHǍJol}# 2I<֐ m\'ty`l&JXDۀK!55(:EV)*{Wa*AA-](k_۫'o>txӧ }[nJA"xo{\p0K>%Ǖ@̤S@,uJd=h #Ys"VT}٦@tlק+'b4e華#wws;IB+th漒ws2) G/V1rF|[s'pB.{Hx¾Yޢlhr8S]X0 M.Ҳp<^wĴ vJZ>T7\wJź kKeO;(`:nc5{]Bl )gwU9;;7cdY, +ȝB%ϚJf{k\))nv5*%0{iY eY8L^o_x&2>Cj)Ͳ"p9T80x'IȀ|2 ̜\zX|B)w;"u~UU_nئ[NDmx͕$1!بzGB3ӽ9YGBwx'1~,BMKSxj3_\z, ?)#D #Gfv#.LM#uIfC>#Ak8͋G-?Z*ݐ}AC>. q8vƟƋ:ϱhZA{uŁ!Dw*|TNU(Z;q>V/'6,;?V;R&sK0ʼM h53qZR1ŵltJ5b6W%9"w@tH2ybƘ8;Z)|ͳsMۿЍ'srx3%YTHЩA 5c{A;|)m)$^xя]Cu.mԚޠIg08n砯Buڹ+ErpcX@Wܭ^*G5e4 z@ K펤gMTrn35(h&sMDMu#ڮ}vwFUv)bq&AVk(#M,@;>>;MJw/1&u?2,}}kxYFRw0K~.!*4u)H1}@ Hь<Uq>yU^]+<.$_1cܙMͩ7 _]_[-Skov v qώF hmNN3.`^Zz#I^843`ڲ!;XSzyW0wfd? xP߯4WmnIwl:N>E͇Qݰm3NծGlѽs-'G.9@mI<8_.9Axpu~Ra9tx-@f ^͸o) [˿l5y][y.z9NdW޵0룓9[.d >|w4A sׁ{L}IQ+nHZ"*0d٦6&)кk.T1$L=nI.c;LP"&lY:KЎYNΊo)>=|OǰQ1Xh[@M"kA~[/K|)WIJW2L(V71m, h?va"!|^5]#GeK{ii V.w[5_עK69k3I11CI \;! MWMb.r& ~Jv'{oKRcN[Jjcby``:K\r**y&xgo@21eqe5~椟i)%-({oH7l WPyFIglG$E2ӍQ|;ZO̯),L)+ IKxg;T@!L^Q %3K9$]G0R "pw~"ټ[d'z@s,?ּi;JzRWZ\M&K.Qf.mXKI4#0>˭ jHL2p,4wV9?*ܪCM!{. czF#;>{vzS%fѕОnQbiϷ XB*|KxWDu 8O7`:_PFfu<'y.1 vJ3^O)%}6q1K1gt*Y3=ݷ '75 5;*cg:ת< Q)V+Y:,XTHiev\jmEzw]b3gT쇛vW 1Ia_{-BRn))\riNϣ‰~~ jrXX/mp쵠o.-q7'&2/᳛1< pl#=7>x0.|vn..6>W?}Q8,*Dic[MC-^ 駱~Q]/^8:X?R_Kih/4U E:B=MlQDRp~2mR lj,+iSd Y!/}-+rg(o5|+E_Sظ凷ANM û{DK'JA@k`>V|$>),<.a` eG$=: m߶VRPKC1WP5`6&nuvola/128x128/mimetypes/kugar_kud.pngUT &`APQux -{ d߹sHL//x0M9[7ҵgGRP$*t%@+=sQoF17i⩿;x)wKvj5k lWߤ @y kx+c I$8;Pp8j_vvLfXS~K1_r:]\TdQK=ԸoF[O_2?{>Qylrȗ`3N}ulk(C?jJZׯoI^n:׺'dn2:y^Kт5-ˡy rzoO m-X)l2˽t, (hϔ oHᚔ`p捨@8j&>?]-tVhc :3k$=T0d9U2`քYo{`GܸG\fpZ9{FQ~e@NKܢD?`g?g&^C\ƄןJE˄5hQWQ Sgy7ӭ?: AADBᕳa8.+UD@ 3<}" cJDHI7 '`b7S=&%4)oţ}xn َҧk`kKLw: oU75C>8+t:x&umd|–јT!g-+!"@ē_ٔ$AEts L&e80R!HP _} {7a5~*v[^N0]Qҥ7AcLj_V q =(8b"XgAL$ֈ'#Ϸ>W=]G~]!l4G֜!l=}H?a0Ͽc2)PD8s=꼚+A"٬L8j-Ԓ -1Tzy 2F gJt)jD;uԲ5B)n_SDKrar^8}Z44mZU"2]mM}}#x_E ;.zߒhPCV ~mx0T1;r 27Fǽ9QY{ԢB,T kv(_ֽGgq7ϴ649E*z+[4|bym/?74r =  mS򭓔G)q%C{Wۄ߈2X"vSxE~c"ԲݩN_ɯdZ(SI%8~#ا,t{e=& ]~P>4Pߖ:Q avVkrsSSqBNxԁ|8y,$-u?k(;y5/곷b(\3EK/mAOwT|Lc=]XC1՞ϔ$pO+}b0!yA<0 bK[dڊ%)ǹ2ϧ8?:](}y_[Љ1zr*I|Du8x|v; ^]^C D,k'+Bv0fr~NņP 2o} Y&]U1x%MyyP2`a"z !B ٚS'CHgKr{2բÙ|C|#%xfkE%+7@rn*X &H--r2o Nm&: -B<(E;fzY]?9+r< E4~dh\ g_)A]Wq%!~-Jy%o:y <~9t. PyI{:׳6L4`u7rSI>j UyÍd0G)=i c.Hx;Cvү(R ߭8#г9oӎtm3hy1AjpQ8OCp ZQ]_=%j^rgj$ƿQӤߩ[YP,rcA][]nϵmp;..13bll 39F+L}[ !Hnj*,n:#Brl7J_'<՗2Vr ؇T[}YR.{xk?=2ڱ`,/ 0CN o+Y¯e<2nSrκGX ȕ>Ti/8ޖ!Qs˸pfw t&`B2BTFƖV <@YTwӗ+f1dd?gU(~3\+'/X>y`Ni:%}`@mG 6 LT~ݥwFF >saܪ\AҖؓ{3s@1Uӏ#;? G5vTb9BajM/=~dμ(M/e'Ͳ9!>BdSϞWLCF6ע&&Nc#hx2*X=6f[}zLC#Sa, g4Rp Of; .^LSKd/@TySg\в#6_#%o8wl[ fpWVd'y:ZSQw] mlu%Za|H40ߒlGcw&ReˉU?#K/s?̒Y!="a2փddiͲCx`a\);!ljyI |-T8/tv'ZM+=zG(ph4fPCWl/ۙ<nDibKc{&y{: ecdfk@?Yƾ)n^hlγ ڑ rTf|n.(mAR;+Vl3Tݥwr U/1gpҥJ9vv*qW4}d {Vy{W \ ^YBJiQRcqY~XI6<3}UA`w%or_5Gy{A@1n*tkbf [7`c>L:yw|wA}b>޼}v܌7Wp<,d1Hop9%G i~~✮i\;;Rٚ7y1?_Bw=XddHkQpX+}ch "$Z9 I z*AV9Jq&eu3VŽxCO$ r/2?$GeĊ(*13p~A_F ,c.17` 2Ȕms̀E T{Qy8t›"P]uk1kjU~+ްQ wR sNϻ|BcuR|KHIfM^yP-DN[+NMO~`le5g[by5:)(U>Deym٨+An 2!3ˠjvX(*]2W^0ߌ ,3rcD#'?@zޗ0&Y}S-Q؅gk7w (7)/^ogWr5^@ODȍ^}f} %u~T)&2>P{diX)4znR,8٘U5X ?vIHx2;6)J]%QJV ݝzPYs/8 ` 0I'DFkG?4vp|eDǺ7B GH/r-JDzU5pix#ʗe \̰}Qn)o+o+¹sQL5SMDPr ]JjXB恙N5B8/zI:M^^^O W)? gv>Gߊ6PJs% /Tx6]m9x ؚW$WTnV}{1>&mLyD-F ۬sf@Ն|jYVE'x7mdd"#"D8{~;;J2~wc΁Cʼn}|n-W_{|VTDʛ`6a4R2k$8~1Ju"~ Tx;D]v5s\b`?Un?EFz> i=>'>~FD;mHWXm+[c+,EE]bTnJe'eT>6?nVQZW qwАʣ3VܔMV}45PܪMh1_LWr,% d]>$Uj1w`BAW#v &wN웛aǡA+.i -HbVU5gzH+qn ąa Xl}b£0Z ;u#V ?Xt7qua&Q;=tUBOoa蘝9tbt@vΐW퓲\+;b d69FI'?l  N؅ uӅ[JN5XvUǦE&:O0u;_!-fS06VeӶFS8 9Y% -N1^TmR`QMyx, 8P ȥjŤ)[1k+F)g tƖE5_uu^9JJc쨠֊@r2|3wV)MD7*=36k~1JJyGl T,-kٍ7H1F(8Y82"(U;c̡˿]L5^αhJ,>yy= lD[(%NU?.$Q K$K~U%+aN`@G }| 84WBPspn!Y+3<_06B9$y}qE gMO!$%_kVѩy&K1XBXB)vT@@WDRx CB!3yn;M*t셴8T_O2;F4BXBrF >&.dN(>h1@*T&pߋ*,TרOB΋Hٓ)"SP e/K -QtF\\=[%.1GgRGi=SQri+5¬F_RҼ)]Mn:-ni+"_BTRObЭFbA:FK g"ћeLhSБeY ٖUWfj:Kt{/L2W=NKSYx/E􈟿™s C$πZ`3D̔3GU,R6Ţ3N`lR.U GD|pN.r#dYSoO*az?s5>=Huˢ5)ZD_spkLc\uQhs>3?ӳ46[T! _ &F{5 9(R}17d"AAe4e4F`:O4M?\Pꦒk6]մ$`<(Pu<3Z2bχiܲ^}V NQ]7A7N ب\Jw~|U ,X1MZ%.a*,=Aom 2_3 ;^c;dvƟ8H:0(h{ي{F{ڞZ xpǜ_p] Gn)aqqrka)O_B{Sru9 p?6[=WҸzsv~ |}%3[h#{$j1N4^kxkhk$ƪjv&![mDqS@۞{'2O.6}D`4LUJ=J ތ.S 8x[J V*I㛸+)K3f9qo!*Lv[i}qe>~Um;I z j?V(a%[W궷#{GLy3D䨙yƎmAh7d;߫} Lٌj/{CaFw0Ƨrq^)|`}|IIs6$zZjn6-oTڨ;'G JpT{s˸Ȫ%'<8z0AV9Ko*]<@R륋Ø}Z] Z 9βUg/* w]f&-@$q%汌,demcxwۻ.bgIu1] 鿤h-^6l%';]R[ΜV{_@u^idmrVHO/ݝW`p_+c4~x+]q. J g ep5 QRB-i'"It:A 2ݘ{,L`FtwY[KLp-nECVߐWNDs uĠJ@'+l6ygNS H[4[b( υ:8W.d %/X=9p7 M++|.ǽ/,r/P'C. lBzb,oOnc"$b ES E2()9Dg6L7ݡ=z\|&qPcg+XKTNf;+ 8>cr`Ӆ抣$֯ Q+t1shkQX^jvVzxwÃSE u}x@8>Era;_ns-;b 9q}TY<|lH%ϳ"snnGz uA3a+h?R߱(qt s AICG[CZqLn@&ty9T_v`FA'-Ymsm_m;Jbb8yѠ)8unu鞍F!s@-jKRQaKޘaO"WO&iej>"E|0bmxlZx>?Dľ[m;3(D_-ֈY,lhj}bI.*03-0deoVX7jt*τbJo&mJ;SLeӺJMT>1K$KS>qoiU}T1۰(63*B=obWglBN,sdd(<(L]kѐ ҆9EFmvNK-9wF )v\Pيt[դ {)v(vI -tTSPoHXyCx|GHr^rKgBx/`IR &Cqi4$֡'` w^:ҟ6*vKU)s^MţYcssvc@{zx%iZʥ]Ǚs.& U$, hOyH vgtǷIð/D!dqK9f\}l܆Mro*'<[ז.Q/cv%=::Mgd1ިu!iW(XpE/f5k x2E2xdĢ ulH\͒9 ٜ'1O]ܼGɍ*QKdLP=jy2 ( BOu0˛Y) cSZAwC[oҢe ]pJr6p⇨S&eT>rK2Jyl`tܟ|(i'{G3CNI ιa]R<7[lu3{Z #gQUܳVy ?>BOw2;F823 ޶P´ni/P\JۂXAlԑG9z'gYD׍5K2x s u}[z._m ox@xȷ*ؚ"=x+7?3:ri/Jm5{𠾓pdžW"uZJXi΍'bW4eٕ=$~U'"2\f/#H}®yp;{fxv@_%hɼ&6SɡAE; +?#SWxgEB,U|fBAsfGO#tKQԲJlڶ$;h kxn]%4eMy6-M6i:?ŝ! [xQMN3:.=9G]0 yR# #[ti?HFkz.i衧 zeQɸFJKq7ϢN|N xU=T䛖7*7W۶#L+,% WXDZ!Q_k hW:'˫ W'Y ~.#KX}*1Yn~+]c$ C3E:[% jgKTbJ_Gf %9=<!^< %/<3Bd7n&HD?ЄF>Ǩm V+ϏNTц-d^wn "w9RDor1#чK썞+g tFy&jQKd_%ٽJwWs>"n*7 ѺLI]Us37S0]w++Ca$y&5h3iP]!{aKc7̤Rd` \똘)1yeE(xw`Ja7Kx,p?qoT(~ n󐑬 ?zG垟}^e fVGtXw1) \n?r^ /s|4n\ٝ8=U+>̈CjKm۠Q%`b~7QEO&BTC<T9d3Iz4k'8/ݝz ol%~+#Z3kbgV~@ƛt7#r;P'P4g oh<꒠ƀpSw%Em[0f,Y|/'&dE `S-w7sS&gCjОPӻ( U_K1o_@yw3g2hk{=2}7U#?ּ̦HeRݪ.i&hs00P,"|;~kbHngZ𶆽?h>n&ߍsKͦݎՋ41w @E8G8u2ʼn?Ƀ YkĤۺOOɯ·$BB6Rh|,ѝX-bMy :99uNڻeWҔ}ЉN]xbsz6݀Hbz4z g]C&gs h2U:F3Dlu3(EU=%oxؒy\"Issw5qJ=zvd2Zr:N<ZGyiNj鋂X&M9w7z c娞 "}iϖm} "u $3K9D*)mL![B-dQRT p)GT9RHp4mmUV|Rr$]A*q;:aA Dsy$b4/㊾={ 'R AI=dkKKK_V;*;__: B:-7|\Н1{jLJgb"Gú9mO|p9o1oS 9k-oEęr c3#i#z1du wXA f ͡1k@1lA! ~~|Upja%fOܮ%_+]#sradڏaǚ62h5^f@Aܳ [(>ts kl x,_h_Y(81&2,zBKgFJhB-75T -OAOJ碖׎aTø:cN0e ?J̘p$D []n&glٚ[GSgVq^g7(wvlfK;[=e3]+ZUCrpw@Y||&nuvola/128x128/mimetypes/kugardata.pngUT `APQux My 8Tݘƒ3B%5ִXl#[0%2iQQSb4ʔmB&Ky}{uIpۊUq\9d@`"trgZ`8=H Avѱ͑$8 aL@u';BD3' MJ))?//3JuinvyCcA$O_mR]ʛLqLs}5`-W5$Vʗ\< $Rg❮P@|_YQQB8[]RNNFR7Ɇ}Z#~$뻗P"""(@"$O4z21XAx_CznA[[0 YfAg`rPKi_"S%doM< qtӮ͛j~&܊MRs-Med0!3==3m#ki)JWCleFHy%H% svscgg+15ex?vj="f^T;cCsuqIz;EAynaƍJn.F/c/C+8oDV&',W;88xX))[\ÎsR:90Txz553cRdBHnݦW"ħdخ]vyet)&|γFȐ3t HޏFpdP .I1yTeOR2g8P %V+5Ùo0)z\;bq" (xU1EY1jQ 5㛻_8@CkxW)jLm>58^Jjp^W:E'p[[K/ܫ[-~/WM7~"` X^^ [[E@HК{3>0˭"Io^iq ̈́@: !l/[5M #4g3w͖%rv~?*Zl(-y垏.el>8|>?Ąx4F9[ڮ/1t5u EfS.-N]ܲ3~F~SEe!*!TWߧd֙SRS=25I*AGʊB* T\!wS,'xY&ܠci>ãgqA[n̼e}.W8r;lH} V F9՟ʬ6/,k__ '۱X",bhF"Ko 1bO $OحtoQ3wHhmJAWM!]\L<>flf)10he 51U{v8Ef*>e?#c=_mjE` `h}ĬܦIFB~=6AVmݵA5WYAˊ:wQ}ə&Ulm7  x0:q'moCbJf2b:SJ q+ VwFjHHC0T]Q--@R{a3CC==kcoGK\x# '13MR*2+1Q ixbD]H F$gK%š~03{Uu"8I?3&tjb2ޫpB~ : 8( '֝Xpfwk?(U&`?+r?`Y㼠RiGJf=ξ_K7$zhVΨNj}U DSʰcvZeOFĆl{tzp+͕+: 8gHlRL]3VPuh=DkzC^e}pTUС9vܧv#Ӈ0[U3su|u.l kgD񽾻hڱgL%XCeSñu5 @ 7V5.h} DYDɯ 5 ﶁ}̡`%kbV$vvKq41LL@ (7?>L<ދ<.d9+ej}tҒY>X!jt?*3Trpo*eCo/-[Djy&wwP"[rVpnwmcr*5⥅7\6hTMJ)^+>^~D&"Ə;i$%ڐTMA xkO+P޳v'U;c]m ٺ#1xnڐPV"VC0vB="6T2O TK|4č2r".@(9?MG Q+xh L_ r<`܍/V̾׊R{ K;e2%I1&0Lk"=;&fq9h2N=7\@vjUvzL|r% o УgG-R?^S 8wĔ}qiKZu-ƃag~ ؄>l3FMn4ևvڤ,sEԿ;فT=h/FY֙pn?bS׫{`,u7:g[n~9/5,ksw$V1@}*Zʬq.EJ jѯtnqM5>H&LE^]g{L]rv:@JT:)X,nނy,;tK7d5 F+:popu"ϲX,l]OI2>VG4` 2Cp%Ce8^@XK\b򇌉,m&"lUrkaQ]ӺXHW}ˠQZ-`+'qzRՄdia#_o_uJ؅]HqCH_4 AE,o͌1!TK GZ~tQD{aGVfzRTn)i(ѧUgf@9g%P6d_v{y<%Dzlfe#lCYO]od jP v'~ZcDZ*غ6E`yIjDq- {a8Б(Eixy0-n 0csJ?C"bj~u%Q]G;٨opqaXq ]w&/jKl:ElP3{!HCd,RJ_b0$QH+ϣfEi[?kH8do)D5nA]xL@-aWu6068`M;67=ڣe0a>)ZFFBծVB+VK(#uº~&qy@"wÚj,t HD-͏J.4D;5lBTPX. 5)Yy(JPկᤷ{ۙ;4p6q8l 8#3g-֕I1 i@\3S!-O_hW_a<.JC7PVY!,c<߿c}/mv X}`5qSޒ(gAF^yK EAݝAS"]chU/Ӭ>}F"%b2=ɿ"6 ~t~ChjUnٶ\[zn캳Tܛ3 @wZTy{o/v1JFN/eoz9úآ2Ax4)ЋASi`f>`3ήS5ϩtEv-E{ho}Gל8jIB^v+vvיw0M,;`g(Փ{HimܝŽkfvSM>hm3†DvٻADyӾ)!fuqQ\c, 1^vޭdnkދ;waqʼzk_$w!P#KV>vCZn)[䚬y ם X% Ě2F*gL`'|XD+Ou ͑T^{JٺB~3/K1pL2ޡRndK@__w0q%gЍ^hm:kz6A\E~24@{_F`kxo~f ^6F2,FKBIpqMi+.--./JL -'{FnsӣI|)y٦,>'NIۇȘKTM.4N;pkc ?8]Pj$9X}aJj?5gsӮ'S뛒4:J;=Jbw"Ż;j@eOI;|+6ʂ+/(i!.ӽ0&HEXxfmS?Ǥnez B:i؁&Ǎc5 m\ < LAwpdbrSnP*M8u`L[ 7d\UBIQn< v5m,!Ɔ~Ի|FlJsiL oǺmS iYւA?^zvhw7uX>;DkPl\>І k 4/lܛ<6Hɬ#%>Cz_N50 &DRg5W(6Mq% PqM ֐ͬEیllOj0B`jNӦV dm_پyLӅ="\qu@hΤGjX8a:VopϑD)lط\z+nTI ŗ#Iԫ;+"W B/']pm" ;G UP&3Ly~\SyB?BVe[@n_`fqQ_#m'DuR*J:b,*!⥽J+.(Z׉ӻ!08UyߺT{tavWxuyG+a@^5 DbxL֏me̵R#>l6[85.vfo8- V7:d0P!FSS@=yhqCS:IYjCLΏt^=+0>mjfL~ U4a[`l|mW֞40ЧC,HK ]^z!NO779U<==yi@DqKw/2s(qC/гӬ̄yXv朹]*/jgX9sUo/0Zr$,tĀk0CRY^Tp,ZBeHxѵrg{O(HsWFiSJr}VS]RPLo/~ЃlR#O(FnN"ph2LI%%6dZ+P(wG)Yɶq4(x"/@BW&.DNZX@2"yx mgHۜnPK܌C1^**&nuvola/128x128/mimetypes/kword_kwd.pngUT `APQux EZ{<bޘKl%;]ج aR.]lsJH*l3$RuW1UʆB)#2bo~9u^<筥P>TWPɌ E@jê6630nstxQFl@ f`61Bl s%k=h[?1gJs xPX07]PTuK_BF Amj*-.((hRM_qO>+MfdRx}1Rc`5t%j%p#Nӳ;zU\\IT*^>].աCBB 2پ|h_cvExņuPǹy&!zjtR^q G\5"t%ķ/&$H2M9L[@>32P\~>pªUk_;au&8z祈)C̡?sFޯ__Fi3 aWQ(MMVVtVLOvrjzȂ=kc=+A4_K`B92:g'xVOݭzꖜ?6MAfSC /2[8cDPynjbrW.\k%QT-r@Eo_u!8} .@-YtX*zF; q_kK F+C'0. PxC=_N]wV\!-@ /sЂ*3ؤEy O^u\8=N%"Uh:y]xJ6_*t,b@7PoEFOMXYEtj=o䟻0R9USa d6޼~m#7a- <dH"~ȘҌ[8򿔀A1yzÄ%\W δy8:?t钍4&ú>AbgQ.ظ#|qrB%q 6ܥ>T?qaSHCC 3C,UrpE[rO `uAcg<8WRc~< _h W6㯷6vmwn8XD$_ȥ?)wFgRo`]z-DgǕW)׏or"jZj=ÅmG;8f4$Uw1Gbuy9a<3nq,[6eqB&Ih `~t"92zJf=ѶZnre" *wB OdaOluB<ޟ؀- p ?[.B'nzэtݷ>L9Q 0ͤ-m 1Ji&X,6Np/uh+}B~ޑqw`,\U15YAU(8bDQH6 l. K9a잜*'"kz%3yŁ>]i&SnYyzz|۶wM2,@l*9dD-hFg98p\u,Ƞg4g"c39/K%IJԩ߄陋/`dOB;P$s2\VĊߗmZG簾aIbrYKFɌ/$!y@WM2aU7t%`LGbf/'a-S 8B$ c#ͩ<&[JgNjL%z6B "/o2w)i3/_n?(^fDAxO^!XcXuH&1ZJvڴː> r.xY⌏#=PBf:T$m~԰/ C➪ۋa',EaD V#W":uEnzE߱_5?HTx -^rmD7L,&d}gL?!n,oxBܙlGxWڕs0 @F,=^FSȄȂWc .|)n[Ei$ۺS] Bli)dʭT@":g6fp0`.f |0Tjz\]?S(u':#VJ,Hv+s(|?ڏ3{/7G18l7=_xH?;Lq.mQfA:ja+!CG&k!jXhtHN~0/$cKucCs鷑e<~z,-N蔍[nwfc78Ȋ@{r|}ABVK:ja3y+.V&,6E9:e jR/b* OR(~,At,v 1'71 #CŻRaaц610|xxN![DSFi;T%Tt fw@){f!6}7fFe!0pV$%YGGB̊táA+_F݉?v^ 7jY:ŽoBesߏ{C턘; \VE6׿p40 Ր 5Y])1**ʦ?twQF2[l&~@t]_rza`!nˣDᝄ+XKՔgM:cRY< ch<);M)ŭpV?8$w0;'n/I1Ps~;Wh[SUR4cL+h5ۜp`<|ZYMr1:u /o:cWc [e0uX 6m9ڦr)?9F!:ְ9KݎI1HgtO\`|y¤L"E$%MTAO5fVFSL_}L/~=iƲ>$14VѽlC1NJgX-s1;}ZX/[-Q9Bם O>LXõ P 'x*FLÿ%Uy-4^]nX-# eT-dx'vmN-B[tX q÷̑Kh»^Û)Y~?B~ z@7-;~qآ _-twi"DCI48r)=iO\sT9w;?-vЎI*7-2U'oFH9A{R3t{}֐V)[x[IE@?,.=lۑȫv`M6њO >ї>R>zba$alL=Iҩ>o@칢[QT^1gI:=k#)>,a^K~R(|N[Hee(_A&$&ܫ`̗s445h鯔hH@DaH`7;$cYI+"} krWC;ˠ3B]u n3'1g>; n?yWHL #)Po\MЕHaK!uѮN[ "tmCapm=_;J6=ֶ9-W|7J=a+g֛0ae0=/Qzfg^s4f IǴףz @HPs)Kɓ~mv_L<{.ʳ$*ޣ8`c\tyK]N0v.̕se dJV`\aC++!OaS%n5 *e$t ` Ŝ# ZuWbKY&Q̵C)p?D"ϧ * d]Vd9>Nmkr/B#jtN7Ϡ !3اJTqN{,{5u>zugzxvIr{M5DtzXRRwƼ:݀y7=9H*A"@-EdkId% iw]՘>n@*yGSO [fhdAb:%G%fRa}pm#tf$aV7:JlɔĀrΓi־dYCJnԩyUzU9aUcl jSVC {XŠO٥S/K3u>#:,)hQEcHr({l]#z`\h!؈չw$^͙1pw}[KX =DR^CĜlD8GYDH҂C+zxqHV}ݐ{yAXc gË:Ť5 Hl(<,}?b- X+S1QLIW.`'ҾW@43$s3j`BWhy)`*ƄPqAvp4HcjӍjȂ6On=tWON)/.jEEa^QqZljWN XumBw^A\4qV.#>P* uΦth-GF%*q[@1DT?|" >MOq}`DB$p=Nm#KaVm@w/H|ȥ:'@u9vB0_6K>L`2l~>d Z#^}p"3,v?g!kX]!tW4uhd^f':6-H x*'p["m!?w#& ?1XeNmOJz G>PQ-Hhk0DP&#n TFHl>m R+\Ϡk%h-{,VB~z0Wwk _۴diCrQ Δ JlZ 7/h\MY5B=w{XtA>7e=DHMB>[\$l%&y8.t^`fPE&Th|/87 iW%ClGtH7 z\ށ ]v_@3k!x>o\;jᶐt}9cuwoA|!L_ֈ <{|]Ar s<&\<ަuU92%1:^O9%j10;V7L4|R3Ot'}!'C<EYttz%|dl]6cW_O a0X1k2AܺZ| ǥɾI]Vg޴]V8'M}vQ$+1nH;|t q|qGZ:O`V&%5g)nd= .`"A*Uqp@w!%rvC2F7k h=`֩6  $Sm6#p?q$si|Q 7?K[WBݙASwCwmj ZO|x#y݁D՝"ŔFWFAN}U%$fGo@rʴ(|Rx%X5t5ыh҆ sd|`uϯ~a\ofQm$Mv0m"[wo2 ˇ0eځK #}jgVG9merMFaSe$n`pɉ{yReIUG& _Z^q`to6|X8ۓutvsnMQE,R⺐m(~U&łDޥd磸= yvYr|6"uqO5opVYp#,dMN/=O[4+.zpXԪδWM(co%'pE7_!h|`,CVrNђ^0+84Jt`G얂ݭ?`LTlb6º⻶31dRٷ )dZZ?66`x=]!RP|&Y;v5k ҇<'fpȂBN qP/4Xj$s> Z=g/FbA+LVkyt^3 }J.FAUdHm{_b:`V@8H6vR;}dZSM\F=Yy)jr80׌*=GWvN\ezExfCK?(nN,$}"$^W*):[BjQDtB'9v/\ 33YP?3YBg]z(r*"%Y%BVmXX3(ǙjZۡԊ?D= ]ɪ)]5^Ks7AKܳ`眍c~^ ~+;%¤ zX,TS`n7.Յ2zI{fR}oR 墅ٚt `ɂtUO ,C7쀩rNC"CΟ&.a+Gو[!"ܞ/LvDm"P7?\MuNNzNÍD(%K7R<&'8GGq}X@Y,W#NGx\ gʟ,Kc~tT!ͤyesϝ98#~BҡS-82 'eh|#-\6Xp+bQ %5FqRhz`Dz/̟ԯ8)ڙκ>$Ǧg>tMQ]4V/>Y!Ӫط1}^XUD_'~ \:3i?PT-pUvt q`9޼oc~}[%N*F!b+g0?.D>9 )O9]R{L{1z}Kŋ˭/D"OZ*J1]~@_C opZδ8G49^殪q@Vg ;n\kv >OopV 'sY5BPכYڹ7?vͪ[yWtSlyoAU{P?%u5OpyDAꉗuz< D e^HRR(+ƇqgnK ^^ћhzZ4YĂ˹ӛ9_DU]?`Žg^ ]gpo;0{r"Q%OK^fܺvG({bN}Ճ Jz$yY"T=]eW<CHPb[?x{)86ks򹙙Tdq}( Ѭ;n/8Twp~@踮ӝ9&߾<>dͫqv6V倱pɦ ƟܙI[gnYYA`LrkIjq<)ihEZ)/sj%o)ݽo&:(VYJQc큣CzTg6mbK(Gkq}OO7;;aerlV <]7w\Й&/Y$X7Q(llQD:5fجZ]$H {d}KoCVyȀoERB@dc%ZO?nPKٌC1ۛ nuvola/128x128/mimetypes/log.pngUT  `APQux Ey 8T92Nd23B%ɒC JY+̌{CT( M K!d7?{s]3:y9~{{J e+r, 899r6f6rȾ踐c{֞#{7 ۻuoȞGuͿ7|?.J$f#J== nt5LG82 ruSW(ݔӧWrP]6ka[L;y|{,A[Eؓ񭳝W3* F9t}=SxWw@LE#2@&ًܣ5a'GN($L_"n)- o#)LbM=ЎqVlRk6+oOJO؈LR܀s6K@Uo=ECP۾^D\?ŽUS^_lyonsy]zI(j2ZF)YZАX2> iHog]~,Rk0 |-abfzYcE:6V1B1ߵgV:k`SHMSŒc3h+C3ݒ.&Y=A pӏ? Mlb.G9a)tC tڬ5kH $Ia!E ~V;/>zDրslt*:%A'_ښ$I?o&UA+11"ٲ,+§ȔM #aןJ_L~?3 ~tĖ,]I"ڄDfִگm!͵%2? pP}k/Ji^E sVϚ.k_(_@j4=*Ct)9L8Ed2h.{56'@"rQR6ѡ9Qpbjhe[$SG C=>'WV]*~F ^Z͹E$[\z…,*P hM`AkyEIZHRq~ok8;695/ڊtjO*Ojb1 eM_ YXRĘ J6 'r na5T/Z%ǂ4 W"H(n ]5^#yGZ:9lxU${xF?3~6h. Z+4Ÿ'@49lDC`\j \?ǰ)'I*UvdJ;(Rlګkm;;Mk[Q/eǜs|5|nz蕄d*>ݎ&ӷ(Os%5Z%kz^)({]Bx6M >qA%Z=C;Opw(w7af R~=Ó-{O֬6 ,ɸLnYA]='J{l%㱟{`X-d;F9w #˝}wDf"336[ 5c6DEQ9N5'a@mi;}Q*@?ux}_ =S" #Ɲ )ћl^)kr"xCۇ|OyaTM$YAKݡSF,)O*3:pw#@i9̲s(Uձzp! *1~UA)$:!jUw$'z$T AڟQÇߜk㦤rԺD*w!yˏKb?71´}aK|!doup!gʘ{~44H;_5oVTL( _-/ ؏MwJǟ5@ԳeB%(}Uگഉᔆm1y2g5GBcjZ&(wFf".|Qӎcg$51ࡤzcRTn_Ry_uVZa1w|:E\ MW}azO{MwGc:?%JpO?Z G'%-]m\A- aeL$S~kjϩYw)1\">^ ƛ*~?̨Ŏ!&XQu' A_[$XW_?3$pۙͼK?I|%qsؠ8Ć(jug# oW"#S\m >^. $ NYHwtt|& 9Z\Lݝb-P::]'-W*+O@ܾt:wQtObf3EZ/vK a58 u]|[P<7ܙx>NDρ>£oĹ+!UFY"h$cop9MrOZn籣SSo : 7kH^B kҐʪLi9dsZ;L0 )dZ1ldwKv _\j|$7ny?[0gYBe0kbZvEtV9M jfn*/k؊t n9څt?GShpr|Dzk.rw=i|XVpqq`j0sxhVs6X.f4"VDimGB10$v\⩼ qr\!?[vC3=p:et;h(}M2{r2ֳҚ YPY=K&POBE 7wgP/@f(?C.86KLX%,+yS| Q'<YW؂\"8핶ГbD٩`2YAL-[Vo$\#^A `kMA-3 )л$WP-L{wϨLz/|] +=/C`vH?>={xKQ ܎oɍZΧhr?$+D<4[D)KfU}/0ATW[EKP\ٽyFQz *gK'*ܻZfӯ0OÅn?|㫲#ŬtϤ\y9kcQW\ {Xs6^a,V(ܾt~[ցnGW eX$hҀrۯj̘P 8}ROPLxxN:FYSJiĞӤ'4AoCR;7@row,}_ S2a"_ qm#{-sեЈϢ}(kTn045 5e8#b9s:+z;~{] 2%E(=\L>q4q]tLGZ0r7ѲO\z?木KS>V_wR$.-L:Zz ~!OyoHBVSܙM%wV֑亦fwڷd&5aoT߰cEf:b51 s n͗=9LgӉWE~ WEG/ߚY55ֿMڒK&6Q.4b鲻gЃSL uh񹡈-$0)U^Sh:U As%#N6n嘔E!)Pw,vo&iIP%~awUslKaK1bayytOERҁ>7j$$w 'N'aJU POϝmejs7ɴvYM s)K:@ p5!G Tk߉M#oz[ݝx Aif. a4,F*)}a|frސ5{xnrXմ zx:3DmڝHf{ւzcwծ3Sҥ%,[sH 1ڔw;WOPPK֌C1%b&!nuvola/128x128/mimetypes/make.pngUT `APQux Ez 81l+NLs^B"6sILX}:Tq(r9}ڞ~v_}zwYIAK.dOW){}=(o܄H%+=9P|O{v{po+@[,WĦ˜^@ PPI' uۓ&$ZfyUzEBTYJaf k2sn+$D56F*i!~Ai>>>4//Ț8|K9uIʜmd.( Gx,))* ׯ_c#a1-7ǯu#XHyySEel"C6@DDV {w2I47q$MzGU5>0}kvV)M=DŽ/0ٶ9nfugF%mYǘ$j9|wSV12"*ÄI3ѹ"f,AޜNkEd5ʓC BNm SE'ԜOС05 NUK2C:/8>v"g*Z3Iѻdk 0Ÿ]ѲePh4?? PoAjw P%_Cޯ+1xxy-sQ-5 IhR#yx|zGE՗Ue{=\9e\ב޾-ZQuhC웽 puyH␑=ݵ|e(A?Β}2M"1,*_괣Dm_2Fq`#kA@ ^( 2=revJ)w0h1]<\N]HZds>9BMCT8GyGٞz8A- 5 ǡˢ͂Ӕu1/qOE`ou{%5"!ܤ|<;א}DgzbS$fȪI΀V(ekfwIw,MWBQJԡgIXw(]z.2S7 ']\MhUXpr4`@WcxǬ;|I4( CglE'HMj 4mJ#נZc;?B!%z=fD&n7Q%J]P;ۿZ#3 |/)b4M7Zɳ9?SЈ(]<8OD{SacÿUfuwȗ@R05I a؛YtzY ˙WTTPG͙bQY ')ѡʠ -4~iu)WeXt`=\k3(]ֶA]ͬb%_t}=u!G׊ZW7ưVg3@PI[d@OOfys(3n nBiV4l~[`f-uχͷ(-]Y||)#h3n׊"fFA+y,6c{CWZܱuOf=7\lp+@:D|y ih9)&+:ܩ>{@3ob@7vQz*Ԯw`o]]ˬ#:JJ=kWsldhc$jڹ,pw2ysqZͰltA7zPFIDJg:zF w1_C$S%4Dz`kp򞻕|mw=F15+A_OڃIqo4o=7Q N!qVyN0Gss+צ_d-8 #<#h)Ь5+=bml`yE)\y圀dj9K6Nvaz&=UE2XL5T01BGB"Q=0̔$XERjDdzn,],5OGjXĴo\\PE7ui:^禍d j攢ѫYzЏIMGP]Ys`W+=؀sgryh0sH/*ջ3nE5r_KJPg( !<0~줟EGMnl?^g̦G;Xyb&Fz:Z!1U~s $UW寎Z\aeũcY2X{o5#?S#JrV\ƀb&oPխE3ROTf~A345&cؐR4Y{v5$Y ۟ 3rwr{6rr?tERQGl. O!6YsH./GF^t^_Jy4"⧳YV#;{/Җ%"1fyF}lM|i9b+v}Ţl^X qOnQHyp9M ejޜϵm{9/jZ{s\P2}O|@z5IU6Iͺyv_gSUx;%\;GPSD ^SP]j "8V3EeK> X=f F̈%̇e*( }E-M0 M{dI$"ӬY*MW7s3vTRvP@nLkkwCR  h 2H1ðtWĒGWc0,AVϫe|xo.l0`亓H9%$Rdk !( ZtZA扠ȀW9kN@/57b*yn'q| Etc̆?#=-{=x8U3Hm~B9)Vs㐃6_TWXu6JVVbϩGʨ>5ۜY7jM:u ]0x}q6k~~܋ [ -:wӖ,Dmfep9[v̋Vu%l>)S4mԦWbk5ɅLm2umߑ[uuv݂f,i5h"[uQKKxݷ_9~1HLuN #-ڠ7?:N>C:Aֆ ~jHGaWҊ]k _NDJ OWQfC73L@DeăxuʠTڲr#'E9-\B: +e¥M.qb7$<(~;ڧԲklwu5[8~[!A4{[o7}.C.9lE5 M/@=%_|рL,]'YVORTp?Df8,ޞF‚6],kCw{IPrrAs_)w> 6K|554R)@ܟ`m^ʧ|ؒOӸ}mx=u/0il2g{3v|% q;Ĵt?:+M#vor5?#{"d[ }{?)+[Cd?QK4d<ȟۄUWIx"I Oԋ"v>T) i1M06ӒwF#}Fk.tČuܞDHť7qp{jϯc!(E.'3[~Iٿ3IW (=9]T~k1Rˏhe04鯖=۟Kj]>ٿNuզ+^#/oK]9J˔ޘ36u |_䦽#]mIrH7eIMbn ;6{y^"Nr lJVձ`JryDt_ZEYu8tCzp{tjˋ.*`C/BaΑOeX ]ZjB oV3M`=ap~Dnն,&H9'o.uj_ *bc`P5.( =\iL1 |vAE-үҴU&TetFXSvjaHqp86rh4uzXfQo,&&ܜa |Ar]] XF7@1g |[rA/%" .H@9G3&c__c}<5Q+j}mxAki6c a2O `ǬJӎurDD5q+fzcLu3@o؎ҕ@sD]$웝¬ lx|^׍fSnh_K>@'z+/J%hu}>T\mٻG~ܨq70㉁DAcMQ{ z\3+XmT53_M5lK"}9ncO`6`x[>1qLX VW}欢UyGz;ɼ) Wt[jS;#l`Қbα~Sl5XX+ /*u|FmI"62W.:Kbhr2?ɢŅg3wdc/9RcR&M$&H/v̹0( G#J߆iB;ʹ/] AxEeJ7A88T~AQR*gsU\/BL=m9dU]>30͑N ?l5#KRZN/>?&ۤKg,ʰe!ﵫk~q|M26 YE?dtb.%/ŒC n/X뺥☫۝x/Vb0H^} L88^*/{8kp`E_WӈNuGkA*~wLb/ I<я"_4?}iw=w(Z+H{ = ټl=d[HqnB+ZD@ ṊosџO5;&*5>V'EDqxu=C2u| JG& HQTԣK .0pnfDQAS+w(ߴ\Cd3ĭ2bn0+SP ү8QQe9†i a-yM@,yX8tOر{ ]dD+Ӫ;iuy%z5t>Jd (5+BEv[aG/.ņj,0NGf,mF0POIгs/g2G8<4Quo%Pe%Lc2NJ.t۸<=6Ciu 3o$ZXU{ *ݑQ_Lz#΂kqY=xdL ֝` IAY =֗@/CldBE:~!s+nbg(kx(ӂN]xmIU}G ws۾\I-2ho c5YȸFKt-g-y{ [@7j{ɎJM;{l[KEX_i,hy,VsHi|15Up![/(On=\9߸!:lCL}O `5|t,!&q˒-+Fe*좤ul,7[s5b@sb_2́Ȑk]旅)jub(lLnhGX"^2LEDҎqmjXQ@?xP\]{ypz Æ9 8Tx+? PASY}^,?u/jGeX&ƿTw3=̿ .t]!V_'.Q3Be:轓5Zl}}_iJqt4] 9thC@Sé=R,(E<7FimX[$MM`p _J4@툚څ텔@p4SE;Kئ>jfݣN%_Y+M=@ nR!W4Y4ŭ!>jU*_~+ -_wxz:pd1xfA%yv3hXMÿ3\sš2jp |"}S;{@ ˣ zhri+8舫e(Rmfݾͺ}];K\HkNnc I/JuuD"w/Ĕy§GasyG[!KЉ(ͬ -񈎰ع.|_| v#Gr'x<-E)I,JbI|:wglR %QSmkCq{#h G0ڥj qѹXc2`~姸a`ۆ};ޕ.pcT"Q1Z3iw)[I犸^-gݔW:98EW>NMh+]__AAeˀñWĬݲ?iZ0E=Y;hwkNH<-zBj;0mN`TY4J?3? 4@_P"{UΟ60=/X_:ss Б8|9H2hr{iS_]h0u oҤv o4YL_J>b<#R-QH F+Q7|l ]$#S&&&̘IZ#v.l)1Q7Y̘EX&fms'io(S2R?5,W})'ͭ0XQFR^+*YU2Rf;]ʶbPKҌC1$_&9: nuvola/128x128/mimetypes/man.pngUT `APQux = 3k*1cBB] 23ƖPJLfVD (kN e6c>Νss^z>Nv9uvp'93}oC`@U5"wx,v rP{}ӑ5HFakؙE 1=&b<)iٚҐ>H73Qt"ZzQFk/ 9R T$oa%@S|r_ЈM[[$~Ah@)2ds>hV@)#%ƃp1sƍY,6 "oL댝es+%bxƲF+Lf}ӕ"$rE{/uuw쥐>Fm_%RS{kH%jǕ)i*쒴*HXdeGFG i4OAWWIRE<ۄT[B33aNIB.΁3O92AçQOy5s`\*ˎ^$ݿFh%to2qy#*;61),O5Ƞ1d2ٛخet,PKlTp!"pp$5󦣖wM|D)7֕+W p SCy,!lONt'|}})\6=1Y6).FcoϷmxrU e‰ꋬG3L?Iw!XŇ \1(ZMBrX^G &%M֋{1%$x~v=zH1e^m7qae™FR|Vֆ{jz>hBB܃m*Ƚ}gw=$=ݪ )xmw=6C6W.:1;cgGĕȰ#&sƘfᾭ Og(*u e\"!=T\kRhF*T\[WZݳ'Z¥_ os+Եq<'N.̆U|E&Jѽm0|[T%w{Ka(iXeZ(z{'ۃ:2֤4τ.y<}+mf;"*ts` > Sg!i闪80@Դ U)7 )]=>uxduMۥMB3O?wR O/!\p٪ivSV2\s;tQ70ӣPչ@gO? *IE7֥Gjhh33bO1F.r2|XLtWW| SGy\Xh…>|+%ӻb++M===6s7~tLI$TȼH\MtLiSs0O?[CywZql1Dw ٌ\6!z(16CͷZc=]zc3?U }]:8A1r'#$ƛa o 6#i3ޑ%爧jogn J^ 7߇R6"3#h!X7z%} ­ñ[7<ںdh7xŁӃy4b ucs[3.1:'&@ Z#_m^Fn"SR=0"^-@D0hq3h߬n}~t_ NC#?Tԭ(瑱 avܥ` cJuY\J}Lfݺu*Ǎ9uCHсTRVu =?yߐ~% \T;8,]><4441r"]_ؤdUp ڮ2(Zx,ah[bە瘗.\e䲚\&XCKCEYNp%u wS M+E:| xA%^`#Ϯݾ` 0fPY 떃A޵!ʬS*|}k:mͺG9i`M>z~~'{kj(e09Q|MZcX }wNm廒wj4ڕ}L7~nÓ59m'|/q4dZ-۹1xMGMXL˗yr¬vb(QmJϐg6qwf%v9\]Qq+:x}Aiն)kc>=fYϷp,toi\Gg^4|c1 )*G>fnAV&s)+2pQm"nI:GHWy$hC#ո%W0HC,KuBSO_S,V,v!tGBD9CpI(n#!MqYmNtA}2`J:lTxRj]|HjFc)3ʾy86Il*ℜ:fN 7# c|_7~ LOu↳4@ $sK'?aK)hj$fYB{8q,̂5^~Dw}yA ՜Di;_EMhI|vA{n#߀VigaATEשW"de጑ж;6H7zA>]$=3f޽"ɾov6`#éaD'a?6J>A1Mov$oqO iL侢ϯL/cdjܫdjzG63Nh{r.W8l(ݘi[d3U_Ղ)u6i%+!&M0ĂE2re2❣mAoU~#d<|t=;BoRpM£%|PB0YҺM/09`46NPӕ!ܚnAXz0D,Ve pmH]g!{L%HA 3:  ,7-!؈c U;˒]T`{H|P$ҏvt ȹv'u’P, b`ݞ>Y9^ÿOdfP D(kwR)8-b1 =sؘun$GEzJZ}(ĵ%U)w~e^c"OQ 2Cݻ`ml=>|?w G`SHKnM|Nb zJ}v* |s,XcQW7Nɼw "\S]LWTרx7g֠]P̖O@WPn#r!w2Tv7LQ٩= !?#M>S~04Iw:3ݷ u}05]R7+ |.\Tli5aޖtv&DWo9Y?c'a^HplnVY(R^}{K` GR`wGBK _;+C㊛  WLoCpf?vƄp^%А#7뎓>AkB-%1|gzzL`h:`8|LxsGX؜,8s~ϋu:d5Yz@ѼQ o[{F0Xi>,M=jl3-h9[{нM}zn~Me(2< Y>ӳùu'Ą}w>c #N|bف1eᢤ L Ww?,ںC_orhdPdIC-_x*@XzvKA,l$hϻۆ\v:ٲcxwemN ]H8Oʘ.՝EQl}~},,c֮k2vZRoA 6 گȈUhsJ,!́g{>޼ƭ5Z8^Gbykw0!Mhn.T?!&O*]%!U+#ÿ!-S>p`|ǥ[mShs?.Ԗ]WUFedL@ -yJ;F̄.fpL;U`uڋ`' _> bGpE k`+$ZHLb*~c<s1lb?Xo#LEvƘs?yT^99j C:BVB=;‰;]†[x‘v; L%&KEs}*wG}RZ. D"ՠ崵VhD}`YPB˗ s?JLn {sMM1(\;Ρ!e+ZUEiR}Ux:DB->ړģD@RPnN39m72_}*x52傷&fpiH@G`tE*Ӹ$xlm$ڿv;xi4S1zZrdHROcr -+( gY ޡpT,$N܍*u8 q&.aufEYYyLꂶo K (kÓa-aEu}w43LҞF&,NIV^a{Afe$J%?3#~g~MndHA*j3.X3 y>k9EP@ d<ʩw B&ޠZ1Lݮ]7,ktר)BNR\6X::eN:J_f sS8eS5A8>}|.pStEL)9P"@ p40^IR4-<BO=!y8rDJEXn:"=J>1lo@t%h:SRl͈羉O1d:>e- ~]{Scς9fDHq~~W<)'=Pk 4@c,׵Wc]Z~ fӟȟ/ۙrE*sn`̴oMTW zX=waf}`Adl[SWYz34\#ɩ.B" t> nDt ROՅ4{p 帧YP;Jm-:L|$&RlNw,.Sx P.'bj$icy%K˰QU5F _ &hѫᵅi\%Ill&J!{ G.L3Lt ŕjʜuWF &/{~&F4{ -\; L@B%pHYiC9}}8Oiư;C:sl|rOڊABBsptFp8MNqVux T@``oɇ iP!)0= xn.BoSlY+o(Ude* hS?:uw0&+^MkP9/$1jw-Le?ylݽ➡69?8 Tx΅ m5-'׫9XK8:otSyg3Le3&!b:4v,!TT r/_0 E֙:'TYP؝|bXOD-$Tj39q}.}]$hEΫN=.%/67fĊ6+1ρYN0aI qu؛ "ubRp[+5d[ ٦;uKFic+! F'zOِ7pe6M0.˚ A<-IQ _Ʀ1]٤C+0瑡ߟ~bfqwY G"MLDv;Q/JMP<}sZF.XbNОxY{ ?\;hrs܁.o dgk4C776=m.1*{fWx wԯFv ~č5%f=0kY^o{ ޸$;טa~1huld'΃ѯ@wʡ'BM벤p vW'(%le\'}kĈŸAHH C4Y\9\kpBh=ƻBMz$\%%6.ch4 RQ;=JyΛ`ìod7mB\~#aXnr(K{DƉA& lw~]@evd509 tkһAV ZXIҁ벯6\pS=~u("رd5ÛOi$7K_Ͽcƃz1xvoT( vEm|"x>ʷ[I&!Ŀu mk8Y}xor}_v6f\C_s`ٰ|qT Kd5':踩X~ R؜9C<']E)}.[v4@VR# t? :u/]XfHrNH̝lϧZ B6?S`}&>ꂀi/EFm-BVN?z[V4Lf޶A\ExA^J2_)eIFv&mxN)89% wv`J x<?gs8z*]h3~ uN h+y6ԲܥNmqQ'ҡEzV,rDC[Sb:@S4kEA18qhwSCxp:ܡ J*"xK\ǜz) \iլܿ`! pc8-A?/6jig c/l{MNDC| 0% T/;)5|,$uH~?Y1KR` .qձg+Dm:WHtAi c7Љ_ؿ[̱o~]i Kj_(P6h#dEP2Տu2>*> =4讪z޻3?!!4W&M,>efckG$uHT9\ ,s9@5(~䞽8l>TֵAa{/Eu~^ 1m *}̹uښ]uTO_,hgwWa ukGo1 1?ORK_bgno Pz/.~q.ٜ 3j[JJIOũ=&65.c>`#5}L~ dӆhH:t NZ3fA7^#w <$Eav!1sMήAk2Ct @j{Y%umB*;W1Se:gI2j<ًh|#]ʡllMnx'_{CnT_61M'@{_Z@mpy`S+(xmKl;ӁX^*]n o}n[#Ty:o;@nNc*I!C7ZiuL!:ҩ]۩Ps)4wifU#XPLRJH d z鷲:_adBcԖi0ea #Aqp(* BzBm,Wߣ$yT?uHmOex!Q2ĐˀS5j]=mFyq,[cOE6$\mw76UT5d:_MLpT_ -*[N'sQR!3x8zocwZn6jǏmDB܃'ZZ't5`k};*P\>F99wNbIopJxLlPұ02M;X:(dH/4!UN"RMBI5u&S3!<#uSZ` 4b\~=Tz)Ԉ߲oWRC^lzi/y5|~3E}B>Y#&'-Qh{'9+ c_s'z9a08l39X83 T ,U~َv,|!: ߉1y͐QT]h4Xt+YxHb*2~QN‘һ4f]0glϾ ]L;|X&_ s}3Xɜ?qA鯆Fx7 F]CX{YL >Gсd34-{i,m-T#ӑHԐe3ĀLv{Mup."/yVVΟr +^y3c8<܌^Ɛ͉z`"g.,ZaܔwBimBrҬOed2f۱}Ӳc,;-r .y> B1L[,tn%n[hK۬9cpfwwTB2nii {V gVOڱ,eEE#Du?ē^'Oxyf~~/! ſʙ/? F^^;ũȤHmBL%} W𺜻>ӤgT 1࠺0 oiYlE5*3!8Y}_x2/+$cYGk_|+.V@vL(C)XfΗ4l^8) VrDʢT{uPTKxȜx^ЖrljQ6(jkȐFXuTkY̌g:=D^4lca0Oqpٰ~Kr&afHPS*KMruw"#"P^X^ ="ȊB+"c+Qp@ At8ͦŅlU)R:&&Fwʋ[Mu >#(aylƏ8w 9Gd fl5F28d}6=Z0* Nд7{rU)O~7'҈byےpϳ_goG(,<^m ılޣx[Wp?v Fpc;vHը߶@X*2e^ȸBT'CY`:sjmm;bՑُ=Ql=ѱ!gIkNz8ruݭSH d 'X^4 \g{N޳N3ts|q^$EG{TmThQ.$}暰zyKb;jV!6:S:NeaqM'C3☛[^o++ɉ -º& 3z//9r=;TosnI*Ӑ sb:N w$3y>'={ e|Ag`3'cͽmf=f5OOϵ/~T11p+sX)pp]ƔN&W(Q;vd@вx(%`S6Ux"^}& JL!(odYʈ>Єa~=DŽK] u|K}1A$ֶQ C/7oIu\3 vPɩ#> H:\O߀;=$N'WʭPKˌC1V:;$nuvola/128x128/mimetypes/message.pngUT `APQux E l;}c;>>zy{fe˗uґ靖Z86-Txhw;sjwTةPJr,0e5AD W3,n#ͧ>X no6*91wBؖZXP\ڗ>3N_({[*Hx]fW؅ԜFuv'--5-F—dd[Sթg% 稔HϦoΧNGEy4)} џd ƫn}Yz;2lI#m#Y,xƶ8mlKNpmT-NmP$_aDNN%*; V ;>M]P!8\7ͩg1ީ.K7_~}=c"^vjy/rla)Vvpm =Q?1@؉u$Hxz;/X ,Kfx$,9/ay^2en\(GTs\mʈtNQCP2Z̛SAH.EQu?*ˊ "STz\7w Fzzqvs.[C)`+e <ע}Y~7/3n>kncp0cdKOuJ*8p?lư +e|w"BC|6Qfc6)d#8w*,Vޣw k_np jsxFql=^atJ"E㜫 s7%S1 d-?.AH6~{+7{Ѕ oI+D4">;"?ǁ@`SBxy:A P|xK SJ;m|,m}T2WxE,,leLZnϠ"+#|j3ܓsD2s-Em:gR}v~Q=wju& e ltzʝ$l+x|*j>Id2/(f5bB4BwL袑/EIKX{˱ڻgW0vF. ˆ/IΓNʚʶ<^o{uDC3{g@ $ I&ҩ3[\Tjbb[J3iUC  s-xMDF\SNͰa)R:a͚`B }H;5PH%-@%mjh"%4 qu2^Ȉ*Y>cz1~;jN ZcH<<"?|_ h{hY A-,^ Q9>ZÏ0Ѵ6.("u̫X7[,j3R)JUEXEZpeQ䊸Y5ǜfJA{|MC.%znʸ-[lQu[ #OGF:*oDǞjʫv̥r`%OE2u#T-sZ?[A0|/t+!Ѣ D}3)zv+ܰ ދzGxB {DO@#n=nAx\}_&`z6Ml`K@7'UË-_b}txt3{!<-bbTPgwMI& k@M8 ‚go"XCQ%|I/Q8k4G&V&4(z`o7e/pW+T5Lgl3_.3AͲi!e?QvyNM9m*Dՙֱ`Il^uT#]>C0qXy++8^&J{`dg| -di@J~])ŸEplBggG ;DM嫞d44cs|h#lx>R[AN]6ň%ܥr}y}vp6Ԋ8Ļ>ML܊31#ai(.T2UT:+P~J#c%};4=#ILBRYG! Z(YMNWYYVpC{ħbyOhZ"7 h!B6k7mc+|i"j34>w.Sc]q^6_5-vك2Wkn|l!>{  ^a89i:v)g-Xe7b'zֶRTa>@BlׅǮb{Mו:z*g@MƇ) }Bׄ;ڥvoͥwcoZ%gȠ>,d=8NIʜϦ.P (7EɜJ|Uܜ6.4s a#R?˵J P6Q5Ceia]  E'W-[q7ƶ)/G+|‘s%fO[ A0I,LZC<6`Z!LFj*'rCŝ:[QwI䐀9<=3jñ}l^fzeBxU'|yrp>PկR +\md"="$ ׇxG东bL]EˣʫT*W<Ǝ .7G30>P4#Gd6 fk5w( w9+u< "Bfzݤ1ګەa;0GRVVfBY #}C>Õ>껭Y1gL׎?_|u۞QX)jK#?1ԧ %Mc1]oܿ06pm 7xPq $XN' UE@XU.q;Dcmq✳Xr|]T=w]dfpΕi&?%)nz'qZu\3uɬ9+=,_(*~cˇ͓+sK$3oc=sիϏ9ǛS?;-?V4q+l{3tK㐸Aeק㔨dKrJ= &C1_&T{e+ӬkOzVWÜ]41-jLTUkqs@eh9tk5DŽ4 DQ$۳{ݻ{N yǣ4[т=]`H 8UN ltbZzx(HA[aWk [+ȴ@Z;~~Ek-+H݈thS',#╈wPVݽ~{R V2{̟UI +@8/B&$@xj ʾtg BjX>Bi _U'W~B Ye%4VNv;K̄ΩA]L:#aMu#?|ްt+TsSO31mۼ9#]T7xuYD?"<̏e Qi|.#YۧNP>yMmeC?=\"^. `vߛCFV*|U ՉỶ<|̪FGNںUχxx|̅Of=FV :VP _%Bw=/X\ȱPVcc@|>$uDASǒN6l}rd0T3 Z K IrU<ڪKU?zg${[/J>N=6= ,?FW)gk%2ةX(R[(P\oCmU˷|rסX'ﴑcǺ_VqJy|S瓯߽ÿwPXM͍JU7=I@I2ӨpHk(_ pTUK[ }Y֍jUծy>o-Tѱ9I-/\)4}<6ue2\+7mGpusKy0-g(UT˪,߅z$*v;;: >WDGŸi}Ir\Z=-A> <dQv}X%H,@Ən?{7 D. ǂbM3oO9yσ *. cد´i0{o/؛*O&ۄ u:6u st՘r(EO+dXyGQxO+E'=68 :WI(d8f=kn m3LRL&71m^ePb0bԪ{U0bZh[pgQlu+*.wJQekOFmAIp:K28hK3Kdf 3"cfwD| 2ssX5txH5'˴$DvOS P7)z uMh0rC2~%97l{_MJCW1³6c\J V/;M1+ !F5f=jXD)l$I{΢')f;F} 2<͡4:ŝkNgc|Jf Js& u!t wd99Fjr텳0v"zkPbqlF7q2wR_I[PoXxI%";:E@6J>Z 'RM{ez?sM(!eRHW-R^j+|BZqH8{[]}FN}g /\ulD?q&܂3F/6ܶLx<9 "j:ҕ9oh2tJyċ~1>icfBKFJLYyiX.JT=}7dE=ndDXW=ajiop%5]2[{niIlyUުJ)y"]a9tTug7ץ%KIp}gd9VЛaj26Um>H`ȍ,Qi~+B$53]1EMn3n_ Us*@EVA7]|(%5#<#Cc-/eRKu͕o<~C7i|纍 B(ma)'C+_ EH?yJ..[[d 6)Rn?nGEF8.$T"ASl=^ff1A'[GȃϨqL*# | .TB~ZN2pWߑ~'LX\w#;3P(fK!bҢ)U@ZAbbN/>3J%,Q÷FkxKYOIץ^ƒEMO$U#_}&VԈ8(4uP늽g)q vߌ Q|2(͊4E7NO -U4rn մ8 ~ \yy+vU{__vC?m V*c=?}C+Gf[Us8,kMp94p֭Ƞ}XLp,"9ϖXx"bg*+yp.MŸ2|oYg@Gf%]RY򆔈Mk/ʠ͖Mˆr .&1ӡ! rX1Dwx2<׷]'5ԡJ2b游fDŽʇH[.ž]FfFߔK~S)H23x0[66$;?oSkyX͓A@! +?A:8 0PL9z/ r^#U7|Ib}Jg[)HC]t ܴJ'fⰅץnV3Q$U8C}\/SY!{b N)\xgʲrhnOw3r˘bs%i󋎡h.D96RahV LF߼uiK쀳9d*ܘS|#O,63 օ%1$6(}_΢ԂTJ[ ZTefGX|(XȼtNS&ܫ0af%Ѩ]+c> p0xqB1@[SJ>ߟ ~P/"h'؅}y% 1;o|K_EOf恒A{K`tJpOy% 8m])9r4aḯW>)7{W+u;+u⅏\32Y*Y[%6ѹ ?mq:ny:7gDBӾhC IQo2iB!c!y‚%*VȃεSU珀??wƴ䈌ty)ª:> )D,MSXwE_oPeRΖ ԏ!Z=e%|>2 s\py@V2[Y⹰H`'m6roC6Wny|bЎ&G2WqKmB!Ms9$ }kH8Rȿ7,<_E fz`h5>buBhƗ0vK6|~u4W4vL5 fnlF۫͵ل]O(*:OTƶRϖs G 5%W/LF)nQ}wUعZޕ{i!^Wm`WۏĉւWP7kQϖ [̩Ĭ.\;Kz~E0fs #TQ R3+r"d%YE8 'itCvF<<`A}(2s‘*rUxԾ8Ub"a'Up\bE/<"}OfZGo&iDiC,ZӦ]>ŜJmO:‘?#*d WEvhxB({(LF%~CƞV$5VMǀ6Vt"5 lm=o@${s LSoڃBp%#H#j22!|Ue2kΔs#^tǹhW<ܵ+ "_*  ΉB^K.:' ؟2i)߰QbqWNEfdg(ʻq>oւbrpā/FUH8qݶzu5\")x 4L>fq_5bΙSƂ(oRH |Pv _ tD5`3y=g;;-kϞVYp/E2ۋ\Ou7۪~ DBz@ ؍[@ JwRC#SSB QhP 8ZV%":UmRkj{ٵs6ɉvOǽڸ9n|xBQAxVߘ lAi+qwV#򩤡KFmˢpU01ʞs0*_e.d7Sc ) XuPC]}uzH:ywEZFs&֬)N}Recgg8!lÌJ(\2;+z`~Լ\'?I߅JƠT*îpג2=sy~2=2y BT~$GDp,"id6rU 9 -.=A`9^dZu>^׼:CQ\/vc|ca'g&PGזfh/lO{eO+(%ytoM+lb 6u`Mtuq2V ]Z\:2)8[$:T%ٺ>A nb~ZU2wge {k+! z&p'6A*Q,b'GI< 賋J\ W+wdF /Ź:?s kՊ^B1O.r |Ӂ|W~Xb`6neRw"F3LN̓b, +l9UYU%aP_|AbQlb^@U%s\{c_4hb@*꘍BSʬ Zl5I. E;<anNzzĝ;}ا!+LuYU߶nm㦦 ~n AT|A"e R 9UN"ˁ_㨗 >N%bYΠRCx]*TdZ~ LNmwv^vsYWTBvr> UoˏO{BBm HDd>|=(X\B\(ZSiPglސ95tVdx\ݜS~& *3g TPU.Ⰿ]kda/%pʋ &&E.u ՀW,e~WCZ8(`]?VYlw| (Q<5A*N(UM5ԓ0CzSΊ Bez:B@ZB[~'KZC&lHq1v nP{[*äA GqNˊ\@$6*GscQsNA U7D<(:/'!U`D YT|52seetQ{Kwau] uMOc>$5ǻ,%qCwW+ hMEM8VO>ߌI{W,uWJRT Chו/OC!9̨C/݁w׶1HU3=ZOg)>:y#MRژt(Η<[O|UyONϚ8p-= c=a48g^oE-i2Ź n0.g^T&NRkOREL~E޳`Y@ָ~I+HW͕5l)um(SıUXMKR%EMa y{TJvt:=7yiD/!3FO ̨r7+QnNъ+ڶ /%c#XH DBpRRʭwZXDfۭsvfVDҒK'ˁ{WO b`jJLNӊmgSeS?'I0I+O؟ow\p!uX-l[0^NOGJ;\瞱W!CՋMsC-gN~r?Xb:ÄـyX1x/l?2侥"x+AMF/YC;/^ |&&ҫ.v~jė7Pj7\J ]ON!\AhRNJ[X̹B"? 0RdQħ{ vvSYR^s6LGBb_/@R]Z\J"֮C*FR;T^ OѷvVO/f eIӉT#":rnٍ{dQN8e%T/JG7?Ga]YغX}̵kRVM7t3P_t>IYZ20uTpzArV04W#5m<.<;X緻/%16ofNVxM7;%f9'm3K0$:9 PjF(RK6‽{gu~rf-9@< 뛡=5b)R+#j jkW;˗EI -E>ZU8&u!Y8&;gNH1YZ˵TS\ň07%'6xPνv[DjQѬޓD8ԣC`6nx*b ;|ZqS⼏Bf㳣qV`" Zg; <_壟|ZֶZ86Ò8Ur]m0xe$+ 0F&Yo+1 1܇fe/jΩmXV?Z~Bk`L۬8,}p}Bc?PKόC1n=e> @%nuvola/128x128/mimetypes/metafont.pngUT `APQux ={ %)Bm%PutU\˭RET>}vl~^_\_o9m96xn2'-􀊡l@M:>(i褔Q%`xaÁmQaGuDr'eGp1 f^ŤFt@{ ` zc8O =½#C\~X]?k5WЋ*2mPײ[K4]@5-z%000`~_e.+l%jtt45""0βrK?9WݧClوdUo?V^ͼxq%€9rJ!܌N,SĄ"0(IsN7[T+3@m=[VMx՝,N(wUj2KejO!G|xhp[j}:ZFF^4 G00P}Gh?^Qv7C^4b(S}}%%tAorVA&>wW ͚6vO֋c XS_0mTgY˕1(%צGDN!cYNIL&1+̮BUPҹ /ǻ+w]\a.t +oC6ϕWQJw3ꍘ.dp yJG(Y!hns~n zC@5OQ< r(GԹO#3Su ČCZ+'JrewTXU,Ák/`Xdw~zA n&ޙeǸdz3l.hx)stX]٪G}CƙݷKinOwC%yL~8\$wjP= |5F ;w*n$}}9;{Gw% kɚ K+lAƅB6HD *G CCU9OQ+ ih KZbUymky}*b/bd.+?}&;6]8|y?xіLy롊<ɼ%;)v9c-Ѹ}h1.fLCeuz܁/Td,kVdEO8 q:qNpwT;%gk]n3 { %0Ri_JqOkw3eĈM%r[[m@u W9rV9;;Iw\f,-No<@5&?HiPMCMMPlk*z}YyOj>\ť,f#JJ${W,4Y=+ X/K6HS~ՑXi(~5ʮ֫-yqW^ UZIx<ﻀh48"Uxc'ZRzYK)'f^R"Kg.gcz& .!/ۍ* rpr ⅑j&}vyi7\P9l]=I~Im64Ń\OSiɧ"3u?΢h0Q<-xY rÃCN}9_B#C](XI^7No!;_w͝IrXI OX>It:YF,e ;0MYNK~2&`elFQT֝bl8;?OeW"BGOa1~C4n#KY:n*n+i%_O_auzXbgtӍbBꞜp,#!6:7a.KЇ!? M6MehJ S} i_~ e25>M7Pөj%C>\5XOvVSh?+ˮYnZE;ڨ즞~{!O]'\>Y֮L_ [xV?H@bW`V`M0ѱP)9.oEj%Q€29Ev@ ^%0Π\4%0ҪEd/NTI9w ?O} l ԤkKљ$Ng~ޢkB֥>;^7Z$5p:k8V;1'ӢFkDZC~ԉZ41.$-1qڎ?CJ] mRfi[A*H(x]>ѢQ/viqJP'7%qQ}ja hyehF`l+{3aG@5?X{fϱ#Hٲ98fz٘Gu  OY^,Ewk_ãZ]!ˍ ?Y[q^jR'іz]W>atǸ۫ݧ-LϤz;:caJs_&LC'ok0ԡ.EgO7,o|^IٜJcDsV.O__kj<_?ț219;fU @i=q麒L&~'iϱ ay4Ro=iq˙v' =_u!]~ k/)@ "VB_#x,lxz`zzL9%xƁyEAe'"ӒYd7R?d'DSDzCdVPI49eĖ9pZǠlzLdpn^s/f;xP?Cd1Qu)s7C 5q6#* şxVf$Wຈ zY px[vrJc3tFPE+(,*('bމ%<"U_84Hj>$̿b| kŹ#,By_WPwGƈ0XPJ<-:A:s/L9F+: >Ş9x8WE.Hu`yJcmWWטj#^=af`YѸt7U=H,"@W!hej'S 5&w^ ? FJ<מ L%F.*p4Z /F Hsa WնqT ȗz-͐`c2(' '+1:{7_VnLt\߬CC C-owuwv*$.'|aÆBrׄޱu7ud-uL?0PODmƎ"Y`83ĕ/62|,<ү;er>/`~\W /Y11CJ7̆ 0KKKs:S0Ah,E cߎȕx>u٤'~qb42~VND[e,/#&<Vdmo|?N,ZjL{fee Q;\Oa s#vwDAVq¤toR(rKDOcd-dgp!zX}8Rڸ z8ٹu=˙W%Vinq~NԶz^9䭷"?1C\M8PRHLmڙAA X^X|Ǔ8`9[G2I/<7µV;s=d-4Nd*ALtG~&pl✦> ɔ&T?m{ pN3ͱ1)s5ny 8ۑ{3Ua%KKSKpf/'|͙}iqJzQƾ+R$+T6qC! TVb01 g4X;ojZR!\W85riҩz4kCXGޢ:kz:n Oc\/OoI'{0 ojb)? V7/tc^oC+&Lfm=0D/:X56bb5sedš/>ԝ[(ɲaŰ޳RdiWg]&G' /Dۼv''^~}_UR+O).]x`n%8~^0CݕrVM>JȠ&gx|mSަzXAqrCûѣB0m!Չo~3_O?!!О\]v%!LnC=ԙӻ@2n.:"|YP .$-C9/VdP? 7c>W8~RI[-N}5|s\)uw |\ CuD^΅+PߪGZ: )W5FMр|٦=чs8?ox&A Yu_EVk00ѭo7?R43.oӫ]mvj|p{\+x8)gH^IK\0zK Q?2Kl {:#DIS?~F7T)0jYD~ $)F#ϝíl!>g}SE|%بCG*8|'yijrD܂h%ΫՈS/7ӎ սwjhКsCo[\?W|N0Թ:Q paCv >WxQoX=eN71fJz'R}]d6ɕ;r B{AN1 1>ɚi UV zaO47-%`0g`'PL ">|8Ӌ/ dMYd5Aqڱ]ji=R(70 0[}#7mQjҶi[fխWϹQ{;6tv` z|%,b6/uUw"SdP<80P~) iDn͸@۪^n ,`?UFK_q=Эs(P}6V(Mܢ>lo{dcpFg )8bḾs l,}[Ah1f%,Ոq 1TcĚPzn1YFU=SUIx&ϹJIf:uek 8TuutP͚8ICƬB+M ߂&4>PM_yYmϙU~(\xJ)ǹB\vSy̹=AWW27ڧ7>+hWjDQS˃IiWGNgtSZ߭A=(tqHi#i&x_F񾼦C;*QG#7pi.xQ,v*;ЯI=1URvݥ.82unΊ?_,ɋ̆I`7jrUoGm齣\rH3,jᵾd))^ Z"s|/^xZ[Գ-Ϫv<oE hӔI &}^LOZ V}1wj6u(v|RLT!:oǴ_+K EFJϔA ߰2NeI5[5E|D) 3 La h9[N7pFN$᚝_QWhԼJT}lJH7N,Dѫ,}Yv >WYgeD}Yz}+i~%؞SV0BK%a˦&νy0 O{QwL&]ZhzbLyq P40Pp4]ɟ>je9S ш;mbŦdlEl+(8}vv?OS3<Q7M_S>Lu/G(TC* jʺȟݹ6~[ ̆ <=^YHrc UIzRySj4]Њf_oU8SJ[*@߲w0xC>K y:ɀ1PPTwkI?"qT8CrεI,g  2L 2as xm2d5#d}9ٯW1mfƎH fg3Ƈk2DEpof%{p*AfY:/;e]*}Wy^t.pr#ٷ狳SfVTfo|I QqO֗'];9)P!C;!iy&6ĩvȞy a-TX!hz9=/Qj~ >iDyUiUCs.Q!vZ4(bhޯ* z5z})v;tωT;-&) ]5}3{Kb.}gyx㾈wU>8kVj~jcr53'COOK?{8Bg;3*X׷_ԜgTR4Cr¦J'UV 'VwW]Ml[kyNΟk`F hGli4Er`2z_~WY YlI?CRu!;uwNJ[t ri~B:f]MݭQ/ULzF`D=C?y3lH0VzKskDټdD,턒Α܃s]2,HtI;ZEZY5"'L)3"1'EcH7+:w%,/ƸnYs|9~=4FdsgBԿXY9ΫvPӧm=n#c!bm1KN( Ouk&؞R ~Uq^'p˝hY_޸cG@#:?Nan@ڪ1-/gブŠxב30p/"u V֊ٶ)a56IC!6ʙC7Jmٷ]73R-hNERAX:G>܇B%=΢W.ծoW=? YĜ`ĩᮯ̙Ə~C⒮NlٶS1>j}c>Oj[Ⱦh{DqMU6"diH **&ốP299WC(؛0V Nkf&RtNݺccDtak'?/KwKK!ץ33u-.b[bDu<7wb.C4uAg 3.Z^lǷhbk}GQOQ8Ǻ, YYVKss;#QU%qVX%ad(]1üu, <6 mĉj.2͸Z*g۰"n5X/s(ۉ*@_}ݢ<#T=kEYcV$T9x_L)~163K4;asha]N𩌝LN9OFr?=;+K,:wφV"?ys+)ÛWV#Dz _r%D~ߜM9:~)ueRA{4va-j(Ry^]!B`1 t}}`nցLMd~r(Wv"r](`\(Xw?)E9HELuI/^k0-& sxk`tf6(U73L-P͍ΘMoF#̋ZN | yȧp7Sj*n޽VSOH,&輪g6@_cRB S؆RDsĚd?7`φ󶹫TK .a< DsY1 Xl4EI2 ~Ÿ7%}lqAYK"M$]oS8ey?`IUyr6КW]#̄ :6K='Qز؄|IQ"YpZZr׺۱>.+̭[FldQˆQSam0XPh7^-)z;\.-ycGNē-d =Wp̨v7#{0#1aZkj/b;χ %7-:LCBS׼Qm&3smZy6A:Ca8 LdM8~ZkkxAϷP%rR?ͼzA2W;+FDU3ΐgO?>͗>fLIH Q`ZfQy [LkM%FfçDG'HhV(͒AZRY$hfAcWwxmhu+LyVri†j)m`C=>j>??E= U//odJ/ 0'#*̩+;tiXv;/9xFpyR#Eg#s- c,"DI7fe*7dIGv~x&b~(t."( `sً̓(At&ZFHTcJNi@P%^GEFfX: S+ |XnAؐ/PoͰa1{ !:F16PeV VrV9حvR{ )mnpcO`~HSV~|& i9kce 3pL7kU1͚C.RSQK͊Ś 6l">g$RɿWsU Dahea'pM~(]fcL_r lxqNX^J;c߮8uw+toҿI.doT`ehޞY*I:漯5^&ǟV>ؤ~g*ylkq/ЮRK\_Jm %6,_8'rL ;v n2RM` 1lP$кð^oy Pi8:j{b9jK\mBpAs3IS*>3dR4ASɨx_{"\7L!ҭ.f&\s_SatĊxH#Lv]NEeE_s&8I?488$M׺"$:ʤMGFJ U[3N\n_2InJQ\`1صg@z z Wl"_NŰFP:o=)5[yxycʵ+#mrFv18Uh] /[L@#3L[ `+Ư gyQ /5#Cg˼Ǣ#Vusttcm3}Ζ+= #ty۰Ir?VuU4;IeSK7Le4G6=[ƍ-y>jC{~C+{/ߩa-fﶎbM~L}!X95,E'/f7ylÞHnOS!5!QϬ>QqxJp,;2җ0hJK[s]$ ޙq)»!= Xd B&ޥVIÄn s]<Ә[ vޓ9H'U%g(Ѵ%aq]EMj+XުiAĉ˖c^n;n#7EpV([{jY}=vu(vNDsT.r7<Shnu1Yk-Mw^d}B%Mx(1v6xR'CjԎ3M &z,=>IT .o^/(4wJňCE8LV.%,Jd[6JyqK  *=sah(`oS-R"E"{џo86ʜ[`bxe`P"o ^lo^1/7*%jZ vP#:V&oV{CiF-%γ['LI"-#ESNZY}ąu~Ecr h:G}ݫ ogi})|!J 16_ѣk￙IWmJGy JEWs0;{dJWBr$&:[ђw(JY MDWůk c!t%߳!mƽS=D5[Xp}}DDw ](LxpѫF׳3zb<D?NKKMVہN\+U-iRu} Hs hNێW{I}erV3^ҷ9LJY`IE%Ge~kESP_kP/M[Y0{l~OsKpMMk)?J}1>0[f_j46LAFxy9nh pbr`B7GwQ3ȳ_WbGb0d%֔>wRҥ\s^q7K&쇶u#J: i=\QCKAV9'ݞMzeh)|Z%ۿ *Λ?)RƠ5;E׌:k[T:9rlE,e;"}Ota1BVt._N!l/J܍g̤k'rms8~to]|vOfbΤӻR0&XVKVoS1m&klFyMB~* w_PH2rb=k@?q{y8'[ػ Hބb>̚&&B BD67TU2e*u'̞>أ)$*pvZq O`+4A^t6؊k7jfQߍw7i~3۸`UVTB-RWS\L ۬H=ݟZjQV&"}tK:]Ѡ*sf7_&w{:X[oNDD0?}Oﭐ@ؾtO˸bqY35^ _\ ܨ1_J6o jy;϶m"mnSa a%>[=g-O Z&xI(`?YOl2sEunQN,[vLO=%ibU h]tt0Wآ/=wa<2+NJo5GP必K4c3f_4rŅms.P-&]Q-uQ_f'>'GF^-d1dZa7]&榦aKs#ػ/-=+uVsg܋O `ho^= 4Dܷ:K:^ch% ݹs.][5[C3?»vvFcMN¼ԧ)@r )C٨HHX!׼nLy+S=+]Ne\tjZG"_ధgwH!x0Wm I>D+_qXk]!yeQ#_Bg7Xkkuݣ%+Fs{@s ]d FnC ov[k8SÌa|HaQCWmQE8J_ܵJߒ ,I|Kg{mtZ:v[mq.YJt 6APKnjC1.u!nuvola/128x128/mimetypes/midi.pngUT `APQux Ex UYQ[K3#7(i7DvؓVK@И{S!^a{}չ fg'~LNT``;MAB<@ult \ FF$d4_jJ]TXhSyy5†O4 g$6NaƑW^9YY{c$nn-?&xԋBgWիWr^n+J˗<-5IZU5tW=zq2OB֙W1?Tf'r9=]xm[(K.^8aa@qb( \HuMib?*¼ ('UG`H bKIW'? ?(;S94HMM<YhK2vow`D0hQgsuyQ%MX>9]Dry8۾OI8&g_u5N'FXz_,KDHW`O o\LӠV{vD;"] 0:(OUZRwEK0iww5g:gŦ.%,ˍn#}HWFh \|&^4c+8`\|QnV?pe6q"gW8de_^.6O̚LvG!* Ul)AcuY.D*nO!9)KIֺa.w0#LGFGٸC=Giv([*c@XvNNثә0bŎ%k֐dQ!·Lq7&iϊ .L^n3'_6êA?8M dv_|bg3`j;5Y23\\E'Fn}hHT(L'H;VE҄}oYu;T hg``W$ظf'hEW^C1GZZ9 |䓅8..6SPSsRـ91m叄_S쀙?x-'*bҘkT5,簰H`ۮyCT_0ӽW+0+T^ds[??MON!i֒\:y{/bFGG#"~i|@pډ<" .xC bFGŢ"\hD8bxIBG^+~WF\o#7j[A?q/Z\‹BҎk-#M9=gl$7Qj荇aJ9H@jQyA_$^ڼRrtQYfSaa|StnQ :`5bw|42NX;['8[X}Vcc^ H}.~zMjl]ObL23R/ӿj+ s ӈ[j܁2@kz>`L}=faB35'i𧠒t^h#pQ G$c"*gKFHJ9i4 XҮGuD$_4ܼC=:CnQ-@O;4^b7AmFW5w*0 -4n3˄mNl?bC0+Jx3Ѩ=ش mu& LMcm.<ۏPPJ]AeZ#KDQGr'FņȽ8@^/e*T" G&9`jӹ@}(n;ly@]nW>3d@'7H.E̮Ҩc@#,hKa gykrJ tst$ UklQZ𠙎Ά7'" jyp15Z; pI`EmoRM!ٺ$=Qu1M}&n7D&#;!?Ih'p&^j9|-e$T eb>a^| &He~[ez(4Y3)7 :aL$-"} nMz5{8uXNdWD}t|SkGl0z|Y/U \[~Lyd_){620ח,-v܁ Y36=dG|`䎔:y ݯmKeD]S&翿ÑFE bۺbQKKx/Ζ6yzZtdu kh@WfI&PIoѹݧeA0: רzb#W?IN#;R֣J7aU5]P$ak+<"Cw\<7y^ϕdڗ?^1<-:&P*%R;g/omm$q*LӞĮY6vÇPQvۯ4(e_Up_0əw%K0:2wt R-wuO4Fykmwzt7Fb,]3gt=쟼.T / Қu6yw3?a ̉A4#qʬi]i˝g%!?֊aB `Ʈ-[xJJ8|]-}dnSqG]].}899OA,^P3͸BCIwǂ^Q-.*#-o{WUTH4(Sed'o|Uj^[`/_ ru=PI:οy}OLNN$61x%J+4yDvcnCDOAiGִ@K7ݖ|CTM_"YK ,&js׃4ޅ ;ܦph8oĎtb=Ax]!;"6| q$?fiMDN~bWEW,JOMڊQcc8\R-KєN7McL7JPK:i)̈́%% h=R)>Z4oXTVV ?Ӂ~qRx}$ ]X=O@CZ`n XTXDSv#Қj[~ek=?O_|RS`q#:) um 1QЕ|JC=>^ӠGW' I-p;3h=ux#u~6yr 4'q(HꏐJTrjU?$|>-~P^)1Z(Z8C7t8 "SEӶ>F{!31]X&HڹR6h yC֍p-3M^-CȖtu8 aIΌƫ|@;߫+zpSBWfmXl'._"lO:,1xYpicc!r03cOLlJO .mNBQ JMvu-:^Bz,&]3PJʠ!aŅ dа0e#Μ 5mݵ Η/ s7g_)jB69FŃ$dF(aj}D [m0q]NI;XG7ZݬyeƫV9qDI.ril+X#&ReanmJt۠km9E~'cĶkj'|a=%VH>%%RNR~VHnTUN~|nG~|!0'\;IF뉾r급$/_kVy=EA0^]o O觵F.' c'|^6&>V!~&qF_-/[. !0ֆu 6}osFNPKC1Rf !nuvola/128x128/mimetypes/mime.pngUT :`APQux EVkXSW=y@$&!(D޾ XR5 bEZM@p#00DJD,>Vmk PjP~kfj]4gd_CGIP(}Y< +HSD FFV-ud2OzuN"~XtG d8= ULOG}h`E9THUN݌,`z4J8OQa[. !]J lP'z|2z*C,eLĦFL2V=# s.+B7@c@9hmvVE. {Akl<b;"9@hRsb-;G N?a+ 6;¢6Y;N(M!$Ə!2Y>x3n_R\R4%O\g3s6+;v胉VMA[ƇcNߴ=[n]WW`OdXͩP3w1U oKoj!&-Hf>gx)cq!zJaRk߸kzh؎{e%X<#| B=ne1޷zSu9rG姳qǺn,>E:ONI&{[@TC52n6 ?| _X~K#ɟ? KAK. 6!;>)o.<O=UkY ,kɗ+&9AuwsRA-/e,BieB{wTd8axI 4WRޕ nhkɣ5?]%3 WJݎ ܐz?ʉi,O~ a6:7}6E&k7o#J4JJ~{-];*`6hOjpdy3yClQNt|vq6e3 vq9)IB tKѪ0 yPKC1X'((nuvola/128x128/mimetypes/mime_ebuild.pngUT  `APQux Ez ,++FP#"4M l .'4~ \Pr]9NG%[YfzK_W|.ả$F!ÐK$j3kX w._NѻN]8yUFzoyht9Z?v18 )}OISi[)Oȗ2n˟]oʶZ3<]Җ6Iҡ&7n5B}#<@b|⧎ =Ҕ#]\t#m< ຺-Pggv[nv a~u#J2 ,/9ҷN:['(a?lY_ NBL?7$b[VqDYVgSV ND*܂O3:´N`d_dt _qJINtbko0Z%>T_45hSL%#z^`0TT)D3C<>wI?X7abe^Gq| .U3Ab]\p }8Y-Ms\D…]bKGЄ埪ɋ{#~ U ) /FnױZİ ~~OA3@n\r'ԟDVWYuHx^+eϞ"ʦ2#yn+78Bg)!XDIbU8*mdp_a{tTwmGna5aW(Sk'`=Vʙv 8W7QḋźK9FLF,B"64gET#Y6(PU;[({|yQ&y)!VkH~fHMr+QKs1>Eփy{Ҩ  qaoѮQp"/' 2hǕ4J91ز;_c~Uq[jkN cܺGJfӍN5lqeP|@< uS|`ûU1rFb)jOXYW E(K5iٳC]ٸ+QͰGR>ф4@F*QQ>rLkr {v%'UZvUcp1@

      88~wB"cVa z)p 9+JzJdr_`q^L1'tJPv+2@>G Jf OMQpQyU a}Uos֟sg8lKT\pf$#ݤG$5OzaIhd5&^fB~sBs<3=ɞXs75ҪWDvCsG#,Sz|Z׋f\Uyy'@QW/+u]ܙs`5<׻Rl(i*OS/O>D+)SeXM7Bc<)4\2!*fg68Wy rWSo6 ^JPAbRWs6@'"H來~~8TB)$?tbAYApϒ_4ˢs,ʦ8+9B {bm;ǀTjAe{ ?d{yg r vW%=cЀs]$=BjS# hݥy8Y㉞%Wxz36=J7祽N]# +1gUW-Wm4zgQn;HHӰOX࿴v\zUN\G] wn85HrT9+i[xȲ5r[s f/Zƿ F?@'2眎EE}o=|_wm^[ٻwnb48r: bxmC7# p-PT r%ws`P2(s[7P||4U'5: 9x/|I9dc] ۰K8]4IUp (rN+f :jObɏw3}.O]'!9-:BgUM0 WןTs;/܂=b\5q~:Hfũ~2RߖzK$g""\2nGm֩Hue7tgzL'NhK]C_bӗPaJ?[Hcؔ4k / GvuYyb{*,;iGWܦ|dkqX{F[\zS"5~wУaeV=(ǚi7>#xTsz?RT K? \M&%hfTޔ_u*/b Gm!m@l |6#-@0SruJAVۊfosRkMb^c1t(Bm*l ,TҤ[;Fw-h+7zҍ=)ŹZu={e|V:Y:_a&&$.ܖsHiKiG ^pvNtnшJ?!"~<{,!rfMU]B" p/N+czv|+#cԘӶ ՞HWyTӖ24 C(@"49'y7X (Kk)Uk6"NJyv% |KyAW'Ȧ{d,dru6j}z"TuixjX=r4)b]353co09\NQBZNK?vL!*"b>f;Ìz(9Ia Ya)~.yyNX9*rGH;E~LPɂ@udZJgCIgzwWe֙)Să/1oAS!|ع迲Q'<ƵʍKN![R'æPi1a@ d;"M8i_Sb=~JkF9ޓhO )<3NڐoaWcMDqgwt~_.ƚ ךHM{Vl:؄4D~uMJ᭫)T>BNX ɓة%KV^l#áuuVxM+}(|>=p1]mI, Ɉr3KKK"2UXǼa_y/P7|dSZeZ;ȞVF"쥱{Kk/Jƒ4;do.s{<6TJm|76d7m rn7S@VVD4~ C)))O#HڬdzO |m/_G'0+ncVe^FDڏy{4+;[ёj0-XlUAt{3N ^Mɰn|6%kx݈Eqџu4k&Ybm r'Hm{վtܑRAca%="ZpVw]V`Y +5[<= UnJpd7b Äva0! ]||[Ut^𶺡#/o\? Jdm[lHHnoF>9i21  ̆\,!q77gjfx:o+ B,7/s'>ր쓕e5yXq/k̈́U`xE_&ne}-`k^ㆂA=@ Ӗ7X۾=(xjTUeL݄,n7:NW_ybh0N).m{ėnx4. QEW}!KC"w=.4 xNm-1S噺n%'_nog3Fc&Irf*!Mdx\n>jgԚ}í =o0~ޥ&mcQloB=C}4tId@A'ºةg2ɤry%[-\3>\yF"*$ovqըFnl]M:?@$&-M l*D4/cؒk|ԄC40$c|Fڧ-!8ؘnx3U7ޭ6e^)MFw sTvG^BO/' O7+ 8 [dH7G.#t~R6*o`G,1pdt9?ԧFea+"47 ;!r7QwT=6z p ܰOZEf;RWǛ= RHk|@V|v0ޝn'6#Ix½?Uy_@N-UP1*GtH^JPyy6n-N,jβtih*J//9zVSL2x}- XshKĩO;-Wox^ nFdi%?f!tv0!h>q A 4"sщ6lIULi<#>)ˆʏ;N3'zNV%$?;iLHN8gP|g-TZ:v [>FygxRVJ⠥RmU=N ]+jZ[\h7֖^krW;+j2E˸5(L)# Nc'(ʊmbSoʼ jIBkLkւl 3a-(k'":#ܺ6aP]t DXu >\I6!jP՟@f7eOa2!wz56O 4$uۡzDȒD\R_FLzL35,,՘}к& VjfJZjpŲP,C ϯħ©=,#gun(ceFd}MjðZI-E ּvǧ oPM3+"}Qvթ/脄A:D$L;vzq{۳;۝Y,I{hD\u_:^2/MLDQcey2F!56qiyX~%g14\&مOɍK6f7 !u tDwamToJzLJrlVf M-/]T% B5k'i1w{Vpj ߊeF0`iR[ ftxoYlczB6 45lj1} hD9[_N#J)en@l}:cPz֮0PCSYII ]?i(X#%pKqiZY߁k{ Ay^P)8OwB9wrիW ]~|zu\nYqgo<Skd7TAqŀ>o[ljnkΟ1Tծ lKl;"+rjI6*UtDϧ:2\9#̤DK{{dhʴ*0%_>FشH5MndGIZ;^4@rs#5PKt91Pp  'nuvola/128x128/mimetypes/mime_empty.pngUT gUAPQux 5 XSMB0aP kDk5 i D+ED! TT*X*TE Z*Z Ϧ_k0#{rZ["I!"&\ܟw]qlꑾKA Ȫ,nf}D 8'$3:tQQ^ξLdK [P5440tuu.>SZnCJi>5)`Vʳ: >*nmܸpuI}-;7<ǓֶD>\N'':d&CF ϼVn@W2NgKBᶮ83GS)J\_@k E;14܋kv87j{l{ 5@OՎ\xV'|=`s%98=W-9*#YKO{YQ|˛U^v rhEoqC+ɦLHF0wyc QU)YʒKT%0|7tWfO|nX9EGZn Y0HYr3m FVڸhMWbZ>3+Tvlzj[u3ACE g{<5wex!2P=Ux$ g`di Bseܔy8c Ǚ?NhXGǔrABv  Jj uC*X5j;ʙ|+_p{ft#G[0}H\Df=Qݲ̼`. Ξ ضb]s6;qJ7e.x:mҷ5q6gr@G Z7,k,FNslIWQ]0ö]ow'iu6ӳPާz5y;ςgW6QәHc[GkUu F! y@skcE_:,@ժpV/3}K\7sey'WR83X1@-Ǜ[幟bR|-`WdzIO9$錗)J1,$(Wiwgd;s}=Z«E<馪&ϭZ.KIzԗuH|24V_|0HՓ"=nn|FSΜ9C9uoP`s+|!Yݡ8 q/Ϟ=Sw5zzz|UVBd)JE{~M'hh4<0"ðöco8iR(9K߸zobZ0p%PU!Moap³v.yTZR9kpDsg gn⣁an$ bbF#[ҟR(Ǹ8uuiak-V.I ɐHpv`eg˶N$. !.gZIFZʨy]g bc|m; 'uHsEeG͈uvܡxʧPN~U&v]-ommd$&:<@MfIAz [D|z`W} n߾ {(䝇s`AM K?;d&ҡK\V O R6&nhCbZܸ9(^qub]npY`#:t]5E07ge|CC#4hƳgDW8Ht @nqc[Vf\xjo޷GK璣 z$l@)ۼ&āG3)㨍e#_@xTED( P$Ӭ%ob B&p^'/7y*bįƌ; 2ZKgF}Y@U4?z}zI0UO+š3]EvMIBUn2N #IAxobւ:.NMܶm ';O>7yoO)J{ 쫾\Mև8Um#VWxx??ਜ਼I\_?.%%M0 4*M'˨(\wsحCx`Hä+W"STnDVo^‘]/BOWs */ǃ}""#0=67RC46T_wV6q6̫PT7zFGO ˗YDTtwƚ/1 }=n{ݻ؅@\Mr܁]J6TrUrY(O:JǏ \W*W0:JwaF/_~jmHJJ6Ǩ9-.}k: ߪ*N`$Tv!tH vuqqwN# } $AʳH` 6;..)/>f%;دNяkTUm\6s&Dɓ\Y~HވŒhk$$!2o݂mb] M Mp,vm;'`@@ L?E_'qVdu~:'lNqzK95AD"\x{l70_ w"ήwi'ߠĖe7ot@p},3pyy. @JZ;}0iҔ vח`gKˆS?%ʜsȩ[[&^eV&Ac}Go#t9 鼍RSom+m]OzԬ9( $LJ "6buAf0cUQazfyM7Q}RQ2?2{3|\^v§(ޢqC985h xӊ8AKTm k`{3mHv:єNQ*ck3uRfr5cJH-YvpMR}ހq:Jn~KK3;ս ĮՌBiњ-9}\TkV}_Kޫn ![OXh!D>Fw_liBfp~UtQlY^lmZsg@> /86/6|8+4u/4JB"[R&t}( ~ ;T3\Ui<:Si{ )lR~U_ 濿{8?ZݾO潩"A+]B_EU{/E^Y.&FFzu~]oߧzU_љ骵S;#f3 wr/P/ vȱ 99[A E-0ϟY[ZZQ(: R*>)9`!^.b_,}e{gؽwbZˍiC @%n3X[_-[)`0*n%6ÖF[fB*BVxLv1\,_8jV {Xm?ׂʗ* J'Jv-wS:wҿZ=({5({@ LU1RpiMɨ7 (w \xq]\*#ESR>&2dDyQi`¦,_r`QENy}=51^0~ԥF3y76?~X4+]6gWǹ%-Dcӂhy=ԧjԅ>>.r#Xp1x.`;~ΖFXDºz@NR_u"T3~1 J wAZ7tI B7eI"莮ͥV}`p϶.>V3E}6G2?>k^^p'`Sq%O=X3p9[@[ )^Aʉ[nS$:I4$ *Y{ `l&J) aZ$to Ԃ_|`i…K4@a調DBt%E m|v;YȷP7^v'y-xz%^)l~[6xR+?ﳧQMro#G@&n矲_$g jMx_jf@^IZ kCF>*ZuL.h 6oK)XArt˗/YMO覎t'z.v#N]hCᣗ nT{ǩMb|<-'@ S[DU/B`tipJ@%סQЩMJ5ۄ[\|z70~@Xŀ}fɄtFQezFv5_nU(FH$$lcF2qcRm1yx fwZ]R7%?H%#)bFQز2fUR.Cٯ@|B<V]Y^qz@& CtuC0l&90ʕ2-<4G Yuwhb6!\B[z odNaj>w[׈/eSaze()w\ SpUM'}Ճ/FV.?,Q#H`PS!t3e)zh.G=`GyLЖU@G >ԣ + 4wŘrcހ IOuхsjug) RU_&6d_~Յ F~LX\ ]]|ڍw :dڿ!q3Rp3w6Oyy6(brXDMFN2F |}NWJn\>c˃^b׶mBXgK| [Yh> -*>RLHO6ۈvh'tjx!5ɫvemZ\K\;79nheJϋγD5aoZHZSYXGJcYFW6Dא";*Jn>ʀ:TIijo:I "U2| RV!9OS 9{r i1O;( qt%tқKiĂ[>݀t";..Bяh6s"fhᒾ[ EG(@pBkbYwÐCD{`<%oKE'>W#BvaBŒW}"ˎyjv$qgg.._.pcΛe$5B.alTF_w. }78 2@_i@p&P(uL¯quqȽkhɆxu ([_PЦD:Z[$2).}7BJJFO]\#F%T-tu[O§п37WG;NUE :]9ٍ?|l+9ݑu}}'<4'Vrl CӨ\+U%W)g/x oOnc!=LJ$< <9#0'J 1KzD"GX^ETljj NJNKSȗ$VmĖ8 [7y)o ̪8;1uN^f3+;Gy;*=m1hN§S*"Y#B_VwxF}& '==jzy[$=+o;Jo\o${fbdAKu|Ha*"Ldؠ?EݳKg6MyenF2sK6{ *CJOZ#ˮa*#. )UͫǤ u*ı:p% ozݨ~ĆzZ=zz׷B0^<pA~˞i6d^`Qx:b' Xm%a4}܌C9!Dӯ[h9d9_H+:\Z.r!3MZg3`*O|vw#XWha5Ϟ4YĜk͎HQ\[S4EkthYC+X{E6 {B(Ŧ |`XO" cR;lrEשMU:yז5D5#F4%mŀ0=d tY|\g됓g1+6O8gEu=C c:Xso8k0#]<`\\1ܓvN)[t2yV4*q_zvc59am89KL 逦,b$g{f֬FkoUJS)h (<\EYl8(vy}IJmEsovemJY8}4\n4ȣ*K\e9%Q8 :5~z4Ȳqe-!Вck^5"\MF3 Z? ̊{=|,S!u[@ 5c^Ui &IO^ǒ 6F,O/I .,G0,5O5g((~g'D) @j5e}R啂ZSDH/gp Q@W)y/% QzhQPH{g/LUuѭ$:6'G aYgN_̫'z;x/ycqYwNI|ңi5e9}%RY Lb) "&`_ƙ8 jJA <% c~!ru&ctIaڂ妧2`-PZt'6 %u尘:‰A#lScfܸԾ@_zcK#~<@t|vƈuMPZ4.aIb z 9Bl\BAB9q̌%^@ iN23wL~q ߀~a>e-ܞx?g\Hl$$\ߏ6zдPNFUh ^&~gry }̓X6PbYw4 F輎PP*tG'уd FLLJ4< wqR a[`hf'8Da_BxP;SAM=&򗸫Sy7QQ> u7p[]F'0ŅI`0 W./N`b7 6 SA g򘭣 s1$UEŲ,Bb=~c)S4SF 9B^8έ.2FXߌg䵴~2.({O'I]&juR*Cݺ冚_| ;tHԣY=9 /*>(6unVMoF)v2lM>;@r#8hȌUP ED[r#2x(@)a/p_)Du=e2Mç KbR [@ܳ'otͤxe{1W`Ȯ Jx^"IFǏb4]v^) 奯1sEJ&o/Yw/MZA襵Jh?yӗ?8|*bcn+ yb)UgQF)[,lߢ>2Q5,|@V4FUϺbwW/.kzAkXRFԭ.!y^U<93u8$D];|pS6tbqmQ|Q31j| j(f瞖ӡ`C@'+jH.;_s3.gwiXK]}e*pIouLO.5ӟG"~E/N[&tSL/~=EQT$m`mǖ1'!X1wёrmBS& /˃FVS]MLŃQrobVau^ 2z([ +^* ż{I+Su2l+-Y:֐1sRR8m-2 <^ghT>~ٕǙeėRuXJEf }=۷?чH9⻘? &_%%_!_]gcQ]@.yEM+c[0$g' YrOmF<)GH:eo"#/TBr ע0DSȱhABdd3O{A7Rz?h_&Xp@Zo` yB֤4@M}/'{im\]]3XכЕ?矃`~8}C Ք>iqDDEauTw/":,V5uKj/ :Q nl[i'Qv˷~x{G>!9i`0q-^6ޘb Fg mzM#Ǭ3/PV8x5.ixO }Q::ZSOJY͏Ged..A,a#[C!25GK|N#?WBԠ*Cn"k3g!5D?0c*fU:TU瘈z ?dNe@#Ul-Je!ް[[qH" sYzō :[7s]%(| ^_%Zj^K_H]d̘"oț">:?4.a$ϳWDJQEz4B%}KiiXDHؾ8v4_M"h+K5@'{ 5Rl!a*N]hTIcIcH;ʶMB,i_.(V8Ǿ^MZGVB؎~ Ʋ?=±TK1AܘL_@"HT8$rc({e颁=n_&٬m$eIGA NHzx[u@l,0K1 FoeČfd/G%bs̎呭>Z?)lGf9zxj:xpC0KYn4_eHU1vq軥*#a5w-}Ŏ/+H[f&) YU/gYӄWox? xGT2G4EsڂW\[J# [+"jn\⊤ {ߓ@Z|k>)[_9YU;I66S\f=v+uibBA;qXyLA -봘M/am:Vm xi[N0%%h}H륡;-c5qaesbl[v1 o+#Thd砩Ϳ;dNV]S(O$#E\與p~מy0u Sk~\NBw{t<ہg d$7q[{[whv$ 1V26u2O; ڹs'aGXn, H6PL@|^&];vsӽ$ӌ(oЩ7ƉIwApQT`N%Z\==FoLIK O8 $!$kXn 4ntp a%Ij:;"I,zNA1E*7N-m1K*^#?f`8+HCcIŤ >p<, N6;1K=PkXd,^3$Bɇ l[A ^{0wj0xMOdw:_w{Jl(PKC1= >%nuvola/128x128/mimetypes/mime_lyx.pngUT `APQux ey4T,f,.fc,3Hv3BR!%4vY"a컄$J5!eYJ%)/~朙{~={^$;c2?r"&n^p$Y8];sM/y sUٶb!7d oc4q><:*zK8}VW7VWiWGRI㎦km}ʮY!7FΝҔ5wˈ0Qw89yx''HODFNNh4ɑ+*[++*R %,ll("]$YTjgN6VbI<6VoRVqSed\]KW/@JAn-C\x  rg2p<`3.Ed9^_ixxylt>i@*TcpO݈j767@##oF*f?"B)FRv0^)aRfFdm2ys,F<y$Uiz]0Ll6RCJo^z?X+իW1ݻE*HMHfR#r JE`EQ l2AWe$CܾlR;9H%NUCj%l6tuoPKBSns;jQA=7JOE" H|'d.Dq)ܤ=C:M !,=tѶ-C}.7-c^:/Fmܺ -xQ{eWQ؝'jZjh !Rt4BIZD 50]|B&OV#z$3σ1lws*6 ܟܟjFF1P[&D,Jj46)+8L'yúfEJwȏhD4čo]@AMps[U ,taYkcFU`w)gaHwT)q}na{d^ܣ'!=E|^!x|Vgwo?%s>Zc. r#{h v9`EW9 <0m n]K֦7-DhE E1epM-tc{mp!$q2!\'1)-mm:ڃG8D*{(6JN% bu,Qj[7k#FA:Zuc"a;>Hׂ^AoʛMfиkqf!Hм~55b944|d`]A{-QHmnHn-pD#.Ɣqk%̌X:wd!';>: LTOw$E#5` >:i O-P4 LQ1Yʭ uΓ%2e.;B(f Mq؆]9LK)#`aLw$R; +4CKw.7s BٱZIoDHCno \ W0Fwձ#dw4hi]XA_C%"Wvsk[&6QkGvcD+}.y<)sO˶&y X Ո2btf?R}^s]||֪H쿱Lg8HQϲE|›zԆxxG΢sQ r9URC,d6;p8xP̮OM$Q[&%%L';-{҃ЧStݍnF:ZG6g˴LAjϯ}Cu&A/yCo4Kӥ/Mn1r,p9:t|oYoRLTQNJ 3,_'0>yA9'&^t(v"o@d-XaӞznh]+!`o #%Y%@]dc=;#60Bw.F䧑-iis{~;_4|Д!hN{Ì&,)2,\"/hĜ8"Aעu4j#-i\0+oO >p`.=.立GdWQvfviW^č?V(1%~Ld}=*A/I 5`"edg=tݟ +BWYg ڿc 61<ΏI0e`öE4AwO0V z/^;|*7eq6ePTb]nM>K-alت|1(y]'sTG[^8gUM_0@qNg n(ۮ{ LD[DGu uF293RO?עone`f `wGV 7 6՗L's!ZQ 2JRc~E;U|eEǎɈ=woe9- rØ_ޒ.5vz{tVX+g7N~uIQS"ֵ"9xm01\+,qYe@>::A<TnGϻn6ubd~,xIj29<sv-;a/]P=?"Kg%< Uf*#FŰˊ"V~g/UQ7fǸ˧YKDawoѣݒs`;&NG^vnHd6 2jӺPr8Ӷ$E;q=-i$1Hy~1y Vo@Me2|LD*_b3Dm~C7l7mErap2<$Zx ;A?MXqlOoVKbsb^\{bQ8,u<Ǿ`Y@WxzG3$iqN6zT+/O2+NMdJ%:h232LQ6;,F뱌&WB`&vvTU@ldsx}sPc2X ~0gL FR]OXjwA2QsKC=Z[mXoL[8bdq5DHN`uF>sTS<űM<Eesy_Lik`xS],ٟdu!|);(D4:bn/TvcϦ=ˁ(pYIJ34N5As^'>ruU٢aTZ9R,P-8u׏+\hf;ȓ.S/<ެ3?-m2xtWr̆ƞ m5)]?+͔#Юp9P]((swv)$؎)?B~L,߿bzЊyD;vs)߯A0{ZהD;OTp$J/UTj5mE/cm's!WS02}x'k."Dm.ށX4&{sLwX\O.5X" P[>n!YԺ"DWMS;Gjտ,̏Dž| bCFMjA:qK@`_7Rv;ixN5ăP>r!$G> ݻ>Ap畮 {.K̏ϯ?0[?G>=0L!Cz)(f.mEN #Uޯ>U}L[eŒۦI #th-{#K7nBUU/ڍSem.wēGGv7EEQCUG!vhۋ[]A#2AT9ECkָh=qRY q&ZVcZqS `aћ#qbM k]o:2x%>ZAW{SJV&Lɗ!yP=^]D n@0jW\naGBy/mWtD!dGmɪ9"Zh~`x.䏳dfT0%0?iN8Kkถea򀠭 E4ֱ7'%KҒlTk&> K!8gôRN3#8}Ѯ\ؙӲHn*m YTt`ރ5KEoҢ+` 7>_2p. 6k;q06Aˬw._xN%+_~~[Nĕqɪ)7c<046SNƧ WC_!;0vCb'Shfq4X;j+}T0B4~G֕~&ͼ_ /oe̗ӣ $o݄MMI/Qe*7AӆptU$r8izr u F⯕g<G?4V☘ڮ)L[Y M)3 UGw}jZlll2mivG<#M>v*xD|co;:XOvm;nL^^8,ɚK fPlQ?rށY=菄]([Jey^nZ][au Qi8J)6McPF)2}t{Q{!lQx.bȒ842.=%4H!n]M_YnQ:}[=+wZl29,7~j۵ ˇ{akaKa}`O@q1h:` ^c95 1/pq5ePrGG \NNƋ ,w7[]ny8C#ܲLhXbS[L?Qe" i~l$_}_4? 'a#F74ʻ0`E:Nox{k1G4}}o_{ꮤZ`ק᪗/#)Q2H\>WA H\z`pD.HreX>}UxX~&@j02=>=nyCњݤvm'Ln"lGu:O=7^E7sNɬ"mL\~+.tF ٘kI{2 г f!&y] r}6OAsℇ-- _*Q)9LȞ)uv]X^!5_Gn?}G6e3KeToR 1Mԅ W`lVR?2:>݅#R_72ao"C"(ݧa#Пe NjEuaxS!xȩ@$BΓ8X,)?,tQU&,dxYkgk-V82%M*A*8ړ"*޼k)!Л賳i*\Iޯ46@|^G}kq[6B9(͘w ޟg2,ī>nEuWf`ӓB?NԪ8Ck`|TarK]C&CU_ E=qX#֮xAT +KӾk>H[ĞwCWPHU`Z8ӷc{+#K 0ÝT\˞V~?/LV9tsB*ߎCɟ8~)PÒ34/#敕Q-Enĭ B[Y]cRݳ4DgK0ɆT@Re( =}tN*N9̺KXY4>{Ǜ+<P M&7CifL|OlKJTt1睙5f@Vc.$آAT7,CA~{9/oMkij`ԻmGV3le1ԘXzS:+ʗK>$ԉK]P f, []6YKaFFz.p[t5`鼲- .q˻I8]͍Q"e~ ڍ"w=)^s}l6c:Q+{`7k/ӷL".&6s JQy%,uJ%MPf=&"d͡ƐoVBl2) n'FYG-Rv|rZ!rȷO ^R?N`VۖIIx*ۜdش YtY<#}S74IN{>mmzq`R5Ջ4/n-nzm2?U}aBl?϶ >m"醝n.,/AYd@͝;WOF1j'&mo)v8PT 74<$<v\\}(t0yۙлx#zG]~'I U3sv$4W.:^ W c`}?0Bq1d"<=^L˵:lՄ菃RTDir#l?&ҚWߺۨ9gG)V?jyk8bf1'([rO{1ӚQjzS:ҥ V;7MBrR+jTkiAm5~w[3tjY7o4ޥXp}5 q,i^e^)?f^$DiOUhҔC+/R@Ur-=R3)X]*$JWkS*&U]$D28/ GxU)Q¨oέt2:hvgoim87 +kȦ', =BŖ3B|2mt!$g}&> XP!l˷wH vߌtʬ Ӷ\,:翝Hԍy޹O.v~0౻&;$Òܙ>,y\B؋]|`~eOhRq;2&&`p㏚Ny?8RXz{W @ګ $ӷSG, )蚔")hMR4qX$m;O<ȸ19?:f=^JE 19 1_<3&7'%[x'J;\*7EkLL uZ/n/EƠxRjSb+H" WXkþ]J^#2w4RzE?Ld>7e}@ї{j$WUj̵M#@В˧3s :acfUz9ob^?|ҲCj f:OxeW݄i>4G3gW`n2 "e ϲz{vm'7k Z[by%QDKcS6g>Ւ;0MWԿmO$ 9$(h3a_igU‚L4e p+^jfu7%3RzQsćT;IۨD,;;6_^,ZMh:Ymx*X5Nq% 3TIWn{D혰ҿ(यŽ%r}Ӌa?7B8ač=MeIG2"YVxjc`Jjꈂ\#D˾GH|Fq_W\ȚْmqTGR?E`ّEr@?ŶG޿rV#CwlL(^:, 7C +L$o>V%:0x{@tŋ{}ubtSM3Dur*"[u(Źan2?}umXt(;1a?~Ρ5ǻNyv"#^vʁ"/S_|{8q"ež^ ٽLw?O;ZN>>շ{j-s7eYhL8~o3|ca1MsF()}]y(|axnGz3rNٺV D 78*-xra@A_}s+i/܋4)+L cw]E X P}+g 0ɱ 1n7\ )F?xt!pΡaIڥ?j݂7m>9ݻR?◊{JrkoBTn ekqrPd9;P? ayޜ*MU+@}c~dL}+qvW)9_޾=ï'N*LNu$ǿN~b I BΆFGRfgg~sW1 *?W1ܛy7O!bu?VI)<;ok꿝jcu\(K&SKi2Mz:pџ)B]j?m>'9tח{|v_>)hƕ^_PQ=("hdظs婁t޵7V&H0@U(`N/8Kdc.[ 89N0|gYIུAS2CjsLJyi wy'RzhG2V%=FVT]Nŀyp^`B2\oI$0S 13Ų/bG@,yUƣ2o|ޒT`eba& ҃:sSi.^Rʈw&samVj9&$w1Z5IGʥ^ryYO5g]hkv "_A dO-9C,y+0Qʜ'>/cݘ rc\}O+n\O3DžcآP}q[Eiy0X@IQJ WMBr`A :&ֲ xw?.je/C} zy\w89`tK!Yo\6im}W}.u W_~BzBBD [ʐ.`E2}v{!ժI1aoeb~ȭ*h+DLT?T臈:>:~ev@bHĀ 1mqb6ω% u+ cK6?%" Ҥ{ͱeۓǭ^DWZs& 3TrSdxz0=q ݔ"PP6;١Us׈ Xw"&\ɰBwRZN㇄1^%Ծ}bK.JMu%ї5k3q3w؇g);6?\]y/7::YW\%h*싍EJ3rdI|,sw%(2JtWqO3uഭrѯ`} ¦K[cBT]]7v9 v?540 YqVgti7mC3_gQuwb3^Cn G0-Zq-t>Ӑb ?ˌf ='+U1aհ[I>ŲՇ[uDDK`$VVd4-)0gm/lf>ћC/\ [' ╥ wFֻVqJsaJ~ Iz[ax=@f?eg8N1ߕuT?&b MӂCǃ[W>zPpen WQ'wGώcy Q)^5c&畵@AcHk}sa*׮i#~ phO˦p$Ryq v W zҜ*]Ο/%̤ap@Q]NkJqxyiyȁ){{0GKRJR/ԭhNzAsCM1U3|uxj6T kM7sp2~+G;F[ Ew\΀)66ILDVjvoِjk­$ 55~@ ._#vL9䍿(R ,9NLX ;-q4k$S%U|k%ޑ %s@kByFAmGj„kxξg]`uGB(]4=ALfb5Uc ')'&h%"Qp7}^U G+#}uYi_[=E;S}YH]55¶4GMm,+\,Hԓч"tߧ?b~5&=\__^Е߰ϥpĉGULzHОE!7jr2$쒂~=Ku@8.գآo?~Dc.¬Yw/e-i.\z~A͈l%G'h=kͼ:D TR:jB*T#1seZ7vӛī@| dǽƉm_M1_j6O AeWb#H^_=w@'8_W`s1PKt91g# &nuvola/128x128/mimetypes/mime_temp.pngUT gUAPQux EWgXY"B"*4S(JTS UT,- YXTF)Ѝ.kgDX]  YC滃<ߏd;s9y{Ι_in` AytTbpX Aԁ7`m%"qK-ےs!nڦtF5ӓvdI 0:yAmIi8rX1@XZ?ͳn& L{XQ #LcKBT5ޒ+#N_l~6+(\ҍ)%#MKOOHH=},لc'uƾ}|e!Fb9 ҥKL깂ζT0oQ7eZp E1Ī+0,dؚT3Þy֞OD77=(i.{N:()a!OtlmUUʊv~LL-\7x[Nq_$^7U WlF b.PKzrAr:ntSocoL~S/n]y SךˠggiFwvtȀ3!6MVt+ۊYƌ?hbG3~|<7`] ̍bAȍ]~yu8uwFz+_@b,U@L#}@gI$ 1`uY)mY+zl3c#U~a?IL .]gL+?^KOje72'p:X!⡺f=`\RjIᩯ!$2ȉ`ZL [x񀈩$v,,ܘ>+sV [gM~9%d]TO b;?cۿ۫XqQȯ{Qv &4lwZ؅%Hѽ7la^W^}tah m s`Q=Z?#]T=(;k4FO-N ayLEuay=PmJ+U?&%;赥X7sX~X]sfl'ZLbdVhC½YYrП?0 /StsҴ_q㩟u f $ĆB\ZnVz"sY W"N"f⁸[]2o0➲6%gǔ{yo5ANpw?e ?c>aDX6壤S4]ӎ=u oy[|rGPX襴ģ4,ur_x-ܡMU`:(֨  [nfQC%;EЩX|4 }>$y>l/;]~sU:跀Ft8wzy4}V Rm3`^0؀ {qTLQ; Ia֟og*<%kB:CvK\uw< hn/6FEy[4L$5ixFQ621G3B<:4 q_ sPؽ@J'Up4}73ta?rv c[w? ޽422Xt_9y[%ej@,Q?*$[E(p>* йw'm iSoZ? h`Qx8,:| ]h~ yFoZZYA}}URP.gH~2SO7Ez{Y3u 1X숡*pj޵n9v\ElH8Ǫϖ8)Pۭv VMb`FKA#ݤM qu͊:8Ձ=є@XfPJ˩mގȅo?].U>Mmז06Zҋ#X]1h#雜g4]L`8Ţ_|;.ǺT9ŘH:H?αA)ѲUᯅ9;%xڠCn? rwŠ5]`9OmTJmjSgB kqp񘘘pb+o^~a3pv@sW{+BI} Phf9<`a82sdɷEF[sNfɎGOi%Zg//jW0eꞡw% }gf7V+E2,r{rn&L>=fo#s彎"d1>>>~{lF#QQNn{D6qP_$ \u #Ґ:!pn:#؜>}@^|'rkYxG3 ޑ"D m3r@+$m=$S?%H]ь$}10Q1/6=DG)ᄄD^9B!oLcON/gdye5ʤL\/töJҢ4iB:ôG$6Âͭ.(:bQ0APKC1Rf %nuvola/128x128/mimetypes/misc_doc.pngUT 4`APQux EVkXSW=y@$&!(D޾ XR5 bEZM@p#00DJD,>Vmk PjP~kfj]4gd_CGIP(}Y< +HSD FFV-ud2OzuN"~XtG d8= ULOG}h`E9THUN݌,`z4J8OQa[. !]J lP'z|2z*C,eLĦFL2V=# s.+B7@c@9hmvVE. {Akl<b;"9@hRsb-;G N?a+ 6;¢6Y;N(M!$Ə!2Y>x3n_R\R4%O\g3s6+;v胉VMA[ƇcNߴ=[n]WW`OdXͩP3w1U oKoj!&-Hf>gx)cq!zJaRk߸kzh؎{e%X<#| B=ne1޷zSu9rG姳qǺn,>E:ONI&{[@TC52n6 ?| _X~K#ɟ? KAK. 6!;>)o.<O=UkY ,kɗ+&9AuwsRA-/e,BieB{wTd8axI 4WRޕ nhkɣ5?]%3 WJݎ ܐz?ʉi,O~ a6:7}6E&k7o#J4JJ~{-];*`6hOjpdy3yClQNt|vq6e3 vq9)IB tKѪ0 yPKt91\j,y-(nuvola/128x128/mimetypes/mozilla_doc.pngUT gUAPQux M{ꪆ P\xŧ3UqE31Ewwr&F̈}aU{B#"C#'%߫\Hx>}"MOB;Qܲ؈HMH=߇0ҩ~?߲e椙fe3Q?;mP6nA(؄&JXk;5rCaBEc <R.SY}µS^pEipNZiҰ< }Mjko'K}3|n΃,kMD;ICSknqm?r?*NΟ?ʦed,\d—>< Jq+H\]}V# \'J n凞<0^X[]NiTz]~=02,>6X4׻wv}\w! =92 *S6Vk|< JͳxAVhdymG$yAߺ .3zN˜WJ"+L'V/@ ,}Z+(H#0G|= >d S~4sI@f `‚`dx˛f =Hw4Jj_ca~/2(i*)hWUf't mƑ-3UNWt0 e%f+BpK&$ss جH(}>:A(CPsESEdG#LDP 9,w! 43Z&B^CoEV_H%RAŖÜ &#I{ +#.{zhtFI2Ybb0=tVUn+ f,(m t‘{0zСɸA{R,o^[=ƽU3M ?9́JO;Pa1T<< &\$WN !tjBui`\?R'_QIԼ@ecm/9ӷ+L& :jdZtQ%;!~.ܧ4ZAD!Is+E w$`5(4]|JAe٠He=3^Xx屻>!WʡH; ?I,wRqFȒddj^C+?Pwu\n;[ւĶ*g>ؗٲzт>h2)>7Iho7`[ˊ|C1Ţ ^ŷ{umXd@=TwCd 0:hzT\D*7D:b'g_Ht2EƅxTVuKR9f;ڦ]O.:لYQC[jP4ELj>چǫP,DK1H_G9м4:Yj{Qɜ[9+^jΤ&*eCRW0p3{L<'R&ai% =_7{HQ7 %c,Crυib<~f(~ RA7F(7Q-WO,eȺsY|RE&"ꕓAdG-DϱJM se.WAoP=I#Fb*C,B1C.xAWa?_y9wmLƁHs %.$ho3x"x`WVYJY) vrgr9-%>W@,,/%Oj+O a-rVx=յ-Ɔ yC{5(P W_>Mtf DHщ%PY2F -աL,xY#IKS;ZIʹu(T?2UuU*GMϧ6-l=%NDif OsPN,2y0sn~S<#Bls lh8{:RNqF~)+hVܜ!6FH@, 8œFslmc9&v16;%ēOwwϏzܓ']0 wY)XKk?IU!<޽ؗSF9;:K`9>~>|<;Z#ݗA3|SQag~ bfϙ1m¤"U;nAqqQ.)p|޼-E&?)y,!i}Rs|T7b͝;yah|YIDˣ_ CJ9(e*!?k\͢ЭN7$ ÿ_F|).1͒WѹN$vm6M=l&d;Dr{Hcu01qPZP li I{;7--|)EnJ6Q9v +ޮ4׀;ߘ#}0y'^[͆w=]mIPh/sfQQ/v A|l<'%c+ ĀC+$A\=Gl& ^:e!^er;w5~Q322\kي~`nZyjbbdZn.J_RP!dI?gv`A!]rg"qx+ V L<ãIU{aC.D6r\RSxY%d#hў/W(hI枵t>R%9l#u;'TdnfڵPIr I24{M!%f~d Wf'KkϨW129JRDؖT+>7%gWBMKv.x5:q `$E?:j`&83JQŶyvh߱,ּSkhxrxO|kNt:Hw1) x2umgwz:q:\\Ȟm8Jz*vQ#~G\ϴqJ Nj'iT='"&rLmM|QQ/&\C7%k-'V:.qhw(ҷCժ!YoޠEmEY9c&Ӑww4cKy6|++ӕ(ǝd/)gy:,yW /nZc-)O}dr!V P<d͵.R ߧ_f!α0RQ]r`j8qVŢf灉Q& N&h~0D*8տ$w"e9xt0>R(GKe9 D>D,>^Bϡvd96ׁnM(={ QfP[HS8#Ē[㑄=[7mm#wSzVV+I$y|J#( '[JΚj\u/%* &\;4hST1%c>j[j3To]W,\zdU%E UN]mUz8F[Y2]r}H{~kD 4À"B(Ri=Mӵ>M2Dcj%$'r8V2_=g[N>^Wf mӟAKYS׻%e>)ϻG0f3hVWtjęƴWoҵ&N N=('QRb{jeBn5n;IK֘Wʍ8[75p=>TT  OYQr&Ü4-Fkq1Ec۷rE^]W>Z2 Bq0[R+))4`~vXk)#63ϗ~wk#:)ޣ!꼧`_r_u/ VTph i_ևl%&]*Q͎6Jf3};)3u1_[1UAO؟v›Ax=j^x}Q7H/ģ+8+ۑ dBّ4M95qB"%`^*zvjST/QG873sQ) O??EK vj#tPM#iYRZ[ƟVT[Ih gr]v{ђp)S,-{geJ3O<?͕ W/^T̳\w,b#> ٠d !9)b$.0U:>v1-Xx\uIoZz`tdu ,N\* ǓW |<fҸ@ 6ejHR䝛*z^k.xH D6mc$/bD%H$aQOϛ1 5N9Rfݪ('r rTr 85@8zdc܇ƎNK=DQ~x`xE[(88B 3L ٌPhr6 U@q6݁rMU0:%7V-W9n9*"\IZ:a0,nOK'nR=F5#Gn|ڙLSQxɳ@39@p*^8r[&Vչ2,׊g3m&5.sekM6;$sp6,u&t&{og"afK&{ok&re >^ (*_fNqxZU|pSiQ?ir[yoEJ fԃ+X_yT O )>nm\M< ^VDF" D6H>%O(ioR4ՈyƹLzTHSwhsrA&P?s٩]ol zێ!M/ f[ZH*O8bSݥ龴$LT +3BƲ1?P£0<շ'0O:#>٘w<:?z z?NN`$󽨏{9 qkf(ɟϩ 36́ =>sM@/N2h Ye%f-d n]k ea"jfFPL |Jw#wls aB4\y)M4:)>; C\Ky~˦F{RwSk\ _>V6V qKGL%" PS$j9dVQƺ\XǬ FT)!B_Y A+ IWd )N}o9dvlzCr#p2FM^?Dц6çʶC8c?C@;8£w/MN;?z 5'Whgm9EO.oBF-*%iwt(VեuG|뤈IL-(n S Ӻ$mIE>F$WoΝ(w'c7?Pm;K?4"ߛg֥FZԻ#af *DgrYt~{\tui+r{xe˨dTj),^xQwˤ㼽{?3ԯ&;7Ø!k>huM.Wc.mUn'\yp Ag~=%V*˸ARmB*ЂlRc2cKӊt^~wtd9Y07Z iv)_:ڬ^Ngcƺ;Ad[˫eI0sI+(trznVŰoCL2}"0*wc}DhIx3sC yF__)5_RLʥrhg#zԋhB;^+TWT ,@-i[i5V-gw%jJy}N{>i /$GUXOTAOQRw:@-m6qLLcB;Iuc:ji<<* l6e_}ŵTC"Ie_$+yuQE.\f&ijNPHD~f!^d+e#oBpR}d˚x'F۞!p?9 lС;#`}kNJ܉!Hemue:Dm/m޳=Zt'PDԅT=N4)FNwŜմ&#:~&(>ŘmU SuI[*kHicLW_\fIF(tS:u,wVfM m4J1+Kz$ }oQ"#HR.WTrLshjzJmEvj)ngƨ=,SK%7r07&3jf:_!I29<3 P^)/xJ0HIi Ǜ[Z~̸sM}Ϟ_)HBG44$3]~nTZhp?ˀ]wY oZ c!O2?mTFmsP%NbVRњKc5.iޥ;?C$(+ǝ_Gs`Ud\~SCK;S뵼k=,ɞ[[Ċi} NK3Ntv¼Lۤ7l8eءPt:bYنn%Ս:g;C$ݲ;P|og"*άۅoBkt<0OfI ~UnpxSڔjTdNdsGb߇6>lP: pH5;XR`$Rf|~eG=녠i|v͒!% 간KӇzH3)ǧB5Gh*n ygz7~|X1dgV^#tLvvB]q.TiuOo `.q,/^V*2x0W^zpw #|PwbhSZ5E"aϭSߣbv`*-}Cre䩝-DZ%~~̮?J äk ?W{Rбc2<-ZaxkƜMGGdIOhDzxgX,?MB8c>?O:;I8 Wo#~A\cOʿJ?mB }hrƙ}Ϻɺ_$E-XI=V;1[W^ͳl۳ϻg7~*8im6%v}Ѭ7ݑ8sgh@15ɳvq0=X MLqToaM77T(%TCě=+H/9ڛC7u_Ą7otmA?p:F ~M;Esbb1fҦ!uc>2g?tTlU娡!f2/)"8޿N& rA2DWQ{ Y7*brmJQ\-+w^\6Z)!h Ws%jE wkZ?g}YE*E?Y 䮭,Hƞl}&O`\:ۻFi B\P0eY[xpg$v+*ީpRZ緶O*ѻQb^ 60ÂNS,\rmPYJm:KL :=\4DOn`񼰮U"/΂; Yi (CHg^N}U+{^JPKC1ܰE'p)nuvola/128x128/mimetypes/netscape_doc.pngUT `APQux Ey 8Tm}p3k5֐e[YJTClhT(IfD$eRH2lu͜9>Ͻ<'' ften|hg]ԽTxܺ< gm= 8sNp(S%w$z*򜥒ѷl?T$15R Hoojh]6Y/"W֭E0,|7{{Gaom # GkH׀A\Nl k,|;PpdAshSF7.kO!_1ؼyʥKqY$|-zjƽ͟,\;.P澅O5Wn>lÕ,"LxmaumvuP1 _. &2ų@'z|M!ӵ^.pe(i^\6k>k<-Άz8)_`I:eQJ5zYv܄֊#w;TDRV@:К8 }Qa$(-ϝfF~_O)f'No}fA"F_Z2,m>nz-Ȯ~M|Def~#ĝ#Q7Fg'dNL}=if'@T4ED;9{x39 xWVi *e[o*Ǘob90c}^d_i7LNjtDmWzctZnU<}64]t&M_JW$ע˃'B؛(+`s7b_!\oT!4  ,Iy-ǖ,Kkζ'ne|ٲs1u6q;;΄L\;/ffcD£͖ 72h;ǣQ[8};3d Lk_1M\[Ŭ{$֩'^S]Tng,(Y77tpJw\Ђg'nէos# vVR6DWql|XwGG ʎ <Σ{Px;4"=w77ƥ'jEY68Flp XqT;R&@i LxU2 nzvBF?}zxuBMM8QDn (pΤU,VoF!=WNj[ t"rx057pWO-9WzO,w_ʘJխ-L3 a\oQj8&Ȓ??&k]lLc`䀟- I6 Ӕ{EjK@7`9)*[b%ٶ =K7\SJf psDD3B-z+WL\TC+P 9;uuPvRlMRDSC#s+/oTnGtߥ^ZVtB'-/k &DYXO`:(J+zǞ71JCIʺ2/#4$&.W4y&{.%;Va󋘙R؞W|̘=ny|א 8Жzה2Yǹ`nlTQHMWT;1cea^[[cI wy"yO)1M} ɛr]&&?>Jh 2GtPúYXRӛfj'a$=G.]׻Y*JRÐUӛ)D%7.T``Vl0IlomZDۛ(2%>_ʧg [gkكdYdX6.AΈ~[oBgí>fZ W1 ѿ] k8Γ@72Ǩ0nvV1jH sGL(^$E$%nFX&_5$"ORb~Kk2=89XyJ=5z6 YO4tkkGUS7ߨW6įm>1eZae=w)?ݚpGTaysղV%i뇂vȍ(zcorp ᇏ{ɈB,z K9-F]"挌QQը?7;"֌OQ\``}ݩ 4+JRޘl|^Dfc'sP[cس=/t`}Iغg+|EO+*A쳂yvTH|̺؜ `pu%݅H-Rc[P=(>O%sp">1<2n$Yb#)3FԊ;mFS~ z_ \V̛I*.Nɑ@JC'ÂO2 gS\O۩OOP'c5z(YP-B6v@<ђdMZk|5e|+0: FSJ|YFR"U-̃aIp fP) U'_=ͣ]PKC1*..%nuvola/128x128/mimetypes/ooo_calc.pngUT `APQux =z 8T\}ҌRfLE)3H *J 3J^RL*md IH`̼}>Ͻ9{~>sN4{Kڿ_V.q>h iS:GB_~>8dz@TK:wcv֮Q}"kp{F/7+q&^!9YHc<Jʪ|K<7R"oXqLK$\wOV m Ns+q";򔀀/J'bo\֒*W:JEڣG0}ަM%%L&[:Hޫ1Ms >,, |O #&2Fx"G}ӑ{ó{z۷#t"xK3'] 7T)6u0ZG*^;']tbSp˷b9?H q3=3Z9(k?$rU6#PdmЛzt؞(''9FnrMX K ^-'W33/c%Sۻ7_'I MPH *W߿z5f\if;Ok=U=/8LCܺDrgdѓ3 pd?m !Zykmݖg .hx$2H Tgʻf + ֈۃt\ztMA׭ˑh4<ApNE6ѻ?UywjXiQ.~ -oJ Eh8򪟋t瞺:0!!atw%_o& tPl`pC}N8=Qp5]?lW o/eO6 2tq!m/Y2Miӂ (:q8.v&kiYQCN]m s|@Rx @3mndבo ]zHI?뙉xmIs=^դZ1*CzLQΜ'`p=s9>9sP m*VA$x A'҃30[ˉ4e}*U^;#tձ9z_$iQrwSxaT]1N3 5P8XPGGs/*.Ͻޭ6|y5 4Xrrלќt/[rt{QN=A@2ѣ)dg>D\&- '?X>qFnEô(5{̊CM;:vCmہ$mNhLQ9rO}|5 C+ytHeUJ/GʂfxHkfd8UmE:^nٻ >n75vE"{ #>%K "۞OƍCŃ6o5/#^M&OwvYk'W=@KY}!~c= +]RUDLS5&)kZ1KOf[t<|i6%~0sGn=(1 D/*6-=%¯LȂwJ탕[uDkVm_$ vWhlUn&OG1tGi@ߛ42Ο=93ߪ6O$Uk3^ V#cŽ#R{U'Vʼn$&mƖ{Kɗ,q۶]R"q{uEg\৵"75+UngGE<5 bM!yR;3/DS\QW8oj/޿5I-sG:{w#ok.%)YܩsIgВݢ؇ Fܲݯv/$&>Q7qR_ NU((I+?w]QF9lp{n = 6y{df^0-:u*q|ЩߚfG*% wB~k"FPfմv nm|9c!J PRtSÒn׻߷H~2LL3NY%WˆZZ꣑mWZu#\ 3Zdl&ݏ/!Ti:锨wߢ@٥zc^ճg" \V8U.s=PLz :ᤥh[qJ>TUk.<20^ .T9}ҷp㡐ۻҊcmwS|lsX(e4xԞI !^Jv:S~ >W aޮmmۿUI#0R~mwb|#s`dy$V${Mq.P@PЦGLuX*TIEF^澮Y{lLlyGM2%\I I[ῒz/,9ʴVGկ 7lem_jz < A(}~QCVUa XGG-N sw%7 Abmt{P=x@9G 㮸M3<$l/ܬj1z1lۛ-V"5| ) zwBA}g1 I[3oD 0]-rJkӰyԛw'E~*@配 4g0~ hE}61Oֻk_~^ sJsgВ*2:agaaa]`llZ?Y}xdMdÏ2 Vش]:-g96Ur&@@DH9x {1pP~n*oiH *d&F}=XTZZ7צ IAP <kgoyOM)8WDس4?_0z ۴^4uԟύg뎖zPjJ*T5PdWwϥ6)JEm. Lv WrBZUV )\ U;X=E9$nΎ KM/W(~v+a* G w4./,;/^`Dx\#mve: bq+"QoBMJC$Do|͓ʊؽD3DH1y"6R( g45Ep_ߤԱY Lo&JZNSqb} 2AS[ oZWџ||,#~5khɈ#7e6=c#&FEzUz8ufQEFp8h5qVFD, 9]͗Z;`#-Mȶ7ڂ@|^ΉGwO7 \V\PyfS!UlC0#Uh n 1}j NHSƥR}?CZ `ڮP'+3Xhۜ7c|F(I[j$8+FR=`G_gQEPo9)jS՛/̽]htTeQ w; fuz%%iV|j?M%' agܷ%Da~ڂ PPLˎLpP.h ؐo."JWo2& >1)7Bǣ ,oO`й4]0g!9<Ƶf %L9`Ze]GMב$th&ɀ^BAQ3 Noi.Rx&cY= EK`5=F5z <cWu}i71R'}cJbQQ!`I!/Q{Pô'1RlP~Is*٢@Mj3ꑔ-~2}2@"n5۝#}B}Pn_" D.IL2>6 A4c{n6Oe O2#؄0YiŊfh?ۣ.jsy9g"޶<'N:<ZjT9-;?`3]O !r66V/jf”kELT/nv'3<~`!h,fe=sč1/StB%d >w}+rPg8ait]Oԩ'63O\iR6ѼL>#E%Xe\s4,f/z-sD9!KFSnyr-])D= ДS=c% [y)9Ȏ^8, %{?J,Y:7s7'2xMŘTb 0.e3*iLH){wzt^P)!lv2őt`oV>EHulo֯CvrDHLnB?@=ݽ$F| 4g{Kn!9(~qwt3WpwmC/c%b4 '|^~J0!MbпhyS+F}ڒ< jR=vN(ý4('cF)oN.h0zXpZY.,c;ic TmboTxdmemOxX>A{9@ԛ<"Æٹ02d(Ay+TT ߀/(3tuc=60S =++ĖVzx1bS}ӊNbPf{A@p`gOiGL%k*5,|zC(D^@PRNnH{mY"Bf/CU̇0nr䍧x}\|Nޤ!1<(&EA1f̍BhsVڝlc >Ҡ㓠Zq|oA$>hks|!?PֿT_7 ;=2 -ͤN-~S^Rag#ēq:DQ4ugI&U)E SqFNbQSFY^RTͱGWf%&یq R #"|ީ͛ [ɏ/+>w*}m6ey8}/H(SM#Ew ]t7\Žx>eS68*ۇ~I+IaiGy$--uޛ ĉzv×p}:I VPY܌FA=I0bF,Gq\E` 5]3 In E@ѭd1Qrk:@9|dE'QTկISW${̧6l{qt[_g 'cY G}c #\c4\߫&6 76 UVP`!s&ۀ񀆖8$Z3B-`ZZ¦M#L,S O]Z|tb$ocw~[FM3RGNJJs:{˔Vrp{U7=SݻhE9A#EN^^NڞvhT7""XO CҖY5Q"g=|?RdO3%%=ukt9%|G k$6&Eݚj?3 ʓ49@B_V?уY򫳔o`o!!m=E#uo H!0@'poD5}7l qkE#P|~惻 Y46)+a55Uė2YpFyE}LY~*ZykTR8yHk@ݿ(,u l2zT>@B+.Qw8ycw}Wb0ѭ癏&.@ kZ{7>4 ψ҅DJBع1O=]dx~^:&YԹID ֛x ={rģ҄*(͐ ᣒ$L[:fCoAdT16&-|lͷG?؈^52Ӻu[0Ql$/{ vMEu~Q2͠ODX+7bN;A5 gJgF# e'Ļ, S1䛥[L!OBQ:+eOLRxh)oljO7!pߍ8bEESIrFF>U|qu,!ӳDxm^x#OؚލE"X^B&^]qWRv2a<QzՀA@97Ĵ;<IV0j,)qѥ?cIѿ{|@ǣJhX1:(8*#vtf 4iwKY@ YK(7 K y3\ 'YUYliMfA զ_*>V7ZfF2ARbH͖cd{e̹>i/Wsyи.Dl@{(>[&c;#}rVrLQ:vbU ut^?)<+ZZRRy7Vc E%#jP $IƜ<3,)3 8]ڏ`׈'zmE!-9޶e4g$֏ÍwI$$6c)q| oM׫1CGeaݴ>M=aɮ'*} |-nB+q}%iӞ7}UMXDDLˠ&wP}~8 ;yVb&ɛd6v7ieopwBk#6 U@r7?16r4jW{-4{Jؙ= d_)}`6V ,N-Sqw=5OJs2GL!gq.`t1NbtҎ$j _~11:\3g˷ z88p!8gBK QOS1P@x^BxlGl;4Y K1k|7ZLS'{âvL[yRj&U% ºK2c[6@W(>9* l㴷64_voBt6A\^Y]0FM̓/Kc`٨j *.c|FcԚ/P17kz]Њ99撎* @ vfVb7Ȝū_WKOJm:!OiuJւ ;-RIo E'[ܻkU/E/BL?#>@|gB exEx%C܁~.~Ɓ9R1B=.'='`TQla>{`/1.{b(dE嗌Ms:LaWH0 hGqD'!lF]=L )M=#1RZ.QùQf6XbϨ+'jXtuEyyF c1Ķ|v;>il ZVQ~R`+K!Q)iaxWFWW_ %x,r4)֗8a1E9:7y~tx ~Uz#H;OQo'PMV?կP 1rC;8a+fzYp)ml.X;${ J٤,p7mB"h٢=SIyLf&4$$5A4<Q9bVKz>Mh~ALG3-fkIVI`5A{e>$R'oV'\ ī,Nݫ- aJM ײT.ԸA #|fA6f]ʍzR۶wMi1+jX 7OЊc] *%%p򘒘ͼo]2|YheChQ]%I"܃З/vԴtd(gҟs+&lTCƯz%UTi tt(\{jW9-ZZ@-FF7  $kbcǣ!D"L :0;~gkT5#q'܀ze) J"RhIAo"YzwI/K7amtOWp3Gy/`u4[1#4VV`d'$QǞq]& n` \]+0yZ zj낤8M2oo}SUb=G+?xo{Y$4&-~>@I\lQ Vm<C|?2[RfDn_NUߚ#q}t m&_j. w'|P C5ך~jxɕQ% ~_3F; ,K)j t7wx9/h^“jz+tur.|rRD[P"'} pmߟ_ȼڰ  qV*AGGr2_S{щ($gQ?#} $ۺ.a) XH qÁ j'C?~"G;hMի(ìZy|nD2ܝ8[Ȳ ( il^T44@SģAVОoC퇽T}ǪH6\H`|/ožJS$}p%}\r:N"0ϒ/^Bcqq )!b/vC>,( ?!Išg.kAV]b@Bu5fq`{PPKC1e1/S0)nuvola/128x128/mimetypes/ooo_calc_tpl.pngUT `APQux -zTw:h (ChRLP-"CDEi"KT- "BTŲTP8j9'IrNr<3nn rnN{$gyw<mR~J1;}cFPc()(" v't&M9 X <# G/vf`t@}7 Camge. @/8;;4"G84^qqkz*QX[ř2m`7wQRf W7Kۼj&Q,Y@R@2ِlVprHS|yN{@+ݻEuk3Y,,^&T'#rzeu F ŨXe0i4+MGFt lOAQQH[g'oeևH,La+4YDWj|WdvXmuzZ9qci씴*@O[SdB^E&tu$WߥUuj6!DЫ 4xOOyf~J']` 3+gìڳ&0hkr_g$Ni *qKoޗ0ɨzKUmH\QP#lFjQ8) $(px,!Ikkoχ~'ͽx}yHrH PVůmHI<;a)սw|ͺq%#/ѭ!ya\[mH5]t)Iz#rN bi{ħs MwjEZE'6c0Z䱒{v}[lt=@ġߧڟ+i{(> H&SD?zF+u : =OF?WچnVGA3sfks_w+WŇOK=8vFWqWJN}ܟ*C0NJwt~^5sL%5kFO=ǁ7Hm:5wҤ꾢4z@ Wux>Ec96)R1I)W`h.@Mnlm9|k3KѼLېv}8?.j%HA%$C-TGLfdKr`[9L%MP:5WؾhdA.>eHehws@otwd\ Z=4ۙ;Gl2R߄q$N}ʹhwhƁk6LHC~J?b,U'*9{]NPS8r[mې?ѿ\fdLu,#|"ǵN*W,4xiҪ@βbMiʋLVⵠpniiẒٍΟge^D}<<'wM-5vvNH7*zY[jʭd/F @\8+,$ϺysDws:"\ڒTV Y.<Z!{1OV iJI=ݲT)ܜugAH#Gna%;IѶ 9rYBg۲ۘ޽yʦM8Nѵj1~PrQ;x\u_}YD;bd]Vfgg'nW[Cs/>iѾۼ{lխ6yF~`?Bw WņRƷUO̮U I&qum+GWU\:EԐF~pXwa*pj9.N;0gҴXXkA ^AgNaF]Բ]dQ"^j-<㯰zDcЦm)gn@sGgwJ#/k|yVhxW>h{Y^K@&/+Puc p22F-8]ܟYy#Ǭoe/^wr3]ίITl@ ;JI3wZ\Kˮ U;iԲ1(8`;gO_w;F\ۖ۸U.wSif ^}1\{]ce#֍=qƬWm{g\_UO1ºX&gEiP@{oXG SeDԙA^_ysצ~:=>9W&~|L5km,dwCʖ<7bwӋUU{Ecee^mrqf~jOm(6Jv̊kU"ݎݻ'e66$^ e9td@=gN"S*9^8A,@+[97㖴ߥkj;6;죉Մ (nWdU#F͋;uXEӊa+тҾ2FnQI\2:tm,2jńxE(}NmxɷAnKtLxwWkgE-E]) @'CW"Nh!XEGOGʐ˜l"6cn,s vlPJ>uQadǫZ׵=nzObcGfҰ10N A!+MQ&`~/^ ZtBBK_wml+G1?-jJQH`UYFݞ}@ڠ Sb(+XMxnx+NuuAAN 5G| |odtf?߽+~)R[ }27WD7**K_eT P׼%-1l\"ЛHu[$tvx >d0r6^Pƻ8;XhX80H(X4FR#1ȵ{aYWf6`6sƩiQVgO½v'`%^\ !ìĐn/WI(w1O\6ŝ 9),׊ p~rۖ2RY. &n Q tf=af] =`h|`՘)z"{ LVeyΤ=rJmc! S:bExqpmFa ,@n,uv8ثO`#v›y==X y| C¿V\|1k*C 5_Tp4sh430,x7/Ѣ*7EJ5[Og-&SJ _S07*ڱ S}NcҾKM6Mz"Dwد|hW sHSc#Y\M(V_nx^*0ɶ`M*ڽ@ eڷ.IY|& QH{MS5NZ[ѣaMvF2'p9~ if~_@f_L=OY{gaQ\x~lMW|A| Ex ᱕=|ʣǖ?`R^pzVglM)=Э+s#ߞMW|&_N0TrœZa3 AD<<OF?͔ [rN涭1 a5Vc}ݑ:70"ȷ<#-ק=XG#,T޺.ّO/n m)_d3vgD6f21#ۛ]:! [ ٹJ]}#2t|`uxbt/Xq9αL+zK -QX@_wΰQ[ q u g2rH5T?am_]wG;vyj[qCx *I4ÁD&f 4K4BƎ9j~ t)=MµUur} lF׀W'Z#y N32׺h %.^f?i3wWxfsB]v:?^}اC-*VOF+!$bxgNsSɌN`$8 AށdJ6~}{nb{?0vQu;ND^?0,hyӐHU/h1M д{Iqr,!*P(]Gr&u:v a^9U 22|CV0eDg9L|!Bp|W

      1it(jj-]%:;vѬ{3f+ipgvЍ>6h]*A;)!lZ3Nz̒ YOH q0? kkoL$+f#8ĸ:D (IɏTrtN xTX7iV gvnnRʨXlh (Dq|^$8T`ʔVBR}79uhzYƭ٦.}*bR90TjL߬3)T;dH}xK4 eۭ~m1_,;ϓhۉf&~,ƙΔ\%e-.8DKUY>;T0 w.m^G.~Ps-&t04K.L1怙Z׮ IB&Kq" "~cEH/f6Հ˂C)! AuVE(C7{MY(|eevmd2I㔰H fUaDχ2rvN +x@¹`<^<3/pf؁݁?~]^ҁ!nU!}F[G%2aN,-EA/z;clT^;p2eV SB_$J|PGryqȵQkws4a\D8+#GS}cxW"88ĕ>‡}OJ+o.} cabǤH|Bº%-sl#ibNWW }/_,Fz\?Ni@*Q'珏#怺uV.5EۇaErSm4i$Cm: 2䠠<G'v]_3׫dDfǟ9۲c}9tjF`Ka| ϐ_ =Lۚo n Vr˲K\ "uO)૟nFw}ŀUD;fQ'=Ⱥ3/«7^4Ew͔9"qKmXlACF>@ R|VGM"E|GHM@ū|-+6pA|U_Mc4BSJV޷8B1"W_Ap;tx鸿H"忹p}jW'mapPOIJz+`6 7Nllm;ugZYg '~h>lwl[i9ECcb! zzx2K\F J`c$x#G:7)2f%ŽE(Q") ?po5j9K_hF{أ(y)eX&`Pq'[5oN\׃ccЅxmAI^N"3~ T@4Z1 rl"fAVO o%(e]2pOP3AR& o cH;I^%|^Qcq1:9 ݽ~eЉ#F;x⪱lGO@WՓ%t}qX=3[ ݄6h 8/xKKP+D72>h?VIt=`fC+>/=4ĕHҐ{C՘kk ܹRbR|RzzQ0S^ J8V5/J$ ߭m[M}<< ⇨) JD4el0+Y.fvK Mo¿<2[^.7D1V~nxZ,ubeۄK>|dZx\C3v3Ji=%gjoZKWG$Eo{=\ % זx!yG쥶f8\cP)5H|8Pb,{ 23I4~¸'ulh u#/FbjƜGHN8N\pzoU-mVCuаaʷ>.:'n0YFxM I1Q..ՠl~ !7m*>S"&Zz\-ڄXU}9O0ZW]-'JDiZ2QHf?a57q]:A`YVv Nze#Ȳ6%UFl\]VS1eiDW dT1)oI)Gdׂ6GT\&z.}!y- hohUQTB s.|yd@vYKY`pFqc{JL7),Oc FCOplQƹf\HE+A 6Hwo\{CB0QB?:(ĕxo`E櫻wFdtoz04,JW<`a9uqU=)Yw‚mM/ZQ6n#;ttss8]g\ 噧Fa/>O:$qG“~(zrmllD#mZlUkRp[mm-."׸oqEt +B/Lp8hvo@LlȻWkr1% #~dl 71c5nzyi6{Fzr:dK.qݭaTj>+CPa=}K/M̹48qx@j1cb1f ʤIc6G;ۖ$? '½ 'K_ 2~#s*ΨBǁD;)_]>95m;ٝyZ-ΚgыY.q,M V0z7g$4-8$F8u oRrM'[7I1 hK"ޗSŊꡪCvo#=X+!R8XSXkH #vڡA١/g)F-ЙOji3Ytb L G7r쥽!7.|8¤uw.':G$Eq,tEy Wm 13dsБPKt912*00%nuvola/128x128/mimetypes/ooo_draw.pngUT gUAPQux E{{<{7Cl9Ә3E* ќ6Ӝc%RTtPȘR9 E9Lؾcq߻ョz>qgS@bnGH[[ LGv ̟}lNA|p@ܞ0@@߀Ȏ@[8~:RD# (>@}+ pdX"Hֺ# ܿ?W3(6  gp"D<ocm >臻CE؃b|%ʥ+R,s#|R5,((D//R8}BF>4B$ rw׭|l/dvR "hu:| Vyn "RǸ|YSbRYYHk׹*iiiLWw7?utM.ZBPe`,--'-zt(NO/+))ak).hHԲ/IG7uElS˞=+4ӐXLIzsxeq|_K(TYY靥er2Uђ{G"/cʘL slȷWO#DprT .ʎl]/ى{rFQ1o#QQ-:eJƼ hHk恛+s!ZE:D~ q eɶ?jlVW)P%ь)|6vv/ePdq&cSdq/iZڎG2{ dv5 }Eo\hZ5{= X K(_j,v)ru ܺ8;dCOCk<,YcLG 2m?) ŁzzzD=2@{E8S]#e9BeLph !-J~6:2: kjgؿТFS:K>?d{mxJT kYvŀ|爏H5 }/FD´|S:`Nj8BKVǸeE9p΁x>o;{ݙo̰O5?9Nإrm ;혂JAzlg䲽Bz*P~w[˛ vw?Ej#/ةͧrOO,ڌߕ,]di-H4[4BMUJ ǕFX-M9ɥ&igP Hvm+~MP6jdаQeG9`%V= G߲ʫ>ځj-bXf,qEC''+?*i)Cm'7@G,$rֿAl._g)+tsa/_Daޏbi ߅|Kf^iIrlitp߻sU9_gQ,a<}zbmSr)?uEd(ujms׶q=ln7T:X ZWn8[xSQZ˃&@Nغf?%,Z%8!A3'&Mi(Znz#g+4ԹIb Yǘmȝ:)k8s_Ԯ}Dy̓'"`_B5Ow>0 b6pJiHfL9@.79ALpJDj.].s?4{&h?ݢo+/~x[-Y󡆸˾lMe۞Ll5%G%"C24?BdZ;-uAzwabݳДC6O䔭Ҧ?%1R8m0ٶ'M 3Ym{9L[Cpb߳CnLoE:wl˟s_e!f2q-ȟw^D,&N.mgPn[ ! q8 |D1ܞj`Ec50l#WEК ʎ#^n3*Q'rOAo&Ҟlpb_cBÒ+lLu=2%NXѹbqCfZ Oc5V{/;4}ٽSb'`G!Tsc+g 86 {cQ6qPzE9+_~P'FcE?~4_GJ󺳴q IU),%f./LOc6h}*0NsQGA :5EQe^5F-8 *Uh>.egnv&lHb_\1؏2 hϡB_ h}gدJ_j=Hxp¼y]b8#.܍Y|_+$+!jMy R'q-)⬜9g\AVK{Ey*LLа0+rWqt6O@QXS-Pd _:vt/qaIrGΉ1+=%9D{o;)sޕ+(G D/~i?6Cx_z{iO?Fe~TwOgR7 V?"|}xʕe!ͧ+7/|o*ۦVxW6ΟV_bz G=J8ZvF2ETD^̶(wud5# @h\el}q;3 5 #41."2$Nj4-11B@L3QS L6EM $ kwI(11q^ζ⑈3:'':qSTV`ܑG&_<Ŀi#SmrfBȓo&4[ӛ6Q F} K*K}л`a'msxdKwd{D.mHu<`r .A"y~k!ߺJ wB-5o?VL:q1='%J0<3F٬7KJٵvyKe%|]4UߝX JpJERau̕ËG*?3k~#dX ȞI-V}|xspzqrr$h7bjY*i~VN_U_BR)d!퀧7Ѕbgar@*m{.$} /TD[J|p,-y*j*9ڇFGZտ0qn7~x1͸9\пFޟ[^ME#f9J3 NtBQ٣iL@PTّ(JosjSr. ga"eN ~ZD.){((<?W*v2Ve#Ђ*w;bD8Tʙ~W͋_Ƈ,mFypm &w/N%l'sU+﷒[v: qHxt:T=40ur$y՝cH~ %fMtLްH5`5_$y?cjg_v3*7=q9u>c7W^sS}IE&a<TG2`;n{Нݖ-uk*W3#]ˣZ\Zp$W>idi<|e&[ uE369RIdnH=#șV? ~ˍuÑv\Dv(8T<;61?!ۃg\iftܭ\d?{\{-䚝KB{mfreUop8IE| yeʶ1#-EnA;4UB殔^o>bgA^ʶ]5;N KnS3&U\߅G| "j^MYh7{:oS-Y.AL"U;vQ]a!pfKf=Ӥǟlb;23s; $F%{d#& 44&ћ 9Oۉ 0vp |: ]Aii !{.רBy MdVAzBIB›7gWpvgc"/R8ÏE]RR7wͰXwuްZ[ 7%x5pE$y +cuxl:K4H 'E@~~"(fGZ=vq ,LuqZ]>!$۶Օ>-m`dlAlF(; mimpWߠ#IN#>>|cLN0ʮTB% PK[GJ2&YmdDwޫCK6NEYG+Yݯv⭔lhG ⧦(tRG(EtG="_EBoTG8%I|&1\< oFA.*7Cxtud%""?{cdJ\%!ϫjM4o_L-[@YT =flhmlX O(K !AZSO>]i'Cu<=m`U2߸㝯wO7d$ܞ.@.(|.H55>[N?F %I[A_X^b|m^PM~?IXہuZ^ ^u֜}K ]|[_]qȪa=vs uՑA"s=X6c$j__bWOSfOO3٨t3wɑ\}.% =a#Ò'\҂>|-~ӊZ @wW#|I:l|-4e80hGF7Xί}m VM<"vqHvKeΈq b G\ !_M]$ox'=JNzaoroVP9rӯJZ$a'1'T)BV{zgn@"B]>yc@KS<xtoR gYib@}/E$hlk̺Fm~VEgiJG!ԛ,Hc"T}ɺY xcQ Q?n^qzn{[qj-/م XR JiBkC/UQn:ͳ3 M: O h`;X#K_5 7j:#Oqs⛣eKd';vċT QQM!ו1|]sedrpWV5jC<aC|8Q%MUq.EuY?g"qM-I1e>P,Z“vSb#YbpQtA<7>mT]KV2Qۖѿk u4_4p,F%P)ƕO!=53jYuPB W"ŽϱN@Pu DJÐ8}ID(Me(l pW]҃E; ;򮩺#=4)gx>^̚wo7P3H DFg\3\!nSe[]%ZVgplk9Fbps:} ٵ@t5F(4H8}Cφ iA"yVg)/&> wknk:m&E;{..oO1VkJn [PUM1ߢ~CIQ 6VJ.Ud:WX({H5Xcy̠ϝo1XL4:hG>pW9&uSx+vs!myHG].&V:,PJ<DžN15)`^H+ )Đ \_bb͸>f{0Hiue{郿dHK#: ND@?3zCɿ\܂_Je'; SWƦ;N yuqTΘ!12?e7u 뻟PӴ鏖-|U<ǹ3pd>cUH{3o̤T+-QqRiy%vΪ0˯bu+K"{2ROhnrps'e* zO"RXsKd$}lަBTӌ$Ij '_WANaJMR][b/3£Mڏ+9d49Z%j:LoZoy>*^KȢ%Y2.Y7?6Rs##™Q{V$,M-6A5y]؝[ُUcUhHmo$ɖDk̝. ?:0{^*j-!p,dt1:P7š ρssfM)-X~|?YJJ%Jy;'%=029RM't?Vzä~6?/UN/}N,NO{MֲTybqow|h?'zOw+w2wd:7hSruwȓLu4 Tv=?vDAsB"j]-G4Bښ/5_N)rW &I hvm*V_1n/|F,3a䎂^ZL~CۗaQNwV)T5) 0s}&Ț"D u3Sfʟ(=O;>逌>̎7S .uvs sW&uM0醊2|k ӺUXn2#ܪ{/{ӣp6:CIPech>#ʃ6TCtb0i~ oF¹R5dXۍ׹Aln]'g G^E#ntG*S>,`#ҙN^羟ŁNvTEN޷zV{)*49gi+ia[]]dLVk/a+` M]w1] o-ͪLYv :پh҇\q0m^+4po Vد_۷klVQ2Ԍ^@Aaep9,[rdD 5&β ᵷ 4UqȮNֱjf]A !ognu`d jQ$,yyu ¿+U _7 {{@7vv&h>3pK|)qF!VFg6,V9]EvURneMqqW1 Lfaj*i5G9c5fDp;o>7H\2Ю[i%3>R$!j$Bc zb3Ͷwe.W| yiO^X rVfXF|an><{ơ%yE]}`n}h{T)O=@sD?qpa.ܽU׹s٪R<>@s菁dwB Zi= B"7&u8ցP%w֐@MSJ s9oCRII?h8*!'dfNOzl\7ȞԤuWj@ϵk>=0ed-%'qǘka!Z7Fgxn!~2ﲨשfkX}JIXAZ2r[!)=^cf+zJ,.L)wWޯ F]uZ:dR̠*Ycϫ>Y2}\CyPWI`$>'2cox{WȲD*ھߘ^Mvl@/`R1I7yQfh];ww&UHǜT4"}鍦v H|&Lݧ/*, soXιoĿ5) :O!x[!'ުA\\0'qҏCˏrkO<֗}*WZIݰ>ƽ UBKeKv\CGJPZx0L 4?J @gwpL*9SBKVͅWeCUCkTo[,X~=Z#'nJ&^oo.j#Eidl)ab UIF.h4@`cEa=y9yz ~#o |sTomY/y>E ujVU$^܁ANWAw1E5u#kS -p(|x7}ϫ}٤uW[|[dLKg[~ܸ9u FKm実G 9~ʷ&Vf^cL3ȳ N2;${ܒsĨ](%d `:X}7R5~9ށ0u;cn%?(3m{. }R\۬TZTwZ!Tכv7 })J(JGu#7Bj7dP؏:Ks/s,cDO+%HERfb{^}[w(B*lOKwR簒6f;ņ'L|VA"QΘvU%b 1}W8KPd / '; oV-^]HYN >/z\쪉r6%RJ3DoL= sy >@#ܾ@HI:f~˜3laQitP5Ef[CC%]L~B&.H0o@8/iٌLX1}a/iA=![]~':rB^yoS<XcRI0~6?{Laͯ8]Lk4hdj)409??`vSRp-#,P߸s>g//0G^Ok#䟣cy/ kx ʎI>n}:I;Ng ?zlB9Y !#}J=E $>x9V:PXK##CgTdY~dvcb\h&>kw1~32<;iiBNMg_?6?:px s-}}$)烽dց1\ >:8d@m>e$V|䔲0M9y>{v:>AN?PKC1za00)nuvola/128x128/mimetypes/ooo_draw_tpl.pngUT `APQux [TM-#"BShB+[p)[EAdePPYP(Ł X,=Q$'iw{^=ܜDuq?SmCy?{P1tCa~xS}μ e{o~<-[$8Ej+ o;JyE?GGGT`c55B|w`}m*w=wIް+]A~wE@__ m8·mfAAA?L 4 Kl.\iNctooمO=uzzzIJIt:C8Dܧ1=|ς^L'heh} (-A C##bϹ`NGGs^-wq(=}ܷQ[*>Oux)F{C—Ka.oGnꧦ,ÚͷED~0R4>aO^UUCJ6I};fQ:M, &tLUP 4EP[suQelz.gs_M7m72[%+ |^wށ17m-'@rꎻ_x\CWR6-5ip:G/>J4IX_ۻ?~2>E#I7n@j򀰋.Pڜ|Emp+zxq<+g{2"fjFzń:%BLR~^k|(KVaɩٓB&'T\QG:*?j<^CxɤVW<`==8pBp-g򃴳?K7aH[-7r["\Bd߫뒏LzCS/~JTQ]E7w(\%sL'{ο\]jH_}>Ҕ]*·c5vs9lCK>|Q;7@ ^"s ֵJe8EW>_MvkjUdǟ[ԯS ]|WF8Q-/^Q{miqD!p~g|#anm̍³ߠ۞¶Zh]uáF]`$;?(r&$ƁԪ!r엊/J )K:E8:1\ҏjߘR.Ƭi-V UH[o<*xL6u/1p^a)7E0.4"8F `;(qy\Ô*i6VX߽SKnU& 3R] J"9x>6*՞qVHuxtǕyH.hO:k]~-nl3Ԫ&rxڔmŻ? :As-8X=o5kfS;`7}b gyW*\yq5B8$́)5yEE#u1*3Iϴ$#>w`#bdIǡfRJ؞M+fJp`0Xi.iu^mq jߴ'4Dm^Di4P.ExLƷRԃV k{p9{,swL}ΦaqEWO˿01SA/Jmܛ![ՇgIӥ ًӡyӫ11?gc h팄|Mw:I:g;<ᆵ0~Em4ϿBoc& n6"pO@(R,e @2$brܱhu8:/> AM]ׇmblܼ:2RSd{aqm/,v9fKhӷ}=/g{/1]{z۰U]a$VH"H8XMދTA})|Ť%u$]d8Ȍ\z7^:,9x][U_ZY 螄1_[ْњ7j@ſ"lz~L'/)^BoZOϜ?dR~wQ$Oɵ^sp ӐbrO8t@RG~pPZ']*]Pj0Tbxc= P$H3rE'ΆDeG(xŕS&t/D]#g"|*%IR I\QYDc +36x[Y~$LB(#ypAXiİBzBj:U=;Q! I=X2"EX,~OiRI+lĽsk j:@V83s{Um= aT'``Ɉkag5277'30NrNؖ4>GDDg="tྍEmo5RfX;btdV0Ĭ ChJ(na J"['A*Nxcml}r Y~0aTENʮt+ `2Ì}yi~Xx!Il8EX=\E@mcEE!ݥUQ4J9z[ǯhi g89jCK<RZJat ea%wΤ7I>XV Pءx1]oخgqžQ>5;xѦF { Cr/Dls/T!%-4X$k8Zq6tq`*dL|Hŏ]ϗJn{$?HGRoee.tR+ OIhzۨT1iE9R# ;KMs:qQuQ=jr_hPv-uZ_˛kR4![&o-Kթh k5_qSblrjZa@ApWS-lᅍҧ+v^{'԰iN(Q3M˻Q^\^CpVj { dnNzt__ςഷf7!BF,v"ĭ.k\P^#~ q04V/n*?4;޵:KIsve!5ωu iKW+@xE _qi3Q(5G[m$Wv!vv0Z[H5nOu`Ɍ9u?wydW2 c~2|TR-n[{8{vv!ٶ&K.M6åh8dIc8@΂4 Aji6|#MdY+O ~J> ̘w-IkH1Cm&_TY݈zS ht1ʃa?s<5h˧r!?AWtIbUe.Tjع{ew+խںrlﶱJcF|85r/5\1AcaGdqKAh%һE.=G`p `<>*w3W>܍d8hL(鉵1ڞ&^c^DQ)!ٸ\ʗ/`_{AIMO\]t)d嗑ݯ'K G#(]W/02hd TY?FM3!~*[ !G0]ޕXUW걵`?[o!buH#=V1k,J06 ?&cLQN#4w̧FR4N@F yH>y}8S`E㷾T|vTҵGDT=H@x% `8L-A)ݪl9oIsiI/Aq!iHmAh}o ̑(8E:. oX3?`B.s C毀&o0.yxMMTu]k oKZ\Ц=||.sH9/JH [!喞a /qAbrB2Js6Ie#Z,(Zް5F(i f2c1)_lU}{ .m*Sehjd='@ڟ+bc kŒ%hFAYS&!9c @/ciDO[ C9BcZ*HE ];aoc,/^ŠCnT\rP^uC6 e^^M obh_#2obq"{F-}{3ö Ĉك!ÆHKଢ଼mdI1B&_y/ g'覥AVt1Fތ|Xl*|OġMˆ5rh7$<F ]3>R||E#مT;Z! #]@*si9kmz+>X5ltjUm S~@g[ 9OlL:0]ICzeG r @-DTu2S0*kxv1G2r ~9 qUċ\䀮6|"ԃcF45q8[y @+4 j(+\ 5L:=/<0;N'q @B600Quߵ% MkB&TAiU֓0}0w7f ft2Y[0J]Ώ[Ur3ITOaOٚnjvt3@i-c g~ ǶsDʩ)F਷8uơ|mmsʃpm|D+Kik;^Ϡ̈*La2S h?b^2]=`g_gfNDv8q.4 )7eFO26!Tl+k}P$;è e?,F''/N#= b|l,moQ(--dC cQ +UH:/m`!P. (Y"c=knW;*WF8G V# *n\E8$eƮ} 7$B ;Uį K~onR;_lB^)lXMݺ+SB՟=WYreIRWq=FRRkLNH>tfqfD闾4E~#O>3YӢ~l3Xp s??1T]1ek%<$#B*W՗a[ywMҋ7k ݞ9~p,Z1mq nAjtzɈJnkdՇbz(}jX)-SGwCɇ~{ eI?[Ǥ^d[%rj[J`xל jGPtѷu!mx4G |w԰V"UUDXDo%ު YP7˻|-"Drvx,r&Qڒmpȉ έҧׂ;y_&-H.|>dߨt;k9Յ~7!æ|gpiQ@3=KuOXOBB{n(@F)o5+M"F9fH9 C4o:VGo{n5iqDqY o 2Z"Fjo:&IݞtRq2&)n ;$@~3xG"qF(BD[[MXL(AD3la?8[p!#VSFF5'4f_xDfl=1O? EhU BJ M]Jvqӆdt|p,`nDLС(n1pʦ؟I)p6kP2cTr`3R3?K$ydy\b! =_т׋mI ĦF.:_mW4Su2 FƘ} gf9i%nvZ+!3yjJTꕭ*0tf,,„,vLC 1QBy ثBڠ=k%Mݡ>g̺H7q-vTKds2GKzȣ,U_Ij?bewЧvO߃a" ѯpRtҰG[~_ERg{68kv FuSlLӾ?$z[yg:kiVvʽW\yMz5c߳x`Qh_%7m!?=k,e*Elf3Gm ͐|Z%/lP' \% >;(:uӋ7y; `Ǹv^>C ~6t!Nc U쨛IN6SKExe-vO|_-4ꗍ]D3b [ߜK6cE~2̗l_஑jYQݜ,&azLxA^M-.AO*<NU_"3ti9sE~h ? //+rMH+z]N,, E+ˢl8a,˹/᱗ZMF:Pꅙ 7| vuQE!EBPiUDgqIoe|y>vػff#f='k0, H1uG堤,׍"7~?~iǬ,#:9#wUrguKl0&y|_ŗ{a xCC^'X_TbNB-7ns@?M/$Aw&e˿+[y5Ġ^X!4sq%)+"bQ_z_<`Ŷx%Q ̵ izq:# <3 k? @DׁJI*"Zt*zOmBy$E] N}t:H>@A՛q岫4 c~]/mbRܡ%k$4R{U>fXOSy 9q-zH8e0r|h;#;'q=߼㢽iPgq ,+ngCW, -qX`KeaՃYcov ~m6)Pm: No\!xj+W@a!&^ߊrZmNY޿*g<0yQ9LOnKDS9~1Vw+3C TEb tS0|Z JiR1τ҇ȼa&1 笷pm"8PI| p;G;K}wk 7yJSRBJ`G一4lѲm`GU3rkaͯef*&W@~b? L_hai5sm$c=0Yͥ86H,\֗cQݴ Y=bv֞VpkC/(M*y̛  Ft^sf0,M?#,% kWQQ1n !C37;ZF.;*#V85k -W@iʮo*%KKx^񰀄-n_c{VyYqOnTO*I(Z5ވˏ~4I΃m%&YQ{,[%5f 谤hpXX'|MLsɔBf? 46#0DZ MX%#62=fJ&HeиsQA y .쥩ػg.aKŢ/m:H!o=iX?O|O=A $0_8?e 11뒢Mb }^~ Qd֓~,t:7,LR¿)&DF8 ivY08? 'PKt91Yl"Z#(nuvola/128x128/mimetypes/ooo_impress.pngUT gUAPQux %Z < is9lnrl#W["rr$Qb7)H*SM$WJ_ޏ|ޯz=}ւG>+KSGHw `o{gNM+;fv2'{7@ Zz;z{]mV$=6ۘ\s BN8 FOq~6f"X9Vc\jTh9v·{O<*"l1NNN/_ܹݝ핯{}tQ}CU&|`yGMOZ#.'t'0%d]!{?-bs+U^F<1JYcVw~yb,}"k;qMPۢ 9tRd8`"fՕ^2"6E,dtiH 7WCcccLϡ M:.8黺e\$ABw'jXxZob  R!ӟE#黴fnұj`2y=X94 rLM64@jojO#g9B~-xȨ[_f.=J3$~MLVwk3䳁:Ai)`35I]~vagBNB}']oJf8 ?0p zZT5̜+4Wj|ȱ>>LG9L#y=sqڑ6hW+kjR%Ojַ;ϵ;.{ξ؆>`<¤O5EU+C=$"ي 12ߚ)keLXǭV|&V~(_H2$e Zf!}̭n? iZgq£ZIג0%~Ĝ4}nl"f(b_F8 E*tiߏ092|F͓J4E٪K)>ZQL$P+@$9/Hh|c £lyyTwO^3th&> ;aӏ/Ǥ,_oq@4Ҭ4?h_,T, xQ_֮{{Gh( Xqt-7B.nz7s!S8tZцU^h뷘 @7S\ h540۞?Eߚ?K6}["8:Dhqk; -<퓻{Pu *S$6Δ9Mb(z#$=G&-XZdMlExZR_1{/ g03I|w`{g*W(BSBB#"q93 yx*GŬYO|gs~^E W_oKCUy3GFzE:#ֿy+Scًj~~(֥!Tm~Z9 +,,DZ˓ߜ9ceDxd 宇HPoV& =:`zOذL3Ȝ]OyCgLrwi5w*ZfV@t>Aww\x:R"L J[cԀv'PO|<_ }6k(ץO e47[%Im j߇7*jgNy'E): J%]cO{o)uЂhw}ӂ/:o*I^5o{hhrsDN~IICՆ콗 -i\bY Z\ԍaTZ9lV԰ER$o,$hQmzTR1?Gf|(7V"Y?Fp-S;OҊn^ɋ&M.3^M{ئ'9W5-% B0+,\1ދ5'O泚}?ۖX{@)@Qd-zgnMK6.k_eRY|R=)u,YISBΟbc68Θ@A[fJ,}_)(ʩ.LٱSEHI mcq}\/?}ɵKΕg;1]O}_ߴK܌zxŔǛW/!{v9>E Oo~hEo &*MxFG'sޘ'$^18_fUe\GGҚqiV6&V]ZϻgILou.s~_0hl5ʭ8q46 =ҵ&z^Жk;#c#25VἑƎG6/ux>31Tq!B{.x[P0Ujc>__&wo?B<HY:@*,$0 FAljJK(''y EIێro+Q.'BY _i>U<\qL 5(nl0,L]>sk[<p׃9m~.nmL\EG˜d/E\/3aUm -xYwRiJ-11MzR&KlyVX`j&G@6]/PџpX!LfhKDe%d,~۞t>I3Z!ZP;ݔE+.bBGӧ/h^K/ ;X W['K]2 紮 N?7)_u78aij1eXo랴|U`Y≓xrl;Bǎ`O׋q9A'yIJ%BWbok?4pǚTL;e}u܃w.9wՏ);w}t {7[e Z;%dwo,ng\@[}b*lNZK bP~(/הC @J&<_E'5F? yI|;7nU#ӑZCۼNPUQ XT j3^K;mR`O+*6Yc@gzyBK(>[蟉]PE_2@7m[v* L[=+";D/̐I6&[r%Q:(/Bs5tP#$' a-?Z2٫$4PnL?^KGpuZM/9whr= ˞a ofkzWU C&,- aݤqyN:z?NM_p/ $_VO4|Eg >lvD/yϧ賓C\0eQ27 .G/+#ݑ1ۋL)pI\pW@Z@qy(l|l3i%(?E:}ų3O"z?"?gz3, L4?Җ*jêCdyat_`&3pO_L$t27i= kM 62P:ٿ 27mJ%ꏷ,&<itީ}I dRJJ7}LƏş+! L;|Օ l/pbMz-jtHKi+VFUlhN"]r{ aMEZXx*"HoaÖ9:8YL'lA*<}*<$d'澤fA*4)Ehbꛁ[)@q^'=G53i+ɚkf7R RE$iVBDuV3=Za蹑* ͦ{D/LA\Xa<@_: - Z̲Zrvm,#y)v!pr4_߳ j5+ܐi1Ale^"!Ĩ;9a“sFMSlG/B9XXq5EZ70,nZ0q&)4GxNO5U]0Cᄧ=}5≳}3nP%ư]N6rpuP^͠nfcA]lF8H?⧨F$ )^E`@ q%D 7<0_c*ŭ8^6˰ru6'ú}d֚"Q@@e~V"7iYùd?@&b 'yh/Ur[w.6bfۅuڳ@6$|9ҡP8ݵ\"i<xIv lao7$2^VMw+Y8L>\yfXI[uJ 5i+T a 08CS07:[z)'/SM~z)0zy׎Z݊6.!V' m+:biZCq^@.kW< #hQ\~)K!FO3Zm(j8&`_K[tCS~V}izۣ\17W|,^( YzvswB"AkIqY̺-2eC8ŭEAx5&SmČhP#= QQr∞!\ H. \uз:P+YXa@s-JcC9dLK;[Q{C-TXjk[ +6H[b UxoNTOd̞FtH &es-G8:rzno0Օ2*8oSq`Cɧ> P;|w_GIoP,3E<abXU< DhݼA^G(v^?%M#RwbK^?x[?~7 cc.0_#1>3ܤBn-"[DQQì.#K_R!~Ș•HC$@LPz%bTzs;!N"٤G/f*W e?[H:srZx$(wκI񡈴l|.z)얼|8̼M]YԒLݽ/6ͪFqJ ;LW,PpQlϑ#nE]ݠwoBP! wѻP[aO3I g`۾3u9PqeE0/ojlUݧ6]C[Rdv>9.%y$Yqz´TS60Cy5\~?UDw@^PмNͩ)d ▛;Y㾺\8w}^^,ҒY\M笠Gṳ -!ApU LAP9fۗWђTMBBz~M8ڧk+xiFz*\ LNv.cZ©S ݆ȥ@ψ~|-%E5Zv:cO#Q8$q41j[x]w_i&HI'֋U00]a7Q *1fh_>O 5z%״*E=rFǴ=޽}t|d=2XAD6YO-Fl,`)%e+(4za)S2Øl/Ss)k%m.1=4X}a^R .wܥOm.m#u.%Ȟ~eX pIG'']!qZ o5HTne (CT C-9BfG"4Gv_ (z;ƴ<-ZA!Ol.V~؍UA/oeTTpw6#WCr0VNH)E G/.u0ΐFEd I8H3-(J6?1oy2|8q1:]<ҿ8A(AN`5:x65u m;%^[1?s&5 @\TG%=T:Q\sd^:_q8Tz>=oń0.XTTD v`^E|}ọ9Vϳ,5fbb|hnqM0nT۫wag{o+Z&%5/WqH~ O5g9y.0щ_1g0'|0ar'_WeHMNʛ=9iKdBDrT\0bxrtaHNAXp g.Y %B|@s`ݺd~XuB2*3@K]rYA\x')I`xsײH'$qu Zb",;drs7f,|^W5wѰJfg~o-rO,M4ȳDt0m)jVphИ&8>0o߈ ypQEA=|8A\vgN/A81ד:ALGm <rO~ȴRyP;B~X\,{W>< ha )![=s3eLP=#Ƥ@5E,Q42AK~~@ oEFx0a)N^2f΀ɥBdêF[|KN\;ռ=jg-Ah5ȣVCr?~G9b?ߢ{Bp-?FuMqbtN8'T PY qWvث_Ғj(uDpruF{-\d7Ort"BQ-.-)yptt~7څB _~=/ M5VE~oc! #:ݲ6鬃é~<;.L>#V_r2fB%vPY5 <`5R 3\Zd_}8yw4XqA=0ޚ `ɽm,&ĴCOs$iW:{aa X7DVX~>?0HL~8S&J8v)QGKA_l3[V4>n p>VfώPKC13Wr&##,nuvola/128x128/mimetypes/ooo_impress_tpl.pngUT `APQux %Z <=bݻε+Hڕ3 *u]+WXKCɵ-GJ%!Eʹ_^3ݙ<{_w1:'HDHl<): EcHsQσ-@%ɖ!`˵D5*ÞN PY@EQӼ,8? l#`tQ' oZ:Uqsy{~9pI@BToPˀ cI.gSB $H t k3="19 cSѸw}\dY H\0p+EFF/i "/;B.F ~GҰΟx1-=? g%7ņJ:iޘCޔVw~CIAX[[ h ՈB1(/5p,%`Vaث{[Pqp 4F&2\Y 0L g ~5;}^1O!uppq2Ȁ JU6J$?0}xΊ}=U,aH8@Yl_ص"ҦL.VW;i0Ya ǞAj5(]Ȅc3>PRJL;>.{Yat#ǧO">^EYr ݫpP b "y$2kkM_󕦠z)3a9!` =PgֶuZZݿ[zNY`kC][ʁs(QNi*3maP`a@S3xwۤ'Lfݿdhˤw>k 1`X>y&Q;rCtv6  O&"Sӕ#D @v$3 ֛E*]N6=Ur*u1H">nė|@ր~~?աB"8ͨ|b4--2t aA`+g6=wU1U d>Ӣ%ƥEPm;ΗJD446 }cX6(|MFsFɿ#*Pnd#C_ㆋsgi?xіD4^ bG,WWs73ڎigKc|7ZRZGھ1QfȪ^36[f#/cv.|ii =ވa~f,U^J=i=<o~MH) bؾ%+0[]}9޾q_eW{LYWǼG<&v6z*m̓TŶnSoUR>hͩ [| %"gNE% scwvb8̤恀Ѱ;Ec[[GH=XuX4ϟG1A=Ss%+{ƍ{?6fwC"!x8O;嗑oGp7:OyhA0kbH'E7TOՁ3#IE읩9L|6[e=͔އ\y߅Q{@0`4^1I<>b v=5'zY*s4ACƖLNsQ8o #Vg?Nu0H~IB%u]DX͕SW>mtHqgg!}JsrypH$tE rz\gZ TG類^jrKa+pvl_ =@>vvybh1zc+&ؙ|UGJ>X ~M\#Xܤz74s(4-ڬv?'PԥĄjkxYCMwS  !Z@ie>TXN?ǀ "/d y0y(չ֯8qV>La gfH]_1m2 {)/8q  |Z7-%?%,9ߛ]\':_?~=΄'=Y-ޞ v">YI,[=m`QVh]xsD(/2Bjd`{/|jf̍6XgK3p#İM\%}Hӊ,T{H -U%^jqZ\#t08ଟ^`cL`5CYa׋g>g?['u {l rоB`eTk"+k<эEiMmSZ0;UV2``kǯ%zJDs9-ꔮu$%zipMSl_p|jg~ /Dx]ѸRq/e}*w?ӺLKV&Tv>y8GP($ǃ64Kvi?o\L:w %:_Q3Ua[,e1.GA [NBo /I۴G)9ɨsXdV,("QڮxEM! QĐ"q6 O/~/B ~'rJ[X*cʕYΪS x`و/az֯$zZ6;ٺc.ϕIoG}iZ$WP_Ͼ^=UJ:/ISg 4z M؇T:T\|UoŅ446 _Cgig cqp _V߄J.dSsܷf3C@Y Fy1y(Sw3m=|u뛯35PyS&C[$ '\u-tm:K)b&S(n}FaebLU޾-qiVA$SIPQ׹:*SR;*pj02WZ ۵|-CCjOZ{f5xD,׽!sWI<,;]H̡\(OQH 35^([bΆ`OU ؙfhb<=GQtt%ē"b3ATj 8Ϳ/#!/nNJ_ "V3AQ7d gYGX C;GIAx@C'0js\NUBhi}hT@8 VQGƋm"jŌC1뻍r?-0՚܃>u: U]݃J<]9v֋ );s]qO~4dۼ\" ̛I9gMG8*oNC,3Z @>`q|YD3~ c(3ԡCoj$^D>-'@쮆 A!& D-PNL3">c2pFv44PLۚvyBUkHr/q8zn-xe)K \^NU'2;2Hp;`i4K%!nNz,"#JM)bvH|~%e)\vXԼ|\АC^_f7֞JD>2?:}@^Lɐ0%C3j{h ? ̇up#TT(^sad^{f>Y+'8 "q)+_+TiLv5 t:gxL 5߇>_ZJ3Ŋэj`$`h~|sK&#ܓc,'@G"|%%S .CgJzLvWkGa"0c@xpѱ% ^*6k&RO2s2`xօ tj(f֜sV)R~xPT +oZ/0U 0"{ 0E;E| jp'"PY6g!V?٫ dD<8ɔKJBc.O xQ#H.P{C#TK pVw;ja@98,OZ=`+G}9"*yq ?9X d&晧3DaРA*7lر[g%<`CuޑK(<6bR17NSnZ6-/fi5޾@vc 3oIIB{;,5@wr 2;O&\g;<̴Q޸]>:e0ة;$/|i1C/64!g\(abi2xq}mZנ+ha@NO"KY#9g!+< 1%|Y@R_:vir#(!AMS&K/q{Q&Jڋ84gO\[\zmbBQp9kpS`͕)ܺqUL {壮Br+8Eo#'kn֌1wa:X~]3x]fZlRDyh|e8(Dޮbϡzԩw:5szbƐ O7D|G%àr}[?oqsݭl'ǯJݩkFc$Kvd!xש>ctΤ%,XCtnĂV)3/!-zѮ!#nn@&(% ߓ, /,L~e9&JXkBKzPVryZNy4Lȡ'SI<Y513&'Ӿjh0zi˟H+qzA/Ip긴l6{161By3 x'@i?TokTSCɆJp&TL-|:bU5>lߣ-zwjDD=X.XqD~jrőuZg3.R8üsBhMD"r&սsϬ-Gig$X~~UkmoC:TL 7sC˃z@NI͡寢 9}s"hae5{4`9l7 ͻפ̀Y3W 7?T?tF|әESNV]\Q>PԷic4HHn]~@ ΓP`F0YQME=Dtu7/wED`;fܱ\7RTݦ$Mv)c=}A+ {x| ) $ζ0??Y8V+[]9 zE#zSB @xѽ!;Pa;J:v'w>DO;G̛1*i{Sҋș`XN<'Jp.kp?*[fJne5aOmQЯo5yp򗞬1i_{+8f5b35ri a^P-ޑ;u"IȕQc6{?#8˗(RJ QKe2妢zhKYu[*D)]E }gOl+QNeٕ"i]=cm }L)f<%H]U+1@]14䳴nZ](ϝM O-g5BqBY euh}A-O nnݾpf>: .&V1# u 8*Pm7|{5?4}$ 2y#lȫ7T Ƌ,,1p#}&P:א'@HS-Y^Ne GW{ s:p/ο#('* W֠1(`WAVfyҥ(ʝ6Hl17Jօ唎ô/+5)O9.eC|Y1ի;\_,:_cmr+3|r!\%}6wS;iBsUW|9jz7%C+Dk#5$?+7z4TQ_ ۠{L^77|BtrTؘnic.be +bT> >A/V+EsS 5ŧ F^ fԵ542I[S@^)Xtf z^+<h?$q[XOw{}F\as(Jo*e퓙!N}]`A䈄EZt9]+"їJl=οjB%y`M_2pZP,f99nMe@we ߏo`᧭b2* )EWg;97< qYh!zDZC%C 0# c~$ ?qq>Pb4ì'1) ;-.@CUNrGg5`*kg̟ʼs3>vjOQ$qf:K;'̴\^Q,87_ `^*  PcPn$$Vzc:9wdj{φPKC1>T|0!1&nuvola/128x128/mimetypes/ooo_setup.pngUT `APQux -z "̘o"## D `#Mb8}::>$lPrՐ`1;qqqf"jfyo Qr lkWZG{-7WV`OcG '6PQS3ݧPx%% @bn|T.MpreJf{ֱ>˯! "^p~U Rx!,upӿ`؂@ݻwr&%vkߞBޑT;PG@V'^'D'#f/Q/叭=V8Ik2Cܞ/>zwqA!)@Qߘsgɰ[N{=@vN!RdzT.M}V$eԼ҇G I:*E6['l-Jr%qqO&Xd"7YLmcc#2%%e8BS= aJZ(JM %ul<  (mvN},3nN14yU%5g\BPPx6%4JPP;Q?љ0 CS~C +_JiھWH@o<_{@E}žn:hT.U1` +'cݧD9 GM[zڟMo ' h}.S bngS:8r;휚)4 M3.ި&6,}2%T> fzne`ѩW KI'`7=NO>^;d .F6q0d>\:ULy&*yCrs6fo7Ga$4O|L^9,a,;G\:yB]e_jvaݓb)jJP@ۯL@C,)鯉׉mi#b<ݡڱH9d _V;fI£2&%^p>0!GM(Zi]W3?ۺgy+6t<$&WR hJs,: %23"4)P~cym멒OgڟXĸ!WKbco աx=8zZlu08L@ZɞuvIN~n[m 5WZM9MLFK4_,Q}ю[{,PM\Zt:xgxKf!U@8BŋpPa`Mօ$KYQ+>`&k6Aضz 30Ex_=0UYg=vc?Xblxd?cHy~$J0(=+ Ok]~MɚۉI^:ЎGȘek9biJ4s'鸆^F$'p 7'!H1x+x}Y\+ C퉼/?w ί==fi=%&%Vp۬1maH2  fpRiiWcɒrEKfY~~^bVt zY$Mے+{ :)M׶)"؝Ͷr+Dbw“2nRkNX< ;%3m#>OF;/ZmUm?d ְ;S(cdc)7Zolޕj=<6'kp@S1y/w 2-[E{AvΏӦ eap$Y{z'\'ۄzoF$yɀ-~H iRzM#}Gİ^jbA_hLVB)Zq%i^$] W ٸWx/Td<=ޙ4>}.v4QMP*m:ޒ8دL?$w"zJ3a6RGD܃4s;l|ߋ\JUo6yS`>v^eyh7dHGb^&DFd?d]l\],6<ϼ.IY6i\iKJ_ٮFMߧ/ë_u[dCv6 Ԟݮ[@CO 9R8S3mO*4o|( u d5&;$V$^zahڇДh%xfsȩ DQWxYmfҝp" @m{xb3>+r^q5 $k>ץލ%a3~oz}&!3pK]7< 0h{Yo#SJмO)g|WfM7ϑ9p 9Gi_,DoEǐpH,we +]22?YM?7$x9 &F*3a/g/=8؞v剫1naG`O# Dž> !Ŕ^rJԕxM/Pi$yW +ǥeGC0ͤ J&)X)h/$J3gtn\?`˟cc|](6n"-G{y_#w蚈gsX о7pρp]2Hkbݝ:xxjK# GR'}/J;vgCUf;^oS-ɗǶכc$uW&-8I# I _>k +CeS\k 54z =FTR<}ϋ+2, Q9@tƏ`ÈJ#P{ˤգ01Z]с0ʂ =c@0h p`kkhc;i_ycbBr۲}EvV1UXIfs]C-sZټ`էü7*MݻҭeDDQi*M2: CлihiTRrEA- A?h%&$E hU*e(4 |}(;` xC0Kt$, $`Z3Q@Z?N~~r}! #<δK #)=XǸ!ZDM[+ CyZ{]}[y0;^+R0oJ3ʨg)xn?)5gPlw^YH敛 5@(Q- v\oB-r?t"k[(fg˅loʾmKO:qO(0{8[ 6ǀ %@ M5eg'࠵o۸_ntC ^;H\c27Y%Z8SAiF~feC濑Ppj0ZS+?X.+q { OHnqSI $ph2Fz X XiϫA 69Q|;ӑp0LIR[B^p, Fp gf IPϟ)Rt%` 8 !*^A$IkfJt;%&J.՟bsim,b3gjـѫo"dYK9D*WU#{,#*ABKAIfjj!("G*nb ̓;8QY<; UXzDaNcagZp8]bmϫTAmOgJET3GhWݵзUylogjw,7&3fZ#z7~ };HqBë3!Gp?,bJSj?IUgSu9bkG(O Ԓ|Q_P$/L]$\+LP{OJlh wc}+"r}uHC/>\Mu^Q {Tڳآ -GR?y;< xtsfm`]yȶ2+ "%-2z+^@O`1 e'njao aUa w8M6Ss?VZawk7٣=yy޵+Ɔ5 $~65cȂnP7LWKG`F*AeSi` ӎ*VB?mrP?78OqqmN3aTEن&R?攦b (kNGfiGtŒl|vK>۾IAv [aUó+_w+!IVQ.Q7[p98YR; X'Y }ﺸ5 kҾWdcٴQS^S0bD3$ۑ<Nwh< v7s7z'SMNF !~Dzo1ogғQ;}vv\܇e-`%i]!гy^QKjX{&dXƖ3A]zdLvGf|kzf76ZHo^-)`{9w;]òWy:kYBY% aTU!}ͬ1PzMXZu=Brm^)6C],'5(+UQ'O<< sځ{VyZa]*z&t16{5 ad=@^| Rl`xb`(,fm6n\  Ɲt ^6=uvZ~3lϝQ8z#,XkU%yvU3рگ~˟Mw5w@UGo/)\d'C(t t_Dzps5@\bt<jw!yuvb'?Dm\Uxᑉt$F-@?AxS҇ӹl)P쌾溥>ys*('щ @m{"rxg=\dl6R u&T!?eH " md~S>2[Q]@D6[B_Bs0Gֱ|v#yӰݻ_G@neKI\;A``1`lyё^?iϱ xmWqB-[ڴ1qyqm}XeʫK[ʱb_47ՃaH|_ ikԐro耑L9L_lT dur{2H1!o 3hW4g$lebuՂ7poY_#beh5`I͓6Dd&cr=f#M“6et YQ]q.ȲZp5却&s6[J[`NrFvZ5w4{3LH7ѹ cfF$Xwo#Gk BI3Rаî'T0&c&v̐\3l$HP䂱ܐz6iP(`A ~Q4K8KzYK,> U;rq8J 3hi!;\%UXFeCV<%Cx\EjJZ)t5$:JIN;}8'LERRSu<# sڅ{wk*z1IArNcy!(lQlR]Y @ڏEAkYT38WW 95Apy!0flv% S|*zMѰc0tO;`u |ȵOuKXRqd1TN%'* G)i>ZtCCTltL?ncjАx]ԓ$c6MkhF1xgCj總X`}.7:;O{ c4e-9t.dJzi#T-I.8[f QG2}u+VARGpu.ϷBُ'iI}7B,_owQt(,@= ׮h e9 YI2 >\f(%GU > |YGzj>2ׇ}u=!MY|oٙ }/,؞l捾 M$$dRJKM? *=d3]9hpKY4/+MZhl zI&ϋ%F[qV*VML& [1fޜ6ܽ*|"Ɯc,=bV&r]/A{!*"׆諒0c.eGB?ڇB`oGal/P0<D9< /e#9h~{Jĉ&@tͣ.[U" u>Bf9~:r[oxNZZDm;M6z~vMg-%ȸPf޼=w2upZfAP(513Z[ь]WTUO4!!nt= 5vJRyE^h]{ Hz"C0!eݥ=[ū#;K X^$ +w͙{)*u?{WmG^e/>#~@,SSƣG@닕YVGmrw -i& á&5ۜ # \vIC+9}v5l  o^l8Dn:,ӹni07/ϰvUD<In5i&AEyXF ۾83T":'sVm/A* ݷ߱~uDFoJ$F-Oe@O6iA\|e)Jǧ2hkuq"ZgGSQ&ʩd//b^|rGՕyrs>)!l`dя:?UzU 9֡&8OL봛m6W9tβj2/MPeOK6_O!#J3Q\QeUvk pt ۯkGgy-"ff'3? a9j}yu@g%%;XnqNlY,sr w+wMm2+nONM^|`oG1_^.dqbhi&vCiFs) qs6r~H),5LppPNPPV/ ض _I_8/:@;[icjG{Bz8浓(ԢdDKJW+G; KtǟC>uRZ%oxpM -Ab DpH'M"¶+Ș(FE5<)2=w0pYAc6c$5y.*{iIɣ8;oZԩ)v|SN aRRRjR='e'PHs rta!*VִV eO"֚#^SѮ_R2JJS.f8;˷`tV'>mVW`QNsOx`7d.2'դ|E\SRR +NK>: &,X{H/^KA F'*o^CJD#03 ?"(k [Te4}/AЧK=vBKB"Nxbvyjj9W5=FFFpmH6 |9 A fۖOBX GwP:\HVU?fxSkxVx<(^s:_\>%iWS|a~OCPU0m6~4Dqǰ4@IDC$ЪAv @u/lDb! H@ [R?6vt8ylԫ/$k[':[r2.LB~\ZIj#[$3! |Klf=JʽOKϞPEMv憂Y6f[=QhR6䛈ſ@7  <܌qhG['GVPKC1A8}488'nuvola/128x128/mimetypes/ooo_writer.pngUT `APQux ey=ק_7rHZ('rF#~PTX2E{l1"_grE8_ո=)*(lwq)׃F 7ۚfFAiGݟ8~ zW`PWaQjnҚInCSjA&' 4ЫM\Ÿ2wPOö>}tWOsp`OVb?m(?>AWA~$O퐦HJ`,Rov(ye|/ '5<7U{('a*VɍlvRn;bA5=ViRLOHS{i!b(gm&=`/MtsG[aT4x&`|2O/Z-?MjhsTOJ[D |F0,d-C{>8Wf%ùc7 Ioη)@ŽeޅYbK5ު or8@76$]ݝϤ"@HaaSkY؉[w34_8}v2ܙVy?Č' q[̟?>ѬAO4DYFbDcH*-a9*xn(EKZw(S=aAa8h@0=hMDoe7{%zo/>+U󙍂/ioHz;0zdZ[ϸFp4O!We$&I=hD\;/9fuw/敹"kpg^=NakO[%t8Sܼ)䙞0ߎ,Lz@n9?Dsg3֍=FT=T _Jmy&˝e}FTdiȰL`sd yS-I#eNJq8L= Q.׋Ѹ!(47Dq+⒭:Û9,WD\/~^ZUaa&!S-X\턫VȄggtzѵc-o[: e2=D0p> pQWWǓ1n8:W983KM ZQ@D` <xZ\x+lҦ&,H?mMbT' [@UZCD0wY;:lp? | fapn{8kRTغ}DwHΘؠ)hk}g,_w?sM/5ߐ0D`|Ų<,܍2bv`z/M6'.bӔh>YTF0`q|{{;%:?r۰~&9>kI3{Oğ`fӻ7]1Aw>oOk6&SlxY;m3/Bn\ʺ+M[uTڕ?yr=ՀK_oHbj =Ol|txȍ/ň2va:w鳳TZ8}1Кǡ˵8~<+"ލ;&X06J(:sVA-J1of~%Bp1rV4K=VҌ%أ1]ĕBH3o:ggTn&,+~I za!ћi:-ia.4l$K&)WЉPg1|52ԿL> W]e,S#'s-9@yM1h{lQ΂,v'l8 c9 3cDe# =-#[La>ce¨!Xǯ$CF[CLVrլ}:\nN=yzUvmHR҉#X.f2#hwH*v] ʍ!`2JM\9/;M\@`CͅGY&>)р4M "0z`V,A e#0ʟn%t}dXq+Ow2ʨ+sjz pYn+[>O |`OxZQPdSϾt}7)ل\ԃ]) sz MqIZ\jY\?Lft/7q"ވު4 dn5څZ+ihJhGT#6u, c?&lL*xeAzzLNLKrCA!`ǰYq xWo?x\JJ,%7$}^L#(xDuL:m\ZCAȹ}\ j^uh9]HW%^xaWG`88aK~U$V_"[*ϫMSs٨nRE)0{=4VF?nyG;8yzx U۰4](`5bx X5i79<,!߬܊Yܮ皴C2àw;iCrX~3R\^:pUhK#oTv,ƒ*ݠ˓ұ|MV,fh2nyn-lwqo/dqnYn#MrΒLW+)3)_QI1wE46 +֔hbtoRH2&seAPf&p &S~1-Q@ $N(Q2uQZ:P2Ԧuyw-HH~ v(j0~i(lTIo?f(,#2R,pE^< } L&x(is?"l>v=s)TE׏%Uʇ,?zp 4Hp~/,/FfhaگU{dn'}p X~0/^D0;ۥ$>vJxlܪexuϧ/|7yWYʜ׮h>Jɼk}`$b7_2NU٘- ,Kx o~ɮ"QO71saz |^'dk,^O!ѿKHK3qSb[$Q<z`5H89T btxk5q\Π֕jhǜՁM_Z/ȝLgUǑ<}ûzS;6MuY<'>mJ=0NC'@o 9yEo*mhԣ0{O;%,hp;2n΀7]ph۽77XXJLz)n:&>wޙz||2á -d>,9ه1 \p>AFlҸXoSUT%:/eW=ᘵnȌyl;M}ual1NkeŏcNMً_̖ J6SVM=YoǨU1:e&œ: L@Tow|4T,e!!,أǴEML<Pኃ˵cv5#B7 S:9biD%!ºΧPDaԦ@!6H}EO Ҡ\Kr)`Q'+03e1~iI 3lG>`׈mD.tIuh֨3:!^/`HB ,`ϛ!O̞e,t D+2t;7/!s6~/9qbVHK>:avճo@W\>= $!6Ck+p9# g.0"Z*`&218L'{GgktDL"FƁK7iŢDvV.Eղɟ_X8Q!}۷{N" 9W_{0R?:Zݾf7{)2iS: Z1R>L!md1yic^!V>!Tݪׄ[)o3?yj}Pwa'p豧I0 ~Jz.IU Mc#lKÛ5_jI02k$ōG p%J ݜs9S0Ma<`; ᥤG,MNY3dw.T |k+O'pBN|~P`|jVtndzedgGZ [XA?Dp"qj (g?}q-weHњ řoxnZɭi:m57ҙA=%OIc(Cț8"Y& k0^?e۷oN6'Qi2UЂ=6Vi]8,h}6pۛBHg'e0d}f Udga^gdU\s71p̈́qVFgP*7I^Nuz@W wQx dMxϝ@qk[,F7w1Y?ݓh;;aZ[&_S@^ͻA pa `j]|z_kYHj~!KZy{D:>c\-"Rq5멟kxVeWCZ$lX;}8=bYg<\F4i/NQ:fO HxI|-@(oCqȎq#~Bk R-3qtˮzfʳ?c{`<,`/s~^+37Z|ɝl[`PKNo[-Y֖٦A?>!-=.0 KSywO+¡!%¸%hƴt67/B A)Fp]/QpEmmF؁*t2C$/G2{A[>}AȤoA׹[H?N3hF~/֯5ΘO"ˬzn "YW*K͍6!; 4oqTuBÏ6[c6<$:>^dl*_c %Uz9w6Yna) e%&5X\#'H8Ab[ O@R9M3`9Sxƨ+x&|CbN mK'0qair[.KzK:^RGp.Fjm:h~+1u9x0 K \ud6e3L ;ta 4lh$ Rg."XO`cG;%k宏- )Uqg`_*n53+0IxmޛQ Q=(Cnf֌O`;fVS}P1/B8`]Qȅ'j9t+p>ϭsf\ϤyB@ $7?mj~ESBE%1k5.dWM?5iL) yh!O .B7,>qz[?XA8!_$wUj/OhVc `Nn`0C+iַ~v+K|TEʼIJJ0sX뤺rHcH*dәxP*f!My,H+XkS*yp=W]]}ˋI-47@e8\x=< κ!~vvt lxc8 gZ/ nR>>g{XlxL4x7׵t3 L"} moV&4gO5Ftq%,_Uu2/7 4Tlʩ}?FLhq{W}_Yq1A9CY@/|4(~w;IG/iS̪TyOMWePpR*nA ~),wm[~fSE F+\+蓨|V3!7ݝTF§J,|į%}ׅMTV (xvm1=4Pi"o>~3?8+Ϲ_t~Ay<_vftj@8a;w6ج^2SnF4Dy5sy僫mDwzai٥uhe^W !ۊj:@_\xyŇȍEW>mEl-_J%K2C d=*'nD$n1;0Ob 4eKAY[BBkXX[?25"p ;l_>3XR`n!t3gcƃfD8QqkK+e޸-niM)q`o 嶨-!TD<nT)?O-UFGR5lʾ &5.I⮐s BWMZYUlbΆcQk SxO!L5h}o]F Dϭ1ee~m $Oy;DfWhϱ3.@(6;>WDQMiG/i;?7sE&_)[ANGxtr|xsϗ'9{Tȿ}?͐5V7ӗXT}bZe9e<<5at[b#[@GFFR.W_C'sY?AY6;$vg1JQ@:'' #Z܇x2<1t$Ѭ.k6# w:BN/8|3*Ƀ2XIXhDP|wJ8J(YDG>вWDG^_߾u#r[W)X@FҝIܓ];-G?~U2todQ&Iw;| 0v 0o拠›\vS36JuŗG@\w],pzZTPKC1 y/8o8+nuvola/128x128/mimetypes/ooo_writer_tpl.pngUT `APQux TTO ,K7,!!K"H ")]JHtJ-JH"(ޜ枙;q}Ift44^>O Oy_@2U<]=ۻW|o q }]o`xܸ| uPB?P(Z}bvC':C%@Nz_ϋ8NvgNH|M`;f6s~pKWV׾_)%pS5MC. =a''pOjzБ1r͛7ܜ]\@±!Ii.%c040^x;$%%%%x$QƓ'rog^5^ԼVb@`>`)ZStb#'Bu-y *)iٶ\Su&S<٫m~ab(+&s+58~r%WA>:OAK훼<ٚ`:}eopBEEBP33zbn.8jm3i*Ry_MFZڍzcCخHp̙8Dc>{UF*@:u I3YyJeǨNH0@ng1BV5DGi:Vsaz;r,L|hNÃ1b*+$*thV67$lV}ѶF䅴]NIՊ:#?մB{@rp9NJ!UBWșAKOs;Qlk/Z3nHF^Q!TiKc¢67LUd E=&G↳H2w @m utg&@mR=_?5F~5ΐj-*bb|Gg7 9|>%{o UV"ZV2:Ɩfolv"6O]WhK>8M;0S Zvq%w/'@HQi:Zp<бM+xe}fꆑ^t.*MGt m 4p3}ev_٨Ӂu BF{*sk S[Kf2f4a{{:TѫlO T}g6䞋ڱ"u.-!܁f㟟$(pzt<Oi}l~|o+%_@zKOo:Ƀ;嘣),N#WD1)E^67gY8s&bY@T홰Cńgma[kO4ڏyº8 ]ҊF؃ϧ/4XA%  SvPKpfq{PjTtN2“0i"MB5zxe`;®|-ZŖȝ)WurlK= `wt<*.NSt?.HE~`,R0:l XOhy FItT*-R+8sp+A'@ٷ}O=u[#({JNAب Yi/ Uaщ2{STktȊ:Y}o#tf6"p}*_XE fCRꭟԳG*\1& ~%cZ,MgoS$[%tE']ayʥ*:5.{1E٤!6 #n sRXC8a g}Aun]Ax%szTqg&R.ԋ'T?H=\u;U $hj$¬#K}(EEv?`gO)Ʊ >}{oghvxapΎO‰_d2XtzV1G&hx'<+ILa]Nd+ 82;x&NWX9\3G(N5?5h[QWPďgGFt.{|Eз.nKB*Ki*$AM?/F:\[;i|觙,^ ]J'Zr9ֽÞ X۴0tɨwçKYq$4w娺@@W2j|n+aD+h*E.^_)w8&3kF2 2a^U(0*waФӖ it;n$n2NpCC#IPh5fsZN "\b#ݬJoqqT|ާL:ߵ;S41mhz[y# .(|u5֧wA4eF/ ☍XWg/I>~Ї5OPqtH*s9$7c.2}jLԪki0ghPπ/FOGJq{}C훛 ﺭ?6q8*PѪǥ8nr|1,谪M&(~akb/Y*US<qH0LfI:#vw_ QU?sUzpz ݦek.dٶL׵o pA[vb~)a׷Ѵ:Q W|D Nqbo,IQB8$`hvČfz{E}K%i O*Xn0 z8ޘ&00G>j&>^o}::cƎ/#Q`q PǾ"<***xƙQL[7#t[??%Z=KVvgJP!kwI$OFZ՗7|eCN5|>Z ៦A-(wx$BBRʰDH8^ڗ7Jsٜ~`N^inj(SU*eS;/?O|N+xaOn) Z OVE_>:zjk3W/<eh >hr1 .*2Wc8v?N/ȅ$P: P8+>^) ^&H;jIJiS;9˜a+̀?6m$:m|*5ۅ`m!5Ьy|8+\/9ܮ#$RU8wâ$`pV9o 5X}OO*mVA:NC jsS30ojUћzOM=a{& ꎑ5" ^R>J;(n)/+1-1/s4ͫuw/6%m'!8EF0kg(iT=5ԴA%5$iLwdO\V'%[naR,Y)yԫ%3nPR>r5,<6"*@ׄ$|(4g9=A NaJ2o!澸c'tIsy/d#m`.2>yl']p'N'7ou)VyWḤgrP{0sz7 $R$y.ѵb $3ʪG:3>l !=`!_,^]WBcTƞW'tӰ#ЧC1kcFDIa(?#~pg/p!uWGHaBQ!oU8>ђֵD{:FO1s?`^2iܺsWTUʊr5MpM8㥘4t)\!̸|W\e^BnoR_덽m5=Kn}4DcInRD3?He%JұtPq6OO3II]k~ON#pzY@c"([݈Ưp1iP56heyZQD"c!į_/=Tk HlUEf&Q NYTpJL"{\-Ʀt0I nD5m'X]@;bD |6Fj-1i4up\//Fz{9 R|/7TOyTԋ>.[kX:'wD  0,!_Vy4?ꢜ-I<_) o@1c G./tcmI6Ώ51Q?l|(nuzU[uQj4 `Fwr. Jӌuk!,%F8=ܬwH=Si(IQ+TGd+D }~f+T<4$K #4&wÈ(GvpQ4oz໨+d^u c`y+?',eqd醠B"kvȺ/]YFh~ Y/kqfN*uP*#)efOQm뗡/,WzC0#m ~e?#oycC${_y by724 Wvs'bdE3VKi"&P=8#/\~_rtpEC_@yv V@ZQh j+!Kv]Q?v6CBU,CN:WKOCOb8$vjtAoh'.6<cmmCɭ`^&ҺjIzS[[[>y V {OC9Ly&k,"h1)~?G \kU[T\M/P#YWՖG9W{^sOŤM)p+nE3Y@WNV}hxk]52#[pnϊO,&d4q(]=ܫ' ɷ/.ah/C،#+e/B[:LgS*^j ٙz;V|t}ue,804.)&5?F AΜSQmG~WrDciW-_v~T8k}fQxí<6nnJJ35.>(N\nNrȏ5LKA7>Jt$ ޘ(We4bHlcx xg|JQ mIG|l2ZZQrAIj&:b)fx>'PDQORI7el6}xHCzr'fT.bU4l~\`]8Fnd*漧e>ވ{"'1 ^5߻V$Zo%vպū0ۥeIЈv1KvqoUe QJ.]]Ωê4rj'K|W%K]cF%6R8vpP4Pagp詛 1NTkCS4EF>{a8fI:T 5Ɉ$T97@p&$ Xߖi `Lhk8Ui '9ň;ijaJ!] H&Y*P=pC 6ŗƨ쭥Kl039S+"CŠ)?]~r#tE(U=[3nTSTigvܫabD1V~ҕaBw_&`hn!ޛ(I}W .b2\" +xኈ7;YOj4yڿo S/.Y, sg:>a㳭k~LW)eWk@,&,@gQ5a%\$_yB eZ!d8#]F/^>۞9ԙө9Uw7y&F{NR?uۥ !ζ6u]ik182_/b sغz߈JnE@ƙ/PFTtmr`_%eUy?uww51Rn(Ft\ hUesdjGaHGچ/ī.<M^v([EF߷xJ/Q RF-\gSt%5sQ#F+5s5+pZb$Pvޖrx9NvdC*|1Fv <$e]V:o879vP8. \~Nldo㧖%yD:5:ĒD5".H5 !Qn?qOzZz0Jntu56\ȤX)GKQ^zA]!-sc0 㽼203X` E)?WE 5 tr%c{{7_2Y Mد$gSݒd`u+bs%C ~zimo}cǕԈZB+# YG#kxQzyw*|e?x X@v~1kKxRb[nBAú]Sͦzy' }nViIJ.lЮ ?m4*߽,[nK-mqRڞP'`+@u{^^ k[@ω߫1/Y`^^D1=Ъ$cp?u ojH|:\6Χ4.N7@~&=M7&PK;I9: `s㶙-n%'k {=}WL`i{c|M m!uJ?;ïS~ &2mje"X W`ِsxJJUH Rg.(]:M 0dK" 2W!{6ENSzRҖ{U=B|eObi/b` 'D}j||_p13CQkC4 rL; <;Qrgoq>M^̤7Dh-ؑM)]@j&0'3k9C9<)$z7i*ķ:{o*E,襽aՓӋ:=Bn/i_Us+0lzE"){C+hA#\FG4 Sx 1T5~k4`IyIӾAQ԰;%Z#"nSt~Dœg-Hږ[[b"u3w&5%1XMo1 fM4L ~^I[$X:Mu| B,b]0Zn~ތ͑B=CϞYkjSW"-Vybdhr95ty*U̫k_n6wIF\o*~gUf1Y>=m B}R/xד؃tCy%~jƛR_ykfSBvkݼ_h[>Xۢ,>G?e;Ḵ_nCkC(>(c2:+y"3 o5I+6n?fM5R8pHk~ޥdycNxjxabA)D">2}O}+uEﭮW*?8[]ȧw_>X+~rtw #Y`^.wP7X isXa Qa`f2ap~OAJ gZ?Ewp8L`ܤR!fDyҊ3ePćG/FWT@dJeS_~j*{#_!6T&qn 4Uy8_Vz5u={>хsvC:I0DO>WggH@rC;ȊxSAqckk?JӾc=P{x6jFGR&]{f]4/ mJW3Ϙ.?ىE/@X!/Kv 2}^a!j_ , x2Q]fjQ}ͦI2ُvsx|X/ζn",+u;v:oOŹ1V9a nT WURD[ܶftGDAٞmE붿r=],#ǘoq M9Kwe@-A0F}-uŵe;0ڂ$]] ~s#z)gH-M@#iRZYPNL%8Qnb8bW߄K\l`O膡'島P iiB_I;'^%:ʒ٪+] Z[3Bdn5IgK2d_d@myLom9]40<%.mڱ4@N~B fRa,l?a❁̥fnb5zY #nا&H껶|c2dTxW䵾!Ɯ xUV#n5Ex<+C=ejAk\ͭH, xcooUNEwںG*5!)op:H[MF;?4QTTb<JVo! @WT] nuģG; E/5י}F3Ϥe6{ 3nwARD\HVʛہc#yԹD ( CU>{cz)8-AwBHN$Wt5I?K&S\Q"v>Vs9^C9,L1 WȑX%+G3r|G"s6|)֢^"b̑0e{3!F/l+h晹&r˘r靃[s49b/<01<(T6)(VB)= Ah;BFv&\T壺{Tf`7L)ҿ7~p5I {HPϩ?Rm+H]U{f{aBdH|s-{N 핵#Akגtb2!ihSȬ[mѕe/㤲2sn^^۾PgQNE (\*" 7H=A~ _Fzf51PKC1|0,1"nuvola/128x128/mimetypes/patch.pngUT `APQux E \L~Ykj}*hmZ,3i3J[Q#IT ;M*BBT̈́(Hh__yf9<9yzHI i_CH䂏xqV*B֠qOx\BȾguC"vlޗ;d7s⢣Ȑ`".x;j^/ݒ. kB]\\=JY"*..~Sf/v[S4gFEUΑe{s$սVˢ[Ņ׬Q!!^yçz3eu悗; 3#ׯ_We}<522;)HO'BR<ڶ1ڭ ֟cİo`1y~ciyFFezze+GX)EE oބV$^yv%}GcyEpVyD Dy<]:yw~F"P-ElQz9,-mgo\MS[[^#(/6!ٺ+pgKJts@ ?' }9Aկq$yqrH8Eʼ\6q-Mh|o^R᳋gKʺ.U,jEy)c8QW 2|9dmB@ˣ2I˜4V{ou9a3g68"BZ'?UϐkC&kdL৐bAj,Զe m qbz+c!<]:SKóԦf(9}(w"阘 Ѳ/ɝUp Ӫ?IzQ:1Vv']uRbz)l4࢓24 1 .L6RnXf%uIRNsOt5s_v^/W*orővZZXY,2[***.A)މ^ όYnƞ73\ 0Iu{VF|%QR } XGkێLk͐?;(7-HRy3yD3w=#_fmzӊu.8}Re ^^Db|<JޡqĄ­k3 j+@fU,]q<"Sxx_ 2먮X12Ce>kEP ;nt٬zҘm~Y9cfMg42Cq^F }kyf, *(%J1 J8;,f%ߦC8Lǵ=HL_9@Lh4qh#`=6`MN8@<@d3&| K0Q%&'?9kf:W3~ !VHL:@=t}`^RH^i X99 EGhKUSxfՎWd<8~0E[ZB ɟb\:xȖ_s-Re^dV ȕEI;"" 8⅐P|ZR4T<,6y tu&ƙur#.2շ}VX6T4?~YM|;-N-nMXnɿ9{mV#}~6fƙrnAEխ2hE` j>(e@l9ZQLc%(|&5zsQ;<2uO8jX'*b3N[{nfSF"z_\1Wd+D*<t~ch kU,念;2-C+׮M_,,`.KY8;krI#B$JA(@oj06CIͿԸ N-v"?AF1 K\KkB]෦*px p^ZܳEbL.%ȵ嚬 Ç#>,,$zoFI"H.%%"8LL9P HQh#u㫹BE:х ]#W s-ÓHBQ;]N8ʲla ^GkZ @ܳ4 mFD""6`I&0q wO67I}lW "H0"rTM2ΝIPeY. X I%K|#KX8t3}S~xoX)LJY'G`mO |@ ]c#ǵ uV1oiMHǣC ">`q屆AThz]SN0Bl.r'ڼ*Ôo^˿ {zo۞i1^il`/Ν 1~OnU6FrLSAqxYwRMܾ s練$A;WIjC83/+Ĵvc.:f?^ Ph~FmeW*~_ ND4"&` QvOa67:$:24.߳!ZBl \O:HQد c V GYf7)Go5cWU0?Z\Ʒw $4 ^RpzM_NDn1EM%ӔKLizOK\<)kt.?Wgـ-3GKnʌBKHqY `7"YLPl<ƽ\nhzr(燮P,Ͽ$#b춏 B c ЗOȁU{B޺8N({fߞi}'ʖ; |-Y +=gH$AmxmQASvr7_` R2peᏲ%[Ga ,rTp<k_|- 4f]m0$3{ 껨qEUQp XqUJǓ+Ho_q5q>F&b&ЂO36嬭q?qDTDs&)lj{{}T2>ov˓90'J9\{CKO<9%ࣽ q̗ӨZ#ܼZ%~[_-ob-{9B >DZptoByA 9GA+W 8kIC7mR]6'C߫zg|;vV{G vcH, k< ȅ8 R]Jǡ_.RRR]; O# )'o'TjJLH2Ӯ9\T=C#;ϑi"9 e0i`;94> (xi F!Jʶ)0P=ˁ+ĉ-0D6𕦠3PY!nĝYsP+ob|nx+bjXxv<+j,!1b9nP]ع |uOߓ>O;;>di*o?O c_T-np>ĝcHsayh[)THMIgHY 6yz*j!oʑy)$>Eba<.n8/i %rr&} צЮ&g)`/@ru\R]VQ_S[.%"$QyɇhDl T'ڼBߑDE'իh:bےe (c~ 3mߠ]x@}ᨚ?q[iI,s!xr>q%bŋmnGKّW"r_nl%*S ɨf[}xeu7A1Rq-V)Wfo{ɭu+(W89G\׼2Cޣ%PZ]~Fsw.)ʞ]y%yD(ӊw Yܫ=x*bԇɸ5Eoخ|m\SZs<_P0* Q©oW:n`2/4QԮ&?Tu3j<=h*G"!78w2@l*1y!Ͻg#|w:_OQk>f֓NѲmx#z!^ytŎZ葶l^_ctoW`:&黃,>&+Rq`ѕ=_M)k WwxVx-W;-+cKs6h45qb>`$—ܳmˆЪrYĒkF!*"5Lyz@))B#zd+e}{c oyC˺u;n2P`G?&9 `园Mڅ:͔l2MeZ1{u:R 7bPoj$8za 3]HBy5V <|.Zr );[hgb6WeőnZwZK0nqz$q%ߴ}mBd!h?ڶ ϟhd˧2 S5qqjFťߙqiZKdEÊڇaW1zx^-urN{*>|45kxS)x۵(ɶfm* c@PB!A@+&q4w<ַsAMMU3F?  B5=&mE. Pو. ɠ3R2|URA qdTlN =WG}ɡаN^c&P§tь;LYަQa2;wU}X=+Soq/XNU܋Py`eInU8uLH 8@9Kә?I{+B7qU?*C䎫e7-} M]q48H1HzQ}wJnFzGuaMC_Fi= .…10@ŀ嘅XS6Uwi>jmH Q>suӹct\O/3ul7hw8һ'ig:_~!!1C*8vz`J"'TaHڒQS=/`Hf^VBl$[PTDrFe@Z6_k )P9Al;oH=_9u*Ci nJEMa Ζ Qh a5f_5jC}} ( 3:tws x`̶,\:ף)@+T"L71נ(Y!N}.dV?I .!:/5PiŗhIrR2f\]̮>T;]1G;)C'G؁Y҅fT bgMe/,ScV1]P(|w=w&<l2|D(Xr 4O?q__f&((I%:ݐb;\0^}6G7cV4:Ǡ?Oc^.ys`cQ+9t`5mUײP#FU];FTK889T:KݝT,h1h)PSt+īarervCHQ&Âfe NXs v0Xx;v>u`2)z(_z̟R `dU^>/is\eԟ#uʋ4=hxl'3T|dj>sp_OWyp hKgp7Ef] ^ bKn߳# PAI<)zt'm|%Ǐ-b\"EЄX*}:lWPo4MBo̗RѰn|4qY"H.FJ1 j_J6V~Ƒ%l7RfckV7 UxL'b)#c;pSG Gq!j1uvkAiU#5H.Ĥ14OrEÑp*f&.)*!a:zV筐YU!#tZ7MŶmԼ{V>l[ k,Xqk ]v$p;q8tp`Pgec=K7LLOJ猆<J0_lay?SG fPjR ?ԙe%tvF {I`' u ы B&_OY zTNCX YVg>7uTl]!j=?8m*1KY]\{ip=2r[ۡ tOr E sg,:(lYՉ1a:9FU[Uٰ|Nc[uru)WCy_Oؿrb% >r)|8n a.v۹ݔVlp'3Onh/=!hؖfb׿5@,tf&yg NK!DN}d6jE=}*|֪lu3o33p=ƊnOI_,gjJ}f714OO[dw0VTB>l5t:U|w<A􎣩{O-fg-p~$xY[z.jzrBpF]7^3*HȳLJy輪AYAFqa#+6)  &ie[ky폾9ZʸOWif%$7(2r `AO2o쨞xG4ۑ`{jnU_g#&ہ%7@ƪ\ϱo1Q|v -gJ mq:Z 2G]]xxbQ~3DMXE _.ka;6`pvlW#3c w;01͙:(hZV}By=g( wBݥ aǝ3[A *5c3>?Wy~9Fh5(~|i^" a%`܁o?!{Ki6'  $օdaE<;o}Di1f=+Me9 ^Wm1mܻjfnd-rY-srW3CMnnۑW_xh,:>ix`Dl*M#r7qw@WKz{utސd-YhciD|_vH)ȷ]G0 ۺzHg4H:36{z7r(1'.$w}M} !\]7p'G NRt]* @?zH+}bDzN5)Q[0 { |^calIb %R h<4ţfh>L3]3McX~ſW9QoԄcZId<ݞE=JػW[v22Qo?\j>V:CW`~vF!jb䱂7v`"gqcI^$ $n nGrGKe#679p^X18%p C9LGD-o5._~^`g}1_u{OC.=6CD*p&yJ+ƘR ]z!K!Pc4)v )yxR-kcʽJ3(]՛BU#&jo'ш+ tBKQ-Rz|Ӯ}XkutoݽJme>A4G׵2WŪqQ zLQðXbq?YV )>>i&u{7I:$KF8r*w$t_"9PIzBtF?_Uqv?Z,W:}y jMϨ⇮cV˸}EC[s mFz,s_g ]@㵞L51qll+VYE ̲爁L2/~TQy ~;^_K";PvĞ=/rXw@68*pJ <H>뜽nSPKC1\"U$>% nuvola/128x128/mimetypes/pdf.pngUT `APQux Ez ĉѸdے/ut~III#Yb7k d_?cSQ‹7ت@:2ӧOL>5~eh.].{ExFGGS#""aa6i 6fkp^H@@qm<;p]nee*/7`h0kj,vo]_D"%Q|pj,V) 5<ɶ31h5(dA쨶wB Zm6V'^D[kki.~ \}Lx%S}}_&p Wvihxn&k)ΆQEFW5)W#/-gjdS}|4XEEK:Frqd=aW>8yyQǦ-A}c# Ac@fui*==w׮]Іxh om#"t'"}^C&YLeWu /ZSԝ _]q][~N 2cUZZ13%;nu=fS-eI!Q*YR&hkmaZ`軺+j m +ugYm\+;]P L=RT<˒Aϓ2t.VףW㴗aAJIQd-4w =q7!¹ݰ=!&7EHuZzS4 aO@yOp=Dqs䳂b[WDdN1X)17?a2]"p4-R%/μVa8`嚭r h$ ?v+Y㫡<}qJpO>H+9iE‡ Q/<}^":8jX>}-,%~/!s ~fB?s{|й&[7PP bX2R;e"y ]* Q:χ8I$:8ǝhRsc& 41g-aqȗ(ؗyHˮ8[a~1@qHlXܰzj|H}o o{&!r>+ey^`/q nV)ٵqĦ~PN~1Ӎf2T2~S5=|{ܭ~īy|['-wVLcvv$g/fEPdži^(»++ Vq,[DXBJ&JP We(w_{޺nLUk~-* )iO@{~RVeLOɡTѱ%S7{?Cp\%!qh}ܐ;}fiJGw סӽhꝯ~`}\(Tf~2O1ŢSI ޚkQɬ59E?1͊-иE6Tǭ kąq{Y?۷o4wbҙwSr'Z+YRs0Q`RyF\ES9QӱAd#核1gE6~ C|}::8608aik̦s[(xalp^!Z֣v ~W:wFMT H ;'GHI1%&$ us}쾰d}?WgL!>DogF$>Ŵcm0M|OIO51BEFKF==̝@sE(|$gP) iP,j$K; # %?U7/Tz̀M?x;6*y3lZhGSO`q;ߑO {T)צQgې8tU ⹾U~?v&zK%ɢ$3`eBz`Vv9ӕ:mwn,~R|wFlY,ke/WB:jN _fGCG}ϣ$/X_rO{ [H]^~B#%S-Ƈq7 qp z萼UyDCa͍oBdes`!ԙSܵ  \iztn&9;F ɸYm$c^xz[Q:}gwۄv=PB1C*9R2&B¢"R/'MV4܄VHb 1'j.{#ܴbE.ˣ."Ԯ؅!€$űw2ESņ/*Ũr2VQژ!?g]8"ugtpU2T~ߴ ƌOrCG'L-_}A9/i'yתH.=:NOލﳾLODwr8vŽ'H9Yv=kmk8[#iNF/":)Vn_": VCƥ}j$X͸|w~_uX7.&]t M5vź#$`ܦY1"0QB*{Oy)O/տZ$)KMnm6 _ԑӉzDi@wDL$-襰>([Ÿ^FPWUV苂w0$Z| +yOrmW$~ta55@`c[[xJ47N1 0iZS=%%e3$;o5=]|vSj8G, - ҢU.*YYg\ uءsI2 Ǎ۹HU&oZ])CNrF7 --ځOWu-D |+jD KW4v?8~h7^u^:XAɏr?iK%ǨRmE{BdctgkߩLfwKM69%j[{1!ӶNHC}TvrzY0ԯ3JRwd11s27$ :sN]k\Hڥ3S,T%> M0]ZN_E઱ѩsڒI*(8EͣI1$aB4w }64. 4g>s-oى#98eb"( fְ9CȇaŽn߆%lGl>![_cnv/t/pE݄'TaLgVa0}_K埞R&B]+Q$ޒ٢%;&~{P.{!>lف}(P'o-N(Dqj,j GX23La"%GGl_ebf*fۧtt_|/ 8{p tZU,C12r<^a`VdWF&Ok܁1@8:Lq'qജ=.׺/;+ c!x3?o374fs>O*R ->\Ke" o&@qJgEݐEZ5mt6,K^*^}lߺZ"*-ZZ޽Oxl"1V!$Vwa1O%dݶ iy@,bYHPSMY3Jn.ʾ4\ysxmc)BuMzir@.Gk؉=:DDz:KO^GќWAV'DZ%pƁ}-/7~%Pn7KE&2m/[L^O~b4xS x4w#%fo!*od$u+̱-ѾvHnZ97'GP;v`mUꩡSg< Uȑ~zjUDI3 B H>.{ $zlʩ b16M@r[;OgPuW)QҰQx[ w.b,7 Mx`FVݷSni%%6DwФ]R~le HRlxPQk;쓔t a:;K]1j#UR,>VV\J;[ <) ؕP/#TBj/fPp'B/ymn[Qۿz ˕\2N:eq&:S>?5L eWPޮxCLyj|Z@ <㊈t4jCpV[g:m?#N+JTTSxқ !O&DMNJ_EJdS4YOP|Ċ&-ImQ\2[݄=̶}"]뛑I<9̜3K0T-Z s\o_!jW" k d S >Q/P]fkgP񫸾l/ xSz;p+TW5p:X/EBu|PFx&$;|ZK/n"_}s# `oq#[bwEuPA5n?J[LyAjRv?ZG6eDD<(sA@'S: tX\ &nLYr`U<8滷TI >_BΜeZI8;p{ j\Ifâٚ]̜#B;C;[o1^]<7-fFc򍵋b*Vt eN`xv僂Yli쁊e?G(v&V!@$^I EΣq>5D}`69{\mWyu-Ƞm!n G'[^,f1ȷi)<ew߉ϝK*:j6@gHb-r&]P|)rBHNN2t;-Q 9.{v]ܗ95+é58c;<5e'8"ɜo_n^]1oY:l>~T(n nX<5U}޵*m._}BrU=2H 嬀ۗ8G1Y �@wv,@`p0k9L\j-pguk!梥1*\} 1m*awÊZC^eYOPof\?p^lh|o7fAiؑ^gER]A(~k2a -pJ8Fq?Cx\0*\MEXjCcGb?Wt">1k`91Foi+f% u6|IipM#<;T!7L4Cqwׇ; I2➯rTEJӆ?ےM*>i-$X@ Maq]Ŕy 3TeoOeQm-ĖRљ`)Cea M̽jYzGrs^^;\&g]( e%j5(uh "O٥\C@bLG͆ǖMB/ANP\Xh# %FMJx'LVg<`v͂w|'OҴHV@9T0@r8,b4Nl:%=;|s<\qx8oݰf|$)]Pg{;qSŽW#Ż^-e6mًw|R9߱cM`޵kfgMYсUu^a@,3 c [O>Ldߌ2ak+">>afJ5>჊Xy :?!lb\ jBQ[S-aO#\dͿL AN:0 *? (O5n&{є/`307ӄQ9IH &0ot!G4Ep}i?rSbˆ(4D <Њ{B!;H7k'3 EWR2T$Ɔ:Y^l6%!0,<E>,{Ղ1>e2ޙ. `(ӂkk Ih h(^}\mf?PKC1v \!'nuvola/128x128/mimetypes/postscript.pngUT `APQux Ez 8{獱 "2RJ9Bm&JĢ>IuD*ӜjI%'R3a߮k{_}?s>^MAN]mλeW Ɂoeh8u'2Ƅ.>' ;q*0& %m r:M oszu-KB| @br!6"/,@"PSfʫ4`oKXXX}(G-ޗ%,~95b \! .8ˇ)ᓤwf]e< =,,L 饘hPu%Ivz$}]cu7nkqSSt9P];x}zb3&i & 'OYkN (>v].(oy>~uQ<7v 5mye@?[`P5`*W gO]\t}neU#;ks$R^rOu :}~h?3c)׋q!.qܼ30ADu#t|} uKѝI?v6Nc%zlhiSv~.&s-KTN x/^V˗_pybd+Ms~+35~CI b.:Sh980+$Sʇvo(0 IaOhGԱ@4R52%8w}p+\\JkHZξmq?7{ꢔH V bwt-ap;[SR/᳥ (/Ioq;r7 YUJٜv\mPb~o# %bԾ1{@ .9 {8plAaȇв`K8;S;3)B7{&3(}"*DN>QZ,tH&N _9 >`-r%/߮k1m' 32lSvz gqƐMs&jg=K-kV5OVZx2WJL?u`VR&pl", hT *se!9lZ*( EY몠G2țq%YzLz=nqSsOR?C"9y}} MdHMP-3-t2J4ta%' '01p({9Uu ķIޏ.gʺAsN;P"!o".!#{|~{(0߀T!cDew3(O}E_W>UEw S8=gf}勤c(:m Y btcBS?vrdH')gt=̘*x侒dEJd^8+!NjzG\\n'@͝QlE[Hܧ~DwD9Vxf&Ga7`F$yN5l$>nj6ѰEK3{R_,M[aMxe$ ߻W~L8>sWRE'%4/!{)|u+g3Jtmn=##46pלּpi~4^}@R9?z|eC  ݦMwp= .)[U>8c&`͢Ό`U\7JVF~hO(xoq=3afvёQeJ hh\nĿ3(0m@9]aBux LRTxAS74. eQ-w9P'<^|}^ a8ܳ sOicU-J?cN R ʌ3Qjmk L\jp#?/LZ>}76^s]{22aj74HĕEy 0?06y2̠ifPf4ſ f1IEo)ö1iY2dyi%~ث3hubD#]@b"jҌc04PjV|T( _x(_AMQҴؘ^:z*B$7_ m{M~-7]0=7zaQW])E|1Fxl#:NWIwJ[Aգ)1wtl?D@/Sia^I;?/ ϒb ~GI<9|2ARo@DB\=h9U',pRUF.zxVVnFGl2d~e4WZ)07ⷽ\c6 UF1Zb"!y<'90sQ2;VWR2Qf  (Sf(gG"`yK{4b4s>gUz_ρ}%2pC7잦:^ (IުR`2DsfN5_i;BSqAeaZ@igB'' wC'j}vILB7(ԉQ2'm4_HN ˁDqM=s2h)`xy b@*@17>78/1tjpe&,m݃[4SIrOB?tkwF)JO^ݼ_@k4Y#e`Z2UIH%1חd]Ό1qz&ӈ>lZeІۯKKȜԵ `9a؄0̎gIA; rA|G !Ij7 {mcJ)R~Tenffg!x{R++5 c0n)aj-s@wQLCJtL=؈%\|` XJ/K]T Uf?I7vByU=@vzdmsQ*B޼*/8 Fq8eQVfͰv5p8ܵiFŕ%eā oPRw3>|fx,p0^ϋ*FNF'֙m ̹R;7usrf\xԛ"g>Y.*/uqDFP^b Y&MUȜ襞 g3N-H(QXHn&j9o%6!\RHR>x8=(4%*%H(U+LNq.<=˻S&zuUjP©q(Q?ќ@GyNZU)HWY(.x-0yn<[uc5=o=0VmDݔ$ 33\=aiN5~b{~jxd}zLy9X<>Z oI_W~^bVy+ 1NfoQ0{㹜Dh#[Oa6j}}9 IdYŹt UE47 l0ک-"1vSeD`v pհZVZ \cڰ G5u%[`jFF;|_E㠛_-Bn@k`tʒRx)vrXrxӜu j$8 4OUpWRcM cNiQtזu ٗտ>pɵ"Cf8L<A]SzB첝~!|)`0汅%eYEzoꗖM_㣳09h+%C=qI:?;}XvɵhG-tD[H$_%JHڍ5ɑ2h"9b?*^\w 7&|6Hu1X7ǘ+S @i@Zy.$xl=3rmw TA&s|i66;L?PIq>濻_9ke:㱊*ڵА{߄u?~P_v _Y3l>rU4(w텔7b^nx/Ex(fzҜofɩ}%;^PI[K*rrOyɑ% nf÷G`s$?330:{)ndK’ 9M&jOY1nI Km:F? >I#kJs|9JmF }phkttt:y`74 I%+W7E6(kԣF}c]W˽ J9TmȍS`N7wy;qX4xlBGu~]o4bĤrnAt4hC3+ms Ui׵R2{y٤h(˵ .ec}zVPN&YDd cK ^0>NdX+M(P~1HVs-;v{*hjʰԡM: y7jbt֐+H8dLsHP:kpc"Z9;gZ)C/_v>R5Y>,Cwe+DzI_%$KR0RrLDc)IH_dїGU} ?z4p=^]x̌ [DB>vQC@ZxP0ZI~T cܻsgp_"KB5(Դ+^+{2 AoBt;N/^#"^ b!sw+O7@c' %u''m!" @92؝(-:=֏]}M\߿聁 QCz&VymMiSBBnN?Lj敕LPz'|8= T:R^ PzYQ޻}5Shǐ:bHزJNz" dM^&;Uw#4?I~RSsT#8;+M}aW6\O V"3ǺBMAs1R0^٢uVxꍰmUN PӜ1Dtb:YQgYsj0V๹0tC`dY;6+9vIII}K߶?}!YN[ ~VW>ޚa1NŅ [oRV Ǯ]L*ùN2[˴Vz~&W8҅pM ||g xm*2VX7b/ulkSkj~+_`9 > p(V zEJV卶/LP[֯֞IW5wd fQ%]]x֜$˻ñֶtKsN2GyVZRI묝7NgTR1ѭA?Y䛅nﭥ}n NmnkqS)#Hb g w>_{M,"lk Fk}^s}6 ;X*_MpG{r죟qOkP7iiX)ù/:Kl٘, Ȳ#:Y'HoYZVXJ{KZyŽFhJH珻_tפb.v>fqQ"XMrBAFbu/鴰=wW ' `f(d^3K~v-$ݺ$ D9[Ĉ3%cWͳl tlWʊjj/NFȽ_8B1hbʾv\;҈_~h>"ڨMg }GlDw3Ȟ 2?='Q)RBG%_rۓtD[[tƳhYO븳bcp~x3\=5]sG3!PH<(!o6=1vTBuG朖Hc+V#/4r<Al'ݺi(^9%xA!|,H> Đ-.E,@ם{1[-edELw^ou4.a30J˰C_ R&xӯeE3pgЀ $~ 'w:,v-(A)r*QY%6s_RubdVt8AD;u=7 :"5 hK;hy,ehй=y:,TՂx:jtX h#|1tCjw=ӎфpE_'' k5oZP4'@d3l}Iwϗth)RsŧQ"LH.U}}x:w'?PKC13./&nuvola/128x128/mimetypes/quicktime.pngUT `APQux e{<_;؆9ۈ!ʘ*")I%欒B69U($֑RYg:pirZ؜rH}n?lx>#s*[]}W󝃚dm; 2N8~">(6  #n9z`eŕ3`LF[j"ȍME02)Dn7M` 3ܴju ~QQf( G s㽯( *KתlVIft%@ww-Krz_XKI[IbzPl2} }tV8!>`VVVIGWRC6BoPԥv{bbbH@*GXJbиX7_XNCR&f~5X 3`j7Z XT۩z5 6!hA#B2y`h̆yN5!<gQjTӵ%%,tĦOOUv^Vh9O3 wĐg̃êDyo&J=-?bI0W\u-GDJ[7Dϯ~Ew18LI&rY.rPu4 &ڮ&eҷη/{+~xLkn>k<"Rɬ_&m9:obA.0F\"cWtǏip2MM7ZS-Pk؁([& MOQ#LօdG u^ (4SlkD_ZYܴv"S  0A o_``W}q(7?CTG̟ð <f˘{_(^4[,Y@59; _T_-ƀqơ7e[n$6j\ƽiA\O 8l#2*v偮ypUesߓA#?ˣL昂 J]f F~x Lڸ*EX2Ձd)$BB^z#zwX*!Q¥c~\sXg_q@_e2a~El.3K7II 8PwV-v ֜ cN@m+q\t@bYQua_#Xͧ0bec0 9G~g,#9 mXID[ c_~]wDdѩɧ`V ~ P NڬG͜ HAO i#&S-MI&Tb8}N(s;:l HJT2lQոGsQeLG]#b3*8Oz /H/XO2׬$eבfCO:#*\rrC ~b>zB LūiMn/"}&{ ߡ6(fXRvw=m}\?D~І8ţqYM]+En~kYB\Z/}Gc|WG1_['UlM}={kRSP"`97t= "Jf-q1Tȥu`t~DSqH&f"d{KS7m-IY(=垩ȾͲn'>tW4A7Ze""94seގE8Dө&} wͩr7pVyM򌜪i;ru 1}-OH81TNrW> vvCmIL K̝FZ:.W'Ydez[+z@p'cˬl̩._E}m_8n)5jZ frJWOQ !΃%DhIꀄ`۠μzHSm+dS[uL9D2N]ozwcHĶqm= ?+fZfh}%x^)_xX ZN߃g2x7B: Z0z "ycUa&=3\槧x ?K `.<؞S=J CMS_XhPӜ!~Azp:cHI e? n_skV/XQb'9,^_#elVCtd-c|0̎ĩ|Q}N<|qLs )Uu-9%vDXa7AC@ ߂69Gݰ/F0k).%ͨ@( #w}\-9Cm<'eT2@I Sዊ2Uǡʪ)E:jU&N@pfkKҮ%O-݄ȗ7U(xmC4.Z}5!W=K?H+DnB f Ke}s*i@dB>8uUːa;^ nw{ʮ /Ѩ2ΝDw)BK>Rd)LǺ?r0P.>- GsXv oe*RBoM'k´^_<@TUu85N~,We3uIS;,%;Ϳ+p" (Ub9aY05ljD7|.עyged'ʄ(9VM-В:EqB;Vp ]SÕ&ELL}(7Ari.Y>Kfƾ> [mF5-0@&kv;ۡt7pkMZ7T?5}]oٛMH?rt^<#]GvLH+pd<JcXɿz6Kso冤ILLNnhDh֊I [WyaG{Ie4Giѧ7t/٠ٻ۪l2@Cƶ>ܾpޜf = "b{,e6~﫲3eP ˤt f!쀏!Y4L=f=19e{Vzñ.___<w@b3O C|7/^Hl䓌^ߘە.i>(EU3OF3sktonh'hZn:Ⲗ8^dћAE62AsܤdI0=dgm|#CXQ"v>4 ʧQ5ey '?彸.CoI &6; 3cIS:#|Jm6vÜtvsO{NkQk;SQ 0~WAe1J!TO+Ҿ=csh71On.^ QR"QmS@$_B) 0*l0i ETd'YLmå>#{/o #k*#(ns_(/?|;4#nXxYC##p '^$u2cF Wҫ֗^`ׅ)tk_"K$kוᤧo+ )eƽ{%B{'թ~{Q{ QFAy Y:xph)mG n砂(Ca۷<tҚZDZnV}[ mϥB,!tNR;*6 A~aLފ_ÐӘj쩫z/ :Vn.G2IG㓏:Dn`ޗP&bM'ba/h,Af?P?()h-?xC-wɼGxbT ĉ ʙ1N+XWyS2w}9R[b5%&EƷq5{q5Ѝ\whP|U{lq&čqgY_d5?#mT% RĐ,22#ې5T%5Lē/IXKx2_ #i_tJpwp2B X jnA;pRTq=-i0xzטS L BAa誖Mы7ft2.<8Rjc`IS]&gemԧ<>_ ozށUcP2@t '|Cx~{v;>a i.^f? PwJ9j`MDu Y fkWna^Ӏ}A=ytNeLOkv ڡ"e?Oca %λXngEFf,h0`QUf>JZNo/3Jgn>@p([s]|3~d.[r jꮛ5?e ȸR 乄[PvJ 99-ި?KNꤰ㝌mD9:I/9eA9p#Foڼv) Y7Y2+p9.:e+5ƗޤzY圷og˄Ǻ͙6Y GlӾsP&2 eQ]8ƼIC)9hQLHF kGXPʖ̂ȡjF=M=pS oIk7e eH{޺!2e-a_5ɰ?ihTÛ>沕&zZ9#_/2d7| λYr@JԉZ֥x)(s_K +e.0[]"$uʃuE9w8a չ}QM9} (F_\):W+z4 u1,$s^dH.jG.8ni¬7V}S0߂E#y mՙ C#4#FrC0nSXl )2CW[ \힏<'Ȩp\+]$U7v-2KHypZpO8|\Z`LJ=&v3'bH1<29w[ᅍL*S58#e@ -#Ll% ͈$T}9;h;ݬ0WKG,eR =oV\Zɜ汦{qOLus?3?L3" ,[r6h9,*ױ ]?E,1NQS0鄣2YExdVMU]1pT\ٜ:p'2Σz@4eB5BDoP$I~/;u޽c:^8:1óTu@lϭX܁ܧϔϮ/į}56 ?:{IXQ`ߔp5zvpA"DQ }8"ӢT ڟ<@6&>2Nxm?-Mq#Ħܳ-ipXpk`OiWMlĔivnV>jA1_ѻ)P<SMUwI^B1 kh,Y!plMS вRpg)0򍻭bjK9^3 ~A|+]4:7eк䈫4fBF2屇G; 5 Y٪Cqb>%Y;1LDyh CCx%Iਰe7 vXq*.˽ݪ EfqZ*H z/{ޠVzPQqM[khFlf&FMJ?&O'EygoFOG+˒c3G*z{QqבPra$55Qs8bעuf#FjՈ̊;Br GI%˭\h_b?ӽsp܉_b G:8U8norbTy6oߡh6aj(#uj(gjtˢ˅ЃOQ'1skl8"m([KB,F_wxy zz55eGXZ/v2J"/_#WBm~j6@1:\;Lr9Sn8!3l;LQӎlBXJpj=%BfW Ͽ¾| x{A'uÚo-DN=;i _kCbl!jH35v_zz%!"s&G(d:Yq6hK (kE~spAΎ?qk2U1sD?] x f$bX{fQJ̘Gs¾OkD: KOmEݵ9;b6;@fVwW' Ec+ -,62 qRXSyQyLl $xT::hƹmRy\&➓[#<'&|ha'>r5>-h C+߸y1iKhEei%=) ׿_h,5d ɼ h:$Ec6h6S}+Q✠0.a9+rv_ZfԄw9 I3DOAWgK@/ ݂!WdDVd`!>M(1 rOus0è͟Fl)9l. ?,ؔ fCw6 ~pG \=O^7pvQ M#+٬G;" gC̒Ic}uKa91!aR6qA1ASXUk,5f LNBZA9o @(ܼ=͇CG*8@*2@Kf ZKp~wWP2%/KEaAKm6y°88񀫙YkD9e6q=)^89S1fvWf0p_9n 26?Tyr `wqF?}Q5=x׎@`b}m~R9 v? U#=kSZcEyP;5f ejKƭ "T䦪tb$K wб\99-#,q̆0Ƿ1{PhrW P|V+ޒ󴰎\EvxV'WՐ1$|}W-G։V}mR4GOJ{tSL;A|@OF4@D^2xw2Q0j.iC3VX@ >(E 7i%M@'<|c(s*G~RiYͪtm:e}Lt/#nƙ 箸T[z]s/QRF q{ 7~]coͣ5=2AfL042^}VZ;s46Wc ԊaR*Pފ0纖#jRsakA $*;̀Fw$djw\ ߇TVʅQŤ{^̲D +fTYn {hbZXX>q-.Q^ Bz( kIS p ig()nP"0&Z]G'WHRY򽢘j~<࿏LyUu1Yoh9VD Gr-ܣ[A9j]ov+/=%|PKض.VS' {%i#ʎy0x1 )a}M8#XڒNhnX]qFM0\~[>`Trt)L96ŚN ADzVS 6'HGo ?WW 1,N=f9u-y3'0j)SAAYX.D!+e`ct,upnpeYoJ(_ _,NHbٓj_\{pOݫp6suAc6[JЃSUVW8,0?pz:>syn&#L>1O#Bx}~%AqAyAeb=֠;F_:ڶ }H9tBCjH)d\fV\= }|Lp?SE)'rS*0'6TqSȽm*~]8pgBy-9!hm9d3;}*C T}e6ۊZES)~^DZ{ì-Gc@$.yFT΢= 񻘟_p'= Ŷ 2뽇?/KκXT0L{=w _d&K4r>6:ȇ x;k2?}o?:9붨Kr; wV\aRI\-DR"`ɛ_T|ߥKͮʥ? /ڌZՠNͦޯ^JZuh硆[q*2#:w<@:{߸pd;uSr%X8K%bvOL>h=m:C\̽c%.{1_Wv|Z^ӄqG 9TJ6kj整"];&󇜹˲ 7|xy|?J׀c'.k@t8<;v"f@fPNE&WWN%pjH|SݻQߦEDi6|>ܫL@]Ag& 8ND ܧEdⶼ a7]X JCXTT􂙤G5N.z^Jaω{yv%hUyV^= D]g߿wbIwR qi-kCGEE#"`3J=_<ۘ0 e}-͛7gfVVVcvf& O{85siP 911 ÊVV3Zݏ5ը%Ɖ޽%/_z"53y[|mZL7vw&e ZX{-Zh;̗G:A\2{ee55߿̖,q`ޠ7 Zoz&lPX2b3F6'yZ ٳ:&CgOKiߊ&)8y26eQ-A2Lka-Jg6qի Rul̛*Ȧ+zf4|}LOPBVVy%Tw$r/U#?5mѲlvcK.:՚e%(&ŭs+Sb"%"v2QO+.">T&/?@br HYvl=;+zTtL>…+^aɤ[6()t(h) =7Pw&iH$m د"W(z~%RME9( TEW;p?L{Fq|?f$؍~~GLd{-Ej8(.62jY O=F{~rxஊpQ*Go{hz oV>n~! KoߠZwR*_p':qNff˞(Q5KmkR`L6yz]xg4p>ޫ+ }A_X%xB,ߤщ)TƦ`T}3xy7A!y0'(`zVw163ybkj ݟűbE.ߏv7<⒧挄̜Q]83v9-L`4\yA=j 3>q1 ǥ1USK#~ pr;MwIwxY6S(RYLMJC"yv`&Q O:Ux!B up`= a_cm=7qaRFLumNG0B%'ϰtTLHncxi7t{/#NҪ0!}ԧEnN. Uņ0QR7NyY #U~2r99.Wsc/wD׳ C1\j_vw!P5R.Q闛O|[7&(X[Q;0%̟}_.27ozwf_6wAж~=0 N3+$Q[Ѽyy퐾_쬋ѡ"]$i8}ypR7t`\囸A_jLJF>ۆUȡ,sݾ= Q@8AV/Żb)X{]mSS瑂 H2è2$&2P5$lr&l`=BMzYarJ0Jaw0TE>30mI!l뗛L=E+KLzEgA0ުxN^qµZ5YmX={Bky?D@{=l 9C٪쫫JE8WSV(IͲ~ ]&,Z8;И];ís&wDw~Y_mC3ZУtx7=@gq*?|+Y GasLMgA='\KϽ$ZlUXd~*ExďK]G>r@ZdhHÑj/o jb"bbX|j Zt >!{%ģm7EypogW?eV #}!2h=ǵ*S3|Ku.&-M׾/m@귙[u0S6L\) 4-~_z&mS&gu$=Xܹ#8ዌFL٨ D`l߯}( Kaumd&~ Sz>餥dц݉Xp=BhWQu{[ɳ"f1䆬`ˍ! mtAF˾, A w~$96)>ύJ:AGqz+?~z1'&3P~q߽),d+/wRb3G -8k:S: w 7?#~&'J iJt {Mb: &b!ZeR{k\`_~jLStSCXn~ oh W;VJaSB-Eمbb24 ڏ.Dj,qqvFmG;tgL8N)]jw'Y~>̠0+%X{hEOd{̾)絬 95F61rf۬sӧcR..0295Rwsz-427p d (ah#*hV/ ]jS;%= JG/%e_63O>2JIECmJj~DS:Y&橣1f™WAp* f?=y[Գ)̼1  ku$ǡy|FȃXqg,ϰb+65REywPt9S'`0Sd@Qbeδ>f#x1s~ؤMP >ל U F*؂0r33ϳC(>Fb6Ay;RIJ9 IcrާF[) yZ (g֝Ԝn~tm4xA+Χvjxi㣬Sdybc:R7}=t -{ v¼Ń];:Lv=*\Uj$l!ll  %;f2Q!ˮ4*(P#\wqowC@H]A`+SVn'b aK"bxCQ.kC!6,ኼXaM~ F`+⽕ qsGY77 ?VoK [Ix|=|Lې:?_w0Bb_qwO&sF7|9`OK_{;W0;&{+)CX>#X%ě{Di.֖АZ~Iۮ}W^h<pgIώϞk#s!*]rZyCnO4 7˚|e7Y/31h9V?G!ft#~[= *{blCUj~wtK}gZ sp(Ǔ d!ua8 ؐ}-K'93xqG]R7BF奞m5H.^M?g2e`\'FeQaa>SƵDd}u YHw4笩". =sׇ}wcQH;\O;NwnJx_\Mg8yĬgS3]GUrK+|`#aewp^{/m$oD]}\#批{&1G#&r]ƪ\z4x? ٤yM >]ÛG‘5) DgLܴBc}hGi,ǮuZM w3vӅRA=wȴ]@+L/+$wv'9&5Ek6.r Z{{c~ū?h@g3:OMX?5}[D4qhoŃ8y#3`Ꞃs̓OBifݻA&#r 4-~+xk2ߩZ57D3|\?"x^G #(H#w "f`(TWrrpA̖CjcAٝjc.6!e^|!y.c2 |дܫp/M)"'1d^)(dF ^{cM @4f K0L~I9c)wKdf[D5Q;շu7'r4y>&h>1fx sx=.|6 ^I<g=]iY|p+~Jao(_sNz: i4=󭌨HOyx6ۃ#rœ#lwsv;$pL9XWDf(9e{T #ѝrG]&C̎g#& eQ+M8j;Fcg\sJZA|S&}ӼuoIw Q܂#B ϕɝulVtGHh&_Þ2~#!k| c?ᝩپ ۾=14_¼*"^svuYMJo k?'D/0gGd0s GC,AP+/v|gN:|Jbj*ڸ!/'Im{e)E\`?:C ЋirQ%~AOgf͐  ^wY8pG*v ~=9ߑL{="6l/ @Vt!.cc3Na>cRWzƩE $E pS^GnKO8>wsW8y0RͯBޛk} ~a~OfǿOA瑵ub'ə3pr>">%x%.U;Ӵk`Ho zZK)89W4H.u} KN]m690s݇ߝdeՕ#޽0D }Jñt1Ŋ^?gOH4}wy% *yU't-W:#Ry"+IGz Yvr-Zߎ0KM~K |_.iu۷+]btiV?ҲxQ,r?ҡjxp%qŋq}UC`U;,M$!3Z8/&yㆼ~=]BQT+8>GR{V[ T(wFF >=)Dвc:Z8sBNT S9gIpGO$D,_ݯ -F|Q4;P>DGSD~7%{#{Ljz ѦA |SH(BHI) B uDP ;b$  ((F PT *QF)"/k%w{:><{觩nz+{髊R =;dF/dYȖĘ#E^Qфc7GG8VxmM!  }(0X88V|'PEY_X&!Yh~+MR*tA"Ne:\Eˁ$M&XqӐ];rdha HEX^###04RSi*{cLPlT UߺܫWM<  mHbL7]%2 "5Vz 昝-x0rs"_|ҥXQww ue0*=q t.[5\{3hW/n,V"w/b/:TU54(߿WXY\Wy]弁(m ' ĺ@-˺fsv<){az"G|W d<͍I]Kљ^$> @@<㍮@Ox;֭yemZG+||BSC*IO[ns/A*'6bUMs03r7s&pa}XC@}K~c_uoSjfaRv!UE`'/W"'>aR[#RA3 |ޯQ*w9[)t*6}IsZM>Ǒ B)M`p.T]ςfh)2k_)f_Ou} 4cWL`Mc x>mC S)j**D7vϢTyr]L/#{D/GRZpk>k`e(6&c1H>g8Ajor:G-J//Žl5,l#T EKgGK6ETGFQ?"UE7\32 ̂RG+eGŹjuŹ[8l-|[;}45J$R)[Xl} #6<-HBAha"9LdWV)qjj?MY B{ 6=F_ж"t&}86W8 MdVv&<߳(^CΝuWJ>`eH[+8*R {g[Id"e ]"f2zVŸl6+/;BpqC`V)v )6.K={XY )k[sU`XtBaXǘʢf'Nv njwn.j<>I0;oq;xk hBJ/lA 8fBٛP)o*j/s _PZ9RDs<S0/%^` E_#]Mxoi?R?Bp5}, ΛfP!zta#كM6FԤLk0tw  ?}!Y޷y,a*_x#cXLh(k t#peE)()$6\ æ4@Z :㼐)d[%*A.WIi [ nLCkAIH\T !gɹp꽍gb .0e0pk51f0U=A =!܉^|WQ"eR9q۝P<:RFZ7NoA߄  }AT~菣\9X'Xy,5ui/^]0VC7eJ:bK˲aV-:EXJx, w=0D[llUm)&%vc6޲3F ӉgEDp5;k/SvWSr횄2L;gDD ,V&D{ZIv|&i]L?2%j.ڎ > ts]P=k8bԯB`}RO$_*1rtnWKp!g{tk]Aγ.=x\aQOZMCT,: y;¡hzmc9e W#'C }o0O;ؕ :H'sN 07_eJ{bS,Y?]Z'ʻ=sINl>7@ʉ@ A%/Zul)躓V}c9_gUqz>p8T  BAS2͙ V`. G~0}~ +]-\~4g L9&w= "A?5.F|'X#=JܘEr~QlqQ$1_ۛ&6䋠9úB&w B_.U QնAq_]wY]gfvkQIOh;bT=c:Y Mjؼ3C[Ȇwata(*o|>ُڎKJJ½ֻ"jIw1bRm2Z3Sυ6xXwJzNOTgB)Q220>c8X 1m/hrC"gп!ELq_jZ2O۩'' 5w.ݶ(3<ⱩlpK[7J=6 !^#h]/E⟟3=6WG՝޼i9/u5XFFpéFAY3Wt6$Wh閂02"{d C`n$vGB]U\\FcLa/A'7opW'#]+C̼CBmZgVZi<6<[܃u$QTUnE2j?XZlPѥeq &%m&X3*.J}W Mch')6"vĘ:o$=433CνŕO喂eoXYXϘL nz[OkͅLb7a)dϞϫSM[.WQ_%Q1r=n?\}kdI8 ܌m$C{NN6G}֥!=#+V_\q.5& |Ε5Ifax*OX+13+]-|ir7e_\8|E<ޢ n1rn&,:IPA>L ,!|fwMKC)Y]SYTĭr;ۅ&Y"JF1l?Aذ+Q' 9,XR&wa~#,xm@#w'Ӊޏg؁C"?̋$J$޳%9y iX}s}nxc*oFP!7ىH(X$}KEWM' VѷWڕED2&+l5ry J |o wKH9]헪ŃdUC{]~#m cbaY#Ⱥ1і:}2:{NjAH9"3E2ԹDkb% TO= p) tJ|UPtV@ԑEKxBX.L=:+xxVH[ os0~x|wm~ y*R ~N&_ۢg=q}kh O (W?ǯRKj"-"tJszIC&lE!!Wkj9:H@LM/)8ʁl.* 6O! u֣t.8i}~h T9?{`Z~v5pV%xȚӍqDOy)ӓ d2s6y&=d%M{X(Dh^w6c Z*͑ -!fXlƃ[7I6 2C,7 V}¾T(qꤸra=.I~F x[Z7 Rl]#Uͱs:ӂ.70NOM=uv:almͭ+!pKPaTٔEG'l)Hdbu%#3㒞espZ$,V/r g(ROb+D*K3Ϣa,ԅ;ݖI|=s8f鄁чM{jdokrP~T!trxVo o^g*n?YEwBu[gt{*V. νI+Y+$0N]8ESyl-SB$nr#(Gw`ԊKMTLrXO kaq0J*aKxp%Ի@ rAQC3D3:#S7}I-WJ688VJeɫHJ <'劧Gz$HyagvhgMڕlWf{{{)zsw Vτ~a8AlY( 1q#~yS5~՞oW; W&BLD*j_&}ډXW 1:d5AP[ȲŜ[?n* \"4VD8ް-W7Ҷl>[K>#}1ci"4Wܮ k,:h!!莋 k6z m k *`C՛-x~VISj«' 6ZF3#ma*-r=@HŋGi`20—M`Oz8Rmm*2S\<ѻ^T%l~E?Vf,^iLXF+%)$QiJ{UGFw8A0gvsD :9f=ҫEӀ@Iݲ4o/hMNlzDi&}. LߋXt\+t7'P~֯ yPKC1 Z=&%'%nuvola/128x128/mimetypes/real_doc.pngUT p`APQux ETSY>|SH(BHI) B uDP ;b$  ((F PT *QF)"/k%w{:><{觩nz+{髊R =;dF/dYȖĘ#E^Qфc7GG8VxmM!  }(0X88V|'PEY_X&!Yh~+MR*tA"Ne:\Eˁ$M&XqӐ];rdha HEX^###04RSi*{cLPlT UߺܫWM<  mHbL7]%2 "5Vz 昝-x0rs"_|ҥXQww ue0*=q t.[5\{3hW/n,V"w/b/:TU54(߿WXY\Wy]弁(m ' ĺ@-˺fsv<){az"G|W d<͍I]Kљ^$> @@<㍮@Ox;֭yemZG+||BSC*IO[ns/A*'6bUMs03r7s&pa}XC@}K~c_uoSjfaRv!UE`'/W"'>aR[#RA3 |ޯQ*w9[)t*6}IsZM>Ǒ B)M`p.T]ςfh)2k_)f_Ou} 4cWL`Mc x>mC S)j**D7vϢTyr]L/#{D/GRZpk>k`e(6&c1H>g8Ajor:G-J//Žl5,l#T EKgGK6ETGFQ?"UE7\32 ̂RG+eGŹjuŹ[8l-|[;}45J$R)[Xl} #6<-HBAha"9LdWV)qjj?MY B{ 6=F_ж"t&}86W8 MdVv&<߳(^CΝuWJ>`eH[+8*R {g[Id"e ]"f2zVŸl6+/;BpqC`V)v )6.K={XY )k[sU`XtBaXǘʢf'Nv njwn.j<>I0;oq;xk hBJ/lA 8fBٛP)o*j/s _PZ9RDs<S0/%^` E_#]Mxoi?R?Bp5}, ΛfP!zta#كM6FԤLk0tw  ?}!Y޷y,a*_x#cXLh(k t#peE)()$6\ æ4@Z :㼐)d[%*A.WIi [ nLCkAIH\T !gɹp꽍gb .0e0pk51f0U=A =!܉^|WQ"eR9q۝P<:RFZ7NoA߄  }AT~菣\9X'Xy,5ui/^]0VC7eJ:bK˲aV-:EXJx, w=0D[llUm)&%vc6޲3F ӉgEDp5;k/SvWSr횄2L;gDD ,V&D{ZIv|&i]L?2%j.ڎ > ts]P=k8bԯB`}RO$_*1rtnWKp!g{tk]Aγ.=x\aQOZMCT,: y;¡hzmc9e W#'C }o0O;ؕ :H'sN 07_eJ{bS,Y?]Z'ʻ=sINl>7@ʉ@ A%/Zul)躓V}c9_gUqz>p8T  BAS2͙ V`. G~0}~ +]-\~4g L9&w= "A?5.F|'X#=JܘEr~QlqQ$1_ۛ&6䋠9úB&w B_.U QնAq_]wY]gfvkQIOh;bT=c:Y Mjؼ3C[Ȇwata(*o|>ُڎKJJ½ֻ"jIw1bRm2Z3Sυ6xXwJzNOTgB)Q220>c8X 1m/hrC"gп!ELq_jZ2O۩'' 5w.ݶ(3<ⱩlpK[7J=6 !^#h]/E⟟3=6WG՝޼i9/u5XFFpéFAY3Wt6$Wh閂02"{d C`n$vGB]U\\FcLa/A'7opW'#]+C̼CBmZgVZi<6<[܃u$QTUnE2j?XZlPѥeq &%m&X3*.J}W Mch')6"vĘ:o$=433CνŕO喂eoXYXϘL nz[OkͅLb7a)dϞϫSM[.WQ_%Q1r=n?\}kdI8 ܌m$C{NN6G}֥!=#+V_\q.5& |Ε5Ifax*OX+13+]-|ir7e_\8|E<ޢ n1rn&,:IPA>L ,!|fwMKC)Y]SYTĭr;ۅ&Y"JF1l?Aذ+Q' 9,XR&wa~#,xm@#w'Ӊޏg؁C"?̋$J$޳%9y iX}s}nxc*oFP!7ىH(X$}KEWM' VѷWڕED2&+l5ry J |o wKH9]헪ŃdUC{]~#m cbaY#Ⱥ1і:}2:{NjAH9"3E2ԹDkb% TO= p) tJ|UPtV@ԑEKxBX.L=:+xxVH[ os0~x|wm~ y*R ~N&_ۢg=q}kh O (W?ǯRKj"-"tJszIC&lE!!Wkj9:H@LM/)8ʁl.* 6O! u֣t.8i}~h T9?{`Z~v5pV%xȚӍqDOy)ӓ d2s6y&=d%M{X(Dh^w6c Z*͑ -!fXlƃ[7I6 2C,7 V}¾T(qꤸra=.I~F x[Z7 Rl]#Uͱs:ӂ.70NOM=uv:almͭ+!pKPaTٔEG'l)Hdbu%#3㒞espZ$,V/r g(ROb+D*K3Ϣa,ԅ;ݖI|=s8f鄁чM{jdokrP~T!trxVo o^g*n?YEwBu[gt{*V. νI+Y+$0N]8ESyl-SB$nr#(Gw`ԊKMTLrXO kaq0J*aKxp%Ի@ rAQC3D3:#S7}I-WJ688VJeɫHJ <'劧Gz$HyagvhgMڕlWf{{{)zsw Vτ~a8AlY( 1q#~yS5~՞oW; W&BLD*j_&}ډXW 1:d5AP[ȲŜ[?n* \"4VD8ް-W7Ҷl>[K>#}1ci"4Wܮ k,:h!!莋 k6z m k *`C՛-x~VISj«' 6ZF3#ma*-r=@HŋGi`20—M`Oz8Rmm*2S\<ѻ^T%l~E?Vf,^iLXF+%)$QiJ{UGFw8A0gvsD :9f=ҫEӀ@Iݲ4o/hMNlzDi&}. LߋXt\+t7'P~֯ yPKC1)v?((%nuvola/128x128/mimetypes/recycled.pngUT h`APQux Ez %8 &' 7T6SW@ H`h3'XX}$n~$'^NDkaH>uz]k*5D_]UvnS*}/|C&]hD*+~"^M`ާPvFF_ ګ*UI&!WMX+R ۷`kgڝ1`X\%/N{}|D陵PV3߯tv0$Sݭ<mlvu 7І[&n^q$LMD as`w{(Iq=M?Y;u`+WݦQ(Sycݓ_b~D9GUQ'01]dj{1kG?4>QqRL7Aai|?n<ƱTmkMɝyWLυȻ\ˤ;:sNAbT^3@tԘf3u`*VN^n̠ c5@$2͘1,w;2%?\aIVKoW+ΟIW5 q|%B 5Ā`!ƥ[e:rkn-*kk؛k4D]ZZ?VCAnee))WKa q8tolY]#Yd'jVSct|Kk]aI-8CI8-^O|KrY/]%o'oLv~s9~\VaWitmlsp^w]KA t0#og۝Jbq,aoF@@i7KQL_GMh+d W ٹk q#_,+u6^P%Yv:6ݯ'qM) Z:V_~y}dA8hm*&zA:Po,J KbQi,б*ϽK1S[B1cjdKu"D+4w&1]ŀSR$Q۹'mN7b6ca-ZF~ 4w #M;ɘC |h~އ]YK *tӇ@GThdb0}r :} } {Ń|d=´rYo/0JOp gT)gށˍ- Qps B]HldX?UOA ԋ=( ^49SXKtHhe!@JB&A X<*$WJk(~6l :a!:50Q[4*G=?T<9xmm <H&Nct'a"|fB˵"|QY34r;Rѡm YܿP-zI* זM+hi nu>Ȧc:\&tA8A.lJzGɢzɗ!W5*$ s'Q6'aǬ>M} OGC& 3 jxU[tNFD Tq~u=-`[Anί~I:4odQ*r9w>7<8)<%15{(#mV(% Q{$?=wAfaglxH0p!fֽi 8᎒GOK&R]A<%j$v7sz隀YCUتwfJ%b^%QHt~*f|R#,:ea,QZxJ[s0+E[Kup={u*f/yvаʫ & Kїmm5ԃpSOW >3XMػylKHEk}=&ΔAzN!pq.!_D!xQK aZhhxNl޷(w 7Xd19 IJff &Q "&?{8f\ԟXa y5Z0S@,J I+Y(Zlw\}/Pps4 W q,gk x\ϰ{xaB`"㿙B[d\wHU^'N,H K&PX Xʠ ZLU>!+ef6/?[Qi@빳NtD9ڨTnJ:F~!ƥfH"-6+ _l X `V W>zQ݉KhʝGPoNȢy%̒1|Jxe|]Ht(VX6W 2UUk 5k-ȶSy 8~$SX)gwX*89:gOÎiwy24e>3;ݿJ-ƚt8a&==2(/܊]$KHLe3 {@⨁HMpf2~U5tJt1C=pCzBrY'vVFvQ>},,A[=S>R!~RULn"Jk4cf  w=j_Y#w;njoU@64x7aݮϯQaZ/4ͭx cLr>_N (We% KʘavտF͛׽9{ b9{oA橖uoa"ΐGf2ȼ7ly5Et~ތ_YBQNCtP8Dg&ͻxzJ;m\ LL BlVM[n&v 4&|&_amXڍږ-p Xg{bY%lY8GAKZ.2Y-|9>/ E#׎&);1b䁺 mݨI2P&=z?]m6?NNRh=p| j㜓v|! ݵq?ܸmXl$EX'׸H25?<*Px PR+ѥ 9 oTNYމ(kF(RFT6Z* _<"x0eNh3ǽUͪm-9#+7#*!06<p/(m>deE4ބ┒fK%M3>\,+[ڪ G9ՃL7Q=7 Uj;=s:ZCsiXo57@ ڀjb#5an`sYgeƧp4li&Nd} #IkMh+?WrPΈr|K=ubQrIk=I~?ׇ3/hZ*DT']zKw=~6E?5B,p&_svxBYzwJ9)ݳwR#>}ʧ-+ Ԋa}Jal rx'p*Z)ݥBndgǏdu $M3}g{!=t^KYaSߜS]K3ַ.^q윢z?=6uWDJ O{_P5"Q!E42?>踽ʢZӷekABG3Rlьfjê>iΎ'v Hḧ́G?f#Ӝ`.-gygË.ٲ* {@{_P[NϽ :gcYfXg+ο9+6۶g􀈰t>9Nk>RM_>QoR})שƭD8$I@qTh7$Rܓ'OXC]/)ڤIWjxSW3??5ͧiss(Lމ Lեx58s ͺ>t08Oj/Pd%acf l*NDV.m}ZZ-+,;tf,t-0Ni71[U; !G !1pSJLpКc KXf LԼ $\jtHRZeMp:H#*cIȫ DVwO/rj3΋~kB>.S f,*%G9S;A"i.ǰp80}uۿ`#;!00R b!P]w! Eh;̻eBqV+0/OgE"Bj3lYɋ돃=V^9 l:l{˲Z"RYDl{(cx^+E%_" r bpXӇ 9[D_X+ RV"-4n@V:M,cddlf4gY*= l@ س^A׎pQD¦Ǹ6>C̳ISNPt4#3kfnn"fq!S6ﲯ->NqQmv?üsڴp@QȄaSAe6$ˈ_GyºLTfY2O-Blv^DkNl{6Ju0E0Lj/4`?*\ilSMAfX갏k-u|\J!2«okzWmd+L>v)?5&_E[,#0"s{,95"W@ O%G܈=κV"H"ԂQm2#SևHߎb赈K/u΀3ċ,o}vcK7f5B+KPp 5ɷ l2AmdNa3_˟nZtÊl.yxz**ȇR>75d`jc|~KCH16"'C\ϓ]?|/-Akv F(Yf8 8Y W R;Wt[JY٭nEt@WPg&ǔ 'bDRC50J0gv6ʿOyj; “(.-xdp d%,6@#0|MVoZ M| Y^C(h.17(j+"V쐼ok͏p>8M3%xvoPU)O+w*س?[صFlc~TŸ9Jg': nM{ *T8>!T]XJsY-:X-X#+EvP05KK_vLJ|ܞ3O-'<=᣽v =hY1:V-x'=g)\uqmpSr=R7&C0#-/e|L1}I7Fsa9w!`O|.1yOg5hqOY^$Z3^sPli?2|3O^{݈3^끮N+, y6i)^ g?:@9aGUR+N!f!%fξWm{mK^x %"IX.2x+^6c?~B<}HRiF<jbx_Bæe*5%> )䧦3ruP %av2Os:>-$?ǥtC[͡T j\Z*}kZ)*(2qwpt\Q"#R$&QO|hݫ8c Wj*%[G:/5aM6ro~_f^d, z*5|WՅmXڒ. Mo(22M@85?\V59~c T8M1#X#jjnl#vf%5k r6vd;πB#:R;tImTddB鴲s[)Z־ \WWB`իt#6)LT\NovPQw.0:gk{9;B8]G)Y*:[0;.z<9]%xXE޷#,f>Q0Xs ֋_.#9ڸ=u\;|F1rI8au(˭L`NMg*HAK^ JlP3/ބyyy8?{]i"x_vSTϗZN\f-yz؜QkS[ Z D%Oa3SZԬTɉ8$7C,B.}Lc`05hp)+ !!!12_֎?rMv,reWaA[_A<`1KǮԓN++#q {TS.iN#kjG t}E}z}1G.:wJ*Jk*C'=+d7A^ _oDNQo:`TH4} צS|=kd888R<]8xٱ;hM=6 ֓/nys(h[ph@p yӮߦL#"J:ru zg$H?sfs Slr= 5W05yH#7{c.Ii&ߣ`9`]xF }TЪ8AzܳD4qxp)y(C$?4kjʋB4>ZGcZY-;嵊RvW-g#ŏs#Ys9*NڑI?x)T}#GcԆ9 w)>Hy2 7L7^_?,^Un܉J՗_(dI?/< sBЍ\'qJea]YiVz_ S!=n;Pu,5Tc}3pFޖ-Ўq][c;?8jb;lg<߲یqOw䚖fl~*nx;<>>a241ɚm,_Hԍ06ٿSҜ422N 7`dn2YGڶ~r7WD Yh:+`=77ܩ!xSTኈg\RML3vñ ۵k,듟N8?RGIŋ 2IC5FfR}Z8S)Ba` _2ĴS]WF8zËj7)'9$4YڬƪROlDܭGQ8#E_G^Qɤ*^_H*6'lhsH(Eӑ]L1D" Fk~[bU̒_膩}$/u*+z2!##6%?jd7gir?v |Bup9r_ف8@4JPK}C1 },W%nuvola/128x128/mimetypes/resource.pngUT ^`APQux Ex <3`20$}04ք ي$R=K!"I4 bRD$eIBd{53{Ϲy${[ <?x+KX4b !Lv]T4Q| 5AGZԻ-$6Ptc08"Ky#I^iAk8%=%)NԘx4"ѐ?p)MxBJhh( ņ %!#QȈ`,zZNN@{W?EG]xvy#ޯ&YOPۙz.ZuCIDH ْ oߺ89zښXѱ={t3 Ph!6fA"C0aik+]SjXeq51h62*&2y$3ij 'pDkwuJ8*fkv'Χ-D\@  Z1z@466vcf0,dTqәHli>!TE74ww{Դ`f~~>O)@ x,b/>VL?"W\f K96%O˹Ռi$RH IH1Nנ}9w##2;AW(q H҅B՚?kw T罷 DŽ^ <3o;PF_*ITZXOjm15$xD /Bpy6pGN@ 9[-EmF%JgDhkP^24=<$-hf(Q EAQXI77:I.m-r1Zd|iGA2p4J+%@^-Q_eBF\.Txq@D%zC( rG7'3\A hbt5׹ WRlMֹV\#ϓdƸ jmmuk =KKq}!́ϙb@̚m=yRbFj'a%\*fWu*͆{z 08g?n])*++14sv'OJ~k= NsZ I̐~ǬTՍ;z)Yݻ [Zt|VA> %CkhhrDp5֨ʾGEU|.nEfpmmE6e;6Au~rjsŨh=?S7crt9cNix@k ih߀Nr/\8u,w]s $X8모>fbo;I|iW6sa-ɺ}}}!Gfec8W't{D_ _W*">Sbz fs69K}(! eَNUa׻E&G"iԍ9b >-'t&*oKP-c2%xfyeu$"Coۥ5~ Kaǧ79m֊ +&\xxR̅CʦVqC8_ MQl;{Zrx6@MKISLA-LMM r'-2C#~Ouo VQe#˅vp*3ٓ~݇~&-Wx<f80:i'eVY-ŏ hJno~wLbqiO>`@T݊g"xR__赍avA_bn0 0-3rawqQbAj*"<ԤVDo::mbHHO/hhɼ}m|#&,AvF}{OK l{@Lhl ;7),)akwp5e +XrlY^s<@O[f>|XM~5&f]=>ȅ/JczQLp*? ,=&׀s-fGZZ9rق;哃2n=@y '/$t(k#:8 z֝'L "D9A˸P6EQQQAhN\\ݭ!\РŒΖAvⲸ d~*r:7muSRnʫޏ>;utj9}b}1W<4E- m]&&hyx̷=l" `7߭4x>=jVPv޳hA_YfXڂnUGr8qPAgf\*SW/b^ޢi3t{7|TyC9??éuc\,"y_˿ksMr~~w^:^O5/_&ąSQ:5)l5ҙz|o#UGc r,jIN5ʷnbhV82N-Rad0CZ`O;M|@ƮQ8lsS{beڛr3I)I;s!`;{ϘtG5b%C=O% &f$$s8DZXٳJJ%@іb?>'jr:w~*{(}k&Єݵ!W&ȽPf]aHi%˕VTtFh|Yf*Z7xMf]/]eD4b!~r cfY!n)y0hoWg9Od+TcOQN6^i,$a(NêR⵴ԷğnWV+AyKr=y;-=xRbWI~>m}G^QB4q;LZZ2ӆEM-#FQKCVaV$. ,9TWZ] e~lnz BhdlѨmͦT6%L01 Q#B"=O/DjkiQ2%%%ߢҦ3$Yظ_nK+2Y9{lJhߟ [[5,r^@VZ4wu'axY!C%C,Py Dbj(O%I"ɚ]y}-s.y{L𸀵IZQm%WV^#86{A<߮waj`>dI\ժO<#YӞS-XC+a7jE]2_2gn~*Qق:{X{㌹R: 4D'Dž!\?Lk ~EWt& qq|`*hA/VZͶy._p>!O:-OgeHx ۞Njb..cNY:::C^]S ~c\Ye8'C COd_ƒ }LWN99O"5ky"FTROGD`S~D]eu8J1dҏJ)Ɗ^[P?-Qpd*VXةn2g k :t{,r;@|oR{Ô&F!:%f᧷eV6N^XӞɊ<|ɽoΣR_ljYXhn5@)Ηp%?Bkyqr?%`jO?pDr^H$w FYO1·E! jnVl}Rp1̍yzFr&|9p`3d Aۭ "$?㤮3 G{$\;RY4, +̬ent2i.[,5H\ٽ캤W%omg[2n4t/gKq-G_z@$J1si姯kN"g{l"D[Qf'o>|eFHIh|b j>>#b$P4bžT%Y eon~>ɹtx?[e ΈTh &s)[4nH g_:eD7DO!IX(L 1p3/v#u^+圖z.3 *e'b."`m5jP'B3pFWeF!*4XcHqK V 5LY24;o! LsmR{ڝ ` u쉐BP!@.]Y8S @+3[Z)=PKC1:: nuvola/128x128/mimetypes/rpm.pngUT b`APQux ={TmBo 5TA EEE>ATQtE"V'*JTTDJ (("|PK{s=ٓ3yg6xNXPN#xg?ζl-iO_dg/`=9ly:k l-{K)|`@8;e[I?1 ؚXLvmAXg|=EYF-Ե/BUFo R1<23w9)iKCFau(EָIe65sULm$A~=zJH%!I VL; 7?/rrYsIL#( ĈlȬz :-̊cAXsh7Gb fܢTQlϴp6BQuwãhIKϩqK Nµv:A'|僷N(yq[h_>{d T}}"&$n/ҏ-3 V C)dGMhC 7ק ʣ7E䵺,O5}jnŖf>a^Xj͡G u !ں⑯.w(m?XEWES\ZA豋s8!\3<\yJ=oXIɗX#\.wB‘9Ibml0}LZz/-hOΧ/D{(mjc5ܬLS[&ćLDX#5-[*=ܸZx jv` N1p@Rɘڸʼn-Wo_pb# uBڻ*j0ZU.^.J7RCu=d7AId5-̌T9 I 7 QIMHg58_DžtF< ۭ6g8Iv*{[?iG׾cvum}{$`k*Hӆf(Na[PI׊cjEZYFOT N.(o)b/ͫBoyU/la"uO Mƻ|=ku2  KX !!"+tB/~8?dJ(&jzD]̼E78"ac:h|Hl(x==qVd#]Q *ZY+ (:K}QO.eIɓ㴶;u٪Ӥq/Wź|6 5HEc%,If,'S!!ab7foZ[݊R:>P~D?u\4pYV $Xc!q/YN;;z( ,/GkDo+YDGfRQaV"uUtO.C:Sr1 `neɓ ػ##P|gI3<|.oB8]]7H>7|7`y(:X|̧6ഴz.:W?WL8E<~=ZIadD"o?֭82 {uث.Ǖ!4;VQ5UWFZe*3~Iҍ8H-\^ccRҎۤTzE=.(5a5/ +NN*%V7Wj568GOH! 'y.ormVsFfŨ=_1`va~ -t$yS$Bi[%3΋&?a>E尴_Ssy/c"C p-Q2(p`a@ѻR {hjƑOoC5PÍM ⳩;NrWaJz:g&UU7vUDTͺN>+<;'Zt:ғ%QPꥣ.=唗'~x<,Ŗ hkAx۹'%b` 7k[5:0)g]Plޓ;'n:Ea^rS:P2n*Wv/B6*c"vU4"Z-wő} 5'4+5~2ycgCzB 7a9Ԭ;7QCr;;cx$-*CVmn13vE[gVVoG\+ gzF0óF7hO4ڀhGf.>MDEc}GmHh1=ժ2jXaЃ|?3޸Ɵk _.5k\I=9qG-:? t$Pxi`nuڵcv3G'8lt_:r. /jaI(i:͎f|`yfM_ϫjR?lOhN~F @;LAU4(r{{zGqQu𙸿}O{ekrKZO>ǼD&wwa~ufVZOГqͽ m]EXA꬛3$|zaV [%cX!֑x7+6bhnc9B N3J_{"u IHHqB(: WA z^r^^Dy=>j(TLJT{),g3KU ~LȄH4hY<$]WO2LB&Cb][/iw |wW{:WɬIemBD5)/o1D&+S") w1rav0s5wBCF獍eQo)O4ǓDFV Hy.E(Bwhm( $?_,iS3\(Bx:HẌ́h94zz%o'#;XH!Y2-sJ0 sRJJt2iK5p8V>zm8'w϶ZK5}2Yj@qO~gBTX]g v'JFlʧZ%{r TM%pQb]qʓF "Iܮ0 104-HFثS=Ơِ7ܦjBLo.a QlHE|fBe2JSbZԺt+%#ml$E>20j7sE5ڋ, lvjR܎`[3cDcw>;0 ĉ2 TC BHz }?Y<#4"9%@I#rneI}_Z3uc3\bd@uD/ 9^uסsC9z)- %F䀣Ig-3>bs3ssDY &)$_qS)؄;o+,KЂ`\=CR*ʜv0sۢg(X[G "5f/+<0ŗmu Gyz >TXb# HRhNZ؎O{T%|x Q \fyW<3'*}LkhǠ6M'DѸ?[{Ƣ6@uVW Wq2؉>q!>/yTP" ,r#-nVS;?)D+Gb+njΆjb {aO惓?gE ɭi-TlE2\9VI3*]+"H*srHjҌ:arg/-RnQ s V& seLtlk4Kw`zNt{u\_+J6jpQ_[;/LMPtN,3wN}rO vDa`˟V$tAGA<fj,Ȝ=_uH^&͹- p8`hs,JusV/HF^z|i# 6oN8^Cbd. ƚFg$ˉEJ7=hpq[ՋxCDctox0uVROAUֵN쪅4*~B*dVCTgʘk# 5D'C;3)GrS\@*Ƹ ^ E*#@]ZP㑣'Ub(=&ٙHC!o|9Z+W LWX*Jm[:AEw#3BR>&,i<?av/?sSFGۆ6I~ҐdwxYĬ iB-Xख़Ϗ?c@N:r m}h9*x+?eEI'_1Y|"?mUE,fΎd;CHB%jKiƇU;;C^Z)FOu pn xp IrW9iTn@RG^b{ F}4C00kBS9uJU_IэI$ܠb++Jv+=f;A˪[Y/A{"gkt>ƬŒDƬĵkoMAz 0A?hJ_ܖ%}^ 4.u# E^wTMW{PMѡk@oe3)>`錰jt\t̍Q/C#ґ E:aPS`P-}Č^ם7nYƈk~T&wNx)SBy0',* } FT\pYu 1BG:'f8 r28ʬ4vx=g1}P7-#L{fx2ZS*yIt nY)Kn?LVF`T]mZ 3bHu~Քkʼm҃+O"a/0o3I`xZLfoI@]?Ē?3޶K#Lm(x@th*iH,@mz35c!P_Fʏ\%' Sz/RAy?vO'?KyLlKG!8t, q8MysxU(>xF|]膫"Ǯg\*d ׈ v+,7-7I3e']]r=dGGAչY"3<ٖMiF/(%)]{ )TUs#S0}tSoړE(^K3o jM _n!N{6ȼnd60{70C*p;ÄS/OiolOY P`^=JphҳnCX;.YU@yHjR/N9C>&lzNI}0B6L]fAnD‰SV4UƔ70AlΩl =^e$`ΛfWHE&C;{+y/ֻkSI|z`O'Ucyvʯ3W7'䣝sQIͧbSW hjNx3u험],J8hx.)pӢ:-cmĴ(޼ۙAAJ:<xq2r>&xXDjY ^XD<̪旨XE5hN்e =c6S$FJ!/4]O_tWđ7dߦM^ UM|1Dvqns=Hrdz]=ȭwECґJo罟AsWz.gU0G'`)S/oD~*lgf/Ώ!U4TH(VDeBlXEwFZA`_T'l$jI&#^8Qb*?X ~٢o2%䞨iU' /=KQhxI[zdæU42a"쳉yw {:>: K)JOvQtTcjp|«۪jNI[Vl1kM&nH]0<2Qcwdc'pVrr;~$J[NPs ]A$f֗>Gkt<fɫt ߆cV- 첨014xzTXfY8Qg§a##QTFRx"\v#G@f ~q`Gu~!UHn-|@~6w5%x,؆5@Vk q6G\z;'窦?ߍUv(LCzc3$%Av>eR|qt"A_׫Ù׮dX?12y;nA=¼II$W: y1V5Qu]A_.OYm?dh[zq6l f /oB0..9+v76Cur(*2tPD?᧨J P/\XkrЄ^mQfi0ss~+?oxIQzmrˈC'0G O/{~04R@XlgG*V|\"@Q6}lݶPYQ 9^ #ڳZa+Sdѡӌy&Ϸ(^T 1Ǔ`.w$W$te/tcWu,lv?qҮ:U+"]ڒnS[udjaIO&Lg6tVٶl@oD@иY\))0ɫ+EXB^ۄ}h!p&0*v5ϸPyl"Kh_gl.|1/0hco=P $Z(~rlwkk{SZKz,_I]؎?hN+L._`z#)aAm.0^_?0W<2@? 0!AJI|~@jUj~(,}M[L/f^O6qZ̆y-U GsYa-q2.z>C٭ f2sMQQ./*qd 4%~/ؕ_@&T9]Q^:&O/=',)ղ1W]ۋ= {rh&bţmA2Kzi*}PI`nJ726zlɘټ8zr=)_*yr 6D%OE^R"۟hHd3,n2U _sOOmA sJ$4Eg l'³pS"yN`Khy3ˈx\ voz͠F y`,[h41WOy(wjŽ fv ԏSjj\rUr2%|n-T_*)LS\._u*v[ @%L݅yU ս274qR3uUo*jgRaIW?[{^.za>~ӏ?rM}b=ւ/+a'M7Gg.߯*rQd2&$, Y\?(rD %BoyZhʆP>/wmph?TM`OCܩ.ߕoĢ,D|L"N CȄ8-$oY~>+5'u1[B$WҰC$&l#TЈ1;u\["L<;EKB$5ԏoK)2J֒Oc{wz(s>b}lꋇ(;YKlN73|cS"qj]ѼCif:vǃq 9}}\=KYG3sIV,⢇̦(~ò%}~b7㷘6(KW{kǵS `C.{8Ӑ-Y@zqwkFkQCeccQ,џ};6S bJW!^NKV-<9>Ձ1ЉX$#'|AbA+1KS3?P.{VLBPCjK$*^NR(B/gUwvz`6`XFsw9AG5*Pr{ /P$҈_soI} pWPKE>߇Laݯ)mEFjAbᣤ]/)Q :umwfx uG *@2&DaCRΜq ]e9 Ûq{Cگ;v g4e4vLyԇTUFR;ŐPDNB>w|zv\Tb ֮6AW )T+ĀBj2;+l1ǚw$͢pKozn1U  MV vZV$T/lnilܽx؂f1y&oDnh Hnpx=@X"gM#p !/ d]Ty= oIjSxȓjFx7oFi,z}rʱֲϟpa=׏x("[nMX&DAkT-S<0κ2궍Î*j 4 mcݜľ Jhq[XJs %!L;\,2(r.f51?-lE?#I$!5&{Qedd^?Fyiܚ|)GDN%[ 5CX9^$?ʙ2I'˃:~Fr||C"A[aoքn㴎rƆEVrmŷ6 jr^ɸt0ZSK#U*.}҉5 [wG>ϠNzolnlkTZq%|8OWG)'(B FfG𨼮t$) [v _!7T}Rng[3ω=. /̮1WGoA;j~wrbҞ/*Fd'thn/[|Xze䘕ClZfcu63Ajei<T#tkG-I(hy5D'p/StyR>`J튏o'.Ƿw6WSFF͠=|ؓXϟYA %M@M\llNr=zԉyՓ;IfԸ8(-.Gh]Ɨǵȝ3~~gN?0|ٹ1ۆjFz 0 QM\eTOB#a-ʨ *DJ`\M푎8t{nbH|9S!ǹMHvmo_R|_ZJ¦_xES#eRㄟYNI%nҪSthe0X*u'}[5"t XQ3۪"+[۝'1!j[wc'YZ &*FYSmvC'߹dȜdxb[/? 1[_Ľlg5H ڰϰ"zeIXvn.vhh)pz[݉L"r^PfNp?>Qk#}Kwmm>C98/_fw=e +k<Xm>_',?A~`XWߚs3 w?2i=~k|ǤxʚKllbHc {N|%+tp|p7 ѳn\Nn B7Dp m<[nˢa^Y=PݙQ1| xΗՑk6wEWٙ?HظWJl^ |)cѠe>߷?hBn$r@@(Z#eMNՓ$ҐkEs+dEoQEla,℔v;Y_o&=V; | VFi:N^}ǖϵ Er?7>>7aпqEq8pqYص%ɴ=;d,btH ՃxɍL{>ۥf}=bĭM . 9IpKq+bث2ed2ٟd,@,˳rѧs%Fج[&/`,6qr#@  y|EE(è~RjJv-~&tA,k -jǪOU:E#k?{V-P|X| ?<{/I8 νM倨%kIZz~Ň MH2j45t~|.F\&U,+NT{?nG~!婓2?9F7%GOOX-i=fٴ7W4N; @~պ*)mKqEM)g!Z(!Rx!x4GlN~aEJ?PKzC1cj.(nuvola/128x128/mimetypes/shellscript.pngUT X`APQux Ex 8T]`qFL!2S )J^ UJ䌑PDLRITʥ7P7sɵT(Dagz̜kZRnNҒX%|A3]TZ`&JWΰ(@ l=pX[ J]'E"&P+tg<f 8hޜbqcCO AJ -]?kil|'slMc!sC*f僌MOV]9AAApk.E6(.HܗܹBX^%%aQ)!Dߧ 6`*=<<NJV)r@GGegUy_ͱ3 _}_^0>9HekX iI ܨU?s>|x KnOTMx) >Be->arǒ:W u2)(Ǔnn2\א֞ 7) ݇3ΨO#y}T".sIpU7-'=K7oܕ;漞r3%䆒kC:i+De{{{/^679i 5G ?J(Cnx%k6vyk Q˗k9@rUvBSB=eLVMA,FdЋP(mMtjz=J;P8kFIRksh%c`AēQ9Hxn}=|9h9U!-8J 7~p(Bؗ:Qc#_,jPw+ƥ ʠc9]ղKs.Dj OU YLWL8񛿦 @B9tȴdyA7w*VG90ɉ_d'>xƑuoSPpY99$2A-8@! ;eԔ.nY ; :.xA>O ۦR C۸ G$/|$ ʪ6 %\QHHUgT-]ӂƗz7G^2{:u/ ~b~j`i=;aa_*1p"*4{?J5Z;rTSe9$|"ẦqysKjRya\TMW-gzqch0k8?fRۄ0n[gY4c$jwJlhi_zf_$, Ԯxlo|rj;, 7_T{֎-rx~fdVF gqu1wCVFucVYn$P׾"In/4NgUQX䆭=Ѻ=ٔIghgDl&sI|ڶq<F #;`fg?}6Q4 DӼ;قoa$C$yj[=j'o\Œ>D8w+ `X"1@lu6\e,mc,9 cD )Axh;tFzbڀ1${.W}>c@[}/ԦNf7RG!"4>09uR۹Z_$a K$UcZ3Hj')CtwI"]qLZ'å)Nu Ui ػ~|GH8E&oTlV3;I'zg}e {sP5*(qѩC(IT+j'FE|stN;1ʰٵ2}8dv81 DDIz[z~$OIf̟Jg*-H)H/#Wޑmkt:.J)~CqNkީH7|7l;n(Bs4EXe],V Rq]rX 0?d77}|܉>@#V>gQB"4>G[d< -7Zv)J@bDz+.]q9㬏fԗbM`gG]Ek)rĝtZ۷MB!3P<}d|tB] ۮtqυAN9>$ŅVgY0yf}}}찏]"]$u3 D?dw)1l"5y׏Yx)޷ j0J9@be6GvJ~Co RaUH.||Y6d3%vܓI% BOXȽdߏv0WHw 8zuv~>A uCkddEP/4q{$O! J q.6F6芟U(QB׭[1?qE*GvQ?RIu¬G]c׉&os${WV/9q''Iy{vZڂu'D+Q*̪/2cSհu ozf}3蒔 3[{jy>f>R°=|dzz(5Qޏl.Q$PNĝ!q[6-d|IS`@P*M^T.SSP|-)rIIk9\N &RոZ;__͛ Q25)\P%tgR19^l9SܿD3dKaHӵ^P)L0אUʿ%OnzPڣNڙ<=䠎wht,->ԾytI@s\\%}/,U$G)^id?VWbf/ЁC{X4el"ZӘg& \*T*&;WGZsk8]Rz8Ȉ}Zd37n ʯ-=ySӓdUT쫹cJ2iN|zS^jWfC%be8tZ5R8Aϼ#7Vnw&\U$~ԄRo@oSsAaB!t9 li-&[nꖔXuxTZJA!UH@5Υ„y(⌖LnLSdx<0/ gCQ8)Vi/_fW"}5nyQ# Dd[;J m׻g@mg-v;x汻+}rp!XRd*hӼ z!EF[,K]3H(+4 .4y02H,,-I ؇蒺i0B%.8ǫCя†^W~o;$=zmd8Pmz6&tuٲ483b`8IXjC|(!O_%t> b?$<~~${VhA~n^:M3Զo!^Ԡ-9eۑOHwF  rԐr.8:PNY^ZcXTT23Sje5|4D9{ $;e(81e]'()fw0VWFܤd(k'mw+S+X9IςjѶ9XI3(DqDМhuU+֜OJ(~1@QZC)loTΙ P sS~"3jnlw(EBJ'I&| vD{Ӏ+Rń~#rDfd&39ce4j%Z#7Pxok7pŭDlުDOslMSoc]'eOCz|LQ푨h$z<'=LH/_2E@K\j}H@}lh_P{tO'ؚ޿ײ4';S2Q}Ӭ&!y!7WgKT%9Wmn@ )P)~mZ q-YᵀՁ~~Grp3ez;-{7VSpl|ߡ WK1&Mv1+H0|Emsf¹ilO)&yw9=u`h˒ՌƚqǑЮC3v#|ѩ(jXR2} 8#9AAgvᮃiݷĩ<ʀ=d?Þ1 LNCv}Cp*7W`W-&r r_ 1$U| E8=cwyE8eBTJ&p-f%2XiL@)86wد=aE395Bz.Kʹ^!JS!՝3Wt P}pcY\o@)X3VaHl'5ΛF& ȁ\"@]TD| 5man{3PܔWNȑ3DF8 qYSO<}n9 PKwC1nLRw:;$nuvola/128x128/mimetypes/soffice.pngUT R`APQux E 4T?>ce,=1K˜HЮk-,3c2HBQ)&V01ιsϽuuq_gN9M9 O|;dȞ*>Ia&k+ ;. A>#軞% G5`۰N}WD"d r$ f :)ķU920x+k'&J`SZ9u> K|4aY(-'fabh0u4hMS 6'Zm|S"Hd2e}쭈dZ{vId=ztœי1 uL&d'w͎kLmaxb( 3#-\T&QU`0!Iࠁ >%؛Bu cĖuTjZ-{WQJB*J`p'wC\lM@xVzk8lXyyn1D:70P_He܈TrXY ?]1 #]Ut|Ĉ;IZjj@ե @:..͍ߤWMIU8==/?3eiQ=uλ_b88J@ x1鉉;uL2%źu(ElqP?:~Ig珟,z02AF^^(sUOw%an|o{'~y(*\Ay^I h9)}u4vϕ^Rp'YGH*'q%1;aIN{MȐOyA;uQRU#%sjhZ[> !yH!ĐiԸ9O; s0v-!r،I]uYᅲ]{i<09rAv1E4gC#nW_ؕGM +*n3ɡOU2J&Xdޯ < } \k 1msy9` kg5./XC[sW.[?ǯ=!T=uTRM?.^i%,h iziQzЛUc6vKRde5ʌb?%- ƢM`J~KYA5 91m6_M:`?z>NQƖD~J#~!̤Jl>55 *{xXgS[^BbIj7~ ]V`>zVEu{Boy RER kOA]=J`|z(nkNy3jIexR#~˟Rðj9Xsّ^@E ؆$:+|~ ߵ+<`^l, xl'M _@YI t]:g0'Es@6.$05FNKo9X`oΜDb%ơ·kϠlP 㪗¦=LP̊mlo5 &@7ZO^F8dt!+h %$Y|M_6 gbvAv#bU F5#+Oc ש5~lNJ63QcM`l[K1l\+xq`el#OVE~UQ\{FaFn>#;ג^MQ~Nr#ɮFRkdEҝ'$CoeQ͞k$ic;{7^T*)7]2̝EX+5&>ܭ<!Q=پy}߲Xb"@eálfĆ1V, Z;pk,S&Sjf+)NrG˳h4a:8y\!Sc`6 ݋Usr8A(B`BbѼ1Bo!iK o'+e`.L8+sE`u\zn$ qZ2RRgQ6k3Ÿ3JY?84MZ DET2ŞbȐ7Zfih.9ӌK ƁyϿhŋM(hNWX~Sys󉤂 sk18A3<3iWzV_s*;ʃhG%+EJu~A6oz`}hCݖT07aG@A 8C2 ˌ^ scqeΚ*w kDq<_hjJΌ!4̠3k:U-|dIRV|260Un[ {OG*PFzN5la [-e'W9H\M P1EG,k` I2H >K *0`fD q@[NV {АA/Z w/]Wjp<s 4 LBPZW9|@^RJWzk( tUdzSvN7:ZĕlqA]Z gfHE ZF4=gr8}9'.cH-c\mCOaQcs|W`ΫFLW0Nw˹)MLpoZ}9FP/''%}k~> mXC۴Ur+"# -:cKx6U:yX4gpZO5p,qPږ3ֺzd0p*ֈ"B^D0% ?AsCaݵ-3"#hQ⭯Ulo7mS0/a~ar 䥆@;p^1ZQGjc#UeBʖ@<*DiFPgZ8I ag$lYB`>9Zrb )ls;X"%8_"MnFEvq?nڲA!A}Ůyl,4|t4!cƀ+7cIP/2&aFx Yr͸oAu]p0%ǔ{ nV,*zAz7%I]G KqjR"9p}3ײ)r#ly#k{xXH_zP'q%GD+dp_}VY9؂V1dpd֔ؑZCY^" MTS=cA_$Aj^$L~lq`ьY;MfggowRy ?J>W[w2FZHp_?H?}R = E:+h΅"gȍ->Sb &aY [@I3 vwj% }f>@|tr QE<@䑃H"@9B߄4\TW-cI'bܶPoڶMqXkdAys;$ȳOJf4!3i^'JJ6Ŗ.q&Wz6NO83\ g8sz=lR!-t/4lt* m6mC+o8gP*^P[}_D<>)iUҜThdz{UKk!?bZ?G->TXhǚi~oTٌ9|W' n9ֈqawշ- {|m*TF}^->D3_q9vU_%ߥV~k'gYb{rI}&S!IbeZꩠ={Ϧ b#w# 87Ǚf7nTb-ĚH!A9EOU F&P'^'Ma^uTi}̓^`'}8䶂bqnG 1oغ&nIЮ^?{dn  W9чH׆ DpzŰY?L)JI yhj ႽnBPW@N]20׃%IF0y;z}* DpE[2y UO/R8cdzvka-&K\ICC$U7ZR>54**^"csHMf'3)sn{l":*Szh#Y.C*cck1꘹ޟYg \~‚p.3x|UˊS_Py%~\H`,.8ׄÑsstTx$F.bLBi"[FU^-Gq$n,zb NK }"{'Xhh FZ1 .9cv5IN2ꡊӚEd]-ؙYQ-F2W4'9p/P2h\$fb*Gda]Bh< Pcl󑈟O*SLv3Y``[C*p1 nc:]`Rd(|aXklp7E"E˝-z9E*㍌! ^ˏr  hۃl,9 YkV^S+ߎ UAJCA$>ELoOw؜\o9]ׁ'lR #}HѼǯ1z=:S,l9L$]R'M02Cאreaeau5-$^q#- 2O`@MT`ΦYU9K1bJ`X0&#ma ڛ |caV~JB&rĚ=8C( 6jq뚋kj=:Z8ѓKm]Ë*=gUA3GCmw-8RlEBAMxe򇛣pz-(?WdXfhТ] 77]t;kHdQbD;<ǂwk>M'jh%7K*,t.SS76r۷%8kL">uO]ں6#z*oȽFddeF*jW.jQ96ԶӇU[~% MՒ{y wԘ_uݩ:z(ro_iW;nnktKxPf08;.^/6bH1mvV@?{NK9Fኇ:yޯ5^?jrXht3.'MHYnC#?MVjj?ng8'!@5ɥ'O^7r8Ώ( k3l8qEEN3 0:"A︋AIu5xwL5'6gA0B_tq. ڑZEE2tp(O;t_/ FIk,&{>,pP$w䜖Ժ*t:N ]OO6E(uOĶS>^5)m*~EF1 U܊uoE}1󸫫iȶ+hV[] Gpl.uNUR/mZfh[Q'ک*tJxvRD_FAqSj=K\rz/xW)m}#)!%iy< 4FF&6Hh ZR6'KYz iuVI-|VIc:{6I|_=DJDbzpMQQ [_$N$J_Ogsu#k/VUBV2CrXNA^v;l2slOqyT $D[m_sTyVX XTF 0z<e<*xc.5qVү.qou3.`'1f~ўLb<ⱔ,xOI ip;]s>5 0RfXX,l ){f'i!IC 6ނgX˟Ks$1d &8jCԮ_a5o;}>`-Y>@ԆkALK&HFbE2>M^a@"p* )0Oގ'+$GuPTbV8 J^{PWV~H HW~;NݡpY C@|mm3mN`Ļ yajG_xa#[yERR莊ad~4r\6EO,6s'k&a S#:^nJJ-Z<`>e:$nwct?+cݎEXvY1mSn4,?yvZ;>n¨mےS~3#ǞsB+-nKG3:lz!ێOZ?ܼ/,}4Ft'2ۨ`2cJP3OISz7iM{oƆs{Z2,UU}o۳pwiBbF"Z}֯m|GsM_*t~H9Xⴄ-EjJ%H$M^ \J&\%9 [cP4ʯ֠8ny01}o(f&V^'ur?֗{>[A.o^:yN@>e  g/-lfQwЇ>!NۥDՀ^ܪoϳA+ħR}Aog3._ư5@;)ޠ" }0mW%gqۛ,HQ\%bbVx ܌FZQ˧F?/DhڂQ>zǍhn9oν=ЈR3rS}z2V?߶%'Ys->ɸ+U+{w{rB ηB6~E}.Le%vEt{[DP[8vr^w de.1믏Jn-f@Oߴp4秎%RO[^$҆n+2=dӳYך]eOe* i/U|yl>tLnؾ<c֒LUu `ZaoEzN"vrC" GB9g|1!Xz adiu1ګ9\` ǹT`+ly\pl*=cلAl=ؽfA6ܫMo r?@}PZ*6G:މx}8cZUU`1U}~Se%eÜ69Qh|O̚wq?s 4ʛt%B*ܭBUulPoF1ʀ!h\#s$S1sh[eBy  G À3G+6PIfBka$z@|;b}P\M_ q;sn{M#2*fj=ټgH)SJZ;j;,KXCT^=H1`2myZ wx8}Q`y.,TWW#+mΫ@t( IlrU̔5cfT,FqpRߗx%hMhH)"rGZ#ÍH6$+R>А}/o`攃d$/,^L~ &!/z2>vk>HȆK<6)%WumJCb;yuWyvD9P0*|E#vvzJ^$lz<56ҷwitP5܌0GZ[86>zsué;AxY,4Lד?ɥq-C3A,LAidu /nj!S~AjԤL4|D`֐ERE2rR)2XM㿇ƊGO/tV_9!} }fN#֋HvCw//.}Zbs;|Nj y2q}ڡs嚐| ybsH)V޷.E2\:➺ݭM{ *X wM.,]Is|H0^ݼ]g7|.snI鉧έύ5jE.=TU!q7U;?k֌gD=dTUgUG"7#%Ĉ:Stm# ГyZe RO`n__>W~kdEY0N6GΩkr9PtY<D2$0dJ~YͿI"9O2aq21u0 csˁa07K")>=TJҿ&Ւ,ls'~+\pB jBPy"@5x"5~):)W~u!oOKdȖj0'dT16l4@)0S/x].'zph[ 9sT(IyY/$C}%"Wkʈ `xnх E5 |P/o27Cb\ӂ&65oyXP-)ʖ>`͜*~+E{ kVm89K6V ~YYY/hPVuUaオu6P# HY]WS'21#@˟Ya,7^N|)܊`>HYR!DAP#)dON~]<8XU5 =խ Vo-RMk AHJEZadwcZ{C ';Ø_-E@%?QLpĝ4J13[jiHvT~1opÍJ4c`lc [}T )IT>ѐW˚76qȸ=O)x.w-=L1P\h5xԀhQ\NqJ$~*2_2o#N$:@)0PR}_I IzOp}/DCy<)&{iy6A[WRKЏTdL4Cj~6s gCWvZ_Ջ? Pa߳``ui_g{(փU8ŧױ]pfZBZjԗBZr s}˒dJmLk'Pa9ӂ-Ϩ,X%* ꊚ/iĦ)-~&|ZzCeK |p4-j{K\*݀H1=b%(tWPfQ:N0#'.5S;cN1O=)ht±axI8~tVX>c!Լ0$g-!ǒB-v]hEy}&gns]uDE*]NZޜRt9Ω_L;9q$S+k%@07|xl@䰳_YqӜCl0)JiqdG$^8܆CUO.8GBVVf)8Doh5w}Z@Nh0䝨d1.r _1Y%@:ݠ{aPUeQ*hzcG)"zESlή&`?xeq6ea\v.'| 6d !0`g )#H^<[ͭIWp%et t7AMo[n3gx=R 1F™JƁHz W5󆃴mÑH+dQzu`*0nW`twv0 {kS`Psq)Ƭoo^%u$Wb~Bz&4bȽUeh O썷V ?`.j~9vJ ?WVodA?62bXgpyXY|uv@BB%N"rYύUl,՟C^l a AL}0H4Lj)I!^{fQo #nQRm̵~]ETݹDGE{Fm?T(tGE"gZ:ȃeqtT,zx%0w+baee/MêI)FۿBMm+gvNVp30ǜ`Wnե]@F6])+ԅ?K]y~%p6GaS~0 IrE}F{Ǿ(`iOokWq(XW7U]؟`}_>/cv- [5Du!kY@zPY9xa.z<:mT5X\'Vg[}5*PbcnUr$_ `ipn?5alܐC=^B0F n61m8 Gp~Mnjyoϊ )Gאx闾3&#LXj8η;o1 < %\.OhsF6lY.$XrHJR+|E|7+{ ھ~z)Ʉmd[ZajP[/4 1iFj ډ|Brj8R+dׄ4]퇢ZT)i0Fmt[ƹuLn۪cb@B$h'5rH,:vzxk}&~cUm&X @  &_L$fNy=ߡNgd36WsN֡ؾ1ɇT^34sCQ/45cz88CO}=9*jXrLLİKrz>4Ő)YD7]oLF9tyS[hPG&1E Wvvkv"XiFm+-GhxU2:2&;X?Ct'PW}L&eDSơb9^"3[6;v/1M9xɡXj!hhk5&SE}EԆGտf1m`ww$|_;If"i~@3j =CZz| ~v2NY`.qj/v;py?t]B$=Cb%ʻ8;F'޴Qe.vˁ005XI61I`g[}ZG6y3; }Np%z21KYT54翎)-m]5;W8Dhd?T8ܮUb4[&+f*Bfd03ބq?H BA2L޺~cSlhտV1;,X٧;;ij̵/%R"*N~mUᡆO.(#n{ ԏFljaL%~/[ח^RfhG099ɕNhR2ƹgSvwNPNRu]NN#DR&rvWDHcy2~3nw˖-@ Ͻ{&J?Ӎj.=u/i>b t^+|uۂvYRiD5nj{ƣqwpRB=&`+zRbOئ]HOg[D-Jz]_ 2sPO!^lVڍhIUþH).DG!k>D%Y KRK{IXHґgڗمk$M!N&;\@hL]aMv۹AҼ4cw+w賮_t[}8kӤ*=90uӓPKsC1ϰݨI)=*"nuvola/128x128/mimetypes/sound.pngUT J`APQux -Z ThO '^Hn2SVl'~m觬w4ɖL~&POY[IKɑ$Yļ ThEk岲5,L$OOvAj'SOcL`cOW995'!ys3mr߀' a| >߼y/7ePszW׆W7׸mLҖe şp1WBI|_\w*w0%㺫,Yy;2oK.{( VLy-#?' }F+WF8ܑɟzc%;)ivf}_o˻@##H#EԜg_Tt 13Ƥ|d:%VƕJݏǽU!3H_A Iks)kƮSxEqw~fxø >B9 6]::I'P²U p1hɖ0NW1S<_L11S~;bf5뀈/K}!1dK<e[k7l.E o$hy~ғDO\ p7t4e?7j(~)ō95B22Kk%?| Sh!rhAγƼDi)2kNVpd"`d>9LTh*:do~|id C]PL9?#OT6&կ{V$Fo4|㎖pHYVv8@3 "RgKTr`š]T`'`Rp\u @F`@ho^RF~Lywʅ]=Bӏ[G7&bed]bɏivueiAHV"f㤒< qQA0sNke8/}/;;C;v#pj fsIy rͤv 2/u7LS`'?mH ΚW{;*sCRdo'M̾A_@ IPΣ*1rt+TW]'W0佈nx.pdb-Cc`٢~nyUSX3\-PT'.q;̛ƋKeq rxz IuavGĎ.X8X{XL}"LIVJŠW`ѵN{%ES/U;Wz :N/Qa۲6Tղ:pUg˥aO@&ֆ:>1q5rd?57G &ZeV.; T ^.pH;q }*x~2џ[kqcB^sX]U&5#Zow'(#&H&ؿ"%(pǫ ~H 9cdI#]1?i¥Tz4i,F-@<3%~;Eϗ:DC BeXw7$::"{SСpNC|:[vHôA|/eH&ʾtaZ1+Ծ7ܵS T1o ja5g,wmIMA?ڜϜ _&>3 h݇r9/ȶ4'Jիkc1=T{ k/*rb'_wq#L|x8gwLؖyRkYog_^dt+:"W0_~7{3z-q%ħi?~Tx571[Щc ;ˢ լ)>es24ĶH& z"uoA6BBh#bawYl`ܹ>NE|r,=Į],,_e^~ύy+"v,) K焣}w00%M k}a"zEVdl|XjQl+vTh%2Q?y|L\,˰b,1\IKIx4O{NWj V9Z \x 9 \I[T耭= @T}b~-3"'zxjԆ>FJ֕赠)4lpH#\VfJ-ny4{ $,a#`[/L ;Q"9f^cDisহ)%5.nT@P@~oiS >1#2bhrmFbyH}B+9@E0YHV=u:'uš7Dvs.TTcRRT4{"NNL ~^\HK K_'V<0%Bmvυpp0*Nj#Ѷ6GV>h@0ά W{^e$X+o(!eXr=Irӳ:6Rh)O42;2.+( l̙ɍοv)ŭ@Ɉ`쐂mr}b{Z}>s)֛߶=/%U4g޼J[]_`d! myH1BKţM/Q.;ZgC7C'Ǎy-x2'"Y##Szׇke-U= (?;v*>;\ٲl"m1 ۸h-9T?KWԥmxaA34m%W+<9wao,a{SE[~8z~0ԮU&~Px ./N̲RхbGHf0 >bb`zK{MİLwGe i y⡗qP؂[*dѭ +j6ejurxʚ r%%iwC$έ !w,Zp3_qz,FfH'^qߪ$K6ن?πM pa{i⾏t_eRH^Uןs$%PAd'6茶ȘG iNHAx$G+9ll"8藼Hf'?Bs"B滘OK20⹳©=ޖ)2- RhHL+kIHPlwCGБAJw-,LwUmq~x9a Z7AmYJSecYO܍& (u/jX2&MMn4},pͱ]g;@¦ceᥤLLVLUQ\y.U6;{,8><b1u1hUVsq6.jn6u 14^ߔcBA$tPy3}5Z cs/ ƊӬKrXYl5_\g3l6R׬E-|rmH5&-[U5`:%TOe<"3w.I^ X'Zjr5&3NԿWCwYoœM&H&r"H '} [~b"x/ƕ.G48q^Bp\Lz:E I,4al Jw8'U"*(nދRúE n} 4]V@#4R:M 팖A뢕`*@Xў+_]^V"$>]uVAi.:)yRPJ>5 wXog{B'MeeVIu*v#~|ASr J=>. Et_h;@\DeOCh㿍z(@ov: Ȋsp˟r>r!>sa1OhFHd-rpdrRKmwҖK-4s]p6H_]u~ ^M;+ףSR7A+m B9wlrk !%ߕpu$r/2n ?~FVhVZtЇyYM|;}P!P- 8*B5?%5d׋4Nj3j,dgˀxݺ\Ķ:DE^ԪN:lRBߏ>sȴEʚ Fe+|1Ea>SMMgjm7,!U e0ۚ2i?8ڃѼrUحcE0٣Z,T)}iܼ#Ĺ{$KԬO6qe3COw>%Sd/DBn/XFҮK<q+^ ( 8/rY)y˗UhÄ.|xRM=,Mng7ЗLEB[[ di[K'dMtq)DrTrȎJa0Dt7 61e dZfEG{izrh>ҲP#.9@~)™)B-jM~Y %sZTԲ _1suqPoqp8(ܟu쾶-u'f-X2W㉙ڮTωm^{Oin$grbXQ1@H亊fztrb ;4*$IQsbl fwrwaқsRl<d}?"E <"p&"w6 vdq?P:_z^nޑ"SJ[Ąk9 $9P?& ?:F}E^OmX .@]1V PF^ƊݫmUb_41a ~/d.;HzdHKpVH.\/HEȏ}y4B#S16;SiJ{a!#_(rdcяywivvUU45>r\<+F47_KPTaiy6zoKk%#:sįɐ-Δ&ՍSU;#,88tnnS DCD;'d?./~C*a>z4ԞP *J^w>F@Xi7&v}2#JGl r̉I!n`;.CԜGH8 !AJY)wW?.,/&E޾ݰℼ:+h[^~t f©.㞣ּB~u}CVY =-w),;`\sONmS2{+5Sڡnヅ3Z w#aU' –RƲg`b JV^/岊m}/O㢼}|Eokb}A_}5FͿS)lxB0*]Rn׸##D!vM U>_<'fM$4?׬]_ xMݨY ێrc|~>%S䠌$,Z'׈aͽbh[atfc|HDݯ:jw)aq4ÒP0-"*_9 :,pڛMO1gBdK']pEd0y䣛I+!_/{r9jWs"` leT>çD{Y:Ѫ#ъٱ&B2aHXr0kfOPKoC16-;O<#nuvola/128x128/mimetypes/source.pngUT B`APQux -{ 8TŌe.X%fJRd/c'lؒDLIIQ"KȖ-|}99}}z?$[Y nnft$c\{ 7<^vk2,Ìì"]C=G'<󒧫Ǎpzo5v`ɢ 1ׄB/pә Ą)1>3זJ ʼn]ͨB(9:H?NtF*r!p{F=I 1uҁ/iKf-'H1 I"\]AREz"'s1GςfL ŋء 䝤fS?sԮav/ {"Nm{ʼnٓR,EjQZ&{Bq@FU--p/sN03ͩJJKt8qmkE 'y @đ1ܻ(fw۾5Id!]f;e\Y%څ'W53a9,OڤX)v#:|Jx%Man")DSa'LN5r| ı9Ƹ}zb$|j7%+]"&x{'PµcJn@..p=󾨛[ƌfOAZ\J3y8eK} qE%KB{$^eǓ@|^#w-۹S8cHH_zB LwGQpSݤfaS{A9 8gSM687 = ; ֗NG!v<{cÃ'm뎉'A$IC h{0JwN3;[he⭬2[HA|>?3,  6bD57OJENAnq&D{Ebw/>3a8=#!p90 a"R|LLLZUrXbn u|kH3~Ҩ9FbzbyBV:N9|@IxX5/WqNߙ{!V4`&3]p X0i\ɒ*Ϗ#Š[{'N:م2'|9JTqCXGl3Lf}b0f%:6 p}vd ʁzfK\vcGNn uGME^65O+/5>.5r;zZ+b2)Zw x[¯to FwyG9 llJ; cy<Wz/golQ-O}>1:~խP=Rʵ0Nevg׻&e?\/#t!n5rW??dԁAF_[!Q8: #l4L=F6jl<7̬.oT XAɡݺVeR2RTx ʰ73bi_YlXI\ra ݉\Sy0ߛ}7jfʠs . 8Npė3L|}Yy@-ZLnc:G*ݒN/3ɪ`" :R_MC}fw: '#vl_h^Ċ@'\=P:"Z7Ԇެشˀ@=q`Z^7( x_YPZ\yE^e꺝_2>g9' z An٤Zek@56 [% ſ0? h1M46gF& &-3?Umgɋx#.Ǥߦ>`KxmL@3?Z-fo˫ q_#v&"֙Zs Wd= $ZRj87 ص U>Uۖ:P{A!M2>AkU@2W!cY[͑AP50 6GW|?Sʜvs{ *_RX$`Bd=DDO槃ރ75v&!:$yNW׀ w? y6da \d"R(f+'tF fE(HriS;֞!UZGh*S#ao?.n7H3K9{*r?;|,o\qgbzePM[^£yHj4%o9F@y[ORS'{g) #\q σDT i-R/=)S};rU ǙZ$%5UxD[Abދ;]r`}ٓ;mm+@)~*& {J%*(n|0m*V_HkQenc >BQЬ4=PMAΣ8.TC5~,E 'W];qv'J?l9)ڦI|2}+#.MVK:7#`٭C.rdW)j}5"lQȈyY`ѩEΪGGOADFsg4T+8EVvhFB"^:XYZv19dl#!_@& C?WĶ9~rЮԓQQg}>hv3Das#PjLO,#7Jy Z'Ȗ]SSLc9Y+a8֠HSAM4Z?gHF7rx$og8i ;rօ=9I,8)h}b2ނ #/0@QA+:EGi3n9oaB=Qwϛ(㓙!v)Ix?LЫhl탷Խ7,-9>Tt_+tjLmtPbǗ xkj !)lb|gTj]L?[#5'PǨF7T ԓM;?<0 N2}ɡ|"I7*EY]H=fmza>_kqaM 89_,H$ ߙZ(1C [&\Z\" <$];/AP`1@_}` +cacL&s3akY;ETkܗ x?xp Ի< sE X|(]uj3-#aR~5?l'W9"u a_~ ȶ |8~Eg~Ѣ횓f?v1֘+Yi Ux]$]}cj{*AV>(&S ök|Wov_8Q̔W~a bd9fGPa.A_ˆy9'X~iٗ3yQzz3SV~<%|5ܳ:o:v{ )x\gLٚmQ>Sxr,iMyJt~+F.T*홯"޹0etuF-T}ˡ+[LOc nevr[ZI]+K 9-dYk87nt;9z"0aR rcx_ž#&D_csM;ܢV?սza:{䞉!,Z\xVr!%\aEWcV/hQKwFgp|-,ƈ&_^1σxg3Xo>1/͗飯q,]՜צkR7[*InT͉SNj^g$~ÌdċSť!¥F}sԠҗN>I3[]TE^*6C=@%\ Ɍ;E22 xɉ뉼4]#߮si=Xb ((l/&/OKQOa(jZE鞕2!pĸ߅`qB7 8Eە6<&{;O`NpL-mp  k{*J wgᒊ2=0#"CM60|9 A+w&&1QYGXªH=-66BZ)kMn@^j㣸eVˇ?Fyb8k YkwY1/P>o1qk P N@T,;DҌYXX>{o:82#;LL`QaShNŽ- ԑ׾Bi\+ĈUn\7'J 7 k3!6H4[EhhWYY12fdY<pmK# +♦m+I8ڶH*#逑>RQ#vUi& ߞ%K9wMIllUQDۯH#]k7W۝g]Zm>3F`Ǽr005Ҽ1QV.:(6/#~4|~-G.ǪL_7(º:WݟBp:Ð"!*:nKwD_[WR‹T a=ki5-B?ХQ)uLV0~MkOoP≝H[{o4oxE[9a`ktׂnES=w"U9+R*Mӭ[(W>bWeSn ,hݭU;u8-_[Ci1,ѿ& >>P!Dhh9&E9iz kS+S\8ܹWGj7>L}8?~/ *>P< \/9`\ؐFE;#5k&etU0?Xy}ׄNθMqX*)\6/Y~uCK}lO%>>pj&i[odyL5-wFdd{b4עYl1=u1>\oM6( r/\!rl-EX kN>=u[[v\vj^"yV׭kH˞Sƒ.9SzNڹ;5$YfNB<}q+TpEUj`{)I5M*[ =UU@)Tţjhwbꮐ de*ZY/TۻLQsnWOHEVbeى桡WIœgQ$uYyyp,.=of\?dAڰ> ^Rb+@@J'>zƧR |=ZɦXYnm sœt~+͍<+{^59ꊣ#-U(ףE>Snq^ #} 8R TRÅ:$_KDu`g%UoD53 d'g厺}ͬD _O'0q~YWob{ڣ-@D z68k]vgvquDL22~DUU{As.J&3Jq*fa"1m+v_π@xQ% yevpPi_ vуSc@֛rpd,sp)˧֬6M Fu.-.Wt[Ѡ,gchr0%/ Vd4=@Yq8tVK&g)VNrʟ}ݞaRKE4&*\Bkx+u OX .?d{Jh#Sh/ c8Ef;K{p(B`\m=RSXM-  s+zE#$ugMU \ ^ 0#u<8:֖|ah&..!.Z%:p"hy沾s4,`|F-"b'T̥ %վ |)IqCcYl)\eKȰ*1|r"Gw&jxiUh֓ck{[a*b>~yRFF$*t[)e?0OIchg;Meþ_t;?:rn8Sr2`t1DPSW4~}DU,4Rku 3Ui@b&qrR^myT:ٲ8G=TLI˾ڦLvWb0 /n{p\xw35W *TCYEm(Svwܬ{BJM/t"Q{{$1.>l0lpc!P EWI-w~ŕA'PcxJ Z;S[]*~+ܧ<S^aTUsЋkrM _;cc;PE} Aٿ4< bX:Y_/NT ͢ jѨS/s/#GW#cjK6׭u|H3vI reg^ $Ǒ@06{%vw?[U9Rz\e'2(Л:e[Ѣ6L7;mtS ~|@dO3.3ŁL|r섛"(&wwL\ڥWԯŮ*ypNvngnL Е 2WO5?#6DbY>bЪ`]iܚ_N#.`V֋X˲?hRxT [?ʡ/#IJarP$S'oo@[jm0+(KUx{[ByRMK1ըjPZzܞ+xB!Ņ"ժ ^.(X lK?uM2Kk-%U02g%WV YzP]ED 4Y^\_DvMOe:U8C TJtVVXږ|3~G qѳ@a0"vU͙^݋!ϙTR5 Uj2#6( :3.ݶ%,j+Tȹסn*`xbɣ_pOl:5!jܔG_`JJԏ&l#G"C.H)[&FMt?m+5_޷f} a$+Q:r&>wa1:S̷vXһjPhjd6)l;wL>RɨgY[<&/R #ǷGJ.HbWlɁ g~f@IoH/ƙgn2KOVsDjH'w ;?CRYxVVJxRo_ 2Rreבa!rK)=js)η q>< * Ws\"/dpg0z튷vtǻ /]޽'Ux#P?;ɰe`j`R耔̍HH$(4G 9f]!"IL;:vwax_"znb)>B $8Cd^UnKhyl~J?V~T>uN8ߔ.cϿG/]>/j:wȱYsFA1nPWLbv#^@yAHQ_e4pW,^} &lmpGn&֯9 ?kE?a֒Lѯޕz Sn&u*wo RI윮Gh 9'0#5zm44& ZBQ\2N<6 eyyN~u\8PqkR}jD )`1Ks-T ĚŨOC)n] .8z)Ѓw?vlxddW_iUoQdB#תnv %.T8i :haϊ7t[kU a4q. ҄#vX "vOW\7X]VXH~Ƙa=_UO6S7=nuz-FǺ"WM?] 1S(Ryo(CivvTR^2;[k[s SBlo"^?3lP}98V׾H}RC=(~ܑDhU^KS<5dsuK9&)y%ANkZL>W?wWI.>b E:^U*huw ȷPHo燲ʼn4RF[ƔgssSW𗱤KqV4vȅXmOF8zJq2@5x7]6^I]C;Y)zeJlA~cpe}av^mmW; =⏸T:mzyw38*7| 4n5EuGoָU)AV'!aG~"`K7nP'읤Sg Ԫ^|6ٷ+v"c@"6$6 Y͢J_oi/]]qh\q^.|jn#-% SecX9M*#f~%庙:Mq2/!\O*] _bj Qh_-컨^u<~ǟrI\wALV nE83UV(텣u#@~ U&O', "TL`,ᙞ5x,E2ݏ#Mm̪\5ZA98|Y'sXux2k^2“hE^ʪpC%iȽ~?+yz-Lv+v{X a( ظ~=~jfB/L3(gJ HQ~P7AVi% rM𠶆{8Ƕr Nfz~Ư77zv%)>$ ɦw\`r[П:ANte-{8o؁~Eh=DO/ӗ?|mSG0ppx1^ fj5 e ɞ)r O7>rOȍqtadG ^ҒnQ5Iu鼷%;TgeZP"GAGs/z YɮN0*S h"uYKR8ŪU,{wy /=0ο{;pnsȤsg ֗\&oȚja ;#/LwbQ~oYRg xFpk%_='xeBu\]X=9*}zYR>4RsZf˲I)"Xz3}YV}TtzT0.4~]hs;qMI&dA)\*h{;cy m-7{ʐ)_35.o bjPF!Qpm`: q% W =)hLTSY1|plb )wWȡjFNX fP{? LSmMA?wc=b}wgcR /Vi3o+5F#!ՅVqDiiL޶Q}K~~ڀ'+wN $=xy6(G0HsqBԪ ooҒ57ǩ6ljPӋ&ȩ_^u'`MtB`kRoiEBxy?^ 4؝Ka8:l!Qz-.e 0c~r$=I}"O@I#nT b"Ӧ[ AQaެa#:*9rYcNٳ/bMՕ0qQaTt#aP,"a}yDv6ӟ_CO IZ4ɆS]ؐWN T⻞Q,:tV8G[;>~&=iwem$%`}#&D a@ONK@EϝlW1F=j&)D}wʌ)`XKv,Pe_n{imnPXwle6>jٞ誚ه$ǷdN\F @Q,Ă-รт R|*vreYߴ` {}rfrIƪoq?I|i>ߚZALrIjNVUF%*ߜ5.{&Jx|lw˲'C KV7a.):f%8yw~Egߤi fi:"tkRyQ-낡?%dTqDM}p욫0wL5f(:>K'1MSߞ1^I!#/IP-ܢ E˓i 9D:!Z聝K <;KwI] yqsmh k(u Q? f So!%h(QDLO^ Z1)&CG@1,5ʏ!şy凋%#s}q@UV/,l[d}E 3yPJD%B}qa> Q>be0wSSP71lC?4b 4XK7 ?Lf,'0f9ƖFPKjC1Nۼ+,%nuvola/128x128/mimetypes/source_c.pngUT 8`APQux ezyaf-͔ ۣ< >m0qn? $!`cvKcc;Η!Sd;rj=Cޛx5p+)IObe0)[9l[ΊovQٛyIw#3gކu%Dep/_ NwXN".jDž U9:uOHmE0YEgy(I+&_ wsuL$I("WTW&Gv(їj z4YYTZ*K;Q{gB;AIJTIii(ȩSg)oްwhJȾo㖄*Hy@` }Z^|DXW??]..J!XP4žg`߰}ٔӠv_֞Pj$O%@1c0Wp7\:ٚ;I7q~>uM(Dfv!4iwFDS /nDևHORV]`82E7#ˠw =qrjA`F[lְ^B6W>#"e1mϤ>ۏ4Cw 2 ˕\iX 3í#[?Y} sů$נxQ :N?6Wq[U_؎ř\Z~Ɖ/T /!8oX?;(3S)tȤ@9`XK Z)&h_k7VЉʥvuז6j8~L~pʱmf& }ΌvBY:8<=u6%l5 h4wZ|eH h^}tım~O<# ٞPsԄŎODs33s3'(aa>IAϱ?@%[d)*u;NX7"6ގLEBYM ?i1/^@qC$,cA)Gmky>4v#44E} #BGf8rZA9薘hA3 hH]N ӱńYs7 ۦ#l["X8?>*VӔ&$@~]Hgt460"2  j?W!)6+҃-^a ٙ 2ΝRcz$JW:J#4L?+\7i> *fA^^[ R|qvؽVYy*;4$婩|ͤ)r|D??%p@b:!X&uqtT%b<rdFlFqŀBՋE%Tv37hG=&B]GR5hQ!˺F2A>bPEg d + ՏmfcUS/bXۢȭg@Ύ>+ qڡ%)drty$3iz"J]_WK>Sb̵cK )>!k5<;i(8Π-]IT#x{lщŞ<UO+~&~y_:2X}8-DcsMC4֌Cnn.}B6 EB7(^9]L4R]Vt3m|w87R 0 6wsc#CNB1v71+D(/"Y@WUr7 sV2 CA3寋K{EX u|\ZRa8UbvsLTuu+䝿pÞ׼=j~oYb >zԹ~pY׺pƐI1LP-}Q$ȄOߢ|-_{=7fÊT.ܺu2}I#'$r&OHx -.wr&q>9]°":Vb6SM;=p'%Z$˯,%Xm<m=$5nń݁4ȓ>i tƢ-{oDD X5 g=8/9n%\5t=M. R Yb[#Kuf7FxN@0a2\OB|$[mb_B\83c&" B뻒S,C5[{WE>*Ȍ $5:7sb0ogzېڮhώMGtFEqw8]Vn}\wi%K(+  4(k"gຣ84{P}Vv-ܮjʥ *W_שTɟ())ZxQ^S u7n8N1^7)bY|~reg⌃RJ-Y8km0RŌŝNwھ3}ҠR/<)įb!WL>S $)[yhj"sg0w}8b8z|ׇ~6 LT62㱎<ӝ<9y+[ƢCs1",q>]C|WG|V%IRԊ3_:!07Jxt"qW¥h<'WtG]S(UX f2Bǰ<5'es`kGR`+Ze8 憻C喳_~슺UÎQ0Ed j⃻P*nź"X Rp|9# ]0A6;@+ˡmLg `n ,'XaӮX6}ϑ6X>K.˾JF@>O,?S"{]>=Q* 9S;cZ,2^yw}3K=2t_ZBGޯМ/IIOB]&|<k&̕H)=|;(f|ڰa`[yG*6REGU|9|lz·znODV>o+ir04-q[">LVI=ZDϚ4-UXJDK-x脀?U((G0rnT+/L}#cfDPUCFVmJVAV6a(HARUhfPBS~ QB**$,^|AȻ 8_Fna=v ][3ܔuH.ΐ$}|M^-qJ$~6J 10 $]X l& BbaoKX<(+ }_V<0R&‰{s{BG||AHBXf&Zfɒl`@1MޙWS=[=}']N\Lt`gXMo}Ŕ.k.5ǿ͆(q;>v>!dj .@:-=EZdc)t du2ބr~1b+g N@bCW9Qh0`)O,='mԧc02a BTO+DqBO"&3.Ch:w-ysRU MxuUD?̤0!!f[D.i"JSN]U"輨;hX} Ȓ"*8V /^LGxfQ^ys /8BXpǺtĐu½QLai5aOpZ:\,qmEe,&#KU~H$Ek#,#(^;~p h yuF-)jP_=?;cu"<_)ty|U'ؼ\1$\AP#w*9Konm݅W+E1Nu!J8J6 J,$J̃BET́Z*fڂY6|d#ۑP,+.{e/T!K~ȣ|k^|54D_?8i?n˶`D n$f9o".TSK_\W>l1?PʌmA,s+s>_{@\@\ $=Ӎ/}l3//Avx `6L wX6llQxiD1'`\+GQDJbq0FnlRl\6OtB¸S|fB:;E:AȘsLH25Fy0YuJW  o6(af ?7uGDa<s[*} ^rêz~bVEy{RU< ?WGT:uhP/,=7Nt? 5r ͍\@F)|49vPB :uSMSik pn !ZFq#hHM6+m}Ojf"|s퓟mUѬ!cHX@Ytgt";nIV.iQ#tE5]>M;/9fֽB,X CAuVplIeYTcnI=RvMɞ>Y6&[J|<8bJͯaߧXXDW.:#liL 8kJCN!Nle<;.)z4yRB;:9ǡb!%+Ĕyz]RJjIC?m1]PGqu0/hf;hL)m]J =dߋxl|ǙM6BǠyc9ZlJc1$5lZy dvgZ΃Gj}g ~E`;2._ \,*xE5"RO<人4ʾWI! lhv{1QnY\RQo}p󓺥fO/]C?4orR.佺eYĺnu_C;bZG_gyHgAq4ׁ, Tkx&y?]N)S>DU٪$nܴ~LH2G7_MоĊno&Ѡa _@3sLThI2FҚVGG ςhZ)'nMv wO ޯ(\h{a;J/+P\ܝBӵ?b,O}fܖ}S=a}^s  ybIY')IY'[/,4/Rٱg&ݶy?|.ܸ7)d]6:#/L@ @])?205WmZ nl|K&McCwȵҀւj Gb< YT8#`8<.mՂHe^Y)18L؁O}X}@*=x&U,ı$⟮:40 F2l 9aMt%fZR|\U7`Oabeivx :SqM/|"K\`zS#`z wJ>~LV˷Gf^SpL=>S măY1Rv< X&q>eL,;}(]t(4ڱsreQe7v@>=M|!8Hj`3='5u g܊J':,"3xyY`# k+(998jZy;@? ϸiED1_,EvEs ë w$ŭșW)o/h0z܀6I 68 ^.aa=/" ?7H7">q<5m!;pfy8u#8ow/1,;q0^I؊+H80.]ڳf"reggmh<{F垮 _|pm):`Dh`U5+h[=R 9yAmx'1S,3> >vyvB m.p C򽄁6 4p42C*5.u||nP1)lտeZLV:8^},mH+-~7%\bAF~ |+3rBƆV/o8 h i: &y~ㆹFjYapO.ȚYW+y@b XprqS@&;h巺TⶶlwƇ;ɇclvJO>OrNTP_z̀3Hlp##3ǝ1fy ÿhȆӑ2׍z4^*f dL7<:H;j˝n[ƃ{˃v̡֕ʛGx޶`M8ǐ=m~AgVlEM<XpVg ߢ1tI|oR*GbI" ۿWz+/ ?}*G ܩSg#BUXQ)L# /}ʀؐ |ùtf3V 'gدnF M6,.RbŌ~t?/s,-ŢxyGTi8BC{+y\.4Q7޳n|vE&@2Ҹu[ AE霔|YǛ\`qdq0v_%tǐam~YD|:{VhR˗#p-B!H8t .rU>:쌻خ"߷D!RL2IGL6e%$CLnT #?h5.KeCK稉^F- P˃ 2ΟcW/5 7A R$ f-ptÿ*y p]r Bn]”i =>#l'UKU.9EÔ:y5gv8*@l5u@77~}+kwTUU9Æ3N|F:RS.ޘ ߚr,kCut1vmqsw}>Cŋ_`/z;rĄ9MM6@jauL{FW! 7@㷮g+'+ d q8.-X\ﵱ7NS Qs0ume2ewV(*;lUa 7074`Z"|G\ࢌ=}" };=JHq6 fثM ZPANP~B2,>Tr`Z'm#ݔWqWf?E1@ !$_`[S# \`/xvfrR ;G O`#DZ"pݾ0 ?l%-wC".'tJ`1U۝h4N0Ojb"r= ebXK6Kf6u^rJi i7lϏDp'E^$и ./lSm‹ i%4#cT"4cZ&ndPĄj+kob{zҋ/ H0{s}l:րWn"M=p%-4Џ"XKdbcD yoq_~y'{mr] `WhU&^tUVp j,J.};8^Qx8m(YtíS,@e|NLL RD<_-W kY$\Fac#[Y?"ԁ<;&cԿv4сyISndddh@G*jdõGȏ)#mqF»Y$\CZg ee5~rynO<_;1'@MY$.o;cj0,AuRHڕM.,B|'ZN=XbIۻpC8ynݽh5-g!@/@hMqbԿha|6yK3*E\ OD o#nM>"'P2l^OD@mQ|cO;b6ԓĬ䂂xP izSLJ,s Sss /zTT/tl\J@J33CAh[f4d`)@Wוcff*B+B5ey^qaiIAXTTXj׉d`yeh2AipC 0Ғ!!/u(p1á%RiD2YvfCf&&n! hg p(s' 0v#VKe{O5y>=攎CWW!!'.9٘W =1D:>TeJ"PXY6 ψY+kcpNN&^}n>ۇ;XfҞςB Yi;?"?p?]'_>}#9N3K4Y&F|{=a :_p+ϫbzPSPW,]Yt_Ph"53KE!/_G:;#''͐[3h4]Ĥ$pC!Q:E55]@ uĻڦnrU tDQoqqX:?aSwMH:h="db7}057#& 9t^5-W쨢ۄ*=~[m 7mxa k]psӫ i3[?br@p 㮭 r0jwA9b_⿡TKөܩ iI:Eq(jEO A e@Ῐ޾'iz7].΂јCΉO?mݧqݚ㤢C (%˗Y(׆%VMm 0ǨԨ}wyޟfV޹z9n[wLzqS'G̪ʎAQ;[EMlp7l% &3}ADSC ^f$\Z7TmV/u4E(k6Jn1hǀCMWR͛,S{=šL-(3G-dNyYori%H7~/'L?4jFßk2b "ABrBLo=K`~C;00t3yB7ro<=}> rHyckѲg3ݡ5XĩFQ~JO!kv~ Ԡ,G BigOr''P(RXjvw?LK.iD#n+b|w*^azv;,JοuH. 7K]8}V!W<~;&,^s7s)flr=`0yBm0|:ߌՊO<=~E700&{ hM)X V$@CWgG_,J8!qQlYõb㼬b(g I򑠍֥z' B`4 cDD): Eq+.s=c17N}|ٔ5iRǻd`,R8pG9{a{!ae*I1-h2 235vCͽ#F~ BB t}V}1UqWrm߭)U43AhҞ;U '8d|#Vdϛ5:賔o] +k2>8oMJMl$ 0: [G>PtVQ}1H)ڀW%/X>t:2n?@G @$ޅS^ 5+fߵ U6uNo֢ͮ(u&jʙ.Wr?sT` {hyp]f+_k!C s5];'ܔPt&Mw4{o U]5[4+dxLc8tPKT΍uqQd_^d4xڻ2l#F+*Y8w_PJQáWIDu餑Br5 fPPvѽ*}:>w<-,Ca X8q KX8âTt_dfW7G{L Ps~W+ɝGw*ie*,E5xIZބ6/yroT.#O~d0PnM- &WO(I{S?ZڹM cǃd#;ԝ[@ޮ'#]cJB]OBX~[nI;Dݗodxnю {ȾME}|⺅duJEo|TqMl>Sb;Rd}wk}^`sJW/ߗ?l:'{E>Rk{lL"igiJ]Alh*W(paC*E~WG~Xm/&b0i J>s\  R!}"e{1vr<,(&X$xQ"|vz˟xN$k=B_I>pڙ27cϠt=pt >ĥdfEI~Vs=I|aYNIWЇQ.UkӠV4Uޮ!:2X $9YtD7hJ!kZȈd {ԯ(46b<(2%u1Dffgv̎LG2oé]%"`CJ('^A !YPbF{f)Y @t@lq8K T Rp @}?_fspV *3KFx@v&[ȲΪRBx)!\: o5n.݄wn9o)ʬI5uS%?-> 9ǁl^L 3TG4#YҚ1KjI>S۰h=myO,6r@ K,T 9wt@oB^|=xUIVxJrQV oUfiGY6g]0 u Ѕ;x 8H)t$6l$Kol u+|BtH!ɚ"-WU_h_rЦOts-ocye 6nmގǿ<4{>S| {v=}}_!VY'.w77* |;ulSY{t  ̏pYCT|+ ovyHS?>-jEuvUH~H_OKZڏYN-9a YhqS/BĵU ELq0/\(=rjQH /%pLdzzٿos[i]2+18T<"$ulyٳ6GkO/q7m|8h`|a#`$TPg6`P >wp_sn\NVhNIWҋ9xdNH ffBIbW p Hаa_*yx"8 ~}1aNJp1J|JUseGt-VyVsW3q"cMO+:bBifDR9BnCX!ad/Q u-dN"$ m^jH˕p1gI?^asF |*xs8 ϫVo 1~9=`FW| =&}y#Ti܈2?źp댖978V޺l7Nø9f6:q\RGkxy>]P4{72;-N.=u$Ctq]fOAPyξkߡm)qP25:.;_?g_tD:h8r#LRwKKLlft1 !x0jB-|Q"HMM-p#oS>"Pa]|JHڕoV& <ևK@u 9^!P)eA}lgR6'McSBso)lbuPE섌MG5ʌJFugdՃtX>RVQ5=O'Ԧ.|[V/ y~gOnI%VF|{g;_S=\XӫZvW!$Dh_`ŴodQ3%1x#{7m$:5J מCm >AZٷvU[h!}LJNH'$+3ds+/(|06*qmZ2Zåh?!z/ms%(U2ӛM)5Kwq-qk 5Q ASk`^4®@vטsJR 0|n,m'zc+Wy.T"T֛|`{32TC#NVwE24NtNX[qTS icHv'SF>e{@USgA-i˨⿢y )NI'Dƣ'-gڹt0WW~ȸ`m./ԧ:ʒ6C;H~yLQw+40y N˩|^Fib=aG|r u^ sFH\/B)ϘŻ[J$i~13ט(0f!m/4?s׀Ed`ncϢldx*oH^Yik"uZxhxQoE6V #)u%UfQr_M=(̍!jj$^#FPm7PmkTz-ghx,T:ZGS+aTq6m^ }^Ei#<joAzgqh]CȶIu\tZD𹊃 Kg 긃M{?^M# x9 =N9Ty6EZHS:]RkEl<8V wƙqڮ As嫴\rT=FlV}] S*j8Nj~ItV!c1׊zk~2 #^p]2X mD f J>ʊeB d!Oqb[k4.g4I7KCs~8bdי@c,o?ox]M'ic lȒvEF,[Q/wzh|n~`Կ=2HG\#2ו!Y~'`쫽Tγ9x h?I+]Gͭ UB9e(L4rK1%ĄO\c7)gI} Z1'ȨNOe=HSS& :)ю I>Gkih,}ʐ{KJ|&w=KbWx =B7#iiN1z /OM"޺FnpJn0Vx?a@lz98`= ~1XJ\==L_1_mUg%yR_J.t,;%yWM&JJrԪw`wW9<2{FD.0ȵ9$إ.uv--IIɖ:LzfW|fa$6)8z33]ån瑌:p*2/hw O]y@I j2ȶ6LK,KC|[&q;ٕH!ĎID& kp&P]g5~.=\|$if; x.,`ndt}Mf}˪➋V󏧺dfw3JV7"@\o/Awּ`'Y,|ڰ#]Ç 5y ;mR.m)?V𯝀qLjd-%!O9xָqrp ;(aayt#%牵Joq2S6 'N\mcjl Pb`H%h#|li}"܊!.D}᷵!?d.D |[xq&/X=,s;9>l^~pG[&2;~Z~$G'G{%ro)ӛ8i5qWqUpSW{+ջ7}~3ޞ`1dʤþ".@~0O0>E~ dk٠US[~|#F, = 294rb[_ JPej|V ykҵk#^8.njp072Jb-+G$ %Ex(^5Z=JN(bcGRPz31h-$ UF|IA@6pv`hJi|ܳQvO{߹ͪ.\=Sf>w mT }(t+g `#Ys.&X*l R %Q_ \5&\N0z]8fc:978ęS'kr5GP ōnwe?~q3b9^Xj*9 'ʊnJ+}cE½q蚇rpurϹ~DM2-f+G^yה8DE,Gv@* Xcf:5q"PӨJ\+3~ۅ=.+dz\v 2R\Q w{!q=P|6q0ɞI}YP`vEJ-Qݺuo$LO6[ի3yd R.M&i?Ȑ[8XHJmDwYqAkWq}*&!e<ΎP< 1iO`s(pp[X IhJDL5pDZQ֟2&U_WXT1] 0zSʓYvǦIΠ Eu<2h5qc$8fr.@'<%X*qm+b -G+'+9Abo#0@ExyFokC  HBWa͎1>ʧr]_"rU <Չ',˛t!t ,Q<OPH'2ZM6`ݣϕo5onzݼI#8HY8GYޫdYfĐC1WB|YwEl[@ddIfN/6g˵6{p`m=ZS%1د|ׅn%Idذ]CDM]hHtE[7,'?7Aߠ c/ٱCKޤ#|.=A:-B #"{ ij7f$_ 8/\eH+]bdAJ0!I穓_DۇKE珀Ԥ.ЖBڕdž5؆D!‡}I8`pOʡS>2<F Webܟ ьlֿBJ(i20=5/BdRp (`ȭ3'?UD'#A㬝?$\t+`J B]EiGzg{fJY Ʀtr@< a?]8P[PKk-p?^/=<貄WL+Cj,~+ʄ!0/{ɐ(9oVf<ȿS0 =5d`İl?/"m5+R6\)̈́Ko 4UFDG=Fd[(5|a Ztb "t/cUɔ2G6Ma}F^Z13TQU^X1=JΣ- ![D4TWzdrw}=X1uN;z5K4Q8>\)#$)("JzAiZ~Ot nMe4Nɽ*(D9 ; BqH56e SjӦOV*}^_˨}zZemma0+^(Ҿ'ǿy~Srmc/k0 Ҳ븪۞dI@TqzLU{.E͟J'Yy0=,0ejsz[ JOMt6w1pQƚ֬ύXN.jC{dLj^OۡʥN?n7wQ8@//rqt.ef?͖VAoH;8 ~JފFB肵yuS?W8+pw ~]NqD0 ߏmZ}_Κ9 s WOov92u I|Vd&c6 ՁS2 pz!0Vd&;\|m// m7bpV6W})RGoۓZ5*i_M2xTù FDd2_+ O)]iYPfzq!))T4k}aRHY?H8sO-#v?vl&sQTo0HRke}~eQ܉T,hQ\gj,V,B7yA#.u,Md|^PǎM?<Y}Qtn }[cb\au-Zl&#v)&߉_q{?2V|H^?taخ=2̌<8Xvu+2"4 =;T7vB0=}؇Zf9qN\G`S5Wڭmcg `RLr.5}ܮ`sfǚz# #& S_]F "^+4_wnJv<ݱ̒쭲$Ja99f K0+5 ~ &Η_M3?1htVU~01|/܃FuYJfY{k?-l] n7=^A2a 7\~e@3͛W{Zu隁K{6x=籍M+|FJ>zϞH1JwRR]캯[:gϾYdS$"/bod5#N͊shl8:Bdy ݮ' xu|/s::t)I9xX朎( 1ԊnsSS(nvߟb WJс7(_ Cej{sz̕i/\`qJR .}RZSw!j36勉JDփ_g5IFcDpPc=oʼDtA8OyO<9׍&}%;@O&9oKBb迉4 ZI!!2?{dkj`<_F9>vY2ݻOH'h +h[W/#ۨPN`Aw\AMfgǀ- /\~NFa@Ѭk+&)S}} :)(ٶSl"5_1k6!ƭISO|]:}7MKekmcZ1}եD2Lf?M}xrH( E/ . ~pSkNvZ^rsv_(Ӫ:iɯ\~3O3`B0SFRIf9Fʼ'2zfPCY1tjjP#}[2gT.ַS/ Txnq&<]/v:}J}wŎk3RcB绥u1wœNgLcbͧ44_lpoH'Tv@ح]w]Qˌ)}%:,m|.׽ۋZׇ؊h?=#Ǐ;2BAď RwDWj`EX\AJUzPHUl6vlJ'x`B #٫I:^~D;`'Of;ug2\7+#*L9'[3]\:h*#c^\TZקsgM=! qQ'67 |d>u>&ifG Ana%A=el K 껇`ވϜ; dFNPl; -Yh#'qKG'NK0m6s4:-}g~Q>ZW Mu_/lycoUO0oygH#28x5-M!4zy.+Zrr'f[ՄMnw%JS(^Γ,Y\ L5H>d'A XN -j=}a1'Լ "ZTAL?"؜&wrprv`=k$x6}8' ;#<=kw nCD]#뼍;Y>bTG Q~uI]~y{zKft\1h?khUg]"8ӥM,wOFPA 0 i ʐ"Hk77F&M_]%4;}Ck6<$N*u@g`IIjZN~椸n{mpj `£*q m- W0$ރ2 cx{[8o#cTr5gV{lJt%R3z'!%''P_Z'@\@yF̧]I'Nv"2qR5.x ảo"PhSc')Ҋ_=P+2ztt:FCmIf*y?E p#)pPtsgJm\g^Y)̕"i k]mVfK龂+o "'i]e_4&l6G\uIuE1E+V(m{LSE}AS+Û Tfeǿ=g 1to7OfCLYr9Xi( CY+Qq]%! s-Q\!yCw`۱b*T}QTw'ZSZZw6==Ҧ HbJܭm60>H4onOgx0qLewH5\SM k C**>[Ώ<'^~㛪#興P8hwFiW|YI9A롆 yw5 \]ycRξ;xVKy%ɬl\3HMYKbSd$XvҜ[kzW9{օ R6r JNZñꟉw1CUyD5UO Hq5H8{f4sȢ4Bܝm7o!F藯cz!>9{!6 "В o@M[q|?<GDapw= i!11^y)$j\$-pB|ўYlBiξ*D2y۠'_\mLä !]K$E4^bY6#Z|S9?97HAOQd'DCc#θ$b|o 'I eOGӾiKڄ/<I$I'sFl{tN Y`*xghn%? ЀZ zYL! ltt}PKIC1)''%nuvola/128x128/mimetypes/source_f.pngUT `APQux ezyowf;Y ,ً3A;!E$R5)Rْ-d%d}{gyyܓjgc=Lwa.=ϏgueZ79!7geumwOL؇: gns:RQo>k@LQ?iM8 Ą]J t[|W~~~'!+r) B`sm~߭];< E'W"s,!*+]=Pq~x{z$n\Ne!O-]NŌ&oa.?륶Ѝ d)"Lhh(Kï k_;$}"ų?0i:3;+Ұ;8w?/Ϗ20QSUoY|cbG;c…KM%0#;52cȞY%&پPUÙ%%xS;ZTZy%CbU ʼn,$q KbNAFWddv&YfF{ffIoo ӣOmm@`{;0|cyN3y鞲EWe#Q.G__91b*(]Xf+"{ˬ:_n$:Y`E;NM|!hL0r(`Y6MhACέͱWɯXB~bnIhK[Bvn\b6B%" P$SD{o(0,ĭ`4Mw@al0!Y^V|$5DqXj(ƥԓMyքBVȿ0`&*ѿV>> X{h6?qq=˔X;*' ]/;,:ޭ0^^6|7?JHƇmK4UWea.@ o{XwRO#`8^@VRjRP*/e %3Ct\WA,ҥ75bs'} d")9\tΨuЀ 0/t'.C_HB ք6!TBYt0U+IAnHg,gn$JN z61T9S7xᙱ7 DuK=uavP`S"ICǰқ؜c4,3GE3AμjS0Rν3H̞BQ\ SWOvv5T^s*mBӡyub҈yyLb4?-j-02h֩;GD CqcO?oݣoҼE թX (8>* `R,&ѵ<pp ζ.1aE:bs3 Nlo*/\0ls`2ֺFufSje(9(_6o\5k MmƛU*ZOHЬԁ]m#O^S CWJXn)_)#LApy牂vSp{ٙ"͂G/GRݷ齹2eg>V%0U5w`ƨkR_Ȩ]9chp: o^ <sZofN`h\+٢嶲37x?g4߬kav|4_ w͙'$IԬw8F߁sv:ޮ8[b! {2gH (%v4:~Y:0:Pby9Ѽ߾k,=}rVxm c< ^^hfy8 mWP/qFoO)^r'x};t*0mhb sL`rwD`3@i>Ys㐬ХkK?5ejo@ڿkOBYo0Rot$_^!CVC`X妉X}`-a녀l:D| Ņy y?.q?S^W|?@\NWo+3Cqf; %}ZIp^%;L;Tu3܍\Fo)ksy~\?}af$8|#iL7 Rيk]=,s[ ٬R:# + >8CRG˂(+noGtP] q{٭%Rrh nӞuv/o(R/+5 jwӉVҊ* (wY}1UF;_R2l% ͓fQә=#FN@_~EJ}"~ӹ&xŎ͠|:Jܢsʴܠ>8BCfe=a3C ý2րvETr?!ugAnw~$2, 9V<"ymFi$qc԰.R<v맅Y>!E>7e^ ;G.ZXi%gP2}R0f$~f8@hUѣ*W& +U1G|Tzsk}<  _HC.Bm5>bprovZȼ88WnJ_*%)n+/)"(v[&ӫ %R .[>ETLs^Jx8Wnq@wxs}٪_TkM(y9)x<}$l U_6ge\j4޸al!~JwݎYg#9>lѻ{kF`jt`K;~3gq`)h16t -tg`0$GrG.2R0SLLLȩszN5ON^G:ImT`<_SfPڿ2/Y R.O[us"qa>/_(3H F1w;VvES[GXt/5q-oj*R5$){׍N_`Ij 3?AbU{?{Fp"o@!zBMm| Z >2>HTg"C*S٩_Xoh83$))@#Gӓ ;Fc"[٬ D1Lԕo$) -dv"(U'.`1vL?g$fx"/ +tZ |„!Y_n$ˌcPywHk/u`2X|{8I|ZTBiu(=HvSIH/NR;^or4Zz3ǻX&z|DZ98| E{n3eu0nѮ,0_TSo,)#C( //KzB!%Z%A[*=r(WK/JxH!G}>d"u21 g/3k{+j,GjlQ>:Tho4&d.XayGPi'n ى'܀JbPfi(ʑ`VB BUn șy+ yQHz sܬXg!aJ2paE.g7~`5KVy]/ȩ Q?(j/!';՛oHfVu`tb8yp4P俕%- e7R)/0djGKs5H5k&|Cvn} Xhfp\f\5L32lbcIJѫMZJ yi7,Oz.uy%M|!?aؘvG7@6KYN%̿9A[+9LJؕ9 f<-=κLie[%SƸu&+WM|*[Q~7]Q<#3➼!/JOQo-']lMhV?~W?Y˧kd`Іqxn4$?ߪ)h ;Pj|_ 7 `"njNlg/Rn{wRlUeŴ䅽 3CWQg,v%LJW3M3N=b,o@I-=L5xS8*B0hI;x$cs7mu.Zpﻳ݊XՋd; iuz}SzVMZXʦ\FN$^56|%*Qm{zpt,!|Z2F*27wܽlD8\83SG C0ib2FT!}.dQV[ԣC쨓rL8h2ӻf,+ϽĄ{;U|5.h9yͅ\u R+\DIrX#z-t'\h 4T#0ber=03hx0LW٫T٬&+XdB:\cG _'2b#3$f#f (l6Cπ% :MltW:l N0#뫔 uLdfs'L HغhxyOgNʊ,o[3]kZ0ΐA+7rR~zL^f"O؜=ko6 jR֤A_r0HmEcТf u{^z(ʪ~(ZTkYШlJg#!?aE֏)gyՅAM̔Xul  ǁ5a5{cs߅\j-!Zy(O= tI e: i{2X~t1<4j ]N5FFk7(}Wm]aEbD I6o )bЭܳ-ׯEWHblw_L0JS v FnJ)Ό\wѰ*Sv^H)4f9u6zސ7I+0tB`G$s-.7-~>֜ݐӰ{K$H_'skWGb]OȯZ} \eI! t,fB F>\,kxEp\y;;1x4npPʟ^ Z]9|jnV8X08noSAoSFv`i?a6}Zz7vŜ-zK15ęě qw|zOˁuiywå\ûg,da࢖LN:C ݀c`TZmEFkSO41pҌ!iV5z3+raU(/(b!gҝ8#5a<7D RUD#%ֻ$suj`D0w~Ӏ/%() 4oucPc gP P(`^ d ӅLsO"WbUo )KfBZvhۄmTH Эu#*W 9| ~uID_ yX5BPΓ{/=hcN(=2^ICe{TV0I|25-mU3RxK_g,`/<`1h)1opP] r74߫Oik$]R,#J""-~1y ?B۫kase?".+jȊ9qM BT6gcmSQS甮s3)X:D^y ZOT ׀ h3٧W_(z̛ÿ?Z6 {=:f墇')%&]mmOPYWS{E}=KS _;XaJJɲ)hU?!-yQck\,;?M|Ϭ *m> ) sMLiq6A?b||D)'SZ7䴇,m w2bEa!?vo'&Q7@|I2UƲlffU{<6uE%#,"`'&<;ALw-B Xv`[7߇ 3'oƿ*Sٶu# :|PѴ a/g)L)w1+ q[E@eٶSן뷵1qk-?tt&z#L"M?RXp(Pn ѧ׿D6mtptB[%LT_oC8=sBU !hD /7ј%4|hմm2CrqMgO*}UFhUOڸ\^YÄ6Ho-w  2u-D&$6G/JlAyr S\_75h1Ԃ+#P@Fdw 171zfO?PKFC1@JQ&'%nuvola/128x128/mimetypes/source_h.pngUT `APQux -Z$( sc{tr }4o'T X}eu; `/6]aaw9 z1mTf!|6"1?M9: 0Ԕ=#aGGROYYY7)'YɫFoo7w mQÀ<|Q $GTLLL/<9߁I(WQX|}}Aw_b cm,Nz!h(`Z\NN.t8$SIdH[J:sG),,L M!. \g>d&ptzfFyCqϮ4:8诤l];~}r!wv{RųaGhGv4 dl+ֈ,*155H\GLsS@01WT!{y9ubEEyXs8']Q!NfɄڲqD溴P>g el0oن=˻# iczjin&ng{l+m gw2q#wO5WZ`#pZ(17$'!Yy \R fklPm} k!p(}jcA_N(tIJLʭ[@c^<҂XX,{mnY=f%D{2MnE^DviYDc$#!P4SDg~JUx&];m$c%yɊO\dLH_ } 7q5r"-#NK^RT_5p§yB/$)WCgs7߭5@|C lLk5<eW꾉ҋ{iU&9L (V\s?E慏?|~ܐz)*\=u aW?V ;~M q138]bYUVqQuۓ{";hǑp<^?bw k^Rg<f}z 8aK |Oa3*%恵>h G-tpcQ1EWEs\p@LyzJ,H7Wr KX& ÙP Ys?iAU͈*%G-[x:8N:ofND~BYPtNQO[^F F.0B4Eo2H+[{ [sj!&H5<` ŞAU^'+j,AaXi݄lri)\Ÿp}^aKyI&3&$3v^>%f74DxRb yq^zt"z^J`~\9 :>2jV:;_7EN!ηLJo'675\D'bٳFms.7윌q916fGDN6߲D|U\"tܦ2% 3Z5mR(L7eDto~jˌPulC\V ekfCnNhf.e]m*+2V/K}W > @s[*ѾVCZQs奃ڽ/H>a)j@xf ~3[{;Z_Wo׸=sVm˹hӢWO]_.z4}8R(z*^_{qb$0Do._ק:rBDnWd񹟺3q?$D;(f\_ s$fUjƷBo@.=sgg]@-%] $5nip>N}]r#X Sfy5ѶԹ4Zūwۧ0 ?`!l5@T\U28lr#xX8`0Z9G)'|RkϻG>͚_Ҕ*tpLnpG l͈Yڂ8`'l !b/p4n5X~Rv-I6xصk ٹAbeK+A4,s{?/91ɇ#}~|`w EļvYK 46kLMS?jp<{(&FS1=$R~/8._o>7Г'3,W<-\tÑ'cvh}9e6v1 :`62i/<'XҬ n1ļR  r pCCA)"vbp{nɟ5&Ti=ެfYRrB ح&xs0/-{J"ֲňHr)\IRB+"98p-WM!TzZՇHť9' d5ucV[ٲNϣve(0G˜ ;rWJ_Y%c}m<Ǖ5W^5%h%+Sm%8Y ٣%EZQ"PK77-26yFmzo3j Y zW {{ 4{}ñ?vL-yj~pzB_r@ůDK._4-(e2{K#=)fP% /JRG9 &h8Xom{z :iDGѪ5TmOk(b~㞨ޱqS?̸N[S8=o7#wbψiFX?[lLV$K8#MdCcđ)sgqX:~PU/hI10wˠ_AđiUM fuZBIg_Zj 6 )oTN6^ 1~Ԣ*M/ Z⸝(@HfUTYJ_QPV[HN5z:-u2?l~4UUXܚSJMHۭ%R6׸_%xtE&TpN9]aadn䬌r;6Y6Յ>R3 ˗dL9+Aa?d]{fz8^ig׏>%Z `p֔'[Rq,l^wj'||P1=\~|kb!5(QĄ õMvJ9׻ū-)|A{ʒIpO-}{G˄v~s?`)1l tkP$WrK%Y)66V&%rUN<8>`E $m" 0 ƒ7Bt}W)>ԢI&`Ե2Q| pNR؇&]$,f3BS I.+`|$3h9Ed)Vj2:yҲb6_n~Epc!e֑|c[CD۞^}u}Xjƾ{*IJ ube4no>-R+ # A>FT`o߳)ǐoD.A< \i Z7s%Zq$;CɭO< c3eFg}6[N/z5Vk˅Q/#V ,3T(6p:)qm=ͦJ?Y!hƩz ֲk ֎~LKq@pI$yJgaZb"E31Ă/_N'ַ!mB'}J)#, 7)I(eT}ڿOk/80%ԙ'YCÓZ ‘QiYg(ׯ׊]5w `6IzF(]CX-s ppꇭ3"H*F8h35|' /I Y;o +a$:{'bG֨ĀZJFTxFҏVTރH0SKn FmP CTC2834$^=xBۄӥ)"19(L`M>`K4Fmib< ̸?u3JUq~x0*l˜*{8]æ?'uyԙE1[Od%J5?=AoZ;|A; R58QWT;k>+{;ҭtFtM gzaJ\53筪aQ/$1^7mNO?Mf oLہegvPuܦ197_2INW97 ]}Ug?+?('^X.^`[9Ext _y+i txloHX!dP9觡|2ƪoe*4wbZg!F2Jx,0o|=Din->b iC3 . á᳚fX?;ḇ"ŗK|aS9cքA *a}7އdUzZz qK7s<Ů~AgU#wsX~WPiɢZЏ,ag] +N~QR*͝)9ns!s9OnO֓E.'GTGAe]4pL+*gEYļ<?8yxT )!Bv "ls9_⌅m̴';{uSey+λW<ƾ(7yѳZ m;0 {ZN>`PPW#6 耐7ZUA05=iΓhWI#^&K KG[7TY5F)>ҝCȌe,ؾzz*LCljcA5aD!X>6V\wVo& ._h<11dVer8Gy 54ԪfSL)7{d0 lWSi][tc9hىEݏhw b"4=1jzIW"^i&ݩFIWD!"k|I!-]~%I6X镫-%N/'SSQ|ث?<s Y%+dJ[(m~lo3Ӥ 7uܡp/bjsU G)1r+@B0I/1Umy y̤,#{5I8S5)D ZIN #<7?B1}7KHqU`LRYb f' b^\GWt(%(LqZ(|+OU1l>,T{& ?̆gU.s"Smdz7'ڸ_=$/Aٟũ.'-b\ȸ'of.s)=/?!t. Yo4/(ޛ(p_>N2ϝIF"bōTxS4'pb?M9ololiPph<`oJ`pdn=bGPvܼssVcJHmҕcX$` 1,ym] 5[U,Quqw"gZ dN ޴{T(4bmvePLŒm??Uz7=qxd.(/"%eTf$gֿ~7*Nsۜp鬛lO1"wK^>g1|tSh>>`+ǢCC\>bV(MM97P̺A5Fq"r܇09lv2~a.γ7Vla#;%CC}mLm-Szp@a`D7w bTMbn{Z^]WsN>pŴ'_AOtGw!8+}a+ קUZ i )u {)kL!X\0st7 h"v>yˌX2 r2`I 7 "'N L*FTz7oln􏅉cCPKCC15U&')(%nuvola/128x128/mimetypes/source_j.pngUT `APQux 5z 8{`cwf{c+d/E%[ %$1Y"|Dj(R)dI2{<3=sY^=7`, JF]F>h Oiڰ%Ƙ?-9< OY{kx鬏޳ fmFp=Ӎd1\lJ{@B1ӌ\T$udZXXp@N'uwxbyHՆ{&_'ݘںƧR`>| x UYȀd5H><L;&~܏H~~~$TJѕ3Yl!A챽 @b9ɏ= $RDRLC v1te0*F^տ"{L 9̌8[avQQ m` soY;~}jvON2g"S-GhN4 d \ݑ?911X(7uSDϫIJKH$W*V\1=W{l8Ԃةn͔ϙ"PVyWOrsrζ\ޑ4!J{}ygE;:CT.\rd{*P=Aռ8T}"#fv>cccԼ Ka*Z>a[3y<\o/ʞaD2II{.hD*0[sOUPΧk q\ t4(CbXىd8XrڒG>DݚYͰ$)h͒%EM VFf 3Jf<w1̘bHLʱ0j7=bR9Rv?N$%'ii A?^o󍄟 LR-5,XzP^pm7%ZݻnK$mL6{5Au^۴jl9!%( qw*{[?n<ܮƜot 4šb%hK8CHUO}wDЏQ9jo/NiSwʣOo408dcF71I@y{DyzFGmP&9}G-tpCY:P9wYrA̍d; 9>8*6fwd,qUn< eBA'C]R4ϼ4I· ĻoO_G0SL u2n"s/LD] %+| _PHKDPEG6'k2 ^$% ط\TPC{ [s-aFHu"~Hr$D0‘T'<ʔ5^T'I8fLL=Ըw7 HfDv1d??r~\1;?2鼨Zrrp' ŭ0(z;)@qs![|ZЬ ^#l~l.(`N1-P(jpA{F%Tܦ3sH{s|mh^]K}d~K)6SP_6չU"3Bӷ pGWݺ>Q>! -݆͊;>EW,dl7ϕ P"? @;L?_*ӿ(ౢ뗤ucK5{_N1}#Rhk,tK.-߫x-km/b- B(T|_.j[vev)Y( ON⣽?NfirG ?&>y*~ߜ;h$^p+0CS׻S{szZF_2׹{}NYPdAwRI:}w!k|;۞Bf A`o!p Fq:ŏ `2*fu7y]%~ܕ201Zzh`6_ա΃hA*ڕr¿%|nr+tX,x0Vs37w|u"PXlzIǕ_**h@y:Q̚ & D(Q?uz @ֿks#nYCX |I2I\(YT e!z0JU nl3f$^Wdh هw( p g6Qh3 |Woj./ $tzd D x~Ry@۾`;k=XnQ 8[n4[V)'-@hx qHWXZsUmY3{XZTɑT]LS;c̳ף[F 땫 u(_NdtFC Gzczʼnbz>. +c7sa"_&`:P@Je K\V XP^ד> wg vJ1g`Mam"Ga[kvsM)xj<൐\*g&fJiH5<]TnUBn}X\!ԁLo,^X܍`eծCKk|[GN܁v;ي63*,#hNL y$O-sI^ֶ$2hFƢMyK6!{a۝9J(Z j#:֟B clg=_=a8O$+`Ye6_cz$}/dod22Z[9Su`.hcDW= {za -_@nNʵ?PuG#,M>j/Y340)b{|a޿{7!ίC;aK`kU[(&H5, nN |E/^o7 =R]:jᯖQ 3+,qŭ*fgAWMV-@[`qH,Wuη5Zk 'oqIUH;'٬ǼTӢfK,Wv)-FoDfA[~'6uF`Gh Y_?p*H.XO<՜v bA /~ yJBZ? t- IU z#$W769}IIVxީ(Y7ӷ&C^&?K˨Icrԝ/0;B111EY.]$~lpGW>8J >/},0^)9't}dTvk@ 1gyB*afMrfrOѼV<+5@ 2[~DDp]#̠Z:yN)b'EJ:+,PC^:5uG(^ :RaOm\>Xp-3~c3 ַ4pakӒKkOp4қ}wȧOyx%{%82k-DtsRz԰ +ԽL`~s" ~⣐B,  :}%-7&Ì.#Xǃ4*൒xVewkaJj"LJ %B/\H)U oCZE)Q,qibs}O~b/\SX%9:UD7Z Cݶ~Sqz325@n=&%4 #ad `"Qn|WWv$)<=r#(IڧSZE@V"I &+Hծ=`]JCVZ~ى)j, APVbVQ@YA k}jRdQ7OR2(OCA r^H14y i+Dɔp%Vtc\C&1tgaWýh794PIiw>EWGDFDE!z.yj| Kڲv  J+T%Tꇂ:AAyv?!#R4۝7/BH,•Љ~&eK^GZJO+KFj\&g8xFĔ ='˕݂eֹݨ~:3d[u'X++Ej XaiZCSw7t:Pm翰Z8uE<ߵml 6Ndik} I|ݯMA#25Y夠eɺ_+2)*V U|/{ Y+}&7Tؿ;Kg-f ׬X+Ը\yfjS݌ѷL Bv~Yk6[ܭ)ȓ9nѓS!M@;npx`P]i 䗤-Q+bg"/)ηhq-#ų;cR%}Aw~;Ɲ[ek"XF'q|`U2ee=t:^4*AhyaQiB$ɞ4sߢOʜ{F},m&ddQBۿ.S@!㧧ӂ^S~ַlDV9ƥFC?!Ym|D{_͵tQԺl/`[pgHnWXHࣣtAMdOpI]W˘*~QV2ɛFB2Nv5I9r{DRrSrP#GHF( Ÿkzn9οd7HNa/ 0q4y."mEբ()1X:`#.[`؇ Y! P`(QJ J`@8>*vr6bʓIW m J/Jk Y\`?mE3h }\xu'ȝv㬕+LyxtTd ƈBpL+b R4 }q6kL. i .Vu[ket/}e^} ygYĜ'|U|'up*H1F31"LC/'zS"!H ׇ ߈PV. k֓PW-#y>=xb/N96O 1}6+0oQ sW#j 3l7h}&lP|x[jau萛ᜄ3m47\8dخq4`nŗx3Q7)'} F{:ig 1]|3<}*xt6hqFޑ,6ccɷh:%LyBІfJLd{QQޙ3mT:jBpƂȬ;4]V_,Mb2f{0&ԈEw'=:%gMcbѦ#zyl^`\NL\_ŷmzIeUQO/MwY8r=FnGf0i`9 Oůʤ>>kxC n\_){}&M!f5]*w2QGWY!o 2:6h} 5VsB஭! %Y*@is5JeN <.ٜ g~MO\Hbĵ̴NjCݙu٭ɔBًs; [sT#s`ޘ2ȫFfqQ2!06+ۂAX3AΚ$UhBu7;!x 8qpP6!KtU_EsZ6tdG9f'cQ\l#v?ЇoXUsaR%EAoXٕ+Bͅ/XSSУ1orVkg&sY^+7J+ڠ=(Ӑ=>l/ʯ ^e6ћo/}mZ+{[)J"y^hO8e; z(evg%sr$@86ѪKiR'Sշ"-5yh) 4<(fnJ eo9*& OVKJpe$*$3.%1B]ul|l3.AT(R8$7V{@sO}Px <=i(K0 &'-ށ.OcAɕ't[kr1Ԑ}R9 q&|_;3M$09+!ݙHM5g联5g)v9+/il=o 2Wjܗyn'[X!f^ (?ˌQ-XEQg0S;;<}v7^g sf8UC̷\qN /PgD!XuDPłq2']7f5[EOBBE$\.t_ǸESTtT3p1BPki)9 o"D<^O_i'󥑁ZEIg!h[Vuۄp; A- J1Iy;'ow/Ns_댪ޱY2(L |ށ_1"4]fHwj˃>h9 *Qi"Y"+jwo}(g%#^BAdĻIJ@<|Tl[z\Pj NJd[wWc.7= zoRXU8Iv*Rr/C ;!A 9$%#g0z5={z4-(6!RSES_髴dl.$UHZASX4C3s榽*>og WU߉ysTl?-POĖQ -[U$ "ӏ4'9$΅9M.x(;[WA!yt]l&*kyL te/r=L7S @t-|,WMy>>;sj*bQd|e&M"1`8 &]-k>xPBp•G˩zTi1R5c*`0VKDpIKY?p4M.<vExHttɀFӂa#l yp+va-"3Z Ab{I$Mq%WzcW7f$΁qm'bK<œcQ9A J^6LmmՅ vR 昺 |wh,݈佞$qq>,f `SDilXQv'IB{h14Nw9l)йl!GO@)Z1.@0|Oe~66 ڀ)ע\11wbբz4xb2z1=șWf䶛@^<'%I<S K/Эצ}/  M&CXlem`ĄPK@C1`")#(nuvola/128x128/mimetypes/source_java.pngUT `APQux 5z <{\Fek~K#GP,IAHEB EYrVT[[BB[zyk)4W{Gwz#f DK#XwlWSgԣOs?w4c{@鹣 #msӲLH|;( hL~m#*N>) 1!9??.MQzIc<2^pB :#mc*wd>k8n͍:Xz`` = RM.8wHK{ic@I0euzOv/T44487n(pds֧D}7ttQ6(E4%J^'$K8y :42$V5[q$hk 14{F[y(\ %o< '<$pd՘˗6DI$!@=6>cN䓔$GijM8b^XKFqrr$ۘӽp;9@ƅ?Uffd{ R:98$.Ni W+-G၏wȌtu$ޞ@2H9?A?/[~]+ciib%%o'fCkk}JXx/nAI]9)((уdG H! T,- ]asaH3/{dcC DST:rۧmz̈́]e6* t)sHp 0WAa&h_w)} eERٗ~\n lImI &T%ՈMzQ9J47E;\4 }ֵ_ nEA+K?SѭBЗNqֆiJ3_TN;wQurypᄯ@`jw^p3"QFۇ,<+zD^bo"߳fHg:ofz^~ٳzg*<>qoZ5K{;,W `'(zY. 'f6ohe >t! XhZ%7 U!~skkk[>egr^R/܏sZOR=A(\qQf&e* B̗xf_s!f1R-5mǔtD5KDKJKYDC'B\QRT sjޡ3ө(x# 9s qBA^D|{:>e<%̼)#孩q7I֣}s力v6{W4Ӛ C.̥iVVjuk%$wQ1HfNb*X_0g}XV d$Ӗ|رְ1ǰb%-FPwd)前J3AHκ铥/(%y"o0mUs!;I}l>X}QS,E4Kep;:x:qa?Gժ\eJ~\8b'$M_"f59Y#O C끯/ߖ|l+w|Ov=׻],g2JT"5+f']̼A$($b7zֵ/ ZWkzޅLR5Yx㏞OQK&ؠdv?{vM<]\YyNN\cr;wuVZH8YR9sfE[󗋨˦y'\yޅmzW<7-H(> =#'\BZcoW?,SLښP6 zarhe9$`!n3*We_<_V9IU 9 ?';tb\ļ֋)鹸| qTvZcq~mrO{Qb9ĄɄKA맺e(:fij<(LV5ѺB}j=y(%xԐ+2_ܩoT` PD29=Xо"yK bPzȍUokdƗC$E3PL*>|^ڒ3{3xdk.O۷J,L{AzzV):0ZDoZa'-M`@Y#o^rK\Yڂٹ?2Yw x3̃+(&Ɗg-;PgI w{ -H%6A.|u8~z@ݢK,|+blp=^6Ub ʨljAq_Qna^zwv`hc]zIFA9{ywf̷u&ë&VA㕡a]Ti˧u,/IXFL^T҂7Mk>n?IT=ԕ7yU\Zܾ h5Rgnn/Yi"?rj]7\+p{H{G :M)swMt_ÓToH/(]ͨ8($mE\2GjcW0hx(xgA:Ts2@H,,'|N@yIمTnsk<ĘfhMڬiSC3oV%Jo I<^Ŵ0r08bsL¦]b| w>6isTn=WU|'K"@1a? FI2KJz&hwpڭT.~zZJhW;K&!)ʫ@ UM]@4ɚ77kח}n^l['|7Wͽ3- AXWʙC讱hOOOܠ5)~O nQIкI#Iϰ0P€z¸]@u6{i1 Am3#/u_2 ,>v՛/2Yy߰_bwSrPKrgNs7DVDBqW394G3- ?E8Zr5amxء41 ܋?;K{A}c6*s^\h;q\ѣ?L`~'DnnXEu<<}DD 7A<Vx/39GH j>u̙<krҥ3 98}L@6ktk(,Hj6P YY5o}6X~J4nX>{577 _W+h@xX N ]'m*5]0&j6N/֟ΜeW'??#ߨ~n~^̔{VOccQߜ21YG?=Yh^E0fD5J#tbs"uvNc wse~x g˅>33ru <U<1.1]uIno3}OX5Gk1B 㽵lz9oQ~S~$ L2Ƭ v'Q*@[ (:Pyjʹ. '#8e/JviV?yQ}DoTV)ҽ63v#Z,R.5znOXrpUP'#к~ or~2+3axozt|_AH8޳"Mz#۽vEtv蠕jĹT ZKQ|$qH FrSmj''qh-9!D2w𞠋C0>je(.|"bWq Ky]^fv#p s`{n <5#B 5<ߒ~fݕ 1cb]a3xP@}jfh?/›g)'Itby ی}r ߖ}Ȓ:PEQ>$1.,ynb"w? IVo NT :)LcY}?!O(! "HSFJ};6Z'ޑC1s1T ;-;PV:><-h;ʌ;: ."t@ Cn;T;XZhV{aKzn3hKvD'JO1+LRőe TqQ g Tq1uUHn#P$6RPf$5].u+dz,,'EX$ýCKh^awho9$(Xf˹[q/wODmd%dS-J!%[Xb?Ig9Y[ &{p~aFbse+vcVϵ 5.'8;b)qE̻E)v(ig/T]8(tN9OJ(E ;SGQ06DJce1D8iQEvC sh`!̈VrЖ 7!P?UX}a(c@^g"ßv25jCT@ZoGN汩qqߧaBńXu2+mwZ 8S)Jׯbp-wrZg;[*:x[< 垎u` 5$So d}-\b/llӃ(hs2܉)-Hݳ珞ΏLy(f9#VF* E{ TCNCaC py\xfb tKzur.2.|OO-)PQ}жc"/'!dw@H{u@KEz(jwC8 -No"*kAnr~:d 8X\_6?4QK7ͥ]\zFS PdH^Z;.3hKWMSF\ɦOGA8=9SڸQ{oZ->/ɶ恟,z3l5lm(=d,x] TΤ){۹]G(Pz˾5ޅ,G\˛nw🷷ivh %{ 3 ;C^ :뀈dQuRQLڍ_ Cu%~lCH L CE vEєJJxfh_ssF[\O3a&H* }PT"Y[_L< #x*?qP*PéoCBEuxM"摦FM|E>{)D!M.hxjg Q7:kN|{?7aʘb?~Tvhɕ?ܤ=DKA@SDKkĠW[[Uwxaű9J3p@qِ$쬬ϋsK?Ǭϯ|z |NauH[ޜw8>Y׋U|<*4YTcNPA3H3<=j@$V1\܀v1i<{^(yQ[' /?!)32wz%J1c0#A`2'u|nۊI ?6IЉ~o{3ZhJω;dx5磈\T~ל3@Yg M,l{=;;m_C3t_xpn^h]q\7Gi&3A{/7^gVZ'pN<4r)}v'"2,lT ACe 1a!^\U.tnq(̟Y*פP'>!jFlr #(!JjLRU_.ul9%ƅo t]wTvku H{T?~Ձdx+W$= y1{޳rYrIuTz֡J?e!I}z-hfmƮG)y/N<3ZMg?bH.EPXH#M%7e*qtII*%Xߑ<2׺Vn%H p{"ML0k rY4uz+ ]&Vˆ|Xg?ߢCyːXiWYŽcK|^RwMoAD~]Pғv^"~?g&z 4ngg66V6[g|9䞠сn)v#_[vI'T !镉JG#GֲxK3}&2^Oܶ\`ϼqrO ;hMF"s}bljgAq%$Y!+`omք|Z 62my Y!^$5@+n{IRbrA:x=\!JwsU ^0(ڂ`+)ɐG& ĀHzm7=@ȅN#zZ,)LIS0.~Z*gÙω eqEW}K ]UA+q`I}qڠedfr/wr KDZVXE*/&^ 5Y^3kYj.n#ž6Ud``4\C||Q@ruPKt91<#(n(%nuvola/128x128/mimetypes/source_l.pngUT gUAPQux EZ 8T_ؿcml[->c_KHk섘ELv)IY&Dd,!<}{ssϹw`g* Nw"k zo=Z_g31Q/?*߅w X]F} N+K,6 D@`$؜ @]ƙ>pGGG̲RˉΆ˟i@v='\T;;YG=j'qq`?̷o?U28]]]觗;}S_*lPg_Kr01})őìJATAa̕)W|ǎK![Y hQÂB D@\ԜF&eeu]E5)//psscz?~ٱͰOCIە":hkkϐ:ߎREKte0\$"""yNtIO G9Oݺv ^%)K?9tSLNipHcAUUUedr8uݜ}V[KRE5fݥшO'ן>֒U N5,"ѣGM- 5{$~Sxy%$ ?bIu޷c! L<|&1`"cN(gf ٕ\wokEk#S.+b{>5 0w5Ph[H0K?sV9RD:d',O!Q8 }#7s3g$-hFlhGmOa,9#Mf=;<>5y?Ss'N8޶_*|cPJn@ƵɅ=&HA $7 `V-5QS;aBa;_l 44h0F_&>>'s rpeᕥ%ٝ6ƈG.a F[ˁl6M.S46*|n2L $Pˑ5ji" ر YbUr3'r!Kb>TL.p pBhU6pШJtPF# f iΐ=TAWq5rzx_0lG:Wd\L=U+róykݬX?EGIA @D~>>s!c{ 1v "IH(ީv6Dߦ mCUZ-vעD`84*SV55u]^t|հͺp8{1 LC6.I_$L;bp], JMHp%>BV93^Z>*M` /Y;6Ln 2:f*uYXJB4RJ> ycGa )Si{+/)B |;bIdNLeuxE9UTnA@Ya(i䇃F>v+tJ:S0'ʤXsh ]R Gym20w Z>fL>[NJ 4hxXNveH3MX ȃ`&$DJZVWo샎8ıK}mhrj`*w-qގ0:p|ʱ?..tO߾6]Ez4>_$^3 )Ζݿi07{/vLhQ:1^n<<5?=B߼Ԫ㇩"o e*%bHY/Ӝ;J-Wz!羊)8L_F!%jO8,Z1KAs;eN= ]ݸo?gwwEt1=ޭ qndqHL<0)ˍM*|+omUN|j_E)L0:%,v"*xe:"HvҼ%6r'䈷!1QfPsnƿwTuu!lw1jϕNe(J`#J%ce R?C;?Z xX컂Ly1[V#;nS tT*lWϛU|F9- ݬ:1oL[CHyry`鍠{ 0l'I?Vٜ^=Qs1x@Xano8KapwI憿raS R(gP;uO񘉼H>u_-"ȧ)#`jU 03.Rƃ!KU640?1^ +Q^"@ QխC6HU /fky\~u@҅" *o2PC-i ąT>N]wB%J+eqժce23l>IK,vBDh~d tZ(zXPrA1p }. bȷmʛ!u*{5Re,+}ųynQ0r35VXuݠpz&h|xZ-3KIh q|Nh귐Hd;< &K"V`D|ꫠ\%|l3|$O {2WnPԺ4^f :yy,a złE>Y7A4M؅:J]9i%ӝi[i&򰳲MB$#,?jyF|gP ة :}f"Wѩ{U;P5.۲9R#@Vs _T2RJۏޒ?aU${LJ`?ǝ\Ų3%vo Wgp;a+:RiCPݠ{M5,T}űm`%t@m? a3]q{յi2o0ʅ_G0ix#FENpf-7l+|W>Xp3pjwIW\s<v傾^=}@C5; =PpXg4|τ]cSZ.ЏV6°o6!lUs7祝EʵQ$' 1"e#鸕i)٪o.jaxhCJvmɺ'?%70 a&>G()2J5qo4..17#&٥啎JvVU6$j=25|.;"צ9h/geԥ+`I'Yb~X\!fL2J*bz4; nx hKgh I.i`۟`:;΀/N? @0^_oeӲPq%.;]ɦ= 8/![a}퓴ps+Jl72ჼAjؙ[(wGv .a/Q4H la֬wJ~eXMA۞>_}|a@FHX`.>N4Wrz}u/hcٰBС1Vqp#i+jPݷ}Aju<prge?8Y̌Z4(hm,JSb>uk[ZgS~4Qq? {? ﮢlJ5$}ن J\Eaɚ9د AgATI؞ZeĊJ_6Şgw6Џí6q@3;Hw ܃E'' ;-}ʰXu{opSܱUם%`VOk_\D*Iv^_y_IޣU  \Rw9Ρ}WE>KSR J8RD 6wn $n!0,AE ߛFJ%S&>wK{\TW fO=TUkyxjeyNɰ%#bi'?"'p!5 g#2١\Hԋ޾{t! _2:w&]p&J3 Qkp94K+epr/!v8{0}Uw2Zk zቚ牄 egbs~ogiâ`ĽSdgA ]WVS 9:*wB.WBM KVE qBߓtI/ `«G!Rė?jlq X>~ݤz ؓCn)8x~jU;b" 'E!A__7d URp|`))umvន\Kn}$Lt8)Dd,3?W@34Oݥ7X=c-[Ft*KMǼO(ոJ_̩&zp-̧ á&4+F:@œkLEFvG15'IW}n ˻3f؅ Ǎ j;@IhPpiwq=Q "QZî[#iM=G:{e7 x`p):'N[-" }}ê:c޾~"{Ws}4'a~LD$AB D9F]]5_3Ǿ _5+^JyIG]Ʊ@q*-~3lOPgߧ߻sHA|1F<?=q֕Bq1zX)3kGL_>Lv3AWJJAOderf?^ua#p3ipec`a[׭15ؿ%?ksu8~`,'.?PhQ!dLP˂ Fn7bY-1ᦈ}U.mDg*K]%7E# 8} 9͕P=CY0j%Ã[ X"O2a&9$UxNOk+,9 \nӱ &t >c`œaE;9߯yU).)V?S\]{ 2YR+7 sL 2FΘe/h([8"Zc z./78.c&_r:摑 e_pi΄c՗p(pTF;0:q&71˾%,x(wCиI {"9&mMcɶTrW8y(;1C|+JX= 2*e$04`gg8^LjZN |>L/K.겴2~+͛7ͩs#5i77qׅ"dTWWW;nDDEl.10F)1nƐK 9ݝĴzTVt:}>M񊶥bI!v0k\µ+WvOZvX^wR?Wo *8L)CwpqHV4N1 8ζ=󧀟_Xk?3x38E;{j9qh(q?QDD8tp%`?u % ~}Jų8SWwU;_v{ u xפxZFq Pp1&PK;C1k()'nuvola/128x128/mimetypes/source_moc.pngUT `APQux Ez E1*&6R*Kc`zs_s999yNoJ^ۥwK%IoHVoqSZFpbGlĉ),6$u482|{xpؙc.Nڙ9D$xSC+`P4@g+` _Z`͛.xxxhHK:H5ⵈFryK(\=@5Xy36dVZqJ4 du6﷣ol%,JDD%44 3M)wM*>=Ҝňz9?괻wck L& Q!J@crGT5l\\+;e|R|J<}9<2bPe ]),l_f 3V9hNS9PW2_QݩfyCґ11 qrrmWYcKPvq0wZFPtt??e˚4=YX=5G~q9ug!Bٌޞɟd1b?s?Vl#glh-{B#",G!^(@"Ύu g%FhaW$Ћ*[8^phy~$J502%=99;&./f\Ls1V٤ CR{s|0l*O!"~j۪C8, V;zĺDs,~Ow29=K<7oh7O wtZΐ2g ~B_+ϟ,_*:'tXNv7]hCH4a\ύ#mR+Z䩼g9\ooM͜'].)vxmkyˋIe=]ue``^ZXck 6݇5DuM< ҐVCS:e$ zOJ=)ޯZTIќRxj?3tpz\k ؔhM|p6}k|B}گHD+%y]roAHᣪ|Ve i5B iߺMue+V=v_CQ07 5Z-#Eu[z<*zv Zz\ȍC(4|ygfіjZJN"hC؎y$ cfQnyD-]7ϝg )D0T%b_ {a>ٜßn'G!ZyE:]0h4Y 6C`Pg#yn%׸+6DntfdzN!Y;B(fC.)?Mװ>WgaRIB F6l5uEe1vv4=.^yh -l>lbwwjf$@ =v;d# 8D&Rqu@$7}!=ulKFt5.3F ef]mᔈ냶R 0z ;s1"Ad1tÇ&)6o_FI4.FD or/S@vж sPVf2I~fŖ/'a&]o(8|-e蓌[#G_;?|ڸgv&7$,kOv.&Xb>iw4ӞHL]pִs0꩚a{)M>yW,yk_rD.*m ̢s[+aQs `X{ }-8upo.%'jkͲ䫧D>K'e*" tyQ"1qq K^}YP[!r>80C8 fuF&,Ã/h_ 4`e*:ܠ:éةay\Lv"ٕwI̬H' B4F,%_ 'MZҏMUy6$vu 5acuk+F̘q(!ִ%xsI{}%\;d4rE6}ArچuYR0q5nT42JwY+߳cq!n#&s> TYƒ۞*;޶G= H}QCI}+@I/߷:|r Ϳ}1I\9uP)cV K ~Jx$R~݃@+~2CBM'hnNRr;GUվQPe+'ԝθR{Lu,ttS6k3Y,_RV|h,'WBYgz@eD%4(gk[~g K?skx Y/.\/z`!;.C5đk<|ܧt0(9#RSどy C 8=4ԴS]wQ,ykPd\xi :v+CQ#H„;ndhbiJIIhp3μSQǦi=d u 篔?ru5isA4֛ۡQ_d:ȸVȻP4\%;]̲s訇\)mX@0fAXD+`_k:~d6" ALjʀn/:hQ^cy zOMJ.U=Q /Q~.{;[Q?aP}EHx:s]n@ E7JQטDP?S)fE E^-uJW-{WhSY<ӛ]^>-t!L@ڱ3*<aC^-=>W &-`ƥOA)z'.,x0sk7 Y^}ڌr'UR!*~FlihPt "܊U@I]e%Ąd=a6!(y SS۩*h'xِxl=)&4>ډ.6[HaNB%$,$A$ӟJ!@1Q )4PN,-9j)\<IX<];j=jm{ɧܭh_}n,x[B]L<v ^\T)j̤ *;9@r0Jh5pxͅPej@sAp(y`BȚڡ߾V5IMOmR"`WEick( ǟf^cQn-T߶ $bvb]r3B SAgJ-v\#e[z-b&}wyB/?iw'ߤ3}u>~'о{7(ޏ0G1cECD;j$Zz+qSƒ#…ӳcPj4zHpH^rF^; ?4bҽ |Ivs)"P ^. MPmDlfYb&n13k:"n22-@IX юUy'Ci=ᛛXx>qID'$VCF;;(.g~u}pdv'Hb5m&K-UGl[.?;h]|E 5);B'/WwYR(ՊT.o^ʹMȲÞmUe%/AEK9qlɰ{54/H牵^'ߗҲPV N"Y ¡;R n6+`(89.prNgzuOذ6x̍\NIeLUHNF<&3NUvi>yw=հ$;dvV߰ uA'Tm>B-1b w2Z@Upv֬ν{f>jM7R֧s s>n?}<k;EVgV ÷Bq%;.voJfz$^;:X| {[wj?W0RZ,\JeH-BF8'OPUxT5K=ou?Ooo噍0Ka|*' ُCeN" "Le؂<9C@vӆt<<5 ?;QR7Ad2=&I r6wG=IG.HpsO|]0#캖u SU ,gGV_rehg;gŠKv :a^=j~+ 0x|kDyq$p9lMJXp ,>N}Чg=^w`e7ߴ)คO* Y%ion'wQL"[ɏ+K}n\(RM&8'YTJN|9D=(3rS1{zۧOfBlkώ!{F6qi:K4\v;gd]r %܄ǪI 6 kO].{4zz0N<]S_ nPFeX07_8%1ΆF޵JfiJPsSPV=O\pyR]ktwj@#c 3Bh,Q#:QВ7g^Ke*6;5 v^oWzVAvugo(Jz sSNSum6"?ŸՔ)2ʯX1jjAJ~&m7 b~Q8/8VkclI)Kt{#N y .A./F֮QFV.n"6`>ژȄ5H*EBY >GA!=5rD ?M{t2<;ʾ? ſ8- pF$CuAԍk?hp?ɤ8㙑p{6{t#p|eyH45x:jEl$..ȅoJ;Gw(HK{1>a?84*khĄ"B\цx>LL"t`%)xO?I޵yx[\smX& "ѬKjv;:CY4HI8SH|A[bgCkqsG;#BZ1mr5<˷ x<v7:![dYD#[pxGtr ?e\x7r )˻ibFܜ4@Hfjqqm:lpmoh'+5ir`wOlހg!o8Mo:9y ^2ry9`hI>Fʳ^$Me<XpV2%_^`i=0ʚJs(҆kOZd5ޖLM;!ԍ%ݛ] UXŹ 쿙:ꏬ8ny]y2HpԨJVd]Oĥ+Ee<Ĝow&|ut{dʑ;. sGo[ Z:(M#ҿ@xe0JJZZsҹl/ƍ4AQǺ)"Էg&se])Xs9x+ |S8b5c+Vj%gfi>w`@Q=>K5V]7v`{oOb2|d;gY㶟9BtWa&jHtX^EӸc'-BZ*Θ6kH a=y_([nOM/ɦ"cʻDYgXꃻHCfG+([]-'JI~(^sMZ"XX(U2J4 U ljɲ`831UbQ jSAt 0,s#j.,1W2 Ck /'n#~zȆxQg,u/|{{4)7 fFv#vy~~s8xѧK_""χF^ |B.c̃=.]HƙǽN(. t3!$y@9@?MX4 Ą55f~-΁tϪQ{xk]~]9Н^9 KP LNNO`tԆ *<|}}==<=A%zq#KYPp]^GUr5/at"AO$"&Dph PGKWpVDXHG[[3& /qj$!A5nACgfd\n/;I{iafsf-a FXiXoGO<ό]`6)[FzWpX6* kZO8|lf(նF^ٕX=Xr#>Ց/_\:a.4& Й3OPʳc؂n̳TT# L(PTC`8X, mc髟W0j(>M=7T(,!o4MU~3`+FR"q )c /^_`J,f5-VCNLDG%@k哣=α?~ ź1e9OJ$1}8|g5.n}sq1{tS(t>@}ch/DpPk-v77O3^]_sr+Wn`m\z gּv2M3Sg+8w0x,}p#rBqOIW.5 FaeF,n㺲 bHW t'M)d"9%\|BϪuPgu@aW^c=N\O9=ALv3oTTIOe,f0ay /}⻓msuj&v_*'/vDflM|ЂH.  lXkhz3Rf" @HӮr0vwA)\)X 0)vnRIvv5t^sՠU0 Na:1?~rB̗ޛڢ֙޾j 㴱H//k¶$U0r5#٧4渨DtQuu:i t 8Oh9x]]Xժ4Kw9~V6az{wq̮#muUUPyC.@Ac;SpQQ2z_XV*ע;OdCB<lyƘ*E@hVОUJ6˱рT8f;w>7 }xc:i6 *2ߙ.N(RNFOG@Y)_)#LP e%8牆v>~*Z@|b,nkF,`V*^$jҽBZ՝U0R#~Spk;G7VV=mZ`oJBIΛ {2S)CRKIU5"-'?hQ <s..ݛ]8n,|?4*rٛ\J2zNcj-t;ըp~yۜaI#v.0BsaNȠ =nnhsHhd Vka+:{z%xcOnV91d~Qc4S! ΂h:A$~yK3-$s(zL;/}!zeBQ(־:UPӂ}4T !Y+WkʔpˡJa8b=IӤa2*'($|#+^~1CV#`X|>WAXMYj?c"\kXK=?P#O}XRI,QU wӑgrJfz7@1C6qpW7U$^EpT6.t"yT&cȍ}-*"uco3Cs"I,ϺhgG9oE4U)gT$|[3狓?;f0YM@jMrk ´>Z B+,_qw|L8i@: HK8A/=8&70,:s lI)˜ٌBCW.A"VgGK r SlYBӜ3ꞛ%X(ƀ6[NkY. QdOt AL2K*EEyks{4?q,3W\zNi+Hv޵;` 4dx֒yΫø5g\C45XDT( 7s C1M&SIrG}p.z?ϼ"v/GcK5_| kPinMTlѽh|إ"hg(D L4sޢɐd{R1x[MGP@&#qlfJgq,uIYRh'}jDJ}XTskJKnIUXGzle7vkl~V1B7c4=h,T.RRo< PAM;@) ãs B]?%y4z忾$A4 QC*+VG4G;szcCIU%,?ˏy,pQ3lP8V7v 9Y䡜ӄpO:wT)T}՜nѸ m .Mcnhx˽6/DjwBz^;oH;GuBEc&>J 0G7{M̏i*ߧ!↏Fu5zhc1  1"tI gnKYcQi@-$Z .I ݙ|: MI#+ꃏ"@ ɐ3ClV7,8!pC_U10 bvvhcJAo gŒ$ӪFUɽ(Ռeh' Ȃ֧`koO% :,M Pd#KW<řłY h}d< kfs],s vǾZw_P|2+>q5ֿozJ5){wjN^Ϣ*ޏ̲޾\;)P`9Z^ӼI}${ 9Aœ(e| %3sS ]'ZDX!D\0H/'X :ѻco(猢+n%. `ptV+UK .a?gEgɼLDn3 w=V8ڵY8 B$:%U^;%ϧUyDs& О!B(Es#UByQaM{m᪒tmH,LQ:#a ĮgKAaq7w`ENƖ9$F gaXRF g /۟/=~k Yx P3d4 BZr'?Eh+ٿGC(ﮫض_8|!=vPۃ\'VH 9ZoGPdќ*5fB =U.*N;4,ČI Ġ!=7d{BATFn. Z?l? i( |Z3RBiB<##$=p/ٝ\z>@!LR>:_C~Q{NZ*7G'C<@÷EUfz,dlye/JaBCFvkzF[r*y7wCO >a%Y):;¶  X>| Af^M+yjޒ.} O]vuk 7_>ε,C'i0:RE27Ds:?/s"э?K=ށr/:ҧ y:l+=9tN,m+}GmrG[흊K%ce  AD4j.!đح*=xԕ.f-㬯X`ІphH0Uq!䗈%V-z -nqvwfu^'%7F|'sY1=ei?~RtZ&%r>gNr WV)qP[`ڣ_d Ҋm~\ Laɼ;>Ǟdc7ylt/Z]RmL -[>vN<7`盧P Ez͓,L/-4spMj,>X9Iq_?ܗhm:0D &)) "JM۽*_Br(_ $]V?5 1[OU!>#pƯ;H -ƪ^T ۉ_[|.S3jB*tTvedI41HU]S`iJ)]Py;+ػ/?V/odmzR%ib+YpgN!|Hގ4Y3̒Q(33w0Qqkf|*6DK kJfrmY#!` G颶i= /fyZ)t0:pa}|+iTCEy=e>^Ob93=ilo?+/լ~rp'YSLD'Gr;/s6%b;ރgG -@8B&S8}zDFײg YN tS0~CSoA/NNĨ'UÇ.p0TUG>M\Z` E$f. _Az )O`Kg]i5%P:QȀrbAWE\ s!h1{U +;8\9ӭ}羻` t;Apu暁 zlw& ]$\$Ê0V*3peYnM8c_]3ss9j.*#٩k_bk2E7HDo=%r=г)oP'_vꞝ4)` Шm*G9M֨Ao|ABm 64BNM$ii.T:(˱qyr-ׯͅ9Hw5xrNhU5 |J˃{HEb쉫4c킮0+ٔz3 FŀQ%"1k`%y*L!Q3[ϞikίФhia3v$X;AƠxVkRM.f10gU9ai\z'۰v7=ԽwDP}R*K[>5k}mt pdװ_S'2`sYij(|t!E d']m:w%˖2*7Yvy*9 :nL=>dPP <<1A7ZՂk?1D _֫Us`R?Jʞ3(I7Pf)s)5!nlȀ џ=:4XT:heNAJcd\"F)02jidA^7*IJ atVtӍ+4|B`%ʖ}@ǁ{o\KIi3= lІTFbttJRT[ȗWNouR'ӦeM0jTڪ8;&+yYêNc31hx2ĹRJ5"r2Ѫ {hy$<*g(qg<>WJ<g|kzEp_ [I.`K[=`M$VFz _+#k.G/h6Q\8E=p9U'i8[hUWׇ'h!}M?B~?.8!A(f[rB̜ӽ!ocצ E0~lZavsNZbWٗVBo7-0>ќےְG$H\'9/phW.Db\NɯZ}F R+ʒT&I&A`f<H#vƍJ>7}d\3GCr){wʀ ,~xXʟF. 5f1+Kᬠ7ijN c8\XO{@P2< a$x^)O$$ƭ#[fd0jܺ׏JX\de-ɜ~Lһ߀Sijj}w_<4ҿ<1cPn_3mYy0(HcT^J HtqF(V=O#TY"mZjy>Q$07ӀgTD*oK]Zio&} RQi$h0ܬWwuL&%W-2IM*h|^%l(KfZhۄu TeO 0o_eA` . e+W TG[9o-dIa{@WbU٠DO z P]Xη6-(އ;,H58=:fQ |.$ CKIq8 a| Or7#~}:!Zo 岘eԗ dLOnL@ǰTlsZ`-8Gq6uFGYdRY} =GoC3eCIBM2>WWbO`hSV^bBh*͛*^AAd4kk`ObDIr4!qK '٩c-#K}l:ׄ~aV%ޗc_?s/BVV 9+[(lt'qUFt, q/,ҕDӆ; =OJQFBA+DzA08W\uqX/dmdh{sB?% —|Ys.1k̿oK _HJOzU 0C55]P_n=$%)w vV`FJ>пJmaS;6_\"+gcpmlT<yKh9C wrm-6 <=ל <;&\LT IMuLツ{ Y4p m$07g,?e3Յ̜)Oe9AɽEZL߂7c3ůz؏0/+ƞN h P3GV]zn : U\6/EvmpA3=Ubv8M6{JRzB4yN{JpFs/Y\y bkv; ٵi%QuG)Mnuvq~DΈM֨Fi^?<#a;G`#}4JUƙwY*蟥$RKJ^J f2d=-Gplx"Gct!f]Yc:& 셓U0R~vY"GB3cf$ HAS }H`%d(G#VCFݪiwa}+0'粙瘫ʸM^nK TI:`nmBl]K;m:kLӡկaLf ރwVv=3=g޾}m4Zh5&_̻"ӿf44'ـCFr&,RR6fmSU0t| 8B0G#aLbM14\` *//r'YhO`L8lQ9YY ̫X -l#2s"+Db9"\)Q~UpyL[1$mZ7NDfhDN[:~WzAS]kf6+(34&6;PR_zĦ-_ inǢT`2=(~s#6F!J;&i$ p̈t|b QXc߫NW _y"> ^-(r#5ȁR"|׊6w(Վ ItȖY:mDb{1W[8[:+6YG yhtL\왤%@i|\$ZYUwjHM,^BE%^Fw.zƨd1SY}cUf}pQκX+1\; -L_%kl%L;m1^dHw[VY.HSf.^=ï󨑕雚>Jz7u[ȧ;FS|H(C7[PVL479͝,Vd'33D R%aKzI(cgIxT.*.Mٜx Y7b<X[æe4,Ȇr ##urc7p!*AWt9$2*A􆕲`JȏE}܉7̦D$77ȂiܟCAnI,xܜ1Kyz1c 4M@m6~@x!d7ck%d^Kք,Q$K,Q컄,~y;yg=997og, LwaN~  i%?51?wsmpႷՈ z gis9 ;eQ-XlB[@BRif\d8#2133nMOgٖY\\AŊy5|&TmPn(wss;O)We'>|R`bbB="QmGx%O%x{RU \d# OlI|)?f$ 0{/RV&d3{%| _N9S ɠbeQˊ,ǨDΘN̈5nbP1>{柵si Uηxp9Tz5?#8\oD=sN{?kHrQEZp8 ˩y5Iii5礏 x^+XI R$ i[JA QM&җ ?M <+99v!/,,R?.#c;Y;8c4: Vk }#bęF|%\YlKoYΚ{'pk;>'k1ѼĶѬQצEV4AJ3 EdJC1)*&#t^o1$O$KN\d4M^ ѱTqev|8Ǟ\7;&AAZLKP=h7vF.$_,XyT^@%J<ݻnNiן\ t| b:Dz749 ErU3޽1= bO_wd^ V.M m'lvBYYSV羾5g}Wp)COi'Q0 "d#9@ؒ943K"o(*YYbqFF//*b| c^O݇K4鎳 NK0.l.G#XLVsKNBWE놃APTJUGꬓ⦠S$9*3|:#=8dZWކa#_2uҗև7& 8i''3V$$,طT-Cs͡H< o<ʙNQX KgwrY4hɤօwJ/~?+e#$H'D0‘=T+81"_8E=ĉC G)B}Hؘg'>K?v/_* G@˵=&7Oj)5JVT@Pŭ@!,`?\?0J<:< tvtq PTF7׷@njbwMLcH %W.QIrdnkV8#9cVd@o.f \Gr2:#;>Hd@(W KW޹. ]GLٗƼ@V,SG N],#JEt{v?|!TL}U,EׯJQK5_Q1O5|SZOiM}#ʴK.-?v-s];kob ޅ|Wd7M)̪@̝~FK9 +O%80$n,d%: sOǞp#<oO C/XVQ.\_8kOo8,V˛ i-MfƷT@#13cowCH#% Ìֿ%hD=-fL6BѾ] <\A:l'Z[lѷU'/^/(OaP ӈhHLFU+ ڮPJ9\ޓ[ 981I4<8Q6ؽz3.1joiR+\;%QM<(/O+rYchxi1|V;f=XZG[?t'\I\K/]T Pp=_Ī OW6ݛ -24:^3(w'l`p5A7vJ࠱_"CpGJ`5.J\ 1VrOp\Jÿ~j[|3$ KF!ߏh KkcPŜAO&5Ȩ-ɪ|߯eeX Ѕ>]«w=řex)TP5w"]$YչRud,9S\Hy3^!Xb<6ԍmz8}ݙE1tׄHqgHL&c_ ްl3z[ZH#ಆb:6 :-( _,1/W&ՠy}]5:.G`$iF3f#]m\R.7 zQ̞|y2SC/KΟg {1Ud8+;ocoW0:k fvւSI<>c컏֘p+k'00E5 LQܫ;H|O,$pH|ž8[ͷELng![)h7+rg\7G%KtR*\ǝ"ÌJP\HmS$fy0G& ]3{U',YJXݶlIˡcV>-Ȥcekuيwk U"2 1%DZõj9+tkH$ w@lD4ҘGxu OKX̑BbP+Q'w*02}Ei7z%E y&I}u^oX~4[rݪCSA+@ _On/s a:XO0u w\uKf %M޴`޲A^ɮCQs%K_FElϲ9M?ݏOEyzsn2pt>-EXzv||C[ԃ}qc]եf~jլ &eq=f0Lcfwbv%^0_[Ͳ {mf LE>A$J9e,Tĭz!+NFZRePݷ@Õ[nT60)UIݚm &]~&z>Ĭ6lhvk_CiwY@hJ?+ ^z 9o\ E/2v( f3m͕0l2M3L憏9 їߤ[ޅ'έI ;U˼iD!譓 [)x'hE֐얤 oa*rJxf dmn,a`5P}Zz!Wv)5V̗hoxAf>M3[aZ _[x8<~=1p6P&HM!hJ=w  <ݨzAϟ:CNx$BXFG+87-)[=UN|Bii;?Ʒ ZXqDQ`iC;P]Sۇ!?R~h/,W^ ;1vmpz R.M\1L}"7&uHn| +  9 ԰ǧ׶6i3~`YLс=%$CgD 'ۭ5?fh產+e٪CBckwRgrr+e)v8,0ݺ]j3*ӗ nwef}7L=Rv_tحP,>q4gT}gefm>G/xX%rO?,׳/p cA*E|F/o hoNH`1seWJoy6[I~+~z2 4z( >9?uYhk;-4"|1L?6^k%e\;yF ,8L$cY1x΅)){!I-P|9m (4W2!siקD!>ȳb'EL?b&J$s$3~(5P.u~]ּ)cIZ+"@jʢeog Ⱦef ,D^ |5؅ʎtQ|"99"Ÿ|?e~XcY ?JW̞{#R8O5 FtHWC1dh"޴dZ.fSIu݈ep*@gb%>ߟYP~z4X_x`,6d)Pm}ܭ_htSqCx8]r+QND-tr*{VEٚSJy³ͷUA="%Qb\b䓂J )il|m7윫>KVMUGl3|Fy&kVjX?:Us|t/{n%cg_#A\K,{u4&7uiu}<;`Nk֮052/!z͎ ۔@6$UaAW:%|yiq"m)'Τ&Iլ݄ y;Ŵځ;갈; ; c/.h2kY&o~<"dD,=si9th8T|Eh>F An.ݷЩFEg˜^m"u&dtQBI퀃!s q-+Dށb·4v{VIu_E&u`w#m{QGUG׶ψ;c@g_4wU 0̳( fIhI!&rQ^#)Du-s`~ݏLXњ:y.C,  nrɬe-B zx#uDKSAu½!'{BOJu~F˩s;|t?)]k~W;xSBp:Ϲt]Ԍ]rBHp7{>[٨:n)ƿ bKιc/1q4yD"I)O`Y=@j7P;|6I/9}*]kap/̲2vkլ{Bs*m \^L SIn) :&h1W|+ et? İ}`ŭ w H8kG4AfX4J6ϾmWKHNx4˿uɸ/y ) T`I3b˂j b3&R=UwoB\DZs⿼N\L b{Qv7bMDmfZ%]]ƻ;(=Jߔ g\ׁ u՗f0Vy 0(lp|~eD\1`fw]FdL@mJߪL01ל'Sim׉ýo5M’en 94*UЛgfOb*._x]#r$iQ[3@Fχ@<ڰ;kc"nuVа"@|R}Ό= D|10?nO:l,DlxF4Ih;ٍ}hG՚tvf0B|i:Q$rP-KqmFZ7˚_=f*5YkՈڋ!w hai[a3xBMWЈI]ĥjyk=yhQ+|ZZG#`'˶X(GkJ>>uyRpAd?To:CyóPfog@&w>$ d$-ońcS܏I:C6҄"\kQ-Gʀ0YD D3EvԜ!R< ERq-syH<]iG=*U6Q }Rޗ~niQJmPmw͊t8WM7t՞F\ub#v>UM~WXmѲ+ׅ ߰0PL*` X;S5WYٵrpKGZ N"/s}H`*&W׷}txT}"RZPSf$1<SR"Sr%fGڨ>Xf'gU-x}}f`-X LrI9)hoY:琒.Lφ_qTsN o6\i4c 2!fpG=SI kU3$nMD-DtST S/Gu*|*+b2IyUbm*߻W!sqN)HFaA5.Uk@Jxf]4U]yMb wf -3_7 ԛHXs1TZr7H4$GT0Tf,beJo+τBJ6f/=s޲28ZԛTL7fvZƬ|LLlooxV?Bec% cb,0P&$ٛvbǀ4K[8,^|0^?9:\NkKLv$R>S)"_o c{E&мuݟ7MtPm̫{sS&c<l't%uָ;/XR7}{eB}:S>󈊶ĸ4O )fw! rH $u0}6xb4\I;޹3r.oWmJVx-S7iӫ-u_4zpa6Sg"*hA%|RDG|8#<ޏh2MPvtV|M2 #(-_G#6V MK\T'|xrpR_egrl&9k׆-2W"'Rŝbw)P(v&[(iD H ;C͡e NT sN_Y`73E=gRbvDx8&7$=K :}49_1H8}q&h885335$<$r<LVȧe@h!0 ]v&^G)7v̩zZj1Tc!Ỳ32g!txJeR` t@-ΦD7WKmdgg;9H?5 lLH::ru>|GX8bGP;{ыۏ=:|vFn%rS9uK2tĆ~ FQ D?8)(p ^w>uREn@#[8tVy2 ha|L`Aamˆb7ǮE ]츙.%, ged.Bo5֐>9oM jhyR٘ "iC9ia.L W66M76N2b`I2"+N T'j 42Hǧl>">BA${'=l*qȑ&r`%ZV ,MLPK%C1+h6A7'nuvola/128x128/mimetypes/source_php.pngUT `APQux E <?|`n ClV(1):ɡ$l3 !TTjJQ͜ϝ9!rq۳~{uu_ߟk'gJ[=\vɮ_B+t.PNV/Y;"$,T0z+68"Ʀv@wAn> @j\ pssSJNFfj4(k߼0?] 4 b f d׳VRWc6{\45$$H FIVoMU~K{BGUuY! W9ٽcO$?!y= ES16v)CA}23'77=`cxؼB}rX_{X&hɵWya*V٣) .; x y3v6zQl" H646f>RjְU5!T(o2d)\cwPf_\?%C_6,43##"~ [@zzx$}!; ДOj|. y{2C;<֙km{IKpU b&LegWU2ٺd?S ]VoD&d߼yeJ pv 9CaN(E&|γC5Զ1.zߨrTO59 (p"^TW{s^3ecfCedƤd4TdwlFD>:nyJ AJ}n|t7`DOa @yp3`Znq.t7Gq7<x_j8J y_[րi/&yeCMB4†Гz8nP soRSFl␱.-Ϻ66kZp D))j@,uvlLDm_|P/[qF"?V l/}: cnX飼 vAs;  ++́j)xZKe:y?\'R?#ml9 ;~)g`%<."r$%|~m+TLDtu1UmF)ΐ /h>4i>j7[E#d^lJch -J 4E`Mk~cE`uN\V|v3g!%Yӥy@_ZR k?94Gꮒ^]On$zHR.l ̜Pz68!rq|*}3N_ϰN [%ZMI!)J;wcB`noPhJq! , B2BJ[vxW9 Z6]P b8Gup(ĊB$T fbݬӒ};NfT_3&뢦ikTr@@='"K;%3_8 }zL}!!^Jz ԅ?VJC4DF؁0|m] D* |)Nt%MgUnd* /Wji3߾vP[&WLlYy'bn~Ɔ] M`IlbUʡS /ß!co bC]{ ޲N4E6~-#^R)$6eL6a^kC}y(Fw j ǪOV~.yvr=닸ww…6FG\8J}x! W3H[YV݂aÂ[+P05q4fp#zI4ɠV ! VѨ~ b AؘTL"ߴ o(TMtQEѰGZ\֓ªϡ"^6vO-*4OHȒ^M1Aբڝ[UqC*ln/>.W %E*@\7dZBZohRP7/A瞨5.>++*G pH|r>5%BKZ2oǵUgTWƥz- ӿsm7=srm5/OnIzw9heT5Bh{= M:M; )P[]k [ +5xcP2?u>zp}vfxnP^yŎ0bw)'>׊:frqw ?T&` a}bkG-~U+n?WB+m w:%|*pX)pz3 c8B1V!܃2=0h! Y9-GqTi U1cRlPTA$uImm7.{> @spt5ˀ|5k g$ YjxM‚.AZ X_d,0c00+]R&=Kh"k:z`fJ/ $ud"|aS\,W,VJו_uc6ooR*u" Y!KȜLu9́omq;Y_Kը?"NW>fJP]=m),mXuM`D@dvL=E\vAP`A f艟/ Se555ι]3ŒmX PpljUUA*}PZ|~nE{Vs ȤƔ4*:]GI>f` 9 l%$씉()m6D&}&3!<;Š+]Car>֜!nzsL0- WxR%᫠ґqFT&N L4JDØ5hv8}q ?.P.T/P + 9k,>^ ʗ!.qx!b;>NBÆ懫q~Aq쁶o`.ҏ뿭p_nRSSvTeY7`UR~,V9DGqjFsl|\0[99^nn|| +ϏK \n OM eњ!2? `CEGX4 `Ev!FB|rmrus{.E 'j 2zl/aW\o9pdwX(7m-u 970iZqx.ذu8UQG[NvWTڴsWhmHnBۼz*&]2#MojD!nD: BwTXhOH]91YY=> 32o%cRo-X"uw:y vW6\+8[$^嘫=F81r^ XrzFяρ@?|?Ʉ+LK[qaL1S'K-Z5Lck$DU0Ee_U| 2Y5I=8y"яm .{AթgZsH+~{׈OSϐE.gNϴ7P޸_VLS|/#xpkzw~K(vrԾZX~%b6uE5Hs!z*Al.榜Yg~ 6|8r\.Q>&vsh^ܩ3ͧ}IErgr lA׌Ԫ˗uݯ[p O~*Po15# dmˠ}}P @Ү^B3C/dIϒfՕ,xZq&6zۅ~I%odEc~@Qp>%Lޖ]q\ndPʖLGKbK1t2USч|aSO e!-bfEd!HvO|/K8gSFb-* -V{NS_.55Zs=7lU`D$ P(B8 D#-HNɤa5PE1'UifR{chОWlʯ%i_*3=7?7ߢύB x 7F03ȹ`Pd][=?珘>-*wKET)ɓd vH孡c870 tS*=}x&P 4Fr+7eYLȱ|B~euuԂl=*U63rz3k+<\Ne1 >pxHӧs9=ʎfMi'E(`]ҐӍk̙9b2 5+ETI3d%Bт;!6rˑ:Y7WvAt^|SFהlGuv`s9HbniK\:~zRr{/361r) || yC ҦTiEn:ߐKp8Ta3}ù9laJk=v줵f2疬:Ř8uuuQ~N-"Xo) qER$/H*C=?aKcsޠg^KY*>|+b3Wݑ^GPƏ!|ɾ[:[$H4:d}Ü`HҲPl2U/TgMOȐ]e- %PUjNP%<sd#|;;c|m(wksޞLs9둁] x)aq:[ ɽy !a.d\F2tomKME06oz O nF`ߡzkX׼YE[;8pct Tx?bC3$N.(澹ïyWl 2Vt33b9-j1D[W&&Ƈ\Y H_R+c{zZݐh*=x)qoh?GKeY MNEmdq58ln3X'8&z*J  ŵ9O.{ yWuAZ3a$I)Kޞ#ǵkS-si}#1&[CӎVyD {F@/ =<[ ;rsӜvmxJ,*6o++պl:b&f|3JU{U \b|Gf-a{^'T+iY٪`:ЊrJ_m/4`#."NY 05 _(5ű 677:1F=z&sBij>LX9XXK |3_B 3S 9>qJ}+q~@KXYJpL3nJU}O* -JS2 JՎ1ZSʒmk7t/OXH[3La[[\x4-wGQ % sLXgmtX3ܺݩKۊy0 sʭg (iFW< %n$CJ׫Z-v__Nn?Sx B)wk% <:DXB qN𯵟[xTqΈXSĎ֕Vއ˳& LW E 9ލ4N<w*4b\=5d@.oWH%V 3c`W >g.-K!؆$idP%E])(DQR䴈XynYrJ"A%8 ~_Is(Nᅡt5Р&~]e3 RAc?)R6viA{N'|+%92&3aijNgb;i/б@;a~9?|1Jh_cRmb48}cRʖċШIJsҮnXHِWhl8TIMkH5׫Elw=:|jy|cejW PRϝe%sK޷?U=DIXsPh8/Ժ'ƦG1}4wcl~'t ]-^8ڿ<H`A$#Qm[nS5a)NL,^(t9]`W1:ۀ]r١ xH} t5Oy8w):&EMSdffrXͥu0vܘ^ȾSK[rۨed֨/_ܸzh,V(s_/'w1O2+2eF6S蒿DSV|fH1iHֶۇ7O6rw!@B6Bw2EzjE_ PeZ^&KD#bצ.˷X6A_$W`VnͳDWG5ęryshĀTDHUW5P݅MO'ӆ{lp<ӷ,f":D\cֲs/0SQKW e;.XE婾S[3c[<͉[`z{vY{9R?"@rX! N:븡,%we_M\ R7~<%0<m_kBZ(Xy7< sk_]SeZK$Le#afwqP0fo=bhvSu*o]`϶I&@`Q.N{M3M웬i*u)A SbŚ]l^ [q I XPEt怤ow=O;c;Gqw,֏XUИѓO.= l y{E?C4?p7k>Ќ>~iT% _.7vBj7WIǿSDMpZ.P]ćM3ejg)j1╂VA./ne MI\{(Pj`Y #8 v R=R.{ txzƳfLmrփM7@եyxLLX{4r]NˀU`_-4uv['j :c+jXߥ!; Q8;Colau,|yŭ(4%FB0X,&O}b,VkH"yEV.„Gևߚ6(r6%Бs3eW] EpńDcxu\C0M' #:OY{K\Rt](v2Gv:oRd Nm|%!oP@w=Jy]a"o,1OeLoq?vUFOWuMN/{IK#˙$ ፟ScDm< Y"g^U)|$ҼL:(q#k w3dr ; ~ :?ѥs?XCޓմƖPaQR@:w$p՝=kEY/G@+󈂊#Nd[J R5Ȉ) ; m>%uy] @[:ǫ I3ܮ rVw x71lNHlz@K49H} yû2t7zd^KΑP!ofūͅX.9{iOK>Dc]v+ |!L6%u N/D[8!Kuyi,3y``hgKs|2+fE$ǂgtb3RdfY]wZcp_ cz7 Թ|Lx_xkQ]A_ևqC58{$swpH$iUGs@Z2GIͺOas֗pspU+ o= >ؗ@绊)uTB=70m2IHcXg\S?G"zlMuD><\CXx'snX8!|ΈfolU",Leqh(NWOkǬ̿+lrj GRC'ݽv}*JOۣ`;]:xEABiKlnY#4Hgj%Bkx.amm1Я0V_i-wr+69iF몛&m㦵\6^&v)-brRFڔPc%JJ0{,,`}>(mUU|ve!Z>z^c/D&'4ӽ"Å;$S`yzt] ^K p{R:&w:GUlج $+aC 9ɃFYN{S8C([&ps|ӜTrv]X"Bsž후?%16uB_-i޴z#ERн\쫒,LMJUF,kd*إf{WV-.UmsY̝o{#vWe-'R'~5J*񂢟}78IRu[38:#f=e_ZfJVaϻKVQu د[Gv:тdΉ4GFDUYw5l=r3h[SHp7XqyIĖ|c6]^5.˒Cѱ].ST(kXpn=t*)}~q}=/T|.AMFB9h;ֹ ^oۋ+t\FhtKI:d]pr s]i7'zy vɜtVxV, #Ff,}h׮PlXMU44%NԊ}kmݟU7 o4qZLkOu?K пuIdg^UC:#%Ecmo[o./Kq :ܞXr_%W'׉pY>^'{": L='ZX:_BU56JVW4.l+8%3W,{W$f@oڂdќ]H+v&=vRfobۣWTeyOaM{.fgw|}K.۱󟣜oʦ5V̊>2pRfi+x𣴀Lc9g ?i 64m0"rezwds%x`"}V 9~F{XD*zh)\f~D:I͈m9H *|U %{G{Ez 0R߰]߰I+tͤ-]oVHgYO~Q9tg~z`g_aMɄp#Wl,Nt7(x~m~4)f{aCZ!d>cX ; 2tAI'}xjΌ~~O-ppMb0?l} (bjy 1xDF^O Nַ";aaxy" 8tҎg32 miWS8wbqWnkT z&-o 7†~D5k3﬇SGkFw&r4Hw'*\{7ULLKKc!?oTŁ\+^F׼iY ٛ4y谦{ӓݯzzVT'kZeˢ"ty)& 1a >'>=w2DjE)޸_QZ?C$7hff0:mڣjꪧeU={sm$A"ˊUS+=$8A(`cI5q0x~lnxjjf;NI@MQ *! l'AW_ĂOkmk|-W5KZ{V; ]%D,X3;-#rL,뤠!Q*!CkW9,۠ :C㍫cKvm e.Ud[Jcۉ[=YJʡe߮#*tm^L !yCR; o !ր(? i_t Ą%%nvߑN g|,3H/x1ݱu[)1åKʸ * yVtәLÜX[PYYɣ8 4&>}* 2k&K{&ׄ1JSl:aP;0/ϟ裡{oROJUlOy ÞQl(F!-{ׯ~jޢB%tY%QenaAYLBBP@ƈF .pV,Ia9bccÜOxש5URn @&ufF;2=ffIo,#maNll@!62(;0s93yEwW@e"*%[__)1b* U\fҰ5~es+58;%["0cШ?7`?UB+BiB#r~uy )6#'k.6KBh/!%&#Z$bL'ByKSFii s=LbH)#6I0ѫ0R~ៀ9BlRvv&|1w~R9 W*ԽY4 {ЎfNR})Tu]o[,ߘ)j[pVNb#͞MK U[u;`8B{ޞO80齷5@ :aϘ3gwZy'6vSrMV澽5VPpy03r__[$]!>{nJsOLBy.5Fa,: bHWUؘϯ8o4]1d,)9\BNgu@aý!zR ]ss/ERf{gbc*d BeA*q f>!E%ch箮)g I;Qwr7mK DuŊt.Ez~;#gSŲtX̐C{[sgC5RA&Rd;\'Ǔϒz i4@a&nؽtb^x0 ዽ?F&67C51XWZTU03gȫ:?3<4DtsW,kx.Ƈr `V+,">s~3%FE>{q} 6gC/6r9^KֺFպf?'1;"W"e,ZIysVuϽP *ۼZw<@UIej4+*iQTU8dvDo~iMPBn9ӭTȔdbzo߅ql&FB.f0`tYN|% B'kU =5-]}QPfiD2]4d-]{ HZ PK-_] hv]I.-6.荬yPY U=bm`j钺Gsj`ZZ^a5 g{[&EZ~vAU4 jndtlu~:/tz` Z x(>Fi_{ 3S)53_< eȇ2.n)>;(m*oIPG i3AmAQe]w\3jFE40&(q~:Uγh'4Q3e?V; όrNvYz~GBucq^xap-O'%р?c\m&0 (i3Ps]>ORe;1e\'t.. nSf7/+jCѕ![;D+)BU,9Mp[L|=^ʛP`s{ !nsiǴ?(c=9A76z2Kjn_mjQs+8x>/ฆa0WtM (,liF{j6wn[_y-JEyOW Ls=dҫ~mZIUZk\8bwxR-*F&2Y?:^VA].à7UXmtM^q|N_j7&l_ LC',Yی[rfH$iXsc>K0 K{ Pm0S9h4x&bj" ?E' ۑ=7ko\V-ج/ht?ƶNwRٟzgDwD硐)T9üqA;lt}cT՟|H779yχk-mw~uh&Jv){ E/ܯ1{9ZV8f⫝̸R3}zɃRw 7|mWmB,3BacH;Šdp- M_?l .|~^Fެv]'r߇&ysϙzkR/sL8A4O0AU 00a'$lU߳n\7 &1bhxw (.Sy|;-\U$R.ԶwG3( :he sDOH+݁^:S[V pd6^8;aS32chxc_rӬn0Jا9 V'q_c (u׋?gɇ Ađ{ff,@eASUrPIe5x^3L W*VՄ,".,Y^'w閻gpIAV[pZI ,nAL61?J(^0Q)'𧑄-PAE(eB).{5} ]dܑ19!kn KʊdEyF2?zfpH(POrd44U50l$fI'aK_r>Hy!Y` RԎbOGR/iC,QK Qp)ߦ^iL۸DQWb_jorC"cs7*",q|6~֯Lṡ. L(nd?䮧& Ms,{mO +]=qHl痫X6 _ ѧ/[ApMDs+-zrfxHӓ{ih6TLbwU ~ }M&+"pרtv'j{x=rZwV1)[#& p]p={l'AvҙpWnyne)EſLu_'*xJo/RF遄%B}m ^/-i#UnBuh}F2'Yt#R,d0KZL1Ͽm J|\CB~3j4j$Xץ`X|VC^#FxRw~#/%mDy,T{Oo>$䆻ۙN#gԞ]#Z>:[+;p^X"EdW`#.Gߧ ŷTV.m'8;-Ds%4sl8*9dm=vҟA)ܾ]b8@3*,mE'PPGZkyC [c/AJ¨'Vk.r2 ҕW &.-3 EW&d) {d Y]ԩŽ+GSRv(hd`)1BҌF{B3QvtQq3;Δ{`ڵ #Hzg[0#v,t25˭9Ac `^t~lDS栛~zG7.t@E #Ӎk&Ajs7Ck$dtE,Ig,SZ`·l-8{huQ`*B#Ӆ)McV"R[hUs' R[,=jF 줆jOu-t^ҙ=G{rѦsʙ|u!k2ι{ N;Mx%h&"Ap* hV箅v'l %gݳ=,eq\*Q#a4RߩUm\aؑʀNt SmX{3EW~h}Z_NuxZ݈ -O~7uGaֻVS5̤GY߂<h2Q D1tl3uAD͠]lgyn؆g+Bk#lm5yXEG¥_焣V9r$#~[Lidc7؃F-@WN||ⲬS8p$PW z]6^sH{6W.4SmϼN0hmk־l̑ASZ7 t(Hy#?{Y* +8S$-om~#ut.MPV kʏΐv)p6] OZMEf mg$ъZfГNJӡ̮ nѻ穞Dғ$| G/7[>1ΥK;F)dk?z\_'N)e6yeejTܢ45*/}Yênc#1}򖁌A\EY1Qn3gu}׻DvOK #ܘ0Wpug+ n 饧]͆Wԯ ވܖL|uY[ 㷍W[Bdi@$J]PxƟ<&J15w۩"i (inE]ݟtJXoO}ChGx[j1`O?9aHuV_ݡͱI"p0AlZ^vCߵ$p.,ݩ^DO~8ҜYհ=H$H]'.;qinEa]I*}fҸ2\nZ!MJ`裌|9W_T &渲9;?wUĹl%=0c66seV1[\.c.EwHi]o.;'kJ]Fq[ 1_Q-z/J5Iy7\Ε{2r(0hQK:!Ec7Tɬ*M7OuG@+/ hҀ"kagŘ d8nlR8=5a4;DӈllD#e{$-jUO|`q0E1Qe+܍4,yHIHyAi{3YDcWRZ0`^MԍTNgc-]|E-1"‡.'D kؠ$NA'P=184U |W-F\|J=W%fl)X9+wnnr$q<"QUWy-qAۗ@Ml(JO6ji;, n(IR0T2Cg^8rBD8 P(8CԶ/LvgtB5JO*6e>ˈ dM%?gZ(#sFFRDD YFWE!AY~Xt. ?ο> *_c?)D*H@7/E<_[Qt2);+Y .o~4=}k0^ʇbJ|{샚t3n)Q:(aTQ>#u/oQw> Ci)ۇdB9 >>Kc qCv .)2}ԃ*?|sP؝DD [|߮s_£х-ʥ>{E^=$-Kgd>qn_"Fr4~#]3ɌhI%cϽ}+t*q`pE/?sxc믥% s7))6vw*:}ƾ^b:A/ NgCcʩaT;\uμ^!Կ̫̥*"tL0%ϝaŗ*`Y_AML޹v+sO vK҈?LdqXϖ𝢣(E,Hz’7 so/զg:3Tqz p6ŹPJ$?~3J֗AlA%d5_"7L7FyG,֓^aˌ1fNTDrg'6w`j:)tkOf}(HxnRSO2+Ǹ\x$]yU=n c8-Ng!eΛ2!ՒmV:Zl9GC){7FOT~CJ?)>9KDS)h[(L1.D s܎Wv}l9UKC:2\UȠ8Ij5˂Vʉ_5ڴА6P"YQ>Q6Ӟ ӖVq! :!KEuNR!TBñR\2>B"(1Q*h.,N88{ڛq 쓺2=nHA'(GEĴTWjqXnWǛmi%N,$R1߱Tɤ'7NL,&H #9~&a*wL>9ЅͰf(ϨNĩFaVbmPOM/:™jI&*a? YHǫ~G8*Xx4eb6 0PIh5P }311ffg(*)LWEQ|v.ǹbRR^0V_7oΆ>Gp8D;F~-@0)\T0LI\9dK^S0$~nxCeW7Of pWOz6 bXoQGJTC?$c$S'f@W_q_c=O)al`Ls40'LJ8ZD?bX40TJ?pcO)z CF*uQVޛV)kTL'}=cqH)Ye䓬GICae׋O]]]f HXgP)w/O?`)8?)Ԥ" /KծW-ƒg:%C)iVR3FF6Ol8Hl 4;)#1~zvmJikyFBFR2RFFfhH6A.w^/ӼF^Uo#&iCsbuJz[ JEđ.cO*+*N&k.{&3,1>Ջ;Зev=X`P@JJ (9 `} s! _Q]VKw;0aszpA3_Mzhmd.Wñ&Q?Mx&=C90eDIbTK6ǎ3a##mVyQ =">IN@2~_vаݘ{mBABCM=Z#L#B7 J9@ .$-.i 5JJ406s̍m^x&PKC1l8+U,&nuvola/128x128/mimetypes/source_py.pngUT `APQux Z 8T >$T%d^Bم*1Y"$DTD}_癹Ϲ=|sSlm̘x`07 8] 18ka6Oc}wMЫWUEU^B>_y cc*U] `$Dh/=E;mNATSSS$6B(N-Lwo}c~TVB! åC<ʸ  Y+-Xiv̂{zzA EzݜHa&aNZ P`ALVVTX(HJLCu|YZb{F5%bL<(qCH :91g"̵|z{jj8~U"F`kpɭ!)\bmD['{i#W,4TFFٹ9%1 %B%a`9\pNL@Ȝ 1a&p/;֑' EJmChl_efd\mڕTӥ47OE9(g2cf9l:Ke\bVuXdU,Os  #)d& U\f|k]cs)5PK L?~ p 7e)v/ſ@ί̰ɯDRYl#}B>)_pYZSu 9-0cja(1EJBim$n u1 CˈކdՍH]bf/hw%o68);JўPwBAW} t!ӾBQg+ƖyoM6+rcRJh8+ˇm{ԍijREP{=z;S3) &s n ^) j$܎a38md'rJ[Y_?SOz(?ž7%ϹſHU&5F,-iن1H7HȈ%r}uZN؇[# &ZippvTA;ف !?ˉXFخٮPqGmn@{8GO/.1La?#ҳ]_9-]H[ׯ 2clK EftŊuζC<=QCĀ~SFr}"'RŲtY͑1[ H)0[Rb*d;nRb)5t^c ͡a&neTb^h0ዹ7 D,>|j #11.HCʍ6edCCa xg>e.~}ND;m.C.Z%ޯ0YZ< )qxLjVwRBsOKn0me}E g~#d?9却bcSO9^CN?s&gZ0Dr'&;)\dO碌Γ*{zPM(2YpIrڳ@ :_@{Um~1VR/{ʏ3nO1D \3EgO!b Ө1.mgAT4iv9ѿȃS?j,#vo(^`n}ۼS5TlMQ\Ga 5[zPWF $k7x}AB(/pCZ -Wv-1Vxݓt *2:㌣ٸ@@iF@S)53_2ed؛m)>=,jhLPʦ <jڂ>.erq@%62+ry~riIZXð_[ՙ_+흏|gF9KNY>'At'ZZF!Z_|ƐgK"G[&V\?&z`P]' sx.TzY jrK:{1QhͫJ&A-JZJq@lm<*Γ# \]x5}Y.$BM=wS#[ٟN]s(k1J7rn41KjGbկ6y9Ӏ(҉H89}K.a8tb*>8a0^ [͝/<qټdҫ~eVg Z}?wR~q`EvG Jwuȷ[?*tcg5۟їm' 7YPD(GIs4S8Bj. [li`Ļ b:MHgBD:&~S3SGH-6Jf=A{u`粀^_joBxe{ҕ0b62O@pԐN C< v׹0хi@͐L^oĊ)^lgκh%ft%dz%akٍ(ut.8Lq╊\h@O4+l,q9~XfcSM 400(#NM>5.jwzZJ ;(Wv\_2mW3Nvl爲hH/vObvg {IElSG&|z_#&8ܠRmv5q 9SyzVJK?ݥcGBfPE ?&ņy/LzQyT~*sa1zjŻ{A?W9$Re ME,mTy{?.+1RJ*cF}2>ez;,aA#-/T'K~9"b K8 JLV` YbSEͽ=F\co ,|v^Fv]'{wAy3ϘkrL9_xʷ $ ЖԀ3C y[O%_{wsɻh2ڕF# pT<E ʳ0@_){8*!|!SH)!"ᎄSY" v3>o5FbZ1؅@?삹EEԤp ۡθӤňŴƲHG,Sj>!np J=mmi BФ;4v9?kM~^p9כTX>bA7ȓW~SN/U2~&!Ĩ2M6[&t:|c|aq#=:>jg XR!RCBw|8'x4#hFVTA,ʇ/K0JEzWȹ/M>`' mɷ;>\ch*(y3_6L\`ݻ}l/T:@ѻ*7EZ=n ǯ9'Q8EVyOH}Ꮐ7r&b&x6W3D>M ,9BdѢܻ(eL>53{[;[[I 06HR0HѺV-Mg7e#ǧt)2n"_9 S{VO&!8.} 88 k˸7>?)>Igy198р7'ORNǴ/(u7ы?<`ɇ Cđ]w]$6̅BYƫL1dN8/;Gkt9C15h/|'7[EJ/IԭpT  nڊGiY*v%nbv$TIHe On({Τ͓0BzsFA;(@<p>Ne)Ӆ+I#; ttQ>Xwe,"lAJ̑5߲kxØ>\و 3R> @?QFF Rt ٺ5pu w:qaԬ3rq[¿hA~rxf((7ߺd]L ~^ͯfWAܗɭ:1mPcjdWzrWSvcGlQGy1Q|>"*^8:rL0;/aWJBPeYoS+I{.v$fDӕljhtQ#7_se}^.p``yc V௰h ֎RӼ7w)ݴFQ[bvyA&1O*'=J!KpZO5qᰖ= FcE^p 7d_KdEĨ^V=|(R:`75/zQ6"*x ^w [Q Tj[g6%LiYo*yݵU>IC\7 E7.7@ŰyN ook}3W|] ϼ[d0֢o\P R8Q'hs şjz}8ϏF/f58~K@QoHJ-7Kw~Nw24ΰ=#zZ>P;l"S+8"tzN!CiF/= N;%6 ?s0[ .3˸≹vPI^w"U׉gkɢ(]vzR j@ZkyKUc+J Ǩ*5XK{̾1t, ſ+ E~gSOc|D"|q6Wn҅^S+%J'$*]/jt_&c1z_J\r↿+88f*>9uV@s2ɏa.1׉"-yl?xXj`e7܇,,@!+Gc_~g~8X弤~wPx Sw zmV^ 06kWdg>Pvض [u .y|ŰZQVkxP{F&3#DU*`. v61 i>ߜ[XA'ܴe8+u Կa(<4u)?wPiFjk231̬m=}W{ bvVtS>2zg'ʗ~FG{>Ϥ~OqS/#\rI2UWT5ªr:ԮRF:z7+NKtҰ.I/XP)>y@ \NEY>ᕮ2ѪqG7?16iy2I5n`}=9=\zSߗO5|"w$I/0~л w+E:SN%Apxe ^SFVhY Sx+ Hg5\-5c߮~6He~nZc+c10Gy#Ykē?}IX,> R*s<%q?sg!8z=eXszMVd|##u4˥]5#9*}fR *C 1 ?Їyq2+v &42re=!sv$~5;^T҉s^VlK|6a3/QnuN ;]F7qj'b\̔ONyG`i]Wn-9>7/g1R˷r/cdP#EǣFlÛyW&]1nU)we>IYd#y-nLҳ܂S%7_R8×AW#cYcR4Ĺt J~&fvƏ0gpnx ’hrpY ,HR q3,yԕ$OCß~+SW+jq ֚ 7UGn%sr8î Xd tm (K%+aZ6hÔťT@ <0M?U !0X.9%Na놼Aլ-Hk;gyg%`6!$BE'ǨĮk >*peR k&qhEKqY`NCWQ i{fL^b6kpRnB(Hm; }bl;[!zgmB,En%&Mj\] =s=Ӓ{\!6$Q6Ao#܎ДÊ(W֦gcΥ?/ (]c7@j3=y9ҡP^#~ n`Fvw}~_b蟞Ḧ_gnH$]i7F]P81upʯ;"E)SAH:'c ,Zƿ`[^hGt>%86pSr9 $>̆="ca}H)vrͩZ 4>LOLW76/nBfŷ2gT섿D)ù(Ak1QGW͈O5Kbirڷ]o*#IS).5[~ʎ) %evV]PVģ˖iD"翢ue-̣^ʓee'(TqQW)%ryRZ"mI-%yΊBMeIx; TP͝H{<0f7lRG)Ex>={0M_$I,\S?IE5Kx =ȇd:9ePfv%c Kv(SӅIҸ,Nf1"!ZuVVQT>ܠ<$UyP2{SkFV=׾AFK\\fM6?#KR=2lJyN[-34roʘ|!󁥺{23T*N-KrK?9;Na{3#fV Ol '^ysf 2A=&yy,~Ԣ€c ٠V%Sc;R؃=[韛,:@k9ngJC҈ItбpS>$¾ ϟ^Š wDוq_rDiY!pgZU% CKNc^Apixܘ1OorSbFF;GέB]&6Ư PKAC1͚5[**%nuvola/128x128/mimetypes/source_s.pngUT  `APQux %Z 8T>0}ψˌ}OKL3.d(JM*TcɾKvM\לs̼yS-PlBl,MW3mӆ`@]i-,Sqp~gvWb8΍tbC;@ C+EȈ"QXPG!zydUK o^J c[M JJJ b IIpHӳ5KʈNb\hh( .]Vf?Ĥqp4>9)Q9u7?ߟԄWv]>tSZV1wn2w|ճh'n4kdj/UVٞ3>6Ô\[Jm}B `gW9.-+{H<ӆff`Th "i G ,ޞ#!7,q6å-E/Ra2|d,+3B-EHK kKw׶XG pJ?w cѣGNY1Ӽ*fI6 8dM`K!KB6%9BTe;x 2tRn*zcjdlW$&%kwඈ"f;p4i13 dXYy9Ȳ*\)ÒÊQOПQt9w;kdxiٿLh܏QJa?D3rN^Zaa:OʅjT/ІȊ)Pn,9-d ]e/psX#fY!ڒօ8x4HַpRDlLh AgP4e&ȰwOvMnؔth3 P׏I糏|PU!1@k"WBs3TBbqGz{]P'JJ!#%; mW'ىd"xi,i&nͪI hV锐amr{^>ɶs8a'w7܍)#kkZ'NIgܥ=k(h{a )XW[f[/kMWRV[W4tBS{6mq~$ Zp\̔MR)QpvW%'Yw2Jˀi#WSEQѥ4uCŃjf:Et_= NYtJd 7o3ƈ:%1~._=<\ !A;͑#Mqm7G/(/m0Y<,$uە hVeM&XDn]V8v֫gnUV,0pEzWxFw; #4l)CйwĨsԿeuFܦR_ٵFࡷ.4j||gz$u5;v~C5`|qDXVPt޴&YAx~:D7 us]?f’Ā90}_B %Ey ]'=*iU^% i `qE3 ~ *Ӗ&J|V5h9 Ƕ7 ӿʙ= |˦䥞&T.+^M`ѳQ.fV+5*~-t/$qPs,XP=8Y0CJ~"΋"ʢf6ڿۇiC?n8 ?1xԅժ{7UkuOykvA;qM<~8>+x-b+6]aWoP 8/c`xLR~4k:7x1OϛH ( IJYO -ro=B>OUZ~3sXsAp4MtlSLooSo ,,z˓_6ѩo{Zq_t'kf@ y9ExXpyNR> 1V ,oJ7CCmC6PlcWyh±]C7CaWiG1;:Ͽ9[(]o-fz;ڡ`Vޓ1H.ɚs1)Y[8A 8J"B71¾+B*PBPmNug"'@[O\ @nFTĥ͗;Ĭ݆GnR&-57.XiBSxml ŦJߪSN5$LUҎtzV[qm] c&|E.F\D߀45-VxqtoIҘ\KZ' ~/%H`OR_e1[if( hgh<ؓPU=1Uo&lmH%P1 ;;;n@OZ X3P/Ǫ}~ 3tьSK>@͓:ڵ/n՚bmVj48ư0!C7e†ЦG-H*r@* ּ IYo"vkw$Mw V O@L}0s=de~;"iM% ⪯R}ȃvh#8z˓{i飳x,ZZI `,Ҹ53q610wˠƻo~I?ʆ,cU)5,JL:u|myWUȏG ng IkFбUB~<σ@Z7$ĞRT0EUەC3ef*bXÈ6:O@G^)64HmzYVL{䛲^L BXVV@(HlPAMR;QKg54]tr`ެDݼκDZ]%?ʚ}+[O}w|NnhˆWa;Leѯ_ϲ=,` Y ;- 0GST~K,xIH]D?1ax.O]"r] .bpL_b j8Wwd1&ߤݖ:>C%AЁ,pHg+l7rN 7$U.q"c#|fR(7Qqqk Bxr#-E4PEt qA'z+2hyF ,:_ ѩN󏿍 9lz,4,wX%kL\]a+kW?Al PBUF7-/%_x~ŀ=Le|M ;YA>aEs_J+-uK"+AD]rgG#^|C /b~rȏ?L  l !j6SfW:HR>fg1'F_,I?Zi}sTlPZZV̌rRN!c Ê| /3rZ$`ݱ\߄P*ƴԢV箋B%5=oiXd$p~ hfG|IsϟhI -Rڷ}o/W9pݏ[6:wc5 %̥?ںO ]ْodmf0 ]G0<ofY h|xڐ+dStēmQSf$ۼKo6/|׫BvrSOlA0qιzX9pjGӁHs#\OA|RNB2uS? 8~gށ·Κ-Vx85^(W<+AazrikH0mVھ җv>۟1~_Ƞ&x{MwgՑwDG!)r"W"'[}=;Iڍvt:AZrd;V뽹Erݺ`yW6Z ʷka$š8e b7GI.nWH[;|I?9*>V[eixcn,;9~K[l3r#g *BY̾+ <QjX]lBl 1S}%O¡[іL{;KU΀vTj-}Qo̘H ouH:a-܀٭Ѻ9Ҡ'zѷY}jq[ hXhf̷Wk/+d"x(>#W TܮxE:E}mAQ{3B;rt"!%_R`T{D Y̽K~>:SYUsNֽ$- z>Fk ?珏o4MCn;G-0K lj#UObCPX <X`8[ g?bA|:j,uDݩ_b.a5АY|ig:TH S6U˶Ox9tC$lxhp%{@Nc^˰:\ȡ$ :ۙ†IcIV.3Edvl؍¼co_[IZ- kHqe7X~8&Sdr"\d;|T(գẃ14W^Ag-=tRCw P__ɑ=0C<4RFLHأ-#=m9$=6 SD#8_  .^&܁^TGK2}64LiUnfۧaoj$XNyӷz6c G[YHᾇ-~ n>WIs[o|32\4Y|6MdpC]J=gŗ%ۊYձf?"N7En(E7DUh֫>z2vG T!4 z.tqIT쬮&~23!EKQN"+Ã΁|>g[X~e`lPq?wiI&F{J1YJCW;z7}6H3}Yh(CQ)?O`}?^ c³G0vؗ)e)< Α!4 irv#Y' -TA-jA+ڶeeu$@d 6,ڄ~(׎|q7 s'j6q(W':TO_JT+~/Gh6ruY/h\\ "L!VM's %_ڢɒ!iemCK*!B.O rvZֿZp/W?>em }lZI6`/M\Y Ejq $o}iI\/܇S5}SWb`0߬\hz},fœ䊒=; 5O_ eu_j+fc:*vH}LqPGU6)5 R,0 i*DZQyF0oWJ$4PK>[MOc4H,2gO;͡fܖE}uNi'*ZcA 3!U3Z1xWY憅ʮ:dXMW} )7 ~vtaGj?yrdR`lTxK{s"HP?#?_Omz]ЩKl ;܇7'|~Z$0~oGfW }:uz^[`b`ɀR דAbɤ1vǨ#gqHhlN/@^⬕LmVMi$Fh_|T/ h|dV\'sz Xase_Sb7]V^֔'=a$I k]sGT"WgPtYH9 ڐEP>O +b`˝kIfX%F49#R)r uڐ$F?g.yU*?hY0|+y5YΓS%e~4!aP3θƎ&ϝQ} ˪̑UYA& L$ ] xeUJ[e%f䨷 3l9}? '% p(#;6ؿq3}۴4nמ'^㨯:8 vkKzg#[ƚA\GRhw~/)j,%{Q<¨զhjv>X .0ߦ %e|gN*(;8Q./ +iYvZzih=J΅)TnX _|:iC$$5s8S1W9"rzXh(.@'(=+K=@JƁXԁ ?4,Lmm ,R6)_6]d-Sa`cxj=vV 픪/7~aEfOu UB08̰R#5BK6m`汗P alCoI_UT$=%{) &T%JH1CHȾ/N?޹s=9Ͻ~s'`, HF>h   1{sX@ ?:'] @hmu=ьeQXh{@B i . udZXXp72NiIh/,,l#Fb~×8A`}}3O#1kO|%Ȉ"i-/*ådv|@@JV~ltdG:_}boZNU I$ is-7Ȝ~L% E/+88m:>9)VRx v﬜M9_|'ss O`HN$;d Q\՚gl.(7eU OΪIJKxW Z\>e{Cb$5%IliX<^ؙ[i";u+,C쬬 ׶!5{m?^^D~1Od@~N 0Sin+%9o'W¶^Q}13;{R)5RX 7" j9LXS^8 8АT >0`)ˠO12=}\Dmw/ xkw]׭9i}q ρl G^Z۰E?ilGUx߾wʈ|6gʼB+G]փ>u ޳op 4Ρb0%=yC$VWOľR|i DX.d~Cߨ$rHbJ&=$qk1l'k`vqV.H̗ bn$ۆ2Q,csa&J+ иeQܪqoПwu۫虜_TIg  ?co垾HwNI3%@ҝf\Gg^ÕOJ =qk@pCDPEG˴)+'V dHXoZ!75B2Y$+g*Um2,흙W(7(-TQc:ݡn hV>u RA@D08đTDfBP.%Ӱ&&p/qb=/l3& oi,d r&42鼫(JĠGǼcB$<^&}uNmMMpeX?@a}>]xVЬ vB׿0w i!ȗ\6=]LZ/pfn$h=K n%Ͽ<4'[J<ȶoi1`h\qQ|dv[cR%YS WȒT"Pop.Ǜ@,/IBb-jzUO7z~pQ,\+7l3\s`V&6_i]y.lv#ym.#d;Ny97#P23{g|Vpxݔ4OS+;-?~qVqps{*^d{g:H&yLKhd' L[H8e1 o N %RLP-n')+W^\A{ZzlGw(ml*CO]uj\=7=~Ol0UuRKr)J| L4gdmi}Y+6!m*'ui*WF0wyۋ0YZ8&PN0$g;|]|$yN+KVh+6(, cEʬ8N^՜;P:Wqjp Dii-0@-.0"n+}cjzjEګ $_u9%=}Z4}uSz"Po3у]M$볔±YVuO7U6 H KDZ 7h +οY޼<+fQ˽yRDUWN^&qhg~nn0dyTe"ʩru\Զ(ȢaXoD@iZgQ}i 1}+ϗC(yXf~-%h h^|j+Nv-R6.1ԅ6wnR2IvuJ<=6fp؛K EPd3<6K׏mz2qӕE1tیHaWDL&g_θT| .$xp[A1`P)m ^PhbnIЈOr`> :) }XdwL6QK˚8j.3G5`$nA3\3%_ .*vveOa}m9F}[͛&~rf4[M_lUJml]PtCGEhҩ}q7雐=W?"T|\(h#bv'Wo8 ,MڡL,ʞu7zx>T|(g& ͔"XL C_fUbCﰫ7FI/LJoL@3{S-,؝9giݢEMnOUYB6"IN܁vq"&qL4REL u,P-ke^Ʀ"-hf#<£=ZBTߠ49)urwq˜LjgK΀PPI 89W[c>;I?9 &U>朘.;41>=8?7sAU sp/*[7fiP-G#$|m|6>@}5{:ʋ-RY]dxnwTL6MSU ,([+K@$O`HI-9&3dʩQ}GKxbRqpOPatxZ&SD3E/ԄXtT LM?eMS=P?Cp/HA7lti!rְ \S5Gvq7~Y ˆ iJ}(+sŝ0l"I3f8cї~J768Q^t'~`nxSZG j. ]“Txo-kHf#)[ljjeꦊjtԛuw zY>6>/Qϐ-;ʔ{;{OR/Zw]]ӛa:C # 4&gW;9z4삄PvWkbO6|أ٭kMTsyn*վr/"Z.zn>"yx{Ǫz˧ߘd5zpu${y\JK>Y/x`X 4E^a Y_$#)友.rUSvOm{\/!0l`?+58/[dURdzGBʯa{!g3 $ԳzMb)Z`F4J!{(Fb?|8$r8/oWTI}YV.Iag+ M(d T&.J?4ɋ:2 q7ol75t{̔}sdWKmKU.Lުy~tN*# /8@C/ 'pcI.FE|^O^#eP9|#, ! ( m:mUMw&DX%LFd jN*& y C%9$/+LpB0Z ĀY ew}n\j,' XX0!/ ".ӥ#B[F}J+<+fTW{k`2D%K2M!'J~_-FD@vsH[dѲ>YB"2o[ tp03 _ed$v`Jk`nlT ?=LZVH7_̳ogCе(R˧ Y FmP: +=M^~2zH8N2NA%(:oBy CD5tKp;<|{E՜ULy/Sxe#|#J?Exܽ:%–mֱkv*췂*VA@>Sݵ+< p)p?@7} ѵ0id!'%c*x8VHL@}\ (:juS~3But_XqK`y@+ XT"L=ܑΟC _]CkFt0X1eVngH;SUDƙVZyQƖp04brdh~] Vg닒Uym JV_se%K|;ag Y2J}:=d/>1#h(2ZdPrzFvSgGU2|W515{ܹM/GotV  H-G]GSaB"Ț-Q+JAO#<|k RackTrHjFYŔ"ھ'가; 3c/.h2`XLŧ׶ӭƉCŗ4MTo4"Yr p뼍N67+:uMY5[F'Ë%W%8䫔 yVggD[8k݆{7;bme'Dm60Q o1ڹVGVIO&7}۽C!y<6$ᩇَ>Ń!=ge'GoĻpWxͳsE4&CF(;.l"~[ZPɥ^@<.#HMm ̮3)%4ZP[9ODžg|wmr.9aU>zrfN䊵Q^.\)Į SE9I; ͚&>i U^ M[`֢h \e aS:ek ߝPVh ?~%Db>շ9bŜ/оFx6ۇ^=g#f)N'F$rUB_ͥ*":Eݠv?}\VrQ} _JDJ6dsnmh5AR9D* pN M&eUA v>{sU_k|CT-(NժXe#3VV yT5lzpM E?O}P 8t-1־bҕuB H2VBW%bX;3I؏ur$,:1D^g8U6z+~rqow7L%. i@ &Fp pt{Ņj`g Ъ}vJ+0ϥ9O,xg0Cߕ˦.V xk/rYgLj!p{ICƕ3crFԄ~uTAT%1JE !3uX{*]H!@/FF%NF8(K7]_d"L9Tn_L_vKgO2 qi,R"g@5L9,(bW8>-/ j+Te+My¨Q Ru,AhH`zf bej_9cFMW٠s^g$է,a->}޳28 bOט TL 7epYʺ\ǧQ߿)N\D 03MeHBֱ'0+] 5W-Ъ_ZF2Fy7}1"Z9;F8ZfÄ^ <$t$j$mqޥ5eDDx](|bגB*yp:c}esA{;>_PWC%NNptU6_=Qnb8+ 'k#^9Ѷ~up>Ob_͓C'~ 0ddl!>KHuXc! saϠ$,.g&'Oo!Ixqhr]4\ĭMQE\h.gk@K4핥U{tt %YX"xthE/Nw:doa?![xp!0'yw$$muvVf+ rs/jMπLmo"rdwrAt/\A5s8 jfX${;NNns?;L 0!{p"xa0=Ǟax:'M9-Lk<􉠑48w, ;C; =qlxّiC̱+Z5T|,s: r.>yZXK`KJozsW[AONjïmv<p_&lęLQF}ߢCBƩi0'K?U@tI]0lb9>=p 2T1 bsZ~r30ll)ac0gn١NO0fj*ǐmnnZMZq QrO'2atI 9ELnQK eā3Biӌېt^U \0&qH3iCpGXaI- a\2NWT5I7euǠ!| zoTH3 Ts>pJڤTxѾ;_-EfFdu@'E[BK6}߿P&edR}wVf@U&~ ,ME8fiC~,gw0MlJSWA^rƣI$ŽWUU (;,1G ?h 3|-%m U:l؈D)޲f\\,** ∉[J1!^tWP٤X&4vF&Ƚ `9@DzhaX):ǐ 1 8%@Zm Ȫ9ϻOyb/L0H#&aOK0Pݜ I}?* /A6 h(k P p&㌾`ow1gً~Knџd`g@C*! )Hx챈?@X;4'PKC1hu&'(nuvola/128x128/mimetypes/spreadsheet.pngUT `APQux 5z XR6pAMr(KsHcH3Mei94heJfee &rk7+SqLgT|x>gZz߽OFDsN命UE*EdF򀈠mA M.*)q'6d2顡tCSZNc3Ŷ0Çq17V+Wry<$qӧJ q8**5 Duk>L\D`z{ ?oNY%]Żlځzħ/O~vJTC~ 8#. I;?mN"^)j;(QJ+=?ESYF>,Å,Ҷ#]W[Mi-%>W٠\9vgM[]/ըNf|ۋDQTtb8sjC:\ HMl 9w%7{I1vژ"HS[{ {UBV;|wytu#Ly {_Nn1 oƋof?A^?#je=8Y ٫8!G{ZR酺 HrqScV9EM[؎e)4YO6z>GM^&#ugk̈́ԪƸ4%`5tOO9zkFZeQRWt=UYcQdY O&vv߯4e( P/߭{`L1"]*6ly*6[]Wfvd:oyVf}ei-6գfv2W {¶d} 'cQ&R-64b&/ 䁙 m0ѱ  &70jTY^9G Q^n8b4p~*dݤU>E "9Ҷ=>6۠7ç ͯ|ymyށ.g"a=OV7ٸ@Ԏ4>>#^g$.++-0<𶇇I@F D=QLKkmX4)Mk-$ny>ҊrqL %Z] j]p7cPJ"!{/cjSd Ӡ1C6 cǗE"4AUGbl%=.9T09tz%&=?Bt وm8#ݰz\:ΨOG8Y|l=H ώxHfru)GHgWe'{f'j[a۾ބMuS ]+H/ >QzENɪn98 he6´|@2P|vb0y.mh`AN2w]Kϑt{`aF!y^[@ۅ _%dNWfh2'jq]xc%o.9Шk[@ ']EOtZܑa}dyJ2%(}p e* -p̥y<ʹpޟ ZlHսܒMi򖡲HV ]Xb-\={ [gdgCUQWڂaSޓFz᭶VI m^Plʝ$*D7fY}S][Q"s8;v ]Nn<p13~dC;&aЗ.0p4*4!5OmPfFާp\c#Yb_AGI2FB;S0^ˁF)?,t(t|ء̀}!_$Ocn xc"\ʡaV"y9n >ԉspJkcsil%ϝ ƽQ;fp$IkB00o@=pX*%$gäMi1w5g Gac$oxTs`JCgaSG]vlS Ǯ;ڧ )zRƚ?tvSoRo5/CV%sK;w]i9V+7E؃9a}lb#[\?V/tah`ֆɌߥFg+fcz3=AO_%EUf+Pz >(a͇?Wl / )0PR%H;yaOW ƒמƋ6< 9mއӋ6`ZV/ɵݵ%x82KGB@O3 u#Ѽ^}H% 㪾VBz5$.f4ݼu8"FyPON$현Y .v o)h\S:=~rF^auEd)Q*Pbf*A\e2x' ,s+ĥц'  OqVh~_p%s;:N]]>p*'uv~l \׵+}cI_% &AXNT\iϢWV3&wMI?3N]1{zV4H.%9su-0p5dv>[TWpᶟ}]'DzC#QvV  QV{W/0 *2ltؓ#{$S*X(SImm̭3(N\PX5xpoME?`j=`9 F@N5-ԇT$нpB_T={ݼ%ЂtѸHy`Y^#׉x0h'Bӥ3i@]SԾvI%߫|7&/x{%4lmCwruZ eq?%;Vᤊgtf.Imi+#?yx4λ`H~0^*pj MH>!/U/vȌT'kbu^3ȑϒ0$7|I H,Oc,J;.^3fh2g Evpl(a!qf+gJV<^2}6`]jvd߾#_iǞǨ\Ֆάem߭^iݢVZ%SN7MUS~ʡGVHUNoyI=w>Iͮd1W 6 zi7YL)s4 !sCr.3f\NG(sJBl+sj# ⹢`@IvGՒ {yEV,ݡh+୛hz  :yhBwgLEXI~' )($?`)`j\zI{)̊XSiT}8հJ'4lPDwu~`slyi;vN; s x;$02 㬳pt zwm|DʗjK;bb Ȏ^F/C.^A糺jЧmD(Qw#*=U}ص*?3 VÜyf]HTw]ގ PT dj!YJ9gMU&c˧ Rp 99D#c|6M@!5sev B @E+ fZ(^OEc6~̪{QQ"v/ j4 g!ƤVژR-TCNT p$yh3骘6fA1._֖F*Qv%UTɗᣤK'Ҕyw$+sʖ>&z#{/f{ .ZT*Cn\zkoI{%5aF'K703.Jյ͌[tQN }ΎǠTHNCG$_č?ec]G/ gWVmF,SԘ>¦v~y]4*bڞ*Q%H!׳N^I3~eٔKb:;ט;퀽 F@¸ܲ1ꇢ=\$hd4I (3Ӯ~6bJi۲>԰?}b/J""Qt(G} -tPN̝y}3Yt #]x`yN7Es+Y NPvl\QD Au|nq܆ؔ Y9I~jTG`N"t#}%4di۲hhͭv6zvf&bF  OžyxQ<&[; Eӥ]u! :\*Xݓ}½.꿱{ vg9oZ=6>FO'3?3aB8zM%2,QءoH\.ALLnWU:|}J+n ,[]xPSp/&S: $L5>xy ~.O ȓ8TjM]$uSf/>x8%UX)KP*'-2Y"o@  fKsK%2$7vaWlIS T)/j50& A Q d=mMUŠ5P%*̴ !o1$5!I6OŽYprg`>4y.pp3%xU7HO"wwZYCN៘s))G@^p8ˆr11YbccIJ=tM0fhy@yP<ɝZ ##٣>A>j$*+Ul]->!' 5jWOӗoߡpnfm:}8 GS雷FB иDءB0kX@=_.8j)hRǜ-u?AT>Df6_o]@ NܜIZ\"HA >%Q c:2OGdLa&IL%6d͹Yt~We>[3˫84qrw㏡h7$HjXWQ }jXFgnfe[/to7F6#*%WCN{ߌk&;aGO=qG ořW#7Hj 0Ì>pN#/*Yc6LD"%x3/cpb &Q ܡm!Q;6"7n:!H6~(XnX[y#2sy' ngNܿWg$&n| IcQۑZf:t.Qv{U3͵ cץ*Gj☡OK'`\м&à `d\ X7~ (8t~^ZIz<#0PG͒mO;6L8GZH3],,|~@D=x_#ܼ F=&Z Ñ!ݒdf.X E|Apwo0z]>%t[ kǝcЙ(= 3vo\lV25d@5ÞTTBFpTorU\,}=ظ+Đ+JV=9*9{@O &EØa=0s(a S#}Ƒ.Kf(d]]9&Q@p5};e _Y1aK7^.@eCsĨt)&{ 9(*AcRV|~''FbkٽCHYX%>0;fEW?Ym_J7%\e>T}X@WY]8?^Yi*;u v̺g&Wxؓ6-^wz[%i ujfljGdlM_Ζ" [XkdpYKj.{>O:pT-X{9ϡb>Ⱦ]3B1nq?',) $`W'MDx|3{un`EiG&ckOpތAC^^2S-Fxƍ҂ط*Rii)[jYL]1j:Rq5h<ޅ]ΖJܐf@a2T^ *(DL: =.L1kձ`̼$&J!UP3K! oQ=T,$Յ^Ύ~eTCddMꟃfdz˥w`mlqXw\`z5Q5 \Ȇ(@؀Fpm"Jq" ~G>X5I{$P3-*Hy#U4}G~< Y@ElY}:xTCl,DؚVcGf6SJ=;j(#퐓3DARP=4jMogӆ^ӓPKC1 011 nuvola/128x128/mimetypes/tar.pngUT `APQux e{y43akfcIeQ[$QelQ.Bf2Ȓ,EKQXJHDy}{眙s9>{mmJ̎{yf# ܇| m)PsB݃W7wo;owkA @13}Ā67+j-"') ōso[xPB!JMMmŋK!FGn.}u,@9>o,t_Ȓ͉H[J =5*6;j#<[صqSDo&FA{!p3[K Lj|"qRzA92,$H0|1w҈X8 ~|of-Ȭz.{\>~v0t.l3nEO- ֐j\h lg̭nn;/[)m3-M6t(2sO0,Kb8?.,o:ښ[hf\p4j'WhA M)kfϘIWm4e ,I*wO|hL(L(jRh ={ yLLΘ ЮW4 ힳVqdSXօpƋwZ K+`Έ!8Kb_,]HCA%Yb7=Y3ͅI35Z<ПƠ W'BB470ODD]1nKo@~̣oo.m|d~wGOm-YO(ZZА]m2[ Ȍv.XN'& <~pއ㦩ŋЕSϔ/(+&o!IN5 ͺ;s"chP#^1 {#q\Koi3z^cg%: Gof"N҃ٵ, x5y.7"1S?2HAvLL#PeTO$S_rօqohL<}Bٿ*5Y|DM[g䞘 K/pqP*F^i&)o NASJ٘wQAޔMwFeBi8?б}8 eOA_a?iʤ ܱ&m,6n&8V JǕUk`E μ,[A_LM`{_OLrK"6%E~0"xٳXb]}Pxܱxcy'?{gHsn_%NVؙ xc:Dz;c%R:9پP{nn fs0ꥨO=?^oc 6nyr[~!R 4 Rs'@fc1&V;9O: )Ost6Ԣmb:>6vռE%zQ&TwzP=[ ^NN\] $y&2.}ΒU ;<Ny XǕф̀+ 29|[W`d );[BwxQ HJO#kd'O" W`F Pg+*x#U|p1E7nLk Smeϲn2%hNSX$UpG읢 oFȠ֡ ׇizSkAa:O–uȫJ]+(FzVݛYsǹ[9yζoҭDۭM\FCm1eA%Yo~lkVLO2'ؔDx >Ճ#Vnjt`QSlD Zwbݗ7ƒ-V2&;Ӌ0~񉸺UeoU 4זIäg6ԑU.:>}4FF_uv];;Y?U#K9f63~\a-ʀq#YY:>6$U"0zi{^Maw&]TSfyvaeCF$[߸ؑ#ɞ'u]t|:+ F*y2tND]ץaZK'x\:m%tQDЃƄ,bS&4p/Q荼[;6b`[;o3|.~ۉI@0VMFg]޶m2]ÿ\[v[OڻXsZρzOh a}vo86 e$}H1s C.]BS/@?+0j=EsEiuI/yoXɡy=zlBp%b̾9t7V6q;`hرsc.jʇW|Q_NB)3^m+{)Eꝯ8U _U/]8vH^Z;}xb{ϑyNk5-xq0/o+<2V"NmƏ>^EwOyݤ̓Ms=jWj7#tËa1tks׎h'xLkA7%%ؒ "!̼ͧ=5@r=XOJ_oAaa 3Z4s?1u˜B퍟Xx9~C=LǒGNKzzO庒b ނ%}4zG#al#K^nSxu G{|eY$$Z,ŸgL!ôFBTHT=r#vVͅja'TVoY/B鳻$'FAdOGٙ-iJnmEղ'@j u>&6N"^>>AJ<㢈}2܎kw);ү쥬@5Er~x[Ic!:h^ p8KzXjێɥQL%&:a0\㜨L Jxsc 26[GYԪ`ZS+}!4CNw5@@&n7l:$_>f]9IZ IO43*DEЏҊiJW-Ps%C]JioͿ4mo;˻0p6@m <[E-0QԐ1Ňd$U ATo?<'Ct`i1ۼWUaMV,a@+fCvD(6e;LJ$X@ծ!k,cLi{n"E i$B##Lmkk}bSMZW!قf'hN%5Sހ;k~|% (C&0HyU|CS$rre`͒䭟F^2qW.~CVD@#J2P#$POHԨc/)WuTDot`qh%m>G5c72|9I <,k|TD\<]%aL|(_2h?Y+>^Dq 8ָM'xx; jKΫU)m]/X=jY| z^.p8R#ަs/;#Ž4_u:#,8J*x !1?UbxTkv{B $e_Zz |A$eSK!_( }6=EV'(Q%TX%)1MI>[_Yu;J9s许-0۸gW,d&ԟ8'ؕ<,EK=Z4TcevܐQ[#j]^2V;Zq '[cc)+;7єCXGs J&h3!)vZGgHN uO ]R2?pA*BYJo 6ChQ95}LbD_Qp]b{7Mj|KGeP<şE\\D,ϔVDS0+#<<7ɉ,brE , V4jf=Vj S* B_.Th nZDkM̪ş+2 /4݁d.L-P\F$dlb_쮲¸!r+ܬY#g ,9Ќ}_(z؋6e#-4*ZYFڙRQʩryD Q]d C{<U+@މRcR_2"e 8ic i>C)ܘ"N\hce-{gzŦXHtZhZU{ 4$[~f Rs1LEڣ-S)@ |,,C@%ӂYY! Wc=)I;#bHȟT'+zL_yiэvKn&Nt²h{^q=Zb򌐪W nb\-="d>K?g,%5?}W x <^M:51%V  <;ճ85SvE #^`˹`۸kB"֞)ВI~l'0(v1Q`T  M{7.w_PLIVi 0H| .}:JiV} #l7Ț%_EYp_Gi@) ű|I3:1Hnk1u H+`cc b矎#1x,'3 <U蒰$J{槮nV T<{F r,̀hf&Az2)djLFw-Orџ{gU -OD+I}%X+EI*qWV ey)]PsMQ7S\ 6e?)@p%[)%isfRZD{1Uv3`ŭ3^+~@]Xd$ZŮ=_'t/MG84Q{4q==ZRUJ*:MJHѮ2Uv7uLms<ӌYf÷س K$_L%*<+ ӄ/' _5Nj #{͞B)>K`]5ҫŰ 6M[]s {Id)t7Wyx)^48TS.hVR&b^SL _n>#{tRFdՙ$ֵe*y/L_ܱFex,d8W@$U7nrޮWK }% .; Z*bI*h_?Ur@Ұ ~As9>N@Kn,u6-Jmnk# LZjDZSx:URerG^\4# ]0wBHNz/WZJ&j1ضLgxhwvOsVp!Xm#/rҊo:J8yfx1[ -Sk(QgE %j zHel cGc:1vxʘ=] 0YB@IWcTE쳮2r:%9GkJ$#t'?u@yj d,[ 3=e$_7ݟʖ.ux %}{&H:4C=dvkD'->=ݴ4|YS薅J%y%N]6ko9u$tPN$KB!hI1z üM,άԓL W橯`eaX^L`SZ44&X_NХM\U r?߽BKxh~LGrԯ.M(o\ڻ%ø6ev&$ܘ}^zX~=y?V c>dy7ֱbplBŠ@n|S5y:vZ?;E_-Np^KwXPR_4+[K?QnB*m\vf7JY..*%2ʱMfW< P w)n%].1P؋/HW@= R] J^Tgp(,܉48[Pڄ M4E4T thB~ uҢ…j`8~䇌6F2qJJ#\r&HuN(0ޢ*N=BF.[9N rQVO+9(D3l6:9@&;9U`{L}W g8_t|$ԡAsԦ:.l'zN#%;بwjV[)VEF 5I~4X3>G2_ zHoXɜ{)n#P(IFYn-z1+TZrUZ$𵁗S Q8ek_\#tG.(R$ xVN7|cق˂[w فQ?`oBXe޽ǫSuY~A3_YVtLKsiln!GWKgɓH%M$Ɨ:?='0 ڑyҋ#u!Hٍ1^Չ6s ;,3&pMk-jgvPc4n!B{{k {ؽK\/~.uyRLwvC*u`oc"4td#]FSD֘bvK[{DJ#A"k\a 2^8;ݍ4߸/aaW!+ӟ?#&O$f'aZzQlL\KŐ8&c \,.ˋOsIO=p9I{BSIfTFaȭ˘ڴ$Oǹ,tͫEǠ^Nx%2~'b!Pn* w ^%*Pc~' )|O3,P\Ztjb`sٞ'8ۛM aZCG/f$yyS&fV|^Y?TJm cp]<[6]gΆ;}^XyDBxE=)7˵uc?2g{{~zѭCȌ"R y㳷`ȓ1Cܥ_xV]" +16^/!\ǸyYv9Sp#xk!/=M[Ͷ(bI8ݕ<6gK+Vjj1d@p$Ua՘C5w?8sh6e)10-NUR#36q|,hN٦Uey?\U*1Tx28hH'}g >[:LG܂W?}Cu(J#a*ƺe 6&DL1d&~PcZ׷]+5F,3m-u ,Q{W9šLv_<~skHS(kUp }Jk ~a S fm :q/USacb>&s+Cow3`,]_;نQ1]9t!bkV-bEd$VDވ_]GV5d r|^ӪrW}HmkiѮ"x MtQ̰sL0BoB ;ϥJ UauJ=+.I|Unnހ:vYjARЕ&GDv^fo+[؄GKqisIisU קD5Z&{n27(&(-[@qR&zζtGdA 2TYTcŦzn[g5꾮w"Y0p͟Gor:]Rmh.4;p/oվXg{`zUJ~$ Sq@mqXNG[n:1AUrVvë]_;͙QIvS5XazZ=+jfvJ-+d˼D=gt8ZF )iFQ唆1s?'&;n1׃p,!XiGtpA7+5?exJu ZbD9Iyt,LKZ ^2@7 z60u1k0uoZ>|Si3d^ȘP77qJE;2;ڥ{InͬΆqpQ?zDE zܙSv؛cL.aty6 +׫[{lwVv5$Ns65r3I'8h' h?#)TAoKm5_"̍#7CMQ CQ A)ae (rP  lKmTЯc6fOM(PKC1U'J(,nuvola/128x128/mimetypes/template_source.pngUT `APQux -z 8T, 35352#$+؅Od Ȗ])hTd ٗd99z=<}?=D3"p55fɇ;:vNPoy<`Kͺnx㚛'UWoOkOW𠏞 ;rֈ`6d 8r !")1`6e 0Ą1>>5ӚBK'mo5Ĉ[h]-Xg)s$n%|`ddDw&h'":Erww'*Gݿ1ٖE7 ryyk;Ǐ iqq0Hڥ)SVeR``0E"B:'8bx0 zTm㥤{i7X\r캫\qI+G&!Lnc˃} ,s73~a\M ǘ<@ppN̨HȨHv $j펀/} ?_•1ݹCpHv|M yj a=|YWR O635m;",,@rpc۴| rE(viJh}v#-\1j)z8nO xN}1y!bD8y86΅ڄ'_h:Qf`Ӆ8I}5Fiߔ8n(b"MB*4{4E0%;n%>,}@A|] &ۂ}`O"y<(-y{fML{$|>3a?ϽV?tJ0\̘;VL  ԎfV;5!PM{ަ[$Bn7O2swVO}S:oeGc{ܲ.e1r67Z@Iqj&֎)MZn /ѻpwH\@خ^'CoO!cD9 \b],6cWX넚ZۇqBT$*pAhbTyy*m9 ]OxeH$ˡB lRüNcUng^U>`@jPF6Њ`x ~/eHk->0x>Pg }ۭ¡&FCT.`0WaX&%2mk-}IEPO yE(wXpȚ"<0LH 2ю8i4Wf(!IXx#/ Tznxu_3gx93$UH巶>G+ʄ(DYv7h55JUT[*/x.r_%t2d6 reH &=!D__<0\[_hh~ tuIGD5\3@***ͽ_0>˞K#ߙؘ]o^_uӼ'=g$,iwl'}n$f_j/rD@LT;ًJ6J,m .UBpl-CD+<+ě(6cGG~)XTH_r]`zzq޽?Rpނج bbwu&KQ:I: x#QrgmJViF{:l3` UNYg{J KT@8cuo)pm2;&q>._,"V MU$v-%Zvħ;wزGH,5?=jϐ*"loeMER92Jy˔Q63!zXdO/`xBKssj˅i!!!bOu82>l ; ( ga;pE&,SU\%qdI3{{]֐̓⅚B95-f$d`5Khב@Gt(1p?O9K`i,CӛFb040 '^Q$}tw7 _kt"?_8×9 $ ]KAI2TG2fr3{pr}\GꀀŏIͷ}:|$ j5d$Utl=YjL+S/Mp,$` G,>1pud4T:=hob߆[ע`,Ax %lgyw{|Uy\4ًVG, c', 꽁 xa"^L&Oyi$- VM7"0gUg$8/}d #`-Q ;9b{X- jD2]i]z4QpV+68ÊIYHG.܍Q Z=p?}&?:%DJWcM=?8z>cZ߄ {&>30ǟ"}qDBs{m|rw5SuǾΖ.XocMrG-8TkM_xPHzk')!7'}c燄ՙPwui6\?*n&v"G8n @DK|aDN|d. w_q9 {uQ(F17)nۅ~$*oֻ:\iGf,(T$)Ey db@Q6 Y0~^W^QMϵe\ɄE祉V|\"ZAw3ێ=rFbނԿ`r-EPu-6ݚ~h]e!8A.},|E*f*ItgRV)k*U=h8(ksĽ jSKˑ;]`vjY@1lBPhƹ/ WohpWcdL9_PtCEo>@琷醽ee$E]ypM~"ې._$9;hl&-6k3EC1F̻VFy$G O6熵:=9Ac}ė~151{)|W t/^_rwoc\ӆv~"0qa.bъ'V62 ^z`Uy+e3|SIX:mT "ͪURx rWLgN8_Y)VA%DŽWG(p(P.;Mn";Y+(KhqƍJF7(Փ: ">CG%NCWb:lG \SՍr)v $eEȳ/(͊m?jjJIYzҡÂKt#zҒxT n IB_o-i'ाMɟ.h]~ݠ`1ru g@ȷܝe0_Q:5Tit$*^s4LF$'Zpu7ڷ&㉧iGV'#uޅjt9el(J8&D?#F?ź$wʓqIIq ¨HMSWwD/_%561֠AW_+0$"FU]0$gA9b#d,Kq6CD!)1D7K۟*]O@/B.]cQ"2 OO@ y!/Z>pc9ylG z ;V "b!6P#B 76N`v(;bA+?Ux@Uv81m#F)~jeC ? *r]Bk7]durCrv^-uUgq%. D#'mL֒y>q9֞5WIDo:CV_$$*0n+3&\ F9|1fU(T=G5+kUm/9A8x1۠<;\kXwto).eJ(CӀ̈GAnD{#j \LԹ6^~S$:`DK/萁OV %(5eu J&uM5Ժ/I SZ@'92'} r"#g똂0q`~`%U28=+Wܩ88phձs>PʮxX1'\k=.[%)-cf/ '0+Braw/RDwnXzuLuɫcb@$~P>g m UXEENRc Р-;̾ǻG5ywrBw`CZt7W?xlix$ڷW# 4z6O ^otg R[C[WSpnFڂ2ag@|4Et_31DKsaQ ?>-Jw8*?n"h*gOٟWDHPDؕWn.!=ZHw'F!DT`ICC>Dn4?)kPjjk(v*O3w4è&GB]';῍ܦh8'/ā ǩ[%ZDO`gfJ8k;>@  lS-oP5opɄ?0B ,E0(lj~`]VB@LuC_WW`=S'އF/_Ƞjm3G>!$J5~{Ǡŭ*CZ3h .M2\yv?4j=?mT:g7YʞT4sq[:F5!eV_â;Q-پJawl:|6WQs[xbG Iaױ!{]AFQهכ"s\g'3X/ jbe 9{Bq/| \x hQ59G2EB]5pv&/%ԃuFԧX.ɪN?bPc+RaVËsQד']?\5XLƢie#F1l)8bȋ}߽}&z <8`}=\ձq>H!+掓=fu߽JJMr9 @L2nލ`\E%?{{wׇLWYZޝN6(\Eoc1aͼ!b _ #7zr,ׄ,D0iI\r}nK{7_+ԅybݍvDb#m[*g8hYW]:=pu/|\׵HԊrȌ1j\DmSS [0}OC&< @[w9^scnäF^q|ᾙ=u`hߚ?טnS?-kWGm6Q/|{ǯC/! e5>_Nird#q{w$opظInrR4uV㎶w[j J! !Td.S̕ F̝bnŤoQ~g~+=]8a#أtڍ'}HXc fG2#TW]B]0Dv8&n<ʯ|DzHx00k>+a\A̴?:\zS0j ]bMw RI. Tm<&.*Gn &Ĩ^gzgk~X }&A _L6Ҏb݅ebRgەBͳ[5牾r\g#aڂ3}:ON^g2VLM& Hڿ- ^iD2rZYٓ>97mw =S{;'p[25x?o/ܰ%I\7IO8[|BDíCYuH,hQDnq,DK|:A /<ΊW0VZ߉I R(I7?M194;b@[ .v65[jNCGZƚsxL2qgOU ϯ3Llo1MJjEa*w01hux( @?KCEҳxo`옾mLѭ=Qa+(6=x)=|k]2cYa#;=\@JSN˯܃iz~(Za[~WlJitͮwq& ;'ނQr2p&. Nc;׾)}TxtCځ C ycbi@Ʃ>x59CU _7; G8fl[a8j8NKCbȜ`$KKuj%w8ǠP4mΨ߶cIM}1[D'=O%H2 3a Gmn_J{4 +|8cNQks`u|F Pɘ*M0q >kgKc3\^Kߧ*2lڠ2#4 L&6f{ZV,: >|yt_oOuU=U7zoů2 \imE! g~BcLG`iqa90= -"l{-DlKzNKH_ˉ+#,&05#>1E^l8CP(K>[CPXX<(d<"h^'е+UR\LnvMY|فE.܀N:pԐ*3O&]<"]G+ۺ (ck7o(fR#6".䎘k9>=V|eh; 7Ѹ'HD;;qkրHDNX|up^-Vc[ΠrJ駥{֨ik'$R0i5^YYM008hofaaϬRX-h4x~@Mj3>~i'seF3Hb/ 4s+;++JDD)&/ԧ'!}?(aeV08G۫ ~_vRoUVMWk(ɘgRU.H dN4]֝[XMRw=Hn۽8ef?kAT7.W-gc,bwm gPG f!IQLk3WBX#Mts>cJ7Ǿ]fGL0x.bѳI]i-kTD9 ee )4a2j6N $w|/4e $i$"@1e Bn\]1*K^[77 "vM R7'BV̫Pqjn4=ឦsAwI-Z Ȣc< f7UaIZzIE ̥)RcT\.Pn#^|nh8]~ pqB39 V:e4ZTr{c]*'l'הu%X'gQ\Hbfsj@%aRS=0259iӱJ܂8]t8R Ty8?-FxՋPVpZe]J{>G"کe>b3\䴳cP(1L v񼵾4y.@ {|MM)ZjbԿO *-Ɉ#5USߎ=H:u7 0$uRz` A8R=6fKȶ`+Ըo L d炴Yք}dTtryV%{_ +mGPB醒oh{L# -"]c9EA1e*eoX{MjOtapgX%J|.λX,, E/j$j62@кk܈}s=w#ًro@f}} Y^1P|)k݉vOM碜3!I˩:Wd3vX _ 3 jtJLtPK43dC+\$_yl{Ғкx|!qO\no#`^ͮ,AګHuBsʌp4jߪX_qȞRWy~?%*iF{"a88G W P$b yD|ʓ.Wޡ4[;sУnItDf夏s(5W7Jm5FJ^m #&&֯+9̩\M}!7c~؄D`G,zN°4) N7 )9aƯ8{OD7huҔ{(1ks2 CI Xs~R%=Bl?6MxO9ϣlu4cT-Դ+iFB["9s}nTXLbլnXıosfSYD 6F"wwE[ӘmnE}N"kC,qѯqng:F#nIfYT#|e2]tm_00 =w*lMLp_DaCkΟj݈LGNKGbiNzX"K.,™A\8`N12QҖ1D"m0qeH[c2hR,ՏdM,㬮`ÜuBs>׼Ovf3X[63V0m\YX\GQHA n^e|_#)ĽkkhǦl[owaO_7{aKp:K{NUI[=%aUm$'سŪn׆juIY`AQNkp \| :`'qtq|0 =,,MxRZ%KA79v3_5 v7gT7u1Gcbd5ٕ;\9 !8"MpbE%C21 (%n:'rg>%eJ%;ӕTJfQ-rS)ܕ#33 X&8Z+džpWMڛ1N N"eX^L٭p~X;Ωr3sQpN^قBX"t#i59\.> ]^͏ X6~Bs mJJ߮JWyn [%KIٰJSsn#np2x"uzy0ݽxIA9PZ7:>V\ Tlg`:7S<Ёhz_֟.hxbg[앝mkw5r1 &7>Y&tΩDfσF,O(6̚kuQWO^u@ Mmw[)nM@vn":[<""1pϿpupj'1:152KɖC P^|mcQ뉹StwX^ZX-g׌bQVXA3pעN}fMlڡ!o5_8P[i Al?8UQPƞV;QPHU>ByLc6T7Pvm p:J ڻ?2n7+Jb ӎnWǎs|UPģ$1X~˵iUd% lX.#f: rh9T[Bkm kGf"/ZyhOH8@ 0ߎUݵYW|K\xQvVoP?C]Jp1۝eQ;IFQS*ᠤpcW:SCEAlpKR#2ʖ ?᫥h>J?ڤ|K`3ç*4Ao@:F,f\O `K9{Ohi*_8)iȗȞriͻ,b.jDAg9N gWͿqKڅ#NT0LI e\}p-@qV$=][DJo1ҾS*5zS¬h[!0X11>ꂇu ծDXD}.t}qUU<`6[|۞cPO+c1ëBSߖT7&wF :( R*52FЂDGk[h>R53^!,f7 ۱/N18/E" ӫSuElZq/R{aW gߢ+ :]*Y.B!}of:&1jZ99/yemI#$^9KC*޴>Kfo8i4+oiVOoksn<͐~nw9kjf<|C.Da1^~Q]̷"zׯ=]o@m ۏZ)-l .MR›"lp*6, &sXmW\y[ʌ=SAxhO"i*}wݙ6z޵g.gB\'.09e 0{iVԻPn5o\c7]rCRG@ H;1,gk@JwD,C31$OퟶEi7߱,1P{qа{>1LJzOփa p쑃O}ğ^+M␻W+(gvS֛O FsVpUHUNcZ3=#xwOv%c!1tjpz-N9FJWNx 0]dªs% _$mBsTT sVT$ci?b r]0/9MfE! [j#l=/ 0SkTHQݼf~C߆BLIhjx]*:qT8p*'o;aS\aG#}-8* hS|IbJ>Q": JĊibBGtaU.R`xr0 (@O>0NL{GOfyܹF!;F΅>Ӷ̜&qۢ^Oc{[W),rQkV((N IyLz:@j-}fT?G fgC%HMwf9rm);s>&(fKwS`pb 5I~.&Q,~\˺KtͳXMRd#,Eq>kAA @%.EerX;tS+>o[}Ѕ,¦[%@\P, -*, ͱCX=.翟T&`b |7Ƕ_xrwt> Ӳb_Ij'eཥ N,b?XPQ\|{qD֝?_y]Ž3^ -_bB-TMEv<}Q<ʡVk 퍏4~M2[+x*YYV,TiOY G9!?UXq5dC>>"r{sU(i`5L_|%b3mm\e smhv8p;"]; ]4\y&uj>ywOMXNHH/'M*S UY.fѐ*,XL Xٖ,O9{6H0E^UU%xäq!V OɺZ[ӽKLX7TTkEOP+@)S)]O*LÙ48) qkUw1X28a#zDOMfjOcc˰LFfAƾϘâ`/魊H= 7ǵ] %¸]DV_VSZ$^uF=FO^̲$ܱYjf@rIOm`-{zcR_](4Djf 5àlv?PKC1=+;u< nuvola/128x128/mimetypes/tgz.pngUT z`APQux ewPS=|SH(#$( " ( EPi`R+A%(*@P(T_|$wr3s묵s@ڑw{#xlsVkqJZ'y16ᧂ}¯_,=G.z;z{E~63k?=ABWXJ-UyEnJd}JNMMewĨSOuEqq1QTůD[nk^QN#DCR3Ǜ2t~iuehV*W=8vp8ʣ6?e`n6RV$M+ ]҂>7>qbS L-#( lȌZ2:=̲C)tr@c 0(wU%[R1u+Vpp>ӣoCRuN¹v;Nf_r*(9ݗkSY>.Ex7DqDv ``0&YY#E5GԤXɆ&T_r荆LE9nMͭB6tjPm98k?"(V>lX]S7": AEb l4sƮ-.كyM7z:oTr;+ꐘsIQ)X[R4i8UaӐ) =ėS q,, NT3,7,=MA󍈾gMxɯ lo4svlN|q"ׇNy^PҌ~A<4J˻Eq E/0E9݆~p~ B+Чp$9;4TyJkg}D˿l`IFqc#eWWٙD1x3F%Fˆdq\3Tg@{q!)rФ>Űb+qc+ i0`P$} %2g ƃI0T p{kq* @"b` K"15 $fˆ7}h(6[ŀ!^p6.sJ?- & _Qn7FIvljcH e۱ұD/p/mm/Jqa$\SHOܩYZØЄoRȦ;sj&Xd;uc{:^[;a_^5J*'J+ƴHU vBK)\bU* u6zRp:w^i]U,7+*K6F!0ƺ<9Ďv(&4u*g8^ vڄIP/ Km/Y/Gc!J)tU;k_>67鎂qv>ҶݓBSxϞqDj7hb̫c>qzIROԷ['@pŬ? F 18snyx<> w,ԁ@ԥKP99so[:JDC6~ [%߽W_`gC'AYY w .΍RE_ב X@`]L=gk7mOLio|z{CfTW\ED]5'Tg9μJkOY%eZaz؞~Xٌ~R&ftg|p\E&K2bT`%' -]Lrr?"Eh9Q\hR:s̐y{BQ^>Bae^+I3\A~BQΕY]y㈉ka |\i{+'oTK#җ-Q_'^OXDp'zMhUɯoH\pz(~60dHZpS$F)D0Tw#ą K8ܕ|ǮOwszK&,#KXB,\w{yAY]=G?{*QVe`%`2)?9g#$I MC̍О*&F. ݸo_R;MzD}$n׈, O-j0#|=J'qQGV^܆̐gq̦þQ.v6~ؕǁCG0vێs`fl5,nj# NR]$qs8c"Săi ##y˸) {xZQ-9"~g gM/3ǸY>.e$ZAu#xd8PĿoxg +>8dI|XJQj{-oAs2 (I㺅j0Sz'9q)8$强QiBRgzJs7ڂS;4ǁIRg6/W~iw;zM}}l=~qigCau#;cXr- ;6g9J3Fy0_R^' 1Ͻ Gd7k^Y;m3ESe~AYPKet7W;5LP:uey(Gn26ˮu7It9G0 F5xɱg7ocY[ڭА)᷂8r*ݩwIDrp͝Iw龫ͭꝘ|Eך[O,m&{K䗡PX^Ȩ~rcPtń[>lg5v43kyB9s$-*}3}2sszfE[gFr3cI|;tYTl0tZSDqɜ2Cj"lqgǖ{`gꈓ M04FN=W)~B- P bΥ |51F${7IjΉyc=j5VYu] LgeK{t+SdERώ ?9"7tCG4k'wZ^1&?\9|*훫hE>T$BYRgX>u__dݖ>>܉4q9(|,;TUoxT| ŧ\ܼWA3Z_ǣt۬|X<^꜋dAc$äl}~>`oE%ALޟzc 5ӌ|9׾H]b$gs=*nafE Z{Daܕ\JpRnbB]+ $Fl.*;5)Ԏz'xڵEL !9H v&rI[]*aϷB&Cĝ[  =#vG:W Ȭq%ӏI!njD:#õ)tvjKt 6rq/Q+[)_ug}IKo}xװ;,{9lσ};E5W_Jr`mZE3qu2T_o377CZT- +Bx [_dhY4zz.a[ov;6:үCsfhg RUw|Hլ3P]hPFҶRK0Fy|2a._} 7O[}z'R 8KWu h!X~72DzYy6+Yʁ,-GJca|D{A\AJ*EaZi))gm@ZFvb4ĶnT ,) W\l( }|!1WB'TqTiL m.IcLg]-d(*XU2;Rd+h~JbyaB1Zh ?fq(W =)@zd,lD;Q·ЖBv3.yE+nz$V(n]W:ƚL|iї⅓;f 3|Yf@[X'ZJ_p,~{ETQ ˵ HgQŲˈ܅\W>=C[lcs$]̈5Q kV( ~j(E9X`ZNDkgP&sO򨢍jb3ɥ(:# 2XH}'C~?#nByWX%=ژJHbPti+&VoYtJnǘfZȵ—rCz^ajSx%l$5~3Td.X vEJaeZ$0fLQMAN! $t-VP0jUAت!HZc 9uRs+W^i&z}yjp+Jv);6PQ_=B8>VU1,(Y%3ěY)]r/)ov0>.$Ζ bq+.d ,xwndJ]&aEe KS&Ӊ ps29!3&X {U,ӇC$oO)SdC@UKF_υ~#K3\ N3Fc'7QI}(SH8^d?Z4/NTX$:K!!Έ:$;x2㆕Xi&w#'1}P/1L{a!4R =Ni1%}f9//һ}Oi0jlpЪIaboJMzv gQfaH]L+DUZtj_I@ _ljmG@?A+bN-,ܘ-_i7Fktw=`΋q^+D:^S Pu.\ߖLķA-sjB,j;余\"{H saM?`VȊ4,l"IZOWJ?>uЧE [Kⴢzi]Ǟ=EcC#t<v9޹Y6 ~bӻ!8qQbJ)75}(YTSK*踗{?+9|rw_>$s9 { ]Gzh'O=udo|#>># ija'5ڤAeGY+XϹ*)ހ|u0q75<`ֈ6nT-CE6Π2M6)`@OK0Re+\ɉCb_WTBt:}Y*Os}E9PG.\ǰ{jN"?q41OX(*iL΢XSS"'H0ՖHl|gp(R+$RlvdH;fM/u KS3JëQ2c3b\0zdz$߇u˞$\dޕjmo|pEҸ+#χiA7vRI!Pcxߚܟ!iliZ߶րnLq;Ţ}M3Q~zQv@pWW7x܅>m< eZ_TWⵍ|grVq2yl}=S^ Y cRݛ~!\'~-HƐsDD"d`l> Ou'jlRNMeUb^ǸBTvI3GE^VNrQ|p&~a& ,Md7)%'\).In .&jYQTi}{ -+[ J$/9u Ed2 bBQim#9#J%A*purhb'aʡ׀i#g_,0A֮U%5s<=~#"rMLf}\3Ʈ~✡ZXҒӨ%[{aUhckWMq7.?BSF꟝$s Hs`Oao 8^f{]  Cg"vZ*KI7݋TqPϭ2{zэvBn K=Z,$maE}6'>8&wZa.6 R"o^bՐ tnµ$9&%܂M?u?-zy\PWEkDo|]|yeMn!CYȺ? 'D5<>(޽pHfr4ZB"CJ' 988}&< >d 4+@(}#;ad9CxfO ^K@Y`D{W=t=TΊbW ;mTzz1A̍Gγhr04_sC@Z7H5qkzu =YzEʟwc./_:0~UmH7@f_]ۚ5ڄI>\ [CC;JKEdvK;f{d|Gq{+3ȥ{EU-0fcH\d?rREscmrgxx؈abYIv =/; EȅGͬïE/Gk8[@P1ze'ҟ$ybk pB=5 D1wrDʔ?r-c9LV Ugp( 6b 3K#3 R[*ڈ4if+ œg?|~hRPb/S m6FnPMXd'Y WV8bA.I'ZYⵇiS,Km ;c>T˿\'Miy9䍨ӐCAmk3n}~J1F lDvEfk8,ͽ-]S,7pl3͒YUѥ*r2a-H}8 9jqՇ܍_?ѣ$DdNGq*u,? uI6ڋԫHţ$&YT QmqmG8") KeA+¾3]XvyM΂dq]/2 .g`^BƘ܍8԰# ۴h"j@Q.qcO%Fb]5)bFgg LV\({A*|/O20.L7HZ:773\D)J7`/ȯNNZ[cbyVnB8#|EvלoӇon#ڰh~%n`[ ek]h# +xBCȘۇ\ORCmuPLoDϩyqhZUUcUz7bJO2 ]Rq~[.&|&j^֭&2ϙx-V yΫPGWPH%>9pn-c=X:Fϻ{ wQq# Ǻ*1- ᢁOÍ|y+VLRͺM?yBgB=e+VrKFO *Y4Ώ7 G2w|pZݰwՅ N>pY`?P{<ù .v:@C^i=ܳ4kodx˜-dbc*"hfs _8b CAo`'&$ z@t1n uml>UL4Q~u57cdcW veM#c"-ĜVs[[Ē'U g3qv_>:B ب.yEry?ucdz%K6:3bԠ h鸍gxjYPb"9+7ta-? *E>:Ned_%ؖVC% te~f:82/C7y0¨qVNܐbq5c- -i6b,0Uh)WhO0d |󸄦Qsne Wap1L3+dMgL'͍wh7_xyS|W/ajvo[W>!r.A/ )R&*Jⴼ^k<ވ =@8u7 fD AZڬ-$'ODYtu?ZAŤ)ow1p/8:6v#$]sA 3eAreM,Og.2HqdlRkm{'q0 hHٌR2b* iH') Ly6W" 0! Ts%mζ\+$Zmm&WYVIWAs3D~P8IADHK75>=TU&c˜jϾ_5J.Yo=6}p T=Q0/: !i{og)E9ԕl U@}?NHkxIvD&wEy K3Tݣ,9[mu:TmlvЃC 9 /C(xFiC9 οؽ: aM!XQ)qCX7ӳ^2#(;\^VtD0} [\,_āIqO%N yy٠DIj1!dD[nEaPs|Z ef0Ӷ)Ab17gJU_S!YxhŪpE#,a0v۳1ůvb5"1 LFsxjMvUH)i`ynTyU4uS4x(Y_ٔ ϸR5"٩VUroPLlnRedjת!O%Jl:1:8:O8kH%,98Lm*F3#Y:tq Tm-XJ}NŎ;k49>0u\H:pշ-NlN؋-MZyXYW=+U5ٯƤ.}}曷*۫aku=|S2RlclmM1=>捸&8gvf\qŗSn5i (M/%3(}ZClCyB 1=*1aXGN` ;/Py>K[=r{;5 RAnۅ~Z'.SX*ZKWwC*}r+^Shw7^p6TK$Qp?$-=L5g7Ln2D'xgE -D˧ؽI%:gt?]ؘzVV[-vUIí\{;c:~r3XNOAb6s DWŃCu0ΝiU;/_OlI.\F2IQ9}µ'<߮B^DU\ЀOwOғ7c v-tq7'ʣW+OP̲eBTRnn ,x76?#S6<Ķ[&@g9,x85x(rƢt:QKt$7 Xeθ1x-u͇'@J7V)T0#9\E9 ̰];ӕԩTksRy h.aRJ)C` v5%Wb#<$/E) / [孃`bx|zzEgR6&)6!#BXdiա=>{KQ޻:Mķi⽲+DD`Bf92 aR귓E ={v ߫{gvrw{݈ >dӵU}ݠ_/^Ch_W u:kd%Qnibʛ:Bn,^漝A!~Iwig,emax A-'0<_UjXJw8^\ Ʃ(ZQm7[oW7{PLj>8P # 1[yS%Xmvoa?1D !8s \ѐվ3yOQW"X9A5{~;z%Vι3"dҜ}T#R '|Q.h56۞vc`™uhQ3 .M$׫P2t.NMw=uc]'Ն!TL T2JV *Y *㥃'!`b!5H,ūQJ+uu+V׆„rhkqW}ڢv:y=&op7JxhVD3S2Ť _6@DkRϞ'б2{bbFp)k cnw,G{RQLE>m;/~1$} 8)r%( =jvs? j2-Ȇ z܌7qLX')PS`|Tӻ~ js4a .=JFDADj> 㷔VWz/`P$@hk"-Hז]A}ݩῸO]qjκTvT)1^]s>NZ_@§W@!ak;tX44wPc=7hiI|TY91-o=$Zfg$)Ӆ웬O)nxGsuؽ蹋|с r:>}TKYZsU]*/wgr1?}Z_)iʐ`=+T Zz186!Qt^+bOcx5Tmh@<t%ɕ鷧^' ͣK~ fT ԭmnt mM# Ke_7~׮aeNx'CCj0ι\CinQsibJ>=}`쬀uA3H4뵜X]hq/ IRSܘ幭V- L_/A/QXu Xz~s]шUE'y>Zw5n"vKik0>pcbD2fybtgg:'ߡ͙EuC.ᩫ=yXMwꧥT <;xc~:c\CpIi=E+]Y4RkN`kԚ!wz/U{u-n<'WWLM? 4\[1 ,DXPK|L<\V-ptHGY6^.7E(|~ ]NsW}cS6KBI/oD%rl"ymDgyWP?OIV ×􈄟Bf>; Vxf $Pf5-[8_$L]8g$纳Y;5VHPsژ~q5J|!ZS~ wg8Cُ-4~Z*l'f|j~2n؍_8xAGNH饉V@#qL(vs>:53vc/ _G! *N^"p0kXֿJB#6mцw8D[ >s׉ڇFFC5Ub)K:Ulu{Eo/֯-IqPKՋC1R_ nuvola/128x128/mimetypes/txt.pngUT "`APQux %XXR? q@MpcjY qf%gZmX-,-̖Vˁ&2l - 9Cs}?}OvP:>U5PЧ#t@&xnUj9s>}{NZjlo˒` W侒2ჳ3HЇ>42ҬVϕZt@]ɓ]\m^,ڦ^}r //ZzvO֓3_AoՉ@R .o0^]tisAa##ʮ2bד2O30KTjw2R%X Ֆ_F,MLguVҗ[L Z%kpgϞ X'0Zzr9PIOO+X'{M1k,$+(7$r}aJ%_ݵA?'հ?zw[YF}` [sMU k::Fʞp< W%ч {2iG8j)Ql~^*_sdK=L#j<)}o>鳛r{[%B`4| M[5K5CFSIpg(T٫ˌϜͳ3L&3XmkFH$G̚< 5 ZD}/kCׇAHq;ƬDžai@L^l3/?g5W] :9d[G ȊXy1KnUPU&Oop\J|ީz tQ,*}#"է994ڽFvۘmonfx'b"7Wj!kA_Uq@eBЩ6cpt^ ֳVGt='EYV8TvP-]I0f%$z1M 4ӭu'm-` ӎͲr݀~bec+R}/&m 跄 *'kaY\F- %n4T whS$WXQiEaT0 yK-03R^7Gs|QT}Q6^-3dj eoѥ{,탶;+Ppgr'8!/!:sV*)hzUо|(!8l ?[rJFk :6(6A9!qOҰ+ċAQbG8)O? 3# ߊQ-C Eq%7YR2b|t~&Y@kX-ˆM %B_^1x[.K6ؿyN8m,R6S.] ^FB.^UӺI1^|وAN#,# B55Jt*lmI-BB ټ(YROHY1֫!q4E t! X"gpފiA<ZEoxx~tmRF6kFNƙ[%- lkDA/)Fz}+mh{LkOVWg?V[w̠>Uy: :JP:dFGcsa&ǎ< >tEr4·qOY_*e5PpYW'maPV )ً?<#K saq_쳒)㠣n*X̢ޘhoě/5;e[ZptGwO< s 4+" ~'J{ B/U:M_ )G,{ Ź|,H6_: kOQǎקbPf̗RiLS)?O^OL|Sq耄~7 sPL#󼏞<76)aaW[]L,c 79 %UӲ_PmL\_w$?¹;9M и49*o}-J7\eAUjC"m1s?M~exH0@.HmMVU!,SG]h,m2-%HXk!vgFqnХlmw◿EP}Fore2P6ҀvUY׏"q;(%%2e(q2 #tV>PFr7B?Ǎ7d.F,jYy-'F/6n(caP3} DE8 ƘdeyBM\`?5j[ܱ9L~HY?ސB&""`%Jξq}ag#vxKJuHC:1Fg#wʚ*P״X|^SYpyYTB4s!zZė'+:0kA-Gͥ0twVZw%B0}va0$M!*WoAHh8^(ai&Vto5 SLu D7LFޘGCZVcmXK=~:m߯mD:{Tvh3+rh+:'GGy _#;-&軗% ~ o~ʹ DH1 q$A"cl@{L9a%E6IL4De§WCBhNmq>Zy&5g[a]BFmʽ MD}W-L#^Nq\M JAApqu é("3DzC9GdÆ3+1R{۹.O0GmFDz!9Q3kARmV~?$7ٌ++MΦ F.-:`p䪴nkH iW橆m rę%뚦Мt4!>&LsG ՗BpGX\G[Ce=l  _ $}f{3<4+64{Gͼ[= fH-ioX Zn|L6cF$* V8=a(قc^MN@r<Eyy?}Y{uZN\[p,apaCPYN.|Oȇ7k;sL:{`mnF6J>0'hd^A\Ox(s|o&'#'9{o@rp 18?3(i t_&Ob7M2)$`K,h>ɾ3J/ @O6ip(ue*I-3zo/cF&ac3@71 {M1Mvfs,XĪ#]n,L0yQWM-^e<Qx}or \n8OpՖw5טz(jA'dSk{H U5b}^b䆊N:8墒j<KH*@9xH}Ux"8\\8(gjČ-.W65ó=]>IY]lcXݛBNW*1iǍk{챴K\Dsk2WB/㞦f>PHM/ ?ۖ_k> Щ0ѐ܍gO[چj;c ,,,:(vZ5x_޻ =W!rV R]]5iG+/KkҢPY?Qi-Ęрo˛3 l4%&˛ʔ/?cI*9Z~bBx[|]MI\zr|vvtRR;;~7X_NlF@L:-¸Ŀ7|F{#NN =7X!L5LF ΊK]qt)X]p@GLjv4>-̄[xafB/~bw0MH9ȓ{`x5R a:&*;_ؔQ'rq"V BXQ$|,@ͅkܦ+~c=3PKC1Rf $nuvola/128x128/mimetypes/unknown.pngUT .`APQux EVkXSW=y@$&!(D޾ XR5 bEZM@p#00DJD,>Vmk PjP~kfj]4gd_CGIP(}Y< +HSD FFV-ud2OzuN"~XtG d8= ULOG}h`E9THUN݌,`z4J8OQa[. !]J lP'z|2z*C,eLĦFL2V=# s.+B7@c@9hmvVE. {Akl<b;"9@hRsb-;G N?a+ 6;¢6Y;N(M!$Ə!2Y>x3n_R\R4%O\g3s6+;v胉VMA[ƇcNߴ=[n]WW`OdXͩP3w1U oKoj!&-Hf>gx)cq!zJaRk߸kzh؎{e%X<#| B=ne1޷zSu9rG姳qǺn,>E:ONI&{[@TC52n6 ?| _X~K#ɟ? KAK. 6!;>)o.<O=UkY ,kɗ+&9AuwsRA-/e,BieB{wTd8axI 4WRޕ nhkɣ5?]%3 WJݎ ܐz?ʉi,O~ a6:7}6E&k7o#J4JJ~{-];*`6hOjpdy3yClQNt|vq6e3 vq9)IB tKѪ0 yPKpC1Z++,&nuvola/128x128/mimetypes/vcalendar.pngUT d`APQux ez{\K9Wto˦t2$*IB$]6֝" $I2KKM>HTD}lgz>") v߀\7|ֻ^".Z6ܒcӇ{7;x`Xk熝#w:*w_ܻYUoBpZP}מjRV{zz?NIMhBvdyŽ2GϣBV߱ -Kx9 8WŒjlkjIf+b 7,,@c7:>( ߸qCv?pe˄. E":E169jx%fTT$ tX3%9jj@`z cL3g1p_XcGE;_YoSU^ؼ*2dNOUY>J|؂.ؐ.J=`kI ()Y Z-^ .r7I 6Ws=s2u`1% ss[E3*K*ǼуOQ'vVO%S>O~#r3}M|ATjTK 蜾vɄu_os+_W5{d˒')RX,V0gRLQ uι6\$7v^m%f~ .]]U*-e1X+`x j?^ߵ9@%S8`/wڮW2z@W;kdwQVJ3&0i+ѩoŝ砐.:Lan,?ZrUf͗M¨}}Q%^%WI4[Yک lb {;C^-H eg23I 6u?F0iٓ (cў>WyZ^T= >Vbb4ȓ^oY2S(cѢ:ys|>1joڲeK-p]V!llP Հ5?RP & WIIQ- Wo nPY'0N?zaS?˭9gnj+84'fe_^S pt\@P4W' kN9fDFa)Sw5:OUX~nVjJ<%n/K:hCl^_G[뤛2rPr1[WKAJ5Q M5/-ݨ;Fn}Q T(% 'U+)88[=(zP%) 87'[g$+iO"h#+qP4EQVL,aکw'bn`ah:xr:!xiI]E/&IzQ-K:nd$*3rx'n32=jkq`Ξ8;p,B~Gt05jJɆLa硬Uazb K_0%̋ww ~u6g/#lሿX҂ҨX9]ˀ0c jծѱ}|\#HFpQOO0|^WT"TxYn&V}?9a5D Շf=Ed|F"IB1k}./BzJU1RUx9{4Z*mUmI+|2a=NЫjV)|:٣zk,6)ik_9y#98)l]Cs[e%ĬFnMXJbs܅1< <%isw_cݑj0?z8C SPgwsTZ#>Aq]Q-MMmObZCzQ˵.?r2-XM^׽RviSJ*Z<a@8#e_.>daգd27^ON46h |@kWFooĘ7|)G?Ia?ƱYkCM+ُ[}<$Ҍ5DXcvΓgr^r$ 3 T.YF*([ҡ!0D $$8>hm T 32s]JiH̃\g/?ז42FO8j-1G^UW!cԈ$[ŨE0[JBMBWk6.&Kc^rmH^[|meҋ#PCKD=7`9bh]yZp.YM ؤSC"[Lk-?8u,kX.`k1mEF`mtGh; {jL\pvCw%iH#0 CIԄm,no'hKxc.\%ȩCx 3ɝap(3`xbu9<чҧA=wI>نz ';ң[`+H3_;ZFŗ^NY}5% 1ıIQ"Uid J3>6Wߩdn*~_E"Yhd=R>iVP2gs(Dc#-. ttAB7D"98 B\| ;F,BeRu"#-C޵i޻dur ɹIoJ!<ٿM-RJw6HݵKa Z6>.x&7,m&kQ˩Mi|>c޳*Dmqc;re&+\YYIJMXWɻܰ}-?wsY}h z'/򩣀NKdd} FEmBYO Џ#,nHFp x i?~]~sޥ]=T"\Ǚ{ɓF̺K߬wǗD]u5#wdt]=I2P?&lQ,g?o|~BDDʷ%۫c;mP%ڹ@/#=ܺeXUO2 {tw׿3a"[ogIkߑ*zF`ΰ&rdђ9 S=9ƿP“]շB# gG'3gm+iūqgն.Vm̴ U%Sf'9g6%`>=K>*?y ~šԇj ۬u)G[5,@5!sCkb0so4O(:ϪJ.*"1Xyt7次%H䠀J2/ l˺y[  tԲPCӷz#H"f>az\[[9A:ƙkfK5` u>E(>_nVhG|.Cʴ GWfLFp~^?4d-`h67ռ\ApoX0W& 'P Fv V;d+8nԱK7#-c_,BW~M&<"Fja2gd2R=;wx=8(' >HDPڬoZ ! 1Lخ~IG~kr<-]ތ3Sm?ӬpB8X7̒tל 7/iiiV[VRZ :Z5IA- 4-{,4pNZj=9RNM)5}%9鹣CE .yrVj:͵ԤNz8ȓ`n/Z)e_ ͜uvv- s.@'r8~pHN ;џСLq$Qzq KT@5zя;vYʟEm5=2&*A]G,Uk_ anGyXEt^K1 R Pi[0f^?Mqu,6֍"o5ŗb'jggAۮը^_na8h3;̾WbLSpܫ/7891og)CoWAOP0WY<96U|Ȩ!6eQsL lFСs((~E rˡٔ$5K*5_M\vc1w% ϰT{BipFN"0M']9uĄYt %ӽ>Ù\eQj,=" =J+$WTY}~Qs!_?H5璃bD?Eeۃ8A&V:d6#?yСCgro]1^AOs;eBs\IzWakf6sqfQ}(c&Fz E-Ʊo1[QP${R g<ͳ0P; O3|f@AuwjP=`6J`'~%T-%V(߻*pL'ڰx]>q4vbq?s/ߝ{i.U,NJě΃h\w r  >ʇ(v^e%Î!ȸ-cNE`o·ܪkX>Y^$&[O<mFG0 gA7cK#Gu&3UvBu;}=>?[։+왷+*B+fQGa_LM6zתyV_r${]K;W@.#9Ň[ >kėwNݸ]5ņ3LqCe",c2z9V,?j#`„n~OҭJWa?w}ceN3iN.A"w}<1qtϠı틍y|鑜n֥8h 2ZSl1SQzoXӐDw€uT7fWNKʅEZ'PM8C u?g$(87zusaWb< 4,(6Vag*g8uw{~*@ W|DanJ}K{9[wrook."ͧtSс`~W9d`hvЭվӱW"F1YKoSܩu{oS~'j;e J:AVElCQC1Bch.!hh?)IG(ߐӼ GK" wD>bYL)iNQ(q;Vv tȢgRUUxWZh}[ZI (-n?Q|Ag9t 6F݋?/\Øh@9aD`,4w>:`cŹ7moyE$$!؝Jh uk֪d2B+qݢ.+! m4ܭZJDH ]7rLZTb'Ci:MM]On+z&PZ$0nA&u)XԟʆxV-.24vXoZ^K"i?T—qO$W&B긟k:Z_AHG~Eu8hS/R@Wx2צ*Y?,U+9JZd=/9&K. h9q|A[T yY1nZ'u|Ҫ{_d+'s¹ұ˕g)ʽfׅ T^ [ L6(WP$7-4V覊%/RLߣ;ԛ VO{lhA_k~|C'Wx<|iJ1,ela>aBc+Lp P5O[}8Kjߤ.<}8^w@i\-x9N3.jj}J$6ԐK2P'Xob$ؖyɸ7_;{x~8AA\JNe|r.{ģgCL[I@"W]*x""6|MlYL[†SZѰ Cj>YTӏaoU>VL.]`OE-v%5롩8d#xG]2 >6> N5ez)ن-5z%Use md3PW{G ktՙb#MauU;0__ztÊXS(g~nh;.ޣ8+M~}q6s9?R[)8W2ΕM3]K"žF=F ɤN/)wsqvėCc㼈lC׼$Nq=-Ars\|L)=̔QĎ`6CI[&܅=AM/lOTUU4kLMՇ:I,ZD6{ Z_)EvGE U_I&t)1^1Hj ~P,kwdi*s1f;23?~F{,7kg{8BVcnǦ+8=ת } dMVsCC2r2!H7PY[PܠS ?Q *A WjV/*=g߿`vy^+k*}nE\w}P7W(._D ׽QHg퍷'0JtW5Rވ+{o:_Xamlt* _#i3qW4BAMIZϱțNV\;J?`xRVJU0(}Xn離1,u".Kd$J.r6 !wiG{=Ny6Jy/-*[ހ8}k-{o(ԇG٧7 N^z*m]]d(@/WRK:5@o/fys QB]M iTm&J!9ۼ̯xH} 1Xn]|!`@eQGZ`f)>*;,O8>@P/[ݭ* VxG b{Pú\ɬ%(W^BU\9^_ Ok={SYu|sgT mg]m$b~U^u#^TL3WU4!|k6>$9XCk+/'o 0ƬD,lƆ#/|!aB+ 8@ ' }Wo;ǹ]0o/AmsD@}Q c>id+m-󶹞zd7x g!ª@Uj_)! [M4ABZz7ڲoL)蕡}fq x~%g]r NEιHaҦ-.T`Yw\NfbHgZb"8`9m 2`7ˏ8pmE Oy=rZ_GFॣKR]1ۈ6({=Tu+5SZ X `22~Kފ b\YlO)+0ij[gpWt#pF| rw!U38>)6L V8Մ3˿=r@OVct>VU**V.<NAR$o8 5+p_ L.(׽|%W?PKaC1j&&"nuvola/128x128/mimetypes/vcard.pngUT F`APQux ez{Y_4R+t }|i[iP%rDdP G7q(иHq(,@htЈ#&7_0BAZDV;c[e=+5hit swwתMKC}c XqT3}/)L9X8uZǦ]^O0X@ V!cϖVyXzTT=<< 1M)vIrb1c S( !ҒSTr1䷱=k>EX->n>QAxђ_b^^5z5mTdzl7%: F<ৱא 8? mW]۪|u`@FlMlYtNHCYB\6| 8@6{{/\2 8.]4{$ )cfgeE>MƗ2yyzH; ~Bhz@[0{MlƠ*`XS m͏HdBm*VBrrii-J\uroroVb\v2ޖ-w|:יEB8nhztI,[B )ωmi܊_c2Xp)+@563t `܈tG`pZNҝ\?mqrq>c);Ɵȅ*s%rY}XzfpvK!B=hk?u Ø;Ȉyݘ9t^qvw+݉T㡺 zLo6+jq)Ď8nøXrtFG)A3^]s'}hF[s)3x>lly&B)VL+b}F;͈۬d6A9[{*WY~o7Ym%y{MQK ㆍ9Bu <cj: i墻N&_&wJ)J%Q`xI<Ү!M j}V3|L9չ])g`O$;_{j[;Yd<5;}/ia>䰔 0>x@i˗s!aҹ0ʎ'Eю mC[M+vo|Uɤ-WUɡ椉'nM`F5.QSSM|ކPZe#NK%)yLKB]Bb2C +惋D{_ԡdmO`ֳ4vQG/v):&oU>Y.8;.ҥK>>V SV/9D8-?zQl>ll7BLCԚY'Ϻ֟2|:S7n.Qhb 4g&CqA2\lHHi(|%ȃHo'H4._W}*08JLtU:}17ضfMmx"/\jU/hhJømXO3\.*ָ2E1Pד\iQOU N1Bw5J~׋ g2_ $*fyK!5M%aufV0 p!73*nu=Ƕ{q _:Tk<\@_n5Rۦfeڲ!ZR/ m 7 ޞX!l;tHA9 yBp2qy~v*?[b!z¬y8G(̩A@ТZ%dҮHDĽ㯈Dױ̝¶~S iFcIHfMS?L{7L~__)f'vȊI*ө+ _caq*tR#KU?(sWLvl(& 箿kàپm_~)WEzM:82s h@+0qNB`,d00wYB'E!Og2 W0j -=`?BH=/uj taC>̀lS8#Zc'NػEPy HNL]#)] "'Žt'BtB!i *{% VK&JD)ň&f!BaaQ>cabcW6uK,=AopW?5Tg}E+vNSOc0'U^Vd-PnZx+]͗*'^}kV`k͹\NPqʌ +`X6]  H&&OrOz6{ H3,ȝ7~yb1[_}kC2f3AgzO,x8::]-8ZSVASS=(*Mgf Oe=CR Q ->ӛ/{N`Y2G|v(Wgq5 P&[>V"[GE =!Uб0P OGctt}W/yVꪂfTq^nVqW@sq"*t`RCqx]73X@fB )G- 0-? )P`FW ,ݱ-r z +fG@FT bp0ޛt#aZ_ 9? i/u[CH ~`gVJa=h{z_yAp(~PQ+:-_HC00랺IaV|B,ӂ m- Ԑ CE)>lǗ>;ܼd?⏥.\(o% (Js;M7*׊Q6PE+Z \uֽV^տ= &_WYP7[+>wh[ܚT[/LXtr {wKGk~H~1M=V &1d< pg/$uW4c'gwu)E \ {nw4 &2i)kJS`aKS]Y ?ȉwrdJN dL$[e}rP iGq'ɱS?צPU :퉒"mA_O,[O"W׎Xi-#dS\r&5%3~'v 4_c}Ru.y-Mq֑ /O[TVT; KFҵPvXC܃k@i ?Tkmѧ]1'&B~޻y bCC,_i#KǟL -l"?&؍,,zPwR)ISjoP_ =bO>R[#\\@!Lƃ-fMAOx, I2GB\ ioV<ƕ/=Y=qU;{y53d7 Du}>7eb[ 88JGw+;c[ ۧ.́ktT Xw0㖰{47gAksDD^Պ>zKlch߉(lwa@ͭZ)Y<}'%GXNPbͿS=̟&0'(MI?kIsl6{Bcʠ 5-mzkuww"77tl룱D*8i5-Dӷ܂CtyhNL&dkұ0..uMDn%P۬CZh2̸otNV֍ڨʄi>ucȆ7 L}_{E>BTձ`XZ\i);*ꛛY(G3"}l٥^YGii4+k|c*nuggTJf(v4ߤJh罃۷"8qw ǹi /S-a0pĬ k:y0PLfRm)c@,91힆1*~^!*}*ް << |h95ZU|Ô{1͚+|LH?[0Rpt΅!zyL(v?[ЧmG8 $iMz8PHHxIJ鶓Rx)ne}̂kV;vYH#5~&2*,_kDּ} ZYK[{"@u-xȷ2: ”O(u :h"e5Pv) nPkYjxr5/kq̻p'/D `6댅{#Ǻ-SL$R&5/e$*i;G(6=_)uUbgE['!ȿ6girAB,(0ԍ =ޣe+IlJ}5G7\=jG#%3.l܀#D{VRt+2%A:QK"Y'|E}aHL7k`˺‚ |o+dQ1qyh5&[۷luw+eR lXGήgq84L>`^6"mHM33Q `H4)f$1 ™OmjgQ y,`?8?=f.AX*NܿFӽW^QVfcț?#቏bbTGQvoug.ĘO&S/-?r[4Ѳ?33@r3g[_L`֡KiO X$ҟ<;)簛+5rE2F>P䣻 QRـ̆_*,Y3)d'n&4\xlWhVx^\Ѣlcn]0۷>coǢqʶKL9U3 9Ov]`C$s+r@1%|̘䰱@0S0Ȃ]:]d$׮0.o׎f]b;m ?8&^YqH^W hXdGd5YX@FĘE$ߗ_} 9Lڂcߏ ?7$|E!ߓ.DKDVaJde'q﹯lsfEucWHǯ,8s 7Lm-VB!3_h;a?CbTgQ#]@!\"SGck[W[_ eÃC:QtfFtC.=S5wsɉáՙ,@Wg @&t'] ,w3]'')P GS/X!n,̨Sa,2{2.8 >eCC|U2C6DȰ;=C 'y#uUW#d _I[yZ>4Ԫq`yo;``OGIz$ xCO* ZiF{Q f2"X~WȌY9Ccֶ3G)_R_wڄ>VVդhJ| ob,nZбY*0,Eq-\vRyQ{tLúi:6Cmz$Q^ ɔ?,wT@1ZVU< m̟weՁuu[8G/"oA׶b'ʇBr6 P;v2UciL$j Nw,d2M98sfGA7 EûmwHMߠNM/I}iyшW/a!w~*Wr,]8E;l+uCbG:uVoE_v M盧C`6D4?'U½ԡ"T"_3?U ğ\{'ɒ T'e V1Eqf.!'֋oiw}#?}.]>XpLpP|(I*%_"/DM(]G38`\n(Cgɘp g̜{P׀VwrݾnԨAbI42nxO'- mi_Y\TO*d$1WJ)OK)8+zn@5˂>i8b.oSV)-5NaeͺMƁFckGՌL' Ө*ENe~'(BNٖ3"pyûEsg/tN-'3M Z dNjjJTj875\ u~Oǎ%V~}1O=}2IHh HNszV_)HPKg>K \42qW b:^O}Q< _6V(.IǣL50'H!t?M&y8n02,;#È( %.8Un-~k ]o@OZ^W5"9<6`J"W)儖u 2O >Di7hH=ՆASM݅qr,eEOsrܧ R-N:Y#Z-t9J9!p7 .$w[dJq_|u$;O@{صO31F%?H@ V.^؁<&gP2cg=XFJ0x#yJQ X~lbcRy[t"5'SՀ{w[)5=IW֫sS߽/$"|I , md/ bU/i[=laJFc#0ݰ匳mM{O>rVCqwϬ| NÉ+_7[ X7 XyqoM kG5|ۈ%[,r& x(F#aIлk ˝=YXW/YS'y WPF+@O:b)%t)}l1E[mW >ڨGc1%&wØ)f8~ e6ua9Fq:D;.btBcnCl4v ^,/;D=M.\cFV\uRoE3bZ i)[Gxn:Xx|ìnc. 0[ 'C֯%k(!1W2tgayK)p[l38y\ )砊rK@{쓲xfCS2ZWLv7\\Rygv4` ?p0eD[waA\_^%!_gJn(nmi2olhi:l]`t̚n~#[gG9 S?+޺{szq;wb&l}J? ɣeSU#?ǃfnnMZTuRg~ZS!9%h3LWgg#ߏL+%f/#pɥwv#ו*Vy,C+jxp|mB ^9FW=~VR*tzz՟WF ӿ>n.ȁ` Fl1 ˨ǁрeYؐv) eIKXRC}ya5uBF,jdzbbbX,64ȵw=tHWW`)T8 $?;fff:^^*p~cQ`-))kUN`)Sjuw֮E&#/I0JjmZA/U7#*Y148-Tu3ud`,k*@6nًVVc7J04]Y4=-AZ(:g"G6]xJnD˗;È]}}$׎ϓd)L'!|7dPc1U~utl`^=•\ƺ;M+QJgAsV Ե,6F?fdP Z0{_=xlIgܺ"n9:pCY}l,ZMVY2ن$ş fX 61hMc>S̲_?J Fu}&Xccuf 6/Zs29t[9ݱ%Gٴ6滞𻜇H/"3>c/x\ -@ L\OS_;93^_[N$) Nw֮0tt[3~?`n-܅V`u{i8Lo}7 MKpX A9Uoe2&^ҙ^S3u\!2IᔺuQDŽvpz*Y\ ΚJ3#8 \kob2CZo3r~̣cEib"UoQcUPFOR#l$j֖Vrľ( IN-^H`RRr8ݸ9OM)' [&cx\TRCŰ@~vN oS"g1% t9̎N!/ * %s/])9W#˿xbڿ䚉 {QsHUP .M\B>J:|MқWVc6I[98F|Ν"."&]CkJ?kKYrb# gZ88*x8uvA[[l֜bok646͉xy#d( ^Оw YnJ;+& m% P܋.#EҾq rh4<FmGA fYydxb!"ėVC?☟\Jx͏v=M=vNH@ocvD*.oC>JBv_\ƿj^usq5[>aCwOoo{:ḢֳV͝Y1dik <%ڋ;ܶeۗ@ޮ7TXa9*8E1}0H!wC7FpfU^,!kQH聠`=Yis**spIn>fNXFP&S<H5T!pY*XALx.ӏ,@4V¼J5ZVW 0wJIKjn%#hU-Vdg+nwE`779)Mٳ<Sxt0t2IYg>}CF*y0*w$w\k}E 9cXG q8hcxv]h *ϳ7 *y/l -+˪}gu"P5HI*럳THDFGtjHGLd^of|Nz:G[a;"y"r,nI`7u8FJU{;rn/?ܣ$WC } {/|lN M;pހt;uhCַ%)lhwr8&W&{ d"( G/8XP5zAx}YiR[[ЊQC[| SM_b4O/aK)gfN#@GďHOg)Y<;}R=jG{S^#Nݙ~_Z"Ic#WaTW/"զ$xs+!D"QSn&l[vB^^bR,A]V<2mxp@3e5Kq0z|>ý#4Ny#`KBzW`Tp5iB36sGdHZO ~ h`ۧw@jGqvRI8=5t;NXkWKNy׭x*L̵Gp/]f"&Zy=@Ykz*"6&`ޓmv!zkU-7x5.+qpB0qd|6kK;[VpOE"JQCyj5쑦=o@K߬b̍V(oҲ3e'916uH=L;@)N7KpwHHb`WL5S ?4@V (>ƺNdQi0d LY Ɂ3- Gj\k?|<aLpBT[ݡΤ pJCgiՋK;o?aLFrGg<Uq aO~? ܲu/rxy Q5_tlݻ:-6huۥiɼ%@xʌK] +v23rEפoP͖<=A+B?\CW6Cm@LLIs5ْݞZ8l&yt{=&\=>uVA;0R(5DRfl7En6GI:Gܬ>-rirǮ^>kNC>'KM0^TBT}9hה "QWRA(߹&Nф[X[)>tnNAB9UniMY*ߕj54t߮]Ǻ,z t?P"}Pߣ @maCg^T"j~G 'К>- 8~Oɽ 붢 ob;ĆI~[zY`ʒ6b>j(&=o~KĦlFәX۲Zʀ`FeZ V|YIuLSn N}yMR#18o=W_EV%usɿqmVT-+5ru7+Qb"U?!7[|qjH5G@`r< UcKz;aLЍXGئ$bh`shR@0_M-g3מϓN*b3e>:<\l7zQI8b@ ϕE] )p'lEɂe;"Nj?*6.{:0.06`]Ĉ>?YϣY ibC pts;ڳ_lW2!mh KZ.^Hk2sbj#1 =ʖC4[rKw褧$Ges"{;|p-lOyft"T}~1M\ΥK;wZ^ B&ўޮh yϿ"I4Z^8\ǥ/q ;NpWFWZ&^ќ 5p$}ĂZ\f)A'xY[r4X)g4蟋  I6P$tDZf7 vyz13oZ}C}kV|"@JVi&/00{9:"=_{n_WK_o)sg5!(kӟ@Ӆy6/؈}LMhɱ /Y'Ǭ_Urِ†2.Xv;Y#Q>ճᬝ|65 cԨU )k?8WAYZQ֋3^U|jUxięu>ϥnm`z|{9 P"UH:s\#پMǖ @kqkd@AFD݋߰KS:ʸ~Ǥ` ]ӿ8[Lu^Vx%hlsvh=G:m( XԱ@J&uR[5'z892ng)"Kcq),ֱXZQit9SYWJ8^b5Ͻf uԮ:(L$&wd4x_ظ 5ߍC:a3V]&]˺. 4;hb\8\0]L0[ |q95˵W5|=y!Kfݟj+еX^K\zyiљHF" Q~1tՂ51NS\l6\1UG}x EE;yPIxzUdt&3qz৑2 ˋ;'qxMU^D5BWg!U+a߶иF2?3Mb[.)]d%0jY*]Nj 2;fT=!S:s*ɡR@X$qΒ@Nm7 F}PGmaB%#愰b|*&5i C\U2dc R->*o%nt,vzd~'3AeѬ}+|l' M0^_okysmGD2*'OҬm-_ pR s-[Hܟ.GG[nv6(9Z:8ʧcD騼GpM]#.x4婠n},RkY188xZFy ywOSy洛xsa?(GJ}.eNJ:%dO=刻J%lVOiB{M,.w AoWa !_ 'e}n=XqJJd9sX`hCy3Su5W7:Yۛ ͅcܚaܭM0V+?uK)Kb뜺{.P\Xc;Y(o 1mb*>U?rob\&*]+5ᇔ9Ͼ|PJ4D8$YIANHa!4L+ZqтDz">D!5V`#z6;]qS$܁}P͟mG[<XFW E L\vH@%\|^vMHۿ~4*sjWiPdn&*%:S(hGDH\yܚd;;JB=NW[IHb#]8X\ar8+N_95qga}K]Ǔggy+YdbθQ|S+ /yJǫf5<5;GGF"$]q&yȏ|ͨU@T8qN{M}v;mHH(qa{Fjymuv*SxV=JxCr\I5y\?FCO"c@p执Glc"I)YgcQ.(\&K_TamܸwD18)8R~x a)%; fi . ߲rŎ%Hky=\ӿ۷oDr5%!k+Z@5qg:rR `6f nL ~ֱk~"8fmY c6cT6̩RHt!<z%|*Ƒ@FS#F)/ 7U_է$(v_>}$K2BKr+L[Uxz:[!u> #E&Y( uA.1}J+ iZ4_@"\칇Pf..U߫#sҍD1,ePh@K>:>MY9PKNC1& "nuvola/128x128/mimetypes/video.pngUT $`APQux -X IN{w>}|P ςrƆi 8c c(v?8ql%d+++:V$uW}sMcVS`,I=(r_NR?9xao+[(8qѣ ooj\J$<)Kko H"i3+mmmΝ; x4"'B+s8^dXXY=g icC(ȥ|ׯ6 8QMfMOP^̻huQKf\]180GYQx@O@@Hh'o||V!%))qTr(U~;'GODXsps$X[\r~JTX©AC%i+"|LS[8W 鯃 I ]wcmu9z}%slΨwXez:!)/TT 9eennɵknݸ9I5ӻxJ6I|[*-kZ77N!u3F|/ NB΃R}86ץ OpE U-| &-s㭲h==="-0VrX|0~2wM\6^(q%62"WTW#B Svop&g1YV ?#\Þݻ6B;2轺:iL|F',܄p ;R诅^G!g7ܘ*| klCZ;8x}++v= Ei7v;=k<6օ33SчHM"sU"Me܃&v  Ȧ994bSsx v ), Bi⥂maP 5Vh= sI$A6y~lׯ6'ү^;z{}ŀxkUto ͓;XWE`>A=ߪNXD軴(67d:>6Ra?͂]]2TOowk`-`FίׇSa0X;2|蘭R4 M? u݇N×~~s}yrhzZ|l_[cF]`EnN+++Cy\óIhAlX;3^5Qmc%}?>gUxԔ@?Zs(çqǝh9Kt߹ydDR}荿_Π${7epql NB!!!̫ [H**ȁϘ=V2NZ(hĬ-Ѡ~:?US3wp-%ÞӒt`3(jOE]Bket.n:ܖ>=33\Y1u@NV4-m` ں:/&Bz^3$#5a/Qk5|Y-^wě"ף?kY"^zf6ӄZ}ÃkwoilԍDbQӌ/'i.^=1!7왅O-1(߿3 &]𾹙-UDc]ޛmz.Q&ϒ av羵38>66P I\ߞ7[RS _Cm$*^HtR'׮B,})yI7n@2#2˞AJf1o q[E_Ѫ=mNc҃"u&Pza$xwwPI1r;}E8S I\r+bDQts*, ?R p&b(inHZkˇ±#]]]!|(Lx" :=R"`ƑSݏU *pojd |-֭ݻ 'D;[8ҥٷ=G]&=vsm*OYK>8uwS͔ș ӆαRB%t4l5Y~<3߬8N_(e=sŵɋ_#?:J̝uh :⪪VpJ8z#t!>jtijncӘd~3+=f Q`Cj2oIۻwKi3s$ ^:vғ=i~az gǵk\= fTG7hg ]KpsnyCIGkz! guAJgRз-àڕQo BWkV|8-I;LyMbJRMbFceL͑ ܜșJ\9(dm8{B$pu9f.%%w.:3P Ȝ.Xr)VE8p485Xé]=\?$-7vUnCmx33So\{eil>zC(/i:0/(.ʹ}H~?K 0I_4f'kTSjN ۍGAqYPEP`3SwضF 6ɐ>vjMvF/&_{AlrWS.Bv+K‚X\ 1簙\n )Nx6jZ=ˀ4otvyy`vo0oEAq\5g6;cٙ|3[wydҡ>g%ꈞtSfI%N/FBV=L=hA)Aە9*^3cː-\•\rC Q4,03/J?pxs3#o\ǹK{pA|0@;aNΏ]squcBQij2)6vh*z~}]~GK}==׀@(X,sEvQEڐA`B<9\l@%Z6!RyϢ R>nlmze98܌jod*OSPDҎ‹wQE&8ȎG$54Dq]EC^YYSdک?w+SļIqJ_/c*U`Ng>\CPܯDwdmoHW{Yۑ%TB;sIq@+XމQqdc.EX0vY33(1 &5mI\$%M#ccvFJqx5f8L8y$+XZ2=@+R7$OO9 DT)M]"PGsM7) C\0LKze tКo{g'SvD\<}ydykXN|Su g#=Ϡ[̎E 7_}=>F7}pamvRYAּwf">~;qLs}S-/"'Je`߁Dysޯlw!!GݻW()PwyHP3#:*;*`$=Y!uuYp/P n1lmZ['M2šRlFy9:n,R"8/^j,nTHcɜ*_ҫ|:]8CJ_[Ia`lȢxrDw:֢ZqdFE= ,,yjp0/J1ԝbԘTq)5Dآ.M_.1Pȉkryz|ħ)Ca"Py~X]lh֖/ MB3QUjVEgbt*gf78!)]ㄏMLKq@f>pN AӧQiZNd=XAA]l?HY'/9],+M"p>N0e+1)e8-}?Wꑣ6OCE%F$Pm0`|$qPJfT2PlEQkZ|EO9i'YQl"BڤL=x~bg=hhzxFP"^?n%@Ew:;1T/Jb{ӥфײ-r;{PpqL-Q =ײgAy$/H<~>z7(8 bʅ6wiO?LIG+WDa F}W.\+ʫͼw^ВR~Xp^Fz7#g|^'o}V 6"f$)?ƒN+^Ȳ>2~X? Bv׈AK -KWݔoQA*hLˉ Mt#$'ЃAx-ʐi> LjH>  .Yi?/|Qi𧖔_J4[`,$l6^ '.w^Q&dU;$h yף6믢+PZҲ5CK7Z͢/_" 9l( ۻ1g &ԵaF`͞Z3fwI07%?'nj>y|~dαef?*PX`۔ ʊzA."d<$ĄOlosZ){U@V Jk H$)/ȪPoP^D\NuTImTxCd7k},7=}̶AZQ,:h9uS6#cVpA7y{aYk <Ϯ?2>H.`phbjԊ.440kgr -/ך !I M I/9r߀ wY2#͚V _+6V{CFy [,#Kݣүl6:I?z$JҬs)= :.)i7§^SHVF01=Or=VakI2e9&I=0b6+?lbչ9')TL8Ùp}3aIշ8OIGeL.;Dail%/ dMzd! +hP .AR|^V,wuifhuy|c^kƝJݝ _tKcX|4/-ָƊ@Qw6\]]7|}6fJ)PZϽzEG7؂dIJ<!Arzf&I`$q1җ/1O-kKYKH`Gp {}QGԕa$gOØ'F2 ?k%~ Ry*@M @d!Z}S%,)/6qWR nG#g}\s$7O{XW\2%r;e*6F % r kiHQaҺhKyNA?F~j,1(!r}Y:X1bPKJC1p'nuvola/128x128/mimetypes/widget_doc.pngUT `APQux MW 8kfa1#2vdIl3CHch)g0cde$Y*q)-'tJ!őSi%L}f~wϽl @n+^/ [ :55{Vwa-Qaab@Fna2|sWV[Un%䄢@m+Hk7ڌD.RjJm-,,ϏSũ2gc׭SGd7_B\ e~ X/XEzmgJry 焄pfgGڲE=nHA_|Yռw`711?%e"IAM)1371iBm/dR@fI##'ND< 7߰[qbs`Fأ3Wv6i)- cʰKd_ z zu2_[@zڊc*6Vxu5_3MWWo1J:7bt}+乒}|0?_ _X@;Kkh0z yԞ kLU7ˮwsuM3"m4K|O$kJ,s{)K2$eGGa 3E"s-WZMsԴ~f#ʂm7Gň>ND2٢##v4J+!9~)QM}Gw4(4Y6۠9um6/,R2c~ŇD>gF΢ Vٵ݉%$NGŬ4zg.z1^ЁYK[ i\9rXz|E 6j<7(U(tp5E+o"RBj4WPa }vW~8/1u-cY8 ) =Rr*fauΞ`9D镞Ǫ@ܡ Il0\/Q3@)y"% ͩuovZǩk0FW0:ף!NS?v8RD iNԥ_ՂqǪ񜫦jƧFT2S5h4?eD ޵U_Zg_ ߖWR&c -^x⚂MzHz{mgDdd$')j1 5biۜ:Uh˱I(8j/M4mu[bDf\达Z1UZ#;ъy jX ZDGܦCvVO1 (WKa\ݠ;Z~~4ccq7#O΍LSklP6 3DKT>[wrBm#;Q*oH,*q~CrGV*ʃ/$AKW77:螴?bGY1H>&6Vofӧم/Ԗ M(22VYF Pl N2d911. b~7"jsdS=tPݛ{N MfSSm݊1:=cl\!S#Uw b8) [4e-}zSWOs@]t/+R&GQu|Z$|Y&K,? HMGnma\klKY7 kSx5AGϣa5&q#;Sz9ɩv[=-"OrwP4pj}Xhj誥8/hʉ @u5h8/KKxKg}uߨ?8,84EF?p#koG$ItY#=?t6e/~+vvXX^kV :}r1۰|a3=tOFNL F1mF>`O[)6*# ~(+*)񺣸BpBq^Ȯ<ѿ|B&iUu#чMX_\0@vrɝ:c"$.m7c$!& Y0hpa c:R֋Mm)(CpߙOj4!'[^P+ܐě:ӀjkCc'ӓ@0b ʄ~ڻ8g:BHc~R 0T`w3K1[a* 2v#Ъnyisre+>r- l3ǠgeRqg |ԓ|/8H6"{w"BR N;țdT[P1M&79I#6^:ofxӧN_A~-?M:?pG=c߃ۥN^?7Q<-za:AJ> E=}IV^iҸN}2_ W/ ,]e6]*CtjЄf2)?+ X*auJR,!s|*ոw!-ݔ;; iUeq'Y)2 Ehem'}l 00Lĝ`-?7*=Y3g& ',?I.HYI $JyR~DQFJl$,R.a ?yR:ĕ۳_$LLÛ " PmMx4\0]et: =& |Nfo^3doWS~ٽ 2ETO4ǔg9$K/J`b U+K#5 Դ%Pnq_|ƺ.'2z@@w̓B!٨zg::j56fߩfggYlvv>{YUz?b4m9[ՁWZLonZ;ѩ]wם' fjk1-rz}Z`t؀ވh3hU ڷS\sm QMc1 ˃U~%ڲg_d}ҦC(`J-H4íĖ*ubhK{IDr˳m+aa7(_;pS>>s +YL&7M^t CD>M,k46HcFGNA?b}ё*eZUFw^p/:W^OK}G ZG$U9ž3&AvUA>gpPx!>l9;{K"0]\wwK@́j-ty؛FܝAOHRy^rlvg W9ɶPp8CZJ'giZH#??4OP98H- Ƽ$L\' ZQT̈ ě{OzyVpߢEQo]C"P޶u#SG$ kZ! H SWkwp813ve"R_\k9. `L!JG0׮`e*|L瘔&kc#'/?^*t f,e'u7V2L#D3|0۟RI$ޫ;mm-fZ[T,&&&(A\;zp%+JxЇSX <6?^'ymn$a$0%d^܀ cP.1g|8'DV9^*G3nG lOnhE'1~DaMz_ޞH٬_ YBЎM c{?Ź+卼`k!T3 3<@E;6>>F9hraC:Xm@LLLY,x~}*:K#yAxIW>yIO0 clQyqWW݌L'I`q{oR~@8[~9q xd24Hs9bؿZ'[Hx@(X&1!3CEzfoI{[:[Z \jз0?z{+:Fu{+v X`8SqkUi>s}핲c~ӆ-Y+%  Yf7H%_XTNxɠ ;hmBXEKTt`f[%킦TG{λw!ˆPܔ &Ww, %[eAz`?VXZH~ij.~"]k,爪[zxS=uٰM÷Z逛ebyU%n.u5>I'\ξAvH9nCm1-7e~2%1$(G o)s,a0o@̞!W^G{fYp,vs [k6SphM%w"0bK Ci3]Tl9|Kgˢ'ي5VT $Gkg; >rѹ{ .5bb^'It%OxF&4XX2%`ބjO#csRLT<[ p7)`Hi7I-RRh@;]=YS9qP ocV աI tԎYve~5|e?EAnNHZn|_E/'p{j *YB".5[9R=Y$JJ{'a@{\ī3?O^ 3h$ETfː-ˮ=t[ZTgpܰ˙ H 7_>tAvOo~c(+0u ğIX"?+ߐHXS7ɋǫ!$I%m 7aAu I XmuX[rG܊q?6J6z^0Gym*IYMY:x7ZID_1 IP*بd`B7`तOk}ǖ!:ݭEU̹%H?52EW˾r|VbT J}I0۳Kwe'Q)mW-2$+K"vpLv'3~O?ȓ(^gsl ~@{5cO FQLR֚ҸhIܡ+ Y ޚy)v._c(.;*?n 0W7Rk3(N#&Oε^}B<6 ʶ8u~>o:.#4Y<7-We1<_ ᳪwWN}) +^B(+TS`h᭹A+wHn7UOX}vN/Pϩ]hC GR̫C90Avu^N\"V'EP~~_f V{fʅZ NҬbe, }+nj䁟S!D$Z'6Yi9F&|f n4$T62 |OE^lBYM?5 /:Fz .4 7ӾN)yH@^oRd^I;OP#pO(bLko>/ֲz@4mEAdv TdYyZl兑c9,lT]O .4-r:"~Ϣط=xrmGҩEY^ 7Wvu斿T3e P6{ %Rd}vR*+ LTQw0(6JjPkSW Zвk)?נVVWǐR@"Syd`~bcc7s3)syzj + ƴctt_#3z'^w!NH/} (Zᗛ/&5Lo8zqɗ _ɀÿ _9Ay헲dqDy+gjĸPC]h s? B1+/& jxZ8<+DI`s{ΓP9a",!_NN+ZLMFY?mIHʄdnɤچ'ŕUYI\_ZJi}fd#ׇ+GB{MC p1I-{O9v%FՇ nzp;=9 Q3YZCl]\Z90=[rL5'12/s D~ ú\5Vwd gb -'Xbjʟm>|ح͞BUΟ_"d>%||9>`O6hc>〉V$f WGJieXȍ#OKUxa s.j9܌4g(% 6e5LwJ o?E[K!).ޝ-j<.=rw>g C4-vnG;#Vm9)994(1' c/^H8FpBU67HXkXՠ[נ)vH~+guGt zzfE_IU3~v$w{.#3paSX-^Kl5f-j14ft@oNiQrXF'4扌Mԫmce1QyiX9Mϥ0LY A g'75?!ra{e?ucrrd;=CKt>$.'( Msn'zAhP>V*jY o pg5Hu blE>m#~kpV`?d+MKhekQRLHgf\iG?qzAyj@Bdnsl? .x ?u˴ m09:ӡOaҽiWU'>2Xy4$ݘs՛yydUr5xue `0Ż= mAr)s2I3 W1Ip@A9"%Df<МS?kGpp? OF% j B#\>BkoVPY='FNd*K fJ3&6 |/+?h!O_Ѿcq'Xh3;=B.e܇F4Y~(痾@P vP܄,7qBa= _Q5Z4FGJ+ET(UJ <>L׃L@ %8ɛKI02}00r2ĨB|lϾAGsdgMb)GLI;g]|tJo@#X;@6r~À1FRt0T%U*xl)/n\1WM%2R0B]F47yP>xXY`I2aX72TWCPYY^ X"ߜhC\:O:)ijr인ORc7W m%C4wV6sT'](G, ίaWV>FbD'G #KToִ cd~9!=:d4 ׍_:! Bw3oKhqinRr?'{KhC+Ld!"ζHR.`0Wq#O;Qb{}:ցw5 tŊ/|Q~ goe[R<Xj@@X}dHLų4r>r;޲~<1~ukʌe9-ՓhpVdA(Ϟ_bdaM-Qyd6 TbŊoXÔʯo #l>y< 3AySG@S8wEmK* **qR0\^t%MɈw e.)E5Q@Evô$4}7zh|PeH JH^]H{J1tc}WD|ul5kЀ,R7CR1a ݎEUd1vza_f&zvcp*HC6){M܁Cƒ~KŘso"ƯcEL:Pl2%K?oTЏLr lJNdLj9MP'gL'yzx֯r[ec3L{Uy@o d^0F2^2Xϲ{tXŽ zz L erAӖ֬*2E'ْѿ/F1l$> 뤺<Ӎء4A)&s x@8Ɖ -mSJf`6à8>. ( 9vⓅ}$fK0;Wh^b7bע6ˈ?8G?b2^Gۗ%W Lf2 ("kdҎЅ49>F#j9"r M ):b X6Z/OM8KТhBe `.g10}Ro.27/?7?/Ee# E-{dxӫNc~~x4 %kQM" +5$ ÈP.M q!Jr!{>Ɖ;z$ COaϦXĶ&NW/3ӁƁ*eI]k{Yxivg0.` iՄ(En$IXab3W6D^bW~ !_{LsZ%Pʂ X[s  C|KW$0[ N(kYZO/s[ )$PH P҅ *o0IDSP(9?&7лR6 iHMt1 5slC(&G{#Pr=VR􊜌 6Dc\%?6a{>8iE ՅI,t?ZeDߧ zDvVՌ /p_mЌ9$L7Ex:jZ 53mlBk1)-оW谞~Qu YLfT^9:Lӥx+9~Y͞15O":b驩8g8,>mq0sF|\ڇ62dfnࠃ9UkvR,bߩQhRd[Ń.m?>.C޵}r߻#hJ=ȝmz3O]:uo&'Y3쿆2d{3{9IpB\m>!R*$;<1Wc(e)B} *>wSې;IPy̛٫6(<7Ain;ijPVduy\*ѽGSҧ~ZpzHz#H 5@4&zU@; xlޯ7|J[J!&]L>]OGg%<(zbeْ# &tgS;FlیDɉh!Fx| .ÄJQKX94IidH 3No4f% }ٟ(DB)%0 J߹.&Ķ٦׬^#dGE/BE{l@ڸC[{m3\}aezHj54\c`%[;ZUZPbPK tQB nuvola/16x16/UT 3 Q FSux PKuQBH <nuvola/16x16/.DS_StoreUT g Q3 Qux _lE_ؓ;; U-`Bx- =]Kݻ]vkZ !j0@bcx&Ƥhh|Pc4-[cb$vfvg:nZ@(b y},p Nov[D"H32^D"ևȴȡ Q'+0IiCA(G"#"LdRdZPbBq(PLL.K$>S@"`\yn ḩHI(Ѩf7eKsvdwU4%HFu bնM!J dej ku KW F%^W.^U|򩡧Y >7t2Ao*65}]N6[z]öz*~)N6Ųzif't'Wrx%43cxʹ]}w(%w_1oR[u޸ѧ7S8 ʙ,{hl;fTb|-mmHNQ4ړ3`ꭖڣOht%f}Ou<VCzּ4k̙;x<ƚj2j,\T~Vw^é%Xju,jA7O76i/ ~lWxƇ7U>W%l0a-ŇC>|W;FsL]Eij5j5b'`'ʿ!]P8/kpY8p.3% p>.Jl͘6l"~<xO&³.~gx -_DI4*:UH(KHdS? !ztN):tF-\-.b8b.^ |s|[rJ|GIK02i̱\Ş'3 l( .qɡ3_xK³ Ŀ8&&[+B3wMOxζN4ok1P~~p&p.b\ilµccvs3n^^> 2|O9|)+_7Ο8?"i)u2{J;H=T}Ӌt|12оl2mk>KH$DrSD{6D"Hs '5R&~@? ՈRp^ZPe8%D"H$D"H$M?PK "Dnuvola/16x16/actions/UT FSFSux PK ElN1E8 ((#nuvola/16x16/actions/1downarrow.pngUT 2dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ("fb`0t̷qq0g_? LY9$2cfo>@ P*bİKnN``eta`a 7t 3|=^{ՋB-dR  Ld>dO,/f_؀wo5g++Рh~1\S(U7R`՛? _g` (ijj^aARI?tfs fxӻO [ļ 030r6O!. ./j'"`_Pk13K= `1__RݽW/1 12()3Hk(2<}aq5 1ֲmz1Hcbc ?~\ȴ^k 2 |e`e/?q㥃130O߁Q.PSzB ^hƒz~dЖ LL   X|}R1hvlI A1.0%D?=P#s@F^⃉{IENDB`PK ClN1p  #nuvola/16x16/actions/1leftarrow.pngUT .dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` F ?~30Xٌ@ vVS{_bM@ @j (ifZe=36L@7?wokϝl?_f6bhl pgY[8h0p?#'0d`S@,1cgQV.a>pb_ed/i d8)1ueq ߞg/oOcnb`a@enbf0CJ`ϯޜg`fbd=vD&FFNN>Ove`x(??#7ǏO>2pp30p1;7?&;nL\2qWw4d1ps1Y1X;XJsM-r` D4gtb߿; eb8MAHW@EC6`,´j:,̻yz3| s1Qfe`b @#gԟ?F=O0𙁗C DF\޽<ӗ yAJaN'CXz{g@ W cx!3ÔDGBk-6pb3 ahĒ]93+w=>!^#ifyʰKع8y0`$ a2 [B(W@KBAW[Åk& <@@hC0'3tn131y^nVD[U 3v|e8vy| }F1 `H2@1'^., gaOmf L  0f/GB@[Lwao_D3aٮ??~`\@`0]QEARQ;v@I exϜƸ \]@FLᏘ$gL < |<b<>n#7f_82˿3420.•nv&&&n_ ~ʰ(u_J xJddfwoje`a; 2+@1R Иy˺IENDB`PK 3lN115  !nuvola/16x16/actions/1uparrow.pngUT dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ("Mga.FFFv LQ2 "zF&S٘ݷ6NF> >Ī93J-xS~va246￧70 3\ˠf8( /@A n];@a5/%UTca`e`V T.%ƕSop np5/ =.d&vnv^ ȳd'̰?1=z?n&)MB&k .[@RaMG0|+3^b/? ,ҹ3lܜ$dxobafS`t'ý w~b FNɮ%2ZH^a d`ce/*7@랾f7C3Fٹq嗃W`4dbd3PK2x00\d |{1Р_ppuʝ I * m _?k ~ ?1ppE˴)`P~& 7^1!@@X3  >A$}Y@`dlbxs;@ l 3c+/?aa}$g r~{ {3 3&Ɠ@ +g2ed8r=Owoqbƥ0:>} #@ݳϾdvaMgp 0cIf)!mJN|r r| ߿f Ȁ ^Բt_)`ppax][;x8X~)목=fdgwo43փ$b=/N(1pex];~1zwʀ)j4 ЈJ̺pcbCەBG <( w8fb^1A IH%H /  >APL  8, ) BAHoB",a" 002ma`{ |, ~0d@L ʖy9ͻ ~daWc`fed`bsy31r40(Pf}x՝ <dcgb`dc`: /.qy9_Cݯ_~e? &Lf`b7c ZX `qlH"q,IENDB`PK .lN1ה  $nuvola/16x16/actions/2rightarrow.pngUT dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% <6]fgf}_ yvn>>b``fc`aaeŗl- L `;rbPPXa*/+ʱ?+А_, ?3eWcg1/@9Fv^b񯚱C}J?x 0_vz;{ -a`A \p  --!96<&A<EAXL 0,# (= MBA A"\D6.)IQB AX&#_>d~B | "< ]NTYX!Iw ?X~ccf5S RYXX9fP<쌿ǰ7%VvNVvb#ÿLm5֯aÝo0ps41|?6e3;L >1Xw?*¤d )2}cbf`w8>>| =CR ^׏ LcW>9, ?2<fX_| I9ef |w_ 7#@1gbݗgf`f}9ߟ*$ _~(c`b w`R h+_wn2{x&0020Ǐߏ^{ǿ`_l3_LL'xǯVzf$@fgKTĠeIENDB`PK ,lN1  !nuvola/16x16/actions/2uparrow.pngUT dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?B?~a``af``A_}9׿b00X89pb &l31 Վn,l\kqƦ 0 [QoCc FEϤ\丄W1 ?c4yHceX-÷q1H8c/  #s|OYvz̮\>R L`X2 @` Q>w7o^A;1ٵѿ߼?~Ÿ2|fffWb A M%'o9Ǐ_ W RZfl"" \\m#@ `3]/??Tm@XWM?[lklLϿ 831/;d?*61 $ h#;/(PyǺ 쿀t М`V>~n~P &bs,<ދ3k*1( pDagoMnv!ܣL  ȰApqP#̰2SCa͹ //_eysd&Iie{ff= @A WMcCWÞnޟ7;'Z`3i B'4*2aϦK n>ia`+??<" *Jzl@z 㘽k}O6203?++H < JIENDB`PK ݐN1{7"nuvola/16x16/actions/about_kde.pngUT "nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb JbO>1|WMUUm< +ǔ)01xORUUyw;y ba?8ݻ?/(uwwb ̙T^x+כ=zT XXYY:;9ٮT9sn322wvvnL ^|0wo?@ ..A ~o^r{𿥥o߾N4d@ABBQ))5TT`EXXWo?yy?'#0P11 q2Å݇ kn&!I_Dܹ#A&'$03-% Z. bbe  q.7'ފݗ 00y?g8x(Ïcb033bdqpfdd Ai $  ˯A׺JHD ¢ERR%&Mv_ \z')a>1`Дcx +Õ+O|0)@hj1prrGG)*mùK/?/` Ġ(]N tb`tn 2|IS@o 3gcxɯh6iY3lXg/cJsb`22i%g[;8s2J i`vq _ o 3<|;O.^ LPową M?~|kTs@<,SPL.^CCN(E@Z_IENDB`PK mN18ssnuvola/16x16/actions/apply.pngUT fnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% qp @~-:,\Nf6Z:xձ՘0ڏr$@;A]YjW+?"WE11vЛ_(sJ  % 3㜟좥б<ñ26_S'UNMǘF\|y]3b`@L|ܟ} VONk`X4uj$Ck >g=bzvL 1@+kF.u10ϕWeWjAH;8CK ۶\)A0dqIJ e"* avW:J"3]A0!3W0<S6.*#Y  A/"[/'0$M  YHC/Y~Uaga'.S&W3x ;?>93\˯\1 %0bb> GW1~Y y' @jF(ef`bdCmyLo, #Hiv0P!3#IENDB`PKpB =WxD^'nuvola/16x16/actions/apply_multiple.pngUT PQPQux  sb``p  $5t |B\(U'W(\%e,mSSQ.T' Q&#R%c)h+h')b G`9C)52 mV:ظ%8k%D'H0Tp2b*6AX@XBnC>N%"-y\E'L ThpJshJ+T1hW|sξcEs>Vl7^lyo[o{W^gWݛ޶&^kq^7Y^^FvuGG}&γj# }\xƮ =cb־@uQ0rK'<>[ͮ[|;/͚m걗G4V2@Xأտy S e_?w+/'8 ze|ZQ$ZPeLvwa`r8 <"Aa kO =>gt休sf%M'j>`yJgUc]io!%_]\X 9z\(\Ss[[S{EKs[[<ٹ{@޳ӧGnWo^so^?? #ag3eCZMtj5vGJ ̩"ѼKa#wm5LJX8Y]Ջ$4-UKݣ~1f![WgHSUK\#JRKRRQg[Q4dUB5XYk<~.PK t9144)nuvola/16x16/actions/artsaudiomanager.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% SNaef`e``g``f```f*+{`Ϧrg&^M8 $%YCL~rpZXY20pJ ML ,@c)OЫm.@LZ޽ĭBA0+GH^i$1O L@_ 0h3H[ՊR66 d3ڙƥ,0b|p*#++7 @1?/44/P_ ?ΠI^? O?d33 /7; @1ek_o2вIyEXT2dT3z0޽WvvVnfNbaddb`ccz{p e eUu/ 0K1-`eQb-cyyEF?&n~}lgފh0؇2& {2A[[ ?@L_k1i3a`820|;Go" w^AJ_** A .+DK?%# _?|x x\'1~cz1,ϟN:߯50A;#~asAL߫ >333̙3co#L,L@ 2U}z)]^>^W.-F,(IENDB`PK t91~'r(nuvola/16x16/actions/artsenvironment.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` FFFTA+N5!vQ!L+mu{N9bb0h&8??s`XF~<FarB ` Q? jWlD_RED pmdg``bj A7%r?o$dL`aX??iU&o_a/3 3 7L@/f`be`UU_(l|wo0<{hNV!~n6!Q(lh- +(z& +3+{8XYanSJUp ʒ R }YF&&~ xz#d17?.00anϊmç~wWo35"ç_^? ^ؾf/T<߯o_YE?p3ت112xanwwԢ G`H0=ѭdaɓOg1z/åW>~ @i@я̰$C68%>܀?pnI\\ @LjS%XG%9-K(!// 6VVnnniiff&ۖ0$YָD''8yDD4ɓ߫8EDD444xyy3 gSQa8y)0 ?@XYY1Ë .0גe}pûY8Dرc O ^?`'+?b9z(ãGd0fxN<_7_xA /׏0 1 X€ <Y`L!VFV`*ݻ lll ?~@, @| _a`L\L 0|~IJd/QUUA\T~P{#c9XD>~ų"..`hhw^))gMMpo Go`Hi\P7:NٚRK/ӧ/޿} X؁!,,E89xe9=Ù߽x*T_ۉ /_;@,޽c|2'''$<0@!ypy!G{Fw떵G utt/302g`у<%H[_Oہ:@K)DIENDB`PK kN1Z$nuvola/16x16/actions/attach.pngUT vcnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X[w6>!.n?V1E\\`e[nOfey a`fd`bec`&D~ͬ*&,b3^`d@[\Ahaаc10`o0lo~j|;x?N?d$ou+uktխ{;aQzÇԀ 3 +*Os۵'+#2Ò[>\_Eڷ=k-G7bb`)M[}v (lİr٪OE5RZ!F&&ibisQ롿i ~Qeq%~}|;CX]aoNϩ#W~-5c\A%;.UzG/ ' sl +$IkW@Ʒ:TRLA"9#)s| 1*DdT87OI\ ׯٹxw˧.>E)ΩfdƆ N~~x#K4 # ? ? L"L"tN3N ! f!֕56rlSOմ1|}aѯ ~b&+;p0|AL ~D F۬1Tx1@囟 ?``fϿ1<~ #{W$|~<L?b[>#?6jXvH5`?R:e}-gcsc k`H_z ?zd,(Ss?@ss;8;30yp.##ƒll 10 1o[0{!e/o#@Hs6d ß۷l[$yytOfg0 9P`v<}uˋ1ܾ )Dl+W~5~A@ @Z۷ t?J\ A ~d' A 7^}@1?:Q1} ??y?PͿ%EE~3={̷o tγ߾]O1 /2'NZV#0s=ӧz\bX̳޼04BJ9% ::m?' <Z7G&&_()? /hjabzTQ7hsӚ;۹+@|ϦW c` TfM E0X03:AÖaP b1 d`h6)+;N.|tIENDB`PK kN1 %nuvola/16x16/actions/bookmark_add.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% Ac%% Y$f!!) H  1NY7+$(O\誟3[MXA1, $+%K~8s =={20 33;;߿1Oֵz7@򦛛10<{3A201 !s~iW.22f"$OA5f_߼ad ?gxA@/F{&C~ 3Dpq1'@귋-!A~]AÏ?x>31cexnAܧH ^( ٜ?>^w@'߿K'70;&nEn| @̖@=ykHRgj߁>H%/0{p'قX˗SRPcbfx[U()'w1oyF73aTa  &X1l// \7no=t͕e59X>|Lί r `ԌHIENDB`PK kN1/SM1ee(nuvola/16x16/actions/bookmark_folder.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb9pKSC|}g[nr20👑EG_rJ}1~p0Fo{0|z8%$7#;`~da8˩xr'_߿_h@IS@Kb+A _bư7ң} /2zϟ BB xy_ A& }M ADnԪ锁fg8fJ d8ӯ^ad <S YYߩxϸI1l1BԩԢ1IENDB`PK kN1I}%%)nuvola/16x16/actions/bookmark_toolbar.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% Ac%%V r)$\ߖPk2^uuׯKܘ;ϟ Lzz QwYl#GY@I@ <xy}?~ 30pa֭Ģəogg=à 0adoǏaa÷˗ ^dʚ @, \@g2ܻ6By? ܌,߾bܳk _,, RR;#Ó'gB 4 ~31F33333Yf>ǔӧ?\a`: tr_w_/_20<|wƜD_!?n{|a׬wd0 6h0cp30ݭO^yK@}v~ߓx1/@-fxp73|wa9s٬?>_}myL DDxcï?Zf`\ `&|gyQ I7^ Z~ lL.x37K}X_!#sVeE ߀'7nY~ˇ?%a33{}tG0\'+%(̰z+)W'#?j;\t$CvyJ΋GlF&V O,6{IENDB`PK kN1ע*enuvola/16x16/actions/bottom.pngUT hcnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxb? `bdՐ`AF7\{߿0e0 dec(0cq1cy;߿XNwZFFr(/z3!Nfg?0L  | ~2 n 2<̣? 'dxāc 6o-<| < 3|/ &fn@l7'&Us!??~c[' ;7;Pf6V`82 9 3ߞ }v"*J@eaa8{;7 /32h+2,_¨ 7Ͽ.YrAVW>C '1 p?yO|Ϡ$Űr>؀;f[ Z '_0< O23RKa 3]qH/@Ab?/?o🅝~3q0ԅH1s1r/ 1}\Wn|SmF@9ҝEK0\>/HJ H4LlW樯+[^c7# UL Ӧf;zf !bo IQxD%7ӈaɼ E%O@ǀ_v&SB5CٙX/LLNE 3ȗ%VM'(10oc``ƀH (?A=@6W('I3P@l` ;#WIENDB`PK mN18ss&nuvola/16x16/actions/button_accept.pngUT fnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% qp @~-:,\Nf6Z:xձ՘0ڏr$@;A]YjW+?"WE11vЛ_(sJ  % 3㜟좥б<ñ26_S'UNMǘF\|y]3b`@L|ܟ} VONk`X4uj$Ck >g=bzvL 1@+kF.u10ϕWeWjAH;8CK ۶\)A0dqIJ e"* avW:J"3]A0!3W0<S6.*#Y  A/"[/'0$M  YHC/Y~Uaga'.S&W3x ;?>93\˯\1 %0bb> GW1~Y y' @jF(ef`bdCmyLo, #Hiv0P!3#IENDB`PK kN1Abmm&nuvola/16x16/actions/button_cancel.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,d /߿l1߿ w{QLLقG^gI&۷;w, @?/$;5O^__;?|8 @1bLL,BC ?+ly޽#/ $&@Ⴧ'l@7321H= _"ܸx42|)3KtP!@1۰_~}ׯ^beTb` )8P3#T3g.lѣE@v<< Ǐ^{YDx \ L@|ɓ gos…Ne m~g6ß?_yAo2 abb`Ǐ ߁;I !+PP6}:ˋ `_PeaP A ]YYl1]c#Ws?~}@w&669fAׯ^=`b&^jjK>}?HNjd`tO+8g323G #;oy?zx.{#?%ff?@_t y޾ j3NΟGpppPg &&&p @L?~}L&`x($ܷo[tߧ>;'0@Q ~1|@1}t/33e~?g^*Tf ^yV..O99(>~''oiK) NfE0A<=x̌' -H^IENDB`PK mN18ss"nuvola/16x16/actions/button_ok.pngUT fnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% qp @~-:,\Nf6Z:xձ՘0ڏr$@;A]YjW+?"WE11vЛ_(sJ  % 3㜟좥б<ñ26_S'UNMǘF\|y]3b`@L|ܟ} VONk`X4uj$Ck >g=bzvL 1@+kF.u10ϕWeWjAH;8CK ۶\)A0dqIJ e"* avW:J"3]A0!3W0<S6.*#Y  A/"[/'0$M  YHC/Y~Uaga'.S&W3x ;?>93\˯\1 %0bb> GW1~Y y' @jF(ef`bdCmyLo, #Hiv0P!3#IENDB`PK mN18ss$nuvola/16x16/actions/camera_test.pngUT fnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% qp @~-:,\Nf6Z:xձ՘0ڏr$@;A]YjW+?"WE11vЛ_(sJ  % 3㜟좥б<ñ26_S'UNMǘF\|y]3b`@L|ܟ} VONk`X4uj$Ck >g=bzvL 1@+kF.u10ϕWeWjAH;8CK ۶\)A0dqIJ e"* avW:J"3]A0!3W0<S6.*#Y  A/"[/'0$M  YHC/Y~Uaga'.S&W3x ;?>93\˯\1 %0bb> GW1~Y y' @jF(ef`bdCmyLo, #Hiv0P!3#IENDB`PK kN1Abmmnuvola/16x16/actions/cancel.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,d /߿l1߿ w{QLLقG^gI&۷;w, @?/$;5O^__;?|8 @1bLL,BC ?+ly޽#/ $&@Ⴧ'l@7321H= _"ܸx42|)3KtP!@1۰_~}ׯ^beTb` )8P3#T3g.lѣE@v<< Ǐ^{YDx \ L@|ɓ gos…Ne m~g6ß?_yAo2 abb`Ǐ ߁;I !+PP6}:ˋ `_PeaP A ]YYl1]c#Ws?~}@w&669fAׯ^=`b&^jjK>}?HNjd`tO+8g323G #;oy?zx.{#?%ff?@_t y޾ j3NΟGpppPg &&&p @L?~}L&`x($ܷo[tߧ>;'0@Q ~1|@1}t/33e~?g^*Tf ^yV..O99(>~''oiK) NfE0A<=x̌' -H^IENDB`PK e:18wnuvola/16x16/actions/cd.pngUT VAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<!IDATxb?% X@Rf&&&F?*KJ;\r۷'?ٳ fH)*>I7$TUBTof |s…7mx ,a03[j߾`0c/0A?Xcë ?107 00|-f300sqI\u_ *~pk ߿ŀ}p1{`EH/@ ` Р12?Ë@ԹԵAzl ,33S@))3f]غsm~ ]T XVq)%e^߿MJ _yEEʱ5X8؀>7 ýk ʠAB 6 tw@z˗,v+_MB@?J30XcYAFb;;%ofyu@ xuk_W"t?o@[$|qfY Ѻn_^] @`i޼S~b``⏟):@88U/́mY@ѯ y&%:0Y<9y>?y 'x^'2CN"ks ZG:+(**Fѽ;7\{/Wm@fgPVIENDB`PK kN1W #nuvola/16x16/actions/color_fill.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxb+"ðKKAHϟLUO0369@6;m>Eԥt?1|`-d)w"ĂչEnz,QOJV? c`x pICfbj3*42cP?\ l=3fLQJ;O1 f{2_9+_Bs022ܨV\X7oq:3Ng8kG90 tmp(#AY!T %}S]^dVfk,VY05'51|"ÅM LH X~530p`K?*C^=?&Lwuw5Psÿ@@᯽?/ 4Ci=÷'L{0[  {? @, {3v]ӯ S~?Y10@hgu5dc{>CnOϧزg00Ǜ !*ѹ[W}o-0a`> F4+s _.303< `6 ƿ@63 9 q(ٹIENDB`PK okN1S9qq!nuvola/16x16/actions/colorize.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbb`/\3NAiaqf^?q&å{/z20l``@@-' ajY fږ |L ll}aaFg[?nXGî߷nxIG) X$0Tet1,i[s/Ჰ(e) b(e [D^]^ϟ3E)3; X~b3P,x 1c0cyͰYaSwԤ2 3(j {U6/0}+`&ȋ? |@dVdHb7NaY , \ LĤhbd[O 033pH00\fx.O @,jR 7c`EZALG ^fߌ^mˠ~#(.#w0oOf~a&1!@͟^300:+33\&ýw>"p7O- OMMF7 Oa `ab`x 7,а ? s7c{a (0O x>}yΰn}afx @,?]-w8>}cd NB0P?3/̿pfF- abGng| ̂R I8Y޾Űyy{_L`fbh I߁ Ώ  l @UL߸p`9v1ge`b ^ݾ_ſ3\:xʮ{>İ#  z`cAHXE321}yu'MlL4_10| υ{iIENDB`PK t91x<<$nuvola/16x16/actions/colorpicker.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?###!.&"4IRLPƕG{Wʧ'ĂOo=?_>WX!d*ḭ`ϛ]@8 2&)!uif2|uAJI3yO?%pW?1pc`axs{*!b¥;oֻ 쟘=afxџ_^lx @4At{q ?a+19@sԵ?2y/ðQ0j9 D/WliICW|z>3*PJȀ|72xG:t,+c5bk]jI_ |g4vP6uXX a)ُ9ff@0 bf 1@`x ͻ7NNm@5@l @l}ƥ_@?._XM@l p@?p%ãW ;n}s`>PbPf@>kFӦ=tkL](~qbyAMȓ;Zv(wO|9 ̏07(vIENDB`PK t917 doo!nuvola/16x16/actions/compfile.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb ]VV0dȰdɒSN5 } ^^^K d? @e ? g`ggeN G 2m&3  1N ? P@ X <¬1bVe } cq2 Ll i$ dxÑb2=0a7eb``d`fb+b羒_ o 2̰`(G Ĥ'3_%Ct=mr |g3^. P | ß@1#B׀v ߿30pqq5Fԁ@>|xyZZZ XCT7o~?b|@ *@@i~  QLIENDB`PK mkN1M"nuvola/16x16/actions/configure.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxbd``UQ($$(Ç7o^Y' @ׯ ljjjZ ޽xYʕ lܹĬS͓wސUggPQp̯_W\r: fOOMIַn]uZwT5EEE2<~TڵK?A  ""']]hOӽ ݻ߾}!--ːZ#/kk[ az006 ?~ab fNNve}cY scӧo jlo߾3zi03jIKKhbYY1 kG]~п  >=t۱ceݻ/tտGeRUUgVRGЕ \ r^Kl@12hii11]***ŋww'$dbbd`c f q`ffw,,j/]tlmyxy 3g/ϝ;{1@ 0_){dee  n<;;wۻr0mg'C\\4͛7`ddzԦMk_|K@&{0<@5@G׭[񊕕 _"":? X7o^畐k/]|1>ym%GIENDB`PK XkN1*Fnn)nuvola/16x16/actions/connect_creating.pngUT xbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (°aI&y?>|cБ_k``$&&ѣǟϜ9ǯmbw`.u" 3YdH2cVy o^O$TUd i/ VWe ÃG^|d|i++Qib⻗?ys}dIq1--EvvVC0XpQm7|ׅw ~ew?G7~O2hk)+gѩu//~_ 3D~|cݻO g`ǏǘYYY  FI3*/ε߇ ^Z2gk|^zR 2 X]Vg~߻?O / lll@|g{k`.*ڏUY}N2Tѧ B ?cx#B 'OPO4W  `pÿ ~eA\Jꕧ L>s$g_~ J=) XX10a#q\\ w< {?>}M߿>ztG W0W _x\u{`gcvG;  FJs#@Q ?TIENDB`PK WkN1B,nuvola/16x16/actions/connect_established.pngUT vbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxba!Fٿ@۷`6' 1 2[F/;} *`jTߏ_>?CO~gAx8˯F/گ3"ԎڕTo?_|[P+G ߘ~g{ 7 _0|}xc93>ad'Χ^ $\ 44Q#SÅ12o GwALK ) Alw\bwh5 قˉ9?`\A  ·ryFsȌCb)q`f^]^^_L,,W>,ۿK/:`hΓ? }J@ ƺ/~3`Ѧ3#`A s#0MƐv˧ $_νE !07ڲwIENDB`PKUkN1C91C#nuvola/16x16/actions/connect_no.pngUT rbnAPQux -mLSOo{K)HB %lb`S`@E !sMJ؜a8K&}ZPhA)@S:P)Pwo{W'?y89 G3!t`dfШMHo K:VP\b~ fH+b`/UBdNb EGRi:8gQNu-OnN~~P4555afD˄@|7]x+O.<Cx? gqdF~fQ k@J (8^J8M{X| ~}P1@>+ccpS5vO2~4F3:Y2ó.JD|ْí9?P8~X/68${慂AhN;촘详z{0n_eZb̕L^tvܟB \Cѱi'.fs^ܝCLY*(( [׃E޵i7e3 %"VH\2͕!r\̴#ʭPK kkN1yW nuvola/16x16/actions/cut.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbPSc7߿ ̬ /l dֶOMM-y޽?~XT @L P1 ?eX P ߿0vvv~a͚5[}ϟ`-F tB\\\fM6z6QQQAAA% uĂ@WAG[;] t'򜜜 2@># G|@?D@߿ٳgO]]]޾}륫k%k׮1Iׯ-@Tݻ  /mfسg7n 'gfܤϞ}ux3Ľaa~e:z(8puE%SYoΥKlljxy-\0|gu ÛW?}M?Ƿa@,B,,Br~x۷׮UHz햳gk~~`+#3e7o8;.u:lٗ9o1 ecbz 4@,~-+8z(߿qqѹs8xy #<YTHï_10l̬4ϿS$*6]b&aP·_. &YzLyKϟk3233S86 j1_@ 9/S]ӧ?}k~,|@@1 3F+W?gz{2/˼fi A1`oa}^7IENDB`PK jkN1B6"nuvola/16x16/actions/decrypted.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<^IDATxb? 񝑛=@P^^I;;4ۗs9r 0QQХ6&_|3~^^,ii޿"ka ,`aiiY?â>pޝ}}+Xs988l@ %v[wlݻ.~ڝRXpLIQY]];ϟ? 3  az#4oJ><}5? b92|pOJZNUșNDx 0L,ٙ102q} qJ=@ ݮj`??S6aaca^Ơ]EIyn%lfH÷o | |ae` T!# 3J؀e7??1\r!ï Jxll0  ~20| =0F33y@緾30<h(01b0a`p#`! Xੁ+>\ 4MQ#N pِD @/@Ц_򚸁't:;#&HB QcX88!@o0!h;6 PfkBFTv' 6W8(JR.`6IENDB`PK kN13nuvola/16x16/actions/down.pngUT dcnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<"IDATxb?% X@t `bb5k_,Pǟ'߿,B/d0_~άלea-1q031zVC, lKg̠l`s#[@o>30\yo ^g:d!z .$?" @u20w b߾dG U6N@l/6]1Y?1 ? <\ 6F_y@6?P[ ïĸO ?IA1l2o?a)-[a K>1l|??^~ps]a^٫n2@@!nuvola/16x16/actions/edit_add.pngUT bcnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdHab`𗍁,4Y[B_ !fFV{/rV&N& 03#F f+*|gc&^M)5d+8c30cT@@]@ AXCR@5ÙgYdeNf0״d8vs LZl@1dP˿~3~xC @Dwu?6@QRj 8TJF 5#WQMl| 7{b/y o0\?_w2bxT_Ģ$̧)аa ,@G1e.770^{͐;3Y3hi2q(VJ¿ݍ'` ~KD;`jsnX1Ir= Tl O aR/34 [| QxNKs?{t?]rѣk/^ _2}cggɅϟsZZLٻ5k_zu;i J̖(/ =uWܝ|v{BCut|+/%>p^\IOqcii/yK^VV~b255Յ&&>۠?SUUq ̤ꤩ)5aš_(_(?@,Do~#IAnݖI6ѣlg\. ff`2.&+ؿW۷5_<*0IENDB`PK ekN19\\#nuvola/16x16/actions/editdelete.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?ZhǞo{ǀ1g=yBKbP0c$A@MgHa /ftbkó'~}r_ Og'N1#@ @L6 Z[̞ ŏ,e9w6ûE7B17 gbJMe~ĉ w|Γ'T"b!koC| Ox7l`ZAVTUD^ 슊 1bA6A&..#ÚyqQP1<۸u~p\,ÿ/ Aŀ@@>{й xx/(!16@30&0蒿 ,L {:>ձ17 a>z;=A{1.NiS{ %(?;!I?kDK3~U2xὓ+40&. @*k913 /GJ=c}3&?$ j0ZŸ $ec:0P=?VM&AI ޙAbAbcgI^':?ߌt?,fY?fFf&]c1f0Hv;׎IENDB`PK SkN1D"nuvola/16x16/actions/editpaste.pngUT nbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<!IDATxA. k8@PSXe @:4ouS)>9NVF]O: Nf4P_fo> F g d`xva;&]=_pk400J2\AcFw;2lbxß~10e''f_.30s2i L X)YM@3 abYPa 7^1p abd AWAh("b6JF.I ;(Rn@ ?@/1]& t#/V Hd?O?`߁@ 2? 'P_ PB @P/9LLg1w ^db@A 0pp1@#0e#@@d`bf Rxa`J2@9 L 6)V0lt"#0V0(& o13p} +pc1U@S!&ów7Y AJ(  Ļ1_,?~`HHL }  +XJiIENDB`PK [N1]"nuvola/16x16/actions/editshred.pngUT ^nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<QIDATxb?ZhǞo{ǀA#33Ӷ'\Y\h @  fDP4b  )6\6@ r PЩ@6߿X i X4 2wj 6jito=+D-@1a9F P ( FF > O@_8?|?+`6ho_~0y@k>~oS=es2l@agef%X3P3@} t2#hGρ .?@] z(@/0@if@`^~ @&H? fHK(ਃ_hL?"xA$0 cd@2 HK?,}R;! B_z QWFT>&>y?~ D0~ tÓGy_nݸs!U 8]ZIENDB`PK jN1Fqq"nuvola/16x16/actions/edittrash.pngUT xnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` F ?+s2H03ȱ/Ï~|yɛ}q1#lom٦H'/o0 l, ̬B o{ӂ-Om~o>3O }f#_WKw9=;g @L0/h1 ~΅@_~g`_00{>2s?­LEX~|tW?@0'3ë<ä(P'[/ o|c/v6 3<| ?@p3eAAV/10|bLp0 1012#`^}?в@/P/Bdf(zrX{ff`z1(L'@mX!vG@p  Oe`&K^h90A1302g .] , << L \@+ / oGwb27+ ?01+NVL@2#. UOX!MP7'#3 #0~뛷>?}/3!s >b4;!IENDB`PK ckN1"nuvola/16x16/actions/encrypted.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<|IDATxb?o  İBMMـΟLaj,g ,27ó& abbml˖*>}nfdd[@L YXML;޾ȸv8wtio^h[ @`~21/ y _w^ߝO_>pR>^^V ~1p  Z+wY0>cP{A.9g o;L  ph\gyط Ly^+ W{1/oU?>6ac&3bj;ږZ?0gbd`?0808f`fp' 'e95)e77~b``*|U2H30|bd(E>^Ed@zl_2|xßxpjAG ?10̯dprb` ~1. X  Ac``~G_@ß ߁?03+ @P ?ksN{ _~30MNm d@hNY@>?2;A;0|p@  .`bF? Đgd*fac``Zh300 4  03@ VfN;AN6h, ! o@[C; WnvFVw96*E?4 ,lIENDB`PK mN18ss nuvola/16x16/actions/endturn.pngUT fnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% qp @~-:,\Nf6Z:xձ՘0ڏr$@;A]YjW+?"WE11vЛ_(sJ  % 3㜟좥б<ñ26_S'UNMǘF\|y]3b`@L|ܟ} VONk`X4uj$Ck >g=bzvL 1@+kF.u10ϕWeWjAH;8CK ۶\)A0dqIJ e"* avW:J"3]A0!3W0<S6.*#Y  A/"[/'0$M  YHC/Y~Uaga'.S&W3x ;?>93\˯\1 %0bb> GW1~Y y' @jF(ef`bdCmyLo, #Hiv0P!3#IENDB`PK pN1H"nuvola/16x16/actions/exit.pngUT njnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<uIDATxb?% X@JFF1 3S>?ȿ?=|ų۾TsTm;rbA6 (.cfܧ% 0#S7^ub@ k0>EDӣG /]e' ++ U_i %Zg7o`gxw" ~=7P \1,ݾ/?@L`Ss4 ]YN10O3ܹw7 VRp 2^3߿3 ' 304{W.1 @0m Ë$6fxf( 33䗯 /;;d 1p= @`wF6@'=}?oO ?N`[@ bO_30 0ym wodۯ Bֶ ,<| _do O_l{ï#[;Xť~`fߟ ~gx L7~[0q5B^ `^*/ :#P+  FJ3@c튢BIENDB`PK pN1ޙ!"nuvola/16x16/actions/fileclose.pngUT hjnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?% X@'߿w vv|qqIA2xݣG?~@,0}gʥ//^H\rYG & n3::ڹLMMD~ PTTׯ">ǏoZ: ^~VVv! _|gx)5 ?aOdxAۙ3 ˗/ @n~S^CC qq~?3892V>e`bb:g py? =c8s6 @` ?~a͚ \@/`s), C.5fvÛ7Oxy@zP5=`x!*Z @W0][W]𕁏O2p$0?~xŠ4D;w31;]2|H/@ xgmbc adx5L @(3m%7o^ &H4~z`l0ܼy̙ #W2L0ΝzƍK~ @bmm3`j|L~J' BBtٳGZzz $3k3X_zަ($$ // cx9 w^jiB@E_A03 sppB޽{Ǐ@=G` )xIENDB`PK PkN1'RR#nuvola/16x16/actions/fileexport.pngUT hbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?jssv6_101b@ @?~a`9zdw dff3rp02*gfd``e OS'38c@]2Am~@D٤?q TJ@`f&F:8hO raQnn.0FFFf9$ ?T  $ 0@`! `} @.P-_@fZ6n23` A1@Ȅ0 02ʾ|0 &F&߿~3  xý{ρ `M _A  011m4+,Xo`12g`g`xLḾ ,  wfx3(@BB@Yj½@P@w>1uAJJ/@C F#qW111 @o 4X_z a@0`{CBB@/p4‡AZZ( tH-6…98-?wd u`W8ȋ>}bP y$ A (@uJ鸡IENDB`PK bkN1^x%% nuvola/16x16/actions/filenew.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?a„͡^6 \?`bfb7u7޺v+ X@^&Ua $OzܺJ jE@Nb a r?P6H 6l:@r?(J#'30 /`b`LaN/V`  @I ĂYHefV* ?Xy3 P_~ct"9 \ _ ^b~ 02"H_@6} ~I2p2c| Cb؀!.௓ 81yaq/z>p؀߁@  秏ZAO^m`YDL ? rp1o@m/P~ .`eafdg/ إ%xb~Y)g893p 0xo6L^_@]30^0>~pAE.oeLz~a wnz:f&@q-Ll̥On^P_MjIGIENDB`PK t91!nuvola/16x16/actions/fileopen.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxb?>`oguMxvZ @ .X6`|w1LV g *LL  H^3hfI?/ \^ h  ?$p!A y=Å[ ߾200 ]#@}  Af>n/0 P3?;Е@6@]  O`$CAB/ 30H - Ӏ3dmd& g` !Bm T{ )A @/@ x/f` t)ys00+ol/PBv!X ?BG=c0bhe6 o1?7@i_O7l(`J?D3H d$l'lPqşj@Kd+Ȱ)aݽO%>(ЁɄ @ `jb  ;,UIENDB`PK 4b0;"%nuvola/16x16/actions/fileopen_red.pngUT DJPQux PNG  IHDRasRGBbKGD pHYs  tIME (̓IDAT8˕JA)/H٘P0]|@d.L |1 xۄH/=tLOWʢ ^6?Vj5pzv`ۨTY{$^';? TbFQ&{{] H2s}P޵(9plAwUE02B89I' <@qfv /9s}) @wfƗ{fiz,₠XP H\Z{21X C:&SKKw¼V la}|_t qhsiN't-.bk 5k[[T|SUN?9X k AYֵ(XcpbE"{8;/#ZWdinJeup6` xŞp@a#kIENDB`PK `kN1bSg"nuvola/16x16/actions/fileprint.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbf߿3 rH12022h-[vo9vd4?b7Ǐ ||FFz< XgDj ;ffn&&^VVF3,ׯ@7b(i_0!4-?b9@ۛ/8,-5?_C\N>>x99@##KUi)q?~@%@#Q``ȱ_~  ]=߾0;ӯ l L@ bb\1QI\|wt?o&@EZX3 9~Ͽ~fd|`x-4y@()) 00˯ ' 3\p=?5}g``cPPV 1>}? s2{xFF( >bx _~ w>z!pgbPM_f7 ف.d 芟 .|e X~xúSY88XATw_(UMw ?=-//0'TyÇāa ##ۧwݹ7o^㊏OcRd* N`_ L JJ:DvΕZ@̊ 灌Wej&"DOm F@T.Y`R}I7W@i4;j AH8Թ~vwI8l$ň 7R& D W;`#`R;1l\ol[1ea,a k/wZZcZQ/px=F+'MڱEr.79U=.cEAXg!%Q 5γ[UT;O G4F,b`7y/V ;3/>}PK NkN1w!nuvola/16x16/actions/filesave.pngUT dbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Z\~11004@az{>r /_/ ğ?/ (AU'7[*xvkwѰA !ŪDZ?e>,q6cd``b;?# 7P7L@^>A.~baFF@El@H8L@ 8@`db2Clg`27P32102C ؘA 85yh.'T@Af?mF#P߿ /! _??3|_w3WY|v@À/$Z33;?0FX fc7 ˯ L _12 F~3L`3e`gf@Aߟ@ge0w_S&s}6@qr220Xjb_P4 Vq2pbPt67;#ODy^- 4j@A4   X Y3|AT/F &l| ٘0ewt30ДU>ad VHL؀ /6}3p]Fh"bFWp|afxo參 KC4>Sg%IENDB`PK LkN1 i#nuvola/16x16/actions/filesaveas.pngUT `bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?#c200@BL@VzIn؅\?w' X@Beڒ~Blj4?H^ < _=Z+&yS=>?  h; W/^`ng $ @`x33H ]/W?3X0>g`a W{0؀?h @?@1 fɻwƠ)DSe(tX}6^L LL c20|ə _TN0q)Eb7P;3$YAt̓s_2H)10< ù'u ĭx?U}e & Ŀ?_W1]ge`0W /41țx22F?F Ͼ0197ßO3Ch/݋of|,=^`0CR@]p?o~0~}Š '0\eaɑð~Ù,T^v_20( a(piGw9fjG[;X] oH0 ~0u)321(g2&10 Q s@A\o 30ea`ffx9gbc`bxt)LLg 3q20|_BIo |f_?dY~dc?X/@]pu̓\|wg>^Vg?!NYɗo ?aŻ߯9@g:|k㭏IENDB`PK t91oX9!!nuvola/16x16/actions/fill.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (&/E ??~HmJ{# O&&&;;;<@auZKaaP @(d?iKII1hii1TTT$n@߿]#M6123TSeb@bbopu5puueϟիW wAHH(ŋ /x@A G033{{ic]]߼y!&&h#@o޼޽{')/T^QѬ\\['& `/_0^իW|zWZq׮ ?GY6 + Kyo<}|ޔ#GmiD0?@09:Cv}ѣU@m Xr|p`RyJ'mooK.}b Р5 l[ T"&!?~<~/HP㕗/_Ʋ^@`28ށ ?@)`C0V>D(PK @fg*UP7IENDB`PK t91 nuvola/16x16/actions/find.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<BIDATxb?% X@I}ciyN Aրo345Y1\[} .0N?V ۯojR @L/G` BϜ= ֠ f#@Ҽo>~1[m0eA;M!]c+j7n0\{Pוqa4 5?ZpĄwbu0k~;k WWa1_$?;8>}$ C BBo e/\OTQb 2jg`ش4 ?pEaq)/<|:,cn72hi0 ^8Z-a-3 pn WhaʠÕN gg Πȱ iw Od0OҁWMÅK3MIF\3_`PDIal؟? ehsĹ AQo~ "23O `Ls9IENDB`PK kN1`u:nuvola/16x16/actions/finish.pngUT ZcnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<ZIDATxb?%  30|Fο :~ff&,0@< 5*ed(ccߵ0   w&pO1Q^6.n.~ ,,6\F#C^é3/-pD&)@ +":(8bKM~c5&4 DG3K=c32r33Z0f``ae13ùg}/}&Z{nU˯2,]re-@/3>2X31A[!mss1TH0{1̛s!' f` F&7dbdLd$hr 4x*O0Lr~?`F ݁, |L_&LW {;'D xf_A13sÔ)O}{0/h2 @@,@  +?gg{H0uGHiv0=.IlxIENDB`PK t91i;;#nuvola/16x16/actions/folder_new.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% \630lyw1Lj e@10m 4jvb)<> CB}! X+D -׀33LL@K  O4q&^5/cf1c @àcUI @ d`ʰm- oRc?=aӬg R0  |>1z"Aa o1}pñᗀ0Y~ z> Ll^AIoϿ0;龉?+0 oho0 O7pjQ|cvYFaCF'+1:k`&@12zOR*!0ߋo  ,< BL1D]ax C{7f.8|A2 X`\y[&%#W_09II o?1d``b9;OI&IN d3dcx{7?Ý" }<]db`Z G}p(,(5)R2A.3m*?9&2}c tI 1LPP` Z^{ O_|eY  \\ <  ϲ#ݖg@M ?2| , 1e@̌X|q10p3,Ÿ́^3Õ?޽F/_( fl#'y4 擯 A6bAV !v)O޾"Ő`|КJ@zlKfRed`w?8M gs22ԇI2J1t5` 000@1p2&DϿ{I?I QG]}6001<!@e`xC[sW 0\FOĂ' l!Oow3ݿ. \,HHiv0~#w^IENDB`PK N1y  #nuvola/16x16/actions/frameprint.pngUT nAPQux PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxkG]J+WUT$ܺH$줥5 L{ABϹ@in! 9ĔаKq n~8޵dYޙ/K y`x|߼/3c?V*PJ#"c,\7åKWo޺DžgDztVNAD,D ҿNu2_CsW߻}G 11367)eN bLpm27W1{AFX!߹[<4/b XkqiXT<{ 01#Þ[D݊x.ݻp@  430|dc|]ޓ 5_2V^.. b{߹v00o0 ,|'-)^(2Ô@25  O2H3Vr}[Znb w?15@ͿD!>>Y |~~AQR*;"=`ZSc_։ǸAJ^T6,6¿ K=EŻG XXc7 //n4yxĒtxXx0|3 `3  3? ~?\{- (񟓁/+~20A DIRQ-t;}/ ? XfbNQfe ?%dMk؁a ~b矌?t_0;POV~]^G_G~ca8  N=IENDB`PKJkN1N~nuvola/16x16/actions/help.pngUT \bnAPQux -TkLS>-h*Xt:v1ԍV[؜ZgH@3TYIp"fJbˌcL0-q{wws?r~/󸐳7#h5ˠL\ pUsL-)I+٧)*)UR\9:,V窕ӟYe#U5 Jc@OE%Sq[X4%RL&R5+7%ȶښ S:҈aDHe^Gt{&>\,&r 7o9UqD#%-!hnyY`1eSr^ !K6BTW_+־.q)QCHeFr0lec706 m&>lBy|>k7^X9\4mC;b;gA!D!(|gX*։P9W>?piRpr_pK7pG/y+ {5,,z4, "He=FObbcLQRӉاTWZH^c)GdvwjfPTE^NONٸ:^6tGt:*T]ODEw5d.(4;go-x ڡcz)A&IXww OhO&Ӎ>ENxU/)gOo:0 &!(u-#6D<1X^]$`pBm~2=gNv V;DXΎ,=m,?5GҲk.F8en@uʩ>z:*'l`hGJD;>+ -Qy(t?xH$2m43Ka<s=7K/̗-o+PK FkN1VK nuvola/16x16/actions/history.pngUT TbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxA) F!%\%= f+`J/0o_?1_V 2r{ɓ[oˁ<@ ! @ʤ8Po_1XH3+,Ƿ~`з{ٛǟ02} foNII|,~3HJ3HJ1 2HI3003c`fG^F _@,,&]B,<վ3k12;;ХEDDd8s-w8(1>|ӧ/ LL 0 @W02q22J``bJA<G<% *"#**% J3A +/-55-"" !  ?#;?0daaG#u0ܖc02b+o~ ?@볠 77P,Qs#seexX;''. ? oo~ȩ a9 H!{ GO_cok&߁^q%̺pm%:0/=}+_h2{{ yx}7߿pןrVAj8-    _ /B|{ϰ&YVYi!/>1?6byMȁ!S  {Kf`Ҝl 8$XLD9gx\xzB 0D;|f֌&IENDB`PK DkN1sa &nuvola/16x16/actions/history_clear.pngUT PbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxA) F!%\%= f+`J/0o_?1_V 2r{ɓ[oˁ<@ ! @ʤ8Po_1XH3+,Ƿ~`з{ٛǟ02} foNII|,~3HJ3HJ1 2HI3003c`fG^F _@,,&]B,<վ3k12;;ХEDDd8s-w8(1>|ӧ/ LL 0 @W02q22IdeJA<G<%BE?E@.3A'i -溼  뢜?#;ЦvM R jf :720>Ubo_4xLFSTt4^gfx{$\| ϛwn| @LQƒ|?7` 3;s῀;Ǐ~n ~CCogN0>IqbǢ~wWn\g}Qo X~e`غ Ec~"5 Ae"*@)-穪  칇A$޾BRWRßϟq= b%cS_?0ӈ<#+tA (|a+L":2 ?c`yAK?/2lW`0aljOWeobd= vf`Ҝl 8$TMxr×sK.{?O܃esRϽy_`*9p4Z@IENDB`PK ņL>'nuvola/16x16/actions/history_resume.pngUT "VMPQux PNG  IHDRasRGBbKGD pHYs  tIME 6YIDAT8][O@ = 2)t$P̋E3]ֿ^x&꼘d$E$]l+PP0z~/i~Mt'1שN- [7+Դ)2?з`хN&R0=h-mTv#wR\H|ywurbR'$16Bl&UṔ24<}zת/|'8j<T%hV%pl-*kg$Y>wf^$qb$Ijb`Ňn@/0Y'* /ffw2=(" I6ѠU {'e9iMΝLp%txOd2t!eH<+UwEZ}ݬY])r},-`vc* ǼNԺhZVM ]hopf8F+dv]"N"P1 FIQJ_͎ 6; Ã̠st~7Mϕ.W۵tu'@Oٟظ Rp &>ǵF38J5_/vԯVod= YL)` dLt'ؚڶ_oݙ_ݓ9VYs80MVUT t QʦfSe)NVͱ@*l RC6evBgԇ ~(,.͵t3{.T>+Wn?#-`(\,h̗E}l-s_\SuE_^k =wr:Z[+rXevϡ+3oh^S;!IENDB`PK ΪL>Y=3%nuvola/16x16/actions/history_stop.pngUT VMPQux PNG  IHDRasRGBbKGD pHYs  tIME  IDAT8mOu?}Kіh)1],p3gx`cL3Qw3ov)Ybq[PM"ȯ1-оkym~^Ory>9yʵzt厐ǯYZ++;s&~ϺL8u0k~pt;#6u`9*W/]^_, Ws+.Eb'piժ DZ-m389d|՚FPoxs0 aG M#^4F,Ѩix:KF0[=gh0 . )3DpOO%"kwU'_J8lnmpT*OQQUUMSp*6$I.9u2חaLMMLuɤ1(oݕ?7*:nQ,\d2V6y$z`6k+PᴴT T͆Cqho06tO?"L3RrAx1כպe~?Amܹ C(|2D/oC赢^CKܞY`ਟ4_"#H[_pB}EQmHzbx~n>Ʉ0t{вYEHA3S+[z?*y)VAg6 R8V~q\6lQ.Zzo`,6᎙O3' QPy5˰As?7BHI#Ѱ2'EJ)Tȃp2oIENDB`PK :8&$nuvola/16x16/actions/historymenu.pngUT 0CHPQux PNG  IHDRasRGBbKGD pHYs  tIME3,nBIDAT8]O\u7dfM+ؔRJclƘ41ζIIӸ2` Ib}M31̣׽JԳ9gq@P.-?~7p+ JHƶ`smj<-BoH P#Ǘ11]mѬj Q6,o|}'sG=@=hY磳ׯt" 鐩G97z3^xqRqGC6o{13W \krHƉv': PDHe(v2}m^UًWضmN?8oU_GJ#ISe@;r]vCNU0^-i4M(%#rhe6S-]#ϧHJ{\ORa'RBjX @{{O${xyxgAͨh48Q-Y S#q|^uE&ǘ<-04·\QC6ZKᇇ6@7D,IbIşW0,'F]׿6tAVV^J*uٶ@gިh[\p!?{Pdֳ n$r,EIǻ9~ժڋb=YCivw#l>[_٣kxԂB(ʱrM%#kͦe;)T$vV2WjOF"('rנZ:PHpP[9syw4F /ƃ|PIENDB`PK CkN1Zjj!nuvola/16x16/actions/identity.pngUT NbnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (X{X]/)X302c dc`faL 1H/<}@,&rUU00|~  fׯ10111###23pqs1 ǫ+ ̬l _2}q÷X35202 1XYi3/@~g`zUZS@m `_b?3r00y*_2paݫ Š%by.~dxqv8= -?3 Pxpq 俁 ?|ῴ5g=j7?aAAAAAA?S1AUN@ocC@bÏoffx`qϥ a]NL/Fh 2Ͽ? ~c o?1gPs20[+1~e&(V`4?/??18b7?%!4u01 mۋe@0~a @D 6 8 tENnnfn_۸Yyw:̜y +_| &nnw@ok{6.}qx Uۯ_2; 4%;<6vv;7^]& GPh}FUDžؘyxXyT afP=;0>c~ @@` b`bff_#}R/q?0Ԃ0(-(5g~F7qv|tÛ@Ȗqvc@-d @LT&Ç7{1dX 00bg > ZŀܧOT@) ? . @(T-BU2R`}?|9ýիxXXDtXY؁NnOwݻwLL .~~QM%%%`@q00>9s7_zug"H/@0@I o:/&.!!M``PbMXIA~102F%P''# ߿¯_3gf wdzIENDB`PK kN1 HtTT$nuvola/16x16/actions/irkickflash.pngUT ~cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,,e`OF,,o?oas LL 30L/f""h0#+?Ϲ_q2P]/P H o P")h3)/k @I |Y ti'#9b:EdjߙEEO2Y333+߿? e|V -]߿}hq&@ :2 )7 K{/G4>@=*@]u4@A1 6 S t..UGG:GPfgZ|ޗOO5jǎܿ%<&vv;`,D @11}d6 Gf.. W/?.\$c#P ?@9`ذ311}db5@ӯݻr9`4``/vv6FPzc`Z &<P?ai o7 3 033?P(ï_>|x_ocecub?OA gf Lr;Lb$@L@[IY)\ @z 2@dsrq10|Lo~ tybR`~5>ΰaj!!9FFvS[S}B]^b`&[_~x'N0pj*)1( h3gyϫWL Xf: yo:)0|4ԁ)QA*Ṕj^@LHFƿ|a`&ه>|y`x lA jrjIENDB`PKWlN1\f"nuvola/16x16/actions/irkickoff.pngUT VdnAPQux  sb``p  $?OR,鎾 Ov%K\#JJRSR0wϵc𭙑 H/@ dۛ>חVpHv38X!A@0(dg&^X'k8o&5ef$` h?{! ϿbX T&F?zP<~F{8b*͎+[+Erir@8æ@g <Zeǫ+O \1O7~/>  1OMPgx 4o/FVpo?2 3p}W LLb ]^N&qK39|K;ޭ H,a3F\^,Q_Z 68|w߿Wo~˪,,StbfC:Va ayq=ZYcة2wi[ 0fw9!@ڌ8BOx05$< \Ok+BL~AߍI Acr`yhH!\t4^́hPp{I Q qK|V˥/C*gVi$6lHCs$$*uK"7'?Zy"\,bܴ6E|gm jJ?}=ߒD`:E 0i-V[1)N'^ ,p&0OwiQepٖ/O2aEgd1Qstb4,B7)uh:_CUO&5kH T"kL#뫚KmCçpR}f7fJSԊ|Z(]{StYbb*k۶Mk&I;tvpʿϤ` _x{3|Ŧ`0:j2(U| {nɔU(cAq9fTbhpiMPK%kN1.(nuvola/16x16/actions/kalarm_disabled.pngUT bnAPQux -}LSgƟ{{iiHV`  9u8M\&ln#S4bLٌ2M+`łiR޻眜?_}*6m ̔O,{+[hH :UK՗+L.}NpnpׁOVo>TRRP SOQru~Qm?]nk;k$\-ʪOdZaa;t?!d0+}-"g`KVl,>/q48Ԛ#! <+ !2.OH* jФ T!GOܵk?[F?Ygs˜iRE"ޡ7AT[q,L2jo]]^Խa&i74Lzpl蘿srY,{P֝ݬr2o7f]yPK 2kN1E8 ((&nuvola/16x16/actions/kdevelop_down.pngUT 0bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ("fb`0t̷qq0g_? LY9$2cfo>@ P*bİKnN``eta`a 7t 3|=^{ՋB-dR  Ld>dO,/f_؀wo5g++Рh~1\S(U7R`՛? _g` (ijj^aARI?tfs fxӻO [ļ 030r6O!. ./j'"`_Pk13K= `1__RݽW/1 12()3Hk(2<}aq5 1ֲmz1Hcbc ?~\ȴ^k 2 |e`e/?q㥃130O߁Q.PSzB ^hƒz~dЖ LL   X|}R1hvlI A1.0%D?=P#s@F^⃉{IENDB`PK j:1o!$aanuvola/16x16/actions/kgpg.pngUT VAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?### DEE)VRR7?>wt̑#GZ^ba@111&&\]]EEE䉩o}PdC 9 hbwwW߿0Oxg)1'w_F0]C FVn̔O՛A1pb`+6`NXseO2{/e.v쌟>n9O ~fł^x"W#( Lw~0ps}d~wO ݓ|+[PgUTO q2,񖁇!5럻 @0+ @`)@nac蘼ۗ 3TgH ? @m?1(ePffdd @Eȑ@`<~1xן ?c@ 9XR^|dd0/3_8r@5,@Q  L@100®AYf~Jr@9+6H B?#VJab Ze~ٿqZaW/?@(d r@p5@ 3sA /7  {IENDB`PK t91"nuvola/16x16/actions/kgpg_edit.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<*IDATxb?% @d["K^y"9 Vc@1wn_*4yqeePdE@6[lYSRUU57c@1 o޼{jjj1333022ׯϾtlfAQZM]]? ZTp@PSSee```gSNG=֭/3@ n߾%߁e"f93O /gjfk޿Ob` o/:@ZocGJ~Ft9% CC % ժd悂  Г2#{ T e`XqA[i]?P^v.,#@ &|r) o1lN2/ Q_w꣣/Na}!VK)$@`gp _YHyMxsߏ?Hiv0Ė5AIENDB`PK t914>$nuvola/16x16/actions/kgpg_export.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<DIDATxb?% X  351;D\\QmϿ_>};(P ?[00ks16rSR L$@P[ԯ >3+e֖IAUG/@̚P[8=J}E÷o~\a0 3߿>dy*@1510oJ}u0Lwxd&Ƶox3W?h9wU10 nBKXX-ݲȟec7)~_ l#'I_cab & KIV@[$C`P_ \>00ޛ ^exW`0 /*/ EL_0p|g` ,^\׏Ս5m f@ @̼Ozq%8/o~Ơ*%"q׃_ ;Pi-P)@1ͣ6>8_KDA]D( 4x~20})g+ Ɠ_N] ղ@ @:@蔟O38 3; BBپ~dS`.O(΅o/s  $A.41ey"3M\.~;~@ @4S#H'P? d[ b`|󟈆G>a ΰ =~}.@\B ĕ |Ѓ ο3, ),SE0IENDB`PK t91Rސ!nuvola/16x16/actions/kgpg_gen.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ("x<Ռd5L=]|:#84b%]O^Mﯨ6x#P  @`~ _A&> vFVF7 q]_{3cdh?~`=/K P nNͰbEڕB<=O~@oY@u@] Wlv?>'?}c`n@ "m O4 dod8-C@ x_}57t80qc`|x/\0O ;1}g`z@ 87 ?^|0sܽgv/mr=fX!}E 6W/|d```ca|?{[yyt )fXoRma8{/O*@ '߆ [Wk8h^,7 o>kǟ280Hx*3)dpP@]©53=zSwU?2r02 2p30r`Ҹ~Wp/_؈hsqq}ݻw|;K\#$tF/,jw>0ܸqGI30c(2p~v%ExE1''\pG 'qӷUַW SQ{sDaE2g wN{vpV]@`45lDUكKEؤ$DSbj̃~f`` %c+gy @Aoee؄``x7@=<$G`ϟ1g`d##ïo8X20j@/~{Ml@ yK Zlw~Xˇ 7Nxwz_`Orvbr';#Ñ^%T=;S7n]?pa'3f?H4( w/yo1ɻ[?p1A7:_~ v+ K3l~x膿D885tt5dD5\LD$8٭[@f+38?0(Fw&;AX|`7íOoJ0(sZN  UO&?2H޼c?1g` L~c XHi8yS h6 wҟgTÙ]N02 @q>33}ˋ/y; J `addd埏?ח2083חM`qo]2tz1{`'0|}|򂁉 )4T 5IENDB`PK t919`!$nuvola/16x16/actions/kgpg_import.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<lIDATxb?% A7 o  #Þ a;LZ ;l÷/Wo؝Gb*gwf= o ?8{˴N?@f& Y @Y& o,/d82 ۯbȹĬ 3ndл_~"W.I &\?9°i+2x߯jĬK>a#OqB7/|{KL@oc,42AHd`2< ~v Y  .p{?C__O f`80@410B\R __@>p.7h}p GUP*bM\Yb=;__?r )xI\ƆIENDB`PK t91B"nuvola/16x16/actions/kgpg_info.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@D&c|h, 6I+.K+ ziow?{a 2R Nq ?0<``vAD-Zwf8?C6@KGA(,') +')6v&1/sq1|U d@ fc)8P E0ܿA\^_ Ǐ ">eАNa` ~3p 0!߿`-6=/ ?y ? 2pm ֌A.pC% g2=u{'l}b3%@\@LP˅ s^] <a6p@1/w2|g?3 Qq@1!(1N~c `T N(\@ p@"ͫ B &xGv6+@ 10H#AH';3Q4p2033s $cPon ׏sŁq*IpsYY [P0LfsNd '&'# a""IENDB`PK t91E[::"nuvola/16x16/actions/kgpg_key1.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (DDD"Yxy=5u}~'z-3@`#)J0010iNRw~0 3_ l oAb6@^뫧30(0201ke(]2O?3H3'?ڹePvb⿳mR?=_C(} ; vԿ%KyBEd^03g`?~qCd:P @ P /@6cxz/?v30e`xa"4H/@1Ϝ!aϒ/{ nct!C6'Pb$#R @Hi^ @Ql@Ql@ IENDB`PK t91C7JRR"nuvola/16x16/actions/kgpg_key2.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (DYE@KIOUR\}q~FF( @, SvLw615v bG,۶P14e9@9~2s12yҍ  E@#njWWI 3z'4ɜEE 793|c`x 5$A-%GA@Hz!73$ݿ .,@Ӽ )Y>?M8..&/?3 " }8z0_9?cd&GXn A&&1=  5? 4/GY[׿}ZۗJ?~|gz Њ @'o~WQ A,,4 %#N)Y_@62ߞ߿׶/_|>(bRRR@jݻ`-+by"1 B}cgoX>}9W@1&& 0 FJs#@Q v<(IENDB`PK t91>S*"nuvola/16x16/actions/kgpg_key3.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<DIDATxb?% X@Dxx:b1r&o}n=n@ LHX7?)"wf&W|{| <,K{FGϸTb=ܲK 33#жYŰZ VAF````dbfx֍Xc{ 2030\\ 0 tΟ9'WWKÇ0o+}Dg8  6ǏWXX-DDxo  `ve{*p ={tOߏau&Ó'~h60>|22pp0{E&_suSH[ ~AZR-=4## bҿ?~z̹#n_`@1((H:s١Czvw 2|<<<˗o?}ԥ+t7o>}͛w,,/^g.(033 n_x7/f PJϛ7 _x[Gn G o LL nfPWW1-ZŒ _?`b/;#t&"Å ._>0Ǐ':tƻw4z?0 )MYIENDB`PK t91##nuvola/16x16/actions/kgpg_photo.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?% (cL2幾0c/3ÿb3n޼̌3@n";OYYz~2x🁉'#P˒0}Ăp̿/c~GA'*y)eN0ܿPg1pq=d`f: nx8$xُ2(ij10}AJˍ ~0~`0(A×_ O~b?7Mf6  $/}?'# ?aw > , @ g3c_1b6g.H h9Hj 3|1dc  L!B# 'gDp0\ h W2|GNIPҀ/k+MM Q'@.gez7B @M@ dd(Q ''P#DHÿaX`n[^rY5:z>b4;޵IENDB`PK t91r"nuvola/16x16/actions/kgpg_show.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?% ("VإjN]W׸41؀o~mRr 00 Ļ@ 6 OHbfnzH49, 8x%##FF& NP xH .`bb BVVv6668#uA=bvXH/@ #ӧOؘ3p0|Ç@Cv~ҧyE y웫-$./^e?LQQM߿c+@W鷠@,Po2޽70*Y$Aa ""9cxū5n @I;ԎS /_~`bfa ϟ߁4+>>nnNaBB|,o~f4ж' ϞO!^} ,,L`@y`g-ÍwM+xXqTbJ1#+kH,2esdUyn=e`X\e |!G[Qk?;G+Pq]l/S`]??K@؀X&&#Uߞp3ީʰ /sPV ف:P77_=_AWJLAQp#Fo9l>|hPbb 4C1777/'0]H þiLzX@Cc 41A2h8+3CiL ww 2te b~T+,?>p'2~¦'>!o 7s>{c@r 6f(t Iևn>e8b=~'W@g7%A{GAIENDB`PK t91qv"nuvola/16x16/actions/kgpg_term.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@D6cjh$fQ>0p |uMwm6qd`aanb &2 I RL;W[g$Vd/_~3 v@]`4JX5T̚KNSA@R /3331Pk@ bc P}K_ 1H02 <{pA𕉙1K@ҽ `/؀wNȠ%*}_0\8 XXYΝ? [!Hl@A xʐu%I6'+ffx} @33r0 I Lg &(19@}ʠn3*>o51{ 7^VvvHx@1ć g b[ J 2J j"  l| < MOQL b@dbdf [ ?g #vya1 0WGDK!!ABA? /8*節  ?~gx L 8~{qi/J2Xf&$&?~ Nb  / ?329ˏʊ`|f>LCObs㻞$Xd"fb?@1R >IUIENDB`PK t91-n%nuvola/16x16/actions/klipper_dock.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb?% /300d`b(wH2b +VlZ߹:+Y ߞ3|2DS(Úw g \ܮ|.9%euI<}pwѿ21p̟8ٌ@8 $^?ț>8$R-JK g 1!#A \]kA=wal\24oXfe|p?NvEEaAf```xm``ʠl@1=zŰt1\ ,1 ?4%yr!@L1vE{ _gb?i+$H1[hF13(  &?W];π2m 1 kg`Pђa/̕ 3 1a݋3pҧ@%_S"@1R hq&IENDB`PK pN1¥ll#nuvola/16x16/actions/kmixdocked.pngUT bjnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAG>#  O^ %9 &77W\ Gս/Yx9D312܀`\& (Ǡ,/()&,F.bhfddۏ_XCB*31dgeaUeb`IUĬl@p01ӧ3rrRu%bb dx;96&NNF`8| ?u8[y&JK23>sAAhmgϞ10H21=@U{dy20,gOa;@3_\ ?~`PFp|1 &3;pÛk _}g ÷o?޾~? 0ﯿ 9A 3 <|;;wQAUU O_޾c||3AU% &.< `IA.F $ڏLDDB &yY}x?m4|°xɂm8cc8O{v@@`ϋ?ۺbżo޼ZD$>d`Ϻ 0W2SiIENDB`PK pN1#<<)nuvola/16x16/actions/kmixdocked_error.pngUT `jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb1bw.<++A@@MZZjh/Ȁ R994}}-II?*đ1@1V%,͠(tǏ?1@ ?c`bb4INW11%jU?}'O_0| P\?_I{zNJsï_? ""t4?c`AbP0|CƲ OVV` |ן3߿e$$$] r>~` 1<o 2 `?] @,>>޻<4x~dcx+ÇeT8yn߹ *!ӻ<@ AKKK((/λs(Zڕ_޽P 4{ cC )͹b~y-_nd= ;tAXXڬo _b' "Z 9NYYl_gxUA9  # *1177YW6o^{_}Yڍ_vre`_20,] Io2|30} fVVo[!~k\9/'/ʉ# @/y * **~U fffAAaɿ&od==~q Pn+g7YD[U ao_@Y"o^ׯc>20{ЋO<}Z `jSIENDB`PK pN1Ć(nuvola/16x16/actions/kmixdocked_mute.pngUT LjnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbTR`x ?Û7/89XYb|l¢DDD߼y/Ā0222INN.PEEE!(惬 p/ Ҽ܋ŅX45UVե"'D" 4nttĴP۷o1.@ͼ ||<ŀ1|]mn^^<  @@ߟ@YY9L**JL߽{1~?@ B XBB4DLL8^ARډ; gPPPf`ffF1 X*3=^x'ŋ7@NFobQ蒿  /_>q í[A3T6DXO gӓb9}ԇf<+02 A)˗ηooB6 ^8}ϯxgϟ>0ӧ ?~A]]ϟ?3z#ri>(100#0ɩis}( =0@F6 /8z >euwCۗеz7ß?n޼pį 0 `4\IENDB`PK t91 $nuvola/16x16/actions/krec_record.pngUT gUAPQux PNG  IHDRagAMA7bKGD pHYsHHFk>.IDATxڕ_HSQǿsALAd$!|9/C`UЫIJ zN$",-+4n+*ZP$\Z?pϟs]$IH);i%)`Y,!0+Fs$>6FffJb%^ V_25EQf Q z?\?vlm2ѲIK@Pn蠥ޒxMZ- 1 Z)V76 5BR@ ,=B!55BUU/+#5w#D8Y|8Y%<L],F,8l^Ŀ1W\B)wFt%JA,}+y2Lu7vNn Mp\j܍pnBv4lOtEXtSoftwareAdobe ImageReadyqe<IENDB`PKpN1Nś&nuvola/16x16/actions/laptop_charge.pngUT HjnAPQux -iPS$+B@&Lq NF[* "EXBlkp*%LiBʴ0JW@( r*5B8Hxk~۸hFw|yY_+#,d %ٳr$ğM9-ATa@8E$< LIR Ü3Hǩ&ce K 6\$47O/vrr3/bwd`_)hR8AcL$W")?uY!UJsT c m~(QUC n| ن[l(v 0J$RЄwBu.>i! e8YV&+1/qb0%ۮ V.M;}WEzM`,d%0eEت6.7${&7Tʥv΃4AŔ.9ngp0mzx: `r:+8 xo6{B{ݠ_}²Df?宛0?8 l1,`ՙY5ۊ+ʰvK!VX}]p-@ nZ)@uMͤnq|~)C]!;`C#} f7pS ,J; &fo tO3A|n fbf WP P(+|!B5> "#,$@o} fòs6/ bR o}g/_12(P?uPEx7߿Z 1`a+*`h+ۯo abZ߯(/ X)_?1p0`ŗ_2xK25)IRΎ} >> @,tƬx/pC \w^MȰvM#: –oB -OYLn`{Ћ>,X}ժ߾zH=@] F;30}AkGf3*"`&!իU ~ܺϧO l y`d)132eF, +4N ^ݎ!8}~We 3CW`OɌm7Zℱ COed` 'wt3.ڱֱ񥵕3&FFoiy1.' ?>=Uwߟ_7}~ď6_7/Ѥ7``dfLJIalFCL3&XPˆ3;gΝ}̩FlL N>9Y{ު՚pxFg %$驕'@aC/b{Lb9w}FŒǞO Y L. ~.PK pN1q%nuvola/16x16/actions/laptop_power.pngUT @jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb?% (AKLY x($Qw  l###2:?vAnA1yyE a}U>^?5\yu뎵.] @0?3xx8|< jgln<v ~}ax 20ĉ`b``fddc0M: Xph000EpWٶ, bb"`Hin s#@7467ot7/^ n##2Ӌ2=Ý$X =t]߉]׿: h 6b{A{1j9w7_~/ C8H?@1Agf5;HI\[@~?_TPd f`ar7@A?CnX|b`ec` ,@+ h{@q77v? gк`+i@ wV MΉ1@T7 'Ö@@Ԁ>mF gd&o@`ydDy /+< P@0ـbOف+@`Xajbvـg9L@ @Y8()<@ iQ^ @ d?` 33$ʀbsgoe"> n]Z  /?fsâ Νÿ 6WH1xB'Pc&dg1лʠc`dA%7:-JbKd) "Ɔ%7/_2`߯ O?3w $_2 Y51=ffao1|ݏw fx-(@p1۰02`Ű&?tD؄Y8.o~̰N?83p]g4 &~?Xd8aã?79xY|G |6_> g@Pz ]yj 1JFp8%p\>X+gߝ\ڸ8{5076?Wע_n޿킐o]G|l<&T T`y~}͜}mͤޜspO65}+߻crk6unf-jM_aY-lm15Sfxh'{.=;=l H"4Hli>ovi"X%5X2x[A bLw;~ %TF=bh!O2º+G_DC,Pp 9&HD4u%.W$+Kj)QbG͘@hV+%"о gU SX (C <4eGٛ>5B5BjUΡAòfy"o tTu(B)(סRc {x~Yxf/pBPÐaHО Vlp+ݢ{[;| {OK( 6C?xu tRGşYj~s(^AɄſIENDB`PK ym1VR nuvola/16x16/actions/ledgrey.pngUT vzAPQux PNG  IHDR7bKGD̿ pHYs  tIME 0gnIDATx}K[as$ v4i:"ݽ*RPnF)tZ45.9NGN D3.Fі8?8Ӣ%K?|l E vs_SzHZL7C O6s<}o!b 4&ox9#b8TH3ВiB8#A#!WC kBa i@$ R64`0(!e`(v,)=F +5AnڑnN2S=*d[.|/zX>iW2yV+/%fZ|(IENDB`PK ڰf;S&nuvola/16x16/actions/ledgrey_faded.pngUT JPQux PNG  IHDR7sRGBbKGD̿ pHYs  tIME 3X9.vIDAT(}kQFޫ%MiHU"Nή$8C8 ."8T VScB||ru"g&C3h~F<"ȡN,*{$ζU@utf' 2Ks_{5ȸ-5b x1d3$tq"{R'3T_u:D=5%i*Pb?n,)Bي}% d$2D#CHHn)/0@HP02J!L&a !6y O_?$ նVG? Iٚ^ >q;&B3[n|.{b3Oεǽ·OkƿeIENDB`PK {oN1 %nuvola/16x16/actions/ledlightblue.pngUT :jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdP] ϯї 0̜s?X3P ^z^% \L ~U: h_ f-=IE}x @0kâ.X& /10az'!bt؎>u@1vie0A4~o@e`􊑁{-c#!Tp%(8xـ.`7Рo@b`8h>Cbeg`: 6PWm"@3B @1fip0q  #Q  /fj Y| X~g𛓏A@9 A0bHoo'x L@ہ001 H@@.&@ 랿bxeb'n32ab `C! L ݵ^e>;D! c10\9v҉&o fـ u+7(7D3й ٜ c8Â9G' t'~8w҃oԹ؀)XY9 W/e%>  nG]fʆq N ₢ @^}xp 60=rq3{)=l'c8 _}xyY2h(333 /ÿ"=+Yy~2|g1egP3k(101o _l5c0|f 17Pb_w |Xdws<>@]vZ_xYX1袯@+ϛ e`afes(@٨j0= ~1H23003l/c?T xD$ 03+? ~exxAE û?z;/&!v AKyHaXM-Pa֋-mDƈ8PHn)@ 4JSG$Q}MfxKC>lEu+ZY wxrP#; 0؁AX(&a6+y`bxebe/4s^b @ t*ֿ< 'ֿg bb`cq뵇W*+`b7@2 (6V g<n fy 8ŕ[PTKS?@޵w`= f>56qc7>s0|܉ &`X=?2pFbd05d~<98س$dDD/??~sӁڟ8Y ̡Q*_iIENDB`PK xoN1&,  "nuvola/16x16/actions/ledorange.pngUT 4jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxA$>e+> /󟁡KB=R=-A΋GD(+{ܶڅ8K3ÿo\e4A*KPumuxi޽~o Q5,3~9 V#W ,1(i1/z+%&f-/cPw ̏8~C ` #А@C30x=gb?}. fF =]6gwe`Pzhff.h?r 7ÍY"h TTtbP1PP.y3(  X8@'@Ca`Sb`30zP-P;@V >>jbX$a 1 & X?6N6nk@PPabFϿX~Ne>   '߿.MEHKs5]S9!aFFFwp=~wþ/_^_)P?9&֕ `XE@(}b`dWo FL ̢L L@ _/cx+V ¢'𑗁;ç N1c`[_w< /, @803Q$_2W,mbY12 d {!_J[QgjҶb +'K>fvVa` 5pB|h L/^z'O_?Oz tP430)A,ąj`xeb#f`,vH"PHew_37_άݬwGl&YĀ)@lgvha8>?YN_Μ{ɕS]Ԁ_Oh;@Mְbep0=A '"'  涺]  8S _}g?FFO6,iQ#n~PB|ϧi׏3'#0; 0i-Hu\IENDB`PK moN1G;nuvola/16x16/actions/ledred.pngUT jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxba``@D~10r q1022~z7oNa` T;P-  ("󗁡K]C#8*AӓWFg7=x˗Օ220@ d0000lj7e` @& @'xzyde100tMvzG/X~dPc O(] Xc`19[`(}Dׯ @?@ |lÛ7 @O10d` f3f.- f6AA 7O _f`xs _a`fff( @,6* L>0|ްh+=bb lll>h //0 !@13m)eh ̊ ׀tw~?yP XX ؁)P#/P\ L:& 8#@_vvNϟ1rq10h$334$ӗ/ l@?_@,~8WT&# JkA}(ÇׯYG LFnn_@3`6H $4/AW1 Xǵ{ @li uNl +P13PXmk +d?/~>0= ^;.|Eh; !3>۷X7@ Q#K\PЈ$ׯ>|@FVF@CANRIENDB`PK koN1KHf"nuvola/16x16/actions/ledyellow.pngUT jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<aIDATxbP+ݧ XE}~7'eȰ;+; @ ]rjQ <2@F_qƑž\^bjcdbX)ke!e\a候-/͠dbpeOWЉ 4~~gcac @ &Yz)g10  ̬?$eؙ>Da @e#*#r[ `/@ |6-?ǧ|?d && YUV]njO 30 i,bcge``:`5B]uABO!@p1X z!LlerXc)@,lL @8@qH.` "&ba;'3g@YF~ s#EOH0 ez/o ߾@L>}?5j``14 C/ RP bAy12zYwOaf+ H_kG1s@11ǵ B10@5KB zIaa>ca |c#^\ K@u'X_~,yg3+bv,3?xxқՙYy8YXW'ן3X}ۻp!1]~E޿pY|BFL o?~L?H7uLWIENDB`PK ioN1)+nuvola/16x16/actions/lock.pngUT jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<gIDATxb?% X@ ?c`W5_TB_PGwo?{ն?~300]f TJbA1t%>_.MMOߘ>?7'{:[@+€ feX1q1A'?2H2p~ѱc@ ] m1o-- 9 ܬ /eR #mٿ }_0ɠhf۶<@L0`d6ee7/o6V&E2feȠ'o2h03U~QW  wcx43(?77 .7#;/_g_  оo? j ^bЖccWbc'h /?10rr8 /;>3r!f/_~3zaJ '0}f|6Oc`20psg7_X[o 0T1~|T ^}c _~g0(O?? ~}q- O\y淫Bׯ >g``u~XX.=zB礰_8/ELLfͰ//~=tqVt:ggγ~~)%, d` & 00<I#@=\@;>߽Rv~AwF {#@pmHiv0CL>"tQIENDB`PK kN1q$nuvola/16x16/actions/mail_delete.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<!IDATxb X_FF?3fV, _VaVHu{(€?~pKE{+)09(&ꬌLJ312g`d da7QWOJYL N wmұ #@1DPH0 ROWOAL h8YąM_y WMM3З@ZAQ7]00} fC.n&2R \ ,, l ~02| +1?%%rYUAH  ͸ R< =&<jh+yy0s+eaaQ!.~A6?2=AV/0i0 }z ïUx>~@ />}k/)t +oo3 Y?Ó5+00?AƖAכE=bbeaѫ> t";У? c_o3j3H2dP`f>e}n(  00YiX1t蕕M-e48\Z}AI]^'cL #A D߰Mݰ'z1=  i8)3113΃+_^/L{֏"j V10|[\ZjRL6| 3#st~qƜ3ù?praeYلYIC r##3V6.?ÜE4p`b_o5 Igz/6IENDB`PK kN1Qkuu"nuvola/16x16/actions/mail_find.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb Z_ LL 11|[[WG)ѣ;wh3FFV 4?Đ_~krprKE2:pʰϏN`` de 7/o;+k,$]Bs/>πd ???_B<#0_AFT!(Kie oߜmc`d F7uMS36u5w1ܺ?~^|2 kT10yA77W9<843#! 1" !̾/+&A00XH+1##6 GG;ĸYBL _fO| _~g3 df6V.2893##wǏ\/.6Vv& F iAAYwIqybaaeN?pq(/aN6o?A B@C?{ðmǞ߯lŻϯ?`cvݿ1r31|xpAAFEpI3zdE-~eA##MSEF'  c3 5A%%N: #庴ūCCw+)G98|ghk_yۇ8>?+?zu * x^`dd??S+0XX~01 C~39?[X@T 0r#333 &dr~r`yS{YIENDB`PK BlN1tV$RJJ%nuvola/16x16/actions/mail_forward.pngUT ,dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X2|Ͽ @??衭%_[[~|ul@5W5LEU*ADsFk\<%wl#T+aafi)à po V(K8n#+@B 99"%M$%f``b`e]\L֭rKx~>&&&bafbJTV 1Tfbd`cc``gj~g C#5WaufH+z22@VQ\5ؔy^uÍ_}p}cI0xq3@A IZ*~`_UR#=YZT" aAN..Vpt2003h* 1칰Џ f `(˭o9A!"H,30' "=BĽߪ&>Y]=כ7_~ 늀` t 0:1l]paà | g.] ?ko-)NH\\ ovmkͮ,e99o_X (+033{՜$&ilîm7޶;\:fmԯǾt20o &fFpZ#і<{Url[F,Nyf&wop1 XXeggŋ윆O gח\c ç ?02(+0zz:Ͼxzh@1z2𰥦$[ʈ3z_ ߿30nNNF)}9CWg*A!KK+-+"=@/W[JɢdECSrݏ?{ =~ l@fd`HJeABZ_0@,Ғa8|*7XYDD89~bdcHJdf10ܼ@18gZ9(3K00033q1gfaHUbPS 'g;vF(nemcŠ$`h Ơ)t;ï? Z ߾ a߾\>]_@@dD5$|f`ANAOADWF_@:h?FGs>~|(@1sr~3d:PwbF`1ߠ]/ L' ~t7^7W@H_10? N|p]&8x/`j`b &&_ȚA X~hi%deacPdPTpӏxGĥO?\s3ϫJ12"L ?2()9*+ ~ï@co uv1u`la. uCiOf&n7f`Í_pc.n>Vcq)'|l@ ph70xɓ E< B vNY[_^6'Ģ!Ͱ{=n1|AL\A@Yl /#CVđw ?AKMl    D?-*  TO32tDB5|O/>1<:~AMքeb`p]ۛ`8?<7 2Gzfxz@ ߀vg.Ɩx3 AF0(+$ %WIIfGAL M '-/%< йC_AK+,2. 62 %!* jYX؋0սy7S<`zC_n_᳦7/cBVŠ@̢ /ó XyqOI.S~wt绷ܥN\x°>fH F?8~Ƈ_u0_'v)߾~|_0=ےĪIENDB`PK t91'z!nuvola/16x16/actions/mail_new.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@F,(z&L~j@ `XC/M([30^dvfo1zl;[( B <, 6))ꢹ­[oDfƍ7 iF <  YHmo߾3xЕ\ ~x"@`ـp i Aٳ jb  ߁6 @L D^^!!. 3|_K2HI 20+p@]'/ || R`a)@`gb A%&v6VV6.8AX#Ȁ?H xկ G!33300ܾWf ~f" `f؀p#w=oP@k 2uLy~A@ xkteH73!?8~$Hb@AR" _L/A_d>(z?L  F5c8YjG3gd͢y ϓ}`9@1R ( ۓIENDB`PK t91'z%nuvola/16x16/actions/mail_post_to.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@F,(z&L~j@ `XC/M([30^dvfo1zl;[( B <, 6))ꢹ­[oDfƍ7 iF <  YHmo߾3xЕ\ ~x"@`ـp i Aٳ jb  ߁6 @L D^^!!. 3|_K2HI 20+p@]'/ || R`a)@`gb A%&v6VV6.8AX#Ȁ?H xկ G!33300ܾWf ~f" `f؀p#w=oP@k 2uLy~A@ xkteH73!?8~$Hb@AR" _L/A_d>(z?L  F5c8YjG3gd͢y ϓ}`9@1R ( ۓIENDB`PK 8lN1EE#nuvola/16x16/actions/mail_reply.pngUT dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 0|Ͽ @??衭%_[[~|u7; Ăn _f0U{ESSGVrΈ2@`%&&xm] +e5KKys0(j2G\9{}0 (~K3QQY*LQTAB 10r28pm2J=8}obafbJTV 1Tfbd`cc``Ç? fWf`rvy,7EPk,('/_6&6V&n ( ,Ej? XYq (yw \l@l Bœ 1?.Í&ƠaϠ"a#by}7?l\T'`?`za +aдdmQg>?9p}NNp200330ݵaɭ ^ '1Ξz @ dSV_0SO0_ν?\o0o7{b û Kldx8[3b3hFF?|hj&2_ +_tCmxr ([>56Y|~A%&O9%z 4% 8o!$W123OW/<~`3|.}|X1jeryg&F&f_|98؅9 \{\}Qw>gkXiIENDB`PK@lN1R_q&nuvola/16x16/actions/mail_replyall.pngUT (dnAPQux 5{LSϽ-R[ԍm*Qkgu((0G"smtS6 ui|#2N(f((8F2¬P@h㮆9_I-)ҩ@O(L*mQ=FB 6 VLyzNCუ6 0Y4`bptWC҆P7ӛC!Ba@0cS% $a42k#q:R׃ޤ58hgAC1PX#m qlr.dRA%w`[1r i6*+rڋaP<L^cM0A~+:}` ?&& ]t L1d[F`3e(E!u0kmǹ/rػFzCw!@f@x ~ί(8,.V!D) ˊ|yqgfvzd^xxq4 $#&}/ړuw+JQL>ܮ$4A@y~wAK^u1z;J oH1% l6ν29YdZ@ʒ4G:2_'P(^e$pMND*9i&me~5KV& uN+ٔU"qkҲ, ҷu;AEAz=d2΁Y#ʪMFbFO!!5-j/W]^ -q/ x-vA|Ve[CV׃,%ysjpD-Wg4 ?]]{ECJ86;ao2 QݾsE#iN' ;.7 P82XSaL'sY,DF8mVX؋P+ms ,&H8Lg,g2BaΊFƉDQx<m`1 } ~{Yul̷}dͣ`NQqq:A%1A42ܿ9?vǘ 6 nA֧\ӆfc p.9"((GfwNp{cKR8ra a`~߷pT^vcM^?溭ۦ)1?miys]_ Eԟ; 1fo7*7+~ax|{VA`C}`R"//[3pHJ#E*=rhzڅ(׼@ġF%aFpJ{jUTP ?>=+GFG+t--YQCT5'u_C^]T[WZX*QƟZ4+wzb ;#7OPK HlN1ܰ&nuvola/16x16/actions/make_kdevelop.pngUT 8dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxbTUg20 4*ba(PD/?܏ l +7˻O 6D@L@ 1/P+3ׯʁ߯o@f`6?˿7c ߌL  | 0g//_0|p߅ ߟ={6@R_ATOY^7 ߽cbXYx X10 c(3bkc)*U~ Y``p018 `p 0= ,׮3toDZ 301ef JFɴ>7蝿aa`e{~3(L ,@w>2fgg ڸ?oUJlaA;b)KE}IENDB`PK t91xca nuvola/16x16/actions/message.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<nIDATxb`azXDMU,2Xd*210001A9 #o OA 0^ 5)A:}(_(131?#3Wf ?ae`xg8@,>bD` nf_~g^ o} bvb.& P @1#T3 &Z= @,>~f( g|g0Pp3HeZÃg@&1 j.bEѧBó^r( ʴ^V,pͫpOkf!h2O0qrpc}+/_@I ~g0Q7 BX}axhbġ*/O>N+A ʀ~f|7_7@fbee -%|J5y[ƗρQ#vFbafF6 @P:3X#-{ -o>eZ3@@,]gy UvYLC@yËk"'38b-P*) FYvVk^vE!n~Q1>6n1>vq~vvI!oo1nzq[nU ~ Hb$ĢlPMP?>@PIf$MLH4#4|,;qOTwi IENDB`PK $lN1E ,nuvola/16x16/actions/messagebox_critical.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@RFF_ jo\7Q>˻H1,,٩S7]trb`!PVc/NHBD ӄwGwxx5 6`O)u=<[9/JPG Ry')oܹۿ_!6_\?H/@1񶭻^~6e>ov?1HdAý __?3ddbP= W֮; @`e`Y$)uX4;" o(p, /@̝۟Ыʧd@zf7?`9e xx~|g_ r334cok{ݻ O@zH(0 .EB c U: drty ۪@`㙗CXdߎ] ?ņ1z+ofv3\e`s!g!)-@D@zlU+݅~f@ۥf2(\dЯ ^jJ^$p'$/ 03(N_߈ᷜE XX~p 6A?"  {ն?~300]f TJbA1t%>__}.UO_~1|V^${&@+€ ffX1q1<}B;ïv]e`f b9Cc@ ] m㷖tknV6O~3LZG Oc5zßF  Fooa>V@~|o+o?2~T 쏟3|{w+6_T %$Ý' ?~21gۿ@À|y𛙉_  ̵ &, a0@ ɼi.0s30qr؀cap70J13\c`AY? /|g?2s>çB~1cg0=(Jhe H/@c㋷?F#01joA/0_ ̌ @Kp مDY^a09h1+H`-~h H:`aڽO3K1p1yI2po/%aEQ6Q^0z| $%20B޷0aѷ4񛁓wk?yds!@!2#파n\ l<0Z7Pb6b4;/u[?&AIENDB`PK FlN1G+nuvola/16x16/actions/messagebox_warning.pngUT 4dnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb\΀g`P~@sb)ϤNŬQ'o: a`P27wtf3b33` 4 /0|%;;[W74 @(.``.ib,i` " -"Ơt4 @,,,i>| 20s0誨pH0Bm ɚI00143wu1bfP` P @L<gv3ܽv̌Q@;M@ x.& , ",#''ׯ jsy @㓕Pۏkˁ]%.. -- IX. ~2qsqt @1AQFEڋc*Z  !^e 2#P(  tV>L%&| C~?iII9@쟿32Qd=h@`+#/5{0/ ?c>u*Cco/o `%8のA zWb,V`fuïW?o\ F =޾ ?>~l YY q7K%^o/^0f1~g?@Mt #а 9\%N/@l@_Lhge~ ld"IZ Y IENDB`PK t91~Ƿnuvola/16x16/actions/misc.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% XJK; f100+rrR8e55i+;x~GbIŮ55dcc>~|]RA##T%a* rrꊞ*< L >ccc)w X~Ġ1p -FF`^GG6>>N70^ׯ&߿4$$$W mãG}:ADAZZAHt!!aǏoܸ| @A @3,[wihY\#'' 6`ݺ_ϟg & ر**2.]:=a߾ˁ1.!!Y ӇoY޽{k/_]AFFMCC_'$$AO߿c^F ,-YLÇ>b>u7o^~5+_JIIs XZZ)(H1/2,Z(@xx?VPPa`aaPY hjwA\\AJJ(W _5W qq `%++.Gϟ89ف)ܹ8q`ӧ˯_?,X0@\moQAQQ 8gP`FP͛gW^jy X@ĭ[WWp缼ڥrr߿bsP>0a2<{f2@0 ܹss %(qrr1̜9=z/F=ã  ,-mqssCX=;&cg+IENDB`PK pN1"F!nuvola/16x16/actions/mix_midi.pngUT jknAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ("&&GRRʕ+ ?~ ##p%mmm0ի /_d044dp3Po.a@$.z@L/ HFD8PkFDPJaosN~8&)0 tZ&muw*Nz輌$2fwk  7`-1jJ Ƚ6*3|m$2_\EEE t*_AQQkJJJ ||| g@zZ<:@B36 @Jpp5AF , `r]  ..N!<@ @zp()PD]nA&WIIZMgL_4 9RR}2[KlҞZ3\LP>DNv6y3pJ20LAY?/ B|@b 8  X8/#363T0^ 6Т 'on0ϟ@  #3@1 s7VZ#FF&/\{p )͍Dqn0Ax;IENDB`PK #kN1ːD1 v>nn,,XOX8D?;A~`}cr fa~p+b47Ź l[QIENDB`PK !kN1'P66$nuvola/16x16/actions/mix_unknown.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd``H9@K82 vff]I6^/32@@i! ǀ8/$00L l@(J9~: q@#~g``d? `q7M+#8V# f‚f b  h01o"#"̪mW3b QWRwUZQ7÷̀b?'w &e-LR _V@,PM@l"H6ﯿ~Z|2  _baسO3I0eef, KT0O_ `/#<2 X8 Ygadf2 RWb;ï/02b$baH(AC+\Q? >~c) &0 _dĜoXh #"W3e t ">`Bž fs+1'Я~^` oKxX2p3s=w%@1% (o~;IENDB`PK kN1 #nuvola/16x16/actions/mix_volume.pngUT  bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<9IDATxb?% (Ȑ $200eb, H320 9J41>*4 Lr1100 3]( 7`OQFnmI5g?q.tjZUY&6 l ~c c_!hϕ_%EOm/g @a5Ǚ MVfgd? g`f 0+HH200y_li XN]Q&SU o~3}(.Db 4l*U"W_?2013r>3B@#AW'] @\ ,?kvvv. de @  Bt4_   oF=.]1F1`badbp+b47Ź w䪉|IENDB`PK i:1@@nuvola/16x16/actions/mouse.pngUT 8VAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (D2uz:Ù3⻉I*9pqp~_8اX_100q00 XGJڋSt?ϭ)+a,_}ϥwcdd AKOSef!-.'  oq랝& 7\z ͯ_j& ÷o >10}į89&;#77޻`i% )3Ï {/_CL_LRd@11018sjϝ7/3\0i!> <@'a{7!.yAIQ)d@110{n5o3cxa a`F _5ĠEA$1\ziڢ[877ÊE'~ b cػíAZ}|g~ƃ98y6/+ @X8G |k ԔϿ[Cn?mz&v W`v'0&y0^8{O )͍Dqf0/IENDB`PK 4E nuvola/16x16/actions/new_sub.pngUT eDPQux PNG  IHDRa pHYsod7IDATxu[luMx!$Q#! 1/FaJ 339DAa:sNps YkǺ*K@S&K]Kf]k0IrrĆl;>od?)nL%M}9rH$R~ @4(/G:Q.WQ.TKP*C 2x69PoCnJ  r%!/Ax+=`Yk;aގmE rdKCq v| thFHNM0I r(UhYeA38rda\ R9axRd+@7Xq/,,B 8\#9zV1\<;`rÏC&s0PxOi ;(#X)rYluXp|2sݯ7jrxX+Sx] &E)o>E As,mBN|LMa H P9jo fկA$lܱw_xQn R_lWL~rdj73ڼxmq=@VDb9e TW$}`O-"a؊r߶X^P ĄGb"I;NF} ֞CXBەoki|] c.qm¸ݸfgqMUV_W}{}yӪIlIENDB`PK kN1} nuvola/16x16/actions/newfont.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<BIDATxbdK344T 1FFFd?& e9z%b7&ji@,?D/1H9N@@D tC]V2 DÜc#ӯ߿1H!3,_a <<<`4Gp?޽c8q+++C@@0Ν;Ǡv@1}0N=[ }av}p _pE3g2FS'@W/߿po//- ,`077gx8>|bbEc+[6Űa cs}=}C1ݻ۷ >|`7. Fd65?kp;C_-, T$ kP3 1['@xVPbhİ_#Gw+3!=y|^^^pZ &Rw".2\~zACj- ܂L ^fP +@7o./߾00{-^􅁙 0M6 FN#VqJ,ys0'b 7μo =hYC csΜ] >6'{&Lg1cWb`e`@:#3^x㝕WXd]?|ec&D(,@ EKiDO8bIENDB`PK kN1w]]'nuvola/16x16/actions/news_subscribe.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb__~300cx-$#+AA^Gaa qq!1!!~:u##kF @, m3|]H^^ZQQWFFBYAAe:{߿^3112 !TT⠪*!///~2|@CDDU. ~!b:\EE<#$o nbf @[yDr_ !!Πd{V&&Ĥh+?~3|&888fgd($,kׯ1kjpr3332++[ a˗/ >|`x Ï?=|p]g0Iq*EձݻOVߺudڇ~ P`e`bb_`|a`c`cx9`l# ML\ KK0_ bƠk#?{* @?qp30,@+K_C7ٳ ? @?y7 ;W %$+hD@QwI3/qv@1m{ߛ.JB'dT`e wP3yae&Mt~''cb3kLu?8t3XY3{-;8/03l߾oGO{ ja@,*2;`uds)aȓ)c LܻrF߿泰b+/3x-y1$&18*92<у7o?x?ÿv`zy?t@̿4_;eǟ1E2ﵓg|~yx8$L`ח;/,$kwG# 0*{/IENDB`PK kN1bnMmQQ)nuvola/16x16/actions/news_unsubscribe.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb__~300cx-$#+AA^Gaa qq!1!!~:u##kF @, m3|]H^^ZQQWFFBYAAe:{߿^3112 !TT⠪*!///~2|@CDDU. ~!b:\EE<#$o nbf @[yDr_ !!Πd{V&&Ĥh+?~3|&888fgd($,kׯ1kjpr3332++[ a˗/ >|`x Ï?=|p]g0Iq*EձݻOV߼u@C~_X9?{[H fcsBqb_~c`efgAbƠkbb{/_L0,@+K_C7AZRٳ ? @Ypp (*۷~}hD@QwI3/qv@HXZYk{zቈ,3 Z_`Z ;Û7nl׮e䷔ X@gkMoӗݛ 2 , x̰}=-` @1?yvoS20&1?КIENDB`PK 9N1!  nuvola/16x16/actions/next.pngUT ~nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` 6$x-޼r?E by10s10L \ g yV ܕTE60|5?1F. >yAJaN'CXz{g@ W cx!3ÔDGBk-6pb3 ahĒ]93+w=>!^#ifyʰKع8y0`$ a2 [B(W@KBAW[Åk& <@@hC0'3tn131y^nVD[U 3v|e8vy| }F1 `H2@1'^., gaOmf L  0f/GB@[Lwao_D3aٮ??~`\@`0]QEARQ;v@I exϜƸ \]@FLᏘ$gL < |<b<>n#7f_82˿3420.•nv&&&n_ ~ʰ(u_J xJddfwoje`a; 2+@1R Иy˺IENDB`PK t91܋*ߚnuvola/16x16/actions/no.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<,IDATxbd@i J"**\LL \pڵ ?|0!zBA{v7oד'II_) P au)Sxz2 o20y7 ~@`*%$S d>~`w^f`xs>*1e`8@@?{DF0`¡C / 4+@ſ--2pݹ~&@1=z_s w[!Lp^@;qKJ$$hQO]}Oq3SPX,,,`@?0D?k@|qCH/@SY?>}z+珗0o@JW °l P8  L,`;+3Ç;Nn:|XG>B|M7!#uo 4A@?F?@%?cx󿟿>i JA `8bO/df7L 7`t '}P@px8>pcw^d`R龥^q"@!hf0?l abb` [ ;C8E#@!€q-'+"6~daCFFv`3j7H)@!ſ4X+l)? vf:oUՖ@H`*g[LےAV{/`nkA/;Ñ L f3expacמ̇ ,6: ?~ s  /ó.o9fZa9%222U7Pi4UTg7êi[_|я_>xi~?B3Piэӷw<: (MѣVv30-3Ac #'rWGןg=bzvL 1@+kF.u10ϕWeWjAH;8CK ۶\)A0dqIJ e"* avW:J"3]A0!3W0<S6.*#Y  A/"[/'0$M  YHC/Y~Uaga'.S&W3x ;?>93\˯\1 %0bb> GW1~Y y' @jF(ef`bdCmyLo, #Hiv0P!3#IENDB`PK kN1 !nuvola/16x16/actions/openterm.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe</IDATxb?% XLLYIY@eBC!?x@,\... ߾f'33\FFF Ab;+ {7 ')Rv#( l( 3 O|u X@ >} (Šo/BF ,L 7d Ynk@_88N=p|I<7@7&&+1\j@53gEz X@ Rcd82l3O __|g1Ȓ/?332j3<<&)ß| ^ 0+;7'+8L@˟8N^> ` OB|W_1 ?Fz?P eHeaù[XX999X89YYAN?y,^psIWV0|gh`P/ ;?b ;?CE @ &Pg'"8;(; ß?r [g3L@;?p  ,α01˝~l߶@AiH5f lW @fg /f2IENDB`PK t91<nuvola/16x16/actions/pencil.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<[IDATxb?% X@### 7"o? ?6_8Z3? l"Z/1yvW b@RĂYh8/P,SL0p~6c+'_'e ā!͌NjXƦ2B tf ;l>2`U(g~mÔ{ R @P/ ͜;t_~ge`P(cri;C[m?Ͼ* @L6F? =A]O6M/62t_g`s8@A P =So_0t\@ d]=rIG:>s*#  5 gmAy2T @pe:sMObv1H/@A=ֲ&5@ ^i3Y[Ygf&&#f`fe3 )F@v!IENDB`PK pN1"Fnuvola/16x16/actions/piano.pngUT fknAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ("&&GRRʕ+ ?~ ##p%mmm0ի /_d044dp3Po.a@$.z@L/ HFD8PkFDPJaosN~8&)0 tZ&muw*Nz輌$2fwk  7`-1jJ Ƚ6*3|m$2_\EEE t*_AQQkJJJ ||| g@zZ<:@B36 @Jpp5AF , `r]  ..N!<@ @zp()PD]nA&WIIZMgL_4 9RR}2[KlҞZ3\LP>DNv6y3pJ20LAY?/ B|@b 8  X8/#363T0^ 6Т 'on0ϟ@  #3@1 s7VZ#FF&/\{p )͍Dqn0Ax;IENDB`PK kN1bH%nuvola/16x16/actions/player_eject.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd0'˾ ) &_/?Lʳ-ujb cD XP03#Pw3[4 GM 5 ho?A@11գe$=¬eaςA@R/1@110u߿ kf8c7l jfL 5 p @ >A|lRlp#Ç ~20 (Կ=񑁕 1[KӊG&߿1@@_dl,8DEk4f[m-%q 0|r?(t +/70A f >H3p/50b B"IHZ?J?~ 8@,8וTlMI7axAG D+;jO_{q XYF% 0jh0!f9e8㌹@,V qa;C1#20|*@0sq3232ML?d v~OofV3 E^.& @,3ÿ? gd _??xw$##~z YZsIENDB`PK kN1#nuvola/16x16/actions/player_end.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<dIDATxbtY|?1} h ,¢˷_@`hi~Y(i!7<V@? @zt h@o1211k2+h?pk#'/ ( X@1/$ڱfP/@bc`&FA`8 8\Vz povPD`r5ss02 /73.8; Jf` e``ba @b˟뻯ؘ2أ1@䀿ĥs.`8IENDB`PK kN1(eo#nuvola/16x16/actions/player_fwd.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<`IDATxb?% m>ş2e`fd```ן2g`cTfa` YXBNp^A/%3ʈՙĸ_%\. _y+3̙ ᣵhӼ_~*|)!ɷXlA2\x$#9:"1K  3( 76!M(A0]x(#.5!   .4$ -RA.]x# % ([_7E^a~WACPK ?f%A\KM@Ë׎pR`D Y(/30gd_L YX|F.b1p20p̀)v.P4c2燏d DTa;O1zm0 (M 00pA4sr30||ʞ \L v b| ^y&'_}{K X1 vµw/>QVY;0ǗO W+f`g;+< _Av޵|_ϰk㋛Gcb@,\L>fX9gן613p}M`͌ מz`@]@h F|uǻY W@ X?4Hf7hwpt ) 'žIENDB`PK kN1K7%nuvola/16x16/actions/player_pause.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<}IDATxbp^xXJ}Ž9d 0 LN&REM^PŅ?V+73O\#w3&$ b^ $돟  Q;9P88 Mbo Cm}b3yw}*`D@@@h@,qX?zrL-L= &4u`?@V @L ba@r͈C1wAlb1`dc,@9(%RbaAZ|-#f/P߿Xx@`F_$P"@d!)8zȐZX0F -]h@9 X89Ue!d*/ftj;ԀYeŘT3+03qs02˳:( pv'7P)') xLL `PvIENDB`PK 1kN16ʌ$nuvola/16x16/actions/player_play.pngUT .bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbpYؙ101``eb`ؘ~ #A={q [-:#P#P3а gb 33@1KF֦F2[2Z*(p,Uk`|)PBBQ3s7_|񁁑9POlNTЀc`bAF a/_'[0l@1 hE1j/g ɠ-Ǥ%/οx 40  fͨZAu5o|=~!P3'<Р/?#+}b 4‡add@@?8(">cag`3~r(@_D c CVſ Ll,l@ bib,+P301 7_߾ XX4:?P_}fwgnS6?@, <@؀d_?pčw8) ̌+ `t (]]I,@/ g_a~ƙ/>Ld`e_ } @,dԓnԾk<<8پ=p nfFvmp`ʰ hWp#Qy3v:m0u}@he_& @;Ct>@&aIENDB`PK /kN1P#nuvola/16x16/actions/player_rev.pngUT *bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<:IDATxb?%  10/?0?X2 /dY8{y ѿMH2oAAenq sT ""λ9az8~He9-=5P!G@Ă?1mf*q)2 '_20<{񅙃suR&? ;o30| /'>~>6nz /^pYCDeDT.! @5 NZS)ۊOV37w2<8yAHBAۉ!3; 0{`p|@,[l,匀N9ݺàbe+#pV&FO]h` ###_V@ ?3 & ?m0'(3ó~~ (vVf``xObf4j㏗/КOIMAZQAJEÇ abdjc`xyObf=P@CUn얓x8Դedr⃟1myͻ^ܻPHOPC/o?i1(*1\>'@ ^&&_w^;y_Z~fyk潺KO%߽ FPfe tQ:3_&4__ſRgf@fgy1mIENDB`PK t91j}S#nuvola/16x16/actions/player_rew.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxb?% (Ȉ[x&? )|gl"xW | wxˤM V_w\ XhWWPb%/^9+ c}g`xObAҨ1!.FgW2\>yab׷ oB+B  ?lt <^bgp鵛 o<`2f3a|աC  .N @$; $+p-A$7@1SAHr2} FbxӚ/_/@@_D\JADJ ??efbadccY+n< `3ex{|#ƪZ2r * |?0vAIY^4 \վ_Yv+ Upe֚/k2]qČ/>2ڳΝ~c.;O?_fusb$T a;m:n ,5l^#  `߆]IENDB`PK ,kN1@*%nuvola/16x16/actions/player_start.pngUT $bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<RIDATxbTYzO6,,Lwo?@ ?%˹8DOZXF_vNF fjWzGW=yGz/b 3U? G*jJhz1H0z@d!ХbH?Bb|޾A: B\ 10<by d!##Ѕ13;[VO@M/4ob$3 qFLy];Ca9M9?n݂%$  X P~)ZM;C]ujx@a([̌+ 48n3f4@^ t@@?#03W&6?!6222` @Á @3123sM; \@p100C1 *fb@, [98^oҗ~꣖J(OW@A6-`@,l Ӏ鈙 h?;kKyXjm % ~冸 p( &&XYqlrUa? R  ܐ &fNH@31320< uf ̋?ymw޺5}[^q/@>0Gסּ^ K99( ׳p)' LxnIENDB`PK+kN1=$nuvola/16x16/actions/player_stop.pngUT "bnAPQux  sb``p  $?OR,鎾 Ov%K\#JJRSR(S>V_πEB|x?>h8p̙?Z3{;04~x<_⟠dGC0a`; L@5l@| z0c`sJ\M/_-gm`|x^o[Q_+b B3n: CMF2S0 ~c@(aa|-~?_E)/2+?~vz 0 TF1VIj~XAY@zeیXbn{1ȫC3r!k TX@fG 03<}Y @;oo?τ57?ikd-Ą5nbb߃_+3f`0eKGO ( T@Aw8CUo<b8Rdxtٗ?(Z5BsK750  օM@R#x(Êwwv;g0| @qp{a+ ](" <`8[pw^fr+Ç/ ^>f'y0/fubafcx//JA0 gbIENDB`PK t910 &nuvola/16x16/actions/power.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb?% (Dc3prq44>>#dػw=7˗w Wza^^s¢"22**ʆ~.\ {۽jK0}Ăp #óg+ LLL f`fbab7i҄~o:xpP+.bA/j!7ߏ߿wϞǠ,Ƞ3 %, (7Ǐ /^eqþ݇ ?|Q WS`x ýR@Cx8ٙعD%8 /<zߥ2=qc`d📁 7/a8q;ÃX3 @pB_m+ʗ]6oHڭcG3HgAHӻo 'O/{f>' Wb:d,8^% ?Ttt=/. {<>B0 AC$P49 - FJ3@Qb 7RܻGIENDB`PK 9N1p  !nuvola/16x16/actions/previous.pngUT ~nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` F ?~30Xٌ@ vVS{_bM@ @j (ifZe=36L@7?wokϝl?_f6bhl pgY[8h0p?#'0d`S@,1cgQV.a>pb_ed/i d8)1ueq ߞg/oOcnb`a@enbf0CJ`ϯޜg`fbd=vD&FFNN>Ove`x(??#7ǏO>2pp30p1;7?&;nL\2qWw4d1ps1Y1X;XJsM-r` D4gtb߿; eb8MAHW@EC6`,´j:,̻yz3| s1Qfe`b @#gԟ?F=O0𙁗C DF\޽<ӗ W@`u f`' Fb00<9{O |x/ۏ̂?1BP31@kX Yaf`{z˙ @N4h<#Q!(#> X gπпe"ß/z{5r쬜hrz'CF&F?;"«@ =Ϳ sZ>204c`{iucP`? PГΠ& &2FUNa h0r#R5+Ж?~1p 0|by!ן?|_!Q oB o^~+0! /Ïw|p}ߵت=7$tpzW10}{H̟~|6 Ǐ%J Ǘ^LOa ~ iFvqn}".T-IENDB`PK t91nuvola/16x16/actions/queue.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<XIDATxb?% (D"jkwܳT?߿ȘLgdׯ 6@WWBZM}aKᅮl?VV˗1ɋ30213 '?00ƛGÞqӦ۟l)\\  =`We`dfc`޻h##Y/0hkho.? ?10prq1kH2=sйW<3,P1Тߌ ^cq8XXlH/ Y Uw=}%>~7AvvVb3˧ 9_8<- 5fʏ8876޽7/YEE0x@@Q w.Fe @ rᙓ7}_\;9*֭  pĂ 0]4'3@ `ffz#0ژ?}+ (pD/_z?`L3>@1R@`ĸIENDB`PK t914þnuvola/16x16/actions/quiz.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxb?% X9*K ƿ3@^:{ncB1@NY\B@' ^00< $DY@Ͽl ̿1\ ?}eUcpax/P bB0211:5=/AȞAAیaaÑ%- ̬`U(a@02Ó{X%d,||ήkc;3_6v^ *px002@b Ă-@3e$x$*v,-=nA.O~ lq WeTfqfp/bx Vt@,0<}>F3a &lY.;pa1? AA 3sv82@ +lbUa0tcL@1Z$0l@ԟ_d b k 4Y@psoK_`&/$S gd|~%b4;)16,IENDB`PK kN1?:h nuvola/16x16/actions/rebuild.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<@IDATxb yN@H B?__?/߽~? X D_c`00@  dbV? ,ߖ O57wL ؀30-@E 2 @,?meYdX60 4#D*pNz X@‚ ¬ 0r20=by XϿo003% d@,PƧ gcx ׯuh0X-jÆ+ gbf`ge`g`}0>IbX\73\9 *?` 3eaxK< i} pc4Ǘ __gAI!,O 돭:]a*1oϾ p`s' fAAG3X[0|a#+M粧SYB?<[S v#A^A1rEA[s %4xx> ? >|p2R$vL ${p yvQhP<{DU͟y?K0`'íny: q0|!A/=.)Mi!_1|;vRf&?3~|պ? o# Pa,!\boHe9+4;× o<LIENDB`PK t91knuvola/16x16/actions/redo.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxbf 3q\L X`(| ^)iW&]qBk>?@  ^p3\;!D_ >9-8~MmNV6 e5S:w .`/O?3/2裟@@33(1a|!myKϧ3ps Fhn`TݙjQ )3s+Odad7w^?ytwǟ0sa`ef F(.H^scc}ʴݹ}ٖ8e`6b(sFŧPdee`//hf@ X H 0xet`IENDB`PK kN1s{{(nuvola/16x16/actions/reload_all_tabs.pngUT NcnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbdHg``@?@*̶>je``y*gJ212 Ĭ 12˲DYjb7?b d"/"#*TOJ >V -e?JfȐ4h%u _ 6@3|d}!ZO{ @թKl."pԿ ـt÷ ( 'j.vAaD_DV$#9JN ~p A,+L KW` "')*&Aq <"< x    y  !Y_H$2}`OK??>bOG Lj&l̘~Űܹ ld/̿9%Zun+w/2|Lo3 緤6 `2+;@?$SOe699!\L`%~Qj ûO~ܖc8u1bdg`feݚla˵ L r*d0bx.7+X)?w .`/ϟ>3}G> a'؀@ ǖ=>5~>@A[ a;at">  ! ~#Ï( e Y޻s-3(+ @@;`W]S ߾T t@g`)nIENDB`PK kN1s{{$nuvola/16x16/actions/reload_page.pngUT FcnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbdHg``@?@*̶>je``y*gJ212 Ĭ 12˲DYjb7?b d"/"#*TOJ >V -e?JfȐ4h%u _ 6@3|d}!ZO{ @թKl."pԿ ـt÷ ( 'j.vAaD_DV$#9JN ~p A,+L KW` "')*&Aq <"< x    y  !Y_H$2}`OK??>bOG Lj&l̘~Űܹ ld/̿9%Zun+w/2|Lo3 緤6 `2+;@?$SOe699!\L`%~Qj ûO~ܖc8u1bdg`feݚla˵ L r*d0bx.7+X)?w .`/ϟ>3}G> a'؀@ ǖ=>5~>@A[ a;at">  ! ~#Ï( e Y޻s-3(+ @@;`W]S ߾T t@g`)nIENDB`PK kN1M..nuvola/16x16/actions/revert.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdbg`ی7g , ,<~a`$ @110g`붹֫ޞ  T//PFh Xt7Z17&7og~5=>z߯+_ Ѹᔚ],sD+0p)]ȿ`7w{#m{0 ߻ @,o>~s96)Q" o}ax3"&.&O"M.. ! 4C oTA4X%d 0#)A*깿,OYfL79' +B2:7'37/'_òNM?p281|/)P/@, KA"@YAm`bH~Pÿ?? _~``+3+, AK!"'* >ˏbF{! o!Z7Ub X?w\cb`}AF_!r@} 1|ceSd?@0 O~]CN&v`t1rz1t80} @Ll 4?81LM@ ҷDD~h@)@?ݻ 20zf?@xx21| X{3;P06d~dab𙙁Q@1))AVF`B @Y޿y#|b@CÉHcdxuPk%@]t_ f>ϟ1w!'2prr11#70|?H/@ F?󹹹00|`8s CLd6OA^ @LXr޽^~{o ?gX~ëO9ASK&_~ @`8:p}~eػC]W/>2,]A@wB-5l _6@ _~3f12? jr 6`}CW,7o?0,^ LL?Azl7GBBhÊU.0e|X g={/_ \ ^^ @2)1Y3Lc ~t ,tmڴIHPP\OWh@ozx933\x[o^sjH/@203|b 3 \@ /HV Jvqd'_? ?b`bb+'kO~uէߋs f); 2}7u1^~_[)D-  1?mo~(`{;#o?&_ a`:WH`6_Ìo~1 `x{$4v @q|C`4+ ) 9^b`1_ ,?}@,Ĥw&yd/f&V~@ `aeW ~| B| ?3eh7_/W# !B3)^zIENDB`PK kN1R!JJ#nuvola/16x16/actions/rotate_ccw.pngUT >cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@c4#oAyi:AO#0*b& +5lPtk Yig߾\h4Е_> 3 \@ /HV Jvqd'_? ?b`bb+'kO~uէߋs f); 2}7u1^~_[)D-  1?mo~(`{;#o?&_ a`:WH`6_Ìo~1 `x{$4v @q|C`4+ ) 9^b`1_ ,?}@,Ĥw&yd/f&V~@ `aeW ~| B| ?3eh7_/W# !B3)^zIENDB`PK kN1aBB"nuvola/16x16/actions/rotate_cw.pngUT 2cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@c  /37ߏ3030$ J,Z~ŝ) /@,(9ۿ?ʂA._5kWu< F.`)-i'v =@A\߼4@yi)_?101 Tç? ͠)e \΁B" }e+ë'32 /+ 7N7! H 1} Va{'V]rg>a`a?@ O?~2c{38 (l_2010?@`@had@nP!HX lϯ y^3Hex $KR"@/Ġ 7\@iN|I ^O7D#S?3"(N"P$ 6z˖<- 20}!> `Yv IENDB`PK kN1yhnuvola/16x16/actions/run.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb?% X@^^\\ ^b`g`a)/ 4%%}xy Ο9SߩL@} ̤2b`97+J  w @`%&a`g&ii)ni#f g~޼_0Ȳ>]5H/@ `/+Lll b>~a{~ e58-x3H/@]͛lpO_~0KF c޿cf_=P lk7=~m.R ώdxyw^"$>O 痟?3c9~zO ?al;##ׯ{oף?n^Fƛ_߼~%-_w t5# ތt԰IENDB`PK kN14G , ?1߄8d?74÷?wio_10fMl@ r%o\dp|aߖ˾@ Xޟ(eٕXY ?nLt|+˕ݷ|40p I'gEIENDB`PK m$6^](<#nuvola/16x16/actions/searchmenu.pngUT .EPQux PNG  IHDRabKGD pHYs  tIME#Ŷ|tIDATxڥKHqfPGLPIW-*$mIE`A+CZDEm\$m-!D@2_43̿ s)%ۅy M3`Y /[Z!>߄׳ {&''q\4662::J8FJMJIv%<E̺?_T/z$\hC+&։FL d0S[dxhh4jB@q\ YDPhxWaqG d-``H|riiIB!)R-Yt:"ʡ(Ѱf:l%"7QTZLQF`UyARJ!@Yq/gW(p ɐ=;nI  vCȳN{r} -7(}O߻u71Ù kAܟ߰憪rX5aoyYѦťe{UfM=z0v3}̏#бHC5 L囋Z&ZyVn/V oTKS iJIENDB`PK jN1,ܾ"nuvola/16x16/actions/signature.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?#c~8xSe&=8 @L\80;3?fVVOI^ H'@]-v]#QB~-Cw?={dg: p6{ӷ3_$*/{Q7$ >- ~Âofy-):&ff77~kb`@,&v~z]ˠ61p h/s3V@,0deE.Zy " ޔ3g @`߇g4/>Ѣ 14c8zFClP`g={F '7ál7vo(J5KX)3^0G2ay ĦX>8nC(a@p0LTW] ]kaXN A /Ow@ Lc .Аe rO`a N _ #0Ƙ@`M5C_03ϗ~0(:F r2NGBOMgx#Q |sjI3 WʪIENDB`PK #8LH3nuvola/16x16/actions/sort_ascending_with_status.pngUT .V}GPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8O]HQ[!" (E r7IX( n04ɢDȭF7m}K s{]ۯwNs8;9YDp5IWy-μ _doVRt_DHeeתN2@0H(hF"GPZ@1e<$(hA{,pS-P}2 mMF-.!QC-~r ̔鷗!K'}mYfId?0v7:%d € %̑U$AvÔA\RT,I :񉿙 %f.4|p1;lL( G۱|B!Cea*VI׳1ZJuv};Cz 49d'[O)KX+V4k8o݉iLCkv6 Ĵ^@R%U/"* Fi}I˕??P6IENDB`PK #8t 4nuvola/16x16/actions/sort_descending_with_status.pngUT U}GPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8O]HQ_ۮDjovQ ,(Q4".#* tdil-?Zm[c)9ݻ涺?}yG b R/TZS-LԶPKiU7Aї֦{q3G~Oߐ|  @)Ia8N_:HN*iϔ0ځ<_8&1o{37n\3fXY$LYT٣@'_Ca>K"dltPω*/OQ2Ρav؈hR[ )~89d)o@hci3ێrazʔ@Ѱ)wKjgy;S0rk ϟE/<Ƿ(Gl?iF8fDymh8DEsq ^ܦ͝c(&.yߗ8Fa )ɞ1^5g8׋O Rn1c&P({IENDB`PK ]oN1`GG#nuvola/16x16/actions/spellcheck.pngUT jnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb```` r `7%g"k1 > Ķ$ā8 yI 17#0a`߁ T 'u-a` %-ρXd*T'1+o@BS/30T[00 F /VaR@0zY!W XPw-j * F/@I23w23k~)Tb sP~14 ^10(=ݬ+i(&pc , A&C3<!ѐtt`XIKI2>}S@5 dΪ~/ξ - z=}|99]p@XT? OO@W1C0p?*jZ&,>ßc͙p×hcjF6 @B/|T%EY?pd\oG҄l@1[Cݗ 2_X+0zв |\ƀ ~} Wу {_|jFa53g# x@iwoxh`-q`'}IENDB`PK Z+:f"nuvola/16x16/actions/squaremap.pngUT \BjIPQux PNG  IHDRasRGBbKGD pHYs  tIME 3WKWIDAT8˥Q=KA}@Z;5(FBDm m1D L_"H8s3c$]{;˛59{?=;> D,$qn9CVǪ_]*Shl l{TPæƼş1rBb\׉K7Ṭd@OWF~$ǨocuImR&skg ҥk `?@p,~KD""^r;3HJHr:2 "m;* Cna&߸Ji Y݂z癗smlVDHI 0H ׺T99:IENDB`PK kN1.Wnuvola/16x16/actions/start.pngUT .cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<@IDATxb?% z >HEP{o6_~vfdd|?P 4X/\j@<70212c !L@0sU4/x>h03 gn~dx @ ??*MpM*R ;μax7CVɑ_ο%L~0 X7`%\y˯:#e^ f}cl@@ a6ƍ7A!۶dcx;+33@#l Pfx7<3 ҿ9$~edx/[`fz ,. FJ3@Q0h2IENDB`PK kN1E nuvola/16x16/actions/stop.pngUT *cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@RFF_ jo\7Q>˻H1,,٩S7]trb`!PVc/NHBD ӄwGwxx5 6`O)u=<[9/JPG Ry')oܹۿ_!6_\?H/@1񶭻^~6e>ov?1HdAý __?3ddbP= W֮; @`e`Y$)uX4;" o(p, /@̝۟Ыʧd@zf7?`9e xx~|g_ r334cok{ݻ O@zH(0 .EB c U: drty ۪@`㙗CXdߎ] ?ņ1z+ofv3\e`s!g!)-@D@zlU+݅~f@ۥf2(\dЯ ^jJ^$p'$/ 03(N_߈ᷜE XX~p 6A?"  VvV^k/3v_Nn:Go"nܺW߀ c4?< A +#E q E $  A<< 6أt ( A&@@q/ ?%=  d 4DMIAqi.3gz$[4O ߁j~pʕ .N~!iY^a>F^>P|#VFZh'7;7Ûo Yٙٙ_ 0Ivv6f--4nmo t?^^AII8}_ ߿~V bS6PͿjY6o XR<r+`b \\\`d߿̌l X@)A A j;  X888Y`>P0 evf{JfbyݻOpm_Ba3ݻ u.TWIENDB`PK Y7g2U)nuvola/16x16/actions/tab_advance_prev.pngUT ZGPQux PNG  IHDRasRGBbKGD pHYs  tIME  NpIDAT8]Sku~f~g6l%ٵI`~P"T-Ux E^x졥PQ BicKCnݯ_~$f+d" jΖ? Ei0X;1|B@K/<N㧥fak0C  ]$}ʀD7& ע^+Ik嵵_,~ {ϕ?>:v/EzQ* $0ARW}sZk`5at`^oJ:/hqf^osϻSR^|@V3Z]]32WvYu9hz3 bCld!=v`q'yvq9sÓTA]GkGwP+Es{J4Ã6NãdvS^rw|P30 Q6̼e299ضT*B.\6k7/,ޙ>NF JR{ӗ JaZ# C8a(Me0VR04Q@Q \ h=1zJQ5ẙě"c4 3öm0rȑCϞ9s AL`N\׵ƔxhQ*pĐ,'du " flI1m;bVchc1f0Pe1;o+V"&M)oݚKkm @[`0!l+&D޿}BPIENDB`PK jN1 +]&nuvola/16x16/actions/tab_duplicate.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd`@@7ᗧX/gde` @Aٜ* b¾yn{񊁙fba`D207w_sp(0(ZYH,ܶ@z!/ȺgcIU>VvV^k/3v_Nn:Go"nܺW߀ c4?< A +#E q E $  A<< 6أt ( A&@@q/ ?%=  d 4DMIAqi.3gz$[4O ߁j~pʕ .N~!iY^a>F^>P|#VFZh'7;7Ûo Yٙٙ_ 0Ivv6f--4nmo t?^^AII8}_ ߿~V bS6PͿjY6o XR<r+`b \\\`d߿̌l X@)A A j;  X888Y`>P0 evf{JfbyݻOpm_Ba3ݻ u.TWIENDB`PK jN1b nuvola/16x16/actions/tab_new.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxb ƀ XXz릞Nnnk9HI+0}ߏ__h3g ԋv .?cQ˖Yڷw>=2_/_! >`2Q 1 fcz#Nf˟ 0 @nl@g0000}I\@^>ԌπW[\Pd|hbmf5g@?0*ǰ70P f`eg?3@A,2 %3'%V $ A&"" ޾'uP &66.NNNp3p1p00238w[ _ \cX-##P/@rp@ p$0JVAEEH2\bdBLR濷?CF\DXih9c? s1ps0:x00A(@,**gZv#X3pPd=?,, @2?0YYYEGGW @`ffb& fecbb d&&D:WTg  fvHz*aA31# bH@* t  #8ar2  FF `aa{E0680\ @,}%6O [ !| .``yǏߜ20QeuXIENDB`PK jN1G#nuvola/16x16/actions/tab_remove.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb?% X6pk-w O?~geaX ֵ/212MS X~dU((񺠘72$ٳ槟?3+)6 jb۷-leL-uY.w7#sGA]Xd++333@1gg~{wEi*0nk=tLPEAXJl#(̐  pF&QMyew/wbp" _Qg߽;&$_ ? @m$N_|\y?fe~3012 4<@R5U`xʈA/ɶm /obx¬,ϞFvvVYvܕxi[be#.AWOR@_ߜά\>ks9NNN^xp5nb_TL]G@Ͽ㘛Ax>`:wLógxylEAAQK Gm4H\D!55>ի7aPSSabf?x7,`S?!.acx+@000ad+@~ LC4 `T5ƅ!j+@ ?+EHF` @,/_~|ma߿H_(8AR#0}+@.<^IENDB`PK jN1Q"nuvola/16x16/actions/thumbnail.pngUT anAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<,IDATxb?Cee]m!FF >H3a @1 .|6m@h)EGG3<{ߟ@iFF @# a`bUPcXlH pp;s*S# 2 @̌ g'/>fb 89X~j i 7/ ^00~o&1|(~+ +_u!Nf&|`` ?@< B\  *xdx/F~1|dfde``d # @A//vV71# ?%lXgGX'@11@)ˇ k'0 ̙_b lhnIENDB`PKL>5{nuvola/16x16/actions/Thumbs.dbUT fVMPQux  8cRv"T,?ѱd"%[iƾH Q$eÔ=dG,byy_OW置\O=r|k0TT4jagb`bbd`dd^¼u-##  +;''':n.6NMCMf 3#37 +=s,f+Ê^F#4 SC >#-FxA $ QԬ4lh!D/)ǝ0pq"*U\Vnޟ4464261=rVg:{x t1RHhd/1$Mz?AvNn^~¢ʪں -m]/ Cy=:F~,_hҾ__Tj:dT Xi6IӲ;ȾYƟC=")8;=g!"iVc֞c_(& 8ƀJXF(w{koKoO_oxq"X+mA~vOBVQey-~g,7,/~o+D)5bp[dIS>J6͏h4?Kq,_F r<%.nvqΡvPp}5 q^t(lnJDi}{suvW8^T4tX=|8#ၺLWtR{I.] s]O~~^x *JRGߏ$bGyWC{vWT:_iOy٫y'pDu!y 8RV JJKx725Q!497$ƖX="aW[hQ(f-s΃jU(ǺysG*,u22Rz'/fU >s*ʩj)::c7ԫ Y5QEnZ Jt)+Z϶F[Hmq刞;ױݺu"ڼ:WP`|͒%kLw޴$*%gZC9Exv ~یT!ua T- #[Nmఫݙʹ.ќjޛ6\<Ǩ=+O: _j[+1aScwO-Qki:B@Tz749w[X,Y;D??Uj?"s?{=w[}0>2gF˫dD_;ܧ:B?.ғډ~kFg\v,sXҭ/;ɭݜa,jKj' v [j|hs,Cf>3?]aǮ2YL;ɺ)$c6sd7:R%'ôSc&iCe>lP^qH|0 ngٷl2$ģ9i(U%q[f;Qe*E~iL[mW򷟒$ /_m|W;DM矊ao"k't+ha3YA_}v0p2+N'dypWFxFvd⴨RY'n lUp DH~ Ă lop $ .H@*_lW2@&x@6>-A!(Š2P*PIW P @=x @# 4fZ` @; E7%#-`#5c 8l'$D0 ށhџcσtQl]d 2+yfߩ:{h86jJmDs¿jl+ѸVůRsVZUv퉒l"EO I73lYWmҖDZ=^Tv3+q1XvU7KfMXsB~_unHiA? 0ߚ=i8.ʱmu&_ez[z?Moc$霭ʄф*s1qƘ-<fF%Fll$8?<Û>qޙi L]|7q֡qThHć$Wgbgxċ-tjlNc0Os@k4m.8wEpeejǿ~ߓ`/uZUrgq#qqawVYԡv[Kwo[qsHڳNjC$aI\T^ԾV~i(i NzbcӽCV\Tyʭqu}mE7Dv>]amt0ϑ]֥o*2g|ICRB V5sѿ% Dy bQJ*CA 3Lv8&K>њs?AIxN<{Yuk7_ K6od&#ɝ’V?PC~p]gyֳ&=cb.xKY8QMiWcBO.NvYR"wgHbq/J>fUl/r 4tQ37+ϑSPiç _ϩO#Q?ϙd|fZ𙉽/=jI%N֑UJ~(-J}jH' FK mϑ)N󉧪Iҭ< naJAӽ&\fai޳hm%%gröw#:^O`/{TGw'P}'!KYZD$t[DVcD8x@BF}\Ɲٰµ8G6r#K_(-Y<81![V|Utlp:>AMb_FyѨM_ƻ h#tVkl-v?25:m(]]{"ْ7p1KƟ?j|k yچ_|[BAD;>sw78:ͷqȳ]_O'AO Wmߋ1e^n Fos?̑W"=F|ۇ,дZz*ͬһ"앦`VN` 0|VO:|(0g}i!wFu-ȇwq*޷rbېPQhOi}`czmAz&*(猗}]K֌i;G+.}s@,ZƧdw/=70hCKGɊVqY~ʇjb{dv&RgZ ^ 6 Nz^`V+فC:OmN!?5rT3yPde^)iXcsZD,f6yQL$9G  ř,oRS'T֎ity-P 󈽊d-<~RBe9;eN=??}a97_K{9 2Q%G A!g]-㫯]Ysc1VWd^O{TCyW.hCîC :ƹ?Ha'};Y6Ho0.媋hdl8[{N@7k'M?4O䔅⺺CULi|}Y`u3M+vm۫ZJ`^qd0k@aSy2?dоD,+3Y ւu`=~ D[KWZ6 . C`[+ v`@@l"~ Hp9 =#(82P@ 8@`Bk ̀98 N pX3 XBKbY`#p798Z,k_x|kÞBY-2!*X/&P$}ӻ߹;6x$(PN3 vمVV_!ٚV`*-_{;_ ֣ߚ21|}k +VZK05mׯߛ PG/Kq:ƨ:+3h|g9KѼޫohe_"vG /GѕzFre{]Hd>YrKb># ߮cl؟Pt3΂pꍓ`A1=ŝqx^NQ 4tzҴwBh;G|[p(1`aIB1QBZpU(X^s\kr}p9Sy_i]C k^sf^~+d^l&WЙ9H~޶'%g].~ܾQ '+tGlQUNAn?˷ݤ*9RSMHFŐIuNje[tn\X_R=ϟoo+UrR(}ݽ2lϜ.Ύ^/7Nyu%U'y/ɤCcŻ5#.d_*im/vr.^=8[yÇ{74kB_AfdAL 4 }D+n'f]cYό\'7M?])%VUwKAÝ) }nd{4O_bE4[Gy40-4B8ܨИǹ[ 3_3h`7$0Jޘv 0džqk.`HnԌ R#>+xx؏$y$4 gtx+ؙg]ydjCL!_ةzţݨiԸ^r cBkOG+oWy3X/[7gm)n.8A=w2F,4i"o =~_z.&3j#q2drs"V#821y_՝+4lm=}^2",N#U#MyrI=%}6#n[ TTFV뤛k~ׯ֍*w3e5C],̸)m)-|]z]dǭ*xG7ol-c_gpJ8Vz[;-Ӿ=$KpBxhC$$$ >f, r@.)(g }K-T"A5XW5h 4 @; oA7 >|BU0` L)@ }?C; h_ytC(~Ҏ4;l]lmSb07D`xLfdIyrCʻ+%"JlϽk{tg%pCGK{TkgXeQ1) 4IA~PSCl8X4kqjg6FEk]lNR֛*΍.uRv-|Df@?sR]?א4B%mt׭/UKn-wW:YV^ Q@edHO.i(}X J/Yda\{؈!w{5̉I{cتEkO=2'm}Yվ{;u_>&RbsܧJYnrlT0k/%Gr^$,=ep"#elbqiʏT'J* YrKm7;i.V$ô2̝ŸT ZC -Ԭ8?VMEEqTzwv\.ygd^h.v>R\f0T|[yՋ-(7ODž6 ;+fEje&JtrfҍoP,slF֕:ƒ"ʇPHRE*z)LB"Q'e߰d߶=~+bw?E}qItbcdؕ_jƱ`XqtdÁ\ SXeaX^dܢ2VG©ػhRKJٍȒʖcͨA)$"\eIud͒}EYodp(Lﻛ~N{|y7<}|yk^PH7m }ٴxtvk߅tb(72o']Պ#Z&wu$5lQVrV ܮ`?]ڏNPf[Ϗz~O|63]t!{_J|! Er+qWy?Zy~"摒.j,yyP1:s۾Q(i`;J>YhBtj8[  袁>-wD!IxܺXt sC'~g\[sG[^kbA$yݧ$>k^mX:v:S9N#S]C%NFO|r}GS/w4ƒ,!|x6ٙz,9OHP/Grdb-&V?qbzq՛OН_ o5fJ&+ "$Ia3}Zb]*S ^jNY}d ґ)!3O؟-ΪmiPIcUI[S3Sg/DO E#)gT ݚg^|2:t{8Y::fX.3ysSn/~A\&^|‘ AӮ7ғM_`^/J!^Gct^0e^}J%LWZ1%<;pk 9<'H؄6\ |xs(>(*w9Nha_n,ԘoRUp6_!-КQs$w=/KQVv 63ɪ:M i)MEy8d\ lqnx] Й#OZ;Hn>U]9>7m6<F>3W ՚ :⒂Alj{ؕ+^Iݢ!8xdZȃV9yډa)Xze:,_J%ѻe muYH' =lΩӎcޝl/8 >&|lۯ3_xwC;pū.dgk^n򐿼@QHwxDAA|{GE"쪏~dC~.=Z4ZF KoVT NU^ލ lN~lZGHJwЦ+t6&˧]go[҆WZwE}fVeޣA٠LibE[4r`((N8`$g}JI**p5ضw!+P\q? -usK њE=wV'%Dι1ԫ'2 /?VA/k=uClFlL ~̀l&c9 p. x/` n( v]@1 4 MyPͥ[ڧN pYb',1 7I %D@L왶7Wo,8hw}ڈ$R{ʏaBQdLzsvjԭlJBAbX"c†tǫ]y<9f[ͼ|+*hG@G̾yiɍ4 tag#RxUֵ;%?˶}B7нSi| ѴOڿO?y{^:&&BL"5 =v_L ͼ̘-،04./F/~P3-74lE2~7;v[m}̊ );J;>i|3.ƪ$f-}YiKV#Z;RGgx Ej:ف["aoZŢxKbyF7ڠZW$zŰMolkVv]H$exȕ$tq7bmZB&ja>owS: I7D'pf4=ޒ {ە4GjD8: 6k;T#ƊUk6zzWe'<ğo|6CH8׾#IOȿ/?>a?\s~$f]3^n8=^g e3WwKF%EϪe a5vޔʁJ@'~^SHdG$ߥ/2(?mY?U]UdxBa@Q^Ň"L͛0s9Z5u\4^Kl-L42R*dP3w*m v`kvUD?;$ibHSWMW)&b_OmJnE[q+tִ8DM>jz?=VK΍2J["iiyVZ$Uv8n5;iّ~ͭY87x Aօp&^e+>n?ZPZ?S%+w)gwoDMqT{G9w&\(iM#Wϻ/'{yqU&9Qͥk]LJ_ޣR(xX@$^7%A2S+x6K5 awÊHZ/~ Q5@d yB)0)Ú; |[9 KN,sKs{;޴I}ܿĐ5n0;kIt#9S~pv" 3e&kL}Ws[ylB9Z31 5FRxs Tx# ruKBgIM=Ci9ڢh!/kͅɂ>mnSXIvPb:˪uЬJ'#;=PuZ'"ٵɽ|ܶ[mS7w@dn/݋]OV ҿOW'<Z'~|~-~?O7蟐oڿ痗M>[{b?~3wgIPNAma5Wȝ-]4јL|cQ9 'zkn wD? "{l#lgP5*>s(7ZJ8ԂK+MtG5VlEEYמ: #2rJڿzD< ^~ǹ~5~5#נA^ŲHyЪ?z~V-5mz,Β"d\hZ 1I`)vW 5^T >[fRd3V<ke݇ﲕ9>$Wx+7j[FL$J jg,eZumv_w%p_, 1k  0+!Q A q  I>H) t <Y {yy <bRPʗUBՠԂ:PhMyy\/ @;w+ q Ax ]7  &[Li0(P‡@R]E:Pىf<sOyE˸ƿ]ceԎ.08Rp1u@K%jvkƻdbyU"[rD|qCp''e(%"pE⡽2&:Ms3y*Lok `U_m.Z}"eprVwa-tK[ 8Bjk^T:֑Q/'p 3T[5,7}M4`,pvG2߽v%^HHw=[vYYAm4iK% T۴LM}ĮI-˼E2V5 }mZs[]k q\K6H.jhps} o~- _!jB; gmw?ė)#o;~/[S\e{XVmStycrT|CeXTr=yamx!Uc*l絙j z'}e):fwBFA>6s??ɖ+b)1 r'Vn $\DNuj]Pi|JZ|QҶ𤣵ęUFnI1~ve}?9im$ﱈPF T H6ۏ R$ٺ%p7p~| GQz/S^z5:2i68ܹM;ߋ2Lg>DW(rD7=aLe,EX9q0YV=Mn=qL7lh1Ͼïy$5.ʙPy"߿K?A/-VA,Ci~BA#&s@<~ëx#' .-'zz& <IJM(7S]E1:|lL ^Dz֑M[<ͳQ˺:iK85Z'Tv(t/ǖCFcxPx=&AvTcwd>Ig^{BÌ>(enVOdbAڐ}^FɱCC}_0+@2hVWdy+q# "{Ɲiy3S jW ˇGbt{n|^赾=EAM}kj8b8B'sQ@$AVV|Tm..;u "xwںwK۫g]1ܹ3L+9 붹'TD{.3",38؟|" gy",c>E.Rي/asI?y0܋0<3x96w>b}ՒۻwjvE޶T R*YA(HXɬ 6{tcN%T*PwD%jH|rr7C3 W;Z4o-8v^#$IYW%yߣE%-:k`ϢWoE6?ʈJ7muK`º=gM&MvwN]2+W/ߟ ܾ*4مŒoOf.0 |vဦ3zs> FN+ZxQm3#9,f|:O~Qk;ե4Z RPn>')׻{x?sE ʮ ͂T=sƩ&te63שyx< <3qvTY.xoј\\Xܖ1hmh]_O-z E@w@(.hA 8RC$ R@ < <OAxr3A(EP *@h/A5ԃנ 7-hMQ  tރ~0`q0&Ly0 >O`̂9"gNFBxvA'C}w}Jem͞A?> [=G!4+=~L, }l<$ٞ<dѮyGM01<6X/Aɧr·ZJ75j7%)vfR(*c?zy)&YٺZΛ$j3سP*9sJ03{zz$йH y2W6+_fҫ)b5813?/xbvir~~r*7iO_OϿ҅my9DEڴR{Dy\VܦAʥN"ƋZ$KNnZX7`w1+5K-X*|]EG]w_Sx7U.(/2fx@xP.XjsiJԞLPaNZFSz:Qw9Vr=e_c-`"c)8$sbLfy\sµ bZ"4eU&EE_{o|(Tw'8(y䥖mٺ6D%nRګ$2Gi -X\) 4sFnI{"`e)2[{Ʀ]\ xb2e29XG̿SZ(V8\WLN73'OΖ7">qUDoxztagE"ZYƶS2T4Jm٭RR:~}&N ذ1z R |Z(0M{~'~; ?]/km 5B25=n |ޅn  B @qУA$ Ă{>x@_?)sys?~/Pyb(ʁ /jnmh&h^@^7sgA:. @ x=01w`Ɓ 0 L>n[u>/",+vBC<ճ(c8ED M`s4)ApoO|Ly02}F,lYT̆˓]Tm) X~n ;J?CkЗk{w;{u4cmjK\qO{\P55ɖlLݥ9= u[t܄qRto yxg +޸G=xKoD2vغKߔ~8@ܝ2p9x՘;0Hp YNz"Z\&Fn.C\\,jl|]weo#yXR|!5nc7vHo8Σ]澢/>s1~oCL9%iwMhmi[72.$7q#HKIHoKpţc|ۀV,G%?Ar1 Vp%G/#$>6>`9Fyw%%gH!g)t^`65tP5*x0( ޶-;6%܍Mf󋞘eumOͦ5Hbtg.3c _2[ʉ\&w%-ԓksE蒶q`s,bԝпF%?4TwF#5eo!”}1r G:(r݉{{#BqP@F=牂."9ˬWHFGA%8L34W[dl@ɽcgʃ)[IJ~)2& *J]CJb':|nz1Ņ qϬ䤚;[6[I.V;z6(68a}FUWTDW[/Dpx^*x/vmLY'UtìngΎe,I䪝fq^a09) ejH]f]tν)U2 $7O5C1QJ~UФl+zp ֑T ׅ]2$TG{,;@V->^vyXD&\~mFk'ToKwu7"GL[kzos=CUc\]XtKnCՏ`DM:)wr>T'26S1OטzU)s#Ͻq'[/JmP ~Hu!UA5D5{t-Mg[_TMGu~0TUvp#WT uQq#o>(6]bF_̪,}TxzoTؓX)Nu.#0s MS{-ϳ`wmoO/}{Wy~sx F v``v|}vHT&pޘ*/!@nS @0pyT  h٘g.pN`\~ 0L8 ۘ y8N3n;pؘw To.~e\@ hc^0h~y<^:z曓fwة O5~57js.H\cw}&ut 00=`N:\0H,# Qs8oݜΣNX%)XYml _+"\6R 9$FQ!CF y;FHKsĘcg\&}1]4R)tq6AWC9^Ap.8AĄ 4" UT? {,\-yEzC2n oDܳ{,!݁&ˁ۩p^ *$Awr@\wD5v7yuI#-TJEa):r@؁1f̯i_߁+!?zBiNGkN&~PH F&2#:_ <~6%gV; E5g볹O?J~μOzueciûJ/1LW<<笵DtQ%6"c3豯<"H1O1N@6JUn"Cq߰]gJUƬNB}aTn\q14̎ު5;()P>Q_N.ӗTBUƑV*izLW[Dzy:nS{d ?hj b 5A5DE-&G- &+?po B/whܾ bKE3⵬A4{"{'@?]85]ꍡMms0:=DVEKq)d|rΡӶPge`]Vk}5מGM`T* !g4Ljq?sVFF[H!tp%^>^q$AI𢾳 ~Cna6Bf}JPlQ3! D>jS/.rL35H26:rϿNV5'^L  0*x=Ƿ+'tG eTϩtYMaHN:iֹ;˜(oA1Wf[ז'<'=,֢\hː_ԠI q_؉Qx '96Jl%a*6LNj%'g =%Zo0Q?X3F4rq# }+[M:G(њ*өL-}?+MBs…)C"[q{mS/]i k89#b KzMIos/X4WEB"/N>"]+OSLiMh{W!{Sp?)L o?KG5&kNb vL)9| #[9w0%k®B dӖ-Ȑ-K^M_#Z^-Hgg ѫ_3ePv|(Ke c'uOz@\{^`ǧ&>r_Z!0ԙ&(x V_&FwOǯ?t@=O{ IpZn?&i~o}HoQMM{u냲~Co\hA화I77"I>}C_qj*S0( (Šd]rPJ T5%xЮkA 67 4 @;oABn=~0^h8 8x0 `.P/?:2; sbiSHϚGPtW}wsso}ʓ.U0<$O6dHB[_]~S Ai˔{Nak"$\DQi/Ji,dXU7j3ثg=PX#>nn&;=;| UK7_&5sqkW\Jt:Lĝ^c&}Cg?]/tLj@W=j"Q~ҢEf̽'9gE]ذT?4ZP\I@aQPpƯhtUt@\]'k:CJp/ҏe3bJ=8S-+IpJ7q Ԅ^|XޝqێSy4֯2REp=_x z_d"_DRȿO J%mzH7ȥfh-*sR gcM; XJ_d-evzQOsw  Ӽ8<U*7&fJJj.{a3Sztqpj'<פRՏTE q|Ti;Wfom,gԌvAoTȐ2ܮ2⍟ϏʘG. 1Yӗ3Bͪe"\Mz7qdw^GtSO'9>/"f= !̋^0W?F׍ZJڹ 3Gq+ᖫWDo\՝8[ g`}nYGF)89x-|WhځrAT꒽@s_ XTC.ayrm4 tw/¬°*!92ܫ?84fdUR2}o9~HK_ig=U2(?jȿ^C__G/'#?M?S+K9fP5-3.DH) fTﷸcBL'+7FNm !kְa  6QkuHw T N-r@#>F)+bq s~뮖cZ?& z,~St3R-U]Ɵš2Z4ם}w+ 2T9*jmh݅宺!u9,98jYnZpmOŰL]4%VUy*r̽ ngOvYirWP>GJ )⤢7Ujfit-}7 nq[EyJګu-0\>^4JY/\QTKt)- Wi`Yc=UK=9Yʎ|l͏ Bgӭ<$\%tD,b;m5MLs=*:KfG֔Z'Uh=ߺ,R&ϱcWn ͮ7jgvƙaVӴQ=.F7 oI-%C!'!E,>'.ټe~ ȏAD"?ȯJ?~>/m$q[Ct6[7=bLk_]".|yu{ v]IVąqg[z8K_H7`D(2R?ׯfp̀P{N=IJ.䛫[Qiۥa7yh(-DJ'\)Q72f5ӍGrμ?3ZUc8;1I θ:$1D00g6AZCiLHaoVaC~]'TLvV3Ȕ']Ch}]ې; o}xeuZ,;h :GM-9ɌfV\V#-)LfW<=5G팔{6>P:q2ˌSqFmkzz u& \7m (}'oD#DFKa|pޔ@+OW~r0i{>It7tHG[x.|Y'/1z'rFj΋c={L9A gJ(LT ^@>X;#%=[\ycy]CL 96iZ8Ԑ'iU<fzhfaNj%۫ VThliHT] I(BBFYR!ʚ5BMiD]ޯ6y9I7踲#fób^zbc(Q{i=1*Tr3=%4/-ySԟ') N ?ps!!"a \ r_+*un āxpk_"$ R@*H2@&Ț.yA(Ex8ۧb)(c P A|j@-4 A3h^Nk~ Àނwo4o 8߁iAfW<$3념俐_6ߟkHϭ3LwB&/#?]?2c5 >Z<`!O_sq )mʽoU {KY޿#M%٪ gm nn|m^uBBތTwiE@R™;`a\oէEp^aU4t4Rn5`Ɔו%VRQPz &yܳ)n?V# U58~N>~"_~/zbwVR4H,WC9ӝ֣9hyū؋ Y 14ɫ VZQ_8',:iDͩ6^Oe-ozkޕ wIyZi9F:آoLB;Kܝ^;׵ws&mIPȋZOt)yjKqąXeHMM諍-3g"+ cc|~#ߏ LI- n<2zSu*: tx+#Vyef ,#WfGWX`- wM QZte R<+" /Ұ^ny.>X3PV$c#`u:&v8O]]X)=_rPP" ]g=0η侩 W!GYi_~8:oP =6}pIGGidH/*t/±U7TL.뭝؆ݹ Gv)FRِQIUH%M.48ڷɞ綖SPs`ݬ\ޭ͘.[}lF'S8' bAh(ITdOEȟ Y #12G9Fl~dMͱy^0sAǬ|eܯ|0::6Ш\3- =^{Ypyxް o`eF 5@2$X% [9OUս;%w$IᱽM4gEZkQfy[|aяVwzX5d#5RYwi>wz3IU7M#Rxkň8}vFf^~ŃT91}ECrzAMmۮA FXs6]|4$1ECuJ#x4"/Z׾$tG$${9Ϩ{} S{`)N dZt YynSC$De 1_0DtS۳6+dp}<_&0 \&7_&|p iZk5hDz,tܕ0I x-P*@ uct 0`` X~l\^ ~ 0 Q+*k"`X?Ol@H) d& 6lv v(%4x]Rr&O M 3Q3cO֘af22%# 97ibNAㄥpHFDhzV4*l` 73B)+/ި-W|wwiӴLţ[uvӣi#_ں=-a GieH~%jjoe(dͺ\VH^vL~C=S]ڂǝeɥU̵i7wҢ V^ϜXhVq.v 'eL 3\G`#5JzU"[URh~[Y$6SEEr7ntf{ёx•Rb p]76;tn@ K)rm鉍/$.ΐ?jL啼 %!Ł%kvcx<%M\Z !(JidF׈KMN.̰wQVcSK?_T[vu2oXIJ|rCv,Z;ؔO\܇?B:$=`f{FeLRQ&T}Nҡ#;v-;vy|NYQdb/zkjT}XW4{Vfqr?`{ƥFOpɲ5.uz*/P? ~>5Ħy_>A#/_~A ?wufO4VIXS6U;o "CsZw)VM9cVGmL/x{w \'4*mdɪ{TH,FݜVr1+V[p ,*PGWDVuG Y:a}0٭"nCݸOr3SVȜ+L\oq@bJ&fr1e."P]E0Ө?jߋ9*ơnae -I!Nm*n 폭6JW.[\yMԎ~Fw~i!MUQu 9jwH:7PS*zZ?Uvxኡ헣U:dU#-OX F +rx326if .gm=OxŢv'G3rIz9sX|#Gզ>z\s#s$L_]jt8jFߠNڬrB FjX:F#7ZXv QU}%Sly>)#+c<^$EQ++쵼!#AC;@.vܢxo$+ {@5K%`_kғ汞?\4II64 !I_g yXV< ? A D$؇yb@H d!` d (PJ@#@m ԁZ05,0v8` qp pCP{Xpxo΁e|9N a3n 0ŝ!e? Iy'3(Mo/1&X);Ah^=R"KG^#(g crP425LԊIeԦ;rwv$Civ m`Q鱀ro1_ӆrCeT'}L%'v?6Th],mZg{m޼o8Bh$}0__ׯ ` 9Щ/ Ϯ@2^[e>8L6_=o쯺Ⱦݾ^ށ0( `L)0=nJϽ=ޘRXukޣF"6~YQf s4asvtFDقӮr(si72l+R kr7)p2NQ 8+.[?6+p9՚>YD#[u%M4 J[广Ɇ^$>VN= \),ZX1qta /=j6 _1? 4ȕuvp7=ablq +bPq )ԠeJ(ї\kmWqA.-eMW(V1%Q]Lmo8՝qT"D˂C>OX+GҾ)Ԛ?odUKw_i^EG"5voڕ_LeN8WP3 GjT}=r[Ta#6.#T`k_yݢZj;ڦHd@͢ky9 ˉ]^cjG`Π4IkU ѡ/=9PQВ77^Vџ=1x"iё=# ""*$m y3-{]Ν玟?#~<Y S̝o!_B?do|yKd /R?sIG9rn W֟OygrRTiHϫxօaH볺F^bHl {*%vIt϶ӵv)M_kk(^23V>mp??G>\eOcYT`6w"vӦW|txqzUy4r@e3r[fUN3ً._hCkIQא+ZWsuu IZ//:r4:ĄRp*t(Uц^\WWUm Ke%sxA և,_(j0PJcNy-_ u_l؝'?dPG!__#Y Oe7~?dԋ п|w{|fPXO5dThhD¿O!RLKA.`.!sf:VgRG%f{RUj~\*Ewq ONRn-LR+ulG3ԩE9?)ro;vܜ;Ft /z.}+IU[~!1HҰ5IȚn>/ҙV,f0Xm%MFSfYq-x)}R|b{ᱎIQU&̚F\+lf H%Qy=knsNsI+urdm,0;?Kv= y\F״BT.WU[ erF1ڹ4m~(eR%ٍ _~?$4Dun~pMt%C}6=5#a^|SJָ^H d%75isɍ>qq8xr>NJ=5?r+ZV s*@(X )挭t`X6z0F4f,ll` `[8z `;v v>v=@` B@Qq @r42 8d8 ۩@y54&8tۜRp#` L)0m,|W(x3 xsbx@S>/cILP:!t]u"h:jJ&|skvwIiRM0t#+! ! Gj8Ĥ+ݡ;1') nݥcƝJi[*Ku?|e?A>^i1O# _,ϦK}qTٮ?Mr`浘+Yu &jef'*fd}:zK7cĀ̤ԻuG>$6T 3IeвVzJ*la~O[=粺5^ ptͷ=i+g}zNbNvv7jZ;XuT+Ye:d{a'9~xQ3N>zʝ*%*v$XODdH'H+!rhơ#E?j=Fv6ЁAm:{\7,F]DevWY/6SlũMO5");MY'{wM74[" e%!t2 Nr˔)H5F's)Sd!CHrq C1yG{}UV~g-⿟gg0o?5#y2TOlPqꡐWr~tJ׺A/ZL>xQ5MvWH'? #eK/gO&a jq>[$H9tFߡ79R!6\\,?}J_x_RL~^pC 0 ʈ;Σy%LFJl¶l2k?3U;ɕ7Ps`p[Q[m9}ۢ͵Οvw9Ke9sL.f?mLEHګ['88WU`3/?%wI g6Lso z-+mw`65ak~ݖj- ISs/N;ф˼gʐ,`b̽bL]z4qU paHA^3װXQwrKɷ:Be':W$q}'=F^+]Qtiݤ!~jESv/{hfWˉ>ylA[Æ3!Α&gN!ΦVڗc3V6СB!n{gJ3fi0r KfYҷuZfE(5 (#z"-ȳܬnOB%F݉V G},qTs 2W$Fʿ{WX>Oy]~nlTbU.Ռ:Kt[jʸORgoۯ;Uxnwsb%*FY*mڕh3~ݸ¢4vN js)yeeyڔ'֪G~#!312ҽVO~>pl`L /'9C.P 7<'ׁ77n/~@-p;.]e@1 ā < LA Hi dLdlx^.y Rls( P T?A u~^ 4 ^6:k_C t ހ0@9 8x&$D0 ރ0\oJ'?hޗ|߀c@|?{|dG{/_ew񯡗#߿vyd(SQM6zRy_v4Iy.}p&dS&vަN+1_[B]~}יѪ#e!U=+GO+ּ4x1?R-c\hN^q=u^rR@eٷ+^  *2Mn9Zjپ^2yHʿ'Ͻ>}jBm |lZ;G֊q z۟c떧ð`$Vk'tN.qJF}QFե3L^O4D˱:ϓptN϶^(籺>^blN%)oɼ!"#$ `}?U?3Dd.$A.گadV_^}9. L[kɼdCGsM?S[u{ ё}-;}}ݓmIGh5.~4c ub[27E}?BV"m g!qt!kCOW!#kQS|~y ~-/~$ oSIEv1rd UGz#K$uxj}‚'册1I# _oȅdڝ$Pm2O2NZd0{ ҹv 6rgX`w6.wFPG:c )Քѿr?J]uWP΅ы{K^}l??l%$Pvv'a5문kiE.ٕfXTRjxmʿ,W@1/K\lmSc(ɺ3hEW_WwM\w$>ۥP:ru 7sZI? '\/hMI696bEbsS+=[B-nQ{8BNR,q?J#ưҡW?UU.᠐y'ۗ=?O Ѩ/ބ·yCWC!#/yDWρ8NjInk<,Fɺ %k9I捻4?Of"4%AETZ?3N1' A*eWwhYJB땥7^:BtផiUD<0:5v0Ϻ i<\B4 ,<2pfguS7|ᴔIDOfk4%n?}][K/Q xzҬqX!]/ԼKq.{||̤[^QKg+Y[{ 1F.`Q&kbIIhBx4e`gVY$,0)HZrz?Pֺ7۹[:zɮ;Dbnb ll?o.>e&V~i/.+_<@~s|iMW~ GVU`5 k |y/(ׁ l+EрlrP& Xv:;8'܀> Z'( d~ $$rY(9p8 Gr=e(U1p$8Ԁ:X>_J- t,s<_g0 0fXX-ױ{.G.gp|hwfL E[#Mέtb]g%T{P.<3b,c<⼌éʶ3pLsɎUQnު E(p$֌^4 n1 VЋOћAL #x,P=i%cAs}a-ޜ[QvsvT=c/O6# ! x>fF 뙼yBX  wN7H/i/WRGNF+t&na{&L}_]mvd{!=eazzx5nNӸ (J¾ƽ7oa,Es)V쿂ZY?TTKfO8Y%\`|s Ȯ!g>Lts4{MlPsشmU%vF)֘4~Iʟ?S+g +߄ϲ*SLQuNE^7W`op6^(K\Ln<-XkU]79!sҒ,cq(nWBGTn0Z]Qv-,ns ,g6D"*}*oũ^ocnpGHe^Rs̬eQg醵5N`5ۤ_4׮CCO|F>"?!>;ҧ%񫷿ALkj3fZ\CKlo4Iѳ,^Ճ.ucЉ)̭ cS0n% usŵ7VK^uՎf>p)K;si3y|R V12L1{.)J>fa}ȥkl,=M^Xʸwm뉌봆Nދ⟞\@BLʿv;toT|DT;>+!.}>Yy.?\̸ܳyWA-N+^p;#mPّ#dwP_mD BPBʒ-[̤,eeKC"6D"tS͵]EHH.)!YR2YߩۭǯS9};gszyyy#ڒ-Fr({:.ϻbcm7H]O+lm ½'؅EdXLBH2G![fZ9fy<Ta&[}z[z'8rz8(r pVrU qj_fPvwW(]||/V1SB|}Qz /Ρ 4c Hwn/WbPք$ٔP^(W)ԕ2NOC?o{EgxևU#+Y>>9j|?υ;F83l؁-#Q-cƒ2O;0JLg~.Dש;$0jSlWf9HeSJʶ3i]ʳYD_gʆNU8`b I4OeUf Mh3W0_Mw)rC[k2_5S"ڏBYh?y8l8$Tt'lze|e K^v2W|V3{3̠a7W- Ҧ )QZSq=$cϨEz+ȾP:{x*v13ƃ9;in&!heދq4KŜt@2F;0Mӫ:aEoO9>S>p \֡Khܣd>m _?P2?;Z;I}Ǯ"</[}wW2$Zo[l#$fXnʩ9.RN㴱x1PԇSYQuOn`Eg?E3~_c.8K7v?"@(P" F_A12q  Ԝ$WoH p` 4j^?@&(s@ p |P@ͻ2pT*j^5ć jAxc4FjbxA hAxA]Լn=C`y#߀Q0F[ @o$`CCdi_RĨ4ڗ1&Y't\]YLJq,\xY#5[M Ϭ}5 EC~Jv/L- v^aN5<~v|ݸ!n¬X]><~lZ8MnJz.a4h?==]5(K5hZ~w WjٔxK7F~ypX)$ܿL@w!*+ƬcM?43Q]؜p=ݧ3kͪjםiʘ 1 pt7ޖ9awc;/ ,~B|N(Puʇnf^?iw)QL5maZ;5py凜8"A}ο>e\_s|2kry_Q?O? O.|~A>dpaԂGZqLsGma8:y+9ɣB%9(`X6?Rzmc̈+2o坜S[~!%(ohczrwː:әs݇rBϐ\:+2TʶƸ<{frJ*A3u7dvfI;z{Vj5-<ɻ583euvdhaƻ- B/EMES'|cY A6 ݑd\aya@!ߍ{#VV~ak44eD7}5!A4 vnYvi`ӧ-mږ[8 Ә.gU?{*Seb*8!bq{U׈Yp痯=2p)*E=[NHIɳ`4 Q)99z0FSpspYB(;`j#D'p8 ܀; <_8My ?Ri3"dk; |f}jƦ+dqD;c}]a]ŨS@i?sk;/4i|r?iuútoխPa1REx~4iyAI9~%o|ؤp58݅^jb`:]6bةkDCw|>|L9}HwW~$|q0qidͱ_4y[v~D ȘWtLpF5Tӟ08(?[1ScVeKdd>k'X?i3cVm.֦@a=R_9,fmʷRu%&d5!6\`gZaGþtYz_-1OñYbLx@3^ {.[TK{h'GKOKןimo!ҳX=^[eqx~S hm'n(?kUF3 /H9yk#",K2@ =`? ̀j\ ;X 8y\nxXF D(Df @HI ij,D9 2P;*PԼ]w hh`@0FSpsjaXk`[p`8@<8 pnxOE|)NIG6Sn]W'|R_ԧܧW'ѽ^Ay#OYsP_|aVOmziz1M. nZޠ,̗աux]K>Y﫦?=LCFt?D]^L1IaEsH3Փڂ&|:YPOCk8vS9q(g|ܥ(}l7 MFT6m zF{˟W&kiIJ9n{ ?qmzKslַ9bkȬ_-$!E5ŽBf;-V% kڪ1Skc]t"b M~_UZ#mdnQ?-Xi%]wÄDlIq;`p#d!)F?YC}Θre݈j`_w|—O=g<-iEmo/7j><;pu9:P'ZKrԐBZ>vd D/,jS]=]Qa!q\a鉏:k &`MY_FeosRINYaJS@/T/z?kzKv\$(uXYfƵ1KZ3 mq")oo?o0w?s~R_D9xחRʑ.uѶMbҌ^O2Y?_M36ceÞa&=`L'Rۍ3:sDhe,א«ۢDͣHGu%7Hk{wUѴG*)2-ib)T&!){(R-"K$K*QGZiA~sx4RnϽ{ӻ dƲm}7R3//K- Y&|buZQY6fIFwI){y:Ymڑ ruijQ& 7տ ~{_ڎT)ۏ]0-p0`CCjpNI8N . xxYsp./]E@A ! ! ]*Hhk A<$@"].MHTH[!2! e!͆BCʰWS(G`ؼ0Ͳ[њ5Ϯ7IļY-7ēgXv 9uV2Uy;pSb>[>X֟Hg`g<׫<ZyR*E`My-#{|Z>mO)?:wX>_|`S|_5~=="l7J.ƾ=dL rqJը8ߊ 1E^bT; Ӟa49=*jl]I&qG&gI2&7)d. 7m{՘cH&٠Om\| 'Gt JcunCH߅48:rAJ2-:=.Z֖KƟ ux8pQ[8F7l8p N ]xxYsp./?].i \ p"2H buq ItHS mȀLȂ;p#́\x!A!.i (rP Ϡ e^"}j wH#|&hoڗAu sA7L=>A20 > 0 FX0ƃ_a"L0.743`&̂ 0<bXHRXa]N*X 2ւ, `#l) U͠ʰ~@@.thNZ : ztCF` &L >0 tM6<v6Y!K#P9:NQkꓦ̱͟ykW=UߡR2N+s.w|6N\@'K~[)~z'OY38Iu;tY,a[ШBa‡dlZ"{5٬LcX';Nk*ŗ8?8pQ[8v`O3H 8 4+py"o8 >p?t?~ˏ>?!"y#`,LKUT{\d^:c'CyĄY \~Z.jBs>zDi"R<^Z>ySAqϔo]9fK#+&iy:,A-K$I2˚Sc@)PG¢ͱ}lk, ē~Ujɸqqw6k { c|1cۢ!z36WUaJգ]Ì^@F/EѦ#c T)RΘrj(aY:Xz8I \4m+ސ:;va SѝdB?KJP85=Hf$''!h/a[ߋd^Ċ3[ߛd /.`^7{U }ôU#ѽ稚OoCO2S9;@j.pwRREղ{ZԈcHч׏/*J]yH}*VIc$54{=:ds`Q娿 MRg&`$PvP!$#kC݇48ꌡ$ΎosNaXD=l_J u]&$6]gGBLLDDͅ 4ʘԿO/Van'VxDEl)KȜzTx%iϨv;n_?6]lL}`b {mk_Ox9|!9aćS SZ,cy1i<:g5\j\UmTE/Tӟ-u|Z'oo}3ujpܑFLԎ3Q%G5$-5ZjkSmz L+/OTkca}ꖯG$|}KN58J FJtxY0(~Y`9 YxU}1bU2"$3OQ%zgL0ErS '=CH3Oz*D$ Tjp71LE]]4Yþf>^,'i9)[J%y}C34buk+w'dCBRz$-=ckrݤ6 }ŌB]="N%?=,|n,U7G38;lOxʺ4+vnjͮ}|ԍ’[2\Rp01kVQD/7ۮ/~ ڮo):Wv6]o1]UyDʷ mgc(mlz7h;/GzTrm=[u)w2le%;Ue{.!,#3-}n`r#rmգ3'aY69;muZ.R $rI"ICKkk! p [8v`' N)8 . g< ,@8"@\+ H ":\Hhkp&A<$@"$=HLH4p2 K >@.E>Q3>kKZ-cz4$WBܩ әJkM+Rncmijvs'i73hxP/#G/He&_%w^YA+LQd#FZ%oz~y;QTQxc tkcA*E3 > }lլゎ_Kz <+di~Z3rTO% (Iߞ.Pma_VR)LbCoc]x}]2vK? 7 bƺ*՚*GJFJl6Q兮 U9oV[ʯ8~Ѵ$h~lʏШZ*Z6W+-뛫8;{zEŴī]mן~]yGy}} /G֟bj_''c?~俰~?_kw" 6Tg5Cr]3!=#rC+^Za1eMesy7ؽ`pIM95gl즽Oݻ=!.VdV7:B o-!g%N~nߵ/۶bARBy2'{ɔ;ݺ{U+E-p^Y`VL#tٙ0$Z^ʭvesa.VEj1Q^ l9ieDi%Nͥoc < ?īVGmJ~k5` ww[wx՘yc4pd {㾂cf͢ee#n5|xp'˔V? XɧѤnnd&|igm?+q-?w%Pokȍ.QfMֈ$K->u6(!X:$V#Ɩ0jL}]t=949y;;==DP;5#8 MtL-h*'wzІrJ?(i7ZA-͛,8j(DdK })\ʕĄڬW&KcizdoQkmLPb|O}=k|ç32G%U)LxWjDWzO`P}n(\OӍYmzZ&m\yGffSqFl@}^ڈyfah8^}=/w? ~0zFץu6Pix}$^9jC2WqIvb$MO"u'leܟ}B}2@$GOZi{!hZss^81n+RzGJkZ/Ng?D_MIxI}7WwÒ{ZQRHƭ[FLix׸:AADSo;aG1;fG;v#Xt([OPi^3k4u1Ղ^|D6?j-*!>3_ U["V.t^soQosQZ!AOjLpG`x 4E{&JObߢ̂1&!'V@2䪱~EwzV`ziGVpz%SQIuXmKUbNtrD3_8"D=i62KDqOR9`͚?ͦnIt(C%SUn&<4̆>fLGF~e2(+S¤*y."ymG7m ?cfh𜋣مJ w({ ϵçci]4F05ww+2太oؘ ihfZ0Daê˛R+da7aA 8G*ZԎA;$D 6}G;k o'c"F?~~qS2+U6Xٹ Ɍq%'Pʀ~dh޿tlv dUK=dq1hxRQhrJE3&oq`dhNJȒ}K͞}aK#,F*f"?y/Adůl=?t d$Nz~{-VsLXDs46@A9T2 |+#@czboޔݿݨA|iϱѸ+i%Dǝ"fG6NLmPK&mfBR 2]e56/)V)^d>MOj`[-"њY+tc]V|Z3g|0v |?`gy>)?c}PTgxlJʩ0S%&'}##@'fӓi=O}?gAcɥ3QlT:K>R-ɾsGmx_{;=ę7<9_/3Sm"SE7M"K4z{ѨBpscOkmh:QY m7jiCl 6n\#:t>=i=\5+(}J#Jc5-o7a wb(#q*CqbxAR`|1r D6#m ¡w6s}{[8A ~(3qL.G.z3VaH",t:;#$~$czU/aC*;ޛ L8*:׹z5Iz y )z3݁"01nV8Qzt>56ԆG'221~-1tH^ 2~+?v",} ~(oHV*#Huv\nbװhq̠|X?ɍUy< ~B?؉x#a>vj9ʃ1}9y|=ؐns \w}jאr!x-8JSe{G1DwL?R/f~'*׮2H5:99󫃉fByZg:3gO,+['ۻ'| W|돏/ABd+R/W,ƨ`Xơ,^ai;:~O1 /3 fDTNx9*T$7.X͕[? ;`;;*N1wc%h?,U-,'D)8ʣWu+ĭR3h"SK{өS-"5;{D +v'N4ґ.фI T{w2p+e tk!'U4]]?\G}OW'Ϳ~]J=Pu=FswK?\+ -%<޸YBӤ޷\.PdZŏf{*6dXAQq)d; '3%@kK'ӴA[:kZ;+'^"GU/˸k"0VIZid5uA!u{/iDjEkFr;Ra>2L8M}2>҃o-1rwv o)[Dx [D4-ٷemȬ1e+''/}+ > ~-?v~_ Q.IȞ; -bv+MxW]C'ȨhXckt4,t$w&wY3riFd%MzP<{,W!K١9M JvV8Xp]wÖBk\CЬ&i7޹Gu]1Z 7Q-~,hȫ€'lܦ3.!h;k2m+wkyw+4fD'/;'I5vtOS.)iԩWv:Ď.#4A0nzMeilP]0 ާzL'S\dFi<O+ +(H N.G*4:)tZZ&]> ѡff^T'1=fHϾ̓߻8.}Vz_Ͽ}E Er-,I_%w ܙ/0e^[ǟa"(ɜ0I*=PgtH{$^4 a'11@%M Mbʓms@ٽŗSa*5l#e+:ŐLt0 KgS;TƈEfe?@lbw ,h@M~=.hffZ:kGIH& 3q2XCH1Ȯ)_.J;)oTrBT\p hE+ا{ײ &]mީQĐG.]ܰBH\O8WIXLȿsM)zdr6+W L(lj݆yF-TlPl6GBވr a"O)8*aUrv!);vb+2ѐ0B՚U N,&h}Oyy =>ա739 ASFe8(FXɰQ.~+_H/!o p9וWC5Z ?]I蟄W ~6B%`OH]8:4뎊{WuGJY fȾE=SZ2Td1G&z-B%! f YCa6$6016<.~]\לsr}>9U ĎZX8?/+(|9s˓zǪPPX")Wj5(֝AY@/+)H$Y1GmÕU{{_C02(48ꝺzRg[cոM  bG*܁KHMZQ1=Z" h,^<2>LIg?y4a4WGETb3nUdyDtι 'hE˜(0-5XCŕ} N Y]EqtM'~`Gr)i~gkM5w0-(2ᰎ1C< \rͣU]e+.;IȖD"l*id$$2'~> 5N&E'be⏉_]u'óe⦪vn4m5j.# _YYO_pxu Iyɞ)ܵUˍQ%F&,m>]λx4ڵ۫Tx9$րH*|CKի+h>,\) I@yag/kj’㔪&Tf+/ci+]ģ@>r4M{Xu; "U:Pb W>A;7!cHFV4g dw (-;վQK+hSMNLD= Y~gߕ=|B}}#f303SeWf~:r2 {EǐW4|;n6&$q5vɞ7Od˒4jDSَm+U԰N;:TDM Y[~WGmvM0~v{>i]Wlc⇉EV+S[^L%dT+T$|7j z2SҸ,c)=dNA1b^'0Mqzl/葲vU.oH'7h ly>RigRvc,ф}T)`{TF1[|zeX kk_^ćsg% X#[~sC/CTq^`TU5aڝ^SkA^'.x>"/ޑ٦,%zeu7UA_]u@nqp'm@Qmstg+B=Z>2B3vP(OѢS _3z5`1tn=]|t:H[CteiaӇn¿@:J2ǟc3ҷ/9[u o`ο$gcXW\?FLU뤞%`'"ljhBsኃi+&&uh"o)m>c¦q(w0G6Ҏ,shR~U0KH殶ײ 7u%~J KoJpȹl''5!/{$)4XQ^RyW∽j #{63cg /d|ai9а!fh0RR_1-9WJx ZRRnp_c ^TҢ$v8x87u#?j<撓_b}?m#/&Z4j66fz%iYcuglKFL8S/GGyiY6]RtKF4PrQ-EGrrANet2v WI?ş?X|v(/*_mw K@|ӗ`#Μ!7"Z+_k9{匧A&ޓGA֥g WWq:SBjXoQb'͇:m  ȽqDEgKckm`+;Rlc$5vѓ}X>-P:GL:20T(rXܜ⧥O7C>l5A< v֭!!=bs7{:]MP$lAq hQ)$CPЌ7+ir>QOpZ]&ڢ1ꑤozֈUv}jӠ/&m?AiZu#>rz1)8mQwͩ;UiF#_G[Kr'JhًMyH mýH0 +_ğUlA2.Pg2Yȗ" / D@T,`9[{VpME_1>Q@-G_r ze?|>pIX=MzoCS|[叓 V .ݳKM. /u1?Xe?M~=L[5J޷eP"]yjԲ%g(6'Zp̈!t6"(¸ GJY XH`(?Zҳ׾n]Ibߧ}_t;e}Z<s_;.Z|]+þN Z^~ٮ`7 0L 䕿PK e:nY55!nuvola/16x16/actions/timeline.pngUT zIPQux PNG  IHDRasRGBbKGD pHYs  tIME,9>IDAT8˝jTQ3$M6!(B ",m|;I4X ¶Hh01&'{{wH>a73~񛛷^Vo7om;[W6ϟ>7ՔvIښI + O{>G'$we46V pX"8.<67։@!h #cpryCSy>DHB Ŋ󯰺`(PjV&ffnD "X]I. tڽg&"5Io!lLz=ߢ ͘ј@[PM@ @|!" %j"T1"sjTl p+V}@$?*S(%(C)P<>Sdqv;m!黏esdF_d~yBqIENDB`PK kO1sߺ#nuvola/16x16/actions/toggle_log.pngUT LoAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?%  ~ɠ(3?~?QAVjG:1uf@ X@_@C20gd``'"K9ӫ/>?t  <4S~]M$5oBf9]2yKvivbBА:("L?xl#t42x|X #Ta( l T"gv1_TE3Q6 Oǐa###ݧ)|7?~ gˠ'!*@@E߿?~koh훫'z/_@'- ߯~A Rgcjo,G+H %  Ѡ}Aq"+_c ҦrOKs1 gdt~1>2 ث@ͻA^ w~o|)7Ms'8`1M {NOa81uE bfdg,lAڇeu5Xĸظ1z- gn`8=wow$݃>@DO7?OXߨGv@e^#rR'V? ^ӛ]+r#@!+ 0Js.dbg 1El@ -kIENDB`PK kN1%7nuvola/16x16/actions/top.pngUT (cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb?#c9u Č ` ?1 T~@XC@Ϳͳge``; db6 ~R@03P/N//(6VF or-- v &8 d;kkVYO)X&2µ|}OiEP]-Ì _g(,`KUi@ @wA   g1~TcXtaõ ?~gCeÅ Vqc?_ӿT}f`b``_Fp J 232"4D~r021gfd' PI6??xBl9~ pG,lpuP^VC~31^rUJ/ÿ`e |' MnV`,&jIENDB`PK t91fnuvola/16x16/actions/undo.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<UIDATxbdXY7|׽bBpUSSRPm'8@(K^~[soFJJ@@0'j7nWG˖d86AZV@QU//ß? bЏ\aZ=^ހcg~@L,; px/_20~ _``x ?ffsPzr ֧O';][NMo޽'O?789?{8b?}:= 5`i0P8. 12|ꙸ_ fS|;'OZ꺸sq1[fӉ;W[B $U?ٷ@aymk--/}3[YRR{@))HH$ ~~( @ Pº6yu54lTQKuuuϞ &2W'c`M 2؁.0@f`ڱPlMIENDB`PK kN1bNFnuvola/16x16/actions/up.pngUT "cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@#cF%&RullL,ǎ?jb``@1ARL @;/פ09j!r`P@`035e`8-դxgUw>``hmg!K+8X2 @YiU0[1ܹlXV3B  _Ex̚u Ò 8baO |d>َEVAoIX8FtxDZ10Ϗ gC gq[30110B1 sB4##`6o100 103X2@8f0u Gcgc L \, ^?_\A9v V /g @`-`΁|dxs㿧 Y 1/g>pqow LU}$Ϗ ?X0|aA/W&fFH]!i _d ~b Jw &U`?0 h^I1{J0ZWT> X~ 5$3𗁅oWx V.?KoIGÛs~? ?oo*!0E5{"@Z` ̄ 1^^nF;2|2#]U.. 򗁙~AJ.߾=hV @ ( l c@, _ ,Ғ 8S~ _L`M,,  Ж??~00J3b#+#O? 322s ?8#"0#4/0zcd`eZ~ٳ a"| ٔ. @3'} _t L ~U012 Yí_eb =} a202|{! F_2\z`H202J `f `, E߹ā ~38~w`,Ej/0}t~| 4O~6H`L8e@ ɴ#~~iL <\y, |`@n+rI}lČ ?pgj`}{ L`;t: dIENDB`PK kN1q&nuvola/16x16/actions/view_detailed.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<SIDATxbTUg20 4*ba(PD/DO( 񛁁qFby߿2|?@k@&B,@_xmFGM!_2:`6###п [/|gH A kS  /3?&߯_1~Z%W aXd%æM;^z'kC&1' ,2 ~| ϐt2#CDD_`F/'ö112 Ȕ??~00J3k 04Xd0@ aY9*L#y oE`4.?+;ÿ;IB~u _?m6(]󇁅0f  !  fx/0]]{{;eV2~& Ž@X/ d`2d`b`af@@a_@/21_3}_7Э@`._ Y2p04bd Y!!P?p(S9A y;X~3ˋ_m?A=H?h.L@B2 e `"@1! mh:{ܺIENDB`PK kN1m펵(nuvola/16x16/actions/view_fullscreen.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxbTUg20 4*ba(P)D? ~ٿ@O(l< +7˻Oo6N;~~xh" g`b```gbe`? _@,eHeer 2Fe00c`BI ?e5ua?@1aze% " BR" l@l r 3? @e`Sfv>ѐxt? z7( Onbg/[ǿ$ÿ@C cpO ?"/0 $👙?07#T9=D_`lH_F`*@LY#狗 L_Wg ~f@L963<۴ a6K &S(#P @1BV!/ g0߶d(0A.q?V{1Kct #@Lbf fs ,_lX8 N?vF_>00=lV?[6 ?b?n _L@ ?1p00Yٙœ6;` dOPg(2{ LjD@|IENDB`PK kN18"nuvola/16x16/actions/view_icon.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<wIDATxbTUg20 4*ba(PP@ 7P?  ٸWn@S!Ң hf~J֝pFd1#{{j~1nB}<ڍ 2$01k3|޷C * b@]@ a`VfbqCږ A&%щ ̏W11307 "-beb` :0 h _V#VY66$O_fAIjcyH">hPaab\p73P ?eay9&~ `fb  @۞Ͱ ?~Bl_ f0^pWpjt=@?)}!]; ߀*1C} \?o0exwb2&O9 /2sLced`z$JX @i Lw`*,P9b t{f*4f/ snfoA ^Z^|yϰ!7_1p12p/ {ndx '0fN:<2o`㉑ch @02/WwLH1 w1Ĺ΢`/32|{ A!M 0ySIENDB`PK kN1sd66(nuvola/16x16/actions/view_left_right.pngUT  cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbTUg20 b0 cdb|ucb0q( ey a30|O?P l +7˻O 60021ZukIIAN6k1-f`@+3ׯ o Dȁ3l!}?LA ,´?]nyNh|{p d[FxNxb l4T l!h @l?@GĀL?f&b~`D&2eb p2@ɿ@]bc_"$#fF`A?`Ah9@!69(A!d @/P<@y?h?%8 BIm:98Ȅ^1RuI@{/Vbd : <\y01 P ٙQm]n1  P’PS$`AL ^> q!q w>n"IENDB`PK kN1*b)nuvola/16x16/actions/view_multicolumn.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<uIDATxbTUg20 4*ba(PD/?܏ l +7˻Oǟ L gh L  ,@y^Wf_ 2k10ث3?XA" /fH X00p30m6&YO 70 %@221_~220? #~0rc073a` {d3\a6b ㇟ `ee`w`x{-Ï~Wa ^m,*A lgfZ# ]A=a!99WԌN~hP ll   4'Ï8?/ 00 abn&a 6N< ` ͺ f2<] `TC O1ȊmgxQG`be~q ~g8ư;ï_j LL ~fF&n} ,>pMqW)]`3<~q@/XA!|5G__~ӻ>^-P7W{uGbd ~ L4 e<0~b@,/?q? 4$D` 20012|{ r  =іu'IENDB`PK kN1]n*nuvola/16x16/actions/view_nofullscreen.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<WIDATxbTUg20 4*ba(PDѯ@@O("qF A 0 5MŋT(,inqў"uœ,Dj Ξkel/X>~%&N61qV +?1p(~1l!}?b 6×4wxـ>cx<1E^nNvve@?ݬ b_.  $puK 灁t@ \& *  `M 6 N>o2/o@  ~d36bsF` C='{(@y&ԌbpŘ\9&r & ̼`?}etÏ~Jngb ? ;^/R}**IENDB`PK kN1$nuvola/16x16/actions/view_remove.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxbTUg20 4*ba(PD/?܏ l +7˻O 6D $G ^ ׿ Z Z PgPR_͐@fdb`e`@?;?@?X5 r߿j ]Дi`M C` j3@c`p4N_F<@!A@l@,. 0d_Aa0@j`\0WE1 @/8$HH]@@/` N ,̠@[ TLyh+ Y1p2gb NNnyL8d ,@w>2fgg ڸ?ofP 6F2H)|@gq>IENDB`PK kN1O_#nuvola/16x16/actions/view_right.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<lIDATxb7ll.20Pc`  5^K b`fPP/31O@?q|ëK͇??.xo&@[Y^ 4ef%o6o100 103X20101a[ 1 @M`b#@0AG7@0DO[Rj&x91#ΊJCbT@ L \Uǧ&<^f_4ۃl67"333_fN0&, @1]0q10 ~24g@, ! ,P ϯ /b`Uduu%A,~f@,^.@zA631-D3ЃZ<3 w &P, ?ЯavFf/ 3 y1|.@,@df 3ff/ ?Na🍋A(Ŧ/ )$ 3;;˽.2```cpWb`: 4 ? 篨0|}-@&mr=(?e`(ΰ C/Kw d%$Ê s9n?RHZF{~|'~ӴEU 9E9.zwd6j Lȩo /^\+m6Ω<=%G n_7 p:x(IENDB`PK kN1ӏ&nuvola/16x16/actions/view_sidetree.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<!IDATxbTUg20 4B ̆_ݸ Xl< eBY>h?100B?A4r@=o>?fރmcÿXr 2s2|?@|!^AKιX?NVN~Nn@9F0m@L89X80+7+ ; ÷/?Vb ll/ML,l eXvޛ r}b$ ]i$223g‚ @:&6h F~&+@dc n3 _!??o2o 0\ Q`@C l~IH1pz82p @_`Jc` XQʳ0Sa.ip o0|3 0(5pb B$Fh+++çO^>  I?0 @?4 ,vИfprvaprb`vՒ^5n1AAa0 ''L ߼g1+0)_x?1|?<J``{of&bt[y[LB?g4P(fdB -P3gJ@>5;iXɩIENDB`PK kN1RxS"nuvola/16x16/actions/view_text.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbTUg20 4*ba(PD/?܏ l +7˻OӇ L 6DAX/׿ Z Z"`&E;/bH X021p2}v艳 Z fff _f8p ?: _?01pq`f ? L@c`bc (( E@_@aef/H/@ 3@-$$Ȁ \:?3#@:٣ bWP`Tgx=ŋ] !/uE EL  fp0} `W *+c V bb4 : ::`AJJ!**dy3(> L@޾zpc1qqyy9>0ܿPɊ]%4 XMafffxp!ÎM>|# E? &,(0BΏk~~w /L߾o{p X8y8gb-8B >VDf ?;8~3ˋ_m7`t )s?P`bd@1`IENDB`PK kN1ӌΜ(nuvola/16x16/actions/view_top_bottom.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbTUg20 4*ba(PD/?܏ l +7˻O 6D $G ^ ׿ Z Z PgPR_͐@fdb`e`@?;; @,3it_Y. տ L  Mf&F0asF`Xa@,,, f%@A! IA!/P߿@hfcp ba`fex3×j ?t6:7 @01f規;.|O dN;>8 |x? 47_A  C $ X8&$`*E\$clA-ڀ(zmβ#J:|I _pp2p{`zg{/( L [1 P ٙ69 H@H|@ R 6;?IENDB`PK kN1?q"nuvola/16x16/actions/view_tree.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbTUg20 4*ba(PD/ Yo6nƕEP4(0 T .FHrS۽DCE$|s2*iR`v 2k108h 3#Ç$|&fF& adϰo7#'+  9x h,Çc~|}a%o6 L`g#66v'16+ _v1G3 !h @1A$?.nnQ1AOe@[131?f"muwϪ ?>}eh3H_FEL t@O0؀Hק/t40]0C X] @}w׏_Ux 6!fb ?@0###WneAb;U/ZD}S 4 _3 UU8?"ȯ7 ?C ) z_pũ2=q320 vnֿ i}&o;@q3>19 XX|`e@,/?q%ٿд A Nh!A|&Fo/qH0 jےIENDB`PK kN1OO!nuvola/16x16/actions/viewmag+.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdH```!JͶ_WJ_1200^rס GTHff F@ 4䟴Ý-e9890ff 9ώc[Y3a  5d83\py-bЖaqhŏ!Z(f*npE_~eo3|9 bafbNԶ.۷.,@1p2q2p1q bpҵay)'~= }_ y&`+o_~ @,2l '0p0r]+mI ̬ ~dPSbX0A_Q tp@CA]+\cTSTՖ\qD~6Q':wd |M|W??(A Pg?ÿl:FP YLlLl < ?d`_` z-￿^`fdfc`aˠ̫@,7t y ?d?ËO/'0\~yA@?+3013120p30\{| X_W7ѿP΄4l}M<X2?ǰ܁\<]vbO3; Pabx 2p0|cd&Suu؀~edf ߫ p ` >yz0wp ⟇[@~8@@ q8egfpba`.qh1a?8X>}~|?Ofpn0G eIENDB`PK lN1<+>>!nuvola/16x16/actions/viewmag-.pngUT cnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (DȐ,2WET@>4#&L1&O~~6@1hTh>Rw kUk)}=m1  P10A]!H'AJ Xؘb\K L C@B3_M!M{U{6?-lLl L 18¿i _bB&#`f`ddDGb #Č0|󝁑ހAa@,9¨ ll` d"/vaaa1~˻/޼o  卧H!(81AHBb01]yxk*@"=0IENDB`PK t91SZv-- nuvola/16x16/actions/viewmag.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@DII1 +B##˧ofo?f޼yaڴi {erbYJ(ʈ20112<}U3^ܿjӧtҿVVV @wv@ vU3ȡ`%( ?;o&?۷ 333br5?500~e`᧠c++Ǐ^~O6[@?>߁5P㫯o 0HH"@@L@j:_~]-@"@  >}qQ  ~B/ A/Ƿ?}P}s@  ۶n"0LdXQ̰eyֿ T/ UPlM7NQAƯ @Xk'|~km3S #( 4}|T55Y?lm BEx"ym{6BǟV/ ,IU] fQ(ҍ8O|ZY>h bgp01 2|_AZNK3 1wg84o$&Mb00c` .3~ oֱ aQa[ & E D.X}rCuGH/@1r&9fV~yhGnًFyD?M۰?Nl` _ @hdg]rh.6Fvvoe/_@1~{jh9+Vb˜ 4ff`gW]kk>C/me`e ,+߿~?|@?L s~|/H" ?t )`H9دIENDB`PK kN1P@#nuvola/16x16/actions/window_new.pngUT bnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<-IDATxb7ll.20Po  Aj211@(%3_@@Hl$qFN3^]@,o>q[30110B1 sB4##`6o100 103X2@8f0u Gcgc L \, ^9'oIs/fe @/C2`/__8JG>e60F t&0ҏ_ L= L_10s11=e3;pzob@ 30Wff/ (ra!/̌A?$13|{ 300020 *r-Ϲx12ŰbhqJC_!TAe0q&13}~o`bԦOزž = ?^axvWnjN638d9>\>?  ͬ@̂?9?I02?f`G翓|_+@]@̡ .2v*3Xŀ5 \ Ln|>NP0@1Ry 0? oaZaWcoLV ._}ی[}oTG:a=k5n`XưF׬G 3OyǾ/fQDbX8iLsu|?KF.#Ҳ;w-s(?f_~g݇߿_]}+GIٍo dNIJ>tO>G6 CYЀ@NzFCOgbkv?EEEd={7Ѐߐws|K,Ow壢”wޗ?~8 2 PcccΞҥKӧO!(( >"\82ϟ? =O୥Ŕ}'D@<8x𠯱1@0쨯)!!q F])jhIENDB`PK Cnuvola/16x16/apps/UT  RFSux PK F1 onuvola/16x16/apps/access.pngUT $MdAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbttZE^?XX@ 2A#ß8{{VbquSdcTf7ß?8gVf&w3\Yf>b?LLB 713`c53?fv 03 #E F ?03{!ܔAQa݉ 1]j0&ߙ!B /`ca h? ;13  To#^4/F221AZAM/ 5-h bb}{aЗef0Qdc}ç/?>| O?101C  &  ow1| )'jߏ (@1 X@򏙓V_aΡ 12I0pp101003l \l <`6 X6A7XXYe`8  &, ^p3x`/(tX9>fcPg`(#I -Édf`bdUbgtPjZ@,^`F3>͗ l``0e`8t@Kyb/?32ps!;@_~104@S9nf`W ?00M[ /Ƞ [.nB ~N8_^z?+tFf&bvo\lXM?macacds0ܹ0#V0?'(r(Fh6j&(db/o/0F]SOIENDB`PK D1+ssnuvola/16x16/apps/acroread.pngUT Z^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb Œ  ~30g`d`bd{᭔(/M͛fh8wۑ63 f0 ghcpcby7=?sT@ ĬrՄڄ=xy22``c`i&S$~eRz+0Hd`zی???OkAK Azf Y Z>^P o߾?~{ o[KKU Aa3Ò6|_?}_eX.O/ 00g & ^&'րN>/_`hofn0|ܿUV >e`bz$(-ĠB4aVk0eH+f`fe /3 ~FN`k +3#;;?Pl@mOn>k<9oM]\fdbf ObL`[?20:~L" D8283˩ߟc_ rV^(C60* } ?y{g>[O/^c~s00R2@1J `ALJaE3#o~~3<=}޽ ;|'C/̺ @9?0f10+20HY30|p5CPFhͲqcU*IENDB`PK F1,8++nuvola/16x16/apps/agent.pngUT MdAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X{ß ̬@&#ߟYld|ۛxo3z(bF3ĀX2ptXL *q15xLJ72xW Pkb_L FD>y#&w F:5q23<}׻O  |\ ^zp}[߮Ne矕A}70ȝ[ƠuAG篒 /3l`x/?[:گ  X8x dX=C5 @f3'Á 3p10*2׳Idš.e?2|% 7> 1\|pÇ_MPQ-6ba! ǟ L@xG&?3a/6Լ  "?8ف //f//O9#`x;(@A0.xxe>+0  'Y3O`$7?tl twn3O֗ RL"l1+bUa)KAA@^A 3;N)?_]Y͙tF*Ѝ 5 "c٥ygf^>^&Fp' ?i >T3$76|~h 㿿^:¢4a} k<'K@ ش;PjWQQ]doog",,[G޽kש?~d]F(M10113$3;;/++,0j{'PV  U:.IENDB`PK t91RP]nuvola/16x16/apps/aktion.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 4YWHH(|Wzz FFF8@$iaffecll/@_#@H0//CnnY=<._°t'̷߿s6P=_ NNN[DD--Duۛ+(>ٺuׯ_]* /'O@l@hhyy{gϞc׬_j~ӯaccח~@0x};;[~`fWŋ+$&&08pa ))i 7n`PSSeؽ{EZȀ˗/m<EE  ^xàOmm=_2hhh1p̙@FάK@O~ž߾| `?1@cl Lׯ cI @*I P hЖ_@ %FXzE]ȈP@H)?X3̩ffFX ̬ rfn{f|혹 ?cP@yXk8ȩO Fe*o`IENDB`PK F1~Dnuvola/16x16/apps/amarok.pngUT MdAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxba!Y20IHkH9u?11誉301I303|rAՕ P\i3S1a?' M?cg @ _eQѲ+G3AXAH  gcA >?# .=NF^&   (Ï^ Tɠ/]}F , _1P /O ueso_ B @޽Ç7 "œw m 3 x;'089XYA'G e ƗO2031|a?#@1]<#?O o> /6f ;8ó'/޽{  10e A z%6/XYSV+;K`ep<, cbcx=Āh11qp/7ykmc ( >e LY pu99 LGyGB[ "V 5b |12/34߹[lq'8UU˟?3{ XPL3|{:V_brg&ٳYu~ ̼XZI)XǏ`=e`"+CIҒ[L /~`s?G/ @/+s)  30?{o-2kiidffT:>,1 X8-pçO O3x>?Z ߲?fUN ?ocxqCcr"y^𖏏PB7_r?}!*$h7``rp00H wŗ/T {YV!!FHfߴ1<ZP7 ,v10}"*ʰW[@, G/pgc:עE d`F0á_;Nsr#yU@ yя߹3Z{/20%(?CX+0'])p! 1EONN`1|{^_30?}ۻw'~00F$w0@|r7+˗ ax:`2qs3dfׯU@1zJg`>0 +}{sw_q@LL<sxx\xXYY_ }p?B yXX ( 2@=`hO?jN3 tALIENDB`PK F1qegg nuvola/16x16/apps/applixware.pngUT MdAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb` ^9p) &\Q:@n*.urrrJJJ |||3VS6'~ӧO/76pHJJ 0:tߕ+W]V201 A o߾=yy(툮 `\tͿ@!SAcĄf{PB[_ѣ y Ed| }߿?2" d4C3%.. F(05Aįbb(/߿'@"N Aqa}Ϸ+ o3=foG_?;[M hN6pedffP }``cfd)c.)D ̼| O/3([ , _2  8 >20|)0A ajfb`e``dhߠ 6SSAVFV!a@M|@ ivY031FX3? r "@q20t6d3q3Ͽxxx~l@SuGZɳkϗ ess? mdge` ߌNHvv"_?*`{޽k@+ x@1laSDDb50\ŀrz@@H`2@IENDB`PK 3WG1Xb@nuvola/16x16/apps/arts.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?!ÿ_d~?υ?ÿP#US'O^v{;Ā5}&ß@͟䔅YMwgaqe`י R@ zo{&5=izFrX%$ 퀪0`c`*dS^@~YK$$8Tԕ8@!!ѧ(P 02 p1(+yZfP/ MZ{M~g.I{72`83[30|˗@| Nx(T o3|y_3|zĿ< " //7Wo^]5@p΅;b?8dT Q2ecVfP药 o\zUӇIϤ # /[.O6 @@gcxÃ{W h6I'_j10z񈯝V<808xуW(7L`;dMnF'ol/'=$@ `f;0Ax$f IENDB`PK 0WG1fHM!nuvola/16x16/apps/artsbuilder.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbf'''1I1l?3_ a``472W'2z FY\Җ I?0hmOgfˠ&`j'@8 6g ks8egaђeb`s  `ϟ? ?d`kvNR`xp./' "@4%\II9_NVVoEoH9$p+k2޿yW LL, "\ l,6ϟ *s+Ξ/(ah Ù Z~|gdx 3 7;+@1077OxnnIӻ7ga8p]4_EyaN6O O>1;03LcLL|.N!2}` {V̢ "2 O@fÿ@Lށ ;qR_R3]AXpdp=/_2p0| hЏAtUb,  Aү(X7ǽW@  .--A/:EҭeIF2ǰp-n9eO "l <" 6lwڅČ?}f.eb~,iOOE`db7du Nh1`qWXXXXؘD98YQg55 䌍MEOvBJ9 4w~2|h  lO|zvDXt"/. ZlR2 o20H 101x2<{y@ LL LfNg51ҍ\/w130H#2ׯ_ _ ",!,]M@Lgi}Snbء3Yܹg@AдD&Fļ A/-3Q?(# 0/,9?}sc~}ŝon;:0|`t9/0'æM[_|f.@$e`"}[/0R͉U>348<}po@- gFb`G&3bP es93' 'pu_gA7Z%@* Te'n IENDB`PK e:1Dh%nuvola/16x16/apps/artsmidimanager.pngUT НVAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<EIDATxb?% X@###~U \&z߼y . 'cTg 7c:CiFyBϟ? efy[:5HHqAIJA\Qd@ xCH?þͳ1pi%dNg8AJAANF `d`g`d_!* ,x-Y)^n!B 56رc ϟ?@VVAOS hÕ_IM3pRu? o~``gge@ prrbeg33LavȔP8sAB5w~4  lݺ 2R tb`@ 31<ӗ 1׏? 6 ;;!%%_?1?HdaF?PϞ301~ddz3pss%Y>7ã?Xyy|cb`A_C篿 ϟ=~ @`6mxE555ee%==}K# 2Yvdb[{w5_ ߼cxx%^LDA@@M Ka MzL tT2,U3\zٓ{Azlv߿3())1HII /ï? sfi!$@1rA`P78)3L|W`oܸ9= D0333|ϟ?` 1|68X01L8I@X`s͛7PD**88832ps 9" lllo޼ax(?Jdʵ B ~|e/@@[VVt_|{p2މ  @`/011]0s|c@ > CBBT]vݽp߿ "+++A( /OfC^"IENDB`PK WG1ֻP  nuvola/16x16/apps/bell.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbg:Oze/+v<, >3bb@2010$Zq% q:8r0, @qȦg0X!*,`/&%M_pbu@K2.0^m/#Zo 3̏5cgIbŸ89%ťzKFFV` `jg`fd@0rB ӗ ,(H NNߑ@,/B12!k@ab` 2H121*|j@lСR __00:]~gt%0_).@WB  o@r9\P;Ë@7Ah;aA>f@` , 8B12| 4U}ӵ6H30|F!Kq,L  @4@x{o,2:_Ȱ ΜѠGA h%M~%AR@h??{uV~ٟw5@A_ 7' #5 5   q/OI7l s3|t.k09;v,|5/70Ɋa-C/ewOLd`c4q6??d>?z %10 ob?b/3wF3Nf9 `g_ l j`?0|Lu c%'IENDB`PK nCKnuvola/16x16/apps/bookcase.pngUT  R6 Rux PNG  IHDR(-SPLTE``g cc熆偁WWT```]]yyNNNr<%&'2D{8?:?_,,-RW!6PbJ~JN5.0*OK543QP32O=&%G4=VrhF("%%Q9D\Tq)tP-$yyrrjjssbc牊zzsskkffdd``PP[\VWoo}~{{jjcc㎎rs]^RRYZMO߁A[{:=hipqDDۆ xr,yDhb;T=@oqij?@v;?+'#xo*sgsLTHH%/*&*o9m-KWjg'.I{ZP:@^p͵}}dh-KWkTf>E[jϫThwxhhs~yAtRNSL[=OvN-^^wDxN U# 74E= IDATc`FF$ qq::9 p=<}|A!aQ1" bq I)i Y9y@n~taQqIiYyEeUu|m]}CcSsKk[{HEή^ * j'M2u3g͞9w -^tYjP+W^iz]6n1426Qxɿv`HEIENDB`PK fE1"nuvola/16x16/apps/browser.pngUT d}bAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd`h``d`a'_m$il&.#)o (:}I@!uk)Z9x9y^~zsO߿3Kq Y4uߟ7GIPH"_w/8Yu8٥؁?1Q/63<}3LeYkn'  |A/3\&"D '+M?2Sߘ&q=+';0Qr20p1???/^:??C##?:j @123['V)`Wp`x;?@Wgd``̔\̐u#ߓ~k9Y82 10s00r10('4?'˗r2k~=O7oI=}wz/` ;OcW H~.7*tfS'A]1    E8#P߿|'ʿc@!~狥IENDB`PK WG1nuvola/16x16/apps/bug.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<qIDATxba```?@`,)𗅅a 8>7}/~ ; $ ~՟?iWNO_߽?5@L730|਷r#߿LMT_b8|.%%߿=woPbb:CvCU͙c~*(АD}}#G^z b @,@[ٔVrp1**2ؾ0g ߾1|;;_^^/NNO~{pd@3010( 0200}p l7o20A^QPdv1~~*@ͧ X━aW@پg`AI [^fP 7+ K(e+ _0Щ jj@1}abby h{5?# X.zh60 DD 3T@MeN|ʇ@u޾Wb] ,@:pWw9 'Ps00_ `d|ׯO||12 |__`d ?FF@_@A? #YYe999311#3k  U ^4؅30K(&dCC0@ ~uh_A F00 0%Z|F`a ( H3l4c;$Jذ f 7`'_b3 S'_lSiIENDB`PK$WG1e}  nuvola/16x16/apps/cache.pngUT eAPQux  sb``p  $?OR,鎾 Ov%K\#JJRSRylPl(cK3*3}TiYWJJ\m`tKQAmXՌG%$$F||9;%$:Xo2Xj2:m73*0`xZBBz℞/Iz>?Ey{  MG(&]HhVWܟ 757TM"%W+0ǯ}6̰ xb{C>~ ysDž &+~fhpb_  o/ϯpvS[o7_₄FŮݏ=3WVm/$b?i80T)3n.;Se˕_y+J:;Vn RScƃ_iĿq'>ػɬܓzYλ6<7So~@DTKF2ɟ"k~g{ʙ$秊05=cx_H_݊BqʔΉ6IH+8[Eaz8eSBPK WG1׻naanuvola/16x16/apps/chat.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 24 3Kx??}kg/}|e:/wO1|u  X3cN[Aq P (rZ^8wnÖYO^ |s@hn%,҈_wO#PQ\Xڮw}g?^ -u6X)Y)gcbx' (?o_20<4;ą[xh@1)*g@_71y߀]? Zb *v ׃@,\<,`b# 9>p{10/ 07?NX/?1AEA@ [N?``f`3c0bPbxgE>U+fQb磒1< < ߾bXq _ 3r2Jr3\/?=pҕb``X >0530ps13A(w=3Qub 嵗>GXX>'?2җep0TyEIoܶw׶'e*(AAA>X3(jr2||镧F߿?>]fg^W{ 0E>h0ծ%ϟǾ_g98Ǵ˫6BJ*" 0jLo>piaUoA  š   Q\\ ??f < ?uɆ!Φ0~g`4f-"#}m%IENDB`PK WG1^1zOff nuvola/16x16/apps/clanbomber.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`X98D13Ocd_6i#vF&=f>Fbk06P'dK4+? ^@&0cXqC7F? 0peZ{_ ĈE//9l ^qkFǯe~"B$..Wll-,7D5,55hppkiZ\z ధߟO]]s$?||?'#?2_Գ-GG#3fdz*ãG\°n:O\yX=y@L>|`8~8Ý;wW +0 bXh300gP| 3uIENDB`PK WG1Dݼnuvola/16x16/apps/clock.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd`d`` "q9Mr+W%oua~A.}퇣GvoWf32#C;O7pg7# ~~c`aac𙉃?v~~aM_>fbf`afw̱X%4_9qNN_ b ?y &.Ǣffvϯ@LѺ5DY>30HI 01 3s3q0H10#Ε(@1IګH}A-733`_PAGKA}^>&]טb IXϟ?  |aطӧ/#0320"! A-) "&"   <A ''! &53  ?_6vfNN610013pr30|g0``URbP{Ϸ , @ ~@,,??! Lw2ÿ߿4P? ~c; wמ(p?07`22B?~3\W/^bzy[zʪ_ϟ2a:?/?dӟb ^~dx|p=+A -G6  ޫt匿o\zCBG\U'_0|u5xy~BP4 h/bgkg^|K)f Kvr5L @ӘbF 9Ç Q"B~ orZuF%IENDB`PK kG1XXnuvola/16x16/apps/colors.pngUT (eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAYZqO65W " ѯg ~* b¼F|HxK/g EFFASC+&Ą31bbfdbc*xGG^|g?'ĢôI:%#V? o0f[}?iFb[(D+`_!F ;&/ 1,ۙez@OY:'P _3b`f`4f``fa`sk?@5p~v_sYRXljoV\|͠(ÿ@ b L1l 33bo߾@LL@٘x~Efqf+] ? ؟# ".@L?g`eaf``aX{}??_?@gjcb 4 +3bA !!! M)ij(v2s2gFt↳}=Q^E[U+af0~c@,|`͌gbeYY__}{_=@ -,ߏ ?`gc%Vkwv02s3:~@ zvNOL<_>y@,LP8}[~ןC<>lL?}/| ?/b 7 ˋH;8|e`R b1@<}v/޽>ۗOS`诇/21f 'IENDB`PK kG1pUbbnuvola/16x16/apps/cookie.pngUT (eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb1ϑ f`A/ lz`y?, X@ӟ o-df``Š! ׬ 2lefd`gg`?b/'fv}\B 30h]g'懬L zRl < " ,s 4?Ã__Ud8~}%4>~?ÿ o@@g'ÿ?R"A[WJUP8+?~<÷?aAڞ@ :W"3 ."( žȱ}tGk2~x~?27sq2/jK( @L8e4%CS ~AߖMW `'&2 X~|~LJ'b`b('FFgU af`_2 ~}| |-[?_–A܁AƝ/6Z]8J gbaTBx?`@12H{0|{Ϊ\wo2qzIENDB`PK VG1^1zOffnuvola/16x16/apps/core.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`X98D13Ocd_6i#vF&=f>Fbk06P'dK4+? ^@&0cXqC7F? 0peZ{_ ĈE//9l ^qkFǯe~"B$..Wll-,7D5,55hppkiZ\z ధߟO]]s$?||?'#?2_Գ-GG#3fdz*ãG\°n:O\yX=y@L>|`8~8Ý;wW +0 bXh300gP| 3uIENDB`PK kG1 fZZnuvola/16x16/apps/date.pngUT (eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,).b>?2󋍗_Ptut\=Օ H X2'5X@ORVVUFZAAQAMU+ K-A7 X؀@RF.JAQUZFA\L(_ r NΟ7 @ }'}x>O_߾_6l_DDt6 I@P]V^g~e@2" ֎NҬL,L l,  dZ+K00opjj0b`s<+P7 '{y߾} û姎#P?N? @f`|KϞ``ac d,&v" @9hU_g`z㯦&/O?Xׯ_ӧܾ_f``:?`QTd4GamamŨd ÷/1 %:) 22 [63=3CP,؛| wtdSA A!<#,( -*JIͶ_Pgx9]Qg*dpM@^c>ۏoQQZ\ |Ӫx{ wgx#g7=;?_}ͣs Ĩ$#1pp 7pd`zxš?_͵_?=7N`*Kf=`y}ow˰/e?`B5BƆFVIENDB`PK kG1Cnuvola/16x16/apps/designer.pngUT (eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxA;;<  k ކ?ÿEd_\bRe`- "'#b§_ )/82^Ȱve_3Hr2IN/S{{ǃ٩Ɯ9^^};I֋ n|e f99996##+++ 77Ao]gk3 0Rc8s&bBv߁ʟo"))-˗쑑ccšx~c^2bBvۗĿ2jw)((?zt3n]~ePzOO_?1LF @,̦VO? A3ffKQQ=ecX667 % ҹ?>^^6FnnV~g1| ?^/PY AC:+^T * A"" -,% EPK*C^Vy^wgx?Ï_2L5k3  /p?{3/+ԇ.}P;33,! X>UTTR' z2 ޺Nz'>p%&%[`r @,O: 4Daӄ W\b-/i6tUvNVϟ3v @ܹs'O9X^ݺΰgFNvfx^103 ?~4۷AYgG._؄} >~d`aae'//ûwr33gs/^ >>K7n\{c`` -".n_@2| 'Oaزe?~tmf& p Xnܸ 肛?{O?2uo `9ba GvI38ç agfX@o*E &vffnI)f(, 7ï@O ŗ w_10|̀0? @O} r^ A_ df @ ne``Z7&ba&7@ۿ}: p_3x4/?tD/ '?6|p90`d`_)1_ 1 3&6ai_= }``x VFnQ_᷈(3Iv =s;3;G`p| w)A`|e`xܜ ,irqݥG$2IENDB`PK UoG1ͤ,,#nuvola/16x16/apps/edu_languages.pngUT r/eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbgvNo_~3| /~e8: R¢?}'w:ba^Z8ޜMuuIA"@X54[^Zy" X.>Բ*U#+VO ni¬BBMF@&D{rݧ_@, q O2Ife`'=sՏN|a )tVϽc?bR7e420beqy /Г˰gA   Ы ӌe ?ڧŭ#mg0ܸq;A} |bKCb t++û+6b+G < LL ?|goO \ L,\n@ſ ^3p0s1~g:~  s;>Q2ee` Z0aӗo v˟  F`J &( (çWnΚ''xn@12/.d^fU&V&Pcߟ_~Q`~bJIENDB`PK OoG1B8N^``%nuvola/16x16/apps/edu_mathematics.pngUT f/eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`@XHocV=gO>f`4ۗ/L>@,hg``1x ӧ/Y}/@ ;  VV@kggb>oƆmG00L`b`Ada`x@,L @YaNV@}9Ú@ Rbd&˟?>ӿ$xxMg6ĶtyiurRR /FF XOԥ%ԞhhOFFݻ0Nj?' X`! YXd(j@Ç]|b\ݻu@@|$ @Le$%|Zh2߿}ڿz n1 XN;0ݽka{uҠX7 @ $_CTً"lBk|Y@PC.b`: I(f 4@ζP\ 9 l?^-/4Up IC  kbRxícdxk ޏd ^u[ ܧg^?cP0 d^?zH, o L=o}1IENDB`PK t91 `'nuvola/16x16/apps/edu_miscellaneous.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<HIDATxb?% X@##ս(ן 1H31˃O p1#7UF*ߘ>* d~`#ß ߿20 T @L B؆߯L쿙-~cUdH gW!&!&q?111g Z @~$.`)7Vͤ STT6  a /^cÅ{~,p8 !A93o ӷOdxüwW) < q@ ෉_֕aM {+4 /_, {a`;_F`@ *("7!a5@=Q ho(f_v00B@ hkk 0x /+?, h?v`23k FPJd&Z;UU>~o?}Ͽfg/-|_ Iq0-%SWUgٷٙ/pkKq]}_jYX?ɗ;np1ة Zm矊K?\ R @`# e{EWYr_ded`b8I>.Ɗag6@`"# ]^22Z )~$Vi|OdxV  FJ3@B3ښ^IENDB`PK RoG1*'!nuvola/16x16/apps/edu_science.pngUT l/eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbp' _?OP_L @ΰy10LAQQ$ @L'uo]".!+3ӻ,>R(l7 /;;k?m@d``ddA5SyCl EX+N3\A3\!=]"+Ns|G0J,Oh_NFFf (Z7;i &WF!fL*Nc:u;Í?&~~10p٨0p/S]5pq.W8فv}2@13C M ?>cxÇ5k /##@/㌗~3 zQZ5ƻ] ~>e [RRN` A!a?]T؞'95ã.>b|+Ƞʦh/3$̀  X22U`d ߾11 t=^=,1ï? p~3;pï2 >eh7v,| L$ 63˗/~31`Ó/x~d 4ѣ"*eN bc``f >{?܌O>fumcf _?Ѐ˷^_A3y*tN   kl, O32eg%$,o,z+$&ȁIENDB`PK /G1 Unuvola/16x16/apps/emacs.pngUT  |eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<rIDATxb`aa222Z??KFF <<< llln""";~/b.b֞q% 󲲲UJRÇw7 P߿ | ;;*** ` %%sK !a pAz9^@, xxIWQ_TX?&&c g>H:\q~Rr ٤cbwa¢ gn}j+o f Ă Z% RRj ,L2s13H1pc } Ӛz|,SLXYz? .} C?ï?|WĮƂ_+;"+G/190af? yS1f&F?0{dČ#gY-U 20q 02b8yC>P?Md<{ݻO?Į\IGS;W5 y& l I4&Q}M9Lu) XXYUZ89XRq0I)MIENDB`PK *G1lanuvola/16x16/apps/email.pngUT |eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<]IDATxb?% }}2| e`adÿ+̒Xtǎ7;00| 6 Xp/&& %%$oMIScem._]Qӕt:0LSRδwsecc8w<А{10{@`_kl쵄%Yy.^?3$С[ @qqIJ[jXX3H3310p30{ۿ J  Om@,<'ldXcBx @020#LQ0ɳgg |[4ٞxTͫ ߾#ó>~ˠ x.Nq(}sv@1ˮo. O~3?~`(>{֝ff 322T1%m??/2pmm~:(9@. .ni`b02Ls#4~7[[UffV<TS]ȾoƗ/A6^om]E4P]BH?#@,||?[֟fecܰaaPz +#'D`PP?? .Ǯ䂿 T?QYۚIENDB`PK LoG1}::nuvola/16x16/apps/energy.pngUT `/eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbȠC^S?&'N=v`+Oa 7 7x|`x!C<uO׮]߿@0𙙋wVV߿aƩ/YɮjPQYUM={80teb a`CBJpf~Mo`ϝ####P.@09 P_?$% s\dP_weX&A@,ll, `7 xC&FVV`dp `xAA1CDbk[%''Q.66Nvv^?; ~=7^pc`Ы i2=+A301 $ yBHTZf_6|ع}lVdаf8 0fof38|uUT!°t7Jb%°Y=m8m.zVyK]IENDB`PK hoG1p!'nuvola/16x16/apps/enhanced_browsing.pngUT /eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<$IDATxb?c#?/, ' 2 V}fvO=pڵbb+&PP~yRf! ۀ@'c añM~V€_ " ?J3dט %ì}~rb@A `LRV*| a+1; gسq 25J﷿:qp?  fd`d2%'*3(0jY@`p#>6f@ t:fN5E$6mP ^b[,~mtv$+k+ O.0}00< @`/000qá @,!0xܻ/rtf1] 10\g `PM# .nJ1@?"C{Ks.axo/.VnB-KeS.1|:x @ `ee_eo0? q!uv)Vs.30u.59VƐ7F.=>3` $10"M[yO3< &FOv>Ͽ:_׋ =70~3Yv֯;@@XeMal";o9%y[ @01(&7^@C0(ێIENDB`PK doG1O'~~nuvola/16x16/apps/error.pngUT /eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxA]22A2u#8!  *`A-A.\995''G7II04__"/"A`a))==&F  6440 jj88 (.AZZXȔR1''0UU41߫Ox߸h$,Bo:)KJJ+2 ͛ W֮e?{K9~1 #Ѐ?@cjQTYS[ǎ1]߿q@ fNN/='7/X'77 а?/^0~ڭ[ 7n8oP^ f fmqqA`T03{[/O}{_@?>f4޽wG~d`8 bGw>0|zQQQ/117k``8 |Y`?ߋb@g0`!%"qÇ@C~ž<1:P5KH0pi` ddXDw@CO@HÇ_2|* MO񞛍Y/0Uř1UP`m۷Igmm@}{;_gP#(c^5?'60Yj30K17!!A`gu*@1CWG\|*1?:oj@iCFƌEJJ?ZXOPR@ bb @[%vf>0Gj1,,{ aj ,pZKԔoIENDB`PK\G1,%KRnuvola/16x16/apps/evolution.pngUT @~eAPQux -{LSwϽZRG+qSںim#@>F)u3:cRSC133[B["[4Ekx.7ONry33`~vVfA,YJ?"N.ɕz ׼m;H}X*Ȥ%ehLΓOKb'd2*0zة?gI/IbӤq~EU pz,onvvf,joki"jl F9t{t! .q[3"|ېn?eN̝(/+EP1S]a$iA݈0P~!g?])@QSe},& S˝o1gQ5eik@<r-q;aX/|#`uYjuW!ǐژO5.$FuL4 Zm\wH>瓦7;+©sL7[WjB['t짂Z!gUb](8C"bw}A8S>뜀^qdHyhўCVU=qKvFbђݟ 6Ьï+y1ƣiRDԚd 5,X&I o&SlQוVNRSH1l aRx_iFk?N7"0  [ h3co^”LV Yad ЙI@N4X9* v* [zM5j"o k|F2SDOux;<^8:$z =V]|w4z#)re'.X5C3f󬋚_Y~: 0ݘMxUy-*̢lBevWD0uk gp= SMШ8ENs_U`\m[M?? ۅb=c7 / BolME 2p10$`vALIAZO0m21{-ַyp X>edz7 c`b4 >?z}ϯC/efex>YQ-M+ ?,P?P`řXX?}0AnN*IENDB`PK xG1kP9&&nuvola/16x16/apps/filetypes.pngUT |eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% A781 l11E'&ީlٸ|9=} ;ÎOsX^@1KHz1 HuJTefgx.?I)2ܼALTAWGV 73AjND9V;: ZFe/,NAEAm& 0   ӼزENTJ;F/1|zebbb#2+×debc/ $8EE=0@6@E?aE cL 4XioN[CBr0q/;lz(6,j&OD4XaFo>z_ St"*A`;2)-/N\XqO73>FaE1XALWh0#P_C߽ _xuYTN.\ 6`2 %' Js .bd8s.|~ @|J/ݼ?cV^!fNnF b ~03)11sa i/?;4&@%1-}~ ;owaaVO?1|gbfxA{Μyʰn?v>@,,, LL&ݺua3鋐_?ݓ'|PJ@zL+Fӗ/| 09m}d`g`䟟or#@1R bFKIENDB`PK }G1Q1vvnuvola/16x16/apps/flashkard.pngUT |eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb4ן_322000g``b@3132s0NーoNb43  #  `ACAC^]kN9-8@|ߗOX1003n i@/~s#@[ l\ 0L Ll  ~e`geŒP/Ѐ1210O@k;o dxj  F&_%r*0cǡ37 s~0Cd;ï`P)4@PFpV~2dS };7/0,CL^1 oV^6ybaefd7Û?Y88+'P @,ge5X%Y0| LȀxO$ 6f` N30H+zsd|/T/#j˧ rJz?dL$``bEJBDP < 9CU^!?#5\ 1IH -&P"Ek!95OP[߿0+Onʈ0) ٠oȤ6韢N>ȀǁL] `-IENDB`PK G1{||nuvola/16x16/apps/fonts.pngUT |eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (ec`LTVךv{%?HK100z32|ga``7G?@11*/ "QU1B@.t@E2@11 OQNHUBAPY؝ fj_̿E`4yݸE?<Ơg 󿬲1/e^ Dt2 ^ 'ukU52| r bUu?abdvtScbi@L:IQQ7 w_PƜE.p|7\-,a 'badafCI^YYIO "B,9٬f9ix0* 3?f|Qۇ?}|&b*ȬkW+XPTt$_?tA]P~A&.0/L0ڰ ." >*,*@ɑA"Y.V[S KF +$M?$ A ,1'Pba`d  T@ ~d`aa`cv`23+70%~Z @F87^x<|.IENDB`PK ,N1Ĕnuvola/16x16/apps/fsview.pngUT 4mAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<&IDATxb?% X@Dl:// ~@?f6ߟ>2Z@`- Du~ /P~T` <{/Fa/ ?|f`b }Ʈ$1ITxg_? YXDM`5y/?2(L ! @20.c`drGahAD*5vx)08.B)p*&YwWF|'~)@,/8?|Ó c/HO5?ß JPg^w@Y_`l_`d`7pGouJ @ 0"w?@w221$  `ÕgTD,<o3av@A ?^~O_e(P=PrDAnqiV9"3YbQ(+(z+1^zn*DO ?(a mek=noG3ǝhg2֥5cn0DU+F݁J & 52ѻ5-B^$$i\N{O"eD~Vƨ>j` ܰ=~D!aOWnBh~PJu}u[5\C&ne P^e0ҳ2"q1~\< O'g($x04 G2ϖ^`ar1*m+W*zX\Э"PzHa3,TY4mC=0pc.~ / HM#VW f;.ϟ Lj򆪯[d2Z+/)TZycCi>T/6*\/Z@Pq! OC%xzH XaDQ$BIZ[|GW%\ί*T=Q-fev˄hIxEuEּ¨83΂47$L 2r?v!1aE 3b8Gzff4K$) Č%QibM:ʘ~Ҧ*ΧBaO൙\8spҪ x** +Eο劗h~SAnILc]ߚYnc8T K<[gCNZjJ^,SʟM#DlD{M|(޺BoeJAthtCca*`%tC;tl0Dצ`!EtL*bQX@K{ۻ9_;/9۶& |$oNV{ p W\ҭ7f({@ H) ; b;2U/Ӂ9A t;;g|nIܤf,cg}]9Ɏkfi K׀+%'UYgM$Sk[)M *U@>Gt$rCMr:T@YãM^?m&TSᎎ[};PK G1mGOOnuvola/16x16/apps/gimp.pngUT {eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb0f_q_3?̇0_O>Zs$ X~횚ů-߿ p`'MDžp,90 3p "Dq&oBo0^$S!Hq w|~􅁅?l Ofx1++PА@LA? _8A%ּ[,y L (jlEDX?kg>330k29 b78?`[w'1}t /Awe~4D* h $# ѣ o5b`1fa|V`sXx1[6As^vnp(p3@ \o1X7N>.oo01|, bK`f;dWBM+>axy$;PG_ ?>bx+bý @LJַTS&2gbx?7;c1÷^)u2b-cëv O``AM\C >`Vd0-`Vf`*c@,~|a33mkG)cwN3<{rf0 o , N YAYǙgM*@ɝY`c .3mr 3~/(漿L@9F߿'#ХL L@7׿1@1 (VvfM`?FP.L 60#:V{ln1|IENDB`PK t91TTnuvola/16x16/apps/gimp2.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% AysNu¿  o{e Ԡ$[wbmryõ.e @0>F a@~}c}í+j3Æ,1n\>`a~<>9g @/3|+ŠkȰ!!&7| o?} ˗t{ b8 b _n0O ! @ /ؘөS_ưg6v & /0~$-< ρ `A0(F; IT ̴ƍϟ{ "C]Ie0R[apd @n=\8 @@|t%= >20z~pL rz JƱ 7e0 aA)13~ek2܄AN_\/ Nc qff̀HF6v0wo]v2p 0H83 10&p zbeu`P3a @,@'8 |~C?`L ao?Qb 2@Nbn~ `z3->wIENDB`PK kG1GR nuvola/16x16/apps/gnome_apps.pngUT z|eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbde`&f2-03 )iqq.^~|t 2@1 `l2tW>׿#@: 3;_v&[ :|D}]Dx]O1xA^F w>Z  AC 4_K+& 4 3+A u"3)([pA !d$5% !   MJR;3/+w wI0feP~ +W_Y>gS?+0ā".m@,Bj Y^qG;߷<{S_R_SXY # dx31aUexqi^ Ĉ1jU}u|%ED82 Wwm?l@X'Α+b'OoUA 曓(BvIENDB`PK t91]0\\!nuvola/16x16/apps/gnome_apps2.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` F>( d fdff d00ηu71}@ LFO"Lo[ke.4t&Z,D`ɀ@匏۲) bwą_o^y Vy5 ,$%d?_] oT@ `br5b4|̷U]YAߟ_ w_hc%~03f`@_69&9yWG77W=)[teT 4ʞ' .^aQ.Qw_37F q??~3\1m5 ``:\@! `atWf!6FN.]x{cq럗84&^6BU gx 녞 ?_"/a`~@)[;×򓙋QHCA$E@\'AHÿPx @hd Lmaj"Lxz%/ƕgys r4V1y`_eP*Vzĥ7&v1~ P}Hiv06C3IENDB`PK ZG1{7nuvola/16x16/apps/go.pngUT \|eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb JbO>1|WMUUm< +ǔ)01xORUUyw;y ba?8ݻ?/(uwwb ̙T^x+כ=zT XXYY:;9ٮT9sn322wvvnL ^|0wo?@ ..A ~o^r{𿥥o߾N4d@ABBQ))5TT`EXXWo?yy?'#0P11 q2Å݇ kn&!I_Dܹ#A&'$03-% Z. bbe  q.7'ފݗ 00y?g8x(Ïcb033bdqpfdd Ai $  ˯A׺JHD ¢ERR%&Mv_ \z')a>1`Дcx +Õ+O|0)@hj1prrGG)*mùK/?/` Ġ(]N tb`tn 2|IS@o 3gcxɯh6iY3lXg/cJsb`22i%g[;8s2J i`vq _ o 3<|;O.^ LPową M?~|kTs@<,SPL.^CCN(E@Z_IENDB`PK G1$N|YY nuvola/16x16/apps/help_index.pngUT HeAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbQWc`/;;קϮVVƒ,,>vĉ[Xxa_12 RI!KB3fGmo 7!i>f( f-AzYVUNP o0pWV2}hbn.?o߬ϟoYZ2]^_|_wyehoB߻|M>0C '.`FSyy/Pg3=o@LBrZ,| A=|CC=;c'!~&F? X8x9e` 011g`f`࿢._ßZ,^cT¢7@AL#$D46 >W ~ꩥ(3A~徸/mooضn6OA#6JLA<E z?x  *,j)g2gб1c8=ϞMB Nw2boVN?\ o~1+Y0{ē tqڵA( 7&)6")0SXX*ElP_~ 8ggc#֟՟ K<˗YAAQ!v6nkXPN,|||KKKo ~75A@E >_0IENDB`PK G1c\Dbbnuvola/16x16/apps/hwinfo.pngUT BeAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxA5  )"A ͽ| [\^ FF cu< ?13XOٲn +@11-C_ 1Xcx {P,Z@CP  &>A:3s g_Y?c`xF@=#g?Xbeb@HJec`efdXtÇ^}ճ~/g&~2*? @, Fi_ ^a[M1C&Cߜ 3{'#sπ' F j gx 0 &˟?,߿|c4fW0y ( Begc ll=|a̬?QA..a7'6?~_GoKo#U'̌8B}CK?̌ L;"_ J xFFFWD*a6IENDB`PK ؛G19S  nuvola/16x16/apps/icons.pngUT H}eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% Xt>)kr񛁑hؿ CHd?g* w-їǛ 2be` T7! @>3P P~f)bM1zwY_ C 5gbd`؟&11|P o |+OYc`C9<@eN'0fe`'0p@CxPߠ XxDXd?! J0  L 0Tr02˓{-c2R@~bdlV`Z 4_߿` `"a`dQ,alf_ srZe IENDB`PK QG1p nuvola/16x16/apps/iconthemes.pngUT J|eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<[IDATxbjhe e?ÿe@@qF yE‘Ə7?0s3j75s(@ 2{" C c`_ba`ddx?b >3g7 4  ;&>LL W.00;os651| ׁ0(\a`pw?1\` 6*Nce b&@ @@&o?^~wL 78dBKld>k \)b#/ /~  20Ig`pHǁzbq쌅N`ey:vNiim|p8'U L! EJ>~|ab/qM,.f~PT8a ߾CϿ@,0ΰS Ki:`l= z3CE/&0|b7 ` X4X>23(+p% 7 z =J G23\?'0e$ԕZ8k 2a`bdF?p] Xbe8znÏoBB}r`KA ]8fdb:~XpK(3{ q뿰 bdN"bbb06!u`IENDB`PK VG1J@nuvola/16x16/apps/important.pngUT T|eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb\ʀ C\E5\=,J9_aE }(7 {1@1!tjH"3 *PX  4<"  ?```07g`f@D^#0@M@IMh/CPN b u6``QRHap# l@Cj   8^,R /8rv aPUgzş'Lbb@]VZW7^҆]Lׯ VV , B| ( &̬5*<,_cgPUVf JJ 4}cp *ifb -!/-ÇOfabbe)4? LLm06vnUQv c~ '+gf`pb#w-AMR^_' ?T4Ǐ s,e8s25xR~ 112p326 A " "' CJ7A& 9   xϿp3} /, OfQ eyYXS22%s!u~IENDB`PK G1FE1GGnuvola/16x16/apps/indeximg.pngUT :eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?CMMwww?`ddDaСCx ]_LLl'@]o1L_<FV% *ɝߊ+X`A Oʠ#`/7@ocd`w@ y ^^]:ĩ 1|{.* 7 #Y K:b+73@"Bf`h򆁃!++͛ \`_>31F0/Xc9PCBB*ϟ~TL?}z `b{!0>c.0Z1x 666  t N`2z ÷o߀ RPN(ALLl(!@7DPBfx,@9,H#H 6p0(++CScPX3%6ѣutt~ #ӧA^ @ nnX))4M|͛7߀ꞧ()IENDB`PK G1ˑ̒,nuvola/16x16/apps/input_devices_settings.pngUT 2eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb?% (APP[K^((*=  nn^7oyիלRVRR5P cݷ?1AGGP.7! # $')  ˽]󝮎LLr * l\L 2@o ߿ ~dÇjAuu|)*(  01)ƍﵵՅ޿{6 b0p3|ۗo  r " `XlƍknAվ+$$𒒊pQTLۧg ҵ ^L23ܹu?3y9qg }@h+200q< F:0c/_ @p +103I}G_ w00~ð' z K^c@,oa`WJ3 ($ A\s?  fnv`\pj?TtU$2vE_޻hl###ó'oد_~{_]Õ `TjIENDB`PK eN1M MMnuvola/16x16/apps/irkick.pngUT mAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxba2333g߿ccc;'ռb?0 0225M?L@߿߿MY&@ h?ޔzͭ 4/P1?yxxTyyy]w9 A7Q\\\M@ɱ~U󢌌d.LL߾}{@q?}8;@=aϟPjxwI1QKo޼ɓ9?~F-`P۷oXXXlt Y11k}  ` fҁzԥ+W|V$Zݧo|/?~]?@1fV6V֟,\߿_c\b)falnaYLL,0}@@o1`yxy^bbqNaX/u^} J t 30M7>>>_|a[S +8 y h)0z_ &}`@J>| P )q`Ja]|\[/_|[PPP . fjt @S^VGK7Mh >40l.O`30^'UիWo_ysnLJBBLʌ | jbLxG^xq>|@LhR3P۷k^||JJ jAhJw?h;0dWOHxq01&@F30O2H-(3<7cI?&Kx}?Qf 0>?`=i0mXIENDB`PKG1‚inuvola/16x16/apps/juk.pngUT (eAPQux -SiP~l6HBBqFL--)T110BH,(ԋzr$(S[Ł؈X0h}p=pPE4 !voޏw}};R, e4k>P |b9Eªc(iuyEŊBs+Ue*ETqt,%QBH1DRAg@L@n@ K8#I\kfxZooG(^hC|5͑!xMMʜ&}|OrI~mŽEa( ;Yv-l! g/eT-XshZx0IJ^G֐M#+3]GE}}3#+c+רĈ߰R<+KJ'muT?75\<>EեxgBF[M![O!}`076 ԟ!JŮC" Mڡŝ[A"a<6S>˨9\tOWm0v}W;qLKũi{?'lwx)es V:KP|vB::M9_G]qF]9ۺ>ه9%J즨)8fIT\IAA_/G \qk+ 6`MA@wtƝ= ƃˀ>p;( w$Gh E0a xD[k[RcKHk3M{dfOBZ]Dhe6j.,392Sps,/vpi3Y0ϧ4{塓V]3&? ^gx{^\>>V&&f1(tQUU=YOOP X e7 ufdd677 cYh :Íw /] @0JϞ=wrw0| kyyáC6mڕ??~ ߿QZZODDMWWO)--sӦ@Ĥa׏=8ԴYĘ̂{5 zz 7s֍ϓ@5; C1|A !.!!!221'%!!]))& YJJ2Aϟ ))a`eKOK|). فaw6;w˗/rrrzAFF?_DX8 ,,ʠpaw7 _~`aa0117+#O `xΠ- (🅃 hagt<(_(0#ׯ @À ×o?n`aˍ f< xxy8~qq33hf a{/3/0}7v]a@ `)?@C~ (>_?0~{`-Aۏ`u@`8 A/ÿ%35;8÷ _b`t?p  & 2Ϟ2*2+103|:3+;;!@ [71| ,@/fcd~6eu6P_f* f&FP]|`9]IENDB`PK G1sߺ"nuvola/16x16/apps/kaddressbook.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?%  ~ɠ(3?~?QAVjG:1uf@ X@_@C20gd``'"K9ӫ/>?t  <4S~]M$5oBf9]2yKvivbBА:("L?xl#t42x|X #Ta( l T"gv1_TE3Q6 Oǐa###ݧ)|7?~ gˠ'!*@@E߿?~koh훫'z/_@'- ߯~A Rgcjo,G+H %  Ѡ}Aq"+_c ҦrOKs1 gdt~1>2 ث@ͻA^ w~o|)7Ms'8`1M {NOa81uE bfdg,lAڇeu5Xĸظ1z- gn`8=wow$݃>@DO7?OXߨGv@e^#rR'V? ^ӛ]+r#@!+ 0Js.dbg 1El@ -kIENDB`PKG1вnuvola/16x16/apps/kalarm.pngUT eAPQux %SiPSg/˓'h@d,y!t QQjB ت(8jSha[GZq> "[0RԈ,${9-X0qx_4/>ًCz{0V{Z p)_YsSh35LצiB֫35u֟5^NDR2%p,`DBE5f*f-%N'N1oz|r# A")0".n}yzz pM@QE2)$w\4C ^>(p K0~pXMVQV͆E|>k**_؍1h}~|r8pb8RCAUf)uKWh4Cd_kĹV6 S& N~Σ%)L"o0hQ.v^?WbIc!ŧPn}3O+8Ԡ):ؽB+3#]/zmEon{SO]i4pBĩhZo,w81~B?\" nZiyV^dtA5u\H,kE_(aemnWhhdb wykvyM PhUݲ݇WY^0C\VdB҂ b?i_6rfD'#zݥkl8T>ID*p@(w4Q"-cf{U8dM|Q EN]il} ӞR- \ӘIUSm]aKv_7 ܟkgΤ>3#zUɭmmozط=ŝq$Ds"hiﲊ3*txVJ~Fhn(Jꓶ$.>:$]njPK G1 H466nuvola/16x16/apps/kalzium.pngUT  eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdfff`bbb77ϟQ 200| ܼY^VVrO_}zmKa`x@1 `eee`ddda5+[2.}??Be33v1q0 ȶJq1(Ynfg`kOXN=V{oO 󟁝Kt%Iﱼ-p;îdfv &3t?y@aA^fc߃?~ K 8]fgf^bidggrvv711z%:9 & dxngwo.?~Ԓ%Kgc(oU4yޓik(KV¡ A 444Xܿ&4YWW xLO>exÙ3g޽(~(g"˯7o8b+&& 'O2:uAEEAPPHT{c[m~& 30v;t?~E01jiiI 䅇1|ADZZVdY!~)Sp1~ }㧓紏 ߿u"""< JJJ @zB`z:0]m+ ۀi'!F&be` TPP#..~(y ~g_B5Ibd@I2di)%9Q`Ö>\@Ⱥafv\arrllJ E ǟ>g(~٣d8 b݄Εji{+z(lR`w<ڣIENDB`PK G1y nuvola/16x16/apps/kappfinder.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbc//f/?o?{C={@VVV ܜ~~ASͬX1W GlhΔ=wn@1+++, M⑑aAMџ9XĔ9\>zG+=lL E[ܸ ?10|d%ûM^9q15899]@, |5l ?~i1cc|U ;  ? 5?N 2W&v6_>2(S}ב e='޿7^V0ܸ~ϢG'@1~GYӗ׭ XT PafvqF\EAMND|붧@Г`p۞_u 3+_?r01&1?20cbz0kkWkIENDB`PK bN12+nuvola/16x16/apps/karm.pngUT mAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb DRCçe`?46eaazwџ[[=db1no@!B@Č@4?+' W`?`B0@o~`L@0028hs121` CA1 2efoc?W7~`d`add`c`ob?/fs/ Y +4 u?]@PPMx~٣?Xd3H+agab57S]̌gN ? L >0a`ɠ" IHG}5V+QK @L1"Go2(2|͇@D3hZrK (>8n3ǯ?%d?~pw8eddxyx ?ә, 3cfdh899dE|VNAESɳo@%̠d 7.|.J_ Q;CoS9M59 _ϯ3|@<+0=UiYRn0353~gki@پȗ[?g?€23 0~>Ǡ _atd,3˻ dX1mݯeJ~exT e)  L 83bHR0&E7xF`Hfej{IENDB`PK G1~:ᄣ nuvola/16x16/apps/kasteroids.pngUT jeAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxbLIIaab3ÓǏ@ lll LL%?~qUS]6 XF&&llY@VNnfu}K}郏?n  ,,, L ?grH퇙 N./ deeYmmmر 899kSXܼ}^'y#-L>zݻw ^^&nnDsskx$CM axٿ_2e'P_@Owۖΰt߿9rdwT߿~MɩJQFۇ̒޿_zԩ_|?@ 77wf27߻_-dE>0`[Ñ;3ϟ?w# Ŕ+*&f_V˗YdT8d.9ϐq~ t)Fٳg#Μ9㪨f﨧 b`cx,@LTh׮{WLÛ7oEB  &D $e~w޾z5FFF.,?.h1+0^|C? ({ax_bb04xyy~|6 d(@O>:\.0vHJqzIENDB`PK L^=1+lIInuvola/16x16/apps/kate.pngUT `ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X+˫Hg?+VƿYK6LE //1@bQdTg`d``ce`b _yVSmGϯ30dq33P @,?C' OaPUfB >UӳOK4}qҜ AS#@3=̔_` "]X&A5) " ْCXCk+ '~{i-nVظy^\p!XADj0P5bO}|7_ee~| "&-y  "JX0T@@N ӵ/>2+  ?o2|#q?۽Wz˪ @ WkWCo2<~ɂZ7#.e)_E0 @L, ?15 odXqÍ_V`aX|_OjH## 0 >=vы_~|g`ebc?bf>!IIMk/@,LLykי 30303;0csp02L 0Eꕿmaf D Y۳@.a>IENDB`PK ]N1E~nuvola/16x16/apps/katomic.pngUT mAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`gxj2v100(002$21001030pZ@,΀ I]CU&ԙ͐?Ï_evvsm $'4'R{Y1ۓ/ܴ;~dr<3H Ŧ B ,Lo?ϟߞPL?@012gfyE2#CB?6mgh.ï Ϝdw$qac@, ,AS ˷00H``k/94 XUdA[7 _20s])*d00NKPbW݋ ϒl\%b 2R b 10<?Ou+0. fp 3p0|o!o"+$'gIO1ɳ^&&] AB - e:9A<MDt$sSYFre8 PQ@f ɪ LIg>?/ Qљ[֭5̞s?7HÍ)Ũ2pL&Odc*&$p4"A 03| n%Ï>3iDxlփ٠ )p Ų~'nN% z+6Įb(083sR?\ӵA2[`_k1x/[AAqs=n:G[9`^R>3Mb10~H CB5.:·G߼Dz$IBF v Y@׬g$x69&@u~wfkLK_mv  ٠Т~۠ LyǕfCJXͤ!byE\))v*r;'05[&~[7g9R2FF2WBV8tz=ek /vsO8k;!QdΪB _F}"8nI/Y؎mt& ]E#2sa[N%=]i-ñ89!yuMRY WRA.]c!m|o"f'Exl+/P^z|GL;o6#ގ։2ělUͻ0: tٍ\kHu᧍Յ:? 9+Ni-aEa-B~nfҸSUu 120 XD 55(r0O]/OIvoMXy~r0ܽoy&C{ /= Ce_1 + ̿AJ߿{"/߁}g`_ L, ?o  # l@הGJ#I//3jf`zABw \^37ff)@C8t|@,L?-J0y < o31?e`cx0ݻA_B LO0H @L-8fp k/m V îAU?''@A & #. A@ÌoD![+k_10zW (&/#_o T}gfb`z0ـNagf tW6v^~y  X\3 h4`D>`?`F )ĕ.~ȉIENDB`PKpH1J(nuvola/16x16/apps/kbackgammon_engine.pngUT fAPQux 5{L[ƿ{^r X^!s@eGDdzz^{.6ąsK5r zx #rerD[<1Y| ^#m [.]/G>Y d)!d2d)0fŒ Ġ<7X|x%EnXk+mNf_FIwu[良}N'˭zWs8VShTa6[òtj#/$xN7ginAtSJPs`@yʍ+78FrԞ]I$EJ7 e(>R3+` 4. ^ 3Sϸ`w&!Eb<?@{~[$? b܂k70 A,FNKIN&RH-uRF&N9/ĺeX fycAphP!P]$h \gߝäm+ q&c?D$( p1]7➍Gm,-m^yN|/,ˋG6_nw}aw؉,>JuBݙ%B\LW*9d3|M`S^8_422rUZ*Ggɶs9/;V6RnmM1\a[X3kgN1VWPҖF.Ui%/n_iKWױ5AL2LCՠFYFYVwHPK G1sdPPnuvola/16x16/apps/kblackbox.pngUT \eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?:`aaQ***---211Mbff`gbg1;999p{/,,tKFFB7 (񼼼+W?'O?|e`  F@<\D&2|L_xp gϾsNٳgسe````O_1{A?30122k / 0 b`#0?'# fxc @,_%7+| @A __8}c￯t˿`,Bp@,d \ @1P򏯌 ?@4 j`@x?p>ad_ݼiū& nNF^K4++$*_, U>};hË?V]HTAVH^ Q?Ãoʟ>;@m0 fPe`{׏߽ '3;o}g ;߹d7@-u @@G20?NF&ɿL:IENDB`PK XN1_^NVVnuvola/16x16/apps/kbrunch.pngUT mAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% >###㏷_wR\zL0111 ٦sqq}.""r(%n@ ,,,( H"6`ccC6 } M3bBhiĚ@׀36Cl 333 akBrP%@,#PTTӧ~ϟ/?d1WZӸ\ ĝ@u6Ǐ߀if? eOP1z j++B^^b{{<<| 3W4~s~e Ï ?Y2p+5FN.&e@cdPP '#0&~02200caxz1 q#0@Y^c`b``z,IV 477ß?`6腏 _Gׯ}fx=';;W/n~fxEAVpeh0?p>@ `eecd1HKK߿dee4Gp]  ~|4AJJϟ? 0AMMVkuU6}p5?~0|AZZl߿Vy\\ _~ePTT`xPO%%9VBFpqqzb <t'y3<{AHH,Čb a (3Ay^2i6AAA &߿h@f TA~e ,VVl00 L@'401c XX.ri@4dH6` P ?)?@ xÇl4Avv`@@d`x ٳwH6X34%aq%?CV { 7_-5&pƹll:ll`ntgIubϟ٥ ee w^K@jdfIENDB`PK H1 Cnuvola/16x16/apps/kchart.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbȠ??0;/eY_?M>i?/L 3 } Z EM 3011}#2G" 'dP0*F< X2 vub3.I0x00< gXWho$3bϟ~e;w0' 03|8÷w a[210t1\x*d; > f*ay/#@_ׁ&g@~a$D L@ @__b8O? ~,?VcP3cyγ vC~ ?1>xp[ XMg 4?^3Y3ot*@%W1Hde`xAA86쿾A x+'VJis61O- /?k^ |T03yFPh201 CS @hY=d]1 0 p?qt(&AFbaa`Vg`gעx3̻S b/3|5+P @1=ó8t.M Ie ONA5M ͠b 6Uw (mrq7 KrsqG{z{B L.l"p՗ 2 pIENDB`PK H1)%[33nuvola/16x16/apps/kcmdevice.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (d ȯ0W[;(N@/IPV0, ,L _21:- B,Bbz, Y!4f& ?^20||Wvナq?@,QaJ'O22B\ z?e &&&VMaQ)N65PA](*% ,$ &..m^I ~007b?!dyE$$H 7o_?:3@ h=(aANN +bQRQ?1h_?@ @@@gsp2 s'';P+ н13e, 2؀ \\ **ʌ<"!!G/_ r*H1R"ff`|C\UUAXXD X٘VVVp: hrRgB?0DY@sP+(Ȑ`AMM ̌L ~gx3 Ffb9~gaa!?#󗡉~#޼} ED$xg&pX2#Á͇^~1 )q?|3wIENDB`PK t91[d% nuvola/16x16/apps/kcmdevices.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxb?% ("22*/kp101113301333ãG/vtt@m@DDdqHHȨ)+0pp10225050 sr31B6'0tAǴD @YXQQHbvy s4%$X3;~]A}ڽO/PE 0~q0|xX88YN&?0\}PsL33'$Zs~FV ;ýw@_>s P]@ P0Ii CI20naLj@O0pOgd`ne:\ )"9#IENDB`PK H1?4ss nuvola/16x16/apps/kcmdrkonqi.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb3+k/??Ǐ?yݖ{N\q=j_  F7\sGGe^>>>1<񃁗Afbbpӧg\'Rb4QW]}wf]ׇx.|c``涎PR2O11-H?p@߿ 0""w_OaP0%{ ^9@>?QFr~bX\U@*Y\TTn߼L @1Mjgg I8'g(׷o > ȘSQ_32A0J /|Pw<<"@ˢAFBC)) !$x sH &;߿320\3J0:U?0^_\c0zHAAAYYoXǏ|r30ov̬?|a:5E (F Ǐ1q~ggg?b) Gf@9!A*fQ7]\o'.Nt' ?a`X @L};&",)i ]`鳲VJHc01ab|j<fsr+)*[A% \N00B4A'R1T::_{s nKfҏeZB e`^",NPпqqÅŀb ٠ɖenC!wN޻^pqrr(Ȱ>z~^ji FP cf(y,GyjIeYYF>0<|a^r?M@ˡ2Sb@:\ݎCЀW_z(0 iN@9IENDB`PK t913;!nuvola/16x16/apps/kcmfontinst.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<SIDATxb?% }}}ut 888 c &F&F?j`ddϟ3Nߴic@UKḰ Y ,k׮ 2ӿ~? >d~c:Ë/o~b`j~_HIX0xм+r ?\d;5\ ӡ oog[X 4 f׿ : L|l/0@]{pw6&fg1݋?o6?;𛅁#K lby?FV 8d$g`-Ǡjp 4F#U_3vD 8~g~ ާw <2  r@g`  ӿO0?cV'?|𺶏;ЋgB6Fhi&`@Lv;%M$yXgz˔N`Tg`jfA`vP3c ILNN[LY3W]}  ؅^ @]@,',\kdn9?gN30៺O ogPc`B30%30 @,Ǯ\^,篗/{10qq3} M옙 e? ?^j3~˳ jF 7oF~ݯ@ Kw{IxǟXXrcbbbf<D ۷׀(@ Oq(:IENDB`PK LsH1"r6nuvola/16x16/apps/kcmkwm.pngUT pfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<YIDATxbLMM},׏e@ bdf 7z1 Xt%5|>?PP << >e`Ѝ,@}6_@_ mvL ? zT-U>|fjd`?C_06:o ϩ3<>.d@, +/- @ 4c`Z 3eq`o߿P ,` `Hf&_," c8bP3 р0p0_H(~A ?@1/(Ήl @Lrҝ"h;#I. d`#^3 3B  sP$\ށ w=0]|J ꔋg94f Lɑp?p!Qp[?#G([M YV %TP~ &T_IENDB`PK OsH1tnuvola/16x16/apps/kcmmemory.pngUT vfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<#IDATxbdpPb`0`򓁁 H3a`d%ĭr׃/ v~b`g| T y1ГQPSfc= sZ Y3~?lhiAAg/o>2ex{?w Iu#M ,3A3w ’&@a1;Ŧ$i` 蚿T+fy.9/5@cE} ARa7c lOJ0k 30s'+?t} v&yH`•AMі!S+e} ]7 A30*2 &&F1 ƞtAiԹ WXix%!Hin s#@n{kmIENDB`PK $sH1)TT#nuvola/16x16/apps/kcmpartitions.pngUT $fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd69 $𗓟AP] ަG{9;%L0fß߾}[ex"/ح_A6̬!l, Jqɺθ.PK3b?$]5!NVg w~)[&&&~bRUdS'f%#ß RL[Yp?? ~e8{$]Au#J LL`IV]$-'w B8??3173{`̛ };Zv(FE/AK}в=Ur[VQ MA ݹB^ ali%%'AȷAKG+EypK,2# 8Ahpp+ A-/;'*6,MQV `!(ׯ_@S2$NcbdT߾3034% },}o9 ( dï_?`A lçO| ={p/^a+bcc+%&p-x*/n3 +Ó'O31'XZZr@ ,F0A ?~|gz6sݻw A[n_񫗌;/ß?}7,ѝ%@?o Fpby///8~exPG~ }7ݻ@g`ee'0|ٻw00[T BD*6IENDB`PKsH1[nuvola/16x16/apps/kcmpci.pngUT fAPQux %S}L[ua Zm.:!~ hB&aERȇMA'kȾ cbue★BBtYl(twϚqܜs*mIٚ[J_/>`N؏D5Iݞ.j)Ѷlַ;uCsNRAAw@WGb[Ga"wdkWY,u߇~._|`<EϞ=4-BbАOׯCL&:޽{ ߿gZ ߿}; @~!aL-Ԏ>p}kXXX.x~ ýwL,؅$=oݼ@,~* _޿c8q(8A{߾ dePd`It'@1G <1-)l $cgO2ȑ>ll,7*r@, HÏ?tuu6WT Sqpp^cdd@Ąϟ6Ɔ[ 899e&O(mkǏ 5@@1++뀜 o/ss UU| ~AAs d{I12  \]#lm̼ [??y/ZWoo|?,, ?@1891XZ~{;w+ #Uw8.?0@1ƻ8KM|CIIѯ͛Wv Uappcֻsٳgo޼/vZ>@ S?>{h g9+q«W?x[?t͛WU@LL̞zR@xޣg߿Jtߛ7ݞ?*{ο˗?w%YajjA`ӦZ **`n .ckyiڴ.P_(0@ҒŖc΁ ٷ33 U_۲e@- }7tuן8q,wÇOb˗/""qT 0"ر3@._G`K/**yE3C44t:t? ,\쿀q4 @ ћ}//|`X@4gi\ 2DŽ<IENDB`PK t91*OvYnuvola/16x16/apps/kcmsystem.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?% X@###VƙLbbE[}heeo$7aBO>DDW޽}77O\Sojj+r@4 )HyxJ2bB:,XNNvO6ӿ ϟy5n@MdIWjj*7qr÷o?XYY޾}uIWWݼg1겗U ̀ mh31`pq4x Ù37~gk`cdq í[> ؀|&&Pd_F^1|  LLL ̬ ۶m2/@ xNŔ)^|PWW{뗿=y( hC-[V驿 {@17440Ɔ=`bb5555eUsQ  62cdܽ{7nj ďA@`| 0MU077ɓWV\_6 @ˏΞU]F!!ׯ?0 Wի/z97@ `)ِ=Yo||拥Kwu9bn@ \66Ι_~pm\\܊_~9 {ķv  d@j8bPĿ]` ZZ dϐIENDB`PK sH1Onuvola/16x16/apps/kcmx.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?% X@D⇶,슌IY' 01s28La'_6"3~%=Kn5@1 t!a ̥@V PlA:r2Ǿ,;'OضO]33Ip1x-fp4{ȕ@.V>6[w3kxf`cg7+eY4_z%8y6\@PX }{_ϩҨb*=ܻyr꓄ l < \b z5wosg W~W!@=V@,PpBieqLƶ+.PF#N#o8>nXUA_O3LA7 ÿB D~J%KK5t];4  &GgC% SV_V1 #RF/FF.Sfs43XyPŸ!ʠ)7xҿ Mf@ 3`dM12 .6NiN. ۪go,yz6j?4%y(ȩ LRZ?T#SW_R@` }=rs*"F3020.n87ozz?6fXb(b'7Njۊb# 3 /2Lc adbdf{|L8[IENDB`PK sH1\J#nuvola/16x16/apps/kcolorchooser.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxbUb 7ßؔDs$n]m~ f}A%ٸY2T^Wi ׽_| Y4"zNE@_CIv3\q ?9}@,YaZ? _|`fxG_>ef&| >c@O}6?X.>oOn-ï,zL 2ܒM.L2,_/~ޗ_}T JXy Y;KU&Ȱp2|$cf l ¬_|lbb/f?1uisXna`8ݑZ϶? 3ëc*}A(i&3ӟ|_|[xO4t&cf1I \, @ 4@Iל56p?F`L@$ 6b`jV;~A4kCeUYH |7  R5ocS_nLMV~de#BAA_FAF03 G>2 e``bcPagf ! fs_ Nn >_`fpWRPo0b~us1 ? d`b  ; +1Iw1{'+P?o߿0nq^>bcax; ELM_VQ&q1{-Nv_q4 8>`ݷxg8v ń8a>0o u!['1(i01:Ǿ6=T qhe`0Vd` (ʀe~W[IENDB`PK sH1K^^nuvola/16x16/apps/kcontrol.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbtuue`ddfPTT^rW/v쩂c11Q+++Q ?ϟ֭[{ X݇/amm R/[XyOVV722 f`ffv355{4P]@1deK˧cl㦝}֮_HHd:33Ò%K{Bb_&&l i99ut 8q?߾}.OO7 󗗗|/A29vvK\4_}?ss?VVvsĒܺuy f11X]#a^.C#3nCc^vNo22|MPH8G}ڴ ޽ Ը <_@GIY h] !ʠwə3'?{1+ۣ2@1Kg^?|ͧ=do؍ӌnb`ma'ql,}@@YXeXYY9x`]D?5k_yy~ 9m VڿR %1Aovlcr<*-'ץ|ϟ 4 e&Tz{}ߴa 'qߗ 6g'##ѥKT޼y @NLtNLGK.S__z''>߿.Π`jc #*"¬#G   @Ae ;;\@, ~}a^6{i2\޳a  fSC_Bs@OP ؀g8!2g-ow03,dcuC٫  /p30D&{aCIX 0׹22 0?YYr 230p00l<&jvDG20[Յ _dX>`byûL lߙa?@O @xD#Z0aㅿ | zsOA XBç 70nnVO_~1|şR ۟ .F; >WGt3N`-y&+2 W3Hsx^cR/C&{*$a w ?W@. dP@E= IENDB`PK sH1. nuvola/16x16/apps/kdict.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb?e`xq7e9%:IGNy3`=` dhد ?2VV0tPb~O|,/Ffbm%7/kï _>b8vúܛZ~; !1Y#AVF _20x tՄ2u+؀ f_ 00 d;}(/*P 7މwjoA| ,Ԭ@p^=|y_ _5_A+ -56}(X@ ݱ +@} cbP`b ~?o0? O}cac`Wja o{@ɗ_Pۡ. tٓ`ѐjQ \[_dph_heaPSUe`1  3}_]_?/0{ AASC Mҕ__(%#Ѐdg0`_ \,]ðcVfq>KߏEDH.#x2ѝ~; zj-H@18?]$d n_`(U7il|b kf^B .`̐ZXa#C7 i]B#IENDB`PK t91 nuvola/16x16/apps/kdisknav.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<ZIDATxb?% XR? Fs36O|} _E]^}y-nONXs;@eu0202 3J7|bwcfag w.@Hl0:}œ3? ET XxdxXUx9ٔ9K]g`·&2̂L6vOL? >cxo)QV~^vv@7%3vQy?gȋSQo?~ 01goϿNz/6yt/Ogpe @Ww ?yw Pѧ o20 5Ƞ D E20]7?f ;># a s [6 (; @|x>m=GH4p@03P>qK ߺ33J ۯd0#7t&`}v  4aX׉oOs^·π  @3 }Aݳ u^tO;~~rOH2ZL@?Yd|a5_' ˖[E-9? `/8צw]qϣ*D\N.aߞ?_ߟo.|ꯠ į1@,+10@='`yY-IENDB`PK rH1gNnuvola/16x16/apps/kdmconfig.pngUT ̆fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Vn y9jꌿ^߲f[Od=^A á >g8S N.??~*DoJeacd`vAW_ZM+]bf_y\`Qo fxf%l+ºA'Grd@|ADMP e_~30z{'_Z3=']6cƛ3^d@A6'(0%> Vk 5/9ޡ#~Ma Ν`be abcc5Ϻ}G A @COE 5 EEX(Pޚѯ ;303|>AfQ@ͬ@=b3bgA5'1Q zt5(:vA  )%' Gp6YKVB |d)å?XX3s113H 2(jJ3(122g4]ۿE?3|c)+ "6 l< _O ~d b Ʈ|m'Wu}``02S8~] XϾ?ZW> g:`/\hˌnY# $Qp-O/o= F[I38b#1z ܜ LL g+k7o{8hP~C ladfſקw0 IENDB`PK rH1O[^nuvola/16x16/apps/kedit.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?222`Y5I}\+s({';qpݿ  @,0? vgVcg`ڵ!]ns Ēs;X900lW a8- R@p0i|,e R: /J20sg}: @,l 'r88/˛gOOg8xݳ/zAf$  ] B$B1 tIhN?O=ax^D3 g}g`(A*@ Uz_~Põc n]W- )X;8+3pw0Ýcl MPT ܮ%'&R+܀1~~v?;L@0K }7 O??P> Kl'S D>[s|IENDB`PK 'sH1DC$nuvola/16x16/apps/keditbookmarks.pngUT *fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<kIDATxb?% Ab''Wp$1Z/UFA^&&]WW髫cc&&wwwBΧROׯ@ ljF?TTD[2C`F w1:7w'#çO C x/4cd?CHP P %eb CPOffo ? DF3||nC 7g`pgC76{sr~JaLa"#ԸDH1]فI!Wn TX-2egE)ͿIENDB`PK t91:"nuvola/16x16/apps/key_bindings.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<cIDATxb?% X@D%##f ?@AELNOFYيYv ʳ1@ r/F0 Ϟ1,ʿK[b OAB#i Nd/_d Z*Т 6@PF&(660>PT]/P;o?3{Ͽ ao=NKfV S @(0 ÿb` & @`^]z 30 hUk~o0|SF  ^x|¾Wr 0 h9Dmoa #-`e6gp۷X<?L o>a0sdtqg`g`bfvۊ(';;;(Vmmm.N.w003ߧO  @]/n.f sqq1010gN3{+k r:-@A &= I+b:Ͻ e`c`3_ϟ>2(ff&N`ygeceKZ0|s vl}5g^@`?A40iEoa+|aō?VC:֣G3| #؁h߿wו{7c`8 T 9؀={ :!YXX=֯_s3@vH:_IENDB`PK rH1 [Rdd!nuvola/16x16/apps/keybindings.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbׯ \\ XY^~(, `N^FƎEҥebb@b?߿9}vUа֕g}a+ Ku` ##ct0'# LO2W >121 ob`0Z f@{{Yww pKJ2pr2 ?od?ï?ceaac`d@1 ,P~᧜<_5ǧ @,` tCoΝc ?Ꮞ_`?3`S*ea fo4tu052߯?ߺKS_tt_{ׯA6af 0A`.rxA O<#"+1/693"!7=nV(6qE88Dń8ؙXY@LE˭/_~cbb ĿP ~߻ˠn ))L7c@Ѐ ~BTT1| Bdh?`rss] dg @~͸U~5??1A!NbFvXq?b ?~_z} }ֿg_3Ŝr}o]@C ?ÇJ)=(xƃ߾}9~zh 5䊓MTnͣ_'2H(W Wm/%IENDB`PK rH1Ċ;Enuvola/16x16/apps/keyboard.pngUT چfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?uva3#FF1yx;tkÆy~ψvx=ݻdd>~|4AJJϟ? 0AMMVkuU6}p5?~0|AZZl߿Vy\\ _~ePTT`xPO%%9VBFpqqzb <t'y3<{AHH,Čb a (3Ay^2i6AAA &߿h@f TA~e ,VVl00 L@'401c XX.ri@4dH6` P ?)?@ xÇl4Avv`@@d`x ٳwH6X34%aq%?CV { 7_-5&pƹll:ll`ntgIubϟ٥ ee w^K@jdfIENDB`PK rH166%nuvola/16x16/apps/keyboard_layout.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAi33<(/C H#*ݏe Yq_ϔR`gW60a`PQb`xP |~ X~qqn_x")% % P!χ), 8V(z<0 7\q"QR?jl/yf,  bŃ8 u7Fe @,30? P3?P1\@[/8N= ++>AC& RaWc EAJ&16ع ݪܰRU  %,f 7dff`gROh@ad` 5xY^{-Š (͠pbQFU%9)1!6V,f'babbbPRfeLc``e``! hAI 00prC_p<4D+/'0<Ӈ[ 2e`@,cf`cc +mG~0ں{8u.c'eFfF!by+Ñ#7޽t.bb" 8}&Nvbx{>0}  of^p]_7ؘei ,,~7!~ay} } -@nHXIENDB`PK rH15嘔wwnuvola/16x16/apps/kfig.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxAAAA\t T,8  aA :iec/024  /߿ Ŀ3~2[2y% _c@L@l ,R +1ܽQAX[ ܒ`y L €=57.1A4$C *bWؿ`x;[A6zbSW1ro?2@w~~EcUO΋ϷEGD$'۫0n`x >Khg`p-w6%am@{߯|AJU=&`z +2+ i?Ŷ7db7N~c8Gv \&< @,rr |0 ex/^H341 77/;777߿Y8x?c`}r /B < l,l@,@;@y0 @Xyy1#0er ã9b @2zjEqq*0[ 1#b6#0318(?30Z$`Z!oIENDB`PK *qH1OPbLLnuvola/16x16/apps/kfind.pngUT pfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbad`fboQV;ޝ8+׫߿ ApY[гWdVd`afb/O>8ɰc{n@E_toN )A>N|a`gp,͛u/_7yl@1iGfadfg``j7Xx23}}.xi?A6 XTJ8U``fe`pa`!NF f`PdS`xUP<0ODS@Z hu@,' ߁ 7#Ѓ . @GA]Rw= ^/4+c×?|A6 $$ezyg!&ky]Iw )1?߻ j@12 3;A#0/00bk ¬bXh>\`d1߿4 ޽;p&gR tS1(HH1MherSX. }o 7>>zpYg|ќXIq\AߙrOy-EAHHO xCEW ARRV| ""$0015O>O-((A 헗mouG;sA h,VV\+@Ď}QZZ_F?~ݬl{x ߾}˗ϫzOVPw`|oQu^IENDB`PK rH1cYYnuvola/16x16/apps/kfloppy.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAWX[/$ 괰ŽA ),1-''")  uGa;+*x,ֳ)mg``կ? /fdePfcge`aec*' t@re7f o~3|7_? 9>}7o~hba`+*WFʙ |a 320h7Y`@@@1|􋁗ᣜÓ7Y/2<}pS/0X3t,0XYA  @MK`/2|9C W ^j{29aaa8pA @ 0cceRw``'CKOx1H2  pd^bA?Яa`߱Z Z +3l:4/b51&Ef%P'62H`) ĝ X_a`~{AA =g6rå>baP>Aul<` T3 fL@3 d5e2 !^z !v2= t7ob L h7n.v 0<6 a &XYӿlo?0,1 ǿ2|J ZӖ0Աcx;{˵3 ljlq7FlL(B < 80?Ƙ>k o@ pn 5c qC@mdN{běIENDB`PK -qH13vɿnuvola/16x16/apps/kfm.pngUT vfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxb?gI&&F&O>1kMfgc8ylgϮ4g b* {@, P2߿ cAMd!g//1#) Nu^.lB _20|+׎۹w7oop֗/on@dD| EMug^O@H3eZ/#'}[2 IQkS _@_F l b"\I }_~t;3o \ | ?30z_=`&FYENf 7N]bT`Sco2<}/e @nAFV]э O-}^<_@aس '/ (p27$ ^E 1ppq~1l at?`=û L _ L@_ f 109̭`C@!Щt  ߲um@6KI  h#3 _ߘ훛[@w6{p(򕈮/_ e8yi(1Mn\r@-'@@ S,}׍s|og3c`g  :[HCBO*lmk"40Zk ^DIENDB`PK n N1e"o''nuvola/16x16/apps/kfm_home.pngUT mAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% Á0)'g`?̟3g` >νO&bc48ÿle`Ie Բf` @Ľ n\0| oc?#PǛ_|%xgr  f-6e.mfl"Vj J< ?c7 @/0mgav+ # _D? =&2I3Z10pr30?W?)6V̺g}?@LL?AQZ[E狟 _?× 1ff$#f5 ARP2   % #rA+  ? 70 :' $nɚo,fv4? o  2lMc`b(x @LN _ 7_x `/ 7 0Ҥy1ĉ>a`baB h+#+ VNw y3s00 ARM/mF1pbߟ|Y50y K.6Nq`6>pd"W`9 XvO.MtWfqQ0``2@<@\ d{(Ñ]{uo `9ba GvI38ç agfX@o*E &vffnI)f(, 7ï@O ŗ w_10|̀0? @O} r^ A_ df @ ne``Z7&ba&7@ۿ}: p_3x4/?tD/ '?6|p90`d`_)1_ 1 3&6ai_= }``x VFnQ_᷈(3Iv =s;3;G`p| w)A`|e`xܜ ,irqݥG$2IENDB`PK t91ٻ/ nuvola/16x16/apps/kghostview.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` a6opE~fex77vvv?0 @L0O1\῔5c å ;oc`aa[l@ 9ٓg p2=e o`xXĂ _a`gxw b ϸ^<T dA/&P5< d`bf "9|x j'+_3AJ^@ ZN^ o=`Ûg/.`("!/f4@pȐs e'Dα67  8a1qqww@?g``n 62* f:puMP<.@XXf>ܤ+=Z#>B0zq.6X @fgPcIENDB`PK'qH1TnEnuvola/16x16/apps/kgpg.pngUT jfAPQux 5iPSgO7Q.!-[I]P-7"K++a8b 1UqPS:k[!c.$ނ" 0+s~<ϟms4ZN?'ߌM_mN9}#d#{2SqԧLEV ffDE',-#ۜr4#N2|c$D]9uT$6RA˘;TZ@$YRg3;eIH1vpG\"\iحc?4IYXZc?>9\\1up<|0euV6; yq<<1 k|511't 7Ŝi&[&z.JDunc4]D`0۷=ōCT䆈 PK pH1],,nuvola/16x16/apps/khangman.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?1#}Sd`wO1K20Hq0O}_>@L 0 )q89&1M@Y!߿|O|[x Lz1h㯿@hIpZ.^DvnoN,ع$~3 00j~e`g ,@w1 37#_~|daS/h~/; RjcA{\P([co3{ X!wόQxJfFxG2$@2r*2_e_?2qPgsbZN" kS5@38YYD8sO ?A'~Qa8f``ccd`bˠ"`ӏN^ Ы^a` 57G/f`y _cx+Ëd/NHf .4pfebdeexMߣefe"0;o 4L93K7LUuMx'Í[U'`2B J as/ÅscbbddLi~@@>}`%E 0co< #؀Lr"T.?jxWE mb`#+Ka\1.O|a@ \Mr722D?|Տ" W_1yΙ[z  \ oQcf(-`7#㿿? ׫?~w&P;mwIENDB`PK |G1َSS!nuvola/16x16/apps/khelpcenter.pngUT eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% c@'7wQ8/_ݻuCs!?0|Ͽ 2 *(seA-YB S))66 ,"". .9A. *4=BW ۹""¾!Sp5:ڵed30tnx;[--P͕sw[9|fb`0 &1eG>Ee`_~}# ?zz;; 30s0Y23 R^ˤ1>D{dnBG' =WR59+}(du/#O&_2~$&#~ jXrAմ /0thh3-#HH&+Tb!XGlmܺ w??(O24@L?q,@Ge?bd`gbbQUP?胻o~ A8%x!A>14.5yQ8z;/ Sd:;'ß?) gzpŃ_%c7n?}*0Ms0031 `80dx .г7IENDB`PKRN1bV nuvola/16x16/apps/khexedit.pngUT |mAPQux ={LSw}p  u?x7T pH@Ά 18&ƌA2"PQm"NaARNq7< ķR/ؤ;[Q[|J(f㒻ū-++.UXIZXNQg:oOSVDH@ }#y.1\,DHDL8 f]wt2Z&pxazit NַЎ%X=wYaPAN*&" `)-jH0^XDzBa< 6,lll LvBLRx>5=3ُE%(J&vÚ4s$ N:ؑ lex|x.P|Kǂͅ;6\L< 57c1q@l̯܃k.z/ ,ܷX WCUM&~geyjLLMy埋&0% 7 wnUBN6}[cfN;*yh^~W|}TMVAws\ͷVOVe#߃9XuzO؟[y4{&w_/COv|C&v>`Kk^w:p?i׬̼fi0Fv=O)eR!>m79h3L`Dɢ>n2C+ZPf[QNTF8|ڐ%gG|ڣWi¿|R%FJ"3]xp l^s;),w{WU;׍Ll1l4 pߕKEOPU^r᧿T*tnwG0Er޵ ҧzqR,G>ahPW5QWaf/k8lhDgZf2\\oas!`H1-~\_ pϲ͌_k qYPK ON1p[ʂnuvola/16x16/apps/khotkeys.pngUT vmAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Ï+͛l̬g/ ~sod{;|P a` ? _gݻ_4K2y f WOc;??7Ï?TTT 4++ï Nf{ Mgfebbkg_2egbPVQdf2+P3 5f@?AZF 22R   PvШ@AFߥx>`be{ "? \ @ `2 f6Vp,F@@ @2@6ȵȀ`1@A&ff fbf@l K@av'@Al+3+7;FV`Bb@Ap??Е?~cZ 2 . Oo>/V !'O0 \$ W_0<Ά?1 ȿ 2@@ `u Ef!Ǐ0~{ = lf[yFF&`XC9(7 L_1| 98YtXJLvԟ]^gy/ڟ  [rERIENDB`PK t91%K@@nuvola/16x16/apps/kig.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd[[[ fFFpNA",l ~|e`?#o ?[]< @, ~!bkg[wV2(fSb`' ~c`oF.v۹lxxxx ]^\aRd|9å8l}u {  @ \l : wfrx%o2e2|9k##@ @o`xu[1Q @y1a.b-}kh'#@ `N>C }?Aޚ۷ ߿d`gɠp5NNff&b90E?."2u22 ? Z ߱0ug}wA5;@Eϲ>RIE+1 Aظ̲YJXB!h]]16 >aPbbXq7#/"ËOCVÿ@ (va~_2|AK/_O2<{~ۯDJx~ ?L \L~bb{ϏX޿y /@􏕕h;"I ?[FKHwpfѣ=z'X mg:+ Lb^<IENDB`PK pH1~ppnuvola/16x16/apps/kiten.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% AFFF MO1 𵵴x1--ӧy W!!11q}F`uU #M-m~%aaAvvFW\g \@,aBBv`ffDh4#/?# +ß~l ll LLL  @( _=V~~q\ l, 8836f&,"~_0qa _͍X*JXXb20\7" ޿c`5u.L0p@pA&322󗁭3ϟC-Gu@!\`g`!z鷮@LȜ011 [  d/)+>hKXÿV = ~3X0S&9#;;;08y8 @,`} 8_ 40ο~gxíoZ2= 0VY 1߾d{ñcG:tի?0|SVVs_b$+Laܹp'O-@k7 a{` FNNN?F xo_|ϟm@E4c0KIENDB`PK t91Ӣnuvola/16x16/apps/kivio.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb4;_[O/ , =6)b߼;}. pD)Cx.k0?SoWR]@= {` 'o100130uȔuE9y ܀7 q302yb; (oL 20l>eeꏵ3( [:2Occ`p 1#@gb欟kgg3Sed`u%'s10:_TBX*s( X<`r@1A Р/@-Đ#P9@XJ>/ |g`_B XpH۵_3~ 32(0:231pǘA! @,|fn8!F[ F>a1 ppz9#&Rr{ 2 xg,_N:qvleg8|h  _-y3;V 1t6?+b-~?ip\;usO6|__!,07؁<]}f# @cU@ &Fo_l2PvJIENDB`PK pH1Qnuvola/16x16/apps/klettres.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<[IDATxb?% ALFC  MO1 xA/$$)S***2/20$yzIcS AP=(#>xb;H6  #?Y=8xE?0`++#ן ంbPH?  @b1 @L(&  (6 (6 H2[( 1Xc6$yba`F #.`aaaa`b`e'Û_npr2|d`匠g L@w& 0pp|cxmߵǙ={??6or\\߽ @z.{X#^4`dbf y?8y[ js@ n<<߾q /'#9y<?ކ ه`o ߠ lIENDB`PK t9177nuvola/16x16/apps/klipper.pngUT gUAPQux PNG  IHDRagAMA7bKGD pHYsHHFk>IDATxڥMhy3$IW%V-XqV\<Mœz DYDî=qY+GU55h6|cf߃ԋxOSJ=2}f# @cU@[Nj}m9djh oqi?70d,A7ӏ3XY;x022@LzO~~a`>Πh3/~|SUdTLYx  !1 B_< x🃙A8 k7o1,7+OJ Oib9k*(*00fc$m?2XII2<%]< 4 A +"˽%hY<>&O~>9YZα/ dɊlgO - G/(acAjqeFׅe @? Pdfz4ZTY@OJd۶g2@`bd 1Z}we͋_y@ /0|ݻ 0og \l _b`|P`>98IENDB`PK pH1;;nuvola/16x16/apps/kmahjong.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?23202\&F_1e;tfw" \LL  &(`baf`d`d#Zr[ 0@! `fb$"𞋃/Č~ŏEH9VV@pa 8ç@ NDV]0@^4Oa +뿌7$u saUll2l2jeq$>p?N>,W _>eë ^fXo=1l L 58$nݥ$>G10𿝑ЅVq?PsH@ i@""WJzvu*(* -͠ 033̻moU@ @˝y >`cyСp$qn7P ! ^Pf9XdzH@c7%"%&z=: ~n@ 0ef M%p$1aI 7@!r/Hr\An$6o`?#.4QfsFe?C Pz z1 *IENDB`PK pH18||nuvola/16x16/apps/kmail.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbtwcRQ^w͚ͯ^ݘ?^^^!?2|-ڟ@ ,%_o~1pqfg[g9x/?~ßL e/bVP 44TWPfq100 Wȳß@> gח\c ç ?02(+0zz:Ͼxzh@1z2𰥦$[ʈ3z_ ߿30nNNF)}9CWg*A!KK+-+"=@/W[JɢdECSrݏ?{ =~ l@fd`HJeABZ_0@,Ғa8|*7XYDD89~bdcHJdf10ܼ@18gZ9(3K00033q1gfaHUbPS 'g;vF(nemcŠ$`h Ơ)t;ï? Z ߾ a߾\>]_@@dD5$|f`ANAOADWF_@:h?FGs>~|(@1sr~3d:PwbF`1ߠ]/ L' ~t7^7W@H_10? N|p]&8x/`j`b 1|WMUUm< +ǔ)01xORUUyw;y ba?8ݻ?/(uwwb ̙T^x+כ=zT XXYY:;9ٮT9sn322wvvnL ^|0wo?@ ..A ~o^r{𿥥o߾N4d@ABBQ))5TT`EXXWo?yy?'#0P11 q2Å݇ kn&!I_Dܹ#A&'$03-% Z. bbe  q.7'ފݗ 00y?g8x(Ïcb033bdqpfdd Ai $  ˯A׺JHD ¢ERR%&Mv_ \z')a>1`Дcx +Õ+O|0)@hj1prrGG)*mùK/?/` Ġ(]N tb`tn 2|IS@o 3gcxɯh6iY3lXg/cJsb`22i%g[;8s2J i`vq _ o 3<|;O.^ LPową M?~|kTs@<,SPL.^CCN(E@Z_IENDB`PK pH1r.WWnuvola/16x16/apps/kmenuedit.pngUT ̂fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% XE A?Ȳ1a6vvoi @,**g$h.##؀} .(ϟ?9޿b@,Frv_}c`di LL@a 7ex'v63'@ܽu_?Y~5 3Çw'13 I XX1:?/HP;H'~3X32r1a󛁁 (,#@`@m@ d0/Obދ1ˇ 7_gZ?~At 34K3Ï| {@fa VVƟ?3|@ŋ7m\@Mˏ_&&Q[ ^bNt XDDv,aBzar! w> 7@a' w@I32|}$/ps0+ by'3Fx,@; 1@@m@C˗OO߽{Yx `i_IENDB`PK t91Q8||"nuvola/16x16/apps/kmessedwords.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbda`0oa`g``bc`d'nMYSk^R éH?` XXx~``OZE+^AQ6v _5@11|`x8!P2CT_;aC| ?6ˀ K #7 L 0Mܗo!n}^}8X?à fF/2s0TQbcP#ɍ||)F|9+I}QWCp|Ce7P#@@ 3 G~{ []zuo00빘10 YMPqE" ' 曟 ?3 f>_Ro\`ka;PbRQii˰f[geg;7ٙd?1>y'&[ѮM*G8Aﭸ%K_:Z"kI? j78vA Q7(7( : ?<x  ͪȷA$+NL+0 EF8_,)+4*rXbu~+ w%: %Ar 6&dH *#ڰ' q)#i&v KA_ #C4  %4?@ O!OTb=NbgM `c_\AӐYGN0Y`I&i`zb F&vvvVG>ϰ <_30פ;+p30\= zٳw IENDB`PK 9sH1nuvola/16x16/apps/kmid.pngUT NfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb?% ((##s_n޼ ))W^1'N`PTTo3~uV@`nZj&=c3 {}{oD̤Z1ʽsV"9'wܝR &`ceee`bbb`ddd`ff; (@|Al `0P?Ԛ9jvmM`3"3QU#2a0/C$d3}"`*/ZD| l, |` @.`:d 4* 3dkkˠGm` džea|` B۱Fˑ)M0~m VF{Wp~^ P@a y& "@4(ba( ~13$8J `a FbpҗŒd>&&F1 ƞtAiԹ WXix%!Hin s#@n{kmIENDB`PK pH1W1nuvola/16x16/apps/kmines.pngUT ԂfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\ %```be`p/!FUϾav! & ! ,? [by*g`Xc-u} ?ß_] 6b9.&@'zP4!ۉVA+NFװbawf`zz/3?u߿]߾Tc``#  ï_~2p u _>߿ V30 `A7 w߾0|KPR[S{ V *: ?tL, /fENNr[ sk+^#&9SEAq DVVQQUO1VGGkW3+sVA ߟC |r<!+%bkcm if&`P ~dPTUg1#?A  1MCGI%$#$][A!!( /000 / 'd) #0J8>C, q3\8t ׮?@,~VV6|B ?aH?| ϟcrG_rwwe*02Nb b*mmLmXUXXyp crĽW/FFW#R@1JHH3x񔅕V^^)YJZС=_Ν;zӧw3I< i  lFiIENDB`PKRsH1@qINnuvola/16x16/apps/kmix.pngUT |fAPQux -kLSϽ-Pڋ-]/`@`B60dqA q~H^|Xa\cn-B ygs}R>rs^̍HIPb$X_ѡ`!=fA@@P}}}G>4hBu2X@Fh8oe@UGS[bo;IFPL6ٷk;\/$ُ50D!B&X8aR-\rۣ]u> 0{jJOY6mT 1@GJD "899?44(QSyI/t*d;9@bdfn2n;15X~c^cUxm+2ʚ/x<ݖg!E,_ ui]oD-w5kZbkX\>CU"}Ni&G]}aN<,Q DW%\WȋFCC@!(f~c٘-W7~hx_cڍ'A]]EV]YlS5UWd~DJ?tTs/c ’1RW&ӗ\"I79JR_C]]Yޞ3f j#=0Lu@mh\"VE_cP6h0% 8:-X͠1^;;3:`ks;jQ-j_\n0_bMZ`޴ 7)@yvwMOO.LfXSyzhW|}1L$:[P1qcn ǽAP077Gi +娍dЗxr+Zׄ*N$ tw_>-e4tb4E5<4\qf-?4r{?? 'r.^Ma(Rb -UҘ&W q9,,˲ 6"t+r]$JTPK UsH1Ѓ``nuvola/16x16/apps/kmoon.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdȸŒ R\j?_Oo\~-\zc&66_30@  nmIg}wewo3prssJhʪIj[sĽ{O3 @12yB77y5DXXڨYk|dg`b`xS3j>A.!;"0># '?Ұ h5vTO&,;ëg\L *,<=@< ` w!@' \ ~3Y3I2020pj)10 ï 5ZQ؜Y|? ?axw'waet7@}0$×+3: ##t FKqIpvVVf& w9y 20 01/\n"-(`!p @ybۿ@$At^knf,'ël$>={T @11 d _ `dlϳۛj]d%8a0>qUO3JvA~]'g~/xL3;+? 22,ρ~]@,LoHɹWbr{Ňz߿@GєS.U b (/_c X%#Nfj?1rsˊ3d`7PpsôFS:3 E`y[A)FvI{g||{c`5 (3(d]89$,LyD9!o//}߀D`q֐IENDB`PK EN1x? nuvola/16x16/apps/kmousetool.pngUT bmAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?% (A..)J55.ܺŏX}|,,AEUEA^I bb OT]dS{4b~}ɻwo89S M-t~|gc~+ß| l l J*< RRnGnųgt{טXDxx:!6 1)Fee3w1bV)+,ai"(-ALTkFVVfFh@}}qgOY,Nޱ EE |}-$-ϣt{)YFa!.oX"Ht ֭9/]T/0Ah 9rA ּx~u74$D.y #+p?@;g3'X_?߼vj< gP`gg tɯ_gz+åK܀߿Ç;(%.1aFq)fN^``axçL W.@~}/(1p~wr 0|.3,3(7kvp 0 SGܿ}*8H`g3>aʆ^]. FAA _ÿx~~wjΣ/ls/# LzIENDB`PK YsH1qe/ nuvola/16x16/apps/kmplot.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<gIDATxb!g` __~13022 fI1rp1}_]]4bvuue?PHo&۷o1l߾!((APPhfff&~~/1p rAV $h89vRU Bܝ6q̬_.lȀ)<`'t˧ ?2p 0(((2e30111## 1?H 303g/fe}xE_> uNg`33 h˷Od4#AK\\ 2"%&ƠʖAW3w3|~A'K ݾt0)0 XDE??Pf!!`5OI)+3?͋A܀Ճ@,"ȟ?@10{yE0޸ߟ? _~+0`}=~F3+P 44d`dc:? ,@Dj')k؀?T=c:A1F c&̈@o_AAgZO@,/^`w8?/}x~{t7hrf'o8? T YYYMRJy q.8" #Pɓ'k G-c\IENDB`PK t91A^^!nuvola/16x16/apps/knewsticker.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ("9UTT ͵5T_<ϟoj~# Y%U=,%$Y_>7o>WQQL&@ @hh,[?yߺ߹Hڭ?oeQA. pLqq /_f`aabV  ?}c8u$C\|5P,ț 6@@@۷/^z #O0| >~e~Ç,M@@a@`<ŋ@3ho301Lkj3D~?%pͷn_COi)E'G/.v~M-myy`Vpʉ'O_10_ ߾ << 6dnZ]1' ̬l, L@*n޼Ā ֯^;_>w|B66@5Q@@lnmm_rܼG||Brq@: ,i ĦyCDDb^@lĒиG?OHP@t@a3dԙ(qF&fIENDB`PK \sH1lnuvola/16x16/apps/knode.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxb?% XXXde%.]Ơ$'w#^'QQaS QE qzּY7n\acc@, f񓎼L ++ yuΜ9b뗼RK#N @1_0|۷`445.o{ XXXrt8 %wށ\a}`fnƦl0@1x&[Z2ܿ,`0hAAA?~09rOO//A@LW^zb|D1|˗/@W|dx5Û7oܾCGO3) ' --lXY~ @ |{;߾:uj @1srҌc iP *./s~bz剓' ߿3|#͛>ܺu@1ߗ/,xy v6VVV0 r(68nc"rYFF ߮'pl9OHx bxCkk˧35' /8(]IGG˄ uu*++>}*E@}aa@̬`/_8ɕ%&&tokk{r `?EL `9ul|NNNk׼9ql`jT Wn FvvڠgaaMΏߧo<`aIENDB`PK pH1nuvola/16x16/apps/knotes.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?% ArC a"6 ql=?!oAG _6 k #8?  A 0K  9e~\o&C-?>}Ē \ \ 8210|gǦ^:n00؛1h00=1|P ?1|}GĒb+4AI;G_h?00c#ço o+ &^?@Eo~A5@[/@0ssg'0ۡ5bw ?Cb0 ??@K?9@gcʠiW&@ٌ@g7~z%@0cH 0 9ނr;ba`dF:o@{X~?fxqA@,"߀).([@d0 `F'_&~1oqV8ï`^涐mC0M'P0(CĎH-&(@!W0ɣu3 /{\1R(r>B``Z\ ( _=ZP"+0Kr72p1"  U>7l LMfeL@53  ~ӍAK?OŮ5{(0>&D yYM ?r`Xn'_ jf0| t6BA4$../E?g DŽ3ps'o{^NcxO)'S 01^CN0 +w?1\L`/3 BQ`_vz5+€o263h q00Ä0x y ( l~fe1qPzCτ `4=kaIENDB`PK t91nuvola/16x16/apps/kolf.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (@ ] @GqVV.  X)qӳ;VoO?\d|GV.+@^ Nvٽ?~ll@)ָ6sځb3[zG'K.6vv 1̬ee-g/~{e[78@(^ Haᗔ𕁁 @?31XٻgF%mذk~ @ RUQ43qdE~}cDsY _0|u֍Sڞ{jsY_w6p[W3)Vqqf&W3l۸|/f ~ ?/_|/~Q `ٷ nM2h3g`dÎm_z*P `%2Rb2CF” /ffw1;x˶ͫ%e FP4222r:;8YXp(^DZmy޼zʭ.{P(bd@^ VrsadJ+|ّ( J|@lIJ@ Us6 b>( ;r2*v| g7IENDB`PK ; N1Y>r!nuvola/16x16/apps/kolourpaint.pngUT mAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdf 0 Ϡ+Ɖ * w^b`x,ßwWI{/P U%($E?ϟ}@LߺEFs!YQ;c'wMZM 1a@1Tg`H P7奿nhZohpq1wPcdAg/82z@P>M0/M&>x%i!>1r0*ʰHI:(I'0<@12IB`db0ee\Vng20(0000xV< zl i>T`ݓ0K*2A_9o>pw߲AP6A>:&#  .#qfkRAOmsX){!-ü˵)/bvຖi=<+>WH^?_^d`>" 69Ov1p 2LX{U@ͫA> fVfߞF9AS5Y g/2\x7*ZAdG? 2 ؀)UPSiss C~o5,#S"@5*1'084uXUz.2?n"RsIVZD =S#jy[bcWMLCOә^? 6g!ڻ= [&Bg_po}}_;_^-4mwᩩ$O~ӥ *涟כod 㒸n'(3Dy_8."Ls Dp!c >u쯝(4{g`-2]fM[OT+ynS'$̸Eu4Հ>4l^bR|_^'F%ZAawJlKNlU}ū}shvn׆ Ӓ}LtkksCWzN44\ l=%k,\Rۮ \R7 nC"/8#z^M3 J$.ܔH$$D!x5@ ;3/mcWPKL1w|9<nuvola/16x16/apps/konquest.pngUT lAPQux -{LSO}(`!vhSqӂ3 GL' Hd&j(EeZWYYDJ<[P`޻.9_?/w9؇> |yz "#ZQxČByepP*'dy.|5({'I u ~wtTQ?}im[ XQ)jUv"=Yjnf}Li/s2l _W-ρc}wl(خ2-շ4:{SU~rJ(/^m 4uc-ݥΆo\Y]_=ȿ x͖*.7)Jr6(|P.밌-!܌;C &nXc#vAh}I%[ٱ55TjYzl9zBomԷTd% ]7_/y~3 U {peanP ĥd>ׯH@ X-9ݒW FB $j!pfJZZgf`0m4*"’Id {5v^140Ltq)%7A?5Y- Bb57?L5ᡨyvC rpnQ`b^wsX,`2̱[1$pzH`tIs0t&R$f֢>c7 h|x֦Ȉ=kzdsPX3(bbL&nCW'nE?Z? vz/>WdOW0>cRL;ُăP7Dd/GǾ 4/8,[J̳L{xu2[\(^K)))5Sآbd[qH7V'O~?101110221f`` #77'k7wo߾h X`H3.NNsS}^yYTbӌϞa`ecf; mA e/ï_?TXXp88@@DVl[B,$YkZE)HA f1'Dk R:xbaeae#gOjkkrsΞ=Pjd9bbaee=/;w2:۷ ?A ` YXAPP bef a`i <&fp 2@14}ܹ oN^f Ûv͐0qD... `C@119l@ׯ^2$3~h++Y0  `(2Սl/tgf{?͠f30 3 ;+Ï=z @6͚ @?@v@,@?00vI `1m4Y&`Hg` L ` $bafafdUSex7Pf?2|Ѐ_@0B8/@s3571a`,##RPr&=`3oPJe w0p;X([B,c!/0Lx/_`+@1Hڨ T@&@5A,Pc8; *zݨIENDB`PK yL1E nuvola/16x16/apps/kontact.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 9O30Ç'عY>pTe̴6uضtOy3(e30l'@L`o@1WMQTbbd?swMߘ \~'n \([j(۷, < _b`f - CHp'V100@ !s}?y_@`5m30Z\@OԴtWfbx"{ W^cgead tǏ?/,ɴ|nߞ@ʾ^yœ* k' ex=P#+ 0ce8z{f M^6:Ĵ ⌒ l ٞ0b<0ZQoN`/dž50| .KV!6.v&@x)inAw0d``c [> 1WeT5q%@1 )p[32> x׷ O11:1p 2' gdaxMIY0U8~Ÿ?)30L`Tff tMhC@033) (_e<ʸ0:2)wn^V.&`L?XTLmA5  :ss &3+A̸Qš_]6qGR'ÑSg_:v '^xt ÷ Ŀns|Ni`s1V¡+k@ ؁'@fga!+IENDB`PK vL1~>>nuvola/16x16/apps/kooka.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbLJd2tgxp+b6c`ddd`aaex͋םVVVd#ej89tϟ_W`!X3;;÷o=TU\?|7_3())3yʕ z  f۷/1\tŋG ߿fx۷h i; @(r]r@S0TL$T޽}PUVahO@pq1 (\rߎ;  B _f3f07P ϯ- _h0/?޽ X@ß?~bd@qk^s޼x UY#\:Y @,7{iԙ 10`y3{d9Y-Td1s (~e4AXEJ;x910p0feaך6^CCSn IIv_ ``𖝉3+o&x{. 3WZrox3o?pի<>}:@1̜ lЏo?:e 9)庬WWl{?jDCWX_BB|„6 a @@Ƞ + Je a1 ?QSSo ;;g(`^w3XIENDB`PK 4tH1A)""nuvola/16x16/apps/kopete.pngUT $fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X312`!’'.%'%.ÿ/>|=zW?Ͼג 122\ 120j^s9Y%~9t ~ğsI߬pŜAǀ  #$rˉiY,0}A^'çOp5#y˭O=@A] j-y*vK)8  ,$Ѣ12) ?AsG+$]6%CILD%/1?qu 1;z D~4\''@03pa``[V {p4ibAD7/9A 5 B#  KK};cv_߀1??_Y^:?MJsP @ Lm <w+Poxw @1qғ o,ގA2\=c"O'~e@ l/06>b'/18W"`䁨/r#@1R XރIENDB`PK t91t@711 nuvola/16x16/apps/korganizer.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 96zZS4M9}^Ʃ{%0qp0rzc#@en+@1Pp4/*PG/aVa&?3|raB6,ඕo;&ga:OFMA2-Wq.= 1b =̃p 3+A:·0Q nA5y!MA9#//2* و(:Aa#ΏA!+ ]B0,  ńͬé^uˇ ϙf`7k5]=FNo`%:\ x@@g>'+V7@X~r0102ϰ<חDB4~2 0H m=x7w 49ɱn%ɠ _L B 3F33|[o> &[8}^21oFdX8Кȡ@O#g/v6+? $I3#.yp%71Xap4`8'@ ۏnҡX_| ?1}})"޻ ZO8a`x [} @yQifWzĠ|~֯}{5ë_'iBL :v39 ^z OaxT( \@@Ĉ;YXd ? a2\ Vjw*IENDB`PK t91t@711%nuvola/16x16/apps/korganizer_todo.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 96zZS4M9}^Ʃ{%0qp0rzc#@en+@1Pp4/*PG/aVa&?3|raB6,ඕo;&ga:OFMA2-Wq.= 1b =̃p 3+A:·0Q nA5y!MA9#//2* و(:Aa#ΏA!+ ]B0,  ńͬé^uˇ ϙf`7k5]=FNo`%:\ x@@g>'+V7@X~r0102ϰ<חDB4~2 0H m=x7w 49ɱn%ɠ _L B 3F33|[o> &[8}^21oFdX8Кȡ@O#g/v6+? $I3#.yp%71Xap4`8'@ ۏnҡX_| ?1}})"޻ ZO8a`x [} @yQifWzĠ|~֯}{5ë_'iBL :v39 ^z OaxT( \@@Ĉ;YXd ? a2\ Vjw*IENDB`PKsL1g΀nuvola/16x16/apps/korn.pngUT lAPQux -SyL~8QB!R-AQlNMTFDI#ܴ,Z ld \m-)mA~3{{wca!@X^nU-X} fLL:_HXuRwB_A&}z@q99Aw!9뗼'vUө#vcp qacc!fcՉT:qX;Ũ߇m@QHRiT9,Q2 uuu__mnnxRnQoN:VqǽrEѲ;zH*MSL4ٳG0?ːd_(UYYƕg##M#/R|B~_&(/- iv0oxPU cKٜ eb 3("\v.BZAbMuw_ߚWz}F_G}J|&,fbmc^㈰B# JBӾ N7E%19Ix@BQw ҭFY l՚Sh߭+5xɩawnE^|PVA0iGzt(gMQS¿XLBۜhlwdHoe"4^5? uu:PR'|77/mpZLw; dORg~T_,%PZq\ȭ6طj$"/>QaR},FM ݜ5zPpz@_'\_IJ0kKD!E@yP<Hl$AXꞘ5fmZ! |Xz#׀eyͿ/PK qL1GPnuvola/16x16/apps/kpackage.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<iIDATxb?_g?&,bU'qP|һ;$P-+]~@, @LD=L[kĘ toIo^}YeL\/X` A.mW3ȫ 0))2(30 30depwW|~Ll?q6@Y@Y3.. ܏ؘ1I22H(2pɋ10pr00|cXXgA@`/){3`P/*#_.1;2ég2(h0pD2ܿϰ j@l82'*0p!Ó;> ?e`~ŋ 1 `ضs  gbdQd06cxL9%g~c`Re`ba@   @`| Y`Tȳ _8ؘ~ QQ @L`LL L@Ȁ1aX?EĄ`22E L X { ?~g cd{_1B|tOwo~0I30qb%@͌h Ox 3*)3Ȫ03)/8} +d@`~λ71S5TQWae`gb`zR8)KJ0|̮%''-b odd?k×/ @`BBB[WNNAn.QPFHlY 0:vzRAIENDB`PK L1H]nuvola/16x16/apps/kpager.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<QIDATxb?% X@3sÿXع WΖ 8X4(trKĂb؅%,LXy2c`` .UB2/NNY]!Q\o Rl ! 埠'[83q0ű?\{l$&6u>.J_ ex/ßff`at:3#Ԝ_gd r\o0Ic8??2? @My@L XX^7P~?@1 .3÷lLؙY1w@d@û/ɿ gw7çgf`e ?/_ l? 2V \ 0Ѐ.a=0!720xb0W;/380Xk1215M`efad8!s笯Ou@`@/7_D Y^`/_C߁r؀?Y8Z^a @200121ps0!;;702~ J 2؀[/2L0Pff '33`e|ß 9) AٙQج%04~AD2 p6@_~y7M@_E0IENDB`PK nL1Y>rnuvola/16x16/apps/kpaint.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdf 0 Ϡ+Ɖ * w^b`x,ßwWI{/P U%($E?ϟ}@LߺEFs!YQ;c'wMZM 1a@1Tg`H P7奿nhZohpq1wPcdAg/82z@P>M0/M&>x%i!>1r0*ʰHI:(I'0<@12IB`db0ee\Vng20(0000xV< zl i>T`ݓ0K*2A_9o>pw߲AP6A>:&#  .#qfkRAOmsX){!-ü˵)/bvຖi=<+>WH^?_^d`>" 69Ov1p 2LX{U@ͫA> fVfߞF9AS5Y g/2\x7*ZAdG? 2 ؀)UPSiss C~o5,#S"@5*1'084uXUz.2?Oa4A @a 4Ͽ 33 r105a`hЩ\@-c2d9@sr1`01|Ae^@f1+g F  % 菿\ ma\2 d`AVAEAUӇ ]``W0b``e `qS`&'~~ڤ$G3H)2p 2<{ͽ; B ߄Y3p@,B ܯ>cұ3=й/ B na| ``0A ;ժШ   "HV Qї)/?0S`c`& "=&Y&go<7 1rP(0LY *``,x)Lc1@  , r (vXpQAIENDB`PK t91eYSS!nuvola/16x16/apps/kpercentage.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% L3i->}aSy_xqť# Ne2-PPNëצR(P -{c ~S/'xom Rq/>꿤K@@ X B%$3y tCahq &韉.6J_!×;GD̢lc̙ϰ} "bbxA"#ÿAzl_XY%1pz3y-(y ?Lgy/37X=Azl@&2oL\~6#!Pܛs g/~3: . 4? /~`x&/0v6;T|ϟ? P0&E?1| Gmb'×l /U3| h_ l߀ ^| ikvO>2[$U@?3@ 3#O00 < 1_  _=v3s5gG3?ˠw@ `eea`ffdgj þ};Lh/30C  >|dTWt*0003xzz1  gL28qd(v_~rϟL8D O'O pndddt`yI7PoPw@< ? `+IENDB`PK gL1oq&!nuvola/16x16/apps/kpovmodeler.pngUT rlAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<CIDATxb?% (Ȕh͑& _xץ53οg400|9l@nU2b` %_s^?$q0oϭ?2l@1,`/g3eeyíK 8 #f5R0;00b񛁍/ ?xu%3pJ0 300IŒ &NE~Z5{}[99%ge`b׫h@L I@s05p2s1:I[8*24G\G; |T_ ?@qsß@8XxY=Ř842@&L0 vF$|cZt *#2P@H238ӻ |l8IMᥚÇ89tM@13q2r#йL 083#A8XD%Aa8 <:m;[TL ȻӿA`g.KؐSߟ~}|8@1R 1F&vIENDB`PK YL1D㘼nuvola/16x16/apps/kppp.pngUT ZlAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbgXJܯ2W^ M<7(lm@L| @I_&@'U?i?|{P%YY13 Xcdvf`<Ƕba<ck_ӧ #`/5Y]Ǚ19;mb3@< 2n;:=n')SSM.#ϗӻ abE5U^_bڢj LlZOgfa(?_~gee@,k"(*EMAFÏXgn))- $(ϟ?3\pA @΀ann:"  _3\;9,xyx^dbbt@ %]YY9 hû7D3|a YVQY qNNNFFFo߾1|@ A ӧ/_8ؾ3p*=7'ß~ W^1ܼy@5 SRR:წYi)?A>8wܯO>M EVV , ?``gfehЩX. L@?f8s9MX_  AX; ~bePScXlٿ7oeb [sпX ,;<j ف遍?Ç>y9+r* @}] oL |dF30013>Gkz?  Fet>X`T2c(V0A+ f`fo߁L>~xRCy5IENDB`PK t914B} nuvola/16x16/apps/kpresenter.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% qrfd!2o& ً.^fPT@r0ܸF&&#ÿ@?sSn|cp8aٽ֯ '~Ĭ.psϏtf ט1}yIBL r?^-f5%2J0x320pr0000~&~in'{v7_nJ0l4'@NFZZvv 3PN;F/uo~ Qbafd,c}n}033 \\LgXXw X~eC B2bP31|{ŋ @9}&&c 2| _@@X#כ7~bae``c??nb`|?п݌ L0r T-;0vzh_Rd@5QbA$8ğqP*bn"p !" Q@o]#; Y2,``tA@1,A I#`>Pm a`~<@` Z sz C D ^ Qg`( d`x1OQ ^I n"(@1r@5bA 30H].`t0c0Jw6IENDB`PK pH1#^XXnuvola/16x16/apps/kreversi.pngUT fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd`hb`cgaA]7 6" @_=u~fp܄0bb @0:Y3MTf?@,Ű833󳯬 {10| @4? B\ܑ?.htѓc?. Tc`7U smU*fXu[,nge`|l/@ `fA&2u.`)a%1?2K0_i `2 @#^030aG]v1@u.\ge`ԺS߫_P}?AA.*% wg`g`cp1Pї@! ?jjK+ *޼ֽ;00TA/3?1}M@=#@{;  `Z25@10J?SO#?PPB N]5S/w2000p+3nX$ ߁ao{5q}s#4v@L.>00p|@[A?~yGPX G6}` (ķ " fWR.$aq]~P H`CrWIENDB`PK <^=1ܧ[nuvola/16x16/apps/krfb.pngUT DZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxbTSSc 3S#Qv6f6ff&Vf6&FFf&&F&& q}[ X}_2~rJpr3ffd1~!&A]U`>.o Sn)Ƴji! n~:VV _?3hà&+v Xԁ ߿}g|jz 88~G+%q6N. /{@^aa<|\j o|b`d``h '~3J3 =yh@11 i3×_~`n$ 1ax?Y)I-rO5EQs~_5Yf \< y2|gaWR>~$ @04G,WN)>ϟ1hj0(b0gg '/yAOF Ń^%#,ERoN(;n? ~bv*"!-痌FA2u52# L8G4+ '.sA-M ! 5@@(RF?4<8 #. 3102b77V^)-3g~~﷗ ?s0'#:E+AHbtyQ!!I;#ՈMB1 PJQ#0щSG/&7}`x{$=~֫W.0.@1+[\Nz7orSU@E(13oFF&0JtZ[;IENDB`PK qH1 Gnuvola/16x16/apps/krita.pngUT 0fAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxA%1'$_M%* Ӫ !A IDD9 Z^:lg-,-CBJZ  n6!6\G&sk'2$Dt.~aXuIK01,h￑ ?3@1xUu똜,^f+Ovy miȧp _lcac r@AO'Q3S(9M5PK)5D/UA _(5(P1'G8;2 BK7 ["@3bxSyFCYSs0C?3H|1p}@110Cý 7{(/3p& fbbb`pڸ3K->m@4PL @g4dH5Sq4d C`1~2 XYg/ ~ O0 X~=߁ǧ R891Hl@,exr+/~T T Ԡ`B2oFmvK]Y?3 h h'7#P?#HbP>*`:u@c}@1R`+IENDB`PK qH1ϪJJnuvola/16x16/apps/kscd.pngUT HfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd0a>f'^t^6^FO |i3f1|aao -ÃWkLU]ß bb?2ZלqiFEvXX h ~c/O pAi0 8F1'P Wc XAAh30q櫑.*yŮ8D ?w; / AR)T+U @S\ z i'p#XID  ;G'ɴń!@lS[nCMq+ ?9120p30|t70Ug @2002g`ah2g1?_~bO`cǯ ~@, yM*KϮ1R. Z& / Y%MO Ql\_?w~z[?~k\LI >?g_}OIC,P=z^ F{1JB l>p}8|t˭M.( 25dTcba`C@ Wn0bKZIENDB`PK qH1r)EE"nuvola/16x16/apps/kscreensaver.pngUT RfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\hS### 1 e= @,,,,LGe`ee+i@c ebbbgPQQ Ŀ'N0mٲADD  Z6ϟ? >|`  lll `|֠ %%w2xlvȦ? dÍ7+++ݻd[34*///ãG6 Cdee  rŹsv>H!߹sʕ+ @055+Xn C9r @,ػw/40mdî]?H =0+ \~򊊊 ޽c8uXZ @}@ IƇ4 P |||444~'XN1N-[ @1PrEHb bbbt!W3<|aÆ ׯ_ >}d ,|}}\DTTtHNPΜ1٭;6ׁRh8 $%奘9X=d?k.-nowo_A/?~?llNP(@iKb`ffb76201ɉ2-/##Jbaee60Se(R^0s欗^=yo``*mgl`.]sӦeˁLb &&h#;ÁN{G~(#ТL/_e@L>ay-Ç/>͠,,,& ;wxƅ u3kXɓܻwJOBB @LLAYY[==/{{{KY&W~7 7utLׯ?@o02r|!GRRAVV ( ^}e[\ $N99/P3Зb`Ǐ \\ _|c4ѣN~i@,_>L̬/_ @\(7çO~ `T2yOWm@' &PQљO7o3ܸqA_߈?6{?u!W@ `y۫W'9<,7C__'l &o^g@ s#(_1''йw: #@@94S}0]ywIENDB`PK #qH1;;nuvola/16x16/apps/kshisen.pngUT bfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?23202\&F_1e;tfw" \LL  &(`baf`d`d#Zr[ 0@! `fb$"𞋃/Č~ŏEH9VV@pa 8ç@ NDV]0@^4Oa +뿌7$u saUll2l2jeq$>p?N>,W _>eë ^fXo=1l L 58$nݥ$>G10𿝑ЅVq?PsH@ i@""WJzvu*(* -͠ 033̻moU@ @˝y >`cyСp$qn7P ! ^Pf9XdzH@c7%"%&z=: ~n@ 0ef M%p$1aI 7@!r/Hr\An$6o`?#.4QfsFe?C Pz z1 *IENDB`PK :N1`nuvola/16x16/apps/ksig.pngUT PmAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<pIDATxb?P"2`f+l@;#3_e+}^|{Cƛi@, P [wYC1 O,H{pu/ g0~bi@R 0HlS>oF!Л  &2IJYxY{^ݻ@1 _O7gA 3g`be{Q&V&ì p01B810r2ֲuG'30Ż ?!  }a@7}'ځ'w_*{l@1;kY[ko VrP 0 u ?!P|BޘD,/ |   P3\{|x俆{yY3`3 `>!G<3X !@Ia}Z*ª xH/@ Ox`,"L_b H/@ Anƽ) 5d~ŷ= ;k~N@\H/@ Q $^U r;IENDB`PKqH1||ynuvola/16x16/apps/ksim.pngUT ZfAPQux 5kLSϽm)-+ uVxM  HFi-S 6lSM/E 407(o]]9'99g2qKٓfdV Dh|݋*s**DUeѡBupAU:[*:V6qkRN:iŮzKu߮w 3=F  EF "G37/;ϵzfn65rg4Lw^>ۺ3Skuuf+&rsE'姊qW'(0Oĥ-i1umx*:/j=J4y|ۻ.ChnTRMWIo> ? z劮n e-?o15󿞃C)u$ωB`]$Xt4fpo!@ <@_ڈaC7тO,S0@;#^f2!4't`وmv AW6~"<8~<J[f0 B{eK$R0 Vp0 F I z-σͶ +`YsAL8BY(0rGq`{ڱꄨ2dO{bu[d$1,*</w-+D2#?٭<9HЭW&e3%7"!E&]$.tùWaxVtlCޛ8FLsw&e>]NG3MԝK4f݈ Ηߏ>vHIHjJ,PK t91__nuvola/16x16/apps/ksim_cpu.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% p!K??7l] bFl ]@FFfJRRTsssmmmAQQѤs P78 ZZZ*f3X߿ vy?\ @`TTTؤsqq1~`d˗/>|x‹/:>b ~&%-%yyb^^^?~`Û7oaSRa8|׮z x @, |\ 10;u LLL ߿{ׯ ߾}ccdASЀ"ulGT[oTe;p=k =CnCiw@ &< pW'#ku-degcPcc`*vGo^@c@ yx5/bo0 gegk .22:,ݛLVLR{ ADT'&-0tbRưXkˎ;oV'_,G }:5`~|6A1 @,wW} #6Zry dWq4@!oV J*AShrW&:%"&B PB@@J Hiv0T{{;IENDB`PKWG1Vsz_qnuvola/16x16/apps/ksirc.pngUT eAPQux -{LSwO^J<|ޮi;hdž☴ )d! Q\3`PG2f\,.6 bT\V{{q|VH|,+fjaL,!5S5*W/2~'kUUJSQ_pH]S]\:vx:J@|!#_r % -E%ګ/i \vd> >kv6CΩ) L#0Q+{3[ELօ ڣDGqzIHsSn\8圐_aCg+ka 07(n<~&po [0h`NMcD搻w+be\uvR` NzhB \`zA?e%m /Y5G͡F1ʯ~OLi`E~lV ;ҳmO$2ft`_Lkh3,Eoȇ A rOfkkX9i  QQU{wҥ޽/^{=P=˃b?III]135}.((OHEOi`Tw?c2hsЬ@d@` K@|0kOS 00_@?30 d؟P 30g< ?? @ _&31@ 0.[#b]U1 ?(@>xs'bl:e߀zAf߁ >}b (oy2 ,X @@@. _o1h'P( L   Ӭ@R 10i30x'20a=o+_ %a f%?gPd30p1310f`|8ge_/6bhHS(tFn!. w? 20˼c`: ( >b`}w? ~b+ý 0M Bp fF?HtK,R L@ubb)@h ;B7kBKjpohK 8JY!c-O2h}aPyy6 !C%##@<{a2~> LLL`MI) _PJg/V_0#g0X2y#dE@q 鶥CIENDB`PK L1(lnuvola/16x16/apps/ksysv.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?24iSCC_ _F^vN(z]?L=@0M 2]:~c?~0<dUUc0s*@L|W.gtgHc0^Ʌs 7zp~`b {!Õk .߾3#_~ 1Au$O_h*0<bP0 ,@5T`XU(0 ?b0ebOe~Zd@?0$AO3 2pp2vo I0p3202D0Ж?0|eÓ π.Œ}т[s1|Y1@Tgu ? F~c@s0h3z?dEAXvd k֬~~!&*OIA_u>| -X100jn^.H "3~ `cx?g< [+IENDB`PK L1D,nuvola/16x16/apps/kteatime.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,tTb`OvbAOo^2|􉁙Yӧl_&&&t@"ge000`QTT\ `3ĂIq޽9 ?02egpW4/0|QCЀnܼ o^fO>v.6 ? ؀^|ut>*os㞹Qa{Oy]O^z?#nba`)62+SRgc`x}.NŐ 91ܻrƍ.l?v'W`AeEQY tlPHm4 A %헟w{M1L3 },PIENDB`PK L18nv~nuvola/16x16/apps/kthememgr.pngUT lAPQux 5TkLS>׭EB+>`NaDd=¶f,h8'SlD1 Jȫe9^ږ8)hbۻ~89s<;]>7 ̌9⯃RYTSWP4lajaIޒ܂/ZP,hřѢ^m ՃgnW:2 E"-JdQ=q,C:ng(}k9 ^>~20E@{Cn,iLho&'xxX R[si0uw[l'GىEx1OӪ_X6+bxL, Cڷ"?=Cΰ˫yCÈشy2؜Y@@LBCQq2]<ٟN:!3u[jby]NP h "ia$},~7cp8~ǴopT"MMHoM*:kNjPTq5^6S\!eYh|~iz=g =O2y]i(TǰgrLZVYeqa;c 2Γ"qUp~hYvY}=WYNn-jN|=-A \WYP)(ڙ#2a,`*ZMk"v߬B:@u3_${_;[K}iۼCxQ804O̠T"Yc3yL]YV:/yk١V~+GLk}x6ꮋL?u3HˆIIU}ztz}}+Թgq g G^(uDX.8'>j__Ck}G62'ǮUƺ(O>݌g͖͌Z)7+}>'O0?zp|߹~n@1(8AAV[%>F@M fb֫/W|䦙ޝ{2 .AR++ղDW bR , 31ps22ܹ+'cbr/XsKb]|M'gϟaxjrz@vQkaa~}G_1011Cfeccd0Q'e ###@--mnܸp#M= o=0)J0>°WW" |bo6II)qq_29~ Z 2 bB ~b`g7#<@ 3+ ;030131(r023<be{ϯ l ,@ a?^?~maTEhۗo r00}65 |`a8ïׯ~߸$, Ig? a͕M?~ .xu 3<%;'?~2| o^fxx9à 'O_axv|փIH ̟?ysޯ a`~2p 1<~Oq%;0ptN$e&`d`^MPxC@0@n6~o- @30|;k,OHF߿q烥8 zeIENDB`PK L1pnuvola/16x16/apps/ktip.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe</IDATxb?322|g`f52ѐ`e``f7^|pٓK/a+?zd20x/r6s ~ķ5H`X@pfj1^y;<@}oz| Y }z,*d`xSFo>b`AׁIhGwi77] on *dd`(ab`31f`eb 1gxF P;PO Ѕ^^H@1 ra@0VDX#Р |@J 00[ 螭 }Dl~@|@ 6Z 9, r@ ! ۮVA4 ė ]T'S`. f@= Vr o j x 2A^cb3H0/ c/+(( Z Y  !.篂7^{_̬ e_ #o߾@pؠL~r߿ ,Ʀn@ ,`߼yʽ{-$ĥh,EEE @?bee/}9r,E}(8IENDB`PK L1.rjjnuvola/16x16/apps/ktouch.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,)dxa ?~bd㞑*/㔎IW/:f Xܹ@,aPc8:W 2H+1I2|A#?2ի 3|5#/{>pkdK},'cDCޘ;+óze?^2 V <>^3 v_闣+$gl<|`xVF?L'@, \\@|eF0-0aQY9@o  X~ /^<j|7o^?j\3 Xm W^+^rV`ZNW>`DeUIENDB`PK PL1qqnuvola/16x16/apps/kugar.pngUT HlAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb/310q2JX(')qKp0o'Oi˞2,//@=2`6L-Z/.WhDZ_A a6+ mB/>_c\;wNo P:\O[@{@AP A-$ 43Ğpߟ%Gӻ޼j 08!0DЀW7<I.3|3 c'C;+C@Aj,,[* &:=#3%Һ' A(%5I4նBW8 *$[ _:#nڟ2(3W \ 3p~f0a;0?~cedp Se`aacPh7`o R < z ̿<{7@1"Ï/ l@U~?j~!>~ T4/{? _971CAV+`R^30K 2J-ab ׽'?Ͼ:1H5`WebL_?e`bcdP4aajf#Cg^ @@f$kMdE_?1@,L/b} fJ8R586kW_eD!C0 Ap .`0(1Krs ѯ'n~}re@OLa;8ݹIENDB`PKML1snuvola/16x16/apps/kuickshow.pngUT BlAPQux -}0ǟ_^~_L֕Θwԭ,RfjF*Ue(g蕹7vu^=)kVۼ!H,{|yoe\Qkv :qHPl5LtL5ȮZf:/dއy\)$iR2iT,9w'̚pQe 1/=|9} ?"ټR6˥-I.)zũ"JkJ\{U1~iFthޝT^Nt. 6 RJ|^ܵ' )_F $ N[{15SjFŧI2I1-u&)}_Yn ,3ÝH&}h. XnU7/Ne&"K5>l8ο6smrv_Rp;'=nq`mpo*ҌrO:I ;}rD KXqOAQ%UǨ#4%߮=iYQnEsٷ1z`"uPbY*.Qq苸. ƿ޼[Kn'n7c,X]܀jiy5q] A0q0p[Hۄ löIn@IG7è?躟+n0c]3A>MJM{f"Vf Lj qsH ( R5~!RZ3wݣjb2j#n2e2\_@:o/dW)Ji.)=JS<"&rlOPEFL6tG5[U->+%"i;vODRh M0ӃrcH{D ]9|$L#3F!_&&-TOV3 i*qBk=y$oPK 2L1 *nuvola/16x16/apps/kuser.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb\^L_8ܾo/1IXAܘŭ 7n1e`` Č@ @,@v ;ysb9x~d0TN4mlׯf3 @HHHMogt͗'@o0{kV="%ik{b .)+vo}dx^T?Pq/G{=Iݸmu AN%1+P Xw61 2̱A+K/ ' '2 2#E3ykϞ2ݾg"%L>?20 0 11Fnu7;1oe| 7/3F10~zǰ}˞[W|> Hb1U2IRb Яm ~1(pH2l+ z2{Gvzdק A<_1! )#%;CH:&ŵ\f` '`b !KJAX xX&@\0??,Í@XEY'P30  \x Xn|ٸimOAc!Q6 ϞJ0*1<&x/ @L$@3V.>b:ܝEO||*ĮWEG$,3Fv&@0o>10<7@13r10K2_/xWAT];'gO@b8pÏzf#P0``Э9XXX@|Ł WQuIENDB`PK L1}nuvola/16x16/apps/kverbos.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% XTU>|OAo^ gFF_19>>C8~f|-ϟox!$!!  #/_0H𗑁P&ANqO ^30pcu ?1|P7 eg,j- π^ h  X333H-d`|]A_HAFM$k~zL |6u?&cnN5`rmg33ж @/BhP X3|& 9嘘 ga1 X &Š ـ.@].d* |@~?X ^:#P0_F]_G` ]: Xc7W ]z" j*@ d0@,~zy__$f*TTb` >bx1ÿYX88 @X``` 3fgLXGի_|GP#!%##ǗIkF_XYps3:|h Mg0` @\lcg#/6sh`{P 0stIENDB`PK aoG17nuvola/16x16/apps/kview.pngUT /eAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% lm@2Z(hNUTmW\E G>)i0|bep5ow1 602el-.AAlˆ%DҟlpA,.64Kr$#!4!dfT33&[ZYUEᯘKxG]~1s0 3}L kex !#h(/ﬨ}/Y^~?y~210~)N&_}d!ڍA7Osv?߶ꇥ=73n>V[@X1Xr00'Cyy Lƿ 1|cp fV6k1 0Hk0b`.VӯqQfdα:4?QL0{:fYW0r4PކDE-3=U V'o>0\E;H oe04uNxbX4 S_|1cpQy | l֌ Nax/VÄUonZ;b~mkWk3q;2I30r3f tWR| frx/_\,L'L A ǹٿ04J-U.P"7>E&_ʁCȀS &^BG][ot޺>- K1[v `bvlvΙnGFj>(2L``dg], p8P,IENDB`PK t91 =nuvola/16x16/apps/kweather.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb?% X@###?'fÿ,l 8fowO_@l#/Ty0|A% k8(:H-@ 0h31Z`aIfaqggIOƌ;3+1@1] tҗ@?003I%%Ah.? vY8]1g@ Ȗfgxī rw?9b``x+\e` T XCQIB G(eͮg7W7G l QMp3˿G|R,tM+Yf V1d`Q4P?F'_f/ sR٬~J0H20hr',>N`:&ab@`~e`DO@W2S?lbxrA}ķsc 2U{ɉ {'FE gQV@BQۨ_+9ivj/ 3?6&!v!`~ P/qNA >n iw_% ºk9ؙ­dxXxd^~+w L O00lYq } Hgx=?LӿL~[h6m/I[`қ+S )͍@!0fG~=IENDB`PK t91iPPnuvola/16x16/apps/kwikdisk.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (Ā)+44nI32F\< ɽsPE 20n{~K? 88&&IsL{{oebfbUYKj _ ϟ30{ 7gqv~pext-/@a{5D;Cs={a`*)~%90j T_ >@, ~}a^6{i2\޳a  fSC_Bs@OP ؀g8!2g-ow03,dcuC٫  /p30D&{aCIX 0׹22 0?YYr 230p00l<&jvDG20[Յ _dX>`byûL lߙa?@O @xD#Z0aㅿ | zsOA XBç 70nnVO_~1|şR ۟ .F; >WGt3N`-y&+2 W3Hsx^cR/C&{*$a w ?W@. dP@E= IENDB`PK t91#nuvola/16x16/apps/kwin.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<qIDATxb?% ("\:>??~a`~30 a'YNn ( * } / jD1;[W?N:XaVЭT v&~{X{Q+LSЄbA%<ZlDG1vVF~s2ܻATAHW < <\ L, 31,@@dfaff`b`b6k73|O 'ax3;P?@]@w311C \\ _bx$J k4 deej t?##Mff@X `zh;Ǐ?pb%2DJJ w>cfP@`0U0yXjYdx93|yE#';?N ?0p% [ww0|p {?rt+3 @1Wͣ?ӿqc?hHU u`6"çkl bA3o | ?@LB"-0.IENDB`PK t91 nuvola/16x16/apps/kwin4.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X` FFFf  @ 2 .}' w.08v,Ăl3o Ҝ ]b L[)Uh `@j;C\l|` 7;}@(~ @fb`0\4WaS`&z.`mܶ7͘ץ Ih;#7?* k01|9a{v`PÀAh F, , %3|Cصʰ(io8Dl3z33w_`ck`80`{QI>;*Z32p2D#,!md|QBM7o9X7,N =`=Þ  ^VjEAHKf`_`F=NVnp/܀SkMڿpS0(-p{imyue~>ů'/~1Bc;(a}"{#@w݃ ej{1ܼuZU*bh >N¿N01x ?^xf'_@ $| 30zH2?A! ?00<#⧟ @0z7# _2dItz !aAn @=o /j2dfu-޶]   q  2<  t7P2? o_00}p0CaV2\AT7!ޕ ]_g`7 Kּb0; dswo 0 X=++0Hw&nꫝ kgѻ'A _5cO;0By# d0n31\psxX_30? X2 F6%fE AS2GH*%Iz( %ZU &A5 :>  +x0Ch, YALO/;\J MX0|zA;ã k2TLw֯1A  \lƧudCk￿{me6Sa` 03c  1 3e*~/(U3\c}'Ѕ\<\ , _gpt`ึk ۯe1<p\ Ĥ$iӫ 01<}aE 7^|eXaŋHvgw`3 Db 0B[w[c%aF @0=ib?dXX> +;ܛ ~^beage Pf`snF]|0fdŏ~``}Ĩ5/GfE 2ANffddjayV hVzbIENDB`PK L1Ċ;Enuvola/16x16/apps/kxkb.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?uva3#FF1yx;tkÆy~ψvx=ݻdd>~|4AJJϟ? 0AMMVkuU6}p5?~0|AZZl߿Vy\\ _~ePTT`xPO%%9VBFpqqzb <t'y3<{AHH,Čb a (3Ay^2i6AAA &߿h@f TA~e ,VVl00 L@'401c XX.ri@4dH6` P ?)?@ xÇl4Avv`@@d`x ٳwH6X34%aq%?CV { 7_-5&pƹll:ll`ntgIubϟ٥ ee w^K@jdfIENDB`PK L1b=?UU$nuvola/16x16/apps/laptop_battery.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbUHEMGOt _]a1@]-+VSg`xýۏpc׭Ĥ&%[s.0ܺsg ^2L A,, rr L 'Ӊ, z_>`7ï/~=pwY3ѣ W  20 d`v 1|VPePiz`ꍁ yَ Yd 11ofU۲LlLk˛ /dx g?O _>30p%?6@o5N*2|yAA 0v^e`8q0  / wex[`c`/Ï~|776 +(0{3ӿe-X 4ÿ ~20|p%3/;!"٘Ϧ=b`÷ \>2g #)+**7P!ow *1sr3 1pq0yz{T;v>Ν\y< X^]{nna3>gde`axQOvnn`0}zW7)A~~FOA#YA.."-,-87#$'  QAd<|":*^2:|gtֿ7~~_6`:@ LL fF&_6~2*++?H¿>|x߿[r@- b0`oGWIENDB`PK L1L%/%%#nuvola/16x16/apps/laptop_pcmcia.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ^z !.%;yF&V>~>MyWn~޾}=ÿ 3|/ ?< l kvZy֒tcex~bb97ɻO0@LL \o200 333afcx᛿ E Z# t??fbgddfd` z4 _~𓑟ATD\l= ;>gx/Ï 20 g`Og9DEaNPde | ×^|c`q'_ OןŤ ^^m>b_; w:9?O2p 133ꪩ3I0 ʇ7~z 0m  3)~bPVa70Medd ϟ?A  "%,%"   1EB;#ū݂EDE_KA#(ۏ| 3s2010X8L)1bfeea P'+7 ,l \_aѣ gΜ`8v4_(**W`*&ț0CZO w=bu!P=x͏_o"O&&f cxϷo?.^޿贈1y#B1 eeqff5~i`1WlDIENDB`PK L1nuvola/16x16/apps/licq.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`@›M5ru!v ~+k<3#*̹8cEe/w 'h.|bQS/@eZ HpxZEE_}M㇟_H`8by PA @P]W1>[    N 7W~\3ÿ L Y2(h0l<|B/;!~_?A> $v;ox$>>)+,1a/au$jE31A-mr*3(iSIAT ! P$!@ b1 ǥ 3\Ecr)QIENDB`PKpBFC/}nuvola/16x16/apps/linux.pngUT PQPQux  sb``p  $5t|B\\FFDW{u9W2012@ Dd2 1>}߿@q5 `8]0pDA)_Ye+Uy K+$8&hJ0$ANJ . F "V[ *.ZxtIvj+# r?m / @?߿?~~zPPV~lի;}ټEuÝu|/-W}lvܥG͞=G-KT`yL~ϻXnSt'N%A~jsDÓ_Rz</PMT~KOO{Klہn|ǽo2qg)E I #[fE1O |~zyl*?yHʁNWiPQxC7O>nZsAq^1nNI E*KR^27eҦIE>% 7;x]<Υ!d*~̔z9G'Jț;+ZrbmzTui[c—Nis~%f&m]YٚaK v+>-q(qM+ap.JM,IMQ(,PHUp xT RJb02045050 1420226020,|+̴J 2 122*j30_=]\9%4PK L12)d""nuvola/16x16/apps/locale.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbQQ;Q1o b_(OXLCIDTAo~;i.W?u9 /~?\*)( ɩ030<~T`ëx{? @,~mo ߿>0c70  iGww3|gx ,`/FbZ䉝U,L05ׂ ׯ345_3yDbQgd vWژbF/#0)0UE?#@ȫ0_,,`.L L?3<~ANׅ1q32*1223O!~fd337+33s^n3~}ߝxϏ2a+/QI]׷o3'3WA`l*y,\ || bx @5ÌxoIENDB`PK t91 mx33nuvola/16x16/apps/looknfeel.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?êի_ꈳ0gaALFFak - u/1񘁑a#_F6߿1 $ʐ/áKމY10|(_v/?3p: <=o~2\ᮆ0 6߿998%y``]fa`cq{ ;81xie/2_q#ٷaW?y ^*dQ 8@`+C.F7 a?f O~ 3`E X _2c{1Kvvf `7 Ӊ o#>0 x3 *Z0.'÷>x ̷^0fb@&A=/Ib&.mS9>~GAn#?Y3 H9>f`aR4fwÝ@100cdUd`f8POR@ `bbbkg_O;3Ĵb ODa | B"d+s1ܾ ?~0SrdCg@9 w^c]Xv a?a?KpQ~~?1||sA'þ-4c053Å o@sYXX$$$dcmlDÇO .n` C|O X,S?M &L̰nۻv}+@ ?@QRR{oN>@Ƿ,Pu-(y(;IENDB`PKpBI&=nuvola/16x16/apps/mac.pngUT PQPQux ]S 0wWi1v]7I=UǦ)!EP#RhMIUZy%%)5tzvh;Jwwݭq}wn-C-Av=Ѽww/Mx!ꈼDF;qT)]-cW95)[ݷ6:i"ZH-MD=Kq=^J&'(i O2tC\WƐOְ_4(OJ/9f6xΓk҈B)Bhw->{lK-Y閼.qq܀%,*̬^U_S\b]uunMCբ9N!l9p1\M*dq[ T󇌌-@zp3#yKRtd2]&J!XOS>ii9+Me+"BX].Tx)hĄe68#_oy!ԈUbΝY xR3 AZfSJ]q?w{䒾f :b_~؎#;~BC&RK[GA?xfs7b!!C| 'P9AU/6owAqH} <csJ-ˆ++' 9Ml-oTo7UmqAU;xF7 ̸Jv/XGg`ܜb@[<cN|J~8|O,olC0ا"uvqsރVuQS.o/Lx_ ͣ~+%<1$/2`=]Sw9Y!vƸKr =޹Ō:csHaŜ" %8ںn {Ķa3r7~BKyt,rA*BR.dX8Kwnq;35hv% K0\m dcCф8sS)OY8'`>#D1BΆ%K@͂ X 8QZ1WG2ΞPK t91{L&nuvola/16x16/apps/mozilla-firebird.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<|IDATxb?% X@###:G7;b/sqiNo}rOsd PO @ \ wa?^}_ #h.Pad>O?xw>G5\T.@LȚYi62? vo?2| c>s+@  ,–z3 0zmдk_0:xGQR+ P e3s< \3ppZ/ z7?xExy9tƿy`!wF ɺ?ޱ0l[7CÃϢOWIʅAYkO@3scxf`##@1/9~7(73L mV``Y;w>3?[>+%3d'7 N2nQv'X2j2(0dÛ =f! ?34yWf6aO ̤VR$ɕ%G _fKIJ[>뷠3f8X"G2f` fG *>-V@j_bA+M>)?S=~F &?A}7&8;pBI>'Ç0etC!>4ib@΍.,zGeVVZPwչo~/!ZF P 8LyU\: 3 ݀dEؽO!1L@$;rmIENDB`PK t91RRnuvola/16x16/apps/mozilla.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% ÒC#S-6& bgLR|\ fAW@8 (p\!ʂ($X2cMg(SLLe @O޽g{l 3Qۂ~`~@? e _a)+#H߇ 躀a j0@~pVK^006`Kw@ hc?O1223200>>V&&f1(tQUU=YOOP X e7 ufdd677 cYh :Íw /] @0JϞ=wrw0| kyyáC6mڕ??~ ߿QZZODDMWWO)--sӦ@Ĥa׏=8ԴYĘ̂{5 zz 7s֍ϓ@5; C1|A !.!!!221'%!!]))& YJJ2Aϟ )) lL,lIϟ?tvvx?;0lösNVb~ONNN?3K2]t2?'0\TXYE4449 ׯ,,,&&F߾Fp0P+_0?`3\t/x?atFbLxI@  b.`6@R?R  v&K@ `eecd|A @y-͛}B֭@@U"$$ ˗M7%MIENDB`PK L1̡Q nuvola/16x16/apps/multimedia.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`Vbdd 3pOg`Tme`6rrr^^l@6@a3+99q͚G( I$g P.**YW@T\~~#C>}fB:;4bAannVYYEdo>~`ii59$$,ADDIDM- ę~I8|b:[GGgiyys{{ׯ.βa45a`gהQ|(##; A |NNPUddfcIJJ  3/)/%0$ )"]]kX={+77GMEEQXŒɳ ͛34`ztó b| l.{n1466ABZVW|feʨ_`6 ;@1?~|/'' 11IPdC(/7$Ûobsv܌Sg?~짦: f:AAA ~p5n`}ׯ?AgP ߿;ϟodx!^d8 B< ڊ:=! `ddڵ l->g30h^s?aΆvok( @`Ͱqq/&L_JZ(o2#+lyyxNŸkVfbbr)@Bb Hvv@ `bIENDB`PK t91* nuvola/16x16/apps/mycomputer.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?fl4Sdcgefeefbacabaabdecdr8Xo} ׯπZ~ 8;9hnc.73ß ~30~P%#dT _?psNc`g`a`f``ef`+_ؘEt3H3H3p33d#@  Ò,%o2?w݉S'o减_~էP>$_?1}a9(A| n3'`gga`ddc OT-5buKON;~ba ߄޾wI1yMe] poWIH/\89 @OxįvN?,7lQ%(&)yԁ6Ο P T#01|0ITNx'IENDB`PK t91= nuvola/16x16/apps/netscape.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<8IDATxbdlv3002( bdg/L+.pG7?TY@zXxyI9=N<{׎Z(1;@14sp'z~87ZfAAvuUFf| W @kAĘAPH߿ c&f<T:P@A S$;9t,t WIZE5v>>!Awom`#)t O|g```h.@1`7 " ?c9qA#1q1UTQb'0X()//02x)20lZ@,|9!$ `0RRa0dfUUg`gfaC!0<~3X+0  @1}y&õ g.t0\=y!H[2 EEd1hmŠ%$J:::/khhONN&&&T̀g = @0qx5"aPj, f(ٗ/_X?n Lm@>o &&&r1 > @PyPǏg=~~~`T4& ~Tw@ybDP,\Ğ@l|@ J <@|/u ~`_O>tyIENDB`PK N1f#nuvola/16x16/apps/network.pngUT ПnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAF]*'j9,*" يdf|ba{vԮ|W@}L~f 4@ 8n`9x~gſ^7^K#+@aPdß L@s}fV&<#aNA RIl?^` 4ƅ; `d7 n G>@ &FAf [k 0j Z!b@ _ Q=> ee1|e?Ԫ@AԁAAeK؀=a`8(o0'1:',d䢁 ؀^pѻ ޲2X{0Uhek~c`sl_ {^_]s_~ш I ?2ֿ` X.j~4)?# `#mM׎[ӧZv 5v_'#6iBdEOw2Azl?5+`Jţw `8 @@(ÑI>z  @R a L@+;0}b`߇;,h}cW- ,Y!`F/`^9~9G]Z6l 3B/g8tՃ2| a \L tö%^\7y6A p,9?hſji- &U21“ `IENDB`PK 7N1QQnuvola/16x16/apps/ooo_gulls.pngUT JmAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb7XxIV21L 12 d32((g=lua``@ M/@ßŏW /_ze ^~)%P0*@?w}YBH,(K@| |٧\p^ |x  ?~b8rߟ  2 a8j ó;X\~ad`bd4h@ `aظr5mE>|xPp%3Z|#35 X>5:ol_y? ?mmY\;Ͱ{"w0v0Xc0bP7fdw A&8(,"%-F/ES=VD!`HALֈAIG3F ߬d[aNû 7nݸp}XQqU{dV\y @_ F&`baԩ [ׯefbx9CUM#Ü'dx%6 N& ɰfQ;3y3ik10ك eH-bxC _xe=迿@㟁 X~͠0u 8A 4 QQ 3;£44޼I#@҃PPhCQ]0 >`@c( /0u3C?81 $H gy  XCq3ח_9A9+@or$ abV/d @12Yeq 3i&Pï<r>oSIENDB`PK 4N1rLLnuvola/16x16/apps/ooo_setup.pngUT DmAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbSSSRPPPyK.AIIi[(}n]z5咕8ݻwb ׯ)@ V_|adffvr߿Gܹ7o}? @= 0@@\@KZZ:a!'  t߿9/_|ŋ`?i 3%///++P*WWW{s1]9H^^V{Q@$;o tgo߾] x/_  @[u899/^<|gϞ%]RS`@,z ~b:?o(@_w#П?3j@1? ~~˗Skp ~|nnZZ! @o3|h b?_3C MzKnL\\2.?;h93#fVNZZ#^Ll?31|6dJ4tɓO%+^WAUqkDx~2w+Ý_t>3hh|r @M@$3 k-8a`3. O_}d8u&ÅdaHUTts@χ8yeoᅯTec9B>28s0Hr10`v&~^6 @@`d2X_`? HGtNԁ40QJL LLϙ{+(~K S'UypP=L"Є񃁉Ɍ(fPj?>yׯ'aN0iċtIENDB`PK |?޽ fM$B Ֆ[YRX()wf3;;`>C&&w{/rqCr?_os+32>J-K_01]s yS }McbeggXag , K~befff[}?~ DxGSi)#Ç O-c} @@BׯO~ܽMFIgb 0 ).4_@,0]د_ I $8>~dׯX?fdb L''9vNN7n00\̰Νr(XU hWFf Ģ,,=o\p@=GE `fׯ @͏=bQWeۭ[ \>2x) >~ !bffe&&/߾1|N22fb /l>3# g+CA-^w2m~ưǏ+@'/^O~UP6;͏_>R\\ q4@<~ʯߢ>a` 8>122122)? 2 Y~P3(iO|w@ L}Lܬjp⼼ w~t@r bG}E/]Vodf93ηo>'bU'|?EOdXyY8?O{nz>1 b30#/ k+-;#߯ ?_g .`n3IENDB`PK t91'rdnuvola/16x16/apps/package.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxb?% X@###D f.`MfVNO ҿn+@1\2`K"3=T8tCܹ?[jv0@` wKiKiK)30p2 bPPb`e``b`Ë;7qļϋl5\de]Aa`?20t>0|( @`112p]TPy <* M^vl \ @Xدo*bd83W@g 000301 NIAh_Wld@l@<@K?  @IN _ F!p .C8y9 :Q  . t&?$ `4(30&6G 8E jbt:'P_  ag`{ kvo8c͆O_y}gbAHGQ-2w:bpL/_} ݛO ?@.8D+410J ?C))CzpA3)@1eDxϟe`0s` >?20x;r'(ؐ"O Bi^@* V^cAB/6IENDB`PK wD1ok)nuvola/16x16/apps/package_development.pngUT ]aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<kIDATxbTWWgFFF2[RLLWUEMÇnߺ3n޸V,""fn66;J+mx}Tj`` 'Ol d@4GuuFf(sg=p__|]LLI߿;@z @[mm^`w> 7ñ#GW}=@ ( EEE91{;ÇO xn1~z!y޻5@_09))|yY 㕫.]緌VlmtUhy X@1'Z:<a?:Tt,}~wG  VV=w~3@Π?}}ʿg={z-&F$ 4Ub3P όZ?֚v2g@Uh/ ?+# ߾3E3>V1vQva&A2{7U;R S @lll DH317gos |gpg0ַT:~V0📍7Аo>cd8 y1xc#yY8A5# ڏ:SAk, h?Jˤ  nvff6nAWnC?[Aj0P=sbש,7÷/$>e~=!TA@ß+&0OxhIڷ?Y]AHL7o>`` SMy0v@08/kO|RK  ?^dqʑW g2\fEw^3| !M51xa #ݭ.AN𗍁׫> ;mo_3z!m:+7 Lj L^N={/?f?quM} ` @t7W?`b_`$(132022caReq47Ѐ سm^m L, l ,@Ó/1 @12)kg`(FL, iFX ^XtS IENDB`PK D1vxx)nuvola/16x16/apps/package_edutainment.pngUT ]aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbde`` dpTRߏ?c`ϟ_ *1W>?h9H(Ġh6? iD:s ҉;Ig:;c=EKe & }bˠ(1K3~OO >e`?Lߌ\, *. ^ ?2p20K1XZ0|ed5`Nb`cy !pk[0 _1 ҂ j {b6bb`ef{gZ"? ogX}né;>|w=W @ Xb޻e̜S =a`D/?C w,`ed3#0NE\oKNOճ&pU~}t _Ͽ30}@ ܹt9qW ñ3C1 ac`/Ͽ@@1?z-Yp(2HIcbnq_3`@AA\ X#9K5<:>c7÷/0b_ ~&_@~]3A I. C, “O hײỠ^L¬ b '_|gm` Xb`bg½΀Q{߷L|îUţU^ FbdHd(䞾;U9'0+20`L+/R f!`,}Fɫd6-ί=/bm4̡'p_7?;`JaIENDB`PK N1S^&nuvola/16x16/apps/package_favorite.pngUT `nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<$IDATxb?% Aa%%ns#+C {A\$$b ^^AAXX즦??!|1AN ֶߣ7;;ëW << ?~@ED>d,(Ss?@ss;8;30yp.##ƒll 10 1o[0{!e/o#@Hs6d ß۷l[$yytOfg0 9P`v<}uˋ1ܾ )Dl+W~5~A@ @Z۷ t?J\ A ~d' A 7^}@1?:Q1} ??y?PͿ%EE~3={̷o tγ߾]O1 /2'NZV#0s=ӧz\bX̳޼04BJ9% ::m?' <Z7G&&_()? /hjabzTQ7hsӚ;۹+@|ϦW c` TfM E0X03:AÖaP b1 d`h6)+;N.|tIENDB`PK SeE1M ))#nuvola/16x16/apps/package_games.pngUT zbAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbcfff_V-X;w:YX45~O3ӻ7WﯽAX@XT ϞZ@ϟK3ܹ ?뷀OKK+O?f>>&s D˰xE`8f`*/pώA++BB881&&%>>' l]R߿ <6AA$__05y33iVV?yh' <$ @,c`gg Rl TU57ddeeb7` W73 032ܹrÇg5x?t020 l 2r 14ýk/lkhs0޿``jk/@T#wς/ L DTލ ~fdxp5WV^@@oܻa w/z|4v7lb7 7' Jhn~dػc/틾_;z2 bݻ_;j˶&ofw'P@ ""vmgv>//o(@__;w.U`b<~&ĉ-._S G9;## [)ۯ_~|5Pn& *]3IENDB`PK D1UY*nuvola/16x16/apps/package_games_arcade.pngUT ^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<#IDATxb?C ##2IJ2E ; & jj  b @ Alׯe>lG ; L BB ̜ L@p |/Ʒ-맳=ifĄ Ó~hAft@,H^b[dwo߿ q2pw}:PQ > _6夌>(#ȩJJ " L 6vl,,@?{bڮ...7O?>3$?oغs߿ŀZ|y@@[DD55gၰ Eׯ1\tݻ ޽i@@f`0(߽} c76f`SUe&)p};n12(@)(@ h~ׯ_㗝o _33>8k ̃Ix6ЀǏII/&޿x.x   `eemzӦM$ GN7/b@[XX8Pl%oʀ'-QIENDB`PK D1  )nuvola/16x16/apps/package_games_board.pngUT "^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?ï_~ ,,S&VVV~~SS@YYY3gp/FFFb ?i~Z?~gPRRaq9tE'_`) 'Mɓ߿nݺ?CC?~?sGG@} l@[[۟o߾{_>|W`oܸ9= D0333|ϟ?` 1|68X01L8I@X`s͛7PD**88832ps 9" lllo޼ax(?Jdʵ B ~|e/@@[VVt_|{p2މ  @`/011]0sL@1L|m?~o޸ׯ_B\dbB0xRx7o^0? ÛOf͚7@`z .ɼa6ڙջ@e>B1@VZHXDf#~ &!(a@pƣd`gcbcVc`aFv86 Kaz% v{W'<1LU71 g@azO?b~]& __12|z-Ï܌{  PoB ޲100102aWapӒbc) efv+Q^>`cL,,Lz0=bWocPeagaF02~?1/~ 4?7ϻ_ٹٜs0201Ͽ|}ށDS=WIENDB`PK D1#^^&nuvola/16x16/apps/package_graphics.pngUT *^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?7 ˊ kT9l>223J2<{ABçw, b`bƻ  ͽ9/L 10B؀J22̓Zd_߿10zsvqen)]k-M0l@18G^~V'_s7ҔS+Á& I3=n@ Pfda``fdgc)CJ܌,?1XggX$Q mj{^}kYw X@^0:?Yl_a9~} aJ{D2aQa>fk6*wOo2\OE C+HG o.c`~AX_Q  KgUhsdȏAe{ " \l \``8ӧ_3<`3@cA8BMmO/32h40ܾo@'302dex,4P?|u .`bevA_AJWA/ o3脨1|2c:ɛ7 [ˮrʝ{OXĤ-p :=}$a/=8l\^uCݸW?< L Ɂ R ?0Yxaק(p00$8ĸhĢLr I)Nއ@}@`XY4˙4Jݯz_1P , R\ ,< zB+Ze]+ezC4@, jv?3eyX~1.StտB7 cӛQIENDB`PK D1̡Q(nuvola/16x16/apps/package_multimedia.pngUT 0^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`Vbdd 3pOg`Tme`6rrr^^l@6@a3+99q͚G( I$g P.**YW@T\~~#C>}fB:;4bAannVYYEdo>~`ii59$$,ADDIDM- ę~I8|b:[GGgiyys{{ׯ.βa45a`gהQ|(##; A |NNPUddfcIJJ  3/)/%0$ )"]]kX={+77GMEEQXŒɳ ͛34`ztó b| l.{n1466ABZVW|feʨ_`6 ;@1?~|/'' 11IPdC(/7$Ûobsv܌Sg?~짦: f:AAA ~p5n`}ׯ?AgP ߿;ϟodx!^d8 B< ڊ:=! `ddڵ l->g30h^s?aΆvok( @`Ͱqq/&L_JZ(o2#+lyyxNŸkVfbbr)@Bb Hvv@ `bIENDB`PK D1"%nuvola/16x16/apps/package_network.pngUT 6^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd`h``d`a'_m$il&.#)o (:}I@!uk)Z9x9y^~zsO߿3Kq Y4uߟ7GIPH"_w/8Yu8٥؁?1Q/63<}3LeYkn'  |A/3\&"D '+M?2Sߘ&q=+';0Qr20p1???/^:??C##?:j @123['V)`Wp`x;?@Wgd``̔\̐u#ߓ~k9Y82 10s00r10('4?'˗r2k~=O7oI=}wz/` ;OcW H~.7*tfS'A]1    E8#P߿|'ʿc@!~狥IENDB`PKD1Eک;m6)R^Nˆ2R^hXD NaƆ2E pHXCVv},sr}?]roZ+*BxI`/ "W9 zAbOY M%9RYVB40/+А%QSccb2L <>j$4^c]*c+p.LwYB`׮K% Ȑ6eѝkRufV91,r_CsS{T꿣R դuc0ZҞLU*^f&9oެs{ Mcl 5)ymNi1D5~nm%T+WsgbgU7rjUмpjhrfxqaim:\.<1#-grY".هVl_=œn1(]HHh}N 8SFgL`vc`DClFA5Vn f ca-^\F,}~ѠU5Ўa`1zsvchvv5hy=L/_KGLv݇ )`4`n jj{ ,n&[0LY2C8.[ޠ% t`Ĕnt̃CTO`Aο{?|c1ez89tM5L|`R, cj tŻu#=IW9t B3bPo4\pq EV*%۳o 4Aaz FOSn27%֔yA±+V4Tg,[>*r]Ms{][g1nEʛ~ႝȂl]x=j%9H"Mti(وk?d\\-c^*Zd ʏ x)YAGwv]!\e ɇj踨iPK D1 3ii$nuvola/16x16/apps/package_system.pngUT B^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbc߿50ggcb``fefgbffb6fFff^!3f^fP/bM?_=66Qˮ201c`+)'P8cby9܀_\zɏ8}+ Û94?_@Lez{m-I~- ֔f`Vd`Pbi>?I;[kFUEb׏o?攒cb@7 K)v3>}Ư_8 KHH3|&;?y.?e`x_ YwdPQ@1a`cf6`,exo_4:]!N5O>31hjjk200 fkt.'w1޽Ƞ'.+`#yJCy)nF?| A& arb>!޶~2rZGFPZMW 1<+0rH(m?Lׯ (A.`gf 6fcp$3[2y˰1soV}v޻gsՋcP?_s@yq%Nn" )o&27}jn AȖj-m/3'mʰ埇ϯ? \wn`fbgaÄ/ AWM9^X ~ ,%)@=<>HONP'(%߇a' eb: '778+Oqq񸡣_h69) 5 @  : ;  1.Pgee)1XXX`^IENDB`PKD1"nuvola/16x16/apps/package_toys.pngUT H^aAPQux -SkPKrC$ ҁhh8DHPVbR-kc2KA 0(VRD^员1ȏo'?Vme7#ey{sV{ج`V5EE볊hk@gFRפjyGuh=)JŖ϶=jwT ^.ukĢҜxtǚH֥˞g_?)^p!0D.xpw^&k(H3;ǦЭKX ͳ'̼(0eauы(۵8nhf?7bA09<2[w4ky 9bkHōG7w43ӟxܭt8jm' 'Q١Rd_8237BV\UV>go+ f2ܨ)Wf_c=ħ<keߓXq`. $ܬ`07@9|!1Yƈn(x cu/uzj3$q'פRrI`:a !%A\7II;9fq3g]2? 3(Hg+mB8L-0 ύ9{)MTfjXృg,쀄, oL 0zxzj2C~4X-= 0 N׭~`+˽> GuM'S5 <vp]$k;Ag91wnۧ]|o<}Jj#M7%& wz]5'tf9d4:^ /)3\`ꖷާIawoЊ>liP , 6px,llfeIEW;B"a@ВE0`SDvAcsG"E뤡_jqyÑaX1_&:"ЎZgT}SΟ03*o|9ⱻTd/Q@vgM3ymw.!wjzEN/-?YH ʓ^dT;{{΁ޖ4ڞjww[WVK[4#qݻsZ BHc,5^sUHqqcWJ+D2"o3HqhHSO!eJڜPK D1|Y'nuvola/16x16/apps/package_utilities.pngUT R^aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?MݹZ_~F `>##;'75{[y@i:X2%~}_ 3~@ͷA6ן{pxמ~?D |04g 3o>pSUUe^_]?㿰^$@`01 Ĭ ,wLm/e&p)ô?o/-*߀l@ `:bǟs3Li5J1pgieP$6666`h߿ qv6?̝% nT.7<4O^f=@1 `eabw |R[ ,s 0NDNVE3@ +/$uW^>~pCv.LW2/3h)} 0 *`hmL6Ν 1 #ÙTTTX3;`3ZN0#8@Àh ?Y)a[~=pCNIEBÃ\QQ o͉z= p:^z73h}nn-88.41y$&")!C%߿ wnä .oNq42)+3LWU}DK?=կ#'$uC _&L0r<< JY~w&,쿖XdAA4 8uEv@UyH.IENDB`PK lD1j O:$$,nuvola/16x16/apps/package_wordprocessing.pngUT ]aAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 9'4IXX߿89;N>I#P f1@&&&o߾0ر!22IIWWl L b"@@v@1Lkoqpp_~ax4'7#P/HBLfN-nֳ00 h:6v.͋pĢoL1 E?0{ o?d`eaedc(*b`u=p,Ѐ( 4Cy].Gş J bbgax9öc h0Wt׷ L>|2gc{m '0|~~ b\_n< 7U~qJ4 A: *,f^ x4s`WH#*]G_ȷ OO#Ü-_>Papdg8>6óGW~)0XcX+ã̼,-A Bʰ&** !61ʳ'4,INUX\ | ߉1,;+ٔan{?e}KATЈ+2?D4/yw(s~3g`c&B`R`fh_0|j/1}m$'P(0 |f63|?1db+C X=\c L hda`30s0xw?PY`dNJSPL)@{Ao 0{~IxIQIENDB`PK ٞL1{~nuvola/16x16/apps/password.pngUT jlAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<GIDATxblUgؙ1|&u1[V3e@, 8ߌ 1*?)YfPd2cY'V/ u4SFIfk|ee:;ÅG5ew+L~#3 fbd`ddڣ.GVp]|vn%@OA  wJx T&KQ? ?}uϟ eؘ կ É_ Dd%ąĄxZ0~e`$4ňH2`_of_`Y[ xeꬸdt~d` y½4] 6?Q40@Mn+ßobdpwԖPfՐfeab_?3cdg@sY2? ?~f+#+ +$lg~f`va}HnI? 1? ~|atᓗ~'_6 c /?#õJYֿb-<0uc3Jfb,qgCo(g$۟ 1<}U=]GpW\;_zwp4\ϸkx[mBA y;6]ܽ?|;Wn?3LJNF5>`-0}lyI!//^1|bdx[G9 (' ÏL 9w>}dxq +c+?0|zà( ?vc3+û?L ~20pE߼ˠy ]gh?U￀F/@`=rO^M e7X\>IENDB`PK fE1º4!!nuvola/16x16/apps/printmgr.pngUT |bAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb[aU; c`ݲnr?$@,>}f# @cU@a`?  !k E  _~280t&H2tͰw fA!W!;÷_ c 8d8y/ñ+810].aeͰv7M&N@=L` ȯL '/f Xej`o ?1p X@2GM6j9 l@O~00?8`D;8$k\3 MdAlGͽ &p @<̠P@o~|4P2#_3o`C@4C1~3C0QAZH & 2~V(~[]!@@?R ؘ.bmۏ=aփO >|a`&*?~1a c})+bad`Гc2Ot3K%_I߿cLz RRcb {b'0V,V?~2}󚁋WP\2 ax)#@1jiiMSSSWSS哑gdb6V`̃bW?2ܹwG߾z歛_/]t 9d<3377677 7?L_߾}_~Wkqk*IENDB`PKL1QW nuvola/16x16/apps/realplayer.pngUT lAPQux 5kLSϽ.i+2"md2*>6!Z `2DBN`!dؖeSQ`1 :E^n ( rי9$~9_~򾏗$L8VŤ{p M#=$hDžE,KyߢP}Iޡ+Xѕe3)Vi1WZiţ xP7YcE!y8>[ԙ ->CIFX[,^8%&{ jyAw㸬I rbg3Si1{m%aWLNFc5(0<;\ /mqٚ#]j;jmEn2YB ?_PzooGr'Db;cd;|Lp}Ph}@k0N 'o7K0y4|Cwb(S7 ٖ>~:iēAY d][EEuL- liT ɿFu!hTnߕ=B<'c"3OAk̸ҲՍEļ) JRBшcȠITbMk*Yo0j:<ب]1EPK̽ p+^^PK t91->nuvola/16x16/apps/reload.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?c6#110eb&/#_-``DƧ Ā2 T 30|NʴԿz3&? LQ6<2HCT.Fmj_>0~i F~1ؘ+Y,wQf$lL .2s1_b,;0 f%W e5G62|/?, 7>fdgfaX pqpEzp_{LVb nE̗neHQ}G l`low㇯?u'6}t[iل5=Oc`z%  p+wTrd²Үïra`ce 73?~0s0Kb߬ ~10|gaeJba5W ?~//1:؇G_ZS yx8K8Xm}[]f ?n{^i h:F b'[ij2|3,a`TWrPf(/ EW[m1/l.E?LtͿ l ްo 7Y' \ 01s3=0Ԭ^I W@rqAА܌SK o{Xx~3cfo^R`x 6yBf֟_~OmYWm>pΏ  po N1=8[7c iT(iIENDB`PK žL1٘@@nuvola/16x16/apps/remote.pngUT <lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxba2e 333g߿ccc|b?0#̀I2~񏃃&#+++ ;;;H~ETȟ7@3##䊟?ޖzͭt_ ?`H ~4@19j~GNNQ7D 7!zɏ?,hibw{!bb7%$l߼y'~yoh(а,,, o$ЩwNT|MJZa?~ܕ Ԩo\thI؇Shmz t;@oQVVt `N6%>]ǏN~+ @|@= جY+-8u Z998-, >#00gyxy\bbsNaX/u?,^|ZQR L #*"qIENDB`PK t91[mnuvola/16x16/apps/samba.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?2Gg3g``Ro>bc\(/R@L H$bb |DؚRU=`m#}a+qd=b35DaO\籖,=3AeYe.d=ĩ;]+".hʧ M1j @p9dp92h2<&C:S'>1~p!P$_,,b@-An7WA%no~2>U ×0`aR@0y铏 Ͽet%Mf- *$(.. @p)陙2>}4'_o2wg.!v?u`n?2}Vq/~3y2p2㚇AKKn@ Vz-߿遑;; #ÿ?UanP=/~ OPh1cM`%7NNNxZ BB >|`×/_88.``aaa`¯2<L#`|#,(/#?s kow!XYـI㇎@p@]]fFfh ٭ _5|@\ͭ9g/{cOg4=x믱IM6қ73| x13p1k0qC,Afrg|462 A B-4$CW uA  ~  =%+)7 n3ߗ_ (`md(,+ @ %_?1g L, ,,, @3prq2pp323b'bSTd`eOLY>rh;/P >Ì{j=@|{( Q@ ;00 !/EMov%Plbdb@(43(fK p 00HJ2~`x~ Ι;>qd:Pu 5hҶ}22r,ߟ7ϮǏi@E` L+; IENDB`PK t918   nuvola/16x16/apps/spellcheck.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`j ~ B x6b~ ; H5T$؀$H"r@2Łf׀X5s ? X4T )@w/;? jRaz7gbd Hq-?Y`a@`Ha~`b- N* jf` b`8 :@9B5_ b1 Vu9'ϟ?w10$?: y@C!%yh[030 @b 3Ù ,@ba@ b3;CH bF27 :,(6∄yG 5 @000poy*a?r:cu5w rg`;$~7Ne5gH}u9MȐK%0Ma3 A\ܲ=3'0]b89gCƫOMwiW fh / n& fv200|j/&"QSm=AGۘg =73?ګ ~`88y2~ 3a L 13013]@,N\OxXbxA_L *001|{,LP811g \O79  }`31\L 1 X8s00f 1`1r:fy(77..vPL0˛`9 T6"IENDB`PK ўL1 $ nuvola/16x16/apps/stylesheet.pngUT ZlAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb?% XK1 ReaaL, ,bx@@B/X@*& ! zc/\\cܾ)ܲ t) pM˟ :2b+PS?>x $ "*7_02K 1 F 3 agcXx7'9*+cv<ð{iv,_WvH '3]{Ξʰ|EϟzpU9 c}ivO /_e'2?0 ~ 'po30\a@[0'0?ta >ghucE@|Fa|&g@4_ރΟ H~ Y A!  '&").;9 "Pf59pr"Ï7 'eQ [/ ̳ab. L_`43bio~_ C|ڪ jc`xyAP 4jF@ *Te`a`e`q PBb &@Lyh$_AFAՂS`3ˁS Oٖ3(0S3J@W{``x@1 2011]!Li!?Xcxa@MLtIENDB`PK ӞL15:==nuvola/16x16/apps/terminal.pngUT ^lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% XMNJJ2߿PJe"AO< O8ܜ7 b`bb*b*7"" c:@,@ N>ôm6QQFF&$b-Wii%A  HӧO * ff ?D!H0ce8p`7Dɏ=b`gg:bcc@ p=ׯ_ BDfff`8eغu+իW }2dݻw|}}~pq&aÃj`av@l8 ttt-["a.bbb@W`1FH(3 (nYX؀alTd'O0lܸ߿c 0c ܽ{ҥK   o߾+gc8|A^@ϟq+pO>aaa0ׯ`W@ CB@?9l@]Ĕa޼`ŠJ@̌`gȵa Ǐx  @@ F& ϟ?c(1x;Vs`ZsolCJ@߾}`daױtIENDB`PK ֞L1Fnuvola/16x16/apps/usb.pngUT dlAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (@A'3f%u>LJ^q;o r 3000|@._ Ó2x+00K XPxXyWa0'_`f4X(ď~|;dg?奻^20" Fߌ & @A VQJ/p)."ø  !-PeܷsA/g$uA  PNF VɫemKi ( @ 80=12xY5{h>V C, @6 _+YKʭ-.FV@ P`yрQa=U"P@F87v-oIENDB`PK L1 G^!nuvola/16x16/apps/window_list.pngUT |lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb?% X"3V_~b7?Fr-6JJ?@,:Z4 H5𗁉7# iqy)qQc#_| X/7_ C@z?&f& 2d~OVEo Kbaaga0PbbCNab`x5nn>?|ڍ^b_d@? O_1H2kps0} X~ @A ?~3c7;ñ~ XcbD%#h4@ ||| * `|WoLp9?0@/6~]0X@6#0p@9  ]v[+~wnR6ލB`ll߁ _^f`` ?~1@ @Oc @A @,5!/` &@J8 1\FثtO`r: ڒ*aN >SP2hP70H(P 4/?3×@ ?_K 3* *pW)pԀ ~6V`X10@APRCCASۀ셛 o=dPg F~e)!6N65HٿAyfC$5夊\1IENDB`PK U^=1gnuvola/16x16/apps/winprops.pngUT rZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<}IDATxbT׬xe$10J@L,_.b1`|$H@>'ç+wޙ@,?o[~20110L, X+ç32 _211+ 100e Lg{P??XbZ2 Xmeg`ߟ?2||3 ΞeΠ#+ #3*y 'w>y r K _bx no`802`b ?@?2Ș11`; -`ߟ?- Wb y 00pp03a`g)!3Ff! XM%.}.1?u a`f`q  )` 1}𳷗#? i L@11|~׏ @ 0:d&1Ç9=!׮1| SFb 1ki2V?'21h2 1! X@i)EY T5tO@h  6~>|[1å/~ tO`fF_pMVfbşE{Y?~ 4A9F ez703}@ % ^ʀ CC`dabl@Ԭr\6[w3>kxf`cg7+eY4_z%8y6\@PX }{_ϩҨb*=ܻyr꓄ l < \b z5wosg W~W!@=V@,PpBieqLƶ+.PF#N#o8>nXUA_O3LA7 ÿB DIHK5t];4  &GgC% SV_V1 #RF/FF.Sfs43XyPŸ!ʠ)7xҿ Mf@ 3`dM12 .6NiN. ۪go,yz6j?4%y(ȩ LRZ?T#SW_R@` }=rs*"F3020.n87ozz?6fXb(b'7Njۊb# 3 /;2Le adbdf{LCIENDB`PK L1fnuvola/16x16/apps/xapp.pngUT lAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?% X@D⇶,슌IY' 01s28La'_6"3~%=Kn5@1 t!a ̥@V PlA:r2Ǿ,;'OضO]33Ip1x-fp4{ȕ@.V>6[w3>kxf`cg7+eY4_z%8y6\@PX }{_ϩҨb*=ܻyr꓄ l < \b z5wosg W~W!@=V@,PpBieqLƶ+.PF#N#o8>nXUA_O3LA7 ÿB DIHK5t];4  &GgC% SV_V1 #RF/FF.Sfs43XyPŸ!ʠ)7xҿ Mf@ 3`dM12 .6NiN. ۪go,yz6j?4%y(ȩ LRZ?T#SW_R@` }=rs*"F3020.n87ozz?6fXb(b'7Njۊb# 3 /;2Le adbdf{LCIENDB`PK t912Тnuvola/16x16/apps/xcalc.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?h(pp1߿ A0kzao2[5ZK_o?3 C} ݞ/ @, P7O0|𝉝+Wf W 6,$Z9@ t*+P5' ~gۏ _~*2J1?#`bf?çԔ>ca 27C82h! 6?޼``~83 ߿?2|EٳGOV؀_2(mfg ((/F` A@HsJ ç@sϟ޽{(df`bbb`-W+ED93Bo  &X񃁗ӧ@p00~^~?2/;wfm&'eL.../^0  Oa)>_2(Ub}AÝ  ,Ǐ$$$^|/@^{ ~@? ?fx/q >>^`LfgXLO .>{͠j;( P}h A![~.a'?1c 0`jͧExy/ 9}J`J(Ik3,q;) AƍhQ-Ag'-/bhA"Ԓ3ylūᏯS5'goOQܼ$ +}zF,+(wcZGA '֩i*2Xtt&ytMߣ';:_Y|\rEhBc*K ũW#9:WƉo|Qz#$Em22Ztd%kjb&m'b1, cHQύ1hd:G3o%1m(Y-;f^OW%X%79$>67˃r`t7 bOC[k'0~P1&„k:/I֗I4;#j[O FL @"(X*?)6e} Ln {9)\vO](tU(L6atqK BL},KMy>$x0`|Y^$IZ)Ix497n$Zv~Af++~-v\L4d OGq IÉF -_cCc3ai@~p۷@H`W1 3޻<4 "~6[w3>kxf`cg7+eY4_z%8y6\@PX }{_ϩҨb*=ܻyr꓄ l < \b z5wosg W~W!@=V@,PpBieqLƶ+.PF#N#o8>nXUA_O3LA7 ÿB DIHK5t];4  &GgC% SV_V1 #RF/FF.Sfs43XyPŸ!ʠ)7xҿ Mf@ 3`dM12 .6NiN. ۪go,yz6j?4%y(ȩ LRZ?T#SW_R@` }=rs*"F3020.n87ozz?6fXb(b'7Njۊb# 3 /;2Le adbdf{LCIENDB`PK t91Mnuvola/16x16/apps/xemacs.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb?% `hjj:99WPPxξ( \@ gdd字}( RRR;@̜T d"@xL !Pk%% / V@ dã„?_ZAAMۯ@3|ҒSkAAr@ +d_[z3'~~eeennnk׮}@8^)Qt/۫UoD"~0HI1\|G``,ٟ=_>~&$ӻ<,?x ''f >x97@@cz撿Y=}ܹ3$  ?aY mi{^nDi,~_QBc#0޳gϷ[@I@<@`n 򵙘8'Vn?Q}JMMX`@ X"忁yxߑ 0L$!UqWIENDB`PK t91 nuvola/16x16/apps/xfmail.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<>IDATxb?% Xg)ꎎ$x~3Heo0^@,ȦG\Zͯ_cXj@1! gKDÇo 7ofm@_~޾pc^^vY%\e\u1QW_}<؎dz ÅO䵤]g6[ѝ r `//yiyNk/pjh00pcZw ?>2\qCa`%KW2/ ~2hi1h35O`xϲ[=ey}KQO?ACG1\wZ]UY?Ymo V `ۋ7 j6yݯ ߙ|~cؿ дL?: z6G0O/9[(2zMtŪ@o@ LV h3@YՁtx-e׿u/˫;(m@,9c}39Yy\'6vaݗh?\"9@q!Pb&$@ >6$@  r[E%?0ryн@J˷^}ݽK@?}x~`[wq0P (a4^ b6 ~ol?@f@Xْ)IENDB`PK 6sH1z, nuvola/16x16/apps/xmag.pngUT HfAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxbb(#.ۿW/}ve=ka``TYBRAD/?dU ݛ^~ Ĭ3O,_AAABAPI@'2>b YlᓭA?@~t03#n._?V@=א  &}S/B ^~b`xHb = 2*,Q. >!1NVV.@ @Ësq0<eTz+Pb_Yff@?@43310p ?>3 ɣ9~ec`bY~9 - 4 ogxEdA ߾y#fe+ s0/Ѐ~3޷ay_9?~U l`2@>}:#gE)IYq)vvVv^|pbVaRڏnIuo@ A +"%gY=>&O~~9Zeq/ dɊlgO - (acAjqeFׅe _&߿wEf_oOE Dm{&@, D&`~ů< ~a FXYX}; s 7"0Kr1L|%C=@8 r{I IENDB`PK VL>nuvola/16x16/devices/UT ԤVMFSux PK |A1Fu&nuvola/16x16/devices/3floppy_mount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?J2L@3!"F_Lwynm ×2@YW_o~ǷWOI{'|$1 |$[hSX^,;f( `%%z- ®̟@`VP |$?~h_VvnNNT0 ğ͌X` RU? 1 98.d@& 8pcdegr192l`D@ `~g`Xzˏ? gr2@v6o1~_ e d`8~/|`'w.c-Cub(Y٘nΐ SOax{A[QMAXHAۀ!.ʊP߯6 Mxà o>`eeAXGAوA"÷O$ 88)7'0?CI?``$ԅ \@C99xPV__ Ϯ_+o>2|AQ7<(}&á/D`eg`#ۿī?6}/ $ L^ؙX1xɗ g\gz*O_N0Ls  `+q!/_?~?O-0cf3FIENDB`PK /|A1#E}}(nuvola/16x16/devices/3floppy_unmount.pngUT \]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@+J*~L , c`@6ăZzq@1\ϔ? ?.gdRZ@`3UM(/?J f_ L@6#3/@ Zٌg az;PV3prq3pq]/@@= L 0t fa  V@,0 ,`b A Q`?? t@^d 0 +Ж8> ?E.v /0p \ \E~'_@ 3, J "r@=P&_C# 89XŸwUY>0(A @L0 4fO@` _^7213013 3 @pzoS?|cwV>1| << QLK и Hr1cNOQ3H , U`sp `d .z%_N? g`fm@3Рg 1e^#(312 601313P`IAS&##3_ yqCE{1IENDB`PK |A1i2&nuvola/16x16/devices/5floppy_mount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<[IDATxb>}[III?~g### B@4HۿE^^^@]]b@?0ϟ llL L@1@ߙ@H߿5h! ϟ_?@lcff  D fx_ _|RR߿0hj~abbz@p>|G!lll @A0 32h_o?3EEŘ988  4lԩS۷Jnv,_8Ae X40T˗/3,[l''gw8x_G_13(  wň4prI*xO9#W>0d`@1[1 I CXXX>y}ǿf%IR9h?ÿ w{@,b H3~GQ3,ïo Z 7x3zr('@l $37/2H20 1|c - $ -/ &AA/+~ΠTR^kO~Mh  @L ;4v 3# Cr͢ o|`age`Pbd`S"`WŠ7÷޽E0ܺ{ObTVVUߐ̬>3|QY?~`P?K P&M3IENDB`PK |A1l2(nuvola/16x16/devices/5floppy_unmount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:u)))?c@ , ?|> Xՙxxx@߿p߿ LL a`ee500qp @ndUׁ3{@, j+ M@4C `/_0 X@N5DS,`?~j6oT X@6d"%@5={ARRׯ@hof~~Pi F&7@A={۷IKKSׇ7v@1H ͛7/^|ŋ^R;v'fe /\ @,ha"`훀Uϟ?G3H3Hr AYYFٳO8h(5h X  u 7(LXXX@S+X#H %(AP~gرcí[aa 0H^x'< PD й 4PR.#@Ǐ| G-FFFtG?{f F)@[ BPk`3f`t|r@xH˸aIENDB`PK t91iPP$nuvola/16x16/devices/blockdevice.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (Ā)+44nI32F\< ɽsPE 20n{~K? 88&&IsL{{oebfbUYKj _ ϟ30{ 7gqv~pext-/@a{5D;Cs={a`*)~%90j T_ >@, ~}a^6{i2\޳a  fSC_Bs@OP ؀g8!2g-ow03,dcuC٫  /p30D&{aCIX 0׹22 0?YYr 230p00l<&jvDG20[Յ _dX>`byûL lߙa?@O @xD#Z0aㅿ | zsOA XBç 70nnVO_~1|şR ۟ .F; >WGt3N`-y&+2 W3Hsx^cR/C&{*$a w ?W@. dP@E= IENDB`PK }A1)!enuvola/16x16/devices/camera.pngUT 6^]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (A99ig :6 #ALL; .   ~|hIJJMVVA@YY?ɰO_2\zAGWAXZ&9b`cTAF;*B:)% ~̠`a'P6@/ b ,??@L @?~ d _3?p+ >*be``+FXR &&&ffV02ٳa ΀ @ 4%^r8ttL,~ 4 ubA<~00cpsuf.Nn?]r3@ 9 tçO_|gec'P)(Y?1&vvNK ` \` _y_h/0@Q )6rO~tvv/~1Lp@Wfx>ׯ~\??00`A ߿wF`3]L,̠Xc˿. FJ3@é "IENDB`PK |A1E%nuvola/16x16/devices/camera_mount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?% (A>>mt 90 ªA^^DPP< I;$ +-0#I@Y@ ߿ cOg`fax<Û/_~c`2v)b?~1l~ 1CB''Ï@ 8dEy}ex=k&? &`02203X߼^N.II)a)w @@% OVVK ڶu qF F J jb 302d3 D /E_38_e(k #@0gd`fff6?~3:AA^?Oٻ:J0<9@,C?l ?~b`gdcyn =- Z@/}cdgБezp#0D/7aKPo1~haƆ&ƀ$o1Uc?̍ŐF{I݄,yb [uKwVV0hbطI,3gi< p0@ML /0t/_|m7G__AAAAQ_ o߾lP22h'ffbeC_˼ͷ 7*be``+FXR &&&ffV02ٳa ΀ @ 4%^r8ttL,~ 4 ubA<~00cpsuf.Nn?]r3@ 9 tçO_|gec'P)(Y?1&vvNK ` \` _y_h/0@Q )6rO~tvv/~1Lp@Wfx>ׯ~\??00`A ߿wF`3]L,̠Xc˿. FJ3@é "IENDB`PK N1 \;&nuvola/16x16/devices/cdaudio_mount.pngUT PnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb42\12|K_\]CKEM@oݸ̩==z   FEmsqqK>p3 bכϠ:77/o@M?/?UU;kU,/?ǟɋ?~@?'/H?@1sFi p2|0<30|  ~10~ ?SP?@1ihxI0|33[«3;_1xAW}Y0|e/o@Lba`h7#7R|f/ 1Lp.< ,BǟL ,L@ ؏D;SńEkcx[ڛ , ~fC =5y=0x ‚b3|_͠, - Е 7?_`@1c-*YAJ?3lfgAOYA_XƔO  O @L[rwQF99`X Y1Je ( e`cF0 >}ca00d8~>; J ܬ b@#.=ð٩{`ys^)*3121<îW>b~x=;O>"AK w=d8yן#,O020012llLAvv&,_q᲍j2@@10|EiUk(#3 Ï @??12 A@Cͧ_zw@1WR@bnq97 >2]+489>]brYZ˶A xx؋#t$^hwg88z6cxr;{ sI tg@LjBƦ 10jd=W00|yx3w?bfbe`ddrm}{Ϝy#1=zwG^aX362@13߿_Yͫ%.l??x˗}T {䌔UxIENDB`PK |A1 \;$nuvola/16x16/devices/cdrom_mount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb42\12|K_\]CKEM@oݸ̩==z   FEmsqqK>p3 bכϠ:77/o@M?/?UU;kU,/?ǟɋ?~@?'/H?@1sFi p2|0<30|  ~10~ ?SP?@1ihxI0|33[«3;_1xAW}Y0|e/o@Lba`h7#7R|f/ 1Lp.< ,BǟL ,L@ ؏D;SńEkcx[ڛ , ~fC =5y=0x ‚b3|_͠, - Е 7?_`@1c-*YAJ?3lfgAOYA_XƔO  O @L[rwQF99`X Y1Je ( e`cF0 >}ca00d8~>; J ܬ b@#.=ð٩{`ys^)*3121<îW>b~x=;O>"AK w=d8yן#,O020012llLx'>|4C7.Fbb~~o 06^KJA@O_?޲[ۂxP#3@1gPSmGO|/`?~?uڥBB@|";mx޼e`_@K~: YX,,߾=q$КG8"F[NZ 00iүo_>zЀ=e`0wc5-a`` &5u@ i/@[mdGgc`q >з>g`bbvff e~Y~v/@:@&{? O8ޓf4?'[ \\ r\ i$$^38].@Lr6H306v6]5w|!a20@L`%+PRAiWp&NP(@A ߿y @LG>~'!@[ udd``bd7=ݳ׬:KBAQ1L(d2 A)]㇖jbӃ{wHI130| 0H0 @^>2Lj`rf8@L@U痲ac/_^`H*|À n&IENDB`PK |A1ժ33'nuvola/16x16/devices/cdwriter_mount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,cXL _d+`c9p}_v10_9ǰo>bPʰad/.|?[r^ј! C1J< };DWW/JWA  rN6mo@U?PVdc &NR|5q>i@@1@{@!*؇͌۵ &}AoeQ z-_G@C bp1pfb & -~)NVp 13H'\/v=p }y/<a`U`b &N~6AgdCmʬׯ= Cՙ: g_a`!@L/sB*!PY..'JZZW0\y ?;O' 4<C91=M 0h 0p3s3uк0O;bfofoͯ`~gPq&Cq B 2 2_)bxvobDߺ){E?`O/?&&A~!>A^aa'S]o f>g)o( eP@102=y#4$YFH1\z~aSo0<xYJ)1qxE\v) 4:W.> >wc[뾺˽}`õ~dbx5ÝwN{WO~1? g` %k;2yO Yd} JNw66&GVf,_Dx,>~~?~Ozg@D|O}IENDB`PK |A1 ee$nuvola/16x16/devices/dvd_unmount.pngUT x]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb41Yg8?[4,;~y̓~@1B jXr/+3#o83rb|YLYiMC ï.^}͠ L *b_>d:~dCMUwAL*+= 6- A rZ^, ,8$"lA"#R24D6 0)33#MEM]XF@W`X00|6 [ߞ2pp1!p< | jZ,,"$ j >~b``gc`x6CLL7.a`x]K ~ h0Ȑ@#Ȑ |b J ?g`60޽|Ûbe`gd]9?FnP>|w-'._h'(@2 Y{/{i@1ݼyh↵~I10(ta R@@ !a ׯn: =@#)iiSSQVvH@| 0,@yNx0S ffU߾=z ?TeAch sE<٘ @123 0021Dkml"]d@fx{9ڷJvA 3TngUdd0gceϟ_?Z € j[{IENDB`PK |A1"nuvola/16x16/devices/hdd_mount.pngUT r]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<>IDATxb?% (d ,ZG'$H@F` H0٬, ̌ eܰa#G7322| VV.yIIc}#O&n PwhffF $ݾ}˯_y? `@2 f HIief>O>1++ Ph9$d%AR%'!'Ā4#H $ . ,,  YYi ss~6֟ ?c';珿望$Lu yyqטeEIIFICh_?1'l, 5p]z)_02Xm8 XEWXY9|жgU5 r \,b ?^1L<(̭UA #4% (*  Ç f W>1p30 03p q0 0|AGQMBӝ;w} h3 8X2~f J3_N?}Ûg0c.0i2~ FFFbt4SӒk?ߌ6u!}aIENDB`PK |A1)%[33$nuvola/16x16/devices/hdd_unmount.pngUT n]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (d ȯ0W[;(N@/IPV0, ,L _21:- B,Bbz, Y!4f& ?^20||Wvナq?@,QaJ'O22B\ z?e &&&VMaQ)N65PA](*% ,$ &..m^I ~007b?!dyE$$H 7o_?:3@ h=(aANN +bQRQ?1h_?@ @@@gsp2 s'';P+ н13e, 2؀ \\ **ʌ<"!!G/_ r*H1R"ff`|C\UUAXXD X٘VVVp: hrRgB?0DY@sP+(Ȑ`AMM ̌L ~gx3 Ffb9~gaa!?#󗡉~#޼} ED$xg&pX2#Á͇^~1 )q?|3wIENDB`PK |A1h XXnuvola/16x16/devices/ipod.pngUT f]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?twOnkk,L L c`fab`aff'7/Ӆ Wf}j1H@0@-޿}1121~󎡤Ί; l@ _~2ܸ~ @ ޾dgaee7P0}7A]MAFAUEABB@ ޿?0}bXY8X>} 4'ÿ6dР`KanPc& t?5 l ̬ 2 3 >؆@~!"" oZp@!!ab/;@o2e € _`+X (70 `wn> ##%%Egfx#dn?N 4g61|h/nnN߿A@H^`7wx8xy05Tr,Cŋ `ׁbL x,012rssw_@ FqqA7YLpn/|Go~mbccbV ~s _>b9GK8(fŌ+,0331}׃7$`*4IENDB`PK |A1M ))!nuvola/16x16/devices/joystick.pngUT `]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbcfff_V-X;w:YX45~O3ӻ7WﯽAX@XT ϞZ@ϟK3ܹ ?뷀OKK+O?f>>&s D˰xE`8f`*/pώA++BB881&&%>>' l]R߿ <6AA$__05y33iVV?yh' <$ @,c`gg Rl TU57ddeeb7` W73 032ܹrÇg5x?t020 l 2r 14ýk/lkhs0޿``jk/@T#wς/ L DTލ ~fdxp5WV^@@oܻa w/z|4v7lb7 7' Jhn~dػc/틾_;z2 bݻ_;j˶&ofw'P@ ""vmgv>//o(@__;w.U`b<~&ĉ-._S G9;## [)ۯ_~|5Pn& *]3IENDB`PK |A1tnuvola/16x16/devices/memory.pngUT V]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<#IDATxbdpPb`0`򓁁 H3a`d%ĭr׃/ v~b`g| T y1ГQPSfc= sZ Y3~?lhiAAg/o>2ex{?w Iu#M ,3A3w ’&@a1;Ŧ$i` 蚿T+fy.9/5@cE} ARa7c lOJ0k 30s'+?t} v&yH`•AMі!S+e} ]7 A30*2 nmAIgMfG2W cm^]!o_ ݄~Lo`K/?u%[Ŋ"Ca8}2`E%_6Kg/v3矖Y5Kh7Ŧ.X ỳebN?kI]` "/i xvcLbrX ܡ_ 30VK% D< 8|tF3~vTB]5H TaenLV}f(*#44:edDpټ1}W=K[l=Hw }?bWzn Z.-DQI4W*{:r/ _տE%B2632 \ENl˪yZgOBgϤ|Xlv$d^?\͏FXWegIu*w, ˺'M|Ӑ)Dž YrPK|A1r#nuvola/16x16/devices/mo_unmount.pngUT L]]APQux mLSgǟ"}M.[ޮ$Id]2Ti-[2^JYER犫enY)xPCԉN@*|}>sr>9s,%d@J?K^PWf)_Ab(_Eܾtvzpj:x0EGcYvΕך̯=]̦~N #"{+81_dR%+g  #0W?5 VE? ^ɭ0Gl"AȰɨO_?~q];E{g${A ta;m8ğ:7=8Xz;z6"4,pW5g0wgs=R9$숦QcLX 2l|"*ibwԿ7&WL_,,.s:#HL7͵ۜ6LDt ,ҹ! ~<>uoAąW [4V*CxzuЍ#h~&8XMF`nBԴ@;;ЬH!^FUKeR INh[J3D vmG!6@[lo(8@޶#A.ݍ3d6y992iAL$#!. r344|H*!c%}}0}O\T[gv Dzo9ML՘;--Osi!+/'r6"ޞF4=NF|C,+1Z@mD/ZŨ^O~zY?ѣϹ;"he_fnC[A */ɼmI.Ϸ)D r+E$?Mݐ9bl:܏ܵ2`EEM[=jR$-(vx''E8]W- Jf3!(*Tu#?:'WbƭK9?PrPK |A1vnuvola/16x16/devices/modem.pngUT D]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (8 a gi:8JK.w"~efk[1juw͍OU_ĂlPOBBb/@F6&  \\\ @ _|a~z1@RɹLEEEh#4\_P}$ @, @hHч]H X d0{ ޽@`&1~`@4h0A.jfqubJSVV$ f0!(`/\v۷o SSU޽}/ 43T2.gϞ} @,ffNN ߾~c ?#_F0 Ǘ/#G2]T/0Ah 9rA ּx~u74$D.y #+p?@;g3'X_?߼vj< gP`gg tɯ_gz+åK܀߿Ç;(%.1aFq)fN^``axçL W.@~}/(1p~wr 0|.3,3(7kvp 0 SGܿ}*8H`g3>aʆ^]. FAA _ÿx~~wjΣ/ls/# LzIENDB`PK {|A1lJJ"nuvola/16x16/devices/nfs_mount.pngUT :]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb H`X!  ,,@ 33xqÆ@,RZZ,||`ML`M ll,@ӷ w1>|x?   ?`\29988X$$$xy߿ XXX @N?__`eaVgbfX_7Ǐ?@_ fc@,@l;?( P ,Π r@((H)ijʃ\4ß? c?}?33&@] &S!@I'f3<ȸB׀AG[O Xxy9߾}w7 x9^>}h2E ?.~fcbPUd 666F.ϟ?5A\{aaY2ܒYϠ-*K-C:o ?Ծ9o)qrh_n.>&exTY&^ IM|wN=9 XZZ-[`uE*~bef 0'00V Aq13\oa!}$  A!WWS00/')/* 1;jN*!")A!!L / QLLA^$`R;wi',/ѽ <_M5DY緟&O~zg)@ƉyIENDB`PK x|A1+$nuvola/16x16/devices/nfs_unmount.pngUT 4]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb Nb៣' XXfa|3C];/_ELLLOKKYXYؘ888޾;]޽{@,,J< ?~`LH63  & AAQ} b ,,@_ ?cbdR* NNn-..߿;Ab3 # 4@ XE5LL4~'fK l}gegPUUbaa EEYU--߁ v? r߿ /00ՕYxyLERRT ?BL(ـ.dv'':&@pq۷o@5Hd(b P??@1rqq-8@d *?7 oY˷& 4GnY>} ؿ@W0t>#Ï߿^x;_ F33 c'@_9% !O۷u vV?LLLll,?q^bdc,fd.W \%)um_^|o`hÇw,'O_ A LLI//-./4(4 R +nnix >~|rȱ>c?ט90ܻaČ7?{tD bi`& _|ѻw10Ȱ1 3<@W@ ',f k0#IENDB`PK v|A1RVPrrnuvola/16x16/devices/pda.pngUT 0]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X`ɓ'߶U10220x_eE/_@p X9߽(H1i)2X܀>cbdP60bg_ _opSQw `g@ +3( f_V$Ѐ@'p1p[? d52DN_YlEӆl ij&ET bQA _5m>*.HaA$W٦  0/UI a**7ĠW@π.z?A.A@(j #o@^ُ10<_]77'ЭL~1pg` w23cPf`A` @!\?  l׿@0!?/x 2a l`'sS"_//`T+)*3ps32@1! `89~㏓O /(3 09BS8@!ҟLFF @~20333|_ 0 ,,pPZ@p/^W@糲2{'0 ""ʹ :udg>beg_݀T,##7_6d /=`8PIENDB`PK s|A1?"nuvola/16x16/devices/pda_black.pngUT *]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb?% X` &&fʿL`b3yL ܿkuE߾}@p 5u2e ge dAՀ}!@mnwAݎ771|' ~?dx 0pa }x sB9$VVZ1{,>L|1!^$'R)/=n{M.N=# L0?fx(d'dfW]`7/BS eh ߏ _c->5 Fc ן@mgz+o~ û ~ 4OXC 1۟?@L 2<_1 Ka܀??1g0eߟ ?g t_\`{^ DA՛0? &(p$0`! u@ `ce[׀ oo>"# 3;0:` Vo~7V`t30X<`t ` @S5; ?^Tߟgfx+7#@/@@ _[rA7 \ _?\@5r ,>|4B ,YX0S+'; É Oa5 p2㜉~Obfl L)Q ?~12)0R' Iϟ|`x['o33220A f$^JoA`gbx6 Jb h3îQ ,_}`|z V6%`~`t3 > @`ddrc``e``X ,/&{{ @UQgwIENDB`PK m|A1bmm$nuvola/16x16/devices/print_class.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,*g?%++=&&>~aHNIO`mm#28͛W ?cbz<Å {s++0*(J1 K1Cћ!) gb>}J eQF\'} (shhʚh^19o,B /?exHWd-YYR߿' 7 ׯ3 m_ ߱1C' O 9_0((N۷+?7f@ACBK~ $%%+8 =ƟAAX*6**7""0nJ'#eAKKy?{?22'33KA~~㌣G۳#/wt<@<|vysoo߾z55kV.pJ[D ,, ,, AgssxĻ(10.* ,FXY.˫dKS\LLzɄJB\ ?|d)2uʹ (r·޻w󣮮00#,L\"CDa>gk%S9 @<4W~i%/"rnG1<{&O 58 ;;'0Ӽ98[KSTRTȗ _^0F%;80/]oP"5"l˗ XN1;&@ I/(pC@1`@,I^|a rJǠ&o޼U t1/Л˃wˋhV BL75͛45U޿?@I_0:2*(H3prma..0fedpV-sYL WDD$6?7X[EE%1@K^^劀 =( @N թxIENDB`PK h|A1º4!! nuvola/16x16/devices/printer.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb[aU; c`ݲnr?$@,>}f# @cU@7 p02ܹ~AX/_ݷM+E__9 O 2?0~01`b3$p0y0  !;8$l X+6&7`)O : _` G;|0ï |9bf ?/! _?f8}>ç_޽{ Xg/vl Ġ n=#FG~Ű2;/00} X|zKNNAI߾bsc`ffa(0#@O< .. **pry斦bUU ** ?~a 0 L& l F LL {qr!33kXXϟ~߿͛_o\_DDt0ˁz}m:f~셏aAs?`L '=gz{ IENDB`PK e|A1i[nuvola/16x16/devices/raid.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb Nf[)((413ëWr͚>: @,,.ZL<@Ōp,,@l;۷_޼y'k׺Էo_ &eA~?~0#P3X3Ƞ?l$bbcc7f@@߿ @?ޓbYyb1b:ϟ? s## `6AFFT Xdeumm'ƿ`d /Do@84488 E^^ZQVVt@F @huu&nn~Sb??#[0bbbz\ 2ÇOfk&H„@d?@$ @'kx???P7 00 d }ؿ/p0|ջF~c΃[ ޽ @,|<< Laa`<, \ 3013~ ))N>>Vo fg@Wr000 ++#(T߽yx Uh{K`p,d ۷l 'Gk h_> FUU,~~`=\͋ݜ `0F+ IENDB`PK t91>,,$nuvola/16x16/devices/samba_mount.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?1Ef1g``߯y3mSLy).)€ 1hj0x 6.bYt&N/10@L(5+vå G65*i\6)EbAedVSU_~ډc f{1LT?ç\|Đ^yh@-ݟ>}` lB 80 Cj/2[sA>5Õ'@z>}z@p88x^bb`8]s n^aP᳨P |z3<|֕W ~b&)5 CV=f`+((33r򲆶 ^0g`eaW w?1<yxUt3$p/ -(( 2 .`/y8&O13a0}`l%GD K3a| &&]"/7?qϾ3a7 o>`p9()wFFA>eeUVQ@BZAAIO?2&cPcgxwWOaASSU j+ˋ0(e30Zgx _߾a`vePb'377-@ =o?L cQaQef` ~101ps2h1 knn1| `1n6.b:?0` #2Fa`8tsruphq%އ:af )1.AF-v*ld FP^pv 7`_W%v^kbc~_vN~;~t#@ `=W"߿~Z3ppϠ-MIIǪ > nuvola/16x16/devices/scanner.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbLJd2tgxp+b6c`ddd`aaex͋םVVVd#ej89tϟ_W`!X3;;÷o=TU\?|7_3())3yʕ z  f۷/1\tŋG ߿fx۷h i; @(r]r@S0TL$T޽}PUVahO@pq1 (\rߎ;  B _f3f07P ϯ- _h0/?޽ X@ß?~bd@qk^s޼x UY#\:Y @,7{iԙ 10`y3{d9Y-Td1s (~e4AXEJ;x910p0feaך6^CCSn IIv_ ``𖝉3+o&x{. 3WZrox3o?pի<>}:@1̜ lЏo?:e 9)庬WWl{?jDCWX_BB|„6 a @@Ƞ + Je a1 ?QSSo ;;g(`^w3XIENDB`PK T|A1M--nuvola/16x16/devices/tablet.pngUT \]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X}jY۷3r|P>d``bxov_7 ^^14.ï?>#)Zi x\DBIJnB]0/>g XYjdEx1+Jٙkr1 3w_6  )_)oR梆;w~o2>s@A0F (UDNU*2@P/ Ǯٻw//E:|w30H|cfaf Ŀ10ef=g˷_ rH*S#7W0\_V ?00| *>@pky׮c'VOQAY ~cbe`egc b@o2l|Wm< @  >57wX4$] (芯@@aaGsӷs~O^#ß?udE^}ۯAT6o` &>i`4CMß? Oa/7'P#P?qF9FC2L(e(l >ekk"+_6An R Ң o~gÚ挷.-; X9% )6n;ONXo=˰p%}~tnWu@ m-Du[Vq3 }^N:銨?VN&}}S@2<Ɩ x=>IENDB`PK |A1[8*nuvola/16x16/devices/tv.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<]IDATxb?% n C HV3DhRZ1\u[kEHx1CP WꆥxLZ{f>>Ģ veS'2s5q2;#/ _00JJ08;3,** @,߾wa&O 3a=p9?^k1020kcb"&s8XX $v 8$@DRcu* M##q@-Mk @V!3'Xhɢ@:ˉO 3g0zpIwc XXP?As?ng8\aӬ_ 0h33;oIV.fibNOOߖ뷟 9)C $22312q01SȨj@A5??C' |ESg  &-# ʤAp6"*̿N(6*  Νk_w;@?y&^֚" 9څg?0d33003' `@2ʱ^uҢo> $ Ԭ?3)C3'7 l,~p.?Gܹ'@a1?#'@<?ٯo n0S?2|gx%@9rwgIENDB`PK oA1[  ,nuvola/16x16/devices/usbpendrive_unmount.pngUT b]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (Ē2ϟ f`dgx9Pq߿*i'()`/##+%"rK .*--Yg+#(iӜ"0߿@Ϳ4$ڬ =55u8. ( & p9_ Uoam-t6PÛ7߀^Ġ- #̰nui~>@ 7\{3335?^odeylPUU#@u6߿[ܬE54620|򛁍7??V.n.&1{odZ^baffdK3AAAZɣ ]kzi0 PjKKE?YY&/0Kp0HJ0ps30|kMY3۳w__VD7b>}'?߿lյ +7l5Ж W<}ΰb7oV @1Xhz֭;HJ=xpϷڀ@/)#''?(K|Eel`r>Sb@1R`G:GнIENDB`PK |A1ޛ>>"nuvola/16x16/devices/zip_mount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbX!!!)vvvϟ??@?&7o} 7o ii0&O>1HII ÿ@ -~pyſ 666/_003 ~fɓ Ξd(#P cp0 xHHڇdqw"UEDޝ0Z=\݄  V0= 9["i 6r@iH'  XKFV0 -e\PōuO/@ :?|tO0`qŽ (3 0? 삟?101K@_L, 0{H";w .010 4@?+;6 "08i 3c}A'N>P~m?n3 ^ ~02w /01QA)uq/o1lJ{ @,L@ &&?] mf3gfANZ(KAS) /_kna0Tgdbeagf??իWnܸ y͙嵁'×xYH1l8pADAOAAAA @t @`D+)iK $U]: ß yϰhYb:@$P(5]" ӻ~|Lw~' J{IENDB`PK |A1$nuvola/16x16/devices/zip_unmount.pngUT ]]APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<SIDATxb\q!~~~'O<`g fddd^z.''{d4;;;:geeaPUUp(aQ7cu+{Ċ34$+rsSw5~(s#@; &HϘϩeKULZNg (e)NNlH3hm?A@\=k2?L? # 3a𝅕=7&FN ~i0320zagdt◿X~d0y|W2`gto@߿'q13|s@L@?btW "g ܜ %@@/?9!v J2-(.+?$ 9Y oA  ?8~/` ap * ?`T&` C@ H#0!1011fkS!85H=3022д `SbJS0>}pQ>>>QQQa >}y X^zh&O$. ӧ/@C^0]p@^ `3qw;(L@3+Ù3>ٳߞ={v(#13Trr8a~`fcW@ ""[ݳuIENDB`PK tQBnuvola/16x16/filesystems/UT ( QFSux PK t91Xͮ++#nuvola/16x16/filesystems/camera.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (DRVVV)--mdpppoN߿11022|_& 1t A@@@ G- @AE 0@9@E [Q*IlL%.oQ%Hf7Ɠf' s^J?t_ #؍a4fink# 0XA* B#F&f0|+   P,GvſXXA llL ΟgȈe:m3_?   ï?Q4hFb8hϟ_ Ā010,Z(V6V`e`ee F x#< B0+o_@2 ;;;777srr }}__ ߾cxC /r30ad UVm~)(  &&H 06XxyxibFvQ쁉1e].nx I= :?1ap= 0~8}IENDB`PK i=1;2Z'nuvola/16x16/filesystems/chardevice.pngUT —ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbLKK[wgg`|{:߽{ĸk׮l+V``fff`aaWOqqQ@[nJիW@?P_~ @@eN:[>>~vb<<< `AF~o߾]     g| >|`xж ?f;Ï?tttA/ph#HǏ4 @񕁑/F`h@HsA]pEw@ak?2Ҙ<211}@,A߿WaaaNNN7 bl`x{5 e96>p X@1vdee$%% W3:3 bnY"(@,@11]wNN....Ǐ3ܺuɑƭ; 0hlV7 /^W f`ihh 0pppg^32hk3 ;bu2!~ ׇk?˲eKR 荿L*?~djnnyIAЂ?X2|agX Xvܸq}P!4~q!W;v/220?KJNQA9jڠh_%D > \=ғVTWax012<}aú߽{ @0o߾.={[Ǐ3Z{׫&&`gd`eeJdbbՓ_J0{IWIENDB`PK i=1jh55$nuvola/16x16/filesystems/desktop.pngUT ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxA/  F9!M_fd栗YҸFC~0ycFNnb?_@WNB-ן"av? 52+,,ȖV]˄3& b Y3q- ~U ę`g2aő!mg)+l-觡ɰT)Okl'M8m@ @n0ȋT7tVbЖg`gr5þ />f8߾nj~@,BB"7؉e䔏f{ ?d`fʰk>i K=rV)m^|^ _31n۷ܸ L!C!Lψ}}]7&nbz[}naؕp~'9n+O?10e(t,+A0zB'0  ?179)"zןqE:X ~g&V_0( ^vf^/_2|p O^OA501P6!  0 㷆ǏI jɗvV=p9Ë O8=vbG  0.`0] va`JpƒE7:2xa >M/8=>~ݥ@MA Z l* r;6|/_?ߌ*wX != @ @6/+* {Ag5$42_$3-eaIENDB`PK i=1E!nuvola/16x16/filesystems/exec.pngUT ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@ >>_\\ _d`e`g '#7&&EVnno!aagyII%/3b1H٘V^EU\B@^^^TRPUA;7o Pcf`@`5BT\ZҒ]JJovƇ~?~s>0225y@`d8Κ!,(3qu~] ~ @ĝ/__JI305ן X~3j hj ^f_3Ԥw@y 2r b@ 6Ǐn=XG_ᯘ}BX7`fa`@;8#Sd3g /20'3h< Tdo|@`6~|_f߹%_WNΎ;ÿa𛅙A 59EW.$.|7005;_^?0%e8P@ 0fff`o01* @'uf~>fL }gcgb  3þ^}2&Kǎ0|axvn9ڍk? A)dqϟ o޿gx {x%#:7o<{O {|@`|E_cm?}@%'Cv8##󗁁*X:` ?$ؑ 0shIENDB`PK h=1@(nuvola/16x16/filesystems/file_broken.pngUT |ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<kIDATxb:a@### A[ZZ aǎ??8_`K ? 7 _ce`daf_ܫ+W84Zbi^ 8LidPгdPteQdbg7+WSST f_|p"AMςMVm /]b3 ax}&ÿ 3<۾v(Ë3)(@1ȇG~G0Hᡒ2ff~`]񽳓f`ee@1(lY w Q-#/ |!Ëݻ~A5\@,DUW09crrI-;OUc!!+V0|03cc`P:?`KJ1/)&>_ __~``:W&>ᅑß?`  XA8Q)- 7~2psC Tјܹs-,,8~]s,`q_@/_f/bNJʳf, 3Y Y^~ F쫓%wIENDB`PK i=1m1oo+nuvola/16x16/filesystems/file_important.pngUT ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ?_|!10I 9=8jW`g)C3_1AC4 ?=bx &.._PU P o ׯcaxm 89ᖀB3l;(^Xp5O/cg d+ [>޾in]}7n2S`;v |<@Wkb3@??1޸ARFỊ 9nKH0hK1a=3ВP/@150Vdbdrwg30`` f{`/s?DF`~}^!O \ r @2p3ŋ p 8@ f3pˋ+ Ocx w~*(1zk+ 10]@, $~<}M\[ ? ~Yop_?L@C~};A (Q&SP-> Q`1/| <{ X"() ,'"{ _ t`2g s}777 ` c| ϟ#77wTPг2z1ׯ~@gIENDB`PK t91(nuvola/16x16/filesystems/file_locked.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb#Ǡٌ /~6m4cb177011a@?0Dsrr2/YϏb@ ?ӧ jj z'N00UQ;;n_-?xx++GWb~=Oal@ d0ki1IK3a0 / e*ebg _e7da@Lp;x;ktx_1 0HH 80cpba/_{d@g0J1(ct4ß_>gbgaГdswf&4 Wb` ĠG3={ӧ ll <gdx8pA. `gdf`䟿 b ao%- 02p/D5@R ofITATB>~p/] "l /^%=b00l;_ ~}W2ه ~& ,@ P?0m2l ΰ/ؙp9ˏ"L3hs @t|A^hˏee0I f VJ @1 0-T#eLM4D!AOdS!)&fwJY:@,Νnaaor4 ZA60H-031|@1rss'JII-(!\Y&,_I+F-͌IENDB`PK N1픏_..#nuvola/16x16/filesystems/folder.pngUT 4nAPQux PNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`蚲(u?AnI02 ^~.   _~@/PlӬg R0 P}1H@_30|0@ xjWH2jO( "Ll ~ȩ _ODx$&b<`Ca?D3H d$loH.I  ( Pi*`*  @!;Ap,chvaP *b%*J@ .^IENDB`PK N12(nuvola/16x16/filesystems/folder_blue.pngUT 0nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`蚲(u?AnI02 ^~.   _~@/PlӬg R0 P}1H@_30|0@ xjWH2jO( "Ll ~ȩ _ODx$&b<`Ca?D3H d$loH.I  ( Pi*`*  @!;Ap,chvaP *b%*J@ .^IENDB`PK =@4.nuvola/16x16/filesystems/folder_blue_light.pngUT _%OPQux PNG  IHDRasRGBbKGD pHYs  tIME'm"P\IDAT8˥ҽjTA#]hZYXY{,VPW="X!QWW$ >0̧Y_"}(w6d2JL u)9Yy.Wiw\TKpw76/bZM(W l`zIENDB`PK -=@V]3nuvola/16x16/filesystems/folder_blue_light_open.pngUT F_%OPQux PNG  IHDRasRGBbKGD pHYs  tIME@IDAT8˥ӿjQQ!b+ XN|$/Y{I*b]BHt33s-$$\{;{dߠ8RAra%9eLXr/"e ,NX<8OZU|L ?"txz蒻5"j=UM(븞?uQ)lc~-{\QQloS9 6;EtUeMo^q辂~X=lVě(kJFŽCEl0b׆\x3kw[q[_q^5ă8 /it̿~,aNaP 7b' I'MIENDB`PK oN1!ZnWW-nuvola/16x16/filesystems/folder_blue_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bp7@ @8P ];@$=4N/F{ |܃ ^ d {l/ ?00p@={6\^" -3'go6x1s:Fw> u 8yB(0n~@y3)ds@#mcX;T#k? Wm c+_ 4Ȁ?r?C6520ċ5Ѐ M@h_ 2 nql5.BBDv7퇁@ i7b6F |t @۫ Ă]@@ `bC 0!A} XPP xThbCIENDB`PK N1s!!(nuvola/16x16/filesystems/folder_cyan.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```R+ˀn7j( 0@ @8P Y?@6za5\@` 0A A@C q2  ~bx+ÚeQ7~!6_`l.b@p@!2?3lYXf+@  /d_f 53T=?<Ȗ@ M PoAA#@ wo&A v J4?T/TȠH2|H6OH \I?aZ? 3-`^e pZ@ XXH߁ XPÈ  `4RnIENDB`PK FN12G\kk-nuvola/16x16/filesystems/folder_cyan_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```R+ˀn7j( ̀P_>b`8P ]?@$|a:\@`Z/|z6 4<AJl?~V32U_n.zjL/,0(~ּgt5k6D@_L_ g x' ’؀yO~|cxm7CaR `H_`AXZ ^|D3f@(@43# `! b eJǁ@ xû`+\od,b`&,N P꠶7H/@ҍ0n2 ^ ~JH2ن@ JaB@||@2f|  @\IENDB`PK /N1V{FF,nuvola/16x16/filesystems/folder_download.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xxn? 6]h/؀ _20wa>v6!a{2ZC #f ,bgx*￿\\ [nb_ M\30|7 \_~ vfο ~gx9 % @`^~7#ǿ فw _`*ï_J :1+~~P4)O@ļ@ĪLL_LLd ĠhB` Ĉ+1(?f"80MrYIENDB`PK ]N1DFJJ(nuvola/16x16/filesystems/folder_font.pngUT 2nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx 7j6F!6'PAOgXe@>Ce`8O3000н@_o5Q f+@15w`[0қ gNcxûo gx9×_>|3@ .x{?? .3[h2\\t[ъ YdfyOO7Pr/;Cǒ~Y-1O3@, X Y20e#BNj 64\B,C * %!`?IENDB`PK N1 {LL)nuvola/16x16/filesystems/folder_games.pngUT xnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx 7j6F!6' DƧ3, !7ëx$501g \a P}ÛׯH10q 1: _~aQq6;Ëe^^;̐+ Uˁ}@L o10W O703h 1Ϳ vN: w7X@APl|{AU܄@M uǎ3c`bx3 l'l .bHr`PU abL߿d/{1l޲/?,* O3Cx×?>|pa;0?v0ʢV pm?|fϿ~ΰ}6v_~~Tժ{@O@ݗ\}"?q+Rc f/~A~/!؀?%O 6 4< 2 џ; s` f@A % C,ny `eo 'ï?~[ 3 |L@vfƿ`6H _} @PA l (a3fG@ d?. 6K W@A xπ`67@a.B6 |% C`@ d؏a(Yj*z Ć@ BD9 XPÈ TJ@% q#IENDB`PK NN1_oo.nuvola/16x16/filesystems/folder_green_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```Rˀn}R7@, ͫw`H1x\ d_@Ai8 q5 @ KU6` dB})t;H @ , `lfV? v՗˿: {`s231 }@@ Ÿ//0 j t=1sx#@`>g+0d' l_ [@ ‡h ?2|e  x ~Ͷ A`A5\6`*عh@ }`cV Ά %6Y̏PhgA  DA uPA X W@T/?@ @A)L/@| Fff?0b?% 4vʌIENDB`PK t91(nuvola/16x16/filesystems/folder_grey.pngUT gUAPQux PNG  IHDRabKGD pHYs  tIME .olIDATx^1k@LK@/ oQJݻu^'p%n.Yc?RPz<{w'ҲMޚ$I}5Yљd2x<~k^@q: m֛ȲL9RJ5/Kn @) pFl6g9p8|$(^~!q_kѵvR뺈X)(RYQ2eik4yߋnǀA ,08̬(vUDltꪠǏ6|\Vyzs>Nb γ\Vr^Kz\mpK. .@/?νO&bc48ÿle`Ie Բf` @Ľ n\0| oc?#PǛ_|%xgr  f-6e.mfl"Vj J< ?c7 @/0mgav+ # _D? =&2I3Z10pr30?W?)6V̺g}?@LL?AQZ[E狟 _?× 1ff$#f5 ARP2   % #rA+  ? 70 :' $nɚo,fv4? o  2lMc`b(x @LN _ 7_x `/ 7 0Ҥy1ĉ>a`baB h+#+ VNw y3s00 ARM/mF1pbߟ|Y50y K.6Nq`6>pd"W`9 XvO.MtWfqQ0``2@<@\ d{(Ñ]{ CB}! X+D -׀33LL@K  O4q&^5/cf1c @àcUI @  #9aMf1ܺA_([ ?q6z(s@01f#AS 1ti`PzY-🉝Ѐ_@wEJ$2(/+$+TU~30ho0 9 w?b8 ô ?bx+ËSDU80 001'А?˿/VL5 0< c'-+?Xxba`a`5>mf|cаTaxp;a`ahb_"*K[av1_~2{ Jk@"%SL Bz)JZ*L\~u‘\_% ~`$>~0IENDB`PK N1fqq(nuvola/16x16/filesystems/folder_http.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx @L`׋ 5e#DV M>b`051ñs/~~yZ` ""bb`|m?B. b;zv1d31p11|A at &̜|7?_| ?d1'D18z0<~ b v/?_wΊ I?n\ o]e8p0Ra @`ހ\ 0 e9AO ex 9 'w_`W 1C/[g3\<;(}97  a : ߿$NVVF  d38!)E^ɈA@A^Rd ?,*M M O_30ZT W qQ>sp20YԻ @W_~3\@  gGhdaaG۞1i?P~hP F,9) bU )@|//bl.IENDB`PK N1m//)nuvola/16x16/filesystems/folder_image.pngUT 4nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xxj,& &lc@`^~h~aŊ ?~|g  L, gxۏ a ^ anr w'2 "~#n0xcû/a/ @`Ƞ!`C0Q`gxw@`@](YB >f8z ër D^b4OD$&b/d5| Bb 7.cAFRѯ삯؀O@X٠221 >{P/17sf+н{w@}O@ +?`ɻ:AA oIENDB`PK N1d{NN-nuvola/16x16/filesystems/folder_important.pngUT ZnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8G @`^}a`a l~ &Mё(@ x E+Bߟ?.0AARA ᒧ3, !B@}]8o| g?gpM @`#_A x=qAu^-qI/ Wex wCl/P?=pZ_A[.37Ol %`hd0gZ)6101$0|^? " L| Rrb 22 JJJ j**  R 2|ӷpl'ܛ0~7c054?&WQ ?3?XX JQ87uw_i?@_ ?z*HZ  pm^&!T[o bx p>?޿__0so zw3{w;'}?32 p/?1fdf`aagb @1"S!Pbu fŝ}52 q*.IENDB`PK t91A )nuvola/16x16/filesystems/folder_inbox.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X V|YL佈g蘡s?C6kljv3KW>6\jB@L~gd|K1ckd1B(> QFd9_2~x.8@14os]Lz1\n7"<"bb(@t=bX@.kFJ""ƠEcw۟(aS @R"rb™ J76 #h S_ ͰiTa CA@4xxJ2l hNNd+ÿ__70`d\@ َ\s> # 7 0LDIENDB`PK N1*nuvola/16x16/filesystems/folder_locked.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx P JL^h/؀ _B^\ ,||@gx sb",FƧ3, !e`3;CDc# Xߓ' g&Mb(g/Q s+@15u G020~ | L@P,}O^3@ .xK2ܻw߿ ޽c{ݻ 3ܾv26 o1| t.:`fs30s h>X ^x ,PafƙxrLLL _>}$NVV`Ud`y7??9 <<_BhE&.?0 (ec&I< ~Q(Āׯ~d8ư GWe.(uf0bgP0رzw++HI10?f8C;s 0 X@"LL5BBbb ^}>ݽ[ KXXA)^@ Lf g9r0g6S&IENDB`PK TN1WKK(nuvola/16x16/filesystems/folder_mail.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx&Ml@ x E+g>38aK > OgXe@>C 3ȋ1Xi0\< } 3w ' obSfH 7dad/55&0<iT " @`^@{?0X23㌉_ ~ge61dq0Ha @L ͧ ρ~ưc G0}ab^rW.Nn`LwbxuÏ7`W$30%/7#W~&pr 10b0Ta8}:67F| ;vb(ra`̠4 d8 )HZd忴g|߾C/pE3XN% @ @ 3q%##󤬬?/ɩ} @X, :@Oƕ EHGIENDB`PK rN1G7`e(nuvola/16x16/filesystems/folder_midi.pngUT 8nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx 7j6F!6' DƧ3, ! _3_ ? <k4 9 {3 0<}AIQի  \\ 6oe077g~ï m 6 & /k1hii1;v!$$aΜ9 e% gNgHKcþC#28X%88TQ+1@HbUED83#3ܝbm)~6w?%84;;fbb`gPRRf( ^PUUH32|h$?10H1hkk3<?Dh1nWI~@PQQ`Rc &pk$to  f.y$zz}Kbԁab쀅ap |Y Z݀X po _04 IENDB`PK 7N1!ZnWW(nuvola/16x16/filesystems/folder_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bp7@ @8P ];@$=4N/F{ |܃ ^ d {l/ ?00p@={6\^" -3'go6x1s:Fw> u 8yB(0n~@y3)ds@#mcX;T#k? Wm c+_ 4Ȁ?r?C6520ċ5Ѐ M@h_ 2 nql5.BBDv7퇁@ i7b6F |t @۫ Ă]@@ `bC 0!A} XPP xThbCIENDB`PK ۣN1`̝*nuvola/16x16/filesystems/folder_orange.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd``` aRc@15#址 Y || `%60%2D?P B6 W8GAĀ/^`ظx*10CbW`li? B@_ß`3 .( @@54" P5 d$@4,ЁĀoP~|@+ X60 `6~"  ??1dL `(Yj*z Ć@ BDx/@2fF N`0 3P `.wEIENDB`PK TN1@@/nuvola/16x16/filesystems/folder_orange_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd``` $meR7@, ͉b 48Ŀ?p@,`% Cr@A  B?<€2W} _00 *c3`W{P4,L -Į BC/׾H^ !$ON10u00\Xl@A 52$>@44` @߽I3@~Ԁ7 ??eXw}a@o<8 ߽epa;H?0 ~0MnU[6B\nHvP: F U"Ѐ~ @ @!R${ Fff,xh( ЛAIENDB`PK t91뚟*nuvola/16x16/filesystems/folder_outbox.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?% XIbd~Azϰ  @jϞׯd6uĈ Nb`XSwIa jyd32J!/nݙ`C%A5KB(Hv ƔF@(@ } ψ.@L А~&51؀Y&pSfagcg2pnjDlMӧ ? ASa'`6@Ăwr"_?( 'ÿ?znv0@1R &]ʸIENDB`PK N1")nuvola/16x16/filesystems/folder_photo.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx 7j6F!6' DƧ3, ! @_'6~( 3 ^k ~2_ A>0l/ tcPRaq9;+ú7x38)2H)2ABo @ xreï_0Y0 r3p1c O11}-<)} f;3338U W X@)0qHءѿ2☘hwwnn?ýx&@.osPnaeef`cc?߿2 ãG89' 27CʍOk}[sY^ + h Û7E^zʙ[x3 dWb@ĊA Pr jIENDB`PK N1BSii)nuvola/16x16/filesystems/folder_print.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx @L`׋ 5e#DV֛72HH00] \`6b₸ ,bgw!_Tdæ'f8@5QLWxj~߾f7^dCw?l/޵s'<; !O ?d;ÍC }Ϡb i Îǁ&$1C[AVw&gxR~1h2= 4l@ T× 1|{A+5Ff"N 2~0{o_$ X@)0qH10j0۵M cj&&F71 vp @1CUw<ۏן?|/{ǎ}"#@!Á r)+V{'O^[zο˗o zT3퀘  ђ:(J1(1(K@|  -?"UqIENDB`PK N1Ɨ/'nuvola/16x16/filesystems/folder_red.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```Z ~ n? Ɛbjg ;1@133" ßs0 ~AZz/!؀߃% 1HK_d@`ymӧ33 ~ ֌F\@Zd@At>r"0 ( % 졡0c\A># C3@8W?  o߂y@ a A|Rx; @&40@ ( l;ĀϟvT P e@0^2Q H @l@,D~.^e 5ʝ@!@AhO( IENDB`PK ZN1Tnn,nuvola/16x16/filesystems/folder_red_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd``` } no< X@3v”qs 4:Ŀ?p@, k%*?pFF0I ;H@A x_ ll`u?7l`XrV? vե?1 {wkN_QPgpsR.\p ? ?Wf`E6G .}e߾1$0?P?~0aƍ . ׯ!^ l#(\]2' ϟa?Cq۷ ?!%A.f ]o@  d0A!|ȶ   | ANNP J L5 Z@$z(d+1( J( bJhva_h 3P  IENDB`PK t91@$-nuvola/16x16/filesystems/folder_sent_mail.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb?% \630lyw1Lj e@10m 4jvb)<> CB}! X+D -׀33LL@K  O4q&^5/cf1c @àcU O." a `_gB/`HdxRAՍ!`PH@A5w ケq0t7 2} ,f ؀_hpp0e8h% llb6 oAl0 7$VLU$$Ab? ~geSn+l'lPh 7sbUu'vm F ! ( XX/3aCMH`b)c_8 @. fP,31 rt;~n=@Ќ(spk}U:6w=_ ( ) $LIENDB`PK ɢN1[[)nuvola/16x16/filesystems/folder_sound.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;<<%2+Dd%# , o330333o 4< 2 p%E_3^aph,dxʗ]֋zq/_1  pt_ O>foUo /?ClBpg \yo60`ȟ#U#Wb{j OfgT?09i_g2}?  @`^ @#)w 2J3X 2~Pf;/pl ~iП~1(d r NXxF @ i;O}`8|a!û|pië3 0ac Al~lx[nM g ~ed@Aݦ 6kLRa)>V 6bgP2L(dfbE?fHZ;C ?3({@|/1w /xX~p-5o # v@l͉,AJhIENDB`PK N1Aiaa'nuvola/16x16/filesystems/folder_tar.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`Xx P P_1  /?A4hz /b`db`bafxE87P ,bge{0 Ǡll! >=;pc*×iq >C~Aڝ }+a !.`@y4 ؀_ ~cF&F.>aPw` j|U6Wp؀7 SAH0Z^}|^a~4o0!  h`h@00]TD\؀O@XY@ -c`zh~\~#bw !aHFAT>mZ&>?L?p: J.pg//#*r }pl+v@}Kx@2bP2 t2set`}tއ?T d;0 6^A" B (]@ ml ._iIENDB`PK N1_~BB'nuvola/16x16/filesystems/folder_txt.pngUT HnAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbF4@N<4N/F{D.fdd P2\2_9' UW\vd@ xK'0]wws?zv D8+~{> @`^~h~ъ wcǫ7_ 0dfexm?B. a]3]A?0gns_ _Cfh0 P}p(.7P"k ex!Ƥ'Ȁ -"_ @_Ex%aGyau;v9E0_2؀7P4?^+n {blb 矈p  Mx5 ,O3^``a?! /  @04  ~53C%%6 R _3ـ0^et~mg{ۼ ɗeV{2WKa`` @]X@ XXhQABz,v _/|.+@gx`|1\M b>ç3sJ00#Xy0,1#ZAA{L`Q6IENDB`PK "N14L;;)nuvola/16x16/filesystems/folder_video.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- : =\er6/@qݵ b0)r3;"`ClO[3|a׮] wa W/ RRv [lda0-/XĀ lg0i3x̂aM Gb|<," B @/|Gƿ" g8vν32303q 2 ?~g! 0@A? v z z ׮]c044d8y9^ "SVF3#é< B ** ,, " l   nn +Wbxx0U胝@h4JʚAAAAUU(cdص[g ؀OXw k70,~'JY^e&߿16߿ m:b']{01 M0 3?kS@p o ~i >qh~\\ gΜI-@ 2 Jx?O v>IENDB`PK N1-++*nuvola/16x16/filesystems/folder_violet.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd``` ,z n? Ɛbj ;1@133" K?1 z1Aa/!؀%)F&}w!@*G (_3,_~!6`Xm@X؀oo!0@?3O ʪ/ 0c\b?>Ȁ!4H3Ȱ@ ?ÏO`؀@  D&` W\AA#@A\4j wo+` X`No@ + 6ߡ.y?;P @R WH(\V 6bg "Rw {1@4;0bȯ@1`xIENDB`PK cN1ll/nuvola/16x16/filesystems/folder_violet_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd``` iˀּR7@, ]1eB qN/ 4 xu~ { 1?|F&O ;H @ /?Luc8p)V? v_WZ2 |`͍s8p^Y> u |@D‹ {Tr}W5.dslO|x̗5 )ɩ`1&fêA1@ Oo`j6A\O__a?C _~fmC{"K1PH,~lϯ}?fP: l? J6Y˓AP`6J{R~ F U"Ѐ~ @ cĠ&D@ >GA #TDC B3@1`*tIENDB`PK N1g6*nuvola/16x16/filesystems/folder_yellow.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```, ־Rc@15址 YH'^{ "(5h_d@~aÚU @@Pkn#. 2 ~+}  o{S,f+@A x?00D3 #aj'@[v + 5>Bbh H(j;`ÀBFpXq R@ 6( ]qD q? P%K-` H @l@,D@|,chvaPb 4r@2s^IENDB`PK iN1*ii/nuvola/16x16/filesystems/folder_yellow_open.pngUT nAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd```.ˀJ>h@ ? qs1 31#~I0r ܊@2x/!W؀C@>ӿ>  q2N1H; h(#+Xُ[{`W]h3j?5ge`bv;5\ۇ p/wyW8D H~aՎ )@C?$a/ o~%H3_ 4~<?°7b? ? `Qǁ@ x3î? V z+~lalH!PHw :t @۫ D@L cĠ&D@?y(8^ `DC @L3(0IENDB`PK e=1 nuvola/16x16/filesystems/ftp.pngUT 2ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxbdPf`d.?%ZZF:2""l~wg>FAc , n@1 `Pb`T43;\_jY?X021@13;$$gf/_euCC#Wr9:ABebO4=  -_3_Q  , 2< ~10=/W2<:{.F@b$A$ X 7 8  +R^GECV@g?psA˻>3۷ o?mf,+8-@1~Fog 6eN^!N)k~~I!vgl7? &_>{?o)f!9;çtt7YIqfC ~bc` -8%rb6d0Qb a+ ."`+`j ,kmy2 -,+m'8H1뿯?3 ;>< ggp/OSbމiX03333HI2H0H10(q*3؋2z!o$@㚕SEpIݪ'~7 ˝5"5V@1 ``g(w~ 0Cr0sCA$ýSm  ,^3p3'qX10 ^1|` [@~IENDB`PKg=1+8!nuvola/16x16/filesystems/link.pngUT ZAPQux  sb``p  $?OR,鎾 Ov%K\#JJRSR|=gmmmv5)  mj~>M IɃMߧ}++6} &Fw@DDwf)oo;wdH08HӦM?;a?GbCΝ?Q*㟟z ~l >f̹|ؿ7p30q,sa7tm@ŢOk>.:&PKg=1(nuvola/16x16/filesystems/lockoverlay.pngUT ZAPQux  sb``p  $?OR,鎾 Ov%K\#JJRSR,_hRwk֬3|܉3gezή7=@?\h` Wgfu/5$]~\q᜿:00=vQ]^l5l+><= zc  Zw\̯a+pI0B<]\9%4PK ؕ=1f#$nuvola/16x16/filesystems/network.pngUT ZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAF]*'j9,*" يdf|ba{vԮ|W@}L~f 4@ 8n`9x~gſ^7^K#+@aPdß L@s}fV&<#aNA RIl?^` 4ƅ; `d7 ÁDR@L?3| teo B ,@`Po?`$%  @0%û@!66 ;@f ߁:1@_H_\6Yd^3prC03%L<@o1H q0 @`-_uSY (]11v?_a+_xy AU2N ~?##N&VZc'÷o_1>~ ~5@m۴iӫHϟ?O?z'?}{ L#P/@ ))x$4Ta $S@`6n6nh 4o~KI)nٱ 's7˷o߁e6Ç?>}\](*&Ǐ*?1og$5y֭[{ f@ TD:/g' V2 og%ᷤ o¢Gv픇@ 76? ? 0?{/qee ޽M `6u hoIENDB`PK g=1oQ!nuvola/16x16/filesystems/pipe.pngUT ؔZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X.# g.$.s޽ͤ{HDDHyݺU@e[>|Ĥw`,,\ _ؿkfb"ƀ/_0h^d-/R : (7 v17o?t췀vt(3pa8,۝mWgcc Ԭr@a5*oC i3TYJ~-ffUbЬ@ rk5w\27SP@Xhdx ïƻLԈ[8Dx{ T~3_1hlfp R Y U]^ǰ=l~0J))-pG% lB, /.}r,6ׯ?LR23#Ynİ3?gť kڰĉ+xWmma1PhHdN?Tef`} ޽;f̘pW^@[  trsktvN/..B5AA S^^@1=dyB MIENDB`PK g=1Ŭ#nuvola/16x16/filesystems/server.pngUT ҔZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<$IDATxb?  ~f`g琕itrr av_>wG|!H@1 akkk##COO׮߿>}knnޙ0=€mlEUbo߾góg.cb`ddc`ff rs>};?~1| ee`cc)@Lps0~ϟ_ JJR ?fx5 3'ze|,,tqss6|  P `ddb7?|F! ?351P%\@5Wށm+T3#VNNv>>^p7߿l6 yxx=xp6?10{hWCh|oG@(y_ED~1~c`w}v1̟?Ƀځf] 2h!륳fkWW /_GBIEń^x&x҈׏VQg`akcg_888z ̴3nw013eՏZ& t U5>bgAD8C7} B wVZJ =::z _s~f`_/8Y˃W} )e=޿IENDB`PK g=1h{%nuvola/16x16/filesystems/services.pngUT ʔZAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb<+)OB{ ?|d`addy _z;= v_ @l&("'ϰ |3H3 3 a`b ҭ* 6d`padk>^DϿ |A| F&LߡmgcbX5䊿   I>Q M3fQ )-US5i{>8w xy @Lcÿ|`/n%YR_c}'n^/_2ص'wO|FN@w>w(3VW_vpr|bg`b̽^b\c&x0"7~@02 /Á20L @a7 6_cH <~kbՁbo@5Ï[ 0dTxrշ"b4xXKG 0#/(|a2 _eַ{30$%9P 00X[30KWGX{\/ ? N 34'P-7_?~c`Tb*(a#/3c`Rcb`b@rh*Tv5 4Ãg}n˕ R ƌ\  d&L @A !x?Ll0İH,KOs+($L @zjt+ô30CR&FEtRcb bn c`WecLN05cjNūIENDB`PKge=1/p#nuvola/16x16/filesystems/socket.pngUT ‘ZAPQux 5S}LSw=}m_K)`¹a(F (9NGjE3И P+01ݲaeYPZߞ#ޛ=sܲy,H/~C6*_s$E^ p)R\0cv۞zXzQ=bӇߦO:y~5?#s߁&D *L򔲐] ߭*ȢoTZ|o..u1<+]SwսURلv[Mݓ7 hKTZSd4(~B#O1Fz^r^7A:* E!{gb=Up_ H"'YLBq^/6 2k?؂9Q0X/']eQ0nơ(yYj, pA;/H ,8Fv&ZL 6(<aڶ?tcn/Ӗo,:Xx|6]ȩ^IpoiZfE;hޢcO7_p2lVN1k*8NTK~Y39Vhl=^ sMĆ*gɭ)F9T7 ,Px-A$qvzΆ0bmjܮۼOFSSBi@B&H02 xk d948FB3po.?p:/6ǹ+oT5vsɈ}ى6L -RW(~fg T~1!W\ OtZs~`Kg4 uUaw(.,^S+=5-,QSr7]k0X&y$ 07\kGuf&A>73xx 6_ rdLxni2'#GO@04M@?@C>30((7ï P=#L?@1A 6'жL1!rPCL .Ç~_!j=&Hֳ t, , , .G@`/pr2^} o?bx;@10 a`"^惏Y8ؘ8XXYؘiYVv׏Co@MY6qّ#sp3 2pr1rp3sq222axÏ}=^ @$_an# ~3;/ 'Pß_>yơ__R3Pr^. *_3wa`|ۛG `oX IENDB`PK=1S+T[*nuvola/16x16/filesystems/trashcan_full.pngUT  ZAPQux EkLSgsZJds]0M`[!M@N9.c7N 01\ &xVXvqa뺁BӸ7/;,P@XYd8;aI0jIoRBؓ_NyiEe1(*AΑjDY* ='Kn} C``s/DlEV L6ֽnÕ{7QeA GRvu‹m6\ `wʀf \UNL_(8n{l;:'8> ?Gb=饳5+\GD@=ɰ0^\zl7aI۹fƊ7"P$aҘ,ݻtBƄR" _a{G`@ZIO20l=@,(/-fOn:j7f%k姀f%'ݶ85he wMon2<(UmSFBh/&I-:V>Ӟyc[ˈ_=:ןA=eɭ ;e]HD4`F̆@H >\>$N$Je%;FX?e|4!+h܅h>rl2%4EU$a!(w{w1UЙ|Edbhe0E:ʵ3hBo4_2G(}*z):{$W豌6qrwm<2|/Ǥw0,ƾ6׏>f}*HT* 3UN5-MHc ;鰯R1NWT@}~JR901YF]?ؤm (:}I@!uk)Z9x9y^~zsO߿3Kq Y4uߟ7GIPH"_w/8Yu8٥؁?1Q/63<}3LeYkn'  |A/3\&"D '+M?2Sߘ&q=+';0Qr20p1???/^:??C##?:j @123['V)`Wp`x;?@Wgd``̔\̐u#ߓ~k9Y82 10s00r10('4?'˗r2k~=O7oI=}wz/` ;OcW H~.7*tfS'A]1    E8#P߿|'ʿc@~!+IENDB`PK y.$99 nuvola/16x16/filesystems/zip.pngUT >PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb` KH|"9U/ &f} RRe'bp)""!U?@1BiN fb@Qb@# (FD1 FR5\  -ùŋVǠ+/g?o zH@j.@$ S5*(IENDB`PK XL>nuvola/16x16/mimetypes/UT ؤVMFSux PK čC1WW&nuvola/16x16/mimetypes/abiword_abi.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ 0ȈBÎ;~ ׯ?_|!b޹sĉ _~egfd1\<<< @b47o0,_a۶m ~ : i  _|E K o^^^(߿3 6fx  +L% 6@6@AA a =g03b0c8uM Ï`hb 3kh1 3&+1ثex|8+/O0|aA X@ď?xt.``~!!?AD'M- 7cP g` d'AFVAF1ӫG _gQadR%?F>b9f0~}'+  fL102Bb `~A6? r O~dALɎQP -A<? fxpKn^ȀHd+(0ϟ <| F ?~d}7ț?j;'00D5``caG;B&b9ww ߿35, A83ϟ#77wTP4d1 fyW`ʝ`bC`IENDB`PK C1Fh0F!nuvola/16x16/mimetypes/applix.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<qIDATxb:a### [ZZ aǎ?ׯ?_|!b*2*j0X$@L00 r6o߾Ν; y?@ ϟ?gXv-ѣGaB `lfx!P!  [n1l۶Ϗ۷o [la`ffkY@L0)\bϟ233V^ +++A `NpMK28;;318991ܻwa`yab l2۷o3 k888\@,0@/^d1cC`` C\\Çttt6lwصk8$&&Lu`q---}cחAPPf ?C@@@l;~~~s2|*A uFPyAII  %UM C@@jAr&b9ww ߿MEZd>,@.f&PT F` %JIIYA=+gqh>aO06IENDB`PK C100 nuvola/16x16/mimetypes/ascii.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### q޽[ZZ aǎ?_0+W?@,@@&D0 S}vKKK+׀ 3033 1K@BWWW%%%_~-0L͹s^xv@LA6W o޼[xl"{{{?Y16  ]9D;vӧ ,,,`9bB+ >@1 }t Ąl6/{ɓ Ϟ=G#@ pqq1{= @`6spp00@w `Fa@NIoddl ?@܉RRRi@yVPCX^| 2/IENDB`PK t91nuvola/16x16/mimetypes/bc.pngUT gUAPQux PNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDAT]HSa\B,"$HQ]xSxEDD覼()J>%J",ATL.BSl휳휧 qޗ_EDSt]fv!3XFn$"BCCX,&""meYJ$Lib!aiDYD=m#"8\.tp˲2D às<;?"Ԥ_B(*"h`i4'mmsbxQrp8|xA| {Sbmigk607P 0;? +W m{b"Oxs!x=\ϟp!ю8ɭ5KJ( :*>/ŗyԤT&vJNif)qٸ#1L2 X pDep nč|F\ÙqeTU~ +9vp4Tˈ>LY8j>˛ IJsCS9"cckzJQd  pJx "03S.nfF}(3 V"@ MLL PL  9PX X@ ++ ,kkk@ @lk Vp @A 1H  b`xpK3Hr2w1^ C삟@YFF&v6f@ `1|3 _`xo`01` l 1|NNn!``Fÿ?@g 6_H p[~n%5Mv1 i..%}AP+0Qqb@J@3x"~+ 4  _d06gϟ`/ 3(00 'éo?!ާO^1!OA\\MNPb s}777fp*+W ^=`x8ĄYI*1<> Ҁae,6`l %2& C~,߿`QR gIENDB`PK C1o"nuvola/16x16/mimetypes/cdimage.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a@#~@Î;~Go?ϟ?˗/?@Lh0ß?g'v0\~AH1]G2x ?~dVr-@1A300|fMæX2<+}J70bػ944mR ,w~H3+39ŋo ` @,0Ey$8زX|}da -ɠ(pG3g1(+  3 ZR 00p13H33|d 9Ý[޾ N8 "~&p&&Wo|ypI5>F_;P >e`caeg`UA՚#'0,@1 _Cb X a!f08:0pq102`j*8XJ fffFFFf>>gN3g^1s <|l ߾bx  a! ,,@op252˹s[XXpb?/ /_d(AEAJ[={ 6> ҀaeDp0Å D-`' 1ׯ~@B`VIENDB`PK C1Fnnuvola/16x16/mimetypes/cdr.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<3IDATxb:a### [ZZ aǎ?߿ׯ_ |yyC@&0 ZR7?@q^^^z߿ ޿c)ǏXn_fGτE@KI -e@@p5|6^/WD^h[3E20 ` X=mO3`ޅgW3|Sh( { l  d;0Qb XY1@I`Ch_`FNNN(H&b9ww 4K ̹06H-031|@1rss'JIIYA=+gq~'KEIENDB`PK C1U6"nuvola/16x16/mimetypes/cdtrack.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a 0Œ Ȁ[ZZ aǎ?ׯ_ _|!bAl ӧ }g/ ֋y->>~ '3 ?Ν{o.n6$#Û'g'7;7 "e "ó[>/pA6ffvA!#"=f+ 'Ƌ@9~m nex R_m~Hg`g1?/+ÉK6t2}axax+l~￿ xp]&Mc8SOnW l, C(%S믁b0f`p @K84b$_!Ľ,,,L`j! ûofb``c` '''''(1˹s[XXp DFfFf0' _ _͝(%%T X00"1ׯ~@eIENDB`PK C1#nuvola/16x16/mimetypes/colorscm.pngUT x`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<"IDATxb:a### [ZZ aǎ?ׯ?_|!A &'Vl26@ &E싹 ~{2l;3?@ >}H%7_ OexqA*o ^b]AC_@@;`0 ,] }^z7(P5(X0LvC:7# s*oû϶ W10x200h]fp` Y & @Na l?9 ·bwA;/'ٗH'+v]g ߙgxI'` |bp'3J3<{p/=g^ 🁙 =D`a`cjxpV;0%]w\ahL, 2 b YΝ{x%dU~z`cp ~zj @)   ߾~7PJZVp/ 333# 0rrrMTWWoMXXY`hFZf4&b9ww 0"||p`3ϟ#77wTPг2z1ׯ~@^+FIENDB`PK C1#nuvola/16x16/mimetypes/colorset.pngUT `A}PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<"IDATxb:a### [ZZ aǎ?ׯ?_|!A &'Vl26@ &E싹 ~{2l;3?@ >}H%7_ OexqA*o ^b]AC_@@;`0 ,] }^z7(P5(X0LvC:7# s*oû϶ W10x200h]fp` Y & @Na l?9 ·bwA;/'ٗH'+v]g ߙgxI'` |bp'3J3<{p/=g^ 🁙 =D`a`cjxpV;0%]w\ahL, 2 b YΝ{x%dU~z`cp ~zj @)   ߾~7PJZVp/ 333# 0rrrMTWWoMXXY`hFZf4&b9ww 0"||p`3ϟ#77wTPг2z1ׯ~@^+FIENDB`PK C1~N11nuvola/16x16/mimetypes/core.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?߿,~ҥ8)@.?nEq@)D.K"1_~d-F7oT?f`fc`j~z?@ /(~ f`ᇴ ?!qĂ@,,, nb8z(ýwdXfВgQ0a`~v?0a`eee8uÍ7a9kÏoLs< @0ټeqqq~~~%%%AAA߿3ݹͻO ~ X`&l޾};Ǐ>}pugϞΞ;p ss3g`2@dׯvW111^ 7$B<9 ** P o߾edPSS bh  DP\\ |=BSSS( @p/|썬,2|AVVB^DbJ2 bK`4 XΝ;‚&`BIH|˗/3|@1mNJ%PCY$,I Y IENDB`PK C141QQnuvola/16x16/mimetypes/deb.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg`~i &ڿ>}+ om :/r$xnl B`\jhP8߀,@>8t#_o8q 3?gp1E~L@M ~{ |*< L n x@4п7O/?3 Ímw XYN @⎫ ofb, &  R ~c Ne`?`bj0gI~>Y1fVvA   66V`) SAZAL[AL( A`212$L_<" ,RPz Q%n+# #@ LObؿÎCn,ݗ?ueU<]Y5 h3/p8=?zg}0 y 0`*Wb40u72`yM8r͕;~ǰt3y ,x d sI3)b`qL>btCSlIENDB`PK C1*Ӵ#nuvola/16x16/mimetypes/document.pngUT ~`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<FIDATxb:ataXX Xtmmm?V&9A4 $5uXbZ K2 _&2,*ff9?@aA E62v#;ʂV59Q݈avAgXs+X~ _zfF>!.h$r0~b8|uaӠ V @,L@'uۯ؁?@\dbfWoR?96F Cgx 7E,@?FFl@4΃o __}fd"@(3s-";@?iL @:h(Ó$[0!?0Acdt'cdcb`ffFPXg b`zaf`` f[Ͽ1| &~fjp?)@A_ 4v_'?A^A#?$?8+0 & b{~`/F&FIfJk?3ï_@'ea` F@ݜ~31{ #@9{ow F3 Y0u3=wϿ;QJJ* (?c $,_IV(Le IENDB`PK C1&Ճnuvola/16x16/mimetypes/dvi.pngUT d`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a`ddc666|oii) ;voǏ~?Ç߾} V{4(0t(2wv=K$HffsX횿N9 0 S!qca U I[rf_x>rW@6  @,bK070 2Y X@ Ӏ6@NA`1X\bS s̯ R U @LN(, `! s0@4@8 @҈@Hy FXTbAlz  ̉T6$JT1 5pb@6 s U 17@z( Yqqqa߿dH='''P&b9ww dͰ``f_LRRRi@1VXBξ4` _e@^IENDB`PK C15B!nuvola/16x16/mimetypes/ebuild.pngUT X`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb:a### [ZZ aǎ?ׯ?_|!A =b$-IL>[o6$>^_@5cz=g߁\F_?2s22q2(0-H%7?ùo`dՕbb`?1 32 3 `'o1K2pr3|xp Kaˎ ~f`ff@L0|-Ѐ3W0;GF@7@3, CU w>cfdpV`%__>dx!P_0-!A\  Tk.0(+3 7{?2XZ1q1~ T G&`>¥ .^l f&@!?30~dbx ׾2\tCr$×@d P30cPaxx5wX8޾֋D\ _H@ n! ng30 2+'ɟ?& `J?x 30RYYYXrs2 I XΝ;‚PSIB3a7H-03]@1rss'JIIYC%+gq~'yekdIENDB`PK C1$ nuvola/16x16/mimetypes/empty.pngUT ^`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb:a### [ZZ aǎ?ׯ?_|!b*2D0 az8@1A5` o@ l  c -0` 0  =0dl bB. t|I@,B (dA鞘X@ bafffdaaa"*!4rrr1B&b9ww ߿3`K> Ҁ̇H Y^~ eDz='IENDB`PK C1>Q~~$nuvola/16x16/mimetypes/encrypted.pngUT P`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ϟ~O˗ @2ի >|`afWA. ~fO.\[NNN30RH=%Ąl ++í;#/>Aw3\Vk0 ~p ?=aPUdx  =ack@, @Ƿo oex zNv37wO35-ga@e` _ kfbPg, ߿~#DFf~1o b0Π(};-O` Ƣ L8߀A  X@&߿ Ey.]ʠ@7+ 3  D+3 @7ÛXi@2m``򍉁@`/8F&dϭq T!8qQLA/0@A fffF399u$\q p7ߟ`R`e s}7TPF5ɹ篟 _͝(%%THY=C2#ׯ~@ⵊWșIENDB`PK C1nor[$nuvola/16x16/mimetypes/exec_wine.pngUT J`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,**:g߿ Œ 0?#8#cǾRNa:Mw)4%U|߫C""Ϙ"b/Z~101|(7w ;?U ?c @] 4h1&F! 3 22dcad V r @4@a/3۹; />bxkIENDB`PK C1y2nuvola/16x16/mimetypes/file_locked-[Converted].pngUT l`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb:i? `Ȁ@FFFvC|ojj* ={v`q`3+ß"@߿ ߾eg0~{ X~enp+F_1b fO0J~cP@,F| 2 t133 aHݿ~ ,Ï_x @P _rJ c^[Ggș3"¼7#R+~e|PП??Μ=O.no__3ܼP? ] lb/t ߿~0eWf``/~1D2h* ï#\@,` 2/ 7e*yAhՀ6 b%'; JL \O l3 @@1fd􎁑OFY ɆNc[HM}Rl;(@z@I#0Çl L E?I7Di9ALr'S`4210Gʉ@:Ydx)˗> ҀjYX12Pa@Y^~ ˮb_IENDB`PK t91gg&nuvola/16x16/mimetypes/file_locked.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb#H4 4PEM6@,f_  _ =eAM uIf# >@,~W?B *  a 33? uba+’.fc`bdЀ?`oAbB< 6(+0H&ff'3<}VSge78<9] 2?k.]o#0<{pzn###W!w?cdx7b>A W200]$j`3p|g>E+@,xCQ Z ?1{AQ? W?a.ap! h 4mKݧ?10_`u.  701|9PR^]XBhe| 4+P8W @cX X`P? 8䤀?/ wd @,T $-eko? t* /0u@GLʙ3r3 f33B86oŋ@=Ţ@lr0/@1_0IENDB`PK C1::)nuvola/16x16/mimetypes/file_temporary.pngUT r`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:i? `Ȁ@FFFvC|ojj* ={v`q`3+ß"@߿ ߾eg0~{ X~enp+F_217Ȁ |AV f&Fb/ ? $7+N/ ZX 2K0K2 B\ R< , M < g1] @, tO^oa lL^gc8L?? 6@4O?VJ?4E c 23;!7/0@!1@LϰO0pLAK] D8XABA_aݑ J >c'oQiICcm>pcp2pex0b.~^fi1v_@@1|000)occ``bbLi͛7lѠiDw!@1! Xt)Ì3 `6 &;;; wa}6˗/`ll Vx%}1|Ɔ-b1@ w͠ɰrJO>ӦMcׯ_3\v r 0QQQ߿3}0 @L [@&Μ9۷o eee yyy >d0aǏ-[v>(@3!S <`3Cxx88&^x =ý{. +V| ) ;ׯ6VYzC2 ${8$|||`= 1bB1iF...p-d s}9&`1l  t _9QJJ* @=++Л 4zIENDB`PK |C1ys3KLL&nuvola/16x16/mimetypes/font_bitmap.pngUT <`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?/_,wL?>~dw@>߿ @jj @oxxyA. ~ ,N10 30033?UTXYbB6߯_ BB m7 mp8@/ ` X8fdm@ t& |abb/\S9;(]c=H?P@5@`A?O2O%77&fWh?ka^ `..v10Ξ\^´=#KqA9`<u@hݻ L@C/\AEm=(. &:;(/_f/'g<< @0{Op- ^ooo@ 33(W6H ^0ml&'3sP@i`L1@,̌,806NNJ?[  N:`rg s} qhG-R#'@_͝(%%ge@Ab@߿`Ie0IENDB`PK xC1{aa(nuvola/16x16/mimetypes/font_truetype.pngUT 4`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a@### A[ZZ aǎ?ׯ_ _|!41 02?T v [ndD$ܝ W@30333ܼyɓ`g 2|dvv''GA @b } waPRRba|7|T l+  s--- >p*õ | d83/oտ  w>r2b`xp[vAA X` pt`C(g?3;32ȋ0(gz 0,Aݻw ^` "ư__Ą %| &I ۿ}J /^߹𨱑×/_/^/FP`B X`w~?100ssp|<Cf&P#7T_`* Lbaff p>p\@L'3p8tr6&.?@ 3 ˗3m|.{{n8o`} gK54~ 1b·kXmc`:=!خ\ax-9 204 ɓ G2|Ņe*g+(0pPC@ `&{fd~8?o~fkgӾ>[0gg X@ w]3/ϼ ,W2|1 LBB ({ X@ .ߍޞ9UԔUP ko0ji1c"@ * @HK;9`5b@ׁ@ 333# 0rqsT c0 f&pLprr101˹s[XXp4Ml3ԯ _͝(%%ge>Ab@߿`ye\YIENDB`PK nC1Ÿ3nuvola/16x16/mimetypes/gf.pngUT  `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ?_|!$K C&WF~~C z.V~68U] d8@LP` F߿~0}󔁁Û ?213< H=%3}6GGv3;A9GVӓ{ bVdP7eP X,, ߽d~y  Wx>21 ``߿0/02[DeIN1~񞁅U[A-Çۧ%e؁^@1'×GDD޾ui2<}AJV׋ ^3+KXX>0p21of/ ,?> A? "@V&N%Og~1(2p02dd7+G10ed'6V ,_K'2 ?bcdq{~2(< 0@( EX b`daPfc'k88@, NH ~ʳ1jC_~1/V:PZ fff``aₛ =F`1sr5r XΝ;‚HE5 _͝(%%gSѳ8H Y^~ %]AIENDB`PK jC1ue)nuvola/16x16/mimetypes/gnome_app_info.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<aIDATxb:a### [ZZ aǎ??ϟ?/_/// Xd122_ ?4B^.&~U X0=|ȅ < " cx,,ÿ o11\@L0@^xе-(/073Ü=T/bܻ_'g.`W ?dʠ'᪠(C̟ R_,y G/~f8BA_;[11s3p/3 by1_P? 3.96 o2ب0)p20,8 ~] K`D1p038i23p2`4s2( 30.pe0Q`aPӟ 2ӏ  _a4/bJ Ѧ~p9'xˠAG ۗ,c`= /8C ';7v~f`𚉃 nBظ8^h_0&;7]^o _01 $~gb+'ҿ`C'n..(9S'X h@K89 XΝ;‚`S6`ls?H-031|@1rss'JIIYAY=+gq~' 4IENDB`PK gC1'dnuvola/16x16/mimetypes/html.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb:a### [ZZ aǎ???/__^^@ auu֞rZ3GHCx嫂Gcf@,P c`ef`xO_1218 ÷@or @ `e_W13+r30 |v\`A0 8N}`x\ >`p;Y{?b؀'o2l=AMC{+.0\v ec3`c@2bbxx.ÑC| bSf9ñ}20h1H 3< @ X+o nĠ K~n&@Wü@,! zfF Z o?301DE{1J0|_ RB\ .X @, S鄁 hH þ{xgoW2p3r/b^b(cgfpWpSO>db HA^| _ L$ <,  ?> 2^>VPA\ ʸ  fd RFNNN0f4&b9ww ߿380 _͝(%%J!Qѳ8H Y^~ J^TIENDB`PK dC188 nuvola/16x16/mimetypes/image.pngUT  `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ Ȁx---İcǎIӗ.]/// XA+ógOؙAna` ?_$0߿0 ϟ=cxß ߾;`G  `gedaE?r |~~2cȏ``af5 lVbiAW^f`އ >2]P/ , -(A/NwP̂&'.\8op @3;ȟȡ w0 Ab j1@#""vŧOo  ,,txJ fffFPdۈPd 031prr\@,Νnnn$A9a?d|2ϟ#77wTP?ȭhY Y^~ nsyJIENDB`PK `C1:iLX%nuvola/16x16/mimetypes/image_gimp.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ Ȁ011138p{KKK@1ر߿K  lÇ2(1@@篿@ABBADD߿ @ >~Ͱ_FO A^.?>0[r @\6@̌A_NVEå  ^bxÍS?L1Fs0033m3 `\f^O 2 &r lj o@ ߿2H0<.d|AwAÇ'Xc} ( +ఁj{K+2govܹ0nffw0ٵ _18?Š#;; ?H3+?33tuO`xN2RX`XHL@ '_`{7;̬ ?10ܿup/hby@o߾eu053gdó6\/ !)3 y~}tg_0| cؿc=+;X3,% 0`AD@@AXX( L899Af s}7779fPb!b>L?._ d@܉RRRi@9VXB0"1ׯ~@œc-IENDB`PK WC1%nuvola/16x16/mimetypes/info.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb:a### [ZZ aǎ??ϟ?/_/// XdJ0o߿2tF?e偨 X@4+#Ëw]p53L 0rfpaePbc-zKnHG_YAAU _f8v-CWCn0 n?~g ó?" q1edbRgb)лÕ_8.` 8w3ù y@. L cA +T^äQ wQD}`]g;%-BUy@,r9zgue| O>bЖ?m{3fdPz  ' ;×3 XjpG}dPQ`Ubxw.fVF^0Kc`@1 gB\ <  VB ?gx;÷? l 3\򀁕0ßX@,  7n<3Vi j  8c@ ^J mErɐ̬_Q&n )g? *@,Νnaao Ά<yy23ϟ#77wTP%+(ddFFŀ_߿? SSIENDB`PKSC1"d#nuvola/16x16/mimetypes/java_jar.pngUT `APQux -}Lwǟ땶CKRLnMJ Re0c.H ƌ,@dlQtXR +:@y :-Tl+׻x'o>y'wdn.@DuJ|AE psu|//N.^_ڼB>>6{eoЂ}幮˄ BY!6uڨy^C.<`Oۮѱ?Gr Rtsi&KG'$F-[YnP4 9b^x6߽ܻ^VI's0>Sx1a?E/Da BD0[ ';aO6[<umfջ޼jA&yFMAм4I_PTyn4 ;j:೔,Wug܂[kU-I8$ft#uKW$rj4]ԦjHZӮyvyUє9H\1Z5Zgکé,6;&"Rʗ]D}l\FrՕ'N9 aG{wįȭgrsӞEGD~ |??(2N^OS 3뗑ZBE}đqnv22)?%Α5),;)Juy(+:WJ2.5'#Wesr۔%fC[ߠ%ݤ5˘kpWV\?,dM1~I;gΜ^oU<:bȺg[Z MG:5q*Gg5$Wug=/PK NC1~ZZ(nuvola/16x16/mimetypes/karbon_karbon.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ?_|!b*2/- `6E`6Ճh 333yPǂ4` 4|-n;;Ëg/<o~^v>@M !ˠ$Ϡw!@4a΅ ^dPTU`xH0~0С ߿cPVVbY @L g?ya z >v L Q~ ?fx%$ NF @,faW g8zy/0 $-\ $,`nn͟?2x˗/p@Ldfebp b}ƛ ʢ ڬ`fjڵ b >1  &_}3:2:@1<?ï_D%0z//?  e``L$$$=z @,D7#(7÷_J 0@t ߿? Xؿ4;;; Ҁ̇ѳ8H Y^~ 6%IENDB`PK KC1{ c>>&nuvola/16x16/mimetypes/kchart_chrt.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a 耑 @䳱s08{KKK@1ر|tyyCd,V2mcd`fé/ '>2g0K@AHÊе@ 􏁉 N1pb/Ös_r1|fCA9Ie.^P($CcgoMs00< 0&1M{0<9{׻ @,L@NecˑÇovz3HbO 9qS@Ml 4b7W82lufx |`fa~3``e`gfh A "EH:"ZWk^W/09;Ï_|)MQ3j1Hh2 ҀXa Q g& gyO0~AIENDB`PK GC1]'nuvola/16x16/mimetypes/kformula_kfo.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb:a###**x---İcǎq@@/(K.?@,d?@LFVV2|~o_~;`57?aqF:ٓ __g`f`o>0|g zz D%~ 20033L֬^?Rr B"" nn f?_3zK^AA^Aaڴ rr Noh1b 331~hѓ>~ * pY&&4c vng 4 W MM g3J 37׮1~Ƞ . pbʊ;P''i ^d8qCJJ "W`ʁ,G`2P’kf4 iZ@0˹s[XXp-+P?Lat>^|_͝) VPĖ9H Y^~ DٍIENDB`PK CC1}$nuvola/16x16/mimetypes/kget_list.pngUT `A}PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ??ϟ?/_/// cðLu ]%T,/(mɰ[A2O@|t^0?  l'Ġ4 >Kn3/0TAAۏ  7~fش1*'8L 3 X ?00r2 31pf`d`g ~*dk@,`21pwg`8}_ Q>`A X~}aGsOn=e`p.CQS_G[S?I\ ~110 19 ~in%Na '.ab Vs@1 e S2\1|zAI?8?7P )VtK1) 3|bJl_q La7ٯ O2 4 X@0 ?333bL@y22p?@?kWA\O ߾4䢿(KAh)P=6? ߦ- || YX@)AW L |b ar@V [1se`cc LH3p[og@# X@ Lq8ΰ'; 23| +wf6w O>0   h73\= wdAW;O2{ J ο~c8g. @32;? ft2 333# 0'73Ï}@ JL ?߾e`abNNٌLrܹ_@nh`R 377.__͝(%%T%@tdćLׯ_}$-[&IENDB`PK @C1YF3}  $nuvola/16x16/mimetypes/kivio_flw.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿@!Y[ZZ aǎ?/_,ww e`f33o ؤr 3߯ <| 3 ?/3AXR}!14' @v)6/:_,j@]/#+ÏWy3Td`Vj7+Ѕ 9~3p~H,c 1p0Ĉc|6% h ~~[A@o@, Sǰ6ÃcB 9'1)3ef`' ef`feb_y332\4 X@1q-Ɠ70d_% t_ ?d+Ơ-)n?'U@L+< I 8R?N[ 1|f`bceL @o10𝕝᩠8C9D8<c`fv 3p1dbx30Yc'Ƞᯄ${>fN&??2_!.\\ ) L!/ /3п8/;''su22[ZZrA?A AjϿ;QJJ* ( X Hhܯb@߿`D!iPIENDB`PK C1o$nuvola/16x16/mimetypes/kmultiple.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<8IDATxb?ܹsZXXH >#+++cUU7:HJJ2| X@ %L&!cAAAA({ZXXӧO 6d3bX1L߿` _k>m@1 S ー?d`677_ ++;E X`N0`aA>|`b.**c>ӧ ' 7h+, @,N_~1K@?D@bȁ Ă]0b0@r 2bBmd62@7f@@ J ?~D;(@~@l0q+ǎ*bbb„L ͢X@ F&h{MM͚ݻw{r ,zA@.AQ`@`ppp* DDDKKK dr J @,ȁa (dЛ >b.q@JJJ@gJE   `Ԟ;+IENDB`PK C1H"nuvola/16x16/mimetypes/koffice.pngUT |`A}PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:i? `Ȁ@FFFvC|ojj* ={v`q`3+ß"@߿ ߾eg0~{ X~enp+F_e/o @>O0J}cP@,=te30]hB&f /ïl&׾~ (Ï_?buIu ^~+WoXYYE޾y >>~N^>. X@ ?af >x w2Er"$t=z v}tH &S@ ]]57?@?>ywӯXw`802p;0فq(A';~`Ph0A b߿ ߞ1~e* 7 ܜ | |`/b  XfE;;; Û7y=}+A>v]= #v6 `$@;w߿bff7@ \Lq'0/|˗/3|@1rss'JII t?XE+++PH#ā_߿? z1IENDB`PK C1`޾*nuvola/16x16/mimetypes/kpovmodeler_doc.pngUT t`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxb:a### [ZZ aǎ?ׯ?_|!1 +C\3@,5Z~t{/F`N @0 ǂ zբS-' .Ьp 8 j/X0kO2psq102~eSKaUHyyy~ϟ]r@00~saύ gGkk' ֟r€`@L /aVpO" edear3 r 7g8}7`1@Lc;_LNecabp+2? ׽a+ #4dY, 2sg !} " /2>󁁝b d0112r0`ɠ.c5!MACiN%]NYEX>|Zpc ~0183|rQAIAЕR?YF _c+ëw?N; XQЕo2{ Jc޿ Ĵ1 3<# IL CY1Ȋg9ȯ )h%@^baS` 8A A4 4 XΝ;‚ d "Pf&` Ҁ̇ѳ8H Y^~ ߋ IENDB`PK C1)nuvola/16x16/mimetypes/kpresenter_kpr.pngUT n`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ l`bbb`ccc|w@yvV& g`& #.U7>2h+3.'P%~g}`pۖ1h\c0bt)0|ݟ k_^f` +{ ֝ _<'AS 4 L ~e8 ///7%ÿ ܌ @G X~?+ b`?F!N.K#/203P@ ?20(3p~`s)aX4?0~f`'0~ 3 zWED>|b#7÷o ~``F#;g r [ė/ _a? O%2 Lπi_p4??U"LxΞy`4A_.b`f'h&[=Pٙe PJd&QV , ?u2|L r gcK`8a fffFVVVv.pk25i/-(1˹s[XXp\#  aHr!y|a| ϟ#77wTP琳.(+ @bׯ_}$Mt uƾIENDB`PK C1$)nuvola/16x16/mimetypes/krec_fileempty.pngUT h`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb:a### [ZZ aǎ?ׯ?_|!b*2D0 az8@1A5` o@ l  c -0` 0  =0dl bB. t|I@,B (dA鞘X@ bafffdaaa"*!4rrr1B&b9ww ߿3`K> Ҁ̇H Y^~ eDz='IENDB`PK C1%(nuvola/16x16/mimetypes/krec_fileplay.pngUT T`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<JIDATxb:a###fafd$x---İcǎq?/~7X?   L@Y6ʰa9m-5p]>^T?\3/ L@02<葳 J?{pkff _9{p7 *R R\ Y `aۑ /0s0|~AZ/ ,6 X 6?wo^~p{s*3}vݛ _`gx3/`x12[ @,0;{aɯ _X8e~ 3xĴLb``f ? 508T~0 1^0P__1h3 H:(zy&5R/Qlsrhr#I)X`Ng0ï?X^eVAAESADXݗ @ b X@! 2!7ښ!wnn/1L8pz,ûw=yhNҰ If`F/A^^ar8#UTd~ XY Џ@ ~ :j ?bPRVN66v0 LpLrܹ ,u daafPPcçO ?@܉RRRi@-+ _߿? -bsIENDB`PK C1 2I,,'nuvola/16x16/mimetypes/krec_filerec.pngUT ^`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ_ |yyC@&0 h?|_$y//O2򅁅STϟpo@T7o20/_2+(0p 1 X@͟_`xr%8 L@ju$إ0@pg=ܱI | l ߾12DX@ >߹@ss30āy ,t6oP8 z ?Syl@ M2O 敕2e^ _@!/ʊ1vh2\/$CB[b{dЉ\S=1(!.`4~wp`>ADYקOaxTPOQ}OW0|& --vvߟ? 9had~ kF!(@T.. (fci-b s} T K(B6aZ`fb/bNJʳ2zVF 1 fyO0<":0IENDB`PK C1W9p$nuvola/16x16/mimetypes/krita_kra.pngUT L`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:aH(1@LLL lllR18t v"z@HS$'3ˈ@}3#XjL>c?EOl]T89T88X?1 rʽoc2db%Í }d0WgePTf7 @. &&__3Y3ٻ0|yHN< 13<_ LPbb('~ ۾ax$C-O80|fXõ8Y300 ibæ3g8֓ N^c>*ÉG, e+ 8A Hs#-՞ +%IG$3 ( )3LsbOe R [22<}3l~pw `GC#~{1AHݍa%/718|gpf``?0SAL?  e#CC4É7qaV fXv ghLc7`X@  /,"^ypJ#g 20p2| ^&W0o_0LA*CH\A^a~|gbf[ b/^z=/?1|73A߀ABTAW_fX>}p_ ?@ /2<' eaSg7çO~ ?~Nv~ c2P?#8A.@,  4@3o&Xe ^肏 ހ 40b ]~1/_ b32 #0:Y$ꑜIwԴms9,jD P(q6@.zWV>`@,\\R$aw4k$d?230{Ƞa /r23?gu(fV=_2p cx ?00yS ë7 L@ ⟓b< ̌t\DY~e`afqf{\! @ @/(*->lasAD6g?o?ý\ ߧ19001|gE?@S()A݃cEW6302d``yçw =L',0@p4Ѝyy$nuvola/16x16/mimetypes/kugardata.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb:a### [ZZ aǎ?ׯ_ |yyC@&0@- L, ; az ?#+'?8t>ûP-/bX/. ec0m3Xz3ɻ1\RZ1`pX@~fx04%^d_11`$<R a) 5s10|I v l6Y @o| &XԀFJoY1;_ ^}d 8 Tq9@1R߿ɯ%5{ F 0P8E~}@ S@ '$al'2|~yG@A h98! ,:@J~~b`gPwm`0Xr~ yAA j3*++P_& ,p` XΝ;‚ 4N gB(ܹ06H-031|@1rss'JIIYRVF 1 fyO0IENDB`PK C1|Z Z$nuvola/16x16/mimetypes/kword_kwd.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<8IDATxb:a### [ZZ aǎ?_0_~/]_^^@ aba{HV"K#@p>d8Q!˂AUN>i_1l=a%" K2.  (p@W_V1 ^cf`| m= ?$>ˠ& t00C4b-' 40|+Pߟ@b ,, B | LΪ3_Aw o>0   L <<_ 06fF?, 7~202pgf`tʠ,09-ëOXY )`Fp F e%@@-##3?#/xp"%C0| L @,Νnaad ~Epeϟ? FnnD))4<+,c!ge,bׯ_}$\"{IENDB`PK ܌C1+!44nuvola/16x16/mimetypes/log.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ?_|!b*2D` 333 V ~F?߿ChAL@?@1!_@?ga 5U 7mbJ@1,;߫W >edwk@9: Pܿ`C޾ 6 ** 66 _OMbGԿ1|a`UWgys cc`b tw:z^b˗ ?at&5çg ? l 54]GVF?2a/# P#2䒭[30U[C_/(V߿8&_(%f@q- h&74 hL ~E$2% Дh:$,$JPlR(H fffF`rT$ NPhA999h!@;wo-0`  _͝(%%ge>Ab@߿`!+ZIENDB`PK ،C1wO5nuvola/16x16/mimetypes/make.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<)IDATxb:a###H󙘘8𽥥 v?Ͽϟ`˗ᴬ  vhITqnL|%JQ*fkAGT@,P`3?>=}=ׯ3|`61e0g747Ïw}nË] 3 B]h*/ QQ_/^0[I >~```ff@fx+ÿ_yhߓ^e`daax +?, IT b| c~ gCc2IK1H2A!-&pE0aaePg5a`d?`b Xtb ̚ ,\\ < lxto߿~8 X^daj % AL @ XΝ;‚B9y02> Ҁ@Y=Ā_߿? qX˖њAIENDB`PK ՌC1|ûnuvola/16x16/mimetypes/man.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb:a߿ l`bbb`ccc&^}.V>>> ?b~67 3ýG> 12| 2J >`aib޾e`k #Eefn$/`x4yp ?d  0~A]m^)3<36dzA{"/ 3G0q0l@1Bkm''Uk޸;1\2 0~AEAy4Y^V ;. ?b`q"?_1<~ {$n֟Y9~gv ܿ%1\|3 _+ Y{70<~lyưzY~b`z`` ѿ 2 ~1 6/a8 w>p#s'n0&03|1ˏ A \ 3OLgxk/+; ,8"uBb0bMH~SssU}k0h"(?~bafff%_...x8lE@1 @,Νnaaod k0!R L ?@܉RRRi@ѳ8H Y^~ xwjzIENDB`PK ҌC1hCC#nuvola/16x16/mimetypes/metafont.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a  L8𽥥 vӏO3@ӿ(/0K 3/^e' 7 o~s0J30t1|?00 2pp0|@'g ?2031P0pq0 6d (oo7Qs]"@&2331]/]@tCpp5>b3{60* @ e`g9?×8^bf[@@c X@+01̘>`Ho`u"" ޽@tx1(QB d`ea{ aJ~dd Oyl(4 fp56...xjÖalf99-&b4a·_RRRi@yVPDY$,_Ifc{mIENDB`PK C1$nuvola/16x16/mimetypes/mime.pngUT >`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb:a### [ZZ aǎ?ׯ?_|!b*2D0 az8@1A5` o@ l  c -0` 0  =0dl bB. t|I@,B (dA鞘X@ bafffdaaa"*!4rrr1B&b9ww ߿3`K> Ҁ̇H Y^~ eDz='IENDB`PK C15B&nuvola/16x16/mimetypes/mime_ebuild.pngUT $`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb:a### [ZZ aǎ?ׯ?_|!A =b$-IL>[o6$>^_@5cz=g߁\F_?2s22q2(0-H%7?ùo`dՕbb`?1 32 3 `'o1K2pr3|xp Kaˎ ~f`ff@L0|-Ѐ3W0;GF@7@3, CU w>cfdpV`%__>dx!P_0-!A\  Tk.0(+3 7{?2XZ1q1~ T G&`>¥ .^l f&@!?30~dbx ׾2\tCr$×@d P30cPaxx5wX8޾֋D\ _H@ n! ng30 2+'ɟ?& `J?x 30RYYYXrs2 I XΝ;‚PSIB3a7H-03]@1rss'JIIYC%+gq~'yekdIENDB`PKt91=䯔%nuvola/16x16/mimetypes/mime_empty.pngUT gUAPQux  sb``p  $?OR,鎾 Ov%K\#JJRSR0сM s&70=*f`b `@*/fThqa؅ :Sv1(4D$zh(ldcl``RMu ffZTXhWn%z4&u24o1ϿGkj~8T\o0t}wNN6WفB\@`@"-# Co ^``ʃAAAub{Y _d``ex;0D PAp X ƪr O`PV`{1ûѩ-  @,0~ L jj @0(3()ɂ  0aPre:4'kPfc`Fc s}) +$'˗/3|@1mNJʳ%tAb@߿` !bIENDB`PK ÌC1#nuvola/16x16/mimetypes/mime_lyx.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a?? ; Ll@A&OFNfF&fLL llwR@;w~+?y1w-ewN0R0``f`{Ȉ6 Og k.f!՜Fqex[}F  A)ST;..,,ϟ  "Pag fНIC˶2Qgx#$𷧇 F66 0feH|Š `7wFYn& ^b|# _l?~x _ 3fTUFO r{y10;;;///it @, grpp0,Pjyd 777 KA @Nr6L RfH @y sAa@2/-- O6/_J.`l]@,ΝnaaD @a =}%ϟ? F`$JII@i$߿`@սIENDB`PK t91ݲ $nuvola/16x16/mimetypes/mime_temp.pngUT gUA}PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<|IDATxb#LA 1 ȰpgӦM3|  s T? Fc`ed8q$P ߿fPD?dP bbfb @, Sb W@?& :`׀A bqЈl3B߿p$e\bq  Of "  &H #R?  8'"1^磤 /L0]%?<p ?̬\ \\ 8~ 7 X:9{L(FCq@&(C P.b @i~  IENDB`PK C1$#nuvola/16x16/mimetypes/misc_doc.pngUT 8`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb:a### [ZZ aǎ?ׯ?_|!b*2D0 az8@1A5` o@ l  c -0` 0  =0dl bB. t|I@,B (dA鞘X@ bafffdaaa"*!4rrr1B&b9ww ߿3`K> Ҁ̇H Y^~ eDz='IENDB`PK t91Fkk&nuvola/16x16/mimetypes/mozilla_doc.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb#Ǡٌ /~6m4cb177011a@c/!cd8y$B# >@,110]_SQ֊p9&&&Z  lj5a`c` ?Ԁ,l o1pAօIXC' bg70۰)+A32  ??mgs᧬ ;Y"cJK30<`3I[e7 Xt7 w3 Pm_X$2< J``tc_D</ /O}e×/W^b``obG 0?:%g&Y ,%1 , ,'0zyK,s, 7v2Дajo_f KM e`qp@ t~j23] -I20W( @IA SIH'Զ \ e \\\ ~@,]]]Ϝ9c t`s͛_  (KD@| w6QIENDB`PK C1AA'nuvola/16x16/mimetypes/netscape_doc.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ?_|!b*2To XYYlVr1@@5۷o ` W½Rr @1!:7.NNNk׮e{.e CAj0,p@fIII###ŋ3L6AHHAVVALL E# `.C_^nn!aa pB5@1 `00|AMCaƍ odced`z?   ߽{nh݆#n|+Ǡ )nb`̧ X`O`زk0Շwx &[  F6 LH^ @w_N`Tm޷ x130282y0 2| ^b(@q`3.2 j@o ,@ h~^k#Sr5 `1B&`sp@āA Șܹs-,,8`9M 9f&ϟ? FnnD))4<+(ge,bׯ_}$vĩȁIENDB`PK C1+#nuvola/16x16/mimetypes/ooo_calc.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{~ǰ, 00},0\ig?+  ۓ m |bb@E ^0^b(APo/1s3 ]@,C x> {fYxؿ g@ ){ l@.#_> ̠. IZ2$d`?*%/.\ L~|`xv_՛A֌p8~PePƠyCa] e/v tdT0@  Xqd-W _}c`cfcbb;) XΝ;‚@(A2^}xFXne&`n@܉ D 2Y^~&{{`IENDB`PK C1ˍc'''nuvola/16x16/mimetypes/ooo_calc_tpl.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{`ز 2| %🝑 b v* ɷ؏PV+| L," ?Ugk­s108/Y|C5# 5 n`#& ?2g%)vbabeed?_>2pp1Sgo _b`A#жo~2| s-CB8~1 ]&y XT1 & p?~ ӀɋHBS$(!,$cbddyoN0PyhIENDB`PK t91 DE#nuvola/16x16/mimetypes/ooo_draw.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb(¿f?߿cddŋM6@, .\`+!Ï?N>g/NNN'OJ59b bex%Í7DDDxxxܹ0ydǏ^^^0u @.-_XPxDm UPUD x߿`'+**220߾{pU߿~00󛁅h `|ABRAJF_ ?`x 8 ,d#  X?Knae`fy;37l ?f`p{ʌ0 @΁L &ombo gPA /c/ vnOO0ݛk$)~Q&N6 \.L !  @&2|ns| rL1waK/X5!"@1e ~o޼% r(K@| kp_QIENDB`PK C1!66'nuvola/16x16/mimetypes/ooo_draw_tpl.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{bXn 4CAA ~# $&& D r01031/ÿ@ X@| Ga`d`? _23_EO X~cegt˽ /?gx /A_ 13<aA0lH6v_?`{_6 d``f`#A'YY@ւ?`,b;ez4? i O~b8O`8 $P  @^g/NNN'OJ59b bex%Í7DDDxxxܹ0ydǏ^^^0u @.-_XPxDm UPUD x߿`'+((26ի b,ca?b(í{}$ʠ п odDl@B c^3#6`,02|T C2i 210pp201;'/_^vTY! FffbbXb B t>f ؠoR^ @0 A45l ,@@]t,ÿ^>Lm }L_XYA ?2 ÕΜ`n ''4 0172?/1 3  N<Ĩq &, _3!٠ˑ y/^*@@% @lr0/c `J>WcIENDB`PK C1 r*nuvola/16x16/mimetypes/ooo_impress_tpl.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{20}F~^s0p 3Û I< t30M, Y~9OL?@WS\f`X02Hcx-P1×ϟ~dP4pm׾1g`cgdab`gÕ/9A1AA XfgPSa*󗁁h03  ~12 31P @ Xzcdx? PO3Y44Tx._y NZ:'ßol ??32q0H+0:|A\+;?)o o?3cpT;3?n\zp"_@wq3<|?3W3|p3û,  }a LΟbZ,̠X`` `J #ʐ(!pwAlo TDD8A>~ $8\$t#W1j 3|Pg'73IbPSS`8w 002 0|:f6V wg AL/0ËW.^_͝Li@Y@"aef?<ϟ 4LM0ׯ3$eIENDB`PK C1~k%nuvola/16x16/mimetypes/ooo_writer.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{| (`56,10̩)g'c zTorJ``Eg3#R2~rܹ,A /030 FnnD`Ni __Y`@`~s.-IENDB`PK C14 )nuvola/16x16/mimetypes/ooo_writer_tpl.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<EIDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{5L4Հ]-7? L4-CC9~C R d@y.W~#7Wb0-P=׏}$u7TIENDB`PK C1lMã nuvola/16x16/mimetypes/patch.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxb:a### [ZZ aǎ?/_,~p8)!4Xi]jc- @Ǩ#ΜݓDUݏ_@532|w֭ ?\a/X#/3P=0 r @ i|,çF@[]]؁cYR-=A$0?b/>WW3A`l2H͜𵥅50F] @L0ر 99 @o۶1}q/׮131|\$:@@`L ?6ďy?fA} f`fu"ϟ@z?b`ܜ0L<\F{B  (0;91rp0=tӓٙᕠ א*~c bBv== ~ $f _/{뭥%?#0a@,0 11 ^};ÿWϗw>Z[3HDE17P-,0Wo7o2~/''"0ch0( @ 33300pqsCLb` 5i% Č@s a`d s}qXS' s _͝(%%J̠̇ѳ88o02~'-u33IENDB`PK C1&YYYnuvola/16x16/mimetypes/pdf.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a#`󙘘8𽥥 v?. ٿ~O˗ @2ϟ? & $v?2``d'///X=H-@@5f``|yJ/010 y?@a5삿30&!Q~"\U@LqP $e20s09f@Y ?/_e`4P3H/H̵c Lb~_L] _ @L0'ct..0xKψֵ 8q2Pv33Ɵa/%=W6NXr: -22c XNE ; g`޽ ٌ o\ecdx C2 00- @?d`\5/ \g6APP0Ȍᣁ%÷ĥNo ?]bCk.`j#?X!? 脥Dba$Woq?0&]DB@1222˹翛[Zr ̏!i031|@1rss'JIIYA%+Ab@߿`+KIENDB`PK C1@@%nuvola/16x16/mimetypes/postscript.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ_ _|!b @L+~Ŀ`1FF&ff&0yxxAj (7 ߿}g d|7 dXX@^df~d+% 6@ ϟ^~ 0f`b/Ï_;0߿`޿3O0q3qpmo1<?AR\AAQcc}ATZAMk֮bgAV6/| /_>c@p>o 1:s ZWX' oaI1\ DV-`8q {Cc~+k 233|y& tw ?_Ul\mx~| _2{?;;7X=,l2ϟ || rR ~eq.73c  X`N)f3ógO,@y p fffFp11v`q 1D40H-@;w( X+f&`}@܉RRRi -+gq~'bIENDB`PK C1G-Mi$nuvola/16x16/mimetypes/quicktime.pngUT `A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxb:a### [ZZ aǎ?ׯ?_|!b*2$e/# aX X=l{_n??NV%1fuY #\7@A.  ~ð;8؀3w >f , @C ` &X03cv=< ,ܬ 2<AȀW 0 !~6 7d%(Ű[Io O>WHA"s1` %߿o rb ED0c |W`$-abyׯcfbx#Ëg؁|?1I \DbEǿ~b:# A?3 , ߾jd` H@03330pqqAI@@ٹX؁/`db`Fc s}7,M@\I02@+ Ҁ̇ѳ8H Y^~ ZRuIENDB`PK C1|?!nuvola/16x16/mimetypes/readme.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<OIDATxb:a### [ZZ aǎ??ϟ?/_/// s0QSCWOZіĎ8,$fY1ޢ*)D* T?fcedx;É}da? |\Ԥ>}x b|gEG>3<Ǡ +l%`&C㊿ ;|d?  19/(_6.6F9!1\l Lb 0\ /؀Kw0<+å '00pÙ ޹ajf @,Nx/Çl ߞ30 K7]g`×??~2(à w10PG//YY@bh+30yp_OD9 e@A!W ` @L S@)(0cq&Ó?؁A LZ@^f`xx!_Z4 @,3|!W C³ 71&Oo?13DEmfd? n2 &x_>)5MqI%@`j 6 XY闋 ,^!a[{aFPZ70i L@ @,Νnaaw Sa ?(S,[T L ?@܉RRRiE RVF 1 fyO0l^BiIENDB`PK C1+)nuvola/16x16/mimetypes/real.pngUT |`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxb:a### [ZZ aǎ?ׯ?_|!A :j!C(TP33KtOQ;$ۯ/XllL b8s+Ó@ 9X>y Ñ V %% +(uwu1qcHsYf@1 |fvgʠ)A% j/n3bfx7;+a塏 .V v]iVF Y'o2K303031|@1rss'JIIYâ)+gq~'zв}IENDB`PK C1+)#nuvola/16x16/mimetypes/real_doc.pngUT v`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxb:a### [ZZ aǎ?ׯ?_|!A :j!C(TP33KtOQ;$ۯ/XllL b8s+Ó@ 9X>y Ñ V %% +(uwu1qcHsYf@1 |fvgʠ)A% j/n3bfx7;+a塏 .V v]iVF Y'o2K303031|@1rss'JIIYâ)+gq~'zв}IENDB`PK C1jؚ#nuvola/16x16/mimetypes/recycled.pngUT n`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<,IDATxb:a### [ZZ aǎ???/__^^@@E &3##3 1H@0 X)VV1}z͗7 |, f  }ay >K?Ԁ1<5'QMW3̛X`W@@0 ,p/rAKA· /01Xx0*}gx5Ѕ88~b@1pr3Ho q1 \, _?|cx×_x8 p"/F7 bf`pEu2tE/Е)29g-@, ?BÝf B," >Zb 6B ?b.Ã?"d`z5ï^ X@2 3102gp&Y8Q>0щ?#*^fPˠ!$pz2ï < `@,0^b; z61|{A$;*×_~NP @, R? / Z &: ߾d`gcf"33 fffF..D♑7;8af"vFZNNNLrܹ; ރ c3ϟ#77wTP(=+gq~'%BkwIENDB`PK C1:D#nuvola/16x16/mimetypes/resource.pngUT b`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxb:a### [ZZ aǎ???/__^^@ `h%@|bg' C@|0 ׯ w+ t*P67Ç xyy@, Ǐ ߾})3@WǷ`qׯ.000 X@~bff|y߿ ! }VV+Ab ^9 d_'ϛàaf (. $pqaa@, d())]- 9|@ , #zX<>}..N_|a3( _G1@ ݻw ?b/`X|ϟ r6,A X@Nab#y8fy&,dx)@pɁS:aNݻ P# 8S z* a XΝ;‚LX:G7 @ %JIIYг2z1 0E~}$DIENDB`PK C1&ccnuvola/16x16/mimetypes/rpm.pngUT h`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg` \" _30+3;PPZ/.00|{##_v>.bq%Y 30|*~qA9G ^30p@,Z( t+hĶo. f g÷/~wN6b4 ! | 3|g o|axv-?f;IFVVb_f>f%~3g8 ÇGo~``ג<7υ?S!LQ@4,| }a`fbbPa 2 rr Oc@(,@ہ@X,2xeye9Vq1#@1K`#*"+ ,>a`cgb`d 3(f\_4-h{P?,d2z&oׯ_$52S@IENDB`PK yC1ss"nuvola/16x16/mimetypes/soffice.pngUT V`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ x---İcǎϟ?ϟ`˗/?@,@޾+/3Ղ1H 0 t^?}˰ka2<{+H!7@\@L0Gw0<}g 7gx3#P1iFfPx0 ?aPePQ`bã|O1&&  L2{𛑟Ʋ WgeQ>1a5+?36{b< W|gӏ L0x dz:}w?|~Ơt7s02~o >}b3X=A 3*3p˳0,a l ly7?bgPVab8C޽ P R@L AACa֮ ?>c8CF_1p@LBq? r : M n04Xy ` f!aPRfa8,Ca)ÿO}bFt' '31k3y|'  1 eb \\ ^fx?#?{?n0bzp]K^S~n!@pIg1D1p1pp R` J bG_ax/p,oCX`\  X`QO;×0| >33pQf f ~G!@!$ bx * ×888999јܹs-,,8h_.`@3(703/bNJʳ2@߿`yIENDB`PK rC1~!nuvola/16x16/mimetypes/source.pngUT H`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<cIDATxb:i߿ c`dddd6118p{KKK@1ڵǟ?~_c@,vhÿ/_2;wAEY_ o޾e$;;߿.4 X@ I5uMn@A66VS~20  A ߿>bx4s+32dzg lfl _1<󄁙ADL??>@ۀ /_~C\@@}ye)AI _}agz/ ۀ]2 3 /@CRTAo >@l`{ zn 0 ~}cx- 8 3+_~mc BOA XMd7 1px?wbzPv  ~`xMÃgdx8~0''8 C X@;0;GFn  >a`cfb`~?0V||` @,!#g7E }e w@  AKX@CANh*0Y8Xy30*6Ff&b9}ws @1@Ph&$> Ҁ@Ya~Eb`IлUaIENDB`PK nC1#==#nuvola/16x16/mimetypes/source_c.pngUT @`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ (gbbb`cccP#XHy $@, H#Ho`M _*fhVV߿ sss]4 6˗ ?c@rA b XT @? t3`'f6z7Ï\\И_ qIENDB`PK eC1 11%nuvola/16x16/mimetypes/source_cpp.pngUT .`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  MhywFp rFFx4hP )qi@g. @,eee;bgt:Ý;DE~ 4 22$@,070(01=zNl/_c A~₻ݻO : >;;tGEE9`f s}9 Z5p7eb@/ 0lzF;QJJ* ?$# %ffH b X^~ NlIENDB`PK iC1&Eu%nuvola/16x16/mimetypes/source_css.pngUT 6`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb:a### [ZZ aǎ?/?|yyC(c@bd_S!\d\ Z$.rCsP"//D?~> ؐPз @,`_~ `i"a3@ 102̼ ^fxrh?o}'@y D=/Á};$EDDn~ +w>0213s^b0dY1̘1 Nj Wa Cn'Pi`%t8L@ 4O L1| L <\ o\gS``ba|N002mad֏Oon2ANZAZAK O eOxfx3'#40?? Qr~l L ggAɝ6`B @~ğϿ=2c!0ng`| @C1 6 ;%p-fv0 = V J@2b`bN @,`Sc=/S ,@ d??߿x(@,t qN6^En '''''(1˹s[XXp/Y д s̿6?.__͝(%%gSѳ8H Y^~ ×IENDB`PK KC1||O&&#nuvola/16x16/mimetypes/source_f.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTiAjaa Dh9HK$"%ngS@![riqԫ܋@,58A~7N`@ A`P2môc~|a @,0E 烜y ?df"@,@IFPpqqAS}g!Å@2˹s[XXp (;3Ûo.^Ͽ;QJJ* ?$#de! ~ ׯ~@O3T7IENDB`PK HC1 B#nuvola/16x16/mimetypes/source_h.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  Mhy& M lɃԃ @,58A~7ȱ`CY05@,i X2 0vh@ACɓ >|a6}ax#''(^Cbp 3}g> !% ""àaD _]=1ûOn#C1:@ϟ zzMvꟿpex tȂwv@8EXgϞ1,hĄF&Fto`@0~8P ,X(üh$]0 Op Z[[] KNEWdee|VV~ax98L X1@>:YZZC[@,ΝnaaPTGߠffk@7@ _=QJJ* h?XFegbׯ_}$Fɕ!IENDB`PK t91M\#nuvola/16x16/mimetypes/source_l.pngUT gUAPQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<uIDATxb+?32[xiӦ>1ß?XX`a  999N<) TbO__~ ,/A@~ LLL@2AH(ck_a  ÇO`A~/0 fgg2 _|l77;X@7(d஀b֏@ >>.p22B (@p ~h 3idg&` & @ cPhP ^ ߾k8`[} @q <`C333<@q60iyIV &?JbЂ 2?0t0f@1Anf))yF6g0le񥇁MP + L[:~@,.d}eN7~2~ta0#W.78"}f* [ 0E ARG2lex4A'뻋 1yf`b`@5 1<c`2_/]?a3ިrOc XWPAᙓ; /na#pö~~xS]\ '7+߇w@L>1(x81:00gx]`|A S> |a 8|A 2 *L* +Oe4/3Cg Ç/ 0`0O R ܭ wx>|V W 333# 0( /!a~[Qs~0 Alf4&b9ww *H`3ϟ#77wT(=2zVF 1 fyO0L)xIENDB`PK 8C1~#nuvola/16x16/mimetypes/source_o.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTiy p d(@ l@@_xt X Nk6pHo`CYYX L@◕T-,,Ѐ40pw8@,0E g Np+#]@,@3 hϟjexcPQ&ܹs-,,8~ vrA>} - JX~d33u &#77wTP-HF@ W FpxbyO01oEIENDB`PK ;C1e"&&#nuvola/16x16/mimetypes/source_p.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTiAjaa"(p@6 ? id= @`C a` S  ?~ 4(ߟ?A X` v*(XXءq* +×w.\{5C+!J`Sr>all`~셟߾0v@...hc#÷o & oȠkp``` s}76(tϯp3H00p 0zŋ( ҀYC2JV0_p찼~'Pb$IENDB`PK 'C1Dv%nuvola/16x16/mimetypes/source_php.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb:a### [ZZ aǎ?/ tyyC(@EQ_n=PBG)0z!03B@,P@ @3~  +r0p120g`cg 2g/ö 4y{| 'Ġn񋁙? @x?; 19ѝS ?~=&3#vGw_1(]`3v @l}̠p+é]nnAZJ o~b`~Af`?h}t]c3 !.^6J B| ?002()0z+mbb'+/ Х< 10d`7We Wj /`c701 0AiA?* B Q 2R _?~e?;÷bb$0?C Á l xYXgm]N.`|? >fw_ dFY ? E1H s 0A4@L ~2mUaaЗ6`fe`_S$0@ b`F`x1 ~NyL` hLrܹ& b{ WHvc˗/3|@1rss'JIIRHde,bׯ_}$R fIENDB`PK %C1p@PP$nuvola/16x16/mimetypes/source_pl.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTiy p d(@ l8b,,T ` 3 X Nk6z Y~cb`g T }_VVfSA7ж5cdW!t@L0rOgacV@,@3 0D{YL2KdXtFS6n6zܹs-,,8~ 61;#? /_g0| 3O _͝(%%靁 ? ٙ LD ,O_I8.TIENDB`PK "C1(iaa$nuvola/16x16/mimetypes/source_py.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  Mhy& M.b(05 X Nk6pHocX7?n&X4@,eee;`,,l `xk6 vAVf8 0x `2 lfOKy)v>fn3X 10Let%3#(z?1芨0ɺ2 j0y}_{=Q ON30122˹s[XXp pï "D~p2}z+ãO.^Ͽ;QJJ* ?$#r, L P|i`3\9rϿ;QJJ* (P2U H?,,_I%4HIENDB`PK C144#nuvola/16x16/mimetypes/source_y.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  Mhy& M @[_@o@@lϟ ǂ egg7׀aA _VVfSA (- !Ca',< %<1 *`C@ X@ ^`8RmQߚ 52,c}_g2̴v@ 4j \ \ \ 3q10/,Цk1y+?00[2>`>=0 ]Ġeeb+ v! _8E03]L\Y,\ _~ 10Ve0c+ ?_ԅw1L87*,~`bACZ, @,̌,,, rPe04dãOpe lvvvPd s}78sĚ R 2"RL _|cx0S0\rϿ;QJJ* AA)B Y_߿? `Qv u'IENDB`PK C1snuvola/16x16/mimetypes/tar.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg` \" _30+3;PPZ/.00|{#P&~l 3 \@@Oc``d*| 9K10z  | ?@@x }=@M@63:hD# ̬@}&b7< @C??B B ÿ ?P\lP0P@] 5Gd 0^ `5oqBl@/0Ubacc+/PdĿp +V6 RFF&bdGTDW lf?@4Hs.; bqmb4吾G+&Т_2>7^1{a c @押 0+ 1ExJYyyaʝw?cXT< @ J \pdbPX2$Ey֊slcX 0&ݞxIENDB`PK C1_dpHH*nuvola/16x16/mimetypes/template_source.pngUT `A}PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:i? `Ȁ@FFFvC|ojj* ={v`q`3+ß"@߿ ߾eg0~{ X~enpK&_ePlȟ?d%1``fbd @ O#~=9&&-@?0߿`>?egǯ߿ , l, L@D@"7 s2=t?ba;ãG/yXXNfgga89 Wg(/0@< ,@p a l`߾}GGX. "b>m`v KA0H X@.;Ǐ_yaO>>.  @߿?`0{@ a7w~ c;H  i٠gF_,i%дs>fff? 7 {f yb0H XA~Gӟ?ؠ^`;FP*&b9{w sM Sa6?aw/_ Ͽ;QJJ* ?,r)Q13~'FuIENDB`PK C1ki\\nuvola/16x16/mimetypes/tex.pngUT J`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### [ZZ aǎ?ׯ?_|!b) &0a&yyxϟ150м30?@6 ?~10p*? ܵ 'nb\' &\@2m? @a6 @^ГedPefx__&la`8qlU0p031`A_G8 Ƈ ,,@I )F71H f`&my 1 q ?~2| 4(o?120>7CwC2񗁅 F#331p10\A/0Xh10H 0D7;_ W00sX! 2Ġ(A\@fe $]\@, A.A31,q?bO}?ذ)e J n?$N4rrr1B&b9ww ߿%a0@'AjϿ;QJJ* (HY=Ā_߿? )oIENDB`PK C1ffnuvola/16x16/mimetypes/tgz.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9{) L򗙛K(%_xz~S3df?@ *z# PsOOc`P,@f 0>  ,p <@aa|@ @Y#p{>2dcx7Ë5f` ,M<' n͠" OACF ?п@ 3 |be~-YùMN̽ "' l&6b@'35x޿p+3 dƠd'Б; @mh ߿ r 6V O.>fp,a2QbPvë@̒290J103aagPu1dj dqmb4吾G+&+/^c&_>xpjE{/ֳϾa*@1+2k`*Wb40u72`y8z͕;~ǰt3y ,x d sI3)b``H΍IENDB`PK ؋C1snuvola/16x16/mimetypes/txt.pngUT (`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<pIDATxb:a$#;`Y΍a҉1%Jx508%DlpT s4Q]d雧?Xt bI(?q1^@, #Y!X7 f/#3#_ZK 7d[b?v`] 9b% 6d  6?P / c`ffb` ] v`q@ ?@pr_v.@p`Wʆ@破 d%$ Ҁ̇H Y^~ eDz='IENDB`PK sC17$nuvola/16x16/mimetypes/vcalendar.pngUT j`A~PQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<)IDATxb:a FF0 *gcccy㧯 *j ~beX@@3|@xX$xK0yՋg @C~Ar @0= |y&QC߬ O1<)$$K |k/b ƿ 9N?d=aa!^s'^x ## v1b˛ j /o2=FD1KI1xA\\ X & '>7aV_f :aII߾1|aa3I ϟf.,P־>Nf>@o { 8<<< \ <``I~ؘᏴ4s ߿3-y 02 X 1DVVĉ * B@g`p+=ޕ+ oZFhR  25%0| = +++  _@pɰb wl(~v fffF\\\`uuu|ps,@o0˹s[XXp2]o߾6"@\ L ?@@[Ҁ@IHB,ŀ_߿? _.9IENDB`PK cC1Ld1xx nuvola/16x16/mimetypes/vcard.pngUT J`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb:a### [ZZ aǎ?ׯ_ |yyC flrп6HBC r@8@*}&ffQL@C~ 0ͪ ! F۷?0ܸAL@Ma6@MLp?|Ǐ7 \\@c ߿eb``(劉  2ۯ@6"Й?0||tG c1aw |@ۿ3f /`(3|OOop=??~3|`Ȕ@16S#1|_ ~?+O07v!"~O72} Šp637q 8؁Fvx؀9s) 13ac|_}7aW VV @, ڊ3|45Ege!ϟ 2@$yl@󗁏Yl_pjI(0x++(,]@,@0Mgf%FhEЈ c&" e4&b9ww ߿da~D0H-03/bNJʳ-+gq~'Y$jIENDB`PK C1Vkk$nuvola/16x16/mimetypes/vectorgfx.pngUT `APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:aA Ȁ[ZZ aǎ?c~_~'X? TfmreV>>%{{?~`bbK9^ii13AX=i Ϗg}4 ïӧ00 1  `@}m2'O2&T$ tQ3Hx{3/ @~_ dAA @/4@1|*䷵e`WWg*&}; P\`L@ll \F ..>1z`5s1\ ¯͘ #+u g,0]-ׇA  E߿ ~ 450 YZ2up``d`  dO}}0ll ߁ 궕WWna ,DiF fJ03ܾvA=rr UU0002_k.`4D\Ey ߁y wA`Z`j dsrr2@;wo`L%kP43|?> ҀXFH6gyO0-|>IENDB`PK PC1 } nuvola/16x16/mimetypes/video.pngUT (`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a### gbbb`ggg1{ABB, g s8"r@ӽL wg-'"03T9q>n^~'[n|pQϟ?201())2bѣo t"/ׯ_455dga`cc/N$;; //7ëW/~; ' **@o :IIq++K##3߿M''А@AQ Ыr`a@0bPSQ q P ?3?d'wH!ȹ_|'d22Ht@]AL%H1H_DPނdP T##߾}{>b ,11a`:x?%[ --N#@ `t0LųTa%Lrܹ 1///˗)/bNJee> 1 f&߿` IENDB`PK MC1½%nuvola/16x16/mimetypes/widget_doc.pngUT "`APQux PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb:a### [ZZ aǎ?ׯ?_|!b*2D0 az8@@3mab?@ `ff7LrX0L̅1óg4H?H,tD!+++ٿfn@ 3Ѐ |` FXѣG򼼼`@ ]&o :@I`?b ׯ_AL@3...Ɍ`4 ߿}c{ ??v x _ R ?~dx X#(@P3   ,,, &qfĠyd L09 @@y>  `A|f8@ 7Ǐk ed + (d22|(hf?@ }LL  P\@0߿~dd1P=,. !^aXX fp,p3aag߇/~ca/o ;k0@L S$$896eb`wÑ7>PfX,$0t6+} &>_!X"@Gbdc{ Ë_^ , o ?|?J: `0*))1|'1 2H3|f~&fA (@1LLrܹ?~$N z7CRr%P@IJjbe@ v:,{1ׯ~@BpWIENDB`PK tQB nuvola/22x22/UT R QFSux PK%vQB|·'<nuvola/22x22/.DS_StoreUT  QR Qux _lE_'wv@Z<-'Wk){ ]6{-T+!D >FH Qb />4ĘT jF41qvwZ֘|.tJZ-@E`Bqy>svoΜ.D"H$S ̘fH$w} M E9 ]Äƅ&"*BиФ!_Ţb(v(Ȅƅ&W%[ w>Tȃw+K$_ OWa%ґ1 d +m Mϩ޹:%I-z%)ΉV2yb+WW ju5W4 %P*,[U|򩡧F,ӛC{c})7eGzhon޾{OH'g-az*ly*ny'W|T4[f`e)6jڲqcemߏb%[߮ʍ>_fVNỦ/z`Cf3g12iXp^djfe șzkAgbM8 Wer3uWSaVxҚ ڼ{Lu+N/G>gFjXfm$ ;L5L '5fϓmq7m~xKepp6oؖԣð>tdX*11f5j- ; $7VA4Cp^ sp>O\*8 "\Kp).،[1m؎y4ƒxQ<'$7-<=?~;ÿ(DӨ*EZ5H[(M9HdQ? 3,=G8t 87wqPb܋_k|-jy'gI;f]ad iʦ2㦞1/|u1Ɂ3_xM pFm x`dd``ߐ/^F ,@XO_b  \,n&Ll ?{ɳE Z @ ao÷ ~32| f@ -9~7ew@ gfgcH0a4b,+fuurP`'W~3||䣥0yo?=x_ @%eBt230YU1d/p _c=7׀8f@! xٽ\zbv ' , K~۩%OPS4o?1;А0`P1~`][0h5``04Wa`RRc t_ c?&e` h ;l= 0AG :j * o1|o_̼’AA\ AY,  Ǐpte @HngE`F`aۛ3]- ?GKJ'dP@t-7 < &-JK`d&??#+4@!\*dٺ6O+ yX Y90eAZ/},yفAx 8  U2 0|䋚DbU @4+f 0I +IENDB`PK ClN1Y#nuvola/22x22/actions/1leftarrow.pngUT .dnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<aIDATxb?-@11 ,$Gab o- c7/ߌwD6 q1_{ؙ&68Ě03`CW@{zZbNKg21e```fP @,Do ?u!:%V Y8 32 fDW@ fdcs#7Ci 6åL 00p0f8s-]@TdԤV_d`?0\x8Rѵv^wki\ 000 '^f@Oэ l 0|!;˒_a9FW81vئ3p22#F3\VQ)˷gc([p0WG2| 'Wа8j0@a?N= 10|(h8L f:fg1<M /ncR#= W# [y9q? " ߱3  i002{)3,`/a=  @321ebfYXaF#Ct ӏ~m#p4s/?p-åw E -E,|\ !d0@a1=go3\+U-f70hY2|w7|䶍C;pS{@OaZ:Om 2 3R`[S,*"/ *CS&o N3 @, J\ | J o10030s7/^+l@aduШg?w~0221|FS|uxy^1@ B)$Åg, R4/~en @{ Só 30 20gxËȺ)  mQבa8 0UH10ex/0f}U@aa/ ,Ù _00Ȋdx'ï?7XY"c4UG{VFcE1|?3,f`aJYC(,bbyW~%yBi03 o!5>@CRlffa?ۏo| 4t3.0Z#<Y`"EIENDB`PK 2lN1@!nuvola/22x22/actions/1uparrow.pngUT dnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @,0,ܪ~Ր DϦibk-Lϗdy{S(BO?Vp8igp2z0p00@] ccМAQM^@ ? P@]@5քH}UW1}+vZX8|}Wr ^11S @p?sx͒v eac'g*0)=f`J}b`c y>20g`egd`c3 iUcD3 IENDB`PK 1lN1t #nuvola/22x22/actions/2downarrow.pngUT dnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb?-@>wr򟁙O?X[88{X9X9X!2&2000112gafù,A7Ū"F]KGƻ d[uǯXf2ac/#D3#yc|8e?^`pPegScfeoX(~3Pgn`eadfdPg``:+2 FX3d`ù6NX_a] 2 ,l YY/``9_J&1 Av OT/z0'fIY>O?V/D~f`xۿ @C G@! fb";_ fkxYۚ h8Ów ~ -' z P@0f_f3'ݿo!?"0! k쀞82kqp1L=?؅ e'U3 00|p h#Ъw ?NuФ( 6 g!A#A-u~2 pw}@ f fa@A i gp)C(ziͣ @Ճd00 dQv' <}]dtZ^ Cy%1/a ۀ*v`.]O ndbwa 0R?# [y1p13p32{#h<٦ O02aKgO>٘SW{) L)`x'yOnh4ܵc 1H1y0H32?t!˲< njd(100Hcx Ã{g`@tAr'*O0~cАe`PWcP4gxX]60x!'#8'^3<{*F}q@_nxc./ã7 Byx~p/'w0||PGxq Ą( y>ր?)i_Gh;00Wf.?~ l@C1 zbYpy*4偹W'^d`Ā & KOR'<{{ew__901 L ?czױ|6VV`X@U @L ]!9(JIENDB`PK /lN1L#nuvola/22x22/actions/2leftarrow.pngUT  dnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?-@11 `tX"B&#L< ?b&xF `% _J0010Q_'+,ln0 }``?_67(1| 4P CZ}ZG(H 32b[<\%KLظx, ̬ `# q5H,L:Tح~c 0Ø &5V /33T 9fY8+aSu2Õ71 CA]M;Og0t7З PCd)fİ*WN|e \ #b6c+0{Çw՟$Z`#ư2 Å^Ͻ ,16 <ȒO]iW/_8@Î# ~')ek0,ư*г^3|z@@`YY?3p15 l~1qcK2l0?`2qc`ㄤ  pr1y?_y P 991O lsnO+÷? H: $*3|/B-0HC1kH0tq1/` W_󛑙!7۔!4BS  Xy8&f10Ԧkq10.ڦcX233|cb(*dpp`gP( Uf,`6돿߯p,Ca?g`*E6'~`8{ UV _F?6Ɩ+n;q#Þ  A b`db``8W/:p/< V *J _~"G @A㇟S7opwW Cw .gy%g1cc7z Śͷ'a8zâ VV c`acbsObX-CM ?L|AF`H5ݫO\{ȰYYtx|~G$0/gaqw71&!)<]v6 #A8d,?0OL A L~o/÷ s.ec`c.b~aY@7FY v?gA6&Oπ1 d"c2-Ì5d@!㯿J2i\o~3H g÷_.103y1|~{`vCDM501|dx}?*ҋAx/`:k7?>e`eud׷@<ӔW{ŧ'#73s* s̝1,ï ;޿{]Mb{+y~2<|뇯XY1@A fa !}?[WbcdP) - _}8UP-C\@`Ɋ310֫Ӂ A0- ydE3qWE#JiN,,L?1X@Yi?û[}0k!?snn`Lf?κ7_|Oq H: hVCFIENDB`PK ,lN1/ !nuvola/22x22/actions/2uparrow.pngUT dnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<)IDATxb?-@~f``r Q@6, 0ǜƾ h faef l@1d((q^w``fgE2 s20p C Pcgy9[ ϱ3H0X2{?E^f6NA%pa0Vi @[gha~\ S />3ij3Hɫ1wV/ÀB L_ʎTNM0f}½_ O0 f^EiMIF'h7 Pʉl}>dx8eեXY`)#e?7΀VG,?+;;366fTY iU TvZIENDB`PK }N1-)Ull"nuvola/22x22/actions/about_kde.pngUT ޜnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb J`ffw1<AEELlႂž\\{z\!!&&Ba?QNN+~{֍W€4޽eg[\o4g%K]k,**HaxEÇX͛׳ f@MJJv ''g711a _@߿"s utu5,--y^~YbabbqĞ=G|f̘:ɓ'+T &fF_’nqqq^ζ @f|ۮ]'->@,??`Cbb0jɥYX ?,@G0p$&'1 (ӦeXx*s#@1hk2HJ*0͙+Ћa^㇏|_]kMv4Plot ãGw>xXHWJFFw ~b`AK]+PcPRR`e;P;õk.?xp0n2;;2 ZZ@oͷǯ3j" *ok35 JC`zٲ5@G=<+t̑ADD X~蠨bkn˵W" |\bd'0Y`gg [XXx2223tww?!@1IKKIj3ʊ3pp0|G7雁 ·`8u4е\ >|Z.\8 ..$@1ݻѣ  3#oya{o>dd 6;ï?%v\x+F | 0~>>g1\z%Г_Ν7mmރ_<+hkc~g?܂ < n.&i^O2|#^~  7/\8;P ƀp&%K77-Bl@/Kv?GHX1H 3)0|F3>}L]rn0}| X@e000+((T{ r#'õ$X=/'+?3Û/.]}L * a|+g eibї/\YMM݁Oq= }}.ZxKPCF 6mxܹ%%_| _{;f> @ȈĶ#)f ×]rO;w뿋K}# ɩefVIDATxڵKl\WssammM'v3)i4B@I@IFm(EUj E"XTbk  uHhBZIhOZ1qܹ¸ Ul?{aUT\i%$ҹQD`p҅͡bO_~m+,mcMi>H* D{4m[$up69kUɭ);wh(휒x.S? BD2?o}+([E&0Fbm-=5jKJ|*=<Ȁ{^C'hx#V~շ3O_Bmn/\Cп 徲g4ՠX[3o@iۊHa&᝕B}>C!9)$%d%3}x?컣` J˗ZcY=;]2bEiܰ@^YTHxݲө]3;wN޳3ːAڃBaM1;{ @*cP@ -a/ ?o[F'h o!z1lJ 7N@@;\A0h4[g5A !4BXM6Ƥ",&q+Bұ&Z6WK)0i7VX1F6m- ;'{]zVN f冦jrifffZl֗˶2!x_3 M w'޸XC1AK$8Ҽq>q](.n.owGZw1}SZǧ&^h~ZGm뮁{<_Rٻ@̗աME:,փ#S铽@ܝ[?su1V[7O?oe~ }nLyÛ8ؖj{=HT t^;k9-Wkq/g0D+[\Vҟ/^{z}^|.W9qDp󗂥z׮_hu7wVϕJW_q(h5ƶm  x~-tEXtSoftwareAdobe ImageReadyqe<IENDB`PK mN1\ Snuvola/22x22/actions/apply.pngUT fnAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<:IDATxb?-@11p܍(|N 3۱t#y/ٟfhi`%,ɰc[`v/oz3 \ n"X, +ö:OW֎ASaG $nv~ 0| 2M>q0 G5'*|i%,Q |0wm`c^ɻ! H3p}ӋT:2PĮWXE-d9~p-^^;/@`sO7·GGZ4֑AE?2,S `l 9\}#  E 6@9n13 of8'[(Fgg AKX࿬0?όۣ 6cz^g+oN8~GD rp[/\pq[|],'Lbb4 a0#O^*Ɋp#<Y`5ս72IENDB`PK pB.ʪ'nuvola/22x22/actions/apply_multiple.pngUT PQPQux PNG  IHDRĴl;bKGD pHYs  IDAT8˵kLWƟ.-ѢT >7xٖeY4K4tNf#.Df2ԭs*'uȥ@P( v0qM'9ԢMHO&wYy9"ɛ[RtLo;Y ˅K`ub|pcgI UQ_绻 ިN*g9N9LOY*`od k ^eNANFVFY\0XoDz0&x,SsR@ "b gnĚd3]!62[ oҡbw8/oMV*zP򊪱> Rv} G2ÈΧ:'2L({?w;kq|HuY't IZX]=Ճy^/ǔFjzmԮw.Ďtg,:O(>g˫|>`WQ IENDB`PK t91Wx$nuvola/22x22/actions/ark_options.pngUT gUAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1 vwlfC-3LF?t͛}c`n-hfPPj0@1Aw:u~W׌r0VbD@P1Xi}ekogg?]m0g&f yɓ۱6f*(cbbwBN b) Np sֿO܍ٶm=cAau##?D@Ν`33C?Ϟݏ޵s˚Bgg73a0@]g .02hkk A}; j9lYm@%{`0B-Er)(`@L\AؘU^Yk1h2V׷\c`yĄ.+ދ;w7 U Z jj /( [ZU~Ay?r~'/ >߼PݩnlpD!a/ > g?{v?>}.^rrϟ2v̎ YP`bWiqWqg30ccJӎϟC/Ą/B)7|U;0b˸8ŝE& S xB P_-+X0W@L ^@@j0!a˻_].[21tŅ30xF:x8rPL ;8 % 88cR/| X-A.^āPխ 3}_pY .5 &ߐ0gcdhcJ߃"~ iU[SzIENDB`PK t91N800)nuvola/22x22/actions/artsaudiomanager.pngUT gUAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1Cܗ]SEAƝ'{nv0Xbfa%@Y&yF?+Y9|4| `J 5.U\fx/~E ?gpaUJg``dӿ@/`4NLb[MV&.n6NN Afeu~߿ ? lB :p2%"fh&=A B l@5YXD@IJJZVV -(r)30[4rfaR]YË/@F01; 05@JߥryXUh(4e`◜䚞*(co߾0021102221 q20ˁ͛ vCJ[[' n0H2rXd`xPV)-p.Ӣ  ?20|*ęS+Ȱ80ȁ'O?0ܼyl(, < G=y;ݓ-*k& #*p20q =񙕡 O>cf`e YA (|@ɓ{իwX[^:^A,Jq >3&Ã'(Ic X~`\S-9\agDMۙA'0>g?xxß_  w^0 1ʋ%?|P77e8t,ۗ^ɰQو[\q_z`jd?b7W/3(Ճ$gSL-M`I>~ =gPQQa7ç_} @11废@>3?u+yɠР 1HRW72<{L>~`kkq 2 /1|ޝ\U"Ca `ah3fSp~`TdPRV[.P x d0@AR73f[00}~?[;yTNJchkchaxZ. oP/k׮}v d@1! P 7 2 1r㇥s~߼Pۚ yz60ف i^cx 03@LĔDpSor>;C8dx̜>|c8ãc @v?t 6_tK^c{L@@uK8SVLSĹ+^H{'k.9p  JYIENDB`PK t91܋(nuvola/22x22/actions/artsenvironment.pngUT gUAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<pIDATxb?-@ sq``5e```v w}Bÿ/ @LDYϫck^H%]"l0`}a!|V[/e,,ܨͣg*[A'/#9V4MK}a.e`[UbmV6FQQ6v6=aNq#dc`>`8.PU3D?FNܔ0V{wo30111#Qj0 0i@( .ffL̪ex3ûwXXXRl  ||RFA fHLq-ug~} _~303310133p2psD@ 2&ߕEڵB3qL @O $p?1 fgcfdgD6 P2F $;  2@ /ca`/#`="M__`| v`*303?&W0hi0| ?d%ޯehP1#P`ycgGØ0)+Yb0;t.c LdF&_@¿ Νa ߾dds'dϧ ?}g3W)ï޿0߿AMM 3|Ӈ׏ 0~f&|$G?9_@^2`fT>ӫf~}ZZ&O@/F_vyha`?3fR ֭l@~%~ޜ3ٓ vq000}? ߏ,(P  &"+ _0|tr2|x ϟTY@ LX"&(g<;2{|etDtri86G#*SF`IENDB`PK t91;K 'nuvola/22x22/actions/artsmediatypes.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb?-@ա@cاO~\fƍ= >@%@xڴi}˻3 .fff@p1p6fw>0>AA\ LLLp #C 2\aR-HX Q` ɱ03zaŶ+ <,D~}{pK\- z$`3ϯ }2Hs1 22 1p3\ \}e6yu/͠ H>b&`dÔaƋ +00d`Ǡi $ ʚ 0+>2dcb`r=÷ b`ebx|5ÏxyX 7#F cfee 4( p>nN?@3ܸ~A*~t( P\n<\ l?20c <+K6.^1 21K0@" @(|l2HM-# #ӿdUᷢ,0#@Ϟd;- OcCm r[I{,> i ) ^N ~f`&?dň,A@H =iY^ N[V r0~gPRc7;A`\ҁ?|[; /0x:KEddFWI Iܬ8_ \0 r VCQ.0Ͽ FNd: Đŋ[ FZU^IENDB`PK kN1.~~(nuvola/22x22/actions/artsmidimanager.pngUT cnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1ɆK20pH20eb``d` R3XVE/%x9OdS XJ1Ȓ8ɽ5 `|g0e! b:o/?޹ȩk@``K\YsWn[D%eXYYw}@,""" AAA ||| Y +'v򹝌GN[3H00 18RO>otxxYDxʕ+g( %! NHb`f`f(p{N989DxEWWh8@ABB YjvPD o^``ae )? 7'@СC`4(UUՀ8Z.~kIUsb:v[޼6kkׂ] oeeeIIIiIq`pH2<| [K2DO7 b8y\?>Se)͛TU88gf_KY2l=z!yC?|R L\ BvN .2 ; EP ..`neɰq*߾B3իW"""rîX܇/f`|!n`faa?xDPN@pcRM @E`AAG?;fh&?T t4?8ـ//ŋGfv: f`lڟX9X?е._<`kgw>~ Pn8c ^= 4߯? F o?fbd; ߽}@,gϞe4< b ?|[VQHT 7>ZP0~D8iXXXJ FF ]y"iX=U bc;<7q裛1}|/@18ma`Gڅ;A?ޙ} %Wgbp@qqqMMMYYY0;33 ?#8B Q# ?ojy޿Y&l_>dx.ÙS@())1b66V@>affd Pv?@o -9ЙLXnN .|`bd F`4BAВ_ ~1x;OKRSiVON] #*S6(`DIENDB`PK kN1Fhnuvola/22x22/actions/attach.pngUT vcnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 `dTChV.Ov~<¼2oueQ2R͸w_T0pձfe XZ7ހo , W]rrc޿fe`C<@ ܫS{#v\!ǼhM9#uƀlE ~ &| gѸAKKAEa?NZ:y] }sb0A@8 %*9}Rh} V & yo/CދG]l") f8@1a3SLrG0Aɕ{ldt<`0_X齯k)`-d @K\zOw^I^u{l5 }koן jܢ<3ſ<ІTMĵ@&xdN ut"ü_o#Pf))*Zgv+,(t_@C@^n_֔0KVFi\T,Tfna/؀ HOUe߻ӣٮpf zL bR-9Xep bPTd6;1 C*0,^7_28 cvSl0ʽ . fr s*7{~?1f`Ls.wOђeXҹA!cxpmϪ@C}٠ p2={AFCAXanƷ/b` 䥵AR* K{V2Hr081w10sM 1,Lcaxt=Ë W0prb`*532PBEaY*II>hO.sxl Lвl0+3c Xp1#(./ʰw(#g>:k##,@331? r ~%af4e \-< % l?'cg@Р`g&[11}.Ƞahʰm_/lc`93 13s18h0|&`b,D,}1 \1@@`o~w''߿1`x3 쬻4Vu@Ѭ0-(XJIENDB`PK kN1Rnuvola/22x22/actions/back.pngUT jcnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxb?-@11 $X ,@ؙAB@qHə"N-X# 1 s`abF?8٘XVpǒo`F?1sSi% b\ 6Ϩ G ?{e O~!''+X `\ R  VS\ab.6߉R /a6ca h_&pb Y S EDO "Ű4~3cv=΃ONbbfG×fmcwov~G7g8/&`z /ǐ ?N6F`Tgq14B2Ϝ=I@Cbfh01b 4 ~/?鏟3d:0X 1h,#TRh/3CA'3p1f h_@C~23w_ 0g2KG?ljH}{S0*+M6tE1P/bTuc: _־' x:~îS1pg(1Û?^ d Ѐ 4?_ F*w)'O>{ZPKӃyWs Š)P&  "ʌp1@!2rg ÄP-?𓗅AUͻ_ 'Ͼd`ddPp-0>*54ԖOehdp'`vcd~CA7 L'0[32]2$’îmw[..mjdKVe2a`lL`%[Ro{d`87++(1BrF1@.@1r:}71PQ6oy\c`xۊy8X.c-06  FZyD: <-((IENDB`PKkN1!{nuvola/22x22/actions/blend.pngUT bnAjPQux  sb``p b $lɱR,鎾 Ov%K\#JJRSRg[?C&_ZdqGOkNj8 †]}żg^~ t-xxǕs1+*20x=  o@`>65e0`d|o6 o)nnBL ߹ <++ÿׯ]`% X䙘d?g`S3|o ÁR1edg >if``h#Nׂ ekÏ/B, (e˟?{D  @A h诛7 +0~@,=my!! "a*;ï+W;A 1\ykbz#c0|AH`2L_/P0y. ߩ>|\bOi000}K ^e?Pj(///2`~r'_tTauW@"~\ 2#b +cwn _ fV/~ra1VVcCyy@ n0r_`s"8ć<߿@ =.f`5xߎK>}a\Uqo.d8(pr2˘ Mׯ\`^lJ];@1\M"@Wi)Vg04? a<S)@a,eUij||*(`q,ٰ)j0fI?Fe45_5@iS|9 p {aPa`<1\\oE@/PXP@x E'/;0cS5#*SgP"JIENDB`PK kN11J  %nuvola/22x22/actions/bookmark_add.pngUT bnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11K÷~23[~V&?#ӿg~)  9XX802y˷[99ۘ@Y m/o 2aa_?xp~ǎf2que47g`d4͋ ׎a{'llE\LL6o de+*X Z?30Z % ##Ï mc7m}3 TUc,&11)+30|t ᬬ \\ 20|1f0Lƍ }'|¢ @,?~1100ܹq6B`g/PϷ+W\ 73##? EQMKG5p ݾ_K?"0yx\6VPy'~+ß':{4 2 ! +04J`pЕ=2@Y~'bypݻFBB pa P! ɠ@d/4.0|k'@1rsOηo?0JB߾evףG~] 2g!×S/yr0l5Pg<@poĸ60b>~~h3 xi*GsMFn ]^s0/4ϝA7/4?(]?ṭ?>t)sBsCzIENDB`PK kN1 q(nuvola/22x22/actions/bookmark_folder.pngUT bnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1)Ŭ _%? h^~(PL f;B=F!6@J ?Yrϯ<@@Y A Ͽ3p1efc@E1#h1-|o  @,~gxء ,, B< :/)Jϸȿ{@Qv?r襏_~30 eH3M wWCT/3224(d0@Fe10?P?&?Ï@#>H2SVcN=pUAb я@C}b`x,C(a# *f l K^ K&Fb LA12~zokO2}'j,/P_62} { axd~Ʒ`}?`~j0ç18Qg`gs`73 /33?6 X@yl-(2BOO0g aiL.mrS#wG}+_>38z P@7+?~h`x2ȩ@z !5! Z`111H5}``3ԩ֮] @@2?2wF@裛9xE$ΟG &}._fz,  cPx2\w`P]0P<<à L 5IJVV/^0|۾ Oک@, h?@_#~AAd00|[J> C|Eǎ1/4S2qs3|dd @( @UB㎚s|Οo1`;W0} 10!1p-.,pׯ;t_πik`gW> I "W'1 3<~ , J@\\'Űo_~L Fe03 NR6`N-c-ee03N.Sf&Ooba.*ʰw~`cg @̜i 3(C XpEߎ[b 25Zkh~wD11Ǐ/ە%20އH FH ΢l@eLLW>**|r@k_?~*`pD| BR=Ĭ }c<0Wcx3=<0Dٙ~ p!7}=llن?]؅ 09 WeǠ &&~bve8p o|K#" `3kn}-$$)+ $ܻp ^d8v0H4Y̬,Ͱӏ\b L6?`F fgd|Y޾̬ L~O2;cf61xA҆Af 9ye7~WTQa0C4~#p# z  _>`pdصk߿W9Nu/܅T<n޻ww._13ebƍUN8 @8 ߿?~ *Okcww.?w.̒_ [l āA$=}w@Ibxv٣Ξ=`o,2$$~tb@1V?`,21;@?0!"v (ʰ<03\uu V3331^p.c7@1Ҫ20|IENDB`PK kN1!!+nuvola/22x22/actions/bookmarks_list_add.pngUT bnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11Yk..>u5,^ Yj--, a@CC"// ῿4GG44jloUT00002"0>|``XAY "73̝3׃9XXcj%¤:&&Ə6VV.. a 9NN~~gK0L;gvv}b͍T"Rfy+ _]c#?bEQMKG5p ޼}nǏ3$%86ϟ޼a` W 耣G9g6hy ˏ?~yUX W~~ ?}da@ @? Ƴw䅄@@`o>}S '/`DPD331~s 1w3@|ȧOe\ab@AI W30+`?ζfhɮ`d`g t+$:30p1val?e`Z@,-㇧1n@Wggg 4O ? Ps? ^gh4w OW63'bI{ӧb 4aF ?̿1]=]!=`p?_ xY߻Ƈu=@4PϹ?o;W|9_\RNHh7pR<:т2 D`P΋ fعKǼspqj*i1n?aڬ?>f t@@D _Iu`S7N_{~K[ Tj0@ao7"IENDB`PK kN1Ys,11nuvola/22x22/actions/bottom.pngUT hcnAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ƳPe/dmdad;#D?3##Eۙ40 @pA?U L ?f;(ĈbB?DF `Pdy ZP_ >  ` !?1T|_?~2p0e8|: rb?A01p2c( qL  3ع9#h&f 0|c`b+  $kh/`e珿ba`age``r+3 3ßd`3V6n@E n0۟U9&R< a7 ÿr;7?`ژ1t؋gכ?&͹3 k^I ߿>|@AF!&T &g`#,1JMaA SNe?˿ _d'O`>ggd莓e} [32<BD'#?Ud3, ?30"Ynp-CCeIo30݀@]>'0h20dg`cc+(lv|QqީW}| &l l{|ڴ #e``dcP'ΰwSS?)#3B?Yٻ]!ÔL?02d`0`bx;CF~.g`g  _Ad+ۚ?INw*{F , m\ \䑒έ7j'/*Y@ ~l/7X q 6lq-X~ -h X`efisv`Y1aY``p&/ Ћq`;ᅮt.0,(AS Qo_ ,z`fՂ% @!\Ěв `Taf0@1Ҫ20ɄM5IENDB`PK mN1%f&nuvola/22x22/actions/button_accept.pngUT fnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<9IDATxb?-@1` D XXMW.&o7ai 2]*dBaMW:>D>EJLt]fhi`%,ɰc[`v/oz3 \ n"X, +ö:OW֎ASaG $nv~ 0| 2M>q0 G5'*|i%,Q |0wm`c^b! H3p}ӋT:2PĮWXE-d9~p-^^;/@`sO7·GGZ4֑AE?2,S `l 9\}#  E 6@9n13 of8'[(Fgg AKX࿬0?όۣ 6cz^g+oN8~GD rp[/\pq[|],'Lbb4 a0#O^*Ɋpͪ&) PIENDB`PK kN1N$$&nuvola/22x22/actions/button_cancel.pngUT bnAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@z0eb '?Ʊh13 TaNvvvϞ;>wbr*)4ZRR0B@@XkOFF/\.珅/vssQoo.5)?d@]1TKIiQoA) ~\{8V#{9..B .||,L,, ?/T2 .)!`j`a XUߢ_H.`.²UVW$=AWA@LJ%,UȨ _FFϟ޼a`xؘC?LL@CMe/,#4#`2 ?y0qӧ?>/Ye YX DYX8}(!>TV##ƧO}c`~Ν W̙B6q㝻w7y5 {20,EGA6?9`.[ ?d8s矻gϦ311 @t(!A`r?TS\|+fǏ3ޞW/_2|9sŋn_t4Fff߿0fϿZq#ߧO ,zz 3pBԁ g2~X#̈l8#c00Y54E E$+ PeaQ6S@3_aa(vFvA``9?0bJP1C@DBVRr0% h]@ 88X,XbǓBocD2 в.7..>۷~ .;`i`7C(Y7**[|x@h(PWÖi`[-" @`Kkha` pef@Y@a (~]L!2kB]@`ŕVIHc INAA_?`3(X# d`en!a` 6Xpq H.f+n/&ݏ} N`ag@`_^Ǐ%VEElln4t>,k÷o.fhi`%,ɰc[`v/oz3 \ n"X, +ö:OW֎ASaG $nv~ 0| 2M>q0 G5'*|i%,Q |0wm`c^ɻ! H3p}ӋT:2PĮWXE-d9~p-^^;/@`sO7·GGZ4֑AE?2,S `l 9\}#  E 6@9n13 of8'[(Fgg AKX࿬0?όۣ 6cz^g+oN8~GD rp[/\pq[|],'Lbb4 a0#O^*Ɋp#<Y`5ս72IENDB`PK mN1\ S$nuvola/22x22/actions/camera_test.pngUT fnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<:IDATxb?-@11p܍(|N 3۱t#y/ٟfhi`%,ɰc[`v/oz3 \ n"X, +ö:OW֎ASaG $nv~ 0| 2M>q0 G5'*|i%,Q |0wm`c^ɻ! H3p}ӋT:2PĮWXE-d9~p-^^;/@`sO7·GGZ4֑AE?2,S `l 9\}#  E 6@9n13 of8'[(Fgg AKX࿬0?όۣ 6cz^g+oN8~GD rp[/\pq[|],'Lbb4 a0#O^*Ɋp#<Y`5ս72IENDB`PK kN1N$$nuvola/22x22/actions/cancel.pngUT bnAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@z0eb '?Ʊh13 TaNvvvϞ;>wbr*)4ZRR0B@@XkOFF/\.珅/vssQoo.5)?d@]1TKIiQoA) ~\{8V#{9..B .||,L,, ?/T2 .)!`j`a XUߢ_H.`.²UVW$=AWA@LJ%,UȨ _FFϟ޼a`xؘC?LL@CMe/,#4#`2 ?y0qӧ?>/Ye YX DYX8}(!>TV##ƧO}c`~Ν W̙B6q㝻w7y5 {20,EGA6?9`.[ ?d8s矻gϦ311 @t(!A`r?TS\|+fǏ3ޞW/_2|9sŋn_t4Fff߿0fϿZq#ߧO ,zz 3pBԁ g2~X#̈l8#c00Y54E E$+ PeaQ6S@3_aa(vFvA``9?0bJP1C@DBVRr0% h]@ 88X,XbǓBocD2 в.7..>۷~ .;`i`7C(Y7**[|x@h(PWÖi`[-" @`Kkha` pef@Y@a (~]L!2kB]@`ŕVIHc INAA_?`3(X# d`en!a` 6Xpq H.f+n/&ݏ} N`ag@`_^Ǐ%VEElln4t>,k÷o.|Kq)~b1Pј*)(7@>vvN6ϟ,߷`Nj{?`ffLL2.(|_|@1 W`Ɨ7100  ߾ lLIapX q%׃|e`O$W@lSؿc`@  "pr  b ^00h*2Xڤ01 ;B .f$.;пAgn]f`yJ K W{te)"lJm6XHFț ML3޾4ñn^* 4 0?,\@W3(208sp] 2(200\=AK `Ϡp?#+pV89dD,eC Hb ??IsLk9? O sh3#@ (0 nex<&1pR#zXf pP|?Y ~#1Wx/㟆0ñ R!e!+ ??DYd``F#@003 eaddc}0ؿ pPܸwһW@E@K#UAϐwVw?XtY؁{O6W,;|  r <д 0^W3&MIQ eb۷  L?i⁽7e 2 }$G/^35ʿo~_1uVlb N )?b^`}Â)S߽~e*P4H X of?X,H%n`x(M`3Bi 3redJ_.!ag^~~Z/KQI `$h@Ճ;>ưuK@.ECf0([@J9 ik(*Ɋ j>yk׎=|WRO S.>=ͪPߠt JRE K{kIENDB`PK kN1x']uu#nuvola/22x22/actions/color_fill.pngUT bnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@cee`󇁑a C/2&FF_~10@WV@eg`gg?}@LnYYfNWWWϟ?1@3˗/cݻxbzYXX.E @CـAFFÇ ||| %%% bbb@/{0pqqa  '9WUU143111311dddppp,,Pt?i QD ߿ϰ~z@ ]\\޾}{hAG@#AA!GL?~beeqJq0| ֭cPWWgPSScE(ß?~ ~9 X1r>?t~Ζ*`"## 2q1Ǐ Wxx8TUL#U #T#** vHرc+Q/97/_,u?fx~̃ݟ?▓r%$́`iAa!ם;w܁@q ߿OE˗XX"~*#,($t-T˗/U9w?Iig9{騢x]J ͠`e,>.+Whs ;^20DS?\& W\ @>}4ÃP7d`R>0p^~ҡC\cݻwZ @L ̃ҷo3􏕓ĉ^k0 |Jr۷og8s9`XSCb+ɀ>t<g|ᕚQ̅,Lr%blvƇ ,Y !R޾exx2`y8 8ȥGeL`Px(C00? %o`9FSTLh ͠"ٳhh& @S E*iVG>zHXn` @C;"Bl ?@<߿u>0R`Uê`s!IENDB`PK kN1>rr#nuvola/22x22/actions/color_line.pngUT bnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@@ oK*r;l؏Q7?M/NCVn(#z'v? GXSnF/q ?¤<30d:n7 / L݀ %D~10za ho#fv9a \ @DC06 zn ~r2H&3j0+30p) & `p$cK10fpbPgï ߱m) "#JhQmAo&\@Ct=rQU -BK)U&^a``f`p-da|oC_'c ؘ Ʌ QaY7zXxDe \  XhCBVde;00e`ffpgPdXsaB//Ocda p"0 'jR!v.W @CzyE6# j@C3~ SA6-QK7;{.s[)^F]_Gd`(7Cb !+ /{wW3@A ?Ed005I1$0I0,0qT?/ A $Op=H$ CV1. ^p>0(i<㭥/kpCy#3'ϽK `cM\F &hP01331u>(8Cj9/N 1P'ŬS\ #=3=ɛמ2fĺT513`x.n>_o?p (7gQkߠHc8К?8$_f [XށJJ@1Ҫ20sMBmIENDB`PK okN1m!nuvola/22x22/actions/colorize.pngUT bnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?-@ 220c`ـ\ _ [ikUAyA&`R/`0 3p s13(1z ?buf`6ßX~fx%ӻ f*L`C bn}͠oo| Ai QuQ7Oydf`eYAMWh(ą/,B<@]|6ã>u XXYXYLXᇂ0$a33а r?T}k3/0} 0u~f8o&}ccc`'GTؙ20|{ ~ePRb1ep=7OMn0<IGw_eb~;n0<Jz|QCÛ?b _PdefɃ7No%,l Kvb)^f@@0@br!&@I@6_W3z?0OH@!Mh: >=w% 0 u~ gwcxw}cazJ   9 ((j~4? w?`8*|i!'`x 3 8J \%AM9]Ͽ9 ʽ  FZUCwLIENDB`PK t91""$nuvola/22x22/actions/colorpicker.pngUT gUAkPQux PNG  IHDRĴl;IDATxkLeo-e2DL"Ȝffq L4afF>h4#$T61%@U: lric0$sr~9< a;VQvr)`c֥Fz8cRmzbo!UkN-ڤ'\"e5}=XkIVMZ2A\ xo|!)\οe0k'Ͻ^*żK(Rȣ`I(/EHwi빛s^1Vzv~#8E`c `UuU6" g߹ynܑlyT] 0fWqcѴ)P I2WG#;"qitnм{iyU+￾ F~;DfQ D]Q:v_=6?y ٭`NeaX2!E:εVwZhl B '9DDizT DVn"ᙱ.^Y /}?j[l=55C+يJ riWR +90/rkdzߺM}q}`Q@oL" a%ab<~=,^ZDB"G%X+BoEB~gbei%p F2Sw~Y__VWWOq]lV~)/'"1^7x .IENDB`PK t916!nuvola/22x22/actions/compfile.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxb?-@1ZXX0|mC#$YOǏ?W\YiӦ> _r0 B`ǤlEtZ/"ZjᇙAw0{G#X dabb[ 4h ?d " ` Xb0PD203 9`bac`xʭְ~1QB !-Z׀ϟ8 a8 qVv!TG&9~)_331taM v&@ ? ba󟁕'o 8X}g`fQ‚/ˏ/0bxWO1,=1 LL i6y&Ww:p~o00{/ ,D &mE~ Q>amYIW"~ %~ Ev1@1}-iUɜ[cc`}%CO&Î \| &  &`20A0| . '200g'<9r)L pF0 ehXZʐh'`!A XI ˂700|n0@0l- ƿ &|g0@0|Fu:M F6 XUR]8 &̄^k(@` @0}o F4aPٳ0Ս`E\Ptҥ@KցV)@1qTFYIENDB`PK mkN1#"nuvola/22x22/actions/configure.pngUT bnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@OO&&f񰰰Oqg~U7 J&&F:B`׮] 6r1i,,, ߿#=߿ "w?_s#G~ $$TWFlP`VVYzW|)lvt% ~  > 6X@@#11',,~y **Ƞg$Oo߾ 7?7DϞ=~`d.C\@#۷w''w%q׮] \f7o0|-333Pch!JǏ~$P_NL \\ ~|7V ` ׯuݻ'0¸88Yow>2X[245I)( ILLm_o߶y˖-`;0<߿ax803g05ghmPPPwE\ Aobb4лtdd޿ˠl‚Ng(--zy%c..Aq} CPx FP\˫H89Y`̙K Y޽}  @allȠàƠ  ## // "",illtc05'/y :YaaaĄ3KrPE7 w,Jf}fx8g̘){jdD(σl]+8 L8 yA__a֬@ e>"`˹y޼y,33c],a}| K,5` DJƍN//_ 6u߼ !!L D srr޺~iVV} x5?~0DEE}ݻwg(H-@1b(( 0B߼y.##ׁ9Cjj7A@j: h-`5MO? x;r^Xa@L "!PIENDB`PK XkN1焒)nuvola/22x22/actions/connect_creating.pngUT xbnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxb?-@11  09Hp0~gHu8 Ǐ}{ޅ?0 p6@p{zz]\\"ׯYxx90g|o*333N"(32,fcPaHq NaTabv;;'ʕKsr2S> @A\!?ie/uXLUaxATý{tt888޿g#@Ll) .0H327# ,߾1 W3KA.Cu3r2\|!3m.^<7 A5N|cr/#կ /av3o` }3(**3q102 U' V6o޼a33 D%AJJK#(f@`b?" o9dX~GħO @wuߜdbBM!1FZ8/ÿק3.%o0030|feeax9Ë:&q6ǟ>?33S t@i=r1;;;oܹz@cq#`ÿ-=|O0*0=_ ?Ï޽qqvǏ1|~p*a`Z]zSmqj)) t8 d$%?~ p~2ɓ  rPC],B1?dFlذX rrr|gee~qߏ߀>Ң@| FZ D hf0@`k\rx˺IENDB`PK VkN1M,nuvola/22x22/actions/connect_established.pngUT tbnAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@% &C# <;;Cȏo I0Ѳa`_&FƻM] XX, fC,l {XL_$bF2t A_hûBIIEATTӧϿn߾s/oʹa#k lÙ_= P°,$.((byc pof8V3P# 0D!CL`3b4f9eΟ[zy~u^X9 ' YY@f, >]'qX ~p3 r1na`'ÿw9 2(f%Ozo/~1#8i,~Ġ+(o揟Y8010pqF{ eEie10pp3|߾Aj/ßϿ1yg+ߗ@,rff{` \ ߁Aww/3p~k-svhb9Ǖ|ta?'Ԭ(  b0503ׅ OtbffefO@߸{u_<+k#O [oHW$8/ff/_2p1􇑝-Gx乬yԄ.4;ևn9@,At?FF>a!`f'$`+ske`Ħ X00\;LbuG_j H iUt˩gPIENDB`PK TkN1 \kk#nuvola/22x22/actions/connect_no.pngUT pbnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  09 Hq2dx455ѓ>(,,rCPPnVFV@ٖ?!4''箚f`ݒ,>?xPĄ }+(0 JX$ \||"8yXx#Cll æM빝f9F# O-3)O0~w ?cxß?&LaVRRVVv6vF&ːR@1,s v L/ q0c) (- )% 4/7ìY&M_/ PAa @ofbǙ _.~d}%u >g+ï_102|ֆADDԇ?r  O-|baGXW'1U+_r >dx </?g/8coffC@`3q0&fPAD_COỒ#k_~20pa ?Andp8ɹ]ӿ Hrcn/+Y/0ppg@a<| 72X`ϰa/ w=yoÕml++mӚga۟>n#_ ?` WK1H\``\𷢀ϯ<<٢yy  j_08 @`ײ':+/Oo_?30 0K1<3Ig9s6gN]2mLl"  \L W`8*#S6xr:Û[$cu`8;ӌ7 v i 6tk0||?n Pn&vxTy~^)=%y`fx=ׯtMܿ,~Xta[2l|~>3+k۷o RVfK&&_>}^fmmM߿d^8 ?毷/aϩ lL L߾20<>~d`[L~t%{.anfg7PK_7O3y[vqqK` ]߿{ h?fN39jO# 0Pe.`N`00XHH0prs{zu3@4 ?3]>C]` f+?c[?C-h ó_g 򇙅Au>`kwzw"-Pܻw < <`|IbWX?efb ߖd  6 H1R==&LWSScXjgϞ )" ہ !!sYYYC!X0,%@ ɿ14\5BBB߿p=Z r%???'''1P@   UTTz߾};SN\` YXh/@@[C]Ro$((2ƍ w]?~xYZYY^ȑ#l0ceaaQzrF& KIPRF&ޞTp.ĘlO? X e#(PFfZ0$ЕK߿Ϛs_vK~Xi-w۷o31*bp (ۼy_ 媪+X\rg\ 3^] WP25eiPUUͭQHܜ<Ћ>}yAFFݻwÇOz"v#'7b1&Pffw? +qӤ YY\ Îݻ8q?[y v ((`+{˗#^R-זx++`rjce}%L^?/^0k'rss7PFh&BQ@س;w|y5`:Jn%89MsvFL/N] >cuPC6 ٽ>x1/'u9oq7 @Ͻ{ ̢~%  4?, F*YHTA/K^޽ۖI5w۶O`fdd|0ë?߾ag&`Al0 qV$Ѐ?2!E؋֭{>W NONV֥ ̂~i= :Pd1K6  ma@ifi[Hn FF5oߘw~ͽ d" T,@,aF wzۗXYcٽ_J],,&6k#QX5l ?TMWy?^oh,$4: iU:[9AIENDB`PK jkN1Pܝ"nuvola/22x22/actions/decrypted.pngUT bnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb?2H? ~}VPgbbb|ٛ[}3++u0ݻL /yYY]^^jr@?VV.WZ4ʕ >ll, a_6;v΋URR`̗> ?@L0 c[ϟL@C7:y@ӧ?/w ~/L_? ` 7?.&fVv667o߻w'Og '+ۚ߿N(1|7!8X}|^23kA 1,r?~2h 233ơctfx&;#m+'@633?wL yO>) 0eP `?#_, 0`Rf'G?g_oXDkr?N7[ZQ4 C n<2[å b?13VWz~t:H @126l /ho  0ƙ3d+P RvnS{ 2 .`+A&! |50(x1-dZ FNfxz 53е5cg [`('1, 1Q2 x42a ^  f#E[0A\;+7%&;W]l߁6 ~r@LA 1ȵ!'Fw;NUvyjS`Zb4pa0(Y1b+3|pO@@}π10@sB`IDATxڵ{PU.{i B%D$DSFc$Wg`1Ă#F j$`x! RaұljsR]b*O}w{.j5IL uB{N#uܳ29I "\"C'u_E̮:=; sKb$8xNCLd_)_b3ܼz45G]T;o'+0#~5=ٓ-ح]rTt\bdl ĕh*CX7 M3}3_3RL#$:rP}RrN J;EIĻ3%WD^03_!Vgg#"@>Hy$u 3{ddpqq'Q`5D ?To6h a=ky FȶC3  ,9:^#Ma.~WDzo?3# *\s .O1B/A[FPmUg,Jc 5J ˀ{.Ismð!t 4eW!}ߺMF6Zl+Jp(;F }Bɯ[74%_Ηw^o1"pHd1ǁGA`~`^0+ J}J$!=B޻B5+rKiC|E|'igxύ\~ X{XxJl4| |v g$ bل3zQQ'"x s~x?qQ"X2 %|7;Ҫ||JOko:Dxds~1-_ij=2[GFYMsb"[X Wv2’s$i2xw _g=AqGH,sbv^߾cB-ݿ09-%tEXtSoftwareAdobe ImageReadyqe<IENDB`PK kN1?YOnuvola/22x22/actions/down.pngUT dcnAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<dIDATxb?-@11 h4H@9Ost 3 ,ooO M);f`~3 Y"tgaaX>CnA+?@A&F"a0 3X?% !p%Ï_kV1~v @٘`,Hl8L=_??~2aq$a0"@aF3,'п~19@ʌa @-p П`d{/P-@!R#C?l~0~eׯ t/ %/? sl̗F L1:b ?~c7O?!HA[Y!?@/#C /`Z^ `sɆTO_?!. _ >dP`(M aN3Yy<beiFZB. Rg_@1\zן ZY _ nuvola/22x22/actions/edit.pngUT bnAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb?-@vŋm#xٙo[@L&&F?t{@r1-?* a~ &\lPǯN_dc3A/|pS8+ NvO-}n0\TW%xRl@ӶM%)̌ @] Ң(Z00x2h+2͗p=Ă2˜.  && g>b!!%+ !?7PȐP`bD \eCr-`l #?rP@ 2THe`d@X 0 6370@ F40@ @pRH !5̥` #7E4%Rƀ\̈Cv2@ ~ а?2|F37'P## dd t5;$a K/3131|aZ1ffl0H(\6 RF(L,L`5 ?0>@#02] 3202`&~&:F&D<*/Ïo?Al ||# ZAAo  4h99Y3YpUf# ¯2k3*2B 56Z_Dkm[?:8VE'gf?t ut*@f%5oZ&In>Ɵ?~0(2LO/h(Fe \ ,l E/# iU=IENDB`PK kN1;$nuvola/22x22/actions/edit_remove.pngUT \cnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb?-@11   @43 X@cÏ?k9lXP#4gʁՇX 33YŹڿA[kAfm\`Ǫ@!Sb%7 nO)xp 3b~N~yQ__2a`ddd`d`o!|&fbdb ԸAG@AHPo6?0L750003@0 3C ffbf`d1H_4"A X 1b #&gg`ebDzrBe;"(@,|W@ c`L1 0U0fؑ*Pr #Ƿ >k ᄒ=صӷڿASA02 R!AìM ?{x$@ @$]a=+G 033E@1Ҫ nD3f 0҂mIENDB`PK ]N1k4!nuvola/22x22/actions/editcopy.pngUT bnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<BIDATxb?-@0$#xIH07b Y~p*wDBN{\1!P6# 3ß? @P1DXxy8,h0 FƿC]@7HF&F32"5a Fp6&Ɵ>~4o ~A$ >P Rp04?~@,ڪ s8ؘ~d(i0d>t\IX'+O>a eYqv_swx6/4AK@rLw >#H / _pfY@,\6?P~ٰpE6f@1a5@/_ b2 P\ٕ0j(T?]) P F3R(Q] KA7rdA/7,aD0&|badDu-̕?H|dCfDPb7Ï?"Gdxr @,_S,.ΰ@Tb8!4A.E(bzM }L@?@(P7$G&hD @lfh0B1 '#@1r^416aeaTC\p]Qi9QQ`:?j7G#*SjfQIENDB`PK t91^,  nuvola/22x22/actions/editcut.pngUT gUAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<"IDATxb?-@1PLLAXXarPPPʕ+7\zݻw /^` cbdPUUe|ׯZ掮d @2TJJ گ_2ʪ Ͽ lll |||`6@ fzOiii t^UUU;Hڵk 7o^ o  0H] %=y *$@߿pُ7o\u `3 U o`(b~sm@\ 3P?@E~ W1wH`W ( _|p޽.)) @SE@<  Ca hocz +Fe?~[x;eVPPZ"2̙3' X@|ΣP,3uIϟ"&y,4@C)b(50B} rХ* X)Ƿ!CK~˥K/5'jiEoz?~VNN 7nf`ǏDEEYAP~aϞ=G׮] ŀ;`SS<][XV'Ţ(")n P֯N>}ɓˀy;(/@2 0\y60 !1#,(@ Trs302𷪊AAёvR2g>p'+AYCAwv710r20 bniirr ߦLagДg🝍AGDOFe X쿿 ʄRR  1\s[;???_ :1 1|_څ+ U j CSR  H3opӊ @m_3pL34C5 "f`3q%77>y🕕yEFNpRȌZ & z }+(2ͷo xyde=@=n0("_fxǠ}(/2Wc3v ߽c``{󂁥۽@_`@ _ ~c^ 3_ a={Sso^3p2<]P2[d+p)* ~Lp^3Y%%'7U w0<f`eݑ X pĒ^H0p2(3zcd7 > jA-}J -~#x287 ܊ @ !&F LҚ DL5G42~i`> d<՟L-`$>H Ⱦ_. /,*QiUo9r,@L o,IENDB`PK SkN1"nuvola/22x22/actions/editpaste.pngUT nbnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?32/ooze=gEt?}ݟ c 3 NvAc? ?(!HBld /PE P㘐 @D 2 4"8@N?@ \ 59(`? ?# !CJV J 0P p:,y\  h/~faZ5}vO`Wq?pHCa7@× '.e`jظ^Ȱ%66F0t a`fAx3H @_@~602|q( FXf[󇌂bsԏ_޺ ,! Od3aI9W0+3^>}- V)@PhyRIENDB`PK jN1ϸtt"nuvola/22x22/actions/edittrash.pngUT xnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 #[9 t!&;^Q6N1|׷|x؟_f1;'?.(#zP0r 0GϚ5̗Qç/}/103pǿO2|{  _8x9ԼصMo?,7k@7  FX:%BZQĝ?3'?X?3?0srrϻ㉋{<'lD<300)p0'07Й\Ȣpz7y7 h@A10|p5130230|dC$@ ,̌ah/`t1Pfhi`%,ɰc[`v/oz3 \ n"X, +ö:OW֎ASaG $nv~ 0| 2M>q0 G5'*|i%,Q |0wm`c^ɻ! H3p}ӋT:2PĮWXE-d9~p-^^;/@`sO7·GGZ4֑AE?2,S `l 9\}#  E 6@9n13 of8'[(Fgg AKX࿬0?όۣ 6cz^g+oN8~GD rp[/\pq[|],'Lbb4 a0#O^*Ɋp#<Y`5ս72IENDB`PK pN12 cdnuvola/22x22/actions/exit.pngUT ljnAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?-@11 LjODh?3?~|Ϸ00,Ԝ:h 610Z)0 [X0 00|}' _?x+@Z@00{q{\j&#;'÷oN,_CCAVVO3߿aۺM~RtdZy@os-[4C>l(ϟ ceza_^1AQӀ!ϗ4 &$Rz60؇7޺* Cw7n0|Z cdq`y_ Ѡ0;pk.^&&n2 yxDϟgcPLKLT܋W@  F$y CF&/mEq12ëSXYX}`@/_TĄa`vaA-anFߕ) OW`P g##Gd@K 3^[ : gy+n6vyy7? ~OKٺu 22 L L uOϜ%&W_ѫ Hfcfb@0? 1*"dbР07߾0z/0ee/Pd ߾}?u?~20r#{G10K 2|;zrr2. 9vfF@~ 3 a7^e3`}*EK8<d[p0 tW`B YRr? ",p T?_ 3 Yz"##&ƻ~r0|Aa{['O2ܳ v6 v /1c9cX;Y 2  9xyڳ0ܸG2F`$1ʓ~np˛  ޼ϟ`5 B !os Yx>`r(?Hed#ۧXyy~3l{ߋ: ><0T|a`8_E^FB~?1偆# |}<`a 3 Rs\Ja_5*}\  FZyD: c 8(IENDB`PK pN1Caa"nuvola/22x22/actions/fileclose.pngUT fjnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11YR0 (A(nվcy@!g Vp`ʁIb``܋n@1bF!S8BB! }O_-dbؾ};ìY|𺈅}2Hݽ{w6ffXZ^^hpuYYIVV6`|8'O3JC\\&3Pn߿9`߿Ek3\rAMMh,͛w޼gϞ13((H1n23I(@H.fHSg?,Ç_>} (Ԩc ~`b ,o002-}H a`..-VV-[]O>>^SSm ]!!~p h<< Lp]wӥ 0oSOnnN.K2s ʯp/L ,,l0v12H[^|ɠ NL`C`ϟ@@;zA wϟ߾S8籰0cɓ 0y]n{g@@) b} f@ ׯ_3ɏ@-))y|@L +WnfX` Q\\ L t/p=0z 3 ;w. O@ 4a g8v âEkAC||$2'f@ fdduG/^<j۶aL ;vlfXd 8^w@~|Ќy/+1Ӟgs0 ;;;l{~?TSII Ư ޾}4x?`qĄ*Y~hǎ޼y ll@qp 2hjJ .с˗/@+*jJ(*jS/(o vܹ%!9` `&\/b89@+P􏁑!0Vu@Ѭ0N&jIENDB`PK OkN1oTT#nuvola/22x22/actions/fileexport.pngUT fbnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@jj]Y," @HX r?={l/A`##˼:v..&iq&?3D 3&&f.];]@7XTT ,L@ h߿ @X10#;xxa_~1_@h(P*o?@P3*+<@F+@ eڮr#~3j/U.W9 Q[7h"@] ?p`0 2Ab)#8~  P\ &`DrT  4/X($ ;kP(` B&+AILы :+ XPZIN`g9.8%0 o~3<}) ?ؒ!3(cl06cD2n0$3|Ǐ `B%LF66H `^~ ,4/`isS.21HJJՀ,ˆ?`eet0zd'' D"9=A} t?`XbXx8HbbBA//ϟ|bB c&p$ r ;߿jsKBp B Fw@_ d?`j08y (. ,,F/_gGŰ7/8"A &0@p$9LLL/,߿sՀJ3pqq̀ W[4۷p} &+g,:O(>g˫|>`WQ IENDB`PK t91~!nuvola/22x22/actions/fileopen.pngUT gUAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 )CB*)iJ/#1wwvB8@1mF\^=~:Jډ&}ea0ȕro~@32m2swfH~Jן>P%~ xP_G4$UAǂ w_5g``f[&&FPzP!/?@ީ *b v3|5ó7 22<Aw@@]+{ÎRX'QE@,E \  >}йRXyy5C?Y&o|PCa 7sK{ h 3I @-Pq_u~x , r|@{ QhxVPx >%3|70\ @p? bopMd* t!?#7;PL, 3n` AA >,pn7OG?^Πd.pC\/@(. /,8UTÚ Z ?^-P.PEŠ v0>_HߘY j ࿈r=H ?37 Ux-D d &`}'3k`? <0CaÁPV`y T'O.((傤Rl22@gg[}ӧ`3 f` &0۷Y>~ȊH#ӧOϒ^LI@# 80re\dťx8AՐ`e/e›7~0B' ?~h cg|Ý^|;%^`0/0n?`anhna!{ϟoں>3" О&'V3+1/;30v73110K3|yyw dd {~@. (FȳR'L@?=ȕs ֮/ijcr|<>Ѣb2N kџ6n-ҕ)Tv/Xyx;02?[>f`wașfad`$ bgW `:deIf_X=df4_FPRg`@϶ps\l L @!F`>`cf ׯ?1;vAPAP^wz293;P 0} /^g `Y??|𘅙AXX!ˈ!F-P9;лL@0h4??N_ |L?{_?0ppp\ ۏo||\qK ۶gQe(E0*@{`F9l`g "".  ~A@h_Çw2}t?0&_2В?@A+;/7Ó40889ـ)gb @|cf===CC}pJT 23 ɓ'8: -- F>?{7n\cb`Аc`p@ UgZ 22@_7f̼m˖/MQG˗B`P!`L^@C-7=zXukKnxU 7W`ad8@X0,J |;NNP@,p"`1>˜A\1IH;<}TR1 w-IENDB`PK \kN1.XX'nuvola/22x22/actions/filequickprint.pngUT bnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbOd@idQF5LLL7ngAsVVf˯_?q)9;۲0ll<[Gcdd; XA2Iضo3];{3g/.wFL,i$ Xd2 řgf^awIgP ޺52ppq3213Ο  x [6.. E@ 8rb&r g`fPe`~ǧ L@ `~@񑅃G/80(Ů1P[2'o޿S'!f` &D۷Y>~qa@qc=Xؾ?Oϒ^n@cˑqfae8&`]E!ߎ0\:ױť' o޼zӗC~r Y(--/MMQ   Xf64665l3cIY111qqv2334! ԼF N )"(*EAA\NN۷X40~p1`h;eky| [~fx*Ƞ!ҧ ?c`PPP &ii)A.`%;`S_8l!0^sQWw /t2̼nN F R <  ʆ 8?°:#Öbx ï?@[1c87,dY=e&^< @L_b8vý{~ yf`xͬq@`M]Q Ŭ=Q^XëW._~{}Ç Ye{F5A6`ga}1 )- b_8F1`xwt1'(O `Röm~6NaX^qa4&߿3,pٟΕADD??~ӯ_sp0/;>Xqd`d56mE?Y] XɑɋG n}cgdOWXX+ o  `dn]Wmpɓ!%ȥj`g#0߸qKTTIJJփACC z$]nWj~Nf߹ \ @AFF\N߼y?0{ ffm[lx|l:<|puGFh$!!s&66 5EIENDB`PK NkN1N!nuvola/22x22/actions/filesave.pngUT dbnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<0IDATxb?-@ ԲX8?^ D0yP.3?Y}găT# ;$t|d0Wdg3,f L @Ha뙗 (2XpV`| \~3rr07#ß `1H3r 4 /\g`cc2Fa`o"j+Ո,G˙9 OuB27SalrA o|  ;`^;H q=HT,@/13@pAB LLfC"?T jDЀ $!Aƈ*p1J@.f@048L6 ?  PXp,@z`B1b_ IN& PW ( AF AiLCL0<*v3yLo+204 0C7  ߀1376NfhghH6bV`rza^}N.qe,Ha @Lj"R<,Xeΰ_VFHNQHA@ F0}?÷ Y>b/0A\З,. T@p~ Lk@+,4_HaGr1@?ַd]]`adbx r/j: @6~fxC7_3} c_ "+?21]#w`b _f~`2,Pܬ؁ďyx9^@7 qm?W7ӫL 0 ߹3|*󋉁7]80 iU@|IENDB`PK LkN1$8~#nuvola/22x22/actions/filesaveas.pngUT `bnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<OIDATxb?02 fa`jX3Hlwxt?L ) ~52?+ M?eKmEI`=1 20! c3331|x!J[5?2<7XB$$M Pl 1R@`ma buOH0| 2+_2j 44 Rb{DrnvKvE]//cp Dut3P7 g2BD^ڳA{5C6}@M{Y&7[D4VDcB I L@ 5d p~3 3]Æ N$ n.E A4d> 3$LA>f`sÿ 1 i-?_cXUY ='gB1 @9\i;( of3{:~+?jɫ2@pA fcaD$- _k`00Ld`xn`ꑛĠei4. a ?~ ̄ _dxO;051í xj4M?{a (!'c\093ñz`=fsS_D]3||&b0(U ?1w5w ~@Cs=fxaJǂ }gSag`gb䂘7 _a)!W r10q2fxp;!?js;YXX>eg" e_, gxpgÛgׁf೛Ϡoh R l CLBv1@ P: `|<íl N0ֱ1feÇ!F_T zr c#í ŕ27d?`&@wHr!d(7\y~|!(03@`3o C߸!L~b`fXfcveaF"`~vρØ  }} 0w+?7ov3 +$ ?ex ]+nhcVQ@p:GIENDB`PK t91K9h;;nuvola/22x22/actions/fill.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 `ddDfpvvA>?p-1'++>vË/~ R@ MPAP\Ąn_$jhh0466^}7 7W^- 0B?kxyyW2|ҥK ==={j<mcc^%AI"ii}mmmVVV`233 1dc@JP1P2M[[{J~~>ϟ>>AioAׯ/>}tәqnƨ('Nq㉲10X#` `X3Sûw,,, @"`QF۷oſ13< t." ;666pX?~ѣG`@ @@:@]yV> 2Ȫ1  yd-//X_~ =~xP+(aaϟowҥ9}U2ȅXG@ŹAt 77nP:`@G5o߾/Sݻ""׮,\7o)d6 1@d(e @`C<````~GV[2ei;;;AA*gW sy>voˍ{*wW qa>|uVPd`fH{qa +lPfde8w\`Ã2b͚5߯_LMN~0C0_ Pndfg:v0!P?f(`r; . -? @&E>|6(s8 +Ѕ ;wwZr\@`@@<hC9 T̯|ԩp3LہT{y,yXKGAȈ xWVVfy@#> @,V"+ G Xmr*r vgbUe `!:uxIENDB`PK t91-nuvola/22x22/actions/find.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<bIDATxb?-@&& ~ VΜl`8;"@ N/>'/?݄I{f &d[y j?Fbp10Wf0@1U|hd@L2=  >{ٳ ϟ=gPQUc74fET/B@c e'b; 61h)J0X93 17^b!dEn1Ū3Be%ݖe8z{m@13왳 ?J4 e` t8?U3|# _D}APBA ᱯ3<{ b & '`bndOx9^xbB5-I 3ʙaĘ#锛`o?1pAؒ4@ L. [A r +^{5\A) +4h+f, :: Wld8wیAZ\ 7netf)O208 @(P[ȜA\Z obf fJn_3.b0@n((AHPD/ B &t Efqp1pp anؙ&}1^2 53ˇ8Y)ŠAsÚ= !ܣt} }!/3YUӟ?3mm@ʔD11'u(s ׋  3lLIENDB`PK kN1Bq!!nuvola/22x22/actions/finish.pngUT ZcnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 `4? ?#Bߟ~f`cg$/g  ?B?E9Ʈ,b,Ɉӡ@b￿xzl6ax,`A f &#!?z7P?1x:)0ƐW`j%c!Ĉ1ß{`:?-h׌`v?8B?0L`4 Ҟ!-!`28H3sF2LUTSvğooLWcǐ $p+ W/J_P 6?hىe=PG(wF2 r2NPxw?:xk~aO<I,@CA#  #8 o30o3aZ`bA/1 ,L>qu3?=-ǿoty XPMQВTs^뗷?n?g ~b#<Y`ŘIENDB`PK t91Dqqnuvola/22x22/actions/folder.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  O[w#.EWNbR ^n[sv`?Jq)P01 @,0νO{_]Ex, m0Lzon/6(##20h1|t+̱ 6{/a(@p|{=c@ Ksb<~<Cm*>74e>c\z)au| ATA. (zog|9whZ _@Bo_ wf0`Ӳ{ d0@ ?X. 2ha??3}3X+?73а?bo, ̰@pjaFHa?, r=ȇв @ODP b⯿ AZY@(. uot  A.yP|  8 ߀/Hl04|yX̨_2 T5ãEʇ0?}efW@?JtWj!ʰw"+0_=p -*l Vb2`PJ*3f~ LPA LA.r5H: hV5G$IENDB`PK t91 ;((#nuvola/22x22/actions/folder_new.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  O[w#.EWNbR ^n[sv`?Jq)P01 @,0νO{_]Ex, m0Lzon/6(##20h1|t+̱ 6{/a(@p|{=c@ Ksb<~<Cm*>74e>c\z)au| ATA. (zog|9w`2ð)6q8,Y9M ?@k`e/Ah367S~1HgUcX0m50đ] ? l2cbF*P 7f gAƁ6FL Ͻ`x~_/7÷dg2إ?a6kþ% b ,\ H ^VO3,97 _?|dp[TYß/_aip 'ÃYXy@2|70E; :f(y`3= ̜ Vΰ6VKW>bb`hW+Ђhe@tq\i72yU>c`p$o b'?/bvp 7<( XDTCbX~3 *B.;00r~e Ë{7xe88Y1?3r˔Us z!`u*@w Mph/R ^~d>}ef^c@r8@e`,ki9÷/ b &Ä Wm^=0j%x' Z`/o e(3;ìYT9Ywl'rf˾xoO0`o XEܿr&[Vߺպ/:Ep2gbx_/~.\P,9P 84@:|[mVBb@:X ##(p1ԋ ZZP=?A^MpIIENDB`PK kN1Tq nuvola/22x22/actions/forward.pngUT TcnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb?-@11 h<_@PqF ?<16÷? L@7HbF& Ō@__~[ƅhrVZ;scx ,ψ=(Nœ 7{(w]|Rc ?3_J uD/avd9t}.a?@0|$Yg3H133YJspc7$@pE8ӓXy#@GF0R~1}İ&+C8c  {/]t<00<@9#4yX|Č cxF3plS.%=8tL:?)Шo n߿~ɰ;֍/؁ـ'728Pi0yÏ>hT<bB;P~ы/ ^~'@;Ó7?~O~0p1bx?CaW? M``VaYgAloPw7 udm{%EhRG@(` `21,R01"}A?C)<CyEwޞ@pA12?0#AÄA[ޕA[COg ,0n \Ǡ"!Dbbg`c;r=<gm>ndĿf|c4]  EA O~gǰy͍ n@b@*9s X \ '!DAQa햇 Gݹnk&01C-5 `_Fnf`)!W _}׿,5 b-+`Fh !1fE14vs@KY~}Zrr-,Er0\[ߙo v%^H: hVY mIENDB`PK ːN1jj#nuvola/22x22/actions/frameprint.pngUT nAhPQux PNG  IHDRĴl;tEXtSoftwareAdobe ImageReadyqe< IDATxOh\E?3o}6ۍ45L^((B=P AlP/={`!GГJZ$)j'4UM#"7t|*nko@\u85E: CXc5nUÝ!hH-> -!?cJe\!#i4"-La h-@>-II">][W0+34>b!asBo_60`bf'Е6 L ~10|Ě䟪;d gg +n[o0j00|Kٓ -dk@!qe  33^ZV.&f?_0xAC!9KQ]@ADm݆ѥ3: S3|;?~1_/1z ( /-'߾``bz2 #wWapĹF0la>`aho` ted'W;>|l`kƳϯ_g`c@ eu(]npz1c 21x{AA!PϏ҆ԭk_@r7o0Q4? :0\t8_A.q1pʥŰd/'G ˧_oWT>kob6a&I &f&P#ؒ?1L; JY:Le}ro^o}z @,|sv6'w_m ;/h~ L ` 8xT>ZG2;#x^1p  Fo{hOp.^Pưی@eo?-5na'0/F`,ؾd@BB1xTt30Qc 7H0qIZRѐ9<#+.V9TqCvB$TA +xvEɊv5N0Wnugl6H+;CO՟s6z@?݋O/L`߀2G [@ ~6>wO lL j0ص0 >?tdY@Cr߀9Ƿ ?~~} O,, 4jË7__1p3X 202 :hv%p 4AāAG@@GT3cbb JCP8Ԫ~1&?d!/Z: )+{ !jo(-(@B/(͙Xf*o312cto^> m0V)@۞FzIENDB`PK x91>nuvola/22x22/actions/help.pngUT TUAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxb?-@11 ȣZd0B %Ȉ I/8 V301gϻ6 aA; b?r\B=.AJ"\`{``?ó_}p>/a`b967#e`xF돁ʦ$Y5y3ܹ ~gA@A\A=oid0I*j)o,pedxG|$N^Ȱ6.~, :N<~_Y;!gaJqug$: 02|K@)cu!}(P//_1xÁSLb:w gj2/ p0İK+=qyQF0|/ B:@a<(XxEYȯ? ?~e`cX;0lx}EY> ¯^0 p0'b1 ag8f_X921<}w5^ Oa~N!ayw17?_3 _`7o"t%]zpO^Gfv&v!y7 _g0ea5 vXWqo0;is`@}c`P/?D@p|Rf+? B >epW+* f9\3kP@0~_8A (50Og@K|ON7@hfg`\D/6Nn>3y~1<BI// (m/0;C!ߋ1V(d(0888_u+`J]Ch1pq]O3~S ٻߠ>b`p0-"?޼7YĂZ:3qf0lP51zK B f``)0x.yޟ7'5B6 ŦDH?ksOrbd÷A?3|~/b l\] 6 s20C _t0_3{ K1@yH: hV?,0IENDB`PK FkN1GG nuvola/22x22/actions/history.pngUT TbnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd0X,L ln6-Ƙ.%--+Ͽ>{ngn0@} :wh7 _fF Ï3x hp$P1w1+3( ̱/#^WB_ _3pe^xo e@;s3 3a/^==/8bf9h?5)qe6\ 6ad`+ ~ & _?`س$:ύ+/b߿<bf yEtNW?dp4e'5u-`ccd`eegfx? WgvUara׏302 F ,+r`d}&🉝L@@Zg`a {K1an1!< Oc}👍2N6vvVX88畽 "  3#{YL )?yp]AA g n^gАc8pG[[A;[kulF 7oeص8DL01b?#/ =a. "@a5u9D?1؛#AVVACCիw ǎg ˍ /_fxp#cG3ARR <~d\#baG 'OdPT077%p5G.0\ | ̯3@^^AQQ 7o\b×2   ÷1%,Ą6-]pSBACO @߁)(t13o ĸKJ089)3|/0S¯_ 6mb6bpVRf`fodCAjz} _X0 X|eWO| LMX;r5춶XP$N:ݟ#Vl3zCDa@23e`y ïw\E :pH1pH1<8,Sk^9Aƕwq;7~ݾX{뿀eߐlO`1H0ܸ78yYjf$9 $< ǯft>~!`X#T]~3WO)ǿ d&@12(z,\\R|8?ex-`ex p.S/!1¢ v22,_el@! f y~u bede o _q0zۏ?:'  `4X?^BUX2/Q`TNe`{X E2 5׈wIENDB`PKDkN1#&nuvola/22x22/actions/history_clear.pngUT PbnAnPQux %U{Ty+IϬtE)%ZM=F{4[,W ]QV;:LXmeE[aH<~˜Ϲ9|>ޛg׶ŋ\Gy^;RGȞ[_o {$oJޗ|ZpB„GhH  ec¼tgbcY?/e9L QH8IIGj LąJgO_y~e!8A[hQg<\UXڸh=Ӵہx:jȖMJjü>V"E+R[&M䄈S,'DVV!X<[8e1qŎuIw.,'ɟ[3$ʐ+>.W1ȾkhXEF@NawQ3EhLTm+Muy>72Y&᠙US|5`%"}\%r(r8tCŲ"E-d:zl`Xgs)-˄+$.I]];93`@6o1]L ,m}vw(67ΞapŔ6c Ao\B{QUR__n av!\-Gpx2NZAY}P8DÓ .cH$%r c_Gbى%m#;_Qk<8:|=Ii=#gWU}QLm+BYݍ1V0qL:u TY0 Eq4osNiBV,_NW{ Vk4T n7)7/=xܪfpz!<zOޟ 8a>EŀHto͍~]/`6 _OJt|/q^fb`e0kkȓPSRP$ڦ+ ۟f =$uM%}pys4!s[-FZN'`| 0ʊg֩^^qhց~>'/fXGTkb8dg5׮Vе \G POW7a o#h 丈!{V* ?upcaq0>n__Pz<lNK +*ibT@d {=(Woaoi6̾1UT$D+˪8ɚ.8X^c'kf:=%JvOeExly2=~cVf!Yû\NHn/a[Qsr bW;<UtG i2k]!jZqLrsuZ<8U(pJ/:F l`XG~@u]j+rgYϺݼ=WRTwre|2>k y2ڄfBHZԅep{a AGaY ؾƯhI= Cv&Kr5Rz۟4?m%=u5 f2!t?7{@D>8mZY=!vk9__ z);|kD9Tu{n8~<$M zi۴sG+ktimբ咫PUu{qJ:VpjK|{c-'M"٢I ^2`jlE$Q?G:?VZü݄7g[\qsN,DNq` ?H?Dlٵ~?PK aL>{+u!!'nuvola/22x22/actions/history_resume.pngUT 6VMiPQux PNG  IHDRĴl;sRGBbKGD pHYs  tIME 0Z'IDAT8˅[LW0-GK )iBdm2unS+m&uӤi{*{J Z*i4$A&ipD0wl { M4-юt^t~sx K?ڎV uēBj>=O|K=0Aެ@%bH$giWhUon78&82~BD"+_'٠ċ::94Ē4\'Q^^k܎sam~ZUuӵ.O38D{Djw|L! (#*%үkOS ds$ |nx4&SDi!׮M M}}./p3Q<]l} yw@UWq⬈}m?{}Nʏ`Hz"1,@QL-``4w?AA[к3IENDB`PK L>%nuvola/22x22/actions/history_stop.pngUT \VMlPQux PNG  IHDRĴl;sRGBbKGD pHYs  tIME 6U-7IDAT8ˍoT?7xo61$NRPH@y0H"EJ/ڪO}%HQ 5&1)`/ ^Y_9#R:hF37k'Х7CA*mEPKb~պ7eN:6qiC~h;WO@UH,a?.Oe#k\j/=Y/v=cabxl^%^WN(QYNLP:17}K<0x=Io:Yʃm/H"`NݡTduTroPWW(eN2sI.tKjŠQUn*:80J%3g8g'-.fH"Z۸PfKS4%1T+ sصxyceσAXd j䂛3w,E fԌk~?޽eydW7^٪WQojyVeq šbnx:D۷X1 ATvd_ws\jpC,bȣiJߏ"ű]}.XOf|w}rwּߕV,Fߵ>\E\nӴxbJ KGe 7QUSSO]Wgvs׻XW]qm`Mјͭ_v jGVvܰwzO{.8[y,pZ V*ScZ$X&}Rx0EKrhap \Le~dB0xIENDB`PK h8 $nuvola/22x22/actions/historymenu.pngUT CHlPQux PNG  IHDRĴl;sRGBbKGD pHYs  tIMErsIDAT8uo\W}̙_KN&iB(]l.DVR}A򄄪҇""5"4!.qW!vƎ>}xp\O?}KkR>`x*a~QY ninq~e}s 삯p<Ph[ELJ@,~\w/̾23Ɔʚ{M>5@vas4@Y8q}ai,W|t2σV^O;2U0Wr=%pp/P4uwos>ΝKgb:>p|Y7FKtѶa|$SuI$j8ţ{*ـ#ݻKwB8߂~*1CoO=f !磔J0t~sk8o|hSGbo4mo|.L_if5I4b"h/[)utzso> }G6/$=Lsn+ο%JԫZE-X$U8pvi?iԲf5N6ڸi cq^^xx5C܈&B9mR5<ɩ3cρ=t}_b(LdD)ef].Z)m^8)<<Ԋ)}PWXEW3̯O*2:w+ oH)QJmǏw4ގFB|;1\"jp.i0J?2Pxygn.}XM`Wa ='\[ w0oټ>JY)榋"a}L5/g}5ܿWMF{ mq<\wZ&y;A_bb $;7K?uު ;SؕbznuM"S,4錎^dmuُ˒[^{ *jhSfʓt|,RXB7n36vÐEʥwbhWͺw\Bny$(Ft_DV0t\Vǡ:UIP7g{kX+o{?6XH0" ".ʤd".B(wa]m_G2Ƈ.QIENDB`PK CkN1F!nuvola/22x22/actions/identity.pngUT NbnAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @,tu4YX qF  @A Va4PW ߟ>} G߯oI߾@:p/ \ Lߟ1xM712201 310330&3P?_@~|``[ _30331|d@ bFv~&OO1ܸ6>a'0,Z?;(8XA DЋ@jM7w07i6C08A J3inN3: . 3 ZŀeNE * 7d`#3,L4# x Pxݧ gQbab`0Uc0E03ҕ fOTK!V h0@ax?ýL _^>a`xE3>1 C;ן+8ؙ?}S   fd37./ ?1x /3 +4(10?1H23fX~z`,ߵ+egT7c zb>?З w`v ba`bd y2ax÷ ,AD9iZ47@  X}`Xgf ,XLv0FxZ@13#jYy @43 hf0@ɠrIENDB`PK SlN1Dnuvola/22x22/actions/irkick.pngUT NdnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxbf3LCq8ٙX (Hfddda L@1 @) ;n5}dP@  tct=''*YY: ?߿Z@MP}p h߿xq?BF ^ 3 jhI4|6fvv@=:J~|/ hhԗ/_T^z5z u4dPzJJJ^#!!Qbā@5 ϟ?/}40Ν;@@4@1pw]\ @W.edb1Ff }:&?nɓ'Iq: X@Vsmz89w^?;UH:Tkp}-KfX]! 4쀂%0=G>^6nd_ f:wwr )310"4nSO Rہ6- sWVVV>vN΢_1=z?#C-+KW@G}>vݻ @5@BBB@r1% @ ٹ]-))yfeg?ae`Mԑebc`2=?@5l < 4Kh} @L@PPH?R,,٘@Ѫa#ջ ?30p00Rj(iI^P@,@A9 XXjpOV/>1O2P l0PH=q` A ,?@AYuxMM00T.d`x0h* ~ d]\)ezSd<>  K䥏?ZT8#RH''AHQ3fɽTJMeƅ.@35PU<Ōcz ̞_`r ۷/2|&1Nuy`؊1P:Џ/f@C}Аe@ox]{(Ç=޽ eO0|Lh=bx} +7o߆K^@%@3((8#ŠR*$o߽zrƷׯs,Ѕ ÁB? _fx7 = @t5(= PāfsӧOO^>,`PWfcc1/ (  켼_>~k4#(2 %%`u#Ç^|۝;━KZ\\HXXҵ(H@_z7hF,>ba@o3= N@CTyXb%!(r̙3 @iW@0?}r;Ts.  *3srbcZP+ſ33_c_ODX] 3 adem`Iaɹh}5ХcbRׯ{~GeןWm% u4 ETEװJH33H ?ֱ u~#χgKxY\ЅYed0rpf#H3? c?'Iw: XC4RV9@3.qr`ab*y0%AHHݿ~:Tk},,KfX}= XF1nezE@XYw@Zg7bg`cB @ ƿ@᷐py'+no(32 fʹ 3 % *m|L:rr Ʀ *20<4hF PNLV@G=\ܿ9Ihտ?Z{50؄rr4_>b`H tO ,'2)5]h 1k٭f].f &S`&%lӧ pŋ /߽cf`P8)Re T{ϻ>&&&O )@1%#@CwBف9 O>~dd`0(o߼a۳g w\ **,# qP t^ ~'E-2/>YRqI I +Pq% @z'PPo> @ry<6[L߀.v,aa_|`9 4`י3 jW@0 y˗ e 22I2K,A _ 0CԂ  R5]_2{j+;xT+2|&9`*Q|HT0v*'EIENDB`PKWlN1$'"nuvola/22x22/actions/irkickoff.pngUT VdnAmPQux  sb``p b $lɱR,鎾 Ov%K\#JJRSR10}3Ť}=K]y^|˗f`ƍnn3g0pp10,/#$~g) - ܖO0S(?ȣ@) Od`gg'߿0Bb( _g:wq*8 vF_W0u@r >p%ee%?@C~Fw@F <7 2ŪSi_l*a`ex){ \ ?`x 7N2XX3HHH0 ?>2 ȥH1P $?MaχW 76-geݗ\  @*S3U <{h"{ Rg FZU0"53QIENDB`PK )kN1lإ%nuvola/22x22/actions/kaboodleloop.pngUT bnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0 |&F ٌ@6baa``f[0{/4M%/G`f{q*8ނn743 ͸q\, 9X}\ hp?o.opݷ ,>@0QZ f˨JYXx22 ߿0XL_/gj2]f='w^e#XS 31~x 037lu@1aTE &+g5}|0ppK. @o&B ?.(v X5 pg|ˡ`'B*]XPbIENDB`PK'kN1ɨ?nuvola/22x22/actions/kalarm.pngUT bnAjPQux %UkPްqI`;TPD@PXlx$LB*@E*LE"Iz0ER^|{<po  ZUi4]xƙsg'3LQLAF/s'@%1Q$>,+N@JR7V뽹gfX$:)fPeV|bG0^/j$?/fsWfM;)vu''v̚d+J+axc#`\yh

      &79 a$y{'Kaӗ(`wvl,EԙffM8oXuHkq | 鮉Ck)%Iv3FfhWJ ƑSp9'߹M}^-7m).(p9!g}̸k՗dZ, & >2}S%!=+CPO,S K7%:KcEY){/M}$k3+Q^bdj 9_h"z:Bj읅Kg <$7:*L8\f1k ;uǎˀvq`$4g-"J/Tp: akj_Q 3_ ^,W2ν1+P%@ 4Pdf|WL j8, fW\?+'ÿ>?``kß{cb'DAKY_0=ir 1RmSt?`p 0/~Ioz < \ ^0lacb p$;Q_ZqL8Ù;a`е~~gs _ ~3Hh33`ɟݧ231=@`~Wtnz T~|İy,}fNnv6_>1|PMb`iʠ.)EIG bC@A~`we gfxu6Ýw~ _~3pT㻄l_FF>l0`fe21*10]v<n0 Yq0;wy-gp =k 0MM׮1l_a7sq%< -p( -Y270 #G 3+|#Xu1{a [|%+9c} ]< g`}[#? 0R3g`Wۗ2ff`J0 ,b3p00l8B< 2rdxAXӮ0ÞcT D. qa))+@ܿϏ^voP BMV1VwdRp=-p40w d`З4/ ޘ;Е ^@`.(C+7Ė2^3D}\ {l5C^feyf g`zwf pFm x`dd``ߐ/^F ,@XO_b  \,n&Ll ?{ɳE Z @ ao÷ ~32| f@ -9~7ew@ gfgcH0a4b,+fuurP`'W~3||䣥0yo?=x_ @%eBt230YU1d/p _c=7׀8f@! xٽ\zbv ' , K~۩%OPS4o?1;А0`P1~`][0h5``04Wa`RRc t_ c?&e` h ;l= 0AG :j * o1|o_̼’AA\ AY,  Ǐpte @HngE`F`aۛ3]- ?GKJ'dP@t-7 < &-JK`d&??#+4@!\*dٺ6O+ yX Y90eAZ/},yفAx 8  U2 0|䋚DbU @4+f 0I +IENDB`PK t91ۨnuvola/22x22/actions/kgpg.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?-@FF9=MCr0s32{߾:s})%I?W/3nNVN |_`9l0޾ ڱ``2+_.t v~r'ss=~kקo93C4'.  Rr@ fdb4TQd47KB4O1usK>00|cm/^jmQ>6XNA@ PԠ*,)+a4dSd`/ڟ ?0}U{YXc`1@ ePa/W[ `CNy@+P- Қj ) T"޼cxt6P" 40`dbߞ  t{@?~3APMe(Io`]v7 7~ePdO`o|ARJh000 40 ?d 2u>21mނ $ _^cJ|}[?>2o >dx27/720f(<$7Ê } __r؀ >f` .y.'bd 6 X psWO~ک2f;hN,qCB^W l ?~dxÓ +D}Rq,0 @,Hyen  p7YhFoS̟ 2\ݻA3y $9gP\kbA<xư0cf爋*32hJ3xy1cPcdUg`ac`faOad2 ? ng"_40?08PoV E.uYĂ\"p2hHk] JA?>Sw`f&2H} ?<߀?" ,bA Fi> ꅿ Yh(y; ןf`gG`𗉁 a bPq+F``dafY ~\u/2{_,`^sA PTLgI @ys լރO O ,n0&7%e` )/>00|cm/^jmQ>6XNA@ PԠ*,)+a4dSd`/ڟ ?0}U{YXc`1@ ePa/W[ `CNy@+P- Қj ) T"޼cxt6P" 40`dbߞ  t{@?~3APMe(Io`]v7 7~ePdO`o|ARJh000 40 ?d 2u>21mނ $ _^cJ|}[?>2o >dx27/720f(<$7Ê } __r؀ >f` .y.'bd 6 X psWO~ک2f;hN,qCB^W l ?~dxÓ +D}Rq,0 @,Hyen  p7YhFoS̟ 2\ݻA3y $9gP\kbA<xư0cf爋*32hJ3xy1cPcdUg`ac`faOad2 ? ng"_40?08PoV E.uYĂ\"p2hHk] JA?>Sw`f&2H} ?<߀?" ,bA Fi> ꅿ Yh(y; ןf`gG`𗉁 a bPq+F``dafY ~\u/2{_,`^sA PTLgI @ys լރO O ,n0&7%e` )/>߼PݩnlpD!a/ > g?{v?>}.^rrϟ2v̎ YP`bWiqWqg30ccJӎϟC/Ą/B)7|U;0b˸8ŝE& S xB P_-+X0W@L ^@@j0!a˻_].[21tŅ30xF:x8rPL ;8 % 88cR/| X-A.^āPխ 3}_pY .5 &ߐ0gcdhcJ߃"~ iU[SzIENDB`PK t91e$nuvola/22x22/actions/kgpg_export.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<[IDATxb?-@1"s _r=@ĬP5̅W}w*i] ~Aq1б3T 7`U @5@5.jm-$~Vj D-P:ʨF1mqdAWCiPL@P2 j(fX\dĎ?;W{?Te|܄38WDhTPV/(,4OFX-c`Y (h;@U2Ȳ02kr2 h14ƕ?$msW_@ ~ 0 n~ /4i0e+;s(}g`2g47~QgVC8k10lƇWVfNyN- A Њ/>?a` Lym)=D-DU4$*b7oY'6i_] @6/>,h(1TvJ'Ͻb~@@ eбWS̖__|`sƌ0qF+77 ?1 B  Y)IzLb*x-(h{J, AQʓ^}hp-Pxj0@1h=.#4ryL OCS19wjS30$Gyt5ɬ򌿁r0@R"7$+t+0þ LVuK%40@h0@1CG-i BC%10=y3Ɵlk5*Ԥ}f`Ћ2[¹)cPڃg". o{ kng 9V@1A%@9~6|{THއā Л@ n33ac8>aQ%>/[PP<] FhŠ\Y!v¯?p2Ȉ3K01H/,001Ȉ3:)0+g1?rl.݁Xj(܀[ C`JK CR"`򎍁IV87_Oz 8wB Zjx Úe2|X/O~bpd#&#^ob`P2R,Ei`fva0>޽b؜(_ , ?R @u38Aj &h `gd0dhۏ ?~eXîE FZU{ IENDB`PK t91G[00!nuvola/22x22/actions/kgpg_gen.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  AFHDC@څvMK:ҕFڮ?oz{t=m(@">-cbafxo>9ڡzꭄ8^W0s XWLk_?K;ǃz鎻/]Y(@t>JIENDB`PK t91ۨ&nuvola/22x22/actions/kgpg_identity.pngUT gUAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?-@FF9=MCr0s32{߾:s})%I?W/3nNVN |_`9l0޾ ڱ``2+_.t v~r'ss=~kקo93C4'.  Rr@ fdb4TQd47KB4O1usK>00|cm/^jmQ>6XNA@ PԠ*,)+a4dSd`/ڟ ?0}U{YXc`1@ ePa/W[ `CNy@+P- Қj ) T"޼cxt6P" 40`dbߞ  t{@?~3APMe(Io`]v7 7~ePdO`o|ARJh000 40 ?d 2u>21mނ $ _^cJ|}[?>2o >dx27/720f(<$7Ê } __r؀ >f` .y.'bd 6 X psWO~ک2f;hN,qCB^W l ?~dxÓ +D}Rq,0 @,Hyen  p7YhFoS̟ 2\ݻA3y $9gP\kbA<xư0cf爋*32hJ3xy1cPcdUg`ac`faOad2 ? ng"_40?08PoV E.uYĂ\"p2hHk] JA?>Sw`f&2H} ?<߀?" ,bA Fi> ꅿ Yh(y; ןf`gG`𗉁 a bPq+F``dafY ~\u/2{_,`^sA PTLgI @ys լރO O ,n0&7%e` )/>1bO+o1xtở fd` "0IN{NJL6M?kg/ZRŲ< g>fxóϟ9U8?ϳ//I_h0e+;s(}g`2g47~QwV秞SSP0b L_]ӣ=bօDit>\t屆A.AnYQMY3C.KI\,*  ~[_&m 5 ^#c9l:ϲWAsI!ߥn0a%W/?fgÅuWo~~ޙ(,EVu~R=s G;J6ڞRv&3EFl1;cz=``{NREH\PJ}g0ee3L`E??b.éo7C8 E] < `)9$;^c.mC (VY~2 B l&N|z+?9neT^02 #!7y_l~ 6B8|OA@W69ώ?,c/\ `@`!ɓao* P g p11}#̰ۧ=2 9j0@1A-\?CC[$Ë Ih(P0 EExEfeX~ɻ 8ނa`blP e*B _2dgp`KcfUFY`ZacgxuRan[W<  @tA0"`JXbe0$e/bI~y$+Earƛ'=Tag`x1h0@@Z|B!8|'DYsCL+32f`&#^obPR ava0>޽b؜(_ , ?R @u38Aj ; *x24Z>|bx#_˦]A@L |IENDB`PK t91Gqx"nuvola/22x22/actions/kgpg_info.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<0IDATxb?-@FFy=-CB0r/oY|̱ש134a۶m`>@ ǗAN+?ß/``:CQбz IEVf&A|, %d30 :o_1(29:u 0PBBg`bbb< 4 @L B^_ f +>P)6aq ocf`eeg`fbf6 fe`a&^^^!!!bq1eFH}e)9b^EmqN30|Jf0@]-Sk!X2#Ы?ad߿zl7 7~ V {qe5?&FPxӌHl! F}p Ĭ7~˟/!Yy?~]L91?ٰ g\ L?0vCӛ' DB\pi; 0 ?i#( Ɇ˫3\h0H# 30lX8؁]ka @LHg S3$;_~4aN @LD1L P Ey Zᬨb, !) +#0xx9ò?6@NN`,  320E~exÏW|.a`mرca#H"\b`QaXV<=9g~܍3dyy@ 4b0Sa~&/' iUT(/-IENDB`PK t91{mTT"nuvola/22x22/actions/kgpg_key1.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @43 hf0@ FF a%'୪+߿O9~`"`J |NNѺ6&R R`%_TzeԆ#}Ll_j\3a~q 699K>CS83DK@20pK?1 /C+ s^T*@ ~pۛk[8ddT81׿?1#aJ Åj/!Msn2’#(2bls!~F;y kqo0z ׿dXt) I  FZD hf0@`D3 COXL_IENDB`PK t91fKXX"nuvola/22x22/actions/kgpg_key2.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  aȠ00mUґwQf_? `_ ^ ^*"魗^8 35z2hς?'b6?Eaj+.3pw :۾[=}IV32=; 3 w%+u%I;w2\a; &˪y[ 3_yMgo< >aJR-}83Xe:?ׯ?893}|4Ȑ=t *+38Yp2310332y\$$>|p;7<(eg 0Șd`}5 ƲF@[BBAVV j8 01|ڵ G^ç*6vg k2fec=@! ++K6K ...KYxh!P\߁}z `X, °h@Øh˟?@wϟ~;Տ?wprr5#y6çO?aa+-""cfg1@K' h:?.GPhׯ_S~t]oy&Ë~ Č rr |83w^s,,4PX0@9D1 So񿚉f0?|t xO `d+w 3\rOի6}˷ ~ V@f5@`z 5IENDB`PK t91`PP"nuvola/22x22/actions/kgpg_key3.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@CFF \LJUQ[ʃ_WW_0|DKΝ _~jK~~_c   p!rmpp 33 ¿~ٚr)RRd'poG:(rA_0 V ƻw{Y׬+Wn0E01+p*,,,`C7 O>0<@CY`ϼ޽͠\\ dcc&p1bBVpUW3RpIwAHZx`%2߾}e8u \Y@L5(?EA{޿py` J7!-7.w9Ąz 0SW_|/nݺit@L 0|vFIENDB`PK t91Xq#nuvola/22x22/actions/kgpg_photo.pngUT gUAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 2⊆2C0*Dw޽n֭10`MMMx1J`Ygrf`Ξ=l@w` 0 ed`x#C>12dWb` \<C @,a76^={/@} & B >fx:'< ]~}``xt 0  o3``Ut/OK 2Vg`cgf`y*XY2s_~`b`? -fF P\ I0ag)h0`} ߾10 fd@Ă5q#蚯.p5oQEK L,X @LHa;8xXa|>>30-(\ 0(s11\\( S&NoɈpB `°s6^&U)962M@AQ> A|݇ c663 )F>8Pl8w-ǟ3~L ܼ  @>0zj@,-V퀸_2 WH4ALLlO|_'AoYYY@cff1\@ 8,r\ B <`t'5k|ٻw·ϟ] L!b oPRR << llL W66NN6Y_wyy 9P~~οϟׯue-LvϞ=`kl ?o~01hi)sȫ  \po߾Ul0 3۷o_>{͛7?67@հ1/_> ޾}1`r0|O l0#%VK]/`þ >accg Y2@> t6aaqqQp  ʯ n=z? +'  _?߽{LFǏ@ _ 0>05>}aDE` JI0@`>}kk>>k!SAA>ϟï_k %)P FZUMD hf0@(҈IENDB`PK t91l"nuvola/22x22/actions/kgpg_sign.pngUT gUAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<CIDATxb?-@1"s~W[ +ylRR3~硙  r /P+@ U׻zg,xB(@p]HV  >V%>PCAI:iN an~55 A2"4XCH ``f0@[@W=ݲۓ3@$$,. @WC@dYsg@w?}n.0B @ aQfW.N`2`AւuqXTx(˱3\?e͹M>8 Zb  Kgoo _by֑ ƽ/5{%afR@1DS=j9n?=37?Yk78 nyt2 "T.'Uw d`6(-@u&UL_~W^ڻ ,zd0@03 UH}fKFRJU@$}{~ED#0AvU ) .Ŗǘˢ_a?VŊ@߀[DۚN_Jڜ ^Ysh7``` Ϗ/0x?2+ vcxX?ub}4t}%6$^4 5Ç h0|u o88mCң<4 @LL6yzݯc+1e@q378ç" }ܿ h@ @6$٠%,LSO~!t['_~~}Lw\u20j &r @|Z@-`DOB`Pd5vlMr[ O \,v '}h΀TBT('(0T0G?0"`P#*SZΌIENDB`PK t91'R=aa"nuvola/22x22/actions/kgpg_term.pngUT gUAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@FF]M"02{_?q>}S۟?a`gff`FLLL(7o2 ^ qf`6+;_N.]vVCj)oߝG D38J n2̚qqşq10)2h[e`! v,AFIOWY(͠oqڿ]n0#jZ@`%DTe:YC-nFxAJU!(.:oF^ÿ_?Cr%b312\d*S g$X f_ cQ433 a (@ ~Ə Pômzy% _ K1La l 0nze`vQG' }ax ~w v.gu;Oge0W* Gg8{+w7~e8×  O}P1N/Q6&+YaHgy} Yhwfo0xO߿ Ps$ l ,d(f6̐G j, ?`9Xx{ >~ao Lrp29A_ɔAMa~KY `9NcIbbB$N+T \l ZBt0}b_0p3 e``VVpz1@ o.v iC˳oN^İft|h? Ĭ`O XAL 5LY#\,4 7 XKw?dfSB ʢ |JV /_ ƙ1 aЙ1፲K`e2^A43zLrAf r.bcdpQRa=?> M-5?f0_,@101<b ?Nob(0sbf:$/^ja .~ )"@!/i+0C{> u@1Ҫ20wBwcIENDB`PK t91 #nuvola/22x22/actions/kjobviewer.pngUT gUAkPQux PNG  IHDRĴl;bKGD pHYs  tIME;V4WIDATxڕMhTW$F&$56&#Ԗ@Pl7nV`wB7M)nZ ծ,jRfэBCtIL${Lhb/<8\s9`դR*,߯PȽpዡmdYr"P(xpgP|.z䛫|6B`,psa `z40X'?Tkcw60Ƭ4c,Ƙv]7hm~qe,h4Jv޽[pM kžC.K=y2҂1FHY/~?;'noJ$!ʚR:4&8K8 _ՙ'NL燆n߽r囏xϟOTӧqann^q(P xU|t"6ᴶul988==v}ۻC!ZYK4ڋ }b@[@J ϱx{Lf繈J@v2&X*0TgZm nfN4"tuD"noaaq68rq [345 6 wcWg@Ph1EZZc7PxFi^aO W Kr d23(IDATxՕKlTUfJv(-(P Q$YDhpF]h 4]хhb,:Lyݙ{sq122fIw?;B)ŭ-@<gllI" &` 0+"05%jױ ,K`-5t9pOjhh:|e"1,CX2,ê @ 4SGå;Wv~27 Ax|:x`ߜOh lV/&su)gUBi@X*^ɸ ?̾mXXn.AdC[!~6@p52b7%L}I>ּϮs@!Y,CoqdB)=B uY=1f:Ǡ)ʁL)hE(e@ ATIN|Hu{f|Jkg\Ƃ溏K)8TdkЃ#竸xMTf>ʟs> Pټh2#u%TE+e 4ڛB29W֤pz E =ȳ[a$㓹s0Pyef:|4|dŦÜ Mb"oϥ#PyIJ: +[Re_p(]1nIԎӹ<*t BMg%ѵVk{ti@yZ.ZEiZjx$P'"T'矨;y% vMt%)/ )(O"Jq=&xUjmJ=HV [8WFX$TI,'={poT|(P bс²>һmk!Y,*yP6**3`ۆ"\"B֩EM@ Xq [^kp"\={֛+Z'3W3YB2XrLq$ɓ۞߾]}" 7 P a77e ~10| OdxӧU\Ow*]Yd>g'N 17A Oׯ3|1aHN2f;×OW#; tJK_ً7@C t?V6V`bc``aaa!2ڌAMAZ   Fҍ@c`ga LV a L QF]=#W8Ti<'b`(,dwffnWZ!_m?at;rPů_}rKO)K#A3A7o~2\ ^gPP`g cb@DJ2xs<}nfl"J, | n,;aN%i7KHq3X=h8$z֭7Bs܇@21hi 0p~`P"9WƔ<bB;!,W\3İ@1>S&6+30B6?zX*5wA񓑁qNnb,"0<zS?&)h 010 `@C^f]{ g2<~ /<}vյ0bƵ,4O?3\ԉoϝ9}޽~u(sz @p~}b깇 \t͛gN||hЋ~Dj FX!+ *jIJJO~G/a`x| h]u0V)@k8KIENDB`PK t91]::#nuvola/22x22/actions/kmaillight.pngUT gUAnPQux PNG  IHDRĴl;bKGD pHYs  tIME  'GqIDATx͔]h\Ewd&5d,kLR%/@Ah_~ؗRMHT DS[?04٤n׽{fnۘ_̜fΜ3D͑ -fs4/^5tͣzDlzz9Ϸ,_n81_zaPSʹeq\|cǾKof855jrRsyQq̆z7 Ѵl7?z)qH]0$m>$ށ#GCᤵ-ARRTPhH$AB`o_2Ax HSO®7.^CA1Qk(Mx. "a=) 7I|@;!B!3;UTH)!`67 (j hi!6>س x]핗;;c%ڛԝ :%D#0!8.@j8(fq,We֨]J֏ } ɬfq1ϟ^z?`pž c`dQ6dff=Ȥ @L1?};ss%09s Xffdvׯ_I({`f} +3aER/[`]uImMvY_n ǎax%Ï?|}|ct2PLr`1 J,ߘ~0133\@,i)ȿ-yO!!60pq1% 98~ֿ@!V&f@,l4pb I o_߁s3xZ ~E?Y Xxᝈ0]+.  eЅ9իWttY˗ >'a%,߯ ?8(cA( >Vob\@۟h'$ 5wbh'Z>D\!@k[VCPJԙ54,:}!-szPf`r=nUy e `y2 ?lo8~cyL L,<.+|APT\CÀ_ ++N CAу bT7e~4edbadb{= 7@ ? ,V>xpVGǂSSSAJJ,a7;wnv/٥|/^1bp4PT;w^ff6H,')e9^2?r3MЃ-/jp '1g`f_kݻA aainn>sO3lټ~y}+~Iܷ@8 fWK .9pƕ/_>w&Euks_v)%3yV)@?~tIENDB`PK pN1-Ʉii)nuvola/22x22/actions/kmixdocked_error.pngUT ^jnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@˫2|AZZA@@߿ 9883QLLlĴĄ`B\Čp  |EEEfiiqZXr033ן?abb' ?f/B Pd߿TU>}W@KO1@] r߿> o_kw iii rFuueb 5d.Ы 222;Jd>~A\\ALLlF 4  ׯ?` Ë/~a0fgga?~{k8@, /񃃁5KLc>u:8́A ógANV( L,L 70u: X[ki鰉I2#Fر+ 4ƍl\Xa?$^?%))!99޽W@1y[f'е ?ffe+:0,w(e`w@g?o`8~Op;0#|a c`9s w9r2 !߿uѣhbuXI/04 lFvv;1H38LA'99l\_V}% __g N=۷o d9߿#O0勻 cLR?ϞcఱaH`rffnwnmeϿ O?K 2|=}7&fVb O^cf`fx4k208EDU\\EDM;k֛'?~X+$$"tg`6ߒ26Fv &dvI02:~_OC7:(^йg'r20 P{C F(/^>U{jMMS=AA.`+_2|}Aq-[ 0{h0@1c-1o5[2744cefxfݻ ** CF`*"ӻ|TbU1 gff>|xּ_I1lexÄo?=||삂 zL?|p &"[_6^g[ϞLEO>~dˇipѫWA/?}z @])A,Y)#=߿oN ?~Ӂ> ?nPR5IENDB`PK pN1?(nuvola/22x22/actions/kmixdocked_mute.pngUT JjnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1*3|AJJAZZ?`I LLL@6CHX(뗯_~߱j, n#ï_?={O ߿@X3LVPKPe;ѣgf[Ą`Bs3]bggt)" Ђ@lA@LxÉRATAMM߿~^AejHH W88 iv 1 ͦM/@a J%LL0㧁Ê"o>3V...9 @spp2{EAAqw{{ Çb 0Űb3 @ ]߿t͉{yxΝ 4 g|ׯ_] @,,T8TUUapy``&T`8dx"X OKbbRJAA6}73ܽ{ "Np/˗/& [`u,,\L 6vf8s 8#͛\hoBrÇ9)~rʵ/z:7n>d /×/|4 FF@>Пr76…O߿:P|ܾ @/링}cFz_ @L78C`xr]7o ~6dm~~cc]`ѧOrob3 X޾}=ivOaa ϟ?~&+ k!(, ,^2Ȩ yp<({0>^_f0@# *"rw\mbϠ && .A`\  Xy Ae$nȑٗ/i:A+++`6۷ G緃  hrԏh̟?i=~_'詵LL,w@`o].h@5 (݂07JL'##{ ( N iU\AIENDB`PK t91\x99nuvola/22x22/actions/kopete.pngUT gUAiPQux PNG  IHDRĴl;gAMA7bKGD pHYsHHFk>IDATxՕ{PU< P&!'Í0A0PL D4aA PF^h" XaxeewﷳKѨ?tg>w~{c=7(% Y$Ƅ :@, sD?X'6QwވgY(Yv2y[:C7ARSš3nf 1b1&`h6BbLآKeɎ;U5@O TD$Z{hhq_0c6Iui 7pk(/J8hXߌ6SZ Am*q3SŐ9$+mн'KrQ̟PVVü)z#"pdv\~mqs{M'|ʌ͗n|S $AG}}+~.10pAGfr0$ftwRi@#pi%xܛ`VG!7d/ɫIįGv\d.x{{#(8d%;֯Ȉ?L"!p7Do~\ \YGGՆ̋5{J(،s^hmsBTSGVVXZZav\LX'@'d'B>Jɩ ??#AH=S W>Q no>=]e7yPN5)Ɵ_7H]p(T&![MamK4| Png! 5U5DMjISPTEAY-F ^ ^MUTP26Q?y:qi'j:gg-EA>ͤ>R6 r9J%8:j5u9њ?OEŻpmU#`+fN}\ tPCj&nC1J Chڼd%}2 sp4903hr1pnï? M \َA_r1E~F;yb8 Y JߵhrX&`R8 92,p _3fo/_3|Ͽ ?_0̼p-v1wFf3ebb'8*Ccù`pq< G׮>6K30 1|z_F/Te}cpcCsvn'22x"dsÆOo2JfxO.f~ߌ ~aHgbgg@G31d  ܗ ny#-O1ee/3'3_F&~6~1@2K$ E~W3 gH e`@`;O}<%sW2J3zݧ ?01;Т+O2 G3ܻ^~ 7Ol`c ?b^nJ ~ ׯ~g7sO2\{p XX!@`9CÁxc=?'ݏ/]q=0bA?@f#*S+ILrIENDB`PK t91ٽH**$nuvola/22x22/actions/krec_record.pngUT gUAgPQux PNG  IHDRĴl;gAMA7bKGD pHYsHHFk>IDATxڝ]LWe_Z$5vӔ!hBObZLj Q#&mZb;@%X Z1 5" (?˞If|99n8N?2aN$x#qo. /"y< mrݺʌ{/=^nJbCI0i[+RRyjjdU\]]r8dCnIӡCC_͊h-ě zمm۞>llg254$S2Ÿ6&Qg43cbS>+B]/m**`fO{z7nHsX Ja״͗rr&M[?XJIL~q!SjZ_ׯ}H?oiؾ=vVWb<,J #7WO'CfQWT)hZ_׎,/gYYJ}jkBc݂k&)49T!N&Yҗ-;wE8 Je8ffGCrm n8/nef5Mjl2G+)@&&JʕһzV5&Tk2I-ۯmv{ky /KΤ$WGXoZ])F>ib-.mᥝX,gM4?w,Z.gt2 /oAg p ,We:}43sAq@6Uf mz0[0bal 0u"Bk{b=0syȣW0fJs=A!-[lw.;T\[6 !o<4';1d໏2/Z'r=#61ltEXtSoftwareAdobe ImageReadyqe<IENDB`PK pN1$&nuvola/22x22/actions/laptop_charge.pngUT HjnAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ă@_? ll }gsAi@=b"$812ѥٖ02$@ ~ߏ , t㢆#ÒL @a``bf`tao0 @ GMM넴#+W?ݯO^͟?r7Pbb`3f``pyn5ţK@o0'jkik GHAHHYX۷R/^>e`G/%#+61 XG%u98 ih3 D(L>3p~U'*7/^ar֛ ^0fo1x~b_2]M@H&!~n_4(h_`4qCRA\@AUMἒ5h)?  }-@,_aP/ H`fax@Àbg`ŏ C@hc ySSfﷵ X}Kf&o@MbX1<Ý{@}78.-pG30􃁙f8n8}Y 7 :/8fгZ ߘ& !`Vğ1\a>? /I#>o )k?ϒHů `Zr„c +o[Ƽð| C!?ϱ[șL÷ /0Rde`?-[ <}SҀ 'w704gav[o_aRnLE7v10t4b2 d` *$& #`3|+ 1A 50 czæc}5 .n;ͯs)0{AL_ ~`x4  V3Θv3\<(ĔxXcx+/.Wo_0ref pu LL  3~_Lb*o _t>cbOޟpW/3 4 -7N30```92#_^e`F,O(fF2A)`F, 2/P~``dajbD #à#$/` #:3ALb 1YL}~Dq1@1j3 UA!@5<@9,FfL /^ρj99$yy9>?10 bxw0޾Qo@ŌN GY62pq383.a3c:o8Xej8q"SJR>)yĄp<#Z𙁅 09}gP`  fpǠjc㭜 L `bc㇙@,! f$+0|cf(a=] M457 D%JWגk$4_-To'S߻?qcee o޽@(] e~5/rq@Ŭ@W~G01=~7o\\#*SՒYIENDB`PK pN1[ٔ(nuvola/22x22/actions/laptop_nocharge.pngUT BjnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ dؗ/),$&&$ŋ^ͫ?/eڊbŒvv&@!Fw>12W^|vıc_vbD'C^EE)ǯ10]>3~ׯ jj /^bX`Cvr @.bbbΝG ?~@?0 1ADDh0 c(32 r31HI 13>y53\,"477÷o?> O` y p/h/?.ƿ9Ą/-2225LؠTB@`D3f   @43 DeZFFfKY\l13فje/}ԩA  P.#>}pfcvf0@aX~ʐˮ t!ۏ?{n}w'O/p!Ќ#*SMBLIENDB`PK }oN1 ww%nuvola/22x22/actions/laptop_power.pngUT >jnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?-@11  #88@e33'?O߿}~K_~9g/_>0_?6 ތLd<afbbbcea]۷Vϟ?Myk׮yᄿnDw1@1"7 &fS/'.( '--ͩ$' .Wm۶[jǏ7/ _fVׯ?0T898E5T y%%PQQ7o^@ï_?q2pr30s3 ( '( &/t_+WU}rǯ_Ta< H!^@P8XPTWϟ}tק~3wDE 46< @/;EΚb l,0qyU':g4}#,Ù3^@,1 L>2RB8xyxXeZ L l š Zj dp"?55af_>54frj03|&! @121 _~gex< wO:uP[, cÇo~c6 b`?O>3ܹO20303cx=03 ˏ2|<,00bs[GŰy CѯԸ3S(ۇE ~I001Js1<8g /.,yHn??, Ô|*c\wÕTCQG D|7çO,A0AXr0#G;01k24!o = xx03K'&8AZZn@! f#fFf&V<2 C11\ɔ,*30}r @f5@`!Z" ^IENDB`PK t91U\\ nuvola/22x22/actions/ledblue.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@FFFU /Û, >2|l*&t7>I@ [@ "9 r6Z:I11 2ŋ[ ̘!'$f<@WaMn^(f`2 FP(hLZ n2vuѲfUdak'ë{oܾ {XT P1/. >U",TMD$5×^~|.m;H uIENDB`PK |oN1Of55!nuvola/22x22/actions/ledgreen.pngUT }_Y71c`dg0 U@5 1^*c`f /z9w½| \l#((P\~8O{&CE<::}ǰ|&I32z7#Pw%IJR§!!& _|e/ L  BV@V@d,bu`Vbx)6߯` ,37/ x-~ rƋX=XQu"H>ݙJMM+pҐ,boD, /;ˡέ%Ź`@,P)__3\|vA_ B7o`~737 ]dA@^ml61C#??2{Qڑ_@C3pp]O yq׫ L83 @`Y _&6F1|g` d ! ~9Åg.=?0D0pp @@+!x{Y()\4q!L3͏""=FtzBo-VYprF 3&@>}JqH^7pe4r7ydjAn,2>~', ]Ƈ8)G%~ 3A ?`1Ùl @C89 +0ؘ91gx뷯1yd$@Ac(O9zg6o`gb.jYs e&E&pdg`f(QfG ]yy9V.J9t[0?/ ,492gb`f"vy8x2jad8w ֠@GXG>`m3SL[ۉAJ!%f70\?tpA༫l&&vOA> Vn68o}??23Npj0@1Ҫ20WrIENDB`PK {oN1IYY%nuvola/22x22/actions/ledlightblue.pngUT :jnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@FU Y98?J2|G0+_E~fF/~#&M@g`f臂gu1_%.o-`! 2loؼީMdbE7 AAw1̛E}J#UyU2tL;c @_0x(k*&  l, ~Ue`A@̬, > '1Z1|yb_%R)# 37LG9?f^`hP\ف, WA (,%%R@`8ٸ8 0 k>} @,gZ  9X`4/,gi6&  axe 0#7>ƿl |~Vʂr+#T54]dpř4L@`aR B ebdٌ@eٟ_g2o|xx03S aV(i. ^= 3Ϲu70Bq1fbLu@= ,F#((P\f1YAR(xaN)va 3</#_08CBslRV{ B!( (oAM811Lb["6e0hKh2 3X0g;X;  $h9w8VL5@F_SU59n ;P7 i3"_ Ańl6!XPׇ >j6_ _o f4ã/Yl9XAf8q2)*(3a`bdb /  |"  L `4(ܿ{5{/31003H2񳉁nRxڏfM`aI>v{)0XqT*,̑6&hRʙ#ydsA| AZ_S848>͋ Ԙ]M7g t՞5!^X"73#IpzX&A-’ΞzIK~60B0j-ag_ O 0 h(#78.@Y 8-^gbN0mz1F #P'sÖh,xyb 9Še#n?3sLc9NrO~F.`hp~(,f( tȓ, =2d"@A 75Sn3| v#l  ] ^_?`"`zd$@A gN/m@` : a0.õs14 &D 63Go8pWߜ@dƉo Gz Hy+ ,0ҁ6|šimm͠*#>~gs)We< 3 & ySX[|ͻϯ20 @L gvIENDB`PK woN1Z)KK"nuvola/22x22/actions/ledorange.pngUT 2jnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@nYA_/?f&!k >E~_?~|#FfMlBݻo2 6_Jyc5`qckn! FFo߰=yV¡=zw6 bſ2{y8Y}*rd2&cHï/[ŰurϿp7?$#=Aڟ'7瀘 3g0 ҾVo=l  @_fK1j30<PР@+??10} (.` +}0b03?f{ ?>?c H_B e!@+S&0d5@f?RdX$~30ܸ @A!_P ѯj1}"GM?0f 2k*Џ00\t_@?-xŏ%P ~2010``ba @beR W XŌ_( M@_ hݓ@^```a)_ b 6@ :7$U@Rȹ $ _;-`>e@2a`0`_i ǁ)=OwrPC4'(Ad@ _gB2d/HoFp& ?=~ VPs"ќP5,P^cIn egn"K١ ́$1?;7Å\ ~2 3 p̹Ǘ[/!YPX\az/6V) 3lO?m=E &lh. æ [,Bσ &XRI0|dS Ys b7n9p)VV$t33\{m]bE, ?A[flb8wf@8>~={Wo)l /2pʗ^Ɣl+os\} '77' |l'sp0_ FZUR2j5mIENDB`PK roN1*"nuvola/22x22/actions/ledpurple.pngUT (jnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@6ׯ߾KK?YYYy}D?133lbggx?gd t ~[JueSCU5mIn$#Ǐ_خ]z,gYn32Yn@1bV13n37cPfgg``C {w^bjOpr9e~\ @L0W6I I[0ji1p12W72ҔafJ)" @`VA{| }cÿo!}1 Ҍ| F ? @`+F< ߿fhGa@W>}s13'K4@f?R$e3603'`vFN`f`($C Oh.F [O*̊ LXE.b~`a@ }``bbcx)ӯ/o@f8F~|F!{ t) fbI`p4KB@1P+33iK ~2 wΥ7оt #a@@4E*c7M/1d&@ ޷ok \ /-`KA0301@U;<5 ?\|d&@A\ Yoii 욚@ f ޺pqBUS2<#Pb0Ptolq177sp@LTׯ` 3.=~f0@/$LK|<<Dea dgc@ ƒAF߿`A@|@\zY2fi hd(pq]%I==D`q%++(U0 ,hs~`PK6PW.@ARS;;Pݻ _cqr NN0@b? v0÷W8͸7`(  0: t<//_0ϓ'], .R@XI_FIIF`fg?`زC3H'߿  6j r @R 4/53;&H`VHV_NN6v"%ll M _O<?ڟ3 @ @2 et)8( %@s?) H|x_] Y@@ ZXaX*@\ &@gcH@1Aˈ9߾rYH:! A7@ׁz/{ (:d&@ &~[叠 O M @A|s|fp"#σ  _>:rrL: `.-4c1|fL17?.V.rQӥw~p^Dȅd(c0(\]ffw\y pJ?\\zrr@o3@W`=fS r|Yti:Z @X f@~6+'//'8ק/_^k/P`20`.ך V)@Z. IENDB`PK koN1 #"nuvola/22x22/actions/ledyellow.pngUT jnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@m`+}g!y~61:>i33 U@;e(cP)"$'e-%ۇݪ jэ FPP a30Iz2 &P??o1<<亩 o<s1@1\ 1leK }_/@9eXfY I"[ @`ZWÝSD (j7a_Oxd$,~d @`a*?c'?Ȑ7P C$S+#33S&0d5@f?REťQP9Ԑh  $`s 2r?䔸8 2 312K+10]4? ?O%; | *Zlb @Ů( t10e~?L@m"z!ah _.'!i..61*?$ew$X(5 P@Z7P+_VvF6* AL?~b,!jA+dʞ@@` 3  `dHC˛؀I/8`/ |8'P}P`Am1(Ir@\r0H޿dg#(08Ug[sԥ CXEаż`CAz^= 3l߿ sx AAb~Ȇ @}S0q0L @`~gxϾ2| 0 Bo W5123 @`AaPޛfd^Dؠ@] o?H282@1!l]w|sC9/#d fxras;o_ag M2`@/`jm_gjp121p$?={p p%<l, 3/^g/j ,&@1Ҫ20z@IENDB`PK hoN1dnuvola/22x22/actions/lock.pngUT jnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<2IDATxb?-@11 h2  ,@;Ld`bN`gǷ_~|r ,3 #`_ibj߿ /WQV3PcTVc`gcg퇟~㫷ʁX@0vNő6n* < ^cx ÷XX8~cd|-;xu251Zpg72}eQK2ANI(0/WXp@! avl _>30zח7 5 ʒ 2" M2 r3..GOfFq3 )#^$̰'*`Xr-C8 /_1|zMXWQC09(ȯ? dx;+3îbf̰F&&6 ρj~ | L0*xxxEbw Ѷ bl /?b&*AQ>f /...nyy7xɆč ^ar`bp6gXrХ @??(iPu6#ONvFVVvy7 /û3aʶ nO_n}BGۓ ?01w^ ^XU@~s6/?SyO]Mia6 0TÔ߁~\ ~3s3|߫a`bƽrq 59Qi^O@D(0|8p>zh æ@ 10|w ,=0A￸k;p+Ò#DY XTAa ka`cf~0g8BB?rx,Xp 0|z/ L9=0N_]:QvF1i0 ӃqAw0~-P0h2ǡy_VNNFV` J$Yt5@fu@ lIENDB`PK kN1G$nuvola/22x22/actions/mail_delete.pngUT cnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?-@E gȞ̆PϿ"2<}yAϗ''omhi.?\L 1n,p}?J^*&.md"beĠ $?ۏ10XZ2>9;#`P__)iQ?Cc9%e.6jN61HI1 < "gNz 33',b!Ï,e$| 9Y8XM cQg2PEa㺠Cz~" 043 0`ԒeA d*߿3ܼAY R@<.- ~ʌL`0+/O2~ﯟ L[Tw_6!~96fNvX@%|4# gfj }'Gz + 0؁>``gu&&=7v.fpP,dEUTS=6篟wopwR$N ~fo`$ V~+z;;q9+(2iQaNu~ .Ce *363^p RXqAnD{av10g=t$+$b߿0{Eh,ji å<4sݖn^V.^..aba+7o a d0`fftxyV{ z4,41~L-dx/+,?X133bbYY gLYwn3{m`1N&k/>`D۷;` Z̏o|c%%h}Gopr m~fSٙo ^~%3IENDB`PK kN1>"nuvola/22x22/actions/mail_find.pngUT cnAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<3IDATxb?-@E #߿4310gd/H nu2ƧϬ^TffVIpA 4ׯܜ9rz>^,3|8z 5l/Atu;g ûW~d`vp?~egç7/9xT,׬\猌, 6at:P7nݸK7 ׯ }fx4ˀ>e4bsܳKÇ'l0S?^ 'Ã;0 3(K&?&F< 7ffطgg . 1{v^l`ee@(]r 9.ɰm#k11c_ O^fx/k`' lÁ;½@Pܻꇩ40d~, 31|adfxL20x2AHɀ; c fS 1]rۗLj?2003s3'0}'#Ûo@~200uJ10s?3$=3 Fvq@b*Ϟ^3?~ד}%-_F?@ˋ_/^ C9Z \Ỉأ7za@,p fd?0pr3@=$cflF/ϞQ_-D,Z:u pǬ <߫ V8ne/]T'_/>0nZ֣ O]`0bD4IENDB`PK BlN1^[xx%nuvola/22x22/actions/mail_forward.pngUT ,dnAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?-@11 ^'@?#fT/۷:,Er2A\{xT>##+X  .Y_ FF 5)'ooe^Y [\ Fp`P?@ꀺ;ZG^wWUO u#1@tŸ?spp*iIZY(321230AF7@҅ٿߚ@,Y\\:fJ B 20|̠'/ GJfʌ*B B l@G eggF?]n2h0p-``PRI@;>adda *J:J < @À1lVl@ aڞ SaPPȠg VUܼt33?Gsov Z 1 wmfr2ap0eȜp~- %&&?1~3^0÷K@iAX\ "  ax)DwNvn 3$F20nXPvyYZEJ, ׶"5+,C$AYL8b`9}sK%s)A??YX8x!a_N`@3YaĹ W|11604w.dxTQTP- .^~>gai!7$A _VV&pb4qeaC '`"!'+ 3/.j%/Ҕ`D*е,  F 6,>p 1120y \0|fߞ[ـqp@  Jv@q`|q{#>0010`8Ô 8303p ` =wjz, q1@xW kfvagQffν10$@K;S|ܲ}:&L<{3lt᛫7wU[7XČ'?7$~ 2Z)q>@ JHsr09s;tu֭ʰig.w&겙xKb /6Jtu5H<Ȉ(=^⥣Y:|"0lͿdA$ë=aig[T3`&hQ,̛[bë\\_8ظ>32f?f+R H~)nAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?,dc``Q|=Wׯw  e7ÏƪS_0022 &,ׯ <^˖ueP 3߿*7 3LaPW`93jɫ21:/-bk\h 62KVMڰkߌ `aPdۀϟ>~d`x nn\ևwvv?0  FPDy{F`P5ζ+?ce`@AZ75_N2w;'3, ~bb"Sgk%)!?H 0H_?1|칷 ^b`bwIm^4@,pǑh/ 3B?ûw_|`x˗o>| 4 ÷BÝ6WT 3l0+J`A$'>};O^2<{ ?Z`nː/p/IsO6+s d&@ VTR74/a_eec/( %@}Ǡ"ː T#% !{>{NL֌@f`bbcaedce *-ɐ . I0Wj $AfϞ>?Ʃkpo_0\_xx889Y`b`0-YAYL-@LexxU |>%2 .~mw>1| %P\``k#42G2( X/  @`+ZYI ;(lTTp{nfm!/@ I۠YĠ'r挴#',O.^t3aN&f&bPd38I2(?hf t50d4 '=&+@o~.-(7žC @5 @l070=3>   d 4 D%KN=Cnm]]i5@|?q3 '@ L, ʎ@2P+;  W>3\x; Ǐ)+}痾|#/ C 9?cx|#Õ Μݻ[W^3Ǘ@#O``DehȂacxyÃρ]w̅x+B"04%6˳rx\ӥΞKn޼;@] _\5@c>>-hY)SdZyٿπ4mtpRIENDB`PK 5lN1:!nuvola/22x22/actions/mail_get.pngUT dnAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?C`B?z11^߬ϟ/ϟ~30222񏁃Ͽ 1202`b?~s-mo䒟os+W^8+Ͽ}m_6322}?!@,0ȵffrs/޹nϟ6p{s~ 2PO-/o @1 @&F ax-~ox @L ?Ǐ _>30|;W/^b`x \f> @`z1X+O]j7ù]{`GPind<?0( ))H0~ t)pPP 'Þ}W.̰i?3+(0892ks0 0BC`ϟ2 x޽ &&7#e! ^{E3S``^^5U@W{2 } "Nqq6v6fVv.W7&P2e`RdHJ(}8F&&o  eeP6N;o0,Xa ?+&& *"`e%*'ȧ8~ު FF!{9@ >~%7U@Hl+7?7߿CA7/8xU~fP AѻwA&1њ >b TW72|?``l. (N\  |k`7] /k?}D] ce.`X18_͚`wX2<`gb/pA w= @LT7io>5/?1<=AMD`8_L o :Vw2$1`(~@`gdxSWiL@k10Z81|+WQɠ déBpc4#,X䔀 /2< H&n&Fy޾ 43p3]5ĊA '0<߽϶) -`X{ q102ߪm/``yxzg3\Z{=^ƀ`{C *ܕX8?exԳ*ßbX_a{ţ 2 0HDdc0sk=NK_ ܏^^ea%1Ts20li)!wn[/Z`' Ŀ30]e}d7Sb[Ú+ O>0``UĄ\";vv?c-? wc(N]l{"O=~=ïpk @C/=e844,߿Qҧ= /V`5 " GクVz XWL/^z׿?l@oF6Ew7s? P/0IENDB`PK t91[[!nuvola/22x22/actions/mail_new.pngUT gUAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@{) ^\utvڡ"#/]~Ў ~ 3ە|?1b_PwgWv8X `=@.fc2  U}F fbF Q`jl0?GWMα11_dd?2DFk1hh2q="dg` 3`h0%b`?T3w_cذCM=~g`6XT BB\yd(ϞaPRfxow d7 d0@@412HI 1?7!Aa^_?! efp#MMq^F@C@ Uf,q@xd í[>Ç >30Fwddxy9rZ j0L͔.]|`p1~ `_A0H3#;>ömTT޾X+0l@] 5?,>}XY n{ J@n  9>#WBxRc,p^!E"2 Xv訊70߃2hn?4W_a NH :͠[1?/K3 * KbL \< ߾#\-/( y ,?1 Dg2(J0?6K@r alP +Pn@A,x J0| D?"Sc@b1+Wg0T3J202<#@jEtǧ^]X z $@L 0 HIENDB`PK t91[[%nuvola/22x22/actions/mail_post_to.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@{) ^\utvڡ"#/]~Ў ~ 3ە|?1b_PwgWv8X `=@.fc2  U}F fbF Q`jl0?GWMα11_dd?2DFk1hh2q="dg` 3`h0%b`?T3w_cذCM=~g`6XT BB\yd(ϞaPRfxow d7 d0@@412HI 1?7!Aa^_?! efp#MMq^F@C@ Uf,q@xd í[>Ç >30Fwddxy9rZ j0L͔.]|`p1~ `_A0H3#;>ömTT޾X+0l@] 5?,>}XY n{ J@n  9>#WBxRc,p^!E"2 Xv訊70߃2hn?4W_a NH :͠[1?/K3 * KbL \< ߾#\-/( y ,?1 Dg2(J0?6K@r alP +Pn@A,x J0| D?"Sc@b1+Wg0T3J202<#@jEtǧ^]X z $@L 0 HIENDB`PK 7lN1JqWW#nuvola/22x22/actions/mail_reply.pngUT dnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 ^'@?#fT/۷:,Er2A\{xT>##+X8X,##s2ÆzWhd~#a%2@ ~qR5d&W:򺻪2|fȠY?;20Ho@? UҒ4Pf21ecdg`8+#,3o +3'3Ï Ăj ŕnjl`( ( /_3+2i]Pś}fh++31 2010 egg``Υ+@>WT`bU1O7G;~3| *J:J < @À1lV@6 30312HS(}WGGsov xB Ã9XY }7q󌹥 ß \| l l쐰/330e9\ aX4!6ԉA֞a+SOTg࿬z a˷G(fFh:01;P~ L?0Tg8ó9r.Zdx .f,[ϝ{uCU~` Y L@@NYa u {aucB s۷~e &H3 _}ٷ6u\ .>~72,2:'׫˝f ';mgݻtG..ܐL 4+Ó3gU^/MA\Am׽\~d H!)XNs>0sr20zF+$Kb0dbd,jQOtw &f6Y79ÇWDpcv,e+(b&I{6 |U01~?@,YYγ*$֜23p v>\6CIENDB`PK @lN1C&nuvola/22x22/actions/mail_replyall.pngUT (dnAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<GIDATxb?-@11 ^'@?#fT/:,E2A\{xT>##+X8X,##s2ÆzWhd~#a%2@ ~qR5d&W:򺻪2|fȠY?;20Ho@? UҒ4Pf21ecdg`8+#,3o +3'3Ï Ăj ŕnjl`( ( /_3h20Ÿq]Pᥛ}fh++31 2010 egg``K2(I0+ߜ'У Je|Mm%q}%^na`F6+`V hx8$D2tlf8h'3CO~@cccnѕ75a//vV_>exAL3Ct?̯J]0`0^Nan~qoƫ|}cv(m1p0 qADBI.gY^лAWC!5΋a .]c0r7a(Ias#û_YxP[3ϼُZLB7M |~}[|FQ,l00 >q󌹥 ß \| (%L_ay 9 u0$/cW#ACf맟2ߩY @Øߗo_Q`qP;i]*cIdHjoc]aZA57 G{l?7. ''s^GPE\&psggCuS  Va0ưz9[W1=&8-/j}[Wbd p1ך{ngZqϟ~Ss,86\ɰ _?1:'׫˝f ';mgݻtGBPbd\[` jΰgſ b]xA m3>&{h@BR22o2 (^`Őpw" b_~\tt33gϯ7}3wzmU3Z}ep? ( p`bfC1ycK>|xuK ;;'0mKoß_n"QG '?_)CQ9L gee; TH`Thcon𩟛QtS|km=@DMEIENDB`PK QlN1[\\"nuvola/22x22/actions/mail_send.pngUT JdnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 ^_ff& 2220113)82#sۓg7x'a0@1zYE1s7wu6EϡKoaggȈk0`^+lm) -t{3200aAV.I7?~1 FZY+88*2h32gF.rI0xa`2dppw]x˟7XNrqJ| < .4@&( xy!FCx#ۮ?^ be=߾+ ??|7c ~ r9J3ů^87G>6`30A\ _>`3Ê3~l ̜ \@0??a|30} psæMW@2{ 3l8a Z2 2| rgx>ÅgT3  YYY]xZBNp +3J1ڿC : f7ßX7 n l0#0~nv 38Yӧ 92X(350Lddï~}|a`c`}'cb0vv/?|邦0е """ \\ i  O>b`p/=vkL"*]g$@Ɍh~g&&~~^`@TNjmrݛb_k(3VIR_mkd [`U =ưi۶oݏ ^M孲$/\}fa7K{ƍZ0R ӟ֮;g߾g>||׻lB ~2&() _U15K?rXǘ'âE{~9O:3ǧ?SS ~20~b)`佑b:LbF&3"@,,, ߱2~/DC`_??3gca``ac  dA ̌`@ I 3_νd Xbdǐ( - Ad AN7FV6F6doN ~gJ1Üb>>~5?20=yG0pÊ@,/#3W(/ \a%'++ 00}H40`0` ) h&@1\VDz~qX\]$m^b Vbx `\A!@L$ׯ1(3H2020zïO~x3˞ OfJ L@ hW\ӧ  jk1d-'?0Ak r`= @,n<ÃSS[ /g{&ÿI  88т ocQP78[EбK**20o-5'2᯳P_3 0p3sADQ?@w2#* T(2220{  g`a.n7O1z0%mcs`FFF 755a` ߸G1EE+ʠ`f _0A&@] 2,,]^2j22fPUg?p40ǯ ^|70J'@0'-p$@3cb0@0PP}'A 倩?$0H Lf1ᄚ,8fXVC<lЌ/Vu@11Kw_j KIENDB`PK$lN1s,nuvola/22x22/actions/messagebox_critical.pngUT cnAgPQux %{PR Ưܺj2)#=,]iAE4u#-"RXLu-Ԭ,ͫF僲f{X"m`rs99G׬NpE28¡㿔3 2B:A1SmLLOH`\B+dH"R>dddHpbl| s>vFF0܎g|cwVZpRL |:QU>ß\.W  <℧.t d޹A9e-QgMV`!Vz1XsKs=D᭏vc)˧^G(9N)M^INtע{ %3j}@R-DB R%_&wN7Y h ܒ/H?8\T-֘)nr(ÞR$n3ߐjaàT%%ߘ;v3Wl.0_wҀ4z dTsQ~1_xL $'ۋ?ஂPgF%0H}J*g8JaȟFӨnƽ)gxkz+ (~hMTu`nl'M}SV7^Ǣ&jjC/@X'h },F i+vg%}qz}kzwxB]KV&i[3 OÄ?}}dkzWf"Nn'|(A7̌#K?'\˩׋;@)с:Y L,zjSCmWK|'QYFj%_s9P`"Ėp}F(a˧-"xHfW͑"KnٰmAW)Ozՙ,QMO{`aeacggo>|Š0n8`"VRTrTf o2|񇁙ȍ la ``"ħ & KRVgx?5e/ 6}&?  L KB,×עa`^.-^Q2'o3e]N6F?18LH[?ÛOA-3  _>c N/߲0<}!Yh8í'>}o?-L-0n3 ~2<Ta/ Ɯ L ?cÿ$#?(SE7緟_dgcfy? l xZϞe PVL <'o PTP/?]2?D f@ 'Wn2H ]4/(y1 vH% "԰s3|h0Ag=qWdxabϟ@bo | `;Fq0! 2B`TTxcفF33DH0h /9`&0QCDSd `#(e`ax L3|;wߏ;X6 0 $~zE(+HI0|#! ߿30zp q}f̰jf+W28wrA0@1%mcblbd=CMe%CeI . f** l,%@9Ѓ 0"hp% ll@y898x܀>afaPAKZJ &T ƒR @W0 300R^0X 9b10# P(Шhj {Gh-e >1|{uASF   hJ+Iq1|ޱ3'_a"&-- E1~A bi DX[30s00L&VVV%%%0/o`Ȫ^߷02A p[D^Fs=gGH i/sÙ:~h/_s1g1Ay>m`O @˜?s"3 _KÏwXz!<*!08G @ . \ _s$';# (ՔEb3/7 $P ;377CmSϟ?x) a'0ٱi0Aw5n.<^/1|}/O%l FL, ܼ@6ÇO_~( ?2|~ raoM h?QIfA`zC`L/CXFm@y-abd O-V$ 7P i`Rf5@C1A| &Կ Xp:?@ iU8g#%IENDB`PK t91rTGGnuvola/22x22/actions/misc.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1--!B7fffrKxyy?rgr[+*.w21ׯ -dy @1IH0DDm<lUU#l#/511p7h`//Ƕ7oM0 @,))% < a VVJJR p?pY`h30ega>>>Z9c$~/"@1;8x2J^^JR2@>0/2U H (((L+08Vcff@, ?>|ɠ" + wYYB3 0;wf-scb!~ᒗF+8"A~ ?~ ``[&))cztw*4x0IM-l`'0(؁qĠ!$${'tϟ>| ?kAݻ >(((r~>y𰄄P-$8de%T8"Ϟ=%@\\_|,'0Y8Ao `pm53~͠4?PwaNN6?3,X0*@1߸qyÇw|UUWHCTT AC۷'.--,$**T ޿ 3\xaÆ+?_z`@I ~Ԑ@g^T .%%`gddbx50)_'xIUϟ9^ec P@>PTF"/ 3`ׯ_<d0/?`aPچ%78@@`YW/@7|s߿2%sN'#0#  8y#C޿pڥOd&@K')6`axujN5@'?,fw@ Yc.P3 @`yyK?dddf?:0wn ))Y,w~~A]6ٱcϟ> ]tׯ_́[Wyz}U'++{]?@DyCAAH%%&`j@SƊK?@1Ҫ20vOܗIENDB`PK t91=)??"nuvola/22x22/actions/mix_audio.pngUT gUAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@YY%ff?,߿0/?|-Z ţ.4?@jedȀyyy'+(EJ1|qғw2˼/PgzbB1Ǐo@ׯ@ ߾}e24O?`ff")$. ,"%+ S,bw@oߘ&..6 ~$D%VrQĪ*@LA_a02|I388`>ӧy4?pɩs cc 4C? 81| RR2?` mF7Ą-d(J_II)3ý{AHXD߯/a,!v``0w^ʲ^k?}2 ߏX֒ 2@ ?çϿ+-\ϔ6I)9kЕ<@,pu L <~}g`fb}©u(&@tlf/O;q.3037Ѕ YY [ex=((ˀbߟ_hgĂ,Lb\685!/$ʚa9wCeݻo#]?~dsХ$LAoFp4@ Gy^e``dP);0Op`x&p߀[!\ vׯݾ}H`gރ`_+kG 1|y߿0|d/?E}}-`]Z^tgvv_?s;W?3)_ ,L, ^,0W? =|?+'0ßl mG~>fO>3#C>m}(u #g8dx@ ߿4уb :a_ĹYU~@bGd/^۸m45#IL.~ÇO(kǟ/_ 7O#[g`+#\?xOb߿4 aշN߿ =ݭ_~)a6bJRy؅~ }"`(PTTTi7o^YU~ r3gfUga& H pfmIENDB`PK t91E_nuvola/22x22/actions/mix_cd.pngUT gUAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<,IDATxb?-@11 `ddd07_dC$# Lw .y'N}%++:vv_ g8q" b@ VW_fH(2p002?woI_,`;nz_źyffv0 @ ] h+' rÂ10@y@>/×/fκ°l:Υ] @, ?AAκ6QgFAQ_?!00 756k tMNZI8Û7@ Bi W|#CP"C`hR3;<bdÇA_@~!е!r3{#}äVX &H`Vi0.o N20p Í @]-[`20XxZ(؃tq1n_ M/&:s'//dAU3Pgd oO){bq .5^>vaT!P_e k_.]烩{aɔ_AHXQ ,̌ șQ*,޽/ K[z߁ L!j`@ pP|?x!9AI, B ӦU 32aAh??@`?rûor< L!MFhȩ#b zZ̠v8RH ?1}}*@xNJǞ3|%%@J20H30X900j31BPp\# 4\@ iRaOa8g6O,+۱ ,$\ kP f@I9`G@ܹ(J /^,SW=w.N+ *(W<ưmce\YXl p+8ѣ]4}9 ް595- @bSF&utAl<0 8l|;.~ٽ}Vw tl0#83] E#qsa}/I)u#~~a*ݻ/?vKbT 3V)@mfL-IENDB`PK pN13b!nuvola/22x22/actions/mix_midi.pngUT jknAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxb?-@1`D3p0(0\tl${'knxygu !#!t91z-wYU?"ڥ{ !`X,=N4h`pUm3 ƈZCU wJ)k콙sB"s3#t1HAB DfDGDw̠*l1Kf%s 0P .SE@(w^n}=}ee>I 5uuj!aA0pIJ1X:,Ïصj!MÃhԇ ""@[3``ad_& ŅG^^"` ƾ8Zem(2/PgAA?ÿ$􏁡D)@LӐ߃İ4?y'[i;KI1#[xr;@q&½Y!~CB P z?LW+ _^' Ӥ2+ 4CCCWFQ+_BXA] Y 1P2Ѭ 3`&[:e3]ùg}X"j1# X YBY_\O9@h 0RAArfccz|'bU @4+f 0 /nIENDB`PK t91BQ8#nuvola/22x22/actions/mix_record.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<1IDATxb,c@F f@=ܘtXYYŀ20`c`!F2  Ԕ͝a %.4?×^puV;wg?7Gh`.f`b`ض͛?V_zyV800" @̖ INfvEE rr`2 #?Wn!!Cϟuܼia#P`b6@, Xd @ be ?@ 30| t˗ מdd*PXn\JfYg ̰58r 2d@LP}|@,{(51C FJ,` PɥLLVRвd CAd6Ar()B& -P7ۯ_[1 gKA00  1 籂(Jd CBdA `b l,*#3v#pTpz t @0Հ(bpRcXhGT{#??/ i/@`A¿fC0P~C כ}#?Ë~|r~@0Oq)8򄁮a ,,eD]$Xx8/ddĝAAm> 5&HBQX^(OEA@T d J s@CT @%?v>)^ڶ  ?`/  8+-|=}÷o^;.?0BS021\~!??ϟ?8qՃnA]t# +n狣CO°mۮ޽y:~8E7@x$ sR&=xϟ/>IBB;///^$0={ s)~0B5')6362:AGE} $%.=661њ BJ{~b ~U=<6/=>!/@nl1  >0p!+;#jYy @43 hf0@KIENDB`PK i:15Mnuvola/22x22/actions/mouse.pngUT @VAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb?-@11   @E RR ;w]aؽ2HU^Q_KTFFQ}Gz_y;aQ1w1d$/##PSs^ +=3)If78q 1s)ν;E{e|Op@9fovnW !V..`3000i -2amo Sl0@1=ys& ߿c`g~? LL ~207  rii^"Y] @Lϟ253Ȱp9왳 | >1#3Dg?Ł$F  @̐0a`SSx7}޿,t!+w@Ô?A@ $ew>u8 @13RxOxpkkA b_A}B| <∎Z @ wo[U5+~&Fn[2\:AGmFp 4oH\=_ `y< )jM/q[͗ , iV , 0pp  'Ж^0=bĄ%~tZ5yo߮dh 3||/:7Е0g3Ͽd@.Fjwۦr`x~AJARAJ[?lW/>1l6us]e`&ec\#@_K1}T V W.cؼqc'$} @7 B322fR^Ң<<@׾yq&31#jYy @43 hf0@IUIENDB`PK پ4/ii nuvola/22x22/actions/new_sub.pngUT *eDhPQux PNG  IHDRĴl; pHYsodIDATxklSu&# &M`^L4"$SCB&0eL2`cS!h,) t)M`cl kiM'yO~y@H=.16]tx\ޠmSrE뿓{ڈ߫|uG%[\ ,}' ]7 ] nj) 6(^)kq8QH&kՠ/3r2uÉ@o(+yT^M~R;*G/N%㓉ux*V^t%?#8*G֍{ 4_":|UG;*Ŭ!`EQuل @cq4_^ _J1{XUTD6T}4pG0dC`O4fЎ(˴s~DJ1]}zry dЩh'%Ĭm.1wǃۭc-7Zn\on㲫429RqΙpAHw|@7e]+[M lcbX~%)+XA4>k:4wpNqrfrεӐf)ǧtq TB1D-G;$hԄEg>޾ûBospWz[':e_X B#p' m!?L>;0|[RWP< -Oӵ)# Ou^$^V#NV9 \\;|XNHѹ EA6ﭡ9KY~!'m'm|STԉlH%2/Ճ:#ja˯~$}C[X6!Oy97mgnU0|0XqkhIENDB`PK kN1x nuvola/22x22/actions/newfont.pngUT anAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ 544r*?~`<}k:(hUPp6 Ä lA|OŌ 0Ka ̇Ѽ `/_~{?0Ыp68P9h 3` C :d‚ @߿10`˲e6oŅ 1 A1ŋ [neصk×/_rϟmpEfff@`p`Ldn3UbPRRbxAL chkkc8z(` l_3x[w ?},w={ٯ^bXjRO=zp=/`D?FWoNWd֝bccbbb֭[C?2?~z@"G>@  >T쫫յ2`.C >`dex9CKK 8X@}68Xv{% @LXYOc84Cl4履MC]aʕ`WIKK-xCdd$"P )h'0a j /3,8Mφ!$Ѕa```ll 6 Xf 5c8,×_1\x|ASIXR{V3100]29"l&rO2pd`aӵM -beaXȹA 6w~s1baIf?_~f>vw2=r} 298$@ _B?GE W_aыa4d Q) >~h$z LYL@@]4@]Ī7Nī kMO*_1(3<Ͽ|ۧ4`k$V>|`|9r0}?= DbUe `RaIENDB`PK kN196'nuvola/22x22/actions/news_subscribe.pngUT bnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@3@|ϟIF0GـўSOVHOر3>| @,ȶl,k"))*")&&( ͛wjgcc} 3 @300ffH>>n_eei Iee9Faae޿VVVaodd Z Z8 1}}e;--eV99I66ffW0<ӧ`xxx|v)##ãG54&&&IDX 8.]pq`g LL, ͠ _|T~._ &NNB =Hg\ <@A\\ O nbx1 [.(@ d k%9 aíW3G:c(5"> Z[TRY"R o݅9 kV=?_1yaŅ 7cd p0<25ffpy=(0ܿ~%Ï߿||\L J nܸW@ Ih#$1 EȒ0hk31w4M~@,_e` l ߀A 0`A^0|bc`:8$L ))lO @,̬ nPۯEeS¿ @ ޾}@2%OPpxJ,,llitϟ+?ɻ>'?9t77?8LA!1츹8>bggŦM;ϝ0{U Gk0?k^>`3\ra%o/TEl˟Oz&J2¢ q;zD9E69nc{;% t?+%$$>=zz90 /$Kyu3leszqs X<2y`NTgLBBB p+Wnx`7 hPZED@ٷG b6 3|b[æ- ,d2?0>a8~܋G6kЕД eʭǰ&((ia)~.>@ /<ϟ?e,,, @1Sw[##]f0pp2, X=G3<Ó{oz6XoeD iXP3!S7Nt_8>70utU&O^$aNQ`z,Ѿr":g0@1o<  N//3YUR҄  FZUM IENDB`PK kN1ٸ.)nuvola/22x22/actions/news_unsubscribe.pngUT bnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@3@|ϟIF0GـўSOVHOر3>| @,ȶl,k"))*")&&( ͛wjgcc} 3 @300ffH>>n_eei Iee9Faae޿VVVaodd Z Z8 1}}e;--eV99I66ffW0<ӧ`xxx|v)##ãG54&&&IDX 8.]pq`g LL, ͠ _|T~._ &NNB =Hg\ <@A\\ O nbx1 [.(@ d k%9 aíW3G:c(5"> Z[TRY"R o݅9 kV=?_1yaŅ 7cd p0<25ffpy=(0ܿ~%Ï߿||\L J nܸw @ZL @ l((@|AS]AUEo^{Ϡ`mmO=b:ʫnSh+Y.tPP?ï_/+?0Dd%`bHIf{NbO`9l |da`@s?d0  n^ \>`R3Ͻxi߿fJ'Xϟ_" X> LZ_>~g,C|=u 2rç .\{ӹ(i%?Pf9LN~{{c:o@%gfxã9\.^p/\p6¼ )߿`߿`?`'0C0pz2l_V`(?Ǐ]}&a L?xl)pp}w4}{붐Lx8xؑ=#${0!#*S̹OؤIENDB`PK 5N1M3 "nuvola/22x22/actions/next.pngUT vnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<}IDATxb?-@11 m,n߿?dnJ6NY4+T ?t_ SZ]y8*>  i002{)3,`/a=  @321ebfYXaF#Ct ӏ~m#p4s/?p-åw E -E,|\ !d0@a1=go3\+U-f70hY2|w7|䶍C;pS{@OaZ:Om 2 3R`[S,*"/ *CS&o N3 @, J\ | J o10030s7/^+l@aduШg?w~0221|FS|uxy^1@ B)$Åg, R4/~en @{ Só 30 20gxËȺ)  mQבa8 0UH10ex/0f}U@aa/ ,Ù _00Ȋdx'ï?7XY"c4UG{VFcE1|?3,f`aJYC(,bbyW~%yBi03 o!5>@CRlffa?ۏo| 4t3.0Z#<Y`"EIENDB`PK t91PPnuvola/22x22/actions/no.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdih00pM >0a#.j){ >t'O7owIN_-,|j91<5Q@R0iWwp9/<@D9O# g0d`_? 42Y/Gw3L9d@1 6f`;e9çO ߾10| #=ûw`AVDD g@P$&NB1t >eE1 WϜaPb`x?~]n d0?@c,;;.lplV+?.ܿ \TĠ7-hǏ~ߺ`?4 w x W;`|98-Xd RY2h`1030l<|}=$^D 0ABWlȠ ~DP\X`p"+0}A;``x@˗ @A.w/5DG JH@I+q LA S̙ G.f+HX? '7- Ԉlʤ$ <>Ch { @p''<K ge1\%=(OPa-|h&@1sOW, o`_PA`&ZAX.˅3\w/^0%?`X$ o0 P(rK;LL 4 ҜH4e @.Hx;еL10 pYd|C .ĠRh O~BDV$> G^]d` ,?M'd̥ C10nf`U@ȑ,N.0KK v.$CG@s@B 3 $  j R2@1h'@|3 W&.T@m` ,I ؁0@\ X^LP  ɨ@-IENDB`PK یN16#nuvola/22x22/actions/noatunback.pngUT nAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxbd7RBSggȀe` 31A30ŒP(+$vn66bRgacRK?>ܧ&}V@1?6#`hzd?_|l7 s- aSc@ Xr1._}|E  Ԅ( X~M|l /;?iig38XCaMvQNH .70rXb3|3MLF=<ԈE'0F* WN@ _0q1Ǔp L+@a ?Ҩm%ot-õ7 _C D[PaD#4a0]TIZǜQFM'K p$&l - ۹">FL 31 d #6 ,I0?qf{V*& l\ wB_@,K;3' %|3 ׯSV`$B4 @H PVGy7>kRT6fgLZ@g@@, !@ۤz}&ș갫Y3p1#y@ X*8Ђ_?k{9?x0?00?sC &k!Yk9r˷'Vw2^>. 1b~Ta HB\ٕ{E['oz{~>2H-!t1;+$4 @)9#rZ8< 0Ԥ⨠E ؊Ox8~|agC+?w6 z9)d!3 vfO.uoR6{_202#7B\B^?#T. Dox8*X ,|]_ IENDB`PK ՌN1 BߺJJ&nuvola/22x22/actions/noatunforward.pngUT nAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd3}׏~cb30b@gf q<e-- _~fWY/_ ~C0Fu%(7@1/C BknK ~Ma@糂3/ ßL ?f4ݘa v?lC ^G !Pq@-`P> O/`hrd/k ?]Xa7_e` X 0<Tt4CGî=4V9٣{XҁylF&_BA  @λ A6X 铏@QJAC_iK_㗅 쬥  W?ЎW@ @,xg`D J \ Vަ *6]HxfÏ߭ lq `9q pP ?q.f`dptdP3U9T{O``c=vpw˿0y 

      )D?ni\;tv߷7o0$101 pzh"7j^~F6ӽs7ݞpϷab kb 98X?aj?`XǙ H OfD2# 2]zb/l@@q +{X8>9Wn|W3P_P S@,  gn0d` w]bxx?.a`c+d`eL@`9@]\ Wc ,v <@@, pmb`' /Vwù_w v`/rH()F  LkNnll 1(gC[1\=rߟ?;kA/J  #0OtȖ󿾽 tcXc_ 4J" L@}w,;Wǀf1p\b wN )X X&3>a {iu\+!1a`a@ls?0nN&P)^"J2rdd)*XB=IENDB`PK t91*`'nuvola/22x22/actions/noatunloopsong.pngUT gUAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<3IDATxb?02220Hx20H0`Y&yu5H=:Z0 : a 33jwgJ1mS  j@p)V0CVcu 1+W/ @,C~# *]d ԽqI2ė9r7γac`ef@1dbzqT3+H0H9^|ed.#Я@? O_c8͗t;d@t/ @ f06fd`x ^k@ļYYGH?v;ݳ ,s~<￯{w111|cVV&W1}ˍO&321p9di4u2 {kT+o240 @,HbOY z C6?^c@JY@H YJ;cQ ΍`O).wSD&33%Vb9x9 # aK_r guRwAu-a7~24@m\foc ( )e 29i13,ڄTǻ_ I Kd00<~鯨E1`&@!1#Rac ]7߷iڰc ?|d`Y e p.@!\UV Grp.FoO00<3 9ȏIENDB`PK N11$nuvola/22x22/actions/noatunpause.pngUT nAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?쇲B2LL@|FF?@W ? i%6P=zlj b]9śQL l >`.)usY@_ EALLa`ceb7CXv1\K C0> Jәj~ UC6F5JyMy ]aj^2Ja?v'SP3_)%/E?։UsNV: .+{Y!=hE_| 5ͽ@'h0 Ф??%b07PPE߀.̄`&p2<?@Øz~ =TI8 fy􁁁?D0x: .???ZPG(d_=#a z &t@-bb  @43 1͈=**Y(gF6[b ,̐4H 4M@?@ L Nn L%1ĬLX5^>Hv  ha ,+xe0 `ڎ-(@^,t-?/;KZR2ePEX "J,  X~bVn䠀!. u7FxP` VA !cð9( [$kVK2 +p+A'R| .bd&_|~oCS/|GXC?'^FSӯIENDB`PK ŒN1f##nuvola/22x22/actions/noatunplay.pngUT \nAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx$ 0CsQÅ:Rgpq%gp Kk$$lzX|Xy@r,ھp3~V$-7MBf߷~ueZ5@`aom(Ű}?ÄvwUY _Zw=  o003l^TP`kq j0@A\ O?b`wNC%ӃY #XY0| 6pl?`p3˯ W30!;ۖ+N@ O s 2d1WI(iNd_b ߁Şo HaH-b8{6{+K1 itb0_~0L?0`bRcTWdKD_6Hb3@q q;O28@@@ LI Ĥ"h(М_~2<;qՅ˿y uh+Mexq6ã|(3s -Rb?, [1ɵ e`:,_f ZF 7YrL@w_3\wٵ{/U6;ȋH,>2s雟9 +7Ƭ@99t=02s10K ^ l,e@A p a c~`!L0w3><}{Xd Ayp@`Neb|tm0<* C./~'< HX22>a+ g~4i W[~~ / 2P w%VԃxIENDB`PK N1Ļ))'nuvola/22x22/actions/noatunplaylist.pngUT nAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?,?8ӿdp i Ո1%]U.1XWϙ@11? ǘ23 3|NH@A fāA;=8Đ# #0H&1ς` jБQpe3cu-#%1?v@?X|df'yjpi 5SZQLcǟ}d`;03c *n_)RF 30 s(~򞁁WW[JJzlFf12:L\?1q3|GvП_@16+sF`d*200AbMQQScx􆁁@d`WeakBM?89# :F?WĘ]Pޱ= β4bdx W.VV 0Z6C7 yڥT||.f`!\FZO/ߙ͙  i1奧[0ȉ13<F(<Y)J@v.M}E@у-ErK1|?),|l(×'fgR623JLP $~ >0 X @XX8փ6e /7_̌ ?~a8u#; 3r 1Cr >~g`6n4o f?`VB6?_^@!/(X~0exzG7Qfaa?yq,|e  ?T:/9IENDB`PK N1FdT#nuvola/22x22/actions/noatunstop.pngUT LnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ F @&0B o/@`A&1 kj2>xI ]_XNQҒd4Ioo0|uׯ_dK8  =@,0o!`ff>" ;##ß2ׯp / t /? 1F hf0@`D39V( Q@ fb.PFtc`bP"'`Hi s  7  T`PuA-W?30NbUe `s//<ݫIENDB`PK mN1\ Snuvola/22x22/actions/ok.pngUT fnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<:IDATxb?-@11p܍(|N 3۱t#y/ٟfhi`%,ɰc[`v/oz3 \ n"X, +ö:OW֎ASaG $nv~ 0| 2M>q0 G5'*|i%,Q |0wm`c^ɻ! H3p}ӋT:2PĮWXE-d9~p-^^;/@`sO7·GGZ4֑AE?2,S `l 9\}#  E 6@9n13 of8'[(Fgg AKX࿬0?όۣ 6cz^g+oN8~GD rp[/\pq[|],'Lbb4 a0#O^*Ɋp#<Y`5ս72IENDB`PK kN1 7!nuvola/22x22/actions/openterm.pngUT anAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?-@11Kss+\?/ldqP) ӌ@O"%%-3u@h F-offKW˿ e.ñX$#@ 1&? זcd?bax.?@^6ć#@;'Å{7yi_b% fVVUe)=-y? B&D2}ΰZ9v^L \d`4Qp289# X`{g`$c`abLXX^]}Űw`F 8@(𞉇 0pp0 2p1?F/3<ϟ l,Pe@co>`(lcgݜpM8#020!6ƿL LXdb L<@7$a8 C}çߟ^pvfp8l f P29 {3p 2lݳ!?!'5շ7 `tbOfـ3003*0☐ XE`i`K| ¼b nr 8 Αe= cb Ω`|(!ĸO ;{:cG?t4@P B2BP@*0"8y9/W`p}'0Epfh0x l1( (<}mȰrï?%H?c3ç_b,YYX$1_xbJ -B ,ٳV\'L*k G`j@WLR_Vu@Ѭ0Q GIENDB`PK t91%kWWnuvola/22x22/actions/pencil.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 `dd$CEVN@m1 <d3g8s 2?|LLWX=.xb/< B @+/h|bg3㉙< |0?1{@MŲ `??Lkb?  ~ B.Tn b:p~2k~ZO7/ Z|^ NY 0&٧ `#E> ?YҦ'yǿd;P$X ُa8LWO @F Fe`wC2ھ xJD=>wu ^5Ì T.FO1r20-.Z3P5{eAc5&v\f÷, @gB?q?El>:| &.Y +0L+ì/ @ʁ e˨{5'Matī Sgo3ҎWl@A7إN ?3~ 6T_H!JS|ps /p%*,i9Lpg`zAž!Q-c K1{í/@ed`N=A  W?of(6xV[  .6SG1IWj}|ycz?q+~% ~2[ $g-_?_6܉oXH)2Af$K2|I9w/0ݻ0\cjc1@A\0!B? m9 !@9Ir y!L% 5jH: hVML:IENDB`PK pN1nuvola/22x22/actions/piano.pngUT dknAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<2IDATxb?-@11   rG $`g#Ql<7sFy )9g1{g˪.l߳ RNcQPu=A<4h MmbO?c b5T^N)q7sNBQZqafu~p<)!4Z]̓HnTU-#y~ݱķcN}x c`J%%^ǪbQU967Ё2+X`a gx=ˀ^4ÏY-W BBB` 0 ï߿xxy Tl #X-11q_~ Y l56f KIJ1|珟 < MN\h8`Ce@0t7·.0qtWl%4ga-+4@,`Ll ~̠͠Ϡ )!R $,>I 1 ss`Uge;`V]]'?_ *?_;U H߿{@_~2?w9X o Y ~Y820&76 /a`gzWT .l,$lXYR0>pߦH hV   `}D7PIENDB`PK kN1Ļ))%nuvola/22x22/actions/player_eject.pngUT anAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?,?8ӿdp i Ո1%]U.1XWϙ@11? ǘ23 3|NH@A fāA;=8Đ# #0H&1ς` jБQpe3cu-#%1?v@?X|df'yjpi 5SZQLcǟ}d`;03c *n_)RF 30 s(~򞁁WW[JJzlFf12:L\?1q3|GvП_@16+sF`d*200AbMQQScx􆁁@d`WeakBM?89# :F?WĘ]Pޱ= β4bdx W.VV 0Z6C7 yڥT||.f`!\FZO/ߙ͙  i1奧[0ȉ13<F(<Y)J@v.M}E@у-ErK1|?),|l(×'fgR623JLP $~ >0 X @XX8փ6e /7_̌ ?~a8u#; 3r 1Cr >~g`6n4o f?`VB6?_^@!/(X~0exzG7Qfaa?yq,|e  ?T:/9IENDB`PK kN1 BߺJJ#nuvola/22x22/actions/player_end.pngUT anAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd3}׏~cb30b@gf q<e-- _~fWY/_ ~C0Fu%(7@1/C BknK ~Ma@糂3/ ßL ?f4ݘa v?lC ^G !Pq@-`P> O/`hrd/k ?]Xa7_e` X 0<Tt4CGî=4V9٣{XҁylF&_BA  @λ A6X 铏@QJAC_iK_㗅 쬥  W?ЎW@ @,xg`D J \ Vަ *6]HxfÏ߭ lq `9q pP ?q.f`dptdP3U9T{O``c=vpw˿0y 

      )D?ni\;tv߷7o0$101 pzh"7j^~F6ӽs7ݞpϷab kb 98X?aj?`XǙ H OfD2# 2]zb/l@@q +{X8>9Wn|W3P_P S@,  gn0d` w]bxx?.a`c+d`eL@`9@]\ Wc ,v <@@, pmb`' /Vwù_w v`/rH()F  LkNnll 1(gC[1\=rߟ?;kA/J  #0OtȖ󿾽 tcXc_ 4J" L@}w,;Wǀf1p\b wN )X X&3>a {iu\+!1a`a@ls?0nN&P)^"J2rdd)*XB=IENDB`PK kN1,Ot#nuvola/22x22/actions/player_fwd.pngUT bnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11#[bq3.'Xv0|H1PH( * &YkiY _*Tag)|ǟ" i3l2Ï`@.&ӌaYh÷?~Q̭T!`kȠ q'?y5)d#`a?̽}|h_HP@?$hW9N;VGodlX8Xyw']wL< o2X[1hj|wQ0t`bV 3dzÃ7 _2h0iJ' ~r0<|+`d%k#{+0  f.ƚL2|7ë/ 302h1 ~o L /~0 *ɠ.w/%0+ Qio@G߹@bAW wb1<ß? < lp_߼ɞ@̜ AuRLo~#?FX9dtU1w+ç@o <2b Z2*}: X@4cMB@1~}ߟ`J_⍅ X`}FY_~dw4TT- ncxzo/_c`cK F. ?@ t w_fxr:$'/8XX>pYWo}O +k/ bI A/ ʮ3 }f 2gRP40:}޳z%@@`9 45`7ù=W.ۏq l2 ?C͗ 7exp3*C"@  `fؿ,o303&1sq.fR_ 7^b8o.a`c.;le@0mdgîן38XY1*s33ܿ03] `2]8~aK\~),<2ߺ͋O~m0kj Yf?/81 'KXY`jҁŨ/0,끾87$m232] JBLL-Vu@Ѭ0WHЇIENDB`PK kN11%nuvola/22x22/actions/player_pause.pngUT anAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?쇲B2LL@|FF?@W ? i%6P=zlj b]9śQL l >`.)usY@_ EALLa`ceb7CXv1\K C0> Jәj~ UC6F5JyMy ]aj^2Ja?v'SP3_)%/E?։UsNV: .+{Y!=hE_| 5ͽ@'h0 Ф??%b07PPE߀.̄`&p2<?@Øz~ =TI8 fy􁁁?D0x: .???ZPG(d_=#a z &t@-bb  @43 1͈=**Y(gF6[b ,̐4H 4M@?@ L Nn L%1ĬLX5^>Hv  ha ,+xe0 `ڎ-(@^,t-?/;KZR2ePEX "J,  X~bVn䠀!. u7FxP` VA !cð9( [$kVK2 +p+A'R| .bd&_|~oCS/|GXC?'^FSӯIENDB`PK 0kN1f#$nuvola/22x22/actions/player_play.pngUT ,bnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx$ 0CsQÅ:Rgpq%gp Kk$$lzX|Xy@r,ھp3~V$-7MBf߷~ueZ5@`aom(Ű}?ÄvwUY _Zw=  o003l^TP`kq j0@A\ O?b`wNC%ӃY #XY0| 6pl?`p3˯ W30!;ۖ+N@ O s 2d1WI(iNd_b ߁Şo HaH-b8{6{+K1 itb0_~0L?0`bRcTWdKD_6Hb3@q q;O28@@@ LI Ĥ"h(М_~2<;qՅ˿y uh+Mexq6ã|(3s -Rb?, [1ɵ e`:,_f ZF 7YrL@w_3\wٵ{/U6;ȋH,>2s雟9 +7Ƭ@99t=02s10K ^ l,e@A p a c~`!L0w3><}{Xd Ayp@`Neb|tm0<* C./~'< HX22>a+ g~4i W[~~ / 2P w%VԃxIENDB`PK .kN1k3UU#nuvola/22x22/actions/player_rev.pngUT (bnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 Lc``a4L903z Ȟ TAf@Ĺd?)L.I0u-×_eDy6ȩI~A.O3w5[20 ,nhǒ XW%;k_>záӯg߳ERbXn Ï4udcLM|e`8w?_ qs ga8NP000|9;5ЄMCk=}pl e-)V0KVUMi>3BH<?"J:> J W>00zt_ wO]eu&)o&V!   p{'?Ë, 5g (WF c?P/`b&32v l| mJs]GO2(X12|ی 􎔊0s01|gde "/_-) JfbFH@13HneX9XYf`fcxv û$x9A zf/?n fI7g>0$'+ "ßOrUxyXcÃ7`YY>Wo fx)ë=zc_HjI20߾w 2Ҽpѫg;uΕ>K~t ?v-` W2\k*W>{ZJ][A\Ӈ g]}@"'Û#G|N>57ex}p+×[A{f߿ᕒb8usb$)Ʉ1i%0|t@1D(ɠYS) ,9='rP FZyD: Y"eeIENDB`PK ,kN16%nuvola/22x22/actions/player_start.pngUT $bnAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxbd7RBSggȀe` 31A30ŒP(+$vn66bRgacRK?>ܧ&}V@1?6#`hzd?_|l7 s- aSc@ Xr1._}|E  Ԅ( X~M|l /;?iig38XCaMvQNH .70rXb3|3MLF=<ԈE'0F* WN@ _0q1Ǔp L+@a ?Ҩm%ot-õ7 _C D[PaD#4a0]TIZǜQFM'K p$&l - ۹">FL 31 d #6 ,I0?qf{V*& l\ wB_@,K;3' %|3 ׯSV`$B4 @H PVGy7>kRT6fgLZ@g@@, !@ۤz}&ș갫Y3p1#y@ X*8Ђ_?k{9?x0?00?sC &k!Yk9r˷'Vw2^>. 1b~Ta HB\ٕ{E['oz{~>2H-!t1;+$4 @)9#rZ8< 0Ԥ⨠E ؊Ox8~|agC+?w6 z9)d!3 vfO.uoR6{_202#7B\B^?#T. Dox8*X ,|]_ IENDB`PK *kN1FdT$nuvola/22x22/actions/player_stop.pngUT  bnAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ F @&0B o/@`A&1 kj2>xI ]_XNQҒd4Ioo0|uׯ_dK8  =@,0o!`ff>" ;##ß2ׯp / t /? 1F hf0@`D39V( Q@ fb.PFtc`bP"'`Hi s  7  T`PuA-W?30NbUe `s//<ݫIENDB`PK t91r'"nuvola/22x22/actions/playsound.pngUT gUAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?2`410ؘ3yp "7P/PP= 00:`ibϸ㸔Y.3f`@HǿR30yg84b#w}Ű~a?Fr/`G`=s`6fXU˘7-@U ?3 1"QWOSS{W=k`hbvúÿ}_p4P졛@;#9"W*h^/O JL &bxsJts{a Z7K?_.;jk֭~z3F201[@3CŬS}DŽA$_>>Pr?mfUftcH>jkT!V'gFgda3B7 0 f~| h'0A1201>gx3fE@#Yh7&y1Rs?d8Ih.0@ïC5 p'DPDMd m #|` $A2bh &ܦ 0#K,hXM 22 "bx3@bD?X pA |L ^_~_baa/ ;v3o3WaeafedpÛ7Oݼygwݹsg?΢ a6pq0;2?h<?v6v^n!>>~  9yy%U}MKK5 sF66FÇ>}u3 Nq"9UTT45 TuddD898yLM-ˏ937KK"@  , bae3cbbf߾<Փ'm9~x:Nӧa`;{/~[YihH 3r%wW38y2|a- 2R {7ƍ@/k:˺/ ad!Ï_, < Ң Z*r 30ܾa Ll@cX7<B'JI)20jz720100230_H2 Q n0###|.)A (- R 20<  _n ߿ax+>qA=~~)77_FgonvAMxû 0|d`Ovο ?pc ޽``gbcx5ÃG=qf@ V]%kV˛>&$>cx˔Y2A^˗O  6k+ZIHJ* 2%+`g`9r)wuUyϞ=_|ɓ@mJUwwMAAa|| || c8{#' _b4`0%0_/_6^~a_߾>y8{qlff^[())x 7n.6>^>N^.VF^\< 32}\^cgسgm$; 0Cq)8.z_8X꯵ I kd!pVj/p!duHqҕ3Z vP@,bb@|珟 ?>}fxgbLLLd́p2s03زi100K1 0/{_ _q2l 4zIC‚ 1l#@ɗ X.{M`fae`b`͠!8 `E 3020p1;In`gϟ~0|?89~pk3$+33$0ebcL@10/"#;01o&ρg fM欟  ZjpI@e>e026gOǏ ߾}@,޽c`ȠT^x$Xq̰~:`~b&KPO> bd, ee ZZ ǟ]]133 @H`Xbw,7J`6?,>z`HCN ++'SڴiF`g$|!a A|/ 33#(5IENDB`PK t91{T%nuvola/22x22/actions/project_open.pngUT gUAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 u|Dϟ cA|dq DP@}Ǜ^ @`ut~cjf`M[8\}` 4r5@ r?P7+4O_6ǯ ̯0q` (nl(†*bddZa]vF$/ïP"4e{ع8L _$  &T@ @Ʌ v$4?0{ul9#1 1VvDl0 bkw7͗7xE QM,Jpqه v& ZtT񇏡o"@-;g@W xU15í nt$ûρvedf'7ubPP0?0>~pmS!7my- YÒ@Bw?< lZ~1+F߿~v1$@ fdQ ߿1G6_hRķ?~p1|,@`YY=cdu0!I <?[3|w1 VT@K  pP߿, 0]۽AVN!:Ɯoߡr/TTt +@A da+3300bY(|AGG @AL߾C\Ȁp7%%,I2B7O`@͗.b5~G ypYXΝy`dv-a  @`=||߿3V:er"@L$@ 2880|;j0@ fdd#vwH kĂ`fbz{ȵׯ? *\ UOz iUcD3 {%XIENDB`PK t91Wțnuvola/22x22/actions/quiz.pngUT gUAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxb?-@ 8e=d-o?0g@*]l@a`%g"f7@w?>|a`a`4an@a?\ @@We C@^f`x #3'%@,@, o>b8o{! n VȈ= Wೱ103!Ka :f \ jBX28 XpL0_O'_1]ɰ?#;VA` o &{ÛWY FC 7\dжrĻ  \atL4L>S“'Ov^pz"<+;7ÿ $m`o_> %$}Ǯ XMWf,i@gëwAA/ 3x q1z@12/0 %J8y~~ŝ~a h_6 l| Dn`N.2,./P63AoP ʆPHsGCV,;/10pp3|y@`M_ _@cR FPFyհ@s*Q ?L߀fQ>#0 .|jЩ\?32YJvm_!bUe `B$4IENDB`PK kN19<< nuvola/22x22/actions/rebuild.pngUT anAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@s7utU c2A|0? E(_ww@ W/foc`@~A`|'˧ G>~Q :W alo߿P ~g`/@ ǯ}z@߁4ęL& Q?я\@l30 1?hbP/ @`+̀x>N &H{W3B ff I8 V6z f^~s [(R??A. C`7 b+i& N>&~:}ʩD3p? pP023?fd^BP0 \oVZeŃ}<6-ldʹ ;&w l +d0+ôeVZ((3& IENDB`PK t91Ҭ  nuvola/22x22/actions/redo.pngUT gUAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb??q>!@0dNu7cg~Ħ H, a kdx/}M@1@t%ÿ_ _2h0LѬ`pK#(qP,.Tm"Πe qHɰ`%[.T i0ȋ2]-0b&L>|w Ej PmIybP0#LL(b_cho_OĂͥfk pAL,PXf 7 Š0e{ar{QIq6^`*```jfc``/06'3W eIg61Եk bPDřS tOy%-6%R J04|Âk XS2߯/@DPZAǎKfS2ܾ!3(= 6c3C[_z/V pBk0 3e^7nn~v^@e`e s^bXcWTu=D=@1 /c_q?/o oϏr@@5[)|4f`Ȱ`9 m>zr P{?2|g=`P_ ݂P h/^:[d8(\A^lf{‚ b: [dݬ_`b_nS[n>xX`` ~ LV+Y ˨ \ͷo8cT@ @%@v/߿ 2 AD8<IENDB`PK kN1?nuvola/22x22/actions/reload.pngUT RcnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<&IDATxb?c6#bf a|V f?0W~011!@11@Ï_"*Brg~nU  ax1H1|=7bw1f(B@~32ɫ?`o,_Xr2H00a|eW2130r>@a0gǺO::AYJpKDS 7`(a,Sw׿? LL@Jao~vqX0y ? #w~_3c`hp50qT W$TeeH͠ʭ  (t?1|aߧM  _e{/ `e1CKC,Ci'($HLۗ2\{?#0311*ߙE߽La Kr6WǏfu $O]?9@ LL@GfС f[жd"Cf`!. bB܂ #$6p |< дK3 ӻ/263<?;pH6ŗ7%03"#ÝWuLg`gy𝟁?;c_ +//$~fz_,X2 ,xvU_ 20" 3yyL2 o+ʹ-CDUW\PϠtyl9?[&Ǧ3e1gAHb_F dj ?~Ow ;X{^ߢ 2b × +j21a) }bxq10A ܌{'MpexxA_݁:0rFF-Y TG>ZЦ>aÁ Ϟ?? 2 a 5>Rgh*04g0ab;<@7Pܚ1-ǫOm~ . ,~M7u4a>pן>2|bdgs^KdKݻ2n Uqq (D1_mrbȻ`i/;d(ðhϟ}$,?g|k<~|g8w0wME'#o^&VfvWZd5`bA)YǮݲyˉgͧ3|u; ?,0 1e`zV1uB-r6N=vx7?ΓU`e0c|V Jk3¬AWrw<_ t9 ::uOIENDB`PK kN1+j]5(nuvola/22x22/actions/reload_all_tabs.pngUT NcnAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb?c6#bf a|V f?0W~011@11@Ï_"6*Bg~na`U  ax$.`2{1knPQ   \ǐ/"?+ 1//[ 5 X,oќ1B59! R ,Gs^Nݟ2`!Y>ԯ^#<~3 s3CFЗM _gFJ _d0w#ìS'3q . 3v,27&] .`% $  d*Cl vw#3$e ->0t^jar`H,f8|$Ùgg?~1X0)0hr1(ܴeȜP') <<{B@ c4PchCGC] L s>bL@5gIILy0ĬIϯhv i HIJ22F01\zGx#?+002=9C~g Öc1pp3' pq}gr. L 0bǗZ>D&IK01rKD6Iـh+ ? v> A#gSf_ 20. _M fNV`FbٿSvv`dfRP@h7 l;nQ,+(,>3'`IɈ6 l3P#WW~d%0~ϟ `];rIENDB`PK kN1+j]5$nuvola/22x22/actions/reload_page.pngUT FcnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb?c6#bf a|V f?0W~011@11@Ï_"6*Bg~na`U  ax$.`2{1knPQ   \ǐ/"?+ 1//[ 5 X,oќ1B59! R ,Gs^Nݟ2`!Y>ԯ^#<~3 s3CFЗM _gFJ _d0w#ìS'3q . 3v,27&] .`% $  d*Cl vw#3$e ->0t^jar`H,f8|$Ùgg?~1X0)0hr1(ܴeȜP') <<{B@ c4PchCGC] L s>bL@5gIILy0ĬIϯhv i HIJ22F01\zGx#?+002=9C~g Öc1pp3' pq}gr. L 0bǗZ>D&IK01rKD6Iـh+ ? v> A#gSf_ 20. _M fNV`FbٿSvv`dfRP@h7 l;nQ,+(,>3'`IɈ6 l3P#WW~d%0~ϟ `];rIENDB`PK kN1%++nuvola/22x22/actions/revert.pngUT anAlPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbde`!э  f⟂ [ q8@Ȁ f003 6;]{__;] j3 lb n廕xn &? @q|~3b8@0#Lwo?1+:31Mb` 2=9Ǐo 2oRP0Bcv>""Нa=&{%V=`*W m:,K7 0\?`7@30ܳ+ 82\8u#В />gV` '8ICkd#8 *1?anoY#Ci3s>N4K)%*BNx6%+Y05p3w,,fsf%o=FL4C '?0xrN<,15!̫RARѥ2T-ifh-c8y'þu' W33238As=+nB 22eOC0Çf,\? ^}/0FL@b@0e]}e|j~`BƄ*sw#AO!! (11@0l(Dd=% ~kXedbe},| MX.baed!@K$aX72y///w_t_"> 16 (_|cظ, 3Ǐ ?`rP%:IENDB`PK kN1RJe''nuvola/22x22/actions/roll.pngUT anAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0|ϟ? 9VVV߿^)***O>;vv/e0 X.$%%Y9b8y?dccf@ @3prrpO0XYY,2e_~]9 `Ԁ^PSS311Qd(hfΜPSSˠ°d<'''Yf:7XFF`DDXǏ _~e`ccepvgPT\ /퀆r 666`CA"82xxx6o0o<X 8}n00":u۷ ,,,`40(Հgff u09|U`]̗/_2z0h204 h9(}caĄl04{przƌ9 EE`9,lpgg`ednn.aĂv (>#yyyp--]iIA)h!_ne8}&PAUMӇO@  l7oԀBC,Ld +cd_aĄb&&FwA >2|( wcx)(01"0,BAGVEx{b??mT9g32#=}7~]<Sq0x/`S9Ҏ~,,c`x XF`R _4yxg-%_ B0a+pJf8E hf`aL i1'Ë?o>?d`߈ X"\hH04?a߁XYžϿa`b`B70Ē@..b^ n?q~e&KF;k ,_(% ߁Aj! 330(10sُ_?~f7`0 ? ,C~\ @g_2ßL@L$,pm ?X_O8@59sl@w`Vu@Ѭ0P`3OGIENDB`PK kN1e&.uu#nuvola/22x22/actions/rotate_ccw.pngUT >cnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  +ƱFVNXכ}L tf g@h`,!/1.NZ_Mamah3ܗ>"0,BAGVEx{b??mT9g32#=}7~]<Sq0x/`S9Ҏ~,,c`x XF`R _4yxg-%_ B0a+pJf8E hf`aL i1'Ë?o>?d`߈ X"\hH04?a߁XYžϿa`b`B70Ē@..b^ n?q~e&KF;k ,_(% ߁Aj! 330(10sُ_?~f7`0 ? ,C~\ @g_2ßL@L$,pm ?X_O8@59sl@w`Vu@Ѭ0P`3OGIENDB`PK kN1DӒll"nuvola/22x22/actions/rotate_cw.pngUT 0cnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  $g 1008gd``f$/ǻ db`%ĂJo @" `2*hJyΰ aa w1/UYx{Dlddx9J*ƺJ L o`;wW__?H @2uŻ]xXX ~g@3|Ϗ " ?|`X0oeAg9(O 3bacd7#F,Q@7!)qiaq<@! _KP_&_1p 50Y!vV6mY.gb7x!b@ f`4 BΟ|pȳ_~y(0֙_[DL9Tϯ <B_ ʿ ?* z8bCџ4[   ~1|^',1/7ȱ9p1P.??-_ 30|-9B C &dAA ߁I ,L b DB ? pC+Y9(3~FW` gNf@d @py c9_303C= b ů8ӿ/e%/Jȅk FH: hVr;%IENDB`PK kN1lhmIInuvola/22x22/actions/run.pngUT anAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 1,, ~10? gx#of[^II_AAwg̜i ldHq ;U$Xe߽cYཟ?KXJ XLc # t1'O$;;33ӫW =bq,O$%10022`D2 3TG)HZYH3 i0p 10o >3ϟ f`Ao G@ 20XGF2PP X}@A47q:fONC [͛ @ 7Ï?5៬_!a߿1F AI-ѣO#AGF @$>~``yAo!`C2 oߓ#$e 2/Р,jh300! 9 =z2 ]o֯71fw7<{{s`obd?P{9sNg%rp01&@6H=  9 k&66vOyĄ{ (YYy/P_` tݟ7|Li0K˸ _ϾyEP&cP!ÿWX@feco1<}MPHf@Øb,򥿨PP_ˆ_0rpfx!Û{w^]ӭ0 ċob`|>w3|S'|Y 0M5s ~?_{G߻l@qT0!gbAlϵ)c+GRO|.& H: hVjC0CjIENDB`PK kN1:**!nuvola/22x22/actions/save_all.pngUT anAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdbdg;÷XYY;EٙA&3& w^1|egǿ {o ###07 : !#AA@`AP?8(8ٙxB Xp cggbu0h_ Y.~da&b P?U Lj~)C a𕍁C HrQbb ?Š-̠p;ÑS@ˀ0? U ,`,a`f0 @, g,A+?f!pezu&F@4f 3å,0_`31C   *{WuV̬@mffh33( 7ƿ GofyA f t%;?0%pB `fAf2702 8FAh@l 8Q@`a0 SPs1@A I0C&3FTd1(A f)D aY"M  Ɉ(ف! |,> R/+a\Qdh"'0ݽ!4c``S @p^a5 yS790 wg` 4?O- : 8X a}(Ȍw- { p}߯v(@H G!D}֏j,{֮Ɵ<ç~E@ >rldzqwt`k7Х\ ?`>A`Ԍ@pb^6{EO<o61l`dA?_F%`X m 2x'?+ï@G;A Ŵ&pE;2m? L07Z_Wɝ=0@aXWWDC[2L[0-L R@[6 sVebgxyn;CSϕʁ#W_@h| NČUEcI)a"kȉɩ9`e3  @p[q  FZUBJ1IENDB`PK wN1k#nuvola/22x22/actions/spellcheck.pngUT bnAoPQux PNG  IHDRĴl;tEXtSoftwareAdobe ImageReadyqe<:JZb% kL_px@h:?D*"%rށ K4PDtؕZc! E穅UϬ'#VBo02eBrրZhkXJ-ݸ==LM'FkNKZ|_/]O#|T短~0j閭X##!i8 䱷2o~sih M⤏uD>iBsWY-ecS?LLgX7oZ9"BUC??{$ƭ>Sq]q1L=&r'4zĸs҂ sy:bݨߓ:&2fty~?P_ZT񆍷IENDB`PK kN17(!nuvola/22x22/actions/start.pngUT .cnAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?-@11 `df@1 3fag\zf<+P'3s s.ab?1_OIҋ,7=(Af_ I| lSR_j~-5!3̈́( Xԟ LHmka dObaH  p,$YĒpä⍀ l4 A  X-m9s<,->04#;?? }N,L-, a `bFV2(+ 0̻a-&e8~1|AN!?ӀLs12aŮ{  %%evϰ>'o/1xdo?- wr/Q{~ ` (e4Z0k 3 h?~04h/ " 8bAKzlll`Χ~? @Wi~ 3[?OxĄ }'g*F=_ /`'ؕ^gg7?@63 \?)(xyrŋϷm]ʏэmW]AC8?+8F0 e L= }{o_`;C[ mSßvx  $ l@a @{;d󚴩S2} ڡ/2~be=,>b6. Cwfc|-3Ky*K ^ K}YE@/Yed4j;u+ÅŹ8ؙA; (#C@ \?xUA[Uex;T1` `A0Ao|{FvsG;Z@fu@M 'IENDB`PKkN1snuvola/22x22/actions/stop.pngUT *cnAhPQux %{PR Ưܺj2)#=,]iAE4u#-"RXLu-Ԭ,ͫF僲f{X"m`rs99G׬NpE28¡㿔3 2B:A1SmLLOH`\B+dH"R>dddHpbl| s>vFF0܎g|cwVZpRL |:QU>ß\.W  <℧.t d޹A9e-QgMV`!Vz1XsKs=D᭏vc)˧^G(9N)M^INtע{ %3j}@R-DB R%_&wN7Y h ܒ/H?8\T-֘)nr(ÞR$n3ߐjaàT%%ߘ;v3Wl.0_wҀ4z dTsQ~1_xL $'ۋ?ஂPgF%0H}J*g8JaȟFӨnƽ)gxkz+ (~hMTu`nl'M}SV7^Ǣ&jjC/@X'h },F i+vg%}qz}kzwxB]KV&i[3 OÄ?}}dkzWf"Nn'|(A7̌#K?'\˩׋;@)с:Y L,zjSCmWK|'QYFj%_s9P`"Ėp}F(a˧-"xHfW͑"KnٰmAW)Ozՙ,QMO{}O?~0ݻw O䫂 ll\j "¨9TcZA^3 ?~ˁt%NNN_r2?@ fffH  ׯ_}`Xo`@`xٱ?@ùyq=zJD ߿ Ԧ@`չU ?//WWWGA A| pA; ;@l񟍍 2d08b Wa/p LL,`01 2ϟߠ pdaac*b0@RF @ 8lDgbb @t2,!^ѽ 0`lw_,] s?(, NL> flhIENDB`PK jN1.W nuvola/22x22/actions/tab_new.pngUT anAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?dQtON e \w2ge| hzf?qQeuLl Uؔ#4T3ٙ2xT8_~b|Ҙ.yiH _~_??xI9\BW#*`bE- ùX3HkI_\b,1p0~~\4 gl70 @#b?3Y/& K֏ b~:1>6QUw%X9L- g6o.#-s_1|]7O={&`Dr|ulD_>bк|l`L;|c~{.>_^ 10|gc5^8/Crr L@)@6hS~wJ: /^0Hz9Č ;.Oݶ | \@0ܩ"û $n0b d0@߿ D> 0b'zbDׄU/?HK?+p xrȿoe˫/9gMx{{>?l ۮ1.Kًݪ}n*r P;))URg8='~VWFs?}׏_L/~cF56>}A+##cLb ﵻw_ _';6g'/\^ݻ?}{gL 3윬||| LLL ,aV rD~^Nm]w\ <, @yvvv>ANN.߿@( kppma'5e?޼z @= lll`Gpqq3|ۏ?dZ`aa[A`V@0ڛtsp c˜H(D4F051,&?6 lw_>/]?ZX1!48DFW xIENDB`PK jN1C'nuvola/22x22/actions/tab_new_raised.pngUT anAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<ZIDATxb?7?&&eY4# *\| |@?`W 2O™ h&3pJ3z ·0^ĀIPᶎgQ16H +*nLڜ`btom뺊ɰLZ@(At_$@LA/lKI{?湿/#_-,p;)Ţ8H_e ?QEE_TT ~dKll7/~][ֿم8988IДA^6p1rq313r`ɟ?~۷/P@1߿1] @@SIϟB6XLL⊄XXN爊 3 W > ۝;j8_TT+V`" *VFy 1@4obbpAd/0@ c58>7,,l0 Ga032b7l  33tb *FF|.Fg2H9l0++#(~/ @ ?,Q-)H =xbXPFxB |?ص_|gfg| `qX{IENDB`PK jN1LS#nuvola/22x22/actions/tab_remove.pngUT anAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 X/ʺG__yco0ڷokݽV&[@>efaa40``bff`srro@`U"\kR|g,Ԕw;()-  gb* 4"b|/ÏWϞ20h1ؗ k9a!ӥgo~/ç?7Ѕrr ,X  F֌L ?Y햤\i^>^.}޴i?A98DE>@ Sf-%_ f`;zt3/o2ׯ @Cմ &8ڧ ://쁟?O@;FFF aQYR 3?r\@g? 0DL?`8b~F ʌ|d`h!P3#CŦ'O KH o(@zFP*dz( $@`H|~A ^,L f;va?@OFf$/301zaϞ} @`o蛋>Z=*AO~~ -b8}7o߉ [0K\ Ljl@6×/_Ο`q6_6vRV ƆhK`<#´W<$_p/0Y%7~ L̬ /70|, d?pq ҆Xc0=kii0sd y?c$p[[[- @`edddee0 8gZ[0Y ((@$à0ы'pbxd -6 Z 2xI @`Y41`u9:n3}2  b0+J4 @,0a^%zHR/wѽ rD 3`g l 4Ȃy"yb J`w|^t'?H+ ar0 Ob06Wдϯ 6@ cIENDB`PK jN1s w"nuvola/22x22/actions/thumbnail.pngUT anAiPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?dffWP?H? 9 Rg3?~lڵ  UY!@"I_ }01򟃃ɳ =a`ffad #"FF#D_^QsK 666u7h- ǿ0K0gv 30/gd;] ` 0쿿 B a r \Pacf@C? ^]h2:/`FĂ[0f A h*PV&?O@}? c0XQ XPAAh(D H_yY@BF.N.va`\(rb/6`SЌ_@>db&@abv | "  #29v(3$@11,, < `.Л@>}6Njfã]]d ? >b`Dn &$20׷O cXݗ˰pfVo2L,bx{ßu0|~vRP@cPLxqai_ß_{ a#l .cx a uqP Xc ߾b``fx2CWy:&l ?\eu*8p3׏ L ߡ9b0? -^wvE*[ 0 brFFxBB)+9 Tԣ o c+0d+`󇁟_+0 P\ 2XLLAJJ\ 3_ ߿ @(3e}4/V0 ;;? ՛bmr9W A@p3!032`j)**A! :XFrsCH4#<, :Ǔ'OU hU  n߾f@Њ4)u|hIENDB`PK9L>htCG*nuvola/22x22/actions/Thumbs.dbUT VMkPQux  <ߘXBTDe) eYEdAB9*E)X6s_q={^z~g~[^vww ߴ}")!#  ͧ/%ĭo >99@ 0ThZ&`;X~` p H @@$ HҀ "pP D !:@b/j$$h(CJAJBRQPSQShZFzZZ4 LMƂac0c =(RJRRJ ݍbs0 x!H$3SPR J@"H>q*i]01w)x jᕴtbaeη_`u M:G M7=cu%+aqoLJMKϸKVvaQqIi' MO[^vzgphxd ~yB"6Bq!H0Hw1KŸsG *^A><#>WDDdraR,vAj]gSY|YZ}\M Rѐ6Lap׳ "fy0Y7 Q*`3&y]q3EY:`-4[%J꣈I': KyB[-P.K7]jw>ܬ$B]35G{fV'W-:-s&V: L!,%-FC];wVe{$kioR*B["g* nK//Q .o!B\yY{{V/ԭY u8Ggb55c/Fk&A9#1dKP֌~|ʕ~f~Eoz48;Tc*`~~_"/e}u[WoSw@X~lv+͟Uƚbp%a' bxCx`t.{_sVkܚwUXp>?9X/ب1ĶdANrkCIŽ$#ThJhL=Z.%GKG>>:[xmue.7`&.Ŏbn[ c^N&E-IfyݵָjR e/+{\D^Ǵ(6hx~p,s~:2őE:c񣎦\7U>0̊l6"u/>/=H {0y I0Wn!#S HEҚ,ŎWyN;& РQ'ڻ k=7oPV\ŎVv7iu/a 淟C68$f7NGv7lA۱X@ff~lGj?r_o\H .ʷs??|Aa?z Vo?~ V=D6V*ZMOZnG~d31DiXvDo+uwy.nԗ6M~Otנ,_-g[z2rF1<< ~:U(2/Mq,h߇j#+k ,kO %5WNL"٦>SW^(R}l~)3*E oKVrD);bvE]9CWGΰ XhșqIBJwc(r&2Z:1SOt{iՊmgP$OOLi)tpc2njL=8!!i!Cf#$ ٵG4ueJ}WS>ľ-7EW"d[]C6VϤʡFh\6j8Zԝ&3!qhhf s>s9n_|Nmc` cEJnܲ#Q4]. s4t3?Dc+??pN$+Wz]wEurݍ!wlRasC"Fjj:W&֤3ʸjħ=Uo`يmkh2 =}?dJ쫂7͖ FD Ww~N.l!l+='8sumAuL)X߶}x!nwR SFNO.z[fM̓?6/={djKIiT)\W } Uwi+ʤ^;"5,lKh34d4[+E ͮIk( AU(beUx+߱%EEDيA MMmD(q1!v+$z2Plݙp!C %F+e# Y/2u W7e3?ܶc+?̠5Tpyhot3&ҪkXƯ}O۲ڝja"SٔTLsKSI}b}{}՞2oWn2iL5$v YOMٯi\Ug0+j>Cy\GIguXN {:Dn'o _8Ght69PX@+q|N6/tSLO=t9V}iZq7'O!ӋS;mxzY28 NrEM♹O,c!ԋCI1| "te5-=JUօ{;) z L؈|KS-8whdzMg1e.\Isscq5ѡI/WQG9%N1EPfRݱ6ۀ^h0YLPnvؗWGTҲDЌa}e-n[Dz`#n?gt(0SZ=(=Ӊ:I̎g2H[طɍM?rw?2d#5-5 zo^ ѿ+`@ xŷrnǯuZ|Ό@ҎcPt!(FOE( Ol Bu980C;Lsݜ_[/,LaȞ zN'BX-0!<\];hVˇH0|2K &ŷG8XCcnmbiĤG254/_7,t4(q/;]z;^ysfˌm=ùxq X7̗b~Ҭ;vkLχf,xr{L8f G™N47/e9/+xn\g:IhDpfᲡTOܼcoel4SU}Xj.{3_݅}Vwz8A2 ;|o`EP@4cxc〈d%R=,ei5J4GFm=̽#[1VZ],2FGk{Di .{('h`,q#]_8k_o꘷4'/VG?p4<~95@ }Y##a@8DW/눢5 @<$;zk~RB"ǔdN2y܃ EB(ydH%dve,$S q(2f:Ɠx~g=pZ}gQ ĀXAHnb2H < d cC,(bPJA(o@5kԁ -hMA xރVa{v|[Od=~lC#G+S`̀Y@s`,l~ 2 "~?VX<Wa>.cƉ~w6xDHh\}l44LmdR3yE:.'։޻1Y=VuH ;Cu־4r)jl!=5~6Ia|qNyu9CT]@eY[> ǠW]L&~n"Q",_O5\4[^I,n&ILL'δvuO̐ԉ֪a vþΟd :b MĊ?~1D^;^uk q|hBz;,3m>V{z(W<ܗ`4qB;Kk1=-#o*h9&,3l;Vm48}J@#㨉? eɷ>j{>?;翷~&fnvy(G܈ 5^q=6t7M!9.PBB{~bg)qُV(:VRIU;jfk i-5} k+_M ޛ*Y[bF!Tߟ x@*s̒gn}W.KB xX͡<{Cԯγ..ӝJL>_w[,zH56Ѐ֎M͙al͜u\Z{hT9ŠgvyΪ8dV<mUlj?@.5! "T:0M+RYJjWjhʬbF$3"#U w\ݡ k_Dg[M E7qpF0GG&vgJx~$pQLk1ṆF &XZI~d8I~ڎsxHX&-l_l ^-̪)QH1E+&`Coٟ$mぶ96B q|Y+Fv[+iG%nSLAw:+Lge")~U!ZQIͱ!gK=4g9|ۥ&Bbں^`3~9Ғ5<]6" O\d aԏǟ2I:ڹE8/W.nFÒ!ozZ1/uŋ3O|}Px6K?OX~wE Gߺ_C6ȿ?>'d׿#ֿ~?CB%[H@hO0n "3`+`; ppnq"]YB@Q I =$@ H p2P@  p/4mp]&ċK\+  p\XA7 v8G pn}0n ~ޅؙhs΁\APY R/R|D۰H1Lf"qسpg.M$V\NuU ua&_ycEP%ss vGy_SU5{{ 2bp .ƫikMLV wbcǐKo+=m>Do5+Pѱ@?P10#>)*f7k`Pzy(.a# vQJ6Zx/ODG< zzkrzmLL.k+ <℀)Y (%wMIm]DmN}pE7h!97IMUTGGF)L;mOT̻VZeK-DU Uj;qkƖ^*֖edGx|Nm"vGj9tx ;os,;IYK6jahŷg>4VnGEנo68Rb̶͜^[g檗 g'& G/밹_/{aRt˙#קA\7?wQ>c@cUzy;هrږ@!~lAlX^j凾!s97|ݹE֌;&UNv?<T)Tʾ/!dkʾS%6ٳ}'$$d05 ~;Wt:ǜ:>9s{?װ ,Po>[Tm~c(~ͭ ~:Zӏlʏi?Z'u~J³{zBr𛝌!oc]k`%&̫FtWx5V^6Ii {->H|a @,RѡrO-nC^̨;5E{ڼWRr¼+Lu6陕]~w̃SoWDo +|C_?E+K_p[+]+Rc28G ssXSŸ)+qE2%Y<2Z3|rOkQK}Wz0qҙ:?}?P08Uc}R^U-W==!i 1&O(p[ {u |rqk `ⶐZ%sqeqeyYX״ndhV}Ν2޶cS̄{2qsh+xhSG*ft,Y柅O$ݚs&{g Lh*fQ¾}ճ,շ% cJ4ll^h Y|ļ~+y;y.;yV_ķ~A|7r7^mzX+o16`%a䈧c yx"\+B%-I4CGw!𵲗C8qO_J VߋLpg9,pbOݕk Nޏ3˒7%.'z{QQӲCRB'Ni1d}qQ5Jm8M/ ZwL[v씻X1]@Y3ҵ2ܓMq&U/\ _YͰ(L.A@<˅÷OxV jQ닭3X*ېEp&ˆ $={_MJw;])4-P ĔJ@"!Ll+Q{U=7`M:3oH!BIqeJdT{7Latڣ$v_gYdz27_{_;An A%"URS|75%^TtGJ, tX#tmp{? SҹsC}Vg5VMߘ9qqr˼=KMRS%i$RXUOW!ֱl(_U]] OTr0YߔC#iJr|9}hѸ@4âMk59?#܁PΑRs?]?~U`^4A\*?=ڂ%eaTz5ǓQ>L9c+.ub;a7 'jᨽ!Y2WQӘ9r! !7 9!/ND MhOt xNM<0["z&u cgzpn_ yl|_NbNWVfecn{ûsJ.|J޵+*ES&Ld"] U :`ô|e;N`!c`/v3mu_ L 3giƕ0<i?[A t݄? !k)3ҜĮ19  8$~uvöPi`[ ZAKŮE(S99&R0'ԇ.#pW-G9=aey@Wv?B_k%ksl>.(zB#YLE_o@ Ʌ]f<E3[犊{VP _R(x|TE4822(\ؔIZ#K4D73"gD3j^ƥ/O r]y J~j{P__1|a.ɷ%A/߸S w^?am.oCnʝBe|3bkS +Ѵӣ|He*c4PLv5fL ZN6DS_E$MhqEN$]c`m9йIqPkr6w%iwGfnV7)(C%pF!K oW<2e>QLpڎB>GJ'`oU.U=\)s%Z|#:iIAqcU*X[M@GNaT5̷5:W 8Ԣb olk0obY['>8x#_ JnP4{CΖ)y?[?/O{_?+Z)b|:w Oʴ >Զ8[Xz!Eπ(/tUues -ػt.7JCO6zz._`MRw*o- T=\rl1/t7rm !jEto0'LZwtp|{(e';᜾ 2#JpoWF:T+)gNUn'{u1Ƈ2hc7Bdj˜?J'CmN.(mS5#2.IA+2515ά>vQ\A"`$d9$T.v/ΪI2[>*+&7-PetW/_5I~ 4#W%)6"/qz2̕[o5wgD<PFn Sx4{J`٧GŻ8$UϩWoiM;Φn@ z`TݐzeS3D/ccziA%a%fUU([[eU2P7(!ћo Ǎ"S~`xH{ك%V5K++4ٛk|}۫pI=֛'9Jo}L::[6DTn㹰@I"G>@%[xffyp*c|GiO~G^6Bak񚮸,#S7MyWBL/=sSp^e]%s>(]P6JG\$?xS[u*/mNlf(j'1ǽ,L #Ac!x:R&&7CuH\aKUT la7[lF`ޝGC K*d7,}$Td !1\(Er-QQjBeWی,c)O7g9s{{ts9sԭRZRMCh`Y->Tdʭ' aJ wZj@WXw6G"QdWz4;lMs.(tԌCEbũAa)(ĮDwBzo p(&6x?S'C1u}/S=ukY 6?-3])q3xyS0F6?2jvIw ^ŢtJO?VGs`2m+<f '_NGMX@B, 2~L}auww zJռX!Cf%)"susY/`b#hེPo˲!9A%^8>ƞuqȋʆZv 9Dt_Zw~mb/ TMލ߫âÍ):)EC$ mOcU~ axʎ ӉՓ^qȭRqV>)m^Q#L50nUb-QVPzm%-FfpIO?s!4 6\'ހTb'n'={9_ @1ڀ@R#"Gj5)[:+quB]PO~7;|DwA_ݚǔ˪ѨJdVÌe$K=pxCICY132 XU7l#01o&]@|]d=Y jTtv| 1`yD7gX%N AH3*s9,45zY8yЩWk6Α\]];agڌDW~&w5-z:]DrVA?0fjwDJ'BJS^SogjlGۡz~[nIrb?yL} V?^ʿ/*B5saکY{E;*L*b:d 0cyEN\ZKE/.gXv9/MN6OJB=[}~~h@_N{IAd`l;8.{ !`8"( `u@@(p@8 G먁x P4&pNڀ `y /O3 ` sV5`߼p.N3m_ w x(s:W@|_` €p2~͍m@k5MqqWh>tW;7ݔ|ڶe/v%fL#["ȣ2KGnxQ}q 1#c_r)UdS<͋[o*udyC'j%}ڀ0XVCdHxly#I!:⭸We*Ň%DL=_]ZHt;<\N!Klέk`vpO]zs}V~Fg%WE*Y6+ӄzVF p]|IȟoCC~B~o?z~^Bz~>eB~c9I/~Qs YwhSCS`Ry<.#h7j> H I?[:7q>KY"JV(Р.SvWBz Lc!Y屉A1?9F 23<3|n*tY.gWep%7qWp LҚ<3{ײ~ PDɒ]:b  7 ԭh?Rv6WcUdpt+~f{Z/Eo]hwZ.rAÓkކR:u<Fz.9¸gtUDy rtUzgO($̗e11Kob]l)ÞJ=܃{WZt~{[LteR} 9u~ NI;\/::Gڮ??_%Z<-ԧnPi *x 9RX4^%V|TD0)Jl^’>Pϧ[~hP+Bl=BnX+tv+NA/D$E-2DӚtٔ*i+n-}:JXWwFQR}Z RKđ+a{+iVO 8ێӉ sj%Hae=34TEFuuѢ!t5biG:^)՝m6Ͼ4#JU֌ļD?#YGNte!ۋ:7z0oўgVwo]EɌcl3q٨8KG*־QLO%Ċ:I,3.-))ư$4G]hsZ7_81c˗̋qkTovYs,xTD^Q[ȗ(Yq YaYVeMb$DXa}6|PDz@TfyLȉZsYf&;>*cO`Me5Z͜RԨp{v^j[Gq$6MsL|uZ[\n8 R|ͧJuWLa!,P9G^gF&ҳ+$uOŜbXØb>*E7TUqIc1, " N^zZfN0\BBd7y)_/[(+).%WF dzp(Bx\1vܐ"lן_&=p/wk)Џ*}ctrQN$إ梉>\=:֊5D^C^d)A帒XF !teZht1nIIe@7ĵ೘6w*T'PR=Ht/)ν49/1BXC6 U)@:Q4D[|WCRK[zUR?OĠE8e`:L8-=;t<,4iR# U]@`! H1 *Jkޛ"JO@ @w|}[=\8sW{f7|`h+̉NS4 :ŅL>W' M ,Q_dʋ,Jb B52HKK3WVEKQ2 JRl\ZG8E7{!˾CS4ZuLnvz!H#,[w}4E~̦8?I.y)SܛJP5f\?-y%M)ATIv_Tή2Kf]kjzD=[2)<gc;j,!=p~?/ % @(0FQ@4X D=ϑT H2L r\ @|}0X(J2p@%PT5@-PgM@3m@;t.z* |gg`ƀq`i`y9,+*l_M` }:?p'TŽf Ud!LQHih,C/@ VèF3z8H T޼u ==1 !T-A-=bIimIu߭T ZBKNͻ\%#{hU&_T+߾*qvyQ~6piyz)!LZc|(ܩ٧4BItcy;=ј7̿ =JLf7-G&܊wWYIO9K˽|PaQ07:pCG4BѤYq~C%uŇɁH 88>d**[~Q;==n'9oֽS$ѱAR``?=߿"=>[j:iD L%ns=JEY [y&ʠ\9!#M:0af@LdR{6ӿY=yoOSor4ܠ:O5G^H- -j"~9(Y'53|iOm 6u\0)rJݣnϸ4q淑lB@1LJdrnEI} b9T J![2GaXTA׬?N\OͰk# M Դ%잳*^H:S5+3?0?~<ʩqcvY׫R<%zH'u_V\m֢*ųmQ+CFk.fN췑eL~)ㄉ]d)}rcWte85u'FAG"[X\V[9"#}Mvso-||"99Yeׯ5(WK֔o%ϩr &_oi%R>qKGMZ`Fw?e;Rh=c*\17`'m>P`HKڂyj2+63C]ѿ}=J+ Ħ$=4#VTQ .rBE <*ΌniY[z\r5kғ0֒2`·pW:)/K3>Ȝ栳u ٹIG7vyEimTst홨|\+)\C o;;aaR\Y)"G/zK.4\#l&PH9]AbĔKhu sp3 bBG'2zYq6t-J'3rky)BճBqС.GglOw#/m;$#T> [8\L 7h@\/NA9؝Cq&0 :fZi j֎vhOOp6%۪N,]$rbF:=GCL˱4?u.D\Fѥc$d3*CXQ%J>x+|n;/5p*YyOseCKßd0g5m<z͙Q/ .!6<î0?4&+K֕3׹i8t6ȋ?60n]$z~6剤 ¥w" eSc&o:?>_G y>ٔ>v>ewc9PnRٵ%ðWtg-ڒpvw,Vs;|DB+@w;@lTx>zXou;=;'CIfkgœYKw+h1Y'QtհfBiXaul-ŗIQRju/iXCmylPx0ߥfʨNn.u&Tv8 g@DG%JB/ոhwix95$!Ո< WL/klTGZΆ6}y:f>E5]N\)lSPQC[p!ۺYT tDcQf,oӽ(\٪,V/.=>it^QCݚXV[7Wyu(BoFq̌~,ڶu*MB1lj1˴%d`Fzҋ8ameT;&0Iy?0~J\ O_|}{}P$s?^!(寏$-`E'ӻ›f> &֢R[swgټVVhchX(rι!=d_]HJ~juq,LzXqL~ěNRW;zU~cT̑2 tJB((N'+O#]ae^jL,-RܞJr5_sfAKn:Rw[)dM61QIQн{{]F67:$ -{&iΈ*ŏ =d^wTǮbTe{We_{yؓ##TxNd+,C'QvW\ z]ݕGDF;Е۷ ϿxnhػpIq(%%{(eǞ e%$ksQƮ$wϡ;{^qs_.<.[|&̄Rp|q3A.ǫf\G^m4!Boܻ#^Aw=#(M>9. Y%'gn>0k:` AN:R"xCPCҷg?t Dˍ@Pm`; y rcD: 0& X ; a^B@lL ŁR NY Nӛm\x(E Pj@@ 6lG>0!03`.mB ' \upcDx x n!?~9eJ8|l[8LI-{9l9ţF_zJ`,&tT}YN-d滼LsǗnwbFx7rabΞ VH54X1^4{uOt jQR׊gWk"*I,YN>՟O/G& &8yK54;6z\|A_̥9-6G[wlF>K;0W)KU%Sy1Sy5R4r6@켍6h;{tBv&<$%vKk֞ 7g^G@D{88FF(--/5p뤆a_ʡ(m*, )OTZmjG??_BIteJ+e.9}8™쳓jӖ<כW*?Ee6t#ynmKÉ{dԩv:`&q! SAȘiwYߑs )ao:tm-nd{_@,u/p|X14fs#5dA׬#ܸ2ǫ)ejI5 ^(]H/m.~Ԡ%motIG'Ye!\:irV]WD v&9ֹ[F .ީЩ 5x_JƏbIgf gg1'U<μ3*ѩ%kD<˱2HY;o-y1,L g% jGjkoH9_ "G a -2\ G_"G[0( ȍcCgKmw Q ߯nrEw}lԵwr p"Ƶ w^2jyXsspc(fsLm|4t}+0a+<$1ޞyPFTky3&+[´LjTuUꐁ]럌c,T=vЂ #y!,k3#LI?4x*+Nٴ ZFvGH9O| ־Gbx4d[ҽݦN\2r5.D@8NSf ?SWhiOsdّJM4wI:qȷO?_Е߭r*uѿ2Jnd\nAds'}#g~z."_b4O>CrB[e-jr$Mڤxܴvuĸ*"=P]~.7$YNXK}NOQywivԀnq_c/_7$>6vfI\Imq n;^dDJ ö*&NGÍᔡ{{5cI#kibÚU:*z(&FP9|!kljb1 %[X %Rw)퍑KDWT%"qIqyb>4glO-vC.M`IRLfc-wcQFjWʷƄVgֹ%/ʴ}U${]UwǪ)\.[hX^n`p! p"A2 $\R@H@xA@L<1O@|P A(4( (T*P A u@hs^f^V:/ ^. z(` !0 ށ|S` |`Li0 f O3_B󟿳7HMx{󄮈 =}c$j\REAkNc\#C3l!_"w8^5_۰umσ֛'VDrDuiOkSVJ'ZͪdUƶ  jbh;R^#efM2ZUT 欪*ܩ/tOshBb!>k-m%z5 Ȣ,GwsΚ|H}A-ň{9$4wbyVlǎ MLZvQ'BkR1Jc|WQQBfjBBQT(r'zFuRvjzDuF3Wc1ENo[8Rp ʹ wY+E:(ѳJX}D+M#Ī,QIF;ègә/`WF^|EiYb{ǏׯP/97lwW{M4dTˋC'P*M{F>Tj |P8R?yl^Ic |cUӭlYA+L'FrF}5E*/9sיΧ^a!dh}R*kO.n@/LzWF'+u 0x@l E`1`:i/ Z4c~K~ѴDw[2c*j`!d W{+A{.'Qc&Vy\/\NihBw[|9LH=$IT`[PifѯړPKts-U02⿟r#*Ϳ?QD^ ??A B!p"hb=AFdRtP dG <9 l.E)(%A_@9@%Bnm1x YrcOȍg\k_~a1as&lw'Qi7^$7X En16V(0r$]IY>RWt ǫK%OΫwK:鞊)=įBm1SK¯VP}_4gTS۶ǣDA:# UzwE!J("ҋR(U A:HPos{އw;s=7槬%?{9fمθ y')c ITFtXA'k1_{ do9 +"jKMz,wA80|^|Iea"9:XeҀ|E dDIml(^xK|BC'C`#0PɆ <8FQu@_t+Z_Whr(qxv`I#3$Ԣ$Y0z؛*Z ՔJ8 k;MkbN%ߦEu?s&3L<:*EE*q `p$dB0ĸ KWsn̫лg[Mto8@[fCL2F:=sI/XsiZ ܌"'\V/ a$rJvpK#CX@!KDII^ϸ2b,2neW#'+ }t"Ol6Z.6%"e UI|z.՜vg]~dߞ)v/Fo3xVc m&pWAFF={1ן}7돛kOkJ"$CEўVd{RQ>{@ oX+G*̩FaĮaOn߼,Y>mrkө:oj*e+.z^iʺٸ1jdh=0LnHI-Ed 8m}grAr@"9"t ٙ j0 ei! "}iHsɃ/N'uz%ϵ>ku&"Yk [6G"o9R:%BB|^dV?Ja_ ?%杋*9ίZ"&ԔG2k̶䷔)ET/}π [[SR[TOq6Q#/կog$ӉJyEGp[zO魣[k߾5) D?mjtwK5Q!)~["BsT$7Sp8K$ĭenaIZ6R!]Oꍄ L5}iQ UbGWŻwT(n-F $nUYIU#ԥeˏc`/e~UcBͫlwe<>6Fmk;o 28poYqu ީeP)SZ.Y𿴎?Sd#/`~{O1X͟GsXO$u?`a?3~oa+"!X|fn9tOt;=cę%(8[3̈́Fj݈ƤFc0}&ySa81_#^)w&2QpBrQIȹJ햓Esyx ̲=C5cyn[/ Q+ߎRyT:S_*MJns"Ff祰Ֆ|NrīG/36/[<\d #NHtUMY0#kXX-\>Cu6-1q-Tl^WHD]fM둳NH<PP'IOfN M[WSdUiiONZױV_)dYaig[`4Jٿu_?,e9}_'i*l"!B3T_lqCB8>:q‚uyy-˦KF *8gBTXGPin%OHF%no5ݴ1B9h`l[aSfxC{U#p onD3G3'A:rv726?rwƙ~6۶bH$<2bJ),7Z\ii}XԼCw+X_c`(U})yHi'Qvggm@ϣyf}e(-8v7EleTzz6 KfQ2po}IE9ވ (xgѴ|Uz/ƳElup(xO'zf;:ėáJAhkW>bc[Sҥ-|tÔ\s+5MdY#ЦM`H:za40rY,Q3棿BΩcn Ƨ 6(F }ןɏ|ޢ_i(i Qm86:^>͓/C{NDY{VE>/: (+6Z l3(Va19Cg0DAWح$V[ #xMT3xxGd3 *| u F(̀C_砈cm::Fk@=4ѣkX*]iU2NHy.|< [U"jw 9S)v'ٌN##?\m]HHpfC_?iCUj і%!B˔,jK)4%UGK<` 1YǸC Mrg b*g(TR$\Ծ~.؝C 7ya^=*j^<:zy& X6vc}OppރOcwFn޴ߧE{s^${ޤ{wd{-vwYB{Δ;.\  p@ @>W 00Ճwie7{0[8xO=Mo880},7/xb_׫!a9ݳ7"WŽH wAa\ '5 ^{[NYSr'%*V.FӚVpEjtp 1$_.2a$%6'c{pŜ'zߘwt[xãS,S(cI,񛍕U5eO'TJuhK |tm}rWdiVtI o)lzA5&tv٪ \X0u?$\wnQS ԍTpdnP٘ reƃTPpMSQ=\ v1\&ݣ\ Ui>"4.A=߄.Vj Ŷ{Aa4/"w7e1^a5݂0XM3L1)Hi$$˙2=-5d9VX"}f5[PvhY0J&Y3灑hGVt/jqnN~RiOYpfPzwP.)tm^^@Hii ,&4G20UG%W&xIwQe%¬$7 >dS/8W|#eU?ɒ6!e&yo7dɱ)eɔΔҩnmǟǟOWp)ģθT6w[e:`2瓏uH 0V]<AAWrh,Wjb/0䖟'Fu^3+pyQeQO_xj'y1.L<E\YJ6|ԲLjA퍉fvXG+B(Ro8@^P2z-֣bx|UYeT ωuME %탚I"BެsF]X˪sZ="^׍oʘ 2#~]+nS T22rY)R;UϹF9rx>C8ң5 . 9R"Hۺ'w0j0޳R=S|!eC1ݠ胰Uڧ.{ua~f1yX=rW %60;S?" u*GZ.Y)`%?zX珵3Yd?&n=r˲^ .3z ӴUE" fϐ"f5=F߇cWس1Φ'FF t1꣰§5^G„KTݴhanFWB4Ӵ`|]I MDjFڍGzN굔@ZY|˚1rҹB銪nN~N~o%_p'ۯ_9'(T0c`5kͪ:Xϳ@c]Rqx\۳lt,8B*?N"'$CWk_}p%el5;Әgh  2xN(ڱGeȈyO1ʏH$U6dDIکF 4iʚ~cv7'V]NA9Q;t&7D9&h l/#-\qm ٴr`ދrqzMF%y;F~\.Na"Iyf7W.,T5#|&ä]^S}:tI_S-0eL,TN^C~ʝA W:cfvKҀt L ('!x @!P%@)x 2QN ȫ<w@#4q`n:N z^"0 e| c80LS409  XQ== Wo | o?qW1Ü4FdՇ T폤PAK+ 1eJCyN De\xaא 9L#"y-iEݣQg/KwL-2?9%z&՚%Dbn̐f MHYVDOgv>|+XfHV̏1?KPҚ?2qټoWQYB w++̬ ñ3ҥR!<ߝ!Wwn6mS}QqUQ] .VM;dq@x-"-sY,1 V3QmyK**[yiL9Mj߸YTU· SҝpSh&vaKZs>wGIe}UcB{;|U[֎t$1"5P=O$3eQnoӚך (cw/zΥ x9#Tqtk|Kl=%_PϿ%1̿[?uLwpt#e(R$i3޸su.DYNWپ~ɸΐCEH31^hhȴ) OzsxVlj}sQDa2brC6VHQoYiӛ &,RJ YVBp@ !ɉo}Ej?l?dۏ_h`s@CQý\nZuMW2BFz=J1\& glu]7O ?wu)_Ðjc\&f_z2%ξË7&9[b^f s T[Ƈ=E/aoQ +dA/ yڴ ͜RjBZo~_o'gLu0o F{cN=SK!u 9-ibhSCLLYeAи &9%C{,bF6>Þ3xE̚ D:& ָV(RUKU?X%QJ*`dAJhn(Q(h:"i[Rvde"KGG=>U{EG/R;~${ Y[{",qL^FGZk-r`&E6&,9`ېtׯ;w׿m%AEH66QEfǖˍ'9Q%vt{]gլo2{pR}A㛯4:sPIOvNlsJWbhs~RvK?n8}DZ;SIHku6rYI^k\zln^rVqn~zBxվ-G3Ї/b+B݋ӵn]󍞴Y[XAL7wt*m{@ d%Zb%Uꯒ9 Q/ei49 ⃜`ʲ 23xM0ŎCΛkQVu=u%yDca +tʤ;rGnQ7юId򋅂zZK#Y;7fՆ]n<:eE~v k%YoBމ yo{Re<)ɥ%.i=u'_xV}A>{1UHmD^ث  _b(j'KY/#{VmnyIs/'be|ϲ'{ɢdܕ f]IPmØv'o֟?aA D#0&h?,oM'? 䧣&khyh;[vƟ;HN.*;B宪PP2aE įwijpԅL5_(<,_LF/1@+D*_HR@@GZ8w+6.ӁgmHFRFy4GR]aį zЦ%9Эu 6>ZHhyBfEb7Q'.uo(*0}}-TPJŠ58VhSTO}; q/ #p`` p0 ;1@'a@8 ~)@NҀ pPe@Pޗ:g @y@@~lA40́ ,+X6}Dx pp <}!A|_@ BPڝ?Ow+Uq0g2 R=PuX#C\sb- ),71X%aZyoj./q 9@=H8KUD*H/ﳸiƓ>\wlxWrO5֧uN W') 231˞xB|v[/iV^S'46-=mUUZw6b7k>uYB9Ǫ&6)ys_iX!t 'yjC%D.+N]vK`Ğ ACy^9ʶ{/&D<?p'-(j]⁅CMzåֳ GCԨח_%DX4&l;>k)vTr)_q#p3E߱Z ܭZیLv5bꯂjmdcE(R"] .?Ucwһ$d :&Ԗ!Ne=ꦰqIZxȩ6{P27ކqaGZ&p+ޯq]`.vrk͒ ѫ_O\;. Azƺauwt[LNUBF_Zl 1B;DC^ U_ oͮO!"|ѱY֗:5)M7S[$Yk*eՙP_wJzu E]ك{rW+)Zcɐ>U(Ez3fgpAOT }YZƐs&T; 4rTlr)){8Q-\M^ GJڄKg[9уb闛efN(?iq-J/vtǓW< `†*GWf{J/e‡V<_iZ#0ۆ+MY"}-2Gsb;a"d|Nͧz Q -95b<1iQr$ykYZ?~L;o+%U'ݸ>(IΣX FO`ب5*ho5A> ]ImP)yŐ?߱Y@(;s ^ Y0Qu?~ꀝoG͓\o4qk9x*o\ԸO.6lVc[2U2K^]O>t)9]Sۻu"xJ t'uy/l.b\ol*}K˜,BUk1ӎc27c|0%6N#*6`"C\W8N^lJ$Qn& uc 5ˮgDHG#Z2CNjg8bV0TM vZ$Б~qN)6-ԇH%C og Q>e=m ?Q#֟5A4ⴿgZ @~_'?G<kWilgͿK`Lp,23jIo4PFYH4艚WUhHϯbO->R2lsp!h7sRr=>).i]qT).",t6Kc1OO#ׅ;l<IŊpxW#EW%й3g+*+9?y- 9^fX~TRdqE-țږYJbO'h|Q!>ЕCNtmWMyoFEP G(n֙Mބ;aAf>-+ݟN?qC%ȶhK5a%ĬWY'͊' z5R\h[@q`AÈ|-cԏQn׏jA_$WUtmq'ΛIw %yzy$ʄ\I\A%yGJF )x'oviVKVrms".QQfN.="r&vܪySQ/ElrI0ssÝȅY:Z9\_*3ؙp7<SX|UoSqf>VrTP젲:ːYJZFI3W[A L9`YQH0ǐ/Pciyi_#>Y_GUjj8WqC_k,MĻ[zU*%g3 QqK|@5v:n-q-8dIk LJ[4ϓ J ϶ɩIiЯoW3_FM.Of`5'!SVǙFo4SYpBZ+ ֽsx1 3ڻl`X~k?KOD*(BkC~_'7뿉fߑ?o:~}k:%@ 7pnQ ĀXݭ CRAH dlr!b@(E1(%rP*T'85ZPAxAh-[!vW5]^ހ~-g;0F{0>_G0&$`nAM@ ,` , :z?'v/~vVRRO2ۆdT5NNk޳.\T/_spI)$_ 8q)so)%AFԆpcoEg Gt\Uy+7av]\Y)bes&?uBJ{j8Ɣݬ'$f8_ -`IC?0vKZīXak$>:l"z2cm&OaG.k=4 ]ofit898sYI0ΏW:s9j7Y1ЬQ*=R@BXk)Z76#wub,xʧıgqZ|\mZ;Ǘ%,`y"O4OMS/Mbv+Mi)1bZ z=j@.KG2|>*SvnYaWXQE89V |-J 4"ckswxq3.fMVVvڱF*|%QBOlׯvٮ_?tmtam`I0m_o|6AiTrM"\*E(!pI]*wW$==)-CL]}Nq9q.)3ҭTN!EOfq vш:xtzߙTY`R#䥨]/06z|Icuߟ63,{IeTU 8,Χ'[dP3m>}t/(C4ˏV?`>8OWH:dx@1+d]g)-=7352RBL%dF2ۣقJy %Grg%t=.^z3ĠEA'"haF SKLvY)k'db%6xlŎD>?eG3Er|By'O=dp'xO'Ox.bWEhk4{hG%LD*=O׽z$nVZ4o _DJUDGE #i /5_iϏo#/?h­?)w R?)?߷Kߑ7ES}&n~O,fs式@ګJmZk&;h%{2kdR aeޣ<̔6Xn:,r] Ys褲BJ]#t~)N2L(b4*PӠ~`3O mg:[UyYdfuq.7`Г<*¸䁜R{bNjuIGXEO4/>o*G•oq{'(hJfZd@Y<*g\>6c"iD7N W4^X4Җ20o)18VHSV.O^cZނ%#Na~A{sUvzg|8 oݑGN9uV\ǃubVWEƕCbݿv9_Qfi V мtu__YmT)Juحi-v;b(E#gv>o,sٌ f05Ee@MD4ȋc\6c{ U}'9{>gw:eFT{kXDU~G+whr=#xjP$hIssF!~U{כk͑'ގ㊆#(cOb՟]׶QNg]=y*ݒ;W3PRZ?3+9 2GF״Cʣlƙ9 :^k^.w[Ν 7 hd]_o/pOXtigqNߩK7M#MKjVkBKg]?z [GtٿTo |?0vۯ/zY=nuaKkx?Y:@:*ڡשVo5njB#8lm+ldn$c\wEN<&D8c kzsKJuNHjA?3u6>.֪Z ׯPL.ǬufRLɑ$~{*k97akZg8Va,FwaG5727cUn=kTDwXF '"B<|0~H:YQ)~#Rԕ(*>pJe--GQb3['1i7ƕ>c I^C_Q ׳N0U^x ,k.%yUMt9]Z q&ފI[vljOѵeYqliDT3ݓHsًYk F80bL9˜wQ_OPżbB<wczѢljB8hʫLɎJ1VU FwyI[neIG+?AiN~O{{&mQx?~;ƚN}e>\*C.38<NfQ}rIS̿ػh(O /JK""X YM([ 2&V!l=Dcɾ(!mC-|߷s|as]}?{0Ag;r/Eg_,v39ZT'Z#`Ҥrx?7ꉛ?ռW[dۃ]4>؈VtUUM]8A8Ze[ 掰V2ר'[:Z XTf*#8u=zdwE<΅0ek_!8T ۛ;SY͒^ߌA sܣ$wbg苦1G]b\"*dR'#zZ_?y4k4wJGz*%d+⵪9e>S\̧r|g׹JZ*caT=t]}-"wy^&Y+j4glr dc/lhN԰'ߕWdn!岇 iekqj=gjX-;Z2]rfKϒPjY[ދNQn!W.Q 7Q}y"&,$7Jȭv}/X ??MS%a5^~[h`TK{g$8$h>ǃBާKgV=و,Swcc6\3Oq#U졕+UQ{YW'-l/eK/(N!yӷP˲,GUYC/bFHM[Ƣ0E{6ߐ=E_ovsx6/K>YrHIs_PƔlzgSFO!C;qIZ:ui涜A [EUvLr5*&nf[F3nzُo4~Sat#o\uH\tѿ\"}!/?D%~A|:߯[QytKw];'~[(bQØke*;Z;7 A6 |X&;t` l0>L ݡN"b'i[ gbͤCK ѕ)^ۚæo"r%:ƯV] ǸNOA NHTɑBճ5o5&h1|(03- L5ylƍ ibm\9ROs>0YCkIPrYSFGVM&thb?\Ĺ|,FER|{rݥfרxi?2ϣA,p_J=#z='{=iwKФdA@-|kҝ{y0~R5Kh, :`ZSuԐoDkw|}b=9boO /[΄Qߥ5?*9I/MYɋk8Gj:ɺA(݆,:G/@mʸٞn'yW++O`n`r6ڀl3q1\ -ѻu&6RfI;5H~asS)OL HIi ])z*JiCIE,1ES Q kYFHq}; ζ${rۗ>~-DҘ>Rn,'!y&BA~W~?,MnbIl{M1GUF**1㏫Edp!UD .?}K,?!KcNza*[ezR Δ=wz}lQ=ЃR1y-NYRYҿZ;SPV8v-N k[C`j"ex.o׵o|}~rQm0TaaP[I"rB*cDnaZ_E(+$j,mU4͉`ye"wDU6`0;G4#C6\miJf^}^ΐǷ[dXJͪv[:_ʰ rA}faCJSK2e.|q;*Z xp{z1b"šщɗ$wO=d EL}̣K'G`- |-p?k;  p<A$_c,x @^g?8>A0>a0` 0 `1f`s`PX_X^^ jxŷ^-鷶 i^Km/N\"~5lUSQHP,.]ADᘕzx]r rUx '?׷/kFi #Tl[6@vz``;`,v{>x~;8 808 S@q I @(Y Nyp(EP@hs48Ԁ:g88u` !@#pp\)0W5`,%7U`l8 NW od!+¤t!SK00ArwU7O# IfV^gVEJ<6/vY[ԏ?o8 Ry?gOo|7o\_? k??6,$20NzÊeV}gD 71 (Qw'PH%2HE2e${)ec0b0dRrDv"k",e3"ͯ?_{q|}{>;X7`D[Et`h{rÑ|㥝ԍ 3NY<_OQ V/0qMp&vZGHx]z,죳/dN]y@"\h,KN5v.ʊxʧHE4k噣S.EWlqH㽤`<+百 Q2\7y Ow'B}=G$Xj*]7(ʟ x`P\"Nn(QԫbЪ?9Z(8{L^ުODʴ7ljL$?.u/v)M;ΠaUו8qrXW҉FKS*ӽ4SȏSkʐ2"*~H$ss<,nQ׊!ǠhU_eh;~%bkGX@kslٞ/?:zbR5KDQaFfP}7V!d!T%w=TGihB-.GY&P,"lA),>0 qs"Pq^"VfatT}.QsKC(1- CB(34qU sP|8édҀ /4],u'FKroJ:l-ܔƵa,MR虯XatG=(`6'6m_JypaQªF1ѻ?*a WykyOe>cÙ:ƤjPjqt̽|osh'mkخ?_jR`BIɵ*#sO-g -f2.u)( a]kɭ1% 4:E=_~pz)ܺ;hGO<!8wAcuڜ6!Tib<Z< wRkSPWh]Qr\xWNĄɝd lh8g2.GLwv€̭73pYp_3vniخ~KWےApnm!&;3|Aώ<3ZK7E;g!_Fː ?* X3axR?g֝i{-wH[3Ƒ/YĆ4m[_+pDV>?mK>|aۋ܋0u?^vLbo[_BcdX)K~zfu; cp<xw(B}xHXYjYS*n|^,8+ݨsfi 8뒎E XD&C6X'GBؙ6X{0viZ<O#-x?Ba_Ԧ}R }NTv3 SmSZgFl,s֑sҎQڃK';4ў1kt"=^aDG]ju3ֆe@9IGM[15!1G/:"բRYyU,,g"PܾwAWdXU9\nD-vآ|K֎4qB'M;@ѫ:^ҡM<#_~8+++YZ[C0Tr-o^9mi %Ju| [Mx5wjit(I<)y̩wu8q(VXW >B7,ļ)_/b35xܓ 鋘G`nBz+TC,{KVP,Sj@:i!.%լl$ >~~uK=*-!fo˸\'k1艓gz53W v?/)0˽@&saTñT< H[t/#6E n !* ?K]Y'#SiGY陋#=3 8`\R.q=fi2]K|0u1$*@XҦˑf:/g2hxCeڤה;W&LŔÝx(5uGWͰ]E1W[كe(ܹf gRiDtU/6tVjh v|YCFRJ`@P{`8:80lR&8 G1` [epx>4 a@*Ci@@,pU2HUK* @@V9 5p0L3v;ppV n׽LclЈeRwӮLf;jQie|@1 ֡JFE| '~i1$?q,gk`g94g5djPH<1/s}e%Y?cm hid ASmI!/f=N5VD3{sN$OswZ% qu>W:cloSym2m\ʱA菏hZƥt 6 I xüYv_r˂e[?럪AaIxSu*C4J5ɱܱ} KuNjR@Jy/i{"!Ԟ8м}tH) :-æJAOlwR1:H%Mat(f jk2kk|YU<}y';Ġqys4I'#9iv{>Iuse!)Q3tt SC?pڥ+.[bM6돷3*$ń5!$yWIP?˳͌r{!zSAy{XG*ӅDg^a=Cu78dvkb`5o~n+nWkWjȖqdy` U]a<(A"bqE=χY-FАs'yAFc@ۃןqZMZ8Gpw6l_B2.\XD QqZrlTDN]\_a{o #]-8`}pJtM}ət<.P&w=2?>Ko"?O4?AS!~4Ho|GY b19>wW"mo?nat-&"I#y5Ɍ̔lV!O *@fCz%[R].S8&?Rpktwޙ@C|R(IٵBȞHc)[#d-kY˚uk7d-M߯=9||~>|h+:5أ郩 i 8,T^%mý7%?^(M>Αn׽1o;8'Z$lSe"JA8(aXqIkg롇-DcYf7#i8T_6OJV?LCcc2EqT=V" TW)kFE<<0QJvd:$g-cjA%n|d{Ǐ#9.baE@q/7ZCn0y|e{_:lǿW?1yɊ](z-Y2QǬaҶeT[5i[eϙ'Mw= 0=o| v 4T]\,),_r;.E+^v/ [-1݅tXD՞:񖴧zxzYK8Mr){I. wPo8s;J)Ջ խӇWSuĥ ŧNJDa-7 DuÓ#B-D6lFwx:Y$2B=c˃:,=}2CH9%L,%75SOgG Dsq,h]vzi6]v2Rmn5P}@5f_IqK$֏"S Ou}ַyO69o)q+F[ِ#Ԝ:qRwcWԏM߿o,i(rB2 cLzܽ4hWmȼB[R2 %0NC,ƫnދ5GEcX^/A#2mÈg8t,sG.+jn E U2#ˏ"=no^{GϻЄ7+&rCaUO Nn5N3pQѻ9 τoTXnԜŢ j`Ws']RQu DH[n@Bbkm.ޙSfZy}R #ۗ1kD(sӔo|;s_gb=a#&#U|_qS߉(r ͢"Q)t~elGw=i7v@xs - ꏟ_d!}zgbP֓mF< 'tоqO) ,5m̦l??#5\GϝZ!ޓuJum9+|ʩ騇!ńqՎRrDlrt*w9Rs0=| b%KԨ]7jQ36egk8Gzg"^Rf@W7XWhb@Xʾ(FD"e:cf+MVOkGpT [%'k} i*Rw/D{ oZ4&D ,hщ(,\+9ŋ{-ؓXioy&$cOɪ*["c#;4bo;b˼$V[Z( eYWrpO}y,}5PĻߣIRq#-.V'aR vlTeHNVFjY64Pm2|Y=n!qyvrK* eDI;T2f߯(l_ѿ!l'?|r]]ߖ/aÿ5.3=?ÿ:YԺn^EkJe0AIXE\Ncfz 15$gNsVy]EU/s#N i[િO$e[@?35R'8=JL7xl4Nx.V.@=O( }t v+DMz{/<Ċ^*qbZUc(8("Qh@ <<$Id@ 1V,@6 )   g"s@% @% @4%nSl=h4Z_mv@Xx <`0 x &cM0"`X,>HO/KPѬO yW 9~sמ0Sy{?7ysO)QW7l _Gs;f ">=f Ƶ\n&C|)Y(%W)z}ٷܦ4':zUz78gJL1f\(JRv\\c_8Ȕ߯~j\(WRM={ˌ]d !VSL m+Ԫ?Vag*y!/;YCqaENJ]C0Ets=Tv]AO=OV^-N­-A-Ɯ+GŘ%c2fcIVvKo@ JyC eՏIqtjv;Sk-ƫAwrZD;MEwO"^&xe$ʑH-(E`B!XU(zʓ~qԟMv"cmȎmDj;{e8y>9 Sh.w3.Ǚ%(.s<|X/WFNT6RŠ'CuP֛ʙS|3wnx .ir$ؓf ųbf5n(|ȤǟEt&2rňq#Tgm tT/OJt\1޺zJ{x]?`trOj95YPߤ1Qћy*n3 U5Du NfxտR/ IKAw9Mj2&;3 Lsq-cb?ͤJW Ms 0)=]'_FJp\ }rǃ5v!b&eakΐdK",,aѰ^Z޾=Z 谘N 6-Δ=^ m^ C̷|.D.~ n_/ɿ!l/?@ տV`qo?`?mo;PrxkDBFV "-~PGz;ɷOIYdB Hpݢo?^9eɺ*wTSI4ET),(]@z"JhE: *KW.RBQ& PKވo[ݳ{9?q<99's3f[Hld!Ucc1qyY8%zϋLZu;WmzEaxlLg(MzEe0{:\ywU5v±o۫K{hSCv7:bm2S%0Y/%^͐ 5)CAYh{LEƈ^7Ut{~&10%ZJ!cdHD=-H9=6dK'&GVFl>EYӟ@cZŧM'H-3jo)t&-]Gz%h>ozu7iIHiY^sؒC2OX+!i%L|ι/aȐ?_[FS5讶5Oޅ|}0AOiedjN"޲pRȻS6%ts=hp62A)#V8y{Γv| H/ |~ty|AKg3~#^qkzX!ΑB H$"}:PB |vu?=~ΧqEr-kڵvpeՇle&h8[$j!"#;2&Ȏxc;c_fM gޒ;\9D{jq{m|{a[]{{[+s6JQ'pR/_ y]i0%Q yv`' A1 +|դ'I7J@*:<& yg,p}#aU q'H@}mmQg^߽ҕeЩjEﺔ{mQBGH:qo+yq8ub7Z6zEX(dO["DkLǕ5 ܙ"m[Z6FN~+֠UrZ8z^( 8ɨGXtnu^ֽ$=ɭ_Պvjy=W^Ns =SIxAV=NAz|E 5݃F m j4'#FE5A' sJM{sUp&ZSaK0nbR+<.G}# \\<;aEw13)g*U;g XVe7߭l3@(% j/hAI~|%`3XCzG.q D1@8H @k=JTNg@P @ڀ cJC0LS 0y l_J;p$u[*W pZ'(^7~?@~GÐ?>8Odk Jw_E|ѿ >ym\wħ_.;S}yq͎'lqdՍ]Üt4 E :ϚR1O .Ô[xAtu E;PbщôZښr:nloЮy }\n:2)<˶0LP}Ʋ7U u! 孈 8 ݱKqSGc r=9NvbaReiWMc\4kf?RpGߌ-К1&< !'Pt` |[G BkWFO{B%3> ݺfF⳸MEpΜ9#Yy&[b=jBz.ȏw#ULk:6u89SVV5'AӧST9()ӈ$}~~3gwKSnhFMؘ]2`eP˪v.'Ndʕi ujx8P_=GYߞgn8$3V|≵ipJ/I; :=a;/g/_|/SnCM2=Bh@ NѮ,BsJv;&Ev_|yX qgE0fͮv 6W.JA9]aLzFz~X˲*~mվme̿8o?_'3ЁH8qlsjf*ڦR$ogC%)iB .<񒸁m&O2[5[8Ὸg:zӕD%Ϙ_ h{/輕 NLKs}uXE.jlM⴯JZKFU a!uwv<5.}J)\;: ]r/b> rywm@oH4c '~yAC{91FxiܟbEv-{o>erZJJf,7F^t".(UV^3Ysײ"얒Tt,4|mcvj<)c5.8涮Wtte=6ϚLc;Ʊ*QO!aP &|(6U گyP^U n9GwιSNS[T\9C~/_j+ۙ(oAWF|/&̇|@aHp'goe˫_a/WقZrV58st.[d%yuowkpz᯳~9ʦK~@>9s\m7xnzᶵů?-m6|٘GG.ɵ~+HOL@~'煆~G?'g}G|}_||rjwķ%/?NtiZQ2Yo-*0DC-FyBeGhk C XC"Mɟsp5HTJg(~RB?c|.,7a!N~rȘki}̡ .BO/\k7 oML>4Yp¥?w c11bU:tlz"C}!2WٞmBӟyq ^ꦙ\"( I(BmƎ16Ʊ{>;uyH7W{^dŜbDj8sHwK1?P } )+d|PzX-4TnЪBZJc,32B3gH4G GяUsn+6}tSo "0WSǮŠsbņYGP'Ҝ1&(53> 4 FK& q0AwS%C.V!7;z>JQQ0BdiEENط[chDdhld˒5ˌ5 3*:gw~o{{3>Ι|,7g4ȋqh_O~9Y,S:CW?74&M >Ru%iMbs "Hrђ?mbt2Yjj4ݗۺ'̸jOfٮCmBZe>7 /L5БJ=LQEW7G7۔ ە)Ѷ9Ղ:Hr&A' i!KGŔ[:ʕa2y݄Rx~(=y5'C !f2/׏{B@ݪثt8֭JȖ ?L f˭c. <סz`Hir]t*=vSSv^ϕLC緳>hhV?Ow+l埿y;Xocihqҫ Wݽl;:5*]/,wSYlDtԞ\ Uq*D8ދo~\ʤ+MZ/"cʊɰn{M] (ÀTf9]J:o7Ek'iH;B΄_*wY:C|-^ RB| 8OV-zXJPzgвY0m[avиҲaOgt!THQ/R:ɾKVMGJ] ^_^Un=$nM~l pe11sEKe&Q)wBҹ}BF.%EU T.̍v4 l FS9l}2HtF_@0 {Sa:ʥa)ېoTtո.92+Ř&{/Rj̭B|SibiƐ"sLE;geK2@VU` XzMPRȮ_WKJ/GqXlh3/SIkna3ծ,dzK.Wފj9^fz&>T¹ q Y%ZuI'8ukȫI<{F6޴kx7W=ux8~$%vEhA72]=S8kOb>ع1*WuUwwD^cT^HVQr7'}bIǽ,|<=R)lKbA%XEhR48uAkyV}VUu~:5Ks;^!Ccl}z PP{D>JIWU{oUj,Ε%<OJ3?Bk/Hziy8M";-z~V?Gx(>x_޽oԯ?A9 @?%g1gځcǶ?0/*$dl{b"6^o}}S˯L$ (ev=S~Y5xxP;.*s#L*OEH]:Wv}u33L4Ǎ4ƚ Ї ,L"P6C ݹLIWDQڬgk˶!'+ IfJYckו 7ך_ΠD&#nSp}R/5|ט7|+jo”cbS}j ܄֝DlDa(q'Lpna!-~VއsLd{3ZYYބ5/=[x>ʆ59{Ow7cWdZK0M9Yqd~ Y@'J"8~&Ki lB`5; )Qz/>X(Ƥ,^hpw#nxxkV[7=Ьfr`ؠx90S+,Ї)7L1-)|:#A|~v?#,L3û\>N5E-_M,Uh!)Fg8G:֚HO=4D6ґj]s??;Ah)ȯVBGiq+l叿9I,`8.p)88CPF~xBQL[<~9Iw-6uΥ=\cӣk=L1V*g"6rR PQ9℺RfA\Y}A^ /[RA]mJ>Ll4] Sj]U&dh|x1Lϧ21|TKX0}Za)Ш)o:,I%)3c fʘBW:™ |Rr;J]^n/Ӯt2(+Φ8GƩ{2Dbfj {񋽻F7.#)/3~H:}tJI]of4qs[yQ2DbwënP)sӴ9۲3CR*W.~ ]ZCZ燭ߩ~n:WO# }RAo?_y럏s >UBq-o\o3C[ k1v}T{L#EهQ'=wJȗT'G18]VM*aew;4ͱI2\nN|'_(8,ݖT1>]J!h釞\AX$yZl%Ux16#29Z~NHxagu֤f\ux^xdثscDV咈酻|Q˜g/#vQYTQ&JiNtcrR _<_a8vgUoyC꤬ɕN~qY-XY;>Q舞Jͯd;F~ݡei]Uk0=˛w~/?:?Ol}Z+eOA跻Nak~RF[we7ڙq.XE[9M>_V/g>oFޝGC{[&;%XHٲoFvdPd,IFv*d{ns;w~ss^<93y>6E_W ܟePwܿ;:O:xb~d'᧯QWy ۙgĮϟ{!3v8Ca|LoֱY}]Тn> zkkТ^K}Pvց`&@#LuH/`+`+`p. x/yG`'@a D]/ 2@ȁ=@(E P{PCz@ hC@.00GQZ 5 ` LI`  ` 0z+H`[`98 z7H<>AHcH!6Vm)tKcHXnlre(:G:(YIɪ rNn;Z4 !&ԟm&mχ|Z2e)b@IJh*JsCKs6vO$\ ӘS1\ kԶYGM¹̸pΧ$ET0}(zY!A70#@s."b9Sn@Yt|nshc~eN{͛U7,W?7s]Ib52(no.{||YVOOs_KwOon:Jr'*P(u3F^;o2Q2wBZjRBLo_!zeV:ݤ5[rb P$ 8&8f9l翍A1ȗX6A)؆ Wzι7G9\L\\jm'Y@rjci. /ܾvtC ьK]AQ~Oei[E̫boV2/EgTWIQN " ioV͊mrv8E}8Rz@ưg؆GU]X6h:^դJ3@_81a@٨xdFE%Z~MMb^1oYҷeՇ1K'Ұ}lt1 O\2 4l|%.-r&-tK b:"uwFȖ9>,]YZ谘p)jWea'Qus h|oo=szGb~SZy򇹆:iѤ 9ܴz䉒 ]] #d *3=T (Sr7 msU)V;]D\IނLڈ 0aԏ_ZmbxEj2=mVi^t\RǑ]+B|O _D=$"VӤ= 9~Ñ*:s8S}tPMUİ'lGQU!OdGܬΐR%IKV}'8LT>cħcGN D.Pḛ@ߘN\1?z:_>ODIJi'IyD)U艘}bq,Jݲ/n?Θ1hdIw~ȡ(JUCO˨%E o6X+rRj_i}֞C'"n4Sǥ}Ϧ& 7EnZEEzɧ`Z{o.ڊ֋JB^6LOh[ax_;4agwwJѿE=ґ~;K}gx{kوb8(1 #E>Z:# ̟kc):"J~VV7}"u"Oޛk~&O&*-Ot|@>WhŔ1K?v9p̕svEprÚF 8^ga}yxh9IUQO=BNE&:Rm5!~]CjIb15۬k9D$x]JzO9^DqCAv6?"Smu;5ͷ3D=5gZAg+jb"YgL+n*ߝsK*F(w\,物ˊNy~xY)㌂e #WZUzĎֱx%O{1 )koyqĘs'98?*tЈmc=MN(_ͨ1>b ICl ?n72biEUJws6ψ]it1-C\DcUY[[y}: \Ɣ_+q]Wyp2h3jyW~itcD00_){kI]iݲqI|FaTv{x?pG2vظrSv߂bFy’ a[Fmfl>ȾZaۢH*u'a,C̴v6}=w0cԞ(9gc_tN=&F/jxOzLxDZ橙V ڤ}((C0C 3gو[3+i;k~&u,^zpA?:m랿7/_ i:ϯ= ~ScqWűZ{~dwqO^]mҽz˽vkDƒһ|&DcxϜ'0Fgڣ39"g* i]g~ɔ)kSH!UC')Ffw/uϯ®l3[OcwibMz\JM "gcהE pwp϶,hw3]; u.5L*6@7;xT;5rIlˬ՞uta'L_hs#eXO()|0-J4fo%i9y4(SZqgXmb1VTyߜOᤇj3JVv8ۄ$OdHP,ۣ7uL"EZ6Z PI=[|:w, _*xְԥ)x/w=Vfm Hr QZz%Su2~orR5 J|@fA擶)vE{n[l)r-GY/Cz`A BA DhXuZ^8HoRǘ@HI6H)  @: G .(xP@1P 2Z>V*P j@-#P@#h 'Wt t c}9V?0 F(`0 4Hc90`> >% X<̺w ؞QG|ZVSjSOpȔl?Quz{;3]rd3'=5=fY^OT7@ݓd+4bxyEtD5&tAy0T~'׶n_bлMSx |=&sӫx`e>'כJkh( ~B@-iI*j̷RXהZ<ػh(?S)!! iI)[dF!dȒdgddZ,M${e0,#YJZH&3 c{{=9g3}}2 PЉO #QI>NLJC[+*ޘ?ꄚsӆk+lO.~k.-཭IT3FqҮ{yyqk!?O8>jtS/-Oco17 ~w~,{-C[<:hO9UP2|r^׎>Zu- X u4zz6RU_IH,gzʵ(b`ll7dZD(ƃ0]V|Pm7cC>4Ppq6كkc5#)uku8)KSSOş\fhjI:OLCGӺ^D<9ƚ,戲7eTVԐ)8ζutq?AP}pj(>Zܦ67ڸ"n&{{uioWhCԫkzw#1ƣ%"IC͔)R6rҳ+k:ky⟌MNBC/?c_H?5~Jc!/@4)ħWxiXr?h,/UP.x9D%v^?)>}(1Ю+\"TVL9s /=%]f7e|3(l7ADͱMewh0P$7ć^YB޹&$nBKTZ;t tz [y{wS~NRsgu·Ψϔ&aي{5RčIo[0 ɐv' WF/]f bv(7\c__ۀS\IT"g\5Ƕ&Dm+1ZP[.4mv*aצOwj(Lh-~^(2<%=2W;2hI7={{X0Ohְ#>+ uK-N3j>V%+rC\USiaأU*N]j ]eGIUͷ~?7ŧ~j1ku\΋5ֹ2Oݽ]޷-y~3[fk?tWNǐO@x.>HzfrbofGF}[yo/=fU} M(w'~mivҿO =qg3:yi7quNϣMOk"jxW+}>5z֥ݖY\ZUw _g]'QE%ɸOF-1][1!Di 91b> ]$4б9檔T2sf?.&M$7I|2BIq\|BUi3[WWeSPdtl*yj=AaN"q݂jϨ31"WtڀHae㼵yjA+mPKP|m~cR7>oUI?F3B6N!M9Uz*YO\rՁ+JU) ;+`w݋!{r8ZӬj@L!$w|t %+HCFs) +qmí´`% >ڸY'㴠P-)J\ty@sn 0Շ{]I -Qvm_?_oˏl1D-W%w_3ݍ?P^+/뽁"鎵>7zVBjؾ-)*ܔݢ^3(YbK[[x7C)C BRŤK#֍k"xi]+8}pmms-C%*`}9FsͭS.~BUxpKtP;Vϥ﮿51ZRu2dp%lـșႺg ;;Y%$;\Va'Äj^z.T7I(h9Rh&ATLBl7u&[l;p''O Uxykofo,!&:0ccmpxz`=öEQPE}5ʊ}9 e|b)N"oNc<Ϧ#[i=9\+2i7iϥ~SSڬ_YEB@$\a \Q  ĀX5pi&HnLpT r pd$bAx#<OAh% ADPcPjԃ FӲOO -f0^V~:AxA}` -` 2#` Loy PpcS<+,a*b?P`㾖1)Ru;7StyMm{/ʷ%5q&S ߦhRhOF ̞xXhT_sC}FCXj.|tm&u{Qj[:e7!?"5lH Zo 8/SB]xt3mjb岙eM\E6 fE0TuB7jBfIge9/C.ߏ<86;B i޸{^_R) H < "P@~>/~pup@h@A !0G10ǀ)0ǁ95!= l)` =p 8 P  8> ^/1 Gd%e0t勺HRX~7U"#ءժvgQZ$V )s.A7;)5l㚃 v+S}څJT[l 3( [`gF;^+xg./YGn@ UokhR3 U6?^"=՗CrG׎&Q*rDO\W?>8g?cyܖXc1ݽ\sdj:wd0}ӊe ;&B8v@<ҽo3AXECgƜMCJkF\Qg@,kOdC;U|Aov}jmًwP}.%KIV"{Đ!lSDRR$K"-&dϾmle'4x=]yܝ{~溮OO21p9G)oh&KUTwD5B8Rn;K)v2`;]h\Uu.ai[']󆞷-D/[nd[{tRu9cË Lsh-XvL.O4|.g!?$5+]..J(c'p=lvB6aꁄ6S.˛T*Yw`kCU2>[#Jہ9{:O/_xGrvv6@*b@d{ufvQAq'u%=A,xpXol#(w5Օ5D|&}n;5č~MDD%_Q(M}ÄxVBc (^CT #c'SYjiJ)Ia;=+B\ 훵*6s㭸ߵ&]'$!JR*(jtd~fscc|&\~Z'v:_(HVIJslWWٜD؊O9oq97nǛTsˇ?jL6eÌE+p!=AMn_UǺXZ\CG\C"?_o 'IIU 퐜}(`FӋ :yW[[m OSȧ*R '}W㨤8[ŏ!,ϛdkp= tWw8U|wPظɩe= #7T˫l.(m?~Q]|.8} !1t#bϢu|mܺ$5ݩ[T1|{tO}6ƣ\:x[.ҙ/_1?}"'CL;KgmK(Gyf4fjf[5;tZaiAh'u 53Cϱ֞}Ī?ĝh=H|E\2rBr~Wj}.%r c$∧FzQq#S\W!w3*1F=Tj+G֪S lݤЀkZݮ}rclH+߷J{D4½1QmE/WP9ʸEexnAAC#zU{mr4>3,JMjB\h"1kwNUC ib}/fq-kәd|f@L(*NoYFeGY:I Q$/,"(^UyKtO[VARt٪I$)D״0!"٧1cjSrjsKOiQXSNHrٌ>v"YJ'3䭥 ݓ2潛pSO/Cqn. ȗfrs`k) c9IadtRLᄠԃĪ Y΄s'wpGLLb[oqΎu;,UvY(Д,}8^CnKe]RTKT" OiX046ueO~HfxͿ# xp  Jj0 (D @"<I T/@H dlCj#bbPJA(Tj Ԑکԃ74& Z@+h twz!~0p` a0F{q0&`|`,O2X*Z[7jimww|>A <  !x@8x "@$xS b@,6 & x@2H ^42@& N.< @!(Š2P*@%Zu5o@hMVAx :ImtC|z@/q` 0 ރ`I0 s# `|x UbkACׯ?P(S B~?=%_{~#ůO#!ΩejqWUEϜf DM"ח9i[I6ˠz>ͺp]P|W#G%h./2-At|ɠ1+eQ%a,L:Vɜ͓</`9kWYPTW]*x5{ҺgY% R>tD"bys]Ö\M)םT6Ŝb;_rdG޷eUG,^ :dre55҉n!%[ScJT|`{軟^Xgn :^{r&cQ1\SRO}{mJKS%sʰ(:3ymW1f'9GZI9Y|rz9͐pj~,ѽzՕnLv1 ^ uu&uT̺\: sZ2V *B &##{?Fľ8RYXQ0D|ǐo'?se#"c۟Okֿ$?yY{͒ϯϯ|"ׯ/rWX#.*ѡcsKBYj8lR=fVEoU&_m9b <k vntYvv:'Ge%F ,ra琝ކEZђ8h = GU9% 7-op: u}Q"R&ԜEUnmrFfx:LX/޵L9k\vXʁSv e.;.рPiLMj=jC/A\\W5E Im| BYy0g2_ )^r e[QwnKRʐ[U&{yᮊnh/;g&n𾍿yKU+W=' *$Q38+řz_uw} dUF~aF;CS% ^jks9ͺHWb+dL>dyp!;OKqBQusK%?_ZN 1;J䏀?C~?;j}N2GHK(cDJR2e* ʐQ#3:L39JBsNuz*k}׾.{~{tşQQ_yNׯ_r6M.ilC,[Otmet]"X /(eҧ[r׼n\<0u1OTfkR^*yQꄣ␓zWQ{l V*<9oO82H丶;y~ v?ett6#urPg0E h=(tS(\,KT.}UNa '$.a@/KaShyYhWE·EIox6qi,߻/y2_JKv?0A#^(27L]ͳób/ޅLuIq?K7zn<,ola{}=Z^gB{':ol&&x‹T?“v$!]c5 ̸BozǟA7\A ! ap!*b$D A4\8H$HrT4H Ȅ܄,dCB BC B܃rJjyB?!1埫Hos[;zf{ëBQ漍x?g3~3惢#u)Hj嗔 nz%zB TU o <%i!-jC[3|Ŭ,{_؞| wÓ_0p>_3s!1+/?jn?߿<~+I ^bi)CO&5=(9\4HlX^ݠq`U;F9,a5ʾWAgń?\HLKB}Q~GO>7s Q_|?vs>a)P2%*O{D4@KK~+`0 j`5؁8q^|@@D@`39)  @(@T@@4@vЂ >`?9AD]}0C8F` &` fp9XQrKD+p$88)pWp#:x΂xܧ_y_7CWs>/?_O| 1U"ٳwa-r-I-rA1g9 hĩvK? 7HRȗ)Oe,^[:зH-RE)3MՋj-Ϊ<|2.zo}A)tLFm)̩QȩƉ갣Fr_ZcbJ O ,\ 9uSd&Xx`؜FkWK5e3V7$"eyL7:r8lG{cXG$oDۜV?STMޣA>p^IPE#G:fGS"!??hc<u r7Oi~OTbxtC ~z/'I1`sO]CKA򱪿q=͠U&nj.V&T;\b |X/H2X=y/!5Sl:ߵ}1I/'PhMmq\}Zҋ̧3fRJc$v$nlD׶~)v|ޞ1ŲfXÓh-;_ht`᝗[6/дӷϷ-Oؙ{4>W hY4$yznJ ;7fVXQ7W> m֞Y;KZ9˺4h܋Ċ?E'uz’[Abt\=.7&ԕԒ|]~w[^4i 5&)<4Pe<~8:D?w?/_?6ڿ}`Rf$ivEA16PWdkfDn/pZiQ%KuR :={YݢMY^Qt+ |uг%JGv9ˮסx ;9~5:s{ѭ`" R/. Ѹ6Ԣ/X˒#Ax#nuُ,unֿ\HW7PO?|M;SquUĻwIuTTX\X=Vn[fK^NӱяfFgE2$9sDㅇ{d&^dO-8]⽏RԂ:>+3 4%'myɸi7ތƉlyef\7X=zXOz(35f޽Iե#C9P2oJ2iT5SUL>_m_?.#,_`9P jZ  V3+6Xk8s!r A6&!r1 $A 4Ȁ,l9@αq'%PP5P Єݰ`/h>r !0c0S0p(Kk[8'N#839 +;3p<[آFC WأW>V> o.ВoRˤS57[XU):Lwh!`C~όrozYZ#*S;Z2M IBW ]{_M떲EKQU9 z=IVSݡU82R9E~"ͳKs(R}(lqrV9FrLS1$[?}LlWh I72gn;pu]7-c _ i ocdJTi 2%4$QYs*РR4H<4؄FIQá}?|_9g{-x/B3W"} o-TA5@-A=xQGz 3$S&8McA_Ќ0neCq $fѣL@w'@w~B#ݐDK1#ɻ9\ݨxȫ -kD[_ߖY D裺Bf0DjO^uHx;gFf\~L;5"|X2DਬiW3Y{S3hln)og=9嵇ь-oo?)}Rdù)UN($4P@ZuݑO7ݤ֋mة80& $ l0a*p43`ԑ8.sx`^X|bX¨2aQ~ AV3YtHzaHf[ali2Q.wyPEP= * {A 1Gz4@At@@  530 8 ```GEǦy/94!5K)0̗ʔ&|~ccbN*1:D.T@20e6k};6fj7\H7p&t% N(O~^E srZiw xe}J~SwVIN@@I[ wuVN~I=xuz6WVNסRS3;g#w`1ms7 ;%甦ȪUwmں%͏|0~[4K={I2A[rC\ZcIqZ/lص8;N (e,>ycV y\}Rѓd~aN j1_Skҩ ^^9ɩ{e)k:I[zP)uBxe܁I^Īg9AQ _^cwb7JV8f{`ح&Yr vН?sf_۟8' N)8 gч"= ~p?"\ ¨ ҫp :DC ܀ q z&C B- p2! !2G yP!#x J)s/%R(rJx o-TA50!w>@4C |VhvNbӍzh@?  @ns:aaiOњ|4<$mf!`E󴪿vѴ 3ةR5R'#S:}LuhKz' M}&Ͳ{ukz R Vxk\dZ-=kJ~:)E~$3-cJ./N2c- ScJ+(2ENn q$J_wL#=:R }lK|[`,C& , `2``:`f́ <0/,>X`1,aÏTa0(rXJX򫑮$a=l `3l 4`Գ,;ȁ<("(PPGz4@At@@ ;~Lx@!)D#ˡNcrg%7(\3x}VS.:2,]w_뵆\^ f?YnX1箯dVj_ޥ2ă9 2E;d}ݮ0-NFǦwvSscVo>ޕE[1L^4VfnXVL]J֥%.lJ*s\6-tq+I[;L &ٻ'[(_SӶ+޵:y00$ǙLԕa>>%$ĕh[%b2h̚ 96|paOy+nO5Ӑsp#v4Y1KP|s$ZC?7~?> ϿWskM"g92N0CF%ȌkxLߊ&qtG}+*)dl֏⿏^DyBHm9RQCrIFi!#mui3='ԈSsFb3Ǹ1!N ӣ-#0!}j4R%'&d /'W&dnjbd_B<Α!>7T<6+AoyaoK!_ysvBgDAGxieakvd;nн>5;)eXՔz75@* o4HYfOmpaźgvo;kΙu5=gɳP#y1D iZwZrvSysȜ^5p*!֒~^wG&}cSC  U*Xޣ)=L+zҪ3$aqccWAowAsE>xc.To|h1E6Pγ%\dG=ѼWq 9ea"}A,zn$=/(ݡ ul.U-TKJ%j>&BT4 !-\y.Sec&9hNj&n<6x߾PIwf]& í7 QydIqmIWF0}TćNMiˌ uB M,+R?w*Yj*BQO)Q.5S,{A1ATV -}Θ%KfkT+}6̎rZ7,W7Adhə.*˥G--?,A̱#%l3bh&-dYuR#ѳǬFDf,)񏏞|&䎵:YXrτy\mM~EI"^^gq`QLuZynƌw0${6k٨  xk%LWr~?LΩNAYr~-_|~3LJZ2H)j#L2S|Q s>Ef㘯$3.^ɦ˲qD `tj+k|9N-葱UT٭/M]X[&+6D"kk@Qv\KJ NX3 [s " G=M3b8F=T#em2pn`?y }9iVe%OPdv!];FQ="im!/3fw'v޼|K;%>YP;ZoϾ6xwn؍SqIzHDW[ez95e&4ӄ9SlQz=+M6;%T'\TW$uGveL35U='QCt{oGnv L%6=sݻq;U^^nwyw0X#7ϛ$OETO_oteSXNou8k7Zp"vY.(6|?s)Jp%H0Qkޱ#B@#< Z9+f/4 eJ4;J04hŧ$cmWԱDp~\RlH|1=c'/VWhy'x<$I5Koz拨^l/SQX1_Ueи]'7e~]\[Gt}0s&nTMc({K F/n<ᵙ=p3:Cuxu`kח uG4TaK&rtF(]Cl<5gIRmzj M߱07<3XH#xĒ˔G. `0f W+LT]kwJo*J'e;V =V#,##ojC [ wetS^^d; o}VlYDA%6xd~.w\j_zu re?O$c3/SAcqN> >&OM"9YR|K5VL"In:8^P{ZR:GȨ^BqzZ*x[`Ԙ Lܞeذ/DWБl("K.`cȧJ@l!jf0uNot 3 =oSy5`? g]\; %.1R׎WP\fYc_g89xxtXOQ\P>=:?KC ba|Gu  d&6FœRoi&'#䞳5 /L!BUVyljm.* bIE/ڿ|Ջ8}̴l?r{,~Ҥ:e%)F8Ub''X?oN\>y:"vO#ߏ=& Z5sw&OOϪ1^㯮.[d3/H[ɆGӵ>" +pm5۝!s$/èXX m@ )I/)mcqRg(n4xZqM[\mعəKyHHèT_D_`vK/ٍ'N!6 GJXdEmWX.5 ӹDgn9:$#?u WI!x'}LGpo^Vc34 2Ґn5/kHC`f d{)z҉xduӍ}OEʋ>PE1 CEh6d!$NL0.6E)tXwUgBgލ]&޹1,h\;RwHIө;T]f|4NM|e_%`Q cqFdUZfl_>tag"x8ϊ=z[cG~c3z,TfLj7,hFV,BiѯGV._1@TWwWC 3XIҝģOUpQ:FdoD֎֝ %ng¡)Y}ކVpnExL cFͅs /^^Ȩp@䒾\/39dV ;IotvHW} Ox^ڳF2J)7ut1+.֑E-N$P? DTpw;`d@%BbzCr쟂ķث0DZP Ln2h .m,ʈI~yM$ '+* Qd$al~U A4۰3FЁW;`*#AhR#PI r>RBȇw?A?!ßO>ʴ+?~W%'vGI7Kڷv_;t'8]DYbBC7"EWmYʽ]S8隯I s&{ām Ě{`Ki6" }#.I]WAoQxO(Q;J6Df)"B3J0X=Pnn7]jZug@lqTE"&$4փc ;PXu7O$'_&gNy d'Imgn6w0_i_?:0ި{e5Xerz}*vE@I'n"#.aDYf&Ul"ӂe8$r8X Yڄ uJsq <+&\p$FX"ܟТ9E%JCĹzI"-F'CT 6px^^鰦Nps~n9v-ЌQ#d9\eAOV>wcPk<}ě^mM4/cc7,1b)n\@w]5FV_S~%|껢l>1a: m0 V,C{ CݐCO7bia]DRDi]x3[i!4D(V-p_Sfg{eg6Y,'|"$~E|祈w#u  ' {t ^$-˿]`xñW qX}1O%)#u"h9o\oVه3 yEAy@g0'yǐMQX3ܣ^^Mdzu7i6!lZ=C껡vֽDT ~;?Vm[Iu~ži׏st\ =&E' O\Sesk 1e0Ho8RV|o"'VXjܽލ4:0Iq6uJL}bؗL3 'p:x|x;~ ][;M+{@&=mÞK$O9>Ơm9qiW2VdмgЍr$^~4 ,>s'5Ɖ|@Lb5J隰qe\H6-g18$[E)5Q){=*'.|P>bFQ`EM6"h58%#1G_\{Hw{ބ|&+3)t6rءӠZQbůF3DY# G-)k?i?{傤Q)z} mIKK.ϯ+n|lOgI|ӮPo|U5_N"ir$HU}RI4l]Coƹ ۥ? !H="U/~ݗfqR㦮_Z}u! Y)?ai72_UVy$XEo H{zUsr?{f.ѢQTMugwj!yEgnaYG\<[n,NCzeɏC(݂_8!30KC R9O=D{\hnqDk@G]uqΘZh(R5Q4R9aLv=zfBVO(>*ɡnU TXI9c I$ڥt =]̧\=fQ'm)X 䎕bDz뛲֎H|o+ɸ"**}݆VD˫_u^G* jc;iAy:h2l35->r~ZZ.<5OVI~?F zuz%cJL)VT wޜ `_>hr6q@e5۰멽=1KdY8Vm DP*j]7^v9`ਓyaڅ.$AsreYl AtwBnLa#N]f7}D{9ͅQVLuo(U +yY*:ϻ6YF o}h]bk5O׼q]]rV%%@P4+T~&s٦xB}MHdcrFNIq]NXS G{_>kڄȱˢߊg_tz3>ĵT5%oz{S)9-fT5|b}=ϟ>ΝPv=J/j@ @ F `!a x|cR wa48@ $*) @ ('J2@Ph-6@C8s&cn0.,-N_붘)Ue0/.Z[ ӻ7/3Ybյ1J$G+ND&;9 {Js3cey E[}Tw ^TA,yV߄\ @9bzqCY}3~[{rza!rIo8X&NJ0&}z9['C vK^:;f&/Eω`9? fȰz3{j8Lݝ7&u CޤE/ӴTj>x:?|18 lB(p2⊊UؓQGT>6vCoVjı:qIEaD9ѥDdCq`(1S)wȽ ]M l/:՝k*;(QesG녤Lwḁgިefuȩ~3Z&8,9߉r\6 ze1iM۹qW/D~z+ϑ}z> w|$8[WT阘`z࡭U7d\<}q{ |SzpG;G&"ʒ++ce=jWtU277x`ft3WSJ[foM% ä)q v{$y8Τ/̴Fߴ8ϼdɴ<d dߢZy{PːM$#,YNȌ-!2laF)h=oyywzN瘿3|?u_u]Ղgya bsC<5%aHv)ŵ#O$\gTTFJqW-TGzi!'4#Xu4ie?m;C`<ĺ҇kݚ/E.`*j,tT[MY căt:eٖUZմ 'G`4r:b[Yݥv3pϪת>g@*GFzg'>a=QFx0V4컚v:zq0Z[?vi9;jp o:Ckݞ I o$[1|bV9z`*"P&=^P3jFuwb)&VDn˓L.#)yaVohbN.6e"$L_ByhC] L- #̑~ 4hpors[g_0_՞3~7yRR]۪ !C>Uw|P8 E*2]tOokeg)ںefۍ6+W"xHS6nL B"Q|bYeG~GN,fܓn "}qZ7irw3۞M]JEjQVD`19U5sпԿ֟_g"|X3B岵Do$3q0="ys24~tnC"F*peunpy>zD;KcqƏ~R:pa-'MGaf \c[ŽQ2e`ͺZ(e2=N&l*]_K>_a:f ;w܊79Ftqwe]Xҗ uNuf'=+1L/[6- Gp@#MSA]UڙS1eF6mN۾r.ҁځ} /.^Kl[N\ؗ}?Ut^ιǂ_Zd OuU\z_#? -EߡpA\woZ' ʓZِ.4Yŋ M,Y pF_wK`@3EY'ѐ5Ԉziƾqi2 i}a] Y._ x~۾g?fc:T" ,7೨P/е y:ެ*E@R|ڎ\WMf~yp5M C' a({=<[/u\Ϝx)f1zy_,c ݝ2շU>6eKF{k5twIy SrEEV!PM{^CТzZ6ךݏɪ o#Yեh_}Ceo7Lv !.vimsY܂:|kktٓb:n\N2"vԂ !Q.e }Dy$B჉v4<:)P ;"ɣ-m j8;z:v8*XzNLSTϑ GhVRT9.g"xu@A*蠞{JyI^Kö!WI*u3- 225oQ7YO#LPzE݉XytSWCAW8GVCɍ [oDr,Kt;|5g;sxdQ2(^9oŔ tDŽvti4-{*#d3Z8i)p#عT?M5~R$$\:UӑC/R{e@@<$v̵夐O 2O(2vztwy <\16S/g< * hfO=LDEc?"=* BQB,Bҙ\w"  Y@">*}U9_ťwOOyXnT0Z.NkzowzWZ0HseR#0s3 d:U,@ X -78([qF[5E#bĥs,-^bBNv`ķp%Ed0cZ|1GN&?ȠO8y8^~V˹\=DyAAHR~?#l2An@ Q*$sw~D /eRM ~o=$7kD,1gO7Ix3Ѩ$TK'V~剼& 'PYn$*=VϹ X:d_XyeRv-ݚ)MGMQ;/j`"KŠ|SJf"K] >;I+M?KE+_~@: l 'Ȝ/?vaϷ_GsCt f/qk؃qcVjiL1xް7Xֲ}&_ަ}2 TěW[3|̩} B*6 ǴB 59' UŶXjArQ$6:=6|"qM5xSP=L_sk;%NOys .2Tc>`VkcO e_ag^] [0d SX)58}DTyTD]z: HOGE,ug˸%W[ȩC!*4H'l8fm^pҪzyr~ 4=IqVdT_+ VYB/6߆!UT9I@wٯa cW@\q≧1JO6FGdzKkvpZt$?Y.W-^@e޷ !F4^>q:Vحў.ƥbq^q,:2(X~RRF4f.~?F:TLem̷M/F)y)&rͫȔ4I2=IoiPSWZA\۲|݇Tչ-PV;԰3a㰥T޹ & 6.+f'#1`5 ibn=^&_:?]y4TDW֐$DI"KWEd`RI\(˨Ea"k![Ae)0_{:ϙ9yq~bR >N QiXD|+KѴόpJBVp%S?b1 "&㋩0 916]]pDՀ'K7Df*_ơ[ EOdoH}9Zjsz;%"Ї#|&(ce;/ВؿKek[_Y2'`쮿EKE#޹mhEKr}KE_@ /Z\o?6߿><{~o?_ЯͿBS.u[A=)P17 ix2{]3 [ܸy@Lt-o2Jx îVB3C|ۥb*2[=չf Ih, VY1K}N[ßz]fx\; ýX`IP_< ={.\4lԵdT}oHGԵ1=Thh.DtȫY!C~D1R w!ָd&ix/g괆 e2C [}8,xmF`jFm,Z_%_@{VBM"R5.gt]S{?[Ѱ̄l2v20UETT%UKlA1@ 5Bk4pz7Sn*]8({0"ˠQjblЉMՁ;\* 7aܐrh.(}']Ԟ7FK-a|ycto qXF Yf^Y]S,^Qr&a;CU&)4V5V>"&y:O q>_4_~ܟnLJyOkn!  TQEl9kNKd=uneưg9WReny`HJ*W3AQƎh;%=8zNEG3Ecch mıw[6e:S<n@K0!(gEu(BEՀOF0O/kWMlX+*%~90G7QĞn=,^? >6ke(JQ>N~sSrctQ\zPWQ`eZ}BSWW$>&xA;z~ ﰁe(!/CΆzysY)hvt&V]{mfg  k}]A*$c Uް#LB.ҼhY;jҙ ڸ.1^΃tErcέ I9*3 v[G.[f>npׅZ6=^ m?Cz>} ӟ+%Q %ٳE]+mUǗ -hV9W^0q.duj&OVR8pw~[`/tQwLWJHV !׉FEnU1<.wF>F|j :&"ol5ݝ{7͗ b)q: ɡP!| Od'oz YvLsYs!Dow6m* Fnz+$ Sn=7chFCg!bZQYN x97$ud? J{*8Yʸ@VY@xf㉷GNWXPʷr\éMroQu}4SҤh)9(N5@LII5)|{_F\ZDv1U/I96Cz2TcO M v=-HP]?Or8ӊ9ZN~LcRXDrqbTѶ9?f QQpv7Qm26;$ =K?Qm~jS,4n$G4-ij1!N!1giF&Ǚڍ&\4 Y9:ݿz;(_߀_z=7W?1~w(Q8hxx jaʍPɲ] vk_QѹsFdMFʌ& KQkF81[osT c ;Z$dY:TcMv4E8 س8N UHڋkl) Lry7f=BqȰ: y33Ild9v"o0i+W8vNYnwM(r4ɬ`;D=߇A*2ꜝ])٬.Z)]r̀/-WEl?U?Ǐ~NJ]=/D(C[,׮[g)΃逞~%ҷX6u;F\&wəA h.G#!yxWX-P USQEQj8% ]cDS n|a.{EzJ0Fߑ' gXհ"j֍RM)ϛk̞%0Y\>RM,Mъkz Z+bzHftxLE$b9 \ECr<3KDBY-f'3YynWDId{ pcCWq-aA0B5c) 4x/ThtwJ[Je9cLsILyS2/04dy[`1g72X5]~@Nr gӒQJ:ih铷NR(տ>i㲉2T7@4a'gfL{g uK2ϑG敯Z ZGT(V^+xt$vmAjK+ 4BGv+II:Cq}qi_-p2+?ZRNN,K,oCCPw^ȯyzLɻ$"^&[t[ך];[u_ɋWh|OD߅:45 T)k\=^ 0iB`ЃhxwAÂ9+j(_.I,%lM f5>]Y"~%^ -6ڔP'Lj8?ċ"·!P4Z.⍷Su˭O"#̬P;D2 g*CFJ\ڴDgTnFhH*Ӭ&1m {Y1٩EЏ(nݵs9^f[U|A%_Cҩ6Cn}':# ĐN5"rrƠ8XfmY6Yu>!pvQ}xCQ]ƟO]B Ae> I<=8].d@Q?c*;?wß|瑎󈥵*~οqYn_perYj #޽T]vKy'%rky_]ؚtа^T> pY|-Kgw {Fy>}_Dx8GX3HgOAP[LO*GIbfqbE9McU40Y(9-u=V] _>Gaa7{X Z_rjo)2 .cj:6/Qu"2w iBfP;U3jQ뮵t%1!\ؑ}n۟-i2p@%&,+Ѫ+r0hiV韑{CtS(+dV& vcblT)H/@ w̘h| S4O%#>fH6!FW|#0vvdਦϋJ! ,'֚jbu^nښğXh%F o[OwX{gD>JsUI\b-$ 𻈌E662.ܺ9G"cu[hs,]WѴ.R4a"¦)bMIZ(u^ip(thn;2X+* o4z(~6RxP&Y-3~zZBuM(&*GƸoUe͐? .%N?7xء(0E64<-#m>Ȓ{hgz4Q]"KE7m;4hy$$kgRXg$W{?lR-Tܾ.cƲ!Z:nf+"k^Imw?u^7r 76V>Ad$ OH-Fjyjge~ 8Spz=nOM4A eMĠNy\e$.$8T-~ۿy \ǙYFᄈWܱ|bфWbѕ xVɏ.N!j؇EᓞPZ<*Ͱ ~e:rSa5L y$FbuANU}pLwKc@7 NOgzwi\ڻ 1C]&X/\.(+>Waŀv@,B.6lǖ9?j\>2IT>OȊIymMmc&WZLY:s,1)Xl$6'30Xu: <2@// )/{ĻL/ibf f'C.U:ԃтd` fĉyWh!>25 QS&&^'%0dBXKAAԈ&ϛl]{Dp3Wb3ޚxvD#od.ƥVl., $q+go3R@&x0+Y?5MO|ŗ-_Ƕ?i\8lGeDV@A3%*݊Qfle?g{o fWB`^6di,z*߹;ě+qe5fS~>;/_\MTDJ.qLrz(sp <S*}֏& Z]&1uKYn-7TE>2@$vLSbʅ5p&M tؓD2^ gԖxWՕrjg }C>|!Fz,[/I#C93}N YHRQUơKaH&'bcw'w9u[2@8_z@'KD`7 a4@[쿮sJ^m%5}x)2`YeC2 М:/BxۏU?H(j(0XxN9NZ)@ "|};O=RͰZR;fG 1Cdׁ#hL1hUǜ(ki@z7_W_$_%F"Df63FOuiپ)0uht AU\?-9. ֒.f&-rqɷ}ZjfNbY5`KٔD\L֤0?-j 2ek^i-Yt؎2`,7{o\m%U24ʅXkgӑ]yT y|a>9EL Mu5P:tbaWd$AR)(!}0gru/vxs'^U͔.uBJsJ\E87)Ŧg_ ~*&z%?ZH]v3'ߩ$qO?Yy(ĂHSԋ*"!O f}G1({>L?^I^OP/Pƺ./t.ݩ?f1ys>Ry3reM*#e]1;sm<\\lZ ڢ@3AC}|%8M)ҫ3cEwyfVZˤkо#B/OҌH:h:(i|zϊU|*oZ~nnڏ~ B(دKӆscYܾX'z% W:Yda}CamLh{ƌo|eXv&\pp(ӨM`zW>^r$I$j@([:RwD-$~9uؐR鳵w" d{'|{O{1:dKk>aw7Tc*oku۬Y+ghi +Kagˌu0QAX}Y7BеK|' 2qtq'7fٷW(^5ja1|%@XW~Xu@):+- ~ӑ%&ka-^M4(fn6}'FyDM,B§ݠxP;_+P-\\nC']DsR&Mp)3y { Zf6,tφtoI|?ҧ^+6AR:jr[iyT>_V q;Z)OLS>]Z1o}^La{ITIܶGYoEP|*QFY5rJp$r=OLX觔cǺD·̳CCaVZ@|?#SO~'~x̯6׿_\ѯM? ۗ\T#$!Y,[tᴃ=cM4Q2JlX;TW,)5tk`sl' v qb,~Ÿ\x?Tьb2*1ΕsMr|[Et,QS7W|Yޗ'"8A<Iy2ol^>K/Cd˰EJHԏ;IOrO>"P$~9HDޛj bw{Rc&j NFx81 k #VzbY_7e~ŕjr[9%`Ln|&3QDa JmN# Ufm<0(cx@)IAI{g+6 BZ7}ĘͲ(9)Xz=LAJܬvj@# gx<3Sd[kS^cU0j:g{BB1j GK߈)xر{2} eNqp 9diZśҶ=o]\ OQ3YmLc pڈԻos!9:!W.#۫Jht <5<bqlV˱-x:O31l?iV$vwA_ʞc/X}_-|=tػk ^:ϝmWbCV`]Y\Pugw_s~:@kp[FzuOh_KSߨ9Fdwq9ckwX{[\޽ dJgtPi%qh!:?oTFDwE[{բ 泣*lB/a*SKHy+%|n7}' LDXM$SɱOrʯRP `8 %,VUg9!(^i9ʹ}9Kbrok7d\onk'4l%#mw"liM7Xxi-ޏ;^ؽH/ve} Ca!_:%" A;lΑ|Yk_*]68}|'pkն|,y3hy$} 5QBBc \pK[{OJr+.̈́,\GT(K'^^ t:akqCW;`YW2W>R ΛH\S]n-֞T#wB?):u漡 ;~py S#s÷6QՏ]n[ p]0+VB?-oF|PK kO1۝SS#nuvola/22x22/actions/toggle_log.pngUT @oAgPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 1b` ,l~# 212p2*Z)=3_,D7 p?P oĿKuI::0[k Aq%,*k Ίaˠ"j2X Y+@5(&$M28^SZf@ S t^#!{6 6^"ypI>t.R 3Mtx6L@*2`бT+o.˯? ePRagQ7[ 0fQ`wO./M 2ë/_]8> *$(v30(N |U獉񈝦.q7k1|Dw,,#AG6@M2`X/#0~V`esv365ד ܂ ?R?$e8>0v&`/$tWzɰ|_'8 HY>^;Ży,$AAAEI+P۩o:Ӂȩ ɍ;/yr" |;3r]Ƞ!Ǡ. /gpؒwX L#+ T322rK]’o~d]!%pMo2z .=;/ L̠"6z> tI.IZ¿md䀆b~{'q~<A% @!.ҘDxrmY^~~[a!'T``flh*(C iUz"ّRIENDB`PK t91G'nuvola/22x22/actions/tool_clipboard.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<XIDATxb?-@ ,L l LTX[\Y9ٗݼyÁ , l b gg s  6"k?P'? |cL0N'VVy O2nص%@?xj9 LI թ3YdPzaձe 2 /|:m\_sL]8_GkdωiwgsUvB ξd{7?Ҿo>r],M\JE۔q~}{VRh􄏁-|Aff׮n?g0pg~@~]KTa,f,ö2KexrJ  J L@L@] [h3]̎*lˏ ^,s!l@_H R;SE{m5otl? {_v% ?+ W1Й: ~2S*JU_>e)`pbx<8`/@W3Ơi#ohl0@1/>2{z: Fİ0 t ,Ջ0`*̕'`0Rc]VLa bv 0 Ϳn_cВ5_A N!@*ƶ '8a|as81(p\g8w'3 ?H"$Ldpo4  ,gFX ``8y;)U3lX d o#;O1>xI ]_XNQҒd4Ioo0|uׯ_dK8  =@,0o!`ff>" ;##ß2ׯp / t /? 1F hf0@`D39V( Q@ fb.PFtc`bP"'`Hi s  7  T`PuA-W?30NbUe `s//<ݫIENDB`PK t91B$"$nuvola/22x22/actions/tool_delete.pngUT gUAnPQux PNG  IHDRĴl;gAMA7bKGD7IDATxڭ{LSWˣ@+ B723V^(ʐN^e` xO4{HmHXCc(+))%(d!Pt߻[X $N$IJ[?uMCL*ɖf" G"M=-KkG9Akh8y8\4)X6W l, CZJd&Q6AsӃ/zPփ0*!,.ӈ#[[NcIlp0 oI>aou;"jgAP4}D` V̈]z@۵{!,hVa' 5>8Gat:?b@ wV -`vSCk9q\vGo,C`^A㝇׋H]C!omH2ڞ9Hǁ~w`) }~:gA] N`5g]CPa76%wS?ZN)n\ASB#T.Hi/"BtQ* |F<6[ ǫQi<@%F J fa=MO| <5&$2PLL _(Sah4ڊoe[2tEXtSoftwareAdobe ImageReadyqe<IENDB`PK t91f7"nuvola/22x22/actions/tool_dock.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<ZIDATxb?-@11   @43 X` s~d202d|ٝa IG l /c`BFF& {p  s3#MMX0?OoWX}| w Yke?`d?*΍d`h) xPk|t~г 9U j"!;3/?$%p;8_o30\h}=Pk@`b.``קN~q-"ç nz?÷W͝ Spw00\_t"2@!<`LYOv@l8͜@xpgZ!<b4 5 : KJ[o~_daP?l d*V ?_-'\.@*f@`D3 ,/N\IENDB`PK t91ү )nuvola/22x22/actions/tool_drop_target.pngUT gUAlPQux PNG  IHDRĴl;gAMA7bKGD pHYsHHFk>`IDATxڵ{PU.{i B%D$DSFc$Wg`1Ă#F j$`x! RaұljsR]b*O}w{.j5IL uB{N#uܳ29I "\"C'u_E̮:=; sKb$8xNCLd_)_b3ܼz45G]T;o'+0#~5=ٓ-ح]rTt\bdl ĕh*CX7 M3}3_3RL#$:rP}RrN J;EIĻ3%WD^03_!Vgg#"@>Hy$u 3{ddpqq'Q`5D ?To6h a=ky FȶC3  ,9:^#Ma.~WDzo?3# *\s .O1B/A[FPmUg,Jc 5J ˀ{.Ismð!t 4eW!}ߺMF6Zl+Jp(;F }Bɯ[74%_Ηw^o1"pHd1ǁGA`~`^0+ J}J$!=B޻B5+rKiC|E|'igxύ\~ X{XxJl4| |v g$ bل3zQQ'"x s~x?qQ"X2 %|7;Ҫ||JOko:Dxds~1-_ij=2[GFYMsb"[X Wv2’s$i2xw _g=AqGH,sbv^߾cB-ݿ09-%tEXtSoftwareAdobe ImageReadyqe<IENDB`PKt91t#nuvola/22x22/actions/tool_pause.pngUT gUAmPQux  sb``p b $lɱR,鎾 Ov%K\#JJRSRѱE`;ңpzC=ߦ5N}x)[>%nuvola/22x22/actions/tool_restart.pngUT gUAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?022i L@ abֿ ?~p20sU1ac` , /20{3 AK3L-5*2/a[av.q`9E2? _iodT:M ÏZ ԑ X,= eec/][T? 30?2e޸Z'5{wy1q Fxg5'|u3m}& u@̰t.m姞 Ozb`uj[Sy8g8y?ç? Q?nF>>0xH19ƐО]B?)鹽K1\yyZЉӍ22121|aǻu Z,Ⱥ fHϴT}gk0l` gf?^9z'fubg'!pxE$%3H1|P8~9PW`ZfG! =?O\9Ż KJkr1J3X 0䯮~̚?0|3 ##=g3>wy njy\Dxx+4gp>#s"s_;A"U$2Ͼ~ck"+_ & L o (| J ڌLX9 'EnaK?4a0{ }A¼{gɾ ϬQX7 XPK`~F>b˗ϗdbu.'0%)~33|u0Y[?{sf@ )ٮ}}GW7n`je!0a= Ãs?<f@! ?j&+{3` Cf?xCnAvAǿ s'|By@/h(xAO11L4?xd5' 5C gC[* W0sƒ "X--/lRj꿳N=ɐ+]$P䠤" r|b P ~b02a]n:_T>APc q3Tjk$lpcA¯?As#zB5'na'.6v/cSs5unx0P*hC:hWofev`8{EԮϜnZ 5j@TtF^I)`y{?V8`Pp@g|f8P P f`#?3?pk^j)Ph`f`pÍ8W ϝlÅ@ba03P~.†:yӟpo9PT*BV@pAiO}c9 n^`1&3r3x:)_st3;@13&d$Ϊ"{^&6۷1IapU`c (+. ;> `fq/e`obfImMn't^3Xs=AYE߿  bb l  _ag  +3lU'KgiaQ)YYYff&VVǀ^b`bEiiYaQey.^1 iv  &yE+%>_ &#+'' pAb8a33(|f b1e*` f0@3exõkwxpAν r nq3I 9@14ٙk{ɐ+Ǡ: ñc?~ W!9&:##$a@"3or0<{@1KGV`e(?#P8 Û7>A!+~_ GA\\4,@d8F Y"^$/ ""Ŀ'' !!!0A 7 N& [o`̠`ci +8 730< @1 o1| jbe ?cc`F7f0HϗO_  ú_/?2|a8uѣ2 ش&9FAӧo0|aï'0[qnyQCg^13eecu,ff8  7Prc8x ÍG30\ @ < ~GZo(۟/]dxsp;÷ ÊR81 ?@b8Q IENDB`PK t91Dqq(nuvola/22x22/actions/tool_uselastdir.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  O[w#.EWNbR ^n[sv`?Jq)P01 @,0νO{_]Ex, m0Lzon/6(##20h1|t+̱ 6{/a(@p|{=c@ Ksb<~<Cm*>74e>c\z)au| ATA. (zog|9whZ _@Bo_ wf0`Ӳ{ d0@ ?X. 2ha??3}3X+?73а?bo, ̰@pjaFHa?, r=ȇв @ODP b⯿ AZY@(. uot  A.yP|  8 ߀/Hl04|yX̨_2 T5ãEʇ0?}efW@?JtWj!ʰw"+0_=p -*l Vb2`PJ*3f~ LPA LA.r5H: hV5G$IENDB`PK kN1Inuvola/22x22/actions/top.pngUT &cnAkPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb?-@}Ţca_  $Ӂa13?Lsx [Waiihf```݌n4@LEXA2t3<c`&<3#V#u`1A\Bɸ4q[{ӛ /P(> 9! h[2Ahhױ 2I2Y`i%4p eG $٠^YX|/%%~22{zWvnVD8a@!Xpeϊ>gssI>`daL0G`hAMaG&&ƙ )2a@!XUi"qZ gx ?d1la J EƼ _kFGBr1w[[  SO3ß?~ddaϙ U R C| 01jcfz;i@Cv5p9 yoڛ-ظXj@t _07ސ!FOJ6bx ￀bh bcJ1:H2pwr lb< 7{_+cqii#@? Nd?'; <inv@fWN>/ 6|ΐ5`e3#;Yy7X|0 3~# o@3b`ag(6 ߿@B"4(?#H 0B4 ?#8w￁Ø/`yR( P !&h0,R(@ R*W@fjY0QāۇoAF`Dʾ@,(J83͊] @}i\=@1Ҫ20ƙV2^IENDB`PK t91ȏ%%nuvola/22x22/actions/undo.pngUT gUAnPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbf 44EEO Iv; Iz(){khl\R" "+cc~?i;-[˟! f}G75^WB⩣V\LwFl#PyW)[Z" Bh>fX4kê__`bbY /AbH4f`Xb 9~YG>10| AR7o޿g`xA_ee׾x-`Gރׯ/vf;eQ P=zd``` b' ށ-eA7w>}3 r^cUW7 -߾ߺu+NN _] {~>9 t-y܀W?>yp.&WϜѣN}ݻy 2(/]D˗췿~]2 p"3}}eG7f:栬e{{okHN H@12˗ϙ$%޷O7sܺ,>x~(_^`L߁a~08.3>W|}??BE?^yZX00޼ɰ>@ >_\+08AA @L0X %BD=pρ1(J*+)g`lD5`b%/'^LE3=~s0K7) IENDB`PK kN1-f7nuvola/22x22/actions/up.pngUT  cnAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<XIDATxb?-@11 (< !̒aaabz.8F#} .4H\^!ܻvr30;Ƨ XpY&'81| I. B\MG}æ pa&S':1>EDdxC@e&1HU0|m֋d@! feHʂJaŵ ǟ21p2f'1b8Cϖ  Vl@gb`C@L(AwYAgd7ï~H_ eCr CD2m L'?%9yY[8YN?Ǡ)A['ÿ?ZAKD Oa,2`f@3*̌%,3f1zÛo?YMAU@ 2h 04Ԛqj@pم8ٙ殸 Ͽ f |08ͻ_ ?c5l _e2@p00Laǀa|f@  /`Ay. C_`y @CiPM 3( ,OV  t?A_H`>C)fY 4 rȟ ?`;fpNf 510Ts0M8 9>IWK]+ ZPE+a0;D)|Xexhpfed5 a07Zg8?k3a4`~' _3({_`ض͙Z~ 0Q?PBKG3|y `0fAK 70)^cKx2 Xc|`aa O@+çoɠh/P' Zw00 g|9_  XXYp.`R@97?f`h Lf9o&ex#? 1oYJd SxQ .&A7#sF1zA7˛ԝ  /gf}iׯ \=c7l3 ??'hܥVOgbS]X{IQ! ˍ_ռ @,P'7g+'KشW4EE/1ԚE05y|wOwd}F6jl܌Znս *Y]sSJ=~{VFVF6"m=ؚ̬'id_lf؊HI*^dpĭ[8wܢf>Uq%'[O/LbF&3"@,,, ߱2~/DC`_??3gca``ac  dA0wF&(3Pp (s8~af oD1J1HrPP++fTcab _bH4LFFvNO2,/#38~u;uGW913#ۗpAA C\ @TE2Y?e!#vŠƐ{s]JnHb @18Aae >/%x~l-̀Qv-//CFF:8<`z&?#v1YUAn-ïO?9%T h<,8`J`r Ff3<{?7/~ FFp`-T.ā'`baffdPP(A?@FpAKh>)+>@l KA@TjH5?(lЌ/Vu@11x}7sIENDB`PK kN19h(nuvola/22x22/actions/view_fullscreen.pngUT cnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@g_ҕ`db@@D_$ILbF&3"@,,, ߱2~/D  u߿`H =3001?FV{W_2p} "_ |H1)f7#+;t`@2|+_/FQ  Bw2} ,Z l\ 3@ h׹8_TYZ1.!c7@30\00 \S?i5L0fӠ_]+7O1`x}u=0 22É3WEr71Hأ$P ߿0p2oewQ[`a(cbP0,` PPh2߿ dUaJ_:߁ bb%?4 t:;0!YƠ/ fb L(B ?0 ~ sF uH L A3? b`Št%@Ø3L_ s_&0F$8s- b1on+B GXn  eaa×k~6 $*@%Gn3 30"(+`c4V( H:y70i |fcf`M_~1 5Th8 ψ݅!+X100c` ؀ ?n`kŀXf @,, ?ax ,$>b`/o?]/a$_{_G]}cbaffdP8eX`RLg#w@Ù%4Ǡ ,?/Lf1ᄚ,?# jT/O/_#<bb0~*_IENDB`PK N1]"nuvola/22x22/actions/view_icon.pngUT nAhPQux PNG  IHDRĴl;tEXtSoftwareAdobe ImageReadyqe<DIDATx͋EoNv7ND  K% +x TF"xQ<h@E70'3[Uz>QHCUPO܋!SSx}$d^c`Vۀ}doȓ[5izMQ ] ]}@w/1f+ hjijbk =SbhR֘hvSR#T 8ş@u$d6nwkEF΅}uci]dh'^ƕ\&_JG8tk3vWU{Ext!U2TAQ]Ez엥`1[tXn`%#zY_,h}4EGx[H`by#X22?13 Pp8E J =3 , v1\ArL J"\ 2;A.I膂hRIb  w/ IJ@!i X5% A2} bEбKAhl3CbP10248S@A?" `Ò3(( 4: kCc)Lψv 1A8H@?01bpc\N/8X@_] Rba2@gcf@ 4 À *ǯ ^|oha R t 3ëw?~o'F (!>??! 0q1n)E'$$e, g1S@xFH>?HnN&Fbdw_XZLp J _k< ?o0 1˗H: h vȻIENDB`PK dN1){99)nuvola/22x22/actions/view_multicolumn.pngUT LnAhPQux PNG  IHDRĴl;tEXtSoftwareAdobe ImageReadyqe<IDATxϋ\E?3MF@(Dr=z!C9W𠘀5 @b6kݬfǝ7]U+d}U]>3Ǟ8*!zV70 gC.oKұ9[i6lP) A/yˠ\Rk\]4MԶ9nPoEgv$4s]>턹 sx@E-N_?ޝʑԫGfSO =-X+)Sa4#4"E W+!4ɇoܤ/k`S~92 *R @0>-hZάϑ/1mlI$ahepղٳ0lKw\^cfmhb"틷| 8E .LbF&3"@,,, ߱2~/DP!AAA?   @cdew%ק 2/Kc| ZF߿@,&&b ?FF6ld/;P<a4 5+4's1cc=LLXmpuB>? O5̀.aP0s0/mN9û AIrL J"Xn"&K9xU! q?~.# WuoVN?_-$@?v.u0F>4$(#j 1`/0b8 /( Xb>`8U\ X-/O߂=aPAO _3 `|@t .f``m!{bd]w3K2R X?"p112 %12Kfe`Z3, Xg/u$d0w8|A_`j`cLL @,@+q1n \E*A.pH 1`Yz~@l KA@e# `l!J^ FZy@#`ߓyLbF&3"@,,, ߱2~/DC`_??3gca``ac  dA |f0p'ï? #(?@IiQ.H cE6D i?1 @@31bjd&㠔>@?ff%4 X22Ï`_`xSǿ`> fnP5b( 2?(DpPC!j(A1 @,AAӱ4H/8l#Apdb A Ȃ I _y@?, HxG KA `G DB>uGC\31Z\ @T-BmF)4 ΘY/(2018C cD$!)(`b`B] l`p03Av1`FhX@zp L@Ks 3@R3fP@020ً/@~ PüUh΃Ah7>߀r$$1\-.!8b}ai1Y5(;VTeoz iU@իIIENDB`PK kN1MՔ||#nuvola/22x22/actions/view_right.pngUT bnAhPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1 dїU A1P?P$HjUݿ e|{ɍ??R>jo` `j%E%< @,a\>0B 0 63;Y Ƞ/P_O f -;3/ @,L,_~gx+8l h.`o>[l^ Of`zA'7 v2rbafŷ,B %~2fWXq.970###ö _`(fff;u'0Cd_eh2W@<} 32= 7ܛK+2~϶ 0.z7CB.>y Xc+>)L 86MQQf c=fOc+ ߤf#`X|`@} fbc_1Ƚku}g?oq򜽻 ?k@jvjiIENDB`PK N1 $ll&nuvola/22x22/actions/view_sidetree.pngUT nAkPQux PNG  IHDRĴl;tEXtSoftwareAdobe ImageReadyqe<IDATxˋETǼ3M"hRpNY+.q!I%$"ڽ˸p7 :Eu f"B 8Cܝ;1d~o9yh*9yzf,%O>+(>%ŞQ AY}^VD%߽cpF_T}fZ3A12ZkYD?}3`zs⬒z"_\gyrcTaT_=EQn!3cxe668q.j!Rأ3iYɑ$h@J* pOW \h(Și^'Fe1ޒqGD@c{6s]46e03@t [&_BXKwk1Za(wAT0Y3'LbF&3"@,,, ߱2~/DC`_??3gca``ac  dA l 0"3lfKp'ï? #(?@)iQ.$C3?;CO fL 5223LbF&3"@,,, ߱2~/DC`_??3gca``ac  dA |f0p'ï? #(?@IiQ.H cE6D i?1 @@31bjd&㠔>@?ff%4 X22Ï`_`xSǿ`> fnPn(P h?!Ɏ X@I|FFF!gd`F  a?~g`d T@,L,, fs  K, 0%#(W l $|0{-nvF$Є 3 =jBi`fHɓ X/%0-ՕAZ 1T+FC} `BR J /88axp:@ed X333&+X_p  `1r1{0H$Ā0 ^M!E teQ&c$s p)C- ! sFot,@1`Xjcaa$׀/@9020uaAh3(@02߳_:2 -^\B''`baZ󍃏t7/D1 -E"0A dY̐ Q>f`db F6yg 2a,{#0?Z˗H: h L^O2IENDB`PK 2N1"""nuvola/22x22/actions/view_tree.pngUT nAjPQux PNG  IHDRĴl;tEXtSoftwareAdobe ImageReadyqe<IDATx=UI;GgVM@Lj"if" 33E?s9]U}ι{Aւy.qwpHBn`yڮYS^HG8x׋ R lP) 7ZmbTRJ=q繡vTxnq+5<89I',nؽP)@LK沙CQe}@#K%_\ڙTB0 .z紩:Uk!T""Rm|BGh%dӧp}6>Z)fR"2 BR 3o8yAg1wT;HrSsb~x >m7R4 4َsAp)] b:1(9幃(jMoՒ_UEZAeO䫵q|{_]݅j$K4ti㴶C玱GEn%MACѱM4+Υjzc cs&N)085Z~HMR*"R&11&s* Mu?\]omNX9mrqȗ˜ |&G r3C9j`!xgޟԓgu\=]':H;LٚT|k0#f_~dTIENDB`PK kN1ΣBHH!nuvola/22x22/actions/viewmag+.pngUT cnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@df 𗝁?#DwS~.,L 2嘀ľxڳwߦ2sh4{0 VZ3#}\ 3Rǀc`sLBO^)3}B7 P f hȯ_!f >dd;3;#~2X[0:0 >?N$v@g1Qn<0CҞ$~v~??21hc$2p?bg baL?ܻHʞL'jd/<ăk +1@`be*-u=Y,5(2C1AD@XYOY8xx޽KJ B\kf%Β 6 ˆGp1=I v癃RILQ''2 f`efa hVFVO2gYN?; &o&FF0I23i LLL`<ː9 A?(}!êk_^ 312O..R3 EH Ѱv&vfH  1rVπ d0H=Z@,0I7ÿ/{ 1YA ۯo ?'] ?~d@6 X`,Z=ZXJFs13xz20rD4G+;c+.P🿅?+?=j];_6=LWq3bXr0s rLma ?~n @вᅩg\@Aiǫ`44X3HĂh hs߃{g2pp^go&K , ӿc 􉇓?,B>30| $N2r^nA1$iZ` 1>Y  73$j\@,(E&(s [ui &F:>qÅ;>1r;y R@1b1ZDTM? .T2ep#л Ϝu/r/Qoy@L o~eIENDB`PK lN1 g!nuvola/22x22/actions/viewmag-.pngUT cnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @43 X@c2<J"ڬLl #?#?a32A>\ l l˪ؙb0'yF 5n_  Pr37׷ ~o4o ğ}Ď@fBl{9ágX/ ߟp6f6cG/ xձ#`TA4>3 Yr (ç_IPP] F1 3329 bȃE,b1 Ͽ|uY ANF.`ac@99!J3qi? va8yJ̌\lLdLؘQXf]+4<[3ݾϱ?@*f hf0@`gIENDB`PK t91Jo11 nuvola/22x22/actions/viewmag.pngUT gUAjPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@vvvVVV 'jk*NJ100q~xW]i_2Xb05-g[:ۼ)+_ǻ˿/\4ҥ+@ @,0οTq2:J2 k$h0&``4e`F&?;.l&`\ 2d{C~e`d:SFGAPP<66vn&fF1`l]0 4 𘙕6ٙs S``*i"؁*9/f3÷2"6'쿽f{j:2A, ^=bx)\. p?xxƃk82 ab`x19Y!b߀aIkW.=.\߿ٵkײ.0h7+$L9 @b'W Ӝz{0çu K@A;c3wËaNUyZ!`f0@433n NJ^/0?}x=sgNyq VvLALf3bGrwwl tӧMDE Y߾}{XezO303:r53`y+l#&7o[fT03Dx0.af0d`bX~Rd&@Ǐ ׯ_RbB_OS7 Cr;^  `n޼ ?#VPA,X{;20C"Yi uĂ ϟ?F_P@, 5lɃ, v&_<_^ au\<A1:F,m3o#*SJH)IENDB`PK lN1]((!nuvola/22x22/actions/viewmag1.pngUT cnAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?:`47b``7Ï ?kY488f [ bao[xC]BrW^fi~-AJwtr1:f03b0R9e/&_  l)?@ أp???cGå3fN?_|wo_e V3pqymxU6C /@FF  &i.;3Gw7^3 rÍAP2+ 17R  &ᙛd@L 4D3f  ÿ~ThcDLeDT.f@K$R ,7e&mt4)iv-_|#D!4Mc(2_'^XouRj 0)+/ 2,0QKv/sjMp<մhaw&.?6 a\%G ] džUCDz9L3K Rr$12o=J\ТClěf 7i&[Mxx4^^1*=t`ѩ/I"vwC׮4 !Vv 0FC%e'sxgEO4ŝUe;O7 "2 PH(lwd彭+V7w[ ~w栌ڷJd4Vҽ$jv *AVHrc K.ӹ-u .]l8k3ul$T4't3䌓n=2@VF~U(b-WBKmzkk̒ ?wQnoP-M㻁v_ ۰,p|T͸t0*̅q?{WIENDB`PK t919nuvola/22x22/actions/volume.pngUT gUAmPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<pIDATxb?-@1`D3f#C/33A@F!A \ya&(fD i9-B SGP,&?4:EI@?.Y#a.y9`4O?1=f /$(D,@ ׿dvI7 w2|YX _T0d; a.d.yHFqX׏xdbU ۶0__wo PP , CKG3|y `0fAK 70)^cKx2 X|`aadYp\0q2|z˙ F ZUq20 2L~{Ɨrˏ o`b'M  &Pn97?f`h50~0|SkY=>xrF}o r/Z]OkܬP> _~d`4D3@e`xkon20 W E]TGc](?>oR;sLΝsE9Ą/,eeP ەp3,X`/е(f,Ѐ_Gz{{A3,\LWWs0uDN! K666W`cXhÒ%K78>J0-9t5H`LKb?(" cggg6IFrHn #;TU/_~suw ׁ_#*S̘NIENDB`PK \L>nuvola/22x22/apps/UT VMFSux PK F1^#nuvola/22x22/apps/access.pngUT $MdAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb?-@ ɩ3|TyY| bfd`d`DCP.DoVm;}x% e >OO@ @3`T_ ?ep0gXδ sr0<|%էuy~}gfׯr20]|&ge;;6?y42gֿpov.ncq9 + )@,0| ޾g2r13%<{A3 X X`#w8>~efD7`x 3_i 6fdx?{`bfrD'ö6\bc65AA=P^ n+@@j>`dxo@ * Be`apѻl l,T@|4j,#@A3+ Ç7o؁VAY= "H ߿&f~@geóD\49c`ff/ß@_ fZ* 2h h0, {鑙? 72?C0C㚯 f* uA, ]  cz #o!Õ \, 8 fg&b%FF`Jgbbp6Fw?ec]Lll f Y  Uk;qp 0qqs22<|tXg0w00\~``p33$홁L ?21ȋ:+`f_~3ه =gbXu`<1bbE66.(Ke h8-X  R-@go3gι؃~xFw̡/*;s,#Hcw˗Oޟ^fJgɧ_)2?NII%g==B?Ln5 /oį訲ļsS(w2o p߼bQv"PAt :poSMXM,_fLvOn_:1eI 0@2 Im?i̷ol{l9OOTzdam/`챯,]ø[t#BV!C$K&$jSVWy]dH':wn`OXj[7ma?B; @;!u +8`T\녂L"\)τ<;p Zg`s PKvπ}Y6*,@5)y^HtmIZg`vT8Dx+!tiiv Nty1m Pݦcߘ=( &g#CYtSPľ>q슄1\Q -k&JX\S.fO\)OpIUMܩyrP4EMᲲȞV2OӘi,G/a]FQGR E+"cifChP% "ւ)PKjn8zv s-kt]IHq*j0 +!dyܬ xlGU/s'<*B8A,G[:S@=; j_dkАŸ|]wmPOLɬHں%vlp%~{_Z{x&FPI0.D(Uu3DmmQ2Ti)׆[ ]ʤk˫ރ6gxO/P1@t4F#˙Y|<> "NwfZ͛;ݝ,8' Q2$Z0F'49e6ֆAU2ҭoMeMQEeͳlee2kߥ0jyl)hxhQ&^gE_Rtt&yC޵γZϙu6)jHp],tl@HӦiu+]_vV ,X.O[%"z/$o]ciz}gDa@<%8dfAϣ<-ɦ(jYOJBe]NfcLę #gT+@Oco:t.vE|/i2&ϧ޺U+h$ ldzmq*ѸV%n{{<?o7du.Fn֟]͍j!mms%[*ԗ F/5!HQ~(9 8qw) ԭ/8(A>3є *rA9y50*˱KmS^=b(`Зil֋ Oc;çl q0|_ALS[/7>]:H2QvQ߫ v0~àAS/ k2b`8-Oo 6NXA #\*|o>ax'×ogM'I G ?Uakg_33b`b3 dzր  & e?zW~2|pS_GI"07Õ -o>10IJ33{M @L H |Ë/_KDgaj@20\z,/#ç/?j1M_wNY'̬(?~3 ¿7߿@A10{/P-P D-ៈ _27@1-_ _D=e`'c`f c`ex67ze +20E"$[S ÓO\ &(3h /3yNAY]Vbd`c0ˠ.-26`c god~?ag|E)k6!? kfk@,L 0:@, .1<9A($YVO/ ZO$81ppr0p103I2( oO~(2 /~I3|G~09hKI g>J +'?777sr22E܏ ^=cxωsn0:} f@ÏK:QEESO~Y.e H gga7{٩roW| 2 %3ǟ~?}ϟsss r] ` ~pg_r/_uM8*ha# ZSq))* lÇ=| o^T a0(#ՃhgPcddb^8##׸&bUe `BW=``cLxyFn@@1}r0I@" +W. ߿ L L2 `% @L..z;ׯ,~O eow>2|++A6;3|edQbx!@\xb癳2߿exPwP+] o^eeip07 _޿| LN .bP=9}?맴;߿LVgSZ @ 3ܹwwT<)z;/3b8@Wr >1QVVo5 O?2cbA_)@O~ ~ ._Ai_7˗U8;_ K{ y/K 3~}u[J|b " {a8x`>`Oz%3Ã/<TY D 15|y`( r 1+> /4IENDB`PK /N1T nuvola/22x22/apps/amor.pngUT :mA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<0IDATxb?-@11c ,@w"" /_ʈe騩rr }s^a?(*2x @Ă@O+ 54epիne?M?@a##?w%%% >1|[I ZopW131|o,_f@ah(";{cG!78Õ+ a:e t;{g= g^݌O< 4?Y6b)ww^d`˖10~ *&&߿ lneυ |_ ׯ_p$ecp*۷` w"ï'a1df-XQqgaa?Z$,58à ݾ} aj0% ֬a4? X^2 p~>󅃃܉ ll @+'OD}bVnnwpe`};l@|@|3#157_~B9:~ex7c ..& :&o0|ݿ5g@_0lxy X@?Pÿ?܀^ cz33|;Ahe~~^EyQ? 4(?v @,)A<"4DN,,{÷YÖ0s۝;ȳ+˫rrJx,3( 3324#"a5$y}kRPR'/vv|qׯZ **ǥ LY@ܼyݻwbw9gY ?fgϏ?@c^^^>@1 l\\\O<PHϟ?;>} BBB C}@ vjr'Ë/;T7o-c&;vvp`66d f@=@hW^13#PD7 eiw`} ASdKLLL`EV@,* Ā(v e Iݗ_~F_ S@.v&@i ߁'B Z 0`PAP+ÂC~ԃ|09(#h1 5? ",u @ùz샠T @0%V l@{|(*Vf74,a_b#"$$Azg @0Hŀ2d @ @jbPN;RLB k c uIENDB`PK 6WG1<c22nuvola/22x22/apps/ark.pngUT eAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@QQQ(433Ĥޞ q+$1q? |< ܼ _bؿgP0 @LH_ӽ#Ҳ DLHHW߿?] @p eddB={p%\ܬ.<˘}?'nVv_?;&&0/#ff/^\Ç l VzڊJ\,ܼ\\|,,ţOo,*'ijknA~qnL *\`2Wg (.=WVp^é_66_@(}fbbV @pٸmx.=zp[3p0h 1pqC۷Ѵ;_E~LMD`A poFNPc`cW DXY9xxe \6tb &b^?@='*@pp110g`p'&NF6)aN~o ?n20|~_?2|?0/@ ")4ׇ ob|1+/0/ï_~a L@u0l <@'`:hT.4h(3P[223?FtdC f`eA@sX r3f4/# (L32 ; YI`yJAebZ\6Q237[/UV``b`4ی 42|z LHIrzƬ NLv7@1SQY@DIQIs1\p<B ؄1~FG{W+f}Z"++b{_|s nn5zK+&{% 2hY1h3_߿X^>?p ud@ VVTL7/^~|!}t__ߌ KC&`K7޽{hy7oF_1ܻ{eSCyx5.]ؽX}E)jQ7P\Ν6͇AC?~8cm[C.*yFJ@ceee3Ǐ P2 nfeIENDB`PK 3WG1nuvola/22x22/apps/arts.pngUT eAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?Y0𒁁Cf>E&V,D  7 œ@6/ _gN3- e 3/ 7Ksƚp6 _gm?A. /L @n? ’BQ>ef/ j$S@3;W|EG/&VvVF~fSyV)`F432Ï-$߻ && %%ĠI].qVo ?@"?9Gٹycx ^&NNvvvE>!LR `#b`{u sADS`z VaA1`ai ""KmcZͧ 3~zh (h.Av6Bu?`8t ߾vγzY.? o߼gu ˗2113p# r302r hs+J(kYyKdex+f&7a9H}2hii2 10cf`cnRH~9aq6N&a#i10? ;%03\~AG[?r"(vn9'߀CEy! t_<L < _ J )#?C!n`q4HJ>`\rA?1ÇLqǏ '@p>@Kb 3g0c= x _~1201<|x ?~ C .;`Z@~0קo@ 02|*3XX32۷0 dB#7(hdM`[VW MDç.^<߃  ,`ث8{Z{&K7Z ~ _}`8~`a8Ġ@|/5\z{&߿3ܵ;j~{$^Ffb;'ay 36eLv"sGIENDB`PK /WG1Q!nuvola/22x22/apps/artsbuilder.pngUT eAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<4IDATx @0@Sp` p2 #(|OZHsa",s,Q˩jpb$ɛHu{qLW~@.5e~ R^s@D,@ L篰"7}F/_2hs0k1ʆq z3޽PTc^330pu} 3q7~ ++ʠ"+. @(\YR] hVpr31H 20V7P`ϟ?bM3 [ `Jy񔁙89x8 p$@,_@URRZOߞ>wgŝf9q]O lll 4 SƱ77(G$xc[ʩ#w'O0 >ag`+0XAfr Jl7yo ~`xWABJACݐ֭ k0xq2ҕǗ of5DNf  X@A\\*>22_O?0H1ybL\ '20Ϡ t00|͠ %eͰb"'''@0@L O~ Ç>`fa` 00,! L%/^cx a ;(mVRRfȟ {l{*JwBUpYAڀ! ~|SpL߾~ ^~Y\B{ N?]e`{~U\!QU&a`df@/eObPPff?3|.֭O&+'OOg 󛵠!ibuD;ޱff;fvl 7ocd_ @?(ضms_?yoO'1tnb{4C6NW_3|z ~q03I~ճo@s3(&ϡkω?u]g$\d7ssf2pqw>>|ˠ( 0K0pqq3<a%w~~0 C _x_/y[eF[9=.3ODAF/ۯ l 'Ogؾe~+W!! >ykO]v >y1 ʻ?'8%>}c8r(} f4עV&&fF_~c.WLJASO޳?A )a& o>|bXp߾>  x&Fns| 쳝o/\K1a!uWut5@ 1BV`ab&`..2k)J{!PT9''T ]0C7mIENDB`PK ,WG1u!nuvola/22x22/apps/artscontrol.pngUT eA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb444b/0`de``S``c``f`A30d`T?Wgd0|r$ @L ?LT*c tH H 4Tn"/+mcc-UV6o0Ȑ~@[oXT$?W31NY{N6bnA1Û?4Te~qX$3 ,,Xty4>}b &~~~gnno߾j8,Xɵ!n nd`f12pss2 r0 10BywY~7 P&J^\LX?3ff888YąyII س ]N Epu.3)!#V>"00<Ӈ7 llv9;; ?0իg wtIĽue`Z tɟ 10|"i?13CFÃG/>} gf`Bab`cea@Lϝ;ZWuy4aPg3(fϷÕ @7]gO0a`F6 #(w8FX{ǤEʊ.+W҃_HHAFW7%`jb ưv2p0 ,< .~uO?70̾3<~.0 30H00s00\r͛ _~g0q01 >,@0"_(WLyKO3_vAEK  gfe3<~,0fǷ$@1#÷w~< k-A3n /b`/a&فq ~ga`ŀ1?@~ o1{̓˷?~ ~̖U 5`~ ߁L l bx68(@7 @<懧>UJH6mG>Őϐq× }g򗏁'>/o~2z;РČ- 62(k8XLb>cع|+[ <f W'2<`gVi͝ZQ3B72dYA^&2,AY]a 'v> b f6. za ;p`f8,%- az ,@oIENDB`PK e:1jϙ%nuvola/22x22/apps/artsmidimanager.pngUT НVAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb?-@11 `dd$^0h 3gq(tsj"J3,eZ,""t&رU& 1/c7X;^1ȋ08Z(b = @`s߿ a 3ÿ??iR6 T,(XB9y)NS-15< l ؊TUUXYXRS8||$/0y tdm|ʠ$͠(SXB KJJ`>>>~~~v6V C}F??~e`73Jn ?CWTAHPP  b`gggbf`0 ekdgd^ v2 sׯ30133p2q  gϞeadPQQa``gaʽW 0&.rsaz!H/;"45d&@ ԩS@8~C§ xdtlE/c`b`(`e cص{ϟA( 4/8 ۷3hkk3 33h1|ϼATJWoaz ΜL5 )@A   iii LLL `oIctX?/`3>2 _?2 2䆿 h~fG_SxM~+W1{ڃ#ͻo ޽| @`ϟ?0akyyy /~2\dVVyY?0 ȠWӛ 3lZ[[*xx<>pq{/eqP ~A%BAPH[p=__^ @`30312((1XYfބG ۶<^/aRqI+SǗ/?N>'@*ABDDZ D@!0p*i ?600,vbߋ>idkُ|p-@ K)))r 4ۗwPc@nNq+e?||ݻͫ'0Ib;\l0޿ݧH;XT5 s-H/@1Ҫ yP3_IENDB`PK (WG1&&??nuvola/22x22/apps/atlantik.pngUT eA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?xyy1| g yGܸqΝ;3^ԃ_0 ,hXׯ_,,,***AvvvV"222 .]2:СCI@= @1###WJ _aشiC``ý{߿?(.  QUTTt`ڵ=zEWQokʕ~ , D60xhRY9t_QU8 UȍDx03|}\__ ^ _%K,/,,k?y0PEPp x |U^a p Aىa p! _~cghmm*m8B?  ^kdccc8p CSS=а ^ ||T"###3bAJb@闇@Ï]h;;;'73`df+/>} Ky\L`0U0())1f2D-P&t70L_ $" ? P@Y3DEA÷oXX<@?Af?A}-Css;0޾} 0emcؼy?0H8LoaHLf ?A d@.`{>8̰q1`bx=o. &. _?~3  %Y>II1`!_  103?vȱ /_Fw~AP s1@] Y; JJr` @dPCtT00'5˖_ ) `,nŋ{g̘lXd?1\z gN_Z䀿0?8vX=rVAS7=S/{wKu33ݵ[F}@(1lْǷ̄hon>fa&;6FV7^08~϶={۷o?@(etǺ%%%>|ˇ?|;?};mX?##㓚1zV+ @Ja a0Laaaaw>/?qb7WB ʣX98  x @( #ǎ;/ߺus70@e%  aD qEݟ?%(*}IENDB`PK WG1 IS nuvola/22x22/apps/background.pngUT eA}PQux TTR~>i Z4uL<)ι;$,dzaʱ.=gJqr5-O!_ɳV t:Tloǽ߹{s :=^ ZY^ɐ~,{xkNNLr>uzΙl MS+U4nUjb)23*OL&焕 x{[zi#QKHW-Όt7n8ʗKJJjD ]߄1]h4N)ka’k??B3T%$`A+҃5a& ]J?/ >-Fy +s)6x`8]|"`]2]˸tŜ gkm\N*Ct*Db'uΞٖ4byxvaOvyI0Zs@%BmHs;_>RT8Nu$ȬE8̲E x⅚uj~+bU \ r2RIWpݏdj E4c՘JL Fh[`IEWѸ˙"=\Q"D.c#ʥ2ָ֝r K[Sk-*DX%;vJ%.Iol$L5QSݻrL%|zf㬲nlQo \J-n 2҆#y?[,4vFlE:|sZrAFYCq"e-4̂#3uֶUsmt7CnRg..#iaFr|ZEp;(-] L"` K縁rPwIgSHhg])u[I ;Zk#?a)x4'[||EbȘi"_Vzs D[5)++tá&у0@UxQ4=D?"Mfme'&T'@ v" lr^#b; ~hLj)eE6k~3p1xP }U@]k0⢗XuW)4` qWo"Hy嫞3OjmɂiXp[7} f"WMұEUCkQe:Zvm\ @8 qc7{ g k_}f`8~b1zP(CxJHx$2#wM}Û{n[q}]Sk c @2xl+T/w@ɠ(!xA虇H@٥8}a`*` ||4L@-AMMAdloԌ!+"h5@ f, CJ]AZP 4;a &6xnL%?ك;,6o`Pb% `bft 2@oCL?% ,ĘL7=+}3  Jě)@8`sAho<|g ^ 0խ/ \,^ܳS05 Bd7Б~3MHg Pfa H:hcզhP-)L`~{L-IXν bKOo@`y{H, y-0`c߿o`23ȿ@;XYXxظX~fe`~/3=z+Ç~}n? aʕ o>p2r213102H12(~fe|@`s`|p};300>de2 6>/0( IN %n20@)1Ҍ: I F2 ҂ | (ba`&]&fVV0zޭ ѽ  'Ēh:H=ILR ?߀40F4kX`򸲠ע}IENDB`PK t91@>>nuvola/22x22/apps/bookcase.pngUT gUAwPQux PNG  IHDRĴl;sBIT|dtEXtSoftwarewww.inkscape.org<IDATYLWw6eX:(b7V0jcZMC6>mLФjt+ h,^T\0X% |03|qPK5Xkz^=ޓstQ[]ݵ55/47 ku8^_f͛yyqvEA2a0'm{*xiz镪 .+-u:*MQfwΝili_I1BlYf͎UUU?=plqPB$&뛪 lD{h{==iYQ.JAKL$e!~EaP.$n(tMEwGɛa%E:1^b3`6K fK)iǷ?AYM:jWp"rh?ddgWxAF"Ü=ZϩC&8dFX %a ճ5OL#'$3βpZ,N»"`p[~BɼkVA<ĸd7= Vc- _ul*Fr1ɂ'9F挠9u%S][RM71}lmܜV-OugQ+cAA)~^oeOk3ͧo˛f>+|%jk~\oj 7Zyi;Bk~>_J'x<k&Sinf  |ǁR2B AY dIENDB`PKfE1q\KUZnuvola/22x22/apps/browser.pngUT }bAvPQux T{TSwuznHd4d<|ǁ  *)X&v8ծ"  U@TVM4\mc9s7s|3GWO:g*`zF~26?|f$A/rNJŶBR$i ^7,FuO;*yxf ѵVuڄ0J ku&,i?Y,U"x SrEBܺ@s>~Xvb߀;SU/|m /z\֭Joto0G/cB%eE.sb* B䘿IXJI-eЏŔDrKmhuhW"lޅ8~9i8q&ᘤvQF]Eԝju&CXy6=#F ;@C'p5E=cV|LN}հӕ*ԺBݶ$ň{lyHHiڣl?(칛[4@XS}mG74Ŗ|8 FJHހ=xs62ko-0Hݱ&+W_*%ғ F  lOރ;19 &h} t&x\2a 8"/:+#ABdw>dwa a2A˶5~ <]cL8(wE ^Ynj0ԣ*G[1873`X;ƉZZuMoѽH@fjOZ~f\8X;.R+ɞpQq*9ؼ@|j}7YieA)ﳨ3[\]Ε: 6#Eq^ZoޞѠ˪NI uӅ~%(iECˋ0"erd7zW PEwQTD|SWΈ6L]`M,*uiTךƨ 0ZUsЗ h1^D%ҕĝll>)2j>gS:+_qEfUs|Rd]E12oF ʳE\ȑ; A׷81T 2Si.Z4(5  BX:SBJ6:;Y E^lêSpܔNঀTiCBXI<”hǣ!j*IX{b-n24E_m`Ӧ*6`dAizqj^f`|w\]+{9F i<\<$|rLtגRByeibq31zLŝF8rˬW4tv6!}xUq:mzz~5E쓲d6 /|B{IO"윘+k"2U^PN8a*CW`u;\t fJPS?I&͕4sABYwyD 89+t;%y1{;~ FffR$-/P**š퇠ͳ6o_G々*7q5*5ڣ<#,e\ .,ތLٍY,m nuɍ4@GApEe_(WPK WG1ȹwnuvola/22x22/apps/bug.pngUT eAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<3 ˕JP@4zn>S)AAkCyymE6^^?RᙀGYYt>d  A^gb`|AJ*>/ ׯ M[038q8PݧK&8 נ3N /@( w89ߩk(*2蛛mbbP (IՏ100<~̐=>EH"P@pP~0B?e;w?~d O@1`ik33_ȰÇ?@G@`bhh#cK$_eee99a! @2 ex99>xu:ÙgYY P~e0l0e0C*t>00| W 20Z^t jIS[@u@`Ձ @o@Lt40a m! W>}b8 tÉ_EoIfFF? &wT2Ц@W~}7ȕL @Cl`P?ff_ -PssӴ%($luJPyE@ᡴ4C-ЅA.a`'П || @?W8Wx+ J` >H6d8 >@̢ $$*~d 4h u$ `-*g`x]W۟Ay 30@ /.t&а߿310A0020Ő&Gח-wTp j%г2? L\@p2pXZ1pt|w> bĖEyDE~SUصՋ[VjpZfxCv˛ lC7 F(%[( č@Ñi|ba@1a 9N[վD-P=e-ýͧ8[ Dṯ@Xb0Ks13 LQ?>t?F``xy! @s"@X#.58%߲~S( u 33^񅡮M 0J13zD107&030s0o1<*KblV} eH;ެbx ~}`r @a5x)P Pi7@|s/ ]|@N0uTg@!BA @X Tv<׀Bfo sG7 C ;30 [2fVæk,`pד@7 w  -b Ĭ @Xs^+##n7dRS|%d020<FoIENDB`PK WG1hǠoonuvola/22x22/apps/chat.pngUT eA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11B cd8YmE5xXX8O?r[{~~Og;9}yWc ϓcga.%/7/\]|{SWϏ. fy@?p.u SQb``Z@ 1`q 02(jp3kˊ>}Q{߿pYFO[ni×o >00|4ؕp+D ce`a`7~Wv3 XxyRML=ae{?0g0 ?>'2~NJGb"#Xx1220s320 L\J ʊ.Q/^ 2  axxBQz;y Ab3%k *'t0xRpܔJ O#zh D|] ˏixd(0xp3YA˧ b| o޾OX ˽קi)1121B&.&+A22#{%k138*0(!/P;Pg`$~ ox30_ g{pȁ'2!Ҽ\ NAF̟:`Saf``xbaa1Uc =:@?~bbF"Rl+a; G3fg/SP1324?#0-(ӧ wY  < , _HS< ͵c~y&+*o1[AX?0}#tѿt O?3(13~'3W _X8 p,3_=|z;GN)06\gp 3/0i?;3ß@~_˱ck~ߟi6 ߿%eY8201acdc`F10AëL b o^gzg3Ǐ 4 P} ~N63Gy-afe)FpF"0Ԁs`ʷ0\^V`@\\" czQ AAx{}ǝo33 K q2I0杗~10p}+_bOQXX ~i0($ ,a*f'$&?~SUb3wL Z}$ ($Xx9x iU;3UQIENDB`PK WG1nW nuvola/22x22/apps/clanbomber.pngUT eAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<aIDATxb?###!0ɘF/_@}?ğx?| I2WC, G9:D( {oLV@% lPhAo=10sefƲKڳ|7d 4 XH,ffx~?/+   ~ ts=C6;C5sKW gyyV21 Xp/ L-r>}b @M+Ϟ1/ϟ˖2 ,8cnT%ׯ_3\zaӦMwޕG0pAKOYן?2V녹?UFL Ĉ̜9Scx)Ë/UV1]WX >JbLp@ Л%%%"?~dvóg޼y+PH(((0|l(!@,ԧ r+3؜@3  `Aojjj߿gx=,z-ϟ?15^* @0~/_ >|d`!e [@&t[f6ȥzzz`~  5cA`X lll< vbPUUed0(@sVVVvvvdׂǏ"l @ '''X(H@201+ >g@a3 IHH@hFX !߁  @mje72d)(.A +?~W^^ޙl8$ .(ҮcS@9DYYypP2L (ĉ>26j`Ys%P;/E+P F,u U9,)%%%tٿ/_~@÷, TZ@ *G@|oCg _ZۡSIENDB`PK WG1nuvola/22x22/apps/clock.pngUT eAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxb?-@F9P' IHTAUDE@@TW/oyqѣG^x O1Po`bT?1T 0׏_`l, < _6>{k<+`B3P}T*y!'7^20| #0p2<~+<û?Zf9@_YΥ~u?~ar>oc VvV>2ADX/Ђ3\$ &PU5yU%q >  l+xq_,`rpp1033303߿2p22<QA%qڴ  &1FerC$7sq3pr1Öh β ߞ1x;"C d$@ RrkmO0<}Z&`P! ceeʳ1B/{OD4DA +;?ʤ! ЎAUM3 ۶bx#t N.==u_ gP1@``cg04d qcbذa/c~Õ-?gN3~ vc3;';З_؄XyUA~q?0 ÖބAKKK Kobs2, lPR+~2pss ?/01#R 1X0\Ჴ,.0o` %V",b@IfH͛, UՀ.31-7ë?x˷~ *~p_oPWcXIK3jk3p0tg??ϯG؁=p /Ѐ?g΀i6++TXyׯ\c兝t pbu@ `-## W'0@Y9c /.^@%̪w.D_@`PH2sO| RIu1EiA>R&'r#|`aak ]vt? I@ P he%&"*T?/?r̎Fԋ @gA1f0|t=Gf.M~%`" f@w@(l@Bx IENDB`PK kG1Bsnuvola/22x22/apps/colors.pngUT (eAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxYXXf)i''D\ ѹ !޻ "ԩC dqK[3A/ePcb԰6г,/{#>] ̀?XXy_-ӷb`cLWTGDD Nhoiy__^[i0@2|- *") bX>0p51ga`!Sᚆ+߹Nu?=*@1 XxX$ђT+߁.{!`$#جcw?jn0@1Ǚ-: z@肿@ 3ῠ<:;o;/edD_jy]@/޾f8d??z_FIE&O%5.^6 ^1ppeee}{֑] @?iH+12'0}L Lb@C5䀆 mzÃ< X11"ևO@ll \ ?~~r}BBR oa,00fPl%01!p?0^q0ebe$ӟ?~??w7 O|\ Lf8780g# / ,&\Xe9x篟 _?b>{vʧߴq ( 7_FTՔ?oQbf`*d)$pF לEΟ%8sr&PV0`p;_@afx `~fc(w0tz>O:12P|gxL<3Ͼg X=1.V? *<sN^'q}rL_WVl _h2<~? gxߌ ai c20goO\z(x|Y|+W.Jbn1yz ;W̌~ >`]߽7vpvлw]S-W_=:q`+)# g허b?kUy'}zvyѡ9[UVpj#0{h=(XP]ӡv ݇ $Z-i l @p!I0g{нW6>"l#  X޽{l,++ 3{@Vp3ݻ7޽{ȽC 1ClA6t{IENDB`PK kG1lFnuvola/22x22/apps/cookie.pngUT (eAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb? ,L o?ex ,3gFACU7~3\f Ak, |?2e 49/CAc @  &Љ2|fbe`䳁l .A삄U_ۛ_LUo_G~||" 0sl9a gfg~zyhߟ _u?@+lD烢d.@M@d'G 0+#fF& __|ph'7 P1m~"L os'PvJR!I?4# m<@ˀG狫 ~zT d&@ ÿ|z?0_0xzk J& 10IL-?@35mA3߾26ǟ, wNaUdc띓}`-`P T Lysn9 _hDMbPMgxr:ßq@`aR _l_pg]В LL V2xƁ , a. ׋3))e-7w`P)fxs×gYY>4/2`,K~0Z b#p/0USl,bQf0k~ݕ@@Tb3mf& ~;:8lp7k2v_20’ VCK=1B1= 028G0)wo˭R0C0'_pWSʈA\םAF͂%0U5i#1M# )Yya!!nvNvvPן_/ϟ+   ~ ts=C6;C5sKW gyyV21  ^@qO> G^f\|7c^ß?61[}f⼽});~4=,,,*0~ի 6mb{48z܅ Zzlz'me s. 4kfΜ)N^1<}ŋ`Ug+ÿ@Jnq,%1&`8 䋃 `MPVVDǏ ׮]cxÛ7o^z ϟ? 9@Abe~,(MMM6 ߿cEo߾e'FB ˟P%fׯ_Pelz!da3,--5@J%w/^ V\@J7rYSJJJ/_oYW@1LXT@߆x@)6\IENDB`PK kG1?ϫnuvola/22x22/apps/date.pngUT (eA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<=IDATxb?Cyy9ß?|fddd;߿888zy[@O^HPЇuŊS?>  tE@l*$$OCLLLM&H Ro2@(aca`g1bb)%-,"*Π"%&//w &׮u%_ X2T$dxyd~OO3 3pqq1[[jhhxgdx-/X| 220*0; r/  @L ËE[I i?2|APPARBh _2]`bi#%!&6Ϗo~ -#}3gOd`}oPꚚ3hBw{ ؕ L  L30_L ϟ10; & &L0ƿ}ٽo]LPg_g`ze؀P$9-E\A؀Տɢ&,X" CG؎a43\ ?(1 eZ.z * 9 T1=؛K0I@a`? : | ?gx1Eu]GMR00;g_`ȃZ301|XV#ë7 >~ov&&FAGbgכ˻d/ T ~a`dã / ;wgg\#,,`ϟ7>;ֹJ[U^_So00}|,ۓwǏ`84 X0f@d,σR1ͮox%[ oʣo^|_⏐ l0//jJ#Ӈ7} .= gt~sIENDB`PK kG1U==nuvola/22x22/apps/designer.pngUT (eAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbb`bbbbx1'###޼yf`e)vdǃWo=cϟ? vvN#Yi5_Pd~͠,p-S{߿ 4߿@W1UUY˿7u3;[w3acT7y%@1XX؀32GHLH x^1,8_^/_E'0ljK}x o5~phEn>n` A II}]Ɩ,. +3͜賛 RҲ޽{ p`)?ç444̐aŊ5n,8 H}랭 ?3;12^_/VomllZðz_֭v̱- ֦ȗ oʟ ll Ҋ ""j bb/޽6P QQAǏx_~_pE, RRdobbrW,߃-߿@޽γHhׯ $$$P{ݻ ׾f0@|btà6 BO8wϞͫ'q eW8M3 qs,^vǏˁJ~ @X YbbADEE%C?Ϟ=p07 ߾}gi` ,5֮] 6: 93ʪ0| Qh22ȥ=zۗAP@,C9RddI;8L!E?nnn`2޴i^bJCΠ,@I,f.ٻw/\l8~{%8r߷o ([~#06UM` &ԩFϞ=x%`ʼu7IENDB`PK [oG166nuvola/22x22/apps/digikam.pngUT ~/eAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`bԌabQiiyS_~p?aǷo6iggcc1 LLpXY{ʕ-lYZ~ӧ@@XYY}훗ddן 0yNQ@1hdف0pr1 1zX6MkM6!n2,xX>egP3  /Ok0ׯ O=e0֑gHΔ"? wf.p?@ 33L@/31d?f O@Wc03ede ]Me?~0|AD['@} p#rY&!ŝFQ.m iA#8G3^ͼfyF J+u,y(oI x?@, _xeex?0gON@ڵ SNʳ371yAHH@K߂#EXX,WZZF\a޹ Oy{W\˰˗ON8 G0y*k3@XZZ^ 'ɠ /YV~{Ƞϐ ࿠<4FL ` gƾѷ~ӳ?k_ ;}c'(8XY ~/iY? n}v1@\tЛ7# 'caX'_$~}dϖARBAZFz~:7'w%NY@,o߾qʕzzbl\ fع þ]{^>'(30?ߊ߼y W T|@,߾}{tk #?FPaURD <.p$}Ç@qy`Z 8wϟ?;!& [\7LXgdǐ_ѣw98؀/ 0Z`Rc~_\ 555ϟ|i/3##3PnoYdǏtb0~sZi Ŀ=@ܸqdۅwヤ̪l u3|  TFcխ[7zxJ|N_>pǏk@ 7o@]"**,p~?rF}}C'8so}eK@?O$ Faaapg>oK Cn@4 ^jsfIENDB`PK kG1nuvola/22x22/apps/display.pngUT x(eA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbliiabb 0&fbddVbܵkKWWWo?13h(3++;;C6b_>2Ncx`u? \o3yk0D1 X@bx5>߿~C_l, gcx 3? h(_Hd3B2 X`)?v&h8B K @ Ȇ!@b5&}jo8#49L?R>^$a~pF  cF!B x/C]YbAL L>rh䀲60Bh¿`J X@33+ov(I r鯿P o\NrP f 1 O_uPdz  >'Y u"(SaTWa ̥@3?Alce60~6իaaA666@E7ą$YX>;/_0z/'''+VAAAF!!!`2t?柠br1;ݻ__vm=@14] t($ r777y+@Ev`Ab>9~z_; _~򾸸K)@PP c%npŅ@-o@1 1:(((H   dL sss} ߘ  FpH0A.Rm  32«(eLv֭ @#IENDB`PK kG1:F*tt&nuvola/22x22/apps/download_manager.pngUT (eAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@12MDbݑHV _bi_eff1 ~e&0̹ ]Rň`.6O-dy(b0@024;Ͽ1<~9d`~ ,YY~201|;nA?3L@ `3"L`cbh'`@X. 4/P=X? h$3/qC\ÈD&~Vfg8ws^vЫ);@0pqu~eXi0(}Cjw\pooP lD1 8M_z @ 'ǁ C?22&h }A1&Ь 4Q5_ V0EfzkW`Z9C(AR ]t X։is2O7@sӬ8$? h2fFnaڈX"@.e hH@}0jk>?W@?,d L@  4r@ o6-f`@_e`xsï7Ծs"m* )`E(50!!?F21h5`rpw~3P` @1C=_=z$ +8NA %Sp Áak\ Jc)83}{c֐`͐L $W1?W.;(v]K/%T J!d7o?37 oM9a0 P'0=#W 喗QB@NEܽG\D|Ow[ѳ=@X:ׇ OI ?0S02|317=閩 _tu?VϷ o~zē YG {~TW @ī ,9 IAœGQ--p7Fd@1:  X 翐d 4{ 9` '0ţIENDB`PK UoG1 NN#nuvola/22x22/apps/edu_languages.pngUT r/eAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1VBL ̜ ~100q1|#÷?}= ?0s 2ykEꙈr=c{rgÿe70 -@o~2/?🁅AZKA??M_ӷm̫OF_q5ߩbsY]MSdT4x҅_}K,xy/<j @' v0}ț7Ba,̆~;6 ߟ1zb_19I5%5SWode``ch r ZVʏvX2Y{81ugжdn)ڔ0Yo T```g?@!t7@P'j '× _?}`nm*f.sAۂC>2W``Pg`Pbadž '׵j8@,?_ 9iUFA߀2=<~] ߿?bdP/dӥ=n28~O < O_whסwt?n ?^1|h0V⿿L\ |Ll3:W|w//@M o5] ^by?0Nqb L~13<85<-s@W G@xp e~H3H00<}ۍ Ϝ9o@l% /[pzdSO'",ˣgפK 24d|ī|]P ASUrrᄶl \m`p#(1tatU`h!7-owK |9&{sӹ~<"$È'_~ە=ۻ33r1@1k锄y;:`2ddeg`ea / =aff9y2o7.EVZG~E ]y/1|7;%]ͻ;o2 XXy~/0s00pp2030b3?~-#~ 7o?x×ؙp02 F__}x˄`b{yp31 fb|! wo  @ߟ|> ?Y2bw ߘ?0|c|{G>0O|9 Ljܦ,<\BlLLL"Ͽ//~ۍiP|. Fp\p100km Rڂ ˀNfȿϥ0`$a۹{:gIENDB`PK OoG1Tw%nuvola/22x22/apps/edu_mathematics.pngUT f/eA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<HIDATxb,g_Y9##3A4ϟoF8돟\/ .&I@K'o>~OP#P߿c~ X0$#¤>n31g cA| / d00@n,+0: fff^+## qqXeemLLLe0 ,LY211 sq}0=E2?t<Ă={vBnny~bFPZ @@`n_=r_#|߿yN:^o끆; R@p?3ӿpjaeQcdbz)gx׮]퀸 >4@0?b%9 m|bMϗ/~Հ]LAI60hۥQU5w?p?udȉJ"O[r &ioJ]⧍'7}e`xd( ;C$Z@ `be/_o]_KCkty~ɸġ@ }3@R(.kXd0ef`M߿~eOo?dzP @C Jf08A^a!**>  J@|)D '`b0=5!+~3<ZlGt [ 7WgxÑ"tH\~۷߽exߧX' 2R O5ţ_?#EY #$znC 0% `0HX&9$yIENDB`PK t91j]!q  'nuvola/22x22/apps/edu_miscellaneous.pngUT gUAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@6FFBU7?!" a;3r,@ ӎ?@@ w (H8OK @``32~+е?~~25dex)ëw٠C e򃁛3"8@3CٕhW]aU(5 調@ ̌``v /إ b ZJ@W`` %5y Z  3 Kj30] ӿ oa+ß?ae;; 'Cq4C˺.sw.30ca0@ 1e;X7 X~3\x|\ڐ gb> gf8bD񃕡Լ)! ~( ޿{ϰN,lͧv3{h+$ $ygNT# ï:Oess*0b&&`D ~|û|V&^F/$ZY7Et23sO'i4h_X to& x822 wgwogF`2c31l0Lnݙ;uН+>h|ވAT?R?Ab_&!LHCٿhAd&@1—_G[WS_XkА 3a` Qy  .W=/G`, Y02~tFO@|/n/F. XۅogP5'3 ,߿wc?3;'_=h?(ɰ0<< ;M{_:آl ^JBJ9|-r|@Q/),\̸sç|@/,L  M{08 p0I+*v0r;X R> +5Cg/^HU Rks1pu4ozd߫?}~`YΌ"`?L=?.۹Vpz;70  J7&afcHp_n7W ;>w䐻w›<}~0<lşn׆^cdio1OdeSbd!@1Ҫ20N&kIENDB`PK RoG1 S!nuvola/22x22/apps/edu_science.pngUT l/eAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<^IDATxb?-@xMy3Uo/b`mf74h247Of'þ}'kp@2]M1H(d?n,>^0i d`SFFF~&&&Kt;7t4 h <@ _f&F!!OYA1s- @L`̍ J0iFFf`0]* p'#O9%ܾq ¿yb̫`q@,! 2Kl ϵAɛ ~gisgk8[(/Sʔ LL 3"U@+6(*,H/oo~q6J8."׏?> 30v3Jӟ̒ 6⾡?>/Ý}g`? #Õ -w^?@?`0@C~qˊD:K0\x졛_2y!KP!}L;_>_.:YNewO뷇 0h>|3B a? 4wi'@ b`fp5׿/_7XyX[2'ǽ+`i.@}4+5û@ X?~30kW.!`V |+O?qk0| Lhhb d`ׂhti 2*xU.zKTd~Ƞͩo&P1C|Cx @LB?p2p22bd sc}a/nYr'Lgp0\} B2@1 L k1^K!{71~)_` pN) ^~a`eA-#>bL`Dܾ036ϰOj1׻ ~}b30~9 g>ocpA@Lt x̰wX0{f/Hdya#Û@LbbTo`d0P3/{?2 xXIY0| [@\ @L߁edff _ԁ% ߮3`6G.`1Y1 .`{ W @,?+?A /2||ӟ o710w+'0,dyD=:G bN+޾? ,1#1$|j olXA&9Ky H[}cddϯw?n__3B?0%3үnl.O I~}&y&&4 :Pl)@&aتKIENDB`PK .G1cZnuvola/22x22/apps/emacs.pngUT |eA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<WIDATxb?-@FFF1cc,aaa7o>~۷o Pi ~ R_-ͭf( #Ç@%@ -=}/^\ 7Ѐh[ n 2hH=ûwo (:R Y MM攔@M@ b@"(+.AB@r幠j x!#` @ &vvz 7CBBqpp726~)X]/` gd*g`d'?/E%R2Y  ZA N p'(܀@Acea*1g`e`cPsdÏ'm/9@\ itA A.t "lS*|X8ظ2p0,YsAWAGa} so2?w8 `C + #Âz#(}O_302~pGG-NA N=bx(0l8$?^ @LP[^BGVۯ _f{7 x~o7$dĹ3DA$J @jKCb 01= X2|ccaPȰlǝog(P`eU2 `A6QfSk#YC|.~-U9`c`fbbq뷟4mX9yd^sMEA_xG4U0,i "gcbd ޿pm^`bfΥ;MbBJ<'|{kś/x9LTo`Vfc0Pg5Ýw^ioa@!ҝ_O_^NV?_2<|{Ͽ1pp32*0'?z_nĄY|o,, R, OdAA?õ߁b̠ed j@T1 . )pC ;r]` w[y @,X:vgʦ7=m%XgPX-Y1xxi- `f00ّ۹#96~Ɵ/gWcbgU @U L\,Yb̵Zs^X+K@9'|U@1[m.K\;)0Ԁj)|h!IXˎQz+gfIENDB`PK *G1 155nuvola/22x22/apps/email.pngUT |eA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`bdѿ ;`L@?0o aahA~QG&zg!B @ǘ;R9(,XUQ_۽0P=dD? e0I16Vcx?n&0SD}zY@4߿L~RWaa``o : f FtS~B1`a珷TuRfe``ef`f`8q;( +# @K~8 3 忇P2@V o^ax7 [@a`puQd\cpe@ >Zy:z \ @Y hfLL }eecf@!YΜ] 3$9U@DAR;ON <@?pqB O?2((p `g``cZ 丸(2hjGEAfϟ_-`r~1.+'';ùst88q [ db 3~uE?7WnǏNj : v 2 \\ >cu ñ#2HIqRp4 Z ?{nmxY00Ks3B\a̐gÒ$ L!j6&.,n?}K|('1uFA\\C1 qCEe>ëן޿+G1|rC{?1b  w- ׫ 3\ O?ax9Ç~p3h1:sHů[2 XDgIãǯF \ 3>>_Gb5? g ?Ov2p=f{))+緌 }g` nfw%@;/)Ý;W^|  ,@7 "g~a``> oe ̌a(%<r4@O dOˀ *biajbeecc߿z bF&(F2d8+?AWל @0| >w1|o/_28D*wmO^?{ŋ~u`bab?_p3`r{?2|an8~_ I1q5qooKg9nm^=4`b 0(~0p \/A}n8^U,>>J0ϟoӧ |@LH]0###0g3;*3L Zxc..6x+aaĂ/[&#F' k9>>e3F^tܣ ^w@ @8 ܒ Q rr,t  0E R>Rn=gؾÅ3[ ~a` ex,< 0} (cpxq$?/Ógo{>~@0I@cPB" AIx9× 3|-:0Ks&?^ ߾c0 Y ?U&} V    ҩжY9M+[) 1% {G t:CM S30x &<ݶjT 倁Ȝ4݃r20P, ف >3c H'{%"ge*\qj,V.w H  t8a/130B f cq36b!e?~f9X˰xr AXri(90lɻ3@,(21eZ t#+P8:Hpq2l>o'`D-}i.,ObХi@™ bl|\6V _e8s s@Ua`v%i1fo w> uZ6 f_Z*֚ +Nax_~ ?8_~{n0]({&HE$S%Ư {i@p?yAoùS~pHGCBDWȝc >.7"/>1bxa1rHS$? t Dx=; FO\0Ͽ /$@820|2~gg`g 45fcw9i0@ 52|+Pb1>ñ'ޟy@  AyFYna ϗ!)cEz2_Ο %eVB YYyN0p2/ebt)8PمBU?ȫ_ =b O n^ex,p}}tǧ1k3 a)#?05ehbXf`bfqi.CAfÆIENDB`PK doG1Ϗrnuvola/22x22/apps/error.pngUT /eAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@4V}4߿VZl ˹<4߿ ,@yY.\Z=_1`b1jx2I/ ۪s pdVZIK33C3 @j Dbb2V{jE4 '312pr.dcs 28;Rc  oo~YI@g0`ϟ$ h55F@ffq.q4TJcpBßo030X3_2|I^A0'Y"g)7I dTP`uoϟ _ *5 `U_&&2d`Ӆ /Wb8984]]MM~EÇ/|x5  (=}a/ ~``bx&ó}#UҒA\O/0 ϟ 0?}ѣM7?@`41N f󇁅ս{ H3;7n+zh-e@A\,$h(ـaó8g fUUFQQL,, @ e&߿3G=|hEX AP.?Jq-ef hj`t߼S -@KI eF@M?~ߏȒ ?FLʅ 4߿h(Q@  %6@^_>?} <@K~`#'ugw30@L(-j/x*@V gfA<'uuRi nAf@<@z[OX]\a9`T`@ >w)Ep`$_葍ׯ ?ъ@I\ce#/" :@xR!/`0`$߿oL? "w^iᕿ r GGl) hJ?A2͏hIϟ'( Kyy>͕d8iw?0 7zu/YW  r90\)ZrW\rqIENDB`PK RG1nuvola/22x22/apps/evolution.pngUT ,~eAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<&IDATxb?-@FFFlr\\\n\<\RlLm64#sppx  1g6 ' .g>|fdύo_- 0ID1:\!4؆AQU,W'2tak ^dӒo? 0e@k@?{  [?Z?:!!5 w YYY=xۙ0._-wvN`4dfdx;;?fF_0$'eض Oo;^T `7ڿAFW٣_ 2}cPde߁b00ʠ*\09Y[@!n@ *bLXp'"l R$~gd;Cݢ KLF_ B/6N`    _13<ˠ.˛ Od3pY&3#H <@\ @,ɲ0H 02cx?Õ'n}$' y& ĀγjN !L@o30z 6Uq VMH@ĂxY(i0:RT(IENDB`PK ۛG1+}}"nuvola/22x22/apps/file-manager.pngUT N}eA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@  _e\)i".6jEbyS")% D2W!3橴N Hd-v[ȝ+XZ/í?r L < b 2Ź8DUNXug3󀪾L}Fhh^aha` T w'hI)ּe"^ uWKB<3D60z_aq@q/]9@l2˲hM`f9ƫ {=gXx~D=Xg0}l7޷ŗ+[;P#A| 蠯 l(77wvv#@%;+m %&U8a] wd&1 ShP0`3D J?@ȁpMbP,; 6Z$ 6/ :b <, ~e/ÿ_@d0P@Ȍ Հ #ϟ L |l ?fß~?`.v @1310e\F(AY\7Ѐ1 ~G@ a &o`fjj ,/@A L`@dbaSY~Cd|@370/~6&?0~`8F 02@!bN^, 8ޱ=8"D=+3㗟N? Xl- ~?~# abdRac nbQ 6`ddcd8p(u@lil1< XYAix`$"lL/1e?Ö3w|@qqSe`cCAڗhBO ePaP0PE21& L-1}׏o8$1p0h(Х<@]4;Å. ,-t?P D ;з =xm .9s{}IU6&"`0pB\ $$og2*r2p| 2؀s11K00}+w*@1312s%--?=)`H1\)7sO. >W~2s!#(`̕l G/b1+; 3|xGʙiHq#K @ I+F uVl ,@}a#N9ٱF@9 R33{?yӧϜhf t8010<:TAb 1ˑ G]eؼqoS `00c\^`Ja mmEgY|GO_0{o@.k201(1.62͗[or̝G  3?臟z3  Fnn1-?o߾O¿_A hV5 0j/IENDB`PK |G1Fnuvola/22x22/apps/flashkard.pngUT |eAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxb?-@1zuvwFEl @1P6D+3 wT7}q5ĸhf`edC"#XܜV9z3(&@,?q)0qtW7>1d4@/o& π`4oHءj 6&v{o3 # Z&ɈA} =aPe5g`fDR!T X{p-?? hT7ß~2fxfpH00pɘ20|<@:/@cX 0pg/f! \*@@i >'-c!Ae8AV7H@G]>10- pL2T&41(ʊ3|1 Wchdk60赥1<=Pkb ~gC'nV ?{@L12? ߀b`P$ Vt ^1&3h1<T#?0q'POhn KWgtC,+x=>&AQ0 'n/Szt C#A=O~ ?/B @0c.3 'AcPjח†0@db @, &fV=ZI#?fx?2RELɆARՅADɒw$L߁,2 X}$&H3@0o_ @#8 A@,@oV1a.vw]$„-a(@6p @,ׯK]EdYa%rR<`e0=gf~ʷ? F)$Em 5FňB?#3_~0|w N/IENDB`PK G1|nuvola/22x22/apps/fonts.pngUT |eA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<nIDATxb?-@1`D3!M/$>!{s3<`X" Ė@? ~X9X+XW%)0)EP 6%'a+8 x4$LXّ uOF_ q  &FF8;om-|@y>ˠ/&)V4K̠njd 7s13Hʉ39yݟ@Ƞ$cr ]di &k` ϟ1| d0@11 e=OeT ,%fo,w??~ohgAV=J"9JF f46+^9p/o,d8jYW,ٳ]|;?0p  @ +*# '.(+-LB\n]z*֗m o^3Ȳ~y)+)kHKiqfpe_~4&@00w5fA6Ͽ_?1|KALXwN ,11D}c~/?Wv` @ F &&.euj0VmE Y;%"=:8  ' I=q '  1 ) ?YN$\c^: #$ 6 gi +G 0 6 0$ )7YK  C2n  =s  +  xA8@2*~ 03٢a&߷] 6Qg X03Hw hVl   @43 boIENDB`PK ,N1onuvola/22x22/apps/fsview.pngUT 4mAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 =a~z_?0scMY @p,$,< _@ſ@4 d22q01I<9f~ ?x\z   t߿3z?P ,(R; S^~󟉉d@ ?:"ç~P;+++ݛ ?30XI{.ˁ`3@gfÃ\+~- MDpz!YY؞1t c`.M”&o l^1| b@ՠ$H Q (@妅~a)Qm3`dpӘh4:*N'XS ! 𙉉/*Jz@@d ?1 4Ư@#7@/12htOb##Х#%h[T ß/\ Ls>'%OL @(aJ@T1|fF&? Z 2coHvO`0ƒ P˜/ >`& />aےCڃ ¼L W0Ɍ/+@YP1ge v?H䲂?$#(?D@HA 1gxçO}|+P_>} .~ğ7(Y`q5@! t ln6vi)3) A?(/A X@>@peba0Q`X9{+Y L֬@g1|g`!c+"q$3b@"E_HI)R\J:h_ޏ,x .Ώ5(2A⃂?Th80^@_yPT㯯aĆ$0Hn#<Y`&bIENDB`PK G1b0~YYnuvola/22x22/apps/gaim.pngUT |eAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`b` , `KBPV@CCXG?߾ݻ׷9q_1|/Yql@0Lɒc`li+ & (Ǐ>pg;:~|{/Oe`8n0@1 gX H^Ϯζo?|x~ ^Ob!1zCL0CuUEg[0|ya5 .ded]fذ~#ٳDLDy,}.\8׿W@YX5=>T45 cc]#YZU,-'%,4#<ҸY N?T(D  MYA-UsIUG0X@LWv8 .\7pIT˗0pp0K232001  zT(*00 @L l|DGϙ?Б /2pscZ 16a" geLߙN'3o;q!K3E-Q~!Y&NnfY>=f>>pw?#õ, R, @#30=c"g@@lӁn  gL0 8f`yy0;3#O`}$ c0]7a6hyX @7v—i^M<߾co.}㻴<7 3+wޝ9};|bhQ \cPVdPoܽqջGndػ; b"w7fc1 zb`Tʼn &;^[plfU@`m"1IENDB`PK G1Q;vvnuvola/22x22/apps/galeon.pngUT {eA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?~Ҍ LL ~2*)ƭ.O^z^_0|``f#C^xSh5EQa.7/?1| %AF8(Xٜ `$dEX~|p{0(#ݻ =cx#˷ēa 8_?`-7332,t*Х?bbO14ðE3yrÝARڔU .Uf оC |L T$3|Qpj=W33Qf}gtê?\Le~/ OCJ2x|$s Y߳ab Lw`er9_ް3x0207 7 }fÀC?ϯ?0{ @%?,_ @IENDB`PK G16nuvola/22x22/apps/gimp.pngUT {eAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb?-@12 gfaTU/@ 3 1!lH3#7''}P@,e7Pbo÷e` L#㿌O@WfS+|ȵ XA\3ÿ @1F#H- $+@,L@/3?2|( z+ @5@w1-;P/'l03zO1p0p 2A,fpyJ2H[Ma`ck V B:@XzX޽pnu 02y$bXea``d+{0 @C i??p1nIm cxuo~`$k {sM3y7'0~ fd q1(g*?7y% fv:s 1+zۻ D!z o20 K^&b400w6-U;؜M ֬ . ffЖbx ,n3g#_븀W~1<;t5k0 .,dpuz`J1II1{S 9 ~q3| Yg3n3`$+Tç 21~b3 fe_~tW7Ϲ\xxIH(Ob  g3<`e dUaxyo`~&??/10E1Ȩi3Lv1@gbPdвefZD  b;$$*`VpýK]=,N30ܾ|082323FA J _ҌAڄĀ`{x+ _aue3eTedag8Šbd lT22/``PSbP5Tb\& 7V@0lK8!!2Lb*_LL,Xd$RY,A?`@a b ߿- Aby5? nKllKg`&FRؠr@ *Xn9;* |XNK Hdl& oS1S'cIENDB`PK kG1$/XX nuvola/22x22/apps/gnome_apps.pngUT z|eA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdfF L@$23 )Jrsq}?ܻwܯgGw0zww7z2 bD5??jlbZaJzB ¬o>e8w'êoo޲iϧ{{ǀl0w^NXQHkg_ Z u3;% ?~{ʚ-h0@@L@~򛁅P g4+>G7/10|vb@13{WUBu] ovv6Gp}q a?L ]aP`/GW|ӱ=//  YxXT]xz#'O^1p1||TWv[O0}bp?#<bƢ@ &`rʩdx 7efzϠ/ \@^z/Ûw_$Aw g>a8T9P]ULbA.Y O%   CNCX0b~aȠ(ai_0ceaqx?` BJ  2<g` 3 z1pk 7^v~^O%Y1cUfzZ*+;?;0ʙ>dX{8 5 LIb\ T$W 20-LO ɗ2a nV` b@3A @,LL 1mTC';>Ȟ < a Nr=?9߿CҜ`epʠ!/7Ar? ϟ}b8W9Ld4@9>eգ?u? /vl.L̶@} ~a3[#oy`,,}Dw_:@13' ػlL ̿0r|``aJf טT>3p3 _o1xKE&prՋzh*Њ ~}|] *|Tp{ 6ȰoNٵ_6 d@ L,nce3G7 X0-!$!VCG0`4'fe|\   LYX}sȠoPYFvV&HBtw0ݽ<0c B5\8E^2闌 ZB @%7Nb8sg l|l@sH30-dD6KH?ywieh9#70Z4g0  TA ?SBLPW^p{sV1b`IJoI쬠mïI 9?.:"y ]@ä,~a߻5_ @s`y9? ?xPQ7`R 1U\/Ab ﶠ @e+P! ~KQvisENY,&* o߼:%HQ (B5 ?3|yXrm/}PR;ڹ 'Vb`x[ F䪉Q!  L߮%09u+Z 22H30cڶNj{\@L> 1@h rJ ri,f܂5 Oj^R@1Ҫ20z!IENDB`PK ZG1-)Ullnuvola/22x22/apps/go.pngUT \|eAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb J`ffw1<AEELlႂž\\{z\!!&&Ba?QNN+~{֍W€4޽eg[\o4g%K]k,**HaxEÇX͛׳ f@MJJv ''g711a _@߿"s utu5,--y^~YbabbqĞ=G|f̘:ɓ'+T &fF_’nqqq^ζ @f|ۮ]'->@,??`Cbb0jɥYX ?,@G0p$&'1 (ӦeXx*s#@1hk2HJ*0͙+Ћa^㇏|_]kMv4Plot ãGw>xXHWJFFw ~b`AK]+PcPRR`e;P;õk.?xp0n2;;2 ZZ@oͷǯ3j" *ok35 JC`zٲ5@G=<+t̑ADD X~蠨bkn˵W" |\bd'0Y`gg [XXx2223tww?!@1IKKIj3ʊ3pp0|G7雁 ·`8u4е\ >|Z.\8 ..$@1ݻѣ  3#oya{o>dd 6;ï?%v\x+F | 0~>>g1\z%Г_Ν7mmރ_<+hkc~g?܂ < n.&i^O2|#^~  7/\8;P ƀp&%K77-Bl@/Kv?GHX1H 3)0|F3>}L]rn0}| X@e000+((T{ r#'õ$X=/'+?3Û/.]}L * a|+g eibї/\YMM݁Oq= }}.ZxKPCF 6mxܹ%%_| _{;f> @ȈĶ#)f ×]rO;w뿋K}# ɩefVڵï޼֯_}ȀFbf0#++ß?r9;;N +&SWwg2NMٳ'} cc2?}06~lsg0ץK ?~+cdd r$CRIkK:%у .NϟjJʛa`޽GAƍ o?|`- ݻ aa 34?g  1jU6\ϫW_%'ĉ]{7=TT_M_߀68AUmIcן~a~I10,b`pgd`bcKFiy?O??2 &0s|BAzLfH50g?zt hX<6 7Ί_p^d` ma'$ @`yDLYx ~zޏxH102;Ta. @g7,(?8Nܒ}_l4ܙ?ΪKشl.n"* *z(!P +''S @ .ϯ@3drk i~20=xk߬]+-.0|wKg1:ΠVR)/ sl/` t``}A={Wf`g`e5_?2 _{fw#ٓ @oÃ34wbbḣ oL& _C;1HpMYٯA @`oyZ?~999^?10 3,m}Y.q`L`5É{^}k?P+Ǘ/gaJN@?-'HJ% L5 O?axaֹ i NKP v 0(3x:3M ^VpSLϟ'3 +#[oߦl`_u'~7gO0<~ ,>]ʬY %%9 ;33!^OT4ESMSKJYO\ _|@BHAN@AMDA@+ (PveC2#h +**111NPA@h>mmO,,,a5(> 51f ډIENDB`PK G1h{{nuvola/22x22/apps/hwinfo.pngUT @eAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?-@F #d)#$%g)/_}^__6!~}k544bgx ŚEZ]55E~Zw?FϗWs1@1STRxnQE ߯l _eb1K0$;ih,f3*d1OFN֘@VN/3+~7  X?vVF`D10(00118>F$P߿?@zEUцipppxprr~add\@`9a`x P  ٮL g7ÇOa _3AFUQM_kk2vŰr6߯@ @_Pb?ƒ?Û׿> @'!/[]Omʝaܙǿ~ '`Š1pB L`? ʊ Ғ jjc%`8 ]=38 q?I d?Hz ?~3scUfL-9? ,, cO6pONv`Ȁ UNF|b'$(~fQΠO#@Z$@ gn0]A g~͉tde` Ls4 9@7 t @ceNrݱ5g`c7äu?:e`70$6änack￀A~A# 6WS@C (2|d (́eǟXfP:Q!4Z?w,. @b}gfl 1lɰ% dxS%kFY#=`JL _&UOl0 3ЫXT!a`a56L'YaGgd`` !&%r1@`ӋU'd&žd!3&o Z 1 ,}[r3{|oeNi6(=AB(BLtz31t#騥^ϟA@ TĈ G: `hszy\:IENDB`PK ؛G1h=AAnuvola/22x22/apps/icons.pngUT H}eAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`bd<.h.7?(&$!lC!g`ddO, Fy/30|?+3_? a6>1,*@,,r13pKfUcx#SfY&VN_PCC2j؟63/0Ȳcdx=/?8F2E 2L@@,`1y%7Û7orH5Â/d!b,`@ Xõ_22 2rC c?9cd? " | eM!Al_$> dbbdd` {gM.% |DRpE  u=>?8y8~U_~`d1,l03+õ'oF6ȩ/¥T4h`bTSPg`.``ek)a d bb`bd L{\_WxA [b @L  2B@ן(3#!%@J^2ax5OR !IO#2p0K%b ;3" ǎd$!/A"/$>8efء ‡? /4d3g90 `߰[\򇍁 X)˃J h 46e2$+F(Y2|aX $oh23Jv '5j0ܰ?E)ǟ,w@@O1&%WD: m+ 4^IENDB`PK QG1<g nuvola/22x22/apps/iconthemes.pngUT J|eAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<GIDATxb?-@1KRuf߿ ?e1X cb`' C 30|3+# _b0 /, dc _7$2V @?&f3\ bY@, [? ×o\߿.z0 u%o 6 `i!@s0B  0 %Z?0;@1ZSaV* l|ba^+63|c/ / @L 00H1}`gfP@2#M aP^V;6 A)Ѡ @AHSA H /2E(0D f+hm[@ro(b+#K޾y37@1}% E ^+]\O/0РD +8}bXpùB < ]\ nb`:fd s\Jq *^\DAMAAJT~} 49ϜEc!Ц+ 0po$Ed ( (}`"AWUµ ط`Zg8WA-{ : ;X>F3$m3B e" ï߀7`L&?-W1L;0{=Ʌ bX~#R>d @$`pÃ^| _w`/ SZ!7a ڐ4_&p@,~fOd>K)fgffʰt ^g{(;Wem Ő0siUe?1bbdeV%'8OFHba" l V2R)j#C5O|},^de8@,=c0>2]Zt`r[/1(77/ZCrj.]=[|fa++@Ŕ >P4`Q`dUU| `*Ōrre _ (aLwGJJJOl{bHK3GOIENDB`PK UG1 C2nuvola/22x22/apps/important.pngUT R|eAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1$/HCPީwvW !9@BJ_{ͼ_xÄ  PWaÿf02k&sq1hEF0s10h2 @! ]`o$p69CH/>?fv2Ոp6?@k^b`xA΁' Kd Cÿwi3_LԚ!k3[#E{v0|g`db,<<0:CR cbz2 \JU!L{Dg0ׯ e;ϟ? H?*ᯌ$7Ub`@1 fF62 i?73| dibfaaؾk7_p0Ò+ yEޤ2(332سӑ(كMEON3˷/G2V`` l_`E %%``7@_ɯ^o'ߵ?e`@sv:鸱> tO?S^\02 f``aege+`JJ߿)>^_?]?@psI`[ϟ@?/c D@Y43 ?7ß@  xu߿Zfy H- 43AA_x@|@ڀh=0HjE`&'@  pIENDB`PK G1pnuvola/22x22/apps/indeximg.pngUT :eAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@111%,@2224ϟ?, ,Xk׮jc? z@ws~2 .fggs0+++ 0 0D h&ï_ej @ yʕ+ ߿}e`ccL q0Ȁŀ2l@ Fv%~@M o}0Abz!A?0-g@Nagɓ' L [NdFAZ ?gx?ý32$ 0@=b0@ ߿N8`jj *&Ufv= ]Yav /?b`çW  ȉ P\ NN.aaQ?~ bbedp'3ñ> 33+1p5G(}>4gNwCKg3?vWo>hASĂEALL 'LbM72 ǟ   A ϟb;3 3LL k., ,T%'8lA@srrǏ|Ɛ]4 h$g;0)1|0" Ò ++|Ĥrt43X3''7 @"'7bB7QHH͛@?033#O |@Y88/o߾c  K{ `}{ <8YJJJ}*gAb 2 10| |eF0 R(//pYYY%%a<`A 8^ temQQQ 0f(^"W7ǏL$ s%%ta3h9,AV3 oGO>q9h e˞ > "8$fI@|h;*pIENDB`PK G1 g,nuvola/22x22/apps/input_devices_settings.pngUT 2eAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   YEEM)0<;DF߿ )ٳLlϟ?EDDč$dXع9>{lٷo,YCCK !!%"%  ɸ+ؚW@[PP@1BDT_SS󟠠/?;'#3;F?@77/~}pڙ+V.xbiaaw.~M-EQ1.A `o?  p"//Ϯ$K`12| B" 2 BHee`F,;~2ϟ ?}g +0??~,@g  grʓ8(W/`ʰyfγm;9C,8wYI&a" ! F]7@6E6&&L\@|Z_ qqs]@<}ȑW^yu-~ YYA)BG#M^MC'ȅ߿]_AWWE;0П|GР;@1@1:ژc+w?9j00%ap ۗ _|`XO/\Y Xͯڎ_H_cdd / baLLL~C[ٯ5~'((s)6lllu@ρw=@6 ] @Z|qoz@%@yFA߾~Ǐ={( tH߿1, @?~\4hZ2P'O. Z7-qqq[%O~"PlP]+Ђ "@.z6^^]ZZZM>||]VVVጟ>}z?իG@=_4:aY@] F111`dt]:::W\ ls,P۷~P질e7Ϝ91˗/G6@}! 4bC++ :򉉉 h '(9ALL!!!;eddbZb|A, ?gyxxbo޼|57K10\V"].3 b`x`\g|30w@1!0]jѣ Ht-P`rĸݔa'!LؾtT`2#ˀ0.  b@oӧKx ۳<ȭJcbpd`X*2?`o߾ZJq S W K-0.2XBe̔ l i@)n`\00ino *},)xե }``g_H|2 ey @1c0%msIqq@C@|aY#î@6(30< }}}>&/   &`~t0_zI… 't  ahPcO ݗ-]Ϗ\FЌ@L@^jw޽vwy T|6]A$퐆$@(Lѣh0,,-a L.O@ITSS3s͍> gV X)V`3sۃ-[h:h?08@1"0 :uVRR(LJw?(Cp21)]5XH:tݻw?^s'f}L:rc@XvHHH55"(8$Ɂ -6 #G*yGyX@tL 4h(302P (Viqq qqT 7ndf?@>SQQEOׂ0i10 2D) M@ ; ~o6`@03 (u)a> P=c $A~fd`x`*aHwZT1ȐU@aYmPrccb}ϯ/^S +0AJ 8@K~IENDB`PK G1O<<nuvola/22x22/apps/juk.pngUT (eA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?!2-c  c`b``ed`G8iظPBço~ܘVUQ6oX,)eoe?&`iZ_@&_%q@[EAb Ϟ1lCrm h2A3w@_̌ef{21i`hl`$ R@ـ.bbuUy1LY o% fURk" Fb N@U,1OÝ}Wv.!TËaiR˒}10Od _ bE?3zIA^h0+P@ O`L>aٸڌOwpSf05b^jyǚ3<昒P$Ͱ&Х@rp1H1~{" @ya'G_e3ٛ7\o:Z!Lhߛ`l7ׯ^2 0R++3+ 7cF!(0OOBzzR׭f+ÁCG^ NN.,,L l Bl@.@A ΃~_͍Wx|48 pȾft{7`++0~J5o!.jjM%}d`pϏ  >>g|2<3;+(g hP~3*F't2_9 "6F^ o00x[Ơ*1 0i1]yb =Ly!7a UKw3fEoFƧ /Ķ1\|0=&-! &ҥ Oe`FܿLb`O @,g-~0H0H `' 'Np^1ܾ}h`=  HPĢޞ778÷g?_@r puO/ p~c @A\5E&hK3\d:p1`0}s 2 ?~bx4444~7o_ MWY0`xpX|p+?3\[8A߯>2(P?y#0<4@A b g{ưb[ߞ24+0I2cMl/?r @h޿zz}@%91|`Ȼ/ë_%&HaAhϧߚ< 휏fp``z b8} G/  A|fįk@s\tʹ:|Z\ AÉG՜$z| x =a+ wU>w z7dc}1ܼv0PH'`301$1s]fP(!U 1@urKE%/4/?@@1+SI-Ǡ`̚0]?UopPk *pj@f&MiȹIENDB`PK G1u$$nuvola/22x22/apps/kaboodle.pngUT  eA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`6660f0CU0EDDadFDDuA _$@, a, r?~னc8qCBBPdbgؗ/_%XYٌĝ<-|=}÷o^;.?0BS021\~!??ϟ?8qՃnA]t# +n狣CO°mۮ޽y:~8E7@x$ sR&=xϟ/>IBB;///^$0={ s)~0e9o?12B bA 3da?03220la͢ o"~K( r2.v=s ,@U@{X_1eFP?2 CB !@/0{I`a ; y .ƒ < A xe $A. ` dK17go3sgf*a`c x.1y6 X&F73hЊ#ûϿ`eË b/3+?P4͠P ,Udx? @Y3@q 2 X@;ЕW\?~|d8 A`fY|TQhF`*R?,@ +A)…;IENDB`PK G1۝SS"nuvola/22x22/apps/kaddressbook.pngUT eA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 1b` ,l~# 212p2*Z)=3_,D7 p?P oĿKuI::0[k Aq%,*k Ίaˠ"j2X Y+@5(&$M28^SZf@ S t^#!{6 6^"ypI>t.R 3Mtx6L@*2`бT+o.˯? ePRagQ7[ 0fQ`wO./M 2ë/_]8> *$(v30(N |U獉񈝦.q7k1|Dw,,#AG6@M2`X/#0~V`esv365ד ܂ ?R?$e8>0v&`/$tWzɰ|_'8 HY>^;Ży,$AAAEI+P۩o:Ӂȩ ɍ;/yr" |;3r]Ƞ!Ǡ. /gpؒwX L#+ T322rK]’o~d]!%pMo2z .=;/ L̠"6z> tI.IZ¿md䀆b~{'q~<A% @!.ҘDxrmY^~~[a!'T``flh*(C iUz"ّRIENDB`PKG1t)nuvola/22x22/apps/kalarm.pngUT eAxPQux %UyTSw} /B5AQYL"5I*H Zmj͢a OSZ*QNA z$ ,Bdd l t{] 075 B+|!G]Jl >0$| @U>vF= >㥴21U0F |7 NiG6yvKH&5n rS_b}s'v?r}8**JJ\0?<`ǝ9 J\1*ɫ#/jsFR7xњMͲ>GhuՇȳA17dZ.K X࣊<>3aCB nfROUv;h=@yQUNCXmRGd;լL\v.ʴ|<,,nw,MЃpa`Q.grHƦQ-WSk{ iB^|Ϣ~7i֙ >B &4GFE]P8Pȹ"1J8!ڤ6\lmvt_#L&gjoGXft%R:T=X-z8TsS|آ}PQ ؞M(fnV(Ś(>T8rÈ!pʆn ~ L Ǡ@BjLj@c$"_Smk06mc:@>PY4 Axitnzc ùy,2299pLx7OLj,8(5Zt H#H^ z^,`ٸ}! ZVR;,e =r&l2tf:uUxO٬֩4[K<,6ϞDA7UKK?8r^]Bo\Q۫[9DV}!"H4ª w( 6sEU FʐR SDŽz$eo:#4dk5؂p}SQr֛[He[#cu_XB~(#UHU[8(LpEWvyq0Ż ۻ|q=˿IWŵo`b\PXU`3Zv] zpZBE8Tt S%SPkrJٖT]8Iplhrye^Z r;K(Uڬ$46F>W%Ɏ&eSʙpLsGkS⡠D++nj"J} PFW ^BGA`-dF`M%50'c鶍\~MOs-xEI6x*/[9/G5;}0}z.ڊ/MƑ1ЇyG1d5^sd6%*_ZtayڊMuuxb޿-&~??ι+a2*v}ر y,h`EQ&FymQ\'bmj)&=| {fЃq H{{FIO;CG%Nsk>QzgQfop7ۢXiv=ևോvc( O:KuxI'%M#3<͒ gs\qWF;N߬~tzꯃ]PK G1_^nuvola/22x22/apps/kalzium.pngUT  eA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<RIDATxbdVVV߿33o'P'0_vvn(30U a|c`x-nexz@ ;Ā:#>ح;V1311p10|õ \ lZ?l  @2bdb 7d{}9NWl @̂J A ]v]w?rLLo91/-*dTTb`ad9oEb LLL \\\`ß?IBVZ˷Hu eXȷ@c~"_os9@1]t)B<  zzz @KAח_Vm|e`r}>@11 E/_^@, NJ Z/a[J3RɆl OTO[PX02^c&&f?}|q`( `QIENDB`PK G1"MH nuvola/22x22/apps/kappfinder.pngUT eAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<DIDATxb?-@WWW10111q 9걲{7/8yz˗!ba`bdT377uUbbb`?Ï_>}x?׮xzޫ  AWu_pfQa^V L2e`xYC%>Es߿eS<5В[&\{%@ @`r]a/d-@ \b!#4}EDX?410D5fM,_ 3S4($da}fLw hCcb!7 +N\;<$A`VT ],ĶЀb`|o.Y`B PRle1, 7zVܻ IENDB`PK bN1}nuvola/22x22/apps/karm.pngUT mA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb?-@cӦŦN_/ß Aht;E33|xǣE O6  nFv>ROCJ ?['ze 2 ͟^ tP Bp R$AC ,?3ç7X>a @`PdVC-@cCmafadxCHwQ" abb`dcf'"ZArrlcb@w@ ܩr1|ˋ +4/of LBF_^+V&k>g@cv#LRKpx\X0|ӺA09dPo`+L"0@gp7/ o2bQeb9il_1tu E@@K7 lj\ B"?T8XYYc`xs,U;V/ 1]{KO̬ ~>a10@yxxE} m n4 _ W?gHAV^С /`v0@_}F` Q12@ Au2(Y1?~2 ~1(+2HJH0\va ,71p+0`dPWeb'$4@ ?~2 20%3ҿ77'.= 2hi1 21{R@f3@ fX~aŹ`F$05]h_6`fa;Ϡ,+"?fVv7|5ϯ @H6Nx_0s2zE])g ??2ܻv0_> _oozB >>c"n8GT 8_`q//?0'k 7J Hjf $/0`j]\?B"S8ؘ)' ;#`!Ai%K{Pgd^m < >1-A)ߔ+0Xi@*E$8pL3+3󻧟~]:u>g8<0,(BEA-MVa=V>HËG@@Y/@5/%IENDB`PK G1I9n; nuvola/22x22/apps/kasteroids.pngUT heA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1&$$09 /^`g`ffƪ&&Tڒoߞeaay_˗/ 122000bw;;{ 33?ׯ_|}}/^ ul``h}tE >}b ߾`Ƿϼ< z ,L |cꑸuQ`? 肗 8h=zpa/zWRIV] y;->|@\/y99I aaaAAAY \=#,nh"ʨ9W)?0y  @1?~۷^{7Wd=vᣤ,/Veu0qh_>~l{ ϡ$ 'Oݺys~;ZKZ2}zС/*'$,,T==='O|XkG5;v, >~III11=@1Ξ=[tO(0*n͛7>}pܹWN̍ e'0 "F?@13bhuq`% J 0 !3IENDB`PK K^=1nuvola/22x22/apps/kate.pngUT ^ZA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 3sw,w 1,L 7 +鳇z]I{ 3DhV "*#NDOPZD_:@ driVV ff``#GrM;W2#? n\ @i": >e󅅁7ou'<$ߕ~?wAZ\ɓlF"R J *: `'#3oAA /Е~rl"/85 9љ_}Obb~rZ :*x~1}cxu '37;3$@  -eWϯ$p6&#GY    ᅣ3/:yZa MY+0  " ПHT)[ih׷|hd01pqq132p2<<|D*e S3an<1Y@뷿?{O vaaW1|/?0ùMccjrÞռ S^= .-ɠcbw3vYm7.0lXf8hR'K;' Xf) ?={o؀aN?e$ۻ 3'3h)s/&iE;w\RL (k32a|?00x^zʠ(+`ˠ" ,GX8E 9*4-@Y?W?L0_ڠ@7=s 0If`P3<X6#+ ޗ/o  @,݄;so yh +3+3 3 f&ff@9vc`cgabf6X]| EeX1113i6LĽllLA@Hܿ@?s& AA#BL}ApbUe `4;̪-IENDB`PK ]N1 (``nuvola/22x22/apps/katomic.pngUT mAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd`hb```RO0fo/kݽxkݵ jè;@ďsG ~ɀ A[K7D}qJ@@ `A ~b1 X@atP 7 ѯ_ L@@CL<<--ظY^ܹ-v߾a#s<X|]<_FXՁ21 bwdlj00a3 HX؊Cޡ 2]ϟų߽;O^_tSh|8 kH`-ԯ/;0|Ʒ<``v /nu@C~  @f4A}k6t +tPŻ7 W0?yA]&V#04bA(P Ff5L%Lg7=tZ|@=~f`d`dal0@ \Anټ߄ :P6Hq]-= L Cu @ 3$2p ho {6N9v!F2702 3>8o'`9+32dp߿V22\d(dA@-_YШ| ~31l8PU"@@ ̂ 6 ?20~? `Z~PK~]~ّ P c ΐ4t?Y1y˧ݧ [0̯; @,?~|{+Ġ`c=(`F0C]2mrtҶ ߾~b^oKR7PӀ:yp(PQ@pEY{:{/[75f`xްPг#E+(Qߠ^a XdmRLJN8238"WgIENDB`PK G1j)LL#nuvola/22x22/apps/kaudiocreator.pngUT beA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?S(00cf#p"^˝-P]Q>ΣN۹=Óbcʰ#`FoFU}k *r?ؾ |3 %n l cÛ|{բ N; P   N UG}{%x`0 ?8x}v?3d2b L 0|c &B  S51;r7PW#.0\p/+CF;R) L@` 30qg|p9_1 GO*d`|~CТ o-bfc`fjX a 3 spq1g \a^:â+>30{11tcXu k6v8G{j 3l0޳gdx  ?203gC K(3 *> RQ< U_&_`ɦd2 X@}6 gTeжA;ý ]:f`:C A; y vnb04ddXy1Å1l "yxԕg23\vazW"RB,St3ݗe,|!{ˋ/İ|)(.q 0ISCÞ > 83ݓ7.~_ ," n O2|Ȑ`0_a*GfGx~1 __|?p2&) 11h:04[̉1 ``uf`°Fo3I 1t42HW[ xWD W@|e OQJIE` 400lG`Tep {y@9@5 @ 4\'NF##87CDg:+_JM+[09 6 6` 0[5z/߁ ='3OL\pU 3+  MY4єpCh6Hx~?;#ÒK.6309F#/X B`(0^6cO,WO )OnX1?0 >f 4o [e2pB1o@?Bpϡ& m' k $!k* ʂo ?aw0-js1@a5& o@FPf@W^݄#80v1^IENDB`PKpH1}k!nuvola/22x22/apps/kbackgammon.pngUT fAxPQux %iPSN (QI J:U k\%(qh(7-RqЊ֩X  D!!^ǽgsg9sW|KH_Żd )C\ P4|x{srrVgJUAQΕ!O,_@NĊwwotx4q&ĀPFsB^1G%WE'0%C0 ?ԇkp4=r{cCC#JN}S.)paH! "MGK -.~$GD_fۋĬͧ蝅i9iy4AwM˼>M2n!lIq!$q>qI!o+j5"AӨk<~홺xRw$10S\q*kP}:@¸&+e@[*dIU0g5ըhXkv#L$ѕJ[ H j8<A«)Z"=2]6jp\) X§a#+ͳ 5Nc-g~><2\`+*"|UWyxG!k朊R>u>3O?Yman?V}N yMZ#7YtXq4p'D`Z"ap -ЅЀ밂y^H?Y-&"$Qg<'x:|,v> uu@q0c( )}Cvkd+tc`#cä@nǬRKyܔu j!kS{|.zԶA(X&ݪ|hN l^@SFF~4B#XxqD uv@FЧ[<@%FM"M'?r®.Vs=Cn  ou`lP@ `x#&]u"a]5yy"hࠉ'HI#}/ )Ѝ#Gְdo2ҠTpaH9^T|꼺@7$_TX<@Ĵ܃ eMA>rmRA`:í%F}c>Qn-pߣq1 ,!+]Bs1QdomީBQlZD#TyeĭPvPK pH1Ӏ(nuvola/22x22/apps/kbackgammon_engine.pngUT fAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1&30!F~aKx}?._1dcdf'_v?~031yKU  ?~fb`dg)L@T7;w>+z;X!tVF< wY4~q3s8" AbN| Ҫ z  l<  , ߙD$xedU$x䅥8  F ӹ~bf`da0Sb`a; z Z| {.;M4d'ջd~| `bad`bAV\⏾ _?g7bpReᎱ ÞX4yYs00310s2aض%f0}f47a`7ex|+F9;_d rh  &nov?$^%W0\ݹS ?q0o`/ !TpLВㅓ r 2H}eT YM2ȳ&  ! 3?"1Tქ~`c.'?P >1LR\ ?c0Og0b`ge`dg8w.9 \_.102,{<+R130c>)%  @ ? CU^#v=s7;9y,daa f oFF6Ϟy $ß?n~̠"ϠoAV"`k(+ógO޹}CSF\\'0]eرc"9(@IYYͺ7n: wڧZ g`>^VV&f[;O@QR @J m,,48!{$`7nEIENDB`PK G1B/nNnuvola/22x22/apps/kblackbox.pngUT \eAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?-@pd! ߿g ((&ŋM u @1߿30y ?d &| g\c֬Y .4ttt\ 4Lo2d 033:@m _|W\_TT_EE咐f>@0CA0EZNNNp={aϜ93 hi;//÷oƒ P  nwvvHLLd+d1`x3:u>|X @AzHqq iwww..._~ ۷o`6H y ޿pƍΝ ?| xM)ؕ_~e*b @pE( ]ڶmG?~0pPD=}ɓ >}be  N86u0M5 wezWTTd@rl08A@~Ç  dudpUW^12HHH0``C@ @.-H3HPPr0-%%p@` C1@"ϟ?)777PP @.f%1Ka^)yZ D0bx@^KVɃ\3  9@l8@W_|/0{SPdAldo0($%%qp%f b`*@/WI\+>AahC.^XPmF Q@k./QRR1PA;wfT2 _bbH `5ZZZ>rd)(u; V-3 e@=??@2_R|@au14P0T>k}s H_%P1\.ͻ#IENDB`PK ZN1䎌nuvola/22x22/apps/kbounce.pngUT mAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 eds~Cm QrUUU'w<8ukOl|p P=A@`"0 d`\UK͛vv}QTX! tkAfh ``P27???֯?Y_X+@Ata֚5&\22 > L@ f ߁-' 쿾2d8I2x5v  ?XNX19 /2pܿ1/?`h0?} .'CZ~2 XI1)%LԘ_ v3< 4=`@}) ?o`x-)5ƿ @`u|y1ۿQA@~x47`wم[ 0(121^s.6X^MRD[o :^e| Q1^HPZh 3|? 2@3Qʠ&:`,))+.mn> 1|tg@9C#0Fe+ @k؁+#L 0 BIFsQi0!GexZhsV*#QRS4x'joDDAO ~39`` pC av6H2B%yO/wyL _YRl𵻷Ԙ30%8Ad0У !.&E 1&mgpߏ{e '0@s] q>>~~h105=c5q@f``8YhѮM@` >//p16v21}zqAf 4侯8k1I1px2C, Iנhpf /&}k@`I`y9c?o1++$ A  (A|& fb>A r.1Oae@ f2>͈_ t1;еZP䁒 0n11?x9ֵ~8\#cfd PRlbꪢ"<4߿}y{^Ē-@ X XP5X ; _P'(1>]`߿ L^ a _d@ _&&&ƿP^h`AaŊ!ǿ߾}c&'@˘5-sb=M@ ~`@  PpC ҟ4 _zcB !))+$$dc졮D2f@ҞAAA7#5Whjjzy—*@juҥHU*f"+W@"N@\,"((xA***JD T DPN34^@J@CiV  d!aYg_&TT (ZM  xQ23Kh% FZUj-IENDB`PK G1꽋nuvola/22x22/apps/kcalc.pngUT NeAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@~~A**ʝ22 !#! J3 !bۭ[7]prȱ7XYYZPPǗ  RȄ`?fـr0|]ǏW\ = @p@~dZM l c4/@b_aeRebbaddT 2VbWEpwҖD@! dg^t MEω&^ 5 {G&`&l, ~,|p ?hUPg$2dC'=jc!Bbxd /'#C[.û_XY8~1z.߿2030011|]ׯ_0ǂ@ /K1 0 3GFm=V66fg2 223<[ "3ț] u5@1! 12<A67o3<񟁃YW o?f`fbxʵk .eA3b0@70A1@!Ν ?f`gggPTTdxϟ?>7+++ógπaʠ /pۯ3h~gU14bBM9.Х /_dc066aǏrz b _e. 0& 9AiQNNݻAMM K.12())1ܺu10a|A[?#+ry@(a 2͛`/_޽{'`fax-80~Ļ <`_\ @HɍJ&@Ak`Dq0hhh0|l ȥ ޾g()+1@1!Gy9(\"Pd޾}X0fPRVf{ ,;?XnBJ^z:ȅ " jPD233Cà 3 5b@] cP00I'8ŀ|37PP(3Z\ o~|`bb:0[f~pXÇ`QW2-xݗG dg` oܸnT ׃!4!5H3 2zqӦ ~z d@1*SffV``] "FpȢR `b?\ \ d:eѮIENDB`PK H1aЯ!nuvola/22x22/apps/kcharselect.pngUT eA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@=< ߿@> LL= `y66?ظqY77 (6{|?~2 ad+'333AAJJT}3g= _ &EE C^^n|ưs~{2|a ~h#f+mmuf}yw1@rqq0<{W^l@2 @rqYA@ &NN60*3֭ @y5@6`81 A ;&`l 4E@233iL cZn@ 2$F3ٳ<$i@ K0;50H@ ds- ld(A. @(.E;; (] łaC"?H:Bq16@ @ KRD:Ȍ\ @(A2R1} Br1`Hv1H/$ rD~m(@V` O @H9deE{ Y 4_ f@ -yy9Y ={p}D < ϙĂ%^KĖuqǏ;;P#nׯߺR%FF6k`Yم o`ͯ@|?~ JC6`H|p~> FX쳱q@h0rn0z{ h aZjvIENDB`PK H1&6D^T 0 H;#'_~S0?0@3~|C?f pda @`s? /^K04Sbg`:'0 ff%5v-cbP 0ܑ(-- 'iAf#cL@o*&%%l)o>=_V%*| LL0baeb`baX2zcbUe `Yv˦TIENDB`PK H1 KKnuvola/22x22/apps/kcmdevice.pngUT eAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  _nl2BU0"3LP>3I@?FO=>kƩ_| fƄ3pJ `!3  ef_g`xxĉY_ @P3piK1L `r5 < *8#+%XA/Xx5*$Af?rKkrq2C_$ N(P30p20HKyr 3l0+#İa0;. qI%NN6)/8ܙ .A cf8 t߿K؀a-!(((cF--+/Ǐ.")~F&#Oa1gs`!!-3ca&11f߿h?s@?b_߿`GA+00J+_|V   @ J3A5 2HII , ߾}d $ 4#Л` Ar0 < ڼL6XBB\Ç ?~Z| C2#ֲ, JJllBI1AĆp\E,0YؘYA`F.../_] 8 /_de077gC~pU^mPR#@ VII ![ <<\ `WP0{ ?A> oXϯlv 3B" A!sD0a-Lk֭yG29n@CD3rTag3 @1Ҫ UM }&IENDB`PK IsH18f`bsqQU]s\?[f7A8E kIƯ@?``2"%h#(VIKot*+Н30pr2<zBw'}aW@?1$/b! + ߿30C 66?@ \ 3p&Ø03b^A A K0\ c//g+d9AEDe5&  cX̜?WW3ݵa2#ѩ Roe8!S@!d8c6߾ez5= : ~}|Pa V돞2r)0y1C bg?&1;ߐ` zC? ?c"^.=}Q 9HAt[ >c @`k+݇13+ c`db%#uf8N:_30L*2 `"9 @`200e70AÁ L,?XY8^S֛ c3#Û i.<`|~ au/10$C&9^k!!0/jNFvauaϡ_ fbbA+>a`pˈq7f61}aF CA8)3̳>3y\F./㉧?};'3abT獟>3ۍn($\tSw}b`fb`eeb`0y| .`+6TV"& ԨtN& .1,6ϐAXP.9n`i$𱆋E)\gV~9(bL (W bjbU@4 =5IENDB`PK H1cqB nuvola/22x22/apps/kcmdrkonqi.pngUT eAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<dIDATxb?-@y`? @(j+&f#((ÇW^ӧ]g`xT ğ#`bqiQ*;;{Y--&v~~'18pGd`3b0ԵF5F^^<~e8w4>+HKY3\=xu߾{+3`b<Ș *88_VX < 4Vl `]/?@a/_xc30Tcb`bjf`&$RL I Ľ{_20CxϜMM/=9Lc爊~#H jv^bt S?_lB \ff ܌@!1N @Mz[ |@l0/++5`Lg`n( L@ǿw00ܾǏ?@>@F'ѳѣb2XYT ?|`8 [խ 02rq[?K/`$V.+0%?}Z߿m~= _*6_)w; l d|e`^^ aabb ?YY8 u}{=@ClXL22OVV.` (s|k6nd`89X98@h+@ AHHI;?.kZLL߿~*-"İ_>|?`2rLLR^~ׯlo4WX+8A(0{KUHGZڍׯ/Zob&e@.6`|ӧ/@=k.|,* X|*P9TU8A^> 4=*@LȏwlU`yV))\55W`ZLsC(QZPcdd@"k7y{@ŤC#s,AALPSbwffBCy||Wt]* 3EEMH%y)ȱ6l`Bg`e5A1SoѬ]^ : %  '~Fƌu~? RA @b5y`" S$omc.<9s|||2Z @  GW24njɧOӁ qP7T 0<``vrRR L#j -|Ν=Lu0CA P G`ac +)){YY)1aaF`}O~:3<0T5?yPU"T~1- >}'wIENDB`PK LsH1K nuvola/22x22/apps/kcmkwm.pngUT pfAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<RIDATxb?-@1̔vߟ?//HB@?P?~ݽ/: @())$'fpd(H<"Be,ʱ230|aΨ-Jn 6Vu?#$ 5/DbPeaabbx+  @,>441 &E >Y`ʃԽWA͆Cڛ &f, o P abM3L9 .h'8>O`15b_P#ÏfzH?@ d}z,hP)8H H2İ@~3{pORbOEx\,`Ğ.v9&6fg (}gLL`b$ P>ER &P. T`# 5Q`FP8( *̅ cT _hrA j0@11121302IDATx @gN,f^lyq1$:Co%[1@8TOH~Sa[9?+. &R &9|Z 2H3CU@ J ?`d02B\Mowq}a-*?Կ}5{aw @@m0̬B8L$p1p 1X1x'ͯ103c@?>VB}~ >1<{Q]IVo: 4-@6vݬ,& ~<| V =g8N ~̟] F,5Y -%|1{񚁍 2l 2 ~22{ʐ9omVCmFf_+-2f++;ï_i 0ly C35[|? '{PedcťZͨ+$>|,pOa "%_0ct~߉8hk0Qw3.4pdcSg5iG ?X,W2(d]ʪߓq8@{ԯs7cVY%~|p o1aOo3bU7ӵU'0L ȷb0ba`ˏ ?}aSfgds Mn X>__g IȆ@, <;9leT>?_En3|}P/rÐ>-_A.>2 ;YyYk1Hfcx0ae"/->U.2t`{@.Gw) 3DVv|ߚ o>gx<0`Rex,*̰Ej{ !ws|?̿y pSq%^Ҳ K.dU_9ߟ^޷2@13|d8[5aEQAA[o1< t0,x})@C'2=,~ |?6>?2Te~2Ӎ&2O @ B\ @Cك[@-JaV  jeSep9)JzuQ#P @! dc~D 6Ta1ʊ_y/ 1+r 0FIENDB`PK w!@ cPfbPPX H hV 0!IENDB`PK #sH1-5#nuvola/22x22/apps/kcmpartitions.pngUT "fAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<SIDATxb?-@12c`a```bca(#"xqʫr m~K1e˷o??{㵃9aO o  8 9cVW`f0rKrǭ?cEX5~|)b`GU7{2ߴ> P1/PK=eVs.̬LO001=|ZikK49222003`'[" @L XC}x7;q2+.'[>?fT@oqa; 7g?9i9у 3b/ 3#7At_^r) ^.K 2n{_22J$%XXX!@L>bb~22p8X Ċ)WK?g4C?G3ֵ(+kq22221011?ռW%f`x @@ë{}<[ܙU ݨj4;HULL:͛7"=$ Y7Sݲ?)%_xz:0%# ++08ӺY 豯 Bpx/L<: ##'1RRR>KĴ_޼fdxo>>[)-,l2/%>V ?l8''7êUoL@, Nn_z͟ϟ{wx鳗oE}4c#)Lnj `12rpp-ï_ؘ !!||~ڛ@ R`Z&h @@lc [`1f w6ڑ/@=˗ IL MP,4 Z@K1F,,|_˭[AÇ^ gsfe F >>v>|ׯ0v.z{5>z jP8hF 59e??onzp雿~}@̿b ãG23s;I#$iyd8 f߿2<}ɓ7 {k^c3y ݻwZUUM?@Cjp$g7o2zHe8x5kN| ğ^;?k,;e>F@\`  8D\uuu %%D8X/^|~ҽ/6Y7,޽bE((b&VVvYA؁j?&КzA`Fm>%YϺIENDB`PK sH1R?:9nuvola/22x22/apps/kcmpci.pngUT fAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @, ƍ뮮Z"EEU=#,303g`a Hu W^yc8E`a`102 cb9X>|5RՍdd,RS\ Y~*_f&Fe L31B aӒU 6 fXYY03dS {wg0Sea~ëWv2]pS/_10h"/8(~3 S([P6SRst:3(B @w1(]Ħ Ïep0b03``zsA0 $ A3@V Yx~01ݶ a c``Q ^)00   TC f&f&Na9 OH 䚷0y7eI!I 02#kWd$x^gf>`,XŬ) d0͠lA @ݽwP`0|2' ~;?^1xMn 0f`afʰJL , ߙ%7s3d1X˿ca[% ,R~2((0p13 j8(lC( r _I?8Ngd>ÿؘ-y_3H '`dHj20=A /b3u?~pX|a#@ fccccί~yF L'7]gO2.do?2,Pa^[ ~>޾si3M 8_30<ဤ?@Ր~,LL..+6܉@1IjH: hVՑ)IENDB`PK sH1"nuvola/22x22/apps/kcmprocessor.pngUT  fA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<^IDATxb?-@11 b߿@>Xϟ LLL ѩ?}t#P j۷o ĂFXzx{{Y2l۶dݺu>}K?@1 @wׯ_A|>yyܨrMMMާOb =bŊW^mq`M;&KJJ2 2޽]j` 2(Ԕ^tÇ> u `ŋ?o>֭[@l0@ vUȰ]Rr;;; g@sN:uѣu@7|@`US %\...KY2Ǐ` Z ̈́Ǐ8FǴeJ~իW` %P+߼yWJ l%LNNn ̠ưw6@@faaax=ûw/8\O)i)u?o3>'0a3K`1] `2cSaصuG r1((`(od $.Co]vy?%@'|j6 |w3`diׯ_] 2"" V \ W0(\`U=w-?~!CC1%g ?v`PdZpig0АAJVG 2{>dfa_|@`cMDY2ݿ ?D9o` o5mpX03~]Y>A!)%5f: 9YZk;Yٶ}Mp4Scz:qGՂ l:ݻQ 'g_?~Uhɵzoo` L)xņIs֋M 'T@00TaMLǞ0S ?8Vf7{םMRTf~eϟ'fLd&@Sbn78ܫ$?6 Rr@k|w7O>T\lj@e+ `ȾӔ PTĂ4mfTI  Tq@LF#)S/ B b@qg SWA@L "mqﭲIENDB`PK sH1[nuvola/22x22/apps/kcmscsi.pngUT fA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxb?S(ÿ@la1ppp'?ŋ똘X@ `1ba @200fY[[u99ٳ Yjׯ21@x 9nrjj0lذ/6b @L\̜doo?9??as %%9AAIsxx|U?@1r)##S86...k3L6۾}'45CBqs x v;::NKNbؼy7äIgo޼4Ǐq@ 3D-_>3O8Clm#&O~_j]]@ \1'۷/^?-+8 7dxt{jz>49$$=z9shxc`dg@,Htp)/*J* V ?zxȡo_OPPP`ccav{%qq_@ {xD9;;. `8{ҿۧNjd7ȵ ,,lL|22?~:Jd0| ~ff=<l `2e[  R &&GnMM5T_~3| J=V޴izkFF w0{JKA@RRٳ ~~֍k֬g0Oy/\8ϟ V&==ׯ?_z55FF6&^^AkeܐN41?~/򆹹`#0 D sq"Ⱥ?~k] ,,ŠǠc9ȑs>}tuu1@A jB>ϿÆTTtj@jUU\]X >}, /!!Df.@ fgz$ 4|ɓlLj""rqq/\ϟUA `B3rN ǩ.VmΝ[b11m@FE@a5,-f\| lȟ?z`ڭec+0 r[G6TfPW @x 憹}ݻn߾PWI^!R4w%V4XwhW _`5(pnnP|IENDB`PK sH1n'<nuvola/22x22/apps/kcmx.pngUT fAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 b[a7V!oLYxfڂngy H[8V00(wliƷ/]}uuҏo'_-!K ^pT~7cT&>U?O -$l 9|ˎ3Ιtp# TdȲ 4gf`d*edc]0%5A o~5e2Ǘm? &R y j,Nղr1'ÿTv۽W6^O 1a 8_ep PeHg;/0߳e֍>yϊ/+~Z 3 o ?>=DŽ|r p+S(F6o?30ey3o|~: hs P:eP01q3hKU6mos>?쿻X6Y%Cho,y0<#d@! Fa`cr/Zso}Qm8YO#񁁅O6~;|(o35ӫߞ[ԦWx=8\aK7Ժa04Y};o2l{MYPUa֏?5@ǟ ?%Stw~OJAW%BU<+Dp @H e`ˑe*Wywqcдb g, P" 2g`0F[SpǙOpk{ncfeI!ߦ0MS'Ą?aoyIzͻ{]}(|[|6N Q浭,,f+HcY7 '/AiNǏ efQ30Ua`fb#:sg忸@A f wH[0=%?ח &'Q kqrpw *lr e``A//>1pcol/p;KsN8rPBA(íd//Û'xzJL|r Bp\y>pava p}NmjY@`7ށ'E20|-Σai '>e`gfgxov0xu'Pz @h bwqg[ eL̴u|v11bfcd+4;0i* !P2@.nj咖|L W^DPHAogNl b ,ff`d @*9 ʚ\ȋ1\yõ o1ӕ9r)ϖ2d@r A\kq|"'UOg@Yκe :_,$,׿1bAϺ dS+gp Ca>psَ;#m/P? y=PNƴER >V w301N2_/6;(@#Y|[e&$xYO?30f sw< @A¾{o?3_vE\/ջ1 bQ[w~W7qCg|_J,&Pm(h lYo? [ῒ|S8 fc 89{e@@/3h} @%+Aݽ| ,@@w1}p˕'*Hv]b+&3'{@ p) 3/Ol,h32@JV#IENDB`PK TN1ά nuvola/22x22/apps/kcoloredit.pngUT mAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<dIDATxb?-@1 10P/P AcccccT`e/߯?{tof` D@a5_?TYX"e$myŤYy13f`+Fg2ls.10 2 0 A%[A;6PWAR'W~}p á /2sn`8CWj f N!Oec%=Ai3Ծ:0iw2q0i̐;6iLZ 0$as^f`8@`Aa tuuIr`Hua/} BPݿ o2r12XZǠAD2~ @``__0ßx>3׿ ?p20r1KaPt "/2dgff`8%W?˟_ ²v1Z\La'OA1dji0b'0f1p 1~gp~7190@032r`zc`x'ye~c7ӿ@qavfGg1|uh,(ï~g FbrerA_~0<7qy%RH9Pv;1k<ʠP}O:ot Xd$UE]g (3(xj4'Х̰ ^^zà4T(_k _| XXٙ8et~|Pg`f{d_Byp+w@eԄTYvxpC@ w|%%s LN@ ddXAr <] /nfeeaTcb8Sz'W?|f")O0z }2 Xޱ0ۺf7. Sg/ @RPP}K08C. X @,̬ ^?v֙0cfdd@ e&\ bط.â.ry @,#w~02q0KVwJNj?grÑ5|ۡ0 8ŏ!յ < @~1xޛ Gv?]2te ĂR$8X{0lJ/ /fvz s@W@ t  K Fvv~}?@q_@X ?F`Ih  *P11)@܄#3uIENDB`PK sH1iaDqnuvola/22x22/apps/kcontrol.pngUT fA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<sIDATxb?-@g?0 V(+{ } O9oo~L8'X߿Tp { #r4ف$߿y֨ޖk׮4 aSUU~k׮/ ll'N9st%EE%\ < @5d}xDP\99 Z>>s^J yVկibUt?}˗_?!!PZFDD! KpϞ:m^@i b)RTTs gܠׯsL:eʽ_]h 5H.&y_0WTt0LsOK/܂>|b077chohjdv~~=($lffݩnTXuF+ 3lOUo z-}E^466&V 1 ٍg\P4fE,@12w2÷_9~_&fV`M=g?2vii:|ޝ91@ fee ZW.", 6%< +W=x|+sCCC[[os":'#02Ý[>K\ /_fPSU`|_^baaa`ffb`z 38q3 3021 $j4۫ml5CK鋠?'LYZZ6DYA 4 d @ ?+ 0XAqON+@/+*ӏg/T =(Irrr  pϟ I(ku3[8 %12|'#/Cbb33 K[gg=ﭛ@vq10<3 Nc`0[|=?]v\yy.E'9|;w^w/f_|? &&`P:@ N'-k\: Ǥ{r0'N\BC/}{Ǐ_konn?N\4n<礽 A ,0bfb&MV吰Ç_{}[OxzF;`* c9? W 6`:(b䂃#w^}G+ZT6x?hw) *"@333Jؽ /)mϷ L oVHKqcabiKdSFHz ➞~R ,*Q +_zYPVH0 p` }VFV @X&0r20YRP"f00 B`/`  Ԯ%<IENDB`PK rH1enuvola/22x22/apps/kdat.pngUT ކfAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<gIDATxb?-@11   @,  cL@ 4߅ N>| X |V4@.yfaaam2`404 L311. 6ae0>H) }I ߿b\\\@ Vk@D~ 6d! >@1FIIAEEA[[޽/,Y;Ctl4Cdd8>= .!ðpCG= LY@K1`iii )(~| 0F00\AD\AUUABB쥬 ,8|Aŋ`68cƌ@ # ` 6VI'F@K-[޷o_@(|@H1#H TNh^`=}kAzALL`,4P><<,d 90x %7^^^`ls=,9 k@\ XF#W RF njyn@1"@~\l@;{_~qۍu2|1=(Ll.~Z.@?_@@yy=3|GhPH#@(8VI h S T b@J w_!@(>300DM__c`fɠ"#"bK.>zh#a? Yt ,ddD  ??u2ߠ, 5oV`ɠ*)n0@½g<b7K# _afZ̠) Ήl@f?}P5/Q- TEX54E T1}|/ oH1+ãol <, |r 2F3|zvϯ~E3"Ppf:@ZAIld`vPů~͏Hr? û?t8e t<~|ɵ?~C\ fN._t ZP05(^''^=?R%еϿgx/å?X% PK7 ;`8ޓ?z#(NYhۯ 1h|d`+G&>P2 X0R53g,,x|0{pA!a`p#+êMnݽO ? F 9~dxғ߱2w>63LW2e` J x,b]1en_&c!hmH)4IRIENDB`PK rH1DSnuvola/22x22/apps/kdmconfig.pngUT ʆfA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1zB ~'`h,oN<6wi_>C/+C g!n'2?! @,?~1;N(4c`S![O0{^K ?>Ho?yC2Z :7߁lF=w{6>6/>o?x>F_y#h1%%7؀^j 4'FG,\zO!\|W ظo7fxl0@_XTHk@ 7zs!CSr~Df%!?S`]X|dмg0YOWߢ҂:J > ğ? =``z ;/Q\APc_4`b&_|P1 _ ~~dxs? a ?1IHAgN> @,[#qu{G 1dO b-o ?-??1HssH @el7_> ;_r1pK0}螿 0o }Ͽ0 wœe)sq1`V` ? ,b{ 20]cdO Y6W68-" 0$%  I7JX&Y )  "$;" *'('N v{rdL` ?n,L lL OdދKUX*031|% G?g`cge' krٱ5')_ _g?3|gxp;7+4333Pty0aKO#K`~Fwۻ8@^^6VFf`P#Q~qnO'Ѕl )t@?9yٸd廍z=+\"c̭'UFq 32 4 Q(_r X>qfV6>LڲJoxP)0p1() )~ śnc#@1301B(7@c.) _ϡ*$ B0Tg ;'W^b# $Y*uTyD٘Xo?~z?5 3C=IF;Fs020PO'MIENDB`PK rH1Ty__nuvola/22x22/apps/kedit.pngUT fAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?2Hddd 10rJ(JK+*hO[w<ba a``TTiv6=@:>~ *R@LY|]r y^23lw`x+-t L-@ä]+h_vnv.Iy%lv o#X 0 fA@RD$ϯ*͏ MD>\cg灙@D }+nWd`bx򚁁V ;"L1@āMQؙ, y~mbxs@`A3qTF} ivo [w10Ȱl.X%h /0ݽg}a`XTO`bat[F>!`) }pW gLfgt1qϟ; ;>Z 1 0\ Ԥ&.q%? 2<=!TG-rL@!'G8k10 Y1 0\'/z;`` #C_PJ# ʝyw9޽k |@äT v[,Me`'<bDLyds}˫{~ZI1 )i \"IENDB`PK 'sH1Gѹ$nuvola/22x22/apps/keditbookmarks.pngUT *fAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<KIDATxb?-@11c>I2},+؟]2%ٖQ#>]{ͽGL"b#?|a@ ?YYml tuxy~?{ m.y򝧌R@#*/_2[3]v<xjWȿ Yg,,[##T;;~~__R!Qư}">*f<<xX` ?XX=epvl׏f3X23?Ö  o}]]Ynބh `K~pt< ) 10jgå)SW1a@Ȳx10<}`inW0;5Aɟ8<.`oesn#7׋ ` X嘿}c`x3\\f`GF=+|a0&o .#ϟ? L ~`r5(A=cG$320`8Զk'O  >M}o߾t=b]`ؚ';o߽cq۳g`)U^{;0[t"~KAE?G@m:ob6ULWǁ!_-# ԁ"@(#Vb33|>O(Ԯn&@  uf[}[\Q@ssia vG U@" yٙɈp..}SWo x e&@a5XH $C`೏NNyx_!+_aP33 p,ei[s]H#D&3bjk0Q% 2U5 iUիIENDB`PK rH1kj#hh!nuvola/22x22/apps/keybindings.pngUT fA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@LL @ifffϿ3?rcd;Wi&9N+i /^]CPt*a``bU NBVFZS@QAAAVLK_Z*6@pAؘ554dE8?b)S~yà+C,`F$; m ?޾e?\Rfa1}zp`aC 32ן ?~c ßo_222  ˀU{ߟ?j@SxUnQQ?f'e?1/Е~b>k13Kp00@ w@ȽAqeU~ 3(~ ` QV`bf ~kp$ aPY:``b#ׯ𗍃ᷮxTP( P_10}>v/_EY🉑? 0e'&_VA@XA?Sy*R2z9@ +G?ܿoɣ0㽻 200r`8x>X~f 0B)1 iv `l J@ώ-`}/2~ϋ >e`M`ÇJZ/u`ǡÊ/zW@ LMB)g~0(203i3| BB jj @GㅇAJJ u@]664 J { unnN` `af`eea`c`gg?r .@k.yÇ$6!c`' EX4;; 85} ` RxAiA4d`N{? "bd% ""t-3@V0fV ``Bb& | w}{0E0-P83P#L` 0@4~c`x# ׯ_U~ݷo ~ex wB܌?8XQ0#  P@{<|˗7~~|߿OrpȅVt}? cB.E|Ҍ Oǰpy/ DԛY_$Lc g;001?PIf fȗ*_F.^V+۷o*,,@gd: hӧ7n:ϟ߯nPYo

       LL= `y66?ظqY77 (6{|?~2 ad+'333AAJJT}3g= _ &EE C^^n|ưs~{2|a ~h#f+mmuf}yw1@rqq0<{W^l@2 @rqYA@ &NN60*3֭ @y5@6`81 A ;&`l 4E@233iL cZn@ 2$F3ٳ<$i@ K0;50H@ ds- ld(A. @(.E;; (] łaC"?H:Bq16@ @ KRD:Ȍ\ @(A2R1} Br1`Hv1H/$ rD~m(@V` O @H9deE{ Y 4_ f@ -yy9Y ={p}D < ϙĂ%^KĖuqǏ;;P#nׯߺR%FF6k`Yم o`ͯ@|?~ JC6`H|p~> FX쳱q@h0rn0z{ h aZjvIENDB`PK rH1 **%nuvola/22x22/apps/keyboard_layout.pngUT fA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbL32bfFF?~0{ '' ~1\aMU[L@^HQ(ׯ?^s~񛁁]]L@@,V" ,L, /_20| -b}@#  _!&fZ)"lv"*"- 5L@ l? &F}cdwi_@K uPf`02Zt量@?e`ywL@  `8 M-x00>_AGz *@I>f`t``}c`TtԿ\\ < ,,, ?߀1AZ6 ܬ |@D^Tb qA.e` F[Go_߼@,wTa`Xg/Zt`80$VbÛW Wf8 BlwĴ X޲H1p3|`|?GO3(0pJ11߇ ?d? ؏1(3(Ϧ\Ǣ @,}gx&S t7Vexo[$& ?S%EDxxx6ff"pQ I)p%e? O}[;/X8-X>}b#M ҏ0<F0h~0𗑁_b sdj!vuN!7o?0((3H0??F&fa%dwoj L, @3# ^0pp0Hh38=;Fb@ߟ?20|89فr(,/0 RWWb %Ɏ?@ADDRff@ XdI@"-Uv"w" PQK5vĎx̔܋H;# 2v ~9>pإ}u_Y-Y~f o~Õ XB +fF@;K.]9|ѣGGu _`dʩ, h 3<}Q] -%pC[~ @+ )H%oF @A˗~|(t_j`t@?~pZI 6,/07O/^8B $D~ 406L߾}y~M <7 bIENDB`PK rH1hhnuvola/22x22/apps/kfig.pngUT fAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@777}į_B!lF 1pq0_9Y̲6ׯ aQPPH+,,t`a`yA @E?, 4g ;P (Y@y7 eVV `zGUex|V%Mf?7;' {Ɵ?201 X0@ r3H096ͯ \r |Z ߾381 3zV_o3 &b"BĆK#9>=fRbS{ec;8x9 ,bg_ݺy+0<5 f%}AV 2|w30@BNpw^;85 o^>`SgUSapR5 >V Ll >cxAR'0C[~3{00t:X2<%p C V >%~ ) pgaaxŜBY[vaG ,g7(^~/Y5yy {o3z8)\ @`[~?l/A_qkO3cϠ=AQY0W`Дdc3  @ '#.\&J1 0\q`) J* ?>gd~*de೰eÃ}E#+@ fbS/" `!MdЮ`PSb30ch6 qs4 `ghX¿p K׋&ˊ2ܙhKe F s2|輟 mg`dggĠKi-f&>&P@#_8zO~uּf͠\`)w׀7;;2083:0V `xAm :̰$ @`bϵ}hԑ&O?<fbA<VPb7 +<0 bg @`ae}a[iѳ~}3K+m :Y1| *9#bQMM_yYYFğ?T0b ,wDԁ*3_PnV@ f4 t)` 17w;w3"\01|{AH߈kQ\ @HY?#33 ///?`2ҋ?4og 75f`dbcxr4*͛M,X~U9H qFT32|b򖺺:uϟ?%4R*Deef?`q=IENDB`PK *qH1inuvola/22x22/apps/kfind.pngUT pfAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<XIDATxb?+033i&&&m%y9[^o_ycqϟ??e 2y HJ= ~1p䱝W/]U-  @oI ъW F s2020ktDuO>;ׯkp @L Ͽ N8mq2k202012pp22ɰ2XJ2|1apԪ`OVScB 5 , >10ç oO_52XI |l0;;| 00}Ͽ^ Ha` ABIWACC]MDXRRZ^Р'%+e`1qKuV߂b BBb@a- n0@ wƠ%tÆs4t\Ⱦ#@@ 313 ;$(@ O h8PX'%N^y (pa3 a,,,3__xy\I90l~g gy @`X>?c#dr-P`0I]~e;OsA  Ʀ 7/e:.0! 4O  ?]gxo_N" GdXʀ Y[\~3 ~g8y+8*X&eru bЈ Hfdf;:'3ݸ+O0ܹq{+*uO ӰP"wߋ)p @,R>| ++ s7o2<|p/ÃO̝}ɓ'~+? 101,? d&@1JIfzKuek}_< T/ ;` c# nDAIR Ym!!" !! 22226" =7.7ܾ*~`{nߖo߾ٳ  %%Uqu;8 ,]bgHKT&$b@C ?!<ϝ;޽|s||p#==CNN.CH{!}?KU h);@#SRRHK:V`DNjϯ5تWoW/o@ X.=yhLwt|{\5%'n~G|ׯ_t5w:ẇgO^~Iہrg#4y01 e @`8d~ /-X?++߿\*l.KJ-+C-a0TIENDB`PK rH1nuvola/22x22/apps/kfloppy.pngUT fAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@kkb+K3u7OyП_uohed`bfd ] O#&6]/e{X 920|fff/_2Ͽ uWSp{@1@±ö=>d߻5/鳧Vg0X`KR~ h PH ~Vmz4^Uia>>N_2l<h6A^ 3ǯ_g:ӧ oz @@PmxUM>h)0l?R+NM^>/@C@F7׏? ll ~gd_Dp(0<}p|>F_l ?ujH@3312 h$ÿ_ῢ7{ŀ%.f:b @?O``b1@}43;<3\{);77ï@Gg`KA7v/?A @(?- 뮬cy'ÝKOTϯ`oMÖADŽw |c"oPe`x aA)akk/v3T3 P@8p1@ײӵoNVe 7q3k`c}~ * Im]fO?P\ @(Ah_t+vY >}pv!0 3hG0pjr xP9靇 zFDZ/)Aቘ$Ã~ݾ`)c ,,?P# s(,2дfbpZ!ó?` LD2p񰃓`V (?(6*WP`06 7exu#C޺_6  L t toaB 3pp`𾽛Va.7 $B"x.f3eJ9`3OHJA %lͰC{} YOo? 33~', ܜL ?,;0g`8+ۅgV_BSG j_|'7~0>ł`pg`eegp_ ض W@adtf|` jcdb2fe<+ffo8KcYnF&]d`( b-%M L Qs ȿ`uU3IENDB`PK -qH1@nuvola/22x22/apps/kfm.pngUT vfA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<2IDATxb? 0  ?}gf峪N??O_Ý , ?|`c1ÿ~6 XF ?ϟ?ٹyy]|*L̝d3Xm7S]|?6#n.-- L޾pMZ?_>?Cq1@lfO^X2S+oXa`7_e``af`=gmtyCׯOb0@lahg&,%Ç ;;]I7o_ %55lef+I32>5Gda #E-@1#8 R; 0m~cx_ t?a2q1#\Bu1L #P`% ĂYJCW)c2bPZf` ײg8v9߁9 ڿP"74U @<`_8{,@I? Ø`d t1## #ܡ?x<:&>>!ƒy~3 P ޽4~ᒔ;w/66D8`X41031õ7NY?~|~GOFܺR $ dh7~vmׯoMj?0dddj`.Y""Rxq{2?)ΰks7ߜ{ݳ9@` +FFPJ`bdfv j:t=ݷ4bf\ 3 p YXaQ!(+kQlx3 |CIENDB`PK l N1(::nuvola/22x22/apps/kfm_home.pngUT ܹmAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11c4prY)?G^o3ϐ   LL << ?|a`dz?Nʿ2| Rϟ`1.x؟?)@# f(?T0HpK2z+?017#+333|AA㟿p f0@eSUbfRa` _Xٌ ̌ w1FZ)]LAf0@]`)(GfV__d#؄yA;0{~w9~ofF$0d$عL|x w8+K~.v`C.v@͌\ r ?e'26__L] 6ol|b;?0ֿ& x2U22e  r !ox.]cPF~112ps|a`胿 ϟ33tyˁ{ @432𝕍ݷ < ag9?>!Û>={ˠ*X1XIg_ R/@1 epb`03s0 CV\z🍍GA:=Cv< F oY&I2v?$t.@Ɏ0y+?f81û gF?S%Aw _9p1h33X#CN`Kʰ,d`b`!u0dJ33cg}KJ  pb+躯@00` $vVv.1||APBSAI_I<+0+́410 p2 (o@ fCq706XAEŜE^g"(B XN‚ͧ-lelK@qSkA' b}0٣gߟ|/J8by N(D#{e  .e%KӃ wNd8wSGO=;ՍjF't@P-"E;Ss׿8s/=b`8RDpA`&hQ b`t3}τ&bUe `6{IENDB`PK H1:F*ttnuvola/22x22/apps/kget.pngUT eAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@12MDbݑHV _bi_eff1 ~e&0̹ ]Rň`.6O-dy(b0@024;Ͽ1<~9d`~ ,YY~201|;nA?3L@ `3"L`cbh'`@X. 4/P=X? h$3/qC\ÈD&~Vfg8ws^vЫ);@0pqu~eXi0(}Cjw\pooP lD1 8M_z @ 'ǁ C?22&h }A1&Ь 4Q5_ V0EfzkW`Z9C(AR ]t X։is2O7@sӬ8$? h2fFnaڈX"@.e hH@}0jk>?W@?,d L@  4r@ o6-f`@_e`xsï7Ծs"m* )`E(50!!?F21h5`rpw~3P` @1C=_=z$ +8NA %Sp Áak\ Jc)83}{c֐`͐L $W1?W.;(v]K/%T J!d7o?37 oM9a0 P'0=#W 喗QB@NEܽG\D|Ow[ѳ=@X:ׇ OI ?0S02|317=閩 _tu?VϷ o~zē YG {~TW @ī ,9 IAœGQ--p7Fd@1:  X 翐d 4{ 9` '0ţIENDB`PK t91ȵ nuvola/22x22/apps/kghostview.pngUT gUA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<ZIDATxb?-@aaail >?{/^|پ};X n0BfN6`>\(RŒ;;xe3FU!3pwTu{\\\ h\09  }l 9 @נ-^zWP1 -` f0;wn3ܹuW&A|e`AʞATTpa0 +ŋÐY\A fsB"dee@L0@L?~уG \TU49lM~pj3Zׯ0f0@a|51#/ l ?20< |f`fcdx?cGP" )=2 _9~#߁~ @%_8l. 7 W`ba[fpu-cx{ 8`s1@  L`'P?L C ̗|@;/,A`B1 ?1p1_, @< )!ch:0@Lҡ0}} h/P L`x}'7 1((a PRHRGWg O/cHPqA00E=E? o߾ @(jfffGg2xtATV,l}^  py7 /J@(b ^ ndOf17 ¿77RPha8 Etoc}y [5Cr5,^< 3 9sӧOa1\tYY~t0`8oÌC=H=@14]h t15#g~ :]_ar+UF`bY,ϸm cyfF/yH p+&#IENDB`PK &qH19PPnuvola/22x22/apps/kgpg.pngUT hfA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb c`UgX$¨|'+{ W\i ]ll¿|ͯobfpd@@ ھ> v nabx]5Æ7wfUPTR^PDPۗ_E>wi9̀!AQ4Þ_šG旇\*PZ['s)tsM!ÏAM*$C?ÿ^1%LUe` #3UCvm|p_0IJ[gLd9AcA /j^1?7/go+Amt( ;#I}/+`Gh@`)`3 X޼e3&`Ҍ ?|`AT h 0@;>22ff` @,0<߀ʲs}cFx~3?/?~3˫G } 0o na`&&c,0~fx{0$gd'# Х??>b|=W>f0@1pyEse-q[kCw~{tŝKM+/7 SO?Mg]~c.×S@ _{9`%=#?C^ V)?}r`xsã>]@o2:_=u Y+(S ޹)R7zs T]AS # E|7Þ__Ɏ?03x: p r1H008h0X1bPSf7dp6Ҝ _bHHwf @LG1h.&&`{L!)odf Y!`#۟L B F^  '(In ,L= _zg 7>gc5aJRAF2&@(9teq9_Ai/#{`,/ϟ _2y[`g bl فِY XЅ&kb-a`9093} s*21 >e#.Tp#f]UAq̰#_6P`yi;>=^xhyb ;{60˕ ?>}exwa'= FhnNKTuE3'9q߯5``XcIWlFtgw:@.@AYE$}gd!X9 )YE45[IENDB`PK t91ۨ!nuvola/22x22/apps/kgpg_docked.pngUT gUAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?-@FF9=MCr0s32{߾:s})%I?W/3nNVN |_`9l0޾ ڱ``2+_.t v~r'ss=~kקo93C4'.  Rr@ fdb4TQd47KB4O1usK>00|cm/^jmQ>6XNA@ PԠ*,)+a4dSd`/ڟ ?0}U{YXc`1@ ePa/W[ `CNy@+P- Қj ) T"޼cxt6P" 40`dbߞ  t{@?~3APMe(Io`]v7 7~ePdO`o|ARJh000 40 ?d 2u>21mނ $ _^cJ|}[?>2o >dx27/720f(<$7Ê } __r؀ >f` .y.'bd 6 X psWO~ک2f;hN,qCB^W l ?~dxÓ +D}Rq,0 @,Hyen  p7YhFoS̟ 2\ݻA3y $9gP\kbA<xư0cf爋*32hJ3xy1cPcdUg`ac`faOad2 ? ng"_40?08PoV E.uYĂ\"p2hHk] JA?>Sw`f&2H} ?<߀?" ,bA Fi> ꅿ Yh(y; ןf`gG`𗉁 a bPq+F``dafY ~\u/2{_,`^sA PTLgI @ys լރO O ,n0&7%e` )/> *XYq_||@󗏁Ad@"@(E?GAU:9Gx?䡠VG"Zw_U,uSunYK ;o2D8 @ 01Ag"14ɺ'c,0>޶>ޝ^^q$Xk[-V͘21ƣ̾SVo}D^;3? 1i|?"Uf2c*$\uU#?_~a?$nɮ.;_ ރ8 AA?_85xi_KMA?$<8Y&躳I=yˏ 韓@=@_>(On? l220C1\'/# wo?3ܹw O`w׏@ d@! t_9ڼ"TPG?9h09^y?d /_|axr/ïCn} tQq0w|Q݄׃CC'__&/?1=׿gL~='/2k|@A U&VqӔSCRN?3q1|S/kL"^9.&n/@o1pd擷oq @ L,wY@XT?0l~eW%.afǿ?Y2|а߬L`v>y~qbw AտoV*e~}%O2YWLwo3 wd@QL~z|Bdy >b ÷_z Ow/oMX?3o_RO߿eן?}4ޠ .g3Ãߙ8T+`h`_2пȆ0XIENDB`PK {G1 }>gaa!nuvola/22x22/apps/khelpcenter.pngUT eA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 H06se;''ӻwR. 2RRLLL_x[/^<|ӧn111<b"4FFLL켯^lh (WÇCeg_ʓ@a A/!GJKO 5P|?P+;;ĝ; Qѿ~bf6c@/w>v9VV ߶mc`}0hee1|v \jj G01bsqa(vusqk2 D߿Jʆ@-Gk] Ϟ101ۺ3oݾ߿ߕUU,Xj~pq1u1]v-/o;@#(ũNM~ҥcbqsc` t731}r|?gZ;PGȯ/Z r,@Ø+TQf9_.xPa_@_x`Ba` r ( B"b X'O=v@bR@IGff ݺu;0a l Ҳ r@i8yT8~t_+%%Y4Nl; -,..,"1?10s0 sL ɗ/0ƿ~z\?fpEē!!V`\?8J| ~opB lv/I0Xol!E]kkBrpHwo++mniy2e _#~30@c~oߜy{ɇK .$Ġ`àk5?@_ #LwG2axt~X3utax;`D ޼٪j~'p į޽c?v?-fp:-PZ`38q[ 7 Ts aӧyyw|F(g1q,pc gQNPPp}x׃ .3_Wqi*kJ ayo0pp2_~3|0ߤ\5 XIH9 `4@A"Xʗ߿S-0ue3?_f`f_`C̬ ֎ O,l=gӧ>~2  3YN.+iZs5-'5Sk6aeMAQ&fpקw o`uÉ뗟}t?f0b0pf&&!QV 9n`1IMQI)A.6F ˟/{ً>zf@h A'0#0eP0l ت&bUe `tyeIENDB`PK RN1l  nuvola/22x22/apps/khexedit.pngUT |mA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`;@@{5;5 k RN0iY6O, G*ΈUCCQ>BqBB\d`[y𓛐*L#+XX~ű7cP1c`ae`f`g`fdadbfNF6V&&^6n&f 3fg:Pot3.Gz_Y\ y=} Y3~ O!1 u!wE]/>x/~hߏ ?}e Ëoe-us{\ga @9+910r0pgx-o7 eĿ1`ϿO ~_gx>0-D%z*@}Y U@ ;%) *  068n^_o1A^/1psr281cL ,L cffbag i~?M&Y8؁ؿogݰy#8UO1.>vVf ff`cffbe0Qd{N`"oT rvߟ t 0H7 H3b/?P1% @ $>{ _200 0pp31;2٘ L偶ayp?Ȯ[ŗxyyXa Z0HCr!З@m::"|?~?n0@1'_o>{`Ze $@&2A13$ tT`bb ӯ30p++02130|@霙X.acc`╃70A9QALt9 6#ۿLl@;uXcI,b `# RMOCL(r*D: hkU IENDB`PK ON1Unuvola/22x22/apps/khotkeys.pngUT vmA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<OIDATxb?-@ogyyt h)@102iz83ceczkCS^}XڕM_Qffc`?fead3###`F( FՏ~ @mmqxgN) @ l _~e`eecXu j$Ol~!ɷo O_2( 1r01|x <n=/;(387 y1~n=# 2 Otl0P>ȥC Jwϗ8>} [TR*r6{eatU1͡v/3?wÒACCܹ  @`AD=V ,`LHa@`50|d*0|1ppp0pqqQ1 3X=3pA @p뙁 ASSAHHL,zLd/P?P3B X] JR @ 1Ā߿@12(]?,( . $ !@@Bf9 ?` A@! J fcc&>eF %B<G 1#RPFdA—8/$\ @3  #>x\&n0 px#`vƂ⃅/  y [Yw}WB-n .Iaio@!T>~7X@=~?6A \ @ `éOxIQ6"G2O1\Ku/뚐W UH/8021c\#!=0sߏ ώ3S ^ rpWwvFA,a4hƶ4}?=\_n0badfa6fO9?$8bo`2~Az ?>J4?IENDB`PK pH1nuvola/22x22/apps/kiten.pngUT fA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb?-@11KjjÁU~ ,,/FF&0 ̬RlljBBB"R*BBB~ۇw O>}@,ǥ?~?/h7̟?Դmյeee9ED00]3fEu%ssǎll88ٹ%-Mfsp]?&` 3 Ḿ| bc Qvrrz1_ < bbb ""B`acO5+++@VP܃?} g ߿&++;;; (hjeûw << ?~⋻ "?~3gf{&A m20>| XP 0𣡎08A*g`/acm  t 29Am cC-P73\.`FPdcWVF`8\ @LXUrq10߾r*Vg?+h pfiF`d26;%២?8=@ ៚=} ONe Dtf@S0;"GGs+FAA6C#.ƞ 8`=#  _3 ߾a("X89YAT!~ V} HF>E&Ydeq6@O`gH  X8d+ { Pn|Õ+.\ƍkO?~۷o_||} @,_iff!t+\\@W]#A=铗ܹu˗/ o+PT4={{Ӧ :^")@MD[UUZBBFV`?nݺ+޽wǏg\@@1@ ?~drYXXYXyE` `@?TMH {I1IENDB`PK fE1% nuvola/22x22/apps/kjobviewer.pngUT }bAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb 6k+ZIHJ* 2%+`g`9r)wuUyϞ=_|ɓ@mJUwwMAAa|| || c8{#' _b4`0%0_/_6^~a_߾>y8{qlff^[())x 7n.6>^>N^.VF^\< 32}\^cgسgm$; 0Cq)8.z_8X꯵ I kd!pVj/p!duHqҕ3Z vP@,bb@|珟 ?>}fxgbLLLd́p2s03زi100K1 0/{_ _q2l 4zIC‚ 1l#@ɗ X.{M`fae`b`͠!8 `E 3020p1;In`gϟ~0|?89~pk3$+33$0ebcL@10/"#;01o&ρg fM欟  ZjpI@e>e026gOǏ ߾}@,޽c`ȠT^x$Xq̰~:`~b&KPO> bd, ee ZZ ǟ]]133 @H`Xbw,7J`6?,>z`HCN ++'SڴiF`g$|!a A|/ 33#(5IENDB`PK LN1: nuvola/22x22/apps/kjots.pngUT pmA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?2`d?@!屺c%98˖S8kA)տ}c` @, 0Ao51g]uc|WG ?3(wG T Pcq7IJ`p/@6wn5vl/aۜAM%Ӗ_/y?wyw@jQGf30|f^2/ח|T#3=v棯^Dc`` _^#7?쿾3Ȱ}Æ?O.:'?@eC0忿ah~C*_~eEAo ;1qУq ,@Y /dcغ.CW1@0 V& `L<{%+FP@ 2 zÏ@)?p. t8D30]e`Xss ;D`Rg?&~^. DP!X *!+`Y~Ah@y?>\ pCMBX rR ú <$2L;@!j(fF$y {AM}ALj&B c+hOw0B}k $ Pv{CP#;P鴅 C18/RHR:%7`g"1.A j00|TPBXdG2 XP"v (֍$7`3$|s0πb0_F`ea` PX4  Ya?Q*pS&F)/@g!p ߿zS?`f@ p1߿430]8'0+Pl ?f L.AH7XBp03j2xh)FFRCdc/+a&X .޺zV?V H?9 `ia2O3 V11*1gգ04 t0~zhCc IENDB`PK pH1Ujnuvola/22x22/apps/klettres.pngUT fAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?-@11YYX`! & ;0$??.1_}@~X25344vPVR36R <`7NHL)Ill ~,_ٍ8c`g/.c,! 4 '66 L@cP{Ŝ XqY)?F 1p `q`#+33#?q1@?OF_@qbab_-(6 9~~ @L+ 2d Yr  @43 hf0@`D3ف٘` H0h++'hk ϟ L߾1~/ T v I@ YE%3/; ׯNpvg_rׯWXYRF!!1??={@,]4/9`a @  πE[:qɓ/_vOį;(.pӑSbP,c_U?A?]}۷>۷3@. 5A7(xQPPl\l ,,L0}%PC`,A iU,"vDIENDB`PK fE1%nuvola/22x22/apps/klpq.pngUT }bAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb 6k+ZIHJ* 2%+`g`9r)wuUyϞ=_|ɓ@mJUwwMAAa|| || c8{#' _b4`0%0_/_6^~a_߾>y8{qlff^[())x 7n.6>^>N^.VF^\< 32}\^cgسgm$; 0Cq)8.z_8X꯵ I kd!pVj/p!duHqҕ3Z vP@,bb@|珟 ?>}fxgbLLLd́p2s03زi100K1 0/{_ _q2l 4zIC‚ 1l#@ɗ X.{M`fae`b`͠!8 `E 3020p1;In`gϟ~0|?89~pk3$+33$0ebcL@10/"#;01o&ρg fM欟  ZjpI@e>e026gOǏ ߾}@,޽c`ȠT^x$Xq̰~:`~b&KPO> bd, ee ZZ ǟ]]133 @H`Xbw,7J`6?,>z`HCN ++'SڴiF`g$|!a A|/ 33#(5IENDB`PK IN1={nuvola/22x22/apps/kmag.pngUT jmAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb?-@GGGFFF&&&ffV^aa 5II)}6߼ql~VV߾}k0@1\ 2߿ LLz<Sax0p3a`va㦵nS  Anhjc(O8.<͠&-/x|88VX1. Djk/ o1(?dPvxRu7G' j;0X9(Lje0@  ޗc nlcPdÑ/G. +pZ\22: 6XO[ݟ[\Ѓ -d^ : ! _2dePbbnhh`hmiy ~xȈ J1|+`mU?? `dVUeTW20܆5 2|ťW{@Ty330|KS0ض57 Gx eK~Oy#\J6$ &--(##ݻ?wyu߾|YRkF?AV)Vͷd]<bb@/YXX`La@1H7%gOcJ ?[20‚  *qPhYSg30ƁYd[0~)1K)Zo 9xQ }?pd_-"hb@5fyљ) >!@Qd0#,9C &֒Y?$IENDB`PK pH1<_nuvola/22x22/apps/kmahjong.pngUT fA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb?2`dd`bdad`7ϴ L{N4/wVg O@ j@11@Åx ?ܜə,3a0%ϙ] }<[ @LAû?f320s00pq J@u@`F(hC@?3?,, w eea@ " Lm@ y|ط7<so{lds=U0`gq9--DU$ena`f` ,< +?eya <pͿ oX[Tsۧo0|z ϟ1a``d`y73so߿F\@t@_K}qws/SNYG0M.cg;s`|G30< @&wsy'#aKZɱg= ?LXYـ| Pj@`a)) PGϾB[ϰ1!IFwt.1}d``gdz6GlqﻸtSaf@a5ـXw ӷ-X`f,3395d`XT*a0PE!E -X_<"`%B |?3 Fg`ɇh gBa/4>`X` .9 0 6`b0X ?3IHE V@1aH?AeY 0 C!ſoV\ @,X ce_V@$Ux?^bd| LҲ"-4U992"# #b ӅyЍ]]JIENDB`PK pH1܇nuvola/22x22/apps/kmail.pngUT ނfAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?,dc``Q|=Wׯw  e7ÏƪS_0022 &,ׯ <^˖ueP 3߿*7 3LaPW`93jɫ21:/-bk\h 62KVMڰkߌ `aPdۀϟ>~d`x nn\ևwvv?0  FPDy{F`P5ζ+?ce`@AZ75_N2w;'3, ~bb"Sgk%)!?H 0H_?1|칷 ^b`bwIm^4@,pǑh/ 3B?ûw_|`x˗o>| 4 ÷BÝ6WT 3l0+J`A$'>};O^2<{ ?Z`nː/p/IsO6+s d&@ VTR74/a_eec/( %@}Ǡ"ː T#% !{>{NL֌@f`bbcaedce *-ɐ . I0Wj $AfϞ>?Ʃkpo_0\_xx889Y`b`0-YAYL-@LexxU |>%2 .~mw>1| %P\``k#42G2( X/  @`+ZYI ;(lTTp{nfm!/@ I۠YĠ'r挴#',O.^t3aN&f&bPd38I2(?hf t50d4 '=&+@o~.-(7žC @5 @l070=3>   d 4 D%KN=Cnm]]i5@|?q3 '@ L, ʎ@2P+;  W>3\x; Ǐ)+}痾|#/ C 9?cx|#Õ Μݻ[W^3Ǘ@#O``DehȂacxyÃρ]w̅x+B"04%6˳rx\ӥΞKn޼;@] _\5@c>>-hY)SdZyٿπ4mtpRIENDB`PK t91]:: nuvola/22x22/apps/kmaillight.pngUT gUA}PQux PNG  IHDRĴl;bKGD pHYs  tIME  'GqIDATx͔]h\Ewd&5d,kLR%/@Ah_~ؗRMHT DS[?04٤n׽{fnۘ_̜fΜ3D͑ -fs4/^5tͣzDlzz9Ϸ,_n81_zaPSʹeq\|cǾKof855jrRsyQq̆z7 Ѵl7?z)qH]0$m>$ށ#GCᤵ-ARRTPhH$AB`o_2Ax HSO®7.^CA1Qk(Mx. "a=) 7I|@;!B!3;UTH)!`67 (j hi!6>س x]핗;;c%ڛԝ :%D#0!8.@j8(fq,We֨]J@,??`Cbb0jɥYX ?,@G0p$&'1 (ӦeXx*s#@1hk2HJ*0͙+Ћa^㇏|_]kMv4Plot ãGw>xXHWJFFw ~b`AK]+PcPRR`e;P;õk.?xp0n2;;2 ZZ@oͷǯ3j" *ok35 JC`zٲ5@G=<+t̑ADD X~蠨bkn˵W" |\bd'0Y`gg [XXx2223tww?!@1IKKIj3ʊ3pp0|G7雁 ·`8u4е\ >|Z.\8 ..$@1ݻѣ  3#oya{o>dd 6;ï?%v\x+F | 0~>>g1\z%Г_Ν7mmރ_<+hkc~g?܂ < n.&i^O2|#^~  7/\8;P ƀp&%K77-Bl@/Kv?GHX1H 3)0|F3>}L]rn0}| X@e000+((T{ r#'õ$X=/'+?3Û/.]}L * a|+g eibї/\YMM݁Oq= }}.ZxKPCF 6mxܹ%%_| _{;f> @ȈĶ#)f ×]rO;w뿋K}# ɩefVf8|<ýGo61}_@,<\98ـ6X v g`g SX8{*W?>o`3A]΀wn_ Zs ``̡ X^0Y7`X2A  ` 8cGW@`#'o rb|a.8!ï '3pb+n.vl3o@,/>r9ə@CX eDD0)00Amb:/nv^aYwH w 7'AƿL#$_ 10$tFx021pw!@ cPfbPPX H hV 0!IENDB`PK pH1ݜk88nuvola/22x22/apps/kmines.pngUT ҂fAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?tFFd3P?A +g'kܻ~խ3`€ b 5EBB8\lJv Z1 `F,xl$r/383oP#6 MZ@ ~Ŀ/T?6 D|Jc` 4 0H77r" o0ݹ' g~0k*҅ F  . D @`r03g`ᝪ ógX\a/90<0]RX@``c*(𞇗ATU+A^^_10̽ &\Zr߿ f\\?9y>fAqĄYqqb![#**O?8 d`ce Aׯ_ 2))+$ZX[[ 3|e=+33 "Yl0n ;;;ϟ _adK0;?|?_lp`۷ܸuo?|`ab`fec`w, ?+ ?fALMRʗ/ݻ/o<<@bS@@^%޼y4!""J || ~a0H~3/o^1|xx(Ï޼~pS.9svY<@=UyCMCl1X Nv`ؿ l |& ?~f{Ínx ̭Ɵ??`^^77WW;~A`8R(UroO~%3g_0\p >o@#o` uoss+~`20KXF~ 0E| /ew íw8ѣG߿F݃cEEU_kk:Wc%%F^~>>^`fx5{Onz KN<{잏_qߣ@ @O*ACC_T\a;^{o>{Zb6*\S | CAN&2IENDB`PK QsH13_nuvola/22x22/apps/kmix.pngUT zfAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<!IDATxb?-@1*K176 qI!!,feeceo;w3g4<׻ a###@Zad^)//W ͋>EX.R} &$Sc^^` jff R@ Ə>adaaf0@p~k/_>0|?0C7<zsڮY@jH0? uu??0aPTQa/c緷sr(@1&&?utt̾~+PdcII16OO-5u|l%P&&ViB5g1~y q O>c'333#08؀F"0^>2{NJ<'Txdſ2__Wݦk2{h(82pss20+$)GPX߀*^ +[ӟ? ?cad(h̟qUA+3åKWXX)f-AAEQ|{wGL XC,"$t$55XXe'Ö=` P/3+vvfV6ni޲0s(KnnrV `@\&5VKnÄ 2× " /^</F.>Ia >L 8x2;|%Ë np2{; }w<gKAׯ@3#03g'ӿ??/@<){>y;f NXv`/PoS/_}`e ΍ >0}._>?WLR?| @LK?>20eej oLx `а28@t?u޽G+KO<{+n);6%= uׯ0(1K _1ܻ{klR]{rU͋@'[/Һ =@ =og̉B ,A?p֍' l$>8i56>{'m* @.?N:ݻךՀ~Fwׯ3|*ߗv 1`gbLmׯ_+03prr1,^qI&v&~Y_~Ϗ^00sD @ X|f~uUwwc))# B w⌿e`4(bdPrFΓS ?C-bz($Uܓ3%3Úh0+ s(P5'@11j~  K5e#)Т@'ctǷ2N <@)AXh@]_&Ə Y33020 ^U ~130}9{,M/ "R y2p <,HJ0d`0#"x@>ߟ@K}ue ?ɠ( #5&.6y5P%! Nha _$sT%ٟ S007~* Lf0p!͸D4e"l5>3B __`1 㷏1> '//(a<PAOOߪT @}˗>?JKfy'Û/]bd``b`F33133Yed8lmmty* fPHK1(țYYE+sKQ+=c``eL@o ) /klug?~<@̂ \\Hp/122<{ 4b.4@xcPpq&ba-ׯ>~CGZ NgPTffbx?kA_ h D m߱@1w ?~3?~wRW7bcdx+Ù3deXx>-3ĥ1l?yw !D|ɭo޼4WQ3O |\ #а_ ~f`xÑc0Č`c]OܔWRS`/ýku9DiDϿnpv fXWo}aAC-m?.z &+ WPbx#W`ftyMb0/Л0_vo/T4 й1~7 ; 9 @8 2~ ;._97ke}~~qXfaAʄ?oWO2\|嫳0Shw`6T@'i⩤%/&$?^y߾=T 247HS0p2(]]g H: hV.yaIENDB`PK XsH1$]F55nuvola/22x22/apps/kmplot.pngUT fAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@-jjjZȈP_0 @u@,W\}8iҤ4'b@53lܸAGǘAAA (H3i&&&~~͛7 u?~1Ȱ߿2 wV^7!!1,,`CYXbbiI@-@ 'F11z] (1. ?@    C\>D#`c[2|zl8_xS##rB5?nj ~dfmu+g^ ț` @Ao2ᇈ) r <x!I 6V|g0;;;;8B!4;'ss@ぁ &>~a \.2=zpq[ ``Z7^^3ܷׯ@98>g0@2Ap0 D 6 ={ D<0`ex .* 井skmFg"e7}bYYYL?~0~ݷ ΝbzA=(cITAxL!   ;vn `1`'?4 P!9/`8rr~9 >cae7@v1X!DF@|ẍ=ۉ ?.g𗃃 HB13MB,a$%,#+ZCw:&`~g+0i! j0t J㿁yA9e$30A 4pY }5N211(7;ˌTTgBft1@1a3d# W0Wr!C@ X9Dsr1 pP!&& ,, ((?rQ333s L6ʕ+/6l L*a.E(߃0A^FF>2 b`cccx="OOgz~??#@ ;C||ֶj#f`|ɓ@H3yh8#+++;;;Ï?~M-e&ؽ{מG<Gl7200<~<xxyxyDE88nݾĤhFadlۓ0|˗ ߾ǫW[\p!'K1#Cldlի']v߿? O<Z7@/(1-G_>~3?kj X`>mW@Wg`q eF@CC.$,`nn sv0|A =t##3/L n~O`x1''70A.'/'0"1Z**2 9ɓo߾a)r ,, t 'yk^{~}w9<g?~]xYYiWF?!7ϟ閑AWAA0>~3g.޿]``@Ν=tdx 8u_ p10L2}ʕ~x Hfz0̵..110so`D11|aά .U@B VrmGe%.P!** 67 ϸdIOZ ʰJ7bS ZZ`Wc89 ?eXlՉukWxJ &&NX%T+**:޽m۷϶&, @f5@`O5|IENDB`PK [sH1ԲCCnuvola/22x22/apps/knode.pngUT fA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 ``gggfe++ ógXXXD"%%#(ȯ"(( ),,(YYY^}ĺ?l?bj /l@lϷ@+@ iUX,IU]IENDB`PK pH1N nuvola/22x22/apps/knotes.pngUT rfAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`b FFRR߶{{O] 7}a`7fPbfx Ãg~ =#+ T{C.P O`ddaeSB%ۇׯ~zz~1ۿ _~1|gz/b˫𛗗W r*20|3o~ϫG?yכwᄑ_Ya-/`>ϼ,,>3 o3*2000#f`x |i d3k-'d  oݬǟ/^1჉>010~/(E8/sd`dt? B2DžbafҘAsj0?Pw X- ˃߁*>5LŌoX~~~( 57PY~bq?( Kp2 gcbWTD_H!cO _t'b{ #4   C>`vN6Fqyj (}h_(厏_6? 03ob(Ka bW~0~dwI-QA?\?PAbL %/b?&AHB3@ 3g럯 ^cx?( au;",ah/ fy1|+P`&|@h.}7Gb8d{Td&@ fef1v(!Y_ /@ ~?| K<|0Af`Ə<,l@0ch8(7psu+0hVW\3cfpdbbfbdbcac`edeeba`be;/W+oπ,E  yx CwIENDB`PK F1էnuvola/22x22/apps/knotify.pngUT *MdA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?2`g` I2NaxÝ7 8*`b`󛁁W &t' ,?*ibWaR@mB \ < il|_?b&Fe&6<++ P3NsS@AyXYURMw9VA??sytc?P `8wĀej? GV h /-I E2~acf8 O0@i0pi yy*\`;ϰ;~ef#ë_'AyJ"rb_3|fpO?!^ | >1eXp3o2 ,N)b3M_ ~;.j>>eȺ1 _ {_!|!@Kn?7(ff0`b*aߧ{ 3 0 ~*T!V_@+#(d`_ @Ŧ#3's2@3o1r@e{'z!4X躗Ϡ }f`Z PDkB-EfIENDB`PK = N1!nuvola/22x22/apps/kolourpaint.pngUT mA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?-@1A"@ YGYD3/ L d`3b`CI $ʪcŵh85] @L~fϿFj @L˗aaw}!)@1l 0e`"nӿŋ գEyy_]]eRys0|/3~xج}3p20N3?:&9VB:/Ç_da`g @ fzϟEDE++x` {a5nE9gdb31sԋ-;-bFv[O?鱶?rsY>10Hp30*s A>N'#Ix/]g!yZ^z @XGVS Ebs95K @Ã@AnFYa0c]|}3,0#0 C_~OG_7o ;0F -  #71  i+>>^5 X4Z!×/r6 vN1^W> 2\F 2 TLy   C[OϬ]Jba`=_dz좮qbxe -f`S7ff0d0dRXT EyV04;SA@,𗁓3¢%s$K3+`'bXg1ål ` ͣWMmW2EqNl5SY=:ov ߫^1|+ 3?_2L~!cYiaW?XѲ0w`ǘ& (_WD:o G;^p޿ 2̻İh/Ïg3} @ 20?ɡ۶`[^VFAŊA'/ n0w;[mA6s,h J nw =N[@I\~3<Oa[Ze3EYp@) SȒg @lXIENDB`PK t91 -nuvola/22x22/apps/konqsidebar_mediaplayer.pngUT gUA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<|IDATxb?-@1Ph{KJJM#**3 ##qǏe>~Ɛ~{5@3!3& k²¢{k֬߿/_*Af6111 :[k200l޼!::Ђ,a=?o>|x۷@d&@Lbeev Ջ޾}͛744ݻpswÇ7ڿc*@?ݻgddoUw ^ĜT&Ҍ g]y?o33˅< LLL@>pFЀ eZ L@Y/ q1xzz1Zk>}Nƍ@01[A^^Ά3 ׯ_ʱ3_cb 8 4 t EQwcFHTl{su@{ŹebZ)ڝ+ _K?#`Bj j`ay(elr k׮2ddtͬ hx?`bV`2$A常X! @I&_~1ׯ$mff`f z2&0& bB1fp>@h(%`>` 0\ r-HR "()`.&/(@z XEyVJ bAPP033;#ɍ`;@@ l{#''}////?"`f`~#*SpIENDB`PK HL1dJgnuvola/22x22/apps/konqueror.pngUT 8lAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<$IDATxbdpYπg``c`eab;() ᩭ睊ȧ)ϯWo}ؖCoo^].%~ q6Vhd7I ..}ΰa _1h<8a+@𗁅A-eKn'{v7\ 10h20g8y,ûO_A?e O\c{%+G,/@0222'}'0\;w%,@C0yfnn 1^3|ADZM XJ&1 Ocj7'02,+Ç R wXyy^r Y J785533 9&, ;KN !43,μY##)''.ꢢn `CgH9- **-9>+.' ߿BZZŒ{L\ف $8"\ae0Tc0 AF "\ =eXõK> XU;8XK sgd|ŘG` ɉpÅ_*x9#l ֦T/8@,::Z..\\c+yf``ge`P^d`o2037Ås> //pwc{ eRw.6av`&```cpGnS`spI]o0|da04dАb.KZn9 @ _]` -q=ϥ 2(21 4`90g]a8v.mx/7GJ:_]R y?뛆1I)c<,S_?eU ,c%;w@o_y%üec.\RS3/ͧbgg3..Pų ~02\4 \`5!`Mrӻ/a7wBr @,>axJ`"0<}aݚ/<=7RVPVc|ܫ7f\e:@1J2 2'$>^wtvZq(q533K<@ RR@ 4;CұcW_e4U + g.@1 e/_>?`IP`i/V,eo޼xӧ  ?^x|IENDB`PK L1Eoonuvola/22x22/apps/konquest.pngUT lAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11< +ß?O~3񓉟_ PK[7FAQ6/>;{б#G,ӡa0@1kh0011 ?%l`߿YUU;=TX9mT߾ݓn0@'ȥٿ~˗&Vufp3-gcb`aaUS}7Ϸ @`~!.''neeY& 3}g1d8y|;At,s:"89B۬Taw2(i38 ep,(723ö- 2 *J,j/4'`b쏉e#`| / LJ 61 AAPX!.ɌaʤI T%Oa3wL>-?3ppef`cc#ؒ_XYx30fg6bPaqc^Za;>}&/c39s# ^```' OD޽{hL_.KZ h 0p0|ps WO0\3@_}'LLx`dGQLD}?4@1o_>ܻ"SՋΒ7331HI203<+ Wncx$;w!Q`pq3OV`j{>P @̠xu~1k|eèz-ݟDXx$^1fv[2    .!# ˗ۏOW.>;3vPZg`__AfLk1Z| X~:߿o 3|zn/;'?_6F Οߤ~]O0偋"  Ü9NZ&?ן'01􃕑; : e`rv֩w]KXU__[\[_KPMLC/;ÿ? ~ #U3Éw}IJKp)i)irHd/#`|@ZɅ+A33#7?/R #*SmbQIENDB`PK }L1nuvola/22x22/apps/konsole.pngUT lA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1yJIIqFFF0fb&&( 20h:ff/_]n㊝;w5e}D~4? 7'+#?>b][ISOC?X #7G=Za0@$~cASVZTX[_Ba~C _f߿2 |n0@12``IUϗ^j~^zF:b< gx7Ͽ~fd|{weETex.z0O  FުA..>:b2¬ gd`aAAAA\ɀu2y~`bi;sP??~ H߿_˵,dsOͽ̥Y&o\O=>f Šd3wF!6_``|f0@1{'VrL _c`&fpeϞ2(r2hAZZil___ 2 VJtSpiglecdg`pEso2yʃG@9]FffЌ?~v{$Y8ٶUWߞ{j 28# 3Ώ b Ғjw1~eP` (!Lí ũ/QY G .0\b`cgdxDO(~/2'G800*  {>|{[l,eE^paſ "̂ /]dؾ#C$=#=?@eDE"+3xv {y dRf`ey%FYl'qP8/ ga $^]߽ X/ 70(n3g8? _`3/#Р?@4YYiA!)1̰d<bWz gd|-Úۿnnmɲ&`dxzV>^&9xx. O^d5Y0  92  6mt۱:P>[ ŵPbV š,l=>ͫ _@@! p%`f`eWP_ @fu@At"rIENDB`PK vL1w)nuvola/22x22/apps/kooka.pngUT lAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxbl`@Y&//>|yWyoX޽~ /_9 ߾}}j||j?c7Ï?޿~~>}ə33߽{yln Ƭ LLlYsӧ&&f+??/(ӧo.^<'t'`?exŷK.SUU@߀w/_-bcq6ӧwl0@1?}z?}0 rO\z(ׯ~߿dBH3}t`bյ* TL@Ç7_|WSSי߿ac ߿]rq?A/`sff# ãGL ӟ?P7ϟϟ 5L@%L;A/ 2#؂?~1} &2  R~ L->`S}W/  fkkK@1t1"==KCC+!ao\e76g;0 A k <9Ɏ ~J*ɊTGdzËle11p1201} nA߿=ztg@`K Kr sZ1n"p??0#[3231Ǡ$!.Tϯ&G _ l,LV(2u~~)`.F?2hj2.^ebbp`vaarC}}㓍WM<{$gS>fF~3c 06```ab`H4cbp&/`N=~"CII'wU⟠ NXeWvf~>N>Ę1 0y)bH1`ðnVw\ yx ' L0|AA?OEo 4a̅ ~ۧ _^ Б@ݤ 7߿O_5P>QG pqYX8̬j~/a7I NA2*b66 lĘ`Ƅ\#>IENDB`PK4tH1Ad49nuvola/22x22/apps/kopete.pngUT $fAxPQux T}Tu!61 p Lh&~`Hqc D/dt!A<|G*>~9{<㽽|;aUn|uyt93 +c:K+.XIVT8CJ*ȷݑ.`~Q, HX<ؖM7Jળ_ bمY ٖv3|Dl :;jYP)ԋwp_&8:)g pO%rHԠNI%|qYBܓRf)EŔqmzmƊч grEBa,r!W%,JiQ;up;iE投5jnfSjt!Ҏ3GGy}4JHE׳?d g7_RO7,kKa~UtbVHtT#ɕ^ꂱyx,Dׄ.a=wNMxڭAѺe|1XZsgr-dxb00ct5@?ta <7}Bia6!gs]v{L=ay(`0Wpr <n`}#O_Sgh@{ '# r[,g `& 5%l)95Vnl5UmAZt $EH8a$3+sw/Ɉk}Q\k,ᚶ*,_#dT%"'Aԫ-Q7q~= SU bP i%>`z_: w:Ob !K i#F3?,¥ԄJArB4}2u0^'_x!/D.3!WB,Mcz\Ŀ9nɯ)eGI"a¨ `I]je+1C-p+ŵUD:P-ӋOLeʷ5!ov9iZU.m]6vyLX)DQW= o{}ZAT ŧhn!QiFbsz2c鶜¾^^[̼=`4tNQw TŰmlwްM V '^W5'[Ѝ~|~ǹ X{_2 5ߧ1/"ZC{.b!C{j}1Jnȇ#㓽2i/1ҨmE[×{Ỵg"tÝb*?PK .tH1.%nuvola/22x22/apps/kopete_all_away.pngUT fAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11.^?~c` , \ vbZB<2l̜1O/?p hi  ` 7_8<ģ% 4 mČDY6=#ÿ77~]p{۹'۶^ݲٛ   ~00|`(e'?/@7ß" ~g?`\/#'3>|ׅMwe  `$Z0QGiBAIƿ__A @h:/nݸɐzqߣo s=d8@1lcb>bpW_H/ Xok5~#Qodl@0j-ӏ 30_B(;0$30%f.t+nb4V P~ T dCajEW'G ~cbSadyL3L\ LWPdr @"@03S,;#% @LIa0y@70QrӯG1pH%01B-!`/!Gݍǿ v"0,X@x#pd߉g]t> 0]@sa.bN`2e?ywp 22ܛb凎8]9 = +88MOc`(-y@яhVެ]{}9?h@S[/K_عȚ @Cρ i2o tn  0@~,\@K&f w1H 54TJDDHA>|`x%w4Y%$m:x ( ]\~ϟ?5‚d" _|ax 0ž3}lϟ]%zM"//uo <<<`C_~ aXYYlX Y ajscb050Ǐ ot파, p Si]dd0 Rr H-777"FÇ>b~#yyU?cc=APk@ ,BA)Ԅ@g`ؽi& b/TA.d0U C` o߾SWaaap5i 郫'N&,,e,''x@r JE0pD9h;onn:rF@ ƨ4k={fҤf]]%`0?åKn|^|:(} \D@F]gWYYT--eO1Xb}|❫W/|xy1?0}#0]wl@ܹsڵ w>}X9orO>& FZyD: s7^,X[IENDB`PK %tH1&nuvola/22x22/apps/kopete_some_away.pngUT fAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxb?-@11.^?~c` f`eaaaad׷^|z7}l@}o  e`d͖q0a4d`c``fa`G/o0rږO︱eϻGn  @ 20f`0<`){R?NM ~ b7No{v ̡@XA@``$jZVEt8f _?|w2٠ßL ,, ޮDc[Ƥ92 11 ;7led8#}C_302Dcc  }a!h&HWo#-xp g[!w37=c:oo) p / B20e`f2o$:/$?0$AO@W_dpurg`0 >aFW @InF.VFFDO001d`gedx' 0 <?Ebaffaf`746`:ʅ ,@nPsrcP6`ލK 882s'@zՌlL f/6 oNa`E m 2|y70- 'lgx `f!&! i`M ~;0ܡ(c l od?=b듮gpc`:#Љ h,Pt6#O 7iͽj'MW-#ýW`n" )Ӈ ߱ĀdW@#@<˭k?kTyͶqAS|* !fd12σ2Mn3o}R]6͞dPb!0န-'7+ߟ @,`Y\gF2: 77?<دi3߹7P߿?0{.(._|7`9up*afPG׻_Ѓow|>egb\ɿ 22?9@$`P y; 303%d@fu@O6CIENDB`PK !tH19iY(nuvola/22x22/apps/kopete_some_online.pngUT fAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11.^?~c` f`eaaaad׷^|z}l@}o  e`b͖v0a4d`e``b O cy åuǟys˞w00@2 @oae`X`xRȫE ;@@ڱ?Tvώ9h5 4(9 FFkLymy-~+ ~d*z#Ö;n^p}1yS5eLޗO]~~ 9JVVFa[`мc+? s0D2HI+2\h EX-D@-ë `Ts7dpwdd̰u Å+D10Wr\-f-^h @,|*:Fi0ʼn , %!Z* 2 og0>8 kt"@0303uy \@ L! ' 2/-pAދ r@~c Nb=vI? 2.4##M$X2HH>f`t B!A< n<oIJjOC8~6cx/> !6`6db,Wsџ 5:10>誷 G-@120(]vs0/~f7W.3@+rr=0h ?@1&%UU=Z:ӵ bo?8ͪ@@`J?0P#PGPՓo<3{`,(Yۓ O30~OO30]w1 0v#)G,[YO#иc q $FocCMf攫@A`00`,؁9C{0l]yW.10j8KCdf=0b&g)ïk p1XR ag`aO/_yxW `h(#xNlY9}7ԑ|~~8۝=_0W 9?#0.PCh8 >1H^`7Г O%S#<Y`^]Wx^IENDB`PK t919& nuvola/22x22/apps/korganizer.pngUT gUAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb?-@ l , |?\85t8:]̣oޜ3~M9_A' b`𻆃Ađ3 +<++9H_F ,jD~gVffqΣ?T&@`0DU} v017{d5~|S\ PI〮cdaɢm lR2 sp4903hr1pnï? M \َA_r1E~F;yb8 Y JߵhrX&`R8 92,p _3fo/_3|Ͽ ?_0̼p-v1wFf3ebb'8*Ccù`pq< G׮>6K30 1|z_F/Te}cpcCsvn'22x"dsÆOo2JfxO.f~ߌ ~aHgbgg@G31d  ܗ ny#-O1ee/3'3_F&~6~1@2K$ E~W3 gH e`@`;O}<%sW2J3zݧ ?01;Т+O2 G3ܻ^~ 7Ol`c ?b^nJ ~ ׯ~g7sO2\{p XX!@`9CÁxc=?'ݏ/]q=0bA?@f#*S+ILrIENDB`PK t919&%nuvola/22x22/apps/korganizer_todo.pngUT gUA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb?-@ l , |?\85t8:]̣oޜ3~M9_A' b`𻆃Ađ3 +<++9H_F ,jD~gVffqΣ?T&@`0DU} v017{d5~|S\ PI〮cdaɢm lR2 sp4903hr1pnï? M \َA_r1E~F;yb8 Y JߵhrX&`R8 92,p _3fo/_3|Ͽ ?_0̼p-v1wFf3ebb'8*Ccù`pq< G׮>6K30 1|z_F/Te}cpcCsvn'22x"dsÆOo2JfxO.f~ߌ ~aHgbgg@G31d  ܗ ny#-O1ee/3'3_F&~6~1@2K$ E~W3 gH e`@`;O}<%sW2J3zݧ ?01;Т+O2 G3ܻ^~ 7Ol`c ?b^nJ ~ ׯ~g7sO2\{p XX!@`9CÁxc=?'ݏ/]q=0bA?@f#*S+ILrIENDB`PK sL1wnuvola/22x22/apps/korn.pngUT lA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxb?-@12WD@ZZ4ol.\X~ϟ_ ߿e? ߿>}zw /`bVTVSSg`!!**(*--awddd2ϟ  >322 hXcbEEV:P ''ׇ~qǏ?@c0@1$:ʃ8  \ ‚ RRBbR^.߿,,`2 tx~6 d;NyJIJJrr 9~zl_Tϟ,p׃0??/r2|&>}C6 cn^**#`apsHPA\_EQQ5OݻO޿/`b.|v/ +7/X?pDZ ~EEE`$2 h*(hEɭP7bvr )QahK~|W`32 M@ﲳÝ, ǎ`Xz˗OX l/_|W@0H.'PBgkQ ˰ AEИu/;JBxlycB$1=_)iWXJ~Ȭϯ^1p?z7#+k76e @.Pg8>|xǐ 47Ë_>㇔0*w X𖕝ᝬ  2ܸ{ (3KKŋO v <ܼ/Pgm ߿Y^2|`s߁AÇwA h 2|$$Yl@ "*߿s1rq>A߼ ,?20"T؀Ga 8>>.%? Yη  ! nnoXg7ܾ}˗?Exyعq0|漻߼f)"7+02K3㈝}Mzn/@1r##(3'O.lwc`RRbejYP ,@W, 8F`20 ׯ/O=yr~ݻw1 ;0'2 \\ ndv6Ã/<Lnvzpړ?~<[47@1<`Y~SQ\\/'I__CV[['TL0ܹKO_y}ηofЀ_`6pAOp̭#'gidGnxޕoy[@L ?2,,@y?>=rB4`>X]IENDB`PK pL1q[iinuvola/22x22/apps/kpackage.pngUT lAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@yqjEecst,sNjo=$Za f < 7|faۭ 0`N[Y ~r< b^3T{Te*˪@^|W~ϯ?aB}fϞ2yUR'uX~gOLJ/}}31lp1@ VccXPhQU̱ /aPSb`Sfg``Z >o93N>ݰח0nv`ӿ# ,O810ga`aPgPґZ"'..v?_0$'훾ܥ@0Ug!݋7@CO0:)c`;AX$$?nyGfxUčШ naQZ?<ås 2pge7^^}p{潒 J _ s܍'K<ϟ? \ i `8{  3|# 0 3q3^q@## B Fa.-`Ƀ/ O|dy'!(0|z~j`ˁ11(G g>gp @l jȈ3 32FE@! 6`9?`0HPP< J0 ?9  dr56@Hk_x &&faL$(2 uX@!cfNoYV~   ,t-Ѐ!I& @p? ~+Kk| `? jā &6(3 dx^(cf\#)~aFqş ? [RP0A__/rsʫzi*)|~,,#՛G ^?2  xt?B2vA6"22o~yƣT+0 3BtjȢg@ ~Kʌ9IENDB`PK L1{jS++nuvola/22x22/apps/kpager.pngUT lAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 Șe?@+"!i!>230u̺aq$b ,L2 ``F F1AZAJbA790/ҜAF>|@ ,)VR]R럜|LL\ LL5;gX?@ f`O [Xs31_z+_30C,gffZ/0#_@32~23spea_O\%_3?!!1 a8* @ ӟ#k;v.ͣ9 1``baPggT,l`3DLЬ I۾Z ><S.߁ ,ـ1,Œb欧[VR z}nBR Y) $\_ a)#838L$?~ O 0LIENDB`PK mL1nuvola/22x22/apps/kpaint.pngUT ~lAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?-@1A"@ YGYD3/ L d`3b`CI $ʪcŵh85] @L~fϿFj @L˗aaw}!)@1l 0e`"nӿŋ գEyy_]]eRys0|/3~xج}3p20N3?:&9VB:/Ç_da`g @ fzϟEDE++x` {a5nE9gdb31sԋ-;-bFv[O?鱶?rsY>10Hp30*s A>N'#Ix/]g!yZ^z @XGVS Ebs95K @Ã@AnFYa0c]|}3,0#0 C_~OG_7o ;0F -  #71  i+>>^5 X4Z!×/r6 vN1^W> 2\F 2 TLy   C[OϬ]Jba`=_dz좮qbxe -f`S7ff0d0dRXT EyV04;SA@,𗁓3¢%s$K3+`'bXg1ål ` ͣWMmW2EqNl5SY=:ov ߫^1|+ 3?_2L~!cYiaW?XѲ0w`ǘ& (_WD:o G;^p޿ 2̻İh/Ïg3} @ 20?ɡ۶`[^VFAŊA'/ n0w;[mA6s,h J nw =N[@I\~3<Oa[Ze3EYp@) SȒg @lXIENDB`PK BN1yֈnuvola/22x22/apps/kpdf.pngUT \mA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 (add Q43 E2<",_~a1~q27ӫ?^{ozAԌ69 4;((^:7/(ĉO< ;/gU2&V~v GZB@? _f>P37P7Ï~Ġ&#% kVUxJ4KcK(=$n?.zW%>ɝVօ`?.2dt1L' 4 Po xeafcxׯ޳ 1K0|ݛ 7mbv`!$ 2h/(Q@~ 30330_w=zsb l r <@XXx$UN`8c' < ߁a @`g+b3 ߀ē{7Du^1q0w _3076d`Vd*0H G+@Xb| d l ߾~YPtHu=ie`>a`\6qda`aHLGAN,0R O sC (R@ `. $y9Er2A[a p~q)$`cg,r }E@1A 6~4o`x2q0 J1,U \,lBx197{"PsΜ2AAYg$`fhT3sMl034" 1+/O pPcR. xX1F{ iU@IENDB`PK jL1V nuvola/22x22/apps/kpilot.pngUT xlA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?-@111E>>>@CVjFVFFFO>,\p֭[?nYjDD쥋W޽ybkgbd fE  O< (d@ fbbf@q@a?W0|h"d6w_30*Z2f@ _?~3(12|ONVk2\AӜIm ?b < / ]g dmde(2O"Ï/@M8X>ԏw} 4 x7nb  0\pÿ?C7/P߿ ~%×?~ Ncbfa˹ 23&0  T] X Lo+2/`` FI ?㟧@ß2 1x/3ʶ0y2AbbBv`@\lx:êGT1A˄? CǿO ~>+ ?nex>Ù7ٛd~ax, ??f"^'2(-0}a㫩 l$LإN?:Ͱ _ v^ P ?1  Tg)#+<_?3|opY/8_ <<< \\ 'Ξd+(c@B?x]\(=aEMPhVh*9ybn0# >|`8|Hcb 4bF ɳ'`Q`l ^a3P^>>%_~b3_q//͊a0@!n/023{x5߾}H`ػwñcG44a|ApG_~31~e`gϠk~~n{{{.nV1+22wz11!p<@~ ]o߾ BB ll|@ﱃ?~|4h/Pq /w:MNNb   C߿3?{ 1I w/_[ мC n0ŀK1+fF$@|h"Ȇ[Uv6IENDB`PK gL1<<!nuvola/22x22/apps/kpovmodeler.pngUT rlAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @, 1/'6(3#_ 7ߟ?>W @KXoY'~6X@MB*NBR@bx˯kU1K @rM/z(P d EM_, >cíw}ƫm ʐ (%ne 6݇?9nI2L\P'?8Çsޞpeq20)-u5K8uAv^iN&vt 6?3HsI38H:0|z᳛ _\c5 ##oʿ<9x8]  , lvN&^v~~n~^N! ߀[ H2%,& Tl0@Mc d''+ clN+iAA6@8ظemY  l@WA@3rr2!jjn#/ rf^qINdQ|0b0;V6& t1b6ffK9e.?. e3 aqo@1'O̾66< @K3 #0y9X99YYdRƁ 3Ø`VF930gt3AZBˆ'0m/@30#VL+Md&@s L~p3pqgxxS+w;{M9VgDN7V[|Lul/DD2|f`afe0Sbе4dQf $(UJA60ϰr2pMN< AM6 ЍGjt%EYY_y 5UՓ+/0/`pS(gdL02#@0A4K1@c> zXZʉprsgff?ûד{/>];kw2~ 5 wM%,2DXyE 㿿0 t@w?{ĿVu@Ѭ0+<<IENDB`PK YL1L.  nuvola/22x22/apps/kppp.pngUT ZlAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1YQWoikl?Yٙ_]:5iԇ ;3333pss3 3zy8%C' \050pUb!`0;+{k}]6_Z:+Ο?@L,@ \ txʹg ^d}dM^>M|0988RRR~@L `@,?/00 fH_Zşid('ï_ -@32ŒQ߾}c~ӫn6̩jcgwc`8Π͠~b@|ĒV|ɓ?=oe)/ ?>15xg@ K@W #e)ƶKP소?,_b0Re(,wʊ几 H?@X_˿P ʈ-SWT|ù=Wl3q3]ocV!YaMv6߿3lӧO  d l*b㛪! O0|gP^P|ĄZ..z?Xf ++^(h3 / L!6mWRRÇ0Q/ e8n򇁟 A.faaax~ Ǐo 4A¢ܜ Hv4ßs22Ș0H 0‚ @/_]x 4(%xPBg'p+(Pf<(3@}w%'''A4g&H䘙 x̝dL$ u ߁" TF:u˫Wh(+@Z@?+ÿ6j?.={p‡A@,jQK*c L4>`X >d`bƪ"*V^7> @,?d2Ncx`u? \o3yk0D1 X@bx5>߿~C_l, gcx 3? h(_Hd3B2 X`)?v&h8B K @ Ȇ!@b5&}jo8#49L?R>^$a~pF  cF!B x/C]YbAL L>rh䀲60Bh¿`J X@33+ov(I r鯿P o\NrP f 1 O_uPdz  >'Y u"(SaTWa ̥@3?Alce60~6իaaA666@E7ą$YX>;/_0z/'''+VAAAF!!!`2t?柠br1;ݻ__vm=@14] t($ r777y+@Ev`Ab>9~z_; _~򾸸K)@PP c%npŅ@-o@1 1:(((H   dL sss} ߘ  dHϟ?mvĉI97U2&`PjȨNIENDB`PK qH15{nuvola/22x22/apps/krec.pngUT (fAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxb?-@2FF0T/a``+#c+ח/=r۷}_vb`xT/#TVaf Rw7w0\^aʕ7~:"4ܿH@WV*(*6اj30sq1_FffVV%mcǰ'20,@?Ķ V@9WWϯ_3k200x}ķti4õk d)@ [V\ACA+п?~00≠dPQTdWAr3^QTW 3~y&} ^s'0H`E?f4 lFnfbcc1'O8hrqq)w@ ff`?Hzs`F`$" #=|˗ j⪌vWW hx34ZjnN55$PK&ǃ >$?@d"66A >00#(A4?0}6 9q20p X1 Fq(Ä$10F+@@+Y6` @`?20\RHYT Пo {61p103p@iR0/[tX:$74%#? ;A@] , ^c`d1$v@, @@` DM 1T2/5@9<@1MXAȋaJ@ ,W@AP9{ %ВJ üI2\ -"^&`,`F/# .bM@m\Ђ ,C>zg`;L0I ѳ@a *@lh٦ #$X N wA+* n fuIENDB`PK pH1gnuvola/22x22/apps/kreversi.pngUT fAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<CIDATxb?-@F 01t1 Q Î@P&R]n*N<pĆ R\ l1g @/, r]1!q^ [X &A@h0#+O3 /MgPQJ@OjY3< &R&1_]c ^n QAO730|@,Ļ~['OFkx~}wy =@O#(U`Qcc:=_wO|\nݚw|aYͅ=΃@7F2?Aɻkگnn駰PY|k辿S5d30p2ca`x (k@Ga`Ay#10o)xe`0z ,#5Ì 00|pffj@` @8R/`f8t9ãf`b``zAAJ> o b3 ] YN c` ha6 +{~<TH3lgdb!`f0@!l`vH@û_#%(>ھ/!Q` ) 4? _lL7I1 yq%3A%%D4 Ne@eH1 TkJv8؈ɉq~~b0g"` -˘!k  ӟw@L"0FIENDB`PK <^=1'nuvola/22x22/apps/krfb.pngUT DZAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<:IDATxbdqKڋ 3񰰳s1 ++;+_ΣGw F~,ml,ro0(? ߾e ,L$%%\Fw Ǐp͛7/+xg 8 𛑁s/TUUD"0pݫo޾7b`ae// T 4?.📝 *Б=YĢ@_ wo r h;;` Fb\_@L_~fo>3|ԋ0HH h7O}ۗ= &.(&&s$@<{Hg?+ /^і`w-0l10*/H+ g`fPTTVw[ ?S7F?_D~ٳO/bl$°(^ 4?# 3#``Z͏ _fF/`by ,p2p=oi8X L?coo?2du` @ ،B4jK1?Я4 L [NbƠ;x׳/>yW/=}'Oz:е^(ļ]g'Jj_f_2z \lL ڪB v~a|h6î|m0ᕨ_nY f 27-L'ս::C YH MAGYQ, $*أ""*/C3ܽrC?:'2ܻy 傖6+7s AIGwoݶϟ?Y6)ӇOB/c``bTbɃ 2j ^^ Bl&+ yw>203H˩)[2(h3|&o[XAFQ݂A  /aen>&E _A a` @]dپ/? 020 m<>~E;-Mfff`Y_vq f@֊|I`3``$`y)z{'>fxF嫗oܸ=W~zʮ3(#ct n)df&=&Q>Ǐx+222+] ϠZ #3d`Sʕ_"GXJX{'}`PI`Eϟ_r?!`IcɔIENDB`PK qH1AGnuvola/22x22/apps/krita.pngUT 0fA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<3IDATxb.67c0a&/gT6NmMVf?Xd~10`dz_( v@lrl-00_L\y|,i7Nr_}g`y@ B^},p㫈ePQ`dŠ"bjd n20<{ & /Q'@10a fuoEϜUͯ#ɭ `bn&Q3[?~pD^5 2K&8D$l?Ӌ{ ʟt8^dXAZC!6BSXů*_=> tG.3?FЈ@77Vc #2`, o {.Êu%Bt?u{z}w?0 3qSR6w  m 0a _lݵ>X<߯ F`bf`aO[kx$͝]:  V w}ax%`Ơ LQnRBZ./YNI@13rE^}`+n̰ [+ A sN|גѐAFKUgׯ?g`ql0@Y (0*Q#UD##P<2?J) 5N l0}=߃G]{@gэa&Û[5(Z0 ex&#4'(Ywǿr@A O O0Iphc",$S' d/sz8¿E ׏gx'#g?k϶ __[MX3Çtf8(y41;zᭈÚ[^}[~_ @ϳ^sHZ0gxt/ c`` |?y72\ W}dT` LyϿ|Njv%}w?8/0Bz~2pcanŗ- @S>`&H80(h|_gn3118j{0<}AP@ n1){2|oj~r@!GxI#f! w?\cubPVWb_sA*3 ~{Ps ČDed̋|ʶq~bx00x0gkkkXw/{@ u##Қr61 > í7.apq@/е3;(°c`vgLWXyCJ3s{~v{ޮe @c#A ;x`; <&bw&] к '0_.D)sIENDB`PK qH1}?nuvola/22x22/apps/kruler.pngUT 6fA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   Ay7(z߮3f$PH":)i~wq2ֈbz`KPG+H|h ḣQIc%X{H@ 79hPP! X۠N䤇"haIJ;?Ï2_wBC( ;@@g[BD%j\@((8Vdg24̛xLٮp|kCm%4maf>Q\7bSR&/d hS)"H #C tM" !l{% D iHYQ9[V3+d8R9x@,Z_aЅ~``󞁛+X o  _|B䙿|d@ d3Çc _wLVa@=~@ 6H f#@006'{e_/k wX'6`W&/ 8`_4 U L _^ 4XǷ?X3Z00~1@ Pyba`.*AR _bPv;P'A ff``fBbsKf fXY? 0J`#Ý`M_A/ @`J3x@1*p321=N`B?`DKTȁaX/30= FZUMD hf0@|\qIENDB`PK qH1z4nuvola/22x22/apps/kscd.pngUT HfAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<EIDATxb?-@@跢A-}[/2L,) ~33[M &o__ڐZr" ?Z, |]'ddTSD^E?`0d ?3` zH~ 4$F 4o>k r|>tYC.?4W<@k@ ߿HQk<pg?_}⫪$!2M",uUXy~~dz[n\}{S{o YE'kUyϠ(n[~FW6KQ}?8@$_Pmd`Pzcz 77;`r`!`Ì3_30_41@031x*k?=Pcg OlW+` dbʦߘL [A @,?"?[^aC ?~c\l8.8#+`0'?O Ee+~oZ4k? SBՌ :/ t   i?`\ r^^~2iS]@21@|-Z#7 ^؀*ϐYi/9BH fl uu-]2>z\C.\Ԇ{͓~_?~Cg|aa-0@1H0Z*yrx!_ W2gO};n-HW#+#'y+%֐:Cs#5aaI.o?{կ;wvÇ/Q`Hi`]D FNFa?3530 E@6(|b`{_  o`IENDB`PK qH1•"nuvola/22x22/apps/kscreensaver.pngUT PfA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<kIDATxbliiabb߿ ] ?~ @vz*W-b e`ccc@,7gϞ1ppp0\s=kald> |!66!<<@&4 AXק =2p2"n*L]40ZrrX@,0[a~bbPQQaý{ /,)e6 @ < FFF ϟ?gfg8y$Ý;wja)7 yАAFFիW 7ofx ]]]/az `6 cx=00R'2a{adpqq;d@ ,H(Aapwwg{… `Clp>>>pp  r: "K@@AKK ,sNpJt X3,AdnݺgAAA߿3| /_ ҋbˆ<@2m4===0mPR Ȁ5k0pytxqxR td@H10?s,W)<<<(r$  ,"5nnna!?xx| AA9@f#;;\^lÇ`CJhDF`bP@,Ln#Ȼl -c-ܕ""r B`Àe1ûw@) }i2 }Dx^5s&Y ,*_sߏ޽k׮ FPd] t($0Ikjj 1d(gy板v_ @ ߁0@@ %$$dR,A.Aܹs(F &tP tb)@9Ad333Ƌ1 Pr(ׁp֭'a7A K% o~CjiIENDB`PK #qH1<_nuvola/22x22/apps/kshisen.pngUT bfAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb?2`dd`bdad`7ϴ L{N4/wVg O@ j@11@Åx ?ܜə,3a0%ϙ] }<[ @LAû?f320s00pq J@u@`F(hC@?3?,, w eea@ " Lm@ y|ط7<so{lds=U0`gq9--DU$ena`f` ,< +?eya <pͿ oX[Tsۧo0|z ϟ1a``d`y73so߿F\@t@_K}qws/SNYG0M.cg;s`|G30< @&wsy'#aKZɱg= ?LXYـ| Pj@`a)) PGϾB[ϰ1!IFwt.1}d``gdz6GlqﻸtSaf@a5ـXw ӷ-X`f,3395d`XT*a0PE!E -X_<"`%B |?3 Fg`ɇh gBa/4>`X` .9 0 6`b0X ?3IHE V@1aH?AeY 0 C!ſoV\ @,X ce_V@$Ux?^bd| LҲ"-4U992"# #b ӅyЍ]]JIENDB`PK 9N1?~lnuvola/22x22/apps/ksig.pngUT NmAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb?-@yDj90qp{|nU/3A $Z>%zѕ_f@ LPgH3ͻ|0Û[;><|$>TgxEX\lB_.dz9 o)/w}e_]_ b`xv 0\}f0@ W"cvG~g 7^9mP> &|)W!kzzuTi3õs!Ҋ0pA.=O/@1 lCߟ_S)^PW d@a5`k܏V߶?0ր$P``u],7f/KMP '@h1xPeVƵ@)qR  t ZU_}]dPIP/fdxrYCo%,V.W)UraBy Rȵx5uC48O_5oa6N7_ry+d]&-*"aHJE rsV A]33ⲅûk d(嘾l VkQibnz0ȋ@ZG[6n$hٕٴ$HQ'e°dubɶ*2U  3[Yn&d2ձdy}9s&L,OpBm`>G [#qB}bNBYE!-(*[rb!xn{{ϻkYg\}U3#)ӬCSz![ ͟sF(qnwW=zi`w[S6kkٵ{.%(uE8I윘C_ jOԘ~  =|xoc ]!c$O"Np,F?=H2~݁=e{235ײ=D'΀j'@@HHV??Ǯ[ O=VCg3uIT'b럛{1|֘ Q/ * [Ug';LDi/`ηӡa #g^?'y冯o;Y5;jMjS"qјok<+VyP0jFѭWk"|8^4ЧW;#ebzI 2UxlV;'sεB͂3R<+aY/ި4ctN_ >?TNNvtg[UP磚?Oy}+e!ʇ˯ ήf2j5E2, XӜk[ԉ"6*6kn)kC?_DqN^qbH>p,OU~7rΉwwFjҼ vd[Pµ@l-=̪ltϿ&n4jX(.M(q3Q?\U)(#'Jnn`vğ>+%G;ߛ @Rya@ ,bE PK SL1'nuvola/22x22/apps/ksnapshot.pngUT NlAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@L2e##O  ,0{AR7g@so455eH X,,,tݹ/&&RF H3"E effv`W._ʛADV? 5/ĕ04?^?ʰ)FFV/_030|?a=ß_~|𛉇Oh+ ;ÙB O|``H֐OP̙V@3];ß >fx &?  '˫a.=) X`/+?/} - *&OfV>1 2)00sbe|_\rLLD`pb ЇPp2-80X}ebHe 5IAO>1H@_A#411caa i /\G.' PgyL f~ F4e@ $4߿ðgVo_󛁕AƌL@\ !BgZx<=5TU际@5` @)ZPXu90X@|v6& fZ./?1pK21Ȳo-Nn`_!@aKA;`ed4ϟ _e`dx Ç?U~ L@r?P#RGa)`nJ\?×7{|x UWלy_ A^eexÉ ~$_0A!r÷Ԋ<^|tк%@*+XU1| , *h?wo >P Nb`eePSfx''@)@\t陸'P3(|NN<@ XYYs-cbfbx00L3zh?` +GQ@@RTT4JFFVQ]]MNLLLr`C@kx˧?߻wɣGxoV] @m`bк|888&Nxoڵ@ ~ ?a. Ơʲ~@/_ׯ? r/n&b1a ''w?@~u vv7nÜU(   p,?~ FP^=(f3wH_e0@}̲#IENDB`PK L1ouGnuvola/22x22/apps/ksplash.pngUT lAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxb?-@11#q s?\ UnY @,R}ف10j`=`r ?D_İ@0SOfb  Y?Blf``@w"_a5fA](hjgd o70ٰa_(f t"f`u ~b~AK?1b73wb^ e|)(Nb)(6:K~^b`x 4\ , O)1 PL P{va(n" a 7Ns1հ\@0Vd`8i%;A- y}ؕ !1@#4=,ᗼ;WA8ֳ +.9z/~6d8`beK X 3|b ,/?710w Yq1`E"8233gPa [D |d08/&Mfh.eF" tPI p_~3?8S WX_0<.ȩ@,Ifd8Ӈۿho` JSlc$?طR  ?~>0``dag7p/_fo? Xb `'=FHYJ 6P@Xـ-_ @,<,X1Xj5 # D?ada/EɝO~23@ †W>'˿_0LXX@ iUB$ZIENDB`PK L1yVX??nuvola/22x22/apps/ksysv.pngUT lA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?6PVV65??TX7nxl֬y{ p;;[g))Io~CكߗyăG%8Dmm] \׍7N;z7 _0dx./)/7FFFfNS  ӧ3G0d<~ x2AM?@t10~ =Ùs /1~Ơ_.f\22gh{ `!! g9{>p[Va 'Û00l6d8*&'X D@xH0026qgx!)/N%>0X @x0002>g) d`dyɠ  Yj2'Uo/4\8,cMu2C @x? J{^'@q @8} ZZZz1?$$$BCC988,={(|ڵ?O/@R&fkAffϟ-o> R3q01| P ffdx~02޿4t޼|~ NQo`=\~7BR?8 76oq""<  O~n6fPb?q{qE}a53?삒<,̒>fr~xǷ_/_|~wf? @`##&Rk"'p~2Z)FX30s3}N8tS>}f`b f*gUSbc'*v\(_ ļ~[2yu[ f'? ll " 쪲 * , f,ǃG@g߮;s9*/V! VAZ00-7 2z ~T15> @H3X#fh*' /\#! imb,:C d kaj8n_ŰkZgoG O w> tBs1# Yʪ(ql<MŰ|ū@ @,( ?fzٗn5b4 Aقp QVf`+>.>zo`fff 5P _&`I_g^zoPL%@MX dBA YJA|G`1 (9l}w=Ro+0bbv(͊o 3\̰o瑟w=Mp@ಂUE{ ,'+'.F~Nœ Tǯ|gwϿ@\t0.#ݹvIENDB`PK L1J}**nuvola/22x22/apps/kthememgr.pngUT lAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx ű 0@>R3B D2AZHaW66[JʨUZb_@ &we^ޏ=Vxp:Gm*ui  ,9y\ؕLX^<:3?>K/j όd@1\oFF&uV6V~Y ISqS{6.%jw1ARChח ﮟgx|d/=q}pk g @oFIjiۊ ʪ20s2 nyu/DՀA ïܹpWo<= @r 0 aFXXwyvRPC70Eʊ^}sƆe%1 0R  8j=KHRBCupf!֘FLMVyʅE XFFE |#N!P<A40Șew~2<ه 8s f&5.$y ~VAQ`gfi%B6+'ؤ8>9 t""0pAq FN`?``+0x:k9y8:1ks`:.0_ & ΢ %'ʝ/ [¶0xwϱ.߾Y 믶·ձ02=ٷY1YݍQ03"WT L*ΐd*8i`iՎ=xՕ_\Ʌ_o V02p) c  xԤEE$g;Ǘ&)@7 xiLVIENDB`PK L1s3suunuvola/22x22/apps/ktimer.pngUT lA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?8sif6D~e fANN}ם~nJc@f O`bx ! /q&-ͯ 1m T XH7T _Tް202{B*yY߿wߏ@s11r 0~ ĂF?~V ,ᕖe`cecx_WT}٥" cFbd`J 6ӛ C|'!🋅aKMoze|0 @c󬨶_h/UI6E9_5ecx#Õ_$5^|&+EЀ @g303iչRdzTABZd;Oebx%ïTó @Lp&&#*CHo e.n^ff&~~^ X8U|%x?d`aNmnf`҅@pxltܞ| xW @1030YXY40p2k10sA^BP1 7XNYw6C : fؾ ëWo1cl$"Ó=݁ 5On<&o`3gcWagt&de Mtx_`Iw2r3hi0cs;4'0f|R00'~A##-93lv ܒ r \ 22 ` 0% 2 ʑLL~x5Nlp]SA@Ah+XO_  ,@pE_뙀ҿ39pTBE% v66v>V ۟%@#yxn?' ϱc  W?30qr3|{r/@r7͍{V71&/0&+633 CvӇO.=!0}7@7޹| ]e_ A3(no`=]T?~ٻ%H@!rçh<| Ͽb o߾ 3Ǐaw[72\8%(ɫ_L[a?@! F.P&X93`Ʊ0@Wccx0I~gư(Úڤc^(pVV<h8cvdkG\a,6e/>1j筠r @hC z/@, 㟮ak$##*/=t[/zZ1@a1 jfI`B} D9AAV `-BS:5IENDB`PK L1@=nuvola/22x22/apps/ktip.pngUT lAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ 4322T̄XxDxYYYC g0l}pP 9 df`^~g P8ϏXߒŗ<0vS,?s~ ?( oЄl0@1Ce û /30|gOb`xsÊ8#C!f@a >_/~g`!49 ?+`f`Š vA<0/Ѕ_> zK #i^Vh8@a#5zhWYx} 6 @kaO0\vM+Р_.ib`20į^`Lo`Fmxǰl/`B qT cA|`H10E ;0\u9a00tO_0Q?Dp^( c Љ ze`3 01P-MI nn5 > ħE ~i T@-P A Ke`h 7 #@ 9( V`/g8u^h#fy79*J@BTK_X*eg t_ op?q2 Ud``d?#(O03wFn1*65fFp?*i+``aa&߿ bV{:2 0 @b &3  BBjo߾j0@aȈ F.6vn&`7bV6.` L< |0Ç!. _ , ~fxÏ?A36 /]|mb$_?0|?|62zf^&&F7`U'#?>n 3J5 ^CIENDB`PK L1=nuvola/22x22/apps/ktouch.pngUT lA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?CfjÍ?~fo +*b}9^W R€6m@, _~300t Ҳr00g`İvW ;(@22@ r!?@'7͛n0|ܛ g_)]Ƕs<FliiZOOKǏ`[2|-BGu-/#9g F&fp0pqq1;wÖ-[p0/)P@BJ kR @% HN:JAْˌ=~؆+D"RDc|s>pH)@ L]<Pi!a E8Z$6dR> %\81DM7raNuY| J ||d? 3 Vf9 2 #Py7( N ׂ_c213#'/V@prr028I6珬/&o`/\ TtG^2|t?0@r@ A6/4h`R?0T`:;0Q9| 6d(Т_lଇl}'O9C WPk 2@!uЗׯ_ d~G6 n~Bd_9IENDB`PK PL1ABBnuvola/22x22/apps/kugar.pngUT HlAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\000110i ?*?-?03߿}ɃۮÎ[]_ ~B 4''CBE|T3,3;z__D^1)Φe7}8K0"@ |K20hoV>r[.?/Ƶ:| <s9o RF|V%ZE^=~p!A 9fVv=>an_4TTh]g`g p jfɱ] 9f;_ l eVI"x^?86 Ock~0|ՍMXh8P('C;k0C$wa(&~rSjcaj"F y0;e+Y&q8,!R;:N +.)+[&&o#*#S ϞfƠddƠfeAL.6~6) 1S2]g@K30I1pk1 80np#1+ <gxu77 WfPg_?0<|ã$tx$DYTxZ 4 Ffo2pg,/?epíS'^1s 7U:V wo߀0gbez @LB l(d~pN3 g; W\b` %01} Yܬ l쌜 ~1( SWƹ /e߿ F Og0ufTb0F6`&`7##@0 i1madQgyU?^3_QE?ed e?߿dxObz00f (k o}fx@1o7؁`b`ao~470\X2f8u;.ɏ z}/P(XN ?@/ X00ÿ_= nbX{mb?S5A@a ||(e ?0CB~3ʷ@u2oJ 10K%FuD~ Z< r  @h(/ù ŋf'_;_3`@,ͭ L02ܺo@ ߁?~0ea`gdY0 ]!_ dw` b 1\};@pi|QN*SV]//;fsO> L C|@o) H P-ßDl'i9r3~|HE5n|a 3Щ221軤Lq7@4ٻK}:yRX$10 X1!db!P5 PW@}g3s =~r*zgw_ (!3Р/bbe` t@+ß>|/,,?Q48;S'YC ^Nf0@1_~3x et?Π&_& A yVY:f0@1 20Jmg#'00{ `@$8h7w0A@AK_mνן{ d0@1ߖfb8pϗ\B~O?2| J l2 ПA?NVG?@I/0Yl\|@I @, 2 't> `J;iS 11b S`п/3(F=w_÷G`^;0Et;R ^}˰w& ?3>G gx)`d(,h= | nn o~23|b6Fv /á B, f _93by=0]7Uˇ>} l`XY>?7O Ġ&-`L(@H?f˃koA)koY9)@h&'0lYA 0D~]+  @{q0+0 2􋁙Yh 0PĀ OPq dAW ?\baZUAI yP 4 bMB0vðgb X?T#+@-@ - ~f a@,` @ JFl$ )/^10|x*e`x F`2SƃPfbah:PX s8 @F*7Рh`fT?ძ` >3|,'w@5F@ABpBJ '>F D4 [_9[@ Az;uO({C)@1 vme2koD~feaf-&W~}۷3?~<42@1 pr2|Eh<0x` =)U@1Ҫ20IENDB`PK aoG14355nuvola/22x22/apps/kview.pngUT /eA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`bsc`Ԋ/{7n޵m[y՜_1=ED#3Õk}xrbA r^1(xm~7>}~?| nj?^.F8%>o,hlf當ݍxW280+D誨01pf'{x9$}]Y\+?ǟo߿~b`'uJQT84h4Ï ?20H0\ta 5nb$)g= e`cex?>geȧ@ 10 aPA7k&KW27߫~ 2/'˯߿+!lŠ* 7.faf`>n6- вo?qTgP}3j3u XnuaկGOzaed%%PO8?P'_3<}p…AUW?3H 32zaJKQC@|ge`AVG&[]{ J y=`O9kUyeZ(L9o226x֩@C/R@13:0p{MuCe ǝG0 0]t gcx/0\uWBAJ\bߛ;23>rA vUD6ܧ_Mf J|{ ldƐ_ xًd0 ﷠ KSvk~1x v10c|'3g od316fp=/õ{ A;|h@VIS]EDIA)A+}7r(*1q3f05wm}b0IAD~1 0v61)${Ŕ5\[}fW1t!d ?. ߁+>g`!?Q@W0p01 PA h5;;ms?2|ca\hzYՂq󿬿|?Gwy2k*@ A 𓉁17fsVQdvAFn L gab`e`}ǥ˶o|to} @Sgİh03ϗ,<RfE \L_g7yf:%~f ?IFPDz=Í ᆱ10_g{ h/_q` @`Wlaf _-|In+_2'03,sQ:җ ^(#ϗsI  K1p8Մ[#-)Πߗ)ʰg/(;W} &37` oϐtP*(PI|B`zc`z&O?a&VEg1xW ,gk)L_31 6䊒fӒt_L$!)901&- 7p[O\}qu)@ 3/oᄚq}ecgKRUc~k*=}!Ɋ-30|?c%k~e@pa;Ï/?E? ```VI#3=n-E/=W2V=vgO岳2d`fg`rVU@11 0̙ N"IENDB`PK t91^TTnuvola/22x22/apps/kwin4.pngUT gUAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ sQ$]XAVbN>mUd&L ?2|! (~#@5b;ck73 Ϸi h0~j ;C] f312 |w` K0d's@ dggڤ(ʨg?+ ao(ʰQ o~ Ҭ@K8# PF-H8;6hh j) i0@$4TP]aG/ 0}0 3q@K|1 fi0@0gbڮb y}awN/B@1`pR (.P@ &d h" O3nppO< y!=@܌yISPP'U °}!f762 |zyE:ð($ЌvK@kTwaf| -9mAYë n}dN`caP0`1dH.b-=2,bD.V1  OV`X2sr3/`a咗Pz L!@G~°8 rgF0`3@`f@ yJ _?f~~c,#m`eA(BEE (Ǚ `fxdG:/zb4/4((kOڲû Kn9?W w{ i`́Y`*,K.e-I#+# 4102 0yH.-*ga@300 HbB1x=Rľ~gE6NA~L ol&#*S{ !IENDB`PK yL1wXk!nuvola/22x22/apps/kworldclock.pngUT lA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<=IDATxb?-@1e#(/&뿿12gb`O /Yb?Qtӿ @/3;_y(. XĴM+jx?':e[@6pFy -{ @D?PX22#P{ ğ7@A~ف1@11@)F&P0310@9hwb 1| c bgr_F XXY2~dAw zvbrE7/xx?3icQNއb>r10YED G".$] H 0A/5sHgw l_2(y1`X2~g. `&^22\a[6)`b8`b % p\_cV  @W~ V rrR c0L=J2 \oΞz&( T33@1102BT1ARP8'37^4/e F VV o޼g8x o~޸cs3|ASS? |߀obVm>lD2Ơ '`oop 1|sAŒAXD˗ ?~rf {2?`󙕁G3'70"73(_MUE``?e :@pspJ x`g_ ~|cs $??܇O x@<9{˺?e,?12LM *x& ~w ? 2\{r+| @,gD02d$$R?+8<;uA\SZPa;Ó',Τpd˚Wwvӽw' da?p*AG߾sV[i-й@o*R߻r=~Nciyu?L~X~ ޅN_ϕN' Hl&giW`ake)* 8|;ztCwfj9PCz"`&`a'3>4?;к V@LdzJIENDB`PK^=1›hnuvola/22x22/apps/kwrite.pngUT ބZA|PQux -mT??$@E )8M p;Z֣YEI{ʢO@VEvsOK@)[I"!9DӀmٛz7 rn!>2P/:%cEʜ܄|]; 1RQigA1,U|P׶9y P^X8+V 3H$>z3 j5'D'Y8V.Q2 oPäs |GG!Ic@ l$$ é;< WaAUiev4I 2ϽcJ\ == 9+x-m`26el 9 &b6oB yٷ(s<*֬Jr0WEZ 9^(s@6ija/pܜCDW1x pLؐiy :h!A0 K!n % Ɵ܅}^r@_L rTAe8/td`y(e?zPZvm\^H]XR /N!g䏴Q5L&rX.\y63[El.5dgS.WX1gnYjk&iӫ2S1pO9Ps]M8v9L;n:/f(bH|š.ǽf9;i 9BMAyEHll괫\]V(d"V wCxnfZ_9;Vp?O׶r`V^#Q?)p?$gu6l4m\Ng<]_kJ)p/y3Ylo@_ZxVnK\;7 {i';iĖHC)xUZ\k=,hI()Kuj-S{ŭT.R $ڟ2q5]V-Gk-%۹X/{m>ftިNJJ!zyޞ鐍 'f\8{dF&g/H-%Q!I Z=}*D)>d\RK.F-5\W`/X n \iB +sTd !3:rN YrQ*\uՒ!z??u}}Q![-(֭AP(f\|n^n0U*v;Ĺ](Q,W0>Bƣ;b}1J׎\=޷ȴQciIN+IbN̿uX;'kp$8Y{ɝnBU760dpS b_Tcrt,[M J$Wk$(}w߫rkECQ]=RvnYPK L1aЯnuvola/22x22/apps/kxkb.pngUT lAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@=< ߿@> LL= `y66?ظqY77 (6{|?~2 ad+'333AAJJT}3g= _ &EE C^^n|ưs~{2|a ~h#f+mmuf}yw1@rqq0<{W^l@2 @rqYA@ &NN60*3֭ @y5@6`81 A ;&`l 4E@233iL cZn@ 2$F3ٳ<$i@ K0;50H@ ds- ld(A. @(.E;; (] łaC"?H:Bq16@ @ KRD:Ȍ\ @(A2R1} Br1`Hv1H/$ rD~m(@V` O @H9deE{ Y 4_ f@ -yy9Y ={p}D < ϙĂ%^KĖuqǏ;;P#nׯߺR%FF6k`Yم o`ͯ@|?~ JC6`H|p~> FX쳱q@h0rn0z{ h aZjvIENDB`PK L1]{$nuvola/22x22/apps/laptop_battery.pngUT lAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbA -wrw=O @Kϯ fSٰ@5EЈ o|`лT//׿@ 4672~ !u@--}_]  6?P Hś cx,SWៜ_9%a)))iAaE\< >ݻ~"q @,` Y2}pU`h 1~? o21p+#' Z|4e5`by[8?1>AF?AFW o~0|Û, 2|z%379D>~| $1yzᛰ 0? 7 00\{_ B* /4k3O?$,^|;W`6?h`4-:pOWO?1<{0dԁf  | 2F`B " 4' >a}=`^0@udaVP%l0?<$@18rx~&Ooha`8  4/?~3} **..1AQљAEō  (k(П@~  ?~1.&.>%d`bF ?  %=x6…߾UY",(((. 2,D+%  Y 3 y322H 46"&% ʭ  EAdbbSVֳTPTg7"=Р >{񣫯_?8˛|T A Uxxm4<յ,>|W^xtק2P-P@ K6` [8YXT~ȿ/pi2cxIENDB`PK L1  #nuvola/22x22/apps/laptop_pcmcia.pngUT lAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11#cbe`{ϟXDETxxuvڸ Ӏqz X@Ao%XY*00PSUdaf`gbgc8we0@ppYXXU++ K  O p3#à w_32DdPQS8sA"$$Twb`xo ~3#7NF/ }db``Vb`{<`ƨ`,Ah7@3Í Oex7ߌ &߿ۄ`bzwo_3adf"`10|6\f`Xuñ_^>?a1~~ap @L=;2|`p|zCEJ0bx?f^Qa ~~tyx֓~1_?0<_3002?է? *#%- ! , $4 @=}/ ՗ @׿ ))%Ȫl0'00?'obbffy ?0맟10 ?@/{oD9YX 0ÿA@L?>b=@:wy`b`g -/2V L%ǏW>{ $;_3ΠA g}_ |?3qs2ppY3(H8~+[ h9vv' |'f; b|3( f!$?3 `Vuu-;[3wd߸,ܹϜ`sO]$y,Ծ be?Ë Aa LI߁>cII13oი댗0D*`/6c<=xcPcb YKHFS2zy~cjh]A*`_@xX\'B\6[QVVo߾VOSSt7TWWeK% \\| ߾}fx 4͛7@-IENDB`PK L1snuvola/22x22/apps/licq.pngUT lAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<HIDATxbd"Y9 obAfnC {b3 !..Y)Jwߥ4 L6qi +oy|{g/ϣ t^!ČEB#æ; !AN[jj O^?cx+bfϰb0A#~ +|v17#.ܟ1u 3 fb%B2w`)ÛO9323Gp[]F Ww٧:'@`wA|{s[ Y)2 4'? ف./뺯  AA@FJ7~6hybf`fK]7\; "ɂ[FS ?ľ00002f`8? s0[1;k0\y}ƻ x <}n(xkN/?Ç Glg?C+0hy~1J3H2?/f _bxwó~dwGE'X%×%?dp~ ,@%_  @pHo(@1[o~ }b ?g;EN~ I bn3e_߀< `qן 2Zb(A) ɜ :߹q*\Aû[t~3,Yb)G 0F013]2u м8P(Ugx^+;Çk7u2]Ha ߋ1;1ps11 : ,L, ^ K|d0@\P8ŵ+4 ӗ _bz o^0| A.ħ Wߝa୔gP#/÷>fz ?gie6aa?2d}aO &) R '`0(~bgx ?mɍ)c0h}~jb1_2q3|S`!42}XZ1  E dce/ ?e dg`LA30~ΰ>`g-.wB/ۜ&sc @\?2 Y3% bzL@;2t`@qL@Ù3\g`L @̃8BGl 7S_ oX$p0\gHaP0<UKҸ  F,b"@C$x1|d$&k2`b!% &w@|3 E2*0IENDB`PK L1nuvola/22x22/apps/locale.pngUT lAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<dIDATxb?:ӷo4$$8fϟJlf⌌2?y׍5Ol8͊?~|a@"z88FY̿Ґ4WTWWRSc`E]^>\hp/6_H(5[P0ÇO=}Y_N_D>`g`c``fe`':9DxE8 3 gd$b L <@ 4Oh8g #g2Z] @@Vg?X+q00J20x0082030 vC t `pa (l09G$z=?0pp00*00h10H  `+6`0#$$ &*3$.40 ؀XAa( @ r ÿoE~0<l @A\ 2|@a`c` 9f˘b?`x+÷O" W^a8!O +Ϟ?oby̲5y@>p5}avF`:L _bxç L R: 3b 7>n ? b/ہNdex×nxp;`ןؼ#3H 7 Fޗ I/b@_4fW9> {LvdJ>[2|d`&3!! @I?@ f71`fsg(+efd41o9xX`d 23fO&  7޿pӧ#@(;7S=l @`߿o!FEIO6 ,oeb /#O`Ơ,l* 7 P) ,9T& 4 LJ@3122@J  <+-?.LY/#@ ^>3ddZt/ȕ ߻} _9מ>vח Kty9˘򖦶6``f`fqbdyFOnZ~> 'O}! @ #2@`ttP o3cd4`eUi-|=}÷o^;.?0BS021\~!??ϟ?8qՃnA]t# +n狣CO°mۮ޽y:~8E7@x$ sR&=xϟ/>IBB;///^$0={ s)~0} , +&,@p/^)$$С"""Mvޙ>z8//e(pm8DyفNbbb~^^M ϟXUU-n@]-U_1ܾaÑ X^gx ? ll \ 39le~BB _~~.CNN \>bcțWv7 F Lܢ }AQnjAB53B o߾O4Qcݺ )) ܬ +3Ug0+Z/ ,= fl߿Nl߾-ׯ S%>~7Q>v 30< Jb< /?ePP11|/_~ݳg)ZN8񏋋n)f:b`t 2|ë *j@30~иo^{u}^^֭;8~3=roY?103013/nV&F-Mi`Rf3O~c@ OhllΠ`xA 3ZRs ggUgeͻw=hsY…˾/{+iJ2)P{?iʼKn>'O) ,VavsXUړօ׭; I"T5ouuu{d7<5|sppADL'v  b-@h )qIENDB`PK t91O nuvola/22x22/apps/mycomputer.pngUT gUAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<|IDATxb?-@ s}MMMDDD88XXYXXYYYYؘ_,^׮+3YboYn^Ǿ^<7#o~3d6d߿ P ~߿~̜a:&).vv6Vf@q ?2hiaڷo;;bg|BaW *  |@M@7/eE%uFFFQ Ą0J20pbKy Z  ^|gQb?/?z짪?_@ױ] 4h07D@ޫ_ bb| @(31}s11E)K}d`xr1{ 20| #'7z AŋWwXt.e% 0 Y3s11 q20].76iiGb00޿x :@C|\ L\ \| < h;0)OEyEͿQ  0exŗ>0] 02fed8 '$"8zr 4 EEeg/20+z %) v/~ o޽{v=uo߾] @(sp߻ )4ĸ=b8~áܽwgÇ322=}K`. ʟ>cT@1 P ⳓ`F"U?>}g`zɓ0HK3ưm `bF1 P _~fFԗ/_۷ _41eUųZǷO bDNi*uZ,,T?03p3 509~ WO3ӻp *^LLL ?}c```ePX_IiiY ^eSce 5@n@(wD\<%߾~g~!~`b7ç APAAY   &yye]sՏ/0p0+0hk*2hiJK km>iR{IĂ^(h[7_|_; 2yX*;w<W\:{So߾ wts`PyG8w|B/1n< G>{(Pb<BIVV. Z3V ?zK^pz!Ð0*3|(J29 ~6$@LH n /% #_@XDD]\KIa4lb Ûo_Xx Š h /×4GSEd&@11c`\ ~fpI ]Q1.VV`yß~ T')}7oÑ߿ ?= L>d; // . t_~. ?OjyAr130%@ @H3af*J?%F" 8~1 T8$Aƌ@C9S@6/0 #j݃; ?``ebfa8#`aZRZfL >Xh30Ā4$}kk25jŸ31 9 &vll`dt( L6  @Y B ~@-A!P%U ecbgl x@ rΕ+ v @ICYaQ`1]pN#܋ ǁI ?=+ ~|3 4X^^NAf$ׯ_Ikkk5 ~~~~#c! .999/DFF* bc 0<|HT * #@1" 곳_ 'NÕ@| f$}p-?}$6`́@ 24zP@\\@SSϟ?3y۷ ٙ9@~Ŀ5"!y`/++_RR?Pd   @O@7L~IENDB`PK N1wu9`nuvola/22x22/apps/network.pngUT ʟnA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0zm 30$'.c$-# f|7\|za?omcy:  2 1 ?xC; '+PP\0{+6jgrO~= @`අmSlpGSM!A6yaAx ĽSeyp?nfk_Fr&&~6&p/%o*v?͎q7?1--z_,0pq0pr0gad? exÇ K3;83On18OOZ o32÷~t.3"`2|g ێd81s-Wf 8AXZ6ob of8$+ 0L[/1<{7 >|*+5Ɲ Y L0|AYV`Z0rF?0HɈ1X0p 0|h00E%~`j͠&p-;0q3|@A,g:WtȠ(g6ƿ ?|fx f| @ v- J`gzAQ&# IŠ"CnGS+J^`_ּOà$NY'P *@3+#bfx?Cc̯/O 3 A t?`("T253/L{`fPNA^e@o&O}hlOB/`e@! f9A6K!2IQZK?Pe`bbcG?ݹGD ;9B8 3O\ 3HYHiX{ae_?L N301͒Vͤ"0/GG:NA?̬ }/_ 4b@X2 kh9h0|tķ HAY\XI/7facxAnXĿ`_iOO&FF&Ep..H103X~۷y3)IE>P+ p ~7@f@}NQIENDB`PK 7N1:Sggnuvola/22x22/apps/ooo_gulls.pngUT JmA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1N04Idfa1f`Bcd101L ?Y?At~b̌ 10_F_~&T{&5_`bfeaad730 $d_10,t'++PQ/ÿ/^~jYbl ^|`0+Ï ߀Ra ##0]^1 1K0zLoUPȿyޛA,add ӧ um _aPSQd6sH&7+ìz#[1[2ȩ2Kk2|Ao>NV`D@,ll .cx 0~|xʰml_03, * ?Kë/ ؁!`0q1 _ _9D1X30O=H 1g`Ȯc LoW`l=ߏ cd&%a^@ *`uA wv={x۷oo& Ph >|#77;?7PF\dw-I>2}e󚛁Cߏa]߮/b``} P]g p< /0+(1X00/UU Wa0rdhhn`/ep Jb?PL}= +-dc40<љa Vepptep!$Õ TRD@0[` /)mfؾ|>0gx)/ z8Ed.^8 P9m!;I L%s_>far;//8{3 !`J };lZ L edx9c<b̳\\ aɩ *ŀyR`aIfW`8g=+9  Q\ @ T\0H,A9A rSk]ck`C-eKi  `33K5@  Az@u >@fP* "d8@|Ԥ*t:\eB sX(H_/>&ˡWG>ac X5#P?ΆVKAqcezu]`#W@OqCB9Í /~:) ,WIENDB`PK 4N1;Dnuvola/22x22/apps/ooo_setup.pngUT DmAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<2IDATxY 1 $$$sCCCY ͔... (Rm.//>}4ƶh+W5x/_'JJJ `G bT nﹹDEEՁ)]4dp=g޿~?@WDD䧵5Ó'O} ((3'3%ڵk??~ `A6$0F"02ӏ <_3`!$ T00ƙի%($s32~dd' 3?_J3(ˑ_'ue(N<|P %H X %HϿI ޽N8j, Xh!pGN|@1C/ر=T?P)'0V>aڤk_7azL[.TSs/qwS`}'/}:p`ŷoM*uQ33K2FvFF5V߿~+?5*k@ IENDB`PK ;L1Ahnuvola/22x22/apps/opera.pngUT "lAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<:IDATxb?C## b& ǀDedtxyyN}|? wj>O  F|2YRmBCMDXdx1ýmn|w| @X fHKtTV2pJK3ܞ>a~\M+/ fq^] 3dp$@`.)yCB[30[aN[~of`p @(Gq%__=;-0(bhXēw55"Gm@ib) `* K6MKG׽{ ޜp*Y@0?~} w+..߾ Pi&ƘrUN]]o׮1pqR5_J=@G;߿3H+@`A󳵍bro~?zİСo0X Tr !A L~B޼a 4ߗ/  krLYzs`ؿ:zׯJ|ƅ0XBE7 @` 8%%>xh; 7/^dpq`Y 202 13: pffccxhG,n`h/ yӧ30*{e z0+74Xn` ^^S~~O2FP÷g.|(} r) x5䛷 ~ d j@W0~ҏ@j1 _AI\U30~@;;("~o,.%`Z. >}fx {XZg`F0_Xv-HŰ` R@ ?_304_!R.7ߗC] ,/Ÿ?K J ~[9ÿo3(䀑 Q̦ kPsN.9_rC1|( fbd@A2zg KXS [Xz {}[}7 ry4#Ói/&[1rs3K0{{ϟ-@cN# .Q_%'c_1pcMBo_211rpڼ~=7ʢb ,< /^\[М-He`Na P,- XX'0t,v>~_~`f40,\@ fR결$ &kpp*0s~_?ϗO4 `6hQJ m`gbd`0#|&-`Q4[/~1qIENDB`PK oD1T=``*nuvola/22x22/apps/package_applications.pngUT ]aAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1.7p? &fb~~㪟62 XLl4Cӄ??@M fҿ01Ɂ,``b`eed˛<2 X>}gk>, r hphA F#PZyFYAPK~F&&"Cd? { @@zEcpu-M`12FA$(b@8ag`bzo/?0| nnv 1 Q@,6bsA ȿ Ob5/7''0(/& 3 0 ?@a ޽̰uiIq!/S>~N M?0|?swAwY{Y3?w??@ԃfSf gb= Ç.3(IJ0+30< ,SEy긪4Aa^b%p>~ext%68cx3@|Uۄ7  5 d(0)Gb`be``J@\?<>1}b`8 5SJL!LAgQ~H\K^1,|a# ?} c )V6)&7f1?d98 #&~ ?l99<x9+ùo #bdfcxu?C;fe`!*=d#PI[OWb+ R Ra !L@]"@Œ —aʠ 4 }pW  G??& \ #WQr>Tj&4\B nu38e/w @B ϊ K#a,"ߺs>) <߄d#knWR< c2 U0"V\W{M'| ̑=@7ӿ1P/Xh#^c)RʥYX(hrWoq'NE@-'a 0hX"L{z @  7Y HUW/IENDB`PK wD18{jj)nuvola/22x22/apps/package_development.pngUT ]aA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?6###@?~:ikIJHg׏߿_~}Ĉ1[EJZ-4"*֖_ ^b<~k9Sϝ=[4Viija 3#KM]] g`ace`afb.nnQQQ+WZe֭ɿ~z3 X`  U43XK/_;ów~;w֧O ٜ@@c@d2/_b`eacfx$au޺ TxC21;ȣ H `?0(@o`_`)1X) Hsq\jO`~:= `_ ))yAAACBTA?c >dy5FJKCs @d~MMǷo_~p{۷}񧋣 Nfr  yw?؟"_]/V?~FL ?|f8y_`,ۺu[eSh1e`ef`x.4!IiEe/:񿥭󿴴HS'D~Vxr;HqF|t@sMWW E@;T&[p$2  @AM>p t9A]KY6ul`P#D9<K''X?AO#,Z"`PZKi_jWXC@Y%@5ACDRܛ ]^_Ka(:#@5AYx4DvzkKJjcg \B r3|ǼqW_8[?n2(;D1tN&"q``bFH i;g3X}TlSf@88+lexײxtO~y;5 ,?~c`dR 5Ɓÿ;=xwU. ?q3̼쟿?. @a13Ǟ!U#@ _x‰a@Qd0+0%q0ן?R?:   eIENDB`PK D1h%nuvola/22x22/apps/package_editors.pngUT ]aAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 VILe_o6&&fFF~311c/?,N8tΊvf{n01fcx`+bba_HLXWAPCh+/s1o, ?ViZmڰ~30a` r1@131 JXgpo yy>w/@O?r |<~.`f~4o6W'10 fF>C,z& d iY~? 230{Jcw4&4pDGGg>~gl=a@D,UU1H2p;L `E1 ߁~ +Y`!fB ?wZ wX} @, >/3oDd8~3ܿvCnFLd dv>o?hdU`S{6ì 3|Y+   ϠEQ%]h߷Od$~|g...v^^>^10<^ ajt0p0?RՒ?b|@, 3:㈗U9^=[/ pn4gBZ5[=xx@U@Rԫc_?/οEŀ1n%eNXd&Cp] ӓ W1|z`v=a 4<bb~.O>0| N go8tn9U 20p9@ bb7e`0 _f𕁁A\ZA]GaǪ f o]`ذapNX7vF&)le@0eȿ 8 SO30x2<:) 3I|vjb X\WO^yAT1zɕAAQAVSAIEAX~2 10l BH XRgo?󟍁耀`PPI_.fv4/[XX)mʪ tdqba @ z}gugbY4702s`),J@32cee--!SXl^O}V` ,XXcef`&Y@1[800sD @3TtwK 0gbegdf``fgg`b`df113=_ =U#2&|4E8(aڀ~PXBeV)@4yu]IENDB`PK D1>x5)nuvola/22x22/apps/package_edutainment.pngUT ]aAxPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<qIDATxbdf``Č R;ĤJd 0$3+Ǜ,(z X8001 ia_迿`_?20! ~(c`dcb+t,@ f׷??b` _ +O.2=a@5 ?0X&0'aL AA_AMP `U7O9^&v u@3b(g2A_!L݇!T×?_@q2j0dXf0p'((C_5Ci(_<b6 ]ooL >bm" Pq.1, Y@1Zt1("!1<2g )Π̨p9(g<ODEdʦ3|A@ 2 X89~?x~H1j0{Ι 71?q6'o_3}v7u6M?   `n3^МЧY9MzG/?Aq&l`` `|320S 3H+ afY+p3ig2L*/8Q0@^8 ds t7P# XDk ,<°pi&2\}i/п@h dS l3 X453 m80T71OP`D2 b_fpK.@a >8tWgbdT7$GJ , gbf8 Ͽq+@1 2}ء^rwsP30)1#_`& }ٿ21byƛ"%QQi4;r? ߾dt9&`0s2+0~eeAN|,mٻi+&?ȥǦx>;_SAZU_Ҋ~ Xv~ ~I"A|pÿ1`f?8m5%yY{i@}xz@'(uՈ1@)fa`4^D',.0sY}pU5KV-߿-@ b?`2'؅<+@ !Яe/etOFWŏ=>͏w> ͊3IENDB`PK 0sH1y55&nuvola/22x22/apps/package_favorite.pngUT P, Xei20D =zmc>Ovv'g` TnMy( P f&v0Yqryhnߛne ?Z2(@a5X(*W%y9}||_52(PyNaDD޹31] %1" , @-'1 @1Ҫ20\Qϳ]IENDB`PK D1M11#nuvola/22x22/apps/package_games.pngUT ^aAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@tuu{.w„ k|rYNIIAKˀׯ aXX>}pe1 P3ܢoo@ce7\ d?@, X~"wF ߰`df@?~Z (O-z { zS↯^Ƞ/f+ML&x鋊2{a]V^4|3,)sppiSSӨ\\\",,, z  nn~ --]/>۷>}_?_xwqqh,!! [?W//說F޼ysOoꨫTTp1z蹧 , =Ɓ˷OLO> ݁^ O>(B?~hee Tl]0 qpam?&p9~3H>gMl p.bdS`YXXҜ|>~dp (/ؿp220 r(I.YOOׯ [V1|Te ƽّK LL̜6ɇ"O대;cV666hM|`A}}w/^0| ~{/Cr߁r۷` rg (" .+ ,* r9#llM/X3 )bТ.<BIAPLAZB/#+1uϿ8_J:PfXr0@L!߾}cqwߟߡIh9 >zPoksp ?q @,h.e*Vbe (d E]a fbffaħo>$} LLLia@) :U6662ppp0|c011e)Cޠ/_<|V} d $$$4t 8A^ ? L9<< H?|PСC&?~@p6ڨ 7Q`Rch!3Ï_?n^>T.- `0]W2\vhP xt@߿DU%%|`x 8Û7^K P־4ӧ`AAO As@<FpP؁|@#/Е_obxu(/`a1@APW3ݻy`Xm}OPRPz! ~1Z8Š {k`x3R10 rn'O~:hx)<ew 9|`c:/PQޙ@#:@Za"Y4q]]SNF+W}5 `Kg󜜜obp5V,%9hڴ`f8LpV40"IENDB`PK D1&&??)nuvola/22x22/apps/package_games_board.pngUT  ^aA}PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?xyy1| g yGܸqΝ;3^ԃ_0 ,hXׯ_,,,***AvvvV"222 .]2:СCI@= @1###WJ _aشiC``ý{߿?(.  QUTTt`ڵ=zEWQokʕ~ , D60xhRY9t_QU8 UȍDx03|}\__ ^ _%K,/,,k?y0PEPp x |U^a p Aىa p! _~cghmm*m8B?  ^kdccc8p CSS=а ^ ||T"###3bAJb@闇@Ï]h;;;'73`df+/>} Ky\L`0U0())1f2D-P&t70L_ $" ? P@Y3DEA÷oXX<@?Af?A}-Css;0޾} 0emcؼy?0H8LoaHLf ?A d@.`{>8̰q1`bx=o. &. _?~3  %Y>II1`!_  103?vȱ /_Fw~AP s1@] Y; JJr` @dPCtT00'5˖_ ) `,nŋ{g̘lXd?1\z gN_Z䀿0?8vX=rVAS7=S/{wKu33ݵ[F}@(1lْǷ̄hon>fa&;6FV7^08~϶={۷o?@(etǺ%%%>|ˇ?|;?};mX?##㓚1zV+ @Ja a0Laaaaw>/?qb7WB ʣX98  x @( #ǎ;/ߺus70@e%  aD qEݟ?%(*}IENDB`PK 2N1}rr,nuvola/22x22/apps/package_games_strategy.pngUT @mAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?:HadGF>A)]} ai mz抇^^|_tsҚʦ:BrL,begc#+gܹp9€jw'gψc#+ïo ?321 jhh  bf 4Ï/b r12|}yӫ \ :Z@-2fV/]tǧ ll nՓ, l@c1@לf֠F⟿2*:}ʴ)av?=e:#6o_nܸ=:r9/Ê~_߿002pi3pKi.n1\t|͝^b3 ,$dhd+×׷]$<0ffbxt,('$",LA0010 vv"j  ߀? ܢj@2-`L. Mr =l󛁥; <" +';0f`fŖAk!$jאX%d8|g û'5 l@aMn fj߾y2 8?d`[f_/o` V>ʘ~3G Y1|kٱγt3krbx;':#?Fg  hA7 o`݃:IENDB`PK D1/(``&nuvola/22x22/apps/package_graphics.pngUT *^aAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@LL@? P$s2c` $ gf('@ &6bϟE:?Z A/÷oy}/; /_Q ղ/_: .,+xǾ?Yٹ4E}TX dK3`{5kOc#,!613ehOe(zIˉ}fd} ?ÆG _~2ذeڹ[N={ c0TyxzY6zz9TQJ+;ۇ ?׏3@f@ gdo{O6E!'.1d?ʙ1c1Sc``cdfge0{Ơ~ _uŘ8@d@ 翠[_ 2p3I1(G+1jː/`00|7f\g`XtAF/Ѝ b6;8E$d->>p w9 _`PW gwaǿ ^ * RZ`3~1XY0Hj1< ?@xx20\bP6dV`8v 7A<(Xx8xRe"0LSpPafRS &TM~j0h13khSywW/_EFA̖AD_ ߫#LތACK +7ex ;Pbaph3> d?y7;G\~AH@o/=ɐY^bo9N'7W@~0ew7޾4<g?a`(u'7 zrn9_Lr7*dMf03Q1XTtn͎>(J7?(@%+0=}0u3_;ȅ@ /ão_6,>_~fQ`? .;93}aG vfP V`m° X(q3ȱ{]wP+ƻ[!2 3AO1x9cg-gGYi@ewp @8 ,!٘Y7'? Z `QY@QIENDB`PK D13Z(nuvola/22x22/apps/package_multimedia.pngUT 0^aAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<oIDATxb?-@1c4Őe`ԝ `ab"nE{{šRR2|1b @,9|aob  |.fNKpG.OP=Bb ZƚӦu/PH$~sp)Qpifc`` 322(KK{ _w-P즪Za~~yyym[[;O&0.~O?Swfy?7D68`匌Y7nryj{{6l賳t*CB\CPd^yh\#?23pKi|jkU} , +&,@p/^)$$С"""Mvޙ>z8//e(pm8DyفNbbb~^^M ϟXUU-n@]-U_1ܾaÑ X^gx ? ll \ 39le~BB _~~.CNN \>bcțWv7 F Lܢ }AQnjAB53B o߾O4Qcݺ )) ܬ +3Ug0+Z/ ,= fl߿Nl߾-ׯ S%>~7Q>v 30< Jb< /?ePP11|/_~ݳg)ZN8񏋋n)f:b`t 2|ë *j@30~иo^{u}^^֭;8~3=roY?103013/nV&F-Mi`Rf3O~c@ OhllΠ`xA 3ZRs ggUgeͻw=hsY…˾/{+iJ2)P{?iʼKn>'O) ,VavsXUړօ׭; I"T5ouuu{d7<5|sppADL'v  b-@h )qIENDB`PKD1q\KUZ%nuvola/22x22/apps/package_network.pngUT 4^aAyPQux T{TSwuznHd4d<|ǁ  *)X&v8ծ"  U@TVM4\mc9s7s|3GWO:g*`zF~26?|f$A/rNJŶBR$i ^7,FuO;*yxf ѵVuڄ0J ku&,i?Y,U"x SrEBܺ@s>~Xvb߀;SU/|m /z\֭Joto0G/cB%eE.sb* B䘿IXJI-eЏŔDrKmhuhW"lޅ8~9i8q&ᘤvQF]Eԝju&CXy6=#F ;@C'p5E=cV|LN}հӕ*ԺBݶ$ň{lyHHiڣl?(칛[4@XS}mG74Ŗ|8 FJHހ=xs62ko-0Hݱ&+W_*%ғ F  lOރ;19 &h} t&x\2a 8"/:+#ABdw>dwa a2A˶5~ <]cL8(wE ^Ynj0ԣ*G[1873`X;ƉZZuMoѽH@fjOZ~f\8X;.R+ɞpQq*9ؼ@|j}7YieA)ﳨ3[\]Ε: 6#Eq^ZoޞѠ˪NI uӅ~%(iECˋ0"erd7zW PEwQTD|SWΈ6L]`M,*uiTךƨ 0ZUsЗ h1^D%ҕĝll>)2j>gS:+_qEfUs|Rd]E12oF ʳE\ȑ; A׷81T 2Si.Z4(5  BX:SBJ6:;Y E^lêSpܔNঀTiCBXI<”hǣ!j*IX{b-n24E_m`Ӧ*6`dAizqj^f`|w\]+{9F i<\<$|rLtגRByeibq31zLŝF8rˬW4tv6!}xUq:mzz~5E쓲d6 /|B{IO"윘+k"2U^PN8a*CW`u;\t fJPS?I&͕4sABYwyD 89+t;%y1{;~ FffR$-/P**š퇠ͳ6o_G々*7q5*5ڣ<#,e\ .,ތLٍY,m nuɍ4@GApEe_(WPKD11kp&nuvola/22x22/apps/package_settings.pngUT <^aA{PQux 5{<ԉ0^?KьǚR3y9,6nj31z!XưJ$ɢTR$CHŢkR1Ͻss9@\ |}vf^sQMcV'F{F|"<:F؉67af=vF|w0y1L @1 $l3[L9uyrN}j0Np*-ȑ~Sֻ'FʥUj*ՊNMY25錥̂{>Ltޔ#^;ɖ=HcQ+Hn)IG F7S!!!2YV:^}/&ӧܙb2;NOypY'׸9 ic.Np4'yg|MWT?g<aJ"5N<|h\NNroIF#IJD?f1.\>!%z].Ց/RJ2 <Դs20NAQ-eC8U|+C:v%އXPRTʳ"bq&{:Id2kbI#j :ǩ/E"sww^ZcoUW)[/&_{1 qi8a Xɨa^!\vb$] FklVaE2/i2lx%'^v?>C3Nҝ؉%BR-v *&:9!"򙆺x}nmkf:VEm'AڭBx&v-z &̢__YE( e>RKlጫ`ChQbig"9uo_]ge;N~Xo{S MVqv̂dRVp0 tRnɑdrɫ;GAK7Z۶?*3@4Lk:|4W q^ &'M]xEѭ{"cE6;$,/LAm dۯy[~3Alj}Bh7\jrO~.%[hu*k- ՟?C-x#bMMBӖ%bJϼMy'ۮЙcl!{e8:GSz8O˅EG7qB oS⤭C5oej=EUe { Z+s2Q.֘hlLYװ4# .@+HM^]ZP.gn^`熚mRXlE_(fo/ [/zыFǒu bB|EEeV[=G$(#utw\/9RTXwv's}}J=UY6Μ۵k|Ɯ0ka@u#s+x_~vV&:&i 2&P يVrRc7aS.aZsSgjj527b^H[3v!%6`uJ4Q*?vƾ$l$3Z?rW{qu?wO#[pP/  JeRΏ2t67 Р ԟKh~g6gwSX&'PkxӾU4%P?k|نH /ᶕZ2zQPKD10-$nuvola/22x22/apps/package_system.pngUT @^aA|PQux -{T!% M )tBS2$23b'!8)$ uJI ۻس?{>v8 y3Iz'ȖoCqܕG:\^ոs2e1]=qtt:7qKg1bZMBF [^^l_喗LJH $*lB/i,6 š aMMaOd&17$GNՒf]׷gey-)M rYPb f*=1OD#'-.8L}r?+r?J-2^Igeթ+={;K!<F&2q،zo\~efAY4oe0?3.. dF1t:XW/܌)!Ϻq]ˆNZ"`-Lc-VPYCkscJW|b;h~vUO iqi\.fq_ 5HpX{n}{p'!Zd\̓YJ t5b^)cʗ*F^Kq3THEF^!ݎ*>A]G(h:Gd> ݆\ k~-]~{-x$hgb,2 }T켲IXiɿV+0,&SBvCD"_ #ցuTx[f? E8{Hb,TW~ mMۛ%SZ1\^pplhDF7MWn,pQ 2C븂Wk-A;riR 3ybce 9uDQkff]`9{ITN_}E8ڶdoп:+>Iv ?s{fM= ,Ljѻg&,RKȀquzj o5n;5LpAG@oic u<:6 x"#`#klo)%Ùy*ÖnLyq *3Ӡ 5h4#7Җ -yw-O}q4.f.-1RBvwlYLIׅÈUa1ZL\W6+] ŲA;ر+?-7"mTKXXv{n>V0#0[`SMY?jig+SvU~'ɿDݽ6ZQWSz";pXo U>c90P,s&ӈ%%|y[_;4T􊋾-CkGtY:ugm`Q1\B= / zZFFӁE+ ,(r! 7H6Q-.s_hR:8x0|xPrҵ`ܱ{߾RR"%9zxrv(T*dhhDq\֖ծY蓜Mr[*)"I,b[{+33NJKM:*$VT]`2?2\*ȮctCxr4M`9?KK*=N75nzzzǶS$GU%qVNFG7 5}& W̟@|bd Hᙹ/5t %3zPKD14}~"nuvola/22x22/apps/package_toys.pngUT F^aA|PQux %UyPSy% %r 9PNDDctMxE]DaQk)gDH$q=%@K^[)߻rX:MwOC&5Gю'?N𡥛8#:;ҙ+2SE;q"+sJCqG  Ȩ_A~4F _[/EOM\]cHX_c&T="oq9mn[bYoP+fu|<r- <$?XK5 ?"')%b4 s|H+)ݩGY`&3nF `6Li.ax;\2q'rZ~"#$ȑ0+,CB4 =0 H& >>88MkiIjV*iULǒ 4unlq#Cn\mL!<xcTK2Y$u n;}Cr]Rϸ-ˮX-R:0Tκc[Rz(͍m{`g#g[]8QtIbC9,{Vw<<z_uh |w'w%C:VT^hy=PT +23]ơ!g.ft{'.GOr)l6kt*mju``:4>#sc )}*1HsUh֝7}?'G?}:2 6q&8B&p>&&?#ݽ ׆c1r ^g.?9uU)؏X}URh1-%p;pb=_=~FQ)jjuE PտyN# 4eo[ R3E¯r¸$\^>H6=٘hs9ޱxZV=D|߈^ZWC^jZaI pY SUZ3bҡ8l{[= qI 9O qv>Q>6KvL6_*/n+31먾N۲Eb>yU6 Wl]WHx~ k o'-j)#eǥeU'bVj.t~|Mة1/qm$_m׶_pVJ}Za|HbF詄5#5|t;/._lo54vmϊgh2^2>vSg`x?Üio\Ժ  y̠ @V>fKc]N>l?e`/up-;{cf(z @L 6 2 ]9ra ~eX.񹅛 (F`0 @LI2a!<*O=aӕa8ʮ ߯"H4??Ą C9_xSctN_?u6wbbd P0>~ϧ!ɅI Ҍ@AFaU+W32DF9 h@݋G q|)Joocs Á3]o_y] h 0s311`B<&ņ6 \ ogAC /+Ƈ1ihzfBFU=w,%$@Hn `Ҷtbr,ú#g~bPUfÕ˗n<~̐yz~~~V/_t[oݺkcS Wd@(a aΰ7}3::Z۷EEgc̗4uO>J]$[y|N|Χ?*(`zaV=iGtw~V%zy_sKmϩ_@p y?a*,ąY,(Аx+eZ-- *W@pӦ^7I%1|J1 ~l8@]ϫl`-W ?@+Xr>؅@  AW3g0( ?_>}yX d LׁY~. v?ï~20 r%n fff88㌍*?) 4? #3л076ee5I e\\\~>mH@1X1ABBbNcCm2+×@>56RgGO>き?Û^ Pꇻwmyd0@{ ?\ܺ+XDMV} FZ* wj2<{G ޾cL- J jj ?g8z<w_tм G?bso-Q _>d02a |"  Zz ˖ZΉ_ 2 Mxuh 9Wh䲥XZ `{ãn^67W1Hq~d`e|OOo3|{ARALם̞}~ 4` JrNw1dg0|KFWmc |dveOdfw$CC Nj8'*:_] Y<GwF%$  '$  IV(d3:sޓg .`xϪ'mS/L >d8x3>2,pOD,YSK}_!S^ {U1t#kGݯmAyUV^ : YMh@b;7'   % IA<-ڸj9JW3dxb`FAnv Y_ , 2|f? l b/e?; @,\!& O Fvnf`q.՘@@CYf_1/F#^3/DOlf\ ?~e:*  ߿`>ʿ8\0R X>>?j7 Lb4O`g#KR f"_`1 3b<|(rA@1Ҫ20HHFՔIENDB`PK ٞL1Ӵ88nuvola/22x22/apps/password.pngUT jlA{PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@^C9*?X4㷿 (Gu ϳ0 Hc@,ĺ??EEf~OS!?e0Fa0"ؘ~6 Jp30wyѤ @0=D3X&|^dY3¼l ٿwPo]ߌ+;0H @1̌8oL\*? 3# S`1Lњߥ7kfoJ %6?l?&a?ivq< T / !Q:bʌ CI A , fAdJ1+Z^8\ue; 00ew^a1was醞%?@m R@f`x}͒ mG~e Nefe``&NVffV6&fƷ;M}zA7?!2:10ю Vyp/ CON~e` t7]bN?EF~KiU Vb| 2\ߌW+ad&@ U}cPrصޗ_~\`d5e`b`pʼ[ {e^@fF:~1)9|\^V05 d*( wygus^}m>ɴ >k0sLrf6 ߮0KBEg1AUÂ/n0wPCdП?,߯{iÏ83p=7-\?3_͋( gyY`Kߌ@aaRffx{+í 5Xy{?1rOpXR_l@1R'M99r;b!7"3mNDاӘ=)1@],&.4;_o޻W_ TlOuV _^23i3}PRk,,WR &ek߮Xoal;?nY0}´C@Ck(#(8tb4f`7߫W  n43u`aYK70Ȁ X2g`XE N|@p9ꖴ+9) 2$1l 0E H!WgZ700 LB& ,5YL|<܌,J B2ԯ|W~~S*2@HTJ~IENDB`PK fE1%nuvola/22x22/apps/printmgr.pngUT }bAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb 6k+ZIHJ* 2%+`g`9r)wuUyϞ=_|ɓ@mJUwwMAAa|| || c8{#' _b4`0%0_/_6^~a_߾>y8{qlff^[())x 7n.6>^>N^.VF^\< 32}\^cgسgm$; 0Cq)8.z_8X꯵ I kd!pVj/p!duHqҕ3Z vP@,bb@|珟 ?>}fxgbLLLd́p2s03زi100K1 0/{_ _q2l 4zIC‚ 1l#@ɗ X.{M`fae`b`͠!8 `E 3020p1;In`gϟ~0|?89~pk3$+33$0ebcL@10/"#;01o&ρg fM欟  ZjpI@e>e026gOǏ ߾}@,޽c`ȠT^x$Xq̰~:`~b&KPO> bd, ee ZZ ǟ]]133 @H`Xbw,7J`6?,>z`HCN ++'SڴiF`g$|!a A|/ 33#(5IENDB`PK L1%&nuvola/22x22/apps/randr.pngUT lAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb?-@tww/322rZݎ@FH`1ovbb`c@ N/ q0c r 0C,`x22< Fp%b?J YI/8Ha .20] `?Fx@Lⰳ$E] "|?@7'pb7l 9~ /Hz Ȳ3H2tWh2@ `!ѓ2Zlq9R߁.USbX5Մ!S d <@, 3#ǯ gneVaPp_vP  t_ht_`~1ax'å?*aɘ X6~b|þ~ _ 8 ?`S>f4iM{OVϚ` k3ák@ދoB#~;2 ؄Ln /`?3lM'/1Z+6gf!J:]xdN` p1atеn `苹3;w7?2131;q䏿 蛯deTܜuNc 3 'Ob66bPPPb';;&ñmDHpWץb0.++ tO`rdfWPf'0lL  ?>B ]`b1yw 1l=É f 2 HC+'++$Cobec N32. A L) '@#@|@Tq?x6%/=gdx3>~=/] ϲWHP\ LJ_y tS8%:%#:wJVN^pzf!V8/L@b!'ӥL Q*ǫOQh ` 4r[ B |dLr00ܿXWq h9u_v50q01 2 2p1 1h3es5';إcb]2.xq1`g mK10c_f>62v`7+P=''ÿ_uW x@A J^L\, Aq?~a1,r~rFڼL w|G  6(̀ gf`PerUvTy%)D`&hILMġ G/ÿV)@.A[IENDB`PK t912[ IInuvola/22x22/apps/reload.pngUT gUAyPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?c6# L@  1#D1K,E 91af`Tnjо)@11P_=Ex > ?y@L8 h_F@'@ 'ZmaVt# L l;?0(/O(0p0ȉ2[X`֖ ̜I LaxOq'(`aȖfc%} Y RK8 0/: Ƕiӕ]̰￾`A˿ ٟ3TG`8wƃ8 %,@!sj7F1_ Xi#8T7aE 2q2d/wŽ) L,1 g C9*BSLh!l0+05#r[]ޱ/ T\/?ߞưĮ9@Xߡd*  ~W7 o&f/q10^G wN y]Iebï@_$3#OI@I`:W O5`ϼ}E y@&ɿ r,iAoֻO>@@ske, ?hԪr8z#0 (RB,׿^1ɠ P _ Jrj;xQd00++2|6k2|PdŰs;Ύx; #n08RgcX3!qíLCٙ9!I820K2>p>f c.Q D.P#Ƴ{nt}MC *Z >BQ @} ?X2} %ʍ 1xf\ӗŠPPb}鷧X)PI`&hХ8 )E~~ .g}Wxxx14/ecSfHejYLϟ~dr(Êݛ.; h1'3H!hW6) l| aZ?f&?_||ظ6o 2 PM& ,a pZ6o2|~rg<`Ll XfD>j9@=#/N܋/J '"(2#342A?U@`ZƱw_~ޠ`U `O-[WIENDB`PK L1삲nuvola/22x22/apps/remote.pngUT 2lAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<DIDATxbf3LCZ@ (b@>H_cdd / baLLL~C[ٯ5~'((s)6lllu@ρw=@6 ] @Z|qoz@%@yFA߾~Ǐ={( tH߿1, @?~\4hZ2P'O. Z7-qqq[%O~"PlP]+Ђ "@.z6^^]ZZZM>||]VVVጟ>}z?իG@=_4:aY@] F111`dt]:::W\ ls,P۷~P질e7Ϝ91˗/G6@}! 4bC++ :򉉉 h '(9ALL!!!;eddbZb|A, ?gyxxbo޼|57K10\V"].3 b`x`\g|30w@1!0]jѣ Ht-P`rĸݔa'!LؾtT`2#ˀ0.  b@oӧKx ۳<ȭJcbpd`X*2?`o߾ZJq S W K-0.2XBe̔ l i@)n`\00ino *},)xե }``g_H|2 ey @1c0%msIqq@C@|aY#î@6(30< }}}>&/   &`~t0_zI… 't  ahPcO ݗ-]Ϗ\FЌ@L@^jw޽vwy T|6]A$퐆$@(Lѣh0,,-a L.O@ITSS3s͍> gV X)V`3sۃ-[h:h?08@1"0 :uVRR(LJw?(Cp21)]5XH:tݻw?^s'f}L:rc@XvHHH55"(8$Ɂ -6 #G*yGyX@tL 4h(302P (Viqq qqT 7ndf?@>SQQEOׂ0i10 2D) M@ ; ~o6`@03 (u)a> P=c $A~fd`x`*aHwZT1ȐU@aYmPrccb}ϯ/^S +0AJ 8@K~IENDB`PK t91CcQQnuvola/22x22/apps/samba.pngUT gUAwPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0222DDd?/ɐ $$0wG-{o1v ߙJ00p23DcX~f 2` a\MMN?dd20vp{Ȳl Cޯcd8 @p# 9Ŝ \\ o20|ðA^}q;'sn2ŧZ@  &v0C혙> 0 20|Z Ç+ )Ji r 311{zb LjH  [20}쮫oCZ# o.d`Au߿3Dad`g`f!sӱ3M?}pf@ fZAF : ^0q:U;ON1q0N % dĂ[|Z, ۟J1+2}ù{ |, N7dr oL|[E{n $Y3s0<`.AE.' y30xp>#߷DHB3싟 _Y$```X.KR l9JĊAp8de%.Ʀ!$ 3W˰e f@O3<KV/ LL%yp |v &X¬12K7 @s9ss?2~ HTU%XEE%`` 1cqpO? e뇊 ob)F1x`N`ÿ4j9<,##a?_@?P B? /?!B&`m3 Gի@ UI*0>@ y >}`!!! a210}  40/?~@UUh opNsq{&Vyg<|'5giFK3ppp0r p}8PZ /(û߸q&@^XXRANN)iUwu~jc+++3÷~޸qaϟ޽xĽ 08~o`9+}/d{O#J*ؘ” @1"WM0lgB@@?3d-pįcpe}ַP`Ŀb@$m@<&b ?1z. L~3*hbb ,#@ .VRR G,O,{M_{ƀ?1dY{ f`Rd*Q7IENDB`PK L1jZ;nuvola/22x22/apps/sodipodi.pngUT vlAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?!Nb7ouuo_ǀf&F&>V2 T@1Y?&7޼!f pLI?Vc8,Ed $(o 4VVl1Vy4kn?sw3>0ddC \L U1|}4{^$n3y}rOE_f`#$ "QV%Aa+, 45l_Y-7ÓG7a ?} _g9xZ% _4@`:cxqßGBL;uk~ax+?}ˤj,NZ@ 6T02ד4` 롯.ex>Z3Cs'@+ 3#*H. FPfg &}&.2 8%c]9KCÏ?/>5? ?O>y _ Y6PI"@zǾÿxXY88 ("Yjխ= &fx5_Ŀ2}P! Ll L?Y4l#Pf=r?f ̄e] t)++s3ppr0pqr1Hp3H2I2pKad Yŀ0M fbL^, )Alll ` NNN"" r\r ˏp(tc_|dalB ZP0 fcgcdePRfPSa/pj@` A>iX.T9)O||| b(;'0:8T.56aصÉ5M@` 0| BE ޿4$@} ! )à& ˫pxeޜn`w:PG{̬Ǜk5v6`AMAQ r< _0L[cmͿ>} dy5VkxKʈ2+^f> _dƧ]|{J @  1\S/MXMԔ7^?I ~) סOpIENDB`PK ̞L1Appnuvola/22x22/apps/style.pngUT PlA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@%G%U P y ܡ};. /%Dt\800p3p1{? \~'2ߙ כ@k 5 ,< , #çDٹaae`_!6 ?P FA a7. 6^VV~ϹlY=*İ//;&L `& ,1+ `?)~F_p+8g~~e`lp'_ ??r1ϟ`v83` H)f_ |&nFTͯ G?a: 13|{-]0%V>L``FV pg@G_l~໷3Ǐ @_p``cH4dx~01116X@A(`'fA G2bd`dG7A/ _~ 1c7؀6 fbx .!A]Sk1 7/Ā^\ @7\2ç޿ ) q1032c ϼwai[ :$Vo >gg4 d@KO #Х@6'n~p#.VW/Y Wwl R w @} [fG O3a7a Դ-+#Í7>|ϰ#+/D% "6R3L^/Y? ,4d122 `f@> +' Ν, A`l00(2|5l /%pās3  @1P.J$bFLt @ҍ$JZ- VVFhfD1 ss\\\$WA@ ?930K#W^e}(;;+ә3g @ʔ_tBB(^aP *0G\ nJIENDB`PK ОL1"CC nuvola/22x22/apps/stylesheet.pngUT XlA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 8g,+oR}6bU#[Xv#`0a`㛰bViq KhBF F$㇉A Sq"Ӂ7 X,@ F^i`sǃH&1k͡ ^Jj "p7oUb(#O ObdjK AFVhٳ < gw2n|`T .f/Â% Od(, ӧ*ʬx e:CG|'2,_po0;0}fڲ@KU.3|a WgX4+g ,8:#1pRG[_ ~c 4``/Î=0|cg8r*CN%EQH_?@A\I?9?x}g1v!&\G!!F' My10T;2q0O:Ȑ:l??) Cf Ct/ a1&Y- @W)3HJ2X3:x8Cx>0hX,L%v1bg000=.pQa@_Ua)_17CNVmf8U]{0>|AL)CP4# ~d H7Ph4)Q {  ]OAT oz(#` q@1A _ @ b`lU0'0}o7Pvc pP3'@pBpˀa=AїA(K&P1@̘(( 1305`DOoͿpn_Tc )CHHۧNbpPd dg' ,Aa@/~`W3ݏ2\{Snv:U? 10:Obg'ï.L/69_!'X˖ W'ߢug{:qk02p002~0034 Gh +qLNHvں8ê5E m 7i& @K8j#!7?;`a`gY Pg2q#7>3b^ OÅ3?1cl$@Yb%O7KȯP']i;J! priVNj<L ˏff0Ras8+###Ï߿ؘY 3wg?pv/־ .~V9 /re1cl-M310cbRdxo&`?W,M~/ YlP6t ƥC&]i;¹˦AAՉiX>;N{ \ bS 6bU'kdr( Tɮ+-c+@9 f 50%?F=/ܗGNiΨFM&w؂*XY @10HIVT!sï?w?_in{̍ 3h07#HmF«eoUf 6"`!f:sck=~g(c`clfq@`_o<s f2~7pޕf`a `c8е#&YA@43 yzSJ0IENDB`PK L1v\!nuvola/22x22/apps/window_list.pngUT zlAzPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb?-@11 pfdc˿10a_@b=}Ίn`kkpal`k("v`05@Cf``/T Ã3 VVVf`d@ ~o~}g`bdKă 1\pG?b06fbX)@ /C1h?Ķ~ R_?~d@]?aAd(qA_PC@) x@6?@7`_P.Bb,dMr`]@S&(Lb@?,ØI/$A@,@ ff;pí'߁tpE oxd#T@qhe _?{9mԷ/? 33+8,b e8e# w!^?A ?ؐ4 ?yJ*ݽظ9 .  l \ ?Tl0)X-(a., Qs?HrbPp} ACfh`d R鿉-ӟ,W?H6*49-O f`@((2HJ2{ݽ{_ׯa.C !$@ F#4*ut_~1=~|ϜY^Nb-~ǏoV)@ r2 \l 2B}k)iH(#pѢ ~  3Ï #v|W2x^??X߿/0\01g8 X P@=bx 4<1χ-\˛_ϯ?`CA. LLH( ÇDML>~d5/< d6l0'AH_A ߿3{xA’_IL߅E~ 0}w @3R#/`s3B X)X99ظ><"+?a~ J _ccemL^^ @C fd L 8Ç߼I?\ d`g}`auM@Jy@HKAggw_m]@[v^o@߁ hP*. 2H3|pϟ \U&`0 ?ys 4`i*&&F//k0#0y o?-a&yScE< /34(  X@ b`Pz ,QD0ܞ;#вl ]fURd23aWdL?|B@@RP0fFcYY ^`lRf:%`%+Ǡd /N1%o߁'P-(Ĉ" XY~fGxـ1Ue  70{!A. t10,@9h@rpc_hOD.2s%0rEYjA5{!F` @,/n;?TTkP=`4pX>?? { ;D?J1`1foGV)@%dfIENDB`PK L1M۲nuvola/22x22/apps/x.pngUT lA|PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 b[a7V!oLYxfڂngy H[8V00(wliƷ/]}uuҏo'_-!K ^pT~7cT&>U?O -$l 9|ˎ3Ιtp# TdȲ 4gf`d*edc]0%5A o~5e2Ǘm? &R y j,Nղr1'ÿTv۽W6^O 1a 8_ep PeHg;/0߳e֍>yϊ/+~Z 3 o ?>=DŽ|r pkS(F6o?30ey3o|~: hs P:eP01q3hKU6mos>?쿻X6Y%Cho,y0<#d@! Fa`cr/Zso}Qm8YO#񁁅O6~;|(o35ӫߞ[ԦWx=8\aK7Ժa04Y};o2l{MYPUa֏?5@ ?%Stw~OJAW%BU<+Dp @H e`ˑm*Wywqcдb g, P" 2g`0ZKCpǙOpk{ncfeI!ߦ0MS'Ą?ao9Izͻ{]}(|[|6N Q浭,,fU?O -$l 9|ˎ3Ιtp# TdȲ 4gf`d*edc]0%5A o~5e2Ǘm? &R y j,Nղr1'ÿTv۽W6^O 1a 8_ep PeHg;/0߳e֍>yϊ/+~Z 3 o ?>=DŽ|r pkS(F6o?30ey3o|~: hs P:eP01q3hKU6mos>?쿻X6Y%Cho,y0<#d@! Fa`cr/Zso}Qm8YO#񁁅O6~;|(o35ӫߞ[ԦWx=8\aK7Ժa04Y};o2l{MYPUa֏?5@ ?%Stw~OJAW%BU<+Dp @H e`ˑm*Wywqcдb g, P" 2g`0ZKCpǙOpk{ncfeI!ߦ0MS'Ą?ao9Izͻ{]}(|[|6N Q浭,,f2K2zZ:Ycہf„ X=XJ qx!MAUCAPPH3C?# *Ù>1r1X}ﯷ  Jg>@Yw^`a [  )3 C2 +\=80Ko̥3?rܹ  lH ڿ]x kh. ,T@̊z&20dEj0 0\rƍ \\ 'td) 9)!{1\.#[[W4YXn~p%- ąc?}<(̍uXqΰn)51eb//濟޼}'(&;"ùv<+f`gFIIo޽a`[A̼l,B? ؟L9DA'_3bpp0fÿ@ig~gbdddb ?Qfdga 8!8ߜ? 9CtB80Aן l,L /A)~o/b~v~2l߿l-7o20{00v]g8ʎ ߿n|ˠ+?3 @Ll+39}Ç7 g _``sue`[$,% Of ùw^`>;;0v }S%en=eyNo2|?~YX,`0͒cx>s1z 21f2m@'t5t>^ ?]mbR %(^pic7 {gr/Ã" L>n0K_<[RCٻ >fec``g 4ٳf ׾ctf{3ۀ1; K{zIAQ?xg2rJ5eE&'`dfb%;ë{\ Oo|p4?![-5C80&n,tr[|839\Mf&Oլ(=\G{{bruՄMyߏh3 W9`0[10HG10$W5Dl~k Gc*nE9[?M`( @An0?V'0ڽ={EXٔY}N;IENDB`PK L1M۲nuvola/22x22/apps/xconfig.pngUT lAvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 b[a7V!oLYxfڂngy H[8V00(wliƷ/]}uuҏo'_-!K ^pT~7cT&>U?O -$l 9|ˎ3Ιtp# TdȲ 4gf`d*edc]0%5A o~5e2Ǘm? &R y j,Nղr1'ÿTv۽W6^O 1a 8_ep PeHg;/0߳e֍>yϊ/+~Z 3 o ?>=DŽ|r pkS(F6o?30ey3o|~: hs P:eP01q3hKU6mos>?쿻X6Y%Cho,y0<#d@! Fa`cr/Zso}Qm8YO#񁁅O6~;|(o35ӫߞ[ԦWx=8\aK7Ժa04Y};o2l{MYPUa֏?5@ ?%Stw~OJAW%BU<+Dp @H e`ˑm*Wywqcдb g, P" 2g`0ZKCpǙOpk{ncfeI!ߦ0MS'Ą?ao9Izͻ{]}(|[|6N Q浭,,fl".dde0ff`cedÍGJ I2xsrpZzc$P)\+3o$49UY8230p01is0:3<`5at V273*`,$$`w ?20o 202`dpvr2u.l?ë? `C  ? #Z YEn5eval`E 4#А? { g,/%' %%Ԯ`G;? ?30|z'?2ف/8I(%`Çl`P|hCـT40<L@q`|N?ުqp3p *bd``a`^?}OJ?f0@xC8=` zu @ ߺً@ @`<|aꕇVA@p@ؼ  g8~= JsCCCkK{\`CEF\0NXؘ)_>1\pΩ} zZ *,q}U HB e...3/) /<`y<ѣ_y bxXS%u a P 1iim@iEV66wޫ7o^3Y2J2l#B0zyc -`ee݀X@٘}.9s}?Tjْ!$`P@CΚ2}->?E?ݜ1 2&kw܂N_bHz Xȩv`Ƌ2Ogi#]N^VlV r13.kYote¸(d@̈z`ޱf$0PDIENDB`PK \L>nuvola/22x22/devices/UT VMFSux PK |A1.Λ&nuvola/22x22/devices/3floppy_mount.pngUT ]]AvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb?-@bBb'06[1p}ze πb^EWCl$3(b3Y!4a >cg3N>@_W\QA $P h( `f,K&ɧ X8x}g @p;/Vghˑ fce`7+ 70~U10 idb`r@3@ s $99888@!"h? #!GD0La (AKFFC \.lfῠ b`A¬f'Ō @ X c@q1@! fHn ? Ù>}ǰyMi n9Q X#}ba8xo`̀"߿,P°qT31 C3@D_13OpaL@ YXn] jAR (g ;{@p!1W40ppr2_:g4ϠN~avc U2|&{chR?(8×d`bfZ<\SK@ < z͋ϊު& {?#P?`|g(h0Qa Ncd`rL+"$ ɦa 6? P?HZ X|g31\xtW78 'p0s 303p0qh0xK3ߏ? f_~52ps3|!>> W3 ,|@cPg n0 3 (_03<!%-C[-ff5+exaϥ' " ܜ\t 5ThO?A x|?z R?BTBal9 ^q( s r s2|edf47f3 b J3-8y8>20)  ??@C] ?!hFFAh9d$3@ f*:NcbBD-#`̈|BD#.0>E 0/A)FO`:3FFD L ?2!|K ,aF "&cb$ j)fc@ Ƀ FFpPCs1@ ff$)_f'ؙBBȰ ?d#`bAt` ]r%+å, z?XwA|ˁ Tf'| @(a 00zA 3A'"k n```fP5ŰOp9c;8r2|c @.F6utt}]lvmgFD820rq2p3(2ٶ ws 6ذ771c`y*A 3q0S;4 mmgĸn,b &D)j($0L߹A%0;77//0)C/ ï?lsϯ e`(?777+`nB 2  ߾ a矟 B4mDa W^}fdz  | " ,@ > Co*`.%tX0@\g  g}d8y-е@,4VH 3|xLr8@%?0 eaaA1..mp)þ] 9-` r|g[l aA(!le@?Xqk/kO> ,.0| /=%J@]J aĥj߀tw i߁i-7_eLV7IENDB`PK |A1+,ح(nuvola/22x22/devices/5floppy_unmount.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@?f:)R988Xoݺa)6XUUUZ۷o LLL`͌pƆF a۶mk1FaX߈'*L:KriOU3>j0s#"[ bbi2a^3a2ϟ@@zf0 r Gv)H4E@4~10,\Ν;S=ccc#uuu!0(U_Bq1Q\{̙v@/Zȑ#Db@a*@3 Cxyy_@ Zp =" 722b677zYNNNܹs`Af8(XA 02iTQQa(**= \][[[RCCӧ`@ @,\ d;pMMMPy"d A_IIT G,@ 'N7Xd!$A g ifUp8 Kǰ l- 6ȅG9(xD>`bP /t @`i ,J 0 @0|\# V*B21@ };vEARa|! C>`MBM' Ğ IENDB`PK }A1N 00nuvola/22x22/devices/camera.pngUT 6^]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  F߿j0$_Οx͛+50132󛁑@42312=}z{ʤ [&&f?~43002ڪ׌_?gc`cY1ps100032'=޹s0 Y33#KOO6  h%&)A@? %#,> =|d>} Ǐ?@ w~`A_ l aa ~gt̛/>e7O@,Pr؁ 3Ç/ddW3|Ɩ`_ 1r2ܿw4 ’ .@,L 8Ǐû|~<3; í[;3J23|ABB~ ߿gA֗ rR @_-~#Q 0?1{h_ׯ~10P9؀ 5?@1A]ULLLH (pݻ2lٲ… \<@ c? " ao0@46@IQ, r`1.N.c]q1@`s1ȕ o\ >e022d9k0|Y%~|%-NZ7 AW`N.-# t &< up×/߀/8e #'u ߿b q.pDj0 VVN`j`'] `[99ϟ_>`m&0#Û7IS? @@pssL~4ȅ@C X8  18ɂR33H3@ڵo ˯0`razO523S(RȎǀ bx38IC`5NǏ/]  `aDˉL` ,.YL,@3ȇׯou iUͪ&̸QIENDB`PK |A1N%nuvola/22x22/devices/camera_mount.pngUT ]]AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  ]D?~i233(HHū^~BLL +++33+ß?AnČ ˛n>p ;FF:100ϟ!^abj`ûg ޿fRbdgï_98ؘ21?'ߟ02 Y..A@@+  x!#&XXY !'$ NH*`_R\ 0o榦2?S"(?%xOcFJ WToJi1H9`T ط4/u'X`9/fT1ALNce03 o^e`gd?b@ ?~|gL@WXLO]^) O?0 3y뷏e` տgP^KSx^`ij#&&fbdCoA'gx9Cvv_ &I 1X1|7wbYvA5 # "f"3?Lђcadȩ @ǏO:*Y)s}<\F)]`bPF @,DW @| Lb,"! {\a3,1/>{be1a%E>;?0 =|d>} Ǐ?@ w~`A_ l aa ~gt̛/>e7O@,Pr؁ 3Ç/ddW3|Ɩ`_ 1r2ܿw4 ’ .@,L 8Ǐû|~<3; í[;3J23|ABB~ ߿gA֗ rR @_-~#Q 0?1{h_ׯ~10P9؀ 5?@1A]ULLLH (pݻ2lٲ… \<@ c? " ao0@46@IQ, r`1.N.c]q1@`s1ȕ o\ >e022d9k0|Y%~|%-NZ7 AW`N.-# t &< up×/߀/8e #'u ߿b q.pDj0 VVN`j`'] `[99ϟ_>`m&0#Û7IS? @@pssL~4ȅ@C X8  18ɂR33H3@ڵo ˯0`razO523S(RȎǀ bx38IC`5NǏ/]  `aDˉL` ,.YL,@3ȇׯou iUͪ&̸QIENDB`PK N1#*&nuvola/22x22/devices/cdaudio_mount.pngUT JnAuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<XIDATxb?-@K`?~oFFf7aQN I^^vI{/ܿ`ׯ_v03=?>M`bCݦ37FWO7@PAL?J| pao?֣@ XF w] ~'/<[X(ZG`Sӥ ;. o?@k(~'/4/۠a1/"buB#޼g`oO / _10de3DDhD  ? f@?hㅉ" ߾20<{`l¤]T! R @P3k0j@Uzp @] L8 A#݇ R Vnl* 3l($#%.I4uq`:? gxp7߁/:P+'@cRL[O@v` ff`x >|z *.p? `"a`dgd`gX$&WR|A .gaSXx + ג %y [ + , @L43XA'? ['ֿd`8pay @ 0@+ @o}Fлn13HJK0[S'-Ȱi5T}_0 e܅^C  =c'@`?zz_", _?C e@;Ϡ(ϰik>0pf`cfbbPaؽ{åM@࠸~cǮc?0|fOx<0c1U7qV..^.Nqi]ac?-}  >g _\۽|߿gPTd`&qVVh>f 엍 .OD%a #͠#`j_l_>s+%D1Cr(s`&HrH`xOӷ bb @Ás330p12H00| 7g`Z:yrߔ _Ypuz~K?~ .2h(\#0;a@,3xzz[`4>iC=n 31 @c"0Ib @Lt -ǫWKrç=2*Ë?8th0ÁwI1!'00! ?  FPy+>!شC]x>mbgccx 7 \l\b0ga ~`tӉ(G1Te@o;o/  K m:IENDB`PK |A1(nuvola/22x22/devices/cdaudio_unmount.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<lIDATxb?-@sE` L ~10[IDSTKK&wXYe޽ۉb0@?VYXH2p1pp0֔21㛔z­#lvts3W,*(7BoX]Tl2ܺ6!6t͍@e] #`f@̪ˌyx}b`7!&/I  9 %Ă+ @L0A!:q > ֿ!4+p=Ql[16k  pPOPUM6:Ag?401@_pf/ʐA&6k ;?/faX ap Pfe @hxe;A0 3|~q^k0A-) +H@ 6b?F9N7/0 CGƮ!]2?3& pPKp q] @ypS L,XX>atROH4qK/30Ndh8Rn+)@]/! L ^2uH_HL4/cM737+CQW`g+ @LPއ$r޿~m L_|?`QbPwO830tp"(Úu5f<,  ==ft ,\ _-\/03([y%?NbVaq E032Uf} JJ /`xslk;nd5'000p],aL"L ˦3X`W'>V ^aTbzû7/  pts۪/!tP.H:f[v62D2X[2(hI1pٰ1_ 1zpdw~ 4@1c~~1Yo_}>=S/H? 73p)iGs_Qc~=gi%B?gg!Or^0 ío!y?7% /|eزʏ_fd&@ ܹ #'oϊO8XɊMA-0o y ?~v<K NN he.-A Wޜdh:pNH@x{V P fbk`$-*jmm!K}O1|~>{q߃ _f@_ X~b60(21p3_av)Vq5IENDB`PK |A1#*$nuvola/22x22/devices/cdrom_mount.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<XIDATxb?-@K`?~oFFf7aQN I^^vI{/ܿ`ׯ_v03=?>M`bCݦ37FWO7@PAL?J| pao?֣@ XF w] ~'/<[X(ZG`Sӥ ;. o?@k(~'/4/۠a1/"buB#޼g`oO / _10de3DDhD  ? f@?hㅉ" ߾20<{`l¤]T! R @P3k0j@Uzp @] L8 A#݇ R Vnl* 3l($#%.I4uq`:? gxp7߁/:P+'@cRL[O@v` ff`x >|z *.p? `"a`dgd`gX$&WR|A .gaSXx + ג %y [ + , @L43XA'? ['ֿd`8pay @ 0@+ @o}Fлn13HJK0[S'-Ȱi5T}_0 e܅^C  =c'@`?zz_", _?C e@;Ϡ(ϰik>0pf`cfbbPaؽ{åM@࠸~cǮc?0|fOx<0c1U7qV..^.Nqi]ac?-}  >g _\۽|߿gPTd`&qVVh>f 엍 .OD%a #͠#`j_l_>s+%D1Cr(s`&HrH`xOӷ bb @Ás330p12H00| 7g`Z:yrߔ _Ypuz~K?~ .2h(\#0;a@,3xzz[`4>iC=n 31 @c"0Ib @Lt -ǫWKrç=2*Ë?8th0ÁwI1!'00! ?  FPy+>!شC]x>mbgccx 7 \l\b0ga ~`tӉ(G1Te@o;o/  K m:IENDB`PK |A1Rx""&nuvola/22x22/devices/cdrom_unmount.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@s`FFF_~+;a.OQ1.C^^Ni?_xÇr'ӗ'߾]H@,6 c@_47;3o_>|Kq)~b1Pј*)(7@>vvN6ϟ,߷`Nj{?`ffLL2.(|_|@1 W`Ɨ7100  ߾ lLIapX q%׃|e`O$W@lSؿc`@  "pr  b ^00h*2Xڤ01 ;B .f$.;пAgn]f`yJ K W{te)"lJm6XHFț ML3޾4ñn^* 4 0?,\@W3(208sp] 2(200\=AK `Ϡp?#+pV89dD,eC Hb ??IsLk9? O sh3#@ (0 nex<&1pR#zXf pP|?Y ~#1Wx/㟆0ñ R!e!+ ??DYd``F#@003 eaddc}0ؿ pPܸwһW@E@K#UAϐwVw?XtY؁{O6W,;|  r <д 0^W3&MIQ eb۷  L?i⁽7e 2 }$G/^35ʿo~_1uVlb N )?b^`}Â)S߽~e*P4H X of?X,H%n`x(M`3Bi 3redJ_.!ag^~~Z/KQI `$h@Ճ;>ưuK@.ECf0([@J9 ik(*Ɋ j>yk׎=|WRO S.>=ͪPߠt JRE K{kIENDB`PK |A1..'nuvola/22x22/devices/cdwriter_mount.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@ƍ`_? L@o" ,n2\:\g=p]s; _>22g8 Xm@c lyX3~WƏ'G{2\Xn@1a1f.g^۵o@"޿+aid``baD2 W2g(gZyT7@_c' Ŀߗ{CX<6a C!ʨW!{ď<@|sPKXyv\biT910 |@Op̂BoP@_00xG3yW020K &j.c) @*j[ ~+Π2 Irx1 cbn@!v Y3c09݇Z (uC2: @`$xE9!)2qw1wyp1U' _?10\PT=Чb*< ʊ@$@ dg`xj8b wa( +`K10>z!h}<#+Aa зB ,6cHP#OnwN2}d~a6k+Cy@E@ V@s?Oa0(fdaPqaܓ'p) p0cX} Ct"| lO/}zPX!0%22`W`}4C |xٹxVpr%+1p8(ڶ/H@Pdj10=:PA/4/'41ӈ , \@`2\޽a˿n08\0J#AG>uL2m80@ :-#e`R*I`_ӷ bb @Ás> 0T}ݯl`ui)']T W*0̴g8W B 9ؘ8Jr.27b"z/̲[3|4Qj $Y1rpy ÑX 0n(w@> @L`W0+9q΃=ͷT~k(ph]qR4@! ?  FP6f?fv5YN3WY E^^.?L'p>p-U<8û_}?~pz ayT2xaga`g |We@oj/ΰ SQagnm IENDB`PK |A19g)nuvola/22x22/devices/cdwriter_unmount.pngUT ]]AvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb?-@*5` F&?@/ Lv|܂Ҍ|+Wޞ_ e֡Grtf((*Vq9jՕ8Ŀ'߯S~kIaf;A. Vﭸ2-@CP' Qzmƻ!՛Xa`K {=?ȡ/<ҏ>@K `8I 6i3| |@ o(W/@K!Z%=A?0 LIF<M0C`+P|~A 9!`zĘr0ǁR@ fd4 hA`jyߏ? MN>ׂ,,`.ak@h4䄸?T!r/gb%g@yq5n \@h&`F neK]E寀L /y>1/~^>wˁԃ20 320 ``Ph·w?~o@SX!aS#0V׏?_O k' b 5S5~`FH?lo~yK]1J@f0`Wf4i'+,)ha@Dw _8(ܵ/p{ u$r̀l 13?_pٱG~ _۾u;@ Tb6@,59/<ݻ" ?WqU)P&wA G6FwVaXpj/ /׃TgD%fY % 1~ w4*} E?5Bl@`- atE&ȀCPCoC ;Ђ_hy4 Ƃbe5b578-*_@J?@. .D1d0/t`Z ,dUL,mdDA/}̝c3h0+G`M e&APc0+؇s ޝOIENDB`PK |A1VHH"nuvola/22x22/devices/dvd_mount.pngUT |]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-0@0rF&&?1[ōC\[S߿ݛ>ܽ'}ȿc``cd`ď20@`~g Q(!j$, /'_%߼R6uN޴Y W 98ؙ\~y< P ?YF%~jνacgr 8_.🃁ah3ܿ 'y3k@LHÆĬ47W :r _?bã_npk =a]5~k1| ;޽諹#@ /"buB#>a`#).XAn6ޙv`o!p;o000X1SE3;/g#( 狨( ǟ2A 蛿 ~awVbx/Jp1ܹ󆁏gM6}*@@\#0qk+`4`\x7ÿ R"?g0b`aaax+ \l ?d]0cß< pPryI2I4ITs^W~}{XY9>ca/ "`h",b 4 s p @ѿ O?c \2hjb8qgg T@J2+) ,L A f@_10p3ú5zB܂ ;fXA R]e`<࡞>6񣧗>e/3PP3(3qaӰ ܿظyvpi8s8(ر _30|F 7>3Ñ~,f * ."͠+lAӃl6˗k/} Ғ N%~>e#5QI`s3pqq1037 C_} }-4`Led`x!!>E O2] 4AAAg_ ]K'OpCpPpr@ 0}Pop|)ǯą@s21q B˹>&? Z8/^,(++z | @Py&ñL Ǯbbaz'Xai`` &##33xji^SsZnxS&_ex''`?.7Ua f8.8)`i`a @K7ffvX qP~v56699cWuE>>^fX} o7W=:  u߿ƒt"Q ?y8|1|;߁.U@r+@q IENDB`PK |A1Oi$nuvola/22x22/devices/dvd_unmount.pngUT x]]AvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<=IDATxb?-@K`ο~a&&G6N.^>NI>}Ӈ۵7C߾Hg``A ;@1\l~)Rl a$$ ! ׯ ^`7êM'.i(d`db`g~ݻ֭s B1J߿EETGj0A Fb ZJ ~c&+ 3C ?n}pm_oC?OM- X\7CUFI]F_d>|Sq~v!n6w?0X0|a;  ^}cm'.$dYPPS)~^a*% ZK% ;6" &&+ llFF yeM4bc`FCx %7o2x+0Zz[`Xaex0?'o kVwVl`8(apU3z?[= -y^`g/3O ^eHO0f`@3XYd|P֏7`v/c3 `Xda`x|OÛ_~cH w`c`KHJ @2n[g͙6XJWOBoHDRo^00\<#;'fVFNcеL@z`!QNIY- biV6&HI? @2GLy7>' O_}r (U10-a`` rLLy`aadݯ_L?\? Fly,@`|@A`jvwn13X 3,_^l+eP o_?lG/yUGD7E@_  SAyE>@kY$C30޿鍷 @0uk2|7`Pa`b`0``0`bx`J1a/ĕ  _60<r2P)@ ~kYb@C@enFd'H(P}z߾( 31}yviGfP䟿'л?B\ ÿPcaϦ+ kH ݆ݹ?/$5#8 yCzlo_ rr k2 t$C.gdOZV f``Qb7H@}wnnq5.>+!PADeAfչx.a#(7B b@d @`8EEف #P@]t '?#PjF6__2}_3QqyAfFE9>}TSv^w << xd ̠ (0| .]~]K_0&`'!. <\oRpq93ÙǟDs2016'ç?8(֭[k2APrE7p800Xx8aokrhC/е|@J3|d`c6Ǐg<d@3-n[#O} F] L@_/+db@`!q>`uSȵ6d8yû_}O0<i?n۳dXBexd0bŋ|dIENDB`PK |A1 KK$nuvola/22x22/devices/hdd_unmount.pngUT l]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  _nl2BU0"3LP>3I@?FO=>kƩ_| fƄ3pJ `!3  ef_g`xxĉY_ @P3piK1L `r5 < *8#+%XA/Xx5*$Af?rKkrq2C_$ N(P30p20HKyr 3l0+#İa0;. qI%NN6)/8ܙ .A cf8 t߿K؀a-!(((cF--+/Ǐ.")~F&#Oa1gs`!!-3ca&11f߿h?s@?b_߿`GA+00J+_|V   @ J3A5 2HII , ߾}d $ 4#Л` Ar0 < ڼL6XBB\Ç ?~Z| C2#ֲ, JJllBI1AĆp\E,0YؘYA`F.../_] 8 /_de077gC~pU^mPR#@ VII ![ <<\ `WP0{ ?A> oXϯlv 3B" A!sD0a-Lk֭yG29n@CD3rTag3 @1Ҫ UM }&IENDB`PK |A1H 'nuvola/22x22/devices/ipod.pngUT d]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<1IDATxb?2((5fffLL`qVVFFF?002012$Y׮ݰi~3 XЀALpO~| 47 fpYYU5u=E,\8s+Pb#0@+W0,^w <`?/؂7o0ԃ f A6 0 ?FaAN+A/2(\H 0 )eFF@>2/_ Cwo8x1| a0 /0fb8*P3ſ ¢ 0I5LL `Fϟ?0Hw 11aF`P?~~0|0  ,A A&>~ <` 󟁉 d3؜1}jy_@gH`rBh5(@~'P (l dc`cH& ,?.̺"" ԟ?3<{ P=0 0 f`/`acbg $a{PP0dw`"UAd((ht_. A.(Aa `YXY(@aq1ص ~8k,[AA?fH0 1'w>]v8,A AX 0 y eNNvǏ_-5H˗ o~+G @aq1#( O ?~fFApG&ȵFa0 + ;;'ՠ0ϟ?`ׂ)X&&&V`\1@a|K>@Qdȥ ÊX1 beeg=x߿|@6 +SiiEa` 4PV)g?~ ⳬґr?IENDB`PK |A1[o__!nuvola/22x22/devices/joystick.pngUT ^]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@tvv߻w/mܹs!Ǡ (WE30_|% ?|'O eAWe5`=߿@201p1@|E@L`@33'3ß?_?i[|oL@|`ff;"""o߾ " af+ 6+qtTcbge}ٯ u{@ӧ7 ݆7n㧰Z͛77 Z4qEEL~1 2I2j>zû Y<B &GMM+ii; )*6EE蒿 ,, _Fׯ.47…otuU#"lX~0q07  >g0avl 4l&oߞda':ZH0J߾sC#8Ç//Di2rJ0HH)03 jR/8=\] 2CBtm$88 T@ #5s~2Zag|+@VYb zyZJ0011?`$ᇴϓ ,L~g; X@Z_z*?8zC``120}:3&fts+Ww=P bUcʹ@?o@h1H/vOܸðmgk׏ @(+'?ra .r?ap ɠ6??TB0/0 }ÙS^X+= +@93]}eg`ba`ן3H /`8ztsߺ{V`Tqd(H)@pp0eYx @cF4('KO0\|ti۟?@^cb9ѫ 윌~{)E=kML eXxF` r Ѕ޽yo?z~D7|cddT*A7O?~[.W9fA>`F/~0,]a߿Cb@123DVFNN==<--UEVV&|=vl" llIDATx @gN,f^lyq1$:Co%[1@8TOH~Sa[9?+. &R &9|Z 2H3CU@ J ?`d02B\Mowq}a-*?Կ}5{aw @@m0̬B8L$p1p 1X1x'ͯ103c@?>VB}~ >1<{Q]IVo: 4-@6vݬ,& ~<| V =g8N ~̟] F,5Y -%|1{񚁍 2l 2 ~22{ʐ9omVCmFf_+-2f++;ï_i 0ly C35[|? '{PedcťZͨ+$>|,pOa "%_0ct~߉8hk0Qw3.4pdcSg5iG ?X,W2(d]ʪߓq8@{ԯs7cVY%~|p o1aOo3bU7ӵU'0L ȷb0ba`ˏ ?}aSfgds Mn X>__g IȆ@, <;9leT>?_En3|}P/rÐ>-_A.>2 ;YyYk1Hfcx0ae"/->U.2t`{@.Gw) 3DVv|ߚ o>gx<0`Rex,*̰Ej{ !ws|?̿y pSq%^Ҳ K.dU_9ߟ^޷2@13|d8[5aEQAA[o1< t0,x})@C'2=,~ |?6>?2Te~2Ӎ&2O @ B\ @Cك[@-JaV  jeSep9)JzuQ#P @! dc~D 6Ta1ʊ_y/ 1+r 0FIENDB`PK|A1uOIJ!nuvola/22x22/devices/mo_mount.pngUT P]]AuPQux UkT$013#mBEI"&Q k) 2Awh(rHBE VjEm l$8R >*y%!23?|~߽HzN8[7fqϽQ|k$so)Ԫ+u*@Q-P R)5 `* ǩY% |4-gR뻲L"㏗\`KC/ 7B4EjsXVhJbaV$otI4fiN*#yOZ73}mdt:o~-&2<7;[`T8p dH2msNAZ "^,x8q͏xy|FVQppϬ܆SR|"8G!u&33Ӱoh1.2 sXrQ 5X0J|@$rčF+gnرcjhׂ?C'^Uߊ5r \o%j)֊Hr` M*$K :UXZI֊-ibF_3ϾoP=ScW]h,xif(ۍ{*%"thۮ̌ƥ}Y8Ǔ/~"7=ȈHU&k `xnnU1=1] bMߌ'KE*S5Xgi؀h:0/ kCq&12Ӗ-5[KBl'=l WcN(# JDeO>\Nw\PS'2"h&ťE[J_x`Vg-MqEQv9:4Hs1G;Ͼo0X͚>krC6л(^}zKA9kLCBElle!s\x`B@\pֺC;!)mPK |A1;'1#nuvola/22x22/devices/mo_unmount.pngUT J]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@/h==ڶ``fdb`bdÿϞ0.FFV 8|Ef`]]a ~*}a?Õ6B^^AEM? b?77ׯ_/g]@`utl>|_2A[у 013zr & \ e9? d?y󑁋 f1 3Ǐ oYX~p2x}~jo_1 '`P H00q1 /|d_.nn-*p[D@LЀgd)ӯ90a / %) &. **/;+baK?]8 1 0A .febfx5Åρ1ZL ,0gF߿ 0Ò7Р_L " ^# P'Х_>bagfPRUb $,(?ԕ1{m\89%)0[&o_20~cdfF_n.Y,@`O>>np>Paf)A)?.%N)Y)!V`Xa;8t&|ı}~}d @Y70~l @Þ}qXMa֘?ϟBvvN) e4h?Jd=8H=JdV 2?G ڊ?=IENDB`PK |A1((nuvola/22x22/devices/modem.pngUT D]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @,pgffǧׯ@?@ϟ?߀O ߿@47o޼ڿlb7DK WWW7aaaajb1 BBB ߿_|pAbBN 6s 2䄉 n0777X`VVVHM X(5QII ? d 3Ղ@߃`@,H2Ti@.ah  {`-O> WafccӨWx cFӧO`_9sׯ 4¼zř` 8@.@$$ [Pqpp0+f-##`6H pߌt?l0@1Ҫ D3fDyPipIENDB`PK }|A16ssnuvola/22x22/devices/mouse.pngUT >]]AvPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   Y L =##-1022m篽A;'KOąyL߽vvڹc?##3Ĭ]ϟ}K[YrZaI ?\|QA@AZHF]G,;\/^\<4ȵ ӟoܸkm!!\&&N>> '//(a<PAOOߪT @}˗>?JKfy'Û/]bd``b`F33133Yed8lmmty* fPHK1(țYYE+sKQ+=c``eL@o ) /klug?~<@̂ \\Hp/122<{ 4b.4@xcPpq&ba-ׯ>~CGZ NgPTffbx?kA_ h D m߱@1w ?~3?~wRW7bcdx+Ù3deXx>-3ĥ1l?yw !D|ɭo޼4WQ3O |\ #а_ ~f`xÑc0Č`c]OܔWRS`/ýku9DiDϿnpv fXWo}aAC-m?.z &+ WPbx#W`ftyMb0/Л0_vo/T4 й1~7 ; 9 @8 2~ ;._97ke}~~qXfaAʄ?oWO2\|嫳0Shw`6T@'i⩤%/&$?^y߾=T 247HS0p2(]]g H: hV.yaIENDB`PK {|A1i//"nuvola/22x22/devices/nfs_mount.pngUT :]]AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@T -eggV 6#fbb122123,ϟھmۊ l sejff`ffdXX lvv6A ׮=d9xpO @`A%4yxx ?~ H.d,,0K~ (( &&a 4x>8 S$`9TE]}<6 vI&duwR+cF{Lz̚vZEf qҙ_@QX@@PbP|hY ff r?  uARRF($ğbvvQ2X8?0A^^EYd&@@bYB@@@2@r $bAZ {QQq`\)~@ ԰gFOpX\.F  Y&11io2`>m99 p 9 C A- <8 +&~1|Ң RR2@9l&(@ E Ļi8pyi1k;2D90|0H20l>Kdcs,C6W=g_xAVC]Ck 8U] Ka)Dbh^ ",l Jde ;/_ v10...ׯs`eׯ)Ęas M[T2?fnv. ;0<A>VMb$1&&22R _|3$#7É+J3hg%H1aieQN[ [e 8l[' X@AL`c>7 *çOYExx e?6xٕ۶9 (`x_м fE15G2\`*%p`f|@1` eO/_>Zb(3888-7j3?e(CMeL6JR$a \@~2|f'oĂ@E4 ##/yE1$EKWĘ+K+ MIǸ4{ f` sP%,N B@|h(`}a F @  f @1hdd$0e_|A7C򹜅ҟϿ8tܕOAC ߾? .{6U.@ ȂgϞ1@UP t!00}`te߁t! 2|c `A8m,5"(IENDB`PK x|A1Pss$nuvola/22x22/devices/nfs_unmount.pngUT 4]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@tB%\88~33330221fcff& fcx#On^=77Af`9jkE3r1  ,, a13\g6ǎ47@ fff*b1@C!\l`?~01} ""4@_`!Z<<`Л`CiPg?(j@o..v/TA$  @  Z\\`CF%0_4_&nnii916n. 8qVE 1,XN dfV pP]). / ?AC\MT sfa ?XK(~  irJJ#%\ #\%%a`8˩߸q  ʊ3˜j(D#$_h 9AAAI?),""6 %7 JjPa| L6XZZBӧ >}$ hlAOO] ;kBd320H/0Y 777Ë>2eo޼a36CW ,R@S@@2L^^ϟ?\N}OrO >`ef@9&kLLYYo~gx8#(S013"㙛7V]۷e^^ANN^ZI`R _@FQ>sAw eȥP˙X8`zݿ hP :P'i3U^ ?U]jij ̧ L>qa@`3|A[[I--,~ѳ"r* 2k.Kg?gce͚M4!Kn  j _Z%. egxXZ3" /)Gh@ѣ?~7t'`vk>I^ggÇw_?~446X\\%]|䇕@o 90{(v>JC9]nIENDB`PK u|A1{-nuvola/22x22/devices/pda.pngUT .]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<4IDATxb?-@11 23׿ ` #7 l?Izzz66{cx H/05!߿  n ׯ_XpZ2B1_<{p3 %e?~f` A#Ó\c05z?]0_BFAAҊoFw ;P7 W~1 w@(d3P ÇO~06O@?@) PRh@_|ڿ =@"0}hx A}D Pb?!*A2 BDР7@_d`x L .bB~^A0| Tj0@ ~1)~3 f;0LA_`d2203b0ab}ÅXX@ꙘXO@C"7Їܜ \@5@pAUuY8X4t^<{ m }N>A>a]MC`vHQ  YLLA[[APPŅddA%abfAb۷_xǠ ߟ 2B}66A ̬@q9/2ܻw 9;yf0 qX|ʈdT GDKc\>g-CG Gz6iDf]!|/ʓF#В_￾02i1H$c0"]X><.VJ oEu1@a$?1H13hG3|$߿N|  W~gXPo j9🁙 ~&9P5,r(ϯ ?a7Xz@(3111pr#XV\h}_?YXXիw l(Rl222 `? ⢢ ?~? ߿|b?o_TYYY~tk 70M b ( 8zQ\ @,h.f`xݻfa89.فH "f&`C P >{O>e5ճ01yœfׯ_Lo߾ ~3 @ EB13Z|GP2 %_ iU Jl$IENDB`PK p|A12%q))!nuvola/22x22/devices/pda_blue.pngUT $]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11 2'%SqhbDb0>g-[H P 4 uv4wX# ɿ0 289H2dq @ 5b0#0pI [ ?3|1|;=ŗ 7z1㆙9 (zEJ-؁?$ ݻ;?8 5L0LGKow@uo$gPI*P =r[MNPZ-~ĔoR +uR =@.*``d[ h'@ Daf4 ?  ru ZUVL>1kQb>ո[&]r@h. 6'E_~f?/` #`b@ab?>y޿}h0+ ~1  ZG7`z`VpR?cx/;`?A,HA@A40%3h1h0'3#70\'3+wVFp Ul0@__$9|& iADa{V`X y(c@_i"H/n,J[>V!%eIR-MAftQUB1Ts33{ư ?#?&o$>0adcx 0A!`B-+3fdaqI'ݧ厁 Ò2De8w> 3<ÉG Ԁ3 @Vcepfdc`be !cENp&!? 0xy%؁Vb/<Ƞ, bl40M~? (#3DXn?p& P g*O2y9Xٙ88~FVNpay$ǿ_?~'ӷ_ F:N@ EB03(0@%o(厗@|hg bUe `YG,$IENDB`PK m|A1 E$nuvola/22x22/devices/print_class.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?.WwFFFf&f3殙93ữo87;~p)O>1: +W13ps9 & fdcCB%1ܹs@,oSQQ[BB.Pe0@032MkoF 600j|3;9 i0@'O|??3篟 v.b/^`% /Νnݺ  )E:<Lq2fcxYdŸD۷_EE%$ }/_>sӧ  jcCC73̿!° 31}#+CA~!e>;wrРRR&2bgOU6x8gA3Wׯ>1:ݵk;_xŋu܀K#[  fصu99 +,c8M`8r ?@YLLA@@tcfm$++:r~gc_?1 ?|`x۷_zWVVcll2ǽ{7N~?7ӧn  AAq σR߿?~ӯlrr;ݵͅl9vƍ/\ ]r[b<+\bׯ߷XJIEm|ϟ?~ƥ=z8c~U%L-w3SΝb:}េ={#++<" U̥324ÛSof*Vs@ 5 _^b @@7TׯϏ߷ӧlUZ?v`z~ᅶ6SMmg ^[0|dfx-îݛo zr5;;Ç޽.3$%e<˫Dxg "' r 81221?@9ϟ<E XU1pCjJ@_>nܸS .Y̚0۷IENDB`PK j|A1ne'z<<&nuvola/22x22/devices/print_printer.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb,+Ȁ+kccQFF\` &r,[jooo]P O?V_~)( 0`30njJMt5+vvnv~ ׿?AVO1矿 B aѣ <<  2@\ hi 2 X~3?e.4RQ cggcfx=@@{ֿA _@C v%o@ LLL J _F.$ ]ի߿ *] u/9_ ebgga;v10e JKXHIIrqh32B#ÿ@ O_`PA^^{Ϯ}pC 1>!={? E3A`~F"#(Bx `o?#0g&SfV6&3AUEA\\ X乹9> ? _~Z7k>3|f6(}`ǡAXXH X~W& fdx իO.JJj`D؁>Nd| X޿pMNN@@~pA d9,ccd;0^>}HzFb&H$ IAAJ Ca333C"('p=0X@ X~C_3̙! WXp@,gИ!88,`<} @,_|j OAƖAGGq@栱Aq°iF`P$6߼yoG@IVR}}-11a`z?C@\x"IIQw77Oaf)Jr JNL!)P`x3={ԩ4&pPdHspXL}o`X`j߼ի?ӷ=zgg'AA>66TmP ` ĉ`0z?A}Ͽr7o/**EPPX>{7;}zVǎ`s1$? n  3w¨IENDB`PK g|A1% nuvola/22x22/devices/printer.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb 6k+ZIHJ* 2%+`g`9r)wuUyϞ=_|ɓ@mJUwwMAAa|| || c8{#' _b4`0%0_/_6^~a_߾>y8{qlff^[())x 7n.6>^>N^.VF^\< 32}\^cgسgm$; 0Cq)8.z_8X꯵ I kd!pVj/p!duHqҕ3Z vP@,bb@|珟 ?>}fxgbLLLd́p2s03زi100K1 0/{_ _q2l 4zIC‚ 1l#@ɗ X.{M`fae`b`͠!8 `E 3020p1;In`gϟ~0|?89~pk3$+33$0ebcL@10/"#;01o&ρg fM欟  ZjpI@e>e026gOǏ ߾}@,޽c`ȠT^x$Xq̰~:`~b&KPO> bd, ee ZZ ǟ]]133 @H`Xbw,7J`6?,>z`HCN ++'SڴiF`g$|!a A|/ 33#(5IENDB`PK d|A1*  nuvola/22x22/devices/raid.pngUT  ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?CxxxK9spbaaf`ddb&&&( *ëW؞=" 45ueexyXXX c @2Ci0}Cqq#G N 33qhrsy~oB,` YX88DDՁK_~~A\` {<8`A$NN/j @ 2 0A_ AJJVMd@ fccĢ -f?o!,))/ @,P'\r > ?ఇE&ŕ߼y@`լu$%.U?$@_!A l?͛xl,;@q#b,bC0B'gp M- o޼ʁҧ8a3 dbaJ 0qrr=IOx >///F7n|= .*&eeL09ë7 Ϣ'b*-q!G0*M*,bb6h-33G^X~a@wo?xpQZ_UYPKA oz#'" N-?3 L?dt(ûcPyq۷ Rxy8Xy OK$0t״@cv|rn0 ܼ6 2 ?V$/b2exa֎ 1\xvͻ q08EƝAFNdrliq0~+OVAMA[e3I3^c`> 353 YĂ`22 3p0<)+ç L??0 _fd~`cՏ /I0`AVVQ h;@p#LZXP@O./, Bh@+e00ͲmdPg}%+;'05˰qH 5nef|*X9yvgbȠ) ;A#Η@^ÙABB]@@Dի'@`>>>+; od~c \?eCc()/ ޅ '"KHfݟ?!a@q!)IAH?hP1hkhm Jzׯ(###ـXYYXxXyTLn7dOJXX:fg1wO ?c`dp n&iNĂ>>^?d ;? _UUh `dXqi) 2 b~pMSnd?0nG/n?yZ`VV.%yNNNvfN70x[812׺ ~ a<0[p?8ØῬ_pɋ篘7[6ϟLJ0gc`c#}pij?GI ߽{@lmm-`0 lMѤ ûoưڧ[7  ,yx%1$0k`UQB2Ť<_3Kږr̸xNx nV+))@)/ӟ010dr6_2{d?-AaUk?WAf]c.IENDB`PK a|A1=&nuvola/22x22/devices/samba_unmount.pngUT ]]AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<RIDATxb?3Df2a|L6) A&}9 4,<bAȰQM!1 *,Lzz ߁V)*>*`, (g% #`f,27``bgg;߆IS+ ~ðs>=A510֟&&s `F gA iXN67@C?ex!]YA6Em) AV!.a /+ˁl@] x{ګbztr2~^.N3.=ɠȪQ5uN׋O 3TxG`rC#YGOYmg}AK'ñ#Td$䜁Kz2 OYY-)AOg0at2åW?_cp{҈ rrJr@cd``V6a>>\ 0~`0A!NdA\\ZSׯAIÿ߿a .  ꊉ 1#߿a0cW71|z/P_221(**,`,&&L >} yyXߟ?s.< PyBr1Ǐ~ԋȐ0o`rdD&x66ViiINvvva 209޽{v 0/7>@c`ceg:f@!ei&>>~`A@ׯ ߾}Hf&̡LL ch6.; , #GNaff 1 GS,,@p3ឿΰsϾ?} F--Sw^GcW"~#++`ix#KSVrrr2-`3 +^yrۀf `xé KP4/+|iw[G =2\Lj?-Z7 X f \'/,OsYe3H2oK~YK ~f.x9G/_ ,O1J - /c?;'_?#6`@I.ciffcV!/&,|r76F_c%`dD6d&@MUDIENDB`PK \|A1w) nuvola/22x22/devices/scanner.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxbl`@Y&//>|yWyoX޽~ /_9 ߾}}j||j?c7Ï?޿~~>}ə33߽{yln Ƭ LLlYsӧ&&f+??/(ӧo.^<'t'`?exŷK.SUU@߀w/_-bcq6ӧwl0@1?}z?}0 rO\z(ׯ~߿dBH3}t`bյ* TL@Ç7_|WSSי߿ac ߿]rq?A/`sff# ãGL ӟ?P7ϟϟ 5L@%L;A/ 2#؂?~1} &2  R~ L->`S}W/  fkkK@1t1"==KCC+!ao\e76g;0 A k <9Ɏ ~J*ɊTGdzËle11p1201} nA߿=ztg@`K Kr sZ1n"p??0#[3231Ǡ$!.Tϯ&G _ l,LV(2u~~)`.F?2hj2.^ebbp`vaarC}}㓍WM<{$gS>fF~3c 06```ab`H4cbp&/`N=~"CII'wU⟠ NXeWvf~>N>Ę1 0y)bH1`ðnVw\ yx ' L0|AA?OEo 4a̅ ~ۧ _^ Б@ݤ 7߿O_5P>QG pqYX8̬j~/a7I NA2*b66 lĘ`Ƅ\#>IENDB`PK S|A1;QQnuvola/22x22/devices/tablet.pngUT \]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11K޿f[[b-wx%e`zD)GA7ۗ/~cboV?^c`xv`b_AMDN,2 >u?`,=ßߜW~I9WX{8t67X Xŀ>'Ɵ3cReg6Vҗ(Փv׻G0 Ó'/\=[ATH7yu؝_T]_K%@H#H*MCD\WZ_A+W` `B 3O~t RNr-j}y}7_W=ӏ8?nD)0KZU@7N8|atTt0ï ,?+0Agbfx]ѵہ"oAaY1hq qm?oH)c E.?^3p2p2|7b y$N~'AmT ; 8h2rPbbv5o ~a`@QϿ ؀޸q-6@LLL -OOQ~v0/ XvŰh/FF ~Cwl= | +,-r ,;nf`ؼw_o34еٓ^rc9_f6FAE_JXj#æ?Mx@_V3:@N_ޱ kFyy! O`^ \ L | 20̘wIEܜ4`&%֠ ѳˏ]c$.Ff6FW_ϰsI;WumWuNA&ʯ=J,mu'`>FpЉ/wmpD{j7dS)Ϸ{̛-,(n??Po@[ @ l"zoK!Pw@@V)@WTIENDB`PK |A12/\\nuvola/22x22/devices/tv.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`] @ l "p3(^f[ {O&cfZ^N!)KU݉f`{qU32@`#d8~0 23a'@ Q >}bd`bbr۹s#@ fee}M,8(0|G3|d~.O| wEn_;!$,ٳg ?9 6߿Ϡ0w~*'S/>3\d8 zWl÷ _'1e #װ0B_?~1I2xI1L4ag n^[P$`?;p6u&4pjaBJ @`6JJ11|䩓 ?dj,tlց)&0H496رcPl< l8r*(X>89R(`8vBPeb`ze.MMM?GW?dx.$Cc@^@|u6_%%@3->Û7oVjr{?H~4J bhX2O))RWe@v10.szò&R ,e ͪ&<KIENDB`PK sA1t/wJ*nuvola/22x22/devices/usbpendrive_mount.pngUT b]AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<jIDATxb?-@11   @, ">~Ï_/ ?_ܼVR2BB,,ظiϞ5y @,?߿002R tWQgabd`a`ё8yrO\ .6[ LKKcOEEU>VVvE \\ BB Wg$P#3@v_P0((hzyY1~oLM88$$v~0{ 0 ȕnnZ||< 2]2 &6Vf a{P_mF@,hdGAPEEFrqaׯV;S=s~BSX?1@ \Y١Cɓ a`a (iN1L9YH8óm?5w#=b(#ׯԤu?|##Т X9e /t2Ka*fgS'0pcfhnncj`h 0fnBomƽ ,N`gFG&?K?ϒ;6XN{bVO>~ @xG2L;7A5:2ßt #Ơ+.y7ۊH o߾un609=`8 0]u v}8üݼ+0ßoL L &$ &a . u;~| ǎm]@CZZ`-֬qX~tigN-gLSf,jXYxAMAM׭ @T́;<]o_3ۗ/o-V(H3|񗁅 @  M/`n:ڵ܏ <9~ES3` b.- LUIAhW `` `e(9A2( tɯ-_=HYTuѩ;)`n1@1{`Lv uO @r30fa`a@K7=:@C 2JFI28u _}O0'PbU,(##8 V  |? o;? o MLe6IENDB`PK nA1pt,nuvola/22x22/devices/usbpendrive_unmount.pngUT b]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @, "6Ǐ  cï_, T {~66.>>Q[QQ1sqqi]^^N_߾۴i+WM blE߿ VU  - ʕݗ +((`li`/ , k30 < nn8++lgg}9~W^;##AII6 'aؾ}Usn] 8##L77C UU)g`a? 3/qq6f/0L \ ԰49?r FwA BAL? e1'[,Ăl( G$}!55S,EFPABAXŏ SlzM/L*X A`FK(D << BB @30|xa« s-xwԢ?zj;`6#CCt+kWqO ޳] ,41 ~pSkߺm'O-j_c +) ,+çO}4AJ |gxٳ֭;7iP%dW"|ԩ÷nih0|' $,p ].09~dq /8W)((u_kwwsKxNff9/xx@^bab ٳemf-[]rU'z> E@ O>e015a_!4_O3p31  @`J  222 2A@u j~a ޼d` @`v); 6+++ ߁?` &` Aa \ {EHk̃ Q T@0 h, C@@@ cAf+ ``c`ddeHz`)cpS/_@OK[?=gᬸ$. Avq21:č@S(rhOo<`f#Q7οx/b0Uc`Fu1@a }wAYA/3?gLocp1b`cbVP 7 ((#(J3$lM;1겇*ٙ3o_0| Xf8گ7K?d.AT~C g@'3kp x~}ׯo~h?`P``alNiIENDB`PK |A1H-D$nuvola/22x22/devices/zip_unmount.pngUT ]]AuPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@PJ...))7o~?@rfj$w~N%999>=x>,,,XRRRP''@@ASF^yyy#fffŷn  @A$;w01sp0r?@d?r s 1;+EbKT1.'vJ˃835 MqDy7 Tf259 ss,HZ@`A HX * 3 ( `  @@G$,HldЕpa4@ > 022A% ?!>G6 };.ח >fa0(s3r3(CcO@K*@Zr(2<(!B߁i@ [#0AYYYtCi0 AA*?$3A .‡[5 0:P%7# TW_5 IJ?`@ .a``1K>>>/_0}ABBASSi^x ۀd3H/(3 ?}tӧx.f fPVl8(@r5(w21ĉ} Vx-Õ+Wݻ}@AI쫨` _ 4<S'3;AAA޽ǏJ0@ bkYY #dr}7o{Ǐ7@|( B7G6pLB0F ďddID U:IENDB`PK ]L>nuvola/22x22/filesystems/UT VMFSux PK i=1[ւ'nuvola/22x22/filesystems/chardevice.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@+gg>U~߿`ϟ`1~aǎ-S t#dlmGqqÇ޽dddO1 YXX z??y(7L%@ VQQQSQQQ濸pM|wzq=@W0567hW~PPpss3lWf  p|MAa ӧO u@ PR@\s/_}߿gx=Ǐ> X-AA@= f@AMPݾ}`@zALO)/ȅϟggx "d?0g| N K20ĥa)l///1@'00)^c$#%򘙙.+ ...A^~5''CB| ǯ>`)9+INX'YI 0ٳ~ )) N8stvӮ;O~eP[p{*?nG& qxBq 8\ 2bPp͛|= t5ff/g|R8Ʈo H說j +A CA>={.Cppß?^~ 3 dP 3bҼ  @`Ϟ=s722FJ^^A\{>>/$p޷ 5d$&2|~0o ZNUV63iiYٟ?&(fw$XY٘~ )&B\ᓕ3Ǔ w3p[׍?~|@`߼yw!@C$vo L 2 ?ACaAK[ʶ r[ݾ P@ ׮_@(na_ ,@IS q''M PX}gAT@e8K@_Țf.^xp]XX(u?ի gؾ}? @)ll.VV5f\R\pb/  ǫ(##++Ng@K5@SZGIENDB`PKi=1 eq$nuvola/22x22/filesystems/desktop.pngUT ZApPQux 5TkP"HDXvMRJa} )P,Hh +HEmu.(,e Q7FQQleQZMiVvZVBȼ5n$sjZ"F5mo]1LfO=J8KCGTU?7Xss2|e][Ń$ .l )RMVuj髣(f LW t6ҳʽ$k|*8F;>QL(wu<{- F͡t5łNGOqu|lߣ.V0&Ś+o -2fGBkH@SixιN'n1IjƿY][/ 3O'K>W gQ4}p>vk9exmڣ 8v\3jNոoZLJ?FL =OD㈸+}ͿzS]W,Q i2K3GgwA"b6FE9E\Ϊm ]j/ٳno5r7jzJ>]: l+ܴ[kϨ98a%6M=EM>5/ ͸rs/H%w x;syL3K( I@@`rf Etش92/S-RAZ m iL({{+BL4y#gVnJC%;1IVZwQ,PdaʏU&r0)afnT ',/~R_ͼam ՎL9BB G),mgic^f(R0ρ/gUEEt0/𗶜&~q͑aT[i.Zy!1Kz5F6a)5DHoHo͍;鍬 w; Y~Hic6FO>RfTtEt0lY9b*wý@J318"i~l^)!iMDt?PK i=1ײ;B!nuvola/22x22/filesystems/exec.pngUT ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-0@11 1 ll @/ HH)]/)i/.,Ν{hr1@` $xx$tddX>}be@ d )N'>I KyEIv!ׯ~?y@%  @pYXX彄L,,t-,x8f?u Ïϟ}O?@8  "˗30 ?e^~  * _ @u*,,2? x)VVן _ZᏈ_k ѿ_mffuP" pߛ'3^h t%_9?3d0Ȓ}à47.7˟?o> P7F&  FޟwoAOQ!5A5#Yf@Ø38.T(3WQe+*hh "F)GT6ӻ0Ш7 n/+,=à ' y VV\L'ï/u4>{3 s7n Ç]L?c ?k;V >~d ߮dq d@Ø307wS橓iw?𗓋/;߃@/_q@ U1dce59 <Źo@98 ׮2{^1#R4d@`(穏30JV2/10}>#0݃*2 a" ~Ϟ/_62 f,?bs __OϞ1|F;_>}|hy7X~΃o1 4+0(]dx 楋ܿ^10W@ n{(ȼ>X=zϟ.s#0(4Ћ^|JǏ׏߾Y` ,/C z)qb,3s#08?B U/ Qd&@]j ) IENDB`PK h=1ȧI(nuvola/22x22/filesystems/file_broken.pngUT zZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gb{Kd}= [T9Ά0}Ξ= Or3p9;3苉1X4u @,s2f3ܛW(A6ḍ5 V1 < n1|ڼ0XA*Ă~0HE0<`bcڝ̟͠A6.eB.yE^ 7nd8=BS6sq# P ho raa 98.w0k  3ծ.Eee?2,B d|Np$_xD<|puS4tt>x׏ybP?;= {g3 10<ٷ'`vfda`&k3f0d/B:,bB, 53..e*f afaa`Zl L%ZZ. ] @LY_Fg]5 d@f`x(Lrϭm~]t#0][=+7iC\ @t b@ @^g`x`>w>y w^ L T~ c`X9/` ! ՙ3n2|*0 a Ta''7KNcb_/ ,3| %) PS?` hf5w3 S+B`P ;߁b@@3P ~ c_0 lo`',&jժ @/2rچb Ln_|a( C `pbP2ى10yR*bMIENDB`PK i=1|8+nuvola/22x22/filesystems/file_important.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<KIDATxb?Chhhw;///߿08ř~8wE 3gbA: 3C- vdO66_Ã^ba! v oެZ#LMrt=0GpZ/Z )* pk`s@";bLz{ÿKdL- 3|UQePWbk;99#dK =@ϟ πޖb`f8jl&s ̜Ld@ Pf`xi BF ^fx52ЖM W֯g`E 3 P] a_߾cx|!+ 8r @ χk'31{5#@1ezk.Y |(Nvo`)7WWw770gH{{CG.ϟH@LY ?,daaVCH䆣g19}v .(cbx=cË؀ 1||LJJ0|y#&'2| ?$exnb 4a",Byߞ`o; ?=f?0'jk= 7H/8z p\ %5 o\g``e{/| `?fjo B!:AV-l0%`3?bK'j0<˃\61! lo uFV @ >dq47o230Cf@ k`  y 0)hĂħƆ  VjS@_X99~  lJ@-UTdP``Fol @)h3 ß4[0>z &Л0k`URbPba @JFG|<;`yr6@PA#nUUM@ /@!4X& Á9 9Da. ͠f P1d 3 `Ae/4s`Fh@7^070OX?B06ϟ?Af1UVmVy̿~^a&¬ Ь'@7FFn e@|J0@ސ-#IENDB`PK i=17ץ+nuvola/22x22/filesystems/file_temporary.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<7IDATxb?Chhhw;///߿08ř~8wE 3ggÅ| Oe + @ӿ 1X 3+21prq1s0piuM%#iƷ W^0?Ą>`} ?iFC.3ܺ9™Fa`ǯ`@.BhwW0 `?03X6IENDB`PK 0e=1Ѵ  #nuvola/22x22/filesystems/folder.pngUT \ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd7 V323߿ήK-ٽҥKXXX/\~7ٳdee=zĠðyba@ l_ne 5]/XSS3ٳgi.\w_|>@Ib03, ??aP999oEE:&&&VVzuxPP[E.^p;}zhgBs1P? Ϟf`ȅaa{{;ϟ޺uǮ\@LYX޿x'.ؐ9--VEE- X B?ƿ_~j c* _~eg~3Q޽ nx@,ܜ1b bҷ^7s~ǼmtO@ @o5} Bh 1D#ſ޾si-@|xOxX]䚿 a@/ ccx3ÙK7| Pb@ >9twF@@JkAa X|@%C,*\y ?_'ț oÅ/o![ Ї\| W\cxGs X=7Ynn#F{~2``F@1VFP&"P s^sgr})/_ 7%ncw74qnF~.V h տpg`OON X>> 3x3s0<,`e , L ~d7kFη/~{so.ݧ_|b`y8dd aX-0=1 ?A{33)//W@ @ ;738>t#o`*Lr/0&GFF`xR 'PXv=o~{ח~={FA0 M>.ď?+Ѐ??~˧? o3ȞG ſgbd`&ο ;@1&k=.IENDB`PK LB1Ѵ  (nuvola/22x22/filesystems/folder_blue.pngUT `^AoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd7 V323߿ήK-ٽҥKXXX/\~7ٳdee=zĠðyba@ l_ne 5]/XSS3ٳgi.\w_|>@Ib03, ??aP999oEE:&&&VVzuxPP[E.^p;}zhgBs1P? Ϟf`ȅaa{{;ϟ޺uǮ\@LYX޿x'.ؐ9--VEE- X B?ƿ_~j c* _~eg~3Q޽ nx@,ܜ1b bҷ^7s~ǼmtO@ @o5} Bh 1D#ſ޾si-@|xOxX]䚿 a@/ ccx3ÙK7| Pb@ >9twF@@JkAa X|@%C,*\y ?_'ț oÅ/o![ Ї\| W\cxGs X=7Ynn#F{~2``F@1VFP&"P s^sgr})/_ 7%ncw74qnF~.V h տpg`OON X>> 3x3s0<,`e , L ~d7kFη/~{so.ݧ_|b`y8dd aX-0=1 ?A{33)//W@ @ ;738>t#o`*Lr/0&GFF`xR 'PXv=o~{ח~={FA0 M>.ď?+Ѐ??~˧? o3ȞG ſgbd`&ο ;@1&k=.IENDB`PK LB1# k-nuvola/22x22/filesystems/folder_blue_open.pngUT `^ApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  FB\a|\e<19]|?i çW <| <| ? K pr1ɉr hY5qϣ=@B@,*+C՝Y؀L Ͽ20\?˫R|r\\b\"|l, ,, ~30a7 < V%?_fogfz?ï`/#?@دP] B̬&Z>L\šo@,s3?Aa Ġ|:>4PH,bPcnK7) 04F 10<'-L@9fFH:HCXY}~#;0u~ťKL/߾^~g8KHdr20p@h`a`a `ῡ31׏ zibaxo1~n ^32p21r 2_H0A]z=÷x3||P@0/q_#1 330]9a2!  Jl 1|׋g/u?yͳ\?L 4+,H" _190}'ƙ=baxKg3̛ @}g6Pٟb=C(QvEY N?fK ybar=b`eW``eaf`2B]J M@~}߳ 9xޟ9~R @ J$.TU0+P&+ ̿X2קW}|~z}xߏ~s` ?42`bdP JNis1̅rۋ??yy ??&7@o}ğ~‹L( `q™ G` T?b zbU@4 5=Sd*IENDB`PK -e=1l]](nuvola/22x22/filesystems/folder_cool.pngUT VZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxYW0DDD**+9Һ;;= ))) 炶 o2M73gi.\w/_Ͻw~Yb03=C1( d/"3H ȗa%__g^GDD8{%Ov}߷o_- @( g)vX999)) pvvۭ[=rҥKĄa0 3//ghh@!KFFf@E|# .0 k* >}_@Ͽ ?g0Vbde; nY UE8n %}'',I YA' H])SMw@G 00HjdgLeQѺATz@Cgd`egd 1=z?O?~㋁AД?Xb`&0af?~z tp@,o.`J @͟0_/8}99>`b70vn /3|ypϯ@ش8d~h00/?>|a8sڏOR^Jz g0h\g0Ub0xy$n/ CAu /p0<~6pbB_ɻtҞʤS T V /V63ktPy ~20ɃOkR ΜRg2X2rL`xyz/+;4CXT gz` &v?X.]׵@70|abJ3o1b~ r-?xùG?~mEMՐE/7F3NNYp9)`RdpGqvVff`2cbe`x Ǘ^`|W @,lYTTrs Ť< fb`c{Ő}0] +7`dd-0z >] _-ʰf;`32? ~ Pb, 92 1ge%; eKċ)1޻N9~AZ 1c`moV6?X 9 4 `beaeIpZ>"5k?#g? :zf2Og` 鳿?<~7yÇ ?1pd0@1p1p30J9M/Pabbcb`Ս3 ;o?~/Ɵ/>~c`x @/y4@1r1q03J2<j0_gڳg.\x񓧿||ϟ.ϟ?ps`&FF\| ?eҿ~1y+**1111ȀҫWÃ-:w⅃?~כ@ >30<}AF. ؀( ۹~֭[O=vFbBWst Ɔii)**jY H? O??~;Zb`@+0x> ?|7+%.66f&{3ܺu=@pp8gH ) I=[+}6ILW?bx ?~0/0YAp=ϟ3D2AѣEXE\`I s3UvI0㕑Q;';*  3e \l ʅk L~00ed8r3`ApՀEV`Idž}Z`.̎ "TZ 5U =mlH7v!FBҜ4J}MFù oH17 >~a^ ÿ`N ~? \\ f;7]pa7#[by_11|bJ~f v 5߿ |3P70)e\㳮ꕻ 47Ы <+ +@ CAA?~p!%;bw$fF k\<  ` g(v~k2\d`w=ó'MHW 䂫_3/ 0B9؁ٝh)8~ (%"p%7 W.J_ >~xܠ̲sUނ &/%`RvV` :`Lz߽c wA bݧ޽ggaxp0)0) 3 +;0I2#7~580^_ XDD/_6|,# `~F+?=0H7+0 C']E/^10\ϟW@%@/\|OFЅ?РϠ &6`83123z0I={(0?/Ë.ͼ 2 X~={g}&`K P(h@o` cf`X3zŠ·O Ͼ|du?{wu @<Ϣ󃺶ҿ89U0,Y.Pz s߯_}uKo|^}6\ @|Z 2+ןٿ|ǿo^=F_o>?s_2_3@1psK*`^e`db4cdf~F?/ o+qIENDB`PK =10D-nuvola/22x22/filesystems/folder_cyan_open.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?-@1`(^&í,$$/ݭB~|W!Fi^.v69!^^YK/w{+м`SERIaz3+#o Og|Jק eyE%yxX9.pfOqӀ 8@0h|b/;33+C[i' fbgc`a??1_ `x/ai  lon]e@٣14⠋СBg2$7>_6:撚@]57uR' i<qG^H?ofwb.e[ vjr$GD9mQ< lԲxWz?. d@ U~ 3W@_K;>>MK7[7,`3 c(( O`}+Чdgb %/70߽}@,R߽}0O`},FW?3<h ؁ Gf%bO@5yA͵1~vQVfaV&f^f&6@0o`Ja~ ϧo_~no?b8+#430m %AAtg&?o0|'0 ޼v(} XX}݇W@9/0ex h0E a`@K~023<Lwx> ~ @,\Ÿ? ;>Ad|BN`0 7@+ 3Re3ß3zq( X~=}ۯ3  " `b _&PZ[@,  .^x%#8=XZH:ffev_|h8 @Ġ%Õ~LW/BA#$gJ  ف)N߿o߯__뿟>skͼ 2 9"]XԜ7poN.9/?~޾~'?gz֯z_'pȄbdbc0SEϟd`x_[jGIENDB`PK )e=1lXX,nuvola/22x22/filesystems/folder_download.pngUT NZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd/F6g ܌_103߿ήK-ٽҥKXXX/\~7ٳdee=z`llʰzJba@=m kkjjxyy={,…?y˗χ~y߿7 P ffd`xfq?oo?0y+**1111ȀҫWÃ-:w⅃?۷;@ >`2<{A&V###Wl@LL\|zs.9}T@1 ?g`AP_h.A__9!!\YY5 X10#QU߿?x돫(D?߿1|? oe4xxؙYܹp֍g/-'.+"-v?U^x3NP{_O=g/oP0B  cC&Nӧxb1PsPQP'SVg+/Ln%QY8d%8ؙXE_FF% _~ev÷ Y=?g0H.'@|lÓXڀW[q:,Λ:]ioD *H„0 TYҹK/X~}t_GoPP1P ?}cb4P s0 27T+P'Ç ߾b}kGzYa AKx9y R. W 2vw?1rWp-F!#b/?<9p-Ff6@XA*?B|t ïxd`d`x!fUNό7=owv.]|)o ?2pg_ ρ ûo ~@\ zn~~kw2=-P^W ^>#'JzɒIg  % $IENDB`PK &e=1,|,nuvola/22x22/filesystems/folder_favorite.pngUT HZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx 1@0@/M:i{]"b9@ XY Xiy/[ ML1FBZ;Sι<'ܯ_ӴlۊR)ZkaF>€0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiBc^_3)2p@#;wnYM7/k ! "v,++F U>$ HK==PCOa`Ўnd${o~.vA^.&&f fb4'#Ͽ.ݹc*#/) @߿4 TrJ1cgvՏ_ `/(Ԁ40U}33| }zpɛ0 @,?g+ϠF`H20Р ' @w fdxЦz01 >=~?3P @-+؀ C L,30/ÇO__ #Gb|O5`jff B#|`2gagx[8"U0@,oܽ?x[0@ 0f`Pao 3pp1\{-F/#@LٹD>];-Y3cYY 0ÁWم2p28"a)"&p{ x=@,{۔j%$TMDXXx/eXя0 `нo ?d3zr20h?FS :@iUo{2x p\ۋA/V6v`2ڗ3z8@'3?`~9' L o$en0|F"f6&3qs3203@m/A(2uv5W^~ 'pYμᡢ7 ݟ?<۳>~?\44`byMg4a_ }asO/96OА 3 jF1\?o-Z345/ ) Odf2IENDB`PK#e=1J,aj(nuvola/22x22/filesystems/folder_font.pngUT BZApPQux %TiTSH RQM $rxBV)(SI$ E@,B>#.^3jKE42DD!\ !q^^笽9nQ69rAP}ҹp1ӳ'fmee ADJFW n Rk٣ElײpYʌg*KcQzG.|!1XjbAk O ;rkk-UPwymҺ 7~B$ǩN ]1vԵN)ph۶n<&!66Vd܈/q&P8dMV*%@q/ߕeo6 PR=y t^n\٠̵ g@STS?>Юs1wRJMqq2@~ĺ>uW?J4u*;I=a÷󢶷ՉE]~*@:5=}ޮv&p\n@:&+iPi(y'ASo}p5mԡA@vJpס29h\Y4`5+H +D]5{W[E͢eA"ۇy(0`h6pHB3^,Ԥj=ͤQ%|cŗ_4Os&} Ro̝2P`hܯE Q2rR Uϵ(k>ƆZ}> -f9qNK}tqKx_ăv3t9kkˈ 9d_ Dccub ]* WTTI$?jmG17!wz;; Gb \vŏFOKreLsMpwHr 4vmbE:!ᅝ\(_jJi0`oʹK+BO`44s) Y5<\䵍ecAr 9Ij]w #S^ݦ tJXLV4 {G)Y0!'W2H,f4zlAh2"oc-W(2x\^ڮg6%`Ձud=I#9oi|3|9w0%@LA XlߊPN>2  AߥΑ5ƅ\zbW3FY3PIlmO'a*Q"x())=6aǿ &'LF~0=& \փ}qxSJud^:36>'u33#/7= P m|tJ ƦAm )x&]rJcK``T-MvэKf^+}땯R;"m4լREWKj nN /yfvןL|28^g5 T4miG92! 8sO)ǭPK e=1H#VV)nuvola/22x22/filesystems/folder_games.pngUT G2Ps#+x)x2$<<ՙ3/\ta/_wЂb6 ._g/+haaɀ HHn޼̙]@,Xu020p1p2,,8ܶo r aߨ]8+JB9vhfEO'GȻ@ ~%44<]$8O0XϘ J#XXY\e T%99_|a?V#Fw? @ O=dvRJq29s׃`Eo`b MML#ٔ< "͠ ffFPL222p]X߿ ?h (30q10825nv_@~- /_,\ _~1 oO=bCk`(bP1ȷ| 2$(XX}Zܹߕ 95@1}||\tէQ/| ڿAF0pGn^FaQb]>~ao8m?Lb`b0.3s0<{62PJ?G/ `x{<<3(ç']h觟0E6A4SGD?w?//1uD ~ cxËW> y ÿbb ax/×@11w]zn'Bf{ɠ#AOo 489ś_ c E`:x @,޸[7m%lg-_`raF g}ec'0 3Հ }axK^]<4 @}Vg) ".*ׯ_?X$~xϰf~iUՕ 2;7 V w_*1|}z@@xYxATACG0gfxz*m|``Rgba`|yOYZAHDIW@y.}7I9Q80};> <2 젰: CY> [O <@3߀  >~S֒} b/ìSb $)?`fߟ~y_'?yg{:Pm2 gΚR{d=C@1/z?8~=ݝ?}ۻ7x˓ >=^GPJX @LL,Bށ<iӧ=p.1P@uϠwb ~aE2IENDB`PK =1CC)nuvola/22x22/filesystems/folder_green.pngUT ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdfe`󛁇ABRA*O&?fggץږ{qҥ],,_~˛`u =baؼy@0o$K1e Ʈٳ .;~/_>a˿bB1!Co~0( )1|ANN[QQAFF||^zhѹ/o߾Z 0\ًg R@Wjhh _]oݺxcW\n &t, [ ( `ll@f066dNKKUQQ `@20|gSO?Twח\ \5t`WO?>1|÷ ocpTsdaa`badw>í[7 wKշ7umﭼlkoN2 c􏁓[ _~b =< @,Nj_f7~ .yj /=daebb`a!, L| . GzXc /&:jZws(.$+]fgka ͫ_|ML112/Uu^̡s= mNH/BNNxV˧?ȳ}1?00|AWO`쿠xa`fx'+÷_~pW/\ G~g0  4?;3;ԕ@9 /2-+O8û]:$#,@1}.(y t% `FK~;?2| h3 3Ã{~*=ಬTc' X>ŇyA٘K W/@/2 o忀0t?xE_s!@dߴA^fgbg6o~19 ( L ,`Ah?DeE+>:@e?rh bا߽b^| {8coa <, <| Lebgfxx9ÝǏ0f}ߎ @, ,߽ͯ ka`X _2+8XbarAYG /.}~+t@, ~|ŏ|z ,~bhA߁&300V`gc07e$%^|th]4'㛯}0To? LpgfXXYX8X^^bd`~+p ޞ˯Gf @ <̬b7ҵ803|/.|~7~#W ~<0#/?,n s|?o}_o>oaeyq??2h?ư72~cWᖓ1{U8 XLu8s32zܹ+}L/3WUgfdӞN Ct PiJ'pMH:|[l=;2hy60 KG|ը&FKp ='ϱ 0XU';,ة.n; -\7]6p%~iLqvuZ  #@,o}|f6&;20Obb### wXYx P90ɛǟ~`gc7Ы BfFfKC] /3P+7Ռ㍏^~',إLϿ?aOw1o `a2˖ta??^g_zOYT R799yO?1|,u9be|c  3ß>pߟ}@,@5/߼?/er#ᏇA *LL@_g `~_ >11{Oo: @, ~}[ffHqo8# Ͽ ?~0?_ @W/^1(~a۳m ܢ ,X2fb LV Cؙ!Ae;O./ XX?|͓o6? S`fzwp0 ? _}c~AN' o ſ^?+ /`';P'/ TԲezP[K* G|L@Ac2FQZJ%`)AOċŶ0#ze{Ƀ|]HvhZ4Ag@ysO123oqDͭry,W|x@@ׯ_0`} |||@ e130X 6.^<h[by#7XX^2"h?0 ?28._CVV^ӧt΍?M7"V@g ȥrV`p=xpAPP+=8bFwb0<9/`?q?(~ܿ "*,/.CbacxoRRܠdbbFo?#uAY  f_b`} 02;w>P@|/>37ȵo?dy1P.` YV`Rc`P$'ll G^b wy/*~z{VVi`x , ? GXY s2\p݇ >yիǀ `z_~gq!ط?0$L-Q 1#VX33] \31Xٙ½ ߙ1<~ԵK ׯ]tw ("" JLLNKKog^1F0 0@_~8s˗o^o?l X@^;+W.fϟ?û߿s` ?s`jx ?w(\>#q@'=`Ny-/@|;W]IENDB`PK =1s$-nuvola/22x22/filesystems/folder_grey_open.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1`*""&(ȯ,**ɓ81|򅛋*dKp ȊKh/]pcZ@,zz:#YYXYY>~p왾>-֔Radccg`b&fV[7z͛oxyy2pR(oBe[h/ZCt,0& p*}q1éuT*W.EJ`ii:y9'X޼yuWXX@EPxABBhß߿~ L1H?O@000J'''P_by?]to߁!4b321| @A>--m@by?~2bй o!`P0@Lǧ_ f++dssKnn^͗/_o wo30жaF9L`/Ga0x| 7z L>>A&@5. X6<~?!!&PP\ǯ ~`'$l`q?bP Û7<ǗǏ 2 Od t 001030i&f 1(}%H#>gr`9 @,?~x˷@Wz@C_4 #3ip @BS ;3;+<~ /)p@Ƿwo߾}̤p{0pqq ߿(@pcv) ϟ1 1ܽ{o ʪll 2@fff0zXF2p=8d0@1\''ŋ@9;o{'0}wӗ~|뗗hq 2 a G恁 GfV__d#؄yA;0{~w9~ofF$0d$عL|x w8+K~.v`C.v@͌\ r ?e'26__L] 6ol|b;?0ֿ& x2U22e  r !ox.]cPF~112ps|a`胿 ϟ33tyˁ{ @432𝕍ݷ < ag9?>!Û>={ˠ*X1XIg_ R/@1 epb`03s0 CV\z🍍GA:=Cv< F oY&I2v?$t.@Ɏ0y+?f81û gF?S%Aw _9p1h33X#CN`Kʰ,d`b`!u0dJ33cg}KJ  pb+躯@00` $vVv.1||APBSAI_I<+0+́410 p2 (o@ fCq706XAEŜE^g"(B XN‚ͧ-lelK@qSkA' b}0٣gߟ|/J8by N(D#{e  .e%KӃ wNd8wSGO=;ՍjF't@P-"E;Ss׿8s/=b`8RDpA`&hQ b`t3}τ&bUe `6{IENDB`PK e=1޶qmm(nuvola/22x22/filesystems/folder_html.pngUT 6ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxYW0DDD**+9Һ;;= ))) 炶 o2M73gi.\w/_Ͻw~Yb03=C1( d/"3H ȗa%__g^GDD8{%Ov}߷o_- @( g)vX999)) pvvۭ[=rҥKĄa0 3//ghh@!KFFf@E|# .0 k* >}_@Ͽ ?g0Vbde; nY UE8n %}'',I YA' H])SMw@G 20HjdgJeQֺATz@Cgd`egd 1=z?O?~㋁h(77;s) Y3ps2|L$`~?~2|7v X|y\?7P} .0 i 4p`L0|99>`b70vnW}/Þd;'×o@A <_A3$!@1˪Y[;yn^w' ;×6} ,/'@ȗ?gPcp #h? _"B/qE:cwdck5. +>fa *p Yo|d`{{/׏|zjrbbx*-y뿾0V~f%Ã={ 1|/a|!,*pW_3|q0Z0O1ymLY /_abxÞx`db:'0F 01010au>ÓG+~|)ʠLz L dxO݋?_]> 4+@gq0K3h22<`[ ''íL W6oL[+`zZ#|*7ĕ3%f< J I Zʚ ^dL[D`xOO>۷1iFAH@f @,/o]-0ց323ȻLd` O0XͧdV`f*ßggN `fdQN-USVɱ1~?Hf g03}g߿_^}{훿޼CWͼ 2 )9Iវ:93H32ٳ#p~ ??<b`L a3@1"jv>Fx>U;2x.lJ R0@,{IENDB`PK ]e=1ZO<<)nuvola/22x22/filesystems/folder_image.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx 1@0@/M:i{]"b9@ XY Xiy/[ ML1FBZ;Sι<'ܯ_ӴlۊR)ZkaF>€0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiBc^_3)2p@#;wnYM7/k ! "v,++F U>$ HK==PCOa`Ўnd${o~.vA^.&&f fb4'#Ͽ.ݹc*#/) @`*V9.+!6fLYgAf`33| }zpɛ0 @,?~m%_Ûyz(A@#7Mw>)`c| @,oNt Fׯ_@8D4gl8!/>|p¥8mx>+AUq._>2|= |0{1|{y/t 1oYC, ρxPĴ ͟ +n0H2*~ËL O~`({Ǡk?P6 Gn>wo3} _(o 'giz>,0kfx h!ARϟer= vF<ʞ @U< zb Ndd#Kn&qyvv&`h?_@pLI?a S`ѵ ~^ Ϝg8w7vd`(edeb`ec-3} |#Ó" _Q ݥ ׃^|pcOo?1|Z&E߹~da`'8 30|xL;Uoνb  FFF0s1۶ YXؘ>0p#?w`Rwv X.h20I 3H0?|*P-R Ǐ{' 81930|Aῐ(3_Od0@A\\wPo߁Xs3 >`L>b7|чc˞_n>`b42 +;($-??_b9 ?7Pgbٰaz`C A瀆2 /?]ua :xMdIENDB`PKZe=1_2R8L-nuvola/22x22/filesystems/folder_important.pngUT ZApPQux -TmTSx ϗnR IpłPpV@QXL)+V]]vkъ[uȷ! "|ov3s@R][ejGz(]>غ5VkLuI Y:]j֧.) 8 @y=tNz2ҶٗTIfVmzbNSo 6yB#(6wy>:7zsAN>/ODEy3fڔʷ!wrar,  ^pX oؠjux8VeZ $=x!B8SC}}Vv/j%\07VHxW8,GDn].3Ӥ̋XsYQsKٿb5Ϸt-f!Gs15ԑΟ':crT41[oNzǁ~ v%UToO4s%J6 1Ϊ*iJtu$[>#.L(UYlEeg+u6tοO#l'T'LJ OZ5YȯSg<^/<ι&[T!z!~铼*]oDlu10f[Qw )Mva7)olWސotš(rʷ7䑴%)'h6#r7BKc#Laxq h  iЯByadr^ e`q|h ,@V=7~[A)24VT/}2/" 򓴢\\gX5yX m=9N3{\6aIŲq3ݽ KIKa Qmcm1r+2vFp7h_?2R'l;%`bA >Ƭ^9# -^1`g+JuwwuX r20A 'zb0cZM;̰ȱsvjQFP>LDrO^+fjmv6ZM89qDtӿz$XIG蜈}<\@ F&= Y)fFbʴ+Y BX>o{oPKde=1 ~QT*nuvola/22x22/filesystems/folder_locked.pngUT ZAoPQux U{PSw@ p7b Z, *呤BU$ĵ.<.`RP]"U47Ah@p=3|s9hǶ-4eZtT. (rrj97j6ŝڝt*=pS v Oh@ S0?6$0ռ$2 8Nz_H]]?(JGBCgMFs0FF/Ξ!Q1ہἇ}@#[\n#oZ[Y¿;XnxSt+E FQ %dUF *C~eeeY^JV"js)~Ǹ)T.)ػb{f+X|OߋQId9eNM+S:sֈr4ew=eш4Cml׿ezT~,3\:Bƞf+,&=~70R,cv?-c@1,̖򂱃@1s{A0Tn[ՂkdEq즋lE-9Mz K~yu]UզOg1rG'gDWeguS[G z@Kq-'"B\r9 ݃!B-22U$nߕ3JgaL^;pi/7C5{`̬A©Kf1P-ȌEz>yR:Ex`!?89b6/Ys9Lqutqq~€0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiBc^_3)2p@#;wnYM7/k ! "v,++F U>$ HK==PCOa`Ўnd${o~.vA^.&&f fb4'#Ͽ.ݹc*#/) @߿4 TrJ1cgvՏ_ `/(Ԁ40U}33| }zpɛ0 @,?g+ϠF`H20Р ' @w fdxЦz01 >=~?3#4c?۬`CA 1? k_1|K?p0} Ϸ욟!^ XX/ԥp Ajq🅝90oWVW8@1z&P4c`fgO@C] Zb 2n>w3#} 51ec~)_~~+0[Mq~a^PR7,2ED{g%H_ (Aho`?78 p?raw &f )20o ?d3zr20 7('0LY81uE^樧_x阕 ~dxS_]<  Xgp Nn`z g <4%`b>4A[G XBaPUcxy`??3ח€0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiBc^_3)2p@#;wnYM7/k ! "v,++F U>$ HK==PCOa`Ўnd${o~.vA^.&&f fb4'#Ͽ.ݹc*#/) @߿4 TrJ1cgt+ `/(Ԁ40U}33| }zpɛ0 @,>gĠ J 0C_ |  !`p2 DbvNN?mOskby;1WBk~'p+ĵ4 rg`qc_62pNF""WN~I?,=I90}AB(qwhP,!v_S(bZ%/%ȂKwF}[lBD5 5v1|M`x_Q FApmY篌˧3hY v<###?}' 6m`?#ó, oCr-`_DLʓ />12|~!к3z=n f2lbX5L [B\n\𛅅/$E ?a T XB)1Л / ~afddef`ec-3};aW @,_XGj q3p*0R~ q2|ߟ L?Y0ؙI2|:VP3cddD۳g߾jW> g?k0I2\ܽK2z/}+`x̀oH!``/ȯvO}KiY_&F:/>d€0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiBc^_3)2p@#;wnYM7/k ! "v,++F U>$ HK==PCOa`Ўnd${o~.vA^.&&f fb4'#Ͽ.ݹc*#/) @߿4 TrJ1cgvՏ_ `/(Ԁ40U}33| }zpɛ0 @,?g+ϠF`H20Р ' @w fdxЦz01 >=~?3#\Ͽ@o 2h804"? k_1|K?p0} .Lgffc`9 bl@3ѷ `2gagx[8"U0@,ox9- 67_000|ATϟ L, @p3+pmYĢ~҆^uo2hkk3;ЀԩS `q66 -4+e\-"&p{ x @(J)91|݅ ޞ o^gHc'|=>yʠ&#S^)Epp0? w}c!דO?yxDSFFAL\řYa?`j` /^gx|#Ó" ??ţ@m߿ ,*t@r@2Ë7+[;3IGT=;+ H3??`~99Y>>^%%EpA/"" //WJ/s2pk]9n)a O^[  J@Wk6VMLY: ,L~0[k0<{ J##,7!Q~203@3_  0N.> '7ѿ8 r_|֯oo8_?/ _?2ݽ ORZ\XL ,\'/d``,^j3 @ @lrRB)LL$ͧ>}Ww2G$IENDB`PK =1# k(nuvola/22x22/filesystems/folder_open.pngUT lZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  FB\a|\e<19]|?i çW <| <| ? K pr1ɉr hY5qϣ=@B@,*+C՝Y؀L Ͽ20\?˫R|r\\b\"|l, ,, ~30a7 < V%?_fogfz?ï`/#?@دP] B̬&Z>L\šo@,s3?Aa Ġ|:>4PH,bPcnK7) 04F 10<'-L@9fFH:HCXY}~#;0u~ťKL/߾^~g8KHdr20p@h`a`a `ῡ31׏ zibaxo1~n ^32p21r 2_H0A]z=÷x3||P@0/q_#1 330]9a2!  Jl 1|׋g/u?yͳ\?L 4+,H" _190}'ƙ=baxKg3̛ @}g6Pٟb=C(QvEY N?fK ybar=b`eW``eaf`2B]J M@~}߳ 9xޟ9~R @ J$.TU0+P&+ ̿X2קW}|~z}xߏ~s` ?42`bdP JNis1̅rۋ??yy ??&7@o}ğ~‹L( `q™ G` T?b zbU@4 5=Sd*IENDB`PK =1!!*nuvola/22x22/filesystems/folder_orange.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?AN>i 210g?ÿ]jkk[ٳ{ǥKv^~]//ogO2p)+31WEAQ4'C]h?S[ZCڝ>10~IXv o ۟_?/@a((H@120-%N}_?ƫ v1 6?`6`̑YP Sa8v}`j@,2|}/nnc๵'Wn1Fa&n~&vnFVvFFph(L O``v3}@,3|R+4í V30r0pgW`L< YX؁lE ߯>a`A;8~oĢS,߽fhNh: *X^fa&9`?3t% ÿrACAu-?>f+ 0j?uMw@e'0@i!8 t3W />g0Sf`x p@3  &y~C@hI%?!i%l@_3  og1Nw  HCLWkaëG@@/ `ۛ 㟟?pۗ?z7O0:007\ @020ejfx~}{<ӧ_=90eXtC/ Š $l =wL(tu2@M-IENDB`PK ݘ=1ii/nuvola/22x22/filesystems/folder_orange_open.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  O LR2aEY%}x dfc`AWK_/?,4v Jnod(+ t*gF61p{PqjSPgc唗dcgdff`}9Oߧ{$AN@#ç? @Dzz 'b`g`` tw_~~a`dyŠ*4Oht c='r K3p4}H˱  4'B=gb`#4W0*bz/~30|4H171b`2h'~QH^0C?@̗w @Ea|_^)?>1nz!d_%1aV&M+/6gپ`%@%Ѓ70>@>В?x9lL~b_/_cST`!(0M $O4@. `C>fa7?=%b7_ {G Y! 6?I>yp Xgx[~ )*8ɜ1 $i ?| þoeo w>_`Gb EC  "FFYǝ7PRe`Gʾ %`H2=}=75@ b, D ~ez[ ~d@L1< ĥ~Co(%Cwo)ƎM 0oe.@,ǀ7d`bh4PgD#ff_  w?exrM?d0@1BXZaK1@- >+ï߬ o~|ǟ~o|0f?42` [ J yX?ߟ ?y `~LoyŠL F^Q}G:03|jGlA@fU@"=KIENDB`PK He=1)nuvola/22x22/filesystems/folder_photo.pngUT ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx 1@0@/M:i{]"b9@ XY Xiy/[ ML1FBZ;Sι<'ܯ_ӴlۊR)ZkaF>€0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiBc^_3)2p@#;wnYM7/k ! "v,++F U>$ HK==PCOa`Ўnd${o~.vA^.&&f fb4'#Ͽ.ݹc*#/) @߿4 TrJ1cgvՏ_ `/(Ԁ40U}33| }zpɛ0 @,?g+ϠF`H20Р ' @w fdxЦz01 >=~?3#4c?۬`CA 1? k_1|K?p0} Oz!it3+bB0 Y#Ni ,7o=W+IY~<_?&FPn>wo3} gRnO~20s3=×? d`~1dfױz er= vF<Zw XlT|:hg  CA/7xW _eb;1rwtT' 4eƍ/^6`d?,Bff` ~?,IENDB`PK Ee=1J҄QQ)nuvola/22x22/filesystems/folder_print.pngUT ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx 1@0@/M:i{]"b9@ XY Xiy/[ ML1FBZ;Sι<'ܯ_ӴlۊR)ZkaF>€0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiBc^_3)2p@#;wnYM7/k ! "v,++F U>$ HK==PCOO'%㿲чytDӜ ?gt 6G3~00Ep10HscYd)?~>6? wo@7#;o *-'o.@<2|[6w?~10AHA7P ߁Fo@>|S X>g ~}g1g`e% , O^f(77 3W0־ec+ ad(@LoͿ 8g 60[3 &g@~AC, ρxPĴ ǷO`01g+ão~  Gn>wo3} v'nM'pt# l+ë^>& ,Z`5"b Wνgx@3"rL'؂M]Ew _d`ceb)< AN"ɰ>ܢ \<@A z? w}c!`@(8Z39;3Þw >12|f_pgPA[AAS3H0 .X^G'?E?ţ@𧻓iau~4 ideb(d`f_~ew`r $ãw ߞ{nbA{9Nke0 y3p1dxq{1w1|bf6FOrGIJA@@Ws d0@|ö~?ʠ ,`܉ 6 e?#022!Q~203@3_  qb:kp0` s3zw ߾c{n|чc˞_n>`b(K@1p,\(?_}M z[ry5UXygbcvwm57xpe߿lݲ؇z> f IENDB`PK =1YP'nuvola/22x22/filesystems/folder_red.pngUT |ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbg``\| "RR 2220T[[rϞ;.]zyy3={NVVѣG : 7o` dTiq 5555X<Ӟ={v{ǏD5UXYAdf`dd`͛ _`pȡg; :60|`S . vȒC̋g^;3jqlnP4-T>z1&JR$4!4QqRq(  j,t10HcdnwnœGʺD[V i rM s(5W1~џ/@|~YXY!h_?}e0x8XÍ'~} @,g?G6~]Eh(Sſ@d3ÿgfc&O3h]?ʐ@}Í_+O A;7@`P@?\cc"O|QG Й3vh_3&f J@q`Z"*!9ߏ0p(} XՓg${`UTԘL$;+ ?Oa+Y@_ 0>~L,?gt5erz)~ˊ_@.n \ ρ{wğ| 2 X@!}g0L!Cc%?Vbx9WVv/@з'~wP;ĨN*:;#yz _l@/02ϧ~ߛ7\ @ڠb`V6W?_>ӟ?> ߿3k`B{;B.Vs@(3g6j~ 俁/@00cj*mIENDB`PK ژ=1P-,nuvola/22x22/filesystems/folder_red_open.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11  ^U~0NaeI??2O_ h_`y߿ /dD% #4 X>y߷ @C @\dC " _0|JP@1һ/_y ?b@*ϟ1ccx@_0:>| _wc`ffF? a L ײÕ  P h=`j3||ӧ30Ð@1=O^}_/_3o 1t)2@;;''^..a)) ~ X@x7X~511020>(DY@RfHagcx índx4õgb`8Td0@1JBrx\7" O@^|?_o//y;`sk 2 %@Ģ X|ů??O_g@G* /h0l~ŠL F6T?: T?b zbU@4 59N0IENDB`PK Be=1tfO||)nuvola/22x22/filesystems/folder_sound.pngUT |ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxYZډCDDD**+9Һ;;= ((* Ƞ?FXY4|}}C555<Ӟ>}v…{'Oׯw| 3010<}AB̬FFFn ؀K8;;J{֭[Ϟ={ڵd00P3?" "²ƺ D!!~ SN33Sm۶~ y ?2__0X7002caŠ 'm* h>?~3TDff2ܾ}#@YQC?e & #es9,FV>$ H]%WE{W|^ LyQ9WGG <l * l, ,H ˷o10gc8z߿ ~f)>O 3gi 8L9!ΓO/~}?L Oo2>}[wM$ eU fp-}?Iߧ04-# `(13ܹ} wbzӣן3|*= { ˰Qh*3Y?PK `aç .\^QD >>tOFX9TD11-e°}?OiX j, ?fɠ%10b7:9w9&1C,~3쿱=0}DP]p#?wM %^]~6mw2 L) jrJ`] e bCX\ />10|q>߳W>~`et㷊 L |AB@/' H``c`x'~aE3baW?zrUr {/s0eg#u /Tx`c,V`ZfHW?1<-߿/ Xdw|swz? Ut1}/ O^d0/+gv{B;eoO`  }n,u  G ׯaxлPF&`F`b `/13bg@ 4o[ſ]f0ppsgG_ß'U003 `,,L fPfg/3~r4 D)P|E"nM;Dwh-,4RcJb;F!4C٦."8G ^[\̺U _@{şbdaf^` `F LǤ?}7<˓{ >bˀ-S703 $32H3^\<{Ej  lߤIENDB`PK ܕ=1$EE'nuvola/22x22/filesystems/folder_tar.pngUT ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxYW0DDD**+9Һ;;= ))) 炶 o2M73gi.\w/_Ͻw~Yb03=C1( d/"3H ȗa%__g^GDD8{%Ov}߷o_- @( g)vX999)) pvvۭ[=rҥKi0 3û/Ɉ3 0@lllbhhhub$?|0|Gϯ]daOYAPWSU 01|÷ ן~`vԃnݺ Y UE8n %}'',I YA' H])SMw@G 00HjdgLeQѺAT@Cgd`egd 1=z?O?~㋁AД?Xb`&0af?~z tp@,o.`J?"?A WfAnF8 7 &3̿kNz-@{kë g` [W$.Th/(O.`|_\㓠㯗R/p%˭ B_ٓAM߷w2|}|;e.gtW 3f8^\Nj_1 02 R" \ ?exuG^U0 hXI.>>n0<? UqCu]VN\L \8c'&.G1ZH 3\>7>yb/g`a`UG`~d`xqG@^g4`VLi T7~0鉋@ghP}D|%`q €0(}d?VV6 __PMMMf//ϴO]pɓ'O|jϟ?7ß?LL w>cPYYOEf<J>JϞxq̹K._~ ;@a/óo8gb100t`$@XQݻnn~׮] LY=GF_H\X $`aainnm/(/ H0,+IjiB#ǯ cx~`qÇܹ YM7/k ! "v,++F U>$ HK==PC;P#0u100hGpfS= ,??0h3p0c4'#Ͽ.ݹc*#/) @߿4 wv `Wb%7' ï/>-d|sr  ~33|_ >e8}M` ݳgP/@z? _381p}v19h1;'' ߾fOskb73p13]?g/191p m d;P /ÇO__ #Gb|?~ $ &#Ç] e4NRR]7(1? ;s`)1pb7~S0%1|7'0fӲl_1^;/` c| >fG_@LX=y?^`.A hb`|Ȱq]6an;`P8FDLʓ />12|~!ß3ӻ/˧90hco9s ;0#'y@Ġb? g}c7ï''/0?I(`a#Ç H3?vFNv6V66`2ڗ3~ ^ 2 SLi<7N\ٟ_~?|ѳ__= o3  (`3@1HIF~Dl5Y ~yw|~Ma/0R;gѼ ^'mMm`Sޝu$y#E"/E;W,!/;<(z )c\&!EX8O{$  V\2Iцz+!a F`2 Ƃ7x5D}m`ɭx 3g>Y*ȝ{t%NyL:mׯ[Kf@Uylb~SfV5ω1hmmm+7‰(wPqIl_"t} uF ޖ?08CS0ĘN- UjɳF7llbc_p׏O~ʾMMEO*ջmqL18?>玎Ol9SggA tj"4Z3YSNm6bulu5?^[I{Ĥ ߁>* f-̓bgcyc"J«E |)|E?b2Cvصb괾129;]y 0@R@ ~E`| $EJF566rܐ+έRROdGS53/NmˣNiP|YW(178?G$|n:^= oβMǞTʼ/L2Drk܅=*k0'NN!_W\Ne$7^BǗc=&tPe/v*SQZ^\m/rqG#jIrJS^ECHՇ)amQl/rWϮ~mĘ|Nע; lFJ!ɐ:\@eCg s<$P /DrW1KU78PX0;QéIA k:p jR"\Atɐچt;Ndzߐ5fr<~j!]KD]GeӕK`|C8[fU ,)u=ܑB {8ܒ!9jxBAGǖGwg8O3[YRg,K"|iM wUɮf;7wy:Z ._6k99z(U{}N&R"K,)}y.n.$Z 0O5%h~8i)v4QUj JqLU|p{Jhdtߚjh\o#yDj% E{aRJ1b2j#X.EAەO+g{/~;Ya\ZgyU1 Ƿ~k/G`kP9_?HSυ{P]V2yR͔lh)sצ閕{f&ļ*<# (t:Iqke$p[Ⱥ@Ϣsn)#njU a*4.=8\spp0?0]bÙjK(0( 0Z{iɟ 3PK .=1^*nuvola/22x22/filesystems/folder_violet.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbf7'(~1;;.ֶܳgK.baap^^ gϞex  k1|qh03X_gڳg.\x񓧿||ϟ.ϟ?ps`FFFA2 >`df7X +x+z:<((-Тs/^8߾} 3@a /dX \88811Qs[O>{ʕˍĄ@C3(2xy RlUTԲ?g`dď_?12;+?9cMMu1?2|?0|˗ `Gݻw֭3^?C\\XLLLPōovm\^ٯrc%O?# ++;;;7'í{ρ>|d6?=zx XԵ4j,\~~O.v .Oy 30p3I 3002013; #÷oL 7n: 239r0˷߿~e``&fVUSg_g/М@A7:[o?2χΜ9yjWĔW??f _y ߾ h  2W@_~eLw X^z_ ,?/o`c`% 0灒 3B] i+0^ ?1\p;[YbsݟWch(UP 2 "Ë ?1q0<~w!.?~_L|K`cL\ ȫ@CA1?!p0ܽwr޽˗[/^& h*309 e>H؂_`B"r gngx3˷xQY?ÅgzT2+22p02&&]aÛ77 ~@,޽l| Ǘ}c88'30\9\d/6o l| \@Y؁11<~u`q3dxÇǀ ~}_?c@2 ϧHf:' `A,Ãg_pٿ X>zgw\` L?(0o, L?A9'0|9gx~ș h( É.5 @@2ۋ_~ӫ_?ןx ;B.(3&6F??j~ xl|)IENDB`PK ֘=1\*/nuvola/22x22/filesystems/folder_violet_open.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?-@11  NU!0>ve1Ao2NPŻ(ܜ\<|ܼ\|?U^d# 6 XT5U9;3b`d`e|ž2Ojqq) 󋊈 sqq3p133eg`زe'мi@K[ Xx4?gЀO.Vv66& AH /ϯ$āR̬oԼ^@,>=+ 3H@,,  2d_`l bՀHˋ 2"bÓ 'Ф@^F |F /30|z+OVh_N_fdbh@,`` 6d8(8<``xz(ں2aY2~```{ Lv~3| ov X޾Woxp L L  r5,%Qo1,˗no˯o߽z>3\7P#w`_ Z 5L@o_2axSwnJ vVo?|xK>00S?o&_!5ɿahrI /\ 2xӫ>4'0b?8dF3 &f`WAJ;Ëbb)ýo<17` 1.#a@2s#30(( + n1||G_rhC. a[Dr~2=_>篟?~ˏ?}|4rhe& ? \> ˽|s_/?/~^0b`Jg(4@12 Ƥ T?b zbU@4 -mWIENDB`PK1=1q19*nuvola/22x22/filesystems/folder_yellow.pngUT NZAqPQux UmTdt@ LD V*L,hE4VZ?L@۵d5bu%ֆSѭ bGL aku"J@$bxBqG?P ?}0=sd`N{zrAP7opuēGW,1mWx>JT*QR/֓1!fp'@ TX9zX $hnEpq϶w<۽YIb>;27 HjKa ٽajO<}A.6iEegxߤ,KF6q## 0^]Z 2W AAf{c*`AEnb[X9\qؕBC}TwׇK^i ^" ̡-<84<E\CjϏrh'[N1F 0x(at?5d!p?7/mšM}yL9JҸU=>Ds!c߫qXw6ݐ:~`gA4R'c2웲ԣP(1I7 KuKH7i?Uc<Obn,u6:N܍B kuHeԦQۢUu0aQ R@ 0r6Ų)O8jԗ"t7TW]Җ|+.6$Øw_2?Bw5THŽ=4Y lX I=x8"6^-?sF}/ׄ\T*e_ӱlojJ)p{٬+z 3 'ķ^mͺ6.WbYR",ìȝU6^gjR 6Echjr6t0ZA%K=ŎscslJ"u sXJJ7S߫VcF-^Eފ J tCQEa6Lǚ~*ƖzA8qg?S"|8{Ib\37*goPҢS5/aX;q bgi%6 ~DmT(`_kk@ƴVkIycf(lm]@{p0R~R^I蹹l(tOM& 0S5FVM|G6D)g!W'6#] 6X>w(3]e< CP>^T3潯m7ÃNRs2 KˆJ_5eU ŎˊLuҳ w^ړí{؇rz&lA3}Su˿:Օ+;x0d:xd.+;7t=jJ E~f.:9C9ă ]7gծJzIQlL&fl&JzdžuϹWm/ _yg ~Ǫcif ih9#L gSe@,@wo21o!$ـ.cLZ,,@Áih00$]a( 72 xV;/7AWOS#jn W a@ÙQb8P LB 1&iUiׁ LA rА@C@C @qVk}IY5?`8 } @,Z@y^y/A t#$,A_T}dc`-3%:b ~>cxy߁A4߁.;0o > t40UI0:hu IJ7P{{I@W}#-4bh63bwF&~UO:@17$z< wa4_?}ƿ3| /=ǁf^ @6t;yR B.aWz O}dx3`b|R Jb +2a ! t}vFO>=@2mH: hV5rhIENDB`PKe=17q nuvola/22x22/filesystems/ftp.pngUT 0ZApPQux -UkTSgnn\$\Q"J ( VE Kd(8K>*#]L Xъ`B$5]3?k>8fZvVWPkoy*+02B7P`sl:9 9[s$BSRҸQ{36%%*<4)YMG`E&' e kx'Gm̿mevcK1! s>!(@Zv<2B(aeI9h|8z._Odq&TRc[biU2 P \q@+Bv/` o^W Xc X !Ti3T5Ba_f'~ Dxc?nGXJ ? bS#wU7ү8*>:Q&?RJC0b5D~IRaخwF}8[{SƚxX҂,n:.e!Q7d'ǫU'7TUHΞ81%$y_G);xa*!z.cԛ-Ɍ^ ^>9wOrSPE!~6=Ԡrvi<‚zgy-Dh@.AawٳAҵ3:&,`i ѧiR \_it7n]t{Ec'iL+ 8蒠F{,-<ʖ tq `.`E^Xflr~ L!oQ)# r d3KG78N_;Jo?]@eM$kq::X m ;U!:i`$g_ -A!>Bx/q.^xk"N¤K:4kWPIlaa|9޹ {8?Iʊ$*l),-VsZ2؈&rGDDecMGgֳ ؔz}dI{nwZo%=iq\o;+^Zqe.vl Xk( Yo ;Dɱ:K2- g49b~IĭQ倪$#蒭8u+*zնqh DhExbs25"~Ӥ+LdDR<zk)CJ0HϷo߾2 u_n/fH}F:~ų3g\f!>kƻIENDB`PK g=1))!nuvola/22x22/filesystems/link.pngUT ZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @43 hf0@`D3f  ƈgII FFFnVVVn...'OZbE߿/j0@1ZVUU=tPSS&Tϟ?7mz K?H&'(ECCC5͍ݻw f ۷o$`bʍVóg ''Ǡ c0@ d~:Cgge˖TPPomm`bbOnPäI^cc`jXSbqOS# ۖ [n#r5Р 69 &`X{if| ;9o.++ͽ gCW@NPL 0accEa0@[+4MIENDB`PK g=1e -jj(nuvola/22x22/filesystems/lockoverlay.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @43 hf0@`D3f   @,jHfdd ()"&ׯ7=;Ϲ| 4&Ʀח[F o/]2[6ݼ -) VAa 'V}Cɓϛ?| ] Sxx_޽c\@$,ȨJk . Ã~n1669"_ll?A.s?е ll l>0d 3@l߿*(jnfxt-#H!pUVٳod7?##߾147@{~."9Up f`M 45e tf=z˗S10L -٣Exy7v;M(]IENDB`PK ו=1wu9`$nuvola/22x22/filesystems/network.pngUT ZAqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0zm 30$'.c$-# f|7\|za?omcy:  2 1 ?xC; '+PP\0{+6jgrO~= @`අmSlpGSM!A6yaAx ĽSeyp?nfk_Fr&&~6&p/%o*v?͎q7?1--z_,0pq0pr0gad? exÇ K3;83On18OOZ o32÷~t.3"`2|g ێd81s-Wf 8AXZ6ob of8$+ 0L[/1<{7 >|*+5Ɲ Y L0|AYV`Z0rF?0HɈ1X0p 0|h00E%~`j͠&p-;0q3|@A,g:WtȠ(g6ƿ ?|fx f| @ v- J`gzAQ&# IŠ"CnGS+J^`_ּOà$NY'P *@3+#bfx?Cc̯/O 3 A t?`("T253/L{`fPNA^e@o&O}hlOB/`e@! f9A6K!2IQZK?Pe`bbcG?ݹGD ;9B8 3O\ 3HYHiX{ae_?L N301͒Vͤ"0/GG:NA?̬ }/_ 4b@X2 kh9h0|tķ HAY\XI/7facxAnXĿ`_iOO&FF&Ep..H103X~۷y3)IE>P+ p ~7@f@}NQIENDB`PK g=1@*nuvola/22x22/filesystems/network_local.pngUT ޔZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<SIDATxb? /#0@DhV?3L:mj>#MܲPݴ$ +3F& LL L@#PD1|NԱ#b~ d@|1x2 l d H?:g g/?g`: ~cex&a ?6 ~2}  X ӷN o`;$@a_w00353@\5?ï_>O@͋w < L(2 s ~_ llL "c`a J4+#8@ Idd N d0+,@@wvJ3RP*P}a̜@ÁY J] A~ـbB8020}f Ȃ@y16?OO ?Y32 2g@5 313,a  $ L@9NFf&`DF MQ@pO:yIKKKNL4d4A) c ܌_z|ĩo?3 YUؤYWW߿[@?_i֭[w.^Ǐˀ= HTTt}}]??`/0i~&5 8A b9 4t.И0nptt 6 ;;;//#of _|L߿ \\\l0@ 600`+, P00[\\jr`P13rV~x@~ -.Ba bz: xIJJ FF?/Yէ͜yyyǏA۷@J1` KKˍ*~kGx}fezN__?|˗Ϯ]v7822E ʹP2 6f]CW;lZc+W"Fvҗ߿v={6mSS$Bl@pgX}ׯox4ӗ77-c0@ VPд4iGo={kk 3 uQQgg 3 r00221pr311{9ȭ@#*SpSy%IENDB`PK g=1aj#nuvola/22x22/filesystems/server.pngUT ДZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?:prrbß?~ngg"(( x37nܺ߿r΍~B1 X0SNEE2..>Ζo߾} )Ì.޼y5"^iϟ?عy<<<냂BEE>7vvogUaddB7  ] ?==}0~t`x5''70@X ZPPjEdog^3|r5;//33x  JH]+3<(Pv/%@1኷k0\|"&II!?~#dll,`Ù`0 >pSP `V BPY 1e Y/VVfapCAa0 v 7fV4X L`6`10@81÷o~ 5`aL>j/>| yfpCpRann.Esc={!Sn@X dd3W`fgc_p0w^$'S3M~߿͚yyy .>wǏf?_>fz 72p00pd`},W B_zƿ6ld͕ ÿ}a;LҟAR5@z(IENDB`PK g=1clj%nuvola/22x22/filesystems/services.pngUT ʔZAoPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<kIDATxb<#3_>?2 )zߋW߾-0Cvp.>/~2l `qr20322a! ^&&X% 008cAĄ?0lP R!hmiͪnp/ o$1bBWZ 3qfe1d k 48a?*<V20I1Zi20htV x  gKګ0㋉IG $g 4Ԟ3Zd@1ߏ(_ ~ALFӒUo v : ]r?DރF {o6< H 13դ櫗05&  *|;~[@*TJ30,mg? DŽ? w*  Ujbe KN}["$Hsi(}¢w-珕￷"$QP@ 4A_HUԜ7Р`)!9,EO] L? X(t'+<t`N` A@@s12ec $O@1@  Lbzܒ@#^0;puq`*Z$<8,Bw1@1àқMRO& _6f>f=zvu`UZ`%İH&tmObf zHNPd~#nXƒ,s@l.@10Yӏg ( aNH$&p0\R ),٧_3&C3P4 (ww0l9vt>_[ROa3Z 44P! -+ء74CLr{ _D;Zƍ/HIENDB`PK fe=1|J#nuvola/22x22/filesystems/socket.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@F L  qk*Y)rp~o9Ϸo62z#1  F fOXD:W91AR@CW#~3Zu'~b&  pPnc`bgo ןW_XQBV~ts?~՗Wc"ɫo |`g@G1122ga&"n]?f0@1o?ddmeٿ2AAA? dx#DLd`&VCUu7n11 q10031ӯ exߟ ̌}'Wo?15;?'Û/X0H ^ @`yyY޹pc- *j ^ ̪ ,B  ax m`Pcfe``a11 0)3ȼ-( 4B~$f PvN>0l]ʍ oPTeLd eg`4 > Q?Vhv2˼g4H?y+ P_f`$I00dyF `HZW?} t.6Ǐ7D$L>Πm (LVp~>Pqc%C%0y=d`t3m9 ԫ1Te, pP<=a7$C@ .JQN!n`^"0u3|{K5rl wf2H{`s꺼5kP%@A\|}OXY)I30ee`r] { gXEdvA0C[=S 4}s|uOׯ2]) t(W pp4 ?* Jx0pt"\R q _`x-. 7$ÿ??߸X0@[@?s}ЉOg.$o! ?E-D89a`,%0ڵowN&n/OD/E)CS23LbGV];d(H@k0b0-  \w\;/IENDB`PK =1$+nuvola/22x22/filesystems/trashcan_empty.pngUT ZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxb?-@qß jي qqs221qׯ~G}+~d7CΈ=QCI^F[GK/Fϟ1|_ d``eff`gۗOyztaM  ,dW9(]|O >|e;??~2?ݥZ3 ` =&=>1/ ``o_F 2:a ⼊. L\0n,7ֿ  ??bxy <, +×}?A^f @q`)2k3<}? ]ixq}n{[߁Y `0K2)01|f Tn0_1@ tHeq +qf `? "l  "rɰ[`e1e yASѫo ocdg`[6ә@c`yh.(NX3BLeD c;+_} :u \ll``T F ~z$A *+0Y^a6fVv!,` s3r2X 3 Z:i}*H001p3# NaZ9A.l\ \b`f0~?[107 b"ZnB2v/dLqsvյΚAO>bx@~Őn7]0>}b``0 ex㻋rd@],{3(`0e`Pc?'0]}{p7vv6V g0a8A  8L%.ebx7É 2fxͧDO7 \ 2 z2 22<{F/?bxV?2|``Bed@3t0?cQv_~}//~0p1 2pË?^gˀ t0*~-aۿ_70H3|_ L `%`| <|a ߾`xÏ?)B Xg`Z \&10<|㷿 3_&fv>N<0|ao1 ; e\&f @E+(#w`$&~.Nn``''WX1 L^N|p{`2 h ++o^<+00c@!? מ|.Fo@] L& +Ïx8E1 sfۮ|z?@1vY fO_3o`8320c00#<|g_~R8| $, EO_YYO6`n@38YY𓑗 3 Xۿz_J  <, o3xpå ?12ss" Х7Ç7..y/6Y5=ꊓTD& O&ۀ<` ߾fxó8;sklB q?_,vE~P1Mw>9]U&NL?_߾ɥ^`}!,?@a, cD h0bl&6`p <9f@gj=dIENDB`PKVe=1UZ nuvola/22x22/filesystems/www.pngUT ZAqPQux T{TSwuz* 7*$GBEL(pسT0`AEBHH4ٵ 1l*(`PAѠ]Djo3̙ss9ny3c׋7{11%K/3E"ta͛HdH2 JIqbf6ˤ ocŢOR4@Yv-A:q= #KNZ5g?\mSGΣͨ \JWy6 Ч)"'DUJYguuqԽ.@I#VY8%Q.2U| _zm~o!! 5_ne$ă䝨0BC)^޹Zq6QKGQ95k( \\|j!z^9e*@jX &5+@&Bbn3ǎ?N''g㏋jS֨ug+7ǽ]%F{0vܴ: l]g1yP+戸G5_3G^$=I3u ԲZL=֩Dـ9{zo>[ ԃ֟emT'{< h&WB.@KxpNu::i g.1:}٬bH޶#*Uq<TLħ \!;AĻ^6/A4߫@m`4|4*.``p u aC`]5ℾ@[77YD 0l?odY}Q:&qWCU/t26Q-'pffUCeAsFBj>匳,֦چ@ +ah,j)5; S FYRTUjDAYC/3Ӏ @R{dݩJM[K~IN]6h+~9~.\vp̄zELffjuͥ f/uK.G!B-mX#^U8IȝV1%!={:'̟s JLϔK0U!Hж 7I"VDto(o` 3=E=I]_fvO֙ÝH9Ȧo@%[@[fRDK@6T! g\+uC`CcOA]"X͕ym.VN ֪5HŁ\^F :*?XP"T&{"={'8~~[wDqߓ¾?krA.u a ADdwe.arV+k**M&f4gm_쟿cpŴ3˹v5}Ne7D)-Bi8U(b4g X-OثU_=zN^*]|ltlRPS9de"a16j9˺ =16#\W1Tf~mYѐ]= 8+zjv9Cy@ @xVI&-^h +-V˙Q闛և8l=e*<Q!h)&p:s9ltFr`? %ExZVu3L} ?o Ұ0d%~vj(@wmOj߳:.<$@B]^QBV,j =[7l_Idm y~9*%'4%^` 'YP>,Z3h9- m䑏(lvK @E\{i(7@ůPK G=1S0& nuvola/22x22/filesystems/zip.pngUT VZApPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxbɀ@aI Cw+ dN bb b>~mꪪy7@ξ%9Sd*q"o  &M+}}~e`vAC7@MQ ݻ ?g4h0)   g00q}+ȥ<@b b/ ) 0@1LGCA qԵ CP@L u?<TA K@-@1bh@140KB^m8 CA pF> .`# NbVhqJ2ChG6`x@BD<&XRWw[0L;sf @]K09'' ϟ =w:,V{ b9 AB9 tK;>9ÐzʁͿ<@  VG*I7=b5 0qbV@ -I93A| ?IENDB`PK `L>nuvola/22x22/mimetypes/UT VMFSux PK čC1(|ϡ&nuvola/22x22/mimetypes/abiword_abi.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<3IDATxb?Chhhw;///߿08ř~8wE 3g-$$ `Bis1ܺu lH2÷oÂfH X` rÇLpq$CZZÓ'O[ZDE|a /@ icHJJb=a߾ ,l  _~g`aaA19`|b `Ç0AW-i >|0` A d `ZP^'ýXXYjP] @(Ao0mccgs=%͝ `>mwPg`A>r B1$OAAAMM F ?0L` :L)%Y ;`@6 XЃĠKOc MUM2b`Zpzy1EL?;0X~ @( ~dsepdgcx13[x$عZ.c8*/8 } ߿}ex ,G\c᧰2Lg0cBq1@1rb;#ïT^={ K 9Tl=G`2!a` bf`ab8>1}=!we~|0}* ?>3H2hT1>pq``$f`9 YOYM3q32 t08ȵ[la8s ï_PԢ &dc ?P߿֭[`#G8990q@LLL ctãG<;p 9A pH ^bXv->ùs.\ 5` A`۶m W^ee`x8a [B d/R/^```͠ȰuV7o] p۷#+88AYYܹða> bB IP|a޼y feػw/++W2<~#a.  %7 ٖ0K8(@j222bbAO^ M?~`3gX͍Ǐ`M gϞegXz5d@.%/ka+## ''6N8i&xp p1fP33/(la 2l0H 9X z)rwwg`'FI-0pc cbUEo-Eϟ1aIh6h'((t%%e$/Af1UVmVF30}B-@{d6uHcgA lHpVRR[ Q# `d3111a we`aa mB 4 X# D}۷o( 7Aeeee? 0@7o~HYĄ-c(lcǎ1<}%WVFŋ _|Aq1@ckS @LnĤmP:&&lrĄ/a(d8t{8 @ 8P!K葆A#>  8$ڕ0 $$*Af1UVmVy[[DAa ;v`| @Hr\X@^T7O=IENDB`PK t91(P@@nuvola/22x22/mimetypes/bc.pngUT gUArPQux PNG  IHDRĴl;sBIT|dtEXtSoftwarewww.inkscape.org<IDAT[L\U3LaF Цh)@&&X Ӵ b)Ucc˃m"NbTj!SJ-rP9Üs/΄f+YgeZ ot\)h1l|,V[[[t~ Ir^1!xu}KMQڜ1[,*bj|1a!s.AUH%b/0z" 6i B`qU%:`x~bRZ,e$)",.S̙3h둌C]BN y*~GKB`.*@\g'&eaag)W3GAV6vU0'LOY}$ 5++L(:@SB0,Ohyw?bHjk+, :(@xb" !>6xѸ/z{6}a::W>LK &7SI!g2j+c,u8nwsY9ڊ01L!o ~s@ gw_~8}CQ4r51KwdޗܹNtr $>:tueJzA /7?I}i>賰m ȉ7+Є+t{OnUruLfsĺoa^#==FJjaٿFU5ll_ZW+o34;?YLv^ st0ϟ nbQn:>(__Q^'ϞjFu}w)6gei)JJN7neYtUʲikaBQVVmTTTf3lǍ[Meچ5M y$I@&E)Xw" IENDB`PK C1R!nuvola/22x22/mimetypes/binary.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gE;;;+A|  666phhh] r=`Bq1H &2FY r(` 0,0]h<5.Y9H&!,d!B\,p]H߱H- awu!d&zU~ %PU &ݻpu7n0ŗfRqw쮨[:όnBf>} 0? /V@,)V淓J^*903;2"޻P/`.˞hPcHLb9D[[gd!00R @`aP8AB?P3Х.^|w`XcaϠ͠tH# ևbB1$bsr23\ \ JJ  ~gx;oΝ{`c# ..`; `B Μyp;/o%E L +#=Îy;`vvF>1>!0HAD+&``b A]]JV20΀l@1!߿N|``$ <o?i Т?<4-pK# Pۻw?>|ˠ*;( WgxÛ?.c` [/00be 1~1|ffFYĄ?U dǏ@Í>= -pg$P폟, |ZF '#S8<@IP03X 8!$\ @( ~? fb$ẃ`dxA\? G #Yl l\Ua~5U#s`aDV^ieFV`'O1`: %U22h0ܸAR/(@ d0#h(P? wn^e03cf0GA\CS]Y6m/n.!2 `^؇_ wd03Ǡ"` X`̂o~3ى39aٲ RNGAX5F2ܾɣ; l V¥L@,~@5,X 7 ^cx j / &&,3p l0,{Ձu3P)Jj߿kfggea>PQQ6/_Or!dr\X`x ć CڨIENDB`PK C1$p"nuvola/22x22/mimetypes/cdimage.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb?Chhhw;///߿0&FFv6v ??|d3333}qܹ8P @ gΜy?Ǐ) 1 L4 Ю@b Z 1~a " d!C;×߁#$$ 0o A?cs%3.0 3w`x3/'7\?= ťl {a(WaI7ww t'=M go_a`gaC1f@  Wp{ 3s3ߏ wfx  [~J3Ȩ#/Q03+x57CكJb}}pmo310\. Ap+'3{p  '}`Q _ &`fص ;_\=x>w> a`H gξ*&x@1;;3õn ,w1pq_ޯ &nZ \J cccb@6 Pׯ οe0f 񓃡ã_ /110I^+, O_00 2?!0PafJP}01L@_cg`d ᄆ0<{ 1E%AO2fr+; 8Hy3.\9Md /`ľ{ g X2PE@Č$yXo&&Pp!)UJsq357÷ ?pP3#ןl b@/, t:#7>~Pn@(B@ :" baF7Iu` zy~@1!CC~w3psb4gnB W@B T|уk VVb@C w$@30q3^u/ B"  >?09x͕AZZ 7؁ S.(++- ) ! .G^K33hiɁu)$o߾yܜAWWڵ7 ax%0 aU V  tptOYL6xժUՁu_!2&&p/X?L 32ܾ6؅,, _|a} @T $Ñ 1%8IENDB`PK C1@,S\))nuvola/22x22/mimetypes/cdr.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g?}s"$= a b`ݵ 0|q>>[ ] rVw۶0oF3'1__1F&/1|A. &t8)3ã?3E2|%Õ~3hGG2@X(MpoLm >Sڧ }ePϟ޶ z ,0Zj>~d`Юr~3p1200 leQWg+߿9Q h0?BP(p̃Kt RdCc F"EAb4 fW:|6۷o` ȑ^ 6ϟ?Af1UVmVy̿~ 0`-61f/_Xf=J Fh!  (a0@c > `OWXZIENDB`PK C15|"nuvola/22x22/mimetypes/cdtrack.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g׏2콺 rl0(0221pq# dx֬;''/dMXsb1C~E@$ ?(]CD|bbbpPe`ee`*˲3ex&~;`bHra&`<`Jcxxռ 201Ík \̲ _auݿ'o L/XD_20aa;8A?0hi3ܽ? b R@ooz`az ß@%-f P /<Ù3/l K.^Ϻ b^)aKT_J13ps2|  P `Ę3hh3ܿ˧pdß0}u?+  7`xPY`. Eɑ"o3!ɉ~ᗟ_PN&&H  ߾}r0S ],wٚ n02 2 Zj:c?HVbaVVVOzz @*qbp$4a8 `=cZIENDB`PK C1]#nuvola/22x22/mimetypes/colorscm.pngUT v`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g bZ 2gt&]xp@/^>>4 I10=b`Rf`ef``m [ ܁ 3yzafrP'0<0Hy3 o`<~ ^``gX# (p{_GV2(=f&waa?9D9?nWVnĄ-l;J Wezɜ ~1'p10?@,Y? ,<#>pcaϥ on]c73V Lsp0? . ?+j՛s22|#P?ND@9XYY޹0*n./?7018x]ji @./^0hX22|*TȅT3 VH CΠ``V0V "f z021A@ '((.V|\OYL6xժUՁu_iXz`b /_z*Y@+ˀ5X0<K߻(-IENDB`PK C1]#nuvola/22x22/mimetypes/colorset.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g bZ 2gt&]xp@/^>>4 I10=b`Rf`ef``m [ ܁ 3yzafrP'0<0Hy3 o`<~ ^``gX# (p{_GV2(=f&waa?9D9?nWVnĄ-l;J Wezɜ ~1'p10?@,Y? ,<#>pcaϥ on]c73V Lsp0? . ?+j՛s22|#P?ND@9XYY޹0*n./?7018x]ji @./^0hX22|*TȅT3 VH CΠ``V0V "f z021A@ '((.V|\OYL6xժUՁu_iXz`b /_z*Y@+ˀ5X0<K߻(-IENDB`PK C1*;BBnuvola/22x22/mimetypes/core.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gbB:: ?# ӷ 3 0cbFq@ {@&&&6660 ?`o> 81p]Y;Oqs(. s1;vիW b /gVPcҴeoE P  0+V0"r P 0``"gfH3Ɂŏ= sVf eï p 9(899N86.]b2H ,-Z lN h P\ ׯ_g8{,20~2~Ç 7n܀Ϝ9<S@,.ܸq# 8A>rϟ93  zVVTTcP}IXXATTnHNMM L'S%}Ȉ㠰k J/^`077g\  Prޯ_AQXX`jj 8@4H^WW!;;Sr  w׫p-O@8ŀa!@, 2 `uPyAYl F 6px*`|lZ 4 Í;//nj30` u1]N=b` $gfBj^"B B ڌ_t쉾vMex,bߌ, L,^VZV  ~`x~6P ÿ ?^ax|؟}xپwmg8 Kdp ;g '?~z=IuU&VVnV>~.nƿ><n]y˺%M ƃj C%yE|d%o @11ߺ&33 #3+ '7 #N,bk:2VI_HK[PK' sA#wA0Έ[B}pZ¾AViP@TxH A_N! !C1#$ %$ 0s 0DM?Qgte= .0Bk͡`:; 44ꖗʧ2  4 H320|@>;:a}@10 t%Po@10p-/cp ??!i (h7 6w 0>"$ p8?F`@10(@pb A+Ђ@0ÒWh'( ffN.VlPfs qs+0X}h9е<?Ës.l`e h Af?A.eTK/0i18ѹ ?r@4V~ɿA2ˀٍ V_bT`egx| i`b`b X @12l@ف١j涓+JW _``fga4Ff8I@ r30 9_D0،@5@}Oq) Ee F ,0g`gl@(@J Bl0[3r3J 2|~ĕ[RAR01h`8,D@@SԵT΋lxY|P'H?l@{w\NTdOYeC <" L!c 01q -ÍgvO ~Vdgp6Rvsu0wuӰeZ=>2';gn2\Û7*2Bh'-c=?&71;`M4(9Чρ% +#8AU wt+,WN\?_€Xt1X@pYQ8g#PpBFv@9vpK0̙@`) 0+DY\.0@ t0h('/ϟ?)@ ^j)iiu`?@beXA12|eժUO/Xr9@,c(^aEX3IENDB`PK C1Bnuvola/22x22/mimetypes/dvi.pngUT d`AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<#IDATxb?Chhhw;///߿0XL_~e;w3gO"ϟ?l4i=8c,w66&M IήyKIǓo`ٔ|@,Phf AE0d8Hl8???X=Lr@6$ / @ Kiii0} -B1@͛`0 A //2|b %RRR o߾e`cc r5u 10<̑b0(@.I\A:fH # @(Arݗ/_ 4XʀEH#Hz@Ņ bB6d(A?geeE8 yYĄ0/\ .H!3 *@ kP9Ɂ@~ 1X8h @j@l0 |K M%70>` R °HE6rr X΃KZ qȫ0}bBI ¼ K >3LA t ڏ?tbt Jj`B1ipo3"Ѓ 0 !XQ tW2@f,Y"1@R#,A#9@Gx9@ '$$a pGN Ae40YlU6Zu` t?H@Εld2Xz*}@+ˀ| @| W1Ml]IENDB`PK C1`4!nuvola/22x22/mimetypes/ebuild.pngUT V`AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3ge``f W^P 'Na9!0p0Gll gx/$O / $ !`g+ %ðlU20| `bB F 7o}dz Q@ >rCW)Ǐ2| +ͰyW#@ ˠpi{} ~00x2Gi= RZ]gdGYĄ?~ec dÂn 0ÇO o10\p2o޿ Djd%~0}aPg:(toHC۷ _s`fzg5fdWe`cpreef`Gw3߸LJAGK_(I X2(]ѭ 1i@12| t H-08{D} .-r o ,@K|܉ ogyPӨɠLf@"z ?C+~e1,&)EqO0ܻŗ "OB,i1P?2r1e2lpʽ; ,lč3بs3)3ps1|d0ȁ` T^b _'#vVv30M2Y X`VP)oH3r~JF.f<2A@ '((c+al>>>`1d@ ^jiiiu`ׯȑ3 VbaVVV` 4 ^#@+ˀ5a9y=aJIENDB`PK C1Y.. nuvola/22x22/mimetypes/empty.pngUT ^`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g1\0#(y=RqA 0" A6 н/(@Ts1z@,2ĺY@4d>@LnĤmlĺ9` @Vز4@*܅$C7=  $)wOYL6xժUՁu_aKӰ &¬ _|a( 47 2d@>`@| kIENDB`PK C1$nuvola/22x22/mimetypes/encrypted.pngUT P`AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<UIDATxb?Chhhw;///߿08ř~8wE 3g~  -L-ĂBd pWo0p5e8{<÷oAhYĂuTC/2\t$_~a8r8?D @LއI0 W.502bx#GN:5 g3:h($a9 J20pU#o bpfs+çnz onF @(A2y L7w3r0y `?-Ɵ ?ngx'AṔ߯op@ >0~yٔ{ed`A1?00s0|] ܊ PafjP( @iFGojf`x~ T?h7`Bk/_2pggÏg@e@3 P+1@DcbANO bf-@y_ X5 rV` @. ,,r ;IMQ] @,($@s0kg 󿜠?gI . TV R 4D6`y 8^ aʚ L@ ƌQRBq?ظ8Sb8&0up20#_2( `  fe w€A _$Q11Y `6`* 18  G24 Jx 6۷o` J!A> >>>Pi2 Zj:c? +БKAd1feee Ь'@-W 5Td<]t(IENDB`PK C1_@D$nuvola/22x22/mimetypes/exec_wine.pngUT H`AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<>IDATxb?w ` Q6##333ϟ?,XhΝ22.\)  CY,XBļxMf"\|OOrGr}Z9wWU  H+×?L _~-H*}g`acbhHCs)P 3' [4O_gf'd92w  >~f ?f#7>} hE3 2@#'@$ b3wׄ~6;;Wu o~dx;_>~a0e`TRf(@1!  IK 1G0p 0|ο>=oPĄ.0@991<H9gC__~,߿DWVu ^[PP2ٙ3F1H 0@(a#*YW,~o  '@ d00 N?|`N^ (^Gv-6 HI%S!5,0c 3r w w>ZL \\\ 1@@ { 1oo0gfeHbf z [ >Bb b`g0@gxw6V6VYA6 Ō A_)f@ W0[1<_6 ?bPocA$6ǏLȮwf%kg && \ J6L6x&M.** tМb`A,:  YqbP@>`@| 1=IENDB`PK C1uu2nuvola/22x22/mimetypes/file_locked-[Converted].pngUT j`AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?CHHhRO/߿0002 F8&gaaa Ys|x4x?@ dp'Â=OX /HD/cP 4R ?3u C!-? /@ / +3#D!4P[,@_/2ȋ1\6Ͽ bL J p`ÒL,l@?!?~;H6"D!ĵ,, ?`t,0R>#VBBAMMJF߿@B g?e b0y d/v͠dnbx 7`b|bn04c  wgx ÏN> P@ #7 fQbw  +T5|p:?~ AORdx)ۧ wN|c0F.+?bAYctW7`/=1;A!P XP3?0|c`c c t 0׼b5vA? һ>^g'_}򗁅?l0(A L /?}NIn2I 1h}gr('bb'QdJ;` ARA@_,7PpBs1@1b?@ن' ܿyXz#?; /0C*@a88AMb?/;#7`8 }&a @(..P 1FI(7f.LfD cbA$6]oOoYY "g22|};0lge&pc ߾}#?@6exp U @p@oS[^c',&jժ 꼼<̿ ԬI%kp1g?f8y6bZ_Xf=J Fh  (Y3ex ć (B݊IENDB`PKC1 )nuvola/22x22/mimetypes/file_temporary.pngUT p`AsPQux T{Tw XHSLK Z3Ь-tD=VdL?E3K+JNZ[ rjg$]V- ~qsY*?AY^ 4"ƛ%_xP^ˆdޘo%g߆]}{ vᮂ"J~qQnnSQ*^JgoU0̭2M]DFS)3|ߝ7lV9"M 4<|B!%#: H_orWV:yY.kL$|=h-ԉ eG-)|Cal|[jE+SEmSZw+%}NF0`f C4xB(&F?YVGpndxdIIs~Cb;Q))x jmǦlLe6(*[td9X}IBdR ;RϠ@xg|(y~p& a=Da;QqqY!mz-ꛠ*4nGSr 8QAZ J@"cS9߲lʵ$r$n{V0D/8iڷc.VK@\)yiO/18¯C;'V֝|wa:1G0$pd,0Q;Lp j[o4 XGn)/>-:- [p3u*E慦>ew=MK=8{kǥ j# ğ1 8"8Pq tXȄBE+1(GioKWЂ5'*l-ދuwجpB fvo:~ûaGڈ(N:nc(oqe>P(fhv4&7g~Y$DG,ٝJ>łBHg5;5ii6 =F”5`(6[#!yox\B{wsBQdT"qi Q j,W*1': jD$;HEω&Bͧm)4Imzuq0c!h]9wT(x7jgUh{'y~l l ciFObxL7/=R~<΄"li9V08*P4RWQ_8O9P^ɾ Ow rd;ɼ M/@1!{&a?~0̙38Jdע@`3͛ W$LfFP޿pa7oހ}RM ΝcXx1áCPz䱱]{=___۷o38q h+ZZZ.\.Xd@1䚽{2pss38::2l^i|CJJ XlΝ`y0Š}ñc:u*X˗/}bǏ GbA G{ ~Ö-[,,,^x ibcc~à 9+޽aʔ) _fs88={v3,X/ϟ#dɓ'^ʰm6p0  0~ ݻw$++!"" ||| `ӧ vvv` gBґpP NKKCY{{{OA9H=`B $L dzvFAIH™As'61@R#z$C7Qbz $$f1 P` ϟ3qᗞ?`# 0 Á^RTDPu1f0@a?Rb`HdR0@G`4޽ [20# Ԙ PA-F6 P\`6b40yc`AIn ZK# 0] tX-btmJ  AbbAʰH(L@6;(,ALǠ-\ @ɍ=7PܽI`?(2#5̤pcj72h2sp #&z`Tbd@9oF`d0}9 +{!07W< `6F"tIENDB`PK xC1z)(nuvola/22x22/mimetypes/font_truetype.pngUT 4`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb?Chhhw;///߿08ř~8wE 3gXp!B.;T3̐Hs\O1! ݻ of"##/Pp1؀ )'JP a`PQQaprrb R @/ӿ? ,@>0.9 X 2NNNW/3{íGr +fvb8a՚ l 2Ěq2 @A Oa% ?߿`#[>W/ zA L Ac6W}Ez(P' j|@1%(131|x }^`sh < 3d;2(Iq3|  .`x/^111\G% R" e6fcT G cbAq)0}ٳ G >p0\9au)w1`f/ X2(R͛7~pUx}a0W` h`'5da. 0 M111`ef8u-ÙL "oTY`&kYĂ@TqO3| )'fV?`yX#@.2L P!%×y~}ه @L^džr C.ߊ g' (u9J8pq1ڲget`HER a021Ega+#0X@j@I`"*(.Ç ?^{=_@qF66p0|5P$/MM 98?zqd@ н$e40vt05~៰081]OU\e>O3F@,>V&/W2|/)a%#L_aȥ@KAK& Yd(?gNAAd,n`Naa ?߼a`C}- F1 %? _b߳Ah#77o<۷ .f 0-%E 00Yfd  ]g b ۳g UU>00'0dA^ie%#0ۇ r ,X AF䂃GE1*fi/0)'%1z4{ H `b`,*d 0 yx [b  Y!gYϟ?Af1UVmVy̿~- lb /_zz @ВqbPP310I0;3IENDB`PK tC1i"nuvola/22x22/mimetypes/gettext.pngUT ,`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?Chhhw;///߿08ř~8wE 3gwiAiiv1|gaw/ׯ w3z  )%XX~#9 ?~00\H2߾} @}{{Yyy? q @(AJ_e)0'1|{ᷓ0`#h \\Xl P\ ϜawkW@ùצM \@ݿԔATS q 1@1!@?ob/!_UU ~-a?~ t- ??//zx 2H'77; ٶ bش-xpˋ10Rs1@ 13P#$Ά O2z 05|s]  >1|IIaxEā Aj@1P(0mݺ)zUDAݝAPMšC oiY 0@lmhY_F(IL |70 )a @(e&ߠ+>b0p @,JD.aeylS$o߾y$P%wL1?@`WZAZZZX1r$G*Q +$1f/_zz @BqbPf 0c > `G ]~IENDB`PK mC1xnuvola/22x22/mimetypes/gf.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?Chhhw;///߿08ř~8wE 3g `WkIENDB`PK jC1*||)nuvola/22x22/mimetypes/gnome_app_info.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g;+Ù3/*gf6Tepfbc=O?2~abeZ Av1@ / ]/2bd8pñp{S^0gpafxJtW/2031 @LAhCOD^dctßO>}?Ýl ?~gxS O~r2p'.&p@1ÿ? g%!D ù ?ada=g LQ"B nep7[FYĂ CARa39uW v\ jR<0eW3 32\ ~Å0 P] L6b 2<D91س13|?|𛁓AgTP@,yAOA.e \O;o<dxAhoQ : 6bbB?\AY= _GYvf`~A`?{ : ~gu%}AB!ٖc 1{ˇ7 \n1*cPaeeh 2B ~A)#}^W KOb8-1cC nN0$bpVpa PS(KeG}1p+3~6 ZBx -ȁ` BTKWEy]|A2ps1*00 3 `o?% #30lI.Q Hy@`} ؎KC$~ 2 Zj:c?H+o0+0hKb ;+ˀ5aM{IZIENDB`PK fC1sO ,,nuvola/22x22/mimetypes/html.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gQa10ܼ7 ,~#S7^z ߁Fd` 3< ,?1lfДf8q>Szf' _J3Ir,bA J,}`o?Ó[|X$6GvcG; !>|Ơ( N50 =2c&t!L\ cx%u88 t | b@f@ ?@Ai&MEI`2cgp4c Lz AAU^O w>`` -*_N$ rV0Y0p 23 HScAXAA ܜ ~&7B c_g Nw_2|AF,b;+0ƍ 12 +Ca @9gF `z9Y8*7 "̟dY~@ P]B2LϠ'o:_)`TbS?PQ1BR:01‚\ œ 4߁A\0, F"/O&n<2S0@ '((Zl#~ 2 Zj:c?H+o0+++×/_Xf=J Fh! L @,J `dx ć \[F^IENDB`PK cC1t)zz nuvola/22x22/mimetypes/image.pngUT  `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?Chhhw;///߿08ř~8wE 3g23ƒHB1DLJa i0l[+}6{߸1~Ą 6 ?"v+[2DgDo @.$ `V s1 zRIAUAn|Ù/_`XQpVӿ?B `b8p3cXy"CCîu Ng`@;% @(AL osC Bd`xX& Af0 zhjjN뿲03,}!C{{0 3I0z?~NA1Cf`p-P?#Û/Dycc8|8a P dÛ_" w302g`f`"+F^~`a8q-0( 0 o?2210|y)^Upa P\ }`ḛ~>?uw{-ěr̍ dd%|" 0 !par~a, _>N.v 6F_l9 X`  ߾,ce`G(e|Q"`Ih6۷o` 04D2ϟ lU6HKK<_~C!ݗ/_Xf=J BqbPf 01b8 `mV\BIENDB`PK ZC1$"nuvola/22x22/mimetypes/install.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb?Chhhw;///߿08ř~8wE 3gddXwAO'0l(9D3yM ".t-c_$ c` cLN¿TX0edfpga`J~Y.W8/ëg]gd`x.'O>ɝ Pn Lay, z*?~})^@9٫ 2r w1 #0{1}hw|O/ 4v>301_K`d~ $'/;0"X}Hn6Ͽ jr 9#լ@E|`A%C@I30s3p20u`0MC0 EE_FpPxa n `sV`90N88Ο~Ձ   h?&p.973'_, 1 /]`prQ/kk/1 0Û鳯 >[iaaA` @THpA " ~}܄AII~Ņy]e`l"J4p XF]70OPPŵ`pG- 2 Zj:c+aI XaaVVV`|a( 47 28d K@| UTIENDB`PK RC1\#nuvola/22x22/mimetypes/java_jar.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbܒ/g``gef`Rl98e=>~sww}PL Bg`c`8z € џ dŴMEܸ2hu{}n_qͻ?wW#@`1aN|BFNB* LB cx|,!+7Є ?`xtj'?|Ɏ7e8o3Yk;\$F&2"#0)&   <5aPaǫO$؞0X201sB  1f1+8{HUEGG0|}A09yS[wQb` nTa8(\ JbQPWb8s=ׁyϯ}0Y5DEacĠ( #̅. b>`:/e;?`X )ll @ ?~21°RP |fd;! ###;f`aP% _?dSdWex 4L38`b )X&s qNN{1̟? !*%ӐLj@UG@19$ ڑK _e$! XR2 %, Wfb02V`g'Wo2{aK_0}  2`!b3}cS: ó.pxo?}#o~00@ܿ/D88ء pg %|a8v;Þ-g~=u{N: ~@ZaӍ$$A01`Fy NG}8} = h f",,˧ bpb3Vm]u[1471<|۷_ bX/(@ĄlCM3ӇN?p]};?@ŇFgp~ >}p> bBc!~{W 70p3f01a` %!> ˗?~p=## w~1:u rYĂRǷ? Ԁ%50f ~yJ`w-Ă@a2xc?<=ãl zU Y) @r#pz PR߀.g{gfV&kc`Mc` `pgjac7LʌМz@A7X_bpm# 9ae r VbV K7YKE&ryEV +o@  $:-@2 Zj:cʧij& YOR/tbP1+99.IENDB`PK JC1>555&nuvola/22x22/mimetypes/kchart_chrt.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gҿcfexr bHcgdd0230pp1#)Cb[ ~2 0\de`fR .//y1I3 1 1<' w2h cw?3ɠ/<(* 1$te{/1I?}e!˘7 /31022{c ;м 1##(h| `._03I1pq0| 5p̃KS0 ߿  @3p5axq_0d5 m` ` Ojժ :ׯ_J,h2|hKb 2W `auiv?heIENDB`PK GC1_&&'nuvola/22x22/mimetypes/kformula_kfo.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿0` Hׯs]tZb*\T*5/#AxKt9#s+}#Xy dP 1O30310O8/_|W[?&߿ W t]ČLL ~fz ic`w_o2d ß{^0(  ``W7Ϟ2STe02ex-û%$AqP1 30{bB>p#߷DMM;9O2:r_SAՍA\Eh_#`8 ӟo1~YPׯ r N || S98>`}0 [P$h0 +???~f#?^( YX" N@)Ћ\ /\`f"O>2C[[0#0p]f ?,]l?cf&0555F###ׯ3hhh007P '3HK0|<;0Ξ=˰e*`gػw/06`p޽$ (((] s1@,И /aL$$%j޽{˥00P/...YĄ%utmmK1\'30%rr2匍~Ν; I͛7 p*%*fe#- L^l < } lÕ+W/_00 r \ \wq!!!u:P#;=cf`*vpix[`_T@ P !W.g``A ,\1,bUp$l@C1\ be.@ F ',ඃ$">`9}$`YL6xժUՁ!G%@/`b J4 P%@17 2d@>&!@| [hIENDB`PK CC1Fa~$nuvola/22x22/mimetypes/kget_list.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<RIDATxb?Chhhw;///߿08ř~8wE 3go ,,PC!j@1ɋ2H01p0p!S8?+ g@p/11|#o a [1:kp*h P YY `'Ó 00Ϡ# J~T%(9v}0cK9b`x 4[7@؅Y~213U 0SǠ: {ÙgB orS7+Π'񝁋F_A 0\ +-3 #E= "6@30 V( P@/`+@D H_ 9Ya7 $Ic``_Q=,U0"& N o?gj5P<#0}~GF lo ((b<@Wq$'3yl K8EE؀~ 2 Zj:c?T1 @ k Ӏu Ь'@Kbi+7 2\̚ 0@m%IENDB`PK =C1\,F$nuvola/22x22/mimetypes/kivio_flw.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<QIDATxb?Chhhw;///߿08ř~8wE 3g/ml-IAЖ DXocv$7lN`H6A ^65π.:qa-Kn3 La̗TqT3c ZFT>df8ȹpK c&N>UP4TA#H+2pvFhB d3031Š|CRD! NG @os10= >;306@ARԖ_eyA7^'? x|߀b vy_Vb2 f7XOf8w[o LLA²@@S_`ffba-%' XϾ2^aȼI63gpecFp+0.Yޟp U ~1cb P l* Dg2" 3VP͐@X|yƏ VSes? 0' f) 0Z( ^Pc`7 '5*3)|dwߋ_~] @(A,Q`2[He 0 0D8t Go3h~dQP%0(@b 0O3 Kl?C[o?.2eЊ{ d_ <ĂZ1p&߀.. 3Ta͹{`kU(;`=(@DÞ}eYD$y10G2^F gibĠ/Κ >X! f& ua? 6X0R?0 B z .3pBl7 Bϟ lU6HKK<_~CK61feeV_Xf=J F P0?2 N 0c > `RIENDB`PK C1(FF$nuvola/22x22/mimetypes/kmultiple.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@C?(dddd2|G]]]g# V ‡z*ϟ߿yh(0666QQ0l@] D5%@0:4P-+L}}}3~l@1   ؛P/c2p9f2 @>rPTT|1cM0"`@AA']HdXvSĂEb] .abbb`>$ o}lX`I0L)aq@L# =pdy @vA@LK`9)bA T2䴎r @y| bl 7, 9iP -nݻw?{N۷op|kn ?ga] @fɼyL.?333 @5!bkk5A a+293l`8eː#ϟĂVaa\\\?@9 " ƆB7ABB"6P'r aTl2@ z (ZbGiii>Г!z ,2w #LBLdeHP O@0P#I$6`IENDB`PK C11n{"nuvola/22x22/mimetypes/koffice.pngUT z`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb?CHHhRO/߿0002 F8&gaaa Ys|x4x?@ dp'Â=OX /HD/cP 4R ?3u C!-? /@ / +3#D!xeP1·<_eccv/8lŘ\A 4@K2 Y @aH/=l0hbb` ãGO~Ǡp3ׯ_32 } &dC eeeew1ùsWb=`,ӧ/?~)ógΜLMt  &dw>dx)Ы bx)4۷N`dd Tv19 @($ #C 5uU_?~3j gp*ϟ?TT~b8@a*.]p'F!' P^ /^fb`bb뇙@,(cΝ >cep(õL : w_%ñc89ـbbB?~z> W22~>  Oa  **G?@S6mA.߸p# ^8?oW1:s R2 'O^ ?pJR8ãd1f/_޾|-*p8K~ LIL \` T$$~cf.Ϸ a÷ߜ J2heeJ @,O]deWQd8z8"FVv=ȠW`f C+đA@$+'g=010 AC@Csߛ7oFX| r%1703kÕ+I ÇO$DiWB-0}G6(aIh6'r^^>pҤ "63<0YX؂]d@ ^jiiiu^^^_"50#L߽{]_|a} @ @ @+ˀ5a[O[IENDB`PK C1c11''*nuvola/22x22/mimetypes/kpovmodeler_doc.pngUT t`AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g9-#CB1W;W>0< מ_f7=ϾwTW &d’7Cl:6+w^y_a!.{_1<ɠo)[2ps2#9@ (Yx1 0r0p2zaŮO 6 \l f|6Vdq? 6@Y٘y9DXAY/3 ÅG wbdgĈ<B FfFVF 3p030bxLQLl \< |bB fx38A P f8Xd`f /97fD+p ƃ8Y3 ,bA\l PNBˇ'6?2%3p120}*I|p _4ԅ. t)Na _}f(( P/~`D323|L3'{fBB A ~~f(fdFܧ?p##ïL4 _mDOnb~Lv\\񟁏_7F -,\ ÏQ" P  .LD)l :;;3c`?Hj!@,J18E+p;F',&pBc ߾}qȉ 6ϟ?Af1UVmVy̿~\3##8++×/_Xf=J Fh!  (Y310(کIENDB`PK C1]{)nuvola/22x22/mimetypes/kpresenter_kpr.pngUT l`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb?Chhhw;///߿08ř~8wE 3gg&A.` 2! Yɑ!N,þw^}ePAVW _]/ ;}q1Wp_ǭse'Y.&3(.``04?0}Y̥~3, riG` !ۛ\ço *M#"#a_xdX(@!r4 F tÊ VdD gcbac:7,bU1 ?߁'R`IH!{X ,W e@A"70OPP F?HƂ9ϟ lU6HKK<_~CL5Dآ0+++×/_Xf=J Fp  8A 10ȟdظ|IENDB`PK C1Y..)nuvola/22x22/mimetypes/krec_fileempty.pngUT f`AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g1\0#(y=RqA 0" A6 н/(@Ts1z@,2ĺY@4d>@LnĤmlĺ9` @Vز4@*܅$C7=  $)wOYL6xժUՁu_aKӰ &¬ _|a( 47 2d@>`@| kIENDB`PK C13jj(nuvola/22x22/mimetypes/krec_fileplay.pngUT R`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿0(|VHׯs]tZb{LfaA￁S33"Lw0xGfۯ~3U2cxAA\L Z e ! f! ,؁A h[c}00 0ADD8ß!{`Uv[w0O=İuWQfosU Od VBq1OA@P_׀dh(ưx wb+ ˠ$ƅ3 "B B ߀Ar ,X ?~3蚟g``̈a ^=apwwBB X`z\v0B}O))YP2#N$o߾y8K8FW999݀ , lU6HKK<_~C; 0|h %@1̰ @,rT =Uv?+IENDB`PK C1Z44'nuvola/22x22/mimetypes/krec_filerec.pngUT \`AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g1|f7n0ʪˠ4~G   ~ */_??p.c_`r)`+@a Xa˅0gfw)|@OĂP=QlS8lo~˩ 2 z< \ cg8{>C(,/ 4b (ab7oO`8àl` &㵙 rRdm}˰ss6?<(`.l_"r2MfQh; /dp da |eaf`?xp\ @`ʠ& k<m5& T=O vapa~7 ` $0  ;0icA'a `1g0°}>AY^m,}WnfHi `IM ˰"!NVyW20|=-5ئU >11)0h*2LX s$@aJL%7{{\}g:M1 6309 ;o00h3x0te`ز0H! P\71)! 2un|zp<@]N_< J GXOw3ac&O~0f"X &Lt_ 4:L\V`8O["^exl2ha;3{?Wq_ &hC& C3CdÛ >odp";Ǐ/fRd`0=!CgVf߿!fJ?>Đ`1H 32H2tf3}qe.) ߿@(a{~Cg pg~03HUᒰ Cv;W m @~T . Ptކ' G; kS`SwPv ,Xȥ }aPSb`UvVb ܀`?1 @,JAʪ|b0Qgc L _~e21A@ '((btdk/;7/5Ȏc',&jժ :ׯ_Pxb YOR/ZHs9@,J f ~ ć b@/IENDB`PK C1+ZZ&nuvola/22x22/mimetypes/kspread_ksp.pngUT D`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿0@###>,ƹs.:p@-@1 9sB0?nҤI_ 6v @p{h33 fOAzbz3{EEE62ab7@  4 ؀,,@_ @W3}r? s fdҗ~e/g($ g}Ǐ v1H.P6? ?11|(&fp@@L޸ ,L@Ì(tP?|`ao޾ 4<l| oo~ OU7?.ef~'hWV ҿ䙤4$~1a` T'ɋ |lj/? x>axL2d` ?l~?#oV& 򟃝9q  s`` u>iP"B|aS(@``eeG333"d(  \XI I97'?0Ϡ ?41S>>>`ÿ䃼@ H^v`B_Yd0(%5P!ei*# `Fޯ \fV>`|fa+AH Ȼ |d`gv,ґ1 padx*͛IBuo@ & }u4 jiJ R gV73i 1f2q9fUU nb #__~1|  >]a {?~W^2y ~}!N20  |,/9. #[[o1(|bдex!AB ïo | .fzǠ'Çk;6@](~=8 ";Åwn<42孫`l%?} | _`y{bA 㿟XYp|c7 wNbx|w >=gaWWezx1ba5 A0sp1_Swp*Ëg@~ @LtXXT}gc``#010|@GJ?{E+w2 b0@ E} (x3 #P#` CFN6_@ ?`b@$7F^ n51|a`' Ck1;W e/-Y~|d`vel+OIF_MϿLP'ÿgafx/A1)On*' o/00%sKѤj~f`x9U n `@B@ L2x36gpïg0i`f`adc ,>%@,Jr`mv~6KO`J`̲ if6fPe ľ~D)Ih6۷o` fN \@A.~ 2 Zj:c? b U ;Xe/_Xf=J F P02 (Y3@14IENDB`PK C1:F$nuvola/22x22/mimetypes/kugardata.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxb?Chhhw;///߿08ř~8wE 3g;M/3102<ŵ oa$+><?2p 谿`bB3؋@i@o0ab(/) 3P <_AONMe8p. (J#{: 1.c(3Hh30916~m9? +_ /~fx{ ?a5 . )ky1q3%9σr?d "ɍԲT?>3`'k8?çW3/(#*  J , ?|b VpCmg`:@C_gCT@X?AZ?NOoO ?aedVf`nP\ Ă``֕ Zp@÷w2I*2[0D @P $4m|ce`` m%!,XBVh868O(ኌaf,U0> L}Z#8lo10~_PJP@bw, x>x 2L؞pDz_ f{I/$$@h._O3|~t]o>9soMN2:05>}d0(# r=? _ex1fC  bzq jw?V_Pb1Ă0B@l8uaHY!H 7'gG 3@1H83+(2ù? 'ePt q x>. TR`rbcd`a L_s3ǚ0~ JHE @;0h 1X*>bx#7;#`$Z(Ef`> b5~r0; P\o%y>eJ ?~+p.8qe2`_OP "Z8({A oK  D˜^||| ?@`WZAZZZX1J!u%^M YYY|4 ^#HqbPf c > `ܜۃ3GIENDB`PK یC1?AAnuvola/22x22/mimetypes/log.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g~dxSB÷3. &_ob`04d`Ą[  @,.fz׍ ~]+&"h/-KQ ܦ vfC6@ IץK ii LpZQX 5k]KZܜ3B .ׯ tu8TTc h`NXjKr2#0)$( l A cP_S@dDJנ$T10ßEUj)G/BDG.;2~[O?(!A.@ Xf0q00# ćgĂ^1{2$AV~  @,JD"bY-8Ҙ@`} t-rɅb~ 2 Zj:cJ, 61fF/_Xf=J Fh!  Ba Y@| M?f)IENDB`PK ،C1Ib##nuvola/22x22/mimetypes/make.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g|  i@,. ߼fxy:×7޽c!PPÏCgb rЫ>|`xw.Û=ewA } u>ϟD8YY~-Ă}gxt,×g8d.fbO x G  d >'201ׯ @e ߜ> {d 9(@ ,(.~2ᯀqI_0ѯ/ؾ~a`ܱٙ3 L9JcCD7 \RR @𗝙ῖ6k250f`d9Y#C`@ILllpgxy&+=a`r &30jj303cac) ?aG<Bq_`2ܙ;ߔi ,0&?wp?!a?0\< l onbAIĄAWR"^w 30?+?@} } 0&Ve.#J & JK3?@>8"7'3$weǗ1pKI}%UJZHQ᱙u2 axÏL|\`ꀙ@,$L~3H3^uaxϝ`73a ` กRP@.}cQRbxUX nUU ==-->>p Y~1^` B^ɠ 0H rɆЋLpB]bLL@`} b2t ϟ?Af1UVmVy̿~Ba &¬ ,`Vex @ An e@!@> 0@2u؀IENDB`PK ԌC1$ʌ-nuvola/22x22/mimetypes/man.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<,IDATxb?Chhhw;///߿08ř~8wE 3g5l"X ûw=z(,&! -% d (SP 00-@| \< , mbP`b`ejd`4_&Qum߾2:xҒA\\l,B1ϟ ׮^aeWUc9AGKAȌW gN2|ݾ u+/] BY Ha#3w4584 )/fn ÅW%g3fWdxɛ "_1|d  /^1)gffe`M *i ll ?f60dP_˃;?U% wv`kzo>2zy1h-_àcf ?&pB 0 < Ņ5 30\btm}'7o2g4%YĄ aLZT ֶ %~ %& c@ `0>} `,y`b`b`xq088j>}N3 X<Ыܢ o^cQex >_s2~72Ȩy?3ĄW\[ 'lWU20<`ƠǠ T:32b8jipm’`Ι0JG fv weE΃2Mp(:-0#.I2HX1<{ 3 PR(Z| .Š7Ñzcj J0 ?}~p_^]R(ma ãWo޼x/` P2(((3;wϯ Q `xm0@)'0>p0(Ƥ30(M@1J t Ln22  ں0(+#0g5IENDB`PK ΌC1sJss"nuvola/22x22/mimetypes/message.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gps5;*&YI߿ 9؀>ÐҔͰ/O@@CRu }3Ȋ Gv1@1!o-BljMj}0E/á[,ge6E: o0mc `bB VV0|aipEg2r2800| gp_33~3 lกB1S`g)ï/ fpda`p(2Ó?n|;Š+é{7 P g`bfg`bpq=?}}0`xO o>dq  +._ ? 0{`7ɏ j UVAIp%ϳgPQauKG 5\` ݈biVUS/1f  `w1@ go?3؛2,=0|C$2}1Ua/'w : _ggc PϟxyʽR%1~cHP)cpIdx%wv`aҩ>['2,N @(9>}`0=l6C&S B"| b Y^{pS3+)s U>B Eb'}y?°'o2F!C7/3/QXF!+?} &fVVLd+A&ƒ9,U0 o?"?J1\/83o߾y(#Gz}3Pa` V --9`[lb be ,P1 A@@+@J ~ax ć lوiIENDB`PK ьC1M\@@#nuvola/22x22/mimetypes/metafont.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿0``#333ׯ_Ν2x̙g 00iҤ/@d#;譧0<~?? ?gdǠ-HϿ l@.0 $$ `O>1̽Ơps%_ w~0 }`Oo~2p23p3s2|h!$@?= nbd`gAGa gx%kn~9GiI=[)GfF @("7@ ;r38|a{0t_10^p>o?3x*1lh Ѐbp3ÓO0^"CP F Ϗ 3˗@'1 X fdh7 ~3rG02hj06> Wndx(5mY*89.l`_EON`(`z?WzY5}g2UC ~eR`< f6 ?q0psc᯼ is_w18&33s0Hy2hj1<T`ܼڿ  9b00305`x818?ff% t,A $̀l@ FW7 10=WFVVN0|{Ғ(O @(XV12%*/^߁Y\r N2be`  ?g'30tPݯo\I1rq @` ?]ft~ >0|y ?`eFoCg0ܘ2; 8@y/}@Ŀ >ve nn?od1|tbO`i VVƆBQAV]Ǘ/``&770OАA Z\)L  vHAVS?~📓(OYL6xժUՁu_*\#5D\GaV`J ,`1 F P7 2@>r0@,?2RIENDB`PK ʌC1`gnuvola/22x22/mimetypes/midi.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g|pj0ж~] Ĝ` 2OP`u `9>A,9 j32~v˻ ?}zfee7 _>DL( P\lccpAjK`?3ӽϟ?f m]>tAhPlR AY89XLoh9b XK4PMTCllE) R`Ed 6`rL@`iĺ[ *2 ZjQfcf`8C/az&@6PYOR/$T  87@i10d7eIENDB`PK C1Y..nuvola/22x22/mimetypes/mime.pngUT >`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g1\0#(y=RqA 0" A6 н/(@Ts1z@,2ĺY@4d>@LnĤmlĺ9` @Vز4@*܅$C7=  $)wOYL6xժUՁu_aKӰ &¬ _|a( 47 2d@>`@| kIENDB`PK C1`4&nuvola/22x22/mimetypes/mime_ebuild.pngUT $`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3ge``f W^P 'Na9!0p0Gll gx/$O / $ !`g+ %ðlU20| `bB F 7o}dz Q@ >rCW)Ǐ2| +ͰyW#@ ˠpi{} ~00x2Gi= RZ]gdGYĄ?~ec dÂn 0ÇO o10\p2o޿ Djd%~0}aPg:(toHC۷ _s`fzg5fdWe`cpreef`Gw3߸LJAGK_(I X2(]ѭ 1i@12| t H-08{D} .-r o ,@K|܉ ogyPӨɠLf@"z ?C+~e1,&)EqO0ܻŗ "OB,i1P?2r1e2lpʽ; ,lč3بs3)3ps1|d0ȁ` T^b _'#vVv30M2Y X`VP)oH3r~JF.f<2A@ '((c+al>>>`1d@ ^jiiiu`ׯȑ3 VbaVVV` 4 ^#@+ˀ5a9y=aJIENDB`PK ƌC1M'nuvola/22x22/mimetypes/mime_koffice.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g̵/^ge06ex /XX>} Coݺ /-?~ 0 @G l~0<* epssfcx)8L3 Pfx aJ/ B"@CuAaǎ}@jyy@) % /_0:t * ;18#_o2~ ߾`e?Ó'o> d#,bAƺ2@E>``-7{gr_ 3@2,"Š$//p[70He/ç_~}G fz60899@,h`ضAK705|w ?c LEI? q1@ge7$4TD)[w2*1hj bbAOn g`2\z RH5@˕U~3] 3 s(,, >}z/ BffߐP/`%3V9@ad (ll9 .^  ,hiCڿ@0` B %%9aap9 . 0\406//r6a]70OPPE6bYL6xժUՁu307CaYOR/Zp9@,J PUF$)IENDB`PK ÌC1$??#nuvola/22x22/mimetypes/mime_lyx.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATx< &)8 C F|rI&U%ƸvZ{Q;!\0s_Vk9Kґs>2x̙gc~7{ }q@7oz?I]@, w~/ |l_<8eg`E|×[~c`'K፦2Ȼ L0W>0|a9E GD~~1{(/n3 ?7 XP VbaXý O>2lc.#)r~HbރAjN grr1|m^ <\\pbP_s'?3p{O 7be~7w1\fx]Qw== w, dgb4eH2~ +AAFZO3*0v1|ifPa&Og cd t->}Z4Ǐ /~cLHߏ ûϟ8x54؁7ܑbW`x}, L@ , Qbsqr2|ZR4(&.. 7 P  C/`=f`.y$gPs`fJrcz>~1BbVV 888򠰆Y 3 XH1HA.))YLp6\ P \ @,0W`4 90`K`^Y r)Hć P(lA A.&v! L^`a ynMj0%U\rM `AZ@RPK(a,@`+@)հ2A u0K XA3(0,="Keo߾)H+,!G&@@s'((6 e"A |||@`WZAZZZЙmX",|4 P%@1BcqbPd ԧ,IENDB`PK C1Y..#nuvola/22x22/mimetypes/misc_doc.pngUT 8`AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g1\0#(y=RqA 0" A6 н/(@Ts1z@,2ĺY@4d>@LnĤmlĺ9` @Vز4@*܅$C7=  $)wOYL6xժUՁu_aKӰ &¬ _|a( 47 2d@>`@| kIENDB`PK C1STJJ'nuvola/22x22/mimetypes/netscape_doc.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g 0\?]PUW0q4?2J0q2s`MbP&ГO38!O \ d?pqyIiceciEFf0 2/Zİfzۏ21< < | o_0xx_q2 3Cr1@ ge`4y} gP蛆X-1)߿1p熻 XГw`l[3pp3,߸Y޽fx=_2CG.çᮅ@9@Pp:0h0@,ș$p3Ò , 733\y`@i1# ;Á 3d(ba0 lg`XyAAKkL1`(pQ1oK U7f\_2bV.=/w2` ŠU_7cx([1pJb`ưGQA 90fb$c w20e``Eg Ww1b>,p, (!/P`:gcQfAC'0#  ^ VO0F 7_ t*7308X3\ϖAOR P t b`Pu \jfFҳO )b %ֹ s?xBM0+,) `p7Ϸ x0xi2X3so“, Fx_;ç V7P"Vۀ@ b` fL#c?0F?66N6\*) Zj:&ag6rG0GD`4 P%@1  (51@I10e^zf_kIENDB`PK C1=='nuvola/22x22/mimetypes/ooo_calc_tpl.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///LLL ~Bgdd1}qܹ8P @`3g< |?2s߼y={\`ĉ_vpQa N $Zx!k )M;+-{oZp1ZÜ;Vjn7sNEDKmax"#`,=/=pe9*fF5k-J"15JIssNܝ7"B=/dp-jЍJՠ2$2&n|iwݚ̪Rf)̮aQ_(hV\~Kxχqwd&!fݍAD*Drَm0ïb 1?۠7W=3" i/_2|lHsppi CAIIUE?В10 .F&~19{c8bb`Ó!d@,0;÷ '03 x4_ s2J 2J1|ϿpW@ g'+w K.0|p%7 , ^p0Dܻ@!A5?O/!a 3 ]{YX$89fτw3P?a¹Y QŬ \ {^d>AAÏ /3=oPb} bAJ'90hI+́@, 7í'dxǽ-G& -ʰ-?'Ga`X~ :7;o2K#b W310h0?f \2/> K3 ,2" B ,2c`ɯ)E[N !?1@ uf/]? e~K1p1q10@Y$X.F㏐1 A_g2mfdzb'k \~AU6QN `8+I6nfp p>~a -Pcc#Tq@@$|a8|L9_fAB = 6ë[ r §2>@e`,$ (.+'Q pLl` V0 ̣2 ?~h=#"Š`fZ9?2BB ䷏GFd?k ҚU 2UoTb2CɏТDf\"AU=r_#HXs9@,J `צȮݝT(IENDB`PK C1בX*nuvola/22x22/mimetypes/ooo_impress_tpl.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<]t;@`[dÿ 0!👙#$\& @C,(~ @, HFX!hKa4H iH`t1@Si wVbV.dbc0h00@6+"X!  H\0c /P ` tԯ,  5 . G0egc ϘX؀fB >3~~𓙍'-fאf''Ђ . ,xV2K`r0)fx,' 3,,\= 2`b.#p15&-2 B~1x]'6Q  B Ao2Xb@.ld~a&X??X^à,'Kn?1XZZ2Z TUoTb78gZLI!31s 0^13ςHC,-z FW %k00<0)UpIENDB`PK C1#0::$nuvola/22x22/mimetypes/ooo_setup.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///LLL ~Bgdd1}qܹ8P @`3g< |?2s߼y={\`ĉ_vpQa N $Zx!k )M;+-{oZp1ZÜ;Vjn7sNEDKmax"#`,=/=pe9*fF5k-J"15JIssNܝ7"B=/dp-jЍJՠ2$2&n|iwݚ̪Rf)̮aQ_(hV\~Kxχqwd&!fݍAD*Drَm0ïb*  +ۿfx%ñG޿}PQ^ &.>Հsppi n$*&p>1'à _ 1|`9d2 ,g&/MV?Y~'/~0x/h^06 rfACK?#3_ \,}pOwo2HrS #0L1wf`X01UT7@.;Ph_?} A[la a 7&&`0/fg7,2;0&_ L̠F1@A 6 Gǀ0UHX R ff gβ3] _O +&?_t~2e`a`gcdxCb d6#Pq\B >e}=0coO% *?0(abd3c`vu10` ҂ }&Q hr׿, ``% `0|ATRk~fL l\ X#'9&7G|Wo1|AG훌 ;#Pٗ YeMxe4;ė_>c cD [1}a[X3]aマ J L ')?l d_O2X;s3 _-_m|" JL eR`hХ@_=|AG70~ .A  'r66ezppcNna`L/}bx>0{3 /`2 Zj:&aBٙ>'O_` / {g.ex,@ Ff`)  (Dp`O()RVď0@jz/pIENDB`PK C1/-tt%nuvola/22x22/mimetypes/ooo_writer.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///LLL ~Bgdd1}qܹ8P @`3g< |?2s߼y={\`ĉ_vpQa N $Zx!k )M;+-{oZp1ZÜ;Vjn7sNEDKmax"#`,=/=pe9*fF5k-J"15JIssNܝ7"B=/dp-jЍJՠ2$2&n|iwݚ̪Rf)̮aQ_(hV\~Kxχqwd&!fݍAD*Drَm0ïb@|78̏=CiI1 0>}R?6d( yEe0__@b ZP rL@f``yh(,`-}ax_pPh_@'`bPfe@Ă~T fC 3p?p@.fXR_@Y> ׿ g/Хl@H ] R P[@_?`L8٘ v=Ȁ_@ׁ h9H=(|#1@A.~ t  d7 /FA.fw@_} b@ AL 0 @ r(iAZ d3@RQ04 #0I 1 ePXV 3CLp1@Af&H2?4ŀ1j$l$7BI D!],!KE KArP_0J: L}&_@33([}:0`ӿ [_AK?@,Jlo`RLl \,&c`jp0E((R?Pß 3Rl0$E5 07 RZY`_ !|||Bd@ ^jiiiu`MOX#?ېpAb"T'5YO/$  (X`x ć ֪™bIENDB`PK C1)nuvola/22x22/mimetypes/ooo_writer_tpl.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///LLL ~Bgdd1}qܹ8P @`3g< |?2s߼y={\`ĉ_vpQa N $Zx!k )M;+-{oZp1ZÜ;Vjn7sNEDKmax"#`,=/=pe9*fF5k-J"15JIssNܝ7"B=/dp-jЍJՠ2$2&n|iwݚ̪Rf)̮aQ_(hV\~Kxχqwd&!fݍAD*Drَm0ïb@|78̏=CiI1 0>}R?6d( yEe0__@b ZP rL@f``yh(,`-}ax_pPh_@'`bPfe@Ă~T fC 3p?p@.fXR_@Y> ׿ g/Хl@H ] R P[@_?`L8٘ v=Ȁ_@ׁ h9H=(|#1@A.~ t  d7 /FA.fw@_} b@ AL 0 @ r(iAZ d3@RQ0J q113] c& l@ 4&ZPMec%. HP@]3@  r8ՁՂbC `aQ Xd gt #T\ |ɉ/ HP yajf`)̚E! 0߃4*{X" /_~`y ,@,P?1֌" @@4?2 < A >, @?Hm@ (A2/@z^++_W@ ^xiIIu!!_cQA04b# T Z  ^ddr\XT1)10-IG3IENDB`PK C1ULL nuvola/22x22/mimetypes/patch.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g7}Ᏺ2+Ѕ p0`L@C_ X SfW3mnf`Ꭱ!@@ P j> ٿKCÚ9{{ߣ f˗ ?{z~?xpӓAi>\ m޽cSf66 &0z޽ 0dmiTL @f`:P?# 93s33n YQtAA** -b&@# 70{bB 3980֭ O7mb`aaadU fFc`*߱0XzA|@(a ʦ< rrXgdx50:Ι y3GAuu~rR,y)B^]L<@~×QLT[[@o f0&;?~ 5hP.X&i`6 yP /ZZ 66 e:7r,X&|aF氯@W4XT<SC.'`f @/2q 77䖓hE0N L@`} 00d',&jժ :ׯ_(/AM Y˗/,@^#r\X@ٯ|FIENDB`PK C13˙?nuvola/22x22/mimetypes/pdf.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g BM ^c L/3oYTD។f@| i nBIENDB`PK C15". pp%nuvola/22x22/mimetypes/postscript.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gL &/$$  0?311i@, k Ëb1#O 7ԃ,`dy ?bF(Hş@ߺ 6CT Ă}d $ Hh88rP*0Ąn0@`{PF@/T`@6 XPc_ nfx-K 616bc. o3S ?$@ P fbbdw>çO4to30=~'?a ?2HK+00rr0ܹwLPR@1(B@XSSA7'؟>e`x`X0E HF@ >|ax@9^aGb#8=zQ3@ y`vW3<𙝟|: M𛕓S%o#3U rV #M eP%81 "X6BK < ߾}gPQUaRaPc'߿!ݿtÛ7xz] @L,%%/`$j <| \ @x9ėSbx.Pv` G:2 YY %I(A o_X3,Xdǰ?qs(H , @,HZJ!,bgg(c9a -Rlo>>PXb Vu` ȑ3 V`aPaYO@@BqbPe @| o1IENDB`PK C1w!!$nuvola/22x22/mimetypes/quicktime.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g1ک3i0l`12pH2XY 1p20Xs2|ol@~?ʠg$/yA\Ea o?|eFq1@a<0(î3\ff:Ͽ o^f';n`dLM `-IENDB`PK C17nMM!nuvola/22x22/mimetypes/readme.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gv\ 9b`x L<20| >b`x 4\XmF##0@a×0} ] }f|e` 4 >a8}'#Ygo?> eR4@y`x@w|yûl0,Bq1#$>ȇ$Uw1 ?r@xYd,bA, rŒ e)& o@ЬA/е^3`" 2@LY;0mLEY^3< P' R22-gdU0ce6+3Q~s&~'P'<Ó_ XI h bP3 PT|TaYo# 'nI0l`|hЍ92#Cs$P0@(FBa|>0<_ b7ca4V`U`bԃeXF!)́.!>Q!*0~;+8}/x0* 8]FFVpKB iLhc ߾}1\1JC$61?Af1UVmVy̿~ 0`-61feee ,`ex @!401 (Y3 c > `qUlHeIENDB`PK C1U""nuvola/22x22/mimetypes/real.pngUT |`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g//í?ܤ1s3| bbA_fdXX$P!æ{@Bb `Rb.0100{?P*FIƠDoAANiy2 3tKFQZ feTk_{F @9rf``+`/`[ /|p{\ ?~&GN6b 0r ,X1?>#> ? f.2pGF!+Lނ27pG 9H/ F"//í?ܤ1s3| bbA_fdXX$P!æ{@Bb `Rb.0100{?P*FIƠDoAANiy2 3tKFQZ feTk_{F @9rf``+`/`[ /|p{\ ?~&GN6b 0r ,X1?>#> ? f.2pGF!+Lނ27pG 9H/ F"}0]R O02 /3l8 jJR yyp1Cg1M 131$hSCi.7eA!.~A;^.n09sAJFWAO g.p9 ysk+p, ܕڽ [Nd`f obbA I I"aҢ , | G`x}ڞ o~a` P?0( ׶1p>aP7`eUaq-}Ϝoty"? @Y9}&@q1A93|q=&֯ B. a ?f _|e`Vb3 !Ãg/'0C}gF(8ms$@`hASM]WA!$*]^ˑ_?T211i70OPPõ 6ϟ?Af1UVmVy̿~a Ь'@-W %k0'1<q",aIENDB`PK C1RX#nuvola/22x22/mimetypes/resource.pngUT ``AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<XIDATxb?Chhhw;///߿08ř~8wE 3g Í;//nj30` u1]N=b` $gfBj^"B B ڌ_t쉾vMex,bߌ, L,^VZV  ~`x~6P ÿ ?^ax|؟}xپwmg8 Kdp ;g '?~z=IuU&VVnV>~.nƿ><n]y˺%M ƃj C%yE|d%o @11ߺ&33 #3+ '7 #N,bk:2VI_HK[PK' sA#wA0Έ[B}pZ¾AViP@TxH A_N! !C1#$ %$ 0s 0DM?Qgte= .0Bk͡`:; 44ꖗʧ2  4 H320|@>;:a}@10 t%Po@10p-/cp ??!i (h7 6w 0>"@dP  0I10 M@@ [hwKa+4Cf edAZlPfs qs+0X}+V`?y #y̕M$@,@\ CAhi ` Wa \M}97]u9.I>v`$2p1)0@0PZ/1b$(@ٚAXÅ h0`b H @RLXZP v ̜@؁?$(6;w\NTdOYeЀ!PF&ׁR+01q -ÍgvO ~Vdgp6Rvsu0wuӰeZ=><f?_?19sK ^{}+97aSȀ @Q`p7Ֆstu2t0QVc`n.2g[?tcPÞC"@A fd@ä J_ x@ֺ%yeFIENDB`PK {C1N;$EE&nuvola/22x22/mimetypes/shellscript.pngUT Z`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g}[ F E837r 3nnn l0~%&8]@A3f@?VP2hM`khhw$r1 8iC0Ąanaaa+Ö-[N:Y`W0е,,l s1@ gLwoߟ3. gPdPo!^3Pd@(.yP&`ecvTebg KH)ȀRb\Z *,]tI80 X`D)3-,l@Zxe`70OPPon1||| ?@`WZAZZZX1r$ 61feee Ь'@-W %k3?,B2IENDB`PK vC1c nuvola/22x22/mimetypes/sound.pngUT P`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<xIDATxb?Chhhw;///߿08ř~8wE 3g}Ă-77o=8_10fg8 Ûo8 0wҠbb@ n`Cɉ lBL  n3g-ÝWLt~Ta. K  IpпU Xzp)e] Jae e3~ay1ó^x XV0`  z d8x_fPO^2$003|%=4X=|Gǃӓ {ag``r_g!L4!<(Gc F6VϰG apqbБ`+oPP9 ~)  Da k_ _`F~ 2 Zj:c?qFA/ yVVVP 4 P%@1B in e #b10*߫aEIENDB`PK rC1B !nuvola/22x22/mimetypes/source.pngUT H`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxb?Chhhw;///߿08ř~8wE 3g 2F!H c;UsɶA6&s+P;EoZ$FSCW^ &B^~!w1 ¿yycGo9^30 3N ؿ|afX/(G1~b;u'3;+g y1z;;o >1i6 0ekh0r14Ug'Õx~312H12pd ?g~sp0?@+ ~ij #++//fv`V(` M j,lA6```+> J-` E?$Ð|p lU6HKK`AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gDl//X#V2pss}Y ԳՃBv5 [p 7o> ,O@.gccEq1@Op,`c ȋT B@A8ɍ,b`<~ i ""@]ALL/;BX*1H!//'0~c | v/U0uTĀF ,'`14,#lǏ_xx8itP" X` aeeAq1@ϟ54B@7px,-R ;;0y%)  0x?8)Ar"3KΟp5` f0` PbAr ^ Y\\ GbXfի7=cXEl]a03cse2 w$@\I PJ>|dx4A X%rlfaaa8~8Ҭ6m ̙K  Z X e7q=`IKK@WWABBƍ; @ A9',&jժ :ׯ_3^.^<N~}Î3 Ь'@/ZHs9@,(Y<r*\.%IENDB`PK eC1ɦ%nuvola/22x22/mimetypes/source_cpp.pngUT .`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<8IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ qu D`?b&`jGP(,,HCcҰ^^zðo1/_2X[0+#W W l >L {2HJ3hj0|a۶T#--N1_  ށ_`d~5(@d_pCI-b!$C5$\r }c1l޼ BE#44z YY)`F A7(.&AAp*Ã_ zz bb Xh4`>c~b V --> r@)?GH 13 Ь'b 47 2d@>e@| tO[IENDB`PK iC1)%nuvola/22x22/mimetypes/source_css.pngUT 6`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gb1b`*&w2DTb>0018yR $1@rz??Y  q ~pe'O12p0\tAG[۷ <`dP hhd@? ǎehnшo a05RdHNb蛴  %)* ,AbB7a +20a`ak/2(r0|W ^=?X/,ف@1! ?f3gcv)CZ,Esmʠ!k3׮001hJ2x L` ԠFȷ}30bqCd)Ph?#n_~8 {!"9~3(],bAIА>3;3OPdȉggT ^-c` f.  ̮Am of`Ë@}^~ fA $7XP~CR#40Y9LɕhJEf 7bh"07&uG[n3p,DeвO,-v'%f6o!(@d.f^7'B )ŀ?$M=:0eb`_VxPJ\x$a p1`+_ %4ŧ,0ξAc+{+(n` &&p` ߾} uDd  ?Rb1d@ ^jiiiu`ׯ(ij^Cv12|hKb p9@,H10BC)IENDB`PK JC1=buu#nuvola/22x22/mimetypes/source_f.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX ) b3;4b PX Ԁ0P!`ȃ9 04hWPgG Lbvvo2CW /`5Ąl ra&pqK.3)1)18 &d#K`N6NNVN~2켱G ,p\D>RPMW61AWaDfFf￿à  rAAA[ "..919 `3012?b V -->+oa|V300? _|aT#r\X P| ć Q)8hIENDB`PK HC1&C??#nuvola/22x22/mimetypes/source_h.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX )`d##+H@ P\ 05((@ >H 3 TXs =K\B"*`s5p}; ȥ*@c伏,O&E.pP>{jđ ^bk(H Xػw 0\DV\OG(HTTR^p 6۷o` `?p6vt4ay,&jժ @ _~C`@" ORgwz*vZHs9@,J P| ć 1q7|IENDB`PK EC1\\#nuvola/22x22/mimetypes/source_j.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX )`@YbBq1H3??78@֠E* 5 .H$22`fa`bD cbB @hFd XÒH3'#Ë_xBb0@cO ;Pfbb_|Ybď\*0p%\DN>e/30wG0,3  rAAAA$\ z| "R o`P `fe',&jժ :ׯ_3a&)@#óhP@BqbPf c > `/@KJIENDB`PK BC1{_||&nuvola/22x22/mimetypes/source_java.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿0` 333ׯ_ΝVKK /6fo޼aae8{3'8cx7Ý^cd<:͛A'KKKD@D((} &&PRO_~a+ý{w0={Hˆc > `7|&IENDB`PK =C1b%nuvola/22x22/mimetypes/source_moc.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g`k~ʏbBv!@Fffǎ1\.*br%o\\`q3 ]] 1|{?X/0`f ^fx4 m66G 0Z ;W30nbe5 &A`@`YY~# V XЋIP S t~3gWbl 0| Ҍ(%  X%b$+Dԅ@,Q -$ko߾y vA6 [?Af1UVmVy̿~ 0Ð] Y%/_Xf= *W@,-@ ̋  y{c IENDB`PK 7C1{{#nuvola/22x22/mimetypes/source_o.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX )`d33$@.?bf~~np(AATAj :`* (a , +!`@a rS\#%'X &t\bAI\VVF{~2;ɉAJaϞ/ I ĄbdCqa* ^L zz l _p\KA> AE? >2xA\DA 7d0(yx3(*1HJ'+@~b V -->Vނ]LWp3L<4  Fh!  (I2@Y10/NhIENDB`PK :C1Ẓ#nuvola/22x22/mimetypes/source_p.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX )`!?h\ @(.iGHyA2( Fll0Ұ^A)0u Y8;pvYdu-L=` 1ra&pq0 ]a``eWa8eïo4b +Lpaf, l .f3'3;'_pD30" !fa.yӛ One Yh>СLp4b@ x] 3w?0yӰxyA d@ ^jiiiu`ׯAL rSHz< Ь'b 47 2Hg c > `3SIENDB`PK 'C1u;``%nuvola/22x22/mimetypes/source_php.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gb6^?/;;7 Ín)-/^ \L A XP ?~eXxeN~28;N-N172| ÷$u>2X` (LWp{4qN~&0|Vf |ax'1ùX.11AL &`_ >g_# Kw3<, * mex6W g.= b@1#3<~'" 2 Neu) ïL ?fËy.^ PHb 7gx|OX%kK3^Tcxs03/Qw )2 Ǐ@Lɍ !.$🉋շ Ͼ0dxİ$KC&G;@Ybb LՁn@ ?@Ai&MEI f ظ|Z L* L V `x%+?'ÇI{bA?~cbb0aeБf'7P !* d( ê̠~A%A7`vd;_dDL1ccd^3z`#7$;0jB㙁i97 7o~d(AYO l_, y X0121ةs3h~pgӨ,# Ï_Q sP)aeTga/Xb? @cb}E&7jG7& 6۷o` 1c',&jժ :ׯ_#f(],¬ _|a( A@ 2d@>&J@| }S ,IENDB`PK $C1}Ѽ$nuvola/22x22/mimetypes/source_pl.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX )  ?(Y ZbBq1H3??78@֠E*`f `20c (JDcҰ^A=İ<~3I`8M3(E)@1!c -̀^f+#, JN>`8+v1M ]l( ï r2dP_.?д 1 iJ`p'؀ ?.>dxa5>_7}`p2A  rAAA 2\+ 4&% fnei&8+&?8X3S/YL6xժUՁu3P%"6P l` ` 07+W=;-W %k(K>$o'IENDB`PK !C1p$nuvola/22x22/mimetypes/source_py.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<gIDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX89>GpAAs1@a kPP"+ٙYAnb` 3Ï?/aaE#$?3av0p23xKX1AWA_a­e >2Y[@C9,f^ɐ0Zva|* l !@D @ r| >z5C;7ξPoX=@4rdXX|}pw??2 h2t~ASw.&v_!)loOMUIENDB`PK DC1K8{{#nuvola/22x22/mimetypes/source_s.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX )`d>p\ @(.iGHyA910?@6j , +!`Yq30gd_?P`r:F. $.re`v0~0]?rBq1&812V˾9c`"l 3,B!$$ ' lwxl/e`?z!A @`}AAAgO0% /?/ïo@f1UVmVy̿~\| "PgZ LIJ$[ N|cT#r\X",fZ2QqIENDB`PK C10#nuvola/22x22/mimetypes/source_y.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g'?X-W@w>  ?~v=77'ï_⌌3 faAu1@_2٬` q+PP  3 Pw`W\AXMT/?؇ K!n0"P$ _>>n0d(H3rD Ar00}odt0~ l l`A@As bA00<려6AaK lA>G< /_?>(b@d (PNN(RA `9l_,`@ YX )XAl`f^.rDA(RAaPp1-bb Pj! @LY*6T  `W0gxcÏׯ.2>!o`pgd&^^>]]6qq #'~\*%tt~{ǠVXh(d &xBr106$s f﯏3<ٰ\JJ | L\\ AR 8(} t1#0lـ:;O33/',&jժ :ׯ_3X[@C%K4(1[7YO@@1B in e@ɚ|J0@0wIENDB`PK C1ES&nuvola/22x22/mimetypes/spreadsheet.pngUT `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb?Chhhw;///߿0ׯs]tZbd`bE 3533| ._a }P0  `~4(]pp|b@zbCq1@A] 3D bfq2 r0pr2@- ?~  DC jw߿޽'VvYX3W`A<@ A( -[P(220G>??3|#_f~.&EL _ @?ÓGa WXeaPa~93 /âB _3c(Qbbg:j( *AAFUu&$# е01w3M 0?R=]nVE~b0(a?7Ymn W0cbxSa9g^ě n0ɔB й cbP`f`gffxÉ[ka#+Uox8>3 <H0l0(sq-V20Ë?3kn bW˘AROP/ x:/P11f#`q܌ d' yp03p31ܾ( cB`feRMgyíwWx%xY_ Nb~0Ă %Ta+  /`8z'ί  L-_Xr100K XEr䧟E:l{p_ނ2;((÷ F&^70OPPBj ZHB^`(~b V --NCp1h,,, _|a} @ p&6W I`u.yIENDB`PK C1BBnuvola/22x22/mimetypes/tar.pngUT `ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbܜo6v?200120D> Í;//nj30` u1]N=b` $gfBj^"B B ڌ_t쉾vMex,bߌ, L,^VZV  ~`x~6P ÿ ?^ax|؟}xپwmg8 Kdp ;g '?~z=IuU&VVnV>~.nƿ><n]y˺%M ƃj C%yE|d%o @11ߺ&33 #3+ '7 #N,bk:2VI_HK[PK' sA#wA0Έ[B}pZ¾AViP@TxH A_N! !C1#$ %$ 0s 0DM?Qgte= .0Bk͡`:; 44ꖗʧ2  4 H320|@>;:a}@10 t%Po@10p-/cp ??!i (h7 6w 0>",l@s2cda@(LR AS! 40-t 0,y%qB a9\ AlV`YvD% -g B  pA 31t?H0 d8'0(X+?߿ s1 eC" d0=C vn  pHaŬ\@?0C bO-y X 9 ĕ W F<6H8:#s,`0@_bh3] 3@`e`b/J ?qX%ɉj?A b08;# X0n:9?#/0ѳ6/<@q/ׁR+L`þzpY6߾k/m F%Ԅ\-]]4,l8D}%)O wdx^p@12N;uM],yԴD۟ d8{*уW>?_OpT=eV$7{ Fi#UQ6WS5W##mՇw֭?{԰Ab03_PP0i`:0e `t^e%/< 53&IENDB`PK C1͆-*nuvola/22x22/mimetypes/template_source.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<aIDATxb?CHHhRO/߿0002 F8&gaaa Ys|x4x?@ dp'Â=OX /HD/cP 4R ?3u C!-? /@ / +:3D!xb jAm U_y16k AYA] ,kb%85ܼ< @   o?1󇁓 b(`Bi6ο@X%@A p>|oPر1$_&`PiUPG@`A (I0SȠo~02p0ן@>3`V:&  xP0';88@n`g[b, . X`&&FK^zh;ؠO A ߿Y>`[Ăl (@.`ffj!'l`\ppq1@ +`XfcffF`Ӹ05,`Y s1@@\ ɞ A^Eϟl RD,ROd cXs1@QLLO# AVWK9|E) /mf\p AAcp΄?J @p4 ]E {@>"~A3 е`bp1 t( ;e 2 HdП?l$-3ƒĂ\I k @ZX i%Ia AQ@`~r$?E?xaZ@&3UVmVe?H2Ļ0L Ь'@*r\X ć "ȮggIENDB`PK C1V~~nuvola/22x22/mimetypes/tex.pngUT J`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gcfyQRp1zita @0!\@R#z$j021S0@ '((HKY bsOYL6xժUՁu_!G0XaaVVV/_zz @BqbPf 0c > `(#r+0xIENDB`PK C1nuvola/22x22/mimetypes/tgz.pngUT ~`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<`IDATxbܜo6v?200120D> Í;//nj30` u1]N=b` $gfBj^"B B ڌ_t쉾vMex,bߌ, L,^VZV  ~`x~6P ÿ ?^ax|؟}xپwmg8 Kdp ;g '?~z=IuU&VVnV>~.nƿ><n]y˺%M ƃj C%yE|d%o @11ߺ&33 #3+ '7 #N,bk:2VI_HK[PK' sA#wA0Έ[B}pZ¾AViP@TxH A_N! l^KA@l'@KY~y*@?@o30|:P_@=  0ap bҌ _  4\h;w[   X cc@a` 5 / !B^.3(XF0(#_T40!|Z1P 0,x >`Uw\y b0` I ` ? ;'`}(*( .`h?  d٠gX3#Ҳ >12j-dP e/*ï_ ? /AV? xyv7_gԕb0 f8$0^`apge`0030 @A\ rC1'10} 9;Ss2|zQ8@@,@\ KpiV"A@Wgd/Ù7me)@XI!nU&ýι L T a BlwF.qQ|+# N1|y'AT[APc0`a@, Q09@,aH%ET;H3` f#= .&b׭S=b&zV`T77P3m6AL\`o28|aMouIvg#5a7WcK{W1 [Qa30 )?Cc`Ý37.p'.>~3*8@ NEwSm9GWg+3Ks5m5&Q`"+7p?|S2`O~ ̠~W0c*`jd?޺uc09 P f j0#J& *c`*,+~1߭&IXIENDB`PK ׋C12nuvola/22x22/mimetypes/txt.pngUT &`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///0&F$333ׯ_Ν2x̙g/(&ޤI  rG5@ʓ#hK?K+#bgD@D6@|_&@,`Ð b(A(ϟ )b)N6`X210`3 b q] AQ1 P `L?.ƆA] ff<`a`2Aq#Hx c n@ԻHy`qxd2` P @Hlh13R $m`׀= PcEu9)%(DepDG Ha5 P\ Ő 4< @}̌@,y'0y} ο7D!4cA]1Ɏj Xs@deiPÈlD a d -l. Ono" ?xdbFVK@4;(|-+#hBJXF*~ X1E}$_A\ k BML؀# #F Ԝ?JxHv@@kFH30|c`*ij0FFu  _~9 fNFh΃e h@] 4 ٜϟ lU6HKK2M /)X,1}YO/?8dr\X4_,IENDB`PK C1Y.."nuvola/22x22/mimetypes/unknown.pngUT 2`ArPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g1\0#(y=RqA 0" A6 н/(@Ts1z@,2ĺY@4d>@LnĤmlĺ9` @Vز4@*܅$C7=  $)wOYL6xժUՁu_aKӰ &¬ _|a( 47 2d@>`@| kIENDB`PK rC1 4,55$nuvola/22x22/mimetypes/vcalendar.pngUT h`AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g|Vb`rj_@4Ǐ Ϟaw çODSSS`Ё@A6 m045˷^x TADAVJA\FADLڥs we011ayj ܾ} ޮ ̬ ?=?3gbN~o, O=eg7`#lll | ?r0ݏ < >J?102(3312\(p}YYx0  @(.`xpa`Aᗩ}iYn2|j9 @L.e` 2=8 % 30[~~~Gf(,bBv1(o&  -!YAJ?~ N@(.yGNNO ;HmTp wWÏO~j90 9σ$(Sb~djLo @[ ,@u W4H- =+6Ѕ?u'O2p_v-_ccFEEܹgC. T ~]y *M`e:sA,ΎIp0ã7 w><|a%AYUU`PVfpw߽cxa_`. 555pQ( @(.Ѡg8teS fzUFJ***   | "G@D ڽ{21X[[3(U2 X# a@,J @lmm9 $ (a$F lo

      f?p>_?ؗLLL ,, _cwd(2!  L00|t(o ^-d`6dx%0& "" ߿2 0Ï?8y&/_3pK2) 1 vf'05@j &  'Ënx2|-+"?~}/( .,FF&E32"R@l ?d/g>oF* `t)ӟ ?'M..v/aA cB _@Gf 30߸p', ?8dcce`eecRP \ @, 78^:303A`pXY _3`@TOo2>f}ov bo1p23y?`@| %ҎNIENDB`PK C1l;Y$nuvola/22x22/mimetypes/vectorgfx.pngUT `AsPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<=IDATxb?Chhhw;///߿08ř~8wE 3g qc@D 1ppp5/[ AƳ2ܴ܊`K@A0@ϟ? mم0 bVGg2p]j3Cf,bB:f hkޜ< #%c\!: 3ãG OW{bB 0ccC _Ƈ9 0 fۇ ׮e0a+=3 P޾ew/;<_`0lׯ |a`F(.F  ?zR`bd y֭ ?!I,bW ;_`P10F&(߃tߋdv pJbf`@|$(lpXC5(#XHbA Aa(,}2hk3PMv @, @ Gc`TVKI\03ge_v\VF2K33@|SL᧍ (`zbPWR 0= 50A/'ZZ.R++ica B^ZÚh`J E` _Lz 4  &5X| R@)2A7@W1|fO@@Ũ;(I6۷o` F¼@9Q]ˀ裟?b V --9cIf01B/_fS-W a?|IENDB`PK OC1 #)) nuvola/22x22/mimetypes/video.pngUT &`AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3g< ?8I&}@, فD] vP!Y bhA`q!!!60@1A LH!!0/52pqqg;wӟ?@@,.DvH!E &/^0yG ZƠ1L-@a ޯ_^~ ӧO.\̰o~7SS y55M߿s A޻w;`/_zcؽ{/99g1044402S÷os$@'[w0ܸqA^^  nd`,󏁓o ?Dl Ƭ @?bd000d+?~ 7@1pۣsbB6a07F8A<<@ZW^1(N@afJP$TU YYy`ZZ:@ ]Ġ  uum/Au ,  Aaa7A3t s Q> zş? ''ȹ=+bׯX] @1?%?Մ fb bV@ VA M AĂ^prrsm63 +җ/de%` r7%7DqŻlÏ?If@y"""`^@0$QKBP\ r9`` b/@@`WZAZZZXJ1?  OG.*A/_Xf=J FhNr\X<@ ʆ o1R/IENDB`PK LC1jj%nuvola/22x22/mimetypes/widget_doc.pngUT  `AtPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Chhhw;///߿08ř~8wE 3gJJP<~ٳg _~A`c1 `,&&pUUUQQQ _~1 ? < \ \@#/̠ cؽ{7'''+++fA.|%fb05f`z"/nܸsss32<}(AJJ %% o|ˁ <õܾ v-rB1G >~bq*JyK@ @>cUUQa}O%(ddd|~ $CP- (BlYA*0  0?0 !lzN@&/;cS2VQsn^V@*"WIn ZX L` Q.ޠ lU6HKK`e@| cU9IENDB`PK C1 OHѶ)nuvola/22x22/mimetypes/wordprocessing.pngUT `AqPQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<HIDATxb?Chhhw;///߿08ř~8wE 3g+;lH @ JuY /_s( 0l"e8urya3Bc)#p.`f8LӧO S@"`\yn ḩHI(Ѩf7eKsvdwU4%HFu bնM!J dej ku KW F%^W.^U|򩡧Y >7t2Ao*65}]N6[z]öz*~)N6Ųzif't'Wrx%43cxʹ]}w(%w_1oR[u޸ѧ7S8 ʙ,{hl;fTb|-mmHNQ4ړ3`ꭖڣOht%f}Ou<VCzּ4k̙;x<ƚj2j,\T~Vw^é%Xju,jA7O76i/ ~lWxƇ7U>W%l0a-ŇC>|W;FsL]Eij5j5b'`'ʿ!]P8/kpY8p.3% p>.Jl͘6l"~<xO&³.~gx -_DI4*:UH(KHdS? !ztN):tF-\-.b8b.^ |s|[rJ|GIK02i̱\Ş'3 l( .qɡ3_xK³ Ŀ8&&[+B3wMOxζN4ok1P~~p&p.b\ilµccvs3n^^> 2|O9|)+_7Ο8?"i)u2{J;H=T}Ӌt|12оl2mk>KH$DrSD{6D"Hs '5R&~@? ՈRp^ZPe8%D"H$D"H$M?PK NvQBnuvola/32x32/actions/UT $ QFSux PK DlN1uN:\\#nuvola/32x32/actions/1downarrow.pngUT 0dnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; Ăa4eL r@YXYo3d0] i!4* 5f`b @20Ăـ|&F&/ Mq (p8r33)&'432 g`; Pan CqËo6q11,aʴ F |P``fe d/#r,U[^SAR^xeb+×w 4t < F| @,*Ð_:з`K! ?: 2H1b:?  ?c} P:ZT#0`~20d2H)cǿfC֭kÕ _30|HA53a场r]78O \ 1 <@{gCB4;U6Ca#v;/~f`/ }0Z-Ӑ l:Nc S.0=AA/10 3i10ec VI+ å'@!Q߀'Ï`df th!F PJXLXí'yxR昘2hsD.b`8z辿&ށL4;H?FO4N>6NP^.1|A(4#0$Te% =bd@A}C "BKa90=t:aҪ \@w) }40uZ(3]$..p={~7'0,:WI@oe!f6`H[>o$PZ30Q0蚫2(11FϯP'PH^y)0@+Z@hِٹ@| ?ǽo3\{AYA(h>8 It~c(A}d`bJ2^ w ZJa7MZy÷ z4,pA `O@A*rx=7K˥o~ %P/_(JMf-,- ``xpE0$v?aϙ B@RҁJʟR/- #B 018A|Ɵ ,_  ?AJtL8dmqQOw 3(kZc4H#ۀfۓ?w $:sN T0Bcd``g5:{ 301``BfS&4&f`dg g@*w@ h@h`BIENDB`PK ClN1&33#nuvola/32x32/actions/1leftarrow.pngUT .dnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@b%h2|S~-dW  [) *{j/t$٭-o)9&6 D=02(37wwGO?x/Q\Za{2'BA5Cr>L w~aLf,pi JE Jq633 "eK/3?򀁁0$q@,$Z 1;0(* 0phϿo~ϰgy>3%RE@ݯp @:iLi1fX+Æ 90yΝ~pre~`h 8  bPW wn5Cãw 10\~ oο=,l823q뻀ǩkK22ꊃ| o) W/^`88S} -@vŪ[@CJ)2û󕁋Ӂ: PW0_ gư,K ߁3`6cP!^00i`Fafc, Hpb ֆj*0y>| !O7.;v`p}b`Av+EX |[,󗍽nsaAH)E<32 pZn" b_(kyӀ /0bVob q l ?&Xb@ĶSL'_yNƟ @GM~`d&@v>&E`brfo`u /DQ"Ll Smm&@GlUe(@& ,88~٫ 4IENDB`PK 4lN1%77$nuvola/32x32/actions/1rightarrow.pngUT dnAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@b%h2 H1|ete2f6 Fald>3y@CL&Rzv ~d"PF!@ ǰb7Cïy@Gle`dР_ kJxج!:CLÌV{yyAI/2gl*,Y313pÙG z: zXbo#P `e{3|~;c`_jĐ < @r@̒ V/0iI~C7}`b WdP .- L(kQNWQhYyt!o}I #P FL^к1ñxbƖ w)PI1ͫ_֮#gb pVF bj@W0BJ$0e ' Ͽ Q&HV/@;}ąYPY‡F&hiȈT42rZ`r3`xBn`- /1Z O]"= Fv̞ r3 b0??pYf-꽀Pb!`yxXeC%>1Lh/r~`'+LC PB!X/JIq:K3p&0ΙcV93<}?2w>HL`|{ 1kK35$#[h;L@Gb $By$+%*.p` ̉</2i*P'Ilfc&m 01|ֈ ˁaW@y*0Ӂ:Bf$6 <P[ 0h1@,<XUb0rL# Ï? \`'7_mon?6!˻/ ?m\ 0Q`/&[P(0Xu-`qV DAв}ǿK /S_@9Ѐ; Ğ,WX:IENDB`PK 2lN1{HH!nuvola/32x32/actions/1uparrow.pngUT dnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; Ăa4E^qi~F8 }XϤD~_sE8$ ` rPW\^.rkh#H&  3|bb"ВmưScn1a`e_ q H F_ ppOe``cϊ_RϿ @ED@V?'3[a`%p 켼 > ̬lb T T@"O?Rµ4?c`woxed @ 2n01 "ZJ.ad8'_}b ͫÏWrXY/0rc`o@ Lf^/+á ρ >hF2u0e`  `&,*j%v``xh/w^3`(:'P 4ާD!78>00Bx'/ѐQam=q{k1\~Ǜ ߀b?u#0M額 =ɘ@s_  Z`bջ? 'wbW^^a3u0H30 Je&P #cb‘,#Vp +å I'cxG'{[sM CYXd9c0bD @ Nv"{| '30g`|\T c眲~s)g :`701p2+c]RsX9%8P, L_ L.)f GAJ`_߽s@n301 NY,L5?XAW(?3dvg%4$A .P@  LtEN ^ ǀ0{} *l~3\MڍO2i2F{` -oYd+_ldaavcaaaS? (i``b*{TX Y\@[9&fXh8L`FzI_?2# 0e7i , ~f``f z&79Ȋq{F4bpЀ; 40؂KIENDB`PK0lN1#nuvola/32x32/actions/2downarrow.pngUT  dnAfPQux }s~9$t竨k 3D3|ɓ ,@C㆜y %>DL:Rb1~?@?NxX Yl"B0`vKBB#&7&cUh[I[048.},d 9/,-tDBB}6ԝYW_5}nMnW@ClϷ?l˖NOD=3x/pp*VNeWk>vؠNy'_gѝE6٢$N 3ֲ w}y*fvF*F+nnB+NU[9}ɇ]Pr.9_}bj *߉k-]ىʡ}2~j1Ä Ý .c^nZ?D^WXoSH;%7}JV:]&R͞|xfbg{-}.T?D2w[Wt*@ӫՖȵ+bnfؑ yʇ̓)تCbmߖVe/x97;&˼n%qGmp~Ecb 7#B>C^I`5X1łꏜҏ̢7iT~gA^ş}w(OWSe;=,_G083T,_']vQxDo+ݩ$OFF7!:h˥*W꧆+_.+,_^vr݌OrTq\u7t}mq\lOt5A%D?DC_EH[  +KEl1l4SFw仮훏+:nYGxj5oub/pP}T|Ʈϕh'Nxt'$;@2[MYBm?%Or&*%JK`?f< L Kd P"AHP̜0kpFksiO~2gd ? r30p-gmf' qΫd`gPL@ c~obPe/F*`bPoH[ pP N XZ_SˊM߄# rBٸ ltb:{ "B2f @?wO_f&$1Ɵ K] lW S XX:6\*ac`xzúo!zf@awV ,K2g~3. `u]nd7@ @X /CwU2(//[1{g/s1*B8!F÷%޾% 02/Mn]{#寃-YP`LˏRdvdXz`1a{)뷿O0p;>~]ࢠXSa 93\>t{8b O-gXÏ38Bd-?å^uhy$ЖV>~[nl.p ôFウ_39)j9 !^2I s10 5 7/?gM6 p݆2mm 'p0*~|x_9bQRܲ@|Nt" wz:H %+2?ȰO_1||:;[0n5b$7BJxEyn`Y؁,!E/000g`uai`*E/P 3C fD9@ \O֋*Z3|v`"ŋOf c`c? 6d9,303g^""+)=_/80\? 㟂=tɐh DOoYa BhATˀV^X*ƀD' D9a6W_-00 e " f u G@!*X؏Syۻ_rA XKB\Z@G(z^} sFno@] ?.``00fhc`gfX y  10 1LecnZh 3B?(}0}`gTe_ßkv{p{o@;302L(fd)KG<:nî * 5f,LOc?  4\㯕^f}3G`P$,Б^UC 4'Ko̝~͇_ w_10l=ΐL9 ?Y2?uk O~cxa) }=xEf`H_ 𘁋#ݗ7-9Sw֟d`HbF`9szI5O+Ofb`pg(cf0@ )@03psD=Ѿ'~ð[000y+2|d, (~ ￞0Qs ֟|?g` tK " ̌bY #O:ADo6bDS3<Ó/ |j@Da /55@u7 3T~Z+_`,s-ޙ^}f@aF#Ͽu|͔- `d90ʀo&8o~AT+̥5L>baU; /< c/:Bw3J&/n̰;8De~} LJ8fÏ?KtŌԌ6^fe8@? LW) L- T',ĖȰ6'9 ҠW'  c !#K,EtvbVH R@_A317NjSÈ#~Nÿx*Dbfꝇ-rI+pZ]_ |p*S ? w>2Ӌ P7/2j| @ WL, 7`jgepX g+Mt7oo!)<`60{&fk" ` @83Z۟ ̉@ɯG;HS ^d5x9Ý;ȩd@!;\}S@czL FaA6F`by*0-f,ΈP@(`bO[1||2+K(OP46H%*dc緷o]{ (Q"XX&|_-b!>Xnh%+,Ͱgmuvh1R r*cKY6W9._a5þL Ӷ#(tč899^:Hf2 ;ci̛eΰ2# l>>ov)M7Z$S>|V `2 DC\?ýS^oςf ;B!` (Y@L8}O%ÿF[8C}׃rP`w'Úwg,zՃԂCC oa Pq174-_* c l`ћ sV^&6Xau @aا@A†ğ MSHaai`T)D'|`$X}ǰ 0΋r`.+d;?Q94@aQO`H"0m1=r߿B@GTq(d&PN~ oƒWJKؘ:r]Ud`{AQ3ׇRR , /- \gZ & f`Jde0eqWaXyVJl~ܿ% _ @O3(kC6"Mg@s;÷?SYKgԙ10VǏ?+_ /^b_o^t!X'/#?~A5u6X` , 1B , /OK/1|xF a`~éGo0jꘅAD#xMf@aY"ǚAI]=H-^={{0jcc :vӁk3(}M`a6SaM@_p) [a`g+-tdM*)k?\?wA+G`|XGr0蘫0+)f.h*'[o1枯3|{8Ycc w ,O_ݘR ᄚ06X>|m 0cMQ8`,+a`eS e|4P?H Fe lLy"}8нc1@:*8yIENDB`PKt91v "nuvola/32x32/actions/about_kde.pngUT gUAcPQux V{<&T"# z.̪ʈvA<.%eJtQ-=*[[zJ'̄n.˥~s^y9![h[n}њɓ6WT7/ iQId'&!l->BMIM|Mm>)E+j/7 DPYqt̃=wbr)#,4j4ƍMUW+vɶ}~5BJQ+F(NlbjFNY{','܍R,Fj v`JWǏ_{moNNϤƶnW՗&@MN >IYԬK`O4 VV)b+^DWN Z}EdbGEs66Ozʥٕ^ 岲 gd``?8VZK/pDf(:+ ckg[>+N4ѦKjK*d[T+HpU8<>}7\N$ү^4Mg^ԪcwUJ%̙<}- sؕ_M^Ԝ`4`碎Z8;Uc(L x~#?@VdK ?\,:,M|٧oOڬ@p|d?ubb M kMg*4HS#EbW+CIFJhúXTKAku9{'J]N %f8Fg.:j7ywssiCj,Ӑ9*mooOE=NJ˗!d V_jr :E6ii~.\b/fodውqZ!5*|.7=K,<MH?_ԟ}@<6y|#V;'} RբGfjz#ptgVe>,5ʋԟau㗹sꝚ90?m~Ʉ-f#uIM>:do"_$9Qr㽖U aXx= 4 Р}X@ntH\![&\z͛ *ey.NG'ȱvG$Z#=qEyڤ;E=烧\z(ݩyH8Eqkֶm$CGg'&xycpK6;2<9wՋo#54f$A P?=)͂5$Ik-qqfRc={5.L!8B_.ڟ%&ہ:8(p0ezđӼDMG եگlʂaaƿ/^\Us ܴ2G$%_,Wg^Z%P\s> \ܻ|j.#-m9ӾS]__lX[KG]1qqG0v| ̭s|PX8*yxՒEw+mmTw`8u\c`4_jz/$]1YoQ.jlIl%J Ă׮)R"ܛ8)Ld2[_x7FJN#?CGT \U7u&*6R$ e#2 >=v"צa]h@S2Hoy={v-C|ȦMk"SKjD-i,wsױ7s0 S]߫8y@ dӨHfx/X0\ޮ޲Hf:ʗ>[5LON*(Kӄ,~>~?Pvt)du<'}p3pÆ&ZgNد充()w$C,7oR,π:5S9*j9m: ޒԹ{IM;17%Ns L}d\ ,q=Ԓ%!$påޗ ]?iG]^.kϩJ=y0Q#u\rC7^qy7?k_b^*oH]M*@rլ?q9KkժN&)qؤsbSK4њ {o3)PK mN14nuvola/32x32/actions/apply.pngUT fnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?@bb`@pi܍a* )` &@ӳO'˹"3@WϵNqD:smȀp̈8 W[\c@F0?_RBP;& @4w?wjiD:012L Xhf߿5p焚h3Ek2̽za+~@3'&im%.0uu}d?f% #`ć'02/a+00efgÞ/fn}6zPYѢ `DzO~21s6P-{behl+l\n+mϿ?N{ΰx7~dcfZ X/zɰ{W f . *la3N_3hp9[ %÷L åOO}l,L2 x`7+?ӹ.;nOE=afϿ3Xs`x!cw7sH)?&##Úw ޼w0% ~O_ ?bXs)}Y0}B;F@D?k毬o\pm`0d÷_>W~0a w~dƔtvA  jS`0@@m3K 36H}pH|aߵ 7v}aĘw'f`#T@L13#=7n\p=o?3|o0a WrayV,WQR{" ـ봏׹]{7@G|e%ñۯnlf`|^0 !3g>c ~5Å'on``~ltP b?Y|w W~dU&4&r`BJ JBf, Jƭ ϸ/޻ h1+|~kjRAČM3_o{$Z3@P @7Ѐ; At>zIENDB`PK pB8'nuvola/32x32/actions/apply_multiple.pngUT PQPQux PNG  IHDR szzbKGD pHYs  IDATXWyPU~# B$eW`mai(@I~o/cg-q JTش;`5i=(\yZpf8T׈7k;*ix'lŞxKun& E@&VF؛˘pD;`{ N7#t#B OPJeZ@T( tX ^oiF^A v֎䋄1BpoLpLwu9JXwF#;(N c;qEMf#@͝=O>9\qJ?WK9wʼn=IшsMPym9 N;drxoi\̞C5`  ZVcbj %) W--B#r&|9OXDzW7rs+}yE0wܯD=6B:* mN+C!ڰ 1ϻJBo$ 8*ZP:؋cE]n1jr&O>}2s|Xѥ?џAB$cf*#\-yYQؾ`6Bm<REOU*r 礥)w̉C}LV<A y7 ip3ܮL|:mV6A 弉@w )`$N$F~- HyQn^e|lrTMȜx:`wk=-狇IW:;[r R7lU` K7ޓ|/)-jl뙈t0'>5t|_8Xyf 34N{,~?KT8wNҕg(Owxǁd`DMf7Qm@bHSٓnƑ0ԂNkE5}WdYXS"şt27q2\uZ:WM95o61C9UftvqT*|mAN\[hpj'ʮx-DZ6N\jFKEe ](-]H7"+pਬ5N5 h5"`$, ťPq؟&݌z\ڪHIuF37.4q[eDE6|go  ͊GD->,Tp{70O5;Rac]F;N?VaCr7#~9ݓ0gR#fX1#FW6V h5$0b3 6㎮ sg!gR)}j"Ɓ҂"z:ꧭձ|?s催!H9t=gnc-ɞ2AVhw>` 3d2"ǯ'͒+nݟuJyGgECLI宷5XR=!g tpjQ!㝩H-Hx~{)ټ dSt:7dG uߝ7!I}O[F$+sPP3Y84]QH $KH-N_kG`+QS\ǥSf@bDZmW=!:'w$ۭ ʼJ=L Y9|vz1 ?06C+Ha_Ԟ0"YHZJ3,fXPsT_d]|w_WCB7=v—!rՆWHڲg7ZBUL*ئm+6/_f%tEXtdate:create2013-06-02T16:01:22+02:00W%tEXtdate:modify2013-02-17T14:50:28+01:00 v)IENDB`PKt91Z'` )nuvola/32x32/actions/artsaudiomanager.pngUT gUAdPQux V{<޹fE:)M6(HRe:%T*mocTR!9StJdc.t'r<>|>L`cR Ch!?}zj b~lo]Yɉ!Sc;*>"'&zW4'*-`JL +"n?9lp~na}ȱ7.|]D4GZMY2I״DoPP4Ow|ފ:EpU9B!'P0zu\P `5*!:W?gqT!#FQRy=%… 0w@@A2zO-SX=D+SXO~%3P 6cYL]7$${K!hSjk^o:+cN3rÄAȔ^JV_n{sE 鴭@=B:eŲdiwu:|~'C9М;˞Rlmi<) tavI飸ԓ"՚TzvKd5 ϝLJ{eyc t 88Ȟ7Y`]X$!.WP&\ChY4nãoIeyyOl77kJ˄~ /zАbWw:gxAe C=5?~$q]itRtM@bbp^T'lYזN_cצLD]]= vuqi'N?{.((2LeܡrLs)LTsϰBWÆ"dj1otfTV>};;;[yԡ0;Km/ /Lqi rf]nAM\Ҧˎb#$zyy9Rkg1Xf.&9%KѮVU>! }@Zr>p?2įe7t766L7i~f+ŴAѧY1*cM vkr,{ƛ/$Wڋ kܫ98 ̛]w&^;mib0.Y(OЛ'̓k]K9D^IQ(3,g7 H|mLTB?&I5Hxg%H'h@lΛ6lܨd65h: [|ro jwm6'fA* U [H(C:hE[~zv YCG\]b:he#3!`"kxHcƃ !kBϨ=OǬջ3/lQ`*YO˘`#fht5lo;z%75e71XC+a𿮖x7hƑ$p U N8|rvRIih=2#Y 6%mfYٚS6$k&sעL$^0HEN wVtR?~w,Hwg G2dfz%v]4>*" w \*I*W;>B|ċ6UM|蚝ON\"Y4c'?oi#<ln΅yKKhHT$o[N{>F͊ΉY[k:gf#%mHP͚+&CCkzކXw54~t!j2ȌwZpƮ/997`?5*~(] :2f&ǤYU&mPîp+TܟpZ8(BZ'P(b0AdVr.Fр%.&D!{'V82JLoKA{ <E^ޏM椓?׼0LҌ ³g7 :Z*b"= .fުvLL(u ';~{-ziሬ$+&n9]Z973&|O~7Y:lh$gvrTE*͖PUԞQ5/*_ܒDZ}TPꌊ*JSUv+EN|o :TkL->Qid݋MdKa[WZB-S/Z>igC8Ve<"e_k4=|}%_T.e! + H[gÏN`]wPK t91|(nuvola/32x32/actions/artsenvironment.pngUT gUAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,I3MA!00i#͆t?~11{E+@Q, 2a|6d8 I`rn˽; (s#P?\P13, 2g,AK!OIܮU@DX L;Ĺ2| F* l a،  `)/{rY[ /(018ɥ 3tc<p30j-1w;Q) ׯ\bg;Ͽ  , lF`Fj9$*7o}aaP0Ȉr2H 00b" 8' \$tg`6fZA^GHb!A)sf`ȁ9*>DW<~oHyN<@.9t+h;@S;FpS+Y+10<{%")2C* u,78C덟$\lnW;w2[t߻y/aNp @~C?T ?_gY>߷o0A{`]_^=|CI~w1|/?!` g_N X-~ t?0~5 ϋ=;',@_!̠B0xb@ \ <\j l)(`#ÓOU vJ&fxТï߁CA@Lw؏2ʨ1|{yhH՟ Ǐ{"Y~|~&3+3 (yRgVObO.},(1/_`x!'\?E^_ BAZ^3pA؁K\j@f2 n@Q(GmSslb2', B*T }5f@Q/9 o>+$oO/ ޼e8vCڃ  juͶ2ycuac1);`ImyM#@S+:ki]{?ze@ 5Hw<>@w G lIENDB`PK t91"9'nuvola/32x32/actions/artsmediatypes.pngUT gUAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<9IDATxb?@bA8::(**.аr58٣>} ߵk3@1B===={?1߿`_0¿_~ϟ?Ǐ`#G766 PB@BBBORRah"F lL c/m Ђ706YY@v=ǟ l i  @e, 3ܽ?>m 2 ?~A :ĄdK-?etn S303 @LB`vVF K2p + a dr8jBn'@ b|bss2.:A]/7+4'sÌ1C ΰqE? !.̠,p  i s2\tt3T;?2|(Π$~7 J, /_bHtAݍi'0^*1 q1|۷X=BCzAnW8J| Ta`k@D/j4cgP j 4/ P_VZ033J"; pP].+.c!e_}cן/3|'`_tAOOA;>3ps';l™@>PUaX(. yaPe`pJ03(H@}\Z>VB\(k@,N.;e3~1;;+Wgw203p31\xIoHb?|̠ +N+ r500,,b칋 ݛNfx~JȍO"˗o >`p ǐ pHy8Xx33|`dbΰi~)C]ÿ_+!IENDB`PKkN1bX d (nuvola/32x32/actions/artsmidimanager.pngUT cnAdPQux %ViXS> ','@%a1BE$lI ҈Xb*{ MZqZk(9Tv H$9?g<;3e$K'KH1&O!͝69B*g-|m)Yܸ{Y=I)SSbRs2Sb&"!{ Ia,%/|ETTT_(C- Do15~b6 \1:bd1Fl" < &17/ofn9 cHiCORz+0zqVhql`aȵ4G\sU-FbYKHVtDnX9p$xЎu0MA+=}IV[[\iT!xt؄9Ӡ~Mډi-2z9_Nol:ȉ qKǴ,8w鏰]6͏6l|FqX*W?_MX~ݭ^TlZ‚m|"Dwאy66qb./-YBX1 R}=*NѢ=YkNL^7pQJv>J!Eqt ϱ{vT!R9'ܗ>/.!H8H1EIIFT]Y۸1n]çO5~tZX&gaLL\)*{qE߇mC$=SVۈts=wb$ţMNu$t}wJ8qqd'x||>s NIUob"GG6dyWr(6vhҮ̏g,֭['NNIa |t$U<O>jz:LzW౱]3. %VVeQΰP>/ͅhnn>kHnkrǏweO`H mL:B'+3UM;տA6%Tպ(R^bMTxNKMB"ʑu==KXH¡͛77lcTU[S4seX*H L]%0eXō*9rh\]=ҫNG>u2%7/s6sYo-?MzF0mTVrT>F*ll,0Ŝb1n4 D @$/gs2, -y51Wǻ%/]. r-E׸g Pp "<,4l >Un wI_=tCT?Sy4ARNd,^i BH^jH>EBI^凭xZ1c*w W`G>F8mN!ԯlX쨤ʒj&r9 AYIqqW'jY@d&0?@_TWL{*qnFJU);p&zbn4k9E`Gas_$ɨ r~Q5] .y>| ڣjq^=cSkQT4vZJ%2Ģ[(b$pji=ZyET}0Z'SA+$ڈ;7THcjbV&5_"B,xP4nd㱂..D@-&iAPnMg*ֵ@*ps>FLE15ʲ?!yz:dec7&1f#+-&>3;8;𳲰߉J{wU~wP91!(yH\_Im W{ǟi4 B6B-Oiv(C sk|{;˪L$Z(>͗OqRWɐc;qz"0.o tm.T&:H j`d=X=߾^ט/%XQQ*c#RS-_~A{gъp"Gze%}=ɩgݞt9[@xѼG3rM@u0dnj•򚠠 ;jmcO)\JeU%/-?myê'}S?=o D_< HT5߁=P߂K0ȴJt:CCiݕZPť'179ox#,`B. zsgq Y-[Vkk'}80Vd^Y5OSTEa*.%zǓPSD.C;aJl+ѰoZ3]AC[m~_g:ntPK kN12= nuvola/32x32/actions/attach.pngUT vcnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p $A1z@3Bi:&dF6V?20T, Pf`gxT!4+32 6 Xs4 * kr|vO1Lkl0L 2Frن \)&&'ab T $@$:;W[@owt6㾋32prq0Ts}ʰd20p16jlcۄ?&3'ODKPeD:ÞsVnba(dxaŢ ^wgʆ+0dgȪTеX "􋓉OpFBgP_<VTad(`aݘ4o7./YƿXRl61/DsHʬΞ)ðvGMr.=d`X5[1;h,;5ZxL EF^~3!G@1r%)#"j0Úׯb0taȬd8aoĴ0s _z3ko^vG Q)N~K&l &<.ϧ>wr.?Êu/toa1gH7f8~/ÆI=t(iP gi*(6.^W8S([)fMĂr1Uކ2 >`80s{-CH&Á3Lta ,g8z8.61.4Ka ?"ke$ɬ!O?_?@,127X"(0o 0z018aǤ^~ h1'%-=;%,Aaі ͽ7T+s+ ?1<8$ß `6nr[%Y8fLp~i:[G -kҺ?ގb`c{`V^o$0wͽb$0ekmg VBvV'!`,22NNB206Ӓ3v0|x61^a 78@0g `ff@! ,Z 9D& q6;g ^?epHf00gXãcK60fo7Bf&-#؁i_&` W/e8o_, ` l#$b 4 Lj |BvùY\qxe0fa .me`lFw?~c`e06sb@0@AQS`3s?__ U!y=,;k #߿~3Aۇo?n  ƁЀh@))[ZIENDB`PK kN1Ynuvola/32x32/actions/back.pngUT jcnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@bA`d:43fF1#H7a񧚁)(ny!jABgP Cdd{w`Z@ ï  @T!738@GWfxs4ﴅ$b`g`  uL -gd7߿D]J ~1>(Y΄b8@FFO?;D::uPZb9 ₜA۷9Rӧ1K  `[- v"b!h &*t1p2z5FǟM3&=P,u b!`y,P̶NGβSpa9f,%~30 )Ș͜OY/j Nd=a{z80 3ã \fT z9?R؃$#8Y\yK*\YXO6 .0}ӏ_/ 3 h 0Yؘb7UPW [ s.0?00p:`ٿs_ 7C8a=_*Z%f`޾ s.o@hG`> lo T7?`Pag l9 8106Vګ .252ݯ_K`з, X1D3a`L1EXs&@as;;82|;\`p_H/H@_p ($@{,A@X;֭ .^M3bï!o# Ŀ77 @aq봕+=3 Ŭ BԀ7Ï / lxl^`- ct99>&O8aα ?! L_bЗbf`1Зd`6~F,Q@8 "ş?17˝)2TXr1mypwD7CUy;>2pd:ڂRlL >`wtkg\,-?~|e%  }a6cx pa˞n TF [XYͶSV ˜m?2JTeyn<7$sqS7j.MZ LDTq? wymdq%7"Ĭ@~@1{z·-_:2 $ OTkx@j8n Wn}fp+ATly# lNμ $0efFH)~#Ĉ7$cc:;3W1(zcj!@wLq;4}Cp[G7IENDB`PKkN1~+nuvola/32x32/actions/blend.pngUT bnAdPQux  sb``p  $)tG_G'Y^%%i%E )I A)'Smy8TJa$w R ,020aJm7(mQTF)>k_ ln&`ߏ˾ RްE9[控ayk_Yq<3l&w ` \C^k’_W6Nw`Pt^e:&f0 \u'Ln0_`EHCtfd?XXPo|zĐ;N;r"`.!I nl|Zrw=|ڙ6N 1qq2Isƾ|iBśغ'T"b8mفyvXՅa؄F@Irxu*J_U ٖ@ͳq@ )C't$;X65 KNIQIjf<MNJu  oƠl![: p؛]փqzfNcTQ, G RcC6֌2ݝ\Z}^@rR ?|9=+vmk&8e繇Mk/bD#j}M~SPRn΢@mUz?;@Mj{#ωVNFiVU]q^a6De:G'yP8-˶`wWJM݂YŠJpl#_=9bCZƆ.ӫ:(>ɂ.e 8eU,Gcz;Lj"-aI71GxzulD+EuSKmdGdZPȴ !TLpA& ps-#r5V`e{|5kƑd-QFͰu_?03;9Jva &1z'4JPjy*rPt(_b(xiTCy[Ծ}eoyl6g_Ń |M{I(Dyֵ7;H%}Hڴ#~Ꮘ+qҜR&_ ?,Ų^mWĮ¡3P%l@3sA%H\`wG)ҵƏlVЉSU{jm~R&6iSG__!݀{j\kT>Os~5owTUP¼JӔ-ONZL~k|zEMĭ.Յ׵Z;bH0`Jevi|DȀs:MUmLO7lJ2l`O g=} ;;v?o2Îp&ai ǧ6#Sx4F9m@aA=񝍍|Ycp_ܓb SG]WaY|obw뢕A?ES*ݰj>"@"#2_JnIy z^JQWUJ&vGb2)I۪:"c 8p( sN`f~cOML&‚==Ҕu دQÞV@Bu ?us-%K9;-aR` ccyX!⃜ȟffƳpg52_8΍8jS_84e%e 祉A J/~#~@( 7{D#uLƆ/3[p]?^֚ O"NtqV.vHP9KB\QozmzK f Dmэڟ'4Ӄpg-2 1=}jjh_8*_00. =@( Ap Q;Z(z3%>LM?f߀_ bD&H?؅ bVd5_04=+9CZ/Ԃ C qʹZ5I$E\](Ȗ-HA} 4;S umLix=Np&UA 8JrܿVЪ8Z-8`J i#ޫ9%הv|Ag;={U!1mEXc!E8+$b䟆\)z Aa~m!ΰX8~^lfEF',r8vkuqq`jX3<hO,UMSTOsT9cF20J~ \z.V=8PG6M&x6E}`!+<\5$Jȳ躴n[Jt6]ͦTmb`O*HAe҂ ]s$ن[^_Ć컷 :_1eC' t;Iy7h:4k_MLjRPz}N ֍VȏJgu7-퀡+%%+Aw[vF _ 0Lq<$DTF.,nZ`ȣLJbE7%8`n.zío^tl۰0pmDs?ܞw&^ؿ͸x}\䏯x'G}àP=VlRU7뙊z;&Y`#_\,s"93>#]#1qIm7uN8rp)$ɭkzĪ/L(x" =D{^zq []/l꽦d Nk ;.>1[P: `5yyV[hD0BBF,CrYr|N3qǤfT**Cag/iMso0^~,VTva+Y"`r/F: ?gnUL5_ڽM+@: feRDY1ωY -jE)i5(ǶJEcl]7eL25P$múoSxyGA?4S#3.vv<|Cdz-\?R]f3vtkT}Yic;]"8'Dk14?]sZ9n&#c'*ѿzs{ޅDp+-YL# B)6 Kh\ =ҥ? (ߏPedWn0ǔIJ:-ToS9c=^P)թ08&Hg5*zc#=Bt#{Z<[ViOǨ@J?cOfPKkN1&  (nuvola/32x32/actions/bookmark_folder.pngUT bnAcPQux V}X_^Wk)%Kf[j@~Em= |ִКKIWmНnU55V]mׅdӜ_rs99Rpw] {JrB$39,x1o7.'=81x_A^I\'*ɥssǻsct3%9+GI saFiUrKdn2j4 Ye8nՁүsj앥1OױP0N@vn@CM7lC+MYdۺFb"'ig57w {~iq')X[OPYkfs{Ij)yͮlhbCe+`8;˳bsqe9WR1L,uu,:ٹP|]xjCfpsغuOPqA}A} ڮ¶FK #}]XQ5C ⤻D檒VVv&;lJYX g#S_ 7(e{Bk>ڹ"!ZI̖z+ 7J*g/`<>$VeШvyB9{l]#ӼSfI_#V+}QZxp > h$?qʉe3U&OPكrl ~A댎bcteoIhEZWbTo*L('k.N-I923?A5@ 1X;n_UA@[ĊjDJz/)`\*1I,G5VIXC Nbav/DhMtNDiOF4 }V±p޶l5{ >PG9HQ0S9^N^<:Ddu:h"[rMfoIRDG~z;\WaÓ4ױf@Mk(T<s$@Y8lllJkشpp$p J춙uZo$-%X沃kUG}E Ҍ#SI@O k?zsҠON^krTup@WI'VNϛ|zZ\CyR iyc1ǁ8%W ̳͞6L@#Pp %5a9 Ԇz Ʌ KΪr; hbM/?!4 F֡p_]'[~5.JPΜ{L%7~z[PٕrזjmDD,ײfpBBw* _wW*9W5I\ |J)&7!?Cz#*9NMLh:b5#ŜEn̺FF/ȟx [c ֡!:]꽍^zYRW>%^V8$W ~əO3)_>PoDlE1p2c)53z|ϖO`>zgY[O}e ҁ1ev\E}㼬.:oZ.8h4|n= PK kN1%J )nuvola/32x32/actions/bookmark_toolbar.pngUT bnAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< JIDATxb?@bb`@pq(HsJ7TT g4\%EZ:Z#@giey8>@K=zp%?~<ŵ "yA  @XY.g Ï n10̙peF320ee10F 'O>oʰeJ}_cew0=XJңe?bF'';;5..K}c`@cb`xDs3â7nqaF v@6÷߿gy120| 1 2&rlja! 6hu5pOr@-es90@0t#FW r RYXM02b8uMVV_ʵv_y= F\h(A><(4W]PNr@뗹0]'A1#å/=?a`tXH3H 1pۮ] ߮^e L#aʛ?āi_]@,' ҃a 23hk1W /dxt! 8 j1T`e:@ eD$XD?q3Sgd+ưhrn3'a4 1G/FƋAw+q.C+ }C) ?~ < ) }Np3B}   ~H:9 z"+CHJ>fv[7tVcXn  ; 0xLHJ}jop ׁ̎v(n;W9{ß/~EuQO!$ΠΰNߌ{7W2xxyAQJ᱈(W@iY))w@G! Av8 0~ݖ$p~~v`fqǷ'~˪2|:!*1a+;2fd@0Yp-0Q@,a˟?~&*! o߂_PVDE߾020X*1q}/Ei) [O3s 7`ٰٳwo`aK`gb9O>"Х +\Ȱqv^`p?/'7'0w2%9i֎v ͘_02vp5BT;J1`u Y""^ X%-Ƞ*'~( ( Lp, /)fxa 9E/_2V0Aܿ~. PSc߻`[ , JJ,MPʍ2WV޼em o0 v웧O?pxk1<o?fփ 14]\&2h+8O յ 7i O mBvf%?~vZw!g`o`sA -M: qo1dg3\t˗TݻF)3#5FF#wZݘ!fl\01 /ٷ-%+Ņ 7o?pfdfHHH-S0@f(`%%&X'g10^dx=3g~!LZ'LΡdZZZf͚:͛7Dry֗ߝW;v xՑ#w>~Ɠ[l\^ڵ(;+#F[[Q  H8RXsPqXׯV8,Go3f,9ĐǏoA_|@dwLA9 Xygؘz׀}{@ͷo_{333_ Jz5Z GwNXdd`1ӧq7ajq{4}C.4TIENDB`PKkN1Rf> +nuvola/32x32/actions/bookmarks_list_add.pngUT bnAePQux iTSon  hÍ J>Bxe$AjuB@DT ܀āA@) ZXBd0 `[P0 3&!}8g묵w:#v.[ ]mrI)n">dOTY^[IGޗ;}ŏBI8ʮ/XoN> k]B6(]a͆=; d<`!8bAL 5b4 qQL{6v?*^{]}Rn?'LY7{5uqc_ް~KC{EB^>QrcgW[%3jz]I[qpAڻ鉓TǒAg[u3Ƀ\QR%bĄnҒƑ"e`izq<3c?&-vL`3p,+դ׃M2{b+BBA@Ƃp)naOyZ ڑD(OGB*A1mr3>L轎Au2a?\ix8I݁৒<1ːT"AEEAʎ;!*d{uTrxg~YG)僽rс½b HAfs6i . ߢ,kE<rrR48Tb;huJ:13+oXE6/{ܸm:*qsdkozl"t1rXA~,H ԄLՁgF1ot=fvE }7:]؝{WqܤQ%GM(V0NHLB;wmL|TJn[篌r\w;"JȌXT,8g})pq;p*̿[չcnNn(teم9'H;ѥ|بkgWMY1jY.R™ea_3/;M\j +_ :vv9u`mvJs 24˅&~ {; b=+djzpʵZgɾD39:sB$aG"eN磸K(Bbfzɏ(0b<΍ͽyx[_bL-YObYr9D-Sc#jߎ&y pypXJ7tHR_ӎT*ʢ*1*},NbU"^$n, o)EA2PK.O_ XpeL*D^Η zN7&`RlBw&)||D15[[yY ēhC:'I*?@̖l$X$4[g8w>Flpx,{dV>b=95O\$:?̖MUBRI_S5[2=[R?Ngr4M1\G 6 ېe>Blb(rW|ů WӸE(rȩo#%D`;I=vv?rDP˴~j-y®}Jyan ݰt˟_~`X'ͣ J`FhuC>(f$J/tb" .;'RЌImM0>M?{?c b-c3#D\SWɍ+޳%9Ԡ[ ñ(D.{$2OBodU6 CKqd /UjȟWYpH6d ?O(vyc(hmL,1y\,;Ur$zvHg+I*>kgpDHZ0UxK~G@Skr]mf4=7s0p!ZRWΡ'zⲱ XӃAFZBg/.bS+Ж;r]fԹ suA-:)p I _S疸 8#[=s˭OF?dŅ>0}+rw|]y_Ft` /[>o8Y!0%;;hx-5n[%nCvAX(CN sP %aOSKok{ض[PK kN1)""nuvola/32x32/actions/bottom.pngUT hcnAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,FY)3?oE P% $08Y^30fL @,8 AJp;gEi302jB b oƄp Tˆ_ih-?~-Tb?o?2q0<շ ,b$*ra$Xa;p"#;K-p;ЙJ3"~8G i(r+bi0ҲҝԵfjTȉ )3#0va8{ 09 ar KY>Eh @,Xa!1eLr@ /I@`M A|g; '+&pE;; PP=o& /00A\r3ll , b9## =0:@60NC0}HL`tGn424@ @=f0&$cK׷?`,`feZ t#8 3+$t@;07} 40^s.a5 PO^J6Ï_`ğ_DY'R6`d`e$@糒t\dXAFbeش!@`b\G@EANxOO1l@K8?{If'I_`:a #[ @`aGϴ}+z?'`q=0Cre?2c` )naß ??0(1030Tav-ANd+afܸ.1:Ú W_30} h \b$l@a Xv4n/9&R R `5 e*}l%@1aF+3\!I/;bfF0i 4+CYY2ŋ}%TdP\v  PZz}LU?JF]!^Id(B"1,`> C0C{9ۗ>`do 7H˚u]g<5_P%YAa, NZ v < Wa3/<`RƠZ@LhiST}kQ'tDu_&pH俀>Wggwad8w=CY!P"Ѕa$@Efce)i;<̐oA g:7# 8?C 7J!#s/_0p17+3 0!Uv0WݸrRNO1H21XeհL xX*؀!ʐ[pG8R&|*BP;H73i;/KKT9~fJ *lL CK % .}g`H*6׿(V#rQi+k&Oraee/5 E32sMgo , l+!?z"#0 Bdb.&,|#Çؙ0}!%uc?KTfZ !j'Tk`+uI`*0antX%n-E"/%o/Pe}@<~mEČG'h,zZm@; C zRA2Ȯ  tK jF ƁЀ DbIENDB`PK mN14&nuvola/32x32/actions/button_accept.pngUT fnAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?@bb`@pi܍a* )` &@ӳO'˹"3@WϵNqD:smȀp̈8 W[\c@F0?_RBP;& @4w?wjiD:012L Xhf߿5p焚h3Ek2̽za+~@3'&im%.0uu}d?f% #`ć'02/a+00efgÞ/fn}6zPYѢ `DzO~21s6P-{behl+l\n+mϿ?N{ΰx7~dcfZ X/zɰ{W f . *la3N_3hp9[ %÷L åOO}l,L2 x`7+?ӹ.;nOE=afϿ3Xs`x!cw7sH)?&##Úw ޼w0% ~O_ ?bXs)}Y0}B;F@D?k毬o\pm`0d÷_>W~0a w~dƔtvA  jS`0@@m3K 36H}pH|aߵ 7v}aĘw'f`#T@L13#=7n\p=o?3|o0a WrayV,WQR{" ـ봏׹]{7@G|e%ñۯnlf`|^0 !3g>c ~5Å'on``~ltP b?Y|w W~dU&4&r`BJ JBf, Jƭ ϸ/޻ h1+|~kjRAČM3_o{$Z3@P @7Ѐ; At>zIENDB`PK kN1 Q &nuvola/32x32/actions/button_cancel.pngUT bnAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< @IDATxb?@bb`@,0F`&*2|DX߿JJF zz JJ VA@Y@GpB jL,t}Ώ;ˊ  ޾ecae]A|@ϵO5fZZŅPQ&$$iٿ?`z^@8:2000ׯ!z}c``zg`<tb VV>V1Zhqof6?7`bZ9r  88^t,9۷+ -ƶ? ,G  çwu1<33P?{f&/D-LZvv?30?^}Ϸo,쏒 lǏgl$'q#ï͛!TxҒH%C51A޼W9ׯ?06G@HEHrr.pQSs&FF`YY︸>:4A09 ϜaxLS8po,O9AE?|L]t?g!' 0GAr rh|Ϲs b8tI`z ;a x"D03'`x޽lJ۷3|el 0~ܼ N3=ؑ@@ df~">|鏨®] P @ 01wۉ ofsҟ?s|E7@%@ȪNdtDж3W`CBC?;LZڂP=>@@/߷ 0k hH}A3MOdIbb>z|ĺgV(YTȧO~^O|^oR@5H7!X9)$**0q;W{oH[[>&o' ~$[`Ή9R@qfUUGaw߿Go_X1 N^`e8?F21=HLL7oz, !@`|R @4ׯ#[,t'I}ݻ'~lY01=:"̥KCp`q l?fgSԸ @(ِi'[wUDƆ0zP#mZX,FG3gv<Z GX,^LƗ Р^IIo\6r-| 5("2I@RӫWg(L_(^b1@ x \W IENDB`PK mN14"nuvola/32x32/actions/button_ok.pngUT fnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?@bb`@pi܍a* )` &@ӳO'˹"3@WϵNqD:smȀp̈8 W[\c@F0?_RBP;& @4w?wjiD:012L Xhf߿5p焚h3Ek2̽za+~@3'&im%.0uu}d?f% #`ć'02/a+00efgÞ/fn}6zPYѢ `DzO~21s6P-{behl+l\n+mϿ?N{ΰx7~dcfZ X/zɰ{W f . *la3N_3hp9[ %÷L åOO}l,L2 x`7+?ӹ.;nOE=afϿ3Xs`x!cw7sH)?&##Úw ޼w0% ~O_ ?bXs)}Y0}B;F@D?k毬o\pm`0d÷_>W~0a w~dƔtvA  jS`0@@m3K 36H}pH|aߵ 7v}aĘw'f`#T@L13#=7n\p=o?3|o0a WrayV,WQR{" ـ봏׹]{7@G|e%ñۯnlf`|^0 !3g>c ~5Å'on``~ltP b?Y|w W~dU&4&r`BJ JBf, Jƭ ϸ/޻ h1+|~kjRAČM3_o{$Z3@P @7Ѐ; At>zIENDB`PK mN14$nuvola/32x32/actions/camera_test.pngUT fnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?@bb`@pi܍a* )` &@ӳO'˹"3@WϵNqD:smȀp̈8 W[\c@F0?_RBP;& @4w?wjiD:012L Xhf߿5p焚h3Ek2̽za+~@3'&im%.0uu}d?f% #`ć'02/a+00efgÞ/fn}6zPYѢ `DzO~21s6P-{behl+l\n+mϿ?N{ΰx7~dcfZ X/zɰ{W f . *la3N_3hp9[ %÷L åOO}l,L2 x`7+?ӹ.;nOE=afϿ3Xs`x!cw7sH)?&##Úw ޼w0% ~O_ ?bXs)}Y0}B;F@D?k毬o\pm`0d÷_>W~0a w~dƔtvA  jS`0@@m3K 36H}pH|aߵ 7v}aĘw'f`#T@L13#=7n\p=o?3|o0a WrayV,WQR{" ـ봏׹]{7@G|e%ñۯnlf`|^0 !3g>c ~5Å'on``~ltP b?Y|w W~dU&4&r`BJ JBf, Jƭ ϸ/޻ h1+|~kjRAČM3_o{$Z3@P @7Ѐ; At>zIENDB`PK kN1 Q nuvola/32x32/actions/cancel.pngUT bnAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< @IDATxb?@bb`@,0F`&*2|DX߿JJF zz JJ VA@Y@GpB jL,t}Ώ;ˊ  ޾ecae]A|@ϵO5fZZŅPQ&$$iٿ?`z^@8:2000ׯ!z}c``zg`<tb VV>V1Zhqof6?7`bZ9r  88^t,9۷+ -ƶ? ,G  çwu1<33P?{f&/D-LZvv?30?^}Ϸo,쏒 lǏgl$'q#ï͛!TxҒH%C51A޼W9ׯ?06G@HEHrr.pQSs&FF`YY︸>:4A09 ϜaxLS8po,O9AE?|L]t?g!' 0GAr rh|Ϲs b8tI`z ;a x"D03'`x޽lJ۷3|el 0~ܼ N3=ؑ@@ df~">|鏨®] P @ 01wۉ ofsҟ?s|E7@%@ȪNdtDж3W`CBC?;LZڂP=>@@/߷ 0k hH}A3MOdIbb>z|ĺgV(YTȧO~^O|^oR@5H7!X9)$**0q;W{oH[[>&o' ~$[`Ή9R@qfUUGaw߿Go_X1 N^`e8?F21=HLL7oz, !@`|R @4ׯ#[,t'I}ݻ'~lY01=:"̥KCp`q l?fgSԸ @(ِi'[wUDƆ0zP#mZX,FG3gv<Z GX,^LƗ Р^IIo\6r-| 5("2I@RӫWg(L_(^b1@ x \W IENDB`PK e:1x  nuvola/32x32/actions/cd.pngUT VAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,0###\j%B`H~lV\ll3^Ft'N0<0 @, uuхʜ'nll*. "~>yYƵ׶/>/y.ff>C"< $F1 a. F Х?bTk[ۨ-}}6@- }d.++ï°hwnZ Tx_ \@sC paPU*4hϿޜ\lsaz/8''0Ȁj?~0eEknegg=y29H8×/zUT2>f-wX h@ߠP P`w3o@p2TW0dXg;(`4G@d(8+sp,e71fxC KA4?@G P(:;/00$$1$&H'/ 8ͽ|Bʆd4#aS,F]_Rewvwt-Gp[󏿱2×~?awH10X8h3iDV @`dfb, b`ԟoX@01 3$7aë7D.`ba/(`;ׯFʪVzbA?32@,z|~ ޾0#/ߠ*IFAB&f/@_C#qVNnFT434x@%'9AZOW3 $@;G~ N~#$d䔴UYY %!VUff8 V ~u ֟~S# 0?`` t8ү, F@)9IfvYcчA<9XD߿Xj #~=n fV|ƐOnI?0a LpOPClA'(&  ؘ@,E}a;+ڻwK o%=gXP(2„Qmf RR\L&BBJR =F&1 E2w ?~= csUp>J߾DVSq`u" ,31;ld4a/ːxo;Ν{b(Gp  H5 K20 @Gd>`& `{p=g.2L ʁ/_}_o}NvH-UAic%#AӇn1z=PL Pӏmo'$A  ? ӯΝu˫ a0 ӿ\}ʫ ey؀Om+hQ/йw) VXk \\ARd~5-V?aX3 S}q ;"p(ϓ'"'L\vb`'Xo9(~aѤS {vMXztuTkpϟ<{(߬lmu !! F&R,5#s+U O2<1mw;O9 P+8N%QBv2 <| ,@Kx _X{T p{;0ܿÇ'~qgP',0 @( ##03*ڤIKik(+K1+1pC?w>~pon_]zg 8fJ˛*p¿.ս @a@h{c bIENDB`PK kN1y_=WW#nuvola/32x32/actions/color_fill.pngUT bnAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,@.SS= ܿ~1R mǏ #8CҿfPQQaPgH/ٟ>}b C߿N_~?\ S%b!UI|rdd$Obb"Çdlٲ! i5ɓ 7o02}mPXs~}WKee%Khh(Ǐ2PXX ''T -ffftTBss3-666NNN\# 0(>>>Pzi0@t0j-ߢYUUŠ 6d!;;;e044;#<@)™AZ Y2 2Ν; w0A2pss3s<~x06Cџ#P/9@%گ?ceeja,pA5k003C@i Mt2P'0|?tL@1ABB7_Zn`(.. j ߃ZBB\\pÇ`y:A (@ vAAAv¯_V{10Osli+ 0\tuuA @vË/e^| V r$(@Q߁: T򗁎@,@_]g2\u'G> +- |򩆆w L`@8|0; Ĝ `o A (1,, 4TރzիW@^߄ Ĝ#/@.7?z`;8Aυ$%%BHH(ٟ={ @%OA9Xn}/' wb/^d0Bfԃ0H/(qӻw︞>}jtzgbNa`O Y7n7oTQi]ԯ_yA!bBP( /P۷o@IϟD#*3z낞ޱwrtPÖ 2 X c@q,20830(?w^?sOj( H?7nHs8BP:+A,:RɓTT`byp(U.~Lkl ޛ9 IATCR`ѳXTP8,G)XWII x% 6l 9 ~@k"5Ä{ ~˚o@ZX3OL`rp6%.|3g0lܸ/_ڀH @|DǛ>? Ϡ,DCӏL@KݰB9ѣ =S +Q{0:/0Gi' k9%0|?߿o%` N6PĆa_/]7!` 1 ( \g ,C>АG AE/DvEՑ#G>Yb:Ķa@cnak %>"; -#49Tb堊J> Y 5[p%SR,OPpy$>3®[%QDC@ e(FYeu30f``b%lF^O Xv_f0,|a-0b@,$|'ze (@{}p3Z,( v , 9taVh9acZؗ) a8D5r; @,D{5^ |؀ +09X |Lcag8i"z k4@ay: 3-gfa0a0ZpcÂ5Nx 9 o=gv? \ `-,d>gac8q d L-! /Á7] WeG C( %@ 3ӿ~h.EPe')to{>?pYN d6)A蟿-d <_0|jfR gV``dΰyò>猏(h@ʜn}2+=2Xw#@G-~@a PC_Wfc&Fv"r%W0Tnib>Ç|qf/Ч ƐC} K ǰWO1\_\뀖7+Wjq3etc/Ei7?Y`Xl6m3n# 0`jfgPkoN[a4F R ^]??m,b1@ x mSIENDB`PKnkN1~& !nuvola/32x32/actions/colorize.pngUT bnAcPQux V{\~}|ERSH5}JLVٲWj-on,S MښKf Z9J2D3A}s~ss~;("l݂ HdpΞV<.4tXg>DIer%D#^bd"'?`A-q&e L#ӛvP½ 3.0Ş4LHM >=džJᯣ+X*(jI"}0_r&376SNK\;lѭwK+Ɂ,6K}>! >}vx])wz:?L`ϧй!C%ۋZY7CݴU{$/=4 -N7 } G5S]w"FΛKX_K,ާ]L!]kD(Ǡ++ҪE vxvOQp"#r{N1U` 9NCy _QƮmGFM$p'N1.h(ʠaɈqC, 3"'@_R@zZvBdUի}|bgJ!c[<(ڿ_ǟTBǪ2TC_ڊ>Ç[Or]_DՍ]<a& MYrVDA=ژzR{&}}?N:9e E(%+eTj%> E8!AIǾMR4ӶA)©z,Iy} +u. H|Ć!C`rb,G~*jnnv&hf 5`Q!w~HSmswuZ*x[ -W C!HK0*Ih9VېI@ ѳPA:ޤt marDzvT6S8!MթP!bmJY#Վȃԡ(%E_?6vٍAcPl$/v!la19qC.\.MBv^S,T_}^?:+}\([:(K[zy! n薷ptޞU PD/p ġ'e 0vrpy HU# #x`Mi*fsWeBtlQgo8Ǻ$4jTyJKo4\v+Z&,.^sWHh e@Ryy  rP%#mC729[i\@)_ RmZQh.=k ) ^xv|\O5%#% a%j6zE_y"O۾N [ztGD+~ՈJm&L粑P,y2YB2A\d;/ {KB~K"M$ %D ;a q&V9u\y-g5L[**ij9g veMaZ)n$B }s0i3DBce˿MnԴVXgh U%hʵT5*Rr-!.Ͽ@̂يYJS0c=DߠLuK`%Zt\+8`=T#.[g)'<5%Jm͎iUJJRᠧFlC3H(7epךEf)!xC<σ AwVZ!d-"QZM=O0xp]]4x5Zp: P. /:,VhKh`@?RwΜa4X_՚@s6HMt_ \um0rSGt{EFȚ9jSA;hɨ@Zp¡{8FÌ;RQJym>[4n/NZ~Oay 罞gz_vۥ/G <3z.N/PTe,2T?Kӏ`?WNMGT\=QWC,Θ / VSla6l:=n,eQ7h]-cZsJ6dsƖrΆ'Y*jҸ+1s9ϵ0Xsinz% =LǸU`0>VjmUwս&/&J/\2eO3ňGFc>`RAOՒ"K4-ݩEs4~'8.|nh |W1ǝ:I[/<.1`^̰Z2ȵKuz2=z?W[x;|KnwGsv6MDheHcէmbw۰Ōkq 7er0}j{ ol/0_9c6O avgx8C|ܡfL%lG DAJ}7# Р<)T`m$|`޵_ amqx]2o1 76Ο˞E5 rC_Zhg*-;otxSߞbԤjzC˚ Ӕyv([ l rcPK t91̺!nuvola/32x32/actions/compfile.pngUT gUAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<#IDATxb?@btssc`dddؽ{7Ki?I̙3>k׮ 1bd`߿H A߿ׯ_`O0XBŋ`70Iq#01033B yt9Vȱ"L T[9 X_9\`a0.Ic@ X!)YDPkr1@ ~3k2y20!0m9rH@0hoF}N ,_~À#F UkD}[zF@, >pUIa`Sg ȀG w=``db$9q@0p```ee`ec#6 L B@'b F42ѣ X+[ , |g8wXXL@߿Y}a~Г.0\xs/ |\,W t@,L Yad{)O`_z;6 J" Zp]E}`S__~UF @0Vb3` ÷0_7/ aPp=~2Xwc5eo3'_/04;;0q2qp2HIr2\Ɏa~`bb`e9 & X- G!: 1AGJT RC 6:?`bL>}DQ[[Ă^SoQ!ԺZpp )"gZS acE@bA0rP;])Bv_P"$spp0|c; pg„ yyyv*plrO>[`|BUJqKx>Ё {`ߗ5bIENDB`PK mkN1Yss"nuvola/32x32/actions/configure.pngUT bnAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,0Ŀnţ6=10221#o۶ LQg PwoߊϿy󚅩)L ll,`,""9T>} (Ϟf000''ʯ_dJjk003b9($~ _~{AAaPd0 -c3s]]C`|kVP(1};ށ2_AzĄpw d8(ALLLM {vv/_30A߿p L` -4@H'{-8#OA}I|J_EX;}V ,1TTc &"O} n`z1L/@0P @CmYkpi ?tT89&Llk 9`m[x30667w[Bhjj`4Y #i_A a^-@ZPDDu@sлpl'޽{{ PԂB8нc1@@B+XIENDB`PK XkN1:pp)nuvola/32x32/actions/connect_creating.pngUT xbnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; XɌ 4'C%gQy022 0/_gff9/-;; +Vˮ\9!@,"@w",..0--[TTA\\AWW˗/"7n_jM±c/~@aF0LX1 eg8ܟ?1`l %dh!N&o Ow [`PoL* OB8٘<`n ))vNNv˗2$$cdd2&7 ԩ D"_AE0AYO;`bvT'\ H-cax   zz nnJ[aO (Xp#D' O#PG`M >|b`b;! .. \\\, @!B?z;;(ƌ3|fY$ ߾`|OA %%ϯOP_ rQWפCL; 9}~w_?1o`t o`Ka̾`cc5 N_=U%߷ X~0dn ??QHE>|xp+<C k`.`Hx3p|cʔa3[ӿ@ ZD ~1}VB@|MfPg`H.Ơ xW@Y@@ 9 B{_|SC6`\ X, 1ז <<|tw`h@T(08q :bB:@ij_Bw@ UB/qk .`^g`2d|8hK= Q~6P"Fρv(1\t傔+WNn7@  i-%AOniiΟes(}ASR ߼N ,? 7nL5?,E@uaq/|f z L|z !,̠pc`\FV)_ mf:x>l ,FH//oT3E`.YX™#󗙙33I&&@+l1۷f9Yð Of@h`b~j+XYـAy6çO`@Mg@| 56q{F4rpЀ; 40{nXѕ7IENDB`PKVkN1p_u { ,nuvola/32x32/actions/connect_established.pngUT tbnAfPQux ViXS!f ,7P%.,ZV (J[1$ TTTnP  R ,Ϝ9ߙB01es# 3ИS>4!m3 vΤt^2KӶK2v9aK`/bt(TLD@L Ygq HKnmB' K]P[,k^8Hs{J`6YN.+qlDUW ^]t,#ۿWZSrWwֶhװiEv^A[6Ċkѣ?sFKFw{`)+W8Pi"NMpŋ'?[[[EPss핳3ju mCEt[u6#tPHh5}Ra"p_a4"o7A<ޣpYëqK3 #mOD P$)i/:,?l %Ugs/qWbL0 - 9⹂~ї/ס̴Ǩ }s5̀~CiLWPiiti]>=ׇtoFkW212+z?===˰bmđD?Hoȇ'^یg`Py{su )Xˠ'$ r.~J6iSľ&)9qldZ!{o+*stqi'(vKT0szhNN>&HLKCLAjZ![H$Y8V;L+MҝJ6[^|λ)$ChCd^ fTXB̶TS-PtB'KKOoCkSQp6b A|)v2.0f;qaU.о rl=2zO!H r;&Qj#T,EQGC;mkB`Q\1&*t')s934NZwzQ .Mc4SBeUs3 G߂*8swLBIٔQiAieڈ3&`pWv\]B+hx}t/e9JP۫`?C=4e45ųi&_DWvymB~*~T}ߌTY寰dp3u^ Ҥ6xuQR$ʖR<6ʙaDVWBzcp5eG!򃂺?0 MDQN#kSRF53ŹQRxyjxkgʕ!su*G:WXH }&^L2,/l_dM4@C<.ΪvvE014iFC|rxSOy}7k.O{ذۙʢ*,W2_j,z9|Yr׋y1r4;jW% )ONԼRxWz0ѴaOf!} J0xx!\G98Kxi,V5bzM3m2,}e4}VQ3b(G'pR#Ta}[gkI#qsV8rcs#l%",Z\[4M_V~5rvW{'|ym&{ k{r ]7;RpgSPN5|Dl-DrfeIy E}J䤶| jJEJ7,}-&1*up2YP蚃/g+p{ S}!^ $Uf,9{>; e%: aa{W*OL+A] cpK,"ǿF:7qhI^{ [裷= 㟹 GG/vBK8pluTRy4b˗[[[5J "r4{7WX7sUw4AV+GW5ڔ@YŪWIzZ_hMMMe$}:wNm֮}zq㉏P5(^,f0 F'8g!G. Dq7r6r:h"C߹ڗKnЌv_[:W}YJ#ûegFb3&;ѐ Kǩ9Q gTdp.8 $;NlU/@ۭ^I͡'xl7w\hr;~uz-]?PYZ=g T^:1UE; >˻ntwqw;,eْ,{ZV֌%X%o  o-gjvzLJb{'MI|nBv~(؟Sgq*(x<(a@ V=.fU@*^ Fd连GfHaft ֩JCBB@[\nbx? |~^|"].oy"#PA fq]\@ЭG/~PV J ʒe{{{tLL;Źti{rOrQز(]g냇R0LDap)4*j-Cd(UGIiʡ 3lm]ôbV (n.JiUYNHH?NgK2M__]g "}(m-S#8{ S0, {FxYiʿ':_1I5nOQi'q*ԥ4(Nj餫(%kxCIWHqkR*;,LEtFŘOg7\:k4U  f7˽X2mSˉiMh+LoDa^ mħ3ר]\aZ7J]g0#y=]UVY{+>O0'nZTV' g=!bJkEl5 R.oVTȫy`'FUA 9ۓោPDZ&yt ɴtwʕí5yEqQ ]4bq`4!g~ȔwMy+ ƹ݌!d,_Q]aY}V4@}q ZoW̞ lia&:jϪsH.yn6uX-zexfkuZQ]CtrOu$٘,8y|xXJ?(1 09$Mtp{'cUʌB?NBTM\*(ӧF.D8@#z߷R+:/ZD$*;.֎ 6o"Oj.8,]:B[ucdhFnm/skkHEs?V&/:{>|1ۙh}dlV+i(؋-Gbv1nH?.x0 wj "E\[;~"!{5L^Ms. Yay;rϘXQ @ ,:|-1%Xn͉+їY]ؒ<ν1G,\TZHEp?oPFI3+=ù^Vۯ~ː+ zpCc[Y$v1! )-OթC}Ǻ;vtq1%HeT8?Qs;f'>wdFxZϪ3|X6t"^wӃrA~Go2s1~ `GZ3l?} O)>9`]tW(ָ;eȳ2_ w_}edgefx8=|a/0Q>🙅JAIFp(ȳ[#*/N@ @231,EUƠ-idڨXW R@03v@/O?@d;R'a?`~ߵW HAEU euc_dQ4 57O2|g^}d>@U70W`dC7e00(k6P gQ`P?3k0ܿ>YSO1 ر߼dp9 7?3\|V 4.bcx+3Û|c`=r=9"O_Dd ext/7c`Tȉ 30k.Lgѡ w^ b~#$BZoV5 0)q2<f'P~,o`@4AT\ ߾``c`e`fI| Yo1^yz3ÞBO@13\{~ 'ťWT \cpW* d"y9Y~X^>`5)A 0ƕC R l _\c8}Õ;믫Pw@ W_ $&qEWo < ~C'ǠZNX=RP,`Ȉ1p 3|[ 2 Mbx&۽= ( %we^&ԔAUFv1p#@%܇Y0a178zXع884L:3p|}pkY / EIIP/;G j"+7_`vZ *zA! *#?ưI_72eؿYWʁU#F"\~֫k@կH#0ɚw,wJtDy1hIY' ƁZ+ hIENDB`PK kkN19nuvola/32x32/actions/cut.pngUT bnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxb?@bb`@, ??f`gcc`ዀ ''ÿ 7TTT^|ÇQϰ?s @P7@mlli2222.:h: LqQ4 j_~uHHH6w\M]]]}{C b5@0V@@Ⲳ2!cصkm,,,EDQ"ׯ_2 Áf8|0ãG7Lr#"d Jt@ N>(Pa@b5 w410ɺ1<}ϟ ?f|v`?G=.@'B`Aғ$>-0^xǏW}H(4f X=̠ J@ T;VQQ`޽{pɋ@zc! 4E[]BBU@~@au#4G- q9@Aޞr_|ApTktȱS@f @10q~4F+?88nll`rR hY $4cffIx6={C`M @p,Ǐ>񎒒*~;UwYY9XYD1(|2 @Y>h˃baڵN8~d@̟>~TgE 002Dz K?Dt>(*'iNx A @_3[p{6`50q2ܹs0܀y  󦄄ڷw۽0cnЙ%ϯx?NN x29yy`'DsssPք:߿g>ùsN߹sg0V}R@`Ze)mx*)Y ?~8:zeMAaAYOT~վ:" * ?&ȽԾhnb+ c66o O;+#vBP) "@ҁp %%MMCbb~}<LϿܺuׯO|0/.,(*h)V͛yyu%$Ǐ Ν+!ƍSlLLXro`u/>{`#  N|ŋZ eNNJwbeeӵk 99_/+ó͛, dcxyÑO|Z\n>|'DdHJ }u%a3,-{MGg=E?)"xOb !oN9ppD -rׯkf_͛v3OP wm?3.Āi Aqddap{??ׯo89 /Jw{::2+z``&uׯ34.{"+@6#04Bl(ZD@(I 0|ab Ll^6w{z{3|6":,,yxz>agRP((t@nAĂV?)g}&C٦M網77o':|ⴏ߿. Pڙ`c TAeoߴ- A.07fe$,^lT?V4*[@!(v?`AP1cz^(oц_gaVd ,v_X0}'K`& f&D|\\WݿOEń99ZlVFݢ u 6XZB `6 w X؁!e L0TDEs@6D` p6405BP铋ok}z)n?b${q{4ctHIENDB`PKikN1 _#"nuvola/32x32/actions/decrypted.pngUT bnAcPQux U{T OaVj mZ@G)LUDASRQ3SL#g{X=l|k6캺i"R9;V93tR=ƦdfN :@lٰ +ISO$$2NuBx(+ ς TLU4ZX Ϗf4[5J{aޠ!瑘='Hd8(CSrJ8˫]ݮjiye\p"=9.ir$0Cեcc^g7+/εg&WJNM&I|~p໧'G: m^&P5 \oU]; H1k[jb(-c~)'&?ǯUGG}Y'ɸŅe#pPbЙ.݆1O97kPl~Y_qOD5K.x̙[?w|qۃi5`Ȗ-_W,_:3jOBtzO˵ꉉtqKw 'pFcs@fQԾc-|^raq.|#ն]~`CȞV!&ZTcbcCY 7;(z5L`q% Xc=RF=Ua' 5g~zbWğ4X+J$$b:O"Vè'z9u=ѣoᩩ.*mchnD*ԿVDti,ٓ[xZFf!e:?Mբ2PAE8$٬Β=]snuO3}ی|BDqqu7=p,|+57S&E]tnV(\j2)i/e\ń7= ybb܈yu+G 3T1b-%`"X/yEF[KqUb˥Bż箫&> Yưx5*Fz lֈ2C N$ iP$IMSIwz/g\py&YȕvVbr-Ì+" <̓nJGR+^^W~/K6}D΀{\uIRG {ejSH%:8HChlͮOUs*2rG<Ȟ21@Ho&.COټ199Ja5%*Qk{- < :u8z(U*2Aڰe$,DSޢ.J 1GBeirkdE ê-wOBq/vUR?+_σ~\G_|a.umԅO~TV c5EJq 41|(EyRUT]~H.D3_ւ巄0fZHFaGJZ `"g 7hMBW>q\N/w.W{S?)B2 so|˽.P ίj <,"vnPK kN12Ysnuvola/32x32/actions/down.pngUT dcnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb?@bb`@p 2d.u V2d#3Y101&)&  󏃢 ag%3!`Et 3Cۼ O=``>@h"3 2:*-@T Q, Ka8vfLQ s#@| p30-/o fa`& ?gBRtM&Xfx0h2H0ǭ   1/3b`t8=`x @D;?`_k~1|? z<@?<J ~Z ̍ 1_`,Bw/  y;ï KAq@q ?`O f_pT,s M L  {+ @ǀ Z_35tqo 01Buf S*lY223@䀿@>7CU.Cf:0 @p2t/0{5d+>#, g,f`%ߐgE-;jE(h`xæ}ыl%@eÿ~o;Tw?0w_F@7$*@W`H4}J_bHug0VesoxX"[ @Ly֭'g:A??0maM i;wo|ui.!A.y[18)KЎV+{W,z!ސB@K؁9Pˁ߿!W`g g;:g_<([@L8s{J1\AT!ۚA ߾d`FS5r no {O3|k!0a p{,_>û/%XʜE%@Ǐ` Yg}!V.).\xuU 8"ÞuK5S2 S`u`v -A )   7cXI: M/!~+o&hː"OC@br}eaϹ & `_g@1Q_``c.,>|#A!n;!_ pd7I0 Qn>37eO+]Kx"2bcZ_ᴚC}뭙"]dDYQ_AL䍏 ɵG޼1 r u1;o?e5͔!CیR\03=!ë_g㽄?Q=bDiêXB~j+# VzlݯVY-С* Z ~ؑϿA>H ƁЀh@AEěIENDB`PK hkN1 _ssnuvola/32x32/actions/edit.pngUT bnAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,FDuA ~1iP"F&f/|~ sO܂b-ٞb ~309?p7ʾ  P &n. TJq,<@G/a8}AK 7bz*/`dѿY/@L dX^AN9f37zfof`p@B[ dDGXX^Ơ$8[, bzLE) a@a030|sõǯ㠏r͇2B o)ư3OR^ 0/''T?@<}߀9H`+Ý ?@,>$[a>ny@i)PrO Y al 9Y'Bb!r<>q@ d18r@v DbrB?2 "'Z X|b!h"KX=.z6 B>[doP|E^"‚*7bf1| H_4=G͊R"d (AHA΀ot? 0=a Pd?Lc@ tĂ{?409,;:~'/#.'2|Pt>fGV Ͽ`Gv$, t,虁f` ˆ6F0$V.`5X0ޓ!˄0>e8u>C`a[Y(#5Є'zfl`8C $"'6Aг =g+CiN$P Q fMadbbp4WcZj2X38[kcF## Cl[2pr2|ȥ2 E{sO_ 1c/ 5Xؙ e<0A'0n1!R;C?`4(2(2|k%+qĄ?~p;]%Q!?*#EȵrT J%묀,t/_B ; ƬbSd5TQA0.3~z`8нc1@<(ĂIENDB`PK kN1墼!nuvola/32x32/actions/edit_add.pngUT `cnAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,0c,#D3Z0|Z #Hi*;DFA4]w\;B?fTM15*L("u Փӷ33\B!@0EfߪÅ/'!> LUj8xw |3J( j0C ?G02JC@?O30!12AKAC!-eo߿)101?F!3" Vo1B,u %n f`eee`db>3;31pq CK a ?Y~ vxFo@$1/4{X[@*k/ P.0!fddc0-0`} !+ 4`h0c3X@7?S`b ;W;0. d2.6Z2"?HA[Vhps2loX/0+C .^>uO`G?8h;I.NYŒ;ippv&vt,08_}0¦ FF`SPchvc (@r'j|n}pip(X|,\NU t___|0| X1302C30K[fff&Dar  Ks^ qdp3f蹑ZX&D@ȕX9LA 'dd R@8#C60ZA cE : y1 IF|bA7 ~b R&2A0 db fD!PQ,-2@88GO >ã7O $'T3-9  显= vNQeeaP 7yK",CJ_~|e0-`_FFV` 12_10.&j"dd?*?62;$ïSų8)Y,0 \D-o L/+pJxb< ħ!){u@,+v`u(q`m 7;P3 ڈˀMjBj [2 VSAURMm:+h F9nñ ե ρ}WG[30 G72|5;-bTAW,x\dd bx?[L @{# Ngw |fLLLk'30N9? jwB@; EKbP6IENDB`PKkN1픞$nuvola/32x32/actions/edit_remove.pngUT \cnAfPQux  sb``p  $)tG_G'Y^%%i%E )I A)'Sm-=]C*n%SCRD;v lwM1p,`,gp`x@'3GQmy9oYH^@ISgMwjlj`ԄLl?ݰH OO?q}xMW~Odlf#SMm:]8:G= @ Z&/fsV|yyMN"st *=yv>z{-xf|{mTRXՔ & 0tX0?'.L x* (T1Kh#KbTߘ/yAJTcgI'+ъʗH7K^:yF߮UKo\T­ z: 3ssw*4`,aGsfn LN37v?'>>~f";^S^3g(\hB)02gseTFWw؛MyJ9 rvMN:44ߛBX61;2#_gFlOW'/Y%HYa7v>ԿȾ>pg?ƭ oY95tfλԲ(BK?@|֥+) PK \N1(11!nuvola/32x32/actions/editcopy.pngUT `nAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@ F112)gCYF&Ffo_?xY%@0`_½Z '^G00Qar?@`R̢lfˠ)D`/!@Ok3(() 0!2%0C?/@1102"I/-HQ]bA zFF,j VCIĂb"=eea&>+1B tG8?o4JkeQ EPN | e?Doן%3 9$?jyՃXF?ѳ#T/@`kc!Z dc- P$ !!3Z,JBX@8R""~k>,YrYTjE<|d6<`G/  #fcD^E_ニU&D,>G@|Ͽ Q`i?sb! @v_(z:@/!Uvkc %?ԼQrG~HA XP>aA/raD &fJ 2XAh)x0 v " $,"VfQt !#z_ o&ي{52L&bLJK?HI1|H*?&_fh1/ _<@ )B <||*FDUf4~k>iMfVxOG󊉙ǯT @;k-x! HIENDB`PK t91|f99 nuvola/32x32/actions/editcut.pngUT gUAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b򲲲JJJ\pهQuuu}OOS'>DU4y_|>9(̆O@Q uvv-~544l ׯ_-gΜ_^^(OH/@1Qj|xxx0>}#GJ$ +++gѷnzvȑ & -HǏ~ .lJ%  `_0o9`1P1f %qokk _~ewށ7n\Q@sss9 9̟? vfcaxÉ'^\\@@@ADDD@AAX:~sMbJ~788~pxyy Y իW䌧MAQQ; J,'fˋĂl{ ll>11 R {Oh|}o$"< ~ ?%NFPڲeLrCb@7x?}bgMx{?2w|yap]AAAwጶ/~޶m[ñcǖ .,4`~q޼}ۜ$ ``VǓk <`صk*(>dχ^,fCȏ0yb15bffXv .>-﫰/ xq$))'-ݫp %%`q 6 l@qPtB r Dy2@A*ĢG0}ŋ]<ߕ}c[[EZZZ%2`ӧ?xϞ=2/h XI>> o{\A fCP[AkD,/( 76Ǐ@@AL^h ~Q Ÿ0>v: IENDB`PK dkN1(U  #nuvola/32x32/actions/editdelete.pngUT bnAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,FDuA ~1iPFfbfyO0L P-(Yo*7Rl4H/eVM'~- 9mXV|? l%. Y9Ydu?KX ߂4230  %5[ O!a@Q$AL@pXFOWDt6|+>P6#0}pk*/30CR [@D9; 1NLd #@KO % L{^1|5(q}p&9A- c63J@?Dwffо}'"+JwN3|? o\cP),d`xUEAKUÒ Oh :@ 30; |j* |3H;à3k~Xpm(F @RCm |} ;;CB89}|^QQf~6GOX;{~}hDB(4ɪ00nph vv * t  ?!v >aY/TQf`ڳ Ҫo~|g 2wв^*,"d(s002|٭[X0;0DEyxg=F$3c [3  ˙'O2 ?~0:'\\ 1|Hgx{2 R :a@5f T_+YQef^~e0=rZ?"@af:d+`{ ,NfZ*kc376 ?>~d`:T1\]YPbBoWG Gg1h>?Ps3K4v`xk`E_&>5N6_ 0-p@8wDQZӉ2ܑW`V dTҖA~Z.a`:`]ᵭ÷WXYY9;`pBqO/i7Ы&F @.)(1̺ 2 B԰3-X >cxW\+R.ĂxdD@ 7 #odxu'tL'>!@KX8x'Max:g1ßHi 0ʁQ.u tXMfㆉSA|Bj { r[b6 z ԒD\C(b F6n9RB `>bced`&M6f$` bB+ŌH!7`dbBI‿_?8v' HoB 9 hӅǿ~ NbD2$OPeF̈g ,_>x镒 @h{` )7IENDB`PKRkN1"nuvola/32x32/actions/editpaste.pngUT lbnAcPQux UmPSg IIŕ$D+!QAڠt%" I H(ܖl݂Ȇ"bZŢBh]aAH3̙sP;Ϙî^1*͹)UpPM`+S33{|LYvl HΔc2$)S$~M ruLhR& I265(6cg*t~GFZ}?k| f_NMv[MV3ͻCBí.8q@ZS W3hT>jkẽ9OV_8)CxvW";|pGOz|AF R V0ASV]pęO-\ѮhG7Ng??RMz샲)?x $ 37K~C;g,GQ[%9j9 mHὟ ^:EuaI igN]:ѳDVB$BW^N`}WԞ\ VFCx797^?tෲ Go Msy9[W{!wOփ!bݾSʕ?sXPK ZN1ISX33"nuvola/32x32/actions/editshred.pngUT \nAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,FDuA ~1iP"F&f/|~ sO܂b-ٞb ~309?p7ʾ  P &n. TJ=\ARFNY PGxX C,sph@qvM?~@ (N0#f`#bXM?4@L[΀ŷHHȈBMGrX_/YBM#[K @ O?@,91rPbdĞ>q@ X#b!!%@_$U J8 )`)? `f`7rA*>6@ ?[ Aͧ _|,@O nu?!,w]@T`p2 n RTŠ8bB=#(_DyG[6 ZTJ2X0_|94!BD@D 5NPM ,4# rWv#rh`*>UP^G[Xe~S^I5pUK_@1^Iu/o2r3];_^3Jk2 7 :,y镒 @;bD)EEuIENDB`PKjN1:o@J"nuvola/32x32/actions/edittrash.pngUT xnAdPQux %UkPSyBAJx&A.EKȣVD 0 hv"0 [VJR@$#M?k̙399)>rrr)i_6]6w͐ܿp7re'LRp9|!#b τ1@KJ78[!b!CZl~G`G޹PiZXc.N˷ψx͖E㤎n^˫jQ_[&}D RJA'4RÑL:]GrTTc+^7gV嫗FPv?8:=Q8ޡaֿq$/~/p#B=VO|$IBW론DA:!7 q@2i:wZe^uǯƒcdܦ3_mx7@^=°vuOZž84[֊3bE@Y.qTsGFʥiY)Qvܗ Eםv+;٪j!y7^1ԇ`6gjY{7d|W!|hItK.]RӼR&!JuC6ԫB}mشQL!HXЅhۼqE HqDGѝf Y3d$ g pxSIZTQ5H8w'Cp2" eޣ_wdH ΆȮ/Nb UgCۇjΆOK˝Q`vãmպ)~MȃΣkԠPtI_$zNxVk`?gLx? ҵi|(0nǔgNĮ>h#q[vx6MwA͐ΘsU9u?g wWԩ{B&yxFŃtIJ1rik**8e텔:Xv 6D Lr`c+X.$u/NvGZPQoʼn,ɫ6bvJ8 < Ny}ͣ?(r:z",-F@%"D_s^1m 7/[s;4h [b}鶶?reЯ 0{_d>}nsPYHCm9r\<~D2{8~ZW/.. 3Mע`mU Y_ %=JZLWɊjI/ުNfFv'X"+R;a5G>WBae:ɰuե7 jmX-3Drf1Bu[_+!2-#3,BN^9LecpCD1y\{FA]5(*t0Or@O{g8aU"$Dnٶ9h~ntYywG?P;4nR<ʢC/ÑiUy|0;dEV [C%mQ\EL(bD!lWNc3f9ַɆg;?kJ+E GR#L%Q==!&o%cĒ' β ɲc1%1u?5C6Նk0}qKf@]D⼥3U.qnuW_%9o3"PY-5G.ƚճ:Ms.pXxkSmz uDft"?Wtѹߺy  PKӍN1gb i nuvola/32x32/actions/email.pngUT ^nAfPQux {\ǿE_)8 ̖Țxiʼd)f:זw@4uy-V XYZNKJS yy\>$-{6+0g/A_23  F w±$;xť0I1c2~~ j_!F\Nv$(•;~AV`vLC:Sx Q'c/6`:JR^˲9`HV/+rğʺo9 8$4@ÏߗMfb9#D Oe Pft./օ 'ǼE]>wVkk_*K=t=#u`ɨgC$H;pwJ4s-z<X+hzVƒ׬6)3һ(uth~Q}dmۓx6? =6՛q7۷" ܓ2Bwjwm˂`aal.-)$vV [ 56y"pt(vO69/[7ᦾi?W(['GoB:Υ-{-} l؍r졪Dz=4;y~x\ lR6wIשl1vs hz۳azX|q͚ZbȞ4j?ۑv"#q_0FގPtӟJYv>i'c,]ܚ{?Ku.yOe1e]/7@UW8rC Yes#ͫ^s|_i%\:~0b7$/տ/͘qvSYt+K Ś\> HrJ5V1L6\9AfD> QN3tY}(F;!g+g7gAʇ'ܖGvhGG;4Wɏ +|qֺ[cuP o\;q?kA*Ԟ $a#L˽ n%葧Uct=^ GMrS(v6^n }3"B%?%(1QB(9) &2YIt,zOp̈Y0.WL)E,[8rbT3"Fgc_tm\ML֞[6ka?'ĵE9%RRY7r|mC9X6<|H@]򼖐(uaa5r WeʊC 0M7XئH^F^ha[>WK;0cUb; TuݎjE m|l-Jqs3'u~dQ3m\1 AV|)Bk6]o̳`Pa\yV"4UjP} ,o45mɞ"=Τd/(udr[nH>} lYEuhZ0w;Վ ]Y+J3cگRӖ 5Sx´-n[Ikۙ~LfBVLo(wˡf,̲yw|nṵ-iϟ8P)UfQ6i=0Fr:?z,=F<0 L#cIoE-:ĩ^^^l{يuOD Sf(H'Jv1Zr5H= L 8]ȪmBcnZΫ!U0O`J53⧗L#paCOSDZˢOj,; #޸V\ǓzY~J뙹@R 0d`6fí";7=?PKckN1&W "nuvola/32x32/actions/encrypted.pngUT bnAfPQux U{T `IK(G`+ut\ynvAfji&%_Mc35; 3B $b(1QsϹs~lǶ.+pe%Âv}ӹ[Рt`'6=;#"MN$z&;`FsL  RXܖUz³!Ȉsumm%c9'o VTs/0-<RW~nl- a+52p* }s~N\\ܪ`8Xp99. i-qz1Cy¸$OMЍ\&SCr5uZO5Ei ^!=EQT=L^% 6GrQ2  e`f%|, Z<t˻;[x1#\,ypDڷ@l,m^AY_ #9e}|!N@+u5Nqt8~@!pq:6|$D9QBVzhmG n?Lg0O  F>kKWp'bvq el YNO86M./[[}lɼv㻌д z}H7q~XS.DG9W wl(]"IMU}$+Jiob¸(4Gc]EH]6kM(_z96'0Zdn(CsK휂B;[_}f9N.Iqz~ؕo)SSďtegxz$r^nӁ(, M}ޞ$L6Nx]cVv9}/z '9~ +I8`83 $pxu)-{DNbq j#Sѓtڢ.QI}nXkGʫKaIUGpe-{qpl/A # nmCp"rp(u |@NIpPO+Am Gzq1ܦd O:_&z̒8Y?{o {nm:L^WTX~2c~t?s v_"PK mN14 nuvola/32x32/actions/endturn.pngUT fnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?@bb`@pi܍a* )` &@ӳO'˹"3@WϵNqD:smȀp̈8 W[\c@F0?_RBP;& @4w?wjiD:012L Xhf߿5p焚h3Ek2̽za+~@3'&im%.0uu}d?f% #`ć'02/a+00efgÞ/fn}6zPYѢ `DzO~21s6P-{behl+l\n+mϿ?N{ΰx7~dcfZ X/zɰ{W f . *la3N_3hp9[ %÷L åOO}l,L2 x`7+?ӹ.;nOE=afϿ3Xs`x!cw7sH)?&##Úw ޼w0% ~O_ ?bXs)}Y0}B;F@D?k毬o\pm`0d÷_>W~0a w~dƔtvA  jS`0@@m3K 36H}pH|aߵ 7v}aĘw'f`#T@L13#=7n\p=o?3|o0a WrayV,WQR{" ـ봏׹]{7@G|e%ñۯnlf`|^0 !3g>c ~5Å'on``~ltP b?Y|w W~dU&4&r`BJ JBf, Jƭ ϸ/޻ h1+|~kjRAČM3_o{$Z3@P @7Ѐ; At>zIENDB`PKpN1o׀ nuvola/32x32/actions/exit.pngUT ljnAcPQux V{X%2J:5+\:Ri\BѩMZit-2AЖv+y¼2qn9<=klrjoZsz?j&1%54&` /5-tM$Q~O:={5i'PJ1Y,,--8ؘ7qwp\ `!tV1.aLLi JXŸNqc$w9Lfq Iq+-2JXпBЏ^~I;2\bv`ⲋ(}/S?`8 @NZ Mwf,$?y^fovgOnCr[t}zz﹛' b7F26%ՉfeUff\KUb!s#}\8(6E)e?2ʔMtH$1F!;?#Pۚϼ_ (A06ҝ粢7 e1_T|jկFGQKsffjt?(eD|a6gэ RKɩywXQn@|ఛ|dCjL$Rn"pظf/X̆eB*OVHvkEۧ>Zi=}eeLg_t8!С[?Ёv(hS !эnTDA!xβĔzܤ.˭9Qy=Xs B B7Y`0zx8{J~}XӽLh՝͌ !915$YO 83B06bntA qlOa T<[ҜEG+ 7=sIQ@RWDmI#8J͏ N?ZEf?`9MFldfO̠isi/"fgҴa`B*A$>dcJ}c)N R y4=O??pjo0R?N[XhةgwbK,*~ձIrF $W%ׯ9oV4ްNsvv_8=׸ϸkYX Wǣb**C"V&hQr_8t*ZN ŧ+kK}OHE79C_:oap FAm9|FA,/i%M Ɨ8xI1ovT3&;0UI8Ωz/;W!yuF2E[w/샫5Bۼ8\dKؑH[I v~ lf 53?וJpYw._@5,ۺlea` +FVa4t6R{mY=aTqPM4ep2(\Zi_`] N-c vPuIWEDZ`:aK΅gL?.f=?z^8V\ Ť{WF)XڬEX7IW , vEmڥ  6%"^`glۧFzSg8U!}չcWzrKT+q|H~.NMγ =[k/{]ꛝT'5f&*!ἡHg.9Rͭyk3ۼ)~}K Z2-ZGYKOJban6ŷp9FPpM7uqJ~$FDVCunYMGZ=*~ArX7h;pADh-C7j<1:ki: ;P27tWTb2 Y,|@iI"@D^.ҳȣ1?J=D }xdxئjqB.ܫ62 1 Fm%qWh\2OЏ4ʾY\DQP[2kx TEGP{C#C#PKpN1("nuvola/32x32/actions/fileclose.pngUT fjnAePQux %yTSͦY!-*BX4 7A ETDaQUh*Z@VV| e)A y~̙| ʵ+ b~Sd|2<Ϟ` h!K6w0oLxO| )^sFb= bO*{vd4a&ӛ=>ϿklTfS wf ˋN֐,|wgH0Q5Y4؋kV)5/řiQh }"̰0߿ߍ釱QQXh>0EwnIk4*xق3= +s?w6mG%mSsV@Vijg#T9} ^A-/./x9k; _[`K7{ꈐ1ãhej%BXz4ZRVgTBdfptĻ 6$Kzdtwy|p ,4!Vt^KCcrJ+3-_jk\ϛ.19[`r#vGD3RS2vt#4.]=WEp` {YRvD{%( $ɫ'rOd!p&^Ugͽ]YY95%%qyŤ!֚7X>#_]Fi܏sk/:>\mJ-߫F_B?=+A퉒(~mxeS ).JT%<,q4 jr8ؓ'g隽C 萁 gxCtKq, 6%5AL,|[4Z-mf&!ooeg?k=,WDBuG}q-x5PHHN&@X~$HӼ~uպaeJN~f) !< U ec*_mbœyl@@bX3))r%!x/.·}Ex;:;Ed"jp -R.S9σѣґ*' i =V R|~ f=K ف9/c*5MӮx4/vzvx-ѻ X妩H:~`@h2H.hޏLMg7I4E)Wnq\2۰z<9.~0Qx7g kmT(.E,y WS::`2D~ԉK k tgM# )ᵑxk8uJP-Kc|WGسk:?PK OkN1e<<#nuvola/32x32/actions/fileexport.pngUT fbnAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,%%E ff&!!Q ߟ? `_ T ;s133 |ō_?Ů# @(`gNN.166a#@0ÁTg`dҌ@98ax1ݻwtŀv]؁}ePPa`cced! `>862133A@ r 0|MM-c( 7P $_pb1@_?^x@Y; P!###,S0Md!3P߂PT[[~0@dH<3m` Y LE_H&LqC10 ֋ dZk`Zd`$Pf @̠xAĂ= 80`: cFX$X8Dȟ?2b pv-P &NX;H!D"Ģ O QF #b;[4*@.7RV92XBs#rb&BF73$-ff׿, KKi ṘˠR) Bˁ"X p  `g7o@VmCдrPC8f } X ; 3 8:[ Q>/_>ex?< EX"{ý{ 6Β\Ykk#55e`0 `l Ǐ_V>WU;4U933f iR/D_%*v,!@tn2k ( fVͿ30Z3  vv@_ \\@Gr@+PaBq33xLuO>3~`1F  ZPP`d,# ͫ? ߾;[!X BQ&Hu2 @|''Y0Oa }?~1|A]]ALLAHḢ$XY.aφ, E Ő(No~bb7o>b͆ Bbg!P ̂ P^|vN""2X2hh(0BoC| Odϟ߁ԭG9]\ &)5Y Ԍ^ 9Pn84Bd`0߻wk8}C!@ h`;h.A=IENDB`PK akN1oAA nuvola/32x32/actions/filenew.pngUT bnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,FDU~1rJ < ?'woMK@8K@&5J/2l8h7;&?s133@8@PBRIWA anPt >A߿2000_sI`GBbe`/  &@$w0K Bu( Ja?g;";b$44Cf%Nd@Ld[3xô9D``? 9GKp X,G?@_|``a@Px|>83ç @,=!|Xr5r"ed@B /ſ%DhN@B9, G8Dօb"+α2 }Y\@9"b[_t Y`9$}c7ó ~`όV121@X Pb!37г@6;~ecfr*`?9 Ix ĄA'@ ?ܼp$Ѫ5 @ϧԄ$b]X~ | O0ː?h0(]E Vo;w2E03|xI!Ej2Ckn˟7|@,hWFZ0@C/R{,DM}`&`#(Bd|5?Wv`q>@,߿-#@3Z{ b7LgfU] t+3=L\Ǒӽ>;5Ă Hl\V]m>ͥ S$1hՕ0|э  _ΝcbPxzaaǺ/p p:F#HU.?ѥ 38u%0aPQgcf8_sAO< \ 9߼f@(ِ\b 3A1=$ӏ $'mi\PZ*wj\=z6)E|9Wd)eKSGe'xFAVO  /T.F Ai1+%~mf2on ʶgL?pYZl 7[i&1}c9t"Puь@ŵHRsó$ vXkwDvWJ7̋DpgG5QXOdG*Lf>5{ִ"_q=`ë^B)"{i*9$!칵qx D0a;JB8㻩[¦2kBarĢV_z}!9e$-ZZ ,uf4} mK뿘E99Y’ՙ0C$C~ =0I.yK |2+Mf2HuPc .)7Lͷzg#{wmt% AM!6lnnUsgzcYvsл^ɧ"LclsBWvVr"J$vHI/^ x.(Wc3uEV(ہ 'ˆpt6=ȚɒsU1;f!<_}=/cD!Uy@KdۖCvu[LpLjZӴqu"BЩ|+=4#y]3p|]ܔaejCZG(3՝Ư?ֆ-/}V:B8A;ǯs nOJ_~ o(DN|:.U(ƽ&B&mF堷"뱦n?#ŕ%p~keME܄Riso "fA^F ~eR).悝cP0y.p2dЪ ˙YA¾x'Ѯ"ߘ; g'%dlr,![䊣#3g"Ԫ `ڟGv*t'^ jZDLL]ƱuO\$w8kEu}%_2:R0k[VUO>O [.$Wr=Lm

      ;i[`F:^XdMS<[ZL*?zFKwbĮ~'^&HBZVU'b-⣗Ѝriq Pln4DoebJ3mN |PLTaX:>68b G=J~^E0Up3;fvݼYw*N)2t#3.\8QN&|%2QgS&u/Dq.J uEy˚ Y|>nbͲƵ'Iر?鍢x=KKvPzmA'Z/[cȼλg9kry9y)r/D9I|v@SC`i~z: %)-iPK ]kN1- "nuvola/32x32/actions/fileprint.pngUT bnAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< ZIDATxb IeZII@`bbb|կ $122§ X~װ? [[zx811Νpyqc  *o P1'ï_@? @,Pk Y w E졄S/3߿i;e ?-Č ll< |`6<3XƀÏ@baaf Ah U89%b0133YB(`d9??C Ă'LL,@~|!!EBſhaeeZ G/~ < vǏ>`g`gLO#@CO'013@1az@ _߲|ʇ :Q.#@=߿-/(:@ Db@A_z2KsqqiŲxZZ%W|&` t]`A w@@-g!||22**j¢l22R cjy\nLR ^^Ϟ=|՟w||߮ڷE8801:}8 |g )FF A&&HRg?} Ơ߿s:qӚ55bT-&6Ƿ L\ <* gFFVp6efa&3Ibd`d`fx  7X+;s nn> ;qF/_|f(0_A[W\0 b`r ,Aů~_ f``{,[32|K \ 2 FLϟ nnnYYYpL0  g , _mo>,u&@W '+_~NJ@$郏_ XxyT, ¯?I6`[~h)H T ~eAA!LZքeE@@@bX';00>'^02\{ ZF$(q0DXB TD!3vv.~bܟ>}g_`T21/ '10<-pA~p3{*! $<#+@[D /0^ِý [Np3fDQ(']Ao~3_: >|L?"Pfx#V << j )_>ec+32|Pᅩ `a5^`" A4G^aP@"%@ʵ'KblIpO`!EDHڍ(Rf<5Ux$o;;$qZUT%}{NS\0͡F̈X]f>g8p`/Z1"!?Fc`7 -{K "P#h9cF#w77T6#%hPAJJ :hwpco ߾}y@@t "N$t`:aQ BMRsKVX-.vvp㚝6C7o^&<6Pviמ`jjt_p3@'' Hud++38;{AIIX HsC=䤳n]o" 10;33HKˀ9BX*rf7 ý{/5~ (޸q ϟ˞ׯL 7n& paBdp0,QQ~k@W`zΞ=t^e{w RrseoB?<`⠨?#0ʊ={&~lll@vIrw߽{{ dHܠ F1߽VFrTR<ţv"cRN bN~Z8Ӽfo=ljbYQQQ&UxitƛQxx)4_LJMUvdIYƊ(ÏZyh30Æxa*$sа``㫚_k3'іAwVSٳNQa~Ɂj,.GV6ѽT0~݂sB*&(]^s2{bSͪӲE *Fz J]]*sƶš K'~{V#=OT"LIv7YM&2Zdgj;hLMkeqo[q亦rW]"\g]i D22X4=rG]vkn>W%(]=*DN|3W {بFcv{{wXK 7|PL JjYF 'jkb`8"#wҴQeʷ٤$[,9SJm8chb<$Y"pB`;S&>u{:gE8mI$LA66d,IdM&QC?ʣcy&&vX/$68[f[.BNa9+B׿?b'VMg I֮V.2Shѷ&MEܨ6'$-azަkSt݃.Ă/Yq{tg[IHߪ>߃2L4$!)PFM$ާ(ڔzJ4G55eyQpwk{:; 2׵۞׫&^)NaJK*=M)Bx$Ѭa.dan_.gP1k-k`hE"uxP}(eFĉK"""D$ӄ9gyuF0j=^|&Xz@޹Pi%=Bvvxz.ۛ68UvV2PEVl*믷uccDW٭jؽ9~We(To] ׼XsU/F~0wU!`2ÿ$(kvh'ZЍFf0*.P(6 !,+\=ϛ轩?F>MbCr.0,<*@c[2/5cǤA$B[z©IPaVm\)(h]"{̭zTa#^<1|UW1ieTR:{A5ԄrGw?vV F^0R(P[=drxssm,S̛Mx=MTҞvP(mPt]hVsvU1\(Un ‹0ٿX{Q.;*66᤺kʑa5" X}oraeoc?KT`IM lO~=ol Ճ8=!o34T̿D o*_A_!c){+/ ~0a~6*yx@˗c3[!n$#=ʂXuҠAYU*NjK/2#J} $_$k+9`8C s=z):ȂLCL[^YuƫpVԃ")aUm?3ECl`fAL$oZ9wN2e K^G>l 'ITLLt*T*nzĎqcͽb_/!y.\=MtJ鶣ץ^ HQLB XG)^|m*9k$(gGdQKNYd Q@i=u,_R޷dGS$F݋u⁦0)(n67 yAwi 8RƱus+~DVʕ+IҁiٽzbgrMp 9,#tւ Mo`,C5͈$Z7SFեn~,P!T[wsݢW<`pukg%bf/=p[0)QOEҌHH `@O@( p3  0] q,(7} M0m@W2/4m0ab"э%@!rg (GHRX]H%BFF4G0BB$il N(, 4,R3, 2A$8B,J`$6# r0¾~/`U z?Xf|ؿ *X-(ThBu#"{p8RpGL Q Ugf L8L,C 0 BP= LiK߈B -A(zYjA ^NHšA&3P 3ȈQ!W* _01/ iLKN`A r=? ?t|’^&nn&xH@aBK@ׯ? ~bxcNo8w9 \ o%BM0@?!;0@$, *`fdx Mb!'?!U?ϟLXr +0 }c4T-*l!@ p37=O j޾gyt`>` @%"#L, 0w ʿbb NfƿL ٘~  (3# Bxr>:II-g , # hoV@%?! Zå+O F#c-sY=`?8?r`/ ?3&` m±20?/݉ o@7w@  ~ eIENDB`PKKkN17 # * #nuvola/32x32/actions/filesaveas.pngUT ^bnAdPQux yTSͅWG*"CI$(Uir%*T BPIPX!$*3@e,%B?[gQX`IDxV:<$T92gd\m1?9fSCcҷ3$\^ZBs䤭I[t?"U zgC|(#=0>6p^ ]Y2|O- ɝ(`FV"1nQb}G܎gߤ~"sOhXsGEx$gq6tVDվEK2U'כ#YoQnjd-u]]k&u_g%r jX =ufK<0gF65bVjM/Ŧd6P#"] PAS܈SbHZx}0L'8 3hĚG΢ܦl{< Tf@{R)?VزEíPx`sYѢnyԨ}R`a6m TSS :RRC+Z&*8''ԗ~'gjr+Sy,P_hfan?oHeZW/ۨ6͊TW? i K'+k%s&ěH" rҼ`!YJ@¼z-u _yWOb=X+&mB {i/tz[dShxUx>_#ڗ^ fJLoӟ ԡK|g~R[t~d!JaC>5|bsj Q \\ ^K-5qq[|>7ý6v #ϟQ7-z~vkSUCa֚ŲlC$M43>[EeT9z7`2hUuə~}He/niiF])U#_D"BcPpH*HqTɦObEG<,[wXnv_}}X8~LQ]6ޣj1Kpcw {Wl!2NlޒFE,-Ό1>gc"/ \яv2'F.kuꎋq"W37 Eh0 DK?| ; o^/rJ^bTPƅs5A4_\(M9% MmU/Ԙ#\7\J ygeal&ihf4E#ؽgPb8sJшaD>ٞ'/3F?wxjGv \j nw 5C,xut> g}ee/cGOݻ 连MR$rVHOiI׿0}/O%`|u y:ìfVuꤶL3{Sbf-2Jʏ{.15/%[EH7ǹ1{6ϻw( Q*mBxc <Տ$lAh06b(YTWx.[+>hԚF2]~X8aLa1VJCBlQjKRLw]"i}%F{ktSReQh-> #)0%b)Y˸XBբюv܏Vw\˯-Il)伌뇅~ZuE?goorvmv䵹Ȓ1zBF 1>TٸHcA|܆)V.WoF,qbɕe]o i&uw T27˙zo-{~,1D3Х GN㪀/Lr#;PK t91)MUUnuvola/32x32/actions/fill.pngUT gUAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@brqq18;;ٰhѿVV֍lllI0~ɰ{nBQ @D$=0ߗ )))% &`eeElb_01߿0~eIII 4ݻwjjj޽{>,, ?ftï_@xXMM yxxHfgglٽ{$_F : >|9ܹ@`\ہ]e[G@jbLL kdd$! _~ H ???&Lh+q#llll 4ӧ N]h>wdcc+&*f`gdd0899 58q"`Ȁ|=5@yP¹>X" )QO(**z0@>{-ãG|P(03331ܼyS̙3Q4 a@,iV`` 28J@sڴi >} s0/ϟ?π+@3]9@AL,hËy70"g (} P%&111e   P9Fh ߾}c38!s_@WKk˴i a%E ؁ l0pz`b':e| v7o0-cAq&̏@l@?CžY>~d`xa :>} 􍼼<8P% ߃J/^0A.HnVʕ-[09r 0̀ʾ7?y:W >9@?]8t81 R0RP0(AՕ ?30x(2NgO$nݺ… `G\   .`9a[@LX^|~A.~܈6n@BDidd.쀟PxqVكr)(֙غ9yÆ QsVh={ʒf;>,30TqW*P88 y{͛Y IhJO@3~KD` ~@^30U"Zaq*Ν;e!A>Yop @4Gp $ ?<~:"ؐJ`A T/ G M61\~ F!XA@`Px8$a`F` πr[P9TG`àx(|r1P+( eko1;?$PQ@<HL@ϟ ;U0AYT T+@A` p4/ ,@kjOxr^ z9p( B @9`з-0,ʮ] E1 Ж GCb?QjArw cefY /ro߾ n-p_zٳ hcu,F7AT*hӻؤ ,[NN؜j%y"%Kl G߿\U#,ҋ9e݀|PJð8E =jb1@ x |ZDIENDB`PK t911^ nuvola/32x32/actions/find.pngUT gUAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<8IDATxb?@bb`@,Fty9j: +frd Cp\"bq@a$¯b/1/ChL %s~{0Ϟ1L`oh5W[Z ,g`{῰ Ñ_[oiBa÷E1 ^8#Pka9 KH2DkÛ.3~ ƭ`o/(,_lj`gPVu 0@XC0sp1H*0H(9?Z1>CAE+CZ] /."@LBb |^ (augd>bZX}3Uu6| 3Az\8蛃bް@*Z`gs  J*\d8@ȝS`׌_ee໸D6 rg6 ,ӠyfgK:f§O?9 @}CǔX0Ygx2=BIENDB`PKkN1 )ڛnuvola/32x32/actions/finish.pngUT XcnAfPQux <Ӊ?ц}b~:\r)Jڰ}wrlcrSzvkcQ(Bİ}>_grU6,ݵ=RiÊ`22f-ĉ@}e㖙#6aqQILB' @, ΉNoBQʀxaPCMxH; BɹnJFX3qXүȰ {º8+*{~aD! `r47`r, O{7'gǗ&_ltAg6)/Y<`<&ҺT%\^-#bô_hvJ*Q^?m/ μ+yOB=SZaCS=XWAaHK 'guY Ȃ76It"Ёc!EmLw<ُ̓?bkRq0@[AYꢝZҾTl"KQ䷀(Q#+u>~ bM)WW#AsNmWxqrĔi'" "ΆR'Թ^ V/)(s0hT3}snh~ݯGI.Bw. gqe&2@m;k]?VWt.R/Og* / YJq5B~7< nMyunk.Qz) Z)vFɼP(@"˭$_Oɫ@Xb}xT"v::E~5wk}`3Ɯ=TIƆr{"7j-DmSY8XNܹ?>׼XqBᲃѝ_A [Z=b鷖ѯZ"[ VAoTOЈ,W(>p=+֔mnP![+z?*tHzηt<(f̞npِ5®E #W Q6Bj)iתSfzt }#o6Hjxk2:Azu%c#^d됦d׽` Se&56ȑ*aH7^]rdaYɠ2fG Rr_';U()ƭJP[|ܣy'vYpn$zn=DǮwZyH..+I)LHq4I2ڦ]pkdY'=UELEe 9dg (,2JrV*$)>#g5CK!D+U:>:="hW؉iiqAkL9G3sNOHoc4tc)0wP񅜳0&{ʀ`YoyыjOobxtH%<,.CdZV`0KMsAI/̛wv[Kx2lE0 50ƞ6 Py9HJk +畹kr 6Y y@8)4eh@=oPK t91l.#nuvola/32x32/actions/folder_new.pngUT gUAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<|IDATxb?@bb`@b!~id0N@CA?_eÕ@q$5aiӁ_q: `LLX/h|C@n0a OJ&ګZ E SAF^O##4?o2k1 j_RD?Ig00<2"bzߋ?g`it/]D1J7^2O2ŀk 3| u PU10f`6aI_Q0g=k knJ|8@~!<{_d{bgb`bb4Xx2 \<  ׀ ?3|6|b4+,Rp"?\0d_ ymW3|4 0sE﹁.dĀ.$G p12tͽ0P.<`|z? ?q}'*'$, P4͊cep`cDV@, M?e7P2r? _axh$>AJ|F~ 6?a%_6 4xrwP9EBÊD7w3ѰX\0C9<@2p@e ~c m` LY@v# `0@^&1|+f3+ \ ۏ2ljzC  ߠn|sz#O1ySsL  20ŋr3|f`xc5EzTW*|Y~b&&_yf7 oa ~}`'/+.9C&'0tbx(Z2|lm0#X8|3Hs1|x3`3 ef-~ 0)e>Cd9`-F6AeY1/d @#(Xm86H/R{?.7-#(p3AO >m//ʤ 5YUXdDm) ;p3FY)x$ 0faa(Xs`,ԀkR8e'>;?#WL!1BREDcE340SO8QqR@(!%|[[a"fK`X&X&*p;X74M&\I)gN@ئzn^}qH5ӯd;OLC8"L?zx| Sb;6K~/"E xnz٤Öjʺ.뾣HP1E ujɛzn g1=w oNǑ1srξ]G^Aa|TW9eVp2wDX Q6Lu?e\⃠LF!mu b6 KEHaK[,^;{L&@6>0BgƝiNK+/ ]E/ҁ =py>'p}Tז/}S#`+$Zr ?fum_~ -CExp5v/Քb8"(2S&xwuRc KJMzw`ŊfW|u12momd#|FK#| ͰFT|ښQ5*%jYcg-i^񶶇m]Z}~ N:ۃ1PO cÐ׫af:350UyE|@[G^XꢇRNL4{|nxi+iW^xdU. H;[[4z\ldCrԌcnsDɓ=|==< ׹99H 3~HbK0d$-M.pn4έ)ZLv`zтV ;jM,~\M@o*'H(r) IΙv[ t7w>0scaFI ~8iDQYclސDn8!`sp`@߅|Ίߢn=y9Đj0 ][-;Q9=Ћ#1CV uk+km7(IX̼$֭"j2C'{rM 6a $65FAED/ܴi&~wO4WtR#e^^鹛89"H &(/`!#Jq$Gsrb/tpU{AgKάhH&'_|K=٦yf˟`(Ub /KWbQsynIM7~xcPK [N1ff#nuvola/32x32/actions/frameprint.pngUT nAcPQux PNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxoT?g{wz`S~QBh78!@jjCVR}Ks#5o6RJMJUD,m^{Lv6\@9wלsG+snӎ~y^{ӿpE*,Ɗ =u?xpZIZ.nTV"XcKx?18Ѷje%MHjG)<V<1xZE4{0, _tAk ]3CXpOzQPJeeM@,.W4Qi(}얱sr,H@,3QJK ,3Ɂyq=vY*ݵk ;bg{;V.WN ޺u[_hxx8_6`ggϏ9W^9@__?B V=LDXg<OW1ώ?N&I 4I#AB#&">jنO܌:ӓ'M>=DQxSq xru e{b`z@€=IGO顋_ᓱӿ֥Ri;^*8AHӄw=f8jg>ںy'5|]*,d 2gYWYCڡ!/랞s}}}@A֑5 :D^Y$o@s= }eW&G_juRYӍRR,i6SjgQum4sZ:(pe6gtk@@)⸋J\"J ZVġn0S/LޣmW%%&f[91 rP…XE__rBLW l{X˂҈U8$ɘsN{ Z)ejLM!Kl[jfBi0VpS!@BO [*Avu45xrm `SP s47oBk(&B2'm̏*y34[d" uMbc Zkf1`mGtj(v9pw@Q (%~k1ddYsF繹꽡XZSS?$ RA }JZki6c˖lݺ$iuD֠Ѩy_ɲ&R$80&!^8V&+A@$ZCk &c,ܜ{izqppW_=DyQXjyZZnoVcrlˁ)BPQ(fɲ_|߇T⋻)À1.8\Z[}޽AT'W/h6??7$^b`llZvZs=v.*,3r|X`jj~_gΟ? jA)ٳx0Zguw)ʹm-˼=|3}k>Ms[oTkcQ]O0Z33Dofx=(<6 Iv~! /m=ܹQ/?ja P*xxD ;}{~|̕37n,DZ&[Diض*,Zf^~YkJƕK"a~Z7!v_aHuIENDB`PKYkN1  nuvola/32x32/actions/gohome.pngUT zbnAfPQux V{\~^^%sVO:/`n`_ferSJҶ M&%-KV"Gs~s=9l`icvK|6+>m İ-aPQKNJ&6uG2?$KHQ6& >"b^ƙf@\`;nȯZ. MgdM`Ct4ju{B#c _Ac;;.8uJI~=P]qQ^xhH39-"2(39!'be,rG-+s:CT*7:w!`ŠNjhUk-JQ&yzԁQ&f۶{ _t=>UyLsV|݉)w A6q/4[ofi|̹PE ZVoh UAþ%?©Su(gy]_Ak%SpN`kk)rW` $̧AX-;]|-ianu֖.axf+͘8~èRjO~ RЇԏ/y剜9`\ X>+@$Iهspꆏa,_g**ðTpTP9Sk>Vkƀ6t'HZ41ht&3 ('s?νf} ~vH/_ <|#K5dN ٗtr\ވVN?, ӫ$_IJkLld fllychɜx۠q$Jڥl8ZCJ I(β1y+˴Qt   \%߾E Mn5KD[<m}_fЌU 'a3&v /v|aЮ8+%~93( 3Uc!7κ=zےp.dU/A œ=#,@%&>,ц."Yu1ꔹ= RbU.rwևxal uoC8)6>thA-Tcxvn;'r[ug:0TM2 y.k5Gs탺0hG}hhq و`SUs"aq8OlK`<oK_xv22N##2Ü/%cUf-$boGe?bH uW5j\}0z s|0ln|0&Z7(CsǽKȋd.PDwvS-2JqR]yR%5ƩOjV\PY2R+c#)FUMee͒l&LB}ͺӖ @R܃*[~Mlf3 *p)5f& ̣1よ6Օ6C臽!Рc `)e.@-nA=a-fԟgW\!0oߍu.:sL JqO{:PT6`xPp:FGzmQbq(\o*uu1ˑa(F:;銽2zT LcȌo J8_ĕ-AEvWW`rh-/ y߱,u|-_%C,-eھ>-\AbYEJ5 #o܌W;fn*H6sFY0UµWJBTY~ŷZS}|^޶\Op E~?a0hfiL.rRpX ddEVTfAٟۈd,Y݆v.=H9 &Ph֩#gY/1o_eerW'#ɎV "ɷ#Z#d֢0pV Ԅ+ +ıRXlvoF#?PKIkN1e7\ o nuvola/32x32/actions/help.pngUT ZbnA3PQux -VkTSB"A$"+ FA%^֪c-P4"R@ֳZJ+Jyh-J" >@By$$7w̜3s||%qۣonoGOt6w؜zk)6'ۙv,[x$dRb SS)w=.&+Oa,JDd@d.9I/#HFgJ91919AH} +Ŧ/3 sƽ®QoRo"▘ #6܄gII]\ztPuo ^+L{W G;۪c2|}_K n˕˭`l 5lN|LΉ"Rz7CC cd1juDi8|<2b%l@aEBXeE~W_gJ|ϰT%#`Jb:㉬&7c)"W$A5ySG;紦Hƃzi=w7ICnEE~&."+OR7vC%@z~ M)yy0rM?OI]TuGC %ٶjii GF~K.f ߙ,ƲkTV`Nlv?rZnAfX_ K VP_5EgBA`Mܿњ7k̨PTH_@?0ޝϢri*pJT:y%;UCLLπX/7 ƖWDi{l\Iqj8MdHzYf㣷3Rf %a}I<-{[+ # 3άfcl}+*$?|)ۺy6VJ?8_cw@I\9p'a7evH,RpY$R .4j骢ڈ+ZUHPMܤJ˧lȃS̨ s\Ʉ7ݑHkg|ٯ/w/V,Ѭ6yjk\0jߩbm%mA5mQv+=Ca~~AeQ5dPJ|;Ib,dw' "_t o6/t(ZڴNx.ۥR^IKhf ٞ՜'LΠ_IILnT3ׁAuy9 Σ8z\<(2Z| VI*l9xȔ{zHba \rE[)G* it6҃zzI땴6FcCys-C^粇Mr+/p8h2VWIooV.Ѿ~%#q(+,+,$|_Am2uF:i 0&v͹]w i a bMi ]#ɡ V\b|4e'F>4;A$HNU69gY@vbL̦qoAA KuWF"aԌKrgfSG}~&zz!S"7TR+B.ux>8GoJБN3`Xar,)%fFä]oFf1&dz`R>b ï`?5!c'=6kWui]b =c eoTFjK#BYg(hKre敉.G:D往oWЀ!dIɬ:/^OmCY#BL@^\1l usg8 a3F%FrG)~p(@mG^OpJt#KHMONzwKB^zhXи3gN#o$Sp[U<$?Ŵޯ vWP~FܜMO)q420UՑ'ώ>GX?ös0 J~鵏U;!{[qݑ@dkWsͧ8{x'|RKyy\_QςZ[ 4?"cyCkB.te+@77<9mL n|gj33~!:ۇ(WYuKT_AS=?| Zp1xtwz-FʪOIItr OXrCuO;t=3hoރ%auÿ;(0;h4*$ :))'SOFW?@5ϼQpؤ6?>[FG&O֍cQ_ΘMK9_"+9pĎVRrfSgq"HY$e/x:63wJkd5ԳXM:f)Y@[d!}^X4U3`M]O0N`ݪ-G=õ_u8CV@`Ѫlוlq;LPKEkN1!' nuvola/32x32/actions/history.pngUT RbnAfPQux WiXSIÅPHIPTd@*yVT *K@"[Q*.֭UQ_" d[J%DA r_13sLR6v#Yf(+k,ļ<oy|ԜSãҿIIH?,LX="I( ㏤v)#x;3fs ԗ^%_+ {rI|zV?y`{>3mzfw׿mN5|z֬_ĺȼ}E3I?kZ|mߖvք` j066} 3X+ov?VV,)i4,jgiSJx]ޛ*џffZ74p[ʈfה=}bc ڔq9v/$5-4EIQmH`1Y'i AEP!E@e: c;* \2^6Lȵ]NఆCPrϷ9(}9( }([GVXyvmX뛵F'i ink:zGA;{2?8;gG'hdٹ4G)1Ryvu;tAYnt>:cb2 u8 bH-_!TT$ 95C{;8,lC;IP#aM=M6怶2 ZدUcWa{Z.d%|8pMSc`莀JZ ,~,~! w]:E&% WB>/łxP(2}X>u/9XF]Z!Rt⽡9/;VbV0OoWfω/+eUDbJ$Ș3K>Bp=P@ Q6‹%Mg>W^t1곧Mt=}F XIJ6St$#6,=u;B.ĥpߥ%AT?tt(Zg"QC[T/kUuZ۬@Rqp.仯^08/Ni*`3?JnĠgٙoL>AAlcFZ{{M!ov9ˎmOH}1,ΜDGǬ8\lr's_Z++4B7v@R]cfĚ&~7R~fJޒ(E 8!]b\?mpYr`ϖRZ`~&)g_+ v֘&~'VpHMFDS=֝,via ?eoIX0-Lz)v^( Èl/b cLdp&< 8{]fr;fH:k_K1`d#ΠjKYdxAŒzM!.GlDҎ덄ڤ;3' E;Od,Cw$3csZAd\tylPSIuw/@6Ԃ `06yӇrmϘ^p??W3sBA| ap-] 2/IL|5ugz}>kWYhɴ`8?O_9;}#<bhz.jHȴ,6I;ET;җ)GB+s+ijX2Qtk7m)D1G\Vpj# ķ||"C}pSq&lK-jhx0'C Ay%>OZr*}"KmOl Yk9\.ƽ 紁^ Q_Aܰ7}D-2o/bA' zT=#9 cEWN2 Z]c'=}<%tYe]@oC#at$YuGu75}dԭ* TrAR^hqNu0gj;|J:Cycc{*=&B@Լ2 $2`J6de"vUi>9.Dhi)TqVt)N(ǮgI^;+N {FgBqHWPݫɥXz@Y)/p0,6֐D=YcC*"tHfՁ&]qhjWdG H3ͪUt,խ=MV@[r,Hͽ{[Fd>~c/iJ3Z@I^娥byhR.*= hζ#ME%8Ƥ"ތѮ1u<`bXpxӚ W,eyW(x6Q!ֿ`P:t6=d-= Qj{v>-EA}W` bU-A7eWm#s-ˇ}-!-;CZv7g)iȡ [eQ[figy7/ɛqWӐݡ~FyԂ?on]p`2`%M@2-oMʀY6wx^7%N[v| mKȇ|] RP!Ö_5roB^ֹ7ۦ?Vd6(ʫ֢kyʏUSKu/H5rmMկ8 (PGGBt,"*\tK]_c`ΗpàH܍T.R]Dں:>m6D'Uro]G¢R{qf㶀Fhc!`3Ohrπ xA<yU\w*^dH1YJVZ.N̺Jmv0X%;!Obnx%㫚u]szK:p#X(֐)X3IJ"֜$3+V2&|7E=U.| WRHWw 9K?Y!z-?)0-@D[!PKDkN1= ) &nuvola/32x32/actions/history_clear.pngUT PbnAfPQux WyTR~>^JY .m:dj@eتÍj\pIԲ\KkrF&+-PTܚerDF+ 5K~sssM^vXD.sAIC6g5.?`tx|#6 F"̰aг1an2v%ѵ4I↴Eku|ɬ(ܑf KЪagx߭Xo<TNtꢽn|+s.FSU⯙M,Dyy]:%hw H,E f'DY=vg8z]zqdC *HV+ʾitR}M,|_)oM8+=+B5tܭ*uoRѨ$X6bkߙڮ2J8-B:#A=(jMjȕILR*nLVN;RT Ve[YL~O5bB=rA,p?qY!ZZZUҎJ:H~m)iH5e+t0=+ U<ܸ瞔؃hxGC*luTJnX%MJcHk䋀03ó R;=Q5UoYW߄P4>EKQKn1??d='?PAýg@u$PMtk<)f rELۑSr.+ByHhhr ~A3K^0 @G"(0<}ؘ 3L888f0ʯߏZZY;pYmyYn׷z3ٷ8_CNw9qlS32T-왔y8ڝw΋O,HU"fyxX٩1@ 'Zer Z\ALu/ pU7K65C^v:0#3JԼ_߶%7 -/m5]T*61iZ,B;=֘J#qiuIyrF̳Yg3~H0}c)\&||\5;`0#gdoI䦎XIZژާQc?н*--&fc}`&΍'^q[%=j^C`: eu8쮦y[$1F5+NW}}}`Y} !ViZRA{͆ kWJqz~/]T`O$IX9th8Zd'xFOE[ Qyl| ݷ% SsԐ|6[h4DDc,~/~j;Ӡ%z;n$Ad ht!DŽ!a@=ᙝ’˅-`e*$"7 ]̲\Z~3mUJձZ<([P]]Ydx8#!;ܔv֮REvw.bXt6\5آsV,k\O>ÉݝpL^hQ2+u(5+.4>yѦr7]lTGdrӂ+k$7IӘfoS5ʽ5Gי)&uiBa-Q ylhrs y)ڼg }^ͼ!;Qn`ł])z-qђGdOu2кv^<^BT [}鯦jhBrr9iGAfF$AAv{M t'իDB E<8_T5>WbU# ԥ!!Ѭ [.+ncCWF/sږIsRE-)h:lĉVG:w;LOjm.ޓ'hk]Azk [Zϵ,9Go d/܃T21;hr_B\.e&7#kpT}oPAo82+HTxҮ%kLd iLl`"<y0U QԜ2FaW Hq ]SbEJm3? u 0 ~+T)Xr?P4눅"tgMyW:=v אD4ro ēP%^W~VWah"]G3Bz[Gp(~*x&<qt@67`_L:_:IF!1$ M6֔Z` /b%;IĊ\K߭DnXUdvͩT5'7aXPabawgLzJJ\RWδnn 'cë 2iGl6Ǯ]l.A(aՏC Ҡtw L{Q;[iR𲸯&re|t?pk .%AmmS?aK4ݳo<+ab=Xb-Wnm}'}mc-;Cno9w¶wY}??Ύ^K%r ⌗"_}˴R'c$5tہOOpo qE i0.w:Xui[=<;]^t^D!(14Z802xRuDD,|?6i#X<4!GG57W ڐHa#M4UxaTg$Jɋ^.(_QU+cj uj~F0=yubBkXQsX1TO+57 &QKܭ$lHkhv_Ӵ(3:f! Wp%nʢM r6QsxC"}gD Z2$5(K1N k;I֭n{sKy?>zB( '` 3+L,,ZT|E^gtL@>)&mУB7I[;F'3fޗ0WGZ600 現<4 _|/;PK L>WE 'nuvola/32x32/actions/history_resume.pngUT VMdPQux PNG  IHDR szzsRGBbKGD pHYs  tIME /W VIDATXåkpUuSU9KDӬLW7:a=D"R,`Bl˧r-Rf,y R }dWxƦIKZ_ºilU>TUA(, x @Qd裏x[yM=t>ZF[-962rоoʩ yPn>4MEUUTU %^]E^^fUpG>6-bj0lg"NHK.?ٔb// 7 +~4MEt}BQBTUWq=8DJ]lB<- )_0}dV`6Sac"QR7LL׃j{!Vi*B0gy?Ʉ\'3wE?w򓧾SLZ*WI; @0{-!"(ضž}\=ATU]նxlݢߛ:caW6,a``3g.'sxwU?ضb5=OFVǎlW1\#˷M-HEIq!޻G^Ν$P.%v{HM)|vaJX0E +H{Y~|o, `Y&~}5e45~Ewwh'B'cNsUZp)@ Ln$1Btq6`$grA`^6:c()%-[Xn5 :HEE/+׮D!$)oN\/[\> MY^g/EbOQ AÉa,Gc ^aa;wn+̉vM~*JQW04Aqq>55,\XB~~.R gimm'ĸf2mh._C*̦EmkZ>6(+ﰕrb1;M:*H -cQqx%رKHibY6?\?ۦdlx#M3kKy=glϠ ރq*&^s)&\WK&m)n_J7ĬDVR4Ӎ;ٲ#cR8$I8ׇℂ.\I2#F7Xg4&L!#q;!H*mp&4@ʛKߪ]!v'Dلl:D~#1Y%`E>G$0 2,e8uwFd00( ]0ذuo5㧇u3?0p~TElt8mO%/)h"~Ɓ=j%#/>F`Fr><&5E?u8Kf-Y˲mGzb 1ӆXRBG5t!m+đPoet"̪UbH iaY633  Uuе[K|y<1w5#'m-|sdǺ/_+!buPhyyS$hm\*p-EY"Ț@Cw}5,̯%ֽj_Q3kOŲ\4dE(lv3aBIpYӵ Ɋ39EnV(+fw8~2gF."^x8.BgIo:=5Ma6q(E!s|KwYc(Php68p7nIL{:IENDB`PK .L>;EUT T %nuvola/32x32/actions/history_stop.pngUT VMePQux PNG  IHDR szzsRGBbKGD pHYs  tIME vZIDATXåkpWlvs!$@@D ZKAP1cCtGәCǙ:*@@ HB.n^N?̜y-o1<e͚uIqabƞټi[}۝z; D>x--q:#?HMQ5 T:KMmTL)6[\p2BŲ]L}`vdv5kW@ lXWʼ8L <0Pd2>}lw x.&QVKO4ޣw}3gźں?;C'Fw'' vCTTUEU~PB@MM-h:;8v% uGuH0 ->Ktƽ'g&@? >(!@Q|Uq=8DJ̮s%: sbN\rx޸@7d˲rPUJH t=(ISNl駟pa [[I=q#ڷ,tO -ǓRmmINo9pU"tc4<!#w/SO|߹Rec1$xViX&=v5ɔEqc+9ܶ klAJɷ1гtJW(YP}6TTNf-Y˲mrLzFz$*u嘵3M ǐL²lFFF ;x?_6WUBd].c_ t*C&c(:MMGr0Ᶎt"O`YlƲ׍)~P?3Bd[ ϮT|Gv%dLaWͣ486 ` AV2WаËJ}+1R P1{<, `0vÄ7n p3xC}$XV[㦺ŤA0yɱp Kx@16wa!2϶L:Ŏ)cs cAE,z`~hsIIENDB`PK 8u $nuvola/32x32/actions/historymenu.pngUT CHePQux PNG  IHDR szzsRGBbKGD pHYs  tIMEiKN IDATXÝ[l]Uzk_9'1vc'v8d L30J&f41}SJQB+!2() iHB&L.Ďc;oq˹^k& m ^oZK7`[X`Km.n#`5\K y/Fq?u!* R[)-* u_6L㙵ձ{GTG(>KydL7d}:ŗm~P͕u?xNjVTT0!(e%]L &2k||n6Bjn `1|w>lhZɕ+>=cNc`vfSYUO: m]y?.roa?Ek=;mffK$3tY6I,R#Ggn.ΝYXX$ LJ׺/H.|3ɪ'z'd™ %xlӲp#Qy>ZڐJ֕!>x Dٺ]~y!4fRsI`kgӮA_ݕlΣ466H0M!;u] C`Y6|w}?{Qn,|%\j"fS#X[H-Qǖ$ni+dq n^jED"1"aY&ibx[KaI!Ze bD0X:6</}{gf}XƸA a1V׈z]مY@PP4-@ߘXn _ 3mC q2$бm/6>cS;199I4j8!]|/^w9GݽM RLjE|A1/;G_Rs|x|݅]bBG_S\bL2ziiZ$ Xv 7pl'Nt;ͭ7D\G)M.P qF5kŹ#[ \_؄&! Ttt3ߣq5]]o:? PJJχG) ,ny)-XWh4w$V"Q*0HymlڴÇOr`' Yz!}E?εiRE@re!9Xd892wDUŞ<\jG*oPZZIee(WӔ88A@6/& =0;4MEu/B.K%F/ִկș&m).nLgVUNƐc0C9\% CR}Ewu%s_ÐRH<9mMVr9G={Y\PG)_6&R.A޽ٙjgBƮLj ,7`Ǐc;Q<j:C0~#X3R;b(F$u .WƉ6D#{{OOO e²D#+@/ '||'VE47۽K&"BAHHĢq Rw]L;:uits0,JZy Iߵ U[!/ )Rjp)ҷ\# JI ϡCD({*gD&%σi\HO-sٸ[%$".g Uw+/S_h4lRLTncǺfV-.h KB }cf_͜sa!V`gH>)3sn9ij״rNId'bpVå6&΍8 О/9zeșXX[K朝[&; ވI };Ō&L%Isz]W3B#(t{?Qfj⯆N?*XN! (mx(\o?ADN =rh5-*4t?e^~}G/hLi;X"4FFmp7ݗۃWvwGSy^sSMLa ̉9qm/l PyGqcVK?}x?ڴGڶÆ5I]2`PZ F]=H(NC-RwKfq7na_ى'a Y9BZ(Yr"lpJ,M?DD 7^z\0w~^iV<-]YBt>kG?dՕeJ^S# 2a*KY,,Q$,; W4Zx 3TharSYU咼eC<~Lud|OƢxQ.~<ur>/kg+XU,Ī Q-Bi'(#Bf T:퉴leUol`&7ƥgSZIedoQ`Lg>ಃ'tfW kE,6Zx.P<,Q)?vֽ;,XNR\y0 MLjvdIѸQ^(J>bo x"68SkNl:{Np/:Р0]^Đ$oZT!8mֹ˛P/kj5FANX=׼a5װrW_ip 跥Q{c(ݷzN$]q׾ A\ H`"( lB r>}HNf/3y 8yH"Cmg X{MCyWU9r)Ho1d„ƻw'M=}ʜbĜ5`fXEBTL#T$"t`M_w-@k8шDQ E;s`" }{=35s߆*Y]qxoV+y6aot\r.o3@~Let0{R(c60n (P-ցrP)moނJSAUhK6LvV<֌o1?װljY_$XFm_ãG;4H6xKo48@ZpFvaz 5j ]xcY4^Җjaބ`˻Nd,왻,Ƕ*5bҍq C4F%?NP.8~ZGs1M758b2ޭ%ڃuuk%g$?[ddDwȰsk ̋a=3Z;\:S6L%v`,tqvڻțGTA')pÞq8u؟uK=xx:'+)+(MP Ϭ\gF&D{hUe6v:{g/ K( tۘ\nln7P,WWz ~Vgs%'^4(:6;]dev [85kz=O'}!_lneng:1)@yW@Et2>6{'ŹEvENU FXQGM 6~O>H_IzSQ(uTo͘_X~8W*,Q:>Kİkp?ElL2 7(%Wt@FN߼FGnFr,WY^Kþ*Tfez佥u/3IQ?/YpMmcuD޻-m 5?F_)=OCq14/09ԇuZmἪ2G7M0ƷIqZcI׋[DZu.[-;/ {B1rW6144nQxly H,G96ro̿]譮h^}تvmMpn.[[u'oU@ЋQ\Cebe{ۓ1A5} &Q`Hӛs[5퍢/%r4f׷MT/m6n 35~!_@ 'qbDtddڷ io✮N Q[u2U{4ↄ1%:yKKG?륒>rG8MHvߓoK&t-^5֚=T~q',8!27E0ic*IS~V#GW.,tKFTVRvK&  mc.9n* ЦV޴qI`dla渥W- 2C\sU]))^}4`[ _NB.'r6>0`yҵB둢J'm" 5? _`Є:{FSJ@fJmguGgpg'6|UcZ%1(KF.Ly_MKYبjK>p嘭LoI6omRo_prL<޸A5uYŪOC+?V38< &-'8]Ae[t72#NYDp\+<@j*9pb bL/-_Rv0;{BC?+!#壡oƅq Ym<9Y/\(9Rr?|99`.q*m?4-!id<{iũ3u4*GI0l+ )Bە.U*óȻ8 kh@38N|证k,n77Wd ras5G"bkb\H7A^βҸ'o>>OGD}0@:1etMdO+x?xBsTG)PCFT'gP;.n?b浞N-$-`DBCv*^aTW\M|V$s͹V-.b 䀚`X֖- "rd<z i^Q4@"XU ' 4}Aj\O~ ijT:HܝɅ'Y.Bb+1o%*c#~1)taJqjtԍ-VU%#~⛎E:l e}H6?7zB:܉pPq{O$/{BWE{zzXw뎄eÙ!."C|i"V PKBkN1cHq !nuvola/32x32/actions/identity.pngUT LbnAfPQux eUkTSg.$V(6*z O$]ŢCCR <%bMNi8&cԁe.(Hr錄9{?s"c6/WZjN (ՏVV./Kp,(O,8B^ d9Ŋ\aڇܝJs`]JKRW(YJWFO@@ 0P-Zݩ{GF3gf|]>M $ٷ 48 WD~>bȮG4Nwcqq^ㅐƑXjDyx~jKIi/(VFidM[_TG;ʟugJj*9|*drfdx@klϝ=/ b>&X} !&oaYQV_pJ} ZHÒ ^ƎP p͗a2 "}:=2gE_^!&6 9R Lk1Qc{K [֢={DW''IU:ż\o@MI#,s&-ARzYjҫ/kS/}odA/hUh}^XL _Z{vn Q"nw[q?%n}*R‡ވWQ6yƍغO%||8'XǐvyF#=W=#<ڇ*RDm9pCWO1{IO'+DaE"C|mt18 Ў1Ps@YC8֛#R;+[*L0y~~{{q 8 &( jYs-F*wB+}5Pf gwVgC]_bo5߬ޒh؁%axISkYj֯u &Fz%7D)ܶ8 !^ᡬ!bU;34}($͝ ^<_s)M'laê[wyT0rA滆H$ї{q0vUACPwteu p%) )(][_ĝ$m%Wn73Ze;V'Ab|y}Oo;a[aJTasl\4o(uz"7hl{465ãHut`O~.> [RZXhk2T9r`\EȃJ66ߜo(RPv} =roƢwz}f}T%#tpKX'-';Js]$v K9FŘqtWJَrlSgJ:k,z|&l)&M6oXAoG^.KĔi {6&Qy(-.0愆L^=|NO!%NO\'t]av.A?(IU헠YLֹn۹A?# zkzB^= noV o9b85-4GRmڞ6&\ |ƺr}0oi0q,Dt)&&ٳgҼ>dX"GB!bn⫯Cu $sP t2A ,<-4G wZcVYǫIw }ݸFy喸ܢehA-Hu083 t# {~n|+o"sP).7Ma1'ߊ߈`vǿvyn/ɪL S\ON/ݝG[|.eeABCuޤcjŦ̛G`H&#ŰnvMS+^!xƢt''ܑӟ%_o+  gUJX'O>"&׷b!ze%  :>0፯ZOb`ctREnǢ~"0Y]nrEؕK`^^B멆]!- kM9U-}Vbߓ²kAtҦ#_f ly >&#^ ǧ#owty|Ԕѥ_ c5*袹bN/5cKi˙._QG4$)OyƮaMsg_h]GI32zͱb:؎NcܹfeBf+Q3 Fr-pfC*Zf<-ӭGC)`f Mm'~+X$׏+z@@ ֬<(Y 8zp0o4~4CEL?Ckmc/Π{q)3 |IO0K.͛na.Os$IPӞRفR4ac7IӖĽvbutlȃACytI_s)\Ι6A$ η8,qbuwYW81^cPs9}l/wG5vh0E8`r LFCP0܌ږW5gYrQKJbc ՞'  ~w:o'ݥkQ9e& Y,38`)#/{.h|1em _Sq4\:[]$DԘ]}Z;3LVX3RǍ'E nRf*S45<JRdj,`gjΉC/7ˈɂwڕI \$mEo/{Rb8JãNimmӾ{.~a. e^T*ׯOĤ.Nc%D8nZ1>s:f%G6j18qtxWIbZg0 k4T7*c鐨to:DzrwbEPlyE#K&mK} F"/laQ+GYtl-S`* oM/n!Vny6M}*9*^rm>cXQ}0 Gۚٱ-"hjG= *߽W"kpsp6UG.j_WNQރ'[mqk%8oF_<,V~ڊJQŖ:A*QH x$Ӟ6o2#//H-@y e{jd#ͭ۾4d4^S?uW]esVqH@L mz퍭t&Kf"hbE7vޡ9LX '(s.\.=K %j%keG]_1_΂Fêa6Ӷ.JGB.+jz&-{Hr-"uQ%@3.Y'4,~e%rdZ 6?نW#V꺼gKAbfȆ_^hp"(,5@ԡK B5fft%/a{0:]h ju+o.ǔPKVlN1eA*"nuvola/32x32/actions/irkickoff.pngUT TdnAfPQux  sb``p  $)tG_G'Y^%%i%E )I A)'Smx8TJa$w R ,020̲ @+Xݍ ^=Nw1ڕϔw?=>5򙁩F@J G|.IxL15WU20tDlZ̗32agՒY*t?~?N2Է;Ԉwg04ݣ~զA&cįmg[#N|XcZ؞M m303_dkrcc\`ే] ,9s8$+^}`f}D|ɍ2,@3[)37/㘠P 3Sn;U2brQVﳘBGفxii ٷĴ5D*2Ej*=ΠC!)'eCeCsOONΜ*ŀNeٓx񑼇*'а| bv1JoD9uu4u*2?m;W3%{ïHI '~|QJX֭20 22 3gF ٍ c#&6 ZdR3vee`Lt c8 G/AY4ʂąb9HϳN8@Xꀟm> w2y,7G3P[ ΖL} c` ^`طC})[PE\ P w`r00l]7U\@R@5j@f86֕gxZ O T 9zţw  zв(ffF1[3̜xѭWX끎]TB P4w ORlt@pQ1 _w'D{RJub: ?0p0n jC| {"$}\CBb qy~~3P,d,,4r) Bhf=c`U'ihaP׿߼`LN}I)>p&X3z%ƇÏ5l,Qv~>a *j wn}d_P,g`cW!%׊? \, _eXԷ+D" $ P1Rv4fГ` ԛ6j `4ۊ p*k1<扟?X8z?h"[@o0?b & cF`Y 7 ߰҄1žUH .}g- t+ U;XL Hq O@, * 8 '=lr' 5zeVί&/3P#j] yX8Q⠴oJv^`w V~USeHex)038}aˑ\JK(%ԯv.S =$4bEBCAZ_1+J}J- ޾ay.-W~}X`E/ (q²B jf* @~JP_CFWspp3Ó'|s nIc)# aRJMNאZlg`̇59+{PCPX@)^ OI؞ l{~va'1WOƙ01yX1K6&ƣ( `" ;w gbɠ( ܙI?q""6d/ KT9K gd Hك@J ~f"F.g@%@gDWHi `HmIENDB`PK&kN1 5 nuvola/32x32/actions/kalarm.pngUT bnAdPQux %V{3cf\5-ƗB93()Ntdt1Ӷڲ+qi3\*2BcΧ}{{'?jsS;SB7Nڷ2upq؇޷:nߦ4޾=\ 8)åb's7rI~~ ӆ茷=3,p d-肓 qgz| )O\-xd'z5|HpHbPj/Jr;rK&3lOxo&5xD!>0F+=$hl,&qDž~GBxk) -M<ds"@q8ïWDbYmwV .bp]3okGlC<:}:"K}Fbnl%s&<+Q6?yIE!v۳],Gɓ |߉V _8i7gt*CK;e'z!}A7] F`mkV.i{c>2Z˄naw>ބ$!j]WsU3wjT8=-MSb㼕nESK]*E,,U\k0qJScmMB\ŦX;VH`j:ѻ4(v$ԻJ]SLJo,YZw˳u>m-Q^{e$s1={Ӄ'xT Đ;\qϟwRО뤢eY|b5YXͫX0ԽZOe(چA,U.1+32W3AU7KA0e ;A<bteZ|"TzꡎajhHj o/*+1$#x,I@0:83H j#UۗEj'xIGdH}5_j6OZp\OB1Op.&dawJ9G((~H\E@<2~xT*'l3FGtcwC]fTu$m VbT-4 ≶4Y;14m6L+j0Wl#S \U:Xt 5DoԪGUU}=)_.[|c(! kki_qJ32:$[֫\2;)eFO=@M!1;I;HyOе o$oyQ0u<Hret:m6Ţ6)C"m-X wL[җDذǗS$ ~-2W,$B%&t#p=1=#)%+k ~2 ɑ_z'Ý TMeh37P0WQ7G8xbBP2ejc HlF0 V:95 *N~ō"58:P=H9R\1urvS(Ȅw {w<`g5uOamoX:e;e^Ja) ҍ-S' ^=XU9Ņ,)܆R@h2l!NQBX2a?;iiW 1GkV3?gg5z6aDeȯʰ,q;hd/8~ J}}`hbfm/>6]BO歍s:56i-'D./ c7+ s*}dKK":{WP72%riNޞC+IBD}6?sF1B852+Qg|&oGњ9jԈN\p/Ėi+DUY@wRj|u&}s ļЄ~tX 0Uz8/cp-MHԾZ];ֺƀ؞is8y !Cf#dtĴB\\ڙt|B>+[% 2ew(r]rflϛ_-T @[9֬J/espJ#1A;#_+ !&2m%SLBN8.|) M$zøƹkCz #=(H]]vr%60DnU5Ԓ5R5Շ /"Jj6( rmfȋ|Cnv%opݔ )#{!*Xr"6/ss κ\'ak"~ɬ%vE$v3Fu$ӂ -'\2H.DJ~gJc H\@. |.1Ѹ{Ĥ➹xq- ƻZbt O2Rb>(Qi$8XH7bSl(Mza[Bjn+oK/ c)КTqa? w=!t&ĥ=bh\3S9D[3f"`݄<<56M(fs lh;cLhMڀ2G/B SIkϲdJO$kqgWʥnp{^:ҕg,4w "kKDi/;}kG..p>1 Lc([y5r3kg|\ܡ~p0?DvaM`\cqWttx%ۧ,Ɨz+0w˥DŽƣ`ua8gYܺj2kj^Zi#d?=77ܼ=YM1-5?]cpZ5|H?T D$V,/{Вu@1IF63{C+V!PK$kN1]" O (nuvola/32x32/actions/kalarm_disabled.pngUT bnAcPQux W{<ǥϒC<"lB:]e0t; f~G fE lV,[kE9G \kh3,59aOpO1v EkEZEA [[:րBLa= q={]lh</(1 =_+Ph csVk\J\5 {g69BL~R6#TuՒ^'ҼTwfbXE 闍 e;^Z˨Do1paB㥚#.ó8s})z:A]6FMȸܭ r*H$S5VVv;?RΑl˕l6މvyيV7C ZD$ Cס _t?ԇOK 5Tg =k!SUcHeoðLy)oRzZ?=~"3ڂBu:3YY ف' ׼ay/ޘWIVbz O#(g;%uJʍ%!O I/)`)w]&zoѻE>̣B%G0hlxP5inxh ^/ab) |'PgU3J?R"ӞdUL0woWXA[c#;riv >{!p._EãAxM]) [uMC.@"pl XUo>;-CcE=Ӎq4=4 @zL#<4+hƻ`bp%uo]2ŏ[`ݢtHN+.7V2kKz/ٮdq{;Qݼ"c4 ,`,lG?;)jr21p4*pazp#645pƋ{t\'Ԓ" ?Ś`EcAB im0tKxqv[[`wMG558vX<5Viai^(ZV`d?֏AEymT,j[pφɡ%oH4;S*UUn"mD'_8g1>+}s&X AZ@fS!H])dO)*$:礙Y/}OaAj0oѼ ɀ{=|G`d6}4ǁ /Y {@I:[t3}^#W}(~dQ+h} u 5X:$Q*fP1)eFI{`&>ѩJ/X+QbTvtZ2o+&٤݄@UdX-g 4l@8p?FbmIv1*M[bG\r .zEc^|Dtx/深."a'εgOiK UW/VB|I*1(&[ wkTuf ?ywJJ·cd%:B&헖e"8h q$ a3eh3-nI`h4)u<*/8A6xy"?Rv%\>O)͠q6 vks1fY#pQU_56JUЧ7-EKo9m9t;yN\cbw7!hߘBzqKC^ SD9QGl3JsZ<| [ TxTDZ[fME8eb5]_Ir;F}O&3_;'RM *{UNJlsRoz'?v3w%Dy۳2ڳ`?:ϕsu4;:@__]|ղKPK t91ĵenuvola/32x32/actions/kcmpci.pngUT gUAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<{IDATxb?@bb`@pЀ; XrsJK˗O^=?@ İl@HHF2 3\pHAPHןlq9 l,89ˣGwgVk2|UG.@됳)#P3!4h(Ȓ POKֿޏ; *f.05~l}LbbANT ?d`2>ΰ|^Q!n@?GFo_pu߿~?‚89~P2<{A7C?_Qh$a(B!Vij{ !!&PUip7/w8o5=2 7.!7Q! ܢT25nTmz%Gx=b. ^7 g @81dFž-t'#6$Uߞ1 F./ Tʯ KP ĂH ?D?^|'/f^u, G\8<5ŁSnY}@S` ,* ?`в0̱ _>bxC-? B#``d$?3S) 4?0~-d  !G #>_Oo?'0DóPߟ@ t @Gea\4104 i$ 6 Ex7$o3-_z٠#l gx@?'X yš |U@\:(4tr+0(pW3xȠ&J@, BB4)w [a(>!lGW8ן cx#o,- Q^*  Bl+rꀶ‹?Y?z?+Ċ_(A7/ @QJ@G^!Gxe`8 C!`/ >gop5 w@!(T꒕C_ψ~a93&)8s`dATLAA\`E3oQ Fl,>jg`C/ gWb<ïWDgXaL 1ARU OxtYX ɳ30q``{E 00)^ r0'/Gť:'yʳLL4V;"cx;X 6} X>'`f`ֈ~] X5;P  2|^e"03@:~v@C*66͛ؽKE,~K9$aY,û__21 ( X@{7o^07w; 'V1@1jkk3XXX:u=>Ç]j@ h;&4w@FIENDB`PK 1kN1uN:\\&nuvola/32x32/actions/kdevelop_down.pngUT .bnAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; Ăa4eL r@YXYo3d0] i!4* 5f`b @20Ăـ|&F&/ Mq (p8r33)&'432 g`; Pan CqËo6q11,aʴ F |P``fe d/#r,U[^SAR^xeb+×w 4t < F| @,*Ð_:з`K! ?: 2H1b:?  ?c} P:ZT#0`~20d2H)cǿfC֭kÕ _30|HA53a场r]78O \ 1 <@{gCB4;U6Ca#v;/~f`/ }0Z-Ӑ l:Nc S.0=AA/10 3i10ec VI+ å'@!Q߀'Ï`df th!F PJXLXí'yxR昘2hsD.b`8z辿&ށL4;H?FO4N>6NP^.1|A(4#0$Te% =bd@A}C "BKa90=t:aҪ \@w) }40uZ(3]$..p={~7'0,:WI@oe!f6`H[>o$PZ30Q0蚫2(11FϯP'PH^y)0@+Z@hِٹ@| ?ǽo3\{AYA(h>8 It~c(A}d`bJ2^ w ZJa7MZy÷ z4,pA `O@A*rx=7K˥o~ %P/_(JMf-,- ``xpE0$v?aϙ B@RҁJʟR/- #B 018A|Ɵ ,_  ?AJtL8dmqQOw 3(kZc4H#ۀfۓ?w $:sN T0Bcd``g5:{ 301``BfS&4&f`dg g@*w@ h@h`BIENDB`PK t91[V "nuvola/32x32/actions/kgpg_edit.pngUT gUAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?@bb`@, Tg'OOݾ}(B  ߵkk@ynz8 Q; Hn^L/g:/2|x Of#C؂E 푁 [j 9aȑg=3~ ep8#%ڎa3PyBNRЪĠ7~3(|Ui>w&Pq?nJXy;,"ؑ /Vu)._VO09?#30X53T?{TP|~"9b+eHVe:f?s <9 ;+Cs@go] (,](EmwX=bs~?L0L L @̕@uW?ß@_&2>F?@1c`s A @Q@ZP?Ǖjs25rK 3ҋK0~?@Q0GAj*67^nϐ' ƁAh;@4{EIENDB`PKt91l $nuvola/32x32/actions/kgpg_export.pngUT gUAdPQux V{8T>3343a!dQd.JsƭS.eZъԜC&PRT.iSjF3 4ڶ"y{/?dۦK,4p_i_:Ћl.wu35?Sg,7+EZ7h> z. r{zY| dQbȌVÏ{ /V=S ˢ'ʌɱϧs0lXQ5tN" t%jS?L!ID:d9t`VpbyK+VP1f3z~o]VeHpkEVušIof hB㋢r8K1ͳLnP.6Qh 0CRqڥe/FPX ӑ}9hKx8BBQ6 G铂a=pTB3kUxo~E2;6*:QijJpA|M&>KHX:okbmofSBjh&#H芩 Bu _l}؈{_}a捋\຺JMEt6I`|PX=}wއ.CL҂-o')ɳ1inIה[/ >f 2zh'*_h$skE`3aƐ3{&Ԫ_Tv bAO>6dyʣ[jԺ`ǃci= 0J3Q eodzX֥7_sJ/ۚ"5 r |,GsM{}0l{C ;KVC#}]^V׹1m `1xV ^]g' ?S7Rh%_-aPGM##[kSǰ*?w_SIcb+ɤ=<6޽;Mb}O2ev̀ /EL ĺCqSz^ tcLONEIdZY`.rWB,Dz%DvC"!_=9CT#= UN.'yVI9zSo,\Z5& \H5ϛ[s<ƭvj}/PØvߜ׃{~DQ'[8Kπy}%$p(͍ *İyӇ+R記`_!R<>\?oFt|@@PAr*q HiΒsjrΘhpH)ؐ\|C-8Ya jp9InVÌ=;]:r}%ӆn2amVցJ <'0gT͍eny'(ľaVKXrsS=Br'͢0+N^"醓cU38 O(^ay eWj#lK?:C| WO}J$'DDk6fHIęm8/5@P4Jaݣo?PKt91Kt ~ !nuvola/32x32/actions/kgpg_gen.pngUT gUAfPQux ViXR ^LKv)hD-4lԬDZ4u вF3vJ JMMU+Ҳ4FS~8<<=Ms ޼~t% +p:'?>>],⩡Tl Ckk5^@|\ n xb(Qiktw훲 hkQ`sNB@Yء|XEzjg璠-ߡ>>'NIC&K^P `yT3J< ꀅF(B}Ay~6 !iQN)Uz׸W`7H !HNϠV_qnq%E(t,ӛd2Y2ӸV yb&ϑ !MP#2zV`]u3=^]f-RZEb(G%Kwî2).ĭ ] 2VsU^gq(JT/RނC4!X%7d6XtM, % Cwl!c 4M5Hn +w"c ެ~ZDx5攌VoqoV1ϙmx-^([ X*,W22.XNꃸ* en@ukǝ!c¬S>ٗuG/XoCN{Q l gcb K<`0#"x/h+f9f+Wy7¼R=ohxآ51`x>e^Iǭt[v_SYqSAf =Ԃ:yvF:`S^Re: lT> LE){E.9lQ\@ul8N)t;lw4Qh3{(!x*AgA?bc{Psm[4$$mwH'0U0R黿213Y10iqx K#Krgb8-Ӹ׌TQi-oz%jsOm%iƎzfW Z,F R q#d]-?ChĸN4Z,^p;:*^&+pnۊ[1~v9_|EFS$hjs3?A7/ki[cH_Ts#|ٷp6~qTׅ|n6C.I^޹u.)oׯm;LJoo 0SV),rgΘR6jFFAjO/wꉁ~1ezB& tBh?Յɞge#_*]IʳHH + cKQ1vxrfBƳ=KT'PpTye^+; 7E <߷l)Y_uKy7q>> ͫLeaW|Q-:15c֏]7K@x$@F {wd\ʲUp:Ts+O"pv@W,v!bʌ *{da \Ssbի{&0&cRN>RGЇv>%Cvi0Oo˶L eW\GW&{ݞpgFy {ij>~ݨ7+o8D|FZFtewkݬ٭Gb활(z g?8 YJe^ʇ& pEDJ1' 0Obݟޒm?O[s -gIzn&y(kLa1uϣNN Z_T?Sڭ> d3RKQFSilM4M4Yoy7r \Ⱦ9Jr6o/]EJ\NoȺ6x~hWWW^džOZ>Ufwf"tB^Hm< yWY1ώ9QYfz-YT33 :wbfꚾqILavIJ)N̎r{'ңLߙ}3&k=-G+9֯=4[ӡ}/O/>嗸zᛍ6\xZ%4s#u)V;1^yWMh xCYPKt91l . &nuvola/32x32/actions/kgpg_identity.pngUT gUAePQux Vy\RpPae Vd0i$8.iu7-$TSL^ӘoZ啍)WqI kעT.e r?99wWȈHjD͝ PoUi.ޜ~Xҡ4 85+9?)#->-)5i-o EYr6V*|mZaύ^Ķwqg$~3a~#&^ }L 8IĢ w.[d-K՟l$*N!mt@p1L㣟?,Q,Q,[,0Z?[hZu\I-K~J~t8d73V=<\Vo&"4:El=h VR􆱁D84L=@5h2lqbKmLU~y, jQ.U+-:mO;K!VbL&)CO]į;sO'ТUv䫽drs)~5Wd COW#J]c_E1-Vp4RQqOF#ɂj48EB]kNVsc]A9"E/|h>"^ضc,7"꡾@Q1#߼遑/J7.vVChb5!'fEis _6=POLeG=1dd!GFf= t+>Yѹ;ToU+ΨfCO]4AXZk؄tfCS ;gf9WTR|L#X \+ EC62:F֭̚q&UHEZ:8b@];NL=n`,|8˭ecc/>3O5^)-G8{\/Fo͉Yo5e1Gдa;.TmV+g"Op=GUu20dwQm<w`҄BNn;bb먕\gHm҅-C;.Θ5./>Ǘ&ge`Seh˿fsK I?}#UK6(IBԆf|p8xFR5f< ie7:fH.d.A$/ۂDCa|m 7G/Zʉ2;zp%z}i^=`fuPqT%ޝز^j =?/O0'P`a̒VSBy7LZrg|_^M6ƶ,`p * ^D=ڹ:Eu%'J8di)~a>ٷ̹&x} ' 0+"fX7><88K~%W~=r a\׻CcOWg]l?4Y1yrjo+k{oft4Ǐz(!o}p2fյG> G_8q r /{kfl|SS)߹_O'DG.-;ڹpa\Ch nm)KR> 0Vㄈgk nNg'>lnDɜ&;HYl{E/L:ﭱSYTiWEprg`.߮#@@?zPKt91 $nuvola/32x32/actions/kgpg_import.pngUT gUAfPQux {Oޭ%NJohN?Zc[6:8Onn_}|2:0Bj W( mb颶acaLr5H z̰ᒓMK,`NnA=J@*t4[8YJ/MhlB>N١a7f%/j)rm5vŚ Fb1;x%ާJ/6J̥Q\c%._[GUwS:1nv 6W`AXC%n[򲧞|P>.R;{w KٰrIk;1O/J3EA[E[mElSpF% /ew~&5{ ጝ?shd~'yׂrp˿JM+Vl\6Uj%YݬX]Eq+µ-PiE`Ռ "D8wGɬs38O3znU˟ iWx ^=Ryy9/6v衡 +)IM;nV#$R(Yl74f)s \þ{ҥA+~[,Wy]%[ruXtyU~,4 _s& @[ڪ׮4*9Rm.lEH>U-oP]Mv1?,6a~;~ՌF)܈5w]G'6a1QIݜNG7 c@%%2̐c;K͔OPcK7; i0Phm&R-wF|P;1C7{F6j'ϝ bLJY=΢^6gC3_Q@/|(,oMZD4=E7Xr;ffxݠ~E!mRb`[AfhdPbeF6\Ϧl@%^YKͼHk:'Ax^Ly%E__=BO60NT=N}tep#1}]s2V?dH$t/ӶCҺ8i[jx}3`"{|j)ٯAT";8@CMhI.żZ—~`Uj[5wMF~W,{I3  2' Wz~֡vWUɢ g ;}`M/vTv _,)*W4̔D)Xn^Ah89QlR%7hNO9t"Ro puz?(nLkw?->|A)zv1B1ݸPS}㜈lN;Qj Rm}Wxz5Hγ,GHTY,`eQzZaDЖm]f\u A-mMy޵혋XttiY4P1G.rYe*=x ȅ0Az 6g~*YQotq;R:BhjymZ5di/{\$jEr9O$+y}r5w.Q4! Tq{)&Yˣڣ#>v,;e; l#!ndmTɶpސ>Slp*$ 1T \#'z;$hmdjzZSq+I;l% ÞCIܻi3:Wm[&9ҘFS?[wq8pXFPl謽pUKEÑX6I+ZkjN6ǽZh~n@0}#z 25) D([T_1lȉPKt91M"nuvola/32x32/actions/kgpg_info.pngUT gUAePQux %kT_x_4Ō ]+$bBΩ4]80e7F)5?,5PŒH(&;_4ՅzDGv: 9Ji/:÷gY'lSץH}c()EHq|= Bڕ}'{&aA]-g ljd#x° 9QFk?L.}k,o<<" C_!9/\ l@$ pCژ~\jחB; |[nLۮ(X0^V |GZLN#C.¤7|%[jmA}UC#o%bU51 N,yqV3 K|,;NJK`)og5hy>s3Bwgi)21WRL2{w(XF4!:ON^Yz uUᓛd%TN7w?(_V}6B  ծ/ y{Ɏ{DEid&[aVRhfZrSbޖѱl3[R;O^Ak՘5oFKT>nd Nh)x]E2 i!A#&)5#}SWc@#.PGؕ;GOgSP4B쨎|>HM Le+ݳ]it*üuko ug&9 ;_N>tٱ_kΛGIܙ4>ڀFb0:(dNld\4t>!~B+q0?+eSv75'^ސ;Q9Z׿?}#\/hp4Rl:.LQQt%)c("kg~Yu_ѻ"+j `_AqycC;YFb.EيIqt"AkkJ^~wؙ:z9iG߃لk;]'vXο-Xƈ-^DˇFù ,YHS%?PKt91\V]"nuvola/32x32/actions/kgpg_key1.pngUT gUAePQux uYPSw I.$HXdIAAR-eTnBb AEhAaT*XhY (HY$ܦ}C͙39_!vsS;SyDxh1YjG>" 7 ㌦ŦN>!H`QP̊HH1bNqf:"4Wejyd(&|guqn1yp/*89>T֒qG v{Y,f\X8͙Y1m%j(Ɗ"_qcX-Pc_kǁ6ek(D6^+h{"ùS ţù]XY쪿9sSfׯg&'VP.T=@-Sfr;3Wk+Ɛd6^3D PKt91",  "nuvola/32x32/actions/kgpg_key2.pngUT gUAePQux V{X~CnFX0sw8=ҕ ,!`ɀFإ,-bYǹ˙\~"eaar^{tuF>xѝjfg>697`CR&C#TH0@f>;@Ħx"2l4w1x|SM9nWR[XsY˗oGau,tïeO^۹uן[żpm Y8uM 6~ByCx yP\!SOԊy/^`7GخCJ^8+β c)iz.-u\v';{=~?h|zt ..JSR7QCyO, ؚz̏B5xif)f,s_aq]e45==;#E{J͋[/sOt!'lETR͆T9O_z3xYf-KsuZhPkS.Uߣ$;Df(dIʘaaDPUU;jgFL~Ԏ {镟c,i5 ^ԪE?;\OG 0X> {,Sٓ{3ӿm7U~*DRYIdEG="4x;+J[N/]$e)fIG17cmC'Էz)B xsqh>yHKq_%j"f/ "S(CR((((Ќ9봃}M S%qꗢmyX&DH3ˉJo /m> Lm?*T 2'V}@\Oeg !|MIWվ-p[8q t9wvڼ4 kHپFP.&e]N^f;W=qR'[ӒH*}_߼PԎ=S Aai3U9;F4vJ&Sbu3+=d40^ҡ4!ccO9#I,PWrOoDɧ~i>`E^>@DR(|RY(rxb3$;tvL^{mX\$N'"I'nQ4%W fF|> Isd=e,-/GG/݇qw_.<dZz_pٸ큚ؘ25xp1%|lbhՌ S&b{'[S%?rMʱKm<<;^G +]ObVv^<ǫR:O>?]SoD.!XJ9J)UDq>?Ù)޿gee`n ĥn^b9-iia;_0j30ܺs IO»$<\A W%g gD H??e#6.#f/@OL~11}`pu͛103sooWw#Gcg`o6C -R>aI "'_j#PG?mA5}o2|AEEAOOѣ ocHHcpq1ddشYé O $X*sXYP ( 0k9GȪOpbA1,Z!..Z0h}(T E^9e@+^g`pAӘ[: !f'@!; WJJ\[[MZHHԩ >}dx5 L@_._! ͻ ZWlX+á= Wmmˠc3/J2i1pOaBBU,,\ -22pp1|A\t}ʰuEUm1L_@޳3 ~@g]'3r?~^<..N/u^x@&!̊r ?bP``a.dxل}Q`-_Y? +ؐ@p|cӧ/ (3'';ï_Y 2"  O>g`Pr3g/bQ:30s0\;>ǐ@LHuǏ_01e?0!ȯ_?D ddgPPey ?f? AF:Q8';_E5p u$rۏ>}@1AE(@ycgg:o O 7-sg__oC^h1`fF)^ 5R>". zNN..6Ą@}p ^^Vz Lgff:Ǐ Wb8}O>W L[_޿=t0$J=ԙ7Tx&}-fOb x[/^p}W3p0r //{}`-1{{/O,,4{, ol@},3yA[[ʕn߾}""B\*6`tt?~_`zAebbK|ڍo~9(03<{RMwo.]z˯Οk~~n!#h0 @4 !! ,d.e0ypp0+ f:/@^mێx! uff&P._ff4}}uuy`= N}y2+'-  230 ֊@o ),,tXLLPYJJ? +[uv{0 3@`ZX*))ç3?~:4k?S͛ . @(ii`"G H$̆@:QGGOVV+`j'C.R#@%(H@}LL Q +f0 G@a>}p XrkDWLTݽ۷O? yP4 [ 0A%): Y0 '[ݻ/ Rz(   +8j@j@;wL5aPf'ٳGugwO@Zfhiݠ*[`F@v.j!--Ψ G G:RKkvAZ =/2޽%|zݾ[N<Lޠ\_ ꚁ {B0oy`0 "01|DtݻW Zpz6Am0hlqXܹsÇʠ e ׯ7YYYug`W @=0R"wIENDB`PK t91zz#nuvola/32x32/actions/kgpg_photo.pngUT gUAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@b&\@@@Q1 !c?Ï?~?~ /++F f2C1嘙Y޽ŐBq@ `c4EmriAv3ீ n;~ R%c5|%VƽG0)GauFF&0dY8}y.o X~30200Cqqq Y :l|S7/P++r \O0(~cwd`esO1cׅ7`}^p&BbE.eg`&$Ø.gfb^20| yA:/~2H!8 @0 be`t>2pi20jF~ 1zJFH( @*؀>g1*30|}}:;8_$5 3 `b󗁟+" ~:30so`l33gfƟ  12 ffӳ <'  /02~^NB -c`~^A4'#4xeW!  fb[$A? )p+ &`iW .!n0qZd>}3(l~ O- l!bW` YʑiOU Ą/ z!o`ob n\Bec#22qpkA졀@d֗/  :?ܹƆa L/Io_޿Ns2:u*d_FS _-tL8A>e`rNNn0 Bk *@lEÐR fU&[ @fP a? |,@,Ho(&,4AbܐX lP.@Ǝ} @$i V( '`*eA}A FF&`,p~v VFb@|IlGO XdϿ _|ax o~%`r0ps21 02fT#@zl K@>;0b@r;wh ,"n`' W۷Ո\TW׾ ,T0ׯ ~3pqA?^zza@p** @3 1Lv`4/`o .]eزe>>)[ׯ_ ?T } c `d ))Jw'@..v`Hp篠i336gXz߾}=K @`011s02sn} ## t 8!(A@ϟ;@ Y Rb ?0p" LdcagϞ1*NAEE \J j;JBBAIIE7U4 `?`/^1+ܹD>h(.?~Ç߾}ɗ}#09ޏ?>}v#g@|P\Ju ( Y`d;zLL@5oDD<ΞX `3gt5#0rH#(8۷@p= A o޼KIIӧO>~| //LD 3|A$`c044zaIIQ`xheϟ?}J޽Z ((W@WWsЁo򻥿~L@ЂTII1zgff_xu(@_- L_{x WO$zׯ_2 i&l@ZI` 0jPs0<4-7{Pz߿Yz?~ l_ yY MXAge?@90NS FI6,PB,yo"#4KCb $tqY_aaA9aaPI2 /B%@P)ow>@ ~!*&es dMf F'22TpS:0xLɒTP_X~#w;@nC,_!}0]ɡڵ`_@7Ѐ; Vڗ!:IENDB`PK t916 "nuvola/32x32/actions/kgpg_sign.pngUT gUAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< oIDATxb?@b@LP>&>~6F1 9@,ĠǢK2ӟ lW|m &;% \|52  \.AݭL Ă[ f# @z@ld[R՗0آl @!@,Ģ@NPG)@q r+j07#S' 32p3۱A%8j,@@%-143IILkvPVg`8 ?Nd`83;2? PbV A&:pw{ `2,10_$9弡`+$Lbk``H/kx͵Ȟ oġ>ZȴޙUBa;g^@5@a9BP1-2Q`\*_H*bP aQ F!| B  jk>_;lj Yr8@"^_3`Z`a2WГ.@(#eB Er@ˁEE2i 01߿ea?g‎X^1T83<{p)0M} w i(($6?^ ;0|;X10p}( kh!4Üd>0}Cpnvˏ {ZnS=`:5}ïʼφ@+U+x+ٕW?_ȘAГ«q!s{N&$+Y* ug~nt^r@!7D$ a_#?fؤc~3s]h)%xTxU0f*ΙPaco vuN|e'@5RWg +&}XtzI83 [OA<4:s1r*1_m`6;+F݄ *1^|IEiS4ß ~0p=dZN1Kn> Cr`O`bqnߧwU|jCbɓ *} s.S@jzb0+280p~pO%%,bO/mZ",/S'`32{ _^a mQ&k w1x|,٠> 30K5_ r_ HXÏ}n3~÷fϺd͂ 7xJZ"R= 1Q 2쯜Ǭ(c ̔C$8JAL:B}7 lda<꾿~=vZ5lP@#Z fXA"| C}G;t@1j߄7PAj"Z} Hm@C| v2յ WCQ{92{w/^~sh`. &zaHE 硹Yv@M'`\4[+PwN 8Y{B xĿ m1@iB jN]gؿ!Xm G lUE!`(D40f*0;خ~b9@N (?IENDB`PKt91w"nuvola/32x32/actions/kgpg_term.pngUT gUAcPQux Vk\=>*%OfP*PRR+@\$IBMKM [fՖV3MPJM1{[MJA+jqyFp/w.?01a i ؘ-K$NC8|89pkÇܺ_|?Kp"zW4_(ɼ+ ¸ζ+tl * sa^?_DQtϤeH!6@oXF.dvbx9ZA5TPBSpSt;=fo_ _4˔bhn y<>'e}{Hi.9ZT~#WKCY!9X_%F65!=JABɝezhٛJ<:ȌAl07 JL&DuhہR1̽]ԤV2C3_^4<0 CMa&{G JsA-&O H/ :tgW-߷Cݿg{.~8h(o,?`%ؼlp-bݕ [W޽t6+pաEkxJ-v3Y݃|-z" u  7MtK>>0pZQ^:BTzeQYQa:Ư ΢%cDw'b/5']np5λAKo)W3ߏRtϻ\N@Rv-[\P_,8_bPըѭjLX1# z'"Z&._%199gȪ6{wKug?H\Ifbl{LDsJkb}kh2ԛ*Jh&,AjR[]u 0/Q_&FÙ 6.Y7w_Y]Jln>`Ȯ[ц$ Ml[;q= {ogE!^h#<"j+do_s>mGlzw@xD`Pv_%=vZGe;ƒK %|f-5{Cn_u'{{jfc|Ȋ[ؽU8T7 ME4S/bxgꒆmdZ*%ŊJ?yq# ֽ3 kci3{K4(j㓻 7M N玍 <5,|qkb~PKt916^U b %nuvola/32x32/actions/klipper_dock.pngUT gUAePQux iTSwo, j5BZ,IXZZHj¢FnB4Tj -A"w X Q!7f3_3soLNu]!٬A"sJZژY,9j}oSbS%' !NH F' 7   j,"#y)0x)$ <ȎMi/l8ޗF D*Vֈ3ۮ_9q|D*=7զ8YEHwp83 >pW$Ctgƈ/<3ʮ/EoiO<<\n_ih{~#9^E*!/1~tN)5Dʣ` -ؐ iLXp#a40«5d*xSx^Xa~#kv9y_}`.a;xƙ2;noq̴/slȗ8}`xQSا sSJ3Ъtb~)6A3#ڬ@En. b21nv\?jc2#" e8xڟ nヲ_ ]HIw9{*9Rm(o{Č91'P?}dsg`27zN1ْێFToXM.2xiRlg!%ّ$? K?z 7.[~胫ǽj[.rcmyӇy;(47)G(ʲ;+1YӤ4D|\o⦢A#s΋n!1AHu/<(}4 wQU8KI Hvh)Bvt|evv^̓E\flGr?c-So{M UnҐRvuaWܱw6׍-*nYE`ao֝w Cw H}Z-L#t3ЮklRnV6BBD \E&1vK#Pu_Wi_gށS܊ߗ0[, TK 4̻:@n?˥Iz?Q:MzATaLL xcOѻ~C@+A37eA(Pvt{-^37;&&,)^Kݟ7g Qlqb'X|`s& *-3Cݻ#ّ!'ccyjDz'RSlᗘy3F.;Yd^Ѫ^UGkeG 2> YYVP!ڸ }Crp';5uݐ(nc"m(MSO(Pū0z D5-)4?]j tQxZ3UoRv )>T.!Yuv#\T_sY\gUEd$D_3(%Oj @)YP"ui΃S3Qg5'|M`.} Ubi][+?>j^3S.c6,Ҫѯ_pGo2cIUueu7W/l"~r , B-O+Xׯ=ȺV J(JL$rx?;)>ʀs ~Q9\d3Q4t++]թ-)?|1mM.‰nG";ɓ q~*R|g5D"S~F>۲d3}MV|-miQvtw>ha+L@k9MŝQOg lf/p%س*njnd&/I(fU1n]D-@`eH2 x8 l CF FX-sF~c(!3avlL!fo+Ο_:>= i]F9Qb6*#V$ف/ذIxz !`qg,HU૭9DqU&p Ǝ2+"yAŅaa] 5?]0~)5 o&2}4іŷf :Vw-֖D!TN̚8'YVBZ h70sd[XkM(4GTW#jh@d m`}@Vl k ;dvc&S̏Bbke'sA[$A{LsCqujkE={IdHSV>P,un&uZ& =$Pf3V ZNjs_+L}φk,to2!6o.7@HɃk Zr&#;ѨUb߮z"rfDO؉a+*VlVAoTb yȧ1GUҋRl4GaQWǬp^p5SiDk>*8%"r?ەJ4 P` ]̏" d ’v,v/Jl uFF9j COEBщ:hZԵTϓe=2r;fJLA V PX !hF5@B(sfv(\6.XyʃZsgEmzm1L/4ƛQ'}g8c tu\z^6(@"Y0W|WO32ѕ֌- v1 %hFGx^ fMHOpu)lfŢā!q16CV!0.eH:so?g^~~,*&sKy6o.޼Tg!s*s\&WP|t6;   ӈgOQ lcr9?MZ?ݥ:)U"{ԃG3xsN` _NAΕh&kdn粍@.e^,߳C?SZHdEIO4bSעuʡ(q_%BBA zVNpZRpNᷝg߰&c, LCy-% x磒-&[}NCїp|QOh:Ɋe`jD^wda".w"I7Y[4ݿ;;R+` )[xޥa}Zn//wyy}9Mh2Z4*=0 Aѭ{fտ0^);QJ객P\OhZDc2tY6AuWHU$^#fp #=[#xmZZG&F]-A iM٣X<^ϧ뱲Gd553&FgMcb#FCJzGR'~$!;b6$%];JWaz9Vzzozb@SO:G/J@p3 (3|:?_9aŰS T tD!Cw!0tTTE,\Ǐ`#ǟ忀 HfQnwoAk<6PN!"P[MAށM_a o21k1p--RX3:va {^nL @⻫V-!,,@ #wWAQOXo'%0uȠhk ,&ư! 2 %2\0| IlTȭ&P?vb @7#c#O/_V%뀲?B?Hvcg/d#@sćwIENDB`PKpN1](nuvola/32x32/actions/kmixdocked_mute.pngUT JjnAcPQux -{\gɱ,Ԧ Ux(Ȋʔ׵FщV LCLlomJ̒,?i0clAcNMsZ^r㾯l&:-tEOqܱǎ9 j?o;*Mk'[FQWҨ#)з|_& LUM[x;/"v;* "(߽[mRLt'473 F3&`۽78tzo&È}p{ybDQ (/f~v.mۜ-X.6LDcw f}2zWuWyg-Gtlza{IYæ&".c6iҟz#ݑi5DNʱ "xbl)Իr8] ;*$_PyP$2KU;O@Fێ@qW]}Mo_E EEVBX/Po͝ 򨈉q5^BN8lVcTdgZ~/N Nd20 +)q5^b+tH/, w\UXZ\0X'pJ"B|. hkEu99uȫX5?n46>yFQQîPi?N ~`>hB1KcHeVj m[8n[ӱwt[SB6Z 1g.M.&/p݀;`K#$PfL+<%r_ FkYNi~u,*u$4 ^jlVkE]k"DlkvU];>uPhƞHѮB1HO bPiՃNhSyobcUUUlE"1^BGV8AyΨ5|S1.ħQRTh(ډu;7El-R aa +42gK!nz-tgD11b `Y# ESYzT4n2塩APmUY; p#S\j|tF)/>Щ;+ =MJ7X9s}⤔)Vb;͋uwhϙBvJ,HqJS_Ӕ,0'+fVV{aAoBPodÎ]M#D'enn\SS|(@κi[)`Fܥ3* LcXT^{0PK bУ$7O.?Y2Y0OxnۏìWB^MAL/AMny2 z(-Bfrɬ=y"ss^ yj ;+ 5JsK>?2S:8 U஭@Yl ZpKсgT%7u.>pJ eMpK\WImZJïk}20fW9W+ϒnÒWGetgɲlAnSSh8>DeDذ_Ro1`Z E+)_RT^$o+jZb{_ޭZx=A)'Wx-j$Cuޮhudb2a|b֜OA#. 5;lgCp~zd\\[ vd5,[ZQ %fLcOuBQ1J7.YX!A7pPK t91LRR$nuvola/32x32/actions/krec_record.pngUT gUAbPQux PNG  IHDR szzgAMA7bKGD pHYsHHFk>IDATxŗ PUϲocR 'AGqF&i>1#MdAЙL3ELB\A0QW@䡀$H u2ݙ{s%f?$|vh{anAX!?}Cvs.A)*@",Ɩ6 1/N &R,'fmpw(>:>_XS.}ӧ|9@i oٍVU3J"9Ш{'On 6-򸱰!?Ok q# k*>$>lE=AF*Q\m7kk۪ Nlk~oq8k/GA4S {5*Q <} ldCE^}<}20W8:ָ}2EwfA/*4FcCs֭/RjDv+ LXR2o^o)(矛ŜU},B^MƍܔVBEL8,Z̩ܽOFx5iJOcxͰa ]V˿2˫95z>x1:W< `Mf97cc{8oADcdkk("#FDDQ@u@Ed|Ppܹ\e mcTpCwXI64ׯ1J,(#Mj]%?o_]]:8#z &L(?"վ* 84̘UkY ??>lo{a Pc%;DOwq3*.kRtE1NC(na2+Sr9b`NT*9GIDCZLٌ#؊,(dz~ܸgC-87j'ø8v2<:IqD%!Ռ4 ѣ(nn|o_Nń1ꌄkơ!]4lF\Y86\ei 2Mm:\[[3#W/> ٘r3G{o.p DD +k|E"1M i uD7ĎEЊp{nD;`ʥKN.*ƀq$[t Y+>9uRvX%4_ψ?ACcP=4-w@g Q Pԃj>lӛ@/*FFp4n>q4 ^FEdo$~ƫ yCB1?s.av5u3_WP Ƨk&zhyܰȫgx p`,a7(?KztEXtSoftwareAdobe ImageReadyqe<IENDB`PKpN1'/8 &nuvola/32x32/actions/laptop_charge.pngUT FjnAgPQux V{<.QR4F*J)uJ5{7NTBXu'+G1Gnf-Gs+fx<|}̂hzv @UaLH3%>h!&˴: cKmfz)5(/OѺq'@M,VPq>zB&"tJ)MC YKnELPxfBQ:r6*qg{M ϕI;C49#Njru0kGO āfTZxZINF't̸v.E[_ i~+'7Yĥ31^A?|+6@_ᶝ;Gk:XB$λF&d~S]#ڎW M“n<:&\27sw6wk 2~B N%P|zCg6/k-/=Cb$~@yoTTL|WIB:ka >*N!}:&TdS$;)8C,+E5(]Qw ܷ~0#A$sl>eѾ %qDn(-9үs\ZlH.$D.Fb"n uO6 ˷v]2O{֙-!̦7o%.T2,<%BKA-CWqg ,IF9F6TX3{>Hz5٥k(2Fјb+C ؄%${iL1 ײA?ؖ]/L"0+e t03Fts^GMk췩&E?IDYY狏Z`Kŭ,Ӳ\n }%W Ky p!;OP z- +EzZEF?5'Ӟ"h{$+bazPvT-b \i!NT0=6%WBCH#]R6NT5}?JLDD5yc5 Zo{Wg8x{QALIʐdl  =l) ~0nXlIa u_/Ҫ !O mgxr>$#cݭ47c>WFfm5t@F0PdE%rݪ%״e_17 x萖]_5/PҁN0IY$6o^_ ?-dž*{)+;[B:Hq͓W"Ϯ!D"墾V1'qkrB c!s,CAč /SGvм":Al#? ʳj/gm6M'˨&)y(V@gޚT'1KZ@QwB]s]6u6Ff-x{ۇxËARbFM7;ׂH'?RJ WQDPUbU |^'ZP۸Q=9\Zc+.>6F|1ɠBJy';jnzrr="I%lJюCfxE|aP>>d9z~( g{Cw[Юt家DLl#]QΦmRJyƄ.">֢44' )#˘' 5@7Ϣ e1$1N/cmCC i|\R+=s6 1:P4`"ʆXOJ2k7ɉl]jBT+)##p7K+7GYQCC7~blGJhxB;Ji;/UIM X"BL;!jhr;w`2qaasv^|>QS\‚iH&,`/fv椿H8wpD}ȏf (y4|4 XYnR¬fDmWm y3wSpWE2QW;R^~pw;qb[q9 _0 t%k=$?/-$u+4Zn%&=-fٽ{7ca?3w-tk|]:+pR4xhY56 Or,GYˋ9O!,Ś#4Mp^٫Ǫd#aBIe{ =pVYh[7epiӏ\. buB Y옒A8;s;qq[qWD\ vNhKJ+="Ŀ>7|G Nn<7ode%vֺ#=߃RR>4sH7AAH;TeHuGLŒ?fcshSQj>\Zڔb6!#2~L{-2pڏ!CL;xx347ȲZ?:Ӓ1?B˳8[7K,#L}?@kbPK pN1J-55(nuvola/32x32/actions/laptop_nocharge.pngUT @jnAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,$f1 ?~_ݸlӧ_=>} > l B.<АtQQ+!!^mY&&f?~ŋZ/^>lٽ{7^~ گ2 񹰶vQEEEIo?1ٙ_~gçO?p5{xT>9 ''{*;;+æMG.^ +×/>O ,, /":uj[# PHOhWP@|;Ͽ|vׯ G|``fv?cPQQ"7HJ3ܿdd?1!d~p3p( ' ʖ~pT)" n*?~o`ЃA G03@  KB@011}L'@c@^Ѐ; 4w@ h@pЀ; 4w@1)1 4A-,H9++;P_! @x~~ۏ@ S` d,[L+P˧{ 9  8㧑jj @K8ZI /_2;I .zyj"1 F+˙'';] ӷo_<ӧ{o*02ym3b1@ x601'IENDB`PK }oN1& & %nuvola/32x32/actions/laptop_power.pngUT >jnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X9(ebf*(-??_կ߿Psrr/X?$#_|/3v~ gÞ35Y< | ߁~eïax/=~?>-@G}aff" /p&;3ع8xxy889DEׯo޼{Vօ \tq_nr@1"Qr\@lov`dp012𰲱 rqrrssKK HI(++)((0HCon޼vGm۔`D@s###HOPЯ_@|&66VN߿U%$u5===Ԕ+3̙3ǏU:} Bqo4cd`ccZ?t.``d$0P{=_uB32A E/YȂܥK'vJ6󓁉 l9+++;;sppŀ^ggcd'(!/!/+Ϡg|~Ҥ[޾}󟃃#+0DC~A)@!Dem+ a%̣@?~bgcy -# \ "~›GA+yx-=#5M=fA!NN`S0~߹Wlf021cĀj9 }dv1Ë䋈Z2||7߿)׋__ⷁ +031ffY-8.gPf`tᾈ b r`۷ oa8sXI}! ,3Ïo޾Óv>C<'YoeALݜPh1 I rPa`naF/[W30qr1݇ ۍl'@8/mot\w{'`8+;ÿ lܬ BO9dS> O>1HZy0p0*f|! o/_?1}ƍ5d;.Д<)o224bo;9#DD 43|V0psLJwg`b`beG?`?|;Z93~}wŏGhǃvJ|x10,;uk66~?>"%ϻC:0jAaV6#]d_~bL ,L2s ͕lnn@+;y|dZvןl24,*23|+)03ܿ}}ɻXrrr3 @3o~xW;RT;0z߿30lPw+L,/V`5}%(}`(,Ԟq7`Xc2-&V6.n^`pr13lVd:a `uA@0rbb *(v@wh4w@  aTIENDB`PKt91xF K nuvola/32x32/actions/ledblue.pngUT gUAfPQux ViTSY pI!@B1BPĢTPՊdH @p%Z=*@K jE- ˃ Y̜1f9S.`fC(y(Tp^?5oș BԽy57.;#7?eo: ܙΎ&%3Ә'&1 TQQAu HS@P~) OW\ -Aŵ;junSG^gQ^莂 8Wtf~n>`yDHABO['Za sG}fo}`4 +3) 7 @vl Me a}u@~ڲ!u_BO^<^ y'CyDIMIHϿXVCS=tť*#v,v]=b+=O]ӟX8:Ax;%#K,DK2nֳܿyGp|G@A` \'g5]in/ɏGfa82pbS}@UWHb{XAxi/.9 %m(0_F`cJupH、?āX[ZFM2o-P5Rw-lBUQ/B+46ƦMYtKy- НBA>Lg ^T[VUgyI d*~lalڀٰ9Nl>u:IĈT0ҕ[G/_el3ے@p)*Bx*۷2TV-JyۅdpruC;HDqU yEMdL)^5t,m,{_'(V2d*N͡9:g(lPpjVET6#M6QxB1X:N1kfzˎ9' JNɩ$FRs&ZE?u$f'g~"&i(/4@dC:`.B of "$AY2aC]{{f/p0 ZH ގO $H}G 3JX܂1B ~b'VlU8!dK]I$aڞD.W0!M保O8X> <#4 D32w6"ē6ep !ubU+rdK};rŲR0⾬ӗؠ! 1 4RbbC^jq5o%Sl| /lȪomx- Va{uS?<94$H'ca并nt"ŏlª=a+#WSA\aLnuI/R"X%m_Y{VZ×jcQ1WbVlѧ;6`7Quv/Zs,YP?O$_G4SG#9%BFS*PsP%p%$“YokA|Wo-0eGƊjp+y%ELY8(oJmr!'JsNWY1dDON,+IBs fUP̓Jzӵ#\d(I{Mn {4OJgyKm-LsG|3HG?s'JV?}rYk4sRYwO64c[NFm}sb^Kݣ]1vyA̗A Й`B .^hmkfR ŵ՟CQd˷*$ ΐARB:YZ9*&EZI_Vlj WF5lf9E*`#({VUnT`#fL:*Up0 :60'VY$~ԉ5TDOfõTCaDygsᡍaҭ"[ {?QCvF8/}D]b&V֢L.[l5S *jJXBx!llŗ5%&aXMuT+;rfK,k+Я|9]*v^0 }$b9Jy$d9/zFBi9jf`/q=TP֩R4lWLS'R"e6fɔ/-@ۇ,=ϼ]켉i}u޽>O/p'l8I={>DqW!lK~gl?C&a;',~v9@UObAg6gJ>(_Ġϣ똨3 -2ݲ_I'\Bۯnhv/vVn<iފNF^̼z=8ShK/89)dʜq]c^mŰ蘟W!kX9 \A90y.f܊/<GUOӖ= ݞdprbq-`uF42H_s;WwR>T)viRxT~. wP}@^ #󢱞'͸hϣ$njiӷdyȅٺEWʎzokaeF 67-" 2Np{~,xܫ~)o55/ H|9J5_ !N:?kiK'oI=iVew<&N|h{𻞑n3_ ňlۆ@66G#ݦ$9Nz&k=1\6+tv +9} .U!HpNx8')c{Vǀ'I-)$vTEA.UiZ\GGX/ u64zG=F"b@",JOzҎ")*"[\>}gf˚^,&{ EXW:bއR xًB[DE&vX>:[`ݩSAiuFtV7L' $ygFR6; t6ali QtOW0J[~W۝PCIH=cԳ.a>1iTѮ!F6l_Dw&"c˓*6#-zs,?uyUwuoD mqlUxb6N8p#Яgc MI<&Gqe{q;rVa n1d<$ߊ>2E\^gZt:INI+k|LBAy_cY{K2ھUwG]AW "\ oATWP_RY \uYݢSxT17JS=7DZ;Cq&9n 7BoSRDU$"Q5њiV\PU-<pK. 4P)IOMbJa%JLʆ.\U V_~Yŀ;X+psK^k"O. Pv4 |Aڀf2`|(0fjeD:: T/# ck7~)}! 8‡F'c#K=sʤfʄX82z*X@wneչx^VPKzoN1W<E%nuvola/32x32/actions/ledlightblue.pngUT 8jnAcPQux %VkTx RG,YU Qf洌1K@ASi&567L2oPilLV/) |i~s>gu)hc計 R ,ڒX&URSr#ٹ?d rsVZOM'iy9]uyvdg HL_!؇@,wA IM zi91hKod\hNHdXQ3;" UXELCBND.4MxAjO}H%I$itGy}U_>64[M=XǼJC}.W+e=[W=@p Zi ι.Ŀ1!_t''H- ~L_\(INHp|E< 3@fؖh3~[|VJaPѝ&XweG SIP MϳqO3tݘ B}'cUxjOv@(A7J&39#!J[ʈ⵴¢(@hQB)-d19<6T,*iώo<@<@3/$@ؓ' ’ 42[T'X2,j& x;6}^m1I+%Q2ņjQ'HY}`#EJZA a6v q}vtt>0`_Suv:igV% \~6 xwT1TRC$br:1z, kK(|75(ˁu<9tPA}ء5y=G9j}BԇΗTPzi4p:&R MǬj '}^2_XƒJ*h 0^;YWȶ"X*&qR?t}$!F9DB]:NX y(ɉ |~9-CI17ٻk*d!ZmR2|Ǭ'vfBiۂ!(H8B} Fg) Y.v#Z9g:JEQ)%(veO>RobB7>Ǘ0[ίwf"D %ZvAfeO˔R+x "oc#C\ΜwwZ&O^*PWX !j`fMCkXgc$%qUhJ?A,U-k 7qSՅ3*/| <ǿ$YsΚzwYTݰpcV,V&{W52sV8LVhz||Q@}# 2DH @x t9.s nw':de/n]~wI4,=տw4'#˛}y ;!H >hP.:\ P&"9ahmPXQKz*M{I'8&)˖} 'UtsG74-%҃x 'wՀNGnl@;9;f&39ngy p`sg焮QN9|;]~j‹vOYh}yLIj&Δ?)*b"IbJ] ͻnkgZ[D="c8k蓼k&aKr%?hPKyoN1)|0&nuvola/32x32/actions/ledlightgreen.pngUT 6jnAfPQux %yT'$HCI`QA` Ȣ("VX!IbŨ jID(ʢUZOk1Z" K Qh ~sw~ͱo Э3ʝ-8=::#dI UK9~ffJٶ/)%M| JȍV,Iܚ(N8!1hg"B3x!ʀ8` |ςϕ[4KӢFDhʷa>KS/AK k3.J Sskխ[ .F ˮ#̬r4ZeӃH|7$D2wP~|PTMiQlqNP⒞~c8_l@Z!1LW\_j0tUV%Li(fbFsa%x{/8 sl$54n"-.?.Q߬m0lS3LRJ6E.v585:~R}pHI:BWZBDK֌X̘t.Vr,0yj!16gbLPoǟV;SGƘ0yO|B^woc5c+,u^n}Fw.u8r%oLルx4_"NWt'QK'qb3q)/'BD4$ڌ4uWAK?o)AkXVir"R ?=We#k 5 fjo;*?xj[tv;O`E DVRB!2M:|=''㞿,M67% ـk)AQNtQQ1"=XׅI8AEQؖFR TQm3 vzzb|/E9 8">.MQ?ƫޡ;M[%8FAa|g@SPqx׶[W2#B=l4@_W*t\ړ6oAן ݕ!X7֕ぎ ,NMB%ɪnmBexJF?'ecM1'?c~' E{^7}/oﲢlNe*-ʃpGcW5^Z8!Sۦ`&mdMrDMk;Ajܸ%Ww7t,NT\=p3+@/7HsQv!=_X],GE_ȞLI9%t>xMO)X;.D3{>3FtMm)=;_ h>(3K3$Lκ{Xe5q}(k ؜Y,EԻ C8'QbKeò Kt?B{Xuk Xi!Z`k{w 3 vShY(PKwoN1IL"nuvola/32x32/actions/ledorange.pngUT 2jnAcPQux %ViTS~Yx H /$05 A&wT".B; ĖV=u5AP )B"R ,Ikq=wBTe6Pol#|%cp}U[KHeBLJ8I % QR#XiT,9qCH7 e0~ DEA@p-׈I- YB2S bX:hGk⚆^;L%gLwFa*}dhZdgKqr0O_Uc 5V}z2uu8l(d}\aέi5pajGpx_ST0`Zwe 궣Z ǵYy]9ӫ`ZT\d\{ncb}X!7J ]у߶7 |#7!c ߢN6;zLFH ޾uKwJv_/4`xW_G$wBD<%{*F=Z6Ze@ )3 Ţ$߁'}|Мq ۔.o` 12;g,07T^yq-B[@݆ѸDKpY&M!YȾa s#5u?hfTvU)ݙi{ "5C}((G͟SM| ^QD8b ]% b%Yc|sBU5+[hF%X9I˚}֗N0 VfJezcp6GoأO22+s5D`o.xd&?6r!T)cuPJ-] P;A*zň_$?+<.zעKXZ'bGh F .!y Mc3}tW\8ɴұ mx8</;AuO8#E\ ai5qRG^=]( //8.؏ÓgZ]UXwxP)JEurZyKrGQD(C?,[Z?>gr7AsX[Z/U+{H=L,8v=ުO=[D Z}#&JL /sNrWj]>uLMj&XVQ#@w#{Ը=S bd$ߟ#ɦÝ ݱ/592uOg2natvMp$wHYes%akN7Dxw.8dYLG ۨlZ^{?8[+̈́qz8ws:mD>?Π&}nZ"kzVkZ_ɁDӈkIuJZv&ti8RXkB!޳4Yn0[& *{I#}0ӆ9{n_m`q,5='dUY@3$؋sWΡ< 4bP:貂OX6zxF8k[Ou&f5SN8=J]}>͘GԀW׀ /\у垳!z19u,5e@8"D2_q]B,37<veYxZ-^bNz`Lr؄iwxs!!b.<=U{Iw:sv>/v;3y{v>|g 8͋[,Rv5:rdW44dfpѶ2OM?%m.yia?At&K]<{E1p2E»uI6\X`vş{ݦ)>QD_Qwp6v蘧";n{挺pK (׬]tSee'\:hwe_H5U$:+]6wU-jI <ᒾHϘh-bL'@>+;}(]KJ$>#2]h}޴Qv6sCl=%VAP[l=ύLglb;S6wE{LL! * j"{}5c)XR28V ?9k } bB2S07jht=/QF>98QśA!4lʴ#S6=)N;{? +ƱL?|%} M7HM[q0 @P@> 0R>`R YDCD+rFZAGwc3kj8aIx - hqqnyGWAI7ۢoRuNT=wm C++_Ʀ iTH,Qe0f8J' -v]aԝQ`C6]-'$ܝ ٥pxxd.uP:Q( ϱZ/͑KiȂqq_i1z;|yJqrW ?:}]y:76ۨž|>;)7U$I^(TUu2]B"CO܇ʚ}++ڶE/OT\Dh!Kw5} +%@@Tcfpx8}GNX* zg~PKmoN1ʣnuvola/32x32/actions/ledred.pngUT jnAdPQux -UiTSi^^6 a5< H EyM]҈H{PŐ6q؊AmKshqnAb܅("JH&3?Sܺuo}W-,sFl'͉h$UksrKL";Ҥ1ҤNi0XdC rDZDa KA>)Űr8p*kPf^$@3wZPQ_AV7إY4koI)Uf cDWBԘPܵ]vZP3;0'Ň:{fќiD^oxaBµʩW?ra9 s==^%'F`Dn\}K[{Uff}J )j!g 4ux9l-d4̮HF@@,H59sli!E=<7Eq{ܽS VzfnT sݾ+߆=-`ݩ@߷bV\Ԧ|tV=øڛ>o{_mK`\>ZE l'Qbp4}UBQ.RnA?ً7ِ_ZW'wc* \D6ʃvzGfI_Ix4D/œCK'E(8fe[/X{׊ 'Aﺎ^7wW!¾x=gI<׺*kd;zC"`oD(s$¶Af}VvDA͡.tfc3:D C=san=|q`HͿX|#V8C^ SH~mz~Z "OiwN.vUFp^8$/RJ8Ƴ"O\Ҋn~ڧ+[M7|~6~+d;]V8VbUYyݔ};ᰅ,"< ro2(ÞSu"o5}<YSC'DJƒ.Ħ[Ui'VBdA҇ =5I_ DfU3ZV"ː@kjM~XEf5UWrEVqMѾGz4x/}ܣܵLr0H#$ Jwmɋ"_c dZClȋks 뜩$ə2(JE\"'DouP}O?G?ˇ;exאwGf3lE#H&>V^BU$,A<:¢PZrXK3hp ع0#&UM-ZΝ||fCsu㉟q&]dqI%+:9bb<0+C eIS~>z\CYob-؋B{{/o5@Ww7#~VY~G^9$8օ޿?lP,wbvO'6[Sp@^g@}X #և_ŋPK koN1 "nuvola/32x32/actions/ledyellow.pngUT jnAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?@bb`@,0Fbcc``ee``ff`70;O z߿1uH3kF&, W i3!B+/C_ Vll² <" @~|EWo3|3Y322!d6@r $ĵ|5b8tRhJ2pU׏uzv#3zfBC\#,b} x dr94Pg``Ar_  ? ~ewj&5s>!([< @O<Z bFe@˅ Բh/810r1Xg0W0k(ΰ (-_ ?߿Jh2pe@-7 v*{n.  ? @Y]D j(ߑ0[6^IKa&?fِ@(&8մ89>@4h a>1gq`F10"; 3ЅyB" 2@|}t+g! ]Y *ܠNJp PJVq _AGb~AېhPf)@`pbfЭXӂ&0XCX@}{Կ`%2ryY?T*1 f1d>0 !ԒPIʁHu H q/(&Ο R " ^~ԁY @,Hx1Vΰ}c/0.* AC@P-4RA@? @p0s%AB 0/q#8/ p@80{LĽ,ds ~dm LQ-%y&FdQB8l* jw do9P)A$DF fJL< & @p1  gsA1#XhQͺ@}Ln9 '  ߕo_0%)as1'8\ĂËAzf/@ vzۧz٠D4/T L='ıddxH7Y!e?3\ɇ,uF 4 a.| ׎f'`?0ɭ .K"3 5 h熪aV7d}Jks ~a '׿dI!E I c[Y`{qrm@pZ@_?}`_ ;)DC-B_ 1#+;C*Ԃ#`"Iw]>CB?4e3R`AgS _b`b G puLs1߿t .^AHͯF// n3opșb˰Y@{^)h0h2j K[A} `t /34Ќt 3vw. J1I3J;&1}ݓ{"P|`>hO|V1=?;a)0A|x:@B #)0\@|6#q{4cio -VIENDB`PKhoN17ð' 3 nuvola/32x32/actions/lock.pngUT jnAdPQux ViXdÂHj4& n""ţpHUPl.b9* VRVm+$P*(F,A$dK1gfw&/|:W"x'hJR<;俙)!Q)[R҅c8IZO%V(b^=v UUtIIf/icMwY,Z3?D;ns-*.Ї)W@L87ԗ *Q1ryd/H/"S ò??ڹ6] E1tXTI;^Z`XiCoOPmn0N8j$8cK\T˱rBUiYc&P=-)J_pC: ]E!G士p'⸝ ^LlvUs5]nE !N0-ƞ盠KSbO05>fpnlʨ#3 q-vu49 KX|V[Wޞ/'N~j-3FV XoD1j u!eK/v!ȠPc Id5bH/ЩĎ[td8hif;z%J$w.ZwSbb8x6˶% ^]/>jxdMyq&w=b6贊lvg/W4d^yQ'iƛx` ٰ'ؠt" }ڝYo}(ͳ{U-)IھkaPf%(,~<di>O-Tf [_t26,:4ֿf? S㝌54NH #*b;Z n`#p9}Wm&%9reg)|:xʪh/45- 1jo\/4MJ$hgtA*/b$u& m`L3)IIg uFR5BJ}ww;;\?\NKbKTw^]^j]cBȉuW6\J$KMbS,vܓч/N}?>dc5PKkN1= $nuvola/32x32/actions/mail_delete.pngUT cnAfPQux V{8Ӌfn_pfkd:,r" TG컙M!ɥ]XHǞn*ȥi:h!Cdno~~|9|o 99=P|n&iq7bqŽMKe 0 h®x6?zO4 殻|0]0lD@ GJQ%0̌pa16`BE ;#W^=97)yzz~̴5cm&yZ2jCBX?0;lg=d\xQW`'Kƺ @XDcK,zܒuHJ/~ JS(Oxܦ1s ^4l7:"@}79y~fqh-;ؚ.T߷嬳ui>0$2("%uA,83%)¹+@0vLGwZBwh OXd`-g;[Zޏ 5Zt,ZuFyfdGď1ux뇑( @RbYxHYx]*mHW9NA!!o"L^9Z'%&Ak TvGVhSL[L gw8ZynJIu5(!yA )T~}p j[.V66#"%+.^+ m(J ڇB43X%bzz(q2>Y+M+wI]&[j7KH-$ /'YkvWZ[y,*0XQ4}6QqrM 6ᓨϘ/XqO dž:XfYWb;=ҩ4f{[Ң14:uWu񒓭9@33Rwr޳c/ nH da˺-ˋ&2;5f'ح< ˺<TQ BqٞU~R<0qXt2y&ri1:ۣ׺4\w~Q6j`Zjݘ^t{_,x w""Y!pÅ&B"wrDEZ_O.Y٦ub(bW9 ǩ>+U"Շ:c/d#f:)vBy'_fBl[dėWv"rۆhAv&z>UJڣ׹~CIQWw &xw69F%C9YUȅvܫ$lvF,fQHȣwg1Gt0-P4PPѩy"%+p{*%T<)HL'k'^̉7Zm4w$ϯO``%%Sڪ6G*Vė oI$p`ۡ#/ /PL-nA*{@NѨ/ cj(_7#X)\"ʑpX_q Ѓ"hcw3ŭPxX,PNj*_p^{#u #Ea"?z*{$LH7I@l%[Eu k-'ΑI[S[̑]O3^L 'Ipf7܆ wK7jnx4؀[y \Ͽ6)ޙlU*jf]wiKqcL/ofQP\NPS;+6b%L)M/gO5=qʢGK#DmsO/}HORCmAh?,ʣsjxϲٶv<-A} hX,܈zD#eepS?xkL<1sz&}j!Ouzm^ ,*xrS1aGCмZ<~Nԁ3 Z8JqB[PUvֿ%mZ 'N2 +ȗ/vNi&&vhB"P6Ʊ)' E-VRd-66v b`8;O`b`ǀq'/zH ?˯_ED| Us00|| | ,,, {cpTg:0'`j`l*\fbB 9ׯ^ ̙r Ү& z "L ?e8(ÿodf7ÿ?_Q؁# ںv F ?:?鰒;wP#@!;ڡ2f)PAh1++0~?yz= * 2\{_OCM'0xz?\p3x> j l ~)é{ -.gbpeaG`4 % Wd8Ex;ưe CXh0ʀiۄi'Of#/#4) "1a˶ 9Tde$$8ĸŠgp+P0I={\31J12K29ǯ W/`Ǡ`cˠoնI?>  ٟ)-.Ͱz)O3-`eȪ`x7Ë>So&O~WCQB | vm`;Y`a-! J`{̫nzbl)F,?É+d5~dg??,@5@7/ t(I)1|hpO_2(ȉ3881   Y_zf~+, ?D922c&:V? "L  ğ~20|:TwI32p00213<|pTh108{sIy02@ϟţ <'#Чq&bXh(hO z"ґ ?fbeg; Pff_}w- C r_`3 A.H!y U 3A9@"JIsv ~2Z˃{'6| X* @''Snvu0d ,3K \,(A؀Y@i#`PM|}t~1++?B V;R67>em7Ls X؀Xpi(0p *tP\23A H[n Pl9)@L3fcc]~❋|W2 wo]gh/8CA|VAo_΅nߜ(~)i+N^'>|O};;KY[gara_Xr*o~ M2`YkogOOr/_s BË*9@vbul`qx ,?fɅ h蘳s_?Vywƽ;J@8s/vIENDB`PKAlN1   %nuvola/32x32/actions/mail_forward.pngUT *dnAcPQux V}< 'KŦ0I^ltB"l*KRPt3r宻#]%],bYo%45{n|?~?<%Q`#8ڂk'NM3S'NLNr"vFsٜ㏹[ZX0so߉&\ 1 V+]"MB6B4FT[p@̢<b˱rm-Yo&LZ &V9s~)g;Mu)fnrßA3*Vh6`zwזT߸_n[&|@gXQEq֙#uq[Z Rvp\IT?,y220@2mB|"Q*+ֺkDMg(( {Nۈn`Y K`Lb]Jh#֯GAVY]$vʚ$] f-0D|NWUu÷qݵC+ Y 0ܟ [°6B3 nG¥KγpæwCB̻Ӑecb - df3o V>!ҪܝI5mf8f>P qAo7F۝EA)\T߽j_x0oNFxOx: uܣe+Gxz`Tư!;6b}ߙ+ͦg7"6ނHFmXXL\:rG#fdV74odV +Q5u婝[Ov!LRm7Z٬6CPv-::;0:"+[u jt, /<ﷸ7GpxN;Ӊj'z}?2-;0[tJtmRO;LPD"pxFi#6lGwxvXة@>3N&WrӃ}P\.d!AHӤܢ5 rݕ{L)Iv.u^{xk).876 QA쁟vZSb)@s0iζ=\I>OzeNrmG.A%c3F0[\ޠ_󔼌9-F2 zUeIFJ9 dE1m8 8l\'euX/XhPWqgfRUщFpEuJ78j%XUz)0 y1_㎰jM8R.-U,{56*%dAz+UW3LҖ釟 uV7/CH+0=~=#&r DH^=p\[I༏:8;M!>⥞iٰzh hj՞%Z*2ohĎ)BxH6G^|Hcɢ+t_z3BG_ۄs<#uڋfa_Qx"b"a? b Y 1 wxdr㋆c#ׯt;en IċeBe?? Qe,=Ŵu:]FydV<]őTt9 j7$Fj?^#gd  %]2]F,mB:ʕA`! FgMVW.ou sI1ٳv_f=G&f5Ԭ8| i}zsC7f8[:{9MmQuaeM"62TJ Bm/JWDPK΍N1gb i %nuvola/32x32/actions/mail_generic.pngUT TnAfPQux {\ǿE_)8 ̖Țxiʼd)f:זw@4uy-V XYZNKJS yy\>$-{6+0g/A_23  F w±$;xť0I1c2~~ j_!F\Nv$(•;~AV`vLC:Sx Q'c/6`:JR^˲9`HV/+rğʺo9 8$4@ÏߗMfb9#D Oe Pft./օ 'ǼE]>wVkk_*K=t=#u`ɨgC$H;pwJ4s-z<X+hzVƒ׬6)3һ(uth~Q}dmۓx6? =6՛q7۷" ܓ2Bwjwm˂`aal.-)$vV [ 56y"pt(vO69/[7ᦾi?W(['GoB:Υ-{-} l؍r졪Dz=4;y~x\ lR6wIשl1vs hz۳azX|q͚ZbȞ4j?ۑv"#q_0FގPtӟJYv>i'c,]ܚ{?Ku.yOe1e]/7@UW8rC Yes#ͫ^s|_i%\:~0b7$/տ/͘qvSYt+K Ś\> HrJ5V1L6\9AfD> QN3tY}(F;!g+g7gAʇ'ܖGvhGG;4Wɏ +|qֺ[cuP o\;q?kA*Ԟ $a#L˽ n%葧Uct=^ GMrS(v6^n }3"B%?%(1QB(9) &2YIt,zOp̈Y0.WL)E,[8rbT3"Fgc_tm\ML֞[6ka?'ĵE9%RRY7r|mC9X6<|H@]򼖐(uaa5r WeʊC 0M7XئH^F^ha[>WK;0cUb; TuݎjE m|l-Jqs3'u~dQ3m\1 AV|)Bk6]o̳`Pa\yV"4UjP} ,o45mɞ"=Τd/(udr[nH>} lYEuhZ0w;Վ ]Y+J3cگRӖ 5Sx´-n[Ikۙ~LfBVLo(wˡf,̲yw|nṵ-iϟ8P)UfQ6i=0Fr:?z,=F<0 L#cIoE-:ĩ^^^l{يuOD Sf(H'Jv1Zr5H= L 8]ȪmBcnZΫ!U0O`J53⧗L#paCOSDZˢOj,; #޸V\ǓzY~J뙹@R 0d`6fí";7=?PK5lN1> !nuvola/32x32/actions/mail_get.pngUT dnAgPQux V{< ~l1ʖ*_*Z:D$t@Ĩ7P؞deWz5rHRdH9)>}_s|/oI\'NZNtfbր=Vl8 'yE"YaIǛ]KrgMwq,bfxQ#wtm[Òw~>@_lqgG9욎0znm,73FfD`<1¨>婧%i3hWR.wQul>w!vrhJP`5zԻbM7NCFo9LT s:*pgS܄ Ff8p, 鶑paz_BE _Ny.Tvz$A럙E_c9T} ~t9'[_-=`HVh5-"^,@C]䠘 &+i~{g=723; UCTQ ʗxOOF\MQ޻w1 gW{:C. lRZ^_y)K ZoiB٨FK )4S'oڰVhJb:Z@(DYk="T~MK]O,Sr+UH&Ekm;(6UCKO1Gr& = BYF݌+߳deqڃjbfY,Hb1d{,K3S5I`T3l2-jg^LNWƶ/B 1Ӊ|JVË$&QшzЇ@n^n&nªyĦQ|ߙ=[̹AjsC縶VF*C+Uf>a?9ݥP[{ hx7O^քOz8L_ 1x k?!5,4(X&͚/'kTu$~ w8~H̴<%ɯ! EQW9J> ҷ;cw]UR(.%b1 z(baI_<ߟzy}bDY("dJvA:u(Cvdh!&e 1Ew%a֟AR2h <Ibpd3?=7!IXaxU;WXFl-Ƃ˩ hl UԠs }*[ ~7鑴,Jt򟩲`֏u %{q+>[=V72LDmAcEi83͟˅s`ؗ/x.o }T7!}RtZ"Pl}WaQ^6ema1&-buB3FK1g̐߀/h f@EWvU%U70 BY|^_ЛǾ) ˃Muƌtޜ4ԎȱXrcTfRqb0dj^PjmG,$&(Q?|4>Гxv5r "V=zo&mꄒw_IcNvwuyQVz:8P!8\HDSB"|gf]~$%]oYVis TF:nM ^}|ڥ:'0.@`0/@eKe1S$ t yKNΫ<>@`h1wK y^!r J'3@v@ #7H #Y06Դ,@ZČ ?[Iz%(P-Gc$ FXx ?hi?4@,TXb&gr>mlJP?r(L?PK0bprf)`Q%p11";1a>/_?"na|T9f`R?rCs>+FfVpbF_1@` r}򓁉?,?Y) jj L>} v 0F˝ `eeaPTgp!) CO,8y()3ɋoE` 1ŒU21\ӏ`~;v 0/>e 8 _HBYUpdn`ap]'?ׯ-ggg`8u0?0)3@<l៿e?< ` Љ`pv`طóX9 ߿C0A< Ǐ[''-ŌЬ j):?O^^._]-/2x-`j+}G!A.@!AAjİb)W/CAT ׯ?e 3eOTp-gwo` 3Ě1̞} ]g8C| P 3@hc @,=FN,?bb )V ;UZE"o((v#$D;t(ቈ1TV{7l a)P!Jqb7P4R>~QB(DF~?JvFFVO&8v_` 9 P!Z AoPg_8f@BuH?FxbXEfb$ԆV15JĽL06R P2bQ S6 #R,'=;1`/dp!EW9 ?@ ,*۫ 2߰O_?FOHOkj0@BF7uV^;PK $݁W_/yvI@w ጰ +ԏIENDB`PK t911Lj%nuvola/32x32/actions/mail_post_to.pngUT gUAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, $GY@\zT%Л>}|ڥ:'0.@`0/@eKe1S$ t yKNΫ<>@`h1wK y^!r J'3@v@ #7H #Y06Դ,@ZČ ?[Iz%(P-Gc$ FXx ?hi?4@,TXb&gr>mlJP?r(L?PK0bprf)`Q%p11";1a>/_?"na|T9f`R?rCs>+FfVpbF_1@` r}򓁉?,?Y) jj L>} v 0F˝ `eeaPTgp!) CO,8y()3ɋoE` 1ŒU21\ӏ`~;v 0/>e 8 _HBYUpdn`ap]'?ׯ-ggg`8u0?0)3@<l៿e?< ` Љ`pv`طóX9 ߿C0A< Ǐ[''-ŌЬ j):?O^^._]-/2x-`j+}G!A.@!AAjİb)W/CAT ׯ?e 3eOTp-gwo` 3Ě1̞} ]g8C| P 3@hc @,=FN,?bb )V ;UZE"o((v#$D;t(ቈ1TV{7l a)P!Jqb7P4R>~QB(DF~?JvFFVO&8v_` 9 P!Z AoPg_8f@BuH?FxbXEfb$ԆV15JĽL06R P2bQ S6 #R,'=;1`/dp!EW9 ?@ ,*۫ 2߰O_?FOHOkj0@BF7uV^;PK $݁W_/yvI@w ጰ +ԏIENDB`PK 7lN1X, #nuvola/32x32/actions/mail_reply.pngUT dnAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@p _?3\<3 ? jOon//\7(122"lpb/@ׯB~a2߿3߲W9 DX?c 'ɋ"nL({pv6 '뿁&D&(Ugs UF=I q)q˿0p2j0ǼxֱG-`_}Udtl5tu% GDʅ 32330x?Q3m/L8! 1?߿&rppE*[Z0(300M` Œ@g}g4e`BA/勭~~vPb>@t(G?^>`=eassU99nnn`umacvm ( "$10 ]P@C X0?(=+KDLTGO_ARd! ~ !hge`_D.]b󏑁@3g7Tc7',@X!>fa&H32aػ0 r3$N7 BL ֜4}a𜃑Ϲ@mmw !`Ġ*`bbA"*@4W0|A?#aȑa=DlK CºZ )M@=s>}.+߿oN`"ap ׯ 'O|`0F Ӌ86avJ7WPyd/@CX/2Qbp=ãW}~_viB  \ "" 2 'f```PP=(m< Ӷ3,fvpaX{Éa@p1|QO8Ïoo߾3|ǟ |d t 309Ǐ >f=0!%# ۻ2i3Lx1ç7DL߾e`߃K<$107:ڙ-Ða Um ?o3Ww߉/U@X`ZX~ܛ74L )^6&  fd{ B ~~g1_E'}y~ @$ 321[ǖ79ȑ?cn[bWl?>+%]L]'u Ydf PiHeۥN^\,9TJĿJɿ u22ޚ_Ze?y .0(?eϗ0HFapr7eθ7$Whߏ~v_weRP a3g0lrG_< l 5;ky?eabxa : v"*КAμڍ{.]Զ3eؼ#ömx`ӧ'21=)J̐dfq_K32}`8y #.3^ϧ8U ,yҫ[/޾0pat$ՄIK'ՇO ,|@=y@` ~Bχi^^y`Z`fĴ$0p""1_f oڄ̠@ow|4++jNb_Sbof,61rV19Jab`~vP3o`$ @=0Q`S8IENDB`PK@lN1zi &nuvola/32x32/actions/mail_replyall.pngUT (dnAbPQux V{<m9pbo~1}2vNHM79"1^T: EuQQNtLSsYVv m[q?~޽ \ۣd 4Sr^((:26qIH,k4*j{= }]Az̡r͐ѬU0Mڴskw[VԔA]Y}򭈼%)XA6Yflc2'B[vn2M3_|0ZJ<$j".eCj/'ą2Q#k˜ ¢ gyy0ػzeMxǀU'D;[xX6j9k]yS꠽%֜@ Y`&BT I8܎\amνho;4zv/hMfkT/XA@"aSɃ.TԧJh d!s#h >sP r 8rx-N+vKJ8GAQ:nSyx6[@=֒@.b29O^BH&S~>`x$p}-^kA9أ%yvM!:q6ulk̦$;fr2jl#Y<^eHRN ņr9b<.86.S VE~;ub`ԜF`'W;__a{8)D\V֑'K1ͬ#+.|rwM;|*OЈ7:} k%ʉo_7QSX-DT@܈zJoՓ$ld;TM{ۺW˖тw( X$s\s^mwM9FWU6 )_(ラg,i9z7I=\ӌP,0t zF*H^r87B;u!/0GLKK&c,*_Gc49Trbs.c>\:`a3Y[{?#LL9=}>{ :OM?jVM5z,^T*AqL &p[(?GEj>Jl}foɳ/NU۹} [[u=潺d%d4ƺv\sV_v_YBZ%&֛䑏?0|"2) Ng(|E'- @_Sco}9Ta~dtIY)dvKp`Q xv<#X?PK PlN1  "nuvola/32x32/actions/mail_send.pngUT HdnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@p ?&P,,0310220_?zϒ?>e`WbO'IȊZF3t6N?c3eiWWeS}11!_d`Pg`򲔹v8ӗ̌ >fůEB,e59>g8e<<nK ftD ϟ?KruRapuV`P' (?~ ?0I08 .dPaeu,U, f nS"? Ț "enhg# + ~b%BQfn)Ej3|:WaVG#FFf=ĂT~ocg`i! _`~t $ '6_Ŭb30j0C<(a.vn@U?Őal*_=!?~00|, !2 9^>N h9+8QR%ΰs{xλ{0G0U|fJ|v J |`CZΈj)zV߿,&'' "&<008:^QͦBNn_\ l陙|)) | ?B|l " -|Ə?XPQQ(΄`PgҒ#OA !Wj`b033/_`=ý/w} &Vf666v`b`gccPQ`ss[ޛ;p1L bg,$72!>LO>eb;Cr .2c`cXbd`d2el ,9X4+ç ?d0YbAOnt-=M^1S*Pϟ/999DVYǰW7.bSb3ï?_?/`c|ma`ccq,?_UIIe<Ó'OX,TUJW0V&10K2eX`d`Df @i~VI>Yq ˏ!!۷yΖiZYAe/;/[{0ڊ38h2>wço_AKV&I'ZAt%cG庹)(*ȍ,,L ||< 8B^zP83OXB *&`i ,tP oxXp2|yj^\ (_~e?aATTUtTNY fJ O_= J<=pg2XC d^1ewQxb1  !f_~q)%eB h1;1aس!޺w9e̋,L YۢY9?I_X~=Ă 'N(zYYИΰs}_~Լ//{& nXf&H]'8u7 1=F'@0GS϶'~̰mۙϜ8|illX010fwOK?v;7UG.`9;_ g ''ǂGl޲N[S<ܲF`vD܁da# dZ|@)>A0ZY?`|"3bbb㝘'O{oar@1p [''K~f~%@0DD?(p% G$_d9z S@~b`EZ`|n1@q4IENDB`PKHlN1=SEP&nuvola/32x32/actions/make_kdevelop.pngUT 8dnAdPQux VkTRްQP@ÓyCkaOʊj6,uH1|gGͣiuuչ#OӓϴJ2)S)}ǜX?so}Z#wosutu{D>;2~ўO9$.>W;\zo_Om:?Ur0C SEb$>01+o nY1Q@$.e-OȈ lm.@{ 9bSŎe71[W0[3/c4u<5r׽* Q$Pj@|>X";9ΦR7G@o,w@R! 1 @􍲅cЌ:DMY(x'1Lxpֻ]>Z^3屘nȝHb}_T(/OB2Bj-mZ}g cԳנNw`6<{EyH[YJ"}/7ERh)O Gr(s,.%iD@wF=m)[!79uwwUVVizxA8Låt^f8+Rn}_LsЍ[K-7O*5v4V qdB9[oJ(yB>OR1!]H㧐- [WH\޵ҕ7^#,,re55,F +yjV*pg3qk#.*Z±\J#QQ0ܽ+-EP=>z.O0ȭcD#ɳN:wVpf M=7<b+M]2F˷K7eh ${.awR e%T4nS,kRBRIeIsnk;| Fi"Nkk{"8tnTbc՜)N4u;]ڬ\"U5^)BZ^<8K6(\N]MV(;w*= 1hnnf]u_ 3|bX#vilM!$ z7nhe33s\yPU7Ė6炳in/TaV%@e$WcEc?dO!9 lЀhY B{ pF;DAN~m]fJ5quZ@/^|O2M+"DXi(G_'ō+kkCJ~:[ΤquGfɷw JZ"6uDZ"<2w'. "&^Ipcaf;0;NQ}a y %Ϟa%-W/(iTdq /L$ml:ۦ0HA宝-42; (ҒV2@'lW w\{겉z,P&@ 8=}%?#hmy[F\\EIK Ga^,ڡq"b=SAb3 5f]ߞ$F,m^U˕Vv}GIksJ+UaYfC рW$ߟGW9VqGZIyա f6tīKqu/gs| ,u:dͤ1 3k3S4"o~?Ń1ha)V2v ӕ&Cܳ>/n-bُ?&G [vgPK$lN1VIr ,nuvola/32x32/actions/messagebox_critical.pngUT cnAbPQux %i\$oDMX"!زIZE AT(hʢUPU/DI EhQY4e 4~s|9<-[Bdq]1]xc>poc2I &eQcMỶfqpNK.5M u y(t+l ȸ;R)"1Q"nhI8E4HA* e*aQ#h_~лYgy9d}u$>~{z'/:4 )经wle ΑCTG=rʢ`:sEK8-_OUz<)c_0/!ˢS&~d]$lA{TS<'Ʈt}jA` 6.yl7)T̒[&т$Ÿ* Qݛ R:j vU;M_ʁg|u *i71';5@9ߓ/.AӬ9MU1byc_72굶DGe.z+R@꩙f+f6Crm=YTy&'H@F)H1#w$D4l *JwUπ;'?ʎ[^;a~ 'Նֽ adL٧J#ӊ)Cjz+HqtCb}4*Tji`? ìð삞'/-Y:{A'ݍYxݫgNBh}TT{ ]*&EĠ=.y:(p 4bary3ȅumʝm$p 7` >X}y0:zHhyz{JTeq#yڴ}x? dQ*O s~bޖ :{< O@Р8\o;ѠUnyވGf/DZ7[z-2!%$u.,gd%8(fihPvNZw:d'lG1e9;.vNq6Hisw7R&1 My0ˎa,dnRLh&XyeT VjtkKGfs'yE#  zA߳YД"j[RC⣫YwNn/K]exKVkP|,tSq&| 80jiڒOA߻jc j{G:P 48\qQufqµ8_& g+>|NdU:cљ@2^$~ xٷp<-g(>&pzj$ԗ-̟7oBn<;vVj k60)4\~Uf8}ّ%wQBs{7džEe +#.P'zeOyjz`KP1N[oyH췆_inϥ0Kk]FEׂC:#u`^j{ }d2ubcIQfxoeDY&9:s9mےz8I6 2Kj__0iY˧(j ɸWF+ޜ 9Z :N41J9=. l,/0< ,vq+OD8%q(,͜*j ¨_yO,~0=F&T*qHVp_zL%{~2bL.9דB(=gnD8>; f̂JCyr :J=n }S__>ۏ sE-ܰF69Mp?/QvԾ+zĜNQ#m/*ӛz|<2C/O7-һUcKZO|F]U +9(k kl;3^b]"{D7R8+,ǐ^ wJ`jT kki)㧸ܻgVNĻRy7o'p-U]f*l|{ dmȚEhw3JGnfS?5DaB.qo5졸>JO!* ݜ9.BoS<)um| η¬rFj)* Yy{ Ib1MMng;ֵ9a^<<V.9T[yz#t D"f-#P 1n`?@9 XKPKeoN1=  (nuvola/32x32/actions/messagebox_info.pngUT jnAdPQux -VkTSWMn\$$7&"Є yXj-(բAAW&D# -(کVPĆ(( %$wbg~o[{OwG[=!?ztOp;xwϛ^ M&-(2IsĹ9[sG>Y ۊ$N x "']`2\a=N3mۨłlv3B= ?1! 2lOF;T (>[~qbz˘U*2I)ظFhmLym99tleS8OZ+`-c {/tl9 h ÌhVǜ2tRt̔b(9U r>^KQ:YZuY2Ͷ5*ʌcQv`TXҠ{yǫ]V4o=q'Ɉđ%vI/7UX/ ns޸;ȓ!$E>AB:*EsDᄲ:*'3_1Į0`b8њ6E+r&vO 1"'/b~Q\wmGiDǏ/6eݸ(R+~'DV[?o8?iFv(tJ^ c^,^|/(\`&"FlUr\b"˟IUMdҪRf53 Y!.{/GkĢfj(|ק,NMk֓J*ݿPIҳ80&X+?n}ۋV)?uJY_oݝmƎ.p;7 t0Hœݺ{5gOgZW?ӤC7?uӰ,+hV(=+{֨WXqXN=6Q F|財}\G>`$4$"ӒR m=AZHNEFOa0텊Ur=@L M:SZv4)׎qvxXIN] ՃElfg &|^?6>U݀BdKUO^(۶͸(ϯA A$"EH~3 Fdnk뼜$`^@kM $ :W넊#t]Uo %ٚ6DX 2כeґi6SjؠQ5qGw[m̶M@<'Nۢo¬uV)MFs8pO#s#3w&0NHubvV6;wLme% 'D*U=98 M$Xb;k1qNVl,޺ԍe2l#s %Q~,\kdt,3 y(0~{XZK|Z]%yQto9zx &B V*Ew7FhZ!2@*t `Gsӣc E8 6EYJ\@Am,R/!>`"zMڇdLÉg5\f2DSF V(c/yMM 4+ fH[>+ׄn[ J$ݔ~՘q5 _5 67"o)PRRRAI俚ñedWjP 0_sLc%k0hayʥ%$`?&aS܆WM7.KeyH(,p,qR_拏+ F){"KKK8hh*?G-><[:ĮXZH|Q4 =aB炏8qΡ)oCԟ1C!cF3ӺK}ȫ4ֱ6bO'aέj*PY@iUT@)Bo<]vb4*&p/nFNצw@I>$pB| ~ّ^~MGR1|}1sIPJh#3m)O&*УMvz2+PV_8ށM;A$F #!$LÓ' WA^Um][C@G_RѵΙz-U OWox;;oX DwpJL&y3JАi865<њCwu^#=C*qjhk;(8ʇ'@S "rH[٫)CQ" b)K6]ufݐR,mU(<$l)Syw$˅":nH.wl߶tl4;T'=(}I8tNQ$-#ީoݻ>ٛ?huLq?代GtSPēs##MZzvwóOa >O,J^  ۑ\*c߾SB/^!eifBA}ʊ_YtRyj^M 96̓}Br j-uCv5[[ރOfd!iɄvٶtաWd_t3a@ jpzFzzS|>ÿ`!:C14IvuvX8=2 X`>xos28H&ҕi;5-6rNف*2-oN4)ҕaՔ_1uu vBJGO2n чaz| ]xњs;N⴫W՗2҃{3 ږsz:Mkl48ޟAA&ѥo0muъL>Bdj)>ouÊBחh[𲖄Wx5^',BiZuv ٩wڠaL&-%\~*];ʞi&R~~IkNM1{"x3 8'Y7 > -)qp#xIxBE*& Lsz{Gږ>wUQǵimk!3Ǧ! UٮJ[P@7(gCI^uDtO`F6Rdn/¬w %C4/Uds4:4-[Fu%ܛ7ngf?nZ4].~USEylB]QM0N .F4O# O,RݘmBbXXl 6nSTJiٓ-hJkZc]@j:ZE8$u0#')R ^Ϟ,X7JTS̰1;wc'UVH]Tg?[pٚPYrk3P!f[a?ɦVQG?a͓kƇB+[]x5.}=DZ~gx.=GYxE1~}54g0g?TXWbYk13H8:kMb `->{o( ? DDcÝ1'+ƪaГ czu<[yʹߑxPK pN1BN!nuvola/32x32/actions/mix_midi.pngUT hknAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; c022z V?T2؀A{ ĵw @O6mqqqgg/srr;::j̙`= q3f,VPP𿾾?г7`ٳ?hjj5`͛`SG = q0ٳgEDDbLLL_`V"_\6NI1? ]9A"DNU7ߝ0oحgH [M `Ka.c+IA09兛]d)???0))) [d5`111HKK=SLS o߾En8 GDG< n rrr W+** v (8@VVE A08Z9@^^: y111>@s%* ,!666CC"߿; `cx9 =lQ@X_a6v6gϞVVVfx)r ÂR~|E 57#M&9 T{\$˔~ O&RVƚZt$9;I9\#@L O\\ff f)n89@E%<̶`w2/0_ϟ( xyrrp@Y@?BW?߾ VQ}{@%{ĂH 8~B/vwG8@DWHD @cfԲ2AR20@¨?.L,`s@8o"@ꀿ4r0W6?@u0~F C>0|E(8@1‚X@81124JNh&mP`f,< @h[4w@ h`>IENDB`PK "kN1 H7#nuvola/32x32/actions/mix_recmon.pngUT bnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; 4 ZFF01#T P$ό$1@!aBbb`pge` #?*jkt &zo 2**'r̉_]H@r`t``HtKHIMeWScx}ÿ n@x98\DML@ٟ?3 aefγsve#NNbρ>6R: z 0<80 5| L`Z@\aȓ1÷ohfd ȒbeMs3¿@bp߿ @,h,'0cxXXj݅exyx3Ĵ0$ij?09[KJ:Yb1(e[P`o BOJYEIWHU@,Dij0O:qkIJ2Ǐp8 -0 $ͅLȧ%Skd@,h("˛cemhijȨ  ak[[CkGG!11 J\̌ Ar0 jAeEP!°RX81@PYK.8Xc1&1,XAT0 S>_ AY-4[?grb4O @5Œſ2nP Bhhb$X60s X A)`gq;&4mBpЀ; 4w@+j IENDB`PK kN1ma$nuvola/32x32/actions/mix_unknown.pngUT  bnAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb?@b@6@,ďx3OD$- 4 03P?&@@,PU@ׁ#[B'0@  &( V@:@ _F( q =P&Q&rt9n() |x&=A. _xM0``P?rb 9@6 ~S)?"r|?#o  t T V:b)NC,AEwbcdlgLO @|qcxA ×ϋ452{N}'bARbB@ ke \X2#_)S bDE?{_Bv0L@nHXR+`f3OD45=#R1;ACH`nO1= a&?з[oGWn~l,: > `6N BvK.$ wgM!/6)*llPtBvvb o3pJW=FžU00+  X&F@<);6‹*C6%!`o9_TN[?S@?LLM ef)ÿF) 9,d0&@ Xn` ׇ-9-,N(gV dc`k 9TgKY"YSaZ h)bbW3V܆M$836F0 @9$Ͽ9i26"bf\ 3 t XȌgNbXYj]e_pvBZ$a(wo|6#BjFlX*dEܵDx~ 뿠\*bIEb!Ԡ&bq5Pgn=a`Q_2c$? ΢?)`<J &8) iI1r13|BG@cUEE.A/~2|?| aa''[$?×_?LwL ,`m D32p?0iH +P-#@˽PYSUAQ^_ Ϟg 2P?0C@b_޽K?d=VCع~T @ b#AiXX++0?bmp5>3@A0f^FnN&p, ?ٟx c@&w@ h@pzyfIENDB`PK i:1[6nuvola/32x32/actions/mouse.pngUT FVAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?@bb`@pЀ; "z,Fvv1_#ÿ. ̼>B"fRr||¼,^zǯ޾{{o0r=ca``ddfc`#@,xϿ8!1|k;CWWwFkK7aaIfF۷o3q'f,Bv+ +#/P Sj.wv0)j}Q3f{V ԫ>_#(StgWAAGw<=k> `(^='Y;a..nl^^6?}7qήM?~kaF 0J}(L;@ϘAACCDkt~O }}T &&4h!@A!r {^zqOX=ÿ?W#sFPȃ|zn#w߰bx ex\AXPCv0xB66f 1Gnw^(oP ;@gdD;#$M ܪ l`Ww @l`(0wFh  b93$ nd0`ee`7 0Ȍee`c(-c`btׁ 2 W?2`u23Co`fD!$Cr0,`dF[H#ڍV' ~T+޿ӧN=y&0n޾0s% Rr_\}AQàA@bߠ~Y\@v4σ,z@ûW/N{` {~3`8/;'$A~Ab g Y @oaMMx#>>QpQ,~2a1*L 4o??9*BTFưճf]~(,Lgee =e8 >[ @~>00<Ϟ 5ZbDH\9+._&fgxà *}'RVw _20; @ 3;cKPC2/'1;  ,\A-S`|0c칝/n޾D(`AbK`{)GXUڊï ??1Hj1h~gx6þÛ6lXû/YW|@9W:DHzpKII r<|܏O_2bf 8=#V1@ h@pyS IENDB`PK 4{_44 nuvola/32x32/actions/new_sub.pngUT eDcPQux PNG  IHDR szz pHYsodIDATxŗ{pgeGu;nmVKdUڦErEQ-IYTƥ 2-ƵDB$" 9'\qNiNߙ߼<3GⷬL@<~X3gT>+q5QtCT]H|Wk9*$%(@,Pi%d%ئo<{.q|I#İM8=ηhz^xU N(np[V,a:'Nh ^r5@#ܒ:MKx(vhfGq8()7s=i5pnU,'OEe}Lf/S0#ǿFMk6m) X )yӧ[aDEyKX41Yp2tCU;Kz_K f3 4ffq靖 moG*A~\{+%`K ̜b DԱߏ7 Z 9 1҈`Njl`c2`f[Ln} % [I1 x ]N7GEbwylóPk+h->} B@Q\Mfu YlX,AgW>@jjQF^e'N@C$?L.)P'qC5pOxQ x*y8E͔Vu6\k 5ٱ&*,Fxuѯ 69JC^xh6d%m|8luNjݠUR1S#ܭ#CeD'M_\ LmEرd-%Qpe\6sAR2V-%jk3( oXLJZĴO2DmX99XeVhE< Ӣ8Ӆ\^Z;dH[2E?9m  ;W'#`S*ZZZeNYvxS65EcISTj}fM_@CV4ļ zC#T۴:SqT]F2[Kˠza*.*AkZ/T9ܜ0f>3%J7bOj5,&YKGkm~/jTͤ%>, {z.֮RxyYd*$%4ʽSAځlTb?㪙$D玉ֽ x@)|wz#Nj\y +&5MzY | $0F~&^.7xnbr7UTpl*3T+p|M,UX&`\x'' @@M//*zo웤t.$"ݑN;X fi4 )# *Rq-1]T4@ Pꀋ?>{ ۟8ԺHÁb͌}(j%D37TGpU *r# 9WJ87 v7 D# _fo &5{^faQ{"r'(@Ofq8ۻqW#k~|8ŵ9÷=` [zB|R@?{(6M#zZ9uWml,1jIEU\.l\Fn{9/Vd +ةgYu>+3ՖQu$oQbu]jɖQ`&qt&r;d;04N"0u9NF>uEq"(6G7Gt>w^Wギ"pnkD7x:IENDB`PK kN1^ nuvola/32x32/actions/newfont.pngUT anAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<RIDATxb?@bb`@,0V( ^^^%|Pr1W?~ڵk6;ׯ_XM+(--efff:C8ceeexdcccP;ϟX 7`qf+))1HKK db06VK3 00(`9it1dq0@ W&Y,l@86C@ 8qdvE .P9`ԩ +Wd;t.D@>{.õk>`1t5`qpp!G@@`Ϟ= w[riwww?~ȁ7of;,#@D?  ß?pIhE ;;;Í7۷$??`ǂ@ʅ w /?BGW *P2éS޼y`jj $$)2Xb9DFF!))AKK ഃ?!0/ g9~3g77?r؄ A#-[0} ,9LLL:;;޾} !'BbAD6a,~jsUW2p03| ӧOgbx%üy222&MaCBB8j@YT!; XP*.&`܀B_>)a)I~| g8w6 { rrr ߿֭[ -{n0{۶m Z% cKoO{?.fB%6e>1_a  Ǐpup޽{ -bekBPET[~D;-Wd9 @5by1eg(Mgv<9(r (/47R?(<۰a4H@!,\\|Y~*0313dߟ~320c&DN62\y{!9AVR_  >%@C U[m01`yG]w/?z׺YMʡF@ @xmqҬij,0Y'U緟2o`жfߦy8.2 O>&c@,H'`i<eXYB?fad2~d&@AA4}#b˲eA0W`L&J?Oynr}NZOTOYX>wmb|( Bx"Cdc($4WXbzd\VHN E;2.rqo5YuT[ww,ەjj֔ݹKU4 _(HR_jsҿ49xq cZ.gW9tK{ n`Hg Q}IO%t)cqo G}wPbAIcĂtFD#hcSUxwޤILR:۴0 X4к6RXN0pۜ六\I%A|"Eמe[ɴB oeH̏:Ԣ. ;|O80aߪ8Nl"z NhC.{htD R=_-D#ԠFVwd*"Wwd?%ˏ]4COfZ)ɹl@ڒteS9$y%2؄Jq!'<44r9kxpDe85Ԕ5YzΎZ˕+sP 4[dW gZ{俦ucǽ@j-=ˌ(-V1j\J=KBMC$ qۊ>Xgs].KR#)dzP~ǽƻFh%a%沽:_kV 2;՝I(S Y67W)0beqXCƇZ6ОPSc.'4-B_ro?l7k"&s^IPpzI|М:z1Vk8|kU|?^ȡcZ* {=Od$Ǵs#9}Tu}]lU)4/ZE6X!ޒ0)-*e\ᵖlH?K& )^e gwh ·ʴnCХoKcؙlr*`v5vftjB% å0qK@j c3XY7<)~@ y K 啡_ӑTwL Qάw@m% 04>>P ,9aUҬÎ@[ۦT߿t]J5WL;- @03RT hץAY[?9`)izBd!Γ4\Wn1FDKH~6^oUn1P7YrG:UdǢ)!yhܼܳTs%*uedf7abE vncEj^MwV&T}wF9`MD=8Cl0/P8 a`Pج2P~>?bPK kN1ۗ] )nuvola/32x32/actions/news_unsubscribe.pngUT bnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< zIDATxb?@bb` *Ha-nAC7˜]Q; I!Ty|"%X ,^%%}h g21Yr=".rmFc(w!oX x .Q<@_}fff!C11!EQQ!11aF Q!!~X ܀4;? з0r-rgPRaPÇ#1`qfPWWR?|>)t;ӗ~ch$<0!d7_0~h#23<{iiio1132<̙  JP:T|􉁇&@rr9 o>:70Ā< (|kA_ ˫ z@-bd`-;8^988r`F`CIN^NX=~;& ?T^B ml"# UTq J\J ?l#@>ϟ?VVHЌ /_bx 0$0}!0U%0>} v2XHA Axv0Ȣw010Y[0k)(#P/}pPTpqq߁x!hZvȷ @L`}Xsr1090=&78@!3hQ%B!O8XUUJd((\`G(nA G ߃@ 8}"q q&FIqI=~~3HIrةSU ;^_WhPO@`  h7bPh Pܳs03\\E(£&@Km`}@} ,?|/* Ǡ *@@%DZ#@iT"(8yyZP0(͞cʼOnw(=?Bv @0<<{A;W@ZY1!4*@x@ m2Ǐ`q$*;̰a+o޼@i ƿ*ۓE߿gxd)u㾽  /[',5d'B@|}p n..N1L4Ӽy?~b @1.c`oQ[Q?: /_\(5  /£ `9MAJII1sў=mM:2bP%P @,URf> OdP_! ,Ue2yUT2y m;(Eeػȥ/_7qrrTטbd`xeMɼ2 Ʒ _]b9= vf`R`P OـQb\j ˗w6`4^X:@kE#0!+?aP%V,e X0i3HtMa8Ã8@.g@K9޽G ǎxY41 O@ \3s ( ᥋s?kF_?>3 > ?En?9}.o_> &qq1p>-^ ! eYq-sG! _}f+G{ l| Yi 73fs뷀m[ߞ>}hL`4^n6pɧ! zTB>#HҐ79a{uٓ˗ݾNy \b2)9z<]:krC =I'ajw|Cw`c`x7la4533y@CL&Rzv ~d"PF!@ ǰb7Cïy@Gle`dР_ kJxج!:CLÌV{yyAI/2gl*,Y313pÙG z: zXbo#P `e{3|~;c`_jĐ < @r@̒ V/0iI~C7}`b WdP .- L(kQNWQhYyt!o}I #P FL^к1ñxbƖ w)PI1ͫ_֮#gb pVF bj@W0BJ$0e ' Ͽ Q&HV/@;}ąYPY‡F&hiȈT42rZ`r3`xBn`- /1Z O]"= Fv̞ r3 b0??pYf-꽀Pb!`yxXeC%>1Lh/r~`'+LC PB!X/JIq:K3p&0ΙcV93<}?2w>HL`|{ 1kK35$#[h;L@Gb $By$+%*.p` ̉</2i*P'Ilfc&m 01|ֈ ˁaW@y*0Ӂ:Bf$6 <P[ 0h1@,<XUb0rL# Ï? \`'7_mon?6!˻/ ?m\ 0Q`/&[P(0Xu-`qV DAв}ǿK /S_@9Ѐ; Ğ,WX:IENDB`PK t91)>nuvola/32x32/actions/no.pngUT gUAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<`IDATxbd 10) 6b(P|b`HH@*+@M[AVKAXNAXX?_3qݻ nf@l$d6@1XHMPuag`e```AF  c8oí{E bcy='7wCX^UR 10$Pu>ñ9sVm#&b qX>_FE%x|.EE_dv C O^EI"]ČrUՄE$$}8hÏw R_"0(:b(3f葁/ g@1Yx\.!! ad! K9?f`ڗ/" bD\BE"$A4FЧ[0߼t`t< @,H" Zo2002BGӦ1|gffTWgX-X-// 0= fF04:104Y @0S 10\ Ix9Pɓ,`50`8vbׇJ@z֭ jEE V /\`8_`3@u@_00f`@4` Gx:ëW >10y=ի|g[ 1Qw`mJK?01:H ?Р į<vEA980aQ ȆY c Uko[ ee?|TV1 @ Xť I,@711K8_II 3gbu }0ё!,"@ LIAT؀9A, +0 ,8-yAd9((: @0e;`",0AZgej*ފlC؝; /F01re9@{A@5Vׯ3,@12[~rPbV` 6e'tߣ@p:Xq=T`9@ @8p5 Z[F `u l0>0,@&6\Xp*֬s%G!cdGcol14&(N+Am,`V',@n` aÅ/-0< 3DϏ G#@wq`03`8x&6%KV9[tc@] w. % T{RY`Qx&[vV.BT b^zv* AtBu$ax-g`"=  0u; rd|Bgeh 7j710@ S^peY mZ)h}|!/d'@4|.U?Yh4l@ $c)6| O@88*CaBK-YKJMu+X 0Z2 0{'^ih 9$A&0s 8 flE*XX\b`Pb@|=PB  -ea V*@, L tY`, F";<֋.MHC["`Mrg_ 9`}8@(U\ `.@P(`sFIENDB`PK t91S ll#nuvola/32x32/actions/noatunback.pngUT gUAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbd0Ap.+@ `<H6qo`8@L ˷OaJ6ZS W@򁞪pAu1H$5/Rf*[l$q)4Z2$38 &@`toXd1;dE3d0 3B@! [3yL+M9^fFP!y FT<HN(q`p3b'0d8Q.T$ Pxfh̐ 2C G xeGHc1vpz:tjz xx.PPda ,=>g`Vt<  'hgN`C 'ޡ@`♍J!2| W^10J|9 OpOųCP%;í 'l@Bx摔u5f1bx X`(hi XpXn3c7uvm jI@`daЬYf,``à V_aF2?@:3 켼 '8 !0@Lh>绻v1|~w`9Z8* |vÏ?\vl:K00@F L7V"X3D YO.]m{~끕6^u4bH &YHdzX!S.cxzpB `CY ̺߿iۻd 363|~!\H  !Bf>B~5ß/=ټc9þuž>~G,@!R]`ʏ/^Q ,̘@ K}@!}&T-cyNlTl JߟmA;> ,B!@AJl Jb{3X|Eӈ Jҁ[4u1pY@03X7A6ZK"V'ãj@.A}nIENDB`PK t91uN&nuvola/32x32/actions/noatunforward.pngUT gUAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<rIDATxbd0!'q 3d @1,N1fSI<*g0J6fz< x @`0ӕd8@0410Dy3_ɐm>t~ ~30@@Gb~v$c#lR dOi^i > b"< PS/@^"9 u0?:+k!u7bX=3!>Rm)I!@Lxt @ _@` e51Q>擓>@?#cP|p9$}TdX11((K&^ 5}|w!#s@誊02D$ bz. X R=87Cg.pIw6".@,(?Ko䁁apNaݚCO\K 7S<|x$R~V#`!Š"ŰM6 EFl!,i ȁ fs'í-[?_ p0u3D+ xgYg^ ,\,˹(ٵ Ne3OzN Vm q YY/Y{3||3Ï5 '́]LH@`INf?.<-_73ܟȷ@]<>@AB怿YX=_1h<0cР~O/(|;d/}ñ{nmzpcuF^ 1B/>3]y=h|s/0[݅Z JH 8X1-LGv]f8,Ï/o2?Дܬ=cظ?3| D-l<DW?pC`+,hV>$ÿ?m1eg8CVV9@?@c We8 pa+zQ-~cgX6ŃM^D:_GwAxD/f)_k3 .b6 >30X2Ma33gbf" eZ9, 2a(F VU!qc?1<Fw \l f Z& W/C+`b@ajI H)&ǟBv&CqqnP| H J ~ ?&#$89r@n{pd)w_^e`cc`aZ6Lxt~=1I^_\wVÀh!3x fH:g.3v믛8Xk  0`2 5wfWcx@!)-{l4PL e~0Yw_ ibV60O< } Q 1wD$`}p O?]E leLΚA@A'0p "`o?2f`e`a!H[N25Pl@a:D6>!{mA ؀ '7g3fX6 7z9Z(!o|?2 ; 0Àx6<-|.> Z BŒ ;v>m ?ȫ0vz VHwmm"+ "w3;kK83`XP .M&yq*XO:`yr_"@Xr_ܟ@j5%,}}1$S`;77f666=_ci=5 e֟r1( A pՆ.pk2Ӱ7eP2T{OQs%7005yęX8A30D%@3{L,s ,LS3a4eccxZ3Vżt-(Ȁ\j|Z^Ԣ|ͽG@!l3B6 0o(s>ý, m=vV*nvPBL 6D8~|bػh7 C $BG4? 02|ZB@FA b)Ɵon˰eEw\Zj?G @jB"5l PKXQBR=#I !0>> 'ÓG>%e+P`t2\-@v̂*1OX7 Uy>Cޗ?m8 hE`װf0Z=@aF3Ov;`USಛ5ݻ0߀!$TKX T`dI[x,R"¬XҀ0^f` gEG/cr% RΊ[@b s z#R0V\ %n% rOװXXb}np" Rc?^?è]026WIENDB`PKt91« N$nuvola/32x32/actions/noatunpause.pngUT gUAdPQux  sb``p  $)tG_G'Y^%%i%E )I A)'Sm<]C*n%ߞ`+%<Iꉭ?osYC.AMCk?k`Hrd VyTvzW ?py&~|{ -q_F_Cn2_du\f[fo^Pq~'v1mJxD01xsJhPK t91VV#nuvola/32x32/actions/noatunplay.pngUT gUAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0̒RX Φ/d1 @LH|.a[`<<Ą.pqu$CJ8DgbyZ9 07;C[á% @@G1?@Xï JR +|f0H4/OMNy3!.&R F1Ą+ps~jꀷ^|a` @ǰ020&3,`kM)M@|?Ona`dgh)r`ho bPQLFK= FrO}ĭIAf`|>Z~l$ lQ~AAAO[a͖+ _xC.tO% k t;Cz1úg\ @% @|g@aM/|50z6 /CapHmi`J^fe`g``;o28x_ i 0/hNA@ `sQgPR`8ugA!a 3e20To`///֡ VB1:xLǟ00 23(1'1@,r#[`yy20*A&GH. :C>?{qo^}frVK@a8)e"ǧ c~^`,/П 5v`6b?2<:wi`pvن@- 0r;?x0ûӍ  3K2|x3÷dzn/ O``{/?3}[X}^hexsP?p33<'>`8÷1|pw^h<@a8/Q]3< /3\klE* `ӧ gr/f+ z"^l8˰g+4?\VE8@tk/,hxρYn\Fg-_VO@!MlpYͽx  n0G03ȄX7=#*/IENDB`PK t91P;ǿ'nuvola/32x32/actions/noatunplaylist.pngUT gUAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<QIDATxb? g ^@ @LhZ*$'&30h֔2 L}Lu%R#t8jD1 = (HdCABA9(LqDN,pUcPax#;CBxL M!+7 XUKAMMAȼ #d1?v@  *8 H ^@/]/~Cl" ZtȣZTODB+ s`x'L%+:V}  Ғ &R G+v/;.(A21.A 20pca}c6^`c#d<@du x.+88fKcB3)y3\~/ gaWJG-&< &ٮ@AK[ p(p/>u/&p 3}Nzq ,ut R@L8|$,HR R MM%@ J R ^ yA EbqeKbxPb301 Dltݾg!@_k 122 7cDcngaˬ- Ny1ܟ"B~ap.Sӗb/pf 0"Lf ipUA7vKF(bb^fh*\~Ív"b<22 /< KŒ dbp@! h~Z/i[ j"49q^[5t@!6A]Ifgg/mc8;H Ӏ0Cl/}Yg@ BɆ4kL1bHh0a@`Дacf dq 0Smv lw_XJ.(̡ EKWw -^u gOfl`8T`WHFE ֙a6o'0d)АwCk:kuYԎ.!wW 2c;@;u1Tga+X'N`L2xsJhPK mN14nuvola/32x32/actions/ok.pngUT fnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb?@bb`@pi܍a* )` &@ӳO'˹"3@WϵNqD:smȀp̈8 W[\c@F0?_RBP;& @4w?wjiD:012L Xhf߿5p焚h3Ek2̽za+~@3'&im%.0uu}d?f% #`ć'02/a+00efgÞ/fn}6zPYѢ `DzO~21s6P-{behl+l\n+mϿ?N{ΰx7~dcfZ X/zɰ{W f . *la3N_3hp9[ %÷L åOO}l,L2 x`7+?ӹ.;nOE=afϿ3Xs`x!cw7sH)?&##Úw ޼w0% ~O_ ?bXs)}Y0}B;F@D?k毬o\pm`0d÷_>W~0a w~dƔtvA  jS`0@@m3K 36H}pH|aߵ 7v}aĘw'f`#T@L13#=7n\p=o?3|o0a WrayV,WQR{" ـ봏׹]{7@G|e%ñۯnlf`|^0 !3g>c ~5Å'on``~ltP b?Y|w W~dU&4&r`BJ JBf, Jƭ ϸ/޻ h1+|~kjRAČM3_o{$Z3@P @7Ѐ; At>zIENDB`PKkN1!nuvola/32x32/actions/openterm.pngUT anAcPQux U}<gyy`#gBm}lTrȞ QTR-l֬KH2%)yV^>NNblBp1i=ϝ?~o>v2ak ҦبD/-s)o nB1`y7+UBߔ)J%9p fo_ø!@FpӀ]]]?w0"Qx x$qM,HL|-up_l#Ԕc[[[AS}]+if0bmç .6XBnJE͖>ɑd]&hXg1$BY(0(P+YZz:Fܛ+JBtՋd)  gc)>HU` zFB^`(ݿH" y-\XA agRWp&&ی_vΠٞSWt c۾5U MO87YtTaMPl{YBZts8dww] r53):&9z zoXmק >~IHQ:!o;tV QFhS_skZӝ5FdtD먗FYCO\t};4U ) 7p'V[ag y]j({,>>bKFX363bJdbKR}}əz~0%t5^q @|҈qq=qܒ%L@D&7p6*b:eg{qTݯ']@Њ~ bw,̕#qVx&C3ܝn9Jc.0h^X1RًuSZ$^[Vy%W }cH57~W2N[M}c?) VY ܲ N>{xǁ%s׸ѯb+|91?z֣us2akuLUW<.kW/ؤ+B6n=ZG$(rg`\!)Gя~,{X^zX~kÏȞHKYI N\tCN~8Ȇ}wZ~c%VLkۭ#vf e6 xߺul"si6ds!-&] Dž:9Ec㼆I+(Pd屯޻h $[ f=_poL `dvebR 9ݭ>^7LQ1 mUJw ]<'ck (Z__Hhq '7]BܞN 0GT~iaod9J܂s8EflFP`mtTcOBؑJoAd]XOfb2". d9/4MMTt= #^9_:teq?+r˾=ĞTu(- B4)_yp}{&F6U ]#mW{6ȉyGTI;6"- YNun _:=bm1|sn N;kő 0/KH~ I/ov'$OmWYU!?؎Lq~6l#d9OzԇQk}ht4͈UWv5fʊNeNĚׯE(gѲjlP5/b7v2@R;`@46 5_XPK t91֞N| | 'nuvola/32x32/actions/package_system.pngUT gUAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@b l [~c``gJ2V.-\̯/|_6`o,y `7e`PF3 r=O"~}fep/i:) 8 _& 7Io9\,/Ço bl 쌊`Q/;C‿301+?/@_ZCw}@{8-9̼'_D|lQ [$0x@,`]G 4@,`ӡ,,L (`8y'É[  ~sU~a>$%C[Fɯd%~eT. ' ~U67?Ph˗|0{o?~+".,G8;q]yn G20,Iœ~\$g} -- ** N'N@q@@R Û44e\׍e ߽)ϢwW3j!W';0/ `y ccM +o/{n)k <<t%Ã7&t%-vP`B/4@ ×}[ɾfXf3+:Bp(}PUUugǎ@-eddV8272s‡K}co? gx&=?b3í'>kw,| o0K0((+2({ã@?^Y j/0- t!||| !!!*** w@E5@1-}P .2;^He=\pI0o  o`0ԗaȎf'''_^^ALL \|< B@ (_π)lA20K3_h_A_ 3.!]Omۚ/ ,⁠ T䂲"(|˗… Dd@! "(`gggafw3  :VWWX#p}T]r+|\POO[\\ﰺh) -^x0ş z, /aШW:y$5X͛7oY X`z777`Әd(A :X,} tk#>x($@,Bk1.P\zk'OE8A VBf(Az@~{n5ߡ@bBwÇ| x |\?rH^݂*|ý{✜ @3@[ 3 0Bd0~@)@|yԁVe&ȗ ߂ǏR 2a׮]_ DA bXMveH+4u(w ׼Ҡ2~nذUZ Wkk׮1} vFhnRZ/^GٳC TCk/={hvt3@ p |'--p%q999-`L`@yq`"} ,(ux#4}7 bzǪbF?Kj {`b$t-IENDB`PK t91bnuvola/32x32/actions/pencil.pngUT gUAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@b1)3IVAJ__ 2b`3`  rbع.~jNb?ZbՀK20Ob.=^)01}C#uM X00i B@AF_.o=!wdu2Ѝ3y`c)`l ?Jh~. &WVno "\ ̂ ?X >03fli ңT7rff=Ҟ2pp231gt 0Z  ڙY?O5NM^00131 俟 2 "  ?Y2``u `߽"B@-ŀY = t^*;F/ߌ bPZ ¦p*'60l(ۉ oŒ  s`b 180J/@5^gKD>Vq33ܻaTqW^0||ъl4@v&0RꌿLh6 na0g`gf8e*ò-@` LMJ@ -)20sQA+r&PI``"j >2,^}b $0| @A ,j=2+4ؘ" B~1|bzâ%.xp^$ÏpY@`4fN$2|< Bq | _0xϰ`k{[/2ܽu| @k=} bF3Xq 18%13wa=~exu1B9$@Zn Mp`K-_ ͚3'0VAErn)`gx$kS*OS931 f&:,4d7Mo @iF*|J i@Mð,UsY3"?/p0T *5~+/@XWH!T!AWu -bظ׉5 >ZLt;P__.~6_+3b i r< /`Xo G?k9"B|U5ñw v j l, ^0,~&G ?F2|s&@a)x3 I+V69k1zN`?ǿ6LM320k>f?`f(\W81 Q9 @`W4c~Na 9/pҹoiÃ5g*b3 ~bx&&`x<} v @e_e1^B3Cx My̤e .F!(J^b)@ x QpԌsIENDB`PK pN1BNnuvola/32x32/actions/piano.pngUT dknAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; c022z V?T2؀A{ ĵw @O6mqqqgg/srr;::j̙`= q3f,VPP𿾾?г7`ٳ?hjj5`͛`SG = q0ٳgEDDbLLL_`V"_\6NI1? ]9A"DNU7ߝ0oحgH [M `Ka.c+IA09兛]d)???0))) [d5`111HKK=SLS o߾En8 GDG< n rrr W+** v (8@VVE A08Z9@^^: y111>@s%* ,!666CC"߿; `cx9 =lQ@X_a6v6gϞVVVfx)r ÂR~|E 57#M&9 T{\$˔~ O&RVƚZt$9;I9\#@L O\\ff f)n89@E%<̶`w2/0_ϟ( xyrrp@Y@?BW?߾ VQ}{@%{ĂH 8~B/vwG8@DWHD @cfԲ2AR20@¨?.L,`s@8o"@ꀿ4r0W6?@u0~F C>0|E(8@1‚X@81124JNh&mP`f,< @h[4w@ h`>IENDB`PK kN1ٯ4%nuvola/32x32/actions/player_eject.pngUT anAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<wIDATxb?0b 02H17a6D 7IL &r#"'ࣣ*bO5P<o_~^ C}- S,041 q+÷_f J Z j UH5 Hwq,Qa 01<` oo>q/w4W O30J2y10] TID~.V 0bWc`0aU#H"[3i[?|g`x X,=LXC@D~jѐ2d hWH7Px !%YE=5`TKȄfonxb12~AʘMא,b b O>ǐ 𛗟AP`2 ; vAA9g][ В b߀!#--O#!200p3<=3$ƅ ciT _|<Lx|r2|Vj ^ e<\Rr ª ~xqY@o+> _0S;+)e +/10*q \FJ#R\T_S̨70?/("?*|Ͽ gb`F< 30 ,%#ïN> *r ۮ108fj{``bt2c8dc B@L' %E =DZǹϏ0``f*cpF E& 4Tv_>h.tGb x{#ؘHVyAՈAHV/\V&.!&غ! 701G"/?30x,by=7(4~!; X`a %x ,DB|ٺ^y@1_,L~ tOx LҜjQ@#T ç,Y] ~ X` #)9H?@߼qS ?_L} llY@ ~Rl漽ѱ =l2ppLJ¥ `@xHZc7O^|`óW1h(( d@R/lDLPZؚ}*g~vhP0(`)+4LIvP d&"@; e]V6`.A;4A X`.b3nȀ a8˛5L3dЃPa:?4_>pligk9+"&(A @`3$ Xl|֫ ^daNn7G, @\ʂ88!әl8ѫ@IiI J\ @Y @ӗϿ`ؽ<ý}*0xu<&# !0 @`cb`x3ÎXmbd5$v6h X@ s% d]3`p11[ ,{YϞ|İdI$`|'ٝSU%G8Y@0+@12Z9gxJzN, hk:CIENDB`PK kN1`#nuvola/32x32/actions/player_fwd.pngUT bnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p#bᅮX22f 6S@RyZr< ~`/2@A?aj G3Dg\Z 6jȲ`N04eϸv%: ?A\avÊ~ &rA _~bF fRnŰv?t×j[: D򬬕TUEn``PeTg姗X103^Z L3 EqMQo a1^[>~~9# q@`f$$#tK'|2]7'U66;h{`[ڨJ 3~( HЭ;o|i􌁑!JB" 1 Xl̤l|-?E5Dռ}#+4Ë?=x"0w]]#%!A)@:oC}wh8;;"4óߙNpw F/?5 2 >= ^&3@~; P7P`} @۟|``e``d8#p2 2``b9PcZA ~kuVnNO9-/r ļtXEh_oh b v ߾e8ýk/? ~AVEADǯg萛@<9 ! $ (SB,Ć89o2(2Hj(1~ _maJPԀ<,OԾy?0Zn:JB(x LLc^APM\Ս[ //^ePSa`bcc̿~CԲ010 |/.]&1ؒCxX98~~؜hj, d@r[2h)0Z>~g4ÛKW%Ԃ؁C @[}ى3 nbrV&;X) dgh ;0 ~axv&Ãǀ #ط2+Py??jhZ$@, ߰L\@0b0`6H=Σ@bP3fP0e``ѕ{ aKm  Ÿ`f @f$5Ë˷<~` puY'|¬ hCt< AAŁp' >p~%Ǯ0zc3W` n9!j߾pzE@~%R;8C$Dvc8m |&0t 1Zk  "̡[ 6%@@+gbe.`䠫g0 돿SDn,2kZNH^8aϚ3 <T  d(;gB`?2Xy‘yiPhuhf:Xw1ܸaӒ3 j&ڛ $t5d +=as 7^d)N:`P҆b7ú-? T('{.rdȠ73`Mڳ ,uLO0{ SeY @6` L PW`PB rb!@ x 40&IENDB`PK kN1Q%nuvola/32x32/actions/player_pause.pngUT anAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<CIDATxb?0̪c'Ͽ@.Dؘ13e1 ! ba33q0pl&- Ft}Hg/Nvf͇2lv;%T:0%Dۏ?(Rl Wc§AbT!M>aӍ lL>FeOEN![Ti9;ϼb<<)?P?i9cg$rr00<}?9ĂO_}G5Ph@! ho1 ?P r+w4|:/,vМ_Qt t hiTh!H @!~ąK?g:Z@!+@@$%!(pH_4X !#̬@J5fH?@P4#@(Q<K'@jnH Y X+0??ĂRH5 Ѐ; 4w@ h@( 3cb(E(PȌ T,iYbAlqp&`!Wl@@s~3|@GdGU @(r Ո V s0( pl8BsDVfG~;hG6Tp?x0΁p7a!uh-"8Pff('$q!&dc3d@XZ4 !u9 85YAJea8/Z39y$Dͯx@i [WkkABQC)?3J ^+ۯ2Drp03<{%&VB&?3= έ W1{>0`MLL@nNH6~eĚjفd;{ ^WW܅IENDB`PK 0kN1VrCNN$nuvola/32x32/actions/player_play.pngUT ,bnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0ή`;i:/d40 @Lpʃ} Dg1|wc`d9 ~a`84!߀⧟qÉ{ ,l 0X;k0@-j: `w@ 'ӏ dqbeOg?@ݜ: P_|Z' H?ʡ 00X0Lfpg"0ZB# 2H $x|=5 dlzU lf`me`d|tTf@e8ubAN?2ƿ&Tn6`ВcHUa8{~VF%>Cs ."ñMύ l@\B@(D H!gt é```ȯI߿[Jd`vFL@V! 33Aˏ 730J2{1qpKJV} :Z^C\v^fV`UL @k%9-4b@0 ãݼ ]0Ă3P\π<bxy&g|rhq3oCV @(+P``V/ogxx W/041/uZ فpq$P/3yޱs o,N2u@,  bKB&Vv` ,>;e`<(}~B) A-3!TXziy@`g@aD1IENDB`PK .kN1- #nuvola/32x32/actions/player_rev.pngUT (bnAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<^IDATxb?@bb`@p#Lj 6@|ϿD_J8Y6g`߅@z## c T.~^ʌ U@-tS?~0gVP?8!;Jb!j._~ґϳ`e>ï?P3k -QfTTr)`/_bq  \ o~30  __÷5bB:1!z a lL 10H 20*@̀AXdȐe #p-Ç @ZWE<z  bb\ ^10|J@〩oH , RuMSb5Eg`u6 7 83NCK5h!'@WjA0^>1-D3@r ߿YU 2a0Pfau˙ =3}ABU)8ŒA@з x b@as+ V& . Y=b`@؀]0|הM; y/ XYzF`US-V[OcvSb0X@} +k2A\ۈP\ 9@@\/#-` .p3ЕA}Y/3KK1ا2HH1P3BpbfE^2 JJdp9R&a_?n/E-y``` b/?LPu! LQl< 03&fFcivvV^@܌D@@ /o4'D,y50+3|}A`{[L403}p­O ~[xJ; 2H 2p#@>`Qcaxs3瀹A@J@ux0PY}by'96XXΧ ~( ( 6f6F-,- o)n0p 0H(1pղ-a&oVL O @@_C.%/ />@=5 Cu0;pX,bg3X-fgEż\2'n} t7`:dW& i Ip2"l z֊  =_3CIT`!j9X 9J}br'x5sZ7Nߒd_EU!!AfpnE 0d޿p}| f&fUa~>&p(޿8 9>߿]ot^.nvUu!nH>}ɻ?XY^]ן =:5A.NHO @9~rho>-Sr- (?t:>w?J 0qW>1?r@ 4x3xU| ú_RP&`{2Ё?d5d'Ñ]?bP fnv=` w2/X)jI1s5@QY. ,.>? d_#Plc8Yw@ h{F4w@ދmF&4gIENDB`PK t91yk#nuvola/32x32/actions/player_rew.pngUT gUAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p#UL1$x bb} < ZC?H-?BU1m.]d@LdZ 6WF2Dx30f p@ֆ s"t~ 2,@S%0"`;: ڒ } 2`_j( ,!7BQ%C:3а_QR$DExr̤c`$x: XXH.ųC~1Fa@C*`8 ''Tp1Cz.?`9w Ă7$Cy4/ó  H0F3y%çFM WG !P'wQ޳ \aRdhldPw TPh X,7+;1C.{`0Ր/3?t!,ՇX-'Q@,H JRj 1Q F><}py_?~1hX3D2<&5׈H?"@,l#)`iɠ p%Z~2ٹ b:: n \I_h(d,-t?^^y۷ : / @%g2\;u ݵ֭g!Dn@ Ϸg ;s0p20MCl\ l ߾axz"÷7oXb>~ï3(z^<ɖ?Ғo>V 87`gec!Aai!n^`Zx9f` K 3pp0#!p- f~1|՞] ,<'gWyr p Yan`t70t$$x1e:P%1/(p73(R0=~*0 3=Z/& 0 Ӂ0s`>r> (,& ϯ f>Ƿ'12?g x 0Z NC)0 3~>SG?yAG[0y,@1 ζ_y޼LG0|D} l·^fڻ~yu ,g`bк^eP+a`beѾ RUl1| ƁЀwh`I'TAIENDB`PK ,kN1L%nuvola/32x32/actions/player_start.pngUT $bnAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxbd09ǟF@:3o6'AbZ/\m.ta&2-6`k=OgEV&<ba療$7P L\ B v ?ey?b姿 , f1|)RnsP< >d``Ne3x1|Y!*%`P %h?@, ~O[_zVpO_=ce>X*/7$8>rSFirAk̓oh"b`8h0-d&1A`h m5ß1 K(E3(120\|  ?#$9 Q𛍌ߝVv>cpcH?-a^7BFFX4J @w+kKH>Ó~[d`bh_Eß? H+23:031A|(v}: X "7Ϲܒbvn J 21 N6"˯@b n=N ?0r828{0pp0f@!+ 7!@,XJ_xVc󻁁%DTGÄA\_AHzro\ @ Lx:WNO΄AI]PPW3AR39/ Y ג06dQWd`dw #h2r.H=(@=;7O`rJP]@>F;7^Y@տX8jP}Hf n @;X2a`c G싓][ w3Q) vpbdf^~`7W ٘0*0k1mg  ohFˊ/Ϟ_[b`@P p hoߓO;zs^sn3p X2y <c]fncy)/#X!8٠Q@bZ6\0ûןD$D p ?3 d78YÀ%3..^˰z9`I- X/޼ VtL-pHfb F`|> ~6=@2*l[fKt]2$ 'u)IENDB`PK*kN1u`A+yz$nuvola/32x32/actions/player_stop.pngUT  bnAePQux  sb``p  $)tG_G'Y^%%i%E )I A)'Smx<]C*n%SCRDrsy-yx.XpxfDع?EUz6hxI:r?m3fzsG7$xyK+.d<' ^ "=O YP|'F&w n>Էc 3oq ixiS6lt1A?ׇ,]aZtex&t.p`c`lb:'3O}-܌& @w5IK[ٶs)Wä| bE6! |P480a`8 w R@/4X3(4ad`4yRU1!cjl| .DDl 4X!`qsMYfdaHQ ߣ,/\|6%N|oj|gxDly73.LpLb,ilV >@I*:4NEXtq@ieSBPKt91[bnuvola/32x32/actions/power.pngUT gUAgPQux ey\_@uM oe%/Z.E"-6N^R+PT5%Q\dZ\ip궩7릣HinU3#ds8555AHs`ц99#cbPa\ٰƧ M9LILؘĶ2`vSϽc,0 5g;@ ,Tƍ [dZ# ^~zTDZuمX$}SDEֈmuYnn.` 嶨.4ީ2\q%Xce@?@m88nC s&ݠdH]RIt%|Fjn! 7颬%)-wt|!l|<9Bz|[1#fK]:qYFK`i{',mCP >xN!f?sz}v(G`2n 0hɷ[[YrG43Yuj%EM$999ll[_C\m{Y5wp 7̕ 7~2>'qF+RTđ#ݳ·SczL׳fjR8zp)ņ.d X:CpphW KgH*,ʩ.f{  B oWA*uF77hgrpwWO贃\5gϦq2KGILJ'K׹.gKWa-!WHghd2og0І-[r^>_|N5,_ƹ(!LmbE/ǃbns4jZT}$,]&"l0%@+de~{C{xѩ y̬s. U r@,E[CN;=-5Z 80H# y@ ]=Л>ggjP W _ zKdݧK%n N`b\=g`6?kMuPOb M"]3x~S`[zv+E/m(/%%A S_U%r]_ߢ/+ s<Ǝtm0jxY(ƟkhU;577Rj혤žJ=jJվ&Hax~XRx 8{(CƄ ZfjKq:vt"6^gK<@nm Aoy%q UCKY`6f #?;ږsNno49hjr:T눼mMEh8}_ M-TcLMe۷-j 'Wzaؙߨ&8!QQ~AK^4@rL2gO/}Lсk0W;P8PLYJHࠛn$~{wW/PK 0N1&33!nuvola/32x32/actions/previous.pngUT lnAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@b%h2|S~-dW  [) *{j/t$٭-o)9&6 D=02(37wwGO?x/Q\Za{2'BA5Cr>L w~aLf,pi JE Jq633 "eK/3?򀁁0$q@,$Z 1;0(* 0phϿo~ϰgy>3%RE@ݯp @:iLi1fX+Æ 90yΝ~pre~`h 8  bPW wn5Cãw 10\~ oο=,l823q뻀ǩkK22ꊃ| o) W/^`88S} -@vŪ[@CJ)2û󕁋Ӂ: PW0_ gư,K ߁3`6cP!^00i`Fafc, Hpb ֆj*0y>| !O7.;v`p}b`Av+EX |[,󗍽nsaAH)E<32 pZn" b_(kyӀ /0bVob q l ?&Xb@ĶSL'_yNƟ @GM~`d&@v>&E`brfo`u /DQ"Ll Smm&@GlUe(@& ,88~٫ 4IENDB`PK t91CC%nuvola/32x32/actions/project_open.pngUT gUAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@b15vpJs3sH@ 9( (6 4~}t>y j ?~30!p> _zT6̼ N/>M{Im) GFtcv\I}Љg4D+:a=Yd̅0BH7뉒`P?PcC?Pİa&PL]v@!'?fx #!>ahtA013 c 0 @3Is2V>0P$2A00 QJ@Z^AAEo~ÿ?BN`fdILC8 P,h C_i  &4^HnHJ&BrBQ00R.OTxCLH*T 3w_ 2|D@,ۇwHO &3d0 M8[NvV_ ?308F AGX2x4202,c H?_|c`c6g B x [X 21 ?f db\Cij_E>e(i`p}[@HE1q!1|g nbbd3# $m@}KD-gxQ#C6bA*!J7on> )0;c?p(2|A["C$@$(߿2|= B U&(Fwܹ|'H Q?2f0|x~a5o6dePfcaC72~'ےĂ@E^}gF: jG_Cӯ7G3!@pwҌ P?H&|d'_~ l'9~5 c9 >VbG9Ş؆d[`ACˌ o6 !@ȉߗ@2?Jbǯ_3 ;0H?[L?00|7_C XP9@!:L M@? 11GFDk^Gf X_  L=c}NT/lj5$ T70}d%8b9@_G0IENDB`PK t91Hnuvola/32x32/actions/queue.pngUT gUAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X`E쬅4ga ar (|~ "o/@?j@F;J@YYl HD7c322QPf;LLlŹ?\/@/ g/dey@NbGrf` x`bb,p3/>}C P?~!.>OPh c !?``ӓg8x&P<$ @131 ||8?`DRv٠?1r0XZ*3uJADPᷜhΝWǠ,CM~h>א  a `ưy]^o>}1!!/CAWW3@E 0TEQݻAZ #ƿYFTUa3@FG ?~ _  Wgf*(CxׯpL\,@(i#r  c+_A~d`c`X,Po7w]?_j#7E Ą"0!_20K12g`bw Eg>HH)8Dꇅ(0)ǎ+! !!ĄFş9H ?t-8k`#NO aؾd0PG!@ U 66 o~gh"sF`3} @郑lyk50qʂgDKĂ\FI 4dxѣ:B!-r"߁nj*ˠÊi XP, Ibci J6`#.h%!M 0!ʆFFF6C,4ld0!@HQ G x,D2t@p铏R ,\BXd*?c`p{k+QpBbAR?K֭ٙ#;rX p4NI @4?2 C &X Ǡ!q)1مd8V<6q..&>FtJeC+fffό@ f*Е N]Ăh1@N m8gdb,Ǚ_V0MF%_? ޿,JPHpC7,@9, 4Mϟ[];@@wh4w@  oIENDB`PK t91rQ+҉nuvola/32x32/actions/quiz.pngUT gUAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,$Vtr  bHjPoW=oBlNKeĥXs ?@G@_,4 V ~20F2޹y2h$VNB@_! _ ; 3!~^.6\N?  ax=?fvv> fܿ=@ gO^17 ^=g`dX^Qߎ+A"`a.@vΟP6vNŇ$U^>ΰ ׏ma0 ,c0d`A`9Js?xUZ1Jάbs>+'q `&0<t.yɽ`+ f}@t?`D2 )_>(.=o00Q420>3*;,>Ϡjh ,-{6`P?ͳH@QQ@D%BP(\}L@K9/ +:2~x W) ++alX3\?sm Ƕbx&Zepv6b!e˭ '2ٶCN\Ō(O +h@>!m v>3 r$]cgP2fA5@ M+Ohxs,Ƿ/4L*oXT*MYD@u[gb_ Y@$ce+3X||&@,@o߾ebu1cȚ],I!mX _9prJpH 2%I,L}bv> f^a ?c-D @,~N.; X!j[ۆ?"Pb"U X[Š(HN032j{!-bPUj'e j_3`pF5@tEk7@!=)(WzP@r/چAlSE#15o>㬚WI)7P=[?]ψk AٌB鳏_]\u ƁЀ ;CrIENDB`PK kN1ZKU nuvola/32x32/actions/rebuild.pngUT anAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,04^:6f@$  gʡG g~@(1Q[(?|0 y( C  ge|; .LP[ 0صc v6}}48[i#rU!@_}2 =w:`=~zy% @%C0'jSK4} `k_q$XkyYȒty DJˇ y(XeB-EeA&(h$a ޾ƠzAQFFaC00#L-YYQߠ`&L;?K jJ0h1 )(!@4@Wqqs3p0Vwÿ? L_?w4N*QBb b-,1@!JB/_}zͰf?! @~-CBI >f`栿pR"`YCXY833" ȋ^2l ~x&fF63131OcEh_ Ăgj`U K.gPSbRc6ePUa}97 ss?M`8{$u_ːD͟!#檓2{ǿo ~3t0xó P!˛ ,f/f n < Y Zp2s2 kv`Zb$,;V͚aˉ Ͼbf8,/Oi, _|fptf43a0au`ع*ÌO%bz@h('ÓO&<<Шİy! ]##/pZbeba8uÖ{R~1t-°vf! Qg1C yː㖁NC+C{2'09ðe^g?,3RW~N~1eݗ0 2<,wii!i bd`0Rc( aPe\hu b̫+?m'-rw) _͢ >? "!?>f(]ÐVÔ{ ny B[@6 /Ů2̽?!^9ʆ _@f9ևqVr-߿B{66?v'1xȰZ~fAf&6`:O ~geeŐQ۸ϯ>Ws` ?Tg| `^b>4/ An>? ?c[Vӏω AP64- +-ZK& V=[e?O0hsf8zFv`%l[K_}jl,c   Ftd6#?&PO;O3>mL*ft1}83eaw62b`}OBv'wyi2*##0X P zY @,Tk;/ݽ🫍/e,` 2G IENDB`PK t91yOOnuvola/32x32/actions/redo.pngUT gUAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?###%x?_ Ξ=H^bbX308(1036'E?@Q!^ g42hNz @TqǠ`л`:z# i 9_DJ;ң %Hn"  AFB0];y~ e`(&ЏZ\@QLPRRAK_h!bT S\y;$\D6 v(u,BR &$Kldqa +^ aQ#0M dd``΄d1 Hl$G0L =2 :x<Cuu4ː-aF3gdx%Cgz?_\@끖74g+1(( e3BBcC 3|ec(LpXbRl@˓A-Pf$CaaA0~a` Ģ ~3L*p_z@XCT10~|(Q083\􆡵x9 @/JYbA~`,(BbCm/qc.41a ?nV @z-vy0&&쌌6럑reH@ eɰv53^=ur!:woE ~ya`PaxIa+ =kzCDԆ @1!Q^`8ëg PڄZjlBԙg<~_ &Xb1l[`!BJ(Rd8 ,f_{B8@ ?x,@q De~ç?yo%^8ӷo3@ͷ b6N:!ƺ ]svIENDB`PK kN1r nuvola/32x32/actions/reload.pngUT PcnAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< zIDATxl @[;c56"8Ʉ .?qVhrDz ǻ]11P1"a&}?:] 4^X#20@CB?~esH d?h  ﯲ"Â9 }S%9Y0ȆO7@i 2ehC7ů߿cd(b0Q6aJQpumN!Phf0@w?E_+743/- MANH77CW2j2lzэ @/Э F hR_J-TTgUWa3L @{)_r8x04E2?{\@ YB21#'30|bxpۿ.3| ?}aa`HbRpε&Vz= (`|B J 0߷ L $1ӿ.3a7dДbp 3bAHڔu B %; ͦ,`g 27 ]+y(V,лr]0pNGw2@!0u F W}PЍc O_``b`D- 02(ʫ0!C!D2s4ٍ?ٓ.=B8OQ883l~AۀIaGwr1sX.f31‹> /lV(ehVȠȦΐ?aڙ_XWC H ~28;h;0rq0fx+4R7o>0M bxBbo%lgLۙ=8D={?'a墳8Ӏ[Ăt-?hDXdG' /_?;͗A!q2+Haف ^zG0hcpYZgB8Q ngPp !bhN~672LX??P)p\B)X1)Z1gf?S37$1IgNf_X2tX&pZcBni (`X2?h|h`w濠 g$@ [Hnk33 XZOڅ ZXB c&BΆ ! ?#8y !x2483݂)D"bZ8'#?`ixzz/< `\ ?ױ1s3232.`tČV0ο~4ctexXcfbbf{U=d|[*^bcORc}K#g0LzY3 YCjBF;)K<|ce4_ j1p|] tMc`\3)K K3X3|3p, oFQ-pɅ@˟0~)C|-Cyl(3+gMm%)eSYq1/'1lyAMG0a .]ιf@`dX.97m '1H3&1B2C9 翞`ba(PlebZ/13`:Q$@D~}lhsn?30 ?6`UCX$ e`0a(Sif/QSyS <.@ XPgygO>11KX6?1pB"@u '#X-wB:cN9s/3B@,L˗-nvk3D T~W _xۏ3 lT#B@8V@]FqJB/&Ͽfl_<1"H6dBʆ?&b40]A+1@x1py||Ϸ#2&!3s6޻ 5@b-hDcТ]YzmAaL/( @`frxY\M,Vv) 욁lb7s%0ޤ y}TIENDB`PK kN1ξ (nuvola/32x32/actions/reload_all_tabs.pngUT LcnAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< YIDATxl @nďX?{!6䮌[d_6'B#ҥf~%#fg׵@㕈5 (s4d@!ǯ8X8@/0Kv  *(2,̚01u$#_ "maOU @cp0foO̕3ML*60(4^b3 ;"ï@ڕ_]VX4~|ɠ$9 ~ [w2Ǻxh#`P t+k.`d`cPmWm6;'#_g& dbdbޟE0engwf N!/#N`pΒ5Nϊԏ e5J/X_x|b+cݾ^v`@WWߙC ~ft i71q0p2q7?2*3h0zAE=@?#E8E&craʍVf&2q*12J0 jf?.~9wi9jI 3WbXsN9k lf`~ h*_,R;N/1<$ h?,,V=] С8a- 3+}Tp*:^ 7~ AA)CwO`(fbd )4Tdg(nbh_0g/ l L̫Q?u]Ű6pb a0g<љ' 8xRٙa+ȠÔ!aljm8Ҁ[Ăt-~`g zflV,? eTL,@~1Bbd?V# #  f2||3p60=@p#Oߩ0AR_ nzu000}b@˿pB?҃}T)qu30FX{m @r ?&)^쟿L" h ߐ$ ̨= 10d00?gNh<.BFC  g` qnrlj>b`fy-]`daa`F 1H@!g J3f_@zyx4y^t ~ȋ OjL\ fdpUT@,8"Y:6f~FF&Vم̺R [`3#̞_?:jZ3Y2~0X22[2=*&xI'uI-ifY7@ jۗl.N,?70~3 XGcP6`8~0~S @`2|,@ma|ˬP_-/+`&,XB.'3Hk3>/ΰj$`@ȉ ~luL:aǙ +d(fpRw`oea7R0+J*21y|/X~d;CTN_< XY@,X*`6-G?q%w'éWlx|Cms4s[.\=?d`0`=5X1@r zO6SQ~>Yr?>,@XF$0D 1ז3߻7 ( PD篟~ A LH PF|L`ee04eNf6i@}FV@i 3ec`0Tp B,[$7Yƈ" G13cn[0 a 3 ?|[z"beQ *O [2r#!?33Ϊxλ a=$& C`9qخ,0$n<Z͐0u ]`DǓ`! tL';O_.ίi= LV&p\Gˎ-EDDh 3,vŊa/ 욁lb/s%Y&N0^pWIENDB`PK kN1ξ $nuvola/32x32/actions/reload_page.pngUT DcnAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< YIDATxl @nďX?{!6䮌[d_6'B#ҥf~%#fg׵@㕈5 (s4d@!ǯ8X8@/0Kv  *(2,̚01u$#_ "maOU @cp0foO̕3ML*60(4^b3 ;"ï@ڕ_]VX4~|ɠ$9 ~ [w2Ǻxh#`P t+k.`d`cPmWm6;'#_g& dbdbޟE0engwf N!/#N`pΒ5Nϊԏ e5J/X_x|b+cݾ^v`@WWߙC ~ft i71q0p2q7?2*3h0zAE=@?#E8E&craʍVf&2q*12J0 jf?.~9wi9jI 3WbXsN9k lf`~ h*_,R;N/1<$ h?,,V=] С8a- 3+}Tp*:^ 7~ AA)CwO`(fbd )4Tdg(nbh_0g/ l L̫Q?u]Ű6pb a0g<љ' 8xRٙa+ȠÔ!aljm8Ҁ[Ăt-~`g zflV,? eTL,@~1Bbd?V# #  f2||3p60=@p#Oߩ0AR_ nzu000}b@˿pB?҃}T)qu30FX{m @r ?&)^쟿L" h ߐ$ ̨= 10d00?gNh<.BFC  g` qnrlj>b`fy-]`daa`F 1H@!g J3f_@zyx4y^t ~ȋ OjL\ fdpUT@,8"Y:6f~FF&Vم̺R [`3#̞_?:jZ3Y2~0X22[2=*&xI'uI-ifY7@ jۗl.N,?70~3 XGcP6`8~0~S @`2|,@ma|ˬP_-/+`&,XB.'3Hk3>/ΰj$`@ȉ ~luL:aǙ +d(fpRw`oea7R0+J*21y|/X~d;CTN_< XY@,X*`6-G?q%w'éWlx|Cms4s[.\=?d`0`=5X1@r zO6SQ~>Yr?>,@XF$0D 1ז3߻7 ( PD篟~ A LH PF|L`ee04eNf6i@}FV@i 3ec`0Tp B,[$7Yƈ" G13cn[0 a 3 ?|[z"beQ *O [2r#!?33Ϊxλ a=$& C`9qخ,0$n<Z͐0u ]`DǓ`! tL';O_.ίi= LV&p\Gˎ-EDDh 3,vŊa/ 욁lb/s%Y&N0^pWIENDB`PK kN1M nuvola/32x32/actions/revert.pngUT anAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< GIDATxڄ @{'L>;W'YXfX+x@RC/&)u͵=kSG1aOǿ-1Z@:dѿ0ow'٥30|/ T G5?֥sg3-ZTL% ?s O]h4/=?q`ic3| , َ_b[T ~508E3i3JacF[pMc7yß_ oS_"R ]I!;sL s70 001+(ba+7g f=/=|Y!,þW,< 2Pd t|82x *q r +"lxعeéWL exu;[Nm' `!CT~A0T/a` ̬ A }1 *ng3lc`q"êcJ>XAIUAå ?ff|: : ?ebɠX\gfCjgo3,Λɰu[S%s|q04@ _HN K +Sæf1`^n)EYMS`d -TuԤl ]\?P\ǰ>38jX3l?ݗ \| C| @@ Z] 'o/_ 'ew+;ϟ "/x 4JӘAGa% o"R^dx&C@ĈRe\nðd* 珀?%) b9!2CK Xy̐T݂k ϴfRf/T;Ȁ )U @17 ~A!4̓p@0/,f⚑YSƘoK%ONDQL hW`9 :KQ ߁ # ,ܱׄ_hcc.$q, SP X^ e@ǁZP$Ԁʋ@@ԀYD7"ĂrCʎ@p@4CX & , /0(_K~-Z`@َfX /"V'~2hccb G(`p:Ö 2, NPD@a0(+"(9XmF-ah ). iD_Y0*=f |쐢 0B 11p3- !Y@LBx`O`#i?\#Yv( n[21pqAt͆D8 A2#8`E;×o~'fvfzT ,`Q4qi/`% ? ~` >PL6, ;/*b `^f(T0S!#)fn`Z̄p@ !޾gc`c&``x ^#_L j1ĂDw?P U, _|cxA]?013~)N< , ԗU̠ ǟ?ݼ늚`Aʈ@O2,&U`;L 2 \Z_~= {Zx(:}<yGp[>[B ?>~l!cIENDB`PK kN1rڂ nuvola/32x32/actions/roll.pngUT anAePQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bA1߿ ,,, `>333ï_4/_u[5? uP`cذa@,8 _$//):î]ssqq-KyD@>Z* SNNx)))7kkkaUU5 >}f]~= 77w hϟ?c%$$521 1xaҥ ?~|c033cdEQڵkYs@`Ǐ@q@KY3(o߾1U1Zh!âET`t0G>GL|FFFn&&&| P`;H 8tXYYr: \\`ǁ Gppp$Z ht&_9 Pr@~ 5,,Rm `taZA!M1K,:&# J< KAp^f; 9`>""ѕ͋aER ̢ @LJbBo/_d8<fpHY10| (g;VVۛ!!!:KXNB ,}5˗ =@QUUfؼy ))_ iFxThP Hwe Ă4 ۷o3 AæMegϟ?C}ecipid;=dTc)(uf1l۶f͚M 7!E#СlPc'ï_~/q-  ;ϟ?g( """ r!&&AZZl4Ga&D , ~ (|+#'Ϟ=[L` ?@YY }g303{aݺm  v ߾|f7dk%YX@!b4`pw hW?,AY -3NL ήv (!@Lh/jTa^0~ j ,o~MlmB|Ώ5@ydikkp`hll_޽׻E:xxYY1w0+2ˍ_'$@Lh Pİ{BBKG 3̛amb;;wfpudb4Jq @QRTLDbԓTe#Y7/9"AYY9PS*8T 4?32h ̀`g5V AlnNN0CL;6ݻfL[p `1sAHXTThJ &'Nͅ.~ˠ(`` .A 217'CWL@X}{0pqJ. *ku$??$GGGlԮ_u'зg-b``' 1l޸O lh@a|20m`\6ls o߾cpp`Fo`<2Vgsb`L(i X5@^={DP[9$@? ӝ;00<MZ/0}Va;ãON8n!@,8ZёuV~`뫣. ?kC U$,!e>nxÑ'^'~2:l@lO Ka?E_Pj&Js`M)]>&۽@= FdPM܋ vI N"(8l`_0\|s>}K kЀr@[x1|bA5FH+?~?,1 )`n Ll >`8},ɓg޾}/ LAHЧ'-e˖NNΞxɓ';Qe @D9d 05xAV_f`OClWC@1t (7IENDB`PKkN1H:^dnuvola/32x32/actions/rotate.pngUT BcnAfPQux MU{TgdBx Gl5 --jm̈́gWA:Ii#z,il+ V[5(mV7CH2ӱ}skܵs{XHTaٯf!% GIA+چH%rd5JAIUQ)'tO[ %;rG<*@4E(J[l8}I Qm 8o|3")&ƅ}'§M0S ]MpFasPnf#8|iMCro_uEw0`}5aaU_mRRI>Ec$ xxf'W}7g~LW+Y0"ւB)jL"W=*vhd8++˔bhX-۞׾PJ= v;,T86h~",M D L<2mK a)`h+%`uq#{#>ݽWxqPttPmWNf8n+hm^2頨 +˰W53`r[ p *68B3.'Czxg$ ӫd7([~|xlu>ْX)Phbn,-m?]3Dr'Ne3nO>貮>&|fwC-uSPhc35+5xО1vp-n:}(Q[9 ~>pa2 AOkoGn g>Oؖ"hExpC-zS)iЁh*,?8+-.x FrnZ肳\jY71Ma#p 4cM 8φ-KP4 FJ<.rj~b$PJp4%9zf<և`*!4 Ňi"^ݓ@5>K*w\ӊ!T^gDQ:xN#x ѵsn Wt~Ax%}:;dF ,ó00r"i8f>۠%گ|pQ|i|lW%@|w4|R|X{J%uښ Sz|r~K 2VRIiy[S`;ITMLYKߩN>z)ʐY#8rrS:ʖw@ћoWPKkN1H:^d#nuvola/32x32/actions/rotate_ccw.pngUT >cnAdPQux MU{TgdBx Gl5 --jm̈́gWA:Ii#z,il+ V[5(mV7CH2ӱ}skܵs{XHTaٯf!% GIA+چH%rd5JAIUQ)'tO[ %;rG<*@4E(J[l8}I Qm 8o|3")&ƅ}'§M0S ]MpFasPnf#8|iMCro_uEw0`}5aaU_mRRI>Ec$ xxf'W}7g~LW+Y0"ւB)jL"W=*vhd8++˔bhX-۞׾PJ= v;,T86h~",M D L<2mK a)`h+%`uq#{#>ݽWxqPttPmWNf8n+hm^2頨 +˰W53`r[ p *68B3.'Czxg$ ӫd7([~|xlu>ْX)Phbn,-m?]3Dr'Ne3nO>貮>&|fwC-uSPhc35+5xО1vp-n:}(Q[9 ~>pa2 AOkoGn g>Oؖ"hExpC-zS)iЁh*,?8+-.x FrnZ肳\jY71Ma#p 4cM 8φ-KP4 FJ<.rj~b$PJp4%9zf<և`*!4 Ňi"^ݓ@5>K*w\ӊ!T^gDQ:xN#x ѵsn Wt~Ax%}:;dF ,ó00r"i8f>۠%گ|pQ|i|lW%@|w4|R|X{J%uښ Sz|r~K 2VRIiy[S`;ITMLYKߩN>z)ʐY#8rrS:ʖw@ћoWPK kN1W##"nuvola/32x32/actions/rotate_cw.pngUT 0cnAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p c"7i/?P H13h4r}&+|Q`(Z7-KYJaf:" xg`f͠ 5>ª;8++3CJ3o٦ gU] @v@ e+i raWOK?eta`O* X l,,\\Dy8}篿 a:Oö=Y@vϿ:kS54}w A02Bo v. N? Fw@a:?P㟿Bbr?7ċ̬0`&\A{ϯ O 4JǗzw-+(qÿIfp%0Q`: 0*i/+O?apok?3 n:ʘg+. 1 t&@-24=Вk@, 7F9'0 T@00L L@6(ؙIX%?$@ fSU02;\#['@,ȭ@ [ ~_:?z3f`Lb?h`Wj f`MkZ:HUS0 A9?6#[.``&ZiQ7?Y~^&tW1qnXRi.G ߁%۷c . ^d`aohP+ b%;/h٠`+X` @1t g@ph4iLIENDB`PK kN1t?!  nuvola/32x32/actions/run.pngUT anAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@bAdddebF @  BA``buZ[vo-P= Xu9G=0(-$%uut啕dd-Zdx֭ p@$9h!#з @ P&0o >e2ԏL݈Lbc̗|@ڌDNWZIIFJTAK~f`|cN1/2Hq%6p"^ VZlc!b!ae-'ii"af )˫ 1={з|aÿ?@? $xYX N/@:XTC#DLĔIЀH3C70H~n`#?LL !h?e h> _]@n`s@8qt ){{د?@ @ uM0? t$ H"B__l!ϟ I} af&*@_a FǿA+#9@Lh ӣG~-BC@ Oo/ - ¢ Lȼ@LhgFP-3@ 3aL|`K1?2 609 W\ Ã/  I| A9'ރ?6vfgI;GNv?ВF6*:(a!TLD_C ~X_[QYYGČMSAI3'- XЋW 9@)`fd'P"#Й `#0*>zXl}E P!ҹ٫>2/0A ~3X0^8IyEf`WHB fd16}x 0v" @,h 8>{zՕJr@10޾|2͛ fВ >}bg* K-/A X,2=hHPѷVy E3ZK`b  GX r!ؿC&8~ń\=2˝;ۺCH*gFl+rA 0|#VDA. ah 4ĄA|;a|b\K71s "@a3sp0rSd; Gۯ_^z`` 2ˍ LY O<?850Zq J1` !XN<V_8- le^y2a(!x.Uuo| =?1|O1q[ y˗cvF9~˗S߿[AD?Q߇0b̦d/@կޞqO~l'@èOz>H 'A-@_W/g~.\r`K$£qU͈. 0c6ώf>kO  ?ֳ\>#@=ׁaBj[2IhĂEs>]>.0-0|&/߿?׍_ ~Hq 6ˁ~`Zv(uCpcB#q;4}CpL\*IENDB`PKkN1lW\ d !nuvola/32x32/actions/save_all.pngUT anAdPQux ViTS~YxY $HX DE%/l ("t< (J:nhXcIHD9RAe $7{[##OrTIRr ";uB.+=o=kWlקbyan7_9̼y8$*}BQª\9<f~`fD-}ۼˏm$EFDPi0u@8zʥppcq4}L_s)_)cѐ(8+ΎdҀ}ZSsp{)rX;*N?R9iAY2h3q`LQ#r8 5 %x̫t*(\{Z+-"Kfs"]haQt[2AXβa 608Bc* ?+w#:լbBk.Zzʿ+`SZԌr9+ c%TG2պ/ð"jhWȽb/Og0e(sS]@&ʉGKg 5Ƃ`j.c5M&6B!왶%At?jj Ug\nTFo;wG#*|ܦYKH1KC>.P6%3s>]% f&^t^f|.ki;JX+{h/߻mx\sǓ6kWi%mj$rE}ERwMC :\ܩ@)'O{r+'YSoǑPyeRH}e<;L(޵Eۓ FeOE}Ưxсhdޯd !/88Ov]7^J0|'ӿ&UK_~A_7Av|j4Jp\ coML[/_ǿr`ģp9[*w d됐?YFK/VJK.﮲م{bLE +pMRnOX8Rx(m8P 挫EܓwA[%f-_&y{j˘?[(F(˨pC[ ?(յ!5 v &:A!? `/~圙Jn&b 8$v3}!ƖN_~F2E58 þ"{?,Ȧ0>?-+og $+ ^}y%?׾\~|(? Ж+h½<1˱2I|V|Тyc)Ч_?j̺x"t5Ap+Am&D}P" (KRd1xpaUht<[xQVq2pٸjQ.]EHZշj>hΛZE ֫QE/˵=f}&\^|h[syV O ʜ;x1罀 ۖF'bM^Z&<Kj<Ͻ~8X=8`ړ[{$yl ܰdۼTOm4_ dRZpM&eq-2!ٓT~'[nZ\<^ YIXJ'r|sE(<_LoǷmSF7MR4%{:J_?΄];˽x&O7Q|8l asg? hsuۺ"Ό z<6XyƺeN5rn\nuI@j'IIPK jN1"nuvola/32x32/actions/signature.pngUT anAcPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxb?@bb`@,Mdu{.+~3b`_ dĂi e iHi;vq/> @I/d)t_^A9fbxe'ï?@Oy00|y X,3 t;Gy >b`0d`o ,FŌȕk/Å='aDu&.A2Œ`h90:\@Ff( 8Ȕ[S`.ϲY @zuБ?!E̓Q_@^JRu? TTOװY x Lᄆ c`K,t})á`g8Tm2C{ @3,хIߞgX2e7ģ,o_KS O!+\, {6%nuAu`Qls^ YEfy&d1P 0`|C@@\n"fP6bI`uoa_10 W0Nl @1###!=6, ]LC%޿PLaփW g CGCs3{qa r J .m 0 (i2.7-B<_cXxޙ;,T})+DT46̙%i ̫_kĉOh p0s3iA @8@UaټNu-q ` &g ^cxb_~)~%1@{l,лWẊ_OɧS@ ^- eьb M"s v`X*Hos>1΂|Ɗ ANV 0hY::`aof^~y! @2FqRNuyYn3@8 ŰlCw7lx1,JsQntSpK| B(@-6 s2I4ߚ_P,WB3#C7=sW qIENDB`PK \oN1ͽ #nuvola/32x32/actions/spellcheck.pngUT jnAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@ @ 5 J ~ėx9d.@<^B ~ ρV Oáq*C= 9`?N 35_@E 3⃸B Ӏ*q(5 p+_| ?XY@?@5+< ĺ@,ğqb1 m@, @论M\2WA} l$@jpyv+#C,K]|b?###Ur!'C})48=$r30X@Y@ف8j0D8Chq8}5@z=h ķɰ Abr:Co70}w@ 񫠆-T9*n ?R60jq.#9` b_4Ci~hMPPHAJp NeFF-QQ?n{6HV; 0O@jA_ ŀRR¨o7ׯ3XTw9T@h ~/4T^@ـ=XqYB]JAڊG _c8СlVFI 2ːXGL:LNy?Mv6Y++#/ǎ0\9u WGͻ?$w0x> >,/C&8kQ.A"L xUT=>_p9ӌ gdc`Q@pθ՜ćOs22pgF6&v`rawvgkV1\ a,HcR`o}ak&F[Y& S22"F& F6LNV U <`?_pY.} ( $o._0H61U11?{,fdhdd0הa fരd` 6cy4 ?1D, uf Z10rp2<,b8o@tٙ#iG_1_ƙS '_?r # ϗ =~,35EF{eFb,&6?+n]:pY M/@CZCAa;ja=?Fş߿ օ G- JLH &Y~frp;7f`,)IC?.-&qbBn;0+nd?.c|[W1ܺ|7@}rpBΆp 4ǿ s-|ؒ ,aۍn9·|6@ h͟ W==_~0۲ {?2!6b9 I|| X.: >0!X`ڍ+Ƅaш)Ԑ`Dy*5ƕ WnZCD@U ~s\̽}mAInqf99ר*7YnrKZcwuڅT(:h 8bz9c\ͿztQU^ڱgҾLM+^ x)xɾl2Z H< i&.董ԧ/N,xd9tNK7/ș>hj ۰] X_8.W9 s%1s/ifٗtV>`-ug8\nٚƆ Xtpײ~M'$LLy\:KFs2wptcEwX{_ҡ-̵dq w 5/R|=mQr0{oc{ׯ@U9xhkRŴZ:8Zj0(MHnf MDB5`Ldkj2u0mY1 5 Ԛ'9C&Ȧ5Q Ic uG锇,->78 ijJ2>YX8Mo^}.LjH8"@4@%SzAw­ cc3s;[@w]Spo_7&\rT矺STݢ-".$< ëAuݖ/O[L0IRvj]gIO<~ b0 $Eqα~I.S;ۑcpN+ ?~?+mr^;rnVڮA5Xh@;8ےdSizᡂEov`7? VZ2‹{N~ DOFl{L x~'yK͵,<d8  &a`fç٘z;xv dPS`nPb7  XJ)_8÷]掲rm R CUSʈr `DO #"S>^V@_A?X9_K~308#.8}+C ػ?a~Y??2r! xQs PPb` 2 _?VIj,\`/pÜ, ?-N" &|XY,4-^ppb F ~QS=˃AJ'Зk32@3 & {6A 30WY@ԁtqUVZԗ㏿ 02yo~_@2-'(S Xp_::* {-/CI&s/xX3}͗2 Κ?bHb1ajQ@`!\3g1HK07@ˁ>o0{0 ߠʁh|Ȅ-ٍᷧ:00,Í ܬ !:Xa_pbde 6\^U%A6+%O?A- A? 90D|0Uߟ^&?0 w ll izDX0| 2/_O(/ |9/ǀ^#*L˞?p$'oO0Hq'`  2 R|L 2 , # r, l bV-ݔWtU նZc'z o3d38kq2|8aPgf?`$<tD¢sp1 t90˰3ezæ ߀pt dfbvtr8XNcfx 6`z5>Λ 'P {2|\!0ky@G0*#&(zo Lwo3 "L M_`=~a{d`Y1rf<@`d8~껩r341 %% l1331~D+(.8%2yý?4$X~3aDtk tڥׯxlfX170XCI?)!._%Qv  r RhbX|TG fFlU[._ZS/L DXؙ ?#=@!;` n`QxFVK*H# @wNh40(,jZ>IENDB`PKkN1VIr nuvola/32x32/actions/stop.pngUT *cnAcPQux %i\$oDMX"!زIZE AT(hʢUPU/DI EhQY4e 4~s|9<-[Bdq]1]xc>poc2I &eQcMỶfqpNK.5M u y(t+l ȸ;R)"1Q"nhI8E4HA* e*aQ#h_~лYgy9d}u$>~{z'/:4 )经wle ΑCTG=rʢ`:sEK8-_OUz<)c_0/!ˢS&~d]$lA{TS<'Ʈt}jA` 6.yl7)T̒[&т$Ÿ* Qݛ R:j vU;M_ʁg|u *i71';5@9ߓ/.AӬ9MU1byc_72굶DGe.z+R@꩙f+f6Crm=YTy&'H@F)H1#w$D4l *JwUπ;'?ʎ[^;a~ 'Նֽ adL٧J#ӊ)Cjz+HqtCb}4*Tji`? ìð삞'/-Y:{A'ݍYxݫgNBh}TT{ ]*&EĠ=.y:(p 4bary3ȅumʝm$p 7` >X}y0:zHhyz{JTeq#yڴ}x? dQ*O s~bޖ :{< O@Р8\o;ѠUnyވGf/DZ7[z-2!%$u.,gd%8(fihPvNZw:d'lG1e9;.vNq6Hisw7R&1 My0ˎa,dnRLh&XyeT VjtkKGfs'yE#  zA߳YД"j[RC⣫YwNn/K]exKVkP|,tSq&| 80jiڒOA߻jc j{G:P 48\qQufqµ8_& g+>|NdU:cљ@2^$~ xٷp<-g(>&pzj$ԗ-̟7oBn<;vVj k60)4\~Uf8}ّ%wQBs{7džEe +#.P'zeOyjz`KP1N[oyH췆_inϥ0Kk]FEׂC:#u`^j{ }d2ubcIQfxoeDY&9:s9mےz8I6 2Kj__0iY˧(j ɸWF+ޜ 9Z :N41J9=. l,/0< ,vq+OD8%q(,͜*j ¨_yO,~0=F&T*qHVp_zL%{~2bL.9דB(=gnD8>; f̂JCyr :J=n }S__>ۏ sE-ܰF69Mp?/QvԾ+zĜNQ#m/*ӛz|<2C/O7-һUcKZO|F]U +9(k kl;3^b]"{D7R8+,ǐ^ wJ`jT kki)㧸ܻgVNĻRy7o'p-U]f*l|{ dmȚEhw3JGnfS?5DaB.qo5졸>JO!* ݜ9.BoS<)um| η¬rFj)* Yy{ Ib1MMng;ֵ9a^<<V.9T[yz#t D"f-#P 1n`?@9 XKPK jN135&nuvola/32x32/actions/tab_duplicate.pngUT anAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?0f32a @bF>F?X=dR2! &J翐H?} ?ĀK /~p׵cצ$'n,!#$ AIA ?>dO:a-%'ϝVgMzH" ?& q031"`cx7:79x}<+ )61-ne` #hd#-O^e'{k  ?ڿB/ 5yK[ e P?0= (wa)p+_11OC X$0^`sTTgrï? В ̊e+_,LuFqF&?&Z#;7ox~ HWwۿV=)Vf,  -n& l?2%8LLLXYY7(@!gC`>^%+- Y R~'O}~MS`{lFDFN7ȾǓa|#1-@'ӎIENDB`PK jN1H nuvola/32x32/actions/tab_new.pngUT anAfPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1 *fb 悰%58pq2<57T ;2qb"֥  LM-|,ڲs0wn "eOY&t?fNF~&6fPP)e ˁo3q0ԝ "bڋV` FX.đA 4)CwF7k2rad|H3oac`XL!^bAٙsq<]9 ?|d`gx5${8D8XX0fxm Ј[ !PT z %ٱk{Rxť|=ÿ//)T(G lؿ10~cý7Ă=߿4@C'ro~}?ß?>c[3~Y00rg2`Y /#ȣG O0~QS4;М u~s<=?)ccwگOKX؀?;ßc ԸG^?#<5L,t oee>3p}Ƞr/?oQlx8RQ*"aPd`TB7 +U!! 3  ֒o裨(Mkk_|'T6`P<'ן? lǑwr 0ATQɃ;,Sgwrj,b?2mWKn?03S=8`cE-(𙘾qppBBv0K444&l toF_ab{yͻ2]|k'JZy% L]򇁉ۋ0mf`eeexݿk׮- ?0*))5773pqq2'`@ &f;v*{h݁+R z mn.@gcfeae@WoLagg? GPP @er lFAasNje`&zXzy X ABԆ,@B{lf% `h1"Yh(rff `\ `2ߌA,aff@ agRX[h#''q`hh u w,AFp|  ),. @ 9XhS@~\0>#y 9 # vTs TF.TK:H1Mt hd3. $|HH?4A!wt6<_E^bANW )0Š(AtcI (x1?a|b9@p`IENDB`PK jN1??'nuvola/32x32/actions/tab_new_raised.pngUT anAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b14AD_b0<} 1320praUys 9N fb&z[@12(HŠ0: 7\`.( <P &\` V%cDXuVfn| ,lAf0(eH=7] t(;,c$(p̌7?bxV1L TMWZ. pF? EE. oX00~4检 Ҝt^??1!¸K}tx4 bD \FFHTF `$H fhSDe[T>]Y i V\q9J@@;Lv ߿>F$y8xsy;|*~PJZnniEןp3ew {))g@N &RnJ&,ÿ/ 20P>0p 3XPb ʿhQxtcckؿ}_={s, _84^dbdb ÷7?~ ˿|2 x^sAc/_@i, 7CwrN 02g' B=W&76Ffi%@1[10g}Xmf`z1C15$9s??`qŷÙn\ PBϟ?222Euuulbׯ_ 1C_k׮N8)ix=Ӏ Obxp!CJ^i)Pb9s ׬\2 Xx999ZCo,lx%D@((_` fff0WDPfdf$?'B..~HHb?`E#02DBPnߟ?H faa`>@C$ `A9 @0L\o 3ao`_`.bb,DE%Ծ}= L`_o~ ;.88x%NS@&&%@Y;MNXX~-*=43AZ 6(NXـlSpf(:pZJ g\{>b ~ 2* d!AaCge_4 hApX. j8 tL  9n iO ^` !-01C P@(``p$w X(211!)Ğ!)["aeee @`'篠5#8: .b>: 1P.6 X㷁U,QFx;V#j1\m ز8sd5IENDB`PK jN1ao]#nuvola/32x32/actions/tab_remove.pngUT anAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p  ߟn&vGS𓕅733FFuu6XX6gڵwX0_Naaa55 02022Y[nCoSq`keN4Ǖo-36qee FbbA8cBOR'O?/^qx rQFu99, l ϟO^u/G6߿ ;`s?;ے2A $OWo,,Tga`t s\9ׯв1"++Q!@p|``xuW{uIMLD}攐bರ``{۾} 7i P3dUTT$$$899~EVE221鉢 kR-8=!;#G*?>#!b ffpL; Va`b[7l~EX ~߿ǰڵ_. g>10/0S"@tr3<;{8lEENyÿ_&/0YXIV9@lJRa`: @h 'P,H@ T{@%0@p012Jhi[iav 6{98/s-<rrQ3~ v(n al Q?C U6agX(!Y ?dgg𔐈xq쩟?~$2,@ 'd{(?`<( !%nhߏ.-^`=efGR銊J3 db`ffF^~Ͱ}N߿? (kgpQ֩ QF0R"m33} gcc=<m@J3 ffx?xP3@ @p&ΤU /`Q ZQKg,nM, K938bf`RB8￿؀d9 ExxY l, f1FǰD2f̬R c&̈́Pٙg7o z/ . > XY i<+ Ђ@.ٳ.\J0X_-F} W$@pq{yS.>oiV͂"K/u %ϟp/_Af@!?..Np%\`'²6?xacbb[@p01=@9x;ϟĄE =i9rhaB 6FFzĄh0Q@M 4#R#j!p@ek`^}2!Ga#P DbfS nG$ Ȁn} l Ɓ GJIENDB`PK jN1sII"nuvola/32x32/actions/thumbnail.pngUT anAdPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bA$%%d2ȁ BhAJ ? dҟd&?ڵf'@8&11QXZZ_ L? srBAf3|_(w@8I^^AJJ`YFC1 888! T ao3g.0}j$>!7@ d3z (@2b8 X(8l2?8l.^6fD2OPt ӟ 20/`0t>3~:(ӈcfabebZT s#:  aJ`Np~#gPb`cdbjAv` `cD $7(0Ph93@,(1㝗lЗJ ?Q ߁0 #,D @Ab=rFH: 0=38TQ@ w`r01.;(j V(`jb=31ڂ0c`A?/ۻ.oZ L_21C d&E! '*Pj%&#UJͥ a3㳛.͈a-;0Q㆑|`3 m88;l:_o xy 7Ë6.ppe#3.NAOOn0ïK<` j^b`ߟ wΟ`zÝ,7`|030450۳AA^\8 c8 T2p&09 {`fIg4?a=& Q`" (HFU1@,Ŝj?V3ZZp-B_3C4hS-?|d`Ӄ d`Yd0 #Pa`p^ 8f`pjRcW)a(*AJ?`ËGBh#n3[9@أZ+7o oxcԔň3~UqT. ,i8}؁)؂a?d033@aM7!88?Ԫc+РR Lؘ l0GHDY 8\bF)fP4r TcĄ^ b6qEAe۷bJnuvola/32x32/actions/Thumbs.dbUT VMdPQux  <glc>Bsʒ(":u8JIJ(#!ɖelIB,c0u{u1 waHPBIu~PSQhgfdffbdbbƲ}oA ֡eebabۍ bsF!Q#x!h!wC302pBT4!vZ1y:ç~F/W#_j;z]{)8o`hd~q K+kgϺ =ȫbo'$IJ~0Q\iYyEƦ-/;:vÏF?|svnD^^Dž/EECCMDž`9iK yXR$L*]*!td%j`: \4D$zlcotOƯl"K4e}'ܹ=*8̎J޾mBxzP<@ Yp&VgoD]P ˳GφT z8 ,2Ivu:y b%^1^Ď|įL?~p349z!jdP33vMNafEa u@5"cn+%=ky.2c A9^"4— 3Wb2|nm)#,~KILGZ%lh=K׊G7]&yD>P[YOJF# E Teb8nawLYTdsԉeѪRY%::CoTUӋu ԕ>Bf1r]>{w?2UF: cͩ7f,f^h̾9Mbͱ/Jw> 7"d$T>p-*VUVj.R$aaDWMzV؝H[:؝޵+ T'5k]FEOcz/Qv䂝k{ے ׅ.!TuЋȬ멲Pgd_*#F{4c^S] Br7x:y[M Ktڠ8ˊ5{okDw׺ˈ I L{ٖoyzvΖSqk?r Yz?| _noWw/Z@:|K_>gI<"mPx;гD{MH0drXs뫞C!{RY)sdO7BBrO~uPxved;G9OGCޏ?Dպ6hWǞ`*zps@/\ސ/R8GjE誕 ҫ>FՓ~2%-Xϐ1&3xy$+aմw{q%;W&ToY%?ּ ;' &&ϭvR^,!=Huq;d;\Ɠ7e8*v2W)\G\COIw,N%TC7bC,EfRe53U(ՙz!zIG0 !x̴bFo;-2g#*ש3陽#5Io^ҡ9-T6kqz~' Բ%_&QQO1XbZ@Ԝw2o)n97gڤ7\_ӜUJҏ5Q<|=iZѓO75B<ׯ*LOhM<qUЋ*vknMLk_YCLu>0c/(z*|V0G+(:tO\ގe}mN柏*I> pY_ڼyy/;_O5A緲l̶s8o{v6r jE8J]X'"SYG kREZ0>J1Cد(9H'W k:>W[1Z1f!hieg^UЋ F*b}K&S (w+A:u+RvV͛:GRjVN{.]FiTiHT3EfԶn OKeBE7x 4GLWv&~fxYIZ !nUxɯ6թR[awq|ZL`LNF 65ف ;6WKuçm&=_Fp[s_}~6!}L's`ILkgS L@ϵzmyz*1D[m7ܼË퇝?". X\讋U`B3xpÜM1ȍ¹b[TY{-<=OCfOU9 U-\X Cw p\DF$1>BĦփosåQXü=YҮ΃˟.9S5QZQcZFFsά%&y?grSr WXmk~-~ͳL3 eyǸ,ҌQ/&;NdYiqPyr Ax )ǕЙm;ܥ>gJ.č4pd߰RJ)Y4+Ѱ]#s7O"^!إ?ɰuǗ6MxTg6H&LBIʬ2;?:ﳿsKٱ9T~É5e9w,G_XE7ZJEd_ġƒ…2I*y+UAa XL)9{U5D^բ0{۩sf4L;*-} Y:D"~;u ~MV)-NX3h w5'"_/:Qp2_+ڸ7?žr/bb۸ ǶU&HӡiΏUoPc]Q:a:{T١mk&q,cmIobK|Q%Q:`X`^Kt?`kSt&OM鷍2h>69ʎ..jO&iG'6ӽC⥷k]M3S7'Pv:7^ПV7v<Q )D=ى,Ygg,Y&2Y/EٲNdɞ;}>9sǹ\/}]mO 8goiTiL^LYh69OK]>ӜP ~*Ǡ@pqEUUp\!}P?Dg{=Eɭ|;xbEzyg.{DQ]d{<^iNqQ(mAgU{9qr7l@SL8`ZA!1OM ~"OngƋ*xV>!xc|JJ% >Oe}V7U_HoQ.[S?ɏ 2VK{\Kou.#lESzHl!!/L¼D<2/4$U奼$t$i3n9썆IOog1i])fvh`KJ+yGq#(࣓k!M#+U!%ѹN!#+qt VE(ɋ ]p̵t;پ;sReN:8d-MN]}z)N󓋑Ɖ-L$T+ }n-䷾4ۃM EǭZ1[c"+.y<;s'90|O?]u(9Ͼ?[?U_/ibqPg?[U%og^B_@ @0GOQÁ -@<$I@2HR͙ >@ '(b(0gל`@P |jZF hZV h:N׼`z>oϴ0 ki0w0 ",+*&l;?"ӿ̿vY@J6t elXHe"]F%hRE=$x,3w 0r)Nƹ,fg' W:P 4|cv;qP~U>^]:L7j,uS TT}_fE\0hEʽisc? vDhzZÔZ.A&fNje&}RV-NŒAaeֶu-i{ fHVk)ZUM9&2UzN;z[􇔯1d[-̜;n8bWh9n]Y< %f*+1տZtqzN q N+q %T+WS3RBNDJ9׎% NyJΓ=tӥp K_ QrX) {~˯y;ڥR. ?a3խb:5\OBʲ>WDA^[|߭~XozLmɺ;@%r Hw}'GiKqy맛<ńV}y*|^'-h\PKX%4 'X .mD~F+Pv\υjv?nnwv#׿JBys};O7~_?qÃEڭɶECftʎz55vdBn8oAq %%/neS׾. \ ;v@ ,'~:0`;?= 2Aj|Ǘx׷IsQDž$1;+Âi3A8BxHA!Lޏ.U% Bb$f蜛t=t[Of8y~(ADXKյzW1<{Ӆ;(]sY}"5D0zkY9&c'hʄN|))J!ViZy~lvïoќ^Ç_1Ѹ#H=eI) -V/f,>PHb'c:n|\rJ}yN^,+,PM~mXAB&d=5z;XymH@PC 2Ǻ:Fdn},:q $,gwML8X/>_wkz88i32Qz ) Ff$,싌o¬zZY)<]O=*=uu1. )Oȟ/ɩ;Z1q?ȴF"(4Nj:g4DJ <:>"n ,sW{@߰bsBj9VlsIHuzU"h#{jԘت͞[Mz݃ē%=a%jRSo"4cN|OwyoCR6}DtJ u%(қ4%OZkZ-9k<62g7&%q-ԯXWN!L/J-K~R"8Bq-ެ3z\Xjj{bxGs G~7'Z~ {.jDA*rieHsT±f7N2 4&auvӽˁ: i5Gh<}' 0ɵNu! :wM#֕_@iP)AKX8ƳhEuyRTIѣ[AI֢-!'7m&9}Ul󶉉 u[w)_*ͷeELܺyK=ʴ-<92+I8VB i͞ j9jt&(?/Ec܌8 {x|Bx$sW"lJ?muqY'~H8}hQ?^ѷBN,6{5e;M%)]A]x4S\?%6ݩFL>J|C%+IQ{Ɠq܈1'߲o~qG8JōrZGuI7vA?:b%㜹,9 ͷ/A/cxtԴsyt5|IB*5ĩzZ ?gY^6)T9SsR'$C{7yXUNt=#slKi J=O?fy"w"NCP#x-^bQb;"##|䮋]K#e;4o5rI_D t/m`kTalU4+=*p?ZY:Ww~@ggS[`??>Oԧ"=߽UkfM;5}乕M8nt;muz'p˨&VО܄_pɮn|ş{ɸh)fɟ)+n Ju^ޖa+JQ7_1U 72¾ Z%=7MxD(o.4φMTDH]7p5R'[Yi=wKmƎl YyAhђG&;v炭_вH}׽8K] 4꺶weȟ~,_/:v W#7:bT&Tܓ6b:q\aSj{L<-bO>JʡLBIv-<41f+nl6,"4SKxX"kq-I"q,5p EXɐױ,t67I KD0k֊x4~v0Z F]*Vp3 #nǾ%JE,yLE:$f2>J/MY^E i6u #EYEOZwUwXns_~[S"Q =hBSZbܛ%xu$d43/Qo /aěКmtG4SJ*9B#֎În7{ 8XU4-o38X󐽋yydc:$u1O RI2{XSmS#MsW:;ORUk+ZkI5LGLrQRydt!sN䧬yƋ͏I) DjUX.g$ˊ)Oɽ  40:x#n WqMsf!`&)`@xkN 0ZV} ` p1`<x<_I </^?_^?h֓wbؗ+wp"Zr$!P1ZIl|uoJ!"q(`u;Aş2ƊJD+x4V6yUu}]w1d?%{%Pȡ#G+!$xwvN8JøZ :;̭յʉH)UnWz'zN8]8t)=?N $f4Z Ƙ9KakLٌ{{$\[ϛ!0X$S(\ĩ #^#*vHVIu?Qtk~/6[ZY œiXaqwʻIG둼A5w MKdm<2[A5"1rtbӅH*r}=2c氳/6nvfn^o_j cWkN) 0V?aWM`Q#U5ϩ!c-t9v5}ouK3+u'uS>uyaXR/K)(6UJfl֫fG60 L;{,dcg%g c'Vʝ?|侮Eb :p5]!t]rpjf7u,z8@&v&ŋb5>F,Jڝ#$Sqmڼ?B sr#gGԼ7*Qr5E%GTA*Q;oCʶnw4~m5y<ԇL6RՐBxB*h*s;uץ(AaTk^Z{ȁ& ?ػ/4HsŬz볠o58%HKSꚚ%:6osݕO'm*L{\NebG]w gcN`M̂-{\[7OYo/:9Z^y$ƭF])nx3ɼX/1koL >Z=;w#XM=ؼ4A*҅ďǒ>_r2SEloB\T%#M<2s{JROipɸW сL蛟Hre(~㰙F^Meq ?}fZ:1XF5Kl6'd+Ax>ߟD[/Lu]0ER ~nf,mr;&xb +zi5'kF'O ެIl`wVYtIBjzcsSP8|=t6 A^:Vqnͤa:DV%mM F!8>\E73кi۟CMt!|W6D4iXn!hF[Jd{  3} ^÷vn^fg}i&3pQEلO֏Y$peau#bW]{k&9s]JNؒH֚ėc|-|w |yяn+,n]`<]F$Qr*bahG:D?ď(F/.6atk?hw>Jxٶk1>ӛ9{MX!V% ~/x{?=d0k&8Yyԇ7f!IZ xdj7JtR9wv-5{%i%ڙ7-/j,_yj>r4Eׇ #כjw0 jjk;M"G`"AA "MJ (H HA+H1 H -1B w9Wo;soַ2z{GUMOAs8}&f➧z]Fėkz#^s'{D{l&4Ήh9de#VꞈJ'^`U*wW9٭1c8zA$ZQMB5:2EѣfzGuKI^hYYqWn֪ [jj}oAO}?` ":X#Dƃ5$ZiPS?w醏Y*x+iވGgYɴ( zhjM?>?.`ғB$|\Ӣ8f734#.4.[a3n y \ pҐEY?)Nvڼ3iQwqol]u~AN$,yFwLw)dNg0ZG%jB-z !gU˾V>QYᎦ-ۭ╄)X|Q,mwqKc*CQ[q6 ڡ)R( ߽oa4P}qknCi.krK+7JZn[BRT) ǝǟRN7U*Pd5m?xH-=rb 4y+&f+WӸ|ԭ{6V0Xo{ikDƉ0PFbҌ:a^0d5N_W󪔶AW{ɕ%.q o`YdzvT1pYe_\Ug8S =]P /;n?V}0kk!5ƹ?BqM 3 nЉLjWM:dY-[%jޔ!Bb3'0ڪݍ: A#R9!$ֻe.fA!Qqy)9sǢ ѝ LFx%"n! 8!3uD="NᚍhF3P/ۊ}Pi0)cW5ˡ0.w!ZhzMkbmLlg=_L-S2&#GTJDaz؜K/CHPJ5G߾A(z !b` 8SW\HR5= t{ߡ=:"5Ia=(qH@Mw> i#?Iӝ@ l hɯ_d(|g6Qk1a ,jW~]a81]+KsX rS B0 xD@ @  /̯>% H@? @2, @[(e{**j:g-hh>v t]@7|-{?"0 #(0|H80|&)`W?P%s<,K? Ё``k:l[?7n9Cӊz-Dq#ruEQw : Jo  {?nd|'!1(#= EªmE/Qm7r-1?Se ̕iO9C$d*Nᑣo6.xoc'#\_Ccҩ+AZ?+7hb_{z~bAE܃oX0瀲gJK(s | [$Ѕg0k^ѭ?jˑҌj">-@ d0ϙ Z7^S=k& K䊔 jyl~Αܽ"SٛG?1&‰9-0׋g#-iTko+lzW!2VЌS %RRMgo\_Fөe3y,b%=q `S¸ǐ?9vٙm3<Ȗ2ۨqc،ZʆmL^ix?q'nn8VyJ<ج2W>TS5YSZ{ca/eڿ|nmO$[^odE2wh>̒ײm- Vbrȥ7eM$Pr]jz67mFfi4V v~/͌=Aaw;?T=3qMlXƌON7 A40)1IF fܻo굫ڵ嗟_?eS G@]W* of-o>}wf =`ioX09 @Pr9]2._bYjX~B$9jKhV7"bq\NzɜB2گ?i說Wӫ؄!q6ԘXz/2< gR&oiH|W¾v2i]&JC=ی@5mGqiWve=&Ӌ/nB2)ScM;> ri2ꕸŖmH_Wkz'xhe*#]%S/vU]EzdsN^}iyqY&1 T6d6.<{eȥ6j#qyẇ=i98ZGR 2 +'z_4.9~a/ ( wjTvo ll8V'LhcAx³mWqsv.X?u5ah@.zǝ%J(zg0a9F)Ҥ+Z;OͻGUٚ'hgH)寺s#7efٽSg ˶QhVyՉu5Pwe{@ wN_Ay6yNĹIT^ Wn/p*TunD5ei))`YA;UZ7Fv70DS!1h)L[ಞ7*Jj 8p oVtRzn?ͩ%Th lD27A/XN/.U2z F(Dyۯ8Qnq@WOtYwхZQ{[hEyE/aWY#ZBҭ>{ڟ#i7/P1IĬOFt{wXJq4 |AA5\tK,lyߗNG*%52s{}z )0 5j +;0|EqbpR S枉FܱXQ>rlIY+ō|:ې۟؅Dy_b K7ɳ:oo= Dg#a>xt>eU`h.ΔxGH> $ل=UXD='n^>2ҸuշQ=ػuQDPzS街4n@C/s E@"`(BH1 B;iR]<ͼ7w9q7kd&߷w֎8ἜYD K| ,+g7Kv=jjO8N hb$_Bx%_Kk?UD fF=Gįugt9)eԅ./VzUId0QMSш%fmu6"7e7YP3zxhaތ$]80Y1$<+ )![8Ghum5LBWS9wM5& uW&sY;=:wn (, N8V7 fy>[\b ݬ2AbiǪU9t1IdL Y? {|Ix=[ iB62W}.᫼nkBFgRN9嶩|1c$-K}4 Gʢ_D wk τc9ϝ*,Fw*ު5v;{Dlq.=֍;a(iqzh^Ux>3Z tr4L>cZAWx6[N(KNcVtDݩCH_ikWvMMd<3]4v;o]2H7{]W$,)<Ύ0~'T@`mN:Uw։ogcQ ޛA+%mgoD:EfuZ03٧ZE8צZWg c7<4&h)N!lb5j {U(բv< e\CHdD"u* V1q$1[3m9/m[M6{3R)0va݅B7nXQZ7gAKd'T 8뚰-S3ĥe,kmQ]0.U^?T6j Ff5错*(T frs3I-sY A8ǂu/ir7GW^.&Wc0\GH)-=k*UHCKX5Wl'kkWOnf$u'M(m5v /wq{XSw_?mWz5՗6tΜDK͆L3?ɦ{JF߿̀GޑT.a,`p^1S;u\=RdwzRyd38<@ P')4@ gZ,@y_wL`X68.px% \9S  H p ͥ F@PnM@Pu@[ tG C0LS 0};p\7<//͙ 9/X~_zf?8rљ1{Bl %cNi(ɯ*7ݫYѻ4=j( K/')~R%`Dіw͸K5ss }`}٭ hz$9u}Р:{|;mp~DK1A[H䧳p$LzT8!n~FtT&(ˆ\l]3X4녚"wlq%jpkV^a m{ʇ Ҹ3БauYTVbۚ B7SZ8)qXRV0*oLbӟ6 34f5 aka9٤|3^ 5pCߟ##ξ$J^׻-fB2]`7mkhO'OQ_CGBCRfhrտ=Eu_)M_"E:BmgK0)O)CB.4+_h:=~ܲ_FQX4c %%2 e ,f9u}R*M\7 96ce7a0 plr&_?\iǷpZ) ԁaevQ^RI/^=ћoONx>QQr=9{ %\a4JKCk7vŎWsNɠ]]Ը4YN4NTiǷ@ݢpӶqXKm:óqʋ6iBY#dj4)I9kgӓ1|1~VU^ I@*BLl ⓯B4ͤ-ܒ?sD`rYݖ̾SF.A]VUl&ۓ I&yv:4MHDHȥvf MҴ'CqN2Е<5c=" {vV "2Y?}۴d!墛~K3aj[IdL#(J:o6M*ȘjDgHۢ!'JCs@{Ytgԥ\0/>fLJ_% 1EjVڪ[S^~UQ;\1!$ezEHeinL>ypMntג}t:aif(57w @3yi,aT\?߯}.$qlY;ctN=}bAىoY%f5wtCOl66f}kCoY#V{y3VSl<{X0%LFrHDsF5"FCL/OeN7阹(܎}Q\l0ijPD+G\b[cb\,RiGp7EF$VQkgnфq=/ZZg>3p6wCjϸ_ü}&gCmC ]E3?~?p~rR{*ߐ e%$5{Ux=RMŘ:QRC&wwgRWH{&c~]@>ը{>' ^4/Կ_^RЧ,c lNϛ88^Ia-R^6opZع>wh97Kscj;:v8qZ>eתW$¶}€"e`B$xnuمwf9H77o}b9wwfR+ coR򅇘XG?(L7i5'NȰO@M\NJ.6I&$2>3ݩ9yehv#n[ՕX ~[Tj]:x/8JaldE{|W"wt4 )b9QQ7RGՋ#H^ jQLn]L L1.BL"!Ln;9h|n՞,-ob-55=cCZ c@W|H"R=v|/DȡTvWV7 /\ ,v, 8ovD|fHs"q$0541@y}FY˶X_{uU>|=f[~XhnqWUA.?gX/a\#(.h^2"p-_g`=P*E[dqt ;SWy-?~7Ѹi;gW,ּÀxD8UY[ePs2Fq;Ѧ6VUڊsq)z(ͮ9[[oB=rnD}ZeэBDvoZZBD/zX?0u(U3 o)WWnMEWQ,juLшGKOw*Ͻ$ ŸxnE%i*Өڧo(>wwRJ[:.KAk%}+-(GR׷9K^m a{n8A]=6>pdznP^23|, kN qF>>uھCw׸e6sV*M[T~l/ӛɒrW2旅 t4%#zGvl{ۼnuikgQ#O4ճg X z>m|ZS[?fљBryJ Qe!d*s/!BFUݑSKۥĄ%审^V26k-IŐb䬻<?e|xo+bf?iPDR;ªml4UpkjLw"^4QZ:-drPCm'Ѩ9Uҷj\XE h3?7Ѹ1 Y؀}dxrF¯W0UT9?ߟ?gP( JA{Sz7AsiRA %@T&UiA$tIAJ@z眏s;?f}gݝݝۣ?/տq L( (BB1-8K!W16$nC˱OCQCrѲþi6N\ôMcըBC+y>`:d.i"7L3C_֡2ҩ郃M4XjHBy&&U6[uM3根rR@MC \^BňGx {̐H:d?k4jOęX7RK3|Qj.>Dt N)VJțfM1ԪqpٚwU}MSZN(F/D,C489^DvRR헳혌ONWyDpؼ|k3p08 ` ` X {8 8N3!@Ng$x^7|_ Y ` {߉ @$D yIS_&'e2YͿr#Vo}>sR:D*!2v ʫۆCk9G)-%`S*DViB+wB{NE$įk3+5FWg26 $~1IyJc|Y(8ZV7H !]˹ Tgp {XaoA)nۖkhVaoS %#OAXJ|̨'u0t߸Vf}Z=Cq\~8[7%oH2lauۜl>ېk[yKW|~%>M?ډ|{>~BEml~t'bՑczv9+ANfknqe8g>CFz!x>7lڑ|^!%8v q7}dфjbqVRbF3a=ٜDEfX mCs.9g/ f0tK珬?Sp0StwWh ?7qw񋾯Z)v ILټ= dp/1OO_ʔ~0 @{ '$DV *j@GPŬ`svRYO9tH֙f07`T# JqpuIǂO{~PEDj[T^0-l#pcOOUIP+]7nV}B⬿Ε'RJoZ=(桙DkSi2#>45@qO CQAcQ69JS8kiCs3nL/˟sqA~~?e]%KQbBD?bt%rkm9@|{?}Ke HS5wy䷡2k==&ndtLbp &,N+iUj)E+Ә1B-&xs-;t+bi(Ҳ~J(`ǘSq gaC=i5;ep"zuib qM<4t 9L&'1ydm]-5V%GkHPe$x{봭z`;a4ݺbF^r~ػtȋEih'A?& -ѳ#II`&bsu2[:-jh_gB27 W|\ 7̹FkҦMU s5pքd=<3h_>ީEyM@@=GGÂCn;#OD~֭;>Pŋs-!5tl,͗^EQ/*:T3\kȺ T.nR{Tzp +bN~/>UkG%jt:&%Uo#05G~~ųVAT *2M2w_keFLtXjRȨC}ֵ C\%1pn5XH_3yJ[W\8g';)fːJxjqDСë ucC_cZ;ȺE:TRֻEEo֣}Eoŀ( (D$9Ӣd$g0HZ䬀A YddP݀@CW^sSgjU?z-|kOQLK[G؋܋1!(șI*DhS4)y'E }t xTh"&kɮeZyDrГ,tVJ$ .m^_` kcy%qKK<75(u7N6mF| dqQ{ j|dRǷn\bԉ<~Wp6ܞ-]*rBPǁ#C#nO7k{RfM[>3w?< ^6~)>nrx)˿,](BiJKwG: =rX^1}=%E_x Dq` €p x h  x=n$ RTW x@&e@-O@!P|OkP @P T@ Ph&Z6>@ 0,0 0L$0 |fY`Xe XlBp }1pX8N' W_hڠt&J2?KYTT$zf|.\D;k2υ/l5KPh]\dy3=J/´wXN!'CXmOP9o1fG ~4wRkr<*Pk3\.ZG˫|tcsY'Ekv*ggnY~f;"w{,TUL[`B21:_m+`J"Kkt D*CRIA{'g鵃_rEh*jUL]=V]^Հ*zODYJ>ن*JnBŹn۝XKDvR]1R9w-h lӓ!3QK;)%Svk1J&/ED'O r{/y1Kz{XEsJ5Qb$|2V$+jLI4:?E> JYJRhύ1VPH%*G\wz!߉tu/15R2> ?L=ץyZ;uq)}1~|Je|xt/^#Ԧ|3'w/#gnKeCa`PY7g.E qc4Η ?j q!MO*K|#cC MbJ7zKXlmE.| +lŰx"B{>G8QM%slJL-d, 6.Sgw'Sf?ia8Tfחvw` ]#t0(]h#cE6§D-ĿE 0jf{Mۺ/ղUZRܥkFtfc!oWֱIoV'ƣ}U1o稨\Qc8HG?3E?5vZ}a-l G} XRo69 d[wd)rDRY,ei|y1Es8ªd#R:rJ]1OCkEucܙ?F4s`Y;;qHmCpBhc+Gs?`!ױO}-,jV׼XNJrI| Luܔ2ggvvO1vM?>3?qq1yݭh@|p߮PaVNah]%:/R\] /YEVsu8/I8HT'aLR gEkWqFz\D \Awo帅tWU%^VzTNgMnnq{"W0fdlT_7xMoא;Zhغwv-o3Qh$` r\驧]q">td 6cU>"1u)CijW~3|\obZ3fy!^X9u\ӖiI5[E ǝ}`|G_bi2c>N.c-#YTC f[!l: I/_R5}t(ڣC\DzBW SRté g0A[崅7p5 dw׈;s3RuGJmm {bO=OET=?jŇQ^4h/W+=?xuu/x`\mӕkkٳJ&co;h5EuiMJV"}/xuZ_GyȪ{"sT$*`[bjV1SUZgų)w̻Xz6/毐嵔a ">y ;N5)G8 z!Α8ϰޜW6ڶp¹TUvnVڱzu,kΤȊ:1&}R>Zh6iuc9BMɅ_v4l'B_'2} k8%y40$i7m=h_&s}}2mnJKf=A W?dߤ[j~?g W{u3!9>~>6EO:GD}FWݻCkkPX9"26kX,es앳SWnsi"Ccq8ya*A/ m]Oc|߯ ,䟿 r_~k^o Š%\OHutdt*Lean`A{׮޴̈́/˼;~(Jڤxvb;BG lzKTtkx%SI.*\5EzWŇŨd*Nv `e'[u)U1m.Dҡ!f|8rx5 ~tR^d/;:9h5(:V8(QXLRoJz]Buŷ CbPx]Dv:Oo8s%D˪Ř5/ƆY7_#|?Hv5/^?1l誕V[U;lo~IXI 3V J>}Rz_ӵ{M.xs-P2k]<+A}D]{½gժ Fu=$Nu";dԕ0o 6yp ;g%1[jDCY2];u@u-(y`eF% {sV+k"ߩ zW1+,a,9cF}6ul1wwktf>:[ػS4 #ZoZ$duӫ>qV ErnpM ϋ߬R핰VTHwCkyQcEK6nԼEg3Me\ONIop%Y~%űVͬmy I3auFg2HKB\'{=; M-bbJlhAiCld,k8A\$fA$4ʶc;iJ@$k(Wqh{,x3L;Ҽ*23QIz^%a1yTj g!q l3Xwʼ?w9%,xyCUFkV+C/O:!&'z+ふeEG\JNwǿx>w= %hypb p H2@Pׁ?}"@ hNtm`&`] `8~=x> ~[SDQ@ $(pўo{@@x(ʀ  hڀa`/ 0sV56vAt x sZNn: fA$g.MmԪ$8 &h"I K[4Joˇ_ VY\b6 FεW}>eg$UHj.NKtTRTYqPǤus]M밡UA \4wѯ* Z'%6КEmbM[liTQX;M>{oYxev䞅1myڬ5*fs6640-54 S&* 5X<)4M)Kc.qbN-ncZ;9TT?N)V*` "A`엗s_[/|A!ϬwZ^ZkE|8Xі2|O+2As>/eLҌɚDX޶DG"Jw'l;古x0m)CUX%W'5O??8 "/ўvsV.3x*o$ϛV>]0uc:9 xOU^"n-DZ_ԮeLq]b5V5CoB {4Ly]7#80M?H .Orn ^b\l $fn;f6ʒoӛ/%[F]@wpѯF|膹HcVP-*WbPOwGW$aC{ZAX(e]EhhGÆu1 *lf>>e,=;aZT*okYc37nv3<.ߖfAh, W"MG41ᱏcJ 7LcH^"y3k" &7uCF/WuxzK0vCbiLd3)O>L?g( Aɐ[/̿oXQϯ?_' 蟓şx Ӄxzc?}{O_F!c4t,do&FVwH-YZnBk{^%vS܈f=K gdL> BQڜ(>śo(붣W/Ҳ3U o}2.{+LjbvIZڠul3fU%#7mRrs9zf-kd̄\ϋ织d**."3!}6vJeŽTMI^@2H`^ K4ޜ]D0,fo)@-C0ðy"bFI͘xD ѡC{;kZ ||@n5(C5ˊbA.(Kg&*(y1yJɜG_rwx5~g2ʛԷ+MU7|Z?*iMADz/[Jb,l]!'At/v^Vk 7"zU MwhKHHtUB?,(,MGB[mV]Ʉ?NFlrb;RPF/vvhM]hR}[QkBGk<|A;4ygk~ds?zͿz͸MUQw,1}b%&q&xi}.!SD!29Mu>v8(#JNj0bB'N5( n^d$m4k)PXćЕJZmEaᄁG@TҤ4A$TQzH (U( Jt![=g;xc?sks2^e9녷CXZ  LbܚL/|`H֣k3m)= D>60〖g׷w5e/)4j~iM67OF?ҼKRoXhvjt6Ee6}%'ZZّ_y~?ׂDm]]ڳ9Ɵ&Kn}i֫5x !q ˥?=>l&ҝi@)J2Fhf{?}$ϰgA v*PqBcvd^WqV:HldVM'5I^wQ{k p'S ءr}q⡔Hqabjs:1sWʷ@<j;F5Ͱ5x%[++o7B|XL4:\=sҶ|4rǬ ԑ \qcX>Lj>X߯%[,aǥp>b$l䍏wҗSZ*ȓrk.ct;wpr%}nUf؎TxfS=ɖl*deh\?X$ޘ]FL~`::\^^|MD9F +kt\8z-]g@p|~G!r̢A6ՀvU|6>5;Z1XXXriR**f>)]!?c1vt-CYl4jLkKOg n\e\zj|[W[A;"=|^M3I~ 9֒бvsoı)7ˢȬPV N>@B*R:ivL |#yϱbIcӈɴkO.)8?hޖ妰gN 6LO5:mȯ"+ŀ̿.gG!dDJq}\+#B!3F=_KrHIJϓW?_LC\_f4+D˸o>stt#mv%0(*^5*4+rڿ(A#wBy_MB ! 0?z~^ƿ!,0@ԟÀ?)z eDg@"@x#ǼͳO~۴ @& <<HEb@ 7I/T0T8@  yCM7fh{:=ͳNHO.{, 7Ϻ>h~/Z`0^4`0 02 EZ?_*Xo}߹_y=dAZfzd,ģc Uw\GrKAo_-9qм<π㜨Ȣ^+sy^>w4U,8{JZmSZNTך)OjA*2yuXÔIG/DC1*T8 3rTEڰvH,Kr/uOai?٫[iԲkŷW<1BS EczSX/Odt̚[({bPsƲ]f= { a+!>eر`;Yla2OMjK*e@my >uon5c0yH5D&Q%d*|ضAҔg!ܚhm"AH"Q6’ 1Ma={WdDW׏֟7iF9:֥!p_9}u+;xUϢ5.g= ^㞌*x#EúnJnE>?]fDÇUZW֟Ͷֆ<=~\#W$ޥ)H4W-WfY%SlRǼq|/]N[q7ߚ(;s>/޻8j陣2YWБkc}S ޺?(͖HqV}@B+xugMDYa>˕rޝԏtv?ـ4O`1ѥN$4ٵ(mac.| ,΄Ԏd?vӆ^/w֙\erTZi=dfj%aয়JME !q:0}GB!r L<B2:/VGHZ \4(R+O<]TLXRp-T:m̞BCB6 A @?P3 +762|;Fl[vД   4h!Nkwͩx;kz(!#[WL9^eMŗc++m96ѲK@ 7v=+Fo߭7_ّ}l|[wT, 1{RL@ ¦r2nˆϓn~w CW'uUe; 1Ԋ6^{fZ;aXhOOJPM$]j&z Zy4m&-KL$3dh2T!Iʾe)=+Qv"ܨ# w&XRd0<9y{s~s>?f?kٽ?q. K NbݤءRY]kTv?M_ 2wk!ivؙM=})a0hG&F__uwi-v: zx(].6_޼VLV"FSZL<{4IM[TXG;)xyL ]eIZpkGW~4nՠ{YZ=*Nh9jPXl^|%c(|xQ'j79Z=u}{(XXֺ}/AVE#,6dt6NZVb-E:-h&}BεN$#L|cLb&۬F/IE W/#-\(0|.B یuaXyry~Fƙ=F 1~(BoP![6a8czp#50s[!*zoi#R IiBjP\voAUtR]!2q9Qce!k]#ȁF#Yl`.= \8N1>Sg!n|RPeB]t5CmСDQ:g6M)U&#\><<uI7]/62[Jܴ{fLRj>H;e(I A #f |g{b+k(eUNOXL[[ÃCqZY-8t*bq¸Έ?hHI}᰸cYciaV83M5SbTY~y=*?gAeU".<oA ?18 @gY'roU.3_&" 6-?,<٪ V~`8a!qWF. U`4i/zSbj5xI͕x͢{4ɔ,`nnۇpK"exmZM;b/ǩ 1Hvu5!84!boJ'mAz5|EPm5 D%s:W_)}jD-wl֡ZA@67d*ܪ/ZK #=$C\)'K &jV]GNYMA3^&>H ]װ&y:1W41}ӷ;7ѭ^_6v0Y"Y ZXF^e틵ɝ!Q"76p|1V"&2^҆ X*nӗl+112z,PbqY/NxN#;W:+ՈlgVO"YFe6MC٘0|.L[\yNPݏh2oe8U=!~&[U39A$S] tZ^Jfxp"Mu?߇dVOR;/K7~.~?RO6"BzfƜFur9?i B0#=u`B/SI,$B 7&$v>OV׮dz7S 8 {+YGBx4̄+EL”%RB9;hj6(G XE绞"=M )S|VUK"~8”vS=cB Z+rxrTh#ĦL Rj{ݗc9iK[QY!h#ggqK~ 1.Y|kl9ؐNϯ*K["k.Lu=\5djSm`mhCVڑ~zhW}%ω O[ryveCA{q>EQm7w;w|$K-bY%Kmh΄cTBa}%c6c! &Uu?^폹ysC-&###=K0F$LS{o,=^d~xEŠ>q@"Tj,f)`+xV;Ϋ1*t{GG'ɪYaoV3¿@C`^-̰j~- jWffom8KmL\E*ru]g󓥖4%vmkH|4y6@y/x\[kkw'Ӝa=EڝLhS O)a iaLǺ%":TfkF|곽.(spҭ_Q)&bX+u}1=RZhh °߄l$i:N# Fބ766x# a},8kMh U9侚|. r'*i9Es 02Z%}7%BR&0_QWN09#Bvb* f#NgwQA"J>ja7TJbT x_8P xmJJQ_@lۑ{(,váꮭj+B)FrIeG[q0s8{"<'? ow/festW)k!Gv}uN@wy]uN=6rH 5K{XOz" 1 9P *Ɇq1pZ1¸})^Y?&1ZՕ0&hO|^>Tm]Bk`T Яix0? dƻeSN3\mYS:Ⱥ'z 2Hy(&ʞ1anN&Nqһu Xmg9:qCT@g.>D`/L,pKz$ [v)rяhԜ f"Zˊ6J=$xnMBJ{>>b5DVVH {q8NQ8,TH,e1{06m3YMhTǥ?I }dAdv:eht;Ҟ_!O taȏ~ N3wmK,p*/s\mBjжeM<^n-X\ބ!qM2, vg|ׁuDbu`EZ**Grh?8Nگd>TfDPhQ}y=GHe1[v>*,C)Ǎ/h}b- zЈ^4X{nBN2N[ÕZDu l F܂f{'Su#)1) dtĄhLCŒ7-ej^!.՟qfJ 5.tߘ$O4ziN iz/1AsR:[1[Rm"rŬM4^,GEk{>bxOT` g>̛w{y5=o;ڪM_[gb؛r4@q ǮUa_<0 q0[cަlhc!Io/ݕJ*txuLIZ\fYlT$r{u{!ҾjIF7)Mp6NmE%]c5O \*:JbCdܦQP &@O1N ;35+BX q7E9#uEMaNd'fIz/I΃ώ0^H|(2^FtK:Ґja#7KT  է/Z82\q ,w FH^6Xm'Q5MBx۰Nac]Y_͟{oؿ 5?G؟￯ 3A킟%!_Q-~hO@0h سD\C]7ǺD$)@*xҀw?Ewhl Ǯ((ʁ մ?ַ?m4@ y"u@' 0 A0 &` s<,KV@  & {>@N=9 tRv. W>qh޻jɈ~§`j7f*h#X4:,޻rd30Q&okgɠGo ٔ_ 4IexI;_.|LF|-UC!gS|+Mu`8e:nw=Ny+qrz2kԍ[:锘]'?b$DL|Urs9.qÎJuh7,/+'L0/֗>+?u@7FƎ.F _|vx׿ aZHѷP hj((^v֪7ExInL-&3?i]2 gXf'=rl,e WL#=>v"uyA(Wj|DنŦ'.1?]v25{td7n(r xDp׻:_3/+Ҝg\pp>rAE0AG.uj]|o~ C8ujSS( ~p ,Hpc)$&+,/n8–znpa+as wv#ć*r^_{l4l 2t#[J V.309%z/i[~9@oN'.XN[N\uSI\1O>fk[ xEqi[D'ʀhZ>Ȳ*j7r|%wwVuUrX ߡ?hO6bST͒%iױԮ umkE>".eoTOZ叻'+wRSqxqKpũgvvm[ҚRƘ qP9RcJTЄP=k|3F/%1 W78)R"C4{w|,dbȒ}ɾɔ>$!!d-d44#%.& a`dP`s;빞s矾׼?3矹=}狼B0D:8qDp&#|.Z0}$AreSlW[<1^R3 u{Y>[kז̝vh}! %m$GjB6A̷Y)nŴi{ң]J4ǼȘM#>HZU躱w䲜 ,C;WV;\._L[_;$7xR`pya~!٪!/u^L[Aq7jCf-SR|S3MGΡ%~=Vzƾf&MNb)~y_M 7?3=Xl@m>ݚAty?MwLcnJn\*őq!*$diUDaLh6DX,j|-ќWGKvVג#C&Fyib 9 Oڇ0HiXiTP&d_j _gKUȝsq7:Woz劻PA^j`TPY*9&,~贎w$_Ș WUs0y5IEmIJB>k]@PZ ٟ}c{yt2p4Z\NZfTQpiOiFx.;%CAnvɱbbonRetfT>ws7 Dse]: \NGDƄNs+g~RX1maBC̿OC?CÖ?-fױ %_JCE9},ݑ-1="NU כG|І5 MZܫ69s0Qm-eߙ%eA* .LY,;{7UҎr+NwM zV}kݧg:b'4QұNR$;)M3l>][H|A%a_*R[d4ue_VfKG- _ۡ&*>QnL&zCeP-Xٌt _ (nV,*kK0 oQۻpdnB CUEvbajLgY8'-' Ad>$kwr}S~Լ<*)+bQݕ Pc c?t6:q4xq^?kZ)DAi sT!et)zkL!| Me;K  -}L?YC֍w6!%`9SV{'03 gU)}-/͟3~׿_hmHMdWHrz Uiz&%ebHOރ'w`XrO8k'6ž c`a?HMg ͲN]{Dd nodwK,(=R )ѿdFr 5wǖai,殢V-:\!guCeK$k7 dD](-j<º*ʏ]wʇHGXsu ItIQc8X\]w(;6ĝp}g d8\AD\h9'ڑ;V94L׿nK;l*um/<5%̼a<-Tik?P=џѦM~eEY< =潡|ߠNn`TL/k[  ] i!N+&*N%+9k+L i;Ux7A]ɑ㪂xZ?* !-} @ic\n]AqɿkAz`f`~8pgId@= ! p` ?ƶU<%@PNh cjF1`f9` _Ӏ%g+pǺck'W2}\< 1 P~?A@0a@8DQ@42s9xY+B".d6Ӡ#59/6}t;4oGk)I 0aX-&5})֬4'sF۶/b_!746,b8e"ZsL]^{JQKUtl'n{<>yЕa򒛇HPPXfCONJzjHH tqBl#w IIaIݽX$;TZw<>Y.?oDuBvLVȨjlEP.bXn/֬ـoa>dT-xgBzV]K|:SweA J6ˣN\6=:0>G-걳Ő.鋀_Q&I oI_@+"^菇:`ϓpU[9ZZ'o5MYdm77t5D"}ߺV0g~_-'h!0A3JnJG[o}3OX ~ˡݸ},n)xi)u&ootm_Ӝv]T, o,U]0;ހ]ۇ:Kt"j˄ ocs[: G˨l}]3Y6 ծդUJc02iro1XX=!]!LIoQN?Gh 2a&\dy&=Xt/_wJ? YᰗԺjMF0 sXLeKo{˚dPcS;]^DFlUe}o>F%_IͷC{<$ޕu'}?عp(Qʱ9K串d '2Cd%lY60cgC:y]y~<]w]u}s^4CyPߐM.To7e;_wȿow;s齯a+ |Dؓi̒bqh標_ci<$a"^+ ;"m,|[LEOE8L项weVQ93i3ۍD㲭4'{Y,6ПHև[te  ]_d1<regcfwfS37سdNuezDIY7QDŽd,cx_ʃJ̝\ew=y?v9Y􄥢l IM ސK-cIhBsғ(uq%teY7x"ty]:&+ vpR̂"ǘ & ѤJ2M![ V!mAKPFf-8Yrﳁo/»b<1Ռ0F_٦^I UWߓdʼxRcsi~~yz± ";5s*kKHs4xe,4O2Yʞ[aΈPH+.Θ:;i#9j2$[vX3N

      ǪNppaՕD (g?/Rۼ)`4EѶ(Bǡ46l ٥ɲ8n:poM=׫ƆsM{C5zYM&UQ=S9uJҜ9 P+8yiz3w$B56< _5eFlMHo\7izo?9Pm(ygCƀ sK8 &E\Ⱦ$IKwo?}U}#d˅UW[?Y6jZe"|NESJh>[9 4ڊ%Qt oa#Vכ{E_KdJa|GN9b(VK C&v5V֜b>w};Ep4ǡ60ŏ쿇ª *] FFG;<|?KX|,~4@xWm>8hivL]cHr x<)ůGo459= ?`ڼ?Q8VD'Ü] [eB1DkZ#,M qC'Oǭwm9Kɹbv}:ø]kS,y;7J^5懽D9N\Dmr{l&/=Vifx!\ϻ'^Iĉ 4_Q-wFǻ0Pu}q*ʔwڰιm ~\$W|}~Tl4v~Ʉ:#;Fy#- ÛdP-U3Un{0WFymCrbXjShMvTҲU; U&7HX|lho]rrS]BW¬Q;zf@EZdC6ؽ>rbucҕ@V}D H^)@*;<2, xW5y@> B(J,P 2x T@;{j:h&- @t; s^> A`FQ`0/ 0  X%`XV:;rf?oر|9TnKք4YFf9U\X ?xP(<¡J?Ne?‹gz[|{RH,lIz ?ӉоLW?=^.EKDK %hPYYg/;;jLER,X9Dz;)s-_O%ٵp*>5~7OJJBy =SWRb^e>xnGǷ‚zֶ8 |}qlA<@~lgA}=5* O,nt2 $`1bp 4uZx1u޳[9hڂ rgÃ=ہ\|&HοH7 gwEgs0'([1ٴZ/bXGS7w^T`ςL˯]Nqz: ]w$|&!ɞ¨6 W͞,1c|)ꪱM aJV/>ȥ( tN}rsvܬ@lkM4oKFե)myaL-Ɠ>}hB! HȊ^T+R?oh;)T_O~c&_toKa&u}إ c38QC~k|s}-!g'GKݿigE,"IR-x̙CXgT \Jiqp^BPXqt҂fDR@ms!mN3z2VI [ }Aup&]=ݟL$#}_]5)^EG b@5R 콂xbۗH J "(N&?_8^aѝ~cbʦoijP?= $DƊ},FE+˫ϊZ$1/ 1^Ked^X"aPe(ͽS7,qsNGC΢֬駉kpCsvjz[" HREJfA)" DDz/{*E"WA (UDzBfݳ;s̏&oZ+aܤ;qS\-D_3YN⻅X) o൶Q;ϢCش7 yk ^x*.np,RT8u"jCZ\ Wڈr%>p/sDS- LfɃT/B 2MӯogX>1MU2%eo=ԁRI]XUAx7IsbQ׫LM.$D>e}FS_Yx9B+As/`Tt.H7=Fu {љ98Qg o٨mM֛\sW% sTZwjN8=Xη^6L_/FutJ^aݗV7`>OÉѤ3H lצ MmDWğ,M뺑V8zRk &x lB1 2$W 9jo&)u>xڕ7['\ԢûdO^}M/94嵈C y+(Ky%zj-nJ8-ͫQ긶R4Gs\;+;H4M͐/ x!A7B ڣ%#z0KvA҈h4k|1]-wcEs*mSk|A [O|sֺcv̑ b7dRIAi':嶑|)\pԐqeY+ʟxBX\C^%Ol&KXM[| Fڔnw5˯aC̘ӒvG'8$VBgR-ݱWo.FqNn[W6k͜׶nJtLUѨ*dgz?D إ@}OʺzSӗ7Ggr 0D~q^2#dcB+\2)TZVd}"G!Fh;tZaik0!eE(d)I΃[671R4ޕ.+ȥto9V<:b>P_F(4e"a1d");j;\H!@Kc#IbrY< ~m=i٦%׾&^y2.xG5ՌKfY;* FɷToDzetEzc\ESh>bH/ʵ #?45p02p @ G tl0 X;8 ?"81|Ipԁ(8 N@  i Y 8 49p\%eT4@$0׀ @]n}`#` [ g`,p{؂G =^۟1_wG_!/$& Ŀ?'OG ??}'bQrkkEe\%x8nc$%?S8apȓ&r*;|ۉfctPӌ痕"޺ȟZ2,ɤun z3Ythqp*IEKj v=N#Eb oj|r?K .<OO?C2͚7+_*An$ 婞 I/DžFGi1w2yS3ک掯v8fmC5푭,p^fnjoT/Y8np#A{A:E ȵg:­ps/vצfw{urA,чD'#^9cM>x ɢEԯ2i1U/bqeosx+’o66_2),op$Wq*ۗ'c]LDe{?GU挹=_ bt I.Bbmg_n FͣF]%],ƌu~T߽|Vz)qCibLDXqل/svżXT>~a1Szy 9~2m3FiB4>x ssw!isgD^+W7w{m6CU .Vr 뺌(t^hו] dA.lST\)22J(㻝_˕ĈS~TX%ߍ3HZkS^)YIS=X{5ˀZUau=TfgoHC }0R,2Vv'yvF3_*n2'bZwYEtK/̼^V\}pri.Q2#-?2ph['$r,`ݥVj`X᤟33d!TW{T++OvxemZv(v :l_[׋C̖AZipW):mn]w9=#+KSd-smܴC{OQIXMk4Jf#)˲ɳ[ڷbU]}[#jNTxk7% BY"0K8vVAk:?ͪ"dneދ{609uUz*}w+|$;t;LNWAA˟9#]c1sϺ@ؙrn^.+.d&Bɉu~Fj6?h>cA@1  # G ?*BKQ3`  . x/8ѷ B@Qp@Hi Y >C{Ep (epUuphk@hZmt?c&f~Y` 68ZW܁^_G_]_Įآlf'}=jx3o_0|-e\QHn5rǎhx3/Ayuq =z8S )M73&Ar[J֧;>`KxD EK1;Ͻ$G( 10Dn:~w%LSyl6*AϠ6#yup"K H '=~yns'ڦsn+ }%.ZKMdfHk5Ս!i "# /uyuXu&M-kkT`[*:CùsW~K͈{eѪDWy*+{[DXf}qgWCwvUP.$ImU1jRW64S/S \f4>S"-&X S|a/+D|N3}m۴vSX?+ݳ`fA..֖kjnΊIY9 xd4,og&aFfw?GSI;5C_N{n*4Fu5qqql?$YFImtYc=vvh6DcE7&$`܉9xYlTr~k@b#BQg%pS0#}g`#ͱbL䙙lQ'lӇ Š<+zhiԮu5iwvKL8c%޸BQ9)T0\N^nlp9לS2LfSR*h=Gfoy5#X-3t p$RX?P%lVc'LjlְͦCxJ~6ׅh3pT :B9Wbanۖ,jjr#5_"!m e 7p2u,'N%; U+W-\zg-)6v}ѶN(\kJ]ʉL$D eB!܃e1soYBuo=))O~-FOqE䔝tIJףu ١'0 mq޻lfs<=Po𳮲+gu}aSbQMKrF ~ưx+SLoVaSoTb=mZͰY0$ pOԻs"nyԙ eՑAy>Oħz =OT@mskZo 4M&!r93!Svc9t*O/~_ο4κ2QcnFSr/_&؟%,ƙչS5n6-Y(A+HU d>=ѫm*vVRWTL1tffݥ!@햖=Dg'KI*.mK"6d4X +>饁$#T,F_G<( ν[`&Κ~Rg<_vֳ`r6- u/o5wMmbǘGQOe-My/m޻&\ͤqI@/LMp'I6 y'u2s]Oۡ]nbpFr77K* wo~>mP%շNh092L02=3:9lI( ?4WsS8$)h(^Ay Q *wn]^yy`R誧n64puh&lC- ~H"BTPcQ( 9it w] S-#t %&U Dtܥ?(J Ϫm:|uQlR[:sOoкM׻kxO{˕{#ñq,$,DO7;OxF0\榍nq]^Df߯#uW :apB)djL7.t^LYznSts&gٕf ucn3Nc2۔j:a$C} 5 b&v&hfh1;Мm$˓JI!uu-Ҏ*In-̶:c/%9  r?nCGҏd[zE3QV7J=bc93ff3%qkSG1.f&Ic=q4-"C T!;&b_Ga)zxJ g_J0($S}i ?~>>~fpbc]s~סR5,7]twIm?j6HXnE;Jܰ; 恆mO F"\"y _0_5ٿ96 O97? C|*}G|![q-7w_?{R.qԎE+"Lx V`Shf9\&]<5 >"oHY(CtL|B+y?o XOEh^=A|1Iً`msB74PozsCK)1<(N@cYns>x:O|I=D -=ķ8Nɵzq-XtwE*Ҫ݊1VaYɽ7v-M]G/sg.K5S}?*1TTŻcv[mƮ8mg6i/@'45L4F.?Ϥ~jZ36- E_5@0_l]د?z^'P ?<  cOQ(a DHA q $< $}BA/@/+rAx P Ak?,ނRPAUԀZPAhMyF}t|]^B;_ 70f `,,}B`lm_/Z!ӸB R54/x/hDj4qګfhӢ<52$Lbԉ2{&3 9bĎ}Ɠ^xTꧡ @fd*#tg߇WocJelv=s wy5!^ݾvAf'7.񑷅dr\6:[6#dZ~CX:)y0nXb.<>$ ): Xev=u܇J -<'ZaN_"IM1_tbdԉRXL?Ğ_P2s\{^S^I#tlEiWK_^1.M;\ i1گ>Q#7Ϻ~U?)7?B ~sSoۯ?w@Q-yGEAI" $ AHI$CaA W(H03D 28 q_{nۭG7U}8&VIH(ta-@UGȉ.coX<*!CR/q7,RWI`iޔ]%C1i&0&A@՗S2f$;s_Xmk;(/}C{jy Iy_Yf\pG.xEg&ug+jA/`9̣0>gTg(snoO>$Ώ3[JCMk Im.<~X 7Y"d~hVŪ^z~nd9}g@5/4kmf%yo$$`?e1_zJ ilfQFأCR'fDzڼ:imcl*ڛd(~yQ#?*kA٪<ַw`itnI{7#_#?ϟ?$oPw=`)M_o>qOO\cc-A~Aonjze[w[Q/!|!7C~evyoB82|(G3j/Ђݕ\&-2t{&E7NQI}&+nlfO `KF>:2ݻw'"4r|2BC:cEAu Kkm_a [kjvƽJw-V?eS9w/"dM:V Hf g'ph)~fWjglak@-*14Jq;YK>M[KspaE|Er =+pfRpg182`3]oHtǴ/KiS8HD*+UwW*WE9+n ͹F;C'M W6/&Z!6b%;Ow9Z@ZJ_ꪥTNGhWv5 nK?]CpOA)UAF&6fr `k? ?ONb[(_`=KO%~r@N27BFpW+TfҷPbPyoC&zDŶR}(L{[DȱO=4f^I>v4 5?Sܡ]G*KCh_)]퇹WZnk2js vF- Va>c6˭Nf۲UȦlAW֛~)L MAiuzY\r|,H" gW-zotfV_dA.l=KUʫg$%U9kOһٝ_ЮjWw\ksqqv<6FOQwC|iu~|uG˂r$rS,rԑkv& -=I\`Kaժ(BŶUUʐz[#<q ᪕ϭFwHKX3U3N7zl5ΰ"^'c!7?]I'Dq}>VNӅAsWǻgtp*fG] M$񻶮|>&A "j ׿Itf_:AM.z9cv]AyRF^ZޭQj'Q=*~ɟo~?8~rc wz،tn{H<@$)yHJs a+X|i^~~5+ K!x) dռԢRoZ7PqXGPXE3`L X2qNVӅ*~)DI;hqɩZΚه\7<WH*D8Lg98hwwKͶ.KfꌜcIa, s,knORz9SKߖmrPyK 7qVjºuQxK{ ^vz =Cc3 ^k+!=C\vnT.-_҃7yihtxM8 _|/Jq~22oG2wGAL$հPIv~GL.{ܐ7ib UTz1 P; wAaoMRSR=4'/G2T<wGJg`߶&.2ժ'NXw 117g <1iRnrO8YCGoiTVu#ABu/u}بgU/:l@!cTlc٦E͑W}:>qT4A!MGz]q`CCOhD];cRqeW3ԋܶ`fO6Yk2KcA.5Ê⨨ XXT aoeJF^hk5Nl'^u.1J 3VPom"2nk 摩qB)WÌ|uheS0CjPݡ!l'e.U읆+zeb-ƕ!Z#-TO>&s~0kA&"z<QW_JuV`$'d]PN?DC7Ssz(ތBZRj_rt1Q_[y< vt#4قq3e}g'R n.Gc7xPH$!)k{N 'GV 2vﻦqAETW!M3򿊟Xp8Gc)_ (*8 9Y8>@ K+\`pk?u@  HM@]@G Te@PԀ{:h-@t=@0 i J` <sk 0GΠt\7</}?x@|+rpg~yA%)u֎79ܯ_[;f^-*_~mڂσ={ S/@$`}Pd^=(&Z|x Ѓ+=`?\ `sPiU?;8vP"A昃= 71M[g E!R8cMb2|y<-6Mem_GF{W~,#Afc~$]䐊AMd,U ! D')ȧfW6e>GDߖ#E]K]ZINK،1?N87NP:i,g N֑șLQl5ȻUҷ "uF욍UF?a|$s L }HkդMsT{s%h+':3[2s-9p&bAcAE僩ALNgSǞS܆s^ :es[G?fN-'_lK!8|CLW ͓Qy5y[;'Ɵ?8~^$!Ǫ/oK۳^]m/N.?X3#W#ea;%+Ǯ?\۫w A OMڭ㞵ZGؾzwLן88K;')RӸ(pXؾ127nLܜIr̎$g%ij)Z+C̪t#)NRn/kڛ76ih;`~'wf4wV*cv(FX:A|T-ua7pzFK!bcد[l  óҽlط(.^m ޑړw䘗b+ :h^8xWkYR bc7&{B^~-6n g}L\$XweG<\WprZ[Q~~=ƀ(Ӟ6d(#-꣞A-?NIo ;q|Whns"ז0#nSNUV ImZ%H&S]!C8t#njx@Yx9 O&d]h=*И$v:J4KZ^'q#^'b[v Y>'<|Xp[ZN,\z;LU!2&4(96~c+zvn2i>4#9%[S"i޲л5$%rϔߖBx]]G7\DFc.gJ φ/I<9Ek%#^p7E } XYZ%_2]ϟ?}d+OdȋϿ Ͽ2w_ w߈_^ (c?^yIDN`J|u-˫驦6!lDV!бs]  O~=F?NW3Yب Y1]q_ \<_Ԅ*_b^kqִ$ko4r,.ޮ[ZzgI'r2,u:1_*{ׄ3Xrp@猶IyF&QlCQ")zFnǍO,w@1J|GüuN,ǑT0 k촱FҪ27aѤ,Xc (mhU օE.cí<RXTn VGהb4^3gK36z[[i9FtȠY,6b{Yv[M>XiM`n\0 %P^'-hn+b {ևik_xj}K?Bc9"䜌pK4վxVōN0ucn]s˽ҔrGq[f0bp3Rɼ'q&#yF|9l)YKz?Z[3v/xj!{D8+d3T牭Ƌ)_#%Q8 ǩt<") |y8ߤCEPō]P9->GybT=9]/p V֛ȉfux.O3-Ԝc=DOH*kWi$LOW1ƋŏLս7&bؒy9>Z9M\lqqvU߆lUimc=Ǵ{:@46WW9+wڞ~5LWTk,Y~A褊 cTYGc$_TN\fw A~B0i:+]Ը8^YT10sQ*CAGo`ہ k6n"7ziFoxsJx+a1yoމ'e݇r G95L^,r}q ׈UANoX$mg+"- g(?ۤ7a|]+ɻ#Ck(mC\P ⺳&:#O-(2b\dXw1TOU_`<?Q xgZi"R;I]v9|D*S%ĵUR@@?b™{&Tď]-=Lשh:[SZuP*h )\3S\ .C"zSىMkiw,Pҍ{TS]MbvBelln젒Q&\bl_$UI9)4V+eS6G֫#n}0aۙohT@=օ+))Yr_f| ָ@{!SɅ'ʾMyK3\$1ת֣>ʉX0!xz9{ƦvmPC:Cs xS!@(π @ {_"(d @@*ҁ @ G,b(ʀrj@~f6>@ @ ?%#(0|&o$0L3,0sK 䒀`Xց l[6[Ld:4mHߍ2 kyl:')tAe)ص'?,;RgRҢ =?WajC,ZJ&iCwY3{eB-I5s0zi`[Ҿ\Ug˱;'%BKq5|wR?`\q[$ܓ*./$0#ޝCJBuSeDPք!$یd_2({C"Y"[Y#a[dAL]ޞ{돗s8<|w8B'jWV RĎ*3/*3 Hݴ]΄Vqk#,5 U{<=<ƧpVћD%f1MyG禳{U8EYv"Nض?M\ g:?A,[Fy DgNvup+)S_}f?ZV3+#8ECqQ|ǍcH$;= 3V$3ŃGOTsbb9!sBݚaF@@%!\h+ѨaOu9bX}3_$a 2A`o0- *zbo^#%̇JwZĸXHr+EﴟL_aHZ \,ĩH=I\`݌ݮI1I˓!l_f*ucBC v˪ڿ{WO`#2 ןѤm[~??W-eϣwHn|^[_OsY(eÐF;b57i*YUžٕp]Z=2Gv]zp9&3H d8h _tyz&Փ :҅q 9_-ejafy)*c ڂudfN'ZViKp>8SYrGrEH~4;' )zGH GFSDNEXuz/ ̊0KMiZxTұQ"Qݻ%|5h:&Vo ^M 0u/K <r;tH2l3T LfaqlLUu6aiW'Ckwe m.Ei/hi8ݲ0cHRG]DMUԿ ^Z3<'Ի4G_8PL+ |g1lVc$rNr(<#H4&/u5֬yǬsC01V\JƮ*\/rhqw3yob.FH@a"Z݌Pjl|kYg ˝{Mes#y"?zc6? ղ7j(iw>"CKh- KkIajO5*P͒Jm@ޖjk?\IN%4&V57X=d8#}l}@F6L T-( L/u1SB:^Eud&[w%РX,xtm m{>W,~ާ0.GM0[,8q܎F aHomDV$VE+\ْNת.uU=ᕝ{cQ2+z;|>`zp_ڵO[챚NrFm *.bݎ6۰ 9?~ ~~{cLMSSd(o\jWl>P9{h8y"\vKbWg:>Up/NwBPyu[Db/V5Nu t/t.m颮RGb5U4f6p}^@΋TpʵnA@A-HkT*|NjGB";pV8F Cŕ 45䀑iLWʱ Ζcjʂ8^ڳ:be#ǗMM/4<tĕ*$?^̻Wٚ!$&UpųRGƘB3,You5<4v !pxsnˀ @Q*6lWɇ2tDpDDHx3mm;Dk"Es ud*k2eD&l5[j ĈzatA|$)FePYhP$-BE`曜WɅOQ%[R*BcI݂9&e:5җ3;y(tY |9g#^N6ݫP u>#^wG]*%ކRe9 sj\İbK`B=ȺM_}'rjHܕ׳#r;~S  `/@ T5@@ #0,+p`n~ a b8 H)@80@~_ "(*y@pm@}ҷ~ Ai\Wsk  vt5pp @3=:{L!a Z1-u&K26UJԙ 83"N>Bekw9ZX̮*Ϫ,~RS^u#L9W- [pdrۻ6w$mA^ 9?4dPi(IvTӎʹq%;i+RK~ v9Y`=z%.HғZc,\޷}Di>!X?őD@%>z3*H@?>~T.3+Ҏ n ]=~nq$Žn궋]VRѬ3j70߻;i׋ZY?OQ'K9`PPRT9*'X7U);1+HŽXn* u۽ndFn LgDI#]-|)}}1͑Pq"*҂r~sZ. =-Vgߤ {3=Ȣ(3l. hG}tY} Ѷ&àFg64B&1NwG2W b1R>B`1dZ*Y7N^ +kkßP]~3h4F1dDzm5:Qt[u̶j>5k%6LI)4Ysm޸HᅚƲPϭ'e~"rtaGjpUyKŜ7g׃_m܂pZHǻB5j$"r֪Jr6;Y4|kכt wع-&'ǣhI/?_翝?8/gp y&n_A e^YfŅ c yd8`!V #b15֤qva&.~N݃a)m"jCghH"9ۯT˅H2R>s/b Ҫu>^oO4?]_";,8z Mּk83?$Y4>s޾ҏhACԴFub>n'\=`ʖ%{p.gzvϢt#WuSʇN{럡]2ct%1lF6i5kA~.= ǰe{p1 8* Zlu]o}.x,NSz}N-1o &NlԕI\ͬZr(qR ~M6p5Z8\gQgjWN+ͻHCd˼E[ǏѢm>&2ŋ/m]^qzx2{]Yyh_6azMw^ʼ_5oQ-(<d]򞷡);!Qv3ٯܟYha\rT^&rQi*A:Q)?on`bJP*Ɗ.ti۸!Aԑޢ4+0z* UEE~Z-xT.(rG&~|Sm\G-aϟm'D!ohbW {ZǓUn9_a|Dxq'Z̔I6>76؂ݲ[Wt Onጦv=L=E1}fzl{CӮSuX hޚО1m)ԊpGQDʿ>|kLv";_8nPhYD߾*,fTio0WtJlgm7Թv=l}(o7SF=wsx+{{FD\7W]1K 1m̝lm*8m/[ޭraξ}և^ELL V"l=Q_ʱ#vU) ݺ;?mxqhi~9͂=Zos̖^o\PPI Jw!1qKߞzgjs>);M`j<,S-,؅ڦPObmPr}\θ]Vċw~̙c4&>Xh噾,#hjcXb%=DC<6(Z_^nJohZs楧 Q"NI'Si`U:9Hi 6#_} (߭v?'rxOg<>~% A@| ހPp"Ax{b2!&DA H8t2dlrʇX A(%rP*A5]/3zAA hmtεy. z@/[/k "k2`|(`L)0 H f˜8E}-d?O}@#j)Rg҉ ռjK} /̶BMfu0w9(49+е=M0"OC{,++->H82*RƲ;G_/[`=Po#۫ZCs}oխWm;j>6D*Ad:W΢EararjFԺ&vã)~Mm0,aS+'mBFM+](,;/n-Zd?oܫ"k՛!w@- kݢlߺY?_sN?/N2DW_<%fG7?@})#̻/{~v6Ѿ)ʰkS+CoǼ'Q&3ݰڤkDR6LJtUY!A`̆nG4n ƾu٭l)U:˻S'Fq硌4*"wiț@ť}@%VA8H.򝃙v0qe %- 흊ٔdǰ'"Bck1A|M/A ?|*I"jN yx 4|u"l|tj6ܟ-_vYp[kg?JOo!'ko=A8_/ȿޜȟnf\>Ax1qr6sś$JSo/R E[ϟDrz+;ۤjW/$x+NW_/h0sk2\7rXS۔su-Ir97m#7l|\Xѐ8-2Xv%'suZ\K*$#wyԛUo*gM-L$ɦ}'=1#5'ɑv9lDWZRhHp TSh'A\sBq4S\Ӕzo' j=8޴]{/:Q⦘yq(kYFZWE 3c~!b;L_&FS`_[ߞ?>oTs#o+s[_ZOiI]Szn<0H vf ~I)Xy˦4:kpvV wN_C30 <π7x|/xK@ x - D(D Ă ă^f2 p#H d< < @!(Z/b)(T*P j'P gP@#hZ/b hmtNA} A@D0W0= q 0 4 2?,`P"X孬E@n~l?c!ǰӌ*Qw3ܜ:|GeqoԫMd6cG(@tƂu?Yef,hmmu&­K!L-RgPYC+uW>W L:[-6+zرCNjC1 {?wbһ>ZVIPߔqQ"~dZƫwJJ*6qh+VWaLPWQ49y-/;[(.tOQ8.OlC="JaaR[fҿxFn^VMG?994Ȗ螾R٠Ky #}d +"g?+Ґ.ՁNt̰G~^JtM;$ Ŧ) 4D )z Ma# 'lVyBVٔciwm=HCnjaaOڴuWIer +juk!Yo_-tE-Ni+ܲ1L$s!Nj8 =ElP|tjSDV9Aa#vw\#;&B̈́la^_ņzx]6PyB"}keez=vr۟ 1ի086ğq _#H+p,SW|ި*,_WqApK*hb8sp>Wj\|c (bAX}W9uj_2 _!A~K>BuS2=M] XΚOL<_5U}kΓw}&i}~bϮFok9baN %_xECLU6N-͙&dp$4>O3t{m~M_" d?R!?u$|3@~>ډ`O@k븿+ߺG?$ Va7[9Z$_Ljvd3w q w8Sm8"ϡkBj-g,?HWE9a%ӯJW&nB$MCV?Im_S~1=C+y+ (Bbؔ_bIU͔1z}'u-+tߏ!%e\<-=igăJ'dɑ[Ɨ}:)^jc Wcn]{wSGGkUFo}im4Cr𬴙yIf85c%/wC:JA2W~:#X|ط}i;~"՟2->gV^r[XDcB.;Ƥ̀q" N7rlz"|sNPK d?(|PQ\_rl򲒸SSdlDS1 {,6G-`(U.ON\ZQEC낼1 J(Yd{/_~مvd=!zZtEҺ*01[wwvrŵjm5ߴ `#6-;k``;nLk{I~ X+`[/"\@^p~p@[/K8NQ Nqp @Hi d@_;Qyp\@ (K@5p\@\@ hQ@C`n[s`,^/ {>xl!p8g\On Ob"*9Ǣ-Tt6Kq]!HqCҭ UU#wRSCx=*,B_ڌ,mۖ6)|BP[bp˴Qr#Jm2Q%9"fx2]{ Iլ&;/mfxty"vHfv4d) !+ӐamVw]%OZ{:>SMVf{f~8XI۶%qsjSҗǟ||KUqښ y'3Ɩc{(^"[rܙ7'}ɷ8hZ0]ݙp|XްC]w@ÒNᬃ>ٗ̈́^lvT*0KF,T(ocҗ*끍kB=af EvGϋ rh bqŇH4s{Rґc)A]/_(^I)0e},vn|Պ_b9PDꥹEa.J`8J7~݀;x<'O3_~| A  Ā @QA,H@ $dRA:(- dBY \ @5(20 AUŠϠF mԭ}.b'Mß A@D00` 0&$@3s6B`2B[QsޣwľfDn5p=ZR6vwPm=KOR)DF$KdVcI ID!k.Tb0e%[o3209z{}9OgO|>h2("j_l2 hYwCH}$'Sێ#.e9=.OWHR-BqJNת`pYd&&-<{ӻ/S"<R SLWBFJ >"<^|7:xC ]CÊ2ܸC&ށ860@ꪽy܋J0_B] T%\вWFA߳B.cYxu ۶K~c;׀=D6%I<ݾԔjEv3*HGīOw33,fxP'ugIM M-.&ِ(t!-}#Js{~#^ߓG!:¾e76q:IwJv$j,Vtl*kj3 A>HbnV _U.("~+icYA _'[[Х U(-<Hinq_L]cS\wsOUrC scD@3pJ*+PguNrĥ3DSqnEVƛb\[#uN̪զOnyHWxJ/~MɗƊ"9#b^B5/͘d}]uZmǐ_C[[gjP4#MUrKU!68l&_VC^ ԪBЍCٹH() vga avn\ e"iu Ú- cG(L' cV?n.]{Z~3g.Yay4lBUI-wVP'o``ti^AYNcpz"1$QV({(WF[&纘U1yd;~ٕMpD.[>sV=O;Wu6Op9!b_i@λ[[ָʒ'^⪞,Ŵx F*ǽvg|[Pj!R7l7^;˜<֘CΏZzUdN|sƈLuɧ{qO#YIQ_?'F*h8 o VM^%مzK}/#]e%b&[]'z+%wnh=YU,MF nP &p7:Oq픸pP)*̥g`]IR}^2k~^iLSDǏo?obüj:8(6/JHBHMX@gzԚd*;v'bTS1)?j6aUyۿv+ &5E#57kʳvmkB8&0CZ-b[Yer_2i brt[k ftntGsxa2DmZŔ*ƕ 1nks̭o<'pHt )Y< RX\דϣ2Բņ!'nx;1{5E}'0KXKuW+ۙ"3vN893Qä^ok쬥auK?+cy] ,7Is=X*o rub$W]ClU. _r;=#3ڋ3hUI:= l&3#:D 7>/ݜ$kqd}z6~4PB-FY%>Aj)ǥ7heޡ- W/O{|oQ-K~3iX[01ct!>ǗrtXM0dlaXao -~_e|ܜ45]Dž up8LGzAH6K)H~]j>XD@Nî\~43٭qK+_9}c.PYcOͻ`oVm#!Ra"p=ux;_Ţ.;">j2{Q:cWYAUE?ɼ@Qde־,Dz,5]ZaVg|1m: ,t|D@PsdcҩG""FB|=1mw$mh#&cv }g<6E/a5>5ѹ csjʠ\@OSf`]hv*5vrqGKb`ڒ724rr8C .e7nޭC] 1/ƶPx k^k휪7n|,Vq2l#T̓fɖ-~I6cn˒G#0b* eU*+a ۭʘJTrQjl67.vnSP0F Ky^xdm* kJ:ՐzCJr@%V|*dh6&VLQ')NT_zkh=zEK@Fw-!KJHgbb}.=9Ú =rp6]8\zw*j `RK|~%Z;3ZwOؼDͩV LY0  xD@ @ D Hv*is 2Kd9@.x?ˀ_b(ʀr*J j~=u@>hfm@;t.z>zx!`F1`&)` D`~" ,$` @V*h n[?; IQ@m{v6o8r] SE;X{y{O {kSPN&%jqI$6tQȕsWޡTH TpR}{J,3fV &٣jV+ȭٓw Q 5d&EQD1ϪHn(akif jih&}c*>SAJ⍷: kޝ@C dK¥%D*˸neMbJP12DvI$!]blYFvj&1ny{9-g{<ѱ/J$D9j.M zEG4@ >{_Ǜ/ߣDŽ/_yX9;Zc=^f{/2Q\B>#R'f8r'ru-Iʝ#&"#MFcݭ ӷRLJ?F.LPv4M# j qAI?Yą.'zP~]h،=/Idw=U3֩LnFKheD,^kWUU6.bxJxW jZ5p9dܘ'mm|hӓA1b7%V(HmZtݖK6f՞UغwzulOݖKLl<:UZ=zdHu㙓2=VDrX"t B9R ~3zL7#Vk[ ]}d RKe궎qe3YG DCGeA{˯z<V6kK?`g,R3Hh]/{x}9ѪU v;uS1> !^Ȱq̬";cN1{9]yo:~}j{ vtΡ.n(얞e]4TǰK":*Hbゥ;dɧRyG?mp|oW[#OZ hKϿpR6i^zl+K-i EՍq(99 ΢ ZHsj)놕p,wF;y|n۳R%jRxMïZiPIvP{]Tڱrt#' >ϹQ"B ٮˊjZeY^ __;|LQ`9o0.ʉe0f$=dzOؔ6Ʋ ̦(PF o'As ފE13YY )S2h WDK? *Ij Q>Pu~#6uݪ 1hT|ّkVpg9s,~(aB}WrUĽnN6 IkbkTydڴfWi3a?6s4y\.Wڵ{crig_`TU=6506NjZT޳VTyLD_.WɲU2iE5O}>2x1 J,-RB18bwN"" b!{>jqa뇒 љJ5g;bv^Td$K6 DR2FxIi m!@_^?w-"=z>sK&oK,w+-RhP6U]({dؘvoU4ZaFLݭ/ŵFĕ=T-c.wYEG-36퍫ͻV%v=3UYu5IKy: M4N#ϬRգdlsO3 X5Ćn]JG6cgJwVnIwIs[-d÷S{u5;D 5*waf%]'_pN.'[{OO͕~FP = kk"gy\FKD#mv|Aۖ*TUDe7| \qE(b6؂;Us+RD ##Vzzy:D%Ѕѣ $ \#ߜ-\VVr++-nDiQyL߈xou_1k &xY]8ɂx~+)n'c/H_bӰmLSk]>ME)F@AgIrp?b.P;L =CrZ} l5v,xJƺx#'ze5d3--g{l:̿k)9+ ./(Kʻު*Yz=Ř\g2^ oYWְP33]t[E={u)Đ$AMР8OZ HZA\ :u1aPv\0 r!c<9~[R Ye̍QH TE\je&* `6h*6XGr[JGk\L_Sσ;mLx^̄?41C` v`;p- ;/@݀ {~$4  #ٗ2تh~߀18zf`{0N)4`g3` l6Cy`\p.΀ \\n : @?3 F𢴢F=xѬf|||+!,>?7~`+ eB6 G(SrUܢ\oZf] $`$'SFFMj,e&Am=c|NK pt0p\ۄ3#O4F rnW;!'dLI4nP4iaA!94( @ Mۯ>hʲ9I)-ϻ3pJ&Q.R3rg0x4K {?F}7~ђp58!<>~DxLqA߅@j* VVaE:"T!RVҋ %tD^DAz !;[g7fg7s.3{C= m1ay@s +#&t4czdE^-2:|QLe}>DQH_'eOdK%̭M|dv8jc?6ڥ۟i=mjݦZahݤv~09UˀTw]81wLbM#$uR)^ҝ-QnY\oOҞ mvܣqu}R(IO*Kj*ɦ= F CWubp']6>-A,a~xWgz:ae?N M(jڷUO]fQ-9l (]W|3a/I<:{c|}&Ք^XفM)YABaַ]:lJyhho>=3'hX}ۻhڿfMs9[?Zj?>\ך㛈GD4 8ϛU nd.hձJQɎ8#cD95]$kI]A͙'-EϖDb9EQ?k6вAʞ j{նӣ؏2mHGPJ Co܋*{mvKFlՠ=ݦ\f 27[E3>CMǯxy5+Ij.Tc[D~/p`}TߧF €@|nlHzd^yaDޝu)usǜ'*_U-i V43:CfZk clOO-d:"`xwsEAY0B!da5 ^Xe.bo^!z4o05U.|z o&BTl&?afJԎ$5i,+q?P,$6 % NM ,& xP%3dycDkݳր)NC JMt]v;g]toxsK{4ף9I\V1*>IK^y"XsKlmfBiQ;qA?t4]0Rd|dGĶKz-ߦNՆ)i~\] PX{7eՋT#ͧҭ+Av""[SIAǩԌŹVY/iB#'oA (p{c@̬ɴ?Q{߽ZDm WJZjr?vq3=ך֖&AxR5rn_Tz`#ˁڌBvǛJMff:| &Xxws*(-l,!ٺ@s_\'ouZTQ+Hoy^qv1#~P+,:YMXL4AѷXk^g_YO΀Ra>J%ݥE%V%yulW;qjm;}kkϻuAtH<nSlZq<2lib1cbϴwA|AX e΋d _[ڎVY r^G'TgZ[ NMY~Fl>J\;v ,f:q'OUU^'x|@&ÿV9[fpYC\6?i}{׏#)OJDELŬ\-:'y7 _)}`QP)a?y'BĉlMC6ӴY@l8rPjd 2PqMf~>WM{X&-6Kej뛶Bv.u'H#h쑙#Jozչ ?8IR 98qz:A膙W 5وvw D]Lt0AK jPюfSl[j:}_GB-~b$LX0~լɤ#$9x 'sc| DtIKt cW f I{!'l3WiI ! tZ} Ӑa?TM޼@[M|*ulMaح:/E%1̐4Je2!ilzr|[]S(Q C*dc4v> Āi шT>-Wl[N>71*ǯ/'MIcʃ= Ydu M8aanZ[a ,>SV<^TQ㺷נˮδ▟2f/s:.xz.?~q/,Nl!Yv)LjVE5cQ_lXT>~M+f!.sZL Q&\JޱbǎslrZ6wB ![aT^Z hO+8K% Ԩ'kd7 ъCURqyBU<-k'̠P/}ejsHg>"2gyrPY$鱝Y969N4 /O= %疿_^7m QB\{vb[+lS!g̀g1 s F"J{C}xQNJ:a"=&KC,Q'BZ۹t"JgI-Ѐȴ~y=3VZV9%2aNOVk? L >πVa>ky>PC!9L(˭"zdXa'4yz9b|;4uǿ/Cp^~]k2gĹp[Q4Btt ^DQE :NL89;k1S:aW-+xT3x?7W<3bSOza8O:TBA @L|SO@N:O>DfrOqK_'s?5צ rpcVm@{]ѥ jK,pRA//Tʼn IM@f懓"Ht D$ 7`tt)]5'24T t9)fזP7fr ݄d_6TΛp17 +fP+XN,g;d)À`%?Q"HŠ"M$R~0C*uKw!f͑mfLp(Yta&Xx95-]$` kN=@ D@   @CkyI` <3 HҀ@:ol |ky`[%@)P x T+@=&mZV h:7@' z>-sl!`F1q#0L)`>_˛y ,`+*@0|?٘c#Az9gm1 wλ g0`xswc~;2d[SxfsM1ȿ?Iq3{ XodUͯϭ7rN671g1k`]wfHp8;Pog`E1w O?0cx}5 Z)" HQA*( %H-Q.DA@AAADzCAPB`-AC {ݝ;s^;;ߜo?9sb3 ]Ac߹;7~wH ;kw1Cݷdq+7L$wVF~T*mSn)6:\WE;[G[փV^L Ӄ0mRY1zUju`&reWgqg>n^gUl/2bwASO<VXvѬpv}\ٚNfQ Gάchx;JLEBaՅI1hD*<֧R;rcd{CȨ'_꜐3Pな(I CK^;L#WeXSd(%Ë2&]$*Ssk5vyi:chRbY QJrMkWDZz8S 38Vay#m[6MEjN0U;cڳMq3l%JaP,]j q)A-Lq̅ko?~:Ha +R0ZQJsK7yhbQ*W?h\o膝5 n!H~7r0WQĒ &~T!?xo(sVPTf)8{X /4X=NOŚ-駩f~7 nue'38FqytKc񴦻OsCah2'mo+xbQ%pԔ'"RRZAh]_Q$Yٚ.=+.o.;6_j1SAt_X쁜c8븮ơ[THYQT}в,̃Ҽ=^%gzw5͔TvcdYʱ3C痌ywZLGנ)]9 _V^$ VA= );#@T٧wZ,+Zغ[7z/*J:e Y7oCDv'L#>q O_xC*: :K8 թX7]ZK)]L0}FJjo}$lpP<@50)z ɡCT~uQQ8Ef}zAeF*6}j8 Zf>͠/WQ60:+5e(N7,TMIq=l%P}v&J'(Z /r;n5:ok+!݂D[[_bOcC$kF$'BFBl3T;H H1H"qsɃR0gƭz4ߖ<끝Z/CVU7v1tΕ|AčMRUÆzj^տ>Q4l |6݌6)Qc<qP㛫) r ?c"4-Pd=]^hQw{\Q7٩$MCSWMP:Uњ"0~)Iێꬕ5{tdѸȦFG.mXs'e>Yy6l9 {iƂGkxqroDÌ (Յ0 OcэUgO2H5KAWfKi|YBqfqr0eW#ehY-v<p٥Յ~^4 !Hw_+ۅY־cNKg c|?R **+Ht/1厍%Ү$NB΃ &t{6CsD-re0h]xy7S7f^ܓ6o/rjrTxp%`szsV{'Ǻ^@m֍܆2f^\$3,cgh+m[=ra({c.^g|-hz;Xz<2/63!5Bkw!l}U5.SfҊC2ɣ [E5k$vG=y}JɕRFIIFCjgrl0*E2s y0m/F6]蒹옚h("gv۰dBcS_~:RyE!v}(daSc7 Z݆!Z;As7Z;F:v8iT԰_ )[iZX2܂)Y]VR8:[H,ow0OIJμEs&$d;PRx?]`#u _IͩS m$$Z%DS q\؂C4Ψㇶ]q'W+ M9tC/S0qZ.^ ؊Q5^\ 3[aKx$ ?G9DwuɆvCڦ t1=/C2wH&Fyd"ƞ-؍  b{j^-؄}TcC;tLGf)XXjy++[&=z߆YY0Ax܉#H[ZvM\zxbc,A`yCn8 xp@'AA{ D1@$)4  ( |Sj:p_@@\ mZ#0L 0 @휿u׾@{ pg6n;x^|_w{t爫:1K8q _A$+xʼn3RdoXQ1s[+0Fx1S.IC˵hyDyy`sR]yS?kul _L`^q:JÇLi+i蚉*2}Jm1T`{jKBJD.sʭ& (%{r7M "‘[H6Ĉ~/d\r bm\2suyrnFblJy9~p>2;N*T><ؙ>y#MZv̌kb@3ch^>`-ȬiAxE<[G4Ո˻r5? b =օFϿo? ,gs/)t#^FlL`@Up/I+Aq%ߗu¯ä#2: _m ov]kHAZZ/ˡWӷ^5aA֟q+w&|ԕK)1S|*]2ݢzMelbEK[oD˗CWWZq؅-%ͬb]+F_Yֲ,V/a|3MUfa‚4/7p8z~RxM=r [>Z3} ՓHj#1y0pysb&2roCnP^SBǬ[{ۃAX$yooVFfjTVZODZ"~0i{6BP텵Բu1pw 6j9ڇxe@f`6Эa޾ỳfsOMU2O˾zS+}j_]7hJӰ+RO3Dǐ;:"FkVx3%:եkmU*pĩaĀ00!rC@Ew-v]NX"oG*1 ë =Es%sSG`{5pv\3/=ztOנDƀ`@Tl mxUƨ'PiJ|ેjh|z}1?R5(>YQ|ʚJ,g@i#!y hxN,LL\IK=I5}+ ;>q6W9nUKҒi;4zw'.OZO?_0Ϩ>h+ K2?N +6OіGӓe.&W:=m oj쏨q̣{zy鍮'^ _*[ֽ ށnjiŎ`30+ś"iꢹáH7V $BҪ´wrF^dٻm8NT"kLО\@9D䦬|W7__nSkgDŎqh tVP`,A&d}Y>/Vn[ןӏ[f-*<2kl8/;2wq-Rq MuGQ,]>?J֍%?.H3TXixlPyn?8/)buEᄹkUPT}]O>wTZt=?%y OMLu4HsAW`O)zt1'wD)!/)h%Ss@>%9ˀby{)բu͏g'u"?B7/ŀPG_F)ꨴ)}flyN5kT{Jq7`4Eb]5[spᖕ%} -b|c XYtu`ސc܊ju-~]|米DZdGŸgRJ?U ,U}?3$7UE߬ WP5.)°VACΞG3Bty1R#McT?u~5p0-gw=qmp2v6ꡒRX“^xF2. ݱ։(C\ qJ~V; FD\D`;r҉czNj4pP&P:/qh}jm35K=%OސfOV}Qrѝ[Dʏ_}lf2g5/YRh+jܫ]DHfsS%w}Ǜc>k5(tN~)T؄k<֕5kޕ ZT0}Ne0BF%سBdkJwmb`k<o`X&&՗ xj/қ,LRX0MaDRe_~]}}A4#~0M)\e]Nq j 9;u#s)F>ɻҶ[eK!{٣TMQ\d;2 (0G%yC(MiomOwhb\NK"g;9(]4(lzf9TDYo7,cW&2BH`vqհ., 짐[q?oM >P-X`lk*(Ye'"2_- W/}S}uݚBb/MwmݫS>Qp3ڳ$R,}~3¹K0&|iUJ(8l&w8Ȁxw_GaFyb',u\'LC"ff^KfYҔy3̶Y*OYC}_^w|6=1/Fۘi)Cc) IQѹ0ُ;FsH,`IPMs(͌+ﻟyP6-[a r }R;oc׭DSXaLG9/]&۵/>~/>  xÍ~$@$@   H@2nԗg@:dY@6r<@P@ ۨ r?;( #IŠOIO% E10 L+J "% (8 wg؅s<ϾUշnwW. "(J(ʁ P <Vöx u@= x 4@ @h:euz@ 0|G`H( L-wi`tYo_QlKzV o!ς!1Ckb =q -Mj"BTBm<#~oƸs4UC腖X 3YUGBYGB[M!H`- ˙J;%liN!oi bY.UX8`0 ljψII9 $D4PJWb+MvQ_wc~̰a5 QJ}K*4C#؆N\HlJH&so$vw2 XAv~ 循 jH"b|ij/ރ=/KBWc>{_r>KgbY;aE^m&Z/#^%ǑИuxPFźކ5Ԅ}՘,l|$Ql;Q&:qx5j9fJ7?}pluAGVCs(*c7W~?G)찫ؕ?mb%lQ,[,B~\L0u8 ͩL0o_& P,s͛|-޷u"=j~VZ nHAZQk,H=^δ(Ⲥ9sO؀Ux>nגxǬX3mBAr-1Mcm[m42XWWisؐpTZi)[Cj~sKƃ옃j>T mQ;pд%%6BhgAN$Dv)e;ЌORp]ikI%%.$yC^p#C +[a1E3 /6-VČJ Y,>21z38D d߲͟]Ryi2]!~ ]s:EJȈ9ioՠ^b2;.Iq voFwՐkd$L֝2 0La=ioe9?ǧ~?eT%I"z=M[{]˗l/gqcedk6ۑuX_~ae9 ,2tj+GpL|hzRͣ6dºݣ%u[]}k~d 0ۡ˧|AsɱXkdOJN=mkt[JAJR_PW}DLr-'H a Lk`?-Zvّ+'VGees'_ח֬oA]Wc>Y _-WhEn\Ummm̦:,O;Iibw=!o1) W/3kA3CU<,y,o86~4 DA2O_bmkk4GRo ¨u]Qk^|;nYmDCͳ_U>%r䲁ZWkVrk;Isŵqd~ *A^ZƤoUǻVBi_u,.W|58p#dN[.J&*{LM/WPbs ;(n|?pP6` €p xD( bGc Zvl$ HR4 2, x@P*m1P@ U ^@PO-5lF hZV x@'t=@/A"F0 |>c80I` f},xL߿}CߦB)ҭ1 "Sՠ?֫b8vfՋe6,m5Zc-_fq#鬥{s~ {g*ܺf_'v$ݱd10"DwH!&M̱5Tf#xTRd//(s/ecEAxO -YiwTsӝ.~ŭw[34:7^ޗ˟Ɠ+?ᥥfSeߠiu"I.%BoODV{^̖~[զ,fz g2~KH|q!vy8FIlR#n/ǽzccC+9ymyQ]Iφ|;Zv= ܔ.rOMk3\L#[N53+7)Y6YW FqcRtu9so"!*f]Zx̯Z> ؈J,Զ <~2?&U?vzULZ:qY-Jn8')x [ 9h)sf^ '!4Re]1ܐENUKT[ vXYlnl5HezRͺWZYk}ݤ.5Vٰж𷩟N i..bhw)otl}#IȪ9ΝP9͒^z^F񡢕3#㑮V\1Bn$>~۴úd8ޔs[dY$nvxϞ i/3E_>:HL/sW_\yFqRn4Yңe wZ>g1|nj0v*SIF04'j밲$WP%=Vkmҕ?0::癿93|}yTקlXƣThL>;-׺S;Niھg}44Z'yoU5x}XB9MOUMꄩGmCRN?S[!hA|ǯw?d~@;;w n|.;Ow/]Z#oOfk ɞH\jb0fpဆ1[H60tz0OcS͵!Q7 5݆,j(n3T2۪rBܼĝzcmz+-#9Mf}C&C?#'ke{Ć\ ̪S|ӝ޺nɲvDͦWɏFRс~CW|pt""*YHR哹w2''gcM'5=[ڶ@gʙ \4fėD&jiN aK"3I Ue%ېDLG[/%ݤ{Jsk)WSSpwM'r*2Nr=]!g`Ta~sOPMvS?_{_h)C&oEهɖ)/D=2xH>R)%gi|A ن sXe_^dH˛#& g6"Cͪ=9v,pƱU3 團#aϱ [iI4}Flt?\TT4t!iKJ ZG0oqv[m"DW2>(/݉M"y*}r *A^s\6[Z5`xP؋J>{jZcbqkD,m6D#c0$ji!!n}!r;]ɪEp95^Onfa[X;cMHI PjD&+N6쥊~Ѱ Ξk,FƬcמ؈jkY ,ɺ%]G7ghؐ|2><"qlQtut1*G hҖ4/z_1dlȟУؒ#ڪ+p#.aW<;G7[_yjeDM}4e2!Đ{nR)^Yֽ"!׿K(>X~qa?mX ;2„(qN5]Te-igOKGbO9Wi_e V/KxYZG.RP scR^_\V]UN'9Ldqh=} q#+yMI.-+Luj8}pB 4sΕU>S?Bۑ1$τGˣM8Y$ɠ*ێ%T\^ܘ_:MtF>y}:0 ߹]S`eɨǘ' FL =BʶQ]V'nmU+';0YBFkؘϰO]8N#9e#bB>ƥ_kq`tZ^)bqNeq4ɻ)z2ŠUjoמ%iy?@hp O#p`b. Y;wc;p\7x>ݹ`D1p`)@i@Nr\ `Te@Pu y@.ڻ +>p0 #0`XeFk7;&p G 8΀ y= x |? @ pW+%cMō ɒ];'(rԺ;MKrKr4Z{&Xq||++ק γ)JÛ:xfoW'poƪ[NavkЋ-eD6~ߌpLL2 qmhn$0ɢf_{]U/<*ˎ(ǵ&yxHϽhnZ; O+Z?H~*+^7VZRiyO#M! g3O㾣&L&:%[,ۏ82ffFphaP!(P[ lfe%?f"º23`.*P m52wexqkၜ9Ӽ'}8G,--u~e?QK7=C# _Œ{ 9kbikǍB7upKj?Wu1:Zi.J5.mF^j_L߆|dچlD"G&0 ,J^ 6vPageʠYs󠢆-٦4d m]wp|3.? oሹfvS*AFpdHg]MݜxoFxSqbiS %mEr\5Os BwpV>o[$%L?%*} OU b߿z/6švSZal(#v#S2$Ș{.OpjbvwzRV_FCmeЭ0Zw.._]f6ou"25f<?店yz|tWMMX13]k\R[ť˟Z|aQT-ĩ*ٻ_=#\pkyf]W46 lCSB5:,dlj6/4VR9} QU2!*l3Syۀ2mW@[;PS{4qTLc`{ּ[ahb8No 5VB*K!ѫ:wxO^ߨcMK)u&xٙJUI^)%iA埒z+}_ȿb}J.۾O@E ͤ`0%l젪Ҟtԩ*ZHRq8Y? OXM7 @Oy ϛ{kB =Z.Q}sEvaq庢iېuM%W 檛jk$隫9TB`]'ܭb6,=}TtBQ@Yp4XQ,ƒ龺 *)C+wOfRr8/H=mv9ȇvM/TxMe xn,4}2?)2'V?p.\j o`IeUOnƱSxC9e(_po\rdDkɲDˤ1MNVV6|&ԕKLTeOw[X&u:H:lJ"oo4]\\i_J|Dqd&Y+W4~ma? 6f 6 ``?@2@ "@b@H@HipȂ@ǀ, ?׊91*i cahYy\o~i^ T3GY٢3s,tsYR~5-VKhŲbѯa8ikkQ֓|B!:gm1pM)D4x oU]o ,R/#nz{O"l8[3Ѥr%Fumڠ ѿ:1q&TB'abB;`G)ePo|\`$n@{<:5ܖex# )9`Rp'u'NۯZ 2ka(]1X1~?'?lTIDγ"y\;#7ޥo?'ߨ_;APoT&!{8V/߽Ett'٣-$SqSlz/cP*IwEbŕ;M_Z*PZS}T?t^ͱ+Ղ[:6,leg^kZ]43|۶p9;BK"y.Ij?wur'MLMUHݕ+zncƓ^EG 3v`=n'CR8kW'gm*j(]dl߫o}ƭi+k'eЂ ti'7yS(O䊮G2h$4:]K\,b׵Y^~bǾc~|AǠ)MUt%ViMG7(q1Y~xbk-v4Ռd+uB{+P^'x@f)Ц4< <)9b"hA JA(TjP^Zu4lmh-6htmAA`pahG($@8'0 4 f,@ +XKe`u`l`x%RjҬmo8.G`TOit=?0UTagá-ʤϧMN d* 溨;Sk)ѫ>Vߖu6"7bFi P,ަSqp<-`!a\y9okO0wQ,){A"袧1G W>:X;$wR虞"Sfv]yVѓj1.Tfo##t]ewiM 䝈lUR;:| ̲!mҍRK<9ݠrI -f!ɨu6ѓ[̭Jz"'r]T~A2:#czzB6|QP>^F>|z;[D̬8@n_C㝶FZzE&:+w3O}\M˒e]%|N;7uH(OⲖ?TzgA,SKp-΍g=:Zl67Vew7òRO7QGH뗯79J!%Y{xs[t O5bF..2C g*u~j~Q+ɮ{O/ڿcc?TݢcHʕcU\Ni:**;9A6l$J5 W`i}?׽+Crn1Z[SNK k".y*soT3.2H237]Z}PѮgiiJshrYп/O'8QL:uǝY~4&%]{Ge|zE\o9JE e5E|)e$*_0fbgbѶ;C/1\dV6U E1)k:1|+y_+5g\(WaڳN?}trw*n\__Iuv឴R5/ƕk逗1pY^f J/!֎py[|q| #} K_4 Q<6FWcqrԭ#vK1jf~j9ː~dJcsCG)_ȼ^GcWK/oAUa(ntm hw1I~GϿC{J_c6 B|Ci31|>&l?',Vd<^&*9[đRIP/[GƯ#~N] nIP5T7˳N+inrXx_y4JJYXV&23 dBQ<-e؊A% 3Bc~9s~>ӽx?|;6*h1UPHH"0o{aؿfok`Xb@V2CȋB -)hreb{^D5nuY rx}Jhэ H6z;bSE2#b6cۧ>#' 7]Cb;k9h(eAmXŒ[/Vh@cΞP.h~gj9w^#MKZZv%g!\]h Ɖ:>90RӆPRH9svAFk0nҤx#l~BۥFc9=#eϹE "HN$ S9^۬R fqٗ |?3?7R:y_{fM;\0o؀B8lO`vJ2Gn)Ku!}{p>l(zhzR!_)˳\Z[^W3z`s|sz'~ wyQ7*6=RFO[աԋB( 5w20ښ} $!6ʌRAAHwBQG_I9c+pYmCjm =ٸvVL~Sp44iMuL6.G9Jw჻ծ=geLyPnW?ì(u|`z*F94g]9ۛe*;UYJ+iᅬʆt{CΈ~,<'XUhřP6ԈX3nHZ㲵sr};pK z ҹ mQ}=0LKbՍOL1YڰbFD*1tP]_{1Ns=We+!Ju=b]ߥY%E3wa))#ٺӵe0ɯ=uXE^]ݗ{bD HfLiB܀x8.,]{dSo|F݆+7 C\5rڙjDau*sGUVZcs%Ɗtѱ}~٢4d*?Dy^>ja[Lܶ˯\X "anU#a^FӮ7+Ȫ2[5쌿jtnJZo1^^犯VtzƇR!j3^t8[1]|ɀ -`Vf H+ad#y 5lR%5.;};ٙI M>B+$ɭ5>3/cۡU\ڻ]j`kR`POICSÞMԂ.{9j^em]Qzik륻i8= e+eY VsI-& WsdSHVk(~|X .HQ.7<_a0LV6~cQMPAWmMӺB#2NE{J7W"(YΗȭf-oZF۲ D}U[~B^GS?pyQ>/2?~}1~?|_ -V޿=S  lx^ €>8%I@ P@@E@ PTsQ P4M@ 8t $N`}nc0gS,sk`8#>pܿ=x("x>/.+`@B0*?ǩ$TLYmZQT̖ڬNzi")[!| /^סH (0Qy)KaU{W>t̛D*WxU8;h=Vi@ ֕e%p1V7du1(hb>ah#FJjN¸#%b9#lOJS091o%ZsV= OWeH :C&'7nx&h|d+ac/_ΨbcQ P=uƬ"m>ԃWX5Bʢ;YwnXJDNgOH x鷛e:}x=oiƆn lHtɵL䊶}bN9I?y'l3{ڷm\c}k_UuV`O3T<݂L~r7F̾yךdA"։Z?'jߗ[D$<)?"-ov=εvO1șɎƎbʯ쎿I/δOT*W 5ȕ2FmWNEl_r:~L ߮???bhHXYk~1F)uZ})mVU‘Ѽ LAnY6H[Ѱ0N'DKtJ27 B^5J&9vgfpĴ~}e%4Oq iƓFݠr#$Kr].?!O~r%* 7aUP'YD$)Xo@L]ȸw|!Z1ɜ."\Aȱʡc*Ts}(ɽO  '<.r=iŧ~'lJD 5#AζF۞'8)lzoxrn>5ӮL>6M:ר"d 8>Jcb~}Nj:u%cI&x4}nyz3ހp&yg~Hv|X\11E\v`59m[.q7*4hui ?`cW=YTHVO n(A2:u\~6 7*m5FƊFp̙d^]mihlFqLwts8NJz=^R 2y-gDZG![lsjcL-bm|1hD #kWs3~pi0P:qֶN#܆ApV<[qcj/hUXD  :_NOxgjoM~o ȮӏMfey1YC&h}bКڧ2I.#%BPAhւ0厹p\~3BCP@l'–[0ʖKC <{9 'QbҷW |Urc PFlrޝGCQTB-2(g\,n!e,!de-Ψƾ1,Y&4Ys~ww=?s~,WYِ)3:Oh jYx_Q.r JL S078<`6h5~h0oH7<-EhuoK t8KNK>iCQno$obcM>ũlG~8ݛ'R6n%&QrO/8q&Fr+6֏PނON3R9|x:2S)4÷kX {#ڬ@fW$^?lT{P) zNąckOc̈́iM3o9qEu[LRfrk 7_sE!m(Aa/KPLn="Nh <=xѧ]Re~\B(FzzlJxpO7X媗(;._!gF`gڑE9T/֎V.# $s`T@Ӹ[p;c2+Pq 1KkQ; ryіdMKs}ZGj+&%Vr2CȢN8Ǚ%jB/y\w3`LUw#hO'!' nf=ҽ_qhj?s1:݃??}?wC}b~Jn o(ޝ0CQq.kS-,q~DI:;9C ե~wغV)^a*"x"'rJ{ ֋aNQ5 o\Z{#jƧ nkl$xU|{iKƼ4_?cmFN_8,bB J-Yq=$MzXv_B{" o~(ٽ%E )*mںPac-iW^w{˽`ջ+Qs+—{c?s Mo_#̛Asr>jɄ$L?/@6#hǶ.eF90)[vգ`on-Ap&O!^x=Y 7QFvvUq%:S5Q.mR!)+01}/senȷ;~?KA~eƏOA oޞ{{~+o_-H#N1iqCӻQDpIU֗Z79jm y<ޙ+-/o,n|u6}A‚D+Сyogmg$%nNImyfuʭf"ީkdF>?M3*1>SBy ܜFRe8+D%W`dj5quXvE6L$ADEԸZU?!ѳ>*Lrq/)LJK;8iU$bg7гzBI&GluNx3zO~yoH x#}D5N!W`}v6OXH"( O$}A)O[QXj_JYkW2b %wԿ? # B@IA"( x( @ x$I@2c4P_/tdY@6y0@P(^ X(ʁ u-@Ï@mZV h:NH@ ?uF1`$0L 0 G`zK.T5 @t[?ٞo$;jNAbY?߀(h]]1|hkÔ!FV]mqEFuHmoǚ٥ӆ0&Gأ-7]W\_r(e%1bZ)|,BO L;93@D2sm ѡKMgZ/9r2[de}k;*ɈuIޡC+NX9}BO>^9;.y`n!0wC]3 d4S{jY!`p]oF-غ0:9s.gY>rR4׺RHJ '{+E!(X=W}vOt+# ]XeNh $I^%*2f:xCv6m~1$::&/rk8GxjS+f>p:$65ۆ.a [D8"˨ N1 GW{ټaZ}6ySA|GxۂvX=;C|O-W=M~dĥ"fU/iLOCQaa:-Mc9y-Z[c5 .9R-;.%.L0 YnFZR[yj]GM6i+-\iڻ$$Iu~3$ٯ"d\|bg\\x:uN%^o␷72z z LGR <#5O?u%{4:T1MR|MUИ.fjĞر궘ה[FBƣRMm)?/|cvJ-7{pEAZ ]$4Zj5Hԧ1"0W̪Ir} -Pga͹ 4=5+&C()/Zdw_pw?~9we}'7~ߟ ?џxG=_;_P5ՍױIXP`3Qe-UШ U;*z)ߛ"dFM Gqd>U`;~4A@oo=}):R?H=hRxZSՊNC[6+鲒ǡ7W:d.빈A(K:ĪbαIw({q3j; !]elL[kك"-iA/EOgY>QS=Pz+w"vְ.Sl@c׬ôԜ;[9YwR\3z-9H9@_6]8$l J=8j RڌV |ugL\imZXFނU!뢈 A)iޗ:mj_g7491şܟmYRDwiZ,i,lȃ.ޒV;Eȩy8'YBم"{b&ɞ1)Y)Dd)Bv#fLBIe7218s9=\}u_ gZA(kQ,=r(VD9eq*SzG]'e+m5~ w+tv{)#J,ce5!Nӯ+;MDmr1R8O/N)c7>~;ʼn7 " O_:Vkʿ_j,;LJuyo lmӼذi-ގe6O܎VC%0k{Ð=WضTAL6g7/b{`}!4#!U{D<}V]/7j"H+L,~~+yfZB.VW"fâXVcG4N3z@z fLW^M򅃋̇_j+T*٪h#+#*7R#[Bð'_B1GtCRDz3.e9rs 4Iy K <#h@m\ /te7gX*Z[4&)^uYȍ=1 ? 8{ 8kswI4>KKT25D+Ϋ !gd~Ku7%(%w6$]*_o~s e1=lbg^>8tQ[eaU~ѭ!ryV6[_41&g17{C1bf&DXo^N}/^qzͭ1vQBD^U?;LR%(|dugqN.װ$'VoD4'njjM#4Td:zqREr!ՙLB4GfYSl0Yԯ:U޽T`* (oumkp-_bN*{rB][ .4N¿*46 J2{Q{1/Ǚ~&]'r =Jb3O qQ_v{CAbA: &d\&M~( |zOW)*xYwabp? 86yEw_AOAgN_liSEլʢz'"fHkO͜Gi0궚cG9zx穒d"m@/4&3),#`=("y-Ց8k_^23Μ<"?b\Gyr呷?k_rPʥ\tڋ$߹b\werP!| P;D'"|uSE Qׅ(,\ 1S?j7e$q1nӹ9~̖1*p{vjf|"AU6% PzsU 2_lp0bBo";0.ՙZLDBcQ& s=@l=ZU{B8 °98_$s_n1^ELodGev59 vΗ!y;W]Փb=7*ŕ?F %^C{9R7xpyc#B=0Q{frd̅~AidmaN|bVӌLRs{h$SԝukELCa[[cN/H6OJ.j+AD€`9ϋ110wÉ%E9 $l#nt)Im9cG?R¿=,װO `~L`X6 p!0pd%֠p^^UxtuaԌeX݆-[,֕ĚTӵ ?M'*17T=tzhwl?;xrT4S*x2Sk;@ybpo=Ky߶'|_yd컷_&_L=H#Cr= ncKCQW~mńZ gv`_NvF& [UP!ER:j[4=z6/HW |:m@iX /Eש_Y-3R+`aʘٜ1J^yD]uշDl]=wj4/G e)zwK  ݋nke]h;[6,BևRpsp:YŻCZ>{7񷘸2Z,d"k끜 vjbBQ(~g0tZy :hKjo)41\Jm]wӍy_0i) LjӒ&??e"5vx̅JW&C#wR\1=E1_ڻyE" TAoh3]))aZ6tP!˯ei]XZQi.T8y9m#4$魢c%8"2n]}TD՞{2*u8!)DkQ-[`qx̖ᴎi!=~e3-IWP QdUcq ,1Yb2-;gY(oI=C4wy"U4it5EaZ}a2ɧDKVN͢JqNuW\f^'G $;OcRٞV2>-TE'z,UWpw ii H9׏ty&WY K Mhd=HD mvQ[nxw%Pa_R)*k -C%QI*[BJdoX,,)(.n%A.5۔elSٗI^Q߹{n93gyy*m Y@i5= sرA,*<3ݲDڸQ;p&,^VGMhл4@ B+Jk;å\,¤ɛڔ!/AݑAZ[+}ER35љKLyEM>(ri Eu*kT"*pEm\x`~Gnj%1Jr=eidTJqtZw)bD]_~S\nz@%ݮ}v]"g^_;??oگt$죠}#BI[#iXe95hK txgbPzSꋟ⎍-?˩r\(Һýb]|Qg}̾B0J7ѷJsȇmwrb_UgR3YWwǥ$fUJNpcSLd+O>; *' x$Jȵme[vjގ<M/ ':JAq^W{|q*-bh6czPjiq|9[P9}v1M))ҝN#q{h~Emnһ5Z5fgQE7 -+ź(p]VRr}Yy ޑ8φ3maA\"XRŨ,N3::5A^Zğ7<*l?mâP)"hgMGyomZwkr&f:ņ)O0`  hq%}K$|6<&D eKFxz7U <;ߴ!mgW:VY\t^;)%X%;~qaʃ6̓E`'f0tgCLb> ECbSJt&ѻ[`hϝx=ޛ&9։RZ ĨæXC}{m`/m>6W) ݤ/;N{ To]$5G_AƄىߌ9ߟghz䯛:K1S֋=kW+x29jzBe<-hс#ӑڔ[?#ƂB^k#"L]Jy6uXȇ zꟹFB ofFh:I9EHA[_+N]+ݎ`w,f9GlSB8wތJKi0)Jc3(7YC#\NA.ax[u6kvfI/G{DW?hpW4`͞8@}·, łsV7_Ŵ,;p\\8`;˷Wbl;/`8oM˾rll ӑ '(e z=_v40/#/{ [>-@@}bx6u_qY9͋ I6z6;Yq|48\`J~s5|fBuc9o^OCjۂ/}8oLw.-8O7 ا˿Εs3셀qʘ[7W PB@wsghp̯Cȿ_€֠ (or.ʭ 8yab3uf6 BlԼB?Eyφx)9aLh D[Ȅݒ=RPF!ayR(v]bԌ nz|dX.؀z B۲Zˮ taso[5`}3xV`,v2hrf (ccU.G@ݎI {e]-lYƎ<*T!вw>Nlkv :'dAmNđ(}sPf~֫[?Z"o{ ]I 1?'z/@ :$4_o )W} *=+ƅs0hXU:-os1퍨-VTHnHt+m1c 'qál6Z4;-Dmk)Jd3lֿCQ'>-!C!.ѧ>Nm;ض!#7R:JUAhsRemFC!=}LvfXG g<k:N RXr›|-Q]MD|[X=/R4ikV)P3!p,\fb5)fMbq[1+ W^ap'-߸jE)\4ҫ_Kr_% ow۸( x^ݏdC]_6QNpHngoJ`] J{[WU ѓ;`'a۫`>'"/F*mjF5<2i—S.V@rLfHM.S1_-ĩgSj/e+MM*P Rv+FPbx(99 TF'˺weo|>?U租wM+{Nӽ UUŘ~R3p ųq/R)Y;&gP#ҳaXbXj(x6 @AfrI'fi),BҎ_w#ra\gλ=!8't^%dAs,iI,}KZ2*A7ry;<ֶoC-vM9;2iyc5&_STˁ+)l_N1xtRQ))UZĊ1sZ\!;+ Ly*ڶBeoeh]h tO#\9,wuo.uױ}hOGY}sr =6 ~zvk|LѰ5]oT+R4œdF!gd4[ |2Վ l;Vv%\2zZ]lo\k15 It&ҁ\=Oe#|ȧ~"hw_}?@??s8d0Wn#4]wS0Y,mghrH lZ!y?{K*IzB׋k_IZZd: ␫}K9$wG+w^7k݀Z\c 23V طE n~zAIo2HeF4+\N\͗)eK೐ڻ47>^J~s6=γM]1~c_|\[:9R6 x~0y S(?ͥM6gBRD`m?1cL)tue-ߵICoƅ#?JzP-q*9x)Gk=%?i FÈGU}jmvs8yy~?遴ud)pNRm[%\5Ep Hrkg.ifzn/C8' MjrPuo%;W*5%%D:c.%!%Xtb/ * 4QeԄB' 2gk+hyi^⽫鮘ĨBBd}$O_9lq٪.}:z׳7l~_|骶wPnB!ɑBD)e\BC75`B.Cu D!rKŔKC 6[ 3q7!ao{t{Y묷5{y7Ixu7I˝)m$CcKL8qoRFU(OӐRc󆽽|k1lk/bsP8BX_=gͤ->$wARVPGk8a؎X ҉=MY>v5nܠ%.wxKwS?!7`F'~:i*#]^\GҲcE\t_fm漜Xk eQ{+m-ZlЄ=7}Y[,Eo)GkG޳UB?8.tLwߵ; kb`7}?`ۺ Ig>=0~YEG&I魧ĺ:l-g +E:uURJ7g8Ճ Hnnt5x\84u/JEau.?@18f=Ը_1=Um 5tV)F#]Ds/A@<6BRCQ|:yC xtuRP՚C1lU3i&=Ja.>-;p!bq7f«-Aq=[d0Pm Ǚm|+\Sߪ`Z p6iZq?@+mr-~FFgn] m;hrnl]φ?mnw+px}QU5cEG{7luV'g:%̙Ѝ|^3Hn] &zC~)7yO*7h.2s1]c w3esi/←w%eu/+0 sᛱd[3"973-o3N#7y%̀MfW6f+^̑cĕ~&̶wj ;jO ia\FPvDǁcH7/t<@efd.Bȋx9yqC>1Q;c> έ*UK>Ruu_nWp.PXE%|MBo{YNӔD]NxU+ui+*4<m=,>uki<dMߠmO ÙBC^{^WYa˃KY!oh}@})40-L݁Ͽ0ESs/ y~o|~8?S )kVrxw15kCҨZ*, &q9BzWCyV ߆8<XڔAӲe0ǡW8'yĚғL´Ig2{ǟd TLt iI}NCuAG?z4|6:P$9~"2Lpmį?G筅:^cs%<eEd< 92i7p[ۥ5-Y݈7ogG0j#bbbS?/sʠd@}m og>RC3F:'Y@ǩ6 A=_I ]IB 2N>ڡy{xCqGO,6u alPr-^0E" \-"}~[*V):%{ CM5* en-V-,n \VӒM zM|1.p&.jE5j9U%Ugo Vp?1)e1y21p].Ӗ~maRo0 dΤ! iK+u5dIl! *:GII}&VG&`Fl@)35˖ᙵ9 P^ Kt j5|7SrUP\&̔eO֐uEȏ#5e_  7ūt5My)YoZV +tw&c؃TyA;0E%ĆV){9|dMC^Loۻfj&fLĚUk09EKJG.R&s%DJlr[PXQ_2TH $_|κ Y* D&KEeͥSRGLu,Τ~O<ory$2Z v3.Hx+ aRb̎q"z izw;U-NOu_j{ޒ4irDO~P) ѧl(QE=5}bkwcɇjDUu9z[\s87jQT{LLZ*mlW0rM,bbt4-]ﵿ$e 1L_ $Ήd`^=) N:037>R[Iyg~$V ۮBY8fBgګY-̿ʦ Թ~\>U;|ԫ%QC򞭋QF7xiʧ}Gjm^3?C3ĉ&_7nͱ9&3%$6Ϲ%X"߃u2'ZWfTqňK{~j-ᨾ(eN@;9:@xuMcvkE Y8&~_ ťUW/ )vsQ;)k|Nj%0|NjIj2?mĿ*ؾ@ Z,C v!  _hV>Fʖ)vcy&P:hoLh` 86[Y\)=uqBc^qDj:΄^ B:܃sS&'Ҏ+G/+mFOT*SYT%Ą$1dCD!ʚa}NYI%3a9/}[<8~㼯v;b@_ ^pX㩙s!RHar1YdP[>rpw5a]d1Y39EakK/?__-wx?cm1k9n%?}!$&MuB =LF\ׅ&.[$hs!N:+ɩH]?Tq'òԌǨHJΞHso—Q֨K:KWTy rYڝ` Hik/fb4w+UHtTR]ǣ"??̂8`@qE7n"1T[Vإv#t2U³(igpKI'3G:;sBrZE6 Ǔ۬7j%ܘ9j lée=}jhҗE*d}>sEt!4J `ݦz^%^csmRc2ۨxO65[ۭW˱ܤF\rlӪ ]WX C#Kޯnkb*הӈZV?:F6=7?nhOWA#EE1SvZo0ҴI4bGo*#uezMTHOEw~߫ƾ޿XCkܜ٤`;m駶SpM x;ZU9!Dae$VWQ·М1RI;#Bv$ZC^4BͶrUh3df  BbhL vuGzȾW(k)]x Wv} MMZq w:'p W$, D dEEEX-|5}>?܊?Y?)s&n`WAĘ&N8ɢu&{QuSuwQ^ RED2>T/3h0FKM&}UաjJfnn M{|~@:rԥB˱}N6W-7oɄc} e/e)kM6jӧu'xA{ѺLw7-Xc@Q#*Ofx}1\]P߭D$ֳPWƣX93^YΚI9a5Ji[1;pTl%v^>j^igS.cɣbZZ]Sw~xeIZq7Fd*uﻹN9}"%qlI͠ɹApD)RWRT^EC;" 8C Nkد㊪bQ'yMSk_jJbJϻ VCJkb'(mSU'3k#ٵw闐;^I|Zv:yiUÈ }FNa5Yͥ "86{4mϟ^"zDKaBG<][S "kf -Q)SU^~ 4'B* _X^7wz.~OLqR̰1w9CԵrnŐH9d׽$}9d1h/v3r"ޙi[?#z@T7b.^:o|o62160+Ĕ`c\g;~fH (C ٣9ֵϴY,k׹MUMݟ7f*-b,o)X]'Sݦ*V8sv]HLh\*I9BD"/Eij+G(@{)w "żbx:P&ں5GГ֚(Z]ϯ%Ȫ$4=cg)oV? zan#,/((inOjOPU_)̄̚ݺ{C*B >T<— ?*xFE"*b" $-Tk$"'T<"v۷qk< T$RDE ϩHްYl~O??_|Ϩ57_d~B 3?3ko?~apH0}ồЌ?K 'R"[|2!]>-!v9wxǙmƱ- l⦌KQ ) NZaE xບ'G]JT]F!ߐu3hQrs|Lގx(i1{9alܛsߜc$mǡ[(2.|mxE91C`nRi'x$,հ H=i줔eڨ'Kwh}pqSgR{7/ǔ@KWbϲymm9"ـELJ2`xBT>:H)wޖP_/2 rD;A(;h9q&1s^;! =?%ĄA < M!JhU%(1dȰXsCKhp0 AN`g6uCvǘKAAI%1c]nO ,\yə6%*Ad˒>J;Qᱱbp+Ϝv \5ǯ-vdRW&/JػmDCĈ{oډFc)X]?|a+~@tW'K,.U^d:osH400| k`/9r= 1"k\wV4 _4X.~͹NUx2FIwmS'!rp|hK푓eثS|xYG qr7R"%ܻhˡ}q6-K|'Ϋ6\ V D푐gBq{D {{?ܕ]1dv\d.l)8y3|CAe 8+G 6,|L>>ۈĂ۳umS]^u7ݠw DUF</_葹Bnĕ6և)ODc@Go(-m4,pyA3OҝS1dq moQ¸pdtXz0Czٓ :WHک`gc[NVvi?庪z2Dݧ;tի -v`Bf!2'>8:fpq7$ZϠL\?$xK 8?ƧBa0C-A&>ܨ8)ϙO6* "khD2\ EuE⿞ӺF/3kQ>ږz.s:7zO7u^ { Fn$wn~~MH#8Ͷ7uD#j6 oaL#wMدrE h[@{փֿ Џ w4r|5۝6m~?4BOO<7ۭ;|՜pY2MWKFbzC`]5)22򹀐G=Xz؃-/ 8%p.{ \1ZDɂ+J6 (rs:1'I+sPfMcR8ONyg9][θ[atAIJ/v>\b/Grv@ {# gP+6S#WJQ3=h(Iwr[Itp;,I0*)B`@eú؃B8>^y =*HWp;J4%9REv_1+z>/gg$q?[$==?O 9 -+U죷 Z2U7bRcTt%!HBF: ,X%Bt˙lp3JJgٍWя +N^ `ev̼Ȟ oO1bNs&^x[aYC O3-z9@V pX'4*뭯SkgmjD!2h=68;w@J8]tet*5D=q/n{FnD2!82%{tW{g TfIDaT0:^I)[͚ "b,!eb2#d C41|{w>sgyXyhuS/RXvGq)Gͭ*k8"pXi)^DU~b#yf !.ٓ6fs$sg܌.k+61 G,Ua,z2/&sOBZFo *' % kE>a_ϼ7߭ӿwjyc!DN{Xq+F W9|챟[EJ`rvKYeię1AeӶX[MsQюJL5(*ݲGxᵅn:k 3S;1:B󐥒C]uCkO?s6_tP3R[&jh -!υ|0DW,t4^MܥNzK5*S}cNpm_^c(XܜgGX*'O c zTj<Vq[Ng;b°mVJUtVY>A"Uyu*9aS7Cy:"$h :OP KJw-5戗\N>#GrE&VuLzK%ؙG&4lEE>E5'o;+W>]:i bDKﰛwڟrr}={ioVpy%cN(K&x_rim_.q H/a`|>0S~ 0vi\dh~DitqQeoi S*_x+H~OTEݐ4䓲+08d&+Ieۑ`՚G[Z! ͣ 3J wG|G~L ̲~:0P1Fǃ},IK+v?y#e ޵*^$r'lsT#ܪ*G脂2ciw=*ƞ'?3o* -0”f[yl 6Uz1f8˰S=!R؇BhnBP#zyPなg={RV`#0+N+Xy@}SxSu䡑һJ X n CԦ]'KʹwOpulu;ɳjQvdRJ?EO=I{aPer ӵG{r[W$c_Vj@>k˯CdZ؛c(&72Ҳ=OMKܱ67$Q{mLKHVF֦25?E^Nâ򇄺Ewbɹ} e(ղMJUw6p ofIUO9s|>} qӂ<:v}=(C|çIk/ !MT:rddJ*` /(U@gtc;(w;Lf `p8\n>w_~PBamDbq@ 8d7<@88 8P(T5q:@p hR#@p  Fc `80p'5<` '3 p<;E߭)-_?nVQe)$1yL8pO*Ɔ$[.EYPK1v¬Ͷ@(@4IOU׺8uʜ*W3ibGs,2*!%~2Ͻ\UwT2%)moL>z"HeSa/]`FWQis9,6E'#9EE r0?_(,\RV@L梮~LuWhmU^/d`W5)6η;caa{Ҥ"9zx{i5uh/v &K=W)'MņrLR:c鐫A'WOwH'\ufv緤RMT!oN,JļEzpzƒEcPゅ+VYѰ;=F6{\P0_aN6YhR2J!Q9<a&x`Ҫ".:(ų*Fa>\ySrUy Rxq/h&&Uη"̱X3(ٲD.:Dfkױ$ty=+b}kT4+! We0C<a2AuKj].U}`%t⿈|giMџIo}_aGq Ʒ`qb$኷o r#?h;BKθu.Hs<, c p/.b;%~-eǔ\љUr29ٲ*.1 ?3U'j7> @MioU-|ZH̠RcJ1SVnf4QMe?¶3CL:y IN'hIb͈rNYd _8.UZo,QaR1N_idWkVc jFV'1mp.)q|pACLC N6B0{"ڇfC98oߠX#'ڴx4J:_y}DGJd蒔i\Qӊlr=EqgӲƴC/F '>o!n!rZՑsi4Jyxy8f%~nCe"WkO+XKK?ϊY*ZsiI'hzsfަ XbN%jaYm˹9 y3ZUYI5ԳZi=XgCV4dz%K1q)ۜ%&.?$"X{ޟbW+K,4 ev9sE9F6'CG"ʢX88G2DyeWc<\umCKa Lzi[m)MkyGӔo"XClE飾g` ?q$ q`A rni4xnd^(6I~=,x|d4Yط9oz,L܋֝{]6@͑% Cl؏{# Sgo fF#1/);7_ v?m˫A]rzĨhGMOD Uxr}j Xb>n3ɖmck #݂짷tSS _=:qr]cdQOzPK zkO1z#nuvola/32x32/actions/toggle_log.pngUT 8oA3PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<]IDATxb?@bb`@b1x3|gV_ 4/ /fB"LGQ[j[/||(Rb~cScmhR>yPaޕ¦ H LnXy%Eғ&23D4r2}L\.޻'®ibM@瀿1 b-e L^{!+m)n@Q'g`dLLɎcbxr^]c`xUaϬ)STͅ Hw?6`Z`je 8v_HO0| "" Y wcW` !̀@Ί~Z9;ӧ303Feų\ŠiA>L (Ju@%t9#KyH2\u~c`;Ca W,퇏|@8h3˂W>)09^+~0|AX\ ^a:0z}X\c?QQ.#İA˞gxdPJ X589*ussTbZ)`zO L G͟ ʚ ׯ_`x_?0 l  '^aX`ͯ:p;к@d/@ȹylY4q;+o?1< 1p0p13|񇁋 R-?AVN ?eo , bp6Õ^nq ߀ @\5q1KQgX&p0SNLL ?y\f?Jo >;`U'Ыw0\~x+W>~} yޔó|o"ưO*ògn}} L@^~L@w- Md,ABR+ !ԃ f_lGt@LH)Ǜ=K.zi'o 2eGVpdeff&bPT0 R |" ax!kn+6l4zf Ԃ'7*~z=wAnt0ps2p3#0~2 kUq^aa.FiW\< MbxÕ3hhQx~籅W:;|`P*r`c`(d+0b`&JN6P?ÕNp!\>d8'AA70264:EfAE "DgopY2py[g~ynzz)Pe\@r0rTB6 hàьA?k30>=pM߮1|rߛ/ /ygoy`tr@@vpX8ld0??~pܳ_=|޷" u>@. ;$,Rͯ׀Jkb,ED¦&R+_|LՠY߃rD*A)׸R5 w @90Z@uvc*l*Q+8 2134 3R[VT(hr [{Œvq9y{-K R ,eTN$cAYyvmjQi^)wts;o%uSlO7f>XF9iNɌ"\Tpt!܀qŒmގ$Tb2zG{Y f}?4xF"ᥱem;(.V<3 8~wb{]ab%RGUaA-NFaxtN|D\g|ǓAP_zRCSq?*Nrly\2VIZ_Zƀ:Yr0iX_4V,Dxy v, 5v^Egm>-N6-q!T.;1y/C9¡X+aD1%'%~84pw7Xmy5Gr+\ *ܳ \6>!!}P9p C$J Oc"t}¨y+.Nڪ9U 2&Ɏ,UKtd:/8 F91dV'{ ;.ҋ1'ͻ TP1R97Sfꙝ_4eaitwރ~ B lLf,*yg ~ƴrrk#*<'[Uq& $ ~}91W<ۗ#exSane7*_,Tb=)]jGxQ[.u|A4uixx* ch~>##X5$!utSLP0/oJ0[$b \=;t>ZԞ^x^zuSl{Kܿ/B}cjt5}a(y!n1""T85lL8311Qik7@ƹ!r;׈+ F˫tdJ%f1S-wK&̀K;بdT'( GHx'YʅcT^˫yfA!R79H8ttWKڹARC5B@=7ߩWrs AverxGn8H7F&ϼE؇@4@dx<'[cpE?S?+9` M>'T%{/20bon?8"lr%Sl?{I2>B'=]EPKmr#Y!q|*zq}*\ĝ+3D: {3z 7=IK:Y?љfqP\KB7|WZw{.E >ن]9"i`grE;x(yI X̊7|{?vr8-&59x/N7? )A Y#((L>q `k# 8HsVy47(sp nMZ9~KysAZ>`=h;ۤ{>5Vw{c$ Ha=`, <5ɱPK t91 HHnuvola/32x32/actions/undo.pngUT gUAgPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?###ؘ L)|8vE @1h߼QG vN .ebgg  b۷z_-X p.@\ ^ IS0p10|;@,x,ϗxxBB@oUr`9@4 %%OT#z.9˯_4_J(lnfPwvX?vɓ e8;yH aAN_ܸF޼᥌ q@<^ɓ yy LLi|l ?Ìe. lŕ@(Z{=j/_&dgd0A %/:: ^v+ ad>.9d?LȰž7MvDg`x(|A03çO R _4Y+L$^dděPQp*Û7U̐4Jd} 6ȁ?~k+WD|y9%)ފM7A7[`06.1d>}/_>gcS~+d#ڐJKkOiy  /ᱱ@_2-;xah7J- F\ձ~ԋ=NNly k03?d40`eEɦM 8۷ _@ O]8뙄ܓ'u3|01ܓ|;j]7L aX9g7`IP`;`0=::WAA_̏b 4 }_/YnniϟDGx0jCpTUfhfMii9GWL,JAjED>Ӧ%993b"ArҥͧxJY7P>t3d` Kp0?L1@$S/ ݹᛱ1Я_ h 8 ػrcP- 9@+/=iёXB03˂nƻ?~|l Än~ @79 `yf@a?AbDW؄@ ߅Ǐ3|ge X`+9O_0\IENDB`PKkN1889nuvola/32x32/actions/up.pngUT  cnAdPQux UiTSwg $0 DŽdZ uiHⱌ*IHm[z(SP˜@*AEgVI', $Ms?\>?@ [oysѣ BelGjJjwTHk% B,aY$IDeUw%i@̌Gn xB'؀DTb9I*álX&=5?'& _BqQe^Ta/y˗&RSɦuܚ⾛a`!EE'$ƣHPٺ0楢P~v%C(>~% G2LmmLyUTUW6b]\1+^ѡYLr%}c];rz/z"4`uN 5O~1`p[^JW s՚Vbt} 0eBލ`( tKé;OJ*zD[3(]$wk,OMɮ&UU'- 5΁lT-fTy#:թᗇ(꒭Oo_ JoD?@HSc05S. CXM>hԀJMg>|as_:6s&f#YͲoώ-o꽺z -O?hQaDYgN[-Kԫ31462jLz ׌J{qe9K"_ ge3I"m*MPRg!8·%Udzz f@)AJ'\M+P`$HJh8:`0&a5"'th<h#C>?Tf/QbgF'}36foHdHLgFU Za-ڨ{ [04VV[t{ӣP0*l"(r?IVE֠ _ePFZv#" HjBi9 ,&f&Foz`<3$x2bd A%iFffa@Y>|!GblvR@~CֲW @ L DLAKU ?Y_ ̬@ {P 󘀂 % 0A42D3/?0*@K_hq  03=@Y jEP]|FX.v0@ACu!E>Qq1a!BBH| ; A< Q 9|C ul@iZ@\c_@+H9 K#,X~ 86  ?BNŻ1\q#\ނӿ?&uP#mCG [j3cdg`aeD0403|!E!Ò_?Hb?`u.^ـ ?>| u8,wg5 C6CO`K2XHPA_`6GATT1h2rv)< KY@i ڨg@ 'j;?o/! > f~1ffx~)1 sO1L +7@1s?xEIl01`W7axylXo;- ~C; ?1C}^q=@0BKY ` p_HP b`TJ`X ˠ)P '?E&v6aUr o:qs PKBx"J8dKQWH0q0t l ׉0(d0as<+e`pB#7&#jQ# 41(30ɠl|e!P3?700,XD! @,D `cV(2BV$fO3Hr2xE+_10r| 1XN) 2H*1Z*vX2 X>}-ЀC>2@H؎s `I | ?=ezqi:P04~vF^2\.ϰG? Roo\s `i/U+1e;?X՘ 3 SM_~wK10|=x?DAWV10=G;<!& 1ZPa-^_#C ~wvm5-Ny VA, {_0?àX 0m{5Z`#w3H;@P ,sV / Ńm73|YR o wٛ ԧ}#-IENDB`PK kN1Sc$nuvola/32x32/actions/view_choose.pngUT cnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?AdZb32B/%0PpP7l&Px0$ 011Ȱr300a/J7 H+0>Zzacfc _g @gAFT#0,Zxaʔ 1pCWv`/\ Af8@@fb L%"< JDeI>v6f]M1p!&)p0F&H*] OeouB^&V_̾?"H ||6 H01Qf&> l/3exɖA5ك {%CGG?ï_Ҍp|!0b  Fp a bO؀/;LLPK >d0b7'$@ !A @ dA2_ n6]@9@K>>~HDG0 np6e@,);v`gxUA z ,HyH,h?O 0ށ W!XQ5ψ4`0pH 102 7P132pB,`6$B,to$=-Xi`ebיQ`~k0 6<< ܂`q4#$R#6a>eaafx-C}}38+233oBCCTCl@pWd B?4ϟ >P?!?430J"ʿ?~=p NJR |J`G0âհ2k@?4-?HV @@ `tw10|e}.O ٘ *!·?9cD0@H'+N ? e`ecD4Y `[ ɂ9_'B&h" gDO10{,l yPVr jǏ G^Ϳ̍5iVXu @(`f@!,>?" _ Pyi׈_|aعs;B&&D|ݛTQC@y)5O6_l% _`degCP ,g~ Cmm 8 JCH9A\ eCBI`/nS0Fnv6 ظ`ֆL` ~~\n@1fpQ<@×~(@ AԼl1cZ_`VІAց _ xycgv bX?R?M6C7C׈ cx>N ϻ7o%} kZP7rL L ~aMHMud3&0ژ~G-@c& ֺ#bDkcQ̇eV^ $@9Ѐ; )<:+IENDB`PKkN1.V&nuvola/32x32/actions/view_detailed.pngUT cnA4Qux UkTR>1OBeYf7MjJgaݕJp6jy{q@0aMF$Nڭ~LS*A$q2Lf%6iH {kkセ}傍f->dD//.c|5h]z|qAl'_H+do9\ؑDC"7pM< (@E2JkX?O2!eРU]vz>Z[NzD2RaL=3'ڼ,pU-"˥xV4^Yz&C:C6$}T-/7=}{u=X(j`żelW> -(\tCpM$RŠR.~j1ug\ϐ\Sߍ) 0/\~k;꽐%)K("ptvb|`H$r95¡:hJ%ZgK P̘) 3|r Y:#XG]Syht;F 6Ƣmk_8sB-`eܑ`@"?D7Y`ysmŖTVbӡB'?B2‡]>ۀ5E8dyvN֭Z~jjY SN {D}9$H3g\A).Z3QE(IW~Jd#7Z eYa .3A6dy`ʶ4yNJ^P*txT~rdoL&)!Ft#CW2Pvs/Wq[7 ˟!Ӈs]vE7ajy1n*E AO[n7<;KAXn}ƿm^*.N6iB91GyC9uV*~3P# p\7jK1&H8eFrG &rNtÖH ?Z:#R "as6:W:4`o/@nڷkg!/ϝsVcl_w|a_1a;a\ !FݪGR)/B&z., 5䁣+kpvQ>jZ;?(v69LPSV+O2)yd0[ǫW(Bq=&bMQ/Z|QZ,V26;H#$m/Yft7$DjnSufOl1dHyǤSGG %&At鿻K\)bI7iKo,&fՎSuIݼ :燪5+- ?<3/>Ih_IPgr3z(RKbŋ-^:ūjln76> )p" Q!y>َ('EXxl6"܄a}f%Q8Z;U#6'C "5zM~ 9lR[':|׮S=ԅuc3ڀNd/)u#/<]W/?S}dtX! ь"?<ډ`4֘ivlgbnz@X[5#b7a_GI7Dy=Զ{>-GAGf hRl ,rs9U85~ P>퇝'} $ۘZPK kN1}f4ww(nuvola/32x32/actions/view_fullscreen.pngUT cnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?Ad$_5`#u?a@~2 iFk0|432Dpddd`d@WL -׿ R sd201 @i_1j >##@3ŰpK%Řjr&T",à,~g _~`X lcOTs"f)v? ?a b g  0 nHɚ ":.1KQ ߁?ofh13czw+q ׯ8(J0d&Fxsp0p_gx<"B , Űf9G[CÝŏ830 P#8`9~ 1t2@ 4c}r&} 2D" ?"e{M'AGc9#_120W3ٔ b@Ar@4/]Us&"}HA,}ϠQ_ |$ߟz@Q  蚿ٜS_a &!;W?$Q@rW̘>Qr`b~bhA@,4@9p4rHF F @pLjZsD~KoA HK.@(?#>G7M, v`{K\@/RxuPJ9dːiXr32?;XXe@f3g1a"pV-:=@)@s(ם ! &h X0]po " AY?Ëk} ~CBRC| @(`fC6[21)/cJ ,`_!'>x!& ۛx60(2bc74 +#bBI `mY)wU= RQ?(>"R߿Xho`1|VT%O_4-TX r"dN oex~ $0cu#ß8llלv $3(`à c`Wd8 6җ\4<O/301XB`\r1g;ç7hh'Hh= ތy, j X"2炇@&^^v"zCj 1@^32Bƀh[@33#Ë4v޽y-/_&X f6Z0?D݌~ӏ@`0ƃ ODU_j#01K? Ab8НS)@   IENDB`PKkN1#dg"nuvola/32x32/actions/view_icon.pngUT cnA4Qux }<Ӌǿ{|mqm.I2mQTR^|7[|7C\_Tۍ~O^n%g=<})S GjjrFWuuj9BQ_tF[^ NWZd<,ޣmw+T_V>| ~5xb~fL\^jL/K W@4\qoC&I;`ߣl#޴f eogϹ;i7S1|*vP_!ێN:һ*_OpM. 8+;r:ν҉V#\sܺ~ԖHɽJ #ʭ %{)ȹkz.i?;M1gS.1+"R6 $SuTT:a2Z|m"?R-Vw0u"AVk* o/aO5 (:H4FoQPDeYd+❯36iR>D%O =Xhl9GaC1_uMTXCY>6p`p4MZ'a=Xgb`4D`~{1_mP񦢵)Yw2{. ݨV~7J4~"QHy޺Dɦ)C?NQ,-aWp*@cToݪ+ ͓B\J|lޔAC1U nn}M#n~RTNG ϓúxhB%T=;g1ePi!ݠ#)xRwDԧK7 I?k<nK$R_ҼD~XXUTBđ,=S\Q 6W?ap03?D9C򟂬$ > B| dd6$]|ES8u׫:P1Z€8`@]rsjfs e_&P>dөXc\R oRJ[a}ad)Gc;Ay\5 $ϋSyzKv 7қ`7-2e 9;%~{SmӜLJHoڳZG&x4Ktd9Ⲃb!9H#`3yřI`xJI_Ԯ1MJ]-bZ%S+ @I0J";r~^Jii:!D K"а&xe,'+B1c@P0RP|Œv\ƟWs" OFu88+4@/-VQ]DsF#f$pR~Hed527`pUYo>_)chGX\&}kf6nڒ.µl7U/ ad> d[X`?PK kN1:BB(nuvola/32x32/actions/view_left_right.pngUT  cnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?AdZb32B/%0PpP7l&Px0$ 011Ȱr300a/J7 H+0>Zzacfc _g @g@ϝHl6vE 2La۾2`hbz9l_%Ò뿁!  ~S0QGFAWS "p\3 O?W  ?/8024`3-f房 w@A#g4 }p$J#9 H ?$   0BzA?Ա@6(A0BR@Ah_ I`̗!,GD?(Oh6e8 `i@g1j()! h0B\E C FP19LCρ @.f`F"u>?p%80@@@HiChFXE1Z ڈ!m—%b98Gj`cxb| !@wo2pK0 *An^CDę| ošf ~'x;?6g5uGĈƢUAg!H s @9w@u32IENDB`PKkN1 Gek)nuvola/32x32/actions/view_multicolumn.pngUT cnA4Qux ViTS~Ƀ$QxU,/\j,4 qC(R$V VGkqV:9.UB" $ǽ߹?wν߹e-Ύ89(}pPiBޘtx{pP:M33taZ~u@qw8[!'d>YZ~TQuue\^.cjU8Oi##3608 yFqԵAфc/uu_JZqm#kPU6rΫ16O@o2xA16plzbʒR #\p5ˁ)iHd)GQVsɊ}81ӣhsl\ʐk]3oߟ !:immT1wYQһ>BޝY;į5a牉DJ<aJ0]r@>c!ls&e}GZ.'1<5^}}<1ɑ˙u_.Urv?ч-h)Efg~@M;ڃ(v'O@r%?73ͳOCb`WKRv eۤtN(L7OX Ei}:Zv^+]'IɀQQ P w )NAZfI&y ^(HeZ2kJkwVگŖE :bA"<4[4Yغ[e?> zTG&Jk}6gr`G\QjA(ث)SC#wS5OӧQouڌhj6|uUδsPk?C{dD%Y-Y]l5 ȩ+ FS1}>2͖`N@ߨ u~f_C*kNH7Il~>pi{بP pnuWr۾k7B-f.qRt07L 6,üỲ0S*cĮ!m3mAc +ς-b;8Ff[B:7UZG(̟3 ytj;]<%y2 ~ 8H]Jm:#K0.7ɤ@P@ξՕfVjkdIB# 1#pyɢRנO$Fx@7L,Gˁ 2tc6$w{\`6?j>&2Ou=.99+,IՉ(3[%c+v2FHkݐȫ1<(㐺öhM*~(+6:cԨU(na&2-w﷛fU.97]4 vl RV:s\߽>Q\Б]wu ٽ_K+{hD2}ĂTHpZJk Єx0wbtǔZ䏡kHƞht6YRHtoЁPqwbdr䒽Sbopmj7~TwZ`y)-?Ϗ~d͂ l>UЊБy[Um+XFA2pB-t]0V|5(7z/4X?"4H+[ɇl2( U^!ۜT^OnxqDW[}fk%ɍYuɕ`ǵDǯWwbKG;$o o*H%޹Ӊǫh37.^;i򇐁Tj.5#n+^Ȯ ZvRu8Rd/~zL(l=#pE|8dfK{7-N(x+ϒIɸL~8.#8i`MaKiwNuKc,g.w}Jϲ;[=v|]UYkr@2atuq·o»SPK kN16O*nuvola/32x32/actions/view_nofullscreen.pngUT cnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<EIDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?AdZf0L)`PpP4oL` H`bba ?~g``Œ_l?rD#304L@l Ҳ|`;A X >|,0W(_ e-66W`/\ L`qb700* c#ïKجmZoeW`Pf@c`bfa ȕ &똠a~d|Q? {۶3lwg%FFo~soi6` ( vFBׇo 7Ӓw10af9 uznç94]0&H4! |p);ATu=L2ï!;r& ] S?y뜐lP`8#R֏oFD1@%Q?9(d? o00 gx-`dM $P >޹%+)U+ Q!x| cx`bc% igX @\tr\9RHFp/0_J h9L +fLCJ(9 G +pR`bAVGρA?ArE1?" 5&#N R~bxPâ `i. gH9Ɇ(b!ňTP!|KXY!)ZHV @@, av4۹e? B^ B6b9gdec|<ë21gA'oPh0L 8T={h7JnS O֬rC8 9`En ^Mdv& " ^r, 0 3(| odW}B} J|5(0PhC{O1{! 7?Q(!>AiV`[ 1Ht-c`eرl %2;0yexӫC}J |0ͪ7',``韠-,%Z)L JC~jW? 0?0K4Fho+;{l" O_ F#(&BgCw#P6bd20c$衡!֎)P,~ f`b9!@3DއԌ#8z DH..jFFhILh9L^|f:>N ϻ7o%} k[ 5Rkǀ2FjA/`b`_&x0 h,U?~yqq;4Spw}ׯԽjIENDB`PK kN1: mu~~$nuvola/32x32/actions/view_remove.pngUT cnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?AdZf0L)`PpP4oL` H`bba ?~g``Œ_l?rD#304L@l Ҳ|`;A X >|,0W 蹓'7@Va/\ L`qb700* S9?`<010Hds  ?P?T f房 w@A#h0G!^0&H$!@V2 l929߿P٠I!`p Ps(C ͦL$" ]#Uɋss@.Z#i琒9%HDHK"0 1g@ rER?ܿ `` wXO?ܗȉ5C_fnfCbAN9"% 8 %!(";?RMq K嘉06]( H03+ &X _x"dF@!8ea)~P U^(ff@-G.ӑj$m8"jCBM(qY P`qPr ?qˆ,b QCA"Bk7bk7ܸ_&qȨFű\PCdt 7S][(w@btG_\Y<:5PJso (>3G &шѻܳ8V03{p+j#A1@t}XzT~03}cx| !@wo2pK0 *k0eԂF7?_=<1L<`>?lX$ P&q;4SpVĭ&vIENDB`PK kN1.ss#nuvola/32x32/actions/view_right.pngUT bnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<DIDATxb?@bb`@, 1)"a$31R1@Bu jL\I| AQ eB0$÷oc` b ! UjVw2<;y !ƯK\wH?al f|&7!ej`:f .. }&&;?_fx >F C-[/inA>: iР2ό( I ,4?Z,/0N!@`gda/{ :@,e m@#ACֲW  2 ``bL%b" Z"De.66BxTA4+}(Y}Gb8 (_ =,lND#A4#!_gF@AB蒿I-˜ ɛA> J|? h;Q PcE@4+#N h0##%@0â%@( D 5f!aއ8 O⒁@?R3A a`[a>Xʦ̡ M4)@!Hrb @K98s>VV`Ci & XWX!BϠ@̬ /6fxМ5,"021c3 7,ryX5 +';ç;OjfP6=~Dj82p@1!#?>+$!JӬl =g8]py߿3pq1ۙ3s`cҫ я v@1_V6@badefl:[k5 ?201|<{Dyme Z Ą 5̯nDe s:; ?2C}^q=@LD t#5$1C#N f110*%0\ld ef`"n;0ê|97 9~|@%!F*?D 33}a8aγR )9 @,l9 ,FXZQGTdO _c`V7E`b|=C XAfFX!>e;L#()ӽ  *^ ,>UdS6%AIe6@U/@?`IoD@6dcebÏoθp~3Ï{Ocp\T ?빗 K3:m+ X``8D!bKhjgdxèL |8eO1dZl3[A݄ !Z o2L̰B,퉍>v?`!oV?T>(˲3??Ȑ!ߝ][aS0U  O0(3a[pa!- vKnܛ \.FU q\_.٠%̪iɰ&u1*12~g9ǣqB£eǵ2Ęb`~u5@AF֛A] FbnE?qz/_o^.,G <{pc-N|~) ĂdFF{"Y+OWod8h2|zkrF5`cӮ]zX-ev-@=]`TJ0|ar{qv)7 |лMC7T;nIENDB`PK kN1&nuvola/32x32/actions/view_sidetree.pngUT bnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?AdZ!>IJbff32$ 011Ȱr300a/Febd |@K#22`hqZ11Hbh`f/\Y蹓PP +Wf}Vz K&Ef8@@\AXAUI,$$3 {wɠE`O?WA &똠IyЏ!-Ya9L8 7(}OP6` H01w,ƀ0C6@ w&Oed FE L,\  QR1!2߽4 N0Hzf`pn]W'm @}JHuH8i;ݻ +~3g _20pr3q1028B ,(AXC=hATT!663s og{05<hHb5@AC-%FX&YMLOHH*.|blXP#?%p %A7{1ֲR?; X?]} ` v25f9uR6)Ґ۩ 42^3<8Aw3Ю?@( D\#As%Ç&N ,xbdq{ +O-А h03 CÂspsFhV +(0|,0W 蹓'?)d K&Ef8@@\JExTi@q )Pp@B `dҿhaϟ?YǏ(8 ?`| iD30vY3f-9Ę!77n7&۷o A@%L( h0CfPhɠ03333j(Cm9?0A_~3C@ :`p (Ƹ8CLL(QQmAQ/pgS&LNlzPB@b5@AC,+#4`4(&@AqԿ4a`-q _|ax%P X7778TUUalCJ4X1:C>J"//fDbP?hƒ?3 %!(gLp$f̷#XQ; b  f&pĀ@)"\))Y 1BQ@4Q߿رD74-3,@9G@B_~1j0XC?Ufh=O>gشi'0pK0#3C͛ ;v;gĨ@f0ؘ#Pj"̙AeKe`eԉTGI9Dʆa_B$3zfgHP 78"DA@9 _>g?xCsX fϟ@ANx.`eg8!>1 aHmDPgȃ-6Z a,!L^|:/" ~c%} k[ 5Rkǀ2FjAn010x\;?6MPxbkb㗇:`$@9Ѐ; U;MIENDB`PK kN1Z(nuvola/32x32/actions/view_top_bottom.pngUT bnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?AdZf0L)`PpP4oL` H`bba ?~g``Œ_l?rD#304L@l Ҳ|`;A X >|,0W 蹓'7@Va/\ L`qb700* S9?`<010Hds  ?P?T f房 w@A#h0G!^0&H$!@V2 l929߿P٠I!`p Ps(C ͦL$" ?x .@AC*&F#Tfff@al`Ȃ|L_4.`Q@rXf31ы/ c^"PFO E?o!@A N -@?`* f/~`c\ e3uB\d +kA( rZwf4/ >}a%ːi ,)=u3 %6 P0q21lİO` ɆK?~ge3!#+B?DA =;@K¿X#4b߿Hl@!/D ~L`W20af5X6Ya "1 h%Vpc %!@ ?bLG?0ihV(ff@-G㘡aȎAr$KĂ\GsJW@ԂB_Hb5C*H@(. > |k./R$`5Ή5Rbp&`&ݠj^we" 6tl)a L~sC `%!//;{ ZP7FY g0"U@,=C1 E>NЊ ϻ7o%} k[ 5Rkǀ2FjA/`b`_&x0 h,1?~yq@? Ab8НS)@  IIENDB`PK kN1Ojaa"nuvola/32x32/actions/view_tree.pngUT bnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, 19Aba1&^a112Ͽ@(M{/+/ju:PZ24H=H { q7+2q oCY b0,Ajjm!  /?AdZf0L)`PpP4oL` H`bba ?~g``Œ_l?rD#304L@l Ҳ|`;A X >|,0W d&3333߿Jr؀pK%"3X X cb L%"< J8 |5Ç &?`<010HdsHuLTQGdhlfxh/ 3|@#&f`3p ?;;;++Dt}@bX ++#@9 Cg'L H02CPՁ z=ج0|A-.Ã7nfF?$,  !) _ !2|+W Bo8 \ _0 Ps?ٔ F8p`nA>W0mOF103;Ch` WHebwgf`\'^K7f2@ $ )JaQ@r@ T3c\Ϸ_xc"w 3 $ % @Hi*R@yXe/ҿ~}Z,=@jLF @p[0d_H h1(c;,_f!$J"ψǷp64+8\B (/hc#AB\-Cs@JBP6Dv9G6 {0|{X87g`bRCʖ JT10aupĘ93Ǎ l ٞ3Z:A_/<2A i?rQ!?iS0p30ݼʠA Nۗ__hZ 射$**ʠ#@xb`a~؆ r#eApa, +#BMHq+`q/==cp,]6y-_03ŚA!1(Dqˆa_&hV`6PR L^q7-#;b_l` -``rcdh" x|D/PA"|VamjBw?A+>F@ǰ0ZSϟ@qNx.`eg8!>1Z?h=l}ڒZ?^|f:>N| @`ݛ  k`h5 C HMHMud3=<1L<`>?l[6P,@wNh;40JVIENDB`PKjN1 PC U !nuvola/32x32/actions/viewmag+.pngUT anA4Qux %{<3\1MRlr]q9a'$n[Q)INrN19]1K1Q̭m̾?yzs|.x3`ݞݞkEtkTJf10qÚO L80c"{N"#BÓO>p=CIoDҵ8@(###fii!{gB;:X$kh"QR)ȅ' -3^vlsP6TqiFJ"DDZsx@+ Q~w5^M.QUvi!JIClvF:Ћ2N+g>q\F[l֦g>| *BDvA3#F*_.AH|)</rMm[]@ AK۷Kċp榦Wm}ܾ­I"1 mxwXiۯpLdg':hLPцiLF8C򂞵vzFɦ"]GկVL@\<.+\_(++EH>}/`3c&UU-zra0uZ-˿HaaJ5+[چ+Fp87H{,p[ ojT`iEpVo;n˽oSkkʻVCKfyTJt& 8H߿_UtU- Zo`,~*^6뙯$lɐ:CJjk~#"ZU (_ò2 IÝŰ&ĬVerKvѽeKA ,j@kv9Q\fI[s|/3[2ӡKx[ qiTouȶ@J'0\<p7J:;;5 YLQQ0Ü~ן  6 YHgNa] lF}e:Rf/(I%'/8FYh\{A,) T*0Pk{ݯ8F9Su$rC<5˘[14j3t=˟UH%+tC)rဖGbmqA<ۉGoл{( F$1́JBPZ,{Y{bZSZҪO;Bq%MA'M9kJZ2̓\*;CvI՜X9yP i}&AAǣ6w' y梬#ii ۠qܒQ?C̊@V_i%,0e[} lsmGV{}QD4:80鼾 uI7du =[6ť8t]:D:ͼF6Qz/`iXIb+CdM`ki?1#u>oyViI3oߴ7%3LB\3MKoEg\ >)ؽR\Idz@ wsض>@yaMp Mh=C\w]?}U9kq-fNrppA'5o<:8 f5Bb ?E\qi!LFh9iwnZ^ ]+y8 ,  [Yqdj 4# [KɟVə +d{} O}6c2Ӓ3I@HbZBya&+iW3юM`Ұ5`20x&a=&6;/??^$xW\Lߣ$m #gWr[D;po)c[*H7eՔ5W˻=˱{S7薤l?zy˧ƈHbVh+638@|N3lS΋nQr9]JeyJ7x<o`TM@֡\y7$,7dVyPzmrz:$G~w1olhrt#4焂 Zva;6j[0<V(f$kCZn$kp])xcoZ^^EܕI<v5Trk`JkآӸVlhX d;+$É/3'Ly!LDt]jI-R?Km{jK# # xkIOVI"  9 JWivfDi:L_olB;[%2ղ,C1G<*Cϼ𒾬"'ck׭ݕ_8A =|^zZa`\І`bnrx%]D j6ltؾ&k$`.CL3쪺4 Lw=s"0Yެq$N(A"ujUVlq)]/9cZŀkc*+JGalO!>*#ȜǓәz;\Z؛ӮZ:Qqf{IDLnL#?8})Ĺ7z^4$K>\22ln l=zliACB ؝s >ro~ΟhJ[ x%@F*8  b?w~L"9ِ9@LJj a6}N,YZYgcɿ)"W):"fdGZY1FKxT8EEϊL_VڹnҬk&?,qB+gW MԖQaA,;h5f1Sat9r_G_K owv&GPyl JL#v*fjSN>7CPAT~o$ܕVM^O&K-B^ךzް-Ҋ bݻLæ_2GOf(643A] 6*zz .epMMįX֜pҘPrICU]ho68bR`$Oӂ5v dȇ_SQ862KI+уHDդԎFRvmn=:T,0vvgIDvhnzzpI/D#RZ1fu^_Zmep"{bfSf F~apE\UHw^(כ6wZR(S>NuHfn2jo:4ע/;QԮOGߜ!46vAs 3w BWYX(hԏ:4/wDiЈ1_6!Iڛ%Gn7ѡR*pT)}+nօS4$8_'?fMԺ<=@FR7PZ`逗0Dtjuy`7xb,P:5k͹03zgrPaI傢#CAc[.uIܻ n0N*ЄքJ@' o$6Tp MUIc~NƂ|..YёW\}zm9wmh_/PD_ZEp5k ʇNmI`*ehu` IcL{VNZ3N~116MV`9,@;79#IUQxzqm{{ì 3_kZ6A&PnD>vNX\/g%i%`w e[ 8.F;웲o;o2 PKjN1b[; nuvola/32x32/actions/viewmag.pngUT anA4Qux %ViX?3 R4fٵtɦ,Dbڂ,.x6閦6Yhv#[ 65.qy}ss÷ol ayâ-^pWK@ƲR:7lɛ$$Lh>G X蓉+ b:k  .0;H[rL!Uqc4Ox*UYTJg):#\D*(Q8Ӭ3ͥʴ =o ϢjXnnn{u}gqSI,F3PdX|lٯp3 Y,\U!JFI <en8y@O7F>%OPT=`T#n_Cb R'fFȪ7ipp(dG@;`!!ȇ-!4qnu-oU+I w>`z;1 =v򍞽_S eKbQBEJܯ7yR3q q#?ZKWhĔ52ui|ƥU7&\# )~ΎUR$†~IvnObƍN3?WXF~Eld9/1@pXκ8XijI!忻BٿX-t0xϳjsF99ǓkG,%{s2m<2|Ej5[کz@y;,r H-]L*CZ$xe))C(Qp9?ip؍m蟘d=/Hy_I($rш)Pf- )mN׮}O*#E4MƊJ3ʛ ͉e!Ζ-9EW|Ӓ5A8CH***r9Aզ|w&k_&U _Mce\_{(\^+r-T//MO35t#r.<]q;.۵N_I4) ȭa=?!K֕!2_c~k) ,/7ck&rsɀ#;_,2.$'3iGW15j\L*D4kW.*Flgi!4y)>Vz:_Jn$WrY;38Bհy:'M{ Â(bUKلY8YDtY`Etj`Xgϭ6%A7hR_$ͳZ%0!΍]nYg v,B`4v$@M=^ w>tݟ!76p*(%I>bw6[6;e93 nf,] .IFƿ.elfD%(y0SEÖEǹ4Y3NeśP G^,dGVYnԱ\.v%hNyK;jE%nV_tESJA{!@LV[Aw+_*NXO75O:txxD(@˭9N;>7#rw;g% Nn<45cmxUZIo8#l0t! û`Vw|HVmwL# UD҂ bBg6͝3bB ?x;ӌuhmY$Uun-b"?=|Z?$J){ 8{lM c Y=Oj)3${qx@vG[(q,ڑi/_b}ҧڽ}4Agcl$>x|lj3Լ#9CߟHJEkh$nsPuZI/%$ (1j!PKjN1mܯ !nuvola/32x32/actions/viewmag1.pngUT anA4Qux %y\Y%Q)M,krF(aej\'5Q RަJi1 PPJ-uERQ3[Yy8|?s+ G Bw,fܗXb;6T{kzjbƤmٝL1X\af|XfLfLݙ񒥇 bX999I0wwwEOxOϟq8iTj_7UAYG'uFыNN%h1[۪2mVQ&Gkv4~L yˇ c4Xڨ^3=$'{q({%ƢxP| :`~y|EÏCtzBڥ7aj *0UO@'o )8D\<[;ɥI2ۗ_ N]Su I[CM/n: Zi,l-6Yb~cE`IՅW]!/z}i8#Ty= ާ}^H5 >XmO??7#sG8Jޝ6HxCuoL.s-Zm䖞>3TR$WLάtaDqZ`c/;".gqtkH7%bG"yCz(4$S`B!!>Zگ묱mxj;#!d{]",SD![ yba0L_yRy$"tχS6[@"΀(P4{n/EPHN`N5 CsJ9*X(e.ɮH%8!ML⛾x9-*s ^~zr.D#&ntOr8{Wz`dr_]z҈8 $ x?]?3*`^ZkL]2:!,,d6;I֋蛒CM/K'M! ~TZ/#ݟBw`K`lFڴrˆ7h4-*!|/FRiJh*ǰ-W @5yi[k!Xm]>|+'φ8Iwoo/f1@-Zc.o/yW^?-/M̯rET:X\tyԢ{Jߘx\&tU?f i95ux!(>yz;20c664,{\/ 4!T$]ui6FIHhng5񈀾: ي]Ho2]Pny<^F~~zfM,R'*vln 6c'QIEc|Ypÿ]k\^)XqI aR vW wFZG3A%#.i9t{] :jEنIՏ Ýc5m y݂zJAx[]sxG4{Oܹ/"ԋ ~2g HQ<+W`VN; |4•zj M&}꾙w3\MӚ衛s$$=il.|ηE&{ ԩ/Z=\_̡͌䝉Ԩqolbt!hT|܎ؓ(|wqF`ht6Q(Ǐ3D>dnGID[vIMKYKMו۔LMrxx *KSj(;Jr_O4Fn`i.] bWHSy \Ef0OcIuګ7՚=rsA°Nn2h'o | s~.tw#~eO_+Zĵ:ӯX"r!Ē-;!a -) ir+3cZDaA n#O5ǶfY](E U t'-e%}5p"GwWM6&vp 0?q\NRCY\mD5%}d*u1g/"v4}MPLw 嗣>i+Cڮ`!hUKOAq+^tИ(f_mD5T=^M nt@aPRsUo!uV=BXݻYE. iigXM 0\s@&*Z;H4@֡V=VT+E 48Qֈ Ntft+HP#{t&+z`Vd: F;Us=jUt V"31r I E`”)JZ+%3vsykpѾ-wQz5,k˚5;ʠDZr&6H[v{wݐ\QkaX!Lb lc;7qNAd:w&$y1Uku2ѷ\ AdSE٨f>DX!2?4j`H;Y,љNyA4{jTh PvS U No}QB Cz gfZh)ܳoѯ|[EckTi#l,v2~Ɍ ʨg-ٌ I9(j; tƚx !>=I4GV4&"sO6H4{hA2F&{s{ _n?C{/@ *k8?_iIó?ڷW{,4 M9瞬_,\Ghygd~܈IU 96 ֪{xơӈb-&oB 6S#G824]PW*'{ z#4 7c -]/cѹx21 3OVV&݋xgS5j:n\IFq;9!Cb㹁 vbx1Hѝ5?pf(!B* %ˋ} ~=+U_GJh龑ysq ^(\"KӺf~<.k4!O6KսX $#hBӫqx6ok:T_`\c0I1o6b@!7$*TJ;|z[jDuv틗}MnW[+ueC3o,r)@Z=js?{A57q/3gŬCc7΍|oK i$N9׳+u>y#k?#7ڹsEQĴ-( W3VIN] qdq:I+[U"4c5E|ȐH -{sioyno1PIɷ̱O ^:NQnW7=>*毣#ʹ4̺ҍMkeWoTy`11[Ďf+S:JK}}ROC]֫hs^k%奚63kv %19<)ľaP*?0"'Oǩ4ұ\spiV̉9rbGf2B !K"Zg6?#H( FKLm( 4p!X›\$ , {ΙHZ.inŀ;R<qaGnw-&YHbqFӜ3[ 0GyuE;]h_-#b>VXL Q@Q'35Rl:h$e'=Q'!L+G%<@L=) Ur}H'?avтL7_tUo2.{rݳz0ddFR ʸ.NJe/1mS譅gR=MI=D>Cʹx,*(Oen3f0[46pƉ@!QϲE9uɬmvwMNo{XTS4FG Tsfdk)['ߗ)}^7>!=cߣ׎ pp7 x~PK kN1_y%%#nuvola/32x32/actions/window_new.pngUT bnA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, 1)"a$31R1@Bu jL\I| AQ eB0$÷oc` b ! UjVw2<;y !ƯK\wH?al f|&7!ej`:f .. }&&;?_fx >FZv#" HjBi9 ,&f&Foz`<3$x2bd A%iFffa@Y>|!GblvR@~CֲW @ L DLAKU ?Y_ ̬@ {P 󘀂 % 0A42D3/?0*@K_hq  03=@Y jEP]|FX.v0@ACu!E>Qq1a!Ba!aއ8 A< K&J 9X9 () vZXRE=4R ,`Y^lZ9k YXE?`vgb@{ a$r IT,ӝ' _v53(fxf"|`5t _8Y i78,G-dP4˳ k.w34w1.~;sv Y9~}Pz5!8 h@s>GX`># íeT42\Id0`4ٛ _&2d;05n+Wf &\@0KS9̧nDe s NN0XʠVfx-8@As#Z?J vB.6V2H2q3z T~AMaUC>d ԒV^#%8dKQWHuOo03^'+/ky`\30h159Jd?3X?ܦ'@$9DP ,|{TdO _c`V7}E3dC&`%ȀUHl$fO3Hr2xE2 hWoBPOlʦ$ h0_q , >`xhpA$ H؎s `I | ?=ezqi:P04~vF^2\.ϰG? Roo\s `i/U+1e;?;شbb/d. 'rd2xO-6}-Y nQ-7_NVfX!FC;쀟} a7f+*/ +ص81*3X0m~b<E w@`ƽ#*Y8\&SAKUӒaMXc_UbdrG&G8kKe1?8k~ YPׂoŅ(a7NVck…H}GσSrnuxӉor8 XHF#X y`- }MOo_Ts _ox/U6l A=]`TJ0|ar{qv)7 |лMӧIENDB`PK jN1nuvola/32x32/actions/wizard.pngUT xanA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxb?@bb`@,0FF0 ĿN@( @ r,<@3P8d - (|~ Ё&@r_øŗ*(в\0#DW(v2a E*bB@>VAF͓tkXNZB ԠTMߧ oo9GI0@4bЊ[on?&/9A˗Az3200}&W^<:bF2@ Baڽ~ < ,@%g?}_  ⋅Ov cLdf ww(_9'&L9w޼TtACBJQeч8 DM@*QFU%= _/YTU0[+3 -R@L J̴U:8. Ϳ ,R )}Z ,'ĂT^kTe s@Gg` rr`g`|۟^^/_3<; le;@padmPT?n0xǓw @N1,H_HK֐s8|g'pEUxw?&FLu"f.g (%"o, `8 saس[Yɓ~/_2˗/ ߿g/4@!uBy30o3=3ٯ00 2|-Pu+XfϜ)NN_f3v XؗP I_{=!wc$;_%KaΜ9l+Iė€#,&]r~2H0u3޺~}+8A.X ?,&&ĂK7P;*k{ uŋR^

        Z:vO.Pq`p EEUP`{T#@0|f`13PtN0b/30R633|))?O> t;0{lPR 9 X(mӁ8ВŢL/_L@옎K?@QPB!!!wM P&+(:JKKA !@;ÇYK.9 E988pLF@,?ѰƶXM_l8aΛ7XFF Db Q,: (>3`bK ETXeQ`4 $v@H2J%LPt޽@QA0#@ŋs~ѣGaBmOl kׂ j@1t w `'KbIENDB`PK ũL>nuvola/32x32/apps/UT VMFSux PKF1)G:$nuvola/32x32/apps/access.pngUT "MdA_PQux VkT% ENIH((QDf byH-P+ZZE Ib"5Ѳ-gkv&J\l@Pزls~=:;w;vEJmg0\xP3{po+؄g'͕d eC?gzTP,J"=BT 8#|5^|:$)|N!{e(ۇ[b..nٗy;ˢ))vpਤ e , Vtz /WfgϚ9l' 4o>pƻUlfI6ex}꬇Qi x!zaseU~kk5l؈#n5~ H[(T[w£fBX8›֋JZ>)!'`cq㋱8c{1mc)mq-[UMGYe~;-V]^&9?l s80-6￙š\%zQ痚r;ٯJ:OU oL<髿(_B^ ڡfo'oj*')QyIr4Zy}n7 a7n[/{=-T~6i3+d*=y/w EݤΜ"e zpf; _' ME:u?T)DJl_8yKNheυy|кpqLȋ1le""7cM )k]Vfn25w/󅷗tݜR~Ԉզ<SHϻ[y.75{sd iv5 &BpByLS_{uDld e0@lV %BYk~nsцc!4˛]T16FI"ꦖVaHC#RիH .'XY}M7 V SC3MB6'XEws8| H)zM ~':SFk![e Յиr^TWl7T@S#2=Xj2 pN !k|v-6@%9%<|dr}t0u`4/¥a9p!a^~+#s_z,u1:t0}9^*Ex3 uɷ,EL~mLTSg\F0UDM@;ƊX/*nPksFLeZu3-%uNAlϴ{ #;憝|p%o}QGCV()/YhčS4 9\}(cN:Hκv{Jޫ3p!x n62ѳp7eéh^\&jښ2W$_ i}f%;$okqQ]"=6PN?}C_i FsP ֮VUpًC$eyz0Yw@M8NplZ IGS1سS]ѕ Q=2R:xa&wzŎuk6tI@/h_E4+1^6P# cڳ8Pأ+j*"V]M089ϧ.><ɮE"˴_.GPe>U=ӎ0B$4.¾kXQ|?Och:@>?FĄ]Fl%/Kz|2^7$P I)O. #<_I̶`K?hBû;Q-M7^(k/tN鲚8 ?όI჋HߖWdW=)$O砜 ܃XXvA>n0COI<_Nuok6?)g޻ըLNY )ZmfU_:=w0 wYpg7R;6^̐Hß:f=ߊײ.JgroA:MIVYjy}KULEr w]ݦ gio"MϷvb,_ Axő4asSɔ;Sp 9'wL}Xq @9?~fӒq+VИ|`WTPKD1%kf nuvola/32x32/apps/acroread.pngUT X^aA`PQux iXR / hIhjy m,myʑE+3-4u+IZO唖&0wӶ1۔11/9s2֯d-Wma N))N+1gn6."詉+7NL^/mDK989a,/kT=juK"CQ'lMYz^؀{wb1C{CK)%/>t]voֻV]YR=`Ms1~7@uő HŶۻ-|BR_W Kʚv"t1nZ,t;J Ɇ-K8TQa&xͭIq>?>$pA^.20&o~FfQOniز3HԋSzE,7/cma뿣jsHFzn3uJlȁ 걉I(&%(+B!-C(;cju8d BýPrf2ifUdGpuLY9¿u"t 2xgh Bw/#aT!06k Ã^>;*aTS!2{ Pxy6)^{h!5(BCR,t"03i%C@`e6!M&bA>ULwº,ߴթz!Z >/jEqdMw]w"]'9'HٙB3ƾZZ-R$0G_ys{su[30N~nr*p15%{e3s'fgD#:Z#-Pz1,}{݊&~uerXr\@R/B`EvrT0PNQ׸i҂YrSOPE;̟B'|WU/<4 huɒh5zA 8#u~vC 4)Uȿ\9JnU.XjYa S:b&P8 ud{o~{7hO&3!2]2& ;D 0EbcA"p7hD.KBc\#CiV ?r!sێ,=ӣm$`)@ވp>?%zĜΉ!oT'E>ltvWo{&m39p!C ~еn9< ;gfiv_,)&/D:6IǺ^PkIϋ P7x /y#8i7Ek#0(Ő7rzDS2t6@-RF| ; # UXKGC)+@YHdvOP)Do,%da0_íE]Q;{l}Z_BĿDKTJHZ+ <$4%{A \KTeXj>.TbKۙ:`LhZ oD ٫ w5aS#56m"z|k# uM?lzŠ>b{WE|6W1UiZ}akM67۱/(xE2j<6"[XӤ|McA !JZgĩH`d:ELjmwL=9ע(2/L2 *|m#ŲApͲ毦IR&<@ZŸ/cX!t ]q% F1&iXf|#j=1n/rJ\kiCi6¯?!|HRP2JG_$@MvFnC Xt^PK F1NCӼs s nuvola/32x32/apps/agent.pngUT MdAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@p `䝀*.3200@>+@633t13yL'2Md |mQa##p`˃[1|_))#(l ?~ٹz2e^)l o?cém=|5 c@9By# tL88^?`02r2|_ط&?r@vLluQQL aÇoL@ GG 7:oK!,Rj'd"L|鐉?+@f111S'k{si<ݸuDT5 '$om#MU.V0|a`/忀x? L`w;  ]/dxp?U0|ؽȿ H.`bOQnqe rBD? ?~bຼoߟ`7m| l,L n20 Z" fwO-v73 @,p_#@IMSՋo oǟ ח3]a`й Lp1d t߿X33vF &@]q+k?Ya_"/`!d OX 0߯ϐL/ T b T%@(u/2 "P˱Հ; ۀef1 @7@-c6 , 3FΚ /?@AJBfi9ن *Ō/hf`A}_/42?f9^11e`ë% ,L"j1gy~-9 0\#p4oa`}T /OZz d1@!ZDbx:Fa~g>jO>`V ܼv''fg:Ё >&H6/?˰8ї.0|h+${;g{L,\f?Y5͸y~1&,/`0eF(m J0 \?<&_UHIX+[򲗗[ J,,,@C}a d///ǏΝ;ϰpђgN߹@sOWd9I^EU.R__MLL XXu?+,F '8=6ݻǰc.];vݿw%v^@?77wR???77,6W }G޽WP\;1 @ pqq}. \J7o޼{0/C `"Y*<Z;؂ ƁЀ  M({IENDB`PK t91;mnuvola/32x32/apps/aktion.pngUT gUA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb?@bb`@ a(9W+((d" @p G QSSbkkw,rFv@PB) 6effvUWb`8êU^~'.  q 011;ٻ1ر RR@_2ܿڵX_```?#(@#,qY:@l+''hfffjll"q&&&X++ 2TU}}ABBAQQɣΟ?}۷o' ~ ?C- l1ԀZXXQ__ߒKߏ!22= BB@0_;ϟ@%G,?< vԴd-))Faٲ 76u?0<7= @pLݳgO/_ Ϟ:ƍa߾޾}} AA{`bŇLyyu/^2ܹsʕ?+׾|| /kjYBN^'?~}`01ϟL@=J> s~ L @uxF߿e2fBΆO~%p21zqpp]t̙s%6ԩ /_f5 W#<  ?ݻ3<~ASS hY'''}`r]* bdd' {lf AUU޽ ;wna9$ Lm>PL@:˰e`y (( --̚'6mo(Ȯ?0K9Y˗D~Gp)v-ŋ\F_O>aΜ Ǐ2(^M t:ί@o{ƀ-P`gg{5'Q~*  `6Vpa/4!.. @E~~||<@l@ P78è pr ̠ ! ot)S)@,ZI t@`@Lm5@Z?t@t Ő@u@r)S8?FFD@P,ـl&*:?>aF.~b|zxT+{n0;w-&@Z@vСe-@h4M@; x_pIENDB`PKF1Kr nuvola/32x32/apps/amarok.pngUT  MdA]PQux }< X$C!*7tۤP*^xapdV9T9uNɎ<2p*JRNu]ϕ-s,BL"cV֌i`[P+`{wpҏf\JL<-vB|T<;.33>a̝/bB3| &"Hx9>0KR}`B!u4j;JX4EKdoooɴ*ciGk`%h-Uh"#|XH_h|tPd&lEh,YhlC9ECs4^&>RZaA[ߨaCOQ*eۂ. bWGZd]]Gv>d4^~'o3@wtH^Z}:eR)zZa3guw-Ds%){ PyH~+>[۔j0'b^XEgg,cځ/iMikQkB ֋dyz 1՘y '8[./&c8%Iի)bAT"-#[8S:tF kNr3ܐS&(,DJ"_8e)9dJ]] bvX,i%ioL)wM9?m'd膉9Lhdmdzxzls#~4dhռis9lCۨPCB* ϯSEG#zuHɣɤVZ4zxQgͰ O4d⏂^¡)5v4GR!2#u۽wyDGF ]'4E sU ODr0XhCnJ6l#{n[?zVp8śUt&Oh pkkpӉK݌Οdǯh׾~OAbњQg`j{ e䳸K}oyY?] mNW@h4z]zAWZ NCrsOfЋ%]Wx$1r[ %hu7 pc {%ƍ5^$&%30tp@af}Ǔަɍ^x1Ȇ*F yr ΖgݼԻ#mY= PHqr$Ep=oKlȣV BNF+u`nF3e Y8eFm;*45©nVhX9Y`r,OYًာbfd;OzMk#~{w ňffc=katy!!CF#F!dau/BO7,ep]EE넹N0ʈ 鬪#O ƏC Yvm.*C>9b|PDTcvdӣs6F7܂Rg#$7UεE*f+W\oΏz{稉I?5iA.KQj(c{9;Y6\(( BCUJKwyW`8z-1' <ݬG6.GM7I)&obLJ8o*pt~F~s%1V%%Q  7f,\JI^ V}UPtEBg1BXts<޶61bGZD B핟:* 6pZƓj//K\DZ}gMJ*댝 ͏U};iSYf,2L%[AH%ꠉjJO =͆*YHjgt gWF4omKJbY0bQ=x1ep2q[/9q<{G\[?}lw6ӭ/afDx|U۹ c*;$8t\P;mOcFWH:_VtV:kn[3XURTzcQ1Q39#vcvB{j w@RM7s2dzus81uqf!9?kvB6yq F-ZR] ~`&1)c5|7~?#c9k Uod}|#z(#񬆜9zrh Ym, p/'>}O==n%o^TMLX;:8a[I=sA!# vۈf3#(0a bPK.N1nuvola/32x32/apps/amor.pngUT 8mAbPQux VyXR KO/YM=)M&ӼMffZ:Yi@T\Z꽧5VSe=-k 4Kqdsw8Βh&}CxN>ujNot{J}RoXʞ̤hΎgEScFG3Ϣ=@CI{ҠW',hK qN͵QUqq͜2RSrssuvOQ /FkNN6nFʼ纁Dtu_[ܽq{uC{8og/şҦݺUŎ& RaǭW~ ]ȏ.`LarZbY, lL}e"![ZǨaIsb62gB¬ OiԲm9)o R9bưB]8R/usʯAS?-ʭa.*0U Ga=hlT:Mhõv15t6mwCJtҮˡA'|/Hfr06sF 4+/s#mk:̮)٣¿A+D06:ёE\\jly4*+>̷h|BVgOr*25 e1N3hN~r >qjbpѣ` 5P .%oyuzoNQJkj,_Ӷn%8y5REO B z!ڊcnE!n ́Ir!36{ wEb+Iai #sRDHSI.:ys$KODe|{$P-w|XeV 痩޴`ݑl'Q ؖYH>51~~sT+R/+#ԥlhn|MӯPT] hr6jh>!ː`hzg,5Qw֪_=Bq(A*ۆF`MmgDFFc,DĿ%Pn{QlV| %*('{q #7~bEB,Z(|y,s7 zQ*@x%WpܷE gfn^(1 8:;VtcFﴧ9b{Ij3VN/V ֋%<C0>LkA࿜m5hfiMlX& @ice;s%m&x'|_zOoCe:N 4 _bEG[cc6{X\Z_Ft+@4@a $V+ oޭHYY`Nҹ3ݖTQǷUDJ΂k= 7@(.8:@3>[PKF1L5< nuvola/32x32/apps/applixware.pngUT MdA_PQux T{LSwݾn)}\V`-  8Em L c"3y n >1lJU.(HW:Aj>!Ql(m`t?99wË`*ۜ tS((sJ)zE'mٓFt4MFtMZ~'AWzpD`$R1^}1Tj@DG޻wC*< $%GJe2ҒC-pe""Ox640&rEOZ?o-Dķm9a,p1ò+]S~"zW" }zBI0Cj>iQdgJ{ ]Ld]:q]6 9ibG"Pm`[`Sv{ XeK=N6\g!% oӍ_4sPm0ED=(߫_M{SwI<3ICט!rRu9[WRJPK6WG1*` nuvola/32x32/apps/ark.pngUT eA^PQux %VkTS! $h(JR(I .KA@DQEEZ@T(@$$wC̜3盙3|FE0/qðc@3aycN:'DL&DnJvdgþNIO2-՟fIaS/Xzw1LxE+;;H'4pt4㋇[ж?_sV?28!7crr|1%1?zD'"hRND\SL]8N9̅ dOTX >7xQ/Ngcc 9VoGGQP? U[Kn߾Kv;J),,|i,2biG'`>US/ZAEa<O8MI36ʙtpZMniUs{HQ RfZFJlͻAfһj5;0!IyW,.4<>nz}"~=LLlcK1$H:{tS<z:N,w/|?s(9ؘIjzw&S"˂[IAgQ_6a>4t^#(L& ҁ9L { t$/Gw {h֚BzjTE3,!9?Pv[}z&Ȼ\kbea(H}DM^71c N 5GIA06VK#OTc)ǎ|2zՇj/$q8/ao^gd.xa Eϒ5dۊFW\#?B^_[*FF bDx-<4UT]E,MIA:dv58idP=W+Q XFK% t ]+\Vr#ޮt eS-4٣NqaC@xcŨ}41$w-UW3 {UL/\DM= N4 zm(8vJ񔶨! ܥxtX7e7"' Lb~ joDPL#*UZ&'-sh{Pv* cɇU91CCշI&yf>c/ojx{$C~<50)m,p\kEɨW2*9I< +R#G%b>j,L  7[#u`S%Mo*=pS4e,N@қ/J:?Hq\& oJAS(m/-bU,VF~V^&ExH hco9%ݖ+1MDM-&ﳅ>m=zY 63ޕ!9d9[ӫmJ%.&K4Y:k6KL> a'=%g>,P}^g<^k\[(KFZ܏xŦ-waQ\ݣH.̓R!vp."F`ŭW3xOT*ϒrfp|LyG0Lm~`x0- sXC:92&욜AKE0zd~vud E 6ُd1Mݽ(zX]&WH#BUnZZrAN]$~)|+Ȟ7&0B‘-^si"8w}f~6$'%xfzzAUryK$/CEM*ow͸c4=!] SKTًzJ[.e}si7̋rWuo,;F9$ݿHnvU*~ߔwh')f)!y`A έ`}bȈ2@k:X,PvGA4|XUd̔r[MUe؈3lW ~B:R+K0$(\swnz @%|q5Y=%3$AT>X S+F¡%ܮI}S~RT/\]]n]SR?8g{2 {KdMtT?2\o0hC:ɼi?0Ԭzw|(ep]bX) ju}Sdf&r_pv:Z.F4TQ)HD==<<^03*܆r^_}p+,Z_-6,>In/hzHzPYwrC"ӸՁQe4[PMEI< KF9/PK2WG1B nuvola/32x32/apps/arts.pngUT eA]PQux VmXR>pQYeBi7d^\kZ\+- ~Ua}\uKMwuݭ@ArӴZ4l!Wy;33G1k)ND}qY_L??147ČM$YDb@+Y̊N&(~(٨AlV x,!DiE.R0%k T5I*k5'Ge:#5ƹo]| {/qn6fT$%FOs? n DS6sO߼bK'#bd#TSA׺]5qm_'ͱGG0Iq%ϫϙʏX n髷 &շsY\4|-(Xl0_]k,Q.94ey *Smag9 S6̈%EH8|\"g ̢n1\+qܔ~5V :jOb+M R? E|n s1 Q" iʮ?rSMO׳aۨh.×޾+WܸtҐ/mt\b۪\t1߿"|yJA ,n@艙QT;b cӥ8lmƿ.P |._NW܆nR:*iC0<03Nx42AU^v1%om7JkMHM)i߾.N"w{DT^r o=lS5(9ˠ! @ϟ!i?_̞sb`ǭ 3kaN|JK"$!Uψvˬln!g锃G&,~825{8}ӓ5>y%n\"89vtq\$P+hwZ61wa콃SWqm)&zי=~7⌌Og;+0`tk)-~>DBAɁDट3JJu:W4ҞT[0fwZhyqɬ4^^9rX$X-fb iLBlf %;/ǻsi=ƭK|&o~?o9 0ǃ=9{AD)ֹO᣺۫b8(f4QicP\kmz;tW~1&OD0fkf{i3.|dTJ+*>¯NN,g<~S\ݦzC.A*L$ֆkxR9M(GVK^' 1fM0M]lŪ'4I$x+}?qQU:-IJ;@yXf4 _}MKft^g/8W7IoDYV}0鞆0f(ۉ6rmU}kÂ@@fJH6M\SȫdX+5?);5)=#h"J~KLf5%eRh0kOkn͚ɴa moWUieJ̥*[{lTg58O9YNm~!%w-uߥxmkoDWr^<+oXxɅҒƜ'>簀`:T)Np{ C'FlQsKJX[ع}'vQCM@/P)3(<..I6n^ً~Y4Jr#fAcW@{I1h]ߦ ,$NsG#Y5w <}iIh*R Ա3!ߟDmkpV4K\Nw[(0|c’g .I'Ajql:ƻ4yVhh+* ]&5՜[VkfmFpdF[\xAuaiS=OcMd0r YB:$ecD|ltQ?~@r7S55ެN :A"uwA:"01cPiԱ㖁]פPbYNs3ܢ}3%ϯYJAvTob,ߔ6 )@4Vh*Maomic]5)@8kKJHbǘP|ؖ^`IEfFw87U*՟uKj+ͧqBl=8$KTVG6ώ8̼݀Ƀ3a:wQh(ygYcCCCB!1ӕ ā+d!/&x)kh}'aJj+V~/KV/M+PG&p:b}|ǧo'>X5n_%$G]Xwιn,9Nde !I:2貚N&98E6/*FGx whZQjve|,Wʚ}QBzvϞgnCG݀bҲŏE$de`[L`inv. K sa̖^wgT?JX̭G?xd&͘,xhM&hAʦס ʬ%ճFs|qI~a"276>A<=V N^kNNNGil%7}$6įV4Bzp6;::S:"!cFHB;A;) *`)ۀL;؍X?Gs>ԈGn!<_<1;*e;gb $6_vczʫfԳaLuoSVZ__$%*+B2H_>/OMVkK/"C9#}vjI\Gd-vhaOIYYTDoY7Rnjfα0 ^[#vw }"di.ƃ?f*}65kǗQQL<`=9pOaz`aq~}󻟉|S>ߋ"⚽RdW|<' cEsIHS~o꙼tN< G}L&Gό !hcE"Idj֘I8%׶ȸR&{uJ1]DF/9JjPm֮b\Ouu@ Ruuc+hafTT[x`SK8p><V9 ǯ?3Ein6Z`A}(AT^ޮaڽ a.COЦڅ/?GzznRdV!]&(z `5trPvHkCl}A၆զRX?W7#IdhuԮk K72P2G_%M/OmsXR$l[ ^+LM d ?4_P^7A΁K_F4U8y3[q%Ō-3_6q+<CS kf uZr SyNOKH ocflzO/ g(!.HdLLvSO#"y/zq%m;Hs(hbdY |)!D"e4n!`(!¯j=J_ \-y5tF{1W8ks+?uv("∍I} ^PkY?X/ 'M=s}WwB#is﷓2%mOZM+7O`M &NFl[!Yn <^x =p՚O&|<;5LUTٹQ޿KCoR{^FJR)љHWK."7oAӞ^(sϠƦ'%6$+5&rtw$񑮲2[wt<bi)-*]@I}{#Ωfs*'{ž@:H4Νy+WaЙĵ?3$c?A@o}_/H&ֱP&22WVMjIkp]!}v|x{V r:+ϕx ~%2?!*cX }STdP7_UlI?RH{K rr 6ƛ7׹ Ɉ7G e@` {w̟\ .= fNw6:_Sr63WC zq4tÃ4+ԥJY3o==K#(S/ViVo_ /deWj)*Ņ82`Օs/%#jϽp\w &~)] ^Rcrߦ;ַt; :|t˞F=}&Y΂5aVO Gm'ثCSr]l9< !9;yOA>ÑrL$U[lRYO,f--e4}UUvqLC`ۉҨ~ߎҧOBaC  :r= ߫ rug?vɁ[ñtjzucN՗.+œﳓ vtQX e8iuٳ摨čA*`k*mWGv怜 .÷FԋMŵ7&L vJ:7a2iCķ3IG+i jZ&gJ7PUSF$4ERq^^7D j}kg% eBvVVjsN[Pwscít$:j|58q;m,]֬ujDy^l< ׵EhᦚoYl̜7g@|)v"]gBuI;\Dk-g{܂SXPM9:(4#ݻ>Grn'2tM-2M.p~FdJgx9([2);pl((uqXagڎM&vkM3-ȋcHyj1LTNCTfbE(9{XM- iMo,pl>1"z6PHxsК|SFC{;3?RRX@#R4~ 0fCG?(lZ>;AV7%I>x$ON,EeI:S6;LZh etwFr/"X?A&+Q68g)hoVß:X^/sW` 6CH9lUTZZf3 M~|[RUMnD<(vBat{Q>8)_TdAkLWBՐ\㥧ArlR_uVˏ6z̼\iue_u) d^nʚ̑ˇp2|*Մ@Ocׯ]cytͩ 23/R:n~IX"ѱ2dOsk;5Z+ǵk7_$PYŋEr/;ZUt%j^#.:8zTC2.D?n?fH,y~}_2)$d O\rOp}spVx?ff_`wTrO|c{K 2u}*~Hr1oB>R;P,"H_d4_^Q=!c(֊Ҳk=2[ɸtfcmùE eϧ;u88ߊE4owboh>kJZBWЊ͌ {kN*"7sfzxu~N ZN)V-xjg zB"0^bjwcy8d?1p)cn٦k`p-QM,3`MO4˗' DD,&>y"Ηʜa=PFKH_]F3 ݷ5'3bQeDGnir8&66{2g=4~{ }FE')5r:Uh1o`jM PaUPQiL13쪠JfܦͰ= {ꤨ1tzѐg87J a-kwg[K6G@5/[iuo@կKYq-4'#ӑ;[Mz _bT]_IAUmBHeV4Z!=&-spQ<έ٢lk;k>ؐ/eo|4ؔ6Rl 75y?~ ufYjbCN,#fV87_bG!x~܏7AX֩'+ڏ-W)T1o)PurQ "oJEӫa AoL=RSesNZ")!;lʅ, bMV`uLٲt9(e% ?IYgpC]'Hg5!T~ ƨSj#D~)~`x(yv/D-G ==`R Ea,uvFҘ~]aS-TW2˹!è@vqe%4n5>@]V9vإ14e d̐}5k8>|Xd&d0@ "/Y6 ׯ`Xz5 Y+V`FI0$s@a8z@Ctuu5eg޾}ːp CXXĉ= lll ٠4 tݻwK?r@80lSSS[3336KKKQQQph@e(((`8uA6`qX9&.Xn߾]m2Ya D (.$dYO;I)q$ Dpg ]#fZ;VJ)vkι[bBf%6Pb" `0p//ww_gg7,ʾ xuu)@G@e޽c8<0k9s tX r@aHHHavZ0< @,h 9ҥK p߀h&& -ax-03pC Y-2w`FBwĉn޼YE i9իW )Q!0JJJzz@z8de`fQ.nvv N Ԫ гOX S#ANNl00Q12\|;w2,X0)t@deW ?~` %@  XR& A! pA#&& $$zŬ, $h_o`:'z~0fPH -Grx 4˗ gvc++#0D2 hWP:e/ô)ˀ "C}s "?!,AqĄaRPNA!*}W@˿ղr0ZaU d+#3`Ȏ0s= ~( `Ћ?X X0?VB?! $TeFf$*7(!@43HH>p/3˂co0TW2r0,\Ll,!&ޛזAFVg&k| r"0W`>8{_Eg^1-7ñd` ?#dbBK!AA +? *~0'aޜe R@ %(@u=d2yHI# &XD6l<°kpvܵw) x x]v}~X +% vȧ$D,<?PȐY pFAB [nm@tXKL/U9SIY_|gXz7ãGO $" 2PmC 0ZD^vz X؀, J0Q`g/((xQL\8EGyt+Z<㠜 ρ;}C" %""?O<̢ ^@o9 HrTb ~ 2^}9^/!eIENDB`PK WG1Ÿ9l m nuvola/32x32/apps/background.pngUT eAbPQux ViXSK6I$&T. AdQTDiH7ZdA ,RlG@[7 ť"  >mEE |g9331#,-, 5G?F"ӧ·朙+MyR!xi"1;0E+&~8HXToDQQQ? x Da@%FҮ&oݺoX^ڱ_Mx ˴c>sgi2.l**(qTr(/Nڐ+>x,dVc$Q'Wp@w=BHT'{y#øRC nݺ)/v݌-YX)͗_XxHhD'~/Y}}"UB_Q(C2})7uHz<RS`77ef4Daa7[bZ~JД,),4"kFh k{JcDh[h2aNPxeՎ"8C)AkVz,2krv)B,D뙌[Xx ?X˫? wy՜ l0~a8\7[#D"Bm*^]I%Ji{%oFBI. wnÑa$$䦂KϭLsjv9P3*,ĊOnw&~L@zb0+f>? =孀GO d)t { B,=>oXdPH0 98J^ҷR,#°`!C`ԗ }}ҫFo?H[wFs|Cc9ɬX,yV(b~dgj{N5BDbkN^\mL/v~$۞*ூu›-5hA% Ow֣rLkK>Hh=e8[;~ YJrD}!FVG'cb|M`y@~n1Z7%0验~[):O,0Cx`!C9.P77ea3)V( nۛPfj-V^>Y=u၃~c8<vך;[k VhUɵ`"vˎU~b޾=,9ۉqLjE3.0IW DZM| 駡$xGʲ513lk &94O9:_ftnZ1C;?\PUU]ttL>W/$"dHwrLQ"M.1V gBH VXCRF*Xn0+-1sT ; {ܡ ղ 3U|=5'H#k1sϢFWq_4Ț:;Qvq-g(֔.X74eae"Ѡ^eiaJo jy([钕[_*L&ݝ# #il6@WM ̜j8KcǦ=== BƗ^DCp{)Ot$ZV6*P+ySdWPyF7jg}]vgjt/73={vԆ=/WWm {+oY%oMh=k!fK;C$a+JfÍ*9cXuG%xl%#@N/dOi D y7ͦ7#A֭wܽuYnTJ|擨^1F[O|2l&1l!r | y@~4 Ee!<`þ(PKWG1K[;B V nuvola/32x32/apps/bell.pngUT eA`PQux Vi\d 7 m' IQY ZEdIЊ B겊l)V[YmMA,Xd6}y'HJ*P<+'Uӄ ]0UgL>;CvsɡT@(HI&J>O =ُRphQHIaa @GE5Ѻ0@fAwe{rTyh\T99镻Wڥ*M:p@Uq`_7K;Mvv]7ϡGo[Ec;"AݝYtޓ\,=~ 7\ճsLٛ/}\/~E ;THg-+lpM^hLcn`[xҰ'}1@t@\ 6 ^o ("Ɔ.-_5*G%w[YV;R1/lRR2IK͊/*Pl-}A!6-}Ե2}~h'|#>` ?=EhtGSCghZ VU5: %+@t4'A;SoS7mXP㠵j1@MUP,[,6:۞9ѹ`?[%o',Wnd1d# {UA#kS\6U 9)4or3DKK:'>r\9UUB PY8idO+z\Ӄ?M M{l"V&&彍xNׇ[ 5vi{9 a\QD { 9Q) &@)ax&s}q_z?6m䎠[LF۔*9t[ʪ=#xyBQ!{z6c@N;-p3emPQߡ,z D -&vEAnvpY |~|?@R,hS~^Nruf'A;jY?yV/.VNPRx:}P4zu ?1hMeEL5)׍⯝t~)LBJi3)Pc*s'/7,@xq3XovE,9*TB4ktĕnE&};hEPQBX:fhesz?JP:̕M(GYk?2+W0%-Df29ӵ[G\F{ ʋFP% mf@|>qm$`MVK#gON(Ќ h4|V2Tpɮ).+[QB1h^)cA뮸xH&r ޻Lnzt]q#q6]'\:9zYCwzZHŕ:sgV/}z+MV| `hzW+X ~ajMJwuEϟm컯] D^irVM;gŭps\+%/U:}HRG >9DnBkjՋ') l̚Z+\p擐{` t=y.=>\q~4j,]bDE䪃ūui m|zN m#YFg^bub#u]7hmx&:iX!<#BAgk"Np@ڂ3X=rz?Wz6nߞ޷#9p?Wxvu`Hq~8Zuh㜒\Hv1-H=mT?Lc]Yv.3T833Il45#5 nvbب4 t`x[NNR<ALNf{_zVe|g*t{/Q|jt+G&y9=WV?}SZM 2都2_$lk&ꭈ6S'݄--՜yc`Sii)oBRHw$g&U",Ӝ}䅋RHW@D'5kjr@:%|KEa[f*϶4#&$D|]gFM+*w/syR2:rH5ɝw@CrW)f0i{(KjX HY|kGAx)Z*X`~˽ 'v(PK t91Mtnuvola/32x32/apps/bookcase.pngUT gUA^PQux PNG  IHDR szzsBIT|dtEXtSoftwarewww.inkscape.org</IDAT(ŗ{lTU33wL-}LA -( RWW]en@&[w1fu׸,VʫBpYK("MCJXBgʝww>#]K?X`<`Xn\RBP4mvb3ba$>'MR^N a$ݔa֚KH=oI9-H;@C<#YeHI;/4{qr6gk~PS͹p8JS{K|;|D噙ed"N699 3cg|>ptv "eK1(qQ ^^L020s',:gg~ Z%Qvt/X5k}5Z;8[#2]J9q Ñ]b zDC( `L\WOXRnunU^QAΖ-,_,;*A΂#6sKلAN]%G56ű=1.}w[=L2'ۍn;% i BRFh rE'HEhV0T0T,6V_JwpNt>:WV¦Q\&N!LeiQTlρ>cu\+ndu\ eFhQ0XTzS]ᨤm_YvWK-*=PXr O5"J  ؝+9aT "F8NpTߡ_RS{(X =BJ:~C~;G% [ُk~kus9Vg1Fy?d!\)Y8IZu< Gn[GwRR@`50FEx=b(U g28{OB'|tǕIV~5wD6'=N<˩))k%j1,#sʗf0;BS&w֒#dIEl,xVuu]4cuΓ؆jTQM* D!-<-!eZ7[Tn&bɺٛmR]nɻ2 jC538iYyP,B|<HHsk¢ПQT/KjΌjR1_R9^ņ9PMR=|\ O52O__p\J9W`FDA^^5fc6urݨʴfȯХ6|n?GG2>^gh`W7u0B˻zqUZudy9 ?ɶl߿aH;C  {ʘYZ^M IOfpp`'0r:Vѥ A`컠?l)IENDB`PKfE11 E nuvola/32x32/apps/browser.pngUT }bA3PQux WiXS>I V@rL\Tل$ѲXp/aK `PD ʕHmV$lHB H ~?f5ٰf׮l7JmL/8PI,y'"O|?uILO;'H:s+ire08RW7fEuqAɡd3Jԛ3p~jln,+_1;xh{njU}@R8녃8&A̘;F賖hW4$UϴUzbk] +DuH|:ۗg&{jh6RIjqiJ$&fioWn_>[YU-eD]E Jbr"YZ]0ZRl]YV|YSHͬ⟖ Lik٫e{Kܬq'c4^ֆvoE;(xc3ӧ$1bG4&&$5o+:uEvur_XB$YR#Og.ek[Vյu^?bVO gIM^["=vj*rz 7+mB?&걆chZ+͵Zn@Վ6͢31P HE # <^pwGEOT fvB"e+GzW>PG^_qHl HskΊ{yЈ@J(9HYp_RmJMWTOlcT'36`95W@ sӜRg"ކN(tnvyxݮʷ%/%j Hຝr)Jۣ-"`j/e"{lNexɠ}韒z)$E _ldYM-[;ZL6mSHYTJ5m~:#5p!g.F:rrq43|{եc {sϏ_}K Y)D4!:͢4HvLBkj$ǖ"ݚ6fл䛳ֵ:R<ի :ds8JI?_ޏ* n9լX)M$=6@[ZҺj,.Rʚ@ } H[D m^e3jw(3T疓 V/?k5C?}IמzP:BO;3Dμy& eʮ'B"OW<'dLg.լ5βwU[4;wt\(~"G.hJr6&] ׶+3?hONHϕ'!};{a<Q5}=kvz@5܅f}K-k!81eJ+}2uE/Q??*w)&˄tx|E }FO{?񢥫X\'FFƃ?T_6 K) j(+p=§tjH6u,؆^;O(ٜr Ȓu;+>u^׍mEחe]4\*g}F_< J,l7aKc3I\`JH굅rvQ&SEDSR[WN!_-B{Zf i5r n- jzj1L9客~^\2SN\`[̛q?<]Y#y*d}J];۪}grV. WWg1_iVߘuYX,áI)bČ+\Tb4 !u]^!DXÅx!ֲXG3=4uNB: _ R赫j=(sS֊C.pȱlXOdkΔg._Fr©n}/R{JNta=&j4EudB6_Z)d-/YJ?jXD@?K.xa;aIqA('Dzrߒ5YȖ|Hiـ4]r(!~}$](i&UJjSo\PywV`_PHݼPKWG1  nuvola/32x32/apps/bug.pngUT eA]PQux %{TM6!<7%iI#EJ1**V0Cl-je^ <!RxE"$x̜c|̙cMLG&"4$x)r19S&>PK;>a923bӤ@ rCSc[ ܖ,$mqq1/WJLP_Gr,2o"⋞}SH֞ňdҵ0tGKJ44׾oԧSt@)[Pn]| E+AjJJ#5̿OAqX%k@bot?mzx {bnJMnÃb}sNz-ߠ+{\Gf_bcu{pO } Z47dΦ᧍ ku>m=Yh-)zݘ}Ɨ 1YNqv]E !g&qȖÓ'["lGY5?sGG9輳D#bߖ|k}xI](ƾxIb5\|G5++ \f#1~mKx6*'$%+,K=} deN[ǦF=i˫F:',5 e3g 7)-~LVŊu h<GSB*+ &xʡVGKf\w7;O^Ϗ)Fx@T #f)N2KS g ٨/R2㖄k&¥R?+bh^ X |?j/ =z_JC] L#oD"Qa N0l$;N@'Xzё"9`z [x9\dJ5{;ti(ɗj A90'S%QD *_O%466"33S.nLz7{2{]7|&_%Ղe&@wJn4rCP),je[6.]o~q kkD[d9D:]w3!k?P$5a/x0v2UEy~J#xYLK׽7cĜ$0aR5cَ7kFHOcCoWٖ֖R> ?ߚ-)^.Ӧ vEa󦝼u7/dbAv{^2Kʢ{5{q͠@ɖAFψ'XM/=p/v!V( %w06n܆}QkS@S]\tRRKE.֣NA]{$需EOZO/ YfKbiaX sшOJwȍ*|i ,i{_x٥NkZ@ik'ee@Z5tNiZ\ ӺM.B{<`ϑNdhdMD#S?y$%O_Blko[Vu /tcX}p/~|'[ C͛Clr7}8`lnNR7PK $WG1Q nuvola/32x32/apps/cache.pngUT eAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxb?>PȈ̍gdd`/.= ,1~^qU@;R @, ?(A@!;:VDR9VT=B7}K ۸ `D:R bvN Xao30<r@ &GeM6C7 =ý {+c8a+P>@ #k ?,:m .xva3Pg>@t/Hh*0 j&rd; K^vBAp@Y (@ fնaw/@/ br-0dq Ոo.wbXt˃ {μ 3 @t Z@Ccl of*'+c c>L{$-,3JBZYI 0_8֤20ゑf~΂ʁ@|D||l.^: "2ДA`c q 8d8]8ǰ{_ >x8X~ܼ?10pKEW@㾽e8Va/^30l >g>@tg'ߍ[U򗉁 ho_ܪ]95B+ ǰhǗ  |b$T122)`0JLcā|Afn9;×o&N23YBDN I@ DJR%4!ϗ r70|<07a8@ #`uMD|Z a Y}1Ŷcq~ϑ}OV[ |"mr;'sZ"Ђ b(;+/™~pAZ_hedbGoU`XN@DՆT[ ?۰03bQp#C߆710 { p Ň}p"l+Dx b,a_ ,|njS#"ј!;R߁(v i!P5&"\ Ӭ{-@_@_g ~o%H6 e"⠥`6m 5zQ, 1\Z}g A$Ai`%,`)m~0i5ÃF>h}M4  p4o(ˠ&/``6x"\B ik>-h28yğ {B׉i"_4O_Qp9Q@;DHoH-Ƞ! |ft`={) U@t $O{h @|bA  8ܲ 0oq} @Lv*÷>yO7 "*B U1gV .< ,ɹ?kIENDB`PK WG1kzma j nuvola/32x32/apps/chat.pngUT eAaPQux ViTS * ( TAn X$ h+S1JV+ZVł$fڪE̹/{g>go'#‚IH[C6ﰠ[rjF lciDޙ?|,&cy[vbғxȸu3{WڿFE,l s[8XևFc05rMeSzƁvJ:!u 똑|orl6 ~YC"lzH*BdΖB$A"to9mt?]wڞ6-]݊VQwiQ}"ͼ>䗖5?' Ӆ`&q.4T^&Ɩ1z~4_95Rk}gB](-iJj :\ g -NV3ԒmHjXۧ,kc$lSq80)/f0GDhw-Y^ne?fߞ mTk|ŗmk9na".2d~ ?!9ʵEwT5 n`XˣzJ@P4;: gl5L)EAJE͏[ O7q{&QDG cQ}5)X Jc/n[C>^ʰHdJ=!a8"A7A6ck'DvHL!DL++Ӭ*hQℑA ] -iq:9 x=HRֹ_;=svbD,f"2#I70+; Mt`@Zm2׈yĬ*=t **J,bs%8w/>K.Q/y!d}}wy'-")3;^U!ͽÐ7T78xQR}\f1 / ykWV\Umۮ4itb.3 kۭbc^|!KS+|<ظsf˰lPK WG1oEY\\ nuvola/32x32/apps/clanbomber.pngUT eA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b12 I{O9zt <;k@Dn20|Z_ Iщ?1SPH>Xb9 Aq39 .~Ja`/7{E9m`dxDx| _fb`db`Ps1;wo=(4fbauagdb 8 |xY3s'0ɞ'Fƌrms 4p0D(PF, 3 M}9 :  3}g_;mfy602D ӿ^ _ GE? A`9 _lePxxy}B_^w_30p#; /Mo_ccs@@S1(9Al _>o  f6}qïߖ ,go\wϮ;h _HIIWRR/##󟇇?%%%554wuw/RJ bo3=jJ39W(z/_w030 F"usA |WWWwށ-/Ï?lY rķo_ۀx?| @\ ad!0`@DQd8@,VAd8aa¢E 5x Bv(_tAHHl?!r,`kp dQbAP@>9~88q-9D[pyr0,b@ 3a|. n`a򇗗\:tT0pssãAQlll x*~vP ۄπŬ*(@Aʆ @| r*!Ar BY@ W9 @@ 0rH*A4} ,ۙ@!@ `ee& /)++|Ln+ {Pzfok|6  (7oi $݀zZR}Y0HQQbCT$իW>|x( /C| J;& jjj62Tpeg>Vû %@ \M2e@ .A9! A*SN1\ ^ mt#&Iq &(8A,={p=P?3o/×@jlb/ 6(e_@G6L/9?hV1)%Ă 34x@-ep2<IENDB`PKWG1cN Y nuvola/32x32/apps/clock.pngUT eA_PQux VyTi{E}] M0+0{2 ,mt+%5(@ 5+msiijrrƩ4E*5?{s{󻿲Mspܲ9aQBI,{Jk8Ix'- i{[YKWHvfJ`^KFf͘1v YnlS scE'Ω<,k[΍+Ͻcғɴ^dX,P }c ~89 ߾x-^1q)sY7?꧉^r(40BտAPDV TӠJ& #X8JeJt{@\AnJv.%;A]=mϿ3|HpտUyS! 7L7r KW'v-'("HÌۣ.☭S䫍\`=/$`숌c?|[e: Ȃ8`aCjk0H#[L@-*FɑbY,d#Ύes#Ԭg s[N>.q)-[ qg0]k?(qI~70Pz Z;D7[0 ((Ӏ뗾;|Mq _l}@/ON&~X:?aaĻQ˫ެ=Ŗ}ShMς~|xN51-MYǡ۠E!/aBjfLDe,kĺ{"T( &j ΂[q1 #oh>m oJpˢ)5%a禉l…j[/fٲtd:%lʟN]G B"M R2 H"AP~vrY f7TQ&{4t8 {uwק|$`G\|R9 FVPVowxY95UFfmMZw` )k-gģ8YdzWMP"O!m6=fUL r];2)SrO;t+Iں?U#} 4mo[7/uNQ`Npa$rCs3K`|?!3b=RK B;4X U-U7 U.F.Dqd<텢aYTƙo_?: U22hHL9s6U֠ٯψ 8,sis⇎ \$~8=Z4Պ~K~ [ɻ%ՠ 'FMfgEdDpF̄ؠN젳gfU9ێ"Wn3Hs/ 6+=~vnb~yC1td 3@Vfx@9ozoAVzT*!-p,o<ߌ!QFMWЮOTG30<^e[c`Rw a{#bgAgkȼ I] < 3+Iw ]Jg<[eٹժZm{_uL65eNE}/O S o޺Z$)W6QMK8^'V_ ~.4"ҞD?ZG?yQ/{2W5ŝ SF><뉾:O9™q|n ?@^PϱshCG!')JNq]zN٘kTYED̈g{^]uw_ fj[v- {' >׾pfdM޺/ywb\2'`%ưiٻѬl?0 601EZ)l3<0=v72&ƄݜWS޼KO}m-&,yە43y0`ҘBHM}^m6Uq_0ø[)Gk9]wo"#UScma1l fjsZ!-(j&__#Q͉=ay9!OfKRYJݖfwqkfeg?ftJu峣+;dE#tOyM+pJjV r)j2Oia_M)7:G1D!P<1.flRɯl 'ݚ{QtAF&yjl`?[^wa"DJO}U)1T=^=[W@׃yo?VlE"gn&u2%VN~Lw<܏;@K*15>HɊ.YXAZˋWVY8y:PȐ0 3$h0u5va)Caa(6܊U)LDx]FT6ydҝ']3/}z y%(87ϲ.ج7mܧl~ * NRa{'V02l oUm(a }!%MSmeF@*'<֍ZGe3) RUA%Z.:d4}hBm@/ZCmS7zjf? Fic֖kH49Obk?:95(!jo{.b上YF$f V ,}..5J$k7Pkxg;\]qgDmddgB琜Ơ$z51njr\pO䫟58 q<сQ,b;$Рkx+c;ꟳ>qohԓSG޵*/<թ5!D\tȅӘ@i268X59ӽ 1%7jV4I2\`Y:cs3< Ti=@!b1a8Z!| OU'<5*ǹe8r#m?rymKCrEFjODɬCl%Qc @K;q0ސfsKZ}.rȱ!-]n4 fC\fК"w|kM({y"fiB,`K K<(mfu;:٣Ѯ[gpoTnE܆D1S?آR8eO`I< -V9FϪ`IB7m۽>MY5Dj/q9=i8C%|LH2Ui_!$Pqp_dgs$S%kY}5iGFd\}Ag(`C.\}.@{nͤ,"AO93Zn; UccDIJOnQa4숰aְM7Je`f'^<[KHTLΨ;$Q 5D3%ПM5+bYY HMrO4ؗGnIN wrg\".;Z ۺ&ȯ-iP5RA󰵳vP6ip;`l*͒.RgLxQ?:A5.G80&$`2ݢ4;CL7aR͋YRBa6%lp=AIzZ n^m@P/W!C8>dytزXi.SϞ8G?[ܝYI9[@pWjYïA,NX̓CiڻxؒL%V/Wg_p+HK3/oWc imLMyvծaidxqNq"^'+UR>jFǯOHd5fmjrz2#Χ<ĵټB!{ ͖fɰAs#7PrP'$ |Az{|GUJ&QSGg벎,U["pt>u_SΪ'@vPCfV`W'9azeVbt]A죾l{N$ChQaWϯ">b_&; %{FU̢#hx5GruebyM\w۝qǪ% SBa=QNM\+dscچ[$>j/4u}gB:2@v M$Pvw3;Ls[d|{{l|d1DhfR}O򥵝ru/7~/QTņya{`IVā_ Dq^L٭~&? !x-셭z?9$<`FXQ?A={ wc{C;V"r]b#`enk  4; ʱ> +<)Χ,ӳrO,IA qii[&iީ͡Ep;&PgԵt,Aht>$y>Pˋx]A_ 1uݴ |zd%-`7i~Gmy4gz:lG; GgI7ebk0)ց^߈hj\w<߯k>fն{a2J_89 6@O~bS3$掑!3R  6+*3kB6JzooJRm 8Ƒ41Gn8Z(%T! DܱjܐdM3iDk̶+tA, 0c~NqIpy0*OX̤V,SKL?D.jC^ •v?a"K7z. ̀7ef8pmOJM%i]`Ï4hBIBb+nfQ^A1K{5LLudNv.6-s?deN2#mn7VJG񭸟\ U^}xNm1J8a[n{4]/!7LKIW2Vt˲'.$=np~||8 :#q'o`CxCU>5!&I_W l>}dqPy4В!jL?*LfsSXbmuO]C<;9fo];$Q~{Ge}N7jN/HAA8~Aacn;J:{WsNyQ @ 9 =_5#]c]iGocѳ!]2I8BBMz8h:Gt 'Ax+֦PH6;\T]D@8kJF :3{[èJ1_8D GkaHFD+eyRogyqIc4Ngs&xՑlrϩi6`5^127/U;AK J5bIV=Ƨ4ZBk(7UDV|"DIHBղʼn)F-*GQ?;+lIk"r^Rx{z>pPK VG1oEY\\nuvola/32x32/apps/core.pngUT eA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b12 I{O9zt <;k@Dn20|Z_ Iщ?1SPH>Xb9 Aq39 .~Ja`/7{E9m`dxDx| _fb`db`Ps1;wo=(4fbauagdb 8 |xY3s'0ɞ'Fƌrms 4p0D(PF, 3 M}9 :  3}g_;mfy602D ӿ^ _ GE? A`9 _lePxxy}B_^w_30p#; /Mo_ccs@@S1(9Al _>o  f6}qïߖ ,go\wϮ;h _HIIWRR/##󟇇?%%%554wuw/RJ bo3=jJ39W(z/_w030 F"usA |WWWwށ-/Ï?lY rķo_ۀx?| @\ ad!0`@DQd8@,VAd8aa¢E 5x Bv(_tAHHl?!r,`kp dQbAP@>9~88q-9D[pyr0,b@ 3a|. n`a򇗗\:tT0pssãAQlll x*~vP ۄπŬ*(@Aʆ @| r*!Ar BY@ W9 @@ 0rH*A4} ,ۙ@!@ `ee& /)++|Ln+ {Pzfok|6  (7oi $݀zZR}Y0HQQbCT$իW>|x( /C| J;& jjj62Tpeg>Vû %@ \M2e@ .A9! A*SN1\ ^ mt#&Iq &(8A,={p=P?3o/×@jlb/ 6(e_@G6L/9?hV1)%Ă 34x@-ep2<IENDB`PKkG1; nuvola/32x32/apps/date.pngUT (eAbPQux %VyXRp v-J-+kD+'0-5-ǩ\&s}J\%9iYi"M̈́m3f* b2$iq|=9g214;x1| xfg+A<5 wbOhڏ2Rbj̱C6~IQQ1Y[c7u_;F$k:rPe(OC!+F)LlnD"g /Kgݥ=okESJhSl iBPίbcۈ=5b9y3`#?GSC ܹ>Letjv Ϛ:nˏqkQ3!nA=NERO:::;Dw>NqeBOd]tЫ.zwOkp2TV*D?̞P###G[)6.1&B(-Si-#0MF<4TԬ7,\ۚp1`2gN+^ލeJݳR A1Jj4ozzyyw×p|J)jniv@JQ _;\PZ>?bd@J>)>[mw```"6t]Y.靴f{EM20KΒ䠃Eh<0rKH1}ƆBII3#4f%Dy'sLmL!BCȻISp*E(~7aK6^ZwہPrш^m~³~W}|8 zhO60 ;O(3XO<+ULxjM7heGIujYF j;oF2(T9jh!)0@Fљ3\rz5J$&ܵ7jÖrG~UOH*\S!c>[d+ ~9)ɾrZy]$&茹|H*TqBI()T؛8L ;+25 Jm׏fvV. ̲hwaؑ6R8 )k>2g&!ĽyWjA+LۢH&<~yYv# 9j5vDp%g UEknJ K${l!lE 2*wDx[Pjfr§8VnަO:$};@&ى"0k#p@>Ô}RrzYyT>k +D5mVUE0=` ub] ]7mY9yۿ ]"%= \m,/oBB:C F;##\}"_e?- DžB pR[:@.z ąeVv.Eƣj1#;XZ[Cڬ18sL@. Y&6xalzd#s2r/)+]o)9FH\JQ ț)DZ m dx/ fe-H)[ɣá?&if*,K֕"D";H-T G}7z| R~N=kC黻֧궮 ZmI)?hFK* Ӫj\#OsnA=*ϵMyR7K~1Yʐ6_ ioDA/~7XogʈjQNN$S(}U9C*LJt) ?GQ]qpvX_͉[ܰ#p#VzJsMytcUr'L #౤ymޠz7m4* h*ő],z1 WFӱ<}ԿJ=?O\d8 H[u/v&Ae台xC =TnJ}+)Z~g3\ O ߮>TzlPhLpnX)(<:{R,'׹?N].էMU괺ӀS'wu'%8s"uV*t lKmXS+Ա^?SOd2jgf>Gf.f-Dٯ_8phupqǨ;ZW[I_zEXc>~:X^1PhU=-(u&:\99"%Kf5֌2^18/YX03SYWQOT>/ qB`93rӥKf8R36Є 5`9` "hoCa`Mvdq|xPK kG1>iAWWnuvola/32x32/apps/designer.pngUT (eA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b e/###3;PR"XXl <>N^^h>>0NvnCffF~\{ɒ3g`gguyFGBm_BBnLЯ820:3GHT> i90Y/T zǧOw?0|{&lY ~`;?/ ?aj &*$:?tvrqbǽ ߟgx/H ]cc`bf@L$8~h .IHHnmkkʨʠ#os_}#n*r0,?h/"#  77o[iHH0 yÃ:",~7Ëz/(p+@ )ϟߠmffUhdjjr Ákͷpƍgf8}%2<$&M@Þ#`B%!H& EEpWkkk߿14P%DE~ZZk0|aMvzŋ'^|r˗@} Xpϟ?,-K=$x={=r™߿}p;Pc\@޽ ׯyi@PuoAf@[ V육FFVNNx_zw{1`esIOςA^^QZZ&M]] ˗q@%w"`ji\ann U>q/d3  ""LG >720gؿæMOYW4 ?rryȼe˚gӧ@@| ot45 , ?0k3~N<~|g7T\ $%e*(߿ŋc`p oX$!Ǐ~%$""Ȱm`v x/ϟm߷o0=r@ >̦t!uVٴ4k w(آuEYE,3;k[3P,286K^m6 >}=bVKħNI(I=,ҳA/_+::嵵HLlm-5dhLa$eCu #'#~}Ɛ{jS+ySmbz'VKxBV1()izOcU ,- ,a/c!Hry8 }(Gwincii| dnZv6^H$|=/탚= @fgganHQQ`uזn4/T˱h+Y?xl$ᅲoQs%dR|q(XQIӚ_{?y\|a."Lq%/*1,G}bB6h&LqiJ3LDFRsG41ݧҍ>Wl2$]BܻS"PMM4+&V0lثZF)(}t'+O՞pgZ3=* ,B(C~Jihǯ hLT$NiBVP ? ^T/wn,N~ߎ+dMfKmWS)_Vc}~o|hYl'M;0b9hǺx~1^F|Jy]̶o[*/Z y -4?_=ns?nso+O)Ka^`ĞA5@Bn.X0HQ}y(= W*Ey"AUSoVȇ+sX̢z0>޸1/e.ji!\2S߂QhvuMme(rFY_Ie5h$ُ<=#E8zddt|?0xq"/Fj-Kw& $iMb_ y$'A9֙Sf¶!&=G!s\3_dk j0\Ws\zQtbBLbbHlqa- xhzcުDM18__t'Djssݼ P) .Y܊BG8A3d2e2xEuzCSU4e̹AHź[(#iWO'ވay|귖q]ȧsݻў(qda#IKpA݋}}n2g~b^xP{N_L$74]%0Y'O[]Adz,Ghb.Hy%I Jb.'\:qAZ{W8ilGUc{oF=.Vsc׸g7}Ȇ]=T#)qqi&)PWa|di6KTSdCFFX+6<Ps&jyX1ܥтV롴p( [߻tq3cV&xq ~ &SR<P 8r2י I~ :1kr0讳Ԁ6bʢPc5<,L΁!HH&$Cu̱bہx~rll,T5Z!.Yms梏Ot6 \أWv\|M-f3"jSdNi>n=FJ#ȡ3C(!@,)8RX?-ЌH0@*a9R#E, hT`Y?, @F.X@`!t Pǀ d FlZGb1$OH!/B<;C %K-J!E-p!?$8P!#j r>F?&`!h9r 0bpAa+P!HiPja!#R! &j OXVaU+!!!1H@9,Y4T2B0l?@M aAY74r?`dLr9 ̬ HI6OXٍQv?`~*?! &ff+Q[ /`ϯ@uS7 C"ŘAL\۷opulrۀ  JJ*Td`890ڛw>`xOCxyU0o/@ `nnn 2ఊQa!R:8 :k'<{)XQ\HHE1.ιaHRkyFJv'I5uԑ9H3H=uZQJA@@ 3EԸYAbPEVVrE ɁS#@zC _-7o&( -PǏ͛Mb/~託@-@ `#7,?bV ֔ߪ !>>>p~ \ ޿5PgO{PJcb `F"Pp,%XE$X+++`Td|e`t##i? V?YEdat0 ~V_Af/nO5h G 51ƭ p; a ~@@B"k H i? b `LM'/1 @pˁH X!E|4 c8}7޾jJǭ 搯LP̠fOr_W2<~׿d3a_XRa i d?$a;?N" _1<{ t70Y9wZ-0T7X!O?X@ Gj,FfPA  ׁ*0*.[z8 @K4VB 1FC#d`5` X'0g ?_ ??>p3hg`:c@,@lTrP|0nlj8Ħuz*/0YIRpAJ-(d?P10e`(D5sm ^nj?lN ?@ Ŀ,?A% 0X f~y߁9@X+$@\AOCgH$~CrB_~}_=a:{+1Z߯5@/Bk0  %Y]ݣ|Uͥ9 @5d^ܻmk3/2<ظh"Ȗ@%p;7ï<¿V\EkP * ߞ]pe'lج 럟.fmṟcvU_@2Cr G޿}kε`xu[.+`%{ks+|yl8]8X%#(Gpkŋw>?BWuw "8nhg_m?vSbf8v[>0\)3!価ˊgo?t'3Կd` Tajk@19Pvbps/ {W@SPFQ@vW΄A;cRA`-! @@J07P?9ޱ}UP:;DS}aOqk'?[ 6%dшRhJIx?ՑVBcQ 3[揕J<4tnZcWxbTOYlYA,y> ;س^s.p|v(cALWXFJ9RlͶhsKL.C{n/,(KzǘkMY',-(֍ 6zL@3,Dݽ?Ito2!ǯ7Qqnt8NplsRm{dLHAAa=eC;e35p}$8=3͝g;>{}%!Xjk͐Iy<zHY5Ijݕ,tƃL~ȨzZ0?XǬm$LaLlm`2DNK27O °шP/{߱PQ4GcVĶdoO@6lVx~ JwɆ1azO!ɥ'K]Z2+h$n\&/ꦎ W6+GF4xawTf%.tA v*j s|>7<]NB&Ҳ4⑧"H$b=hb˨@뜭jr[+Ҙ0S]NTܤjXIJ]  3\M[m|WCnCX8wkKkr41##\T8D[y3V)#LC%5TCXSҼ+7Ȃ8β-*AZvtaط% e-`ԟV h.}˞)*L 3S,[r,S%6O "_pq;sc2]lĿ=»Z񖸛0}]U;)\cHZP7WNYWd'+O9*`&N[ۭA\sf1d5YR(ʍAKgmZpΓJ BP |`ԩ#67ܟabyI_f@^F[h Z2 %dGvk9(7QE/;Sf^GP Dv^[WuϮb'@ 7i sxѥw\å`靨QboOoA +["߄x`zrȀ }Q<  TYx3::&5f`]ڥ r?JeBiQ̡ 8]ƄV mڰe=APK NoG1JOO%nuvola/32x32/apps/edu_mathematics.pngUT d/eAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bfd$J!Й"%E? P?'4UQ̿~fi3 X~g9+{ABU# _10| oX!/&ÛWOڿ ^" '&:ßW^b`b ZdُP8X;:O@@sH|?q/-͛ (:i$6`b``"𗁁E\G }y @_ *,@3l>`] i P`&> +,u A":w<88GP ?%%Y'%$$@ia $&hL@ `T)(Axݷox~)" t|NNϟ}j ĺ0€ ?y_`? }Es= /7nL90-@-2:ի[@ XpeЉ@ rBԃ'>C;r ּҥKb||| llla@G}%ㅠ @!Zi 6agd<4g/)}ϟ#|{PY >-@Ч,\gaeL66m/| J|| le9h : (+!ƺ"(%*X!d7l,J?~g8#Hf$'T\( ̍eDjq+(3~v?ess(@bq$/pi &EnΕjZKV+'"0ŘOAoȅ4 g>$1 vA=Dev߭bfF7 F-_&ݗH dy&hK y"x7As('bY *nkbr zNibdd6.} G"ZAu԰@|'CCkOP^4\ ݿ}7;/?%;);on 0" *4 >6 >TN<=k~;)ę?9ŋ(qA_o^~-B.4HYrc MpJ)ZbK T{Ç \ w3A ТWZ, :аdbafbf'KP=hxx"Y߿/ -@,zh0㾺kBZu*fTc`7 hbTc6kHH+3ʆ!5Gs]< |m Eo;R)LIENDB`PKt91ߎz~ 'nuvola/32x32/apps/edu_miscellaneous.pngUT gUA]PQux ViTBBXE Ț$,J(H$ׂBA AV+V I eQZmō$ %a@Hcf9g3s&1!Kh1I̱F{ļ1`ؑ[#!/дl˜#yR>f0fA, vVR#0L> EF5AL&Ll* Of wY-ueC) E@ч &r8YL`oE?~rq_IAVR .O ge4-ƻ(0ʑVd3KzqB<"D!;aͭ"@}嶰FSf/ b1,{[)h@~ŵ&o%κZi>fY˽&!4*E%IͭeȑԝAV- ;{P3`{Xy5_Hs.bX"/Q̫[D=[k7 [%|dG)Ş/;bEF)h3@Aup2aM728#:րA_7]u{d  ,hFhٵ+f”/˭AhZ㡵53HA`A1/0Tp" 8lڑcX#KW(a?ˡ p~ ȸ p0:m{s!sgZi #s%ħ\睽pʟ -o$DJL2g<Ǵ"]A[_p :xu|k:n[ṑEAqmG^fMe&?.)b$NWלg'L*5eX -td(YujxCˡ1 Ua+$Y`.dircxlGcyGkk;[2+%{t)-k S *w0ڋaྒ)\䇿א0S[w Qu.S2 U\"$"~kW.oܭ kIX!6M 5e( f0_lA.D33V&ZyڷϚ:YF-e=?&6PF.B)Nbķ!W}MHP6w ;E2IrmqA_mkokm13x6]gл ȴX65"qtc@l,4PP766Oxu} r9L3Q4I>bN91UCDO_SKL.ߪŹҶgKSf~]6U~0u9LҊ=&m>' 쿲?74==~+|7CYfjlbhb{VVnPIۗmR`K=GX s.~9!Xlgv0D[IG݃/Z|꺜ނ8vl\>+kr}mX8aGU#_y3=~])I,%z{9H+}擾r)37mrԓ?=K%ڔ%ӕ;F 8S ձup]ܯH)ǝv 5O&/8TQ)UTVͨ89Dҭʱ3R"U(@~_3& oOIՔ2ȳW^˚Q/ Twq|-bqz!]=۵%9S{l/ӱ_bEU[Fk&_ɨ(;#bmaP  EK:d&&֥97dpn#g?M^Ry)Hr] My{FU:"M ;;qO33K?\xk"(Cax7Hhl@26ŸcF ]TA^pt#霜{j fB &[ņHuR '凉m۝KUsShʎndWXDȬnve͝s|Sł9+U'ʀy  sRN(P(0M|$S ×[݀LN)FʔG0ze,Էb3O2bX8֏lҳ5_z0"%렡_O4#$*~P(CAqbnEыPKQoG1Χ !nuvola/32x32/apps/edu_science.pngUT j/eA_PQux {\_"ʫPVBj`4JW hmӲ +RZs塭l05tfVhJ4xGʉڹz56[v;b5-3󓹡Bv@UEy&oN&%1=u $ı)[JbfN>ea!{N30F8" {R7MM$;k8RAȍ-JNFX=jYEʱ7ҩ{ j57(K8d8+H^ukB43+Vy{{oy}($@oGA&".CS֟W7CrjTü ˅*/0ߨW|Uс aVᇘ\emu/~CST^g<|u@}މ=սh//XlctD|sA+6e^ޟ~!$wGF(nXX6pGϐX74l/u.m9y}3mܨ׾d4L"}_aV0l+ B=䶃smYwK 3v6'FX[u^g{8lVS>=tf@=S([BKPvbB]E2$vH]-Uq%ϑLCqt IM&wI' g%dӖΦwL%U!a2hyRPb,:<}fvy, -@Wj[/*ae“*F_I}DY*kͪV`Fjg[Qo,E U$«ՈΨ{y}ͶTG8F?p$$D(<7S})tPt<ɬK!)9s'mG y2CV͌}z "Ε/*x`:i`vҏ[$T1Ez b8PnD|_pX?QjYyD5K9rwJ;(NiXE9,Llqd0xBuc叧QJ<\K"m_-0?9YŰwP'';H;&0\,wY3/I8=3;,6MK!%|D>ZAd4{1+a.j' LQ4O.mx5Jo!>|T3P쯱;Z"=;wF~38#mvE|'QAvn}EJn1瞞͚cꦇ)†9G 9V^6-CFXËbF!{91I?=( 9j1^,c18Pih=kaa-/(3b'Ly0,x x+εdҩ}QuXM!W;|<&7[ԨQ55, sT8s\ oVtRY .m0Exf0mA{m83<ڨ!BsYFpqr!O`A5?םg-]6 ,onCzY93iON=L< հDczDu$5Ck܇e pOx506upTq/K]z)&Zȣ==Bl9NdF V.\RЊ|Yoz7`ї"]IwB|q$mV0`D1^!ݠ|S$>|r,aA׫uG"̛]XoByɢFlauڝ:_mÙ"=>B}]jiXzֆ +V^:T۽pF= XimFt@ll$P*_`2p&ȁ=hsnvk?PK .G1)w nuvola/32x32/apps/emacs.pngUT |eAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< [IDATxb?@bb`@,0###faaa//nnn߿ |ϟ߿}/@@@.+;;O h}@5@  X Lqss9 c߿>q߅(R^#888DTTT999^|pmï_q# FXjb733[x#GM˯߀) ^ 7aׯ_ PxJb&&&v@@ ?n @50W`vv??? xi@&q(d``ccC <kCq<P Gϟ?\M@? $**hjj ;vX @XijjjCÇCn)PC$W8A@E9 >{۷o fyБxxx vV`pfL# rrr qM+ (ɌHlN  x5=/"" @l E",p/ , E2gR ! ?we&h\#U(N?~ ) @G0ܺyꉵ gfx=LI*׵@  N)3?h* , !: iVn..3x#pyS^'1S2O8pWE8Ħ@,@\@ Г0?Âfu￸Yٸ1(p.1D3|k =fy޳ @ @RKQ+#Âc0 w_8j~0021+2y'Û?.]+ÁKo{odcnr]ǐUzZ0:H0+~3f ҫ1 ?>bX|'#7C4Cg7+(A 6/7@!;yp"👙7Y9k383~0e`escb,l*g+JAqP~@Y ӂLgMX eq |A ~}g]/1l;P3а`e1~P/A&T7r^k~3,~A!#ܐ?l7#fkw_3\ ,eydl|C#6}}5¹Ż|c $( 6 w1H2ؙ3LE‹͗pbVK%5UWSac^h}m#`z sL#o гw8$Lq˾O̊l+0lDwPa`総 , 4@f@awx=S ?;[o~ P?KNvINn`41-pe>3r lט= 0+I!n `cn>,/XD9X~1ATFaMY}34 b > ^7~%1.>1:D`Ý89xd5 U٠\ ⠌ӷO_~/+,L$ : | G.VuSU9͐ݲ7AO7JIO/;3`V# jz9 ?(\}JB16k@BTUh0>rygIENDB`PK *G1Tnuvola/32x32/apps/email.pngUT |eAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p gaa+b64aaf`ee```xL8@IaOW-Ytc(O1@cTդM-44$DX&,``dϰ7UvN&?ttyl?+@~" @x fٿ389# >ed`af``Zf00\Ͽ  ~A29 "_ϟ/ l)fO750T`PTcZ Y|p ^6` 5ll]=s@k d0!o=}5>#c%iN[ L@ 1}zW^>F 16?P9phpKgRbA>%%w}5 nnP CAMff~k܄B21.@32f0|4ÇR@/XC98^|p-Ϟ37/?^^..HЃPǏ}bPPdcb;J ӈ&0p xwج0pC8+P+#"Q rP wc7Ci!+&mQ=~sJ bl ~@3EЂFo< ;@ko{ΰ{UW|jٯ_oJCPYp 0Gw_riMB ?+1aS^} ?@d@a =1c^D;;YiE%PKȖ} )~K0_|grhyP2.Ms]݌+??|fo1@];/*8ԴﳨYff@c"X Td}|>x@>~DX/7_ > Y;}X9UrVC3O_8utJ_bfhjsbiP$@82n\lOh**xyKd1#rFlE8-u '\ΫW}(PмMXdظ?~ʼn|: MяA j"(bhK- w @70`;~IENDB`PKLoG1Pż nuvola/32x32/apps/energy.pngUT `/eA^PQux %ViXSI 4*!!(EqZBIBkmY QB(Y *(uijъI @@ n+"&@IK139|;gfN:c̞@ c%hcN9y򳱘3bN cOHz80b{~ =39/u0L 2MA&F1ĭ‹Vc>ʄ/lTQ2j APXtA6dil-Jpv>&@wfHl#QY[z;]MS!O,K(MΓS@ncYbUM_/F eNo,‹6nFLf&&d`]O6@ٖ1~OQ:7wG! qcfһ%\mbԢHyI.n?%+.bz~AlXCJVb9 F]h,G?O-ax*bR(^:|A^R,YH@?MnZBZpd߁.K: .wxt53Sf2%SA8CbY;(LNE` q1KgW]e ପ h է Ut)\=Px Ҩx#č|^#SDɘ֟(b%:D=jmr01 F@ZΖAn-aBkt-Y5GrW5Z|Mb d"ŕ,=V뗡(a0{PN,*Ԭyd7#JL^Y[kKSK:K E|8.(=FAWWD?ӖMmt}Y@_FrY#GrZ^>`0 !,5@Is`:g`5hFZh({[[[vZycd]ݤ4? :XLVCl51R8 JnkojiYEJ M1lnnϼ ɰ{*G%gB)9}nCWOE›gw W?s4&sK MYxFusAʧ'ss. Q/ XՃ2'>qۉ%%W\> N%kk Q7CM-=#3˛FвWf?OrDAh^J"u 3GQa4`?%֪<g eB5=Uyh8hyiqH*X ŰG=kY)NA~^Hmk+ ~˚]DadCde&a>"&L3s8i> gmX-"F@kwHE鵿!wg NT>[c , Ք WW #^,^< o^4cj@jѾ뢈rB^jHX}wUAѶtOx5@`t~zڝ#VM^woO?Hѷ0[]|d!<-m*]rՖP܇\uv.pDAJK ,Ze*º$HO J&ϻvjKBRu6&ȋg7h$cfLeT֖*R0>[ Ӳ?F}!toHCϕ.+,maOIW/o]Ҷ%;5gnTsps`O9dn4= H.4!VmL$oy}rAGjIjDjM͉A6wO"f%:Ogv]Y11'!/U u~+PKgoG1>.mp'nuvola/32x32/apps/enhanced_browsing.pngUT /eAaPQux V}<lēVҤ: ;h^ҨdEӋ![Ť>)JFu>89uƓ(uj_ "x@%J$N= >)]F !8Adx!ilc49CT4:xp˞. {~q3etr/ nk`GgM.fZNܟ%>Pժbѵ wkd|. ϕ%] R{ ziÄf6kg%`b7zG6[( yr9xʦxxp2oEwJ2LlgAQߌtLsm:mߠ:|5q A0sNEqZvRB*N1ʖ}ajE٪%#,QԪeE\VƇϰktTA,BԾK#gӇ~w/Xwr#nwvdbhfe~% ?>!U\pҌb\" wr@hm/+F_ ײmKhʡ$9HL6V+6 1@H2M 9lF*XF A. DQw܇\ gg 3р[C#ܷW"h1]m}w \Uo0d#T*j^e3[\gi `(E{v5QK<,a1tC\]&]o ڵyIvOb O?^oWHUB<`~V;c F yUĠ~TA-‚ML`5r͟ U^b?J0M" vojcFmE&UPީk،߮&z1䪹=^/UD/x2_}b8AªDv0LtIwPlw饂ǹLDc_ȍq]VX1 NZbvK4tn.A$ît[_!X4f)A;[Н!|5; lcā2oD_*GP22>v?H^T#ҞAgWV?urWׂLeA7Z@Ztl $ͽ߇K魒IGhجͅPnlٷle_p#[{ 6 Wx2XTRZK*OQEzDE 4o:iOSJ '3(RJ7{Ć檄끯) Q<Է1y];xm~ 磍Qpwnʷ wy{Ωh(/ 2[V#׫byf[:c!46k5viR&, З~ٙmؐjR;bސ=$@9~ Ib4Һ.NOI$4+f1:1YY,ri7z8DmW=kX\~zh\;[|q=-* ׀]h8"cX|aD`~iZ̞?5,H-,H'fXGp ~ͼooZ{WPK doG1x> > nuvola/32x32/apps/error.pngUT /eA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,0F3E201˪>f+##C(;#(dvbfbd˄eM* X jcg}ӧ Oj7ׯ;Q~v]i$ tN痧O610TU) taf.`'?~eٳG?~&d? p30rp0W#~~}nuN BEE w`PNJbIERr/ sq-fPQae`g` 92zŰbnhhk8{vѫWE/^03c%! >?1ہzssbPRbg`b+3>|~{ ' 8Iï?@KݻSS ϟ⁢98AA^k!??oqqѸ8~ښU^- @i;Õ ?.\``е߽c#8(-e:?h1ll'F#f`7r>0yŋ L?2<z83# R6Z @Q<~yx>\|L|| yu漼QByybc84C02gaa>ݻ ]cuқY & @ ܝ={&crаZ7/3X/g JAkH !;wf_zú  ̻n^ "?Oh(#0!2(< а۷3a@uв t5 `Κu +30,l #%0q`Z$-d8(Hz89ڶ <`b50νz-_ :^^OIəa>Ȫ33`cf;(8 +P(gx 7^-g-0![ /%5?'I `J LlBB( 8 >7{wgpHpqKJ]Z ؁ gO@ǁ30̿s_Si n>@b&j?v>ku>|i`~?cY WB g<`8Y勡8`q3f! Tf3,Q}/bf X1rpk? |a0q-EqĄ à(aafd\(Xٯ%0T(G`g`-- N* .@LX`ѓ߿>o /P#)Aae3{#؀!⭯/9_k'#K}_Xڍ0N`!?>@&&2su abr|Eg8,Ղ2, w@G|fI>:_334VYh@Lȩs{eB<G0  ( `!/&km-ʺ0ybBϟ">@4G_Yqѻw/x}۷b G2\2CBTV^:}0w=0R'NQ%/-|wii;^x `9mf&nP  x9 ZLP@ rO6}Խ߿{+X+// Ͽ3a {A1 @}:y:&c> _ڟ@ˠ+8 gS=| !%`hG`!ĉ?Gn2@p~[B6D|ۛ ^b9^gSܹ@Ys˄\~?m>hW @g,-?vs wxx~+[@%@R @ n5'RP -i:rb:Gnj9@- \1p8;ǟ?_z~?(^ ?v<ՙ9L߿730bG`5A_CR,GJp8G a>eIENDB`PKqG1m# nuvola/32x32/apps/evolution.pngUT |eA`PQux {<?G)[l颤̥B-!-Dnfkn^ߔ)WF>R}f$2}o?9>ysowݥ |Lb.^ (mǦX7ݑA!#8Px+dWHP𩨦Gsݕw،< nܼƯlIg(4C #>Xh@M25݊Aװ'R $YSY*R1/Iٯ8ќw^,Cn CSB_i TJ'Te6;mhX]AxBsT>~Q-f_܁MNՖ/r]WX^>EԛZvl+XM`si/6%u95Kuwƨ5}]!]]x>ts:$č|A'[R oRu~bjgAyͅ|Y $7b d%, ֔~ݹ/džk$d k`IE 2q*ڒtXZI{I9C=q"zBVҏ~aǎg3R %~[\\ї}+:=5S~^NKNl Ak}Ãre}(y9{>XCE˨=d4|ϛi9:5h:hr)0y]kL/WlpcvEe=˙ׁ*i>2ë哟nH Ji8rBr;Lb՜F ¬Bj]G\B9$_N#'ݡZ 9=8bB:;@aϭ7s;whG>3#tc@ܵYDOjKW{HUƯHӅ>."OXx&Iw"Ǵ#MU95f糢ߨG#qMoTu7ȡ6e;o.*67>nUuyi X,̠xŒTQ&Zhj2gw-@o]_+)3fJ`o{0̗VũgZYސ3˯l[׷-64_ Z.@Cc%-‘# tp8xtm <I 2H[>ȼܼrcAO2q ^s>OA;hVWtުfnT&OB3ymiu>n945Gܺ5G [;\JkީA}׾p#d7OqDz}(@8@[8X&@CC@XXaT ؘ6VdU˿@{{ `nu+ԊURv[ޏ(ݜkֵsxe3R'սvC(@=.)g2//ilD[Xفj#¸RCBp^`aRmdK  'TDP~=7rfyhfƿMuAxjy #'H1 K{;|ցǎ5ܓ+CJuf0ӾXM?eUR>?boODk(1#C-^M"_ޠ=g#uP=N=!-;3_i ;bgZ60h.Wic~:m;9ZvO;xƥtJG)_7wZáHUD oj3CN>80&&F829]'< }}}ya Mj-58ދ )U1DtWSN*@:@RHO$|O_<#p2QŽE՗gCB/mP~m2o23S{H ,!M^E]%€=xhqY0l3e ('1JtzI[!ˢ.>R6ǗQN)!-BcJV M#Ƈ7uNzjJ3QjI q&H֐[L mVO_#ٛPė"7Ǟej,1yQqeeꃿ1G-~rV8/wI%vf c"ºD ЂD8mBZ%\ ?]i]ER:H):tH7CXS󋧎8A.,lNpI)|MrK4"%;R@T~gMe`LvX_Q.qOفn^QQ&˜8qV!u}+(VA=38aI c^|0o%z+T `~3O^UA~Sڼx យ71Cs5HzФmX=QiIks[CI7N"o FG4HNZ"#T2).x\TDCXHL:d5Jx 'Kog0UXN61g%*5'ſZƚzI)[f䁡nxUS\oIYi X1i|o . pwxkPK ڛG1_Ȁ"nuvola/32x32/apps/file-manager.pngUT L}eAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@, ۀU00)b_ ,o9(?=ȰgV#( p:x8$]aPuM\l < B \ |l |B l O`Ni =B6 /nOfob`{_pG'/>0|򁁝+/oeaAl@^S>w)NNd331|t #0c`~4S~ |gdafcАk0́A wY!@!Ɲ7? {ٗ@-e4;fN.V/l@s@%A=XOx4<Jg<} u`eҬ߯@q@(I@FFٳgj mc@|,k1fXϬJ+O?=a>P*$10C1@ Hoo/" Z. ǂr+@!;?''@~4A UQr9Bzb .e`.( @o ,`džSM)x z hQ,rs3|?~``fbdd#`1d1 ȿ1_D%4^$}7g ,HXg:/#D$CC젔 ur@S̢` 7`d;Ts+ 111&~!!PC%$h='Aq,bnnN"f@ '6668 X`&,^#wONg'|rR@`/?́U#36 Z'(3 ^cY~jB`Ps iڇTi pm8Z5 g8o`AĠ!جv`C Veh`Vu06̲O>8ؿ~{~H*53_apg3A{Y9 !t,ӟF XpKd%MA?2~30r1,  -zˎL ,?2Hq}*ff`ٲ?/b f;Z Z|LL%{7AYCh6F& Ccpȳ|~@`02>[20 i;;+;o=CY9XE0L9XabÌ @˅ĀB9xLDz_/w޽Ƞea T苿b``0p u0rbd" dz on0޿ l^2nH🝙V_۹i4>43;A0gd?h7P ( [Š_th{8sfe];IENDB`PKwG1^8 9 nuvola/32x32/apps/filetypes.pngUT |eAaPQux VyTiE|LP&@-MMli6$QqqM1Mm0Juq$ޏ=ϭG.\^%B(5.{NQr.=[sq=%/ R6qkzw -"BHnvWQEiӡyR2E9qd rʎ`j+|;U6`qM|S8R~VypJ{.74& [Ʒ!,|%x9? (GBP}Y}]Nd&ıqm&1}̸[fA}x<Idɏ8[گQ X%OnǽL0vW[ї3yA#τA~ʏWVCzh uYG 4|,6I]XXX0  zHv7ͲHE"S8c8U3MuOJ(̺0njg3DCSz@ wQ,VS-;e]{!l%Wj=J ٩rEp֒ Yp;)_+g13TY؍8;X xN P R n0:蟘VWͦb)齟?T/A;@O{krN{.WX6Do&9ΌgMY|ƾhIգћ?l`Mo+7G?e"ж׼%06.giP…dC VYKwr++\sovI埔NIE߫TƯ8X%z3p|ai ~"4QJ-!N2xw%ZUbXD>qoU 0. i ;wE0#ܤPΚI&=kŘzL5ye*=`џ7ŗ Zjj'1zr=%J _S ]%fI"x+$K=Pnma`w4FhU܅LX&zEaZcWȳ5(1A0Ɵ*5FBh<??[X|I?3Tg%E5Z'|GxWIAk]2A,{:xXd_73-A]erM,୵;<&)F᳧Ø,픪*{LM+lDk%=A[;R3߹%ց` ߎʁ$lD!6f c&;` ;:xxe tB]mQ;>IOmOHXZd70-vL  sω:tMa}7lzv]i(! ovҖVw_ I}ϰ( jyBvx ʾ8|6;G@ޞ|<olc模UKZVSԼtzUOlM.m3L.IdH]uuR~K@/jiF\ʽR5QkKw-%>ᦜ<Ɉ >J^|J=I  &uk{7<B$2Ӟhѕ5FM&۬ZQJ!ߥ)| tR=u:6iCE{vǬxgM56M /M{濽n?tW.oQo_s@>OBrz`MWe!ai,?QN~\ţV$0i;O$I} 5zĞb"G*Ta7Lz|!dhxO-a۴>&L Ȱ82R 3Ǜ9QFQ1ZF +T&:< VyC-RwE'VuTlՐx>;=[AsuݗBߗ2w w{zntuhId|ז~<:C'F??FY͎Zi22fJ27ϐquI 6rhk`&xCiIĈWbpO܎ܖ=itG%acN-7dT΢;Ib6zNFM b^*w4Z9L"#7MٟD'{bn1ɎvT9 '] (xiזa~@䖨̂PK|G1Ft#nuvola/32x32/apps/flashkard.pngUT |eA_PQux %U{PSW $sU"DJ>x4j`6 %*Ew .ͽ!fjL\]656*cǭu mGcIr?3;9;E9'48:мD|zl 2 ̣lPc@Fʫ4H MF]^oPyeEe>إA8PV@4߻ˏ6$†˚n3W.i =ƔD_G}?%\<_i-VeM@5.叽9?| yJv)!ٞS907oXA?9) g\AfcMKGB@/fzEԩP<&a}dQTnj?vRF~} jf*lQzOz9a$ Fx!&*Ǭ0!~oO;m蟎K^"ۑD %+l705(]u8djS28`Q~-(jHɯle]SH/Q6Yq ovOBo%*ls쀬T% MV(ęC=peҐF$z d^ݒ&H`uLaiK|a;gu(wQǾK ^ 7ɐ`,YZ":'$`HhT3@+Qq{?#?ޑEe +s<|;%79̕O1JJ2x„CZ5tpn!l#ڜQ sOXsoKi:Qer52~Ӝ[ NP݃8P*cۮݰ7[ªhOQbO#&Yʿ_tteW`T8wPg) ~V|ANR$z[5R`r9B%e:AƎ<(vDžطڨ44n\$lM4Ul:H0]tJ(\Oxap|H$/L$ل}ղ^H#y'`%N`iaE-{Dhs ~r#˕Fk/*˓g -[Ŋsn4iY!UDkN6|vTr%l (- ٕ5yd>T!Z2_Uۙ~)Sf7 \sMsy[8Gjm3+q3^eGB/|Ӭ761uɖ.IW;N[Z"M:q-ќ_Z}jf>L_̶X\58".yל4߿M K纲n[(_f=# jUG#pA #72ɵf;U<܀,H =c~i-%<&zf _ PK G1xDnuvola/32x32/apps/fonts.pngUT |eAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<[IDATxb?@bb`@pЀ; 4 ̈OM,?h_#@1̼kĶ@*@xP$ <|BE:y2̿@A:7  %+p#?1 ,,gPeӑgep@1@栙 mPI8,.@A eWU`.0'1 .@*(Pb#'0U_ߟ \$yb;Y?|,D?8c,`=%U*/b:! *?6  0 I`wǯ_ (twFA`?O}d{ßE/()13ϠKmsH]~16o_3<;ߜʣ~ O^vibpFUNW?SIC??peL,L ak+[ ex:hml80n`Zf Ė$ b?'_Fv`~~AUq# 54*MFhbyĠ 8vPB} @ꤡ5Hkha--@f@h4w@ h`X[[IENDB`PK,N1)#nuvola/32x32/apps/fsview.pngUT 4mA]PQux -UiTS~YHd&QPT:-#VjBq,̈-%AIQ:. arH TBよvB`j$ ' &xǽ~w{6wW%dSLɞ@?x)P*it@QN^޲NJLQ:R*ST=3i E#h_ DTZ!h,peB6_*E@k9O#R!'>W!$t gtBtI-TW?ځЬ_Wh>$<bމ!c-QUX?Iup]RXg&ʱ6n^گk׷KůǙQ?x}ʏ xXtAI=>-W6mIa/b`lb֟; `j^!LO[FT/ -!sk5~@A򈌰%>J1ů1hkk]reWu xfOBHYvzl] 3wG8)j#G.D na@"w = D^^8+\݄IUa=zX>%_RVmT6sCvUYEIKoFi?Ec'O2MGH;j3>wzV0f8ĪPuzG9u5@\Ŝ;K9lij BDŰĭ fv`. oac]ﴑei@ `~L.E2ry]86ang*Ж#ݷpM}z$ƽ<29S#o9, Y=!Dq!<%]SA7a8D6k|N=z#!]LQs:2(ĭ±x)Ҷ660X6 'zh[0mў޾b#(B>O'#KVs"G _6|"i!VVy[ϽbO.!;;CeXNf_"筮;1ys(' R5h&e߃1?\XSg,/ 74>"eBm}%ƺ:I;>\A3bOjL_{ z,G8Wsxɺ»+[ gI7)/* (W{# e,zyj5ޣ0_1ȋJ{-.6!O~1e*9!Մ,xB 6/S5&xnTbWtvߊ BҚ2XfMr/ǩ z@:9$8>nC=JL?22DNf&Uw;kz B0ᓧ̼Ӝ} dVI;RT>ܞ r1oGiY][/2 fM yរ? }nkX~@m 0IJIؖz uL5:֜Z`Rɤk3ekVj|uvT1)׶\t!'QHk﷌c=_E{/h^'oh< žKkΧ9{6{r5{[~N1 ԃxןztՏKtT*?2d OVZRJDCa>b!!&(p'&𾀬wvI:PKG1uH R nuvola/32x32/apps/gaim.pngUT |eA^PQux ViXf2stqZYi8MSƥCzF\LiiѦdef74,5157ts?lqAPvևZ*KX,9СIKn Ej[z`OB̤4>*4Y7OJ򓒳WPCfqMaa`K(,GrJ%p&84DkB]@k͖R-fS{^?l6ռ0v*ʴ0]!JZ%=:1GDzAE{  D5!gwya<מ-5[ZQ6M5Z3!j#%=zjU- 3# pkcj/: `$#99bűԳNK'I'QҰK 8tgOd^&zc3u9g-4=hKC0 P5f︞2 78bm5*DIfn05]*ֿOU#“m.)򗸃oX ǣjl31#rطj>AѢV;cN3QG%I ""@lHE35 Bx@D~2 EzfKaw Z ^o۞(@?J[`0d&25 M%9]}I0}OU0kSX%,ñk.]n-{_hZJd6*x`Ѣ@ee%fD3ġ1_GOZ^Aa!boϱ"}d)=5uџYҩVpJ*h.]B]cPvz\{4h4` lV1:׬nf4yRנ:_/I7jJh0$R#%·+W2w/{ty@  y.nzO >qF 8\.qP?MuWwPlW͛$afxkv0UܞX&qáK?r;YE#ar̰pF}|YqG%L& ;~@KaߍXX'3>a:o/{0@6J @vSr(zu@AMyygI 닎tJ)b e?2;"}+4) 670֞1$NnݶYP̩S?DJCXD?Zf"W*"xvoXz3]HV.)^-VZaU:dnehRi0+J]<| v\oIxEncƮbtXMd6 Чj hOOw urم_1$X_̧kBIyh%Г"o*ȧ] g o3'&UL[Jv3c͖v l޽}nκD;ޫ)B pdd7&s'J })TfvџU0&/q:'$zAخ(cSAW7wfi5ftcARP zI:EOHAsaj׆a &DZ[u ĸe#ಏ_xCkέ&kYjP}6 zV*Mцa86zci15g _xM^g}OfbɱhV;fDFt8?-)yoyDa =y]-),BVsC%IZ'THUfb{7Y"vEyzAj\c&~G|xi]C~v:*AT! 0#I9 U/䊫4hY!fr܀ UȓidC-a3R7Q~&5]$NoeY'(=t}erP#-U%ϗs -AjM|N٣Tb|EW++ĝ&CX40䏁Ov}l+w_'p8 FZi z:*rmx2?%8:W{wxEy$%{1xYZKՌ*UiD'Xr^\ bzf't愮/ Ǹp~>򈎋!z3cNУSZb ȰG@roJHz\(G& _ bZʸyEU(5me3fq:iQ"hՕ1mUyͮ+R1S`)א$ -*aϨ ^^Q$0Ϛ`~;{-^rI0"'ƚFk`wx,N`ۓ&׶M2HnEZSSa8HhN4؊JR_xlϒMC HlI1~ߢxQ̹E_+oVi JBmXB_:]G NJl_ʓ5Po 꾓`BY_ZقAutܜDHoM&$Xv6*E,LfTm>Z#! Qt ,`BK0jQb6@GuG:|?CA  fVE:d7;~(VpDa[B0!0X>,gjkiA`, J΢|7)atȫ{t0kxwcYu2dvXPnUxAi&Oǒ y$-JcxsZsݡ_N`;?[`fȥk;;w{YjMl*bܨY>D~,z}qIrH"=^,IoLAzr..g *"ߺ oV3+8tΡP4{ܐB+'i"DSB}K!n7t޷]3dc5̆ǨJ "S;BOIUywx-n5ĬK0;80#bG+gGgHv|WdJJmj~u,?)cicTQVyΣ'?SBNaidA޵iS`6^\Q\i[6{P]"E9&tQ^ Ew=d_. ܕ;2#%`Ͻvǰ<٠7㎻us⢅A:xLfd36|@б&E}#ϲ-7mzxj<1.n\z 81eh9?g e USh롙@+Ǵji%C"V&߻WXێ͛wls/h}b5rZL^㗕ZI |"V}:oRR($^p͙.oUlMkz]-m{[&Sr=z׍` 蟮1eRr#?3r3ʣZVfqNX(~<Ӈuls^j/Y _Rؤ'WStȯ^>, H woX rqy/ ђ-/m8t&݂Xgn G @vPb=G4Z"s {~U4Ҹ"5YՉ'UPbSjߌBW\g#hB5a{y|rI~dk/I"! .W2#pr ~8p.~Bzc44]_]7JCs=*_="n:cߑVPvGU7(T  3zP#aPOw#<gs됒 c^+աuEHI^`J}z[֖#mʚeAF$z11U$U|Ok1P.Jl%  pGetI߂JnV,y+t̎X:ߢ#$-6i*]Cd/U͗r]j &i]NPݠh 6H^BsÍS8RS ^a>Ua;w:7l] wxd՗$ZCw26GPJ1Pqt<(8m4A](g;רkZ&:rqgY&Io@l4zz6)$&͢my!v=D%]_ߟ(v8MҞI0Sj´j")]0. A9xB}-v.·m} C'M4>+a+Lg e-0X[`;lʘ`k{Z?I 5VidAӈAP_a OXR2==}TpWҡ0o͛:0Kx6fn\oCtWX˦מR wm'9'.Δ_! e;rvzp B{S5՗vh!5Q']$ӡk})'T#bֿwgS+VП4\fԺ7ff]%-m--8wFu}#˓j?83QIfn3QxjԒٙ;Wpyk>'oCYϊrmv oŶK7w5B[8VHٖ҇1g\`'_vسk].XY` ?ˢ'*h-Egܷù]HvJZ|Z  b`N/r #M&2ak6$hZ67`n @9w1Gy%n7";hĝN?~(;NSɁl _8lryePl2?H]fgQOF7( 5b\wh94=Kؐs1/).dJmڟ,b\@YW.7%u/~!&U)(sSEY6c+΃qP$ul0мJL䝯+=TNcPߑ!j6ufbTO`(puUĐ}r*x : %\ɋP؂O.@ɞCWNNf]tN7 `3RV5C^/Vu$$9Y:T_.Q$0Á\:vʝGJgBQ) !Ԣm*f aaIj,sr ٷﵿ-N7C~ށDe,wӠy^^5"`XXS1Zo"[(HD.iŽF+80JYtoWk?VOE-7k_Ym~YQ^#CKc[XBil"\ԪU@ʲ[. f2tlǚi(?(t@zޢ#5I(p%z+X9ߕ=1=JH.o+1 mۜL'Bdlj8G60fiC.*{Hd8FR;pf@/- :QYhj JdO CMrDtա44U`ѯw~WJL39±VKPC+jS:LdƖ#EGQu:D%h_]AMcgּzVɖ\H,oSw>:ߡrmX###vH zF~NɿYZA:9 tE%wуE]My!j綿)::㟯34'=AƠAp-TV3:!oDe ExPVJ2)!tBn7o d!-X[ &`UBo^ rFa b&v~mLC[~N(\kU;I)jEڻRQ $u֎cؽ7oP qޱF"z~huiϝ`0SuDfFc)/?T!/VX V`189[AT3ZZڭ1c2K^r2^st0AWdj -T77drx孇#tJd8o$~V&R9ݺu %?AQaC'æb]dE04}&5 9E lBT~~f1` g{1KcPP;``g`befzׯ/ k !$34 >z !- w>=[/(103020\ypVb@G Br L@LVr ý{^x7]^_`i`/#`\ %#.b$=2@} `I }?#&9Na~N'`6z*Í7߿g3XO ~n 6m F?e ~^n 'aՌE8 ;}@32p8 _ ׮]cuÃ?pa>}pE@`EȰt"#1L:CCe~i =6>: @pc@~' wv0hz/gx5ÛWf Uյ [lbcx`#$ @#_`` 9h`T, ZI I QcPs`0eexqsÙ-pyy+/=`{.`@ʁ>~yG\!ލ^pB`bc#Ç>egе/a8+bgP[J( j 00=МA] ҿ>2|rE[PAϡC0U;?ac`ba7N@!  +#P?I .|́}Œ?P6 7NN   Frk?9K}f6 XF]!kB-Ù=GR',bp|b " F/x䭡iݣ {7`XΝAJGJ/ X 2X02ܲi%owl͕dD0 .Mo[2Yz'+-TĂKA\A>ڏA՚ O_d8tÓw~=kX0(0@؁?b!Ԡc ?e×O_~Xq30*1ؖ +P~qQ1apׯ`;0C " M-6.NE@ an|t~M#Bʽw;Y"?HMhChqZq$Oޞep{3  jD )} @X$5" nzmIENDB`PK t91jnuvola/32x32/apps/gnome.pngUT gUAaPQux PNG  IHDR szzsBIT|dtEXtTitleMade with Sodipodi/'tEXtAuthorUnknown! zTXtDescriptionxKT(L.)-J_~ ,IDATxil\-mSmXO;!r擺aon16mD4e'0QtQ7_w\ u6lun[gYu 㠝%gRG;wʇ'!6tge}[~C[ĊIG};pUKa )85H}x6{WKsmzX.:4@ɝI0uȗt6H FݫR&{E#W,pPt'7&_B A$t88R,WJi\Go\hFPYS|;{-*{\/1tH/S&l~"Hr^3nV&Aӫ\H$(:>kMLC&+J甠NAYI$P)29`) D3YQ4P&f ӹy5LA@LPa:xEf w=RXYg`V yΦe0l :.# _i)y8iMWIr6ӰKZ,:Jl=ƳrtO@zԩ4&6X^ʰЖ4ؾBP ?N~Pe5)kýcCI'r61/L~Uk/c'1G\{zYRnu +Z@ SS'pG]Y< 2XCm{aD(֬j_[Ӷ % y0ʖ\>-wvUaA4Av^}yP1 ;\rK1jh#$fLF2%j1t0*pooGƖ#\'xCYL?9ןg˯ HUͭbFB"ww= JTf4;ZhN<3%q#0<S~rMu;p[HWrdj1-(oXŴSR#Ā *>Rt8"FS,@ApH3|;݂j ĂaL6skkX'XfdPj|j_SK˕VjP*Nܹuc»TIU58)pۆmlP8>g;,`9NQ="ܣH#rr9$t-h@Lq{te硫=jƮ!Q?_3"B*F|A/M #D[*R >!<[h¿XuX:fqg%LE 5Z, C,e1Wʹ-ɟF%_Ր/ 2># ͸t4iUz}<&%1Mupa3ho>NŅ>lQx=Ny,Iu|fz%n ]i /K8!\Բ}3"D6e9N}<4;ދL#(R&FJ neC}j% Zݲ<ů*t.*Fd ~>`= pglԾЂkfTy)aݪ#91IqC]`UdzsgVwQYV>5{~GKdUg:B:pbmmMUzXrb[gf_w#. R^l~GW޲J`X٘CNb'WG_1 luͤ;fH爿O易:{S0QCbltLH"1' &G$v"&Si53*c} 9q/fb%:d%ع`ߎtcpkв 8{X82$FNk'n\5MEԚ{((}s2^qIaR[7_u e`[X7x so2v2KojIėc*%5GC f{ęܳo0\bfn_hťv&[ES3XpE̖ğ*{6AZȕs b_x:޻aLCa5Qd-WD4"f 5$2hs %J˵}ͿK t)k4lǵ!F^Qm9LWgt aX"k}vHPg{jyg*HK65¦/Yɫ%e :Rx͖izfUû*}*B GlP@ wQ |7f zmoj}-0T0<*b&9tQbqBK~r6.㸳]Ӟ8$?,i6wtfʢ,, †^Rzkh٩HlL{JˏӈsU_ /4ױ*2~A)$o7e5(nѼ,|VF܆W9(XS{pWd\iMn'em(Լ9J)c~y =j!ֲəU*$-@Iֽౘi5wlľ8wzr04Lե5NR4LX5h<Ÿ;U^SҤVK*-*ѕ*-IwB|=) !7.S Tz4[GxSxx``@i9,)pXvU\$lb%z= ׵Rvlč`.C?>2վ_F[DB,zm&' zs7wV2+Za 2_'¶|V #|֪!f*@R8J"}@(Ҡ=c;?Ђ21ڢTS%'-d̴u'5my^!u_PEMhadы>C%^NpN=HT[bߴ}Heg:KL:2e1&G69!w):)YW%?Do=L, \,{:WZFN$D$ba[i!j}<3Y:3`pmA-nAR`a?Uγ n($0 J7uuvr.V *e5%*kgsDs090k!t~G/"P*5uPK t91y y !nuvola/32x32/apps/gnome_apps2.pngUT gUAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bA`ddDq4 q/r<350000|K)3Go'~š;c@30M$Po~8=Ɂ "h132ھw_X\{+!ҿxjt* ( , *@ 8KoX0sMu4? V'G'] WЄJI6[6VF_00|}-}X@ll,ãHIf`7d` ++X×@[g`&YC 5e^ 30uG7@Xt.(GRPk7?I2ۀx$xMU/2h30p(ihs0+?Z'nfiP=mĂ;AnϿ0*XBA}۱r׻O_X=kPU1Ã|B\ .`БwtCl , a@na`]W yàWF8>nPg`5߿7W_-o vE @ O{W3u}aq5 ]vg`c0^98g0f,;20x``kd0=ĠMȚ}Ĉ^rrOz0mS:KC=20Dj>1pMe |@ Lr }g2%Ï `6V#ˆ߾vm^k() ,.e2*07:r +0+3#o~ _2EQ0@XDݾr3 |@d~&|yDk3Q3C e9~a~v.f`L&8w ~dd?_&‘ Xո BԴ|U$D+0j[C6gt@!O73=qiΝ%B y[P1`q  GbF啲1x {t vc q0APFI{H ;cdEМL\ct?'_tc'+?8Cm *520B H^y`e?Í L H@wBBL - Oe8(283Wb`a` 4h:#`Ex}8T178piib{gZ}q_KgT :0YAl`<{žCߟ6`E5w 8T -#P YNpҋ 3}RCEHKIx@`E*_2HȰ w; Sʼb -j]` 0 _~1k5J?HEnZ|WV} _|bPvb`ւ/a4Abfy AœG /-g&[&;oț(^QRxXɀq P?(cf"O[~, R‘@η s0&LFneu' 0Cy8cfq%/`- X0g v`TF1\1 IOfx~K7t5@ @e^q2 ~{u0 3pf&3T2s'O2;o8*`=|  g$ qC( <$o`Y,,xY1x竇8 4D•.m>i.A@N B@V`7[d /+0w"1P Tz}[_bx9)ZD ICS~V%yOo~9>..` ,3|K?>_ZZ`DE `0X B/S2geV42~uRjn#b9@\$Ob(IENDB`PK ZG1+(f f nuvola/32x32/apps/go.pngUT \|eA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@b!!IHB`Çw we`eeepub`dda߿WIYOӧ;P%6`RV㐐d`X30 -/(89}J..v@xx>}0q⤟g6 =;;;WxƞÇݳWAѬM_ -X cz!ϟLͰm~X444@1744^cdpScxÌ-/83p2}F lll@ :gqqi B.]]Sp˗| Yyx zٓW=xp{;@ P$,99޾<|5@/8⑉XePRf_`|Gųgl{T!"l۷Sڷok$PYbR,D$ "t; c?dC`} T# |/`P2ZXsqD@?cN2zAZZh( j &hIrq IA)?1>`0[=\:'?Gñ .]LJP%l{{+3\|j`^t:U55U))q`0 1 | | ϿB9 Alf`V0 fX"C(8 ~6>} /3if&?y7@gC_WRT N#N' rp2kxNH601 *EВaֽF?g g\nOޯ x |mgud) ç/D'+7ׯA5 o  6a8 2 o?V<=!rEӿ| ߁jzo3ؘ3|{ 7ОǏLYe``PPey,ïbǯe_f`ZeWPP%@++88UTM4@"=Tlǭ o5Y~v%@=pCI`-=- v [ZRN:s^z h@1,UV`PUe_@Eo++Cp~cXgPU_\ 30|Ǡ/`m /`sOٚ ~>{U`tڅbX`ȷ6} ^ : gdx/ 0H9DYT8xY>~lfkn0xXƈxxϟ?@@`|ZWqpa$0`{`n`UcЋG/?T= `3mu1 ' Y9\`q؞Y@¢ =zDRoz,fO2lڴ)С\TyTUANw:Kn)y(2sPnv ! *ā vsGYXBUX&qk>:ԛ7ϷVX|oN>{څ޽?ܹlnnrsL8格) @b`˥K'Jf"׮; wB[2o޼y@rڐ Zz'jS]~O޸q=@-@>1&ȷ.24 C+K8]PE/b ?Ƽv d A^@zF_YՁ/=rr؇9?998"( b{ w^S޽ a`㻯?=*I tHr@,e| 0@ YvLB6~IENDB`PK G1Ќ, nuvola/32x32/apps/help_index.pngUT FeA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,0FE00331cdb`322eaa`|BQHPHH_TTׯ߼~͇/}{G؞P#L60_+7o2L}}=C_DAef߯_3|=v?.:l'NYߣ@(!??V啄ۘ3|_koP 3\`x~10 22(߹àv-0|:0}p̟NIay ,;K50$~ ; !|.QZīW};Q-~~_bl@yW20h1\>u]!qۿ'?`t>|_ڌ X5yz3 \zam'1ѽ@R<p2㒖oH?`|c.\e`XT%0ɏį-J_8P(20 bhΠju{*=@KB]T#> Lll y00vo PU4b_rCAJQC `g0g &ff??2OǼ O20,:H!".C?O?õzq 4?0l| \L w  XXYdY~2~512@SRALU]A: 'goѴ;n./B:U`da`WPf@{Aa&lFF0{ A~/0 =30(ـ)[Xqr500096{O߽{[Vi`w `3gd2 !&`,@u +(a?|W`?F , _.^`x,~<ȠߏefG^2|cfg %_?~`Oho?\ 1]GtQ`Y` z.} c5181\qa] |1Dw&NO0|T~ @px^dxcw 1ki1[Ǡ 6`x씰z`y |wH%PEieW^V3lX' o|43^⼼!J._₊qA `кpG wrLfC B@E^n|pd/" OO^``X~``"^^'krd@os[`q +@*>B@m=3af?m ~0\ *~[?0_`gPZ  0w=c "r xV ?RUaP|\Šˏᯣwc0911Irf9wv0e1L>gxz5`[۷|hJ# Pڄ/>G22__20XX>}K_2`ZXFf{DS=PXpm$Ǧ& {^xvcP% >! @ޭTW^ 3~x 7>C6d`aaඣ  8}}TR>ϟ6h)}OB ěH+J+jZ92H[13?5PT ,l L";ϧp~rߟ!1!a3gApl!'--+* ̢@a-wܻ^xuӗo~ׯ`f`k)66vٳgӀF@xxXY$8}99-٤8x888X>/~~4̛1~ꈈ(..f[~\[D`X)13)c_XMjaV` `Nz{ \`5Tlw32DFF.}vH @[D$K٠]e!5$5~ˀGjj9P %[`4WWWHDO0@C ؠb8ӁX HIt|@=0R?ufZ9IENDB`PKG1K<R ] nuvola/32x32/apps/hwinfo.pngUT @eA_PQux iXSGo!p%Q$$V4X\nЊj-.Y*HT,KZM EVY(b((IY7y·9o3iS6p5ҿ :'$'Y6ٞlͩ%?&P'z$7"}@Lr'҄m#"#)@b{y.RR(]5ɛZw1 JQ#hWR :?[OT/RwzB4M߽4EOO8++KH;RNQsQ:p=&Cvx4…m Uf03|[K$k2E"ykKbJJZTBHf"ѦvyF֮{Wjg oڵ#~e.Ʀ)5*;ҖSMA)$CMQ:؋RE4ci!pZeޔ~bz"+dBJ$I'`o@rK1zJUq>nIf([Q6NݿdC[nIzWlE6tuTs27jɠ瘖CHs%=bR,M(D¼&.(y9]Iw׮]c濾G٤WKqyW[LqRjyݗ "o/n '|P<+)) "h9-L:=Y2a-SC`u*LnqBpW͜(I=ȁ4O_i1iF>&lFtWwgiY^,~6=r-MikV6kϼ:Å)5 #/<:r~lF)@8 5=g^%diBD5JE-GMQ-Qh0뻺LKzV БI^D0;tcή ͜B?!?Z6Cg2 DXhƼ~ԏƺLaHUJ^2Pz~<;]2`g5Jr.p&CpP Jᓊ \͝EI^t~k'*Jx/"kJc".ڒ?c yžh]5,/dl',V+ڕ7Lz=Y99&ڽ;XO#]| X;+6a7ueؚU)^ ˠ=3N#q0af9lړ| 5 j5aOh<҂m󁊂S8ǀG]+1 NArc*ͳl`JN.]n'F$DA#zŸm[++b]S,A!gf4;͂\=vW6~TA*YeG=*?\'9۠)W֭bA+pve|Uq<ALoVj^  gm#CQU3zɱD=ml*D*gg~{SG8 $6%wsU{{1 σaUMmڏِIW. eF8Wẍ́̀Mm]̼xxV2(+Gx;?4پ6cmȻ8veTVբ?7.>60HYJ߮821 bbN I9*p&H;6\]K߳ſϊ^5 TPDGa{Fh6@@4,mT$u=f|z& ESwO FvwQʍ2BНGT^>|z$r^6tpY)K(v0CwC"Z SOdǛmռzl8%Zd */rAE_zde,QlC谻2)%eR7#T%</l(iHUd?h#gI:*?=;^qC{;xHrs s M=Kd߼sÍY[Xy߃F58֎'xX6S365"/9 ]ܘȠ̶oqPK כG11nnnuvola/32x32/apps/icons.pngUT F}eA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p#1MC N`Hz<#3#ÿ  AT*N 22l???C@qH=,Ajr,l, ֬cx/ X26`dfx_gcv^a e`/j_ w?Pjظ.dx@, %?~10<}=}%`lfxÍ8$ZHAv,tC V ? 4H , "B ?'_0 d)sqPhBd_( *P 2 @%0?A!&J(] H7nBxgn90=K&H͛ Oe[ C0W2s4[">kVȈ/!ZZjh%l역WSW\Dc{={Ϲs?nP6D,?!mHn3y[yp=PeK9Dt))iuGi~c4/AЌ+BH8rVn!BT*B tbbReB$;H] zӍ!CwC/*\ŒXtZk:S唀Wb9! U}p% Joqb.faІ9TܘqnjDZH8g1_պOvcQťގ%tZA_Et?#ކ/VzwW\.-v}Z7w:/4%e@2"R녽96{^ 2f,~@ :R{^Wn̵Jo\O=⋄s|G+].u蝅kĭm[#gt0l^g-.{\SΞ߭E?M_F8C-~ 6 Mkۊ+cTy J@ݢH?+gjJwC^:f6 Uu! vc{YԬoP_0Dݩ̳O"B ZS9a#y;Z} ;~B5 ৠk ?Qa ӑ=Fʖ LQܠYJ S8{{bZG9bWTP0%?wj?_v;_:l|D? %MLCQECha:R&{UAJǸ:r _kx_Tbn2T{"lX ڱQ6g:Hw&>0vrYpf؋⩪R].rq.Hx^azxNS۰i*3(e? `<`'`s`Ze7{lE:3kEf/RD:paQ={MyĖ}])\oFvi݈11ھK7/t;:_Kz2wƂry 9Ÿ>ٌgeMH{{HzPWwA:uۙ-ۮNvZn¶kH-qyW5Dd&$ˀ+ǒ]Tdd"eA>6N:Fڷd&WMͳd۫l,6f _PKUG1m"kynuvola/32x32/apps/important.pngUT R|eA`PQux %VgTd A$ H@HiE {,Qy"* +Jz܇O\] (-d^q=wws˙>z|B4Ȑ=yrZHq@<9khrZwxJؔ1/?w(2.&$&2DRs;uxp#ˤ--J/<[x^aeb^N<MTE~i~=[cc0a!D2m`Dܹg˽ZƐև_CjS@\?J~a{mf8~fXy9t5xSK46nĔͺ n :0 tA Jb, I`<}˖ϽO4X 19iK<`߮B~HSj׸DkrC.by%9 MV:} dDacAmÔ u6lU%^زNʓYC(H>$Q 89WTafֈɚuS="o^5^Av P`'dK jAӭYD]S+_䳥AgCCP 0&dD˗PPԗn<:*.POJ&7s5G`\xme%̉9-eQ`Fe0l@\nłuo heΧH݃[mA+*D&9U %#a7ohV6V?S@-S݀S} A b(8e9k*xsK>fڒ&9T:1޲SdhØ 򳳳 g>uڀL7xWҐ/[B5vxvY]X p'zN SSS2AѠ A^Ü˵.9&gϸ6rAcH\]^Nx .\EԜvݢb2JC `f:zvUrm4{sNɋĐ Ν &a"4o}|l(YgnP(p[ӞF^I;,ۭJ#o4g 6a&W(zH򮀭Ҋ̺ƍij|-C7CY%9vS5* ( AgJMrkVdUxqofTpwf M###D?LMH`I"+dÑfz^^,5+Fi" FJtFx;z"$,Ws<!74ˋ0ĵGs#`Cg'6\C ۵mX8,ƸOB |@^slWS,vrJ]ߜS6)X,(6NMJpTEA /0z{ %3ױo7dg L?~<<)y]t|EX4yv|kJ~"Y=::((f95Gh)ZH5kR@i oc;gASpߕr 8zO/ɽ3/Lf8ߢ4.>xC:ك̓xkTNԭ=uwoD]SD \;mFts{VzaL)aX"-jS*V:a>(mW>|UD!LLfxpũ~+!09J5[8d^ԕW%u+:Ul:&rxDN|$|A?SVMMTwpzbˡź)@֙Ky.vMەn1'wULxvw A#[R˲_LG]?"Gr!08>bQY͔=w?(Nd> ƹu`3Rq O-`%IL"uA$"WT4G 7Ȭ ˍY٤!4ebyfjXV)f*4IkiA_t7? ?.4=3^֒?^7PK G1WWnuvola/32x32/apps/indeximg.pngUT :eA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,;;;mm>YYY?@@5_211c<}CU|,Ā]>}O+ 0;%Դxyy9ݡ ?qt5蘙AWW[T߂A01`Pٌx$r$ԃ?2(S@( Ȗo -ևf.J lG7a޽ Ϟ?cc`ZFFC| VVV ! ` d+++gg??~< TC 4dtࡀ @,>߿gsݻw>~47C^\f/f~?/?_3LlcU itwfWp<12|; 780M:W ?cx?Ç|{}Ç`:/ãG@bbd`bg``: xx 1|{L@82 'O221: b@߫-d';ëߌ i7`h01pJz &lQ\RRj.Nf 020hgxt;JE^<@ p'|||" d?lVpXA },̆ ([4cKJJ0<}l_?;{~~>999`pq`(qX7 PTTb8[3P * ݼy- 1qqqpN@9%%ph0 ie77 +!s`@[bbb+- `Q8l9 X%bP4AHHK@8[DU1Ç J9ouQjnAq3 pY*CCCl/`"pY-@Fl@jkj  kZC{7(Rn,C=@(;]x` [Ё,aE AeM~PVaNNNptRP;= 3 -T:@3a-K|l}r7RAr{jAy@Þ%+ZIENDB`PK G1O'+ ,nuvola/32x32/apps/input_devices_settings.pngUT 2eA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; &ca I.,2\&_pjRjnr:rD)-S ,504D-|U?1"iN8CR :W`0AJCO02g@#023:u꜀[ 6d`/tmsrr@K~1 P߿yyxxxxT?}pPH-,@,OAߙYY\LMMݿ|uo޼}S_Hh&6/</4`},ΝwnݾKr ~`@}Vˎe>>1nne9Ey a!aaQ`Ȱq 0pq2J2r001˧O _>e)ܽу/\800hcF7;;s;UU v11I.AAaV^>>11.^~6vnFL ! @ ?}3_|g8~Ս=~|w7KEENZZFFLLo j " ,D L @9`1E!h(W_oo3p1cxiznݺ XU|%t10O&W/?#7$+؇00boiPcF`:^6I , @~3|zo?\L \ >>Q XXYYpsK~ u@i7+8ݻ} aS`f`ch?@ 9A?@W?_`Π ' M^^N{i\pP) Pӟdc. ng+0$\, @,"*MhcҠ2`d`gg- 3\ðjպKӻ( "emocc*++4`hC05 r#0X% (01bPVM@343#/^a8}Þ={_޽Gg?0"#4;'' 7}?} ,pTD@YMA0h+Wo}iK QSS'UKQ5|j*HֆJ$Gڵ#pG}<ы,pRpQ$Jn.>-j-=q"eq137O-ѓc<`w6<W8=XB-g6I}߇g-*eo)qTs;Mޞ_,ősFL\%שk$WQ9RRa Rsܹ7:C UEJA=>}HP`Ɯ3Z&lDڲy*}}gr0,r3ú(-}~Y;gsaԬH0"3ހ̞֬YS=22r{P_gc𿅗t$١{``!Kԯ6A.d{uMͧe[Nw{p7ͮ`IHtwm(:Oot2쌆0+qCT~ qtsyJrzx<65XW08i}H)axx怀j̔7}kHMTυ'|<1M233񒒒D!Am}H"8}=Q~+oW1 m/cHP@,==E4$_Womm]M~ꃪןӦǖ'o(3[ ?>vs.`q;hjVX3eUQ_AJ 4 YL軹Y?/uO I]KN8ɨBX8s3~FR` 7nҦdѴ*H1_.0ûDJQNܻN'?.`V_)b3L}"$7.ٺHyp$'5}PxC~R6/Q#(?ybByo&^ݬB+ۦfFc*}V?.yg ljJX0dqC FSb dN:n"Xu `5@P,ݪ4WPI. KDr:L2kT{jX" X\fhx)[V_8[akn8TYåuSDw( [ڝ9lHvi I)kLA3 `'C*cœxR9ZŘ_'֠ &ZdEh6}(rMP7P9j޻C%mA0 R@iPѩ!=w71W&hzc &sxɼ+(Ӎ<Ԫl%y_C2}$Fyi [YgD5=yԨHqDt k{QnU^} 85IEix[7Ծ #5uPo[QYiX!X>lМuIY?QĶ.ʣ$8x[WŚGaYmn< bኒ7M 9YY°9 8#vf>V ŨE!Pɐ8o7:ӝphsM:?Svoe8&Fٴ^U {/v8ƅ=ՏW]&,꺦#`Fu&PuwUJ I>ܲeK1ԣ"B -~UO, ffiNOc).zF'sQD}>_E.E3a͆FtS<az`A(?RVQذ,~_mqqΕ7S>vz9\>zn޺p^8zL8 /{ (rԸP=/ 0sy=fMǪ6@Ԇ'8[8_IMM-'\C?pmRX$boSm ^d2[O eng[~4'Am\#hDK~lm .>@5&C6rˇ BEo/,S/2䵺".PpVh=@ЪXG=D9dQaZ8;- |dq >x}d,kI}ѪRB)wE$XEA~A"RN 8'R̀k۰ sE+VMSI* ДM6cm`245&챍Nodgc@ɋԋRtY-9"Ώrbi̙#b< u-;F_2k +b0m(/@1TvwS~׈3PKG1?  nuvola/32x32/apps/juk.pngUT (eAaPQux V<߯>>lvd섒M("TD$TNґUwWKsSuYIʯQm?~<_:Kk fGOTZ`L[R&dgf29 6qa?܈ &%A4!Es86(!4rUjC\R ?QЧ ȹ;6s@ߔlI3MrfAȈQ۩ПikbM-r/+% CSq*٘s2g Ę?ɻ}պ5pz5H"Y(Gmî"N\#0Ȫ컾1=tdI=ELnn3:D:M /zh\1,[/ىѠ- xye;w%fg݆^! "Q8ЏTbↁ6#Z `U^~mC{-;CJhUqR_q(xze'd4!NQ Ϭ'?H=ǧ_Fİ g_lkqkTuϰ+f~Om#6W}>"my'SŲE8+:Z-9X=yx]yo%tt^plly0n8D_'D lBak/V\w˟/W.FTΏ*0#pn&pUteQ0D1 \nެ[ @T٩QtZ9Ė޶@ |oVUz{Rgb|;,z5T2]6Ѧ8WEkUs2avj1vtj̀AMTa( te sZثCޖ<Яp5~sч.gLPT!܂]+NX'Ok66?tDa?U+ɮ\A-2sFJCB u񘀜}7*DS4#[9Z#C 9<#w{^Xq_QftPݿPd[/]:`BVQc@a$'_X-O9$(ا6ei? E]z5%NNNL-?g?AtHM{ӮlaXMRv: Brm?WjPɶyK8 @#LT%k]uq[JH"pc >,kmVNu1y荃'@`Lј1‹dֽ2x}ܧ']:XA#t;w]Ѳ*Kw,iŪo&ן}u٣*m=| ;ʆ"""Ξ=+##ǐ 6CHH +;th߷_~P;P)_f;zCSSéSǀAϟ?5g >Z;  L@+''=.]f`fff T5?Pϟlo (4 O`F7;(2۷o9&%_9Aǯ_?,-- ýuv'O2())2xzΞ= Hϛ ۷[  0#<kkKGXesӬlB o߾fطo$%Ł?ݻ3 7}׀0c`n619sAJJB:H"jՍA]Ю  ]Dv~R\X]4MG q<˒!.ؕMO3n/wZAk ! >+|4ZK)t@4JӺm{pK/`<''إ>eacPg NOh:d.(A̐İzʕ@F(ߺ`![A_א_#Pd.2 Ez486`y y z , ~-#BBĂIP,%! EOEQqQ`@pQ@LE)`Qg+00a(֒R ?0/&E8 p4 B× ߟyPaޕ¦ H LnXy%Eғ&23D4r2}L\.޻'®ibM@瀿1 b-e L^{!+m)n@Q'g`dLLɎcbxr^]c`xUaϬ)STͅ Hw?6`Z`je 8v_HO0| "" Y wcW` !̀@Ί~Z9;ӧ303Feų\ŠiA>L (Ju@%t9#KyH2\u~c`;Ca W,퇏|@8h3˂W>)09^+~0|AX\ ^a:0z}X\c?QQ.#İA˞gxdPJ X589*ussTbZ)`zO L G͟ ʚ ׯ_`x_?0 l  '^aX`ͯ:p;к@d/@ȹylY4q;+o?1< 1p0p13|񇁋 R-?AVN ?eo , bp6Õ^nq ߀ @\5q1KQgX&p0SNLL ?y\f?Jo >;`U'Ыw0\~x+W>~} yޔó|o"ưO*ògn}} L@^~L@w- Md,ABR+ !ԃ f_lGt@LH)Ǜ=K.zi'o 2eGVpdeff&bPT0 R |" ax!kn+6l4zf Ԃ'7*~z=wAnt0ps2p3#0~2 kUq^aa.FiW\< MbxÕ3hhQx~籅W:;|`P*r`c`(d+0b`&JN6P?ÕNp!\>d8'AA70264:EfAE "DgopY2py[g~ynzz)Pe\@r0rTB6 hàьA?k30>=pM߮1|rߛ/ /ygoy`tr@@vpX8ld0??~pܳ_=|޷" u>@. ;$,Rͯ׀Jkb,ED¦&R+_|LՠY߃rD*A)׸R5 w @90Z_yr?@BoqSJDB)/vpz9sEv}h&?~k|w- B|mE_^SY{ jO#-sjٌ3AMc 9eN&ȯE)P[;z֨`;xV&9Xzv3^Q6LuhFrcb1mazVy~fZ#}dP^>2ős8͜9N:Ī)7~S2O2qC| %˒חQ`x NM,(Wwg'>{s݃{&ݴe0--eIjejIm+%a%ت~gnRUD+̓cjch!`~+_\bɗXW7ms .iOxQG$M r{ A^Rq!אpy,ÎJQxSkJ"ק0$1o~$h5ڀj8Sy@?|1si[pXg"X"3Z>NfN'+lTrT)*yS VP} $ 0= KgXA񬕨6%!+aoLh{qt_}la!WE<""*Le#VUJ4"1Xexk}N rѪ1}Шa*B|o؛O9ᵏD@6 R%c@c0&rwfr]?S}mqthEeq8f3n ZX/L4J:3%s`BDZꋝٝ$Cm|}IȢ0;SSN/79{*Yf"7[cʋ;?8l,)؂? jGWeT^MQ134u݇c5p!jp*h*Є`N€V@/l`gg 7'D"Qb,CaSR>Ld߈ť=~O IQR3@2oWۼ el^n6)8'Ac5e۠o5,?>fS}#)A$7-uhL`2VQxdVAw:jc_;RhDO)E& ^BGg'Z 2aNiso cLSOӟq>Nwҝ$7553,&@0W97j1i~ NQm]¶ " ՐlY_cؾ]);7?_hW^%)wب5J~<2%2 @:ԇҞ|K#kZ;#$ [4oSfvddLnve9 u6)I'zdn:twyM[sL^%YlJ_~+4X.2`neNlL+Oyۙ<@50:[~QRVpgmJc˕U @ vsKde|VT^3]v8>L.Ge9筥aUtjPc32 wjNN| >:D8' `DΎy2#4.d}dEi%jOTwDMwlQArI"G (H^ܶF~կj@hļw6غ=q?B\b+T4qB\O _Em \W[ ks_<[$2,,m#h.2JJ%J9>~ә2,% k'#JXNMPKԘA9$҅Ej<%%+@X&PEfc꘎.[$S'Q#4\ Lz/{ p{!P,z"Mmh^1]zz1U,pF KG]{nޠ̬2Pnːf`I|S{¡_N9`|Kbw$+YK.& 9҄5zyLR!a60&r)MG'%FQ,(V-Dfc'QI~={q8{FCY iAnQWzHr².(>X8='Ie{›z1$W|dSQk?]zKWnvlי4EbO]ùb+31+NvY JH P TJ͍w ?ߚT{U{mH|!#dM`{&1Ue%ovOԬf2ց~r#;e0.,,x3]a"V$M\ +)lCE67w7#MMŕ*Xt-LmcIO5#_vˇ|sP^'Ph]:pk+=#3󶕅Pb5r \Һ'`@j`Z62wEEA,؉@tG#S4A.af~Ɇyژ'1uD ?߄boa;&̫W3KJJ:Z鑿}j"JY1lYSjG"5M?6;/_CI7&M~3dgo~!(͝S3\1xhb[pk -Ngg.\+x ¯ءwewftrDZhZH U.s2 5\Vp5\w-RpEg!}N!RC>Ez>0f'O`-ڸu- ڱE bim?S+;rC ߖq{<TNیztba<NF"jei;̶S"czBBA[ }mp8sݜn$crv-}n]o#8Dp0o[$[0،KBJ@1#.eb| nP0b|?PKG1f nuvola/32x32/apps/kappfinder.pngUT eA_PQux -V{ ykKxgݸO~l5jC{r!E;nB;3JS4qї=Gl_! G.r4S뺻IKHL( \ɞ;a?`gN0\W3S+]@*殂CB>> M@<ٞ$n;N2S<x$yh +رRx!rZJзZdh|N[@WL ?ucLe2nj5_f0!W^o%H71=jJu3oD-B J^b}_zpz(&t13}1Slyp.wkdqecjQn6K mT}s2iS:g˪wfQ f J 4oyCJow5:ҳǿ.Z He=Jf,w/N82(ٖtb_!e8|MlNzrF寷= peRΤ;CJtݗ3 j ۇl瓸f_DWz#|tERW b㿛e#f}Lce2iyYB0*#6F9?n>u DEAAAu~W66bN<0Icbʥo?fo9%: qYBao̟l6H/>̑ORTm~< p>Ut6.P C8Z>D#arp|B/&g}o|cFwb,mөj#t?}omm={};Q+WA:WewOY`PH\OލԞA9dUd/ӭU*4ʋ%җS Jz'6'~T4jb`<:0wOVHbR* NjNNZuJD-XڰAq${P^ܿ} B?%%D"g\Ao0f6+qw+@ i5{w4簃S%W.ʋǕ}|/s[ne=e VhR-e]k'=>0 K$_Gz\/5LFi>S-՗ȅ.!o sPKaN1jwb^ d nuvola/32x32/apps/karm.pngUT mAaPQux -VkPS>I$BpBZS8$Iۅ% R` Ą!fAհHPMfbsۇ3Ok̿\?~zW- U%ڹX 脛ax ^YPqDV9'mNq(Vlr}Lj ۭ",7EVDnE˗iAͫvʫJ.C:D&^oq&(J $,%X^n%KN%T&L/?Zde5 :A:?EhdsK$ u*?H2F*!e_Xgv[Q -s*m|A̡1T$ ͙v_E[1~97:Q0\;MlBu`JXy؇-v( dC)Ar=OI6E x! r{1ly ѿggWOs8e~?AvNquF7asN(-ǵ"!^ GMw&-wBwIд =rTu*wPEP7\B 姥NN˴ӱPBkHKdpUw~"{#C:ͅh= K-_ɜC<8l(m551|NN))m{ !@UGiih\SfWIZ k~Vɜ3ݺIG2CH[NSdɿU!mxwrppP9006d=176d^n~Is[B?MN_GH>QHx^#j!.`^vA;&Mzb/,V&Yظ p6OIf zT`4Ui%s4{4A̞QHG7?p|<(O1恕 hHCځO@Y[G5OK.he^pSċ&f-Wʿ - wڕsDɊ`'źo26VnolȏpCPgɌ6V'<3s;)[g/f qVL\$>ImQc ܡத~:YJh (e>DdVߓڲq𿧳f#fRQk(IC4:]c ۢGhܫiQ&FWXdj_;$&fYce~/Z|T269̸DkI/ujKV(:ՓTCPhn<ے9m-KJƫKr5ulãw/}fΟ? hN 3 :N)_z,L,azz i l?`gbA&L2dOC~?#~ l>@*Zq ceaf/r s3N΃kD8 Xy` ~ H4CW@blx%Pⓓ Ν Vv@x@u?ö{|TοV] abX6 /EEEp6a6`ImeUuum73o`𗃋 s2Xaʿ~ H,q*/]kpAKQACl %XT޽|}=1a`q@R@VNI tL &gx'ݛ7E7`ɘtӀfp @%W`Qٳ7o?sO_SSdc=UfK/ǎ1pq (Dxy_'b+ټ7_@.\VVǏ``9!@} [^<󆍍A+ Gbt幁M.)rKT ѫWϚ>by߾=pq&Fnݺ.ׁ5+# Aݽ;ᬼ|O&&Q6ee~fFFV/_`,Frgr@?E{ǁ%og~,:5@U,0ǀ!TEn~_׀3gˈ#\pXK V{J KP6952u@3Y`ZrǏ>9u@5:`&e;.\Uu@󡡡Z #  !..lvrA JCC = e2PIENDB`PKK^=1; nuvola/32x32/apps/kate.pngUT ^ZAaPQux {8TkBb&vfhT)dG0Sa(2Wv\Yf8KJ1|ƙf?_ep8#^|RҌD~fp2wݫcڞ|;B@lą_qSp/aNqε{pˮx'e1 2 <Mq&L[1%q"J,:F)BM&S[l0Fד01RHư)P B xN_0)$M4Վc!6-2I f, tM*C[* i|~f5{Bn | ^V?)bg ]>rx|*%z[r6d`Hy⌦(ľ afNcT6$M::GĥF#f-0`w*7)ҊgH΁Ewxz)'[_.yyʉ|.:xoaՓx@UhBTMvK!UQPú0.͡B&ڒDbr`u@-%h!EM (:_kMo`5EG/xbC{C) s_B6T@ܡ\3H_pt~?+!j}ږN5wpbCWmcV"KxeGCJvy_/n,e悂d䞫,CpI#V4PTKAUUm=\+vv5@Og^%#lr* wkʊ(`\[0x;z5hcVWIyCd0Om m̩ilj]c-1c;pQ\;?/lGo6⿿zy=69}V@bRbVy^,kcw06rlɐAǻKQ\wHG'VFwhIԖ֓ofwsVBΐg ѣW~Ԣ{qۺwz-fvĤuѹjn_ѦK, 3?b}Ł~A"dwVe}C{ %O^ړwB2F,Ex\Fo]i~je?C5^:{y윺8=507焮fJE"+/;#zK1po߿{gԋ&+_J,WN5t2P"ÿ9l O%M-5{^09`>`R340fqx?˛7@G3n -|wiPK]N1#g6 nuvola/32x32/apps/katomic.pngUT mA_PQux VyTSw}K^Hx@PbUJ^M ;UYI^@EB@1QQ T4m]Epa_{9̜g |   {o!|jfPTJ-4Ii)1?:i{ gȸ-1Ǭ zzw5dGΠbueM̐lKj3 a${oK5H:k'AI#BĚ.%N~?x ŅK6 !k]g(`ܚrT"uL9KB,t?XXԘ|UpN7snج4lh r񠎇C omrCʵآF%$H`HxkO ! 8aokkg\~Y~YC+ʩIg2!=g;g{7@@ @YR\,W'U=A6Ky:u <-RY, !B;7͔jgeMsCe/U<Ҫ6[ !zuޒD~ԇFO1QRD?9+;2#Iۂ=zuzR1rܦǴ9wQ4oǚs w1+ިf*8P2J6JZbRP ؒ;Uߜ2O0?>e0Qvj );Ze4cSkWr5g\GW+?<~fk {]3ڠ-ޥliaB'-@__slSxFvpn[2-쒶&d}O#P4[XcV;D:qG:d`76e<\OCEUӹ{/o}y|aR@^'g+u)Ǔ$3M]#Q 9M4Dz/u _ q";Q*zZAR3PQ bn}A b%R<b٢Eq/WpXS/"=~ IWhIp ]5gs-Xի (i\< S֩st0l"vR*ψG=ļ !+&'Et Q&'g}T*+LآIz f/%گ7d >=?9?rҀ-B"P-T{x슌y3jWk'enaZ'^xYd.5(orR{x#-⿱HFE6+<㽹p FvsoVz5E02e%pYЏK9@<,IJ 5sտϴ_C.zIBr1kkccc⟆ ȯ1{ܗeH=oƶ:52cʍض}T邕ٳO]ܮ#3we+BC sRLwUd:-\J1a$k"ߢxp@Ėf;bTN" )E]64p){{DžgYWn8M8QsEWIűx r]rUm%p1)Q n>/{BEno|A7HܥF-L>gUo  C#*-0I3Las+8bWf`NQ>r͏,Pe.D鵽$itՆ O]IL$,}|nPNXA6 㴐Z" BaSr^vI聙]==| t\3,Z1Aٿ.]}#s۶h#=pp:^ )]#H4PasCVJUHHI aܷ&1 `l σԾa+#ZﬡtE' `ST -S= 1UgoI_|4'͹V8ap%oN7qEuZ<_PKG1ʹI5 F #nuvola/32x32/apps/kaudiocreator.pngUT beAaPQux WyXPX9D\A@BBP$D*$V "H"+RNEжRZx` 6YRT rx  >oo77s ` }pU%=*?yЍf3NWBU>}*u* 0#ad8^tH^DZbW.0 J}0:a"*$m9 Q OB-ѹ@U.3q6rIIɞ̢"ѻfF[1lb$c4;I vb[0[Q!a+;CCGG+&/>>[H[U} Ggr)Hi V*fӧ=ZNBV.w;{]6ܵ|py a lhNj{$}8|ZzDyPYI9v jʙ<=ѓPhCv{Z_7Jf = m[.}^:FK'aaw /t{WE"QIA f6"n=x}4koNjAn/vZBa!3 Hc8?A_]JVIoD5h9Dx;]4_%UgIog1G,a쩙'ޮt36fcǤrQјS Q~"O-~YX|}k;Zzԓhw\-EzTxZċJa 9];X7o ~H+UY JGI`ԥ-Cy HmUȋ NUf;HԊt`? e5[kjOx=X$yyfe3r IS-Ow 'Gmo% K̏"/F2 ̼@UhsQڲ:4ڣ7;x.}Xh.9"(tӒ[$n6yb7ds#R0CS֍GwK6k$.+=ȉ]qZeGh01cRvΎ>YJ/13B'ܵ,2־`[<BMVwP'ڟt--Uuq6% #f.oxzӏdIa{-?O v扠 bq:C3:%}ȿ{* ,Iެݖ:z#%\(7ϹU MN O^Ij)%5@H[h=y*௑25^%T"tO?07ث3`EbaFa{kzyGqɞjúaRQbW~m?~=v =ѩjŶZ%o)S+c B)s˚bL >Dc%-i[QF뻷ͩe-Sa5kTs,eRJPq(Vm}~jW|8Hoۼ/'s1v- %UɮcvME>"{ˠc~CX֢yc(dTX]p:ل#KŹPȍ^ee!.uk[+A&8Q:Q@%H̳qKPrIzTY<8m҈a-PbEy;i>?&@d,y{ϣ'^ nq<2dObTi52vfTc}:M3k҅Y2fjNE͎}F\/q&g4(o|ϕ<ёB4~H2Gkvނ-X.uKTUA}@'"1~4xw>$vQdcKlNg-Z$RzX1kM0|Ĉ|2  08bx33%# }׋?PK pH1Od9 !nuvola/32x32/apps/kbackgammon.pngUT fA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< MIDATxb?@bb`@pЀ; "R\)w__2|yṍ#狧 n2g0d`:Ї n檹Њ{ pfT&Q092}44AC(O/w[,  a .@vub N r >+0|bϠĬn HdQ8!Yhvm P%/^Ĝ*wO|(Bq69 |~AyyЋ|)DOu @5EAt!H^a JaKHZ$4*O.pϔGq\<'8Z\:+=H?k蚡_a>} ,!$6%F=aF~3 @CAW'8`!a)4/i_~^vܑ@E?83oסL:ac) S&r or;m?F'-n1%^ ogx+ÿOp'?2~X"0\ ߚ2<8_ O3۟>3<0;1 @ŅCBc˷6ܐe)vx>횦]ݐk+G))yL.NɧD-f:wWM\no"`r@n< @C0@4A\T ($ .2.ׂ{EO8F!(+#Zh)A,%aBQX5lGH#d5M ^i_9yx~ , &C1ܹ gx+'U L޽X-LX}Og38F1躵0<{ ?/Q5 t0 @Q&CD[ H"3DC Qb!@ x 40]IENDB`PKpH1ռ (nuvola/32x32/apps/kbackgammon_engine.pngUT fA^PQux V{<msycx綕ۆv%tmKwk5A%袒^Q -bCJmlm_<=1AmObIһw#.z~K "6Y|8tչ=EBNa!" 1V@ _wZI'C|^BRJrxGMVH(c!hG@M`FsysokpA,79̰1|SalhIiTh|" ׅωՍla޶~{=azie:BsdTlZ-a~XUPr`]sZ;~5ޓFma~ :~PVfRō\׹CMsh +0.W>RKBN\;t J@Hz-#esHD)L"8*^qT|/rUI=))N 9TSqܵ];:[s?EJEvH$ώ YLg a:Rs=uicvm3#y۱6L؈Q?uƲC'&?FDvl?8mK_2Ҵr &R)RO2G*yi>:7G{s)w~){$3L(R#1D!rٰ(" 9i[SD`f$)q@FCiu!Ӂ\iI*n1ՍCBΈrL>mOjxRlzuG4Obdžb@+uޢU-ȤHY3`HGK"@h* ^7&Vힲ y1-  )Ӧ\a2.WObx!&$S T~,`>5X[w1߬ Xp{/S1aj^'|'aruj:6]9m2 M@9?+碃Q`d;iv6BԵ'w̦eHoˑbnoIPHSrOԸQzG|3>_X{-$RY#ufn:B2:'qJ1@--Ҵ{mRJ)5'Gl@0T]E)-ݳOk+U{݀-9Y镆c٦l5~Q35`R& R ißn@(8-sKz^VqL_XInQFVKb067<9TD~]]v[N ϿpK)6q|5e5{d"MToj;'b\2VnXT0Us;.fZ*=/icuq=k2ZZ#.PX6Sw}~+5$Tn t@6Qt<]Glُ1H$5>ӹwOіP-%.V^ySVq= $ᇳT?Lnsv?=_")3Jz>~E)Ag T6*Ҽ+] #=*>-:}ھƏ,JNZa;:=jP&=2SzbyQ]1>qJ7 I#mp39A zu(Ǥ2+x QElBJ~xNxޙCifxòL0"=]KH߬N _|sq"5Yn{8?=Eh YMB8+IG"M < n՘lÈLӳ gg4;>;[ׯXDns6GUUpGGrD=5y(ȮJ jwlV7maigEl~ ewq5߅ΏgԦoB꫇/j3这л{I; !m#9l{jnwia£+t/~C;,E d–0a23g2v=Nwo.'qܺ^@.ܴf͏~_!5xɏuyI#ne_4X <E,3j𢡊/O=\D{h.pR71j; dV˝x> 'cLL$bdUWr!}$~n3G̓SVOjuZ48h/jʲH̄EY+憆{]*,ظ܄~&`od%o,O5]iŭ_yGPK G1JtO*nnnuvola/32x32/apps/kblackbox.pngUT ZeA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,p._ڀt33߿5B d sBVVV0fggg`d`cc*MMMsssʹ R 󧰰{ٳg.** T+J(} b;N3gGgϞw8qkk݈q@1,i@ߗ'''31߿p}t6͛ 7ofO:۷oq5w*))Y,vvvGbl+ñc> O>m:d'6.ˁ3`D,w }1( 6~:8MeR@ v@a8~|t}23ϟ?} +q# 9PȁO8p%]]] l)T\ 7 ADDn(>Tn>}2@X+@.` .GP\0AYV| R K\ w`^; %H | /(O#A A?G(W  GEO A7(σ| +` ?@,J4٪萣@C*1=GjXAAJ"X pہfn*?ߐ 4ld`B+(A & J AzΟ?q : ֮1RS@12Bf޳@W u,)((ijj}+PX(}a#Ⱦ"ZWl+|^z ObzFD`%&妖 ~[`J̾V/?vl@7+1}$ q@v:IENDB`PKZN17Pnuvola/32x32/apps/kbounce.pngUT mA^PQux Vy\Ʉ ˆ $LZ".Ed HhP%- -<\*LKZTV*ZIJE}hօ=d{}&uZ>Nhm=SvȎW$:V9|i1 7 w!Yy2ٲDYz>1w$]eX(JE`BoNrA, RK#Eyk奈=_q0qK(2G}[&c=9LU60 +bwr}%[oob%%ƃ[C,3i^yBÕ+y\Nlv;}4p"βݮ "UMnGN6s }/ #r~E7cLlYF]]öԸzW߂uqCWW{>ddJuTx$ݜi{*trl_ E@kMqpO$ETFgvoDvBd=mW*yZ*Ks^fjq@%^]hkQn)6i;{5/QRg泺5PMƖѳE-r#g3 LNyN|&2# j+E}IAkoѨs9o&i4x 'K΋/K :~B'խh랋DGsWsa醮Vq`'czV$-t42uւcBM j!ycI%^YoF?`T#g&Agi ?Z`hӹ'|p˻VLEj00_+zPTAO{G7XX(p) )j(γ˟,odBk~$_؉lLFߖ ]o] nNHrP1CC_fIǠvW yot<ӈ?8&klq#4<>:IDP +`Z]68̼J9}?a3X'j76Z cx\Dr?5DmqIa>mhl>evNP?hDX-c k l0=P$#Bo:6iJ \F0Gvry^ƹ&2~5hNoDϒao%w6.\`fW PXxH|M9*M60AO9.v"WIpi-+얦q_lP*~u:<>|߹ ˍ 8[ӞY'fBkT9֓eVjjYKtdp)(9n4VI4N L.n6ŢuKN91UE9E8“:Bn[x35Zy3 ~ e=_?>sYRVPãQ-D=HGiB.WRGLm13|W[-/W Ľ|.ۇ72=IѡH8( rJ6D `iv D̔6p<,3m2AJt#ݮb&Mi=[f1 e\f?kRaf))_s65`eSH=s :6DewJ.|VXjb7# %TɂU^r㺀GRZqӤhuln_c\#J)#rJ13h55aspIs{b@gvmY99?R .,h&{ڕ+h[֭lu^jk'@~R훌jttt;;{Pg= @qbbbw366',,(_ B @ #AsF ~  X_Q@l7(4?bw 7 M l~PɁ,9PF(E@@f),aG0~ !8 000 [/_0]߿3X B 7qP @a+ T?,[P-oy&@̋ÐP@ ͬPW h'<SWWw1CCE[r HuǢӧ]b` `v1cgCf@,$~͚5\D *˗Ο?Ͽ5 Hu`z @ǀ ?,jqiׯ{b  R~-={/< ̞we@ RB Hu70@ *o9T<@$| UN@1Nh{ @( č@ j>VDor.&@"5a eC(7b;&/x1butލ}#H3% ax瀟M$E?k0/ Ldc`n#rypm]KPQQP.QPrfxɦ UG|;_R2 G|R/ ųCJ9L> |oM,(_D# [j9MYJ(T6i9'm:b I^ݪŠGxVQ8"b( /Mі5 6I7}>]WŐfмZ ڃw pK<Ky~$qXxqd6MP!aB 餏Kщ5 P jP~4 乙8Mo(nk0LlW')άտ ʱ _X",qs3HڴIϭ^z'{+>jϡ Ak=RcJK y_bwiCROFU\v"í9_K+ƧN:)5s8hĮ~+,w@׌[ΤN{eO]ӹF~]n7k1^q {lGqgOup]f=^KŴ`[FO--ˠ9\zPЏxIY~YW"8EwriDzC+}RI .eo4rC|O.zre֭ܲoz ;1;/YOAkkkМ-\)(7JDC_?4Ĺ I8AƋJLWj/j73kyǶ"nn=0qX|M8 d{{+5.l4QA%%JkLnTmo+,HV3GepLFGmfeQQ'wpO̵|p[0bqY9L_})ͷ+5Ĉ\,?|wRjYz )=0SL锪{TL];}}@t:"Q|`Jnۋ6>wżvdS+fZR{UК5Fik1,`,Abwe cĭoEʰYaaah@ ]YEB% 9s"/=WL1Z1\0fvyѣE],K ?.If'_UsLŧӱ8Fʪj8D!V솛afz=4:~n39Wwx΋mKTK@-wD(`MMMeSŢ(GdyY7?͒vd9hLԏ!.S% zx)u:{|y}$0u8]ൈDU̜sWѥ, 7d=j^{*c;f1p mj鉭IUxƍM?g{V ^_iI%@|uJٯF>):hLaa©G3e=Ṿ%(xzsuݖ*܃btGk|s^\\KJJblN}Ğhnbre󧙇%7 "Ŕ2kg~ IF8wW;L pg[YF$# s?u/I?-\>i@5HWΰ=lѿPK H1O{!nuvola/32x32/apps/kcharselect.pngUT eAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb?@bb`@,C$?KI 粲2K33č c1bcbgO}&8,@ǻ>nUUEܧO$%%#A Q A 0)ϟ-eqӂ$P#, < % '0e03Ӆ1(z܁ 8O?Pg%p4@Xr?hZ͞4//P.@E<`z E'3X@|H0VC> ^0B D R9DCVτ!@,qr%(PL=  b&j@!x =Bi \cs@aP"S+b͆ pdaaw+`#>~+ ~pQ`>~|Y3n¨ ~p= `tyvPt>{X?ǚ#AMMƍ wF#V=38ލdeE_H(@@@U9([z^z0ɓ7kpHn5nAm7C@ &0d@_~t<;(~qݻwr⟘L@H (${ 3?} 7n̯B/.)޿ѹ> ~  F| naa@aa,` #Az_Ō߿3fr @zM{aa%@+0{ Pjf0ՕIENDB`PK H1w nuvola/32x32/apps/kchart.pngUT eA`PQux ViXLIIUf(P*EV%U2"REPg l)$DUP"e B!ݟ|{v.5~{hocZڌLxyP$qz|(xrTR 1ǢbD Sx;m;a Dr]{ ғ&LP iη9iЗ984 p/|X`s%rΔJ3GY@'\Pgt*%;{l8Lbע"k뚫~̂shaD).YBksBsZ Hr;6,\*Q8KRzusy~+q{C]Ҡ^S#AUCA=5*RR`#LܝkK)tv i颞躘rMAQ3JkqI0)M8z Ŷ*D/|gIllBO~B`:.=ccM8BnӠbT,|A[)4!-]vk9N~|{NAÄ ` qcdx29y?*wA1|UjuxV`J94dcs/{åoTښ?p?ʡSK259.J+2~'78ۋS f}eַ̓'$+Ry6gOHL߬5n~45WHC[Vs*q)/Ez+w:%w'v>3H|&5늖/g\룢EqetJD@_L?S 9cR,Dl;h{y`\?!:eXy&oΈbk花 Olm 3D_ m @ w[ҷr?=*~u۳B X9S@/dn#!R%ēyPP/QS5]-)pn>Lf2x*ꖛ.9#{.M:>,E_[!BJp$<.1=xޱрFrs1ݨHBi;d_#ìLmd߼ awH“ǀK mt4,6i;ny-aKM7padLKS.k7)Ϸ$l.Y J`1BYD00k$C%0}! jHsE"\HÇ~rxA,q:RIL*rh7z#[=_Cd㲙ouZ]|2z|w9j? '#N!ps`x/2Iej*69tN^"VŮ0B)= 2i^n:swS]u2Г\L^To5fjrj!!&goT«E)"upP3I$* y3q97qV XMfjBLL))%ٟ^Ҏ܏p0uЊI 0Mj6$ s>= lp?bg(Nyq;7̾P(P":K"鍃S.ij$E[":{"A]"+12g `⺛йxYl"u@鐰Bӕa~j,HˡrOF6<08a/Zl;uTeX'/=KIoyφG/FNb!$c]DoKjG;Y & 򴙧S\MICp`kޱNE' _wǸp*+!:d%*O=p[e;c;l??PK H1V nuvola/32x32/apps/kcmdevice.pngUT eA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X` //o0_nffbL,Y9ٙ0B 0# a`ׯOn>4ԩS-@?bHqV4 5옠i ,@9f @c8޽4 7H?@O?5r9HKi30 :_h _l?A@4h+'PTf/@))r8?(6 A9 dy%  YOBB`K  u 8#xf=/ !(*)~Vgggd`a&,dÂ`%Pǀ ##@GpqAKI-2ꋊ1B$ }!#1ŠPa *,TR @pp]ɧ" ( }Fw 4Mp'@+EExyd\ {) ~!*8@ α#Ξ@+EŕE 5/~')' M9?4#8LGʈ?̠(8ea;KR]MZ/Ï_LAA 4HTŃ 6c ))  3)ij(HHS^P e/ /P @A,\e88~@pjKJIB_ː}BK|f111F>%...Ma+YЂ@|8Ffhvv6)GA |,0 7V q&`A2`055a}.@|EPy BWXXX!@!%r}sd| %X3@" ]899^~G^^^H f@H^QQ,O#^a`afe`?_/߾1RxT cPAkA M@]u۟O ZbfTw .`v0-// v(H#C /=beb'Hho;pĹ  @7qs:çO_+f=2w_;w EՕ5tX#Z!$#X&%,#0$ezۻww4J"UhUI>(b!@ x 40c+IENDB`PK t91ߗKK nuvola/32x32/apps/kcmdevices.pngUT gUA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; cDFf2010[c9#;;XLiFLC0 '?}բϟ?mٲOKfLLP)QW\\\*1DiffB ,, ?g{f̙kFm۵k-8 099̈́Eae_i 2ï_jyaOxL ,<<<@3}8ZbA1#A 37776z x5gee9rI Pd)Y\\ ߿dS q<@ >UNX",?0sL+33#08Q$%%+ ̟? l:IbBhD?h%srrӓ0ՐC Pvv}^t?rO 6(=+0 @``kFNhߡ'`ȎF<\>>~PBCv@ /&$$(""to$!0ji?J^ $ J2P{@27>Gd?TqԬZ:IIee%`+ ^bAd6# &T1 ȀZ,L LXkFc@劜 *w0RĀpT[ZTu2(** JAQQ!^^n?~]ngBrB|Pn X *?~|cx-̠&&2|AMT?+@!9Rj.~p|j2P *NAr(BBB 0b}p%56=dl;ɓ.]$#фZp}^ѐA닟 Wgx~@1| ..íY !\/IH~Dxs׮5H k@,w@ h`[ze0IENDB`PK HsH1_nuvola/32x32/apps/kcmdf.pngUT hfA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p 1/$ L2|x0.| 33c`??6 ~2Koo. (Yf`𕕔rrs`&T?~ܻa2P+.^m>[6;jkxy,O|Xt R=S[WWfvVVpq.mZoG[!F;pj}b`*;%3Sl?SuO_`0 ``la`g_ G +K  |V[#_H hg(rp +a8 ʚ(a(& "~D3|:jf\<_^A8E˿"9+Rc`tm.<ppy @,U@CK@WMŊ%^Bhyk6 o!G2 !>acl O `1 k000330ppY@(I72_?~1?P1 ]EȒ x.J_av-Ý; @ AB53`Bu.#!\̈́l}(#@|@@ w?`xCwwMMЇK^<3Q)V) 1J:8;g87Cw1B v`)-  Cʕ ML0Ajf[24fpe· ENr33^z.Sg51BbAJ+ܟ3g~B U r~}?@c0Ubx̯̐wC䍷 8@ Xl@ Gs`)*q1*` f0e`xpe&R ;" .f"A?j ᅡ# `C4`?Gs( a e_ Z SFhn/1a&p Є20bx^y@800[M2-R |W4Y9!a9 $^}p_?X  k/3\\a0 l [ +"BZ@?e^`x& 7+3$Y|pq.3Fbbdſ k@ A61#NC,Apl3s0|­ b lL ^g L l?>Ż0oD:}|WI(Es$*88{6BNCQT0a:7FܠytQlKמB*Rέw2aiM5 + &LQ097TlUټ,xZw1R'RΞ2r0ۊ"gDgr8EBOO:2|5?( 1[IeVTXuBj ^d˄O^rw (ŀգ;[;Z5pkXvѿ:T=꽵67jm=χ{ n:8lm>]jyyu!{{s}-O/<]i͘j%}r9Ffh @>ME.%-zj94;9cz @B؏g5R9wVV󣑑s RڎϠa, wo\,FG#83>fe.66P͗(lJžuNAׇAtBrLl>돢pK{Cn; gTCD9%d1CBܩH֠hNݡ/|\cRδ:AI_Q ]+Sfl|C"iâ(b Gdy}Ϗ7[j05 )W`z\vΣ#,#Hm Qgo> ݸ!ɔb?l>%}?pu ::|e8T7(\Tocof /t!~^Zhm,%?1 1䘋P棈IVfK˿EC--Ad_\ Ӝيdgg,pq&Gx+mcIAݮbԾzf c\sNv(cS ,, y0WK^+7B\47 *UCOH¶%[S4-Pn[D#w}R>qu1.!a9t 3(sw.f'W(/Cr4"&΋ר6a y\fW@Ңmħi\Dp\~r"xxx(:l$͕s4 +zf|poCz($sRJUCRRX˸{ٕ! [x:{5I9Eng%n3D,~IQM7b ħEB̈́Ԥ|2%Pyb`gˍYy@_җ/65VXcNԩ- $v<$vhf|pVrD}Ma6 t p7;u( 8XcĂ8Q>LuӉ/[$\LΧ`ޅź]dƍw1F۱QԛفWMf,=~ҬRS7M!fd +8]ys˻kQAq@_}11g9h#-$ٟ2X7]hWpjᖳI\Ӝþ re!k ^C>!+J 3R&gg([\/(P¯xba^岲OVVLC"3EHY}iU\ nb3s)JH 0 gc>dnC)g̾|tbu7^lQ'nBx+\ŶAZL/^^%E2K:""GmeA %סfЬHh]bn+Sy|A1ps u8(Z~|QE0f~!y Vmp KvX:CD0qNb(ªU/ ͂_ zE}$c%NUVŰwn;Q7Y^~wH!K]R9rI{YUޕڼH;T1gpo*7xbd4(|[sQGB/^jouVԕw WZ\KH(|KKHsuZA'¤u>qcFշIu>WWG~mHu_vǟa ٞ]/^<^9pQ0 8&s"2N"@/89-^t=P]0ǴSƩoýr_q'd?ڥU {ٙ f~-^r2skdb,| /W ,wkW!4ĀwQ&ъr쓮@}92o]b=ui3oƼ*shuD${_8cv^\i/p s4\nƂ Y'T" ds|d[CB^{$'Ӗty"Μxp]nhL?ټDcZ0Oۻ-?=(\)64 u|;+ѯߦ7#PKt91~XKL Z !nuvola/32x32/apps/kcmfontinst.pngUT gUAbPQux V{B:rfy p(zNiPLSr@,zF&y叔 7!&/byl8wI@i% l8^[BDHq H &o"?H,NW;)l@)See997 |A}S|GOBA_H9렲ih'KHvGR5Q+o?Wy5V/"}:; K7Ҍ!]R![m>T8]N ~$G> :<Lg^bD^"AGބ {XٓP90/[xbyPOɀ(O(s$&J+ޫR}75-M'!"t!jbLI4+#Tp?*u_.+2-~DiXZ;g 笠]tf$z.,\+mU-U8.^eJb%XJǃv¦ ;ᾪѮMBwPPYKBx8kcF4$Re5|m:ح˛l?ҶV󆡡G)ۨkkSUM;T:@VJ135$q[-HK-YhW,gߙQ?&#欝!vkL )tۥRünUhbYv-O1sZTˣsm6&eaSx 5 \IE[6aɠ 6&XkO"<SUn1 hhVG-gwm}fT]t}/'cN&Z2e嗰k\K$ !!%-VfZ7]oN)ޗcI!\ŕjNbD\E0՞5gRwZc6FO2%$WvKe/֍N8G~@+! wxi~BHSCq b-8z.&uBEҙ -nLyxgMP$]j$0/krlhpB E٥֯Z{.T:95_x1 {r06lQͭkoŭ`/" l+p*A&zOKiRM**RDȋt,_0Kq/\h'ԹbtʢDsdo-W}u7cxf{BnFK[oN}ERgc#7mluMkxا m?1zDդǎ8471]h>輸Gffbzlٲs j(B8Gv_VS33޽Ea+mb3yGF}~ c Vt ')eL&:Ju,SY;dES*,!mvy=D8Rݦظ>$:4PK KsH1 6nuvola/32x32/apps/kcmkwm.pngUT nfA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb?@bb`@, #9߿@?03Qh<e`aW^y  `ggkMJJb'(Vh8Ȱ.Y,?\w߾2}0oޤW^5좢2 \@mr?P,abP`}~b``aPTa8{P7ÿ@ւ@,_w;3$ ؔ`YrDvjj@􇁅AD'˗_p3VM{5=@( N38 3|JPCd'(xa|P`CA154`J:Z1k@[Iv311$Ű1\$ 1Y  ? A|X1@YU;!?'o^3BHz@4#3g_3ct?|Y @4<_FFT> I!"09I}k0YF1| !f@΀"?#TT \\ b  H@ -BU0)qH2bcd`b`fgdXa ÕAXW hOhf` h1n 03e@b '(в H۠`SlbeCP .N\TZ0@ @LD+vѶ*@*i@]P{-Th(h6 kxh"B[63< $Z6d}ER" X" ; x#vmf8F Vݾ$ݧk` PFx-Ou m@!@k>``;£10i0 -Xc(WGSFNXL 9ua^^U~c ?xvsv߀z `7#bdY_Vx0CjC$$xՆ%ⰼp˩qb(M#? Ɓ_:IENDB`PKNsH1Fnuvola/32x32/apps/kcmmemory.pngUT tfA_PQux %V{TSw[[(Z%\D+&$PI ^PhQXVѶijIDh"Q k13g9}9sȑ%Ǹxȑ (cqY&W䞟 MA@HN݁a J/twooٳnLׅ5WUpN أ}X2ѡ!%{W0_*]H'.;ӝz޶WyJ<t$Ï%{!W̵:ǧ}1Lg0Ͻe^& _gYB&֮I:&}"6Z/xo}?6j P-Ұ^N h=&bn@KT^7X?P!6ě,C].i>v,x8؈?RSk$)"v@$9+ "[-6b<v݁.%lR}wqtc$ԝTQ$>Kt8!aֆT 5&)aϻvaJ:Rٍd$>')EC.Ľ1ofSXvHv$&B Kl!b2y(7$hˏ[D*wJgpd%*u-44:4 HP )Y{}貆ߌs0@J$y hXlLxpfy*.e;oW)>!`J28r%j|NTvzUOV4&JJFg oxmӇsǧU>Sz2P(I(xSj:3:k]S[ļyQc[pgًa?e/=!,M_=( 7̖XfXcیߢN sC|.^Hj/KmN@{uk;ɖmB"Рom kːRЫ2fEغ(?eSo+q[:" ĻJ/p\(C<:y|Ό `2rvs条Kf5T\-7*դVd7"Y;iE_p+R]e ϛ$l_+eT;eLȡ~h!'D`@=i>3Ur^F)f;&}8VQq碩3gA pA@gTpZy3YCCqt]]sڵtr켻X\#>,Ȱ{M'ڬw{n3"Vfb."-W@7"_iT];Uqbqa- %1*aH#jKliׅ - /5 &| !hg'5F;,ƟtJksg rrp m4%d\ʨL+F⬔j[OCXБYR"ՖJv?i̯]07'!t4Vh*PI SdT9舆ۜi|U|}:TX&\rEU /k8iOF þd!;|z`Yk3}1@c!lpʓB52HxWP5# 6mӹ9RBl 9ti[rTjC<,MÎ4Ͱ쁲R> Ql mu  T3ʑ, L8KėMբʹiw1yKSdX.~u ąrɩZ¤cvYv̗S€[JW4lmZU)qW:ر9ElLn +A1`f`TW&]Yq?v[ ML-KE~ }P([Y\w+(쨖X17}TO3IЇjݕb^(4ѵ6%7J^5j"z/PK a4`7@|^^^#,,, h; )m0 6 Aq$b`14C5BZ[AA#`>g`ff;@\\< ''/q x @>3  _ ENc:.Y np@au7/0^z 0鷯_Q7, Ǐc8 0!( 2hkk#?deV -74aზzM+0 _? ;xؘي-JKjQzaCjDoȊU}Qϊeo 9:b@(70x>cpvvkZGGAWWlQ^^+(cc`Խ`=X#åKeO ݼys~ɿH"C H "I/P; o@(xo8럿(|ZT50& 4B99 kF/#_@DG?Bu/Lf #؃} X~{>ïoi`ϰ2 ad),#?/{cߟr Z@ ՐO  &,@y? ƁЀ7h@p'sIENDB`PK #sH1bat t #nuvola/32x32/apps/kcmpartitions.pngUT "fA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@, 2?.6 b`cd``fg``]q1\;/3_߿_~ϕIs3\h{?  ƚ\9 ya1Gg/P;O00b^3L9SPI\Vv󿟘s,  _`WzTW>K" R ~ %V ƨ/*?iv/xa 0'.O+65ߘe`xA@DN ӋG^=x&` !`"f1(=:7ë/?bA(ʇ1Tfט(o3C߾C<tלgj5rֿĜ޼yc{'~8 Po\Q@0MR{qU_v6@c`4 LL2v~ |k@Gp%@00~ Wrvmxq2bL3K}ca b1(v=ux(YC|1ppߙcl;XYO;߯ )-6>6@X+GᗘW0jzKVvNCatt 55='\ ع=` ,>?#؀E0ڙlfFH"cdgd`Pªx[ Snl@w9WWװ m|B p.x'_  9#L@0;Э!9NVO!÷omkk`(7 dS}|d71'𓏟%KPcg'&CA:!3%H60,̼S50B9]MHTUx~9{ʼn?~{ xQB8Qقῠ 00?na@Ka ?3]/`8%aV[O(KYI?~-:?_`ARRŋ5Gl+ A!##8sqih$K/^/#%XCFCZ_? K-Nu-2BLY~/aȑ??}z Й?]8M =z铇=˗^z񣃧> bu8nMmӿ1~+Ajww@f$# F--M%%  ,-]Y* rb66 _r۷o_{=ûw^xG_~+?LJfNllc% p6(dDEDDUv çO@A$8(dd%A ^ׯ?4?|h4ޙ>߿Pl ^^.n`h@VI*m:"8qʤCz>$RCO0p W&o O} @`ps1u/N8ԩ %@!а7c@G8BLcep5`pw>4@ٳp~~ʺudd$MdAـ3#` H"AecZk;w`?c}D|TFǏoؚͳ*>>BAQQ`_q`dH.$ ^z =jլCo<[Tr aa [''顡!چpCA*@bB7в/` RT|…+6n\t޽Z`^Hc׷.wq077ᗑp@RPmH\ ߿~у>`ihP ~nn~WuuCC ' QqqQ>`(@%!@ʟt }Q9GE6 q ;rւڼb? `_?z `-zׯ׀ =P*P"0@!n T54 a8sgMb2 IENDB`PKsH1q1nuvola/32x32/apps/kcmpci.pngUT fA`PQux UUiTS~˂AžHQ< MRYRBHlT /!&eq\@D+PR!Au 0E@Lxo~o)DYY:[`5֌/eA2f P0X<3Ҷŧ$~I7Q8V,#q0"wfd0IIt!@ӀpN%>F)%Q L>W4''=ΎJo֕ɪ*d%[0$F[WLVyyE;ۼp@Mby8F|knH41V!8 U~ 3PY8mj%3L`3( ]ANCncgϾ-\I+˭>|ʯ7kE"f72rڒ<+[PiPcHyn#R D㥒7S ՠj3%nn z \6.vLV>J/$ F~w(@V1r"Mv$ GQZ\ֶ#Tvs-Ÿ;q?ݻsDG /xDǪ`hvikSbÓ}MQ/*e#? 6ލ-}xv5H*K8Пđ0帩M!MZ#iF_s˅@Qnt qϏ$ckUo f8T< .$R `P!2Cz}S C> o D'#[1{w)W$$3j>NȾJI' =T.w,ӴUMWRϩ>v~xxN-j(E(Nbj~?Q h_Iv4#,H C&Xˏ_~h@T~ " uFl tf!?Q`uPgӣRR3(RF7='#{m֥ =0aŕӃC +dezJkfGxhj:oˤQLvj;+i&gӏmbZQ08vᾱ-iEݣ[̫@y-"aeEҨQ]>,E${<9*4,F<ڒ\d ._ Eڠu5]fxevϢۿZ -=gorT)HO`:=h)('U oXzٞrVVB%5hdLeg&3!tk"*XRQUL_,+-(.ˈ U\޽Vm'Z\tf|&X摗nԑRwCHbo.Q8E+v|iF"EퟪbpJy)>ᴈ#1ٿI7j+gm 92HPh& Nt#G~ G; 7l,"M5\K9DH{{;󨳓y]m@Cfޞ@Qe}C&<[cH/EbUjt!r%# 4oXoΜzW=cl7T^Ԟ^=SJˠg-lqqR, S5nc9m[os PK sH1|2g g "nuvola/32x32/apps/kcmprocessor.pngUT  fAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p !##??0߿4h߿|F66tii : XHMJRRR 6m_dׯ_rH1 a3>>>⬬ _fdx?~|1%D@=eeCCCgϞ1<,r, Þ={_~aиID߾}c:ťOd۷AbՀC#>}İrǎ_hNV'((GMM>} AAf`e:a͠96V-V`ccS k׮}rLL\ 1NNNpz;vxzĉV#gAv@8d9 C`jqwwgqǏXXX| >`_޿fŋPիWAc'O s@t9SSr###o2\t k...p, `d1 X#8 ,P%\~`xb0f@pl)sٳg| 0???0^P, ϟ*(4a$Rkoo ]˗/Bc20*zzzv j:z B" ***`M CA- 5A pv ߂`z yP3'A.NNG/ eyA9,虓 ׁ.~:B)@S ,%Jl({y' rr XZx.paRg{Ҍ/A _ߺu >%6@+AXn177gPQ k A g`@pܽ\:דA2Ñ)SdB#pׁ9@| J ذ RX89>|X50F z1Z{ -@k)Oſ~f?ëǠ`  Ja`:60Š`@lX4,ez{1 /1|S`Y!?O@pp00~sQ W63f`j3KW2kZ0YZ0!t̅ yPRRb051a,n=|~COç KC1|x)ep! @pqGqiI/HQiI Tm454\.Ay\NA7 ߮f(C@O00^.00qjga>GAGGe: ِO;Aޑ f`c<-Km^.A&og.2q01xxx0 k aȶPSN+b`O vq2\Nl@k_UGL`*pw>3>MWO>QWeAlo5k0|Q` Xܽ`!kr {N[O ,<{;iil/\:ѫj.;`ÎF]|Yi6 ^0'wF 0~gz;QI_ l^1 g`x}b(J#vP۶Ŷ=phvP P_EKd۷>w}?ٝKW ۧ,'89Aֻ_]10$^xƿ^\ 71 5@@Y @ڄ.10\>*>+zw$G}؄y?zuoݧÿII\u/8y3؅qq|goѲ_ u- x 10g00-}/w{wwaPT" F@lTwWmQCCP>UX E]a/[D1<]:u)j͖>JIpPBbV\1jWm@v@hW@,EP` j<} ~޼PC?2 w @70DK$zIENDB`PK sH1ٖnq  nuvola/32x32/apps/kcmscsi.pngUT fAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1#@`d!122Bi ''O߻p`ob!5^mcc[?]x(ϟI1 Xȳ?GG'@7/^3ŗ/b AAAA "@(k̴ܹ1@6Q@,$:gg??'Ţ 'OdcVV6{`h,D?2 XHDLLl0|}ΜpU..n, Zhĸҥb!27yHY}~mK f`t0/>{v߿p: X@BBb 7obXxrE _;;(`߿ @#l ˵>-ooo ))pCWo2̛7݁[V-zK&I L *`!Ξ=ĂrcY[31ܾ2̟?[- o>l~|홋 cccA`&?K\NBBիWO?b ?~җ(gwz{|狡> _>}Rz_Eǿ8AiX&}u:/^<| X| -_( :0ܽ{aҤIo}30A@SӔz)S=<ly --8Qg?]t p#0|֭@'ڿ Pq.** L ?o>>+OOFyyY?ـb(AiP)PF ~ YT3 rrpIPFN/22& v$ >++b Pi@pl޼"+s@QQTT]~߾}څׯ_{Ѣ@GC;0FPgaegaacw@O'BAK25@>|0u꬗7.f]gZRRJfZSX1z?xOvPQ`󈈴g\ٻէN] b`ʆcff}}ܶߏ>]\wiX@ϟ_Onذ,G rdAPX#ƺhժ R,}8/tssj޾}e}  0B)$Rn;w_}O_|bbsA\\BHkDvo/^_ҥ*e8d{@0,,K7/ _qpҎs ϟӷ+Vl}h\ +@xKQQ鷮_Ǐ?`C֭hk_׬_MMs%lAitt[o~o?R{/ ?;AjbE\fQ8266 (0;߿oذ󿆆(*>sh@ixsmpHS:1bkluo#"PGCO vl޼sP˕1 Hv4wGF]{ضmP5 .h r4a'&~{6CT" kfffIQQ}?[FTB@, o)zMGvˢiIENDB`PK t91 #49 9 nuvola/32x32/apps/kcmsystem.pngUT gUA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,0###Q@ꔔ4ݻյgb mV~VWs222߿?ŷo21Awի2ܸq B_A]]!11&tPQaå/_>׈477ogtslb! ˿89Yjk+3|֙颬H8ϟ?uȐn&@t009s,Jrr ̬` "" 蕒f5+Q7?y( f>@t//?MMCN\o_+:w?|0+Vb( ((Hk.ZzǏcJ Eb Mf1,˧卡\ "`2<}O`ps3ɉ1 2@AW3qq9@ſ/0 ǚ3qr0 *""*4Î?z4'<FŠxd8 +2%$$>|kn`bV?thgLٻ255/6Q &&vo`\4<BɆzz?`> Y fee3ի 8A乃'nݺ&{'} J\))IsDE% bb2`Օ;h)OL, #3 ȡ ll܁B+΂Y 8a< N4D >y`ZTTr8q[7P CNhn:"JNN@+߁ }wի QAA9^48JdeŀqLT @߿Z[H-RRg666P;w2|{ o<_ P! 0~4߽{۷@ϟ`_Sl ,> @11 3iAp?33#PÒ% s qq0;W^3Dž ?ܠ4C`1Q@QH_`,%e,Ȝ۶mLJJ @p011spqqijsÇ O_pF_Ο? 1A~CA h0נ| 3Ё /^=[3=@ ""fc`A?FϞfذaՆWO:UMM/И[OO' ݻ̙[CCG'Tѣ -^1d.+€bA*yy?}t+p|rqǏ>]TT?jÇw.NP& G&LA`뗓gO|.xpH5s6 9 D'ǯǯ >JI[u^`П7p766QdSׯ_3y1I)mܸA@9)8uj;"((>%$De{̙3OXZZ/ UTfaTނheq䠇;XN}w;55u 58`D/_z$%ԍM!x0A@>>T8qĂcruK8|nmm,J,˂ @YT ?xT_0\pX[6Xy?í[70@(w03eׯ-&@CE-(D88y 66F` LxǏoى@(^^p6o;OA%"0~[?ㅀŵۻ, ={,_0ڵ^cBqϟ?._>>~ ۻ]x?Uϟx.>|ׯ?cF@!be ɧOw,X0JTT\˫eqNNe"P|h`WL1`!a=m&`1_>~u+33 (>}p?KN24Hֹs.Ú5 ]~1 ~w`U}n>sIIiP3ѣS?~T}޽_?o nݺqM!@!AlYZZ7u#dQQQ$ @;8SށIENDB`PK sH1L qqnuvola/32x32/apps/kcmx.pngUT fA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p @yX}׿ W2=x|z?߿gXư˗'D S?~}oX>Ë *\ Һ쎬I<~g`C݌a/]hv ~|"$|L7>ݍo LŠ&e+a#t(ò/G8k/_xlb!|dm2ׄ|uX@q31p32Hqؚ౷a6Ư~g@\".5u+n=| ÓV|?S.wO/6'Wuo 01a@ۧ8Ϳ ?C. 7W~o[F$_Nn3p(edsom^0\|Ϗ[VۃǿNo 0Bv,{hegfXOn f/g FF!fC1V2FIԻh1 ̺ Xr~b USeXpcϷ6^|ғ_X8g``eUgH1I@?_^J 6fJ _cXys_,pIW^{]/?pgOZV.1[B~1Kڜ]tf6&EP>KLq߿*?%+$ 'I[` ’?ٔ&8驿ggmXT߂';M;> L L0:2LBMdbĄ-3@K῜f:" vnLP *^!Ż[fۺO`f``F [CRb]& Lt l"5J:w}|YJeS9s5`T33dTqJyas@9[.a0Y_h_^P-NS}v_~~?B5&v=t{6R7y)~ T_ 2k wlWߖst:F&!dBlLڑy_:L=ވ;yK wۿ ɛ348_ZԵ f@aO^0s}:pݩ. _&~~ukϳ lZ~fd+#?A-8P ;v8: 11pWZd\2 ƁЀ  % voIENDB`PK sH1y  #nuvola/32x32/apps/kcolorchooser.pngUT fA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?2 @ÿ^/iV9n/уI?/~ױs}j'nba2*#Jy C E  >A?K\8G׽< (sx9(\/,*nc$~J?mC #8OgeauL,B" \ d-/ *k'}@SP{{d1p3 W03p0s21s0p3AJ?_ 3gbR4dbf0cv2//'_~102~U&Ff&f h/8;Hg/é;wxE \9I3;#Ϭ @ؘ 9?ÿ8X>˟ +A~%:˳vb +aH0sbxpM^ >ga숿 | ?dGqwψ&nEX Iڈ J2,x_ה =d`? @BBNX՗ /<}@c FXAFBf,̩h"O^_1(0<ʣg ," 켬 ̬@˅>pk?O] t)Av"] $F9"T3,{0߹` Ơ"p;o3Ip2]hJ0&"BN0]8TA@JВyÜsx.>z %ʠw10p2~E癷o &D&00⯿%E9+Tdd&n b E^}`dx*+O?x\yY D" ``9BP;=i753wY̠.u/ }` !̢ܬ ̌:2 1P˗2cO /00|p=+,pmec`aa ^@23 yT/a?@ ρ/`kY xzA[o`) (X8}:M JE0XJ;CLBPCK@ڟ32K)? '71>qo0rWWLLLb_|4t_G"Y9YOϕaeP|?@_X0\sa Vu{c@7A @,xj*\U 0=@+êŭWN.) 9: &<>gJV^ZO_y nkLlX9)+@!B/0Y03s1/^ؠhaN@`@>:Pç }b-Є5@| 0X3ڑ#a! *f/ꎹ^_xbn?NJI[0#o1yVde[e@]'5. "Ext2fLA|/NMpSQrͭ͸N)S`aeaax60- Wl eض0-ğ)iX<yZ'K pKD; ضd{<ò=w΂|) /_x8 (~&NtO|aj @;wH-LZ/2kUdP]jryw`3AL p~}fX4wAc Pyr.@6!mk{zaG@0J2l_vɓu;LhMZ x.f$jSqY`0% j@!ZŬFO$  =bhV}kP0(k IENDB`PKTN1 nuvola/32x32/apps/kcoloredit.pngUT mA^PQux gXSorIHBAH$ T0CUq0A `)5P@U HpTB@LIHHpyΧw?demH0hOS0ena@SoT'SNHް+DŽh&͉̉J;@Կz3ųc5}lV<*؈Vt.t9B@m3z.#&FGڡt% Ka-\ci1lBs fqH`9܀*=l{Eu x,Uzg!5.Hd}~mU%z ߴ\a.c,]s߂<;ryXlu(̰;Ё||蝝<~ dt 1U ^XqYԧeY P\=)TsjP|_ YF꾦Y Ew@ו hNz! "NO4~Ovv! 9XL- &]^0PѺ-F(^w:OQ0.+/SuY7V1a&:+dBqdGw4p:Шo<(z1|dz(s[N6|ޭ3[*2]_\ &{"h\kk7r{w[>=2yFJ `""ZU/Tqa.E,;}j ~0*$0(\,̚TV?ԅtS0Y}٢ikU4:ƝN@O:7Hw-:YdzM8Zɮj{s }/6jV'r`sXȏN3!av&.OqUf=; ;;6{x6IJﳦ~,!d[oDу X@偶`;ѥt~KBcn|gi8pp8%h4` 4RP[ttkg.n C&W[LTj~;k oj6(!Y7.)%ny hf-i6ɯCI(@wl{CwD Ȧ*"kFS OT҉e9}vqk qV*4= q7+wЪGW* ym &`=זDߙ= gOEsP|18@.|KۍHBty6'$rl{P@~Jf|C'>>q75o#9=Px9PqSO!p}qh~rzT7Z@w[|E$DE DTۖS N*i""Z#yS͹LvO1Qhj01 xm&&A 1G<X=Y46ׯQV0dz-x+W0iqm>R^vH!Ù=!yp0`T*Ej*` r ,wCƸRmcwJݱ}G)sE\soxL{dFJk%{iFȠGN8j{FR fg{3r;/(q( 1W tf.7sjAvT{H(M.I3Nm.xfqi/sQMabgk~$4$A&oK}VHEr&-C8QJ2eT\D!U{ĵa35T"R﶑pp+WkáFC3o bYIX_װكAV/A9Ifrte dM7:koCGWD,ãyַwȅt+*s5ajt)1gk7k#N*#!{%O7E_/ND\CkO(>S/ˌ`t 0^_9|:w4=>W tr%r}&BVZf|5X*J{BQ Q{83O{_mk2/4I\ga׭l[_rxV\_aNqf͟+{*+v//N&?e*X+%sPlJclCںRpnR( VBoh1^GF}1eN>a\̃N1M~l:{(-3;#oƭan8KP (z?"s>2v A|i2iy~Wp y#鐥"OL/sȦ1%-JN~K.~AXuխ1Lѧ7 xM+FN<[۳'.J؍ %OO5('`\8̠C)-ǟȓqVTJ xH`vtJb7T3P`(4S^z9Qy*@&ro[^u3Y dChٙPK sH1b) ) nuvola/32x32/apps/kcontrol.pngUT fA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,0'##B0Ɯ<<<<k{߾}P;;;EEE߿3B OvvvǏ3޽jbA߿ Ʀʊ3pp2}Aڵ뾻vm)ܻw[#Ƨ @ իW~wɓ::* l@111+(̞?ݻwہ~?~7޿߹s޿ $@H!09_;\7߾x20PYYaXwT̝;ǏᲜ̬՚[a㦍 @@ ׯ_zzf54׳~:wlZ_-6ׯ?@AL! آ]9$9@ittt ?yưu뚗^zR R@NƓ?V<'_._=yb?yV3&4YS3ݣG8^C^^AJJ@>|G2;{,P1 ~ aPPd(/o0 -ڿwAW._>{V?L0*1ȧ j BB"ϟ?y Il@И(#.7mڜ;?Twx> PvCQQ1 {'C7_l_A ]<< "@#@YΥ7/*|ɒ_.v۷o JǑs@ `dhO--5"K޿{+8@[K iנ{_)///$<e={nG#(*@ _LLԕ -..L'@Aʶ!!((( `p.qu ? &E@A9 [N ݻƍ222 %0?$߿Bb  |3J#4h֬ ˷k)P^  o޵k^e giqp1 *#xc0t#)S-_>d2C,@_?|x_ <{h38Aп _3-ffxv'>~p%U5m={0:y9P#TD#:"iO:777 33lï;~202ɓ NN f=oyr`ffґK1Sa˿LNaK bdFÂ>F_l, ~ rr2 |aXb-ÂyS^tvs@  6cbbL`ee 89忽^[v_.!/97_O࿅Z^1| \<1oO0|ya '߻Otiolx@ Xa}g:y4_a.bPrnkWOG1|t3 ?^a8goG~}6sU_~|in+@rpw`Q,y>~p:R@ieAufY1| h W[べaIVJ aX|M`s0;0wJuu >ex߷O+ 1`H޻gG0L6rݽk j^X30Da\}USjbMrlllrfZ>0G*׆LL@[RtX].h OV(h @1ߦ* Ђ&d7@ϊBqIENDB`PK rH1KRGGnuvola/32x32/apps/kdat.pngUT ކfA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; ""KXXX߿ ?8 -0qdyd5|@6@۷Ο?իvty֭^ 3;: I3XXg`e`xr6Ca(udógY浰0p뷄rXؘ|1o12xs'ٳ?$$$0(@,ၻ"vv,gΜVVP0ppex \  vlPF"-@q $H1ϴ``P^YVԀa֭ \\ | :L(Ɂտ ׯ_`14@,0@D)F0#8-T}`G{ 0ʁ7oT<6z%\| P.@ xȅ>|@jAdǡW^bhy &Jgi !sR8Zvj>AիWJ9 :Ay |@@4LdCȞs@1Aٗ @44 CA)Ab0_rBaQ@6`6A 50H a40G0 tnGk׎pss$`A,z>bgggx߿v,{BT,8,]ZD@ FrUB@Ry̌HUz]9Cw    ?CK\PZdw 8}C~@ h`#{~IENDB`PK t915~~nuvola/32x32/apps/kdf.pngUT gUAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X`  '炽?[_P d9Xv;i202H& 1pNj>d~cRz%~ ~10$ NH0+oadިj9Bw3cq##% okl `8{mǏ~CP*A94?30L ?ϱkڿ_C t׾**S샃>|8233ܻ}aѣ'zd?v=Qυ^  #[e`Ƚ^;`+_lS_@|9 6H-k꣇)s4 4_qh[?A@0~aH"O@&-b )iCٗl3 TyN48dCc8H]f<@s?2lp2Cp0 8^87@˭ ( ա>eBd0sH|bAN`  66 3<g y(2(G˙^ypGJɟ %@ /4JءvE ٻ[ z~`bXnͰ\]A/ 30[; P@| j8&`TE 4׼y 7SK5w50}Đ#C&P/0Y0\3raDv߀`hNM%. ~~ j\`z1 q0Hx2,8W =Y3WFm7"00d5>012QgJHbR:7072B,geF`cd`c-ưKRa6o!6} ,3la|;vu) k#9/P'}7N  # $G2@b} V_+>hrg2| P!;0ٷ@7?KRe`Xu RddXY23+ FSs`70h`8!!΢'3;Rr`>;?%1;w}} .&m1<~ OVH|`fx~wYe_Z2  ` LȞ\X0c&fV?0x?N1|5Ce14v_{ i`o&fskO?ؘQ30qh?TY+ ߘO=*QEޱ -`fyk13"Rރ4p'o" K`8/v{=/;6Pse~ÉǷ8 X KX=&? :nٝ?m\$յ l1&<7 o޴B5@R V$ 4?9lvv?5¦{op"?k1^" `ĚC8asbcy%F&5  k@/w@ h`XNIENDB`PKsH1.3;donuvola/32x32/apps/kdict.pngUT fA`PQux -}'qPPP ݵDpj/VI?lJ %xCn;~ ΀-H.!}f}`6)Y^~8`b-V J =ÓHzn}\젻RιE.am|ҡ8X /qA!U&aJ֭29aǤX~p6\'^P|.OVL+ JsBn UTH]-܅ӵbolhՒI ힶyc26X04dU6i5qpv:t5Fn%TQ)ho$ ڑy7{xկ+I 1F(a bZ%uAW7=NE=kxЬ0kUQw?0}},hRMi7” ],ۚ)Je+JinrVHNJ-B9Mܢ;<ԫ%Lj+2Mnf?t% DΌבK֏ lƇQ%"ؘ~~~\)?F^Qz=AJha0h7*G05 &=f.v vn36o`@/or0NKz}GmV\'Mqқuxp-qo׷"Cws&CwQ7ѩO)qn{ / SrKlP7n [(79rɅruτ\mr[F5~FjǷ`Bgud"41v8B "~OmE1M>⏦EVq6΍T[)r{2sM˓!I!2~n+;q3;Z[Ir3GX?т,Zĥ4߇7\Qma:ižw焚"T1]ǚ8.0IgX&$kS%+UӪ (.D-lЄe8kl9|rS5[#4bkTˏf Ȧ3X.ymm5+&֝cɪ%*8&0 N,6m`E2FTr&qu7trEҩ>Pixq^;]qri濯{jq 3[IԈ[Um #xV"7;.Ӿ׻"å7]LN`N6|> 5b?cPKt91>f t nuvola/32x32/apps/kdisknav.pngUT gUAaPQux {\Rx)CAI4]ɴUi^5AKeiԲK\jm ^ m:-Q|?|?OqԎv66EFmOde͚EbWP<;aJMHBɼy:7 12a q6*?h5W|{o6jahQA9x -mytP%˄Gb*. \kGmkC.Y݂ :.Zo$ \ET(Znu5xl[uCDmlbFGk՚nv?b^ymaeP?GcP4Ǎӷ ipj`k.\qQo Gwkd4Pӄ*v eS`-y 5=p{ #aˠ,f@NP4+=ka@() trS#"\L+bhR3zvcO+<8?: qfvE+tB/&eqeLNHW%=ڃ9eOSQwnm멢<|a7, h6 D9S{CYF7o7$jmhڧ07o9e_qMszЉC[ ݂'WK gKl_5 2w,I4ۆ=mGoI8&ZrR]$amxtS (B6]kt"osB 4_U~#>.CϺZdbtl_¶0hٿlRMlR=v@-xHҴjYBg;EAtBdi[.7$QEL hKXz(5"Eop)wBqQVZΙN-zɂGnbK29=*yj887%Gj@~WI=X a+G16_źmB!}־ 1 ;:ヹ)tzyH`)@{.Q> U fȷyo;k"G0D!,!O9<-rA \yiMa,YeBxbMJ-3nk]ዬeO+3$ƹ]DuʥԹxVRo)aq jdVFI5A>\MS==u.QZ}~ dD^/NVHuȓ[sMvcl0,]kV`Wv1!5=[o+=4ƭ5V5Q 5.F46?^%ހP~ʟ} e'VbUMכ$o~19 #@ +=_Oy s.yU@IՃN*3q|F_AFƄݒʭR$U2HA iaQ`( 93P<}̤taa^ rFT~l_OgOgYCklH):I ݔϖTTܳ҂ k'۾˷QOzB|Xh=1:!G?\qBU;q@jh4_ym"7?PKrH1  nuvola/32x32/apps/kdmconfig.pngUT ʆfAbPQux %V{<l"ۚn 3'˦N!ѱ׽98(ZDnJNuSCMDLZKޟs|?<}.; `mςq S B' etO/`G'(+bDE&5D6f@RgE% ,` {!>k$[-ycFfK)2UL!DZ,[c4&őt ,}lp ,HHjOOD8e@AIeTU2P䒐y=V*Ӱ7Gg; VPnY`&%D3^,Gʠ+ o;~Lh׉qɿpqco\`|j1l"۫3*9(&CkOkZE,VB!frJn098"cCh|/]f> bYRs*ͳm(c%Y .! hkTߊm33Wh›De8\b.$JAicσ~yR ߐH @C^w5BAi}wwʥ%R#]<1lc~ڷ yNCn]$oo/`PY"/ I>UC'tj҃oF;'v.*B)̋G2g?L]{:zN  13ڪ2C>2XfKsjoSI{;?@9ĦF,ʚ8nڄ<!ϋ#ԓΠH"\,dMWkKJ!qS|y]GckdX*470ܝH]VUy0l" 6:unSerҁ^RpkPse0)I{/kw+h!)㬭$jw*фI1  #'}p/mlvIGGPWS&fqeV)36\ WA=,q8iP%^ߪ6~Lߑ "DK`979j1k[7?uTqp']q#{'lmKɲ/KaUlTM(lkש908%qQ8q%23TOj* sf95;n=:ؘg')RURCHIc+6d-d_L&g8bVc\KbG`46MG?~Hs.nk?**Oޱ!0V9XFCAp]׏J@-VBQs:g'{8tbnߺɤìO@еˬsg)|JqΙl>'ASR8X -0A/K%}p[k!O@)J$a)kd$`샰zN?PK rH1zqaanuvola/32x32/apps/kedit.pngUT fA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?6@ ߁\NFSWlė  *LL2&zvaeft3X|&/00C@,|D,e | \g`uOoTY/@12ALBKZ/*AJL ngةW!8/q@8B$!;Hˆʡ .f01Ubxa9åR@8C@ T"T甛Egf b\l ?Lb}_ {/߻ ,=D7 p Dmtv 7 0|9a?PqHA?/ 6I W]df @ :3\9@=Dr6Pl,l~M?^`8wGGwH|n&`x Lzg4 iW(+~10]{P~x?9 30l|pp@$ / 7{TŲ3|5hߧV quń9~S`(_6S w"IENDB`PK&sH1 | $nuvola/32x32/apps/keditbookmarks.pngUT (fA^PQux }\R/JYyLfWM^|W.ιWjt^.RT.ײ)aXZ@i|=}{>g#q.$xwS5+|&>=ov {ke[sLN N*{'9 HNl|zX;J{6`C6F0 )S4St ۛ9@я:Mb8i.Tjxx1]+X HKѼJ1Һa1Rg$M e5N_'.n`jRZ== ;j Z?PCBKzFoVSF.7Ԛhӌ S8:vJ{xxpG x^ E_3}m)?j? 9*=QsjKA(쮅^z{ 0A7<;iQ==]I5iq溫G -j,C>cEA2nEe;`yxg>dXᕎdxir 3"Kr>^hغKm[APJO ;pxҸ+e8=;o]>1u\gp2-rC!V9GFBP_Iٛ>%Ghb%CNJ-exnkav6Sc&z"6`R6 zZL:)#UMp"j-M(3֤ W&Pݙ77q+,,7HnBh>5W:ġJ鯬 N|+$iSK^>g_'}9تj!mO6A=*pgLsKZj4tJO) ɗGƸ`N" uHH'_+VUF0#_&,!w,޺ 7bpsz.x?-?v//)_6H\0>ΈIy#64Ziz.,%@p uiOuAALҬDE+ׄ. V` E 9v1藦=ݬʛ*{,"pEF V-UVcA| 4.6DTKӃ)ٕy.}sy(>M?Q> ̯ .EVZ- OlBU9ujr-Ko%"N;!imψb{ k`L]k^e  )yॊb1|>tS~2gUOkJX48ÛKO0|07$0U uaw=1$щ;[8RS'Zx\b]8g pWLJAϚyzWj쏧ŽrOk#A(efcWDh 0?<ִ1g14 cXQ5擕["UfLY<2 ~h-Btmlۍk3 I$bg[>F4v@%9cs AzF8,Odw{XKӒ(r|?n[YC!Av|dPKt91LVjcP U "nuvola/32x32/apps/key_bindings.pngUT gUA_PQux V<6p~e(wžܱ"Pq\oXҾ.iJYWʷ%90qUlu dc>cH3=訰xu,Dw尶F_bS9E E{y+ ËgwF0~yL2p+b1 2JL`p|F$g@zfavi!~z*+TYW*[dQ=*a-U܋؃hgxTL̖ckXa12n>+8-9pLpHIozA!#zsO3rz'>h+ЃX|~-B5xZ"!'aږh(4^ u/:0+Eܛر)?В\5,c=']?NQOt.1iyo+ :LZaQxU3_7)G|ҐoJ#ڑ!R 9 |ӪO*ﰚC)ќF/Z82f.1(d z۠ܭs5xM u%;o<-r.41ΦEc6S,Y  \IڛN 1BD1n:zO<]^cbc-z _l'/̶%F 7BXaBQ&0hn >*!f]$bx֝&&T'\׷ifGR[l[ {\ Y%̋׾CsgB&YIfضgj;m#ђrFsW8U{j!>owkz-ygt7عOgBa؋1i5FHŝ43k QKvdC-:G͔ ,@W6=L[3MI zN⎠pse\Ч ±z'ImӗNV,:OgeQ oHi֨O$,Po'61氍by.c/)ަkH:Z^A>!(:Y˵xMsY-ajw_:c\y{ҫY%;̹;R9,=ˣKJ!L.GFݥGee9/A唔PR6wqC<(r\k+{ ghx&w/gIo NE x! )0BN?q' &I$l `b0tw;00\1xĖCcJ_yiqb?T57yǐ7Y0l2FVhfRIa~jjUM%*DC!b 8ܣE B՛RIC pmE&Ճ,s + VBSqu!L_nOKAǛ6gQH|Kr5#e]@;&H(0'XCx%<hg!|M@k&m#{e\zݱ'(OuzA-Y _X#qIwGk>K߻FO\y[.-Ŋk+b7zSӕ2/\{׺/Oջ0-nfIDM139 #p}lvc`PhZ64eђ$jſq܏V;@a#e%mŶ}^)tY赋JeA#b֮;G~(;*^Oƒ 䘉uGdO{dNqL₧ ZpY)NYtn nW83zj]ȳ}Hp3 K4Fd}Fe۶ ʺ3I]kQGP_l78]u2DK4VgvFt|kP I5$kk8kwR{)4V)u_:۞Z2C0@g>|ƓG+,U\UJchaۄZw.qOmІ-/PDؽSêGq!cuO̅iw'^u,_ 4%&ý K>ׯH(4cz" FBP9z@^ nybE4;mlx.+ׇ`ʇ?=:#ֻ)(LPѮ=s\=ԮI۵݂08;1)K*`uVڮaܲPKrH1mA !nuvola/32x32/apps/keybindings.pngUT fAaPQux ViTS77f`$B}"(&QZ)""^(Z["ZA $ʮ օVxZBE |Fٴ[P,rߏ9cLNd$ȁ-x?2c Â]mY'ܓpdRt%9_E N]!ĘPc@L h|Wn;m[fV2-dzPh.J.vX}S?$igXh#^PMg|Uݍ7:{Dq㡙_<+g9poǨPƺRŬJ?2 6̗UT ON`8-ZB;agS".nFSB؝ℍK>-7$ζ46: (AnC͏8F5c뼮MKF~;7#;c/G2Fʼn\^sewy2z Oa E+srh'b:I&|خfom ڽu=l] ۳Ԃ6Ε SY9lQ{T"Aӏ9CGƹ](_R8![uQUUTX9Zj$/ $/vkݤ J!}ˬz4; 8_{:#?eh @eY<}tKP83IT;V =jIt0Dbh j΃OjO pg^l*2I2WFKQ^s%lXag#YSC1t%RV úJ{dTyj.b ?Be+w6+;'Əlar K{Yٳs(ɡٗtQ :M}K:JS{XhXhpSrp"9C.^kW\9) y(Fe, z;y iEAeH{Q!c'4P\D.wyJO4X6z|lkcC5&{hA$YB8yn,jb }9]J?gK!M84#%U[Xi)i/܉Ƒ7g9s[e'9?rxwh(㔰(-HAEMA9Su^u YOSx+ܡWWrd%% wKɳg j[\d~ꅹ7 Gs -FJJx-nW=tdiu*T!Ur({i,sRqOid.v wJlFL1agz sdv-bzi|xUrbL3ulCl&_.wRxMLĜU,B&?P},ɻiI ̧F˧?60GV)oq~2H>nUUEܧO$%%#A Q A 0)ϟ-eqӂ$P#, < % '0e03Ӆ1(z܁ 8O?Pg%p4@Xr?hZ͞4//P.@E<`z E'3X@|H0VC> ^0B D R9DCVτ!@,qr%(PL=  b&j@!x =Bi \cs@aP"S+b͆ pdaaw+`#>~+ ~pQ`>~|Y3n¨ ~p= `tyvPt>{X?ǚ#AMMƍ wF#V=38ލdeE_H(@@@U9([z^z0ɓ7kpHn5nAm7C@ &0d@_~t<;(~qݻwr⟘L@H (${ 3?} 7n̯B/.)޿ѹ> ~  F| naa@aa,` #Az_Ō߿3fr @zM{aa%@+0{ Pjf0ՕIENDB`PKrH1Te j %nuvola/32x32/apps/keyboard_layout.pngUT fAbPQux ViTS7#C a DJ*RZ P܄Ԩ5R-`u%"+tڽw*Jeoy߳.!m5\Y8EY98Io i; cm-ʺڌ$jRW3[UI$Aݳr^\l<1TA 60r9 -/% m J!Za WCMyS9rM^Wo&/-`p&,mI,E#: d &vbC#'E%%=gKE!H=$ҞksW(>78L$EO;`BBg-NB=5[f#zZuweMfٛ=I5WEA.9 y Y|BXx_ ߽W4A~ϬxOx88vw-w7ƕ{WV7\svSx~gr:xgSvR63X Z磂'53%{ΊS~zDJ7 Yg:,.(!4>t`5~9x/VjfEZ|H,RhU}2j)(dR UH5y>?DfĎ;r ^E5Wٛ] WxP'꿵"/!pV#ֳ6?ܼҕI4FqeP|,$1^dĻp~>JuRr)XI uM(¾ڎdpp^=;UZ1Wʕr\g ;/#;^It(F@ދm5.ꂌ2kǖ?JN3-<0_g}G@MaU7(yE[:|MGCl%du<̳]n1%-NfL7!jK Oj/UTkՕ0܌TZiY^i;~Vl$M6H x*,Z}dvѡ?d]%=?kV 1*@OS=Pj"ݞkɇ<ÿM_\vށ<lr֮fyE uL%Y gkU9=좘VE^;͓ $ G&lce\!Տ%%UU|R{X7F+kv0i7f-a/--I{ؑH|gB5+*l 5kcA= m'z핬Hh0:qКUeޛxq6ڄfI;|p2kkfV(1wK$MG\Tw@uUWBr*u18/RW\5+2 (Ϻ??$PXb;@!da#Ca-bS{Kh (`Hv-.107y{[`0OYZwB[*ϦB:7R({ۖ'%Iܜ +_j uݝbrǝ!2T|ۆqMGS0M lH+Ԛ?K@]7"PKrH1u<  nuvola/32x32/apps/kfig.pngUT fA]PQux VkTGda r*"!mjBV U"I.hƊYKU(آ . Thj"$d;3;NOMO6zrRJ{dNwA<.F8ye#K2 VID[sX$;Q ]+n-7 ''~&}m!ICL `pPV61n5.6p!wf7tlmz[jIR9x"[ݾ ZSDܘI7Yy]dTrXJFڜߍF}ZʥWlˆa|=0KN]ÓBTIZ{Sz^ҰY(igMp g! m9}z& O3FH.E7fl]6L:Fo"ɸ8eZ#O3c:;ιS+nU4!cj`Y9{]ueЙڀ-SOG":i2nx <&-B=1J)c؄/*T-(Mqz U? g7T}To6w(x Z A k~ڦf㻗\r͛4p+ĚAkѰVs"w{n_˘ҊmڰQl$+`/xR jvvS.$Q}}=,WNY,~,;iȑ[s8DlϳPb]);(afQ]=-8(7*zhB੶ \?rb\ZŤceÀ=\zTd1]Sϻ)688 .ld|y5\JLJCxUږ6kH$T6JϿm4 w΋kܤՙ羚EXzxw)_._s&4/2,ftsX%G?J/=sh,p[R[٥)X,\5MBɖE+1l!# ~al鎡  qS!ne% Ew pƞUCfw=Ƿ3u2J䭆f.2WG~}<᷽KˆeN WM7d⚇z~g'L1-D~-76eWv}4H}㮡 śÔ T-Z>yHfuSVޑ@0<,B__kDv)`.=pyņFd^ٱ)rfP4JnPA{ x >Y&>x. ;}H? 'kU\1J(-Λ@n 巈MO70i{˜&@kθ!,9 z}flϹⱧL~8z~9 \LmW /v֯5&m̾y`HkWtl -|k([x'oiRIPtqR8h~GI7%(A_%W?RS!HVu9PtJLq8D5K5x0 lKGj#6. .I?D4vx:ÕV4R:Wy갶5S/`wtW'|~*دua[2"Q?T?6PYo=LtԒPKcA%9fs:u"G DžH Swuq+t²QBV[d$-tv^dYh*;o6wtMyG;EWݜ.WN>Ir-6Ĺ+2 \SꉈxP$s[ ze#{` !|2/^(0o_1+T7f.xx_fwA#809 Ѫ0GWf>p.4x%D 켚Ϭ0kB&Af7\1s  !< WyF8udiKqWĿ,<>6#a)5wNnDvg֡r6DP$g 7;e40{P"o\8{Prei`{E23@:6 X{{QYv= X:cl:-\)'Q̣*c En=bʃy*t"Pu᧨ϲG(|hԮin*kly.1K7CRC;xt#eHeKEC]2EyzL=S" 'jq䜷=+~*ehfHaEI>#I೥"hCj[ֻ}mK n,˥lO uw\cF-ʚ9HojA:?&?/.X=#J xNkG3;I<>fkZh ĂN^k;LqZwMc-r4t3ׇ|G83  ͩ.,{; yIjBuVPK)qH1OH q  nuvola/32x32/apps/kfind.pngUT nfA^PQux {8ǿ;CaSm:J|!̖HiEt`igӓD\ƉM~e /w7ǢWQeDv)-a0Gݑz_OJLb:)=N1OPi7wt'!;"]#/N-poJ=&jAd:2I.srI)(\E|DMAP'"ARpbD5nqd^1}vildǿӐ |=k|=B!L IgUE ?r.ꃿF$&Ž Z3KZ4Qd':` s̾UhқMdzvȅl;8I]f hϕw< &vbf(Je^@3{X_:j0 WbuR 8æQO@oBͲy'ܡ|7WQb2Ch&R7-OY|B|rMr\MҺl}LɎS"=AqoY4U$2cqb&Gμx$jȯab~R'54?M3?΢+C$+d0oo7$sH㮜Pv4@Tvdh>Q% @bw<|o=@$> omB4lcd2*FmXy{'fod(:NEi Y$Mu׮v>_,u b{dA‰Wuw_Ҽ( ly^㹋 7;y2l (X(\XMS3z;>9@W.Y_r{KN ,4ִ,_.ƲVVIhnyqצ ]Ԧ+ɡ1o9FD w0ʉ-i%r,fC5ѐGa?hUT)Ovz>>h⦦UW!\q>x?*#*AҎpR'legZ9dG;RO?sh"g|hs*A:ǧ ZS? l*,t0~gt&ýY{%JRtJR m $,nmEp%ĥBM ӟמo N]EgWV,/P鸩 vkRv,@L@j|SJ2FU+G'wmM%77\bTcM"Jpbra5~3 qV_ $ $55shI-M=h:ʶ::8(C5Rt_#HK@TFՊk+R5#kU+y et_^M$50 |n|{j ^i9lH3)Hqx*=B-ugPKrH1Z" nuvola/32x32/apps/kfloppy.pngUT fA^PQux V}bI=.cG9d}A@)_Z$N&Ef̵X}J#˯$@8_Bm- ?MBdͅtFce=Lw:tPƓ:TbwAW ~IA/}^\GTü=:=z\MT Uk;E`fJYИҦp1h#wG< R ":oRy;?U!}^*UϤ@p*^\tDr缑g5Jq\V1JKnxfS73L ~0RUe+*OlB2DIl =k|8,*f (/\Yji~$w-V|6"3yͦ(u?eED#y7kMlbq>B; Mg}+'hN (y$;MYQc#ue/ DB tM%Tf/9jJoԔџۦ,dyhO߁i.{L$}x0ν=kbH,n](p!ACWZn 5F1mw'N]cweqO 1 S\w&|sy{gT8^H|,4\HCDk K1&~_,Z ;Ģt4woMLUL͐~⌡ڷTE'$ ސХWmT0䃒{$P[\6~(#7=#Ĵ1HBcaK|vgLpSdzBKD},>a_- AW.^Pj=xq SH 5xf딋K_#a~< $xuRBR NvN"%ڸT>9Xw5Ll8Nko@(XGp;*ʆ>M[Pp t HP̄;/uiPK ,qH1 ҥXnuvola/32x32/apps/kfm.pngUT tfAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb?:03e`dbb7++;ï_?X@? KW6 >ba ZUmf 3 HX;s CyHJ|MU@X[/30 /|__!6/?cuL\e%%ZroFF&#GI U2F-kz " pcG~-Cifz W2=tͭ[|y~ _ >_WK[':-LMNU z32@abfd05p`S 9qZϟY !`b%/D03X 'NX겯__A Țhu>~9@G~؆A]M!pWl/NJAV@L):ýېx&eX5(d`b`/P PJ ];@a Fn-+2(n_hh0@,fcg`730| `E :?\02<ƠAFD3@lH"g`p?xxb , J< O>m_^b8 ëW6 ý ?B #Q% d8q?Xl-&51r  wȠ& &°fVu8nb`zbؾ'Ý?9?02@y) ^ ߾10J3TTyʐpS#`Ò? _p!/$\!@8%@'CKKgz~ _7bC}#A™ I?1 !`M >Yi 9H\00x b!-,1ǝ {"dČP6cet1Ah*pz J"  T ,?Q!b rQn7 1|X%?x"; b"ʅw F#"#}^gC p$B|II P?3R,v ?fAFD2BBi$2h?x {oǜ7~ z8/(G 聟 PK+]5 .]^^D(ga-QMPa@(́kk ?~Yn@aݩGtxjՋ߾0)sY5 F q3O[T j/t_ߟ?O߸6G=,xU:>ފA@: -`Au ?zu>n W, b:&o߼wc_sObr5û~~ 2|~k ?|p|#P`;_Kixae#?fEHHm;ζG}w73z#, Hr,03q[l;/=}Y@ZP9I0@a02j$.۫ @@9@y%Ve7>IENDB`PKi N14tT t nuvola/32x32/apps/kfm_home.pngUT ֹmA^PQux V{XdM@H( ɆR@[TGf&X"A$ `6pXZ% Ao-~ J. doc?9snogA󡜜I{ m `r;)1 @y0U'9rC 4hư$[p@r2\G@,PK ьxղtOx J pdkaMGmYk+aHꀩF99@-O@e320Im~w-(vd'aD'wi1úZ&Jq$W9<ǖBͶW |<'*B5s[P]{ĺԼ,NUɼpT:a4 mNNM lo[Y`qǭ"T$ǭё {x(C<s\װ ZvT#q蜽4+WU| j/X6u!<$̪. `s`8QK/&jvoh;۰n&|cjof> !"U@Fh'jڦ{qeV[e˲E%6YQiHvr1Cgn e\EbzO lA%9?+&%1?gd-pYFx^Y xs{,0A\_AFjRtMX,eaшF#kMCn}M&Lٸ}xyQl-XǪM ѵzX2S-]FS;WUVVjFHNKƑ$m !jxbv:3\<dƗ7W7,­sB]ǹgeY4yP䕺sE$ Qg#*o0 WcuN]O:I6KaTc- '[>v⸳X*YMSҮ^%xSŧςc#7EJ\Z DCUK r'~\?٤i10k$gyZ^lN~G2<8A'Q?xg˙>4}KAHEz }POC\q$t_ Œ/SQb4tbӸ=tmh6k%:qJ"xw@m.5JeUJŻFbNpXL>q wP;(B~JԺF!8hcαN;.7XOqnEZ;7!:G|0 T>>Ϋlq<@aooBga$C+#Րb v,A]'J?p!2C ݵ)760V k_$ nĘ?ՔqvGjbJ /aM3B+.rՄ|@תx6& 6R//D;AhƽX䣵4O "Pn8-rcn}nUM1$Y]߇ ViAFZ~鰯+N&QQW.ߏ#f[ZBAt0R*YBD,,S17>>pq)[-3YqD.E_W2v6HZlXd5ֽ#^$+DmbQ^$ںh7D:xZFFܱ.PWAgHרYOyj?=옄P Zќ-4`|e`t##i? V?YEdat0 ~V_Af/nO5h G 51ƭ p; a ~@@B"k H i? b `LM'/1 @pˁH X!E|4 c8}7޾jJǭ 搯LP̠fOr_W2<~׿d3a_XRa i d?$a;?N" _1<{ t70Y9wZ-0T7X!O?X@ Gj,FfPA  ׁ*0*.[z8 @K4VB 1FC#d`5` X'0g ?_ ??>p3hg`:c@,@lTrP|0nlj8Ħuz*/0YIRpAJ-(d?P10e`(D5sm ^nj?lN ?@ Ŀ,?A% 0X f~y߁9@X+$@\AOCgH$~CrB_~}_=a:{+1Z߯5@/Bk0  %Y]ݣ|Uͥ9 @5d^ܻmk3/2<ظh"Ȗ@%p;7ï<¿V\EkP * ߞ]pe'lج 럟.fmṟcvU_@2Cr G޿}kε`xu[.+`%{ks+|yl8]8X%#(Gpkŋw>?BWuw "8nhg_m?vSbf8v[>0\)3!価ˊgo?t'3Կd` Tajk@19Pvbps/ {W@SPFQ@vW΄A;cRA`-! @@#3?` /P?Agf`Lw"L 4EN8΢Q@yݻw l`ef``:h/A 4Ë{ /_'D`݂7Dh }4Za5Ptrv833+!9@X!b7+?N|?= C v)\@T$i[. *o~0& 6 *>@Q -Ïϯx899f+[ `2Adx fFC@ƿ}x V!Ą gv<ϯWD P!iXn=7pzXȀ ,` g/:7CDB\We7r 5'ưsN72JH2J3r>0|ك; ?}b`A_A;2A^yS^\\GPvewK^;F$+(2X;;30>~N l2ht23ݩQ`ݶyB̘@Ǝ oF^?xФ[)Qj6;J),6%dm-m ь^ {=WcBTDH5^C_w72ky`/ 7!rt2u)) w{$ DܧٿQG_.BJYc CK=LR3dj B)*Ky^̊_r/Lо и* 5q8ѡش"Ӑrl홚4FrzۺU,xP+UaXmotk4{!lN(d͍uN;R5Dz`Y:&n4ٚPπ8TXvE޴@w7)dl nt,K?p-\vyBN.-L}'TT˨/x ѐ w1ΉPmWPO\ICpVɁnŴ⾍׮)Uރko\7.hunՌl;Vnԉ/\ꯊ< %t=-P›\,ُF#p|lQ'!V&u6Ξmۃ)8uz*Bw+ auEdb=#͕wd6ߟgȃjN#&Gr+E8^ۻRz̸j7S&9 KSjIP=\bX/Q.Uۥҭ"B+M?i4!!9O⫄<`Yn Cgut0d@ [ڳg_v'.ȁѽ,'E|yy =9 u1x dbc}΄CNP)Jӈ+rin^9St\_#v" ]|vz"@{!J}AMD)L|},L_AeлL(ʛJR!#:6Nhh[Ġk)QԁJߥQ+ގ$uN.m% %C >~'ӎ6:8If]pP `)johìVuliۑ8hE2@wb7ꘛluzdޤuJV KhWF[ Ĩ凢YWogKyUEg㘥iFBKҴDQ)P1Uk! _̝yJfe%UKWa;Ḧ́(6F 6I&t0r~9U.#c2`GS(YNJy{A t'-T@Q:l=֒N,'""Z<,#KkG$,]=BDoN$#bF-mBwhvCbyV)"F,P5"2Bb[mpZmeX*Ͱq0dKdb}yLHMqlWώIؓʄΚ2whKVRxGv?Xz CU~ mi$%r 7ǽ۽/fcx= )7k9H|TT)WMӭ~}3[ ^ז#.ɱ_8 +'!HPA= :أ2KdQHp8 ACK'vK!E;e)@Î^ rƢzeOQٰsf \A ze:V Xei 5 ̹0ia-t?90?xg!_k9Jq@~ a(MK#6Ntߺ/ZS`#2OF,KHu NpJz>j鰭/'&VFӽ᭣uhOd8 AU~q'&S7Xi }qTAGQuWnWWjy57Ia~/)x2]`>fcVe7:RlAta_u<53HF=D_7_:cBwԯEKv2)x]tN}ɠ+`gNQiSj1 ֍ _ hWHpPKpH1ͩl+ D nuvola/32x32/apps/khangman.pngUT fA^PQux {\b=f% ˖!-K孜V(ZZ[f#^P Mn&J[%%q֜Z2]e ss>>lk\˜sp޴ɟ uC99g~̉ Gq8"#Y\*p1ԣcaWr'/T>D tD=Cr8f<Òq gBnq@%5NHQ֘\ 䫗^}+ KVǤR%UNTH([A!"X|x!8((>yhe J6Mab=+psH5Mm҃w=F;_ z̘Y8`# . HHSF{<*ЌXq̸7?WawH .>6.٪a@PQRKs;NsأkV|tZ p虺Pԧ5&C@YȚ$ Az3۶gr8f aF37 (TezYC?^W,3EHj&&*mHdL|yϜ\E*PI uc&ӐNjO²Kgv*9)t>],AΣdA2CXd{کǏkZ5&Ԓ(0;y-'šMtiicCڢnoi7/^i %! 9y.@ $;w[\c[@UU.[F㤗~ikYcX4*=`H'*TY@]ƿ] $ѷP6#[W9'gl<҇] 5̒UkՑ?S^:O' .lHBvV'!d|QYq]{gz`zϔU#dVn<'~V#{vlhǚhr|085:Dp㪪SÌ-ٳ\MU5cFױӒ۫JG]@m#/ z‹nȃ.4AFm 9H/2 NST9IMg͵'G)YgX-V4jq>=ܝ"2 IG n+:O8oR$[{p󽺭[>GEl|Q@b_zEڽnnU}o`%*? +8&Kf vO盧~sd?4u% Q,iH4PxF! v̲;3@[b)J({`79U\)0ϑj󕔙(iP_I9D^>M:@Y24,ߟE(DG͵ѝ89Xf4;O(arMmXb,[y}D=ױ z1bP@S+qU R"5F6c`|FK6rEJ£+\{wjB`.a&>SEX0ENr%'0Vkv:n ql+r!;O7|UZn75f_AE;fbayl+lKD {M[j\p;ʣ$L,8}s֨չ׆yt@r읂0U3ir6e=b! 3)w?яx.klP|`5;! )'{ӝU  ^%}ypf1`S 5.,z,.]lz xáEj+s@LDܦ7 PK {G1(%*W W !nuvola/32x32/apps/khelpcenter.pngUT eA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@p jj JLLL ,@6ÿ ??fZN@XBBG|Ջ^}t۷}/<@1as3?r{*"f`f+-&,2߷o ?_f í]o\cos@t?>&1ݾLMƕ+ \|ߟ132VҗdT- [^;v){w _p߿a$8А)OUu綹+?x?J\7 +zӁH4:ƍgo"";av bARKE@ h0^0xӼ?ֿf` ԲE >$}qo WPfA܁HE͑VL;j11Sx ǫV1WM zɭ[;= 6 fMHABQU (! x`eef?@< ˁ>30<*<3T>/MĠAPVY(, ) {FCEOzA C`cZr@Lf0ȡ yGF`Ǐ_ ~ Y͚L^(^PЂC}ez@`z ,/~ FPedd @A *(6M(? a>M}}s9=<yy1` <30C' ?KGwOsQ\^ cTwb b~q˧O]@%*>޽Rԩ -ytW2|P+^WFzήcexx <@ ,U-c&?e%T &d7 rTNZ{N O}z Vh A|V8lJl,?P `ŁX'|&PA@hׯn-? w'`ҿM 9?Ȣ?P>L}3 M`v,X@B?3 eoFJ.7[_Js @(m«/^lxvHo{O'3| ?6 ~0|Ç _dx/~g3|G2(TK{ '=: @4+XTTqq!@D&&>`rrq0pp| Fpq *~ˍo~Pa}t/ëB Gg TUF Vܹ *ʁZ \\ ,l #_# L2r O-nz'{t r ׎IJҢf6 bz | ,ܐ\mKXP{w3| w޿{ˣ/|YT_7V/^ELPH\%2 B l*o _޼dx/?y_.>0=pZe( B!`Бpcedfdefef`￯}jr"0 ARC~h;4! uLq{4}Cwx2IENDB`PKQN1g% : nuvola/32x32/apps/khexedit.pngUT zmAaPQux %}\goVp,ZMmbhcLݦ-7{(`RӉ& hVm-ZnkΞU"X@Z{d90ǹ\=IO}UOn0553L!g32<(4+ܛ u/4*XRv-'55疾;9hRW ƭݯdu MдiFM8@ۨJFWR `*_n_jnu9%ʈCp;pn줿c0!UCp4؄v6;IQ=;+aRp@I-lwD\rd2ݧEu9[pWlV]qwv$' ,l)}>T$@dV~$Stx,yc6Z@G*լ TRW `GpLv]=5{w2u|i3ŏ2z{{õ=tFCSEP \v9DOn ;́fm&r9P3%].߾0GV!Ň^\\0\+RlQ-S_>GUon1GU6>W4)5@ӣ108;9L.xGd0ݔ\0f0 =}7gg"wO8d:{Y}]WA5OelmkO L~EsA ǡjL]oJ[?y(#Pʠ1!z.]SMEKX*tO3v$#y;h{])i% yc@|y\_x}MrfT Kdj^ ?A Y`N~Rcw٤2Ƽjwyk^vَڊ=]G˦v'Tٰdflʰ|' $$ wfbYp+jl+Vsg 1>)_Gw0HqHtfG݋cg{~s1*e(xP^u!<:mhōAzAb|^2vX372@U,!QV8 k#iدKXZϵ{{].gO)u~(\C^.ɨ{)`ldB7X3C6c ¬xbG6NШ}05 -0ʗ#lP 3֗nc!+]: EG˝ (w{HA>#S`U,#Cbz~sHG/'8ONX!u?:.D#fn]oÚw{dyqKp VhByNHK%DR&  @ŋ:ߍ 6=ړC(yQ]67᫗s6ވj3N-V 飌sݔ>&H_4UH<T5 %[NZ+sO߿.3|2yJԵON R@xx@_ 2>x_<++0<+ 33(f=IA0̓a7 :2hqxe`"G yH߾U͠c㑁̩ d76[Y@  fD@~dfccLDֈ lO .gfafd'o߾3yÇ@_b4X@Fg'HP`]  0 D@ AJJG  "  @:& {@a:deO|f`gggPUUa8zп 2`gG8h(2b 0$oCR;(xYAAYYW bb"Q*! ! L@0` @ӧ BB`dJ\\qcPYʾ3((,%0SSp֜AKKARZ&9p"{Yh@aM2ANNl(!?}E@;k/(12A/@6_C|d@,A!(A9'ЬčĂ502B耿 h& AP<`b+|R: 0M,4 Fpn `&H!`s@X38 +& E@aItr!\ G#89 {%?77Y! 2<~ U7zA@8X@B{ ^}d}-@LRA2q2{ڵ #m`Vſ88F)(d lQ ;{w_z{ U \F4#[gf@V5_r`=02H|7~?Pb|~- ^`#T'sP`b7ûWOa_Raj>\xm-Ӯ> <0Bk4pa&X )a%mu/Oߜdxu?]|@vVi];O&fH'TB; ;@yTJ;'6P6.c?3:P`#^PH0 fp Lu?nl RfP؂0v#Ec&9T}a @Xl@," S@Jëxb9@8XaϯIENDB`PKt91"x nuvola/32x32/apps/kig.pngUT gUAbPQux V{<f=.8mNh[ *U:DQ9¬Kc+*CnecD$O#,v~|li`冐u[ 1 wbJwC1073N/.糡'$Ht"h ddzbH~lfqE?߰=bAIKK+sQOT3Ζ*+'=o>0jo<7z+XsF?[;cwJ_跀A{+ r;T^ xҵx|1FYmtE+.Oem\dsůzEyА,-v0Q/BplXݐYx.ܒJs ˹ 61 e*5&H{x+c <%̔uӑ LJ]0-'XAĮ2jV9l|vKXf>AP _QR4-֔dB!eބE,kLH9.hNca3WֿkI1n&|}e!6׌QW]}!gO-6`Gl? Ξrg_3ӮU. GΡ,c o V'bf0eU*K0+YHVdžeLvW YrFuinfuPٔ?;yHsgIv~OYߺOj22 +:E2K\^$t/4 Vˁc_NCGfPT(?~o `N x®t'נ13}_w8dxlr ocy\}aF=g`lWb2hiY~yt^vs᯻$M"̐ sK嵈W"/;hMe[#"gwB!k n]Ё*7>:ǯNx\?z!|p%.r/~mQF*f]kZ$$N8#Q Q fLq{ 9).>ytIH1E靐5uhM/ A܀40ry\:vo>ʪ?\_# TeSI$z6:n~ `'ôxI"&q>_itFMЧ*JGX~[5}J.{0-[xxǕ+s1zb >v@bQ<>{=J]H%O>/,o6 66wf}).#DvEdU%&$xO<˼XING 6(lyqtXhTBf|͛!IǗ˩ (ی-R&dQUVqѬ52NN&?y.!:<Ss\;WUO9%XXhI;^*f[pHo E'_U&`͋xr2Ãֶ(4+F~M[g{9a蝍n 2UA[]$9yba4%NQmڶ3JZ*$+]RS?m.i`ùFÀx Cg 2hI)٭,EYj;B4Dnsm\ArQP<[eA@mdi!D(|ߕMaAf?Eb|K 9-k hIcTf6 ru*4ފ}bj'>Ǫ 奩vCi8\h@ w7=UV@1Mˉƹ{\$k1!G p%giGTտds~;j#6qIZ{Df+Brm.-/}zX(io۴4LvYf(G#($)h.ԫ@jߌp@m9 tӓĪǒ156gX6Xn!^2Rl-:9 ܹma:5}(fΘUUe+rvsInj XU9Ee *7L[Eb 8T3*M4ܐI_~{Q;KVYXs6*$Qn\).L$2$ԪȠ@UtwwJ+~A|tR/3>j.e8gYKV=="Gub*nwz(z5{ TuNґƧZV#Ei hם"s|i˙h,8",a}kSPK pH1nuvola/32x32/apps/kiten.pngUT fAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxb?@bb`@pQ0?<@{S:2N6BRJ\-ha1J),GgABD BH{YgTUJ$.uݪiRJZ{m>T?v(! 3(T/QƊʺ\ """ @DZYٳ>.],ݳg_v4>}8@4`]nn~w OZPPIIINEEUVVVAZZ[&&F`0ifaaf`gP01tIvKzzNsƅ Nݽ{77럠pg`dgffTRRAHVVAHHl?Ǐ`YXX u3H/##MM {)<~$Ç8fbߐY70=Db(A iO""B@r`e`ee%(@)Bh?@?8(Ai?Šdbbhoϟ30|($ &ěDb!92h;>Ϝyϟ8X#cC L\`\𭷋ϟ a?0af`(# Lu ښ#'=CاNf`z Pb@t ̛60LgOUD$"A;G{ (0D8XΜf`| :Pte ,%h &bS>ϡ- Ὸ(e@ WR 2"*A ?~1s I?f2_D s0SReQVb) 3Y00m X|"^". @~+'Q@q wo8ܽ85O@ħPDn`"cWD /_Г=*a\ H+A h߿9`7@U6&eF*@fO@WF ߀?^xkgϞ0T`gPRRaPF;;'j zɌ ^3|epxÑ[a3v#@8d'Ї@0*d}-Xz_f-IdP*& wbX1o2ld Ă'>300?@~ub_>-KdK~?H&Lf`Pa`h4VcטUAonV,r Te}Zbvp}Bڹ'-Ngʾ8P#gT9C2_ם[L]/:AFĈ\H8om10< m[ c_pٜ@ad~0l%30L57/`x<+%-G?"2( 10x1L=dG& @(F@s2M]&U!NB fp``uËKV/^Q J@ dxķ ;^hP"`4&o@:J!՛+qoA@hۗ2hj^5́ r<@PK@9J?+7P6?R?^ to8Ţo@ +(feguÛ n0 h:TCVhnf;@2  ~`cZT.l`VJ|AH=kl-sb7s1@ )vv%u(fdf~Zf>!&c)FC <ӸvVJ(oP 10*`@"&e9a?뿯=_  PBӖǽϾ)u +* L@@^!*@,p` /َ >lZg|ھ3,0>f'@ӥ\Nz ?9ۆO+W2/ҷd`QSCVGc3<߻k [-Hc >:RB-U `_yMLV49Qy?NN&nnH@| ?,sƏ ˻ ߾^aQd>yJP:=Ōg0 @\0)ޥqk_rEP6YŅp(A I+_20fڿ/h186Ani/. ., PXp}R1yFo˚vI y.~F6`97CٳwY 흡h{ {>\td;2 Pο?fFne+EUm{bb v0@[PF?͖b4{!ï7-_R@:_HR? µU>/TBX."SuOd.A03]=a-z &, =o`M߱2h`^剳^? % q8O6vgNʿ?/ɠq+=ۆ &h7ď_] Z]o߿AQ Xeb(ز㘰̛S-St8|c8VCv*5*^2V&`V:>rYSSg/Y˚Oe.}Ѳ BO8@DLy˿8]p<'X)3zpЦb8@1t o@WIENDB`PKfE1)eS Z nuvola/32x32/apps/kjobviewer.pngUT  }bA_PQux VyX@E2E@-3D! -<2S) cܓdS2;c#zƊI&pI1Kmڬ[f)n]<{\oeao@}ɦ^hrA ?vi{#Ҏ&ǧeƜX8 1 qGbbS:|:[EOA#--Iuo?,*jDE7w:˝SsOOUZ/]ݘJD6>-*lM92p.` Bfgޠ_X+/y7VIڶm0*u߸a:QAAE\ 3mcj|z Ct8!wZ_!xn \_)xQ"** LOOW^isI 7ٯyzLb5u\QCV ʅQ^nݻ~[pEUPa F`'׳m WFOH$׏SȰtygggnaaaLRRBb@hUlEe羾;eKJv__! ڗՎDoHY>>μgj|a"@Bۊ~6.];z萐ÇYBKc_^"I5>Pdπn$AT/(a(L|`[d-|7owDg1G;% b8K󫳶.MMB 7uKKj;?[ȕBoaarġ] LfxmݒI  KfB?V2#$"L P'|9 94=ZJx~Q6B*.qG `8ꥬpBȟbun9fvIq<:=Nzr2gy2$fyeDZuAvyRRn03TYLC `)MImmͿf/Ԝk,L愌}UϽBvƒ*?zw@Zr\(U9_I7w.[j x&!`>~\.Mu޺5fi~tGY17*Kh{E*p/Np_:Ԃy('}pX_oUz´aw9PKKN1Z nuvola/32x32/apps/kjots.pngUT nmAaPQux U{TR?xHb i>Ĵfnװ,YΌN㐆Z6jRc:Nc7'ol@AĬ)KhIQJK^o*bfgݖL>~%axpSb}N.{$'O|4d$#Jݝ*N:7u+ޞߓ(Qq` jLjʍ:k] Qǭ.d\ @GKtSh@bd]:zJʙLӏ}&@)| m.PF{;~/%=>87U}KaM.nCHkY|dXڹ KX h@GL)6)BfO J$GӓAO0 A}F /ES1-*"DA=%ӯs&.w QqDT84600 9pV҄65~Οuf_>]CW-qf5V!"{ԮAQZqy'ml4Gg4=rTw(a>\\Ԏ/{`,2zmj|*Q&/ 迭8sy9Qu@YR4 \{4S5@>h2!";MPГ2;yF$J29 t%>*ph&ŦlqmEmVOfe5 /ׯ<7ic>3NKedF(1|:ل6GUЭ$5P鬤{h;xCPUicO/Q6ZnOp{~ߛ42ZoЁȍćLuBJ3)œj·8Rݶx%ʨ$:f2XWK6zqbR~8eN*C~W%.rP?Z<)M%Ⱈ-w<${Y!/fTy"G#mj<%kJ|ѤR9kZK3Vd1};L۰+ʰki"΢r/el\X ZW_^%~F-dH۳d^('8@zڿղ^uOX(,6`H׋<‹فLcs Sw,NJT13c$ʉcڹB?аm ۺe?`cn^_#.32z?Utg#eu\^2Q&?Rne(/+2iGq \Qzy SieG)6R;G:;7^f4s(!, X+>ɣP1L`f̹Q *{q9Tq-A0&Qy<;+Hт7P*C(D #CAʜ,Q^a@= Fj3gH9ET-l"Qη+kOf }3cQ'њ[f}QnqNH1Z\r)<_3xnTRk4HZpF"m3)Y`ϵ`ƽM@[NZxl 4 A $? cwa"z/dV?n7b@hD'PK pH1kc77nuvola/32x32/apps/klettres.pngUT fA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p`Q0 :WvU]إ6,yQbs,4Уm(~E]U>A&H9֌6'":R7"E.rXH>l1s7u #&Q 렫k$doٰ/^0|{66O>ץJ+*{㓇?Jb/BFFC}\Nv** RR :;;'0fϟ R:kG))1@`y/^<& aq f230=``bV&(?Zfb 3,-A#0.ZTK?~0cd[ FJ2BqPx Y!? a. &Ec@^Ѐ; 4w@ h@pЀ; hF$  -dbffU/`Æbt b0lbԻ{pz!']Z?"Vқ7 Ư^1!R1[ ,^ Y899{߿pgΞxر'^x?H&nNNI11E]O$8@@`p}{uF P?3$02ClV6.`30|6n޺p҅ߧNx~O>@]o򚁁A%>jHKZh6pJ:g0`~CANv`뛁+C}[ _^~׮][4*?Aj 8 *ia.aQ{V6f>Ll1޼ͻw#(MC 1Ah ϰ@hKBoqtIENDB`PK t91v0Ûnuvola/32x32/apps/klipper.pngUT gUAbPQux PNG  IHDR szzgAMA7bKGD pHYsHHFk>IDATx͗[l\GsܼƉ;v&n4Hx4"Ԥj҂*-$!B @PT Br *%i'zgwux8뵝 R鯙3wRJdS(unp jtnCtj֧hi 9<`v8B""5*誂C C 0 C↦7ajG4]蚩i PxJϹs+q]OsfK[LD׈h*5j=qos"b_gw >pS;?ŘuxNYF%­m{P邝}Z@pq$57q%/q\؞v%CˁtǺ/Mr)@jˢr=mDkVU)葰74w\]g4[ղ&*J=_ Y,C"!p+<~ۺc_tPGЙO2^@; ?_ahTY )}_.̵QFџ|݌q!8{S\g{ ' |uB] DP!@zx$3E%1sq}/b^|it A6;oIAq Ӑh HI>.}jn02, 5AtE֘Uzk(AXT%3$(2hm:W@OFd'-ݸ'ܬjXu; & @E8p}z)V0UBe>/WKGʟ- -3tQɀ0A є捭/;0[W@ 3.^77H)u44-܊2ITPuoDjɕN-Tzf P@eG ^_0zs"*(Ӿf9dj0: ] I4*Un8 8o $W@Kgv!";!Y<2үP*Rs|\?$pꡰ`6w:҅x5 Ek5Zaߤ@bh@Ϫ|]ֹ,^0>6y'Uc+5%S`d Z}X΅+!^~ZkѪ.ObI*ZߎkvW/s=QqɁoWLfǦѴR%!X$$΂W(4hsgWx7 1T8k[1sTv.܌"*+ػ;S-z'.̾8g7J|b>(*A!;xoȆrČH:Bв%;6ɛ<~)Ȓs$YAf(D kSl*Ӝ9[zvE; q?ݏ&zP@$r9y UhiQLI%u%KJ˹ɖ /.GSG0["?]MER"mM gw%pYe e e4 `ps8_|*O5~~f?=?3L6@ưq/Xx1Q@ ;09ܩvw7fVqJtEXtSoftwareAdobe ImageReadyqe<IENDB`PKfE1)eS Z nuvola/32x32/apps/klpq.pngUT  }bA]PQux VyX@E2E@-3D! -<2S) cܓdS2;c#zƊI&pI1Kmڬ[f)n]<{\oeao@}ɦ^hrA ?vi{#Ҏ&ǧeƜX8 1 qGbbS:|:[EOA#--Iuo?,*jDE7w:˝SsOOUZ/]ݘJD6>-*lM92p.` Bfgޠ_X+/y7VIڶm0*u߸a:QAAE\ 3mcj|z Ct8!wZ_!xn \_)xQ"** LOOW^isI 7ٯyzLb5u\QCV ʅQ^nݻ~[pEUPa F`'׳m WFOH$׏SȰtygggnaaaLRRBb@hUlEe羾;eKJv__! ڗՎDoHY>>μgj|a"@Bۊ~6.];z萐ÇYBKc_^"I5>Pdπn$AT/(a(L|`[d-|7owDg1G;% b8K󫳶.MMB 7uKKj;?[ȕBoaarġ] LfxmݒI  KfB?V2#$"L P'|9 94=ZJx~Q6B*.qG `8ꥬpBȟbun9fvIq<:=Nzr2gy2$fyeDZuAvyRRn03TYLC `)MImmͿf/Ԝk,L愌}UϽBvƒ*?zw@Zr\(U9_I7w.[j x&!`>~\.Mu޺5fi~tGY17*Kh{E*p/Np_:Ԃy('}pX_oUz´aw9PKHN1Z nuvola/32x32/apps/kmag.pngUT hmA^PQux V}< mӐ_67eڦ7z]Qe{͖M+"S-1w[]n\sm?99|?眫~kV۬` 3A|rf!s73rDJXBLJ:5F'Gҏѩї/#}3Ѵ0L,F(z<0tvvm|FՂѠ]I{vԟ"?F>~cG +eCI 5 붒GG^y"Qo`Vv*p9pq#;5ivNsOzK*@^@i{k7̳MUWHL{|h CN :HcA@"Ch7=vaֻdݶ `^]Z ;sQ(y-Uu-tґKZ}LҠ*Rk :y; X߬9Uq7Rc+ٮB LYTC_<_(<#nLH>9{-Ud? .w*44ؾ2vX~ebi-tZ^ʹ])_C_U1kދǙ: ഷ{]^=k\Q _?^^uGhl vjdn >M`viWt<Ďb2T:GzQGV:˾ϖQ"s- J>dϿ &fw b5hE`d6UvqtE7v赫o"dVm~3AduѢXvOě#ν6[}MV e7 [$4l J`%ca\ײvEwsfܢ4DtP,= ǁp6ScW,Fzd 4 o`PEqhKYhiѩLqphτ{H5|) 6 ^3Mx䖯hwbNUG6WxK)v_>O2:-Dn˜1q==m|hP~#+xF.Qc(Yet+vhPvF׵x|rB?2%&}~׬]e/̺yJH&^>TG]ʐkwu~3w8@%?v!Up֚TLtaӅOfI` ƭNѷF<0GPµ26+ꕮUeԤ="2Qx#1W/なH%',S$Qfޔ- éh,ň,gC;_Wi77 0{JX|0ʈ%&jEgXgX/[( {6apohGLF9ViHh^S  $lP<;'%Ϋ:E~s'gM}*'ϹlףK@\煴g`ݓ۷;MOO-(n5S)59w%/xv|Kt/iG>MԲU?M'^|)g< !דbk,VL9{PbW:O\l´3=UCtp3*b;fLVڑhH4ȴq+ʋMv^ӕTbf7pPU998}0`X ðU8Y SZFх]U~xLo`ҷHZXAQw b!L^.1sz5:0mR*:8j+3Y`5NlN& Zь ]g̚Y܊U7FSld:dRP\\C̒ CP>sB+n(Q\ڂܻ妯E!4t$*[-ȡ)PK pH1(<nuvola/32x32/apps/kmahjong.pngUT fAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?6Ȁ t11{;C'G Dt _@c_XѰ-)2l2C<>© @t񯂨CUtL;L4Iu@1w /_b`صqR8000"{ b6la$"ϟ ?,|@B^0B ,..nnLL T( (Ela (J20%ABlb9&oq 0|AKLFINV\YcO& <ߐ?J1|Io02L raUU\޽ϟD7 F\Q3A.f XN}F9VK%m_?yUuR`^ :?g4T^p1`bfx6C P'}}} >d`|A;; />cË10&h.^>?31 } bdbcîe/ ~O>b`eg`|࿟ ?}o/;? q!#ǁ h]d{\6c c-rc`8X7 w3z P] ӊ|x/ן ,xXX|PQ@ n@0fdh8w2RrؙϿb)c{?^,n@`*x=`SPMgc(vKFq.` `cbq\ @x,d?RLE.Y1g>0Q31:| P%rňn@]?.baJxЫ$YyYY>sfFPPd {ρp3M12 -ٸ?>H.f5!";@,u b ?VH"a`cL0@,d4MC%XV Zi2"] " @, i TB.,D XHi|?Hu lLg<~C @%0-8B X! @E0 #<Hr@'@4=+Q@9 .(2C|LjQ& d#+083]4逯4}t_PQ@8+#h53 ̌H{B>=MH\T&h|)j~97aIENDB`PKpH1gb i nuvola/32x32/apps/kmail.pngUT ނfA^PQux {\ǿE_)8 ̖Țxiʼd)f:זw@4uy-V XYZNKJS yy\>$-{6+0g/A_23  F w±$;xť0I1c2~~ j_!F\Nv$(•;~AV`vLC:Sx Q'c/6`:JR^˲9`HV/+rğʺo9 8$4@ÏߗMfb9#D Oe Pft./օ 'ǼE]>wVkk_*K=t=#u`ɨgC$H;pwJ4s-z<X+hzVƒ׬6)3һ(uth~Q}dmۓx6? =6՛q7۷" ܓ2Bwjwm˂`aal.-)$vV [ 56y"pt(vO69/[7ᦾi?W(['GoB:Υ-{-} l؍r졪Dz=4;y~x\ lR6wIשl1vs hz۳azX|q͚ZbȞ4j?ۑv"#q_0FގPtӟJYv>i'c,]ܚ{?Ku.yOe1e]/7@UW8rC Yes#ͫ^s|_i%\:~0b7$/տ/͘qvSYt+K Ś\> HrJ5V1L6\9AfD> QN3tY}(F;!g+g7gAʇ'ܖGvhGG;4Wɏ +|qֺ[cuP o\;q?kA*Ԟ $a#L˽ n%葧Uct=^ GMrS(v6^n }3"B%?%(1QB(9) &2YIt,zOp̈Y0.WL)E,[8rbT3"Fgc_tm\ML֞[6ka?'ĵE9%RRY7r|mC9X6<|H@]򼖐(uaa5r WeʊC 0M7XئH^F^ha[>WK;0cUb; TuݎjE m|l-Jqs3'u~dQ3m\1 AV|)Bk6]o̳`Pa\yV"4UjP} ,o45mɞ"=Τd/(udr[nH>} lYEuhZ0w;Վ ]Y+J3cگRӖ 5Sx´-n[Ikۙ~LfBVLo(wˡf,̲yw|nṵ-iϟ8P)UfQ6i=0Fr:?z,=F<0 L#cIoE-:ĩ^^^l{يuOD Sf(H'Jv1Zr5H= L 8]ȪmBcnZΫ!U0O`J53⧗L#paCOSDZˢOj,; #޸V\ǓzY~J뙹@R 0d`6fí";7=?PK cG1+(f f nuvola/32x32/apps/kmenu.pngUT j|eA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@b!!IHB`Çw we`eeepub`dda߿WIYOӧ;P%6`RV㐐d`X30 -/(89}J..v@xx>}0q⤟g6 =;;;WxƞÇݳWAѬM_ -X cz!ϟLͰm~X444@1744^cdpScxÌ-/83p2}F lll@ :gqqi B.]]Sp˗| Yyx zٓW=xp{;@ P$,99޾<|5@/8⑉XePRf_`|Gųgl{T!"l۷Sڷok$PYbR,D$ "t; c?dC`} T# |/`P2ZXsqD@?cN2zAZZh( j &hIrq IA)?1>`0[=\:'?Gñ .]LJP%l{{+3\|j`^t:U55U))q`0 1 | | ϿB9 Alf`V0 fX"C(8 ~6>} /3if&?y7@gC_WRT N#N' rp2kxNH601 *EВaֽF?g g\nOޯ x |mgud) ç/D'+7ׯA5 o  6a8 2 o?V<=!rEӿ| ߁jzo3ؘ3|{ 7ОǏLYe``PPey,ïbǯe_f`ZeWPP%@++88UTM4@"=Tlǭ o5Y~v%@=pCI`-=- v [ZRN:s^z h@1,UV`PUe_@Eo++Cp~cXgPU_\ 30|Ǡ/`m /`sOٚ ~>{U`tڅbX`ȷ6} ^ : gdx/ 0H9DYT8xY>~lfkn0xXƈxxϟ?@@`|ZWqpa$0`{`n`UcЋG/?T= `3mu1 ' Y9\`q؞Y@¢ =zDRoz,fO2lڴ)С\TyTUANw:Kn)y(2sPnv ! *ā vsGYXBUX&qk>:ԛ7ϷVX|oN>{څ޽?ܹlnnrsL8格) @b`˥K'Jf"׮; wB[2o޼y@rڐ Zz'jS]~O޸q=@-@>1&ȷ.24 C+K8]PE/b ?Ƽv d A^@zF_YՁ/=rr؇9?998"( b{ w^S޽ a`㻯?=*I tHr@,e| 0@ YvLB6~IENDB`PK pH1K6nuvola/32x32/apps/kmenuedit.pngUT ʂfA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<}IDATxb?@bb`@p `7ϟ߀cϞu}v(!F`ߟSÆǏ` y06H@`RPuJ8b#b@K=};;~}g 2ׯ @0@ !!VT??Άj0iR2|;0($@ UL?L3`/2 F/1\dC?f D#O_} 2J F#RdGLC 0Hqdp`= pt &G vy`X]M ?~11s~ddKL| LT @`pqIc4,PB] u@0 bfL ـ[a@mcccec=?P3N0MY>] >:H3( $B`210s#ˈ 3}O 020.!<_?#@ 6PzX*; ]WXApa&iXce񇛁h'_`ep 88y卻XYـ)1r##paf_ ,762 !`9Z 9f;X~/ÿQ 15( ~301{ƍ'l(4'6F >};@߿lن낂",M"v/\8r@`|ŋ7R3b #r ~=+̣Ą?b,LjjLѢ %9,2\snROq<(nn.II cbZfR@{`F*$ 0s(uG6 ;o|J?Kƈ5i -yT 4df-Pԝ>}{8 bSR/8;A\ԑ, 3 X`ٓ'}V`=fڀ8P:`dJR@`l߾}׮͡`u%6CvB 3aţW𜔄@&3#Tb~RS1ZЀG@XM8НS@  A`IENDB`PKt91ɥ> ` "nuvola/32x32/apps/kmessedwords.pngUT gUA]PQux WyX\ P*R!!VCZ( *rD6o<km E&p)(~b+" h 3;3Q?YY̱j갍33~O^f&ؿuL Hݻ?)f$LJm%m0vLλ2- F#ZA`x)|uw I1["17\stm Ωe wspy㰭y_ޘZE;cu#d[˸ ֳ*BuS`9M; #%a3٤KzI[7*Ixr?%cZ;@ !3`DpVhrM>AI}SK> TRA7LOaٷL pmͿS8ź/Q(-_GѲ|}lq1OEۣ14pt,S/K4Wر* mIǷrE fpg>3ͨn5GGH0-PVF:-#ȞV r *V.?w[ԤjlqbYڗ>cm6{a R`3ԁ@w }b8` xHsmEw2|P|e fβCdFٲ,=Fr {I(ҁ$T\YPL 'tvćF"AW@e@H>*;V @9,Xm&ƃ5s g}"xZjOOB5̋J.F6  $@=aUG:rτ!mXӻ7} KDQ #dUh΂jk-*K;XI能F|j n 50> 8qSܮpFkz`Cd5`9*w=yԲ^UT.S[z ّMRػûgdK;'$2V%pyMQS ^ԄtH*}a.cEtUA5K[ji&'X{H*<y`W6flMþ!l4=Jx&[ai)^7"@, lsc?~%JTp:Z*O}*8Ј (dqҐ?9&OZg)+э  )K]W3a :C S%59 90P}@ )w:oN2"!K{[ T*2c#XEG2?vY>Ͳ-{5s$*tLMWz&{3S='I2d@cG x!M>V_vf~-ibPvٳLbypi EmYL_V͵edcZ!6E':N0D-6wjȋ܅.݉Mvp1~Zeɼ$?s&5M* Omd_:tyRkHK^ v ~alvܴ`sՖs@Jx9l Wj2}KbqܞE)7de--w6^ݮNHIΑfnɗXjV%3lO3RG=g袴20m8lZ2dJ;8;K}״=)pL+Zڠ&Jn#Ó3IoUZ.X;Ai9<aN;kj)N|:b# 8[BE:jҗ M=܊7-kɜq]u ZAջ:BNׄ0˩;ghe:76MZиfɤ.y{nȆI?Ho[;UkJj`EO uu 畇A'd?nPk'3:|44^09THYIZ|sbN u;2@WLh8'A#}$H5_k}-NmAs幹Bʫ B։4i"^SV]0$&NVx*ca.!4I'l!PMD"5h$`/rrg/i 0wmoUiiZ6@#n`8bk`X7O@φWz":_;Φ~kw`AF,:|Ă/Tr0~0".[>}Y9K4蜱Aj.4)0SkO!:A4F3/hИmp=S]K՗ƚmR_l'b<} R߹ ㆤ?勖_бtL }e4LS唝Hۍg>_*@R󊅁KHUZB*]yr$Vwd Aoz4`xk$wxoiЂaבcFʙ{,[k#7U0^ 2ַ*-"̳73e7Gr#cS-~[0j}Hdۿlh * z*0*eJMURR%~ٽ`\d zQY%~;1x#__fu^bW2FIl< ąa)6U*n޾"F.?QS>xyz{)YB Kč'/Œo|.ky,#[P>%pͱCZbM+RxOM m872.tALMC05)-T>AZNږ긋\\-d!r*43yKvken T!}+* "QOf9'i (2_.oG:Y` eg ~a4`7@|^^^#,,, h; )m0 6 Aq$b`14C5BZ[AA#`>g`ff;@\\< ''/q x @>3  _ ENc:.Y np@au7/0^z 0鷯_Q7, Ǐc8 0!( 2hkk#?deV -74aზzM+0 _? ;xؘي-JKjQzaCjDoȊU}Qϊeo 9:b@(70x>cpvvkZGGAWWlQ^^+(cc`Խ`=X#åKeO ݼys~ɿH"C H "I/P; o@(xo8럿(|ZT50& 4B99 kF/#_@DG?Bu/Lf #؃} X~{>ïoi`ϰ2 ad),#?/{cߟr Z@ ՐO  &,@y? ƁЀ7h@p'sIENDB`PKpH1EI nuvola/32x32/apps/kmines.pngUT ҂fA`PQux %4iǟ<3V *L$7v+3#3N#kfL eZUZj[V6F1~DEba,)_1?y?:Ϲ}}s]АLmM0 7F򧅃{RzLPsQi<$J::1lr8v8zD@q]2 6rLmZ& n k6lCyrKF}P--cpHDᆴ'3zm)_\ÿ"YFLw $|)I@JIQ~UL#LZT*Oŀʕx(,Eɯ90H~i\5-u&K|-b>ՈyQw &V9=$϶aQAwwҀH o0ڝ}_"#Mb)hWgeEQ}Sd1msJ .M8Qr9zM"^kc<|%2LvN %j}a){{T5;C{R|N0EQvr]][b gk+!{Y?^vq3:&g'$,2=xԞINO{uŪ/:IэfzuuKx򾻮ѲYǶ1urpw6Χ:p_БY |=CQK3"SRnyu_u,/":;~D{b>YpvraB1m]fx@d&PGUqP}x4}oqkZWtH1E[)efflŝsyyGlo?Ou: N :Z;>t .q - *.zNc;l궏x꘵}jd*1iA4qfF1. QP-yN -I P⹬Tdj$q6sL rXE9@>LƗgz%$U{+BphP/==;,\Y/+"f@[茌]9֮߸ >}:R#&D=W)*L^DA;ɯe0I/uzÑ%iKBv$){n0ڱcn> [14oh@qx:;@9˺;$C+&ev-C8-evޚ9՛gxV՞Z-&^5*#!!c7Nza ks L2=EFFD|Z1^R2xǧ~ㆍC,",UW"NxAȕ޲s 6ǗWHg>t=2}v^cPh?j"/ nܾP}VY)Cr=w6NN klW<|bq5򼑱j"dEN| oYls̊ncv`sj~Sttq}'0^. `?| $׀:Bnj}I3vwCjU po3PK QsH1wZ Z nuvola/32x32/apps/kmix.pngUT zfA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@ ?~11qb``de`aRg/a͌L ,̎ӧNWN]:f/>ya@`@@Qt mm c?ɓJ27a;3 ǟ?%%%HKK 2K1 Ϟ><'?' J/ ϟ?e+W fx=33c_--U))eNvN;>>v6U[U@ݼh +Ą- @E:774_1pq2rCN@AZZQ@@?RLlL3\+4"Ŕ-k & ϼ99i`pgbc`cca`ffx>|deMBk.#؟_}}r]Jñ[f@a8Ӈw ^0TAc%uAA>~~>>66vDI%n>I?~ ys;^ GĄ;#n55e@ÁŋhVVfxxx邋E(Le쓀>vv?2@y'@+-={ !߁l!rZ T L\rT}ywIɘ03.[/%XUAD 77/т@Ǐ"Xd $ u?>㗕 &Y))i=II =gx%0_] `K5jA%%f`:* +0h}{Y88d_ _034cck#F'*)7w<02ܹA]]ALL HraO⯢bZj}VXX8鿞(E)k nu3=^Q ~Efv57ǯ2>} @'8t|2 Y SLd8~$&8qr(edc&L[\(& 433P7@Y}ܞd)&d&@5þ_n9 A*@ Wa7b;w0!ɾYOAL螿X@% (mU^@@,:r2@ IJ񟁉;b n3}X+o~`8{*%TpYJZׯ|NSJ?TT?+ Xa{+xO~h n2 @S(4D+Ѷ``,:!3;?T5ʉ{tD'@^;`5E%xB GlՌ?ߧ 0Qb`*k0 23cܾ},ʕk rr`߃Hj@;ty߽}(`ߟ//w@|*g` o7WX'|~6p=0d066ݠԇ*/`7Wq_?| ?]TbG l@|=0g7_'E>a8zt0 #@B XiG~/}> +/Ͼ}%@1Sw0p}c`x0>؏`&* _y3hh2XZA ? ;Oq`~,ā'յ@"ٳo\pP`L ߁f3|&2AaD)''`CJPP t[`yyKTN/zt[PVOT @eW_'~nada߁ ld89Ǐ%$1E8[nS 0?ۗW1S6o}ևwoy@FJ yH6a% P*w=6=xpWGGLjǯ@G6͛{jO-2 =6 ?.=OPH_v@@"PԹH?yii9[@ PZETGK_@"5`8]NN@~ b@1R +P٧r8IENDB`PK TsH1~ nuvola/32x32/apps/kmoon.pngUT fA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< rIDATxb?cql? ~gdfTbceo^ٻo:ag3|@  FN`cbd2R͵uԒfe```W?ځo?p֣wm) /!8  a^:^E>" -%meng//p0d! t70_X/o`s@AȈˁ@ 0~!#Aou0Ђ(;O^~:7͏fD.vyeh[/X^0J G.|[N40."k j8Xu:gD_yLX:V0}aZ4{聆<03c` YTlYaz_.Xb l9OB$# P6y{rʼn]H ؀bo#4āb@Y6.Y~Ayn`% * qF +*&C|sf`lqB N^FFQ3E&)q?`gd!230(30ht10(|@qz[Oh,;% ,r&@Ă\ B# ȧ$+!`ןT0yXVs13203a"@ |`*) pG3l!~` 3Û/ =ab` P9(A @,x-gT8'Oh#` )u~b, #IAEAS߀ #4gDDuֿ_362OP*ncK^H 6 Xae`bvՒn63+p$!  0~$ @ąš_PEFAHwFk_  @!|WP'@v?`:cwwg`^~k¿|c# N?@/@͋g @w#P/jـaRC"ln/&() "%En1^&@m~x,n]r]6]5rpy_@/^qyyY`CGC=pɊ23mxrvw} _[} %-޴ ujqo`1dT TtQg$'BN`@MC ^9x(*ƿX4y~5s`j``d",``g`3rwW`?~bX +Q`_r:4\p:ߌ ra +8Հ 0#Cs0#`{L.o雏 3z? gEtd XI5G9HY=|tϻ1Yg65`bacc`ԕR4v7Wcem@6pu cڮLdw{{@Y$@6!R+^i vɻ^߿cab2Qbxgx`djAd\ n~.*[aa @R^1". ZZ hg6~cf=0@ށP`{` R`ZB$r{77Ua``x[AĻE9:SV@@F]AP%) ;o :P, U3ffWzj@ =if9;;xX1befb`@ A)+ {~~f?:oPi = B)^fAScq11Y6.`3 `Z=wvo1?w h1~PH 0CJ:N]`9a,n/R_Ge. !IENDB`PKDN1&dhgh nuvola/32x32/apps/kmousetool.pngUT `mAaPQux MViX%LS ,YZjfZ,f^5FY\lr\JnݰƚƦ%KM˴KI *ߥ8b5' v1҅QE.F@uٽȘF㭕Dm\J׊BvRf[kFtٓX)=9z'ut,VNn=\7bT)2ZL uʗ*J,ٚ +z䐐&ZMSSD̊>wg=`&whwY:$)!j-wfOy:VvD͸\K,+G瓦|4-Lho`2Y֣k 2 F*3=Y7 ~%=M#7 ,' եr!_ %sF풔DsN9?=8os?:1M7E~Ju+𰐧QZ!k$ gp\;/G-(nh P[R#`_B`S_h"Q]-z+>60i.HsL.~X<,:Ay%6w*Wh 9|HmzŻ~ENT%_ Uh[*Pr*Y;x%(_H"hHT]yGb y"J`TϬF%Hbu-q~a#p? :bҙ qU:ʉY]o [_MM,HPd,xߔu}&4>v;jrP \}Q!Sm{U|#{z3k ZSfV̻LNՑčf IYYN.`d'.bx !#œ[NÜ ƹjLM)Ñ#1s1)2q@Ly9g*#×*w~b ၽ 3^8bT`ӊ&coLVO`&)U`z TӁB@ N(~Ӱ@?/VF?bV.a;#+ P/J}Z`؄?0ʾs*w@8!H-'7/w`T|Nt?B 5 r>h0 9 @LQ@,%G2;z wRx/g?X&p\ ^U%8᷊*!< x cuu /oNn` 𠶅Ard1>ᛳrX @,ąy>áC@8QN!U 㝗E,?X& eĂ.@L -PA#/ ف$0T)/01j;`O:Ąl(RdZ\` o΁ [  ! låK\nҦD XH cP9`g n`ːf =fAe @ m/@xV`^45#_ 4A5ܓ'O^ lӂ+ 1#@ w1zFB  G ? ~`#8R޴dm^P?F;`߾}s v T G.۱'8ÇbDd?F6 .ݾ&|wȤ|IENDB`PK t91y!nuvola/32x32/apps/knewsticker.pngUT gUA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe</IDATxb?@bb`@p H~6 RіӑVR?z  -UT԰PQV3іUUUⓔafb`f(o{rſrb3 :SGQQDZ]]AL_ _~exPXL|߁ˆHQ%`cccccd*!!M1|g"fw3{AIY c`cgc`*f06vXu#~; PB.ˣUS[GAP?1|'`G  BB`:C OIKK3pr1xzR%pYXXiؘ0pqq1|k d7+++(o>@K?} )#3ß?[?2J.`adۤ hoA A{13prq33}) ..L ll@q^I&`| ff &A@9bnhh3nܸ;++A^RR훷 4*ruOg^^>_0y>lAB͛7: . a < ߾~gx#Css_1##,*%_۷wN|=\`@n4 _`qPh]?_L@f@~c[f3ga`y͖L/ݽpWmA?0HAh`߃ zP5,(=,fccF ? u^ϙݻׯwۀ BwnqsIpJ2 @C?3Ђ Lz߼~,C8u뇗Ϳo@Z; uih(sppgl6?(283(XA7oc6eMPNZ>׌:уo? ,#39`P l v(+221},** ݝӾ͚9q˗݁Z?C@am8\99.`| PVVf`E$L [7c8ŋWRP-l \ wqC6 X K51qQ``t03yVV6'{}6~hW pΜDLL]LLGJJY *%99WYxU~}976@d[=X[F@G=$Μΰt73Pz nſ76@xۄ?~|qҹt`J&))y~+޽ev@D{gfn[PPr*FMXE %F)?ㇶ?!_J:&DMTHj w @70`C3`2IENDB`PK [sH1b=~~nuvola/32x32/apps/knode.pngUT fAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@b1bb~_~1pqq0(dgd'ß?999Y4dy%Ź8E>|xǏ9 Xq%(h13p@a3yy{qq1%EEyYiiI~~>NN.XX F8pP u @,-/`(sssY8);(100T7o^3zAQQ n*ӧcs@a8˿L6RWPFX޾}W/^H^^ӧ _f`eee+ . 7@(DI@7NYYXW]]޽ ϟ? 2 L# ϟ?F7okkxb/_>,Ă?KKs@|ի `K?~ N`߃,E"xyy|"QKK3EEE˗/mφ?~bƳ0(-ٳfa`dfPSS[(.tgPcpqqZw겲F?~|& FO2 䐿`;~ w2?3 ۀDv@ (=z 7Pt >|GH`ht(3SgN1QdgϞ}:`tPЃ 9@Q,P ?H(G3g0;0ܾuREGG !; |g/x;;;ذ'O@,B$Rߠ($@b*Z@@q' @pԛvT(k lE8AYr(@@zVVV \+O@{ R*'' 30 J\r `d @"ZP٭v(=s 8XYY2 D(2`ŋW?|2A1A0 aPT 6'߁A @??&+G@ZZZgZa;lsKW %BP^ WP°? J@ `E^,Y@i 0}U @X=L/ ߃,Py$̺_d/u<֧ĄT[;{EP<#(`e6`B0P4%+89AŶÞ={~?dӀ䀿ШfϞ+߿v(@Y JL"0ǀ@_w<(,,Xpڵ. _bp&كw\p߿! PTPv޸q˷+V,@w[dk㻷>2OCC *AYd!KD @ݶm矹s8tn@w -C8uaP3  KA(d`$0_3ܼyaŊ׬YXaGM xŵ{͕/gV e&&Fqqipy50kzSYAoڛMx䑉~f:  xy 7n\?L{ rw^=۾}sjqqp=ʆ?c8qԏ;_v`TJ] EJ a]3jX[;xWHJkkwƍ+G(}nA9"KKKo޼zׯG((@/ ~)8нc)@Z )IENDB`PKpH1-2̓)nuvola/32x32/apps/knotes.pngUT pfA_PQux %UyT+>i(\GFP˴2zĢ ٢y˰D@\3ƴrMyo6Zڢ娸GN n |gy}>o^Nn8퍲zCZ?/]Z:Ġ~_dT6b0QlfB.@= oe ,4`E>,<oLlA[lLB$.'hk!Ѭc/}w!%Wxlѻ):t$ 8'2Nk3 c8>mGyxPe|6Àgu|7 Y+"7/!]]j=o:VA=e%EUj$-ǏPL,W]J:ւ8cDnh@{eO/_0\-RK#&SIP. {E~Էr zڊ֒aY(Z1$F=ż#=W'EEOrPf.VZ SB#g]~Y~ċ Kx'ɞ(C*:3xoV.RF o*m8盼z`7~܋!䫙\qZs idnmJG_KͰŶ’ Ca0/Bl {A0Xv&y: 2T3#=V]֛{PBG&A[{($NI5 n7'lG_{d)J )IX&=V!\(|B>^ITfx;A%RZv!*I[zP';.܉B[8]z#hLFg&d(׌)/mǏZn)Z-ȃ͡5F@lRJL-[;RP9.5DsSߚ`1!>wɥ3݌f1*$6#^T!ڪLXm ]_ 0,-՟GΰߪAmLZMT367$8} f׎ n5ZŰ;l bFQkѹΚQS>LG%6V_bŨp!fT!DMKe23fEVkj+<h,xHSD?e*e4G~wU +rCA٫n3# K7o b ``/jфb7mauq4^äĚ,*وQ d Je+I`c?O e>UG;: OLoB8u9Wq3{޲ջi8,v|+Th1[pVfEuY7leRSh#pHrv}-iqa%:"I+.9",q\b)ިL tDrB[U:/VnQ ƕE]YA\W;óLhqZjezwaa;,jLv͊fZ ˞1Y5u]&4AV$!,;JD.r^ k>=fFI䖍p ewAF+l>@٪C广#-DLG،Y H~*M<BM،6E?ror;pOOo n%RrZ~];ɝZ2%u Aq39Io5.~rI8#& m2V [TOJMZב"(9EhW!8y1OPoN gM@2a죤e$-rA?CUS{LDqt@?aZ׀c@7׻!hO߭:oc~c:gxF^@S?(*#lhI)dI$'dJ*8L_?gVU=Kn_W> 444 k1l#m *s U$`ɕ(gF9I8бPg/_N&g}Ҿ⼢P.Nh1g7Mj]h/%IP|FSyZQO.y֎ a;whoPKgG13 nuvola/32x32/apps/knotify.pngUT r|eA`PQux ViTS$pHĊT, ,*MXV@AH^eSWW( I Z`]3(‰JGc;sΜ3gΜ  ٘@  .o^Dädl9F2wEf~MRyxnx0  OrAx0 P9-p.[2߁yhşetv@Cj )׿]|Z\_EwлE3f##[Лw hTJ8>_Eg'"/p^kX‡z oKV;m*\,W~ )!L}[Ynyɤ W[!_p|ݗ9C2hYmnQoVh7nW1rݖp2xiⷙTcjY#m;^-]{f#alٻ4 |(iTRtD߮^К5C&ֽ S( X:$iHx)Va )OluɮTu]\e#raas] yZI0>sS6]MctoG]6B49X tfG0t&cGF[P3s'd11s԰&;9%1ЎPcA;g ό?I׶+΍A@W;*/`~|^5S!\)1-SJ%5S+ё`}˳8Z޻qv =79 l|4G|^{&Pq֥U]&wwL|Zi]G4k~ZgS$coCŇGȴ w0,vNO7?pmJ h#F?֞]#M#tAkrcЯyWzZ:|{gCcZ"T㢷]L\fju#\ȋԞRrCf;}:dԚ?WA~Jeh3%DjR130r/rHդ1d1cZ+I3tr4̘E9:16404-бxz+Eάe=УYѝ9=k`JW >M2p|I̝叶f^g EW"@v0c&mo7X[w;4&.C/f;,T 6XB4+G`ۏQ-ݹAXc5Ƿ\bXU~' /l W=R;^b+@RjxDHZJsHgnnm\Ӭ0 دwK:,!3/H,ʒbJ^ Յk`ȧ<(dJT0l-zB%,UKmu+{\ǧ`~2ވCZﯘg7OnOG}`Zilc> |r!u:64o ΚPOk{"@OgOjdS]x\6@}eQyO2ngA#_IC{ewy_o)\ I!I7{iBrHbI 4HrוIӼKp 1299 #tM}>p({YBviZPK t91Ca}XQQnuvola/32x32/apps/kolf.pngUT gUAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X` FFFťyׯ_0|9 ~~eue;m۶1WI3Z2 0011 ts1|^WXt!y&&N v@nn ""pb/1˫0F3033cUTa01deet2L @tg߿! q(rl a% ?~:Ќ@ˋ\}v F(`eϟ?g$` r? w fScK10xXjsbgʅ@8m̠a%2OK1yĉwnܸ߿ ~q w`0:HM_~xžXu60;vO@hS=&ƶ F@KS7P${{ءrQYf 0ORP3ePղb?8ʀ)B=={qI3<`fzYXy0X3p0p g^?!)fbd &4&? p}mo!!3|{)P7N;@U݀!*ڋ.'`hm`:4;6ccc 'h7w#-}N>~[Ȟ _n`dd`ccV\ E Wv<ǯ@'? Gn;J6dee9q#9ӽ~p#Ozoox#0G]6C@,K 'f=gE7oy8XIJ1yAA37ѓޞo/}-h󎅅aZ` g@7 " QR-l-|ql[5ʍ+<L'Ld)#ʥ}X- @8vd (\}%4F;ϥ$-Pcmq\#b@ x 4w@zRKIENDB`PKA N1X} ) 0 !nuvola/32x32/apps/kolourpaint.pngUT mAaPQux Vy\FOWŚ&&HrK6)i9Zd7lZF&.nA3˲$qϩY|=wyröoYl! ޺{,!LJI1)8m8VyM6x xSD?6>G >ʍ}ƞ>ۈY=WX*6^&!8";¬Aq8 c(鰁pg;iG S $n$U_϶CP _%<<܁ V6[Y6~ά&q_0ڙAx~[[ q'U.r(zn rgNtyio(.mo%|"rkbGcN_' \w?8@c,&SGBؐce{7J9;ϔ$d[ZuX5,|(B KZUf_ԕo&Tu$t޸E*ϙM鬁ŭ1 CD(RS)g8V0<3MK6"1ϷJV?eR*RSظ;p]C*C?bxh|f[w,e]HYܡoӄR t-nlIp4 !hQ(/Dud+cj 4s,duBOXETKGh?^VkkM =D.\ 42ANOEx:!?nsU9߮jݎWnuˁO?[83Lك7' N~ p[# _Jr:ӈ 7+&'u wW 9^@٘N!ab`M ɆQV'_ ebr>+"$6yA/EЃ K6)ûڔlј aqIu?BzE~x{/|!mUJ4r:',谱uȻSugRľu[r yG B(ŃYvrC aϱ+ ځ tEj cc zImES#U;.S<<0_J van^7S_WXC|B=Ԍr|BKqC6>DI`^l%3-az Z߷dTz,\Rzvvݵcse]f837\l?Z4VR<7= @pLݳgO/_ Ϟ:ƍa߾޾}} AA{`bŇLyyu/^2ܹsʕ?+׾|| /kjYBN^'?~}`01ϟL@=J> s~ L @uxF߿e2fBΆO~%p21zqpp]t̙s%6ԩ /_f5 W#<  ?ݻ3<~ASS hY'''}`r]* bdd' {lf AUU޽ ;wna9$ Lm>PL@:˰e`y (( --̚'6mo(Ȯ?0K9Y˗D~Gp)v-ŋ\F_O>aΜ Ǐ2(^M t:ί@o{ƀ-P`gg{5'Q~*  `6Vpa/4!.. @E~~||<@l@ P78è pr ̠ ! ot)S)@,ZI t@`@Lm5@Z?t@t Ő@u@r)S8?FFD@P,ـl&*:?>aF.~b|zxT+{n0;w-&@Z@vСe-@h4M@; x_pIENDB`PKHL1΃2u nuvola/32x32/apps/konqueror.pngUT 8lA_PQux %W{< |RmJ,f%Y'S.TKan$b[ 9jnRIMs՜NE26}x^?x=_/5,ڱ}nO z}ԩi2T}$ٗ' 1"bcvDD[c+3)2Z)hq+Qt& :݅%d/h5JP$ o~ؾjmhk;EuU#TcBCS$bԧ a=h|<:KfnCp}V036wBg& ΫO7~|yG}3hNH :&eKTŲ#>3l3Hyvzza{?LMi7"9A_8YJJ&uo}r'Y;+RHxO'ߐ>;$IޘAu䂯yS.-_׉~PE['쓇o <|(pQ(ab͌b grMgЛ˞&˹,+@\_4FӦ_!E hNq-TIy$C%U SXg׍ s>c \ !9AݟD U"loGn(ڋs%yfA24eUF>%CbсhbHzSz?m cB%X{^R꜏ ;8&1,:(JL2s>Heh5\\ :֙3PCE"vIJfvco0ߤԢ }7~[x!=l Ked1gAvnLahu;nddvq"n,"X[yOFT5Wi+mwbKbk7a 2yL~_t۵sbxո \3kfme6 %.gb";Q^ Vya.OY RhZ5&2?cvQp_ wF,H?{Mρcɇul+K%G̕Huc+zf'ccL>?z7Q[%%xAw*pƢ+ ϵHύ 2U~m0'^[LpqF$wƸ8GOwq=ĎL9'P|Ng;}ooW%72$ZLFL6tY#Z8JoUM@ g*8$h !tuC߾ lm1-2TDcT {`Efg #&4ܨ OMushLc( 18@K8掌GvSܣCǔa>go `j /FR8ju(TݹJX)F]~qپSLe(?GZ9H1֝ ~jwP%M U6߿l6!.@MZ#LicixN{%AʿĶiS\ c?nS} qGIb vvJ{(VjgOt 1 1cd>USKyĕ j$s 4J*M_E&fۚI!n'qpDVVagjש/ĝڄ.wլ;V@˃.兕<)n v>~ MZ;8+DN*EY$I+Efީ.q5T5ZQ<8"}V!*ͯi~e#-vMp,}vc!uʌ{EfO׌U(:IxQMZtAnnmFb{ʀooA"YW.KϘ\t:BT+_*7`-PK L1{1Wz z nuvola/32x32/apps/konquest.pngUT lA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@b!!) c wo߾03ϟ@5$99y޽{޽/^<ɓG~ )ZO:û ?eͯ<+|zDjhh)1)CCB yOgx×/r< bb >> [Wj~dp @ Vm3 K? egu6Å 7^.N@e> #m&,t5L||vL?ab *cq&Ág~~͠ #&:ttl4ܵ&ؓ 8J6jju.j02<{ bÛ"4L^>̰ Z Ңr ںN `e!w\ZwESlca Tk%% _/|w1Ub`Wg`a82`?YcG/Pfp'̸}Җ_nFv@6&e< ~c萯>xL|~TTL: rZ R: _, ߁['9((Bq\G8 w o~ 1|'E Ç߿>~x3  < j *FǔMX,32|!) _ ^{RPNBqX]8TkE;+C`d'  j2<cx4 ޼d-03p0(0hj23&t+0޼'Olcؼbϟ?+@ 02\.fe|*ֺY?}p]`| Yۂz w%^2< ^"bR J  J `~舟o*|Ed 2(]HV ${wgxgez t^r0<:G ߿~b`e``edPUgs^]vnmZ@`\p ZĄ|,R/_+?9X~ q&'[ Sq} E^<=wo3| lWJ0134]"@1Bڄ/L9?y8޽>ߟW_?K'O)lܯ~10_xmfv ߹~- cǎxA1&`", 0 EZL#sqd80B%8VDi܈8ƂN=?L#:؟0M/VF4>96- GPq)|A7 v҄lq{աzJ&ܿ`fH}X120oƿYXTZ3?]w^2 J`^- MnǏ"'7_U~Tcd*9 Č yF +~>sa%ʇ";@Xw:*_4 %Dadϟ86P r hǀ2Biع.ϑ31qw12QQTV6:71L:+n&/_ܲ-PU46PRUT2WJ?@7 @(:"# 0JIkV1*y}7@ * Dd$x Օd$%98YS?`RLGQž yex$4TxĄEy p۰~臦Hv( & w @90B-T͆(IENDB`PK}L1x9*/nuvola/32x32/apps/konsole.pngUT lA`PQux UiTSf dEܰ 4 *BV ŀ$D)"F S'@DQ@KK䡀+3ߙ7sDPMMFn bD#`N{#pί _c̰X( #I)=)[R)@j I&- l-ɀ$e- ])Oev^ c""צiUŴ4#{Hsi@34UHi }' ,!dKS]d&%3 -=)G]\p]c%cnZ.bɈ,( YAgQtSΤ \-柒uCOf^p6oX1{0K;W5Zڶhz=$t,dc?1vY̨]bvz*GcK:4 2 7ZZ%Rpp{;̘nY;tpM*ʙбz?yHcu*WL7Mhn5XHø\m1M`פQHAeQ>TYY 7G{nj42[J? <_F-$ v擝W`.^]аVV#!+e f|Q6mw|a[K!ISαqJ5hQ:m5=[ʂ唒NB*ǒΚr wPN(S8\S@/7as$&ڸ,nX.TLrbVQB=z(?F !.v'ו!Q_$ 4傇z( RvIP3Éʥ3͙KW>FVaQ>@~2d6JCo*(d˖bfD3.MzSѐwC,1?quշ^n(qr.ݤQ..|E< &qx!v qe+Vei DPq-R۾S썽a-mhQi8h[A%}tZ]'-8XPɉ6"I>4WXbpި+ 1efST);M.:.<$8 fKߞ>[tjG,v?_Ag.웻>'qбMNjF$kl>Gmu2P/kUvtJWzpNf&غUîh/Sq̻"Nײ~#*i\p26fhsʼnMv?ot0_x0 xfi8;]KG'UNRR啊rYߗ-5Aa?~εgxfuL5l)yUy~4V)evmÍc= y~PpCNk[ٱخIR@Q{u49y\訃dž ZѭƏDń^ PKxL1;; R nuvola/32x32/apps/kontact.pngUT lA^PQux -iTSOrB,H: * "T f ^ @0X`RKokK[ = x+T\'DIpn[-OM[qف#sby$ԩBXp^LJޗ9Yy@$?I7;sk&_ەё LDYx 8+K?_[ [h -+֥T(o  Ià)--=lwH~õITbk ,фJ˞',_U;v懄j&F`|_R^w[OM_}q{4Z ҦmVr MM=1J#_TkK{ǯ-ǯ+ʞ* M p~|(b?[ !vA)˕;9e/=mT3;=FLd&ѿʉ*O%esc}#D(mj`Z6(B 8G.B|vLGw.~znĎ(rFZu;hU ao*ÒIKwþHBT"SHfv::Iyn &#S܌NIMCS^K(R*j:ը ,b<ô1G!kX,|aĨLPay6ˡcbcY+ Z䰎@HCxfgJTj2SǼCEs4T-ykz _oaf֫oVA*jbpnd[تg&wx}h33"7dv nYvZǐ!h|8;zL".L5gjq?&%1D<E֚lo .O8&lOB 5\#_'l=-UퟁȤhCEpPb1.m/k@K*~)h3:?J6eKm] ݦw MKĕVVc=F}LqߙnU5I!*&׏-5Ix^.×W񠤠p~G9Ub?&:ykkģb6F֧cvΧiy E ;w@TLrA6vk~DE@]u'l6 SRpgfF&3QTWF0ٷcZnzE'jyCA=ͽ.٠lGZjpMIʹ>kCp*sC:ɩ/S@`> ixGy.ɈO+p=x<W?[tefP7 5ꮭ6gSOTȸcYxך&Qc43!YgD׫Z>Ļ%e9'9-6/]&=Ú!\p$X#fOOl.7&Yo'֊t13gkOѫ};qcRAwX>ZGR6,Z8; MMK{Sk@v\0 6ˮWS\dșfՏ?)Y.E(6"^v0Fq12i<659_9#舨q<<Ԛ'/_vz9apԙ*@b("Q Gؕ! Y}&]M'>\i>u\c?Y@BX&DQe8D^r(ѭJN]:W&'WzdyS(y/G__qEPl)/PKuL1w8" ( nuvola/32x32/apps/kooka.pngUT lA]PQux VyXAM\ 4Ftr[ʚ>mRˌCLL[ƤQZFMN.-`K6jib,ߏ{9}{%x6E0e-a?s¬w@Y7:sp'n M).*t$$#:r_$#|BK/l⿟O"anhj:PwvO Om*ofsҋ:v@`kU|e.SNKj^ ĹUNKg L~.}n뒣U9`݁BSt/[?!*C^Ywq^wqL4Uw @&2**nhHHqxkTk4pg!il\E_]/`zZP𡰚 h"JV0RAx|!7pf]^>Uғ7ݰ5LG<)/JEcc}قKe ;͒G.//iƋyO*Be::8M7 ===#J՛x ltQcca\#CYYW yԿҹk}~,mbAI{l6޻:}TYI5)/ mQiӭ=aajBTFg A{3]y.Gh4caAM6SzXM FpȘ\Y^Y9\d28 w˜f; K$A~e^;2!>*.q<ñ*Ř1Wܼ=ņ{b(=tZјN_pQ0Rq2{XY,7bf<5iwnpAkQ$@l+f<=Zofxv(4Y#%ieMd|rpM%Bv]ݶ;mgY(eEH"ժ%B!wNt- GsGw#jj9%kw#YN4аW6qݪxzr~l7Q9K\|rꌞy<+) yU OٻpM7呸%&ƢKi[nJj]xE;!5~#~"FUxQv&>v4X{ iiTPskEJr [Z2^;zZ+]I6~--]f_ ^p, dfvS+ᚇUp.~ d򨺜R@F8h}cAhƕZAw"L{4/Zlp=tuI$pl;Wˠ),HBXfXR؋ܬ")d CJN^:~Жl\߼2ޮ@;`{NPauuZmpf ²YdtUEeQ@u-I@I- U-#=}6j:AQHxq{\.@,&Sk52(&}}=ƍ2YZ,W6v~NJF9b( ]`w;I=}UMa&'[coL$}ԷyK+tyB@|J^5PX[SSYk.yc0.67k_W?R&f5 הe$`GbONͶ{{lp]ghKG4_A3t`Xj ))=.Vڡڥ6?\J2O>g ID>ឥ6p N7ĘifV.͢r=K&VD?;bb; R1 mrN?yYY91,}o3%/X"s:5~7#b_#07&ѷk܈6H`BQ _=`[oSPK3tH1is ) nuvola/32x32/apps/kopete.pngUT "fA^PQux -ViTS%H0A A` ,$U%) 8pP@@mC1@Ч0DBpb!!i|g^Y^k ش ?ߵ[%ȈL8ztҘLx<)Jӫh R],)Uic6yG̥@/#=VoeOrG2b GuRUYA7Aѐ|&ݍ}W돕D.aiڱ9颭U]pb\ c+[rٮ9荖ha#Zx$jr/5"0 9r5 Ee_}.r y ޒ`Hn$pV1xȊ'piCekB :FiN˔yഄqp Iƒ%m}o㧃̯XRUʮ9LwJBZz:9|2(۱op)TO&>mE x ze|.P[^ ~kx' ~4"@;c"PfPp,oݰ)BgIa%mE/2X ZO9֍`yQJ󧓖XJrGi5 u@Pl$T~,}bNW ˪R49|E*X:zDҡRCY?m^bal*#j7H?d6jT.$ڢݙb^oV_'R궄k_sL ܗ2bS L@ws"i1fu.Pt/˔z'6Tي+b7Ex>h 'څxb c;A Ys>\퉏EִQbNТ;A,\m?7P,z}68ݥؕe1N܎7$y佈c5 WĀOӨM(z5fy3 ]uWXLӋGځ_fP+tE;=D|BJ6fX Sc5rPw5F˟_ScMIU\͔+[` - PA3ss(0>՚ %-̯2nng^$$upM-3kh庌yܮ}Г?ۼJ i@4q6 CgFpG6|OV w[2A{a ɞ[>UhYm2;wm.,!}fj9YGt}8Cj7 A20Lx^/ejeujha>C.眈:$f8ղ]Ұ\p#o2[idM|8=IvN?O4D0=ihiIyph6Q:ܪ;˛3w[rH|]L ^@KW'3Gd?9)Vb0NW}%{]][#21 /j C_cAG9rݢis1"lݭܾuzVxs>vĜXp3̄'=||VKA1Z:`)T]EE{ʪLCq\ HCA(PSt)cD@C 9 &?Xy4_ĔZ*ρ?BIL^7%cU8gPyGL 1&o|S.ZܣJ!P5m,  %R_u{;Ir"k+6,eak:>L V^M6>swg c3cOh7 e>ÎAz.TWnj{ =R"ߨ7WSg}`5d⿞HQiΫ%ÊME-see4TbfA,4@_ -n'B E>"ʜŒ(%R 1IbV:o6)@Xn9[+ xb3GW^<}N?F9`v}59{;A)Ѓj2aiTGQT;Spt'%xj]zrgƢsu;y,M~B3oR\qJgЅphj= 4Ub8$ g?O׾q'oHjNZG ;GW0DPJ%.fw˞v}@PԐdi1wcNeV$֬ AԧN13kfVIko)c}w=9#p73҅'j.꿔`<]te$eܧ{+/T4 G,vaMEi\rue݈?VbN$ؠ M^0N_ƓyBԂ,OLˌFQ!{4/+/OU k?PSOy73<mic (=,H' N^y$FrD4 - 6 Y,6&`ڽDj_QHTvMDW_ic:4msfIv[J-[paI$3N*Gr۞0'2R"F pK_WR%oFØ@!lE]&NODd@ZWO%`N-~Rܚ/Qِ#PKlޒ~yZeO 5e0l-=E5q(h d *kXyLir2M h }\A e.؍dܢU }61y1 z~bE'ʾmȆ1 /S\|n-V6y{#S56/z (C"xVwQVw pσEcuNrJ -`_yũ&X5Wtcaӆ* C-,VÎlḦ́P"X5U!L{M> Vjjq=ѼpD͆Rճk\0{WS[~+;̮W>JgUzaS:26:Gmk Qd ~)ZqBlmbM&ҔNEZt ?˜'k?ji&f酑R!1l]p2~*{=$ 3B` H6[Ӎh78_Tr_r@V_?%A )'r]<3a_@};㠨?fIdWWDXNsڗ4Mu'.V#ٜz e=b֚39"+6m#ߐCpTG" iunDL\ZӪ}ei?:+޴RY=%`;E0=C Gаt%&Rxo#qũJhOYPMfX|-,i6 Q ļ<:mo u7aS(++qVcVd{uRֽ! QP)d04e.^@iinΔcpp`':p̧b$?,fqdAK+&ڋ ~ 1fV؝ŅƬ4CjӜ˸s5}B^x}_'TM-/ݽTzs1"lݭܾuzVxs>vĜXp3̄'=||VKA1Z:`)T]EE{ʪLCq\ HCA(PSt)cD@C 9 &?Xy4_ĔZ*ρ?BIL^7%cU8gPyGL 1&o|S.ZܣJ!P5m,  %R_u{;Ir"k+6,eak:>L V^M6>swg c3cOh7 e>ÎAz.TWnj{ =R"ߨ7WSg}`5d⿞HQiΫ%ÊME-see4TbfA,4@_ -n'B E>"ʜŒ(%R 1IbV:o6)@Xn9[+ xb3GW^<}N?F9`v}59{;A)Ѓj2aiTGQT;Spt'%xj]zrgƢsu;y,M~B3oR\qJgЅphj= 4Ub8$ g?O׾q'oHjNZG ;GW0DPJ%.fw˞v}@PԐdi1wcNeV$֬ AԧN13kfVIko)c}w=9#p73҅'j.꿔`<]te$eܧ{+/T4 G,vaMEi\rue݈?VbN$ؠ M^0N_ƓyBԂ,OLˌFQ!{4/+/OU k?PSOy73<mic (=,H' N^y$FrD4 - 6 Y,6&`ڽDj_QHTvMDW_ic:4msfIv[J-[paI$3N*Gr۞0'2R"F pK_WR%oFØ@!lE]&NODd@ZWO%`N-~Rܚ/Qِ#PKlޒ~yZeO 5e0l-=E5q(h d *kXyLir2M h }\A e.؍dܢU }61y1 z~bE'ʾmȆ1 /S\|n-V6y{#S56/z (C"xVwQVw pσEcuNrJ -`_yũ&X5Wtcaӆ* C-,VÎlḦ́P"X5U!L{M> Vjjq=ѼpD͆Rճk\0{WS[~+;̮W>JgUzaS:26:Gmk Qd ~)ZqBlmbM&ҔNEZt ?˜'k?ji&f酑R!1l]p2~*{=$ 3B` H6[Ӎh78_Tr_r@V_?%A )'r]<3a_@};㠨?fIdWWDXNsڗ4Mu'.V#ٜz e=b֚39"+6m#ߐCpTG" iunDL\ZӪ}ei?:+޴RY=%`;E0=C Gаt%&Rxo#qũJhOYPMfX|-,i6 Q ļ<:mo u7aS(++qVcVd{uRֽ! QP)d04e.^@iinΔcpp`':p̧b$?,fqdAK+&ڋ ~ 1fV؝ŅƬ4CjӜ˸s5}B^x}_'TM-/ݽTz!!agyO6?J@1YefF9 l9  nC8Awbdd맻NͿIXvvvppss!!""^j2?~"lcc?`S&&&ЀD :Bד < `G XH///*Pׯ={視pĩeGKdO47 xnu2_[/(=?`Q AOl`ZZZӧ od8sfVeeJ=}z}?Ѐ0(w10y ?~?>z 7?N1111w1ܾ}T0+G`NN~gPs@19WAk 2@O21|n1\b (A9/ ˖bxXQC`2}f@{y`A0Q F@ M|_X[,Dҫ!u"ϮA'hHi1uY,%RynG>h |Mn,ɮz;4: >)W 3X=dv`|. ӧe('L00k31twW_ ;| LJ< Ν &`2^7` o ~G`v6ӟ`ffx-,`acc<<Ib|G >Y< e0p҄4>E{JI" rD[_`Y>f`1˙{Usm'˄ ίKE"XJq|Zz0㿂ˣdI$=]hO˘ /Z Db%bUIo%}$AкMgybv^XJB`D$wH6M뛤m"F\@\/0@b׿t?fddd&&C@i'0(b6٘>}b[f`)$?y%7|6^Aa^;[[7_`%L# ]`X XY @̯^ݺťo߾ ׯ켠T,\Fx~ 2pztW`a?ȁ@O&>Uǟ0s}_4eU̶^[ = 2ه=~|,;'/#(D0w U 30LE +'O_3hjˁ cRb֖F ;`:Ȱ`A1`3ČT,Z޽sy X J<*23l#^?4 6ZAV|uRy4by fed`ebfdf0ceHQYq0D1r` Xfb`j* γ!ȩo_f.`9'w#wͲMd$)= 96!Ӗ[g/6en/mE8$ _.`xv.~ ?13|Pdc?!J9e ^ 10舵  @v.^.c\Gǟ'1<{ܽYh @,<{p{Xr3|sd`{/zLK3V)q!Eq؋o O ,6 851`uex3n\zO` P`@g~>p03H 1|zaӱS]40G 8322K5Pf yE^0/5`h?ε ߿s3p 3 :3eF?+{2~*YĂfG#Ksa1?ڙO >c^`ZHO@1 +_3i @|{bM@L+q` 2bB o~0 _@dd߀Ĭ L KXؘ=#( $Dpff~  ?(3;Rn /" X'i`1_m_0h;;#ß?/!\t322$ a' ffV`{Oۗ0Hʰ3hs2ȫ12-j_!@}k+Ьo~02B\ ^03z_ *  ) +MĠ-Lဟ??]/ &謥!- cab``PLpْp" ^ 30ʚ?޿ /?@amS*Û^n9v۷j7"7Ð rR,f"_ե<mځ0@:9 10_0z.3P:!v*SIENDB`PKL1lNnuvola/32x32/apps/kpager.pngUT lA`PQux U{TR><䀒PZbYDBkfe5p&RTc9#G؀[6͚%(t'J6io&Qߥco?֮H4ycd3wQ.&]]*_8kfFQLYn~jv$ܗ)Mcm>*OKJKUVwZ7G <I DGo! Vv bo|1giEk3+㫀ÖJڠc6UQ qVɋFsό<nOԌBAG+j>i&v8x b<,-)k⫠;'^M.r/7zs:؛(#&0#=FQRLj!?qR'7X[uQ}{ r2߰'\-jO_ iYR5/Vfj0<LH*0>r.m:fkz'=%NbΛM5 uPC,}{b`'-o|MW2 $hTN y"T+Sgtt76u\ :Qu0/,L8¸ц3]ŽXv3T Wn,ПpLj++Ǝ4!ѱ ou+[vr*ƒn ^фZ.v^MЊEa֯L@8 ?IJecn<^m_k#tۇ ZytBx"k?^C“M8)7ےN94N 6)/bYmX AQPqQlrUm$g%j\}T"jip,E3J(O" _LC[Es5 +W^U9iJJ`Bz'lLgu8Tps ñIZI`umu GnՒ7aQ Vn)&Y!R5ty.̂SQ_Wy^:Lm̀;j4 WLT=dлG9?~rdٸC;`Gt'AX5G̣IAKXLC ˆJ" qKT ߱kLM2%>&!|ܰpc;4xsnbΡCN-/^t4?LN,$wd͏C[ Qs yf+n ^7֙CAy{$6{S:ÑY}Ք>KQ̦!I$=&:^{m|u:R^WPu^`8[ۿ:Z ԗZ/}I/* l٩g!2+۰`M,p"7qؔݕ > |B7G_PKmL1X} ) 0 nuvola/32x32/apps/kpaint.pngUT ~lA]PQux Vy\FOWŚ&&HrK6)i9Zd7lZF&.nA3˲$qϩY|=wyröoYl! ޺{,!LJI1)8m8VyM6x xSD?6>G >ʍ}ƞ>ۈY=WX*6^&!8";¬Aq8 c(鰁pg;iG S $n$U_϶CP _%<<܁ V6[Y6~ά&q_0ڙAx~[[ q'U.r(zn rgNtyio(.mo%|"rkbGcN_' \w?8@c,&SGBؐce{7J9;ϔ$d[ZuX5,|(B KZUf_ԕo&Tu$t޸E*ϙM鬁ŭ1 CD(RS)g8V0<3MK6"1ϷJV?eR*RSظ;p]C*C?bxh|f[w,e]HYܡoӄR t-nlIp4 !hQ(/Dud+cj 4s,duBOXETKGh?^VkkM =D.\ 42ANOEx:!?nsU9߮jݎWnuˁO?[83Lك7' N~ p[# _Jr:ӈ 7+&'u wW 9^@٘N!ab`M ɆQV'_ ebr>+"$6yA/EЃ K6)ûڔlј aqIu?BzE~x{/|!mUJ4r:',谱uȻSugRľu[r yG B(ŃYvrC aϱ+ ځ tEj cc zImES#U;.S<<0_J van^7S_WXC|B=Ԍr|BKqC6>DI`^l%3-az Z߷dTz,\Rzvvݵcse]f837\l?Z4VRf}9wnҤOM:` ݙW]g܇wK5,BuޮŀxB;aHYL:5O嘋pcO7BoCR ?m8Zk!u}7)Źڿ㜕>A߄bG N/, fGaOiu'yZ" #ZwW zj$kmS}Y!lc$bx.}&au0E p]`=Me |yYy!9X-Xl}Ѽpsfч_2yup^*(s]ẃ*򨷑du"h3Y ꥘Y3wA`ċwPjيgElh`}֡$ (%f]$25@GFZ5Y>3()Ec s@DjQz#yzC:toW_q=›y{=5俙bSm{9Օq-!~X?jwB*߲IZec\]P5⌀gv1}JbvB3gfТ YvmY Ùy]qe0W!?Qթr԰#irڣ`(e8]eNN?#noEn$M:2Cq Olb+dʘPngT 5tGG2vXAB,%'^yY  Y}IKp5ua[T X2/ȷHtcq厸# j4qXKC[tk!г{O#GޔšCpV%XbwMBBdKpSFj.4S sp]a\nuI#Ƅ1muR?0.`w -]چ=^qTcf T@{o`b~Гڗq'_5\o=+q6+1 5ڜuL6]q%$] OZ)wToWTCo!Oj,ٙ5Ux1X0,^;%-^:,Xd^UKQ\恓,o0~GVl mevWTT#][*DerIC7$ a6bRltBwUbOS)g ZŘLNIV|^V78+e{f˚h #U$[\)8ՎA"@ahB F>]};X:gFladF 0ðyEc:vMcЏX |%I$}.a]{ >|TdZELYs.@ݳ_qkJ:mEE;kqx*p#ϵD.gfdiUMwN3swNK#;? s_7$\1lx`R/+8֟grء)Hzql4,NLON7߯~ LN5q_~('`gEmCg+18ۦa~58E~X8= ON$*Mdj@V6ElPKt91IY|| !nuvola/32x32/apps/kpercentage.pngUT gUA`PQux WiXS>Y r P)hVAً$Aĕ[p!!$ ! aUV d Ֆ(TԄ=9_cf33;y!.r۷mDh))wTpR7iolTҙ OEDBEV77;/0([f9a/q n/ŊnDR8,ckβ(R4#=JE;U>p1k.˺հ lXyȌ^|ODC|!},]Ø:ZKB8{?nW4&!.S4ՓB&icW5c]䪟Nӫ0iqާ *(SMolT3nxѱcEhTȨUլ5};,z9T% Gy$ʲɦ+'-gY hANoR[Ht8ec,% >um 7P_֗]Deq)YYu0ΰ(I^{q6p஠#0N<3,dF5߹8^3Fg=5OHφkX@SOgLN\ٝFTvh}BXhu ;&21`mf5nl)E9Xץ:@& s'7`[^_zBIvB! \<&ZnI!&P[ܦO_AIAk6\ֲgCy5%p&7!|~j %q`2<̾\`gUHٸnԓH`0vxziBFձ g5 K9jT$M./EA̾6I)_?cj:2pxFABE0K =2p,> ħu~~ho2|O ,fzGɼ@6d<f\P~Qx4\ݻۊgg:[G>4y\,_$DΔ}@80=S3$ApxU+FLd=‥W-q#>Y ?:fLmrI*`ᡶW`2Ɗ.JyFU<2)%PCF|PV)Z("/Gڑve텝xC1</@-;TďNJ KAUˤ.gD*@L :j< `IxlF cѰQ`Mt-/vtXk /\0E('M`BS:*S;:뉗,Gn;ن#o^0ElG&6 ~Ο-K._ʖܲ)rGU{t ʼn8/Vgؙ۩ؤ&bTU 2bj[۩Um6L(J>2O4>4]{fݠ jTWN48]Rڠ$]R:V[5Ezmәj5M7yc6v/dr;"a5b M1 ]giVnj#BmPLnԇI^rڌ%WՖ@\[i4i0'kGGG#uXI1Sd!ie*kRpE@lHqkzJW:JX}Tq뾂D:vi UFxd*{)AJ;=+RqV%v _iXU n QJ'`Prۣ2&:ADȝYx7xTesnFF3/`EN_ J}ݻ~gksJ M馦lACyB6ΨZ.xxdy]pTyzydh qx7)d_`߭8Ì!:Gm6tItƞUH9aKbvPB|o2>>=EA ,߆A;B9mDonUḃ {8 qzސ NE`Q]wKSv<;MGIV>< ` GFFz2KoHĘ ڕ"5=pz(ywGz a妹_Kz@_%X:x (3j o,mWC]vnzFF ?;u%s11?*w'-1Hܚپ7iS"{ CޟNTcM`(o>2]lQyj|-2R""qSS%4EO FHX2*͍ѣmowNפa.PWPS. :9[fzTZGYV5t}1f4/&τjh !j׸ײ `{VQǦX^-`{Ю͏73PKjL1D  nuvola/32x32/apps/kpilot.pngUT xlAbPQux ViTS> 7$J5+S%7ij}6SO+ೊ>!7 D"V,bַ@ el)Z3@$8{^Y{eƺ sh<'^/-Ű'ؽF|r8'?+̼ 9 o uIEgp\dE deq䀅D6k* |WQH[0bw,JDx=;Oot#v|;-ajOpL&R }گʍ ]ba .U)ɪ&}Bk9ju B.5qJڅ7OƹѾ_;#si=KDQkL(W/7DK>j%ʉY`]L og -{9UڭHrL^&XHZ/XHG|~hmV(v`WNV= [߇>J,!m O=\k$>ɓɖ79Y3kqsN0410#VLL[49ҭpLΗ&%ACJ,w&Ld|R72X3W菉R((q&Z P/ɷ2cZ[CkA0 >#pș^Sc><3u C YfuiՉZβ&p|0r\Rh+q^Yb V%py2*! 悞&,*]H,o1ڶY%*S:uHu[! i] >Qm%̟?_zԩ6y-A(d7XR0aCP:SCѦ'y592U$q`TkHi*tРv J]{}&ҞUm`ȆK%HA1NJ:e*Ue0GXTX Ыl#JEaKvs;|n22VzRT--Y3̴h[>蟾UsCBK._^#Tí~yڰ{off!q+GUl7'moPGd)( 2ӥ2c 곃xܛp@Κ7D?oNH? EgRRRԝo(WML4 ڣ|Mb"2Ɗ.*7/jjڏQfZ `͟[FY~U"h+=>rYk"~PThгA Y/zS(JƈS:oPͧ^ [_pRQよAF~|ΖnkN^YU 8.P5d6T>:6$EO 'ԷV{T9{JO PEh* Fd=(Bښ)ayOCnUI3jj PZѯ ӽl{ b4>Ͽ[TZ PKgL1tKW!nuvola/32x32/apps/kpovmodeler.pngUT rlA]PQux MV{TRQISA4aX#˩qi57ZV㫦2"2+5SVzV4WeLYj"{>܆BD[mof[|zFƘ%P^%g\sMrҴx,Os#vHWK{S;DTf"NB2 L 4 rK PzrD?#R y3Z P$hĢx,ѰyiَH*"//Ҩ=)Ku fЍwQ9A%Z6ǠCl9sMsJ&'tpgOiZ2^/I݉HV̒&*܋x$s2(e78]Rٛy "J'T3⚂M?ih)хϤT[Z+\[ڦX79z$; L[l|'n*d&|@" rww\xgA긗8.::"1I,x=M5uG 7!*bɧ)YJ9x^{m `QD9dzhWxty{7&ć=W#,hm.X@deqKyؽ,m&v{N7ebUcO#n!"Mл208 d45y9 EѴ T[1}3Y 0`π`g^ka: G/Bx7%uլJ+a2rH?7`?cX@7V熔z4Ԍ4)kTAu,(iV*mɁ9PٿYWHP.0#[̵ ' rhQt}]\Wk.j.:c%&'P)I,z,# 1pCEoaOA CHO| og`k]ylTH^ e-O v0~yo:6(~uj4lb5&mP47Om;z|^X̠!]E𿬼\91O6> ]n~ukǙIc-Sv~tØCXqSU{F|Pp(qOzvowcͺKucZ ōijDlvP&?/#WSgcPp)\*|<"jmfQHҨ"*Y[RJ[ɕ0whLv6Oq {j70uZݖdMm#,̧ %l>/Mc)N$cK@ܼ9D͍oj=WNK@?@+Dyp݇&ǿ MH&,#U JBaʃ/dk`=NĀK<T͔ pP[ [>,2RPKXL1K4 nuvola/32x32/apps/kppp.pngUT XlA_PQux {\ǿUT0X[H@Zp,VrNpNfZ*Ij.2ӂ^f yYfv~@?quzy|N~VVXg΄OiiO/<^Dy?-dS,"%&b3SX[2",MƋ8DSС< .lӟנ@ ۊȭ2 hL׎nzJy0.'uUl5*/d"s#}3SrIq_WR 9j(?JgLVT"O*C[V(Ik_= 't0:𻤄{;| _cwiMe'_3#SNϖpʪ*J{\~q 8L604=&Ruk\~%TΟ?/*_zUSσ&AێDs!I[q`Ty0xfivjޭCѢ\NMyl56)_!0jҏB'{STEjÄN788"b܋4)KUQf1V-AA3&;LkRRb!8HftokWy^ gH-[2y?_M+ݲ^a4 JKzS}||nL Qʿ К23(ݥ+QfTU$Y,mKʱ~;B̃|5ʗAQى"8w#:/ gһۮwKsR&ꓱSɽMC)}W5ퟃ)Ƈ3qnu#_YYY܋٧!tn?Hy{S9(^ 7\|uG.\pJBBS9i))l ,s׷m<耲΀? D~Xȷbd !-ǯ4V17&#n 8Zh. -97ΰbOdl dYe]@P%/@e4ܠ:(RE vyCfZB?G^tĘ;6ٙ(b{܇y&Gt%D&;>c!X _h\?}+s F`\v z%0-z,SE_8ÖlǑoPdMhYgR)s#<=(2bߝ |srr meoy灑b73Ђ`FӑWȺ-nŸ[ΑX4o|x)W 3IzK3p>&A/*):tۯL} z(̍ P} >;//|eN&(I1~u3T M N@_c)5w`ZX8 "|Z =v8 6nynyp\s.2\Vӈ>r:]רorbݛ57)[9+ |0'5=YKʺ"ao.:Z2,8_}ߟƛry´:3c5|Ʋ_h"\lj7?C]#)f~"Z7ٻ-f|:QH,}`_xgY=u.f\mӁMay0 qZ~=~ lgG#y53Em q'oPK7% 5z8R~Ţg6̑9iި^I6'L\į9M/YOt$An5ƍ1N!`:;.BL|`]YSQM=hO^c]?=Ia6A>)UT$)-\Ne4HWpcz@-{7);foQ9*(bV+>\2QZ+` ~Cbj!/2_0B%3(Ճm* h[D_p5h`!gn0f 4ȡ8~97 S#X(Vfj7p By Ki0#Ε+Fj5x%pg3(Y͍,]V-`8!;`ߵ0=Al\c%ըKmɯfyݑF^ ]6:Ϙ+`s6vGez椾zSj*<¼C2qES9$ Q`AL!?J7ZAMbF;SGZ֬)^^ 7 8~PeY^3h^4O\ BbT\y8Ӽ!.D@'&yA+ӺBq$uV.G$Q Q( !ƙ?=~{'' ƅO\9g.`*bVp5KWˍO]K-1YirA6BF.(&-1.MPĈѵ - cZ௄Gүͷ[N[GMүYbw(3Q?y.ŌmjWR~FEڵrNq$m18V=pu1٬l mj5f[/eك@6I6=tfJLXZmœf*7^6?o(hz~W"۷ 4+^,k/>}k6h4ΉhcAyhEዼ= )|~ˣfֺbZMFY ?𴼿ᮖX{08W(YZgoDIuw:[;u1{0[DU/A3:PsY$RK-,,W겞G9tGx2lEUkG{HjU  ҢY,DqxUMCNGyh*(ki(43![Rf.#_\,f2t/o"9IX7Ԇu; ?Й&E[=o5O0fxk@(:$ 3"^L53z]d_DJަ E+Ӌ cqpGagtߜiL&[]R8=>~# \}V+2c'tiׇ@jP5kP3$B-:tC>p{*(ŗ٧\=/ lτ"AK"먈ލ9؊O ߳`3p̡bkQ*1#ourjRT`,Z҉uv5!;ژ!O-VswA.# \ClA-wcD Fh!x{fyR/c)<ۍԆ`MVI0x#"Zb6Tȹ2zϋį2:hL|Am +& E OJ3&:~+ Vwreຄ<Ȏt?DyA&;̲qr2~%J..5.l~Yq}\o-"b]*o.a(c|mX8'_NM4f>X7K4U=]?F͜z^ ?zp[hS~s-X0WRhVR|R`gBx:J~အ鲼)}NO֧ mFAk tlSٮw}I-u*7%>L.1Dᄆ~O׾ Mwj%@o?>@O2{2ݚpN?v?Gc^ fVv o@&^@41*kkgo.FJ#ȡ3C(!@,)8RX?-ЌH0@*a9R#E, hT`Y?, @F.X@`!t Pǀ d FlZGb1$OH!/B<;C %K-J!E-p!?$8P!#j r>F?&`!h9r 0bpAa+P!HiPja!#R! &j OXVaU+!!!1H@9,Y4T2B0l?@M aAY74r?`dLr9 ̬ HI6OXٍQv?`~*?! &ff+Q[ /`ϯ@uS7 C"ŘAL\۷opulrۀ  JJ*Td`890ڛw>`xOCxyU0o/@ `nnn 2ఊQa!R:8 :k'<{)XQ\HHE1.ιaHRkyFJv'I5uԑ9H3H=uZQJA@@ 3EԸYAbPEVVrE ɁS#@zC _-7o&( -PǏ͛Mb/~託@-@ `#7,?bV ֔ߪ !>>>p~ \ ޿5PgO{PJcb `F"Pp,%XE$X+++`Td^a`+6>(}=GRJӓA7>[I #Prp0| `ӖC y蹏 X\jjjZ 2~~ LBB c$t99pcxazRx/CgKvo+b&AA8&YB_Ř#_޿k:bAvHtPUePEzggk O|gU`ObA z 6f"YY>1?޼a`t1 .`ThII1?Cb H @DЊ\1>>Ve߁IW @)O瀟@/0JĀ!"G 0o*y@Pf%g}y[/0302f>ݹh1LL P z@/ Gffq`62?=,p ,, ~ex ?y?`zLID?ǧ '`ZT )x T^L&/r]<@ !;4z d, &(LH FD/+@L^_PZ4N %q d-@ld\ ڳACK__u;P@t'h"aE1 Df @8lF30<LAFV6U%K^HߟP܂X~ wg80Q!LAX Z!< d Pc`< >HpB|p< ^` H 0d@L Ae%4tH͚5{@\^ں<m3.` IA`B@S>(71)v\u'zz`l 3@{ _Rx0RBcbP"z7 C-_ i A]`hs)PUp4AFP$A}5$A]@rӁC 0FZr 0_3<b`vhh q<4i+q`cBTBA%0X`GHԃrMhle(@,- \дPApY`EO6jIENDB`PK pH1NDƆnuvola/32x32/apps/kreversi.pngUT fA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,0#cO(^00t3Ƣ0$2 3 y(ccbfP0upN{/343#X.g:@~2C  R@||l  pc``ffx3ӟ^@r(n@,T9R&`dIbbu_|0? TDMڜ@#Xr|wƇwM?qyq d7<{i˯f7R}c dT_c۷޽aL`~fMiNN1^C̾(9 @8v;*{dpspU``QE3 mX $1M\?xo=?t`&G&@!i gO0 c ~ ;W\Q6hPuB$ <ظ1.!`~fQ`LUfWBS)DScwޢ6 ͘UE[/;A.%;`[>03<0J w9 B Dteo`eC=0De+P#F&, ; DJ4O Av.`r ʞ 4'0(ow6 (O__-D|(@so^2|ԤzE#?.yKN2*@ـ Ύ9{)޹` ]v`8ؚe# *fSTj=`ٴH^3^XL>~ct۾<88T [ 4@20Hvv uv..ޟ_>0o `QjT~FS 9@Y X3BnK){p,MtIENDB`PK<^=1]  nuvola/32x32/apps/krfb.pngUT DZA_PQux %}<ӋǿlC*P)TTJRVͽfu<_%0H)jE+[m6[!6KtO056(! . ibUdW^ &E7b^ZӇvYGGϏR26&޻_ (Kv G# [%qLWszWh{F v""{G(EYcz"9 D͉ku.|E⺃.VT8`7r2WPnݲ:Xkҭ#0s+p5/MwO ݩԶ6Ui`86Ş9Iv#ԡffi/r'i((mv[z :i~`Aރ~uCkN$"|v/:K[Zi%5uTg1\rNU0r1x:# q8u%,4ln XԼib7V"0= sQ2\m/+"j _VvuգEC?y%;GR0UN/ 1[& ii䄜LW3N38W)kVFs~kqS==r/k@]ώ5fAFP{[ɄPX@rw>>hr~1~("j$[]ha,-z 3i^!D;fF:1AFq(~}{Eg5'd)xzḑ_̀ cYj*& |h:>-"yhAh1lK$e _7`N yk) D Ӫ.g{yۉK#vя*I:qtlavP2-qXl9`*}ZS*"u`3Չgw0aEf;(gB:53Y6= GTO_+wc8%d&^}t5oH'g]DOubw}V픚vT ܱ]L83鐰@J>ze,]֊@bPG9٣;I5pi;VkyQ?إ0fTeD+.R/Xg(ܢ]E` X] |i5Vk,+\=OAb{u[G巿w/_667j56.niْHZV[LG XjWquMbSőjq#1~;j[~0\KMy֙tE.CZ֮ {(/Ζ*F5?la{UƆuZ P}Z+Z>$Ko ;(PKqH1/m nuvola/32x32/apps/krita.pngUT 0fAbPQux %V{4a'b<0uqu-z+dAE!cMJJ(R*ҽ$u{)Q0k}>lve,kR@[[_wf1B}ٟw2RiԵb,~9ii(w$9o*e9Ȭ-FN+(2NiZ!?bFz"P\gAl3x7 hV!I*Ҧm_!W%΍?_|0aǯzV GJƝ$^ Ov kV28~'5u ޶ ChԀ԰KQ q %&Y}g0.e~VSqN٘y|w%&W; o&"1 ~aӀo36v`Wܪ`M];Zt +qNm'r,b%ЌfA`#omI54~#9jI-K(x u鬠QPVL™ܜFTSɺЋ X~U̇`%$2"&˞Ds~WB.mϊq0Ƹ_I-БNSQ Eg8_3Vgz?x5nVMPm+ۆ%.k-&o)!p˦:}×jZ~B5\mV_@M:\GцvΔ%fJc;&Fu/KgeQ(j"e`-=[('t7pgӓknB*:cۣ _~@VL*X*9PE`P-M$􀨠KfFj,:?wTHFzN6'[xOhMdA̿:*>gV o}vX׊=Y#9{"iȚ?dO͍<S<3/)/.5VPgb>#>2}'9]Uys#ap>U[Mh>oB\SϟX8-rM\;8l L29h;.A^u0jh4HXu!>A9 o SY3}\bKhųX2gl3v4ʏp 66o=L8mG RC/:%I*Ϭ-BQׂ,˽` d4N@O% þ:*WxD6:iol| * ڰӪA"~۽o?PK qH1  nuvola/32x32/apps/kruler.pngUT 6fA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; 8c `: :&` a fat_? :K~._?("1 le`&dƌz5{MaPC֫r\~7]^]"̑mgׯA 0EhXԍKk ?.BN[ {Mˣh݊59V /0=h͖dN Dþ/Gd 5`%bgc!$]1 nsܨK95gcYxI@' }7F7Z"s~U@/L`edPg 5H@ jLAgl@ Y5耿J02? ?20Z30Hzj` "pBuLz %@V^g`RȰfO?K>ʗ  _H`h u1d N| 3\kQu~dzgH1 -0BR?0CB`\2#O`!( 0xIX~zAXW2C T!_#fC٠ 6&n? . &@XY>Wg`Xq C4@,S׽]ta׏@12LR4~ lf"0@ C h$o /~3< ?6s>@wh4w@  .w!J2IENDB`PKqH1 nuvola/32x32/apps/kscd.pngUT FfA^PQux %{<ǿۘ7lӔ Q6:Q](8)Tr̭R.3t)l̝D5M}~y?|~wޝ!Zk>~tњ;ܹyъBPeq#0яx&,>KaQ"g# Hv4%d!hPȘbojYA8$RT.?a ӈf6P# @ogK|Ř! 2K",FHK6 2;CZMgA˘%WqH2\ƭM!>O7^KY9BCH2EJ>CQ.~Z*!Gl(0y,VNO@BwFZ];UgM_O_{)}D8k] *3c2dx˷{5obOM3%䴮 4[ lڪSD;Yb ~tۛnvد[ѭu QI;_"Qt%"9Ϊ²1&pסx=\;D{}r1թ?u *Z&[WLu7(v0pH́K> rڑFǨw94aH6 ls*e[Mq-X{d>1A`%hjly1-"]_=x,nۖㄵ_NHtHPVx@n蜲6zt%\jk*U:b'ഖ4٠b>X d5TՀbhmZ$ ߑWi}ĪT&@ LlYPLs+pe%U6 *)5/#|jB@ ,9Ÿ@c谻|x$* }'}o{D; 2L)cmc?;dBl/eT x}('ڌ7'[:zpJcՖLXdd!uK2F1`H~yr>H3X&#f dw%J~.:6wߊ;n\n4uD[Ai+ʡqB-c5J ,֮Ϯzɹ!~:J%1К VJTЍsrtf( ~zPPSo|'[PJ3%)x:ͤ>ӎFS)xN^7ބ+>VC6ia!|q3x8eyϓvR,ijD1^R7ṗON(k檤[tgNa]`ႿcѤk_:_ §ֽX#OE5)8@sX8}L.zpl@:jj4N.|kGg${l33F[Qcp_ *i+GGz~rA9c0BL ¶tD`bpȮٯr ,Gk2]`h^ae^z69]3a+< yX nQ.( [. g+ xqR܄<нpD3N aڇ::tLڜد%FĠg$&)w-i='U9n1V?+n.ҳs!!J"PjjMZ"2b둺" T7Z<*/G]\ggSaӍ1<*nHLgኅ?MGSef `e[XDHs4cK97Z"Jy[;_[_@ˬ\cP%~|z yz+Y`BxI*d ]!7/_H8gHaOpWJ'6Ly{J`cMUf;|{++̶[|U*ߢkoUI ]Cw:CTP +/e#w#)9:S |V0u\~NQ=@Gl4t.J?5I1v!VLZIx< ^3zʄ~35r8gJ _ +{u"uRτS価w1/Ƈb/ + n@]H.)72a TeXzS+78NM\CnTgs ?0pf'=>Sd`R\9TLJ. DE0q׺RCoQM%z$a1ܳgT/]E @XK(ERsg#m4zUi-2,bT\kԓznYM!myO$BD|1*TG7KU,<BA9[4l׎fPK qH1i'"nuvola/32x32/apps/kscreensaver.pngUT PfA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<)IDATxbLIII/`ccc @@f%b]ŋɓO 27XݩS5 @Ao2hP ť$.""V, @,i~`0prr3 R'5Z@,**bpvv dW߻wA@@ATTϟ?pE d1ő=܇XXX d3 0 -Ɂ|r}z*-8^~ͰqFǏã[ ĂH5,T^zŰap dhhh?s Coo/8'ĀՂkٲe bl1e|2ءbg1cݻw F.itΝ;@gl j;wD)?@H͛7਀l!@,.B oܸN`2ʊa߾}'@999pȀ)g#tD.Αs r@"e9PHrupz<4%/))pA sH(,Fiv <2Ŀ>8nAbd1(mpppX+ޑ B' @ *`nݺTځzElz@TF6 Q^bȵ%:+]@O@ ???ֆ3kNt0GXT KJJYFBP &C- Rl3  0>YATʁcV \ JZ59XN`/8qcLv!(: Xӧ%A@ IP":rAd98*ae>H  Í'7~`i_yl @&&@@ 30_ n` rȇx@9VD?| _\ŋmW@VE?K(}  z)`%0jA *~޽K.}[~@*}o=va3IXnpPK@VBT#n鳧=@1m *xA@,:/47V0 9{P*Y J ߃ Xp @F5I6l j !W"e*&p/nFNצw@I>$pB| ~ّ^~MGR1|}1sIPJh#3m)O&*УMvz2+PV_8ށM;A$F #!$LÓ' WA^Um][C@G_RѵΙz-U OWox;;oX DwpJL&y3JАi865<њCwu^#=C*qjhk;(8ʇ'@S "rH[٫)CQ" b)K6]ufݐR,mU(<$l)Syw$˅":nH.wl߶tl4;T'=(}I8tNQ$-#ީoݻ>ٛ?huLq?代GtSPēs##MZzvwóOa >O,J^  ۑ\*c߾SB/^!eifBA}ʊ_YtRyj^M 96̓}Br j-uCv5[[ރOfd!iɄvٶtաWd_t3a@ jpzFzzS|>ÿ`!:C14IvuvX8=2 X`>xos28H&ҕi;5-6rNف*2-oN4)ҕaՔ_1uu vBJGO2n чaz| ]xњs;N⴫W՗2҃{3 ږsz:Mkl48ޟAA&ѥo0muъL>Bdj)>ouÊBחh[𲖄Wx5^',BiZuv ٩wڠaL&-%\~*];ʞi&R~~IkNM1{"x3 8'Y7 > -)qp#xIxBE*& Lsz{Gږ>wUQǵimk!3Ǧ! UٮJ[P@7(gCI^uDtO`F6Rdn/¬w %C4/Uds4:4-[Fu%ܛ7ngf?nZ4].~USEylB]QM0N .F4O# O,RݘmBbXXl 6nSTJiٓ-hJkZc]@j:ZE8$u0#')R ^Ϟ,X7JTS̰1;wc'UVH]Tg?[pٚPYrk3P!f[a?ɦVQG?a͓kƇB+[]x5.}=DZ~gx.=GYxE1~}54g0g?TXWbYk13H8:kMb `->{o( ? DDcÝ1'+ƪaГ czu<[yʹߑxPK "qH1(<nuvola/32x32/apps/kshisen.pngUT `fA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?6Ȁ t11{;C'G Dt _@c_XѰ-)2l2C<>© @t񯂨CUtL;L4Iu@1w /_b`صqR8000"{ b6la$"ϟ ?,|@B^0B ,..nnLL T( (Ela (J20%ABlb9&oq 0|AKLFINV\YcO& <ߐ?J1|Io02L raUU\޽ϟD7 F\Q3A.f XN}F9VK%m_?yUuR`^ :?g4T^p1`bfx6C P'}}} >d`|A;; />cË10&h.^>?31 } bdbcîe/ ~O>b`eg`|࿟ ?}o/;? q!#ǁ h]d{\6c c-rc`8X7 w3z P] ӊ|x/ן ,xXX|PQ@ n@0fdh8w2RrؙϿb)c{?^,n@`*x=`SPMgc(vKFq.` `cbq\ @x,d?RLE.Y1g>0Q31:| P%rňn@]?.baJxЫ$YyYY>sfFPPd {ρp3M12 -ٸ?>H.f5!";@,u b ?VH"a`cL0@,d4MC%XV Zi2"] " @, i TB.,D XHi|?Hu lLg<~C @%0-8B X! @E0 #<Hr@'@4=+Q@9 .(2C|LjQ& d#+083]4逯4}t_PQ@8+#h53 ̌H{B>=MH\T&h|)j~97aIENDB`PK 9N1wn`nuvola/32x32/apps/ksig.pngUT NmA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,T0/+wxիO=vNmc` 9Sg ,fbV fwwU))6i緊ajg+ȇ`:KP6)/qEov3f```@6bž, i魪p]O70Ả÷ ϞG=(Ifg`hM0{ Ãa`g`eq c/Psd/Ȍ$hn< ^ G2F@Xu;3?Kmgn yK0}y(AЖ݋ S?. ~n@adfWb`bQqMINBkax{ Pw`@<p5`zk>@7303n3\w(vb`x}6M@S@y@e#GilQJijk_6,by-\k 0@is|WȨZvYœu=xA?0! 0Bpze R]HkjA?@. t (xW@a8@)XR03UdX|fhEs7B]gRX3'\ Pŀ DT-,3IJ9@lBBbic(<6'`veKw*KD2V8a Pb  RBCCaɹA@e׀'wUfP([ 0Z$I u?3 Jo+i.Pd@c@8]aщrp5 \V61nH(RbRAbDؚ_Dl~wrh?:_?9Cuf8\jxYv+Lmg_V09rLAԳŮ<Ůڔsq /׊_Ӱ$1|-UO%ϣtrOi!+'KO[gf*GXa=@=u5)O1=S! c7J<^:Òg o^(@Ϟԥ$'qʳ`|!&&/`i2p`,i0dC7214F1gt̡xbt}Bx~%:"IJ\秴xa&J@[pqpKt*$%1KyB od,KPJvJblG)L~NPy0LTnwۗAlg -h[8ـ/wt2s'm[ &TrF,я"Av7vCU}*+:}šev~a-gP3_d_SwI/dn/ /35ϋU Ҍ0~nrs"RKĻ0:C)tJgfCFM m@_"+La\3HZfuK7#”#\Fa4Bq:"4+%" .poՔ;bO%NU`VJd6s-B^ c;`EHH<~"RISJ+=Tv}\\-}_ցLa+LCGJKY }54Sq =~~^=YΒ/"ء*|9?%*5C.9KO@wD^^:HqGdN#aMnlɭH9 0'}q4K_K̂"wQNToEcʔ:oY&*t!Dto޾U= )@FZP UWu>~iN*/حT]'ukQ(~ q^}jYމ  P,{lt7v3o4ӧݥ2\(h6ct.^jN o+gErL5!A:!Q:<R??q+0XSS2`P o m˞ԫrɮr_㐩%[{u^uJeE׵o<=z ^]ASȼ=e˺3sҪŲՠKP..4 i1^yP ac5w.⭬V?[̔^*.2=O`?j&.\O1Ţ77!.q@*x6%Qc՟p<~0 hlK'G "gOkyEzO{ S]]{1/Ix甸%4G1[)j֪&v|DK:Z-~b||`5%(T2z 9iKtq^Ӯ[~#V͌ s{SgiI?NC dȦwmj{Qn3 JbIkq)f⧁P񋊖C4fOlEnPʌw`n\#(7i׌lR4jϔ q(tx83/pOSLRLiwqY%zaĸp%jq ޾pL7"#<``u.gRhv֠ʴv!&Jw^x&5LH^_?)rS~޽׳M1ZmNēf=c wT6mK3J6 V-d]P>lj)'غ$qMqht ?S^_U˞y*\f1,6V9|t`?_&Ad8>Bg\c-il%'^i}{%//{ 6'wTnzu׌Nx\m[~!N釯B*SfrФ9yPnJ"q]p3+7yCQPKWG1e> nuvola/32x32/apps/ksirc.pngUT eA^PQux kXR7&5S7#*jS6VT9 ZVrNy@^:͔ 6d%j69nS gl&M'JL3H-P}Z]fL91uKD qɱ3&K~ˎ9$,mO Aap8 a`>sL޳#~),aaK%,'>i7]޾- LTP J2RxQm*0!nKEf M6v:ld{Se0K. ͤl@E1X;7h(N&PN??3Z;v& -R`A<eaqѓ:<=Xի]F;uuj叢+ߧ_dl`O^@*}w~xkӁj##m6E_VzTÂ6GPP9LteJPduk${qÚ/'/#,VUϻ8VM SpHws0:vC:8te^V$vyk;G[fO`Nv4ݕqq{T@p|G e"nᵴcCbbbзljz&# k\bwf4J׵Up90XJbZ!F@Ҋ *[SDb9QG+,[}J! qN:XX8Ywk4ݬj0:@D+`^*PZ/wH3W %-˺Jx %5l%zJ̓thw7!\_n4Q2ݳ0gЉSycԙ= wNu{gu`QX]sĐik+]ʩrV^S7m~rmO $8XH7_@%_.zT'9[KG"Ks*b!oÐ6<?v!$BE AKY[4ק{O$U4Z0bͫhIdq=s\']GRYT߮yc3 `hBn;JgcBº!ttI Vԅ#ݱ&e  wz}C&F$(8{:c5̜kiErd]F`!^܉}'qUUR>7?t%"IHN3Ғ#"0>B hV:r_[dcnv#d|3}K.!( 6x bZš=$; W1/P^RuÞw}=ANvtۘCi.S>"pۆRkVU3$B_I?2y*g`AC@qlHpn}[,ψs)ߝ Hسbt6c C;3K50gI9VU^:pvJ&晚4Qpc[YP=UM3z X4 fAܾ/`G@0. K: &JƄ%0v0PZ$L]ފJ,;f|_pc V#f?yO[?qw?> )*%>鵅P0S0ԁ&B ޥzD*x\{"H9]:A+2cugTE4|sm/a-e$Ki҃ɖIA, Ա$PͿ-.P+wF3IB7ѻF6# ?fT"Eh! ѕEX %@>XXQ TM*P/)ۙlT?牝_h')! |߮M.-YQx3~yA<ϟ- 0&=~4D+ّYQѯ٩"BC{S)dzUt8oB ru< i|]lmmdz-茁[.>UgE>>qeC\-EkmHA0`p̨A+CŚ#cTϽC GBTo pH+"sћlf3[Z*@Yӷq`d?+z{ŒETK)TTZE0UD:MMlM_-ȷ"Ef{  ANKa /(-%̈́'d,NȌ04nl_KE8/X8b|ښ3㣻zOD되ғv^`=NZl#C|N cXf&&e[K{:F P?Bx*kJiJ+d '=t{t{Rd&Yd4}CJJ'cNa`X~ɫ5PbyP}E4kT*VPore&tirwWa俰~@%]~ˇ)EJO*X D~\cr)icZW1BEƮZ!~$h)ej~_(J!2rq&|aKKHď aLg]K?Cm"9G.%Dڛ/eN'Ev;դWnzPiIL[wEJgȹӈF:')1 ,9MW:#e|| E͈q[q5aӛ3.'s⧣Nυ붭SsnuF/e)hZ2+y`@y?`zOƕM ?)y f>T_\+$)/W/W|)d3Tڳ/[t_h:=;q˖EWWdV=g+|Fh=e`a-\u ¸=5x[ bUd2WfK$˕gݔj|F wD1ן2EFkbȒDZՈ ,2.\[ޣT9ku_7ONߛ]*!)~>xYkcKA< RoUVr3UU=ZQ~PFFh(ro҇-\٣[&U]lAP=ɒ_4?3Z9HG AEbh#>p]\Honjzmws`zƠbj"v.{t*=2Aݯ_;6mj,[k]a "ܵZ YQ'x /fLMM/ALޥn'W9{ss9ss3ql_ TWߛ;?蹑#m(ܭ+I?v0HQ!5}0K 'U3#aLPF,~(Ia@V L }=.exmF;sd:o&"Hd2r24t'Ys)d_fy RF{H)f8zTuj`@_*, ]'9H8v {Um(,V (KR.#V.$j& Rɞ a8΄tE/h.b7OOn D8_4%_ A5d#[):S;ӹXΥl>PK*joNȫANLl*g,IT4C[^ H4g7Z  tqW=ɾ?Wi}$՚?1eExezL=^t*\F"-! uOr[F蚭p/ն`88I_P-AHLBѩFes֯$4!)#ĤJصp1OK e#VHӼ1/X8$?}"vǻq ތ[RmYn eg ['ʲ: ų1o|GyS m\'~A&1yc-Z>toxO茑C:x52Q>fY*t^&iF}185)VwhKu1"5ֵ~Hni&ۤDTR8@p뾹&^Hzˮ{ Š8ۈL$ox+[[<Q|Px2>G=p7>hȭ]sTV&"Wuֶ*،/t՟[}Roj\zUj!,ެW-*g墾ѩ%,MABl8+f< 5.!v0䬽Ouww#r *}i tU¤q?2MEe.)ks&mm7) Tsi5UJ\EwU׬ 6͚f7 E@`㩏6b8/)gV1=<7i\֞ 2/ ۄׯI1d-% oAUߒQ*fV1ceHg1|4^>n -#^.TФYʿ)+hBl"Au@/#A֕$Ttœ.GLi.JΐO|'1ղ@:me _?um&i?HR3nם6RP_X[D|"`5tU-rn3ž$+;*ݫ_Bf\| 1wuOvNFJ`33V)PϽ˱(ƒ;sc ׎&pSP9Aޣyy ow)>CJ zmXx `Fv$UB G1[.[+p~}g_}Q;z9juVK` ߹oY"l-8ļM\/kOwt[ nymygsiY3jI,o{Wk+kv(m5v~ BhoĸȅPb,'1Io hj׿bv(BJPKL1pW nuvola/32x32/apps/ksysv.pngUT lAbPQux UPSWX|c4mUQ@!@53&$$БCiQ^K@aAθI*" $Х3X! JD* ǹg9}s9G~ʡqofm=Ϟ?MZs4N/Ng(eAvT:EV<+hX tPpԅa6AZO4 --Z,(k7a28ˍ#b-OwN_Ķ&kGW5?tvCJeRô#.\t6Y4dC]ݏ3͆M|lf>$!=nw!;<`h2Owa4 `=vv΃oi?Xz-N&O!=]CzXf `'.eȽ5җɒ$.3>,[AJWzO]`PAe-vjD#lL?8e@$/wk{fs}d>>?iIPnߩ"4 }6]`v]1?\h}'ܝ |XaP$LU'W`Ȇn5_575Ր,OQ=JʭD0ȧw{OwCIG$PK L1g nuvola/32x32/apps/kteatime.pngUT lA_PQux V}\g~}",4u^MЬli-k+K3QCMZNf~%{k3XRe}~9׹)ڿg4Z?4ޙ FcM}.3Ĭ]G2X@HR*E{:!ut.{BsbQxJCR!PJ7B? "fߠ<`-nll GPp~RXqSoy괛tyq`$EvJ9Qȼkj6tU.i[&kPVVNl{P+XRr}c`@T ;xk5y4[V3h#ț,+fNÉuQ8q1cFz+uսg֯FG< 7,T*zN䦯R>@q F+m5=<6RI%]dվ~/oR5^ L#֋ -~GW+_hܟ .*joUWT.VUn (GwhP"r7znJYDD 1¤RY+o5*|p^I-4WE)CU6{}R^* ~ěFEAO8rz~OmPKʩb\X=4sm:dpyB- 9ѽŁ9F q(yE=Һj2JJ?>X_9,jXT o9@$p'$LJCqyv|KxP+_o}΂Z>r\+ʫ'3dv}l9Gk~59W/m-QH%" jwK[uVv Ap]0}0tBN![!#+n=x@'*LQ~p\s8ځE { Skx?IyYJygF 딲)IT}~BBQaDR;GwAz|s,8dĖAio]ͣ >iy 8X,IjQ3w*׼ku @iGJ1T^WC6b nhC}܊^ϰ>Aq‘Ǭ Gw/ewf]P^.j`%U^·B'xs[P4cJ6{š擽,ok;Ƈ)-@1~+ 1ZB:X!wNx˂7±SE#Ʉth/,o10xk 5~ή Zdnĺ:9D3\H^.S(,\vqb3v`>Gjrѽ~zv]Nlic9騸ގ8hA#EC"L$j@S 1x<1Sh4xb\0G6ߵ wfhg:#-* V\1 ˤ7)uM(}QtȬ5? "w&q| #_?O+{э;s)RSEfoWF i0L(t çt|rQzԋnǴs^PN;rDOH$ZlI1pT&,{'@##KŠf) e߃bYip盽}G[&bx^V' g^-EC3odsAqimYT ;HYVӉ1W7G8QW0?L3 J YZ6__O+f *$%ӧn~G 50=jq7y5d# , +{m64}K"тxp:Ҍ;I 뫍MC ū3ؒk VU=ݛ[r|r'N{7ϨUc;9g~bP+<9H{2M LL&PG#'k"Ec¬tYೇz]'Br{)D =.EN+R(4_U iƌc R/`*ߢ:U@nBz49i21}_ͥŶffTwDrE(l>c*HpgƉ cVL6^䴍 'b@<:$.raۖ.ew;&#Zx:lO J WI!IKTGg^mLY/0M.Κ0Eaھ" ^L+r9:IDʊ6>k6Ӯ<}ܙ:~a:GvH aoce<9*|a!L" ݫM2^~JG@m[W3CЩ߿%$>3#qG匍-U)̟+:['_A ~ 3BP d[\gkmf\y':RqL8D~j΃8gXQ>6B4#ןͽ/k˜ ĉ&‰_+f+c2\w{`BjG#%XUxl6t *D*Y|"*8ɖ٬\^/^ פ1-9ڢO1Yp zqkO>i]*wSL#&SE9PE1Bo@/p ̢uco / b(X{(Y)[U8X% e'3{TdZh]4S\E4#+:>=/ctW̽tccQe>F{εO37mb$lD۴\o~^~2x=r3@Kר ]!3c>X䞽pIu&7=* LS:fFY|MqLQw_IlY|.`utb;Rqep'gam^3,z|nw{3YzM]EtN# -Xr}RTEO[Lw}Os)_=xY-tXa\ji+ET0saIZ[= zؚ!E/y\q}'!J4;[mUA <%.287m!\l[ ^Tɮ^crKwt a YEgyo "F$1F'Xsu/^sO"r Z!qL۵g2,C}qd?<]IT6og,h,tVup 5g +'eylswybؿ$FbE~P.NɳϮ# ?v_)'+h?q@eeI1jrYnAk*6c=^^ wn}_('l^lN0f46,zK [}n/P\P2n9Y0#;Z;J]zR_m߹W4pgΤod1վVKue*3i|ѷgԏ:. Ok'xjC7Vt8whD#$ xT˽iS_} ,D6d ڠ0=_Y[m2ѱ.̚sU^LՂ? 8~擓?VSW&GZg3~!Pn9E D|>Ta) E}#/\:HbsF3:ndPK L1Ct nuvola/32x32/apps/ktimer.pngUT lA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bA12b(@znn_?ӏ^J/!a ʀ0@aafàr + g "珈P՛߿~221//@ <0`ee``ax+k𓉍AL12 2 ̤D@8wh @C9c,uyC7'p~+/ ob!,}b(c)'Y%?rB|íc |*gmG90jGp030r@W2CL[[F `9_}g^}XjG{t1?vP" `fQ(N0 t`/~76PdbA@AVYAEPuΝ2 ?r@p(k-m+`ؽ ZJl 2\ bb fccxã< *`k-pƚɫoe` ZPǡ/>&n3h bfb~ff122fpywdUdz'CE^ϗ'^bB `P2| Nޚ\Yi`/$/(2cIEEA\\ kL GVA!.JI+e72K"Xѣ Ph/026A^#;n2{1iI㚅AFF؀(\\ bbgͰaccs ǐb`4z; PX ]48o3p 0}l dV0L@d3Y!`n" .\〶#[ @YZ348֭?p ?-`R_rc@;[^Ww1z@8XT" pp;+I_\Û7.p5̏BJPQ`WcPep #~ P} S@(3}[=NGII!6֗ڐĉK oew1R ,\A w<^ͷ |2:@(E1(L ")?@X59ǰnMM%mc?~`xS_3|בAQQ'0Ks17&>a` P%#."z)۷T V`pq;f [6`xq * rr fBJ?0}| ETaɂO WWfsvPiN @Pj:^Qf剳lSr#~b1xEx>+g00K3y0m'+r.2|X jjE@x\ ‰a2܁fZo>0L ?i6`%.p7 ۖp V ڌl9 Ubji4 y b=q/;7&n;P)l"0 (ok &(* ˧W2|?Ϡ["\@7Vcf {PFL )XGIENDB`PKL1zJ\nuvola/32x32/apps/ktip.pngUT lA]PQux yTSW#/< ,B,A9 <{hj$`U6(=`b@.ՒֶR$C"`uTZ 3 qs~Who`-)aւG&+/4k7kƭ{nᖴRI|1͔ļm2;yś@&%~|7F#l|K.o2dWNd+'#7$&@JƵPΩ?7ɻcB  }` xA*gkW8Miәs\6 k Z1q~aT{uq'rg 08 -zD WfڨyӅcbmhnUhRhv=EՇN>G=]Ϫ6 ~o)xvpiތ]@J Doiңf&)" Ũ7W*rċ 1MU~@_KR 2AG MHL$ue<ą"M9O+O fNX3933Yd}hҘ% Dk':AQ󉃲YFVtɎ{#d3U@klU;h\$ ݍ_p0yKS m.}I@Ě=dJZ/6OM()j):c$߯7*ef}G *oi[[nוN#J7+|:ge-1р1 č{=kAwdxH(ڥڻslc>}I!蓤dVy5 xvj$D½T*|Ӿy2oR?jԹ<&M^y-'hbIa:7D)z'!EE~|eLYrE؃ к*A%VYc6o0_ORd/p2i91n1V޾WԊ7j{H0ر!U|mu uwfIJڄ$ЉVyc Ӿdq9^AFӇK!`8~HG ДԜ!g٣bq Uh;n p~hU;V}s7 tnq,znP!u{hmAҮS徦,t%P#*-. :0(=i}gF;_ݥC잪ݹBZ wb<^imls/Vcؖwe~պ*l?̐V}Kn9]wXzjj\׉/LEIL'm[mvhaبnYIk'cU)O0?F^JaX, Q*ι>f14d3#^55 v(KpR3kla)Ti{xxʃ^fi=/P雚x"yd]QͲ_Ԟv*xys=/߽lϮ赖vGTnfFr{T0h.-9":- MqŠPK L1ޤw w nuvola/32x32/apps/ktouch.pngUT lAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?dd0# L XP- A?I123QA 2ʊAFFԤ@LXsIՈJTK/}^x?F,o؀Ih9/#;~O|䓹zi厎@˯?~`caؾ};Ó''ٶL_f1giܓ^zy{O$%%\]]~;߿bL$ K@W2:zx]NݻI,oU$_ cɇ?<il'||tUUyA?w}@p/pfff R?xjrƲk߿Y| Vf !3}|aϥ3 9b dYK ](Yч\v1V?2 {ξrJ1@ !!a.//kfP4_fNR2 F TUI|fHRWcH FOO99Yo=/0g1Lo2{g?ej 42 po3pv`Q A\*xW9Ps@40 vr rAX3)3= _4!D,8ndxAJ;J~ X*F|ܬcnDs};~ D}WJJDf; \{-gfe.nmm=h@z2f BrإllYDh0 з!v?!`@gb7 Ѭ@=1s:  @H`;eu @G|#(*89Rq3dD L \V;pU9 Ⱥ6<Ykͳ8F NKEu=*eIfTJQmAq\ |)7o^V׳}  3ٿϗ/S]RA [7.>V53˃ Oծ0mԡ[ZlPH=E:rIyyie|/$dN97 jk2V8H-FwRϔ<1FCD4EkXqO1 MM11 𯸸0( ywWlD )P؛)(2瀴#?+]]^VVP"cg?}4 hPbP7$Thhhkl+ t_eggd 3afӻ|kGRqaFP(feLg4iʙ ִ}O2 @y/aKKKEa IW^2s D@)*1ee @ߊ "T~1B_ZZFhg >sk{X"gg#0Py T5?~k8(AR=0lf30F)all̠ aXbF,,l J@,xAQ 6P@p --- P*X,50GҌ `h[B}F; lkJGb^9T^ Y b:t0 F bP 52˃ %HNNnp5L@0101n6!_~F_ԤBP ן?F!+F5~pbAQ}Ç1|pb(/ 50+ÇΞ=)5Q?( .3.wE1'`CrH/z/ =@,A@%!Z l';ˉꙀE)H|Xd[he3}e{ IENDB`PKPL1|] v nuvola/32x32/apps/kugar.pngUT HlA`PQux iTSo A-@ ITd)ETR HZPE&" J<=bF+ & P-$/̜2wΜ 566o~]%?q|"#cVWPw_]HdFgh?!*@}݌#sb0TS+E:b7\Cݠd#mdQU!N" H~ V2Sl{I:b1FB\Fgݫ )\6JmJwh33g@}46x_wLګ1|Q@[4.Wx4]~v@mM9X)))r{/0Y0rQk瞤ѯ.G1rD~!aL5E?Q~f=ү;L5'2P qm'|8,x<A謖&BsoxѭB lf zJ6N'6pwwǹNmPv&,L\n2.!Ԅ>@-֥U0z\0{gw0֑p˳$nޚ_SCo8FsaE BwCcӈ'K\wxZϋ_':pQ4g |;5m; \I2s%3mfbDgmt$=TGL#_=ESryM$ [sjJJ_?d3A" RFdtAMl)#_qz z_ﲁdhxRdg4z| >^Go΃qE8j|ѰԸ=h;vZsBM7ѯSzOJPX|Yȕ&6!n f)b j\F`QVqufm(d q eGi=cR%鄆PH]p2 6LLya^vIHHC Pa %hP oBl񆨙%CfjH8Өo>1gL>~{l)Aሽ5Ca7}o6^U4MK[w=Tk{и3 z#$@'J0{Sw*~<}!5_$FO7/mxY-\$jr$fH9^:z 2۶6k>OmcL9ee*RO^d 5@ظYfY6pj"KѸ/g>&*.*`Q]b(v/a"?H5-ݵJœg|yX\A$BHy3hbY}6ҁ{dgͱWD>Y)q1wiV+۔bOAU%eCCe`gc+ηrQYkr||ReZu .(7O \^ٌ`CbRɋ1dqkL )xp$U>]z]V X[|1QXhBxEIV} A`5 О@ofcт&\ - mBڢ_yWs+. tR"Sd-[jgU+p`\VV車Eڧ"SP29d} ^Vmf 5ؕrOyґ!g-ReM~ו6üieMN8/t<-QEi ^2,[y4WO@lTI[..Ed)1}AYzu@t<5FsDhw4`h -.οN%%YFP!`ǛhnDT*7Ӻ6p'0XW# ݛ6;>km/ik[PvcLFƊ% =onS- ZKhZUr}u:bQ'oIVsedU=*LT<ɣ+z§P <codO_X@SЬH\ǤjTU@)IIuhh[>S`VPj—f\8~] l{kdّ$$k;O͐ 6ܪJoY]õqJG'Vnm1I_s3UIS!Pnz+nE0k=a$`^k]O?sH<;e钭q荥z8S Y訐qAii\M= d6h`h>v ;9KIuQ'SxγD+l/- Zh%PȏqT۟^A̯ Yn~Sv>n'ɦkQ?4Q \zhWށR܈'g/M|N|wNPŚW{'*U$gxWvȸ:lnz9:(XPEˉ'o8?gC^{$0&R va1i˹JTײTiGuIHʚm,D1zP]˪5vm9z?v\Q(O}^9&&3>z/ ^`5# tzkBU쳎B^lo!{),p&QAPKML1n L - nuvola/32x32/apps/kuickshow.pngUT BlA^PQux VkPS>I8@K(P P$*Zנj@!a *(Pࢂjc[yق$pBygArsfgv1`ov[Ag^g,O68b3#ߥ%g4uL  "j{ !aLB!H, ֦+};JT A\Q%s-M?Qkk-i26+}S1WkbڰΧaAӵu{af"<;!<9c?,y2^ap;߇%$;0 \M~G:.Z7{6s$@4KLcyiY$lV''X 'X۶9QEo 1VsELNy #'ҭV އ˿s>)/Hyat0{n/5w].8ɽ K=IEٗ>O\{0= hȝJ2~ĂT̒A` + 5~0Rx9{y AgX-ET\sc.t@DפQ_['oԜsOX2@"c?U}J)g1#]b-O.Huތ8m8M8i=mK&Ja&ov,zsrV$9﯀&GV/%W Z:md˼"M<--7xfTJ.VjՊJŤ59Tʫ08GRI$ 5f &eݣ{dꗘzq-niUSGy~ٹWjz)H'G  \;b@9 7WYr/jF%oqcz&=Ǽl.;esDÔX΅ʮ^TY~r qץZzJ(kpfk@P:=V_O7{)0 z0O 'ZUH(4y<~֐QO0U唩$֍iy,:fPb$6,,3#sO7YDբ$ we5ms>5L! j ȫ8T\ .piH֦N8;YU8mUqzjIؤ Ś Pe;R?tk?TLU'?]ACfq씊kX=188ބYH.Ά9rנB6sS T97M Vf3 录ԂВI}uC֍ wҒ:FnM#- ޥ+30.iYS7i/.’JoF #JDdYQFxGo=ɨjuhC=C0ӪwܟlKԌ/k, ̆Hb+Բ/S|uQkvo%@jE*yj~W{+3 weWq2P9z+>Hru\z#۳u);_ yB1^ǏYO|TF2q6ٌ9T1q[Iq+bJ++y-[Jz|fDdMRēw:/<* Sp3]M.=NiR*[aAtűqȈ iYpIଁUHup"츷PKL1ɪbc  nuvola/32x32/apps/kuser.pngUT lAaPQux WiXSMn@n11,$DdH"jAy">Z_eR&1H %QPTTh  -*d !?{{uַι_\1(p7HrL 㝔>m XP_cN>=8ljMLdtZBK/K\khE.z4r194nۏkmi](pc]}CYbZa'x dQݵ+z|v J~;V(qT5i?&zx*\'&pK.=m$ܪ"xu- |ThPvIEUU|Tҧ{c`*R^"y|T-zuՉh5mf}M lI`#C݋SV&1piejeCZR*۾U5v\O`P=z2^9)`Y$f@'ԮB pΙs!9L'G6|oUY?@ݨ=[Wj *{`8{|=L~vɥᮻݭ\V02G9'~$:jKт[% =5A (Pƞ#i%<[hhҌKOw=W-d]6W*NQ[6 8ŔQT1*{뺗5wNϗL;N;#|Gv9 v^A1B[q s K4RK|4< N\v0_V3Im/BZOouj K ])D?x0wXT!P0VU_Λec_/[/Z^!ճM;ٴ~]_dvk'}}Uq5Rߙlڋv Iz+wNǾtN, W(rok`S:b_W yc[ wVgiH@XL޴֟jnĵ:vP]hoiH u*XD(bS3==םvϯ&vT,Q1QٜέFIK{zMbpL<p2YQc[| #z1AxmgQEs,=fCexK};HbI5Hlk*}rJkYTA8ik85ЭocM~6aH&'zܖ Iק\Tϗ8>k (aip;qlk@DPYE0dQׁ/ 'i6ܫm.$ÓŌ0=#u*7dʬ ZiEjvMFh̗[F0p}ʘsѲI i zvA`wy$D^!rQW$gcLD,m\ڨ믨w1aq2O39S`5TNNؾŖgRT$/,+𶲖"S.,E`Hη',ifA6ꛨmN/"_SGG+i Q&a$S@֢aX~]G(6!G!KH,W3.~&(0jJ~Zvj#{yFN_v [21ES~i"nw+5k ='E7QXN6e>^]eR$ώط݌}+= Zaǐ&,&d}Ƭxu*ܵmd؉(L>Z\a!.3b<t~l4;BGh:BȱS)OxW88a7GD|qK1zKR!XI&Jc۠"->tܨBW6vQ>EkB&= =$Kq [YOǐW3X|j`x?G?qxs*SX Hgy'`T yւ7ȝ*yr+sq=%zWےfȯDZqR}TD5$a.:z%ܹo Py=xRVB\bZ6-~zGAy1W#z% _}̅?:aU P2N@dDG7-O_f]:v}SE=J_nb|Mi.7GTxگ91k$lj sw#N(Kp)НQ0Uãp6\U'E. E{%~&C]ղJ{}hmqֹ" *B`0\X3>Hd r0ϒlawB DufwfdxCgGKqk oB-2 U#vxEw"VHF tvUx"Sc+HP \(5O6y)7~'=`A;\e%`FAU3~}^2yJhz,-ȑ)Ddw~*~spm7i5rV @a+ĝP,iC!G] 33opQt\(\tOɊLB +U4  \N4y~M6rM9|~Tͨ{<`]K9\lS+1r-òo @,*|%mSm]/Ufte5`tz %p ̈́}mĆU΍rT7}φjI@~HIf[8 U?Vw/3w,K&-ܜ(6{Tw4-ׯs [npM39!b/5} 5ϐ zJ}R+K_}ԛ8Āw?Է<>o{<Yisޭvbi<KPرFD#ӎZv0Y)/+TbF w6K)wywr=UPloV9cҽ@b`A4Fy[Q̓}{[PKL1iPnuvola/32x32/apps/kverbos.pngUT lA^PQux UyPS%7$!$ &A_]\ BTMdS Њ K˓P}B[) J0%AQer_9g7s|v;(${+,`/O]Źi "5[qT&N=q״0ȥ;#R % txH$L8@wP` sǬ ۷lO{{UόOHNZ+AA U)]%ףsxټR<b2 ,f+b@0h4c^n`ok̲*(63&ƤX^-=KwB՘k3Ö:5sNAj?6ǻ{Y#W V)FHo ]rH uJEpF^=M6QiŐ7ZUzxhEyfhq}W#⤱FuNu2d^x$x?m8dJ Ky䧁+ jl)Z@Wdu4^yu]ett` c2Y%eY?!%;H`l3\Jd;fQj|c ܸ[Py~ :IHU8M*dY? x Z \ qxJ d 9xPb0iダ1p%=ҝ">v66ΩܰRW~lRVUԌz}ʖ/dOS# ˥r53ͽ<^Ԣ$  ^]aLmΌuE^hxi=OVZ>,p U4qb9 ,Oѡ.gؙ .vTu pքH5 h:dQSt5 ayr40oє&nSnc$Uxwu؇\ihgܻ_W g]d4 u_ROq~Zփ9^{[lRٵ\C%%J ~>$gERVu_Aɝ:tPntpOҔhm q`;gv))v!{;4*SZՂ85'gV;wuyQRV85X^K 0Y&6w62[u-W}q].qϜbs݂ѹIkw|9..W[Ǝㅞ[}"O Ր>jN)[v| ʯ$֠/Q]#IgECtUxCg}bظ<I%Ŕ~< Ҁ/fi3zI ƈ7pԎRT9%\LJ8eZšfTfoCa̬7.ag1`#z ВzÆࠠZWGm};&KzA܂1>` OEQ{AF6ʻž> |pW[뛱`ԋ5irSh[$!IdG2 sM`R>Ou=y*~xKq0t<[[>-ZazY fj':I<33Fdz.X\:Qܠ^@ɱ+_jH!=/-mkS37c MȩE]Myf$fc CQ4[uYխ}jݵ&* 燄՞k-Щ X hf'b*^"AhgF!?SDf᱔;t8Ax1w4N#9lR4.SČ +}P g~ wFOdC$KptVjvgJnvʩS𧸪>VGZp=Mcs9\9zܙ[g>r+Ss3F>\`^"]v{&-[n@B3cgP_t3MBΤR>j./d{!Y*+Hq)Uh%L exӥӅk\ғU6&iKmU ]͜:LǾ }־^pW%zJm ы xȪX;+VnrghPVB]Ўa4NS.[-fhKqxDINX3eI{u WhB1%ݪ%Wg!ksKvGTJ\!7Y-=W񦔫iBwbT:0f! ݘ^yA2lcM~BE0(##dW39J糿*[{vr0VCkgH 2I$HMט,bf= 䅄f$wodW LSp|,r}4t&+'@9 M,hL:ulHBNEas6 .}qnOU/} Ǩ8?F"qP+O}h-T8tcE eR t^j4\1l#6_ODfBB ۂŖyam؃ Z3;O[$\a:)-#MrP{̢r 8vd#qMۺac5;gK}"6lsaa`XC> _~?y"SR agU* S+"Yש'FĺKQ7U qU$'+R?)k;ۇ%DI ک}ay_V}ޒpPBNuߍJ`4ށpP:Aw%B-CO%'I]A1vxiC|L#GTљiK$ؽ \RI*Y]\L(WrbЌJ*TkϚڸ]+g-a?m"/  >YKԸw$/Ӻ Z~B=gk pD,܁~0@F1Wn/m6:>f5sAJqŞMxդK@j7HGp'ΒFMzDQ"tm<ف(50[I;ZԴ*!OlKfWZC=hr`4>e]r O# ?ި &V$s r5<1H5͔\$lJ }R([axgrᒁmLhh[9d]CHOa0oM^`*>V~a:x;ێbX~_هPKt91 nuvola/32x32/apps/kweather.pngUT gUA_PQux {8 9b yȴȌ1Q)_YQ j`2(:W*5:v3cG:"2$eUߌS<}==} k,Z`zӜ3pn8|xjN(6ȟ3wS327dL;ȽIMܤ}-U`q0r5;ЛF cرē_V6O~I"K1>QIWíXKV$0E FQ:ӰJ.ŐMȭN^.֬f" Z8{~5%~,-k[-4y Sg KzEL`-(&7Y;QXS7WAS%-P9YO%%Z pMm"|h޳pY ?2*3:JQUrD^a'IߜRy33Rߕvـ Ǫxed]ɴ qNi(G^#㣌,BՔ]tyşTxt`T(w|)*}uj]O)LTJ4lx.V ؋O@'Y'YoXQRcL(?homoPbfCcK2`XxE6L#kp(ʤvIT ַgܡ!^ p - vQm|ʧTcoJY'7ğ^Kڄbv}b19uYfP8¤SCz5T8ʟzd?)+Uge/aQ`hق211sB a䁡OS^.>K51ӽƕT>ef m#{@ @ -v9]89{vq8;Rue r)La-e|UV^oUFR(1\[GW07M̋)2F@ xLi/:MiEQA Օ8޵s,=IV;m5ߺq0},:YXֈ%捥Ɯs-itRs nАQB삢)9ЫxOs6w9B4e]ybL],(0ِsaٰM~UIg7ӾQ7vR!S l?P"d> =;JI?)M;;Lj%%RwҋmI;ʀ+(Gס(O󙿄[;} Aeя;}E6b#~^$4\~09~ьa5Q w{}hHڄ\λ-P%h+0)A\N·9| Ȫ}Зꕕ "̿}prW/0 q+jYCmNWTIcM$ +&W=r2ף w}?f}c*'#?*(8%!ܦ8>ؙL6AGK!U7('0.#W]9 *j)B&5Wo%Mo&X%[)fBn?JVK I:|9cX6&Bte({Qj;]sT{$?2Ж6`0^?Wd&蝚Ig Q[jd u 5{w̚'7 ՚M׾{MO2('۟sNR_φM/5!7PG=WpUϴt .~ td5>st6洖9V0o @I~eE񑖝sԉr"$t|㐸DV@>*߂vgzqU9dUv(*outjF-fˮ@]E;"~E#Fi6-#KeOJIT:Vr"a.bԋhOTg? vO[Ubo]60WO?srmJ@.Z@`)z!#]A ՄpsC{މR¤vb+ A~ $=/,2bKxz[koleAк'WqׁDuEW0P7T%~9ǥ::3Mkx(f) uSCn2 B݀c~PO4Ec -9:QЇA˶:SݳWquFfJ:f]+:{b_IOU"pcЉ&4*]TD6.#Ad~cRz%~ ~10$ NH0+oadިj9Bw3cq##% okl `8{mǏ~CP*A94?30L ?ϱkڿ_C t׾**S샃>|8233ܻ}aѣ'zd?v=Qυ^  #[e`Ƚ^;`+_lS_@|9 6H-k꣇)s4 4_qh[?A@0~aH"O@&-b )iCٗl3 TyN48dCc8H]f<@s?2lp2Cp0 8^87@˭ ( ա>eBd0sH|bAN`  66 3<g y(2(G˙^ypGJɟ %@ /4JءvE ٻ[ z~`bXnͰ\]A/ 30[; P@| j8&`TE 4׼y 7SK5w50}Đ#C&P/0Y0\3raDv߀`hNM%. ~~ j\`z1 q0Hx2,8W =Y3WFm7"00d5>012QgJHbR:7072B,geF`cd`c-ưKRa6o!6} ,3la|;vu) k#9/P'}7N  # $G2@b} V_+>hrg2| P!;0ٷ@7?KRe`Xu RddXY23+ FSs`70h`8!!΢'3;Rr`>;?%1;w}} .&m1<~ OVH|`fx~wYe_Z2  ` LȞ\X0c&fV?0x?N1|5Ce14v_{ i`o&fskO?ؘQ30qh?TY+ ߘO=*QEޱ -`fyk13"Rރ4p'o" K`8/v{=/;6Pse~ÉǷ8 X KX=&? :nٝ?m\$յ l1&<7 o޴B5@R V$ 4?9lvv?5¦{op"?k1^" `ĚC8asbcy%F&5  k@/w@ h`XNIENDB`PK t91y&nuvola/32x32/apps/kwin.pngUT gUA`PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X@pұ"0c`@| fG 9 Hr6#o>:;@YV!C?( 1DctXC ?1gX/@AXF\E< #7g^M>ceea`b]4ܽݻϠ0c``Õ+`:X 9L;6|(P!/g߿30s/} KB㘁! b`b}ËATAOO8b@p4133-[~C/0qre022!t CX2e~ƻ.1$BA~*#"! y;3 ?@"JZup$߁ VYY/ (pIF@0WFP|›Xj^9X/0@fIpqwpU٠;v...vP@`. *Z@C20 C3CHDE͞AC; (* ?@2 +hh:@ES!!GAF(++L@~0/!s(h /ӸX,a IC<@D9 ՅIE&J:UGCd90$Ch"@cȶ/Z,c20s^aP3b!NHРfd1wZ$xeꀿ  AM.Lj28х_L@_ JH Ą/赐G qrC`sZt+1h!L|@C2^T4r_#Y$" E3;  hVe@,TxCɛA]:6X C:&`yh#ö o^-gZ "@X)C]8d  oe8zh7(0t#9CA z &tKO{20[fdqBp7ivgҐMf1HV 3ΐ82F6h5t23/dc/ mUmKn8Mzé '.0lʬ@##(,@ L??Hv  :TީL,}i6OShy` $MVΠ@"caPr]ĈET8-!q*0%[>=0F >ʣ,élHBBc_1|z>&_?hfc2N2Ą$SR*'7 00ؘe&0~3pX13p;UFn>vVA`=hDlr nd6Au; ~ I=F~`@c͉=2212CC EA,b nloA% 0X! , 43 +Xs@au ?=b`)PBFY myBR# /S`z18m??3*ded֌@X)JY9Y$`;3ٌQb9n>h9qNōw331|Lf@*wCS'O)7$d~0s Нv egAo@M-EwjC( yO@8M؊s&``cfh"\'V<, ` nf, IJXA2$,d9ŀA,t~< 󃁙C  p8Ŀ#׷0|l|qÛG郉@ @X|S`Di-?`Ѓ hO~7 hUia1q`RIENDB`PKt91rnuvola/32x32/apps/kword.pngUT gUA]PQux V{< mنa+N.娶!Sqlu(iE'jJszKKn o,!))3߻|~ϓ!laAX=#c0|z6ne5֤Q)RR ;`l9l?1Ԗ YaAiobT" 6,p0aeߗ'WB^OmLnW\rƆT鲫\lQ(; =~C6XX*ukT;Ai3ӧ.:̤xT,H羬 /! ?_ GEcL% ȢH2ۨ1Z9>rVUd"gàY+JO ]\ 8?aESOzP5;/( K\]7DOEt_~|_6ZY "re\:!|YD QO@eG.r?,<l9ڻckJ:X+f&'%Sƿ@Z$x2Q89zנUjgTMH-n-bX wZQ&h%rvKˌ'IbxKǘ? EYNmfX~0vN8}q%|NO5VƧG-֊g>_j2rҔ^7k65_L8 {@$, ,chjA4_v??F"ɵ7%1k:)9$ʊ2zH]QWrfU/t1a"J'Jvb y;i?A2 ]32REq5D󚄔e4bn;5N& bK-#?aN˴cs${tR&}tK)O lP5gRv;aț~!x3_TdNvjS(ѥ|s5FOB+C7WH+Cm{wW94}Hx>YCj'{" H/W5. ٖ~~JՈt AM1jHsM}?3ASR j&E.#]ӷkHA]sNyqER4FN9jU@aA\Sk]PGl1UqhdIX^<#a77_pa)ԏK oE~lJ1qoh pgDY]Agۍހg f8}vΔu).Sd7DѱC|S or%62:ͩ17 N4hoo/w-Ac] ـ棑r@!A#?)[ ^㥨̀%z,W]+^HrPgrT<7ӍZ5`Ԥ9R`5T;QO@ Y VhHU9G6rmٗ. P-WP?p)#d-},tǷ<2-}a|nlۍ\/yS#4t7YD ,J]np937zaá KÛsae!WD &dL7qXz` G b ضT=6տW=d):hN]&UM$A"vF(ɮ-gQt|~n*mԚjZ U G^T@:LhL>rf[Ċ(zBP) ,. Sq0CUPv8v3}s/Q Ƀ::(3^n_]!fЛT~HVG;,59чR:JD%+^3qKl#/9sbqIK;q4FpN.a ܶlzN,t@ ȯqicӣXy 凕qoG1Rl< ({Z2~MvR\V +X؇b!w)]o2L4[2Vb:!AJڝa.vGk: cNX2"mIQ98n# "ڞK/ԼJ`ڊBT#. x,E7 g"fHQ>D7*MdJlѧw=mo+>dxo5_ l토[PKxL1}׎ !nuvola/32x32/apps/kworldclock.pngUT lAaPQux V{X} vяt^A3jVvG䢨-Vf* FZ[Yj`[s.l-R#\i Axg{*lV`ySŊVb/*Z,mhn85 6R veb& #H;ͱ] B8 ,:û&Ӽ AO3X*H['l$Γ*:UgZ\W# IqN4qpiU}3~9NW!s&N!/8U4G/̎BRjV'5s v5V &6?6K+]j[Š:Q෣"̵ ^nY)Z^c>zdu} A?5!jc@Є:xkİ;:Hn&z߸:ĭɷ @J*NнP^tDXF៫`ɔRip扁ōrCuFF|αnewݬ 6:yfEoLiԿQ=NxЮm3 ?Сjn** دwvUt-װ*vmDpF 0|ܝ}PԜ!n2BN;x1& ԋ"#'RU'=ef58Цs(Brj.Z͓}I` RJHʝN~?aԗXE,J.as%5jέaJ>Rsru41d_w: PrOﳋAxfIs[x-ྦྷ6wHa*d4gрC%YAeOWM}DA F&@BUx\,S3eJ2s/r7Դ.7 pV~&\`܌0?e"\-e1gF/rKYB84lz\yJ1C0T4or8\~é ]avv@/ tF7qU&ˠHF z~۟ MK]nّ~ӗ'02:Rg@=۬ 2 ݎt)jRvc|* 62FJau~ENCIOx%Y= Թ]v(ue_ē}w7l[ k?ˤ2L&},Wݧ.jy} \~ԕ2 7]vY# oD@k n o|{>[MMe/MQAr ~ׯCmRR[] 4V+qXN]ZǷpI1 sOpeQROc*26Wݟ4͢Zǡ7o\됏_d,- #6z- ?$NBc#l@S~A˛p3 %T͚<{]cı"QLHHZ2߁n:ͤ=VjT%tmgG \Fkٸ=1 f7ѠDݐ8״pObf/ f$?Js>>*pBBÙ&$#/譖 qԧo_~EQ$a(-7BJYa8ߢvzcCo>N|NTiY;4%1 #Nӕ#OW̭kěHvi'g>  ґ2۹(u^^ ,<Җ;ƿ[02L5c+V䁫VhEm_B A9T*Bľޕ; SJ iLm-gt @or -ĭNq/*5i=j[Hu&2/=(c!c}1NnVp7 ?5]3Bh3uAbE}=j5 BB[dAs_2ccrBYN7l=#(>?pF <$}zJŊlو~ǒo"MNb9=j]_m0~?UI2n H“/[W&hO!m/x[EM]6-aS)o<K[FPM#9Ιz_]a/NT$>_5"; Mj@ pT)]b?HOnm]V=k<[Z ,# S+KPCjz}UxBR'zz* ;?B)Vo{Yva͏q/r"ú[F_= !Uu_Kíj!{p %o4T>,wzK1r5P+{m4y5G[EWo-Aw_ yUPX7+0Lb\ƗᠻÛ*Jgz/3hAphz2Sհ^bj:͗ʑ)QV+/ I^Xx>7ҹn'QDomApnDJ_:h⨠Gh#;Nj4ZO6=Amkƣ_FkgF.*Vso+R^! c(FU0>2.#Bae5q6omPK^=1_  1 nuvola/32x32/apps/kwrite.pngUT ЄZAaPQux ViXR p\KtoPZc beZ9[:ei 4]¯,[lu2 -V6:)(%*p?qyο}yևn +6*GMѣB 9ꖘ7HJNҦؤd 0:AC[1}TY9Y 6Q0cÀHHvQxի`Y߹9j! #[K"!RWC}}VCづiVVJuһr]uecߓaBWFi@E9d4TybW-J)IKZ 9WiS3D(ї:O8t_[ iaݥpZp{П 8ONO,:ܰs'=6I[hPrwyzghsgU3͓LP1 w>rd,HݥB8:#oj bEiFT5(cum_j^}CUϤ \ Dy?ðOvc!v*_w'NUħ5iWny>)eq~Xsy!Q׷|=R l..'$^I7N/K*yQJ44I fgaj0L)cBCңqIөi:*nj<)2j4nN"0A vKG+&X$Ƕ\8IͣF>I $}aW# vVwiTbqɗ.s̙qc>)?I͞KВy|w봓c{#I DV)h=k'io)z(mqdL 5ɟuFl0Fb߁rXDgYX]hԮ:jF#_NΫZ))R%^ n`IZ$vQل54<*vLdeC|sECX\M_\<_ņX^+ 1&8cIw֑2D!קa 㯥߻n𦷞*<}/#U4ţY{頢 A?P *M/ ɚA*@Uk;ҫ/=yGu%"fn SD>i)%2[HX()6kmE X~kPrR6ܯr_` t0˽@q-'p\6eESW(<fxX1ޞo*5z#SN[)ogKi%E.o,i:~!#ynN ++Pa,NE4"Jn+qcq~͔Q/a?v7mԨɼ<^f6h̛(5scx}{.һ7vJFZnxS^w(%j-PU {g@![!>>+nw6v?soPs /EVswD& w^.0$ Es;Tb֩.?gqH޴<:.\xerBcjv"] X3FNKkV>›N?qs>(-H !Jl,N (zO'9E 퉟pI]}q۫ӂh&>u %mZwkCx~d;C,r$ ܊60SBtUdukT4-.%`7Q?km[[˭o-ҔE,쇄q1R˖}&@.THGr@{>h?!DWzG/=2 uߓ?%)+fz,8>0͍sj)?H >7%] (KSnP6IKFuukQ t,w+5y^`ʰwxPK L1O{nuvola/32x32/apps/kxkb.pngUT lA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb?@bb`@,C$?KI 粲2K33č c1bcbgO}&8,@ǻ>nUUEܧO$%%#A Q A 0)ϟ-eqӂ$P#, < % '0e03Ӆ1(z܁ 8O?Pg%p4@Xr?hZ͞4//P.@E<`z E'3X@|H0VC> ^0B D R9DCVτ!@,qr%(PL=  b&j@!x =Bi \cs@aP"S+b͆ pdaaw+`#>~+ ~pQ`>~|Y3n¨ ~p= `tyvPt>{X?ǚ#AMMƍ wF#V=38ލdeE_H(@@@U9([z^z0ɓ7kpHn5nAm7C@ &0d@_~t<;(~qݻwr⟘L@H (${ 3?} 7n̯B/.)޿ѹ> ~  F| naa@aa,` #Az_Ō߿3fr @zM{aa%@+0{ Pjf0ՕIENDB`PKL1XEPf | $nuvola/32x32/apps/laptop_battery.pngUT lA3PQux y\Y@qi,1q)c)5-S6+AGifjR\RmzfRy vDMLE~?sa-V`pk؏Waqw;$K=0H!&&N?y;-C{ӟizqUm)+u<J{w7 S-oiC'f|c|;=߆\v*} .dD dVk-Of*}IٌR__vD T6Stg+&`%Q}*+ mtqJ29%Ow}ǿwwz=Xubl!15ΗVG+/OB͕dykN\Yo]O?~}|v(VN$\Ų{gL 6̈Qf\6Adr5(!ik7 x<6c s2=Ft7h-|_=n'?с7P+E0]Tn~C3a9]w:=<["H[*dYۗj=Z'<0.z[AHyS-LBUCi1| zVµxj[FA69AkC'EB&3],m,'u x )~| <3֜*VM'J8L"PCtYw%W8sɹIp]yG%#^,`zވYĹ1Nu=GU]帉/.YQtkĊ7Z,mRד֩YɆoF;]|ޡTv1F ug+/䆨$aDM".H#a:D449"`džvNa^ytdn!])PpRS+YZTؽ1z=iO@|&356U;vIIei*+Tbߦ}tvrEg?6Dmiמe**>3$-ѡW8bkԣ;3|3#u&xr0W i#yg[x+|OםT9w4Z/\"d**K>A.|i?%cWtJ&I~^n9(83傑U9FLhWO|stQ̻pt)}dʤ~>q ie_ T ~p HȠ?=뉑]5nQ5}VpbF]R8F w6и]hNp$Mi[T1oGE|~g}9U nrLDzp b ml^(*aDG#GoU_evCuCɨYNuu5#Z^1A"D_ n74VY%NrHqA"c#^*Uɭ8OAAXozvW [atc, Ee7)IeG0JWbSRuE =+"i՘ &8S[󪧂ocˁMY& "lV5)fL408uyaMu'S8G6 b8MtA%#8x806HӠNSIA/y9dR!5 N19C2(9S87# Q~D"PT[T}Yza☵!0ґ c7ND/{9vIPDyR:BY, VU>}pHS޶tBE;b :71_zbF7%X9 YKժHV&+3t6%+Ln7s/wbmJD7|6}0YMФlVL" U =1A3z'ST3鹘OTcNV?@zc*v|X:"i:dj)ʝ֘BO$QvĊ=eyE#D?5Nz*\y{"u5jeJaa"pіmXs(00p)֞Rs~[R_lzLI}4Z Hvս *IH>i_5P}z~`Ϫl_W<8ꕻwj._Ɨ_wv|C-S&ski$4S:XMGx֒Y߰DGT/(/?'VixUv^BtǍ!.OhmNG1f-b?&1 r  PKL11 #nuvola/32x32/apps/laptop_pcmcia.pngUT lA_PQux VkTR><ģbjBd%Z&pGK)LI:ecRhI {73drTLWcN4f嘘ΥcZ{[)ܖmķaJ%d)F(JYzJzNY}B.R#vSB~rNF0#Xg-DHL@ ,؋ծ- PfSnz,c\\1I B"rJc\in[j2ʉߒc 3˜F3RMjuV-Z/9;;=;>愆 P>び(Q 22,z zޠ.!>k<'Y{rCM= X22c6k48xe喆 QbT2o'H.;NV PKw7Y7>.E!scځ"ЏdOkGJ]49!0o9s~pj%{֫pj Dꬬn]AZ姡 ڸ,ljs "{;PgjUCTad2bIEI:kZ9% >B PG /Һ'%E,f[p>S*<Qȍd.hMY8iFFEf3`4Fau+;cy.ePYb6 z\R n S !>}b Hu3O18:\:Qd{s \FaǤ jn|)]8i%&Ob}@+tykZ2'qU)K<.#i+w-5ϸT+NBX`J3oʙWږO6o6e{oE/һRbYQ$F,xNĶm?z%+KΣS1jFql*~J2ΜlOrP)")sK[R(v댝@5uCo9wyvΈ o fwPGR`1CBLf5lz-3LD;ꂓ77NƎ/* ߪCk B J-pj5DK(3*\Nl|:%Lm87J0ZcJ1imkq8.`vTi:d{{ȯ"Bx\_񹺠vq+@.wƏ8L= ewLz#\6HU hy .jg_LT18A,,aF˚w-XB|*6h4$UΜUdriS4j6 fv%_\`UIBu`!$?=oSGrN0jpZ8a|L40҄gq%?dۚCVQ] \̊yZxJЧQQn@@]C;{ٔfqѿbx s3c E_"NUYDحY%R"! j%8 Ozcl.j]5X6Ӏ8+`6׵CCa#^eީJ6ɨ1adQQ[l!h6aX^}n00R&)>4j H(:gW(i@4%?.i/'➯Jz:suG7WgkI(Ngڼ|7:{RЙPv/X;7u*Z aӶN&7̣`p9pU%ڀM/4d=2~7Uo؂eO84Øˋ^#.eo6 gG% քV!;B*&?77)\w3qzJn++"q>V%[j0?6,]zspFgg!I 7t6Q}=LR]poQWt$Nl5j#PC2aV@I y1Z=hjkV ?~ a%p=C;b?9Π$mW-²Z(I]q*s?{\-MXr8<8 OivمH)jAkmD|5íf8ގl鱘KNVݛ мCe쬊{FmR{w]We'd0>J\9|ϑ K,"zk~5yNcVDje͍ @0oC%G%qZx1wyζ~np8j0(r8_p:7 q[Tf3d^^b+ٜu]:MwKNaD_ʉwbIG0hY OMC mGtt8~[*q!OdGD m=Wu q$KBY{+\&LkD{oi0jbE~eRfײ5 tOy#[SIt[0o0i Zۅ;e7g/`3%4 ,Tb^뷫j)Ϋedj!-&C&=D @@êRw %z%!#g4s0WQc޴num 9%cDdWJ\WWpPB5Uz1uU|>}D@"ccg(>먪P<̨%X@BTs'҉^.M~-/B6)UGbT6oyv+n5Qbr:X[@bm egxrųTT_@xTHGMNmTZ4I:Z-l~B('_BIm u~[$*U٨^!gsFnҀ@6镄2jwZw>kmuDWJCD°jd@8o"A h`Wb4Ld)0bV*F\]o ݯ`9VAK=$ %~Ǐ5)N805۪r%jC(tES#ڟ6 p  :\O?GI.bt#q]=LWD-I,OF~y}4Xޱ@W>(t3\7"cZt@Rƣ9n>]䥛 n "8\Ƚ^PU57]6)'N&L㻜|h{ih|:G$?5Eײ6NQ?J՟pyò= B}YMjޞzսC O]#Wky9|]d\]g򡁸Dn݀cxގKKc E$7)_ xxlt @@H͂p`~b9$ X_0HCm,RfR9!- _=<"aud9mq027Gh#7ob`vW ji -񤏢K6!hU`rIQ謡Lu|ؙ2\j jdՃ}aK[֟~Šx@ ^lWM-qۆAPKL1gInuvola/32x32/apps/locale.pngUT lA`PQux ViTS~K^<&eQ@Xi G YY=0.=TPDJ @h]paŽ4@$y}el(=R?yyKz3e@fN_SNƞJ;C3%+)q41=5*51%77+ ZF0cNJҠ("f`y@BeyI++ f ;WNӻh㲢ݝ{E^$dr$6"/n󈻢R O,-Mtug ^P4f"uF -6+Gh*5oAuuMNno9:z<k&+~kNq5LqMiiF8_83UmFK=2)#:5ʲvwr!+<"" a[9; 9 ~ 9BܴkǾܞ0h 0C97p̋U-dwkWwִAntO eDA VM촌 P)(6+j+{\F^ @卑Ru=> 7٫s7g 1HuOw$A<>mE )`RjZJ>څU@a /tjThS3SUln ,v3wZfxru\x2ضBjc,vbGӭ?W•z1M\zkvzI 9ooQ%l_#LW2J>`Oj%sv,$z n!R8]BGQhg3co ?k!ΩΏ 3\>qD3lu&-MM4Ho-X4F1/]ҁ} J,#%~lZ771=pGߠ҆cD.=}Z?*lhypQ5haU-7Vť(*zBvz;75kdkvfCϗ7R%ď_ƉtJUr?+JO#Jgo>jE8CwD G,ֱ7NXlm;)*ɰm%/{i:Ъ_=F5KK}ZxxW}twqZ~9S=h = -‘dy'Zo=Jh0{<+GiZ b;JU"Yi+)62W?--n t4Vt`Qu Jeg+9lm-=$[&(]X^w7xB'=J:ȩ:>62͟hM`qNhHtd݌'P[[BRK`N9 q0%΢-jve 8zDLD*J>ezM &Ě2\ԄeM mg ;)1F5v\] EOo ?(\nݲ'77I5n-*Ѷa\ӕzOJcK\@RH3A?4H;oY]ff$a=NdfJӡR_'xl^lkH'+ȖeNn<}V3"Pb^mV@ st޴6-2DjWӋ6 ~8O]];t;ՈO &uzA#gr72fU):_l3ItA8ll"_utaI;6 wZ# .U)s+܎Y7xs oz6_$Ⴅ610v>>q{i7&z-!QvqfT58̨<6q j-B4u,$ً ]I3)ڤ"Ȑ;؅PKt91D`} nuvola/32x32/apps/looknfeel.pngUT gUA`PQux <Ӊ?vcr,yLG6Iآ:CMtrJ>iRL^*\\ec uNueq>_z{?zf0[ff_.+3g 5lrj[ة 1'W- C|Aqp s6zA|2`Wݻ;bD'|fšM<ݟwL66`SˆB*9i!=Oz?D_Y,M"Tef< onR` #r=#+ס̈Zyk+PZtE{㈓&CFxQ8ᮾ zrb*M{>26LY=fDah< 57YO{1\QZwhO~<'H}} ܽ0m9{Joa)yBi+%ML 66b s=#+,F}_ ;̄vw1^zv8gAp g؃;pZDM C&H 0rH̽ 0!y(lJk* k }ʄTX!sEWqrzO![KGnЅ=Z P;e خz*8KG_Ƶ(֛kAXKP(/@KΙ|2WMj:Vլ5Y4Ey}WBX\4D cȜXg!pR9MqeG1"𿊊sJtZqˠ2f"OFoP.oq=+4;.g-w>#]3O㰻jy`1)J+$g?e,xsbjuOZה ]AGY?t[ͳe^os3qUa R][%PRc,S  3VKű.hMۮ:}~1۠a+/>6O|ϮDt]6Ђ4O!֥Wu/xj[,X) "OH|q,_`f-u.\f.6Бw̜,Ey{ܟ2Gn(v m%֘lzRJzT XL0oj!{_tXT܉+U|R䴜i_}R!d*Em13eKThgg'F @ݢ#U>ә\79 Bl>gz,.IY=P.KW'I'3t2GSܵEM}֥Y彰ю!:2=S۶Wop-wvr9hYni\dddbyBlota=Q—t~lf* lܫRhkj5mR.np-X慞 ;#& txF6SL1KIx3`qu8m~?0AQ)'r'%K)>8P`F֎ (P2B TXXϵHX)Viy~޺ kj+._+#* ɿ?6fMO^8d<'B@ pxǕ AvP?2lwJ HW$I>v*C7PG+=9}pz`@-59QȮ™r<Gfb /B[(gKl~ٹkl7_d0:u8dǑ雽"F]{^ 7QWӼlBGz`BM}WyL. .# @>=(ۼh1sk+g p3sBqr/w\xck3-a=h-+_V4|"Q[Of&_Q7=3q#-)r (K `9?WC痶+v(x: ;:|0(`Eq;3y] t4jԡ5}"aatК F.e^$IQ[yM;`Tc6qn [ ֊%6Zm~;jMMuyK*mh1om0$g~&Ӊ ?Jλ)4 aX@$n?1?@X.CֲEL,f6.}[f8q2M`Q EӲ0Dyr`edZCY&)Hfbm /{C[ @֒ ߶y0\_Qsrˍ.\EJ Oq(4j2 OvR׾ZTс7HP_m%raTrGD{ƹVE-_R jTeVP:d%Vm&>)V m?,];R7|zE>/Q*昴W_n5Jf" O?ʗ14%h~%_#?'n,MXjᐥBiE{WB%aщȴDt2822QoGuy pE))&"/>b!qT?C<ʆHpLъXm(G wK -j]iJi\# *G,Y)~)ؕˊWl`NKemuq8XNx9za;n,^ [jJԣyHlT&"NC ̉qO8vå/dZÃ{,t_ʖ|_o%ꔴ0˞f?B2atW4Mhi1i-YQgo|hȄ-W2j?npH҃壊" vhk쾊TI # my0\$LRM zhjjn81#ujqT'ݽԓ%!F Ev[oV3\z-A3:zfW{I;Ms,6N:C)r}]/Mx̽E<w "_ƒ&cjçDc^&sB S:T ٕNѦ9z"T ɛCm 'k[e&i9+Zr%"5HaUzn7km&z IDu#N|Ldn0V|g3~5x0+/cVl䅟iھ[WPVn'I) $Ƃ?ex8+&. |T a>Ya~tw?iS?*i޻oNFj^P3ht˿3V?&;&|Pgs! pQҙ%nC` cge^O1fe?㼒wp:SÇWMhIIߍf/zW]-ڰWY[/#zw WBv> 4t8щ,v[r"@}At0n+Q+ 2 ΨG\J5mFB۸c' }Z ۶hdrz@'Y ]P 8U`mf߃+]fㅊ Uj#ɾt(jRwg<:Y!u)"X૥M%ZQ`iꡣ4Je=h po43'斜E%|t@qY\i$4q:#OR19_Ni&Z΄-&E#d~{ᬙs7$eMyYǙbOzgF B;Y#w|Qwm3qT@͐9baxVz_ݨ<Т5NӗK5>ƮuYԖ,Λ:c0\9@h-"4$`P5^YNՊףPc3H_)T:@^Wvf^ ,PY kĩM+HbȤFIο`:ܒF2[`oKuV>e¢|EYkY(Q?ã ߪrmF'rw˧jZ=r`IfF|޾0~ᡐߚ;4vSdcѡ<P[TtʑBvLя35݅@K+ wB6gPKt91o" 5 )nuvola/32x32/apps/mozilla-thunderbird.pngUT gUA_PQux V{\Rpz ʋjT%K,sja/Elմ4SFi.YuZk25*i*ze(+y|ϣp[hgN؅)s(E:3k kkzjV৤%h>TE"J9C18Fsr@Lr-.. Q(Pr_A[[rqhnn- PL6Q7JEB5jʆ_Ƅ-ti| Z4P%P9  ~{0y^*icrs5)+`k+*}Y1yE7qo؜~.VY!/ѐmn$!Ϗh"bA?~z<ݏ. iI ۺ{2,mۏf4?c0vWðTbHɬ ]p+jfܖ%Τ"=7|Au}׼", @,Zms>SEb}C#zCuM | 3\_4Gy20iv[BƼ⅀ ϰ,JzOIwAv|e$D|%+ &YٞOU[/"O$mDf(!En˓_]X(eʬjLd6hDE4l%4w4?:_Nx5SX-[v7WpnDđ:nЌyO_; I5s<`ӉZ~aIQGS~줼UKqK| ʙIXP`6 fwLP OY:j[|Z Av9;.?{:+K9g~ZSoA1'N31Xgg.Oggq/лp[ϧZFĮ]%z+\d!r@bV y Ś/6hmQq痸N^sX9RpA17lnrή3OA54kq Qw4/xvXR]Bs,gQuDvhBmVUV[i.8¸*p'Ydvd.֤ -M]3zb"C'%""ѣչ*N 3r IK = 4AΤLAƯY~)R=:g1xAϚQ3#dgD2'Pȁm\߱hDS`%:Ɵ% 蕑7[SH*r&pKdjrؘKGa8g[(UBr33g2i(U#'ix<$f)֙+)n@u*Xb"Mhm9s_5Nx#^Y2~$&j@/sbh ߾;ϞvlQx*\Ym1ekz@Y@W^ +qZ _wd/cq%5 {{"zY!qNV/v*=5ԙQk7 h({hbeVF\ӆp"CBYPT- Ga^Y1U?GA4MFpsoVt@e&\JDVjs*v%KtWlðAoGV9YA>*#3c9)N#ڼ86SYÖZ%Ɓ20n J?bR&zRug(\Zh;^xAnfDdE#zcؿ<ڎgӴ yOnzXYg}ۖEPb5oJU5kS\Iۯ7rQɄn EȒȞթ2 Eڀ@1DWHPY):_Sv d(k;jMGZs>XA%~˂N#-CUyf:;B9*6>AV%" tZM"3kRhJZovX6fR{iKoVm-ɮ,XWB3:]cn,/S8Q{qPkj}R+fIWks!o:antu"xe7#g^ph+7ٍ|^0< (18|2ql#uzt===h~_g~!uWPaFj9S%SknFȎ/Ǥ-T)=J'^Qxt l+l.I$:8te{\,+kͦo\\?5n⣬"TU vx+̞bѪފ OMqoNmF"Npl3Pu$=9\IiAyMLl1uL7;M5x%Gw+ȝ!;rrKswv+xf$+&&PtBh2h5h7#/JW,+i늒ΏK5FS-e&P/;GL`j`Gvu /Ԓt%۵.jf)'~NC $R0,iTOW)%wt3#H ӾwԒ)A%bcC%_6[M tD-KPyL{V._mXGֳW#+| ;ʆ"""Ξ=+##ǐ 6CHH +;th߷_~P;P)_f;zCSSéSǀAϟ?5g >Z;  L@+''=.]f`fff T5?Pϟlo (4 O`F7;(2۷o9&%_9Aǯ_?,-- ýuv'O2())2xzΞ= Hϛ ۷[  0#<kkKGXesӬlB o߾fطo$%Ł?ݻ3 q@Q`^Z^€b@gJ:pq))i`²:@ @ҫ :Ere" ßPC2J9tJMXڅ֬BN v6|#3382W< 9R)+`i(,iu۶...x^ x NNK ,A,?^`i .Az 5 ̐İz5'  P*>y۞ \ jMĜ(ąC (6zQϟ_?@f]"z@@r%ZJ &(@T>@aq?p´k" X'PB̞ws>@ar\d@XZr D"Mf™KbGrhdcYP貱êcĂ:/3ɽf }ls0ܾԐ 7:q6:*U-Ȟ?21ɾ@@ GZІ;Z- IENDB`PK L1&M}Q Q nuvola/32x32/apps/multimedia.pngUT lA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,0###iYXDEEc?^P؉A:o&_c`xu. @䆀jbb#GDzn}5 -%%=_DDDر l@1{_q@AAAaBKK}@@Iਙ;w^#ի /@߿D @8Ρڵk Wb={c Ks( _u:2h3/>  P9@DY|} pk#w|IV!:FxLBfP)- @8 PG5 [ 6T}dP9,J8 ** /#EĀM 333/y1L ?֝ Lhu\\\ ?a gpqqe1vdϡlpmp ?~~^v6fU>fPB l! <300H|m qà 2a`Wesd:0HH2_ . gLbf`c`fb?P @px묐)S0\|@''7@%%e`1a L6 & O>2|./ dCWF1-dfx/P?~_bB*/\v9~׮m, ++ Ġ,#+ˏ@BB@xa X?phAi`j lxĉfsxDn* ""=/ؗҕ,3 030p1<~? |||4Ց : La7n\+KMM~wp rA`~ J`f`Ub@| @.F, ~`8rx/0 yx}Xj l&1{߾}]]8u?@߹h7_+0'|y e3d '1? ?PmcmûwdfGͣ f@h2p02Sf#`Q̠ @g@5`u϶\][r00s3D3lBX@HX7"Sc `4;~:`jQ} bdoܸ^X[[cio޼g022bޫ-bbB֎_|/h ţ z _%{o{"Y~j+W.eb0A 1K2l޺!08;V2xєg<;wf+7u` n~K /ܻT{6!+=o}?!!T r 6Uf`̾ "\NE3f Z6hޖr6٤Awse塃KQFYf.Ϡss_u5B9s@&}w[}-rgrR3Ӝ\ (.1{Nw"At.b=ƒH '|M\ll,&Xx1+I]mJ!B W0ت_qtwB;cQ6Y HILTQ ТlBL-1L#,$t4_%S[0v1TV0!lmgDGlNH@+#񨈪 & 0zy (CMjI.6l=.{ d F`H떔qlM &ˬA\@pjp q_:sl'~A͈Nԟ]$|}jRݩ9apG%>՟4%z]'Ȟy$R2JmШ][?ľfumW.b8-Z\MJn_[Cm7Oxŕkjvs55e)u=J(g8ñf+ I$4Sv^"]f=AQe쥓DE<D;}R XW_&_ݬ]Z %| PU>Fw_@HA) 3Ο/z"ֳC^*_3݄\|4.^|:mj]<ȹѡlbd`)O9<Ydj!6sIJDT1='59\٢j.@+R!ZJD1}@ž[&?2J1 2>37aH޻`ەu\+}`\>sk|{^p}5v_lذ'g91[rTR=kh]AU&Ɂ|SvRE,Ox;:U0rx(3(TE%-TW7HKT]zrSYЪhHXZ[n@>ܦygLv@~-&n%'/$ B3e 28kq$-W_d]J\,. ALW_JL_3wYM9dOɓ$vl?עgCvDE/ *jb`o `Ƨ"[A@G+\6 `>7*kеC8SYZNOc_t   fUF*ʄUQ;R|T*UTyqAH se~h>чi(;I'À{aʆiǣc} _F.evGFFq\Ztmhr{;Prw8&f_ wߟ$0F+@;{ Ana r֡0ΐ ^98|Zp.WTxUQ`mI6TڇkoLt]i(tWT5\_\_4i<}I*.Z05ޕ4A&'A-HzK6n ¥}[tӯӤ{}2`_n޼cQ>,f[)OHH6N\1 ŷ1HJS͉XO ܦ/ b\i ͭ|x:?8ŝѮH1aFԴk硰0Ko :R גۄ=^I`KKK 1/m; >۸':"?ኧG.UvI}}`DL;J6(  ZCrNX(ST%rۜ(5'Nུݘ܁=N\dRudy*n7_, ^Vfw&FI]^8W. |dɟgHG5ph[P6'xSZ?*u]ձH9FY`h>UPX3d# Uh]/ ;}xY_S'qnL 񅜔7Ny؂)lcWv—B1@FSoё]&z>'d>&/XZrȠEAocy&L.Z0 ٵnǚ-m!O!>ݸ7}:&$ܓyoi`IGg`vPK t91 nuvola/32x32/apps/netscape.pngUT gUA^PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxbd ;@KXxy LMt44P\qݻ N~@8 !~ ss?gO߽/fU B g|_;u߿y_? /}Y, frd9SxyOfaee8.[V߿g>.[@,,42X YII_Fz god3cȸdz jZ |ܹïN@88f34```f !@`pߠdI!`;?! ̿xu~{ׯ05*|2Gfvve  @6 z8`cg恫a I)31[ 9_YGgEѫW8_8 L2 ga&ŧO0\xQ"1-E 6h18wB9@<(< |(ibfN0q%n_ =5 +i5UP|#86ݾ61Ё Ġ%((74703ĆYd TT@ BH4y`6P(Oa͏ ;=n>fX#Bhbh ygAC㉉ \`C/{z4åo|%@G< ka,;>F4>ь@ "@&D0As+@6,, +rP&JA+ T2d&41#=#rC! (:A(.dsCkTmPC`eeG=b&A o @ 9Yـ}V  A eOsF69  T2ro߂@.d<,P 1( b ߾ˁ&BYZ@r1+830?] p]ɓ o~5`bf0h 3 2(X0%Ue80xȃ* ޿c8`[LJ ܺiপΠ+* ov>@ނ hOe@78E7;9䀯_xT@$$ ~#@-H@+݄ܥIENDB`PKN18  nuvola/32x32/apps/network.pngUT nAbPQux Vy\RY U,kSq rVsqkLPǾ\jqKNjY:AS}LdhTӦYM^~=;syv[ۙ`o~c,M<θKKIP-2IwN?K Q|ʞb_:>`^gQ:ah!px?pa}Y&GOQ zyE"o-V|ִWڒ ˦D0r%a16˩e鴓`WuՑ`Sϟy>L,M U%TQ[$9v `RTn:}R@BЅ=UIE谜Oь#% \}äPDP+<ߊ:d):9VNH Ytɻߗ-5`JM+_`BH'N],hu@Zaxa4d3im7b;sGC@)3q˅O=Efe ϰ;sĊ"lp:!)J:w|yi_Fg-Uù!}.%1Oi.܏L8/ܗ/dյ@QpִME|,~\*f=QQJtY~Ê"ƫP[mn~|b-,'Ps<Ct4k3z9T0pq㷇S5sL;UP5Ҁ,=G%a1YHLWzeZ%`CkcP^gBW)m?8N<"28K˃8RJh'0>"-=Tx՘V3\k1 o]iLl˨s2.y7j`/pE]Zr|sEo}d9l&Ix PWaĒj{<+Lķ [IUZK3IFG%i6hۧB ;Iw-y@Zlc1n$ .#\AGa_W؃txmv/*c(Mw6 -~{k\$ tE'M32PzQ"VS.7't/ba- JBSU#\DVNKGolvlS"q)v\3mCb{t},c*rW:,U,0v>@\*Xnlj*\,Jv]6 oO]8wx(ʖRu{K +BuX<q>\[3Pd0^ 9IAҖw˰O\lS n//11t &/6PDCԒV$:lךHzh}_ŕb]SyfOleI&, ߆+j$"hkkE۳5h<4MLN$KʫZkߍ8]nsvnt1'f`>J#3^hgdq\ z_l{/~¬ɵ@RbtRvwнׯeDEq4j,)M>ʿC$Eڨz{s\H$RjVXh(U:<"QQN-4E20Ooسgt?qqqq:aOgu!ۚhΫ:aO%gJgpJӣ|bF_zo–Avu'oɌ.gqZuj@z$W<ڪ_#RÃ.[ [7e!fjK¯ 'vaA kH ӣs,龡gOckjm( htYr8)XEdi&6)oKJgbWCL4FսXG* J*sJ]P gԪ{hj((#u`׬Y"2Rmdh lY?W0 qLsc x,X1k\Waw@hqW6GˁQ\ .usKz%-k4;nl?PK t91r& d0|<`)wtQ=PBOa HȆ- @#5a36afb pMR$ZĜIr@:hg/00=r1! Z< 74EIA!ğGvC,;8Zâ ߀``&>+}9030Zj0h+2y+[~XVTv mA‟\l̤j~Ar;齧C>ܹ LXXz# &XBh0$`ebprgf4PU(8 `bd$zEb'!?C_uPQ==e?W2Ӈ tS@C!6| Ov1|}S@,!L Kngxv2ÏG36@W0=XЃ !&&2W~x n_z7{@%7L=@8؀. 9o \ex~ G1:Nj3]@8:@p-/3zri g\zA# ?e;^29 >_| r Zv0kCxfy • Z>: =۰ ?q3P_ _gr ß'3:@%o+)i PJ@nvL@{ Ƿ_f|=7f0|8 V/@U$4Ϡfu5þ }=[Vwг PP`ٓo 7\a8w 0ҏlax ,L~<+[ 9UC /_-ɰwN_`x@5lE* 010a /aPzLL"LOc8x1fwl* 4h>IC o`Pي1@`anUPK`d! `s4u=IENDB`PK7N1)cH  nuvola/32x32/apps/ooo_gulls.pngUT JmAaPQux V{8f|3\|_3!kզ %CKMe !0c )ʹkvۢ3ȡtP*X!7yy뾟ktGi_Ƥym҉ff@}b[II6>*^`#4chvK jK‹  !ӺihCy V:#~]>vѹ" jvZ{Rp]]v5O2LdkWbqж)RU0&QCKit53ZLd*jaC;Ac"[543;%)(Ml8fP&4ږΰ&>zyr>xZA>O-gIEc7yk;3ϛ;e+>y洛\$աq=B@[ 4Q=IMTGD׎>01||eLJd<:/XL݃!b:E;yl$: _9W=gaR6%"L5J.oQ.@CBE Y,BLFP<с_gE4\1Q,QMiF׾]&!nEs9bwCޥ>]Eh_ayI2;*8tz y{F ӘDRs;Л޷ ܾDW> Z }I+;1F?D h:SÌN$ao*6'1Q՚FKû69|$SCXg=Zr bA1ȃ7/k3aĿMQ-f}Bm½v) ecY6" s4ؚ3PǠ*;i̵6kZO%AýXoq1zTۚl#-"pAP!„[T̼g ldQ:M˄L&f 5NS62mNZcZ"īppt)?߁%‎ots=,'_&)1KX& y+@j1.)ν#*;Ei T1z(>]Dҭ2ъI3gedέϺ'22VZKXnhV8"@(?yg i4jnqY? )FmDJ#g)[3{3֣?2 +T>j\-x 'wpڊVKZR5ݵ>'S^jظ[s#瀳W Y=-QMi*Ņ0=x(nmGbrYژyd٦#1l0|ֳ1~Nv١fK_8xnz" 6H-[!|}T2O #ta+yJqgR)>|xǘ@[_3v)%e/Imp?&拴4pjѵVϏisv¿$ .)W&W7|w92yOg3> 0˩|'\V90W_2`v/r.` O5N %TkG\4ȥKibZ%DƵzewBqLw3pMyhHfi5eY6}[ .}ɰWݠXF&LYI),>v vKpD)/mA<}"VPwCZZɺs+ͪ6K-8uw(=A[0r*K%&ioZ ϖrCwi"tHv٥z6[PK4N17rB F nuvola/32x32/apps/ooo_setup.pngUT DmA]PQux {<^.V̥~* mR&RQ$,T'P{_sWC(e..)R$;K||k.O$@a)B8}3VNjTz EEEnS)))z4~f}xsf8ZPn3_u>:uU!{>{bfClPPOɞ"픬|Rb@EIw4L7b,bZaa'E  $nӌzKIHN[áUFEUҋ OKӃlPCcRVNo^PGKJJF:43`m6!M}1RF&&9g:T^rC3Z.]:dv<f@ٌhLfjhddZJش *-/mv]Kzn/Mi=gq|K|!R.[a:Q(k QW܉,QL7ȍ__#}F:@]/W~Zǽ9B,L 7Wۥoۮ9 ??of\P_IA)CoFѻֺ:;woγփ-㢾7=Zq) yDb"2¡Cjk+ bN4СC?@(}iJaZ-oʹ +Hԓ>)ȹ3X׻^$@ $Q6:X' [rr`{>IW@Xo޲"YK(0t0qA!K[4Sa'zIqn)|qgNnnV$ n]#N-hW䄥Š5TqJU! 6j;ndn(W%[%_01\W$qxLx fHH.pZ7`('õAm KuB[jZ ŰV`v!(4rGB~D7mރetm~p@v Cb@I}K .gZK $G6 4C_}ɝ GH:>Z|d؞#+vU7>{|I*G]!9? A('9KjX7|v_&ނ7^Ay3YO|g,,x+ +,&x=++o:u3arD1Fo1G"@}"(SΆ_Zʎz' mlkaDkZu/P۟N(uUTvoF_oo;I:KϚtԁ=p~ >5J{"FQB -PuS 6߽dXJu*3S-GZX3%dH+g#4L5BјF{G 5ώ},q|9Ԏ&YTJ;5m vX 6mcd_.e!ij% Z_r}]3YLob;.`pa;M*\*2LxCG{IliD  =1egM֜ ԩ r.o$fXUmԁQĈ rb!_8^. k6>L^7/wX- V(‰I+{>*%7R%}GMΖ$/Q溍Kt#Wb3V7_"Dt'Lԓ zMVU3iAEӻx1K `F.$mTh,=&swuꅖwګs/h$S7 Nd_U  ͬ0$Nb{hNqhXGV(Z>NO{FSƱX7t3 VbR%kjB>ƌ4:[Q0AB6=OIuBpi+@=\}k:iS+݇0.f!2kp svWݮn VZ :PvoVd.o*R'`o&G{HG9C if5KOaQ%vQ|qw"ZrF9Q]j|utOަbځUy^v6u\"jB5+!/3#s撩isn `p#2|>~̦K$Yp7f"v븾ZGJ=k}>8 tZ0/Gǜeׯ{\ ":#a7|{L6ަMv)!. 2"8PnwJo[ܗJ\Vi!uR3J|f{q߿w}۵S5Ŝt"`qwr}=.bH"8 p"YGwG R8zr'Ro4r"Ef FзkaVP @j ]7Ah\/Wa8FT\+zpxG=4ȁTIddǪ/Y[z33ɓ'R)Hy(;2ޛ RH`xsJ,ÑHfWZCma[Վ9(LGMd~B327gt$y4 ydo ^21 G ?DVq"B[gfl //E4cם;nE@ cRS i nWSl5\ݮSRIU[1H;ϟi֖p>tkNއaTA_3ʮh9إz8JѕDJmJnrW8oRih6szvW %r&Ǎ-TGXfgIdzEg6ըHpKzۘZ|n_ʅ ]4[?H{,L .9?Xjq?sI&&㽙 76eBX#&} BM.Tj 9I7`=OriMlR`*~),h adLs?AL2lggohp6Dyn(]OLC,/ Tb算X!8spjfċG. GjNyMRnH!Ok;6!oRKk+) 5mG1giLEB({=4*H ޸wSzM&e3LzgZgxov{`ڇGz4dwU0d^OA? v'nBfg--OՔ! 'n4&kǼo@';2m~j(N4MYi؆~gVh=h0 2Nh;Laa t=^RڔuntH_TӾn zW.|G\F%:LJ+t̡[],Z $9,Ӝ$]\0p;N;3ZlmzU,l;kza-m(1C/z r[XvwsɎӫ }*9>r *fveYu/I9x5cU-K?`[=x}_I))?z8S듯dzbFg*4^,s-Lҳ&Kyv~Fݗa<0lrk+@`Kg.ԅp;-ں'^.sR߮Q<u|jrU\\uMbw<.Y{'v'Hýwtq ~uY.=r0{}Rj}I 0 G~4N_^\*HvU.iF/4D}<$vJőiW&3#;_mꡚդ?V*6W$C3G) %-=GRυ.gs hB^ˀ( "q:2|N.t}Y{;7i?iS ߐѽJG$ 8}0Q5`<Lj/FÂn~n`А~R;p)d*Uelz@d<(<#qL|`3?6vmÇ?PKt91_>" * nuvola/32x32/apps/package.pngUT gUAaPQux VyTn6lYB0LE.pATCV+˩b $BEWZI e)W(j'hARmrYD%ryg̼) 5564X;a"g3CO |?z/ URd$A 1'%lKxH>@[#nOܸNfUϥR\ {-̷,Nz_啿B#Vzxz/>F*4ʳj3 :g S+-/QY@ K ʗd%TҼYJ1˙wߛ֠VUx&:Fsl=Uq:C@ GFk B.p4ӝQGQ|*OW_OtjV &Mj*?K% .oE)s:4KKN:tF SVf7WМ5Nxn(Y"Km#u 4,F"#T|R/O+ b?ajPz]ajcn@eY{X$d7?![>݄ED]T+Amsrn6 Z)ʩrYD1OnO+?HG%nxl?:YI 1[_XG\luL0 {{zh;*mf'W(D"4f]iᡆX xbR>: C8>6cFs:GM?ylMw-Rw vot<' W%ja*Z.&.ry|RK+-cה8z>餆UKfve{y]V^N]{?~/X_P pIhgp`l^CPֈ;ڞM t- BCg@}XjRxI]0~r= lXX# |XӬ8m*`“l숍",A\LXwd ;| 16eH[_LqjQN~צPwbbe)̋RP^0Q~a hL:dY3Ʊe8# O,03,Gi #sBTI|F 7-CT#+-u1@SWF.Q߃&q_ܚ-jۥQ2rtE{[Xl"\T;9~, #I/Ւ~9O)*䭧51/1)naL{릺cd'j^o5SAnJϟEϺ=Kh81|uKrQ;w󯻑s> Dꭚuɩ +X|dm@{eeb-O3 @Vbv=;񩜤c®nW|!}9=I$?% `nVJ<}qb'̀P^^N*o}&_3;U<ېs/mRN~Q]ojɼv4]Pulɘ1n0=5- }n?E"a06?pxdr~0nWQk׶z CwR#s'&S2S˿'SKX֘)ܯ+UXm n|ٱ75f=".lVM Ph0z;JU8Q;a& C]x7pI:P`cZO-go PK oD1:K  *nuvola/32x32/apps/package_applications.pngUT ]aA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,`%RVV(@ 4E4PaF&>yC!Pm`@`Hgv-ʗ' ?? ?PP:412012}F#9@\Z;L ?B d_e`Hl0!'-8Ev@O \߿0r3y 4qFpP9pI dd`aǰo?@f2jb(e*`,`+LaN>xp?t X `b D`>2M ?pT?0d`:v?$(2R`9_ aC tF\@%@$r`QŒ$߿gQl> H03SDYPͧ wd+`V`fbbdb&|F( bCρ 4Sn2AEYAIF}7G1=qC!`(c-x@_ sd`cɠ&ʈ boaV1F6 !A ZJr ?R.y%ÅTݾׯn &@DK Axܝ b @? uAj^30(24KV &D`sOo`{Haj!6 ?od$2m@5bFp"dĈN1y1",~?A4,bY؍A4Xi?a (],8q@eO *#@|A/ dl!**  P!.eRc``e @3Ro f8yXpuYi!I} O @) Ao}dk#d8,tg,[}9P?Ab |b@ @1ˁ<b!)ef_?3bT& fJΠ$%pp /b_!6P@,N?w`Xk@+3RBs2wEw@{([ nV & x8 4}_d-(~(/Q@1)L'fe`xXgb:qk@ ^y Q쀟{|Xr3&@M?, /ax~9$$[D#YHFO?v8WA@s/2 O."?8("SX0/4$CuAKK G.2<O'$ǫ g(SV-5vus҆X jBlU;0޺/]9 J@j׌W0ݗ+ >g@| J? 02s.c cb oȩqx߿[)G w!?_=" #|vhjbtf>>+ H3+1 %m cyn`S_ w>a8w'=wg Phe4b_~O^=`8) (u %P-zWHK\c`zZFIENDB`PK vD1 )nuvola/32x32/apps/package_development.pngUT ]aAaPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1 1$4ß߿OkNW~^>q I%^ O>>ˍϟsξ_>u@1B~߿~\k s veeN.0/ o߼ex5W۷g͛7{}@@98FDD3hj3]| ?d`ecad`g`gPP_j2P]_` _8V'y{x10S ׮^dg`ceG+ 3 +<< O?fزy;wf{ 7`]Jz5}Ƚx V& G={Ç_?@9F`q>/v fffx 84\/%>pƍ{vի#` 0񲰰(P= @,@ [1|?@03012AVV˗tӧ[3߿  KZG?~2|Hwt UTUԀodˑ_l@8߿l` ~E3^z_P/ݻ\O3$kKLjA@,L8S5 }G~!`c GW1ZƠ/w%^GGHq@3&̒Ν ,w5K/~qrg:ߕ fN 2 Q.>?5qu@˧ 1'&f&{2ڵ[VJIga{&;F. ,20h08F3\?"f~ ?~bxómܹsKJ|i_?3{HaF  ' L2 rlw^yCw޿ɥ/"&k0>|x0-*9Jo~93ϯߟmJ3gb`fQAucLJ.cdy>h ߿?#/?i޹}_z(p>rY& 0002(*0rE+{H.|T/ ,sI@,KLi什_򿟒%FFuB'0%b}1>6DVg15A$&7eUٖǙI?S}n8Tn\npg_GJ -$TƎM/@Q /&NL]Ӣ-k R;>bV7fYzY?_^0ϫ lJ^ I UJ<U2@Q"7]/I?? JN -% l1Ⱥ_}~Xs:߫; Jv Ya6= 0=Defw>pX~V~y aU[IMMtAzޜ?ks< tw`H|a[/M`3#&V@BmZJ?ir=_ZUD Z~ Ƒ;7 0@Tw|Αg* kyŷ_ o/~se8BϠ& @ pՋGUX $PK h(UF/h`-ʋIENDB`PKD1I  %nuvola/32x32/apps/package_editors.pngUT ]aA_PQux ViTSrYDQ(* PDAD)u j-n=PD Jhk[bA$p#PjPR!ߏ93?f9󝙯 <4lvW1!uJFƤxP` }jj 'SXƤ'n[iE0 *,pKI"[F:\M<S0ėN&aOTFnYX4pƓntpBiΕHgQތN).o#Fc.Ki ||zCS7;+A1A s]-2|eW1wG Su/E^}|m_83'o$ufj HU](>ikLQq$GP0syq0kiS.km6T;m|$=_̠i64'Dt~L3ia /c Ȗo^Q+ջhU?{/(Q|CL1)zr %hiڑթMкGsUr!?&CDTw%'oIZ5-Cf~ kE?RrҟkSH'OBEb9yGO?kdsRCv[*|}oѓԺE]8Tƽ6kæJ$gXYi._Xw0=0bҖ@,:_&tt ǐA34G4t/MZ\CQf+63Ev{|9`4ҿb9Od!:B{xʰ =[KͩM>C {cb𾟘tm1䕕qNY/|d9|5vBy\>q]]F4_O 5F2͞lSs")Td%jYΗ@oed> 8L.Cvh R.ɇt,a P\9Ÿc5'.5dqyh0+vǔRlL $RX.i_)AFaSL@~BH'K8zp[fjͺ)hEJ?#Gl@@$ jЗRNI̯A<'%fU4Ev: )i{u72/ST UQicho1cPX`QH{*86z818u?@_Y:Be#҇S 33c庨4Ctڊz@Vl:|> wIsԊ@5^ظ*)zq9$Շ|H] w|6uf*Au 0qQsp(M _+'L2`,<#{zEFp+*qj@_(ȿ,H#;CE>6g}zu}UKȚE:,g]̚Cwdd:[4_0fW`mk5{CeUJFz'# O[~h;~(RgtfQyV-׎OE.nu혙[rk.u@”"Z9m[mI- PBz{FiPHe9XB=+^ 4=WuSy,J>qv:{d(,H倉NkzEk4Wj4٬j̜~ }3ATSB%e޷hz܍yꊣLکªF}>.ݾ 傢Yiԟ?*uod`'P=EL_SojtF\WzmYM氝W{+؛ȾCE DqUY'J2k*rv!k8uUuUmx"UPB1bp\h=SX$zrqjg#ajjKz4О]M;"T~4푔ZHoQ&(TsRUƹ4& [7D@Z=nWBSec7<#Rv/QӧИ V2Gm[b dy-c!ļx X^ۈg]}w|G OZbh*vJϰ#Du-eeo(Dg ~W2 ք/=> viʤFWnOnBkrdMPy;e=xXWPX|VE("~M饶a4+ WGݭ8Sa:JqLa-Wi֧ c3|PKD1 )nuvola/32x32/apps/package_edutainment.pngUT ]aA^PQux }<Ӌǿ{ ˆڔP=D6)zܞwnؾB%.Rܛdӈ2_/D!ED#iss^:>t-D3k3A[~4FF}|Jʔ1`c|w@UIְ1%lK'LH8.|"1'~}.A{F! EJ]]Vٕl6nc3Y֯\ɡ,4U]LY9_PX^akdSӽ$35oI"D\U|Hr;|iuP%zI0P$϶*٩Ӵ%#a]Hba/!51t)ƙ#3zf9Ld y|*{tY~np|UکoWy5'RPԗS?lвEi0ݙyЧLTW"  ^&[1^ISq!C1 4 )Б$s|S܁XfN B.b¤v)=e5μiQA 2c;riS nkhtր#+]pt7՜K Q,Mqœ`t쭓EHr@v<^Rj) w8pbr=o6iFy'( 4 lxw "vRyP_kJ:YI+=w%Q쮽s$R Er6n6f;34'{͡NX$j1`/InenޠeTAIݢ3mq9Q1 6Q4 *Yp\Rxk+"-!9@{ǁЂGͥ4guKo؀m-ݗԔ%ڷ l;~W64QY"uwPlCyuЧfQ|<;uJ?vx"60M`5 a +`& y[DlB6wFn #/ϱX uV[]=#NM}ff]@.hr}WūveإE`o1s -0|a|gmȿGB>"gswWYfHד^i@2OxUqA4]Fa4"=D% dDwaRn_fN/d5Yyo$~7RC7SƩdtJ)eckF:{,^]$лJ;05y/k䭡/xr%*AYgѦ>aCFì&ke]7*BnV.8?ѡLDN% ?|ԃ{ǖ6Wn;^Z25-j~ꏈ0bs˰rtFד*P5YO;OO"C/Knm򋥭 zɪe/qu=zI.&Zc/yt:s*>ͪI>+dvKΆK]~1:V,y.m櫣xf`n' ܝX~XGty1 o(6z8X^˜O%Ĵk3|ѶU>-%h&Gǫ/ :5uȨr{qʠp_C*є],S'rNl[<9SSe#-S]o7o·Rېߵdw=63wPDhW$UYσD/4ezqtfOWy  ӒCʼ'SHBqHbAmXi@eSj8DfOrCug zCࣵ |.ɮZ:9V.jLi>,vjwW7BK꧱n%ºgx6Ù Cm؍uʰpdx$9z@QXChT`nRg,q/k 9u N4"Rв$|AwPK 0sH1"&nuvola/32x32/apps/package_favorite.pngUT ~t3A^ZCJׯ _f8-õK~ ?b?e  @!7Ǐ /31C < ~~ ̉ ||00|]˖1ꃏ9wFFΟ?nt b`47g`b'bܹ'#9ڵ ˁ^ƣϟgH @@]ϟ vv2--`P3`H Y"2b!H-bljYXB&L%$t7u@O;Z"߿3010<|j.=vq @wâglp,,ہQq w- .óg E P{ _Νcd`*p'·?t@@Pny _ 0@$o@,Ϡ!( ʪ)s4ItZ Kl@ܻ@BKH%7ZQ b`r&FFfo GNÁq%_;w2d1#3 _?J3 `!BTҟG~?d?8! ϩ{?\ɂeA7o2:~0YAl8fjwbxh @`i`l !P7`9J,Bw_(V]'?~+@v?\}q@` X l1X ,g@fP6bQy"" ߽c8  {ǏbLLR" ,+~- /`g&0XbDEr(?i`q-$)ɰhw^_z(ud @Fh5+TTTR@;0W<?0:X63 _SVYh`t-}oV}? -bfdg4j!(+6h~&r& U ж 3sUWN ||+`]֖T6Ȫ2C@Z?}: ~n@ti01%*) [*)1@1C0;]cX-m?Au'6 ~#k4#㩍yzli4'C@σa?=-`TuZd`8  P. ~ ďj]@1t o`{s;IENDB`PK D1`z  #nuvola/32x32/apps/package_games.pngUT ^aA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,]p}ɓ'wawe/ß?33 (۷/ .ggxr H.p@$.hi333 ?~U?~|H@XXABBdG@| Ŀ2<}啀3Cί_s ;@3=@;v ԼpeY -.107VPfdd/JJJG/\83ۗ[@vsĥddd~N| A!L--ɩ Zj@C/x_xnf _xpp f|ի@!r֭]yggy@76V0H1}w`ԘIHH;^==4@uO<9y޽] reff^T]] )/_2p ={m-m/_~]t_/=K3())3y%Usɗ7nVWWPPPs1!!O@ߧ***JIr0\O ?bPdax C ~aPVcxӧ>013APPZS_?)`8)""< 6VV]IIq))"jj*") O}dp2gffx >aczеk (ahP'߿K`fb`sI)ͨ`bbt8+433|AGIH_ >?`-0Ͱ2;0KʇG(Tl&0%C\\ ,C6fx+ ʧ0R7d}N  1󓁋}GYA\\NjS^^) `AYgy/vA2(.>tf`c~ @<G0=8ʂ[@ܑ>_eJPEObA*~ciiLC(堐[PX;o? ~Rf$~3ܿ{_~ X3;""2,<< |hqP5 M̬| 'O^28qڵebi&0}22(H3XLŠbG831|hSӧO0>g\ `',9^K}, ,d38z0(+K> ~ A"prѣ@_cz¯7ܹ}@< >>0WWWvC1?ԴAO7 'p /47?>d ׯ_~;/^<>LO=P 0YLl /|NV)%./K6~^A`sXG 7 ܹ3@__ @5'@AO@IvX K߿N>!V& >.f ϟࠅ%L!iٳ`^ro={t˧s"rl@&wP+"* 6n.N` _a`bfcp=ZxO}|G/~00j_\5.@}۷$% ͔6\/.wϿ1hK0 1Jx)[ gϞׯ_~Ջ ߿=4,l@ ѹo~ ZZ 2y /d4aF00<~a ޹sNԸ8#)RNNNveo?'wvNXQMbM "U @?C旧 a" lpss3rP?aʥΟ?X;+q  sOf$jˁϟKS c_|Z Tpa a*:BƧ ߁}`O`:ݛ%@bDOBaL,l}kPbPqh  F /Q)ZcR<| IENDB`PK D1g,I*nuvola/32x32/apps/package_games_arcade.pngUT ^aA_PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<2IDATxb?@bA32#C2ٗ N10?0-b-y XHq-4¤yyq߿u+ 00-``Hp3 a`we`.͟ʊA(b0Ȕ'‿x/ f`a`aw{ 00|>/'L-n;P*sa DA(" 87@ !_ ~Tb !@(lyd0x60U il03< 1r.@8@N^ ߿}êhm @(10 Pa`x}a yBq??ݻw ->9Nr02zÞk-Pz#&%J.*:8ĐO&N   ˁ4X1)kA_&aaa0͛7 "'+_0oд c`aa %!H#0c9!Fȡ @1[nO? L?AIo([At & $-xoLL *++:(+b@-z߾}W3;(Av}m d_K@zn|,@` nqE@%C lXNт """4fEE%_~PMq; z/A-8 ,S Lh J|0 [6660U,,l@{NAA@AC@43k˗?x i,T@ 1?'''33<0l -Aenݺi3 ,B  1C|O٠2ӗ/ k֯fw&?0K .C c2\zիWjf'@rrp^^^A4 [qAF`;Aӧ W\axX++Bq0K߽{v0-Y}xM-V`ZV^/\`gϞ1\~ 3r4{>C@_ )+AC`; zSH @Cښ/PS=|T.#Z!r$$$-PU( r _bcX@5&M?}bP+)(arR-З~ vXT@"767`!@1$yvס!1%@ovWbbb9@ p333(K/ȁ B$Pyd& x ك-D  0JB`0}t L #***@PPB|0)|6 )=@in 6m`t6`ԤR!Er1ex"(̄5^b UF!rh`44X8فPA@ gϞ} d .#/ %A( aii9 GeX~;wZ;L@o@:sQ @[r9~D`T9H0Q<=r@e.9IENDB`PK D1xL )nuvola/32x32/apps/package_games_board.pngUT  ^aAbPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< RIDATxb?@bA2XXX~A|es͚'^,y XHu1@ tP1$ҥK?}$ѣ}'<"L@e؞/^YYΎʊd߿>̐}5k8>|Xd&d0@ "/Y6 ׯ`Xz5 Y+V`FI0$s@a8z@Ctuu5eg޾}ːp CXXĉ= lll ٠4 tݻwK?r@80lSSS[3336KKKQQQph@e(((`8uA6`qX9&.Xn߾]m2Ya D (.$dYO;I)q$ Dpg ]#fZ;VJ)vkι[bBf%6Pb" `0p//ww_gg7,ʾ xuu)@G@e޽c8<0k9s tX r@aHHHavZ0< @,h 9ҥK p߀h&& -ax-03pC Y-2w`FBwĉn޼YE i9իW )Q!0JJJzz@z8de`fQ.nvv N Ԫ гOX S#ANNl00Q12\|;w2,X0)t@deW ?~` %@  XR& A! pA#&& $$zŬ, $h_o`:'z~0fPH -Grx 4˗ gvc++#0D2 hWP:e/ô)ˀ "C}s "?!,AqĄaRPNA!*}W@˿ղr0ZaU d+#3`Ȏ0s= ~( `Ћ?X X0?VB?! $TeFf$*7(!@43HH>p/3˂co0TW2r0,\Ll,!&ޛזAFVg&k| r"0W`>8{_Eg^1-7ñd` ?#dbBK!AA +? *~0'aޜe R@ %(@u=d2yHI# &XD6l<°kpvܵw) x x]v}~X +% vȧ$D,<?PȐY pFAB [nm@tXKL/U9SIY_|gXz7ãGO $" 2PmC 0ZD^vz X؀, J0Q`g/((xQL\8EGyt+Z<㠜 ρ;}C" %""?O<̢ ^@o9 HrTb ~ 2^}9^/!eIENDB`PK1N12Aʘ,nuvola/32x32/apps/package_games_strategy.pngUT >mA_PQux -V}8Űf1ҡ^Nt6QD刃Xu~ެ}7/ %v8e%]a8dyNo2C!jlѴo?羞z|]&$8pٺ|[V(~̙f<zEL8}|CO&fFQ%$-0{/;1tF/{X2e ZX7\ U47D ecfg1%UEqG*pz6JF93|pa~̒lm݆#R\ A6|BH333^:^~XSS?k턦d'˰% V.X<_䲝t!;'f  tKRh"psk!1DG{@ڻZi"4+6i~h*Hr99fƘ:Tc^"{\R+ixФ{ĵ5 X0NXgcxQHA@9슉k@>lry44or:/R{Q0Eos2ߛsdBGcQQQbJ`SOoAU--"2`QJ#ba+[~`1/Z L Sz_LOqF7(4YJ_ nSWH]:K)&ˆm'q@!r8O=Xژ]]y >=g]b*Cqzgn9 FIh){gQf.%_X!׌}OOMi'L,ǙEj>Q_L :+ѰI0 R⇇URo܅s"偁k"˜JU+d2-, ^#51Җa a;/ȯOhEo2r2۱vL{ƒgPkS 917,٣dy,$PNtq અWtZmjDŽ|ƛ"!' 'd09;.>qtÉ1/׀us^\1᛬)5:7Wbxˎ/s#9!xs3zHCExJ'!& 顏;"Vv;͑ faAμQ720k3GD62a#LPS8U$.?XzaN U㍖.<\8hQ$ldX!ՙH5y8J U`9 #UX%%*z3WBLmu$ O-̐rF#(wjLF{c"r_w"+#M vã>YRϣq>Mc95amI--rړBY,Viw2g,F22@b%PPQ u=r!wf ZSʲ}6XN2$]2F1"x?:u|cl [Z|{(V!oLΨeQ\MoU+4pùI!E<ݑd.j;H! 7] V~bR2!>&D\}9M*6V#>)d [no?繞?羮繯sCC[Y,*觀=ƊhcN9sfXL; ^lq'؛{"qPcYDFks:?PqDC0L#y@t4Xw, lǟD$Euu hVe_GG^G ]ɹ W`Lɹ CZDX c$ipqmx|w9`b}e0bٕШ[Bh4͊ UrB@:M҃`aЁIB 6W%di`K=LZvϔyD1Qڜ]|`iJNNcoSe'Ukt W9lį#,-D3Ζ%m˝p_{d\KTe?tVP.?zƊg/f*A9gp=ƕ8ƭa߳ϨzX@s,#Kg+~[]Wzu NDKwcKkW^U҂q.~%H044oTtbeeW6X%g ȣ2k0 J 9ܪ7O37>u0) "1%o뀭ew*sPI"XoNIzM6l9. ~-B|gэu#ۨ3 Gxqj>_܇=܍sC5_wI$=*{imo/19(Tyd郚FKc$xU&u\ՖאΙ} jEPh }E E\zY ހn^I>7RX /N_tlfZ+u/4:"cBo^ORP$2{!dG IftWx.-RE31V'Fj }xp,;M$U͍؛-'@:)Bsk4tt0sͼo'a᳂u|YSN|$ap&=䕉s}AW}`msB/MKSyޡ_!}"҉6 XobwF8f9'"$R9>"W^RNm#ӈ.Q.z٢ТIt>}g} .Ij'4+w{a?ikZaC,@rSgy$WȞ9_hGEX?Gof!lstS[{l~-Iq鐮[>WMj6D^aFc#^Z^ri\]*':nRyTyPT=tj@J)HM w'a`Qp7ݾXzn(˼,I͆jh0T|e,ĨAYZ<~T?e_A8YE{U`9J߃;%Vn$qn2^;Cw˛C ԽXb mK@7oCճ*6n%6jCa@Y@xBZtTgՁ}Y舻icbQv[пz%|YlzC䜯1LJ9&=1ٱpӬ-Kf0B IBW֦7H[ߓkhH]6y,EL<[|윬2~N|k&ye KƟYIsD!NWeƿ}Ϙ_ بS\XC;pVUFJg#wz+ܧʔ߆k1k9*=]}ngLoT -q,FU< @غ"?7%l}!+_0KvyJt#!> 'D}g#Njh9 ؞3ޛ g^n^/eL*Kzq}{e 0 =FZi2Gunvq:]>KVޕJf8č8)XNI;;A qk,xc&e#Rprs8w^_sm p7U_>NN39p4cc>%/qaWXLeN'AK[yzr]wo3fKiz.qyt|8zCTH4@EMWr͕ B7y`8lx `\f4]kG ?@}}GLVp hk߁b洲 +,:2tg&z Rzrớ J6H*}9$=)q>%| #lef8dz\9!E4g6hg5̑yҡ~!qCM(+tF m xPK D1&M}Q Q (nuvola/32x32/apps/package_multimedia.pngUT 0^aA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,0###iYXDEEc?^P؉A:o&_c`xu. @䆀jbb#GDzn}5 -%%=_DDDر l@1{_q@AAAaBKK}@@Iਙ;w^#ի /@߿D @8Ρڵk Wb={c Ks( _u:2h3/>  P9@DY|} pk#w|IV!:FxLBfP)- @8 PG5 [ 6T}dP9,J8 ** /#EĀM 333/y1L ?֝ Lhu\\\ ?a gpqqe1vdϡlpmp ?~~^v6fU>fPB l! <300H|m qà 2a`Wesd:0HH2_ . gLbf`c`fb?P @px묐)S0\|@''7@%%e`1a L6 & O>2|./ dCWF1-dfx/P?~_bB*/\v9~׮m, ++ Ġ,#+ˏ@BB@xa X?phAi`j lxĉfsxDn* ""=/ؗҕ,3 030p1<~? |||4Ց : La7n\+KMM~wp rA`~ J`f`Ub@| @.F, ~`8rx/0 yx}Xj l&1{߾}]]8u?@߹h7_+0'|y e3d '1? ?PmcmûwdfGͣ f@h2p02Sf#`Q̠ @g@5`u϶\][r00s3D3lBX@HX7"Sc `4;~:`jQ} bdoܸ^X[[cio޼g022bޫ-bbB֎_|/h ţ z _%{o{"Y~j+W.eb0A 1K2l޺!08;V2xєg<;wf+7u` n~K /ܻT{6!+=o}?!!T r 6Uf`̾I V@rL\Tل$ѲXp/aK `PD ʕHmV$lHB H ~?f5ٰf׮l7JmL/8PI,y'"O|?uILO;'H:s+ire08RW7fEuqAɡd3Jԛ3p~jln,+_1;xh{njU}@R8녃8&A̘;F賖hW4$UϴUzbk] +DuH|:ۗg&{jh6RIjqiJ$&fioWn_>[YU-eD]E Jbr"YZ]0ZRl]YV|YSHͬ⟖ Lik٫e{Kܬq'c4^ֆvoE;(xc3ӧ$1bG4&&$5o+:uEvur_XB$YR#Og.ek[Vյu^?bVO gIM^["=vj*rz 7+mB?&걆chZ+͵Zn@Վ6͢31P HE # <^pwGEOT fvB"e+GzW>PG^_qHl HskΊ{yЈ@J(9HYp_RmJMWTOlcT'36`95W@ sӜRg"ކN(tnvyxݮʷ%/%j Hຝr)Jۣ-"`j/e"{lNexɠ}韒z)$E _ldYM-[;ZL6mSHYTJ5m~:#5p!g.F:rrq43|{եc {sϏ_}K Y)D4!:͢4HvLBkj$ǖ"ݚ6fл䛳ֵ:R<ի :ds8JI?_ޏ* n9լX)M$=6@[ZҺj,.Rʚ@ } H[D m^e3jw(3T疓 V/?k5C?}IמzP:BO;3Dμy& eʮ'B"OW<'dLg.լ5βwU[4;wt\(~"G.hJr6&] ׶+3?hONHϕ'!};{a<Q5}=kvz@5܅f}K-k!81eJ+}2uE/Q??*w)&˄tx|E }FO{?񢥫X\'FFƃ?T_6 K) j(+p=§tjH6u,؆^;O(ٜr Ȓu;+>u^׍mEחe]4\*g}F_< J,l7aKc3I\`JH굅rvQ&SEDSR[WN!_-B{Zf i5r n- jzj1L9客~^\2SN\`[̛q?<]Y#y*d}J];۪}grV. WWg1_iVߘuYX,áI)bČ+\Tb4 !u]^!DXÅx!ֲXG3=4uNB: _ R赫j=(sS֊C.pȱlXOdkΔg._Fr©n}/R{JNta=&j4EudB6_Z)d-/YJ?jXD@?K.xa;aIqA('Dzrߒ5YȖ|Hiـ4]r(!~}$](i&UJjSo\PywV`_PHݼPKD19^- &nuvola/32x32/apps/package_settings.pngUT :^aA4Qux V}<c-=mmHG(Pm֜~I89B9%DCdc~~]_׵uU`ҭ//~'Ծ!\.x!xRl|R4wޞG3S0@dq7m[bV'g2|g0U1g+/C蛭ޱinnM+)"P-T}lTCa,L'[ۮwߟ6;hr6^O8 ߾XkQ)1~݂9Sjţ^"X)7 ֚M̸NaB.N퇻 N6I/8;]]]c wzlNĵ}IOuyGs)FDbaf0on~%eXXw^Q~>hrVg–УG@0#5cnaѪ,R7aU>3**ů?~x2۰lS'Mڥoc^t IOǏ-i͕JDKb3p# qANΟϞ=ـwkٓ WuC9:ƭI$D8?ۭjTTT<jx"N=xdYVf7g\o?.n[4q# e8Ab3脃~hȚJeVee16 0=yԞ_ʽ{OgNZd\Ox u\ vvTvv%Z ִ i]٘-DB pF$n/i4Pɧ4~&d;PPm8u/薳~mM~ KlQa7pw#v"WAkloSA3&aUeow2ű–6D!fVz$J(Cxcr1ą|Єy-AKvE"yA0 Ck'uIЏ4 _bpK%!4;a;M@FFRmkZ&V_p8W2cēɄ,FMۅ"<6G"[Q/Pqͬi\zʋ=ٜ (/R|dvۈBXX؞w^0FΌ;GU$.J7AUw-Kv: ԕLؙ} JUĭ6DY[OgT/;AG8]z:?=ziӦK na4*E!zWݖN0ݻ\;|]G"7B+@R{b|txD3Pf q෣XA0OQ"j1,/$-Cb_&]hh;<h"n]u"A3`ȊPpE)`mllvRNSG<ŐމSѼYlˈsUk.B_Xv!TIfueIucG'5vY?OEQ>ɨ..؞vjŽ?:j9fI#qH&Ubw=eʑ'ʼ%O~n+0,>$;Vr&Bu~kA%4(SM CSl[%xYB| . 1)54VmC|:ʀBv3wYW^!gI#:-}6 粘KK3msܜ{,v_B:H tҗ@?b3[e%EnOo 1d |$#1]  OL&35ʛ^`vc.xmaĬW-I@o'bVSZd19VJ̶WHӾOmZ<$')\c뫪qR:M)bdW TZ*{>_;ɣ`0Q:o5GZeGLb֪F&|NI4^\dT0q/T#DWE_&+15 ),òWU"l!?2 ]rc ZMhh dExiYAvYMSPn0Ԟc縦%♨bv^0?d֞z`O! {ߎ&_2oJT] ũ"I)[ Y]DhTCCN5; eem\Q-N=~TM.lNZL`s͚Ws7?" ̔˪5+Ws;7Pdco8 f[wLYfurNJ [Z }"awUgi# ! xh[}'g=:Il`LIF Fbo0 b5PiV({zzhBjKd U<^dgI%LuZ$sn-1Os3iU~H,SUfS:'f ='~6ylA/j!jQ8&hT,\FU"Q4.4]p\A1( hG SCNN뻆^=CCGE^"^Z"T6ƖOuzo_':%CB@uaONS!Ϛ'Z A ~``-%c03l3ؠ-TwF?Bg!p1g*t"09 WVݸq6ٚZnczǶ|ZE>ʏrK&?C (Aȅr4`AC\T ^v rk.lsA^-WNOJ\}٦1C.4SǟmƄm-l#w5_3₲3Κ@FKz̆>k>nv+>4{d$kѠAj6+<t8!nwmp}b 6=1$) m ! a{EI%|ۡn;\8A. u%-Ij%Aڛ%,X63_3/O M"1d-Olz`K2Sbb0Ԕ %cFR.1\X\a@ l w{s2Ghމ:wT5>yd_#̎YVA\otOr]&.WϾroTU6=JƦoYdzƖ$V+Pt۫gōϔZ=T(($ \{\C*8uz!^PM9JX =}U-z@w 8^tWoJV~?s+2u[%)*q]"xNn`UQI& yik2ܙ̫|A82}؎-2>1UʳٵŵeY^ W]AOlzaPciqר矷fYCj?"P`tlQvsW$EʟIK,qt`F%J:C) ‹Ϝ3HC0ϨZ_p!;Y9S *iRr;%E\ ž!cݝTXI$ T SRL )e[U)^꼷/Kn1#._\ ~  kVYly|Qo\3B~Xc l]wXf_[ }3 l]xn|Vf/ _(fv]Yz C `QpU%Kz MNVEɂMGh5d}U#YA.owo3::~IJSr0ŎKY#S5J{6LC_ 4}?Tu_065!_! ]< ْwTbtByBIa&UdcWjj Qd;%p򚿏h6opBLgQANw[T#IC) 7gـʟB٠x \sD {+zk ǣY((88.}fXWd|@37QN̞TJ@^]/ʎ HLx֪uo?lN;9 N6-0#͚ )i8_1_wNȷM?rl6#a69WS;fv9A NLNVy뇉HwdPxq/JʎWր<Q%K*^f'A2/JRǺPtZE r7B\ߕ5ޯl@VRzgB,i݈ݘMsᶴfӿ@7v] 2&8X-AOwWntji k94Ŕ6hޱn[q͈٧M[G' A݈b={ Wwz`/BAAKџU aՃbG4ݫQ}V0d}{ș$pިsٗK>\񩤮ZgOFFA>}cٽ 7S 穴k*:zJ42RHpCWg:nB7o:*d%S¼Z4\twӮ Zd+%\ڃ}S-Ʈ2Vn:dT~{\ ՒLVc1v_ٟeu;Yտ(Z"+),1MyݽmCw'4qi,[VddUc'R; (UUMxի}oܸpV\ž%2a|@;3LA0sȤ4tw {Wu]{OwAriJ}|,yxɱ0#@P!'+2uH*CżT AjHn++ 8tCjepd:,/UZI]ʃ:jfպܗ<7PSʅOf3Qwg?$#-_\H]u퉔bĴPv]I_:T{ fёקG%3+`bhf@+U]%I[Ui y,_lF (w*n yVlA|:'ҀУvNp;jkKz)6X.39_bRޢ:}Kt֘k5~mywuvPo bl:yeLd[2Ȫ 2t qLWCJbm'^ftq%r^ {avP?Q#WW#H灖) bҨpϭ,|\.jd:IҩIZxl R+( W):"<it\pЋƈ=nl%n1Y8!$(2\4 #2sܞv}GcO|]2B^߮ D7ksY \f=+1];SZum޽n'ZsR X#6d[Ih%'.0i@9jH<#j=o HuA"ͫ`  kqnԧ>!X#nJy*-OdΫdsrmhaB[kw'.;)H$).9 )QzH37L8 >4w(gps/#ET!ϽT$5ĽeCkr;~'&KK}cH3 2ކp gCKLX{4Qyľ_S-䒌0>È#v(đ\OT:<{-4Ar3vE"&* a R+¤$k` +MdRdOPAR>]3Y/gN3Ʋv  dj=1&{d9UB w0Kɭ|.eNA!mAEl.cb# dR5m3\~;,l* vqA$"fjd rOTs!c3]Vd59c HFڎlYjK:iKhjJ59yg=w^^!j L =9^,}KCcSUfQviQ ۶ehS℟r-#> 4~)W"dKH 9L~n-}|#K@WU0iIBk8Ϊ6MŜ9DXSMyBS_cQݖSqh/r$-n_~ WQ kK.G\!跉m]իʞk>(&jl~x{Qs{)ot]źY m$83?ǒzϒg>k?ճZꭦشM3}Qj{ Drajb4CnRٛB?mٔ?Μ h77hCa9NpunxT'$^—ƟЩ.4nv=CMiQ%W5pPgw7h G) }WJY9\~~A%|Ey,+~0dDl`FK㲠X0刜GC-SJ4peӃJVPbh_9:p_3y%,d"Øw O8Z^SHǼ^6Ȧ38s;ZkEBem*Bν,:hzk٠5>yPQ3]srJb52 ?GؙV)eton!Կ!.LmO1Jg)|!cϚ|'8IK\[ xc|}})sq3!xG7c_ĆB8< H7@#PK D1ۢ 'nuvola/32x32/apps/package_utilities.pngUT P^aA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bAp](0A 5PM0>HՇ?ߝQdf_,T-@8@^æ=H# ߿$ RF;+û7}9P(F @(`bd/ ? a1BaS Ovwc4P+:bj3Nv–[y6xpby5OV7tf,@`ԥ LCXo e^|8w gL~bA,@;8X0u o0pDHIK8ְڞ/ف!oVsc6p@a8h6+0Vf+~jP*4f霉?yBk)>w _i3w{//+j/>bAO8@)=:pY>B 30 < ]a4ϻkJO| Nt3<< >>BMa[$8ف010a ,ğ %`bAb4 5DxuL}04#8XaTWCĄř#Ra޶k8$dgGqd(e5}_纁 *ĖaĄ5@1306z_08:11ar̥^~c8|˿Ϗ7eed?y0 1_>#, P! 1  b cx<*CeS;!ALQN. 8XvȖ<9v1 f\`Bw@1a+@6v j. eرu'߸;>Ə?0 l|| vv' Н'/%6t7O JVfe͂D '֭[K ge;ݻwnݼ`ȠgcqNu7Ξݝ}}c,U?@(@)w?0C/~rJDLBJTTTlllB~~ 22 Ozo(+ [@y*6Q@_@cZ>s]`ҙ%5>_^ ϟ? @UR~-qKBBa˿J<ٲ>eegMM_<~ma!?J$!}. `X7ȍ~_%3@,%!8qp]F_Yٓ@rsO]z5574o728Gf'@: ȍg~Go?w  Mȶx!`^2||+54Z 3V8?1U21-{ x]_*v/ɕ@ v v 꺺 jjI'UU >$/PU5FԁX8 @MF C?=_P(5$ёj<'VCR[_KXxA  13L Np?`j7 "YX~7`ݻ7o~Ç]#-.Π'"Ԣ 9{?07)ãԪ}Oۯ_],n/ )) ||rr,??gx/hÈqG.;(gBTQ]@mm&&?Zs FzQ9ȍ3A~׮bbL2bb aay߯_\/SrXFF&hp?i hj<Cv@@@Z H5 ;իg @1qbXh_/w_3(-@L4p^o_1 rrss[?28xy؀JXq@u($+AA!.82@Gcd߿YMK0=zt 77 A  o AXXXm 6b} 6bel8HS/2B?00qrCB A/0at"W?`xΕ\^  Kee _QHa`,3:V6&`@3C'B/*Cuu;C99^@cbp$$X$vN!L  WȇJUsDӄٮ8eg!'D4b^ ڶ4FEn`ňՈXov7?G1 Z]VV ,<=x߿W2 _~ebPVTadÎX4N;>r5a r;߯P aжdɠP^X.T2}~]_ -`ab#0:}x`dVJXN`z{r a1j**1~Wva ǎd8{ 0M1470(0E0p …8yn}WuLhJ3- PO~ WpKKe:90< %,O{?0w~_g`{q20O  ZGТW0-ȰNߧXnf| n,fXӆ M. <_me(~,gm  Onlc(jfcaqc`|a y:+0|[K#ރ@( ~MNEy/dK Og8ROec#ڍ%~275O W^`0 ݗ_2h_k| ?d2 dMg8qsG߇k-\ 15Řԥx>^?aw s~fefeOe|~ Tm*}p>>F ?3E><Ȱr%f * L~< -bhz3A WA (|l8$D͊ ^1kkHHBy'8LHJfmaQY-AXȚ߱]-aEyW|"*VY3T|[W!q3gf`PRa`Xi:尋\|tEhFi4=9+.Zc Z4ZǷ&AJ/f!jWi"Ir. לި[g h.h-qn 2a}307'8?_ - {7_0p12ȋ 31e09gegfP`9W ;1\XY@T8 X9M$z Q ,@.6f.%:?E GRX[H~O`؀> -ݷEN/7v;/  ѫ 21 na ߁,5@r$y#,]HA;|n.&,z> lk3?P+$@7pA@:TŁoVCA<]o9@_ :F&?pS | bԁԐ1޾x $zu`}F,lFq v_ 66N 1 g0YZo',A7 `d$>ȁ9w&u\JKp-$M0p1/{&a? ?&e޸c+ß9fٙΟ_DN !b4vϳ8m&\ȨoKm?3@1!K!&;j9s1;P7ߞ`=ȷ 3cag0,is,߿1iRw 9L# Y]%-p1302XV Lw?ە)d?@ @8 ( sEGAp3C}d9v4uJ13 ^Ka 0tt$n3h\R?ĔA;D/;NQ`?A v@!4C`P>0mL@Mn1g@& =]λFQ#T$s@;rF! Cai [+};S7&F@+ hwf? ox,^1B;0 gZT A30M%ۘlo;P x:8)Xg`m=毋nf~:=DA#aC4A̧01D;Lx~Zn\ Ȁ3 T/p w2L]yRO_`o+~Ԏ  29?0]ⅬƲ? ϱ>q_~{嵟 7UOm BqL.^o\? ,32= +OָwQhFn )t`b9rn`LUﭏ ?13fַм-j;?/?A 0cp!c{ 2#:&w/!`#] ~&`H//@pr1HqY~3;| ;PZtǾq'0@MLL 3pV}CbA uhRc5 C @w (M+IENDB`PKܞL1Bxs nuvola/32x32/apps/personal.pngUT plA4Qux %Vi\$$aHdM @G"Za K "0 H@+&VO!j(S,BPA(M0J2ɼ~s9q[?tzqL{vA{S0D~ 'ߚ#Mbd8^:n"dX:9P*LKeJh0Rg&KZywv͗Z\\zw?[ )C1tս;Z9[vvR(I$H\D^ՠЗ5U ,īǽA5lQ,R fnfvFQwp̍W6 Q#3+3 뇎'j]jh&`ް;AGhYߏ:Jb%0ObP9ˣTC0ƾou. w+@Ƅ9,_1Q;UTrLꀋTѤ>^C::30'LqX}JpE-" iv@7heܸ(\شE+Ko\f!P^$ŷ:.Vk_&L=ݭHܠVLgVd &6'{ڂ?>Hyp1K4He²Qnmg;Џkyڍ4c &s|0XL ;zؚ>`Y̶e߼Y]}&l|[xY7VԔe ȵsuM (X.xU _gO*/]UP9!ɻӯqsz< JJw)g5,;n;2S,hN! 7 z0L5k[3(bEXFӯLxh323I }7ҀbS8Z˽ f`U'4+CY~,7&GDœ*1v"wH371PE41 |$`DmO!x,B$I$$C+T,A }܁+w iou܌N5 D{T ZoOWs.q8[;@Kңy4(⨜TO 1 '0 Zk s^2BF4,H|bfFAZ_VJl5܊ qEL,!ݏTN* YV|3$i!)tAd2YNHF}KAҋ#A>5%fP샍#^/c0zFo6amK>"?\s6Fu;E^zKS;S9(?' =(kb0#BO wJ($wMD|]dMY=\2'Zԕp䋿^/QͰD#YGp.}BE^ђnCuJ-\J#) =k-.7 k$Tli䯞8,Ժy^7?LDtUݔ{ұ%AWv9xyn\YEwESi6yܿ0)OIreomm1ɖr[+WYm$3 PeMx\i]B5KzCc,ٗ/PX~(ھ$j1-N&~P]GS׎!6' , BAm q)pX6!'" E;Wb 9& L췱q[􄄵-*lM92p.` Bfgޠ_X+/y7VIڶm0*u߸a:QAAE\ 3mcj|z Ct8!wZ_!xn \_)xQ"** LOOW^isI 7ٯyzLb5u\QCV ʅQ^nݻ~[pEUPa F`'׳m WFOH$׏SȰtygggnaaaLRRBb@hUlEe羾;eKJv__! ڗՎDoHY>>μgj|a"@Bۊ~6.];z萐ÇYBKc_^"I5>Pdπn$AT/(a(L|`[d-|7owDg1G;% b8K󫳶.MMB 7uKKj;?[ȕBoaarġ] LfxmݒI  KfB?V2#$"L P'|9 94=ZJx~Q6B*.qG `8ꥬpBȟbun9fvIq<:=Nzr2gy2$fyeDZuAvyRRn03TYLC `)MImmͿf/Ԝk,L愌}UϽBvƒ*?zw@Zr\(U9_I7w.[j x&!`>~\.Mu޺5fi~tGY17*Kh{E*p/Np_:Ԃy('}pX_oUz´aw9PKL1)* nuvola/32x32/apps/randr.pngUT lA4Qux V{XDD[4Q˶3+ղS+W^LlӬDs_6+-Mkܷ֒L5KTx<9syi^\1&oZt։,o4m>#ٟgeO s8y(^Enjrr MҰPH2_ gDӕ 6].~}‚qۛ"解.hN0dMW7^0b6.t-,ۥ?` I`SZkzVfRs%!+]^VS  njj,يӧ+_ ޴GE0}HA},R\{(RwL/5 Gw:_Vz-9 T=YsoFBd묳IUAEDkIi|(r ;uaf&@(*|[rLci)<`rN-ZU' %}d5/kZ~`t a)t%uevjjy}zuxx]!i¦%$~ 2 1L]\baw,*CvL,4ح2ixh4(;gp⋁B=KR#0jdZ{L]ģ߼X7K`1Wx+JŸ7qPAO T*Yϵ)[<%$Bk q29CX#A =!W*,>/˟`i~h^C,_ɷNΘaU/.|:0ٝsPn \֌kGO=1 _;D0*LwO4yr|: _meOa,/slj@j wo. I,H /V&Bf];_+"!E]K,%^ЫC;0|hJjr,dclnFHAb!=gSFW,5k?"%d~DKBB_:*ܯ$"7P $`^ %p&N)Ύ!~@vEo .-twAw 8ڵTI}h6Llɱw,/Syϑ7ƋT4 QN 1[ѩgXHP̠"\,`wqp[9o b#;_˼c3xCf?[Ȼ㘕x HMPx}ի{o ߲m6~lllB\\iuUUӣjzܑpx4%gzK`tJ0Ǽi1H^v7Sh9 \a1JHc+_+d' #+1gd\}x=:ݞVU?paf_Cj>S'~zc%nׅ c?q>thAza!1I0~P]aCfI4PЈjy08p(PKL1%5 6 nuvola/32x32/apps/realplayer.pngUT lA4Qux yT7ٰ @@,,) A%*pxEAXBhUE QA0b%!5\ʏJ$yg̛ ,X:4Xs -)h}wQ\98:Kڙfk,k6)`ֈ*&ޑq.[1~.R\aP~|TĜ m+92-Qő=OF=N0.ǷDxrf"22_SKfꔻݽoW.̕*<Bb#*gb?M!K ge}+' ܀USPApv 'S|0;Qp'85 /4UV4_y|p'rcĐ %Sh/7ߓz @ex \]RrlaR ^9as@'X߽R ڞTUmGlI]Q4}Fc)LK3p x=HԻObboB*<ᓂ왷V4eaR7[*cUUEւ!`xH=]ЏqGN5 tB%ZK봗5!;09sSQ5vR  ;5DZ4)~-iAe $YPᩗYGlL9Z+@eC"@6IR[;P\9P2|N+@IfzTz!Np}o&fEdu'$Вj83<ȹUșw{?f6yT[]",|"j!،sx]6=?iLKmߎ:P?aN@Gy... 3 ~:ӓUpL|k nD.v@X4ʪ$'7{YFv6}oȴlX|u'+#)R7KX8!+PNց/Ӓ &Ƭof;o9/-rƊaQ%G*9i.PҮ,% S{nfuHi{U\G74cc?@j7{㔈E8BWX)ʍoˑ98f7$ -{+OnU< 'X͒' C#9TyFZz+EFף*$d!iZW\!sk["Jݞv&!ؙ}sL7|?зl:G ګO|4of'sPCf#@ E N#Hclw_@H4zOEYAKt^CΗNh>$64^ƺk][.+GKڋ Gw0,Ml}_r_%d!څwM`]C\˙/:֝Ėǧ$y'r&/L5|-7Z^߫90M= k1К4 yCW 3=NlQk[ 8VIĹ98Myt[Vprv1 ׶ioW旬3K& 3 65%_~<2DU1L'>/m6vPoS)|}1dq(%OW:Pyq$Ÿ(Mm輗gm{vyPo,8 63'kr7euEB|C7lh_2B[ʼ9U򣎇ihLbI(Z88->մ9Q>2ι:.kAC[BU'O~;_"P:ۋK?;Cm0yOD$ jrt~X{yOt%,ʈ\"Zɯī{:"jlo 2 SVy(QَꂨG>M|o7*K3;z\ g[9[tPjjf`aXH64]^!pƼ+ `S 2v#H{O[P0pGj'z֬z%PKL1JoP o nuvola/32x32/apps/remote.pngUT lA4Qux {}iK QSS'UKQ5|j*HֆJ$Gڵ#pG}<ы,pRpQ$Jn.>-j-=q"eq137O-ѓc<`w6<W8=XB-g6I}߇g-*eo)qTs;Mޞ_,ősFL\%שk$WQ9RRa Rsܹ7:C UEJA=>}HP`Ɯ3Z&lDڲy*}}gr0,r3ú(-}~Y;gsaԬH0"3ހ̞֬YS=22r{P_gc𿅗t$١{``!Kԯ6A.d{uMͧe[Nw{p7ͮ`IHtwm(:Oot2쌆0+qCT~ qtsyJrzx<65XW08i}H)axx怀j̔7}kHMTυ'|<1M233񒒒D!Am}H"8}=Q~+oW1 m/cHP@,==E4$_Womm]M~ꃪןӦǖ'o(3[ ?>vs.`q;hjVX3eUQ_AJ 4 YL軹Y?/uO I]KN8ɨBX8s3~FR` 7nҦdѴ*H1_.0ûDJQNܻN'?.`V_)b3L}"$7.ٺHyp$'5}PxC~R6/Q#(?ybByo&^ݬB+ۦfFc*}V?.yg ljJX0dqC FSb dN:n"Xu `5@P,ݪ4WPI. KDr:L2kT{jX" X\fhx)[V_8[akn8TYåuSDw( [ڝ9lHvi I)kLA3 `'C*cœxR9ZŘ_'֠ &ZdEh6}(rMP7P9j޻C%mA0 R@iPѩ!=w71W&hzc &sxɼ+(Ӎ<Ԫl%y_C2}$Fyi [YgD5=yԨHqDt k{QnU^} 85IEix[7Ծ #5uPo[QYiX!X>lМuIY?QĶ.ʣ$8x[WŚGaYmn< bኒ7M 9YY°9 8#vf>V ŨE!Pɐ8o7:ӝphsM:?Svoe8&Fٴ^U {/v8ƅ=ՏW]&,꺦#`Fu&PuwUJ I>ܲeK1ԣ"B -~UO, ffiNOc).zF'sQD}>_E.E3a͆FtS<az`A(?RVQذ,~_mqqΕ7S>vz9\>zn޺p^8zL8 /{ (rԸP=/ 0sy=fMǪ6@Ԇ'8[8_IMM-'\C?pmRX$boSm ^d2[O eng[~4'Am\#hDK~lm .>@5&C6rˇ BEo/,S/2䵺".PpVh=@ЪXG=D9dQaZ8;- |dq >x}d,kI}ѪRB)wE$XEA~A"RN 8'R̀k۰ sE+VMSI* ДM6cm`245&챍Nodgc@ɋԋRtY-9"Ώrbi̙#b< u-;F_2k +b0m(/@1TvwS~׈3PKt91`Y g nuvola/32x32/apps/samba.pngUT gUA4Qux %V{X"ԗh`9GAZVELfj-ɾV[ͲZbdjyϚ-SpkZ5Eqy?<NJo }ԆsYlpsѣ Ffl9t8"tdKIJD&sxGZ0ܞGAB5 Hb|}^ Akg{7F 7?Uꦑ >oUehur+wSHT8Υ8yK8s>E{ꕔecG#kȎIds~+[eMF 榶W۬i{%iPʡRuiBdFjo~fsLR/֑AYY8j Ɍɔ|#YTzH@3C9*~r-w"uWʖtlܶ 5Q?rt?&弥r+c5 Tv1m* /ijG UM}!Sê!$ EFQJ+w9k˙a, AJ4Nqp)DA$\֗:o}͌`IkU/-]%8hgBе,~MPkP"}ܽ 5}1K&ݳ5XlKD*槊wu r8'F>v퍍Rxj­Xp6$qQ:5tw@ /@^þڸN>W±ʈ *5S !gpn?yR7,TXơ{ԾE{3;ƷAr8͞dL=1ІrK s:ӧp!"`'C>h+L*Vv$})tIǕG֟#݋! fI&Lm㸡?jv]5nngSV A`he::IJ>H"'jah?q,X-R:D9+f"`C7ȷey-UZ b"6sArϕvBon#k_f/xzڶoak DF||5R=tIŷ0ð,&W|VͲ-vVT;U Hvp;k`ڼ%簀}N0vlMx=DA( 'gvM#\"Ѭb(w_ hhi!FuS8=3e$_}U ʮqK]%O$ٛ( $ kylZnomO{}3jЛ}D?|c)(u&V/BDMҊ .yS 0{1䞱g8r rX &"O)+{tQ.O]cDU!av 0G&ǺNDɻ0_c s]w8 |qW8`Y")@,(XTB$#ϫ: ˿_d"]dD$~1ë?\`(!' 5 e`1UDsR^iR>7/ bx'-f_w2M$bBq0 {Wy\'n8p_o1A\A̓?A!{ C,'/ 0@1F|07%i%n{ Y9xYyxX OA^ U CTŅGןm|50Xe?XzH *ƪPagb`" @1aRO@Uo`~?'.\O ~b7ßA9##0PSd g`{ ~d ļ~33ܻ{X?zMG60>|O@ F.&nhO J\ i9b"bLuW .`xz ÷o׀@ػifG g @~3h6LV&Hp@pǜ=j`i(<2!X'skT?9 Ç_!uU12:re1k[/c_=!P;XB6opߡ!,~j0d1o1soƿ~3`Aw@eK֖[`@88xE丙/ P`bd&FO -Z&xo_?μ9(3{TcTA h77W ߿f   `ˁ4aj*02|yp`eee1z?܇~\45āxy>1|dx#fp ͆`221#3X ?EL|, 1|BlN~`k%@1M!"\g}ϥ2|0-gffF@31fgggaecgpRj & ! ,)  91-RĂr6`2Pfvo`7P[@bc``^h0 20e@`Z*,Ӏq22S=?P( ΚȖ,a ! &E8~s2zTu  U$X?#j?~~h0 Ч@yX(,+R1 0HK0'pzmw_<ryA5T <@2aXA9r  1v1i^)`}y鞯 \ ZD}{{u+zv fܳ ➃l9R11#$8%4Vpv@S[B8w ,>q [//`d &@ &Ll8geG0duo?M9@F?×8]Uw@XXY%<9 fI3v2[hb a ԙ0Y.0 4Y]A8r;:1^I``PT bQ'fف\ < l  l{?VÃ@;ԡyl$@`24U Q3gc`~׎p{޾9 " VLl\gd`?6ނVPK_6X@C .ORu͔-DHKמEH@(RNFSx8Ae.c h'["DG2d?Wi’yxt> I$lw/ BM'$>X#/?ecRt|cl2m% 5E{{1tEkHl_; V¤yy gD!!+ l6y8h}rD(uƋ!x"S H%أWKf>wُ*\,10!-A >r^ 1~gIFzpx:$A7ʰJm٘~tOgŻfddD)i[gc9ܰVVk:A|IyjHN #Q[2ɑ\)oJrē nϊ"MSu0nwG} hpX)V[A&wF:&=I2 o>0E3iT%I,UsH_lf\+ǜ:Cr`~}-% W] 2ѴoQ|f;_\$zםb{CKNoW[ζMQ G^h 2/zdS0@2o4S KPLA~6NQ[eb_+sZ+o|\]4xx}kQܴIu@U/p$JU;K by SՏMejcqhQ[b08w rdUO>l/?|vWKQbo1Bẁ Fa}0eւJdOP+ک`H^e޸NzCrz%nů!Sf9Ԏqr?j Nr;̗[Cg裌,wgf h^r-!k.XaVӈnWH}$ (v8Pv 1eSG'lg 3)CtEǯ% [hC9)%dowpH<⌎ O'*$2OcNyO'v/ n1y5UZB ‰*Lcc+(' kXxP=9Ҫm&_&b˰qx#1˫KY}6A󅽷;,?iY7+x\`- 1~q!8͞B[uD,˗ߔ85Gž%^2:}t۔ 2:MRhwR)^:LLҟ*`~\1p28U#vpm|S{ .?iyeTCρ/ׇx^JJx&aXR Pg2#_y 6nHNI1&~>Y#xbַr؟h8_ƶQjL?tX+[}vWW<@[Gi a, pn~ $I-ojM{9&L V.Tp T7)qW{3q"bҦb]:ΈWeOLˇqӯDZ!%$j5UH@_^UGMOuz gj)+XtAxk.PK ОL1u nuvola/32x32/apps/stylesheet.pngUT XlA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p qC! 3E 3|(@!߁DE4ѣ<*~da XP/0հ4/4]嘁rLa'3Ha,H,E 03POL nc' _r, `x= 33(0I;'бo=e';$7@OK0q-<- sr33@?/֔M _<(kG@P_3?7h/f`  @p: s(F Sr7j_;7̶T{6UWd;ٞ_==X@^!l ;vF28Z0X(1}\۷$ps33ڪ3^`lǷO`\af02g8AEC謷 !1nxi IߺשTXD=Q?#w~?!?++XQ@3fJ>Rr󋁃;?×?0q|E-9 -9x ŐJ fdxw/Å,0F\c`Z @7Xp h7HaC_0G_@?o&św B PQH}|#rV6f1 PB?, ~PMTh@>#3&00|0M_!Y :@: P/Hs$[`B*3]}|{f$ Usw_rCzgf` !n;f;?#Gf r?HsB?A h9'hBw ~bgP`@u" 90O(h8- Vaj&4ʁZ,E=800h&e xIcP ,ZA 68H{Mu@@ j) ;C߃ ƁЀ  `IENDB`PK ӞL1MEnuvola/32x32/apps/terminal.pngUT ^lA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb?@bb`@b1***YϿ@Q `! ꁱ7`1122>wӧOw!\@G0@1l?0|P$ 9&?0\l  5e[/@ʇ?8Dff9@AX f@8jAqc`C|2ŋ Vfs::0RH~rJ)CGG/i @;"+fJðvZ{Q0@@x{ ŜFAAIe˖A9`4@DbGȐ߿r 1 ~@ܺua`\M0@HQ\@|?~0(++3(((0رŗ)?×/_>AUUAXXa޼y t2P7@l qdgXy.f2833l`YY$E{*瓉56) @̼ځ@L%! ȑ# r˖- 3gd'<#`xaDr.bB.`81۷A^^,wM7n0q@ a -b155']v1ӧ bVDDGBŐ+) ?<6`Ϟ=`KAYrƌar (4 7$q,@%! 02L6 deeԂĆ`YXCvD 4@!@XO60?+)Hyr 'O eAz0TF@\>}AŠS ,^44Ѡ`PTT{ F=P/8Q Â4#g8?  jE r%!?xb1#LgB|VV6`ve:^@KY?.@ Q@CFFL(|DNd!U0{5 Pۘ a.h);$F%}'#r!A4r` `"q;8*‹)Pp8нc)@'`)IENDB`PKΩL>Tdd@nuvola/32x32/apps/Thumbs.dbUT $VM4Qux  8T-e.\ĽvQ($}0(g B2GX=>n}>O_z̜~w>9oXG5Uh ߼G}~ AI!H_(7B@{ٶp Pkj`z`>-`? p\^x^ pC; 1pi@y@Pt=@P!H P4&#h'@ 8 ! ``%pS g Ypspp\W ܁O |_k"  q=8nZ_<7b>?M C~|O/?DNˣ p N0>3H:7@OK}ØmɠO|1w#gV9S95}ʀ?p_[pVY 8΀ᬀ3l?8G Tp?8+ 8j3s}~c pIaYO[W"Ai4 @R#HZ**JjzZzz:Z::FVfFF::ff=lL\l\llp'd $ I@B ?L"g!CuD$ؠFFlJ@S ! ${P xI]LȢ>p1q;^PW -'^B‡DDed)jsBW򤕽9.>~K#DFE'&]MNvF;w+)-ÖWTVU?ilz\GgWwOo_Sӄť5L`e >%l=bRpN}}M qߝ;+b>*Ef7'Ja.|t3>KYq3'Rk"3Ge]=, 2[㊎Y&A&k.۲Z؝;uc5GVxeĶуqCtY(ww bp}8VU"fIeB' u/ٞr! 6urb4v >mj{:|Ofx?pXnDEpS`wtH}A~[~}oߚkͶ̵6$cimC; }Fq,>NJ- g)̌P-J E|TQ)-"<SagzW=7rQsңO\kjcj|0㑭%(Nl{VD1aWm8 =KeY>Ug@⚪Mj$ͼWY_DFN.#2 A-Y#EB ZDAW)c-TqTۗ"8h Kk#u'f;W'4"b7VR. IK/ /԰2rQR "|'Upe](]tgeI؜UbsUdTr0L拭s)gv 2vNVId=UE4q654 R]䮥Ҕ_p'x2WۜBsi-M# Oޮg?۷Vy{|_}%ϟۇ yuHw7Z.a4SuC=gԅ&ݷ7,?]>Eᄌ eG=Iww[F.8Lz2/|W`JCkN> cf/~*gӆLS?p^bOcx?o }=,>N 镃n*ӮNyXen!-Ww5k@ M]X^E"ܓӸWr`U29[+-GKm$&v/xO|QϜ%c{*L8Q~序M* 97wpWe݆ +\#A.y6t]K3j!4rDl;PٜDWG#ՖuHjs{@[xe.wxh-@WsC  KEִvޡwC^({;l;}1O^qJ)3.~8”F53xl(dWkj%xnTS/N\3/x0~^b26_FLZs\Q~2jvApe{A{xJ|D/!|Bٶ_~Q r.ᄽq4?U̿숞L!.rwc%2fLR$\<2NOLd٬vIt9ܛ-$Du̸ɺ\j۾kض^qs*0/-/ۗ|#ձ6+dMc\<M6$蒭#wP':ZOm>bi6P@Xzbкcu= wWe)"߇0?uY1ƹ 癌A8wW% 2lt=}h<ÌoZ}Yi}i`4MyǮnZī}>cKY*Dz|{U" M+%AfE! x;$hQJպ?6kQ4%Ћ8]."?=\}@i5¯٦W{$˵\u",e]*5F1f:JM1+^&Pu B(CU{ZZ^wTVY{Gθ1kQ{#MWa:>kD&17.4l.@\of"ၹCyMs tV飔J[MgR똒vk\`Mcl sk%t%m(";c5t#4%Dnr;h$]Yfv:Ym׉,Xt6dh~vLif򍳬1:iL'Q(6gR*)xezzoabvFd}#z[&ePz:-0[iyKwT՛ΉVӕ]!m㼚8!~tK^&.}wg߁FCh~|ZA^mkQ&^-%wO ,^ u7In%؅huE,'l?HD}jy\{ہVl2ȯ#|o+-?ww?wg}=<jw.{__O֗pt|֯v^3s{ ` `<"H bXo3E`}  H Hρt+, r< ( P%@)P@Zu@=47[ 4 >-~`mځ>`7F 0 =:L0 0, @VU`dRvg`Qh ?tg+gIQ68d~"Y^;Zq1琘E!q:q<μgaxU~IKM ]~}#Q\)3-ף]Snma.`/ D=S6G([/nl_t_] Go2笡]JK XŜc)?G|c1ONGz(5ׄWC#eRe,JSOӏ'Ja嶤XKpR(%_lrk Fu;),RP60i(FR˱"֩U5B$b26aę?lɣW[&)v[ 1`q`A~"S(cό7!oNT$en?q`p˰湊ꩁQ!Y<Z1;T'Tt a(n|fʮ$32 *T #<k7+,d2Gv7rPEy-m%M+F9gKHbاbu:?oo绹a-u;Vz0-b߸l?,'ƠveB.HTi|7gg>q!+^H:kCo8k:P~fG2mU!u.,$E;UJ5ʾRx?h6em~59Sl)mdU8C ODFY\(pJt]{h=$F u3-+?dIhdw~:xr؞ӧDjQJi;Ae"VBlP-mʱP^g/gZh}?'+G0,ӪTh3P)ߠe|+OjHm{o#~ߝ/x{A[`('u s qpۭruF> }Z\VqBmܲxֱ()@,\lֹ6^(s`3G+n"įs{ | 3?u̬qź퉮1d[Ztޔ^ݮYR~R !|Fְ٠.>6ZVy%bjneMrr3VmM9zWMa_^TbӅ,OjcӳR?Pd?7>ϴvڲC^ҲFe +KJsZ Uܙ?0à>{;O@z$&ѧy\>)j0B#\2EXG܊;DyYU&0kZZ4rh=| !UaH'bPSaT\v:Sֹ񎉦1_#쏓*[{<.޴vJYHbUTol7\;75P?[s@. v`HPX#2RB鄹oFʬ4)h9fݰ0ZPWڷh)co_6&Lۦ3$؎iߟ珀L]|{{|gY@VϿ_U#ez>1Qhy~oёc%Y5v iJ:Ԧ|5s4kwt %Ie/'±3ZYWn0p륚Yh$- o 8/<ߐ(T߸Y7HGWK*K#6Qdy7 WbE8NHz-Rs,&s@ϓr^sAMgk"* "Tzo"M @&%@@J(*E: `DBE Ht,B3w{gwkf>s;O2>ɜ{/mm@oi4>n`mO_ZֿQZ{Lb~비D'd4B*g9VJR=%eOtg{vy tÕXidH F2O& f܇ayUˇ`X[_F//*Nw'j z447{?5$LŅqT&J7cu&e"e*U|L~UMIC~1HӾgsfǁ~QFAQ6#\K'G{ʆ/Ԡ1y3D cC=0893v3fU׫SdҚ;~j9;dʻ/bX2r介A)q-Rp@j"r4;+QIgvw9#Y0tb܂ѡﰘmizOc5_gt'*!a);g}Lh:ʅ_f<> E;8cX^n(Y?D}YJ'LYY9ޕ>qnI;2rO462<&LtÔ24xtiӤhB<\ä.JJS6+ƾC<&GlZJE-?o[8t~?z`L4W V l;p6npx>۽@'*")@8 gqHp8ɁUP%@PT5@4-@]@~`5.+0ƀ p 0sX` v`G 8.+wЀ |VC|@6` H~Y1up"!MKn,4t|jj=YҺL^ۑ mexFҪ#[#9!mM ms՝+3~ݺad$YBU|I6;&}C#q MV4tZ9X㡵DXT W>3 5iV6!Uivڻ GIJ*AŏLkHbVH)#k.u5;k5^+|&;Xo8qdU/P=[e+xpvͼSVpp+m,eQ F*?/#D"(|$ǣF>jҤ;Vmך:y[V P>9jv9C͋Hw_f9r&붆Y6"Z@zP*Ndu Ύ Y{Q9[iF-}w1nمVS|F0)>l]"ұdJ2O%nnX4 ~S#931MY3)C)D_G%=ϟyV)ʀ"|n=*V'yڠ)[{Pt*u ń"TF`X)'<*{ЧvREP4dzܔ}(~ۍtcz<+ 9LS-Q}FN[r6)OsOH}ÿ_o_I@{z|CP9XJ+h#mL[L5Q͑FQNe<=[r->s3zR*.a=Ӟ(ڎ>(ZG,Q|jHzeT`?_sl}11 Hn~t^ 㱱K0;٦$vQà|HDˠ 68D\]dެyvگ ߭#i AT8r[P輕ճ.}HGh|&B:VQ~=rrO~C[dsֱlK+0G6F"c,R:͔=A.pxfiL*0S"ɱB<{Prc*—Z1/{ j<$Jߋz,?TPb__U {V5fS\x0 I# כ /oMb{~Ͽd~ ZgN74?^Z,> 'm?[_?^,^uPVl!Sm 7+ QK-.A!o%wkMOgkSۇlCP^_Ɖl7ˇ&p*W; Cxϥ)KNp4RP:%]Xqh<&(ms,pcE턷{5jC&;Y?>)LK=OaMߎBjJTvP2b5f"V3UU=HhbI[˷ȩ9ot оaTYveszbJ=KqE]”-s)Gl]\2}0l۳rHRKBA6ZI6+>E7|cL%X}/MV4scSS|~8fqKKq fԬQ Yxu'cŸ2BjDe:Utty{B>S©$"'ofğ1~TiG9)l4k_׏Sο]]^ח }v31~g< kW& ;z Ap>1K.v9nn]T )"TF,sy~sA,WC)gby޺[=JwL&ф A)U~/WҶˋ~($rmHAER`ǧpD#gae9WyilQf݉D=ZG<}NqG9U+[R+ 9+ 6{;Ilgl_ 4i~I]`RGbγ ƫaqg 37]Y\mɦrF%RƥYqR-7kn1jmuD+bi `gE"RS\KaG5}Vnj, ׽fWcjW~k7R"1?jC,Y;JyoZ:g#븝Ckq?ZKȯ,RtuRb˗ gN:rޕx@ #6AmL0qRFٹPե޷MzHg_R_ef)[lؓ,"7dt*DM( 1>@ )`B5;,R՞(r\Vrٌ[hs+CMIe/$eR? Qvgv3-۞\'jR:δ[{NuwX/$0 Ok?%\4:lm7+o]xTE^#]&Wi""t1"("(&M(@DzBHrs{ν}7kd|o5> =^i/}ְj@uG:$,#tgrI NC:O|Lw y-E_m`Op;./ҙ)@8IQ],ת/i^xSޮQݱ#Pfm֒Z`/|t nߧ(Tw'Iz[6*dž'o/*=Y\ΡZlRmk,Mu|ЭD$*Nl5{f~6oRҨ%H{49rVhYXU<7FHoy|;/blt:YUz[N϶; :T E>!saIv<]1ml O09alܬ Sh2RG` f8л۾KSLվN(Roڱ&Wx7U&ܖɝr0P&'*_eM@,8JRsH^1B탓xx6ZoIS"шa}j.ϵ{UMOK4$XoEX;nH;5>}<7hzuvD؛w۔ⲭQ_b}4D\jhArV-#kc/K/kH<`]ImSRIkǕD,GcNx\2pi0{W#4r#JfLFy@#_ML~Q u:AMԓ4i呌oD #78ojvHf.S-'Mi;$=ZDRr~=\#Ԋi8ig8= *)At8HqY6mעFy`?.8D:RT6"5gQa\zWD]ؓ.SW8[,m6XNE#XMd2^8WkޑW628Ν( KC|x@I]AzO78]~??? xA A˟ 3\π @"H bX ~V$HR @ l ~FI~"(Jw@j P4#hZ hځ_0 #=x/W` &I` ̯}1`E` X X=7`ly.m`׽ޯ|+?tz⪧ Yw(e,%znZpYa<6MOSJlvLW?dH,_P*KP.kPklD9z1Uř>N0/🽝^YXHLHkDWL"7H,_g\akX#ޱ$xUʆV&q,/>L=bFZo5^Mxpb3|4O$( Dծ~ƅzߴzuYfhwG7֓/,/$t0>}dneįA_y#F:iẍ0 ?Fejt}B2A\&!(LȈQ'I.|qG4jaɱԿ~j,TtOʪI@ݘwd͹x#[HHa?s)eqWXdYzEL; / uVٺ5e0Ͷs;†TիoINfosťtHך8,nُb[mPw7_B](2Ήn>1cWB>*FI-G0/˭ YF d! =(x9}%ƻԓz(kw,ycdWt9aX6t_76ccJh,upƚ[J}-VE{&rDxMHa1 V;11< NxIƁQ$m-Do=>mk|3J!u.=fnvN.(i`m&3LǁHJ]GDQxQCOн5 WnWeJGƛfUcu+ʞLYȘhzpek]3%m)"vw''.瞪ObZoTMW\?+͒t|݃YOE,}`BC9FtCݰ@{O9@Ve:%oCg[K>Æ_O1AH;GtM}xқ'=,{_Q~k 5~rSMBfr+VV:7ܹVOB4T8ϖҎP 3s/!CsY؁Xùyr^k*c3? %aez-z [9hsM CH K̍¡W® `Џ=a=^Okk]Ҳ*E^c}-'JtQק\kslxR "C= A͓B=HkaqZǝ$ͮ]d{v(ѓS8ƫM.QXHd2:;+N7auGu:nn>܃yE]| 1"gÑ,i2&گ]Y6λ1+ͫF).Bjy̡/SD< bE.6{ Gk'~W֫a8xH6I&BT,ކ8AYop {X?E<5;A^k +L^G9R#2EvI3~w.zZH~ʨqO~{CX늵Wm >L,I}[|L[tj5l| DOqXiA(*|]Vܳ WI8laEزr0 )kh܃ս囔HpҌ׆غtl6GOhVK;ݜ~c*q25&`~qʌHȃT}Svϯ {q2UV:v*JvJt ^:mB_w`L8hR)~@aFT7mjTJFszp7x"|u 2iӟKR@ WNPh1M|39OIE*6w|}b9Eå,\)r R19x,2r Wq_+ŗJF^DD13(hHZEKɴL|i, jj[]z;һti"H EPJPD%J-|w9%טaѺu CkT5??2Jt:mOOC AOO?xǙ_rެdWS;27me6saH~iQ5up$5 |LNU0yTUc{`ThJC&܁ `!^] xoȒFb5>REݠI[O~f%yq6J:5K, OlN41qmHг?.fm4{gc?>aRQPYǩ;s)#$X'g0mC}{t2Zfbu,t..q XV>~kvɚ)F9qvah$6O*!즊`Hn1d<,ʅ7S3v`}K\3_n盜/Ӧ*IF"[eIԄmx{FĐና?浔v-de7@/'q8ݺmKC%S.Q;$-umOɦݒ+=~kNnk8^(hC-p8}+z`f8l~9Ap</'Spaw ޟ6h @Ҁ (ʀ }˿y@o Z]@!`` s+5`ow \gpn <p nh}0p@ ԿpݿV&6%xQɩ߶Da48lL|^"'NiKkfhr?bHo^i ME:Kv˾po:=ܣ-q I9N6gޱ潳8]f,M,K칚RF{ ZKnNq^yd@a(=TmM`+_.5:9ҿc;q+"߳H悛pކ7 UeM3;vi6kIj훉9q_m5T|%ս~ 6;WPx\"*Sy\lBjS Aĩŗ}RV+ZtV_"$nNr0b:z@z*xN˦LRwY6Wm^.T=@Q zKj˧=˓j'`32\j'\Hކxgk vcM;df@ʛ6q^\cm/Q,zvvOIDɾ5fnku[waf9+yKSC8ZM8\ts]&-yO<ď =~+dEBL W}MRD7ŸFHTj?q趟2*sݪS4ՊHX{Qdz\[qXOˁG{LLː4$-..X-;ߨ/߮/<7!M% ڕۓmwQ' N0iʯœzSp?^'\`j3gWO.UPTca8jVQ7W5ߊ/^9KZKӘ`r)8<5HqBkM\ ػ^s 븗O(# .C 1ִOY.^jw[|1ff@-HN!1f}hBy{GJ 1Ii _%K8  EN{Q ec_T[=Gxρ_'~=:D*A+*䃥L[>A$#1\WEz_=4{pr<9i u^*U?ǂukᤉY౒bL68n]9٢@V`&nTz0;RiՒK^ߕuH&w|pp~Ս%+7żBOŴfY pܜG# 3IY&>P[>?#VGU/+OrOIDcyO3!VJi3vNqhd=ZYlɳ8yc әXa?6+^V$:}1dISrWg86yִkKT-a`$.ta&8c#w3N `&c=F!"0i;tp?I)pnhp="z-iN>{<;jˮ ϶WJ+\pMtl55626_@UH{{BT-ϼ+˭lWQAvf`1"cV~\wJw( *ӛCDÍaU #JE(նN8h_ɹ"!yWt{,=BZ֦(ɼ>LV'[N,&f"nV7g-[>#83!p hM nnGX!h6ɩ˛Ԯ*Hvp%l?ZY5=+':퍪:N&X+ZTOVo7r6Ǹz5 GùY1EӕX^%)yLڼJ C-o(c{a5q|ɤ ;{S\MKz];JB'7>#u%ͼ tPf@lO6'nK*o@uat }yqC5ّ}o%󈠼oۿþGCqHB)Bʖ=$#lQTC"eKl(B2L}l}05c{:{{=9}>>߯tw=G2\$= h$߆:u`I{q 7ZG*eunfu5{OӠt8&>0_]@R4}vym%Wxp"ÏOI\و"6=z a3RR%̳CXoIekF)d?jc7$:,3gq빸ӌ@˪)6QeVᥛwcm(V|zIJRflǂt;27u??_(PDe;JQ-0/'u(2f =Ѝ7pf*=ꮋv-*'Qe@?Cx&2iK~U#D;a8KiP3z7XW?ui '~BODC88^ƾi~|}&L?݈z^]WzngY>y)w1'Wm^O'>B`Eg_ȳۧi8-UAmxvCrq󐍞Hzr7CۛPX|c'ķ>̞͎ej9bnj6%HMu)e%TIWjSEIf\YO]Ҋx؟\# yq\<<? {+?Wl~Lŵy)fpSJBp-Cn"ir߳1 8dԯP`~] V+Wi`;zyd|UEnX^w;q\8 Z+b u,3ɔ zj㸜n%.*FG@-8^=|/C-ϵ Cb-R. lV ht;F9v)M$Ll x4b2r5Ƹ .1Y"# SQώ>a\L.h'OvǞxI,;Gz7t$| PfSmE\Aش܈r%{f톮n(b-LXK;/P_NeFdߓYiՕDՅF=rM[8=eXM=-==}>SI?=?+E@wv@ oP x |9^51' o@$HR4 @1d9@.@!P%@)Pr~j P _zhfhڀvt@ ?ݷ߀` C0@FQ` &I` fY` ",+*Ѐu`_/]*!8d5'~S `Vm^QFE8^%v](bݘUW~O֧"<$Q &Ey]׆3 $KNM l\ݑ2.\$/ҩڔ)#U<|el9l9+AN0O=0Ƒ3ъXrKg$ n#E:u T5=/0=C=c? T*KEA,UG[5^0cHu8&z4I7S͊'R%mΗxVE}T4"Jn*.^fhxԲ{_z$cRp4LM~EȲ5}'hJA_7$kvMwi=on 60!b23]y(4~/?~>/ο?~# 7UO?K *'~d2C.PDqZڿl=wӜ3;[OIjk= &C13=Sv m3-)\nXՠͻfC.<Ĩ>aK9$xݰv@=ֺJ o<=B  `k؁`RJ,!1Ebs>|؎iتg6ݓ[ ;J2U h:SHqlRikXLDХ 9F*3_(Y~K3i9d[]|3KJzJxfbt;Mafa.)q!}GC~U!%iLWQ#x1:+YF޻G10}cK;|$>Wd0~Qe[,=,Á:.+(̮nG&"dztubµxV@8lr]^h݊7`ò+ Q$(swt{ڋN/xO$x?­{NM8{F'Hk2G%T#jC!mi{fy&k'G-qP~)c1)x .%,RӋ1d޺ o>}a 0zBJ&ꥤB+bjy-eNNFΓfiQwpzah_{ʿ_nZ5x*-HX(]#VM ,:J{cO/(O{n2.E8?^Y#xܗ5|9Z :8i5R,IE^kҡ\Cpx Bg9YT 1åҋ"\G8$\==:1Ij`6wف ReGr[#UzcTXI On~S;]Vx#1@ttx9qsVKQr%ό Ncn:tumϩ:/i>]/;ۅTێj1$Za' -hb|'Tf=VlRqB߲1ϣW]=hwT :c5c /{ e5L~xcg$خ/K=kA*XYN~x634ƹ9a.c/`b.mpGoj-Ko _=]TX|mSlSTe 1vO7JB Q9y¶ݿ͟S_$/zh&gOӞkj6÷|,B&DShX}r\w;;p}yѱtvp847ݩd/[".l{ڦ[2GypdSN|$_^T56&"tTuE7 NٝPݕ';X.ytڒ1K\G02:btagWK;.7+G;kiu_$=j3]L^Ifzaꍊ7 dO}nzje+=s,[#x yI,x $ OwpO?_إ& pc+ g ^N2 +ܕ:ͪuzu|e%0//+zi#sZ6>Y{2ș=$. &ֱG<2)WECmQ_DF*8UF/>WwmSt{)KxEnTn cdWh oԬz}~Af]02P;s>?_ׯ~?_vRKV]ͼoEg.1u}VP|P߬)[TˉaFD:CGj4=p KAoW+D {s$5LPWhdb !,)պ$4N0dgѰ>*8]VL9}"Yŝ:BxJR勅oe|�Wٮ8`2̚n4#S Ҫ(ssM$hQcnD@k|5iċfO=-XJ_7񧘃6CGB屡˴m2gb&/+ZO<H־D"'XS{ 7>Z^c#%m7}]f+C욨;~)߇@~!Zٿו@ Pj=Ni `XV `97'3Y /p\~@B0 \9& @Ҁ \2j:s`7=6p C0LS 0,sG 6C< p\W p<~Fo^?T_ b>}Nw@ KCfZef=ql=K%AJUr@ŭ@Bd9g撺Cբ9٢bF ᢻ$.̫cq/\(}&Gǯ4T~\34p8?&Nq #\=;42Gmem%tPSR12MG-H-Std.Frc6y3Ql'0GiJ>񃚇ihW),"w2[ßT璴.׬rTiX28)R xdUasq; :;rxkS}Y5[לrv8e& ġʅ/6z)^XiIcB ^VrPm2Wި/*++SAvfL OҸo6߂cͽQ5/GL>߄v*!ˡ- (EҫOIݨ,+r~o缅nq%'IɻV-Hd%4HlD## >I lf0ąD={>|qrsOJP|1{RX-,R[8ZCl,:O} >WhdvME`Q` vZX#e$y=@jm$1量 IK!vmuYR!q,*﬒v@U`6~o_+>L,ͷ8 =.po3ap&h:e1 #6¶I!NP֑HmBn/Ɨ4EE {]雑 dEmeWt5eθhABQϻ FS#deVWML<{$,g@|&,A}8+#}xzpU}! YdQ34v%UdGn@TSpk"Yպ<)_hvmfvI(hHz|C˹XRɔ7MVHAzKwT2R*__b_#ymh/p@pÛۼㄭs.Ň-x>m•BWuڸ'&mX^R G9QVoe"p '-iZOh>k9gZtƴ&z_RhU+fMx %sDuɖmՎkpƷpWS}H6 N8ȵW-c1~iQB|sDž`C$Jo,*{ bwHMi~hԝѳɡG|0]dZ{:,NO? >_-}~x}+.+.ks,H|.|0Fƻ,׫ 8Q a&x5Csu󔷾Jv 2+yP +Un#a㨐GlL #j=e')sṸ `ƦvlgN戲s`Yf݁'C9xQ?s 8Efѝn4JYͶJ4^n;jc&)Ax[ag 'om,>$|jkoU;lԣ ̨e<_b@8ƭv/:ϓ;?KBh-džz1e|FO>cL;Σ "4h?(@3ݥCQnU@񒾈g$!Nq|2F6cLxldLW# ]/Jr9LD NI&MzxiyWg')jշz*귔 L4OQ3qcR=N$SѠ+\ B?B#av%D'{Ewm0,$.j}wW+DN5/[RDG)C2<ԫ E<&_B\-7> XG-?bWo5Uv<| L065Dn+K}}@#~pKe}wxM V8ƶIDfmoh>Dma=J=͙W;I QzӷFYnЋTEAKYv 5yYbTx#3Ī&Z{KP^L 2L$ۃUǓmHH8&>ܠ[( j WOǵ j9!X'ZE.Gwڣgc{d__u1wuJ׾SU|4vlr#њ\ad0]tF<׬MM,|;6 eڥ'-d횖 dT5V%(wM: Ӗ0ǀ/st49NX-BdqsŁF(YH @½Im+K=øv1g\f)fnu!'| %dDO؉;m8?3Xo 꼗dv?)KS%L$ ۠yi yBLL{hkd>h DbUeXWu; B:=FeÞq1#tLjKF\1a&?uiP|߷ ߓpuESI9/WSl@㜀wUo_;ϓ![[!{F4AX,N+׮|?{3ρ5X €p h xq@< @"H=>i@:dY@6r< ( O@!((*fj. u@=4( hV h:N L=@/Ɓ~`/4#(0L +`E`Xx; " 50a7 [6{ίoA_h:a-i\{PB8{?m.O!\̹GIɤ=/:GWΫ<f eyncv Ɛq؈,lLO܏Vԡ"<1 =MFP XZ8zKÍ0vɱ6˶y!v9ls/TNWbo)D1aW 95I/66V…9,Uib`S9IC@ERm8[UԢ],P -ԃ~̌h(k6TpSM/DvwS*KXmcq~'SW+ps0i ?B]&5n>7E5r3 l]|IHr50~ WnkLZ'Qh~k?N̈́'wkE|:v?&YʈA?h j92I"q!9?y?ׅ*=oH#j,)QF%uˇŞT ϊmh4iU<(@mksWf.jIEuHLsU VꙥFAB  Qǧ׆tQ-=qXCQRRfY߫@œmki\=W~#?'p'%^cգ5zX{pT/zm/! u?R\nk`PR6nh3aNTUG~$gd?xK BP "ȟk +8 x qHw@ {@Ϲ|r<' @ P ?cP H@M@3m@;t_.ܳ`@?0 CW`F1`0$p0 |`Xx; "k:l$` 9.~?{7%aƌV(H̹gtene^W$+\ߕ-Jp,RDCnV䞊Q$`X-1)ɪo~]}:Jmݳ3V_\P-1_,d&[QG6#-Ig_ AqyQoOo_ ǿ~//?3m*))=Q,um꘠ ׼8ɀzJz ' KhMeZgߊwK똻;j헃* j2BmȆ]!̈́SDA5+,^sKX1p k ht[G*(p*/nOc\,F`Λ0f v}p9x•jhɢtnq9ؙVrzjOCoU jV=Y"}Tԝj)L>omZF;l7/ODa}<nTO!LBm|}#Y$[uJƊLǶPIy+fzT5 +8L$?Yo=7H !\D ;㕳uro溼H5 46-_\VHNMP` ̹:CA|w)8;4[ Wl/ī>'TIӜsmȈBvغYW_:Kh"'ZWSDNahM[ll9꫶Fu{ucĘx6䘍qݕYG LTdvEi#V jR TFvF=q UDHIfG*Q`{$P|UQQv|5L + O\E~jNx ZMjT@u< 9(o,cMtݬ坼i3e` ^݆ta>6~gzjyR>틾h3NLn@\) i4IT}%x,;m[4)O1ZPg>_)t֕Yz>ڙM$"Tϴz|षy cG-{ Cк2yٓ5 O2fU)PQK/SzzЂtrsi{y)-b"ic -vfd'jYU:!HIi' A.K:JO5Äd9gZ>*_k =M;k͈9IPqǣL0ɀ߈u *zeCg]NbjGrThĄiŐms&@~HVM$[7>=5{y_6TRܛkERdVBo7b0֋fyږs=|Po.˭"5⾟WGU2)&jQ(;؅!]o\򮓰pV?Reޓv 7Y,PH00u K'\v ([Eh8 0o1M&_<~>CF rǥ+f!ui8ی%rmGn&Gٌ)$,kWK.}g֐۸cSv*3N5R,@L|4.~Ś8<Kr@ )֜%L:~FTg)Spe]4`o؆X6w8^?bZo'{hf滮[xDݧ)=9ȷ;:^z թȡ-+ 8$ͧ{Wz {u?0eeL5o&| ֕\H,G xNJv<Ŀzn nWFcݴ]XI&kY`;x^(G,.ȧۼax߽TғCE˽\kJ^C64F-IuM;ڱRfȃ{J5D͑ƶ!sďE|%aEN%%D @YKFfWA5c'_xḄbmLۆnC܈I|̱AsϯXjdbV\L.]Y,Y0> ؞/.1ټ}EyU{/il--J  1)e]Gn`>W ^揨x1KBRkE|C_p&<|sւ?/OcZW9_o _/!?J /u˯ jKnt,U)S"5 Lai7K!-9i4:{Pz\2 :*P+J))JE+#ټwGR4æagWgK tTaV^78Un(?'#1U6f?^L O?܆r8{`o,-/f̖<-}v v'걮@QCfu.&V@ލ3_*1r7M_8m9"|ױIO++M#~$.,ܧ>-e6F*/e5 (Ch>%9]$G;/xk4C`2y뙻#6N3ĘJ'f>Qea O*zCt8}`K0B74ϲ;_X}Z4a&YWE0Cx$L&(&q3 K0^ĽSIr׳PcS!9v$_0!XΩgimd_],[tti澯9+^#2`5G kO?0_{.v{N`/^"Qp8x> #Q ?ǶQ8H pE@ PTU@ 8>s|mi@3>`Y`0́ ?Ǽ ` HP=G 8.%p9^Ww _,@  9~~+Ϥ.D3ȅ=x8 .K7ׁDzUE@/![UfanmMXU)m]>=5%-z; P+Jc9:N;0O{mB0kZSU>ASyK.;$P;9rtm%Z_ܖX#1 #D]# Xs+g}85]B T܏R*?03gc,^J[)>07N~59$_Q2q%f ~{cHx;Sj,FΛ27Bx%jQ;%P*UIG-qxb&'*-#|W۬>l1.VïfT %;sy+Uw]('T`Ҕ+r*T؆<(-Fo7 >DSv=p:ilP?[S-Sw`12$oP rbxxķ0r+_jtEǨQk^5o1f85lHR)kv_ES1&sRx6·LC欦n CMBqSd)IzL)9Vȇcr9fN}9~ }u27~s\i2$þ44?~-8Y^5pI#{vFXxK}>L"!ha]ԅ}F4FAgio>Qg=3N/zqeNA6ېC(L{Z|m¢rkhkb?934 \(W"SBLz&As`3 jC-v\~#Э)E˼'Cj[ D%GJЀdIZ@% 9 J,9I$5Ir7 4yL[֩]G`=eQ<{ZzsU.Se9E5CuF.1}Od!4wEU &wr@~6'tecNKzY؄07?F b"?~bҩ_M9\:B> #tOސMS$QMo(UW4R ќ)pNr%m'!ζFSn3^̻##,9tT"–\ZN7m:mR|d YiІX9zhE7ZN$%'{2a&i A*2˚=uQ1qDe[mDы_+BμoVjiV_d̢k1w޶0iC}/,b I_r>urY p2mC PDreU*'0-:i,\3cGQi5CbÙ{LoP[ % Ow{zlM7V=\q09va'W>>6j~H1hq4bk kЋ 5P&c~t7na!a4}%y Q2N:43M;[V+fKDze|am~fnFgлD)ڼRByxxAFv_yH /k{yc= %g= `>wtn;A}5E$~\"p@K1ɢ;Z5ۧ(ˇU9ʒzE:Ӎޤ^&%A# t 8DA[sGgÕ: r4I۟]7JF]ߟn|?t}@x=Z_I ޡ@pq&Oejydܨnu ps:q]Xbs_rMP/s<|p/:>60m_Xk;[ZRrIG B0p[hM!! !ճj{]*eO7*<8pG8\׻m~=espO-Rp lzY{)s~P9#>əLM7  *BٟD!&ȏoC~ w?YAT{}̏Qh D)Be+eEQ)jY#qb|lZk/T1Q t=+ٮ!Z=WpD 榉m)؋FŚ?K6N3nv[´5?ccWBt2}1IWu|)dȺ49˔xTǩ_M`|N‡t6\=l;o}J*^lw5T3b@x&܌kݽ?#핱UR-{Xa!0߮LB -yvžkuwtivsByJ7FKMu QJম{Y< z0𥉉Ү4Z 2G:F޻*-F!!~P}^="Ji Rȁe9େ'U0(09K_sqD-HrG \f7S&h$_HSj1Rjk#S syˊXdžɬDB;-mrv\v:b7MFvãI[F$c>iD_X=MAxx TU@5=+J0)NH=GTT9)<{+Kˀu/\Rݥd'Q]Y[1_Jޤ𲭤8׀OIUx~cS_\O^HÓvyݰĞ޻VhԺ*iV^)]czTv;"r˭X iu0Nhɓ ={kOt 9|6}l*I:{Wсw@LyLCQyߩS꼟ֱʗ3ۋ,oPT׏`nz ЬA۟B<:7U&m9[`S02 t2V5XOö2zf;Ob zr[PaMnLhOQO33n䟓wh ;AMwJm.o{_>ҏj23uCix 01-ZSet8)2>ԕ+eۘۺ )ԶlZK1ͧUqgxE8"y]\Wڡ՞&9͑|Qt{ =/j-=KGDn"6L uIYCN~mTaI-p X4bĐmf噲|qy= BpG&R$ڧ 8E/@I|\#!@(@$ ׿֖Ă@$@ Hp޿g@ 5^#y@>PzS%@)P PTU@5Pu?I7w@3m@;|N|50 ` &$0L3,y`ט ~`Xց `@` v.`}8~_xJ gZZE1q4[L$`Њp?f=~KUm7з]`҇"R8u⛻|Vm2PI5o iio#OTSTbhdj5M`|V9l会5NxXR3IBx2_}~16=sTQ{=&S塀[ [" gڇWзP~;MץhEӎ8~ke')~K~tZ%#IxJj_UGwV^-%2HT ¹˻'oXy.$r{"{c\ɴeƄZ)rDnGB7݋tYLARZdgO!H*1F`׋o5o3T9l1a5>Bͳ}/΅kq8-xb{Af؄;%*'?B[Bۜ g۬OuYg}i=xgp[& mU33t;bBcѣhN!g([V{* RluU %fc ,'x =B}NdZ>8K}8dӈ:`>!VJCqқ|rqqzqoI0]??D ATB? 9@/ouߐD!j#R%2l[^rlg sQq)7 zh-/bf]zKs0-E@#u0{APUW\":\ [LmpZ &  ;deqMp"n:"OZ+S:1v.T]Mu)S^OqBaQaaUVR}.#w!0Lso"* EDEgՁg CEF۟s!nf "nU.qšHٮACqT'~1 JX6 <@@o"sa3)taʺeoagc^wBs_x@iUantmBEx$SWcRgV{պksNS~VQAO7\ MpE Yp3ϸrQCAļFĪ<ŅV)mj~n mf+[ʦOO_rB`p lDUCx_)ȧWrG.mcK]IDC/2P q.boI͜'bhEFZ0ڶ\9B5yex}->+Rv@[!aQXn{y.8J;F+JW4*S{^\a{%}Arŋ@>1ΏHo3#($-:a5Ѻ{gZĹ]60-a˖%QZm{Y1#{nB [#KnņdM%L܁8G>|o Ro[5JDԨ-)spp'd=? 'zt zf@h?ZqNSOk R vx$VOz> nNUKێMjN` /r[x&A5ѱWF|)hạJ>)[m-Tof1dפ|/n@{uEHLjGOTbBf8Tcu:2WWe%sIO)v)6!9S|(B+]h/m.R6xa,#dRGQ5<іOKҐVnTMބX<#ZZj+J"ӣh&:}au,}yZEZ}щ_g;>HJpw>8a}VC,닊KB昖v:N:Q5M#A,!mM'kà3"U&2Ȣt-]6yk]Kf=~cn+H 9TAKxcU9t6\&ߏw_@O^8BG_8.Z_^a{quB21Gn9jVbKLBmPFZ'P~F<_rGlf߸DK%W嫪* &%̟ʼOңU񤸧,鰱oG:bR_[,2}?Ú/8e2%8=j?ݽj6R9ׅmm;yKvCqJtJ2pǼ͋{bXbzkHn;} !`an=pfj>ƹ=b⣪s3AJuibޣZˊIag=커>=Qlخ~_GSTUuȾГ 9DZf)@%b]%kZc^mkT ߛA4pDtu8O r>?}O쿣s)u.fc#*OYj; (-m]ƴRىs4fbUK*&'G C׸-=9zJ!:M!8QUSl>.kiV&T2ZثzE<ʓ{uu_,u*|u%f#Y۟U4׺٨hִcbdU.laeAas?S}w=1YYHiԭT\BVf2dJd5wP8ԓTJah/McmJKy7Fz`s O1)!pΖFmSaʣKo;`G10U:8/7(a~YZv+NܬirgMu1X]u(!R]KChɘ sʹ7]R.!Wits Gv  Gۆ#:_إ3*6cį >?{ 1Bd<?]z~:p\8kB"@[G ȁKe#*w0`v|UkLy>3}~ "( L}Nя9Hx?1x?x?O%@Pyf*pP :h   x3Oc0s5+g&x8΀ \75k> .P;Y; L'e&}Co%7m1*V#J$oձO\^E=3S|%b !f(E%[Ƕ73ZP ?՛JՉHP,5J7AنR9\?>jX+gI*$I7nSDTMn9U:O69 sY$o×3 jRwD0BUKF~6kjNf?׿&04',J1´&Micu2g&v#Tܳ M2#zL xA9L~䔌1bFudKʊ*{JZfr; )PFҭ[?o]f/+H_K.U>欑 "mj~U>΄3UR0^,^wҹ!NWÛ4X.DKݺ&D}Zjx8 s6v`AwlىA[LqggA@6RC^>SҎgRsyhӒ^iv2'aXUpF&&:&8O_I|3O!^2P~*",-bQOqWkn:I3S8`QL>uDNDE>k_ͻ=h*H}>bqG_s{z—)駐Q#7KM1ty.Lx3)ģ忊 JXun#\3ΛRxiȉ6\0䦾Z  Wp? 0[5CG ʨ-Xi̸;65ˇp=rX8RSE1#S&zq74ҼVV[>;$JJoB]Xj(9m;t֚qi ;S?YQ7>`{Qq- hw^"#&LΗ ?^ Y[M#l+Ë}CJq R1mӔ;:%(sjNKW$Hc;oTlbUjNVhZo?÷O>Z4!9RFN+ȴ邤 }ۚ '"ƟCLKf[z.'9Tidh[ E1y/6 _a7VlNź9u(\ye9m> 7?]Y +Q1vfŧScA:+JR<ҼZJK1Qd#Z̼r'l{ YHMqĈЉUv O!scsY|V'g0HQO0Wc_q;&RNTb]C-GQfbk1MZO8q2Nb)ٴ5 N. L2=V34[deOșա6xڭ ԓU^W<c> uϝO4;a(nBi_9ʺvQ֟Vz3?'NGi'mW$Ob@H:1-/Q?_m{q[%;{|?Vˇ3JAw^RC_tz83',VXYkN$ULO_h'YwId1 ȢGeS +g<5רyi>uvgg|T:P>0sKYmjw$ejX *t]IucjU҉0^{ U2lb[rf0 A6"l Vl3m7v;c[\KCܱrn|Gr}prEn(ըBٛkx!uLKMiA%IWu:.b2>f2޼,X%YតO)Ϗol)Lp܏28@p U]S;>o%NE~gPM>p;4;d_~}%E1BM~}c&IL_| F(9zY\"eA@ë/d4\RM,2{ +2Sy+W7gO؟//_70.Ӹ, 󮔄ֈϥwFoPTM\-̑V!@cɺ\|A[@#yfPN˥r&NB.&Mc9,OLC?KsuƒEDr`c-hYzKHyr_1_%z#>bҋ=*J{arSn6(|:"{asqS@#qnw]Ony)Wƹz.8C0dG>bl8;?4wiO Oqjr=ypOڍ.CE׎hPF`I벷)y\%If{ۍp< HegqӁX_&8覘Y!*iy«+b8tJ?SHCƾZ u!L RJm.geR or s7z0O*;[]HD> 3(qp,ml 0;:91n|3kxGnԟiy}_%@ !@(@$ F ox Hd]R4 X= f{<4( $P%@)Ps_ ?Y5@hZV h:x? @qf@``;z+!eٳ'!;1FYr]V !;3"$E=2cI왲(d1}uy{=9s3}o~xƁo0A>3,A, @V/ I& 7? րiSMCC))%ft08zMޣq*1v&8rTbTѸvέ>O(^'j%t]4 "ziObϫNq5f8#7!~SQt*>3S3U섍ۀ-|d%ѭ1Mlu<ϝm4Mc Ѿ4Y#$7kc.>#NJV~%Sܸ\ER#hR V"#"RW.\onKo_}AQEAV"+Ϋ ] &:w[YE⭟ tk=6WOJ maTyL>VZ+?wA6~(ײzÇC ̓[,풹}kA.O0N㭼XmC΅k!:':,k# ^dWp iNJ3x:_ jYC^#[:~ͫ5t;fn/Œ#s#^|PR%nƄx?]԰ Q@!cPcZMs*2 bDlN/QF{ys^x'/Qn*3WOhrBb3[h?J9?4^{T~=guskv?빲$!U/׳wwx$7?F7sϼTЮǬl+@OoC^j m1S2),qtMp|31vjRlQ_o|ǿ_~_?VBp"6,+ƺ4E _ej~/1-{ {oP|jHfW8zd , xw 3f}YdsZd>׳ _͜ˋek eu~u m9p+b9!5vRIROayƉ%W+iߪrO'bbIiVjB'1hB`~nؔ10yɘGK{2 Lw5`g7 dطcaM$߶!!2?r(Ab1_f#0$tJBAՁ3jhk ;o|a>, hԫaw 6J-/WUNKRYatDp1ӬsU[^kA ?-LSOLEpA:T{$'\m̪;|XY$s&u~-C@&+eΗѡះȼV½|¸u^ZȠO}ZbG޺,'m8iKU}Fꛪ?.RFş8/[JdsBcc~[IP1$]٨~L8W~(Mmo ł,7 x@d{Mk;~3˱#p>ae~L6mԴyN_l~;v ~O-!=$bUMe~hpDxі|2ĶތSpxoEiY.޳x.FǏKM;LN.]['1Eeu<0wxԸeVٟRJFc*[9}f`i)ɇ5Xsd::D\g~d2.G, MCtϋFs<-aE3WDs{/GF2ǢWjlBYBrgKY-]-4C\PȗIdwάJ*em{sGCqjrg[a"A |oY_rZ=shAߘ +=<ƲU~nC]TH@5$6& 2u2)Oh[iOxpo?^GM/@|q Dگ{лM/ȯLM/D?_YN<6)?ӫa}YyN[B#ڱUgM/(v3XqװG^mU6o 3bg0-MZJYGxr2Hd+ rѾxJqqڈ7"`UZMp3w&Dx4!fo %7!t>s?zZ}YBfyn`#D:>Hgl=}i2A=g9*uҊ7yl+냷qдֱnxK31of˽+Ѳ2ZBxwGߦqUA8NjmⳳXT=aU̞2Ō\UeY٥ɵDr;ȅΊuT&Џbx jzĻ+ٌ:έw5SYY 7:lu | ,|C8,O6Pj|j6@m9~nvHԖ! ~N1^Dv#%e u|l<@Z#9 ߧަً⧳/vx`qqNd=UT%lD9*6gr"8FˣCe0!Fe;+u092> Ha-[Gn=* hj^t=`FX6px^v;B~Ql61@8H'i@Nr<(JTATN48OY@}`+ c`f9`\.` \loyx :g\W 'po@P/$HITz7*nx-F)uv>ЂSB0JY>_*V8xsS%}Tӑy%.k %9y=ޞ<+W#ؙ(П%2PwH8JDhUJ|.z~t.g$YAj>&uv\.*.ȔWWmZL-tٜ5e~1gk#.>`ߣnT;Raxvr1==WUK 0)ovdH7q ];]o<> ;W7_h~QMɉEI8v&#*f7"oxӓaΣ?n )BDt[ N˝md d";hزk/YƖC,3O[~yy1>3{3ElGsJ 6vv{sho ]/k訜H%PV@W?p|uᮯU Ď{=E=I~m}ުr!ίi}s\~7tD{IcwɻDeENN%/wl=^kΤЅF=6ㆿ~󷵏Rftie =}X V3-AMݷI/,9^v 2Am; w!v@j)UeE̾\DI,&8󾰙)ъ,^9 eY%t1"fZGíQ;hw4]+q]5|5酣xu]>UqyXL}J)/11Jn[(h*(-#C5-YJcczrү=(0FBp\/韸Q35<}7PU_cFJGn77N[z}fﱖְdv O,o`|ݴɺJUyZ2R7n1~Eo'8W]m]8[ ۝AYݍ]DTnS= ]S C8Ml|9H~9 ZͅL意Fɿ1ɵ0=Pqag x&t"{3u%h2ILeqNPtPFbs=iq[ 'e$ e_w|x:zE?d}~R({K2r/ߨ}wj^VKh:tشlP%,]aFIZHCvRq;jx(}{. жkN_?rbs+ Aؑϥ#$vłLj/q1T:|O1u"YPLlg5g$۬[>kSbdӴ,-) L He7>6=^@.l iW&vc3ᬵʇw>^gE)y}=WǒONJV7CO r_lֈU&%CU 2TU^.=sa燕慱ٴگ8| 'V:gm.w„3pl7}-=Etbr]eR%M^ ͗ y=^ <ܵ=;VKƏTNF{s22Sʺr؝f,F:FTת#>A!#9|FzU`&Ye.?Oy7Hn7V/ g_*&sѝk{c.c<)Q ܮ \;XXFO~Oq'Yo36q*f!T[ا8cL!6 l2#iCQ,ȭM?3~ j~ٛ9۽`W9Tn쒣{rYO1vsnxtZz*)T#z"|}nXܼNL/4YWeu*8=+"]OvI“`EiW֠LOU9iUjmV.Cl>U PhMd֕\^йR+%<[Ż,4|dѬB"`m 0#3 UuڿLLŠ)eiNÇ e\&YP?N={‚b3/`*nL R >FM!)8;dGa[w2%4er]igF,!eEiM?ߙ8(׷d Gs+)tyNU߿=^/άe<LS.Re3 RQ:g'KzWbeSuIbeJO,֋V³ԛ YN%rdR[O't& vA.޻E8c=:gj?pօ67$a&ɝDi$ECzjի /K>B+XM6{_Jc;$QW S40s<п A_eW` X6oXĹ5f^=ع`dѺNm>BGa⮧GNbzYPMB*Yςͣ7S;v,5E3&0lխ3F8G 1 רNw;9'QV=oZ묽kZ^=Rg>N(s?’[k:䜗o/hi0x+/-G-))27yR9u9Ae1c̜q w[x~jx{ Z2)ⷣb ).5^ +sC/K=t ,,1V.8!~CaiNaN+R*U~?ˤVyh b 0RDO (t =л{LSt?]W"7{K֐7 tS^$&Ӟ3rHqc5f'\E%`Tz|f|dԆSaw^/@ 9_M^_ џ5.z/_7d;'/G$4MTDVmPִFpzFb쩷I[Gy8inl 13CJRku<|7:Ku9s{?^Jf+')gH i.v*»nmUص|{s6)ܾ2+|pLB9hțZͳ3R6 GВ{N)JPܮGڂn5읃%e0YʖPN;yeS{y.W&ѫ{id0ʆ)̂ȫMP*>smE[ŀ5.,Q&"Q~ؑ:.Y[`5r:A8#FƂrAc]+og)CTl‹(H%ÉW69k+ӲU$/]@m9/R:Kd56O;uc_`FkzB_f\ fxcc<^ֹ}$zd̼[PE)Fc:2]'/kCD6a:Z䊅1^Q*w>Z?N$jctP1157W<%Sn+R fҰ6 >, {8);ѫ/^zhy}2Wז_Ϯ{?~!|*2jxoYaW١lN3TqJ 6sNc^ 9\AeA&*upKcډC(&+ɦoyBLNA`c?[|EzO d\X/UW^/Nw˶s?#_񚳱$sj4gDPλ"FtR6 %[<9T9M]qỊIUEYy%?f4Qt>> C@jΎ\G0pGJQ}Ƚ2ތ8`vӮnPr $vY .PIsUĦ_)[^t]lyANDʶ<";ݓs7IҦ79|3En 'Z#QО],jbN)tq`Ũ2݌FO=GվǢx7l7W(fN;x:όڻI.j^]?_@;-z,2&iM~ 142`o2ߟe7O^\pJ"h) P*@ h; 0V ' C|A  Z@  a Y P@ (csԁ'9 tIzpC` Ply`V;b=pN8 ܀; x_phvvv.BAa/2 =#=hɸkv:Dݴ亪L6̍k t8LFgTnvљ~Sok_*w0,<ÀDC | 6}1) sVpLp˖81 sY&{}Od?^ц}x=ɰ"6 SOR>#)A j7w1Zݛ)>:p`։Q\iZ ?A ZQ2!A4Qӌ`7rN Mߝ-uϷAasٵ)RZSzB@LM[L8yo&,-6dH.g=3QySrzYX|RݝQb6бgIgQJǭ0׿-?48}y3k[@om/oýɿ5~ >ķmP,uw[k31P:_|J@0FLO4Ʉ/[aB͔~`0'tq2SV96o~᩻\HJ2O+}o+- 3U MqG ˨N/9$5%r$V p~:[.zQUGE.$m VRI]_n'zHeb +~tM;UǃI;0S'4ZVvЅ|ʡtF;]ZeL:_Dl]OUZvл/F!h1_i_7n)=q$J[F^3ÖٺK*Kު:Q]9gP0G>z-@QěNj2L})?Yf8x"͖C5)=il` umy7#3[z>jsϾwY苾ʘ`ϳ[j1 ` 䀂w˾ )4zF `lp[|A a D9a  9 "P@8P@h~@肓@48`1@`/h3`,%؂ _k38g\po^_AA! K??~c}܉g>1IJײAj笠봶Ү&!YKч ά6OplJ#+K!qL?g=ZT"/={=J>K&d KQqserUUS,Ϲ:bnu}*^3][2מK1r5Ey* YB P?ׅ p/!#+ۄ$ݟTa 6FBiL@;t8I{H޿,@dKm:<HBppLHnt x$)jSfn+knjⓤIM\1y1ac)٩ryjpJ'Y׭:fYZmPhѥu @n.$k".1},u-pWEyCIqM;L5L05>mUV澤c~/OLwY$ԧ j~=(Ɇ, !KHA'ߵ~c;uYFm6qwH6i[e0R577f0kkآQvhW &X۸rԔI\(w/ 1B̘tI-6Q:N6˒w!]pggΌZ7->CNZaWT ɟ2v B'ު^I]k3qsUq 8qG} 2okAkZg/on\`R;-QӪkϰĪ6m)[q(H5QxвgÊ\gv!̎ LXu~&A2#OwjuDgD6~/jtp;IU"ǭjM6 ::1G ;wA\>Λ /ʡD {["J #!' G "0ݸ6qn#ji< hFjSk&{wBL($fñ[7gE#UqwuaL y2l1{rw|sD5Ek<9;(6㑸OS|SÝŋFO :$r)څDzIx_Hf4=-f{PGS|VheKl2v!8uNwCE-N+Sm2G\lMzʺ^3u2jg2K)%YU:H͝IL<^(1$htLX~{(:2+9., E ׸VA&gb׻Xv!GZ$D{^&5f~j?m$x_‡C睳؄%eؤZAg,ܟgZ? ?/O:Z\&tQrOux5Dk'Yٮ U\9Bv_sTf`~ҏi]U1ϥR77к֡֝c_(Tw7EGitsh !۾1c+wxv~L]hA%UCXEP! /C:fϑab.Π*㞫<~!4Lx5\Ou2eR"ЫjK:Yj}[9y_+yr#x^i-A-\qH{mKLI6CTX,4ʈ?$6<@F|)+,2}j(ۋ#u' ؅mp+4+nJ򾡜D'$9 U#~1I}ք{b]WBHRCuS0P7)q{&Hم{4b֨4ﲑnn}]aƁ?g??/sM?Aۜ׿״oc_PG6_l?oe?9C}q'۬-\ń,96 9O,x7iV:uqR^6!y.xw ~D냚=1nMWjr(ӫ3xezKfU^{pa}3.IЍ8%ɤ+ש ʹZyÐU9-0-_I4sSȎ Kk6[vO c{VeRJ/\Sgct%"hVۨֆ^#+3a']|LyAxs{k[U5س $?4*{t|λUp\e壼}f"^lLU\qG1 Koxff*4$]0I^uErKmOGD}VY gt +Bj_{_֮֫f,9v|lubN?6 6TFA #DcFFh_V)g?Wlx$\7V^oPiT ŏonZΤk 8̸[tPRP4# D8 y#1Z)z)X+ֈ.[9%ibyNjBr5M\lM!9 3eo=,xi ;y+1[&hl\T٣C@rkGssU!1ShxyYrtqm_'-I@ z/8ge=@hdq󭲛Dy/]t,!qb`FI 8},P^WUG$ئaLfVJ/w}YN Ql[]KK6BY2 v \GFnSå ɿ*30S1vVQ)-4{AzӶSUhdxzc#ƶ>d41ݣs^^RO@-BBU6fFm`"U6ۻtxg.|KAlFΔf9E}{I zXyR̶N"m0{OUI)@dpkʇkƆaF}{\d#n..^ozFn1X‡8^wmYrިXW.?ρ+"BĖKun???og̿8?V(+Ig梒^ r׬EiR'źG%EXch]\ͥ }ְ2ooB7U?6q;_]WУx^q/s,U,n˔cg>PVFV<҆FPC,\߸R6Q΋F[~ھ^+[z m*l4*&b6EksCyΫE)C#+QS܍ .<7goR:uR!O2r\Aə[=7 /Ց~p@ $q0|ѕV_kx3-."}Gcr^I=^hC4w,MPAw8KQB΄v{nWDx YWi2u^,B|$g)ޑ˂kqjJh\>=.Hgۡ&p3*rpѭajgy 慠`Pk\ݾ&9ܝkeF[ ? oՎn8`Xߎ5fxڕ,]KScvy*ÒڨrYaCpݦڽw.!(<JL*6ݶ9+ GkM~܀3\TRg8|F`"8J;xs#C :q`c 0(jv?c i@s 3:^CsL[>z;r@uf-Σ|J> :Q\,C7' ~Tw-Lr:4Q&QI8G>!wPA5Ñ缉q4ȞvE)1ou˒ZM(i ‡/Èu0ϢD fˍ\ʢ[Sx%9&-='M fS̝e/֑r&!g DtK6rTypB:a;<}:]Go!/F E\?Eb6E]ߌNcH,KYDgC{^'@N3f35` ܀` ؃X~߉ϻx~?yqMI_Krk:qvL )(m!ToMAD[JC{f7ZËly-FoEGHT¶ qۗp8Κ*I5hD{}\+ 1ejj >Vx{!ki , -U;Ʈ-&p;]Mwa;>J[p%_>\ɻxGֺV<"q'qq=MX3}.Vҵ^!vZTϣ}wn"7zpSN/]i(I?=kTލ He7t*חn^N7ѶΡEc(rT ֖je@pW~9ApV[Mͤ1$gk!4W&f#T;C1!'Ljjӝdc5ro=Pʍ%GD,<#IW`e- &'dx"Q wp~^GN3E*{P3~<=>NEض=ᒸQu\I=RN++u cMU4F&*}Pr2Z ?N9JԂ#(pK8;јpɁE -%J}6&&tm[p.ڦ^AU8c"g+ oM*O&)ÛweqoMzӤ;{A<ϒOк,(⒈0Zz6UBIWZ*Ku|MpԸ99؅:6kJxVWMg|4nQVMY}C)6WepJbr4Fuϛ>pF,u<muO?cUu{ϟ/?9???,?;?Ͽ/;G܆!ncĵ3A߬' WE$dٛoDBjoG>꧓1EMa}F0w4bz}w[aha!aFw&)p,=\15MuW*_\/s/ʰOׂ9r!1EPK AHA~G T 4 t W@00\aaXrpp\"""" "r(؏$R6i r @A@A((hG,@A4@4Ahh@@h ,A,@,A@Al@ v  N . n?KOG ^ > ~ 0M:X%ED$k1 \Z=9nDQQU 82Z^vGEAb36SG=!!_Umk̲@F/‚Y_ 4Ҍ_\n)ښM{к Eּn1ô Q 1Thd*k$Hţ=YYl;Dv / t-0|%vlB@om(0ʩC ; ^˴;Eb4:[BK8=B5dciͮ0? ِP(3U"Q>1񐆝_g-۠mN'ǘ`ng\y.Vgb%gNq.v厄߀܌p919B;7k #: K O/b X=dݠ#q7idp?(8C4 -eDLɰY d~yU%|&+#IHR1Vs1rUGYiYC##m蕃Kf^8ԈU_Ow/F SdP{څ:Mfuܿ/?L"mvQ $@AuǬ%1Y|[}ϰgue-IR/D p9wbKMc>JWF+qrb7e!Y2i~$+[ZECٚ^땎ggvgPN֢Q) G '@# = ࢀq5+GέW)cˈR{8$O}xxNs]c /k0Ja@Q>z@5}CЈDh?1Erh XoZ˷Vf7w>(YBQ# A"45kȌ?&}˚j<H#Ů`xTjʷtm1\$!F1DME :`K~=;`X5SWg1ܘzw]EVlU%YRqgP‡ ᵰ?uFR+Z.RN/KX$}t?"dK09LE;n+`=gOϴ9փZw _RP)fiM z1B%D-&iõn O+$4&حFS27B"K劇x6wͅ;]n\k*%ՕF3 Ǣ^oKWD@UW oxdmj3"8/+חgiŹ&iM0זZdgʫ ݦ@c2f%ǔpԛ2u% e'lWs-F<491_+K?;$>EՖgL׹L3Ďf6L]J@v͏Bv(<rQ7}nW*5T׿PV,v}3DK3ΠFy.V*&hN+O_~QZs'6kmovxGYMȜqbRD ֓|S!&6SIT ) $)Ie`=}(5"}zGķ>ޮBŕ\)؊z<JclZNT7KkkmS*fϽسNFݙ6Bm/0(cr%JxF(GGx7қ= Pi%Qװg{*?@0dž\g=iNK3A2aXekzK+Q>D d\q NJCAsCkQ4} nܝih$&W7kmQAꃐy%;t,9n"jWZYP_a{9& |2eJ,F~q٪4u J!/V6+@O3_2<Κ[чe\rU%E(I;$izPSy.8P]A7TscRuQ^=x+°pW>û1NZ[DxƵ ; qhGy.dI`WPx0r5>}6X!:3noG1%rWlaU:r2\=U???,Osc翟e?_S_c2w?c4*t>(gZ/;N5{6EkLأ=M6J{}o'i(.uT.ik9s'"ƞۚ11)!^\aNBŠ3O}UwxHB`Ś i&Z_by{ bStNk$y ;_;d,33^$$ o>J44xH%-IBĔNN|:Ѥd9L ɷzJ,`+Kl&~ETvZU_*dvc$7ѝUBrBBB Eeb)FɁƕ7lPC5ך,V RDthr.Ԟifج{K i|x3ɐs6镶v-{zX<XO{r(|ț,R[2j^'Q޺-y2Bv54o`4.)ۂߟk#𯃜0N-rGpL`L`W{Xb+Ew+vο[tjwڣqWsv vo&Ɯ3؟V¸O>qnzK30wAO+n7\ņ bѥ !k9VR1Vڞu?}NmNrܿ_kR%Κ݀[/ϣ Vg&? |},m,>  z ;җiҝɊ!nQ4_YBLضݹ_e;K1Œ@S0GگC_[WgMF]9A9m5,f nRi e3MJϝP{4:RwE_NO4.<gS$w"xX/r:ǑuzKe fi[#&piGo\_'̒,/{@G R=J< S \xBZiLJ),7i=To{?n 75w*lpElTYګQ\F&*+wZ+,k"QYHUmR%5UI3m=o9W⣔E?CsoEDeU֝2V.K& {r!==uD+'bކ{aKtFz*kz?8I+9t=a;0iߴICt}?b@V|N ȟߟ䇁 @~{?{__3p0#tevqR$t}YAvw A"mORdX9'b蓩zTjqGc]cw+{oBȓmx:[q܉1q~-`.A;T"Zu:p7_BDFa19KK"5CK">9{F^Y/o9[*wQZƵR¥%h//2:44%>jOav̺:٫K=wK#`oׯ/!j@n6^ʻx4 TOuDy .z2*0ؓApd{C)|+> |mЭp7LRK@&{Gn?;Vs|M܋рYbH4(S22ll1dfK<j_فmRuKY?Gxc?]4D([%T3-W 5Z 'O띵z'} V,J.AAT3nGeP̖BL}bV|o1.ǧ8׹kbi]+Ha5HMM<@#P.VOPM0c\φhm1VᶩNBBtW× k״c$"v M"T3cݧy]_PE@1P~_ b9**j:h&-}_O@'tXg0 @FuAH$0L3,0d`X(X/Z+@րu`ͷ߿%C}ƞ^y %#ծ0x'R*>aS(ODB?h4$O p2M/32)Œ[PPzn8a{BZ[_[NC_s+,ljkƙbI]*,bn:ظJU\wNq)9Cz&ac.=?AWyyw;_9jl$||176e½rNjJ7ޛSlo{|Qx:#qة˾vӣfcXCUGeQW,X]DX\S 0L _+'0S'S pYR=8+$&^Q=. B|9=l> ? ӷ? b /~Dj -̎HwY-E|>x 0̲BIʜJbwZGd7xCϳ?߻R}-jƼ?Q, ')֎0*U2"%WlV RǦD;-Ngؔr&|}A2`<)qz1 29g)%"嫡/N".t>^&=.sD^E9*Fm?4SSm=ޠA@mc΢WG^ xߘXF$@~P~NMy je>6A{9g{\7X7@aO(аU_sFGp$ .ܦ ?ٻϠ&vQDlH"]C`QzID HQ! R)*mR$(R,D 5` R{rf3;;~s}z{}T\!_6 WҽfrԲj>|jS I: Rc3fMjB؃Ԅغ{D/jƴ;[BC7EHСӨlfX#:3I=VymI; 3 ֔JEd/O +q:ۙ=8HG@{c2}m`" MLCDqaTT27J Y؊Rtsݖ͏&kw{_K]Ani;^5݉8GQ7KkWC?ߗ<">hrON=Y~Y-cz}r3C3 Ǵ9?tϸcG 6{^弦sx&1K3 Ri [VT9h 5`)U';Vς \;FIq"j1i MrM}-ެ]to Êg7QC r ,q&w't,5M7%~$jLϼ09Gڨ8{>SB~(h׷Q24BI6ql͂LgJ=dIkNN")Yf((ƥRբ^ LE<{I.۱r Z':5"w-^ Rq;tcy'}ꈁlO=7`bTj]Y426KK ^D͛'3OJ.(S14Q![0rdکt)JM5-ӕګℴUXL%R}ct@_v*|k^YMU[ QYI#7꿭 D3s&ɷf=nt[r?6z,Sef푠s&T1]ARq3I((7 mð9ͬ<e E m"GjGۨUg'(J>J]^oJznL{(zZ?_}Z)K؃ S#3Qں6/{äD !5Dͯ4L.84 yVxpzlgAS4&e9r*t񦡋mK}*D8cDN,Ʀ]#' ']X~iiXۖYz_<~Ea5)O!Ǟ8Kktcn`kSh7]|r75= w<8 Jd/gAΈT|Sa%-T΂%~Ip쉲P*fNߍ RۨҢk̓m.+%~bhXv~?ڑ|At1Ϋ嘝BS-nN/ R ކޢZ,4׆;6jtԚz$ rOW4~q*]ߐ\_/|)&4Ʌ7^W9_xdMU--) E%WC_2i Ra.*aSa7.* o p Pe}$Iq_hJGB*]ߒ]CCH?w:'A'9 \z^P(g߂;jGZ>\~PI\\.Z;cF`rbdHq?4ybt&"TYl}viou٤Ph|}Nk{ SLcw$݄(հY,E,LD:r0 Oyd]^J~SFW%!x^3>(Wj.m\Jue5Pe};Xry#$}),{FRbcC'Y.gdvR'{NO]e_'" 9DN}DmXK-XGYsW.h9|͖d&'Ƶ${ovȱ,PPSuh٭,')E[\xBWrn0~MDPe&-;h@B]uyPc@mɻ_TB2D!yr MX;)f8nJv[XW"kb.ӝX\W= UYIWnfyQWc)PLg98m|R(u5vDrĞ>Tֺ(Ǭt1pIEeXPR%nlͮ$^qvC7q}Vz!V}yǟ _Emx>,{֡ۺ%<(UTKOB!DnI3C (g$Q0,CuX/ s۵+ 7r[v3caRt;ؽf wa3[4&v:ΎF- ~aWcG拭t |+M[>[W6({6k6"YoLGyoӴ 0]yRuRJϸusF=+W)dV96W3897O?1k!ڄlLlH'dåַH2ט~nVkw|L:>adzS ޹vxyAMa&xRj"QɄ \n||锾'Lvu) %>,b!1ɷx \} "$XT}VQZd}L,'wv`Qp}wLwhޜt03ΛV|2xުn:E^n*r=lWȋ1!qZדcϙF׵\3ysjڀ\hD4'>o{:~m.˨\v@|YOrʫ^ں6pw_7]')~ &rr|w|ٓ]$,HC\@ 3w,ٟQ9L\7Q_z_Aoߵequߏ ce}<І=)HmsY SiLJ}E{kb\f%HPӭI'RW||{! j7!6|RMQ{q;O#ki HYJC}C0@#zýc,]G&eno `\cxWgNEJ<^-˞:z)m~RYX3$ ;% wBd&肼!6 B:SiM0:7Z4>Mr-THmKCq7g0^\20S&Ǩq~lw?Sa #W$qomɩ/+q g2_ݿ0~9?{ _2ͻe~թv)6vᗣ|u. "EQ[&/@8 ;K|9׹H+Ge248FEz  f/ i3dћL[g M9InU:-<.OOqʩ8pIK,6CZtQoV5-cpBUo[7 >qm4,S<Z$[E)C>`D*+ɑeR<5*gM5 joƖU>c)UX( Ⱥ`y[fťN IOVIec9 ~nnߌb@LdU`:$0߯׿_q0J\qtA+ѾƷnxꕼ́u'JHqjLŽpe ${J 6]q8`NYhEv Y!֋nL6\]NN%vg ۗ,U֗  {}jMU)6db[%}z+Lh {tc]EaRTےB3ĬqJY:kByxl@?Ж!s7-`$EqsR* 9|v{ [!6 KQ:Zʶ֪ܪćY&\`ap1]}ynLG2yS"%Nid(*ߦttYAҩ˧nhWii^2 ^lniѮ ._h~?ҟ=78@m'K]Ś.*BH+z*5j8U|~ V'T.ۄB{Fkڄf=Hj,pEAA^fEy:GIgA\]"'? wlM?6wAg>YT7[8+)֎=.dBjLELA==kL>v^S >*iJu逑NQ4;t4RۄR|<"${Pnq2#xqCϚhNʅ'%t$0eIþ*? >hh(Y˜¨Bdj螛:*cozqKX ?ốp.DtgCM2DnOڽC~ ᥱ3 JO/7t/pȡenxyCJ Rp c'ˁm-ӣpS'ʛqL8I $g+ Qf^a7헆8:--Fјw0Hwwi&'\ -ZtJ)e5KlUwl޳V:rM鮅YB>悊Gv5-R&dd"k[6sж;ny&wl7Vk|#}^|?ۍ_, ?'J͢bV nM40wWI )i|" 3-V*~#tS*x;~-F ͯ{V0&EnZ.a?*f.6q᭴ؤNu>ѬZ\^ĕ""cΣl-*)doQ*4Zh%)f“NB&KFQIHʒe}ߗd1m_=y?~}5|gι3|뾮/y+-mAqݏq{eM'!=$_^|hQUaaue}Kx5zFEK~ePŘ?c`ިDϔNYTSrEeSr5;cE\W9Lm/E;TU`ù&'Y᫒jk6{Zv 8(H|%]"ڒa\Fl|<3Wl\qT22a J/Lg 6c[s Mv +w*e+k0%T{2&{ǭYSQG,6yڦ}a{=_"22{ KNzF"t%Ykϣ;иΛk:zƸI%㎶]ے.U&בѰe$(,`-0q'6k)ju(jM|%`iʿv<Վ*(HmͽTj}mUYX րkI!,+U6``N l po"`'v=@@Qp{{!#@HI  8 Y q 8 *A< Pj,P8.Mphmp |oK"`e !\Fc`L0{{p;`#p7<' t.~(?O>Uzr;َ^Z.r82TR'|sE0VTjdߺ-RdJ54VHǗ +OK ̗hf|Pߒr?UT׮TT2$O9eJiM 45Dz!=$K:>@(Oc[" PAv[̆/omXLV:#O*7#͏a |)#HIul/~Rp^KIWC<DS nD ;z];ϱʼj?N)#&{X](46.^X3S$P[6Rܒ3/#;ΐ>tlqq~uǟSn˴An'6?Trk%c~z "pmhX9rrq!O֥ڧk0n_c@@( 0p< <@xT )@,  @HA(i @6xr@.TBRPAԀZPAh̀w5B@`tnzA0 >2 ` |`L!`|3`?,4`&8^KUƞDžr[g7bo`*zY|ahe(a;Sc3ҔXu+\ݛuU~ҡ^aʍ Vi'g\QjiMCű9_zR{ ;}?yooDwYrF0b&ϪRjKpU-jMq8z**\*mBOtu cw7ܨ[9_@(IA >Be*r_g[|UZZZGt =U݅DZc#?c۱!%G`TJbBV n(kxfzpšL7vщwE'ɴ]97^}1w?}eXsqKK"#bx`0urS;* ZU\8}b^f>otMD[M!p.kj' 34rcP\΍7ۨvhvGZ Stqe_+eMM>R +䷞͞sKr%L1*H$R;F{MͿ;5|ۏ49g#"s8wvw]U՜Gy󜣎$RM-{pfҹGOqsJ˭X2MdGyrᒶBy^%N^iip)٤gR-#D\ī:P]k9352\q@Y[b_?4]i!I9K9)fZ78L OܰhfRI78>6l%8bԦP.Ja˽xZ\oT'⬻_6|)i/jmW˻9x@]^rRW;˔JEVV|zα'>ww?!Oϩi,LevUuivĭt􁹘HGUimoc+:Lum;Fv,1uLPGN ;wÇeT\O;fBT+6bj}7Ěkɨk(g.IL{]?Gy&C%A\Ju*==Z/uف{ ̃!.R[gx5o͖6 gr#mlk;tثyi`IbzKt3IG}blYGKM|f5"=)xTf= s;iܥ GYd і唃GX543Lc4n/n.=|(3HfkUX tWEˈix}Im1㽯4Yn =S8i>+uFzE91wz[>G\ێܧ Z1]zc~kt֨f,0s˝bZ#+ctۘVV?I?7tYVɍR}%+- a~t*;Bk9BK}*9%۸Hpr|&z![HxП⠨g6H]^klc"q:u}h i픸_slO}_Kd93BP[fIa̗sm/Ak]:gH­sLF/L2J9~ʊ \[F>gw%>Mi 1^[׵ pa7Py.4h',`J St`.-TڷL6HwlqbzT/RU#3gx w5et.GNM]ŸK|;,zoW]oWg+`a@yLfk,nlq?soBوKY3*@X[dF~ɋƮRA{כ8[}+&K fJ96fs׍lyB*01~P])ICJʈ 1U/-84\3+l Jc=p_$QMvtf{T<(RFiRHE@@Q"JHH&D@DJCRBH@ A@B :;ggY>}'{9ޛM!ågn:AWWPADLʚB 3ּpіav&=4>et\wboTx݂w߁ U $އ4nC?t|$#)f:r̵;qXsf6#e)8L^[Z\({a.5D\I˗ӕ8xXĤ%3q nZMYbgr T\c"`mm㸮MؒfX[^`j$2ziiQ@@!%%@)P PVU@5j: @#4-@+@'tk@0 a`>ښ0 '`"@%`XV5޾omm lQNπreNEf%Ճk1 ouբdǀIb?0]U&_d F[!٪rOuG}<8#F:`4ˆxR)P./[pfu hRJ7,ۦvVⓥH7G.Uϙ9xem~s#YAAާETU&ÑB nC TBiGk=)kve~E(͚zCɥp]Hhhu{@/Aa`~芕jC6e;F:d~@f*/uksrWW3Si</) +.^;[Ʀ&\)Ze qg {UMED!Gu%θ'y۰Z kTs3V[.*HA9}R\U#}q"?3 )?IPN#i{@gRX_??rʺ_w篿nR_B2LAeki99z~^ZI4xn [ "~PDf@o #Wv܊pE~reLE1.+v 1ʩ?Lx)J+q@ GK{33?%IȽx\ڇa;'oh/-punS#"\#?tI~΍Kn\x6K6e2 HP7--`W9GHTPWTngCp&>?D_#52,pmmPi[E 疍 ھ,(̾g_ruk+Z]Tz^'9>7a:$rfxjNuPbSԍ:,R48ʧ*E˖J;5c־lҧJG6a1yX ܵA6kэ'w84ڧ/HNDEFފ@ylPJƵ\XZaA_5Ii҇<&hom0>L/^G'N[;Բ>Rk uw#X*aVUۜ4"x (ŇhM #Z<[S B$)W9>F7DGz]ɠ#f 1aW:grCVb[c < 2j1<ԀU.Ԅ8B:C(]Ɯ7?{ljtXr*=o-YFCeDj{?slW[uAz) A8ڍg]6z(!sBU-zSh;oLDL%d! Jʃp o|7x6,R=3M[' }X'kwZ\Zv?Qn< ;uؙ $5d*=V.ǻ+zvݨEōdD#rNM}6G%(w)\ .fs-zq8Tܿf"KSKU]L5{Nkz؇Nx8nfxq\ZlՇd*aX:1&X۽ KEcPnI4RA7-;f3 £3 s l>M\C)l`k4]PZ>zP.~⳻~ߤrSAEۂXp"hpz}sIqb&}-`Hu+/߲5.ɫ cl.շ.)L]Ʀw(JY9rt<<7h5[l~B42-٭+m׏O w bRp24 ZI!4.(P? jr[D@"((A)Q8JW!t ]݀ADEjZ"%&Qz"#p{=={f7O>Z+Oz_XgKH_+ V\|Qsvw3r-t&wU%|(g}rg嬿@RwSdvϜ\oJ:R_<޷Xdk3]&uFQFF;NR`Krf~Q7'J,iYyO f 1KgSNrSjU*id{5FzPRS6){Vue*ϹʆZϮ,1]c<;{l/@8uhW." k}Ʈχn]-o=2Ny%L#y2яtIVRs@uEp1 ewaZVAtS Um̓@KCH*٭=_1 $ֲ: |7)itr5}f sJ,,X!ο-:&suNޓ^bL;A5Y6성^{|[tJJilzh43O~  v`;p\`' <'UvBn@D1@$)@d9`*("p8(a@PԀ#Q@8},MP( N:.0$p 0 #0>)f8 XK l[8\8 oo7</  ~T @ !@(h>6.yZy.A7w*nZo@Y QY|kW4?hRGblOE)1\;&1^05`IfQ14VwIjrPԜ&0Yѹ:~}"ǭ7ˎN +/$QS V2:*d57. r τ` lAbrX@4j  ͒iy^ʫQz+Y%-74" ۆ{k K|"XZF19{]PW;%MЛII*VۖyK\lzM`,ݿ</ U 7 D+]вZt۞%/}pG !) ;hsw"} M@W.].a72fʊNnv%y@s]e|2tu,͹uQG՛QT 5f%$œv ԉ+lR 5a,SWpR jgQHjg{^Y]3OtEDD+*WlAGp9f.r{fEGPi9 [\NWUHjgTj^2b3AEZ=L xs>Q[ޢȝVM_ 䲵mitj LK7p(k$|)kCR7E~c#)21}EeR3#=gTY,D _OMB5-wjW?tNj'k h*oUNIkA3,j֔o-7*.5y } 5Kd9['2ӐnL.$ F;g$=_` 2V[pZ6dM% Q6Y{7]nK݂Xo3*d8+;.f,tF^-Rkj"$} AsS<.}$`WXp}y16>ʦp 1 Wx5"nߗ RL N(d4^=NK1z|')3asCr3O+WUI#ϋa\3J/ƞ merQn$o8G4io0JRsE^oMǟktXO搮ɥ{:_42]J4x ƒP#\s69=Lݷ JQz91Qyڥ:;iI^X{d|/;F?{kHZ[_o?Lh(&T'zgh H?Z/;ye]ZKg`m7RS)5۽# epRO -<-(pg-1(0vSbE!F09!FƘ1J\NK%*&*n|uxyD|UNtO9#U "84J=#M9 1i{wmrz*z<|ѠL!՗yV#tv]gcI~eonOXzx盔~)X . .^Ϯ#[[n8YutkUDX&o)'<38CM_oN_џ0B"5g-xt@3 1rtUdQ3(s7M$>T/F={S8>2g{fA_ٻY{6 t]z& 8;JjWr}ё^dx_mZ Wբ.BܚcvQ>b |'Em\pb$4e5pw"uaqW\nsXL9&ނDq3OȰxz*G} /wfymKU_D\m>6СtvXWV\a:Po{"#U3E &K Ёq>LwԸ,&U'vԩtC';t?zM ߵr;'gIG8#֯~蟐ȇ~G%qZX#6//mLrϫeN"n#B /*7FlR XqTO?W9oV&QˬE2fwzؾ..}Gs޹c=&!9ۓ\Z7߆Z\ہ5@C[ o\::rxCoTq{gyRr ^*s/A[ xsN,U,W& OFކ|dAŸGZB@gs=ܨy:N*¡swMׅh'Pr?Yclpz &$ۇoB~;M/Wyp??\h͌BTvHFzAMGSf-( _ ͐㭅VBSd4(n8Ɯzxm]l]#e.V5ARjMO(fΗ+ eZon:-AUC >P2t\Q m}u G#>Z\ThG}5vn?ٻϨQT+EzG 1RPe&DR$HSD@B.%H ,"-;au~s;|3C=ϝ{yh.ߥvQE"za@a曫%Bv#< >9u8;'Rُ%xċ-հC@*_g?ሬ 'T=׮Y,5-*٨]{fԺ.r WYO5Fl(L5nn*"a{' _2NTTyt/N$xxH0{}DŽCJ+4a)d`/] Cpi>3U!_R<|fj\JOQ#^VvgDČCkL*,q(i|/驈qٕ&c+ د)e7@˪P;|S|NLZ\$0#B$V"]SbW~ Q'` 0pr$N(ݥ9ox17ǫUS k)-}m\mnXG} SG4^lWŵòQi wYcͺ^5ov|v# .s3S]n>{8-Ŏj{," f$u;F5l@g$p'5/gwrFs$!GVb0\$/^BE&\1*6O'!>g 3{LF]ia5{c߈; e_()ː}*pהUز\"v>;!%͢*f>&Z;,|hglFwHIp,f6w,fd ?ig+9cE= Brf=.=J1iFI[#{@YjT_st"qb%~T&w(r; K@d"H}Z#X^UU$G;,M8<=^ʳ*2̦cJ7<4g`{w4W%UP'A?'`$hm#Z ] Ъ~ Aqb:ϟтtܬBmCG&E^?TH=iwߪ=~OsZk4-"qևv7r,6knTڳfͳͺ1+b٬hLЂ{E^omW%~N-1}o~F(xeYГV>GO?z-}I ?|hAm?#@>w6@(mh<"H ^gbX9/+5$I@2H:NhӁ @ X x@P үc~m9PTU@5P:h~O@8-mڀvt@ @@?00 _Q` &I` f9`X*,okh?ε('}9wۃ N4o !0[S#lL+hk ̛SwPTbt;d_p_Cc#*( ,:G9\r]?I)㘂}xSVJ¯f׺Gl('Tݾػ {^YH&c OD)ѣ eSkNP] ~//y U}8XdPģ_2bF^ڇY)$;˧(HEk:r4?-BKeZ>l?sh VuH$2}>9iQ&JG㭎q=:kɃVS0jqD5a_ J,fev)p2aIC2r5caWE+diEjL_n d!2N/նzJ?y qR>ĴmVgA9λUGE]j`qGӿtq gZ>?7hwi6/̯~~_&Sۿ~߾,,wߪQtO`#c[pԢЙq 3 ڶ%tK2wTG9G8%Ynma3M 6tFt-E{aՊY iDdbzvsA(iuQ I;ԝAI{b31o'?~3p}f5inES3kN5D?)DAǜ#լoy7Tf١ޭ:F4c!7܇h5#ۑRjCSPjv EZi?:Y yng qbb 7>Y"4c鹑WdV%;]mNh46gv.|nNL1+O& kQ UTO=JF}źmR)o-z' Ҭ3p Var;Y$_Q./ DA<8[xcDɺ!SsPbtdЁѫJr); <EL?w/ӨK$贙l)Avݤ}ڇ*ˈ$wEms~5\>#)Є׊ѧ,rYR:eޯ`?~:BBo"r}+Q޽XG}&I\$+>Dy^ _Aܞ}5y)AIl;7i2ʀ쐰v=S2:לV60@蜾#ki&5iv^v]g]Bݑ H_A^rq+mćQch{j4c,k%(RX)GAqA! ɚ䵇GLȾDžf;d#UB\[kyZމCX櫓0e7r0v?N֡I׏d|߰ߗ_=~*y …?"v\rgn 71U ļD:HCg ̎ǜL۾iPM IYǫZ >q.T 052cFZԆۄ P(:Q]9$ _vr+yn(EG+? >"|:t(Z`dk;OS.fb挗y{G` $fYئae5ƬtWv]kuTMoZ9 RKG`voCq;=n{Q^B[jwX5X b;:E2%tuaEJ\$.׌ڕ&=|_[hE*(0oXP=ODeP |7H*WBǷg8лi; Jz:Ұ p#LFqgRRGGrRz4?jV\?԰5HkǧցVdv?˝'ߟ+gv>M&?aS!@|?a BNgߐ>_?O1 wm[?UsMӚ|WLSjr+ZADR>Z(od6pZ*JX1b!cpiylzrJO̕_[ {y@-NaRONLڴe(?YmUߪbY볉A8U;͒,A JkhEb1s c Zc0+K})x $۪[ʥdjiEi,ғ{~+b&S72J`A`Ǻ 7fzf?آI^6ӳ2-(db4J&.5m-w<؟mTI59ڵ,uD`"6k…:2,Sϝ^lh'Ȏ1OC58֔ N18ӜQ4si5u8TU8rU1ԾÂې "SxK6d𦟸s6TQ-K xxnbX&aoP] w?=w!\=qzx? h9 #jbzdśifesmBS^8SIKWd^Q)ĺ4ٙɬ!N6ͯkX.?¢Y6$M[Oꃢ?؞%^ kcIiΘƼh1Er[ c8L(ՙ?dB.E~ # `2kD68p A@8kQ ' @@8 y@P~u3  hYpK?5 \LS 0%`@k{\ ⍝,& -xp6|;6 D4t^!+פq©~a\2ŴGjyi]7hlzHU{Q@*р=vtQ^0_;AICPP7.6͘Z0~ =ԱKf4LR'(ՙ1K/B=¹p6:޵O0Xc 8#K< LJ3c2Ȝ$*S_J`0Gf|= o~ץz<О:H 0?etc "lC׼TA4M߼yEM s^CM ~ v Εа("vmdo {sĘsI7dC`0q{ҳ _Ssg Kޕ7?vN{xlOzZ'='Vo~IQ?nF:j*zufOb6ѾL#4sȇ-ЅI~.  rӄy} 搚(8_1|[~ǜg{' :z"~9gV_UGA"\:3NI< h9jJYo:=+[.i~❶!wăSeJGͺ=VUƝtx,j#qWRofLt!mf a:3wrTBuqU5/$*&#xZZ K 滘4(e)PjݨlB(IⱢ^rh'pRťz".mC~DƛW|ԐGp3 v Wձ\*هVf6i}`hKEZq|; ,{X!rYQg̿k M ֭wG *mT_ROTSLA,lF|ŠZ2c*}#.%&vZ*2.rMSe Z>T\z[Yipc޹Ci'#!˷.cD+ԡKGӱ],_;U@k49l\E]Kچ4::]6NS#"ٓeՔC -U)iɛsgkoܾqXPZMyĞzzAEfδ̪{/gzaZeKN@d@1=kˏ˝WONFOIFdDxקac E!T(~BGZ%nRLН1hm`cs[,ېou&k]Xq亶L}蘭 QA{Ft#rbZ-9y3c[_t`rvÜ2QXIMb^=U^xc(5"C-:^ oZ'}J3H *ǶBzN謊&j(l.6, xKڊajߎP]AmC|FvR;ѤsO=R61K!𰥼"4qt6n+kCe 7$eO'6ו ,Mcn"f?yW_N E7 }e.7/~K nB~7 m&[(l{+D~r8 ׈Jl!Tm`YH^u/薎#ΰbITt|q-pX"5LІHV1䴸n@EzW;CŽ\ß7.?2l. ȕ'&*e]6Qmu!ԱQVWru9{N=TŝnFw<0.%]J]yuX}Rk)2LuARQ5Κp囊l˰I2ў^vGd.a?4QAEZ[j9{4k2)ԐBl-ycV^tդ ;?(3+?rHLQ3HVXf1vkKCi Mо?gE!zge/RnϲhU) X.pOJ/p74.Z}kK`-:a:Dԕ{4ې<ϭ Q[rݰ{rfB>p ILsĉȱ5]Jq#NwxfP偾ivߟδawOalhtXL\ }d(mp-sLZd\@lRDXrëj-Щf}]޺t6_n['(aqv&l"*AZ|x4UJj̞9"3ްϰVY'JޠcսPLmɁ}ZlSH_eŰVPd {!lFkN0 {Zy$53՜نn1|7 {}s7DZȫ`JlӐ,юWfT.IGY36ػp(S ^IeIdV6RFdKH2FLgZk%;0w{>x>>3f9s~1|`})[?;vCh)wRsV%Cҹc355kMڏ3"6$'1Yg˄ ~53[ D]7`<%x<t}m…GZF4)_ ߊ zP[#M[QS%8&h7)d Y[ |5#A1G!YehG2c]bMby(iەZ!Xقc >k4.؆[P\ :vDGo4/WYbEJ #%pL~'{G̭h}(=$x,q3E.J%λ -Hp\y* [npKrI?%D-U.5l02 >\,ɟ7Lj Tb8H<(=9fɓln^0㎀X { +I'mٟ:(w4;8Mʷ^ɗV-li${Շ6H1T v2Fz( 1,3İ*-痵77>%Jr0})k$,gl2ftj>́WƲ>Y-L2T%v[>,ѕ d E ̥0P^{WX`6>GKVv e4lr9bF! RN]ʌJWH]k.fp[xe.*C\b#tw!~bnhVvewll^?<1$tP?>rSW&:DC|VCE)gnzS;V k]nZf}Gw-ukp\9gx́SS%ob;T]qUpy;t2k'  /k)W(Yg19_ާl=,??Kt동n}U29/$B!6&WK\/?nw'S3'dhS?dG1Gݣ4V#hQAx4r_ D)F<7>/@@zG` @ DOh x q@<<? )@*s o"߰ @ t`[`b(ʀr^U@5Pu@=h? -@+x @ `t=@/`sC`; {` &I` fY` |e` ~. lI:AEnhA=A%v\,%f XS +ĒpȘiaZ(Fbg+LJp%N tyaL|)jhYDih$c[RڒPmDgD_Am ؈.u=5 CBT$ \N %w@}UK;+1׬2f5#qk |*1>{ƓCbKT.Vy({Պ߃yl, %77x&F&7v80vo붥]F_o`1_v溘2 S#u?.kuP)L60i-s]~nAs FFnۉ:k'=ngA>"Z!RΥM ԫ8!6c[)ҸDإ<_H9GՎ[;2F7}12arԆ+z?(HnpSxތ>fnChxq_ZrSxO]feԐхYn-nPurj"xTicpaK(,/U (4a)8;@IzVS$D')/a]*2gacmu b9`&x&ٰ ge,%^<ԬW#~eN:ވ?hfV0>5Z?1$52zsv+ F9_AHx.(]k;`Fr;ܧy3sB}Yv??_0 "' ⯐C|7r!)W1~ͧ|evni?9y\HD4|b4*n$5h;YS$bj-SU:*pδ+F u/y#"$uR#ܯ^$X ߡexgu̧A=PG WTu9Q].홆_DLbI-ŷFjY^(PahUC|5?δ^(Dh-zeprRI. ֯BX`16kTyU#iMb L_i֦Xyy!rq{GO ⦑ :v P;@a" :85/vY<54MyE9q1A6;i/.Q:>2rAT 9lUқ-f*k58z#؜4pIqڬJ%p#D3wu <ބ{F#6V ݗt-k"6iK/8EG \"6ݟd%;¸[OqcZU]cb}wTjU"8=&Η/KP݈T'[eQ3r[_ker2 kb. MiI:C \nE; -="–^&}|dk3cCO.59(I*̫y6c"ܐ\QqҮ].J~ϕ3a^0W"CT[/ÜK:!,;vI.cq[:lژ*1e#4d&\ƅ=TopNkvYVBFtmoOv9KӋ 3W*hωV+̕9$(l?u [V΁w9nroJozM9#N;z:$,a5odz2֢6MT돌[قP\E_My}H̜\&Β2~؞ZD#z#b ?=fPi"j$=6PT0.U[z<_dFʪrl";qW懮y#^7Te핧#6wzO`IfX*nTqu d>@ <[rO(÷55ֽtP:gvtB?\DZOCPl76\2S'뿪o󗡎k+327ǚ=;$Ф,Bt8BlA(- qurwQ7ж`%o֙57Ĉrb';z'R WsL?O|KWS'nן{cCu<bᆪZEGqҋҔ&J. ]DԨ4"Q,T n@ M{ow;g=;cƄ?3+$_T?MHj:z L|[/&5oa;pU-֜:,,uoɩPz>U@͓,%õWhj;N/nzrW-\ ?/F%ݺ>T*S55>{hJ@ h~;"8 z`,vNp pnp|7'ι($B@Qp @H擁x9 "PP@ @h- tvs^.}p C` 0f20X\HWUp ;`#3p px |/   c-ƿ:0^Ig7#[,f>}S]Gf#";u|ݐ7Uceױm/0K$ڦ ܉j{xr}^ 4|d/Pn[QWwĊqbҋ=Lݥ>Ҝe=vb@NLRLu8[H "J~=XAcHij&ދQ`ي.$nߠ^3'Ƈ]Sq]*a^7%h_w=ViA;n+~Uj_{I):]S^ G#c^yTN[i` >W|VRDJ_3/e3'!y-#9Q˕d8% v/7m1Mqn>VnX+3mkZe5$0g Q{Tǡi1F㌎qʢB)e l7Kv-DM{u??ivEb#S%f&y?6*4ҜǮ*8ƾ!wHt!^zc\\X rWPA}C͜Kf7d;'dC:Z-|N-ꪳ(/1!{:"cR4<~4 ݠ$@:bӑύe~p~5m: jw_E9}4GgBW;><]NQԙJ%-Q˗MGs(S|$t.G?x3#@K%Ix2XMYƑ\=͢}ƊXO7Hg٥7SeⳔZzL7!9Sgf=Fâ+D zµ?z,qۈªCr o]\c4LڞKVoT~f 0^8GzJ폜rwf1WKFUĭ+v{X(x{8,-fS/fPp~sGǭ΀*Vaڬdm4u 6-T;߸r-ZeGFD_$FJ +c7~&X{gY"=`?F-^k)XU.r Oɭ֍11~8ot-YtJwA ,gtNu3KzA3$zz-O,M}ɲ$Vm0"9*+##hc L^n|@Bx*9tw&ax$9il3g;^TMA}2~C>N_:Fuκ5EZZ7[wkk 3~B#_!_?w珅|fgo׿8-y~ԿξղQ_zgo;{bG}]{}?$:CdU0^W0DYzGfoXМ aEM%oԍBRY//[LNqY{1^cŝOŢ[t?hp.l_=?qv/G)ZthlI,_oˈ;L|OYc{Ӈ繧?Ѿ6m q  3zWѴd^g1n9D2b\SI#H`IbBT#Tv_A:޼~vjرd{""VEI 븉d)f~12|E\-n‹ cWcж?#mKy'JODuW>OD7"VE\h2ӽgt ?MF8`8uP]!7Ӽb_zw[ 8J#w/N!'WkVn`sSN S,d.&%a#3x:Ѕll.-(%$'y#M0#_o 8xV`]=xXO$fMX)q/i1}:1ϏQ|ESyԺ]Yb9Tk<_<`T+-SP(B>e2uCeB⪉PϹ1)59#`cT 1˲Pִ۱1Ry JkB>ižd`s(V ?*Ԕc<")ZyyAJBcTPX-3ΔTڵN%9Wap^讐~)_r%2AwjsVvߘE| c2[X?G*Kdo֑L%ǘB\y mT]tdmgzMSϕ/4:t̸Ipǝr٢?Yޙ/֋8mb'S. PJ#-"U}/ /S9Fz'FZvsF*UP\RbKW )W-Hugjf+6M|h RyFpCҐu~ ^"<dz;<{bsA+Ұaf~;+rTrʹIc]˅ ֙<Dj݋qy~}6 z"U?i7NX ?ܛ+bjsw՛( ^n\5G6Yz4< zK̸׃NWJ#i8Ne}7yōn41uv`W[uѫrB)?ۥ#6Bؙɓaeah}ZڻH9OUχxrZg ?ߎM^RP;K93 g}U6ibb&I>1dR_g+l>d{7mD{$] IVPnWlYZƝvI罄 [!iY +w&nmq2Nҝ~3GC~dw˘KaʷQzY:WpgOR8mcت4){ R0$:w]yfeT$Poѯ%vbǣ~6jFSv(TzK[:Y0ᝅY Xb4RY{Tke-R͛zo2y oOYE[+fab4(IS%_ӝD UxPZEodأC{& )."FCW/a8)`Zkp[aPرߩWnj`B9~SQ7J~Vdf\1!(\Gb} -CnL7={`؆pF@ `@Ё@1  R@s@Qp h@pHY > N qBTj<8&8 t%puo\XB4` e`,p p [`|p.wnOpoB h =`P*58h-580F `lp\<x@ N1p@H) ,DY PJ@*@@hMv^.`10 \X+` l\WwsB8 8 ܀;7' 7o7o@P 4nww%1   DĂ8t73A Hix ^tdLހ읹* ނ<0y `A1(@)(TAnZu4O 4WZAA]ݼ} A0070&wL暁8 < X` ,*X`l͇_^Y v FCz%;Z*-'W'.j /jS:Vˋ]lg3,-^AS/뿕Cƿ<5WFE 9r(%j] %E:V'\{K*au"%:Ye/ *[8\y9#37DXp)CfQч%ݘkxgn.9iŗDqǫZl8_u_Kx,FF/_FNC2J]>ߓFUIƶQd|6eY켨R\N2`gh p~:;$ON-}a&C NM-Ql6-Fm"l#LbE4W|I*U:H-y^n>eT}\ʹrv\z ֟vZןlh~[/y߹~ks[_HA}\s;'CkߟO"U2^p1?ar3ݨ0luLqȽr;a%Z~SORIt&zݺFRIP $Χ|۱I qQ|[4C,.02e_O::xXG>kұ9׎HUH0Cm*7 wWE[Y-ߗ^zӞTn+d7H 'QRBz)+>=rw*,`{an|EmnJeZzL@ٴE뾌mϑu1Ē1a%zȱKݢ$;xks8RuD ɱQ6DŐ?]}LfN#]GTt:D)in˯( RK~_2/djd;Z~~V>i$cY4= rq™ZiPӌܴwAѫ<(Q02`\Ky63|Hb[ݳ%bѾz>3"ρ^z&~^HraE2i8gqubG&gGIrTrC ׿;U\D,7"⒥'Gkg8rtw5 o9±oޗFPotUVY} ]0^ZFۆNKVUY5qU@mUf9κ9j/žfFDDZI{JG 3T_IOF' Я#y.2)'^Իr% AxfTfC>9BԼ~gET@APy ;Z_@6% ĤI%J4lZjY;L^:OqpmqEPJ|?YN>kE)vfB5?ȹt F5#]X% =WF Q|ő\0h(Ȇ. #l#QH͘}XίN=wBlaak&EcI}lTX(2bNA4"hTNyMn[]qZ=C6jSܧNuY4l: ˛+esה(0r5Q%rU ~7 ??ڞjP*/da˯_qqbtqB"msW^SNpDQ@LiASHGY䂦g̞2\aVċAKӯ\rU+3XZ+^[*B'Rƒb/P,5][3_֕` 2!pݸ8-N2YZ0#K0fFϏnXG6D42 Y4ws=(~$n1 Wfc3.O#^vk?pӖ2(ԵXiiN{4DU~s??j3Q2}l&lyTiY~0pV+[pG!N$zEfuNvH"~8>xx^~ɹ1(=Ѫntt3?uޯ=^BKOS=M=]zs6(L &9sKeN˽};zvz+^[܉Br_0?7`kWugc%; 럲G#S#/ؕ7q jG.fSU<8uHsa68p{gv3%LY)5t1vXtyd̃6qeq-&yϰhQxQrfچc50tSTPhF5/7mY E)5Ϗ(lE|1v̚9(uWEQ'_kJ[=wn_ sMNr.k wbw|ivYss )I P!wjoީ5=2s+iV __u)獌94:#9MG쨰x})AUleM05 :krL tfIOnJ'녶4~`r)G44Ŗ?z 6'L[J%{fgb\:SUNɩWŦG,L<乀{|!u]iMWXt8GqtΥ7jRӧU9'bEKsu;< &2kԩb%X27 _-V {V|ҨߨƯo\uN߯DӪEWz"N+vg\/=;?^۱KËp6>!։ړuw.`DJs /hϓ~U~Ocǹ,DoJtSf7TuhBYNuw-I¬4pX~8:pW oԬ("zp0FfX!%8 p# 7(8na'8 ~@  ) d,8 @<8,DE 8Typ\j@hMte ī\ׁ!0b޹z0 47`n|6mwe{ pnxO1  B|^gDzĭM~h#Q_ie-:fM $J&0SlWܶ\[Qj47BrCU%Aar_qΌ]pac%P)>Y!< Q ⬵ m؇pe/krsq!8?]މ{A |ֶ nhL]t(vT>j~uc1)νNS[/S%reg>gf$!,+ɔCz;:kg̯YYy=Ze,hte |lW,V+ ߏLGSF`^uֹtW lY<<݆%[&4e crmom&n_ShOWΘCtyit kyU{ڜk~ _4%?} W`_gR5P%=̰CU=[j3t%~q!s\RIe6K}!Z%g<#ƅk4}ĿZm}6"&7Egy=;uBS4`Ӕ`Xlޗmlؔ]p-RbzY3BۈK 1  f׻W -|Bկ1s]Rj5J nѪ;gRd8sߌ39T_CH BiD=դ Fz{*W/ۈrDҗ.+fٌrDM~y[aɶ՝p$FȦw܁s?bCL6 ]RsFQN?!g쿅M7N䚚e8bukKWk vR}`蓊{,XE8B EoZjǛƇB?$u?iqc,Z]F@ޏ6xqzA#1dFZdlvĐu.\O}/W\=:2]7mz|G]OW!e^`_ :O,iJ^JHY.P{ЯUs3H[T$͸НZ6Kq:=*Z] 6G~rS˪ :|b?|˦tg<6}Q2c4e.2\ʪGص֢O 5ܭ&TmOM(42ִ8&w7Ζ)$rVH}Oj*Q[T'pkT}W#, ܃`7I"dD1ƓȽw-К.wi=GW5P$)(j=!a+tThIZvXK KxEeDt$KӢ­ɾ gg@ZEPވIL3BU%EQC+F-K]do J̊D`cUGB7qT穸e䚑y6"@qA@[;È[=pgq;wן~@l;sϷ/3+mww?dw:p]]pݒFoϣ$^O1adE(8ӾQ5FvXPj6yM\,Q9xj꒎Lz+s}M xv ^݇4WdNPDS1(rvn dQs桯^q|[z},9Iꩄ~Xmvdcc֮JJ9fѥ\zը9\ЫL~Gv jZZĀJӤZM։4ssn12ifryZP]dne%js)qt;M%'߼->,bGNܦQ&J!|y?_FM]<81o6jCb_>Ren:ޙeۿOFG^S~g+5rڽZBsƒyJqP9 W\$Q,aD?q 6=&7 *{4D3M4$v-׳pSx0G6{^Nq\L=ؽTPlN4Eϛb?:0kxwo SX}7:/a K3.lpE?CV2|?R'yKNr*2ۧTE)[9'xMهJ{)^jB(Bo-T7Dˍce5>VijPVNM% 85KRNY~M::Kվ(B{ӷ˞)r2zL3rMn ϓL S#.|bg˃a}6*&x]ت>0T,TrB:n/͘kf,,+ζ)cK^l#n W!u . NVm$%2;1C2Xio34K~52REEh _i:1և0q7dV*U$%e2C7yvW7K4R,[mȽaV_VوGz~Ž z/7ާ|~+DoY tR<_ sSnG2t^3:~O>K:5zȕOkhzW~C Fzx;Lbyk _;%a#uo\w="}`w!D,x b@,x@Șh#&:NSg - )zju)nj03Uqp$6ѶQwixhx<5~eNoM35\HWҌGGX$)a{kɘzb}?d鑃xk2~! 3 \-_.)yElϙ:}Ь;Ɋ>([:=q6ő._a1?\=И*w(uO$J׬HvgJ} (2]^=y\ƽ6Pӗ".N_|5#ǖ' 9@>V_!Ȧe6,b8!`i>ce mĻLd*?|U_-[{YGW;ݣe^p} ?ri|ϥ ]2_$~/GsCy )%2wA;r> W8>Vk}:\z7PHl!>Gp4O>-#eD[:}U1\m uِޭͿAimZ=? >_Ob7ďuo hhQd+5y<]ߖe4la){ڋ?P%(xCԂéOWi悩Uv0XjHQYOD )V$ Mչ>-(oûK>ŸH}Y鰍3.cyPSW!6jw&o w-NWg?iŬֵZQȓ>^\87ʖ<1+ qJFf}llڼy;״sA`-8(cָMX4F wL &uקKb8z+Y@n|֞9]њ+oX%)2S]~0W DJpUxbZ_iy[n]޽|]eswPnp 㔷m',Y9}O.aЈB㎸eyZxMzi[QsU#Qcr4;f{L9L[e]ѭg.Qz=lV0]]UlCL}(bL@9B|qHiM0t0EφHl 9L1Q*sz]*+.M|vT\ *=a\̢+/¤%Q!Z ỏȅgHWWǃoi+3n~ z,cvDɫ % n}p\XhKv}>??O%_[uO!@x2\cPuXƫ,EyF1:VY#coy&|e崚kLY_ Lńx [BPY8 }F7LN7j ě'&K{pM(I,\4ՆJry8߱⊰3҅gc'mTS O'= Z|69/럾?>mdW {@bY/! t&Q"/jH|]'q'p;9CL Kcm{7';+q!){{^`ӷ1 5XGi3 1RﰵqVCO ʄfqJ=b=zfQMO8+G j@=o=ǭ.}RH8a=cc(N/8;z+qOgFpʬY4a4"qjUfL5];ZZM5s'OVgiW*b&YSWb (Nwu&UZ}obŎWHu- @uM l聭0 `8N x޵A*;!@ .@ $݀$ H2, V'{y@P j>@h͵:Tt= Cp8ƀ ` :-AjX6 8 8΀ p pw@kz4A@0a,v3떶l&V#D(}z+msJ$<,3Ncl&I6#/?^ܝ3 oZ4/u\ۿ\ E*䩈0CL] 0)If^cUXM=:Z3#WWEP8hW~Ljȼ'zٛ7q{3ʼn\QN2Mz`{ij`͙ ڏP4ЛnOFWgYʝZm($*EqNEJE+طH=Ba/+B*ve)TlQbRzYOꙐIJGo.տ/?w1&0ƃNUi7 SibE!/pmҗHJ lTSK{'.q~uXd CaWIMhB,iSZoO!gmdmJ{'J@'vj]-%p+Hrwy &JZyL>v!.(9dn@Ofi12Jd"'fH ПL?6~CK^◀7ޙ%^=Z?_Nj\~xtwzɊuc NT/18 9QE۰{R߁%}"*85ofqTOu6 +Pc]1SIQ ^rEROkYywq)Hhi jи|loww>tVf;\+|QcflBTcz؅7['ޙm+Zu^~gk1Y#vm]bpknOdQ[i“ Ƥ1~ij,wǸe3w)k Ud|u\)%BJ &];BòQ/{7w9AEiI}|5l9ay| 9 *({`~]4[Y!{nzl؊RIp &ߥၥXj) ǘ`U[W>Ҟ oυesYC>A_L+խ̊x숂6X;8, &kvsv1v n#T7a']&yh;,!lX܍.ב$+hr;੧7Av·pOV]…In%eGXE'eFYQ+ Ul=p?*go*( %]JJ )" ]*%tH+ %- KIKyfv]ff3b˜)oR5US$H# _XZ5,/f5ɿ߿ѻ4A \\5'jiƛ Q\W+tINrG?I;lY?#dH8rhvÁ|Al7+L=LlkО&)9\nqq"[UWe6~~~}-HRKڤ?`N 6M^s0scl5~Q2fKFQ-Z涶Y+gtP &wXݜ{ٿq eSC;&~ċ 7-(dkdj Vba*z_IoG{̖\Y](z%RUF\qOf䬓M$Z;;acr-T,ZS\O]d ^7zg"FW efW`!m8֒cc>n~H+FQ6b sv67h)s=}mON5ÁHXe xnߜnwJH\}~mrz]kIq&e? D1dcr=e WC4*v& v9cqP洟]f@n4l|]U94}RS iD4dc3ai "}#GBhM5"b*a2ho1U%;(H1_poE H'͊rg)n!^wM d ^r#S#߈ܹpJ3ХQߟydh:ΐNYGDxsf f5ԸpX"p}sVu憘G&~Kx˚74Kh%_fu;|gnNT*Dxj EZH*IP so *jH Z|N+y:>9)A?ڴ ηAK$]$ձ{ y\(#dcj/p6˭nO2Jv;lF.>cRkvõm ;p(ѭ!Ihde&1@QajĠg 9~8r(*p%2p0 p 16 HR (N:p gу`f.68.x>Y }$I1 H2@䁧xV2HUU@ P4M@ x<^ڀ `ƀYf 5,K l[G p\W p^7=.6&lG:J%c䞞r -^_NpP h))1ڌ4Q4AUxwTc^kP*uKCa=?׹ud ,jmNEL j zUjQGюsH>7Ubh|Jx3U9(;]DXd(T4/QK(iҥ54\WoKprۊ3-}9&r0d+bN:,ZVFn4'|~ Q>pWEaJV*EZ ˣiJe mF/tn߽e#F/J8T 5hTs/@ !  cA @"$@ G l =3@P@PT@P '6M@3mg:.@ gu~00c80LS4fY`o"tV HW5``m`i] u%@\tp`U p\gu H2( hZ&@nwc)#0w p  ?H q@R4 <d9@x (թRe@Pu@gs `|V)Hsk{pgpz '44f8mi{49=ԲG/2*%GvjGJ~un]px>_lv̞b|<wFt.5ٱ<ߗamRܮLe*"GUpML']ErX_.3F5%|ӓR5ۃ%"+'<ҧU2LRF%=LtTmxL](T  4Vت.agR`5_1L;)P>k&tEةsJvJ_5RIV 97#ý (=Yty_/|NMWNgo%( ^{n=R. ?y璩&Ք%(㒰ZZqY"ڧh/mJ__ s2K$BYuWoxjjzQ$WLqQq_pkN$I*uk|lRSs۔Dge%&,Lh.bC-.̴ z`٤ =niJ?</|_@ B7@() ; x H$ HR>4l @ڇ@P @PT@Y5 >u@=4M@3mg:.@Y 00c80LS4fY`[ l[6H`;:MӋ9쭹Vwn *4e(M&fK#y\q8L0@AJn5-xIziі2BȃªHⒶWb[ 8rꝩΝ z yE'?ՋRW5J.jyarBz/li$&o l1rOInF5-ֻEvtbCX՜G z"ܾD!qN3%9MvNO3+oʔ1&d!dZXJw5ϖݘ!ľycf1O?NDhjt kcoC P(9[(QF.&Ȗ/oJj~U1Tc}<Lj}> wH~gj|eErqڑmӵI]xx^+5 @QH@D@ ޝǀX D=H:3@|2L r\ @P@ P guW jZP @#4-@+|ځi/ 0|NF1`&)`3Y ] l[6ȳAzG._?TLq} t%g#F!=:ɋBxqvkݻT [z1GJױf*sT\"O|ήӌ$ROhp n]qKqhhQj4nT\YSuXBώnqi60ػVE;rZΊoC:緤:1{R0&bLݜ͑^v/rHL( 鴾PO+hP<ݙvoϖin|Db@ҁ[5_?/΁1<\:#+cL)6x5 " H2(guQhp ` v^.r</ pC@ĀG8 H y)(J2j:hZ39^z>`F1`f9`XV5`vY up܁߁塴WS^'|HEojYl˄_3 l^|ǕiQ,:@q_ 5I+s?LXp-VlAo&*1ލd6)RT2"K=X*}굤IHdb-)~-|˴~ xǖwhjѪR*4{^2Vm^2thxN(%˟$YBS<Ԓ>@M ›n{lFaͫSžAyU_ҘzX~ʶ ?Ɉd2wYȍLZ f+i'Nw4<WiE3uގ,c50#1 &oH&'{FKӪ ޑ@054¯$ %{} lP!x=M.]C.>8csYIk" -8>P'!l ӣ786e0YdWT6F㻹^,| +p)PIu/>`d,^+ ޅx @>Ij^[+]o2xb I]"ָ-A2uhZHO !;Q%mfyh#Q݈]3MMw J]5kFS9Ya&ږ$J&PO~wCwO x@@€p h-b8 H$ HR4 d@ (@ZT@P 'F hZVvv@ |z^A` #(07 )`3,0 7`X`XY] m`1 >']aΈ"ӎ~5VZ|!ѫZߩؐ"Hmc'Gfs~AۮbZׅ2͘)}}5LRp>%Nrg۹-5L}ϟ6H G $u}*.:{8Ui!uV( &|6~܅437<(;(pjc5Iw{Sqku-hoE "aGenma3-U*vӻE K2flM] xYU_ h9zîT[o_6* ר 5Y_j}vSSh3GzٴeM^j"5+zʰ' "V-Փ v*4X*9vz8aG)bT=rOuL[5ujc w;[_WCv1lj胜a8ߴ'h䇮\F@[~#jL짣^gۊE^%  Oc:Eihӧሲ; }/a`_tӈ&cc%Y&mΥ!y(*pڏ> %2p0 p B HҳzAJPׁ@ M0]{ e@a!  <i@xr<P%@PT5@^Mjπ @t=@0 #0L3,zm@j 8΀ K? @zIT N 4lQI}oM.4r>;?<닗PȤ3\~/;-KlTo$ZM_&/. +@*؄`Nw1(<͈(eyJO`euR,m}á4sQgIG#JN3-z?JR}/4(cvg84\gu;DizTYRWife!L+O3+E?قyO:,uc̶ֿ<ץ4#O x>@@€p h-b:@>I@2i@:2, rY]`!Q,08[/h_ /w}KNOtwbWcwL\q&4/!a`8`h_|k\mWLfŔ- #!ˍԡ;Edw'u8I"A.΅5?& "c0W8@[/|M;|`~45sM)GS,S^cJvIwmGr:Kdžc֫*Q{kꅪd92[).w6 ýK89)(.tnt)Y{|Xp5`'c5 DkY0U:q-Tsch'!8hvYeY{5r2R]g5w Ӈb. c{i |> H1XRߔRr+G٬hJr%ut&;h`xaAeӨqӸ>TW _Y~$kgAӲ^՜U>!Qh|c%! EW LMA.L2`n.++Cl' 6 ѕ %~*- w/}u֠,auWĸJl.Ԭ㘣ć)He]<)Z9?ϢK?KrIkN 5H8Da?ݹ@YŻ.]UnP+EDe{ ykF͔k)&*ڑ ʾaqԛ;%Fq]` V@ኴ:9,N,NhZH!y KIt㽞XXN5%K/_IEz=I8\ CRĸ)ݚ/..K00BdpZEyk>8*%ޚ{u* ƣhcnש-[~U"_'uDqx_y,ۢ񞲳L-xEԤj>L}52lWV #!$_߬&9P7m&L6Úl)XܯmGuGz˸Y &%ʳEhdn#P_&CD-=› M`Q YX)Z(%i5pIjH\)OtV)`8د`',V.\39 n%N >6^ҷ?U畽r>܁Cm̮L޽CXŹшfC}=j"B~۷jqBd4v=&,x{}zS t?[. E uáMZHW-0ۍo+-XjTxAG꟥{.H T2ǽ#gГjgקncijH5$?k?WFo{PŒu SL aZ ۹a)5L^笌HϤ p$x!KgtE9cL+̨74ޕՍh. 8"4y(8 [HHCzo[ZL3\0YyEtyZ5)MPr[Xz'u6zBsUӡCיaƘT* Bvxc/SZ/Uby߹f̠"-[l[Z.ۥߕ#,Xl␾);u6JGj?.-rxZ,laCO͵ݮ.>1raлiv v0U%>:<0vw[ss[zbT0hU /O 44_&^M;Fce!>ut]nfbuJ!TzmA7` gWz*fg+:u>m^JDE1ôaxԣ->PN``k-;dTrbkɨyt.j8g95|ʚI(U.^Yh\o %_p9t緟w<~à}ó7k kI02~ @<2]y~vy9.۷B d6&c;3Ha:%kt̓ |2z;8QY6mHs\ blt$ `kSxfHDOȆ*J6SPR;}b8(q%zκD* >n뫱(s rf½Z;z.La,xW'[SǼ;QūXQ\S"ZudvQ8wF kH 4vŠeQ຃Ќ)޵yɁLVwZ8ʳ4nB Ǡ|KV-ġ_ 8JshXWO $̧ ۴2N [շnYs@Zeޙm}e#m~u4ӱumLpX,Y'[}]/r@Ĕ`3ƆMR{sgBl˪O2>(./ ~ϑ'kD9~{_;eTOp2|cqc;{BQ,6S68s=)C|DIUk%E͕ݝ7m:Y~l-:V)!,>oUc}UwMZ]$FTHp([r %!)P N!Ăq f0A9-=L뉵*lvKa[?ΞB||Ζ14KE.CqĠimL<ć(A{Ĩ8ƞ sș v#;Csbۨ_1>Hd47A5vR 0{#tz6a"actH> ZثU*3hl-;>is#Čyv\.AIےr6A6Ӌn B&Kcƃk--a27'Z8SSFf߹!CbZ^wb`mxn*5R'/ bf _1Mܹo4iMw?M [##4Vzh+j|vƁ /H.gդo*Gs/d-t% AY_>f6嶒NKٟ{vZe !5Hz/e l5Re#R;iC ( 6wXӽ Ϯ^<+кOugpA~#cxZ{\iD ==6ϧ?fV[~=2prӼиd౱iaO9)067+DҪ"=3 37;+|wvrɩf ~[7LsQ#yb$Y.W%=R-7xJ9LWN zIJ#qr-Q7dz[ͮ[_s%e/ o>OLWnݓ,%}}[{׊šSP}4Ip`f7c[%U!+Ehjٞ$1A흯.L\FL;1%{B|$"ڤR+#һ%[LԺ8걶 V q$lMZlOUMlړN)4,9_wa:GuCrk1^oDtmRNTZy/iJK{cʒeػho(}72ВQPyJǩk؄ە16$DžQT4Vlʿj_{߫adh'iX+\ Zt6u;qvS蟚ѡGuvNJ)o8H}!x/g!hcCwҐl] }{Dc pԅ+ &p ȋb"ЕDz8cS>9{L[,>]~fIcoާuuj,Tsa{OCZ^ !jO;g69PwH|z5 &꼝(=HOs~Y2{}1K`wFQ>ӋxrbmO 5Y = _J1ejm^K,z/:߽#S%ňOFjOJ{|4⤍4qdtZJqJ\u$@L!RN C_%/I0g;lٰԴmÏI(1mU7Q%׆i5_F&4ׄDV{;\/hVQ*nTh[ͭ 'L_ZQ k9*Pc$۴nPá5" ޮ_E-Ѭo|U+wJZlw֨Y/93p?~⍼t+9>K?_ uX9NG/htt{=T (|)c)+-V5-5'i>g"/\T粕x-~Jfu9\'s5:ti:ri6&qq{?SétR $-Ȋ~6)@uP?1n==';\EAw>jXܣqMcd~h䯒D-dVhxt$>"X'kY"PᘺL8qNMjwOfTk ț+ծO@KaAxͲHG̶r=xb jWlt< Xc $℟@cOe.@|s{ݶN=r|p Mh r2h)|qUuݑ'n5ߢ%}Z½WqEy@úb:ޭ6ן?y HY?.W OwQ|v_6zؐ=:'U%gkjZH|uW=~|%Ǚ~6ZĂGչi JZL1'TUo_+gZH?T eS@ۺ&x&>Q)+mǢ{nm/<5e:{}B],^`(*IΔq3A'-ԭD4Xn#!x̫Y)Z\z?~y.Bp)6V1^y3=;|* xw7wF/OsV6R|ĸhsx0D7x3P_2]a]Xe^ks=X:f[p`[mA*R;]eO DVjɦk;ۋ#Gv'&0GfwVE(y_qg0yu P\m櫉Z Sw| v|,Zv?`13>Pie ޥ0'2l^ZD6Wq3@DljZ=^:E~ [ Ӥ81^T䂸cxam΃۽pDejl >1w¹n*? _"5N -).PRO@>:}ۈkJ?&d]M>Lf:D;CnTKnlGk('7'dpUYM5’lcƬ5͛O/A$~CD? WE;mV,&3%@LމJZ-k5yaHf?xZYX5e:Y3<88զR&oB@}OWN3u._оhLf\B."zVc>2aEjUĴvV|e$ɢShEhcHNxl\z=wyJoV.&X^rQYUSRmtBqU(÷8 /Јhv" Q9ǵ[a-BcAF؀Y>&f@\ͧm  N.]|Ax 'xQx"!א*~أf,A\W6u^9Pp6z\~y9Ud$^@ s+BϏ-aQ$Д)Ôm1@(Uĺ+i#_CКKpfG9>tfg#e|.d[4m Z{俴O-Xn)#LYcUdG5#_>ofv߿O6;$# _oeY_xa…Dc Av [In.smGUZ;4<)"Һ 6i7r7 c]Ug [,Ut)-W{-e=Rf)10D27k+:j8j,t15ܴ;č/.FQ=M;7u7ڏsJ_SZp( [ u+ tK4h >&U.2Ę{Pz]%`M k¸x'|2㒇8x[tD٤DoXf*$Z<=ZnѤ1WĊ)InHrH[Zr ݔCǽ*{5  4}JtdP@P @PT@P N hZV ]7xF@ |z^!` 0$0L0`M`,2k8o;.}8P c){_~+25ULW "n}ScdܞMVWrh8ẓhMZ_2Ms؆ !#nlnł]$sHxdE;c! s-%˦3#ssM_#KtYS{{\ƣ;U6w ƺCw<(DnMNc"mH1t#ZޜpCf#r~+'\ ;/4-ϏǛZ[S(e`z#]~a#p(9>!hknśLO[90p1>G&Jae-gأ 2'yLNibvT.C[<^(ngzu"Zӄ;V2]xQޥ@jRJkZm]9h-)[ظWyI FNObhA[m9YǛê[houEW,dn)3QϣÍzLW ۸iC*⒑-ζf*65W1FCTjy\ َ|N8LYV^siQ)0㞆V3bEqsKGh"}\\-y.cVW ȨݚHꋰvb;hA/[qR&sy~$ïz5#N0d Č^Vʰ0Hy춀|禊m70彨RZ{K>?qb!}oz?!<~CiiJ #!b٣-M0I$U>i34I4K%~ |fMڅC'5P1i"QQybYf;3Y |C*>}X7Hmk,b5-lf㞻hebYjZ#k0^M 0a*1$TPy҆N|rijHOP+k*6t#*d_/쎊W}+s[8!sooYi;DK%N\VP"||F'h#\}&2:uiƵ6U wFLWo=0/-H>Hlz=X쉐bu2!Qm?[H|ѱ+v8?Ģq_jPJMԡJi4'xWbiwv_~ׇx){4ǫ}",u/ct#8CF{J}[74+7͔FٕW0+'7gi|%;%)ttul2}a>cjs6QϬYfO]QPS'T2ɤ[rK,Efuz}Qv\ ^';.5=J.G?!cj/礙y]9UҙILcs,ڼl,Ah'K=qFGпN3qSf]qI8&)7u7B5΍HRǀ-)C^x^j-^?ЪWV{q/C'+3 'e!m1j`jQZMm9;&2aÌqv/W6"Ju_W1czhxÂu0Q[hⶖ6~_dIuO. O3)B#LGihJ!&44Gx:?DƸfL?,g=4:MzgVcc!=cf8,;f&krz1A~UnfLSĜj~bB-on+=ٻbz>T^FOtJ{(wC ƭY7]hַ:)#+} /:@5˫lj^l~OYZ*R fjIC*Ge 橇J^ȏY[" Ib虊зG1Hc4zk3ҽspIRy݇!Ğs;F}gJiT'd*}?XsX\hpdMDDn*Ym%`%%~OHLdʡ%/=-d_C/bPju'r*6ϓ$N5}Э-*W`.py5 Qe-ZҪsWfzh mMzP0h*yj,2{UmS 6Elo-Dn28LYY=O\]9G3CǮTfS`2'7Ύ`6m8r&PIZp*ahGMOE.xa#]40!qWd"ݤI HzUk-)TKR=hn>Vue=d>Y)Sn;\S%ߵM@K7~?,ɮq5+BԥK1UD̨>۵_2'Ijh3p؊3@SL|xusUsŖ}uKM>fS&,SSo,sbUieH3y6/7\^P<\(6.zPU5p [ kϾ#6+*VS/,eloǁ@>!h;_>=h_gL*./&Ĥ"~KT8%S.2:2e 哗d(%4eܩ`*ix` p= ãN^~爘J6Յw$ӫC?GP+M^>qT i`#1s~!W'Ə\pk6ؐ[҄QfANSRJJb]] K'y*7_Gz@Nrk*nJ_L_ȉS f8(9JEVPx Fۃϗ)@}jx߭Ǫj,Gr̭QR? ~۝ > x)T"585b?B TG[17>+cIxO}6FVIcii>S˞؉YM6~M%7$CH}B\R]$p712%ӐCAB QdޙX!X{'_qw eg۞&7Xd!&g{qX0o[RRW]I"_7 ]q[dgr_^r^=L Gz; du3,_ hxn꤇LC,Y晓iE;Q Vhx/QF텣k]SGJ=97?E{?(}O nM $GoM -ػ >*Q'MVbHvFYs _ 2lf ֩QBi6_ _/ Nf۝ւhd]0L=LJM1jJ4U= vCU[PJX{I& | 0I ڞ@^ہz>3z '(\)E`-ib/H}?=39.:>j*ZP%[=EGY29:8aF-r5q˼O85|jJ x7R8R}&X9_yMyXV@P6M!O $KkŒZzN QJ w-wt{*F|Z|T..F53 FdrǷF1Ǻ iH @$ZɎjio8Seh_#Rԥb%J뷭`2vЅ1~F[ImIii?ӯSJ<|^AjG\}{H {\J VYb )xkj+CvQ3 q۱$kNQ /ԂǸ0Tj< W%Փ3bM"p};vr9T&RtA Vf@RD3F͋ezowN 8jH^%j 6?ҸK2#ٹT?e+,3;hZ 2Ϥ/Zu)j c<+y#}4mykEq{U=jkw1J lN#~u?Ol>? ikI|]%eX2`)޻3͠ˁq#+z3Q3*_4hfϙCvӊtkҺ&Y|ͱ19r$ЍFU]Uk)e ޵*,YLAP[\^sL&Gkσ tT^ ~ʺMO$3:টU SK%m󻄱p\N k"ʥMB<~{蘠|*M< *.0uL4E_q=Dh}-G,=J=EEn|; Z-Ǩ~\p,x(S.2t_jT 6/qAzꖹdi x\wza5kSb7zyuā c\+CpZ#+ZJ DHcO=NCɬO :#(ñFfмc <$F=w vG,ma;1 Z;Oϭj_G5&3O 61=SQEsaS[;['ؿ4q?K%Rf"i#4ȯ{iO>;_8ҞfHnG?tj2a#t:<hٳG} Sw2{ ke}]/weO3\HzO;zON5<[O3 Ud}SO?ʟw+KfWdCi֬8;~M!;VmW4M8'JcL#P<܏ K(au9VC5TѤ&|V:KS^_EY,66Rt/؉2^l["YCQe׫_2'nйCaZHAgS$^_ዛq+D7{51Mk?rq ZFErop suV =辦6vEZvZ|ӺyV޻?nz-ܡ9[{$9Lf}_8_I[ |$nKj8돳S20On|BNyV;" +y:bxWٰLR,tB v0KǗ7{U ="LEzT ި uQltnl^J|٨ii&*^޴-ƝmJ ?_/>ZNǍzt6AhO龎GZW`iuzQKw{7'}#NARV-~)iw1&ߣLt8Ts%OiF`gṾNw+iܧB>+:~ֿy>d/$'[o_s>_о h?}w&x ~Z?Zu-]fI5ϳqTl(QߍխZT/70ajFg'u v_0J*,Z\x}m%ߥ)˚wd´4is?z=Y}'w^urQ$FYώ#n?DzGZOcay*!vI_=5vzPQ]eNJdDuthw_Pwyr ѻ*4kC6 mUBKڄ5f>D1#F! YfvM@АHmQa긃8_aEd\J{W}ҖRFUbJqaPR[ AQߜ@l%dE`-j")q_t1`4X[Gq}lpVCˋܣGZ]ynCLNŗm0k7[$=º 3&5OD 7/ 5qܼ2guRS"[HeLi-& ua@gsCwH z)۷߼tj(?4[=NUDFP]24FGqZstKkhq-*2OnHnm.f)7W1"ś*G>$x&Lg*?f7rZ$gVo{/@.#MEL<9NOfsˠ<^s:솽rc7mjפԽ^.S 9BvT k5+RjwU_ċtqF8>7(11fQô6vyy!NLf\$:dmme0f`~rˀ@k4kjlh.3&Q+*b\K=*z,z /R5]4}̠L^W)%<1Sb )G>Eu_?Ҋ=p2 Qn7X cO)=j tC-J>$``gt(џpp0OjaC. y^ަ.l  0eKtƭv'#MV+:?ډQ _Rz1ZYonɲQ;MG=]1hZA:q_`М!^20ť=k,Ȇb#ݯinM-V[U{0T(=(:ƓԜC<<ǃ1 AJ#Tx0,x%M&XJ.juoqw",#&b_5%Diy>Tdm:ƨ,oD*"a8tv=2Jɶх"kr `85*%#9J/D1(Qeps @.fy#>+We/믺-5XC`J,GnbRzOMM$6~ì5a0`q族n7?8Lh|A=q]J:$u%q'kɌKj^GɠSv U783hDV#&Z dg(d ojGREDJ@&D|vsqɦC= $W{p⁢ 4`>Bײ[q4bm@.ِDy'Vն6)p?pq#2WD]'c="uΡT1bC|ΎDxrl9#K%CћڙݨRd?1ӑU@F)=KO WoTTWL$m^E xQΤ\dUۙA{6 _6=_f6-rT@r3wYѩ]݉ٓ_P$KD~Lqi߆R\s7PR^]4򎎎nt#~F۟&E/q#p Og?OW_O?=_ _AgEس|Y'uy%$UsXѹ|9;'"TC7ff^ ufgt{vnbqː8׎ _J@*nEcT$ XYHG?OZ#:WdW+"MN䓾lXF_ͭb:k7zh^̤Ϟ@̡ؑvEЛۅjrQPPD  R4!J^B蝐(J(UHS0D"JRi"U =4נ+>y}c=̵̹VMD8vi,p +!v rG5v7MBRtxҢj퍽 Sv^4>00`;Kp&>II<[0gCxա:PeDOva6_śV`X`P6FFlt(ʐ8(Lwq{_`k0qڼjɯxNuUxv#ښMI99=2whUA攚A^Ob9S咙4,&ze7YzIYĬȘ|~| QDnwEqܰɎ UӶ-%'U))QIb@D 2 զ;4_!n<1Au) u Z2Y􅽇Q@?nm&0 7V8pcm ш4u2V{'5=áXcC35 50r㕎l.oٕ5rܩ 2)Z3K2Hb#x"-'׶!2FL|oK2aX6>1`\2wj x%{%c7͞TY?S+"O$ VR$X LpAJI P|6`x'spIe݊ HxN ;' )4"Kounut.v'Q^TL&LJTB{TQCؚih 2~\lt3(⌄Tq^-|OB%Г=ӧP)7ZC (5PZE˺gzŷi{.űmvD([G vɊoL}fFtv 30g: "mq[L<:3r"|٣DrA4g5J_=5!"9T&{+Ř-Z(d{=/]]vqoL"MoTƶ^4![ N~g$Hڅ؂V4OתP< s^i%$ ,C)2Mݢg䌼# ҸW0`nȨr%Ad]BAw;8^lW7/jIQ CmU|\|]LC۳9XyFRW L ;9 7dWXoϸuVS:ER snk9;P;0mO*9*=y<։x3jTCs|rV}lN~9[ .A o@ lľ?=rɳQPPW~3/['GHR_r [+H S9i>qߙ<7W C릅QJݢx9g➲^ZHN.OֿZmg:;z1_`9&OfNtv$ {k/ 7Ppl!񱄃~ѨS{m,Q5PE͔WeFo׽.CB4%J,a+v)vrNcp1^Jjr晢'19v&d.0LQF])>bwbzS#MoS|Tq<aFn\,dƢj>;U !\x'6cz~*xZ Yw 2M[ayzUWwN"01^xK/&~9|ɰ۝-ja/{`T4O#=z*U;aEvn<ѪrdWfLZm6񣉓]oU"z'89] 'Zo6Qd|LCha.u)juWB;2ѵ/uz @&ܨ)W=M,[ʚW*פ;bۗs3qǮT` *|6{}W6qP]r;P Ԝ~ E5OeC]*h[/QUHk]~zT3;NO> y}/S *(t{vdRn@/\C/xW?]h??w9GZ[GۏyyźKS. 2j8l&3xlіh1zE My9Bڔ] C,׆?Q޽tV/7Uhn`=_{.%byL3X-=^J`Ө @WӳU}7Ae۬涻χ~kANfLنS VBU60_z2JWqM̌m! 'qJG#~iq> CJl}WR͝w!F+8pMwA&jX?FYsUJl&8vRVAd$d^izڇK `Xޏ&5Għ_zze, C 5?oܻ4W) eDu32b:E,D&bib}zg՚14Vg?Ry䘢`?wu15ayqPx}L* s/_c3ZڈjQmx"EjF0%&S;/^ BZn6JmH0EPŇسoa'pŠ{XؓmXtG1ƣuĜAFu ,;o GLU(!'Dzgshd$)uQ@O @דb\K9Zb9D "r .drREn`増C.?)]՗l$f _> YnT 9eͿ"PFyd`VTͲJKvbabZq' vdʼX6s(x>av3X;QdzFP33Ô] FR j[D䇗uض|fkJx-ӳp<ج3^`B|H `=CC$l9K$] -@gn+z}C(9ʞmDD Y0H'eĈ!d_K(ku6Yle_bBckߩzo}~LMD"ܺXHɹ~*3YyloWU tV|xMM/k(FԐ2Qd. NJ s-hz:qyo3S>Б4-Th3ʓJJtd;kP2gG(ag(:%*;嗥c]4V/tbw_>8e~Va^%g4]yo(qRp 3{ѨsH'kR"7RU9jqW4D=Ծ[=ӕQZ./>j%wIg9n~b0NF'ʡu}shNtWؤg"N+]Ye&v/T9bP /Sf%:s1Kb6-ǖ͛0먙$"k3 "|\1i3U~?(dpf$8ybDN`k?n+%}."|=PPCѼZ+Vj;B i5IEhVSE`<5&'l=Q*.]6OO~c[̰#T! fỊq= RZKK9-̝7q=V]`~U˻O7usfޏAZMp/W6dZV:f 9 =eFg/#6ԚD)J̟CZ8r1z^S(O`d:W57|ywᅧI@}HD(m{Ƅ #'7o;LQUj|A-qPL3$0I&WJi"lN 0UWg|Tnt~I0b 6%h-6LGN^[X-Yi_&I7d4U>cYpb`1Q5d ~' z@f,&xa=QcYUu~ ~ c`prNTX ^)2l֕QN^;rKdLO$W [a890E>bgfN=эLir@8W dbSF̠}wy7W\V5\]Z} yE ߳ @)|U#1|XA(s ?l*:쟪[Λ:/9/VMvHɶ?ϓC~7GN .W.GϚ!s*%=ޑպ˧?WYf'4  O- =!iV};y/m+z]쾫"}>~/bQ㻻7!/;"?y:d IGBx 84_kZC/ϵkTk䜈2qіTVmi#3ײjh~~IqlF{`_h4vS%TrMԓyH1(ڍ="00 r#*'c.z!{}䳹:ǘ ޤ̌ "76e5m] g\8"\B fPD,Ni"p $3c3ëEoRfeX+OFk5$):=I[+uy<9M oREy =P۳Va^A|`ko*6xqb]^."funDEH;(jC׻+ci!k*1Mr%lh-b`C_Oeze yչ̚J`-9%$BquJ\/I",C?>rrgK;v^cwZg[*!she;( ͯXS锾 [25k#E`taH=\TT# Οp(ϴ_֞y,zdb9i(]xyogh(s,VH UIo湪ǯ:Q 2 DUeߟ~ݿBX^5 ͮxlBTkv7#q xl{r/j 5Gbg?op"ш@ѱIp6z{E!FhDՈP>D}$ia"K7JB"ZL`^j| iq^}zFQNJ4e}>յf݂P׀,DdqY )}pSaiiDYI R}'5uvs9udf*No EѤEt//F!H`<%g3gЦ-2槲8pm5#ЭUၬKLJ>5Xװؑ= D662:mV[전ڐ;nVxdCS)oN- tma֜+`'#W0phu%,:F4ƦDŽjv{gIUOpvgꓤ~ MxG$!q "K-}o~[?ؿyAUT7~0|NKy !Y+`I}Mh^"%Vq콸yg,!m`*6yYEp] rL cR0GOE?ݔSC%Ka!}xNll6;^`ϣ\a!x1S$X I %5cla9BncgߗL+(I@v #_lg Q204zτpGUaWsʢn?{52'/b7߻~OL0̦Y^ M]'iqg(l8Vd#I~V="ڕ 2htvV6rkIV\<(79] .u)هVv V,cұ)8 <_Vt"->k/!;F"8GM^¹ӻaފYϦ&f) zrw2ęstQk~f2$uۖzngċ…մi("Os2J%FlHzg}#82̀W 1 Ұ^!ꔙ֊P+wԒ9bE.qnosQlF& kyۖZ3E^U,|_ĤbVuu?iaa1ݽC9R01m07pOÙtG:RwRg/a -2̕S@a&< LTf >vc-}U!DԤeRi޴9Z!d9=! w%/SBFeί韎Ьd"EZHH VE Yxws.2d7P|4I:8SևhnfտP]@9:~e2E} &9i+sJ:)vVPpjiy3y^.P!>wU4#smG53zMUS +M]!53Ꜭwѳyo7MF(v(B'w!B5#J.Χ/k^"n [HaB"E672_\fjD%lP3]tvɌpNF qaҢ=A)sf6iDT``=F\oR4mFwܹe. :ͦݢLkLV֙9R䰕0 xxbp9G_McOIow K~og!L8[\nɏ Pj~W>VIjqPf^KsZo^~m=rszY6@hK⠵Spv[xڣ7_\yCYg,7.oOs\YL6OƗ5?*͙N: q_Ct1I0h{r; JR %۳w5*=)v* Rv+"l/pq?٢"haӥ:rqw tL&7 J ^}IF rY f)GBp2tAXZ}Uj3oPnLT9x3c"q~O,-Nf5\4ܝ _bYW) 8kijIɌJ˿!:5i,SwNwjdϱs09-+<{=+l#m[`*/R+dƉ꼟cKセp6?-kmM Jּ҄l\}M7M ׶$3(H) ;[З[~S0.7I)NGTU-= z|[L~ϿoUlsO!he#QKÑܜ!їTCwL.TyҾ։T5&+͝cf9q>A [*,FIWop=c_=D׿T fS9X_𡰈u|TʄCXN?;79"`@eq_\WeGX^,v=Qu.6ޭ*p3da0"2qpԝS @f7퍢,{1IY d$1~%{'WbQЇ.6N\ 8{pj7d%~nt8UTUY\1{i~`S"@䱢I EN) nB*A wys'X }٪2t73i6Ӻ^m;mlKa2 :!Zr3*ߌŭc>2E M’E+b 2'c9YޕGC) !BeKCI!dC&Y*ELֱO&"ؙlcI1>;{9}ϙs|s+Az. 2T68Jg<&rp StD1Z(*?TеbqRi:M?}_YjWIIPM D!cDr:Fx@^_r@umb}ɘ@7I!ZCˍrATG:o>G<30G^JCݳjmw{#Qu%}lU υF#іsXPA -x*!|D*@sK͵ezXztw?YcV~5 oM1?K{fSWjPL9䌁N@N 3nXi~FWT? ¶W`۰T{8DY #X<,h.7ǐYb~dpipia0]#qeG6r8ҐZ ٳi5Obxȍ~䞻,)zá̏`eEgEIxxA:/&c-k]ˆ<-&|hNK m;kpfڋrT>BY®Mm9uxSs4XLJF2yʮx ̓:Hֹ鬰xy83Y70_hǙm2kC)tbKo:0'iiQQRHc(He E{4f/cuh݆{ifxtaDk!9UO4ޑڿ3@!Es2vա 4W%wg93b|SePVRr8]- BuH"H݌dIhΜɩj&HaM/ W8g[w$K EiA;s 4[E^AQ͐<>q;u ,I]Z%#R¯^x-ttH'9v,3hĢ3.2Ty:-~,!%e˰| e͔}\yדI 3ā _W?L+mE&i1br[gw٬\gSyiӈV0=yHkO~w4)u>oRLNSϪk~b 0 aoYK1Y\uJ\LX/8sxz=*9Xכ^>Wr[ti(jLzwFLb~1&2??6~&ʃvnuLlYک 8<(`K ܐv07?3'OS>>~Km1JxÄ\=,7n NxDDۘhLLj<胊>IM  "R[`%vmQ{o6?CU/&wx]v!XcX\RQS߰4=u4jUr,ð}8_;h<.낳;O*1l^;h اfDZ5LXi -r%MMD.msp܆״b?gZ zwzYt>"RqhN1PdgXj&$2FUJӑp^yŶ3WJ>[iIj< 3\W8nO tFW"ei UDۡ\BDjz-T=sU=yj^f /GY$?UvZ蓵"μ!c@$BJښ<+k{??VY$ RM5} XvJ?Jzbf[en *~1̾OY3a\~f_av$XpYR_8IӊڤGuӀT?*EC-H`}+}Q+ -k qMν5E##$nՃC=rz4 ~-ƈa'xJ>X:[4^;R|p0ӖL Lݞmw&3]މv`R8K]X|h;KaO[L1e6]ʞJ _k_E[x9LLn\Ф ş||Yflv&K㘽0ӽ ޮ\+ߠY3sV xeWou9Ӱ-lg03ooy/i_{l<)Lbl̺vX u7[3i$$W׫5oSkL\FkW_nf7ZǽS0c-"Z}]_g$!{kT+Jk~䒩S)G "tPpY/i ɦ1m.Hu98M@H>'`^žx|@okBM'eӝ<3'Hə|❣9z5']Ė}n^џ*/o٫4`7X;u bJo K^=g$sH$>5Rha⭢.!=r(f~R;V^.:$:m|qF'DZ#\2̠!-\~أ[nnZvcV1^0E6ݥ"%Ю.Oo3̏%ꎰ7?%va w2 |.  iqE72r)pkhsvY '{YwEj#cD0Z"H.?Nt1|S;wecUg~s·,N(#I n(rX-V@Pb@F+hQc!):'+`;< Fe?} ߟP<ߑ2/7cCo[~rAC6aIG,}4\6b1 ԰c{"YNzWzۜuBR*+SIRԖA`eqv=JdҮޚ{KA:7/Kf/gq&cJ&Jm> =R#>k._փ$Rz(VNwe=ٰ!q5pE(Ļ4"ki[[ 2\J3uB0FnUB|OΓ[ݣC⟋;UAWŹ^i2Y,v Ozy}Ⱦ"%lI0iI9hSεC񋻃C9撽/{1%h>F,R\+(u,5 A'`ǻ3.ށ Yn|$r Ƴ_̿>ړEL|[^Cg&pYu!O+jRe֏#eaw"(gi :ˤ*^-׿ J뀲RP :&:oA#MiA"L/޵6pv*1 b&c"b1uU =4{5$uK犴`'[-E&s0O\:ZI`$SmRλG+=-`Q1dW1 uؘ6$1*0OÌ-}H5,{{jA=XL[=d8P,m:($aBSɗ3-}W' X7C #ATr1>5;+|vC9I퍽ypnaZ\x#d7oPujLo33|#3k-Ei`eoN7 ~~a}ތLZ(Q%H g,!%A;2Xŧ5k5$^ ^R$)Շ%pYY5 ^59S72̅ jS~Om+i2qkCA=vlpP%vZyע0n=Pz^h7VJ"Pc K*z뀥ؓNBC@)mjH!eEJiis϶*NG6a0, IemZ|));"ZVA4.eۆsFmr'){iӶN07?θv/R:ъ*iޒa-geme[W_F? C1aj4Ш<bcLg+!N0ZV;w?_; !DZ\~M&U>h52냽1yT,(ejBy}R`wP>VIu.ke(-cLJ~A6LrŒʓu#>kC{Bxx[W/3\`7;{,2oSDC]U>ޟc>&%Ĉ,3pueG\o1?Za.dyF>sU@ U-oCp>">kKsN|[gA2Jjd,FdVmYUQӋ3gT> d:M .U +&oE,OsdBT,:`B5p]8kW+b";=xfIl&c .bYrҧ*.d)>'`tS³OzS@ȀWZ&Hn VQku)HD] <1ufb ~p}14U4]W!vd 7Mb 1rJ(drOΖ;SܟHk96È&1@~k9R8=(whoE>m ͍;(TVCFVxn2$sKg1rKn.bòZ#PLVp0֥kR}'՛IW*Y,~7{}4gxHRFdb:X AZiNI@Ki,ؙskkCHc09{,7Rr~ErSmiTCu6+*~9SØ22/Jrq$<NM}]z&RH񧖪MޔYj.帗j,CInG_^?@? `OJ_\@CGLtB#tOηtxs7: :|t~g!:tNvv_\k"Ї8gȷyQڲ}xt q-7M^ףvR:UF>g2%hC&29h6htcYuZ0Ue@&F9 Wlcp%g”>$ThycN,ůŚ4d=$E^^m>rVf- | !;$IXTO jd2%rg΅P Oֽ}2+*ǀ6_fhf(P qgڷu*RXm1'3k yʹmuhM 0(q]Փ+*gҸ\E`(ڋ\p,E&/.rd#nL4@J odWu>[ʻ^Jt8񨽎D{o"\q1FPr:wF4 0$`g{:X6)NoгSY6psr|7_[?0(6h &VQqO:4"ۮρ!wrw"Q@1˔x DpFaM.5w֪'J]q\:nh$PL(o|V\vyqvgnɞ((jt /Z0Qy1Vr&VIš|W I6Ҥa͔Q{:9WmJ *1 Kl B#kq O5{q7UO2xӆ D<3DpP3\ˆRb@nKs{Oˠ ^\L&"'xf PNJ~#ia݂)O}*tޮάnqL|CݻJ%}6 oU}5r Tf#Lƃ䎤OZU}$+ 7?U?\EfmؿKruF =4&tz_`Wz k̾j,'Sslac<)ZJҹ\z&>(DG 5n?Mϯ Pp#ʅ%[̛"?$T5p|M1񈬖ORi %`qe<#[rT~LJG%n`㒨+5a/K_xŋ Kl]h l6|#O!zcC~gq,Úy&:La޽CYu5([i#3 ]C0t=h<AvU̖br]֊"yZci6 b'P °̈́2'lAOCE=߼1x[uJmZ&@u ՞s OBuf...Xݷ? pg}?cg+J}~ =wVlP&@A۽ Ex2"t?Am|YgHLltحP~(SxŢU//֎mcKv :5i]!߁@#.laO㚯Nʽpʊ M$ t|ԎɮIL hׅ0Lw֔'-`30B;NcG/V/{~IFR6=Zsh2VBF3Ӑ5xsP[@n-q$M8J|OꆈG~=y5W煢9^{1;f:rL#jz5sN~:XIpku9~-|_xTQD}t&ҸRɦ TWRc=n,QAoERXG3;xXkSǨ}ڲ3`TP%&RvZʬA bx'DD"ZAjgcxp5H6≑ y_oN-Lݨq )~78l\ϥl10 ΜKEty~-(R"eD bi&:襆Y%}mPx.%.nq=[[%w^-k.~$P𤰳C],hh\_e  +?t39a~ت6>N'% VFx/ ]aLa޻=10%&7I/!1sE\Bˆɰ ( d*x E!/~R23F <5JQ/>pWbՇ1m=-L92 a҉ J?]mTsQ(_t *4ů- BPnqFQ3NXXCe(cva=<mGK`'ܮ;.:x1nn=]ᜡJL=\sQ7s+]1l2h'Nj}0߫;w7^NT$\ CQܦ)3<m]˂2Ye{LLD23̔IOwx!V3Θd=R0|xu_)ۄ4tzlӘ /<7?~ڎƿk{'wgƯ?Ғ. MLF=h(>N>` vsjT"^O}y *nV`E848u5PdWݴ$ܔpHh̝?vP.İTgZ4='/D/]ڊíe8)bQ+Uʌc"p381L*TXNyْ~ C+ /U+`ưΛ' ngx7΂)&,1'cwBa[ Uvf!y kƜሐ-:!(.CJ]$% nƼ^.kORTC@їq9Qǝ m@΄gսRrޒ•v^dc3k2!t yH:}V V1hWZ2Zޚ nt`8PXpTL0U9=Ln~K;qHt]'j6zxmvH}=o}Rp4Ĩ UAqRͼ@I!My|9ޮ9 &sf|4笊Ic {5t/-K58ɨ֍pbQg# ,dCZ~#T 4.R[,,yP6}:Hxo 4I!=.PœUјl):/#*hw*e}&s#hw|@6UwPD>rO ,5VcP$1Q2qJ| D1 "0mۏ-I};p66  @ZƐ)/81 tlr(DMFOA]bR5> +d3A҉KEeRc<B33tciEŸ &J >~bx10%g20Rz?p9HL hkI5nC73ݿYf_N2<ȘxS_9/L)M ^?$8{ag@~ M:?3`f atñ3W`i@A; a*n*e@B ։m^47j&Yni1N,ɧ5 F_vC1B"݃l:1n\n<||%}IsVVw1,ZhY Vpp32&0]}Yʨ] O=,E,(3\$[!'ԣ ]a#û><ϯnr\αC {-?=`Z Y R,eˤDۏt,y@?8ہC[Nny䯷 \b0Pqr=*$^w.AVK? r~м쁬E ɀ gcfk)&" bxi%/~K ~?48 2A]8|q_znտܑ",q[l_*O<_P{) !`@JV /73,ڼw?< F*68$Y"Y9XD@T#ۘU%)ť k@,w@ h`]J_IENDB`PK L1`0Q]!nuvola/32x32/apps/window_list.pngUT zlA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<*IDATxb?@bb`@p !+W\OOC@(eq&w)$$#X9C‚_ ~…'0$C 3 C?F8 [ 1At&DM$eYAa EWl*= @4C|j1r@O`(+(s6$ 4J!dxhP"@!8!wc%/_0a`m $ @|@_ )Al~S20BWyyl&L,DLC%c|t('ABJ!#LL!B + $#_ 0a32 ~C<;R"d,,GQ`dNO`ā0@Q-Qiiҙ@I`4,yY0-\?fbf @PX@`D $ XJG1!(S`5D FO-BJSx,%<(  xcG@p(8 PP+ (2T2Tq䫿Zda09H;/(;gfq .h] hޠUdDW_ 2(2ACQ ;~+w7ؗV?H7 C̀U @c~b0UP ^i}u'lešogO |%BPuEEo iTZ  wÇsuͼHQ(c-t8,-e A4=X Y 0@,hb8/_1ep/#4k29a jN_b?ebW 13ԾyڵР,a4A5r ~n12BZ]bb `6+++ Ǐ_[\Oh9A4''7Re\9 onݺ:l6F #8ܹvH F񶅸X@QC+ ƁЀ  jYfIENDB`PKT^=1g(nuvola/32x32/apps/winprops.pngUT pZA4Qux kTS1Ah# (P@mDt)Œ܄FPP@K=쮧cr$@@岼5lg(n0Nb+ ߏH_t*ї|ot lm~J6;8ě~1itQ$+U$FT3EA{GY/E̠qvJWQ(fTw^(%5YjrдUZ7UTYy7ҏ Yy~ SCq : ʇMHp̂2WUIfF2uymhL -G8G ڴ2-sjX%= :cuuP>|x#Tu#PQqąO)}a7&\20r W>836՗ #|$ VmTاvH.Z쯮 63G-gz((N ܦ yX 34Oex3&{J/fk&38`\Gewv-DPH[A"0X떻,ޛtBR`G:er7;| ]PFD), 0PdVbރj,Or {NCP_G{>痔ƴ8Ʉ1*(x|BD vݍ2 ͂J/ۗ^io݈"՟}9CV&䃫EID f<ۡAȟ~qTtW"Z9 GMbs"7wmYJ Rpt5eCJxgkY_!jt0Q=([Aa6O@,S{밁ẫe9Ѩ7_BM?<1Xi+^ܑ&RTZG6hfD&*eŶ2T(r"+3{a,GӍ· {o8:LίBuޒQ/7j2]C8pFXR*z x[M6#-D Is&8!A4|$_ҹݲ|)]1N'Tb4 N]%OS`׀oPކ P_"a45̴0B,8tdl#F&Ctׂ;DvprK4/42۷Q]y<9Ov >Dܫ և>/`#1^Ήcvb*/m"\8`r拏LY@ڤȉͺVINy./ X:pU EOr_ᶪUJ\+N'B +wkXVA}U~*Z6N:|m2kR{nV[]2zty6~h!rrL󋳶\".I tpeAIЮ |۳)8K㟠-l#Ŋ,=8l![B3gz JDi_m'u'wM'DptdܩuSX}7*Yb @qbkz vOBO|PK L1rrnuvola/32x32/apps/x.pngUT lA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p @yX}׿ W2=x|z?߿gXư˗'D S?~}oX>Ë *\ Һ쎬I<~g`C݌a/]hv ~|"$|L7>ݍo LŠ&e+a#t(ò/G8k/_xlb!|dm2ׄ|uX@q31p32Hqؚ౷a6Ư~g@\".5u+n=| ÓV|?S.wO/6'Wuo 01a@ۧ8Ϳ ?C. 7W~o[F$_Nn3p(edsom^0\|Ϗ[VۃǿNo 0Bv,{hegfXOn f/g FF!fC1V2FIԻh1 ̺ X(q}f USeXpcϷ6^|ғ_X8g``eUgH1I@!030fPj6Sb|ʛOdއK\ , 1p0;xJײr2 0/_fl3Cݴοx0Tϵ.OoXzeBՎVl, X1(Y 0$Y8IJeS>4˦75IOݟ ={gCLF%6Jc˹>{~[%]Ղj=>|).8%طo~uW~3O{)]cbC 0`j+qG+_:{@@,CLPI~vm9Hgc`dBv@a8 fˤw?ZÔOLܳꍈisywG~9NcE]`FQՎgXư˗'D S?~}oX>Ë *\ Һ쎬I<~g`C݌a/]hv ~|"$|L7>ݍo LŠ&e+a#t(ò/G8k/_xlb!|dm2ׄ|uX@q31p32Hqؚ౷a6Ư~g@\".5u+n=| ÓV|?S.wO/6'Wuo 01a@ۧ8Ϳ ?C. 7W~o[F$_Nn3p(edsom^0\|Ϗ[VۃǿNo 0Bv,{hegfXOn f/g FF!fC1V2FIԻh1 ̺ X(q}f USeXpcϷ6^|ғ_X8g``eUgH1I@!030fPj6Sb|ʛOdއK\ , 1p0;xJײr2 0/_fl3Cݴοx0Tϵ.OoXzeBՎVl, X1(Y 0$Y8IJeS>4˦75IOݟ ={gCLF%6Jc˹>{~[%]Ղj=>|).8%طo~uW~3O{)]cbC 0`j+qG+_:{@@,CLPI~vm9Hgc`dBv@a8 fˤw?ZÔOLܳꍈisywG~9NcE]`FQՎ4I=0tobRMhq)xrظ?@ecU}A3fz*4亡:mn{Zv>t|! tѕ;Jqx'ObJv!H;lUZiU_UGOa|hgr֨͛Ŋ*1Jmj4'eK"P-7 ĹJf aBa9 X.G#gg5iQRr 9=g UIj]3Pi1ha+@F+'F,Tx'rSqݳ Ky\G&ܗ5^7^XB uXGʞ--uK uN5vUG@Tv'{8}1|e?N=őM=+*Z]7Q  w5]K~ᛧӀ-FCrZS0eMngb`Zq4Q h89I8˥=wx"\t/>TڪVvbJ?[ʴG^ W,`O9n9gCCCoxOAP߭2 hzp1;ķBZZQ[<3(|43LIlɺ3W[[9{_`)Jk!"_ϝUe rДizfV呇= -@E,1M%|LUnLH w<4p)zՙ)]Ʈ>՜8DHA0+AzJgu\F6(K@ؾlȫ'y%ŘjF;Ts5Vq0qX9&&9O H*qjH8a,H$(K/bc1anCjT%bTgskbUxhR?!HTV~G#o {rm1SSs:[=jc444p}IZCg4G.|bDY[H.Wٵͧ0,8<,-$>Mk,kfshrv\A{1o^(SIv=$dR=nu+ct%dc):)u&Ki_3pamV63ZOE:Ww`;<,mec3an k/|s/ܻ95 }udS{ ("S^{%?B7Ϣʈ}YF,}rL> ÅG Є%DSL5m6:>7DSCQ"ԺLZGMݪskqU w%]{P=N[*pM࣢[YiEaX,@,Q565ʏGH`b>^p_l;Lge-1X I" B)/͆6;;bԋ,q`U:CP-_r*zF&2כ%^c%?`"}p2| "K|XOr{g4#yh=+PjOG̴N3ےe!њF36:|'}^ oޭ@wsPKL1 ^ nuvola/32x32/apps/xclock.pngUT lA4Qux WgX֞aH0 0("*!QAPB,k+ZBhK  *H1xW]" I ^ ԄI?<{^ W`xྣS:ڵEL=BGLbʯ!AW".Ԁz %~Q?z, ](<։@h:Ed"C@ly(zA<,Yy]YP~d喔h|"]4:}aRCFVjjAIօG~S}T!Yn] 5pP -|Sv6ѥS"~ .:_JmFb Ր7^3ʔ"ZgΣ {qaMY#FR0[ɫ?h);v&g taHE2R<Ɣljonre]n8C):$4Ň bzr&~ {XY;5ն @`\Oaw%B+xnitFYݞ;T7v:^r<'7++ ,r<8̮3stg6/#c?tg׋"йqgfNyڎrO*'Ob{Tfr2d(sJVw7C8ΉDݎȒ5-ETG,_'LMrv9暼~K?hYOє?ÒǧE:[itNՊuX=b5J9ajĕu^mY_A;n))JpLkpp8#8 fA˹!_5hoؠ[e'᜜QnD2f [W/S,(YXW?*Ǘgn4A] DgW#܀Le W'twh6G6SOㅚyܛpȌ ,]OpHG&u nDI9=\Y#E3둼jsPG H~ٺz iUt Bk{pRyP*Ÿ7sعɲIpZY $PN= t _ΓuNg0ܵ{Jʸߑu71nL@˼R̗{h ]5Hi-m4pMzR}R\ViЎ^(7Ih|__+}v, =R%9|.խ?Bw[7y#hlV9ZXדٿ \>^[xS`!IYwe*_N TQ$T+Djc_.vG7.i56ډff\ȓ笅cһXy+)*jW]s:d;sy^v| V"bUb\K^>K' 231č@$;pX2)dՊ!7*!V5R!U6M΋ׇ'{#a?L]sőð$YDHꋃ]:T),% x!K[v=\qeaH5,y!-7 j6504_x#hh:%[1E  k683˹%Fd)4 .S.Sy`HtbFo>AtM|?}/4bQﮀ%ݝ%p >1KO'C njo;/]4;&p4&)l̀PEz+[&o` ر#=AN B\Xdm /!LU O[KЄ;=r gPim5 yU.XÄ rR[izj ѫr7 hbt̞FD1;W}3"x_p]F+$3qk044‰;Ds+xJT撮)c8VOIBx(+_arTC)wmL%ˇ$ ziwW@'ڳ>ުEY(ܽ.-Ub }xF)ڞZc] :/*.'5{FM.K٣ٛ A[ 8zSk}]Oh  Rm1eh^7OKݨ5],m+h>ACAQb#e)zUCߐ1}#| DՍϼ;ϼIq yD۱wm P:a薑]|}Ρ3XJ[p6slݏ`A!oq%Xt]3mgڢ? 8`|&ߖ߻( mJg.@'$%} ^AnAν Vg];t` UfnfMZPK L1rrnuvola/32x32/apps/xconfig.pngUT lA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p @yX}׿ W2=x|z?߿gXư˗'D S?~}oX>Ë *\ Һ쎬I<~g`C݌a/]hv ~|"$|L7>ݍo LŠ&e+a#t(ò/G8k/_xlb!|dm2ׄ|uX@q31p32Hqؚ౷a6Ư~g@\".5u+n=| ÓV|?S.wO/6'Wuo 01a@ۧ8Ϳ ?C. 7W~o[F$_Nn3p(edsom^0\|Ϗ[VۃǿNo 0Bv,{hegfXOn f/g FF!fC1V2FIԻh1 ̺ X(q}f USeXpcϷ6^|ғ_X8g``eUgH1I@!030fPj6Sb|ʛOdއK\ , 1p0;xJײr2 0/_fl3Cݴοx0Tϵ.OoXzeBՎVl, X1(Y 0$Y8IJeS>4˦75IOݟ ={gCLF%6Jc˹>{~[%]Ղj=>|).8%طo~uW~3O{)]cbC 0`j+qG+_:{@@,CLPI~vm9Hgc`dBv@a8 fˤw?ZÔOLܳꍈisywG~9NcE]`FQՎ P"2h&[d 11cd/Y(,, ~'N[ ///>1PNDp1p6c-qdm;ԴJ [ a8~82AÇJ ***׽r@9P6-Sl D)AQ#ANՇaȈ2ap g`aZO`)(A9LQQX&C%.^x/0 8r9 rU?V_?3_`Ie|y " |e? ?×^| vvvr (:%::ZQ^?EjuS/Tc(왽{ߪK,[lllxA?en%e /g} eҥK@~ iߺ?k:%W/:? ⊒ k^3|yl0}fA v( `mbuN@p0301\X8%bS,Z}򝕗90s2f{A]G `nݺ]r 322aL@H-"F`ch%ty =^>~p[w1|yĠh/.Fzzzl P9ʎqգ| d8ܽ{ĂHOW%yw2-o~IF"W?|mff- Alx?@9X` ;{ < \R o/z? ޟfccf /!?+6Lk.ׯVˀbAr0 x`eQgSA/~[Bܵme %P6L `YYYh8̂󥥥A @L(`ה F>OaELA2É[neسg/hseGP x3@!%B~;Tc-fyfի2*s|-3+Aq`&Ldt9r^%Hb@$fy_E,ds^Pwc?;ی=Hc׭[hHJ"^3B\72u-貖z1t:8h+Wtm߾} L->WV@(2c޶{] /A5m[/^ޚ+ëa"ۋ0ˀ1`='q{4c-ge,1IENDB`PK t91=% nuvola/32x32/apps/xfmail.pngUT gUA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< CIDATxb?@bb`@, .Π/ ?%<< @(21LCab g|Ǎ߿{W X]$#c 1[UU h?:!?EE-e`(@,K@n߿B?#77;~ "GQpӧ/x 1; P`0XX\_MM' ߾a P1Ѐ p]==iAA @` #, ǫ0÷ (pY r?n02r#a(% , ֪ ?`w-0D2Cc;Ё@b1l~ bi !%_?e : 0 Z k֜gQgfx W>abecаbeafϰnee`ΒffP ^ͱ!l(z?02lq]Vb?$0'.%g<%^}ǰ, W$^0xaq3`X4/8@99>͈ꖡ,v=- Ϊ/f|#ye gX˷/ A2LaS \f@,;/ʟK^0ϫ]B!#-?fp!_20H}g0׎ l 70DY0\r!o v8a H*cfg`=_^ /e+]A [y aA;Aw"*56xH+?:L@4 +~yes1pk3i2ʿOf@#r=05 3}p:Y>}Ȑ;!aPv58}xy I+^|f_0(ً0et ;`+o ᡎ\!+XF0!B, @\` f?fVgE(ƭU n181; JB /0x{3h*38ˆqXYQ@`<q?½Y6Jt*,73f,< LpXA}3&1"WEV@#9 Ǐ3HK$1|ZO|b-GL>0e}i Z`b8toH1 @0!~p>>e`ebXke)XJ]~ ~j |b8!wRȑƵ/!U0C 6`y;~ _XAkaD8Y31a˛xlU=p.. 4B 2Ɔ9 ;P.b`@1e}57R[Oy ܼlV 2l  7?^N[ IT|1TT8x4 <_sbUCްfzw&ۏۼ\ :C{t^P[ ~E"qqS @`A'/F@ .y% SS}!)n>?%C}vc%$;@U#kFhbc#JsΙv]V6zM9|fvr@`a_@"#τ# '2@Z`e{?C|L ,Et[f<`U$ yƤ&gcb_[3{ P3;U_1Z( zl aq@!!JSdN=sZhj6PYE2k{'=a`gflh 1Esgbbsugm~.PD4L1|xsXv_{vQVF!F"u|V1CR@D <'B ]K9ڞpBo6`3ևOs^9O~1|ќ;@r9#3 AţFL1nK/_lW9(cS˫ /h112~1_~}c:|nտ?OQ ƁЀ /j$IENDB`PK 5sH1#wwnuvola/32x32/apps/xmag.pngUT FfA4Qux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bh dbbb`aaa9uyED589~ɓg=z|s>|ϟ?_q@C k,-LBM ydf/X2ʵ[ 8|ܹ/_l"߿6#Tx]b`6?Xo0dظuKW| h ѡ@,[)~/æc Ҽ Ƭ b , 20(p.é ^$W6qT^`HB ~2008VZ-ŗ< l  10r$ÿ`.?FW00 ޺/0{μZ._@L0߿cBah9#Pś - Ŀ w@?~3k\ 6 @#m ;߿:6Va gs1(0|Z}7?Y)F +[O~2y 321% ;LG^,DOXb0!_ar@  !!&,X=B Ĭeed~ac``[{ dw - *@yfuu5i9 @\\L_Fan` 17Љ .` $fs&)#)C" i17@pp I! ͈ @s@1+@G1,IAf`b. ~wϟGh9;;P?ABӿP⚁`@S؁{0K_߼y)@Y䣟!(y? r`b:o^30= w/={Ċ_U_v~AB#X A| ~6/ wyDX x.vWl(١ sCib=3ġDwoO3|޽OFo@p<}CG~rpl̨ 9#sY?ϟ`@$ O:ٵg,30\ _2AY 3go1|w˗ 4r"TJmѣMV-<^NfVFhBH.*2\8{ R B 7Μ=s;Љ^22s:2 462`g`d6H9#@C'2իW * VV60Ï)Stn8g@,Xľ]xǏ/nX3;f6p '0}?p…o#!'eo gh̒}m1040nc///'+j/ իמ<~!+{moGuq8y2ey_·-KڀD 9rzlllBB@v]⧽I7/?c`d`0ƇÅ# 60%TɁ/PT#G#h`f`=.l6s?U-F?KS @ Hq hI!U+&f#{?f#Rv%5$$.A/J1(&: ܻ5Df'92ubU _ۀAƿ?JBl ocx7' @4  jLZ(I;:(@dCjvc\5vƈ?3d`8 l z9KX `59%IENDB`PK ܩL>nuvola/32x32/devices/UT @VMFSux PK|A1-V g &nuvola/32x32/devices/3floppy_mount.pngUT ]]A]PQux VyT ,†A*I RADmSVjJZP1' PO%4-XEY< d7~3f$mrqTd! gmHbsN/ܘVA~N>?+?3KQnvj(kW=ٱ@YؒZ$ӂa<",wbwR:Im,2tcJ!D cAU(lm TխyζgdZ߸V`JiR-Oa2ȏXJy5Wi5-18->0n{ڸIZ31HE; G3{]f㛊~Al ?8S ]KqLj֕"9o;wN,D#TcU2 ~]ϋBhj+yʂqIJ@e}{xА%ˆOZZ>gfŊ˄6SHu2{m f Ǒ;U2p@ EHB s$ ȪN27CѸr~&ӳFVN <&6 @Xt؆ = y7 .+'@H-~dsQz1{ eAzA 0̜a/fقr۲@C7^L!DOWFD ,/Nb};Px3^ώVmr\sۄ0cM;3lڝ& )48@Wf\(#NYhW(Ua@8M#p=4~X񘤤<@1NIʛ-7Nj{67ɉyQ,Qf:ĂW.Jѓ'T/xa^H'!~+*ZZt0O8vUeNe4W_##C/rFk/x{7MksƔF~)UZOo0;2w|q .1eoXQH-n0 $Q|mC^"fNN@AQJ|$[/YjXzwD Sq7aIw1޶zL̳#^prMWDi_`yYu{C8%j)@7{ it\{$y中 f) x"Ԅ-;Nx7BuLj)-Zqxx (bB~1Ո&BX-w;_6.tm{KH*` uy5YQtCaL=t;%W$q\zD1^cvXWs!\k× b cv5c ҕAK)G䅐;w]gն[!oFfƓv`b<%hq$Hqܒ wd1aZ4<zM\ˆ.t{ BzضÀ},{ۃ:9_Vj2FA ?ݑnSWmR nӥ*?ܬxrhO[LAbgc9+x}7<}|xb*ə]ĠVyx@ Y⎸XGG$XJ6^AJ#[S|}ɭٱ_0=OVY^~k 1&Ⱦ-8=mqU$ם" a i <}:knC6CJ:|7.Oۧl٘S_PK|A1Uk(nuvola/32x32/devices/3floppy_unmount.pngUT \]A\PQux }TS77oPKXf(E b@'IVuƄtChit$6 ShE 4Bvs<9O}ֶ+#+23ҲQԀ~"V=#k('j2]UTWyDS^BA!MQavᛅf)vUz B6('@[\3薢 ԏYEjVaXObCZRδUwq@:2SI*1'e#Cc~Z(_+O7ǿnW.xyM>$˞qk!*{@AJZkJ&]WEL jpE4wHGe37ESܴ*ƍw4oE@oX=v37ᖜIO#)ÆDU(Z] E̷x= ^  b˷p36BNEI͜-8#=ߜ:nH3l컼A"(W@k㳠&N"zߒ+X w_̢F69V2@y*( J#yJGݍHMN]8%,&존˖s\"BOP;]aS#Kr!5~ѠaFm {pI.4qsW|g8s!o% ڸ$aXOz/MbhOh) l gqg1oR=(W:Ln \>Nܓs4x9EVF*CP6MY,pbVQd٤Zj3f63KtϽ弍5ug/mN.XIzS<̩Qw2BЌut W!įk?; Z?]7d~'$ODxV{67*h߯j}Y~RKUk1לGx~l^ʧxJGsJcf߲ F.uoh6pXeRmpan/dUb·Gé*}Q~eroN"RV WS*jPZ}O 3}[ePK |A1- 00&nuvola/32x32/devices/5floppy_mount.pngUT ]]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,0FNNfIII?A! OFFF_ٳgOݻwJJJ֡߾}RFld88L˳3;vaÆ ~@swuw0j bU Ąez/0t!_>  fPATTo ^ hX7PDr1brT [ d3% a ݒq; d&@rl?e06U-(@BѣG_~'b W'2DbC$2b1,}i а3@!?3 D XXXݞ>} J.o޼cpqa ,7A4HOgxuї |\"LJLnN`H 3q`a@rX{~|gxC'C oK &:el ,n@y< Hš ѫQt o|g2Ĺ0avz`/0}vO_@? =,AHvqqaaPPTd +s10cf`Y l@ ̠ | A9_AjL0(x5&i999~bÄ3$<2"]/û_^_%017bʪ Xٸ f5p6L|eVH]G ?|e?~߿?~3) Ĉs Qّ_A?@ *@Y =]0X3? IENDB`PK |A1UA(nuvola/32x32/devices/5floppy_unmount.pngUT ]]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb?@bb`@,0Fvv)))bXht6r衋h,fgbb=pӧO aaa"_|a`ddbb Z|pݧ@C2Ϟ={B$¿p a|bS\|Pe $L\Zj@ "XRQ!0K@S۷o555U_~Ͱgx}eQd  @jH???#l`K1\|rta Xe?#0GJH HO}.700CXGb!?P}{0$t9rDoQ! #YpM---%%%`Gփr }AE10;Vp+գ~ 7 ıaXaBq@?T`!qq @= nf:r¯_ۀZ?t5Hz-\PO Y_00p; Cß ;2ӌ|}3M=<j9 6H-Æn2fo38} 4-矠f`?@] V240 q"hS&E  /_YDǩfHI a>Vun' O9fϿ?1lp2Cp0aaG'>>hsM^ٛyNo:ԧLHl} ~ Ͽ@ 11FđABT# ف&=&CO1| w4ϴ {^ %bA+@u@a`H: ?p:J 2R ,,`Y)`9 `P@ACQG/6PC_쀿в'Љ]&*e`fb =`x8 ]=4BY!1=Qj]h R.20Fek$žɒ!*?x ?N1|YǠ9ν/?zTL=~ ;A P~?`cFMtwThhf oȖ@kօͫO]!rJy*<'e u # ~\#@QX4+7 `7r-Yk_?bd==hՋq z,޼<~RJ ^czR `MPKA 14ae0@Xͤ` Pj!(b˲8P/? RCS; )ph)ÓwUp9: RJWš5chF u,48_& @9Ѐ; FrRkIENDB`PK }A1nnuvola/32x32/devices/camera.pngUT 4^]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<HIDATxb?@bb`@pЀ; X@q*Ï?~JJRRY<-Ą\MzAPHE-?`)*%R.W081X^>P^Q^<`nnpEI IhA%@&&Vav (>Te`9{>8{p3ܽsXd=>P^X "!$99~/OT"@gx1۟ų?`jj. Ii'0'WxQQOٳ{RP H(|"!! ,EV/O:66V۷o&Ԑ@5rr7(8a 5 :N Hh`eeFk`AFF  !,D+z@iQ ԁݻ w<VR4  Z1*lU0r THJ*ȑ ϟ?\0t@z201Xepk biR@y +*JT1+#)jC0q?%ϞFA[[_%?gX Ϡhh$RRzvrռܲfV"@*(Po!=%R~~!P3hŐd3~k|i@1B-IK(F*@1t c@pNƙ2IENDB`PK|A1WyJ %nuvola/32x32/devices/camera_mount.pngUT ]]A\PQux V{\CrbriLJ@Φyk ᵼR˔:7u^rm&x2&a{{F}txʄmʩ/<noSMt,ҿyfpf\"K N`󹧸ls d~gh H@,@-"1 $Q#!.t0l F"$N!+o}-mfxwAPkY6ݩ &ȃ6ՇYDJkƢn^^DF‘OoMi4Cq-+6ɢү eCۅ\ *FE'Q^eʕ7yז 4Oa"`Ǎl ;$I0GtI”sv%=A{@_7FAB]z)uݿSݰv8ea /0X`EծІI1-i gSzw E4XiC|vz -eooO1 mn!^ 8>rJUQ R~s}nqQ-lmŢHn-=Z$:bW8# ~{2B7 TnҲ7TLd4fx2sm~]ⳟJZª=+6p6+ʪh B<*-(&*n:!vB2[U[>ÿ4+-rtn la 7 FX\]͔f_ }a$ ySB^8e{A&kNGS|f }@@o>t/K⺼9ryw͒hpsw]nqtI<.n微=mK?Cor~o#/? )qˆv'M};h+)d95bƄԜ䥤TjeAi ZZJ(+y^7?@C$ߙw%N㩬/{~=:K'7Kʳ+7>m"krw߈9;'s}3֕&:iLAz%!6;J<^-(B0B~3=7gln C7 4K[F:\Pt 6GjkNw0 {g̺y8ŀNj!YME?komf ^rR#ahln٘[MGR,{u}@l36X3{Qw d-:ӻ$YRvBM.0h\!խy޳t%sxr?E^X :^P _tk Ϧn&ԩ.ʀc7i_ɡ`W9# ˽C [׶#5sZ'y$bGE'8lU!;hJY"IQ o!5ϵt3$͸[y(j‹%66j!j S - <-{^vG,q*oٹAITA>l";T7&~W)B F2aT e zΘrYUw`L9aq_!iFK{ ydU;*Y&$}(M|,,VPK |A1n'nuvola/32x32/devices/camera_unmount.pngUT ]]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<HIDATxb?@bb`@pЀ; X@q*Ï?~JJRRY<-Ą\MzAPHE-?`)*%R.W081X^>P^Q^<`nnpEI IhA%@&&Vav (>Te`9{>8{p3ܽsXd=>P^X "!$99~/OT"@gx1۟ų?`jj. Ii'0'WxQQOٳ{RP H(|"!! ,EV/O:66V۷o&Ԑ@5rr7(8a 5 :N Hh`eeFk`AFF  !,D+z@iQ ԁݻ w<VR4  Z1*lU0r THJ*ȑ ϟ?\0t@z201Xepk biR@y +*JT1+#)jC0q?%ϞFA[[_%?gX Ϡhh$RRzvrռܲfV"@*(Po!=%R~~!P3hŐd3~k|i@1B-IK(F*@1t c@pNƙ2IENDB`PKwN1_D ! &nuvola/32x32/devices/cdaudio_mount.pngUT 2nA\PQux yT_@_1_ER+J,Mҙ4Q2jiVj.SӮb.`-ZΈK ?<{=~ܛ|ѲE`A?1c#.G&w3 )~SB8)GflRL)hn\H\tlf/3,uA2Zـ%ιJ!amY")+'-r1GhʘqV\vl~adb$I!y0y\sFYvj3-4Cgd'ż(l/BBA_PD 8LEkjʷ3ʷ%_[goe[e5Ȯ3Ä>ӝg'zX0Asdnvzwg{[J#WjˋVF') r)\D"vtK=䞆Z$Kl43(v y/tKi;}E9z5ӊBZ>9:J[ *AOBA̚3/Vu0PGR#އ˔ ?WYRO|xrBarVT3N^Kt; \y?!qߚ9J ٙۥ._xM=oU_?UGb;t6{GU8 tR W7H!6 r4*7>v3Cf0{<|7'r9@M;A MjR ,N4} L-z]FԯlcwR̃u-y+^r*mБ=| )+> S|ÀI6`Z 6[iƱ/n+:|_J&$fItTu~ޗiL 텝Pc$lʅ9nrFtA}M/JJU_r]tt>N\)?l&8}}w F}K!m(|‡TޑE ' zY/|PDfi{AsK 7):&̿ '،jSN\_\Kb[Z2r@P7SDo A8,u8ۇ)ٱh6ΘyȈ Ng=렜= 13- MtuanX A^Ҩg%)*+7n Ed+¬Æa]nE!$ݟ7ާHzzK仁'q;HM^#-{sKk&0ϊ+U9DÕМSzw/P@qy'&P;SGs`zS7QJh=$TTܺ5dIݶc~TgoXSntNрE'Ne7+VC33gTQK%Q 3&wzv#e&nVU-4j Zl("9&;:{maj}9\WR\GEMfPgȟ5`;ܜ0K`WqptVd Ȑ1TCe`x|#0XY2=`V`ePb9w:Cc|CN2x[3 G,X  Y e`8} O;b6 l ߙ1<͠Б h M% Q =f`ff *@pppis6JQq?`  :_?0\ 2> *f o0*f3ІoP!'O*WDX4Ƌ<< jg#@o^20prcɰiKrsg<_Z'?!.ypQo_+29?Q YhWP (`d1?0{10;m>|4֭/~ ' G+ȼ, nHnec~^1! Ϲ> &D?0 y&/<<LM254*cŸؘ>|dd`ddQgo w^֘s~v/. \o.'_>ebB z ܠŠyNk{a3?}ïp?7l *zAҊ"; W_dd ,遡 hbAd_l, Q ĿAL2:u`AYAZ)f+?% 34"W;.}:W`r3:ǯ/@ۣϿJU&`PSOhq C9i``` p ;'{\ oޯ ;X+@Cp2<Tuأ[?L @p{}c/n^&.A GA d)+cD2/c0A'Z!^˝/_?2"/Pw 7cPa̕3EPoB* }ݻ2pqA,$P`®Z- ZVC@AAS_Z|`bd8p;،{71\9w.z 2 !g`(잰cA46"P?eQ Gw1,~ V,)ò>[0|*#'@< 7_`x Á׀Yw߿?+ 3Iw옴pHiw7fb-ל_Ll oM%0ĿA&ms'[51\} J 0G,y9ae(i&?ӿ=^@} 0˷ONXiŬSP ,|`iA0=dwV2y rFF2SHD4vMz6yvO>ŐǓ>0_CR A H87V} =P -"Th,#L{gh>Kh " WƛO axϰ(?[@N>66j|rB ښR ?]aXtf:΋ 8 7`xp7NA=6$3;3('; +Oo|{ϯ7A V@8y9~PR&d!@iT V( 0? 9-IENDB`PK|A1_D ! $nuvola/32x32/devices/cdrom_mount.pngUT ]]A\PQux yT_@_1_ER+J,Mҙ4Q2jiVj.SӮb.`-ZΈK ?<{=~ܛ|ѲE`A?1c#.G&w3 )~SB8)GflRL)hn\H\tlf/3,uA2Zـ%ιJ!amY")+'-r1GhʘqV\vl~adb$I!y0y\sFYvj3-4Cgd'ż(l/BBA_PD 8LEkjʷ3ʷ%_[goe[e5Ȯ3Ä>ӝg'zX0Asdnvzwg{[J#WjˋVF') r)\D"vtK=䞆Z$Kl43(v y/tKi;}E9z5ӊBZ>9:J[ *AOBA̚3/Vu0PGR#އ˔ ?WYRO|xrBarVT3N^Kt; \y?!qߚ9J ٙۥ._xM=oU_?UGb;t6{GU8 tR W7H!6 r4*7>v3Cf0{<|7'r9@M;A MjR ,N4} L-z]FԯlcwR̃u-y+^r*mБ=| )+> S|ÀI6`Z 6[iƱ/n+:|_J&$fItTu~ޗiL 텝Pc$lʅ9nrFtA}M/JJU_r]tt>N\)?l&8}}w F}K!m(|‡TޑE ' zY/|PDfi{AsK 7):&̿ '،jSN\_\Kb[Z2r@P7SDo A8,u8ۇ)ٱh6ΘyȈ Ng=렜= 13- MtuanX A^Ҩg%)*+7n Ed+¬Æa]nE!$ݟ7ާHzzK仁'q;HM^#-{sKk&0ϊ+U9DÕМSzw/P@qy'&P;SGs`zS7QJh=$TTܺ5dIݶc~TgoXSntNрE'Ne7+VC33gTQK%Q 3&wzv#e&nVU-4j Zl("9&;:{maj}9\WRlb!CO^@4'N @024PGVzeˍoyn_>|7]97GAA!Q cC x8 2]b8r/f>cy{|VV#Pɷ2,V7<\0O00p kW<ğ?_@v@1!ga~LVZş-* B@ A?~f``cga1`sgddCv@12~Wh`/cr!b FV_f0130Yx{ 222l r@W'gO ;40X/"t@dgw3` Nggs @?/HUJWA>F[ ⰲ oDz{TD xxͣA )ᩈy*3PM`pS /00\>p&Ї ͞!30 ^:(6NS{yI)'&Fv=P xAoG7we11qp_.(|v< 3|6Pg>pc^ASANQS5/_/ D~k,ЫL ff-00(~g-#ås\@vZ;ظ! NNf)9Qv)]lbb\ (#@| 90.U3XdxOAH7`tfO@?CVp%"ʎw;;/+sx ] ׮}dpS~Ơ0I]9a@H0!02jXܲg;qHY- 1<飗 ߿{@p{e/, @%0/ҿ  }@21С@/-CY7r?^  &Dxɓvl{5b9i`cм -a`Pb`oAzZ&>3,vȁYw߽߹( 0eo22F ;htGv>(7B*%vϸ9n&66`Ny°n1_{~ ]Jn"@8m zx*0 1A#~|p[}02&0gy`IENDB`PK|A1€Y  'nuvola/32x32/devices/cdwriter_mount.pngUT ]]A]PQux %ViTSYpIRAHM*(R "@UETU0 ÎXQx. MA"dQD$}3ߙs̏9|0 _A?ag|^lO0RSy4Ή8387xlj=8}S^4ϸH+8xP@ώR ?HQNY s-s U$w:/X .2OH۬ ?\I.^[ ӟ;%埗s%@lDЊ\o"tP| aCvUOҚ1HW a;2#BpԷ"J~ȇYx3Tnk1M5pFcqwI]c" #YmeB[ciZu˿,7 򩸔nX8&]luf(H+lls,@q[y 67gfw3߂3PJ~{͋^|ׅD<2sqD? w6t^`U}?/&~a' b<}?QW64?5/{.hĢNow(| q Ũe&=ZZXs`JGж,gV<,B2pU.e+yR뛿|"""E|'e˝IŞYsU\Zbo9UⶺCʌVQS Ra2a4 UXV@\-=Ԁ -]MP ԕy?w~nj骷˙^;f6fo1 Sh= 3ynywG']i  &AUe8[2TŐ*%7fXvu-y)d2ғ:͒ *f Byer-;%Hp _CP#!l{wO'uAe³TXi$Tw^&"ҕk&{!}+?Y ET4ǗV3Yu+.i+.en/4Y6ޜX~f ^_@]鋙@J#_| Eu 6ĕ# m-Ʉ G!EpVh=SEr]R[A5&0cGKzD]L,&:=hwPK |A12!H)nuvola/32x32/devices/cdwriter_unmount.pngUT ]]A]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@,0F%j$W110_ Lcc*~x Nc8u#wt@? 10fq8yJH) 1q1p2002 o}J7aW~5ÑK FX<%,M8R\ $0~u ÙON׍='N+6Ng`Toq[&:78&~B-P/(LJ3l/p;&axr5 12]-6u'4`@ CNS4>_̢3l@30,rjZ)x)ؑB8Y|h2W[z2y3 _ kꀖ'`dFCb?00011Lbp0`, Rog"(A ?g6CD:?;NB iJTCA} ԀhAApALRW&("  BYE@4Nb934Z f pPYs HAdGHF lNN, z g?~9jzKȳC\NX5< 7@| U/'0gX3hhH3h:DZ)2|͂Av L00_12pb`Q#5(cXdԅ>d @`cf`ߢg3P(@r =>0ܽ Og(0܆ u< QT_  xqHq`6Đ_f0.qmƥ e?R@q– q;$N i>`¾s/0Lɫ{XHCX _A3+P /F/$]짻J۟\֡@AQDAT2l^Uv_!ùЂ?@TǷN\>cS ?d*Ldoe2 d@@ ':wx۶ @E4)3mjhÚK ͹:`vkXD~c5SG R2BןLj#C,^_ʰkcؼ( `@ V1?CZG_! @|oB (=϶=( CU`3dQ@匌X .&1#;T@=Dii~``ԎHhmo3\a}1,9N ~n@u2brSe1dvtVQfeW,e;|pv_{p4E v$@8edt(+JvbX@ax9o\D` |P6+49O<J]9oIENDB`PK|A1k룈 "nuvola/32x32/devices/dvd_mount.pngUT |]]A\PQux WwXS )PK{Q0 +EARVEA( JၴSO"]J h@aw\Xlrt-ܪAhPn/"( 5w|>s1ƫXge?2%+kf libpilY''ŧfD'ؤ8{F'=wV N71: cJXx>#9ˍ*}vKeBa0*!F#C/cH IŢvz?R~Gq4b t*u@A˾եY nSɒf`ho"/E\wJ!yRY'DNل}Om b=xHnVذ̼>ykGuMG|H5UoD;U=LakzB |3>y׭٩ b h%Q>,#: 5;jt>J"B~C]*AKI^finw~!%Q6&svDp=&ߞ%Q{%}'gz 3`L9sQ,+kxW 8",+@GniH74VFc'W >{c&"7Ys՝uDfa;D0bԮe/ !S@*ۣvֻp N͈5Xz]C~?_@t{zŦ.oXsD;\CD?5OE[`(ǖ`]] 4[C^xS3&;'3d8E99dGuKigQ^IHQpbeeE ;(@^jo_\ Cu7V=liwFTc v!::2]h~꠰߸ZZ@i+*{Mq}Xt"e3*"QXD܉Lط>~ ngC6뤵*IJ7Ɨ䯏'Cv^կ=\,C9מ<-$MyR #~`acދ"v@Q8tZA( gllGTm[Ns (qL'.bj$U u@P%dW*չ(4 ePJ!}Nj1N}K~aS^\8h.c_6]Il_ AI 7h{ 6;#1iW \k0x5R"xVp+jb# +l~FO,GG!?~;F^$6t,,5P]H P]kG;DiH"nbɒ CyM-].ke֍gdam]ݥ䳴|[B>t[GwDoY})}S*^v-6a cRRz> cAt:$b}1 thq2@4hUVtc[.1=߉Rv 0y:M}{O7GVt-M977Z8Jx@otfVG@1hF}t%}!&ҎY_"Y1Zĝ/RejaPU?!_ { C Aکў$S8&Jf$*mmtiK$p|}ޏ]؈S'mH)j!ؘGZ#iKEB&?yDXb 1ҽ7w;RTbjr0:gy`#:>g G.ř'%}$:{<"J*88a|*Ń0L#F fr@= UTg<:i99+̹!EVe:ꐪlɡ2K‡lt8l>' *®- mHT [B=+'$OfΩ贍=gW&s^W+R""*ũe}nN} rdse%lhCښT6.p%7l#7B25QP *X$]`n Js ~^ #\\-Q ;ro&)f7g9S U~CyxtȠDÎMp3)۷LKZ= q2cb ,ߓhZ엟.0mk#g,G~ܽ3K%ٸ `=ShF(xZu}H!04CCGc}M.?4vbcAZIIZ&I'OxH25mX_/V(00ŜǧֿE<[TWn{ ?IdEt,.@P g*`EMWBz!&MzX~Dg4Imͭ-UrV4+JIj}SF?ls&絞^Yzsn͗Et*spQKV>r6t%MRTYij-Z g \Qf=(WO@Q/ϒd@`CϤf5~2!x{2- SW _|NGKyjOfY/Iω+ύ:HACڬջccbZmB3Sϛz~G$/L{@NO&ҳx{FҰFY_T7խ^HgdfQ䯶[+ n7X> NN8iϱ66y{^a x /eKd&-{.RYKyz&ބ-⺝u@8K`^ IysnJYē]#r3pBA^%F^w^۹cت^o ui~ؚ̮%WԏtMM`QgwLj~Lx7~K9} |iuY|J)\3@M4w1Fn [w(f̩--C=I8ѭ~ #x’ 4׍#Z COGdd =x~arJyߩ>?^۲~- jSׯF4[:+B2f%o"1rr_͗pn$0Q~̉Ic9#w#..6ݫD0H'Cnɾx7qCX_n#Q.{k[9kLkjГvA1SVp4~q^-4PegJۊ_dPpC$?2T=,cqUªjr48zHsڮeRuSa}FVy,\LX7+F](|ʖ)AEH!RN o}uٖN%jJ kGV)_<a;6U[#M_,SLjɋ8%˝\:6m SPURtҧ*:NSUuA7 ڄ3} OD39]/OP QԿ u5ߦCeXż_vX)s Oo6 ?6er^&xj VϺ,숼rVՃ- VµB >u *L,@ )$P^tcSJ3J~&ݽ4C@熺YoG.?^YB}h@rz_ `dU_&?:sփ#2W{眼mqe\]^PrzS!EpLkAT`w]/g,5fp\.7p#[<{[Z-={8fŐ8ځ,HW{p.Q1DR%Og NMBnG>CΨ]J".Bx Z:3&&wXSМ16tTW`d3@ oϰGbX~OtUEkv?%4฀CP]kE~=6v Dk o+eWГPK|A1Q&"nuvola/32x32/devices/hdd_mount.pngUT r]]A\PQux -VkTR>$MK{g f* TH uGVjP|ҔZ&ӵ)I{t-!|PY:5G腊^kַQ.'vlqJ֠%g~+;\`K^Yz[7$gt^*7Yr(vj(X'#X|3!H< L;@ qՀ8:u~)wzbYL /9,#ZU M=_7okZ)w!1 yv! Έ|LuZ:Arc4WGydcL9YU.`îGΛ?TZN _fD}Ȉg?ɌE=N6T!/M:q~Q8AD,}4.GDsO{EE(@̢ 3MZ3TTUK F3?A5ʒaiWL=17+0 k 3]ZKv|&O?)Qȡ| F[jLpgMbԓ.P( L@@W԰?L5O,YEm# ?s\tXβ{lqK C 4rw-4s)L!<82{fYaN+T5~p8c?Y ȾddMN{rr_0(R2rݻ|ߠ_QSÎBҖk̠ٺ" A<z"آAqCMC􆩾O.Me:yOJ2I}[׿ x6tLaQY][^/I8"S26\z>8a)|mqf\jK9-P},ﶎG+{KBҼ5dcx*:hMdɥMb`ǰITlAh)1Z?ޛ"`RnEjI7%88~SKu*FAe d-r–ɆMf(,CSReёKP ]OsLweM=SL27$n&Uկo]-3 v壸oMӯyGX{FV˲޸l:qn:,8hԣ0#WNu/xDkpٛolH+QC;dXs#zh"o$+ ^soSdd#aQv]khMq)KR\0JnMI)zm] } mAeo:![&hP\j4*4Q23>F/]#:* WAIjcŜU[dR-Tpk HuM33(E}!_.+VFnvǺmd A?x@2 ڢFH5.^ ?o\b2-UʡNaŋCeplvb\u"w߾pUj ~ $NєC65 {0ڕc8P̝PHԡ쇛F ?ܿyA'ypcs3pMQ\s?Lb011oO$ w$> Qn\T-SGaA6&-> 4$초igD}U{hop@4wS swlT'?GWvދ%]њ:UF:qs'D f:Y{(3aYoʚE$,`-}dr$r|ԅ J@]O7Hn,2钦i/&bJW[Φ=}?ozĀ^x2N$g7}?#Ob;"so݅.~&텷QA4yo/Ք6ĺ3v=FbE'.iyՐ\1q Z سD{ t\Y$i "Nobi|XVXOf62O/5_:T=j )ӰE.q%1V$ aIlfev3s"~ PK |A1V $nuvola/32x32/devices/hdd_unmount.pngUT l]]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X` //o0_nffbL,Y9ٙ0B 0# a`ׯOn>4ԩS-@?bHqV4 5옠i ,@9f @c8޽4 7H?@O?5r9HKi30 :_h _l?A@4h+'PTf/@))r8?(6 A9 dy%  YOBB`K  u 8#xf=/ !(*)~Vgggd`a&,dÂ`%Pǀ ##@GpqAKI-2ꋊ1B$ }!#1ŠPa *,TR @pp]ɧ" ( }Fw 4Mp'@+EExyd\ {) ~!*8@ α#Ξ@+EŕE 5/~')' M9?4#8LGʈ?̠(8ea;KR]MZ/Ï_LAA 4HTŃ 6c ))  3)ij(HHS^P e/ /P @A,\e88~@pjKJIB_ː}BK|f111F>%...Ma+YЂ@|8Ffhvv6)GA |,0 7V q&`A2`055a}.@|EPy BWXXX!@!%r}sd| %X3@" ]899^~G^^^H f@H^QQ,O#^a`afe`?_/߾1RxT cPAkA M@]u۟O ZbfTw .`v0-// v(H#C /=beb'Hho;pĹ  @7qs:çO_+f=2w_;w EՕ5tX#Z!$#X&%,#0$ezۻww4J"UhUI>(b!@ x 40c+IENDB`PK|A1(V,.nuvola/32x32/devices/ipod.pngUT d]]A\PQux kT5I(ALԀ(QPRJ-,Rw,AI@D"Wm^ *zIAm@AEF00wo92q"7G|܆dڣ¡]{NҎ'4[#؇ػpcj'¢5rUj4lu:3kO~: 1~RH(E ~]T4DS߱Iv3A)>H͠wΑQm7r r掚[Tv:|8݂oGEEc1pK$&꠴1̷xcgxgqXrNcѯ߄%=fCsk"w~}>^a.Q.'HqBk6 :^ZT.Q@z-wxqlsC KKQ >>1L?셔t{Kc’ĉzr>ܑ_0hWfCzNjy9&, CZ" 9YK8viE%sǫE k{E=ȚZ{ޗ6;gq;DűL *rKLۯc]..τVSӳ^5CBڽVCt?U; 00PF||@BĺCX4X 9$K};U"ƑXS% f Lsv!Vt"xbfG#D酟wف)gdհa.mjBKQ@|`MNBkvm/lI«B;gɏך͂Lj_BL0e.φH)Wt:xeM\/Ζb @(jzn{`wyq|,Dtҡu:OQCkZA>#q -=^9O.\0x/Qy/}[v2*7Y:oGLuΘKz.*3ʦyE塋eVs!_,'W:yz.'PK|A1v " !nuvola/32x32/devices/joystick.pngUT ^]]A]PQux %ViTSaII"2 IA }*DPR8B+(⫒`  C q@B!ަ8{^};!|.l9S=9fM6~woL;X)lJt&vrjNj-2#0LHI!&(՞66=v׫KA9bd%KH-td(ըdNgA$]d $<"AoTRF_QH.J;lVaEi SK& \41KP;O e.ǀ=(~GK>R9,߻Up ],o+h#Q$r9gago 2ٛ/e Jt:7':@9 {ooԭ?ˣiyD3M}~f3( ޻Z^n퍣U]jW5Z4yrIzJ x&u=n!+|= s s*E7ٖ?9Eо78[h1 PdddjllT |d=v(TڞdtiCazFI.!yOs5 Ɠ^M"r/xh>a`b۞IP(oo<,s(?ĺr J= ?;v RWICO'QY#,/<|J1ό{Z %k>#G#EǛWV$0Sï4_ts  K1ie^ܨ|+GPB Y1ӝ+EvIØkB-C($wesh[@zy|BuO5/J!#S ' 1Db? .<1ְTo[*#bAPtewt0T^ļldžS >>%G+6ԲBlXpm0NS1K^&T, c~oވqkIØա@&yƿEGo ʍ |Q3nok z8iYvԮ2s"o{ηAOh۫<2n-;yw%a{eI8:5vN>&u4Ϻ5? l=/0`čmVL|>,yr,ov![7heҢ1ВѳO7xL8{R8G jjX|_\r\3YeU|HM[uge!`xdeWHC86+~);?{8]+ouR 00C+?_6U&e,Sx uTo^S]Rs }'# ')n$Hv:̯>Fd 't7S(O YTKF^qcSnPu˄zLy]"~|ٮAYi3Ҙ7[K å#OQ=(6"5kWbEgvCxO2PAQݐ⨛!n 6-KJt݃SZ?q%3d1˼siF Q[8fHyF/AqދL/{ƹ&1rWѯʛ]!!V;"گ:1Z_流fi}q-#>dC=Ht4/HI,ȝDZ+*aFgrgF$eB)c']Y`1m]Wri)Ia>l6,5qfBz#H}}&Xb(>{8,VʐW p6'"B(2pO/=g@ Ku 8KۥDר߬+'$~,N1?Ә*;kcfWt3G{ #fDv'4PK t91&L !nuvola/32x32/devices/ksim_cpu.pngUT gUA]PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p( K  ,,, 0)Yqq-@$W  P+V_UUuPL <<<`6>#r$-?0߿ ~JJJ633cx)܁k֬~ڟ?NABh߿Bv@)Y \sWxx H޽{`qdPTTd{.âEv޸q:(4@f0Hq ?Fq@ .9`K|C/_ `ȀJJJ`3vqΝu@@ A9YYYA| Reee% ֭[`qP E(@ 13<%R k99ư`Ɂ,aPEQ /_3HJI1\va޽-_d,,,dw(';w Y(**  P AA mA\__ hfOf/@wOc!-ἚÙcGn޼ N° ~ !,#  2h~pK^< {":y.n`3c,.ph^` A!d1,a9%%% ?zCT8iW}%zE {F>lR *T萧0/A>ʎALJl10K;HB`+2 7o3;1X20}k`n7ҏ_~3 }?Ͻp_3+`Q+**p۷o)7޸Ǡ Cx }axuƿ_?11|gaxqkJ @]|j <᥊  |3<[}AiFQA9kp\*/.>>+2ȾXd$[Ae-;7$wJט+K o]Xf8w˻l R3s}ϨiR ww`w`:qiV ۴vi? ̌ p Úwg20\pޗO  !ߦ7lP%ò$l@ 3acx'#y= O3h1<}Al1S`UV;Í۬_TYyylx]/ƻߤ%CSG0{ȡ/| .X: 1 f`7߽XndXh˫o ׵e/í'O2abav~{(qchZ#rF4@`l0uui`~XU\ykɩ[O}k5qbW+Ë?N^Q4] 2B( x! 1@|2=u,i7z9 U@bw?x U @rr  6 %Zq= d ,~:ޜ$ ÁWd`hp?4tC0FnFہx  73z6Xz X`2yhˌ^b!@ x 40*J45%sIENDB`PK|A1Fnuvola/32x32/devices/memory.pngUT T]]A]PQux %V{TSw[[(Z%\D+&$PI ^PhQXVѶijIDh"Q k13g9}9sȑ%Ǹxȑ (cqY&W䞟 MA@HN݁a J/twooٳnLׅ5WUpN أ}X2ѡ!%{W0_*]H'.;ӝz޶WyJ<t$Ï%{!W̵:ǧ}1Lg0Ͻe^& _gYB&֮I:&}"6Z/xo}?6j P-Ұ^N h=&bn@KT^7X?P!6ě,C].i>v,x8؈?RSk$)"v@$9+ "[-6b<v݁.%lR}wqtc$ԝTQ$>Kt8!aֆT 5&)aϻvaJ:Rٍd$>')EC.Ľ1ofSXvHv$&B Kl!b2y(7$hˏ[D*wJgpd%*u-44:4 HP )Y{}貆ߌs0@J$y hXlLxpfy*.e;oW)>!`J28r%j|NTvzUOV4&JJFg oxmӇsǧU>Sz2P(I(xSj:3:k]S[ļyQc[pgًa?e/=!,M_=( 7̖XfXcیߢN sC|.^Hj/KmN@{uk;ɖmB"Рom kːRЫ2fEغ(?eSo+q[:" ĻJ/p\(C<:y|Ό `2rvs条Kf5T\-7*դVd7"Y;iE_p+R]e ϛ$l_+eT;eLȡ~h!'D`@=i>3Ur^F)f;&}8VQq碩3gA pA@gTpZy3YCCqt]]sڵtr켻X\#>,Ȱ{M'ڬw{n3"Vfb."-W@7"_iT];Uqbqa- %1*aH#jKliׅ - /5 &| !hg'5F;,ƟtJksg rrp m4%d\ʨL+F⬔j[OCXБYR"ՖJv?i̯]07'!t4Vh*PI SdT9舆ۜi|U|}:TX&\rEU /k8iOF þd!;|z`Yk3}1@c!lpʓB52HxWP5# 6mӹ9RBl 9ti[rTjC<,MÎ4Ͱ쁲R> Ql mu  T3ʑ, L8KėMբʹiw1yKSdX.~u ąrɩZ¤cvYv̗S€[JW4lmZU)qW:ر9ElLn +A1`f`TW&]Yq?v[ ML-KE~ }P([Y\w+(쨖X17}TO3IЇjݕb^(4ѵ6%7J^5j"z/PK|A1WT2 Z !nuvola/32x32/devices/mo_mount.pngUT P]]A]PQux WiXS־%\ U%(PP7@"*c ` !hDтA$CmEdƸLM+% aadJ€@A KJG99{.$%ruq5v#|; '{',lFWQvr@x:3; \cS i00񘬝yy⨿?}%*t[ NcF0ʨ1nTp(([h]Oӽ5;]AB67Il7Li|yeHZ5Q{b[>N KجGOQs~w6c]k!mC'֐#׃(F%g7Ѝ a#@e XsQ<<=1!uh \xh5p2 e- kXyʧZ!Mzn..qJڰ!ňIߢXWC2z}J(b=/օ9i^VA9B"2n ր2By.`y8j2`=9T2DqqM7@/_(%;g`!MenSDf%K)Uu5Imu:Gꋫ_ÃS;/LCuP5;%krUm !S1gNǏ|4--߻ps˴S M?\gEoҜGgt\yMF'9P1aRjG8p7}DzUzE k,$YtP6͎&7rs an=\AH@}5cc/xExKCGr+@[#^ڵw/kzO\,->%qi_JWx(B]RvpX¶@э=5ikP>c(th4!i+7x@K葈$Ll=XvX3ïZ^=v`D\jE.|,8ZD'@,}X[Og8'7m9%%rkS'yivoj_y Ey}P1/o jW*4s@WE>O56-AX+ܰ?[Jt QdvЯۥ=jĚhpK}PWM^^)s˞ʄB(ASseb9jp|GytL̹ IW#AFcjuC. /8ŎLsnj?SSUY[t5*@*@B Z1o#e3٥}G$e3эwIIh ĢE1LKBjڟc4zxt˨Im¬75biU .lǹ:ͮpR 4Sj`Z4AP@U@!."2_ss}߻WncbMduܙޜ/x+凉fZ?]9);Aj8]JzںԼi`\-}$6O'v|6',3A՘,m|s0ڔRcap\<Զ]y34fMhnBxt82mEVw}?kb2qou foo‚E%v"Cs}S8ͅ埐Pz ށ,>/zIc*O@HX {TnUhg[9[d|=5ӠK`1+)*o8:z%L[oly iAGmv^VDHtF]{d|-i'.d4;D .헽Mh1ql\xyD 4|~ׯ gk&`&XSu6aln"a^$q`viqM%SD9BԢkgP\RgXPļ(&0PQ oC-*]c$ڐWoO7 HDOEYXӑE6s RKE{ wmn$љTU_Fwp/YY/EGJV A"`ژYМUUqxk[@#oYz _|SԻ7S)  7s`J6.Z tx;%w2݄J*,XN_|\DpSvTi?ȵ4NkqevW)MbCzԇ,1%ow_&7T/8ϒ+:Z `l޺=topqK "|uPP0P'H]wGr7Orgf| ++ tQ;&iUe a(`6S7ISU;0 Ԅk~p2-3MvM` eHM& nҧs{;2ToBCji9doV{ߣˊW|c*@oKbpCZj5E(U;r#' q1LL3V < `k WҚ5U.E= twy٫ySX_޹4물p_ڼſ3g5MҸEaUWi01=A~?6?0:˽YWPKV uYz/hug6Q>nu' |f0v9emKD]yQ0=&i^g$.Ye~Jkvfj+G8Udԏ~PCAU}Vؕ٫oñe'opɒְ1q(Q4 Dǭ]+괽|cSMثl'MG`'$כs?P#˹IBq, PsEqPci鸒!xfᨣDXUCB=aExª{JL~řaAC)W_x~v( z~;hcǧwtL ÝC"q_o)ʛ[dio5shϛbc DphJ?5/l"Lā gA{Hgk;~yӐZy>|-o333#|||`@j`{-Q@?`~ `*Ԝ KL | v @A &R 7o0\xɧOz.pkii-((#-Fv2{ ]k׮Zy X`A2} BPeXaPH,EǠexùs^d U`Y, gϞ1HJJRX:@(bX{58K߸q۷Oe 321\}ww r. ddext>?Vvח2ț[n/ }PLtO8 A7?\_>gϲAE΋ ;1e8þ\?2> %8Obx9$'+0} FHf`|&h`c8u-`4R@,_~ysa+a 1{1pes/^/B_2T12{TŠnH130J.01b8~'OeϞ=m4M\T\h LLL {ϘyxJ J4Jx@ y٫ JЋ}9lĬ@CA4 ## 0Gŀ( VQ偞ga)3(3#>\@; f\@rτFDŽ@-~ *p@3oЀ; 4w@0yʺR IENDB`PK}|A1&dhghnuvola/32x32/devices/mouse.pngUT >]]A]PQux MViX%LS ,YZjfZ,f^5FY\lr\JnݰƚƦ%KM˴KI *ߥ8b5' v1҅QE.F@uٽȘF㭕Dm\J׊BvRf[kFtٓX)=9z'ut,VNn=\7bT)2ZL uʗ*J,ٚ +z䐐&ZMSSD̊>wg=`&whwY:$)!j-wfOy:VvD͸\K,+G瓦|4-Lho`2Y֣k 2 F*3=Y7 ~%=M#7 ,' եr!_ %sF풔DsN9?=8os?:1M7E~Ju+𰐧QZ!k$ gp\;/G-(nh P[R#`_B`S_h"Q]-z+>60i.HsL.~X<,:Ay%6w*Wh 9|HmzŻ~ENT%_ Uh[*Pr*Y;x%(_H"hHT]yGb y"J`TϬF%Hbu-q~a#p? :bҙ qU:ʉY]o [_MM,HPd,xߔu}&4>v;jrP \}Q!Sm{U|#{z3k ZSfV̻LNՑčf]Qo#\ne*..)@PC:;iljO _ <2-s9eAYY@048(Q>+!糩 WLHH5Z7KRUl5a: Z yLAe|c"" gVrthYm3_G٭V_f,h"X(6+. Vx[F="0t\cȈ4ƺkkݨrviza@eX9pQupvduGɿܲꬽʗ)ПTѬ-vO YلVYFmj@0 tAp?Qo@Ձx<>s:.7]FA:u0r;.n]4 TfRs 7=r~o~^}:OyKckLINF{g31KwczG:a$&Y,x*/Js.$ÿ*kE9Ky_*ʋ6~[AUz [Ǝu.q-@<֧d,)V676OtnKÉ~yD*9Ng$RKyo>I'%2{B˼ xN]V Mg(5 Z lcՈNŰ^V71uw?k NtoUUwΒZ\u&Dz|B+ }rÁR'B^W3բ@-Їvd}KH=bml $U٫A~mgTZkyd:K]CⓚllELV Ko,(~[`1d2<(.3]Iσ0075eA 9s84_hFVB㋠"=nohefdPbE0hVc՛,pRm^5F@4(`XS&+Jv)ZP$n[c969I'*9$nl6Adխ^x adC)+pM:Bއ,{DFs]F Y^2&?WN1q=HJ7`ͱn2GBx=;=6FiASn& b %6Y|NkY2.~O-#%tqq_cjfhZ]}YCEvbqT`%1NܙFVth=6w;;76oDĔ3@`a"[h9?UH46( PcZ099Iܲuk]0,4ygRn^X ?mA`I}=׸brV~@2 /j:u}RF?ORE`&e|iY` *6zm1ݫÖ$LʇE$9UTӹAp/Z#wvG5re/T9 s/a`~ x܀TG~_S[֢m62rԧtN|OBO͌F|: dr@亨kPKx|A1@#$nuvola/32x32/devices/nfs_unmount.pngUT 4]]A\PQux UiPSY~/ $4[` YYbDAl QP J=pCD8n//Aa6-o?=un:|_}_ݳ}AƆ 02%y]"ae@C޹jFf@tfxzrfV$I KOL`vDۄ5mF | !mJ풚;R)ѱ0/I}# }ymyN3y,MKJ>p _nMzzZ&aru4 }HO[~fx:h={Q Z^Yk}BMeJ,Rv`L<qP>,hG%jt^wi\̇-D##S"i)INH$|yʿ=-EΝc 6[5Z\q1wd}jf˫pdYk˗s|^זFF iS9Bi,fe!v B%5 TH%?r%9's&i׍\n稾HmB6}C bwC#dnSk U܂Lv&5*DGR~7 8ۄ9:dC~fXl&#~G|شMI,҉A]L' vdJ YA>@6ѼvGA:jhguOv_T0<ޫFzC=/"Z 6DJtV)Gmgѱ5d럙8ݣ0GM8gu0xz'?be("/22Mf‹gF!`STH~M!U_Tb`qXB, j+ǂ b=((YJ*ڊ[pl6jUa:QGPRTx31~F)+YD: PQ 9 >$nn 'R^LN~7Qh&.2$4y/kkŠ,gi䆛˽AhA~){X}iN;|(C Cb̖@@tp[kLf"Bzn`4@ Qc}Z#VqMehCnۓ҂h2]pVEG=lvj NBw5YΊ#WS{tmzyh嵨AەjzjAz%cp؆@CO@k+ ))Lv !Ĩ<uHNn u8|?KԢth>>K4k~yA~%x##;oj/%-#.WX2+ 8K=kP&79?1g`{NpԚz0rj]a-,fޱ֢}5yB;X`n.aQ}ynV^wΏ~pzED"D%!~D+`33U/KDϽ];ٿPX0+}V/+t=w@ dws L%3i,v61kǓNuի٧+4^??%~ߚ|,}j` $#׉ ".{fHt"S1zi D g:!u0%,IyEyW%qIJa::PH%ZRZڗ-jԻbI^.W ͘*&O-<pVTa=hg(/o7j Xciڜis6`ÒJJBd@!to1cv VzV;WQTot)lX9m2Ԗ>uMGc0 ̩ a.^h]T d,zQ_D3YL\5nMJ[.AG$2r0_;`;`%!1,u&=EٻǴ^3ɶ*3?T*)J#1r+-ٞ@ZS.PκMQg8aM`A~7]74 3@!06X.` v?OJ-hC'3@@.Zp#.dC.7pdqRBHr I|O[];~S**4; 9 hInr]I4 "+ZeBU`i CqsO5n#P ׸U"2隡{5]F5gDGpǔ iIl/&;o0UՈTl{N}v,,`mMy~&ѬK3G͋XjoK7M-| avw8yϙdoƾMǟ/of>٠*F]P IUU'ٍ! :8;Ic 6DQYNK2ݮ, %aHDo"qM֣ٯ^VfFrrFL7pp>򣽗~d@7 } lNE}x{"IOW&;9ǹ>T+IO3[׾}^NywaQ]fVxNޭAiLf1跈!akzGe55vÙM$N=zdJVBӾ},RA/ni(L0 E~_Oaj*.aݙjt~pPG!H>D[&?V|޺-+feʃuoxz+TXr?]{&0LEm8cc]%ٯjU~^ޅ*{ɢ/)ҥ@uy\zt?̄*eK? Yj0=w㳧(۱nyFbb"OZy;JH(_.\G5q5 J Z}(_ {IYL³/߽ky~{Dħ@ECeHJ/qMMlڔ|a yi-= |ڎ*i*/ ܵlT_wY^FkII>Jׂ `5.їssK @wV7nsbUskla:IH,BU߁K[  (PK s|A1&_"nuvola/32x32/devices/pda_black.pngUT *]]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<>IDATxb?@bb`@b&mgg7Y\\k8###ݻw8q(tVTgff*~_f2xRaV@/ \ zao @bvS=8Li C.4`CMORL5NC@"FS&K}߲| ,(a׎huCgD {rcz{ZVpҞ2R @7#@Pca"]&wI H-ę\q.e 5n@^W9b 70A/C~1C`_@ 1#1 p0bb$c`:t?k҂{H` uкk`ЍsZL2P2<q}9Bp(%!7V :7 !t3 V,.A{@'ʯ@K1|Ĭ ߀Z&p"N@xB'`@@ 97_ @08Q,ĂK%:8}X$Br _12|3?~9*?F@(1$ tw0Cӏ,ڢDjqSvIIIuQ $TF#(W QPʠ • ?_`4af1fp+Dx 3| Lg@W0Jӈ{w¶o^nVQo0cD~p*j 63Q_ߒ2:k@LK@?0K2b` L3kLN`gd30 vp l>@8! 3×>~U50+H+LL ?`% `:,w9@8 BB??[8,,˗ ll#7?p+h03>`= ܗ.bx0y[ /_`ٌh~kǏձڅ8@8CAEEARR 6?00(**2yE ||\@52` !Yg!GF• 9>`@Wdfc;ñc{ُLCR>'0{~Y ?yyyo@! ҿ^, _| v0 q`Z2Tݻw؎W'FPJaPׯ_}PRRF$І0}}`B~ .bĖ8>RE@ t+YE@1fX܂1aU`(ԸO@Q % ڜFLP@?H|Pߠq{4S3*Uͣ[IENDB`PKp|A1a&"!nuvola/32x32/devices/pda_blue.pngUT $]]A\PQux U}8 mY,Bq2tX=CIH_S'6ftJ>RԅmPGPe?qUK*L稓j+q߿~+dE iFwcf$Ĩ9ooOg6?96K>_ 7a)a%s0-dZ; Q[e/jS1yт%_O|~'fraꑴ;5MZYc#!mnQe;߁1$Y%eYv~<V49BC W6B8W2&^$R/LgJ^ :3Jm`YIp𽿢%GrQc_!۷)3jFּQFT˔4BQa5%ϭzLICMjzW l,[%ZDr!m@TcZXr  l$'?6[pL&KX1wA煎8O €_'݂Kn_7!Vw1/fpckwX/u3(#ldn+DYp8|H_}mV8Tn!^ ?c=@.MNYyB%qZ#sH]FTgTA(/7R«3V.A|1Q ˥'"-jxb~% V tĮx5Rn[H.B!b- x'">蔂κ1?s&T?&HK5As,i\5EkNp.Fz{ۢ?06DA¿;hGKr|(ӌ?^vAj)ag ٴl-dYȠj wa}yqTbŜ4$>og# YiqMeԵI6Ee5z.lU I L]!u?.`Dau-6tOUTM1Z,c" E/3F3:"$UJJ2[ڍ8jځWLMW H,#66i}٫ ))=FAUA :F vaE+1aLƦSaYuu&'&Bkwӱ^3;v ;'P{C`F pm5uTf}5ScaN*>.@tZ^}^N>?UƿGLm"}ï{77KnM~!1,/;ؿ]`(T2cdV#"xWpoOk.ӝߟ_dPƞD#YZ0a\xtB¡FkdzjOav+p2.t2[8B K*k^YY-̉ȡS7o$Vn>+%JCsH2aٲeg #>د}I ؚqFЂ׾ϗAs rDgێXFκڈ0II ۗbPXF>m.. 'noÊSu_YxBMkB^A[/Y^pΠ@ov|I[(D\W6bNYB~ˆ[eDKJrgº:OTB͕8*6@ \JWbN|yt(|%.J=W@z''ab;@x_uַ\Q2֙g6WVng0N^(ܽիt3D7PjczBTefIgP"صC`TέE"!J&T'JlW?R<ܖ+VTT;wӇ>~,SP'?kg충" Ϊz,J V\q X_S [u?T+n|.Iø F_MX󋣃WS2wrr~q೶!,ѾSf3To z{ORō;v8-iCG^.I-RrUUt:&3a.f&KS{J>GX\Ysط<5oa8zD7߅G#H3 wfeRwo 7԰)f͚!K%E)O,O,>޵f%Fi pC?ŏDF6^jADR!&/{bC$653ى AZs*O4x?-3^0/>?̄=?>e<̽B5[6B>r%׸\ڏ;Ĭ(j2" oTmC:x ZmT xâkrs ?aK~lv $7v /_vڷ8|# P3׾PQtwMS);q6r+ܖa>쿯^VYy'= dCTN/fnr5ov=FD u78Bz-Z[QQMn(++3˗/<=bcS,޿kC7oy#GO~R$9995,`0|/ w>c78p|'JH܃ ??e83 n.?05kʼYf}v>@S%ׯ_ ; 666`B|Ǡ``  -WADN #0!80x_sVf2 3xx0W@W/_} M6`tp3pa _?adU5bՑ) # L?A:z^\0hpʀ70BWVVY Xxy1}(Kd) ?O_KlFjX}  |x ϱCAXXa.ֆXn|t803YY 0n?O $I(ih7p:&AQ`|*uY ~ :r @k`%̎_^WL,,LpA03"&AO`Q( r//<@ӯ_Ai'@SFƜ6;;ȼİ`tŠcd;2"JU==th?\?`~ `|AbE0eOKK;AV1auÍfV`)eYQAWlqBJ@P3@VVX k18!rDhR="@477'ݻw-[L؂@3s7Ԝ7`zz@,.]>llL`PǛ<8jІ(na?pZ}xb}õkW> `+ѣv99IIIQ&&`!Q "l`1X+;Ei!9(ֆ",HCΝ;g ߿ٶm[%lIHH 𳛛qP bt"!a-?&0ALJ_'O۷@< $%j@,hmqHAA7GwXH346v|mj\4bPv? ma ڳE* 0 u AD%_Z/1[2 D:Nz#'FJ1VB8\AQzױ7HĂh6 0e3()ik(:>{^#7V!H9?4' 3?|xNC&&T Av@],vA ;;[ @X`4dKa"!`b O01v߾} S$0IENDB`PKg|A1)eS Z nuvola/32x32/devices/printer.pngUT ]]A\PQux VyX@E2E@-3D! -<2S) cܓdS2;c#zƊI&pI1Kmڬ[f)n]<{\oeao@}ɦ^hrA ?vi{#Ҏ&ǧeƜX8 1 qGbbS:|:[EOA#--Iuo?,*jDE7w:˝SsOOUZ/]ݘJD6>-*lM92p.` Bfgޠ_X+/y7VIڶm0*u߸a:QAAE\ 3mcj|z Ct8!wZ_!xn \_)xQ"** LOOW^isI 7ٯyzLb5u\QCV ʅQ^nݻ~[pEUPa F`'׳m WFOH$׏SȰtygggnaaaLRRBb@hUlEe羾;eKJv__! ڗՎDoHY>>μgj|a"@Bۊ~6.];z萐ÇYBKc_^"I5>Pdπn$AT/(a(L|`[d-|7owDg1G;% b8K󫳶.MMB 7uKKj;?[ȕBoaarġ] LfxmݒI  KfB?V2#$"L P'|9 94=ZJx~Q6B*.qG `8ꥬpBȟbun9fvIq<:=Nzr2gy2$fyeDZuAvyRRn03TYLC `)MImmͿf/Ԝk,L愌}UϽBvƒ*?zw@Zr\(U9_I7w.[j x&!`>~\.Mu޺5fi~tGY17*Kh{E*p/Np_:Ԃy('}pX_oUz´aw9PK t91P!nuvola/32x32/devices/printer1.pngUT gUA\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxb?@bxX{'6jqŘ&L; lb!ƕ\L@m] w3.=D~5@3  /14@  "Cv?!@|@*@?q "8-FKD|?T&xx~=|_&@ D@X v߿) wqCR6 =Ǐ ^^>| Ν-*PB P###g*%%--...**absH?L: 䂿[l>|dų?~xÇ NP(o <==k흁A 7n\b8{.W?~?_ }``Y/  d `Eϟ??qژϟg=yd- \\,bc~4ï_?>~Í?-AROfa-G2pU10J1Ĥˠm )/$`A D!+:/o×o6Ƞ&`"{݁}@`ʁS/33rpv姿 o2<h1$ ~B,z) @ ?3(fbc;8 #F5x ޿/@` )-eaa?~1^O?Y؁=p, )#ġ  0802220 |bb@;% xx&B0) 0p4™)>nr2pʯ̠򑁕 ܼ@U\vϟ9y ''`! L/}bxamLXA7899!@}{gYNc` h OADAT/#+í B4̠DlMfc&L` M޾OO>\u2 Raͺ z7<`VJ'%;G~ ƲhV-(HT?IRo MEt}[FgNx O+K8W@ؘ9  o^?ge &F%0 1(0#4> %` XTK` l 3q=@߾ cF\\JXv3ܹ` 4.ز(d%%e1Z 9P#>;۷/ *, .sss##c6V1Pܽ{7Çf&Dv`zKP ~ӧz@W** cͿab cc8u$( 2䀇d5@Cy++8؂rɬn$þ0p- :[WҧyʘUhu@CMۥӲ(T9@|7 auڂk j-WabʴHB0h{xb;qeC*XAX#NKV8m %Ь;e,GvJM<^'j.:7.ENCq0{%l8FNj}@h7r"Q TzWlq^n"vvOVEa F )!0m|.YҎ HO1#DP~и)+_|l|-t e;L#$%-J?eu ߩRl|r~ &*8rI_k&JjEwM IBܡBmFFfJ9~}DE(dzЏA/XdK ߕoYUTTڭlW_\Lr=gxi7yѸBn8D:1>U5J^ U8 ]tS+"ӛ', Cωg!>J{Vsg]䄏gK1L>~r!jrΛ9vkk+ƴQ K mj^6 ޞ![pAh/lZ)[26t#@ ?MsHGAD||k㙱Hؓޓt>+HژS?PKt91i\3u $nuvola/32x32/devices/samba_mount.pngUT gUA\PQux ViXSn\V (E%eKBY\( MRIZ !ZZCX]DH }i7f9g,Y "_m>С6-w-'DsgqrRf oS2R gauSTG@*kJ7?Kn@Ch3Ԛ Mr0EE0l6ufqʓ[kEFPo3I{)ڢ,>.=]H)fTo^. A >}|2ƈjL$;㞇WG&y_œ)kեo>?t#d١ɭSܹCV+iˆ̻Xeul rܚ| U(CW?z>ߗT2RVnw`O7cxL(O|1 -_|u:!.}FǮ<vIACc.\."8wPM` LUpSO#WX:EO>}4~D?B /ք;3sQ-0@/U67PG$Ma6v'! s,S}n Q43jH3<8Q\땒$V3o~j;+4;q\:)@N0gc]@˄J+Y|2;A֣:hvvJjy` v= But+{ԝJUc4zP[1QV31O<4t3_̾GEw}K;]>iIXQv|(DUwL/6$amKSXt\lFJ~!TJd|; XtqZ\-߄P <"U0:O(4(R+uU^¥״_26LpFuS yRhֽ =^2K7}wZX[*K/p~[Z`?v~́YrOOeD"u|LL³OI"efZ+&Ϸ>젬@m.8DN*{X?r9[.QQGɹ:i} 6J+( ;mƝjW-bRAWCߌƻ%fN|/%ƾT&-8` oMgg 1~.ˁTCT\\JL\/KaqVom/ p"st/DGM)MQ!\PW5ZB36gE: an`(u{ĉ̣6pJCIcQ(υA7"g10=JXvȕ pQb;š(<67Y }#ax$5꽃(%XC Rn~{<㒃,̴sYOk$i4D ūNU:'fvsDžd+ݮŤ!CiItsjhn;cyU6ȕNt$q{guީn`ϑ}Zqpjn]xj%qd+j t͝\[_0X'As>t} Z0%6f..ƯyO@|>K]8 x^F1#]ZEay?Y PE]:ܓu-(pĢrҜ>ᔾ$^X.͹U4\lP0hw_59=rN}XE* |#(11'E^*77?osfwA.:u?J:jgPDѽRx&1IW.7 H$N|@'aD朊_e6+<˴ICDz5XN)It6!+;gS'vY@| ~ !,w=VhzǃHt8;c0rTT;JXXC>'aGM K?jT(i\>ԎK$B> 3w,p āz0_z ](;!h cY/ 7eا3~LLA` E`nZd8ܶkCds6~AX(νp\$i8Wy`~]Ơ17)9|ƜG|6狻Hv|oo'bݑ?)" joGo3W57fâȤhv_YqTc>C׉ګ:RNtsAa2_3JW($L^xɊ6i) C.N F rv&a>gV:<jà:IoPLj^; &<2^4!5O4sYvRCL?Ϟ<ԃrĞG* &ǘpdt#Ri]~Bψ >篪 ﶷ=I(Sw&D?{ v%JKcMû֗ C*ZtBf }1D"1=PlvD:d‹0* %׌H^o¸ aIeTC4dWM-*[ݍHzHоt_Q226sAbV& [6m>*S DjAc=}:q+'𻡖N(,֧26~<5beM5T&Ő Oب|" T'&`x$b<Î9Ad;8VwuȅP Mcݺ&èd{X*qəl͇ L:TƮ5c( ]cM ,g?ikya4ш+(lt`B3-?f5׭"ͮ|Y")puC tF9); a;6#cTl`l:Q 17ik3lp̊9-%ϟo)Uٌ 9ۨ}<9@ sN:/diV !Cxhpd2M'} {v T]R\nR#VAj&ʃ#䨩05jwI=( } E tr1,\] 2Ϊ][zȬ= G޵8+Y;W_ΚUq891ӝa}Ga$6Zqd ܻ41Bq|F9yf [<}>*#BXQr/}hsK9dB$r"->>Jя~pEW Nb _ԵHc5l~SO"+jfݴ)ێªe&XنxVf017Ζuo9 Ac.\5^2)--?USj/Iu59Wԫ{tٟ->#u/4>'y HvQ aimRˌCLL[ƤQZFMN.-`K6jib,ߏ{9}{%x6E0e-a?s¬w@Y7:sp'n M).*t$$#:r_$#|BK/l⿟O"anhj:PwvO Om*ofsҋ:v@`kU|e.SNKj^ ĹUNKg L~.}n뒣U9`݁BSt/[?!*C^Ywq^wqL4Uw @&2**nhHHqxkTk4pg!il\E_]/`zZP𡰚 h"JV0RAx|!7pf]^>Uғ7ݰ5LG<)/JEcc}قKe ;͒G.//iƋyO*Be::8M7 ===#J՛x ltQcca\#CYYW yԿҹk}~,mbAI{l6޻:}TYI5)/ mQiӭ=aajBTFg A{3]y.Gh4caAM6SzXM FpȘ\Y^Y9\d28 w˜f; K$A~e^;2!>*.q<ñ*Ř1Wܼ=ņ{b(=tZјN_pQ0Rq2{XY,7bf<5iwnpAkQ$@l+f<=Zofxv(4Y#%ieMd|rpM%Bv]ݶ;mgY(eEH"ժ%B!wNt- GsGw#jj9%kw#YN4аW6qݪxzr~l7Q9K\|rꌞy<+) yU OٻpM7呸%&ƢKi[nJj]xE;!5~#~"FUxQv&>v4X{ iiTPskEJr [Z2^;zZ+]I6~--]f_ ^p, dfvS+ᚇUp.~ d򨺜R@F8h}cAhƕZAw"L{4/Zlp=tuI$pl;Wˠ),HBXfXR؋ܬ")d CJN^:~Жl\߼2ޮ@;`{NPauuZmpf ²YdtUEeQ@u-I@I- U-#=}6j:AQHxq{\.@,&Sk52(&}}=ƍ2YZ,W6v~NJF9b( ]`w;I=}UMa&'[coL$}ԷyK+tyB@|J^5PX[SSYk.yc0.67k_W?R&f5 הe$`GbONͶ{{lp]ghKG4_A3t`Xj ))=.Vڡڥ6?\J2O>g ID>ឥ6p N7ĘifV.͢r=K&VD?;bb; R1 mrN?yYY91,}o3%/X"s:5~7#b_#07&ѷk܈6H`BQ _=`[oSPKS|A1\# nuvola/32x32/devices/tablet.pngUT \]A\PQux Vk\EKifIS-WH,SVKb҉׼ 4MtYɄCrMU-4;yܾ;ϥxcGu/"u<%+kI'bHGH$/llctZr@GDEf&uEyꔿ/p5D8P3"b`VHQ ~}?w՞B|FMC:sst$*9JzlWk$ z}J&n.w0w l)oZwٽ%M*XA4|2 W~847!.Ѣv)mܽ^&vק%P(|vܯ-ⷁLs K7[ؕ4FNUtձWiVJ ZS< >u(i9o墅;_/i*nȳ fh{A=pC\3B  ܏r ѧ'F'[+X&|WUH{5RsD>m|ͳק% X!ôDRbRO[1#kFFvLz!zmߵl3Do HAihCezL\[MMUHMqT'_,COsĘC1̇ltnK/PDI(@lW.`'"v7XM2HQ#/Gi7g9ĥ[&Qضkqw*,'&&ᣑ䱈hZUH%‰"Ŋ- &Zqְ<>m , ϹCVf h]!,z \!d|bmRFN>hz%3w%csZ5imUpZ􀞝Y(9u2xy4㜵?X<^/F@& #D>^pނ(0s赎F%| sRSɺ2oS3DlBؖZ'fv{y> ;T"%!3iHewkԅ.!'(y\.c@uT 5oWס;mSr:ݐ iA9&n7xn)6ɮl~K M ǃXI=]"55M_"#Rc9%#QZitrwH$m2L#0V}a\J^#U'I@AŊ*wOAl O)ʹ汩-gԈfKS@HSzZqitrw 9;Cxj9MJۓyӅnee[hf+Ԃם8?ቌC8쯹vOM)j'lb\EwZYp fZc5-| $wK}A~S>H&p6@ mGrcx;jN&dj5=Z \ZKwGul`gP@x[†YoU\4r%VP Ql }5kBfh?l}H@%Q$2IhM֜hL8\{W:y5 ~3V-iNķ=%.O}Y2.K2Ibs GE!*0I?c\NZZ`x4i/m#xu9{u}mMY:ZQx M>zU1A A)d#-ֱ[zs_q 7X *]|w1 UKNngqP=%?mQ]ox?2b{| 3̎K =1ed{L>%+^㸼وT]?z-=￯'&XSONRNy4ۦ٪UBw|yѺ%ܳtr`~뙿٭^1 8ɸl/c5PKL>ynuvola/32x32/devices/Thumbs.dbUT FVM\PQux  8kgI5*J"M%$ ً"!J)dVlbFn$Fyu^ssso[هiZ2Bty@xs`Jx9lo`@|-#+` vl@6€r @i@vj.@Pv TU@8emC&@ @8 p01` LS 0,K 8NNp Ӏ=8ggp<< .8@/t?^\h~@7xFQH8pkh ozD_0>;>\#}*Z>v8Ǒп8# Z?pᜀ3G9g~ἀ38~ԿZ_8' D?pᬀs$k}^9g?!pﵾSk^S{CCuBOH$  2ҢPLt ,L,,L̬86n`̼g#;'777 /7  eebefӍ bgkf3aG x!h4h!h13021nDҠQw/!;-ǖ]:NS[=/G'1˫6jS bdض]|nE%Zut3153;mx+aWoݎqrʓԴgE_TU746y;L |4yl4e"y<m\Y} :Rɹʞ%.]NpȘ5t2hy|cCI|jTq.TМ"ne"qpN@8>bG~01F Et#g")„%FH]hOB@fP+_ϕ1b + #*dF M<3 t7_!sWogX,:[auC6G< wn w˧Vsd`EBD%&~ʒ%2%PPA>UzjMJӻ0wK=9PCv!B]Q;b% @ăKRKK҄XR$lIr;88Kc*oRX*ҜD}Vo~k[ghȻB=.d%K/QϕNP Mb'\u7۪~A}`@fpزu fqsrw4O bdKsX?McFEA5BOok +pq|ې7Ge̿72,۟N^4i,ÜOp[U ߼[C浮A.RPD wT(z^YiL5[Rߧڴ:s T覔;)ϑXsisbL$Ś01w1tĻ*4rqό(I޾? `@{]]7%r7 1v%d,vg6SYk*"(SZ r7h֐iꘓbK_V 9l`shΦQ7#@.3Nt\׸Lch.B,SX;rL$Nz݄܄-P%pϳO\%?TDVȧxD y ܹgs\f#!DFw]"ݵ@}s!m?_^AjW =ei-í+bm}OURyb?z ܧ1#]~&K_O̀9`RuҾCK\y<_/]A/>/\m{L=Yv]ysK1(s(HzQ5fx ;Zbfߎu7x ?ֻ_R _-_0>_ĵ=ٵ^/2 ,|*\ʐ`c"OMzC{`U&Teoܞfq~H2z EH]W"V j q鱽]M-_(ɲZwT8H֑'wO(r9ZX0V=o#LšFQ-hB`L۾ǻbO|)դ#*ė-B)ssjL+cwDJ08e;A(KH=}9nGo/_O2+x2>S-h0jMZFᬽAWZN/jv̷z2Dk^Sx ժnCtx퐝.eQar5= - F5d%>fe^79nh#JMM32͋qk?UOGthv{'QyQ!NUK5#H^dS_=YّYjEOm;9D@4n\X̟7(hRX;LD\ 5(jB2]Wcq~޻:m%ZWX>c EyJnS!gML1A[++E3-xb_D5d'䎼sCi[ yH߶‘+~|.Q :H꛴e9t*Hz':;dH*֍7ɭ%ȵfS_fGTt+1 aHy^19=sj6TȊ?Tƞ봌Tw+It9Yܓ}ĘzkL}]ը#*YRKr%qzFwwWP!2)>Z3ت ]&}Yӛ"v ׹O̽ksa}f+f93ه:2A.DxxɤrbtΝGCݷ "BىUBJbHӐ$ )%*gR` ʚ5dK&Mv?y9^g~s)6gca4ڣZ;k#K7KI)\#CRts꺢f5-$/%~ >;NGg?ǢuME/sDH1i}~Fӵm.xCkt )I*ὢ̮q \ P!J^ ytt:˜Os7#M2gmZi)3u_[RrX\ڕ߂RՃ%X_ ִ'R#'j=2P)/?نm="[;YZtOd)- -D6Gt p#~'Np"]/q ${š  H dg d< </V-@(%J rP^WTjPjAx Wn oA3xރ@  ݠ􂾕}/3>O`|cRc`L*_i0fW @ >Bۭ惫QnM9v:hf7ћ8SX1Gn iĥu Q:WBS~wZUf{wxkO <swZIK*EUh(4ĴיkjXB,!}MqssΎMg?}0ksq/O~˭П? + l0Y!|wV{g7 oz7j~/_l5T´'ŤQ+b#Gh X휛ғPqjyуWN'f77ɱ^ *oYkK]z yg\\JCFp[oV=LEl纟XԬoֻ yr6L(; Tc;_Ik{|Ldjb;߶#6S^OJѢل1"LE]BcȡW{xU~֢"]QѶ}2(x~ӝf'] ;$B,w̔G6dۊsa|ܮIiѳ8gwFU6~'?XYG9(:XR:U8s ez݋h6nOJ1AS/'H.Vi-8- x BIJ([YM}}MB;O?}Rwl7~8zc5^7OK)9$J t2ʧmW:ǫ'^GlܞzM?Xvӝ۲슍m±g\CQOY+t#@OcfXW$O~)^ӏa/NݭfN z"̊If@0J"¯;=\*Ic`m򟵉v8NCu%OHIۣÛ{5C-XB8y0 `w1iRN¹KּN*dDޱm7j\]q=ʪgB+6bcV2tc^:i3 Ü׬\H{f@a"eOc ";/@ 'Ou9BN0vsdl_Lu5 f<\a9B`sX6aem݆JnGozltg\0h؂Ne45ЋfsJV^SN1;?+SWfG (*K|჆gs}vLxg(G1?%982R3214pO';hc+DZڥR4LNk/?t*Z~9`6Έc:hZ$Χ㽢zc!m Eu\8KAyW4с)ڛ _ЃN*ǧx(dn %D[_I"IsPe4zQ%"阊:;onpډ4:x. ϻ))}Я[399Ҵui>:7YǏm.䛃-XV4AR4Xgf҄f_>ƶ) "E/ؓD_]G &΃@1/̔ O7^Bh|I7n4?S2-s?IR$77WfPFEE黔x&'um7krIqd:s78]j-v lgl)eNs|`;l. !0}!qHfPbє{Q-u+zO'lFrBJGv%XX$W$ziT7~;(G/@ѩnIBe* dI(GugcyhB'%Pmf :YBytY#S.]j*Oi ە90&fsGGFU0fȚRځIT)ig8瘜ZHc88fJ9LSu,7x˭#!oic1~։n?COKςxsb ˼DQ6 $ds&^KWsK mIT3/,k? sS|y{FaG-{\3+sOj]J3l!o F^('`ty?4.'5,`X6 626W ` `[68gv v>  !@ @H=`/@9<8"PZ[V Ԁ:08-p h@.i `!i``L0YV[<.p 8 3.*\܁^~b~%(++,,ej] e Gi\3r Kvń]l },n?~Z$aKQYU+K Mg4\+?naO,."X~e(a{lL!\L ЂJ!c{r}v$VΈ89Zho/ 4ɂ\ ǂ歝ڗ87/-ptM*Uo'-3b u˘k1^IZâ0T9iRڵ̯(dlI~ZvlAKC7hEnK\d-ֺ9*;m7V/S萖1( ]ωk5\t'򢖧jyM^/0)cb5щxܦin B\W^Ճ D"1YcKGdu*.͡*Xx6*=u'd?DO۫yD,apT56>)K%&2R| {ؽ:DYȣգo³=E#|N[rTXոSyDr)/Cs-l(ު'ժw:y6A? Q~ܰR.T% DgicW1%ɛ޶b43k&/}^Ww2XGAd8y[nqc" fD˃jv b|i6u!e66zFS7kT%-)4EnnS7L(u7Iݻ잣6fyv64I]66{{^Fd1r{`Ո2; T=\M["iQ{P<9X!cYⷵRJYh:rqszzsm6];TE`s2 n;y'Ʊ"w@dg36&=&N͋dJޑQpK \/I݈AOzqٹLIڼ](h3Qu̕ʻC1|XbUi2fRI.y ař:l^ك!B;hUhgCwz"kwlk#!bZegT^[9>T)hR/%$CS{,6s%7?vIк[.[Y -jr%k(%<mA"틌Uֵ^Uݥ,ɉ^Fw5/^rYD :6׏N=+K *;7[2+36*xmÀ;xS-jr`]ҡ0)X52u8bذٶb>kv# ,!c::ښ53mV rV"m 0{Ao9C1gGJ|kzFI0~2߅WG# -&k9O,JOD Uv18 MC#}3Do㷖ۗTv6>)ܲ:`i]8-}Qآ};ejJzT?-EWW b&gPaڢqR Ƭ:3PMk02}" u,>H {OԷg| ]gU9E BC֐ ͿH|9EKX60(] gNvmo}x@b)ǽZ΅嬁 ~Pb/U{ ! *jb ~oVzW"B_܀ ԃ{[vjr FGo ,k $V|׵>m°/wiY|7]>E ݈֡k꿺(Bap D"Qh@ 3P$ɀp xH< 6Adpl@ Bs@P(5 @% P ^^ow"=@Zm(̀@+# h:.@7@ms #Q`0PSi `0VZg`~ ucco-Si= zG^%GLBRåbB?i(4L3UL%80V)PE`a g*?fmǒR jGʅ .fX_gVIBV u${jUJˤ4cTDo^#E.KU{76/'Rso[ũw>ZwBlב4-K|Yv.bI-UJuw %񣩂qRavwʚ|7IzI5Ȓ+U>F +P%e6mɣMW+hT.itتJzh*%=6^~N6'ّ-IG{\M'ΟѿIj#P&ٜvTr;YU7=زp"|u8Ux zɻ>tnybLDNqp LBqoZV%hF&^4KsIͦ%>4aFzs:z)8%((&"˵_e 3Q}|ǫϟO\`_???_?]V_D!b[bEO!9 QǘG,u/'jS{`ԏ s\U֗`Y]4>Im9L\9@7p@WL,U?ӱGe9R0q5ɽFVpSCoC -~֞`>o*T@ZD&JtH(BC/ " tMD@D]ܣ~̜3ߌBY괸˾[ئO GkDir b-ER,g:0>\X.fG!TZ1}_zv:0}38^ z(`5Qg70xٔ3)M܈J[v}1l"ryubL1ʚaq+r08[:jqԔQyJ}r$j<x}-fU8!Y=$=D3Q2&/#4b*"ܜQmRZ鱽ҰS,kgyQ_L?گHVZqm=_*Lj㽞o?U~ϟ/z>,aXdf%o߷LG&>@imPbA'Y(KH'2yښJ #LDj.$|E(YhcX8=BHz\R/JpIfyR6sd܅o y4=ť.[i,~cΩ-] nc_1EDv}HD&֦ZuevAٕ2Ɯ=&*ٌysw_*A=5g oЊI~[Hߕt_>ϞL J--!Xb5p|V}urGemy7>l.ffOg{ ecK] )/31meO.* ADHi+;]db~(AhyTeN-Zs8l#qEjTN<')J[ s4ůWb/>( `JWo`z|L`'t8"~,aPg**؀)P|w:kbʚP9`^vzGPseA19LhxtN!zFų[US3_Y):Zp]YяeTY$Z[!=R ;Fca {[557oMPS!+>.t>nfo`}2ё qW$(''&M6 9":`I ޑUndtVyNպ'F 3LtWd= T1'f/CH;.%ɶ^{|т1u |2D"w=bo,%j+s뱩:f_C k~Ŀ$c9Ga߰Wz^?4A&Vj3y囆udaM&(̽ތ~Tq'E]rS̹Ko?+ZK h}1i>wXU'!ev)TY֯tç c` M%^b%h+\O 3:%j4?Yv;4pLQ ZB#Fw{uKo`m){JCwl|yx_LRvx3^?<]֓63HH̝'8S+)WWWMʹֲ>8aܾЦ%+їƤZIOq[g "or 8`LqN .@C;uܨe5q{+!ʉ(T;~7\2aB8c8='/~R+ o1x3Z9L򡉕;+Q>n1^a+Ȼ锗>YĶ <+ݸ4ї!U7d=&#siiSBXX+hD[b)z;xμػg~?ٟg?:v=,{bZ_ KOܴT.Xz?\ٳ=z$nf]!X>>ϗn4&3[`NfC]}2KPW Nk3R2}lfbr^R j/ B]!zfӽŪFe Quaj*IGqZJI~N)E.JՄyaoݲQ3,W6r CuBj7=ҵ\Y1.G-Uq]GsY'Ë7J,CћV1"P+g fe;дԎŘ>,s;YҌL663_O@# ?o@-!Gc~4O #0,+p`  "{* 1@8HgI@ 2.p Pe2j:\4sjQz>`H`&)`%p}N pP3.+'}0X~? ddhQ:b5mN=4O^& tXC(Vědz ={ڜg"~#oiV>zt=ct@ŗ^b9@PDě|^EFW/OD>X騟6s`۾_}뭟E:Cy;Kv:\ƛy,G[˶_8qd18*a{(ߎn'm4d,n ¤(ᾪrl~Ԟ@nW(2٭ޘ{E l!2xx Bf9ň>+]ur\A,Mϴ usC22?`ĖލkgyO$^Bp+(~NZ'F|KdXɊwP'Z[R(!K5\ ᦲo^0AJ!6bNKC a03~=>ϽϽ繧{|>=WNNX Ĭ^n|%lhXuR%x@x{o>jxfG3\nc6;l@8&;`j"&qG{7|DD^^ .GGNpAM=QD{`\3.v\{F3ܟoW[":iK'ĭq4䞢m[0ǐ֥TPRZen[Rp6>Xqǰhُ< TvKƙ]XyŻh.KԡO^ӡhП[ի.f?s'`Bv`=!ݤA]Ϣv6heWű3(ogO\㢥$|_cFg7Z  {Q .`ҡ6<aX$ &Nm%J[]+;ՃqBY81іX5[;e`{wjeXJG#*zV7<4l \:z n\ˉz4lOJǺ˒uUs)8׮)UW}5Lv2qY >g7>R@xc7LE'G*:\scF"xӝܚ~lZоp=el0xƉc/#B3QIs: J(:3x݂:5Qv1%t-־qI_7ߺZ,v9ؒ=]<[4ץl"Ee^NI.Y ; w^>mn xʂx@ʱP$ZDkIhdT *ؾNlzhP3Y)973o)8 vr\ z?og!u'(ga_}gl-N"o-?o'p*("Q(]":wҸ㚖lN՟`/IF^˪QmX94t6j[:)~C &G;虰 )nu*sVO+]=JXxb8h:d[PCbrUfڣ~5G'0gNe)3bWMv7UV6jp-zOr#ͅ2c+7]Hec,&]ּ2ј,;ʌ};f'+Zi4_P/-}y6{ZWW (H7S~hAƧ̯oBa |J%D1Ԋ14Lx0ǚr .z9njRm^\T%U6!EMrqelnK=b ~o$>4O2̙u$7} =9932˸"F1bA`"b( cFNmB&jen7h?`,%QJgr=U]YcpZT/<+QE؄9rN5.𱱳X[.;qgvg20k"?ceDM}kwv{RiS:|_-|IS~4 8U~(FHZ/txpG"x͛˯}0aԏf('js`BsXDFiLm~9܄ l.;fa5ЖI2U)"Bw!^"{')ٙ6kŝpVjI6fBh!&$(Ԓm5>?/f܏uK_){p&c_-JQ9r&lLÆ^+kLJޢq_I.Cf,jqux\gTxyn# . POg ف߇}ɿ^?4k}0N\Მ953lϪZiR? %\hUi/?"bGN"6#hgO*ҍp|a[(ɏ76rbw7j'uW"$MÆk؜.3>Ucp!ڒ*U~u-jI((CMm>}7n_FWOK@|,}]9A@0pB?#z@$D@ xq@<H$1 ۥ<@& @Y@6y0O@P}nK_ (*J @ xj:s;4JV9$ N z> DA`x # ƀ80I`s{> G`X NoW^?9$.&կ~Sܷ{?x˦k?a$?3ʑY?PQLBx$tץgdn.UaŖh]_^SGJV5㞘Ԟ5-nz+ZAo͚f+͑2{},Sec!7х8(Ke63Uٗm+k!t۪2s%ԃ/qi^-d:Ep|5l|C$bd2+S4>3:utԳ#-/^npu!$Mӽjߩfܻ}Tci<ۻ`B Y|,ewBOh)YkFOe)H)M0=y|~υ% 'bVDOmB ,7!ے(rɽo\@;hVɦuw^OkꏯJ&dgϊԤ6-j1Z1μD# ۮDm;~Z:=)Ԡe-aTNnb2D!wBwkB5 WKB!rg(Cxt:Y=YǓ^kZ?{pf968ߏ44𨜵(| cK=`~z[syƛW׷R_y ֭z%УM 4+'Uc »4 (tÛoz,}p#͓r/tL:>e2ۿ?W;kz?GM_&u{kYB΃-<,ܥY7vcWqBtRΧ 7gQ~tTT"u{=ʵ1?݉> RˬΠ/g5.T499v7n;7}cN_Oj1VMrAfnr%;4/j4Ym]Ft-ՋNj-b|9VZJݬbf uHxy/oy|7 Rm Tk{Ed[<@PJɷI3xyp:z,^Y|SQF ׈>Aۗwیbv0ݯOUi#~N(L]>oD%wq Rf[4m,2it_;O2czzz7*z+=tdxrd z&5p_ee4iLM:̾4godCyռkQ:7IgQtVMNޤb}n@Ҕ{Q=C8Ob3OuȿB=0Q#~_|*H #_Ц8:ZlTVq&2pUF{g~!90X֬!f:'Hs$>bE*IF%o9 [/ӐE889e]$G*2p-J%+$X)j0qCe}}]Orc(AmS4uܾϮ`x-{~Qݓ'ųAaZ#|n'ԯ,hhg}46a LDH>~+ĹNG\Rh SûRinKJ =G# ԫ &x/@I׭roML,l(L$t$Rpix&;ؓNY'%e %!:.31}~TlX. l1PB6&=%@e{Д i۰NjDS^8lS)ӂ+z*r=[ /o&ڿ[>l9Ae??~  )tOȕ%K-ۂa0X[Fۏ)ݦ){ˉStE7]>ϗ T vR"Yf<GlWG4֢ N~ ;dt6*Y-o'X.~,]p&P-cMw|jHܲ~W9 $&O4(a#%_;0]u䧵uQUp,h `kf򹬈g]S %v~#ǒ BqC""KW]mЬ+vOJ1_`6{vDsB'y9R}^jVi.e_ SWUW._Q=|67FȎ9)$$4M9kD_# =[Irhsƨ S dwVxY_-~A(\=hrȚ#G?1 >?/uW%{珎NوgQ3/ab :{_#NA ~"՘|s2\;X:|7~g+1]ՔDwZ4"9BJBk8nV-y;cCBJgi[xHn[EO:ąGdQ瘪14"+Y=N] FL83$Є~/sD4 $ަnt ,VqoGe_=C_{PKN'hb/;xD+׹ )#Dqg;p.aRZk;jM _,aʐj5rĹE ?LwA~G͙7jXQN -)f]Fc>;v  YHk,w]ۯToڭ5,-TMo9pFҔts5 'M>ӽxP>ON^ŭ9uK/Lm{%.K H=qjgq+XU.\o؇xFmކ'_W+w$&&Ɨg&c- XTyѢ 2 gff>[V).ˢnE H*Muj:ZA4rns-Q_3UDU_Ed I Xq F{\q gK \~3%BALB_ZgJnM򽺙$p A4 g>h Hy@.r<(JP.~2hU+*&m@@U@},}h00 `XV>-h`M8Nm ]Xo{T}8iP s~=JV4cBR~P#?G5_.R}A/yn~+A??oҏW?+䒻/R]T)왊(A,)iVuϿeLh;"CDߞgRcwܚnнKdiC2镹jlF2d旛!Åe<6ӽN1!/Ӛ~W+ȍ]ΆsGaVw:qǾٍ^N|Peჯ h[X`d杪/t5O=d\j?ؙƵD0`~V}ɥfs?!y1v5q-UOJM%djUUt Ś[b}ҹ)΢4ɣGWA}ڶ۸YW j,4u${ G܃ώ4nζeK=}H pbIuq/-߈J¿++ʚC7[D_5 #|3ikBK:tԌyaelK-ÖR=PļF(=3QA**x@ ҤH"D(RC@: (HQt%H "E@Z !}=g{ޙ{{3k7L>|y28V*&;oYV`ytɕ;ɹQ{O}p~]@Tk 6u뵘w&2EM=jO:D"N۱o=3#˿cmFvLW6R,CCA]nh]ï?a]_/Wyۇ!Qe83Һe,27`4{z{0p =`ʽ]%r>lC>N ZtR%+ (uGf@+b N#f߉;36/GB}jPl>]JUne #Lc= 0I*6ϷP ο%)Qڕ4 EsӬy+GUx$(]C O :.7tjڍ͗OoSh#/,u"F&;FʑU$:T_eV j)BF#ܺBxnl`q=y:xD'֓[Ya|.^I#޶|˺lf1mP2e{4O^wF_Y}3 ){&/ !AWSqagR`7LktIXbp;x54PΨOL6fEy!Nʾ#v%F?sʱd,#TA ףU v$pQ3AozPB0o|0.)̣<;s:aB;ɑ׏~~. RMn|tzdlHҾReRKX*ʥI[.nl9 y2"fV: /(bI llݨgjaT}AHgSJ6䴵pd|S,VŠg/'h啋R7QtН"=0!mi_͇0.,,_ 8¥:ZN=^4 d""^?4!']MpV1y[V\#k9Nm|K%?S0Nm@p!D6IEMЙ˭n!7$ Š fAʹr/T΋R-C'L${4ݱXcK(z]O UI4ҙM1o䃃9a8"FRև: 1?!?pq}<%kzH-c ]k|SBC{f M)Xݱ0]dMWCl~;W|ܟLc۹( IG]:dkyNޅ6ozFa'<ɣS'=M ;Ayee+_Pl*•NNVFy}ÀAhGJN~}KleQozUJ]uZhlr`?puDV Vv&-ONf #ydJW _eu8UoL\bRX |1(fԿTp N Y Ms[c 8Ŋ\مmgyC(khF6W|>i.lU1-Nc~ӱXUG)=pp,duBuT>)TQ]?=d JLu'Dm}KcѶκ/J qI;K i=Zռ"fyʂtYUŚ{CTR8FLpH߃RL^x}vE)Sx@!B$(DS}xʚ@!Bd )R)<:kRxL! O)dPȤBl 9߯G!BQ#ߴ~=_7c_B`ַ2FK @#}{)bI[?u*'+qн5%ͰxznхuGv' ?Lhh7C B}ՇAR˻1jlQ)2%:LٲMMTt7ibJQ$ϩʌV13XˮCc] Q7E.9HOʂz"Y:4io/UzhW;b^nE Ot(~N` }4| \LuZخ[i ˮa"JD=˹*ĴݕO|# klR?_!ɜH= +t -Ps3ؠmpC}\aLٕ Օk9l^;%"fT"u_Xg[?u8Abqd+ f'y6puDn2#vpy7*">.ͦ8bG=8re<`ThLd01A?,t3ˣgXGRrH6!KV'ɦHDNs|bĥ!kH:_7?#7ߙ-}8Ŗ#k13_iޒ`]~$1qmy^ؙA'ʟT?&mlNWِ{? 1UW†IyiU:&7uUo!iz2U"+gΡQpl5\iuBuHP41%IǩpN:-MȪvńWh_wIRx4/UqRG [e.?L8;m6yyUt hX~]9 $kYJq{ trӉ=~SM5\lg Byc-%mW7\oav%asm=0[`Œmi+EcNv~N;nѨ&w2N&&fqWfo竉P#2[|£¯Y6}Mڏ{_;峭>*~}/ 33H,UxնJs.-3<5WX=令%O,wq=GE?B,+yy+%-oROg:\xdR;@71Zː ^_P&aAD]>ε@1h-cHc(ƻt0$=s)`= tZu*ƾkZ mnD]CVvPK|A1*^hnuvola/32x32/devices/tv.pngUT ]]A\PQux U{TRP|ebYX:J02k+SPW|d22'+eZ9=nNYV Xޜtʒ{ko֑߰I8ƮN#KQ{_\ND{bvc*FT*ZjU dy>~ ˯Qm4͌;OzI--혡P[ʕ#ϓȒ,Iϻ6^ 酜r1Y` ?D3hH5jg dmzo2~&iw3raXzO.!_Ϭ?gTw hrmoi,ˆl<95=<.7M[mT >=G )|Q%h”V`}V@¶3tNg-CgČĊhT6*BG[炙3Eg9)c.)V4;lnEGNzWy萞3uH𴝌IZ_Jfvn6am&7H6bi4}*{ Ng":&7Kr±y]aU8kQw"LtD)uqcSkmk/}4lpŏ-؋tq1@x&ƿl9n22:s_0M;0L#OwiF0Jy(H 7FO~^cY7`Oi&Ftꭿ:Ļ'1[Q##7x'`T'/)矐=#fZDejC[ ? eY&Y+F~M~|NN$^f`  @(@"vKDj7pUGA$aHY󪌁(n#{F\?Hn Z|jai5ݳJxURϻ$S|@2ޑkgfnv>y?$곊E$cx[iyTx盛Mä~GW+Ɛ:Iu {&ж s5ZQ֔]|z QĢ\wX2'=k~BJm%"4Qx?z@e,Sm|3 ;wiXʹ+?Cݎ3 i^uJeS]b10)lN@$?7SZWc^sB{xx6'*)їl 4Wq~GnC=TVN[z-X_;k޶~{tHOnyEiSz9|#&i˫wwh8y0.PC a70D`jZlwHPK rA19 *nuvola/32x32/devices/usbpendrive_mount.pngUT b]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bb`@pЀ; 4 #5u:ï_? Yo g`bbf@10@L ?~|ddfdd6fffՋ'w.}{| r_߿31JJ*(( 3ppp010ps302gp@?l ~1ZsqIeh*(H@C!!uuy>>E@,ϟ3 )g:j2|(d9 >Ν޼yh4"xc ?|??;ݻ o3(s}` 30^}aM߾{hsB .3Pi>*7Ó' ǏCZT /epp;1L]"`*RM<߈SY˗? 7ncx S _AYc&vVpc`b˰|-3zmϟ.{  efhnnj +77iO1<{  fd? ξ, Yș * gXh߫7ybћ bAMٌ<RzLL Nκ &&@P 3PV [AJAA :2`B/Onǻ@++e @@(7aQPqePQa`u $R DE$%!Oz;24ٻ {Z0}:_kʼn ĂrPecx/ +/O_g% 8f%F`|R98K80:[r{T1A@Xb8|5#XvK@ ')r{o#b BwK.SV& %(' L JJ g>a8x5<ҏCL񯸜} 4>&&&0Z6KA]PUD?/ùw'7;}tu|}퀖0,][=f;y9Ý;^-;}[&UK0-0rh90DYĹ0\۷@p{Ӷ߰ae66q7DoxsG00~ؖ/ɂa < mFh @YIǗ ߿ xε'vV]|2ԩM9qo<:P ~ מT=[vͯnr < ?~;??vN6X$0?! ?gFQ|Ž%@ߝ ?=Z~ky?pb"_3`*)70z3388w_~M~:+@u`ah)>ɟ=۾`usO1r/?XtB`x:ҿ0c30h!;|` t3@y 2|y'6 s7F EY0|5ύLh8"HhPtW"I b&F+y ~b>xTPt~ FXw )`YlliLdbcح(`/Oǿ?`R@aVpˀګg6| L\ m`K0 ? ?a&EIENDB`PK nA1#,nuvola/32x32/devices/usbpendrive_unmount.pngUT b]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb?@bb`@pЀ; 4 #)i*/3Hҿ~? /9//33#oߞ?xիzT ~9YXB]T88Au\j@d;"~f4PWUVb`bbd0vv`xpB)d PBe|&0?Ç _0Cb)```c KdxP<"xfKPPE۷/÷o_YY(w֬˗[ @D9~c&^bccˢ9éSc`x3Å O'Y. oC [pϻ> @,9@_VMM#VEEN0ܼ[fp0 BWPAJJ0 ffaϰa]Iw0\< _@6NS60YىE3<~/NDD@?ز{,@11a V{ܳY_ ,,,}fV 9;031(d~3z/++(0HJ]{˰tum|}gő__*މl9 ~⒵AV e96P<8ɱ2HH0ps3Lro 7`ذ<ɓݽc5! @,,,b2Rl `2} ZL A:s-]Ov]g޽ olQ @,H111;hHI`00(֭ ;=f8y3޻sw`44Ɨ>> **ePP&EAa`-~ǰgSg3ێ}vи@|j ;\LL_Ý[wt$}/ $cP:9{.^xp7on>P> ׁ+@pyȰ 0s0{ݳ(ǟ28 p/_^̮F\n;՝=wPM uW˗woUyy{ώ-rŋ@||d5P~ƦC4EUWy˖?|xzCϳnm@7)0B^--@&&k_}Fy1/_ 4_Sj1@`sr,+ H  @3oЀ; 4w@3aQ3MIENDB`PK|A1|~, 9 "nuvola/32x32/devices/zip_mount.pngUT ]]A\PQux V}Xumc=@6cc*H(d _23bGdd$ 2y^#1>BS '( 9}ss:!]ʊ7V(۶F'ڑ:!{/*C`f]YR;GZpL'(C(~+o[ fE(B@G9洎RW$Δ6չs'{]ryej<sƭgϞu.͕=,K*!ƿ4 N" @ '#*!J"99y5LJJjBK(>Cޜ@WN=,JRPTl U vlR0Ok/.%gpxǿJ_~}|hhZ #,Σ;3Qѐ̫\cv׭0ú/8e1wPSrSkՌLYZ+4RFS'<2.8Dl$ mX?m vAyp`ExK#êHeDeͤkX$S.D=NR_}id\M#- UԘ陽FU'm蘙<.RsQD6hq򝑗pg"\-EuE8D~1 %TY5j.ԕz]n ם3ȻRF@/g52W_'Hbtq0|˙ UM[zbz}̋ꌷADke;ZҺ%_록jhvk*ʹ(0ɠ&KoqS]1,ak;ƅi63h*75y 1_3}6ƥ]SF/%Q[3M͆er-{[rsbvKgS)2nSiI~Hyvcw ,hVlZX 3ۈ{ 8u W}D#8815ITH$-܈eMxr!a"RR@3Jz5^cta8֎wow I'=Alay,"DET0)SWq!*Z P~9)=uw ZkOiwU qyԇj@td/ޒ.ıWzuНXhM.C]t3T2&Zz\L`K;>6}Q9e_BD l wmUAc')>*nƤ_J7:*UIbaOԗ+&N3(Y<;odCJ[XX&uG-6a6bj^n dcZjBJ#mTa)K;1(-Ӛ[,/uAwm{kv>3X69g/??-rLp`\A\lyEN`o+ QƑkhNmi)B˃ Q `cz6e`|S%DhF0؋JWc&TIkwHH!ӳ~WςWȖܟ,a |/ꍋ4E^lVٶe&{0V?ڽv/<_vУu gh3梫\X_|7RϰZAmJt -TQamU㯣;U?J+DXj 2س fE۬91 {gwr$uPp3c?_ ѡ@Mf#F,yIJB|v;Lc-&>fPK |A1/t^$nuvola/32x32/devices/zip_unmount.pngUT ]]A\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,0FHH߿!/ԩS 0B F322"| L@ssrr:rqq߻wowa`;wd+<ĐJ{\ >@` n氅ShOZ{1 H@@w@U7A$y_e u"":?Q`zQ@bU]+x!;@ם%@x@iJ) ";r ,DJO1̓0@( S?f.Y-;?, f)r`f֬῰ @F_|.X8Zh!;9 o"o߿gx 8f=8XXE/_b -C=d`13 f&(`n7_@L '3='Мg'+XIJaw Vf6V&o , X TT:Fob.PO@N$ACC @r6-00r0Ř0.%$t^_.AщĂVF//8>1@z v؜i2?+P/3, |_ qD@N'(9dQQxbpIaȉ? # f9 0BWB$6s8z ;4^F.@wa1rHl@8]#:\݁ @5m7DÏ߁0+K~N*7( JQ @! R,""nŀ߁[f`v-& #-  1a 3a#޼yb`c-4'O~`ccaLjT1a^g(**5: ++(0;|'06dwwz8l󫩩[忰 il -kNc_/^`u?j+~z; )Pq,` t˗: AnCԤ,ׯb{7_6PI wAz9Na~O>c`1w܁ On޼pիW7q~jMP+h u"YGmpW (G@PY D>?Á&eg@  {`mǝ IENDB`PK L>nuvola/32x32/filesystems/UT VVMFSux PK t91-2__#nuvola/32x32/filesystems/camera.pngUT gUAZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; X@DBBϟ?' J,,,Ѣlll|>}z͛?~< RTR 6,GVČ@ОvSjmm]### Ü TPbee210213ac`ddAb9r7yyPN>>>&&&o߾1{ c wob8/ ;/_f cb/f~~~@4`hЋ/޿ a%  gtbb"?pS} ~cfx듻 7v@? 0" qdAA+]7,=`bb ^65 , /annN_E{NNBJ9ի || e VOfPc01e76gc044f+_3|ƍ   \ ?~-"PcV))eV6VFp>O//?~/pOPAỲ ~ @$O ~ t/_3pp:?o?v(7?Ч?02y \\\p3X@s .@i ϟ=o:690,AL\{\7 u?xyEMd?`Ny 66v!{1|AHHV2yTU:XN@̂"2 @`NP&  t$/C[W'oDall ߿"*@ `z ׯ  [k~!a!`2nH+  DAe1=PCQ`bbF(!.TZ ^>c037g [ *K*Yp9y?~.L X-?~! ,G`wCZz0+' 6a>pZ"*@o 43V."" ?}f b0M+'E% `|C/t7 Xu7˗/~ ,|!  rj X23(8з@C /,€ KB&~~>`ֺŠeC2c`cabe%nP* ,!(˄h ,, )0@L8ppBBd TuxFėll ?gxۗTUUQR?T-#@@x 'ځ `[22`pYQI)i9AqͫW O= p(Ā طoD`ZvIj|dȡ/ݼy8@ӧl+$$ y!pE?ȃ6gϞ FhKef 2`$`:PBi@ڵ o@1w@  R) 5%IENDB`PK i=1I'nuvola/32x32/filesystems/chardevice.pngUT ZA[PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<PIDATxb?@bb`@,0; Ka77_߿ c_PAhDիOO82۷s?9 cc 9h3V\GFMܙGCUqwlFe]z jR/bL}o]]$FF&͛738qCFF F@|`lliӺ{lJ_G@p,abbd:u*Ë/TTT!BR2|[ r R\H_a @X;w޽ ccccP|PXEbBVo߾ TXXK`6e`yxxcPaD7(Y1ȵȎa Jwf K`1qPafBff&ߙD2$_w &ld >|ٳg  (|x\vыo {r~ j24P4J@ _ف`>Ƚ{$$'gXPA,2l X6'1|X{\: R1.Aȷ`ߵk???d!(rI31sk)%u7 Z8PUɦ $0Xk3ڲ1)0/ QG(A H/r ߿3̚5AUU8 l'NQ#w}f?aq %=5bA>@H@ 2ppp1 AQg^$ _ˈ/@dP}U ϽL [1|N-c(ܨu  / ݁6 bT|ϐ /jr<=|>>NO~0|cA`9.2hrgpw$p uֽ?Z :?}A^^X61||6:Ík 4381,dpaV㷿7ڰ1@pI&tsBϟЪ?!&,z XM `cxA21`Npb.'vg >~~„UV ~!m>A ?|󥹹0Ӳt6$0m!0`xÃ_Z zG29p2AEݫZ X0)y:@-8 p`qppC !!Ap<ú& L%$8dP<@Y*@1.P ['ϟl-o` ̖?ikT^qq3f`(,XY Dc 2ǁ8߾}e>B&ss3p; ?(00:=2 p`}^Μ9c6q_|Z߾V_?,!9%ŽGN @|f0??_p]?Qj|Ϟ=fpӧ* V 8F!))R,`)'-- n?g /z{_~Y԰߃tisx/ol}}գ7o^@|45> tS z {`LCIENDB`PK i=1> $nuvola/32x32/filesystems/desktop.pngUT ZA[PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< HIDATxb?@bb`)b@bVb`ZJJE@Q^|?2 I q)Xf_S@L_R$yչJ&bY$@tv"&kq<=#߻w~~@-ٌ0b`6e43gnDEV/+]ŵLN|_ luM (􀊕zQ🙕!߯ 8^30<` AO՟a⍉ w20ax'Ϗ" (s( gd'"RG3=ˣ.\?&K$T;aɽe b`)pϏGbg-Є{DcgW3͖G>Y "Rp[k"]1Hc6N:pw?R)'A XH@9ŝՄ">1k(0p)C MxzK>?p! gi - "|1VHR"P]CRBUCAQ;V1;,a +>;ǰ*2^W'~~ xb13*(驡)ʠ*Ơ'Ơ)`!ױbYIN1t2yraޥy ?~exF ߃}3G XP?`]41QgA]%Yi/\tDyDxYPIu MU _~d9[80ܖU`ܿD*@ ,~YqJ #MGP#.#e Ff6a;72Ň00}cdhsיy s֮(tpۏ|@@ϯ\)]KS9or'c;c59jSW12$1lfxv߫2|#>``0a f`B7 ㏏wd)[wj! ka u t%z-"D>2(vchMc0pI3r1HeH#@```& 3s1<%Ȱz9,02/g2\{a dOghcx1 wWny}\՜[?Z]@3? o3bfkE =_2~)W XmzV?˰x}Wx/?j z" ^>bp[Y7Mf@174404T.v IaOOX{?p]tG |\  . \ 6ȏD~aPǠ-M~0|s?w_0-AE0U1|A%%UEyyE%U-U1u= @gB5AHA<  D{oa} L]^A=#?X"tX ##?0$$Dck\ 2ggfN`{A P◛hg-l)#p- MGv30p2l1 /C^1!? 8r0y>\|2 A +HN62;(bJO?â y8Ġ!˜śO&+3 c`=o?ESÛ o^}axs Ç T}2$̭~U3O|yc#w3 j  0RS=|dxٞ}{E p;kF1\ <, odrv\ax{,ß/'&\v36/UYw000\]0|.a~aWϞ2|{[2p㭳@b4Q@awYkN=tRk mgKQ;ÇW/> \axϧ&\@_{ p;,{WfD91TF=`?B뫇  ώ^zc$xBj ~2|; o~pwwׁ @Tھ !Ʈ R6% l, }bxzǠ [PKn ;" P?`gv`IENDB`PKi=1K:sx!nuvola/32x32/filesystems/exec.pngUT ZAZPQux V< {f7jRT׃oQ{+IfI <3(|7[[U6|[ׯK~b#p%i@ŽzgboE7!nȿs["vfcNiKm3=2>AU-J$*W.}V*e㟽_,Ju 'Yz|dug:+q- Y6,,#CPZݓZnPLHz&y!J*9uڔ/ʅ0Bh\Æ$+<#,9+c}$VK|d_cE#,> Җ(whA¥=is-"0ז\i}s-dcB"1+Hr[l>p]5NpK_ᓤ,h q/F*o[+S'UB9Q#xj_0blR[ޔ^((5ںT'm0Qd 56+յeһ`ݧӱDHPDEu;i]G-"s?r[ Fy[;\2Vk3c7aG̯ ݉59\n>ij\-Ao-(FL "a|=_[*EXӤ"kC><kҦ2 \Vk2 /mrۜ!vaShOz\5%L/uJٙڍkH#A׸ȚH93c|lexԄ"tSE9axعnO w&lSJ?[c9QXb U_eXeVZϩ\6aqNzJ9}Qlٯ:ŝ`XU;p3ؤMiP' k.i5$r֥ o)ݷCMM5u|gRqz2[duXQ ?Oe,uEA y2MP!ѝFUm  r:rwg_}A8Ij~cvsR ))HA82/U4 v xD Vi{ڹG532*k7X_B{u((ڜ2;}g}q-_T7,+IIk > }[5=w mm}6^SD7 !xK?P<ׯU'g߳m҄im F*b4FY߉ꔖT`bj*FRqQ?xC/svx6p_gZ G0eTqMހq)Ub&1ϟpCbvuy<7,w~nbEp%SYY7:Vq|H6\oo|LKyD==MhT_^H %-r AUZw7{.̓͠ƫ\[밦;x-8~gkIȥ?$*bcg'rww?^/7q o@Į7Wrԟ@PjNPKh=1"8~(nuvola/32x32/filesystems/file_broken.pngUT zZA[PQux Vy\Ripz݊kZ,Rw(mqQP SkL@ML-aI>71:ٗi3L2{8sybnjg 938pA2ȴǿ.)`{47_8< ˏ瑙8I]<7/୙{2u(JGX!/r Kyfܜv.^Xbi\~ѻ҈lZ@>`ڀ% OWê_ЗvuzWW2~`qV8Fda-MວgnEayWغa !bQ 58VE{s1/3 jWb۝i=(p'rei4(Z%?&:<햄@O?0I"eO[0[d~/-U=)fb[۾2[>@"YYU/9%)pM9fss@oߕЗL3@'9@*Y-L90&Uͩː(vʌ#T|pB5[^^ؠ$W_3EV5!QռA_ЙTNsjCZ~?LCZQu("D f&Ptu=pڼT/=Y@F "? O3V͎Y̾EDg;e$q[EΕR,%`.u0,{:&gi.A "rgFݠYe. 7z}%!MO^}QH'G qR'ngUs+d+TsU|?Đک`yAY8B:F[~pR첄򯗒2IG8dCwt"-N pC4j$qW"U΁8+ߪH8TRP_؉\*h|@8čg>0!|Xcw M@+|fJnc1r`"-#SiČ+^Ո6ʱap`܍j<ۜA<Uߗq@hL<5=:=9u &V/TeɭxR'K7~wQ6ގtz6wTc'frz?9V n: YHrC@m "a!;nR`{ 1kRct4&7[+<>ZL&G~6ޟRRoDه[F'6p (Z'ϖ<)mc9,,ԙ7GJu04{LSpȺ_J?PB5'C*lZrԤlW"MY- O3N,:5xGˮDMuʡQ𯹂k؍K谩-C+xT7{% Bb-Gc$?ߑJ8cޔT/0>FIeUeHSEEKhɥ&Ǽ d.H]H9m|4L)4`L1Y2ͧs`l?PK i=1BN+nuvola/32x32/filesystems/file_important.pngUT ZA\PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx ze|IZXz@ \;#+ 3;WL &t [,l ;;o3ܟ= @ #33HFM5 oNcĠ{P#0@Lg ?`Pecx8{ xC NWѷWϞ &.P tF oww13k3}080:r ,\\ xC9 _@o3(00dg_Co55k~p+ &\@ m- ^ ,l $^pX 1(IJ3ݻpaV>>p( 0@pJ)l!( X_?g4``Zʊ˓O3#Οsfvv#G@1aCۋ &Ob [Ġ t 0Krs800*^>g86er Xܘ4A_DῨ(aePTTdPTP`nr{'N$ pPq ݵ _f A5 ? @ w6gF` ?}l@Xanj ÿέYÃ. QhkDc&/ PX Z!`t0@\.PH L211010TM/(@A X0ϟ ?>~d/ //3PϷo`  @cdff`^Y5?Y'P;'oCE% @hV DE3|-Gg3[AAXC P-@>ZF*@X>>` `PVfPSRbP8}dv6Ïe{{@= @o0 55e`x]pH lBB &MbRSc *D@X<ޖ- "۷3p0idr 2 - &Nd: GZˆxH ×k߽cxXd0Z@0ǡfq$ ɓ ǖg0ާ;w8/ 89XXK `?vA il?f`;v`;uJC_˒`};0(9k.cX0||zT BX`bV`bb— ?` n㙀  7bXQ 4JPl ? `Y𦫋s8 2psn3 jQP`x-+ 0=< |B驀`_@KQ™@lv`Soy ?`A M X:sA,$Ąr>`f]viiiHez. &|%!&D`=p L <@Y V`<1 Ʒ>Y@H0 pd L~>E`m' ,e6v%Anv늯:: .qq lPDX!@L B^ wvbNe\"&dW`SHH`12b`q["/M__ oӫW iMdo- om̀@߂"!' rۿ@&Yj@ĤbA0:&b^=;0ہ:A,D !/Ν[n Ldp69\g2У'A9 Q@*]* o@ 2 1zII%\x_ ho$D IENDB`PKi=1Ѡz+nuvola/32x32/filesystems/file_temporary.pngUT ZA[PQux VkTSWy]R9$ %Aj5JJ+% /)X52(2UHB <,-QZV.AjDhh;<&Ώkw+CD΁ (du|yp~GT?BPg^**X[Kۤ :T{uyuS e{~>&l p}GQNGc2+##\N(x i%mTHqq%c a8Myn5 J|`\YMhsW `2&=k(;ipPT4*z-rA1dַ-g6͹520˪F*z<2"cNddsՊuOHG~2a %SH|%:/3__pk af'߼+P9 SJICo(1ؼ":,%ͽ.^ fmj|`="noٲNN^ sBYۗk;qY^x516zbbY؎ˈH@·EφرO;:ehRjk@}2艄f}7U3Ad<5I+Fy I"P;a=twUp~^%:0Q,wOO :m˚3^y )Zkܺ~5ޙnUh~ܔ1^1 U 7w æ~Ds|0eivؙM }/ѓ /r /D|pʟPA˅!d_7q 'j^ 6%HW]zɱ}q [- ^Mi O/}@y-jH/Q͐YsZ+GA0G*Gq=ůtF0*8ݏѦAus0 =pzlW7#;\eSfJD3&|;$ʯȿz{tMDpт k~pK}$wҮj{[Ssq`V,E׋nߒyXOݚMvJ?8=E՚G1Է[]8= ]TgPэ=; h8uR0wA/;FKWMH+ܵ^v8/xhe  BŮ%K0ABk=6/º7@̏@KIGoMp(]fЄT V 5Lߥ= ^yPSr qg|->c H[UK ~O~ϕ"? ?ڔ@[R%IE?b*]l[-8-ޯ!`g,`sYÚ 'P@cXr9=í{A;-ͿhVn@ciKTCI\Z=s s8F%b\IEi !4#Wn:d 1V* n*ft<jn2Du[u!%̂7Ѓأa1)`LT3Th2 lIRS]@auJY(*L#y.%mUV%qoB_ѩ*/{BީJx3l z%ӶaYJٚ\D}?h }]I9uIʲ·۔7?6]A[ T VtHәڻK3U@ֽ1~YPs#xqN'V?c4!2 D,o@4=QBL{= 1D\-5cU#DtTM$`/8yHq^N1eO?$}8%}Ou*UćA,unٕK{ܚ2a.=]2rt!\*f1̰6OO,)K;܉-wJI'jFQĻI A=Hl:?.X(dDѕZ% -3l}'6[Q{ѷ쪮L.Rό:-eLRS .n^BrFtacwBإօC/TiV\rL"} W#3hiFyyh ůw(Xt{:ٓG&W}i^L2;Uŏo E 噉}%*v3+\zzB)]5, oG m}.Jn۞ #}dYKi0 <10Miֆ;`]cCk3#&-HD-*sm\lKr1ғFJtUfb3%]xQxtcP#WX.2sc2>W0$66,.ea *M%#¯ =lɓ͸\w=soL:[k3PcI fMOJT6Q#?䡾ۑ pr`Z 4 ̝Ǫ%)ϵ@#j Q9`BQXKW--~u^6܁S!'?|©JTc}Q/E+ nv#FfCi6i@[vR\?rZk 'S|ժ_Yf8X]X;p\ܺ: |gJD2$F 1p\Qek dd)anQ;={pj/$8,GD_:/?ˏ˰HmG6$>t\W3,a&}":) puC1@}+ ,k`w#ePKHB1(A| (nuvola/32x32/filesystems/folder_blue.pngUT X^AZPQux {T%b\IEi !4#Wn:d 1V* n*ft<jn2Du[u!%̂7Ѓأa1)`LT3Th2 lIRS]@auJY(*L#y.%mUV%qoB_ѩ*/{BީJx3l z%ӶaYJٚ\D}?h }]I9uIʲ·۔7?6]A[ T VtHәڻK3U@ֽ1~YPs#xqN'V?c4!2 D,o@4=QBL{= 1D\-5cU#DtTM$`/8yHq^N1eO?$}8%}Ou*UćA,unٕK{ܚ2a.=]2rt!\*f1̰6OO,)K;܉-wJI'jFQĻI A=Hl:?.X(dDѕZ% -3l}'6[Q{ѷ쪮L.Rό:-eLRS .n^BrFtacwBإօC/TiV\rL"} W#3hiFyyh ůw(Xt{:ٓG&W}i^L2;Uŏo E 噉}%*v3+\zzB)]5, oG m}.Jn۞ #}dYKi0 <10Miֆ;`]cCk3#&-HD-*sm\lKr1ғFJtUfb3%]xQxtcP#WX.2sc2>W0$66,.ea *M%#¯ =lɓ͸\w=soL:[k3PcI fMOJT6Q#?䡾ۑ pr`Z 4 ̝Ǫ%)ϵ@#j Q9`BQXKW--~u^6܁S!'?|©JTc}Q/E+ nv#FfCi6i@[vR\?rZk 'S|ժ_Yf8X]X;p\ܺ: |gJD2$F 1p\Qek dd)anQ;={pj/$8,GD_:/?ˏ˰HmG6$>t\W3,a&}":) puC1@}+ ,k`w#ePKHB1L7+-nuvola/32x32/filesystems/folder_blue_open.pngUT X^A[PQux V{XR?<ţ(BK)1*2RoN5e5}5ep+47M[fcR0: 饓 p^~~*JZʃ2G|\ZgOWs:L#]rΙV$[;}INȤkC{:QZ+\U a|RRbK@L2@U, 3xI}{*6m+ORSٟg[2 o&}惪{ (9W|yߟ&db-PUFd20^.NcTnh=Tzmu-Q}&.?\DQq㎐=:}G<|ɥΰh6V@[@y5-[$\ظR~u:&Nxx]u G3oB_PG!LcZsr}uTN`aLEDҮ B |\G`>x6;M~N?K7q|k _EpT\Fre3hF,A<4`䈡e%!V Cr=(k` |tGBz)-&]1ߑr؝RQ[B9 eş|ph6RO^{TmʒoCح8'e`$YBjZiaC 5`fZM`c3!AWq{2⇸{3#\Q /,>2.r YS/mH{$|W˃\ 1PBW.\.m$Ƌݛc _ʦܲmj4+?A$ÿ\~T o:F؉lH{[k.o'2@NjP۔&Uf0hS }N #TVw '$Wc(Xמi"/%k[[Zu:7K }n?{XZT8KlWo@N"mpZnR9w[Gڛ2{\t/ ck3vD8mW#Wk^g؀yIB\n=jZaխRmJ$[d"ܽEۻ =r@&VS`A*Ld 9.3k• jjS_$HR=>F(?ku!+g>ø)`ףn⇖LS _qrq?S,(b;F#/GǩR3= Y)+фs $6qQ6C.;Y|Yvd-2e)&sc 븹}ywb!PF4ۭ% 1 i)f:IvYWݯ2%1oTxΫW6Ԣl+vfD1 ǖzQήa(<x<`o/; RiN{hj;Iɒy*ʬ,C+إ2bJ$_}gf~6.SU .p5S4b%6pJnZg(4F,@rwS)o&? H`0=3dF{תM6  S7X}}gtk]1EKald^u c/k| ֤EymtBqXoroFu p됈?NZ$?uHLoO U߷`D _+OߖL(f1%7a;ʣ8A_Ne1Q`eߤZ'7xGOG{_e[)x~rSQt)NڐgcgVLۘfڢ'MB0U-3ocVm4Dꗪ ,C~}YoN3 Hiޘq6':F%ys w1\&<|C_&rqPK,e=1 X e (nuvola/32x32/filesystems/folder_cool.pngUT TZA[PQux yXY\~)MPfR5+F}Rzj¹Yj*:hIa؝QF4qͽҲ,J4pe]sy>\$geXa-31paјL$ҴqNɤ&; B1?'0"ht%C ݤ7:$ȉ0$*Um@:E_%][3XŠdc6Zr,>pE@sAa'=$N>;wMWe}}Wa@]@W{_rXN btSQtKAִb6hؔLW">Ҩ>qM?+.&Xil# u`qĄ߁&s7P[\\e?|}CʠC?#Us41&_ jbjڿJz<}p8"bf۷nQdxx KZiP_vUWeW Ӫg\rprE1Am6) DDFRP(4kg8,///,LV݋m<@_aqK`jc\Dv\55:ٳcu9/0uW#~,6R0d7;[`_^D&gsK Q7ɵ m9!P'hz[[){Wqނl)Y+Wi#flp無F$Hr?Jpmz +8XxdAA8üPqrߪn@)3`_aبPס\u0)+5NKҬh'4 _2P9Xi?!:4s\Vfx:ɹ9W KIeJE>DFԝ9 8[r)'F;iN&Q{"eZ'J͸>`-ߴS6裧 NlA9/Bt!z.m:'QT#Uٜ@܅F},ocyxz卵-–Ǵ;tg]t8EEE*k1MGпKE/8?5 jQsP+o6vP&h5n++>ɼ4J0&w/d_}f]kt^:oΟ/0E3*1]fN!quvШ)XVl]a5bPJHаl 3@c6C^ dK[aU'QR)/ߏ"/2Ǹ r#C1:)c s ?zY-E\!kȋUa[(9 \i֪ҋ1/Yx`/er{Xԛo`5Tˣ<WHY8EHhdֱZ95W F^tQ#_3 4(S,t9_Y{ؐs+279&*q IJ&BJCF$+Z6)snoHKGdeɒ*O8z7DYt8AԒI|8w枔OBY, Fn( -l'8w_k5b]B pɄRna) 뛉ˈpm5D,+'m q}-.N_JʕmHmAjxƮBM8MH;7/iۤ]a%+r xS|#ɪώg)l9@ ]'3:K;%E3(dU?u:/3ڏ>nk3Ym؇ػ.$2: fy e؇0 &˂A8D?W۲?ʌE^0{h!K>ԖvD]CZm6Abn{)QS7!6!P?q ҢpʎS>$bO6=ϑ<`Vq7Xh@$/obz * 4K'҇h]Q'S; F!++ =NFoXe`gZ؈乴$Oha|1nţ*9Cߓã9\>5o_`X^ o㦧X:{V2!vo6w8 Pfgn-?i+^%#Т~*>\c˽s3:o.O/̪%ccYKۅ#4zÃ$vl=;'1iCtt!{ ]8r 2lhSͿ` ggsֽ*f`0 ns&& 0Х8t&%jw24HL^YS+z #^ }Yj i dH=m'@BNJPK=1  (nuvola/32x32/filesystems/folder_cyan.pngUT ZA\PQux ViXS>'!  £ZABDEIj$mUA% aop!Zh+Zl5 De z*Haz΍?g|<3vpػ'Փm}-YM*ZPXcbV+보Y9I)xZr iԔ)Ig~Yftq<RuM{?Ou`iyzFq޽':۷퉍 ̞]S=~Aeב{;ynFMzDDGKrɺ*$:79t-u1 6俨!+| y™az7oGZMz6/* T)jēFl|S_{q]o0`7n=wn:%%qzY~sDN2E;XB DJ*AiǙqq˳.@H~WOO}ד'GVt3V=}OŠ5[tw}ށU6%H$$Bb |16e&HIr@mKG뜝%f "Md $ZAޚV4J gM ._d`{cġ_9MAXFiYs曗=R{=*wм,W[V]_^^ o( v'"MLhs{1PBko/,1k7=V?"۟dȫ<ߛnw0Sr k>kw;<Ŋ' jLaQ#Ҋ:k [הΦsmjI:Vj24f[Ծm_.m'b0$ZikN[?]xV4 ״QETQfF%ZdQr2'TV# ;C T?blD5h7t&h{xV.^Ҫ$pj1,L.Ds?oˣ rަʀ,r1'"8L7%Uffe )*re;B(h45p4rr5OswDEd6`O0XVCkŏx|khɧsA!C`.$z;1烰g]R`%<}օ5c|6ftVm@/%o_O<V{I:ϚT^uJX,:2'z2_pw2d cDoiaRu~Ͽ)8o+=B 7n&\(sG(xerXJ"]MhT{.V /8O7cd<8{̵ k50U}@GA@6Er!L<qU8Di*DZ'7ƷH1B֌(ذP괙Y>$8j\BI"W\np·" !]k_uw{:96O4ۀ43'[/ T}{&i/m?bŽľu!XVz~ #kӦ(=弔:RrLj|dm~N-UG|D$9,H0+P-bnyǝ1E=/Sʎ%5T7t%i]L~9l]i05#މ-SILHq;$/+^%z^,I o6MV,Jݚ /k&+3<$}yƿUܶ٨Ţ\pcG-G?8@AX'řH?TXhAc-v~*"ԨRna@%{Q*<+eLl}NI>8i2廃(w_-@cYmʅD)Wn)d݊hjS+F5KλW#[I3T Gaqm 6^ q$P :UPńysoCFNi)a12ϴ<vK#-ũ' 3iY<0cRrQ $3 "D10f&U|=!XLѱ!mRQ t饦{43jiJ{tǂv]:ꔁ8!&ײPti;/RPs4^4aUxdsXQ@Lj4~r a1A+WF ]Gݏ][{܉tw ]g#52KrX4Sʉ4nJ@4݈@žc?ʽɁr91`mFUXHB*ȈU1ce1fajJ{y3(KˢybPӻQ i  ȩ#vRb(jS"]' z= ͘1Se;Nw}]$e=LIZb8X0̫R&b&#wbf3c 'u}e(lwϽ vRͱlt31,K-THGS-7@Ym-+'2wHSVH[lH-bvH h!mrp ˨`|]CwˆY!hջ 8[URETJ%:8k9jԖgY'ao؇b(laM#NXqQAB|$Jn/ocEߖ1CE-RLҏQ #h|}?ل/;5Ά&; 0̰BsBi' Hi&KRj  t;wpSܘk m89Ia+v8k (u. _eCuma܅]KwȺ=7VocAF8)8XD\t@`LYѾvW`1K ӱ6Ő^G}m4;M)xj>Z;7rV;p{@V!즪-a°T}7;?&`PK)e=1J  ,nuvola/32x32/filesystems/folder_download.pngUT NZA[PQux kXR7 *ڦ41Km)t{)=9 *Td楈KQdii5SԌLM#[y)OY0/EPS@`ÜZ}ϻufGfGE8nݲ!֚[5>z5akmΎ[fg粳8@xZf ^N, n30LHIu@:BR`.z9pn>bRڡ›JA[322ěWo+QvwWxbX;wc.22RrL?AOLk'_0+ ؒWշ}R-]RlY٤4ҵ;=W;g#O;]?>9djHp&}&bQ@dZƻKVgҪ' cS5O))E%%;he=5˒ew?;FU{EE!C.b^gb#dT*Vk󶦦JևS;c_aƼz[C{8Q'W?zD%{{޸uU}w^ZZ3πda4Tش(owj|S'O N4-+ xN&0dS4*yLF*̸qzYQjSy-m-cCeqjFFٻFҋ߽h 5۱J򱫔o>\f;|A؆ɏe'.lDC͋.T#j5y*+ *[֮[C?{1Ih?oy{@4> gpNvI*Ap vvԟSV 2SZJEnTcIM's t5&!?k엇DQ |vliPL3:+97ߌ{at*o:q ?;YPѹ\AH Q Rw>WǻF`{i0 &'JU1C`5R&80F*P-ӛ3` z/9uKXs"ӭm_Zi-]Hp s ?m 3@\ a;K[BFN6( Ƨ- X䧸QFtG}K|SNo0miJ-gVvWd*rs~_02cȩV_qWf=DeQ 0ӂO-1m(`%g]%@"^O qRsYֈ.h^E2k=q,23cT450wwYti56 cD>2>i>9"9+p.qb [-$f"DZ t5 XM81%V Yx6 +MOEpaC EWAΞ8P-OtŒ:ÂC+FE=ts3J?%UJQO { I_F1~Xt}1s{ϯ|snx[RYԦ6j5`X/c3#3O/+Ē.t%~Q9n9{UMWz}Ж8m%}XۮycW7[IW.KefjĘcr֖\ݸ0/nS1K㚳 }_̘qQUc}3>g<OF]&K%) 1+FC|faKzqNŀTHHOEKa!HffA(GHSUV~ҘڝcT4.䵧d"fƝZe‚΂:R#g1&1 |܋lV ~!Ϡconk^@ϐԾLjCYA,Ap 63mS{zfz)*vB*Tй~x_<&?(/M5uc47٭RQ(|U"Xh6,Ħdv07m 𩨾BBz!ԍ+}qG|% >@})6n].(S.sZ?s+$ FT2рmss/"|씨&hIgrIb6 TSp6漊j3մBִ/_2m}x9is3d٬=BQ&|b\Fݭ`Ģ[y=ЎRH|>KKMF9_,iW_!BCj~' m9~͞KHL=Og0k+]oJ ;J?eDͼGҶ_y4y~5Cflv P>) /jl։PK&e=1[_ ( ,nuvola/32x32/filesystems/folder_favorite.pngUT HZA[PQux ViXSHLhS@M jDŀ'uĂO$ x*in0DPB @\@1<0DIp__{u{eٵ} gʴ9ҦMTΎФIɼ>ȋROo'~)G1E@DAZr1KA;Ea>c>K^ॵ Fe/&sSOcdzN7ME e; & (;|T1q= &B)y{|%`r9a9z/(z DDD]|ǂEkmgbzxKϮ,s; 5cyKMbCZs!CQvJih.gCĖv斧BsnޅT>9/ )MjbУ8fp* %nJr(_ /M#?WM t||jM+hHHfx3y7}/`w+.UM sZXL2VM]=MAĘ` 9%}*9G_vfns֯cGI?Fld=CvFGG,[`lk1f4mz*C}w;}7!^RFp0r]bSŒvGȬMf):R0Qk\fQa!&C1bM`MRh :?`Gg׆}llqVXXzSY`W}qz0moޣ ywTDH; :~zlU!Ci\{ztV2)9aĄZs? CB֝Vɐ8 FEzD*mmY|u%U|׃,L1ຈW,JgpdH. &pIEf0y9Vr)m}{ OEP+)H/yo氀16q(+'iYZ?O( $8Ez֌{ ^uBy<Jކ Y[N\h椱5Ҥ\{JhPF_%q-ѣ4}穅ס~>ClY9a5~%O0wéٵ\K&90F>)撁E;Ks-ԉNFŸXF #}5Ha/V (^drL"z|ka'&kVP iі~dIB0:^l]mXwvg$j.0iW2_c"LfYԘRשw'T{|OOA UW,$=~#;qlǁ<^!3h~3V{̫(EE(mr7`osz7Vp?FȻ`0_:n걲 *H '<{c@_srwj<8aZS 市֏zG~bEkdӴ2r><袯?l]&#l0?Smyʘ AqnEmB^6T gNwR',kTGzVHx82A3ӯm+JPK[/h&cIUhnajf t* Q6ۛXq\*)u Wm;Y% NZ$l/A𜢷>}L):* /Y=V=S}oq-.s gѣv&M÷^;a-zq;Sң6Gw49;"GxG0n^{1=0R)B)`T />4:oXU ^Q҂,]bbU@+J)Z9y ʙ@:?yЪfOQWSFW8ڳ/:Rk&V:֒&n-vO\zӭ$],VȫB@mʬGz oD8hBpK2)7TԵE@{n9tڪ"jn^ z;r~Nj/AN+Xg=-}%w9n&8KtI/c2Ɋ+TFpcb.v8!<'?l >I՘ePӔ{~z ul|h؜u7$\Ӧ)p: zrbqD䈺:,@p w>”ڔTJܧf.jjcJ|Y# H_紈6H>L}7Ki ?mejMoؽScy.q ֨Vd-&xxIE|8ry \b죡ms/L'm3)k5򪝋ۮ5FPL0,J=+ 7wpWWdLT //iDB^И_^=5>-1h|H)F;\00D K|CFobnQKlÝvEǩCT*xO\n`qd]`MP?R#% M`S۹oc3s2903|ˮ Zr4/٬U,E@Fc΂gލqn/z=CH$,2V%2M~S_RhB8mzTUBY湫"3jdK#5~Yƶ-K45_c焠2IEm_8[ ʯEi<T^a6~m lV;Qo _x1Gp="#E O9o;qKp}L-r@%;EwکƉ9aYn?PK#e=1] (nuvola/32x32/filesystems/folder_font.pngUT BZA[PQux Wy\Ri5lS([,Aʥ NN-`_SNn(z0\F [llFgRW٪") l8<9;hǀ]dװ͜II_fu$;&H}l. ԤFq9g#fxTX%GNdāNxbM^ JxfBQHΰaVizh]r #pAPAAv^z B!}=n2L*}aO gs=qS$_ Rpeپ2⧡@0;{{/'gjyï:J_$M~ZھX +f\.TB<\OrruHs_C'p-`%~8e䍺[q_Wz䞮~nx Apg[ᏻOFA~ =7YA["xR?0`[䤤55dtx&@Z:Cߤ)5b+jIۂ C,!-"TԶCSVj4h!ŧWA(FêZyY@G4J*H['"Bv$TFS;5eԩ+ *DqU}6s6f$w ?V^+G?#/ ̮.[INը0?, z bDYFvD%7E2}`qw2MM3s/? KшzbWձY[֘@=ck eA!7 UcR1W".9.$HXhuG,n5(ɶZl2|XN\SbW9 _zfav</ܨYA-2BHU8dK ssK-W֠fu[V%+Х-4LԐiނ\VݞILnD 䫚p7Qd˝ޫ9 g>W%)xi:T+?:@)t*V.1G.9;s!Hxq ĝ3e*E+ۮk8Q Py2 w(sfDSp%4,«WnFs^_݉-Ðɂ=jubvoqw2ja,U O0~c}E;p'qs`3&ۋkrƨ_?H4_n%'KI8o|RޤU={I+"2Cʑnz\UGV -n,զ2'Ez.?+D}6By1OKM)F뿣&֝-)3,GGo#lIM9̞'9!(U1C~yfcKد͍^X/5uY]2rJ,V= KZyh6_%x-=#=<wSi, L#Ez=-fϜ?-}]a@YU%Ia l;ᥘQAߴ}L&xMr ee-^s RaAjTX^#+IyC4dgswSo{tM; 2~Dٜ+H"H@EӋ-H&;px _W'~  qڧj;q9·'؅7LƄ'CJ)0$4:f̎Xɰɹ?cWgCB;g `mlaPK e=1Sx6U )nuvola/32x32/filesystems/folder_games.pngUT  U.$E 8 HBkZKU(!H@Qpl@B-W* A ZEDCPDdH0hX{yߵnr-?ؼڃG:=cNƤ,Lsy4:*[Cۈ!vz( MeCY2Q._[믾`ܟEB:>omΩܶ>'MNksZV'@` 1ĥ`!1ZL:xjɕǣ&kĶ2hѢ6:Ї/}]n:0a>. /R:xH wE˒HJ 堽Q>]GSvKMM=|͖'MU KЄ7g>~h** Z GBL%*.ڵr'8GZE.;njD H<9ahdn:씔P:z{AAA?z~;@ƙ1\foS%d7^q!˅F:"?:? ݕ1L`2ݱ=B@ɴZpQ 5X g Q*]|em4LE:=tm*x~vL !$aC: .^,(+.R7Yd WHow#}--jUBYbs24kqRԈs: __D}&*ҥ~=[RSSeu,1CLz-&+c~^jտ ckqј/%[-S$֊?] mN|[:uԅKLIe&PsL~uLZwAU&ϑda}ٗL$R}5*اg>MUsn7wͪlJA@}UJ-_g,bߑ`Mt J($At bUs^ S|@axM Jt_z |p qӔXf7 nԊ?2 <<0NugaV8'X_.|%ãc<¬brRP)pBkg5c[Oؘ ?#/^B\D`!REa+5Phv5L^8{q%D^' 7{S }.a b L"[,F|f RNg_ L5-mվNqJ B9sø1 ,+p&6 r6W  $*0*XsRu۽ГWQ`.ձh۵^ʋh#G7^R 3x3LM 9Yh(yxr22?衊 ܪr-ߊ(NkQfN㑹:q1"e'Qp?p%Noot^ 9F2&EMX6̟??>)p̣FWْ2yw{`tvc%$>v]t* \|NYAkm{٫t6y Z+aUO>yw^Md:i|&YcCleΟM>-9Ct^я( ʇF Fۑ 6k_r"dqfeMS SLϾ-k|<2١PP7,e[1Ӹb$)17Uw=| 3=12|b渦@eYq7e;E9lWO-;y{Yp GPuuV93_,1 [SWS| v{J iF抷G8#U@2+ k,)JfӠ̉aL˯CʳIĤ/Bh)KYݪMUy~#D˙{,.Ɓ[h.Sب*)t&pcUydoB.qL  (IH/5%ɽ|c jxd؉MKYBRAK8ueOVI9]^D yo) c14p\.uw#3UK-)+|b~V%-&gΩk}|R=fwV_yJ1JnV+e1\ʘc=&رtDF;Y:h#눗dMށ;{1Kɲ[sq ؽH)6c#ÔtZ\ Urv /IQ-9&\QT0xo-Cу(UA<9:Ĭ:d&Z\\y%-->@5']Bz@6D`˺ w`as@% 3?Q^ UP~XwDO ;E܎%a"OYB(?) e˟h wa˶>0A];2*F Oe:e ,:5zרҭž*Xڠz'qQAW{'sZvbdwjf@! +f+D*E5 Yo-?L(4t\~N$.z"QvE,԰yʱDɘzn9؝ί.?6M4*7)晑7JX4VtVTqaoy˒`5)T];/}t?O['xw^F@¥ƵE=Ocͣ2lGpB|eyVwё#nsPK =1#N N )nuvola/32x32/filesystems/folder_green.pngUT ZAZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@bdgg``֘A? DeHrss}s>unn >} OvvvYYY#G02ܻwAEEӧ <n޼@,\vY\/?/_ݽ{K:xŋ޽߿j@aw33ç7nŠD___gbbba6k$[$_tիWO߸qm?\oV``fdx!R ߈bΠ "?|w>tç~*J bf0`=BJV& n`e;ׯ_-vv 3 (٭\]=,tbÇ_={ p;=s?ϟlBBB XIM\\ rr2 66v22rA @,40uAFFJ[[pKt3@ 0D%Qj @LpP<H ɖ@JO?efQWװ0=OC,@3,? A?~| #FC.NVi~>A%!!aR~>~/cae77r$F3÷ o ofx_ş~)SE`L >|g8y?~ %D0agfdC߈ ?op^{ _~bx 89$EDuD$%J3lٿ!7c rLnUh 3 ûozp,4Exk(+AGVӐASAM vY?2bcgx%Ïo?9ʕK< 1@220g ̼ . ـAAW keA`Y?30q+~w3gN~MM UEt~ 1+0-cx%0{g38RR>71 3 , ޽c8{=@ Se EF gJ)4͝.Yx2 lj)e@*'|;G_\%XHn L$0=i=*Xb+Q]DC=;6޶6]4uA ֈ ċ02zUa'K:dGdto0FBk|/?f`efA &6f&?:`T7?2|@ba`fcxO}ơY'h._]bbѓ7Oc6j<ď~^8,A b,d߯xtw/P 3Cmo¬Դ&_Wf5H Y "AADqL;6S*\(7!JoRȡZJXa/@xqa2VۓIPu`'mdloԣO ba} L0 W321 8_s2ps3p0pp21p3 8A!YP/~1ýߏ~l<>,jz@,} +, Pfu1~3|aeebgbe`gw` H@F`yjSkn1g˽2>aAt4 ւWr; BQ]oW:^˶"9cНF6dDDK,7$yGBq"(.ş~'4Ո,p04`~'XTg/_ad8,G؁1 6D Op/_@ Xxl X'(6ÿpU$7i?Ë??S-@ &֙x񇙁e j8 Z`0(g1KMPt1rc`F01)ف%խo͍f`aal 0CJ 3@ ֓/߿\+\ -JpdA B8+>1h1bx ?rb Xųw/^|"`Q{XkD3g'JLؑp }0c0Vfu O0O ٭s/\ytQW\ = O>ex"Х# X d}TIu,+0``a``n3|,o׷O}|s?A`(k%9 PcK0D-Ak~ wejgo~~~~_~6{`!43In&6n4!l< ( _}c/~-rkh0~DKl AĠO$_|C_R, ?*IENDB`PK=1.Q yh | .nuvola/32x32/filesystems/folder_green_open.pngUT ZAZPQux yXSOHAĪ R%*X+')XjA*VkBجJP+@JY q)Ѻ{N Rm!FmNAL!?fgw~|'?2o<\"7Gؕ9D~43]۸TxL?1؎ciqG!nB U\rbLb\BFjGGݙ %@!$ ICd=Ĕt%)6]+Nw*O <Եkʸ,T NpVZnHAћg iW.-~'Vyi'[EJl:kP.QZqIYsjF-MɒX2?;m 2v|,jW&Xָ>su+f *V(J/jrʛujXƪ ˘JTNr>S[jQҿW~+;SC޺ fhݻ|Ok юNESͷΧNdE YHf &X 0Fa7' ŖlۂoML^}z3\ w_TH[_&{E;YEo RI#.^SL ̀rU45+iak¶W ˃6DaOԿOlJ'f1x*X+i/_X?j~BBnLEތ!ozcpGmEkf2ҽfek?@汙E0;Ӫmv. ZyX >ьp }Q[Jb~''Ʊv#K!BÄq$))eY&Ͷ)855l;y>x4Azuu.Ft7PL.rvX(5 gu saJbPo2yr7<9A9dkqJܑ>>J,-ث6/ÿP O)Xw]~%'n GKo(٣>$v@լ}٠Aض!k(!%B|,ay.(f:F#,$b<"]z0ء_gp<5}#>#DT# K,jmV K߲bsP~N㐞cS5yfΥz "}3]'Lial 6Aˁ^2h8<{vKNWfz^=xyW7]hg;aU];(>;~lՏ[熻_ۓp:ܤq)|7+襻e٫uږnBe91ady~f|pz׭òL!Wo;7K $1h%3Nҽ\t =ƶc V=! {(z)mF+h#Ι}܌ciF ;aEd9ѠJOnl7o9΅ :dxHs/N͔eKu:-IH5vx>W|Idn ,ћlf[B29= aO٭Z%'fԣǤѣ~#&uSDx:Z*8js?E_@RQX7~ /QLx?E2@R@oMfLSEW'|Fpq)fs[l Ӆd0$ ʪs) @R94<.?M=i8 1xTy=ߨNc@~<aVcPԘ>#ns(``?BLoK=H~3kJeeMKMHK$euD mT/w&)wikF^O啕@mb|E[kSq)<1ե ;~X߅M&=|ns09nJ EXʝE9nwSq=Z4!~g1` 3o-ΡXc!I*WְX<U+<1];\2 },,69cb`My[MS"PK=1S' (nuvola/32x32/filesystems/folder_grey.pngUT ZA[PQux yX?vT2KMLoj&ึZ&GZI3RI*JVɱHiٝN"]:syybf{ c! ӧ ?5 -9j3Na~8r`bb@ڸ_{?> nL=&GhXIIIYKJ &Z \ػ=;Z^*>܏=2O )-"EE\h'Džx9j V( -&qRAC˻PxVg<n%u򾸻*WVQqc?JD"1װOz^ ]`0:Kظ֚z޸V*vAvH9:2WJ'LMꗘ[X@kW6.у+/ _=.GJ̖ w݁%0Zued .mMʞ N% (ژ 6o8&}dřQf[S)~uDtns ䷐Zjuh+%6=W^RJPV0kq-T#^775 =)J,,}&62'!aU`-l4w,J\zPVL7rZkWq4؇Wlz&n`zhH]T ,/XyC-!kU6c639vN#=UrRQD|Ch_lcnCMXٴEQ\ErbbrObn vzI+[9}839G,0t6>^A.$Kgduղ9u#D8XD2}?L&TbCxA\}^ jT}q FWS%28[;Z8K[P?tƨ^ pf3o> I&֑/}")kJ٪޷oP\l-Hpݥbj}QOӻǼu^gfYX< ?Ψ ΙVD17Lcz)FtD dƀ1m]dq_8޿#z P)|tV/0?Q-#7Yc)<䊝q͛ #}rN| @A BUaV{FI$5$E~ߌh+gwz i@-vr{\h `üӠlƲ8,Xp.UT^cUA뿂U"i^ⶇVLn&h :FY.mzhIJi%ǹ'k OBvZ4jP nTjJybB"l#QqewRBtNRBbBp%W5F" $09Ba|_ukF"U6"rUYցZ1+$hR߫rc(>]cqN"aNmW4,"5vT72sU;qN^9: ds6їsϮV?/NW˞}eBTg wc!֓ȟRҋEYvK,)Guo 53qoeʸSr" xoe9̺۟Iڲcl 'fPK=1Juq-nuvola/32x32/filesystems/folder_grey_open.pngUT ZA[PQux 5ViTSi}Ƀ$$Fౌ J A, *-:@*%/ Tiц 3M У@P6hF;,"ؠaHބ:uGު{6fw5љuDxhWg9_"NO{3's7%/GOJ RaoD(7.7EjV r/pm] |1~*]WWΔJ0bJG;tc3=aO H#&u_ {EL^ _."55qC>~icl(ZOJIξ"z*ZYѦu .ͧN'*\p95[[=44_YAGGGX 'w"jr,*V_Y*rl 'o$$'&}I%yktlHkNi Ps1ei`F6gZ6g0uRw6݊*k`[Mx/9B {a\ K.z DeAޠ 2ݢ:\􉉊~KX-/'߾-$7eh~ѧZs>c>CIH1-_]NHJ7cpW8Dv9G9,DZ\\\>őQ8D1tq Ff\:ai\^p˸-ς5JxM VK~ezQT cI=3#s@$p?+>sѭ\`X\zmͲ!Urdg1 wB VjW"ŐN FGTF4??5-L}n MeBIlPԩXO\ׯ 6RM|񈩃BNl)̗qdp҄Ç]YYNQ1VnĚrV &_\KGmsl6Hl$1&BR^봒*v_{lfB8ovvQ-zBoZl_L{}~4icJv< e% a)m^ͬw%LB?X$#(zH7%j !cmd0ko0ݵ-sj`|?c{ ؒ/wd)_f 6˸VD;wwH&l.GB"ƱdlLciõ:g*%׃`2[oD/vr~9sH,+Q[xLo:+bMgַ#1ꉠF+uq( Cuڰ,Ј$vo0zqv5ا'1E*&"?!Ar"$S2pQQ¹UFz[bU.|C?gdq]\Ȣݶ*֯rY9yORݺTx@I*Sn:![d\itay5zĸo@ ڈkGhkwfƉ<7C#\+g -BH/se19^wB&EeakOhZ[Q=ڤdW }@lGs Djow7 ãEH=紅yWf0f=rtez'D)xCY]_P1}T/^_Xy{{svqQ^ൊ~}4'V u&Og<4t# lS.Sj(xeb齣S* _?_հ c_vyYVH08 ₑv>0ֶ6ӳH%9i0=:n2'w[h*UJN6|E>xtV,D([mEVA"v“PKe=14tT t (nuvola/32x32/filesystems/folder_home.pngUT ZA[PQux V{XdM@H( ɆR@[TGf&X"A$ `6pXZ% Ao-~ J. doc?9snogA󡜜I{ m `r;)1 @y0U'9rC 4hư$[p@r2\G@,PK ьxղtOx J pdkaMGmYk+aHꀩF99@-O@e320Im~w-(vd'aD'wi1úZ&Jq$W9<ǖBͶW |<'*B5s[P]{ĺԼ,NUɼpT:a4 mNNM lo[Y`qǭ"T$ǭё {x(C<s\װ ZvT#q蜽4+WU| j/X6u!<$̪. `s`8QK/&jvoh;۰n&|cjof> !"U@Fh'jڦ{qeV[e˲E%6YQiHvr1Cgn e\EbzO lA%9?+&%1?gd-pYFx^Y xs{,0A\_AFjRtMX,eaшF#kMCn}M&Lٸ}xyQl-XǪM ѵzX2S-]FS;WUVVjFHNKƑ$m !jxbv:3\<dƗ7W7,­sB]ǹgeY4yP䕺sE$ Qg#*o0 WcuN]O:I6KaTc- '[>v⸳X*YMSҮ^%xSŧςc#7EJ\Z DCUK r'~\?٤i10k$gyZ^lN~G2<8A'Q?xg˙>4}KAHEz }POC\q$t_ Œ/SQb4tbӸ=tmh6k%:qJ"xw@m.5JeUJŻFbNpXL>q wP;(B~JԺF!8hcαN;.7XOqnEZ;7!:G|0 T>>Ϋlq<@aooBga$C+#Րb v,A]'J?p!2C ݵ)760V k_$ nĘ?ՔqvGjbJ /aM3B+.rՄ|@תx6& 6R//D;AhƽX䣵4O "Pn8-rcn}nUM1$Y]߇ ViAFZ~鰯+N&QQW.ߏ#f[ZBAt0R*YBD,,S17>>pq)[-3YqD.E_W2v6HZlXd5ֽ#^$+DmbQ^$ںh7D:xZFFܱ.PWAgHרYOyj?=옄P Zќ-4`)h&H%ٲ4`ZjyH~ls=<{s ڿ@Xl`O%' @TyNsC"b#1(6H;t3&a#br6>(5v88+*oA RGcCxi2ƼŞaw@llؓz]P}R[_bXL{ݾsk $J.dD]JB" $_9wϞ%^s)]wyݚ ugDxja9&~~ cZ W^up~oǨHJ}&%%x5k%]_KPriڙ!G#j>[O97? n F jQ25ct"sYZQYni槞j~q삳t{ZLߔ3b:6ËGqSo9H$2eYIV(GX5_QS"xQ_ }> &-lA| Y&Mz{GG}kE]´åmҌu 47IU={Z,g(6Kf}:q9in'fZl 4ȻNpHHu,-Zܐ~"Π\ veff D%]T8.2z~7T%:qv7u;ö1V$nDۻ,u\&}<.; ?}zYv[D;/]y"c;A\ũmeͼlPwgaZ֬'\UnMYEK`1ǒ9>>kĬ}L/j<+fFEY=lݻb-d#_$x_P.eMA<X. ;MI`~ZL6CbV@܊2STz C>ZOKŒU.{<NˑLb6n6>\@(I oV"e+=7Xe@K!p]++]lP}$jUH'$eR b}.=Ke-`YT^X澀m'v9&!_f,cQϬK1sr11+[j V"Cj.h"OXi$%)*LP=?p+$+*:$O_r5ςV:9KZX7Ywi m<, rLE&£_jhɫ';Vqn1G]}AطB}dgڸv{Hkw gxδq\^yr 1F,ޓ/$*'KѽmLݔ09|ܽd7-K>rP$\Qh'bOi%[;R?\5 lEsk"g)%ΰ&لF!I#~^#IxU5T.ЍDƏ4w"=E64|=(jdyn"u*̂5wv*'&-"SfֆApЪ /KyZJ TU&H.q%\gdDCAq Oܲ]QiNpZդ êyz˙I9p{9ȧ3xhoɸHօ xMDPAߺqeSfh& tJiTR-qrWIo 5^m.`J!:RO፭"٪UcJHY@<)͒&i_s%)Il{pf A b bx.>[)FYhUxtIOpVvWL?*1%Kد4[i[wFַk4g޴"*'-#Տs OK7(<z)%eiR/#;Y9M_vs,Ø#Tơb͂deu*(\\XXK{0H>>ńoBֳcYxFJaEPd.I[wGrlX5<)"G 2:l!PEiK} R(M°5)UvNւuĠU.Ih 5o='8% țmp;Dp!0U)+ŌW~0|O]xmm{?VƣOm6&#P$d9>Y6De*Q}Q߾?*|`C_T'bqdh~bXܠmS}y"?N =#\ .LnzȔ2 qڳDPv[xxQe_K/MIñ;4bY@!A4RH\ `ťVS!Rf! Wz][,9p-\%],$K~Kνֽ!#ƘPb &JAMv FRh>XaUYa:AuN`[`2%'ni;nKK?)yyETq%\{IG=3UE 39鸚 ֠jI?O>SӢ!Qups і(@U5-Z~&Oovz1ޛx35%m~~3qr21] ;Oz\V\|a!qoDG >axoŏ]kuɰ|cz1Р+AuD#:>^Qo^;>K~V>zYU@YXXz;3;7LS殶=bŹXx퓻PcMޔ:^*J_zf򂗤 AA|*KU'T,LȩΐWmbUЛ8XqB4aKNCٽͭ,IZI>"I)L)1T,2!ȀUBOeb ZgM-b0H5n\<~Npd>r.K)IȩH*XIƮ{п)ESG=q"fKGLg}kMMs. <*f^@UK/(WeNy ΌC1˺hLcc$^'pE;ْ,ҤkN\ Y:v+n02m/(@.̠q"l!xuD/1F+(2q- 'JV. b'Á6P%`-"-pqWRo-Rb}5;M|m벽M;wtI~`,+;<Ӄ} lNŦ-߇ Q tWuevit8ܑ Kj9Sl,tW -IH]R!)kVZ~* ėRU(;s4/} _hH&*ͷ]- L=]آ 5~/#.oHc13KCZĥ(Ko3$77k݋׽caxE9%#W!Ԡ@eO;d_@qsmւjo-t} ]!%PD%UZ\M~~ͅ*8C O>/nЮĘ~(3C69囚204YhK}9W]lhlOߤպ/6X t 0H&+k#[QT~CL";"nJ.M-z脛;9削>ywg躦kl(>&mU)~eh/ukd'Zȡ_ڀ=e`o(<~lt-Uqg7ʶo`nwiG)ʤceO#3%#3 Di/((Grk5eW޾%ZtwFKOWZ'XO EB\8rsv-Jwy4̔&\©z'AF+2 ,uC62*đ}+&nL~_ӌZ\zV0*mOZ* q#vXkT@?Z;tյmw{[Ypwj0V6Ca~v4hc)ѾZQ;rvިK)sp|JKZkkk\f=1MMv O즽M"yE'"&^>߰#\FexlA`f] ^ ;8~p̈yջC,|cU90960vaܙkE0d5xUDo_lNdY<{CIN**wWg${_ 7m)2s]?~GhaLHN6dI6Uޝl7(I:[׬!1 bdbb]q۰SG"@hگ @D>䋼C&iUUȁ,]hh(XTh:t*u;x /_UO]Ѿ|7šaTE5ΨDb#3߮#qd a_jk7Bɜ^/tuT͍.Xf"&r uij̣àM 54\0X>84d&=--^.=/^|mG8M#78ޓ`a$0 z8G ;]<[\be_yUT3ʖIXu,ck.h]J JdK 67 ^W*Kggs{1Ǝ+?uFM@#d__5fpo U7R'֠z57$9JAqoǻEex@WYYo KJ͇g;S^ʉ &Z[匥kXhBBe9?^\lxK$-k`~URd[ÒN̾8Siq& &JRB-4#$ktɬ>0sd ;pjqy?e:AbB,k-~g%W`16hV_i)qaTN8T~u"u`cЇ2y6'MT$ i!<B*)&w2; +Pެuv.;ͭfL($V{Wߘ>O:kZPsIT| ~[QxpX/$-6Q37ٙ׍ `,YAj( N{1 Ճ> u\Es%䉮+FRhNP7 "m|Ǎ?WP>3(w yMY@.a5%Gpdž:^,ߤ¾EC3QIWq峦&Y12Y߶ <A!^w8C~f Tp./]ן”ԕf3;O="Ѯ-J /v/kv҂bkJMLcwV|F|8q4<V։b*O@U٨p"=\@yZ($.%Hua3ClZ; ID/[T\Ax!I*+laM]Ō|'.|dKh0T_Lˏ fKBg^#/IMs,f ,Urgs8ُChA4IX,%L2{$3 06~ .Ȯ@=HRc1(U(&[u3 wLՂL٣p8__jFFMRxRT5Ѩ5;= oO6Tˬ["=6;g|rm=H7)YCtDOn)hHm:7:Bxv%-YG$7:Ӟ~v E_h}kIz`!4%/11K3mX[{Ss1fGCG<جaqsSkycL"jMB;<[eEvr^׏QGqN+ՇgseaD<'ʰ7]@k#z5ߖkv1ab1UyvNmQWz7 ?P3,yW0ń%=>] y_3>cr^ M\RIsQjAS礀R»ėVٛ %TUucQo'#e0ӦV0O*8akЇzZ_۶}t L}Xeʔ(&> XȞ2ͽ7Pz d")+8 *tZ^1$\)泔Bj-i[A`(9xy]9y7+K2yS̮xh-}j%/'[Jg>vRU rG,B} ^7([Bn}/PKce=1a=  *nuvola/32x32/filesystems/folder_locked.pngUT ZAZPQux V{\/ޜTPz223f%ޠޕZkyf&-/X+UV֛ {kќf&Gssn_7Yc?dd,9v L>WF%ΦƞI qݧbىcOw$n[C&q[ejb y<ޥb / +jRH!>Br]==Vl嚌G5~sZ[_VK4jB si&(m[柸C9Gm*0%3^H MwbZDGؔ#cg͚~.o'mhGwNM\?,.J)Oi4x{TTӚ5,*z 굡"WվaYe+FLۄI\7R]u K*)*j ±IJ-@+Su&)2RZ.ѷ^%C))WiDO7E8#x~+_6j5Q+OI޴ȟ׊syJre.)#IJE\w~x}HijP|ڢǼn~ΝN,rB$3aLwLD]s佗"k { $+qƀER1HЄVge&^YQ:e_? WT~*Õ(CyɍHk6۴fl .d…&7m/.|[:Q/6"qEΪB= r/@ۈoTBn XϣKjkʽWirkn7bc{3DžG98^! A9ESΧy:AEpPyx=z5#7B|)5FSmfAmO%-=0f3.9gC䥚x]̙ _h=X}s'.\H8$FނnCl Znh7Cqz[ne$dGhkacxicևK5ļy?\娠Mhtm=2-/oSv*~ [uJu D0Aeg=AtӀ;eȬ+(-uU ~]yz"ܥ6ܱ,QA>ff^ԼslJdBцDfQI ʞ&/-=Q)H~DYvbm5n㤵OM)c@[X JhzO̿耯_y i`_:E}\teM:@=- iӾ5)) *3j8X"P6Vjփw6JdjG͔::!Q T9Mү5ZQ(VܻG23aGXJ:BŃE4VT5HKL7s ,QPjX-( G!1S6?9("Bͽ߱qJL*.i_sx63ƏdMYS^R«ztk0BI_CfL)]%Ü5ܯyXK3+P(o{Y7Z-J8:ҤwOy!b9ay3v2[H=őޱ@U qf^' Iۼ V,둵vȚZ֔LznjpVc&P]cuF$P%;G p[)K4kۆ%ƂV̖Ck64 ))u}0KkWubMp( Zwnr\S}CrZoOiNgZ#-EV ZDIuPE܀a|P sֱ3fcCdAP=y 8 q}ztA|@HJ; VI>IAe/~sÜ`P#RN`̩5,YKʗ}`_%@ SGXK.CeLp\£:vZ>B0g֟gE,i,Olݛ{-^x%}*^@JN5@ كHp6^QU,/:$Ns{0ҟrޟ2_t\4B h ,v% $E*Is# i]s%O4$V tqifgz[{D; XPWZT6V+ O vC(MbpQS5of>%<`Cz#4=،ɭ6b{4ѱ0B%bW(}?PKPe=1 (nuvola/32x32/filesystems/folder_mail.pngUT ZA[PQux VkXR >\/{*ltom77EmA}Y鷚ZVZB_M629ikiT9g3>3'7m\+FlqD7s&8|bj#?)GNNZIښ HJ츄>ux-|^ܱ#m׺vtʿ16eXX iX 4JDwP.6$Kˌv 5Ej.qznPXX#e Ʈ%%ڡbp|W0yWJO?L>[U xI'-=.0jTC v2Px~⑘&S#tmo7./$ԳQFm0 P=@Gf36%U>/ P S^T>7ᇗww=Iqf4jXϜ~1[i%JPé':*h_飪pX36jOrS͑] {1 ʝb[.{o[Tt`)"0х\J$@ᾏ[Zj*-GGL#%otjyԔBJ837~<ĸ 8 d2o$+wt\c}-7M{P5WfKtP6w<ك{$t4bhxjx/޶rPi0e\jҶ`nSe7(b 'PU̅REkʔWǭJ}BˌU8kE\xaHaav ͹wjx)Ɖ uSL~[ħOV6EZEmklΆW؂Ux7?+j೭/:ucrՙ2 xfP!ZC%ܡ^w9P8j J̥HK/g30lAEj@ Q4b.>4ܡEy ݮot_RT(Mg;Mθٻ {]3*T%4tSb|.?8( mNKqZ0BM_dPvݴ28?OԾ%qX!%Jk8>Y "f,l#0jECpn]9~ޏ>~gIxfs 2Pq!ߣDRv[,ta, h'4j(F| M"MXHnjZĬ:i'5js0QSYq r^jί?p.D!A^rUH~z9@=P a(3lTI2 ?:*EiLxZ iTlJrww/%Bem35TEpg0umUr8o}u})JۃUfASw-X3 C vY\f;+L8wRډM?P33x[X(#cCS&ս*p ᱠ pjo;\$6PQ" …!w3I$^hA_(s1|EU9mH8(l "k0X:g zNu. 7ۢ0xEYJU]Lf@7c&u1B6.3's:8A.jMglܫd7c.~`dk =vCuv48|M Z#83Bː:|{ܖC$,&r@{}O;;D.r8ͯA7 HfT35xYIRwU?ѹp`4=V"= 49qzid4[m\y6<-<ƛMdJ!)^tj>(z$4pEʔ?UXسoPH\1(17Է/rUK<[Q~8MpRM3Fb;_>pAv^%_Yo!ˠG;2B킢=uz0T?*K$=Ώk@O$7he vwZ&ν'\^kv2) oφbfwo/`|r)+&Q +xKfU!S!G]*W}L!&#!1+k$Wd*%jAA97lu@-[ՐmuC"V(##r(/{(l."2cͩMV<9t"WUh5߮NYgF!b+bT2ַM k=BKY- fg=BǬ *`WGh{˘3%CbSUkCQfo,mUubcyӆQsQ}ϧs}=vT, g;q`wWBPKMe=1i 'nuvola/32x32/filesystems/folder_man.pngUT ZAZPQux yXRi/z ӴXAb"5eYhe.XNY(Y:8*4YSڨ,^,56s*5d>9^ 2Gfoݴ*,z';*l;PgwiȪ7G&I$aqcqس'ŭo Ah0FDbm &v`VA"8L -GT#>7&kU7:xY _"}'ٽ[Ệ񞈶gR AwbfDqr(zڨl25( ssP1G#(_I9"w>jYT~WvuHN2v*8M):A8 ,{(RO)n4yxۏ; ajJldr@ejZ 5Xf4 cRYXpOrlO>|sԸh9A^ bӕ] l/1 ž@GSX#JֺJj\I?3xZJC*3/\DT,b`&,.|}4)f{Ko :'l+dҥ&pʤS>u|P4 fRo˷9ayv<9+^fTH`ӘZj X 'Bt9C܄ZDYY[أI.˟;9 ?k bKv9s!^#QpblRiXjD}{H{B@MӍg]5!S\aXɻm}Pڰ/ siʌ8Z)O,K=tIrs:͓yۣK)ˉ޿>kBaۿ/;F)fJkJoK3`Q#6Iɏh**Z҃ݯREaPAM͢ĭ[s3Cʊ@RfiLpb׃6m\a֟g͏O}`W{s9oH js D%AZ;/EZSRX+x|Zնŵ)'yy Vg[IaSg@ I-oDKvfu2;e=$d+Dv#ڥ!Ѯg6XkiY%|$⫅ W)a'!߉gmBeSaNB( z}omXz*wRuf\2NXlu7okPdHƕYn9,ƭ#ή[ &^?O~1?Lm8~Sg(R,a?އY fǠF/`H^_;,y7= ա@[c?7UO+&S%ۍ."|cKYwLyBz^CJo!4rI{q#IB)P'$^*`ZN%GW#c[`T]X!}%5Vr*8ˢ:91GI4;PǑWU씩KvI~[#tdw:}NC;J53~˶U+>VlfKZfͺᗛKV8cv?N9ӧ=l}1?ijwKC)QV~? N$if gYHt$G3 6DjjY}#k~Y6|Mt%N<>~` {N7jfWH!niё7**2D s]dG@833FR,X:>Y} 46MM:X|\#4+nHy3YHEH)'L(e6|S xh*3}9Wͻ&U3fYuҀhlEuvc0.\nOPH8\-^y}MpstӶפȜK )?,5Z%@M6RPKJe=1|Ԃx (nuvola/32x32/filesystems/folder_midi.pngUT ZA[PQux Vy\Rip K em: RfMfVV&`m_"LI6/ˬ)JӦJ r?}~9sr"7;gpa=X۝5j+mPbw'oMNgS9@hbr?$N;T pغeChL HH׾:0 *B&2U-cfbkwaȓ$okx"%oNh8%j%נPvAV1f.3@Bt<_K"Z ` Qa1WXI& +#|e|7@NċZ.^yk ;,[~B0:Έjwi~[;Lyקj͟kC!f L0.woJ)uB̾7K ؛ޥ4di-i.kٿHlʯ`z# त<[  7Rɲ\s5~1+mdgZ[ 'dNЦ (l$0 fWׁ'Nq? 2R0t6| bren]O:D31C n.HE_dwΒBĎ\$}H9Q 49_1 Mz ~oUanK{us8Nȉ.Ÿ.8̍sϿ'qMaLA(CSLh޼!V#!5tnb=?.݌e`7ߌ/w-kSU 3ryY Hվ_xD0j=/8 yqDE,%PaM]ϑ<&[34Dnġ'biJu4"%ћIWmI]Qؠm„0g# -kCxTQF_?g2UT[Qnt5 rIח{4=)Rj(} q0qa J$k%=,lBOQMO/JM$V& ڒMs p9ԬU[~)VaKͫ)qkԳ Oxz&\lwKFx-|lݺx\@uT ava{j {awJ2;"_eӶzfc2mgdOK3"-?9GSadvaW:3~TD~9ܫ ,x!Z&4כ/ sRh2aA{أE/2-Y[-'iMǝ"˽C|3r'&ւPM#4PsՊ 7<ڤw|`َ*TR㬵*W-$?dD2B*{ X&k-xD/̀%#kPG05^HQ4l5mn=U3AV&oB_PG!LcZsr}uTN`aLEDҮ B |\G`>x6;M~N?K7q|k _EpT\Fre3hF,A<4`䈡e%!V Cr=(k` |tGBz)-&]1ߑr؝RQ[B9 eş|ph6RO^{TmʒoCح8'e`$YBjZiaC 5`fZM`c3!AWq{2⇸{3#\Q /,>2.r YS/mH{$|W˃\ 1PBW.\.m$Ƌݛc _ʦܲmj4+?A$ÿ\~T o:F؉lH{[k.o'2@NjP۔&Uf0hS }N #TVw '$Wc(Xמi"/%k[[Zu:7K }n?{XZT8KlWo@N"mpZnR9w[Gڛ2{\t/ ck3vD8mW#Wk^g؀yIB\n=jZaխRmJ$[d"ܽEۻ =r@&VS`A*Ld 9.3k• jjS_$HR=>F(?ku!+g>ø)`ףn⇖LS _qrq?S,(b;F#/GǩR3= Y)+фs $6qQ6C.;Y|Yvd-2e)&sc 븹}ywb!PF4ۭ% 1 i)f:IvYWݯ2%1oTxΫW6Ԣl+vfD1 ǖzQήa(<x<`o/; RiN{hj;Iɒy*ʬ,C+إ2bJ$_}gf~6.SU .p5S4b%6pJnZg(4F,@rwS)o&? H`0=3dF{תM6  S7X}}gtk]1EKald^u c/k| ֤EymtBqXoroFu p됈?NZ$?uHLoO U߷`D _+OߖL(f1%7a;ʣ8A_Ne1Q`eߤZ'7xGOG{_e[)x~rSQt)NڐgcgVLۘfڢ'MB0U-3ocVm4Dꗪ ,C~}YoN3 Hiޘq6':F%ys w1\&<|C_&rqPK=1r+ *nuvola/32x32/filesystems/folder_orange.pngUT ZA[PQux VyTR~s+M1%L2EXͤS"I66V23-6d5Vϰİe\rrIJx?~{=;ONsoC<+f)[5?xWUsn̪n⯙q}oC:8z/ޖ2/$amm}@:)zzS=bwNMB&3w^wu 6_'3hЖp@g8MX g^kzŚ;kXZΩ{R˅>#b1 *S3=V ;+ M%N wTc'Uג 3_[T!/'Z@h0kzlR!i4~3I 5_sK>tq^f OVgp .mѺ[Jƕu1u{??r5 WKxD<'\X&pkwїa["Q|(~99' /#y΢rF.8B˻S͋"l>+ ?t'2bQͺS.&^sJ$HS3TK"!o|(ܒW=(E_%FcϛF%fN l-O MhR}}ä[|NpWy{K5+>ς1~+k/!?2O(3}0ɑuPlCݿ*(0~Ѧ/ro, I3m<s;P '"fZ'Ŗ׊tɎZpVzlِbVEQI]%wH'9 mFbJxQr_n)a$J~%s/BN!EY z)T %A7u #i2^x%`0< W/DI s"h}bbȗYp?m5dž4Q,oqmjQ`u&h ^ez]L@kW̞ _&~ثa5gYaQ%v\)+H`L$(ў'Y5MjxgTtRE>q"+ pptΝ_D:OP0{yssnB~G]i?LB<͓$@0:SQ|irN''+NK2Ws2y%Bq ?*&_&<0QQ3RA eɱ.À!{4I]j ScdhUP6z_p'wAfLX'GPryV N-/r\dکI NO3#pT#`K9U{0ʦems?@FRscACwH7 Kp}.D39T@/C wy2ܠ2#>*S8zcp2.4UX O﷨E?;TQe>A @$bS՘1GCEPKݘ=1wX/nuvola/32x32/filesystems/folder_orange_open.pngUT ZA[PQux 5iTSgoW%A$Ab R!AP0 !R VT". ةs!a a1RL(${'~{1)5b2S@MQ[g/P=kSFs&g el~&=tzV&;3=\:3 HE[P4|>81qp!aq(@Sۂ-adH[":*tHϳ;ڏsn6;Zz 093:]jy!'/('Pu֥лŖP3sUi[Bp"G}rw sIls/jD &pUV \pVv b˒瑃~lvSH( 2 V~Ry(tw6m9ҟ=$z8jm H\|1pJ*}Gv SqİD)?󁲙:24ԫAZ)49:"OA~ Lb&0 =`8GtKo4+^PpulN,TJ8n| &!F*c6ԏucℤ,pL!H@_O$pX+~}(f sH?*[EmH :5lxPSY& "9@fs l`fU*2*¦XgL<>t0J]OiU]xn݁7uzwv(v-'KqW ,H3ꎊ7aMUp/g((+HD/[5+jLØVI 9"*(SZIޢ1&Lo5͞h,tKnR(g | U?-ɲ\_e4{;D74U+gB<~Vù^+V56ީgpcouZiğF ]4#Ls"P|~nYYZsJ`'#̗+BBZD5;=VR?тJO̟ŷkuK>r?u*pͭ˚d`*ݙYDq 2-ק ]*(Mh2[Ufhibbc@k+y1[$O㯶X@4nzS&jqF%M./!ZٝU^+!fdۦ3BD:0QySe<MR(n/#'GGP2g?U".k m̵Ё@K+I'4tv)=5>S)BpoxoC`7#Z> tT[1Cj5[:I  ߽:c])='[UVvejX,?uGzzS2b6~bV51mK>pS X裵-.f0cԕ/+R?zJO<0KP/W0\"[VSgT}% e;ٰ0XPTKbUrb®sW`|r \wl褺j̄(e_:E=A9_DD%2D3mS_Ϗ9e*7!o->djNQqqGXI SnUV z 5"6 tp<?\׮jt黄0OX0*{- &?Uˢ)c ܦ3BΞ"|[(DSGT*>MUwnxgDgY ڡfn|wR !͖ywUYD "jxqDbYH+m^ dZi s WF9c`dw ܘ4`Ƴ oEE*8+T9D\bN\^;-1}z>jhQ-IAV͜kj݋d 1\ڬ ,^xn]U¨y0n?& ӉuԔ}7 wo85owK-ngebR. V\ZCeddJmIXy{ЍO\47(Y^)JB{^5#x ϝf*&L Bo7`}bls܅z1=ͿEk; `RzP)p'^Ԩ%6m[Wf\=&),DQ"W4"T/I}ĞgKPќ0F>Cp 78 ?<&be/}HHbwa=\ֈճq{Me TΝ]FХ{XqBN W@28B$e+kO&#VeK*?Dd{]Ɠ]p u8N 6ɪ`Ʉa۶=^fB[~e?CzR)M^=d*W)U!mz YsydPޏАNd&H<,WAb#fS蓟kRү ŵXzt8قfsw{kJ"WA(c(%!-jDVp>QsO(H hfS*plK~يS fӨ(*.@EDC׊y\Xf:2<0iCEm|bET@d=ɬ>9)8{:# ulyz \{ _ZbrK l#LÅ*!3KrArFW1ءvfP#9Ԓg+%W]R07 4;ժ{PTa.86a| 2 ? ]}}&bUlCcdz*ץ'#ٿ[z*ʑٱ?#a#GJ ~CTƶ8M}ҥϳtfG/O82ƥyJЃRCg\;[FL ?[-%%e꫺=ԜG1%)b\;{k = EÛMPKZ?>䨛Uxb\3,V➟~znZ]~1 g[^x*cT[xԳdkBwz1ˇTa5q9e!n>_#fsz*P 3.85f<\"Ad=NڼEX-$ @z^A/BwA9bAdT !& O#lbΒ{bf̂/lP!2cR}[.+i~n &uu|j~ |`WNLJ٠M lcYa焤% ل#!YG\y|<5fFP(xg#SJ7P/*: AzM (d v\26@pclAsQz.4`RSِ+aeƬe{-_wkyۍ)UQ5z҅LI-#/Vn@Pȧ#"*.Ũ GT08U^Z8:( 3Ղ`)gξbXb6n_2  ;#)~9~F]A6aƷqC ԷCO2$D9~7"'T1i5ѵey@2Fpn1(*n\:-Գ}e#uQg1qL!a >cn$Be=NZ'SdċȞSwb) 2۸PH7I_V8w6ٓM -Q|6.oZl4#ţ~tqub$u(ܾjHWHo[7P+04 uB&ꚦK>z3p $ra Z>(:`G[l:GpZ\ *ϻ|I 9 zod?>h7 _)X%6KCv*.?8P }e{Xy' M,w6Pk7~͈[@] 7>S?l=fZ[HSߠlI>XϮ}*qi3=:M/ pyˉ\Z1ʬiY5o] U윏B_oU v< ˵jA. * mAٹ-`|nfa[# (Q&Cx6mYW7Ai6suQ%vVӎ5]yO_>kBlwwl+ !dZ'C>>8K;>8c(}+ nCqBfL4l6iJ{I d3%~x%&8T92׮}ml+Їn]BRfd R$& }Ȉcښ =vf?6PNňy? 'C$~7K\Bw=nsDiCؒiğ$XB+S=%ejWϑ,l^`%f1I K7p=`o!ŁCNh Ɔx_ J@#'#.j>hUʢƅ{2%tNr"'!fCf%)(iea)BbQpw0;XߠU;ԸPw+Z~ 0BI"Řh6oX 7nbmἂ/JQ6x:QohRnz_!2rw.g6oH9ڍDoS"Rd*痗+ {!tQ>}bƏ1Hҥ;fq~354.j:MyklM =&]V%WnF*:]׫fx6QP VE|y`H-K/\7r{.~7]MC ߾ 7ž`YuLi'jC RI!4:%\'ãslL ҙd Dc$5pa{ =7o^Zq֜s؆@-}yis-G1% k ]Bաf_5r?%ZT_ s6bM|-EYbnxW=e%'r(oݻ~XMN)9i,SlDO'2TG9@4ko$czdى٦ּ'DHi;1믶p( gVEeQp.۰k#~͛l͌mJ47vb+?l¶i B.[B2҉3,4m)P~fwv.&VbhϮaiSiV;ίNNjʨ4|)~PVu'|fYkou% |hWdt7\SEl}#?PKt91cuNz *nuvola/32x32/filesystems/folder_print2.pngUT gUAZPQux {Pg7@BQ0HxA&@B-En U*TrMD-("PER%T *MU4DlA~9μsf~gy=+~ e;6DKM̜4+g'd.(r,)Gc%Dڶcc2~H ;ʶ-=/0g)٠[Ł5Wynڇ"jrAgUn:z_˻%u/T_I_TeVd^(eM?<=v=^Gd3—?|sO[̜-M Bm#/݂rszk0:+rY_ǁS(Aw =:,NثeTH'נ 1qX`=aھp->p#32c柢,Y:ٰUuwLxc>lI_~[aO: |Έ 놩+go,nɛnoRD8<RH|85o'KKJiu>I1C7+.3u\S\%SaoFxP͆dIq/Z{&0s <ӧ&V+kH (j1%&Yʩ,JJKcxk [G7| eOi4`m_HDӜ)a %n[O$bs0(00c Μ>xnY;>6dGAy7X8uc^+& SS)FxCڛfFHdP\Br)M,?H;i; 焈*JK}U$,nlgZ΄rMi6.+g`쌵+~z𷊏V+R51鰝 vG-֙?ߏhZˬ/[(qWYZ 5Lk^RVvC\wO;Bb6(}Gs?n=! –CiŒ~9C!nP Lm9Fqfa>mŏA`36gXqa!2ܤ[um+L Få"$TQW}mnkpX:fwŸx2vn\A+43t*N O@2E;ۘ&l`]ϭk_}͸;W5r.W׋:4+)ż|#FoGL~o\"37Xm1uqvaͨ'afaC63MO/-˲'#AMY& B/huJN3z:D;]Ǖnt6ڕmh$5[7`ٸ&к)CNM:m.U((r7ӄ)E & .X<Ja6 bξmQڿk`JBK=YK@~ _\a>$֐:oR>}:mSO7|zнafnRQ.Zg&U%`He: ( o7P}ҲR:M :H);b,LC~o/:*}#H<9 Ym~smfad'.hKJ12 7@'l;7'&9*޼~gEXN(bEd(F`Cp; tϸ&XLN8P=SaETH`kZ{q[V։(d{+Hjr^Rzz)+ܝl0`!nYSo",OC5QTIaGV[XTFMąEf?+qP kh=Șx]Cpit#=Snֱ>$2plНT)JIIi?z{wg?Dnn=i]v۷r5a e[b3H>Z|y˖Vz˞}Tw|ѿ7= {Lu8&..[Ӥ $W83K 28vVDrTR6$$:sf ]s&6mO=7ӻN~>8,]:y_;xCSr,\婁~N N3R+5FG3JZ$f,*Wn~2G 쁿Var_=$:t$ ϰؙp܂\%Eą}CC`woX^ {4t_\TKeK8ЇQR MtC$^mBF 3:iaQu/ڵ1n,3  BSAHE8H}q[dd&W2tU#GV^-1=nBʶ:g_)hhm3|"ZƂM-7_3{ʞRf3B0fcmW iI> $1`ٓI"E8_ڹ/)u(@XHBdرjf&x [;@B?{(GtysۥhӬMt=AU\"eFܻFQjCޠ/Q> mNԦ?z "oFL@Ϧ'NCI«[ {(Μˈ xcTʥ?%JT*T>Zە=׆*R_^v}@OClFI#ɽI.݇jYP67;3Etn,w+bQɼ*0JߪyG]o㬕OBi+ }\LO9x`BJ  Q0#[OZ>a,x_$՟.bZWdEk" =h]uT8QPm\(ζ ȤgdͯUTYpZ8SuַWkׂd2M3Ƕ8|@Q|;ve\#t~Cf:p;JnO7iqIdV:nʭ_D܌ #W.mOned˶}WwUh A8'H(thHZ>_>ʰ1 GyB#0p^=5{I3+r5BYֆDӰr:4Y>X R/ Â"۵VF(܅0fr}?_VGj o<7yǍ51 r焦݈FJc? YtAU( /E,PsTWlsz㋌ntveE&,\?Q&%9y\T2a9KűȚNU ]q5Kk0fZrwGv-i 7S0{OM:d`ғ/Xׁ!=xWϼ ^IhU?F]fGRE2rO*8iD*~)$q ؇i/LN,#V]E5 Wٖ':Ոs*OwP8<¬@_E`ndlj, MTV ?:,jxxs_#.񍍎hI4K洡Х>o/ߕv 1/JѲc? _E1|cHX[pg:\Ojp@1g`2JOvޒL85;0LV殥R#~e__}P..֮= bmqh{ipzKy't9G!1v+n[mJ(`&J`:ۦ4oxvK7S%ޣ̋ۡ+v]>:@fBf+qiRS=)?"ioh*Kb[U[p vY$b@ vMPdXmVwE=$%,GPu6KL=S;gJ^Nn(@[kiM:f MRk&/$#\\}%j+q< wEs%"Z%DYi+)JzZWFBe:[f39q9$\ *+7nH7-\g@S&wl8ȚY0::{$;B;CXyjN˱Onw"K-.@UkX.#)6 UoS Z]"s IR^'FZːdT?Kha8'nIڇ]E˙gA*˸.RJe:OMu)ϝ/ssS*Owg?g?v3s,{'tlۯ^(~\~Me2 W;jjۊѱv}[,ؓY?^@~Αz%\ԥ mZ݁/ComCPK٘=1q ,nuvola/32x32/filesystems/folder_red_open.pngUT ZA[PQux {\R<DVlJqͽf֮d棔sHEJ,_=vomݲ {m^o+/"3f>|>s<6& rW#9Bvȑi{ qFmC٘=gEgHdnJPĈA&F$H;!Qܸ7B+i8x i|@Eb"@ACJ7g<99i,+g;-4ڟL+~cu(E&p)tbj|y(2mhsXd0[7+SMe%ˏ1PL,@7M~P-tFZ}mjjʅ3C `HGuK5e5)T^nnjgHF D+TKy!wDϿOE!S+ܢbZGB%DH"ϻ ::Eg*F)D# 6Vݙ/ Z3#iopPy,?tCj2*|QѨpRjWJÈT?'k:5EGM+Hp}Z2#0i8eZ*]w} *Î}JBWJ?+0n@A}y_.v0*`]@@(T~KCS#$ڦ&ga teWKJ1zqUzNQr"MkIJp)Ln 0rk^W-kzBIXzgb]~hEb j!gr@f@GJg9M, $dRJMJ:p*F4bn$~Tԅ¦dX.בxZ}}=g;fپg95s*M0zgơEe.G,}Dn wU:Z#əI36}03ƃML) K#W_k4l2m6pujx6 _QI?UIZrcp(zډ[Avl-)xI#fejTGjH6ؒ;}'E&B|F| M-pRj J|Vѭi;:ՉN7:ŮK{1OkJ*2z[m䮷]Ա\j-XU'R4!a }gBAJwc{jȐ`Aqac^.tRB Fe"ʗ2h^vAkrX{T!&hqX,̓ԁݪn5|7@㳥*A,u祕Օ i!oԆ#'[t;\ퟢ"9 *lneܵ&wGWP˝2VJ;"|'ŅҾGpDw"g 'jaJQK -yӃA X{P:G"GL½דCrhh_~v~/.p5"3l>r3q](O=+/֊'_3"f9FLyt f}#qy9Nɫwn<8Dϕk'7;I@<>4kulV{=Gw#0mo |%5%?<.'[qa몥`naD=0q3h95nSl.Ow:. BiL1ik*$HU3%mkS4\U9FH;.K :699Y;YE?#%_?KnwAĖ+P`ѷ9jޓ$Lg̏+:?s\z|lZ `ޣ4 :ܙ\n_+uClʿ3C:#[j.]!kq6yQHZ3I 6aWan~h8yv5ƖC>@-u t#( )fu!M6oɰe3Ǿ3TnOԾ~Wp]eL-LiZ S O8ŀ+f *"&fPKAe=1U )nuvola/32x32/filesystems/folder_sound.pngUT zZA[PQux Wy\SɅpYVnHM@%DѢR.Y*D|Ҫ&}+* V ˦@C,Kф5 $?fg9gf {wX ]a!LH{XLs&0ga@m ӚxvGqg8)#&Ku/~il@]!_q FGSd1;dҐ/aqeI3M.u^:,zJY_QˢPs®Di50ZÂӽdOOT.=47o̒Fy-8jx`|GB.=NSO^Bhh'ڷu3rpg|O$O\aطEjjn}ڨ*_3 w"}\\Nv^GaD{۞b('YV}.3o`GB3' /.;QVMyT>H 1K"MC>$buFi"34/,]3ΒJ*WQ JqkXlS[yҩ6&Ϋ3*b|Hʶc2倜ZQyYJ[Ӫ"-mƬz7a%kVZOOO֧$]fb۰_?ssaSD9ZĿ>W)xX+i~C5}7)'F@ =iBpړ@; O]~flYG'oJ Bn팀3YJ5td%.L[PtQ6ī%893_ðteũ'h Ҙ^(^iTȪqc_\DS>t^_?N#v[ /Ɔ13_Dm%ƅز}GQxMG#2'4H(|68bƚ%RI?WJ޽HqmͮE[!t,H7x3/MFnw=m.*Se8-,GFEQ՜uAt]gӍ(TKhD발ht+M ̈́52!Y0gA hOnH~f  fgZ޾nYKxxA~\HIe*٥I=xfΧZ6-[ Y8| 8DɂrtûjTro pYH$9y't>ޯ+Qj}ψ3pC3_n/>_wf%aUȏ$5ge ^o_&@ {),Yh%?QZnfDN:pcIh5~4AhP~Xe3Loy5Rɟ6qey2؎fE1d,\\SIcQYBou|ư}Q׳U쑝z,7Á ]ᛆє+aTyXK|F@u_ogBVc̖L y.>W˦$Oe6Sp_Q)y@h 򒑇^ŏ)Kc_^PYfǷXfeMm~4_bAS))ר^̤Ю݊lL`7^T6[ʜȣ;fCFitco4.)'/m1 ׶Z)HGuEw)N 38+f:U画 Rt3Ee"1 n=9l=4=6)i$͢)+m窳/|@X< QloS931f˕19̑tFcui/e3TK7bhkH,#eTjh #[7$|m%PkW-{hkFh$(N4b] 4✰ [KoJgKFzʮgwŒ5B"Oz;NX.PZ!jDA|>VO N(({}L\̇@$\%)?30rWvxcۘהMZdB 'Gqܸа xAtHɒu2PxP]Kc~ [O4oTas}n)[?A~{͆u0JCk>]<$LrFTw s3_g{Rp^j)%dG5٪^=zFu7BР_azsrbcoy/e #UK*?x* 7`י'(jM)K׸0.gֽZ_܇h 頨O<ÞCc뗀`ӥTgaIn~|  ^}|)ޢvj~!c4*ŸdPz7Fl^'OW]nW@7t rBf=3[2wPht>Y)쩅rO+{NQ٫24 [EbCgt1+K?+HI-{O]װ^/~Cf功u , ׻e]}†`%kMJ&dkb>ڂb'ٻyF-9I]ȍOZUv{fN\IXp'@IALVƅ9`O ξvr;PKܕ=1lR1 R 'nuvola/32x32/filesystems/folder_tar.pngUT ZAZPQux W{XSGɅER%@$$ *U oݵ  h mA [ 3JA $Bw1揙oss;ٺ`ms? e>~Xp@eku;>%D4?ĩcI'D:.%)*).1 ٕ<ވa,%/ϮoThd,!+t.Ǖ Zĥ\WľKYT^"z" _@oM}Q3**r)[_F c%2a]K^au R3 NInlL,j3ۍݥWJWFcե_+YZxO(jĚ.c?]-*X]>u(Κ%zOOM5hΊhL@ޢ~g\(`C"oݼ{ +/]ʳs5?mXj˒ :~85'CՃ ` @.!!!p:$;UyS[ >SSYvG^"\NC,ciFdTƯ\aN[{{f)WkΆ8RHh 7ͱ'InVW+`/pwXKl-nh'NLqrpHF7w7x]CHRkV (64 ashEMLҿҎq XjȏDHwo'5OiTj^k?xEf&_GPB1c WXXkYPܘ.7'3M({d~P":=JT[2hFu#yꇣ\Q3HYq!HZiJ' GK;S/6&.PUV?<ysC8&Y嘄+v_ڠ"v߅&e.ceP[dϒe!MuN|HGS^:6 |c|<|M{6ށxXfy*9r)fSBz 6ch4!9E7n?W ٙW O=KK#\M轴r݁?J6_@zEY~-v}斡MP+ |︐Ӧ"BiYX9!V-z~ENKdqV+~Xܧ8=:I(|#MBͻ- [. ߓ G.j^o$Sqlj\\?bp 8ry&d7vCr"9+0F͜^ ̌,Ndyqu qlՠ_\8h= '6 !W3FNG~E(v3lNs'>m; u d{R ,aLAMibZ$ü-lgL{3Z] -p%>[J/b\+֮NW:31įJg* ӗ Bh|7uyH\c 4}9fV?n>!a{;۶+vp2N~ )cTkMYU%*/;q y~/NMhOl.'^w*-9U O(lDQ-x/s[/|w*,a)c$sgeE(bNy@ 2DKlkʧIp̊Fbm/-L^@>έAѭ{)N#a |sQԙ&JX #i}nkStC54ޤNecG:#R[(EYH+,wŰ3El[%N Hͫ5\iB1dYtoa97pixtn3eY"~r,C,čL/ZS(s*haZVսq\r}UIҐtdi9-$X0jԳ ;Тģj !i^&iQ(QP;?2FA6?r`V"щiz4@*ADs"g'6ͯ?W=9f60j'/u)Ī$,-vh}wM^ӧ*=f^}2EE=/_5V:]>vq¯#<'v>bLj4cBK1̘ݻ-v7{tCSح$EKVܳ%f}]!{c"ıpoڏڴL#h x{-yVvxfO"ꫣ鬩`Bfc?wK5@>hmS!v kI,<uj3u}##kן!bwo=lYv&i%.$鞤^C{؈ g8, j;LN@gևx5@4iC"C!&`i pvՕCͨYߡyoWTFeV o;hmílD>hJ:kJ=.(eD>2&-FWu-ሥcIZDqc\/1}cozx_-pKΣY,;k&_7_:ȚS,L.'9$dY=.Cy3 *Ԑ@EC I+ 'nCari3`JMtAƱ#;طIG+C4,4)ɕNFBԷgA mxÚZޢ^ U) Exi6Ef|vׅ;<^ ܝEHg.*Ǻrk6wё^ 1˄8V ,\"j2Jg@Җ 5kHȧuh0 Uղ9 H._52) ZW0֏~ws|Qb/\\$M2 z˿86$S}r ^WV#8Su\bۑvk{1@'!քRV0B_= :(;_4TR9zzqw\;w8]DSDcźwBuAG%bC:ŤG6Q7>j/QPUH$%U4ZoUR̓Mu2k uVq=,WھGnzgSU5yBꌆ뤆[wkڊ 7>'LɴPyef6fZ!T{U'|r'O GD*-/gW`%=fxgpH+o޾Eţ N[ۅ@DGMfQ$K˲> 0Z?ռې<)P{kN燄5"X-G6"GFsO!#Aϲbt,؎ hxmlaL^Kj;'!%>}ܱ ۸C"-D7SlKl8n?kVNyUވh ͐TPyP營#MQ)4-f댗û_Gi:v_G>D5DiUr;?3D Gos\Z>'afUͰѯepzM\6[޽OWXZY9 o͚l $`AE2S2涀gV P+b+v+Շ̇B>oeUD͑nR~Ain\/L@>J )K=4x rT9.>}!-NnC';\86Ql>!'ӝ(.3d*X_2PDB-9"D@ve&4í^q\Y|J&Kc{Ug qA+|  M_ O=p'4l)FbW!6u]~f3~&_)>vJ#|VHK,\h%2iÒFՂVϿ4s-UԄk//筭XZSE%KIMY h'YLyYbIW.&̶Y~Ycs7MÎ,KLq;Ҙ.;eVFDzT4rlƏ(D `59wbN >#:iX\h9:ޱ HӃ`*-Ia,;':AA+ື4OuF@F"=ziCF ޭ?u1Ȗu.Is g~`~ѨTmUG}T#̑Y:k6 Bhn >;&i3]8,*)ÎB".zveMVjeo6K%JYjr؉&߯ YH+CE!5( r = ;vm[lPK5e=1q2 )nuvola/32x32/filesystems/folder_video.pngUT fZAZPQux {XR7n/[.N(Km餖 Mi5 5.VE -.&)˜tjxCMӦVJ9cf eֳz07w_hc䆈XK%lɓb*uN]#u 7)DHsHKrqB{oDQn%sn3OdD/2-?BGk `Ž{V_ o1%A? YlRRi?ν{ԾMϞkXrڀ;}1$r$@*)/yhC^ HN~;/@g3fڍJ[#ש{ooqˬ:+ V^Vdqq_XI˖ѥ_Q(5mK3㷶lڷSսTw p0N8cuI!#GлSHupUܽ~$+/`:Zn5Bg=mrv̠`$: 払tBPCcNπ,iUBBB2b~ߏ,v9[(WDOb4-[j\]\KV܍Ombuw@4(C"¶U7wmYԄ$!{dT= 7~<^#eݽ~!-5SV[{BjT!O$*B)̔Ӡ*wm4''FqkĿ9{Yp3sUfO ;qA?)iQYeTӶ+ UKݿhMMκudzoXwmIq΃yLoMݿ*d86S0) get7u-L$ed_/ء@=kay-l~gwzw3 لgTB%)ѐo-Ԝ`Mx&MP|Mnh&@[`P^9 j2EsfԠG]=p:&\j$&ȩ꜉;6$(/IR%'Eڂ7NLϕ}Sc&f.׈mE ,>hKU 2Y'gc?CZ9K1I'Q 7ΒWth!M  4.+@nlҔ6N#3ʬHB)oArYx,8~kӨtV q]{yv] '("ؗ]jd*Yd/fˋ:'S=j6j;5WF,rM |g`C~2G_5')6JzOG%qI %J"z["AKWאwPv z6[ EbĽJ{Sk[$"bGY:L~qP>zLkl"+[Σ*tᧀޚӌ=E)j%A._J'& yۯfv ҵNhc~diˡWH&T1ojwJhJnp,EY{=5c{t4uQt#Y&.;@靕jFڰG9xd۩[Uu\.i tbopc`L;1ָ B_a1>\Fvpxaʊ݄MoCTv!cxhq1ќkhd{t/ ʻS̹,X;?(dpn[ndsz* p/jz /_K ԾyMQA1FKm9G0WlEGX@_z^t>nkEP*ޱbF3S.]q~DAM<pߟMh'ڙ/'gd-Q RtFVH(RB\N%b܏D3Z/A9|<jkl!eypa ҝo$T^řZ#pVɰc4ropj[MP(M&3OmT#v;RoSZ2|~S~֦hS##W!T jR-9?8 Vi3g0S"ӗ9mv\Xma& 74t?s)iE6Sn:85LI)+wZGb@LuF0ܹY|H?>Z/hXԦo?8@vhBHՏ= VʻOo83<ޯ .^]ՋcY<.oGZFokg2^ RCk?9ĸ-ÒǢ\}/2۔21>?1zć .Z+.X|^7*Z/D0&`kE#nq$A czy\J kć]kv Kv~Y.k^tV4YՋhDӍzOc*zf _.g\IVoUH~&z,ޤlwN.=W"-8nspvPK.=1`  *nuvola/32x32/filesystems/folder_violet.pngUT ZA[PQux iXSON2Ȑ(H*JTԖ m W41p*u h[VCECPI`I87z֟޽*ڿlʘI9髤c=Iھ]9B |VHT1g }i܁jJf>}c/WI D,XI}io6Ν;yyիb@#G]jRѷX&O[gde[(}WOSO=Yb]7ѹVzۻ0Q Orv$pƍ2@a˄?4缘MBӳ'˗mIO]yXo>}ڒnƙaݺ1͔?K[ $ִ{Xqw-jqF҄3'R_=]Cݖcx5 $, $qҶqn(/22>׽I ̅wYlCHsqsFb^+˜?g$<-bPaҚ* +k s':;όEC$[HJ &;p2p7g|"iDc` #bU.`S2F]{` ^1;XX {Fm( ڊ/ dHZ e:#Vm~x4=^*,-.W),WZ%q)݄mXx֣ZY1DOFk"2۰zNzJI d!JB7j PjjMCLӏ]풾{ tVSyGɡ쌕\jPSrGڧz?Y Q_Sx24H3c[07*"3T")` jJh B.XƛX)~bW<=6] @rȚq[f㊄Ʉ$fRq^FҒ,=d ONӛD_H[hET<0OkޅL8\5EY$m'ڻR34枼=^JW0/w9Sm='wua9I54WtS34yiȢbit)~Uŝ>k_a?ނ^O`P#5 m]邱["iŸ&"KWsJ!WuR>',Ղ;P X>]AI4-aFOX`a\6a@X$s>سPD AéΕ =lTU:naZ2~z@^:>[!-&VT0]عt]rfƕ*ɍ/;ڑnl>Ҕ3_P"!,Gs6u 81kpԘmzGŠ*pf6%&rF0ˆ.حɖ9__k3{BhANhQB̤m mkG\{QVM='Niq -Ԣӣqlck6_Sx$@tg¤?gb" fM{:A6K iŜ6գFe0ݯzdϣrtl$ UqQP]DS63Q뵘J>6a'ycѮR){LJ fmGp/UlT,` n"C~#.O+i/(t[oDff_z+}B_K$LG}t]؅1`\=KmW{t5n8 =|!6q&c͘^4ia}ڊ!"53 $ia8@ŧ4Jg0د p;r{dShǑO9`BOD%&_O :'{Г(^ͿtR+Bޟ@.[`]RHuҤL9+< =Fے\J@\u7tCt >Ds+KrA/46܏(X33%|o#]wsa~;ٗ qԽ<%5 y2x \]^? e~xTXV$ ̊ S̹Xc7EuoHCowZ&: `[V k+q?rDA_JI)5 xGqh;Δ1t!J'Sϼg=cv L(\ZpG0۬bZZ G7r3dT@vBn7ympR1y"ɭy^G"q -^fϘ5,6;oAƟ(a5Bwt]p@?#7c3C"-o\`jE4M!g b<}iְq q'L_<>QtF2Gip]GQAя8nV0rQa5u' Dk}73_w>n%_ i 1$VmӰv[QhF&̄< nNىyVs$-*Sa9"9˺ךd" O^ }0[QBee^g(5V-Q۩2+z5J4SBPhOYwYa˚MD1,i%d'52F¢^{CX;T8  <M8_[` X3r)۽WcPK֘=1tPM ^ /nuvola/32x32/filesystems/folder_violet_open.pngUT ZA[PQux ViXSg!M^jh,ibAHA@ VdYB;UpDGi]N! YbI1\ք{;ys6V.V؄G=QAe#%|74Κ̐ÙӒ2e$orO%*T|  `ODK: vLMcx3l㇒.\-R)uY8_7兘Pß>2:B ;%ݪP[jii~pz[[{[[ZP-?j=4~$^E|f{^GzzR59q[x}_j>jO 1aK1S<j#nZg=fmV<^],-[-󡗵ǡڹ9ȴkd.Hyp2|ʟеí1.rp1P:D&0ApgWwiyxYy9ҢҌdd, H:7=NE{RRH%%&Sv-qR3p^+Yք42&vnDq[4T_O]wڷv:ԮN;*q'PlNێЗ@M/mxON=! n5["$SoqObp L}l@&:d?Sc8:(&X8 j-VȮR= ¨RC}e9E^ʠs9M8nYQ{3!x;tAo\??"}Y1E_˶c+~: 6GmU u:hn:uxAz N,id|*"+"F]lpA]CG|9񆵷؛P§ϢV3Vφ8 씏V}\bZNŀЍ-0F  Xn3GUa{x+a͙I%cꊂ4Q(Tm6(.i{"af vPhY8umn+"}CmNZqΊ-P:7(i ;;<xѹ8QQujZ @`eVDY@#˅a2P}t4tFUC!~ya-/yрbǮ  }0"l^j8)I}PI8$%p%UjL|g@]!G]Jʪ0jX]~lz8tgHuf-׶)c-c8:I6S<[@w''& q@Ȧxpi$=9R8a_MBFߨJK{D^\[HNk_9ugzލyo㥕~ vs"0F9;,:O> VZ3TwӠX8;K'+@KjuA yˆQH<~hWoz8l7,O1+0./LcF[[oo_GzƄ <ߠak f}Dm1K<ڃ&t&l1Ѵ0eoߎx 3oy;YXaY?B~=\ RZ*M*~<,HS| "E lTMu꓇7 ?n,?PK0=11{ *nuvola/32x32/filesystems/folder_yellow.pngUT LZA\PQux V{Xᕋ `.覭RA̯lY n^мi)͵վT۴5ZԖLR9ss9f2lv__ҩ3K*9xo04v.i$H1ÿLH%$/H;3N4([JNeX`ΆҼҁPʐMîƽ\sy> zz'L޲#,4 ǔG륺MSdD||s?_ȺHlJ>TxZvM  iATbR;cYi/<Y>C*,4)8fE1{^pk*>a^ͧ"E\9;Swl4Q P^7n<Tiaa6:923fNMxh\e(G/m_\ø>3Ud" Hzz[L.K/JKJ>2LDg3g|;GXL !~VsM,G#.x~9g`WoLZ`bK>C\ OyV]3fo>8--]̯xUX}n!Ry8)!Q\lBnG_UB5(a`¦R[Wj+u-{P\XYy658 lI7x. }ly4c{|h9Bޣ[F,AF2޿6H&r(T ϫC̓G6TZɢȽfn.7n.nr5W#[ny]GWhSlt+,Qf3nM/A"ϊoۦ̦ŕ11܁yJ8lA}hh0/] axCYte|z_W3` >.@Xdm$NE-FBr񰫓'T?-&yT5qb172t:[Z u-&u^h=[u0}tH,Dh"x2)T[`g?0*+1n"~b,TfHu*hCpv0hoA!kamXQb~Bpqn+-Th bIk+hP FZaRsA^Glîr~+tn`]n`zЊQc^ДkBWt$zhC?q XBc>,g4aUqv9j(Ζ>| HR` >~K tSkL*]f%mlcL)oӀ۳ %pI*̑gDǪ̈L!a$! *rS0%g &=ǵ\>&m+(nw_ {|s߄nCdQQ=)wA1kN b b5wVNߦتsOjo:-(F?—-}]45ꫢEa$ꐩ]8ygPɇ)W0LI,,u=Z}7X1ՈdqjeS:ߛOe9ǍI0~t<>2Rv-\0U ~gI{Ǖ]ȉ%ΊO̘_\8#M)34Ww9?/2܎ܡ|Ԣ f0R0'7Cr]2PUDϨ W$[&@dVM'ǟѵQ.[87K >OLe~*#YBIt}| f!̽e7_>7pۙ(k'sXFF*瓀SGM9RoS; 0?͸-Im|٬^OxR7Ҟ 1VM/ P# ɋFuangr&j޵+/c+ ֓ \5rtepL+龓\XwQT@qCi9eK(:ĦjԗzW% &{v0M"C!Z_KZ-4Hīxi( shn=(([۳YTbuE=rVm42Ool¦Q!KlhtRn>\@k[9XoyːEɋ±u;U2}|i ;ÊL7ł01hH0Z[-v Yz;npsPK=1~D/nuvola/32x32/filesystems/folder_yellow_open.pngUT `ZA[PQux VkTRްu/PtNvؤ͘jӪ ZVGS+36:%krdNceeeYV&*]:uʐq)&)&wYz}9;sy}\&[e;Tvm.z"폾5Sr%?=;U^7%SI~h_$ -K5O1 k'b+6$a@ewe?F, Gjuic7B+OSLO2qÄE5]]Ƃ?z#/cNOgV]Ͳ}oc˺fԸK:R?8nX;?'6u}i1ՉrK &՚Veawrڂ!~]ۃ.y8%3ԮgcP כ&v׾𦒑0|HfY J>_}tqἏ:k#pjME.9Ar\m\ Dʹ|1gz5x߰;v.} F(9 )&gps݋Hß*֜S WHe1j&|@hT)yqRQE{2fڔ:[=q7Z֩u4᧓ީ*kNq劮qn \'UrvVj݂-HLhN<эffIc03{èV*;&v͚H_<1yyrc)h]=ԒRQEI:Cґoݧ8b&XHuG&A⍋VC|9^df?YxgB48Lsڌ7B13".pr5JȔLtkUegü@ݫA}^Y n6-ȾWC3SKt."ב| \ljoԫ]4 ISs܃!b!fs޲(5Dkc {9=sd$fIt+[5䄊zHa+2.dD1sN'R/:GxW'C[Vu:0ErG M7a~5 >X.EǓxk]rrhANox J@!FQP(+]CE&*n6O1)SFI,L]&ZAݹK %*o}KTL$&(HRt'hx)1R\&uo!d _]259g v b^ by[LJQgSt)/p+6A#[$T_8o;nY. )Q2,b/P9\+OC>0(4$gjVDtAD dEcO1Pt\.-Y/HU.t,OoR 4H=vd9̭>᰿uײ9b=_)67kR=QV8#¥'l 4׺ }:Rr] epwv} ^LLXe =x z tdͥZHʸvE-Oul[z5W9tػ-/_0hdtwt*]ᢙl2aY}JeS}lGH gZ0&CWX>MH צ`#bڊsWW8~ٓYқhd ;= `*`CP .6SBZ_C/DpʚiD`_(]cH:іuSsh| /9Y0$V0>Y~pjC0RPU̦z)("QT}Dp-r;[?8c0w6e=/ǖ@J_{uPKe=1q nuvola/32x32/filesystems/ftp.pngUT 0ZA[PQux W}X~P_s3 %R˥ͥXi|RVZ+uZPkV\RniɫXOD343AG\\9}l"Z<p5Yep@lkKL>!,tNڛ5=%`uR"8qORR 3KlN  x/g9|Pׁ j~eN;ͳ2)ò}q"K#/'}0<\J P$`0_CV WϨ|yy5У5/E 'ztON{08>mz}8r؇L4='7]Y6)mKqH'E;8Մ)΄/ڟ5=D! [Є$f,Y[TS"vwƋMAMHGI sC7B &HY/w&NBU|nppGOQym,9 [_< aymPT.RAυV5 atYÑ1V}:a.I y+iL;ᄷ&A#CwP8R\+\-*)ѾU00_Ll~T wXc>?" ˡ7\߀*0]p]cR~*Op@'T*>}T_^Bw\כ hDwS}^-˳g;X.p*#AʬCZFLR]wNU %“!$d!&+_SvN"&&/J ڙxpKV^l'$3[W2+P鮤;p.r1Γ$l DVue3bb8 y^F1"pttNŬSUa v gFX[5NJjo|wyf3%}M8& 3O"sÌ0zv~kJ5mBT$yhy]׸]-rsWgwfL Є) ؃_0|2P%a2/(hsoV ~WXr'[~Vg`T&\J $ү ,896Abx8׿t]%FA`+@0u_h`Zo3]3= O0Mϲp۝,9٦+U??o]E[JjݜwKPǫDxŅyLJv :AKU@L_0)dsIzZ~QPǒeW"_Iǟb6j~NkNQI($Y|a['>ۙu`UPCX>lYjFq%cSt@G53 :[:068_*:ybݷLjj"lkW?Wg=zDBkPM|0VhMLd({ CfZwT$C7)5fQE@Tiv$Ԏ' el<ӈ>#\"_CęsF`跅9!*)ִhg] % !63k֮bheZV1ېzE.lW,tI8@Fh : /٪fϙ1C(!P h1xۭH6'mK7+yԺQy4=:k/VRm,hHޑ!bU@kEg#qszOE=!+an"`$ƐHo^6UOcB FLcY"<)Eߣ(w09;ꅋ4bKi"XMz8' sSx΀b`7uw& Hx?UT,\:j_ܝ̟s%td܅` ( . |a~(?'.ZKAcS}Ѕ.1o*0.(lr%)Yv=lRWS!S'4Bw.N>OLy/>!{NlЀn+Xq,M&op1"E#[ё*pc{!l-voGkxAQSzь<"8=T9e`4``%x 8 }f\sxJMBugA"9nDOH `@̠TypgfU(ܖ@1x:g5@=y'yU`k{[wRkdZ@ Ln=„U'k&?vm786,5lʀ#F=>#B+n5" ɪěG`#τ 2{uH9D\TVwNs)+T k8L$7mqU+P3`-*̡Dk"_ Q[R\/r#s]-_t|b\ {䬬ӥ6aKxeW6A[c-E/m>ߘa_7"Q@)9vd5_OX6lx^byԸ`o"X~qN"jQ[[jώ`I5gϠ&@ZX>W,aKĕϡPKg=1Mg!nuvola/32x32/filesystems/link.pngUT ZAZPQux  sb``p  $)tG_G'Y^%%i%E )I A)'Sm~z8TJa$w R ,020gY#9"noW?J 1;XEnrsF ̇}~~xæMM4:k5xWc~̎\"]'1-=ů>7oJ7xԱ|?]$!p9i]MML|)=WXv#aa+C#ÇwS5<~OW?uN MPKg=1x(nuvola/32x32/filesystems/lockoverlay.pngUT ZA[PQux  sb``p  $)tG_G'Y^%%i%E )I A)'Sm<]C*n%SCRD;v lwM1p,`,gp`q@4:W4fOX0aOtX|5>C_g|]ƯtwKWO9sQVS-,Ϸ3׃eo4(\®аY~?͍\\RKf/iXzYrJl|x'^t^x0X$"#$L"ag_c<g9 rI￳hݘ1C'%E +KB̷~ o96gi?#6KYO>M,Gٝbx3\Ray;ԇ_f6:Ja:O''0]RO} dsf>;΀}ﷷkkxw 1eg:t僕mlw''] v >08?;E3s/kpc[[jqq23e:<|zzmL6kc CϕWsjOXm=u~ F҇6= 0fEC!x>Cfœ`^gQ:ah!px?pa}Y&GOQ zyE"o-V|ִWڒ ˦D0r%a16˩e鴓`WuՑ`Sϟy>L,M U%TQ[$9v `RTn:}R@BЅ=UIE谜Oь#% \}äPDP+<ߊ:d):9VNH Ytɻߗ-5`JM+_`BH'N],hu@Zaxa4d3im7b;sGC@)3q˅O=Efe ϰ;sĊ"lp:!)J:w|yi_Fg-Uù!}.%1Oi.܏L8/ܗ/dյ@QpִME|,~\*f=QQJtY~Ê"ƫP[mn~|b-,'Ps<Ct4k3z9T0pq㷇S5sL;UP5Ҁ,=G%a1YHLWzeZ%`CkcP^gBW)m?8N<"28K˃8RJh'0>"-=Tx՘V3\k1 o]iLl˨s2.y7j`/pE]Zr|sEo}d9l&Ix PWaĒj{<+Lķ [IUZK3IFG%i6hۧB ;Iw-y@Zlc1n$ .#\AGa_W؃txmv/*c(Mw6 -~{k\$ tE'M32PzQ"VS.7't/ba- JBSU#\DVNKGolvlS"q)v\3mCb{t},c*rW:,U,0v>@\*Xnlj*\,Jv]6 oO]8wx(ʖRu{K +BuX<q>\[3Pd0^ 9IAҖw˰O\lS n//11t &/6PDCԒV$:lךHzh}_ŕb]SyfOleI&, ߆+j$"hkkE۳5h<4MLN$KʫZkߍ8]nsvnt1'f`>J#3^hgdq\ z_l{/~¬ɵ@RbtRvwнׯeDEq4j,)M>ʿC$Eڨz{s\H$RjVXh(U:<"QQN-4E20Ooسgt?qqqq:aOgu!ۚhΫ:aO%gJgpJӣ|bF_zo–Avu'oɌ.gqZuj@z$W<ڪ_#RÃ.[ [7e!fjK¯ 'vaA kH ӣs,龡gOckjm( htYr8)XEdi&6)oKJgbWCL4FսXG* J*sJ]P gԪ{hj((#u`׬Y"2Rmdh lY?W0 qLsc x,X1k\Waw@hqW6GˁQ\ .usKz%-k4;nl?PKg=1+*nuvola/32x32/filesystems/network_local.pngUT ܔZA[PQux wXSOr0'$"\\EsBzr%ں FR( BEV@`A^ʢBPAHrng}~39[( /{0JM2\4o nw~1-|B "#¢#wDE98r6z~N+\0pښ U/ f? U p çr5k3*X%^81ה/Fu=S8-z5(z8HM# ǔ..`du]Ol .!++#{[ϲ'D l-|Lh66^шsW޷m*7'@vEH7z-Zp^]]mXlYX#kOPr$9Jq>D( bLt!O,=|889iC>YgP=FY aZ!P" x71L<|3{/NBxdWv}Ѷv/OՌq8'o Zj0q m({]aϰ;32?;QˑEg` xRDy$Nدex SӇZF矎5w36X,O et;~H Vȶi1,۰dA? 0|@I^bym9vBI;ij?Sjv3ɳph)# gQG9Wl} "45uKw>5Ȍ&!R]3?tȳ3; F%,[_BLq !L`2rBvK{S[_ϖy?L/1&EH >5;8$1K2&aK,y,i3pACNYN=Ƃvud^l 8GA&ebjU.RTP jBÓ1%,Dn{PmZR2 v1Pܽ=vR #Lb}.QP)Y>4&).ǹ)7Qer%|Sp7>l/•d53(Ԙ|Kus-{C!L|V\[ttv)HP /Ҳ}&c!AGS_lE}ZI7>A: 31Sm">v|(ӋL#"SثU},1Q?fw,Ib?͟;0t-,## (((@*F`:Z$WVrZeQ-pCHK{4a WK IP,rKO_,8V}gb~ uݼ|Hg" bk&4܉1"ݍL_9g0)%.K s@R^UHnk FRgx$"'ݳdGV\`\w5tq4;l:V"@U8ZvI?6T6%a Y.+M0;6H)L7@+Q lveEEl~SH a:qu:l"˕hNWHT~k@%/yl:*LI971:;;1nxnV ŽICC%>-ezxQi@8[0dh . KoJ.Muo ;p ;Cp=O2n6g@"ݭ* i9WWmIUb#M?ci6dq`% ;)t"o_8=FX_T ܟMXF}ME;40y 8rB+JSLMY-猔~?3~w[ȸ4lqT^mYdzibpJØ,GS07z)Xn]tTa\FE,gxKp0rn'h7tP$J.H1.1{.wGb]+6 !AyAPv@*z|˖s焯 :w]ں:86or/Z!(]z=1΄k  `V*OPK g=1O`XX!nuvola/32x32/filesystems/pipe.pngUT ֔ZA[PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@bA1T? EX`ef`ƐÀՏ ~g7ï_?/o߾hi{α7o^u}zY|Mbʕ+LYYUjݬY͕dDDB?~\<0D}˿ɘY1dãGn޼͐Q T S@LԵ',;2<{gT @,Tsc&)(H3<| >}c-Æ K/_vϟ ( >bOo`Xlu`YT !At8Lt:>+ [fXb鍿,Z  b,V3zqchrG9^x0l߾hrd ~n@sI kB*30t3| A wobXr?-648/̑@K8J~103fXq{w2,[ׯ-⻸ R|aS CbN>=uxa]Qp*/?.s & XmʪW-fC1p3gP! G_wP%&/NVW?@A/\ c 8;Е Y~*؈ XBqC ?A5߿1- LZc?˹0[wa_c *q@8@SZXW*262S L~f`rc`پX ABh ;:1 4,,/]BQQnuVV8s A^g K~00Rc؁\3KZQQ~CZZ8:ex,d332cXU 0>'>[ Xp[.:))jkH;çwp]# + Yn')@`Z[RAAf}LÓ'W,o>gp,Ö+߽{sI@-@o XP?999镱ަRR"@C*1{s ֭uB)@8@BBtCD`֯_w֭}%X@(+Ǟ?#rA_vXqƅEԴgܗ"$$nFݼyaڵׯ\9J%J @` ㄅ'v+MohhJ\ AG`eetou-bEjavV@,-0;q{4SY拾ALIENDB`PK g=1 #nuvola/32x32/filesystems/server.pngUT ДZA[PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxb?>oFFFZfbbq322jii|ϾÇ+*< Nba h씸;o߾?ŋ 7nzϞ| Ϟ=ف,"P'?;;GgQ||<HAEEAMMɁ˗ָ~:ׁb3 v߿QF^^'"",'ӠW۷3}^@B (Nxx$Ї਀ &&F0~ݻρLPa98Bϭ$%&DFƙ[Tg`ffF_G^2z L @.@ !!US`*,, w [AWk6p41 *dd$xxxl`߿y`@1u+ؑ@t0~cP@l93} "d(7m:p=Ad/(ǎPaBi `A@fPPbPRn1RPɁ؄ )|9;;+/0g @)ﰬÐ(b"=;;0_u4ș྇A4(*@1sPRR1@-f!YJ4 ~=<́ ûwGY !lD(r@vD {Ltb!&=(l1-GDB @>8 L DD]\13$ o [n | 4D3<{h/p|J i)p3<|aٲ%?lYsWOp@w~~.pjx@B+@)h $ffC2,Z4Gvc=P e>@.ؤ@48XVB% a W^|ݫkZU |"W^ݳg('07`AaÆ_m[{Ç7 _orHU,((eddˮAN^=>]{kvܰӧsZ;,*V (O) ?_ULsP[P! LrCʕ+8@6J ӝ@,j11YG*즦Πn߾`"///߿ÊΝ2->_455ttt9ZpD|||r?#q`fi?'Wg2'X.Φ 0R v ;P3g!q[/r.4kNNߌn5ŵz@EuhD桡Q?~޿7s7E 1+| La\ P!A.PixDO`ڻ0E2;' ?0p}W1/l& :}[aF "̊oD4O1 pȏbe^ݿs|"X ƿ.&&faddl)i 0|@Yh l omuOIENDB`PK g=1Y,b [[%nuvola/32x32/filesystems/services.pngUT ȔZA[PQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b9r ?+3I@ٷo~yE2n Άek  , U 3U9_c暤$st `˹ٰ`vCD,- E\T"T²,7b'@1#~CVωb F 9 :[(8$)UJU@(ͬ8 { &| 5 b`51UF?Ew#=# G `0CaMDLVu_HH{[1ra0URfa`PG- lX`Gn. qM=ANcecc7Tn 0ZDT!QS/п?%9k3h'4)m@1|?0(%DC# R. F@kBKZÁa/@A㜁c6S&/~2pܭd? -g&% r3Kٔ8~(ddcS~j u1h>bf( "Xr 0j^ǐvW@y䡍>@X) LWBVD]h:Pc8{^YV4}!a蕿w%œg.>yļ?'JJ{+`.$~Т@0@o @3ϐˎP L߀w .2e6,SlJGm@,0j#Dh̑ @})`'ϱT]RHJE K 9: A$o @QWQUi_;#4F#Om'iݬy7 ؓALM BvA?Y`Khj@@L*f.;1s` D!ʒ" XZ21|v/`I@ـ(3<1(; kW&ـ$ ;f_+W;P,@=\ ZΪL 6* Mo/y_Da7`n /`8Y|a򺯏&30/qCGfVnο 7>a`;=G~V<;-N]` XrƦ  In*]~ϰO Bhw &>8~3|}sJnr E1J@X& LJKméO @Iŀ]<`y\f`xza6Px_ *$hØT-\9fCW`2DhyIENDB`PKfe=15 #nuvola/32x32/filesystems/socket.pngUT ZA[PQux ViT, fTHpa I% ZKO-(f!V$%jEdBXjA\!|=ϻ{Bf&KL0۴s)8ߏ:51hl(mv7i~FtlWXbXB džEG L: [7w|00 \i`ʖԂjF J2hgj&PY1r qN-i\~wIMM 7\ dg(LQhF*!SAZ"ܬGW<ޚH9UndLε <|r=TuЛzͻdeG#DV#"#\ZmzYq}WJ@C/S4Tsj_Pe NLo {NQԵuMQ|#RYĐi.\8{Ini#wޅaޙƗ1ʏMF7 ،BW2˾gX 4QeA6ٙ U2`H A3o{#h$eޮ9Tx&+KHZn5!W K<2 N~rWPra ?uİ-^!˱(~֜,ff:KmM\)?~|K% %*Ӿwi<`ߨ}.+.f1,2`GO~{;#fdɋ~Ze{%tvkJd ~߽uc/sW }6"J7%bbc5xGz]NY*7SP !v,uG{%?%xK kWɉ 7,>ciNAY‰;5ǏbHp^,)9RKhO8b<Iz-RD6ۙGGBdN/$ް,˓ˀS0#uZ%a VtY`3N]KnC#O(3fJ.LOQo-^?k-Ι6xhM޿qV :J}em܅\&fm y۷ss&_'{>Ԩ՞=-h[[vF&Gs]3M?1 C AV֮4c%16<5ᝌ(BUvNNA?uW6" =.e9sNnB;k+4u?[n!4T˲ o_ֈh6 ض*Vӓgr4P虜mbU*DhHEI*;*^I{MP':pϞS~=XC7LPReZWai1tl0Cd}Xe(3/E+^2w~oTtWќA%AjHd&!lA7|ts[7ZʊR5R|` /Y}BKzUb^rLT*s+1 \Isȹ1 ~ϒ rsMۉd;>^؃ mg#&# m՟xJܾY6u'k.ѢP JUƼ 6Ѿ;&mo1hz4?\\AۖA-.C7@1骄EgSLVp.j `T[NȾ:: }AzMԏ8О:{ؓ5x6C]z`93KkC1 }C^mic1p-* vpKe.#EP(}p4v]/s5?_=. 0;{du֑,`; 4r`ȞPps5ZLan}| cX^R_%tH s6Y33S;eSjX'n#pcAC((@U{Dho<œ93~Nmz$ZvCD?;;nS& _w47!p~V>:6\Ca8v8l"R<:_Q ܂Y[vp y=oIPKL>\p"nuvola/32x32/filesystems/Thumbs.dbUT ^VM[PQux  8cɾdޕ%)[pli1v2!RB$" 1 Ie WkJ)˔e~{~v>||vf)垄im W?#0&H?H?m4`8r ޙ_vF b p|? HB0  $)@89@P%@8?a0M01@0}8`F1`L3G4`XVIl{ p\W P; ^7р  /|8'X1k{B[;_P$rad_o}?ׯ`OWp 3CO_ ?vNcȿ>^ 8(o(/ mC"s_?PQCenCe52`2|线WP@[a_3??trʀ_?%P2?ε/)ēI0f},$? |RPSPSRQQR1023001s2spp3Ar#Y9ء544 t XGad,p #8ip2)ih*@2roσY(X(L}#oP )}aֵ,EC˹-"*&_BQIYGhaiuY;? 0(8$4bL쥸WSnJ}/~^~+T>zV򲵭`phxrjzfvnO+k_qanb"#'GSAんAO`!d2ref?r#2_-/#Ew\0zLl[%h{~ ~#_M"=64>GGI0F)ђ"%Jt%5 PmQ۫jɭ%M՗Lئ4k:=(7lsϷtRŦv\V lK$| FV䄭;.,*m4&Ň\JzbʑzT&h+KrSaCRS uIJx495Y"V~ +u ik9qIڇb%$Xh;˅}I}K[L{ 47Ӽ wth4P[gD-db:c*l>4GNZyzx,R.[6Әۑ` O}!W,[P^U:Rc(tK]fwb \~!WM% ݼhVJz\OMik%=c~'fzkH09s}sj%27C1JU!wCEuH݇6.<#_%X#4a<bz`ZKwnhF!#FF1_[Db}l( V7D,( DxkYYv2ZL 6 Vod&g-~dI;/7^KK6!d!4fS;{/U{:~$'HvWҧ@z;n_Im3j {IbyS#O Qo_S3>_;qꌥ+P:MEP#?`CEIme ݌~V~ٌ!SX5*4Rbc{z|in,K=7Pf-2ۼV5Ʋ!^ ~vMDԦI߯if̾zs*3oۢ$أ<,Jl ٙJt-\$%\8W?.w{3C/]ߋz'/=7e@Q̝Ӄ:Rkjsd7WkY֝5Ҟ\ =q6w5{kNjޓ(fزeZc9Zb ]IEmβKw&GT+VEywR^ۣLD=+3/ԲV _GcW=?tvΫ?t~?;~^ї?t^?t_)rgkmk>Q3K,M݋Ǹ{ h OoTE1ÉF=-&;mZ>}Ϥ2 FiigKKǪsurTuuS%$aN<$,LR l,b%Yk>ޢXLd1Kk2DEy=d$ }„[@0{rh\Zh|0᩸*A\!&dbPQpU˱$׻_ч_n΀BKn(h[9P~q{ʳq2I}Zy)bfIf7U?ro&5U613]a-gE-TK1)_,kڛA^ަ6=;Z٠ƣpv  "*)&\$W]$%{1߰-^~)-mB9jk~X(-r}"K˘I㘻cҲWJOeYȜ3jgLrVd70B0 ?\;L M+9C]tbeSgSCTEz-)e NqS#D4Ծ:`$VHJ`MșiES&,'֏t0mrz8*c/[}3yRGP_έޜ,ckk*hs?M[SbK|^6# tަ9տ3yj{M(MC*Mk瘝1VCLѦֱ1电akw لK(βz"{!+vB)v{7[^i3v&/)F`ߒcS5zP}#Z]E_ z1Z%SUx^mW[᝽B҂ ܧ| BE^m% 5Xͦ=$i\-B%䶵l) mwE\P^GOU0Hټ?ϖ;>k]h0y!S(3P=faT5V/61EXlD 5/Lb7ۨ70"c-Lht.ehmY֝Px`ŗS.Q!BG}njTlńh'BI'눲,,xcۢ50)BN&nRqX5dGFPMq/boå xLu$LJ6=jjR kw?pքL8UA_}BMR7kv/FU 8f} Lw+Ҏj0xlM Ş%&vmflD}Sb^i%q|rȗ1BT3Z|^ :D97/*5Q9I٪JiPku4Q{P6XB7dLcFxxv9k$g ͳ|f kR$uYʜC:W3_Lj)#,M-vI4 ;z}j:[FEzU4qAqD+!@D:RF@)4ZAtٜa97[3Y3+7]J~{g}sEI :TCbtR̲?/ο:!$!Dz+.ӢZL#:3Q n|ImHT:& )12Q6c wB7(j̷mDIXļ6xWeõmfIL_e`qBsqޘc…zk]Rt,o5Hd[G6|뗻>LxԘ ,1%-tZn;:qiuA|DUܗ[f6λlc_Y%<.(+F^'fvJ~n z4s`݃;dH=w/?>FG⥭ҰU\hr!"1pӭ>o.&Eg͟)Q$8t$P^wfrJng8m>< uYNn:T;KJٓmGwTOA7I'?1,p7[U, 4.ap%U(*4~%F=3sQ q(aN'UmHp܄*T5 7Rj0[ߺ}U.ނ9^u(}ۣ 3Gw>SuW[qJy8=+G) @ DHx E1^8 H$ HR7@ ڝ3@[(JR@x`Jjwj0@Ph~@ @й;_7 @ w>w`>;c80L7 ``X@V*Pu |ٝok_{7pBS#v7͇% |Y]s㧃R^if-.jzV{dsTg\f샪񳳹)ېC+rKC*F WH/2{0wZNj2jt2h֩#3 'HmP Ӹ"C4?Om iE dK.қ~B"Q`+$&Je%qClM59I F{DoCbMhG;3[})M{m6(8G8ﱞ/iW!,i<57 \3"15›''T 2Jv3䠖(zN}FJnc~ܯuM1$G?".\eϝ7(oe4:!4Ӂ)Qj>ュۆO&q0S"c o0ܠBm#41nk I)*l+0 ?=dɊ}Cj'c'{Oc&o`8qZ 51K~ks{C Ún8_2ڲ^ KUҧZfR] {L Fؘ\KmýCͶo4_t;nvA$owB>ׇe%yDUbIϕYEɽ{W'!)Mh{r8?1*څQs?mAt_%tE6z(c-aRn 6CpwpUe>Q^Oj1g|Ηd=H-[ndF*0H&zgZ}vBwr/+A MNmfk5BawV7nJmf0brW\."rf{L#Di|VL}2})a+չ4g,m]A"qGN\ _g{z *NK%DK(|?-ě?YO pۚ#.QUŗ%)FzKDO> S`/?'R*w= _iyROYa^D:ǤV<Dc 5k3Pd^/uzо扃x䐂D\U>^(]?Rj Ԣ%g?)3dd8h/2b#Z\zߠōv-}=,@-վLK-9x*;E.ߛ;I(|+|X4>;ekԫx mC8l/oyScS"ǚYYp e(.V%_U?]+"͌cRՑu'#U9<,?RZIтDhr>5Lu2tU~Lψ֑9uM]6=#Շcg 11J?9QIoe]T;G6NIYjt:|t]CZ5RY9vYtGKSpƨ cu?<-nW= % @4pIq|qr^\\)Kp -?;?r {꧝W: %k[1eIo)$#0ͩ/Vm6/A"Bf޽gθ6$nrָE0cS_^TY? {4MA1Ib7۵{eA!j}s񒗽8P 94i ^n%3`>m&۪\-F*y:dg2QD׹ yɒ EW.۹}u]rG*[|0U51cl׍HgGb,5OS{KuI.u1[8_ڸtuf2i^^Y5֕G//bI -c-0nIтKSu."]XU[K?<+w[!_%^hܘf;kY11Ԯ#K4Bk$@Ȕ7}9PIE:#O )?6!}'B eYX ղ3mh )hT;NjtbU(vYj e&KOX世`PCmtl |$vX˿' vA~.ȿ?H w3S@n}?owoϿ?|{;>3ֿoo׿oo=ar_i8epV;3J?2l 6-F~'-\ s$GSlE #z}RtⲨ_ZE~&#e6B4hLљ_.6q'vEV؆{KZ{mTENٵ[z۱sw#cS4hGّSADjO[ڊ\}Ll=v+{.F]E{BU#] { ,EJL,=d2s hh;YJ6U(h|na33O4& 'X ΛJ873fs6.tZTNהF]ʭ6i!K]p}8w=7cU r{w ?D-RYe)F"I%BHmEB(K"KeȾ$ٷle!NF"khbhJAGG^զKG_u[v:dYW?a0- ``#D~Fl4QL [#`3Nv ;8̯n]}`?p|ApB@S]Kc8@H) N N9 "8N>@Up%4:@}ZcpS`sp X` =p 3p  ~X[? %5EB.K_ǹYG\%l:oxDb}-d?g Vi1ҜRcbW8֌y< *eyj=@2"TԻ;}C}ۇsϐ2EB'F???yπBI 2a)T B@Juu6s-R{'5nYMp8DPBۃk4竼E)C(%9iγ6VT`UZyEt G0$=#) ur9xz'ge\8 GNAa&2/z~wʽAV׷{<ῴzkF\&7=vU&^fBMU$T[$,zƜdz&¢$؂kY6Q+k "9|dH. 5 .M~2:255T荛>/X\}+a]ݧ؇[{o M*z⺜KߵPv* ņD)<>4وSKG̞^{odQcwA]{-9.ҙh7rl~(+f͏;3')CM^ Qh2v׃'/׷:FuJsZk.JHif7%`a1~qmp0}{WWn=r{Nw܌Vq֕z``n\!Kߒ,@("Y{͝1'<˘MMԉb/7k;4[{Rgp5o4_ +\aPDlQ)\UP3];,tU\=YrD.N[1& 7Gns Lk$ZGUUZ'|}&y48X(8ߞ@9˦a˜W}S#,g0j1P45FXq]R;RcD+32E,z4rNL啓[C!^Ud:]f1r}Mm;u9/{i]\WbwezK&<-7z. aNหkZ3 |>pEXX+SDbk3_濣ܭ5o/oyhE`|`9k{_~owۿ0mu߿?+2w~aD2Z <[u52 ˄_Fn6p2JdIC+EoĴ/+8m@2Nͧ-YZRIsZy9f267#SwUlO``PlvBLv2J + ikI틟[jޚ*ŁĎMihc;WuYI cq TT%G+žw^{[n8K\Ok+9*#2gFܼ9qHVV { bãܼ~ASקEP76bcu*D <["sGd4}2SyOQ/C&fitg4ԛ`]F6r%x?m7;G;'n'm~.nE?/^pMԗ0qOmI#/ׯku.;b.^ѽ pr{ ̖q 'wW6?WRԾ㤴Xn%N+_F', .HWN#vWP߀Le%3k5 '%w4ԋJ2|w62̬>9 '_ࢹtD$& ;iGv=@>;Tj3R%Qj0:nNYЊ W75[׮{BY]5(Umbf:rW= >GG{=x9[QWJقzl EpcV*)[YG@#[\N.Cީ#tWƒޖBtz7{BgW2{#crcFz=$uփ؉zfA&h¾{]uRgqn9Nj{CԟLvZGt#$оtwJT#Fſ4B~cFȏ9f) y 7@Yb^KXFS\]L2gW0v(FUvbY$ݧy_[izUPQ+}Q8_]G86Il؏6ɉ>|Iӧms6OQ/4ٚ$rMpb%:C4 ^"T$"ՏdvS6r]Tm:TWi(Uб5gk;/y«eD1Љ^aoIlTȫanqgi6U5`^DmYFm^q*K7ƕ1Zm YhsvOh]ʼ2{n6  |H%'|%l7Dې@r>[H4,t^Cٔ_ʮJjG2P$EnB` ˫UaK/bFc23nW(NyfR֛Rc' \cQL(DN rcZk"/%iUZ0v9a&Dph@5߳8JÞ>Ҝnz"^JzemsIq q/ŁwŦӉ[:䧋f̭\T(gҟ'I.sMzK^1|c̻֪~94w5&Ǎayd2ms59NB.A1fſE!B:?1@,V.O=9=9.NSI 3+3'ٲrO`?COg#mMr`f)rMc u WNdjhV!נ `WW } 3xveGߎ7ǯ;dH'=~${u,~ێɓ37 <)#Z,c̳ow %VjL|G#@]߿pekߵ ?}`cBw{oe(>ԟ#C v"ssey"$GJѧ߷WΔyKo[~]l?=t | A}AV,2DG Dh')q $D'/@j/L @6A>(PVk2P*@%ՠԂ:ԃ@3>Gāv;Ax>~0'0Wz ^ 0 ` L0 < `"B ,Sƞ_SuLCqT0I]g$Vc1zl<Ǜ~*m wʇb|Oh ED?5W3;],ca5=쫻QC VX6MbNxrnٝfR6,h Ig8;xލ(CHVn=C8%I?=}}CDCTmT<`ZA)AOK,Qγ" ?>g6&mfnCq]f#iCGg !l/"Tb^.xwWZt,"%ĬM$K]ɸLo}/ةjO߈_ //"G׏ Ɵ2Nݩߩ[?s$G\T(;髙_gNܙJjqM4V%Q,Us<榈pZZ> M"}hCr%F˟"gLO O]{\ޯ;8a H<űUJu\mCحͺKh*0cRXz)=U_#k:A:x8uʛށ؋G-zL}:h tMY>(6$p&1?pF6Ngts5Zn rtqJ|bT [wAcEDgMv&:"nw-1hLiKz"ֵƘRLH+:Ptc֭JTcq}t/ e7e-űճ얺3VhD%xX }\ځ Ҋ^j2EjWR$4^Ywe¦}r?[fux6PDlbPY;|pCI{$v0lGE]&HFJ |++<k܃Ѿ"0HlT_f1[VC$TذbRSq`Ѽ;㥐KHj0U\qTzxBIOc_ fsr>P'IH^qXznDaZ Z*6P?:Ԥ., no=*{9L^KwFd6$)(+fg3Q̸Air$TwBq;Ź+LNV/>"v%m־ j]KR-B:nR#3o Z{6R>~/G0v9 `"<ŴӦN/ʞ' fR<[?Im &I_3<ſF:8=xEFRXI9Tx@sӡ'y:BXgunlC(Kya6 νy:D+y hurr^7XDh׮2Y>M`zc 0ڔ7xq(Ǝs-qiLIIv7OOӤ<+_9o<uKeSېkYaj +Q괆!17qaR, >t]jQOK65zPtFq՛%< #Nnv{(,1 )c^% R&P1,^~?0b&8- ;zf%Q;`ߞBcힲ'Oxm$Y7+ wɿaK?P!7k 㳂_ɟH\y!eORySpٝ mx8j":?Ֆ_mA5&j2&r8%K 2"'إIr{6k tB[4k a& Z|ZGrd*K??]zB0s AW׀KxRJNO;CTw#ٝ H2<4*}f8o)ZQ1u91(渏dMho\z!(܄r7[GeTHa. > +t^RhK'*b .+6[H?U/#zߺpKāV&,TqD hq|UUǤƂUa5v}ؔ--PxGxwP4R9z@ 1>ZԮ5cpHP7xd{>c$Vuҗsn~ߜh8qw Sm1!#Um8C7h>T''P8e; ѢURTPr-A % 'Y4!Z<-T+DW7M5k}t.GRSZ?'- B9RQ2@x9bbilbX5~,J 3z~,&Rq!Q,@>zuX.5q~'tfKfr'ѥEx )xZ)Q9Gp؆Fl~@UW"13N){sm6jK~Ns.YDtfCXE!R7Iwc1oDnGP" V Rz[˻+cG8 ޤ>eW!^-px\jm[ʔ6&-u~e;" N|Xhr|Ir鍶q!<\ƺmjԅ[}h; 5[V^"JEu?D|'r˃U* a'\\#+f[ϲ`j\P(d 3x)դj~+ }[/ʱ5 o61#+9k28rcWY꓏Xp=,dI0k*NBjJ^?nxޝOp⿙|ݡAY1v7x>N܉m\AI).٪;#{MrD$Z7foM񴸗412?&~>L!ӫ|SJoFiy 6*JW.ZgY0 ; Z.hwf/%ju"!^Q4~XT(2/rP6Aսs=*VPR=!d+㇫G˜7;=C&Fzx > 䡹^L N_vtВ{w ?|n WeWDPʖJKlmKEkPHdM,cɞe$Ÿ1u{;{6|p92ZTJl;q}oo㙝\T)q<}Ƃ\CBi-Τ9Nd0uq?`y^r2wU=!$J͈qܢA9|.Ƃo"{z"TQ5ֲTt uu4x=5? -ia%5q}}j,OK.XQ1f4^ۑ[7>F8XYm?,/&vݕCSղ}-c8̾:T!B{nCni"~BXi)ۗ_Z9< |a_0&ew?:oϟ)/3.E\2Mt]c=~ `sk0cH>܌qS%"?\ɚcGcհvH}W!}|v|mny Reo@"Ǐn'^Z>AU.\2!"E65찹wـrS`!YG_V]~{)[ ,:Q˷ Uǯ3<7B>}(dVXLIZ?νDsc-1{HJ2V)Lfɉ YU:U:|X4ց3ǕdJ_0mymG:!CusvAqӠk-0-D?,|{!tV*/! FK[zïw iM ?1=Vο޹ɮ[4v|#⨫RrYD^^hcVSpWPbtB)B'V.4wK\:g˔ϣ=SX`/=az9 k4g:&G 9ߊW q*v#d+i8(n ƺj} 4A ZߪC \DﲷEjQ?,nyAqHqɩhui@:\vlWA.I>wҜ9}=~gߌm98gggV.:1ʡ;෱A y`|<:kgs%ƈPagF(3zdy:N2{2ji{lf fzLWbkyF 'uۓ)o2b>E<"8tqWv|, >={&!8Z>w*m۷SWspfL/+QҪi8|pYbJ݃~ޫZә\^\^*qVly yK5̻QN$Ï9xs_<}78jjS{[L:$PSZ"ny1DH&_cεM=F$C-+y{+^W:x&oXu yOt!S ;J){wO"Yϵ+߁ œaTyv*q*.`2oNv.^=UtzdvoǮiG )h bMxl 9Ql=JW$%ddhFWH6:5Rx[Z&'9b)z`q]U>taμDl~z'~aLj^+ЃcrQ짨4T룏K}b[ifN&1!3/IGRonHgjo =IhuwtwC;m6l'Â'|Qu'L9> %dqJ[Jĝo[{*ƟAvGUi%8ru9O c!;܆oE,Ϟ6Ʊ|VC?+zIW7/3MRR0Z/єVaTy,awXH_Bݍj΄o5??E7^}j菏O}wd%?a|r1~65oONwߴkLvK٠ҦsYJFOPl\c39\x9KtREYrW v)cތ(5WOE\c h2I '!il[xORGϬøEuHRT4p:2pcGRLek9ٹʟaҍbKs5F&]P^?R:Sa’-Nk SߵY)`ިX\f/IDjj qENjrBggw8:e뷾i"ƚb We;Z$aR'ocC_U1߰JQWs\|BD&mKCA8gO'i VZ%fsVJOwG1bܲ%T/։V[}W1Lt`8|NNҺ\C19w O+I~gPm!‰>A(yփKm^~'q%j1ݭZ Gr듲{ZO߶`rensܣisE8zђ5 3PUIޜkt:M1ӵR}6v/&rM}Nv&BMM:r߶JIY?%"\<fjNIv5a$v'%fDnW ;ߝV5`pkW#&z¸ȽD)YYq$t 㪴@:L|F`ǹUog^8jzf裡Cv 끫IJŋOBf+)z>2vpw=wNme-6U_=h5M(#ڵ}TDi8/pթۢqS05'=ݜiѮ=H_xq{rUN۞PWjzC94ë~e?^ΦdՇHya!T~n&rv.)_l[Q鵯sPt&"G7=}]5&EcmG^@ h% .u9?dBe:4X>i:jq\SIΖC\ /D v4{KIJN^H.;=9qCNGE%VxU m#fٔM;޼D3́] ZZk|Hkqs¶b;aQsE&ܯKi,vc"қiNE0L j"αdUs>gwts4 weHʒ5ߥv K /^ꬨҐE[|)Aﳾ?v[SG;k"?_]. )/R? >;?;/'"*;IAl/+>"ϯtDA6JU!<|W5pR1J't=vwFr,?Z"ȡKE:M^bK>œ+1k( x-摈)ZGtؼJF^'AN'0"3RzS:>_<]V91&ᄃ&I5D"תPYaVz6[M=eÓ\u~y~f{F9#IqA>Oڰzq<̪tbJ&嚜`+Z1vrQe "9KNk'l!M-FPnW,~q1+*.PܡB4W5|Ǽd}X4C[n3 3EJ> 45nF￰~s >Mx4dܥ1ҹvft|/+죘gSINmⓜ&Op_ӥ%7 bk|-x]aI8ϐjN.zOVV Sml[A [v`N5.&)p0 U{8SAn;\</@p畟g:2"QPj!=8ٿrʴDU/V1;r,́Nϖ)ntAT;\~G8bIC%)2 B΋QTxxݗ(IOK18dSv[(ؼFӳbI(/TLܸ?)Vɭ5Cj1mT_ "U([trYt4Wr*>kzWŨE|Gv!yGm9AS|I$GBXu*ζ DZ99׹r=>2"i$$VyI u3.UJߓh]k6$˩=t]Ab baQnm8:2EtU%,!!}Lky3ݜZqvhU m溣)z3dJ魘E>m b:%j|?K20 ObJVmu n߰7pm [N=Hr WjM |d/ז4SSme w,srs¦>mz{lkcψUgxr}(}at<ɩOKqχ mb9^ >sGc)ɕr=٠gs8< ]451B[H"y'SKr"Ԯ?uSf`@iaSdd 7M<LbY茛6_o{LθF TdIF%nn7Mh;xج.ԞaۙCTi7,0l:s _g,GY 4 *ϻ m53aoSsf2!7Loo?ޒ#k8>!w#?U#1%#k6UWc\DrŕFJ D;S 9q 9;Ouȍ2JECdrv{1oތi ("ճ zu&Y!ߡ߃hAlےTcO-ŧ?yۢpV/n=cKêy)I[>90jTu",}^ivh̼Hp*-WKQW/GǬ&]=ȰJ=vl08^xIaeԹ5 $OOF}WK޵&Z?24*Da ,-I)Ƀ}!Җ0-1j< AH6}S.߯6PL&H2L]bڈūIIO]ڬxĬħ:fL|۩4AXxSxd]*4-3Ş LŘŗl%GMw*9 C!BibY&v,I?X(eO A S T a#^q /$j{y'θ^G]/<7&/3»^25?q-kYD¨ ~!87?Ͽm$&4pH*#3$Vbzɸ5/v^˥ [Yrw\r4 ٨P%u8I\YZI-|ɐht4JKSܐg]hyN!G.#.Z7FCRiYRs^aإV#'-(.KE.Sʦ{U/(ʢAAF`A0T$IɒJd`8d iid` GQ3 s]ܷn[[{?]55>}=#:5>iW1ôԟ6ڒ>b^kͅ`Mz9"XH?U KZrs?`@良uҫ3e I㽎2>e`7_iO5nyp56ʗFogz[KL.:Bsb&I 50}_M0)G15\>AWr`FaFtZaB7n/+X #nZQ<Ӣ{GUEHN3 XwC'#} U&9_h?.ÐXqg<@nGt ]א}]?Iw5tV#i*Ed?/몲Ȧt~8'Mnw,y1F?^1DXT] W>bU;gDӨɣ?<wSՕcUx/Sl@r~?r#c @  3 @:$I HR@@~y.`|(dz;inWGfHҜeED,˲0vD=,k>Ŗ~Q7 '3j%M.0U 7T^jdq?/⠂i|{~<\b{` )$WThK›D\S*2׋  O)P>7^Dld^rUD7FVsgi"8Cf‹_zjQcF_⽿/ԑL\XRZ3ơtA ,yE} 1(J܅ Te&jס_o{Ɵ7J6?g_{??\ ͵D[?ހxk}@  @ l< @$/d H^i@:dY@6r\ oF@P `(ʁ p+ [e3kphx vz=x}]0 `ƀq#0|>o9 )`f9<e߀U` X* rf7r[ȝ P"J >jpPdu>Y֮Es%I okdC*]L"~\X7ݾ^G/H ~҇,*Ya Eff :[]c%Uh\ d>nvx1kvA}g@94e0K|ƅ[ rEOxTOy{%]ܼAPkJ`pLtTLuiOcU:ɽvlF_LQ4<_GKWuٳbcYv-jmZaF}R93& }H9ML#)4zjgff3\CcV9dq_R*ڍy7=w jîu VL5Q >ƥ#|˔sƋKf~ac-W3z^KuIFvur^hR!C9vD P;3eh4\vS9* sNa@zH;Cai|K,Xv7H)_ٴ}voovJ.Y0يr5?%h(W"n] #pNFpaߞ{@^27(pt 6ڥ4!L53~taמ ~ʏ8f(_rtھGccP&1+L}6%w=W54QIOSl$QSY!TVSR8)K֜0[Ϸד}U*wU Y,p@Wx߻炌3:=VJi ӑın(.zA?wqTXiysI {5{w߽B36&H,/ǖbܞy4q -0##_ vmh(D+;:v'㛞ws^(^S9oo;ۺO!Rh ьSQ*Yg/R+񖼒eXj6گR2%i S{] H)o JJi%[q&V1Bl7"=#C g|Ph ߅Kg>tr^ 7^{u˛oB}gӿ?=~rl_ގp䠠@ qcYAk.cNkF;ZeXc:TY5qbpL<ޙgI=(%`u):gљG}G% Gܨ~qCZ!mZfE!ఢLe<[*eejv({D,E;Vr-U47wb=0SۅuT3)`삍^~0LN]'WI}@H,:B=͝ёMq,=qe75>sCwa^]U)|}|*yO6i\9XtPY8!#96~ w5ŀZEO UyX/һX!%c~Qz&ɗ&߯.9lM " J>ϘD{M0Vn[[rR抪EljڃY۸k wܛt~k?PRj";B,}G5 "E@ D "CoФWH@E#UHQD AAT$H;3ܹo[oܻcO?|g#-7RּNS=I%AkxA߆ F\b7Z9#j?|)9`yNsъ7|q+2߁X(dQA0Dg<0Q~0gp}?KlKńz:󎅭xy1H %ċX*m^<['U󎍗+ :.u3ְ#_cŋJܬ"}+E Dq_;W ТG&kqkŲ"c;v]0A78;ՒI)rG[iȀFqAx`J@Hڝ`ՀjMg!t?'>2xnV68Jx'sؙ[+L#=W`ܩ2PzT"CWKttMtYXJXB ,1" 1 QoE7sw4$9~RՀeRe'#Y𰸞ͣ\ݑCě!K :s/4)5"!#o j1h+@؛Qɘe7ݐ([ZE׹2/ Ǘ'+2B6| .H1/9TSX֛NN'pto!g|-D;O a(bj-0=YT _޴AΗGZg'rn3Q>,{Yy3t/YI؁P'@7)zy=>nS8i\qJY?wˈmJkIQ_#;W-b\ɹ=Q:ffC^P-Sš' tGg1 o z닣X.q mcS^󃷿}˟y EV"/`bq1kܭ؏ j}:~؅v£|uڨN~A8$dI1_CےBimI-x*Aal5e{ߏcSC#>o/=Խ '( ~m=ߡbxk}Jo,G?Dxz7"i{\K˭6v _ ہz%"IY7T%淟1*i {rbߣJQ! ^QN>{APD\?g{XD%^Jp b!XqGf9 #V-;غqag7+YV,5ĥ/%/!12 SE8,;H#Fz͈[) [U:)9jqԁ mkBBb߫1U%耧^zhE*uH`"_ -rӎLf0ey%&5ټxxg9AFS/3DɃ7U O@ eX>frjUq|un|Tn)wc1{}vzXW})&&:A""K&^f=p9t]]M̟'( `p`}20v#7px> w H4?﷓dY@E@ 8 (*Rhi@ 8(t=@8{ `4c0sk[: 8.+o~?3!4?ﯦQDUog{I :+xO[@Z."*>U2ߋ5n"O,I{#QGVI$#e1\>KrY|9gsVoN|δԶ X;jJ;uF-w{Elk1Εx3cαE6*RO]=fc!<|mia my:жh G~ !|>=v*HW5c{A >ZFeeo\Q׬'os(a~yCøV'Z{zR3H`DbK"_DfmTrF``s#'͝4[mh>v¸!L>ka>\f"`pLgyyJC;+*52٣6^K:CI2/%ia2ym*hf !\$dmTѲ%ܟjk"fu4\qRwC?S}u ,q'rߚaVSoS _^]q6"l *(ĆV*ShZ98"fv*f2v폕Dʪ^h E3|SA+}Ygw=3+3zh~]+?[(WjS.߀^+M[;>VQ \%Bqsq!oFrmr\a-5I79 KiXL?15>/#U찥bM7(ovf.y*^[ӶH܋sF9[!iFb68nyL;N4B{U,ͯ:T/m=tQ695wi0^%zSecWk%DyZOf961D̂Y8/{臚m~ay*fU; IdibxHU){(l5BwgP5Y>܍KBؑ,|)-SP-2^Aa\g͆* ĻW FoqpS9#_x m2A18ˠRܗ,4!%>$:hPGTնs:[Y?8!Uۙ ^:P~ #zc޲ RN0p]5o&;0H9W+ʼn F1zª"zC(Lc)M4A^Y3X龉j%!x]׵J[o Vd'g{|yO_|îZ6:W٠'?s{f:jK:wSvSʆW5:uۍ={(vX4-8QJL^"ӕ2ScSZ^-6i'h+( 0Uq!+[&Q*ˣG,zgۆlfmtx2sÝY~ۈϝ8jӦLc깂bJdɊeqHe3?6Kv$7}' q3j0yvaearw b-a2anψ2J<E%$J1gVtn;#zӜ$ά%|3{~!KJVfw }㙃,ExNBpNNemyX3Sx)e׉`_-ܕceT[u% i?jDx/tPG.ɚowTǣ"Ȕa ?2dDE@!e (;"{]-#B*{0ʖ s{mmO:ߓ|y>ۦf=Z)Z-%*'Ƹ84LŖ9ovPtJ 5ɩ1ׄˆ]WJ~vIc[{%nH'7d܍B^_Y/Wz|8w &]7!eJHLܘQ, U=?bneD[MO3IP#$%2i#MOv<\CgKkDZO-A_,PӒzkбMOL i=#mB0Z'НvqaH1 Dõ2\GxVwD/[lT[v+x1K ??4;Of3ޒ 'NtI+ʊb 3?~37}8qO^L9f;J6QzhݒGjB=HcgBfTnjk &3S,_쁎SŞB@/iGK6NWrM`~g&V(~8u")ɞImr;#9=2Գ_06Ν޷:E(WrRl/`n\\C4,Ov^Ze3O^h=s]y0֗\>U6/M׉oc/؏?ڗO)KpѶt}{90qנ⦾[GaZ K5a*)3DME|%CrF&~]kVK9 Re˚q1GʊNUjhM Jfӆw5LKss*N#`qZ1oM b :Aiٌ7S-J9:-Z!s՘73s.'v>W.mǷ̦qWĻ1Y7 W{Nhh8.+;lQM6}Pb=?)Q~XVwu(1nY[ԣ9hu $a1a2a]$xg^Wاt!tYl#pѶ_6xyc:&oX^ {q7QsÔ&FM 2եՊT)*GبSf}&dݮRdMT<4c+G@Nt]w WK2LR;P?9vqjJΠ~J[:}>:G7 MhK\jM n:Dבq-$k|)#?5߉ tOG߷y'_MGB?'      ˏ{{@"@@2@ Wi( 'O8'?<x 5{ݿ   nqo߷W5|G~Ite[Bf# |A$+Ne+1Cn_\Huxᲂ͈ߕLx-t@sFx%>|wUߊu|uU=E40-<=3b%aUI iFdǦb~SθxBxNF3dp+Ӷѳmd=Y׳W/(`cYQ޾/hMoZjմEݒRЊjrvã ٸ uݨ:QYX0;PRgK:D˥L?LnH$|u@7lTn^9^]\iV:NiRaoJ GS70 I46v>}*r_4 QuRyp4֜}0k@Y({p׶O۬'@]- t4i>Z>Hq"Խ`pKcLd^I'k{$.+E8o#ro#fҩi4swIXӈ'pti.DZl~P6i,T~>P@O+tM̹q"X\QVĖn9*귡$b5JkӰKNw&E*m n΃ݒ B==D#g^×((4D6|Iy<%IrF\{[=L{- LE6uվi(,wɎrjiDўt]לp.lƟ*{ݶ-G '29lpy/d =^Բ%11KTrp#2Cc/9gP@zm#VmsCXg#3ޖ{ M%C(3{ƵDfot܎j:UUvPuyȷs/N}B4n5^ 2r>z+YJ{VNGYciTudx[#NLء!xՔ+zze]_,'Ԝir%_ BEnۘ9esuu1o{0:>A*IRS'ƪJ0yPV^"6cG@4udwF46ќ(kX^$X.ȋ=v@G-n!+D5PuL]=Z?&)tAyjglRWftk>a ~?";!YɲTXV:41iwԭfnRu8۪QJg(60 oT#XqU:O%եX 3Nsxekފko?;Aؽ&aH2XN֔" ALfaA* jᙇ Hq9{zLu6p 3+kg#HfdAJhHN~9THА`tj­_Ba!?jIT+/9ݵꔲ-^fQqWjӬxn6!`ͫi9m,HQ6U +ix rK'=;Iu Fw>e>.spYPK=1]+nuvola/32x32/filesystems/trashcan_empty.pngUT ZA[PQux VkTRxa׎uq%Nؘeiu^l*L%MMIrC M`3+(I}h~߻}<^5 Š)NZ8cEհttތs7溓KrJl-(-|-|^ޮcՊ|25(|A"ނ$:h1rixNS~VNލ6P Æ`:snMf}o]V\yT6]Rp(|`;ꌉqLN&JM3,u3* < g!;S,w:v~R|OIA:B,cqFUtj6(`ɷZ 됫Yp9|8;UN#mA)yvAV`} <ؐ9/QCF1q:Vt[äQc,9̷2&S@w8={iaٸUpe˂]zt/1Y^05c@Stמ1ISG\8(kB1'`T,WpB٥r9^M~8_p%QcTIkC-SnTDB޻<_A>㼡5d[(+<) S [[ 6Á-|ڇ|ߐ <"W7Õ^z|p%iM@9r׊=W4*tN9Vo Y3-TS'2 JRRഭW}[o;6QF$\.!mtkm4-!-Rq-S :} fzb_֣kkbgJYtG L&SKY>rkWR"!2 #.JBi>.ԘlCR#IwXY~?DfJd5d l=-PhaI?\B}[$mciC(x1F*TaZ6e.C4o(1hf,Q!tOfl}b[Ϯmt|Agp!vO[hiF ˪FBv$B8qtI aK.]sBpۉےP+x(]Cg0"8-1V!NMNta՚>Aե>}?|O1&߽YnKkj=3DT<!aPW@<;Ztr)`Qy R~;D/P%5/->[kft=`RlXaC^ r3Az*R<Ce% /n>Dw&!i$oBZc.Co;jlqEUBEѲNE=q%YLӑ]5HuBAO01%&~^"WJku-Yi|fkҐC\M!/d;"MDVE%ݷKU{lfwl) wrR&sPK=15,  *nuvola/32x32/filesystems/trashcan_full.pngUT  ZA[PQux yT'۰  (>"2 Qk @E@$ (ACm)0.QK\1 []dK$ys~m`o;MEY?G~q艜-m fYr$-#9!-XpBM(!?>3] 77Dgf3J@ 1?J-ka+)?+#| [ś]]-Je@KSSQ1b9;.Q,xo])Ǟ#~W}Q|W ; sH{דinTM~ڣ%JyG(ĥ#EiN' ɷiJg 1 f"0K֧Qt'U9(ȉgo񇨢WPTz %+qk~xY:<j%jMQ?5^!掠~)q:Fh`%;Cn [dU<8F4Ybj ̊IW|t?Ro^xP묽:^h)0 8|]6 dwF$-1NӔ^l>B1"JD.#iˢƛm+c=3u7AI t>k0/ʀ(Bw|!MEpn0r- 2vZrGF }EBҽP X,nh!ʜ̸bME $z!SYY){/a5AB]P-J tUyRrAL0d3~ "R+%f"[ÏH9\v4w6nE75'dL )&*O:za 7P&` 9cN32NYnzfUP>[+mF^+9~$oܯwMjo2z!ez  cZJ,H dzbY$!XUCL:4kf4S/^taНZ <,Ե5[?/ MBMnKEv|>WdKŻ`_ @ Ǧn-$3k[^ܯ髤's99^Um|]0uC-$5c˭)ƞ}!r) _V+oBmnFJ1[EfHNo~31Ў~*[VM0$_kQաR"!ź._jQq-<(t37dLG\ekaymҖve7P@AT0J! 3 (gsnQ@tg@ H\{~ ^uC8悸_\ ŞبBN\K[Rc6ڡd^^ %2~eW|YTw?1^CA&.|;b5dx_fY@mO¬V6'{yo+ۊɒ,%:c~B[QSb;oU6}éd섡E;1wtO_+ ,l!+ǕQʣQPy,+jS"϶M&)a ͊qoNe@aja,g"Iw񖤄t,|7֨}9np3Wހg ѯc?z#E^H؟ ~TM|sO=@|oMnc'PKVe=1_ 2 E nuvola/32x32/filesystems/www.pngUT ZA\PQux WiXSI B(Hp ( nDAR/r%žj-h %>-.h KB }cf_͜sa!V`gH>)3sn9ij״rNId'bpVå6&΍8 О/9zeșXX[K朝[&; ވI };Ō&L%Isz]W3B#(t{?Qfj⯆N?*XN! (mx(\o?ADN =rh5-*4t?e^~}G/hLi;X"4FFmp7ݗۃWvwGSy^sSMLa ̉9qm/l PyGqcVK?}x?ڴGڶÆ5I]2`PZ F]=H(NC-RwKfq7na_ى'a Y9BZ(Yr"lpJ,M?DD 7^z\0w~^iV<-]YBt>kG?dՕeJ^S# 2a*KY,,Q$,; W4Zx 3TharSYU咼eC<~Lud|OƢxQ.~<ur>/kg+XU,Ī Q-Bi'(#Bf T:퉴leUol`&7ƥgSZIedoQ`Lg>ಃ'tfW kE,6Zx.P<,Q)?vֽ;,XNR\y0 MLjvdIѸQ^(J>bo x"68SkNl:{Np/:Р0]^Đ$oZT!8mֹ˛P/kj5FANX=׼a5װrW_ip 跥Q{c(ݷzN$]q׾ A\ H`"( lB r>}HNf/3y 8yH"Cmg X{MCyWU9r)Ho1d„ƻw'M=}ʜbĜ5`fXEBTL#T$"t`M_w-@k8шDQ E;s`" }{=35s߆*Y]qxoV+y6aot\r.o3@~Let0{R(c60n (P-ցrP)moނJSAUhK6LvV<֌o1?װljY_$XFm_ãG;4H6xKo48@ZpFvaz 5j ]xcY4^Җjaބ`˻Nd,왻,Ƕ*5bҍq C4F%?NP.8~ZGs1M758b2ޭ%ڃuuk%g$?[ddDwȰsk ̋a=3Z;\:S6L%v`,tqvڻțGTA')pÞq8u؟uK=xx:'+)+(MP Ϭ\gF&D{hUe6v:{g/ K( tۘ\nln7P,WWz ~Vgs%'^4(:6;]dev [85kz=O'}!_lneng:1)@yW@Et2>6{'ŹEvENU FXQGM 6~O>H_IzSQ(uTo͘_X~8W*,Q:>Kİkp?ElL2 7(%Wt@FN߼FGnFr,WY^Kþ*Tfez佥u/3IQ?/Ypx<ׯɢАu f)8umg'7?x`7P=Ä ~|-~lr,=x2} k?uʿ 3HB΄@[fT?{j05+%31{3YYSY;t" ~yjOW?uN MPK L>nuvola/32x32/mimetypes/UT rVMFSux PK ÍC1Jj&nuvola/32x32/mimetypes/abiword_abi.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _tC6=`q``XQ =@d0H X _ a! 6XXX~t>S;d8rٻw/;w۷o`,svvfpssc={6Cgg' Ï?8]"e`߾{p ϟgcg(//gXx1X=(xq@1;_ӓՕ5QŅG cf`:q@ wR+o߾;ӧ`>a !! 3'1p21G@( Cfff'''SSS>>>Ag`va<'{]v8,1Ą OP  ap" HccЖdeX?H3 L\@O!@X!APPנ`c-Ks e. B % [-c`wtdd8 #%AАAZF b o_bH`x|fC,߽ 0|Xڱ` X[˛i/~Ì dH3g6qd˯Ġ" 0v21o`t( X`~3?!A[3P3`9<5Ï3,gpOf`b|!3 ߿cePo L ?|c8A~ | ! 6dػV54gb+ g@ pdۗ , z. w/ 10p003x1=[pp f6.Ix!@a͆+o~Oo^֛n+34"c*`8ux '޺ pEAFϝ- [ܽpofT W-g'Ą-` |OQ}`.k'r f g`tl.r`'T#P40-:r'v{sx^caψK/X & &l < Wdc~Za 60k2xf (l;G]pblQyU'2ݼ3  lHc  3ٹҕ O?ndscZ&1>GN_`BWn`/l22kJP bW9*X [;xkȿ<@!Hl6g  bխBall|: @lP{> 6411E&d/?  F"9v)))S%I,Ǐ&"= JU=rϟc };. IENDB`PK C1ߟ׌!nuvola/32x32/mimetypes/applix.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx ze|IZXz@ \&wlll`CN0z Ądː `8us|bD0d(>͛'nnn1 Ą-+b8r8A 1ݻr! @LBAX0 ]v;w`@ dF #AqK.1ܾ}޽{ o޼a0hC9 _W\pEb}0b•C@NNNk׮1;wlP\z `°l2wށɉAOO_fزe 9WG@1a%"P߽{51873())^xv1er&ƍ=z@pY{[n1lݺ0\ iARE|`ff`jj \\\\>|v?zɆD0\ M61\|,=! 0 8pUh!@,`PY2m40칹BDoz~ʰ|rA[.@AY GVJ<`x)úu4445%zGbA.g K, ),X.55,JUVl߾`qPn #ϟ 6(YYY1(**ծY"  !1c$AA rJ J-`gؼy3X̃@ˆ,--e(,,wMMMp\  %XPP.@\Ċ2 lQcr (>Ack.-- P(!r @, % ! @!+% OeխBall|dǠɁ 6 v MLLp!,&%{{{A  9bDC9` X@!N'ٕe&"= JU=rϟc WIENDB`PK C1F nuvola/32x32/mimetypes/ascii.pngUT `AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyl=```˫To߿A]=2 3|Օd0AR@,qne,&r۷o|VKf ._@l  wbXK ޞׯ d3a|K=c!''C 1>'&K[|IIIĄtyϞ=ppae  1yP9/݀,' @,?>|{G7 @&V{ϟ?X X`\jApBBr6660o d1肥~P* eC"ȍ8}4B]]]x Yِ K>4Dll1rPš 2z.>34s:g4 j`[ `@V@xkCtG>} n b bVQ0Pet!%!@ab|+$i +@,6F)5A>MQ @!HI&@!zFl*X~\+[""""l`  )MLQr???`UL@~ F$KII@?1Nb(GZ@1 17 { ?@\ͳ IENDB`PK t91.dnnuvola/32x32/mimetypes/bc.pngUT gUAXPQux PNG  IHDR szzsBIT|dtEXtSoftwarewww.inkscape.org<pIDAT(Ŗ{PT?w]Z@(h*Me@'I?mLm3팝vGb(f  `4)8*O{w õg̽9={OB@&UU7 &X,?wzرa(/iA 'TU REQ(bppPTTT% Hd:\q! !u=d۽54$qq\w9reKqi>5GΒJ$eɖjj{i/W!55Aш(]95E>64D,]K+2w;):;:PcbHfcl$fUyl{]U^_Oպ"U[d$U^Ĝ"/m̹5Bg;dgg4Y4E\e%994\qI9^/M$ lvpIrQ s \J((jÒu>ر~ n秧/S|{,~7 gbl`$R6DV[WPM G\ۥv&M'q63՜i!6˅6 {cpr񫯉?tjvgg/!av%ycUTf'p;4 M())L`Z ۻRyC_׺30"WES,hQUT/"2`ji)YUUT@ӕ^FW4[hFTN2-7$S8@4F#5چ̜;{q4>dZXK32'NSҀM &­h^WA\T%SwzX3~{ Ch{l2ôk4nOl^Cpc‹4Q{7BjW"YNŎ7zމN|>,ܔĶ]y6dTUh4_a/Ъ|kV+{Ƿg+tZvS'dkmAQ.Fc{ ۾=Ŏ>Ű~^%'//Qo3g?D܃HfQH'**jȨٗ\hkWFimdVGbZSZX E&,,R*)( ,c0灧a]؂#KLŖ$ ۍ +* 𥧧_>~xIFFFP@{w!Μ93z{)Ax.4 !s !}HęIENDB`PK C1W[!nuvola/32x32/mimetypes/binary.pngUT `AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<nIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t.,z@l4H;:%```˫R7x"j9ZO4da !"׼<}R 73wt(4;Ƚ\./Wdl@-o,R@ `ѐb&X<3ňBDݽysWf SUb:\#@ ̕ |z:d1XA$J!@L!FV ccSM#Đ@a$BXK,01Pt} eXJx PAݡBf&9t R"(+ʑ rg1Q 摈3^'yN.H+@NU%3sUt3CS,@VD0O`3y F;ޙD]U%DE=c}R2d"/bFS&2`R7(|d8("Q yP,,C 0kkk`u.@@YLJA\\\ګWbP@Y,//c6q#vf֬Y `3P0*%AbZT@. UJ a儥孧O>@@dW4"gG(hL 9WA@[WknjWZ4@,J?KDEc+Ua VǠw$+@-,m 1XvW6@s`[@(Aζm@)S= A-~5kր7nՁ 0ugϞ;q Bv@a8~W^@Y A {a5bA! 8(2P344j 3# @ @,7V@ ?Ԁ*jCd 0g 'gi/B} Bv؁ǏW~"@8..n˗/۷ᅧ:D@<t`QLΆa@æfeee000` +G`70aaX6Í_5De989@r^;Ç_0!(HAYf9rY628Ci)  Ï_ ,9L Z ,aܛ ^ b@L0@XXXhc`h$ 0`' R! wIVV2K@C3A PC%Kn2H 1xx1yT?A L`ǀ ,Y!<agt V@&f$޽O `QfhPK@60S-ȋ@< r [> 2 4r)0q=AG__W9;0*f44AUAJ߁w̬} O\č$ &xad4TePVSG>AG#Ws3:;P0ivAa`ppbˆĄ0%o#DEyɂqo ex '@P+`XG<}^@a 8DЃOlٗp/ c9PU!l7@`ʐpn{w,ͥAAMX$2g9T!5%0r@aD߿F3;0!{󕁕 hJX _We \e$,ϟ>kSN( \騩0\AXX bvCdm`>a`|MvN`JXW@! b5P/ ,?02X-ywII`4s6`a) ;`109uX*8*?1HHp11;zAAi *(/jsr10ܹ he'Bl@1a۷? ~~r,a[+vH [g`̈r@Ӹ?f[33HȾGv@1᪌@%"($235Ek ^}-6dFANNİvV 66=ؑ) 4U{0L|bPTePP?38?p326䀖=zĂe֭vsS`05@nݺl&E$,X 9>&ò  641166cm LXj~1,7X ؘ@%LPGR5 NbDTBr})P 5S 8'^`-##v] V5Xn -@Q@ Ch# ? 9IazIENDB`PKC1a+HX _ "nuvola/32x32/mimetypes/cdimage.pngUT `AZPQux iTSOF"$(WNdJE@HLC 4 J 0aJ%8 q Rr a&%8,U%LIȹǷz׷]3~=1v2am1'/o֖,^?xKX=.X:#}o7?p+3rm|1Rn( Z@X1[S¬%_+m085N<ƩM Ŧ5_1rX YE^N?R%{L|rl m&,L;OgwП@ @ԓz5{8PepfopIX1I|W(N Մmp|ISvq9p AU%.6 `h#ho'wIkb)S >qY%M&>.]zZYY(t"<η83ɗm J䑇[2}g4OPfMF*rDtSj{("A<,,[}H fdҟ-ԭUІIYPDIm{]A4ٰ5_t9CErYT`:dA^GqD.) DPy PꙡFuq͏Cm0ߗ'z#@jV0A +b"=+ / ^ Tvہޣ>#}RIJçv950vUO-b{jѤ73-[nWA35DAI"]ۃq8H ^K@nSWtG: Z&]H]ȵndEErڎ55DmiU !Bq>OEDC&=Fb!<=o|Y9G\YaZ4Q7^0?g97*@3/p(x.3#p.o94 ^: z)3 f@Nn~; N2Z ބwl1r9,hqaS2@h!!-Sjr]wI,L"4. KnO?A_ua7$ g׋4Nflz/Ã~04Ghc#W+ [uh`"&|OYşN@SH'S9?R rXq|}3@㟥u`V./̹-@n#p:w쬴[K8b[>_B>Q֫Ѡ#VVcDs+ Jgప°hG$['"uAPSTE-;?_ 3iKrqiiPPV;+5a3EX۷J(F(eVWc-+8YTycQF۞~W|7UFzua5!R[G"Eǒ+pہv؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx zep>RB1,=  ._c#b &nn#`ff?2 #:p b > 33 #ïg^N?;Ϸ8Dtß_+4` pr2rp0yyvëE ~}vII9% ^o$08rEPB[#+`dggrǶZa _bxc7;#N ۷2p>p֕xŤdȡ @XfӁC /T5U>sOJo?3pϠˠ/p~b#ùGO p6H!ellQy^o1df>SJ/0[ 1_ʍ zΖ@=axAH1C ] !Lٟwf9#G>lU˄Anq]~A í&S> 3HOˠG 4JY]sc b | 7?K2^ {H*a`3K9&{:z " 6 c a( @\?e`A@ bcg;?TaP x6D9  k 20}x4/ |a`߿E-#8Z @(ۀho|aշ<7pp3J>,e= Ý;NVU0V-,HZ@1a`ps0< ÏdNvWn gfQ&f&paـϝ;Wf2h-p6;O <<OȆĄ550qr2罻WMgacf߾Znç~22ٲgq)'yy~.1f0dy? L J1/+cp]ZI@a@߂ CBެ\&^O?f/"Š>Pbex"p  8qu.`%$2+b&L &\u?`b&"S;1|} bd K>.eex z1\aOR 0UAyXݪϞƞ5>72{E;H03X$&2 l6 ֆ Ts e㑋 l7}_~1| 6kKn`V h9WS ؁TJ8q' @FŠO!+Ps [e@X[D.i&',#tu!3<#0! q59 XHnr0Q1%, @!HJS[|jza+` ϟ?U4ҔCS.܀u @ w`uK(:E69XR~3H a xxxڥLbLH} NbsǏM@E@{@ 17 { ?@LiO\IENDB`PKC1ps "nuvola/32x32/mimetypes/cdtrack.pngUT `AXPQux ViTSL7m@ P @>iUB\,)"%2*8!h@[`m"ITf((T R0T2oη>8"?$'H{B#muXDNμ9E04vYLљ&fgNB@H M拄/{`M ~.ЛL,j/19O%9r&fgd{\1~RMaWZZ$&z&X8mftv\lj3{ҙ}pO?fD\h[ř(,# O/E L^K4Zsco]큑< GUC eR 'Bđk'i'+{K ^TtS ̕/`î(qZEB!Uc]K) z \nPFŗA($6؁@p˩twsL_?8J0cߧu{%ΝSqe0'4-[,,< LXժ:mYI<:gȆ+]p!vvY @UG]c 'Pl="PDLz~._U_PI3eJ4I ~H;Tភskb\⧽Z;hT ľb]l'찌#qCO%C1:J ,PǬ^-2؇8|aj)So$0?f&Y~$_VXحk.\^,R teH?4|o 9LL+=OS̴zsjWj䟘}\u4t:52ۄjuy 쫀&򲗉[74֦61{^OF}`x' 5R(ɳAh vPNo^BxU Qc"yU!NPRrbVUU5KF7ۑsu7YԠsNҤ3qaKr%B)?UMUJ <rqAll--;uT*;+ wwJч1XT6[[aX vMLy3i{1KU4VcR!z[̻^voadm7cS;XDr(5*S<]Ś5X>$:"Qu,^@ArD;?L ~rcH{xٴ!%O5|׋i>},%c@I=Ӻn21=B,B?:&ݴx8#/C7{xb-JpY-^17mb1-?SAtݔt!Ix&%1B4׽7KSסaFafKq~uT#V3A ?_Q^^B3NPKו>pqc\ ?xMt+FE=igކcTY|>YW\&}`Vz{:$Qgx"uOb4 Z1\&deuqVU4FRw}6J6d"8nsZ5)T Ou+42~'Z~':7__iXyyg\K9U&tz"7dH9RȑcU0Lz6r WYaS%-pXɌvlx<(3:s ]PҘ(K{2;̫ +K.g/B1}bA[r~vk 6Z$g^G<86od)i?f*@pē@,J,lP=J NϪj_mqQ{r8m2;;|EE/,{[ۗ]£Muufx}J>`NM*GL8+:qpvh5!?PKC1:>#nuvola/32x32/mimetypes/colorscm.pngUT v`AWPQux UyXyN$O@<sp)(*2*3찀.&`x 0~.52 EAǃم AIz_Uz8~YN^N͊J#s{);U!sufZ^Y WdʕؿTLoe1WFo{*PpHnݺUuduy#S(qqqGV=㏵:'- IC~Ԁw͇L# Ϟ=;Gף悸 AξW\o u.f{G):3Ԭ^T7:{P0߯3@w`:y^Y銖6<|PxU(r6GИ?nUXO}D!6;vE(CZm0UkWz sު]YnIJ4j*K&zM19Ѡ(JX,yosoC4uv9憶?ȎM4RGTz .c 8A6B[IYm_ʚ%yffnm"^vF󝂟VEs3ܔWV`{:@Urgw[&8rp(lʇxmUK2W,uMOU?-+t1|t>qCD9kXCn9=h㜉S wqP>~nt j*3|\B]5 {1A1*sJ/]N<>\eNKt[4߹co7'(\? /7"cPmL!S NX' cwrL}Æ?@,ޢ <x R<.?= +KU`Bz=Ηl)azs*X+ /ZVd?4kl9$[Dzr6 ZxKdm}Re(]͔jːQMu<tcԆ#bYJN.iSrAvy-c?sXO#nuvola/32x32/mimetypes/colorset.pngUT `AWPQux UyXyN$O@<sp)(*2*3찀.&`x 0~.52 EAǃم AIz_Uz8~YN^N͊J#s{);U!sufZ^Y WdʕؿTLoe1WFo{*PpHnݺUuduy#S(qqqGV=㏵:'- IC~Ԁw͇L# Ϟ=;Gף悸 AξW\o u.f{G):3Ԭ^T7:{P0߯3@w`:y^Y銖6<|PxU(r6GИ?nUXO}D!6;vE(CZm0UkWz sު]YnIJ4j*K&zM19Ѡ(JX,yosoC4uv9憶?ȎM4RGTz .c 8A6B[IYm_ʚ%yffnm"^vF󝂟VEs3ܔWV`{:@Urgw[&8rp(lʇxmUK2W,uMOU?-+t1|t>qCD9kXCn9=h㜉S wqP>~nt j*3|\B]5 {1A1*sJ/]N<>\eNKt[4߹co7'(\? /7"cPmL!S NX' cwrL}Æ?@,ޢ <x R<.?= +KU`Bz=Ηl)azs*X+ /ZVd?4kl9$[Dzr6 ZxKdm}Re(]͔jːQMu<tcԆ#bYJN.iSrAvy-c?sXOv؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,102;c`,bkb|] ̌ brXy8N1🅋? 8D "x7 ,2e5o q;dyP$ 4?Qy dȀ-k Pbaag%8(EǏ ̌ 11<(fMOS~1g z`d)_v R  ~cN!Ve) f-#?XDᏊ>8CbAb 7odaMĂ+,b8u̙3\]]^~ vȶm:p7n02ƥ10|S-r˽ yOX @r1y󆡯!''TT-9纺 wa~:X߻wo~?j!_*& ˆ)  W-ӧϜ9`^, %~00 Z ݻ)>|gϞ1z A@ !o@X3}Ë/>}_߿3|޾}`zAYʕ+ Dժ @8!ȕtJ` ?;>0p} ǁАC fCXg7 AQH @(AAk.A@l)場"""`ll .= d`ll,ѣGQ w$s=OOOiiip&@Y|%%%| ^PH 1 */LLL'Ă6 9s怳bAɃ#Q %P"ĕYR=(-0 A_\\gA`Ra rdq lQ@A"( b!1 CPA @99IicO|M7l! @2V!#Z]/r耊xX`  7u@*^P g@1"šO)P 'I,`a֨&"= JU=rρg@?i8 IENDB`PKC1 b0  nuvola/32x32/mimetypes/deb.pngUT `AZPQux V{<w /VĻ.rf G?{]u9"XSnu\J^cDITWbIqұWԺrJ6r l?<<ßSSY~j%;3I{*f$vϙDjFk@3t[3N#3K%Ս/墤t,=W!?7͙f(ϰkmImq@*w"P?j}Ŏ+Pe5&$ 33Q_dJ`ªwH޻xR,1˶*յ_釫·.&^? =6Pcڢuç0h :3s\ads!*\)-=:O^,u>(9'^^pI{Q'T.J8`JI8Ehn7X/vP٥Qlix!y Q95j uf+RN~SON;փCn\:qQm3JG{&wC sl"B2%Đoz;b1t#!ȆY;.z: 5г&ooA| ~n^ФN\_(t{xi_֠mgC;9n?g+`^EO#Ȕm`! >%XG,&kI,Ov[*z9-Bpv@XES=Й4kbe YGm;aUCdsBٚ$nt349&AXFmWωt!>j(7x0h$)<+B <{w(R_%!1}xY:N(RvEc]<\)vߤNHsNru(k͚AtIÜE|K&iM*aa*{ }csq[ۯ: {9xkh<]`G bG" E-9YͰ;ΉZ q-xQF/]V!dtWW¯mcbE374hи똊q{j\ebffךF"z ,$grӠ= Fr]W پ)}ƞMwon#5oc.P*CQQ9 u1=5kLo9<?yN~C.}CsBo֔~$oVMSIb_1 .L'wvVZ3KQu p`.C[8{*^@bՃ"|@B\? 1@uUxPKC1M6F#nuvola/32x32/mimetypes/document.pngUT |`AYPQux {TSWOn ʅ 6<,% 6(":c0(MxFy8ʣ3RD3(j'$O܉cZg~gs6lOrېp|2kزdd|8\*fU;˞;:uqYIIr<IsB*LJKNt@ Ek"ARXHymm9TJy*MYK~iʡ,qҡsڀ{c=ۈixyw{RpR Fj[[^츃u4Jjd$D"x3hS$I|BDV+u#Z$ !C`' Tm$$e¿XO 6 ԋԖ&HjBRx&@0$R;,kv8P3媊9(IL|3?^p.Z/a})'PI[>WFiրboGGZkRgvaGa,+"(;X-ƼW{aRީnnKߧ* 7 T*F p5M/t5 宀U(RMugպlfC޹ a.Sʹ0)OכxݪԔ-B mG:6s`_pPsLb6"':$6d7oav2΢W 0E,7c}% Ƕ1f 1)/x8A;PT{@s_&^wtLݗ0ʊ+uw4!EYM?} Im6$jxXZP Yq ټ=TRSSĤFI|~֎.W!N&|l\c<`E]jqTܭ>wЯ-Fz8&CKjI}-2K0WeT^W3=5??c!Z! HÆI2;珴,} C x ("Zp}$/O^L?F5鉶";+hу?e i͛#}h!%qalJ?3\rxZν}FQ+;K:pcQpUꢤcd|+n~Ox0 "F2ϩTۋDUgEBW'/×hЎdɰj&Oc/%,\<40C[Pzv{O_@/.f/ ~TnX g61S3[SN;rc'ԹƁ plN c኉2Gx)ayq33y%Gy0~$(pڰU >= ~O#Ϯ0F` 6?kf18 Nk齢1]G砀{Rߣ .p竅Gx2f7nO5&(V;UcMBYxhz#Pe{P"I{S/I=a;Yps^X[RSm *ӜtB=;pr|˽hvm]-` 0"JCRky1rjRT .3nrQ0MSNTdzNI,2ٳun0v?5W g'S;1nt~[PGKl{n ?Jghu\YzV Wr2L\;ȟ&KUb1FmU߉ns8pIC3۱xkiOI<3i0:$L-ъo.:b )ϑ4v;laWGKs2bRHHb<<, G05(DWd1b,e;@ fPb9۷oh, XeShšKC!  Ƀ,9&rB &`` (nAla $᠐ yV$c( A ÊRPP>0#A %Ab R+AQr4, X0| 9$azt[` X"bs,Peǖ  [7,A A`A `Y9DԃrX0VXt^X^oq @,|'0P*rF/Aa$\p!,"@a0ŠVP+`!X*`Yk.5)Q(9$r(,@a `;P(0 n-! v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx zvaZt<@5#0 !F` b=@ 0Bݻ3ܾh#?؁`d( #_?`.1 p3m۟1HH 1+0-{x!mS@]yy.}f`7 >22xyJ02xP^y_ llL@(@w @1$$'ç ~C?`(|  [VfmE ?&\45@w1hk0|04A @]ngi{0Ë?b߾CB()^ATBa Xs ߽h'$e9@4>1\8o 9xuk{ EALϟ BB ζB 3\dpuWg06`@20D0@FZ.~CMCYK R(рĂ)+ k3?AYEkvaF`A| !rW`Z(nn> . rX{a>i LPAh[wӷo0v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@C9be!RO1! @XC%@L!@p0t5!@,}B@L?!K @RX01( &l5)iT b #%gCb!p ! _@tɆB R B>fr % 1!A(ouLL!Bom(r}3 [ |V ( BWGd()|lBFJ>6&<È[LȎAWcffA} xlgĄe3lr 988z{{~ g@1KII@!N'9eǏKM@E@{@ 17 { ?@z IENDB`PK C1dB$nuvola/32x32/mimetypes/encrypted.pngUT N`AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿DYs0jAhPp=-fffo`b C1,@,| S;NNNgϞ1\r  ˠt?t3A 0lL ۷og~÷ovpwph[s @CF1l۶ NN " ,,,`}>}f8u,úuB  &lqjׯ_c}>r1;w0lܸĉ3hd0bرc8}5r@Nݠ''TUU~Q`dax[44T^|cp`9c=Pٌ@q0{OI9E>2ܼ{!%3ANRjˎ g/b016`~; rD?; gbfxx~?Õ;؟fpãGOY>_pO&?._5^p# + \ T1Xh(20 K 5 L ٙMM-}`"ddxzg jnY a;TJ$B`+)!1X`ilo@gn? ,_00:.P3V O?:/#Q@,j0#f?KPTq+Î#6`o!u(B f~p #7@-A̿>0A,gO1x J 1cY-C pAlF~ Ra; )V?ǀ  fC C _f0n3;WW/< Ga'B *@o`( ÕL L%80>>~a11f`F? F';?ZHA5AQtfEv:3pr2p E 4}ĠG/eT Z4@L_ [o[U4tu< j@Cg;Ć&&& ߿7 ԏ&Ժe'h@0E@r&u)PPrG!19eǏKM@E@{@ 17 { ?@),@.IENDB`PK C1ꎡ$nuvola/32x32/mimetypes/exec_wine.pngUT H`AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1eeegikk[Z022hFǏ?pСʏ?^y @/~Z/Yt^" s2`PU bbbZ@a% ~@ptH/f_P H˯ b?Xox0K#-w~e` ĿiߘyEC?F6  4=`eRQ+0qOc~? B@? ?TE,@ b-6 ! (59(p4AAw2 (@Op @Ђ ?`s1 >~f7#u~c$d iJhךjw0|]? _>|`=o>}wB % +qðPFpFE$/'0301۽# {ao7P} ̌4-]!; z$? xsVb 7(+_SAAׇWxcK0@LȹY1 _D$gc 5 ZZ ( 7  @I!G7@1a# ,\/dxcpuV3- ^Bl2ϴH0@i[N`%8Ye`p}>2e`Pd cPԐe`780f 9@eۯ >0(z2092l,||3p3(c92 P+9OD33H3b`X@ 2T9[AQ!'ܚ?N` b֎!r-  cOd`` _VJ1PǸ916_6P3?0Jy[:@ K؀G1|aggg r› q5`ih67߿b`ba;XXX MYcs`a~qqQv O_adg`ee;$5r5(ZJbeda*C)qy9`{XN7#F +`7+/#ç otʿ 3p X+7$1i|bbXX`Ã'a0 |gdfp Ö _?B.qL_x+a,-U/`9 1UX0q6F0LS ~#,j/X*9x@o(ph s0Ȭ (M1Xb .@pegvmQ WLL"ʆ%*Aa=O w& DX;дN')Tϙ=z;Z@!;D @M9O1?UtX<_xIENDB`PKC1Q52nuvola/32x32/mimetypes/file_locked-[Converted].pngUT j`AYPQux %UiTS 71\0!c@ IE_"%AmAVV'$"Bšp**{>$u!LeDGe~ȹoKNJgxw6*3~8';1[oH _Oʿi0W'>eӦN.^qgWf͟)H4HG)v?jҩSMc *[{RRU\ayH>c@&ĸ9FE\]D,pqW5*-f9LP+˙6LoD---*Ņto9%8leV&Ix7b':]'g)KxYDhpHI@9qp:v`4yh#8X+]ޚ]yͿWAd81'zL@"\!I|(l[:iyc2߇ B)WU:v@0adQ|ZI%َmME>`ց}5^?HLo$^>d*aD(NiQuΚh*勵4:6تY)Ք+m4"]d7WjldS :~7Br]r!s|>W { ,:n8POu@g 8{HWq--IpN@Q}oTr _yb▢w2\Nm!9漸n\brtj(H `:j7ZSW:۳Pˢ42t2$a>ƼJjn3YMuh~Wq=fz?a*IfypX"Rc JV)6C,ISW4.w^i ד5kE#YKrڎe#~Wnז?jVvhiGKחזĄ- C kw]u@{(lT⟼6uwƽE$ցB\r(-b8`A'6(Ym~riV+qۓgiyPl ;gXhr(I" wfy&, hD6Bg+Dq֍[YnD4n@znI m*|Cؖ( "տ ;9&Czqnʺ@h[u4ϟ.~Mфgi+˾0Rdju,s'P:Ae㿌QӝEо$ ~ wL}a#VN7Ti' ?RvwቔSor[M_6 Q4<)GcnfQ ACfTj:8?VZpo]#GA=({l\CJZIǟVs~fޕcRGXz^H}a( խg DGmDؼ$`JШqאdah)ٹy`Fx$&&Tcvܬvix-:2~<ҒKNbv wB/&oUt5N ^+vϡ+9N2{9KK<9ʱJp.,}Џ8cGBmD&ܪ j`Q"PKt91aBv{}&nuvola/32x32/mimetypes/file_locked.pngUT gUAZPQux UiTS>77$AnHr)` b2aiT*$c% UK}OlYP DdvUť bV*Q"$/{{}2 )N~<ݿtĝ M1.GpޙeI EerK%@_'AS旗ܑLK 6Jpg ObE\\oҥaf=Y~<,,Tc@@@u}Ud'ط9YYEK̥"g?֮(W=hyr#_樕vyVz0]_hnCwwIQCDQ!726G̐ D- # 9ĔY[W<[&6<\@rPL?#NꮬՌZ+ bg}\03iWgiᚄšOߊrUrU>5$7Z>xËZ-OׁQBΣ8vv`9St!Y~V: ::Zyb&&dvjR N|ބs#u[4tuğ{3ڀeMjpa?j걇siS!;L_:(}6 #MoUn.-H&8QQJ]m@|od)11k ޑm=#wt:~1EV[N|AVzbjVWaR鯼q#龾pWD]@'8i"iJN4?xGk)[jsG_?7NGQ9LdlXKw,&4/yd i,D<GLK)_d+&ؑ̐J?0?JJhTνW1sdfҢ*Fc1B!Mf3`? W,L<틡HɽZ)V0y'ZEEz2ŇmqWwhY;Fg(!ĭ׎m8EjȴU0z]"Lf0* *V5ˊ0:v\'̑cƊPjս C3X S53-^]8|N '.ۻuUh&ϰq_-K|CÎ-/x'V!Saoܳ+О#\Zb9U Ks]nۼ_i*rFH>*`zRiKKׂZC=Ov(:XM*vj "Fz=d FUodY_`M#8,p;H8!-!t!`5E~T)wg |ZE(cܨÑdsGTGfk/wu|(bI?W5+#qIZh]'sL{Y4qk]Jm& &sHq,%d* k=s7ophN1ёlyك6}ȴ8_s#۞z`}⁸9,IIOcÙ5&=ejeX1,aOl6)&`2۝yMeg/ ӚYԔ;!o z1.b(l{k{>d&L;8`l6 {눣DhVb/mDxHl\BÑ3&ԨQQ4Ma"k~>Gcm{puOo7Xwhǟc = 'ckԫ($i!`e }ewU*/z'^Z `D|vFq`Zkuad,=ֺʼFe3E@8p{l?TwA)EԠnH`\U~\IrY!۲[^[UtuڮPv~\4D$&%upa}sj-"]n5@M{e"3{G#8d9.8qa!Jd~~`Ā 16W2 [ѝv:tF'`ai 4g 309L-#p &k S_q>>^^]hS R E(;*~`2|rzY0Qmp'j\}ug3H_? 3kZ(O_.niU˵$H. 8U% kj S[n`/PI 5NڦC{QWDh|P$b[;ΑQ=VG{ ]̜t`T]jiZ-Y}γG|xK& ,LA~0^ "nSÄGdC JHRg>)LOdde GMpZHU}C괸P"^N6BIM)cIv__%f k6]v i1mK VSwUNdMnn kiH .״wwwsˀlSi+SyXr7`˕24 ڸN[2CEbN'/y/ S'=һw!y7 4b|0dxFd$2EII!2`>%-B(fAr<'$=A"sEʩαw%ˠ4P[ɓAG lq[l{Х[+PU:4LRpnG@+9z?d#/gg(^Z{3>: Qa>KOԕ:5Qd (g-5ϹD{j>in8Yff m2~SaqCnnW@awsX~GH;:ud!z1|R&9w=OR9B틛s8Id鈗Şer}"nchˆ+l)<;#4+*XP]==*j}8{q[nH} m%VR?“C:.Ls]Ѝ'+׿`2-!s<u|q(m oL&8=bc}KR{֮ku:V;3{Tj+%d&m8thHxpI,[4?霸#<3C`כ6'<\9i/v t⺋gi86QOӮ+jvsu-?P*ό va:֓nع`y~\iŗ=/ph)8k,JCjջ&&%,Uhk6_`IEYr`x-u|mbolXPK C1?^nuvola/32x32/mimetypes/font.pngUT @`AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<kIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@Cfff!0+a.R& ad902<{ ƕq z 1 ,D/_PYY v(;a1>Gw @a:ѣG ofxӧbr ,0Ab—`q 7o}i&?~`U  6ȱr   ߿39r۷ 222 /_fsԂ m۶1{?01DGG3())բ; !*}r N:PTT{;vD Κ5aٲe `n޼ׯPAbV![l<00 7lΝ;O$iii3g0ܺu `XF`gggx9Í7rSLaw2Pk50UTTd(,,dxXV4 CS?;`/_0[%NO .šA|JP sXd{.H{{;"z===sz`M BXjDzqRGq ]kWJ nUF fq')l7K%Lwf磂"3ݫu2 `A P= :o3r2[_peWگ{Yb90$Lc 5ā) QjQmB{O)} ZT8m#el@AMD(M9^nCQU9O ޸a!VRwBmf67G186E} .`E)i%ȑ -` 4@aM? C`BW-[E2=1@a͆FGBafb[.@o8l &r/j=\lBFR|0u2V!i[:Vە:  z_p:\ MAz3H RO;$3B?1Nb PL?~̒B< F%Ī@M9O1?9(IENDB`PK {C1"ٯ&nuvola/32x32/mimetypes/font_bitmap.pngUT :`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿-bf8oF- @z {߿C`^dybk"8ÿơ",a~B#`%0@ 0B?؀>`wrb``cc#j}g2@u|RR 4ѸB`@ ϟ3_?Hg7<[ ۷3 10311%.!Ă- @2rs3|cxq&tR $y?♁baiKh A2H3 ܱ@KC}?ݹON!@!34@4(Nldq?0启_ cMH!@,>r}ML耿 3@F?`HS0@\`E gp(!;K#l1 ?0a$TP /_%QG@`_F |hb 8Av$R-@M/а?*X  ) `xp; 1XkT>0071yM0 l.! ^@/ ii 90Z#@?^^E0r(>d _@<$*dC %@0(`wt(gM`UV 0H!@8xp/` @ÿ} `B9 R?C VǠftp`8Z^ h- " YX0r?PU *A&P9@|@ AqϪĠ,}zݻDƀ9rt (0@xb0 xπ|m/xs0њ*#(r,@8::?Ztge`:/@Bd(8|QKKkk (A{3m 646$آ~69~$@0E@r<<v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿8-Fׇ {@4(^8@rĂg PP Kŀ̀!Ă0  `q0Onnn===Q-@ dǏ^~wg28qOf8uX̙3@!\D0>|#ZZZ`>ógDEE?yp-IIINNNpK &\q̷`{.@WWW~~~ښʊAVF1БJJJ`}@S@5rhX244dfx)0*1?I1a??(ӿ_`9 LL bA@ ?0< ?1 14`b+? -G g(pc`eg%@1K 1vfC@ó ܪ bJ o>B41ps4 Kb8E2T?/0#a 9 r W/|p ? e * w0ׯDع>y`(,=082 `؂[ ~f7`d~=, /eb ).30Abȷ  ?ř@ X˗/ ? oLup" ^`Е,>&?`c!@x(Osqq o߾1|A\JATL0'  & ?2O`I7#9g6e_޼y}F@ %U_-0a Ö-[n .z988j@e+Tr3|Z//×! @,riPA0ë |0" !!@,"$`50~#pAEN"(0@,c~"pk/y~g,޼9fid6@k !; wfX> X~Ú`-'( E1peo10|{`e/# YsƫCzl8 Qu'Ik3.8?,+P/q5ð9 X` 5, *%6\lBFBm@GÖ` iquiFdGv :Xki@Cg;Ć&&&0 ͰɁ," 9b)*RRR@1&x^"$*?~0&"= JU=rϟc J ЀIENDB`PK qC1Vf̓%nuvola/32x32/mimetypes/font_type1.pngUT &`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,ǐXz@6 XpaDP&VȎ &t whgaanL?,,X# &\!-D&8yymc114 [cۑ# {03d`ahf",@a |J\ ?޼a`3rpJ!@aYM #PG G׏BLǗq [J@˿}2O \r hӧ,%~ 3| + Q*=x%ÿ.?~0|KNfg`x_ Ab9rPhϽ /2XHH`))?(wb`D_AfA&`B#K#@ q5 \5KQ6/_)do`"o زFPT`+cou *fpgB?aa ?2tueA# ?{B̺}#D OL@f!! X X 2e8 X1=p@GΘpښ֖- `ǖg6 l1}(kP<6.>``3 JKc*!00 'wxᅭ2 lQf@_* pPRprbj롧x:~3,'E+A4@X僬_ `$W=4Zۘ @DF\*dGv :p)7v M;0 #Ɂ,^` O ?@]JJ( QNbsǏM@E@{@ 17 { ?@ fvIENDB`PK tC1i""nuvola/32x32/mimetypes/gettext.pngUT ,`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 0l V߁Ę>6H_  !A,,`ya&!_du,%(q  lq^8,gG/&0>z Tu.?~003|ZT2M Ҷ HĄ-oo3|cZ(>OYXA{qOOB X@1#@A%/EE  \ LaDAё[F!!;?} t$4#.r49×F)uuVf|A;PC=0' ?gg;:$d`acc`8w ee `}ĀAw`t 0A‘P) = L f+ $>+003oz VpYĄ cǟ,`!qDs >^^,ho Gaa`ZB Z @˸>P^؀V ߷la5`֓43cJ|hA i;`޸N'0ee`?^} DdxX3|/-ec ,/`mlYa@!pۇ ^/ Lo2@L@ɉ uAf`"E`h {6Ҡ, ̀faw090@N|,EttL%VH݀##CK ׃Ā?QX<[`|-f2?V1ƒy` W!@`\DF2|_A@響 4+P5?Ծ:v᥉ w?33H310/R&&& @XcoAu5W0Ab̊ 2_͍0۳?(bv`$  'P_`#7@ ]403K\O`6eOv`L?0X>C'׬ \boſ4@8bXNE@)3: @|afEΒȡ @أuv?8,p|!l>@1xQbr0U~ۘ @#n2͈@#;]H`Cj xlgT&؂Wa_ssIoo/^ g@1KIIŘ`X*C~RwPhО%Ī@M9O1?nlIENDB`PK mC1}UC((nuvola/32x32/mimetypes/gf.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l \ /Ace`agj)6@1 311k^=yt([102321ز% O_g`e *$@ =\g̬ 7exk2é5 d7`/c ~?\pu]/ûo)C -0؉0|ẙ&ec?*^? :6կWZ`OGv @b[E_]ךE@ =cuW /b.k@b? _ff`M\Ͽ ?^^`;H3<^=apɍ FhLbUV Bf L ߟg>L,l " rJ J6_8Ƞeil;TJ*fdα% *r< ,lB j3 'op@j&L44AAOΪ ι33 r( &l5H3 +ÇO<`f Ù?.bffVQcWF #oXyx@nf[NI`=p HfQ)@K[)ڣĂ._Lّ4E`&!~$ 6NU(Lp_ϯr™Xq1p|g`3ke^n>1!~A8=C7~ddadx4VPL͆3AXB>O ||| ߁q Lp lL R,20҅0Í4X3S΢('op;߬@J20p Y7@g82Û? 6 + [.?~2H((0k0l_x=Ddja"@1N|f80i s| .I4n.\@, OÞmv32p +$ ~W/4  VAJ^A0֙ c!23`g`6fЋu`PTUd 9dĂ6Dvԯ?@9Zچᇩ%} lo_߾2r–OQ pDA`m_!j#ȑd(@@?,E7fr @L6Fz4 9 ?0V!066>cՁ+8`A} xlgĄ_aYlU2| 9b)*i21AN'ԊǏ&"= JU 7 { ?@6M9 IENDB`PKjC1)nuvola/32x32/mimetypes/gnome_app_info.pngUT `AXPQux V{4I>L$"*3ҩafS:xap;Q*4c\8vzyído44essPMoN^k[{~axblCwDZ,,-paW~b@[_'m9;-P*f'CrS#S9܂T:,r aE'`63&HPj7oy{>l.?V%)2&U &gb  XEQgZ~1#xE|%tcL&{JSԼmI{v1 x &1 ?d_iƽ?JԘ|Џm ʁM9mLLqI3p;(f-.#+IfsPG?DdgVG"ArN3"sIc.FT~Ak1V2Nj^Qp~oLAf?M^¶DR䵛@i]]WGhס. $؁*o- jq+%iSW9o:a ǵV=߭{̑DwŇâjIg e/ 7ÛGWW;檛M: 7OnwY\v_}mMWjU&,,)sf  d|Eg(F[D#*V'UQ()^oiI@<;ӎmhJ2^$GD3$S'o!$vDf`c M5 ӹdHɧڋ:1U,Q[/kRD< HG T =CPMbP>I.ԭS(9Gr)lQ):zO>q1F*gzZPvtтrVe-{3wZ \D~af8N}xI|6ԫ\D%gCJ3JcqzLc<6{ev.ۚ :9ٳ[쮫T͜QJ ӧIqbC :FnX,̚ERΉ|V{&Սek K 0!0D7]7ᖺ#-3Bʤtt^TtT!6k7*Ug &%v NuHV,/^;״G/t&.7.V!W:0>({A{cd?Vnͧ{DrցG}{鐅mo?C\u$TWy-%Em?Nm+45zr5M?" oo] M]EU *PDx.=u9<9=HMb}R b [?f̙?|3W-a1.)i[Y[YXۖsRrVzVwr r:Kج$iV+C˴4q`8̿vZټ0~MO%$$UEM~Nh4Y Ձ־e&T]aulsqqmmmEЯ$ ҃r "RSS0 #G[E4du܏, ov%̳Ftbp$b_T #vW9,#kE\җb;V5Pb'[0g&}ì%>2Cށ]ƿuF7J[M?Գv]__w<1âXF$&n3`S5tk >RE'-tϦӚj5"}%KH@qQtZU! 뤈m bYLVMiY[ofb"-5F4lzH3AASpzy/W4.o0Zd OS2*;PZy5^Q/tG笂̀"FvGzkDjZ'fOtRp~fI|xB5#l-vz5/-`6|TKҀ#5]cβLJhFE MؤYPvX14P8}^PW/./)ѯN|`͟zaЁrGcrf#LsVic{ZA.@| ݨEu;;5FFݕ𷓳ڇM:xah_W ',A%!LR~baA·'˚G#78iq] 22ޜMQ6gkjRhѺʠ45n4}= g7̑R+vL߄ 8ٕ=!Jvўv=pm"Nv͔7z)D/ : Ë)lVZ';;h/4GI3'c7d)Ƿ!!) a5 z8o:͒;t^NGΞOqq y, W]qѮG: O1?ƶY*iH"*ڹax/G~$d??ў9^ IpOźYE~zf\H˞qsbvn&<Ca1q/ lu̓I76HA?yQ;^v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿(@bEztd H@ೀo _ 03330|Xz@ XpD޽ӧ lll`yt?HBj z --mȎ J< $$-7b1#ė!WuV13` X;77//æxUr( ^ Wcte;Ѓb@+Êonq3HH0p(J?~gw޿w3Zf 2 k#6@  rQiavUy!.f W?30} O0pwF <\ b!|(y83H221B" ?'P#+#*3C H802p12ps10<_? O0t?`|v&v&h &li9@,6Fpˋ20Ke`%7 ` X=afa`d`feF! @[*BY10s`pY9% cxaCK~t;@!Q@,j2f6Nv0lZ9͵- ߵ2d3,X5 /a7ÍEU Ҿ| ߮Me/b̆3 ";7No -0j w?_ Zc>}nOC( AGaxX?00zsjye@Cg;Ć&&&ԋ-uTɁ,Egoo/(]}g  Fx(lŶKIIŘ02C,L?~`z{`Z@!;D *EN9O1?,UIENDB`PK ]C1^pp%nuvola/32x32/mimetypes/image_gimp.pngUT `AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ `_߿ Cq -Z= $ &\qwio?~0pCVƆdG@ F4?w! 2,A l^X+b@ 0> vFIa02c8mǰa\Qqχ14F1|x -a  %'Ћe( &|5H3'Ӌ1ܿuu e*  7/cÍEU /Ndvk xZ+t! ` W3|}oX7ld g8_p%_ oof:<g"@L0>( ~7@[7a~dˆĂ/Āp... ڰː$'P,;'.Gzq3d;C pD0?>oa(+;L wf؞ʐ `_0| DĂ- e`gcDMB"N}pA xu+q\÷ "@ \ r6CF`=QrNe.g +. !:F8爼ߧ f9 +ف5+DYgC\"''zL%J l10$D0ûN= l!1@ZRE1v4I#Rk (l[M?0XAWDll1#rh(72a,%Pl 77 ;ObYH)QqHvDj0 fsvg`cabP94@!͏^s jv ߁ \AO@-Im{dƇ5AQlH $jm G@Cg;Ć&&&x WYO ?^02KIIŘEN'ٚ! (hBvbU a'@hjQ @IENDB`PK VC1sֵnuvola/32x32/mimetypes/info.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<sIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxzC@ u;\vvF߿c/ lL @1\f@a8مˁg3\|_A>7&/_ k0@xC?8-ggbzÒ#8DE9B\_/0T,!!LAZ?xC [L@Yږ?`P[AOMAA.fc_s%<2"6@1a Y37+O /Ȑl L ~km9)eW wa/#`lP_a 7^20<;11 32X2102}e`x27ï uC4 B9kfY3I2#33$ׁKbfdí~$H#'`Tfز o|5 4 1\zAJ?`} B L&`D E^3 a-k@ R0I`7L ?1y P!#CСd`k`704~eǟ n}c,#G@`(X? @??&*?_@w???@K*!^7vN>(w#@RhNڂBϗ@a l/R 2 }\gZʫSy$U'9@iTm_(P3"0#j @}?2rf`ece0B fCPfϐr'Vb>f 4103pss0& H'O؁) _0@q_ 38[ 1  &l?|OUezwpf?YyFpGVzN6FpN`t@d?~dLǏ?(9W]IDP!, WU{Q~839aQ`OAKCa1gC\m YϿ<<aȫ1" ~$6Ph&_e *O: T~6 bW/`]e>3 ێ]b.' ,! A5CTCj 4ߐDb4@,bE>CBSGaBQS'0ƭ ?fFQ!f=]>;C `6fC5Xs [e@X=:@ן@C̭,~|OHSXu(4 b!1 3׿ X;ȼo@_hc7  CԦ8fg=da ?qui1onRϞ/kVUEN%S=V)yO㏂H3qtOp ovZuɝ"r.1*mp'f|Fqrg 9N[9^cG @{jPɱֈt8<lo:7~~zEH*n[da I5) [SUV/C-Z?}V^\PtB"}NHKڄWL@-czsE­wQؼ@}a>q~ Oq,ד@P?tiDPb/Н0.jmlfXxt~ +}zhEv#S !G n?@u˧mlWD_HJex^'P$fLLiU1 pW<|QsZ>ʢc4o; `Џv(C{lX"Y53Azn ;Cgn Z%昡 CαJ(/Vb\s3~+% thb Ka+e'CdޜtUGm~ DH͐_N/[RBc⼥']ۇ-OOk6Zݐ&[_dMWO2Jmi5-)wYͺ!"NqVWKYcr[|LUG| M^)~W}-LouL c]SY/I&:=h>}2-ب3*" NMOA:΂0r#dc-Cssy|˫#0Mna i/l 3-cKx (mo(͋2p_GE %ү3so=JDi+@B{utqMWZ>:K#Pp&AYUD*Q51EyEfI?qǘVh΁Cˡ_2g䱨??J8DUj]9{9'z)c?)Jd|.w fLcw6नZ֐ ɐ{F:D*vTV.KA1kUzg-!)w.-w` >=c|eVV`/"$H"IϨswClH|Q`:FOCLfgpYSaU ` '"4|ɌGFrY;wAMI]kQW|T*( ȖHy?f̟9g إ^]?_zHr&`/1xjı#:12KD\ޘ77y{O{g\t :ػ'39h/:uvEZͻYZ]BՃRG7tVVp^b~tܹ Et"7w}4Ny*{}"ӄmW0`3~$F|a$!œc.5G]A]e5u\+b`/3T Nӛ S GUѰruJE< u1@姃# ⏐ #{qr27oqo?z6Sc_x*aO. FӍ[x9d/.\<_B:_!%pg(ElaJ3RTҧOKto HՅ^Gpɞ~ZN^i%?j;pyQ.O6ͥ-(+ä%+#a5RʻPQ ܣKgeʾ/ &VjzTJ>3TW|G8h a;T7?ۨkWU}!\" ŐX̉;JLRXسD/6IkGsIGWE%h@4_Ƥ%Yw!I=8{@axiO<]⼚C^ri4.h7nw'B*w Iaècb aB*FhA Hmt 2mppBNsa l;JߟuMGYBzfJJ󗦝!8vw?W!(),aQvFc3rC07Ih);=jŎ@dxk&ѓ8SOq{V)GZ1 `HLZc,`Zp$Ģ5M·}gSDU:}͹4PRҳgQi[zH2ͣg@۷LXo͂ف5?zu^i_^[Dk T{kÖN{MO}׵ G6i ZE=FTwY._7o tkȌuwЏwsxrj<M?~s%`6{V?( ^0t~DE쥕]@?x61{=P13 ,>t _Jk/ח жhe!rO"i%A+}q(:(C?F /x\ui̋*a⿵w蟱2-6sez(ދT+-IafƈAorgfL[}Yw~-n(>ca}xb+17-AMzH& &ٚKҷz0w-& s:>ڼc +?%e.)W)Z?x(x rx3S*Y\]Jg{k|,'+ 9B8L g6W!ge_uG"+'2NW*]Gv#pҸq'Mt]O$e.mLxAnNO8,ƙ?#,J|c*.Az*=X?MZv؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@Ctl"1LP  lq?#:X1 nL,gcc%CNN/?;Է =9kn޼`llb9rF GN03ا1Lw`,l򏅁֒; ^ J*`_b`ff`d(a;[ &w3pip02aexߏ:pc'g`GÇ1`Opy Xr  ̬ `h`X~~9gO oaسe?ϟ\ɰn_~?~BB $X-=-iYlyGkn0_f8<?׿ CdowzhFV Ii '`8yé bp6`g;в U,`_,' cOgHJJĚ [T o>2*22|w\0 } hO0E'SS 99e;Vſ2 `@auh^EQ`\ c8u,/F`y ++ (7pއ$:H@_t 'JP ~!!#$2ܑ.f?[%g50b &\M1f%f Fzt8lCd(6>f.6@!#)MqBm>lAoc@Cϟ?U4r@#;]HUAlPv MLL%wс/Ɂ,`~$@HM19v)))SRuI,Ғ&"=- Ī { ?@u*~pIENDB`PKJC1V+S Z &nuvola/32x32/mimetypes/kchart_chrt.pngUT `AYPQux %VyXS9x Hpj+@<Z JH[TT YȥEں^U*j!vz@$I^oof7 A_\<4G<ܳ+O/ؔZɞ}'ޓ)a&H>E{{%@O g0@5>>~<%%%ܹs XLH/PtWoڬS{,p׆ힺ_6ܷx"-U`0`tkYr`qzd۶m @322S/ipdg81c]پͿံٻ *%oίgJJqSiӈ͗i:H}_ #.#2p!t`Oifj$d+`Ѻh%Nͺ8)̧ůƓF\!Yx?l56:"$ulڷpv~b{2t_AGӝ&t@x*)QEL̄HHd${MJd;9tRkܚ6߯w8;k JcHt5%k/)«V#m. 0r`3jwÏ~=]E[)ַS+XncG]s)5 IE ʀE= >s,+#G8I(|_@U#/B;p6[Gз #AznƵ<u8. :/@x,[ hR0,ToKkS0uPq`Yu쪕0175oV0y{qD"jmCȽmp8'IAnTqWoV."'xgCw]=ekZqETyt> NY4^7ZAa ]{Jd1q1JGeQ8어׼bf!r2vU:~RF"^\f]e^/ظv8"$M}!{O˿٫$F8~&&@˛.3h7cpӾ^ /E-=G@ҦmѲPK FC1ua'nuvola/32x32/mimetypes/kformula_kfo.pngUT `AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<CIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cBb|VVV^^^- ~NCXX| PF`ϟ A9@=Crş=cp(N#<32CC"'?Ă0E0qFc9w4  _10| ߠl _ b@O/1<(`ap @7 \r ?߿g`Z ? _!yG`?Jf`032Sm~ L\\ c'X;'_`X/бѢ X=z߽ZA)0A,+W2"=""Aؿ5:z 7 l ?߯_ imme8q޾|AYY(؁!x6D @19 8EE e+Ottt֯_ RC 8[7%Xxx f @ OEEEf]0ЂbQ( ,^/ëW|k7Wfet< x rFP|3z@ 8UTxyxΝˠϰl2>ٳg(%j( X Ç ;,,~e`b`&HP3200̙3X1X[[30|eSa[ 4'W2h 2|ݻo,8cc7vss0<O>dl@asw _1={k ?y5[`WUW}d+,P=?ꬬ,gggpZ V`v2c4i¯ d`8%s0 1 (AJPPX"5*3jh00 8V/[63qAOj$%%O`pB`#@9؁•A 悟 L8VV ?|w Z 2T,L _ٳtP" mW!@LP[Q=0+K;V`@-8999>})``6E8 "bUZ! QVg_B  ;v`x18g|Ą9紶8?:6`T[ {:$ |M?+ni?+N ŋ3ܹsSNe(]MC F̵X},(`a`R B (#9 !-0:jT Y*q*lwd6@!7H1 r9id1DDzd@qui8Ձ@e +AA !쳝bCP#l}b@ZO3H h21ۢ:P,9{`Z@!;D 1M9O1?|_vyIENDB`PK BC1$nuvola/32x32/mimetypes/kget_list.pngUT `AWPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx z ah=T ,@,|; aB1!z?сb @@v!rvvfG?1=RzZVF;[IA@00@Cw )'>edšݘ/0e:OH@`{‰a ?y`ר] O>`:C jBl />00/~ǀ\ LGS/3/ o>O\YX FPbIC X}@y6`(.P h?e  !>b&/ &,@p_3~1< t'FfVFh Ut6@*` n.f.n@G7@3w޽ ((?~ YF$ˑ Xf)Y?e!ӷ?\~%p@?  OgFpA+ìov PWeN`%104fxQXAKGA[+0 $>}g`x_fRaXyBaȥĿ1h+i  [K| Zu$>11q22010?'*89`gd`b`d`xP a͆Ą5,4V+1v rp1@t70*؀ߟx~`KАAb— ?]./ðRA+[o0[ 0â|N=Y~Ą-hPN pn.`t38d P(rnPx)qՅb . 0[. &\uK;051X03]s bٛ \(2h)0|9"A:F1J2(cpA@V r4ع>}RYj@ 2T@U_ARjT? /faK(FD`0V1/0cxke@X=:07LG!l>@%6_r0R=jg?0V!066>cՁ` ^> 6411a;u@spp02|4b)*i21ao1`!19eǏKM@E@{@ 17 { ?@jܚs'IENDB`PK8C1pNT"nuvola/32x32/mimetypes/kig_doc.pngUT `AYPQux UyTwebJ S#%I .`HؑTX1 *TaE09dom*`RAIX0sϻ[e;3vSLkor | NhBYUVzaeIeؿI2d 2IڑOdp;#H}!(O*T966vn۶moNv8f}2ii"T#wHWm;Cn?i=s;/DO~q\SRұR} 'S(^Oos4Yfv۰Ǜ8V}iȭ/?G'V (lӚ&{e(~eEEEVT]#XGFCsw " ̼JMZ~ݐR`xo{ץEF,%}u6]DyٛmX+= d"m<唐lmfx^ ,O*:ϝv*SlQ<ď&pLClXC*TP=$!H9 XoRU]r*J5_Fi3[^M Z,O[ |ÏCOW#czu\Ӫw,f,^m/< RXjk39:}Gd)2_mVRzl.DJlPK!օ|R7-Dm:D:]9H [u6XR3csiDYVYɿVJ:zP8> dWTF!whwT|ivkWUѵ1!i !pvw{*Zt9q&g:OS_C)d?dd$y\ٴ( iŨ<9̹wQq鳂R-/ DK nӗTg".,e `'$e*ʊ&FhzW&g[~ުScjrPڞ{. л8*6a?9e  vEԥH3U&nMu Y>2mfN7+ϒk'M;e!YhLK5 %O͝yGvPgoŻniz݃chg_rt &lE>j$Z{6uQw`# ϝ zF_kqAphy3=ɳᾰ%W]>!]5Q@|81^k GBwCqP5JQ'z-Xgem8 > [K^Of?lT=Imٕ"k9Ml#-(yˉT֫< &vRAxT$?|AX Wzb&GxPvvm w?i7+q;ybDefow>_6 U_pk+ЋTz+!]p΃^k< !5ExmZۻLC8w̆ڝPBpBFY}]HD%ly)PX_¢#nY ^*6*O2<> ft6Nu : C8t^ 7ehߢw_%qԩ i;LRX{i@:~@YW?dJVDk2Y7.W/ qC6 w$g~~F"!.KYBpnnׯ q_3P £k++ Oى7` pY|iF҄՛.J  2Įso8PK=C1lU+$nuvola/32x32/mimetypes/kivio_flw.pngUT `AXPQux yT' @"LAjE`e G EHB$L**(>P_-Hd <8TPId^s>FZ;[`#|#4 LΌm(W39sdqsrS3 $p*/cwFjzތ-`7o< 'Mi"ߙ}]d0xf111Ry!-̨ʄb\]3 v1<ǽO򊊾`pٌ!GTh|IZNoNIIIt;h6"I;)c 4H{vcMcˡNOKq.PRx|\!WJ!V/Ef~JQdũk6L\nxR={77YNq} n/ZRUMՅ.I&Ȑ]J7FçQW &F%@.YtdžTK\UZGWyII7 M.p7k_zca󃠉5;wSov`8?-*Sl cC _r1`ы">ΌfC&E_sPfT:zE'Q>3Fi[O~ԴokY mΰZr~'[JLAb-Չ8sEOp&&$lfXja20+edOcjOxlܾL\imQı}eHjO]B!&YC$Qoq0l}&-髜fO"oCj2hg4pTIgB3;0otgDPh6h@WG.9s<8wOF&d4ළ/FyX+e(r=ˇ" o|H0z}-ňstyFR{5@gWU&KO52H2͟R4hlد z! U[~Gܼ:@$:y?Y_h4n"u"O_Jn-!곖u !(;1XOTɦn̼އZ?P(>-.;ՎiST"G7Lǟ x߅I $)$j̽H}Pf4Ų,/lݬEhEQWc!<^biZQg\Ie5c[uLvYZoLVEvf] Etq!e[fgu*.(Lu_=%?O?sFy 7cM#,Ԁτ`fq%m+ }Wc5XoQW/ "i HPEz~M)TĢÞyϊoWcRߦ}w<tKhrEOsq*"y 7Pb>{pl3NSFR\co _?dQ/S.+Unmғ):!kh3+@}D\xA`%ud7Fo`۠)W%Nөj,qtdC&O9wrIS%z7rzlmO3 )  jmk"+<;I ^d4o|:xc%Ӳ'kp\ UHK 60wJ=] vSN.*Lh_A_]-#ƙXIL2"_|yopjlr[h K@)foŶ#h$,,,Fv!,+\foۧhn#?*X%%9.eS`SJIM{vCָhW G#-~=9gL=66PK C1ԯ\\$nuvola/32x32/mimetypes/kmultiple.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,ȜWW`B@_[޼ysϟ?R 3 7o޽$Z ƿ~mڴ???#|N|aB NNNV 4 CW 0C$/TqĠp] @(?\f& @LX)`bhllts@>b: ݑXBdOUUU>>>`=  sdGbSii/_233a%NXhii񱴴aQٳ?eee-W\ (q9aXIIAGGӓENN.Tf'@ |!r߿g=ׯ_b dlb ϑ9 ܇Dr`96r zN !/kb ~alA%(A$p: @U0@LĦvt5آW-a rЃb" ͸ xp F`gBi[=Ő@7 R  U @ Pmd h-G`UBqY`5ʉ(Ƅт@!p=o߾ bDbmhIZt///I0ǀjBPY-Hɓ'Ӂ# 9bA ^ ېrOQQ"SSS`K޲@jp9= 3HWd` ^YXX~Qk eBӌ*"\5& :#@ P#,Uc22Ց flŋ `C>ChJ<z.QEEN`h039PP޿߭[S^`v@I. : }@)IENDB`PKC14)"nuvola/32x32/mimetypes/koffice.pngUT z`AWPQux V PLB !( ,+r$PQk !r@dW\[Da%*-xb֨((J8D9ި/ s]fӰ8w33 `cb0\knn]1Ex:7O /:+8Ƣ $\;csk4;*|>G<.8{g~9]ī WpL1$mLꍁ/Y^1#‰G9$:khe?ni 2C[.F9nAD\=e`j 7+܍iBt~ʻQ ICþ<eZuklMnQe&4O Uc7 y 482a!F+roOw#=eg"YcS`qjry3:|McCam[qxCٛRG()}x9%,//7qʒ%V Ԭ=m,,):u@z0v .<903:7+두 ^gO|QwVC.> #%uX/!=o> (;kgF&)-;vf<bHH|3F|R@WB;TEBR\ms,T[&y{'4>)f˷v?xPCKEF"oh8C=dRoBNjVˑfd\ =\%98λ% ?&Y3 2bbg dZ=G3<d$`0f`%51sk"`Hݺ25-93Ġ {8@"ZRB9G ?,g|_.=] jڪͯҽ6tT.Nbj5>__1lD@x0\ޗ?{p'-xJhdW9+tP(T,"RE\(VJ߼e}# pzQO b=ޒC탠"QWTee`qV\h# j%J?OI% ,͇|s U)oZBވE}uǰqۑr| pOtЦ1hIWVph(}n"7QFơ@ڬS|?2Ɨ=$X޻o7ML1zNOeINWK,) U可GX*emg(AԤ&ʷ\kkV jA丿?.ʽ2nVft\rXN9\}@^8tojBbH'0)k<6rFwgF;+17­GY,uvR \ВZf}gV%g>?>B~WE%A?AɉpH@=ȧ|fXrlݟ~}f h?l x3x0ʛaW scXԑϟ?8}LL m`AXlٹY9!;2 *.'=3ǰt5|K`9c#@7 ?0he#̓3 ^``tΟ a-×_d8.]AZÌBBU~5 @aM ^=g01gW/fpg~"ݾ(3;)2 3zȰh]v %-\Ą-@>4|~0}e`fd`F91)1Hʰ9f|p+fP) bD8ف 98473ÕVJs< o2,^B 9$;?;' ?bNb+_302 L.3X d0h.R>+X T-A'(' 4OBh? ?dз gLxٹx~b7Ř1@l:TCmj\΃ T1 )ȳm PY2 lJ;?f(ՒF. &rZd6@!#)MqBm>lAoA@C؄bխBall|dǠ'h`;%H xlg|QMd1Coo/ׯ_?  x@]JJ(Ƅv:)&"= JUAPA>ďv0 JIENDB`PKC1$JW)nuvola/32x32/mimetypes/kpresenter_kpr.pngUT l`AWPQux Vi\ 2(B P!"L *!H&M(Z9(V-jE w\ Q䒕 h${w#Ya]K,dE/(XA..[R6ei i'97%39~Tp0uw dvojXMp?K6bG Q Y̜9wƍ&Ӣ޹II!xre)W"aαguacsWb+fߟU_ ? SnGGHxk)ܓӉ4'DGG D>8/nd>_ TۂZ~H(M1abABi0=$ Z/W)Q 5e4C۷_O} dOnf#^o6 ++ CKctb.㶟M$<<jH d[e*I7Wo&K5 3 gO\zSMSL4AlQVͷ\RCPL97DLX Pav;}Ԗ2 } +iĉP)ӊ'vMŃ@LnM]lطA/׆~:HAEϹyX@PKjۉ *5f֨{%b: 0WZgs]ʆ|Ao081tyBD&%(: ĒY6ih-bLmP[HÞ%$ҰъP%TD2u'y:Fpuޮ^UgW}=I9C.l*ryxpFA}3똌Bʐ8iUFơ@;Sx_%A%jo4ȴC 7ՈpXbӽ6I[+`[4 Oc>lqti0^{ϜD2jZOQ\u3?B\2A&4l%ȼ(~Rhf4z, hD -]Z}Xtzy=@y0$h埳7_[LeKj`mQ(l {s%c@Hhꈷ.j2/j+o+1t#eB8b"fIGoӊ"U͊X迷14iHHr .">[: L*G 4b!λ@E,x{.g0i/X5嵪T쇪%f^9:#CkਯΟ}Mu{5'/fZ7J 3\<(garg[ۥlG囍Feأ5de6G*6|8YپT\GӦ7V-w{5Y/D![Eo^;~yt$32g5结l~A>F"9#́ٚRSb]~jovf}m:04tQӴ43+9EtuaEV)u%O>G5 bi-8J:3>}R.'yAOYv x6"~Lx@my%#b:7._}6̜FZfH"v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@C9be!RO1! @XC%@L!@p0t5!@,}B@L?!K @RX01( &l5)iT b #%gCb!p ! _@tɆB R B>fr % 1!A(ouLL!Bom(r}3 [ |V ( BWGd()|lBFJ>6&<È[LȎAWcffA} xlgĄe3lr 988z{{~ g@1KII@!N'9eǏKM@E@{@ 17 { ?@z IENDB`PK C1HCC(nuvola/32x32/mimetypes/krec_fileplay.pngUT R`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd16bffFV ÿjXYY xyyJ@ `_߿` Ɔad>@ go:dA X =}·Xưc 3{AOSaZ 3o l@1![69.0=zA ┑aΒ} 3ϳ3;[07ׯ2ppr(1333 q2|88@ ,ҋ?Tϟ +ch?׃y)6e2?322xӧ ǎg07g[C F<K~1(*j0,˰f^00+I2\vXc23+#lY r0 &`f?mY;v3sq3dǁ}F\=r0j?1(31Jx_`Ba֭55aЮBt_ԁ, 7;g;Ć&&&G(:E69#@QO ?7r<<v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp`lG6G-;`dL@?`2 _h@ d lG^߸/,$18ߟ?"&$@ X=Jb}I1r `G|~ /xy--8~! @XC!@˘ƍ ?31qq1Z dk_ #(Gv @a: K09AÃףG ?A5<@A>`_W R% @۷ Neg~8q@,, `jd`GW%$Pjf ç'133p?D\Bճg 7o2<Fnp08r  @J)0Ń2] )`g@P /2{ADJ hdˑ X%,ҿ)ݻ <` v`0A+0FH`(+37@LЪYlv+<#Xf0P@L`4/@1/$ u,7Lx!@1ˆNחYXn!> r (JXXp &X  gQ rª II ߁|a$cxà̂QE  &lbT]#& P\jZ~MZAXn7AEbUـ)hgCIrP?vv rCn~s.#; V0T1x},\oYϟ3Vv؁ǏW~"@8..n˗/۷ᅧ:D@<tA]f â hd66>+++//PX  S ?3|??a `&(`ԂѠx x7 0s_+(08p ჏Y0F kwf`a5v.~Šl d`'^Đoh41`\bobkgEV=H`QS{1l9ADᣠCi g_2@ Ą:p6d` ` chԾ ʢ|W2poH}uͼ''3Jf)rFH02Z2D3$2,zajǗJ19~C|Ƅ`ϟ?9YJTn1y}/2!7ao /304+ׄ(O G1o20~`o! LH5"(=ȫH120Qbw ^0Ȱ+23T{%0^d`x õ~^p_{3dYs01|\@aׯ  uVU 10+=,àeoP#ß?@7 c0d/e:!ACq÷ { 0rzT/?3Dz0 3< LH:>600|g_>vG>=Pn?8ыbš?~1d(c6'wPp}`6 wd#*؟@3kK &lO`ySiנW<"a Za#2z7 " enM 0bg ;_Oc; K_00Z.epLbeeM0bg6֐5>`k͐ape$+CI v|gIfopn*l@adcK G2xp0\pGR N= q ߿C9 \! *H~2bH gg  i66@! mC Lb65_ ~©=a f5Fl*CoV1V^sd93369` 0|`t:lr GpK^_AΛĈJ9v)))SJOX2&"= JU=rϟc 4wV/PIENDB`PKC1<&nuvola/32x32/mimetypes/kspread_ksp.pngUT D`AWPQux VkXR`#xa$)S)A+#+@NjōˤslsV^:5y4MvN ^JhS6]4#f>c}Yo=}~\\n+WĭsdF%Z#zGSGG /MO'"iNz{u=3@完/3݊(d2HNNκ|r6JIbqȖn"g 49svǟ^6++-TIE$//|NDɯGO_?"pN.1 xؓ&P5[MTmi8s~1gB#ǛoSv4d8:m2S!c) grF,BU^oZfF 3-[%x E*Y0E'r1֭Sg[L5ernE˚=pQ5er9l-7Vk냡X|LBWSF  u8X%e酡F>l"?oXű¢ t_Ά29n%gEGo،M*[k6ޥorQ5l_loE5ôj&3$Z|kۍ>oZuu c` @ΰC:]23rNQY'7^*}ڗ U2,-{$VKwRԚ<{l껒($0T!s)k^+_K{}-A_Fȼe 1xN,/xשAX׊}B1+K><L`nwУ:Uٶ!OPTt07.wib@& [*8W3| !Ť \ 6?+7+{MxJ!܆Q\/9ml=LyqG*{GŽͮ^%K1AZlhHsȈb(k͹GOσ{ADwoxa|Z;i[ɯ%;Lgc.łYSg}3,`YGHMJJBְu\rbJr4t^Ff؍P*>~~˪Uf'H|#1{1ϠꚄ]kS 2 O?(2h~u|0ʥqbPKC1A~"= R $nuvola/32x32/mimetypes/kugar_kud.pngUT *`AZPQux VkXSg> 'H>"B""@ KT ؠBSDPvMeE  VqEC4ղD%i3fwI?Auɮ矿qJnx޵­+g\rp4`A /$r%ɒ,ݒXr>1~{Eagvؑ[__tNO|ŔB\'s`w+wq߮ V6SAܟ7昮wdw,`GGZ,\-DjV~ ^ѾA@X6WLI'u#c\CG-8[%W)rF]7H((b)*uo{^{c޾H[vRaT-F#%6]sr~#0խ8ٵ =fԷe_]AI{ 3cx|'=3;^êU*ƫzղw( &);؎i{`z:l}.aad:&*h&5Xj|'Ǖ*%ϗ3^[G^ŪNoG-Bz{[O2ODN3[ιee"C&í/BdJ0Zg@۰˔& ̶Ch֭&;>^scnMvk%OugF)S3n%(Qs%.[D-SK` B ^XT&M$6Я)n2ǞX V2\w17iQ\Fz~T=H&2~K>k~⩮8-qs)AG2֪ތO<|9Aoqq :+ o5/AQJ{̝R5Iq3gIk1FZj3s:})TYs9 q3b$\OJיm,\kUB(2T*<AM[{]aKhQzL:i("Hf>+un}@ =v䙊p 4iz_x˴AM&A<҇OXX9ɓc}RG7DP8^$-Q#{ U]Q:Eﶈ?ꤌg:7BPu2fuDߔ\Ggh "CVɶMo@~sܵ9P ꓜK,;kQпc5[6Y2.*+EQKS 9gz3&yۉXd.w*>FLRIc' Ñ!#+NF`^?Pch n87w=}T&S[֟ݏs-:RWEEؾm2{R6|?:ͮ%/s7Jr={Ǻ)$+?v71bK 2_8|4*d*H(Ԇ9]򀉫~7\i}{r޲K!Ψ9It3lNvr#e O,ZpsKq|AY 9o6Id'gV SEGS ^{hZ` Kq*Ak r" eu~0/՝/8:~[]3hI:*5CUl^G]B0D@H&&'N6KB>d2۷ANvjҖu gO8ne%tQ_ D?wGY߹1 haU:pʨƳO@g9ZfsbjPK C1Q4$nuvola/32x32/mimetypes/kugardata.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY XpA<! @L@ w@0~- d11;H3V &\!X8>prU ^a`e9 W1|z bB [cN`C`: oona ËӝU! @XC>#>?J}~WO/3_@o0Zl|@}X}gf``bcg`faxGv~7×O _SC .:-#F@bY >^a`e)''YHy*ۻ m^C?aiAqpn M l|à滙*y;`gd1Ëk[ 4f 0=12\t^A703 2[hR % ׶0o20|yq̂ 72|iC@A AL/Xh&FڂbV;`"'~<\/ ^?_n1<> 2 vQV'~A /,9 2rq4+0g1k2l`l%&_zф (C)4D3^S5]|jǦN;^aV(<ӌ]]l67AIJC8J4ٴ]Gn]֟D+d“jV,I0iKxK ʅ O@; 98f WP4 \ vf}z1(Fঢ_N!2ͻY/ /2&㵵xIe˪x>LjV:Epu=sw_g+XR L .Ez+_fQ\{Ap&s89[q_5fFXtG"RҾfT3:`v(?GhȲ[m Zv<}hv53>$!|/.wqa+덊6e.NYr/}ZSԿU*N^?vm1#zO ۪@6N=[t+ˏ<)T=Cct5_57্Du&gّp8ⴵM=7AHs#Th}cr4GT0iN աcm d$QӞI vA *Y4rOs"˙LvoL.bn͊1hvm`inz8i^F{B Q?4|(>e=i=(2d:?P} Kaԋ" QkMoxwV ΧnONc>a8?2nt?[  Oe9Z4Q_ǡ&J{֬8xDh 3z /Lε- <%%)֠koXޜ"3р7٠lD`/t5@yCC9NC3:}`DݫݓsĠ)Nv&‘\-Eɑ"HS֝X'a)33lg ^R4XZE<[WJΛȖ KkU{C !7eV CDu>o"g:AE[@\K9FI871z\x ('ɿ@[d 0mf263܄+]XR =x@i[v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_=ЀbBgcc}4ï @L%Fff[ʕ yx=n&rp5`b`3^N1|{"B 0Bkh,ϟ`Eu7oo!==/k2I &|\\ G0|a AB`A r nf`55eg}ׯ$ WGWoU/222x p0q;POUDE>m, P) Bf{^?`#sV1T| ?3|n>r  %:f`>p᷹9#0-\  FPtMvv t>Çssca d`} 41)b` cfx!/|| ̷n1|}GC/Hmy~;x^hC1ߧO c`a7HȎg%!'" 9^O;w20B-@K>q@E Oc൲b`FcQ8q_X}{Ꮕ+(0]| _! PVEBTFD\ 耿@. b`A*0 1|߿709yjRrr L@?l w_~ @8臥% Pr>t 0i;0@!J%P (`fN`aRJL@ %.߳g ?a$b (Ex\N`03KEbW`s1pxV ޢ&(QXs [e@,hb| m!l>@1%񂯺BFR_ [aխBall|dǠ1n7v Mw`ÂPt:lr 9Loo/ׯ_?  Fx(.%%e cU:`Xl`z{`cPhО% 7 { ?@gJ}!IENDB`PK،C1nuvola/32x32/mimetypes/make.pngUT `AYPQux {Tw'x~РsՌU&Da.!s+eR)fa/-w0>kQf )Z)1Bab<=-|&N[Vr- Yǐw#z䨭eZ:ɸ^B9 /hخM@piV}\֣s=ˡJKy5\ÇiZOM,*^\B6+$JQDu0NࣽOp,+صoOZA!2D=p(K/  κpeTUS`lQXgU͞1 @*7 ]blu; ){< (q0SZN77"I9۩[- ,Um Is[y{HK̄UZ@~ s^4fV#`e2 u$3!51n@pٱZ  xLק Ů}P(7"og.s|$tw1 ^:trKar]vb5pͲ)kyRqFzMo`wR pLy ȥR &Gy~mr`U˼GLfyh/q3mS9/~/<{v$oD@WVۖy( ܒ~ՁAV½qpo "aB>8Ϲ [Wz}%(`JNC *y\dQw !iꓙNhѐ&(%GhMb1K>dC2=xEr3_Bv%%K isE/{8APn{J˩أxykȰ92Pχún1ag*'.C"v)"W|~2B=$ L"do^q1{u/#{C rA&ƕ@J N}R3֥\ۺرp^c0Ys`3@Min.-\_VW҈# JaIUTOS^."np'fM лqnjcf`hi8ε"WoS(O' 7mr+f6I"c*C1_PK ԌC1%enuvola/32x32/mimetypes/man.pngUT `AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿(#,CW Ѡx &8Cv5@_2{Ǐ lllyA Y+/^2|cM2`b( ZUMd6k{4i9Sʅ4A~&pG}*5iOuAHS!@- \{a=/!;v?to| \ J L0y2A s !u @XCgP4g%Át LlE%/n9YV s`409pmeee \qS  Û'2h)i110iE0-᠏ Cf,fbx)˗Dmb•؁ Ld>O÷9“D`؛FVc bBa0(()1{k3 23|[gS?x)В? =S2Z= Z. Wo0?AHB 9kŀ= ͠&*; jT2d , "b v+2>?|0&%>n`NfQ= @L00|y#K&c#{'0UQb8C@m3wn 7Ђ>3vqa߻AIZAȄ˵‚ˀ<sW/X!.f_pW/}@o?3z2lf[ pår?Pd9r:Ǐ B ,pϯ^2 of(ho߀/ 7or"Ohu \, ~€/02@ RXrFš!(#/s3 || l< 2;0Π70c`b`fb͆Ă-a/`{&+WL`},ö޿à;K29 +Ï8rs8 ,2 nnFu#ӻ73klf`a-bggU6`=UX /aVo[63,]9;' f. Kk.ՄOg'>72cbV"I jrBnЏ[w-^2 x+~ "r@a$Rw. yYswM-#rt;p\<50 `  &l18D WUgᛣ9a}yf _ 8=J1d0Vt00k@aM`x ̬Bn`8tþ%8 LPJG\\{p7;It= SpETT\ZMi :n 1<^n>FUFVfx"#0E^ 03`8~x?wo KKKp3'0R!O<7*UUMX $AhkWu_?-_~]]}IIIA PNCC eggrPB`ӬL &7(@HYlBFlm~PЁKANN 0ȖR't &F#nzYK/O*` !쳝bCp [ab۸ڙ4 g|78 z?r<<G';.z_*LHU^ ሾ8KK䖖ٙpaS6EDD BQ@ /3dCRa`dΝ,%E%_apD_s\[Zk4CMǰجa(ڍ JuͼMOXNhhtb8hN)nYSh5|NjI2T@áR_:vҘ?_M"+m aC`p}PhSVj<`ab/žj!f솎[أCPx/S_LH RR$+'j9S,7O fMד5ǻ"Vv|X*K)gh l$ۇbZ'aq^E% -W@>fgto(cK@(xhdu?n$C0sή'*ռOű`߫JX'T0jPIWO.2kS} ~ߔσ`wX4R+7ZгT()M2pD;D*i ?WLYHor\FQe^Խ9E1s#)Cu>+UF<m;l#uG~oBr)r~> * | sKے80ŒiL՞]ޭS)d7ߗke25IlWim$4Fכxfht%BɌ0&V瀝 %ET_MzѲ,"BI^9ZW6ڟx$Q],JNM8mz SVlc>;SԱumتdZM*_s}5F |SЃ09 oXd"Pj^+S6#\ PoјFW\e ]g#Vdd<+rMg;\O]#ddBH1|13 %Q+D! eUgv8sT$ᗻH=Nӛ$q7:(ߦ.fs 1r6OY녎,}Oq6> H;;$"^ͷI*_Je7da xԯ#pZ=SKuNKZ^Y`>+E`t84B+, fj RK[|wX(/cX Aaӣ$)޼9 agc"`ͨQ[[LK-𲮕h#d)MYZƜƌ>|!3^c2Zy6;C;a0#U)$h[HֿPKьC1U/  #nuvola/32x32/mimetypes/metafont.pngUT `AZPQux kTW'PF-ʌ R$$rUnUFOh{" **J. Z\b+VjK(Z(P$/s:~Y.r``G`ɘ}Hoi~+?ٹB{~ 76㰡9K#Ucn'˘hDZ)]8.DK&g߻r3$Tz+gB?A Id̃:?b!_2) U^,R}6ėj](GɈϽNt| `v=s8R8.҉t.'%ץ=˖JΖ7CR0jtdOkeEiDWί?a8.xm93V{d\C𠢂kn|}nTE F7Tc$A5̙>d0%xnϑ=/vnjR/B2'W?շF?ZҗP-G5*1fdg[@eyt`ҽ@2\ra۸h=,p۝*.CM>MTK;C$|X0S.%+ ڥ7A9 [I}9Z^Zyg*t[}x( 15d rN!+6gs帒JXgCIL3DmjP\D 72ܒ/3[u"Κ[wy*wI \:@{wOJCK;DsN;H؏%4҄m$  єV͚ L"zTR1[e.!zJlHB ıԽPآ- Hl& 잼 ?6YmAxWf$W9cWnlugIX n7'd{w*z W4k\*CW nбJANijOZU Q+ntEDZ`w L6uURh9 Mi־y.ju'_LYNDnBb)>f Z֭R*klMk+M caoҨqH A܍kq2i.!kZlFSsZ] 2XUɮ7'c|^}q.i`m5'v\ϒL(;pZu5'B[H/ E˧R?34xA²~W@96 Ctʋ1m:sDJԚMTm4Soǵ.2S\{)"h_S4"~ej+vH\-̏=aK Ux7\dK\]?s)xǥ?l˖9}baul.8v:^bوmq0>?!lZOݡml'Mn*8< a;4VH2]ئcr٩>wl@u<(&PF m;ki+~lLQ s^d;vY6-&E@2peZ7oP=Wu)'&#-kR _KoAq8qz sΞ烼S[ ZSgO-4g3uqy\<ߘ|l@^ s \3Ȯ'b [.wpc VPK ɌC15nuvola/32x32/mimetypes/midi.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<8IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 06CYs hP 0(A|`A}.bA{! ԩSl333X?@b0C dl@SS˱#C+ J+y4|>XX}*{oBZYk]{gAr8nN2礵1W1~AXX ~~~ ## *7<==z LMMl333P xȢ-b, r,>Al8'''J J7 92[ l!,.@Q3hhh@r.;RjPMM<@K1(**Td}1BvcAeeeaP:$Av@ '.& oBBB`CL @3J@2,Lj=kA?DE,022R J J`!''P;REE  j [|4^>4$P? P lp!)H$ʠ N߿Y@p0Ai7H0J1_`@>$rt.0G9w]'F /ICЌI C8B NN.wo^2޿h_ҚaPճ l8s@aDⰱbc((#wF(fd7=0~ZFusK;@$4H! @h,5''͠ +9@X! Ɏj,@?hU1]Ă)u|mD<A@aĶiG"g=l &rZآ @!HJSP`s #n2 cc9zjT@Cg;Ć&&&u@ZWbDjKIIŘ0C,~RwPhО%Ī@M9O1?6N҉kIENDB`PK C16Mnuvola/32x32/mimetypes/mime.pngUT >`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@C9be!RO1! @XC%@L!@p0t5!@,}B@L?!K @RX01( &l5)iT b #%gCb!p ! _@tɆB R B>fr % 1!A(ouLL!Bom(r}3 [ |V ( BWGd()|lBFJ>6&<È[LȎAWcffA} xlgĄe3lr 988z{{~ g@1KII@!N'9eǏKM@E@{@ 17 { ?@z IENDB`PK C1,8&nuvola/32x32/mimetypes/mime_ebuild.pngUT $`AWPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx zvaZt<@5#0 !F` b=@ 0Bݻ3ܾh#?؁`d( #_?`.1 p3m۟1HH 1+0-{x!mS@]yy.}f`7 >22xyJ02xP^y_ llL@(@w @1$$'ç ~C?`(|  [VfmE ?&\45@w1hk0|04A @]ngi{0Ë?b߾CB()^ATBa Xs ߽h'$e9@4>1\8o 9xuk{ EALϟ BB ζB 3\dpuWg06`@20D0@FZ.~CMCYK R(рĂ)+ k3?AYEkvaF`A| !rW`Z(nn> . rX{a>i LPAh[wӷo0P=C+OuENݷ77xdZ=/M|r~B;94.PeQQQz0'N;nn..fiٌY*OxRC^&f=vfW5'a`ly@i_r((:O6fژ1Qq"HYld&)`Pؓ0kbUsh+\D(ӣ8U41IeSC/W_1- ).tZS::Z8d(UzH9tMvBsˆpW JRPhrg& HWVQ,)s2n$,?!A M>5`pّ圥fQ PeѳED 넶@e69!=\a쪭 9nbp褅,}6s8S9٦J J,lN1$+.mb|Dᇙ=;B n&3W81?UxRcWOOW?uN MPK ƌC1\'nuvola/32x32/mimetypes/mime_koffice.pngUT `AWPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxzer,,, lll@@q̌l@5@i@0ׯ ?~bxXH/ @s1 k@a8م 1`_oxMkn2HJJ՜3| 4#? =g>3ٖ;( &l(3113xz:0k3q1<Aa5?ͰaKwkkK:;# hPaٲM} "|, ru> .9[HS֦6 Qd1nnnxk\ `$)->:Lj[LȎAW%a !쳝bC Wt:lr 988z{{AMO ?C!.%%e b:P l0=~=0l - @*(}ѰG ~ @CIENDB`PKÌC1N >#nuvola/32x32/mimetypes/mime_lyx.pngUT `AWPQux ViXS䄓 p)9^ [Dl (VEJ$@Y$!wHJP֥!*uAj1za3h<̏}yobf:-IGӤ5xHY<iKks2 vD#a˶ D "AwEaP|-+z"4lj.Q Hmbbb֥KR,|"&*Xh :wbuo'}W*]=3qW7!.d &)om62gXo㌄_plS7T\DDlIGvCc@j>LYw66fLr =&ic}՛ f,2mh@ASն˖Uw㍗zp@\y=-kj uqD hFźRYPvҲqOp }3F:9!zWWjcNjʴ`~bP NFLq6Y =UN) 6Y auA{P(LBZ@K(7rAN9^5$h3 M>V>Vo eE=YE3՛?Hp'7,^@u߼)v| =А#k&D8Dz?a#ls9,TRrr`\44bυBtʤ!`{Bw%inG3f_uU`5lM̱_XWP~8 N= y T~pv~vl[ʲ+i( =+Mh|:(3WOా.))@/3A5/8.JA _=d<6VLČ,>F瀡|SFUUGϔnH 70{q^p>45F@V#:vSeKW-) PK t91Δ~$$nuvola/32x32/mimetypes/mime_temp.pngUT gUAWPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bA8::(**.аr7+݀??}]pP7@1B=<<?{?a?ϟTѣGZ. B  }III0;ǁ8 AP>\ Lz4\/ PT Ziddd` T1-bh20 <(ox\  ,cb9_bDhh@Ld@N< ?-!< x#d91> H ,Q7l3;v3`‡@?"qaZGs  v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@C9be!RO1! @XC%@L!@p0t5!@,}B@L?!K @RX01( &l5)iT b #%gCb!p ! _@tɆB R B>fr % 1!A(ouLL!Bom(r}3 [ |V ( BWGd()|lBFJ>6&<È[LȎAWcffA} xlgĄe3lr 988z{{~ g@1KII@!N'9eǏKM@E@{@ 17 { ?@z IENDB`PKt91o4&nuvola/32x32/mimetypes/mozilla_doc.pngUT gUAXPQux }PO>X,BҨI%J1 ?F6! 8A & #"JQW"hM ZE =3g}y~g_N|:5nul>rYFO}-nSK޽Rb^.9ɔR9/n$E(rvɿY+ڐF\HUh(b{t.᥅TmJae٤حLS Kx_vvOTR̨"1߈! U$zxN}^-P;`_̞tafj*×3ۜ!;|` 4^)tf]R'_j͜ ƭ DYI_ 9U(z$ps[VyVG#q(4T$P(Nֿ{YX6ښ<&eC_3hU+oؽk~$;E1ψ_U΂4.Ճץ+%d.n配_ 埽s98OҨQ[@m Na=)&& S|Ҏp¥^6c%ԷT>$$$TOgB[VȬy3Nf%8q [By6F>=xCVb77Vee*M{_BroDO8Q* _db"\pY^g/uEl.d_:AF^x(糢&˃j\@iͯ3g)r$Ujڳ(bRzG9vgi׿Vۚ*ѕS+tfa?o/sB$61 e0'kRm4^>(3u`Wj*(2vbeZMicNSިf%sS, }!#o4;ddDQ/O ~^ъ б>&IMz?ODߊ_Q'~ $)޶| Aa$8.p2^S5WY27/=x/<8ةBS4u? ׄn5Z:xE_NO]6&Єcg6'4A VkZy' ӣp.K,x+RO7";^J}MSp`9U6{Z`^aL;㕹%J@XUЁu~eF],qgHjkaC;#}Jg/| FF Դl Pbua<}cm2ekq{t}`xLf~dĶniIv!*Y4yߘ+7#křMxρ.& ؄p,LmNŠ,h*2=b۲-X[4l8Πi˄p g1fxb0"O:XOpwy}&d5$3 )QF:[L7 "5Fϋ գQ>rl[;aφNDdyGnȹg0}aw뎻4:ӻ.?v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 0l  ?X,? PݿǏ  222`Gׯ_nܸV#** ((vb 7o0tww3 3g2pssՃr@hh(ݻ!+ZC 6ƆAQQX0},P@ي!**aϞ= BBB ߿{d z  XXX233EH۷o`lr4X2 3,Z!22Ç <<̠Ͱl2AP|Y[hrJG3B,{  DVVAgr( lĦ0>''%9y~n.fC~,0bW(qsq10iPep=_2|A@C!47o F ߙX ~|cÐC Xp|X]]KxD_>1dg``gb`&C- B Z njz B  Ą-AT]qa>0կXAJ\Ԕōׁ🅕 cx +`>Æ Md8vXBW]@8Ue# CaQ1þcB1(nb  3X?3} N3B p8Λɓ 6/p-o5+pb_66l]}'4E ?0U741,Xa f && ޼bx%LIn VNXbk@᭎ATrBNR*ÞcGܻ aQ c@TXA_I$lbW>z û^y ̆Q9~``0 [ bb;Ϭ R `90'0l2 QJpq-f6Q\\  C8_ނƈ[LȎAWc\ <}3@lh)|MAeJoo/ g@1[6RRR@1P'I,3Ǐ&"= JU=rϟc ?FpV4IENDB`PK C14KN#nuvola/32x32/mimetypes/ooo_calc.pngUT `AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@Q 8 ֒2 wHEHcvg)+ƸI9'ZBcXk~kZ+RQJ{}&s됻x"cA^1lJ,1X  l%拗pQΙR g z9qc$DFuc@տ򽷁4{`mA sx7ʥ倔(44Hw8e&pwj $EZsbkZk`?,28 a`jڗ/`~|[`~B K;2"s)3{/"b穪CE$cV>@50;>^' L_6]̉a@ { []H/0' z dS poWZ @7f]hfRUE;swb׷#Xܹ`|J=tCii)اd"ϟ?ȹ^ 0BdQ qdW|J111 n` t2&0薣c eH)B0M LXY1:8OPd9#E0;`ƒb10;,~vן20z31013K23XIc`c C) % @/í 1~p-% zU@߲2| ->3)1Dɹ3p2| h ͵@1̰"V&NV) Q?IM[ B11=cXm [ 0~С[à/ ˑ ` E ?a .MY&a.`4g=``1(cPpJ ^^'hb–I_&/1e>` .VP,w>`0 ?1HK}b@c$83c ̖̌L(A5 22 64117у [GWԡˁjU2| 9bDrO;Ek c,w:$elB< d(`*bPbnA>ďv0+B9IENDB`PK C1"٭^ ^ 'nuvola/32x32/mimetypes/ooo_calc_tpl.pngUT `AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@Q 8 ֒2 wHEHcvg)+ƸI9'ZBcXk~kZ+RQJ{}&s됻x"cA^1lJ,1X  l%拗pQΙR g z9qc$DFuc@տ򽷁4{`mA sx7ʥ倔(44Hw8e&pwj $EZsbkZk`?,28 a`jڗ/`~|[`~B K;2"s)3{/"b穪CE$cV>@50;>^' L_6]̉a@ { []H/0' z dS poWZ @7f]hfRUE;swb׷#Xܹ`|J=tCii)اd"ϟ?ȹ^ 0BdQ qdW|J111 n` t2&0薣c eH)B0M LXY1:8OPd9#E0;`ƒb10;,~vן20z31013K23XIc`g A) % @/í 1~p-% zU@߲2|Ñ ͗>3(J3D{1qr2|l8$,EfrIZlffX~?+'+$-䘞1,$-3VfhӮ`f Q@Lj0"N`{ɰ,00ó x00d`P~ܿE1(fDZ!d2'xYF 4LB 21L?}/y_?PpJ>`Iv^90LqAZ0d`~ջ ,9k`edex5.$^+1~aS/ 7 eV1/aU&_!<޻B=~5[`bdfx%K; _e J1L P \J^C pf??>`9 Xi`2 e`{ X6) ,dq˔_x "bš 1K6 7PP"b!d1&3@,.?$e@z. &li& ^1 ^gdDh u~y`E:ztF.fbqA.o^`#ć_pQ ˡϖ 6 ?ڸ \lr̩ NfPPa%ww LX21*p3 '7?2T;0IK1| ֖ ` J7#`e]59*05mkKG/13T20hm:`.:+Xvscgo0W]w 32400dXw{ 1`L@þf|,aƷ =a` @lQz]@@ cPN>ӄCW?wS9 X/s?~f.hf eȆ\*qr=P (L* 90:~o0ˁQFFR xl٠ `YH wa+d@j0Zfl ,3;ѣg6CS// G)P#l9N`3| ab)xxxځ-ZSLFFܝN;$elB< d(A VbnA>ďv0XKV;ZtIENDB`PK t91 *}}#nuvola/32x32/mimetypes/ooo_draw.pngUT gUAYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bA8::(**.аr58ߏpob {xx,~J߿ׯ_`O09_OOo%rPQqq:; ?x&8J@3CY*%(hQJk-9gRJQ޹#ZKC8o cB V \WـX g .3O@9;c WbE3jp!"1 {7qs5= % 0Pc3o(lntIE%z {CUgQ 23C133ч16ւL uy>p@ @ ˗/pߞ;wa{)X\TTAZZ۷ bbb JJJ 9 dl QQf4e4'_=DRU9 P̌Ddڌ.f /L26(R"JKr:R›/Y7wc3#}6RDݽ^L덙q#ߨ'Fҏ?2}5+++P6lΠP^^`ddr`bl L]]|`CV(++ ,** DJш01 i :P?_@9 ;o ?#X! @X!6׃,Çl 2$6Cul "p@eggbfi A2Ϗ d_L`?{P "Žp.ϟbä-$ kG_/20h00q21sn*?Q#^}Q1# p%"`= !Ð0x1G bpv+?0p0| _a )6}H-C 4[3D݂,^_ߝEAJXQzlȠt?o2?\g3AR Z IӭG {"dx3|Tp: o~daP 6c8PSf-eUvN6p`&[ &|il9ÇSLbЉ7e{ Ǧogse.a9ó6e ÏoXV022 _`cxkץ) n ,_O3|=qO Q ~1ƈ0hc81S1뜲 SV}#<`@ ž@ꁖ_߉6՜Po71|;~ѽ a , 2ÉANúDU3H! H! @X0gOe`; r0&?e.M<翀y_/_2*q0dEq3[Yob BQ @`dv؁ǏW~"@8..n˗/۷ᅧ:D@Q 8 ֒2 wHEHcvg)+ƸI9'ZBcXk~kZ+RQJ{}&s됻x"cA^1lJ,1X  l%拗pQΙR g z9qc$DFuc@տ򽷁4{`mA sx7ʥ倔(44Hw8e&pwj $EZsbkZk`?,28 a`jڗ/`~|[`~B K;2"s)3{/"b穪CE$cV>@50;>^' L_6]̉a@ { []H/0' z dS poWZ @7f]hfRUE;swb׷#Xܹ`|J=tCii)اd"ϟ?ȹ^ 0BdQ qdW|oii۷0888Ԣ[a 0BU/ )|%%%pJ; `P} @6؃ˑC 0B@?ТsHGR h6fdf`aaD,F` \L vdش=8!K3"-3w`NΐdDq@!(F z| 7`W[O0afa`a`@wb~_L7_2|xAP% [ bcIUcٱ z| lcxa phu.^fB}?#3?43Vn 28~ p; # 30zE=gsb2+2$ $t$1 oa&PUro2p:T*d%2HK|fظc.%^1>{ .?Cr yyzR!4v? 2hLaPVf+$fbeXg,$pK1V,4N 0@aD#/;2 d!<[0bI`ʠ(o , )Q :bl{ `Q43: 0˪ GZċ``vkR & œ ?}(3?ȓN< Jr?6} , #$@+a Vt9wA˛Zv320ZZB (Ɛ*aHK83?@Jpfx%p};;gߟX'2!.CP>(L~3?prw g/\(!@(7F.'2c0a`>y/xcY AP6w o@A]OB Q@F8[.B F b0;ˆsdhArBG ?ٍG-s9mlz1|1٧xB] e ,И%Hp@l1%[6(UAr,(Ѱh910Dw@p3~WKX-2 W`y/ 4@1"2O;Ek c XbtI%-k&`=Z@!;D+YU a'@h9rǨEmIENDB`PK t91&nuvola/32x32/mimetypes/ooo_impress.pngUT gUAZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bA8::(**.аr58ߏpob {xx,~J߿ׯ_`O09_OOo%rPQqq:; ?x&8J@3CY*%(hQJk-9gRJQ޹#ZKC8o cB V \WـX g .3O@9;c WbE3jp!"1 {7qs5= % 0Pc3o(lntIE%z {CUgQ 23C133ч16ւL uy>p@ @ ˗/pߞ;wa{)X\TTAZZ۷ bbb JJJ 9 dl QQf4e4'_=DRU9 P̌Ddڌ.f /L26(R"JKr:R›/Y7wc3#}6RDݽ^L덙q#ߨ'Fҏ?2}5+++P6lΠP^^`ddr`bl L]]|`CV(++ ,** DJш01 iablct?`v 1HБ`JL9?#C fCd3331?y7@6 P d #j 6(9:H1p0A2A np;rfgD27 ;OD1;h2 ;XY3H+*,B|ag bj  H)H1I0J-aY1L P=8'H !/H Bi( Gv@M!! h`bđC xJ!39  i?4i3Yr`dbZ 23a).6#4L}gdDV<@X, e\B™{ .(kZ`= t O?#8X>} ǐ@8 sPwps?`ggVo^AN`~D0 |/++ l|ʂ PT*1x_*(6`k'a KB| pֆȊ@ׯ9pC%89l=g6TQ@,h=F\-6`=z 2%=(l" ׮`;w)tB(nAqtc2 зf@(0F45|8sr A`[BqyԸD&!vXڵh fUUHsԂFgy$ @q P9]* o@ 2 1Bm/j苁HIENDB`PK C1###*nuvola/32x32/mimetypes/ooo_impress_tpl.pngUT `AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b9NYUUu߿QFF0/cǎ8~xǏ/ qqq_|`߾}UTT$ dAb#l9l?b NR%s~1Ɲe)c Xk !`aRj5jK!G)=B=v]kM%Wt?D602b؄Xc - $*)J/O֫3ޙs#HJZ+"Bk{+]k103{o{]ri$ @;n(Y=1K{j)Qhh^'pΩ{/L)031 &"PH; 0O "%+Ydp@k/ ^#;8 0rwd&D眝S f^DSU+T 3{<I4E! |jav|O@hlÀ>@(u2SU%3.@^`N@B <Ȧb^?#05)1$ oB'2b23!$3EUȋqw:x) o1G ܹs` >$2&@{!ROA!E 5?;;s, G@a0@!dN111@;lٷo_ >e (@Ϛ @!*pE1|~/Ё `dc034ax50c (C 0Bمl Wd8`_uf[@?x=eHazF4(>{ϰ,(g@E;j(-!5 (*~}'/4lB. т Xza`pbP '/ Ο ,@,̠xf;g >+OvebLˑ X`  4d 'B#0 H +0 FEO @L3 5(ءLH&Rr<(1= o 3#؇>0P $@9 6 l  l09p:`ȃ*;H;{#@̆(%412ZČ  \!@XsR!#Pp)nj (^xbf  [@q)$df L03!,gBhFh"sdOFPBbcgd* Q+ @9.@(FHI \l5lK1z`@El ?~1FŌg`l?E1v֖ ` Jl/j~068~EpCh샯Z39 WFV@9`kq5"#j )ۣ6@!*` ؘ`d: l Pჲ2_Coe JXx]u=8!@!B*`1䁤@408 1Wb`{Akς 4x`0*afQP.F)zz DK^ @|w逅A>pC"Z } N?31}f` w)ؤB XhHa,~33kOA?G@{~_X΂?l L( l'@p3~WKr?R1 POZc5!_0skog'ASO;Ek cg hk #휂ZL&{` (hBvbU a'@h" mP6IENDB`PK C1pz $nuvola/32x32/mimetypes/ooo_setup.pngUT `AWPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@Q 8 ֒2 wHEHcvg)+ƸI9'ZBcXk~kZ+RQJ{}&s됻x"cA^1lJ,1X  l%拗pQΙR g z9qc$DFuc@տ򽷁4{`mA sx7ʥ倔(44Hw8e&pwj $EZsbkZk`?,28 a`jڗ/`~|[`~B K;2"s)3{/"b穪CE$cV>@50;>^' L_6]̉a@ { []H/0' z dS poWZ @7f]hfRUE;swb׷#Xܹ`|J=tCii)اd"ϟ?ȹ^ 0BdR* H&p"[ wg%l0-G0@!_~SWR@ll b ceUarF21,aӅ? z8X~ &FPXg/Ó "LdQl123~fCE1n`H`at bC7G3dg8z 8÷Pf9$8?6&8gU(@00R9X 5Y/0Wi9r FTv8c ,9:7!LΞpc?  `~ @LiBFxY`g= $Pܼ^Ű|` 2qSVpD 0@ (70jفWTARN칷 WeVPP LL ?Rpt?;_;1 _WOaƫ 12(rF6X@~İ  @`\p32 PW_ TX0| n>/Ez&N!@r@ib N t_~^^` ie0i;'YQ.$߿f`8ARA@G`kXYj0\=+7F. &(: ~'CL~3|/` & H/xx3ܹ;D (Ûi%#IFP*gdL?|O`[(,-}( D+T@*?@,%p] fP.̬lL3pC[1z Po@Cvc֭Bn݀ P⋎V`ص1ä /deD$o`x a{Ԫe'Af#<12[A% rk(a;$aF`Ř5$JTlY3&"= JU=rϟc 7jWIENDB`PK C1YvSS%nuvola/32x32/mimetypes/ooo_writer.pngUT `AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@Q 8 ֒2 wHEHcvg)+ƸI9'ZBcXk~kZ+RQJ{}&s됻x"cA^1lJ,1X  l%拗pQΙR g z9qc$DFuc@տ򽷁4{`mA sx7ʥ倔(44Hw8e&pwj $EZsbkZk`?,28 a`jڗ/`~|[`~B K;2"s)3{/"b穪CE$cV>@50;>^' L_6]̉a@ { []H/0' z dS poWZ @7f]hfRUE;swb׷#Xܹ`|J=tCii)اd"ϟ?ȹ^ 0BdQ\ =(Ā`e f9 `5A 0BUXK+ ()0(1XA0uy1rF0u>}Ň@~ fca~n&0_#-}+{ _ _@ bcbD)` 0C>| ^f8'++la3@79b 1O؁37 3] @%!$-~78;_^ ?3X2@ 4\LPa`;8 @ -GbB@ vfW3h # } d9Ї@Gs\'o3|ᛟ ,@i@Mh9+С # A ` ؁r}J@KAELvG =r`qajq+JJy kH%wޒ }T "SXO j-qlN&QMtnj f;#X>Y--l>~ 5dXD v?`Gc RgN`rf1|f9Po فV003 8rr8rCd.#fF.6fHq`#0qe&,q~f`b!?8x9ɁČ )6\`WK9H*thEFbA 0ҐZ#"?ĖpY l A X |p9e3 ذ/> \@L\ P&p JcHvh]F0B_^NܬnkKO O_n`NPà4kR)do`4HX1Z?Z+,_beLL qP23aBF$ķ 8_H~g~$jK0"` ЩB`(:2AJHC'#$0"Nd4H $?wv MLL-Wx;Hf@{{{~ g@1"R=O;Ek c+Nb(G[L&{` (hBvbU a'@h{ﮟIENDB`PK C1Woo)nuvola/32x32/mimetypes/ooo_writer_tpl.pngUT `AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@Q 8 ֒2 wHEHcvg)+ƸI9'ZBcXk~kZ+RQJ{}&s됻x"cA^1lJ,1X  l%拗pQΙR g z9qc$DFuc@տ򽷁4{`mA sx7ʥ倔(44Hw8e&pwj $EZsbkZk`?,28 a`jڗ/`~|[`~B K;2"s)3{/"b穪CE$cV>@50;>^' L_6]̉a@ { []H/0' z dS poWZ @7f]hfRUE;swb׷#Xܹ`|J=tCii)اd"ϟ?ȹ^ 0BdQ\ =(Ā`e f9 `5A 0BUXK+ ()0(1XA0uy1rF0u>}Ň@~ fca~n&0_#-}+{ _ _@ bcbD)` 0C>| ^f8'++la3@79b 1O؁37 3] @%!$-~78;_^ ?3X2@ 4\LPa`;8 @ -GbB@ vfW3h # } d9Ї@Gs\'o3|ᛟ ,@i@Mh9+С # A ` ؁r}J@KAELvG =r`qajq+JJy kH%wޒ }T "SXO j-qlN&QMtnj f;#X>Y--l>~ 5dXD v?`Gc RgN`rf1|f9Po فV003 8rr8rCd.#fF.6fHq`#0qe&,q~f`b!?8x9ɁČ )6\`WK9H*thEFbA 0֐de.QV6x % d,Rd6@a`E [f :?6H O0zb`dhÐZf u0q$֓+?{{d@ L`aAz 5wdzC`$ ҜlMZ^{>i_RNorFaSZEJ^B[2 ڡ m Cmu^5#a?,q[`qDVb}/@#Pry`qտr"dbaP Ԏlq>4"aQ(dH m7F$ز5?3zh\4<@CJb36f`o`;cG M\;`5Ze@Ǔ@FE_{;/_>  F"`ޗihMbLWN*- lY3&"= JU=rρY1?e&XuIENDB`PKC1 _!KL nuvola/32x32/mimetypes/patch.pngUT `AYPQux ViP$D0%ADQ9aA] *2ܮ" IT`kU"˃y(u!!"l@" 5(@>g>;wxY?ButZڬΐcyyPJ>N$'EãRO޼@S@QR]:x`;wB5Lm(rASbǿT |6'L;hTo~i˓o%~ƾt72H~ rLND姦 -6R*&JPe |N_ nVZqȋޑqr1cPg39vHgvMc2P+8-OoH^ALJG"p̄̓ppAM/PG[ ~0]DYQ85 19"q!~J%xz bԅq-'猍<&wwjzQPC݊RYYR%KLJ!6^f}zF?* ~^/se  m#ja̼6IkVǫmc6f =DIvvq3 FaXq6x9lnEHgaT$Hb|\#Ň0$/M ip<';*'EI!OsY V%V? \|S{1Xz]D列D6@<5\ZhW E&Kԧ[7ɂpcODd1w+O]Vr9tF)9VmmaZJ'``}KA6K)={|7 Yp J>ESUGL +樏V/dؚ]y#cf W?oAq7/t45*+]%Ӕ:8Uv؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1ty.geee000` +;aM3 hį8d H =-C?Vom``zXՂ0,=  ._}$% ߿e`mb`zዠ8ç) BRR ˆt3A l(a`gc`r ^duçO>' W` ̸/W" |gAw@`{ p1 /3% ^Q1`"3,@a >a/! ~1p?@!/40BOr D%32[30@H"@q >e`/؁ ?Ò W'TK=vG0w'0ef&w"o(?c`Z6ᦌ6gqI*or( &l549fz$û*FӇ>\8kg`TAAٍᏉ=w`qkof|9oq2߳ S$l~hi0FV6`4# lc 9۔VG 2~ &-7C3g !32=ۤzw/08A ?~`~^5~032p0CkI l%40N[+Og^>ὤ ?Mf+÷ ?E8<4ob`^:ᝥ+ oTf1rr`^ l L1ܹtû W2<ZNǒᏐ ,(7/30}|Z5O0fS`5aF} J@~3pp8oH3X?ë j X@ = / |wR _cxc-A 0CUKfN |N >n:h-,Xb@14@ِe Y@MioTR^޹a)Ïo d`/ F8r \,J0|xQg/0abP6:>‚Edfu j(007Mg 0Xy؀`#{ >6@!#477P?`9  OaD jniPcִGv :3A} xlgX~'&׏&{{{~ g@1KIIŘi`XQ?~`z{`Z@!;D *sӰG ~ @cj1IENDB`PK C1kv؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze+.GUXz@ \F|?0D H-X ,8d"|c?1!C _0h0 @8/2EEQQ!@>~/%Ld G//zAn-JLP=p1iK頔8  _z@`eecd'ß?0BC pd?_ΰkNSNqhZ@QB_`ضm+ ޼y :\ Wgaaa8s4Ç89} _3.PyQbۗ *r rGNpo߾ex9rZ=a`{?@nP!߯_ _0{UUATL˿ .]c8w<5<:У X`~57r? 0= -qeCQ*v`|pN.vn`,e`7_?A8s. ޜ'`G) b{.11aO2,޴;+;+~L?}3cKK`l(%a 悿… Xb ((LTjAX1}{w2 '0Y`VA5 @w`;!-\lȁP Gfcx 0!b9GuuUG2{AWWh+7`i j% u o.p1`rTY򮨨(0 nz zp a NN.$$D$ PgQ A*P<޺un(aBB8T\)(Z`!Grh(%,ddD&<ć 2hC%as@k"[KWy[ `$)\PW QsTu 9X! !쳝bCp偯o@Md1(k+ӯ@~#R*i21ao6e&"= U=rϟc x^n"lIENDB`PKC10L$nuvola/32x32/mimetypes/quicktime.pngUT `AXPQux UkTSpI"AnD EPW%I@5Zk3f7}5);6{-w#yKB# :ђoN.;rbAbZr|Hg x<68 ^q,v;]pr`hڳgիVw+rX,Vʉ;f.a_4T'V2>l^g0z{ZZ[;Ew 9g,!ST*adW+$K)(.==A\T\|KػaIBclHф*|<08=i-NX{EIp+NyI+auő|3Mlhĩp|~MZv5l7e_P`h`)6jOni(nkr~KER T ;bZs#Nedl7zVMAG48.̳Vn:z@N7xArHxpȪ[F8|Oal,#3z"+Okv|_ & i< OSṾUSɯZؓtHU@ :DvW43qBLځ7F)'t>P=[cEAd-O_#ylpY1jCzAgb 9QۜGxhzJG]&m[&x(lgL_Tm 0Z?::/:F3$GtPC SK!r),hT`RD*I3+ ~-5d.LBő/ܰp9Uf/?Ã`Kn,^p&f8] = G KfpW4vjF};'N,TsS4Fk Kx2낈` ޏBi=r6E&,b)x/kVtZZ]G8"ۂ"uuR!שp ŢӺN)]b_ƻ_[씉y.)ո-n뒴;)WkTrm@xn^y4:qiI=`^ze{r7p bFrfY!XvD,Q9Z-l3Ao K/1)EW`vgYGSsP^㗉[((wa.o~|[8 BQ$+i#[kCWsB:J}ZZ Jyt|9f>wW_0̆ߍ^-g3s+XKS>]68" Q糍9įԹ QT3TZQI m"~JVk'뗃6 ěH))w=) VjCһ)UpO("|BJׂ(;Ix!{xM]2NV'P0[# ]H1B.cR\QJ5# Ȫ+;"_ؙE3eT `f@[@2@`G IM ^a\+B]oD۷u_v0E ayy)<W03͎>sȟv$q<1M çNӢR:! tz6d 9qGMHPKC14ݒ!nuvola/32x32/mimetypes/readme.pngUT `AXPQux U{XR JV>PSQ9;wI\x/5jKNe~gСegrrRȶ=XTG2"b3v%fd~!4(IS*M (Q!eVPqGGGKٓt8m~7L"!?V6qphoޛ3V˸ۃI ,C{>h(*jXUNMdwwfQF$܌#`ّ#)V_hqd  jjcO*F eWVWPOe/h=d li xH=f0TU7㳭7^W]`x-󧨼(<|RNW`U. Nmzik5OzLYUo`sd+: ZdZF3.&{esdlR~H"Tx:2n4RLӅ[r]oUh YߴUc1 kQDÂ>f噆Pj,awAmP M!6~\}4,A}+w;'@UUtm.۷.z#D$e,NMlfY봏_#-" 1) ~HO²+W{IO)'!yOI \s2 [&=G!So㾳T QH5D1!T}4N]%֙\,󬷑KΆki 7ͪ;U9@:Fb?@G5 ½VW͛DSӥxha>}bH {xFtZ/g.򜩇H>VNy稲⟂<~Dj1KpK'l܂s%x˗'M'ԼnyLR?c6$Bl'j6J|XZ;1vO1&\c7zʐ*F]j)E5j^9w~zq'eX73jQO~4^yBVz8o+CCa>nZӚti?4K%r*n5KQj1IkU Zyyc%,%#u\.`'Nߖ?ߏ9 i{I$ǒ [_GE[4777ǎG6:=$I!r׻}p enG94=6SPK C1pnuvola/32x32/mimetypes/real.pngUT |`AWPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<`IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp,`&.0?3# gIT8ȖĀ3a`gg~~dff;7z h?m}{ϙ>ae󏉁AAUǒX3|@0$@ X=rfXYм#[ YP[.a~fPy{F 3 Cu8+ +ç 聅 ! Aqaa wI.@%~20|W?xwOn f6?Q+#L .3?ưg`=0~*[mX l "#б'(Qr`kowbXکTH۸ >&w/1hH 1D3l50_g`f``'wEy.?aĂg{`c. N/?gؾm+- ï?m4t?AB(ÖßJ2|Rր@* +n^+MQ`I/0  lG~έ ’l w_f?pУ X0KBHϰ?^7`ɭ#'0K221-)l`c:;0} r((30cl,z-uG@߬а <@1}9&X`̎?2iPh0s׿~8KB’ C$ԝwagc`d~3 CCI*/70@ e'`b|?A@5l?~(~2q c + (Xpp.sNV]`l00Þ3YeP @X! E38[UARAHXXD01 o--0*=81I8 "bBȮCv"îZ _`xx9|X"ہ 윐RTaI.okLX.w~3 3,g8}K.=|9 ?\Ƞ"N^o\   , EflxPm5ou KUǦz B f s!3dgb`Vρ .exW.+1|!@8CQZ01 @8h_0@1֒lBFRBW[ W Q5h@r`6&v MLLN0:E69 ld Fx*fdi2\'I,vN~RX2, Xi# ? >AhHIENDB`PK C1p#nuvola/32x32/mimetypes/real_doc.pngUT t`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<`IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp,`&.0?3# gIT8ȖĀ3a`gg~~dff;7z h?m}{ϙ>ae󏉁AAUǒX3|@0$@ X=rfXYм#[ YP[.a~fPy{F 3 Cu8+ +ç 聅 ! Aqaa wI.@%~20|W?xwOn f6?Q+#L .3?ưg`=0~*[mX l "#б'(Qr`kowbXکTH۸ >&w/1hH 1D3l50_g`f``'wEy.?aĂg{`c. N/?gؾm+- ï?m4t?AB(ÖßJ2|Rր@* +n^+MQ`I/0  lG~έ ’l w_f?pУ X0KBHϰ?^7`ɭ#'0K221-)l`c:;0} r((30cl,z-uG@߬а <@1}9&X`̎?2iPh0s׿~8KB’ C$ԝwagc`d~3 CCI*/70@ e'`b|?A@5l?~(~2q c + (Xpp.sNV]`l00Þ3YeP @X! E38[UARAHXXD01 o--0*=81I8 "bBȮCv"îZ _`xx9|X"ہ 윐RTaI.okLX.w~3 3,g8}K.=|9 ?\Ƞ"N^o\   , EflxPm5ou KUǦz B f s!3dgb`Vρ .exW.+1|!@8CQZ01 @8h_0@1֒lBFRBW[ W Q5h@r`6&v MLLN0:E69 ld Fx*fdi2\'I,vN~RX2, Xi# ? >AhHIENDB`PK C18#nuvola/32x32/mimetypes/recycled.pngUT l`AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<BIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp@YA" a ǥ=:9 0Bؿ8؁ /޾ax9PANDABTǟ ?Bg200㍙k Sfx/ ?~30x`fP +#gB[ܳ1;6ȽS M /lgXqo:C4 #Ý&<)a^h3>/_&^ !'bʼ!y=A 5: , ?n20.|5tU \!C[LI;#+f_1fǰxemB5B 6~2dϰtM SU!P2t`&p5K/n0| ?30qbbxane3Y ža$rx-å OJ0eg`Scda_a- Y \|   nd{8ƈ$ l@;;fV^nN` LI?`17 ;mf Ww\l o>'L7z(6 /Do ×_^n4g Nbx$ç}18rTfC/@/`Uz}233ȰI& v 1}`_c2T K | ChY $?۟^qePΠ8ٙn0cMS;!C~PBĄk;YqqD3 NEU` "6N&w2,Y8ÞU޿΂ VA/ nNN3^~w>1Rau`w` ዇ ,@󗁅ĂRl`ɰ+oAN0- 1 !7_3H2(HK0|&Xpl̠Yjׯ R" z[K_ _}'XȈ2 Q t"ȡDncIgW `$)N͇!-h xW $J 6o` K_aYO ??"KIIŘEN'`Ǐ&"= JU=rϟc zeIENDB`PK C1|eTzz#nuvola/32x32/mimetypes/resource.pngUT ``AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 0r--&G`sf?S~Ð} N,,`Ă;fff7o2<P?  >.{{{?~6@aH۷oar4HFSâ?}pa333D@,R?R  VKQ!kiEȄ!G`?xX0ǀ4]rÇ *  ~|g`B00bs@29@Q **t ÷o?^z ,Fy;õ'l g_1H} 6@!l>r RC PJH_eb XU mb0dc:;  kAO899rrrr _f+O4R8 ,!W ;,`Ѡ@ 50 \3 x0q}[A0G@l. C 6ֺd( A${` DÂf) -.@aDg v { YrrȀhdGB* ǂ/%%V#@IJJ2ó#(-zy*AAYVFw@a-AGe'|E _MX™ d5N5pDDnc9IicKѸZ @&F\*d!Gv :('ذ4` mG(:E69ŠX}3H r<<<ďv03ys"IENDB`PKC1~  nuvola/32x32/mimetypes/rpm.pngUT f`AYPQux V{8 g1323fZllBB+Putuݨ43avوmk*żrI te\#c9y) ټӠm 5*yg><$Aj=2Ed$ffŦ ABJ$&M8!\ ƿ²_ _5BqF_'S}wu] WQ8E/+eDK͓UsRH_'ٵD*zb<眈O|& hT!6ncO݄{HrzN2?|ur? flx ?e̦ o`\R%]AtV!L?_/Do--ҖNnHKerVWڥ LWޭNl.Ueflyy㊪D[wŌ$TMW⩉Cq |p7t"<EIQ|ku5LTư0͐gK-?bu54j摏 ۛm D|N! @fk||wTW}zz tlbȐTb8fy'ɠ9g46#9^UhvOp\~ޟ&Pa[T$HEK)OȧVlFE )ҟ_soX`)QPHE97+֘H߀dA UMrpB%d6n < b/#\#~N,.D#vι.hoM*Z( ΍#Gi-,mP ,t(um+~ ]PxT'ك;2OYiX 8u"p$9\8 [ژ ng&iϩ;™hՉz0#&XbyxN^/x i'|kRwĐFN/T2{rT3 ^د־whp (3%;-cÌ#wGK^@|a`oC+[L<ƒ, "Gm%6} _qgQ/uRowDtdaQ䈽T~JNqyD)!7~eszzGʅ"=zdwi+$_i}Ӕ$lRߍy^[gw=~{**;] >DHNWCΗﶵjS8krJ4݇c>*ZNvxi;ww|pK)8M,f 2 Q&0Cgf>Cۊ9i%fjj0༭Z:궽}?0:4; fP~F"n}ЙVѽ5qcѽ=j` g2 q:<l(yfYLl赕p*Z4>Yz{~znJX{l"7A9= 9cHÆeBd tf^q rt;ȇ''ݕ* u V;:iBB-O#G6cA·ST{T3⮄HڝXtQ];1-+O*Wx3W6j/6L n!vJvNV2_l u\3$ RV(uڏ+JT$_Roht<2QZ`zt#y+)@O#oX h+~hPK {C1]  &nuvola/32x32/mimetypes/shellscript.pngUT Z`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx zsd}dqbkp_t! @ff&O>1\z 娆Yp& ?9 k@au6oD9T.+ Å;7޼}`mmh=A;o [Xf3?~dfp6boSsf FhX={'!AA%&2& !䀟LK?h`f?PTτc`J ,A([ ?A 3 09   "< W%߿F70 w q 07B )@dч4H 8Fph101P(2 &CpAClʐPP,,haF*KE@1a .4nnn3g0pqq10Xu33 <'@ &liA!Ġ֒` ݻp}aaa<`A=t/0 9{I@LH03p իW3L:ٙ͛ wfHIIaG B!%P B|~bpqd`x8{tErl@ g]@Xrz >fdsî]M4 ؁,PF C X0d?38~0A9{PgA if+3A(Yٳ= ,55yhop\Xv &DD:XD# >Ȁj>~p5, + ,^ N@=6@Ir;`m@a8.vQQ@ vP A$eP`H2%Hee%qH2.,ŧ[ `$)O5s x #n2\ؠ$ A <}3@lhbbb-%Td2| 9bDjv)))ŇP6ۘ?~7y@Q@ 4쑃|TF`9-,IENDB`PK xC1OH"nuvola/32x32/mimetypes/soffice.pngUT T`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿ D7#` 9  {@4(^8@rĄgLG;]1,@L辆(3k1ܹ?jH!; X;#ÏO?ʰ{y` s|b5@חo `Еe 망a`df`de+F}K [3 NpS w?b7@0W` mbG_32 )IÃ,f&*J`#stF_`vaN?gO1<}t^~_-'óoXXY!J(aO'!@XC_e8Odcc`apOl?0s;ó?de|Ͽgd:? ~c  4)uQ]}I0J0(w ޼ddw=7 ?޿gxz{ ϟ``zF@AK_ϯ B Q5L4g` _ ;KuI ?~}39t&~E1[>3 wNYe 6V @,r 3ك͐p?T^^:ǰu-7×30YZFA@@=1B=F$X^z`j!`k`)C! A3)9A(`bD_  (?bt T479a 1)232(1psq}-֒P0p04??N9#kW `P*/&p'aĖ KA'LP} v@9d96TX+#"(e`gsb`gge7ָ b"WqʢfxGfr04<Ȉ[LȎAW5AlP> 6411a;uXۙ@988z{{~ g@1KIIŘMDXjRwPhО%Ī@M9O1? |!IENDB`PK uC1.-ff nuvola/32x32/mimetypes/sound.pngUT N`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#c ~ƐǦYW (o ߿alffff8{O Puh\ {@4(^8@vz KfFf9 .U1 dd]?^dybB5 zj' ַ2|(#;.b%cgI'h ǮH.━ @?dP1~$ƿ 4A(a"; =zOD2 2HK0,!Y5a[ClB< ˱6@a \Tv<ʐt% kc;324-1F 0*10ff8s C~E\/0W2ldV @s:$873NW1hY0la ݳĄ+cK ^>mw>0uAMQaNN< /7ax+aE F w8/ß D^3\} n3{v l#G@1ap $2y×O B U ax>ę@ l$dcPQgs a`bd:# ü9 : ~~[4 3313130|[ O^>e`eaF b:ן_x!@ U)p>N^_?1<}' ꂪ  b8v  ;X}f LhQĂ+ << O_=chpIX>0|b2d8,CĿG#  \n Ҷ11Lbax1þ>fÕW>}_[. ] Q M ?~3̌ B j o`| Fz  \1t 9~pew^0030s0p|g8z!8 WbAíW j ?}YX}Xa6 [ H(1\ˏ_ ?~aïO_i /e| <~IhAjak_ `a' 0;ذ?@p 7 }EŁ7v 蟿 qv4yG3,>ho&&\8(0AA?lBFl?$yN F ^?A^HWo(JZ @pYFl*pS_D~C˯8FɁ 7;g;Ć&&& ߿&Vư \20c Gppp02| 9bDrO)P "I,vN~RwPhО%Ī@M9O1?xj+"IENDB`PKqC19!nuvola/32x32/mimetypes/source.pngUT F`AXPQux %V{XR KDEA3"4tԞc VhF W&ʌl&)zM*/*,,Yf+o~9v͛S|\t=rfJq͑w٬HPdD)swKvȓYޞyPG#)Hq\hT mذaիWLye2b{BBQCT3ԉj*T0=> M@hiH7#mCvw %%gE Df]a2xݩnQcJCb kkNrH@~lǀr*N㶙tӧ@[;3OCsd<Q9A 6>Pv'jy#7Scb ~sTф=jD@U&/?#qjOMi|$X8ȃ^Ӡk%ayoԿs[[߳=K, xP.ᗿ9s5Z%Yؠ @97޼}XI7V/^k/^$JHR`n"Οm}d=Ũvz܋.IӦNQu8Ɣ]bեgeT lR<}~<{6­^eg@/ۑ_kplLoĚ.2nl=TZ1,ɽu崮`EB-m\Mk%j%Fxy<G:XtW{=vw5v?BD6G 8b?3nq \3VaLF9=- _ڢF}`^/+F>714Nh[$$Kɋڙ-45Oͱd['S<+hG&ᣡfolU8P6(%_;G{)MB?o=.iO_]^Z NWGbВ܄d|; 4-A 7eh}['6$dDg(X n;(J dM ׍qҲ@5bE'nܺ^^F׏i? 5rY(Y,nt^-ȾhT>~|B#ʧ+%˘DWHRRmIkWV]g z @7wgp 1R4iola!BcI:?0Ou4,%5iOJ\^1Tb9}g7U8܉P:rea$oٌp N5ȭQ '꧌]qSt\M2:Ǝ!u*I8i ތt7{A󋪔E%{ DƬB5:gfբZtrv؁ǏW~"@8..n˗/۷ᅧ:D@<t0|_ w(`cc㣋20j @ Ǐ_ >|fF bbB L cZLsL= / 9b?o߾] H#PB$c8HKĂl1ׯ tfw>3ppp0HJ 1|R_|9AX!+:C 8b;Dqp?#8t9#<`C@a8L@ù4X q;<@r RrdqbAV  |9 P,c`c'X`AQ&##dg`ccP(![k%0ffftGA@@i =L o~b7TpT` bB7硒Lhag@ 9d1H=(l?rPE  x@>z "" N; l`QQ~h8 q ˑ-F(@ .P~l(A~%t+ 3@1$%? =@4(X} rB,x!,D?[FuPbz-؇Ң\ Px#PL_\X0}F9U(U@aϟ$?\䅦hNhǠU2 N@ -zu:g} n/xyA ^11i..6x) >H9_A@;'O^}o~ED4BnP PçO|Pᄫ. (2T̂JO@<{| +a77;3aع0.]<Ν܂ f2g\[VQ li2ܽa׮C( @Wn~9,Ci8}bVG#9-E|P.Yϟ3ۏ0@LBϑՂ P1 j*)1~ʕƍ; ._ Ofr9Hl5Y>`aa|5 {cx9a XFl*Xs[||< ~>X,11ڵ["%gƠ,Y$ ) }3@lhbbL0 F8vs'2PU n$;'''Coo/ׯ_? @Hi21Tcx:ACL?~`z{`m*YT XT ҰG ~ @c!EIENDB`PKeC129%nuvola/32x32/mimetypes/source_cpp.pngUT .`AXPQux UyTSg^ƒHć @KXh1lSHeQM6:Ѡ 3#%ZQp@O36H$|߹sOI>YoDFt0h}x \{j[2+HΑHLtב4yfRfZFQ޿3|bF0 F!55U~ffd {(3G_}^:9 "@ߤ]v vwwgBګ9f(3;@H@ 6DL=Q#[j鼣` ʊeCCtP펞~}&sCu ~b8!. bCh* [5z y@@=D@̆nS\VۈbFkf</>)ңzgUygV}~ﵪ/~*K3ct|VZnװVF}U$j6?ڞNVcc-vF۾ȂbnI.^ٍ߫; sPsMIcXO?>!.: #Jh!9QFx:.tc]JH,4 \>t7ȷUn~.. ڔ"&;_dņUA!풶q|KcBaЦ9򁭭V1T,NݭH I7zJV)n$wbj;ZҎ8[A#?b3c/Ӭկ>Y*WF=$h(IU{5_ LZ\[-I rxec jv$< Va%,D~Jﴹz[41! 4Bp=/̓?] vƇdNLfўHr=:"Ȼj ـrM ouY؉-0Qe%S:0ЊA;WP6v\>)ԩs KiL? ?RN}mip~) yku|7?2_uͣb+>e:o/ؙ4ӼДMNu˴*=rbg )uJ[F2!Dxy;Ho 3ͭByFc#oinZ1NgmN@p=7tGо) Wp9o_ yh Э==ӭn@ln3aHBc#pZ*z:4)1Uϙ`F{sȃ[>0 ru(I nw3Y~sd,C{@E3Gsdq$3\,5=UML70"i/tkS8}`WLBtX?PK hC1Ӱgg%nuvola/32x32/mimetypes/source_css.pngUT 4`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx zZ0>ˡP|5>@`5fĆ&?y@ :~|e$ @&Y2|\ , a"<7Blb !Q B ˆ !) L?2Y2 hV_1vrOX@,q70Q Y[* Jd@l&? |Bm uD~>CbJ#LQ 3  (}b3ÇWx8@e8Ab@GF++0бfG !@,>c,?^͐p-Q~4i)a o~^S`cPR:{ c sg(+#"{ @,X?X#w Waذ~ # d+dcgfoaDT  B m?>0;wFZa8o\|m *J b\ E Ӷ23$:0| ]R9 k)VA_W eHΐ5[ r Gw0H34tnb ߿0\0y^O3q^JB@aD/0 R l sDYLwcedhİqfv ̔AJ[O2n203bHŠ/s]~`΀ռ 08f2ȫaطLSeaIEaq`be8(7bزŀα o3b`xvA?l@س! ~2p{Π&,b`x LLDƠ%p-ý_^f0} 4[h!#j=C\ &Rةg20|z3 p'%|`?vEš !t4uÉ w#j $@|=rT 00ف¢AF Sh?ѣ V&y=.#D}T z*2020(F| ؙE2#fA@%?? ) 20nNK FDcc񍓁%8GϏ6!z L߿32h T3h<830*M`،l <"O@aPYt;08WiX.P@3,Gk"; WFpx C \Mslrbg?0V!066>cՁ䘙lP> 6411Fw#-Ɂ,`e'h@0E@r<<C&bGXwx OZc9:LDQ x%Ro$RII]տJS }J+}"u{i6Ru:{|``}g?fGZU/_yO\c_(xMpuGA:d&@7p035<+Xx;єcEFFjj`0)]+?T ^h:M*N<-}U+ԉ'# ;.Q& ZsD=;mƄnS; 1G;)(ٯr֋V[kbSuμtCtqRbN[eBҔ_[lIST6T/\bL::k'^/j=MCT1* ֪ ԝ![>ի~?~@,a8M[#g*QqDg@eЬx׵p"c^qy%/d Yc5$M"-Ͱ vWaս7_E"D"Ŝ\\PrTEbvt3I^j.cB@gۧa]@|^Ж$HKTTd Q OA?=vn* mݢa'3ۙ`o̳w͟ Im|>C=gV,:`Z5f=p&лp9t!GtcȩdҸ}U]y]zqc57 _xcY#:OLv!@Db| uysi @$9$?RD5moo-//+#V+n,nvju)}Wf ?ۑFʫ»?1i0K~tzMO-lztuF|0,G/Qfx-4(ϪD/8mp< c ٗa-e(oK':`R(I@e}\h1Z LgV=N߫* FQn~U<†&x뫫U,:'joVF CmFcJ#s.db:L6P퉲m ] Jc UNGž>=_G;nK;nk)E/(?&6\c )ܬyrc}>ԙDJ6͓^uD+I`\ Wi/- F~X|@r??E^k!Yᨭ}r?[-5d nxnя?mI1_>'a>Ѡ #f񉇄X!J+#`8#_?PKGC1#nuvola/32x32/mimetypes/source_h.pngUT `AZPQux UPSW/yIH$C@Xh{GY)v4--4XN:(Эu呰K])J@D B>̝9gΜwdYxwir2"ۇI'WUVck?Lk|A}R-V})XAI?.T>,7=۝hC)8P [nt6~Mlչ  'tkW{؈Cp^ϟml+Q:Dgh`V{p B&bqTRko(S/*rrf"fN~!!FY;Wxͽ-1<şF8v9rgz7N>0zm0RN&b5k뗁 g~>t=>%hhy;`ݷ 4ԩP-7&cdyR4~}~8_|jdpcX1ss}V?]Lw \>.0O(B83J^2N[5+*~pStskΰnTVJ厷R;9}$w?}{}XʑHL HcAkc)e YX{2iHoz|E6X?I%K{=#!D,k_ L7Gx|\R.w#b3I%F=|veݧ‹m4"8-x21B,1܆sz( cZoh,!OX+ӧ$l|M< : ϛ3t/d%ߑ* PK DC1[#nuvola/32x32/mimetypes/source_j.pngUT `AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<tĐrÿE666>+++//PX  o P?..`1tQA 8Y'fff&NPg0t<@zP\o`1_6~~no~?~Å7:C  1113pr fggbFOA`ffb yȡ[K 0-''7Jв5¢cpTԀԂ #  dׁ'';߃ %Jy @j Ǐ_av' QKC pP3߿A)-A4(ÀBE J+q qPB2b bBh!H3 F`Ca¼D RJ OؠtbCAr<`qOWރ}r90=} N(ERóQԀw S@ @:D<3*2[hz "P|;DBB _~;AHF`F;8*@ 0rg& $0Np(A R1@Thz rT>}¿| .`vPj9 Ar (&`@QUK@a8R2|\ҁT9 3!lll Jp5H$t> C ff ,uA+~@ AN|vhB@eH?$99@@a?+l@ A?bPqP%2@| A4#@aD(B yy94;P= "hKhbDĄ S (Ać`uzP7 /~a`bgHQ T`pb@V݂< S33<=$PbtjXSe؀][eCq ؐbV?!VĄ+;"p's^2p0 T;9m*Yڒ J '3v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#ct1GzVVV^^^- ~`ϟ?`lll`>>tA &8Ct ˁ|WoUZf ._!#',> t3A 0lrÇ>;X0 ?}s0 =LI lq^8,x"84\\@@ABBLÂ_EY4BPP(|Xh1psss+ =5,e3III?,xxxr 5`_HĐC p G1~:ѣGxA #+Ǡp( vv@?pY`Q`ffƠwrP)Zk͛733y ~|bd݇ b`fxp>003hki1ŋiX@50@,%!333ûw888N<ΰc:_22af?g3~׿ WTP`acbr \ n H +o?G1|z _`Ï, <|hPRRca Š rvv d;` ojΒ@ ._E_|_ >>> `5G;$22K \VP C? RAzXX$ `5vHL\\#_ t@0P6H Ya /_'DP)\Y@1\!a HU?<+ڳg84`v @1J0W"?` ߛ6mb`(` V',`qo E4RݻN :::(@Xs&hJGV9AG^055e022"t"; X5B@(@;;rhiq#8EBN*#bBfP ;vfx% d *a9w"8ˁ*)e4kӃĉ 7n/8%sssK}X0-R |/ v(F @,W `%H0Ð P,E9:֞;g;Ć&&&zGVt@!)1sH4O ?)]JJ(ƄRx@=?~RB< d(A VbnA>ďv09tIENDB`PKt91C}{|#nuvola/32x32/mimetypes/source_l.pngUT gUAZPQux }PG7y# b(AQHQr"$v; I$s HB AS+WTÛ%wRO怢TzZH=VɠG05 >veGK?bͱJ E*5WauZYT~tP _/H@Lnud]Dmi%êkX~3ջLbl=ee*^=5@gvܩs̆*㞳ҏjM56v/ds/ xĘ7<O~cȈu'+J\T:!p;.՘gE'~R#In+h Xm/qg@e4--9NN#ÉgA% !R*ͽt ;e#jGPY7f;KԔꮛF.rOa ^I 85_&Si4ĺ 2l"_AԠW ]H l3TER/Jg^ ƙ8Ĭ[Bt# m͋|,)D&L6&/W װo;]m79_7tR" 3Q=j&thU6%S$ԯnw; u!{2S6i7Q?bc$c@\M|XrO ԋJmUF7˔[WMy'@H!x"+=qAJ1 Y/޻QSl1L :ۈ0͵H(?ɚërULڵu~@&bQ7|AP`/0lp Ov͓jVdNW#rD*Tp,qsON\J@jm,vwvy5|taXKܿ OJERsi$Z.U9X^Kʱ#xvi i!-"rc8c>9/, +#|¥(80~9gqޖkAWl6sW<o Ϝa(S%ۈ,Hǜrv|- ssr\N~_X/*y4V5c_Ou={aki &.RjS*ծ~ۺj%V}t ٧tX7Ό <'DYJ nlFi$7z?!OBq&\|F}PK=C1l]8R\%nuvola/32x32/mimetypes/source_moc.pngUT `AYPQux Vy\Sw/G A)AV>X(rȑCMR /!\K)y}"PW1q]-X n1!.revP*D?f3=ߙQ7o Ȝ;< ix^q;0JcaAPϸAG'7b)4v&'-%&+:2A&oᬽZ!c0+Z\\|;)!j2i($Nʦ?0W2Nk:b0﮸<B*Taj!hO a .tIO'ݭeOt*8ZHҨYD ^:|jq H&$\{br,0/G#rdX^jt0cΦLLa/6فU֘4D2Ŋaά {x&~z ~F0.sT LKOUʫ@S6 +lgDiiå$ZVFPj)maOܘ+%mCK ګ"k#kK|䳻bs)ǣD@89 K3 E2^>C}fz*{8I!@g[*$ .d` &.ݒJr36Ēn7ZW77_w馟NwܼOnbPTrH/ok ѓ>3B}sQ1_@Ujl\?SK+B>u6>Qer5x<+KcWxkJHw-kRvH.DVƠbwRUz?kٝpL]M rAȰ5Ps^%`1~W2$ԇ6"y]9 9ժβ~}B4{m=\]IL-r}C|MOA,vЧDQpΜ2&!H׆֫I YU{ev/" ĄN+Ǘ<>a?n kVr?_ߓr|`cD #@DrCy7B&8a1D GGʖ ޑOJ&&[\ټs\[K&i\~]|al%`Ow誻0wWҏd6S[²CQれ 1TD/\@/-0$[Nڌy*2!=GxIʕ[acc4fDVT.Y:gxVL1YϜD.s5PF0*| 6754KV4jGF.*ߟR|(vnc" yIɰbY5H0q`ˇ5b[Xhd8C<̕Eޘe` A&ѡctӽm Ď oEPK 7C1w^#nuvola/32x32/mimetypes/source_o.pngUT `AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<[IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<tĐrÿE666>+++//PX  o P?..`1tQA 8Y'fff&NPg0t<@zP\o`1_6~~no~?~Å7:C  1113pr fggbFOA`ffb yȡ[K 0-''7Jв5¢cpTԀԂ #  dׁ'';߃ %Jy @j Ǐ_av' QKC pP3߿A)-A4(ÀBE J+q qPB2b bBh!H3 F`Ca¼D RJ OؠtbCAr<`qOWރ}r90=} N(ERóQԀw S@ @:D<3*2[hz "P|;DBB _~;AHF`F;8*@ 0rg& $0Np(A R1@Thz rT>}¿| .`vPj9 Ar (&`@QUK@a8R2|\ҁT9 3!lll Jp5H$t> C ff ,uA+~@ AN|vhB@eH?$99@@a?+l@ A?bPqP%2@| A4#@aD(B yy94;P= ꜕"!YF@ E*2 Da҇b Trk~Fccf@a)9`%E.P+BG1X\za֬ ; =VWr9/Þ=Ę YԒ >'C`\}KJ )_`%P]3S-JE&AҖx0@mF r"d$͏ Ϟaض3Ch(;7Ö-_`R,( #n,akV _qs3S;(ᙘpKM&!+,ca  N0:УAD?AZZ\ :: Tڛ 'ArĈ9v)))S$Du <٠r؇`z{` (hbD NA V4쑃|`Hk^DIENDB`PK:C1Up #nuvola/32x32/mimetypes/source_p.pngUT `AYPQux UyPwEB "` "I(K8D)lqd֡rl !"+Tv c5v,M u+\<B {o{gk&N_31kexQp[ɏ7kl\e{хi󊮄""5$%D0Ln䩙׸&Rm l3wFR蚧̔zz&oݸبukch#tV`1+L54St{|nrrt ^*Ƈ,_wy&8h3UdԯƸ[qy/H ;p] xF™bNyA"G]m%-ĎRy?LvvQLrC\pR ^չ36 {nnc]]68?bb<+*%Zizڇ2.]mAgS}Syy6o"F]"d Dj/zоU+J?`xےp MPp8o?(RY/1Ffƙ,~˷..FHg\vygp_\4L jO:+6<_H6)b'0vG+ =e H)5YWR]nYqg/LLM J1>T:ڜ8x~~vڸF>7A@O/@cH4q^ۛm.OƜ*U˧O4P*f丿 DPK'C1J|il%nuvola/32x32/mimetypes/source_php.pngUT `AXPQux ViTS~/̃DyQ QhjXETx$!E,CY(Q$@aE$k Ks=s{ݟ[۴ࠀ#H8OZ0A?4-6})K䤤ǜ؉XJnv>`?Sk0Х ` G޹sNlhf tLߴqDwqV3Vk0iՓm `,aLH>&)0z8'ԑŦdϜ8q AH~QrKqb4&k̻o_:3 6C&$BV%Ӄ7f+2Fۑ{(}Xc5zb Kr;Lܭ'w^*s )v crk-Gze+ h/i@CLa9Gr4n7XIWjFzHzhYnՇؒl&j`G> m!vo $_nx1 \v(a 3pev|.K%IPeB't576}J 2T ^‚%Ŗ[b5XSF4HpnTZ.9QgҹPIC=\In`!~A*:ɓVN"qH֓LejVvKE6pʷ0Okɲ} K kOFU xOdŕ=z%|~]@𔯾&ג|L 1 !&hT-eqD =:F}"D?f{R[ %.e{ۗ^ڛoq̣DDvUmUQ~e#Ep }umA*\CzًƝMRZ\x8IVUdhMB?r/J*""y^d.+imF&UTݦ_|$ԅ1 @ā-v桪hB;\x0o{{WA$q5uQŃ>>!zCJLmD1ڝ4Eq-ݝBC0DJO2/>񩭼Ry"{htS>Cut%KjhWEHoݠj>9B`TM?H;_N7c_Z k~ vʲ d|.r0QvQ'!Is!I:xCjt>96Nd_Cf7e[}sf-pDgfӶf$Ǝ/>%gb6:φBYc rSV\qo`_AQ2k֏ )w-́ٻ77,M;mpD i+vQ\:CA~Ƚ{TdY }"9u/ܧH^Muy?n-ZA;hmԙO^.z*G=ip7`7Y!즌i\84QbC r"1"AV+"GZ4Rwu ~b)]8 K؈[%ZvJt+lF2ɿ(U خgw=ܤ}}ҡ*&nXTܓ\FM[fiO̕rRs?oPV;R.%zcKG|V~c)m=p+g^~{ \\Gf}U\(.bnmM{`$Fƙ%` O ֮nNg i,)%Z r/| ; s-:5P]ܱ p<喬')*SAJ׮ Ċq)=-BbD;95l"Zb0|g A̅.gW?zﷴa6 Nd|`䟄ty7sl0NVTVJe1bWdN*5FLmS_E4D7hP ])7J'WM " !'̆,Æ9ȸmo~#QJ!P=-')5t]70Sޢ'9PK$C12U=D$nuvola/32x32/mimetypes/source_pl.pngUT `AXPQux U{PSgn͓$(jEAAH!܄)#!ĵ@n  ő`w;-)+ڵ#u@d7s;$m}#'%1ӍتQQY7 J"آowy*9؞?)?@I8lZqdd]VV cㆿH}t9d'&kݗ,̬} =>{55q?묮elLI'*y%KŅg6DFF4 ^M%q2Z\+-,`M B%xeo_-.bg/V@TP`CikN2GL/NKO8X|Rɴ.gBI[t}bEeeCeOXFvw?4[Q'@Z!lH Dڵ ,ٔ..U(d`;mٚm/21wn *q{[iW#ڧSgrF5 00!5ގOk~-o$cg̴ݗr͜< C vqݟA{9ECCq48)έ)$J$sG@x{aMbXR'~."yk{K%M{DZ&҉H{O*+2--vk&]tgX lZ{<Sаݎ-AIؙ^av,)1UwXf\oow%E{8Q-͒8-]s3{_ ߂13ʤ wk8`]Qʱ޸WCb1G,zq!dUOa}U,݁$Cͣ;`SA?cm>Vhk.VpkD4vf@|wਣZ:] ?^T/BLP(rCD*`m\•(U7gZhy7\@yib4u)AAZjqE4PR_'x(5CDF.k{0Q_O)Mm$Q=YG'*yb|,GS$f_M]7 M ?GVfQ^KpWK{F~8875Q,G+c*Œ}=E0*]f3 )nCNPxIX>k| ]z)ztQe܆m15i,JwejeY7BV > F9{vu^?ccsm^u\DqH Y/_퇒-s ~Ƈ|S `_6|y#_,O.4c^&AU0LF=?+ys%ѮM )T.)kyp+Nw#BS;*?HAcHv{"jPK!C1*pv$nuvola/32x32/mimetypes/source_py.pngUT `AXPQux %UkTSW>77I $  ry EPHBp K$:(Đ4e* Vl1. ЊS $0㜽ZgJAlYlD,<$rhb?rջP3rrgJrE9i)NC%R ?7='b9kaaȑ#7nH6ov05?|СNQ0*6|vL ;'=m cYUտOm:,1OԖFm @Ug-'AbmC7&V맙&@E֖\6f[f&Nu EjH$ceZiZO+h zeU@TA9"r7׭k9S5Tb@Ox["]i5()u(ɭd/`Zңf|,mKh4C|ĴJCf];-s^3А]0Xˁnnͤ@U۷f޹}[VJi ,)fiT4]MH i,^(v~wSy۪:sV#$ 'T7V '[A"[Nqt%{222&1Y]W4+ldDMR-W҆+~[fԼӯLgKC#<-l<)g3u=Q; N%)w52[ P+93?;\Zu( C>/yVvՅl,2' CP\űqWJlARcc I5&RgBh`N'iV)\2>T򌚛c/F)W ^j=dz50Tl3N5T-eӇ ҝ|TK).fDwoty hOz#c{ )y]7"g|yBBYyi4MAB2N_@ ;?}^/zށe0li[f0b?JtL"[VqODs^8.vdq'lz(rp龻g/~GULab#v~aݝ!ntւfld jE(Hz>/.D|[Y]~%  I5U䨇)/%G'UTY'8O/PKCC13=#nuvola/32x32/mimetypes/source_s.pngUT `AYPQux UyPw傐4T~*CBC~ G@aՕ!.+GY,,1v+c ׬wn9I8Rrذͼ7o|{ ]8\c?\w$w]c(gf}R$.SxE<49yy9%ʋPbG0d۷ojn\d"99Y'"˗LNI,+k +C_OY?i`p=a0eR&lgZjc? 秐 ,j #il-ˆx$j56_=+AKm'"A> */Koіиvatj_O31t8Ji Q4{̣!$T婻UTSKÉDbЉey57SZФ@Ut]i4x"e][[>QYMb"zCC `VI:Dwr?S)=UM(k_Y^ _ȏ5:L59>YIllxafB^WOZ HtO$r gɉŚ޾>ܻ4+|XGܼS5Z $WAhpR]Yl>6#Gy52;‘)ltMT  roi`D V+*sF@NZ ;wrU5UTtqpb5?$yI"#|;@% 1FZm &q5Ȋ OxY,0쩬{i1oHoMܤWQ-ֹe'&GǾ>Sܩm;-9X(ï< Mo)6-Z\1 c?h>6 l=EatۂetaM3e6g"Z.$Z;$?SEɊ3#挝cڮ=q^54X ؇ -G !ݣ9HB}LvMNlVk}wtи— wk2-]FЈc-V o_PngM]~:/Rɺހ L~s_Lm_2&Sj^!s3_;],טg3 ͎Y(D:solm 7O~1!gm+o55'hr ˲vgڏnm&@QSؔBPKC1M#nuvola/32x32/mimetypes/source_y.pngUT `AYPQux UkTS><I H<K^IxرC((7 o&Ci+##aDXN )UPR;]GIzq^g׷jQ/쨻#1)xFwgEEkxet5/;G8+Udȳ 3WM,+%+#0(+H ɶe`@_ZZjCeh޽Iy{zT6vHW>rSϙE;A|M}p%Q6JmD9(ńJ'GU2B@͑ 6}@".99939jJcZ%#J/ъ|Q矰xFGʝ빐j_U[X?Ԏä0@\N'gκ¡ѡ!=\OO`NV悄b0_)GDqPXakusAqzCghEW8%W?P6 0Vs[KI=վpϸhzeEJlMt;%\`-`F#VN9]dd&&~5鉼Ԣ ~/x/ne>0q;JUX5EuyvLLl!lv㊲&m^ BׯuY*d2  y6!I ե'?4adZ!W S ?zGT[^ӘN_0juG!څ䈈< .g3EPǗ q+cY:h0LgQYgUEu@yԭ:F{}JHa?qʱYDIǬ胉\?9Ux0#.='2B%%F% 2ۛ[~-ÈxwXF)V҆ *<B1j/w^¥DpϧGIa7U<݇FEyܑK&B~l\hP!/o@bGz<5fkb 0>V) u:&(Xtkůu~mVT~YdcB:1Q>^(IKf-%RsyPLtf:.)(ʰm\e9UJZ1nH yRC>3B`6n5v/6Cۏps\dy6C VCՓK-K'Nމq?|鸩_ V4$"\W0X@HKWm Bo PKC1>t!  nuvola/32x32/mimetypes/tar.pngUT `AYPQux VkTf&$! WqB *yX2UI+%R4b U(xVD#4QQPhA#ABr8g眵Yk]&^3ÛpE!ԹsϞ7s@Pڵ*iW R30cGZ&ujVf\fjۙ+p&>N&A֝lwFM}Q?:F 2<,;`wJ cImߨ+j ;}eFſ ۥo]5 ?`|cKLdI%eryMP\x)wu:HfZ 2$)pbqO sҲ̴4!bu%qC^.Vf3%^ykPyզ2%M+=8s< 2ϻ|yt R$Zf~=y9hn)'Jvhg7rSe̶kMoH־%> [$i=O"A4ap4숭/to_n'n~Ң535+p{<@>񙇱K57;Db˾w e+R{hnd,)*_bpRsKњqM剞عT&fYmwr:;q4ұɬ‚3"-GA#NiQvI6&4^=t,0:p%-r~_/&M3J{fu-JorǴ|$ Kb:۵TɯR%t^O>׷a²yѾ˵ j>rA|67_jit\l7CՄ'v)-܆ąb5,tM0)z# `^^#yZNeI._i@g(Z4DJk`fR-#?=B V6VCm}IU1s=D eXZ=BɓC!. FL?UR&oU~1v_~E;@]Xz}Liv׆<Ou ߌ˜n(Nj\@)("!K1[oHbu,Wey1qՎJ&_́i#_p $}HX!LU;hzi*GhڴL4ԙOGJ%5ҙwtO @lfs`m#Ja`'${Ṟ́w+Ec'dI&g lMw^?9W*,husk= QSUD"pYU|bx,v'.;]je{&UBV6T-, Y21-qo8/Q'FU E+)>LU')5۾r瀰]_.?qVy)s#I`UmzV_o؄ϚebRBWnǯ-Оf'aR^: BQׯ'Ӛ;æn67iF:FW\VOwYͶ{ZT8>(Dg $\tI 0B\Y^#߻m4~5 ;u=nZƧ5)$D*uLp)/!&.M3=6cS/3;ؕYT^[~~WZҶxMPJU77/% 0KD$7GPF5׌:ƨ-E$7 ^cYV . 2LA U:NG|QJr}~o}]&۝$CXSDA aȹ?hERoxɽrN~cl^=ٙY_>)N/ҁ"+J€xww.^rv6?k֯_p}6ay?$*reE UTt<[&뛙{tNןkm޾5y]Z:m.*cM:?7槆/Eׯ{9vc8ܽ{t@A}Im;oqF$eșP*azqkˆqs"ShGʐKXP nt/T`B4%YD2"Lr13I`|ߺ=*Qs@.Ykܨe\%ݑXl(Ma / Ap ((y61+ j"8-H>]8|jBSW X "4 yP[Q.|UTR8wWrX^/7}K!Pͷv7FE XVJ =ώĠ5vZMEMmyPT[)u;sr*$CthWS"?rf*rsoT3|J86{5q3X]=dĸ7]SLYf>y\siTr+lcZ5ѱ,AwaJY3ͷng1&Ȭo,J~D%?uw .M?7; AFq${-SgՕMED'0aoX̏fQVNfh;ȩ_ZEf4] Ԥ$C8`'ݺK̝nI| /էԶa{C4"e[-ۄTRoӫh>娰<ŋb`(O7Mx4ޅ lKگTGhU[eZKA-D $ӎ5(*p :BSM7Uy 03~=G/(WjoΥyC.dUPXC0ߴ/p(p,69#eC\4v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@C9t; 0CWf,6S,6ɳ:'{A>( ֣ܾ>#~#30cbJ6_~2 R;&?``x3qcF733fRо+V0cbtÌ}\?Է W23cXq!d޶AH,Rm0Xq2 }ې!//m*^?pp2Ia8v[/3ig #G@ c0/4/&? ?ExX8c`A8O[1$fd`(vxCs@ Y3 L@Ɵ_~I!*0o3?28jfб逑QC X|g`gFο(99 KI `Z a?+?FG80xXq3[{o Sv0 9^~ZQ?`Ep$ (6+CRf~3(K2ps21İOӟ uaxZ0<{БC *w߿33f8s?`~2(P?×0fx/CZfw P \3 07ȅ21 Lx3|p:Ë7?*@j@ P\ff&3 E1-- , t& }#&a]aB/%>o@JDXVF z.I,%cՁ䘁# @Cg;Ć&&&;uX _~3H QFF9v)))SBI,vN5ǏB< d(`A2a'@h{KYoIENDB`PKC10W/ L nuvola/32x32/mimetypes/tgz.pngUT ~`AYPQux ViXd"  bO" L V CH*eHA-kA<O" hX XŲC !yǽqw9 АEd[dbO;|xj۸PM8L;)Ў 2RWp/d(  Rڄ~`64o08*/878׎Mc566KU"6uw.i9FݍSe7&zfVu џB4Zc1y2^@4͜>&Zwl7Jf -gJ%-22lcưŲ4'8+=m,_Țː-/_O̞$I* UJ>f/Qyp5e_r3E%%D3WJ+J׀v*z汙8>rr^7 lj0Re Kx X 8"F!0̯Iyy;AP#(j&t(!g*=НD╞H\he۫wikUШƟ?"c:¤67 'lBrjNjj󒐐O^y۷3h!4@sR)^'L58E]혺VlvL TUU&̜y>Qs0&CחX΄c1K-.vo]$ WD999WU(2[dOiG;c!Ȁff,+`MAv bT$)lؘb‚Pa3E'$lq鸯jb0ٸÜhte'_Cr%Z}4cF&s\ɜ @ SRgiWкCq(O*ăc{VL0\ fKNU%= $2C񆎩ni*\nbxrA,vm]WzAh(=BMBORkhqh&f!s4#37z؎!fOIB:#bkI yg ۊa[3G08H>w+L>'m|K xÏ"ؾ/^_PBC6Ҹi7ChgɀlB$e2mh[[ AVBPGD%Dbh=D|ؗkE@ІM[Ys9(t-vQė?6bn^]vΪX<&~QUL-%yW_85ؕ>bEz_A5N3YȽ{bܼSR< Ɍ qOy xm(_Ѷ@Z5 )ׅ,4PD4Ӎ(!uE\ rd+/sOf> Z:n Pl1ZA:,;o4EuvgWp<* j+_'Jsy n*F)X-~Dz.h )9ڵ#il ^|mQQ"u-urzɿNb9%9sn+ݠ` ussti/U-z:cD+l/O(EwpmsGFwB1CyX*=~Gx֐d!|g'am!u-6eo52#A׉ߖW_ػ ?#MÝRX~S'v}K1 0'͝ pts?y$.︄lOү+I?2Ū5|ׄ,vq8n_H1lf/ڞ3an/4[߇ıQpf&:CGٍY%|GOCdIuo:vٔ? -Y~G'hsW-IQ ܇L"7ak` RbIAe4w!kTIaB\4,N`hm!cp̉uk  v+fHB\"U'|$x[sݼb{KNHe 358 ™OC#iP:JL*6nzyaJ6%G-]'mk$ՔT <,WCD)ڠ/n#lvB gI(:LK{ѷFUуӏsw@㡛‹_[:uf/8细ѡsscob#crI;%<8MBU*.ǡ:/jeT-7b/99|'dZiOU[?L^h{Y&g\x3*Lf{Llq&rGUm94^m]=tyx R,Ulw:*Zd-:X!ӎV!/c6 ?7yT@Ahl}s{3uԶOzOhwSOYXqc1{@9@t $. $FygtVPst3/ʷwJG#hIg<Ȍ_. =?Kq ;6V@ J 5]0),VPKL> nuvola/32x32/mimetypes/Thumbs.dbUT zVMXPQux \[ "R""MDT EADU@z AAA RHJtAd\=߮{~v?Y|?$3''g3:rxơj $D$QC<_a 2 HO??m`@sN P4_!1,+b'p<6@ a@v.@$݀ d,  "h@cԀ:p8 '4 hڀpt=)4`ƀ ` ` 8 p{,8N n;"/|?\@ @ m̛دŏ7p|=Ѷ/?}s$$o 2ķnw`|W-8@ A??G@kG-cx[x&8~ᜀD>g8xp^g#p|[B[pV3/8/ k΀8? ^yg@}þ)| O41i: !Ae @jdd/h(KNENBPRRP303032q011rrqq;A 6(rjrrj6zZzH!f*p 3Ɍ [4T4 BH$ jj0xB1Q`շ<Ƕ*Ce'_exSpprq󈈊%.'OIhM-mS MLm:8:9{c#.DFEƥ^~5#fn^w WTVU?mjnimk񴫻ׁɩgf?|_߀Džb"C(Jx\2 (2,6Xb;t)ZH$kaqexhF?q BtH<$38omGǷ<ڱ,1:lm2˼؉:uU0\G{ZL,Y6L<6ƨPKUYQE1Vi5fL4cF@KZ9Z-mQjqk|rj/Q2bvhN j lmvwwסt}{$; A}mQV(K >q b$ T 3xvN/i{h\=}ϭ7D>bBgmR:E_AKvٸXG##QUhg[mSmdim+cA;֡mY=r^_5;`ك`_8 LǷ/Tl^530Atbށ?R2 &n!m 7WWL~틎lzLj |T͖_1 C^KQz{Twopa=Vg>9MphMf _x)w$v7^n&(L60aq[i1>[b?Z*1f[Y;& ,K%*-s)qXʹvsZ j-pʥqvULoDDD4ΨMLEY7. k}L|U/4u0Ι;f?H-˳Oklk6t/|w;n&AIb?} [.θUݍɳF^}/2ucw]J\='A-=+^$h|ṊB8+Jyu M0lTp^o1ըۡ< b)|8* vk]X,.S j=Ez3v Jx^c3c|h)UZ $RYc\:$m;+z3SH$k_QrSXRS]J0É]+>U]yNmڒgD"ө!U 5Y"ѡ7LLh»"kO]+34Hs+?W`&1_mPGlkk/?7|'SO^3XOwŸ?^??|ߺ;dBfvJWMG Hߕ}a%6LaT H^?)3[M:hF_mh8BpH-g8ty#YgVMbE>ضjxr/ N+H-k[xe+ߜ?_`>!)tNl88raO2 ,u^>%nXĴ#͌j.A+b+41eP LHt|4DRLhEbDgAQX6 rʳ&H0P{_o5 Y^{ߚ%aY[ү#T?>QXlS2 {ԋw{iEf;$(/l&Q[3L/#xvcVxM׼GN'v۬ԜFc8wGZ@a+%;s^v'?.. ,^0@GycZ CKnzF04Vo Fk`ѸB킉CDV8uͩznnMsgb̗)cmTq,*^KhH捈]G}X1v2ee{%RDvD'k+ut v ;wM6|C"B!2+eLD2U;2BLJmMƌq2VH–!ypɹ]};޻ez=V 4=LS{Vk~|{Aĭp{{.X?NG_>Yqݕ)^YfN{>*vYGN/"+L)ÎO2Wdi9bVFi^P0xD2kqg.7OV$z4 ArTƐKk_4O v"XnWd.P'j\fJr*RycYoD\Ƥ%psPulKEß9 oR7~448 ϟ,ps>ksGW׭3A6ON,4X~۫3fcw0 'o~?V7pް|9$::nKeD́}69&vxSTz rUGJtZEqO*&YsԐu8I)t}d6KKX㚅=0dQJ-כ ؑߏ!khoJgi~Ch5YQZ2.lzWk\Cz\SBW^5cLTqWSQ]+3ُ,Z2o^o.Vو=fXoBV)Qs󾩺׫uMCxyNN&M,gVnK<\_jdNO3b-B$Km:ޡoXI$#w_e:OG'n3\%9?D1=\_ߧQYW"tS[܋b6WRC/ݵ.3[vʿ0 صH)jzF /͙F쫐Co|u-M}}H&(<³'Nd@%֭xi>+ 1[0%( tRv컍61`F 4jZ߈G[ u 55e '%yLcľo!uP=jH93 w~j>9Uӊ+.=IND]h#O̅Ϭs8*5bVɺ5ޡВi"FݐlQ] &:NLwWi$;r4u/MxkYoZg 8]?o$`S+Ŝ-Xۦ.)5t,ebgSOp57byJsuՒ>R^_y\-LI![ybPxo3x8:/&u&iިXj[г>C9c[| Dc0GC⎧Zq#0gī5F#ǔ0Kˮ&GC;zJ#AcT֬뫏wTsxտ"VLs[*by?DΛZ.'O&T);o~^}LIUp-AudJXI4 %dFzhqNpa#jثh^A?9lmrjOȲ,ۀ\NhuRwжHi`^bwi_8o=eR{j xzl[8oHb!zծ8ʆ9V$dc͘nQzз ocK~ |Pr?6w_ߠwqu4agBE5aF뫺K|g )QKeUCi Fw* XaĆ/X)-2&zEֳƅ }JW}u0)ґV\a*}LXj.R>;Tӣ {i0<>B_3w49ucoTw~[P"hA?~Y?o\kn-!1')UZԔ+f,DCKr3a_f$3( 0ioo/=?ExJ`\:Kڍ}5 jwY@2F"~+  idL;mTA.W(+wD,R>{ULh<9IW9~" R##DqePY#dBA+})+~uH>@=Wi-pd]UݒP%Աig;rJމ N< D_ -=|SoQAL*{̪L3_wn ӯ狧 *Ϯ7:É(ݭfe vfTBZN7>vo 1_m NSeCesŦd #\.biqY#ّ)W<h rR@AE M#11m7pq#O& tO/q@2''2aڙ®2I=F&Ι"h-?K7/sWA|;L ?{_VomNpnf>1d5->֏++hۍ{!m⓿o ѳ-Lu{6"e]ɬ~7S懜0 N=kVzdz%;TSقlGvfWhucWivqy_ ~x?d"_MktU@F_u`Y #*í:X {ޤ> wΔr=VD*LN1:">-eZ왁]h8h-_d3u/RZWUd0I{qʼn"|͋{UihN.#O _QYOBq` 3`l@}Fp  0@ @H) d֔(% Np54!Hphm΁@\c`Ds`,%`e`lf# 3pZpׁ^ ?qzM/;Dӕ2Sj0&mL@Χ6 O,(=-mݩE-sT}^M>M(.7 Cd>TE0rM{kliMwAMfk TAtYeY@t i"%A@AXa)AB.zw!$P!iY~~{g͛L999g2E6׻4Yٟ^\Fq]%d^D:p #':Ǹbm 1QqwVrrV'Ӑl&%SYz pJB,]o fUJ\Nuq;%YYOIR`ÅPKf3DiEzXcb[)M?%%)l3K=7%lIR.ˁsvdLCED bZښu߁$ ::Y'-M@B̹ҊB蕺QY8ɟU'Rƚd\䵊ت%tԖIUc^2tG .w~Y{a25.EdSɿnܭwo=V%oㇿ8q`x߼ Gu}|W>MjSDݝ_sRVF(n7ݙJ fQ8+%lόX: E_Wrb%YǦjbG3BW0,@Xؔ2mBn[ GXKr&#}Z,糆d凴˓aLت|$ &q䏴ѐV,S$߯rPk N,)S-8ӗ:)>fh?Qn}#625,\G&d@S~Zo:`)ҿ1W&nU=a}ƹ08Xu:H>.7^C!Z%)Uc9l.>UZznj zHw#heu+!26B+X-Sg1~=80eښ,ټ#= sN4쬍WU1R1dGZHZ=ܝ=AOkHE;]$hK+wMp>h {\2GDF=C5ȳݵj~r!%?[?!o?Jk?nZѾsCOhKU_dn ^Ѿho =GS2{ ~QD{˴괕6puY7]IvOD|4#ޚ5=G^(m՝ t]E!F2~hGtzS<ٶnW*$4y\8†$I$@43HzY]ku|G~:iYeBI8* m0Dž a{`S.RxFOF1mvrdo2yW ʕH&U\T%֑]fDRXZ1hXj.Cpu7h%V狺^oF C\XeCѡ+|7,=Ԗ,P\7ƙ~N#sf)~g3ƞ&a` RrSCNbu+zWCbDp]sֽAzsLyy1#zc \b>Wmi X3IJ*jydOK)u0 T:EZ*( iCVTHkm~;:1M_͑㠏KMޣp]cL90oNg:(e&3G,t=<;\ǡrnjva;аPpb̓KM9&9b5T?kDּ?o>o(qL}=~P.yŬٿ oB@MN@Gd+e=,g}J@^q8R_?;%b7Txsf!943&n㬺d#׼J =u_:5L&ٻmv9=蘓[-Y_/^G!\0-4fPG·M4cEmm 6.:eʈ[R;78CBcC Pw[^EWS{GG٨:ZU_<@2*Cg<[fE.qnc^ztv-j6lb9栜'#=m^/3}߷rióх,0~c=P&=&|'/ 4;<=L˅WO-\Դ b@j EX\rIa把/+e6pO^NΘrvʵ Z~W1_ }9R<'b:Lk=yK\P$ UB̒8n[@Oq#N6+K^[?RTњK[~rjgOB}>OAzݗ~z_+vU}@ @5G/5@  ‟x H@2^)@v.t W@6y@>P"(@)Pw%Vj:h&hZ6:7=@/ 0 #k10L_I)`}? 0',K2@HG`XP>ߏi oۻp:Z^DF@ŹJ($JTvS[ud`FL/>ڲXFۣ<粌(;B3!7ʻN0hǸŎUx8))J5oAg?л>$w3jZ)}\'X4fBn6~K0W}W^Ӝ\RBt>;oY:{{גOvx=əU(ӻq5w7>F&F&6rp.+TS8eJ(IPص{5?X+)9 ɘu{Sxrrc:"<DYd 1eaLZBeKu졈:c)LBR<s~s~>߹_s\u~Z h܄L@ /(rmc .(cF![T)|MbF(=VNΩ+$G_;?yp4(0K]tN.ˀ]+i%"(:zZ#,$aK~5~~%'\T1{k6XǬ*?7DM})[$ bN*9m(94N5ݗۧLv쿷[`ZY݄caf-T,iYYhUr ;G<緋lG25yxGڡ 0]Wڃ.lk ʃ9dj`l!ξzvcö1 aτf^I!8lkrN Z#7zJr|mX$}1>fN4{jlr $? o݊8,1 *~COt:U‰q{:I{o1RRA EU:ŽXR*82IfXޏx<g~iYrSChRp* r^hyyl8Tw{u !j3OHCS#f%2Y4a>N:K,KeUnh߶duoh(d[®Zzbͼއo+3Kd΄Z{LO8Dzo҄~ϡarĆc^t.&IuJ֚rf"z~ ]9)"߬aό4$tI`~:fW.iGɚ넵j*.ʌ?|Ju(*쟢jM)g8]ľ[%[yoDjqrYc.I &gݤ'$>|$X<!Ly4В @tny*v[v9x sgbQ^sIcVҜMcOn ԝZ <|q}3I1!C"jX@Ui&D:i!m.JF$oWθD僻D&ܻr|agT^+FhKWfEY1#mvTA[bJ<_i.]e?V'bЌ}; 0kU/F船^$$:I)hOz*!??9ܲP6"UQ2ؽ I^aS:0\dJ3Aq 8V̉ԟ_@^ n_0:?l<g߿0,;:4 yx[D*Ԩ+t9ѢL]eV#uHڙT6WȰ\le$^S`A[rYzo-(K!rgl;igp,wE6=$HO{ 4{6f2]AD"_{NǼgqq5u8Srp):]K)nGxgT}>}^OvK\2]mȩ>RWGùtRH5ޝ0sS(omLҳHLLZqw鲱 q|*9d~oU SĞk"-iQpyMȸt/}GkwJYjTz itZ/:/I>d~x?qRTU^l#]?^ bNE2eSr( CI0 (. Mn/_cP ;ǿfLr~4X 餁r$}VUtTm=0?]:K:b#/9J%8 N(6wqĞ\T,tMI!`/ >@ i@/ (ʀ m hڀp 18p0$` )Z`8 n;</{ E €|h |Sgƅ[q,b1& ?qA~UǡXL_@N3T撃L: e=P(@n.Cdtpи/S@p6dzOl-H1:c(@<zns>iռL_qa3hyZxDS;ĂcC_iXyP_A9k+;˭H]t֑rTzr=xՕWw?fAc.4LUGN{Hfj]Gd %]ý$/hF"Pu./7l3&32xtiJzb 0*mz$4דF@?8R&/uf# ez#PޯؖX{eT'iҕNt#sbVdvpZ4#_Tq=A{Öu\ls132t,`NzNXcRmtNS^a4w:HF_0*x SX0D4ZA4? 6YO(ӵ- "јg~, !Su0E9ƹr 9ZfGCN&tl%"dw{ҍ-" )R]ͻkF28Dm{O;mVǃE]B8H-v#,IWr12#"4.U)T;MSU}5 UARD. ]P)RBDJ(.(J!JU Z(I P$~s@ߜw& 3sS˄ar,~;Iޕz˜뢟{mYX&0|JI:U1^ҋ췷<9-#lFqۄ,wc!M&w$O<ⰵBbo{ZԒ{4a&êd9k3o/ݒ'ޤ϶%Qr7g݇^y׼jOGWj/٫ahwbnX63]$WwDܗ"OW{OyǰNʮkəN\ԱaZ2צ(†sKYXmk$ ,MAgqZaCQ#= :rC a1 3gxNvf5?~?SoEKNWP ʾTh6z'ͿB4 )FRwI .AUUE ^=+?3>l|ߜgt}-7NopR-ga4 ͉c :zOVS Kpp+KO2[ [5_j>CC6 _;NfNr'/[>\B6H@3iE$2$t$Ϫ >ڟFwt$?I.{GqĊ?VP!2[Xg&(W*4$ b ZXW{bpA{>uz7btػ\!ַ0^P\X/U3M:Ef`]?ؚ!:MpCCS O%=ejX\i}t:e3W3%T"ыdRF#O=(Uz[M0~w.Ӈ"(4/֣MU4Lq'<؋(Vt+A&1^U]#oWfS hJ^eV59u 4̾5CWɫ|Y}jdwzlلgG 'UЗ?v3椣XD[٠ywG֢zö'`@dp諠aN LӯWZEk3n5]N9bVe 5&eO㟜&~Qц 7 'b3Zr`,%/ ͇1*<\Fh+&y/J}WcqݽS;>zD%gX"2L!Yr@~cKD<Y`-`vp[usuA<@n2 6YBJsx] O2aen o܃MΜGsՔ?%XppTĖe+QZQ{Ӽ0%oᣠ>p<:ţǒ.-Tg^4O,4oTiUQ{{yEnh))yPZDKP?HiR0OzjCL(Şds*$LV DNe;Nvagd,8R!,O糯C*s-ְ`nic*swMEҼjH|`j]ҠөSm6u5_vَ)oQ|~PW jTEl][ᱳah )BWӗrfLPX<1-Zt)'Aqc eφJ^ݻ봻!~G2͡Ai&)u5G*2 hNZt! ąf caxJzdžQHA`"ܥvMs%Қ" .Z~H͘TWgvF5F`5.^tP}]C߭%r/{K= i:JI&ÀդϺ++*~>ǻPywj1g|C#!TpxrC2/3\ܜK;WҪLڅNcJ|CW~͂=1# ,+v'tiyv/hIi#OQՒjBQ&=tU ).NPrfX#[Q<|#D~)˲d-w Ss^?A(Yd> PYzCy82iksL>d,,M^YUǭ}HN4BMM`P4`ٽb>7]=sr렛Bf:QKËF ZV fR7h)͡B Т[ *B,;L* B& N"wjaųdyѢL4܉1JޞF5HvX!"O#R:8# :v[&H'Kg7o$N +)I'bff;6Pcaŝ;Nzc;eKLJKBK 5FRY| zg{w9Nh60 Zsʹ&WqpЗno,x3w 9怼 1X\C2`O̶8eDSzaa DQ$2;t iS!iM"ȟLF̝L9* hX=WDo?tFo-L>6| Fd=7aR\apPjYue4.d69d A{շOmϻu=3Z!?#g5>>hE~ ~|ֿ||vЊ@r? <~S@ <B6 ^@$^( b8 xD=@i@:dY @@ @P@ P}Vv;zhM@=mڀ'@'@+`]0 0 L 0 @/ ǫz X6[TG+AR{;Ntiu3 {^Z9onnsAsaƂoZ>tGQŰwjvwR!ʲa5ynW!įC_|wHIVEط|+*.?, gڥ2ӖJQ̐XTX̱i R*$7tKy~]„ V\{2ڢ/hxSj~7+ka3TȦ8߯fM]Nt@&^Ehk*1UApJ^ ATF'v$<ϛ96[2Ξ_GHoT (GrD 3a5n|DZ楜V6TAphD[p+9Kevs b3y}"0\mxVm}Y.MJ">'θ|gm.x!BFqnܶ4Tɟ~JX?vp 7+pCq^ 4a*,HV}`Q-,آE%g˂\mt)R%4J˻AVM  8pUSt2z~1verɋGI-d e [r]yrBU*e8*+({gϯaţP.ͳ -%*1&]/$] ͳ T.+i"lݒ0 *_(98(\&@L*=\'{#4.=N#%b)툺n߹;cM*Da釈z2Ph;S /!Xeܖ7zK?$ڛJǗEsKB#fm4 Ի#JH/'z46~aΨ?CV3Wd.]:xUO&cHTHNoclU~=P2NO%8oK?#Pr+k[Ӎk94O??}^q%߿8"ݕWz1b ڨ>ÐcClؕ:I{1NibKX>>+1:w\AX@ 4%~J H0$D.xEPu^G=:>MQ@xU>XIƩyuGWm&/=2z )ͫ"]=MC^~:kߧ[̶W3oؒVǼ:7)7Nww-2>p(#Ia\)RS)^H,->,b˽Q(֐{O=Ă^BoHF¸su(%t_V!V!&'?n}OB׿}<7?aY ?7 _?@Vzfhg=~ -?/Z?~1b cAa1y6*zL%f*xT,dĴxSЉ']Lxs] .^v9͛YQI}aj[&33K[7a a7,Pl+9J[Dr[! oJ4{SpZ9׊j2m>\+lt*>6LU\@skho/K,-'O41k9 Im(/X>.\ ̊5y⵩mjɂeKgڰrtNI+-L;p`Zǥ.|?ՏgCPd h!x6jwQ==olSV>iib jFǟ=$聉FUQtL2/l23YE5x&R (^fZ%n99͡{\p'{Q3Z0":z\+[6SXCDȉR5$xIYUvuqwv4P_?R s«?LE j/Y(3 秼U31wبOo5q®$|goߓ_΍皣w:KXR7Xڒo|7tSHy]C+ #~:і4˗LN}. c^ֻ w. L6q6%H^/Ta **7x6]xMݿ^c+^j$xv8hy?q& Ti!r#+ۘXoS˫Pj.w޻y]cgAHj"*:D:1U#ܠ+yzPOF Xٟ2%+r{ljS7[R1۹/_rX^ڼXJs\S‹!HL˰eG/flst5r`pri^2#V)lsd]S= W$qT~fKy/IX pM1`<8BhȨnԀ=/Nf xk;8.a~@6M [q`+ y;A+ Hd  "(;@P6z.@  !c``XA`XV5`l;{8N=\8.+'8@e6BP~]sqW9S@`wXԆ>lъhݐzM)0w!t4}& ax)Ls0D`JeyZɗ̯D1";xm{UDI}]DDL%,Isz\yi^5ɺ_hlA^[E/A ImJJA-nX~W!ZNf. Yh8,ĕ>uH ,nucG0Utw_^yFwjҮfG3%${ R '݅J[)W7*ΕIViE@>[:;W_ :+{SF295=lv ~jRU(-5{]k28mNMjt3=B"%ysS}αp(82EQA4BRm(raAEUvlkW/!I#m 76z_qȒl~~SU;3wCXۉWGo~:G. Vݫ@g=4 cuOIי}ezd!Mʶioh ym3KJ~dKoc: 3]kU[G2humMLƧ6K7_-{P3OWd>,Ӟ՞@.:"TE+_J k;@ЇS>wa;;rW/i;>(o_?٠˥ 9TxSU+utzsbvOfX\FsxU0IDݩlLjwDי >/gz] ,rohibPSyj RsV71#Aq5i^,h~]lJ¨r ᷫߩuiJB;j`a{a}5 / *MAQT" e*-R((ARECB"=hWݙw留ߜg&9r?<ܦlU;MjN+a%q+MV XNK$+,3'N"ΔXu^Ы˖I$]92 fF2|w1^\^Dcᜥ] `גc9{)Ssz:vY=sA}AI vb^^Rw7&5i&4MI\S:eZ r:|j[\<.e)v>Ie ՅWK9&(I͇Y{n OqJ99-Eu8HJIp8l7C^* "<{ Gg-??>zDֽ¿t32Mh^s\ɘl537r߿bzPy8g4Q(/7͎&vjjizƃ?LڼPȘYPGC-v4(NKIIcTYiPd엷ǿ}5N~(um<>ur"g;dMNrw |A^Ra5Aevd1utw^;X$g>l!ͦ;Ǒfz=m4㲖,fq_EDH?09UWXeU!m9S,VwR4ĸۂϒ>Ԉ`j"t\Y|-X{df"%ES*[12d<`="cŜBwZĨy޻'D/rLSzEyӝ:c!ŰCmlIz-!C{ +"=@}ڭ*if)A3lPD UUC??w||qsn?уV2s|}k|@Q-3N^l*#9/Wy\S2RKJtx(>2soY4ڕ}(=:z[Jݞ<\ޅ4(]x^̋@ 3sD r fUF#eۼr"OO[ {INֺ%-[ 48J1a4HnG޹ W{>?y./0>mbNM1kI7K䪳q{#pɈ\Z}P?(z ں%~h0Q|*T #a'HBOJenwOYhuysn׾;(Eࣟň?K~͊g_G!%F('/ޤjnHM퟈!gKeD);S@=*{3#-dh3/oFnߙGL@uZ*U/\py& _ݣQn>yŤUl}H`X}"#ϏǶ,^EVw#V#)E9O2˫L1#.Gq 59ka_ڄ1Tw@$ 8~#A2) <i H d"rT<~_.A)x @9 J@5A zAh-hm/tWt=`޽` 2`P<[@c`Li0f,96@X=#XL @TKo`{?V13{%A` T]G;)/5Y8ʌҾkN8gwnܞ1=twxS1ꅌUT:I»iIkn*m[w8=W;OHT6ޏ[Lx2%jz5O2N@1_r8Fv>ۮ'KF/o㏿e?x!|/?zmog7|9wA! p"A} b Ă Aڱ-7v/&'۔/KN V>:ljK>LlbUJ\,J!TU59k.ўJjl9t,ocyC- ig|=*6$4*SN`/("5>f- #S\-%jg:$Ah*0Gnw hގX3P^Nسt;-##U8lrs-S_KI[o;%,+!]φ* O 8g }ThͶXvy^.ypVxE]Q%8F7Q%F|Eק41_֐jfu~2bYy 쇼җKћM&`M2fY7r%  aƽ+V0B ˌ?bW{뽈۝|*GA?LWO 仫E=ZhxȚCw\f_,ô5ʼdV rGIhqv^1h׮ᭌ1]g=U@]wG "TS9ro~ybU˱6n^v㭄H'8sPAuڜK}t9rZbt*1OQMlq@p4S/Gp֬;=pfS~B)! tBeb^C-ub.{C8Qk\oO2en2%ߪ{is<3v<{Rlb %9QXޚ90g?KUk6njaiq&-9WfX3_N1Zi$YW-@(!myfW|tό;b8As|*бjW$o?}-Lql0{縯U#E5qQ `"DLXI+6B =Xgg67"7 hRVEĽg[^RQ6qr{lE>&P*pg#\T!!S;31;&KNd? -Uqf G~1`CV*˼A4n"@o@!(>߳v0oˑK'n:1Ē*YVJG:lSl ٲAɸmed}$?ػpӷSg11Z0"m2!1*$QNKP4Q,rd0hh}lョwkr]?c;</݇2b. ЫظRt~ͪR1Hc-_sl *b&yJ= &ڌ0yV~G4\c݋Xsixe@PU:WGBbE0DFz7{qqA6hb e~IylGk2gb~nd |[cz:jw捷傩Eh"!b}-Oլ!'cn,WUE?aȭg9B}-CQOUm'܈# -p\RȽBv !eƛՊT7ɚ}S!{{C{C~ y5ӡ|GsrlqTFzxgvCKI~Cڽגa#-Wy6}]nrr<484 M vNXbE0XHhQRwJ%է9yHMvp)Ȟ{ 0TCr;F;H\6Z{<B%LQ˞2~|w[44Z.{LUڌƗ4 ^v ei3]+dO:Eld{h]Y[i^6J;6S[l12\q9tط퉌8 Cvf x?kX2± {}}Ҳ}ըil񍎍zXH(L+wIK[M򃾛ϳbSKIϔ,UH*B{N7;"M5bS L .atP[REE4B_I *tzs׉MBY"_$[џ/ d*i4T.ol)hTlEt3ȓq]Bګ*hL-f*|+:̳t%) ȧŠR3}bYN6],ؘo*0Dש@VCϦ۶#M,9E3?wjO B[uW?V_'-!~˧6_u*#JV!CVL=|xS ֽz#o#Fm~Jzײcnn`.zi%Hat*8jszyAwC/<v74ry>\[1 1bF.A^˄S#=騞tǟW N 0V!Kҋ&~.WY `uV-Z6P Ͻ/h Usfحw\D9[5<X}VTP"lcSxYvzӯͮdKt 04.z5k('93Ä<`>o*Şˬ:g6tBu(S?7 ;K#0.Ttm%$ HR iNΕN1rw'veuUpcwe8ĒD=XaҒ9Coh{<>37_tJ\!P▻mDZo{b0G귱Tzߍs=-uTlry69ݍkbV<+DiY.?|iZϟWnXlc@ lA@DQOgî]C  ( v@Pk6z>0 #& 0f^`5-h X|:c?8pp08.+'=pkD@~ 8 8'  @Dkϰq!>VsҼWԢ Nhﲋ W)!h1m[1bu%[pH|ps" ҆Nk)Mm|!ϲ7pdI's're`n,ݪO*dO:p5Jуi1f]?ef* ɳ^@#[{H:e[ѝ%woc օws{TDٰIU)'ܔG+(R\+mYvJlZ$x~ 珑tP%x_/bOˁq7{믺C|y0" #˿a Uy¨![UeNԄma-ʏ(#O,<0Yq`5:B%kFiOW y:# pEUMn뮣$yTr}LJק'm{XV!U4:| ?eG/9=9iHaV&3\JLH0:`Q{BcCyz ]AAH6b0lĻϋ(8r~_tTC-qLW`<9#I2Ué[6:!`hCT۰;Lڱ2oJb-ù"Kg_ds_#J:/g~:X&)LDZP«<a`SF^'+FT%5H)foE"Šs40Lõdg.Qrw bB? 6?n.E+/͝8rNhM^ZX~,;{cpj16XSGK (|CL֊ec1? XBQm_w= a(U.EE,mrrN_3hw0M~N^?] A-1%y Im%rR1m%rΙIB 9|bÌJC9IDۢ޵׳o\5}}Z{QTIHCLʈ鎜M0QKUG=ChqovoGF/g7TI y#+Ǩ/-OQVdd^_F OG7ʰ :Uܴm7fq!*(i:5k`Lk[xLA083u;L7~3`B~Z/||Q0D`?ucO//Fß||q0"~~l֏KEq\й)RFv=UH?ؕj+W'#$&D8YSDREsGja{iz <,PQH(s2#\[*tH+Iwb6;SCrL#_3?n*O^8zK.VCxJC%vFM\U2Ǻp,3Ka7{rW!n+G{"kYN3YЁ/0| ,Kw` (#uN}Dơl3/ W`w,߿Wh<"ZX Z#̋ԛGEAs{/X6[nZ258 oB .d4M-yLKy?'+Ӊ?F,5r`7{ǟQ P;X9%=}{KƈC/6}6(\ws|69Eg Po6 nWE*S%7A(.o2e]`|o",=NȾ%vJ]8Y|y T͢-i5eVt&8N[Cw",R|-YA]FD^B5) 3%J 1b;*W!v Ro-[f{I׻0[,n:&~oNbGDG옓Xw}\ aƍwCtYGLk"QlA+eい[V43S?*6;݉eJJsPXG ZS7}U!GB. ,) S^^Vxs:ֻQ*wڶcǞ0 y.`s^QzV vo|vLlt:fdILQ[uKol!(^Kv=4 1fc'g$|b!NglCʓPa+ BP?)rg\'vk@DV>ͺr3J)n{?)}7ߖC.i+,ZO3X\2sv@kj#n2Z9 Bl/oFGIO7l'D\9'v<)gucɊv1q4crɴ7d% iJ}s6%#qZ+4&9Cb啑g6{vŖl f5Ẇ^B^W%&rysaEsΣG%,8!0فlK/'U!.e$|D|ZpUˣCfߒ.k)m Vӿ#љW Q]ugS;KHK2mͩ+tW,.ek6v$kӥgifVP_yg<+CWܑgQUu*DwWOYן͟?ߔ0:C~]^X@?F'z#ѿ!Ƽ%7_ݘ Z6m^f*VJ]l";!_|ĒiKz7Jh Z)̺*]0jwK#[>mЗw|E.' MOwiFԠ8@(K?rĄtd`5MtOG@^)i=YO-vXGuN 4슛E}B "MfĚzXi !Yf@S+Z9[WAP 衿T'=|vSvx^42&n)i,Ib҇>`9{I4uLV7M٠ht#diknav'+T3ײ(/W-CD(MhLy{$Ryg4UW8*SP-')C\ WUN lLwnk1 V#6%9):aBDDMM4\Yp ´}$TZB+l:(G6Plb=$YeBԸl\RȻ|etD.ZHIVyԾyGcrb4Uʐ?B:=\q3?w33'_byp^KV95G^,ǯBry%m#-.5ԕ3V5ߐf̿FQki /`h+Si(j L W_Kz~C9+6OdRȼG^q#TR${ebbQ[OSFʡX\[4?:Ho|rqmL%;wΧS;>O5J(N"zbY- #cY` GEmHdIvC"~_?z;}F! ঝ-o+(I=n%+,#캹יih7 AfWIUc;f<iL?_ܘ+>_ʲQgT`ʢdU-+^pަY3g8 /"(FQ{vGѽSIJxհs#74s;c/-#p 8o ax&mT_t|.f `}Nf,U5&}˻DM\DU%ҊS7=_"<v+JlQk|וU1-\!hQ¸2ЗNo_ԗ9;wQNs^X|(ݡGwI27|F2C ȩm@Y*k'G4&Q{xG_ƛZkRZJp6n䷝{V Cmf: '}28a-"m(eb>o|ӧ.oz5aCnOXވ2yBrrE0d@II^0zn<&X?3$S+*BMǤ۟n)[F(|\}^ZܥtӘT)7]&߇\?`~J;׃~S4liu*8l ,~nS#]aYvgB![,,^;r>V.+E_ѯnE1S=~{NtJJujJG5jb(bjNJ竺U 5rn%ܬey /V0nmꑪh9x 04[5=adD߲KGChtuM;$n$ɲ ę=2Gc~IM %86abGڥM}ٔeDX~P鈂uUb7,M(E'Eؤ9֋ہcVl+UKK(zRΩ%}tmDZ{s4|i-:nqt_[:*RZHQDž쏐1K&b$FGQKgSk0()Lw8E]j}6{3왟@=x Zmu!>Kݏrz[@8Q(Lݳ;f/L\z-J:,FUxYѮF0IbI~%ô ˊXi0U(<`_7=:T_q]?~߿~\r2s*eڻT]"ȅeɼK*<ƷNe2~4kwg 30=R5(hs/_ѝ'U}QA;wlF\3{إsz7$m9٥+*ï6O+ g;"dӊf`D3䱟3xm,o8X=x6BTÓ%9')E2QoxPUWԋ *6J7"hOKҭ<]}V:^1pTbPO'["%Zr9&FbL&*:A2-# ӉSYZS_3R%dƻ{"=p FU'hP%X#$[co~fߘ2G-?od>Ajᬢr5"TEkln(gR3P+T{7x12ܛB,<>[J5A tu#ŅcEfT O{^[^(-a?vY9]M24k޲S 9>mèޚ^^0|.W[&2J, ̌"Hoۖ|F+utZ"D1?39oC|)QDU&8jM≋D#3 }ΦN|wܯ]/?CϿ7_b5GTZxl41UNq2X#7Qdm%guy="==Optob Rt,\ x[%4ߛ"^J߻>U=8ߘ[ %W`6qrQ ĪSgyLcK*)å}RpWhC,/\,~+eCV`FK?Dz_>w2$Ǔg.k@c* ^_I?Ԡ%ݥ~z$]GE6Gq7Y4@#S ~v1?_>a*+/JwclڀNqw>73 :(y"Յďym;M9xm4ed[OG=cH[_ |i"䡈RYB}N;?v[S:$ԛ(bXK&<%洤Q6h[[Nt8 #3|f\m]ow=lNݗNQ.DY0 mf7LڐldQ~y IQל}|4=7ӹMWqJߍ{-:L #ɞd zQ]-75DG~-֟푫߱Xi~ov40M w~wT6a|%uޢs5g9'Fa^uun;nbLذvj[ Ջ Q1^ Ɲ2c"(M<8{P*̋),;=7P;iy;~vB0wm)5`|nmGJ5-W}q ZŚih z9*Q=8g |/+@g*da4OLK"̝wW*oa.8Rۍg{ԤsTVaYuYW5A P D rmO-Q6w@ bA +_}<HZ @:d c  @>(q/O3P*A^y/ jsԁz^F 4J.Y P@; ݠ􂾕<`]~M0&i0>Y0|_X_˟Uî{eQ#G#mRk'&.TD^l?XȨ>ɪ*sg޼[3.ƨ(̰YMzCCLkIk*0$\DA^-`9h\Ƥ^MTj ƲFD,q+eo%Ģez_Ӑgd~k+NQeD2bp [ޞӤ.HzSwpsj:& .D R!A#E 6j^"RT tPCJUz #H'H=z߼;q=kΧds'gw-]E Q o޼qڣ*$cfF&t>k^yPl$ iϰa4•d *q"t0Y(iDQ s*cXqsW^|I=FtW0aIiYUA)?듅x: 4M͚2!ssMzC4y,puX0qۺ82d`VdA,Pۉ(k6ͳgzyDfBA43r<ivM 3,3N8Q5XJ~i);}G}& e5qC&[7s7i9rfEFyo_1I-dڗFsU=FW=#OGP!b-.~G4]e̢X IO.=ݘ=J _D2hL%;S!T|c>:xGm6[Kg]ǝ^΄'x-<1̫#73G:pl&W'"K Od)ن:v 5ˑ`?z#m꧐.B [ r4Ӗ {UuΉи?{?`>?G _ DMC? qo"{7O=ߚ̿wKw\De^Q! 3YeddM(.agѷ:#e'I"ЗQ ɖf+ )H ܤ.HJ:r싪u=qiwxw8ݜtY Z(5[/Gb v~ՈAuD&OQCC!+bT ̕-s{G7wWIJc{k&=͍0=2l_*gߑT'.z<ڽSDLygr"~_R/0_9O,|$hIưFKjx{c)g]e I! XBFSQsy'&5oƒWs=Y]WžWyPҠ5eܔJo3jj9\54K.^KB]o&󺊝a |뢑/t"\Υ}[3|3"8lDJ݅'VZ,)ts F,mv&kKNMWm(.Z#ShjfUFre`n"a޼9&|y#昝uϔT&MlRkfy?gVݪ[g+ֲ;ILw~ۧT.>ZPCTR)9h#B>2x?{}|wnwpKB#_UXԷYaR}1;'/+W1k(Ũ=quU\[xjRɲZn3{MX1Y0KuP(;\QKLB*{y2э]-)xJEIk\g׎^e.i kgqKkNH9xaN@KF=. v 9'1k[M,l$>6rgG PlǯwE^GEB*_DUQbĪh@0 `X+v=K"Y= !`/DwD1 $I@ dC, @P6%c 58p8  @@Zi ~SD]@8y00P9`Xhpۘ ^k{8WG8.+m<=/|,ښ?g2Dg*81c*a Y+Ÿ^#q=$\n@#-`;۽jH'[>[:^#}cS Ϗ:e}EC8tr92+.>x'BܣĬnmZ('A4l_{ȯ&ߘKWOhGxx n"6Ɨy8!ܜbaAlZ}_ؕ1BW5ȸzd{z1u]>wR 6d4זw;z-)MMPelfJ<]zJ7 Tp{K)|<5o|nWʰ4H-U]*냲z$D~Y~~^n-iP^ȁ;#8LsVkC{l`~EKRi$= ķ$gGܮ!kb?YJЕ nH9c߼0sQ :n[]| 5 ɦ>96N+񤻂]9e*W?yxʣ$Q8QKwW$k>̞@L Po].ӻ'.K//gD/>B Pg4WgiJLnЅQf}l'_2}vMK$`zǑIr#)Uw} e K;U9@Fc#e&H>m![Le/J;{SFJvg3yf̥<}1DYZ[DfټyJ9L')ڟUBhV]1uri1ad= ~ :^9.v6yak)ϟ~78Zd5.zƴ3cHV$ビ5\s{6dtqY-R!Ÿ9*$R"Bkfn*`Ey/U*rS;,;篷0ϙlHM ŞKL0s#1=j]ʂ<*Q+X q:y<$Jozs—TL\V>2([KBjnJ4[^u"ԟ20[XJncZGERP\W3Ps1ΡĺXWwhW:U5;N=yO&rhߩZXSJ(=9ՙ/hͦd;gKl寭O_Q=$Z["66;yZs-&![%LYJ".qք@KN娣XEU IwyV_YR?ew1:m^'n*~V=84w%Z8$pL"Ng}ekƎxI\7Z$wsҢ.Ǝ1*^o_{*yiY0'jݻNj.]Y4|$QŰΔQvyy{yAK>Dy\> |@O]vr=QBgo!:io:"sX)M8 v;ٜY ^,^'MB@iel_08ݻlQ՗cQI4hJ-KYKR\Wuz4g~+$dbɍvu0PF@z31 C}8MJ'o/Nl-*^ |E'.{6s'?D6Ť ;ѵ).L8_h:#MneV$e@kl9Mv'_psHkH d, r#gO@>(( P @5= 4fZAh/+:A=m` a`k i0p`,|K`~Fׯ__$2=.)T=?k>TzMqQKoˮ 4ND@ztֿFkcʅG>U.Y3,tg2lUD^HmnOo%xui)n] Lϓj>CX(7egԵ" ~ \CIo+ņ|J;sMNPd+ssx2쵩(:poKӂ I゚LXkŞ\GȋHd#ʛ`ֻv:w7z͚+fAߘJqqY8ʑβYqw.?;=$-c*S#0r(VYP/.W-lDoV(}YtԑZ)I0SJ dJtmھ2ITE~gZd_֍~CsE_bGĈ2;z+8#k2޺_~+߻~BU)y${,XAeSӌZޱqc]:Y[jQzeQh}Y)Emm>z\zaaHkϖ"Yꋇ[x__?_?׿h4{~EXI_ǖhx8 9;_=k@U<ݧ5V*~2Ф+H3Pgav=U5LdvsV)h J2ʱF[6h֖:3n-,_KN5_GHtd[(:%}2=tĔyЍF 5'N܄!_8,e8=*29Bro ͑bj>ݑM}'i~f,;bў˛9}>-P?S)%RuZ4A}}O~L|Mį#/l߬c|]cD?RʷVw&c?urP|_\ JD~Vl+jEF%L=<9Y <*挎ce 730b (j*q>ZOp-Gc9䰈uD܉&džh9I6\5 yl蟚*OFXC(gE{7Tv'9-#O\B^f,zo7(,*O=ZهdZ@@z+dɩ/+Lf2]8fi#a`061O6}>]9eu_ݙ1M"ٖV5qv݋ Q,nrM ν㽭īΏѧ>aW{֞pLGReUߕ:ǭ]"?VRĢobOGNU0~*zwyDSrrQsc0\+w;>^9#(n!xV-ò:7ѺG~؏ڱҒH3Sq/cgyK{"-uUW/3ĸNE-R:YίTmNK$"7xjIՁq&ǣ c eW^s͸hEkl\~C˒$&oǬ>'*J P /m#7uS8'G2 z)h}YfֻϤWw_;k5@7E)|=+잴Aϼ@R'ߏg͝yŶ9kT51;A9+8jsx>A Ĝׂ,U#fŽ{8r;O}NKۘH=¬57ǘUTD+>ދUHW7ψ=]Z^Yoy]=Nh/ߪ"#ǎ|]o_*`˧JaW N@5VgΧ?%M&HR#dxI8`I),.vt7,ؕى-X}zW Gٓ}LObU)+aF,?Ys}^P-ƫanPYE}*H3]T;I%-mx^rY30 B RzIX*/4 +ԆIT952}0?.m`$Jn0vUSMB!K9W8īzӯDǼvBЄ) zbc¿n1v~q)&ŝPkPfqtlF㼟t.WNϩ?3|_kI!>/__}V: ~/ׁ F6` l8N l`z ;@ ` V% 2~@@P@P @ګp;(`ƀ `~3p7q8X'+l;8> ΀ Yp8>  "  翴6$QŰ@D3.w9f1pyX v3S0Է[ǭՉ?^ 3g{ꛞLkӋpq^=Ip*ѧ^m-oav |h։ 3CgB5tCa0K/nn =Yb\ * |OJ9dl\SnXp],gԾ=L@f7Sj5s?sSs[Żp fG1gk(UqdZ7NN4VstMoJ:{f4ro+}`!շSQ$`NaOLVem9s=%LQ.xJ ~4Z_ݗ́13~vqx%RQ WCӦ>SY?uY4J94ћLJ ?W>>OyZ@. ۨŎ u*vDx4]Ԍ=rʐۑiZ6Ȫ'CzaISUfq ˋk?k,X?^?SقtFi:_7=SE=>'?/(Uo M)zHw7E=#78_B,c͓m*^8p:>5zRnj{Y2+Xd5ʷl>߿\6GV\lŪҠ15(98>q/Y иHdgx #Uvv.ۺw|=9x m+Vs ] 2zf0<3=iN%lPK3ּb?$xػC%.c?;!k_>u~*wu !%a6޸GջxL%VS siY\ktNnxۑ0\~2Ms0dWͽEx@S'f$ɂ!+jvBvyV~}tBM9[/ 6Hm1{j`*Bɓ8=/qAv1Ma^N6`ck%C{z.i`(^qyW5~~*6Q1=TI}Pnzz@܅z -2-zúljɽne-ɚF6(|S6K9?}͝6^>b@h9P; we&x`җ/wb#:&;'$3$sH!<慾V1"%H__ņ߬,bj#+e繘zܧQqx1Ԑ|٠_YP=;_IO`]IٜF(iDS9z0CBpG__Y /} ȯV_:Q X!SW}A?VYCЮgi9[?2:6r`3 6s7hb%І "HM%D.N>[f(q|+/mov4B)4iC/%O#LZ*jy/- S{bi?cu j}C{=tny{c"JSy@u3Pqxy0$2Ucӯ{Ɯ*sRҭ"Cvyn՛Iu W diƱkOǺ3nh(e,qeldqo`'Q#dS^ZśP|7jb+W-Q^n5E~"ZUwTͧo4+ZQ_?(<-opγteE.fIx[Uا6m5۴lyyzrr8AI2gh"6ETWS$xlUf7/cKǿ]#4Ø`{Rdzv`vHOL0o}l̉@QR]WĎ ({[CY9+&UȌ:][V}@|Mk۝]i&^qGdpZD._uvpz㥑cO,ΐ:+K{1l&)v,5KԄ@@R::TŒ.wĶ {w ?:J%$[R^um !ZHLBLִȾ\!;! JDd!3!el3}Ͻwypy9?~Wdr}kv-`Žr5 }([=d>k@ ]o粥!Q33O^$dZKQwS8+B#5i],r.:;_{7U0J3rDm;{A$Qߟ^wd?{$)C3ET2 aU*'UR*ę򳂶3 |c篸hĪe<56n@7XJ*:1X2Z8W30)ny3F6vƳ'äbW6fbSL,^޳(<[h:jJe:Lp{#zُ +jv7jЫom` ^\S=oGbcnADCsE\3,bOkѬ^7au轶)ýmY*$iVhި39f/;:CoyŻEK+% ԜRɬ6uT*_^֏5w:|sp3sElW ,"E(Q>ޠ#\wS㏰N ޴nm\TdG}/J!@4h#1MY' MgqgGuBb^.h֫-(0+t-ǢGF⿿ڠb'6U+)5W.Itҡ>l~mrÔ}NEZS#5-+Ǿ0Qt;+wI۲ j11NHEKWXIL7¿ukz[(B^~"g^U*"P:8۶(⮤ڔ!ilb MKQ#̰(lH10O"Gr4n)0YE4ȫ o V(D[ѥ[^\V߳>$+ZW5yCO6E,kB'"L{ ݴj^tܚ?ԯ?\s 9_e@'aD'srSqHvoVȯw?C~/&nz챺Y Ӌc 'FXu>*r=$7Dl;$qVY>2M+IGN|wNp냙ae*r3ϸёvwgay(Vէkqi)bY.'iWuRLX2X#kHA'>)eS?%s]kr> y2g$T.]")IaN:!5JL{53f 1+0#[RAQ%я'_Ǡ|jcc:of8` {^Dm}<8ltA@ֳ5QN!? . ?P:#=3ׁY@@u_Pϴtc+Jchjq"zfbjue;{?f7o}ޭq̠PafF}>UN-O{m'(֔ITEnyV˳,ǽf-58p+JN s _Ye`Ӯnwuu$mZosN8aeʷr҆>$$teOz!Ӊ GIP ZWa}+ K55kb*I$i[%@Τُ3Ӈ^w*x%b' ['Fa GNJbdE 1X;ٚG]p$eNm v~KF*}rgysnh\10<"Pk9Nr<\he1a/mcaًgf\&z}SPP2[V2.>6q-}t'H|ꫤ|Yf&'xn\<șt"_!ܝgm澚3WyiE4}Ҍ5Nmz==UgS[kf;N0s57vdKY;k~)5\)׽%6אL9G-'x3ߝi"TobRah0z F6#[djF岡S KEgunuWf+P? [_iZW?E̴ZtZ:~VKƟt6i>[g!Qb;M>nGF&dEjRafojO쩚 3>N G rn/{\1NEvv3rhkt<sγJ> = و^\nD+Ocu(pJƂn(ut#}\I?& E 2XRJR:Зs8o8cMʇM]x1dkJsI9PTM ԭZKbJI;A}:,E<}_m$E9%T(%9RC0""˄ٷXZYB0f cK}yw999{|{}}?siR +mw~؉-85z[:}Xso tD?\\-у=d SC~]7]X$i/;iZ<XI/..ow( T^/Ҫ;r"k $Mh5W"/=vhVoi=hP_HX.f:H}wkݴ1'; Zt"a~'AB/_=>-ZveV,63ψ/C /2_ VUңkd$)Rbvނ>󛨐saEK\:[^p ]cOL +g3`&NS!%tCs%v!ӂo&*x,7#! 6p8O"(Xcǭō^#OHJ ' ]6uy%͏xToڍQ1iѪZX Ϟy-? ZfLd62ݩHNRݏm;f-&nOEIDnxbEWb`@XԃeKȭ: -!'77?Jo"G3(=#~2s*|Q$3tp|~fI qadlJvb4֥|.$&4iV/Uh'l]1rcuFv8!^A%xWSAΚY?k?Ф})L۸M%*}LNa-Zef(Jac_"Ĝpzݕvo&c zH>Bx#c$Aǻ9 Kmٔjg`n:YW;؎S-,SP3b+n rs~8h"pd{9ӼL}"%_?3m~{-?>h\_?a|ocm?u~SX?kg'+7ɺNܻ􍾙O %gPo''ywp#9K<,CGRlbf{dFJCv{%ӸfOC哮Nn6{aABLݣhRuiT*ꉴ쯥kaWq9ph[r״4:bblSm sw:+0?jk/?:%ț .)*JEIs6:P=tx_RCrr%QTt~L&_rs(1zU{W"zv3QRi69T Y|efƇED|LRSoឺj& Ւp[4wh5v jh4 *̍ ʊ}5 48Iw'#B-S"kmSs[`z 6(e'K  $*/c薠긻0Hv5ɒ!{Kq1p G"4JwX({_wf{E:7/X1:L*ɘSt:WmDɈ54pHw"۱;FwqC!ɛ3F&{<3".b2L@d@'jϼ")b,ԕm8Ճ)=νoe}\{\BM_pFuWx"yS!-$kbPQ,z4((3"JfB-@=zg]'(#Hu}21f{S7=='o[L{p?i)~/f_y3dbvϹKgZ-|5m}JMMo{~*^RL߹oz7K9%~1gB^l}1fn(JRe:moZz\XO="=]`o :+[|8 c;->aEG7ק_h4=Я((:^]×HRtL9O9z ߁p:<ޏ;ƩH/:tt ,Ry.ZwhrOQuߺ1]ZO\X\4YRf7p 눂A@BapC#@ bqAH$)T@ Ȥ͙Yl :@J2P*/*@5P%h_^ F@ h;A=> `0 F:?#`0Si `0P E`iUf'5r !ʑcNN.j'ta௣ 5vB/--CxгHtɕ;xyhIonyp@0B롋|l``c(a!%$J*/>kAXI0U*k-K t,`NPYgg[_L"1 r%MٷƕzM;Ȱ?xԠ _ ۽e'c=wi& }{jT8?ޥ?-&?eQڞCľ9aqO?x"Bo!S?7h>̫aB0>~>yΣDqcqRwTӵ8Es^\dzOID";cu*7mf~/Wstl_a\ΠԯPd<*ר^a)hU8eU05+tz^%/U]@±a)>cDP 8}PJG2Ŭ0mte| {1/ViS1cfh]aGޢvkp0HDesm"E>';17QSl$hF+JRj7%Jmڎ Kʬ.pTg^ܔDY ЏHQuTUGabHxms~yL5/! Q9OεpTSΉ`9 (RUE2 N- Ô֩I^^5n~?p^vH҂ۭڳ1Fq[˿ٿџ?7Q_;\c{2n`N;-xb23vH4J=o8šqz˘uOG}뇣*/oUCE4TD'KcLw&+lo=?Qز>dS3 FcV$gV>4HT1]HTe;F$X6tznI+ݪ0dLc &P)S* 6fz{ZdLE;|ќVeyI6Q͂B@]!tZ'/EC=LZS-`Mx*NT{R[udYi>"΀:v~ ǟSN<Vi=v"*AR?ϟ4R8dҟpG9?^'\'8M?o㏊Gf[zKka+Ga^FGtS&Lةwq`_J6_Y7>c>]]Ys<.3!akD-)Eo?sڂ3f`   0`.?'mM`!"K,X  >$X@@`,bꓗ(;U3"e0m NdvDzo45US4R($\2oN*^(Ϟ5- w͑WR qt^HЌưQui~X<ȇFJuY 5V,*c!& aP&Jga˄3Y/ZLݪHui:'$TJ /jƚFRVo~Ug\koܲ ,2\o;-פBj?qĊ+F6v1nm" /^SVJR`Sj pjGlj& I'uIqR/t+Ku>}?Xt"Ϭ'rVL:VR٭Hh/5D{C*WGwvx)Tmh_Kf[pdu0 5{=j{Zs/F֔B^CwnD X(["6h DKSvRW,䢗J&O3qް&jL".汖uqI>TdXvoʹo5ۼ{qwov+Er/IN8`5mtsEeL5$YyDoO,(m ?{S c߱k1S?bNG~<'`?Q?Oe?S@o @FҁFM 1OgT: vc9SnRecKtTk@˱"me}|HnTEj;ixXd~Z!|5VVd럙Kի)X6HصK^oN/nb17tnjmsV~5o`9z[4@fU}<>k*[n|H8w3WI e/d 9/^, Ϡd>8vy&n{QQÙdr9:?d Q4x:d(γZqBy-앣'Jə^;4T_v[)9+^hr `E+IeI4Ӝ{'/Z^ 8\ZA\L*z6sZ$eGS,(_WʹC|ZNXX7}iĴ$!j18 B!>b{6 zg+NhsZ*+G_l @}7)VnRWv{Ay v@597Q66e͂$7b>1y)Pg.M>7nGTަ;Adk9!] |soD_F]zE뿷a<Sߜ$z%${T;d&|w2лEy6 Ԑ7% F.yPKתg@~L+3ZPfCM[{5ppLCrSZV÷",K;]WյoIJĔ{baIݵjq:o ZM\Qdg!<@Sكx[ \H)h[ˏ;mhCj'$mnujld9滎LmdD/o]Hӵvۡ-=v;$Wk<=HvѴYKH隠GWu8z'$tLOamoG&FS~ Cyu zybUae2Ί>A+1syVZW+[;CH/}VzoZ2wm]^B9c*z S1dĊ6h\D@rwԄla7A2 ~jݠՐÉ5eO1L9{]c=@ Mh[ Y4آmm->H>{KЦv%ރrAmeSF{j玿'5Ɖt'Zˡ` q?FSP ㎾<#K.0j%CbZw YGG[WdMmZ"m$$b(M̅͢$ʗfUXCzM;a~=aKCm}* Hfb@6\l!1s(n@}`j94KT3)ٲ0VfG cQ d-2HE8σ-=JCt(.B%PJ İzёN̐t{9"|Ftmtmtmtmtm䍿 Hu ^Q]mᕃ{Ƙu},-,z*wFzJ ƾ^ALij@ _j30&Ҹ0fa2 cC7=)\Pu`H q\f?1Pbxe4n> ] PK׋C1e npnuvola/32x32/mimetypes/txt.pngUT &`AXPQux %UkPW>% C$6 .H∂٭_b^j.RJW,% k1;Hfu;.b(A%6t}ysIe:oQ}ⵯa==4E^NA^)E$ jޞ|uZkNYrNc2IJml~Y%U*aFFFʣL*sij:Xagd-[>C>\v2D9Nf|LM6Ǡ@+u/I?x}^|0Pp8+&@_X{`{dENlD6؃_wumOH <6_ybRnKD8=Gp7|9IDyhWWQKT:6dSr!:3YA%Z?"Fu4*~z>O5@5PGXhL $@Q$/ޗ̘Mwja61}w0a#D+&4k!(iW힛ZǙ$fk-%8,K;:kha97X]At[[v^kMa/д{Ad?,#L5!CvO_3/nҿPL/-=y&86!>D+j[roB$y&p5r[wۼkF_\ҤTjUh^]KԱ^l!%A+8s~rM3W!5|򑓛)!u SzH%>8ѥELQ1Bnw`[,RD#OYrz߃b?v?5oA! wS 7acW AvoY~MKѯ8MP mȫK1Ճ:<f lV6#uC4SQqOv@>3Y0oy ]L  #}<iR싛gFD%fiMs4תi>*asD^F Na \ ?W9w渻=i9[Miq6 |l IDwhm ;p«dUbS1IS0T~W|V)C m2=9G_:Bb=z{J|#&g̨@Jӆ-aUF1qTu{{|&DQi=L2j]о )?"o i兇cONg2651?B^|[b_@可vvf]p_ևe;@ -ulTo5S% /VM+c_i{RzxPK C16M"nuvola/32x32/mimetypes/unknown.pngUT 0`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@C9be!RO1! @XC%@L!@p0t5!@,}B@L?!K @RX01( &l5)iT b #%gCb!p ! _@tɆB R B>fr % 1!A(ouLL!Bom(r}3 [ |V ( BWGd()|lBFJ>6&<È[LȎAWcffA} xlgĄe3lr 988z{{~ g@1KII@!N'9eǏKM@E@{@ 17 { ?@z IENDB`PK rC1땟  $nuvola/32x32/mimetypes/vcalendar.pngUT h`AXPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿8-( 3PxxZ= $@,q 1g @W2}ٙ9a#;Xdybk"OX>|[;w2{ Ң 2 r fff ;v`x apF . 4| һw2\x hc8KҞATDAPT22 7o'(9 !Ç ׯ_g8s2,$4/#qL.=ǰ ý[} 9?` d z܃4>xa۶m !! b" c``_=4?px%xkR Qc>>>{{{ ?~202a=fOX3 N Z" dE}c5UU>Gw @a)ϟ?p+駬 N?d``ƹ?Yle3p1e`apipg=4YPꕖ'o_2zo o22i030}b~oFl ?$$dfbw)8c+S` 0BbNNNQ`q<Ç3cua`Gv`tg t8H?(={AC 0@L0rP{?1Ja,9st,T?x+ ;P"d|)8Q[Ă9 t#e%e_ddae * *J7TTC\ ..Ʋ8 &l(@Ūq0L@640nI/+~u`6|E0r:??k-s}|C?0@*AAA,@1aK ϟ?%<8߽{`a𾴔CN:(aݷbjAqJ W^U8A l%1?̇h1b_2k*@,v466 ϟ#z z.@ <}th' -c`F`p_L{zݟſ|E(QB= 4 b̙3`7 \+V0KW^}JrYIYhP lyfLo@!@^-Y lppZ)PZ@w@ @6npc`) hk`оx0j^- L@J A٘ N@(k<_6Þ={e5ob"[GWASS wxs [e@X=:@rMq.l@-D R3CAPP @r K%2\2 CPk[)e8f9z@1!ՀU0d1~ı9Yaf@Cg;Ć&&&g@J^Pn@1S)P 2t @Y%{` (hBvbU a'@hwIENDB`PK bC1zi nuvola/32x32/mimetypes/vcard.pngUT H`AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 8 ZPb4?q÷o0A 0p[ ^ˆ%j@8rbȟ? Pk >bX6 TH⑙?@! k2pp Q 0B ܬp}w[~10 h00pK]ݹۯDĄ 5?~ ć_b.)_o>]Z=>P?? F'$dGH9k"8gd# :@Y8X91|CD ?eZl$М?@9eqH _|r_'ֿo9g |a7?0XYde>~ 2NOfohbEO w(`b~7çk{n:Wa? :i ,'`~;ɓ \\\o`ce{Q@,I{[g> One+@>AɕAw߾f_R urY@ @o/2\{Ƞ'pB;?NŠ/Xv0q'b ߳0Ð9[Ar?`?}'&! 6TE>@5>2Hq~b/_C_ 22bFO(L%"r~ceFϫ N3T=`a!>aA (-?EN|!@X+_2|hO/adgaZXZ &7|``Q7o l L`:7|X#{ PPe qoefxau60KaA;.fvv +Լ G!"!@`y'3}Ah ?BԲKhn&&Y~F V3Bځ@0~\b+# ܔv,L!l& ORHˠJHAKKB #@gfCB&Z|9Ղ00]Az Bʃj z1E ZF5?묬1b0@l_3 [wl@1 |lBFRwZ @LW $@lP) ` wс/A*(^`'H놁 O)P :`X+`z{` (hBv@M9O1?PzIENDB`PK C1A$nuvola/32x32/mimetypes/vectorgfx.pngUT `AYPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cg`"ԃ0+++//PX  c`#!걩Q D$@LqafccʐK2rq`UXz@ \)B9;{01Ș3,΀'q d1+í͛ҩ0~@ W Al6ϯ\ax0 o  Gw5 ;;ûǏ4409;3?W *.l&r4辽}pޞAa: of`0#@L!gR-?@ ͙ EDE|Df`IH0p\`t`=!G/eL@̘ C?_:`B#`"P` 0>|pun--^yX0|,%AN x2 R`Ldy~}@ p!G㘅89 &&ыĂ 4 ,@8F`tp1fE[9 h2>ge10 fN.>>Fh  )#E b S9@ @28E`9PEYCj*/ 8(MPAX3U@; l@1CA  'O{͛ /'jr(f6n@:70axqwE -%kNtF &|U0/Ї̠`S3)*2()0@gu s$!u6ЧҠV`:dm'C pE20[f_3 z̊ٗ 耿bs:Fv Q4+nnnyyuu4p h& nL4[";r rBap,ex@G+0p6PWS f!`ixՕAU~o>d4 `(\::<5ZuzI@X=:@W(7G2??g@'X@YNTO @,6FY1<HWe%V7Z*C~cIWlBFBMqT?9! wc֭5ћ 1 ͎ @plgXo|'_?  F$WKIIŘmNbǏKM@E@{@033A>Uv08KIENDB`PK OC1KT33 nuvola/32x32/mimetypes/video.pngUT &`AZPQux PNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@b1UUUgY,`ddLLL~b>v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠx ze,Ggaaag8,= @,|M@d)O?0}ٳg `99 @@ Y rfff666Ç waw̙s p{{;o߾ax`,a իW nb~:اdHIIfcx %xxz%N lqK Aׯ_3ܾ}ҥK@|gɓg 7nbXx)͛@IXX ~! @XCw2:t' b  'NbdMfa v% AAA,Ǡ /TǏP|Μ9 @KOpYÇ3̜9 saPnΟ?Eї/_C 0BZZx {@aشi#"0D899 #00|FXS>6[ &ee8\-Z{`Q î]{)e`ff'0())3v؁ǏW~"@8..n˗/۷ᅧ:D@<t`QL#cd1tyBYYY xyyJ@ _߿D[Z`ԂѠxze,'aY Xp.lj9 l >ߡg_|>'@C9be!RO1! @XCZp٠3$l0Z<( !߿g\8#A L 9#XXX={pQP GJϟ?^~ !! @!2 ޽y!,, |||`} ߂BnÆ  'N`qVxI,7 fPf(rP}*^Y> nڴa޼y ׮]cdaфbĂrZAS]ˀ _ɓ`ǁ WVVf0a8$50O2 (~ fF6v&H`ffF:&FH8wëWbcc69Z421130ܿwT߿0_p4899Q -XK@Gف'!؂ CPYBPE@xc|jj@ EϑV.$sd5 cĂ- 9lUQR/4 9[i @UF\*dZF7jٰ  xlg\QͰɁ,UPJ 9bDjKIIŘ`,N'T 7ǏB< d(A VbnA>ďv0Bj:HIENDB`PK C1bBWe)nuvola/32x32/mimetypes/wordprocessing.pngUT `AWPQux }TWL@AH0!T6[$loX$DXw TQLEZlеSw]W]5 (R>s9ĕ:ZF;W0s-b?kaABjܬFPg 꿤gt=vxVTORҩ 7)FGGmڴ)qԔXY]m2< 3#""SH%]T,5n1QPŷC7km7y aXC`TRv~!i.^>3W$l8UMMMIڏ3\[K,aWͳU-*UL?@X 1j7d?l)fDfedש 镲4gؒJ}mMq-gDv8&W0[PQ炑|md6[zɳGF£A~Adp>tҥ[ M1f˼>*C&Y"ӂprȲ'N꟞{OZNxa,c".Q!5| h]WN&tѢE΃7hEG&c7ke7Hrrd۶my/ÛFk&o 6%{R:l5'5ӧ_ >Ё@z"GC4E]$[mUϰ͛7ϑASޙ?˚ DNBrM]5Ո_$004]x+W^ojHBZ)BS ^ȓ^5e\7`}J+Z \K(k.$Mމ ٜ7`D[gɩeL'K\|!6:T˻'F z]*pOc щR@WNZI.^8|m4;ڬ>?vJ&ou)rn9r7=i LWF;?Xך`M}z1?Je8=D) S'sԣOBEdDi l~- %Fʓ#FFvc߿Pp7}? +oWz-͡;XΚϽPqs ʷo.B)ˋSI2Hgo *֙9qnlw]!#3f탰5~eLS+U60a_`a溽? V'lXyVPK vQB nuvola/48x48/UT  QFSux PKvQB>qWnnuvola/48x48/.DS_StoreUT  Q Qux J@gh7s֢UBB =XĈ liR{ш/ѧylS,=xj`'=&pPfEemƬCB7^xȽ .Clқ|x0zi}c oA˱-G_;}9vs7e(aYs&}㎔$an'[s?M[FM4YMf&Oβ0e͞_W4cΏټFGA1j b )й2z 1mse4h-:WEᗧfՔ PQ2b ? NۆD^+&np7C ^-tLX_PK vQBnuvola/48x48/actions/UT  QFSux PKDlN10'N #nuvola/48x48/actions/1downarrow.pngUT 0dnASPQux Vi[S77 pI@U+ $DP(.&$,ViTaX @6e8X;-* A-KP!j1 N/P

        PW⳺ZK*,3.8TKYb2 zC{8i9僋?t , ; { y%V=-b αяY(h_֛/q` 4H-^׬~Q">YZ={[/lwqYs!1Yw67M$@pyOwݷW " j9↬Q >7)  | #)99*h~0J{.5zV`95NyBUAPZ=]v E?P)8#qGU'ةP-ӵ'<^*K8b1|}t6^*n<)=UJCI8. Xٲ@|d  @mddAЖ&s7[u/0\^e-8A6e h+ys(~xOX9;Ox ټv9a<6Vn'I:60c?pGKt<"F|T7ӌBT/L= >,1B]W"Ʀ Oh"Ix`N?;g,?,DZ/)#/n03ON6k_e$.qq'Q/SyBKR\X`-NMy}NPccte=Իf ɹ*rSlo5 0dqhOܕpXN1Ң@zFrJX2p{Q:v8S5 L#kZY͞`!o¹ 43n)4҉8eJ%S\2Ty/Z!)O_>tnLFLI% :דdӁ#Ni1DAd)-fe|XAFӤ/>-}0\ǒYd9ӱ2r.HlU?-\[b git pVעƚ(ĐZqyD=9 /͒ ]/\чI]JݰU?2F֡E_kzx$^P~Ӊ#ːs_ MZ8u%@W!ށɺ5a'ΜΣ"Zߕ%_Z"\d-Q,b,PyR#NdWB{722#i=sq.6R`F؄Ҥ5Rk(/9.Z"ռ;W(}NV/I3bAC01z4z_Em˳^;cZV:=ɡUe$av Er59[yod9(Q,?,,`m۱OR UslDcc>ʹײk׾L8MǴ.f~K~5Yh~[bv({H8/'lơw_T^Hd2fψa7[m =~,:_ C7nʙMWP2{"ƒ6kvF-6|'ϝj >W#xlxVF W$!ET1-V/Q,1!} I-W(gC5@% l䀶4rH 3lI!I$ z8 yG3@ُh륝 = Nψ d0w䞐re[EwhcKkUjQIbC_bv=> s Jpf.g;zv3sp(:Nԝ346=++j^(ǞlyBr5anq~b?3ʏ0zfXYæ< ϱ-6 Tcۉ^' ,> KE{8Ex,MvFp^A SŘIc1rޙ9;)*@V} JK4)Hjk`)lmujnܘl&>vQf7bӰ‹?qf#8Dzu:: nw.|IMA iaK~ =Xik%gͺK~?BShU+<$o /\А6N>2ϵ#)n7d ɹ6䄁}$*KQq@zkثuǺhԣQ |#v—3FrOi} r!c Xc/őqs_ˁn]5b F]@ִfOJY53h\OطPPL.^+_UK&9n\S+Fc^sD(XH>3f'rh͌|ɒBik mQHq7oA5RzRܹdb*_#NrCx(Gʭ Z񎟍WLK:J^)=77fO4мò[@N2gI0YztVby@*TYZGg1lLu8ŧߪѷo^C!N.s#nRG av WuUZ6˟˹#/W2?1񜥇5C#QVEE8/QBkk^ ޴KEf[E2DVNX X3 ^Le2X=7a䪏yh򌯜:km=Knc wo~S>|_rssG LYzBvqW`ve}+X\amg:MۃPA: W`#F }{o~m>so]?bg5z`Yw) ʡݻo7Njpc%u$w0_ M)3)K/[[`±f]W?ϴG ي?C5h͒{+k>"nI!l6zE *M>*a"&`<l_m_gwhįC%(CxѹCt[;[]i{)\;.TjsR{Uo>UKb7?MP;V?!Vp(ç2~"{ZQ3uy% ŶTզǃW!ު95/V#9C*J=-zorIlj!ﺰjn,'D"қt7kdޱp<IHp_3!gPKF1ynuvola/48x48/apps/agent.pngUT MdAOPQux e{<Ӌ?lsdm#N:%rN+:ƘN7qQt9uN"}22EԷNRTs>_ߟҰܔQ xaRؑ Z.K[IrA乷rmqNdh2K꼹P2QBCֹE7r~L;9v!sô%Bt(VxC'dZ*OzO7?B4͠F>>I4|ڰքAT e`@]sBLzUjF@ť'i7OwIDe6#O/XWU孈V+ȅiڠN 5VuəceYwȁw ހ;b>F9Uͫ<#K\2> .8bﺩo` ~⧧hƪUߴ\]F}fHbƶf!w>\9<YG6pgO'BE5`J`IC1TbS$̯O >cӖ(PqG5읣1M5zLMùa[EAؽNP*l"ybN"14R~ ct䃷xZ3N¼_OwэEyuޒ!gD^CdD0N`x'ėdU;eo.mSy&?p AG\ Ls%Z{2yu~-(mWȺB+|rFz?h*b0jt ȡT >tyt "UY&wߺ+}CHuQz ,vE*a}x4d;˘buKI;l#r` .ӼV*Quv·+̖t`m٪{guUJ<य'ĕ G^N_Cnx/ok_iL3ޘ_d"pr|G3pξ"Re ` I cfVZ_y< d4 ʻl]39gJ5k~E؀~l+5N`ŜE5ª![%F,ЧmىhY*۶ B !Erx!TPaQn2IsF& CS ::y= QaKV Oٿdm4 ;J^YD9j)z0&*vvCM_ra:P-knc gCI;7loo.1##h˺_H1jm3K%B>  "ޢ<^ճ,tl, mE}&RBo!ZƷEC,*1|9N,Mw+(cEU1<KWVJ %%soLDSKkJpO~ 繓3 ia-d9]W&YP SNJrw3Q_=ch`Za&b0r=i Lfċf+1dʣ.FP q":TvΞRvމA?OO'2l30uu>S,1s>x&xK#TS ES8'ni' skllrGr `E}5+j(K8>i5 ׭Ȑr-`8п7!$IQKQ9ݶ OAkB*T;DT;&p}ᶖJ;2?# fkᠹd˻pn~٣䠑 /7sgZ_޶R:At{9yt ݅Y;e<.Q孔m|BZl6f_*![<;5ᮨBPL6l]Յ;w j/u*Xk32< ~`roNiz( m'rK-!2ܿ;?ԊUJX"9X#z77Tz׺xY{pKDklmV}&a~-UpҔSq(Sde3qFl&pI ܏i7tcSŕQQ𔏬V75j˸ke woKW(qF:,GFRs|Ix pjy!+5`:۔ eSdnO6'`NZ;엖"ùsJgh6\6 J+{SSSU⻸׆YqdEM﹇X`XoҼxjuinLTжmVKrt8SSSojByR9-!A>K]RY7zHFKcMN5566*Q1/%~vO ALSʌv׃7gfա=X_byIiiell݈MǎNNNv`zE 5SV%'zŜ8i{~቏[> -. $/xqCmm]߹Qx#HfއGĖ;gjP|R pZbӧ}J2~ods-rol7Ԗ)sSkCDQ8؁lo<4~1 eb`&,n@0=0d%St#9oԼ@L` `JR?[lfiovEj`A?gc#T4z<z&kLoZ"H޻dZV3:MsL7 xv!?]/PK t91#*{ { nuvola/48x48/apps/aktion.pngUT gUAJPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?P0@1b`b+ n+@ d8311_ܹEDDy <@l @|PXX䳎7m@bՁ],\,Yco߾2l߾ASSABBĂa}@}S  Z{@M$%%udؕU""l ..p~>N())P a ~l@1"'FFFJ :@lr4#+Ü9޼y v //Caa^pJϟ1| << ׯ_*J[n jĀ [,2 Crr"X? `S31ahidx=310C꧟?܆:4_$ "6TυZVVV J @f `?~ebta, /_`8z80C1ܸqS xr @|_A$a+@` vqqqpvvfg`ff߀A]]!--Xzf@C2tt3|ݻL>n߾߿7f&@?oR*_  >>> YY9qP(+((mII!Bf,CCѣ$p1cck`'p1 0.1~ǿCC.(=TWWgffK ZׯP611cIb;БG&Lh&R ''78< g! qP B-ll2ڿi1>t5;;p .O2h~'kFB/33-ogdaacرc ìY~enn^o~|#hre[@ P 8q'w `r߀:4y܃:4[ 5in_x7rRVAK`裄AY6k䩣 _ \JT& rDno~, {Cvv.0l gAe(a{ 'Cxx8 X%g3@HQNsN~ `{ \H @غl/ | ` nhj sý{w@P3Pon۷ocYzM^xG{a}z _UU Iv`w֯_Lv 3{`9s:=2k@;(ݷ6_QJ/^;#W\:%0f|PT̂ؠ/--dPQQ?W1xI_.6ŋ~~~p#=[&y:**F7/\A|o`y952hyS@ @@5W899lP"e;0olŋ^  l1pR]ssc`a ;')d97a5)܋ !8fhlА@12J;~ @,[} > }`c@jw?FƁ b XX Ih =l?$@,?8 p@c@@m?@{H 0p `@gz_  "ARh|@,g$AhH$!.@D6@#>60>J..vQQ01Gȏ9D N7Ŕ)..>UAAd@ׯnݺ r*>5< KLث9d4"8WА?S^IENDB`PKF1dnuvola/48x48/apps/amarok.pngUT  MdAJPQux Wy\p(E#tA=ZaeLKpj[=ODXqĠߢvEǦɎR zi[Gg=/ RZH>uށgqhD{y~eT p&m>z^гZޝ<9JQ!]t}2Y`b} a۟Df^tu;e (|Vcb܍A?}ѬWdrZ ,IjXJ⍌ )ˆ-&݇v˻98oؘuH/uNmk8WJ`{3|u n8 H. RWH/N&^n?ZWX c[Eʈ;}`O$j?,A(B8Ȯ-)g?1yq?yקXs¢5!3}I*xA5FszlȆ0ʈVh3鳎k%Q3=XcNF#S2zg',TFZuKڿ)^Xp` c׮MK9Ss,G.)s%"ĄB=!n#(v02[ yLBkR7>#NWrg-_ɋmgIX簸J>Ux&%xcV}:y,"hHrS|{}APdN+P6={{`!焰@K~(.Q=3u7ם0WRV?"SRjfAvhρOF&34[3.nTNGǶ5>IS==c1a2bᣞ 'Qpj'n2]~yb'n[[!}R BbFGǫ槨9Zz#UjkHbw(p%_uTT{q}m+ipx(b\&Lړ?{{YЂ0fG?m7qv#60? QFR%e|BcCn!;|DžlspGכ7d ~JF}ۀ=5tL*q|㢀Lz{{Ax#͋\SHثEEn|>&C imBLS~xɂti̘j#V4B?8'^":9/t2946%Zbt@76#3'n6'orf=5K[n(DW  9!Nn]%VxoNZ&sVv a$koQYȂ ܅K%0mGs?AaizIsY( 2 aHD=㨧&a9P>61/db^]Vˆ)2461KmiOSy;.F~`eO5Q۷>l) Ȍmt[Z&4i0xD5Ӗ6㕃|CŨ8:I(!d05kD&q?qL7AC#J]B& ПG\>8QG^vmR=94<9=.nnkӻIQ$sLoƨsIBW)LnnvA+cH<RA?QN{%$RA/;)փCN{a} :u۶C^Q`C)D95U!iʴ]Ǒ5 ݎbǪ&QPUE޴s)702T7tw/[hh:ZF,!EInVX*W]o 1am-ȧc%D̹g/@t: XpIp % /iJ`cWg rM_-}-)>~?h*懁)uXX`ˀ[B} `Xx2b?bkAGYp&g}`#vގkŔOM!Tvx&ۥYǓ{8!hd+L,n/NiL\&u;a}L`8nymg3 kh6Jj+ڥ](YP|I `lxg>%}U9 7o5vC ff"]Kc D )8K/Ɨ\}Uڕ+1[%ZyC cӜ<=xY(vw 6%q\!AO\dpuUp&)#ḾQ5:J:X# <ö:n"LyhB;. ع%xU~6ΡQAQ(7* 3'F,|՚4_]m 5K o]}@eJ|栩ILV%V9r?`z(纜 Yjp535J}f̷UHzV'"4cXU7,9B[+lǨ%צ Jj} BC#Sl7da5܍N9"^(FFT҃ '͇I Agg5* [x1SX#`Z9|QT v!fe44;4]bŨe@b%Sy$W;owU>!pΨp,.9T;fdbt{+ )VC{07ftMzfE-MF|ف{LL>O|+1'C H~N%G'k]IG7 cjaN'xHZd-ʏ.g(A)O_z]-Lʱ4m|Ut@ kVqX\sXYޙq\4c wgP|X1gskTy~.A0lMj a?4?.MaphQIS9 {$E:WMڽgӖ <D2o`g#e'>Ŵ IN6Lݏ:d2kpF̗PlC&"g!>M7`4Aʅ#P|1,ŨV>lkLH/yqX^%?=m6яc#XNВWX?;|ժRȤH r@b:iX;.pqC鋛Oܹ)Rә+M4 j4...-*J[̔P Uhzi_>ĸQ<4 hg)Z&{χ0vC)$X,!02ya) }p wyQSmik;QebL`ςnh&zC=t[s[ tB Z Wi!7wLmE0_& rrwx `od-B^z„< acL&vi>G p,w~|ߴw _14[.$E.C3tb͆aPuUW?7M0s8gDOC x͝kC2{,6w_&i!1Cj$*KIF;#m (y. Kaw#[9ГfK~3W%Lx¢:sTjxgƾZfE}Pqzlİy\k@s*;bmXL㜆Bk]uS#E|:^E& r]L`E98v-+"k&$]'C Pl݄j$.̮oV> SQ (刍0*\ RդQkҟNSy-X@ ߖ] NC9cjOD|B'.scΦPK[^o@BE2 gbG{G9CD:do󓗀c ߘwz;)! Ͳ,c'sd}EgAXY+/#Hjh,Giwم#IHFq0OݜN$rq={!uqwBNO?-4BAzIoֲB!N4mڭO iMwC6zqsϋ(|Jzd'A16$xF5潎rLLXVJ޳ bigtՃTE Lpq 깴+bۉff>{niG:g 3 }̙AkIp3Ϣ"䝙 SŠ˗Iu;[2 ec"$?#´oZц>?3NbV7 ~N *2#^VĥѰV7Ի%#ADW0Ů ב١{Ascce^\G _zߏ hI6!QoZ?A&5a{jeon%@9yiXpG C S6~fMs9^]Gx@"cKDW.P/#'67Jɳ0;g˳I}F6a,83D}_-WhJjRKqYgHM}ؖ>']f@cnWw@V\.a\;R"/,-\0i #1?aǧؠLXT08Ǎ}Iwz!,qY]u+YITY nL;fr2=Dp =56pߍel:Dv1]7p}3~}Iax U :h;;|[=&b`#+ֿc?"κ/ r)*ǥ#s !C_J+mۈlZkY ԀRqPrKӁ \#҈`_'/r*`@,/;ڬuqu7(0bCNYXZ E_j ~20 _n\"R,I5fj=6z\n`В1&!ոy йZu#U.xb< YWC?n'w[K7  j)l`כ>FGE=N<|@s/̧=tՃk]ymY M Q۞H`/j Ģgr席D\s֒+ pZl4Te7.Ξj2{̭P,:4vY6}KPRW~#ݐRS2N8eDȢӎ.pI-媅L~iE>.?dqZlpS~ϓjm[ԘR1"NoҼ#"sTS7"e/ȻQkK_RNB ,Y&SqeX5ݝV+`߱ 3c=W/ics 53+Tɣqlڈ|D4Z*SmJr}l@޾{Vw&SDVX /:iR%-;7I/PKF1k' nuvola/48x48/apps/applixware.pngUT MdALPQux %UyXC @T,\LE>Doj%9e2%? M&9PImZԨ\*+rEpR_?y~<{{ W.5'9QhvxN_eY0fdES3I.2$IcɛrJC ;:)6xxs tAh&91Χ"GūC7n_^ݴ A1T'HdxOPd<]oc"a)ǧ Ɩz{Z{V$D7󧚙Lf8=dD2GL %&} g7=KKP ŝ Hjӳ3{[ţt*LY[zc~pzewdEO?+] c M}"g˱L6N⚮`K(p&㸲wb^N,*ʯU5G]}] ʤ9Mu=_F)`(~4J]G~T;W7v}Q R8xWqMN(By< m57(8 {')4gl:/DVֶbYt1e9Uی#Rs>>k{&0 MjHh5x@ 1gWW׵L|-knsU 1Gg ILL<~XcP xyb*g %g_ 3+G0 i9<aCUd˂{c|of:Ud.Q149:8PcZ-r+kY<`_l2^+L Z$goW /Y"3CȐmj+PiԼ2zv!xqE_z:B`#yF8uڰ6(q|lX,~m!CDOc5n• αNbN#Y8eHfFC]yjcg'Pv#Q}qq4xM`ZT< #ʟ*Sz3TXZ"y#J^V^bDZ>!u[FY,"R-!RoN_@b}҈|Q,yIc0b1ڄw<_!v$*>Q[uo'3\nmߣ^t/$uR-c1ޕ;<҈iiow5,0) 8jQhp|84D{LL /N2JA[EIX% .$nxw&gmUK{.Gl( _/5{/+Lw#}X^e%yj1r=gmǘs ddG%?P:)5tDDen?LD@I<1C6Eϻ >ko\o'-gj(3MDNAa$]UE!W_b<">WmDT〵[@М CM

        .ޞ>h6HHя[I RNA7묅[5ڐpA]^pڊ尨7f\ CVz?dJ[_zVDfc9وN5ǫ%KLr&=񐵵;Ak_Ltna~J²!1K6Zkq?9;\|z(l^L૒F! Vgm iPmԶPpN</,0ZyގL%."젍(w$҄ .Ⱥ~_Pfvu­rxziѲ/42$a5h.;bcFdf2!i$EK3tFx=f5~\s|5Y\GfIyFkޡ)`|?3rd?#ab`)8wEsПDG..PK5WG1' _nuvola/48x48/apps/ark.pngUT eAJPQux W{<ncܷ)6$CrDfsNTJ=[$~\k:u^T2\J1z^y>?y>;PJ_õ;Dµ~JvIM}u >iϸ"O9plx?-|<61><>6.5?{Ͻ@,.7[c~ p88ck]UU]{ŝ3tf3Dph('0wE24{`p# w ^5a0[nޤV7/z;>DzF_,lAhwS)ЀoM"D/:))^Z5x}y2SݻZPb -tVV (2T%yFoK_q|xrϟ?wttDNC87l>,yK&'A9#.zk};4W^KկWaFbA`ZujTr"xvQKKK爈=L /minbe|p|cwA;k dR 2L iGn* 8Q՛<ܢv~]HΎt:6\t~1%ll=3 ; ]Gh r7I3e)fffsX XGtԙ#105a[& b{$~$b PS%*{X۶ٓ׬y]6G_K)a7q:c>cN'O)D(Jlnq+SxN^#5*hmbbA<&ѰDw5̄Ǧr%[%xדT_H]ZP.WwH 9`xf&X ]kd 7iC6e^RU"Q!YW6[Z oua2y8dVWhW!S}mEP}`X*s\ RڷmRձw#,\)"?z܊_mqUX'0c/5F$+.P90TK!9х윪kclrV)>hQ\VPS4sxel۱"o+ om+4Z+䡱mbY*qԡt(45G|p͕OFOF]7HDNMFp$^ P PwT@x,|BođIR)4b/`aÌ_%avm!VXU^+Tx4Bxr>,j 4T3}|,gܼS*2L*<„`I[ pUM i ĎKp/CR x1>/0ȝW1u 0rRCffh)ߥO$E~FFx:sU5TÐJ"'^ j3kϺz$bo ɤ␟œ@ j23㼉) d,+7Ok9  dq4ƨK7F?(2I5꒰7lFر  T|V#9 mBa;s05>)OV7[O/߃I}pKcG7_M^5 څ" * O\gmo P\5"w|mOB|(i>%kM7>}Ծ."`H ,}NGR¯@gLa}<奱Ɩɖ *އnnjÓݛXlOnGBv[/lP~4Lq9=6 I2HE@+(~[ؐ\pwpCz;>B\`#XUpQqMDO! ⦂YDͶƜӊlq9^Ao)#>Oίձp8vR8i:c3j;5W+nID,f8Dat\ V1-jyoqla}(*UU Ѵ0JL1Ȥ.kld-|߮rmUkVee4Fw~}R1Śl]߭:_+˺=+.^㡮آֺl@Nlu\Xp]B#t0 hr]j2kQRWTu^}+na[Y3tww?--jV**ڲ9R(qFtF;pp3 wَIGp]G&w ) KY"4\b3 &sIdSILS334&_ XÊO {-%HŸ?S" +-uiԎ]> Iox9f^t==8=Z\B⠿8J\ :~}վ0to,oVaz84xmɧE&M,KZX~)&trNE5'1:q2-R}Z곟:]~Sx7JeD=" @Z"9\c.a-H{leYe<8ִ~}76l3kHnnϯ/5IRFNq} HU |5 //prt)λ+"6s|ϮԻ5q Wl_n膇*L4D>trV Wm8]bh4mw`c5PK2WG1V7nuvola/48x48/apps/arts.pngUT eAJPQux yTS_H$ȒbED \ ,"DE$T"(% A5 ?B՟n)J]((@ք-G=93~gfyhm@к347إu:mux8.2lhB FPOFE O9tY﹫(ʐɩ 26/sU0rdgy[>]~ M={qAnej(n2zBX`zR婇-Svc]\cWjs㰈BQȇ"r.K`8!iD C%e!S OqLMD#G"VSN-eB; ոgeka4Ă!*X!d*ƺQ.5*zɅ|2̎5s#Z4,aOKRl>sR\# f(B+L?Or#*4s3^7:ziC)߭<5[i/w6}*٦ݧJ6 \ӫX^ey]$Ux* w&o_T&ebwf rg8tw^;!m-[n@}W8d? ZZWxbTRuݜ>F> ñCm?0Ul= *gUpM싋:D ~P [׭`ֺ~KBB`3JJ+Wre4|9?anW9Fp40LWmj_BG껰;-#6U>sڎ'I_މh&~EBdp]=@>i*d~5ja )s'&2G'6"͑?BԳToZS[t}~&ѣ b(/馏Ss[A#-64A=͎ ^ȿϝaо3$sqA3 {k2rs s-iiȂvU.KߞTUݲ{S^I? Õρ߀{y/+|PZ+J$s(N$6Xwjy} #9_&~FwB.^)^,> 7s,ٕ,GtZ:xΌUHg.PpN/ d:bBk{CϷM qM/3J` Y%mlrL r5iU.4xs/mA6*tP<O}Ȍ^ BZ{] / HO3 \$ yycDu"<'H6,EDN"-jj؉q,mi68#c$|?ީ~ !#ޞ9 M˗ΎfHslLG9:NDYqކǃ5=vcLc4_+pGvQ۵eNxz g.I5sO`Ps(bD鶗HzSawf{8BV.5LMu!͸$Ikp ,d|~փ)ds9` Ķ iIx3qhìC\dlFFb l)әz1&$cob2mCh+J޽+uK(мJHHkTMQP `2^w\ޟY 젇 mۄ@w 3lfM35@.-1x(Whs\]K&|G}C?) T#Z^9zvIl[ 6'b~ФVcMdajPYSWȝ]QLCi}ӧqk[3J+TWJ@$sRHXĂʃ "L N*4LTyv C93}y-n8 x60D:֚w. <0R-o?  41TQ~WkzLc?rg4~628PEQY;!0 y 13a fK8wR*7 Xm ?\q W'SщKxH>߃===B#HƉaR{1?i/ѩ=aR!IsV*mvة‚MQ% >t}$J[m 僶HM㘮22JMT1.˟ʙӱ7#6nj5]1XBUC/G"οa?J/-.t+6ǰV3/NPM}רA躪R?00l^Lijk\ܨw?uB8 'xApUlع3+5t:. $29*yRu(he}D7/M!՛z{"5tEK8(rAq;TRg^YK8UE c*0AY2zxJVk,MpiM.ҍg(XfܥaZ PsELk 911@8g]iXL mPZ:k[<:D,bV*k A5ͼ(t^V;i>_mj} !V/=uSMfW; 󖔗eâ=z1P# Z~z/kzёӓdP[v2zl{]CA]}v'nJǢH09WI#Oz 3eݗ0l-:ũ8N)]UjZo Zm׎h>6ZkUs @\h ̖ԟcOFrG #U> ICO{F.F#OֳV5'$Օ2d>dD;+gYVS5ǧb[QS}-.-'p=[:^pڼg0b*jydb4&x5YK rd -V%,#>kW L^\]:/{ JτcOe}gcpXĦ62:3fr~\%f"v A*vuiל@.X6s~ӹypZo ڮs˖l^B;sMׁB[d?]-rvz5cڧg|Z߃a72X#VO]|*Qtj3mQKPn8i72SKU=7'磨8~JYJ$VLd@ix]}$c1vFHퟭiܝ ӟS?MiOFǹ8eHV$X4bOuDcͿ䖢vaV( Th$|ZG"9J_/{.(a]Ֆprkd-+ƶ}Î|V``AzzխTHJzJs8!c6llr1j51ܝ~Y*˿#݂~S, +ƶs'ۄF&@-6Qmٙ y 6zχ?TMQ{f1 T;Dč>r',~ߕPK.WG12:!nuvola/48x48/apps/artsbuilder.pngUT eAIPQux W{<`sC[[TzPɶJy%6!f$SyJ_S*C9sH1Q)1v뺯~}>J} }wx]ʤ]~pn)!cNΗ;蓧'zd|x83&jo32%y;lއG  DԬ,X (86FhhjB&@Ƭ6LQvpo?tͷRիQLLGGb_q!VW[KʅbƝcz 5"8'mde4'Ɇ@\պ5KF% ,aY=JmP<'衽!0}\9]?)-1HFDL<)eƸD Ev8->k(x>]zJZl<н[~OGEP>鉨8*.!c[t(͋Lb<+hF$(ks,3?n`Xx+01Crn7|sZJXf帞AZC%3gWBmBHGv-=AmwZgq@tnYI#f/-c2LTpKw0 Gh,zRӅ,yk&s ֝U MJ(DN8q*B %SB%Zx[c| ؑdHZ3_L&Tȧ?%ZfD`UM=ɃዌA(8XYݪ(N$xۧFW[A26, 3%mVPkT@ڰv*H:Ҍ>⊂L^# rs0;IVJL{†/JeO?4/l]R3ud~Fnø<<ξk0NFx?Y#"ֱPf5a1Vzy`WcUN|]A@&٪9CQ P 0а-nh.ݻ~tm|̸O<=5"Tsb'5D[ïb6()w(\6Иœ):#|7]ySP;EsЂp4`,ƍ iѶ Ӗ411z$Ol8ehG &21#]d2P >S\&{\6a|^mV`xx86[.EFYx m*/v_ݪhX}v),Q,b2wm!ZY[Dc"pDAz֐  [8캨 %pvq>4-.K,/.~rr$0 6Han kf|lN% GGӆW܎*òh)"&+(s[KX#ګ[:kvUݼ;Џف/_"8&|E].?ΝǷbiA[޾F d@:CɔtNބaDeNЧy_|ָb BRRp!W4bׁF 2|=?^#Lo6}qXK:eǮ]^^,yBMj*2,;~}?T>1}?k_ۊQ('2'TL>GduYuJx 03I)TH+"J iLpέVXc P\eogqqK:<4vKhWd_^ T윝@DI-43Vฏ.Zhu?@7`0#ivXD.Er>giK6g s[>V~r;г!@V$kvBͥ#/׶7*DAD2`lt47r]~R%p;~G-[ E^<n_"6b\rXq`Z:0n|~^ w~ xkX |Jޗ3{./_.@ EXtLӸe KO.򨰕֑V5:7GS04Վ1r^ /<5O r$ YkkȌA_3]!=U;'%ۄ늩)BB|(5cnhHJ5Bh[%u ;5f<-"d 8a0'?”9ǘM?H i=`Ξ24s/im{DX]!v16_0/yLH4bk{;!܂ZkТeK["R?rwYQQooSTִaY?h6:T{$o'N jl Ea8d|,l}xq_lL8gB{3O"b,3:*8H4|.H !'CA:\E?3=3j0so'2 Lj#=34KrPv"eT.MZj p>Ԥ-ywr.0Oz3h0J@ ͣ PlDxe7WJF{Bux`n) Jz a!m8ϋz[QS'^Xgw1ՍD@wt^}ok"*j>|qf,fWØ?/Znq2!w/hnf a¼a=YV8>1}1p54[lQˁۭ&SҵMʼ.n\# K}_0o6SK+`9|0; ׽Rqe6bn[Ɣxr0Ø(ȥ}E,bن:E- Nw|[jWq בJ7nͬY$88Ws>222j@n7X}ޕ۔-i|(ɢ5`i$ wdœV/0#\ ijˋJwNk_ݤ}BV~.F_iժ(!Q )6=/sAd-{*K\L#Y :yG&Y-d0ƋYCS^%n{ \ lN{o,^U}NKxGUfw)jCuQxG4Y3YJʌe_T0ϊ',y⃓pBۖ0ݞU+u8 } 2GL Ȝ\p`$iI,t!||I6Y4p1NT/GNW9Z9=LP:q)M0z5Rv=HW",Av6"`1I𳏬yxcB#a&+%Zq&"-rS{4E| 286[_n֝(c8@?aخLE#\yjqygWNV\E q]÷Bjmufh,euE '+O զ{P1IjF6% Ch!R5cND\6cl!UqOT! tP!#gؘE$2*G]lu|ES0pKqR=QJ`M߽ފH.]PsƋci*cD)7`΍9 Z1~%PLzo{>]qU*7>MKq2Y>O.ԯ{C) 拟 H`cIn/#kxUY`HI='6B*fX8Qec0HLC:7 q*)ݹ:`zA$ Yn} 򦖰aC~lX)$yg2E̬c|6 %N/HU.F{Gff^Ǭ5\H EKJrj}⪖NnbL^!wa~;&B6 ֜#UF7^QY@[?,dDwz*A*WCt7p-S'Kud?Ñ-15{s 426{\cS܏e"PMWHt5[T_5 2FraN""Wg00/g̖&ʎ!)IF Z-$-#f֝୛/Ʈ-%n8-ܛy6xk%.sM M>:|woRB5u~{ ]„ntǵ}ΦDn JRY. >T7+G*A{y 2]کrKDQhM)31,~hl̈n^Tl.!`X:zmnPoHڻA\nJ =^\W‘>4̮a/qΙKVNH<&S? )kJj3靖>}op Bz,:$0oZ֟89n5=^<,-_omcdPK+WG10[!nuvola/48x48/apps/artscontrol.pngUT eAPPQux WyXy1}֋7(M-5A,-I ;] mw Qrdfk&t[Vex]fe)Yxc<f晙gwl13Ylٶw. \0eng@e/Ȃ9sБCڶ?"6fgLDtZRk ~۶+}A 6~KVy1T'"F1w TywK6eӆ%$!x7}6x?ܾ<72UEUg?+̽Sw 1i4kO mg1/kEMA5 HoR#=ҧdOJ~Kb͛<,xYuUT8C6Ȓ{=t81J}M5t@Ȇҙ#@hv@/1Vũ!IIEgmFtĻ8NM{[-l_\/әZ20_Q3;~HٗHU#܋Q+N2;R*k̅(6gI;B;|gbc5Q۸{,RFOȾY_Q+dt|&kPtºEe*L:82$·Rup@!/`2' v[kYW-t)/Ȣgɋj&ϋTSVn}LM__3ڴ 3|Д%t$ 936VVacV(3&ZQc' ?z\k 9@%!ȸwdt(O\)0Ne0E^4%#X^w5^-;YYYپxi}}}ߥ4vC{]1ecxCBmSE;Asusa ̱=k ";0~~(R n+Ay?s lijYI 8Ir,饲g&hXi T:?\1N9؞\OQ38;17D&<[>skvj 볉O!pTR^HWVyA8>.6>$.1^(.qZڒę#8={V.(zo1,2P~me=6u}8qOp8 \fxE! hB%d-*" kl,6TJ5,.&'mؽƤmWqYB@˞㜖sʘlN…uԒZ^A2yuqX8cȀނ TIz;jk+m ǖzTՁA±KYPw޾n}j^fVNzEag#-zbyrliP AtfP W }DK R"lP _(3Aw/7_J0扺OMTS֐G>q:WY!%F4%ID*GkQ˶(׻1ka/t~ʂMvn[>O:;vFF.WzoY?$_a?Pmd0's3Rݾ=]\HbCuMrX3?[ +&3;6,',Y'%n@!0zNmXk{&$Cc.#њLIœ4m@0fo=xz򍽸6߆ G-rNC!\4v|CCNכZ:83sFjE|SQcvnx^1 эeIC^J>Gį-i߯x~~ȇY{cmhKW6S&S=i:74y*{@upl'w0^GO%eAKDkؘ41kEȟU<+NƨPc'JTǒu2 Ep<'L=vZ֒Eɴ &0#NZuJò[]dw4pzkj &w oI!4.V 4FYP ︲ ̡^3Ljl@odDu{V?LűTV\=֘hxxMzWWٓ|AP2Nys4Ÿ[XdDWӥl2KnDjZn*s(~.,744RgJ]ِxg {#o`)&Hz5E呥,M7|M=7sn}æITJ8.D:Տ*935v -5іgY̸F٬^)`%XCfv6`jPe%m$%]7gw ]W p[r9:>aŕ?Üi|1?΄EXW%5qPr՚] 9e`95bikqDU 7ߑ3:#lj;?&<,WKTRlN/Qr׊Y7YiY!hE䍓51b4\Xf4߮J%?~+KjP}ɋ[,-{KXQʡ652Wegё~SG#RNmjQbz}!j< s@M_/UT5K5^>i mz. @ҥY^---P%=0U~GBCah7 W!#ϐF7Asݡ:%$l\[c;7/.u*5Rm{hNѳDbK[DlWٱ(^/v-a [Τۋ~fYM~Q 7Eҁc|sL{z.S h[?4#4SGR ;`1Ox-z(-pO&$!ܞbz4 x>בf ̕Pu?s/aTr'0hLIVڥ tO:.;ޝ0z--+Ό+\S&Jފh`RxE~oAlb dݹ`^jۛeܑA>CL³}x@hef~G+OzdѴna 7=7PT}r`ւ8*{3N;jb8?X5 SJ12_zY7CW{j5b$U_ZNS~")b@x y)Cg"YV.fXr/>~DuErgY?FwSݣMіVAJ4K|e*.E1:G@=})G x^Ջg1n4rZOEdq/PC:Wd 33ПU{U:RIň)swC#g977S?(Gpj__MaR?C;_&W2xߓa2[|d.jy@5le %n6I؁0|cNhĿɹˤ/|L=/nxc-D!`c,ȶM;6{PKe:12_%nuvola/48x48/apps/artsmidimanager.pngUT ΝVAKPQux %}<{vo[[!dSH%Ƅ$Hr:Q)y ED5FR$̩N~t9=9"zbuJ)~:~x<>=wj:mޡ#P3&|L9xlGl#a;46$s M8Ct:`Cd Dݑ= ; rff&473xr…sL)]~Q18CyU4S% 8V _I,,Բ62}k5Ou/xrekp^K=1EJ7DG.cc(i@HYZ͒Ye5M7ٻQa Dz&k 7VkT_uH\A2 A[-9Pf;P\73,*Iu+SCex7 (0dGCQxEU.cX@vXMA2hCL'{n] \SRPsND1g)gIо8eO Kw[f0v"<{zi-_N[ ?*贌MVllgG]@Y:W]zrѣBB}]v&؟r9v>edTzH\")uۂ0լcy=8_>p.p !@|2$yV2*^ҰP23%TDf 8K1Ů<ꚙCb 8CQ<{*uz_FH%h1in>T945eQcQƅFs7LyʢK* ͹wg?ې6rVZ|?bo\ p^anjrKtW?厖iЎeDNYruq/,!؉3-`q.\#lI?1 sʸq lffw~~ LcƜHKrĘ ў⍠n~z V%IAA_ZEw:i17Ju5H݊Ƙp6'ߣ,d&39| i=b mƖ?^3`8xz:]kYu%ms ;Bx]n ;?Ђ1c?ZrWuV8&i 6rt/6n%Bޤ:ElzjI@Ȼϭ hEi?乙& d c_NQomUu4M }ϘӎdT!kl][ԫV/ai=.vAP;dҔee~=i0&tݒs2,v'NykHX =Ui#TA<T3srGf&AP:6}k&Oma/ds#N6Yts<3ęJ>$ X<Ĕ3uo#4ԝlQRճoXMpVi5`/@EGqa&'8xM"Oaw@)V` ~qYGx>1~Ś3 ݹ;{ eqԮ-\AnbiPd $~F+VT=}?r`u΀Y瞞Օqtᇏˏvaޖw1$A!0++B.𴥙ݲbrktrqf5q {U ]g֬xI >8ڵI^R ^KA߻wOxnݸۙa65gE~|+jP($ˤ i/UQؘ+c*#qP9O?p@TTEauʲ Ӿ ^3^VtƿvTg1qrj`@*9EЫ鋦{}+TXn:Z5Z1*8}hUMPd!nˡz%u.DIӟhp{sIu^$k=&qeS]%Tv5_:H-,!*r;,4J 9v (g!ܔZXqn\"xBY{yʷB$<3IPK{z jyt#tIQ@R5_'}$z/iN6 x؎3l/)a#|75>{Q GzD.%!AWl8'n-"d }sf3F*FPNF@*ܰ)=''`ҍ񏧸';o3HWPqMjͤ8vT[C#` BsqɑCE?͠^EiAǒ{h43<vr*#JdPBl6`,WnGȡ%Ζ9_Ȱ6\L,+N# ᥗSR5^utg o/"NG¦],)cfSGs/<kq _j5kZw ܣȭ=ҙ dM r"m,^XónX`4^G,z e OB3t/(Btn}n?|P),,!⺃}v[4HeqfK.O!"wzцU#]yEpEm]3 AHʲ]#>tr͟L-7ΣQ[Σ3l܏&ߚ0=fzv0^EeѺU#o x6(=8kPWSC#zþ7E<׾4+J'~gO[`b&:/Drֽh<}>|[u*o%zbP]s:=/҂*m.At*1#NAVVȜ-B)¿˒@_{į<>PYē̊KPB֟&ĭ)ruˤϱN=B5Sˌgfk|udD"?&+znn85@O'VϿh #,/R72#>|gbpH }'/dV/`-@m`D%zciܫl?V' lQ(?9?)t/_G%+VT`4ЬA[L<V:+e\G4VVTExL ZЕ-t׮kS ^{`w$Ӕ v, Ɠ .Fa n]5޾odnjR%^ׅ^UQ-mꃶՙ)H  pۻvfPK WG1C  nuvola/48x48/apps/background.pngUT eAPPQux W{a&&NjhDQ"a="? F/0VC|BoMiB$}k\aa\ŒK7mzaCdp )y \xxH=```ॾ>֣H݂/&{4¸LZfIUvJ#%5cA7!GFuY,{zo+.t(!5z|w{@5[!g&ga{7x;] }%-nI_,'Lԙӏ;bH ng! {z2>v0o2Pɝ[y|A{T'EiڰN0}j1]/nL,8yI "DB(-1-흝[.SqLFxRZ25ͮsl]=RJ"@[O>ɿ'Fr~SW,iR~BEb(kHVmM0 *8:M BW\SL1;%YKxiw(R7Yզz]ù4qk*U(ȉ>f͑9]q=Dƞcʠ]jHW]5[ @ +RV(Ba1J%ɧiUJW9;Ϧ;nuQB܃Kd5%/D_֔g4N0abQf\'=;w>Tu3 PI0$a;`sW֗7jiEya8ҟ7p=v?3Z KI!A6`G}D(KW* ӷ;T- r?Gͻgn"%m%h<0PAG9! yY~ҴDnKo[*cЯd8acSL,"{ wjWBeFM2yhy l`4~uV3kFug.'<#Cz^.Nlb6}X_lbלO@q%Av7^[K9BiӋ5t5'/2:/6-=hw#?ڂo쿖Duk*G D%v4_K;; Ԧdķ̨ ENx$cD]7]gP?2Po@o!?s,1_3B2 $F3^7h~Bmkhd gm6ZӸW?oGe gZ~a`!ϡna \&k¹eIHƦ^#c@ i4uW虄DL1i!oеvSLbe/vn%Ig=XT*&IJoȠQuı` { 6*F'p\գ͊{R\I"'FyFqi:Y9if,h=X8@Q %\Mik6|0d!:ԟ" .b?gio>6GO|yuA`K|ƿn`P זq:fA3H&|a:;H{ 2 5]F.+D|_q : |Bk@ thMXkb`r5b=bzŠ]9V\\o#/!;9~>c>Gl8su'/ttDnYCfTC/G-[B hlqXl&Ij~5ocS'62l,ϖ·FE"(]?rxl!h+C&M:\I߰8;~t,7;\\a%_~SbDF  #׬z٢<3D"QJ)7#EUYqIV>T1.:K<^f{Z_nܚh@N$)N0oC_D)eY<^`; $mS XlY|wkc%~kngzDu="C7<*"1f|yHRUۓO]\=1dw+nv9"Ld(`󗟛1s]!I ^~8/]LM&z\!i@{+o({'o~"~݄Bşax7By܊_;H%޲|WJ#NraI<0?uN5pIhȻzH睩a8A=Xe6Nc=|E n^uQ_aTC90icܤMdfM.jGtIu4`.Epܱ`8*%[\PP9 ȏ}ln8A$|f0ABߜ|cj E0y| _ W ;5 b'!QI W(?Llp[E=o⭲[zJ5AgN MP:a]Ph[6A];]D/e{gH߀ŲQ 2 A3Kgp)cr-Dwâ!2'Ë޵+NӺr/r4W¡8JkzAYooo(ڎ wvRml5O>j?"O;"jDM;#dC>DV؇N{6;auמZErfE,;[6;ba *^Dp򃍔}"HLr'nLj ۋyŅ5iQ9`H+' 諰>lTpaHMnyŒwp^U_et$wY8"E7Q> u(8ԦHPҊQդ܂٫ O.͏jF.<\_Y ^wĂW)IDB;'nW,z#}vN2I4"vﱨ~{xnJ(KzZTCsR3~ҌwF&?BX(R1#5Rs~[4q:×R_6$$F :7-7 %@=T\3ۃ '`E(ݎfnI$2~v3|KIVSVM#<$<>CZɎ|T N3d-nַ7o!ҭ f9ҫMO$$qU7nif¼66SO'(A\Js|Z37s#^s8$? $qu\wyE@t:'pxrЗŬ)1[h[R닣)8RKE¤yro\Rcҗ{>} >Vi'wmDW]+\u6xcG%τ%e5v>uZTYMs,$)xٙvЌm,ӧhȟ'Ҫ]rZ ҁvбx9/p lͫ/ \l'T}q<}vQ("WC?g&# 5zΥr1s悜m[Ll!N&G\:%'e`I:;=Jn_zzav}zgV[+@xl8eY},%p2B˳mWi3$aWl?%#HWNgHWC?{FIcKʬ*qe3? wZT̲I0X}0iCWEonС3l_ )93M'Mr}vCA ϏO1 k+P1 ]]VY?_G<rbp6vu(Ǟ!ƒlIݘS"C8Y$~(NVXϺioU>Hf3#eقp$aHzl| ,^YwNv4_Y!Toc2>b[x E9&2C@9+A>9NVm{yw xA^<9!'Pqw^k")Իɪ̪ Kb-- 2vIH%Ͱ<7wMgmW6ɡL\Wꓶ|iN TBP\NFv\D`xﻥCԣ2Fu6oX1Y"UWY2;.#kzM=rz+8_G2&Ҭa .SoJD|/ t·Vf%^HȖ$(>UŦƤ_\!ESҾT_k|>Sasq ^/H<]-R2Ŗ*+gMp?`S{@C1Qy&X72+ܝVk)eܜP< nuXGe{)4q@Q 7Fn+J6X_G̿T Zhe1F|Ct3?h$sGXODS.`Xta5nt jZg+n, -$Cikkl= 6Imb_I7hl{h5vMx'V )?#?#e%bb{i.6(R#6=ֿp 䝬U,%fUJS#>|հ4Xx:cՉ)H`ƺWA\?wrIMM#MӴ?AR3! ySǡh hFAPK t91PInuvola/48x48/apps/bookcase.pngUT gUAJPQux PNG  IHDR00WsBIT|dtEXtSoftwarewww.inkscape.org<IDAT8՚ipW~oԌ4! t 8!@Hs\5+#eCRe\r$|HB~X[k'aL8%$@d$ni$͌zf_>$Kq}U]gjWRJahu!aH@)ÏJׅ0G`ƢbG(ի4C`)i !_r6$m|fXz{ΰ͕nvCSSS_ pXG")Y><23" t~PK P{ui[ۥ~!DAn,/g]#X=\J r/v僚% ;RˏLU!Ң ͛ylR5 Oy0&!d{78mv(A>B[Y LkV?z*"?ȻEd,z8uvfH.GR}xE.Y&mƍLKH@"m6:\.p/ڽ&s"G_{;qFsp߾}|62B|ZB!|0EsY^Vby8{6`ܼr@}= O=sVmcO &xE`vAǓi@JI]@4[\LiQVE3 j@SC=uuXA[oSl6oF '0"a6c&D"iiM#j#?!055fKRin૩!uRȨ# ]!UKM0cr,ED!8ǙOLř0=#1NBWUޫ:_=:-5驨޽| rxxKKyR=wh5[F'TaDuLc"R7,Ğ<#UgW_,݁Ak>= fK23Y4/ՊItxVTΝ\iCڪU,YyHHHo#67ѾRMr*7"(v+&c׍X*E#&%u3uqR.Vߍ'9iбdq~K`Wɴ[(ɚW Zz{DI]eeL]Mzz:n:6fT#2E48IQ ŌI7 cb}=2C'Cx^G_%ˊ ~hkD̡%KHxzx<n7dXn,\@ܧ9. 2"`R1h#5BF4v].~Anp8HLLl6,nٳtdw,T4c ezT`DH( <=~F cnp\\u&Q]rReDW2+ qODqsn1lWGD1XTrK|'&5 w1RlIc)6""T˓gٴvلk6vFZE\z ;XO5Iag L6̄8cSU;a=LĈD ;ɯ$0=m~.fg|w3LV/á33Ԃ0nť1eS:LDs ef'vR7ƶ..,utY1cSmDX4b2"z4;zxazZ4FS<7kt=%s z|1 !탸S,*Z}Fa30+f̊ɂEbSca=J_uNJ)IdT~,+0 j PǡMN9zʆ:y+hU]#?N>'RF].!U@+6׌YAXQ,tuq_-37% ?j{Oynk=>"#Á<6f,eTp2i#ŝɁ:Zj;A€ ag>coG[$%%yϰKkn&?M[)th'RF~T{?"##aE i~b]ĠTQV?!ŎwUfXOIENDB`PKfE1<nuvola/48x48/apps/browser.pngUT }bAIPQux U{<.d(msTV]JJ.:\KHdi%Q98JĘ{nԷ(QII}~~yzfؽ-᧷Xp<7kXE($rgա>Hh4Śy&%Mfb\*T8~KDNsC̷{nF*K&vÐE]J Qc6R(^E*!Y |8|:n7D տ E&9%k=x ڴ}Ș5 {:U@C<~U(jhS2iU^\.MQHLֆUCW=wWoCz7~fv:ŘںԏYn-(%\A; uM*!Ym.gSQpI+^쩋S 3Qb ?$8>Vi/O)l5$%gt[{vnWűW~!fÒX`M^v>/V\$RLD\RdғPlW.$%jc ;Rnۂw1`G1GxwҹteOkd΅\^5^^&dL1EZcO05`_byأ[H Df7y,BojQU6W| oٿe Pƴ$]pap]W@S { 20P0("(sYc[Яƫ庈7Z{+1޸V]r{PkԥĆ@~qj!qv#milA]k݊ELh5҈1al%X9LV"} sHҩG'Ddc_o~.l78L6xG} T ' OơQ-]wGàxu荮`cb.)f`:yP5ozMqdN⯿^ڸ]%Tb?nH<="?kqiu3؀r0wJ2#cJ|'haiԑB#'L Z۳, YpcX{"ij[?=Q37"x1ΨmGAQvshp]Aoã7_H8FeXH \E;ѺFZ'lWzJcAHCcUa֟~j^ u>"g m܏~E5T LaOegdHAݔ|H96?%#Z׆F}5QM xm4*DO;r:ف,lbmif']$V+c B{%|EX'\x:~"`d{N(X*k]+laȎ<3CW}v@HX]}u囱im78Fj{uFG^XZZ~OBQx)y>!9wJrORL+9mb^;3gmEo"GbY먾IPqv Le|qU0A7>.$%4V"ɢhN^K4;-ޠ3{Eo˭;4/: esby)8Uas ݬŠo;JР0lQ|D4 a/~+}^ =aIq?:2Km'qMg'{I ,Ь;&d.$TYuhI|]J9?=P4gVN KGڣOwxl'#F9ŸƟ m! K*wfʐw~MqC6׾ɣ{[Q?R7Df+qCƄЮwzK`s$$#p^"op}Dh xU{G^,Ԇc0 x'{㻬69wVx e2oિ"דKTv5EYyW?ܵ5gSسx?f]|A*&^p,CZlb_.}| R#ل& ۙH,4; \X$dBɵҗ2mV[^i"U .ȹPf:(@Dw xaS ͺYpڅ.$L3<ܺpN6A]I U X*zW 8BsDB/L`MY |Lmj񨢇.# 15Ƅ,/|Yzí5 vLw*\HIZyCN`tyI~,guSG6Z'5 Wd##Hr6:#Ysx"zG79!`k tKeryy}y XaV`MΟeQ'"0hSTÆpOlNm&0%~jvE@ۦhG4X{7C VwVEEd#c@@[7!NLB)U[wdu-%O#2?9mmX7-B4j+I~?E(~h!FvTJ4+|<]cӀn[DipWQɣuSƱuD Q 6ľn漰og!~w1QȑCFW dvwmnv—;W+3>~a[P8̼!v0`ewwzOۊk0ⷆ`^=g}Mt`S cCSk̲CωMϛ2tȓ퀦a>%>}xf৽bf$6fPWFaG[Oeh,i 95ӾT\Nޅ6hxX&voC: +ff.SQ#Yu#'r [|*q.L6}2lb%~ϔni_ +;TP}Rė7Gx^YCU EG׆8IZ- n,rJ=yMM/)΅g h[R(M68_|051Մ$H!2N7Aݎg.:4lxB(C 5IDD$p~DUXصP Ϣw}?V-߾!9?ouuΖqz: Xj]@֏Xu$;qbGs<߅+n~C\k2Wfuú$D5P p+ɟ:Q7edzXCJcf܅.~t^N3{e云`2 Wlix0??SH(U@@s͈b %1ϕ*>SwT2ZRQ7Pl?5yAl"#!`WjAMjVB뜰D=?16ho4&beT3Szϐ m-wi׆2.`_W[ɯ)6s6Ϧʼ>q_{]\4I O /{ͯpLIH6; ˧] /]&zz1`Ŕԝws,H=2YqZfxǥԘT`[(ƏPRMYJ?PW)3x[InM̟w3Qz3H5x[c=B 3Kh%۷zJDA7x>>VFFY̽9,e'>Ɗ]Yc,&tK)|%9d~uĆ n<(]D^' ?g !!4ֻR]^VŽrS왚jI'J%[>_d8ʂ;ȇ@q"sEdy!^ϮźO`BBeNɹD~ Xxzfl ʴhJ%V01Xf%, ~ |SY68q+V4T~ltp'Os8ij{ٰu]~ qթT hvỼNm\ZqݔGӦQtRcYuSbF]k t5vBTC(읭ll"Ozfܢ[$x*ߣfn_M'E6ڰTVZ#{U %HSiYS}j r@ #<5c%حc|!Mh _t3LZ;z,jqq;n$aROK3`žD99` CŖB耿ȈӍLa=i `d~]8jr{`.Mg&Nv]߇f _ʇKD2+V4() OJRQ,J. 7D3g”xq J,ɤB+ 8؀|: $XDI̝iXjJmQKl`KTFeGȖdCB|+YJiCR Ŀz:mP,ЌKzGJ#a~ :A&f;*e˽LaA0ݕV.ڏot(JZ>jH"S,_q R"0FM2.:zhls Xgalqț"f9Y]ix|:Pa^lWL(œ RcE&2:yNO҃4@{ mSv }ɉӰK& GH$bnD!9+ZhiVBH)/ x?䷕^r-UGտ3{ڡAux}4:{} g=ld%'4%?qnԯ ྫྷ`UCYr,RcW+Y"[6MCHv̈́2(]#B.^!!F u'y"Z'qqcDK/G7wki SHaw%ؕt 9,I GXYF4PǭTV;ƥaߦ(*t'\5(z(2CY NPShG YEH QF#B:H((Lܱ۴wWZx:U.*5߫N[uo2+tWGkWDi!𪟣ldznulBvaНoP=~P3GdOlE,~ӠNfuki6;k9p}WmP!_͟H%pVUt.Tf^ O/eP-lc ge6r.tbu){F111d08&_H͞Yx*;g& ܮ( <2x%hs\C0@ r d(h% U쭰jAYݕ*N*VTLzf * H|G^s=Բb/#$T\ VYf!̈0!$,Z]i$p2ENtbqyr >?3w_*.d# ߲ӱR2(˰-je?\Scgz;(Lxk$I*3W/Nx6:/'B0wj|Jnl||Q79@٨rZRv@k"f_b/Q0= ѽ;oC>s=H(q5MnSL S pzu?N]>uyt#OWφ|4eeȳ$t~'&{#?;FE_DleNߚLp U<]YNadhe܁tZi8^;s_?2V 퇏0/7f^y+=&qG8`+\|Id&]*>YR\Y+%[^\v{nb7[@/CbiLP%i>T?88=EO+W2 :y>Ԁ$] 5:hA@<.l݁B 4&S%g@nR@OYq,gĔfoiPЖ粢Sʁ-F%SjqMSO'{nl|ҳLQ"#[[kVg]{v\>gΪTa$t{WvY9qn1' cw/Ve²l%t%OsUp/û4o։x?'oȚ{3nNmd`(eqNzznWʚd\@Ox!8ԕ1Uf! 't%Kt FIuB&y(Cs^̆jRY)qw`<#HQx>2canjaS l^eZmK >3[GmRu2 @稄F/m4PK#WG13< nuvola/48x48/apps/cache.pngUT eAOPQux -Vw\S#aeH(2 Ad 3"ahAP($ Ā !(ZTZi: 2T[pa% |ιsQZ BwJR, jH%|B|F LJLߕs8a01 q;bXGyODEEaxI/S'Hd&p/H^6뱋b^^72K572ly8]XWfHVbO@PK0Jkʈe jtsKlyyY# J7),[*縒^<ҀLI}16fgXBȩ8i0勽9A}3a<p,)7Rbxsڒj12$e'8I YyǸ0۪jD&Yw 9Ft)9S3қSu94W\G~Gu[lۆ 2#p%ft&:iœetfu\IT-v'+׵9%,VS;hlħ|x4SʐtV ^!?=2gۙ *uYXRueV Զwvbz4!r?Eyw{m'%&=^,IQ~4YյFoD=367c ;==QgV[ev ,gbbuȓ۪b֝˥2J]dzR @ >9`LqIT붥ke|;xv@`v]L *Ke3 t{ﳙ^-1܏ KZ7?ؙ[{u> /@у'iEkCనj&Yp;ܲEy>_w;FtT((ڦ >cЪjO SW}e {3boEQ'NPJػ33*Њ%嵸qEgF>wWnv(P r!:J2K#fmN*$:[RJ(zUcwao9=f_[n3V畁#-4/UG' ' d'XnK A 8c!?GmڅJsw1޺53W5?[pM'ӄ$q\UB͟{x\IC֋.F 9=7ỡ.cD _mIGNWV,q!y (QMWSv':kA _pQUu גWX U`r%#Qlp| GҞ^ F=nZKwg;_Q.,|̺'I)O,a*Fwᾶ蘚,-Wwj1?w-vܲ۞@֟܊ъ{7;_^-;;F[)^kԃ ^uu2یr!twQ]g5(ż{o#to욠|Y Qw#}!)]ɺ)+=Al_0B)A5͒9rG􅃟vBqDCO}0l;4R1Ϻw e zX){nC45szCh߀iCg2+mߵ:IX(%lc%> NJ6kI S(rvLV'*TeS2*Tz}xնv^ԙ6['}M CQxF#{1_jV}noTlo@9/j+>BGS*έ-fxS=0.qV0ϛm\Le&a8"U|b#uUM+jMͫm₹, \Rf-7hu-gQM;tIЖJAkGeae5];Q 4@V <0pvZDnDʈ 1[Tr/7$ OM8J;|zB}IApFߤB$OO4W샒C"q}2U/=l6_KfbADJF #3a! D^H$9;QkYBe2˾g=+/KJ-$y/,v6tfZW7HZit$tDoH"J5N ZHL;:clN . S[KKY㴲f\QU1BO<彘Fm @O 4RħZ>i-^N+hFsz{yOy\%^$ă ۬N1%#icmmzv60QX*zAxEώϏԆ~z ϠӍZ+A"AGIJU$nGek6ߡ\^SP(E> N}޴BT0& {U]nzf M`7PπM̩b.wN>Cz/).El⟠ᛝJofK +˹";!. 1[d)B đt47oj}%E@X`ջF3dU&pw޶Tb J0ڣ ɞ6W0HS[6Ui#bad!rl趤cG3ŞѥFg*Ư%+&/c=eו>k,Fɯ+nzPklJP,Q?zuPҗm"'/߉^mxay.nR9֭fڕ_V4ϐ}؜F`Zrh$ܺB`8-! l"x=`Tm nXrRl̛n$ ńfoϺ- óhn U}a+,Xʊnu WF~^ W8J8uM]Fӣ[1P*u&bp|X7^)htգq*ظ 1:3R|i?f?$lt;4|Av4bR*񿸔-%tO} f.kp~*%1߂lT)}ğ3UoTaҳ>eF[[5Ȭc@A!f%~)~፶v7c|Ha/cgZSn&eϝ\,s]R ={=7?07hQ&^R{X"80nR嫎n鮝t4?܄M$I.븹([Et eۛ YMXcsJ 2kj ؝eqkZ/d4F*gkIp3 wA]d{~; PKWG1 5 nuvola/48x48/apps/clanbomber.pngUT eANPQux y\_|Ep|RLR\eD}qrIp 5,5ƌ ˼صƙ4mC &3oc#Y9 `*9s}N%h<>6&rҿN26$ G>|ިq9pďL(v7%Q(Cxޫ%>LB t.者N]:%gS(0RT|"|}kocy6$>gǚH~~A$J1wpPV0c`oGb|ZLuxRzkAc@ t~YoS5Xw~n *%VE[/.OֺɄ-K pMSzaSc0 %HI@br /pRɸSIHuZ3q'XPO)}ئGdo2ͯ?c<;W=tP YUd5AI,X/կ~a7v… :螾6<O~)o$&N#M;::C3_hR–$Fyo6zwy_a343L73p2"'%~Q602G3摳I¼'H[K ?uc[aLTNz5t3>1q;'M$U*[,tD = Uo,'8JC0tgjw>$}}UTjmWw-36suYƗ{ɐXg;A;ŗ?|{F [C~*E7X"Dnv^[[s]~%5vtkН遫WJo x$I)Zː9QZj%C7˦s=Տ{Ч5r*9{VֶwY0Z$MpJ "(ӳέ[bSs+q &PE6T1jF wDze tJt6֘xkk`BoB'XFaJjj煜^>>k"HiPNbN: Zϟ LE4rWg9Wc`TW`#5 d+܁`ę|_^{U氨~ 'eѦ<8|Q=jN2Cήj \G7UD"Wo:UꀤK͐AvVur #f++M'Os~ej?p_ [3|?%!] GL|mֽPQaje C_5;;[b6gYoEDfq1*6L^Ó B[ G2EЃT.l-Ji _FϹ䵴XdЬ87B (A8mQwNt" ~w﨨B h :piRy͝@{ Y:@Ry$+"Sip("t Y\sR| =E$84-ylldee%5;4g X86QpD ٖx3xq!<wQ)m-,m^-H^BaG6!C9ɐ@%˅Ec܋H>Dd'װ֤"(]݀Hcb+4mdϕ c4̨1(4ڄڽzHPfc%Y@s1d> Jyo*!]zgRŜk -qTPLrlZ0(MvfZ`iC]ˈlfo(9DW91(0bY% .X{ߠerrRj +tl v{1p=c)k*4SzWNYGYxקξܹφ5W7j@Ado2[Ô6...ylw0!ϒ~S(yPXYY)_BQe_=?\Ri-叇q#%>mCfDJ!D$7*{ίOpbU`"NNU| zpXp?ru{uT8e| qU.]u$heD)R  o6Au~f\`wӹb~sjH e=XN4Q|+GY`JQU#"Լ_jZب"%PKWG16J^nuvola/48x48/apps/clock.pngUT eALPQux W 4LӰa{s׹Ϲ}ut=;54{y>h)h٠~{f3NP'CCBO u;Q|U* `\4ٵ. x\-ln=ArHKs\Yz< в -n\\65+rưߜѱͦg6<#v$dހ˖Şi,6n߈?X/ %"i ڢɭ3 8MLQ-Ǟ^y|pr/ PCǛR9 [rjkH DVy\ r)闇n2b:]N)zogx?9^4N< 2k*Q0ͻ^)@-M8Bg*r[|&$7+BK.`DQ ]h 5_):$N H_t`L`acW3m8?/sp7U>NٕuUr,I+ R:0Ǵ$)曀'Hʅ10%U,qͧPR$"l2JOcrَ(j9s'"!:dɀg;?]3[.=vj_ wM#R,݌l&0Wfee!P Q*%47XD͍ryh65 =Q1 |]xg4P{Җd[eP6eS3&׺]ܱ&):sFx?[eфY_C)Յ۶]amӧOSƩaV]VajL>FE|b{1h P}g]Sީx#9W[D^mbbAP &w^h7f@6~[L2@|ʜ!ڙLtv# d1)10?>!¾dh-L 8;~0PQ e32Uiā|n+]ds3]kSqQWK{'t[w0 eo3. 5h)oVk)oLc6<{:ruO0^n|j&t^v٦%zn%ǤM@S3.Q57s$A0ƣ4U4 O֘lZ]<߫ͦ*:xv3¨afG>/Uk8PI(8̬-=[UJYk~}UyYB#oa1_xLD;EuL7wm-M!DdFW`Oc(lr6̺?_%p|VQѲKϖ a'XKX xv ;ًVl)/J>"#9G3:F0vƥgV Sb`E,x\})[2VaS}|(88Rx?Brs^v<^&I`|:xilP~8 [|)N|Au[≷{f4B?~[WJjI1~?V-EV̀7Υ}g.f6Y`۶o?BCPYm}tu=7$IL]eᘕ'mt{- -B G}DImvucQ#=w% p]@ٳ?3XיzA)0MbL>nEl>^׋#ϺFR%t6WUwRѺ"vhx#rS$Fklóq1DsxN- {?1c88BhBuikmm[XVˊ̘^k}DD3ERVB(vZq@JI 1%"KD1忀"*Bxhx'711'bBSy/;(T;0IFP3SR1@RY59l3_lAOx8`*74h!o?ڱ.+[W3[HO $4YG~E&Hl[$-bkm`30۹[GWzzMv( )A,72wz-cRL9:6f0k $B[YRre;\*\KjgROơ锈w*b=v6 sxLFܔWW^$cXfxlLEASjc}UdR, G-G=V<lr(e'#K$C[Ǿ6s>g%ޤ~jlKݜ}H1}IH,<ՀJ}cT\mqbL򭀯U^SܟZ,Y!䲓fh KTP9hɄ!uR;!>ϰIm%|Fu{’u*mGէlv.'\^*d8᳇{K4/`@P)G,JTa@M.I [L EMO&`y1sBRo ٦GaE&Fg7;_QiݣkQ7ƌ SE)F>V`!`sKIC_-z5}] 5e<\V&7އq:W:77TQMf{k쵵ORn*ӊXA{md&O^(7 49ߥ 9;p^h hzzN8l0:zkv.B.LO3.i9g;( 8Yl #؟=@/=ƂbvNFs2AǠ' + /b Bg3:יmQ7yH%>L_M4{l+?>Ĭ+>2$Ww}BEJwܡɦ!| fWɏ@=#|{AD?a˘Q@zs0xZ,,!s}7#oEE`Y&q٧Pm=0p ?|.:4?4C^Fg*F:CԘ;nRHVѨXǑ ƦBU+ IFZg/Be/`dƏwYj1YxbY =Z/k{UzM`g[>ckY.0p)(2m$%lřsLhCӨ/7´k)H 3r6\fk4]} 2.Z§-!{-gq#3Fk֔GIf|_j(^C>y*[mIjf`>su_hs.=="8rU68± k{7Q/['V~/N Vet E\ȵlBLQ cz!Р|35ɩ`0񪅱~vaYAY)Y]NԱS~,xk?KsMf_.ͼǴIdΚbsTg! 檫Q~+Ҳ}י8CS g=k=o&PKkG1*dVunuvola/48x48/apps/colors.pngUT (eAKPQux W{<~g6a:6CTlt$eνŞEސb7{K$JٜOWȩlösw]}}M٦m =JĪσ?GNi?wRvވИsCVpD`ɀ=!qQ-! 0ymf@ 7v]d>~38ɡ'O..+:Ҟ D  +纷\Xhۑ%xrXc)>gzfص5oaP7K:/QDbZss^8Y4l \d83 䔵 5L$2hE{:UEMSO24m\ h K.Hj9|yzYԿCŹ\_yi\ܱ#?! AfPlN#[m!D;R##iԗ'ou&4 eacL:(N#3$"qe'̖=r&œ~oDTu٩yZ),Z >g0QDhI$e|u_7~"E6s&mmJ[.M+CZbYT_"y)UduG>@RțkS c(І@[`zA[FGvťZby痱34I#xiȗ~|X$~URaV3{1:Þޏ B"V*H4R3QY,ox#x k IBx&[.?.4v%u>c& i[aabY]\6!T-6?D"= `WdQ6жSxjR]g$`'/4 4iI nƑx/ uR7'kzXĞ:Zzq %]# T+?ٲFTLܟ6+LcܻVnLh_dj9qv;~7`{hػנxw @`cQ7"g_+o{㗼 G^9R׮yT+_A^ x&:u +-@Eg>+P!yfgn[Ds9sK9kN->AԔPb"lVfk(ȒnI#/[ 5W8Y}96htF $]$-)_!W>@nҶQ& ıL!"pմPR2xԊ}Mq#'hP@ s_u#vE>FפzeyzlXh\{c`r#&WElm-/2 gɂn UGs솮ܥW?]@Ya&i=2цBF9w2VѺj~QCG^3!7%^&l"qay[$Qr?*'+S~o嬈ꛟsI\@bb& 8ݗdvp:73:B]L68L g촇JLUքAqqMyD.xYN<% \2A7)N,C`ݗsvB 7'Z0Õgt_^)ci[1q& װ$]/m܁mu[LPEg(6SIS=]|wWOK S57^Ks@La ˵DsRmEا~pyʔ?c@A!iG-QQuZ16}U*\cm?e F^mq;ŕ㗈ȷ,{;7'fKedοWFѦ wDaIKz "Y?4~]ݠnﴵyox2}T@_'na,/Є3MUYƬm̡ m<"7UuBg:$vQS9"~9WtȇJ1FρCCĜ2CeAV$R288 >Y_kޫ7xUa"V8E:WEo&=m󯛈.-^jP}.UѨ*4t!QiVbTG3@c&5G}U_J^vsi) bV&a+.JL"< VRv LNy,-J#*Љ_kr:n/FvCX@K\Vc˖ |O{&TfІIoFHI~١fs \D5Rg6PNגس;&Q:~emk@)ʹ~sH,ݍE:Wj,lur $ wUsju"ϊ%9So}b-mZ/_end7ݽQ} uYG߇/wފ̅7J]z/k"_53 3Ln=ro`Hq4˛h ɗ(\C A#I)vq3zZ 滾ǿ*=ч ާD6qֳX%ӣ.vZ( a 3?J?[ߧԼNɢ+*#MoVl#?E;<Թ|MfFdDv'3oJ?J¦ LUsOD|e&\L%Ih邑,1; EycYd 2#"q|Zrn2[sw8()쁃f +\^K36Ul%|GAh=G-,dcgxb*g蛙RCCv2+ ]e]r E?~pb$0:rqo΄3}#$CSNj>$])DяfTYKF=6yC7Rΰ3rĝopPԠs*#ҢӢhAo!C*~g[`Fz|aRQbf,\o׈jIMkIk⩹;yiUis8*]@kLn.`pqMGSp[h.MR6܄_ne$6*ywOl*5U*:sx- nf-꣛iġ}!Tl 8|4 _Y$1#0ҥpZi~N5;)ey% nj4ΙOːDDg5o{R}gw"oS.u-]|p[[bC6N2*e x?`Fz3&m WLi9I>1ַHӖ.I8I?lcIYWԘC.MLeo1.B uqnBeZKpŦ˂Y lO'|Sz]͠4Rnh݂ZkD'uj3+.N9l \MmiFɑ(V=5:8~[fH[ /aP*u#8H0y{Kex+昈{v)8ͦ6 p} \GV|Vx]A6&rҿN26$ G>|ިq9pďL(v7%Q(Cxޫ%>LB t.者N]:%gS(0RT|"|}kocy6$>gǚH~~A$J1wpPV0c`oGb|ZLuxRzkAc@ t~YoS5Xw~n *%VE[/.OֺɄ-K pMSzaSc0 %HI@br /pRɸSIHuZ3q'XPO)}ئGdo2ͯ?c<;W=tP YUd5AI,X/կ~a7v… :螾6<O~)o$&N#M;::C3_hR–$Fyo6zwy_a343L73p2"'%~Q602G3摳I¼'H[K ?uc[aLTNz5t3>1q;'M$U*[,tD = Uo,'8JC0tgjw>$}}UTjmWw-36suYƗ{ɐXg;A;ŗ?|{F [C~*E7X"Dnv^[[s]~%5vtkН遫WJo x$I)Zː9QZj%C7˦s=Տ{Ч5r*9{VֶwY0Z$MpJ "(ӳέ[bSs+q &PE6T1jF wDze tJt6֘xkk`BoB'XFaJjj煜^>>k"HiPNbN: Zϟ LE4rWg9Wc`TW`#5 d+܁`ę|_^{U氨~ 'eѦ<8|Q=jN2Cήj \G7UD"Wo:UꀤK͐AvVur #f++M'Os~ej?p_ [3|?%!] GL|mֽPQaje C_5;;[b6gYoEDfq1*6L^Ó B[ G2EЃT.l-Ji _FϹ䵴XdЬ87B (A8mQwNt" ~w﨨B h :piRy͝@{ Y:@Ry$+"Sip("t Y\sR| =E$84-ylldee%5;4g X86QpD ٖx3xq!<wQ)m-,m^-H^BaG6!C9ɐ@%˅Ec܋H>Dd'װ֤"(]݀Hcb+4mdϕ c4̨1(4ڄڽzHPfc%Y@s1d> Jyo*!]zgRŜk -qTPLrlZ0(MvfZ`iC]ˈlfo(9DW91(0bY% .X{ߠerrRj +tl v{1p=c)k*4SzWNYGYxקξܹφ5W7j@Ado2[Ô6...ylw0!ϒ~S(yPXYY)_BQe_=?\Ri-叇q#%>mCfDJ!D$7*{ίOpbU`"NNU| zpXp?ru{uT8e| qU.]u$heD)R  o6Au~f\`wӹb~sjH e=XN4Q|+GY`JQU#"Լ_jZب"%PKkG1MʛEgnuvola/48x48/apps/date.pngUT (eAPPQux 8E g#~ఄs]`0UϽ#>CY3q|dBU{i\sf_9[f 6bvD֖-{^+k}RʼyTTTlJJ cuML[_Bjʑ ݲ%r%O֔.,,p8֤;]2 AA`wwKKӧAXhoOnp8,*C\]CC eJl콭[lü|%Jqq+=Rz&/cHNCuiNԧTW#cH Np : >]XÇL mP׬cGx2FH؟ -~z{{pJ%`n##PnSI%l^C3in` :?Oefme4&H̵B+v.+ _hc\?X,hi >}W쨾c`A۠gRc;+a/4ܚtIwkxzNRl5[p'``ڰmGXf?yNcNC R'r|y`fs.@H0J)uI8nQ *K{q*a?5'Ģndx|LPWo˻5ma iHv{*Eo~WwrpB p*؜Za+ن0F:M}8>d'ɡ&\TQS3n횐P|HnL{{{XL# ڛ&&k eg}B͋O}e7W- 5VLRn~Wi+|wT_i+VrDHq߹bZz/>. >5+{qS΃J \hy)%FCt "X?76}`Z݌UٌkܜƂ g*ǐ0xZ[kPEGAIyK_n*fm,pF.̂?5!mg4UVWj餑pi63)&jDPΐLrʃH-ꉣt |]F'v>`c;CejSs8uEa=BPc֔2ׯibLG |P¨ +Ӭ]^d~<'a'ҍns9}ݏGK32W$D K괉kj!=Nǎ}qO  ( :7_˩/^qI9f q]|lz+LzH:xn%5~%o.:(N!gr00[W-nt?aQ}$!5:xm:eZCKVU v cy'Cz܌fY~e"`҂ouzGmAo@{++$ $l%[Z)\U=%y$Ȟ'ݒϊxϐ߂1s, **kH7l#]1;DO ж-ێn殚Il*HI4l6m_%|9.ӈ2nKq*hMNfB|MےimN&y}WY !Hy`2[<ձ9sC[c6rSkV_%#GFca{)`:?,,mCIs|O6jy,%I*qDgѴեt1CPhAn+Dw{[9\.Ϋ78 , JV(W6֮<!'tmowI@,[ꡀdBinґrWyB.ɪKQ {W>wv"әضVqƿu#-}Δʾɂ7_U%D5EOT\qݛ7W ij vpx^4ah681&<vΣ:%8Ft~Ac({vtIXTa԰4r6U'p~Y%QR<;va_?-A#^W7Cg D|3܋yI$Qy<5 ,$ u6uaQU|]sG/'IBQT8|[C9s;@;$UܐwׇZE]_ ̵O!R yP3JL:N 'zogeŦ;4SyQ(gsZō')^ffv AB) H%+ZI&&2U˂ GQٞfRI3T$_r%:p|sH/z?"L,sբ5!k>R- Gsd.)l 6z!=:hΪDw󰗘aTHG})! [|PC8"s0M-q ûr qsC201v:MЦ܍'3˕$zt]̚2*N`{f$Supjn_hI '+dѬ\Ta {$UV*6܈RV$п]F@*_`P֑!x< n'D^^0{&pJ<  ۼyWF{鯪j 崆QwW?K=nr|9\|ysI9rLYq"N`mߐGb- V(=-dS'9.g{)<:'nDB5NTF2<mU,}*ZZtIWuT<ݝ5˦OcDdcuFUף`\3moYY~Mك%{8VW'IzE dG? fF""c:{Pxldg5a{%mmx+y!I4 @>6"N+3{_Dʜ5KFC"&Iq/Ɗ 34PZL7s~h =HZ^0b+_Q Y\+\(38In,ظJ̌,Wr{x\=IظqmX۸y!Xzc NN3235DIL|5J~XT(eX5 4%weu ?RG8Qxwa:ZZũ}} -^Jq]iX_}niF]j8[E ΅]/˜f$5.W>kצjފtqW@>=B}hd?LV%eŏB&^ܲƎ`7D$(#ܧ9/ }1w{=Խ}2(Uo'ؖ FĂ0YNyuۿ2e@$*vn)=1eؼ!uM nA]Ae1 ^5+vMew@rDdUiwwfVOϠ@W[2/P:1P,5.56oN T\ m#M@@i:wI$F++G_Er3u/= }TߙwVTA: 3e{*} ^7~eQlEӚɳy :%ѩC[g[-_]o ]\pQWJח[J^O}}|lۖpǻAWr=}דy)aR+$]N*ZyH]ag οHw;%;wNΓ[ag_s k(bd{Fb6Z/#_&mb剀AZfat;%g!@@g0J0G /rsJJLktMm7dO RBWu*Fm.f1 .Apl4#ONiqߤ; jb븘C%KginPL<~ճg>膍C8]knPe7,`5(C8_|ZItr*;U\]ZXtmcnX :$YsKKx7S7rH [%ɦlۘ<ק1أ0e4cRZ⤰ܠ-N>;(k%Zyw 5^]v{Л I7|6 BQ/؁z1<elv29ƍSUPA:K+uJY.dgλw:rmˋh]s^!W`/*{Qd}gM n:$L룻,C5BqL`:[x|~uSu鏞U:u:}~ݿ;w254ݶS?]#g*?{bvl ̳~ݗGr? 8No|YaW  j:\-@eؚ5OD(<)@y޻5WĽ8?xϞ 7JȻɦ-$0THF߹\ 0 K&ej5H$.)[Z`qrݝ2,H6ph+EAͺO\Q^Rc,ծtZAM?0\g2^\ɋ3Qں!Q._G*PzxG;;>xv쮷Jͭӄx L.ՆN rs9G!@B*7 x|-c*+)UF҂D[CvH@BAu0[Yy~.IFlj2" r#qmˡ+m!]pN6}۶,gLLstNcޒ\Պ)+Zu  `N[hL|izjm=돤xꦦ&Zf&=ɄX@Y?G 襁ù}!9^PP8rիv"^f .F%XLb sfƉ> XF|1>ď8@v+GPjjk`l|d$+q87Z;99Z}L䚭m >B`P+M};#&)!cqcRBUƿ9mK-´F>uX ""++m4@ȓ7uIŔadf8u%|NK؎syc8!,߾xp@+DX[o]Be ңX)6G3rB[.w30 g^8j `%fA >ܷrք G-gTD֋y̑iWڟ+=o2yuTtFU|ͭ>惽m8Go }TUA`2F*_q)fX%1(4Sꉣ5%A1W 2$8!.UO޸)}VA컁$c_`O5"7,(CqLMl|(A + MdE$'ϻ}Fe۳}A>%g1 E<ҘL[P V-< 2n"0Dcl//CpO͒ XJq7+"ڄ2E.-%ݭeJ [ 7@ckD}m qW(L J=iޕ.JNbq}.MB(NNTuB{m 5P2\r_v; 6_ فQ`IB,0 i{Y A >H'=$60첞ZCMF&򩔢ɭ2SXOswZN+&l0`"j$LpTSԕ {y+Lm/%ďr~YAtǪ9ԉzJL.܄{+[VZ.PM/SB<}ؒflT3;GL"턈oS/H[c}uq*SѦ.f&2h}gkm!b۬.o(;m SsUjNl<}Nt|oLaQ֤Z`q!5v*&Ep q^'|\Q!9*>,ӥ:l(N<}twiNȰ?{u$*s0.K&\]H _UmˑaZG=_ Ȉ@O͔(űs8gfړ&B /ڠܤta6}Տ*HRf=uui^2r~ ?!PD1׻:1=PjnsIx?IΩXν2BgIng0[WaV`r[ _ubF"b]qO?KS)۰$Y`:AΎ?b1DGi=8 х4~O$__R]::64 n\5LAR jKLdL$i[߭OrZfc}$wѰYTT$ S DVj@Y3d@y.FFHY7-^w;by^Llj%bOW1g[%w}'z G6=7kɞ+J]SF(ɓ:}sW2Ks~~ߝ?~ N1Kz*S@g5EӅ8:8ǹn1G1PYVrG*K¯JڭaOptc^dn+5U'(~9k r>'1uuC >@Ueh:6mty Ԩ"L$ؔ#/۴ vH[)Jٽv]yoEUE +l&ቡOE)>!!-))Ŋ]̮Ϥxf_ l0/Sմ2fA381S!66#Z#,o?ko__i8 -\|h] Iڔ ~8w)ܳGCC-aZWCzCєڵO`2{0Q_ԊV|u1Q`j㻙lܧm'A{NIU&W-HǪEDkǕْs=e/ǡE1?/kx JhK\cdcj $M6]p#Wֺ"1lc{n~/pvsp]9ؤ9 0(n6kԻJ>q鑮c?~)?T*E\5\r ׫9 -!cu29 pf'Ecc?p u˲ <:Bj+K/A/E\Dj9W0GFG @h>ttt<p-5:0QN24^8+8+"S5i EfgRHviuIn%6Q3T!=`ː w¦0j ,ڭ]bi\vfh˩uNA \UU7X^K >! 5N'Lz2{NT0L'RL3A~@LL',9ɕ]PXy$pEk9k mP`y,[`x jqjHs7jX硠O3J;nlY^IZBk^1Oz%A3bpT7ݡ-beIl n _K=iu"fGPx4 ܯ*r:熨b>Vˍ 1U o!ug|+E)SBO oFjgcusЃiK[BT㣂wjz*Vx!1~ F;O,p,s5V+{m>(j{OC2(8[-Q5-Iv+kEKV3!9D=яyjFo(:aBuOu7__7x NIy-onj&&&$S])Z Xtilί]ƽHy-Ymӭߡn>"n/;/f $T_ώF?#+o,K[uO*}ȿF,Q /nZ(ltp'&i>BT:-V W?T~ZE)>&>”g.<^wL[#3TCtV@ ygQ(ΰk8aS8 'x: VjCȜ]AYST%Cƃʅ&tãLCt]!2UTEA0Hc-D^9hbbhg?eaN#i}_h(d w}rXWjwjG!~dh 00\pt+w9v$78@ǘ)sqi|Uwr%JEFc0 a4ޱض5 ̲W>aϐHw1>rãu kКMg-KUfi5}V hn4j#`) VYʎיKjSˆޚ]P;QIJ;"d!$J$ys d?8Pmhc*U͓jQ؆.4[)wlƛTtFGo_<7(bWuf`5pCC&l1xќ[qY}{B鶚, 2T)x/|K75ٰκ[yAEIv-xR\])>oOxvdYv<48u6ک Dj_GǸ*wW ߲#J ϢvZN}ɚ孔򂪎1OHpL?b54o!V}E˧.:^|4_ȝcƍC(04܌72eݻ0s<-x_FѪZ@ j+eG5Oo3B;rR((C6nOl}((%]Yj=t\27Oj18@#cc4ɬG(wf 0{ċ3F]u9UDqE¸h'zxxV45Y$.JJm3 ˄ԛ'F'Q0K>d|d̝҃ywIGaԢQ yfxݿq& 4Ia\Go"8yI_.vpWr-Cj쁖12+%^*9ظ$[ԧ,>;2S/mKw6[$q晶Hѕ畎/ʼn#;1Yt"V2d^29/׿⫐"s:kQyKSWW *{1P2݌@- ̀zѪǿLz2Zv0Z8}o./g*F" 'pھC9/Z݂ l&otls$zLԣGFCt/h04H&CAJHw:؟y/ŅZX(b 4գ장>9z™>J_@miBVJ +L#Q[5Babxf*-À/N FKrsV V3=BoPky~C5P7%PCukBO3w|bJH95_x:KXq&_,`2 >&##mxÜW۾N ?mN`kO'NhC(PpHbg(OWYI}Iиۣ2خUwcӃ_SD)~3MžaқhzpDhİpLt8t]խI=Rp&隸N]53f1{9ﮀL٣}YS ?qO4+';oTG;y00D$ƅN69w47P4͟rh(3Kw+3j ۚsK-P 7;»8jWѝ돪HlIh1Q14"rƈD9}"V V\fQ]Lp%_[u|cmΨVYT?|'ғT/7%Ak!lΙ[A=\ƒS,VʚKR@:CLߜKlnjjA}?|P}H Wfm4 tjӁF`I"z D$#\x2G1VXb"_B,22~~qpP*Z>g~ns, j˟gKxXҍXvxinRt871[їK珶)D[m~;FL,)5\܌;܍)~05Q&TMf{rc 93q4ք]^eP?fLY,LOi@l`zfA_kh:K*7Zʝ'U}ovV@h`ϰvju>WO[E~o!=*-19%={#Z} r 0Z*7u@ %sq P-w-\Oy_V|/Akk?ჼM=@8sk ` /[8~g_m9m-!e,dE skkI{fd4JgXu?7\_cd)^GbT}O0"Z-*ǿ^f)5T/TI/N#Gڈn q&SYɹd'؈a}9!ՔnF\jݵJ]54vx Yf[Vz{}Ұ?>>\eϜ\m5o3] }xH[ kçT7e-Xv2m*5*˽)Y 7$y'.qT?wZHT nh=D]Z2Q:&}NJBr/_I[p7' #ȶq Ei?~p;<#cY| -bnreshjUEFhG`glӾ1Qu-)os52ԟ"pνB=8AkЦ(<0@{`zPVPKToG1" #nuvola/48x48/apps/edu_languages.pngUT p/eAKPQux WiX/dIP+YT,B ֊%EAAEIh]h]X[񺀊 "$䛛vg9%h{8:sTB\h\Tlڑq^dgWh,i45њ0l"dj = V_|l& AC&6,T͹\:M٢:?Q7ӖJy&mM3kFK^x >@!,tĥH[5;M:|é؋U (yVXt+ŋ<#}L!( Zٛ1 0 zKHPTͭ0Oj 6_h<{|ѹo]ycZ_N$V8t=WߓniΙX?y5Insk`۲#IUL lճ]T(tFʣ[^K,on)cg dcj` feecLIWvů'~'e - ۉH͠ޱ3lM{J=P:F1v3:Bث2h: A8.{N/`! ;[Tqکx]•7+>UgqVzv'eGN9Vqӝ p~Gaz+LƻToH"^5g a~^Āf$@cH-{ 0߾ ƅ[#3kf~[ j<ύMhE\vsyqP,'U?@?BQn v@d%[ݒ)5ЈeAZ-i) !MӔś\}4u ^|.tZ9S÷|w/wFsjGVf H>:}A%z{uK5 _V>eKb] H(3YP`;ұQ`$m5fߌfTΗ^=x%sS9B::=T[DNw`y;.E2S`uV8b c&yטXKiuŌpb yLm eϏƜ fS@+LK"h+7e m,1yql(b]BOnR.cLl,A5P6dg,ȗ1DM*Y9?tyf)4>) zsNtU?l+`1zb&1ǛPz`gII|RZ=s^777%r?d)1ƍ |%f* 뉶K,fےWJn484n.M^<.BYrfdlpUC5.%˥˘3A50ª(?U-@SLjVAb#5G8xB uvq0B+mQ4k$gޯ`>b&w%"g13t&_臎MW&F}Iz젼Yd &^WAc"CѼjufr+3q%F؊fo{yW,Bz\v=<\~ɍYWrm}gѩ;}&ޢNOKuPOC8}~BkQdź Wbgq\#H4ocT:4_EAS:a[o~o!uʿuK]Z/kp0K&d2x`0q`~Au:ո'y0@HO_ b25 ;q,wH ɞ\ҥnqhC#iQ_ΆtŇ=JJDNjGZ b5Ÿԙu\` uеH}˟ObR5kGr;\4h0&w)böm~ l[o*oP'nld[s6ߟv\BX V3:HߓDi:.%4gv$s+q1`ϦqӁX*2aNyؿߵD_';oY^bBxV:o|$$L+iRY;ϐ{QB#2ŵ>KP.;DgV6iTn{C[J>wuQ_KpoRl 8׾`p5I犜%7w\ѣR>_P0af:\l{y,HZk/w䬎jW "WBA {dW<͚$DZMBC7@Ы סx= C*~ +_pGsmg?Zǻz1P Եu`vjT3 @M?r6k릿͚EG+Yv3Gs~'@'nzB>e &v%Վ SlQA\qY E'} X##B]n ,]s|b0!t%^XihJǬ\KNߛyOr'4Ek{|6FX^zʌћdӣs i =rmYJV`|sQroقAdA ٔ\٤r#\y ; .۞/fXeb81fU!c|؂TgV$ݓWx? yѶ\ҨGUBF.Y1E".=AmK@u4YH|}_;nP5߰z0n Oa\JXol?:Hgcuig$`ZCY!x5%ePjqt4od8*nu-df7큨~GN|L7q:3Q,E~g f}oD)MpaP1*)\ ¡& !JPQ3է&Gi*3UeèMZ Ve|0xR:AHM(q4ۡhSL@} Gx(rB~(tnml4{վm N$@[WF<{ Oi7i *y]M36~x?+(4I,2qts4f3z*g?6U65ӓtDgj/ؾXxMp{,7@kJ/5\a?g JހzXIt)?4ݦp%R5d\ݟD~XL@Go<2g< Ymx,,_BJ,[`|9Qy0W)MNط*68@߬祕 1MD7s͐iE1m<% aOKX9[M]E,[Ge~ /qRe\Go- 8Yp3=aov /`|sPS-J%Ў5svY(NaY_v:g-8fF1֝/P#J+ V:dޛL׮)"- p4I"}̣_ Wn M|HGXuxyc{vQU׮J)ɨ\R 쌺(`K).BJѡڑtH4:Ch+>[bX#7ϫt5 cz"¿X_M{}f-7Z1#{n[L솟@#"{!{ '̐CAw W*lgo 75@,Fzȹ,@NɍH*m33&ã-}{Gſ=U'+bب;֌V,6Oίc8 HN2J{!\ ~HZq4!ɧ E:@) 'cJv!vǖPKNoG1k  %nuvola/48x48/apps/edu_mathematics.pngUT d/eAPPQux V{<nn[l)4ݗmUNvί"bŒr I1:u3B$'VIVoVBݚ*üra[RkN֐bnrP}1A/ WM}60XqM& 5%;-N_CsH:JI7(?RDk?TIDE \R 3(hĂPoK43P2LU &ހiSPD:٭lFr1BA'$v:Qd/{cHo9]Oq _4}!U9Qo(;A[Db0JUp$Xsw1q٫\"7^@Xm.mhVAtor8h :o|l,4b~ы/K^DYU{zz]^0Xe6޻R_APsL)손yϬBm~Բ24jz#1<+ }0_,p2-I$C7p3Oqs'iKcMko̫P ua ~QͥQ}}UZA|'7STW-HOpTj$y61]ŕ]Y/*XkuE$-JU9ǩ&#<2cOfR0|Wann[I"vɾnm?۽}T@H"x. L65hVdK3b7哇]-sӅ{)dG)O3݈2/3@zn8D{|XwiOHVWW5E_tsq|6N42Iҵ9L9o>n㛰1g"b4 |PIJg =дQ!sk[Z̠蘿R°6(rѕYJ\xܗDiTŎUw{[WCAwqo,$Ɂ!ֆzy͂߃gxPa݅pہgrQys3?CV %Ij.Y>NM"S}iLHd|laf`G6 CSK<h'n(fnb^Z ! 9~rKqx(Dj'ZWt^bGr8a)S2=X&W3]jh˴9Ut.Ft§}qV3Ie%ҟ`h9KT9bѥ'e〳 :T{(m^,6hMz=9Y [!0$C/"Wôz2ݐ\4񂙬KJ!UA(0YД[u$5qpTחPIf1tbXjA+cK>~p czr"R"3BQyZWӯcхܒl3̨JEɌm,Y+eq{&ZV3 !{dKc)Y>~?sbk0r%]БQ%kZ7/{zxDHz  8SAqd0L`DS A44N#UuY26I-J4`oߢMtVn>Im; 5RЎWEI~4Eh K $a-{v'}ߣDn ʶQUr9pPHV2 m~HbI"65.Z62YzM3ֲZs \T63`s..# R{2FaBl =G(/|Q;s6z*WՊJ+[53NDo$xwנijR;v&&wO_d>_7t} ueEТHzi}hWzAWt8+yw`3>ޚ/}n} >. b1"Jxj_/!W| ~0w"TߡDނG_i`RRCwwdntWuۊCwu›8<*ʌU*>w zSf>-TʵC&LR =nc& =\A3oC_FY HD;, vtBwi \}u[/Qz/-UdcrtZ 0jg%3"cx ?U ~ZyQ404ì~I'ퟲS7-A5G M j%}W7 $ϣӔ0FqqugTMUT`r,m8P10bjNL|5~f()4Y1~FSn8 s6p}ŀ2:'4m^ݬ7 \j+EgmCHkCXE0|r*kޮD̘ySo},'PIQ*%AE ц Ow+J:7:#Pt3.9quuDmz(_gf:a]\ <3 V*&כۮ[;B^~`VTHXWE VPX4Cm[,Q኶yƣZtq^&sym-P!G(Oi6 m͌5 l0x#<"͐cs+ |RlAʢ졧^_~RS =zI F#S41 6vL[f Gљj"?Џu[g9-c/Ncn#WE \Z2 cR7(V--ܻw$5(S;Ka՞a{LA''^f."#ZɚI+cUm[5NvAIz Xhߨw8pO(2쮛oJ:%ܕݼ\t(w̫Ϯ|%(X!r%=oawiKR!$|LeТoo= jW FؓdsPKʼcgG,W=ىlalfy@u[W-ɵ&'$2œ Tc inHRX޾*&b@Hh5%hXY ;?QVD<<%Ri{&7|Qzpy,xf͍e|Vx阩GWm677]λT!Z;DSD͟^I{/>#R:ZD+Jl9BS0^=AF\ MOu1JQ Cễ?LWfeZf)|"_O`懐WiҀQCTy{0yDՂ)Kt+%W בeY,{lzo5AY:][7'yȠE%F#O@xሔ nKV&8%?Ώ(kf5h VT G^wf%<.4 /0A977͍L`1tDUp"XqJ\BSW8:ҩ)VBrB2_5 ;; K= E{v`i_ wMDǍaJw,}4{2j߂p(1BV-ϣ{sW'7 ,V_vK˲kE%twUgu Y;م1_ʴ+9΃eҏMd*%Hω;bXWվ_%J?X>Q~7d;'6RQw_ؕbʴT!& W]#Xwuy ?]TIahOJP>~,4<|^@`eEl[xD+1R"f^+)w1`Kd,QDnúH=</bξo{MNuS?P\MA9OJ=;u+g&M:ۚ3BEk'Gڀ6 I/gYߜQ[dH!i8.vCE!5ǭ!L? 3dVFqPL`85ne_hq/A?~)T~~^VAG{m76b3NPX`ccl$2Ӡ!ꧡMM݀ax!GꐃQܧ=y, r Rq'ߚy`vr*,Ë7GX!A;{sI*;Tƍ(xx@wMg<PKQoG1!z\{!nuvola/48x48/apps/edu_science.pngUT j/eAKPQux {<ن/[mrBRr†"RTsQm*!$m.#$kT'%9E}ri*JBNJ&a|z|>|~=54ڳJRkX?*u+4Ɔ!AdӁCC< u.% 0Ժw8xGjO6>?wD6-h|՜?LQ.֓8C2OPDb\>*E8 f+Rc)B+lF ]#d! T/"B b!4e Noc{T|(n||@Wt?O? $뇠~>ufAhKcV |d=.AGnTۻxrLKcNn!&x5A^iYoP~S)i:<ȮI^jkklT r3EvJY9}'WzdK67]qHэ΃> t*1*(': xyH{D0rE pt֋li mm\(ݭ:bzw_p5 F\Y;EQ(dۢ񩩐*hMv,mУuGuYd8PY8>nfff-E)v_ R?}u6ݝ뫐\09Qit4ܕW\IhomOU3mQQXky4Jt\/鞑>*St]W9G )c6[OjVql7Ofc-;cYlk/;eWx5<3AqT cVa˲ ~L'?MNL+:9"_IQc(@R;+y,s`*VZ/.+fKqN#e\Oi˓o|ZK# :\B¶|YĎGP(pnItz}rzJ'< !NgJ_K!ġHQ+zӜSY|o/7:(HfaY (q\T].CY+e-%-^^+C}`wF ]Q6F"^9]MxcNPwYt~k <VU9PpLz{xɓDNpՆ~'U  X)Yد&]ˋMxۧtw-˾!Z(->y*|T:/Y&yH_]z,jU/7Q䇉i_|X8/:֖'0w,ncMA0TgAl,= bf360e+?_t}bD;*i&2࡯ .z,_r*r/sE[j3$xnx-d$;e]hUL: `_Or2>ͷ4\ພCVI+߇`Sp?pb`$U>>,(2UY5䱶G-]whnOu p'0hTM/3:iI0杵+Fԧ>P Z.Q"#q]e٧C!No?OJ],wZ8uJP4Td9R|(DF8TS(;^g y-ް 1K=Ii,8/*sܭʎ7[6GLKDE/Τ|qʳlnl+/y,Q_ʼn]~j {nV9FAo,9nF/ݘyGie &VB睼[w_m`|mRIt,cwO$X\&RKt:Һ, VAܼDKMʋysoH]Edxt+a4:AL*O.i"5B.A⿃8Gcl}e ŠX{+@{W#:+TfқaKxӅ3ӨbY7Ǽ^IFV)VdA._1 '.U"r౒􎿆,v e۠'V?r=ǾJict3s=0&}Z߆C >>ԕ1cw(xch^DKxyV'LU5M[B.EiN6m9"_gBD ]߹K𕫯~bNtMW+oRڂBQV;' q[0oI^ @qh~脏C"?ݱ_z)ޣ\<)(};SKժId |3ix5muE2YT,S8B.1vLۃӍ 'ptJf}wRG3؀s;ښ&YYSnB4XiX/Mxp ZZ.GhoY:xLY\:1}ȫ6{[A!V٥l}:ی9A#NW/V1q }6 \4{n5WY"x6bUP)B'[Øzukjj[fAB _\Q"s&Nl-P{vӾ 1,VQ=VO(03tӻA{vu׍PK.G1 MLJ]nuvola/48x48/apps/emacs.pngUT |eAOPQux %WyX̔rIrRtRp RZMTj3&({e(.%"˗{׽=}\߻C_T>^Hok#5g|1SLT.MjD1gZT|D4aq3: |- ;h "GF>wKXlqGjjj|KKJԪŹ&[z0=,@UAG3u`9ccT8hƍL()'iɳ՝~ym#)fJ~pC9# ccCtj*<ȉS^GLlSmBǎbK_!u_Zvvv~-U-. #vQ饅ic )B2w, ډN`0oH{6hm=0oJR, ཀྵ)[|N)$z.2]̣>pf!U#Zj'3JM56f r <I$8%mmYNnq6mb܀DF(ŋFûխ]<-h;LH@'׾=e/*~< \ *㗨fQ ZZ)2l[,8iD-#߸đYaZBA/dvk/HJ8 HRE KFx 3!86M0^*5*-}yk_ɴm oˏ~)~˽{o76G*|<Դ Z̜l29 \,mi?- L?ydC &\~s~5[BDDG.|mڀD+nYAQQ 0k(- ܆@¢R9rsP;CUvqnKf"HL DkӶ4LԹ=yy!8]wK.\~hCѨYg"˘8ۙ_[]HO|E9/hcG:9U4bq.:`{H*"t|G@?T  !'7gu@ 깚Z׻Fh%|@v$G;ΰYmiؔO LӣHɛ7WF?Dއ5j{f"b^<%*`[1q" =Υ-Uݜ02,W>} U/yۉphs2մJR~^1x"rȠ[-MByڪMdzZŭnaX9R\Hܛc+ɫo:&/:O`pjbYVDhi1]'yuW yc< ՀjuƉӡl"Vǧ=XMx^v2r^O8{*\0ɟ8L z8WwL_M'׿ph̡Q:$PS0ٴW}|^i{v^Zݾ`O*ekiUNK} 7h paELb|dDx*k ~Ng&nB,*9VMk m776&,L"O2{xa$m K=Re?wl#axC}7N_(eL>X:zQ)<;}mf憦@IĶ1~FM# d,KrTJtPxa8\MF "S&̳P5>+KO/X)˕خ8 R`Z֍/Xw)>O}-O)hEX?屈ۥ{\Gd{ccQ#Ax l }i1{t8Z y'}`#=N#c)to{@qMbhaْ:5AZ;a/&ƢlfCSlx-O~eۛn{i|.؃&&BVyOUd2,z]s njk"פtdzί"J\1mA={ 4FU'кx0"bl HiU50ҝuL [WRC>̴tg7j@8閥n/yYP*ۋ2G$t8'*? U`o-F, e Kk ӓ<^>ڿE%cY9ŗG;F2`32h>R)%K*dТ'iqN6e[s&7d>~$vMU|yŌj+qGvv7ڮ^WdJ=g~kT!76i CV45o Ч .)εSM-hKhn4u/*3Tve@t"6-%'ZiTIIop#~Tk2pEʩVSq_6~tI43U?AZu{\q 3L>;> k2"M<~}V* EOjoq_k"ܢʺhZ۳0 E\CIHiCaD邹 @`C9]a?]}Vk(yՑR7%$K so_eJ]Kv崽RmܦO!˙Kſp $ɦU[p kFזBEo WӾL֒ls7MzSqib/껹 ui(w0wA1ywb)q7Ѹ#HF1U§9uʳG k][z$'_2't5!^Kf` YٰxCN)V|J} ^<;9> tōY?>LB{wm@hNZ(_UGP_&esszXfƞ_So0,3!?Ь{lPK)G1- A nuvola/48x48/apps/email.pngUT {eANPQux ]Wy\YfQ0V`*i%%b5XYYNcA"ڂش6jf(b#bi&*Kǽ>!331@f;o 0X_f@f (gTi|vpFm FK = 򉠅Ebv H>Iw;&}D17{,I{ )7 >}"y:^/5֙4 yo,Ny@f<Ň:-y|pzyÉ|7BrͳמcCaCd) #w1uSIEyNr$lsv &SP*cXc`3E,Sg8g/[s,u(Mmڽ˷aCUCD++ݢ%P39ٳOD9xU]DZ/D"^ѧ%¬aVN\͖"pS՜ *R٤]\πk mkDQ#(0%N yq.Nb^Qe&LӔx&ȯodLI;0)?KWz^@X>۵7aD,wMU 1YSv[7w͜-O*{dqJ9NmO;:o9} 8*%Ad\ ?N0hX=lEO?I\T8' %ݾ8{:,w6 hepV!],x8En]@}6r]<jesU}BR&))*/m7pOrI[W& ǽ6֡}5(Yt#)JMGȜmk]` 0A.``>qWyisbNɦz Uie}QRȁ ^gPR)ݚc4`\^b^n>ӯMM2JK>AE$~D]Fz+|pZ;lVHKIcGY qϖEmD pr0NmuEj=O\Z/Lp1 &ɚ: ڝa-POٹ!U;pgENsÍ)'4ƋهH?!Aa]RTijDK\S$3+`W!O#}*E/?994SumQ!ChA\Q.^é[ t ̟d7)!rq4KC\lbf@"ڏ'1tSoWS6@NynsUC]`Ga6Dc"7Kpo\<9x7$5H"kOꞘ+u7Xnm\8Ammųûz$gZ(RRȖ[HF}A t.ݨoM];9 ^_AC[J%3(Aտ.]29wGF/EV;xwQBxȮ<;G\fTY4 ..iZ}TB4Tj=Wb9se}߸I Ge Pý 7y՝U 00ՙI;UR~(^):r3&-Id}alTaTJ #sh.9|9,vUi-4G^UD9ӇJcxK} ߐ^ZO<*s&gbd~q\{Rs?ׁ28 7ϜkHoD~)_{%9 ѵCZS7Rچ$='3|y lM zBh=0-Č֊~:sYNrFA&g$BF?E;D1ܪ0┝(g!0˽lI͔qxQL d."#- _?8UpQao,tQ)aswxe66nqW; Wk)B_*y3=4,gN =tjIkN_.W)d2 _#ˎ+RDtwOjZ#t.g647}-q)Rl{t/&T|1 2~À7pH{W2<8\q޹,eZ*y A +i@k,ޕPYKI\;'VupP0Ą;+ΚS)'.=?RTm+sɤʼ2J1")s>H@Z+J-"d1{mzBŐ8JqjX(i3^ɳV-6mYgw;$y C9~WTnk5*q =a5;/ ҃NB.ɇ$.EL$ KiͦGu o%zXfte++"4f!xR..2vܘ9ϡǻyjշ݌j($/zx)lnzsMr"Lo@xY{}Y]W͢6b~펁`EWK xׂN˄Ɠ (`7(J1|؜@NKV:\ }( JR r9N0q" NG͂'0ijAܷQ>)3JF \Ӕ>?:,^;;ЀzQ-ˣx8ƱKܭSx>g %khtusbgKHr !9JRՓRcNbپ'No6!Cd9kQy1tq2i kvۻxlzH1ڼO"iYD ECf|w11xyh RYj|WlWkJDdն\U![9;ѐ_˓aq~ΡFߏ1i;|?;n.l3}0;=ѐU5=x *ah'1^9쏰v .sQb!XeATQylifڮdԿy)ƢغaK v.(֑AOݍ`4ni TdqC.E0I~PK0xieq}l1O>NOIsًYmj\:y{f8:3(w <4F9=ԺIWU&~g{nprI ߦyTs~KHcju{K1sDlÞhT4?Z ==wCZv bԆз LWl.\u T#-Bx fr753'nM}|q`ڱKu_Uա1wXFk7 (-?XvES(nȈt#&H55x'jcs^ĺ/tɏ9#;mtOməBHIԓQQ{;:%HJ֋ s֏~#0<_ S~6@K? sLȶ G{8ouщG])u+1Y < o^aNs+]'YV/bv`8ٜ/#2ZA R3MjcBVǏDžUC,O}C< ;u_4^)-VTwEV銧?VVɆ4, ^گ >Wd#aKTTT~)I7o=`~5Qt;̽ZvKmD1-UbQ˵RiHor+]% |Ve}f2wKtGO6G54x8@Uz2C r_.Kerל<ʻw݋w/O^u) a V1vh56 ."JW6hMzvv~?Ѿc⦓O޽{k=6D Yy&C4$`9["Z-h8/3REM*}4Vnqdd/1={2 $zJTc܎4rKs*{̺V;<(V7f`oڙ]=<hAp c9 ĻnE_ҝIz[SDG*~>a$Wǵm>}f{[DTː"}h?vo.[/InC>_A`Xe2eQC2V3 ^ϵN'Jz-TX'8$GE'@/# <y ?kL݄e*/ɥnӾI]q#|^fξOK=`Us[(cD+[X oIz\V>UV$_~}S6zo@{N.2NBopMetYͫGɣ<-I%bOQGYSZ< *0GA !Hhpy7ޟ6L뷱l-lW@= o(MYI |Dg+a/V{/B1}'tv x!᭨)!<:,]C!||H;kn0^Mk;s$pT@Ҕ&9$ 兡`H&hQP-xkeP|趹\G S.AtWg|IUkTbHȦo-tADG'%Px0j^:d=^L+% N ߄3'rxE'ާ&65NցWƏ2ʚ JWKq !|w.IF_soN5CLSS>*g?1l-{<]^WаWm{"^~uteQ^#vQ2^]d#z¨_@]>ZL]S%x -OO%ӏ tX/-ȹ0 jo{v }$PQ O0M␗Ri赃 JG8ᆸ5(m?}i.-*|޽R၎%҅(aߓGc#>LUWO*PwNQ4~m \A/C1ҳ-87w2!(=])ޓvˠ뽻3NaE_}ÚNݢ6yv`<%b;72ݏ],Vه4ίc^3S. ZZSʘۜg풿eY+?7!D ;|A3A=sjvՍNMhs1y VB5I'3VUV'Ч!! 7\"l:z|>I<2spsB iuO`>N&G";[Zl4o#˓徴ONBN^VDհՓ^nN175L%].ct蝏c0^h7( tQϝ_Wb $:nYyþD&XO|J"YWBuuW_PkDϘ{Z:yAѻiYӀm_`~0v/*.6yYX龍 &n O ub9{p C1NPKfoG1fz\ 'nuvola/48x48/apps/enhanced_browsing.pngUT /eAOPQux %W}Td[GJNaЩpE#r$zfuAM#a^:uRwTK6l=ys>u]}]^;-W`IB_`C&@s%٣5Sqѧ#N./.xD ?6 JzGQ"`f L;,K_?+{?i#G%wjr#=5ϭ!xg;m=t?DúEZ.RB6 mraSvu8:lLWVɕ]:z&u:87kU!⎸L>F!Nr9ihE:5@IEkX"<( Ľl{~,} H[Y֨֜ -{k+ard/bYr{BAOɦPzˠcf-,e No2Ҩ7<{=!gXt A7#7Yǖ*EZcno^@eBS>ēƛ|R Ġd"1-@U4eU'õK3x:Ø N%ƥDӎS(t F(i{Uхm^ FSxΌoWQoU^yA<]=9qF5v/ ӢխhS02L 7ɍni2†uڍQ~!^Gzx)Co" gU9+\m&d^/\ÑǓ#co+">?o$>bW߀ T:8P{+ 1oA͒W(%ʊgIMD*u3|+UL憐ry7ULhYzp<J9L/lH>."^cr#E_oץe3T۲$' -̬X@nѨ)-ݽ f$!, -b&p;NTD plҝdt~ !ѿxET"ڈ]g.b.@ |@Av 'G]翋]UO~RLSYN04>/B b0(iFp)?;+[8KcDNy! KB \~Γ/+No=:TZ `I)VysT1,ǞUj.NmP YQVmԘN WM$4% 0WooP-h$ r ^F1 :WdLwnҽ_n;$VI,zٔ0Q'>~1u`$fA>3O A:(K;v_]"DR&U&+-, COS[ԏ)|P|d[#-G<^qT0 '˺LlJK5tyT.I[ܫ cNkWʼf5mk2A B@\o+wh{q0Zlc7sX`.T4V/qic4rT7ut?l:|!!ܽ(v1DLqu9$Ϫwg5z |}g$_\(J~Kc- Ʒ%^=W g1Q0w;:L5x,U,Y0,5cs̍,vK[2D!# =Q4XuKKkY]3;j: ;mXҭ(swi"DTŒ.7ȖSr-Mu4*.}9zӏfS`k%| aqC=t ;4\uzu:dζoKcʻpkK-; JzlGO{[~3!F;$Xp?GSb߱ʷo Ev$1\]$df,eʸD@[]C\\J &Z?gsr"N}r,E&GUaCZE) Cd]"P:h{}Of"ț}B>d]D~!:-2+'F~*mRbQ;JcoS|KUҤ"Kz<^knxKm_DFYAa ŇYQ.gkuG LF!/tWÄ HsY|Z=\ !̭_j4ŭ7(AVm8մ.o3z-dA_~S?i֌7[;G8#Bm:l4!=m~o-tKVx\H/oԥ|wcFP5s J@hvP ]ewus_z`qlda~T٧^{zJ`%cm>?)^EdA(Y6I^TQS khVTq3tt@ ׋zᘤy܌Yk~ay2d7[w؄|h0|t-Y r_E)T@M9'P>{O3?R䜛x y+f/%~;ڼDK4q kHAh`6ٿ.')N+KXWZ5esuXݤ K o Z HywNG(WL(`g PKcoG1}]X}nuvola/48x48/apps/error.pngUT /eAIPQux =WgTSY770@HIT (&tP"b %`@Jt,8`lcC66@TD%1{k9:{A;,@wM;5鿩֬{lM@FSSV;*fO`Ҙ'B"jDBX$iۑȝ"`MԐ”0Ln B`[oG̯͛o%]g'-b4å[ |˷tfo &`6vU]Jnw]5D͛Bq ]wUۆx33> g~+7!n^Jjt)BF޽5M'"$c9~RdM=кQIN>Ϗ7Uc0;yӓRxjk)c~t9BKxjGJ:҃3;ߦl66֋`'g_4|a8/{?d|5T*nKNN ~4&cd6p6׮uո>!;I--MSxlY5xdujߝWCٸmS3=c6h{G敔-<_X/EaNk1g ge TC~/;76q7-tuU|wsFыC?";jP!qy:sг7J/JO$l78px)qR1aDdD`mS͂dp^ E>6 Ŵn* {s7 ^Զw56٧?:Lc)xP6ʾFgX9|LܷmmW+ wz~=y˻n ^j5L*0"9 l(zSkalYkߗX8L1utz:˝cyԯ54S+D&Oq2%&fZ"AkY†LS_8'6)jms0>@/=蘨Cn_}0L;'"]jSK'Ot`OÂ>A鰹Ƕ/DW׌ƒL2FjX2`x #R6-`n۱s6غ *c6+ZޯD? иEs'iD[К:ὬsW92Lx V_V9'މJQAA{Dn:{s%G-Mf,9E;,n5ɵcZGBV-S_?p~mcg[ `t|SJ:\Z:8RGժ^nsŲ#"t&RefWJ͚j Ѩ`ؗBAQKI(5OJ(-' I$ pk%+U9|=ݭA®64ޠOqa6ʨÇ"݌z0j|j@L BJtm5@xyAqQ7_+90* ";0FxWZڻrY~>=V?"4=..Jj2LC(: Z.8rȸ9"[_M;\HD䗋jԊ-MY,:lC@Snj ˴w}g.NmNiL,2\@9`z~t"j[`!9?ۖQ\wb rg |M"b2_ 0Dw9S &P]C)niRYk*ϏdЈm:wd\'.">=b&7 +i}4SFs7{{.2ܿbS\{˳{O\ݳ[E|=}4+) \2d2>g%9iSP\Δ 3/5S:Ϊe_0);6@^.NJH}⎕5-0Ojuv}o11 +R$NPKZJPI^3fZ/_h`w6eqg+ gnĽ^BoS5#O K=xĤ:iLfXܼqUII"n[#_鑈׋pnid|q~qi;kxxArT,\qqH6=?{*2.CSOq!QZj;h$= 8ߐ~ݨ (MN<6 .MX1m˖D\Iyb+L|+Yy:M[32]$$9$lTn}lϭ60,6C~sA?it̎&[qX2|E t^l%h&^1:vQK5jb)aRȑ7fxw q$$19fMָ$yjd3#A\tαP)>wbV{ou+k7q}5}9Үv'jyg<2'qx0}J34cMu>PKpG1z4nuvola/48x48/apps/evolution.pngUT |eAMPQux W{<>s!qQJaC*OzSfBQݾL*WW’'2R[)0G&H[EE8wNJ9W( ?:61JOCF5LOs溟zynTN{Ptz='`~OL<6^N*HtO =|4f iAxa8YTTԀlT@zwj2JJAF2**0[8nIv ' ӡ+(o4lGWm%BjMtM9'KBnZ7N |.U[t's2*hWK`>[׳aՏYoe v Ei~)Mt?J#νe]}:I#I4?T]>O4*~z 1_v[Сn:.e%N䠽u;^N/o'zg/խ<'KvNc-z7>mm"N&st[T # ~k?P*[\М=/e"TawC{i)_]XأpN6gpKJrK&HnμdF»U#VZ' ]>|rY_,4C)O<8.0&)3qŶIhL>y6?͆X8:B< |HԈۦMߠpqy _?b>eKcm)Z49[+ÿ\Ş֫~ƎT/Q7W*oUmBU{|>Q#=v M0.g3xQMjP 8,k8L?e@jߐnKuj~X(FoB^^Հɞ xp=2o6^LI&T-^F&tg>"4-HҒ~@z{g}#M ;!_$6h^* @,Nz@o] ZS_ԾE+f}kjNH]Ҙ`%?~a:gWRT6"'$8To ӎ8.=K3~hfl5HPҵaN _YBӦ3|@g2\]=mJi1 )stiwPG*T7W(/t[v]urqz+:N̯midŋvF2[G@>MJfӫj?%)U^C2,.WB ^2AW-#1UdXCڄ>蔼~H 1;fB'g!ttO> }Iy:j~~8gze,QLI9Ƙ%v O99cݣAA%sZ+Whj+qW>=J(ϵmsAPЪ{io|?^ђ^\gV'0h6FCuUHOݒ~aևz.[ܡ*GEykK䅙/}ޒ7F3? N0MUB)?l jS0̶*̖kKJ0W &.mWσrAP;aXYPwwoͼ IYY󨐍;lшp,MyQ<1ey]tDv=00 )g0|q 89FQ61GM8&{sG S17iT|h^K6_I`C9/QJ(.*(K^>$t!^k&d!rfõoRQnoDX/rcQ:tM֑0s1;h,<.9X bqe Qs.i-YUDt;ĺR_[.b}MV3~V-!oI>|ߧ:jDGyvHSȒo;/D?7r-fI ^Ew5] 5 L6 vu:z^ze(=&S92=K28}Cc_|QdLŤ&ޤҁQE`!"z1dr1x8ԑDܿڌ[<@RwCso J;lK7Mħogn0j,~6DuyL"DaV $˄x+NzsX_yPl@xx@L޻vNINo 9p@Bq̚\+COݗ>,Wg7Q nHRיsO"Ƌ]|q8en 4"]2X38`߫;)Dg2-P'_̂?>տKļDZ5 5)'??6_ d;.F jUfMd+у;>> N*C"]i~Vڎ ;no An CBB:< i<dU~ݥIa7n-TY^ ^^VX*G.WY X9v C  ޻Eљ- L 8kNۿ߬(.: }FO}w۔P(#LNSBTdK#u>"{-J O6YzCjapϪ0-A5p-P-BIl-H>Gk~*1'9zugֆ>;2h,nӸ *^ `Kɸ`id.e'#T3i-.Y|gZB P0ș8ҥZ ZZr9 .ؘAv!ɷpQTdS[(dX' 0n6_aAǵAfC9zhpѯ]aIiK;_XP`osf#A{R]5[kx-$f_7*-/~a:0;5mP_[$g;xzDS:6HcѠZ+ Adҫ9>aF2 a6>e! x늇UZ[sJKK`BkwE߀?7U\3|:o \Jr `q<Z)I^a$?F&s&H? AY Irr\q'ۣLeNvev, *]nlN/uV/̆\(E@ߵd92G7®9g AUvvC?v:oZiN_Fl(=KDsJ܍6.t?NN/Y'b‚Š_"ƒ(y˽otdB!I'xpF Xtm=]Q. ѻM"A_`yH '&k* 0υT|W8.'\fU SSebrΜhWi]T9jP;;g+: H*2) A]w*Su4yӦvjgno~ S`*r< ;T4DxF6 -g$BlTSHgcQ/vD[,qa,\#y DXf:rBɰYmV4;lynZb x0w\LZYs[ܡ>Bs3C@lX.XZ~ozE?PKڛG1l ~ "nuvola/48x48/apps/file-manager.pngUT L}eAOPQux VyTSW//H*$ (K A+ڸ|@*( Ka?"$R *h!Vp ApB1@bwΝsft*t+[^Dy3oxv5S9)RRcXZ豨ocP6+"m(ڈLe8U* Dt2Ք}M֖w*ӋyJI(<|˺  iI-pWSta74Xe_| :=l6 h#-CPї}qQܨñܸh|Mݺ'wn=?t`Xuu"uuHAei%…+2 /NLd%((tiNYE;_]Z* ;qqZ[mm5<4PuÜnu'' w҅aMe*!Nr b^++₝{"3&$ KPo't5̿_F>^'AF/-[5q+ n- 6A)tQpLď7{ۚa45+V<A ,#E(#+ 6j>`&)_ʍ 4VD/UR2ÃvW0H\2X⊈jvFGv."f-9%۹mJM} * ' !}Qu-1Iqo@m nW?Ҷt8$@%K&xB,FN Yu]ʦg\5Vk6&NQ!Vq0,!)3loVcGgaN g:E@{U 31.=@m{,yV%x?=ݑ3|)ؖFH&Y4(HpLL̍~dM~#@}VB$~ 3*ɣ m΍|;\@W žg-TM?JJLLӐf`CfB"cDVW?nnN[cѠw'SƐme%sxb!8N߷=:+LG9>4X7 6;PIMКc_64;lN4S&S|9[Wrp:y8|a 3Q9[mA/! 1MfO32;RtQ+kuiMjDŽ+ ġf$DokPDl 0‡}jh&w)Q9?D- \|TkqXh6+!sJEvNUjjƈ{&ilSkIǘzrK<==޵_D1֝|8G ~f]V'r~ˌ&+ْ6e'秩j-GnOKC!74\[TY dʍa<'hE/N`Y>xq~f]4E,aALL,V@pc-MϏEpTKM]a/*aة/a{@4lPЊ }/QUC>h G 0H޽Pd  cxS6ކoGeɩLrR'tup$v]%Mh'{sk*[׆|kk-lFmsFr.IV:%ru OuP¶$qg04),n̞V">~bB{RS0N쯙BBf| c&M4\Dp6] φ@lLw&F ьOj9vzL URS3RIrd>^TC7R8@*^ {&k=ظܵ j>Pb$C)j̣{ōZ-U |:!tu\$[XXؠ*cH.FatZQ ({ ֢SA%Y;Vڍ4@B݉ڄUG&ձRUL\)Q)fbJt@vw|t'CnMq/H976+N(6i}ġL:!ỀeЉKn`N@84q8k1Xئld\Xk.*.:BubcYaiaڔ2ýlX %ww]Q1}adL\gVliȉ%e+m-2s Emudio@qy5?uaƍSDۏǏ0b.6}6xz2cj$]7|qjqf7=D0pX~`_H2_ۈFh%m~)|K<@ NyS WBW%n W4ls=rLhH &*3%-{nxo*gf^AvK"Xuh(}fփ AQ 4$btmG. I+k3ߍҴRZ"QD%&M0ngYC̈c˳Ov8T`,@/r2ANb>mg uuͭ&:r|.sS"bKd>/eiNaZ]S07& 3}{s7_N}. xgxiqJG͂-/iĿ~+$ y.=(9n&t6ˋv{ׄ LzDYxh:᳄S5S.#X`"nvs#pK Z:?i, q Q%:E9kۡ۴bTw˞T@ 6m0sL_X:T k3kF Y 8\N7{CmW> A?}"@7Pze͸?>sMLf"EL w,L3sm ֒0[ǶWD Gڍ!_F !+ cfFqOyoVETsYwY Po]]i-7.z@ÉeZ`Pheq*$$Yv$ݵju$4c]C-\I7­J2ghj Rp'F4v@Ke #YxMԚihag4gi9]qA`>*./r <[ʐc |Qu:>bkv+^#ٕtkan}I딃\0oJsj!M?ћA'wrH h&q) u5z@l 骓Q8O xzh.=; on{WS 陯S]EK4@]f; |b i;F̩$EFd#iJ@3 =>|O_'sWj㌢`Z =e%w9F|QRH@venxb:y)SDs^Qppnj?_6dƑo:*E$.r\=fpJm~#~umO->'B oL}Jejh"Gz8ZW?h3)yH،+`<6ba*"->E9>WW]k&ŇcԆԤz6 c3ǟ\~/?#XG`O`+{ CdKl.-nvﮏIql-MHw؉՚n/!F/sb5ҼRH/FS&s+ Ұb !yso8rdؐ}CXK!H opʸpxŏ/&>Jd|3~4yh#ޔi@w/NM~NEf6c8"`01yŒ=5 g2>n 3 _}h-'SZ VO?Mt's~ɇIQsޚ˩!vZKp ykJ쇊-9y(̱~RL  WHU]nDz4jpUd<w8 XMHYC2 &а-YO^u3R|+˾%y5'WFK2p}FW5'f=ڟX -ǶQK3~ufR 2}).$(雅VUI3`Ȣf37:Bw= aV7 w3:VZTUn-pCw?I .-{WY"ʆVIT*iеV##H+yN&īrA^ X2Y 2\wҕ!e\qU=O[D J1zgI/ɪUSQ#!JZ[ /}_(]myxhg: c kT&~f+0MήYkq)bL_*R8upyzS#N!`YzN4@۰pn񎶶jsǓ'u c6[=4Z[x#CYĥ hOGb̤ԃ;%+QEԐDJ? ufe!ߕ|37r7q݊'DׁI Wv侫x^2"q'E\H%XL}XCA춎M/E֢7MPv֊^PR\ (?%|^mșQoC*]F ♥ZO:`4v%_`Z;ű:ǔqr>WWUUϬB,z:0uWvJXJBɶ.mlٖۈ[(U6MctF2g *aQYP(F^ R3_X* g4l}q ~]H-]ߖ`!LW&`?k%}*F*hv%?C3KUair$5bhFKmEM,V?L@="d]ݙPK|G1YG֊nuvola/48x48/apps/flashkard.pngUT |eALPQux V{XSW7 *O%]i M"/@EvQ @wu+m?@ BmiA$n?9s~3|3LqDXV!1j T!~ :9=- ]+s$Dϋ K{9/kⒶ L)F0o!pt/2Yh_M,~5Z@ޮD\H&/DrsmcpH^׃Q X0KT-FpXaC]@@H@([`3iOk g;YBTBз @DϽ]*r4|>XvpVppeBxvӲ'(3i\h'"eQv1'n%lO&Or􇖕U r&.FKoGHA1BUL^nt2`GTO4:=^3P6$&v?c7._{kNnG_}{O-^V||޿S ep8NMeW4srn%{u.p\2P1mP0 yJ.7*3)?QIn@I_٣xgDZ3wT=n98삤|hBPN7'~[3t{,Pq`iJ++Nj HZ^*h4W!pųk&}-x$M2za.`>n&fK48挀PCd-d;3Ѡ2 V Ė+9#{R `Aɬ3*呅PI$O2 =Vbj3ףTO^ll>%$S(muAyTE^~}_;DA7zK9EAn ym=.za'ŨzAEl.sܽ-i!p~q  )!ipƭYe~Gh?W[ҡ_2kA;2{ٓ#"KX"SV#*IjNɌ5ȹz*h>7:(nvx^ʠR/Sի2yr$ҦI2gQ@Ovygg gl1,1< 2'Tukk*6;Ќdy/mx0z謨Ϧ=3X(щ] cYִJ~}hg#:|b9Ĕ(b7ڣp#.΁AɓuPU8t~s:RWijt*#]RoBxV!ɤg~xf:VSb&2Y%6Q |AslD6X<@_vY7S;Hd6`3 ~?b@!30ݲFa {dV3v9 dGPKG1zO < nuvola/48x48/apps/fonts.pngUT |eAOPQux W;k`aHxrH1f~٢A*LJ͌sّ(BЁoڊ"iWۘB80|?kukϵKWT^V<ĭR֊Fzv'o+obŽ gGX,3rጰSOT"UZ}0/k Zem-LX)GY:%Y@Z"_[? gAFmA[ذ2E7OZVI(T[-ZJ!Φ *ՑzBDk».9ܜL \ .?\<2sȳiRa#"\`ܑ-%CG3p&߻oTQ,wx·[0o*@ֽ--q޼5?p89n!躅& ih)ѼbMбIޝYdm\\B d,FJͣQ|Bql6 \A1 ;,w.#`IJw$=6`")x3`]/FcRYAITrժkeIM? &Ea_a/}͂NnN[Ri#Д'b@H4KkNT]JH 5 N%+0Cz$FYP GV g,ҼUw]ӷCIsIJA9.*Ŋ2 v.8EVK9 +g'ǕZ3ׯ?6#xzIE-j nkD=^F^k_ 6Ú&̓5v!qQ2boiz7]Q]x:V3-B ,s_y0r]A37$6ADSW0zo3a~#-nJLgڜִl^aF`_?2cYKEm`{&9q[Y%a\]eQ*;)Z2ś s +KVX$J/SC$%ߚ_XwsP_j־\遳!t%)wmim(c#h+{:V]vw¢ɭ%EG 6Vn7|r*jѨ*Ceg u6*5H,D~FWοV@bרX3..^MBybFp X, [xWnq[2F.ϋ]zoNNֺTbr0T(pxN0OY6I(MK|ak߮{iD;몣Vr.sW,=A{Ő:JƟu_6Hc`6e݃..&a欤7/d{?g&f"Bh6ף33y\ ]ʘT.WnQPҒ3;Ӥ%~Fpϖyܠ`y`ew3#Rx""=YpCߚRq.V^pY)W!&2clٙCWun7^QѐJ uڳ"w>lKզɎOkV!KtNB2`}AO_XnA9}}wzZP>>/DcKT%?U,:Y%bem6i9d.sjzǻ@-15Wc 2IBOSs}=?}rm2lAe%H5H㿱% "x00V+f$<^'_r\FQkz J @k{)n~lV(0? Ǵ06',5`^L9ң ˚ _ֿY^E QvǍ-n}BKA:cM֚ R|qpnx&$ \M6ZmPC"f 'R F:_>{)V*J4t%X[_j6dv:c`EY"=a=6˦p-M2@g>\.. ##f` yj)u?L7s#p:lS🢏4; &H@TedZcm8WdT+P"Fyv5)6E ~JK{:zX;Y+zaB߰JܶisUvBNVP†hxR61PX p} qLxb-]u. nkKɊ/#u)Zo3z1Y[!l?g4)i4B]{ eؚX i8)Yj3cdVӧ,|'!Bipeא*+~u jfCjKа zȡ=rxN!lL1bpQې6ltZ)*VgYG;C{<7zyQbLѱz3]VZ.{^e3 V_[KE5:cX)Q3f+hfkk:A9w~XԡugT<*;mygw@V IM_,u~ Ukv4iآNOGo_t$ZRaYU ?֦n8NAk[Q_6:S;}3W`_ǞPK+N1[E" S nuvola/48x48/apps/fsview.pngUT 2mAJPQux mYXSI HH@P&PI -VVQ'aQCi5m5~E&뀊 J}{_vI|\-A1Q"K~$k˼7Wd tGBjueܿ.qi0uDʎ#NCnK!elpk > aBTAs<t!Py{w;'Hhny5^\rlyw `?ੂĵKIS*Du}d>jN1m};"'` s@0')c+Fc@MÄ6Еus>:UqV;OgaC<&M _o|:X\YyRn[+6*JJ,+}XJUӮkj! Ihw%k,;'W*<*{V`(2]y CUdTVBxA?{]0к9 h*uie ^2.o&ġq̌YJR&"J *z:-&&K/Ђ"Y EE&[>+_W M=9M\E]q%5duX;o2[. o7Dr6ݸ*Ym DXȳ1/agvhS`ms6-Vfer! ow Nh_'VDL˫sHlXR.s(^J#?'Qns6foIذvnH09Z^`lq[=-ZR+^.ʔ@‘~'ʖ9^x EG953vN =!7D[)Bs`&;4hlmܭY%eݖ 'Hx ڳ*'ΔNj9ݬYs%KM/TˆtԠHNR$B$JzլzOͦ{4c\kL1*HMN3Qt3?Wqc@/27 x/1T2i0Q%9q #৬i._,"hEbH-y?o: 1dOn՞X>cF`_j gbbk״04Ή6IW K#yx.Xyd>" ?׺YqT ðzHFLV\[rB'-*t)C# SUhU6 Tb4v40L=^; ߡV2BDt7T7{ˎY<*Y_iUy-yŽM ++8mЭ^z3ovh0Mw- `zj&4 v&;a ,Xjўp5`?Iho?ՔVr1+XYu}1E,ipJ$QT25p&&&" n:7Eq`vi(hN4}:u7(`K'r ChcMrІ*9M+k!tD~[7#')~?ISQZ+2ni<ۛ잡<^wOL׋GmwCuć Z.rXRWCڧh{3F sbR?@Q(9/#ͷVŧjqI-CE_]l2Z{~_iCO|\A\{\-r{3f/&d=xf!;Ml Ҕ50 qoȌv~nlq݃Fvx{b,Lq(?<ym:EF 9˟G: ]m."(_&5c`9>ܛ6G|d :(8tlME€9KCm|{Ȭ(x2it^nH;K^w_1>NaPash.l,@hN/ Fx}:U0GTW.m[Э(ߔ\?:Ӗ_!..jPKG1\IRnuvola/48x48/apps/gaim.pngUT |eAJPQux mWyT[~4'nfU@Ks4+&24#m&6M׽vK/jjNe6hiD2Z9{z^{mX73fE8i݊Ԟ4tb`H _S@JXB."J'uNu{XUQE[ۭLSLWvUl LJJ_Ȩoi \d#s`L?"A0*34=]D&p4R2i8>;ڿI(흨B̪ 2~1g7>>Ltelo̹`E=wsrBŠIA-2,' [Ebs cm1BnbRtށIYp;:.,U*dYF+@抱…o"H þ26% +kW(*oW t}.lۏpބע+n ɚV6 M,R7̒\PJ/=: !3QEv~XDM(l1wcrukrfIIeҁ݌ɖ.pNCbpj+ z9j(e gjU|9=۲]B5jL;^1 ܻ9QCnB0HnR:Qd8GX l7Knmǥ~]xᩘ'R =W`S{߄ίsqd;~߯]>plsBR7nY~|~2&۽$1O tE- 3x|*燊F&WQAEn7IW{z X&L"S,/!VBam;^=3PhqPOU)aNK덆ӵ N3R<hQx=Lo+(,Qu'];͚ af>'*GY^ٳFX`$t=nk跎S$n[7tHuzţhڭ{Z$Y)XS{B ƺ*FRPq)^Z^]acJHz:\%FU^'c"erbq\wБgLc枆,_ Na3cιx.j(y%'=6d@5caI%8{v Kꐳ#5I؞)̀EPًJy._?Y  y|SfSí7h'}&f3k4"{ =Ru/S'n2s]^ޖJ_dܬX`|0{6Ŋ9Et̙w&S5H 3^Rk?(D 1X qױm֩ܛ-\hC xϥ95T/x E͇c"]z挫+kP bRJg-Uh["LAJWCb~)3G}BuC~OO56 (dDD1#{Bi|eP{ mVFHJ(oI<OԳr9dgNf6,H"JHc%GOʅNqе;ҹ){mAId5m[S3K+s_q.<`|xhjR g(㔄i|BNydQYk3;%=~6R+=ڞLcp8^fLywk_TryVJj46vt "kOGp"򦘴m4FdTk5زi6Ɏ_ac?R9Zj@ᨓƺ6 ~:1[DZ@{8''X3m*/j&'@}i?,)p5OM!PM3^l¬2Y{LLE-gKjt]d V ''jjW}AYIztdzU9UCpNG8= f#2hb[]wSz:ځ(qn9M|@@U]Wg`*&ϩoM`03,_ƘGZ+ N([m֣!:'zmQ~>|e1Ex:L챂NhVT 5q'stF P_1۾G.a~Lmx: y("lYv͟˻8qf@mMv& s*^bS%IYu"l'fw5?Zr%E4Kz4. S7ob&'ՙx|TR*&O 8+ckgqzzj4Ły>mTp9P -᡻Rj ˺>6dX^U0b9,MҒߞͳ&Js}mo$CcBzw %B6M9` #H<#iܰrNPKG1 !AYnuvola/48x48/apps/galeon.pngUT {eAOPQux XiXMQ43AM\|rA-6+p,,wP4,}O^2AqZ޴,JS T9̙sx{n6ц`n6[߮" 2+i7E aF\#CnGa!!oBa0Mb &Fk?:]`6ݗ {&s3Jh[TUՈeI-(~d| A<ZyDaDtBEK)§dnDR>4xpݕ2t(i=ՖJQaHtp!*2va`H8s&pd\.}_ ny<%D7G[  \W!UsA哽) %d8UIeϟl ))a.뾁'PLH\2fd5v]duὛ6M Hכ{ˣa)!lao4[D@FA*L`_u;[+Is}F>ٺp}\DvBH#:t=66N:?WGES)WӋmsi?~wW떰nG"8f8R9TvT=V#!kXoq)pasM4x4y4f`=r7.8]w7`BM"}YEZ=$>_1P}|5nu'*{ŚP%%F/.y">_9+=('lY}ňxvDF"Ȫ 0>'h ҫԁ?CY;6_~}"εɎI9|Ǎӽ`خ?ib3EL{$SArK=le˜UsYҮe|oc]31q6=tB no F58W6a˫tS56t'ΧVܤ7N?8<ͤ|H!HIYnr6< ${xЙĬ7v=+m3P@e$6 b7N n k  UN˩^-W&K$Ñ"2?&,}-9_ ¯-/`H ԑvbD:Ȥu|KHR"+%W\hZDv+>.ўTPQ,Xl@]*ۥl\Utln֋ev&6jHEI@L64ƭWMuucOZ}⇇[781.6ʝx8t5i#pp?QfkgX\{mnUP`h tęV5FZ-mYg~uaxE7'K*;cykaInvuhd=4\t^9:bv6-s3ܓp+5x Ha`]\P@?-aʙe9sjCczp=4<3B4oDK,3\]LǚU55.ilkƵ1$K'4ns?fqP8 ugSB-FLVy6O_-M *ԧ5DHƌ9?ZK~7`E|xrm 4u /t5qF Y_^<G\gR󴏾{7,]yXzŘ֗w.=\z~88dy?ӯklxfXW['K/٤-0jsH)m⑳SǴQmxvU#3|K6y35xĞOi}3֛lQn3[-~^%>crR-*OT@8 ~Q+NpKwR,g13en f$1zCvjGɟ1,=$3y($.[cRa[v-Q2zVz*SʽW_+YW\} ].V{l~d8nG"_xh' l#6'y^})=,k! $ [7`,,.Wv}^j;=Ɔun P,dzɨ\JSHg1%gJ!9;'HuN+nQNOs0Q%.[oh(u,>Eh~ HlsQ#]Aʩ@$ |m WX'ӫ*D;Ľ|uĎa5;(srB4pz&hq̈́keC?7UdlxRc9% zZ##&yGZy4?g ¤_Zh =u6!;= yq>}O&:#PE$b)au{2b sopRQє14'aϬŌ!v| ƒFccm.ʞHzEzaj|.Ŝ(5=zeA//un 0? YIa`Ul+ =""!BoRK(H#Ng.Xs#<0#Vb\X~)=˅_ge3GɅٻim;0'Pd KPU*l[ءjaZ1p8\_elTߋ!7|_ tR?MʬzC@h ; ~, 1*s%42օ, rP,hj+(4">X8WCX5bcjqKoް}v]=xn ʈ1QDrޖ9 UA޻ro1z+0+Eif-C+xAKDngqO1=L> #">~ t)"X,RƇ ôs jsQ'ة߻pPF"xnݝ 9Ъc[&'t#iC5-@xÆԺYQBoJId$,&nm/ XNi",@T_ 'u7SU8˃hTEzDgl#9u$wZxjmaVb;9} ocV0Q. ̇usҹкM~+],o#~MrDNS)̞0-̺w2Cl\~̹Pf6pʊ(C|0<1si"_ڿU??-X7f^Y(ST͖?T˚&Wi&&B|TABw[rF-zèO}W #ŘNu;+q5h8~m5t|+wV:jI; }EX7tG x~3kț*7&>y=VƂ biOGp GpߖSiDrr QCzR3n_ @jp:YشUZ>>*no0jj5mr-":mWHw]IS%zضgpBhH t`JfBqgN Li?"GX3Ҵ2r3]VWG #iž2eɯYg,: <>|skv*ްƾXew`Ywqt <Êm;ˮUK[M1v֙e_c'Dqפ?䙠To 7/-5BS.iO…uJUHFӔ2֤&h;eZx+h}!u[4jY+NhI93+J|#0-Uy* `*s_T!Fh;bVk5e !PPsu9ܾ${RQ|¿Cm/$4;/ٙwxA֡Ї;E&]q p6NѓFCu$% @ҟd"KDr,:qV?rDXᦁ!S DNIQ#- 8tC" 7߾U[=(\i߻dif˧.pՑPInnY614v$WݷpyNoZZ yyRjL km_{_4H5i<LTB:_ץ6Rm _4.vz" ޽(p>'?(. s||H*-ޓ *Dž#|IVY/tؤI&B 57Qw{z:2sz"^!"Tsoo^Tr!DuzA?ӪO^"/Rb-zFU6}Nm(xB$jBDo0<#+`CU*yYLMH#b_Grڎ ;C'vI>nn;- W(1Bʤ6@C7\,_,Q]ƫ)HIOdoշ\u{:}:l"2 ~Eݗ/d]}M\hy`+"T :(ӓ83aH>=(.ۛ8|vکWݍX|RfćQNU*넳fe[3䕦,8=~-(4XoLry66Ijhv"J/IdXbcV"lt;)E@F C)5&9\6QF]q13 S,;3 Viy {s[aJ6n?&7͞l`PKG1(nuvola/48x48/apps/gimp.pngUT {eAIPQux W{<Drٺ+v)o\JJ*1w=)#m*zX=]tyB،l)RTQ!̥ Oz9s>?/=E:x ί;YJ:3!qCP#afd|x@XLT@TXdr<Y~CR@48t (m^zIc áQhZHI}[% JtێۅuMRq0iU flS:f!gHURPrTG/H~S,I.\ "Mf&8 } (ƫ:OvEQ2dRkG#<:A9)ϡ[VAy62>Ҵ)?xds15,ߟ6 [X#?<:Op>Hֳ Pm drKhJ"IVZ:Dwfȿ+4M5"-_ւ6@T37VPӺ3w@yxKZtEP'R0 >A^+7)cYjrDYcݲ6֥/&WܙWI -ql2k:3#P:*nAhOLK2;Z2$h*QL-B#۲a]]lg[i(Lȕ54I"-`䪿^it_9sQ]* =Ywe<`5*jI^Qn|.eo-NzGwܪ{t!uM>sҔs1U&s-]<:~\XZi jYw&Jr=>$+|}yۘ;/PtkA=e?p 8EJ }&]Iⲽ"w-,, ~emi+Eo IGДPwhVJjR{BA[{{_[[xtp{W>TҒ(xB*B[_E5WfE3} Jc4*MQ6%$,)9z$G'''s9a_sB#dLr @ݦd8EIDUJJi^-8Dj}>J҅-" G{&0yq)j##ucPϹ~ߠ)PC >W~N2||D>HGUҔ ?▘ bMI`>n爃R0κ׽DVK:jxxO eHW L4sΗC@P۱pR>N F=Yr3 .wbv=:$/s~c1p#v٥}7јXKj{ %~Ѻt 9J(gR0=…k]"=i_ q>nS@0KQ* Ґ #YZŝLE6OaGՃemo![u5y}APwi'C{U-6 D! kٹg?xz5,󝒚YEs'Gk+qEŐ\8cn m`1I{:vZ! HMmƧNOCP薅;IMj~3AsggEMmD}G:GҒћ);Rfoej#` dndGWDk7 ,yzg ]tybnS}4ibeȪbu e ޘ6r$%{v]Oi;A@4y#;*r,#kClB:җ9.F0{ >{GUiDž³Yi#jZeds WM.]{GNh7f\yX/Ő9*k&6 JJWuG"ZNy1ɪ%-$ Oo S@{=:nև'/DjQsvbHgɓLo[4N&"͓QJ< ߻lAfd쵇hf8ɯS Տw^ nh[ ?̌}#x\RFMz4Rn"Y 391'1oB?X׀хy﹜K4*7+=+fm%+gWMJLB~vVHk>2;GMCqRQ1{V]$1TYl>gve.#ݍtԤW8|z3KYW[ D{/̬ [ŷWܜxOа]g&Ðjٛr{H`i*I%5yY! e`Ӱ)ԉBEh;Z[,؉ûդ([لVX"nYJlwAtPL}DBEXW8]ŋI њ'E0"n;\D/'MVH+oX^uU"nnRnXLUz{ О,;!f(yV܃q%VS1 SA`I\vi:[wl%r$ :!k&:rY|_5Jw3:N8}(6p)m0l|٭>d 3S^p̬z ﶦU*׎[C9w |NWUg'c.vFtZ)$uزzRݨ)(V KbQRa _Jx06`(\ FF.:A#yϠWKYo6چp8}şF{ ӿXIۭz»o?S,` N+u+T:'f&Btz)4b%@ާrjG],nŠg#\ / 0=,;I1 ,ߤ ceI ߌsaPKt91P ] nuvola/48x48/apps/gimp2.pngUT gUAJPQux W{8nw_hWEQ*lCTLa7#f!eBWBb9UZG91tXo빯s<{j/@wړ3MPz#ݒn:7kdc\F0vd+" fńvnT* ,3JO;h1g2*eL ji<b_A1N<^zB<03LvL6|X>il4"bb%Ȓ'#!{h"/W A0<:})W (ߌ)V UrĖii|NڢBJ_A {x@o{>U@mƟC,$<]v鯫q`/t)mޅ8c&bPh}NH\lnH.u?)q2quʓWfCeK'3MOOF~-HNqfe*-5!^<:"PɟҢ\Dף1Dej16ۮ޽1?  SJNK{C%;C Pq scl_sg=ȼLq@τcFFޝK̸ٳ;+GU +VZ@\𔩙P;EL`y`og*[$״ȇISJr\\D>$*xY#o~]/(c<=j9Ƀ $lNaX4i ͙BY(zb2eGJ?v]vXwo2vy]ؖJ8IrDwn %2cpk] vvtwT5VkcJ'2BY Fcpɯql}jT*k~F @np~u_}Y*%L J5_+1V≍]Zj5yD/:[3B[K?Jq ^i%52SVku]Ckv\ؘa1ٝviGX Srꠌ; XLd` NQ!#m1 DcT:)*ٚ2*+ouOܹomYxV/o!͵/O`xMc0CH"8']0-ppUkY,b[tr1Á0JZ].I<0׌?jNr0ȘoZ 0W17Z !Ol~R/{NBHIi&.4?W҅.>4Y$z~^AEA;gy vSUJ34@?*R6KC]PQҭc:vtDn{y҂*`l6ĈL/^9(V-'ᕒ֗QpZSQumW2{ۂU+$)feiOYS%b};O moj'.dxEAx֢_EmKsIb`8r;jTOͻHQes4b%#IE]Z2z)> 1$lĵ-VSagL}huB`4fwCr|Wf7 6j6 NΞ IfE.YfM5 ?[bm1 RYZ||Ϛb>ʘ Q:;*I}" en9@NCsz ߑb,<~wlɁz&"Zp>q$dΔipvꨔ7uƅ U勄RZd%#^&߀PMKI7v6-m֦pi6i>ܙdDJR1 8\yN'ZcwKr4=-@p ޵w]jЀMwڮ\| a6Xoc@Sp-Qnɼ2lxyf.f2S=8dWk6~QC.m pPa 6lu8VJeac^ Ǧ ݴ|q1va@' 5x{6 "ewyE !$ O}/%k%-Ƒ$Ϫ^-XD.?x%׸3M<<2f>أ=ɸT&$q"pڥ]3P)JT `{ěv sz+Z\[\dSYAMjj, X/Q S+Ⰹ{WVn[>71C1 mՑ|gA{&38_t@ j8lYqDn*sej:jG&dQܰT4T/-=%*ؾe?.̤PKjG1T nuvola/48x48/apps/gnome_apps.pngUT x|eANPQux }^kaL0M0nTC^hi< !zV.(gD[Y-Ϲ,y#@2 S-.f0 rS<֕3AoB&kmuQJO T3AojeJYb#ER$䥃Β8M|b|Q#"]^l+O* lW@?/F#bx VNuWw`DgBf軼i)}>0-y]YO8d\hf@<ֳFS@*o Ob`0旊XU,6ɴj"MOʡM= ha^.whPTƱ0`>+R e:-Ei'TbKXZ*J ]z'*˞4+]~ m#[bE;iζ?<ͳ/2 iKftVzqͽ; QX39_%4̜\̕$Kqgz Lu /W!VEFRnI,d X$}#^ިuX],N5Еu0xD/M0sk؂gj1#WVNb EVw*h,[ʝ!J;#\.XY'J‹ S)MPB1"濾 2BD/GcK5Tæ!S+K^K UO@M932v擋^[2ҳ4ҒըY̷:Ra02Z˱6YTǖVLsd]=Vv]ifLn"v?ҧܓ`A/B"7ާ/wdҾ{=mw~ea祁ׯom!{r/K\.ļz 0L~y!-~KЌuY4vn5PF)J;?WƻfO7+2w Q&QQb~w5]RXR8~~(\XHMdQkL<njjISklEn)ֻ~>vEX x~}8e smY+9 {?lFECKxgEE4o#6C9|Od. LeMLYdO~IczBݶ](AˮHWZn5kO ؓ~@`mx ;h?,s,nV7Rw!Fzi][vEgN0QWaT\ aGۈ?l~?nDFߗ̐Ū7,}mĺJEcmB75 PGw|3`#v4@4>0,.+ &9dakX$ \jX IdJf`b5\ x?Z?q-Q9Br-tG52ٴ]֮4 (Ӹ]OIN.aFe-ÅlO0$+e[S;Oص+쮠&LȱkS.CGHr?e_ܨYuri\1 Xo& CǹI-f zrb'\Dx|/2eI>Ȅt,12Zڈ{ ۚgj1Z:%EOӽ%R|)G(~^KRz_1Vc=pئ俾x#ePQ`#3v#")Jm1̖1wXP<%#K3uқ Iņ%|h_ ꋬUn(̥v9M}O6 ",|ORޔk_⧏L,WyJӺ}Sq m^r59"5?f&{4Ez*8Y*n:yMzN?O١j"1C,婁9ZCmGCo{TY'H@䍺fH?"7_/9lQMևyCbB2=Y n\ RaPgHZ=D-); Gԟ c&mvCy%CoTӹ|g ſG4ga^{Q"p5m :Ld'&NrV\Sξ.O,dt-%JazkaT%tT/-_VFn"./ESTxo2R:"& v/z_N &I<ȑ ' Oo 5 єҜZ  ģg[kUl{^_%>Dpj$?yX0JEUAqݤjeTؗ!GbË89pC/v2_yyp:A5k=1uPԱ3*u.uC= 0f!j4mJiF[hwڕ} r) v qr(WuU:ڔ菒*HVw_dv"ިw47_+;~ᡁH?":SD4}X[jV FST^ei;aF~{k*Hr?hL΃Kd~CTohIH(9v[` d^woM6EpChjB7i4K vQ ٠ďBΚ$y2 u\26E> iF[%١qsWgw>@kxP+WpI[C3?Z4=OpHkz{5z9'n:מ2wn'&@9:'R۾zYepqąګ ,$̽i+7au:Wz]U9*(^4ڍ;=Qm̜ r* LOـ,V$щ~Cs0QPߺ+ 3->3;^|)v&鎋nNWاwq|PQ0SHnFn9U/6z;cAߩ}2V btz%16R\. ?-iFc1iie0R6|{/?YWn_8B&mGF ֲ u;(ĹXE@ȟ @T rFY7JDabrx8 ϣ QkE~h-R3 ,f[AD`yW 39@G=CrAvWb$x i( d2A>[ҼOrt|7PϿQG*y!C@xEDņbqNPo@1lH+,.b+ Nze )puq'R,NJJC3Al1L԰%FeD-|+]..$#+tEzi dsk $;oC2?ϧc Z`no{Fq-kQ9^RVvR~S܇WM%e׶FSm!܇!\S_Xh"vO@&'TLEah^i= L(a9̑OԪ BwRo㲦hRՂT,Fn "X˽Όzn)껯jbzkHZU#Sذt&qs`3]pz1wJo5L˶(>u Jg!x9LLryFoiP*hYӆkqt7&e6Pa@1)/>8a"<͞PĥPhoNʜfK;\ׁ9&w^OXL:B9q9<(ȭCi#hhQ%au꿑E|#aօMzI6ғ[wVRfYL;( T z҈Iz 2ĬK5/qUaNd99VR߅v{`H9)nz3L")[}2;ֈԍl `9KwF 4j[55L&7˼[RZ@?#(mt0#M-xf8qӇ"ڦa3JW9 0SZ1|iPѴXu֫ ɟ>RzHADI˄_,X~qXU9]bQQh~IoN*nvE+I[ O>xVygp527dʼz"VM;Cz  5-Y+7T=-#LYRGð8#OKz:M;kNl QpGbwv}dkhrn]tkbsԺ+yB߃-n_IJ2k2sVn9C[oE6/ @ !7C*/meҕ䧂c]x.Q<-ؠds`U&z, ip2mQ5g)} >Bd5\Hd8̼A܉Zy侤Yk9 %ҙ-oƫ3>;X"fvF^ETjWtws9w$sV<3Q&xXgs')HVs"FFcuR43vǨ}mJ;=G[OzUOK6b-ivs#c-nZ"ڍljx|8|qO,.pg|ڡ#XA.imn;^}|Z'CBxȩ`_'}E .+o&\"v̻ fPa-YbZUm ,- ";5Stf{)8}b9U:&X躰)+0+v+|J$O(@O(! +*v¸Lv[sN!Q끽FJLN5z/&uB"ϼJhnZbdt@?"ge6xV9~g4v=-gм61{Δ,7˾\.~9)cցB!dY}svZͩ=H0^dD g xo5TvՔ{t![$ONNLSw>e=\l箴@$e|snӏq.xYv ;ݸA5⸈mmocH9/k&㏎9?0cU߾f8y'.,2;SK@lw.;0\a /dJ1ys7RKޠGi3Ol&4&fpt@Zs<۠kQrx{%L-[Yۻu]I)}+ŚE;Yxi1j;wy8Qgj¿p6nhӦCRt|}aߙ`Q&~ֲq@ *0cե[`FmeNT) Syԡ1E"XXB ZNO)PKYG1e#nnuvola/48x48/apps/go.pngUT Z|eALPQux WPSA$ -AP,@D$t< $BQ+ @)V4A:ngv{~IT*r pz*7 ;*ۭa=&ҕWX`dOD@  8{#ԍ|dN||t(ű eJ J*!\d1-BZcZN.h*6vDzxn}HFjT% ׺X:Bch3yD sfccs^pd2^(++#.yE@&c(1c-$E_N@^,j#-{q66_;Xf68]*P6C;Ij ̉is߶"dޯ1҉ǎOd~x?އc%%|sQoW>*D-7SDК7$[ &2S +yEٯk1hf%WnS(=`\Q__3\$_Z0L&S+q` eNwphG5"l:fcY*ڟ%scYN=V+&8wlbb\iPF[TT[D=~%q|:>1ČT:zH gyuuWΐ]Óand?6>qB%Z/Ûy_M7ðv`[4X͏-08TP-t=@67!32":ccxjϘy򺺠eU^<2Nu ߧj.R8yۇ|atOR3(NT['XDidش ]I/_:2ssmRɱ %kלЗJ4t{?DU?C u t_5x_yZOňC ؋4]-hm n|hs}͛D3ޝL_1|1K̒]f^&TⱷXh%Kϡs}R/hP%4恲.`|OhneIiLh#mYe+17HǩnT--{u(/pњ+ ߯#޾, p"XM/W9;jtj>|u+? }?,md (յ<9Y#OEQ`"-$BOM ^$M̗}4L- ZyȻZYuaÍ3+xƕ+kZC13Zo2$>1UA:;{]@ifATuBV\r|N_|EcnjBXE>MGoH魿d5Zs? `u r4$帨xG.Y*Z>iO?~VO#l5s;;;m2L༠Qmې 7DL-,&Y(}Gf2[I;PRmi>3H{kmIM}_UWs^^/'+CeNҍe0[!?~lD P"G2vll BSRRyyF5ĉǨQm~q~G_w]˕:kll Ldnwt ]P-61nƿ\ȕ#Q {}!ߔDd=`1xUp`Bxh]^^f`-h8 ++,2щHJ0.S{;ƶIS^Udx8nMi`߽{*A*VE[W-x6|:gA>^Fד)X9&JC\B ߓʊ?9CyU D z4߈oP"#OGF^8KCB,nnS0tN5 $\\>Dw 7gyuz (H|njmGB+ B BHpϸ>+S <bzL< h Ie:P/$Gwm6cه Ndk0 K$!,Tr=1=CR7Tૉm6 j_Qgfyu"߃Fy'M>fpƻoT vA#%^)SxΝ:t(}ut7 )~B6TV}SrEZxZ?0pjZȳ?c٤ڐ(281oKZ[7AH)\_4NAj-!9ι繸vum-026cn"+-Z(eQ+\=QSGFX+fl3pC] pU*t%pTBlrų_xtޣt؎d(U`%ޥ;;sXq$%o]lb1fQ[ lt9x83,#@HNwtkS;vO㋶a>tqZA4˚J.ߪzY zCC=Dڵ|lp -2+Wx},w.ۑDmca}ouC>F5ِ P1mPp0WQdz|̗tcbv׮_މڽqk BPoKrXpC( BmGHyo@PE|oiK5"J$"m?!znU_\W_E5L@wCw8719ԌDRVȜN" rЖƍk=ʊFg˯"Yپ-|a3Uv{iwS/اV?n]Fn h(D6UO+(+-8˞ǾMBUo^g&4?~ZA-=]A%b*VPOIajmxfe!*)8ی_'Yde@CWo7KLqjm6NH.~G$ZN.,Q.~~9'Oa{q#Msp%3В/@^؅[R9lQkikk>w.4OM9a>Y>ow'1:'h䘠yi9&GL ^Z=8P""FD5uIae Ǣ,'KKKK]w DK ևG80 Ol 6ć`8Z1YO }n5 Lm.n& o7m;v_>hC> fS "$'}:z~+==wg{j -Py7^ivmT;a<{+fYҜ$ukp]M )*$w܀562͇z<+*,OP}ljgއX[FXd&+>=oh2fͥfk& Ek rKz%j{>%PRsKE0PHE,xMFHG\* Ek3% n]1=k@xpH~ԄQz~Br3y*8@,8K`i-j6\6̡8kqLtnNӞP*҆Tѷ>b+tBmC Wq$xzo[WQș>`%t9cH*ACX{>vIOqY&.'0`\ڢ2I۫Z? MQ&2F/F&5@TRz1mѽȗzHi~\9/23wNNLGMX p[z~@]@̜V .ޚzh vڷ P< !(T4GV ,%% &Dq35PKG1٥Bs nuvola/48x48/apps/help_index.pngUT FeAKPQux X{<߅hcۦDYEEےJrSrۖLD͓lKRI65y*" !\6v<:s_u>sޗK٥lڽ7M$ux ZQ}TQvOx 6219$>B -"$7Pk/KB6~p`(vp\rA)?G,Wι~hvqҟ|R)ij"zሢ+Sl;7e[NA;JjRDbBK2X[Z{Atqrcui-Ӌ3alY/?㺸Kb,ՌnD/ H@pWeTBtڹe*ٗRZ^Ă LOhP)C{i.f .N [=(/. ЊހlѱfֺHrY y(6k/IAE@*p,YTe>>Gk,q~sgx%rf:r2ܔ12gnǓKz QzDk!#( :;@:\ږ`bܺ{fݫd!4Q9ύ(SW{G a"*նI9/ oS[=7f}6X& ࣢" .΂C" _*PSEr ;3 P (hW}5?.|jQN'!(fe<J$_{{5cv5f,JA.w=e>;=AI+s0Hrd :n/CWۨ_[ |鲹Z-AcM-,/l[|&C ')^y]5ɍFP*d/@"Wm%|ΕJEv A8+^CS-w4 ?NA)\.%ιؗ9]TOM.FR do~߽dZ)mx#o,,PNBq+k8Ź"VvA1G ) \iTL(iazF;=1t'hE]0銳 »%.A9?mInbbZÒ/A }_Ǫ/:dOUb6dV%]CbE|6%wc3SV֟5@~ o?yy;~1c7uF! Q#>l!%H M:?1B9U*#ou#񽶀f ͞Tj; dҴԪŰNGhw^M%އ:'Mhnqm  M,&3]bɳ@6^.(W7@X pg ul4 T϶^ދʶ1]9o[$1 ?m7,eo3}B]8j;"G[;QX@06Z[ WFp)xi$Yak vLݓtܡw6:,I%xsC::г bqYxjŘ ܇^\` wܭG;\iWUXfI6]KVf9nV֕ U韥EE_j(mrIkg37aXk7?O!n tF;П1fE/#ƹ&9GWܟ\ܙ|t!7w; _Zߴ#7ޮU.{X1! ŽqEPk#3ԡ!``R՗ї/QKQq#ޝڗzO^֖ ?}ؤ)#8&G-={8܅ {;Uo':/=QO2퐪X }?5/Ųcdȉtv{ptV#td -:w?Ig#MLPN!)蓲jɘqʙS^?yݞscn FHZ睉"KR ȑ$Q 뢐swV,"b!6<4>"䒱^7Oσ`,h5U?0J{^DBӣ5NkBrNoκx$p[Vq#R.6 a)-q _ޅ&=ofu5|L]YEflWZhF$l'Vhߞ]d {lYǀTi`̟ך ղ2/%#ٻFWr:9J:4zj8 +鰵7bmٿ7:[q}uF$st#]Q nyﮊ' 2P#9qR7 'ze2!#s@V&i]qV҂0G?b.'bpUw]&F?M[mҁLy,?$Žwΐ.4R--? Kz$1$bӕ]q"2_MJ?;}QG6k-޶Nk7g!-YHز>vWq4|ft,=\:CxX5~y ֞ebt ߯z&Iq_VQoS]--ջ-7㿾ȱz3r^=lOkf7.e4j2yL,3\0ϞSUnd [:49g.^A򮐲*LxXu55bNsuCcFމqJi66v w jqNJ` ;(ia$htnǼs;YnSW),u %5v|0ڇvV p(:cw{6[Meha|uTteWHmlS1Vt5q~$|К\$19ܿSjvЯ"W:R =]oy.%vf O5ut4/߻[; d;mɭStiujEmSG](Ӯи8VU%f)ف4;U&}֏bnïa׽4g^o.`cT,p+@Io趈gG< /$!Pc".2u"֍lcסϮ̰#{D %34s+y?ykݖ v8jI! Y娩T_ՙ1"<Q9Ԃ=MO(א33L_ tswǕ@B^?FFTI[k\8ǣmlMD- v[uڈ:W²).mT/-Mpvv}OˌO _$\2UqwL{{?~(.!!̿>}p=}5x#bd9䥹%sw),54) 1$-Q-HjnҞdayw>[\dr=IVn6`Ҍj^K">C²?MC |vr81T 4SQ4YDjO_vl*;?.}xO“j)ϑ*R(@ϳfd?:I4"S~}qMPB V*$9 fQg[nqvTI7jj3vtPܭID7?2Ą 6?Gc”4aR mm@To](.8. 03Ri?Pe=y]ƯѪs>} FMw5}6lijXF7+7 yo "bio>h@_,bh p EՙnI2:(ޭI! v!f$#%E8zhap$ba\kPE-'ʟ`Fs.o"vZtO!h! b_[ Z݅>cB!vzvC4gsPKG1ᢷE"Tnuvola/48x48/apps/hwinfo.pngUT @eAMPQux VyX@ JLҀ4Lq̙Aj&-mEQ[\)Ug~$fnSNYBe₀h{y9}EY[.:$8 _74;\S0Kbngvoc;)mklڷӎl.%$5>ōd !AH@P[ :H'xF]JC-RQ]: ]!HOvm#Nz[TQ" _}H=@#7.ROr)'f*eX-O?T >t[5-3C!|* eƪ_/[B|D\y\pd :,QDeuK%jY@Fr 7O(>#sb% =*(c֢dWY20M5971 E{dӠ?|F@YutF}qHb ߠEqZۯ3^E PQ9[t񛒕a[^| 74B֮2LCU5pd9LLa]N'ˆgnB>L/еuH\Ze7:M]*?MI-8ȶuQ;ӻn 3A[x=bè`΀:I:H܁EY[.Yw׈S;:֎/v8'\ʹZ7,={z>iU,OR12?3,C7ޑQ3Ҫ&8l_<طE? Ujq2Ϫ/}bjy)j$r 빉l Baڑge&0$ JYy3*L,>q.!5ӂQ>~Is7 g XKJ aO;s%o/U* WŽk 85 gVhkͶjJtc c =vq|)m\l+lnŕNv7h2[5ټ1e瘡1?V1DcCK7Vvjm;>_h܍^FXdlucYL1D+6 hM">< s=v㒟t0maO>(Iw v3 >Xɔ*L5uW%7Fq"_P}Ljo} Cnjgs}ay;FM@ U~ /r! ov0NH=H3S=DY@ ,5 ʼwV|ձCf'M^nq~x[]sn)@BoD.ACPEIvM;إÆ#-V}O_U'p"/kۮ/*xlXu}#vH&R;xGj\rO1iKC@H C ~fPnW(O{ h~o5&yp֍Po6JvIi|~Wݛ.0lGpU# bWU(#tDpJ~(&u6Վ͚P. Y=}DIZMs\5K N86~;eiȱ9QK zZON&/Ѩ 8_o>o+.\hy+ nrm qok30x^Hňm$G.rb]Ak#FB>L"t?cafVSXW낽UۑI* b|_O\|m=+(+THwހA)l0; ?c]3`;Mx3w^-u,D44aĶ3'l_-Qlw ]'~TSZtq 5vj0>Tefsbֳ~|"{4cxR't?öuC*ٹb׼V`];*(J@1-'T$_~NIH^l!%X)w4I#L3A<'xt\k%yFzfs(I^H.k_/rUl,BE1ND((D?~`֕Yxhkm f:vayҮ"9BqꞭb#NV_j v}F@|M A=#dm{,h-D!8W2p]EiZbܧ{bi dzޝMosbֺnA]3Cx a4=XD!,WkMlvvTPGĂU 62LhyerDp,Za,_V蘭ӵak[v&/ !o: |1f F&E&&:qUͪ6kܫby"XzBF@]̷(u ֲ FOˁ"HCs[*GL_T?x.L+dkx-PKכG17 nuvola/48x48/apps/icons.pngUT F}eAKPQux eV<lc[ml|FeeND ~rΏIfB_ܩ;5E~6PKvrfz=^׏xwZ IHp@i+E|$rFX߰˸x'FNMIXJȑ Ǻ|`[H\ 3l4Pn!a'CcL8x>Ktr6 LހlVYVrGF˙ 9}$0 cɗz7_BXj`_г{x;ECNȊx5t@'z(wSL2&V4'_Cѣ-,6sE^?~كxd;v#%>ܬyȝulwBŤ/'ĺ 4xw1ZӲ8u| ػ>}(M`SΌK_ޕ˂XZbvP u/J4_Vss.reV8 XEkfGBrR1v4O|igU㌼ќ.d,4ގ@r!OVGK)Rd4S.i-~V(_%5ELۋD8ۣ7]>e?}N#D΂4a! K|3( {ztۡ'!X]&Bc:9 9KLک yt`A S:0RrY?!q J:,}nywQ=$ Y2G R/F(WkF|bɛ=Zo"Hl0E]. (~r)nmxk'LB%z!r|kzf, .K7Y-v҅17l=e&J6J@ N+:ݘ'p}<(\knzv';ls0`p2&^&짌1s4OOHs2SXz/vqEԯcGj1%N׵'b}L:.|ϼ [ %ZKY77‹ i]<^%ߕ2ϕK~%Z6!05}_U[Rgl s"5Ƀ{6\!wt)N{9I:Hc]w C>;)]utWKIZr؂\Q߯JiK$|b 2J[X"vL%O=KRSh7Ֆ7~fJp`vϬ4GV|tDrgnV .MjJf[7?cYG\ vr* WjˢvosQM'HGܕ:/lOlWܸR15Tܵ7%@Щ3G~Jqs~吪~睛&3sHInjD4;b/&+rR&1ZeX J*oȈQw)mG#=FQ>Z[LbokoWxop1X=\>PVMh>&_~S;KA[/5N:J9̋qA1oG·3 1C15;nx8QPpjvhI0m,"+J\Ok1t9E ƐCk_13uWݰe(.ĩA](18 B+iNxC޶oO0z{IAM?fAgl$ѤzƂ|E喪Z0("Ӿ7~dpVtqUƒ,Í3cT-:``Qy9[MJES Z  f}-(XR"(`@XԄ%1=Zg&GJMOԲѭ'Ptl5-c5,9g*β,@8’5/& TVKF&;uZW`d{@;ܲRnlX !>tXKyaMR7]_n@G ͺ/SN |c/P_uZR8%zqРtVA{(gL9>|&e Yel+1>3]"`s)sDoṚ4/e;f Z:53WF/39G {kKJIlc!GPIBZ~oʜ8[yj?Xn`Mz #b09nv|p wIY86UdD-hc[Xo..TSZHhHQmqJ{8cոc4T_DGױFOef 2Uѯ-g#6rH:aq|w3$] = }G(t&pDi1 ܍9u7/&Nhfq\NI]x س |eK ]U-kKb&}'VO%Y㶫 κ9 9F~0@>z'AvT>Jʜ c9Z\eԔ=~. oe1O>K#$Xb=Փ=2ri׾PE}GG ~Bn`CCi׹~좋jEHFȀ;釃>wJ*'c܆ 00!+4'wm5Ǵ&cSW-V#rw/> |'KX~Fh݇,;P $IPA/x8)&|v,KH l?%:وiKJ^>Z"pu1[T+#3qUm ;pd0o-ԟdMqj|)qOc+K8v[{t\r6eu)Bt\P&7M- drZĕ,:,\z֚c!G493j% g޿u'hnZ >_VV r҉IRB_|ȕ`I6ZM2Oh[L$>b@ _)W^zu5*laWL)x`B]!IЬj(&# 3ɡdyHٳp?H{,l7}hSs492& ܯި塞eVD"d ѹP4{$δ _#^(":uW9qkm$!ã䦧IQc˯+^I&+q!aKL$hv j}v:Me%0j/ rt>nЫ:d&b|YlbbZǕ6k2MO񁸷c@pA*:&Wdefx۩YW79t9?Nj~K‡y(d(n/|gx 3(EZԨ sACӎ+gZﵞL?\{I]e6>Ņ|;qMxy|NտxLbmO< 4 C~. ˉC¾|eڌnwH7tDu 0WNѢ>!Y7|zM<>1bMa+k7OZ|{^[Q cOt}dl~&x2јږayqŇfC4ƌȗoC+#テYuگ+k|7*uc7ʋ1 r;_>Oߩi 麵4DT}C='63颜[ ҙ|'r{ܭ~@lYK.Y&g/N5I\y'Jnj͂G:\ޑ7`Oi/tIO%?أ?%sv6ܽ; -o qEY [єf"sԴG )V%V0)~aNqib+%f.{$j'yxkNa箮 q#K}cH&df\+r}s:@W̧uBÖsS1CQaO83C@a!~<:e—G~?3g, Q[JH{HUu#jn} dSM VlIDd=ϣx쨈u[Wωsd=1kbe[B'\-מR {?@; = V)[/QUmu e' $蟀7Sb9OK!/U#9ARcf>/fʝuiit`Ac"!ȰyeZMSv \qFgfx|b Ms6d(>)-x*@;8$ mԜEE1OqslmZS|n3;n%0=CLn r& P|/K~f߷Ugic.86d볠r랞Kzc:ϛbIҼTf9Ѝ11zAp\pn`AqS@a/2Fw*.wZ(? `_1^m#L/e8*Dn<~ٳw5'\q Ck ߎT(` ÃFr{ I{2CܷBiByMh:#| V̓)({ +KVZ@Վ`s'R@PN1hxj:66c OOjZddyzx=sp#Xvw١&OI$!T /l@ b?'*-U${"`YN_~ %4]X>!8NYkˑRvS)n[,&;DʝqD&=$*3%|)s# .|OZ&0G4痐HnUj꩘sSk ɲfQ҉Ӈvwsfys傪 MӨe^pQ #ג'28Tv{*I{RSS3ΝӁęT'^Pev;s t&aݾTj+ ![JJt<_ŠI VVpѧ3OۨN N8|ykjZ4.,-:H }k6k>>;!!,hfAE'Dr=*JXQd?tKeЖ4|ZD*tNPHgU[8"Ux/dܚ }+!"%&Ϋun( R9 K{ŝΑj|[X*6cc72>2/GT 7 J"OB.@H6zR̕-t݄8eOfAAAQ(3νLj7&b?i1Xˬ<H1ZnoU;*z40hpFu=ByV^hrlN{Z@Qq};g2e'4epu FPji!gNrei$l: p]"{Fc2:6`V˜ ;w3`;ַ' YK7p tqMkIE5ݷ/7Ea H36q5joB6~YG8 ;ڵj1u~x|6F@рQ4/WӖc;LX JL1z,HpC,g8-R sRf5TU/'[[x|W:Ks%agVnc`hV "?Ԛ sa܍[ ^񥒻i?Hgk9J*!3 ٙ_66<5tjb}Q|AXǁU͞?O![BM]-Ta`hjH{̝kDכ7c-PtͼUMJf]jOg)W!Z` pD<‚y!e 3ut|CM_#*3MMkbZd7ukT_8]ּa;jCjLֽGTj%.?h iʉ]ۚdg|߶>b]vۼ' ENzb4O:Ͽ87e1œ6y:mYRv<~jKMʜ Mʫ\hpDM-,@rsKl"lG j6Xp G4q0h\R\&X)yӪxKW;P%U; D*MBT MtE=nH"l!O6\:UHr5,&t?rǗhW~ׂih@;r>&69̦k]u,5*#ۨ>O[<aD׋ıwheCr%2,PTNg'E21>8̭.8CF c5g8X4 <i cُ/x@4I-|}MJvck<{.'1ZE\b=^D} Y+Ic|&7k5ߴ(p2,gdL+(>z \xZRee1k6ư]ǘ2ӊm-QΌ#EH;L(r'R{$G)0؃fff re)Xbአˮ1.1O P̼&,JZz"41ʵWIlKvt;c OyPS˕尚`v<͖xu>N:w8DJg +O9Ќ/z+HJ#\I4~Dg~Oβxq%~/ƪЍz<=~m9lIʧ?46>RPp;whǔotw1@ebb"Fs85ؘ38O yGRoe!M^>ϜE ?oqTCտOXè!gh1Nx?^e+,41*`*N"޾};`.'(mAd&`_ yGwI@vDU (79ܺķˁsA$4EEFE An @LJQtD`KL7!xS<{I[To GeXuOƼ*/7s` l.w]=Xhۜ|#D6ӈDI:2UJRs #|z<|۱Y_w.>[FꟅFj}йTm13K{'z3cwEƱHN'w;}pT H!HM BXޖ yhpQZ@3  )|Ý3VM~pF v@\GGssZ=Ӫk ՝SJEwMRBɦF\jjՌ8gfz}.!Q@ML4X9'o]qd!VH;;$Ȟb;BD]cV(o᫉z~bj泒1+FSiTɂܞϊ@̾,s˓83+a!Ou>f0WB_`0,]]]s:iturbŽb|7g A?'jD/> n+r4/ק#yoAscT<@wma`GƑ,Νs}4M=|+Ru) IQD"q$ F-XTl|޼3rݜ^? ؑ.4WO; ydDu|c*ԸFYF`S{\lβHj*v{|y_wP\gn<(8J5;x?A`pGOk:+PH-@]nGPXKOV1dR;?LJdh>b%=ixrR9G n?ЖBSDלֹǏ'3ver2 /`>~M£ P$ĘͅbIo/ cbxII!3UԒneD?0mdI W C\lYw@Am^ِ^ a<(n+#.6v!yN]2gߣg<^~m0wѾɱ1shD݋'[rp2σ6̓b(ƶ9}?hBJ[6|ujJNbaľP Y77 ^#T% ?ד^^ϱ<1k据"곈7ؒy{JX kUؑ02>/YHmȊ xU5},򨩈FOU z#1$@BgbЌ 4 5@$D׃ gה!؊%sq潸T{حsB>^&%Vj'7?]МxaZ2d-ΧKdx:@BETcyV|:I7Ś.;՛ f5>}ٌzxk=U2+M(e|+02׊?DB/%afYm^9퍍pEEE_D"emШ й?;,b~3b=e蘘9?_'za|z! ஋>wWɢvJ(g,CܷqӢG4_Wz"$̥K_5$K'z GݮDb^#'[ȷek\)<'_=k_Ǎ:Gw#pE/9rA:nݾ}cvǘMT^OmF&KpeýTPg `eMB2ρ U$f=@$yc-/Lt(313 d 6q 4o>s uOtF=k;.(ς;4/!3?3*Tבml lK \6ȀV|/>zN/PUzԌb -#0Zb6eN' cHĨ<-[EԑoJ Z4;?h)|0oӏ?G!}6D JD.S]/SaYhd4LYګȘlBztN}L wZIҍNhQ2.̷yT\UrdU;IDIkrEQJZ-$ ]!Ф<6S2HOR*Į (ZsTU|<`2TB^֊Ovki^f !!R&-oWrt5Щd᳋r9~78<PݞHm_\ s㦄;Ys<$8\2OdxN Ay%L Ĺ-&1)T$rLno'I1-̈o߹qR[/%_߳FbU!KOWPVx@n*&>]-MC懱_o8 wȹ@Q; [/q0]S#,n?찠`iq,*%.O#Eݼu*IBR>jW+f'/'dPTtBicxP^,O {=deD2r:1((PQqR*g) xLMjڶyr%OG+fjn}}~YYOAr ;o6Zyznc_B,^ 7ƊBqtɶp=6?piM5i_юQ2GxfI x$nKa].7yfCfz;:2+{Gom5#O0T1M7g Ϧ48w|n?}}ƸwgA:~xLB-KP&aLOEm@@ǩO@Go`4ëhEiDDm>7*zwd0 :ٿ;$xSCY-yC_LT&9a-MMAM--2Zf#sșR4!ZPrl`!pы83($9A} pʙkXZС40l##>9~l+c/!r>Wp}}='m0{֦P[c,ϋHZ| 2Q P|x^m",%ܴC_hKH4}h.H7C:A&fJLb0h~z'-ZY[8dg;VOG iB2c4Xt~Yr'NS<…sHHY4#ގ*$)-놃ŏ [y>+x$COd8֝J Zh xl(Q| 8%}؞op[eE7eNʧ hbs==D+SHպFP`NuH?dc?C=[I:kDK&2^ddd:9;5ʀZA>=7hQoE6Ԁ%BuhE7۶m z^و㌆e׃xP,ru :,&ci^Yc80u SQd @{BS0 r4v/gÆN ?>dO׎k~67- KQt-ߴwNOOO>X^v<fn ȡb'(ZR]FvM] nr)CLχSI1+ׯ#F5pC b$`K1> #n is19]r)y[3{.l4脜ɯ5w"]cKmUhw3ߠ+A6Mj4P8x”ǸW0utt6E uU790ɿM9vn8 ]+ %7+KEwpݰXe a&*"[gz1H lҞb4쀾4dGLWI &j~vhhze7 mBxQngWbh 3uba\fp4x@XJޒ L!?[ w|`Z"!] D_m@+}r{N[xY6Ҵ/uWPiu k![o_\u+ۛ6=* Ks(Q/}p.X&ﰴ:^R.R>^_Tƕ'u/;y[aTA3t>1MGxZwS)(gh=Jd.lMqwOZ 冂0ôkVoP/J-7k5IT lS[c?~dab(֕W-< ZM}`iCHd4Tw4'iU&byd_~'iUeV*p,yF6%*iw [u3^"^ǒۉ:"= \g Ir +Q Q->SOݫg|$+XcnD{0ުQxJt?7gwnI-f\o[#iw)sG5/{lll=ɟfis eKGZ~/[\j78e0iHeݾ-] ?TFx_Fz=z>1SSj!WO x==1HtFax}vNl^2pTU[qF89N4lÖ<V=V﫞;4 O4P,f;!ȴ;ge+% #GTGFo~i&av);K1A,K#[11Ŧ,ϯrZHݷ Y</*ۥGjɩAw,68,e()nMʬIܥr+r[O0 =N\ 9%[:<Ϻ%~~8#l{ pVՐb bK5$*ط2w V=dypl^H||k^rD#/Zڢ5[=@LU}(l]T'0IݾR< G1#ǔ0y^o%I Mn@BmQ2?@f1䠅hٴIәRHs!JD wv3q{>Xf]Za"Ė׫ȽXܠ=uK.JDh)2UdÛ9Yϡv{'xaJ볯<̵ $"庄ZQ4T55Gr!y^2Gf¢3q*ދ.W7dXɉ m%yIdTDa7yas^HWG*orE`70T-GNT]ҢG0N{D>fn,)1ߋ+ wߓ(kjTlJ:WO |`+4 Ѹ$EC?ݨ]&5~p* ?EHJ?&3yrӇRԂg kڇg.ݔ9^h]UMvy[*%,td}O݅l4qmS'-(7 : ו D:mp#`!ujީn NXe A&k)v x*쿞ޣn:Z/._fQavf7=OkVZ❯Ŏ)R \O0I3J|fu%~=8渽l-V{X ;9Oid>4^N3| w<;? c.fU'^=qk8X8֬X܎C/oÂw:5INM6 =VF,q1bIHǭFhf@t:m畍)FcO΀Z9^沢^(+W:B_v2PVyUy@t=#þRԥ*_Qȣ_>ϳV˗˫&a9.>eF ,bHH*ŷg$6OX1ؽ*;dO6C'HuMH~ӛ 1˹ґ;G*ť?[mDhُce3^cT}8:Ʌy%х xokSR|e|D-Pf ֳrC h&6;Ld"hLϘ){K\i_[qLAKI<`.; <" c' 4E/tM5t# R sss1y~YTXtkjVׯB}ébGw1D_}LȮo<6ZL̎zaF*bܚD; m ,MPМgkKYd4!/u_+x|U_yq"VcֳǴ^" eTO5]9{Eծ{kD54jүv} :,'̲fT#YOMA'_r/zu^ԁNrd(Ef>HbxkjCP n.WVזGX  ݸ^:"l\G/p#QM}-k qQ=bi}39e_LLi(ЛކT,s]6ou+:93ݪJTecx8-YMH,`VzYUҤPKG1Vηnuvola/48x48/apps/juk.pngUT &eAOPQux W{jtJt8:5&ѨDE0l^_^m)&%}S=jU9y[ /`^^K>eׁu5),b~ьwؙW P䗜dU/m ϭ"& U6 mR uсE?U#[6_{ik;{-Wlі(VFTc|gLPkQ@p  ϟ fݢi"ڮMG 51.OVn48ZFr1 դ-. j*a?a+ɦі7vб޺BgK1 yrf7 Unȳ@o%קn!QzoUNR~;\f9Add*Bvq@zݤ)D("Xf VVmp+ p{&:#R&ThREֻ^+~;9 VуH^Y6gB!~w#tT/<^G:9F`Z淘Pi[d'H~r4x而nW}+l;2{_ܶ)̠>bO"Wwfp&:y'9ik8rSޥ=`.XfLZ V?P^x-}%O|U3p |4J< .Qh>7q"=n"cSLhY+8g)Ͳ YnJd՟m}ǭ[KMVvܬs l!k=e1Y,Y>?ՇXr2d5l gqy-8o0<#ԒkȞQ-l'3 pg=q>%\3ڔ]-:tH[sP`MŒ bHeءfaZ5اrO |Νxm»mq~5ap9j*_;t*[bF ޸} B;7v<*CXh!)WbNGԱv'fDͦO:/FFgӿI]x?Įgw^mDunl%WҖ0,iXV c5̖}y vrdc\"ub`Qc';fcܴ˜]qd'mʨHoiQxMFV="(}HqZ2C&RbCd#;~}!vq(_ -֩əuSfN )Z|?}$ytxVM/f\Uyx8aBmer$rkqҲ 2" uHYbz6qO]%tVk}܁|B]Ap_,-뼽%~1?09 9)KեN3󥶘Ei"1{=n,7=&c¿}s5sמܽ/{4?~Ԉ^vX_2nLJ/S7ˆp׵='mpX|SOշkI:Sk CVmab 6)8۸GiՇ_q%!p`̅PFDU#ڦ ' n2Ɍhqo+x!`~QwQA1gQHksY}d8tH8ncߡi o[z،=j/ԑq"ϕ[Aъa )I՚B+R9.ie3Ⱦtys#o$jsVx4BD '9=$Ri=yZΊ,~dhGw(sj#Б{˗|u&]Û^cSsNw~sz`:YObt㕫rƲ՘YPӞ~Uv9$brʘZ9^n GS^.5(%P.?y')+ S6HaVc^]b p;0@kfWM$ t{= 7 b{F-OӞf]lIhl Q"R:G (P(Si 2e'?"wҎq{b6z Ӵ,Gu"bY 1XHzflT0EV-c?lj혚 jAE6$uǿY J1ۣlT1=}KB|{P,$/Vd_͘N|UʯD>ב T=ZO]Ƨ!,52#;\,.&&`%p[˵EX.b:_w .wJuDLquu#8y/zW>[| $X|ufz#:y^AMBbH2i[v!.OAۀ] FN,a"$8e-Oh-Έ0tOM/UZ91=uK"8/ROZ:'SȻʽy#ObMd4aa*sj_U 6㜀Хr,q|2TVn[Jet |P ɘ|<|»:VQti}j`-L3/qu)5%.Is5 1_}0U W Wa& 'Nngӯ0'&jr lV (EECli7 ,bSD5F^葲83sνag~)Tzcb5B6>%\!-K8@pM+sdV#A Įȳ9dv^Ό4@a^^#j>Ϯ Q`\]N{Z:d0WٸLTU9}ng4}E.uHcXQ-u#_@^ ^ҥWQl:׶SD -GNxpq&vh#?FUש00I΁"Y. kPWhPxϾྺ0{ȒJPr%_@p#p9Mȟ!WG(jƿ 9}m>t?M*,R17G@ϖ1roԭ?us\ɇ'ANw7~]},-&ȴUD,y7gEuM#PBu)ՏWwݥ.v  rFnd ?=~ &صA'pO0\>'Rf \&(S᭒-o'jquny8Mf?to-Igd3x\0B+QM4CRe/1{ 2o-Wb^x≺Ï$D/^b"7CyL|KX`x2N>yNpUmؚr$;=5&6o&db /Lo>.aRuۖbJfŊ|AR |I8Zۏu~gKsƒ]ke߿0|(Av͕S`[utAa@{\qX2+tp Dİ>7m%&WkWqCkXݵtd<]㨪bEy&-<{3nmq'0VÃj<'U+~!/l+"Aq@$&\Fevn888QZj#N[B  L/_nqY 'W~YK(ǻlIVRVOyZ K^'Ӈyy&0v,\\akkj <;q{FL*~͎WOy.ZkOdWA?44*%_'+eoH RXb .P @|?0 0˷t}khc0WPVV525m_$`h!nbc*͗CPX=Kt4;FEr2ݕ\M) _EDKA/X0Hru H$特|R&3ӵ"-7 +qcM|`#+NmTKZw8,y׮"4ůBxxnY tdyqyi̥MR@NODcu(j~AC[,Ix5\:ªNe\5ʤ)•f|6AMy ;x5kg 'Ą2_Jt#Jy@Nʛ5h6Q_\G?Z6#ccl)8kǁ)AvXZ^[Z:DpPSd$)oC> a@Ff٫&ܜm $Fҿ~QQ<(삏lGnϺm}'  OmΝl@mipBxp0:;ɀ}7JF.M<4 7教ynύ地wE40Б~E7 [;<+tnK#m~ utFuo{wqu6Jܣ[b\?)/s!C1!(Q@R觇v?0ό1wSBIΝWƙWz?r`M%v @5-$|e'ϡ;[舣WM+3jrj7嗚wMຶ9tЇK'ic)"O8otںf&.ZtL@?Y^jP՜z^Z4rfpHvmI7hI5c;XM'δQo'- ώzvt3Zm+BA}o||*ֱﳲ3L$rFLM&r:ۥ @}iiiVO`Z'*5P6^_*IvBr܄M.F]./x4k w\"f뢋6{ij؃/ ϫX7n͍'؍u?VY&?h]A N?7U+iuY wNp|?1(G7?b;{J4[d`Mgo"nۮ!;IpQCgd[3Z4f9Igc-`M>} P$#Ҁ|mpA>xSxR&ŲVw7"4'ݝE'P/'X0roRMc5F(rwEV(6LJZ3 N u@ 7\4ܢ~;|nne?PKG1h6"nuvola/48x48/apps/kaddressbook.pngUT eAPPQux UWgTSYMʅ*$J B0b3A!(#EH!Qp؂XP$ 8D &@ozzΏs׳1/G ; 'as;\ŜQ4Åyίǔ  _qݚ .a^u5!@+/b H8?w8!E%=‰]+Kg`EJ>6܁57VNF^uA.$3 d $%%%+ھkg?ny/6JuCI8sEK ȝDON~jD]%Ӊ]vzz0]7'*'т•[WGrnSilpڷߔkB̭V,oLe8l6w {pop/I*{XNu$^St)J;WuEz> 'X(;.Uj-TfrMb``b%lqHi177>л5pOHK !`#Z \-XkIt׊ i E8,L)XLLry'ߎNR/ö dDɍ)TآBZ#w1z%:mc*NeœVn2,ۧ}IĔ 9sWAm"`f&_DSDpfT%/dWxw!Kx w0`} &;Tjvb[Znv;ZKp!?.Ec1bfYK;8h0o %jF$%>xG [}n,rQ~[ϗ/f0vxF[EGTnrsf 0r6JD^} RGMoV$UUo6J=,^92):RUK^%t~L]8Oÿo˧]j68}Sg Ƒ.KaBq?aR ҅TX5gl1I;/Osy}ϥQ]xpgFbIqR^jI vŃsvWJ;V]iOITvE`9-)w.ȃG׃Y c/2l*?Jpj9:lUtoZ&r>l ^Z4!<"m:s]9~Ҝxau&s1>Ugg((ˠLϮĪ\@RR^. ,J#ʆon̬~diXфF*rNF7TY[ Kɒ6F'W7m RHϻܙ7_Kڐ\pbtDf= J W.lfL3bAepo_vj<48 TmlV4(z?0ǘ=pyN@XNL]fզ&Dzp)U>3{KC~0N}1d5nu2sUqxbCP78#XZgtn[AY;mqN惋9Bʐ3;gann|b1KL|ķ0PJt7sG_5AgB`tN0rkh݊Gz˅/'UrӐDDxymhoWB"T§#*LQKϘ6d¾Xi3ޭr mNYחXS"BQ vBD?OThX3;aOL!4.~_R)$H09rWrX奃}Q{k ~[:ƏзTyV=}ge쪭I_"%ac)I$9*w<|4J1kNU _⟵&$?n_6R *^$f5GjLPl<ժ7_60,C/4c]W c eۺ\}=&W0' ģXsXC<֓$7;&—6|"*St(lYN*WϘkD৥ uu`)1kT:;?ϫ#N G' y1ٶ܇je|kV|SDSm)]Y^խ`h$Ə7SDwݜppRԊ\ lo`9VΗM h΂lB?//~bn9lLvӞ緛tQ(,BfnPɼіBJ2d}[Wn^:qѺ5;vGT|j2'^{[4=s#ew³qAQjr!TuaH*UP`,#s۾C@}x*̍Y!=;,Ʒ#""rnRB? ]p24ٿ#bpԙ=?YʱML /|xߡԔs\W:=+/[kqQ*_cS"j,Oԝ8}< >va4d%63'-xX-zKbu2-"P\/bDM}0wM؜]i^pҿNLPWj!솵g6θCđ-JZa"vyoRT'~7 j[G~tVoǛ)PKG1巌(nuvola/48x48/apps/kalarm.pngUT eAKPQux W{8T3qٌHfFT"J͸J5G"&_.n1ÈT(N%S]s+PAٿ9yZ~o:w\]}=4okCs'y2M"6@Q*J7͝qtmxGcCnaB-|D FA>n>s!T]T8~< j˚8@TzV$fI 5fv⹖ClB LˆXHs 0,T2& V*]Esh ש* @!ҌEA*T4iqZzqԬ?ZZӒ{+#ae__+|5PJ":BAsnP;㱜A{9Ҿ>`(N?%[ng?0ቭ3᥉wyDsL6ĭl+`Z sjUK*D|QFRQuZ YzGGk Wa2ҩ'p!^Mґj깳N4Cչㄌ{?,9Xu|F,B]T| ]tQ?9fC,ddx7w2=|ŠV=) Tg{E`_Fi]qA.NDU6s7[VUǏ n$֣v@"ŭ:\. @rlp83t*n{;` n|zDΨ%[X<"w6Z9n lm_9.BWQsA$eK'悜6g67S7 ._P pR ~\B\8((;J]m29JQLwJxF%'ɛ뉴N%j8AyrB44r6w-"o2LCĀUc gL' r@ ӢOX^NE1HqB/ 꽝^C6nW{ǂR@} Xc)>rXSP1eHkKZ&"KssEr{UlSlɕ7)\5_IY j_Y&-,B'߉X/˛<] UR\IMtip',L{п)[7A5PeE]=RI4MY Dr$%&0Q+~hqC3reE?Іw>n)ƚKk#/1 UU[.167S I[L yKxZMm]SK6;Tu@ 6s?] uNA1U}*Ɖ^&Jm#P. {V$P(z tR)]Zo[I/3q̡}҇ S`ܙ_\%)Gx+_)g&m`Eߵ6O-9uTe%&&hčbC 5\9=@cK^۹C" Jś,mPKzF/q%7E} wG"k`pi,zp@S| 㸀.Z|t'ݝ,-`.Gx*Q>O#X)'xcuty뻭pjzœLj* o᫵68 ˝kr}3XWۮIӦ)ENBz*[UkԏR[ɇ.eFkI?`_)x>]ϒU&Ϡ'ϰ;DȰu0m>M}͹3:Qw~eT|@}cC>cSv;gB %!@yReZ+2-н R~ 0Dݴ"]0LPM6~H>k˿]ZC{tķfsQN*n\ډ8?; MPmjit !Lށ%;Xl,7)6ͨk yኍ>/^1{aUF`9T ~)Dh4(CLRoDKr>NK0sk{cؑEZ+EwuWK({p q%4;Mn:PHYy@{yn؆GAa "&-!&ۼ W7fa߽7y2#nX>N]6[2iw.~*zj wR| 9j?x}5db;ԱWYi6)l^x'AUA?cpf:Ld_VSssKʬx=A=*Ζ8-NzAY/9|dc6|)" -Oe${Gg^ ~ϦmRQu=esb9^*[ M /ֿ:W6䭉 ->6@-.Er⴪s€aqu1;x~o_/t38"<3+) F.abdaYȜ|TɎ> 㚞N(b́ho3ǡZ&E=f u?(se-j𑷛e|N31%HOi'E.)@7Wc3-2aӉx8pqn UtFźcU,=p8rY7-NH%Xjh6UW d3zM4$)mHx^g4Eb߱.)Թ$1<b)sgm xW!iƈ=r=wrth;o@)ԍuYa3D̳gݸnówcL8! yOB3.@NJޟ9BxD2G}U|CcE?]2YdvwQ޽ Ai$5BA|H .bݟ%S8]̇#DϭG l7WUȠUJ:/t__IFԤoǭi&,LҒZ* ?#0N'@>LѶf n=OapT:Wj vRcNzg$ds<ꨜ7Vk4{ෳT_W*o=WyY/CI>5_0+vL46bΦ|Af$0?x0V8S\8OJwWaේrZ&KX*Ԉb^j$EԢY};<$cƢ|68 su|lMn?DNl.Sѽ: -Y< A t*|̥a}5%K|jIpǠS)z-78M4r_I8pvBW[P/0Ey5Gn{61nO3L~ɼ)TZG&R.8TxoCf0.y8Eޟe"J3{o9$! BWb]J4ޯXh]YVbnO05'y>&n%D:ķ܅Q>'!Ηf.%JL# ((ט'.Ɇ.Ey!+-6KH F g}muW0+QT'oچ%ؗ\;*`<6}Qv?kml۫3~n`uw׍ᶟMF%#+ݶP|(JSiiFjՎΑcIo 9fBJF?DJפ L#me_c5ez ޳5'm: Dz4Wu,;T}79v~JY=Rۯ}.xwGPKG1{'dnuvola/48x48/apps/kalzium.pngUT  eAOPQux %W PYKC@0DqA"q8(JDDP! ѰAFA((̀. ,,&~U{yFh&6I?S7 ;OmAP#Nܟ|":)b%đ7).v5 ~ M€T#:)0B(;NLi̧t'I@" ` wCREK-Vp7A&iΣ7Muv}&PMx s XLTr| lmxZÇ4_V&IŦ&!7+[qüx"(:ve"Ğ8B.- ZC;óx/Ђ ARd06(X&q h4 \OTpB r#+?x#~Ȁ|9[ra0ROuzgB2ZejEM*ŝK)dMuj̟k /2CKrtH YWֿA?Q]V/YcaX6qZ ZI8i>5p8>W=3 N\VVb7v &Dr/7yx78z^ WGz?߉9i.E<{ɵX%BL;y VN^5v2[Qju8A X~.V1DtE J0?+-KӋhJt4;gEN(t2;Zijjr}@&@Ď[3iuGvcqi 0 m?s{\ ??_N 4qt{\)c[[ۼ;{fE8qpEk5U <gXb1GG]d D ;t>G,C=PD ~¦*ݻw iiDnA|l%9klCI/z Ul{[NW$&g{;]D:ѡО d5B$F㙠u8W:H wFrzAC/(CCC}J%hBtU#[5kCŖK#~l.aER >> mdՂ/-SLSYZ}/H^1v’1jEo[֓gBYQebhxxj7`t\VALo}bff#  ˤ%T@Azyéűjr`*ܲM5'KD2\f}X,aU~ai]"q34r&&UR틚Cݘ%pq-d1g] pS*w+k+/S|D==@?%X*Q2{j~Qzg'C|A.n j77"=[T iKQR,ޞ|'J{hpVC/w(hX2ËO+.Hh.@@T! Vϗ ^g{!S>nf)(Vtw=}pvDt;&m۬[~s#$h6/7w0/j!]J|7i`tIw4ljpsOl)g_|R9Ҙ635+aМ3xNRc:7}9 ᗠdXs=g <0[[[ Vkkl'gY]2I@%(O\9O`DB/٨bHgqQa!Scɚ (9:w6 sHf5ϵ7Ug8]?X%i@Z>դmu }ׂ%o*of$T,bSՁ{7Zuox0 [$ۆdU_eq"3hzF?ָܺC/EF~wvcerLroobs`d| ðEEz5?&x3J۠c< 7hx=ǵ}9AB^Sϡofv/E$Bx+-QO ~~ȫcGp>Tz6X(nj;L LPT -b{$]m}nѪVs 6ݑkcLo9۶1_O4) 7Z-W;P}Q{_Jt`17bV/:U͡pԪ'P0E(v`)-?Xíю2f)tq—TF%ɇ]i7~ҶB6{/fפ̶Vc Y,&&1 "Bte\t ]#8H/{c{~x%F^<9=yyZ-ξ`-\0FրztMs 毡Lc(DU,"e왮c0RA$͊q'C$zX l!$9ʚ hotlLTL-=?kϴݲ@TU|ar1/8y7Q:{ЂC+BJޟnhMnȲ` S;"@5vvvuAnM4>fAW8r2`$pK- E,2r\ʁޕ\m?[v y̬ ν>z̘?c ~G,$s&<cQzCqxϝOMMOY,t]k>~a႞}8h.Q 7CF_-hAQD!BLu֔{ B$>:wRgP[PU`DׅD;Ÿ J Kh~CVYl"]r/3V5F?=yТ&'~A רܰB}֑sbeڛ0-&UY?cN*$IO' {t@U׳g>Mc&+oȁ6xQZr"˨ݪYXZN{Sv2YpS`E:D%pS36h_:/PI1WftEhz8Z ^l'.リ붞N9@-NH"|LChM2Zf ѫn-\ 7.򭘻 ꨝ=>ƒU\2p]ٺs!.cB]Cꃉ)c~R?#ƞƍᕘb8eR:=W$̊y "3|zDŽ G%AB3VzIc3-(oQ)]<)tRLkG}{;UF.ҨWKɕyV~_D5ů zE.Uλ58|޽;p65ֻ&PTIQj?<m&ːx^_\*0m2%3MZmF+Gp4ȉAZ|Dqss_VS(^]97W$e ~i`S hNiܙ9䠏!F)ow jNڭ+U7o aƭjyecZ|O2~ݾG&%q_,j _zPyRӟxY{heWˋ 4sM[x=co6aQ{*&oO֋i 0t^d8oLIMֶ*R D&噘:s]BیM48S:<].P*},Qb+evtœr@l ]ZfPKG1i͛1U nuvola/48x48/apps/kappfinder.pngUT eALPQux W{8fifrٵ!f(C:PZR!"Bjlَ239ĖF9Ǚa}㹮9@ok#Ev6ؾ@U#C7|BbD|bGcc"S%CFQ80 M R \{Чp|y#Pu*..,.͗]& vV]jƚp|kb̝&8S]TY*r6[{:* MMMrEP!פ|,3z )N'K#J*/,'g/|nUV Mt(Vg˺0Wdafd_usᔉ6Q]G1{69'T`Xj?)))l8nifa[w(= %עolAUy-ž<Әؾ}~cȻ{="ΗcΫO&7>**xҥuTU>"P*rם$q.,\dE4t\ٛ0#ݧLɭۘ/,CnoU%}yyޟ]R^t'-6k֜dzmLf&QM@D/Rh#ϭ-0 ~[$ՇKl״Źk 1ڍLc\i&fx=^i'=IUrhQ8gU͎楢X5~pC3d !>V;wF!~ Czq0z'hVG7ucC^Zb~}]Zihk`]o eJUfQ".{iꓳz9h-UC1kFU[8TD~-HR3D"U_sjG)pÚep蚦Y [D.`t_̂k@|/ՈfBK[E{kXFFtyٟl]ͿJ-,,VGPMl\~1# ^^żA_x־R>~LNǪ\i,Q~?^Z!vѡ0ηFZp+Æ hW3uɟ<b2m8++o*YRk7bb?ָxvpg[I{G>xPkD7n% Txya>]$Ĭ-搭 usU˻;*FS =ndPiƭk%܃ >@]4!L&tPuRH'§^nj2ՙCW  ҢRI܌[7/}5 HVJ[0c~V(\&͆Emʧlx¼-UTM$MR"]KQNRm"1 f$S?jLڒUkt[x\2ҳy!$< ċ-4fPL%>;NuM~ ~[eZO Kז~CrmpaD(8ܼf]x)~2į,2`wg*("^qp'Lfݾ'VgqbEDhc o[1Jyx~xrAOhYfr(3Dc*Cfڄ%x_41P1Yp1kY.SVܕ"fj+XeYWٌIWf_kkmՍMW^D1?Tyg 8#ZׇM/bþ'@Q^*v7͐Q9h-7;'\< ܿ(YEKӎLK/5#YE4 L-L{)s#U&u{͂ ۙ/܂\7[$k,J?W?CPߌ5&~Liq[v[:?`E~Hf.$f][.23 ?P! pc7|=655;w'_* .&VGNC8*O~^ | x^tq,(06d495!kRؐ-f{EC=}nB.B8La YX >ʙbsqK#U aR);`kA ۯ;gL 1봄;I;(ା YY?JpD1Ltog]ˊ:D}X?)qh|htS'!;~ZwKlʙ\Z/,X{Cuչmbb(\ .§LLQGWηpkظT?:tory&@{!ԮA:屮 Kݪ ?Vi8͛7}F~3?DzLؘv)"|:X{/tmMH7Ge%>и `b"} `lnǗwqHM3/ѐ[` հj[iLI0tMMg0 a7:Q_#Jk"VTl?&Pux#vT${zذA 1}Dm>,ظiD,DH0mhvC$Ma9.uI52+( cٺы2LLKtBV2T 8sXDcF~#P7tVjaR}_֖^)8!ڌ͸謷'G!(ۨFdk_h r">Bd\)*6u\nNjL1#nb /aPc`3Iy=φDK2i@-  /,.Ā|)xmoi25.t rv,Yl"B}e?'ez y螀lxj#nV([/c9*d}2M)5?e^RW:25 ^,* JQxVYIj8:";'!O[#:#Zjт?qC&46S_SŔomh$BTxSa8ou@'ӋoҽSҏ.\L@Z׹DD˗5*ky}}S2A% ?~Uz"aco 9nױ^Ģ)Iŝ0vm\wZL%A uH먥 |~#``rMᡡ5(̙ϒZ~OLvfN\,Vo&8ؠԈ:W/8լ{ji3%"b6kZmMjjMLzH踥*?;M^]_UtN){ZgP>/$4G뎦 ƾ@;}E/y-^e*"]Od=mjSDQ{svT *?kYݻDe[u^IOJT{ ut;4m󺉟o7CϘ+VWeL6 wI{GVqn߹@,{t#i46mZUY=T*F3ɠ1ϵ,|WFF b%.8d?&V0;BS,LJ/H AK{ hG~T}K n}N W-9Z]VY'}ӑG/5dR:y!b\} pT1O(Y!*S,K?Mݹ7W9vLnU@>I)0 _P亃);UV)v"??,dg, >s_VoaE31#9 ܠ@XDxT4j!FwCv"k]m-zA5 8=NL!57nĢZ>AVb6{~>p8ҁ}|\v&/iD.(B(jXUDfq{L״g Am!F=D Tsΰc{pUm-oFrn7$pq/A16;H76 KYd2}87R u*k<4&X.g|?O]`y,b֠(٧vD=@}fGh8;kj! NxNqOy!@H=6GId>߉uU*6ӅFz}c$ 6MpJڶk8+.X>]/gHr=ݰN`R-M*h)8$n2۔4=2?A`;3.yNn`K&aly^xu9^WoQC_ >z MkǠ>eXg0yKtLMv#|E+j'WA[ X#/OL)fiğ,z>ՕҚr>5^]1mPҵ-dH]dbZ,\rdb3 Lgl%}H2:qC[ Yw,zq8zͭcuŀzO+2?%_zڹ3j`>m'hx-΍) S~a@hQi;lxw"QTIf.9j9 ӶiSWC:DS2\hP )gsX(ؘB;gG;QڊxkL:}Î{^r߅xn0iOHG]}E-E0޸E$.c# tn@hSnڷ"mUb~J譀'0ƿA^5GለQiSO)=iFMg^yz"׌)Atu@ݶ-٬BC13|mvӫ_ol) 560؇vI%|+=GC%[k TZ *$:s Myajjd.W%Kf;H h KGD.EXxz(Pl>koF;`?wkغs^)WzC+߷-p6Is32%zщ?nۖ^S" *-eqkfD'eg%C\;'1w0ԮpB48ԅ;4h2^p{[i>se҉>R֝3zͷIpuJ,q^p/f]i*#iN쓵ʯbSf#LW=ԣ#st`ygqmpaek2W 3l}!|7#O5@ևC5'hn|$渪66dizj4/I9Ev,_tX(X5ws$#ÛkM{CRH0Grt''~qp69ѓ̮6FkxaSn↢, UW{OUy`wPKG1'6^ j nuvola/48x48/apps/kasteroids.pngUT heAPPQux W{<D\wrIjZͥSXT$ ;B2vTn Q։l3ךTMb&Mry=<<9Ou'c{o֒W j ]PƵkb⎐ĠрWT\d4iсч:/]ZJ kn&7h PTTōs333+j]Fd8yaכ7o&iu:aϒx\HZ do}i4.oaAaavζEE}~ ;rgȅ?Y7oЍiK"X,jkkS-半6zYW)b:^7} iFFc/^9KsJ( yA2)"VDBڰf{u'HQ:6SB,p儱H7`c dv `6+ ^m]iMZZ"4xL ip7]& BP xeY_)*: ;t"e?ݻwGal^<lٗ r"~44൵*X5帼T 1= ,YլIڠ+^@.vcdևo^<4[Jx֖?=t%25_H#pD4)n|DM ogs{l?"K\TݳaQxiQR1xxzi[⥇fZᴨAvg0xfy!MYUj>D>[wCaHz q]L ޫCW:Y(y5kR)+DU9Ocw =ak]Ι~2abcfƚjiiYUi@פ睁 Tq*bH ֙faލ5kmLl4I #XYz!2!~~v0{u Y{l]#Egj_FR+*,9٩md!֗/۞GMOlP|YG`ہqrѕt?]_C@~ GP3&[oYc!-oV>11/nsi:cu&g>]5 A@4>}ۂYET<,v)!8 &.$n3t|'lH:Qcj.Qw}`/L!% ~5] JN.nO?&aE (K!#vD 1`,$ w aۢ=^WPA{YdͩRHe16OUH0nXA-s,y6ML4~ve*d1CXё҇^U8? {NvVA'{ G9B#+ELx6 C_˜Z/闹Piс[.e| C}|مy啕 16${kf }p~t.N;k]n 1IV. )^'ߝ6-z>i !gEYWԺI|;*;q'kj= oim\>9(]g>{fҺTq#_"uBwܥK?gpu&CܮZBҡagC6ט8/\Clҿ3798F\W*m(vDyaP0ȅuRHzԋ!XϨđ$ϊee G[J]X~H|rDtJ)e0͉F\Ƶړ<'ׁo{ekE]VGD6_@m9}h82$Gk)aaaRݮOWw&UOIe/\vJ`vV@8w ܳU5Up?3FLۖxEaU#?E"8* b I9m:LYˋwK\}' 5Zf'Ү.{ݑtiQnbP1<33j2K+&?~BzŠկr1Vėށ}ZuO\T]S,w{?PKJ^=15snuvola/48x48/apps/kate.pngUT \ZANPQux UWyT[G)8e9Vj@٤潷 8rH$QR˛S[ fPyR4sPwugk{rv`7X# (<Qns93cSLLG8F~У"#)DxN_J"ɽ0"o`=O8C ,eG1ʌ CC {zY屆w&31R뗂vEt!Ʀ:mI?x&Hp9i3, jn}R%WWD#%l{΂xjIFq92i)/7Op%*U3 2RvU?Y}''#$gWZGϽ_vo# c8aȫ\{9ۅ–`d9~mmneshg '?QBKٗM]V8;5`Zf-lyMs&Z A6$ e6| >o{yȞB7'zIb "c7C-jַqݙQ"BzpQ6$g@{z=ivGv|@wۿߵl=6-*B6`ep+7jR:bbspA %GYT=TzaQZzn憓wQ=Qmx{ M[vqXg_, 68qꉇ JU9J [lG7wov<\5 7CgTHr TrBsd2dR llboNR&,OBPuٟ3f<],\Uvת47?#D]2Ahj_,(j߲oٴ1lm.EϞ2$0 sO|~&ce:U/f1~7BоT߱zcoBV=;e]qqɡp;lڑ )N_X Fآ'$!j!PRӇGÙ{{igȱudP5({QMBjY %b(7"V J3ڇ[ddq_Vtr`>_@ }GsA/*W:5%:d}]&l>)^P9UHzцGxE{jdkA8|b3~#L#c|hZQ*إ|Qɉ" ;@dd,5uju q,ESʴUg8uV%S`J_p&~_vxC̯W:*,I&קKS r:%8b$H~1-Y!A*B>)"n挌=?ꆈ0;ZZ.z@ܗdw(W-FOhMHLwoHm˶^_'p8 p1)B.%cP[<~O "NxjgO_K@Ⱦ@ .$~C Y2D8āueK# "hbjھ.agJNo;puff; ]2|2&g%!M=w'rbDd;ftr0oտ[ dfw -8Y`T 2`s (ABrOxR=/P8l!ib8Onh7wy庺U]k>& ޟ.܆O9UNۗ erqif?B]/Y=1/y>i?8_;=7I0z3Ih51k,hf&mI0F YT-<˅!5#B:5*C7+SENo.174Yt@7ƇWc_Îi.R'Z~ܕ0x_b%$LhX%,٣VƛPakK_aS x|}OaǗZU q4g/oqm!~%ȇ+lh P.+n跤~%R*ŲWfLSLb89JKd>e,nT)e)Kh5b0(e(] qr{h5lh^׍ƋyU/EդUY up0| zD5Kc`mYvʕqL e}Cˡ+~D}̓g_rr { gS Y]v/i=aeBj0X ad_VBjQԺqTkY>_pvO ̋F"7uUqM^UA2 z CVaJ,D ߖ+ {mh@蹜C,'R($Pw!Z=v<s(O"xJΧ|24E-' $%Ws97m@|S@aνʪ:;]ZVSp&Jh}|fG,JѐFfpmRA.+\TƁOn>_^h1M&]xG[k6Ei ѐjU#H5ykѯ ȣP}$lWҀ/Y>K"4s5[lu}h^@^slWZZĠY ol{ƢBH ~Wy RAϮ'z)*n4NlUZ V󛈏e&gszRxjc#prRYp;ںJCMvѐW>I?;Y>,p);K([WnlpM`A LVvAj jʢ (d4EMo>xOZk:#0Uf֭o?N;`/cpɨXq:Ҕ[eurY$-xR2H߃mi1gWYmK!LTwvOK٣]~= ャ^__P^#_Tkۺ !n߳ uG,dA7-;!@J"58Ӭ*U |j. ujʝeNgiMb\l#~6yo,bm[ƜN QSkIGy 5 )tK\+v(0Yˁ:IJqOF>0W=\yNif_Y ™R.wcLa:-[.IR'k@xRo'0IUG/cXO&Nbg s@ZVOv׿zP "[K!0^ZƔ#>!ᑥ%Q(~BC ^EܙpF! J1|ЋR5ڿ=,b$7޴D xd36Ŀ m -uc H@hуt=u] Lknb"ޟKq2)^P]GVo5uq]h2t~=iG +ã{+M0}vmCE'T,=Oͮ v$N (3`FeO&ʤaھʇ?bMoAٸ47W!YyՆO.=ڛO j7WҌM[xZ-KV.$V1JY\VV $ sJ\ǰI?8JuNF͋|բ4(t>NBB-)4H1@;h PLu9r^=~ubSX^FRȌPKi"d$y_(k'mxp@0++A q1޳I8)t E.d$)J4l BMcƴD._ay.84ɏ(+l FVcsU3۰OvvDU1) -=HKDUޛZԵ5X1f->8EʑD/伢E jŏсi=VB=*eV l89QFjR_;@bw^;l[7{IW\: QƌG O+09)QE%HS'c+WЯW7 !]w Пךo]%1chF Ch,:F_6!wGͦk %F{E N7f"=\e©DY9\ @N@n9vFɭ5:Ɂ$e=F:Z,P+֖ql¢3$xךC0vο^gʎI5p=~C'<"R~Kxъ~32|ѝK!%*|oo5>#n522+Ey uƈkzI6#5 <#z5=7}Dٛ7bp_A0/2O*qdNgWOIRs9UmTB%״٭-Z"ZܴNEv(_kܮ%q40z]0z4q"~6!p=*8 ߣ֪ fZ7%`ky`rC֯&`zyԂS(% L7DT *2$vzY 6GV9xum?}8O{tvQ~ۘAhc_%aΪ>!>D{aum:ſAܲ DG+'i.M0hQ/V( FB%$iص>=L8ӄ ;aU/"do ˾ Ja=Vko`(4a glsl#tM ԊRqqޑy٧ynɂk7wqI”Q9~;F!a'S'†-DDq1 XUFRt~Y#Km9>?fJj45l45#y1_keAT]A2S?Gc4'DSU-d ~vofqєeP7l_VY~5FJk<_vKx0!@ya^;CCѕDoz w{Ɇ//rX0'QkNBΊ4 W[loۧ<ܪ/#fk!ݯNwO;n^ġbe;6}$Dk5WT wRq"xcS?7u DžbX?}`TPSjV% =bmoUz!j'>mCCù ~ZRhGr_K QSfHmk9#)"E"G=tq\&D^^q-?j%dnfc u禍gՒCRܠK87 k*ebep/;;KU&5ԱVon PhyWs3%!(y1ysEy*]KtпJ}nAjd\d8mL)pҪˑ%S~M=}fi_D# r?^J(I f ~ML 3h =i-iCPp'ozh#߳u?ojzl_~YƟ{-a 2TN<@k]?pЂ2썝E7'8FCe2 /NI ~)(^XsdeGf=y3%6.:i4T;!Y+!jzd忻Uc ۢ1)޺ bGJp{W}Fbu_gMmҢn75JR BYݣԵxw촪ԵjʭJnјN1"?&}|׷m[D.0uFʓ}Ђl0W|KFW]5؞<\^ru&Nj>}G3r&tU*o8G{8w.vs\8sN%/X u~y=]j=ҽ7ZC ]آyR] Z4R)7F ࢻ/KM5Sۃ?PKG1+#nuvola/48x48/apps/kaudiocreator.pngUT `eAOPQux Xy81X!6]AҥVR{!BB23dߩ޽.#EL#MqKQFY~<9u~={.{ܷNUOZ7k1B:@ڭLؽޱ#c/P`H ?( :`IG%r9牄[maF] c  <mk$Dz$MT#)ETr/)ME8 E, + TԳl`JBtWHW`ex~] ~Fp-;-`Xq ,,L"Z}-!-Ͳ:9ѣeCY?2,ːMi DM%Cn ,0 X<ach s>F!*A]?&5eT֦֡6*TN y3'|_ =Mr?hbGT73滝+SHF2%'R]ĶHu+#Eib@S6{x_EBC+AQ/{K%lx7*%rq g q: KtSCc~;l+;ڭ\5>f5o`9_v9лS€ SLyěM{/Kty5@GEiE^JriqoRV&k-h4zGB _bAe_#m;x/7KC1U]J q_M$r Gvv,Zxnܳ.@i2=*ϼ+#P|0f9* 򛵀9d3*|lDiżomV!'w|YUq=*X@ye6(JЩLT֐״Fmc0A0Dr$5'œ+dv1%Llys9Hg to(YC۟V^ih`pXPF߼*w Wl}l+nI*xy/kayb$_0S~T9 Bb =ZOS<2"frm GӮo, / /@Q1w S~jq_e+_WZ -;Vѝ&]nǷ}*)MW4yʾy 8Unħ(  XJ!> [\NfmKw| tJ"zQѕ娳9QFʖ(E:8:C0$Int#>- :@5w@?{L-SsNB/X1!%aޕߥΗ/\f>c#y0a40kJ{9Ԍ[jv?zf')(&dX7#&U1 K<"<#w$Mh]%ft5p8.vj)H폀ev㑏J6@M7 7hZV,,Pt{J#<i sZ|xvn:̟i;Ƹ.S\q"qc3on;JT+(eJ4Mƚ(c_.?J )M\6fL+396P3@:#foUﭗ,$yox:9)tM Q[G{vK6b|X &w"2}cZVltw0U1S1 $sICWHZ2 \s,?f}KO[Yˊe4[dGBchaߝNAFQK*i?6H#Գ,0#mBE;BnitkBVR8#w Amzux|Eps"2[|un>U Eczr-WJ}9lbC9!|bP]5Ղ?4d} uCLHO̦:lG锳3OY_;=QsjkI'D0'XuZ=>dƔNOS`QJՒ9:'+<ڵƯ7n>+EE(Ya rDpI2a+"P )g:CL`DҗEmQSCqEkg` &۔E5InD5X(.* O*Uo+<F<'毾Zmb9k PI몊0 ;p5/EnIֆ*Aϙ;6LK(YІYrSŋS;j12%+6 n{?Ӫ`,Pcq3Se!U2h y'I/gXVwxe#0LޟJz]wJW9Iֈw,yQ.2]zT{8tCx|l9z%ZahZ쵽Kɣjȧs՟?p06@'s_Yqk:9Yk=1ѫ~Fד5fE(*ѝh\Tp^7̶5f5w 7|+ uf aᦼ2ЏW8atXRE6U*ל8}7p].e}!qs1;;%JnLQkצckϧNaoVk^^WCmr-Kly^Ρ6Ӑ*'3"bowuS^25׾E&7sHg iKw$?d3OEЏBS qPkA\}e Le;a|I2`M|L]~fUO~rM _[>oma)*l?gRҨ0m!# ޺fЕ8iDžB㔣64Rږ?r3KS@G(ygTi r?>jB737 kMAZ1QJX.5םH} "u $R@t<]rGCG$ L|k 1~t9@N.pf|ؒa[+Z@Ab \B3P瑛@ y9!-Jti/ZϹ=&55?kmfhXl6ZPp@q"m%BR)QQ1bpgG@?'e"%K]8fY[ĒͲo X#)alinty%? vFt'|pP&-댗̞la_@a"7v 0(ZՉ7{z=叒tip +tqPMzIӊ G*M8TRw^b'N΍ymj67YC>Ǭm+j~O%=\sD~1ws{GuiTk Gw6`nzwVGZU==iY e'npɅșcӶ _`Bjm<֑Mۈg~kPyOyO6%hB6FI?}8]gSo6F{5wݟpyBqbRX 6 ڷpo(<%|򰷚¾R?K| "ocyB,|Yuh Unt@ ?4x4)$LV8ݙ沥cf$j_f [Z䴍:9l^IdUim2ZwY_rVH/SCwm7ů̑Hʩam0A$)RZkZB"bZb1w#Kŷ K< E=oW9N5oGlm9銒~j_ƘzsnѴSy.fl[ng{8y[)$ʵ0Y8;&:ɛjf]9X]Fe<@WW7I(Ia'(n| ƮxzBt+f0\TWrV3Xcʎ BgQ=ivMN-wlEǃ Sx#i99Iv:PZf.@zr;et[eSIP`>|Fu FC>X~'pd "RN*Úim\ ,bl72J)6GKz^TƾXBkOB1;g͖U(Up1 iN8^o)eKB_H9ɇ( lFKٜehSCd̿:pd twEіpُa$mpޗ8+l3Rg>ĩ=ekڧ pg/Ǽ<[,ρmߓ9?\mj-}lhmM-k- .c7Wd|`f2() W-xLuYeBW;D' '~9YBD%: ! P6KX^[] Sz)PzI2H|F0 hlAS[q\i׋{}xhXJo~s߲aT%y[ tPBF @ +L+8LJ!]%/H%6/ͽ~<1po\stݥ#ZZe(uS)I_%DFz]?7Q-huhƶC_Qbؐwʪ:CCvk!%}^ pV(~X+774wKA<0KClDL?7c°WSeAEBR~ /BmH,!y19vmL iv40x;(w_'y\" (կ gGgQK3_099yzkDdZM >Otd7 ;|z6l ~c`Yգn^9ƦK9h.;1eѨU?z3<]%N2ٕ4f:?yrceV/]Kbh;ĮGOO qx?{q?]I+*X}J5R1 'uҰo)G@UBcE~jJ %є#t{ 3)N:uymakè#ɳ˙(,gT$g][tʈ-Y/7VhvNh?p%Qxd G35۷N~3 #Chhzw.ǯ'j\}D6}a@m8w#D{o@[<uC~Z$9W˶鹰FA,vxk" `g>_q1P@3B9u% QEZɎi.DD(˦Q"p.){4}$KF֗t1e08VTʡaS'zsǙ:1e]Ds,f9eQ\^/v+"Lײ5x]0bGo2'U;@hU,(9LySg)(SCK#X'Bf=a`b4>,<Ҭ O|Mj{o+c` m]L:oA/(^2-=nY6 WqoDƳ[K-IʠS~YˋG+>0+kfiCl:6-AU +6sNE-hh<*p(%N=蝽e=4B..ps+L_dQ{hlzIUppfDeYQў׃(B/prZ AVsGPKpH1~+,Q(nuvola/48x48/apps/kbackgammon_engine.pngUT fAKPQux V W땱Y[GR5߹rl5{x븺ti"(˗A z\/lD-y`G Fd$ĝ < `D<͂X;//_ʍ=`ebzcڷA{hz*z#ިǯ8IA1Xd# $_+DBz-=窼e[C>p XFiRxM_l~  8 W-`,^3BǢY18¶8Gh\YS51x vM%+Go[/4Ck^sj^ B~Q[f_<j@H)[g"M9]Gᱮ 7dzj{e/6?zcɶ[mS+m&"{Zi}uws,޿Nxײ,gwO,il׭Oe2;'e Nh[Y*J֕=:]E^0꾊-~0Ï מض[+fe/o7b[wcmPw~7 ;+%g~/[wzf@HAPR{Um%QJbxENvBXe4CCPpyY'EjG0`K" ސI'P"P'vv%,,y/Ԥ*ht|'xaaV"Fx&.h T,Qk~M¹y]QӟVD:dM̜^mHR5bYi͑oK#eZDj({sv/ GgTr|J#t~:ܾzt&'_IwuSc| 9YDR~AdH0"lX(ͺ887Rى,$/".rE১>`S#6}8/BST9t$ ,~$ U/m22BYjHw6pI|H$%j鼌)PlVuQ0Z&nϢ[HOmA:Ohh~ $ǵu{;q J \`a$+l {r;ě>}Tb廯cwnt\0Ցf=f֑H=RWVc.РܰWGQ? Ο3a? S2LcNn4FW8&~$+H?@HLc_10#7r9k8>@Sώ"Y@׆ -36Wو(?n!|%d0*!,6Z:+Luu!67#Jgv/6+$'zh6|R[kͭrLFL:C5w+WjWN@"+t4j1Sl>"& egb.Y~Ei" Įp!olV KMEY1}RL U>O)G4p&M~gJ| 1r@tɋ9Hē$)j=vra)McHŊjYN!@ASv-%;$=`e nXHm͋:b-S_s j4Z >,1_6`Ԩ= ӡǡYRE"(v c\MQRhᑲʲ6M7$ɵ]ϰuɊ5d`z?\$X 3<$8:fw/%\`$_:#&ɧ~l5ΩP>ҩ4G1>,{r3t->%@韜?4n24k-2YG&vQ.EGS0Fα";rd,CT,U,o$&S-Lň7b1YvIۦUSѷ,nnmPS Bb*TӃ_ؗ #9<399H\tt`] v+e?rgzVd+ OF%Gn3QO?ѱc}0DK ' '%qDVPIAԠ wN8aI"ܮ#V/r9\)߄LqA%pKeQRC<LcDOC;QOEflo| apc-(^6eہ:mOE‡Ϭ #%d] @mqU:Hם=$d:M~൙Ȩff^mVyJן;<S8ұD4`]X63ea5 xX.]=~ {7CA!nA`b'*f{6M&^ͤ"LucQ?Z#;C!|ԇ^ sIQA|b?م $O-G]m׋f[W99@kK;˛Xlִ}UhF֙#ʟYm\F:89>$"n$Cwɜ?Ÿ-2i^y^-eGtE/弳?TY0 /}ln:ipauTE,ILz&P>Щ*RSU~jԽf ٤p 1FlPZ Ü~)[ w;ŶV bewq]=2`KMB; V4mu}k OmUdhun@RTڪmq g ,LG|X8K̪nSPӿU)T_!&^K<;"2ke=<uJ)+Eط &t4ltey޸y_{F0li!g\"C_.KbKЉiR~@bTxz'R6yY_ pp~p8 'kr>۴~|/gU/B1RXԪN]Nnk-42@w,w5'}Q#5yPNV&&?W+r :d7,~4,P+g3.eww1Ha|\Ո&ij>%}=ʥ/KVu ^HZkiIK[?߅mɨf'j\LgT~#Pөv]^ۓouF({+ܡPKG1v 1 nuvola/48x48/apps/kblackbox.pngUT ZeALPQux %VyT&C2K@"EA&dRYD@lL"K*PTh [b QQѺ (h1ww>l2AD/B%Mf A&|br?V%[e@%&qB "1ff@MMM r0Щ>1:UWWJooo=x1j{w-!x;22K>?J"þ^SU tb&\]]ML 5:ǿ?^䳟S ZRrjUQхC&/կf=:c=13ٽ>}fN!O_n?~ViHٞ3ޭM4Zrr2[P-Mu4c+׶ֱ?czA(q;A?j>)stu-Q,fmg_ &}'+l |. -/d?y`,V <eA]]mtt`s!*F gi&_8!^hOn(їE@/Ӄv MKK>tP ysn6xpvR7]2w<qa'0WOa 4,A4EwAF=+Uk~|~-!/\Mѐzi?))j ?AȢr-/R)G;h(6M|nz$_R8[4fDu+i}c J@j0+ $響5RuYy69>ˋf<6Cvlh\^:w5ͳQ5;VCQbɧOl?~v4`T%8մꝂ&w?PkŵBxllWRt;_"z~( /^ʣQ[^mI(Z4;\q¬n˶a'0|buq$0b4.~ܚW:[D omԄ,9@ *g\HX!nڞ7oШ@E +}VwlR I"Zo2@#J{f bI 2&`e(JjHlg5 t*iS/+}0ͣQk,vˇ-[e-%_kشHrrpXʦI# cMԲ)K>12G;k^̓\$5`U+~K3PKZN1*mnuvola/48x48/apps/kbounce.pngUT mAKPQux =WyXRU0`2}j Ujfd$5NZi p\RIjiҬiʔiH+L-Q@u|zCCyAsqɶeDRöѾMaF+ž]LZ[k!VNͽ93šSFU*fovSD+!.$#NuMS !y5bGs2)IG D:Hʇ/yO. M%ZM'' CL ğRDZfZm2f3-Zővr@P^8J֎$zfx$$W~@ Tr](/G4_uff~Z6EȅH(E=U[*Ȩ.2g Q&\ .ip;Exnk< /3+y6=/YV&a8E}qQDXMy}ABHtJe@Gg%* CH=s츹 3xlb-앙Mut=}IHkx)hQ 95Q ?p=Y4[ ׂx3%N < TƩx˵B묔C}䧽vs!IJR 1z;1ztxR!T\"]0S 4/В--,"933 YVA0Y-?Tϣ$?uoz5Wm>.&cePC}vf'|ep "iy^9`Xin~ 3(B58+qTT+ T5O@YaTaHL;4tXP24`iZƌNq- R-'/87XdU-X,i+C3q[i0Ӟw.3dxW , b#@pQ-iPwYc(%JS 3Njhy l+tP#Lȩ< 4^Qmn?#nZ6(SE֭eǎ&,Qw(ujkAk4XP(#4|2|Yiӫc5~@o.P9t[N쌻2-_s1tҌ>Fd܍:8^,Zbo`sj[[ң4SҾj[eQ0ŢoSyLXʞǣ=xkfCR?Եm}$P.i.M?tmAK3ȷEb%%fQ"7M\tl~DX%Q8rb%'֭z$%^*lMvLbm<L>AFy1sg :Tf?*X:&tzEyI*<៱|GG^sINqBNI\gLgn:= j+m3~ԏ)"?<+1C~u>'D]|7gҏ__@Mi{}ҁ; 4Og(Oݮx$[lFIuC`!WtήE./\Q<W'N&̛&KԋJ:\HnopXA5S CjtzmyN /kEK]vRۡ2UϬg:J!7G3߈]R,+OHX?(+6aXTz|BAJXLM7xsyi|8jB _]v f`[p9|̪yoq6fBxV9C!3dg3<.If#vpδVK4녍s `JN;u7=Ňy^1%6kK I bb3(sXhќW;1qZRCc:[ ACTMS|wo- <9}ސ A=m|2#~W%RUQ_ui֥uFxjcAWG7dnhwVrMLvYE9JdRˡs.?g%}=3zHvNL0%9Ģu?gp1Djo[e;wؗ0k;Ȉpi1>p#+BwG')2ˑ1Es5RN]gbY9zlH_[ %{4ܫ7 p:^/!xlی}sr٨K!(klY'jY,W P R +wr'9 -'Eo)tb]Xl)mui3@7mS rM5x4%>V#.2Tw2>^-.y= &H.f!˒ R UR<=;@rp%tFi?q$KI-`ۉ6s;|@-.^О8kvcoø@'5C!q(:"6F(=PKWN16tۢnuvola/48x48/apps/kbrunch.pngUT mAMPQux =UqTY߇ JjicHaidlK!MFGmtCD2vpqeeigդlL3: 13[Z*cў{;{}NGG;#>[lÞ?b./.9[=ŇJ KrA\N(;P+)A.ՄIj/ HF0j6 O74Unʲ{xs۱N(///ͼz7'Xspi ¥Z+g4{OYeD+dPigG{o=ւ'S߽pF{I#9-ǙnnuH- #e_@Rࡪ۷ߓ1 ?H,oTs^)]7"65GW<\~p8L582ҹ8;I> RMC* Bx`&S%GxӉn\.uW"=9ܖM(2SAʓJ:`|03YX~%ǜKW1QS5 *b> 4Jw$8?{`Iz!ӎ}a̵"#;x@ p5l'5 ]'վJb:c9iNI(vhՑn AHx*A_^_T}ԯ5-^uƥZqh_y1&O]eͮ<{Apq h &ai/Z-9ސ6t ~k|!ޖ\?d%HV頦"&n/Ց2awrKyb ( ʛR_q{`'8Ph9vLFq܌ ح>NjR8+a0B^g~7p;1ӻ̎#ӮD[cy ?Q+X Slˮ/PKG1 5nuvola/48x48/apps/kcalc.pngUT LeAJPQux W}<|mai0󐧊m*P!i̳l3f#JQ&=8b=8$VB*vK/hR f,}l!Wsj;nJ5YGtl Og[̶HվhBғ ur73:2#l%faĶRgsՂ3 H{]-Ӌ{b5^r>52U[M,u'i ?R_5a8}6,.`=nVӚ^ѡ],56nF٥JeLȫEmJtXKfձ" Ԋ75&}LϯY\5e}7ȶ#_*R@[p#XBs<[ǡvBvbg(CD:|L^ gJp}#<0vkmrL]Ah<*m6HFmk8_+x<̉L_EG6ay/=, hy*q+QFՇ`$T9q W-qQ6^UG(ߒ: v.-l2ȋބ4UF|p8hMݺ5~ѹeŰ~dV*v/TiQc t3o1 "؋sG({;]39Uácg#3Q4,񦦼 ?~4](+vq`>HPTK BXk,P] ZÚGurlc/F{kQߎ#T,:g+T }gHha5a)Bz. K컏jN,nxl*TBfg9\bM\6X;ՊmQ.S>}w2. 7M았}A#fUzB28b q}5hALw8s]8Y>\\ ziڄ(C˴Kq( rCN.]:zC㪽 :"$o͌o}zm%RQYmL[mɲw~֫$8+SjfΟgUݹd*g5\s͜fozMPWz=?y` En(ޯD1ڑdOZB(ٍgTHE]]w Cyaa?!tF^.\_OAE71} :=2Y^$KN$Jl9Ocpdf!d¤y+#a5:žtbofĂf䚬]3K1B͝AlS+AǕ]/[ĝMPW4a@F^p!||WoY3*wvA!s* ;#cS_)^'HXSO=V _W^%fuuÆ~d"Ntg) n'ރ߾[b`?*M6uãUIb1ksEHMty2,wLJٰ䄑ӛ5k/+[E-fA> p˪|8DZ0rGS, Z?;L J.\@ +OHL]6K8g1r@$o..Z,ߠXЍ,y8HWk'Yw !uy !v :)vjUnJ;ڎ GƐ/\A"{\*666FVUq;]ɝy*Y NǙcZD`=:x{II \ӂr3E;i"[QrΕ@%0<‰L5oN=[K!!Ejxսy#u=ו{_jAzi[z :Q(qC:7l3l,(GEIEP;x::)NdNaZ3%}QrRd/ͧiWt9:7~a0 \γHK(_4ײsbQl-: ,Oŝz:> * 5\k# 0$N 9 wtE(JlOP|o >tTnůkWeKfJ8=5[x%U/1L bbC1W@8v`>_^UXj,]Ylk6[O0{?+xlYͣE?\4)sO_Ł+xcF_?ҋu^1+7Nx+Zs'$&q vH:dz0Bt\KKZB^FT*ux W%u0AL ?ව&gCەUjǶ&?Rļ~\U7^=ZAEn'i'ii^u{/=XSMJ R~\.2oi&*F*{Sfn!Ѯjc3:pxn18h h{>Mb~>^~&o%ec0&fMTfft1EɃM,#h[r2qLl)j0oPk~I&-iM(nGY:붬~`LRyo~jc=:Rhwڃj037{bzlO=l@^^ѩCmy,&r̫fe(?b^ɜ7Lc,0Yn#ug3SҮn8fzZS|#JS#_}EEz",ּP$hfozvƱ{ky\WGMee`X\iKJz Lҿ!\*M=gE.2j(ГwЯb]\FZf .[p;!+%/~\"cZ7Z? :,"QHzsݠ_ߧ}Ӹ \?V3f#9m~u>̜PK H1!nuvola/48x48/apps/kcharselect.pngUT eANPQux V{8_|cfcF9m \B&M;lcP.'7i)Ntt-HcwB1~鏵gZ{dh`!Ev1\n6;8up)Ibѐ Hq(@`.?K8(gC0L2c700WؾLתK!2HꦗaaHkknnSdr?iE`쫲񧣘qxR '6u U_<+x6ye E&ž>Q\Խ괃T3LG(:`7%ɶŔ̪*OZ}=ۀ"C̀q2(t߻%lت4m_*Oʭ~5x]IE%kSFvuOuju좌"blQe;Q 2Y^ d3dh(}p@lE\jedH<]nGҪup0'k4XVYqY/ R#Գq 19ϦQU; stk_in+ H-acO ȵ}AN&έX+9 9%)@DWؖ &i#fk"*Ǒ',soSEQ7J[? ]C^gFm* 5; IA Xj]iOSߣqŵkNYTk>tes ¤Stz׾٭ejmm͉SwyBE`Gk~>F$* |xr`0~v>::?;kVⷮD_hp#Be*3vQ')+Ac2eE]KMReOBIޱIԡ'#xaybu-2N?¥MOQBQ{~]$P|[Ss,1$3.ne h\dZP"f}B[ֳYH'\"/[Vf>rJ8w`z˳ @Sb46?cl7[eMg穞g%~Lڵ'7vŽ^I~MJ,+-E<,D" !Dq\sȋ*_sԖ*=8f]Y=Φ1Rqk쯶ŠO2`I͔4h.ssXqg?`3KK6b|V>e胔Ȼ?Izx(A4_'mYiK $SU,qK<ܸ}qǞz~睺 |8–p0ԯPgEW<|hS%J3Re0M?=1m* ?0œS3)ˀ{4 u$eҫV&k%c՗лsgrz SH {qȚZgآLb BT|c_^έ-ێS@Jn[;fN_[(OՈdjD!dn] yGG%ؿsE n<*:]qD;G-$m{M3|Az7C爑 %޼OT"+imm0`K3fX6踾Ͳs꣔ߔNk/ Ů`)]'tx2A|llz5Afmq^qvc1-><6淄1-7 A _? &£=Ȩ^Ѧ:SNSo "J,q?>7x9I(UC-$F'dq APKt91aҀ_|nuvola/48x48/apps/kchart.pngUT gUAMPQux W{<gFCN3(bRQ*K6z_I: c(!Nz+JAmc*ŏ-"d|\}~ـ:ZZxTY:гi*EFf's?Twf#iq9=0-*bg-ڜޝ sk`v-Ϯ7v7֏ 9' ! +,ꩾ,J!\u\Hj)+?s`voG뤨iD@k7@Sgf-RcaKJ`B0?佛GtM $j-Ǝ o8ylEӛ7S A\_w J3_"aEAVKq'HHG.9\g|Aqč4jN}%yV uZߌ |d 6@1+_Iuܔs6hY$f9p֊y>YK$|: {Pezm m#d'N{6#|%|pVL&ۜU7D>YRѯ*H {)Zp\:~4'CKR`"7-2>Ɍ՝7Xgy}tJub~#3-3*,s?TSiSK%Z"P@ȬE:/o&DO @'ЃOuNK :QNf]+<ݠQ7Ʋz7DiޢoLājmY9c F)#/23LkGu a-1C%@jj=|E*?{ї o&&+s\Qw,xda]-š,Wu^b_GY=hasjCÜ{^/anգYn.x4֥NͿ SmmX1JFB/izm 92`=d-|FxK0^$"RӷzѼkxf~:S˵/^D}T"^IO7Z"!Sء$/ӹ}aoCB5%4|ۀY J.p8 gjg1:@,e.0hi@,BW7(ے&s m MQ0G>3ʮ"ݲ A!vxYx^*?}2xWscY(t4n#^>z7tcG0/4ߏp+M9|3{2Ib@lYX0?- b$Ԇi랠ϬSVjmP351l"! a֤D.WuP[ݻײ 6YE|\ؐ\p 6QNySg5Xc)(ihn{gWb,Q\ݵkBJV6Z bL3̎n^R@6';uƆ:vY[+7-?FAG]'l6Dz 2v)ގOvsm(z~)ArQ%i?y2n㦾^]iʙ{ τ>%v2l`|-|e&셴.9s|w"P;w #`}۽4,{ǬV(>8Ļ$w̿wZ:k'ڌ ړc >`%ȞQI]l;ӹ8εXh)F^` MiЋaz߿[A?*58_3[*MZ02OЀ* Ӊ)%}"47om´#03E+':!#*~$z%1_Ad̽~K1+]x0C(r!72\TknqS,LFp*IA/R}|,Y2nf {84ZXCQ΄F+`de6Ľ m!]H̩{Z$MzszzM:]];U:umqMkKy ֦yBTw B(b %ѶoM:Zp"#8Xw`gඡIl$wz굍#Jm_HMb+qJCZ}`Gq ^]{puLi˗ jVpH^%s:Y^R3žD 圠y 9cV8e̓3mw5G1~Ome6]&VGw&K*4aP@KRٵn7ac?W ?A;{y&[l'M\ <ܑjZI R .qN\9qIBDt)[_s%uɢ՟A}2 c\Ic> פ@VfmpP \*ȝ^x? fxa~'Q.FN],k^ܯ IQ(0::U; LxR:6)`V֋đ8{_Rŵ@ة@lʄצdeYniᐕT cK>GPN݄H-q:}m/Ey4 y ^* cww:}gg`ݞT1ZOV_=%gzLsXT~3*1ai H1<ئ2礝69a/!I(PP:ÉHRtԸeu\b` 'ʌWCJ gb%c:q(w[;M:=rIBrvYvD[%\}#)䳅eէ&6B.sSeǦ8^80 ŕ9 hc(˪Y4ǿBA6Ne/jEujM֛CUE@k=W׻t8*zOמp4sO0ٿCzgsvs>H+qC+g"ۣ}+蛉t[ݧvar~EE:qn"\kLv.V5~Hv i`{V$^#Կm/A x )ĉ}5XFprM(b l Wjz z*4abOEi@9@w|h<[w@=/!w@4jw%j١6*S sjn`5PK H1x&٣nuvola/48x48/apps/kcmdevice.pngUT eAKPQux uV[XSW>$'!ĉPh* a$ND@ I"X9 V;ACe bT[a HV "DBNciak1ezg'7'VzQ)}d-p҇pѴ\MY=eMJ*9P?V}1^~3^p|sC F%ۅ pNg޲YC.7gppϾ0秞g@e9&9!C׈d7x O^?FGGCK؟aӖ)&}di F?QUbZyK}hVJRg4.ըi^PK*$5`f=$P@%״DSYyP㊠Hȭ}9/`K({U|vKc_<8k2F;(*4 XQLlyUީ.ȵ:9{9uv`2:)⤶V︎O>z[Qax'e7KxQsW{qqF]Pp% E\l_q(ģ_<g6aA)oV16W< wtZ"ɰfKJ"Ml-7 M-:3ffd3bc3$mȕ6 3o @7S3B8Ȝ"UOiI{Mrx(pa!(['|Oz禑X6EjO뤝,9pv_HJJ *,JN[,`3Ǐa"*ȡ[m7h&7<]c(crg[&^V_^wVQVT~6\v![/G։"1T`.ojP:)AH̥qoG22sVرʊy\J=᧳fW--Ҭ1cGY*Ϸm2 A.r 彬BQY1fA442Dߴ/,4x sav2Vz؎Yr.sQ$Aι-S4L#݈?Jj6߳o8X9KYkA17Y4%MhWLF¦gdJzX|irּ_ԥCScŸQ؏HG^ I'\UԻWKss->^PJXr?kiB@EbK&`}m ;d*kʰ]TLnFD"jw(^!}#K=A'Of6vd}(N,@ǹJmCaE\/Gźovc@[! !>J&6SJb[u'ՓW.t?Ț|yKFw,ȶ`dʹdKc!WR-)*{5pg`jTl3VʬX:*b|Jp~TdWOny/qʄK(:Uk~t#YX8PI4=:N27z|D| w'=N@>=/v͊~<2)q3SP3sOЖq,|$P٬9v -'a6Դ{c%3Y(M!?X2?;m8ɚ;kT<OLta\ܷ>VuQEPKt91x!Z nuvola/48x48/apps/kcmdevices.pngUT gUAKPQux ukX%GA-@L+R5(82/(̔G2I8kP֓,_ ftlʻv=4kk=^kA@ jo 6y&]Y{ә/I ; erF?#cr`9ᩯe0ѫ m}@wYd 1I}@΢qvuhNG 7AؗMg[eZtRP{G  <*ڎ>UHmi@ҽ6NOM{,HD$v{Mw"޶gN)&˛ho ׷CJ@8 DyLL<ϯ*~+\vb'@hQf7Z=Jhkkh;9J(shyD 0~L`@ Y`Y0 n)TDyK37~6UCh2 u/ @8L;礇*ٳfh)6q7lWq.VG-xW M,扪L Sƈ0 ekI塕w\_4 nEU9'T5 U0M6" AoYu.͏*4hj]3BY]s7tF a0g+ut2o~nb18 //r"tq^٭RD\fN@;IWrZKnrr;Q+,Pu]ј^ $A&/XMkIp4*!qcx({AS~T H$O 3XR8sVw T- *>jo$ᥜ$kX1hB.> = ]ˢ/T}o>;aF;Oǟd)&|3IVХHj E}&l`T3Zɛԍ03e=k|fS|bPy@̪/q8ˉhev=-淁걭eryLRnOt}i=j'\ .J+|38&i-Ft2+V{ kn^FzDyGxlBYVյ>2x^t0N;7E}X2Xr gv9Y4i7fVއ}͍%8;/+kܿ[!?-lR\peW4Qx` baLVP۔#51Nqڴj 6p6c 6["ʗQ ștrE/,S{IJu*N=.=T瘳{0)s_r( ,ErC#M| UFԵQy5#hxௐ!9t]#=+޳G^qR4}VYYI+wi^E-An 3?0XwuuE''';+'&AZ +#XݣYQvl9-Ewp޵cz?%Sah-wx(e1-̝|a<>t--z}m[SW\~ZZX^rZ萨?D4ؘ `γ[%M pOG}6T"ӻUv'-#: <9hzpOKt~8*/Q]u;;e_wyqgvݏFșӧF @nY_ߛze5&W",f0K?!W.?NX0 |EG}w:ױh{|ٳnFP. ~!4^jfq @u{4PKHsH1xp  nuvola/48x48/apps/kcmdf.pngUT hfAMPQux mWk8kfa(4#1TNsPɌl[v 3*癡F.ۥR*aBTrȱMf??k]׺ֺ~oT7P@s#g(5Op{nrNN Jp:4.pgDŽEP|B9{#BI/#\?cAjth<`2 kY2R*|7bA^5,\Wg}q|J$[)g Zg%P)ɋ8i1z^'׻.|Q)yz];ݖE<zd!ri2Nmh&~ab5%'|L$U1W+fΩ">Rm]'wF>! 4h)9UU]==Vd sTaԴѣږ<n/Nx?LJWA2||xc`1&|L#x[p7˿aG'i|'DИX7QA<8j&)[(3GuߖMpXh'UrR-ƨ0~KcDP}ڞM6dnc`FLFri>FQ1\"\I6Xr4AN:;޷98xyWă{IF%0w͡ྋ~!&E w-诱-vGؽIO3;^Xgm8S; ht^F z{#"Q|BTb6t޻4vp[T!KH"n`;mortv5\, p s x4RTj`?cd#Y+ ߼%; eX]mV޹Yr"77ur8 WN껢s\M胠7a#kkd4Єwɵ4W,wO&5lN+N1uISày|;股,umFj*.Ha~Q<6fշ,>gz)$s  -Uk[FgB+ײrABɠMU ~D|ʿp i4%X8t)w&SW&&zJ*a$ D݂EK/pB3jyF:tM)$;DR!K/gPv5@3O|_h+wb(v5`&p8e *Ӭ-Vi쉸^m-iKTRhS[ TGTzzȈlB|(A;f@YV<ZC7;.Fl]=;i>˽ i\:&CώWc uc!8%$__fq־( ? 7ݩg:"%-+sMzjCr$3FecufqDޞ BQl 0YddE6Smզ/l8rd $[h^ETvy JpV(5DDMi;|Y~*+"oZ*o|jqWB7ºІ,I~Nɛ6bы)mp}=2y UŽ'+[ʭ9_Dڝ=RK}bK5gH@+TuCS aX`JԨn@@_l8NTRj= Si@ktoY1ٯ;{~>hV{b9mzWhHUiZ2@2vJ`R\ %0WQpEp [*e R 3I8=(>_] '5¹F-s@ʴڍPN¨+'l=݆odqTa'DuF%ө[^DsG_;i{;#z-%r~"(U@wNۮ^<ůǃu:G٠D(oRn#P?#97I24OGc5+G;)nDrltF>=oCJ0cXK>̈Iџ;)6 ++߸8')1ih/:ClhꑞwȞn+@[–[K1:,K0oy2_P#i xK,,|lp ꫤ4_cK@SN ZT/Zg4}opOT3PB#es~U VӖ-ME{aٞ|!yC}[L$1\F͘(ɭ.0ben9ɖGe.̪EUp7`~9hm[WVQ%>-%3HfWeOMӎd-NW}CLQfxO\2<ԲmNK)A~x-Je/-P(uds!Ud$㣋N1)k{|^FMt]cM%)8u:3InkN0YNwø1uSoYgxc/8yII%m@{ύ8 _`/!B>jDw"2Џ>'TFe;=H0T;çRM]R]׀-3 FPq.lJzoBv-6pg$sΠ!uc2)W8g; \~W?tH:gphnk  ˄%͂+K yo;_PK H1u ? nuvola/48x48/apps/kcmdrkonqi.pngUT eAIPQux W{8T{̞Qn3% R9wRL#҅d3]Ke*tTCrT֨\D(R/S<[}Ek `]0?[IR9s'ܮ[A4wfxlsTr0 ]_" Y^[XǞ*E0kA`2J6 @)ͮwvwLMy@DXe@js0(XjkfBĕ-ZXc.:(XjqzL"@+/^pqojjµigh7K7vz =UK`qL! {.JR.'Q4DQki_;5ڪ/jL !iHEVTzl(.lS{+XT9YEh}V٠T-w˃Ų+>^Yb5)Q痕9Dz*5`Yu"ȷub4%#E1nL+dy'O/mR⿟aF5a`~4`7l _`JΏУ|wt(®ƗV > H/sx`ɲ=Ϊ_-WLbVsP?L_XEiHv$d?X,iol,]pl#L=22vx;3SVs=|$ Ih( ѧ]A{nGYvՉE!: oBZv#Rp/<{mA/ڹ3MMl VI5Np/a`xqr_Oj˻|6fo0pl$]g8J"4dV@(7d$}E-}bآg\Н:b_[r'ZZ38،Ϻ+~+xO{HJ@;$ Fhɕ8 < ʽx]p@=KhP;׸_M k'/S"-\/( ڌ rAz[(q_PV79Nͧt"% Ȩ> kgx`LIzV豤+$40hpeFssx nguɾ ҅uݷ ^W]hކp{p-fznۖMO7=.NP$I}F>pqmYYxZw)}\.l+'EV5~j%9 4 o k:^gqyA-'*m>}83VV-E ^PV2" ++JS9֎9'kbD/ᯀz@Ϧ 2nRɪ^TIbqiDm#^?`Jm.Q;BymAScVꍅmay2[,IauX;ppf$굥:4t%z!wEJ/DOe{OJRpILjGZLwռT.ϫπB~ Oz)gӿFuX=3 ٖyn MOURXsAE?M?aB.2=&V"%uv>E ܜt?/KC-R|bCC00 k]D[Eh=F(wfs -7˩Eǐ%Z ڟѵY֫z UN֢ɮ^GAp]bX]8!nVz A!]GecYg4 lld=HHޯbµT@䷣;aզ?ƳóMW, 3rflN鹇Yo{|gA Igy_I㳚…QL՚ ۽,~7Dc#\&0!& (ՈdPc/E9:4ϩ QMlޟp1 ~J`˞p@O߈DvKN%xiq~U^Z`_z:F (@G1v*3z}tŰ[Nb#£-H+Aw+€FL|֊KA+evhyyP񜩇 yJK'=]Iӗ].ni,*aӼ3lavuWyvmH5#yGVtr_E&f$7 #<em }wmYJh^_ͰɟMG:JQӣW䯣;^mAT孵9](t0pQZvvf?]|:8H9a(dTd)cDUP㎟ 6XPcGzS5 AFRSܿ\'8R#W=:\u;*!|dl!GOMc3ߪwωY AqF9;{^y /.'.72scX`(eZυMox¿b +b.</1k>˃OSZ_=\tшzElkOa; MGG ݃~{s40-e߾+s|2Ǒ?4y+!Ďӱ=k.%|հ`4_"jOm}̙S} C|WKY>Il?:Gn޼.Q;WrJ#g[JMR:,(۪kfGZh`]BZ )/oL*,jf^;pQVpCX0o @wft{ ̭uknyPKt91turm!nuvola/48x48/apps/kcmfontinst.pngUT gUAPPQux W}<{-Ė~Jb-0Ybᡛca{,ZU/TF:4v쵌-ÉRzr&+~}FbjS>K TI @ut:P4o.\x!p|"o榎nX9WCt>z4:s(Ә /jz;ꜝ4Bt$D('C>mj`r^lH{<۸۷A\BWmuŮٶ;lögld0N Jd/}XR#pul+oa[Z& Ԙ1njG.k,\s̿K͟-| F |Y֞ΞօipǔЦ>i%KC;[>CÂ`0]cr3?ALMi |PQYP*&y H ˸X>jv0,MD Y45k OiC1IMKv.u,И.:'i'vXmBiQYDF1Y L6"©+cnYp ݍ_d=E-C)7_wR[ od7ύ n[.^F2 C3mdo1UxW|oF _g+܀zդe[V=n<{}p!Q[MflL ) W ?lGԙNRHOK_ٿG7{*FwBpBP`ᭋ.ޱ2= eD/{6ICAʔkjA,NSh,_`wuKxm']$%IN0$yLa^Pq^T/SVJ(%ESImf,T|[ҵ,8!e8\ {͎xg90zz5HKbfT/g'FQ\eq|O؟X?P%uRm*A7 Gw %+#;l!y+;S‘h"RR,7@f7#Sc9WIx^͘[ÏՄia,7R%硷܇rwH랛Q9a߲N1MC("$SVʚ }Tjej5К#1 ^sU+{ݎ{lz\yO4 1#p`EmcFX>l7ㅛP][w r}y ΅CDl%pÁ!B)oK֯v5ϵ5r̯lGX|bۻ? owujDEХK/V5=]S%gdHf^|@.̥V's&+%%Sɼ'.rC:{22I;GwsL,v^ QcIo1lй r}!<_w;:^T8+QdHp *f @isrqO@NK,듑98 3pعګnJ;:(+hU{,Ll6F ɘ@Z.$/W#Zxz5|}  _vl? JjMR'JkF5eoγW-!Xl@ >p'r5Kxq _3SLJ6315 YP> g01jWX2Y][xZU%4:bh'p^+roR-+pf/~2F3?_(|v !bVzC '[Q[D^;pϨöË*{EPmDp曂2i'̆3¦0ϓȇvI76V ƭS?i$uXq'3_tY֣wH¢&* 3N ʔ0S^I,%ݴO ф@=:9CcʎqS34XUO84dUl aN_v*?xg} */(KS&vHoo1uU.?Z ͐$?6Auf'îK&[Wbz^>EDK+dT_~x@z$?/[ʮ>DmJx+*6o"+_-@Ap-Wq9ǭkA ^QJ7b!$sMIFH$ h6.FڸtIObu9=|Yٷ@觝+QF8vR s%R%2A|~NeBJ{:$ @wG-37G].ut߿l93C٩?ѺtZ"-S%BldxZ;6&ƁB7 Df 1iفMꟳ[BQƧC|53AA*sXUHY#vvdN9(5zX/TCNNc?v%*j,Mlie怑GDНa(*1ir_p@F3``v~8„iEr8Ԛ>ZlAXv QoonRxn큉cBEc ip䗁L'衡OkTbcFMha{5M>Wq..uTɞTg 3źb] >7\# /]-‰=ק\5)>BoG[x/s1^t3!JXB[;2?WHG`Xtpg#lkC[u{&t_ A4ͥ&24._?zU~+cIR~֯ ,?PKKsH1T.eqnuvola/48x48/apps/kcmkwm.pngUT nfAJPQux V{XR?@zK 4,fJGib hMM6kK,3s1M՝ *J+cZf'3Qs^߸q#ᡛ1=H 7|2/7 +|)ö/9|Lx0 I%ۜ%`G'`ê y`RRRiXucDN^ЇYz;L4Ss{yW iX$zo&hi}3MEw7Ѷy+̆ 57MgȊ5ז B<tqfYL:@,ďόyc:9 +rHk n D<9#/5;I( L }Zܡzs-.EG6ąjJk[tzA!-6]ټNY9y6;/|%/))} <'>@Bn?~S|(wҿ]aHd=/hZsshN+'+ יN9ȸ8+e);?.l1:Asۙ[7+eo,`eWra!y20z^TMR,h&*Q2[xxc8s kI 9|JGi:ggNvf:EPk; b*s{^^WXgܵ"CZ+99[upwHoӅ ^GFeRn )Nb+]|0$GhV&ꚛZO"D>&vc;AZofV!~ Ea (2K*0 ߻w3ZwE:|8.eVCBZIh%RĴ`9끍 Wr3PUYh&V5; 1c2X?us➲C Fë=(ʴP5@/Ĥ.Cb?3 .PѨ㤦ܹpQBrzcdžƼnc5w:~ЉN _w顔Mu7yet*/*ocZс۔-ﮏW+e5 }Vin>C݅C. _d)._X1b;NtaZUM.< f=9+OQ0c'^YГe201ȐYvrʴ!]{ɉqr*xwVkV#TDGa.gye1h˙;}M>H+W#cC`;Y+aL{u?8'ك iv{2ҍy{(@QCB{m7vk|8}*!Z=}$Of|Ȼ-&q'-!9 ȼwtV~Bc=t٥ëJ \=c:a3Rbs/ɧ}C`F]G@%g[٩ TN"!=O3F ~>gAӻ4sU0MؐO[y/- ڧQM L%nN1g9W6Q. jP"" v0$ey)I'p87o0yYӺ"2$RG i#:\0}U34k~ea$ko vZ0DXzexτx'Kڍ# =BQA |DDо veGy)KSf&°L`YcY/Ҡ/ 3Rn/#ä4jˤ G-=t>Fߜ._(ԍT1B~괈^пJGթ9Ez*JyvsoW Jyn8I4''Ct!r?^|AQ\J:N <ȞPsY&60Op(EUkD~51Ѽ̺wNX\򮝤.@AZD$>y_kS,s)Z"kbU8+_iL}S^]ΚSٍy[ ?[H?zʾ -ʅh15L 3D v*7G!Ы[B~祹(oIkrQ۴63F )srm{lo)J*`jՎ?ǁOw5a7*KRT}|dY_e%fPM)74Δ"#H×J6Č3| `.14Pޜ3Mb䲃&A&/YL^覱XPv|$p>:YGDff: 7 %7x4CyE`e)4 /,Z]|/x1 zE.0&ޫLjTũdo%Py,_ 33W"}!AhO*#l@]eK~-$1DHj$N8ɶ՞p HFXFI)$aPڿ=rXJ곜!$UW2ˍX1hBnyBDȠ~8ϟJ{{J"c[9z;D.dˇ.6}P9 DP਩Uլ%@ жAФ}Fm #%&]sphx&O1=Wʁ]`uZϝ_u4Oۃw>Ui׏dލc澲5WNw'S♾c{$U-E<.czz~m32Z)vZ: :Q=.b8:zy(NӦڰk:=U]ΧTqG<.嘩-&V~T=2G, 8/dM;۲N1+jHuo cTCoɣ+_!AWS-OVB셶HF-IFKiBQ$oRot?Re9|C^.)yisif0Inrq:%A;6]Vں:Z%r%ٵT)V}ZF[Q) V$6 .S]Ua8D%pH3l.ɑO];U2{GD='3᜔N ^(|ͻY*46 z)dFE'ea"(< zxԳѶQif3_1xՇh8f]6\v'B`<} *1F SB<`uN|0eLzVs`}paF\5ȓJeϚbTT hљۃ2x/)LL+&*$ C TN0oM㼸ytNT',UPԞ虒B5Rv.Q;kɛDH8GGp0rKyЩd vFUWݭ™QN`&dq9Nstz@;~8[{Vu~h/\'&Ж&[`nRul)Knԕ?UiuX;4I,"9lɀ#<z]h 54|:A֠#wDr8S'3/\noc Ͷ$!BzϏҴ˩k<Ƞ.Eu{!MwgUoCZ+8d[Hi;TQ=C뫓ӝ[WFJYy!cw(`l\nK[w #x?3`1>3 AkF7U  _mCy\1}я|Y|[O/Pteey'oEY\nFF=ẏWaj}Z{i}YAp>=4 &[gБv6F]e?,q<ݱ&eN2N${?_ ͂ҧcdnPo@!4VO@hqVi`̅ wWe*!#%c?r4Y >W!BOr Ǘ geP|;a]˶m@ IlH,wb/Wl07Z|-N9AKʑrA.j-5vɮvX'[6#AB&J sryRV?|-R:aK>{Yݍq(M('K;R1G^K>(Ou emƢU9Oayv`]t$]+DHzK]*iY:禭kZ <WcWO ƳkmJwOf[*vЃeO]b]*1GM)J7{[=Go t&L$[o^P 2:{Hri=f^~&4۪EW|hxl&0ۯz!$]}"=%|bf2p物Qɉs~npsZ c+#IރCq. F/,'@nI:Xj _"(8|1vQk+_U[X'ޕ}9퐉<] cַ.ln;(ˤ{;yہQP=eɶY@_Q4 n|Oj׎_LT}'(a"=r$?X1Ҳ+jccccL5ha__XCd{:#7)(p*}"Qn~UUX"-,%d $~̳3S§U6}UbQ #~b/OݼSj)_!h/ʲW$4X\^nr&K4I'8~lffc} sLH}|@.w2GI5 q#ju:""4LC5,uqr"t{QÃ:A@Fl<ǣshHQ$0 !C/\d/IDFP_ǟg+Y(̃`.):?$p05Є:WPs>gӍ$z{o!Y(dV'cbcPE4f0m 82n<Q|H_};LYzgyw7:a<_S[mw0yqƒ]\[YG+_߮ }%Oyg-UU6 !,/:k3]|0ҨZHhF>FV,w-Txlnho, %djJ ;xLj:# g7X3 55VQUwm/gdrlGglvUSh2 Ŀ,X2eͽDL-_ڰ,z^2qV>b%`dM8O8wj*n?S`bВTqĎ+q,x׸V%6$_W> -.~nl Xx/\~PK"sH1,#nuvola/48x48/apps/kcmpartitions.pngUT  fAJPQux W 8߁m2Vc+9(c^RVЉuܜ;xC)sT/2:–͙ȡy)~9\s]4GvLM{lB|n$|D`͋#p{nEܣA"`|6{{ QBx D`%U_O;f pwwaRL>w-lRosO_4 pyV8D[W`_XQPU^yE@B3&͓ԉ2{pN.pmP4|,A|uX:ŴNH<) d!9uK4UPcX9 b{"(OVyY֚Dt%kt6D/ѦT;kSGż>Ks [9D u F݊ 1$OZC}/k",JHum`E^;J6meinR&W;~NeAOgĞeH^=~5ZkCI|H;P[l{{6K}(~X\?EQ6xٽ{LbMW0@ZӹB,H,(rqmG4= ~S_7í=Y jY]5jqjKg?p qq['!ahqRQY9ԑMPd2 p"w4I7~cj ¥E)ae2(O$b=mW8EtԱfCw)ympDc]е CqbO?CjhSqen.m6&*$SŁp>cpG""żkqkEmPYtٻSbr$aVaF5!#d:֙٥UxfWߗ_++_>׮x n}Sմ))#^oLۓ2-`ANI q5V/$]y9K^sNv $h\t>Dk;ĄBۿ"^7BPDdB-M>sBKбkdCPCi@l5󓠅aq|t 'j([= [w󵳪Ϊdr&Mlh5=&V{s x9y~Qp ßd;,ґZo%KVW1KK1xiXCC6{wIAt[%i뒞tG`h-m쎶\cݙμmc؄&!KC4Ono뺕VcM >D05yώDom"+dmOE%%-g8aJz >M]v/JES̗tkS\..W 6 uyONѡX:V^eQl+3̴dfoG6) 5;QjndRd饻<3J wm/6dAO5&VoGry 7^ 6XfRk? +'e{N:"((B('獯JY6s̏#5s yu"^ 2շSuq{g)Vjf0ѥ'lcSʴ #I\GZˁ%Wb.daz :2Jiݼy~Bp10bbeƗaT-[*(i0G`*ugEUؕ++I/==}F1(4q\0#H>"帜iv wXõJp$$ 1/k:ۉapa@0ЧY̱Hz~ͩz |G-MĹ6hj.11G&k]|@H%BU[iLmQH-}VY'LLL7 ;7v!zƐ٠eމ酮 G\"/nU(<O[]]Tjק (te375en~[ٴqczSG%ֆj=}hd2KTDlR!aOJBYWw0aGD##UPOr{|%ZӶǡ ;7En~A6nt=~imʕ+OBLS[6G m]CVݛtO ۗUUu6uJ{#wwc?Yt2xJ!10kR]O4fּ#aLIIp.ann7hQ<dR~WD_4] KQe-#zӫp2a,wVPTqKV`䣟s]cS>,okGmvnBV~QRAFnte͵ {\ *0!6~ۙ{|Yn9꧑ﰖe{IQtL%vQ>$~O<-ƀ\ _^k˘93"wPb65h~ypGZ# m5I升T+pBz0_dQS6-u7ېٰE uq ]wIDSEY-O7~>Ҵ냔#JKĘikLEWsy/$tn,}Ij" ,@X|畼7je)z*3NaW'84i.I!Nggs5]? %yIMJ.a4+Џ/@sD&R9#~ ʅA2$W`ڧ4)hBgj/sQ.aV 8|xDJ%'Eypu&/rm#+À9>?`s@?*m Bn82ۃ_Qcw-kvJj oUvjPB^rZ^9:` q;#6՟/zuz&6'Dž=KggݺsDFփZYz&l>#@™F8KG t3?FlC.@<@,.Fڂ-r} {[FB| E:8˾ 6^@)^\^`1=G y>L7.,׾H\ۀNHW#vcCq:7Tk>'ڭܤ鈻U3nvcV%C7>q"S c>C|lDqZW/*>aKIqkÆq@nY{| bo.Z0RQ)1Ύ-%NO M+Bm r!2Ԏun]7)͹M~v&\օ ,?Wl2Ī;KK_nڄëmnA`ഝ S}LR+O';eeRёJ̰g/qzs^L \h0 >6O|xX,`2~]y5z4vȷ pe? ]D|NO*1 wPidɨh;\zGf߈FO,P{1oo񸦙\EIhsiJA^d:.qZyUH]K꘩HI{R@hFkX b$nѕ )bGBTfP|`K ZVŒF")}X[$n:U(uQHg9'F$ƛ坃 9̋3#h%$eMc3ZPo<"/+ZE%q}MvAh( ٺ6$Pu}KhRG0㙁!,}iipdiNܖ]%:r ;أN[1="Ԕ c/h(OaiG*YѺ.>9jp;rܜ7Ѱw_珦XtN:SRd8OCbSĨ|r6Gs`2LSC3ծWm9:$[N^Aڲ|\[AOs(?js'\;%b!% nJ0n(N=Byܥ!4+gz-!bfL&?>Cg'@z+qJDb+\C,tG[cc#} |' {%3Y0 AW+^ֆ䋛m7"?zkq pe;Yk>iPR| r[Ow:"ƎqvaN) ;i aÆPsottJ/"8oG0gFبM"m{NdB$-m/Zk4 ֘Cz/9|1w isPk׮=3gdD${?@ìx=-f C(HH2ha) ;ȅ@Z#jv e ]JDf1ma$ ;U=zR><4$~ӯqHI@-/|8kwݭHwU|`_(q9ωkgL}Ky_h R o^wZ$`rTPBĞdGXP_C(2 cӹ 'ZT\N+G3M)2Mӛà`scZ"H(PjꦡkJ@,/ж8]-cTA,x?%}#y_dgi! qUH\R#2*5<_aͦ]یtJPM]3lC!=c1HSD-60m X>3ӽcw 9Pl? hC[*I`ZR#Z8D-*|1iϩY.eQjF?W=.j}hF~(z{Y[}ɭ_ݿzzGs8b0wg6*&v"mހ,{Ni#jy:$gb=Y A@nwVFW8Nju"(=HCTF(NIo3P$YіrpLZ_+IF>D$qn{ѸMsas7T$ GohmmI3ŋ?&մQ׌) Aw,xNTD|bRrRG/({s~8C_j~:Pq n[m:lX7 9q(7z,AZD=2FG\;uz?uM.I#F؜&f~\*^n|; ^ D݇i˥܀`ďܑD|ɾo+F~R̎.#`[F&#ĻjZCQU_cNعsgūϟT@޾qoVv"!" 0a%h![pU\c+R( lޥd,̍˺PݳRf 9P[ިX qoxNΪ}sc_ܢ"*m>Z~ڊL+h22|lEQiG39T``mKOtڻp4DT+S~%OQKǗbt/|)CܟJ/I]‡e38i$A)b];n0J!_ u*+~9!msD[,: {d:. .c]Ͱ2="hSwX`нW8Zn;>%/PKsH1C=&nuvola/48x48/apps/kcmscsi.pngUT fAOPQux %WwTS׽)$@PRTJ@%D5T R57t`φO"A$% Ф'_|3fY3{sr);w(+W@_yl/e_}%vF&$\cC#!G"#BSN"@%% Kv;$cjxt҆4H}~45ROY<^}t8[ cʜ-RQۥ]zBvTi3T߻|A NCP]TJ X螳{0Ӭ"ŔnsJJ4Ҡ~`3 ktjgptnIIV^OKl=7w5W+snhp}`!ի7?.Nۓ.||N^6< s/D+?/F=/^,kP˘Sht(z5#. T?kZ/vgwn ssusssc]d2}:d|{G0i4 |5o2KOчq@ Ћ[YZ}EL&N7uRYJ191D%k;SYY)O ע݂z|-0;e;^L T@Dг_5|}Ͱؤ{E$Xc'O7*QuqBrǼ^юX0ÿNn}UYiRib·1:#h fs4$Y*GԓW2SFoϞ]c2*WtMbs+_&M6;ڤY)URt6hX;5:3fE:b C)|=4 !R3O"Y8HU|t uu1 "e{[p,ŋDitIGk*~ủaCG`l{Q.U11MM0;֎ev';<$O5 8pχ{a~'4 XQכFyV)D&%Oї\tFruV d\ᵵ8[[A6u**`w̎r~p7oUR)tߌ#+" V d[y>S9)Of8_DŽ"G LV1+d2ɣ} c- [Rϯ89<%䮂'› .vӥr{3_n4 d,"H7")Xo,ll tu5ǔ01@,<kζ~hxCPff sr#B^';ү^}p<%Y ,C;+`4@'[:79ۂF; [gG_it쑆5O#jkUZ<=ߛ= 3(KcLT_Ͷu^AA"f*حƥVƒqV$C`(pĉJ^nn_,N&~H4 Uy"a(k&%-p=ieV=[tm0N2z}>D׎>1 .SVclF]RrzϵBx|BY: [3^#Y%jjn߆vGahRË$Cu![e0OUTH# dR .S=7'C4ʩ0CmMaq+*Ti:ZgQJI-Ssֶ&|I~ @СMZMMB\.RsfpJ16;i<̉xPg|eZ,eYb]Y9W恹Ӧ0x@&Klj#"ݕo;=&V)WUGyIr$"Aen&*2]MT\wkZMb1)p$XDtu{'sm.۸'(G% 7ecC2VH6Ku4ގ)&i%{xCōPm^ 1QJ5~A@ El{tm8d"|c (Zl~x \G2۴);@ԴÌ{>I0l$Ə7gYb oM 92-Bs"hr@'EL҅&3ADTE1 f7'`ьI0:̢Ԉ<<ȝjޛ7dg@teAMzo췳T;YldFH&jY%X9Mt<*Q_}|s8$֗9;nP҉δ+wա4[.ёf|˫16ϋľ&j|1pwVg dSp8!'EEC=[]ZHݑ~q+;\m*H1K/hkvue3_qكǿef#nn.4W Ns.(N;,bY!XYЕL- *Q| gw򗬓(K?{dqKӘC`DBy>q#/K~A6<w7)tV#@k摪?-m YdL2jZk aϾI%*sn5'ycWjPKt919xG<Tnuvola/48x48/apps/kcmsystem.pngUT gUAJPQux -yԿRY{ ǫ]8xRL7jq:ajִUŏ*<]\vy"ibg&>Z}fT.Gc8;lmcCaV:;'K[m^%Y򖘉^1Qy9/倚(DI"tf&)ÓߴlOeՂ Ghh*i; ۚanN@g9f.DGR@0+ fsooO{--fT^ٝP@P} + N><"6pܳ5d.LvTT@@8Hki"CBԅ<{}0GD (cGUV  h z3pTvPU륐:\JoY Bl`Eχ=lZm|c?|y^~3gt4A9 ̨cΣ?kG*=.x6x-G]j];VV¥8Gme2D}-g耸cgw?ydJ9wNACݰc 3=ꭨ#i.sc{rǸ\Wad4Ws8(חҟ_nMsOIJ$@ѯ?0pE]Ee-w%&.dlοpM 8-+% R~ۻֱ?omɸWlXeh9T\XJ"+E]uu5!f!TĠ>ӈ%GO<@}XUXʆ0#9nJ̣'b^eDwZVƃE+LT2_xL߿߼+\H`Mu|"PK&t6F~|Y53d @/Zsv%ە{DúpY'dNKxrtX[mzddp` VD֞/(+ /uڲ@H> /: q' 󰂾c`t\uUt2%n 3a~cHÀD" }; 90/ Ol'مbq7upv5T^)idfH4Oa_&@ Y&lr Ũwd@9[79[{mn?f/ 54|51/->ٖ|-!=fgk?eۑsL5ZU`04ھT 7'Wfvr=N P3Szvdd-=lzRhxhݼB ֨gh =L;g9̢%Ιo/%@H8+]Y'a쁉 %issu[E&Dk}_vg =IO{I4A_zs6M^TlHO?x3=yaj'L}ȭMj}zC~6.`w^Q!Ly$3dǎTzᷣ[[]]} `e9 Xz 7B8\v~?PKsH1 nuvola/48x48/apps/kcmx.pngUT fALPQux eWy<{=(Zel3&H7ws,H "e{P Idad\p-#>fls^sygv-! n"HvHc@]m(:ƞ 0!A.WC=BCڊջx&| hB ?EM7[H!`oFrapځsyoi捶<6 6;u*2g*܁uEd@,KdPW+@3޿SɺC7&q{Oy[(Ӗ=BRS3SE?:HO P&/$LgfyJ~v}#|kBbR,^,ksۖQKz 0Lso5'tMT('߮~砏MXj=<H((V8֏%uOK|a!D';LIR(x꦳ yrJjm1I׮hSq ZMSLA@~B&}v4[|.Z_9]?s铘6 ·:l*j&'\)`&r+*o:ZI4]x\jXF4)Z xƿ?4Nhz@5llk+ZbXu-o4eFWbh ْ^!::[()Fbb/S\D] 6y[p^ ѾMc wpr7'atWF] IJʲS/X;i/ݾmRce'a[ѵaU-IRԉqQ=HS_)ۛ8T[a =?̔(~X=:6m}׋*R+=\1k;('LcwnE Y4BbuT4i(1/JUٲKK+:z\1J̽nXUrX,5'}7zdRÑ\J8]A Az{ki74 J쉺;X9dmb]lp"xc@E~@D)MaI+l{[qu&&,U'-ivc) a .ζ-45%jkk^oJc3'Єgb]$kWp}su_-QUɕkC&պ]Q+ L wg!2J67ɫ1GQ]WF NFeywP A}5AXsw@>>Y5D4o-0yZ43!kG]ڶS/ʃu00#0E))n8|U*O7 +`1l=rvYjWi bByem[b꺑9crӋ]Zs͌e}׋rHH}6/vY_Ro#h㊽ݡڅ!Gڼ<`ŪGh%7̫68+p]K񩨘uO>w6^!3^Rtp`a B귫),qŦu%[^!CǖIQ=]߫QGd "hLCҚS]>~V؃RXw  ٹ;~mnnm7nvX$msY3m+zIwQ/JuP$r&%|eu6;A#0j@\ mGș)gk'\ t&脲 Cv6, ?lް@NHSZZj7w6NhT0kzֆP#=]QAhr{܎P}%uJ]PDҍI)e|o8&f".5j8慎ŎTk(&l5Nmd!3GiQGZ7O}w8 9nzddgT>>IS2VR+D,+ڜh,)Y~UZC zX'B¯ [pOi79`-epXi ɾ)r7a}W+$C)=Be򜆡\=pf8ݹPL{{g}k's'm>wO?R:%ӧg뗣 y} 7q ?GT3'>1UOMXc%㄂]<6U}J/[]7aW5O0l Uo(0;Uu9Kq:=7&G7~(>2޷y[KJJ0o C] [G+KwpaG We 7V7~ | .y_8{"uFWn}mL{fEw'y3QnanZ_ׇeH vYlôE镈OõR~s]W73J蓌p0Bb+]u l FqM6>-rޤcX&9W\iViYP)vPr6 dz2?2=dtІEDšnC!'U-c jW|h{w7c3B5J @)$qgY_PfQM,N=PQv#>/%mDxSi5r}iaN);Lusrqfͫ5lx""'Wg˳ahI)5K̐2'n"{r{2GIc膥 ?%c^ڙ/Ip=% $@$oi@}=ˆQ C-(RoLM6-K(iLc"{-Oν5$祵IAo*eWzץU}0LCJLUfqqW?pHkg@M7D{nG0W-a][t.oZڨ B'hJ@Ux98W CGtͨ9i<ɀD =;hjK.0Kz7KJ\Y@MZss0jkum4YJ?LFM7,;'>Z`eeC/LSmAq3m&B:'W:D0d\y@)59Ŷ AIxjZo}. l5ZF?,=lGdK ũ]<!@GЛ29dsZae\̻e܍16.M =z RۤbmZ4`͘|EsdTW1FZXm`]2!Q/;}ő h*`c/AYyܝ'2"n\Px@20,p)}.O?PK sH1澘#nuvola/48x48/apps/kcolorchooser.pngUT fANPQux %W{_* Zh# 1PuRQNѯ7`@L\AOML'gwx:(؟G޻D-aDZrr2>L01s/_ ͝Ӌڬ>b@A_`¨::T%!ĸm}<ͨPLヌ h&qT&zi@2X4xU.RIȺ+}OkѨRZbU=vYi{hZVEa*_,8PTغXv# 1N;[{Gv )DI'q*c x Sh皧WF6nAy$ҊIyP.'WxQZxOh5.S`0Bd&%|~^ `SkmLemy@?1puf YÀ#Pˠ(\CɊ STrx<C2!8I0Kc"bImB61Bpa7O|6Bw܊P7,ZMfLh'{ӿ ?b:_%mq9X]~<:3imKudF/t>84T*;0XՎa`[ nqbJ -6, A ݁+eylK+6A7&w cVYl=6&}M,J̕Whs#l1SR>!sw-ėH$ȟM޿CL.̷gcUpw @0fD%yg{rUyjZk/ ]!dz'ўiuATe5I<+g$1O?Iì>J*zix2譼T[C~c1~[A;dXb:}8볉8s%3CFΑzݴa:{&tkCv#C<Hۯҡ{}b:Ao7ځU~T?_/aחSc@nP(Qk}6LX`Oz 2 d(yo$, 3Y eTf%EɭvC\(R7em܇dgzx<'?m)Lj1T9X5@NRٵ#7(j&D~);m,eZ͝X݄>8x}"jhD[E&IR*N< id8ǥ ePKJ*+DWeɞ2KZN_tk¥9ۢ[wEhVc"kk;q5.wTjwkemIps.+&iAU-L3:\r@Ecv<[MNmp6oma3UBhKn=R>HH?X".FD>wۈqs< ?RAz`HO 5 DȂ=/# i(XI9ϮE8@tᴔ`4)tT!<%c)Y%yE{ܧM=D^JWO≮,7ɠmVa& 7TSx3ԉv?hfPXZ :KNlrv ~(;_6rѺqCmu2MbME)ìm/3!Yl$nN^ா^y/$[_B 5#wdtiMu}űQ3:pP8}rǠ#LkYF_RZȾ-A7%D \QJR@+'$|`MՏ(ئ-2ݗ889w~R-cXA~ mهř'<. 'nЌ\lÛ8:ݬ2 ~sl$XɴKh,,=oH??&^dG3AizA wY.T#3P<+{UvU:hY# G {~&!G؜Ѿڋ6=qgf&5yc}}O\E%\ L91%۰hz:,~iVIOqOȱJL|F%l<ѢYQ2^yT/+*֗BӧYp..sSisI 'Z 1(g*7QNlGCu#Gػ8RO%o7P1m1'i3*JЕ(f3kpiuf-.KzD 3墳h<]vBْiy"[ZGafAJQEѰw7JPKTN15H%Q nuvola/48x48/apps/kcoloredit.pngUT mAJPQux XyXS׾I]J @&XDY+ FXB] E @PTT@XU-A%a3,K<3g9{dnhjMAuo5 ?3zl-P޺Z?  ?#>xh CtŎÊ>[[,)'chP5z n[ׄRO~<|;XLrA'ӳ0?|ښv<F8ohKx;Mw e4C*jb~N~%~Ha_ Ls5U.rCqi%"/x,c}o?!`vP~PYQ6@{Pи Ty xQ!*_:P аnjk7wVC;j9ڑx5d?H=2i^K4 Ar8mv2An]uFd! K_>V |tŲ8jB4$*qK 㓦Sh'UBY![4.~vp@G3g(>S{*Q4lXXbT k6Xv'3,dYRFw%H_d2YȈdvV:ˉC琳Mm">"(=iIY2)"jbL Fo%ӱTb2TBGn~؈ :9M5S W7 ?Cexm|>k[KI*Μ" :m A7y3;~=-IJ$;x,cQNKz"'q=W}4/h^ܻ4xmjlkfxeOQYo?niJIs S ^{hPw*L%Ol^* ̃ 6ruL;RNM'*&T-ݡS݊YX<-&_7}%_8Cr_ѕN'Vlej:X 0h\ն]6?4U3̊ y5xU\6$b sq*C=ml9PGQZdf'4ZnGJۙP=?+Gʎ2:Q +A,[:yn%Ȧ<_WCɚ-PpM9Crƺ66j;:t5'`v‘1LJt+'|TDA)}BSF1ʻٚ#h!XIKhƋ('c8Iŗ 0C1iꊇN[9 N* PqsxqWn05y< bzFhuk!-!Ŀ<[El7 p<<|J !/FEd˜b&F^&h; dp.&8wNVh&6;D| 'ÃJްְѧ4Ҧ×rDL ɋ])dm{Ws>I[ė6qX`o.iA>9xCC ޷U=$gy!0Z(̸ňfkmD{@yXLtr~|U_>`N VVt(GM@}Pޗ7j^ ϦrM è5ZzLDVE9%;$߭2~$Naaח]#em 9$WX~J6Ф45"R.9 4k9yY87 W lKN5&`ll(8}#:-]H2a‹Uv.l1 '03"S9ENbs~CxOE_)juIKC13i10 PeQ/2* 'i7p",Zh8cc幝K;svGvlwّ:6C M^M&iOJP:ZHTwK5'*SzlmR^WFA[̻wbF i,n2j!ˊ_:$X +ДM֗u ܂ztQrRVĻTfH:"m%C\;2nVU[?ixgu(;IqpCVBD쮷^xGeGMkzYEbW|'?(Fu_Efe&f@}{2T߲m(:-4R%xqW1s{*,/)mm'pAO ?QLe 1쳌Kf!"z[,>9FH Qn@9:'Yy|Y`*|`…|ss5}m t7HbÓAMǒgo#بeّ!z :FZW谟AuX2{7arJO 6ki~vpV ojspn8=;tJƏ*Dcw{=&Y$Sj)vd^;5o|ͣv>@x[.xOÄe~5ֵsa[M'  G՘t Nr{g;IC~b{툶=avn?B➀:Ǿ]Ph. 6+ DgI(~j@")>襤mn#>H>WKj[drdEx@ϛQXJ6 .!8BeDnnlw.gatr.w=#}{yHM}!Π $`N0c^ER.~/ӞېrEXf6ިִʇlV'kK4Nݭ,}q(YN kTA)Otp~.F/[4^d!֚09mDWS8ܔ0t_jL\tsq/KX.c./YGQ񊚔ͻ}wowtgxj|TeW,Xf WJcP^Pa92U9*|% S9QrGJ5[Sc2slS 21W>ЖGƄ5q;'0۔q,ggwattfF45cwCku:KmCؓti$D|0_$b8˽39aeF⋦x1l:S@@F/RQTyeaKmlc@;&,ao*c-3JGb}=\<ϰSgW s#1\[AO[ƋiWt7a20ر&Us_gNpEee%Og.>hk6p` 7T'o?x) +2iu+X~Vsf&4`c =CWp=̬r946IfMץ|h%JG5NavէB5)*|M$7AC0:_j!Jl/{z\ an] ͭܵנn&K#8HmW\nL_㕌bٰ_G6| L8]F3V1m+if0tHMfPpt/R>뷕LlFjDɶ\[; ʀ+?{1e]ܚϋǘ<X.ezLqJN +`җ`X)IuuDYGj"2/=0@ H9vcpJUyRfB'x1UR9Ýt^l6YxxqQW}wbE(~du(X)x2N], UN@ۄo07CC44Y::=q>=/Ϯ+91;|22 ǔjlL%9 JIXS}|OD2pQP[JHӳۡ;n~, Ĥt&88;m6/KA?zVF˗ll􊫕 3Ǐ:"Mݺk)$HZ?ti"Kluij" rT?tnDC9 nQIi/h\gc޾eHh~5:djd@ԫF& * =oq5Ja,HIg{_}* رmԔtoi{t \G;QI QN "^P_j^H㋂_Ck{NAfAA.;q[=)MiEN]cYlQ MWEA)A2J'k6fh) v62v[<9I's7-Y KsmRnL Qc8$iVC@K>6YӸRڂ<]Q3-R4'%gө^NLN-ա%;ixRs.1tbSIR@(a1΅;Ef5*ǡMwzئ=@9[ g}sXf~9D 7#Am/;DwC;$;ͻ/w6P)EPI,tcYFU?+>a<͒}VCX"Q˜)taOsrݽWQzi:&%iΌ.Jg1zӺsf&@t")2ZV3 '}N8_݋4~|;L@ b5Q4D![Gs&B^orjR&WhTλ{Ş [ J^9bm2ReؾT| )o8r}!7l&tns7῎ł}`ٝAp 1ek'C=M$Ȍ[*!65FAFatEBIuSFXPHa3>C|ƙXP ~psM8wl,φҥ98^<7F᭝f+ a" @&6LB#HG`[71/u\]6e-맢y/SHo;ԓ.7)Swq:p{/iog5H_MUyI))uKX1q)ꅃ.uX}n''6L#`j)EF7mKL.f@+kOcSSk+N#)ؚݦ6S!) /{lJE#$| sJw81U3smt(ЄiF"QE@-J޵S><@M]w0h–C|R_5jC>|ܽzc}R\/Zل>un` ttntc0$u$>w'2jy(lR59*.<@=7݁D9T {#pvg{[- -J|b/V.M~*Kv6(hIa;ϲ#@u?83J.̇n[^!$Y*vިl3ѯ;nZ:SY ˓w"nujh:WM(nTӈ2ȁo=aW4uj}I[ʤcd]Po=m_hZu{Eyh.wniqeʄ( Cѿ7XdA+iNy\kR!Z63BW@PKrH1l}nuvola/48x48/apps/kdat.pngUT ކfALPQux USSY//Ά n@d{!Іej3JDi# d ʢmcKրL bX FFYL{ϹUιwNAD i @ gE45p yF? [*e0er|?cq'I!!b틋p&$\l0h"Lt6q؁s;׮];eXiYH<څݾ0ݑFGK KߜB8H|δl`i؏fE6僂&$ơpW|L rI/v>ܛFVSR8Dڔ5dOyI7V&AS[bXeP~<:+,y=]0&s@=UEy,SwNd \I~۷U.=#cq*ϠeX`o :E/¢.>ӯMoQ>~Mܬ%6mkO:]Cm=s7ѲHد}nf\굘c_˷9::ff;|v 7qڝ?'֗P?א%gj9J.כ35gv؈;; :z_ ϖΘu}cwwVM.!>2 F!b"3R H pGTVNZ"\TjH\S:9٬47b/[O΅6&.X ةpP`Pڂ"KiP x` DDvB:{t0uGhyo/zh0lr0W %e5T(/PKt910_ % nuvola/48x48/apps/kdf.pngUT gUAPPQux m}<3aCBܬfT:Qat*1(Sr:4,:TzdsƖu]](7x<% Z\a ͛ 8lh|i))[)QcvL"?7*.ب}b}M{סK0^}kc=`V 7 WDL֧Vb,)>xH+Ё 2g(pM*}'z;qc~-9%mp*3. S GP FM7sJ+r/wo!CژW:4z˭Ny"Q~'>a;l}<C8hW5V7Y.UdM7h &%LxFk[-mV=JֻӔ%Y娻@Ώ]mN]J{LOˁJ÷Ox핣u]|v ݣW&+>3W Hɐj؂&OBVy l훗Ʌ*}g !O˫VnpΚA>'q!i]ѡyXHӾ}}M@݂ "۲ 2m&kzkQM}I-o~"{YEPFu-lIU<6E8]CMA]ݝ׺;95E]kQa2#xGsWȟscZo6sG b^j-+$w )Ni?~ΘAqųg7]cxQ|Q ]L8oEdx6.R/6ٰ۵U ʊ?mx 3],J6]@1lf"ww6\ lQLٗ潺ip'a ;;lw\H)v%l'#,#Q+ ܬ:чkJDQ݋o׼-+k>'-3lkgOt=hvkxoHp"pf H-rȾt4h _;^tp# i:<|jL:-9RRhiXml:7LEgmsӄz"[Vo*Ue},Kᗁ8^Q_e ̤(Ι)IgݰUq,XU#w%lhptrʾz}vLfF{' e  뻌:J{ɟ9LS'zDVP FU28L1^"L~mᓹ6? bGe *=cr,VҨ?CO[71[[Y8|S( ak$`nz#2X-ROgyg"oG%F#:?AY ";N /tN.|5[tD;`UKXM{X#hI5ZUzЂx5p'Q6}ՋB||Q'D:)ȥfARis$ {hkm~ U5uͳeAbjW߬N{͛ q|+icaw$!RkƊWQݻɭ&Aoҁl ˬ=[>=: BP#sӹJԦsʙUU)3aFmѪ2zo;i.911^)&+.ړ4q)9~Z${?])|n&gerw(ҊUyiK[L(an:͝&f39+@:{fʹM]{KpOKkXj#SQO4q=b\/PKsH1:ܭ nuvola/48x48/apps/kdict.pngUT fAMPQux %yX¸9 cnmF6YM @Ls)4n˵Ѷ& IMEJ4]ss89|{NQP IxX0E74[, ԠmAH]^n=9'&Cǧ&S]0(5őH5 ^ZZ^ #}.%n| xe kdtF(5}t>?W3=#<(bצHXKwSp Rjg$̺G+Aֱ+r5 &}l8IҨu]ZՄSG[҄W#liN{o)1d@DT}3~x%MSIL}U>m­qvœR70Z*}k(R ;J[+ +\sYo%tj-wl2h߁Ӡhk=D ^cBM*y]9_֓ f_ WG #fy쥏&$Iai%s6ku }FRxGsNb} =Sf5[WA>ߒf!/|߼4ۥF^w xf304ZmF&Y!GrStgN4 @!3L} [A*g:^WA֭D= Dny2բZ,G3]C-,x1y V%4 dgZEbi{U?) hSS-Pe"◢VN_,:S$w>ӄO=$/'~L IjhsiUNP(ڽMnUoe(Lz[{z1#+B:cbA[Fn'E.F$4Qu<~nH;(~rCpG/]gLFkw+B|x(-VDB!VN.cnBmEqG٪qh.o 7/'cVGcxl`ߣSԬ,/,Q_)cCPtv}ΙVACm7`VM<0XR2Ϣ߆򰕬yn.5."mH>o4􅥎2!DqKbZIsrP"P_r@[њm!]:? c_&QpΒ=t9-q5/$Yzd%rnpw66?_sڢє~EW}?c:BpȎFwx>ҤTzY؋ 2#+mCV@ 7 c귡-Y/?Oѕ+w4 A!),<#eRCs%A+c 9w{SД/D&* 75f.u,·L~ TZk\j*9?? ?dQif}hRw^A>H#7u)ǐ[Ԟer7D-Fܷ*,mDES۔xZE2+PB"v8C,5EW~w mA閗W·Xðsv(} ŧN.ym~{TS@<]Ÿn8Sqmctg(Śʼ> ΐhx$&C _|9ffA{.< ׀ۄ%݋!}jzpx,.&.S^Z$ǹPo6aDBvKuĴ1m(K];r_ 62?#P-^p2gyMÅ2ݝh 'FfP%jypݢDԔ"Ф$J.f~oDٶ|W[XPԤUkev}j ,igw! %E/u,yeG/}qZv"UaiF["ĪS>:\cj?Gտ0,O'">[gSߟ*`q^e^~uMLiL윝x 1$> r:mz[{A*LlΆMo=M(voT~ez=sY:dGӟ0Հ"'XN<{ěQUs_w`_}ŋ~@d$2bPsK!7AB6r׿g  D+*ɵMSr1'ګTYA d #@z.V[y \>.z7|5-ԁf .kƫ6*+\.i-krf*SJyS[ , Xׄ?8]&I *X&ځ$D^l)^={>{ gۯWq bLo"T-DH5 =u# ]ނg !6"3NbЧq߰:jDl,sg#l+,'3=pA$|}>Wۃ"S PKt91:nuvola/48x48/apps/kdisknav.pngUT gUANPQux wTIS `\HhPT4Jq%TM@bV l.J o Iu? *A&s=ǜ{s͝{| e~FꏩѮPyڠiߨ?ݓv'KIJaFxD%FDSر?GҎwD#Ƒ~=RF`! R)Ud":O;ckse.`p3~b6~ڦ=ꌷlJhWhrX%h!:\y3̍^D!S6Q'pBrd:b⠉ ^^[3߬ G,iNRcZ(zrqS7W85*@&BqZL(IO@Yc|E æ9;>ƻ́ FV~ 6SDv*[n$DlrfmIد gjm-iMpnRy jpdP2g=&ޖx5|bk4ZҸLpN*aزDМ}Шwn,!G 7"wH-QbGW:9 UQ8"&6jb"qN<#p` I垖)NyŒa6\%"ģk*Dd8Bͩh/zQSsw"9>n({F>+"PMT`Uܮ*mIi'r$9TvYC MV_ORTҽ:[ڏI +hp!zg=FkQ>P&aMMK7=w${jr!~K+S%r`s}LFQRm5BVLmw`bL6aS1tXC$8DL܅AJw'ӊu?7k1a^*ZL&dkUoy9ȅmjq{ yUw3Ȝ^Dpŋp`@vkrwx)  7W ΛkYwԿ/W""ܖ#AX]P. xK\_ZwӛӺo>!3}!M҅F3D.N.??o tPQ> :0bۄoZ aG.hIQP'g,!M;޶ެoQAviu{WޞM[i[*[<6mVCKFt܂ĈBwf1~UABe=91|SV +]K$n{g$ؠ;6DbWYYael/,;X~û̸>r?f:Ɂ. ~1Wĕzf&?;i4A.㎧%E=KcN0Qv@K h͸Z/=^t@StlZdΧ8ƁJ~`BO/띀N ?5Z;ߒ(prY{ܨp\N(> + d&h;2H)Frv2}&pX+"]s,^.NzQU=js!zn$P9 /P?-cFCL~ Cv/+gAH|;TjG _hɝ@y[,}h5+c!s"#cgj>fQ?S5Q;|a@Vf#|M1AWN|%ib|Fb\/|+?T ͔vTLއ4%gϝQ݅`De){d͸??|Bl(-Mh_dO-@y8rƸȴ=GT4s< u3皱UxPy6U :z) E}D(piѐ>˭'{5rW`q+:UpZӌyiSo[0ڧ8#sxXILarˮ^ZSX'~ =Fp}:Z-8Ef+^yc5 F53tqJ Ĵd>b9N^5%\VujzY WbijC}QmMy|vjlB$*W>rI"LxKڶbh|tB݅ma͓)Ȫt^4FHJ?! ,JrCA>$XQs-zueΣՎ~Վ AZT˼1s(a7/$c?tX3Vo)ܴE6CĭnBMְ4ώ凕ypGn 7~AtHz[]=n] }>?KdPcs ޟv˖1B#'I 03i5*9#]y o7࿞SPUK{O-hh[nܭt>-!MαÍ6D`/YGebBÉn_ٮ_~p{><8Ψo4>䗐&oWXbkzdS w,y͙ & 얏w :=nW}jgO`eN rO[5\ˡK[67D| [Iu .$]^ 3 )Yoc>DfWbNw7.-͕;{v]S,5ݵfR"g"rLN36:[%^ ڬ!'.+a@m93-v491u1JR߿a,,UqÔD<=緹-iڮ46 ;(g)P%ۈ+ftqYy"%nHYp4OYp/c|{ _ժئuut.Ԛ4EWw绱K FS"#3}mMaT ՚|`-ҝd;(;L6$Mۑ|~߰nMHh@~G`q~흳;fH <[Wj&Su˕)LK{%S55Qxtu/qnp, ISMi 2 KDVs8yY:TmfD_Fnީqno}vT^ƖAtV+'a&Si6ѱP-歨KۛVc/O=ܹV1)kz~4Ssf3V=*jg? ۱g=OVPKrH1y=.cnuvola/48x48/apps/kdmconfig.pngUT ȆfAPPQux W{w % S^hQЧj933׺54π*@ f -BKKYɄ9Xi) @jN[ Eݦi?|&HZD9X&#u5!W3PZcg%(X6&3yƹ A'!"D1^r]fbAi*ȏ-ky!9@]61$wEf|?v/Rj LG/%C S(. p&y~zaF68 |B LrE+R3GJa>čmap"6x[ %rO3>0t4'Gl|AZiǙLJP Sǎ;Fތ@\Zh''}cH=czZx`iPp0amU`OO_p{֟^O5<^f%C}íu/R*H1wQpVj֋bg}$P3X]xv!<- 0 )ūZJz5X# qMayR6)oEB5 >ImdDZGlHٌאwEv3[:K}ƒ*RkTPBOm6V&I~p=# MhjI4jBg6E4շ#I$8!u<9wN"bg#+,5Ceh`Qf/uf&`3iѯ'-0. 4-P}3.^sx p~0xS`+9?ɛЬP|zq)-"FvC_=ܹ kBj |;^hl2w 7hy/ $$b.\z^Оv!^J* 7ѷ Lzr@l c{6鱯f(t"/n=40PSƳ~3IENmDn9R+|oK/M߿ "c{\iAD_Kв(3;'6>ɕb824kgp1 Vq$"PgwhT(1OQ_tXc]#rBF- {PZwh-Yҏw+~YA N]Y.*H`0Dlu66V'C??d,nKjy1sQ?8|?X9hM"F6cjA?u yCh}\H&9g~>kwx@Wduqi0}X^<aO5Y#~7ZQYx%9'XiQf-',į|S~rmKt<(nǕw $;ZzюHM. mEzeVu1zO3GrfVF,׼]w`BIr;4Nn ]:4)6QӍ67x-8?Kаeɸp qT7RrWo~ oSW?x=}]:4~^=ڑ|!ajOOkx>ڴA*EWrɆ ޢk%e3|e{2!{rGjO-mױR~os2 bmlGhH\cΏuÈ}cj #|Q. նgE8ga>h տ׸,ϙdel}W{yDq vpo1+]"=1L*{J=!˯qWߕPG`ngEOE|.*! *!ؖ:!/;5lkӱړ/Jm<$=E|C9r\yHsOotwد -GJ<Yw*hDĵjO F[sdB\:oij,ZöjzMޓ Ě^AOֶ9Q9Hk%:._~^&Vbp`m@luH>^akk&k5f.+c{Y6{W5׊kTL>|TIY2r|yȷ q͆ (PU\Nq0 %ʇ+?W 0FD'oMK2|Dh9IG=}Fc* ~`hWY/g/6R .wʀx6G"ءutL8X&iiǻw#M/5+ *&mD!V/ck[a?/Y>D&/L ݃6;iu3mDrk&bݤ;Nui4&Jnb;zjŀu벃Y|y) @PeV al[e7Qqit_T2}7c;yZ~og?dqISIJi S542{io8l!tr `Y[&_‹ u]@ PAya/ރi j ] Im[櫉[iCMiD`)ΤђMoŢ:{ X k@߂ wL!f=%cE’\/'ڃHrs~o+9)-Z㚉1ܚʥ%f>^P|󏖷weKU<973 nȁJalWzу!y|C,srшb)$e\@#ϧ y%5T;-bFa1ջZU3kԵBi~63hsL`z+ &yɷy/,sC[UI d~ 넨v~tkMGx0iI޵F:2E|a>,^J_T1 %XS9eU 'fX-mE z+({A%*4Vi1Td136`EZIc$m+VJ*nsFX{C,'9 QnPj|>r-VlKu,?`եcyˆ0IZLRYoo4'#RbY:-]BX;c As._?觤=礚 !g{AQ?p} =7 iC;e.1sCA29L^o[u_9^5Ko\.h'm_N &o!;JR~B&ls45c9r(`[n>1VM RBVHd2C]R xs_̱0 QZu`g{ݲ ;8h@X]LQbc"cɿ xF9zF.9XzoO~8t{.r}1 י4;9q{NZPKrH1c nuvola/48x48/apps/kedit.pngUT fANPQux -WkX4ԁJK-Qjhʘ3eLRT`H4k²fNXf$t4泌w9?zZާ߭4Xc~[u'񟥏HU@;PΝv'JMNH 1责b(1vlDa*e`D3۷oB.A]Gk0ӵ4A 7[OIΟ$ާ` (^J>Yk^~h^ \B&SH26l #u狽Y6z;ynVʒ>m6|"!Wqh1-3@|Ox+\JkJ$G.62Ҟ:OH3!ls>4E>=+ ?H@)RPBfdj<`m,I9XJŜya.a+CBsutէ,z@ABHeccR@q* +P~j'nXJ7m"6]hNg۷'w(\@e ="QƏ>s[=0̹B}PU~.Q-ɶ5u  A2BknMzgLၱl!a\,~|!d)Ep%{&MSy4HbUVz-+- ;=9YO:[HS"XRL`E.=o3n.~O`u @l}kc##%DF">!H(+\#f7ƆCKؔʉ)KaI w>dLsQJ p~5Eʙpcڮ5bSZ9p$*nj$4nT5pَ=%7ҕ&+ssrS~"iM&g75jQ2sXow UlїD1:^3(^ p5.}@FglKswQ\/ ӸFxi]󴈐&+V#؊ szځO:Ga~Nl[ ibpWE?1}]q"O 31Y(榷!ބMZDj1`V@A7t{#KBcH]U3LVRX6} ~rS.d+L3I\7._[NݡـҢXMz+KmޭgifbIӚ(O yӶXdj`FaMTaQIV$*D,.%@^a3ֳ x`d#1߼ !fPE-D+ ']_6a*.?NO~;`m(ySh9,QЩnsT= +2p8c)&7p% ԙt]~|)[mаjm![Hsɺo6$Gג =jkf<_ [<*9e ~P Z4iGg1d{|ԋ?!"*oP:l F0hY^q/*׋c`~tG6S Y%qb!iv`_k=hij|{,EGmx%yb JN69:$ X߻)|V;B=q>ܠ[asW7̙#ZImrw&akge0 cU!{ \RH(tI%Bjx-N@ .6ιOB[C#lHLGL?Jmj?y/D~tPZʙŖHtڃH.b龖,iKɑE.SKGt'a4_NGHW A_eO֜Tݲ*5^B&on,r!<@hb#8Ls%j&SN*|6/uD@')a2\'^BuIۜP{]".=?@ johr7JnԎ顠1cyS}(#V(f|Urp%Âh2ߌtft; {+|:gx'<ܒ Z]@>خay.GũzO?XIK۠mfGޣמ ps\1Ԩ$R̤>\ozVFrQ rrL9zM͟/75)5mĸ7Uٱ@l r1,ȋ%(3%%,O7jsS3Vxu݅O~h]~J:gι6yƍDtTdh/ҡE* w"Mr՟nDJpzMOb!,gfľ]vatn{l͌;Wf{+ \4ܕLb*ņgп4,r3g[u&gwh}o5Cdn4a?_N44cp HQVz PK&sH1( @9$nuvola/48x48/apps/keditbookmarks.pngUT (fAKPQux eWi@Lm>gNʹv3?(*(EMBLSSZ4QI%cNMV[+FIhQ|?﾿\~>;<4Ԗe.E${T{f1U]&{qşs&d(j+40P*[<7 (M:NM/i un; to23&}zMLT. ~=h % Q|1zI;ˤVA\Sr2 f2rqXsӳl85o4#, Oo x44+k忂GZ: 7lyy(u/3%3)l a3oވ)_ VDYωn 1J>"l'^zɤ)ڢ؎33(A$9]lvq-}[,+y\ cW'#5347}/s;`{NВzQ+lfl]iwwj" Ap-ٺ+6ă!( `]W?}<cP',JlN#*_0IgeR l spkҡq@-KօNQFǖ\l+[QSexL_,~`OFNyTäPν icUt:^,(l"j)z_ -.*h}YګȝSGc!NSuuzvAX4&x$<ly}]v  lͰG\N^X% {@&mrD_XZ'4oVTA˄+#w)A=K8( _>qk{+NX'AJ= *X-=~˜{$qstִ0A7Yx2!VU+/l`9r#g`Sb߆W QU{ll)3͊xl)yj.bҔ{[^(+cWG8;;96T7'~'sbD)SG @~bu0f MFy&1Gl l߽{x~~j@vJ2ʂL֢nRf&|=qi? k|]i݇ !a ̓ ˬ;D[OYΤڣTTwu OCի49EZsyIKgzJt\Q@cu?=7w!/͢4RaWbA8N^rHoC3[>YP3osے/rU5dר#SAJGC'x((FKBgǕ ڔ:Բl7)5 2'NK έ|C&%CNY4DgtE'$` 5>V}F߁=ffa9f6-Uvڳ~Y 9*o&@״ȡMq.e2ʗϊ̈́VWOSV)N?_}=;1sz+6pϕpvZcY]{iϳ@!gdVzn =Լaq7 p92cGгT}gĝPt^ Hkqub:QI8] ~B͌CuL HEˊP< a8N'5,h YV>97?oZñEiצdƥDܹa ^[jDLQLP^Q=A<<꥟8XX?FLLxC篂B7aGo1vm[`&~ p+_Q{D"am"S2;i E],SـO|E~k jec$!3F= Pb͂kgM~$}Rۿu lƳ @ N ux[Y*e2zcZz Q IK>ss>z?ga:].Hn7UWU=e϶fY}ӑΙ@{,;BpB&5 ,,[r(MGەzl%{qZEәy"qNd R4;8r̂TgU,,1{hMWJue5/sԬE~McŴeuBJ2s^$4aV& v v~$؞(\zqqtL}q{G~LIUydlė<$JPt2sDLvԴP1S/IwpX>{2'xc*jDϑuu6XsLobY`y'mFgCMQJOq.g+`.9sN>G^t:s)p"ZSۦ{*4s rwT%]LA @3 9nkN/XV~aLFuZ-qWtQ#hVw;4#!kf ]L.%)iNř٘ma72ҐQE;{(kc sf3NQem8G 8u'rM'˸}"#*'\xN PtϏi;I5X1 l&Q:aaZ#qlh?94u,xڷ>;3ʮ#dHd(?tމJܬn2: &\!)>NYyj7Փv#eݟCz !,5s@3ӵ9&&m_]fM [!߬{K09\sהCΈvIGCk잪;huv+<ìAK_XX6n$#cGAF+c4(ɟkë*>p k ei (Dh%bn 1MƦoq">]x147(Āo1BRK #}F[<#6ZX5֕[cicdiљ\D/j?yD5Jw#Dʅ^.9rM[nIyj!%_xYդwz{7N*~`Ϝ+mkm>'ĕ#fܨ>>ON3~pFFHOOÖmPpgeZ撾#,zU*5r8 º_;7x_׫SEa5y cɲ;hOf(XnП0V!n4L,i AQ9ÃR, Lܽ־>ki[@iW/amyaϣr8;U}4<헝~›5NzWOӨsHpeF4e?J-ow1/'b£#*b`d*rKHCM6o}^Ӂ[OA=T_-9|p]33Da (zg`C0MʸYJˊ'ojD ȴ6}i6Vkix"&˯'%tNg. `ט@8dr+=sjxb ܸdX1IRTLb,G&_GDKWNtR.;}G]ߦ:1έ=kĈ.W/ e}丵˂iLTR ?t͚ޛKȇ.V}v&LephZ |R0\Yg8 +IմI?:㕛XLZrVo$9$Ŀ`p-xT |H)FxGHMRo%qgHy @ee@ nP&Pi}zfM?.禚]*r@<>.c#HS (D;33qL.˶X3 j7K'.oH`f WƲko@"1pYFnQR:έi,a6ۮ*b6=he#x=V12 !AxaȕI? $ExW7m+/PKrH1 !l!nuvola/48x48/apps/keybindings.pngUT fAOPQux %WyXRpb ن2h*撎*-i\Q(5JsRFl6McieM r4?#sB]$1d@}^.':@⡣?'ؤ- %xQVHs[kRк}"ÿPyC{-2{ڢ7 HsN.K;d ʿ8k{ b#dZ>9b kAmmCB<=]+0L5pƭ rp}$.Hx [u7Y(mW(P՟']2N>iu6+tT}a,G!(T+maj>UywB~:}?Is_SP7>1vh}m:`\&6^ac Pϩ3/GސpݨZjhqWJY{ y)ό;kɭ?@,?@= ox;6:ܢq)ֿd@%և^16.#OԪ~z|򰊎JI- f#ڽa= wk<[Z){˝3?r1j#%[B}@hAW|r5_Pr;;${^V}=*H9N=o iLoO#gAwaږQO|St;=ZpeCCUr<<ۇ\BR_Y\hrEB~(Kw?Cl[.șŁr1)||U_]LN )Kb<-RgHjW.íا&i&Y0-yazb!#ȿ9.bCA69Dj-Bw5.|LL[ kں8kznu汚U2>nh}븖Т*i:._/p~ ^!%YF Β jSO-29Ĥ-U) j-´.n X PG"tۼ!J waYJHo`TpGyݭ8UT'7ڿo&"l'aE<+]:c5T 7 ?XfDX %4O{[퇌M;T}pjۖIYQ\H2w%Lrh4-}J͗ȐAU.Ƕ8m0@ -TDYLpf z;V}POHpb7V6DsD&&wx}G$a.9d̶of6(k}+E}ʘig:H #csȩ7\`HcdH`DZ+Q; 3{Tj2M#sNt{sˋdWTTxi|2#HI 5(f$W»nRB] EAPxoP !nx4$s\dA\uR 2#Y_ >3*5wX({])Q:thK4L;ubb?IwfҴo:I g;>7vsRL9զU@l yLh6BߐLϐˊe?H܋f+BP6paꦿ1zK>m oo%|sӔnt|ۘTקwo#c_0XĪ'-.7] g}93fmC6#BI%AI>݈CACS 6O>Y=IP_$v  p1d^e2vER) nje̸c JQ\Lq'SU{Vjl rJ_S,} |k8w ghɏhIByZ- # ڴAy`U~hUr떛5=02{$Yreh4ȧ}JLC 'gT}o9۷Ժ\'6ls_{"\GKk6_~=I˔=H秬Rh^od/SPbGGxYLGޮhgPX$yK <e5fc9/]mʣPL[򍶷?q0Iq()Kin.N~-rp`B{M;U"9! ClI;_|3ǬF6KZGHQb!+&Br&Ν`{t1JzJ'Ojԓ2*Y5wuuW+eINDV/P PU'n 'S+i*뉂o\꤇RO/*m4SwɊX74W`u /V i^=^N,` ݉\˗]*DsFTT`gZGdN7U@5YS-^0fWV[ l4o)3_t60dA<. enu;er{ۡsw#3xSW8@( muϘ̠1@gd"#s)B1) $%$+JpoB#Zݘ8eŸbEvyߡb;jܚ|Ų.w=-p81)}4RQ<b\t=ƩЌ.[62A鿿82e-`,ld`9g :b%gvqQuҿ6v"r6I ,{ frS$Wr; b sOcŁ`V-^ɖi@Va턿z{jҬ'' DP2aZs)kZY#2FZcr)F9 A'$KeE"A ~Ao,  &XXsRibgAF^hj6[kzY Bhok=^iq"AD8Ϊ"=9gء )pɆ)A.8)h-V >i;I[M<&i7o&7&ӕjs'ICm"ExJP\ۯ ų˟6*:x]형(5Ō0bF>kV PKrH1nuvola/48x48/apps/keyboard.pngUT ؆fAPPQux V{8_|cfcF9m \B&M;lcP.'7i)Ntt-HcwB1~鏵gZ{dh`!Ev1\n6;8up)Ibѐ Hq(@`.?K8(gC0L2c700WؾLתK!2HꦗaaHkknnSdr?iE`쫲񧣘qxR '6u U_<+x6ye E&ž>Q\Խ괃T3LG(:`7%ɶŔ̪*OZ}=ۀ"C̀q2(t߻%lت4m_*Oʭ~5x]IE%kSFvuOuju좌"blQe;Q 2Y^ d3dh(}p@lE\jedH<]nGҪup0'k4XVYqY/ R#Գq 19ϦQU; stk_in+ H-acO ȵ}AN&έX+9 9%)@DWؖ &i#fk"*Ǒ',soSEQ7J[? ]C^gFm* 5; IA Xj]iOSߣqŵkNYTk>tes ¤Stz׾٭ejmm͉SwyBE`Gk~>F$* |xr`0~v>::?;kVⷮD_hp#Be*3vQ')+Ac2eE]KMReOBIޱIԡ'#xaybu-2N?¥MOQBQ{~]$P|[Ss,1$3.ne h\dZP"f}B[ֳYH'\"/[Vf>rJ8w`z˳ @Sb46?cl7[eMg穞g%~Lڵ'7vŽ^I~MJ,+-E<,D" !Dq\sȋ*_sԖ*=8f]Y=Φ1Rqk쯶ŠO2`I͔4h.ssXqg?`3KK6b|V>e胔Ȼ?Izx(A4_'mYiK $SU,qK<ܸ}qǞz~睺 |8–p0ԯPgEW<|hS%J3Re0M?=1m* ?0œS3)ˀ{4 u$eҫV&k%c՗лsgrz SH {qȚZgآLb BT|c_^έ-ێS@Jn[;fN_[(OՈdjD!dn] yGG%ؿsE n<*:]qD;G-$m{M3|Az7C爑 %޼OT"+imm0`K3fX6踾Ͳs꣔ߔNk/ Ů`)]'tx2A|llz5Afmq^qvc1-><6淄1-7 A _? &£=Ȩ^Ѧ:SNSo "J,q?>7x9I(UC-$F'dq APKrH1lj %nuvola/48x48/apps/keyboard_layout.pngUT fAPPQux {8iǟ9x3fa&)LZ43DM a3D3qJmJn"g:rdJx뾮\p#ņnX>۷cOmv#Ӻ3=/7gt!$ٳQa0/~ ~nL,v1]arA|Deޖjz)qkvIu\!̈2X~hX53TVY~O3GΊdrl-a@"-뤞H݌氃 M0o}YI($)Xw]Ex6;Bd&e*$G`oU~ 57`VX~Ib5~ }&Opw7|<Xħ=BűQ1zݤ @볖lQ~ -q yXmRhJ<”.5 jUTsNˠsPP x5f?.Wf.̺-tĔtj;ǧIeK5͖I!ʶIqlx q*(:3t#TPZxO쳍6bo"Զ˘F.`A~R15D٧'{)NnRJ5ݺ:%4dwk.q2yLnpvnM"p Y, jMo'1Z/L\l:%ҖLBMXm_mߙO'  ҂;5 ~,ǕD8'Wv~&S-0Bg̩Gip8rqkT:>r]$BD &Ch-Rr>z}2R`7F\j7u~b$DI1ɔArZP"ãr䷈Z1zZuo 5%g .x4=P=k) M2m<7b!iUL/DTI IAa)) ] K?QXbӤ/)΂ᆳMUHva:%|E]iCdIJ#;QA3AzT֟2#SKl<-YqL ii77 `Wht]*ދ xn3QK (q2~zJ@dOӸZ B=H6Xn^kT_z50 ޭukp4kN!g4]oƎ0Aoqi)4įQo[|#xzcһ(Hk%?.[`Nka=pn&kR923 [yG$ZF^ [nVty]nc}QIYQUjD6&@4qL".{(/|:O(t䱙˗zz` 1Y$}z&B,^#$wpxK' v6Wֈ|h`M7V (aP54ZMR~~R?UUUS%7F/0>z!ЩXz̋B҇0S;]t. nrz`Вb ޢKi&XSQ0 S,As4oubCZ{a?ʊ`D 3bY7b=NJ/3ǟw*`BSeo_:}(5e6: bpONZboy*+MdI?)J⹱j:d`= ʯB'NA׶< X'z+S=6݇?PKrH1pÐ#Jnuvola/48x48/apps/kfig.pngUT fAJPQux {<ǿn2]fI ]8a Erm!jr%sNú9?ecN)1lv|>z;0dkp%w }tPӾN?)}3vxŠ 9y#B;3^T(JF`r͛7h0X-J7;;W: d. %=K.a4[ي=: sqkl@)̝'+q=#mzQ2Qfv8utw{,E1'2QJ9EyfEaQ>>$(44'aI *@P믿ܾ_O$e}w=NwC׎:/zn eo:xuJr:6&("JL";}W.(j7Yo|肳c_6Nomڒhx#94~Z[~zcDB({dʯNa9W59#/F»Y*^4gx0R d\>x籈ٻ=ە cR=|֭o'U_^XnlN&7Nf=[ZSVYWޡ0[T*ٴ]U9-^/Tr0!I#Vwm)*`X}z"|''L rJeuy`$޽bQ/SYOD~1_PcWcUku2ƥG%N\`k\ѹ!K Y:hA!dW_I>|PA$?7B9AuJ\!S jYYW/ 퐶*A.?.BIh.$ 3)'1붧!"aѶQE@[SJ}pS!U'Õ 䏬HE'StPz9:ޒވ}N$s˪3ӛ5b2?ܩ28nOi7S׮JԪ@#nx@:|^;BTZ9 AH܅4!UcNJCIׯ OI:ڟ \EG/KIʖRp R` ]%W`@'Sn1JĄOv& 5qErBU@A8y( xJĝc(֍_f} xD|-WLn,xx#:CJ>GQM,k>;Г YKо A.uoHJa@.8[ye7sb`Дb aPvh]llme ?~#tUb( W#Fe:Ucm- {nAD3DڋQfɓ4N AFN-qd=*&nlʩ(t-~s/FF ntfEn/ʎ>6x!h<u)~"Y^y:l2\R^V|i3x-G|Qoᔫs_]_{5{ IR@ӜVHx&wԃg]nz%I8!Pr ]㥥[RvFɂ-exVfCC)E"|SE)o.&Sve A^65#r@% ?Ά"ܼ-c0>z \EFb i5!CYQz+:BZ>Ru6lMrՉՍUsy3|rXo13I$k?juSk]PQ2]8!yg)eb7{C iX/c'H-"P,Uۖ}TDik&YtۭqihD/-qBРu5ۊ批B?N!ּE|{R7Ԟbېe/&"Še` -#EVcw/׾"GS' k iwEb\DOLNZZjFb#h&4ćJ@qzy4 !tqƳMuGZ's/P6Sr~#_wL2,8Xw6[\]M{و婾'pk~OAb"W? 5^ =}')33"QQ9~1_t9 ZFGV%{h ]`['mtwؑM2O8m俦1jE^qb " Hɔ郱:wjb8'LSw N7/41BTcl]X1vG &049M;\P[: T-\-߇b_ 8-`9Nhwub1:˴q84 HDzwF-ˑ?T\ j'[*u6,6fxݪ%ps1 Ё& '٫f[`zѣ# E2jB_%j`HOs{CS{3s1GxF &*^+w44X{TR=q\2䏌CJFQ0ol+#-rT_ 9OQ*cEE=/pJlI|G~ƾ[.`Vk,L5%$usK;@"r_A`^4.@ȦՁȩPK)qH1u(4nuvola/48x48/apps/kfind.pngUT nfAJPQux X{<{v&r+aK(K'T*Qm)JJQ9Ls&<_rXH(eNaݯ?>\LFUm>gAbbCviRڄvٽCD4`ɀ`fܙ` h{l(]t$QL :=G|"]x߻8Y&]L+W%Ha2z4D5%;=4 ijf2CGLocŔHɯy̯%STdk(~) @"䲕~ {{ξ9Q"NX Gdl#ϐl3/cKݸ/m"D++#Y:X1O3LlG^!*6~pś-KӶ+GYVGtwlra;)AXw'LiHpixP(ugu@Gmm&y<&iK!w5KoUX[?${B%pm[Q@+= 6¢[]R=zYYtҦ:G^!Ȓ&_VjÁ n݇X)3L}JgIIG+-lVccSeȈP9@ 3B3(ZZ ʠ$աk8q24rكiZ:0llą?# |͐_+-L5{gC#E7~EB3 ͈m|q咮@eGN/TUU־;Amm `Uw0o@SɉDh8Z/(:v AQ"x*: -;=LDE5aVHvs \[Q'Eu[ͻ! !^aȍ ;q[VQ^N {jap]L,`}r9t~b#ƪkً}wbD$Cϩm 9qkz]3D '-X7(+Y:\KX5tm g ?8*Ch49n)GE,HjԌ13b𩕒\Mw3LӵP׍j዁V}U;m$R&SSu@F|Aاr6jiBE,3 6ڣ@r{ԅ\QJ`!BnQj鯍 s q<팦YPTEE |OIF1,|%J:@6)(ScU&O?$fa e/RfǴCɡlB_ 򢢣MrЂRJ]9y%viX?43RS{`Wv `AVag+sFĂ&%Jԙ1a:-g5'Z"nfwMc1m'AQl.aQ)U-MZö=]dSɆx=U5w2ȻLOE12܄_xƓхVw i5lN!W `'GNPizwk ||JXιKA4dGkYP?_Y/C!~ V];)VUbt-@h Ee5AU%YMrzF3~O&.V-|/v )^Cnmɛߒ( Cȶ86#,8¦]깺 ]|.&Qk #W|/dZ>3/X* fn>3h-g/՘ը^wJ}>|P*xz4x/|"v:y`# 9WmgpcJXQN)EePsC}nj(M-=N8?gAd\Zc2v=`(\r/TRjpڸn@<'4xCjB×'O\"C (jk0"i <;;/64\ uW2 WiNinFG$4,tOAN8l;XV4;0n\NuBNk #دs08c#z20Rxr40BvxKlS3%ފj)%b5D!O% :с~ן{S$(;AZ~MzJ/V1$wlG=zyx yl}{ںt{$$s%Ef#i=/1"K>7gb|}{/taa.M ױEm(qBCA_PNt۾c=~kw|*:(QAp3 }IyjH5,ΪK޲p&s7E)C.$s ^bι2Nc)e40"aʙ{ ,J6W>fzqc8_fҠ*d0G}Vԅ|~wGFG$-#$O䲋#r9Q+hMԇt-,Z ^õn@ FhYB}6wE \e=gY$v"\fb#Luk&38Zln[䔰jҺMt;AYy*@ĒIYg Z~0;tN3C;kMDŨl&ҧ˶a2M3+OU|ލa(Ht;/x6c0ޣG Er)^;j@0|-Ѓx\cP&i*>׹<`8(о@tU''@KsX|;6P;, UARP~y93vH aفh4751$靓^s4Ly\' Y|)o' e;H/Ph mT T `V9䘨f1<"F'.#<񸨿''P)%g>fEJr,r/(i?N\LbS#:g)de u큽r-6ac[Ye$Fpg/=ҙ.`NǬK*7jaWtLؤÙ'kSE Y> :xʱ|)񭑏$Qo!&PT#G||7E۪cmh?`JUYE~yZ |:]1:*Wvw{Xe]^fs5$]bWn)C7'i ḱ~CW]Aqq]y9[`P9Xڟ9&N fr]SmWjyYv7Xp'ؾ;8=͇6r䲺[<'QY/튝RR53&OAwtuf# " B_s'7@MGP5o]W rxלz3WA:SPLuvt ifk5nYG+c;F+ϸ=k,54pv&[-Q UǨuT] J@ MdFa4:a $yT%j˱I~5վaմr|MO rjް*?5P'V%LV_)%) _AUTr"x8(0Y89PדѐaMf \sBni004446GX|Y?wa-~"Uώ#1nCi _{Q\gf'fSvex}9q;ْ$L:'7:ޓ`ؽ)%1wEZwrwjXZؾjKMv7P$ >wx2)9*6)I곍QGY}+d[DJ.N٩N}"Nt6}~;?ޯ~=/a.خ ]o%\7FL@u";owO})'.O]>%>(B9?|7`KMp MD{BΖ->ף `C$Ka7YSfߵ7wSzWEP뉯g[P<< A Ax,]vE/$gI#do6p`\#֤$>uMwt󝾮J_QNx9BT*a鐇zE,VlѸaS&3Сc՛ C #x*tGlܔ'}# 74Zb[:央=D _g)A=. xMJ;jb}=}*4~V Ej>Cj`xs<2"'),84I8 +<"46jUR%ǤFQߺv\?bIGD9ʴI_wh,/65Y;zնf+4QYbxG$ɕf7Ȫq۱XQ)rRyVĄEt/ xH1M^jM簆?o.:Mi]>#YϠPiЩѶ6q1P|tUZC&^nIl' BU-aN!x2I/?P#-,No|K| j/2HsK!9;KLߑ~J[&T҂6i,JgP)=3mPY:Ði"zq)_T)j|uz/{D YLGdAA*S4t*@7=LX2_SP1oMFZKvp @+ec+fսzE2~GlY^r { ;Ȭ|0ƦAmȑn!ٌyO}O]} uf·OSd d.1gC3B-vuJH剚p~'fN.%dg7qh1"m|WFP]jaϮ 5'Go' ~&'!t5s_e{n˗E,%VnU*?ީ! ?5_^ey‹>\P)Dҁy.bRvJKWS님g8a/N{=[K#-YďO֭I`GљGܧ:۟ Jh{=(܋ܒ?>hic}eArEvf"NSqH6Kn ILm1WoHe0{sLX\BaVVn]gh4pJ0hx9GMv/SW+n-dpEaJZ#}|VҌd='`G>1uf{(juu>r?`͋yڰ;R:ኤnd;Oe |?'9!>J'׳30,tM p+̡4 Jzz ½[ZO~0!m`"[!G\H߅ OQ5tʧHBYg3޹TBӪ\E5oq!O$zb}߂nKO̪hzDHZ<$}:{w‹sH6>p‚x?EEɌ d:+Zmk V}F%d"2BqemJ'd' R]):ϋ<,.0;vMIʲbÓ#T}k|`=Mf v+YeEx#Tئ#U]>Mhlyb5߱[r7+B4x2u?y,C ro9{9VtۀZ,u( mG:߭ 1.d9e]Z߻nC+:48EH~LjԷ{ _r3A}w>c6O o^,=I&$@SCRG[9KڸMyI^z"~){ Tc_p+jMPL8a_f9do?~@+IuASPfPe`Y`!E-4973ۗXoqdf%P^iE)IO)AY,OOPFR {GGY!>ʳ39L4ٖoD^l`ј."qTnF6Qd4b:VuɆ #kLL"J{RӍ?n=n"&cΏ?ynR6lZ mM`(27g90.P bs9j:" ىܺl_vEy03!qkii!h9 +_fM  B{ woc:om q`ICqE4[Ս0Ctpr5Mۿj _]PϿY8-I|U/AwY>/@r.g=%۳vH/vz7z1fH;&ZCX}>op&~:g2&V2eh/' |{2.cKk_[ u GEٶ&Xmۑ6o&1w: 2 qk]5 9Ep3'IuFz>7e~N71,!mޏ!ZYͦG%Ny9!(vz:#  wZ/.QټS)৔d3=1TAԋW~:V$BlEkr8fZ1sQ$w*\,6 -WKjч=$J8' $߿A#ȘPCoޟCh[(cə~AFg'?Ag*{t$+e vxx(Wc s&s<;2r]I d7?&_awqhdCy{0\eEJ훪"'^mXm(3-K7wnԵt`ljW$RJ9#SO1/E/,e(p~`Bh$Iw;ﹼ09;stx  ܇0-wEYwq5Q1:9z (>Osp^}bL̨\PPyftiiWE;)^ 13 7qFՌRlh;v`'҉נSǾ^]ښX <<[ !*mh-Eܲ Hcnx~g4Z]PS ;mJ:uIP3ڍ-@- GTokc3MsLۊҫH$W?@~k]a_P[U㋯ΐ9}6ƊjNykVrtKUl{Y 2)2D$& R:q|u4g+pf:WvS8$'= Q!h_~-[&o0c5XbmPK,qH1S nuvola/48x48/apps/kfm.pngUT tfAPPQux -WyX!Keو: [j2WirIrkћ:iV:N 侤r?9y|,n*Zx;V"\6fX __1W]~5S@ yH &"ÙOb$p|bhh//ċAf%5ܝ$b^e@ hDQwq&Mny[m .OZr` e3074\%KQ<P !LǮhPq=jb!^$Z@KC2/KKuԥ^|E,'rt睩2âb#T3>,]h)B3hZD"f vF34Yw\[k9yOddc3q.Ti8jR?= 1plfV9яD, Ox9YS:e5A4H0X,͈$6jY I\ 4cos>ѳ[g?oVﯙt5+W(\|~g"J B^ Q'6ܒMk慾QQߌ4XY}]8e!BnpkͫPĽ)xx2tҢ׏ɬ6ew<(br@50,P.u>dTKtkʾ]u߸ g:JSdr=:l0|lx[\pJvTpu2[s4q{"!q#(ra?]p8b"N3C1m @ a;{]@> oϷSe;ѷrةxkR s-fw[#"__ j9M^C#3Y R9ZB|GQzmrt V Fː6u+L;c.8Do I? vU5h3!e{ vӕŸDjwRf 5Ș Jz(^b,@}rX1VG.;guet FHt3W퉑߰S &ÏsDyPJ{\P'Y39d6J]S3Im VhҾYl-]g7NSFmnfR(Bgb[؜x_ժÆx](xR*ΩZЪ9L1gC{>V&xK5]&(2t9`{sԼYBoBʴ,=ͷ-FչL7.d Fi7gf"U-Im.~eۉNlp "#h=j;!Ob>7GKrd[HKqd%HJSL䬵kQ VɄ@t]^[R&twmGsp̳ &6NoŚHvA/~h]aU IOKBbW"~FzO~1WP.UB}-Se}>,k7)| 3<( fVp~k*}I22}+_ @ll{WVF_0k,F/lC52 qe[vTg!! AsI.{]%@{62իX, de|}*կ47:$u:yj>vI8]Clh}~g<5cȀG·˂~-i))PKg N1'wnuvola/48x48/apps/kfm_home.pngUT ҹmAKPQux UXy4ϼnj͌}&ˌ1Jv#R2Y2>-֢BXCEY 7ʴČA*E)DdOZ>,??9s=}yri[(mW*9 X?h(}'$n'$&E<Ѥm"b#Rvum^C L.D{;ASxK[Z3,(jy{Μ9ؑ&TeSR![O83EuY'F!7HpٝKڢ%Nf2a J\Uh[Dx]{AwP|Pq@X:gG 7*EJdj;vdS;1xO6 7+owJd=|.%hϟLÑ">Ʌ?G8Hzzn~ɯWyHCr [R z*֍i9dS׋z7''kg֊٘7FM̛p_f7*/+;.u9fpp`CmﺧDҹEُlH| `6:3ӏA-Tg .xU@~7/%klry߇ /B6?z`3aQ*?,GH#YAܛ^! v.%lnm'. ^vDc;{*͜-PD,( Jv"XU,ϭ4%a lHmɴg'6XK^76<Ѳ$v(v+\S&hS_y a MF>>q݇r-,4[# gf}G1V~ŵ>MU} Fveh:‘͜y1^|xx3FBHqDtTf,E(![I8Ov^7|?Ȏ #X FН'qn~śX+ mhbde<5̜>(V!#Faj_5Fwse֗ÓQw_ݐ~A*Tv5e"5-Υ9NiU-꽡wɡ7+J\`N>ϞWBu}%>.8AC/%*dC Vlř$"w.}[7ön`h.IkCN姮n^$T<,^uW5N[69do8ts`[/zr1\GSZeEqC}Ǭ?F_p/=n Ut;XGGꉩ7L|o2ǡBVvOÊU܎s5W@QlDDT]\xSSkjfo囬dU;35o^gOmǽN~\N1%V?xLFC>PbV^&| 5tPSR-6nDi>'`mpM/QNzl%t jp`!QmP2bod)O&GjƢp T+ب1V8E#rBY'Ô96Dpj(> ŹKw5! "BӻUҼ y)lgFYv =<:} RV$Xё,|"yZ`# 1 Ckd๳ 8A,BHŻ)5ee?N uы/ۀ =b9nkIVMsO"ֽ )1bxK>t-LvvMt9yRM0 kb>Vr2z*E h{qsZ6b's\w,Yx& GE+U`k lHW* cGdD#Kн0)[1}ϛ/e_ @s}X ;8#.Ѷ ُբbE(0L߸E\*c2讵yE EJK^wJe_m$E+3TbRse`jf8YX".y#17S|}>eP#᥍) mӎT6QY]ӁB B r{elOld.!H 2%THʫaW4W8L<}oOT#J>޾TT:q*9Mw*lb>%,}Ou}x$},~WQ ;ע߆+?vS%⬷P8yAa!M39Nzj)zX4DjbTo';△]zú9Rv㉖#|l'S{ʹu!scjdỹ0ԈSgŗkLrMӜғZښM U,̗]4}Wt{(s#^~u~ U iH!RW0VH. TƟqeN$ۚrf% ?֚0g\=fé]e {x/Ul}p7]Ƚ{KsRͤwR[f E%O< hNUS pJH0O.+sEWY!؀EPŸ'$g0-ie$}Y.E,em]$\x/ap _/sWk" pvMl9Xcx,eُFFjwd]4>Ya@ېY2&cW6 a0çF>MSft /'RyEP~b<^#ttIQ<ݕԜmϕX#R( qjH>Dk [[bq286Hhw3SDyQVu+QWVjh6lRFu w$4e "\ij^oCU&iOx!xqEK@ŊI|C0GTWV^W+o.V3G; EAТgCPΚf!wFrw|S* plb4lS) &|l,Թ:E7B2VJ1(m)_V E oyx{;B]&#Y9:|ևn_ n(n\+倁~ x'?S"` zY< -EY4)0ܰIAR5"Iu6)R >Uɖ-FeLEn+Σ2W%}>VkSlXdEj"s8iP_Bּ& F]p4/n@W7GȓL ШHQ8}^ȸVIf]0jhXdލ(S/CzV>ո.inF"y(* T5tQ?x8F=nϘq;,m_5bܵqM-Zq7tJgHir.IWVdIJP;Ef*2>N+F]~ٖo|?Ou',s9:_Gg[9e{aJǝt o~45pwJJ,,Nǁ a %oD*\ˀ?BL84&Y֡ч\būwx"bC+0 A?>t  c7wvq5->;%b ;'dh%Lb_:y4"O*E<؎~b)] ~܋Y==#ы`E])La,c4r]xXjTX\a"xjCM|6"%]Щ#}˹ #Bw- ,Xm8F0 lq}gKH_8߾Yۺ8-A |qKDt"sk3!Vp˕眹Ϡ_DJ3"Wؓ1$}Mc 3+RStQxguP\.5`UFWGR"g9][#YZs{Q8)oFUߔ?jtD%iܒSɴw ) dewGOZ<'n,9jQg^oxרxcV {\Փh)/Wˆsmu{PK H1I' ; nuvola/48x48/apps/kget.pngUT eAIPQux ViT2bL u "$bRA E !"Cp(aPSJ֢R (Ce2 H) ߋǽgu{Y{qf|}"¢u,]@2c@u.TLJ}bLʯ3*1"{4<6`txThwX׋ At 0KHº͋FDܺ_Dm"myۆ.m¨ >sf9 Qo]Z<"wuB\QUqQzf(etr+ 5#D??3ڕ79Ep&BVAB֨q=c0;$OΒ67xTz mt?C@Y"6?lV.4^!P3C$ IJkb߿/4Kd@Ƹ옫uU ζcNtRv"ޭGq7NyyJ;!^ACaE0$! 5K^iZ8MA?þoKGJ&[8ZD$`@k˫yb- ҝ]C "s@H F%|e A=[]ˀ ٳLC`]K~DM_];f >9-^C?-ЯE @Mxf90nuL[Q PΧdR%pYoۗ)zұq\ ?0M =W-DZ/[M2Ll֜fP(?kH` O]>'iէwf_5DAR"|靖( 1> ;ս+pPAע:j%QdϗK \ӚG*pFg9Cm٣#/~%/S;%z8_$Nt̍=6Fʌ  {f֕poM*A6GfeFg gjod] y? *M-pB#*bI^9`&iSTQ-V U,W2Gtr?TYZHhיD9I0IОjjʚnP(<MPW>c:F|7_8C[J˰|9IKpv#]Oy-[RӹZ1p[zǙlCVG n~Φsݛ'U 2\`y vL| ͯ=t'Xf%!^]Hqݔ\G\zT2eY#0fCkz=9_ЧgZS#ws謦P\Jm# O!Iw,HWHA;2)'GW/Nfsu>22UO>ղ6/UVzzќA*/8 _I!=@~=@_.9V Q(^}A濷<™ϙ:y琩Yɚ7)%{Scqw|!ҔYg,)~e[aEPX)Y7A^Pu6߭1 2Ex,nB+'HS~gxklI'7rZMݓOeRm_~0a^Yn-/L}8SLhh! nZ#/:!fFF4W[59񛯜eO} i89?-}QZ(hݤ!L1j8T.5tx,HK6LmQTݻY/DJ <ƲlN{態VLV6 "qR&P|QSWWWC]ԡRҐݠ -,,R"w=PU"TF 4NI>~D' "## -[]zY=N #ۑui3]<\/ރҢCZí̕E Gz.PCXcW3ɟjrBtZZPm jjeϋQcV'ʗ)S.85z6'',a=6[ `[{>666WIf)yGbxuZ|XȵwQBy-VS~1$~aB1ΞsNT&u=,WEH!^%TyJ(`yTPɜω>?njb!|FAMzo5s ؁)?% 6 LbC6wT6l,В,cFsۺEl\*f̻0 zJj":i_8p-X,"8@Οn8HH  Ƹ5jk&"G~;cS9jA[aQA/nY՘2A8vLE޴(uH }WAf mD"ՠ ;7 іn` /N#\͈ɾHsil#uhqPj}USwsz9Zg죢aZ{9я¢ HڿKÈd rl fNDې~щO~eD~1/rloUtwݢ|ۆbnE jKc2"t8v!@#HjBb>hnl&b1*J32)}6/ =Wd}XN)!7_) ݻz}[6"}+oXk"Mڕ9wǚm͇7iBl +l.w˹/CA[=Fr^NO2&$=鴜|.@*YfzT,Og.Ցt?l!w87ɅQXހ<_R :s1 6Bg Ťbirvrt{dI^"k5zzz@TTI% :ײ/h]c&cæWG(kU5a _< ws+'(9 %d=ko$1?-Kˡգ/Y k𻆭r%՝#7'i9$ 1bA'sW)8Z:3MVݙ@:J0NkjO|?Phen Ϟig*ΪS}NA@nH<Y]>+1DJt'RnE(\ DV [-#.mqJ3(H2x恚ߤ:џtˋ2zoC>~>יt;$۴Fr fnQ/[7#6 @ ]ĺi:/vSSUIQOf_ W %g nKKtS \ґ>fFn5pW?<.zӶ͛ EIZ"\k۷[Ŝ]iVGkj;.۹`76)_A,NGQWW:N=O֘a07~LUbQs7 y~H0Ή'&H@:>QpyO4!Rcl˺s2Vb|b wUw >T!SC/jtZ! Z< uniwmNqqf)K/Ιy#^Cǚ A챷oې$uȺ$Kڢ*3A,v~Jnɏ%ܒr~8rgvYzY:/[] 2|Z㿫n}@ g,Q{{{6bJ|dt~/ N1^`$-QEc`ur.fdUwUzi;5]>H@zڸ3 v"/defIOcuÎD(t)l>cΖR¿ֶUg{*d^*kh&Ԉ2z1S&.w_Y6Af5W91qU5Q5BՕ/OM{$X܇Ct b>wi?Nkv,ЫuG[DMebwkfƤ vgۜ}?_qz+WcoteS?\P׌f}b̒+p]9Jkr#ǎjW(*sR['U jSkRRRL -=>pEnquL$ڵW GA㾹^U$ePH֠DPxZ_*oOڄJ:pD6S  OȳW8J DZ#yC{B|._BZUN9t׊qrUQmh0@,3:%' )Z/=6<^@~?xdPK&qH1pX Snuvola/48x48/apps/kgpg.pngUT hfAPPQux %W{>ygܪ\moT,si}2F1[bvG hQaAGÂBj s~ʹ=q_0LaD2H&';ctԠF)0Ic>*vӾ uPкZd"6-+]֘s1Wրa $d|ia 'ʪLB)nZkI}@&5ecrW,ͷ,+l5{ = %(nwY8crكV:Cf~QYOjIf٬- L[}jr+b>ɕ$l?GJk08!΋:=2C+MR~{"{ޅz[@}Sk-3*pfDr3,U8tv}m̞{s t`1\k'hn%dNYqU̘ʹTk 46kTPBL؊o:qFw\>**Vumڈ[jnN!_5sh8hkZdɺw#q: D.\@(ټ*'TwҏYf/&I^|Tȧz)e]l>1*{~//8c#£Y\xw4hDU99W7Ru׶R2N#G *!?IW̃iaOPP(Nv4;CY 'IB(QcLu(z&Z7+\.Wr}czjshX~mC=a x t\6gS˕Ea0KڵrCAK͛Myپ<WыjPצ`V'@Y?",$:=n Oη1G ihݯ(MM2QCNαcږm?Կ}P\UfPS]}/|  V|GD<3j$k B^ [5wE;ǙGr[@͎>E&eF+Sꁄ Kz7(߄RhCLn9n6i9>F8Ě׻`d}t4<@LfJ̤s+OSCZ "P3E.ڼlk5wQ{Hmf\&;01MkfэpJcP˔Pfڕ#Ѯ4^@)(fнu[`ԤPլx*5Žтz47$/T\@S_KD] eBwf&z~z/4}K_&赎5DV9?@1Ə0/=Z~kohy柫y $[~23u|<1fGv bkCƒr $ nM֝İG)2;ƫ{tR"Si͈(q˕}_~>>u$8ly\mxލDw҅HX'UQ:s ӧ`\\ ?APVeV9,[]-Ua5H }lqnw O=7F+Ƴa|n%\I079jhh6KJ]$ ާt("Q'Leʴ[J1/*EP4x=yE^$7ԌIm~󅁳i`yIB1_B(?>E pH e`[ zE8[Mp`ԶQj\O]"Qm׌L"{jN懭T<% Dx*EXv|!7WvmAYc b)UL6.B sAzEwrq 57哟q/4&w-$_ȻݝEkx~ t+J[^(wd`s$ss9S%jmRG۵ b 028y*I*Wg*A:jLDp` # tS>}eڈ?ee5~+j_jyI[yM<5U[0h ¥ u8Dq:zC5POD[?'\*VNs86E7JY{\KwoL ,~PKB=҅| U*FӻY3mLL} 8$?sY Z^/Eyz`-ֱMEʼrR??7ln!~*vFf آ׵eʅ^x޽Pov)H }޹|UN2*5+7C7FO|1NIj9Ưo%NXlSOOcWi.2 \pH e^ȕ}K@Ken#D$ >|Gxun-MT\"秎 aGMw&)B «`cё`? ˰OP7* 7<:{:qM Wβ>>C$3DNNSnP gu}L._6+䥉3kVRm ,y/@;G;I.ˆMLvʺnIa"5`~䘒-c_XIڷcOłxֻ)ӊ߱I#Hc\;h+;e Ek{VVXG` YlN~GyLI:,6 u|KeHo@C߫.}KuC)29tܬP>j9BF = J@LozN[uˑ7G:.Ez/QЪŐDS.= H!nzBmȢүCد3 Fkf8BBzԞocOLC{[p wDc~AnэCU@/Qqq$],)3fL s5ޑ1sX9%b6H$Ȓo@~vBRcriO i&&&M$3Q0gמv'+L)i߃\_S͉GENFeqҳ>X23'Mt."<BezT[<)^׉0$T ` _hکo㑒K)8M'E #hZ?ȶ_k)f{ga/ӆh+XӠ8*(̶wo|ZR)D( #u2P%]X#?e;cNI-m[PywGӔLY/ ,\bNI`d9Wʎo]Ʌ4*\-YG ?lNokpy>$U<=:2ކt*~t)HAw`^L3 iLu'lh5v*?_[p]\kG Q# 猭ND-C)/d"8[/Ht׌|b|T9|@奤5X}w[8 ?ڶNP$ldmbd@ N/NQxT :hZX"HG*M+DR/s`9I>7MboRS\}0k;Bf9M/Ɛj +]g7IgR*y?N.*p i|(AZQ(9Lq.)vNFljyٞEQ`2CfZHV䌬BYbFikdk`ܚ󵲛mc1&!At>υƆֆ0xKȦ$tbN%C0Xm:ǨӻNƜX-b#cNt`-g޳4D`V0S?B݃IJ|ҿx7n $eZ|^<,v$OnMLج=7H{N9Arcz=_nA`)i8\jHV8󚸞}f=;5{ 4KN@w@%w H'd}ƍ~R"bG}$ݾ'p=Ϙxc&Yק ymF.&YE.Y_ rmraohl@t&紵xsA`vMYja`%Wmŝ_LKmǗW$"Eg\ q5敿Np!P|/_6oqBy=ň^"2?unΒ3)˾4o|lCܼ 03_Ռ_tp;pV&ѱ ?1𕰇R1Ͻ(gOX\nlJn>L|NdS{rB? Zt';g^3<֯ex7[7p7=˦q{TrznNK0VI8"sO&.;깃C1LfrPJbli 7bn5pbQ'n1lvYʀ.I'R^>He]18v`kV$&Gcɣl i[ݭAu63\E8xjx#3!.˟`?5G)6Lu0+l\FgNc fXQݸ(yf֖Brnل]pBN mB㲡r|~`S.*CI6ArG4/M3h6A#PF>TApH:`e'0YDi;]Bo ](L5I8E_HF RYiu,>46bkܲ)XYZ(O8&cGT},aah^ 2ƿ(~7~P|rɼ&7[jFG4F"*M%3Scv,NEmREܧJB)̋H  ;ؔ9f?bārݠQvvs꡻f:OCJ``樨)oI}?BgA]36*}\aDLb@b(hogVt$'ż@-)<j[_AX6/$m3$2m̜7yGGF2t~'{|AH7+_]DU鑏 HCP| DL1sŊw>|Io;osI=fPF,VR+AgU 3lb gj~SV0]"Wk "Q R} TBlHq\I ظis{a!mq1$4x oqKAd泍9y"gh9vZyRR_b9Gp+Z+/TV^\+: a`aF!*mOI:%""-@i8u{dhݨCMT_d4)M@"ZfJFDm0AoQHq3V;v7xa/XsTo^a 2H8^IڟI$dŞQQ%I(AYt,YYK 3痀fa 18Sg3e0l6;nB=8"d3#VE,K𿅎2cۤLw;g>Ie ߨ#lJfb#à W+_.NB^\QI7+<Qii|t!3JW2lN"(IŋK[зH]ʾ@VwݮaX?r~a[LdXT&#(+U<K2\ D^<%9 TuD 66P\a/y@YL\K3CGS\u2 iS}]!| ML|{c϶5 ˾/h{ν]CRow) Tm')Y{݁1m0Ecp޻\k9u%v&/_2 /do,n<sfqט3l@gBmޟ8A/!hC{"k胷L[sV7e~Nٟ|%.nG$Ȁxk=GlљҢ9ŻfoIl#LaӢJޓPuZ?F1 @>~8IFR~&h܏@BaqlhSä}mXSگ)PM$Ij UxnZF-+2)J9!Ex}K _~ݤU)WuR;*|2V_go3 lR!nH̹6ѵZ1rxʶwu౱J++< 4nASUJ?!ښץaiMt1t,,cJ۷Y~U魏+N%@פiMD+g] D2Bρ N(3:Xhܘ\t6>̀L;'o ;11Ǔw1̶Xmv`&Y>F,J@|$Fܾ2]խйnf!ﺮVс}L̻{蕘bJXs-RomNs0 6x?XjRm-5):Z*vn4k)e=>Q񃬻xM4 *&Ike:3rdy@W7A.OaMu'bgdmsF#V(˫??1b0լ$/|I:֓!_<`~)>5HUmcyqb @(LiP;僺'YUJYwj\}?CbAi)Dž[1:nѱ w}m͈"GDہfUT5/_z竓aoVRsGkސMbebO4 "Pb:ԙdC b_m%6M^Y xgdVm eݕx>} FmPM˨@F6B)ԗ Zo>V-D_mMS4 :%#[ksQJ!kǾWvʢjsJ1[ha~Ti˾AKIb4*GVS!X9dO{rKFM:e"X:f31Hp]`qZq~k h顓e}f9V!A9?+'m.8l =KC$ Cbώ&)L7h*֖6=d?PKzG1{j'a!nuvola/48x48/apps/khelpcenter.pngUT eANPQux ]Xi\.( R4K[L-K,ͬmbn7bhrԼK- Db̛9sys0d!7Yaй'mZ*ukl) 'x|qG}t*`߮1j$ By_^  +Qrrxdg\[x:KGF$Y( m~v#Lkڛ\wzi`U?sQx5 !g}JTwc y43COOɤ?P UVR`rvHOP$V@6֘9ƽTZU6z a qux[B"A.'M/+H+KG(sr_JPP j*ǵ/ P:Xnoψqm$EzwnB62WMt1APKT$ #,*džc0섌_oSH΋iS8_Bo 6pX?wbڵjcLċ($1U a AQ9!\Mj^Z4n0D7Va{.Yм"1˗b[KW17Z)J}BZ΁ӠˡqЃǫ@yekT`g*p!vV0,=7 f4b,.'`bAO`λju|8*-ZoaG0L78 ꧠbe4͋ݛ~BWHE%$3OoVe9[(3 { LLw#oߎȤ~.sv6d33^.|ރڈP%W.w/x8"{Dܿё=@$F׷Rڪygx I/$2(ˤ77@;2ⓥ N9<`p#UG!T?'j"4e0Ǐ,1*c0(Zil29Ύo -ȣurj^{5Q!^NK ?Cv5x++g\ŲO(+e6C]zqܿUQ6ePG,1~:iYp.͠3lU_Ō Qյz3:MwtU p.G vSXZԅ+h4َ8ũB`6=E(ewS Xh4-ET&($F\9XhON3\487 KTڟFVv*1qdQj GbV뚌 j~ͽV"\<kffMaSa]dk<{XEy3S?4%~eD36Z͡TyfM}~[f` V&vb *o2v?A{UsV&[⼿DHcyYqqZX`9F݉Q~o+;OQv\6vW \–y}\%}o!co #g%"~SG'TNnBa0jvY׳Ȅ:>ޑyZpkT$QLӎuB3OTd$(޲DYC7ɉ2% :s҉gO"6Qw+ZʥYD"ӎU={jA3ey;9"S!W߳3noB}|H'mi^>[$Γ4'a/0&~_lfl6wb.6f+*Ydo7h]q1,|VKVM[ka چŖ=ճ7ML !GTȤўP{Bٕr.͜!qgsN7 vi~Y8T xaahhfLojвcs}/#E(Nrҽ)wNq~NW7ퟖb3ڦ>M)AǗeEt̒uII˔s'V2rgʅY |MM 9HfjZd_u[`uUZ]J leς F0"?{Nۚ:FӴiyt,e*yfuut7MMwo6=a℠$``ƬnDC濼%ֳ(j^8B}up}XqD[޹Ja ~2c+3QG ģ'h"T0휤Q>"Cm 1Z}ץJh#q>};7ꧫiBH^+m-ՆF@^zks nC9A^4zSy]]^? (  AD,RVN!! *PCiE[A((D@DAd9_?^kyzw?+;",p!!H }v>K\~P`^ΈLJub\qPB~dq9VlZC7N}֠(CA0-^O}381SőyGo8֍v3 "J⻵ F[Ny=koQz"+sze.w>9= S}T1iݿ9*8x QDW$jCc`MgQRJ*%IR( +[z$aV͵U*`4)D0h?6*)187{8U3,_SBlBn{wO(Z[3ʞL|yz3پ_`g;u#0}} 9NdƉMފ('ƆDcʝ`jӧWQj:<f|E`f'f*s7].HܷG,I-IwZ&NQ|QBnwmRwW%0S d9Lke?CQi%jo< gyT18p/O{ʹ+w\W$+i8/G7} ׭n4o̰ #s>WeZ1@SɧGйT.W 'r p/IDmt2NV 89`f͸VƢ(qsSD߷T. XxlW<@*,(뚢I%h ^Lv%3U3*Si=*hĄ#}`G+qKuOF=:9fTo4- wŸֱ"^mEZ8s6E!LC?DcFM >>"T P;yp"% 1*m)-7rxD}yMN(hLybD>GokW2I|=sԽ!s*/%~oȮh,(;,$'&w fz[ 7. T3meb7 ;:QɥdA>'nXp猋f8k 7leD~,Xr ;@R@3pgk-A*] K 5$CQҍA{:j|IJ|(*`'dy&ʮ蚅% ZAOu@:AjLB)[; klӝDd>LV= LS1޸t'"3gP (t~1g>X]]`@w1+0 ˬ9[~rkK^cd<°m :}U+ـCQ&՚ף$kTt)޸F^撢P䇔Aϟ`;:h<ڽ}\{9M0X$W G\w"] ͎v\9+T?njU)E,2 oCZCl*_1f[e6O1IN;Α梋o3uz\İ_> `+~`pO.)Jhm%92J !S}h]RH*0c*pvv4RyGxՠ!7iI9hzI`pdB Ghޭ/3؛~~1h^9U}>}эO? MqxE8ۈCہ-`V Vu-OBWFhԜ(f?,g>f{?5 W AM`KV>*elK.`z䩲0yJg{'çY;F#EMkC E'&22Lm}6l//4d']9ywr$ Ab&2SY`z,'ʧ)]<0XwrʱD?Qi@06NN6GL8y5>^.&Ab/0ש>!,Y_VfM`(z޻8QN x?%zgUBXN=cͥz-oq_0\P$uPtoΜA[jf6щRL s0&?Or-{p9)d3<=k^ FNOd8x(&looRn)$[>D'N$%U8?HsH1[Mud *c5vʓR(Y<`o:2#+e,9R\hԕ*ۏ1c?xCoS ԏ;A`)xHp E%3=9e2B-2?T#!؋W_5zqMBCbR72c*i%@mao[qYn7uֿ XT)a/ ?m efE"5ZK-)!m{ǐ̒=5x+\侃B *si*iBCkG˂\׆VoN+>ZrՎ|0yoKimM_72TQ{ ;2}_%7k2+F,Þ&xRn&~=hT2ƢNƇ6z1Xss ?oT2 ;F_`^(j_iE 8xU6"?&&. %[R)y%nco[G*e[晹!IB^Lio 9vx/VqignPbz޿t% v(6in[m;\ĔJ5[13nL[[n6L@> D\I[.3?D.{[\KŶ-n ;˝Ť_ s X!Yye)Q>p^}uHaPKNN1!˼ nuvola/48x48/apps/khotkeys.pngUT tmANPQux 5{TR)DM! )3kGeJSҮcQNYjr,SSI+dS# >Ro)5f $K\]{g![X 3/5;ПsL &w/T75Ï&&E1GBFࡨ8a0*&69ۓ+GPz Pol7x[[qߩ&ӽO/xEE,_4a|0xK/HcñNRdP6;Ğ$~4~خ@| }dOj?q}_'vÑRP,M%O`.т)R(9sMOP MBJz[V=?|OMvg6kU_{ JxTzB.k>jXYA26W%Rn.)-Tt*cJ;ӰhNrU& % p8hLAi~y1z6ߧY:WzdWY550j~3\ KݞgPiN S)ޱGg NC.Z\<~ ϋ'Όh`ISz|7}%-|hڵ! k<ǔ7),>B)N,=mI3ɹsI֝B2nG۟Fv١>e猿9ţ7x"af;7NI27D]4#.v#>wtI ٙ:o \d:=ggj3 .h#=й#d:w~3rq!jjt3ua7(Ȓf8s!03!ϑ^ׁwB?PaQo/~*6Mٮ9 $`/>We<&ۉHzI";FX@H,wxsqWf[j毿0^?վ L1ȖYFήG8 5#eR-Z8libJ9As˝Ef2+=7fou|681gTQ r5hSɪKְ78(̺Fgz/_WyI&<#*Jm#XH{jKPhUą2Ȗ] -ƹ\WBy[R.{our.^-)ExHqz_J%VJtxu _,`"^`M>ȩPZ(L)O (ClfsV5x}|D{g1n&zL8|-O+ǻbeaޏ-(k+ҡ ,vG{efSMm$ 8XpC|8R? ۏ+ІuV Ny[Ub K/ϋzv4w8N^z @qX>ȳ-.{Q^F+WNU>[Io4*.emRRԲ=œU!~] [ E\H~ sy{m_ nwC˽XjZCkĕN]p "m 2EHKgZIK%nzJyW7z83y{rpp8t~aaĵ/k)YG8Fs2ikrʳ 0%N 9v}%bŒ ]&zu_ժ(d$bǁ_Ul#- U(Fڢi5't;v%8Rv#jG3=+27Gqa11W* !uf Nw .)tvRUhnY;,փVkRPgDPNވ٢]ʫӇ絓;HvP8e{) OS<حS5Ss G{Tski9veV24/. kI/:S[2}u;&*:yRԦ҄VvPӺ,s[:[({BS݌rZT#a5@ 7J:7uD?LZ>:Sw¨-cΘts_yzfJ>a~c7zGF;P+IO4< \xXPs3v9!ClMW|lN&n\pjni":8~$&X,˙tc)'0bC©^9;ƒNwE|M]qClDDdff&DQTP_W bxh 9t z E;A5Vf*$qX*ʅy'U=k[R!JIxW0NKC]l45Dn\!RwZ7Q8886l۪.Wooњ ?62|Z$zyD{E+V~ )V]Av(mk)1' 58Z3 g+|Ԅknki,y̺+|_5a=[#vF, A(PAm=|?2՘{. 9~s6<sSI]R };e\4=3aPLA.dג ~힂cwrIRK7##T5}5$|fjBƲw6r\wlcVt嵂v'WhX:ش&:c/m%%THv;SD9e.$x]É SoP  i6.B PG MUux1P~tV`b5{DN:7MMώ3cc#אHCf$ZӍ W:1ۛkH9y&'$iLaJ1N]E daA*"&`vuF]K M9sJ3Ȱ4c>y8Tt?z}HƬ#KoO 6}!F+7iӟ!a&F*F]CN$[% :a?X>"3̦g%<SFKK0<fʉ~ iNhW\ާ.l r*C+7dCo<]{'?v>։Mua}x&lPvF_8ӚґMPJpSe4sIcFQѡqu#G)A!ڊ+@N+K[UHTҠ/`vh<|9< i<]AftŞf9KG ͦ"5a ͚B ˶/3i슝|>J[[2ĉA}F$}xS=7[=H-<JZ|^ORlOׄG¡t9X镄.˛]$A('~FxI'9tU { VZY#F&_%S6$'iy*ěI"?F=:INvyt̋Qır"(\TDO6v>UF#,) >| f-;R]O]\EtTa5NtTrF%Sɂ./ cm~r.\鵤E ~L ziXAO'rMɣ-v((d ?+)lgg_Tq1AAWq~# c+˔vzkoM Sa>풫|4/ͯ AO("fV4w::DŽʗ_ Uʅsمљ!"Cj#oQ8FYrcϒK3!Q/*`& ?F:RSl̷3KnQ2뚒^V(W!o]喜'dg$S1H&x{5*}]3kwcztGï}tӖjy)3bH2 O54Uqr^e]j^uVyWSwn^";a,|9A-*j"{_jBיX'"kǿτdW"hIAqKN~=ɲ [YjX+˻P ̼NŒI2GR!(sA 38v$᳻9,Doh-5Z u*ﴦ噧*qqky Xw$@SϊћՅmT?v>>VVJ^ 2;P!*3+&%ϒ_dc::*&UKK u0GU?ups5b%I1O.Q_[ }XL,ѽh<獩#l}ù8!rZ1:'&;[Dl+oF&+qTnw.~7nM^$Y\Ufip⯀U[C93 4MVo:mjVH#U G:׭ rj.\Jg<.O@(ϽT7v$nwoWƶ*f,\E~CGdh<?IV(ƗJ:TJճZȒa"'߿FLY^7[l9ր4g8{$D! &=&Ʒ/ؿ0,H[ m]vSH`߹ni4I=&{84r]4/ \8)J5"DZfdh}fɤ8ɑWԮUs).ޖȟTi˒ܗ=S1RNA Im]S)/hN~7.Z‰Qr}JLLTS,ZOڅ,no}FQIݐ4J'a:KFoFr)\-Ww)t0I>Ӷg#kY j ]`I!oIn}mdwh{Rrm-HubKw^fm-7~ %6X'aJFP4TrԏĂ=:i7y2SO…dyV_ɛ*D55%ϫ ,^^B ~I2vZjf3uAbҷ[>bc@*-y#c Q&11.ӄb?mB#XJX [݆B7G]?]xYt pj rMHCWtz|UX w+)~9~]jޯX[FYjKydOYV#w%6:[nj.Ѡs>Gv=:Z'oA~T#Z4lͧG$9N+W[ix`Lo724!ĕPKpH1; nuvola/48x48/apps/kiten.pngUT fAPPQux ]VyXSɅ@!  ְTAK!&,d J%U(j ZF@w㜙of,7SBݾc`&*2|LI9 w#`bBFLOYfeM`d&1PR s3_ L6@PX S&"hݝpbhuЕVBl)eQQ34MlrlKp jݩ?Ekͫߝ-Et,@`e_t v[K(aagy")^QQ)t*Ŋ Hb0~,?W%gߘ{um98Ǡ*UoRnv9pޱ{A3sHs;;ܺeaFB b7`[Y2aXDk  fEW 5-ɏ thOsw=~'o^;㺏8珻4|J֩0yIIIJ*ip7cΧJŎ N%ȭF>KG$}C%WrkkB }= 쥅nj,nȇl~}~r2aN#{kËH|:qKkׂt^=)utMAgG ^K'R_׷niZ\⽜ѮքTs3E*k36t:w6dY\ra eFC\aoy3*d'dg\ !L|$51G|yZd ~CPgx䌢/ƹzq2}5~uAg<SP3\^PM3&/H5^I4|(߉ TM#"ڧ">hN"hiCX1/c@i3ܟpGIZ!Z41q|6Id|չ`4dWCrDF`_gA+l9hgg)u =O|CK%oK_>XzPLvqo/<h&5{0s:b} # np<'sfus%pڜL#_UA %p\#r|l9;Kp> \G+}J%Zw/:7K?F5:F̙&ɡfTϚوuԄz{g={L/_~${b`[?@ r4cmw fb;2KsTz|$=l3o0CWYlPzzz bnkqq㽳g֕\.yիPxgxϪцlqa"8UIJW ulz c"G36}|mEsb;[=7=M^L%d7mfܺ ?۠\sʠa<~F 6/\n˦Mw%;V aS"2)g:>0rgΥDĢNYhzxC;܎ˊU`u!1\amG>#$z#Tp13 %I_=u.@R>UWUmK w3V yv*;f{s!x̚4FJTFW,F .FVSZ6\a k^\\\52򹅥OK L&^Ȍ_4rɯ8ȡ-ldQmC[B\/OUW^EfqHzG dyD%5*,OL7rh?pʩ'߳Tw7GUTZ 0L.A  tDm~3_PKt91>ARbnuvola/48x48/apps/kivio.pngUT gUANPQux W{<g6eITTLEyC739rH;8!EªEW9T*TrN[?]|s|櫈G,E@EPJo|֠xĐa@4#r 9# 4~zQw%g`,AR 'c`yj$_3aUZ)J_X\2b*<[BJhcBJp9vY%ɴw>DJ2T*[0 dw?lxӰBM=%}];)l1+7N"!F YVYOcƖCX*5$Iq,8UQ? BYBC uӎ܉VɉqgPq\տɊ FsPFL'6Fs a Üpue8߈4w+m5,6k/z1,SPBVYdŗ K~5m+~\Qיsrϱ_^/9F?xݠi`Ds6*哈,BhRfPD]8נ8ԄY>?S9t=zn Ȥ{!tCH? Y (lF뻽nqcߥhDMe,ӊTGuV2rA'˝ǒO7ыл`ZUL5I֤u$RGn91+gDDsEF@dS,ALU/C}Yi_v`Co}=up9 T2ڍ)DB}wl߲S!$3 !ޮ ;OsLsgioR}T( vfǭw2Qƭ h+o*pv !}[Heb7@m3#|غϣQڻ]cn1_BO!15kxW<@y,(p\ I]+=eػrp8KcyqWșй1T=`!f"nb)piI(t.d>+Tig mI}?qqzi~Yj RD*|nkWB<:X r@?o_Ir_JJή`ў$䗍{k:@B>u+:]DzpA70u j?~j\3D#/'k|gV:X \/zkЗ :ݑ{=bT@cpLsvxIzVVlC4Vh9{2XTLd\q}$K>Wަ278)D@-.vL_H ^\9iϪVb_ XTYʙpYXR'dVݡ5qN)d$YbdZ&L8kU%/"aJv*SZmG(r&{ ny03d_ZX{V*yFd?&_M:pErQ\I)LyTIJ=*JPꩧbT!}~}}_~]~]}﫫\ݭ~A{hBzш@U'$0bEhQ 䭇"b#'Gu7-$/RA^Mtk[G17#WQ! G ?gPGl*ɔbaF~眢49?ekϓห{0 hJ$ҩt mp\-= C\U<`oݻ;܉?Iޮ?f,*B=12ك)elo2dYoi]\nn) hDt\ 6+l{wTRpGxD[,75 z.8] o;PZwS"Wh+كz dߞv{^3:IZ kb_cůi}[lUo۶ͱC;#㛃ŪIIh|WPT2R2Xl+6IZ1R}ĤLS^y^ʫg0xD_bBa^Ma6&N>2(!؞.A~߯6-,On Ӿ,V|jK;qoJZTzqp*AD8޲TJ6@u` 4~}1EeVV+'?&Zk$hycclƥEF%Ó .8"Li״;/Si9*UE`?ej2n1ޯ!+DGRYV 'rA.o6 *I^D>ϗAS[5W4a5?wx//'1eQuƻj4L|6- .~ wA "# t6<()q'4zB/x_hZ\a{EsKbDqD0yZL6&d5OKEL\X=YDD3טjS<،De]$ordw<\魘y#[[5&\kb6%uHXiU6#;fN顜uYVtW%6h}DL׫~؞zʊ @PM.n2%?kceq%o3]{#o?-X{ne"l:"Qf^zd},׷;׭1pRm"qOxj3&8ABbOy#aFtSfN2CX{bg!IU?ɈU͇Ϟ؇B]P{Vߚ;ʌW#6Z-"HmNJ;ys?ݼMGOmucn ]X_ŅTZ6.S?F>a$U+)ayA49 xP:h.K13kC *6Xl3 jQ'k E$ KN IW)?|jACOoMňܗLu3(TJh(pT:.y;m7byt˙kםZZj`릸A]MH(q?[HmXzo3;E'sCp︛ZRrg*&CEWTGSGӯitzEJb[74>rn=T<>1g#XB"z+DâYA-89ɑXU:+`6sYzמ*GQulr{oĸE"XT>\\ _H^I$B@_ԥ"vtH]>nA2#{yߏ)9hȟXct^Jbit( n緎f*}(cTߚfay'#$@B_%xqF " LyLK]Bs0W t#`%.Ӹ<=e 3{ <LAD>Tz' K5B|pT\`aqn.E|ZuZwD`\EzspSΰw/v!m΂/LpRDή?9ap!)D2OxZff-7!ڿ1A턽h#(:cd=TzO{*p%6> M sQ\f.'Fmɰb2m_\;G6Rumm_H /M=zSKb^Y"dꪔkSp.hHxJ0NY1/s+/aY#-qL"~ 9 Ն˺3P>Gu_$~9лu)?_co ݄g|Wء$O=gLn܇P&9q38_O<%cz0~y0tpͧHj(Royvlr1t@~vQ[.}PKKN17HƲ nuvola/48x48/apps/kjots.pngUT nmAOPQux %{<ǿw7|X؄ cl3DuXtiCW8ˉm&Q.q"N։.r:lPB;:a$a~?>x|(˸NhG]8[ S` qpRy=o^PZ<|jIX\mDޑԼ6"^uutZf3ñu؉kinݫ=g܄\,wV`螴8Ǎ!m(FZOM@FϕAF8AMs1Xdz!"܀u) ġy?y艺oi㑼 C&ʼ_v9ۨ+@~Hݯk/LI$'X$@dsd+X>TW| zi }TT4SArkxIB1[\yKG̯+967 | xsB_Ѯa6@3y/מG˓lgO湠NM]MB7yfꡮ1̆]jT%T "gOIǐwEw+:cvߩ~k8 r|Otʯ={+}P(+3 TrB v8)1kgNy5Zu3$8Y 8qgb ۓ獜!aIPk^5- -ypI \2@kp~Z;$O1Gg"NZXA:P a&NB^;#e >)$uk.w"3DFr Bp'ړ]JX%cDxch:-Dz0Y9+y;?rM18=\Q<):W ;`ҴgНLgbCb]I svA!4QF`a58;uֱ/.J2I8{o^q.1o2x !j,I7C'G]|=@eX2bn 0wȧ%*|)a&Ѡd+g |woƇQ s%FZ3"zֶR"(hjl-9謁M8i8 [z߳{IVgb%YT@tuuvo?&h.` ͣRZkWJ%Ơ=Lꨲ'WѢ(nc[F Lܗ""i%"[.Q|\ iBn#.] *\hJya}f9-:iQ> ܟ0a1,c1A끽L2Eˌ^^APIH3ki|o'3]FV? 9e#[`Ӣ W`uǂM#vK؟kۂYwn#o=,O(Tz}ƅnL[砝2[Z$--ortj$)KlB 2989VtEq!a%!6 =V;Wu%Z?fcP-jJՌ\.eu~3'¢y o3kaZ]7?|ژJE]D"ܓ $Vr)QqF+=Rl*an!fZm!^*!Lu͛C ^H޺--PNyJZEb*9`N>R =~A0ɋfGIAXۿTKNh!rk׵#.^3aZ[35ww1+7QXөjo汞5cj:DҖ(gWQT(z{m\HM?yOI/"U[M4 \ln|R;ΜX:nnKLR@qfE_#P)L|DL[N9|J{F~mw0`r0Ga[3ӗlY6/]dŴ@YTqgmC_ɸoC'RHwt]_Ϡ썗)I+g)=} Қ?>1*# ?ڊcP"5ᲢaS?ۆEs˔?q(ăzUu[4^BEև֡J0i@3{(VUC-:=v-F"Ӗ7,L!TtLZz!!pXbz#2DsG$  Mn3؄F3n$sL2[¼X7fu++'CCE&Q^EQEū"0נì˲Kj?Ic3&Y.VqxW-oWܤc3.nDzqg< Qmh SՌ}ش<|*?Dtlpn]/)߿~|D 4[.Gֱ?_xr7s=ao wHm,v3f?FUZ^,Z*},nۋMB?/6Va#a%xǥس=3׬ήW ժYfnצ+W84jÔ\^!1%|772PV=#IuwYU ܼzHH\`4D/HIY01!yEjLLTհ\)jk$ۗH[*QkQru›x?s23.zq4G3koܿއG2jZ[}^2x 7M%~gq|":;:Qd|8Ywr I[ (yB& 3Կ8PVs^]>.>0MŖkO gGS*ғW1ĤX c馦_uֹǦiݺiiemi"8)tf 0&jЋEup_MydlY<(1y#Hz Sc*=# ѹY\اjqqd&1)x7]P;# ?p>wB}eL|3'YsZ*&q" uB p4K+ps LJj?␴EnrMUxG]^(KB]  GHBv&wBM5 " (0I1Y2-R^L߿XlkT4{[ )G/hyE0#f^QJ`XBĤT62o|.JE.;Y,>@2l&Es#DBn.B”m_^[A_?Q <Fͻ #A^3xog68&#Pz~g.\*RJ|v;~Ncl 3D=*BaʃT/ы\x'; Bm,৵9u?0l߹5CEƄ ]:Ñv2Яi .D|\69Xc- ùwb=hO IDATxye]?{~0Ì3&": b5,VB(@#hA`cHa(\"b{€0 4t~ws=[?;{{o? c ~FSO\>|BY#\X^Iny 6mjEgkxQ> :5d'I)\ARvG\YIuHbVQTo|ytWCmm%;Rόuw%SWH%qxғ$ ' +p+I:HE8RxN B cY{dOBp\-r`Ϸt n B'KtA;&{M8s\~'fp?|{ܾ+VE`\܃ܾ{;q*ބ Aqqٺ F2zۗW%v 5Pݰ :!N@iK Z?7*42BihHH4 24B҆zٶ6^;'c1Td`7U0SƋ H n8ZĽoqA2.t%x-mMIiϱ$"_y+u&{テP!8]nwb0(OYy 7`rlC:'Vo|*n,}'=uykM#R(>+/WƲJtq`3K@(0MP1䵧B\a?|c /6ǦCƯ{V,Pd \ ~-Zaj\i-V:#,Qs?;.N™[tmuO?8&̘E86P%o 1 ZYh>3 f&Q/L9=\OB>};Ζ's\U Jt (tպ `' cpؽa#)  E:&׭M{qGr*BJt=о& kB!ȕk g[juuњthh:)~accד,LEAթdtH4"%1])6k@nr%Зb-k從]<&&}JwE5+d>P:Og}L#/t*bFŢ^g !J$J@S[lzϾ9vuuT q%mLaaxV**DAJk+X#0ijcsE8"νD*p(s>w}r+]DOpBE.W% 4ԋjع ~2 Z hL|A#?{=G}^`u˹Ə#iCFf{LNMR\@Uc Ha{ ߦR4Yx}Tj C5~2ak16D+9rY|?ޖݙ$4I{h!R=¬J'@U:䭦:Zr#c=f06Qq7H Ju96oi?萾͔7~ΏZ${ B!3)aJGXZ $&[mK1!4[G o[A5j u:It`*Xi'Kśxsߺnb0ɰÆ 4*85qX,;iLLT)Xi0Ys6\y|Нu{MB @HGG(Yw-_Aa~LlpМQk[a/|rn8mH9;A%灧[VЛZ"9` >L Єf#R) lxyz|KuqhI\S5|pfz֥qЛS Y%L+q&*uXquصEܫ *:*weßݰMӮ,@cdtPXq1 F2. xalcEʦۨu,>/=&(c }0Aϰ]/<&J'R,+fV0B(O0:6W(sirϣR=$e&(tQ"%*,^2q9^Q:*[ ٟW;tAK3$?)ʋ-5/@T@d{{7:ɃI;)LyTIJ=*JPꩧbT!}~}}_~]~]}﫫\ݭ~A{hBzш@U'$0bEhQ 䭇"b#'Gu7-$/RA^Mtk[G17#WQ! G ?gPGl*ɔbaF~眢49?ekϓห{0 hJ$ҩt mp\-= C\U<`oݻ;܉?Iޮ?f,*B=12ك)elo2dYoi]\nn) hDt\ 6+l{wTRpGxD[,75 z.8] o;PZwS"Wh+كz dߞv{^3:IZ kb_cůi}[lUo۶ͱC;#㛃ŪIIh|WPT2R2Xl+6IZ1R}ĤLS^y^ʫg0xD_bBa^Ma6&N>2(!؞.A~߯6-,On Ӿ,V|jK;qoJZTzqp*AD8޲TJ6@u` 4~}1EeVV+'?&Zk$hycclƥEF%Ó .8"Li״;/Si9*UE`?ej2n1ޯ!+DGRYV 'rA.o6 *I^D>ϗAS[5W4a5?wx//'1eQuƻj4L|6- .~ wA "# t6<()q'4zB/x_hZ\a{EsKbDqD0yZL6&d5OKEL\X=YDD3טjS<،De]$ordw<\魘y#[[5&\kb6%uHXiU6#;fN顜uYVtW%6h}DL׫~؞zʊ @PM.n2%?kceq%o3]{#o?-X{ne"l:"Qf^zd},׷;׭1pRm"qOxj3&8ABbOy#aFtSfN2CX{bg!IU?ɈU͇Ϟ؇B]P{Vߚ;ʌW#6Z-"HmNJ;ys?ݼMGOmucn ]X_ŅTZ6.S?F>a$U+)ayA49 xP:h.K13kC *6Xl3 jQ'k E$ KN IW)?|jACOoMňܗLu3(TJh(pT:.y;m7byt˙kםZZj`릸A]MH(q?[HmXzo3;E'sCp︛ZRrg*&CEWTGSGӯitzEJb[74>rn=T<>1g#XB"z+DâYA-89ɑXU:+`6sYzמ*GQulr{oĸE"XT>\\ _H^I$B@_ԥ"vtH]>nA2#{yߏ)9hȟXct^Jbit( n緎f*}(cTߚfay'#$@B_%xqF " LyLK]Bs0W t#`%.Ӹ<=e 3{ <LAD>Tz' K5B|pT\`aqn.E|ZuZwD`\EzspSΰw/v!m΂/LpRDή?9ap!)D2OxZff-7!ڿ1A턽h#(:cd=TzO{*p%6> M sQ\f.'Fmɰb2m_\;G6Rumm_H /M=zSKb^Y"dꪔkSp.hHxJ0NY1/s+/aY#-qL"~ 9 Ն˺3P>Gu_$~9лu)?_co ݄g|Wء$O=gLn܇P&9q38_O<%cz0~y0tpͧHj(Royvlr1t@~vQ[.}PKHN1*S4Znuvola/48x48/apps/kmag.pngUT hmAJPQux %WwXS׾ @.") $,UWQ\ "XB"RT, +(%р`\ A@)I/y3sy9ScKcLmݴSo!Z?EN' CAbA~?Į0VaNΠc AnܶKQe 4]6~n5fPw)%召 ߴ?[ZDTJ 91kruZpxQ3@&-5WMOHMrjC7D ]^,dJ(13Wu)Yy<4/Rs=SbRܝkkjj1511 v?h0R%qH@1(:ktkD~ R灮 AY~I$.UsfqooSV4?Lg*r75mnhkyYyEЖ:vI0,/,%gr:z-(~q1,*2$s)`;;%T|OIgZ(ƐPeT*ï\oaixvQrPcyu0251s\wtiTiҟDC`VdFW(ӌwL0@zblCU˂l{n#(yEe+`%!]{g=Y1\&Ƨ[M9O ЕBuJhպ8' ;7r6kFS;Meĉ r{Qw{1a%""z8VlOzglܲA4,դ`RI+ ޻%`Pl$ђ(?< u,ohlHd)zn}Xa[\t{xL|:ϰ+tc"db|;i0?dO1&Ixy'1MYnO=uh}q/)ܛŷՉ ur%OZ w_A!:FnHj1yH14[Ύ[u]*OT#<: ;}޸[v3wciW=?+#ndA' ?FU\"۝)jpaV*LUqRgC4rU3쀠ug4XY9οzV.5[:2~X\m튻d}1ր!aֽ{ mo9 Z8;LZwQ1[G$jrW&% *c*Y@crB9_0n Rg+Oo9'"Ȃꄅ7|5:!G1;)kh@x,1{\=3-%C 2Wm'44/Jf1Tqtz$K'kaA36Uem>G$3(Y0d Ҭ\ )7 Ԋ?o۶s :SB^K:yXV;( z$nscYnג'bY7\+g2kE.:-%}"5r#&w|߯ȹ!R=ds&Q<݉(ti _ɹ!]o "{ĺบZli$R`ƕV¨:0eѕC*}44 h8KNe~ǫ٧胙 fuٮk2ۀIW&hُw( FhilwIsb׶ \̆Ǟ|Xk' U -X /)XVu_^V(!N4ƲyO[J\gA]~ä٘ <&%u֧m0ZVb|sg3_|YH:ORdo4:^Fcq_8.Tvj9Y{k0u^Y?3za5Vf4Z5=g *Ϳ^-Ʃ,G9#=::Ѕ^x/u4cȼD6݌d<  s+YAX[53T-%Ei.xԥZhmyQ/chdwF`dc"X'!YVdW% RnE͇P8zQf{`;P#/Et/.?Q$ ftO6e4sdu퇗dX灾m<=jVL8CnRD "yYwH.bJ׮Z4']BnEɶ9}xYƠEj"SN >#:Jw(:z ݸkwUDE1XZF* C-#a)[nMs|<= ʌQxZ'Yauvo>*u J(|ۍ #}L&Vռ$8:mȖ+F4M/5lBz,t=ݓlCe9s͖J[ r#8;?R5)J>yaMNz<ݗf9 8iDk ,&q7 3Q>nriiJAH:4n}:=5Z;A5Z/o_fBAͥīUuJh" +,8e^^,lgˊg`dU2ҹ ;1ß8ûFMNL,R EeiI|ˠ[uNp}oT$5x61=wBWcԔ`S%7LzS)stŏ#^[AEI(PUZB;kͳK<"ǖZ#[}n.nn`NDs%ߝ |ט`]y3”Q޹u_xNaڻ"J˗o{fߞz |ExIr{OʹŒY?P,ohx[[[A z{577Jb53:fbZGØQ.4{Jc%=t<˲hNM&R+2vtLRK_}?nmb͌I_%^ Io4I,(Ip6ఒ^W˧e &3ެ? uB'O)S1Vin4Z*p~!+qZXc-"Ll.y{ u+u~. V g۝. e~yIO-}bKcʼecS$aZ`]H,X5c8C'??];6~ )s@L4Ը':;{`Ɍ#dcG"Ё_SYSCy[p2糥j%uc^+xye/EکΓV\?|'Dܓ4_&]AQ)c€+J.d78":n:Me<0\RA|%HkkVN 9#52_K<^ ;DT(Ն;;gp@*[F-zk.Y%2g:'}܁8hw^Ez{= N0x7x$"mZ#e:DN 6 mѝH1H-r0g֊A` 3JmXH5B ۶ޛlPKpH1P y nuvola/48x48/apps/kmahjong.pngUT fANPQux Vy<g^3F3Y*YVDnne^{Vy%(D5FEM -* Օ-,7?9s>s<|̀B;Pr~mfDJ,Z5|%_B9E7޿2x {!~T\D4wWxlt`txԡ=ў4c7?(=B  r9nԳcQ:}nN.@Y Z'UqL6f:uPVx oSE\"qR;hxf;ܖT DMDnvv'z{vRdR CO$*`hf.@w;oɏQG0-7Hjs`ND\Yd~ú p֠]ҏuOX}T`1r;CU G ]/$J8MSO%[Ț{kK\^DMyvr7 }qh`GG7ѻujUjOEԃm!EQj_SR˕YWp Hiq_hoBOM.bტ6qVi.}kǦȚO~J:.$]|eDYHFGO1Ɲ3U& ݹd4MnAD X`QR|NjL( ^ Wb 3$c׃mzuI]Әߣӊs|xai|؅S%?q.VOBE*VRt$* %l}du6-'gxV!،hޗM#0rbQ56^-]07E@G:q;)'±AbS8d+;B*Vr7 '=14%嚬)NןHVw<<#3-Xxwx6#vqOrñ_`DV#7pj2`jRM &Y68%٘ΕQa#&ITJ㝪]. MV@Yڏ%X/Լ$̡:-D֬uR9e7O-'K+([CshC@g6[(h%y|5@N7轶_+r%wq{gmI Ɠg .JU P}7oXT BlH:XGjyH1Tj-#qCvr%6Yb%z~đꪾifUw+~`jl*'s[v roArÇ~d!Jv\@#U}B>;?H7H檝9]A> T䈀)XLZCQ}=+t'D9Aܜ@8 J|/`-[1?yB9oCWFm};ki8ʴ>I>0jՠ66UQ'1L؍E6C. I،nv˻7 k~G-5|& #Z \v|nЗPbp'.6UU }g+t/ILlZ*hR$D*T^8GuJ4~@0ITA[V3 fEa8B_OST:+\.1 Ņ!|bLcETRZ}u-Fcq$hRA 5j\7uz 1yg,IMN9-$YL^FCbkga9ih)7JưRX]O "X-̶J?JJLz¨FŨN/ =<%Ma63ѩC'> `Szƭ5|1wN },)堍Ȱ `uPBkV Cޕ[$kr:?}XԳ3Á9@۾a^e-!]fJ=@k?~VHΐʵ7W)PKpH1Fnuvola/48x48/apps/kmail.pngUT ܂fAKPQux X TgQ X.h&h(inVK{1V|.Rdez .-&=˴TD奂"|sf3gιw|dSwl6]`lm_0a0MAEn@*[A{b#N3!cLb艈hnfSo~)poW<R1c%~)Oyq œ˩#Nm1$QֈY7ozW8"mD[]'i$#"GԘ!m+)!Si)(z`s+q\z}wk)v&gr)6M\j #+KI0#~;JW7yc jY_޹PQ1p_߄ ^|[KFTWf.8v8ɱO-ẠfƵ V{Y=gDnŗ])PX`nT,;{AnQ6q["-%#[-E<;].ܶFfHќMg? Fބ#uVdf/?qzVA(@76,.$L~QA^$R 4EB踟VC'9:3XG4YA'߸hfOR7ߘƿg'x}H%-E VyߜFMb#{{ `?bǚdI#G]`W`nu}8R*iaN'>+, rrσ>{57§巒`+UgsF~۶K!Fo;KZSE//vgZ"$c@KSЈǻLz( FCOh$sOSgyTmʵSٶ }@OMd&Aeĩ)T{j H;՗峲JPy\;ٳx{RTB̀9JDxʚ$qE@ϥޖ^1Fp/4%]NxwK(Vx TLJW_ܴk)@!5?It̊s#Z% ʕܸ ,6bx9[dBt_*ZDK%Kg9(:#V+@2jwr)0WhEZʤ1WMm葑T$ ebYvZA|RsuK&7Jũi-6&p+''""6QGg7+gdS̎S9&0NQnɺ*x*$5 p瘇 XBE4miCCsw f()X$Zj2 ]]e6k}_ߨiKA9ۂY24Sp#s;cx7;7Zeåfmu+Hmҍ|:1Cp"CdСh5h 8IE .ŔR=øߣ8ÑEI?&1=~EUdb@l9/fyL_maR?UND1h aI{I`%!}CrFʓ!#0R/OOGDcueSK]O{#UxxDwQzCH'4Z=J&gϒNbQ<='M&E) F<&Bl)^Vs*i_32ȩ贾:x*W[}lb[Jl_>dm}OoXodlFp[q$SpF7_뼌& \b.8ggKҒ_G<|Oi[K,r>t)Z_lȥ%-#G&M9^1E7fݞS1}MCP^)Qdԟc@SKsv;bD^_ ^!:).Ww˝3ח0?>=RіC,6B~ٗ_f0zköm/O4ŽXi SƧgiZ\@VP}qey ]xjXW9ܺiAz1,|dapL.>DO7)9'LХ7,4hm vkIUgfA^OCTh-5fs?*iax Ѿ u'+q/U[·s#BI9$O .]!xy=P 28'Bm:l /IV{=y#Mu1S+]` u($ݪVO;4MVC 6-`+i1{9Lov=NŠ!)g/|팼~)T3c m]~ xajS5tr|%Jxs ?!;`~g$$X"MW_yj-_^!Q_٠orntYx !]_*>pn*)396&d?%Wt\ֶ7o#XHr/iUg2ϋC ÉTS[(S!",\)TCŝzDKa*ҫO_8>oc@yqC7@ ɸf MU"ŧ%^{8]4y+9Z7LpEg.s&vr!#jr(O[32ufd+3!ocQq/!SO(4)U;:cfxriTF%WboS&Lu>-[CS[x 1fBrCQZ%l=x|u26] quhcٍm9>Q%SPj'T[,d9R^Lh-mF0.+2Y8''(i7p5Aa^ȧ$R [oKx }`#8<XΤ-֏J!i95xMeev}g-20 < raۤZ!;ta],( N{ ߩkgp%vkr(F>Z!L6ڄMC\x/9IԿ{{j'BrFpUVGU :~aJCUF࿗vI5ZJe@L]Wpԕta 꼸HˮA{5--4Ft?)wGv4JCVg.rIh6|Zp3%;[˄r )ffiۤifrk|1jni0Wsqӟ\.4څ#}aPk9Ӯʻ\|Įk4c0@׺e=NF9+DŸwzO‚aI wnc/riY3МGĈu̸GUG${tVvGӓob(}ؔQ#f^VY'{RW7(57[1 SlM^%eqWq>6$k LN(Aq {ZKKPL`:\0H0d$p_J~sڴ֌krו$Q1)_El Z6K(yۛs#ߵ E{M> b&V7dbK9l7mnVq%ŐWY߅<ƍR5+ʃ{Z>?La%36Uǹ H0ZWʜICQ{Iof{&휢^dG^g鵳p-Kpu١Ir8`ɶ㦆R\]*tou v.^~Bȫk~|y(HSe^=xGaۉWRXcclY + .PPB*Yu EdEiɭJd4ݙU\JdpC4%/ɀ_J=j*`m[]q jNx[i- L}Ŗ/G yo}Վ^ƻ&?6ݎ-լ;{TP!63%F~( A;6=@?PKbG1nnuvola/48x48/apps/kmenu.pngUT h|eANPQux WP)RiATP HK Q$t,@ ^ŚD@@gIit/wgvwvfgk{wHT6+r|7$x=EAnDXîMϘrߡQ/{0;_̥V{PzЙxyV͗9Ѥcz44VަΞYŤW{ TV6e&&cO@,#,fTZz]t! Ą겍63(72߽oCnm<%(~,̇dP#i܃mnasgԆ4x]9 oS$9B*d&'mm5n/|Z+a#<(97T'RX l޽-߾]<yI9 hE!<n'VM\rOP(nܨ>8y9oܖS^g]K7(Ƀ_@ݽqMz{lbLMuLăaL&pph`iNspxqsWEتuJİTI̎g;owZan#9ryKeQVb1H˭ƝsOtdjH(3rPwȑvj3ˊ/!/8'Y|j|&KV712U9n܍ao*6TXMn1108TP!t<@64!] 7C([ko{f`8W|9HaXm!3I7?#KQ2PO42VӴ=a 3_vdfgcה*ݸᄾ27Pɤ>LU}> *R,XPd72W~Wub'j"1|a!:АUdwees=2ƚ7&"{ăG75bxmEE̜ \P}OrC燴biP%_掲&hBghvyIo&mٺUώo"P!eh(`Scc=hm,򩹾3Lxs:܈ $VlI{hth>~~Y;704Cd(ե4)I#OAQ+`+,%Bwm ^M}4LυM ZiZաC SyƔFSK~YC03*clM<|Xc&:iʡ5vߏ`t!̂h\r|NM]{b&o*CXjE'>?ӣ2^*-%xIke{z3 ĺyW r\ThRv\( W,ăݲЧ Ae6QF &`NЂ}kmㅍB"&@- #3 b (CC} :FQUoܛ 9 -Hhp-pp?1Wc=]S]%N^ar*mj'h.']j}噤E ˅@fc_~_|as7j-hB4WHNƐhW|-i&n-[۫JΝA;z"A<2Uđ/Ƈ8 򳙫 ndžlSIlzP('99c]VCs̩i ̾ :^]n-I!Գ&MԮw"|dKaM=:t;)Y16~D^cBxHu^F`-8 (+2HJ:0ʶIߔd)qXnEme߿g2^*VE[S{6TWo +P,:L ߝqNYq_\y5ާe|dh^/ϝ& Rd}SȋpbrpEu }0)?YY C7hSS-NR%cMLT`X@&: 4H}o Pҗ3BԎbʵ$}ou0(Ufp#ƻkTvF=%!Vx nΝ:t(y}d+)~Fv5TV}SRZXjy yh2-`za]]mv/(_Vܒ"{+rAK7kiiy(^HM~PnqCʡQ"\L>~6V\j]Sz6^_9a; s} rd3hxhhm-qoc&uysqeeO@A|O8&cwlXE'vufwVxo% p S彐4h6.Ѐ;ӆ{--x)F@RD"Z;QI޿uQ.st@?kSpz'v e,}l)]bn$1۱]HE' 來tǭ ]= 4e3F"3lH܃r)eee bs{~7w X›F===ݎȫI>?P/( lE? aKVW~#l'4sCׂYs8i|"~{$kc vxɀ)O[ʍ)WǭuDk^څ?AX*7I8 v)lw]J1q:cbܦ>LkL7K,3wbAWs,j#[&f#,{b}潟5 fxRӃzsEGWY 3H#Ѧ(CT )๫-՘\@I!3׮:|-rtU4eWP޷[۸C9w1ļ%U:3АɮR`Og֊-xS;p52 yΪٴvTB}􃰼zb`RԜHwfG+E(z DkD8}E&(m@L=L<&蛕3%Nf}r(㨋 f@<4DFy9^rصQ!o;KܲpOr%IC A5z4$oD3L&T+m$׻+*y«KM25RTE=x l:WGKx0vc[l#o'JK3"#rx YiC@t֗ CeE1gr,@FhqHA!{^tR+|Oh\ΡK?JK%5J r:~<`n{fp’rԺ#W_~r㥴>>^6 *ڜhvڧu |<2e xп[ԀOUQ ߑ㠋PKpH1 Hܳnuvola/48x48/apps/kmenuedit.pngUT ʂfAKPQux mUiXWYHX % HD@!T$ʰBH%H" $#( HJ@,u,2e57k~{Ϲ?9}s2%)ȉ6x}b3v6hlnv؜z Gc2~Q?z,KعyTΑ,A7/+JN4{Ol31)  c(nrŎF{ВgZ/ǡ~L=LtS:SҊJ$@;.b|Cee@A%A6  %Q0KlX#sbnDfv3BFs^B f'd*4ۧ-<_cr;8tgm`҂1kby H[1V7< VfF֢`";mnۺy&Gm\ZXKGVXGF;D,Bt݀)91v<-Ladry*pTԗ@ 4!l^)NᠳoT!0r*\!m"DF\;[A-ڇ!ViXe?&{]+ "S?H~R%(%>V\SI[4kWn ^=E蚨?T`f3VV#M>wʥ7qӫ-pIu Vr2eQ}R*_lH`QzgO@:ȃYhЇE;iO4kŶsW˨n k{& c'z59&mWFL{b˽l=DlA9rתV#pKxC9,/gPr# 'N q0}2V-.Q0Fi&!ul ;rblkhH&8*y {x[x?&cZe]uK&wיA[=A>FW9]H\,,_tބRŹFƲL! EZC/-5=ߥɢseKW\PwT#-wO]^"gof3`jhz6a>:2&Q%Q[S[ݍϏmirg&WMװSgIrxwjܞR\9{V ,Dx-2"HRꂔ94-k:d3e˳0Hu]dH{=rԟY6$٦ X邏AZj:CXVXBZ/5)_}eiFpA2G/q c[ "@λDŽGh8G}RL!\jl%fS)rJ ԾtoL'oou#pEtb}N%X||p/āݛeCJ%ЄSvR2}Fm&̥g:KP#G0Ob6 44X#?+W 8%:ɥGKe5EJPKt91="nuvola/48x48/apps/kmessedwords.pngUT gUAIPQux X{Qɦɩ9DOIf2fݯ}__utujKojanhD@U{BgpΘ3="&,(3:rG$3"x[ [7 in)|H4)a)\eBI(H{ZTa$\N*Hgo^vAx7jDHކcl lォU hdYtu[5Ñ(d˜/$}3!ǟ\ׇTB;H%o hM43` ώs1>\f̼YBv <`èm8wd*?P82_6|Zѳ ?A U li]NAb;SҒ *T_oO_гorwsZ,3;nMgX/Z!WbZ"9eXg$|xlPceĝ $_Jcoi_:f^mSP8 /O (G9{~ifx&QlOoswmZ_M qd깺V ?-;+u2wKJY!`G)CHHm>ugʞWnI05[N,v9#G6;o)76lN*\Hf?}#4Uu FlTuJ9fqm-Ս#*U6B9a#Nv3vWfS34a` qH{R4k}~/#aPL}hr'd^5qEM~ 3CQ"T]6R MoǑL5\df)ADêwÏ>2kEXȔJ{Oо΁uF׀UOdKG(uD>,Ni2f |$ 4Cj^m@[&`=ݫOX4h0:]@KBhw`v[ꬲw twˬ-[-1]TӼM`CFCi;xpcPM>hQo Z2@)*"{a:g˥ ԝ[\ٮ6夺r1 vD,i59z2!jb*,l"kocaAsh/MmZNRxE`tX胊א5&AwTf o DJKV8C\yPV:Jy+ҝ? )6vv@?NJ$a[Wh&OŅZ*G".Bw Z\V+ xi0"t#|yW =9qƗT5YH/ā\핳7%:{781bK:vI.1W_tw8ݤc|xG:\z|^ZZC}~Kxd 'y\_x6T]a- [̋7G(d,> VoHlCTw(Z32jB͹.?Mfޮ]M@5Jfq5hji"enk"'IPbOƢd#:pdjy_j[PO4bx8k'_gp:{8#_1s4ܳECv2~lVՃ&U#h1 ~18D$'^l9'7 ^c %35ď"n_}w,n}J}Ⱦ,f!s>X>CX4eRͧ` [/ЉOٿt, _8|9-*YzMs:.r<ue8XT-*)-V/lp]U!BB~B&8`˾.ImnCm|}}WgԍTR#<e /G~^^5JwMP@كM}4+}ƭAm[Ǜu󈚙YGº' Dsȯjn 0%2ARkp8 f$[7[k+b{U~6UTbmkk6ED4 NI:OOy8&dsl16t6pP$6{EC2l`R5R c@;)s-SVVʚ-aɓPݝJꈓ=MԼ CSuV5>)Ӏ|"+oқ/J0%k9iy-,^l5ENAFlma p * (Xu~P48,*8sIɇтgYҥPR^W/A.;DAQnJQ.`78? %c%*!!iQP~BZC€J1NU|+2vfwR@-WY ZC0TnݕȞȅ 7FƄ -'m& z4:ScOV.=wU ؞M,Ԯ'rx\PTȍF5 o3_6Rw~̖ȻvCs2ϊ$%/KM?̏Vzir.݆ĩ.@ Fa:,wy؉=A~>#He\V."TSĂXED̠Po֍S,AqAC RxsqCpjM]7Hиk ~zpUUQ.L8:2մ7I  cFDDãh_%gWS|(\4UŬ9soG?yE"߭_cFĂNAս.RT׽PdʅMS=vF%)WU6})Fg~&$ڠ} F%]COעf8lA&4PJhMBV( vh@u0p_-o cL2MAy!OXbo n_l_ s4:Da-I*M˝y1^!<@ ?+ZKNNF&d;PA7ʜ[W$rFz+2W$jǠZj?<50%Gc׍J&73bjɜz짆)b4hD)^Ku= nZ ;qޗ%Cp:g=weaꢓ0QѻݠQ b9ZX,rrHқ;a\d_USEKcxI!b0TD,LgaɒڑU*P{WٰMh<p;r[$KN8"[k~1V~o@MQ9,48OVK]}}l4*W=P_vbr3"6kyH-' ݭU\I W kKɪ;u[[EsL$̼T|( jc) E1SgU3?Z7nXaU>FܗN##'汙l0&ׯЛ_oGfE |m auFRf?%Z}+x<\le/Fᵻplg@Defvґ7eX6b?y`)!s~{jͦ7NX`.M!lWٝ);uwfV31&y n9l_t89્7 M,oKoS}}i2+fN= CΪ*Bas])˞CϙM&w\j[?u6jvxcإ.;!Z(?B1QL3̱LAd 9ߍHJ)V*e j .[j)ы/_SK"0EwHd 0ҤX?Nˆo E$yG-)}|_ʕ_N !Xȧ`Tq[V3Dv~3X3Sf]rmWlk|>w|g;A?j?~qcǻ#/ s|:%?`^`+ @4a-o]Xb¯zZt5оtƠW L9Q36F]Ps'}yv6cy孪>搶7^ i}txpky-pBu>M!jU4fht1GŘ߫|(Yͻ1* H0Gh`fR t3irIB',)W+\k(G^l҆dz!)ksu&_hf9i舕?J- 9/q:u.B#6eμǧ_U `Rj:s OeWކ^>w2;g.1JXJ(ۜ26ׯO ERG nmzHB5foh 4 tuVQ_K=&TnT[Ś$ ƚvAz$ V}| ;}pKa{i⊪^wIw s2G6*V&Am`8 H9S])&ޅߨu(fNll9`s&Ubm@&6‹.Ow3owv,~ZM [[dDny Z'cJwPK8sH1nuvola/48x48/apps/kmid.pngUT LfAJPQux USSwܐ%J@alZD !p4PN3"BJGo#wx/G W~woYMt-Wޯ|J6-4aK*cy1cӚ+b_^(8"nJ@Oav_ZͿڶ^xS:y1V>zN쉊kĴ 3hjƐ䩩Jm[5l^ΧU57:::3"&ƿöj-RjA*Cg藽)|fb\' Gxd8X؄)jr^WwSGuM,VSG+}e 1۾|Ǐng [5`S搊${ucsqE`j0ǟx{ntBk1 !L}Lt^pmK9Z!$FN^岟v;~r9"BhEy)nNl2ub߿홇 E k5Ξ$t]'PǷ61 2ڟm$s[>yjuPٛsZfuTtM}]~tjRپ[)Muxuuk 3ZA>&T.SA7pd"h ju lPX#yp)sĥNEm4oA aB#ꂸ=g`]{;HOkPKpH1=nuvola/48x48/apps/kmines.pngUT ҂fAMPQux WgTI}@ByiE RTi(R DE@l K@DvZ yfΙs3wQMEW5H_SB{/UyPRko9.;DDHLl@T0@  &8;?uz} 0---A08R;:pY2~3[L$6fٟȌtzY& W"b% lקyʼnyϲ(b =`(Ͽ`FGS˰5Sn޺ &fh2~0!>(/mIJ"NZTj&X ٻai* -" CCTc hNqhC5ji6(A?:P.@) ֬~.3P+57 s z 3շ}٬J6e#>Ԥ ]#Jc4WIj,4 1!h-y2Eaw `֩uƄ&e#sy+m ňkT"TYOP[h~3(h>?F:'PRT&XLAO_|*bk3 X/«"P#t'@@O[bTT"7RanvQFH9iʊhX&uIMˉB Gؤ҇w6ߕ .i}.^ pCOO.)%P_[cTyP-4oG?}\|t}1`4d`5M}<άf.ǴX[/cؔx$'KBז2K-j0H`7;x=ٿL=msXZ$N3-.\ɐsvEW0&^VZ[.-},*χ)I-YE79Nj\MJi?Ʌ-Ehi)8k4;6ZV^e+LG`Hk8Sx459ʾgS~1%.kqc y |,CPXzXVV﶐5..C-eua:,F'}" leCɂkpiRA:F TWULK_'N;hoF˄pWf?l16WBh=}hx -^H [{ Q-58Su dUHO | X.L,"juPdAD31ˍd= ;Nׅ0aVRaThsD@ϒ![n)2?^faE ͅF3!kPDq.&K *{P`\\yhig44 q/ގiڎ}Jkui`}Uw Q}dWPKᮮj}f_)tcrԘuͪUPp`LJ h.eXK@f"i]2,Fo'ݫ$r-<`HN'+/m-fVH:L/xxd]k͠d\U|mdp9}`b+' .6fY,-H@9: b H4d+Q<(b;+d;(a5P.`b@@xZXR 3o@gw̳_atA-8" XS>'a穇NRGZv}T\ˈO4Bԍ)H`A32u*{طD1WRHcBk8V{nλ>]} !'"'+;`Y_`}8) n}F+eZT:?'7Oc0D[!]5cn, `{Ou$M |ruQ;Fi2( ΙMcx?>/}?u7,EQm,YCygҷo*9gi!rެ5xCzKwwnt8⹓J6cS<99pmC`]YVYJQ8״?5,FIaVA$/j}Ry"f[FBh@71 땕Tȟ.]V{g%Q R1̸W>!"BiF JhbTtw? q'5Q^Qh)]=E4"Vsc,ګizԴv;pU߆T*~}%]HV DoGq(Uwf#%2HkN_9YJ<]J"6 GΓR7յՈ9lt5ˏps?'Yrݽ 3B146f [EZO.(8X}G |BGy;0'v~Hryci/± YCjViƷ(ʚ]TUU=9ޣo^w]"( >)< {ԞKARVP\]nUL?;,䍟a8ߩN7qc\aSJ@G^bk L+gVՂ/TD`X &scKH k-V7Ij^[:w\TIO:Tz@|N9J1{׎U?zpvePh\ni%-9P% s^Gog8cY_D}>7-@ 2'vb=(oKszsԍGYMuSa|V#zzLmzLs]ٔ$~iܯGJN\5sŴ[ J8Ft0&P-f_PKQsH1 {)nuvola/48x48/apps/kmix.pngUT zfAJPQux W 8nP!"g-9(%ʏCNE6+rzEe΅7JoٜjEJr!Q9 c>\ys|(i)<[_(8[ǩPw@ׄ3<z:#H'BG O96ԋ=wS%%DnEvvPI5K{FTj$n5ɒ_*duxW:j[RF8SbW^H+OҒE*mKr­ɑ[LLf|N?QĦ |cc<?0XQXZxY2S-2%6\I4yÐIBWE38 &=1ΎOO*Rjmke O"V qss9eN/bp &3ϛxqc8"@+&&I"ހJ- (//rN_1G=m--عΠ?eEEw}ʨ.$IЇƑ[g#zϔI̲n`WWx{ ‚deΞyhHZXDOH6YyZ{X;[MW9X/lzkҕG>27L $Y|$YZbR,0UW&]\;9 mu./uSb S+) g5>=͐Ol}0?ne+_0]]ޘ7o^.06lynS,/?#^UFi8KRQ[4ARSZoڻn!6l~}ܾ}9k~ÉAn\c@25=115u.ow?9dbAơу?lϐDQTPRBO&,0;c45yZAqtpe[Q='Ci{"þ_fgMWX83I_O JqifsRVni;MR qf33A?dj:M|VAuaMc먼TrCCat^+}%﬒V__, ~ 㼃=% syo[r'` lw#00ڵ\ 5 . EZnMMFD ?#=vդ z84I C NxVMcu_Xvg+hB49$Z[3K(fn5za*`8 T֟ed8~0%Y;F:7\r sGCh/`ӻvm=sxZvFul"2mŅdrPюBZa-k1?n,Ք6^#52 1*̊ Oް6ݢ-Nko$0-* ߖa aAiQE|),)&՝ݩ- zLYɴ#WJ3cnbbFw7ļ!i[!];3T5}XC\zfCUyJ$gڧnn]+ێgѬ 5RR+]fJ(`$0Iusp0ّ#BY**>O!֟_xW3:V 2Ol3u11ւ`n[U6qﴁZW [^q۶n~&x,=A<4(@Ip{J%, c!e)}U\HUS3;._/ M0rgPO`%p/:fU*YTOdJ d2%lRhiD>ɱ+ 1bl`?X s;$3A=R)ѾKcP^f;)[hg.F\(|;gc$D#0Cj KW=̢Sgm!z'X)c$H-74T89~vAs;`fC B\Ԥm쫼-Ш9(#ūO48R>kG?$/x8ms[^+QXNn~ՃE"vZz v?$!l|HFk@UpSg'pQ$"/KEm>JVԺP-8b0 HA"Q*u;d>\М!E)(Yy ݻ&dX`~堛TPbE#B%uccM"MЭLe=EbU4΃jp;ǽUh$ߴ w^j0`iy*nmzI7W2L!Es1rn&&`7cvm5@*,;9\8 ܺ$gː*41z} ȧD3Fx/=wh zqVxE hF+!.'˼.ۀ+ ]mȫU%# vG!0X(';#K7X|X+yC9~7P9qXTmnN_߽7'ǫ⣀Іq/ȁx޺5 2(U\Ƃ&JO{BUueuT=OKTid>6.&X}cNRO,-H__*;_x{ ꝶW)->g RW{#o׌phEX0#^|5&2V~"fr6'K(?N7Өύ.JXLY)9}@40oordgmhE:~uZ;( 9dvkVpxfxEd5=Dm?G:L}÷9%udỄ_CN%A23>5س[(־io[D3S݅߻7_j]zh6OλKorFW>V8=}1dWa. p>iCA{\"h4W,ʘ:eU44)¼6$zXms/Z}Y+Bblrj`gl1bP()#\٥L-^o vIt')5ϕ[^wusFw?߱kz`hK Mȭra0RDQwCXw4N9Y8R _K]C_\~T^jI# ڲ) oXUUȫu nپ t\m? Q=ԉwOAnl8CQTSD2('4J,>\lKN(^NT q*}T.zyQ %[CoiOEt1MZ6B"P*Am)zf7C1frzTJ@wGGzÇ(EKa^jbpڣ-/LͤGi^|<|wꧩ Js5E+ OD;?4obہ#Ccc3$2M<c$FO d*5ϜH{,\L9zvMxFl61+C6tVū&UIOUyft !90 Jz@P:`Ҷ6YGm(#?-Q g V#an/Q ~oLM.-?}fzdu&sc>D v3JtŮTzl%X\ ft%mW:66QҰw8!qX 遮"B ۰5xțw~7=سI\瑱o=xDpzZDW\wv\ Y5'-}6ZTAY-kf k[B g8wk*]C,/u:=7 )#,Qh5x&oTin?CŹ2;/ȶ=`YR:uό!stl0ɅOX?=x҂u9’k6Cʺ1 @ #Kv7@W{Z50&M3QԪƈә)+^sѮWr>/4 SJMS52On@yi#} l47n+"f!RL.FJٴ09Lw9G8945pU56{L؃CAVZOOPܝ}(` jϨu_ZR"tE:}ND: ; FF:9bc9 ph(vE_毲Z@y_p#Xhd5tUXN}&E;y*c!܇ϻp,aMiVQL -%˫:f% ٗFNgy ;){yr {:¤'`IefӁVצy?JKQH]?vgO$d dNa: ;r! ϖl\USnfkߞJBWD+Sc 0ם&;w&1 o.w5'qff:Yٲ|Gj.>tީы+6xw'lվEo'/[QG'oQ= _U̸_Yi*$ 7)pIo ^2HQ*1.ӖgZWְ$[Q(흫~k}NZ t$6) k°xFlq'l7>1kr:ZDvvGֱ ^5i[< $)XVŋ[3,%%~j$P{H>!BΝ\q#oW+FR<;r7# Jx9:I;P߬n6zO\j|HhLhF5ĵ&[$Tiރ^q4멡Qӿ/=EPZOFgǁ:)I0jIeL!=jD;$Tn̈A>b1rp$0aaՊzkyqRpw~b{ҡv}z+"s.[ap̹آt^UŠK5WWsy||}O5&aRJS)ee 3~FD؏;|f1;PP+/L&us(u R!bWFŦUrgh6Jѵ!QKm ( }rVY/Fڴk#Yv]ZXx@~ʓ?o׫E6;pd$4l%L۠ ! `FP31ߧGaqUBҜdn77 tV"5(#DY9%87Ć?(7V^rZs]SR6`·^ m+JfcRۖ4a{bl &F4$3H0s·^ljf,ӕgKS4wZku"Y>dCUuʅ^~fG~; +"Ӊ/?U݄ab0 [b 9)+lhy_)sfR<\Z*<ơD -'H6YZm"x nqմ*+ -| ndk}rU ma2b`Z1V̛-mUh倧cVPKDN1lju<M nuvola/48x48/apps/kmousetool.pngUT `mAPPQux ?}?>lQl9lRN,+t`[D*Yw 9R܉fqSԸNTiCD;Rf9fw}|庮u=Gob{u ug\yVh4mq'%)1pRT !hd\ޘl%~M `/<{9}{˅)!?.|4l{C1??Vyyfazh+r Rj%|8|jx pۖD޳(K% /}d G#V]^63s ACϢ2秛Ph3H1ON@Z41j87`)-A`Riבe~8]I}Y4}߾Fo|>w-p**8ұ.L`M?k#*bSKìQmYsQ7S$"!iRvE$פj%_ӌb=5͉:*VCjT$쏏c;d^ `q!M6}ύUw,-3n\h>qk˂v!O`D}{A :0z~>Ru-KD:9) w *פk!84˾Z^^ޢ?-q>2M˜5\9y̋hCx:SǧFP=sw@9;(z[zne=9R1*wv銠&Hgg$D/𗴗0s=Fvr bk @>Ώ>ONN}Pz> Zn} sL(ڹ? zE_6%^}ڔ Gk5?$)7yDJ}F"F 4]q4GQ5@ٵݖڒ6U<5A7\2fphu(H;)<jHv.Bu8˧MvvE#D)laEKhPf..[<%%kSǜu[ӎHP QQ GiP-Dx-o&_G翂F{ZqAqu[K;lw'}/'2ڊ /ܦe/Eg*iΗmnlZX:dOOEm!G/E.r 9g@I N: /-Z8ܑá}`֫ܵ[WY@VScO̪^Cgns+7;oGUN>5Ф>[$N-t`=8=;m)Z^d'voBbZԚs(gk χyU߮6H< ځq(-`~hRJ ot+i*к ʩB9QʂZs?ݦ5iǶ m::~\/_1tg,xl8LHF왘|';ڙ-bkqj 5IՅ_\_'ܿH$Iܒb=*P,,L`Aqj|}Rg{-f4+IcM 4!:J6i8qbn2 ]imncBU mT}ΆSw^#10SnN~T/L_z}"kl7dnI2yqJM3^oX.E~&D(R!-f$W o(^od1(+et62E`~#Ll:;SuH_*}+ 7\O:10&>Yq9Kjqa5ewWђg thnYI!7IA`g7j1%46q1tL~m>xaǗɳpt&@﹒mQvpgxr >0h]Q+K>j?Ѩ~ti:C sT*kI8-PfUً;G[i[@fy|hth, {g,(n2Lwg̚WxWa)ǩ/(e6ٟF{s+Q#_T[CÞ~ڈ,?7ap]DKMY05o~igkɭ9IeRleku'ʙ>}]fR<51#L2> lĚk˃5rQ:yq-i8c}(V*iv Kuy0 Qemj%?bx+;7rsq+-׺ժ7ĉFE8D0Q=h`bf VȂL&"؅KqFrKf.͖6߬Im1KQg {gW܂#1Wc"Sy, F ͎ F FQ0rIRbou QՆ#'m=.4­5ඛRXB10# jknߪe1iG^6GGjkC*{q}=~ sӜ7QA/ZIN=8˂RO l^E 3Kw 0ǍM);qFƯssvi ހxA5>T `+!CDMx:Sc2n෎@FЇ˶Zݲ#"u3jsCv%f)uɘ,LIS0X'CUti,H70d?\?%NlCaؓ8x!(.8NrˑsNR־? [3׈B؈C'y6 moVFPKWsH1b nuvola/48x48/apps/kmplot.pngUT fALPQux %{8ߙw/މ1ÐJJCm34Ck'lJ2cP[[TSmVLhfPRq(a~xzoxi"h,M@Ey{qb'w'Ng6qϱ(v;s+ N|R=$4 hrq ;A1ȸ^AYjr~NO\hCi]Շ?XӺ ZDG|pp0jJ*q+l1EysU;XjʚleZwd0,$45y^$lG2Sٵ']eeRC-֤5oOG|R)nHS bdH`4WQGGb˂45D.3j PQ^=q L R|MP0NI `BCy栟)WQV9kon# M-(o_Chae0i(eCx.sa2 LʧIDʏ쪃o^;ϫ\Cһpx{ݐ;><:jU>C> X(]+Hvhf4lѹ~ ?Ϝ!HBI-]yW 3?;&!w>kR&bwrvIl3^f; J|hY\6VOpKnK0KUe|1.5< ӛ2M?P*Gpbb"OXNK@Jxd OSKc`^]] #jo~)9@؉h8ӄI:xFk{X,a޵ϟCEت?ɟLE>9٦B^_^:E2N\=5Pn'go0L"k~'v,H; 7+./hqxIseYie&֝ ]o:iH\ ~v2ON 5LO&Y"gP7 5JY%iy}K2 q!tswY97 .,K2٘ޒG2H] Wtu\qD"a%"ZGyK-|Wt~khxtJ\戮W_<+&k?/vߜ ^ԓb*e?W٘igӯթ8Nu &49#.ޱmoT>͈@ȧ%.Vl; ?Bƽuc!K>E]A.NL?,%Ǩ(Kx?: \lHQFG+_Lt3Nw ޱ{~r(둹lt0!Fp[QZh-x|5#z{+t2I7E{}cBkiH.,O̳J[H{Fس}QdPJ))ucvƼ<|Ӑ "<|} =/ë́g'~X'tho,D{mk&-s HW8d[gw {T"=9hJ~!6ƿJv]Lb8gU1(*LwcNX#x%񣛐HBNk>&*$*膡۰A+}__W6~)"dU5eֳYZ-i R"Vݣ$1 L'm=RD2 _/mUTݺ>'w@b 'j.PlX⭴X]^Z!Ƴ_W;([eݷZokWE]=+p/X#E/dzpS@j((/ۼM/-Bykeou$>~ML@J-=jdc bfq;,d㻌$*V~?LEG4ֆ`n熫?ƃ&`Pdw_ NENO,krY) ^ V0A 8bH T8.EyG!}׋?PKt91rc!nuvola/48x48/apps/knewsticker.pngUT gUAMPQux UXgTKBzI RRňxU+J(NԀ `%ADlx"JYk5gsC@s(b<]Up.4v9km{bCZH43xPxohPHrLwJKzǔ!@>%>Pd5@ITMν\(/:~g vTYVZ9u|efApN^w<:uD 4ک_S\RUxܹsi.+s.k2D\]:{ DyƌP7[0k.ooGh4_,S|^6* ۻ؝톼%\v?333kRW# -#M_5!PؤUq6?K1UA۷dGAz\#10mo~%ijoKWNť/c=ٌّ6t Lr>͜I7eDI aG$ 7Lj1$O>WDhT54,LcK`,: S p\V:6_mK ,#a;B6Wese. 9M #\EԂH GjرԩEaD,ؙ~Cc&-Y0# Xp)3K&m\ٷ)g(mS ݙʐ)G5xHʃ%> 32#a45C^fggq߽Li4%d;&%?rI?V72SۺkH28getf=">ݝ3_Qjn{WWmVu@| 9$%N DKhaa9ͻu7 3CҒ:S!դž֧EّUt3R?5}L]9:vҒڼ16F |֒@cC7$-^-QFd,Lىx̢ƙTqb1C;Z/\ q#ट?ֽ5"$ qxFXT%:;\;8z|fCl-x<<Ǚ:[>n*7`ԥ?ȸDZ 4T] >2%?WO#mqYxo+b-E]`*#1*A$ )EE }}ffZgP1rb)HnD>Kp&ɖ26\`Rﷴ2Fԋh]hDYM0X: ,xjf4,9 Dg^}o穇eR#eEe'џu4Ƃ%%a'0# [KL+ +l3#fYⳲ,8-&|{Z E`ŋ"CpcQq1cP ~ \R+S \ҽïkw oTˁg?Pl@5qB ~f%☵|pF[k]Bj|`}-[$&<-2ck-9]ihA3\jVr>],"(Ԥ73/j~db1| HSh@i$G^zt4rKې^BLo^[SǬO4W T؆Cfmt"Ƹ?Mݕ+hz#n~3O@k^LP 9)`8D2ܢ IUq?#Qkt_H*r͕_\򃦢tKqj]ԡ;9LهqVw"E؞j4C &VMĽ[$`8Pp}לĸ%ADYMJ~|dBPۈUɜ~ ?v}cōBoRȆ$mRGAj7Q{:hqzVΪljhY k%O~k\ʌ(Q*" fFlHDk_؏yk0ZgeVth{&h`įVu%_)h+Ej]4 $<~G ,sU>`cuƌ80,՞倍)}mYWɇ$)l<vCMΛUdB5G_߇/)Ù)۠&dKcyz6G/ J2횧Zq= .C7#OztH ;7H ;TLC&dI&T|ʋyʊ/'aPb)1] ֦]V4PHqnȥPyD1} /_7~j^)[/yXevB 64߼yEа[ i|.Ȃ*k.khpYcFPZǑgMQoOaWS/[d.dx5i[xlϞ*U.E}Ao@՘`tY˷E&XVo=wdo׎ 5ۉ|F~qnPp[5+b rCgr'?pߘUq]-{0 YЈ~-2 \8X(670PK[sH1dBnuvola/48x48/apps/knode.pngUT fAOPQux -Wy<]gg!y,Y,lIɴ1Dlc=^jdTRFyZ0dHTZ"K"Kݿ}8su:ꡌVp\Ȃt8c j%1cZ3f#+f{䁘0F:9Fb;cGEEVV(sH?oJV?vyqa@Sӌ|yi;;$܁ BWf8%%u!-Т+#920dl.-ݘ*ތFEE"u[X\752h4I7FEϟ?xRf ϯ́ڨЪEŵޖ=ͧE̵_{\,:`j #>)wIh z{'˷~O;f35U pv)b0V 5Xvm rs^}ZT8mn=:66sgW^KO@ +cKFOD GYaaG >P0%m?Oj:\d_dk0!}}3gby+-fffmzu*z(uy=Mf=§tꔡwW3h[צMZ(\.?+D#ݚPʄ~MC1D㛀т.tu!bעlzv(R|hj2Aӂ>א :#*M&qhQ[KOcyhu^\:?*}/|(ˊh!9hP:pX iq}| 8*x `ZmUwhb% ]ԠH'ĒG<pJ2ڐA';Jx6 ȝi@ {1x}6vʹd}{! hJZD?<}RACrc%!޹K< ~Y؇mMSj8.4WuP?a3ߖ;&if| O >Oف^d#DJJ2c!ך8Jfm9..rwPwC{X!;^n{/+[9ແi J A=dm3wQVQ?TÇZg#@EZg;.(դ***ăRPp>#Z~G6~|xbJT~P |YAIy$QPt| +m tȑ-[DIЄX"@; dJE--]߿驨Gsݚ꒜дԒqST߁\s+j1Ɗ|1 נir{$/g!ok w<bowF9ӄDwC!ʔlvW{ "2B ]~>[Z' 8rg#Oy/`AEkϼ7\&GG2-TeKPb&P~"0cvo6}s+ רɽI/^Ԉ䄣یj<0*,HGlQ6pVdkE#OyT:z4b5 d/sw)^ot˿7 VٹcavO k>x`| fNfJZ#_]蕌`c5Xj,?T K _cX+ڐ*yQ#~< hx 6[^-ڦ۱JPE w乪]$3;˘ sh") v,>< GԱW<ZD * )8ǘ[{yaB1 --5ꌰՂW7΂UG "4zX0g/LXPL>GeQ!N&;SYz :-&_8^盰c"tD'%™8Y2tI' ԆKGS(8{9LAM+ ua%2h>թ9IJ`ΠJQ</hoH[f>}Ѩ6 M-E>~gviP~J@ Abx#dB"@0~ !>xSRk6}W.%^t; (ְ$_x[(!¯yHZar`RZ 엯|g5 Zmޓ e˗Y/Pe͟FݻDof-'oټHH8#9,Y [%p//4G}n^*zZ \}EeX- WBgCmeec@``, Mg^ TJF:A0Vkhs}{;cXkmc却|XT/[Wcijݘ#iUV+nZ3КEIDPTy:jb$w͞J{ؖ,ҢKү~Ck:Ed 1X"+:o- "dg=ȿA܊g[^CgV󊊸ܶaʹAN2E/;Wk У?0 `Іs;FB,Qgg `M5" S2}npI-P;U+bcniF;w>=e֞ HziUvRDZpn>ZTsJbtPVm\H;$Lmې0󵋋 _V 5?ϫolv#u]{ͱO Ѫ,+(+҈xC=VwJJa6|lFfZO]ۿ܄茟 #$}C{W5,qmWvPKpH1h< nuvola/48x48/apps/knotes.pngUT pfAMPQux =iTSoH E!E``LVDƀs0  `-m#H0 (X"1Z9{9g'7KWg>ޞjK]Zz>6o@н[3zOJ| |.t4M9u>'p}<ݾK}@8PNC1 ̜D1L~*eWK 3W3rLh=mOnGz.<ф2n8;,, Z<|Df)KB1@qZM06h~\z}:0]pׁFkT({E[mDV۟P Fs_N?yX-ĽeI3b aFa%2y<3 ;F5#S40 `Ғ vw]+c;R*%3|/3ȥ҉\M # Д`gWͨ w73q*?i z8qK9|Z.꛼A;<[uX--c]!ekN|~J3GV7Qֆi!~'n7^Ϸ5.xjw~щ2]|yvwcOZ>Vu"&_uLJrW ፺u;5`LK^HٿٍTg>&Ly$f{+׸u)s]w]oz lzKD'Ʌ 6vkί?'G~΀e, ANE Di>Y$BV?#>Z!r8rDEXUmʧw, TT1?+ =PhnotT88Ԟ#PHa^a:Y3q=q >jʁ3\?},rDuXiTmੌvjw)R?TX+0a4Y457"~d :ѽ<ڿ[SQwqΡ|7A! =C =񵿚%߬dPF1"앨فx5ʛ<F{C;(rļeXn]"nZ܇=,*1 &~._~^|*N]l0W+ҟ}U $J(4&f#L !|ZE(.H4LGO{$^ 3jB %)(J>?" Ub:_C\i9&+R:0)+V{eָ]XTrdlݥ>kx*<+˫\`)-T+f\7{ɔxB Wߴl }64E7T]%m1LW-;9, QJsQ/ąTe`{P X'GNz[͂+/ pv*j<^^CdG{{h{Pp.Z"l.յQ YW!d ;q,t'EHzy+J*8Ϫ23O/g}sg %V*?#N&J3xf|]u# Lq׉*/,UN /] P?߱?Ӥ 4XV(:SƃydOAYkb?Yg R't2Oٷ.yr6=򄒽`gx8Rkx;TqLjui<٘wi[{_{Q#9v%X BY4 ~9m6Q9T{o%"|дOnljvNtx\\@sk^y0BBZeNdf3eWm{s(6-88sMv;#>FVq#R"'0߶ྴ"$'NKu=ishԽ)my]v0ZVֵ^V{W/\; 0"BCf2ibrGNNwQ`]^A|qop.Lzr0Ol1p @:AՅ5,"wԿgg{XPKgG1p (lnuvola/48x48/apps/knotify.pngUT r|eANPQux X{1c$}`p( {9iOM`׍`zKI" \~='SxQy+!GGZ4'sgfx:|&}p |S+?<8S[v[m_qȪ?Ӈa}9VAaLwTGry|՘!#deLr1ee4G< ~ \XU"Q=×`Xĝቛ0\v3Rm6F%0dx]ػW͘뇇{HvR͈j|/7s;QW.~O"mx_en|_ɼbeˠeo,.q5(LbY ;vVIBKcn".Q[@DtO_3E-E'DoZ.LY1 _9\p9o5g8)&_ $!XpLQp"[Yv.xZrYj , iXTrI Tk d dۏ{tViկ9lߠ+waH_xqTTV\Փ~CY6eO< qZ K7yM> (BJ-vltڒOgg'2l(ϗ; Ҥ-hnLe{ !ٸ)DAVC!R 9Mu_m~ 81 V6/}w 5(ǎlSh-jx1h{(rL WpM!!$1=H쓃p7r9,~q oF_{ѝyLэ҄zl"nND;JRKAҋ?vm)6cP\s(ׂ{ F([|ͫ`tg8P,#&Ѷ2W) ~') {Jv'$Ѥ&4Z!,34 ~+f@Լ5EBF&\`|Jccz v47 2Z8ZY"XGN8|ڹ+i|'= sN]!i֕f!N4g j+/hx .ss.>tF1ף ?*۳u/G\N(IȀ0Y"g\Zx(SDb6%b温qkuI/) $}LBmLˈ.J}r=EWYCz>ոҊv_ŽD?hRv uce3v~@P4&U{I*OeLk֝\ nE:0}fvZrVZ%=,&`)"bmGz ]{7#& $^T EH.? ܤ}ܩ' k>j7eǒ>qTܜ >#?E9D46! B@Z:*tް?%"C4M2E8g`ٔx^:Ñ|h_ ~ sܛ{)$R[LJ_;!-~͌-:oڵ421'Y;*UYM-pc7yo$L N8WuUgaid͂]O`bhݣ ySvE^ӿW=:̨>ߎ{^%c]et/k[oOi6iGջ81\[!&l ieqO_y$`LӬSb&DUOc9FEǝP̉у*kx]O_rcz9 ~Z F#sއWƽqB8crZ>ӱ5@i(>%%W-ө/llHHnhVCAQ9q꧱ڌ-A4wN!vN^  C3MLm*؇!,t-9B30:N+o6S:`xYw`TxkIh,ڹi#lA뽝Ǎt~o%Sb+ F.!#JON|ܮB9m= %wuT78[l+!)禜O{s4c>|ҶG_ReB[?3*59z֍Rȍ0NotR'>:S@+wz *D#I!B"~~xSkZ{Ngp:w ֹOSH,d9p`l-NʣS5^/u/;TQfI"˜:v :W~ M!j^eR"ln;^4eya;lm9O+?cwX"7xj}TqHP=uAi@PKqfN͉)'+^딖WI`Ui4?.H_q"mmq/7:6BoLS 6GAC)LiB~$jN8e)kӝqoa ړq0~R7~Ff{vU^&+(xXh)Y6/ v ˁ pȡe?T=LaptLu/:sr"$ \j^ 6~jQ 'ݴ2Lߡfx5 tžqZOuoj/+N t5j|G(rYw2/;H"ȼ؉Ո[/Kw20i\r`^᧠}pnzg[_g ]xn~4:_jD9uM]f6%(Ks3&z"!:7)ZIPZ`j;9^4ɾ{gG%ySˡ PםR<&}[]<LLNȼ.7ihjٓ F`Ўu4uV,o0GCSpڞо}ah,|B5l*fh\`*xk1EVXGԬ"5A85/jv {y?gӶ]TT>[@XrkmuMx|am"/; Š!]&0@O +^;6Wyp PKt91W!Winuvola/48x48/apps/kolf.pngUT gUAOPQux eW{^[DŽ]Z&u,NhdyZaVl^&؉ypR eZ-F;G0%S6Bs5"FEEĆ$롎s'k1=[}nnY˹h`+hoN?M2laDasWI&ZnvZ55ݴ.jWª|4u 6Zl3fXA 5D)'{tm[&:b_پŸQ.!ь㠊0.q-OrV/iwoHӦ'P$SԌ2^LgƶS1;lm hT\XiKlB)E`&-KnAE=*k[8f}_T[H-`yN". QNs$0{"@k.1^\$[ lkX4^/b7*nˉL>=GBeߗl /[Ƨu4лT4S;-j|q8C_甝P ]LwG7渱-@}-2!fx'Ր̡r 2ޔ ]2ӛԱT޷;`%VϢpI =&gjT]MȦ_ !NDT+488G߭G./c v}''ȼfDx2d6|gzv5rLl EqGUe].TYCrUgZз:*9O*J.w`oU)ih/[F&:[GY |Yfn!%88IRNVXLmxݭ#V,s/ ٰe-vqE6{mH2Ia墥E=>TB{3r`k4r C)YhYױyws-xիPهB-Mx8B"Yx'gPc oFY#ǰ |Y60=1`F}a$&%\[7NK,aHW?sZkzOVгO/ReG`wb948o wՇ[zxYjej -UDڐ`V0Ste/Qee i,Q &$A`cK)M; ?fb^>H,ϟHtQg{/ҟLBxi~Gvr0\2< dQtf9цS*ldHA@q8so,(bMu=Q+iәڑ-]R|\0/Y^~}>͜tTk.gEx;.["U[8uPCŋnc'UT3aɪ'M| jo,42Jy.'Nգ)?  ߖ ›4,g\oϕ,CP̯Е",3^(2 MUmiR zw̥u/~QA =lJ`ۺ$}(|YSͽJ*(lzFċƩ9KI9ٜbس(A_NFqzD x: ({9U$0mOΕPk~١;S6UPH` |qbD}fO;4K'eg1! iw%Dwɿۨ KPh 4JwD,ggw N<A׷kI4DȐ2+/UF #z7m`l޼yOe3N[oK;~S,,b*u(N;OwZ "to2$m iKur3n:22$40-"Ku}>LWt ˍJ2+0gnWrC ;  3 kmKauk@Ų$"wMy{,DKC.s"Ϭ>7e<" ocbG,)A0Pscd!f[Q BSsPJ{RJ zӝABX~yJVl/,b=KT|q8h8dmT=?Gjnued|p짲0&ts BHl+}+y$-~ 5!N.1lWOf7-x{&A^uYuȦM>mhŐ{r/ƢfTR=~~~gbck bd55v東Ef8:L׉w|M͋7 \#oT X_UeۍŽudo@^Xg$_i^h%Hㇰݨ)mFt&bEa#kzv*[FjB W\Y㩒6M~}}^5? ozhx2NcMUsK}y/5a p|GU[d40nSIÈ9ojaW#l!ZJٳ(Vd*Z+S z; ٯPJ[T/_)vS].r'ԊmAK:aaČꛙ 9Htbuv0tP$29|n cgcm32vRc3N{}~}ߞ `1:K[ Z=R⤝1퍎K P~ in1 !e۠;CgqZF`nC@chkFڐoYId~wڮD1LYQ6&i5M` K SW(RX:dy^Zah@]M;cb m"<̑O+:] +31ZrpnԤ ~[; 3,8:(Mr=y\tnYλq=wƣW%ư(ow^j {u>}Z}굥 e30tMױ2sIN [e9.,71JHRD}VYYF$L\Pjw=4+M"stWNJaJiIMnye=FŇyRz916@uc&!+ zݵtn1gJJ_*ˋ])mЖߣ|ıNV_d+os tjVKW'.t]DE*g9VU[DX\H){.i{:f`OaG:m+Vt!3B(3<8;$";}h\.::=RnF+#+I(ș_lA2O࿆+7425kG\WI7"a0LGeu6<|ƬzasrЖ\F!BaEEDkINJ=4f`dٚPrM3nn&U?{-.kAֹ{٬Gpa{nT@*_F={"DIy!s f/7Q^ldOEMgצʤŖ-?~OHd#Kxb;FuuVa쪳kq:Uck7DeߖoL9j]it<1o\,w[ˈcly =_ {B6}zsMI蠓$$+?9, YX=MQF0^-q8~۰6 )SWZ`kri`zAg\h}l<@CA9Nf>XSvdMŹ~+gCK֔3쉶-Z;΢: v;1ȬaBK[s=˓oWZ|rc(t0=ff1H^$\k &Itε5L6mm$)߼~Ӎ`7TO0&PH%:=YG쿹LGr\lrT!y/OUo_=ԏ[XVm()uZ}'X JuQsD :\POKZ9{?^(xFbv31R+Ε%?~T` |ܬ J!j{$T95'eM'o|G1I&Y43O6`+(y$4LR[Xl3T9mnpUaؓ׏dvwkYg41;BB6vjjuKB^FEJY=R%IH;{Y\-xP˿ ~T7MZNW{8-H]?mh&V2e($Yʅ9sqPT,?MQ)3H`>rs`&Mft$6ǜFVC#[Kp<鈞]B"|V9`]yPPc0R+y-% )U) l9rՠ# %61W _ յFP7,ELjU\W_N`Ukq󅿕v8 *#z^kz x$iܷ jm)?^4&{*t&3֎JZ=v͓ ˯ALbhMW~n5p"_&ݿ \g أLfZ@BZ3m$B| :?hT˝xQ?v_rw-j (y3} NqBJ̠LP(0Bp4]i/@>R Wt L\n¢'H95ܕH1@ӲC* ZAuUXɄkɶA|'9l*~e]BL$fG֭-1WA \Au4 ڄD /Mɺw"aS%R[&&pt3ywZys#k@8 :gN=ι:8<44,8YO}T[2cTsb8yY'aU.: g| ñvKH{֯ 1*NW_/dΫ >Bs u5aO$Z]Ky{;t,^ &\h|~Ql<4Go6~9s47RI1e^ͣjc H`u.ɇ9PC7L(Bt!o){JXj0,`*Z | H$ˏ+c|J\[!秠Gd򀛹lK)rսcJˀ6N=,.m{VlaPK t91#*{ { -nuvola/48x48/apps/konqsidebar_mediaplayer.pngUT gUAOPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?P0@1b`b+ n+@ d8311_ܹEDDy <@l @|PXX䳎7m@bՁ],\,Yco߾2l߾ASSABBĂa}@}S  Z{@M$%%udؕU""l ..p~>N())P a ~l@1"'FFFJ :@lr4#+Ü9޼y v //Caa^pJϟ1| << ׯ_*J[n jĀ [,2 Crr"X? `S31ahidx=310C꧟?܆:4_$ "6TυZVVV J @f `?~ebta, /_`8z80C1ܸqS xr @|_A$a+@` vqqqpvvfg`ff߀A]]!--Xzf@C2tt3|ݻL>n߾߿7f&@?oR*_  >>> YY9qP(+((mII!Bf,CCѣ$p1cck`'p1 0.1~ǿCC.(=TWWgffK ZׯP611cIb;БG&Lh&R ''78< g! qP B-ll2ڿi1>t5;;p .O2h~'kFB/33-ogdaacرc ìY~enn^o~|#hre[@ P 8q'w `r߀:4y܃:4[ 5in_x7rRVAK`裄AY6k䩣 _ \JT& rDno~, {Cvv.0l gAe(a{ 'Cxx8 X%g3@HQNsN~ `{ \H @غl/ | ` nhj sý{w@P3Pon۷ocYzM^xG{a}z _UU Iv`w֯_Lv 3{`9s:=2k@;(ݷ6_QJ/^;#W\:%0f|PT̂ؠ/--dPQQ?W1xI_.6ŋ~~~p#=[&y:**F7/\A|o`y952hyS@ @@5W899lP"e;0olŋ^  l1pR]ssc`a ;')d97a5)܋ !8fhlА@12J;~ @,[} > }`c@jw?FƁ b XX Ih =l?$@,?8 p@c@@m?@{H 0p `@gz_  "ARh|@,g$AhH$!.@D6@#>60>J..vQQ01Gȏ9D N7Ŕ)..>UAAd@ׯnݺ r*>5< KLث9d4"8WА?S^IENDB`PKGL1@Nnuvola/48x48/apps/konqueror.pngUT 6lALPQux W{<߅\ތۖ0E1&v)]̽BmVRDn"V˘;5}J’[7v;9uy]+>^;5VA  ](N_rB( v'嫓;:v_ȰظRHdP(l`xPWÝt0[D.'p}F?|!]e"G.9 GeRϸ (()!h5dV0U"fPۈﯣ%ZJ+0Vp>ua̛>p:!WgxCr<:!D-0rMdw.Co/3DȾ6x@!kqy\n0 p0Mi2dhZN$kd?m1+Rj)9`s99tX4Y @ٱpvlH GYN(r8a-WL c\]K{^俯?} ͓4jS!6^aLλLڵ ['s>Ѫ֮-BjE8.],@y/϶nm<]:A`ȚH}ó%mna5:F?4 r>D, zN&:j~PUxUY2 }Ȱ'CjYc#d ]V\EAmy<~'")H# (m+N&DQ>+k7CNU<4{IppXL]t+;ZVn ^81Ev>v.12)p77|PC+֧&daL^}s`}Ȁp-1qOq*r;#s6a:R=+'e>%F1{=3Q 1>›i2H]=s n8FJ#N ܛq'DO=Ϩǔ1~k+p2eIuNF=N%&:/] *m%\SDM9RW(V QP'(($Si*&i܎kB$;?;N'Bz>Rw#dA4Mffb_WQdY4 y8jkBǻ9H!ڍ<CD;W'h F$]++t𣚿'[ܙow@.Y$߄VH: {:& Z>uBD  R# % VsH1T? kӏ/^E/MEC~-7m6bvXDz?MÑ4 Hdn "s0 #ܿG9MH"PwjVzzZw*@ ž*[uJMA珔U!!sZx[P"Zm-)60֢ ѫYoN?gFlBڼ: +$ŮV[p*`Cօ92֦g)lwq:/QT,]APCrX<VWa,4.@DH`<8f=<ba5`YS- }oxg k Ivp Q"אTv zolP.ز3O]ctn] XR f Jn.oFo=G^؄]|C/8q[&b͡!( ˝;"~FzeYO5 e9AxW=?+:b<$ׇw(iIK\NFqW@` @U<{06=p fCqvp? c;YksM{iifu3KXŖ,"|RCIZ({4BK (l ,(cȵc z( JeoT0E"^G):zٷX, n7|;YRy9䚤nf\@>V'+uڶߘ+6Gfv:/HK}9|KiӪ?%s='9b5: \^sj}f)=T3gGޘo;r }nլ(iGUBWNJ8<9dM*Mmwy 2`WQ3>C e41A"$ĊzrWڔYϽ o3ʼnΜ>RlFSPY0fTjsT$+q횱/ q ^ݐ踐3giO|х7I˄ٴ@Npi5NCY8|,2֤ ܒ-/@9B{1 K/-UJ>6A ȻLfD6DgK,Ⱦ*h%r.{j®ݾ!XK&ϡ j]9/F~Y*{M A4Pqo&˃)xz 7ܖS}EL8Oyr q5 \1)e[,M MNtΦp~6|SPkUO13HYOAkگwTK*6b[ D2ApqNu*՟G'Z#8A9׮i|sj3 _wyPl~oOU݂8?h?j?&,465jM,J%O*\.V}"NX]garD~dF0ǘRU檩q&[hEQnsY+;?SdX/؜AeX} \)Ͱl|l &fVtC g^7v@< 4nɰIYhGw&R R^x$ji8Xj  ľ rhf6Jsba$FƅvXfRC~^wQw;P"ԗIQ7 AjBeC*:_lˡMG&5tc6Y.Ɵ&-! hDGC(֩.مpG"[s_Fԉok˶;{4)QӅ#`JR[16i(QK(>Z>}`F8F|Uf &8kYpJl7+C3tEĬl'bMɒUyJ[Oa o jR <4:g~}BBt1ݱs`P %lnkAPͶPxQ}`%3dM"IPȦw7hxe,ܻ E7?Ѷ#\緿4_Y;,S7D{cXE*G7*)o࡞˞w4.7s*q౫mX[6may]cZ^Zx]ѣ_}WH #ӔS>wג۪ ?(p *\?̄T'J4ي}ː4?5o{U_4;2aOAeJ6t ق# A_~Z7(ghE>>ZQP9L2gVv 4f )aNh**vEF;wj[E@U4mQVNY޷R"clGօ$H8 w=o$77|N!> ul@֊gɂ㌸t{8hVLϚ_E텛v[[GlrhRH`h3#N(jrǤoPK'8]\ F}W dEga*rB}hĎpksn|Qv4_tsP0tj;AxAl-wsB| u Wγ{qP%-9xx[[:IGu5p1!qq9<0!E7%Wq`[0S :Lja;r Я#~HR>PD#xXSp鶕 MDb)8hUmP& lO? R?`oRR%ՏKJgaLبTyPj?51jqX(H {Oڑduf<@egQQ3oO~D뇑oFjgČlTi)tۄ#GXNN賂)~{mPH?Z&z63;{B[UO9W!YyI¥#P!-O/AVfHxsiC{v=/0)S'ʏ\zU,cꖅ§C 7;|Qq|CxW&۲Ռ%I}>f>50e׶v3 79d06 .n/:|x(cvZ.KgIZ54_&.Xw/w˼ܓ2gGfZ2y˶@l+:{{()F *\\ZLpi_Qݐ37G<\2̣_";aD.&!-^AݻLi|މ?Zv#r"\'/Puba;D;!R]vZߊp~\-s0A\}^#!  hHHQ狢+VgUUx-))a ˃Z Uǧ&PY_sTڵ2h2I> *ʈ{:>[U>y;)Plž;Y\+y f*# 0ř\z5*n~An2ߠ3w砱-)$lա/`:-E/60XX+m;%.9W[P]κQiGo)T4|o8_Ueᠽ(]'GZ\R]]P˄I/@:wlboN(bǰݑ)#(VYCܗ'>$΀/V ,<UdUz3܂h\ &ȣbë JըPrV ʔ7(KL>5;N qFӡzu7c݆⤥dc rӘ GaV uGԵoj>xx.P&ĥ*<:rP(n[Pb_}:Us)}wrrUM]]0hߏ {s}ƅ ?gU iq>F 5U9nï>],4˱ɠr!jB\uB||v\M[v?o(&(1v+$j\Ը%pD[W-Ι#]tB,f6eXV "[]`yE[ɷ^IڃY56?Q֫zSc Sb$-1;A\Qva+`4XdSO%qPrODƼa{9r"3Oʮ8.e:! 듾,ȧ\Z%/YΏ\B7phe4܁20hgVhbFBQ=zc46^8[ۥ#aQg ]Zy DxjВ̥ 4._$ &Ɖ$I5c,ːQG]]ӎl|eɘ̍Y5jP&KO*^bcFB݉Oc6«+xt1FCvw]ke}vIz>D3Ь% cӲ,E:}T%7sNMv7Q)@SϮm&F38ᨁZb!?Gy .]2  FbB/+kU#PRc+KPɚWݧHAwfR/s6}BG"4= 9fb߿~'4 || |GkW,=28O7"ŧڕlMШ6LcݍUIob ҩ1-/ugE%4c!jݏ0#X}39J荱n7kN+X0wm?upH>։f;s\qJ"$p}먩465*6fHHm,T,[ :md_W ck̍J -6ԱlPkbz%OFM -ѝIo'OKߙPGj֛25?e% "-=WOA""X$ &۔CM)V/E3~xJ6w^? }J tǵhBrP&QqpOq^P9>0ٻӲbحgtl0ukSjW@KkmӊѦT AKos_;'9ۦRi]uV=+Nk %E)ꛟ1)Yű+Rܩ){>qUeYg_U$cާYvr|5F<7qS5] z0^9}+>3 Tmp3*g\œMм Ԋa:Aۇ䴯!' N [[sP0{,MI;+qUՇSgv:݂{' y"><̚ş -kDL)OYUU;AqoCɋMr~S,;2lѩoTV$^=t z?>8@C2oWaǞ7fK^Q)n};bxFtzNOO׻Ӏ.i?nӖ_YP*0ھ蘥?\d-6X-aR |}yv%qbTPhTu2,Cs_ kk[t{nhնh^onriFWllUBweђ3rUgQ=GHÄT}#":{W Q78Q~ce]իBG>mi/R=9F ΨN7Px\.d(!ƫ e& %:N34 ׼f3BlI}Y R>-$C5$lllPNNnIl"KP,#شtY#Ǜt!,V@= ¬_qszx]ׯ 9 "6a=A% K # xM ]2fD]}Q!u`"A=,flodۻ& o!R]NHP/cE&˚ʏ?z£e㉉Q?Ru*Gՙo֠e.yT\}K5㗰b,?҃;oYWTcV W،ѓc#-Ԩt k'mm1يJ-d "H;M=zw^>pu5,..! O5\mI_~: rmcjૅC#x罥ǏC׮\,62P7<@5p*Zߖ߾*7YB} x׌PǓ3lWUsHmbJ ׍bH lG\rЭmC6= dPK|L10!-X l nuvola/48x48/apps/konsole.pngUT lANPQux %W{8iyˌF ƙ2L")39Dپ5*r%3FCRmTV&+IðRk H#kQoxys_ Y^PoYxv-Sc?h{?nJX?xDr4JES#bC#N$=ݕ _֞ޒF` 2D%}9NЬhFF@|>/ Y["> y?/=G]ytq% }whep)hf< yAX{p\:aŽ4Ćl&bc|vYkjӺPx+ۀѪ~n|m,qjLMMey$~W7.hUmX 3.Ňҩ%erNt| 3 k z6 =M ;Ζ7U*9$~ ?xARhlZDcw:(yAg]ED7SqڹSÉxեUm(r[ J5! Ssdsݎ̱r֭]ba:^ 1UԺ2"gyCP'Qe25zRT<#%Wz~ v%8̑sJ'8T'=!!tWtJ)9nj >~E%ƶP.䎙֔XaYpۈOU ZF8(E=|) ACveԧ<mҦ'\bWo0UP̙  QueKQG8p"u[٫faJ,ѷ^<2U59ꢔgf{7_9TXG8Py?)wպF*w//8Pfb]i"LkS!ltҵwn:qXwL;֜п7I%8`2C$0>eLE|!Z_+niϵYJ]p/^ ?a Mm̒n]ۺ4m50l14IScm20vf2rZ?:qty^u猹0H g9}M_/WvPCP{>Xz(7vl+ #؝FoU#/;XnezfycˬGjh@Z Ղ#OWWy g*j#wN?X')Y "m@׌K |zG0kl4CmyY~r[spŊhJTZ L )oW[bue9Y֋te^%FG.׬wSKso1ę @JI68%?u 1!aMq}Li:ܪNnt&=G&em!b`~eC H3"7iuylrtbgҶ ʽ#$־ ؋>>xag t>ĿD&_E,Wn>J9mB5 3kzq~qS JݬAV{ :Tgb{+PBx#gm6U *.N@ ΢3Sr[hp4A>Z"B sdΨpYq_2x ˚]"h^U,^7ĆounAFDڒ5t bNaLѸ"˰S]ՖϖZG= O(=5Bଋ*1jdtFs:l 4oA'[OEY]ѿg -e_jD:A\ LMfҘ|;lÇN I|AHu Zi,m% VY굚IyEsMnw.VU䩘:8i3؎ ؐy@xpc_.7 paʶΚDC4:#u1]_7fv8RT2#|P/ǚgQ/ay=Lb&36ݾ#ǍaG) 5mv%wpuF'%2X;wByfw ۄUzL Ek-4(;Q7ko9+&$K4E 4O,`ˆHPKxL1Xnuvola/48x48/apps/kontact.pngUT lAJPQux eWyTR[?BQPS4{3,қ׆keXiZYbG++v,-v++8Ͻ fJ9UC~~ֳzڮB=oHw/,h(&s'}[e'<#b"I>1ȀЈMn`@ܓ1L 4jkɵ(:4; u޻sr9:=!K6!t1 Mn\i/7&T#qa mѷՌi-ڵd\%3H2@p! 1'9pYV\ϕ6^bJe&=~8[X@#`ѵ0#U8:#ram~{GBbBFXrx@V`&[.լ97nA{X\_aY* 驦We #v`AlG٥TC)H. kA"rV;{eu$:O*"8`}+27Llefu׮pB-KgBڛee[}a㍩qxEf O ' 65Ήn}x jtꒇ&d2JW({T6tPNITd agU8ئ/ժR{Ks)^ZJjn'í}c=Y4 FGہ޴n8N Q`s.$HSgXJcH5-u м`+Cy2gPNdLqyc{=pk}#-p3B ɺ?~yԋ@':{.=场 XFƞ;Gul>0nhaY4͈4w.23E[,oy4L9) P P"J ׄy|}s$-0_ۮNyPNj_x2.a~B#h٠Ѕ.紽5&|%&m#ҕ2GJw7ncRi$NHQU<"GzA6ZyT_/`[ן!I2nnM&\r5uAa12\*nƘ,Џ7ɹ2Mxf AğZOO3LVdx?#ž?YA *aF^֋I%-Zbaʕʐkik"Ξ=Xy󴾰@U^3N)$R%$ ޺u ?]L!>|9nRf)Ai|t. 36KZU5vAr:3 GjKF*?fFCߪ;4ݴ,QO=3q%gn1AspD/Ba!ثd7:1h{ܱJ `W~l9<9erm;Os;B&"M>l?3.6f८HۘIىxKwV|͋]5jfqC˥+Yq~bЗL'|ZiB;LEG\֜7RY#.ɎsnEl?Jeը 尕9yC(sfӁ%Uݨ˛uZ N0f;:p+a7f"+$srtd`X=鱭3% e("qN}Rbp22r`shaO?SliͻYc| Ȩ @e~*B70ͬ[Ub}4@-Ti늮L_)[Uw_M| <* eCؽYg&v {H+AD˂_TO@xQ]ۍc{ؿ>3C,OOy?rqKЄ,g8cguAWMƏDfBT!/KI}-7YcÜ9qbĎ[xn|3zk/լ+ 8|7Bv@AP^;9Y17Gb ]>n>dp7AnQ+ݷx-5vn[g^Wo'݁MeLh/J$X_WNĮk؆3%ewF$cIr$$=&]r!Ošv .1;ôv5[QѮ55fvy 8r/9ӈq?Mg9(}O̰tQI<]mH}&g"&ZѢ!):ܔ;1/iptiN:yzW<ڑ}R$:$Q*b3-rۗ!i"2]RME_M J_ȕ}-Ŏٱ>AZbP381^2 < 丧MY.,Ue6A&UaFBwKz[?iM5vQN@pY_ ?$r' zBmrA_UW]`,'/-ex#,oI_iD8+{+ 1}ܰ4W]mO5CȄyGWY/բNcz"3X2V̫)¦/vЁa4<}&79m?HiRX&f,C?Ċ1g8ai^^w|h pVuV[ a?xrrUSӀݛt n9d1 8 aHBB~|@p_B^ f>ٺfFPKuL1pwRcnuvola/48x48/apps/kooka.pngUT lAIPQux W v!ty޾_;P5 *1$p^?|&N>HMN8 )8c1#NtFj{;`gT ŮDq1:nDGRd3C5o+s]Z%ULVrչ:M'0LխnXkiY|dUH4LJfs3,ZtlyAyvvf&SN,mqI,Regd 3WoJ +'M+Tb?]$&,Όꇄ샚G@ vz y.3H.Q,XA,&z剉^βDE ͎`1h&)ZZ6ℳ'N+@!ּ٘f[B-Q.{HD3V*p=W{ñ=$d?EÄ/\Nr#?33p/"QakzaVl@ a&٩B^׏,RnH%ԆoKDc7l *Cֶ:~]f˙*hU5_17=uGffa$jl\ML&t"R`Wk*SD**!8zmgqlY<8Xqvu_˗/sc[LhY"4̕*?<.=^(#z+M3tvJM^e&o=@$#+ovw [ZpUD__,g~#NHf!D`"=+ϰ ?f{G[( M>)pzǙ_s>&!pe;,zV|11iMkltmƒ|&Z(~P'֎ZҞ, 6h?oR"޹HNl,, ~Va{׌,1<wcϞ6=_g;|}7P)KK X_]~gg^y'||BS#ꧭE@Y|,ۺ6DiB\:/*nONP+ '`trshOGh˳QBq fMŒ]MhWͪ-eng7\S@6 T9:Mbٱѐ$[ Y 4M/g_xP$P,EGIf xrq}qq0UIBklC}<@[H\zn*܆{f]- l2!-SVT>/7Sȍ9mr=Uaus󶆦!jV]  #K!*CC_CO}(/ '1‘?ĜJbv Sk, .s+P9Li9&>U@)#;scC!C4%8)|1Z 6Z= z,FmyP2lnBfjP(DZCm̻+D.AhT-W+/t&vJ L@s3b_a@%#ُedɈ>/6P`€oy,&#]Ǡ 9d>F{E4 I S>t`պ\ammpV[:&dPFn8@ gRP &v-bxtȐoS`4K32W,E?k 8߅No_Gn< ,s^Wrl)`c]rB? 4icC(䲣m??nWVᇙ+BfG"Dbes\F́yt#Gea?ҋth3"B1岢KMo3ϓ*2/|$p{uD7隼;{뗻>V؇O#~W*y{ ̾ Bc{ Ź_ZӘyf%&OA>"Q J '[`n11BH >µ+s2-@n1(1ǹeF@ iVFujv/ #4PCtmϘ/R8@kzV4thu,"k",tK6@_S$¡<C\^n2wՓskmm8+:L46#N' B $ϕd hxwYGGҪ&m-Co8ph`ݘiX4,F##![׻.Ŕh*bVϏLU0+ɰwmA`_&ĻB{'[:v+Ҍ<2fo0>fncYU[{.~E_]f)|Uno-p;ć7W!WkԿ؍[^{/`$p.#  }mN;LBaDer} @ԪS߲t ד1t-dQ<oUXysm!5֟ RKJ<0Ylei 2u2\\Sb-I{&l&sjY,X-%z3ȱ@اźcVEA.2QlQGOtêj96l˔RHGxLsB,}"觘,/Y aM8S,EҢFFrT pU *ǪepzO(>PLX[`a~ Z;¡UtōgiUzDq Q?M8{% ¬}G6 v7w_i- Y asc,Ev/*K^Iq#MckHjOks0@xzj)Wj =OIG#NiR`g/{84&$K2t'U/w+[/'J7Rtgֱ=f#pthhUA;"TS~UJˆm/!i(-Q!C1]x "]7.š7YVgKeX߅ZbB \.>~װjw(SPqmSiVFR@Yr'TU$+n~[$y8s@$L>-*ڋ֭Z#-Ÿt[!KXQk LUQLtSZXjy5cͼ5(كAiKO2/.$/"rvXN*  wqg--=CCWb% v"gP6O=e"ouA :f]\Oes_ I[ڈOOI"E5 Ԍ Iru'uUV^hvzS muYX{)ٖp3S?_09j+†ykʛri[ v7m1۷#ڏNtn‡پKg٦!Ix '̥$ps/yT𡳨` JvҐ%FC7XRZB$\t5Ĉ#ճdzO%YrnfH\wF9` HIqeYf4/׻;><,KGb5vwv]at Oš/:(#(KGQfA7Sqb5t7A}w>]6՛}6A֊7;s<#ZX0.̮[ߙo;"S,F]ej YkF2S3nWt7@ ҰȠpC%}5wGoթ,బVr賶"(5]%˂6݄ #\p#,Wv Le[ymZ7<;2>ᥳv}8OA'=B.5P$иM.uE vYIk+-rٓ¾f8>Ԍܛ(B@=e=[= 1Zhx&0`U#ݏj5 T=(-r~AGNU>?#U޾yYM}8? X6G.`:_¬D:ٔm=,dsƜrgDYý3?f ׁkM)ҠO=ڧR)_u@@וifTH@t9 44&W=A p7k,э !n[{Gu<K [QL,굋ƻ4g`2H.K*9JL6%.h)]=[7G1$0Jxߒ:pEX9~RDnC? iʶdV'|,)graSglzaəyoMsTCy:cݨ}]+~$ͦza{^c0VAsNn o0Y3m_yi&,I?Y̷b %o﹛]x䣛 Y@o48Vs_M'w?dc;PgS*c9-gbB3F'u? tHa#0>͏uO8t _.[Q1j0'\8[`*s? "c&6)/Y~:(2C,LiF"=S<(>>bAPlN,Vc_ZA @ԩC ̲Wdr@ECmj{?]4bRu)*S\AG.6&/ěB4J.*7q4V[8$P4Z@ޢP&ɞ\liG62*oOϒZոcfv4M Ь2SaV6Jo|{tg'jU=hQot}0ץ{Y_jKf N)8gmm!QcNE4|z-ŷT M(.:c W]1ֳu3C-u w3m*(s. g@j] ]z59vuy%(l kSon#$Oy9Ή_!fmPu*ky@M#"]ee Q]|Tzmz:(S qLe-bԞi wx3up/N`kEBy,g/Faet {Da,/:<÷=|G8K{)0 3>JRş FōivϬ_HKLw1fkmYerN :[~ a8l\n.yLG ^9!upM#%GI`<7Qg@ y&k;j-RS!zಸ'!kEmܠ4du)v]ɗ+'\-@tJVܴD W L+%.p*^1foJ*ĥVwaNeZ44xhfuW3IP ˊ'.zG4n#oeΈCJ}IdumM@֌2gkM/=ҩnu.hP[UVSpn Ӌu%3#$N 3rSc^$u =o{wSK*&PuM<.\ 'xx 5C3:M+fNVhӐ6;K0$f̗`wn}%2d#l& a|ֲ>U:s!}:o2n"Iq54bq\Ogg\{gĤRCÿ]yo_jSA7JP{w\Bz ̦,ڧ'kA&$hҧ xS+Dy(0أiA+Krĉ| \Xq]yA7e5zC% 76XgN|N|eR!{ ;@-]F5x`߶ 3/.)s=C،~33Og6v%6t%tF`{?vO+yS9N^v̩wd@R/̜\\k/h~1 qO%^Jd$ t]FgOK3uWM\lҀ#K)yÔfNHpgD3:Oϓki~%\: f~xϟO.#N.Ɔq q,?(;q$S^sn"JUQf-mZvt,H M? PfиF8CD$@Aφ|2U4;/t4~3!&h u(9bo*^Bx!6\}'vI뵇m7bv#t]:1]6ʡwq4[|`"ˮgӔǯ@@[(OAO) #(@I3gΨ;D#Ghg+xGȦ drN7s!Dpf%mFŭh1cDt:65`p؛Fr) 7ofJPZ=?7%] FlE? VXl [Je9=e6BJy$WΝ.n63"XAK(QĻ}}0N8Eu" Z%'\\6t O*mՈ@lOL96eU?+. p XרJp2(2of=a$bgM\6fkZzcdu.4d2x,.='νkߓoxd>[ I j{MO%?\es$|Hcg13f#;F?Q1`Kɧ҆aoIx禃.ʩN)މK%p.qsE̯/kXHbZ9V\ޮoC/ǯ#ZeLƣ)'J'AXA,j!ǝů ̮W.Cou7F5B-H_e$?2F|mvi&gGſDY&`I& ^@u XFʪgf98 7KBE ̸Btl PpJl{*9LQ 4I^  <gDˬ.Vf"t#@D. L诺_6w4(2u|YvB ޡa֋#̳ a]%hY\kr A9ГQIt(4A:=dЪg2qfLXfВbΚjѿ\ߜO}ԟD&⠣I\Hc2=݄%[T/Y&-B=p )èU-F% OuT?{r AC3;lmB[=mDx[MM6x,{#mVH*^Np(g/X+:s ?~$wELPEa[h-b.7-#vLNۊv5j_~o~ ܕ<ҰS(4qPd'xDa~n *X* 4KkcKT̄/lJ &u6q:x|AZUXlr. Lכs G|HaԸD N 4w+=Y3+X[UOuDIQCa$}5c|U#ZKģֵOh1gu5y58xt{䀇 !eDG]RY@8" yAVc:!4$UM *jn}Tvso';&Hרe&*u#Oz}!k#Eg~)/X'BcKv^gX X]=5N|}rICwtrTX=% ޞFOq,>W "uJW{|*7eE mFظƘ(sg0J1  RҰ[Lv!LJT}/02w΢=[.].@g+n=їQn߉-ZԳ%ZWYSK;:Ȝ~^M0O[S5փwG*FDb *Ҽ%h8ڀZҋ\5|or,%䢍o"]Wк<\͋*LCwnS y ݇@:X}̞WCV3"\G"/xp(z ia!ծH#1B`tG[F(po"WXl_j88kK>dS,ZJXz'l!c]}Sv/.73ϚN.]%ˈ>ٔy}>ؐoo2lj<λ-E5-$$}5LpSNm1_,"Ӕ7Sh^m?laFz(y+yt72WKM#WITP%c\ 6h[ 4\$oIH-lC|IE | 4pdu]1Q>Hb*}g!KyETk@q/m2B;쀊xV v~*WX|mQHβ X7ov(@`A_dx4?4hZ&93𕣥ø0,Ѥ'IIvg&ne{R G6!_j<v -J{4E\sZu⠁9\ePv<_N!ӆ_$>y_c<|Zkpte}9v+T2kxx,{Q!BkSxyQJaξ{(;],9i,59Tః9PPIK ' "X8_B;# %76?ΏX yOZu0'8w8(Ϋ80C<~E~#>3&sE}fWq74'UXeݳ9[i8IsfFt`dMz+I9 +ͤHU׿<Њ#zl5aU~J.E,ڬKpTsG~٘t׀@GӪa11φHL)׻:=, $iu\C'A*bgV\Gh;uLQDZgÜ-cm&O8Sn`K[ +8ڸY vxMf %ozY3r)]p(rn _m+Jk7!zޠb]hW< jeG,-ڷ`8 .A/BeccSV=br= 0E\OکciU &Yg*$-@GdCjJX%06bu ]h=]e-ẕ#.9/p` F"JO!H:xs8uZ- &!%Ԏi M6s{8!G7/Xnq'x2o$)23Ouj|(,8x1ngmx.vac}?r,2"\s ~o:PLn]0321~]PvgV`ag^h|UB3)N.7o\_(RnO#Pdva @8%VtXhk~]}PKt91 L%nuvola/48x48/apps/korganizer_todo.pngUT gUANPQux %X TfpqLsCprADz,1C[l6T (mURgڳ ܛMDͬTPP;={=9>>͏uO8t _.[Q1j0'\8[`*s? "c&6)/Y~:(2C,LiF"=S<(>>bAPlN,Vc_ZA @ԩC ̲Wdr@ECmj{?]4bRu)*S\AG.6&/ěB4J.*7q4V[8$P4Z@ޢP&ɞ\liG62*oOϒZոcfv4M Ь2SaV6Jo|{tg'jU=hQot}0ץ{Y_jKf N)8gmm!QcNE4|z-ŷT M(.:c W]1ֳu3C-u w3m*(s. g@j] ]z59vuy%(l kSon#$Oy9Ή_!fmPu*ky@M#"]ee Q]|Tzmz:(S qLe-bԞi wx3up/N`kEBy,g/Faet {Da,/:<÷=|G8K{)0 3>JRş FōivϬ_HKLw1fkmYerN :[~ a8l\n.yLG ^9!upM#%GI`<7Qg@ y&k;j-RS!zಸ'!kEmܠ4du)v]ɗ+'\-@tJVܴD W L+%.p*^1foJ*ĥVwaNeZ44xhfuW3IP ˊ'.zG4n#oeΈCJ}IdumM@֌2gkM/=ҩnu.hP[UVSpn Ӌu%3#$N 3rSc^$u =o{wSK*&PuM<.\ 'xx 5C3:M+fNVhӐ6;K0$f̗`wn}%2d#l& a|ֲ>U:s!}:o2n"Iq54bq\Ogg\{gĤRCÿ]yo_jSA7JP{w\Bz ̦,ڧ'kA&$hҧ xS+Dy(0أiA+Krĉ| \Xq]yA7e5zC% 76XgN|N|eR!{ ;@-]F5x`߶ 3/.)s=C،~33Og6v%6t%tF`{?vO+yS9N^v̩wd@R/̜\\k/h~1 qO%^Jd$ t]FgOK3uWM\lҀ#K)yÔfNHpgD3:Oϓki~%\: f~xϟO.#N.Ɔq q,?(;q$S^sn"JUQf-mZvt,H M? PfиF8CD$@Aφ|2U4;/t4~3!&h u(9bo*^Bx!6\}'vI뵇m7bv#t]:1]6ʡwq4[|`"ˮgӔǯ@@[(OAO) #(@I3gΨ;D#Ghg+xGȦ drN7s!Dpf%mFŭh1cDt:65`p؛Fr) 7ofJPZ=?7%] FlE? VXl [Je9=e6BJy$WΝ.n63"XAK(QĻ}}0N8Eu" Z%'\\6t O*mՈ@lOL96eU?+. p XרJp2(2of=a$bgM\6fkZzcdu.4d2x,.='νkߓoxd>[ I j{MO%?\es$|Hcg13f#;F?Q1`Kɧ҆aoIx禃.ʩN)މK%p.qsE̯/kXHbZ9V\ޮoC/ǯ#ZeLƣ)'J'AXA,j!ǝů ̮W.Cou7F5B-H_e$?2F|mvi&gGſDY&`I& ^@u XFʪgf98 7KBE ̸Btl PpJl{*9LQ 4I^  <gDˬ.Vf"t#@D. L诺_6w4(2u|YvB ޡa֋#̳ a]%hY\kr A9ГQIt(4A:=dЪg2qfLXfВbΚjѿ\ߜO}ԟD&⠣I\Hc2=݄%[T/Y&-B=p )èU-F% OuT?{r AC3;lmB[=mDx[MM6x,{#mVH*^Np(g/X+:s ?~$wELPEa[h-b.7-#vLNۊv5j_~o~ ܕ<ҰS(4qPd'xDa~n *X* 4KkcKT̄/lJ &u6q:x|AZUXlr. Lכs G|HaԸD N 4w+=Y3+X[UOuDIQCa$}5c|U#ZKģֵOh1gu5y58xt{䀇 !eDG]RY@8" yAVc:!4$UM *jn}Tvso';&Hרe&*u#Oz}!k#Eg~)/X'BcKv^gX X]=5N|}rICwtrTX=% ޞFOq,>W "uJW{|*7eE mFظƘ(sg0J1  RҰ[Lv!LJT}/02w΢=[.].@g+n=їQn߉-ZԳ%ZWYSK;:Ȝ~^M0O[S5փwG*FDb *Ҽ%h8ڀZҋ\5|or,%䢍o"]Wк<\͋*LCwnS y ݇@:X}̞WCV3"\G"/xp(z ia!ծH#1B`tG[F(po"WXl_j88kK>dS,ZJXz'l!c]}Sv/.73ϚN.]%ˈ>ٔy}>ؐoo2lj<λ-E5-$$}5LpSNm1_,"Ӕ7Sh^m?laFz(y+yt72WKM#WITP%c\ 6h[ 4\$oIH-lC|IE | 4pdu]1Q>Hb*}g!KyETk@q/m2B;쀊xV v~*WX|mQHβ X7ov(@`A_dx4?4hZ&93𕣥ø0,Ѥ'IIvg&ne{R G6!_j<v -J{4E\sZu⠁9\ePv<_N!ӆ_$>y_c<|Zkpte}9v+T2kxx,{Q!BkSxyQJaξ{(;],9i,59Tః9PPIK ' "X8_B;# %76?ΏX yOZu0'8w8(Ϋ80C<~E~#>3&sE}fWq74'UXeݳ9[i8IsfFt`dMz+I9 +ͤHU׿<Њ#zl5aU~J.E,ڬKpTsG~٘t׀@GӪa11φHL)׻:=, $iu\C'A*bgV\Gh;uLQDZgÜ-cm&O8Sn`K[ +8ڸY vxMf %ozY3r)]p(rn _m+Jk7!zޠb]hW< jeG,-ڷ`8 .A/BeccSV=br= 0E\OکciU &Yg*$-@GdCjJX%06bu ]h=]e-ẕ#.9/p` F"JO!H:xs8uZ- &!%Ԏi M6s{8!G7/Xnq'x2o$)23Ouj|(,8x1ngmx.vac}?r,2"\s ~o:PLn]0321~]PvgV`ag^h|UB3)N.7o\_(RnO#Pdva @8%VtXhk~]}PKrL1[K <nuvola/48x48/apps/korn.pngUT lANPQux %WyXYMA`T 5[)\reܦ\IDA[]j&QR2 3-KSjerRknihjejj;.{|y{h N`%( .fj ,+*ZY5o1csJbx}8*̎&]`U;cWG֊ZM"HS BtX>ÌiAiy-΍KhZ:M=3حN--D"b/e1Z)5n0i*JYkTSS|`]wq|/'n]dT"Zv3t/4W ̶0S.h:[A THN? 6Eۓ)jeU5!!>!)"'PQh4:ovhO0*,1qeoa"ߋ @`"M.lf|llHV̍+ق*>J$\F~xT\pȈ,tvv&[;I7f3AחR $F˿6,͍jXh f:[xTZoI3F@g6-~Tmw%Sg3L;[nP*^Q.c & ,VF*?8洙)KgOH\FC+Oߢii>_tD8W;V t)JpKUg|0$eВFAiUq-?9۪|Md@z #ޞEW=P_T PNu_+* ЭTׯ w3sAj xR( V`U,GkMrj7_1E|xάcaY'TZŭ+3j2A?/Xzֱk!]f¶Lp,.RT̎\ut]4Jg~ u& ]T";h^SB޿0nb3,S"e";\5-HlTAxi]{Ue *\ƭe|P`NԏS7=.C폢z@$6&z9OƷff[PdM֍a {&&$UƮŖ,zVt Gx?F6oywNu]5Ԅ!VNn+/'%4ϒKMC EDc،3>ZSL"?0a(;fE% #d&14yǐMkGBVmmLmmڃgn̓foAz{k1Ksift4;߲z[}н[.( &0Aac, ('7e%E:s2ɧHYooC_)Dv %++ZeS\ dyNU֖0=FBVW:с-9{' |?;=y8R H #Pk@nlHR,Kyp @; Z [bD EVnv_O몢1` w~)f֎*ƳVBiu^+d51!^. D2~kh4cNtsKra.r@Z_MD"iD &ʹ~P:IQӦ'[gwݻI<,09¹WJ` lKΤu7͙I^{`.@rL?6~25ar}u_?mܞnPԾlV-9KL$g DW|[Te\vb"Ef,Paqa<] 9i0"a\1I$+y ,i_vhĄXЩiWH%B/dʱF;ǍIEZ  ֩u^F2<&YHWX@GFaa/N=ʞZ5lohMG Vi99vDl,YoImI~c5o]yH;ۧ}CWGΊo+[@zzq.9`4fءTXo4@o_d ^t ro'Ÿ QN¥2G#ą1dG{Q3DՈ>25A /5iS0=}4E!vJ,&+S>|0q"q:Ý:K&TˎA: rj[![Cz*jLbe,?Ea-FKv8ĦN-sr5Ž5$mMkO+j2#(}QE<g}ڑ4=`~tV"(!qKOАgPŜF3w mcq!bKKN`ˣ?0~Yn3ҏ%y w4J=S! o1 \Ң7Cէ-COlϰO]ix:U688wt8-ta'>8\.$9 ۾Zq%O(<{Zw ӊJnҿ7[7o~ƇAlX ަM" iP;N{ޢ0ձUaӮ2;QH%ԅ3m,8T&TUrF3P +۠'aWD=+tM+8KH܃C %mBb5&%,uNd [YFϽ}?ס7.]>/؀~Pl`e ~XCU˅QseDqQ Yfo 骼'FMZa->Odr_'%zC($1Ў,'`R IX+\"Yi%&AG <_aaї,8?CnT3PPVe2 Ȼ `Lܕ@S"u57-ξ[sb߉ܜ>ĒY1ac;e|!B dKUh\ƖE,S|PR|;AǮF:;՚U2*dzf9V4^\Ύo޼FADWޕJZn箾_Ii=z3;u)=S^C;[\#?%ɮ3s@6aGHNҘ6yI3ŀl\ X!#$:q4h^[;t>V{Krs^>/m ,ƅmHVb-'}؂c८ѵ=O>F Ik&a S׽\+d칆 a% @q=+!L p̷18l9̑wmG`~I;& "U1ڧD5gG8d#:M|<a5zئ¼îly iSfGddanxQd] Y) f} C;1kR @ n"yH_߮#A s~ϗY!=;pvSqzy~c+ZGT,( |)<[Kǐ'W0EԧUlv iwp۷2/4$Ls=JZu,G{u5uUDg]ݳgמ"x W\gAa+|Êݘz4sOteD IXĎku ˴RE̩rߍ9ƚ-Zi,y+]j ͨ;R rٲ؏jww"L3E q;)M5BNKЮ\`QZźGimрa}k= ծw:[z?:c:ePgN7 ȁ<ۥ:!ꛎ)?UX/)M c?K&HՖjr$.ZAN1#niM FBKd8_w(60"8dXæ0C2e* wV'NnNoZ3m.o E:IˏR*ؐE Knt~[';(iȷ?8&vG,9)0d S!3oN+<^0"+OqKc!I9%jI"쪣Io>T^{u{bёj N բHryۛ&$\@ RO\ZJR^^dv!Kcl4aj<\/I;;+on{NefE$ 4QVgoR[;ᵤDgKG@|oӱ *_[↴_n El~ߢqVdm`;[5 'RgonLj3}iFn(3G|EkO ף; < sFz헤{P GJnOΚ_GH)E])=x%[!0G@=&a=XȟPKpL1ᙈ& 7 nuvola/48x48/apps/kpackage.pngUT lAIPQux W{<n_suܶu/dCI.B8pʥds۪#ݔPsI.A un'tC66BcNɥ[my|,];tVjCRAhYJw@Mzg՚Qf\|h=hD4H8+: :<*xg >{μ#E($DQ,-5%ӷf$| Okh4ej;7v߱X$&VMJz]ЦuKއȃLA}A~"=Cq|SKU PCB]UtKJ FxK\m;:D=3~ؗ6hV%ȟFpbדn˲vXI]ÇZ xnfgʹ'WgONwHPS( fWQ1\X1Ֆ7GF B/AJŵT AP`ᵨ+WJt/6  ;q2.3Jh#ھ!߻Wӗd}~4ӎe f}&#gpL&N'|7|6ڸyB\ %dmRұgvrz`6N1$33b} 999rp0 cbiOJVE1(XvE1c,F8nmG5n^/WO䂟JS5vFWzm} I=eֵ6hlMks=Z KUbqdeqbG eώjcW'{*6m|j&.\R#jI[̖L 4R>5;kM *>s1&nWA'k/^-xKerȡI W$:\Fߐ|/"Ck^{iG!I@䗷,.;.ykB>fHڂsi(./ fS(eOD+I*09R=e]@bWkH;Gmf(#l]Z",K-bQ9D9~qRZz#MNm᰼x>|"+-H"?d,%N-Ȳ)oX\"qvkMqZTZ*i3'6praN'BPnUB8^K-u S 1gNAC:)jKM:Y%kA*G$m-0- Fxay% -&4:# f1'iWZ<"x_Ln\uj zd*7O8GٖB x-jkke̘w3&6~sj[ ٕ.p%C$h"~?)C9J8E6/k-鲫&/s ?6k<\9Q-:"tgR~ ;&Go ;y:xB:e9vp|U|o`GOVzH{ kkaْwUyWG襕v#~[+`tfgYs&ޭR.L];Y6&x6UĪS+TҪTc" ΩlrpdD.YD9Q6-1E>:ڠ4A"r iU6\I%b,/.R5t69eY=Ƽ劎SA}-_Ed/d %ve#4'Z&m~. AɊo\66zRU}5P/L0;!felpMۦ`: 9ڧbJ^~ƲYM_o@e8z$/<7_\gR8HF;# Q;:B8OrYdCmtHK'k嘋4 sy_< T"%S4Ǜs2yˤ^§ 0sH,fF5O˒4=!i=<ʜ),8睇R&^5CZ(U,/R<>'Mkiİ1(QgN\˒ :tG6ާ?+%ŪY˞ڴ4Ww*UQSV6Ҥn ldF`@;#h]g89VZ"hFIH >Z{b2 fK~P<^j_[^(ޥtMH{_lyņJXlQھUXRN0:x :b {w6eyxükvM mxqƪgjn7=i`I+*ԩo3q/T-l*xe!Ji\6>V.W>@ɫZZ?zz4.f-m *52/twC)YܓuPpShѻEi))䜽S"ݒLla6 t:lsZ/dN#)Ҿ2IѲt1~Gr+$0Rgsj/@9q`י7XLԺYH)vX_&SP/o.#.c{uO\<njLfVu6-qJՔ#id>aTm9z.Kqz8ۭ -sFF!q#67;A!$HdҐXQrX"+':o6YtĜa lI;(^!I\s-W^LYE4Ӹ_BL,1??a(70Y"$z8eGlZ&aNiʿ0ǔexX1,k:dx[be BIw7renjYt) U 9G"Xa9Ŀq91"(4H_~Uݶ%WQ"C[:K9/&=2C!# |ܖE;{'ѰJR~Umg^/z* Ϣ٠d6V ߥ"n7`#U NC_ʌŞIWG*G>M *i" /͡efT.0PAsNgiMX 3QDvB2g[Ob4.~ahߩ"?.j}+8q"%W@GQ3'gzzR;$춖f&ځ)69dssCFd 93^/gy `妶HB_ C܆!W[5r|+KPlC (<P<Y^mxyhYHv@׀9?1F0ipPlL? qma@vE[/՝M\=X!or1ΪYx %OH?X?&Jxqy.:),Fũ^默wzUs>cu>>VhU48ourz)I;U: w@ZӞgۡdґ\¶M"a,hT0dte!&螵}q+J9>lROIQ+M‘V}M1usѵ$ZF|jf8UTy2.kz3I:׫AG"L_?W ؗ nQ_De[?Z๎ovƃ=r"E@@<ˊOn@Xo{v{a&Tc074.:{,;PfĸɩbrOy?ͷHUֶv v|[^(Q5tyd}י@nr/ܫ +I@g~N4q%RB4gMF=W^9bx $CHܾja:ro*2i+4{/芯L痭7KGFk} ]TZi%\yƃO#z򻛬u+i=[3TإCLؘ W7MPB'ŽnuF׉ػ rwx` Ay3o/2Ò[_ro{h !aTqIr3&1J$l-Z9 Yڇ_8EQ;VX5U77nIqE+Ś9GC9oɨyQ ?|Ef,QuԦ(̵7 95+%*2%b>f!bԺ@ӡq𵂂B֪B^?[ #2I~`:mjj3N^οho vElqnsH[^|"#{ kI7p#ck[Q7;wDQwNodĄh,bC'dm֪&}P6Qdơ䉂#m! ;.tɃKBtJ E%CzRn`rLԈkSLR([4?{eUegʞORUg go(V;!~>%&? :Y_>Ĭly+>44?B. ʸE#POɫ(O<'̘6xI*HkʪvV/k0$dR6 J;QS6h':/_ĮZY1ImŭԹ{x6)]^y(8Qu069bSۣRtˮὊnxQsHp@6ƃ$P4i,. 6Ę8i z]L5_PKmL1v0nuvola/48x48/apps/kpaint.pngUT ~lAJPQux W{8fo>aČꛙ 9Htbuv0tP$29|n cgcm32vRc3N{}~}ߞ `1:K[ Z=R⤝1퍎K P~ in1 !e۠;CgqZF`nC@chkFڐoYId~wڮD1LYQ6&i5M` K SW(RX:dy^Zah@]M;cb m"<̑O+:] +31ZrpnԤ ~[; 3,8:(Mr=y\tnYλq=wƣW%ư(ow^j {u>}Z}굥 e30tMױ2sIN [e9.,71JHRD}VYYF$L\Pjw=4+M"stWNJaJiIMnye=FŇyRz916@uc&!+ zݵtn1gJJ_*ˋ])mЖߣ|ıNV_d+os tjVKW'.t]DE*g9VU[DX\H){.i{:f`OaG:m+Vt!3B(3<8;$";}h\.::=RnF+#+I(ș_lA2O࿆+7425kG\WI7"a0LGeu6<|ƬzasrЖ\F!BaEEDkINJ=4f`dٚPrM3nn&U?{-.kAֹ{٬Gpa{nT@*_F={"DIy!s f/7Q^ldOEMgצʤŖ-?~OHd#Kxb;FuuVa쪳kq:Uck7DeߖoL9j]it<1o\,w[ˈcly =_ {B6}zsMI蠓$$+?9, YX=MQF0^-q8~۰6 )SWZ`kri`zAg\h}l<@CA9Nf>XSvdMŹ~+gCK֔3쉶-Z;΢: v;1ȬaBK[s=˓oWZ|rc(t0=ff1H^$\k &Itε5L6mm$)߼~Ӎ`7TO0&PH%:=YG쿹LGr\lrT!y/OUo_=ԏ[XVm()uZ}'X JuQsD :\POKZ9{?^(xFbv31R+Ε%?~T` |ܬ J!j{$T95'eM'o|G1I&Y43O6`+(y$4LR[Xl3T9mnpUaؓ׏dvwkYg41;BB6vjjuKB^FEJY=R%IH;{Y\-xP˿ ~T7MZNW{8-H]?mh&V2e($Yʅ9sqPT,?MQ)3H`>rs`&Mft$6ǜFVC#[Kp<鈞]B"|V9`]yPPc0R+y-% )U) l9rՠ# %61W _ յFP7,ELjU\W_N`Ukq󅿕v8 *#z^kz x$iܷ jm)?^4&{*t&3֎JZ=v͓ ˯ALbhMW~n5p"_&ݿ \g أLfZ@BZ3m$B| :?hT˝xQ?v_rw-j (y3} NqBJ̠LP(0Bp4]i/@>R Wt L\n¢'H95ܕH1@ӲC* ZAuUXɄkɶA|'9l*~e]BL$fG֭-1WA \Au4 ڄD /Mɺw"aS%R[&&pt3ywZys#k@8 :gN=ι:8<44,8YO}T[2cTsb8yY'aU.: g| ñvKH{֯ 1*NW_/dΫ >Bs u5aO$Z]Ky{;t,^ &\h|~Ql<4Go6~9s47RI1e^ͣjc H`u.ɇ9PC7L(Bt!o){JXj0,`*Z | H$ˏ+c|J\[!秠Gd򀛹lK)rսcJˀ6N=,.m{VlaPKAN1s?$anuvola/48x48/apps/kpdf.pngUT ZmAOPQux =WyTS׻ % p#E9!AP)*\ Z*TIFZQbO"Vp!̳  R $ط;k>go}o47]` Mw"4&ֽ@8܍?δ<"b?F: ކ0$:n[pߦpEQc-,5he J&J&ts2-zWW> <deI`P UIfpxzXYu{wa 'tlEeR6+$PR.1@w%y85w̎FmE.ohe8RxKg٨R{Lo,ҁ-s3APR7+4RFJn~йTpkigm¦ȅAD]Ab}M<^VqKS򲀁2% 637?F8[5:8Aԉ\aJ1AN;qn^wdE;؁+FF7ZZn*=!B'19k{62mϽݗцa1}?c7=iwa .x)ּz'r[yCva`ʓf;d~\\($nlR֘m5)Eg)rK%oDw?`x^`8jZY ib0~(?A%X/'pND:[[*lB ufO,_ ,/߇Yɧ(kNaZKh&GŮ3̹ZFӍןOԕu2hA `_ wWS1kKɅ=Xfp v2/Y>l RÀ1SGjywXv2̛7֟+>c/J_=^3־ykӱݞ_`ǻNNO޳(Lzn`"#%bm/fTtn6s:W>+tۘ0g>BwG*jJ])ekNGd/@Vk[4(jP@Da'Ƒ_Dj[L޻?J{M,9%"J&El6&(ar<:"d.ge,eLر~_݌`yw~|uSώ@H0<#^qOF1!TXODֵuk{~ ZY U!Ԑ4}=~ 0bwN/7+<+^vri5uIqf{]benKP{sV{QWV0 )Bn 1o1 z < 9otk7Ҷ4kfQ(Zcv?X焖 [{a$m p !pJaG`!ɟ?%SM ?3X/`M`Vh;|[[y&<^-+j,ͷ}ר4^TkR/8WZg՟g@\LwJ,Bő7`4p QQkwipgtQBzycg{<}_nyVZ n#s*市^6OrZЇ],kFPV)vE VEykEMDMJm9Kl8&kl'>WH |e5 `-P-Ҭ'Y^qsŔ_#Ä3`t^?sC4z{ڼkdz/hI22*Y9[8؁ww?H G;8a5',F$KUe ֋UNb"Q[XXcu:/.lPt&B/b@;D۞Ǭ3P}P?.٘J^ G8'x(V9$?@7ʦ?YM}$ݫD[XV/PPIOE,jbn \}(V\HbKdɫCU ~T.ow`J!pƙƉ_R{=D#ϣ4sMס6;;!9B݃P5.tIiYMc5lHFjI .SoDj!`O avVK*Vo*$H3jHL0uzvq01 MZu?Q: b wm5Syo2E ~(Ti06oؾZ$PKt91cpJu!nuvola/48x48/apps/kpercentage.pngUT gUANPQux wXSIIH DeWEAB" )D RL|׾uI 4T$"jBf?gع@o~6.va݃K_t(kt\]8Nl >+6D"x$@ $ dF$ſ>ݧ?* `m-IFX?qN=ߕ 4ܫWNg@ܰ;= PHFgZLVԨù5m0qPZuoa Boql3Hoоsخzw*^^=0dy9gIq0s5Tۤ~ÿ-s<2vEKMV0 I}ӬQQj\n~@ 6_io OGwZhINhߣ{MG"D1GDk$3y'Qhlُ]Xz{-.mB$서`ئLRqS|>Ī7ҶJl`E|CD3M&$q_+tqÌвaS':GbiZ$5!E7TΧ} +ޜcf,oO6/ꕻgXR\?iZr%\@AEjO+/Sy w)#W@iD(@Z/OvGh.ҳ 2%<9o#cUyٱX]넧2LDYZ7QނEsGpT.? YxmcW-\Ѽ]AʸP<>n׹K2 ƀWv>xiXF@Ђ˶N čμnAOdd_?~ 2hk>s_gݡʽYQJLsVN]j)ﳀczNtvx4E{˧b=t B7t4~2WC-a ',B^A!V* n#zGT'ޯFtO|wgǼI7%Tsm؜]7z+,uqߎM l^uX:daT,SMK #+ʏ~i؈?NJ: j8}ٯ" xm np`c H)3(?6c1ݳ܂SQbSçVAS_!hvW{da:خ]u⛼L &3^)d2́w&\2=@" >h @^}0A(բ6p  :*Wַl;m* I L0U5Ǭo7łg$z# Jg)ݜ-:oLξX;t5%ͭo(*|"<žk!%m(u n")opXz "u'Ő `$}ϽS !1T bń8Nٯ*I'QhK|>1a# EYϑXf>9:%[ lGH9RI˄I#>5ȼ֫eWI 3++ OubUM㰮pUͥR XS;g6lrſwIJ:Iud7ɴr*iUanD;4Rqm \EIu /(:d1t <=gRmrS$U@Gz~_E fʼ/:Ol۷FF1#A%0ӣC^1*223pyq2 ȴ l :GQAS:)n| \C|^t)[+Od8%yalɠ:e8،iFy=+3  /8:y0`XcM9%g(,*l*fP\KIQo=lܜQ;_w 9V%/".4ۦ7qk,DSyc=3z"v:%F:!GzR!ѽ11(N˭_Z}{qɵfcsSff~R[ڶq7uupJ?T&&%#iXw$\2tmШkno&H`0֝WT8[omțOsjĸBoX`KoyP`FV g"rͯnO Np/3Ţ(VA'TEk9䓛Y[E};H(v՛ y~ܹ,݇f GXKr.EӀOC?ӹ"v̦1J?W$.yV&y LN6}- ؼ?:UE~ņbRQ=:0j!Җ=}gҏ OXԆg S= sؔ|s0ޡv9d>.Y58bacpK[+渇%Y66 C F$ʪ'ޅ8qQwdUQ'e\`q\]xDp|O@O\IdBtX_S1 ǰg2I5abcsTZfSoN"X{'>N|5g '~ 2x;K:ocwg%}:k-6(Y9cVk(ۨykeRcͪÍ5͌ 8gJ3nמEiLEBe<< JYW6W ,`SWkEF4R};E ZQr۴_O %_vch guf᎝lAZ|y]]4fdcߢ6P*0?ԛV+Ag씔ǿ)kVX؅83&G[wvfbIfx}7GW1C? hJIa &=3~w%oG{[*NlOE0RA1e>t N#NKY2٫֡[ݻ) k6<} CqX\{fE*csΖCE,-zD2 =xd8pSz-E̓؋59]ϪbeUVd'6vt-T~JQVf٢_rʼ)d'juYyqc_|U^&^(ӊmFUmX_ZAm[b@w§#3m;㤰p9N0Igbϯk㝁o١LF2{Oy~K%z^s&>wQ5s&97pEˏ%2L靲Ɖ$ &0 Aoo]xRrF&7Inc6(InW=[ |nncyyktߌ%AYW+.e",96opSX3 A!1?9׮-o bXQy_>rgryY(vcl묒/e9[q)-mQoIEȲ韻ʜ'ds+,u\gPY&jbXDXrv}ZVWj]f(f6: W]EFa9<Q08uL(dyReN{P$8;sB@ 9҃]zh<ǝG3vMj,aY۝bz޻45~wd!eKm<&Q ]_ 2:B[qW OT'[, -;7?H?PKiL1e}7!Mnuvola/48x48/apps/kpilot.pngUT vlAPPQux %W}<{͖I[ =چRs_LDE3y8XTC_=ŭcJg䡜"6yz}^u])ܾ|9CL+ka౦'liD uY֨L=qױ1? $1H_£"C"% G"}L`bTB,RYjL ņ7 sܑ#[sH",Duyx'ug~_bHn'<~CdV΅48??F5М=wU<&]!JBp}^KLL^~P&$"Kl0U"PJKK)ta\ !WL&zȢirz|[pEeQ="EEQGHZ>LlJ\ W0Kp q6G72!#,GCƈzq_ĹcRĈ7pԍ4Qp|RއEG69eҦZ~`Sgwk4e}ڦm{NK.k ]c{'}oB nߕS{[[~!jB,ޅs֊W* +uV#1R h嬮D&xf"OmӘR);q~ZiOcs\>r4rk>~P y pĨo%-F(37vCR "ŢIZeˎ)~7U͎Z{(?3_=Hj,/eE\!fKS SZ0): rZvuoY;]ةAe_a wܹ8rNْ5;-+j6߼(77#d96 [IpzOTzHc׾\4 ]7ҧ]{yv2jJI/J5>@b YgE.@ln^q6z[T|h c$:X6XH" e$fv9ucR5]9W>UL>pqwpgE'?]։ h1G#/i'N ^ K+]M%EFĜĝFEȨ%6'wG5)rMp'ͲuBR(G6G BK:\ }{&̙G//Xb[}eYh`8GN璉Pw[Yb&AX0W<˙OO,g"*ZcHIhaT#jJcu t#W!&ESiPl!u)4@3qEV3e[˕w#5yf_RWXF!]7wA~C`ԘZѦ6+*@>2Xk>6jxSOgRύ J\5#T02@ƭh<}+9T+U2d/}~H_-DNˠ0x e_~]>EMYg7A&F r@a<)ѷاi-42a$USa8'/IDz" N46ܒyeS`iRF,x.MK?p5L#@܇v1;վu6sn5o3L/ <,,=yT7-ML`X_΁n?YrA_[W/i'Qg:vs@#?7uHniE"QY)R.?نQ|ZJ2V0c~eSpng I=ψ:Z!+~A)d҉e#cT}sXm5~ U}b[* g䩗Q.dmz#g8sr+$jWuin~:rZhq!Y ۝.CɊ`JNFg_> Ң_ʡ:InG1Dk_A (oM=k2<2@!٥ZEٞœ0 @EOd;TO&OlUN<{fbk *?*MQ~K9xcl)w-XL5$Fia쟲T…DcEAVً Nq[N޶\tv'-rdϒ m݉=YJ΋ki5lA>P㗽ìXHm>!^| tR''r ewȃG {nh/W꿚FEӳge% Q:j!7U')KGZ1N 7ozlAN28nn߫ݜls*pR((W_3pS7VZ-N rE!u{`[fh*6[ʓZӾ0콘َ5թM\>xT&k@wKpӐD8X\l$cFo}Du:6G[]Nx[kktp|v(ˢ~X^4!“5|J, ,-Ly) .}iG b><"hk!:֭\{EA"\h 4[WzJBỏqyE5Rm"6d ﴏ/cH %_~}xJMbo/MlZ~:ƅ3g./]R g84]$[ܬRVVwmRyp -8wex^q~gAK|X#Jt=w7"֠{' FmrÛZŜsS^HJZXdF>|ٮb[Jpwbf kH蝣qÛ Ԑ^ëw nUܡ !uB|sข#,N'Fm ,GMocXcVDA9;!9e4';-mLk886`i1o!x9_7rgˮV#.n;:XWP h]KtKDW4ߚ9~I| 8E=!2+J?PKfL1 C !nuvola/48x48/apps/kpovmodeler.pngUT plAIPQux WiXS>H%B"%IbHQ^Po%Z#L2 U[^9$a#R J*9_cYuёl =;o5܍\h)zi=C~ +i_MHN>i{ڦwB_ɍlFQO0G'xǟcx<ޛ˛ da)B" f8+ .(R='M(:xZ8V>]hK}nH2lWzL^H[ch=J(F?Όo{ZЏێOkXev%B,ߟzvk_NzqgCu\'91#=[#|+VWWH+sk=(2bA—H8R &彁 c=rn>s 9L.i4m3i{S,i.1FO?_8yvdeϭc`Lԗ؏ xr6gR=PPD-)!n,yJLΗcxDz\hGpN74qti˂ט/!MluͶoͽ_4?ٜcbL<,)+Q(A%!"(Y@|ͬAl`?Y}V륖A(5CkK%Y%`lOo- ?0=$l{\[AMo|uSy1pgkQ"K[۟> z0&1UPK$œM ;ie fNibqbYm[eO0Ny[]_ʭ$h*!рHrPRŸ ]=Wȅbo(~chE0!NܝzP-~2gk;/kBeUWi.4wu)7)FR?cUHtꑮ{w;HgC5~f_{mri 9`i(ҍ}PI X3<Jp9$sp/jd)TEr` E C Rj|`0H|Cp֍|Sfĉva)McB`y 6oG(@!&$"Jb*pɇ={z4iovp~! "Ӏw@x|XwmJTci. ^x* x'o1a 5Okdx)reAH,x:XwL̉h8sl#%{q{< v1EFBɍpU2w(٪{ ,K18z\̕5mm[=ʍlC#GGh,Hb/,e mo ӳ})RpsQPiʕHnwVW|8rmJReW_D cڸ'9{nj"]C.`injgQyJw26(h.ʳhI(I{!8d.%:uo\F l[_qhRevO1X"|ر%zS!-uy+ïKӡzvG\߮Y$Byfq+l|4gtG#/J6xLKɤP l-';UcocMXrsǾ/DE JK_ҞT={Dt2[R84ě׎:p (nGN}XONi rl5^<^L|j1Sw!rUA0ɂ'v뮱̳Ș1?>):UoKwl1 R˾DGU0_̌p-J*YbaǥX -DGI߫Slx<<4k{0ER1fQ=5Eљ?wUnm}lEB&M$%Ҥ0$!^|'ң;Qr|2F@-6xi#Z+. d=(/euH24QFyR?-TKvw?Z%t nҕoPlHLds᳣¬]5[ÕF9B+:~xS _|mC (Z1 zLGw!ʋw:{w)^W== ZNZz&& L`lXgν ҎgKOj>(.%ȫ~eesr{?;z[~s9 J ]l?C,`:ֵEܵ DiBh46QQ}c.P$9ev!]^ hXPVf#CPo xGa|@p+wlkBppEu.0?ϸ PB_XfeZ AS6l))DOH}D 4;YgŮ!s@ܽŻūV>~kJ8)I%L\pYmڟj c#wvf[ϟf;ln@rэ{"ıse(8)E4:np}+?aE~=9`Cܑ(9|*>מP>C`]' +#ݼ!6ƜK˪kKks!aUdy]!^kf>65Օ`F.bv|᧲=(Ή+ 7|U |#N\,nvϏ 47"`A#ˮtO>2H'r=JDM}3J0KP|d6:b# PKXL1\nuvola/48x48/apps/kppp.pngUT XlAMPQux WyX~W15LA-5Q]MҤSܭi[ E^P\2s+̙)[&1\p4eL'mlr%~_ DJ(J|q)AgR.FPGǥԝK1Z-IBCm}~)9B׭bã tWVFX@.ryil/ƋIӏi0#6$,vrJQQ! Yx7q9]\o,pc4c C&Zv6p [V6.Rw2h:\ !o@d:=So*q N^MZ yC3ͼkky8AG9"간Nďм{aƅ+b Mkd NlΌrrڣt[IokA>M,a^;^fg5BPVĶC6q򈦉&€:}eJdq-Zwȥe .c[aD ={<ʀ[lMM #Z;­t| 1!&q̽c387Bk&|r8<*bf_xB;[ Ȼm⎏{ߥ'N,uqN6A?N@ǾRj12wH~F 7}ޚ\<>,+j@Dt\J_QΚZ,e !n'>ydx=氢|#!,.y+|4@8ik!\Xzn Koƀ2pgXlA-={wjee&.\:k1}\0 :lXtec0 O\.ծ. aGsm<|Bwfr)]*"=6{x?05cY wlѩ"%5VgKN@//όN6 6BD9 }NرA,Nb+oLK͎F8S15WaMAq2vaqεg;>m4 4ZNgffc0i7nW2A~'lvZv|fq}`4SY/ɽFy<Xˌ!)CIjN,xjR7|[{0y]@bxROR C,!Y\K4O9rfzz9Z΂Sb9jCaYKJ=ˁ4]]ю/7IIyB$=BRa!ŒM@|3 ^itVb ԐgA?Tl)OAqNВ$륅|uS9]R[BC}fgf 158D -bVˇ00/IPu'ݐڪ j}PNC.F]} 2q/YY!MnE3 lI0kÓ6?Vy>XBV>[=1&n3 pp 1Rl(?umj$=bX,'M  ,&ZQM8oJz8husm}7$ҟ4~ы a{.DvM䎒\ŻQq}2{5SG}YEn2U3)-T*^fOO#xhrzNnLG)M^EVK#<L%Bv>xdWQ bg~' AĿ`F޾Z!DExB^ƒ!M(_*Yjè 97vn}P^ZjU~yyΨDVL&}`~Rt*rgmu+#y 74a]ӞJ%~07ɝo/&8VZy՜|UZS4_?^Z-l`L}~,&:3 SkHgrr<*l x*8@ sMVYظ}T)iY#zP̚ 3E? 9k8elIIV'.>DlXALr6u~FI%Scwԓ"ª|b8I OC% BEP Հ3vW I|ַ(79?zwA9#xu@7W8';Nq`7]~:y2xMkkPStCH%-jޠtD6`+dS1u@kbA$_4UBE|#tr!h-D'gktH ? ,/m(#Q[- ̐J0f_1̷ mu{ԟD6Ħ|S>>YʼnJJ|K/Ӏ <5Il2U kp (U3xplN qKrRI76[}jp5e ut>agxoHlv5)7͑F؏sDc-86mc iI#taПsIN`sr/} wU`wLIx.q"=CJB]m18YWHpit#sW{9lW?h4 #/V`)|y춍H W V[JD;tE؁ 4ԗ+}$S-H(V2E`K3]+mʹȧٸϿ0E+: MdX+-K,,%%P CW]u7lpCA)>Ul'Zony)'+1( c H:<.;dXLN饸}]?5/L_:whi,˟&q@lr_:90ܴ%úاPT>WCx(Ƃ~lKOj"o'+ b$^^m"ycw7ݷux!CVݞ P|PKt91(7 w nuvola/48x48/apps/kpresenter.pngUT gUAJPQux eWi\SW/l Q^d  XԄ $A@ N[}VA! d Z SR (ꠍK!T¢yv|Y=m`*Y. ɺ'fYMC>\\O,~m=3nJhœ\1‚s!GٌZk4@h~]8v ƧbXKU:ξ3AaUn'"s9:zH?̂=zVQ72j6 m FF,S~ qyMBSjzgzR02m3؅0n(8KYreeibVv0_\fEխCyw\yw&.fuJzniU'e<iL;{TٹE Gvp;eujH'O,CG!Æu@S5AAX"2pmtz>4x< | E>H@R=3XiY[%, J3IsU2:C/takx>n"k<5$Š8yN1~>9G^A(C;]8#Feq~tIÃX)kFDorls]@W'Zm ?mQ}<(;D !9xNk4@z iC^o.Jwr;̣:J77ktz)+xAf 3%ٺ*~WF\Ss3b ÌSl 6,&+Q_I 8S6IjP-q2rhdԪPTb^>{]}?O 2hha1$G/՟ыR}0@ S1b7NMSYKڑ*LMڞC_O%nmrJJjLLLg]/d~&v~㼩c$ijp1[#ܴ)H$ hz(""–K `@@'O@DY$H{ț|?o+K8VnjJXXi9q#qܗfPi;vH6x{%lT@*:lRa dO}oZfg-Ԡ#4ǯU=Z-P3ʨE0|8n~lXtĚJl4$j!dc1;z'.kAظ~Q3Gy0ޫR_S< W\*[&U E׺a?y/@q? hmc+]BYp[>\]]^00>%WagtC&ރ%,'|BNߍ_,G%c$yW7(ƻYFHV"k9ާ_^U+ENw-/VzSU,+= fiO%]F8UDl dAM.ζ=eN c0pދF5J">D(r{:R%Ny\9.T,"`s/%ʠ#&ZMHĤd_uOq>irZNi 6 KRŔgIY$D;x'5ţ9K!ޟ\b_P苎e& KHV,V*t~ӢSxy@xȁoh[AE D'YZ2$|5-(o z:T6ߏv|nucU:RN74{/ LJ$?8>.eXps~sFuݕo\YWO'oM1RV/H" |\Ģ/`f[ߢKdSsM~zBn!j*|sTdt!1>R=J$[{Q g?l͙Ue8:b>w,ʒ3#r繂yi0s곫0XzՎR; ڏč; !þ\`,3Luv]ɐ;|@;rQ&OzbqxC|:2X(ƅb|7; R[DIZ9UCs[iT€- Tp—]o9p bs֥4K%g|밻GN7J7pP`EXj}hswY5\5LV۔McZaK>=粆@CoZs#Bv7HMO16 ͚9S͞˺ w3&bGwYK R-CD80oʴv*.QHYO?f~r&p&Wб2{^g[j*0Dc3DNf&>iK'N?1. zl7,I3P1*iW_٪Ψ7+L?#S«9/ܹ{_ _Zhu}Enp$Ó*'KyeI/@u-XR+O @w׌O-KLtIA[ 1?6`،en~Xs^i {3R^hxF^ g(uUMK?x*:vҿ[RzۊQ^C`B]U繩MnL{c#OC]n% w d8鴲YPy g8ȁEwV!h4Z[-?E%w>˿r@+ Q`Fec8 ^IuUgG'&&hG,taGWo Rk"@l\+ ,uɄ:mt?PY*#'d4:wkG_D`'6۩1I܂,~x [v]@1H0DD__eaLga!*;`s.\jm Zxx( 9}Z6zdJT]7vAnUQ67i &&GI?5*2p( A28 oi_y&iAU ")2ʄ\']lO-/ݗ2#"HL 50bGec'JL8嗉b|) /̫WYLLw˭dH7OMaɭ h L`!NJe48v.Q0+]g6]!-z^aD}!z@Zk'U^ 烹,eL_/| ՚L^^PGD#%/L/M6wE?dcX߼~b4%c~ ֯CbԒTwF1.ձt`qc8*NufՖ:|Uc5ok~_-?i5XmךftX]]~~4xl+xbbƍU\w֕K{'k}oefVUS䪔 [4vL3-ímm[KTy{+:LJo?䟒*ya Q}6u w*6T8KyyBǔܐ9f'Ȋ/a٤"UFB:8+i|r@0`E `: @[(TKl(_0q >bY5O z%Z,d,69) ʟNύ-?e6I߀*A Vkl-'L#y-kbKw);%3.GH3TJN &9&{<G!_z^,b0+CB@\R$ckC#_q7n҃]Rw\rSN[w$2X7'jAa}TKnӋ$H6y\Deg5ElAыZl:Bi~d \EF  T7!` K0Vk}pߦfaUF8MOY֎l#Za$ll8/liig2qep; H:Xuſ g W֬|@'XEby> ϋ&O2| R;_x0pȑ&, H*Ȧ=P4ZL/S ĉ,h5(f3ݸO ]Z-ndo{@HT~XtSz0w2> U#(f=8]bj6 ڲ[1mݯ<-HSSM 24j@6l\/ܹ'\ N,AHUsVs+>_L#Lbg".M qbt{>@fgz'hD`VPX_$ju@9Hnu +GTpQ;Ĺs4Fv'ceb&p?f_Z(/})s:ٕHXad ΐ՚0xΕsr%Rܵq=cT䔥g|q FY} ;.(|sRGaMRԺ!VB4Wm.Ypjei?5u<\Fe>>Zpsh @E㲤Ro/@Y3e'6Oz:]TW hy_h*>,|*ZR_\C-mbMp, Ejo8p&BvKoF_c?{zҨ`yg#k"9"7a ȨoR֌1b#L7 AWPKpH1AȮ nuvola/48x48/apps/kreversi.pngUT fAMPQux y\SorH.&ʖBR  Z)ZEEP6*{r **Z%)նVB T )*RiQYKΜ}LaA, ܲyC>,:bg͆'LAԢgαv&; b[GńDFi Fؖ ]iϣ UDRyjY3! KYYNV(3!tɲD`_8rEJ {EE⻷e1 Rᤢ]l^Z$*R*8C$(!ǵL ߟq8FaSSMNTV>鹪V!lf0TUP ? Z$ 'وK;&aaWZg&XyB@&F1ի-ʔᕺ%%4JsMG3R})R䁩pFzNw`ZDe1Ava6AZ<fLź?'T'2Ia873')% qY@;yjG;33>|s>GxmGTZQ "$ Iy=U5 X¸gIN_ :qvǬl96Va*MpӷXJ^:ĻumǗiv(+٬ :f(_'瞋šش1 #˟3,eXC^&l𩥿EM9;'+=Gr@${*ȃH͹, jlW'$L{I7\^[ߝqJqG!{t~)]p؝%$kEl*A/PcNk:0 }q!&Ř+lZ'DPBgkk=~c$^Nv#xa㙨j5%:T '1>:EDv9 }eɾ0ӛ.eJIiVըC=wzTqů4d͢L뢓 ; 8@Ϫݳ.$FodHP9P str:KJl읇ovW* -!40Iꄭne@>Dnd9zmݓT6MBOrSW"_DLA$ףlhi̊-5fy![v ήY."hF_&oF.xJ/ZWr`]|̶ls &COҳgG%ʨ@ezRzƖ R]1BlsL@~hw ̋U7W ?Xb ^P *ƕx9gh7SoG׿3yƙGԦ5X)^ѭ[E*0ۤ\{ҕ(x(E5렠6!%v|ɇQszI:WE?vmǺ7sV#SͪZ`龭튬q]Be:8CJ]A ư ^aa9i6e:BhPLfJl~L ڲk9"-0~y7t2 X˿n3 ` s.>|pZ|۴s35m}_s-tפ]2UP,98h(0| Ģ.RqVq7U}O' SL9Bf^)9ç`p›lY+F."f?-}kv\׋KcbΖ ~ 7v8TUn=rq)r0.z" ҒPrn J|+oS8q4Y3#bK .$Cg[v/w uP\*{l-nV3zV*җYs[6H>+BXnd6x6" @3b{Vѡ{*H!k+0{)U!GomԐ Wj#"(2-kVh]D ,/6)|sK3AR^s-RE !(}7_vGEj 'kfRmKBhDžp]vjKzajZK:b\;j FEW(Rt_AWަi/=ѰkkrB5,.[ K`i,uDw)Heo3v ŘH8ƨ yHdh & 0=#ü'{r#!P$LY2g!og2ii+VlM@513}|!qH^2@/@=4:&f\ -S&#:fmW=e$KWoZ%FtRiֈc懤md#C,oX"*m^#xe>~~%]Y1̎N{p`$M& }s ?M=Jfaaa FkXR@pPE}²X:7jAV_ٶuTWq-8T5V ]ͣF_ΰKoHe>6&1NU`H.}$jCp!od&]7bk3A 6$n-Q\=V8t;sɑ2]&M=e-(86TwMy>n d_>B6O/Z$.]eKМ~JmoU+4N&Q5U6}עT’;Fv.p_x[u02TCVv]Z<y%B9@~<N(-lIH/Y!Oӂ/{UzlqY/bU͇<Tn0[ ĵcx }O$S\6UmD|/|m &%7 @ALjISGY]YaDAG~8aeSNm0I~{]J6a: x*fM mz'N p݄d^N:įpV)ӕ'fl훘`m`-bٚc Xx ch ⷛYG QG2z k,4[ƯiK19 gI'mFVB$tZ$OjaW=P+f(L.NK B4c9NCuH u0q 7tEHݥDޗ̋oävi  nS2((n=sf2ԤPѦ8V՜龞twtJr=cbcR8 u siޥR:^YnVn/6/Wq ruS| d* P:oF`SƫO';"IVbIWwcfDMU%dhl6Cbj.piPEַl|X{,SA[(|6͸&+˃TF^d%BERÎ%<PdՀqkWZؓ|Ex=@iRkA}fxw. -2Yav+8~.0øZm{zCUYZj^ P$[+ x^W_|-NS+-Y\EW35T_ݛy0% ^~ °EEO\m\2/x1fwQݏkTmB%^zA'{`54"aHkօ-ɵ0Sje 2juf(frAFdDlif5S573f=38* S$t@= $͈Q="|XW_}޺8+ tBVGdz:7а/܍%>fq_CsY>L\bQ'B) ,zʯF}aqߵ}}}1): ƒ~˾ĊGA#O޻8*WZtK@j֦T)o?*aY~[O`:Ϳ6 O7oU?|ܼ..Xj:lcd,t_ֺp;4 o/Ib*s%?w]ALd>yO/F T2>}*jBO`fr (*V=3x+s-n+!+'",&<7,*hݥs;g.)Q5IhM#.phW#PU&lk.$uvFʆ):BTp6B& _Kq5+Pҿ'I۟" g0up<labBnzy8x R`stۂ??ݹ8+j 8jJ]l2T?ah;@Tѯ[(!r򵏰̧~*rLCAΉ,o&SSrM!~lp͙ƍ`܅ +VV6=g>?XNSEtvtY5ii8\jw!Ullգ fHcJtOm Ńkr'ONCl a4:##b:a% Y*<(ڽnm_b$X ;7-h!b {wۤ~r{ܡȗl']FK* aG. `!۶fI(bRz!($˟S S$%[TLG7&LFIETb{k7 |ds'**ﶓ-+3gњ0V9G w!e2v'i,Y$ `#.aV4 1z;$•5)[v{ee+TE<9V&۱df Yn?̩`r;/i K @ܫe&Y9G_̺;}~aFv8wr+@SyxUY \Al9oB5ޜp{fb uZ"l}QqpRJh?-Xm$|Q"?un=Z5FQW?H+YkuGc*69>iJĩϡk-:-J;۟)]Jt.?yΞ^Ͻ :wm,{(m;<0Qc&K7f]#tվ5|YJl^^ܨ!%ܒ|QOuݥ<6fn~s桖g$xa?hN\N]KWL]Y8XȿIΜe%&A)im6|mhn|GLfo Jj֤,*L[;ڴC΂|u-h5{7A񇈚LiGCҼ=ϫF~ ds9wOrܺ87+߂$W%j jkGnYi; +( h]dOnkq+C6. PHdzjVa5c=s`YFɽӐ8@O>faXѴ5,Y?v:Vc#5)x|?-?OD+;+P!7TajP]¬zgq虌wVQ1u#W5i J7!!VJ-u&b+ Z\/X^P4DYLM =NIߐ/05f@iH%ׇ(MT"D_WO\:4;t\Nt"R9焣` 3ߡP]n\PKqH1lnuvola/48x48/apps/krita.pngUT .fAPPQux V 8f|.}f3 RҦ fF7"lڨ2tЕD1[ZP4rJmEIF3ys<9{s~;}zo5oM=p~ΦHN68ߓo 8qTH<`džr(GB"98!G[9`R걅;}ER_4qXqET-`\TXu EG (Ju}ThqS$€W8JwAWl v'LV)j%uѩ'mt'HN*DGIPm)Pz^̟/_[Q'ゞׁ{Cu5 +|\&(6H ဓӉz>miVn`@:[o~l3Ku|Bp_Tf8%σs IPKs f,O+}*6"cKN4io=JG:{@Lix=.,IxY-gBk牪e[}#aGzJVkDa~$:FOqMM! ɩ;y$IIn]э_N %eAI74(f?=`{$Y,7%qB8#AEJ['#%t"ݪ.&jts抩cxSkPmqb˂/ 6.UקZTz,柤}$y"ж*I<-sFeU=#iz=DOyPK Eno}oߙ*U.?=G/#,TDf/;(6k~9< iϐ*>KL;FOҨz J!$3)EZcĊ#6ݳ' 493v(- 5M\@FL W7a'r䃳GM3TM~-b6 rp2N|'`i=!U|-A\U0:ذڴ 2 SB7qt7{0ulIv{hӁ4Z7#5IBulc|+Q_F ۴zV{c?˾N\1> ,[VlokCpfH,+X&Á#IT7pIp/-Ӑp[B Tgsjd@xxhj͸Uvȋ?RYJ| @YEE^^HXю8R/HZ4,G,dz yl!bgىF ǁTGO7'I6e2fhjjgRBIt4 Dx,ROH"˰;jiL7W19PŔ`D7F 0J0@(-'?[lӂ&ܽnW\+8R̵%AK/zM3Qu}~6UN8ͨ!?Gױ̱. zz'24Rglbr?IU>gZP/4 ;E&?)H2iZ΂Ш#1=w&XQ{y3% EB6 n sWR=tNI^dⵃ \H'&A1/]͋[ 6)(:Qd C>6JZLZ[HK'8^ ȂL=J{F>2#>/}4QT}s0ۂܽ4akZIJקH\e'ĮQ΋SB}!߼֘5<>sCW$ri[r&5I Y#ۚ  _hu3 +@} 2!^>b)cBo%m!Җ%\6HUГF5YN+=0.8;}p{hjЏr72WKD^Lf|ɚh9#@jNj+δb]6{Ν3?D$6~8L׈ZF|z0w0_Z g៝p$"axgXQN#ڈL]mmvQܬmBQ}@ìG,l2}*|!YD̿]`'2FB s8p _z޲Ns_Ɍ4tm #pZB;kYlJoƄڟmBuw,9MW\"_h"~, ˒ǥo#K!jPqonɐƊeN S]hi-;.ŴuC_BiV%/Z 2e U]N}rעO E(cE$Tn =c!I_HJk,Ίd" mL+X(1"̜hTx jkpa=L{>&-+,76['zs|QCρ"hQs6 c(8E vpx)YU7Ot"- 77xxux(QMh[qRBDpR dbvg1;/~=O{~_C-LJkl!H HQ SsmVxѨʍln+t@*X[Oq^t(=w'y l~BfφjK n3>e]p ؜SIp" EP̼LF+lk6 y %ȵsss…kg/d@_7s9vovsZ -`~G,凴M7 _:Ul- yCa5.*ߦ\XJ,J-i-6ނYc߿; 0-.GG#e@_i6A[Н9TV89.W=iTtacarl. "iDy!wx2ȞW+'GdU_ԓ1#Ir#*vq;k҆_LkaBVIa%QRp Kc9zGº XܢZ˦VŧHP龁7%q3ׅ?w,yq+((%bE>DLԕ"̀@#̶wua:}_|FbDVhwIh0$붍FA~v&n9C]Sq ^SD<6E:EMRɿƃ_5iyCǢrf vG:g(26fD^ n7blK6hAѷH|6 !tgVZ(!saPT$xD-ʱ! ;0S{ YZʘF]vQfPS1ZPkQoK  :"-M}ǼhhS̞]0p7C Fe_#I-r_P-U\uU($ z@\18d2;N &) )BFd/ .Ъ.>85Hڧ7\tVإPK.q;yDWQ菪2Ȏl%;@<3@Ja\% =uGVxX*nA&OXu[ vU,c278PK qH1\My nuvola/48x48/apps/kruler.pngUT 4fANPQux V[i~ 4( %JHR,Er4R+lS35+W2ͥ61dž'qi/wSsԩLJy?~xι~9MWg<_8Hcw!fi*6췚?񉂸pv8$qP.;:<Ύf5@ٿ ]^1@V5Sp!q\Ĕc<&q@q*wYrԲv-g" \J~X!}emāOzU_%ܓ,SKC vOx%R+/ smAL~LqNxl|?F!Jj;HK5ȠֿmQxj*̼W6`N^c^s1bFQ`Je"rɛ%zXWԿwB2ql"NE4[RCϼ//=<s fI߅n@bN&6*$ʶ展yI\У;'{i^3 rMqWe,q웲\fA@_Ɗ!Kwo/02=R~y3db>Avf[R<*hE c<[1H5ػ:E_OgjQ c9xE¯av>VV1ۄ' -Fe#l^~dހ9{h+}PϬmcǁ3 oNjwS)1-H0-Zh;|ew-J@Bz*uذ&Y: eF-n޳=֮SmmJ'ε&S{֞nsYw}SG5.J-hC~IMԛגreL+/jȵ`ӃSϙc튩s''cX)1=|A0J.NT^6~@ BP@PCV_p svw`hnr ؤތÕpp)'!R0@|yxIJ)=.Nǃ: $]#R̤Sb]PYVmVS ~%.e=RN:M,hJ$7ju FUưYY lVRX됼;a:MyitVk]dD+3Fk!M1J$#BehAIl+:9[JQF振ԆrNY #{B\`_bnM9K;}>x{!0lld9O7p]^;D(gpӒ09edhlz7窚uwKs4+is](~}ޤuh2{YC[x=ᯡՆb θ>ύZYSSz~fJL{~`sո^y`gϳԛQFmea-\5)r 9CU/Ջ[A<[\T&'LG>$Y&ht%vR_',OBuul..QpE,ek'ݙ`{ i ȼW fP8,7i$܅rL%;Xz G.&3$no+ݻwBE°-byhVgkJ$H;SX!g-ayc ^%I6PO5Ei7DC1ѿd%U6ʮzK81ln2Up;].4 "b&y*1w#鑐 /!wHõ'.l߫C{fF34ꅅ >xC͎N(]'KVP;:f&=k _R|"H WEdiQ/p9:72 ^e[LCjj_[5rNT_u[A'n1!N46.,m…oiϙ](y3^G>%TzesaP S(j,꧞U;H׼%QxZW7ؼN@&`8J|;`D5 #+SFP7Bk04}_JKnOj!YV t)MT-Vilff["2dY_?/y9ʹ/$ĦDRkzWN-sNuu2e|jY=jB!Q7'$,4 !-b٫("H"icOF^QΝi+6tIpN zAhl!}\O Ƹ&e:PKqH1L}_$Gnuvola/48x48/apps/kscd.pngUT FfAKPQux W 8߁9}*u)!f䰍҉,yKlہJJkeQlLNDy1r9ds]s_\u/l75^f Lw3C~J[pzl? jݤu!l <˂"XlV -ݹ)LA 75Ti<A}^\ 5VM $}_DGl<AfLEsw9H7gan4.Bj-\-Iٚ "oW6o/ێf!ڌy CAo='o!OBi19" Z6[ӠW[0? C5N sdaPDA)6JQ9}GPEGw^s\I~qpoj e9͇GAu B[! ˼ʎй+| cu-:,iQGV7޻A3vyq{yWiRB7y MLALvd4-kp *H ;p[K$z"l\tTi˴'do־~Ucm, =FpEmJPOVzHIA nH8PﮣD'f{BO SŸdYKsweq0q jyW{虩( x"!e5לRȿkPPxa*̂ڬY*ەQ>,pS1YBPHӧ #iŅyWV{>VS0jjxI?qV$K*, ohhVINj_zxN[]A*R52N6ib&i6!ø+!8Ap,\`4ip&4ˋeA·[+5?L]#IFo*JD4.>w(h"L ;udԱZŪbw Mز|{t*3.#t BPk9<=d:ztl}r[>TcpJ{0TpCff.63 DݹfsU-G_?F%0jI;߀~eyǦ{\'<·y uO\Rxf^:ڻ(`PέWKpeEoIXi3,ٌq(lWl{ƠtGWb49FC آ$ .jO&7=Z}PCJM+RtO0@ Ғ2V]xd֦THlfLZ5//?O{`) WeLfyF=7aۓ6|hYrKmCGE7x*}_…$N>S*:~0{ehRMu9\!T4D^Upa][:Rg0JL"OTʝ]u+ӓvGDS<ǗK"; iJ{5. LYocD\]tLw N9 ~ ;TڠB@{O5mZowkЕW 3G4ZTj>l5=O(iX'ŝ3;nFΤ8L=:P ЊCv8*3%[3usE\\)?)אַ^V06zD`馘8Er!sw YI굉j$# #fԳfd\':2**&,,,|~aҷf}:ֻ.Z??gRKav=E"}@W<<<~Fr u'e *PF,WW0$ظ85GM="UcK0 ({QditdtOcBBxëD;BW d{zMML-fr]SVNbٯ)kǏ۱`2j֜1511\dih^ 7M7^#[A@z تxN'`ʑTfד2-hv!U2dؙ+Qڦ]L ВunS>2j"wRtY~ EJ_ܶ[\H8:U:;B$}Fi Ȟ={F"=<3?FOə @Ї2ڬH6!*;7n7=7ojQC0q89m*Zٞqj^ [;d4ޮAP.'.P}SK, ! aDRWgѲBS)7#+?¦p;q(Ir#aÆJ8[0H{X[[YYY4|=FpJa X>S7O쏤,he"bLM=f|`H=S/~RFh! ?\Xhe7ڔ$|e2Jl;<ݢWM1cǴ9r ! VzL@EE1s|f{`=^A0__ޱw)5=4*'$B#{p$*Q򲗗3M=0,I`(=cۓϭ{I&Wy#J߭8Vh$vHEgT|-i4Hv\R^3#nĻ1Nr _ UqiWDxrB~ŋVT(ē:q:~ۜ&+,nϧŎ;5JCa6]EMv-UM̐`Cͩ®?>|;~#N,4)Q1R貓{q!\L–;LR]ΰFftGAw:/@\Uדctn![<{S a1[}I en?ú'=6$M:`=ՇitL wF")cv\yI( %4YpP.5迪kX> kb8p:FFũ+t쥃y|FjATa345z>>+}r%&,xBH/#5@+W\G< J3(:\O P"""dDoF}'~d{Y2:VefƶX v:V=N"t; Qwf׳+!Zih0+1;1,6핝4TQϙŚk v:x~ǻ %G9'xܣSR&GtJ1A0BKE&"?L2|"sA@U]Gq<3SS\Bh--rGY*K0&X Pl-hGEUf۞$B5$&cy ?5_*cjMUY`N7}irBȠ$d8Xj[7W/[osR=g{SYxӤsVuab*7;2YpQJr^-WG F+W_JpP9 ٳ$lk!Ơs{bů͗mג ZY(K5q`ұ&KidNDOc} AY-j&cRwSZ>=9<» dQR*vbjM+bfg'x:*>Yf ˉJZu\2ݩl5*mUR\4ʜ9<:gA{eQI#5"fBj7|N0Х1 ߿ai͚ "ؠoDOV0pʗA3v$չiZ3x ڑff}i 9Ysޫa9!8͇oFktضMk7;AP-\;f̕>SqW"WyYKK ?jk5JR5jdsƕe^!lJq;K^֓қ8[pcI,b$*G.Ojc.!XElZng } k ȎrXQlMr_ckEj_N8{ͪ 29Lm`Dm%UlUN*SvX*1\ṶƎ /kF#*j`yV^5ޅQ/+ݻlT$t\.W>;--||[zl?^.#Ȭ94p{Lw#u>lTW|{6xPKt91 nuvola/48x48/apps/kservices.pngUT gUAKPQux Xy8T>0Y0*K%$ I*q"Ia0c e$keRTJ_*H(%g;u{}罟7o$Ţ߃y ?9tGЋ>!/ןs/\;2.}]h֬ fh8xoQ6=2gM$RS-,Mᦦ?1耀 dm( ߁; nTbOYIvxz‡dbhOϟW>bvVA(-zr,XZCZKx0#h6XWߋGjiܡSuaD܋ks'>>^hKKͬ-%XEY_/6ڃH%%;bX3?^e2Di\j&#y4ZX{QBS*3Ӣ>]͊d:k,@__UTPRR㪪hfE@ד+ӽ0蕹R si!!TCfÒ 7LyGGja7*+ⲳ RRp/i*Ϗy8ʞx݆H}AXt4?0|Nj$)?KD0Ĩgzv6,4_?::9LxoRƇ QU))!8%%I޸ŀrXe/;\[}ts3 էRnZb5 *l٨{jO?gTtF3AXvA)/P[GG>#ÌKWז 6+Y&]$!?20avﵵ;K͡LvXg݆w#۽<=x7EU nr] 8v)D Oh7VcY[;5AJT h))])f#$È&<а;]U5?`ؾ%5..t7o-TE&>}/ŲUॹ3RfHD1X̔Lp~Kd3꺉6|cqMH6/+ ѝa[,u=>O3mDL+ɹ"PiٸS3hd& LD+2{P(^tkXJjjr]BI>jcchevLk7ɻ:Bbۄ em͂ZRD"[-JU1`ڮ0c ·6//,g0,%g8{ txy !/ĨG;b=_%٨~)GN[)֊pkB'5$)H״m* ^l|<@ {tQhwSgL~b]ol;Ip-95yHh|[p]Or\S,oAmgJƇ$T}X`C$Pm=W-i=a͋S _^R"~E3FD]`W_sL۲`- {! 3Bg:/Oi}ֺ..70F z=%-suZΪY=x@IM @؍!fLV{A=ioôES/ kbq;̺[ƤtZZOhG2+'Sol}u񧂇 ԅ5[07 5Kl9$qˢ۪ǀlYoꥏ@ӶB _ Gc#CC$htD=6kY+hjk\92702l~Qs1>fΝ:ڧ 5MTvN~ ؓj;n@m3d(v8F/NSzo8fEvU'29Hufgg'܃Y泌ݕ4 @D9_9^ӜNL).?1 $$z$ĢpKNkc1\D | }VUo4UenSPL rqr% Ao B)۶I(g Ob$"..2'!HIJ)*Nhi9}v' IlF-4aChIe1pѱWg "KR'TEtK#$zP?nckheBPrGmښ(֘@<Ǥ]W5l= XJ.ƘL=pS7Tqc61KF`hF]ژ2Xzl}IhVWRRQ-E%%CyaNwf\h|}1h,zud-7Xh!u>0=f H̛ƹ?KRZVBTURVr}vUo m/W #+Vz]\Tzꆟ1]٣\C,}/cҮ"Bo؀ jE~qOSDrCzO8iAmUڀt.\9f!nN;@FݿӣzBB 0:1w7.s||~,MiҦ"M^Ԣ|ʘ)I5Z宙wK=?؉k I| !{Db.yL1G0@T~aTrI=ZO 1?4 ܌+*XY (d<MW+By|4˥p̤5ѣGȕϯjPboFYAKSg(1ل꫁YLHOoA|AGu}VUGlm]av $+[JmPA\ Xm nn4Ot_d^ޡgt!Ҳf"/}L- !jQ+ ndeE#87O88lE7}5yf.0*Ӝ4Wu30ٍdf47VU+ľ?we*[7R[!:[oUv#h{îR ,>!%f78=6P7\W"%j W0i[CرM.LA)=B1E 뢁jq]ܦ_?-1%KxDnt˘]LD` mmpX:!~1.-DŮ&Qg)L.說JlG [sy)4k$0q"џӧY+D-ՙ "U]փ7o6WDUfvvpϊMr|9 Cߠ[|&*}X;tEĂl^.9_f~~!`+eް67 0֡"2tE*Qe]4ʓˢ3*2VfQ Mߒ2}VE2 B1k "49ba\nk%yk_s͞bwƳl>s.A*̝ΨhH NTaLgܰ@b&Q%M{ cEqt ijd:Q(gFQ*,#GuW5Qk#wvJs䔴"^a ќȉ L33 0-7RJpqk@&+o'XG D/G~❔uar5zE=?nfPS2f43?V#&M|."G-}s3_3Y١y@C\0u ]OsxP8t20aТnDB-T34M7dEd\]WPSXի[.Uo.F3vc^bsz$JMrm3"=^o`[fDhE1N5 yL~}&b%|O:W nPbnt4J:B\]hTf5᳃+Ou/Q`&#%i> ?#g6hu07&4(5F}'$ˉW XVc˾%wĚ4"ޗ$"9z) nVbJ{_c4m.aW0r48G6+y_\mV/gwY_ e9b7B*%{ C nF-KV92=c~#//Us-``4V-RrFEґp1᳉f΋:<`λer7[[{*K@rdkbzeߗ~}< Td@N#:1eدfv$jw0 Mj}_~ZhvȨQ7V +DϏҼTCe*CH0^긃=oLkA0$Ŷ$/zo/j%|>Eiji!,+c_NQۭ/ɑ=DG &h>d0lmSIs%9lC c=eoaXus^Pq0nFbIlIݪ@*霍JRo64M^棚kck(PK"qH1?֔8L s nuvola/48x48/apps/kshisen.pngUT `fAMPQux V{8T[s=DBQIa("!թn.. {oIjT*ՑJf~)D%DYy>Y޴^S]_ Mw7UZjLվ:uRΞtގYsb\bD < 9DGhu ﱷAr4i}}=f& VNU-r:ɃzbP כ,Wo ?[ҿv'0`WK!JKJ>+;^Joj>dKKcp"(gUOsfB( 90Y6;")lfhv;JQIjos09W(~%}NMO'R[-7Pmhk}AbMmEh؊;iD ƌtA7:z`ZZdK>{/XK=7DW7Ɩl4 u WNZd DMM sW;^s/r`| 'QP"Nnܻbl彝q.MBly;Y,xib M`;y^i>崿ZkAI`d.tnq#^mq[[DŽfi *7$5Ss;. 3/WFf^u% ?f6\Yh9P[FW"FGp(h|ro1uEib&R/p~2y^#N2&R4N@։xǿ[.UÍbcnUgZZƒG 95˽:֛:s:szpܻ;P%}JS׾e= M)H=6O}13^tb3v1k[(Pk0p.:=~yDC:l6 -TۺNN|W`U@&mBTr 1.Anv+ڴ,K )/BSKp=n.jǔE&+28RDn!J9RµO7AL(2V 1NF3"T"o3O8ZWq!%tڈ{/=SX%Bƅ+(0$'XAJ?J7uR]""v9;e?ƪaqy'?rtX|*]gJ|3 >WwtXb/q(<)U(5Xtkq^q-嵣Qoe@::O$r s R#OSj(ZDfO,2jݖY FH^sO짫u =v$<cQ8`J`{1n֥jW).u닏2ݙGg?[QpLBW6AO!;0"O!mexm,UrjI+:X Lp ?SA LL+{VL`P DZ(뼇-RjcNe~1%)p^ kH->7avr20dRt]fZ񗣪$dBJMk@[Z0j4?!>Ϲ9Dm:u0-4K`R_ꤺE٤$9ߒN\UcQ5, Z=%`{?sD(X~BM 3J/&#o u>@r@1 \άzsa C<1+KZ"!"8KxwĿUz_aK.0Pʗ;x˃VzYs#. FV1GkK?"ۻUS3aPK9N1( nuvola/48x48/apps/ksig.pngUT NmAJPQux %V{8ig^f^fvf9l9T̈RJ&3~8By1:aɡbbEj!dZMM!fo?zw_~so:>ޞTz4p;2j^iO>gGpαbpiVdp։Ę;@󨏧{@P~8  8feeqb؉En-+Ål7bqTJ$'5o j~_,Ge¾6H T+$m d2sɯ߾*Cѡ 3̻)"Nhα/`^8 ץ2+b!퀛PM/+?2y()ʖ#nc#{nJl_oS0cj@x 脀/[۞̮mgb~`-+uA0m@W[*=ߢ~L(<\[ uBg-Y,Z1aO=`cUpqL#sØ ť[]zb5"|`#pW&O+&ԵRLѡqCx ~ܪ˗tz݈{(E9-+B-|R6ysg"J w& }L ĮSR4;кbYgY h@`ƨ|y2<}+]O] ,+5ej:h'f$Yb]d)pےY+ tWR5ϩ ~[sHM-NM^;F޼}u0NdEişu!@=ph~N氍2sSi`et~"]9X}[e+& je/.aV-nM>7!+Wx -?oTsQb׵[L:p xo͏@;Is{dX 3=bԭHpIU;^5ϛ;u4zX@N9k]tZϝcOӼk4 f\ޚ3ߘJ6C~J$W*mŠZf œOFv5gPɲX?`K1_H&؅~-tgY*iרm?a-_*JtU D'D2;ϨkPn5ȷy"[~N>Oȓ#aĿS>b:p+W1c ?M6,;ܭ:@U׫X篯..Eč&=FOf;AR)-AoƧ'g$C *^~LųDwd^RuSZs ZZP~9W6 ]μ|s#۾ݵg[%"5yxn+Ҩ1.Gс(hc}XeXɴwEk}. G|m׷n9t/ P4) Y@%C(Am+r$}0koJ=/O'2U(z(QV94fCJJ<#"q/K_+f AEf]HHlP?UA&U|gU9hgK_Z+_Q;sXpte#1z]:@SU*˾ KSi(,Q/S#fXhM|hn\,Xc3G~7I$o_GRYп]Ü#a.Fi_GͪƴCВ7e8xa)Z_C_D4ɯ^n;C1N꼃ߣsewsz8]5YAjͨCdz|q*0hkf;)F3\}^WG:Ru/C[[0654Q^߼׏d@h8mw\\P0O]t|㩯e4uu,OŲZhs%qOTy/}:.sc!ՏJg0:wr`ͤ׮-|NOT0H09ެo^Oi$-r:%Ti`w{ǿ*#/8W^3e`{}<i"[9!R4A+| U4;i_q{G0c!02=b/jhȡ*!.0ݽ#q_hJ"(Lpp}mM9 2j;D e T-\|.{+Zط4ƂnmjU!}T{L9x[#a 3G24į/ ›r=z7Gw/&c$SJNZ=!u,Vww;ښ֭ 4ak2+עe Rf۰V2Kǫ^e؜O<!!r0vHn_!@-s.6{UsePe%aљYƶhOHJAK-@Og]Zwΐb+]Tt\j}+vG䤮{9%Qk_N詞 =`pM}yMҧ:˦YLĎHw1%;ΎE" xƗ= %h) oa-:T,ʏ\oew/$~ *6a7c'fxێ~uȺYq'K+lnzᚻ5g tmu]' !i)&YNRvQoiw^WɠGyGk?ec% Ә4C}'?^Z@'9,,ŏh,̻jg?RFvk}fc{տ C~Koxzwzx#>=fֵ8*46/AJzVvna,ͮ?lsޭ7b_< #RޯW,eY/wk}WhEItt(γGJ&~.b()o+ 65QnrO8Ϲln"2W{=H^:f;&%T,p=2,.''Sdg׬/gU CgxlkҲ;canwaeۊ} Q8b%[+3=ŽoYj.[X4hOV%}#G)P4hyޥ=˜rLA74Dو>͸a3.RA#!E3ȡ/ȕg@ӈ_w22c^"H'yk4IA bb(;IHw.پlnpT[-ݦTi'bxΆ֎rX.8r"7 zS (c*}C׆2;%aPaYJr2AG@Uo;Λ`*C%?!$r`HHxv%'@a dJ7\xuЦ0O v[4E,Zƽ|GeJ©xS(w9b2 yw8?4NX]aim[)7;z pӧ#xgkVv4X)tw 5rؘ.)V ]?nBd,[[{; eR{ ~S] Lˀ>ƙw핇Ciq S0CnP>vΐ INiVn4@Yjk:uE0T\㝪ힾ؅=KuGkWQm%\nrvǖDȫΝMH;zp?b35"+X\ !@H.UdE VPAJDCY !X!b%b?OA߭bxГةOXl`-չvoM|g\Ǝ[5۱bv?:fȠ9(xgK5PtKŰ8^ <螟\i$TvB3FpŒi,3fvCX- nRW^/AQمnH?4KŗNʑJVf;',]ͰC&|>0xHUZVËG 5b) mhJ :C7 JK;xwJý&BMm2s#+AU:Ukdgx<}UpCjAwUȂѝBZ"-~sK@,dy7*8?ďL$H{>q~}9~$C$XbzUn~>4u53<; rcTгF]Zz"Qc$%mmݩVO>cB4H!UdiVb_饽Hbh: y&Id ^A>M@D3;'9 [j иw3$:ܳk:㮿3׎:@Mmewh7WVlX QUked+/]㒣C}NF)j?d^j5.ۃ|#y2EķŠz-1T-LɃ>@-sXZM.=ۂU'q٨Ơ`_=|߱ kti?ϥ4 пjMںHIڎ ޺+h L˙Ϗ͏qmRC\ઘ`%PRLE^ U[X K>Ǜ}&1Ro !iÌ8mq/X;,g?_K !^,l„Gm\&qab:.CǓKV, a?vGJw^($'K>5?2Iݶ2\ 띈*rX-ցv }o%4~p,hBtۆM/v”C8V䇫U@j6 r׿ml/;_ch!jy6nDs~Hbϔ,垨 eЛ3޶>:0m B@:)6ni#V'퐞L)5 wyU ϕQ0}nUda.\\.jBAhA2H.Do-E?A#ף#S+S5!& ^X1[0$ϱJM#0Ga-1f˂TŒ5S!†ŭO(#B@~E(ۻs36KYAivd+exCCN:E8$+Sd2vg\I̕sJN`Ō+={Sk+;7i! /) 뉘꿤ʫ"A[-6Sח}'i/>w>ì(Uu҅<("Fq9dI[霢tӞJPPŌ"\a8J-(rI Co.$c͛==}_.#ش:Sm66S&`a(5x'U:EoA 6K@Ix!]"VLnMAu(㣡d|gp 7?.:eGqs)*5YtI[W‰b:%/NQ7I3N$F%S+߼8*$j¥ҁ]i|98wS2 ašf|IWnSΦB9aDBD$7W}8=SI*}c_VY[ }FQ_<K؊/4_MGT5TSG:׬{pHl>Yم#ӹb@GJY?M_xtLjt"^ʺ@3ۦ5$I3P Kp@ EXvDz:=I$oOtg/o'X9ԃIS<N662o$9ﻀG-B"ggVߗ=i :E ],vɵ6DzM ǹ"F<10எ !R$*$/n hzᤪfĬUYczdeIvjlǝj^2 .%45] }M;,H*zqyFC*,x!|Iz#;brqg,ёaO IpE5IڂM%^F;~ LR"GB?iL<i $])mg$IslpHz\B19BQfž( kPvdRvw؊XDShUglvhhvZc:[Ax%]gws8Yҗ"Ts)ǯ3$udxsAUPT) Y?]dΝ97 ғ,Y*C`%&ћ QF]}{+ "$2}5֘F>mnt'8_fߣ Z3[pZ$8AH)ćՉbш@1̝˖IH2jvR -ܱ j;ўǡ0'fٹz#Hԁ];ެ!cc'Q#Y 22!p/T0yN^V??D(g~ wHIzOBmZ@扒~'d#pM fO^/ b f7:}F `>e"ц'bb A"zAF#G㠱[E\Ṳ+S~fNB5f4cZJ 4ļ~_EMp>L7MqVA:FVPzO3>j<̻B@ey7{rNyd %e C#}=! .r`/ ~_ZMQ?]>ހ1q sy*ܔ=VD_).@\|c dz1RrCPj~^(B8>x렕Iu#nrwoũw 5ixMoCg._jVj*ݗFObi 5-f_ /_ɷlм{Po;8@F"f (*/As\DV>+h&ޘsz9p8 zC-t: I,!k ƒ2gdFnl T=)Kg lH@'bx}Vt%Z، A猳!:cJZ+g"Ʀ)}\Z fOP'` Y @uLiR(*VUeW{u $zf/F57z\2<\c?4ys2J;̈́u;/v QX~]Zg'\*T!á$q3pBZUb}}XJC{mCQ,[9i|U'5:)ruX/aR3^QS|ҩwrnEȻF̋LW)'CJz}x-;wb0eg@yEYwF\ _:nH>X|vZ^λש*Kb.ܑuMo0oSe+avBkh+ARAGV x߀MD$7<-v|r'Y=ngqjeYWun H'T"܁Dl'6qO87iتAgo1}1.gd KyÒ?B?bT0hx`xwV8ҏN˞R-0[#i~ǤMy&x6Ȋ'DoNGX"pnڤ Doy֠[oB3ATmzRCkk?#CFY|1vcUo߽9N2̽>g8M46KTXǚ(FAwҎ%btzt`Vu^ v'P|wr Isz1u!L`}t2 3@bʶqEcɞ&/xeVBK,qp3M=/&<*Xj' R˸7k+lֆ[:K`5.#xSWFk=%S_$"qqמ4 u?x%A=0"v@Yw iSu,`ʀ^bKĎYGܽ!KƀM89K4 cc_&i&B5}r!O>Vi}dy40bT*2d_+ _bm_ Ȣt_ЇMV|0ET)]AM&p6Jm\_K>;Mo rSͬ]+QG\"x*2?'aSzjQ '4K։S46}vMZpK!hʹi0%ވqΤkgyn[W`3?ow|+5ln knnϨ|7w=sXk2~r΃F NAgtjfսTļXxq^-kЍ ^R@!v_j}\ 䩊䂣n!`t^Ybt'C7^˖=?E5z_H-@T&\}^(qeƍF4ehG WbYr4 KXξ&k,K%Gԙ^x-Üq_Z*r̓Ax^vE,] lAtҌnKq1˻`L_Ű@LJKiר9R?J%*VгaG NF-jeQ,RjT)juh!J\-H&qѻeBӊt>ݦB`*ll>\ۏ%V(lw]Xj#ހ춃ŽrEv44 mxb~\/Gyq5R,_m01䌓ڧ/f^v\K";;w}?{t$$wH,mr L~^#QXlaQfQAUC<.pN3ؤv)դ>Y/'tԖESسNGd=~&.J U7Z]l=}t+Wߞo^w (*&rOjWUlf(ڷ/Qt-Gπ(5zjE_2*&[Z/1s|FQ<<ʷﬖQ72NZvFq^gLk5ں w_mUٺ g]Pcq`COGe(i!]rmc'*wy?K?/kl00ļ/H}oGuϥNzIBG$wXhDp7땞vq|C".M͂a28,x(tQ}.k$yBl{Y5rjMޚfc - !Bw:.۲U19 8 Z\))Їuw˝I"K+ PKRL1Hkpnuvola/48x48/apps/ksnapshot.pngUT LlALPQux %W{<Kو )Ir26J#w2dE*8̏5cB͆r]~^|v#`{&-Ps 4nvNTԽIq錔X;&Kqˈ<z;{ff KFXGFt3rtR|sss999zuɻv^{t3i :fqS@XAC.pjjGGwET<'@x83FhH% ۩k4W*3C P(DFC:YjJ91C,=>vϟh3gdL!a"%3]E Xf؊@W3p8p='v( ^: My_|Ot0{7s6Q(=j=G 0Y0h;^|=R+ƅ HDV@ln"s{Qi\':>*­@lϿ8Sq< 8 Aj$~-C{[B2ZMm6fVJы33d^@j Zbn r"gϕ,Jߋ1ӟƁdT9)t^^!DcZE%$QٯuB^4fUs?t9הIn鞣>S05]++\qb%μOhLZL41t99r~jF8~F5lFNF弁l|6a)/WGYף\(ǨI1A ^s` ]>V80w-5 FA̡LWڇ nsK.O zvzT=!I[4Ytii9i1٦>֎!;EN͹=^G]FLV d;XX&sqWGy:wIF Z?g^ST|N$1)wr?^GL(9ҏ Bd)ȩ՟<帀Xzؽ)t;LZhiyC7 ,UT?y PQmfpx  ؄f6dZN2Yo긳邧dP&[Ƈ^b:R~\\ۊ~3SS[-IqX+I@L9M&:; v{lSWw]ZFHb6tdg]m+v,Y;#@6<*ƓQk:_<+(cT~/B[N,| &x*u;i#i#\oȋ·^e86KCys-.१kwr5.dɰS&4!ꢑg 0ApJ'H$𜌘[V*:nv/_CN?Ok"-O}-94{"ё|DmɎQ*G3)xߔ-0>RgO~EŪoD'G {=>QkU[n3s,.[nn=ps,qm0a>)P$5W;BJiE [n%TK!ݟ/f +vF\^B!8zm#2ګ5?7""V$^E?^ Q/F s`26YZ#DmGgPVs$-qcB>EO8"$ZܶڠE?zUc9*vj]}Xs1{ ٕ"-:Bz oă 5t%BILA+}8rTZ Ob  g1K"?#Z;诓׍*IsnpOۦU~eMY4#r鿟@-.p1HFPc)th[->N}͂Wm^1-^5l"o1?cSrC~*'}0$c#r2^m?`0@z1.'"M?67LZ }"7(<򵫨.>Kq*B ɟ =-7HVڬ ?a49[ov*![#o#F^^x9r0xǎ"̆~602BfӺ?f}}S6pwPMA7FpK$mA 0u^lP2ںa]΢hY[\hrҨPo?AD#34!;(m$r k^ϢE'X)0ޤ#GzQiuudﮜre{"[r?QdŵPu$9KWO()N1tJ:7 v[hD#~h:mscLoFI(F?PQOs0;%T~Me%~ˠ(b̠01POWoOqOɀɚ>m38`jE=94МF{iAN^jAo=р EVOk`QϺZ6xM:VѥyFY&:0T*5PcrpL6RG=4*<151 GsNeN@ Px!|H{NպluICƹgm6{KyNEu[??z eWui J*)baDcؘR>6]b~prŪ k'o^Ȁ|1?U;vo_:PKL1`& M nuvola/48x48/apps/ksplash.pngUT lAMPQux ]ViXRnPwN`MS695: dfffe6iNi m8fvlSC6ݣ9)NKw~z߻t9 !"}dTռL'ݙy00?.bDwEGÏoXA@_3  ^WBd[<҅t-6q2i%a7]!C*wd[w_}i& >hV>s>Ek~y3fb"`A2e"꺙pM)h^n_+Pa-G^Wv7d;C I]&sw`) J^uIwy$#BX{(`_ ތטM@@zχwM&T 'i|+KLnى䛚RfwId F:FuƓWe}R!+OUzQqHk>ENp;m<$Ɣ7LBH/My& 2qO>Fz-4DI tcy_S&ka 6<δtN; UN=Ur XM-xh3zS՞q!tA)E~lc #T "{Ղ{I$Lz h¿FRNQSRl[V@څ\3ίb,8Np@)j~p,ӎ;/,o xlJ t-ٍߣG[YD+ʏsM $}C9SYœW[Z8*F5T*>.ܓdmصz[tnt.W`o7:L~X;#[8~òkT9՝Y.Hsq*LfsӿQ~'-p [ 扩s@|/+"Z,l6DwaST%~%`v덎 E-"YnʬbfSՊƨ'!c/"EHhlxGp`J.dE^#{ڪDm"ڑ ݢ?/4 FVTqS50Ppi#F.=gK](:.4tYu{AgIɦ }C>oCdv2gE扲e$5d$*T#!uhxO^1'.iI}7tPr;#1jD P{#|+]ڍ?} cw]Q 7VR0aӴ|{< ̈́ Ȑ\YeVW C|/h7vIQ2|': [FTF۴!Ί|vM $fMgzPe3 :F1$X*>cZiB>'[4} ym=2G8z:RHߖ 4k@[u ]ۡ2+C4cU8*̹4@[)_.L.+^ILVUg+Zvd!0jsoj4wM$m>pI2IQp"U=5?x'Ay5vaEKWSKlmal0j0:=r^*(}uUV ~~Y!Rq'S= ZVpUfq4{eJJ5S+7]ZMˈ;Bפֿߎ!LJ.'[w9{= SIf-z @˗i~_ U¥wzU|kiH&Uzrrnpɬcnw~R/}܌5Z8pn8”gpoI}n%㘰5.e%&~ś0ժ>'T{՟&;7W)gP .f+\X#Azd0>i=Dw%j/-GT#ҤR3iYsԄ/][l SG$O48-G8dS$Ed 9&8tj\ bA ?7\b;$[̀Tϡf,.{)Ζc|Fo|CI NRpG +񙙘VjC^\_3C, 9G$T0$=tsc|GN/>_Aúw[0fռPKL1Ŵ nuvola/48x48/apps/ksysv.pngUT lAPPQux %yTS_x%Ge˃($$, F@QP haIU@@R%j$ -XTBK@AB^C3s=w>{숴%8kŁ,>\&s>@}:W5+Mqw\pB#dayKi[9O7(KoDFFڊ<53(JZI$M(L+ mf5у 揾hގ67zbQMɓS8g||7*2K%ÌRY_ـg'7oUmr?n[fS?Ttݙ&P XCNj81W#lY.^H^" mCO05/(9"iIRzwݔ{zuƫep*y|̈́S! S7{44ܷ‰-[x{2O}!~DCĝpmt˦]o %7з װx إ%v 2̕~ҍ!U'tUNW3:/lDUjs)Agܳ@gpB$jcGGž}3>k=Am T6b"z!ŏJxNQ_}S}f@3<]]ZZ!ښ+x r:ybD?rɕt_UUq*-c4g o>JӦP-\-N6Ts' žz EzR^`7 ƹWdoU͆;YMɅc/"!L22OY?Ԕo+RsY^c4; BLGd'Jߥy1 c`0+Sn,;KjtoY iQ 4-^nDtNmj6qGO-v~aoŏu(߷a4S,1dpmRM9dG"VKŔ,VekHɲ]IƷS -JJ1U5Y(ZإHR~Ӏ{E>[L1wܤKsUO.VUMt,RY V* \lzdR`0̿ΆD+wwnR@Ya=%{9Elzߡ&\5D\kQC6m}"K!x[N uұ`t{guvYHFfr_ `\ }26]`$ ^O`% fDƞf(-K־A7g6w pEa JzxuY\R7$^htx @yT=bIK))a,9/!]5c~4:)9^UK{\o0E^ <1 )NICd{r݄YMULJ% (P&7aFTbkTZDbad@Jr=0 MvKX2j("/sh8ZqW&,a6%MD0M髲?]XUJRQ oq!0E|R߃^ښP𺺠gW{C3#mrbgaD-ϵO/xh QkqV4?c\s.Ɔc)H+HZ.umUPHk6eRV3MF9ēzh@f3{=Cr*%1[G?Mp7)=I JP*U|ԈЩtyglT)ڠ6͍Y>L]Eun4J(~*\[ Y?-Ǿ^E`*Kք^[TTd{ ll[/^6 RPyF!_M_zFiA&܊#܏+r`}fD; [;(.,{t1N!v.r9CbeF^hUb45_!N..wa/Pπ(鴿KqoЗ긍80  AqeJ@f;uMezRlĖE+k IOSm(N ɲ*%7<: q[$'.j-~[ټ {R;$%|sЫ9p괶i얥N¡]ҎNt& X>5 G~ib?CnϞ5lǔ5я -i;1nhCʚ[Sa*:cV7z=^fTϗ^/P*g-y??(^]Jp>dRdwHDBR## K>]׆ZGdoŊW}7%جar1,i]HOZ/]e24 d5wvfVvDN/\ cʾܛjijJN2}ܽxIl )Kc0ztyj 5ۭl5<{*U kWe߯>dd];?GiHevaPQInWrL(qt|o4}?~ ƯCvQU0Im<EUf]gȿ}8{czClDoQ۶(==ziڮn^t]cbv!bB"IH :thH}S4bnsKlܸ1niip Ѓ2, :x?_6$JY7]1ډ,n9 xnm~js AWx)ꊥB$ې5*PQT߃ ΫPAx/]%Mn Kʐ;˦V219, J XP"^}~pe/0T7_v^d2#: xT&x9kgw./ɢY\#^T:Ƕ0ţC7#\Ԝ:F!FƀsD<ӠOp 2FfH^9c=бzy469+[*҂q/;S1Lb8uxˇWeXҨr$-&,xU'xgh9f⭯Ur =?3ˇ<|߷$ڊwDQd;o6j._{iT.չqIs4K)ݴP5L9= x1jB$!pELYRM-~t=$$ͯ%֨;BW7U>fswn,굮 ,E/YQ 2+7i3 $a9 nA!+?9,|k11߆'fVE-xR&l?^dgR+V^މh-by@UސbG.^(;CɂÖXMfz,[q(Vq!ϹZ~UaӆxZ#qwq::8MSSĚY#a8 zc*c ߼{&ctI_FaXs%jP/j5^2fT͋Nrq#E]: -D{jz4Iwٓ01u7чFUe]q?Az[ a26a޳VOwR[|NDt)Nl CE wvm6a݆uLY 7c͹QW>b6NѾ14g>пPn[uGs=UH2zFU R~M j뷽A,oѭ3=`0fp,X`h%hʁ(9#,Aœ6nZOPJÎkڎ'`-QHgD(PIܘTH򸒦XvDy,:AENh$ ;A2 Y5`^tMRs;ךI:C@f >"EXTe'}]zmq ZJ}H$"?†c!lk'uΟT{\G fw >5Ůّ14;ݛckȽ>}5.WObJpyT61uр2K0$3MV[D/^ J^s-ʅ{7tbu,'KN^`Ju;(%h ih[D6feo1yîfR.Cւ : :O!a 2loX7+^wa);~ v7*KbKMj pAY?KR2K۸l7ە#%ՙc)@}[PtA2*y~ FZc/.af\7;pX;G!+1N 4x|ݨT]'}n<ɣ{زeœll‚^8Nn%XT*z[(0s@Zs`ayԜ Z5\LɩkSvk׾]˝{H!F}ɪMD41;o'ЫC5H|^ڭBg>^7İ8IZ}Υȭc$YW9kxɹjXd)늃8}902 οwe_[r5f`3W38MZJ°3VW٘k[:*W͆E꘠i""Q~DtqAiA_ zd,7l$LB1r-~E79Hp$`Dpp&Ā`ٙ/|Φk$l|"@Hu)ɴ7Kr_ob1s-ۉW_xUrzAgrRf-bwcLuyNe%7~f/5/SK>JoP-*rƖbcѧIHx.5xHb$N/`zjuvZ6&N]SsmU;80`Cg Puv :5*]áxd9x9$Yse?R f]0BRQ›0.:u;<`~s =OHI<fABך`KM}j],p=T$~q/1^;J$8\ƅ{yPV=ŶJTjGf u.j'5VJm;fhb0KboH$ͻT*pO"N^Z+ 晴򊡢VEZ>dfDŽ\/ E~C:,0FWe~{\e@;K9JLmi@ 3}ju2?*g9,yaBʺ8{w5*5_**5C,w*L+'qlzd-ލ% div@oc2$sOrB( aS2"#Z` $ tc?PKL1dFnuvola/48x48/apps/kthememgr.pngUT lALPQux V{<򰑴LH)C6s|9Rtx+mƜ3_eJ%{9T:PLrf{>}}^i>-@Wm{^L:U9o҆+R֘j g8e]/L{$dVlprItKèb-BK/hob^0'iypfAIBV|z%k)Z܀\n^ZIzZ5t|T L F :s.u'esjcpJ.r;RSEfw&iOiڎm~/2|sLaaX~7LR*Y 呛y'D碚Qt[1e'ƾ:͞hq2asљ+{1ҽ^5<38WPټ\D _e{Mxtx) Oibm|W/dZU!#!dYM7V9Rd72kצ(Csk4^~ ةTW],v&<}-ܾioUs4aWx2] 蹖7L֋Vϥ4C-ΰGVJZ #dA&~]UZebytXl٠`؍}$eնH$7Q"Bj۵p9s ;,5('؉p=\|$}rg WW_FR Ap z@xܬD?QVk3gTJR$){O#gM+N:lHCQ \YGY=i)L\MZ(E:eզ^{p*t7s -`/!䗎315=;|Sqy~z33T.%iޅwPeE3Hk݆߫sǬEh&?M}54TKiD=΃g = n]).s; - CBmX7؄X ByF~BS) v-+_YrRJqlQ~xnFDٴZF7H'M S`l0Sa(/T9Ǫ_[R{GOtr^󧸲 oS!gl xsYQvj/f=[4)q譀6*.)?SgȺJɋKbM0p66.G{nXZS\ۉt*)>09-]˾x^ߚ9U I^{|9#, cDܵy4%8Vܪnj Gl'5!e{9/=ﲵP7Z!pKC41-Uk"ɥ~q ve>:MKஇC a"M״?zrOᔉ:awK+龒F^{yb  e[xU*{y -4L4i>c|w <ԵpwP$><,΍";`ng]6O ts ]="BM_P%$`ԋ%Mѡ/=)Rh5"KtH=ƭcjN4ܘs(*90zk\[(VvKk{iVNtqazK$%g+QK#b|0כ?J*ƚz C?jNbvlH4trin! .9v[Kɱl6Sڒ$VLXS:W{ 46ZD8F#}K`QIB'zPNR;=G'ep a]z5=S{%go9GL{V@9(-w(E(SȤ˝BbA#њEcJLǞjJbϗ)6D>kCvi&6toϹ$ɰ7kkO7!As^r}y2DTt(Mj ArK뚘A Z.+vfwQolktq$>7jS-[V4,wgTnQ4(TހHjE E@p&S#.%jKkg48_e)iwlQF-gf% Z GFAIÌ9br-^+ЎUxlPa䘂Q̅9$#pB %-1>Nٛ{ M`\SJ.O*){b]>5Wh,߷4QKڵtkVAq}P>,\q&895N.DD:kSƓv*w$ez#,kuIW 'nSM8GƬt+ `Ȃr &Jo+f//X8$'`(j twevAO­R&n&D@/ 5l n6@Kq]ꃋm q鿎i'7yc3Ij&Meq!I{՞Yi{w]*<3cԒ:x`:sueVDB%%6o?rC4VخdA"-nzk~ܩGjSPo7~w'h'o(jA'C>4ez j' '#lk"ŗ՟5 nK 'A6h)rk.E_=8Д,9W7^c (QγgZ~s)Oߕ*z++lӹ<õZ PgJ,7bΑͱr>25eΜ7ݡ}f56&r,+@EӟA֗>$mRٞZsCf0nS}"¥)DR-C A~0tZU|2:w CE-.q6.Z2eMO[\4ձr<.ZTLgo[gl7 .WȭĢ?qB0}k)NZ?p(eb咉˩(A K*>~u?8{/1{=։ sӿFRiHk*PqYAԭ$)34=x5hYYssHL\B3{ U/:r?7sn7aJh= \4s.L:fEO4w4l, &~1#in;` lEpm4>]gCt &NͫZ:یڟ(,îZ.YPKL1+3f0Tnuvola/48x48/apps/ktimer.pngUT lANPQux W T>ϥ,EKKs2[4I-#(je&"I撚&TN:eJֆe*jii;yw;{}{S|`0RXR~k %y`f[?{E7C.FQH`g))ԘZa5!9p\>('žT6N4yiC=)4ҳ>XEYYl*J>*d!ܛI ĻEF2ir|lAO*(1^^LHL@B̸fĚ>2N(Eh@EI8Mik3}xT\ֆ>U H"[]h;ZVsvvz3i [;5vA!Z󀌔W9EױB.Rw4,ZjO菓}*J';#ζz[/:`=LUmVZwگt!ą% BL1E낃tɇk4p!Ŀm#j'Mbf>zRas+iOI7IdŲѳfآ+|n"~ƚXl2)1nZH`j8]--\>|1'KS۩Y]˸f0YF&e,01fb #cREߠ.9ziQߖ;+Ls񨍪1(HrK#7bqʖْEs~f:E21mǰs'bnh|و= ׸IO8)fx P<9lK ; 3?D1!b ^X`x0w_bQ$ѢSDQgCJkS̰٬ٛ@ cS(tQK&\us ?Nc4&i04T>;Y g4Y3[/d5o &7bN?}sv=v̢Ư(X+o=Ǧ]*۠`2Fx3i=:]1FC t<"+oxP7ͮo^E Α;)2ai"S&OCjpM"҉2 */"hP3oh`d=W[aqii7C)tkMFoF#4Q1R&N3~sX:? ]Qa6]+Qw. ?N!0==z'o@7w@*Հ;)Jy8^㮄5~ySRQL&d$? =_q @U,"{JV^lD~'̥FD98z&G7^c$hS8a]1fU϶%'RNo00/)|0U#qbW62_Xxv f+Ѝ60"ǛG=L?jVvs⚸<[ng'<VB"lͿWʌm4O_g8E,X=n NgcIOMD;'ng%WNckհ/- /sDeUKk|ƳzSnpЪ c6 NkFqv (~D9M>"Վý9BCYEe^%@Ϟ*u;$YЉ Doݲd<{b3֓}>\D}+I:G*c ߽QnL?Њ{{ {{3A_zf,]sU=2dFF}fscx턗/$Q~GJOݫD%g թGV# CШVӄD88668۷$rh> cFkM 0s*&|B$0om s5m},$II< XE)qCSg'nn'vqm'Kˠӵ[[F0l<ˡ?)6T1A3c1*GnT@n4)aJw,Lfn C2bH*aCh>@6@ _MZ2 A ܦ2Wc~4DkF$k" .>Rou8#z߸*2C |R爠2L7$QrW=vAy9 k1HLoLt?[NY5VƢPnOPP9 C@<ܤ4blt_|8ӛ۩gq8Bʯm5$.rte8Gqww~p:uC]yXM\8Ǩ0GE":gEf|K\E:sjkjf8_ˤ;Hs^4}F,u8/:o[%p0\]qG| OC<\WC^=4Iwϭ Brb~PW>ijY-[w۹ Iyʭltvy>J,+w|05+ē(V@U1< u\B (ל"A=x@?%pX蒰GCihBiDI/%=e|< |.MТ*MſN^B ˆ{ahHT :1pkLdiw8\t@s\+ KG@yyx2zUN:@xsxkiωN!α+sg`-w=g .UmԠ8?]{`e&>2Y} jY<0t !wmq`!舘=tsE kօ4g2mJf8*e|U:Kf1 I_WK(KrJ#/O`+ PBӷ۰h$>biht3jw^rQ,3ݻr0TXȂ`oWMMÿR[$l:bL?:K[.ųeer?XyW@4ͼrI_€sX.#wNJ^ Z #>b[&d(2#"_i-(.CQ%oķ, 4PCێd:ϽI<ڄ>SĖbP?f7qaGh & cu-kjk ~RYUx抮CwFd'rr-e@=,19nF%ۺ(ȧaexW.^S.$Z<j$y"*FncMwg,Zݗ9~SPpbj>S .T"emn-54P/P a(k8Pj8!{^lʐL,5 eR4mQ<}Y5e&h&lC3ҙiVEW\R4~8qyyyߖ ojk >mXsk7OL2{-n<]nTaO\!5)/#`'ixɉщ@03 euTEaTߋ |TIBIoHKЋ˙'}{%aX,["2 T!Q !rI>۾{# (btA3ikFkE7EO3eЫ3P^+ P%CP])= Tq3v*9%tzۃf~UbVԡTEvfI-U@s+Qb%GpH (jY;,PtR{k3 =1(# zB]ñf~:bpo4 ܢxKxq+K`*Ç?$i%/ݧL1;ǐ:D¸Łf1Q{apHԈN( ^Iޒ@v*2GfD6ծfpTI!!?-jP+OKD3s#:H)J?KE\lWK)[HhVJ|kM21$l:˾Klt^K0>erMdr[hM ؼtV`}^{-|^^Eq1wIMD!Q:BG;)"IG`qW{JpJʅIߎ6*N\P[1zOI*]0Z%ĎQDegx3\)530htdQt~‡"jU]Q.D#|7pqt1/'9EYf Qi =m&/a嬄|kվqǘ1kY8wRZRUkƳZzXxZ^vϾ~В|2a![ yUޜ(Li#N^ #uFeb;IeJW;ߝ!a~5%ЯYP[nkSQ{jKqBg_NejL5Ycp.4!m/)˲/ukLn};~\=6zj4֠jµXm9wr;}-Nܘ5pnnT/OO.OKc"Y'e{ρ?O5U5r]dqմHcv&71e| \O& 3>n', EAq'$/x(r~x3SΜJz^iOʙuN>ɢsÆɄ]A+KPayU0r]`!6QWg Z8 쬖W Y!y!qZ~]2 #-pl<!. bs6UXoI{TvC\$wn6-.= %d Ue8C O+Ov*Wgs^٬x$@~^AL%V\ݧ4k=?n2 q[:0f~ٌ3$y[X cIUn*8u≬Q%~}=JAS&w1Q£p`BFrñ@mlm ?WPbLQ*Sn@sf&+=d/!R֣lAkDu]ur#4??hS 5J|SwQ=%D(>l]'D"׻`iA/]d<[z] 4 .Exy[tL R0[[ܓi1?)̮B.(S7Ns"*$;QlyFsOr:M2~PW~lmm|[Ψw_\6uUMsD@_\uL) tu__ߪ+Oц02wߛ2񙳁ɡB觟BhH{=?ලt.9$(Πnz}ݱ7O5ߒiJ<1b;j3Fa~ ݽ sqD*õeb v)TBT+qg,@#'TD&nCՠ2#iw;hEBoո 6D6KXy xy:>ANnh=Yhi蜁𕑡PKL1Vr nuvola/48x48/apps/ktouch.pngUT lAPPQux WyzιWznj#+Zэ`~XmtzOwO;)]&#H0A%-tLde9+cv6ȃM{V*2v}ۣL߿*=?ŰlrC٢/p).\c&Cc9.zמ:2Y;wc W搻e 1SJ}1῅-b]I{{ ᆒ4ͻo9!V*WMRq..]WA:`@v?fm (b`jsQرT GVݙI&%FϷLPG Y:[,W㢇)vr^tR to=LF*\1W(/İ\$؎^(t0 A(eE}[iηs>i {H@ĤWstD>sH=N]s.h糺&Jⷆ13t@{kv-\&cmdg{4 -4id/ܸqГmEu@Fb: @xX=+t,:xU4HgbkL A-HFӣIΏY{{{^]~TB&|=>>^Av vڅ>WI9BI/lp̻81C0?=NFHb uopߍoqxg`HdѮYٷÍbdLrZ8+j@զ[ր MNs.rv&0 Rp3-:|1$ B%$eCޞKWV;r9>zcKvn|?I4ʗ*9U9#ɓS El0n̡JddFw1 ,x^?V,n0tJ =H/gD>{&|`v GtJbM m,7d9f;)|55վ]w'OM|hw#)(R*? .|=35!׭lӳ;U_92fH7%m&}zy4ŖQ( mƢl[Y3PLШlH M8<`+foaD| ap~[lw]EdEZ}f:\ƚϷsu ZBDTV~H.O$Q|`JE*|'yjf{Hm&7& jyDu5O3- V{̇t(I8!,ZHs5Un=dIJ"54ڒN%}A˙ Y^vO7Be}c#B>("^/=/0я e5^]v2nP2,E#Rϟg ]=8X,C8"b$5Ȟ\3XVj9-$gMD 1l+r3VFi\\FZw.DO {jl%Ž_bH xho3AH v1pӪ{[xB芚vOkgg >XM /)Pfo9(U5~Ym3x~SV+l*`[Eg K9kx`VDT$HQYˮ]L {E/~koC@enhggn\okv/99<ׯVpg(`y/*wSbKq;rd|hp>W"g0o:peUPx8`"WibH:"2x钌%p3h\UA';dx'䤞#$FTwC\ԿS ~]3 ? P>5<0ϺGc`~e5^tIu~ 1{Bl&#D({.2wt!>'p6L(drh;*9M\q2)htڿ=l7E0L$Y}铉jl J6c3L4B }r\0UZu>}&'+ӅB'/!"I[_8;Iˢ!Sod3&zgk "G^쇖ߟ&u_.eI䦠ZDbgafs,sc<2ۖ>v wB˺qokvČwG8af[eVT" `H~n H>!qOǑ:r SbrA|(lz1r˰'QǎJXv F*N[M_#:N%-|S?&]SҞӤxxAf}rU:B8S/cn?KyH1~ax  Zj>ԃe}oyӇ:6Pp}架Yɿ;!ˊ3GXbS,/"qPbW=1pbm?H^/}rud+VNg&ptFn߁}d}ʑOzC7XאI9j-GRj1v^lv>H/,bUE~6&sm5ΝP9uRi@\m91L&n\^~. "3큽W)ZV$bS`S) c%w:`Q2M&&%ʵ:t RP[6"`'gL[V."(?7S u9dEM|y6OOAj Nv,{UQAZt6Y1&W]M,,Nw{0xٸŸ'f6GgS,HQ|r>nҢ3=װގ1*^Ot=zvxQsvPTHѼ/hV'b]tx*^%oy.UU\gwTv9=q .)QUKp IlQɻ4k=Q]i݊Ѐy${#gDF귅Z|ᩇN9 c}=g#{!ʮ>[4}HvJr2 8| MH,K?P0cCSs-  v moG$:Co&{4,9޵ܮֶ"6z1/[>LTξ>7fք㛫[LboI&sYQ}o_LCxԄ;HJYBh'c^ es2Ƨ"|vYl~|<rhi[lvZx5|,2r}^GIy"<-8Zeq>2bq; @J9ژ[ӿտ7sbfCI5 hZZJtkֲ\5k? 6~Ab,ݷtd-/UcH:Y;*.Hp*?SS*jqY>ACt cFŘSynKmTƅ#4>ne8r1N)#]TVj8_.۸#+w,_?]O5X _v6R,d nO1]4oQt zUFBsŌ:x!#{ʼnt'7e5X4yKo%Mw0ݮstnh.mhUWCGvM!R^;#das2gɀyBVrnAȾ`XFƮ4¯iOT׍]!Fؐ/)yǚu=ŕzn~B&Ԯ@f h )ɖp?;H hTẹqEJ֨!^vi֙zۍvYUh;dTG#Tq!Ũ{ 0[H/(/ggIN__ϮV%zh;Y@lnpW}JW5BT⼘7}H}ï]Ot:3/ge)i$տ<\f`[ somtxg^ $w9!)FMӖ{ӧ-U_j6J|+|/AfՏ~+%!kA=M++Sch-_5LJbU {@G}:+3y] >dR Ǿ؞>5)ֽGs\IfGnJjz*hG |C%/T%{JA}q7BTyϪƮH1A[TMg*]HFNS%wYn0*yϠЫ˃ux=uՆoQ3)?LtgH['APc[?]ݰWX>L'$k.XS$(bb[On6Ѳ25EOv3FfzǤs#k`Ō>=SQ&sI]PK/nhd` %K.[̮_")dlE&Disu#RNM5W2I֦!76۾~Q}fK7[zRC똗+8TYҴ pkkfğ(4 8?v3[a+W?PKLL1-8 nuvola/48x48/apps/kuickshow.pngUT @lAKPQux UXiXY~WqIJA-[@)4[fIJ[,VLPtҴE[ԚVZu^]+jT4Edy?}yss>$k:;lvWo:m-ufc֧>kb=|s0 `&'#sO$ܒW"W3.gzjKVEM={.?Wѽ{ɝm~2$زf8 X68FAsdN|[U՞|Ìυ[O\8c':s -*lW%u#}wo>8k@}]buoԕ3eJ5&R;95K/ Yu*N&5-W~tl%ǂbY@)eO=2#UUCbu1Ç=RqpPUdj.~MM Q=n.TM Hr 2`&= 0ԩ'fnmNA[D5Fݯ}r``D4@\6p#+/aV$HzަsTd(t?n,C'!p,mGʕxrn7PN` FW>γqg1*Em+T0D3hzV+j"8n^. 8_p~:Q0{ $W>GPۙE6g ]]4Y{.fMSSK+_\XҞ/]iodMGQ>۾""fm)7f+ısxfݽ1p,`prfUٸDnBz|? X:c-51 @9%(7B;6fȏjsFVO@ N[2?А>SyMݦwqYpm\ )#H8%"eI}Eo#s\Q5No= <.͙%>%.hn-gە^8%D`0)79-pefbi%~¶@N Um!@:Jh(w!TFUکMKۘҍ} =_`!IuF d=)I?NWr*4;ݒLh_SN>̌N(_D{Þ!2%ilSQ0g4"WH:;3!!:0>kzc0>hSlIXܱX.ONu䥏q;vsP_fބhѧnz#lp$p5ל5#'M]4?BRfebs_3y׫VJ[7Ɗ2ᛟ-`Fὥ",5^663#6g_Af1oDI!&Za("neEYR<,G܀V>ԥ3[kuG/ck}Ұ+2%Erݤ))cn$JQwqƠ jmP R#[np;1 ! n혹#)טD% d2ry%K;(G}")}FwUh}c@v/nE:/;eIŞ͕~ [*-bRHkC][ ZH=IZD@)SXx*Kd֌k|?!Xy$o}A]GGL!^;7҉|cjf89ZF̈́Gȟ >@fJ I,|: +6ն5(=?Go&j-zYtY ~I>peڽ4Z1-9S1AepGC=.P&|M=X7ndC@Vx\k_l{_i{rjOŃxy.A*Dh $Z:JBӨGSN6t%`ƇM LmKJI5Ijdk Uy2#:H$ĜEtMp{V\cL{A֬l"o8z$xᬟI bWޘLn|Fx0!x&c{(}~4Ъb~PEtA(AʵYq`;ve\z!V-eQU\ `tq*w &,l132Ugd|lY!3YWtʤ'-a0GW =vMu`ZpvMhxu?&SnqdZXΥ˅p#CZ^ZdOkEN$Ǹ\R^ elX?'e[D}n 2psKV'_tjuOYW7 AF[M7m>l)3h;\v$ /V_qjA[5vYo',I Y[oDmGX/Zy*񋩊o5/Ɩӈp"|Rʠ/IsWDM e.8-h FE쾀 hٵg(0vJ `bn%(, ,|r~[1kY,LA'gӵ&aZ6ʽ !}nk^Cj_]2 q,84EUgmgcώqk؍О5y1emfR;S_z\6^ T61qHV32Ƞ1afp cN Ʀ,*z\BQD"%I 44f7zpbtnBo2e:x@M3Q[W_ى~kcRi 16\ߨKC!ڳ,Ĭۯ66=F2HEK&!9O`ĜfFwZ0˧3ov朷|@ݽFaǷ帻)[\.Os?{MCTƌ$W10_;x:7x˭Bl[Y,{M?6o,b N0,箾+U#`9eikYDvn֗3\|htW*?j|.eYYӯ׬.qHk[7H=+[T7LkBɊ󀧽]vңR`0U\]7"VJ/&Ȃe3(ވd\|”} bǦᰖ%b%;?-X5KO?es9n~a$~fL醃k5 9=>*7}d ԯpwMvsW-C(r,?xU͒,o<-105Wߋ`PKL1x'^nuvola/48x48/apps/kuser.pngUT lAOPQux %WiTIMi Ȗ% "@TPpAA(qc$i"APク !Ȏ0k4( [ KꜪԩ?Nݺ>gC7c;Ùnܰfle7ua:sl J| gkÏODGF6DoF%i,UL7Ra,Y(ݟKk6_V^^ш,4N¦Zg"É4z g`6 <3ʮ;M`TW;[x_]Ѩ2i_%U)o*IO}/\I vړb@>Żt(Ň`aFxlK^%)<5?,J2f9hDEE ~hA]~oBUF0}G9Oߨ bRWe` ]7?f`3? NZ%xn@agg<ɕG3Aٸ+DVљW뽓*Y_ZYDs?ZY[=j <ⰐZҖ7lېቩxПRD;$aؾљBOO{0v",8.(1Ϛ>Mgw(GG8zu˚-u -0miH(>YAⅸjEY I̋&z}X=6 tFKOR`wT.b+88^}1+/FFG[~Lt!!E`S97 YI2XN~Β%jy޿66ĊAZB6_u , Q߇W ,F;o&z8[ }Kxm׏1qKJ{{%(nޣ8,_)Xts63| HU/,"U-?B ສkӫອp=b!5$I/Rtv9\Qpz%m"g q5_8^E*f21M]b6%7LZfCY:@eV"ՐwS(ֱg;$p1eʘy.iӂ~8oULޥ[=1׎;瘱ÙOPoT9،35,#0liUq}k"  E}3YMj [Fbk#`uNMۮGzJ.]FE F{]BQ 3yt\ˑQMh㷁sP^ eZlAd(%%{K֗8 $>B# k1kۏ ZNy߆}]1 V`j|U TXs-: V]2cUy7JᩧZ T̍QqNhar?"=ĉ>o~-. E &i" k/EIHPA) (/j9Y6ֻh^"•2L.rPZ3UZDJ;Yl.]j!e_n%"PE,TohL[bLiSG dsGH4a8JL?mU 76m[vPaXLh#.Bhf>.47QbL]b2t@1S)YGZ<{ZR@3+[I(pfqMp+X,HoN*,ml/HO|w) $MYMt|;lV=\AAE=? ǂG⠸‘v?<`&=ct0 asia"{9sIƁ!qĒF̬'))UcMX5oF=SoV_v x,[ٮL2r}}'s`cG*<(Qϙ KA/ˮ ).8WɊeFu6Kpի򞭮mRE?:@.6bw -7}p wie Uej{=H}@?Z-ekūe}nýOW nEĎ\$2s#3Mx@Ԟ&TIKM':Ǧ6K)fv]>M\~,9ڧtHɩ%+FB1Ygэdѹ[}a=Lݩ#oenUsZ0Jv @VORrܽjQQc)G&͍D{"SMw"Y!b*ZΩPCᅺks!Xه۞b?Ib$n_``>CV`kg'R-a8Ԧ'âՀXEBY $ 'Wg lf^ֿnQqvڒ~c/+aPz~U.>e:-p4,;SS1]{SΡ`]eCL|~%SDIaG _چ)MG\ٞKO 9אbйY6Ůr)&'e5/Q `[VlpVFK2L'zJ?_Ѥypvy-9MvwO$Jy\^8y^Aq[CA\xt ؅;\"AXun;~kQ^6g"ЋZyq'T]OMk/YX܁70[1n½"/,>\kRZmh!6m>]|j/k@0=Oԙ#|o記7߁Պ^K$ᴵʬQ;D4%|="G;JBMvlnk|Q^=wDp{ |vV~5n!l=`k%}_ZQul* \Q*Ma@C$#A?ZKCi^dE71<:ؖ3$?=`` d+JR+>L/e&mނ:/Dp Gީ.H.b_(1)'G0б,[4beif$f'vGR>h<3|Yqho#*phEM!Ȋص :[ͰMeCe5Q˵z^пҎ=z,g{OTdT-Cؗ`>q Wu4AGZjT#Dʍz"4!F~h:Kp/}{\]F\JGg`݀Dg&~l<n,|rytM]Jշ#zdOq^KAt秛 s* o4~ȑ>fc+o| W8~| nӘC{JwMnZb6SFJz듯 IU&?AZfEvߘW` u ɕ-B\rewf T3u5Sl)ֽT^.;à;`jn}[tI{ܡg .&DFŀCqx'?rҐH!Λix;n4no`<,~ r~]].K ]ŧ# أ2TV|LjX1'eNpz#(0fFA\Yr3'n?޾}y@`t侁H.oO +J@n.A-ݔjmQt\?k}P5x !0ёowHիB\rڄ̬GO]o 6e# ›Fϰ`RlJ3u5;y}Os$&.2I6&K q~P]BdYvQJ\Ռw @TNgb܍h8^vkgi`)Hrlin\GQH}ɏ^> ,2A2M ]A>'=I0߳B+O\ca&(f|O޶#_ "HK߰w58;kg!|U$.e㶵kgcQw/ t^kn~}VMQ$ֵ֮lVo*k]bCaV,sM4+>@2hft\c+-.K`#) ĵgj1O*l6MZ.TꞞc!~#cH)d7˭j簳/lͻp嚨 CtEg dCS}R&4X__ƾuHYT$S ʖc)CA[;wG i?V~hH 쏛>XQE#~][=S;q('nvl\u̓@8PKL1er nuvola/48x48/apps/kverbos.pngUT lAKPQux ]kTRԭ`jZY,Y4M v;J@ 4Ѭ.ԔM̈́z*r< tkZ|x~YSĊts!:jfk=xG ).9&gE$d}:LBSh)SG3-GMlaaP} @ߢ0oЦnےtCX#¦ZM2G^1d נn5P Ǔxc}z] G(?(<B/!gJ%̝U*09p~zQf*:09ߒ*jGf U=4L|'3XbQ" q!=&ܶ]Ȉfx`Ёj k> 1>, r wy+N4S;O|'5ڊKMf,}e,VM#O|Y]v-4x/2z^e t^/Mo'7 8R49(q`l,ˁ3NV:[SM7A*z gi7!J&zz>.5[ o5wdOڿ !W6#3>В|u?U 6q*b[[t->2h ^({&s޶Q6(g!Søv5DoȜ{lW#kl_YhTTx7(b,*r߫\'XR^K$u]VhyDdPG<tw"[01̔W3vU*(UdzmҏJ,j &fNU[&%$ր$6BʺW)c]c@GusڎKYGs 6Q}Aj$,,pYCD>HBh4-qfg%W |GA_0F/1j-&60TE!q fS?wq-MUVfpӾ2+f=? L S Ui&pLjF"{8#UY?囁CA pi/):,TYDjp?lcg c$R-!cJͦ[ntGr#IJ Fꮸkׄ & 00F,{~{codAR,O ADN8g / CHap0A)PCA'a;6 %ANljͥC_QdВ-ߌV%z JxL 0'S9\\uiۼ4x#|O%( i3;Xc{--]>S2~_VUUY,X ;'؜|/!XúldƁ9s^m؆_)Kݥ ҚӶ#.jV 7 (﷠1DMyɅ2[ցXQ$A8w;-u19䝴(R+/s+f@u{5T_h="{U6dGٹ]ێ%/xβ0+o[BˉJ5FG(_sZ3DyA$f^rjA_Eu++_][Nù7vVT ObkAY~TٲEr1{( ?E*z%-=1"Gh 0PimU4վܮP%ۤF[I_D {-˥ڲ s yw6ύys XyNkFޥ H~y#Y{ug/ۧ` vоWn:)ԑ /?Fy&c|M^pܜj0ZN9ǧ#7) hkTZåb#}*߂Q l< Q׮(ݲdPKjɕs1/tI؇uAl$ô9l!koʵ r9Y]C:tWLj[ud z)7Z49#g ?fLS:&KcRxɉ)Y.nSZN&mX<4d8b`E5XAw8"lJm ៍vwFcf׎EkCeD>^ٿCON$bm- 4wO_c U XI?ԇQ%[+PI %Tv7h.cw}$5 ~Bla} N)2ԟx/Cl՜/ iJ|i8M$Gh9vܶSiFߧ=ZNTJtT^jpMNӋӶT"Lbөק7:iʼN^/zA"<T;q:l^,jP]=BpU;`4"@+=Qq%|槥YN:s}ns7ʕ&=c%F"*$Xk :"v/aPK`oG1͡#nuvola/48x48/apps/kview.pngUT /eANPQux ]WgXYʇ k"%APR,!ľ+AeHDAd IJe]ET$ ; BGB/)ewy{~sygL`e]0?r eu3>3sD A!B'kC<`-Z50L0{# +wJZ!8p@ (HXXO=nhav,=g^1cWC-.*hh\mxT,bڹ35?V (gEeiba0A'jntwz.<2BWi>+xW΅#r{xI5'4g&"I:W3 `?X!S;@̎.b&j9/39 }3p>reUb|e%#<3z_}ᚿ@;6vE#`4H^֓M>UG$L5GԆ]$+eyٌ2g-}5`F)3=wG Cpr*V=eMxv55&e ##"DT<6i]bsQu8dV*UH7ym\r7mOJ*g#iЬLlPe,&/Vvm˹fP6V3 `#K.k5)BR:ޏCw*x=z"\S })ڊÖ{²Y[}j@Uma>^9EwAy umS|Zl]Ṛ^=×JUT 2߬#x̲7AӎL!gg+(UTlה#kY$3$ &<ʩK*7 ׁE$h_QΧFk`㏠?h#O#<WEw8 /oD4Px#_m*pA. N3j-7s8M<冰42 iMwX>E[uN6qU.U&˵I"G ڰ]u))jto}Նr6_ƝqkѴx7ybfxƓ=)*>AP&^_חRᐎ6 )"x>!13#OΜ- 绩VH?\ Mi_wg[OQ|sY]5F/;ŇHzqI0V@S8ku맊h:h5RG FQXHE񤻱;yKa&:)u za*Z) P^bՏWķE,Ɲn!.M-8< ]fGsR4HyG"Je6$fp]<ڕ$.9,yY[=nQc|n"5*CRHdGu)1:6߉fWIʍ,]7[x&8?u]Yp<8du1` ui,:z]~sd@+ۇZP ^N:܀-6N{N<[w裓\.4oQGgt. *?{6Gnd 2!&7}'mZ_Mԓp D#KI $6Y}3->;6D/܁"FUubr ) .%"IR)UۆP[[ @:@ƑkҸR 6HFG-sJvG8Ӕ_"!ВE=4>?j}cUП#违6>cI͛Kk|*MD9}:wz"BY _j# 565DbgM8IEj8&QF!Ŵ ȅtW)u i䗻(K]&Dv}P6E9)k])™!w1C "|%ۄ)DY,Q~%cw9~]k 8FkTK__g`q$E9ttwOwqCp{E58mW艥hPCuXR\Ѣ# I +Ϊ%׈1jR)NIfFcc^Db̕~3w Vǜ郳I=0gyM" EI UtQMWПjS4^Q\.Kptirv$ ;:1Id׃:e "Y71/Ia>3tޤPgOFx~wiҀU q+IÎteBÿ#ikK>TXGyAUV7udϧ'uOr[6x^z}(򾄀BNjCdk5 t X*,׵Q>'1Ye T8̯>$ 2ы A*F_5#|!J)JYotrks{1c(b8kU& rwi X%y1m{sM0Ψ"Vt+dnzdGMn>zHz3ʂqtRX?Wʐƽ6v]ډ"= *3i'hi+A{ʥ&̺͜hn- U{)Z:ϐ4Ad'bĺc-岘ՠ[*%FQrjnqN{J<;PrBy֤:P7 ٤aɛEJtKR\sU*l<Ha+0UKߌ"])N3^'ГnJB󵸵LJOsĥc_{29P'@eD F||zA2ly0U;) KL1i~\F2ipR9ɷmVg)em`+tfvmnnO# @f_y9=eWH?^n}hݙ撯[s?^!5ZeUĉR\d ̉I[we_oW9k>FUg9XD R%e,nw/)-1=Q~3bmd/j-&th ?5{PhM1Noc% X,v2wAa G/4ϓ"z"<. :cf7/ ˋ7U1[9đŨ|k&IГe4g5[Q7h=]9DaͤG^^N̿qD$e/Xnީ[2}8Yt}^1/b΁դSjHߔdۇmwG1]d*n(w}䔑x yjx/$݌f+|'I=>Lг^`/D{[2ք6|fn^Ļl{M\W}lm:ڂK ֟1$MҎl 6vtPt(QNQ5l'( FΪ܂}u6lй[ۼ3g7tے:Ф ?ѵhr&A9\-GO+z| Aq9N#:}G&qu*x?@5yz?ֱ Qbj<ຽGQԏ:з##{V = |2x9ebՃK2w:Eʴ oʣeoyP̢ I 0Ȍq)ĝТ?\OӡKE|)N2|#~PQ STAW8oوY%q&vNJtE nWGEI\>䖷(4nN-s~t ~UW iCBs3ƪ L>?qJhQy'9}2]9/ _O撘'jsDzt<; Un$p:q_0QvFl<N`;w>s1%PFz*è@b 7û<,*y5?EcѼGFhok(lx#bK=ektuF&rtN'NF/jT9_wnzY/xxɏ?}X^>[wHj95XtH ylK< ؍V[jDVU_ᶋ\)_ &]Lp|%Wn*yq!fQG{rqmUf; ?eA?|tEA&][+;tEx @VCG GVy}u+8E!kjGZĪ,Y?ِi-^mB: l*HR+|h6{'}CZN6{+;J=yvln^V^0Tx~9&21|1+@p.!)S2eC̨5 oa\2jnU3Cl4ZA/ýp)tDʢ01#{xzqD96z<2ZT+C'u_E O}>C-bB(@V]ĭoHPl' YRgW6+BX#kosM1w=s&ob%SPѿt %qcI<3Us3OLCg?QF}AT -$.Bn쨹4[˚oanGb AG;'r@??|iXrpκ;VhzCN.u*\4'Z粤1#wizH6[Vs0mrtî*c)y6S"O ngrym8hԛYpc!]7z17K)ʆfP#>A9jKĞ..^uY|R:PN򖪘fǗL(.ŷtG~xpT2Tݢ1"YkM)p,J퍡\U,3ap 43Bߛp`lpNN~ܤWyypl[_t(,+=_~Iy+_  cT6㶚Ly\#LEfjE$WWGv4:{LUN^{cfO c^ƙ}Ѵw%|8v\Cdg-Ƨ䀛v} sK a7NKx}RVߎ[D/VIQ;4BI}NŖ.<@S'׼aփ|`['5t8g}O⺇d)).<* c+ ,{Y /|r++T(Uy} % țTE|s3:MG m_{*ꗼV!w ǟG:Oz>^eLm\vNNZ6.w2Ă[UiAO;Ob.-;3O&Pd5Rb_V)/3=(Xr\p.zqEǰ?wG9\Q[׫7G CCJ?cc͟)|}ÓP2MuoNe h|o%f"/m6#W[>PKt910_ % nuvola/48x48/apps/kwikdisk.pngUT gUAJPQux m}<3aCBܬfT:Qat*1(Sr:4,:TzdsƖu]](7x<% Z\a ͛ 8lh|i))[)QcvL"?7*.ب}b}M{סK0^}kc=`V 7 WDL֧Vb,)>xH+Ё 2g(pM*}'z;qc~-9%mp*3. S GP FM7sJ+r/wo!CژW:4z˭Ny"Q~'>a;l}<C8hW5V7Y.UdM7h &%LxFk[-mV=JֻӔ%Y娻@Ώ]mN]J{LOˁJ÷Ox핣u]|v ݣW&+>3W Hɐj؂&OBVy l훗Ʌ*}g !O˫VnpΚA>'q!i]ѡyXHӾ}}M@݂ "۲ 2m&kzkQM}I-o~"{YEPFu-lIU<6E8]CMA]ݝ׺;95E]kQa2#xGsWȟscZo6sG b^j-+$w )Ni?~ΘAqųg7]cxQ|Q ]L8oEdx6.R/6ٰ۵U ʊ?mx 3],J6]@1lf"ww6\ lQLٗ潺ip'a ;;lw\H)v%l'#,#Q+ ܬ:чkJDQ݋o׼-+k>'-3lkgOt=hvkxoHp"pf H-rȾt4h _;^tp# i:<|jL:-9RRhiXml:7LEgmsӄz"[Vo*Ue},Kᗁ8^Q_e ̤(Ι)IgݰUq,XU#w%lhptrʾz}vLfF{' e  뻌:J{ɟ9LS'zDVP FU28L1^"L~mᓹ6? bGe *=cr,VҨ?CO[71[[Y8|S( ak$`nz#2X-ROgyg"oG%F#:?AY ";N /tN.|5[tD;`UKXM{X#hI5ZUzЂx5p'Q6}ՋB||Q'D:)ȥfARis$ {hkm~ U5uͳeAbjW߬N{͛ q|+icaw$!RkƊWQݻɭ&Aoҁl ˬ=[>=: BP#sӹJԦsʙUU)3aFmѪ2zo;i.911^)&+.ړ4q)9~Z${?])|n&gerw(ҊUyiK[L(an:͝&f39+@:{fʹM]{KpOKkXj#SQO4q=b\/PKt91;~nuvola/48x48/apps/kwin.pngUT gUANPQux uUyTSgG^Bx!EZ$8m /@4BӺABiâJ˰h5A"cتآT" s߽H/ȰX;->l;o !EC @SFJ:;s<3L<}J`b2V|4C)N&}AL2 HL>Qxzam ;'AVp:{kmb\<+]SZ-{]qS}اa RYm=f[%p5Wzjf춉B\l]4g`+x|> }B%L{MV9Ç<PŸ<209*[ X~q>2* w:q#T&-cŹh !CI@ylO>"93G`%.݅{Qqpfk<-H5doKSc1#Fm{q2]pCYQpmKjono݋ЖrTsMdFJŹ'֬NVvzׁ؟ rz>g]?mO,$y"iOwΙ,E"sefm4-\GDWnP^.~qκKy%5:Lѱ}xOFU`N`b@}ə1*Wgbc6I'c   Ykn3hVV|GGX5n@sE R(?W '+&oeW)=F«:5Z0zh'׷M3uw?N3vL{ͼ׮O 2ywvӟ3?]bN{Iswhҏ4j0I.[v!vjӬ9_֕NY7?1 xG1eJMMEnj:eV@ @Pʿ-Da5xme^QTWgmV]}v8,ӷy>'\Oz3O3LMxsY he v Lp(-ou|Գ42^bx|hcb[>2wmtώ=& H4r9w}>#6ㆂdIp*pgA"\BrZ ;z}}YT*񧩱pLD.K^ڦxTWDTWW> h\Ir XqHH <>Sm,ZItx T?ƕ1N>nŸxD*^ ^DD:Uw$pJB /,Ɣ Wy9c;?}!: fRG6m'+= ڎD$1b]6M-ISVԛMצE{.9|% j Fmce5el˒ilW%iDNjXA4fuN3 y_'oæ*v䪵~3⾫W v)T_PKt91lC? [ nuvola/48x48/apps/kwin4.pngUT gUAIPQux %V{<nl6 mtM7sCLI13r8"Ol8*)\s)R?>ޯ~9 F`F@g62yX5[0=<mNθ6l K}4&xdr4)8ʏ%D)8qq I/"G3 jj.VFm;) +( {x3,Dy'k 9A v(06~L7FM,q0yl3 Gګˆc3Aʺ?ys3V~h)@ en̆cK^Q+0 yc;iۑy7[Dհfuׯ+Xh "=e`OUW=aV`4R 0c:J*rfHSPjʥ]5EVscŃgqDŽ|9BKXEsYEAJ"*)J[3#258"+q}Rv&9SڛW޿ɺxS6KLe2EXZ(.j T WlyTsb$ʦN;'M"8 oQvг-й NjDb8ƽ&4 [TS.#Q=6`P&G^IGzakghxζv 1 #oR$ rPX֏=US&35\NG9+ںDf}UcU'eg'). A'2W>eYqʲ{?*[ "s\ҵݟyQTn_&S6*䡅#P40T 2YՆ E<\K8l|)`(7dؑ:j,ʿ E9X!vǹs:R{jZ*p#Fdt|ːD\@^0w* y8a{PIgG 6z\,cyFƽfE#AobUyrcgó6f3(n=U={$,xP--Uy^^CبАs6X0Z' ``BZ3gReP.X;we'ƀ0))d&p>Kob [U25NsxCw2s#ls lae3oic6[]+]>6.*v14}k W;Cu؍pEa!;uZ/dę?X"6XCuG:;ƍYi&D9@\=?"[ќbW{eg*Il͆> 1o=\YQFQ0Bx^HVy cIy0%-f9AJ_8*}>װg]T|MH ĐՀ\in\Cy$0eNHLUE2l F汭|RnX+LiNU0U$u=R:kykh}fiShQLB|RS4NKEt$^A0[-okz!T+L=^PH=粛k*` } =}c(GuŲä{8OwkCȕ_JsRcxbCPD{.JC;֔O?9t 6?oh'mYeSd~eJQTw5N{K_o˳vZWq ,tuL4"eL %E%qIn3[YoG'N*ꥼz(ɱra%Q~k4?P -;QS.ܙ?[FHc %k0AR>OaZ#z'7KRo,0;wf}E;@_<.!.sTF-D$"kdcPVRY= b+%R4.~}o%t7 XrrH.~gVF^$ y|wD.~Hg"@@l5D:PKt91W5^nuvola/48x48/apps/kword.pngUT gUAJPQux -W{< |"}1.XfP4b|uEf\̘DRrkwM5[[k%3\7m$AdS&`}89:y><9ښFhVY·Urʨvai'>:1y& EƇGN1cۣ<@GMۛ2.W*)b: M*z-uD3o \}y'AoLd{/%%%bǰnmRBF~`!j ¶ӕrxU|>\`'~綍AuhakiN:~&0wTwyDmv[g*Ǐr*w=.11QBĢ+?*q3'zL@#cJ %#z=v@tfn!\֖pͫFXmsƚQ &|oN7Z]B+#dSQ }^Qܺ-ftЅ ;K~(0#uVLXWt6nל,c#C+_$̾{H}FKrPߢB]*+c@~TBq/ي׃MB5fJz`Y@ gH'B| H u/˒%y WqpSXC2S3+Wox#0cp//c+7ق= θ9ŐȠ_wg +"IzE]sh ky3g Yfzs@!]-_^*qR5 TB?.ZH̙܈QC3w"t /,R:o$mB+hD$=%9wWe.Z< kx2P/rc?Tݫ"{Ĝ.Vr\UA݌[Qb<;:^A'$=gbn&.\IR @f\qJ_6܅xz}~3[54;B<;!26ƙ2 "HyJ\Afp#ӑ~o7k6pJ(4 b> {]Ñ7QYbL[ VzxS28fxr50 %0A:>96t9A 4?~7Y@н^T1)0*{Q%MݽQMDF1&/GLA~1UTk6 Y gpvHͶJV,}քcD:2\FЪ8XyW_ i :=2L8t`#/?0zr5^+n$ y)l-V>,="s%8_7qBg7Ƿ?9fߖJ= J 8pcd"&Z6fO+G?12#3A*Ms)e$ه+~2Fn !bhvT J=3$(m4&9K Gq~ejPā62c4NpJ*z836@aYl6WŪ-ґ_\GL0z+/-0N'9rX_8D!V![ىyOF(e9 <` ϕMs''N& (5(u(-vPy\xaəV S^T.#DgnE 7urgkzKQeX7O2==8GLe9??Z'ig9:t\c2R8O8pkUn)6䟲?R*9CyaG#74U be5(XecZ KkRNdEi:bnY٪ ngs{99{>o2{ua%7@ZLT 6xزC3eT}ƝwpֹjPx`07;p0#(LkNB/ӝz$cB"i Х mF>s((1/WIBڸ$efDI}lL$𲠌jp/~Lt\Ef1Z򩾺W{C`@iM"7+OKpJ骳*sʒ. u _nT *xz ~! G@2@ޒ1$˟%1/}lF 7V^a&3)zWQj8'|~{^Yt.Y% h4ԽфaڵK@gzdxC+Z(c}H-he8IGy,ܠt7:!RC3@"_+FT T҅:LnIMXw3LF~ {rwvkx]ڭ̂XQ _Є&z5K+ dFtuj! -A&&P*j/2$T߿@Jbѕb/&|~5AsOUl6Dͤnm.¦צ(*&%V5sCe8*)%xFTĦ3.vD:ksCA ӹ W@&UI`BxS!< M)=ldd>`-M6kc@''ٵ`U wҷYF` zwTC_il ےFj+ќ`vNگnyQ8vd\{l/C иgb&= h>!~k|v Gيez,0/WuI:!zxrR1wr:Z]9&cEBbX:ܛ$,@e M,˗n_<Gdk]9[, 냖 x^9qPK :kFx~Һn%G>=&<19#jl^X ƻ? HϹޢ MXR_=zdur#{Ao3: T(SCɮ% "iCh T|jP"f O]w֕h5_.e x|-4v5Cfċ` {%?S tg1zzK+rHͤ;FeOp~%Dq7$ll>@:kP5˦m!D&zUussG_~B܄5pX5/.?ΐdXpʬ.+x$aS׷$jʖ[ir%AsM_Amc Y 8Pxk5tcf S5:|~+X3-g %<+%U@x|n7T 0f-bUЈg ଟS?ӿ,-VC%5pޛZ Uj"C3tY쑠޳+IK\-oָp'ړ,mz*ruv2~_jb-~F]l,Rث WqX gŚN#{HbH8uAa=8bS=u#c'|?R%۷x,T2 ϟdUN9]d)|}ިvfpYÖ\8AU.s#`,{k?l V LFoͤ>* ?>ޤqq'FӰՉ6j gn IC7 ]]cgkv_AG8~ki3Ao?,ð2NMT ybf/XXh72F V :cc ȯ>/'Gs<"66NtvsK/EOoLb!*ϿrA%Yz=N<:OӅb'L! ne1B̂5v<ˎVX`<<.A?]Vc3ҥ)1|\`G!}ͭ; +*Kc-SeB}~GrJ)$%jWc_ U$~fAOŷ>n==iֽ95'G/yxu0n#m=1܃, lO PwB6˖Ä_GtqӞf_؋U0GvG[|6sla4p\ax_O|lOqa /q5Ba{$bHz5Sdbq&GIWk9-?EuHf1kد.P?~XY24!-Xm=7cE=#AE4 8"_!j#]R[0:aJiW#*UC^X#Z}I|Zح?(+,#B $2Mt2_d{ZfG}Pg흵▅"A7#CCC!t")it/?qM0],}@x")@h *_35I%[L'y~.uHKFjZ]FTfy5tXa*ׇЪc 'B,G_5c?͍0"!a\lܴSqZ~ WsG)R_ )I~/$52 ك,xs)T-H)HuI:.R T, dP-ʴSh8v2(#[3ǽgF]D-Ȍl:zlIKVA/}C22"eeY#-E/F"c}7_,4ZU4aRo)K۰[$pOG)PgsTW|>6w>9qAeda= j帯,km=\;?0Ȯ3!L,qb򟋑mâ++*6)~boL3w޽-*>pbw~a Y4/E + JNֵLVeԄ+?!+eǔÏu`!`o*ݝYOm|GX߾0'ﯿgl5VȪPptq찄 hͶ.]lg"2e|.2%= ܶ{o_,mP#!v?CKC CӘt\bX>bKm4Z,,i!7Z/F}oHڗ_?{UfZ}~gecRˆW2+j̡=4Q;NӴG3gNfEC-qlĻpxvk4ìljƕ|ŭ8kLū*iiwc҃ZZmO*7ǻĹqw}<3U/s2'qUG/Jrأ$|Y̕=ŊvJdĩH7f]3CѺPPĿ{cz{; L̫^ z"+L ,BhsI|+?` gx 6 ;}x#@}ykpVy!RdU%zV41Tbk`7[Nܵe^_IӍܐN*ɓ1b%{I.X6a#o@RAQSNI l.0I[Kܺ¼dyqS(#_GB*b?.c Mq$gfvŜb4>įЛȵюtT܅{'T}+q78H-(@!:?k%]1Pvީ9'!?$9[tMݶ5q?q6QHa,78k\^No?'"9 o;  >~fE}*T*MH-ЍMw?+ݛG)}~;X+JH;ws~-( JNi CutdʆwA[s<7=qfI.H!qYIWnp7 w}@FRhpޜ ATO^A$B)qb".I0&H[#׆]AG:7d# ;TٿL1\ۄӉ147s.*v=[tuuJS>ĚHl[ VDțJȾ[  EZ*{BQtsPhS)n~ZB>L*b&S4{sZp՝?>(T$yQduB*udTr/۪P@C:sPWS4H«_F#A?0?Q^nIA1Y]HZiq7f\\ܼ3YKk%9³ g# Ytu%ֵ"O@9`\a_rR$$ˁ,;$G;(+~o]/< tV<#.f.s-ޜ3֨ۿ)ܗ䕃 UE7:zB[[j#DŽeݐjM/BѹWB1`ĤM| '5 6PlLaO ޺eVMVdkg/޳2DLyA= $ fŝbl΄S#>s>N4E]ȧOXT9w\1FFeۍШyE- y9>ƿYvwJyz-jVFS'7cǏۚڳ5A+Qp3@8vEF *@m0hg0ڮxs:[$Ae ,^~ *I^E, {c1DK݀݅ |J1mmApKθ*$]^K ]"n20H]\Ȧ^$7hHn[:1GH-WzC_a[j75#]I-+_5$pXzcxN.[y=[|@K Y7 !TZ;LZ!gv'V53]Kw\iW''n3 1y|lIZn/7 o_VBMr ) NV<(){~M֤''X@z7$8uNhQg8>:bȹ !\ @!){ B,,>~5FC1y|j&v]2X YLٖD8TD=>ϙW%{4h-qP2UxU %NIʉ>5Nh[c*!\O턆I7/#=[3&ZIwa@@`jQaKyʿjxkMW5K]xݿ8f)-{"ZQzAyɘQQ}ZwQo^JE1/Ot AP?bCC녉:G ־xnۄnPOtأ Bi[:rź I ̳\Éٖd9{ޱSkK[-h^"Vd\*u2SNsR7׶lrG6Gvrabd_svȾ 7¯Qs /2w(0#1?f獗uyjTQ1U NA3}A4-Hf, u,M+ОZ!/n*2@I`ӓK|u(?UU5ɿjIlz~7t% [G(wҮ۾[!V6ӈ\9r$*QVHrt wV8O 隂"CAX܉ߍʬe7/f\ eƼʳ9 B 4F c7&)ǧ{dMi_Pl)D7] 'ʂ7Ev!|sTM +?ݿ 7nZ~&yۋo/)^Xe@E8O/6M6fG$QDsƒش+VyGti.XԤoT۩"9Ѐ3VCQFmݳZv}G *{z/b\=YvL>2[ʠZ8EEqP2\ˋ?_/T[gdCa=<76>\y=@5HjlC#Ĝ}idX"ܳ8N4;hӟ-V6zYn(VӰ,Ѽ+j4c.0G7`-2L,1?r&%jf⽥9IޯςNU;=\C86ܠR]F uպO2-Y3rL&̅W(P۶M;~M?PKL1nuvola/48x48/apps/kxkb.pngUT lALPQux V{8_|cfcF9m \B&M;lcP.'7i)Ntt-HcwB1~鏵gZ{dh`!Ev1\n6;8up)Ibѐ Hq(@`.?K8(gC0L2c700WؾLתK!2HꦗaaHkknnSdr?iE`쫲񧣘qxR '6u U_<+x6ye E&ž>Q\Խ괃T3LG(:`7%ɶŔ̪*OZ}=ۀ"C̀q2(t߻%lت4m_*Oʭ~5x]IE%kSFvuOuju좌"blQe;Q 2Y^ d3dh(}p@lE\jedH<]nGҪup0'k4XVYqY/ R#Գq 19ϦQU; stk_in+ H-acO ȵ}AN&έX+9 9%)@DWؖ &i#fk"*Ǒ',soSEQ7J[? ]C^gFm* 5; IA Xj]iOSߣqŵkNYTk>tes ¤Stz׾٭ejmm͉SwyBE`Gk~>F$* |xr`0~v>::?;kVⷮD_hp#Be*3vQ')+Ac2eE]KMReOBIޱIԡ'#xaybu-2N?¥MOQBQ{~]$P|[Ss,1$3.ne h\dZP"f}B[ֳYH'\"/[Vf>rJ8w`z˳ @Sb46?cl7[eMg穞g%~Lڵ'7vŽ^I~MJ,+-E<,D" !Dq\sȋ*_sԖ*=8f]Y=Φ1Rqk쯶ŠO2`I͔4h.ssXqg?`3KK6b|V>e胔Ȼ?Izx(A4_'mYiK $SU,qK<ܸ}qǞz~睺 |8–p0ԯPgEW<|hS%J3Re0M?=1m* ?0œS3)ˀ{4 u$eҫV&k%c՗лsgrz SH {qȚZgآLb BT|c_^έ-ێS@Jn[;fN_[(OՈdjD!dn] yGG%ؿsE n<*:]qD;G-$m{M3|Az7C爑 %޼OT"+imm0`K3fX6踾Ͳs꣔ߔNk/ Ů`)]'tx2A|llz5Afmq^qvc1-><6淄1-7 A _? &£=Ȩ^Ѧ:SNSo "J,q?>7x9I(UC-$F'dq APKL1$nuvola/48x48/apps/laptop_battery.pngUT lAIPQux yTS_$0`gʻ(w @d{tuL}E\ƒF}m~o;;}KfǾ8N i0磖U9mT*QBn`IN"): Bqۏom.Bc\z忮nJxv{ 1|jBPX7FpQW72YxeP$[WJv%IJz!TƳHM=ŕRXF%6ur(.+_uShBxƉhQyy|vkyjS]Ǡo:ŒÍZ`XѝxS B}F;ϗ? #M̟޶r9dKksI+kHK#j9n߂㸓'BĈZ*3vwTyUbnA~RUKW<L'q95/ щ6t pB:p0l<9fW7 lSώz=.)wL?K%aOq8u(LgV[rw%{[뛾\ԢIΖO Gɣ^ik2 RfolqOYM#uw>1&/ ^|K ؙxt)X>88΍z^aٝbf?+R_[} L|ݑt'2xHNۜsu d}W&C$&%0}w&ud&p)eC ).#T ^-@[,l-js*7b ( ܗZzdD!" r-fA8..oi˪,vIv,[^!I_e00PZVݏ)o~K'nin zJ8xL.t??nwiΘ*JtO0 ;3}ot@?( c%&m#R*?,:ܪprPf@0Bߡ!ДkPⱗ!֞׋ZW]DOB.PD8M]%F"޼{ 2sU+V!M0[gܦ" FDCFw@[q &\7G@)_#V>g)AI@BCIzl@%,aFtYE^/\׬Wt\쁠Wk"B#_ߦvp~5R?. [y !t79朓'a 6K!bż=%%^Oq 0Tct^4A H2UO(l\9yAU}l-ڡfge 괿X͛v&.9b-?Tք㼍F`tfBT Wy3}2.癓D5Jf V<Һm2Spi'?qE|Eq'+ F<1! ēHk>PvJ}`R-kuvhYŪb$DobJo ?ͷ7IT9q`şMJZ؃ГX*㑷i[)8,XP]m|7QurFÙsv'SAX i CLo XVܲϬg{y: L^c3ܕ#+Œkr3DM'_5?Lؾ4$ k'&,ـx \Xۘ="*//d x_|gu/wo[7&F{&Lşȴ+'K.'Z&,t襸^ft.6bOtqv&`u'CO/{겶&nMݚ*y)z75WBD7p!ȼ[98[/wL'Y襰sۖK&{":6~'H!{GuBYλ˽_|u<76vQ18zB{L479}p&ƸU''5_cƪN!^`,q(G "[/t̴XBX} 0OKL`ta'/xS-)ѽN/4StmsY%k- ?>7=x3j#:zA|%<`ݺMᡡdf6?', :=/S,k)l/c96;:o,\zf7'H(9\btH'reNWȪOilh/PKL1ѝyIu#nuvola/48x48/apps/laptop_pcmcia.pngUT lALPQux ]WiTSֽ7@ABdHdP@PPAf%"- 61S8 (mm HҊʓ!6$ $@k}ZQNgR e+Z3F5FzܵO| 7ܞvHbV*J ٛLLMLߛߨIJvc0s d2>LJYG&Bv6{Mճ?+k&4=4KIYW&QԨGۋ) |[Y.`#FKrC1yA^[|i0H\YY|͛KguX Lhz]>y9:D|]J`b Z ;Q7SQ BOnD9_ 2+<~[Fћ(:]]I=/Xu:*=n ZmۻN *Hw1CCCjeۈÇ3 qܐNLL$d7_eYb6ϟ(%Tu'vx>&_,"U6][hKٰt7 ~ $ׯFן:X\\;=6МHd$%%)* otn)Ti,Ȕ[L|gϖ0,?[QvSP/onb3XSm rxh}!ŊM3H,9\/GXݥwb͆2nD1!KWUkCF"r֡c'=P7onL)vߎ51p|ߩƨAob]=C' {r~VDeңzQt7.!$L5,oɹ sFh:^?m}R#ITB=ȼa#5{Ay,..kkO7II7@L|%ST G-C_!-Ǧ>Ӽg2#>E:i¯Dg)I6{H!:  y^Oϻm.*ժ.8"5ryECsglLuUok$L Zdɿ\ *Au+Tvl1=5j2[8^XGIoO rG[-ޖ$.@,]V.$d^gm>\ASBzL.b:f:Pǚ_ #Uc40o`e ] Oi~)nm>4}30T_Z,<ō0kubXzzU0Qy%א=Wy-kiPCEqzKP!*)'v|Dmy\ 'e7(O|]h˒|~z ƶrJ1;Oo  {{φhר~ gfR 4-է`ƥTPw!VeY 7P~7S|i:Q\{̰vh#myjeXS#={ k  uae8*;R(n'0JHyi f2ukhrW WAhSЮ S6#z+f"|\IxI֥^N4 JK1MWaz'qj|) |U!C+B0WO7 #E"R -lw!|3gmFʂOJ;gM:6P /P* j;j}B%&>jP')3G::C[آ<8D;!;66ӪR~KMNmYOOMڬ0?p?8wjhHH Ɂ(UM6VDkE'qr D+z/f|s/Sw*= "- k3Kef%]CT@a|KAO3 g4Y^q-w:ȨBԝX7B8#'Pfr/c!#IZ72ry#LzQz}waB ?|6eTVVN7%`_ö\{3mȯ]P뼋%{T N-_nTJ`;2.5,Y_v=eU_r)M[rpcx.gGu"S3iw=ICM&ۡ]f5{lqHAՐ[>>%<(e 66h=g-M:xH5¬|z;EeK8"ӻȀ rogۀ7H0?pj\q9ҾoT.+aB }{?Fcc<`9ٳ&GU7y6R7Iܤ030iQ>!%}P5# wzڪ-I8ďc9.:PJk? e~kP-s@]˙{Aw'n<4t"?Ao>"LkV]̜7,mth>Cڟ&>ĚzYgr6JގzU(Ŭƚ?k-Y$x^\ yaF ^Y!~U&Z;f7cYN $Cn1*CbeQ׌B埰_;j &7v rY9htIQQt+Eb[d5InG̣GfEJs#"W5r=*B?à,oInh`E=!Nq| 7$qYh`W`':f `f;q99{ E>IzG TMcp5|:IL3=.fϩp5ƧRI{LLl\X:WbَPQԦHj"r^2 gyd׌{.>tLQ])]bߚN@pzRyfЁǁPCO/%Ҁ(Nfl"g*()'$Ř\6Y҈#M92> mag-^Rng JiN<=nw]#R1D^ !pZӮ[ٝiiPoyˆ 51 R-]Y@#i O|/:O?=r63/ゲt;$~Q+fqΛC M]By[lA/`z[OH:I=᭘<L#J|ͅt_:edf-􏪽EFrNRvabQ yfF>mbfl]`K؊D/mH5=1rZIp&Zn\\.nx 4WnhУc0 r8l8GF{9B!R. slIwj(_{TܐO{2.mVE52ǾdOНMG6īVhe}-d 0ě A zb0Y]cpҋ?ݵ{Q͜LD6N5YJCd.x/N'FNnHq7'5>&m#:@et8?8(ݥ:}ƅBn8{TM'wTi|'f='_xX8&بKH+ѻxU9-UY*Vpy;\:# U--S:Tf#t侃ANG.w"/H_:v 008q/otǹr?qu6 pC^?¶V?$7=$E9~6|ޢ;6KN KA~_kh[_^w^ߴ^j`Qgc\j[6uO)+oyhyE&PaW|JSU!Mm`k܈99k[Ok#9R_F"ȹMFַ_n↢V|A H%:3%(!g`}S N=%/'r$Ib4!}73U 'a̍G҂C^ HnXS6^AET7drSd}QQ5nWa, p bX@e3\ _E#FQRoJpbqB+%0p#z7W`ByVѰאQnL[ivd}ڮpŇɓU}^?\Z3q]I0ORO7HϐeE¸F` E R941JN~m?f`&.h78*kwer> ,csBy+׌Sح4SZb;_ڲgl;:S,u6wPKL1Cn  nuvola/48x48/apps/locale.pngUT lAMPQux 5V{TS=Ɂ"^%PQQAAPRJE+%yRnADN4O@IjmA?j&^Ģ!ށ<΍w3Zߚ5嬈s33E"0J!00aO{($DM|JRTR|]I@/*A02Mawߒ䛙ojEI/]r|_ͤ&zsfTl,hcB q f)#P6bk۷_cZXZLDKU5|?1Bo@FOP7o~t+WA#ioRm es77OuwP/]_,8e=38WYOQE9B)Lu8^9? Dz:5\B݀ёL zR~yB7?~N+:mdH+ vz}+f9c8\|<W 04m:^ܗ67 {9t~gq"\Tv>epOڄM/軴(unV)E][j2j" X,MMAY{9(pq3hщQPU& ^I i{3D]w^..bF\8e=,Nk80kgL!,k[eWڥ +~aQKtƪ5]66}@{can6Ύ677H8?>946s23b -,vQ+:o~QΡe2Ȋ\j`>p`;YBjwAĿ2ǧ,] W,7pN# %w) @BOc T:I$w#T(wK놕1AhƍTڭQ_x~~ $Zb-$Ń}3(JcD$ϭ$rM꿜<2>S1ܼ́-4ۋ@ x+tZ@,>R]0Ԃ0J||w;et苑C܆c(?OP*xm p8;}/fK:١}ۍs&u#;9Ǫ[ bvLӜq΄=}q#Vy-n"u]YpS{'0xMOU;/ 롚JomSrLˡKE4g5K194" Y" g*6ǫR 6/~NƯT7nIOõê`>"iRCaY oHJR#JfhF>ax/ev(Jf$N5|ů*b眠 =|WCJS%ClV|vmUhճ/9ɜD^^лZZ[ӷ?CK@B&RZж2W_hrDX{Zi| G'̯Fr^wuW-{},yg;{E/pu(켎劘\FeȹMyWZ wKmlzk!oHuq%O걗KhPD6RQ0=|fpNF78WQύ7P{h>KRV Zݧ'T\D#̃} Mh;wE~(oJ>&PYx/rگ< j.yu_z>eRDvi$"x8YޯY/ f_QÏ pW+}+9W|C-6O7:Kuob,sT^lbo{$xVhz&LQZzV _j=7bd1p̓E0N8cpc5fӨ-!kvhLxT?[`FRRljIC>O/qjԔlUޫ 4}9/= ذ,iX(ۧΟa&`0T!qk(8 t"#gqek5B¹dֱhնM&妓!U']3}'91IMFP mnE;23_ֵ]gEICrɿ}`u\3_яDԤQU2_ SvܕntYQ¸9eR!ew%Ң ?l5cIʹ=H-Y3T YGx>((:)Ny]-)r7+4q0ߧjf`!Y)B>ŝwKms<6}fk_W46faUTI3ݘ9 ʀ ^JtH_dKʬӾ_ư'XO#jհ#k(+Q\*B栠u.ϟe]‹~_r{CA$:O7NރI-'/Sވz&==E(ܣs_7fɛ K0 'h!f@um ƼJAm=&wj,25Hm0+D_?OnD1ȫo|^;5 ͽ=J0QLhڀ==y%LL MذШwXܝ tI q3+\* >mE&#D1p{vj ./+{&d' 3f[ohok=ҔduT,cؘF_ֳc1) G{YdbLg}uB^II oEJq>?8q Ds62`8ѣ@')aG翋F޻!f@AINTiF+oph]0o7`s3}0ߓ)s_h\wVX"C*&a$ cGF؃, $$]vuQ*-5$nP܍•1;BK49B^RFZ=}RrM4rj ?ø!JgdX͉BlM!6ʩA[C$ F0*RS9E z+ ,*Pտ/<>D,^2;?k#iU/WS4n Uq l -4Y0`ydah?i?_:%z<Q(%݇Wrlv|^oގ$34_AXG6ҷDgk#G*lM>,f3C{`bPw,OXgp$UR>iͩЮE:Ip)T6~mǘCc;+m^N=H1A]E,(G0-eB%H6*}v| â:?OOJ>{ )\5*/^݉|т5.\1mK +|bkxX=^ʢi󶭎SKD%.hG(e|=]`prAO*EWW3ZFe~r%j.@$?D?Yr.d2 7eKz*VF@\ >RkEyܶRYG/H_ǎD%D8+jq-r2y ډDZLkGҋ/$ɒS.<.^eQeu(`S9\$~6ybOt\JoO~M~P/Ehh28ӕ <`c!̩!pq+i]?(u 3\aeSCH9Ri_Bm+?'QMT\?9(PT]KK: 9tQxzDOroOXhecm?P JZQ٧L'<Xy8Xkv]Q=njl)"sM"][b=Hq.',ʰ՛?~M$zp4D2mVK,"`lQ}B)] kJSC]*ъ1c Ԉ3K-z[-w-I4#4}Sr<{r*'}C=,G30ly4>P-c^|Ǻ鞞+sNܠ+Zsve~>e$_imb$ U C4 Ze#2k8l;:$w-nG)G"rʲǥixת&@>Ȇec >bM m gk  cF,% +u}b1h{q> "YT8 /y T+Kܤ]=:>n ^Y=؅,1K`x$u|'~͎vTzL\[1*)vol/bG:2-AEoXk3?CO f9;m"Tl9ZN!MN* v>u :QM^#4z=Ե; N#xÓ?'QPesoV9ȴ¿U IqT4^ws_4!κC`{%{P#f+D uO:=H(D#zd[eJ D;|%j`&ٮ43Kaɳ.\h ޹1<̃T/.6I\:ՉΏ3 GĝX^=@q”KseY# by>~R!O}vav8s5ĻT=%1\9*2~EêPE]ӎ "([c-%DD̀g) V6u^u*2WPPZ}l&b)`-_gwJwU~@,JO1`S~sZU{ F&/=ϛz'4Ә0CnhW7Q/%cbfpv'ۄ?Q-G/Y9MM0lG֟:ۯgPBYdLjWm߹lU4"6wd#rʹ\fUw|3On=Cz +)`E]sbE.f.kV\fR0`NNP-N#\bִ+Tlf~`sgh1"r6H/4H$9Mr%2֎!&hT@yE? \ ,Y~gr1Ļa)"-2%,A-!߻OL쮇m$:ĽVr?[-XHV*/⦭iOx@mb/2֨υv~t')Lz+`.ce8N>!v;./2(4A܂_ įU?t_KQ;f_>U:_oAÞltŗ!Wl U&0ܳnd 9!&q׬!_:j\&sq˳清Y,hhV/>baMm.0Ԩ{21[&"SA0-Os5ӽA"_3)dףfvXf~ayoDY-#Q9|=s9R -ito}XMρg ]G⢬dC<>#枙 PH3fwߏ}U6G[F'7DKӶM|-܋L?^Ȃ_]h1@T+5\2' )Sʺ>R.'l65rVK5eᘲ=@Ź '~njnC|Y|j()H_R.3w][9?/+zE,^zV"n~\(CO"j>Cz0d{͖oVPx!آ=oN@4f&8&>l!j h)xL6mj`hhlTk9gea~ Lt_egksQWU4Kͮc>J\cI>>i-;deo2mRaank+s`EGBYQQ~ F0ܹzX!k;vhApރ.+d6My(;կؿ4ꈂɋs IOiE)]R}Y"bMӞhYj!sU AٖOϟG2[Ӕp~:=\` *տ; Wƒ4͛ crzl"+:zTg]OOϸ` ׺Vp Bw^pB&U֋z&s LmG /\ejܬ^u( GNqGɷ;ah#h@A)r x+:xcn@yb$3qO؞rq,)#ok F&}g1j MLLaW7"""P$v wHZ怞-t3*.ifʼ;-#TsnD 7$qsYcD8U9}gդ>99;d@ |}.F[x3^,snۀ>7x'$z&ILbF0#IcQ)Gڣ-[A}K0dWSF Jpk7*O#*{GO>fE%D|f ˣQ$^18eߣY1e \חڀ3M1}}a"&Ma]/M9*Ԗwr*:O_4MqJ=$>,3J16[ׅͪIn\ED0}G~i!yAsddiիCv8}h9w!=E.o*tS|:>J6mɷ>5IrMx6];1|7snyoE zr1^X|gF#Wt W4B$0QbXlelˆT$Ilo9ɵU_:P? U7?$8nOnW1QQFjaյ07tЏ1Bx$4ϻxp)O'UH;##jgKoaWSK  6^ދ#Y3$nhV#z<A˨g|\܉Q#VH ;JGX킉ok:0= _[ՠŤ|!f D0/|B]am>ۗn_vLkg1]h}Ccv^!|]?j`k0JծŊoo0t:S)1lGoB/`i"sC=VŪt$~ߊ53eTmhO욼g?[12ָzN1~ Yb?mSED4~?NB'$:z/xdS>#?f"ã nP(793̈́{ )lߐKr9(DEbHډ| +xs'`„_bC1w]O˭] O'Tv6$Ȟ"0֩mrƽyjLgod>!I31Ux\˞\=* ^iʺ}]x GAwcLίKT|bn5jZ= :OiUj#< F T֬jRww+z4)[`#[f#FѴ|Nnﹼ]ˊG 3|5klCVvy7NA) 0fSTT*rJ;1Y i&'L)Z*R5li޲A8͊Fq1uBGQ}-RnDk1w1VL'D:Y盵j,$obP!CiߪyBqm3^KBR4o[!cÌ}|Tm*YЅ oX:dA 1({aGcfO: L<A:OYÙ êb}C~I3t\;ʺjDϱxg!Jw()~UmSA]ɊQJvLG4 Q??Vػr.aŖ^Nk:9p=B\%bJ_m?ʛuiȨG\x7oe"s_T؛%0SpZGjbovfdFc4`F&5F/V_of XMjQ( zJCxBѿϜ4`O؋O~m&hπHr}.1+!pgmT2i;dgwP VIʬ["J/ ڴ1ʎF8`tQ)toVy'4GO:^Y:ߺEimPlL`Qrz jlU0yд0Z M9Wy]:6aiɌ"PЀ\u0a}dٔrK薁%pmyHޘ6IZ[LJ+pYL3t'dD6_y7J7') Gsu]Xw^'$:Ts6NIc! npPHХe1CY̰+3|B&s/&rPsL^,=@36Xdoz8 -/4H#T o00X,63'E:w삤c}*}-e>3,%ZER7}>1Dt^-ʖ ˖xfnt^e?Ma<Y-};FQvZEX8fƈ]Ws*Ț3A1#1lr zsyC̳eSH$֮کO8E\h¤cąKԘlV_Vn?UfgKv+@S'xj!oiwD}Jq*:ufq= :nŰdAnaTc.-!̦w_$J/iZK ;}dxHڵBK̩W 5^I:zXg|ݱZ]q.1N`~~)RZd7O-톴Ӏt7XKU$~f+q+-::,8o[p25&KMv7yо-c.8vm)\wkR050el`]shpW֡~F xSp?ȳ w0!.:Jn"3jAP {UIZ`VJ\8tȔ?,qQkۇsL9%-(2pUA[/>xb5:˕~Z|FNu0׽Gm[Y~z_i0WBu_穧եϒj5@_ǻ3{ҐlU_G5v"!w֫VnqSHkmW,!%Fqu 34,{}{^""GG? 1qO:7yQ9)Tv:pϱϴҺVqS_o;{İA󻓃A 2\opf~A6s˜d^V?z=tբxc"i/݊E,._[:PKt91/wP)nuvola/48x48/apps/mozilla-thunderbird.pngUT gUAKPQux W 8a2ބ))2F*ՉӇwÔ(љ|Dʦc}>"I{wzz빞N ] o;XSY4ʥ.ZG4{ԶS0Ncߎ"#DN4DѾ߶z=CW"EL(k`K ;:0WĿM"ל #̱jezjbTA&ƇaPi [խNhve+j3pʪ(YDBUbX o f!^ı<>.(o0_(jhjIMmAAY a "yW&-6R"˭&WKAR[#fA1-iTҳ9IKH/:91% QLɚ > NGb c  WSg[+|qpqlΏ=z9a}|ԏ`pwpGkO;F I>1scӎ&?kB ?{}(d"adH OߴJ87-oDR~ o{ĺ k^6o=`^*n`Z{;74wMFE)Akp Mo) )<^ZY#PhFﻖv&nrBIh5KMU 8kw;O>Yj4H3<E"lY 6"UO W 0Xﱩ mj:s&2VJ~W&}PO$.BA!Q'GpְJ qKU[T~"HC[IÐwgL\O3V3b.ӈeXvߛv\ZD͟,o ""hPy&PW+[$y]-Bah汢ĺFLHE wp][E7 - C in^եmNdޠ1:u7-…g8+: KL|~P[At_LcF4œSmgɜymP~Χay wsbW&iB=iJuPm3lnWTo dLy-2mj Z;f3dXfz̒V;>E,3] |-7Bqvl&uq?YSp\_,]rɧ[24x^e)QY`*ͧ3߳^nG puQGs"7vP y^bX扩nL{0,&+݅e:EF]P!+s>] ɧ7&_3`'t](Xfz?k JύW]` +pOt&DgJRPtڤ8oL/uJV+壣x{PxQUH&uZo~_XHz&H'V fK稻'} U6 .3ZA;%GT 2 e+ʺmf'়]ep9a 쉮@8JU+}kq L&+OۤJH嚬܇$Sb0<0꛽@a-La rg&&r{l QPAS,; 6eK~K(թ#H/K3թ-aCqVf"gJ,VՉMdy;7Bwڥˣ3Y %LGұ5tDžp!yej8Z~*IY̱{%[ p0!CGoh^ =>#g9<CRGz; .8+N ![?TioJd^c.k>ML)JY|=35篈#ɽ7?ƒ\YRJ̭5m]e٥ O(J}}!+7*BkZ߇UOlyL$MF\K9>xrpx0'j֞@u\o1rXWM.V,f7k-ur D{Q>҄IiQwC|u^1я~x9]Kt\_1?la8ܤp֊;cMS rK,Q6 MxFܷȗfU})j1y>r%79V )r}]0$~8dSunnbhd{jtUE81UK ل LezSUaݔ߿^ :|A/ cְE[8t\n$I~J5>S~Y<鍫#va}$fXU ћ&kw&~Y`Ol.7cBj̢6*\3^)< o:KbJ$kC-`(SIw%ˆ0bΏfhC,DBrhJ/}.7vnq<.UGQnfjc.Z;hGkHJMCp!͠ sBSa5RY>g=}S:ܻLJ=pE2``5!7l}j z9birӛZWX$c)b 89\P̊f wIos f~I7husA9$ez &wı/{rb: PN`O 3;!c*qT1E!Rҡiηceʲѻu@հ?rȝ}+,^eH WYw(Z"j1&khwOW1wN8w^vT 6׵]y;HTLyνV\Y+FrE):ys!yw%Sܖdmp}#Fd H:1R"<Ha5qu.IU/:P}PXm<娝yh "f@*Vҝzͳ`ų=byi$M|Pd`A a'4(w0 eXO"9.i'-s f O˞!Yj_ CL9v)l,oWY96+r%vfR1/i vD/+E-uVɣ[xllRGW#㶚W*[׾.A\3Mr&KVe-_W?޹o}IIꛣ_ZMbh멉]N7NSyH}*+hv0 ZBZݨ [%j:PX_\zaroP~?AQ#j, H-9{"jX^LOd'h(-%i(Nm 8PKt91nuvola/48x48/apps/mozilla.pngUT gUAOPQux %yTg2!a@ DPʰ)ʒZ"*ƥ0QyBYL%DAP nk[TĸU"K[q(,!{s~w~9{nZO30q ݊~ݼ4[1>?ƕz՝x[S’Ȅ(}a1QAQa?h|Zm5QR޽ s׼t{`p4oV7奵&ߵdiW=*ЂF57JR젅*NѼ~{oDۚwh3nqT#KVh'4udkycenPղ8j\:=f #0LAG6i&:8n܍1lW;`Ʉ@ܿ.)1yJliHu2r뱴DKwy F>p-zɇ(`ݐmo 1ryo*EqK}1/z#u7Ɨ KŲULA2ц`Ƒ5aCeIl8xpSZw)01|E=":\2vvyS&g:kOQK+KpRhLiM/Pz Hv䥓V7&HRSj, _r`ktvCQexAd|펹{, ['E\"MFU@ 9,-d"zZ[م&6 }X*NRUâEwxcE[7a6^dz PpMXʈY,%h_ ad I1쬗CZbPkk<@H%ՔzC$ҸYl)9mu+)<U-XԑDNhI;5 {y~#-uȱ(re,?.m"-s53ݞ#ڮ(?_*8R0^πS [ AGK̶YGm:*l%H74:WOJbεc$iw2X >99@z+Lj>h9eLDrױOB,A3ģoB]Ԇ/t]<gZa7}Z ]g(81,NGN KZ[m =^ T8ԭ= z\*R,ݙh.<삾A&s2ًѵzl̀ycұ}U<2(A %R,XڦD*տ _Ik?t>4ԵI'B(9r.J(x7X9T-jVOI>V }Tj} hoG_%PYș 5q 'ύ"T5Ja'tm^W{`p~)ik c) \Jq/ +Mw.0" 0! u4Opޠ`T4[E6SD)Ī.qM`a3]| ;UgBU+rmHa)䚑[=Rt B@]S=eIE=>u,Ev_Zbb"0]ݷ`j3) tvCdxgRcjxwFd%D"t|xʑjfj'/( 5$~X+};P.~Rܘ(+=xؚ$W[~NJ8 d'as5jTqYK&3ġ9zJ?#WFmqkdLJyF{_yPX4EAlFӛ}O zSqƤC9`bh[]V% \4+wcn.s8G,6tZgaYX719I>a01(ݧE2ms *4*Y*_d4HKIdMÒ4TtZg8GZ"~%n_~< = ~9\No;Rg,${-Ma$ml^2ø0zԎk0|>(Rair=2u"YόLs;Qկu00pcK#(M_?q5AȌq@LGY_b^̴\V CCN> _1HmkJER*%R9D@(pf|h%x&mا$MB?08IQiTQ\AFa!Ч뫁=X^E-mMpyTh۲th6jb8 `viMIϐeRG=_6_ =IB +{҈8 :GTϽsEv6nLN5Mf Ȉ B'{+w.^F2O6ۙ?7CuM+?&~vo*\ rL!wi,0Bp֏$in,ud,h۫A ~hg4^s>_Hj84 Aw$Q9wIH !MQ$`^3dX1Gz~#bPErys㹥j~`)c: 3X]; mV^^ՕX\CTY+/WHQ vඡV(LqS>.pv)vRM՛%>  ԧ%Ib0/w084h! 6_|"7.} eoҶ];R(l}9 48eAXE_/;AN/QK`t8 o5HgnPLx~[#w l⠳(\dex o.,-1Jֻ[ۄt;դTW1)OQ3L_Qqb?琄 ZzH0b|Uە%ͧ0o(Vj&Z$3} cݽ_|R-| H#>CĜ{0 ̑n=%z67kN>' ǥ15X3H6>ߣSԟ}įOM8EwGtF8V}k{:uuVbYPKL1ʠ| nuvola/48x48/apps/mplayer.pngUT lALPQux V{<|llc6$ 5̥iCP_f6$5܊8#ݭRFHsPKNc|^~z.\?FN85g2u+][QyToÄ] 1 IalʊaɞG"0VJ\7{;:;]_1J%Mvg.@ǑpnT "g0@nd;+!'vv |9o\lȰ &M  tApH9'FFd:A **+hJ&+*>4f<_T-$`MLwQp#]w5 C@>k8eoji>FXkj5r"WXnjAoA 5YCnX7ovuuyut/lmc vA>22`2YɊmY74/}(;XLݞ66zvvcYC?nqNΊBtlV+ | Uf2Ǎ5+s_h0+(*cSCǓ~7ߧX^r4f٢k` HJ|[˚ JK<[XDD 5k>>gƈgxOC6 Tт |Nڅ7Pj%UN\8^'DRK 053<+$p䡦kWVUz$m* LҘ˅-L#7.hE/ϫ 6%KqS*Ka Y_QDDŽi^E3% hvUDN:G&ަ`(b9Lf BiZ:NSkI5{竫M bGD6("KAl-ȹ%EQ6>X!{)إ<1/WH&_|HV>Y(ΥoEnj/+NX$CPxܿ6YbaZڧb(<^)t T`O3ޛ@xezbɳ)p* "ul2u"BF^OǬ*~\}3eC]>;12PKL1g nuvola/48x48/apps/multimedia.pngUT lAKPQux W 8~wl">V6Sl O%6S9fQQ*F_a 9uAf9]{]~{NUu*rޯI(b3&@> @ј6C̍+i[vEB }xgSTxI}e4}޴⋀qڦs7Ġ_M(5 4B,O+ .n;8v?{~gc'{JpM2."Dn#$Jgk[[hP!#tQMkhFp,탈K3rȼ}\^V>-냧Adŋ)<=mNi\+C$R񰰃y^AU =^M^wC'"{{[U)N0x$݆\z\"P:=IEhrB;;yD+]Ca4*{ _wb xM7nzHI4?(>A?8h0IZ\(06Qd&϶;}wc$@{ލG'Zs'[ ,}wS>r%0t䨦.}$ί>mD1wGOVcZ,QmB}ߡI{H̚#rS&;D"lzAn䵢#< t\sꏒV]Vci4O.khv ;Հ0.t.݅T^^n%]qhϯY5qh3%x^UGpT&U?BHrǫΕLijddr7iq g>OXVGle\#---PmhȐsG_NS;ZΝ=C`J'1`yEc,(mIIΥ͔j K;T}Ίym|`|dGdi`-iwˍ Ge*;LMom 9N{s[w̟nJ1r sL⇝]̈T֎){~5ut6(u:{3OB%>7!Yy)R\c {ZY"XZqd:j]UM5||>{FPU]|PdWiI aw=85Lyۤ<='ٷdeŕ:RbbIA2VUU$!3 q3ܜ?͘ghh0)eN@ddf-ߚiGw.9[GEt'FPqH=@#&"ۿyG\z~…Ux-6Ԕ *Z@ 7 {4uWn6` >A+KH<\_vS,tĺQ Eǎjx[OxO—Iw姯^o^.+~ʷ1t+q7ѨIok@ q( )MJ-9çٌ͍0AΤ|CNK XM[p m955D}F)e_ۋLVK6ZESSS l1$/қvLmdxxQҮ]8ՂM^xVWMrIŪ?q~:zu*YS3Gni~eJSm b=od@W, fsKm ! A41/ml7oz{~?I&b?!C`VnL Z0J ȺN z^e^yBӗ0 Ϝs*G Nя8դVLd]\@wJc p`Q8Vo$]eey$,0h[ c]׼5!meR~^ajF ,+H:jfdm[^OL׭;j۲ÿ`ƶ$1#"6ܭh/)I|㐪Hp\+ ^^Qׄ9RڟT?0!&Mr*CJ f%~g>eu늺!秠%(d>N~ap0WѴ7r2a \U.łEjK^|qsb 6]_~cIt{D# uM*_~y̿ׯx G (>,`{{/mydߋ%Hf hCmVW;\TTcCnQ#9 ]TB̂I䫡-T؀ py(5V :H5@`2C<=>#.%G62b]zhi7c^oT ׻jclٳr䴯-YukCD ar4hu}4KԾr o:zu0n=Ǐ#W$%YgOW M鷖$̘w@:u:x6{ۮwK6~ihACvB1d:?\cE5c/y[ߧLIlcVr+LXp߷g]R#L_tn9!,W]jjDs9!w-j&/.-wG~Y rݙ>t֘wWmz #aЭN~֛'e5bZ]z_Y iw{kz~?jS ĤK`Dddd223978??4l_* T#˾‡`ן_e?xS}W {P:fк vsm8%ۡԚ— :ilߦ s$rhmm &{kOp9GwNpg*mw9OBΓ:r@[DŽkz\43pPy>-s:hM4'5m4Y!Wwz:?6!ːS}5)x^-?&.ic*  Ti ?KfÐ$.FNKهNOeQJY/ˤmicG`ⵡ.7=8|D"VZ^ )5g (<-mC CZn~m3kmeS%'Z=>,i/tj }쾹!5aTVԀ<\>'>ڎ@k<_VMu>=3gf a|,-CUkZK0{"oUW%+LZ"TȹTIbFi|h(]|HPaz'`,=D*iz] =zo]Ҧl~/bmgWB[A;~GSW`>d+K k-/MjW,J,)T#}%)L<µXfE1./FS8D#́t-+{}{>avl>z2ڭNLFwq(zS.ԦgGPpbֶʖ*|ށ0*03]\\uuy'cbB:"7V;!Ǘ<;o$3l샙{9tȮ^ 3SS5y/H;JWqbZuvS5UTwLx88G6pj+%[KYXQ_ L9h9thܜ%xtqe.xf&ot"$"q %1OH%z^]H=e9޾ PI]˻cHp>LdV6ń h]x;ĩlb|. KC_6 ruWjA˽0!4DD7{*;Ք.CFB.t-ۢY9X+>Vݐ6IYINZЋyبs,ωb o 4ȪYwQ} 3Mz wbVEe_|l P*?cʢǣJ.^0b25S~{p{.RD7o:ev x~^s0)EyFPbѵU8s)sp5 _O S0;Pˠ) byf7oq. ̈%$)Y޶^1cCMkԔWv%6]`r8&!k:|u*/@:M8?C*N]\l:2= mLƺsJ |̀j=)Ǣēqx(2rsN;ڐ8?B2,r^(#//S>#jV,G++KiM ;MλޜU 2F|܋HDrU*Y{SOxL1.Wx‡ǡT5 T3ras{L)-&eVpbg/ ,& O}ƨ 3SZ[;J؜KtVŧ: T*a5;aIV԰$-jۘf-7<܄6%~ -6^79~IHJo`fFg=X?^Ig#(K꫾7 ^vF8@%5O:14DLFiD'y 7cg O|j矯2{j{fQ$]7jڏPbT ưUVv"o^WL@Cn%,H}f{-#/ m " .i؈.'ay_ɚ19m5r@0GȈ$98Z9Dʁ*!hRP2GVO5 G ݸ8R{YLX6A L3 ]1 $ x>Ȑ5fze c[޲yC3aAbLpU*4eNzhGx=qrWtP52F(bF*9| soDNEBlO/w% <F,^VeRۉ"ƣ_!31:K[;И?7\kdNh-U@f=+jsNtyB)`쭳B3_G y:U#Nxfzg^fߧ60dcyAi]̂y~7ozߡN+d'+_1AT0s·>,}ly5nqoC&MSk7)`W5LeU/Hc(&sp\TED$LUg􅂰'vC"3LQk;B%pLD*hJ!H Z)hM_>L2W~Jך>+J 9ܾTHp^[^,"Ǿ.PN&S0cXKHV8UZĊ},9͛XgAK9 4>g~c?ų4xxy/‘SX+ ָ%?5G=:Me"29 C ڀUq7{ 8ggɼ5! 4d9PWHԆ2H\B< r 鱨ȵ2gIv&B@aͦqX W 0Y,*O^~g0KBB^T>:YPd&+*\2݁u+ihg/՟?0.r^5B }alސ1 57xVC>5mnqF*1bx~(ŀ'KJ׌o)b5>rt-4"mhxLϭd"GԶ_1 )j^6AtMjt"ml{cfrհ+fPImP֝Wט'k⇪xUf>~a2Aȑ#zQ̧2Y~V'dbD1({FaKgmȋnW$WVYT7uv&yY9ZF L9{h#oiog nkWׯ +^ڭ&;?,`Z ;,dk!Q`NvW1&?+6IüSئgfwg\\CMv3?ߊ$`x(gz}ڱ׿rC JwcWSST[X R}/lGJ7epĂ? ?7Z|0.]J{+1:MJQ|{#r@Wt W3ЁR9i' L]gm!T7FC_1z fҖ). .ed"U9G4L|Ej'fdSe~klyi _{7|3[=6}+-;|÷27gҥ(jX2ҋW |V+lӁ0/Dl$UR7b Ť.(Lx'sxuem|芣vU_?0ˋ |f5]VWB1lNVRQ ,k{p0r"{MAF3_IG['5P)3pu(n.R}N֨=0B~j$aB΂v%4Y# "'qtTyc!EmE<|>6e5x{;PKt91kh nuvola/48x48/apps/netscape.pngUT gUAKPQux %{ E{χW[P.wGf+C&sonN R5HC4"'EVW~M\K^ vU 1r*wE-bAckWXqD*&7$$vG!gHia$ianlNя;EwӲس wg}rifqs۬rieHD}OP)iQtoiέo]ao GVߋy =Z; ^ءjAiF^6t:<̰+/a` h5K) 󽎓:K9${`/4| =8+03+Iίc(a𽸘W~t韛%wGsuCBLv%NK!0?Uc1n%UL2$J9Q5eFB,)󕔭y Ŀ*2+yYTXxl bVbXv.irČ:t0 񓺶6I1g|IVyGV%APZ@fi}xT.& ݧ8RܝŶkXWF4Nƶ]`+Nm%aIBȯt# NGΓ* rj(" u+@WrGOM6Mm4itL69SPP/ ++Ssl_qF+'گqN lx@ոnӋ9u#d@C^84Ed4O{䳉ů1Xb7ŋC,~HpR:00bxQ=ww$ pv!UhwDA_Uok "Cۈ;)W~ƙZ%)>x$qJa2~szx;w 2ItG }ЗL}]lzr:>rĥ ׀Qq?QTQ[K/[t4׌1NA:XZmF {b?7?zիbذ~ύuPPKN1V}nuvola/48x48/apps/network.pngUT nAPPQux W 8o!tl&͔D*͵RJfB=:N' ILRf% ٘}<|󽼟iJ6ߴ w(@9jujPǷR'O'@18Cz=1 =?o J)hGJԏӢylSmջy$?DGe2h3V s`Z/fŐ"WBà B} Awm,T]+MJ=vgpwߝwXyW)#i\dүDųBt"9=!CMC@&ֿe? 1XC7l4bk'@h,INx FbaGz)y{07qCB9yrUa#cw% 8̭}BlZҔ_I ޱtrgO6mX2L,sZ $wݽwC7-|V,G K4TD AK ^j6W@q0k1z/?souUXJӪG~ZpZD7qTߺhc,N9_xNip'Ί%ʾ:Ȕ#=!ԗӟN4mc ^^xɠ3h@2aTFp _$LmLs%.pk\t -Ƞޓt_d ]-Cn|l3QM8 /yc]!g\4Tr6Ԙl*Յs) n95-chn1HnnDbQC0z|9$,-KΗ s4c5NffhVy*d]y` a0 2h2vOpcv{&^B`UPy/VD^cxI2t &; *5q@2@r wvT|җH:]6kyOfE2 xض :;1tF|.V=wP,}a{9%2j< cI3sJ! .ѾjAMf5nscTv=a˽bX#gCu5W#3 YũgV v%A~#?_6"ija l ZΟ֣U>.] ޺B S\0jH^hKH^pc7MV7 [rQZ^=e]TBSy;--u!fdl~{< n{Zqv_o kHtʮqMB6c"u{_ΜN|9]8x |-hгHzwngx}Zx3F?}_)H*%4\}c|Y?*6^UTLO=2kaµMyoYN|=C`(whãly$Xg1ŔS9sMSZcE[D^l kb):Ϻ?MG?\?l u |RXNtH@$ ~[Xw INZ de^,Emf{( Ոg70raLHhiGn:/Ǎ{|0'B`ʪHJ~7$5OqXT(Z@XT7rro7бo{Sx|3i#n_KkixҐOkܠP]QԽQܟ?\e(xTU6`~C9oCŮ'|G[?Ԃ=?ܡT(MMI,EHGBa"ƚ Rǃ<(Q"p <~Hc[Sҁuxq/haɃUZ %ؿuWm`pk`#Ч 1g7j9h;n F6;;J@~Eral_X1n;qΜ6iY+v&h<@fg=-Æaݰ:]wy;*vf֤w;V͵F yq6O\㹩\anrd$}1'@hYiL̻5X3Z #tۮuqȐA?RLynڱ嬗Wqx"8UY7"ME‹$$ߛŮ4.CzP|~ *+B іnSY$kI^hJA>nu'nS_ug =|T5wbW>8X7͑0_}5{{, z_S-7}{:wYO76A9s+ht`?SaڞګVګID:>{N֨bd)T28 %_^_k!";98[ R۲ʕ/ZF ʿ/;s mҧ6J4D]C RJcy.1ԆE-#53NVE?լs_ŗIx in[x&V1sQoP.Bx5\C ˡ!-} ;Od ? *.'W+3!Zिd{/gW{;nW}Jhf'Ǜo?$lD=*W{pd(2A16ηa~VTJA\D$ ;]i;ƯUmWyFݚN/vi-nr7YR$~:ays"d]6)HI M/:Vu^d6}ǾS"}K )_~? P.)P;6NJ1rZ)rsN'dRu}ܞ׻/)SңdKs3H;ldb {].M hx=ؔ&\efT0ѤָA?(S+E7:-| Y.Xɂe,'G>3v&.ϟ{n hsPP]}7̈s(N[bYUu^үAooP{U>:+ʷRGV7}i^d@m[5׳ޱ_^$zf _k|2HC%b{ Q-:WFO @~}Ӣ3NKf pmu5אM lnĞ[?"OV#XP8B=Ӿ2jBbj ]\-$)ȗ5Sg^htT+?zZ 3O"s% iխ 0 ŒhkK)ڵ[* &x~s_:IQEPTv;UH.^ֶbscքg"s5GU {;oxt2(_ [=eKXxIAT+n"Qx:tGp#tD=xLPKt91_V] w nuvola/48x48/apps/noatun.pngUT gUAKPQux %V{<~mnTjrے4GH a٨u˜nNvT,㈈_7G:reXoy^Hi^<6QE0.[_6>ݧ[?ILUκ p.|CG2շ|cխEzMXsܲbW׷XK j[XZ2zCeE3S෤Ű~%2M {SqXh@S)I;% `w˘3wR  Kyv+vs*ѹKƴUc3vg.>??>"TJ2fәvLlEEnA[6WY}\g3~8}n[js,LJgLB۞} LkMB{t;םd4C)8G;xv.ןؓ2H)sMK/Ȫ4k;n+z-"4f8km()•9D~1B Z8"l e344/w_f2m%feYiG`-=7kQsҸ\7n+aS+Y&KX;0L7 Vkh)^Ao_vjH(#'Fq#pX) l j]@bSO hgb{=}?QozbVdY=%eS4%pxucW.mImO,޿qWSr?i230g|HH=)'{ۭX *K֟g:nQMۨXnjX>WW7cqgQe#NA=kq>Z/X1x SOpt1+$$C?rc)FUPɏ'6~e#3TAx`IJk$Lq#VՌ=Qs(cxovDγ?Gm ǘ8OGՠڅ>\DüN™yK`G+NhױJI@. 4eYTuw/J3uOu(ׂ)UP6 GNzⒷ۝LSJ dע%z3^wk-+PK6N1xa(nuvola/48x48/apps/ooo_gulls.pngUT HmANPQux W{<ncs26b\2P6 ʓ,QSO!ی\tGY=NB[&b}9^y?YAz:f:P[BPlhPPY蓮=cmdQ@fF2"b;ѧ40H~Cݕ1R AdY0ոwn (=:Gd`TY]E"jF{:Sg~|!rF^u<|;}i,5Ũ]~Z@$l=){)JFrHkLLbU@ װ.BLbqyzh=71MSUy(u;妎Zn?gh ֬(d4U9b h#P.=Fx<qCUނ^ 8!6) -d\3b㐼pSP.|] 2˖u5PK[BxDR)ų_8 LLP-`moGՁ`\w3ȯpDp,ip>#l31b~+qѫ`ɱ}5TI#qVv0=N3Byzpo{Gao3K`C eua$8)J܋ *R[wI:dЂnJTwi MΧQf.jѿ"2G6=}/)-N)nʦݙCc+'?G4a)1`8" _@l9B2{)x-Wl"o=;z#wfHXh DH#[cʯܬخfk߳fÌ>"Tq]kP$(#OĮEb0y5ejhI4M,kovC=*Ɂa:=* [B8tp{s+1Ԋ SgYU9l.hj}fuGP!UUB)9s\p-,̻ɞ$ϱ:7%d3u9 zvnmV,[ڽ{芅Isʼme ja[" Iq>8keǓr K"85=hŽQM:`;gC4 ;>HE}%Ugk屵yPCtu`ޅaM sPDO2uTC=yr>a~ $ʊ hK^KZ,IF.HjF4-afIe]02DS^e;1!QmC zd{'XmU=`%.,!CY%TyV1C# &96R@ِ#!d=M ?H vGZpK;j֗2<#U/XSߋ^Yjڹ=_\ftWkZLܔd2uЋX]njil*7Ub?o7)~p1:gq /\aqzdn7\s @ о#wOINd-t;WЬmw?4NdϢ>=c#2HXpCn`11w{f61{Y7&C _Jњ_ATİ8K}&l:*HꄇF_ɇtcw¢[YV %Z&u03*Tbj~Js VTJ[ ,i~.G Պ/(D(NY(P0 LdNN6 -yc/@jsj7gʴ*.A2(δ}*&AF-xb jE$v WrJKЄsc$X-rO3R%6%)DQǞ,U;ǰ$ivFƲ7+6ɊwyonneoSgoT>Ú_ȭ2q 'M\ͳ? _opj B^v dm A6(i֠ icNր?a6eL?Ԏ-E4l«CpNÎLt)Φ#iH^T~kuUKԀ~ۦ `䂆Wׂ+J́~"ֈ7XjcVa-lLTkYGªIJ.? !`[4frtܠl4 9yM86B2(:WR|Î[{O><6LR S]GھTdrz&+[Z /p,-{蘳\.{dz϶Rg]h4{]Q]yµ' (inLss^Wќ^\H7cnްEpVbOj.j+7KOsR>U;CPȰq2}û/;q|Ra cύ\H?KKŠ~^q\DO|ZDX׻k [=icJzעId)FuU|E J_Iqq,+uk {^k#?zO:&B:PHOJQ)jFdy\ U2 ddUFi&ABMw$)Nh-w;7a;%'̸|oW9] ~:D :p?Z?(4;c-%\C|c!k6aQr #ŒEv{xid4C7D)}I _znh4OҊ{٠F]6ڜv!sw ,W©\2"tQ4)GjN,8.ov}X!0: YOP؟2Fak|8G/7ab|| UMODm1!QzA 4luP8~vj]ۼRjAG" +/K*&-*fq4:ܱI;’ !qAm1PGPym sW ЛYl 2,T+q9l|}}222ztnw*dc#k)]KWO18_XX!<4TP'8dD92pIv`APf}\?(|oU8SQhq͊j38O555**KK>/q$ǵ*Xν1@oVTT<h4S9k&]<ĒA@''I ;\DV}KQi9 /"6@5΋$FD&]&hDjOg(`}˯ HCL w~&5 'e`;[0A"/*8ANy-x | :L Kaʹܔd9, c`d$#1hrsZaV[-@zY[7%m̭:~_0w[ͱQqON0892RNce{2( O2"xo !I]]sźIpَڥ{v\Rj qQ1|pVиsċ ~o$knE]xv :Þd2~mgHQcNVP`W :EE)rƏ5"9JXy(V,cY8Y!2҃·߆ Q$z#?c7=0=rv8ᢉupŋz/aXlrD` }){,(W`<ܘɴu|p2M$F?h]9'0ƍ&BpĿLmlP:f3&5.`dDUlik(hxe3Ͳ(=1uɸ†* [@ ]81lEnq Q]"jLdDt4Ii:/ǷrM|vӛ:lR>Xm1@6 pZ)RFȎSd @0?sNʹtD26ڛ.{15Ӻ=~f'^gϼ=u>133=_F^݀%mt B꜐ %CJ8q }$󢦻{>OH 0N(o48Y:5(ߗ)j(qPA>/榇r$H~I@@v>}:O'>[Vl꓄,`;ۭncUվ_fgB$`xΤ@!L-O=+JN6C)k9=AYpz$2En&V ˸Vf& ɀp;-,`aFm[hi1DžJQ\vY:QxBfAUs2_(i:xNO s- !QlN PGbh隿#>HHlT'ν9 9ѕx>ݚVlOU}萍MEi5}^Mfk$|^H}LfBsQ'1ua@6G*_!~)!=@zA`Ӕ[KxO7E:%M?H^n|JۏiYʛ z<\YpKOCz-=!P¸c!p<zsH"o)sLk".o+>g>3=ɤOF2f [1M8wObK zk DGSlϾ7)5ך;; eoUӲR}cuSG O8T`+4}}V)WZ]/_PGR>AI:C6 Qܩ.A>|a!`|rkWH[_ӧGkpǺZwٕaLB"8^gU]E3 9O"Up9~K&ZIM6btN[3b?J6|0 x(^vC Ŗ +7 u"%y@lظm GInz7jm?K؄:lh8*TW 6W-U9PK9L1Enuvola/48x48/apps/opera.pngUT lALPQux %WiTY4&*D1 H H: (€C4. *Qqq1AP\"( , [~|6,60d? V'_Ý:|Y̪ \ 5Czu =m]"&۩Ӭ8*yC7| BR)9^^xJCAd15D3SK*65) kv !:| McRg!׿CkȽ<]‹~K3/7@mȭǪЈعnZ/'ZO*ďs{>eدڍca*SaCQ}'^\>i!,k:hxC p-JCRF~O0»y#F4Vzc$ʜgIo _ YHWc@ -`>(+X.ö-Kڨي$H'+ \X|/C+/'C?tcw>rooX"iqE[-Az+g:8ieyrG]=͜߹ce7YlG _,^D)"=[^=᪓pg,GHgŒ}7[OU6P".<:Z_ 'v]h˭G'V+Ԅ]@3iybUnΊ)(`CyDk:gYkq#_ob.٠u_2Qr4jNw:B~0Zȵ`[fI|"B~1:TJǃ+, 03}h}RۚIY*Kbv[6H%"#ST,u\+m/p1l$Rcs!3ukKЁݤdR6#rrjX-d2p#nmmHPg|uD!m:8b(+KWiG|t(>Mk+9G7mBg{5Kx@EEl8^dd8! ,:%|ܛ$gMVt[Ӆr MHکfI$zIiV :Qn@`f*λQQ5 zF zpu[. fQ|xlڊ 1$ 289SCۑ YrRDRFk$r2We2H@qoEs2f8]ؠĐ27 e\9byl/;&erIkڴqDo;+f`em꧞b>dYsITTdXuFKZH/'c]YE+#B(US,]5&.d Z[K=BƫL6q>1{ nnnfX$;3 QU X,q}GD&$ϛ9a&bJf'آBV&uj<zl89mԌYkC5Cק1 9 : hO|p܃m+K%Uʊ ?S);,:`wi~ \n[%xכϾ,8hI|k^w˗͕Y6 Ibin^ETK\$ٳ]+.k֕g F(O[+$1;\YgrF7a9"\A/ɾbN3 IcZ+K}Gg8Z3:"w%AhjtǐJ&_!@Um&̮ HNG>?B3G?\D\tSª˾ jXd,\u$~TO+S96FK ?vUEW!}'Gਗٝ?aOhKVe;hnO*gWe*~d>+Oq6qB-w:E;fJ䛶wlG U/dyqޅ?IYrrkyWhak&(]'jU5QJwN0aˍ[ 'sO;Yv|/ȋ Y;4x%21Tc._sYj޷K{`d:o7["#G=ޑc|=R ,LNνwPn=Ss~夞zh:ㅼﵷ^eF"'~ү.UNW,Fˇ O0ǭwFm}O/h*pN 2[|KUj&2鷊:y4Lu,Bݫpjo\:֓ά-*b 2Kh?0 X5F|y_#7bd>Y,PJ.~B&"BPwE>XZ=[B?0 H7N<}J y.MʛJ μq + ? \9{lb\c=cSL r鈴f2s1X>g"?#cB/?p5Q0 j#Ϲ{wta`EC]Wwc>5q&w|{P2;p9cOo`:fv6ߑ ,\xPاg)Uo[ T#ֹV;`#sdW4Ưs+9:J+i o^0knܰsQ!+a㾻G{iGĜ,^3j<*%MHYKm+ ۲%|ERqI9F49S,dY FX"h-T`M7]0 y8Q72ʚ~#sy}bJrxpjIU7!WV+h^/d ѻ@QX$ĚOed7O#UW+kώfT9U k)kHfb2go!|S1aflhoWHUpyywR  K1(1!-n[l ~j ?Tg% %n",dsN de{.ɉޔ*}_X$ DWQ\0(q:eOdVN!0= tZrRirLF'~{d]Nw@AQ맔 wRk z)l ˏIt'etk#A|: [jjnl]M"c~E۟BhlA(λ~Yy&-QcM;Ȫ"s{Jm)|&,r;HV:F<bѱ$dF벲&x[.7CBylzzND_y;}"eg%K ffLNؽ@Rk#j_vZ!{sb*d87XgZ!y/(>} Aaeoѽ\D D+;]ak=Yt@?QmvlId{=.E'o-s36s-h8kg5'86' n; ˰jAu D)2&cS-l#ȇ|)ޗ\+&Kuhgsp#= V ".a+nHdI $υjB0Pq}́Ÿ6wvcz[체PE # :q)\4 c)I4nս- ~ p0`.5B`2|ɽu%QtFo='2j,0, C"Abp7 +nySnh[[ @wjj-T/6@KvB(eu)fED]jzs Q] PR XwhD_ ϛsC"k_b<=Ǜ7L!Of{N+[і)tf.}\#L5o<>7,W;mY7z63ݐCν[f1ɗWКEP/2ZF0,ked"/<EvY16,yk9wIW..pa7mq,A۷?()MlTæ\{ov}rqu\?[Ջgp^;xߊy׆ƄbӠTa23Smv:hU+v?}JY^T0R&p&S`U"]1S[x?L*+ E^Z7iFp!9\ΐҌ"v;\]eW?1[ʟN"v]L<_*kѷѧ}'p<vQЏk6Xa%| sӜDdKC mRmu$lڒaj)hr+5JBuz~*ǢL"YR&Rc5P;FrC¨3fU,ym~=Flab-&stIv{!!?9;qɱ 7ud} ]`A~1˚F&ޝUXuadϒ':fJ?nߎ~- 1Du\jĐֹ<|b  ƓH)~`wH?nezϾONDUDFp4w_bDjb#2 _^4$Jo**>èнńe[ x&Hp[UAPl䙾`cFv kiKQc5X>һ"Lt/7lGZz%ن1lh\f̭>ଫEXrݛ,@zZe㽣!S(n ۋԙo:͸ac UGB S\#I.<@O,xGyk$%~AG;SڸqYos=ޑ:$uu0cfj7Keo7}\F:1=*,xԲz# FtI}>B|3ߔC*;%_׷qn^{Nq`';{Xsܐ+su=T'f :`C ͆\4sW#*NW}t6"yVJt/o[0:Bl3җ@#$\JÃ˨Կ~Ϧ6i ?x\@UvtifZk4+E,\t Vt鮽ynˆJK(Bk" D3(ti1W i6ˎ9+'u't(ssP:o]ȌwN~\Ƞr O_8mlffu^WaBŹƲ|+ii|dQOH\!]{]$ϝ̩>66d)F cTVy00x~bd͉vlvﷻ#6^yC-L qlʖAԲO{ԘN^]~182ܵL~ɿDd,B8ɜUW`ɫz1Tբ;WݻWoE>/Ȩ=>8p<g ʄ̘v;R3՞=+p?*s҈"$Z'?s+t]5 mgLl{~#mnEA Ou~rsG- (Iq1M=a T̑كCa۩5%u=C8gp斚0` gM=/o3LXI,uĽ]a6M(R'nL| Sx!ѱ UKn5^K \vCZgݬqoO5q]%7 'Qxv?nwW]:*0k lBBMF9=|i| N:;H XI ̺0^n0 f/'NZ#[56mЀ/՟f|-P!pR=RnN>O}{`8BAtgK?Z.rRؘ@6>g/vŊ(ܱ]Hz )|j=5 :&V"9r} OG{3 5BdPRD/ Vl`̧#9^~):"̵{*BǪ4FO fm ɚ=&甆ZZ_;VP#稾/<#RtOy7zڲ?Uox߾N=t_as5ޯ'#9vȽu&~B_8Dq yvrA%V] %vH|;"=@t2(bIޮI_t w}=zܪejlxUVoF8^WU*!pV-R<4hGn"Y0;>ڡhb &܅#MO( X(NNkaJ`R8v [c "dg߉dXPNjBCuڋ}芵O,"7ou= ]|b5՜|ID:Xi̟h\fz]gzuVV_d*vr Y(QnfxI%[甄8+;oo7`Hu7)\Cô>@ʵ'Xzm?P=eZ|[h'nJy Aó kwܺnK 8;XF] n1VzM*rhx8@O1\k >ɕniUs>}f cDz1e_Z!`"v-LL%0O:a[v*v7X/:mU=o]ʕ&<Bl%"ypyw zq@2_U嘢PK.?e1潯qP#Wa؆CZl̛wlo2+C_7Fot}(e^b1)4Sw+oB(ԤDӝPi(o(d'jD0SU񩥥4ױ򁑆.\]LLl.((؄:¼-etŒ+{E}H-kbM:`J]]0s.nd \QC{),W^mJ}0wP k7# sϞ7?S,xocmjh{LAHV"Q.kX%88ZjjbF܋O]j bLtPX%VX2 bO7.7Pz) ?ϼ T*y1S; %zWsx?ύȾUQGd8gb/&;.+,ȇ;̫_ұ]&b]1BqtZx_#6u`m!ȵէͨ翌j8rr.2%osE(vbbr[R1"}9-6f58)Kgq+&g5*C"⨉Sx"'oDЁ2~ˁ"@1JZ#f7\NϵXe~u!չWۘ9NEYĀ $C1ܪ,<;`[]T'ez;XQS>`4V_P_M/U F>OX+n ,?b(mBC^#"z^Rjd莲&lvmlq>RxXӌu:9j7)W{ayj1SO!O \x63r)JĿ'G1n).Q3Ĝ'^Zx`+NJR  uL,B >!$^F" fl0Aѕ UӤBۼwf6!e~|F2 h_/lp뽼Z#́?HcKlf4c *R +_-yd* |axZ ` |tg++r"3BkfدS}sM0ќkY9KxRq ":rec6b=x@LNi𔐑74ō烂G*\}ާJc])JY6 XՊX{jfCwc>:o3KI2JJ8OBNެʖe)m ),6!j/3LL{Q+[/X:Ts3XfZ&=im7_3թԪ'ևE'6/vQ7Sȯ{YвgՈe&xw 7Y[9^sIJuٓI~OMU?ƢMބo1*ՎX%Ǖ L$9fsS×|1!<bw^n>BHyb@v=d_3Ptx7JoܞWoz ;:Ŕfyh G%i%pLvrPZ,(˵kE$w*,wQ_]a l~"oL yޫlޗGݳpC GDH٨15j1IDU\VYGGb#/N~I%P_ F!Tl7?y\&N\p-|Tҫf a,ya[qc'E58kkT%٣~ކ55G *>p!/ l }e`s8ZCIMe#a1 *vW6-q&rB-} k܈<'l|ru!x}l/K6=}Rb@ΗUpUnjʰBnsg>NbcqSLNG^*ER2`[F-RO69* p-ult3_k7F|<6x&5  M|Fq4P4,O91NA?Rvo.S݊M>_D0{`s|Ax}(Lsˁ_ Yݰ% s Lg]7q~8/2}*Iz:ݖh;״O{u5V>򔍻MK`1xt i Pb 3Ea/x\JԤ 38ۥK|[quCx ad2'PHA?)q:odԵ&D=)r Zp&vdEX#~>8_c &!d:4P@98y l\uډny*7#ޓo/(WI)Q?]&m&$ӡ(wɶvpqgfA~󍜘giCa[z "zx%mK2TX!g+~Hv,21HMEsWvBZmDUf3k.ؽ 8+`n |s1|縝fEkWQCp3m2 ѠMj6{do@uG՟KLff @r,uc\Vo''_}`lF6L ; 'JaaN8Pa]x@; MqF=s`X yYXZALrZY}9#2u]o[r$fMA>xÓ ~8ÃuUiqEŭcf{vjUuH<\әqIu+NԶk&?ŷ!k,VFai"i)Db[;qz@) ʩd2ƙIKr`-T6)O#;ut˒_Wui焨<\QeW0¡-e|4K(mV߳#xe"21U Y^ӟ)ݻ(:td鱿,ԭ-f~޳]G5 `EW$ V>(Y:A԰, *R=p%-]|Pڷ6=l hKdl<`> Rt ,z9\j`k~G;4}H:o'B Y{uS^Xl4~-YV 5,,+U:H1:ͼ:1%"( q-=1mq`,sxS4Z^53+ji2*Т?w_w`:<\/2TR?ܕ#37 *^xZ F>#$t;Ai!<+7 ǞNԾ'"u"PYXmJeKǦR,g`mAAnPQȓ5$$ GT,$ݤN6sdb$nZJz2'ԑ8p}n\ݣwٵ:$v }vqi Y o#|@ؒF+&ך$I8l(^m+v1}#[j#iJUSQCp|X#cA,OB_ qć.pAڙ~/q{Nǡ?SIL5x+x=/ؗYH;Zmt8uNa#&&󳯙,gkء*[RҌ >EGmJVm MYbzNһR| MWw8GϞ}d \tR3%S7! lIN6a$RѲuKk1ЈOfH:bVbRrT!chL]@I" .:$By_vF=B2Pw؏c U(4JV^5ŰB[,]/JQ[ 2ػ_ߨ0wJӳa2M.YuZc׿ }~ZhjɤRې]VD L]9#̇rT 0ߡ 2 /h۰nߙ<~ީsPoȹGKt  !2}IY$w['xڛrB@:ɭJ2$X-EpX;ԗX>-ba/nב]`,+1v\T=)735 |/{r*~cޑ'YJB8XVSE"{{6()m6ᴺfJv`JqވDž <գ kcliay::OqpN4XWu`f.xY|^lސ_mè"EyhRx"]!|Gǹф֧_-IkPq( ON~'Z:d0,`k /}}Ҷ1M;b{Kn{5Lݐ;99nBʉ0'Fn99Nס`c^AUwW+bBrav^;eE5kq (65PBoœ f0l_18)s8\Ϡ$&j0qD (0<vqguijOפhSGE+ҖQ3ՇťLY$a$'Iio>+ x7Ю@n4,_`\^D њ'[جҸ2g"Ӝk2I{:kDzD(@ww[l4L>}4 bb_6TY5]>>yZX!fkPohV\|YTwTT4\XsH?x5SwoS k5vHsM[g6blCoI5n 'ANN[:A}== @zstsTPUTGM FFp<^E ôX*ر?(Jtf8nrx݃"'5 z@1 %y_W=#}'Gy6mm0އi3|KT\3]pL?&тuQv?[Z?ry]s\";6r$fgf)7+S9~WUHaO!%KHt#?CjɵϟO&4z=Ė f$oQY̗ӟ]_"Ki}O4'r XS s K۹m(X / - ] ^#x[ vKީ9~)g Ƭ6 8ADzic 91?Z\\pdpy& qeX]Yl!Zcd&hOo>H}qB3`VSz}O{$'NڑwA!?>Z$F_ېy5ؘ{{W+7Oo,*miu: |ǰ/՛3d̛1F {JP?Xү !>_=[U6pUoh!rʲkW۴#D#Bp)4c97.hx,TPLC7ll? rI@OG[`%>tx%O 9[c8Z|:d=#w!vH-(qS63]2lpgluv0ђnGW:bPP(<:"FQn|kFJ:-^>BV}=,NodbE_G4wGŢK*EAȇkbZܗۦM˟~ T,Dm="YޣHO#vlhfV5e ciՠ7vA27SVpȘWrr=ր[;uQHx\CԷ̘;"' ge{5\8' C5KnF]rCd7}FZ S)]c se&PFO`r %De0cv6!Rͯf2ߨM~Gq]8*!݅(6PK/sH1AZ8 &nuvola/48x48/apps/package_favorite.pngUT :fAJPQux UWwXS7$ D.-@A5`h* E@k܅ZVTH+ >K( CH}?3s3o|)do1^`РMzI =ߎQ.ڶ'u`Α) Gq,^J\<-,)㧵DXkK(hdCDo1KU)EEEŎV(m{"5Q,i뾍(ke9~OEL7'b{W_ňJ&X%R#}baa ͚SS+}F_%6VhOZ^uAqqBܐ%uֹRcË%KtʇCiY\._5ZY1l742츫 pJyz{g/L++XF-~Wt(cFfG9L ΘJsiOv9ώ^=[&6y[RLP)M4{|Gz}7n)y1s mo/n Ȩq+n|;=W#M4S | |ԮɻBSz6ElITϗ ...bݓDf#)Ipig ۨUu¸w`~=_D͛!7 gﶼ 0t(A0yO]Nm&3?5D )y. 39~oN UhTZZj"LJ iK,Qʅ  %Gm [zi7]Մ8Ν$F_pnjâ `@#x?hxU/CLv_`<Ǭ ނn0bṃWODÇٚz:߽vL׶ChQFPH"GGq`O'"\~FNǶ\Q:dܰ, ?NJH-f.-+OR@ڋ]1Ct/zv8maM_. V& c++Bn)8xq*@«=fHB?PaڡVj_DŽ.xD[l?W"q 9^6I hA:s 5 ʳ| ˷{z_^NȋO2m6$欅 s!{!V5i~0,*~۫FTَyl^Ȩ4A"Už51BڠŽʕ5yGu#!pnd,:_QyksPy42ʡ)PQB>[nLC~b[R.>@LFTÄlG';Ȕ]VA),iְz~AeuN>-u!~{V9 MFd԰ @gAOb\X"(yZ~￴A;U6hwn;AR4O(-f[UO+ϑgxi˸W·?,^.t؈vbv۳xCzYXI*rNau['OG{GF2.\C;9XomoD0 =keI+ΩeBw捷dg 󭜲7zeě%_W %DB$HCVϙNiPTNAA?m b TGJ !v?PKD1<'M#nuvola/48x48/apps/package_games.pngUT ^aAJPQux WTYt$R M@**J@P@ ņ+%*,XEl v! H@ΙygΙww5P>A6lg=,ލ˂'ts'ML Ky2!r) xioQCk:`ƨ꠪۷o?xȨ$=Gލɮ~C qlvEzut@N4sSPy9Ya /S}T I6b; /yp񦪥vΫoK} ޷l2 T.u{p H[Fc[֟5w)D͓_N!#444DqIȳkA9NA:ri֭bbV%a*4| 񺔩XmD+=5/E/?48*o`y;|^RbERÉ1¢"" >xFvoomc( ʃQhŃh2g7:h/܋]}MKNI!))Ʉ,H5abe!v:\-:O!&1Q{7vJ9v;>$G(f s BEu*h?P{ ƺ%/m{ )nn]; e {Gs9Ld//dƻ鯏ahvTj S>]bxp(T4G>e/T ,"֧[Mrk缾RafDSǏ 5, 5y;'T ? :sg%8+tIz0ⶃu̽'ܲQ鳿ɻ+kDs],|uO13}c_J;r>Hʩxم2N\a1 P ;LM[# &E?Iи"DFl@Lh-2_f߼_Q7*~Hp, CLX*sHW)K+IٮGdgnZJ.(HZD9IJEi%dVbf*kfmƣPM 0 !X^ӹ!"75&`_>? x'^zu˫ħǻA@g<'?R0###iYTTDOS7(L,6NpӶfĭ޴+ q˘gjB.fҷ ij_ޱiϿ<6;qxƍ'v:[Iˎ—Γ7t"h͠ #R}{jFM+IBZ&7(-\pUޭ'ޟY.!clf+5LaUCbvuB5a!]mYYqN,W%'<2U}q^v:Hf<5W0K ^DzBXњ/BBµyP KN?"99ށw*Ŗֶ-\Iph5޸| Sbsn)Ћsp{;am UM(䷽Q$go4HPF+”nZ~NVltQ:|9se#dը躡$ic"e/n `Eڅ;)o&}c)r%əqފ,}&˚QِW_HD?ݱNEÒ'@t+E/w3D oLA 䗎 6 ʊbhGEfQ7;Ps82',2>ތi[=޾5 KFm9;K  ѐVp^Mo\]iasKkaG @c%%ly']sY>57 `{>=_=19=޵E#)D,33㼷;a,VK=@RCD;&úq? { zU@$Se9PҲrѢV۷yWgG P9Z]a{ oL~'Y,ĕ6;^M,|nJRDUՕٓ'YlnnN(XY&%v}%t~]Kcy$"xrmxwq1ՈgTMRS&[*ۑѽY,pշ0ח'&Ŀ_!Xw%lV3a/l ELa^v8 + JNs$A)qBVqw@Oun)`$ȂzH6a *d ۻ]Iډme.1I4ay3pn]u3#MOG;SXS8@k13.2Um)T]K"[>%G0$yCX τnLǁ`x@ tB>%bMʷo#x7`-ܹ ×Y!Ut~+\(iTj6( w-K963u~8[]y(a5i%ðeT}0}߯M ٷ8^.2J] ~(.rME *Y(LkNf2 _ (YNfG2/K&^ӋCipp)|\ߎv[,\la4 {XIh(ew @횾i_Lo״Âq$xg)B]KT*T]~܌ O9MAW1N4W"t}:-*K,_dQ\:wA8?s >nH\c<,x; 롡.<xzqnk`qǶј }~UoVd>Rl{2m[\`!)̼ =icleUn#eci|[3ap 5mZ[6ʚY3'zv}v?Hw~lJ~+E2xx&i`]]fA(;bIįk_$l no*fF&l M3V[9uR/3+Kׇ᢭ނ/혭^e,34@6s8_6vF4Ͳ.Tn0^ ׂv6/#a@#_ٱu7eo+ZP#DBm&+fv3@Fh{t+q 0A9T![oP6*K[zel^_^7?:ƻ<,i4Hz7M9su%٭`؀kac== '&fɷƩ!GJBR!:~OS4˽9\Xw;X z4!ph҄LϊqI둔28TX95wRE@ݯ]d( Vppk 9uJâ|4%QC7O-ñI<\k_=^?E-;uA8R w1wqڣb #S݌f=ͮ0FuýuPKD1$H *nuvola/48x48/apps/package_games_arcade.pngUT ^aALPQux %V TO2 0E IQ~S,hъVdiJg R!ZEDE,Xj"JEk!JhUbTSD|w׺{Yܵ9{탲8sD`6؍clFK>~i9;ǦkgrW bX0I3?ӂMt<5+e;wW$rg8su 1a+ȔuO4c.M/ d }!(:z/Řj+_SݞDcuw{5t%] U@=k^39/[ SEhAQO(uZALzN$f PD, ̴$Ќ+21̕*fp` WS$o~1mL"t;,@Y F}]Lr8x$i]c~CdNKV;A/kkhVnp?B^zu)St? cm.H^]Ig~FnJv_f}q-\-1HMֱ۷>?jYXIE.UGJ"!K n=Xqcc6Kܪ z%֘9pd}<~eW]uqй刮2=~P<㌋99q{vL+BTwr"=ﴷ9yn;4c%ǔzc1Q*ijK";p o*n/cnCQQYP>@HgRQKg>,"K-΢S\<=86jMRL߿+i6˲zJ5NݽroXb[kY$YTrv,u'Ҷr<1}!4ч`c8//o䒄.RdH{5}LK/|uSᎇکwR vNjKVlK n_bdG-ZS,m&5jBCcpRiowo3 8y]ndFm}#X!/̘(wS%Ed̝v;zYa=C§fm/HB},V7d@GK{f4H/7K|%+^vVYf ϻSp3AM7.Er(uN;f?a+FVƷy^K-$z7ٷxT0T9r xH'?=bGZWHd~4pf#l*V# r4x_oغMrd2s,ͮz0'%/¶kG[SibANu\П7l łʵXOQIIraa!VR- $X4Ƞf?+þe< ׶ vn N͡oi;DuۧJBjuX0K[_EYl["l8W( &o 0繚'30۴c~YV~ J٪~+3Y̠񰚧V\r"gN5ҬcK\AQCd|Z Y+}vѯ,p7ҚjQgL;CѯhC7uS* +Rέv)758:ٰa6?TGo0sf? ؚGKK_-G%9єa{Ժ.8h&9L>3:&"c?k>"wGD%^͗(X"sgP[xK:ʪ=B'l,߁uʗ^3U`.]dOa=|gN Mތה3[ ,)naOYYt66"PKD1\})nuvola/48x48/apps/package_games_board.pngUT  ^aAPPQux %WPSi۽7! jV"ғ J5_!$(ȂRPEDX ;$հRT\|̽ϼ3;9=<=*:xy+׫a˙N 95>v'#bY15$*(u I8 ;uߙ5,#P$"@ rɓ'Se҅xZCפWgfȰkj5@k|}QdP_a`fFw6o唔DIF;)Sry$t𛁮6._DM+yyy86^4?A=WdU*7OM,֖ƣUU~tDssT٤.@rSuTMmȚ-lE}\|lp 68FQΆTZq )bTxḱGn ||MW㥈&L|$Fxef DF;܃ ?$9awmWtz )Ҩ%mRVAYRNA:rWs Џ|j`M,,oކ7ʚj0Hn`&Vg'EQF5&m̞hw OCUUUP~~>3nʽǹ E;˓ٍ֤"qcՖϔלI z]q7"_To5//JJT͖  #I֛g$r5;XK 5ORW>")"pxr?CmG<1ph@f`ۚx`yt[Oc1IbMS-}$k[h9xW 2EJ>z~;TݹSDR=gNd)nU@$usnJ#q)+(i!2eaLD3/ZQYhUz:WV#Fw 2kDJZ+?uj+ 36p%#mJKJTbLҭFdQ&3r. wcj$p IX.iuz`r.´j5ߐR2JSa"sxrPFqLpGvǓگj8NAGX0\'\ҽYk. -vnPf,NI٪2f,=1O7g7\*v³+.]0aho_ZMm;REHZ_Qt@GάDO42Xq+0ga͗_O3rp0T?$kms& J]Etz[" JS0(nMz <4)U7ʞ~j=s*(?)|5'AºƸ-N^r/ι:5ۘ (J3`ҐIJ3%E^ỉB36*,t Y 9ZN9u-w1d|8NNBd(& <ܙ0.I1Vq;-ۈc/3Jl  K^5_0$#/0#qu C[FpFxTjaWTHfU!2 IDX׺"['vW 2z4XzX+*K;FN]R[|_> Dgah[R.6xn_*} AD{A{4^}eY2k(~ wfS|]jj 3'1t~{}*/eƐ0&Apd߿ S |;K̂/lxv$"l\9cޟY縮#L˃,wyfXm_LqOx7e6>5쬁)ΰffPN32 BN #<i7NNH}wocc@X>-n/'1TzQG H6/^ )u5s+}om搀CS2lIٻA5Ul/2ˤKvR#6q?pd|VD;Hu}aQc[o:P8:xfUJM +$6V7Le`_;SvۘtOD2O~/Bۤ`^'+Œ6 g(=Q;̥^efv5Q ݞ<3$䢊r=V%=t+[ 6թw *@m:WGln>w첒Ʀ+T =[M™?ӕ qp% P"x'/{twŸ^8MoRMr#)~Z84?(6ܚGSM qI1Ǣ ӗ$xΚ"ju P+IMOO 92<uF yhO{'m{S]OФJffLC~4,+>zjKϕg?Wb5KGy>*s 9Y) E.RmR6`r$E!NBfפC(V\wfhX6fUlm&ڐrB jjTBUb  3kx@tK+GVz 郤''o{R>JY o_ YhOOdZsd0 n/Og+ߘǂ,5=e]]]3ג\'Lux:0ovx 1riC3?H\=5u3k˒Z {Fx$m>iY09;ʻtRc.OՀU4 caxaĞh ?_>mALPQux %V T>riQLJKr4s)3-.3*b匚L5$V-|fM5fVVn |yw;{}/_J⏩ҮaeV$x^ όj{) w3AwfpJ䢧8Kχ ev!uJl'rlH>(ajDb#Q8N̝YUɊ=>.3TaMpϲ"jNNE#ÆT  n۶%99ŤT!E1=lZjN-t:6Jnƹ4Cq^ʆ^NDmg%dO M1W#vN&c!f.FE&&NLCT.i݆ !ԇ;:5~yʾ‹O7  nJ^ GNvhx4x̊S6?m`~GxvIƀpjj*9Qz78ZටeVxG)*-F\p3yv& I[\M5DiIlc5ڽly \-p䟾[ Sm9IULJȖw=2WQ#pĻhsn=x#J SJC,V16p-fV oJ$f$T^ۘΫ=558F} q]ЏF;!_[eꏱ(;*D~Q7tFq [DE|!Co)Zo[G-NB侾ϑ;Ls}+_2XʤPCFΠ)fB O}p;N$Ŧ(\IC_zc_4z$gf3g?Yv}mHtY}_/lM\zej-` t+ ^6%:}x^&34Y$O\7E9Hͺ_>P!>98dEZg(vwc#ӵ ~0SyLNZ9_i'ul@cm{@2E; w({wl V}g_;y`_+B\b |tŒsKc۳5F?qi[n|NOψ*TTk8-˶kJaRkRԣw̬ W˽d[9Eނ\ݤ7W=Ã`nwW+c-`cvܳN;=ZKaLk>vJ OKHHm*ywKw5G|WܗAj#1x^|f@L~>TlC t_`ъ< ȋ3R;7^Ŏ~ٝR4xMhVkq ZxD>ׯ6OeBZw17yڸ6[Y:i~," 73[5kQ]]M <-¥4?bM\XU6cN4 QY-Qf/ٺ&vK@Y-q}iz:5-`Owo\gՁp/8iw/g )^Lͩ_'&Iy]Ϸpm0g 3$o["7θHXv>a`pE>;O:sXxscwXż]XBű*jV/LDe 8{'QorieԊ}mZNp< @˶@ċlN؈'˫l?kլ'T_i1nHʌJ+p>,K`1yQrGAeGI%N{vЈH0OŴўӰib*eǥvaȮC#A_NFTⲆBTvBdLWL0'5s妇dZC#Iyj2`bM03WՂK٨AOOؘ D"aC,skk3J< f"͘[)nkPm] *ٸ?4]Mb|NqM5S^ʹRF^Os/J~c/_ȆoHۘIrW /.VK;ԛnD%yd!MO.e1˻$Ò %0΂vve>XEeHķQ  ",Bi~.Upi|%.-i*rYԖlpp.$$fZ7R.wNJ\Iګi|vxi36B\B?ƗV/6gaU^:lh҄+aJ źr61@;| vP{!nՍ{{ &<OSCyUg^ikĤf7UqgeQ߱0F7hy@qu,zĻjcO(:jo=3LC77g/@B<ԂCA2$7zS [țFGsJGuP1>iR?\uE'*#ϕ__)u`&,gvZ$;ф}w5Pb 22YF0PN8pdeb 9q䬮~~t"§'ܵ T׍B@Z#!|"I ?uSN!Hv/ff\pp+Yխu0RQBF,\S}Hۃ}вPKD1Wd<e&nuvola/48x48/apps/package_graphics.pngUT (^aAMPQux W TKfQpM3HS&( iKi+zoOC3MK voZRKKmɭ t眙w̙3s}sa!;LVA ,g7@0e%HE~?5&?"uoJbjZ9>y46)aOBl|- }OT5Dab7!Ou:!@a9+sNI{5pobv*|!Y+  ?u'WAC5hמ\p\ =ޑW-4M(`M^^I]Ziu;?_ޥEr{/okը$n#KsjjrbvLSj)h}";验A0cJ@Q-kKKO$κ{?$zf:*bb)VyӚL0!5kji5oKqT"Eq[%wl O*-zNRM../$ x3#|2c vf8V(~i*vh-϶js^{h=Z_>9᫋կ 7 WI;$@B _6Gzm$Nt}z&irB 0W򇝸l!X7$hzRUVϑZ'kvwN h4*׾%oyEcIB:,ǃ{mC9$ EHԶp1. ;ef)%˳ mr}4XhZJV̵>L! (ɓ͹=5XD̫)V,f+(SjYG-S_RH 6YĬ'CGH毣_:;$}ќj@xM,7L{ҫVZs]O 1V rۏ[PƊݧ7Zps׶!TnKm_b? =1#k.q4 OΖx7owP/ib歃. mvu4Oۇ*^uӹ=YnFͭ8oyPW%:|GSKVetl{mޛ Kd,ՋT3[ ޭRO4M@(\Q}$)$|ɨ)UT؁nX F\V!C1UNB\Qf Kc,3ww5\=3]vx謽jQgB[q }7hw$o]euAMX^>rk%nQ}ig 2_i^en Lu_5?*@v=I_2tWeø#+;e  qҞ2Fb~Ps uT &::S 9v$]xߥ;ڵXK)T{haEy l`;`\W|^5|ֽ֥`I֝P.Qqtdūݗ'WyƑGU@&eqZx#N pv˻*k}VʾRѮJ03 |}gg63x:5յ-?_YhhY6=AiVS#8GU\΄rdp)9ewmTfquGNq f-2lY:7ce9C@g]D+ n{l Cȅ̫p֚BEhGGg~p3S M'ŧBPxWp?/O(ie~ ՝/ |z .W9C#-ui";&p] 6jQ &zKBPT:WNZJ$(.UR!7‡ڡMc`GZvXf"_迦2JZ_B"ő,Ӱ xna !m3m8TQc7dv+RAx T$ X%"Xw(.&n1W0` w530ht0lXޚ5f떜I7-,+nK>mƮg*\H^&P#w к2ѦVU(-.X qEix0&s҉@nkNmTxhR-N_LykJmh8f.qҡ1qViwq5M2;d c@ ՛^r6Hܥ  xBU{3asy598%W)O4D$P_G_#AQ2?l2x orxFÜ8LBd1>-9@x5K.t9-OJtpekO8{S$N[y%0]LNt͈)0˷j8 +|W"m2e_Ҥj[M{F74]5w"Z ̘K3Fg lT.%6;5oZ$2lSUUd!)\iN}p65y"ux}?Js7~iO N[u~h1z83)GFT,~9VMYDi4Ӗ=plͪ|Ԃٳ]# ʙni6m ;_CR027o#s`$zNXuk*[V Lux7WHVs` WcьgғO+HVPЕhiEV4˜|goXc6 LL{=l\'f~m @FPJ?Xs)4:mQ*EG9?shzK3L9-vvG^.s[Z3;ڻpTYuE )!ߡWQ e|~a ø-Xb]d2ډٞS&䗓kIr*[ 0DT%Fn&VkFEB["ιrSoW+ A2 w[Os8Q="oDX{;S~{ )b2\[{%$pvd*1}31v'uQ8HgBà.] ø>uǿ`Ls6FH4+DXr3nbdl7]LN폷QPKD1E#(nuvola/48x48/apps/package_multimedia.pngUT .^aAJPQux X TKpATڔҔ\44-WpϬRM4-2E+ͬL5٪&nOs{93y޹#/OZK@>5:t(ߠC;n +&"tp:3<8,XC3,r2Pe %hQ"<4L'$x쫲s*`8\?}o `$gK PM<Cӆa!֖hW hߛj*K7-\36ZP ?Oͫ 왉 ~ }]u xG7.]P͕0az؊>mQ:mBݙ^D'M˥ݛ\v׉ XоxGo:70CyBOٖxz.RNgGְ5|dc+8Dѣnzbo *eHY?ޅNNHӧ|H#^|m܀;h!JCՐņ{ L&%\ߴB {njSRXIتM#n5 NDY:ILZpS[ؘ! y<`+# Jg9dB]ٰ@zȶ71&6HP dNF" YF[[Qri-,ۺ92CPXђ%}?$aױWRФ>rtuͅw>CT RJj8KN$HyU&/-/6dA~Q>$Tͩ'MF:[$oC2:Xth}zߡ%@r2eXjѭ[>E]MeїQo/u f= h\9Sɍ:9E+pg> R_#f샪OMO;Dzpv{Sbvkܐ( FqΪ~tOE܊Y7:At- qb@Qi^*/;8hh́A;RV1D_JcK ӪʨW39 RBnssJ%~L99EWkM@Kg_IMnk˴BI8n?)?PjFY!Ca$l6 s?5hGgz'=_zɡ1ӓ?z' /^r@_Ӭtz` *Up}c#(4?)6ҹrR)㑣Ya]"n&78v%.OTCO'k߃1Yq޽rtoM~:&Zq"99?vv=2"}gP^# o&kT~*TEU  U@nm~aWvU h߼j62pKq{[m~r ąЎN3K޿|*zO]ֈ@%t8E.z-u|xmpxpqԈ/1#̘MMRAB z. ֨fD]I$fj SR9lsE>H,}~|-%Fqe4/,A̳& tX?N&g9Vr)%{)-myYZKɔIKV& 6&xlg}\S3j5}\IV+綺H%E666cǿ7bD<=!Ҡ=8n}R^ކfYBG\& KZ>t vjų|ȴ TdbAH@bMYӃ>->keca,.v#_&2t"q6^[s:׆ (Db~bsho1dz5)c{Oxx.;#9%QnVmx`~~S9\w2&R5ƽ\`s&Ϗ<3e9vD⪞5pWV.D>%j #z"itYNZcxQ`p^*F|ރ6xdYH9wC\HI׊q1&-u.gc1|nfx]{ Rtܭk#zrӔEy/ΌZ|CDR=˒-5Q#Ѓv D3TX"|O~g'wiTz Fq\hn!az4W1 i_DЛG0ĩǍriV,M,c+A5ܸa"=jD1Mtt Ci\9hW ȝ>Yذ!'J(!@q G(e.. Y4(~QetJ|ӌ ,k3SeL5v%/X`ڥag*Z.=G-NF Fݒ պOB~ ^l/xєFB-f)sc 1xhOK%0W'*P,1aͧ ic.8M'LJ z=U>ʇ ߗJ!T*LEI͍0M"hܫze6NחlC2Qn B;I+B뢾WUW^MNK)}׳A(ݴdG{V\LXu44ջ@g1Ӓ@ȡKw ydeJ\4' gZQ=z tZQ-w_#{j+^DI}fUURBֱs`copT9+tpJOYRU-R;Q܁34mn%fzx^'}xRXXKZTgRSᶕ<̅Ps_*S#vЂ S{seʢ=&{wV,6ਣG hOmdٓM[Yff.YTOpх,Ya]@VH/{Gئ'ԡ=nnF%VI%NFӮi0xlǚ'4o˖ruUg6p*D-v,N5sl yR0:&U>9kxӛK9 .?վۑn=>n.31[|RD8b.@7dbNv4!prB`^𿷈?"ĢFvY|[bS6}!s6-PKD1<%nuvola/48x48/apps/package_network.pngUT 4^aALPQux U{<.d(msTV]JJ.:\KHdi%Q98JĘ{nԷ(QII}~~yzfؽ-᧷Xp<7kXE($rgա>Hh4Śy&%Mfb\*T8~KDNsC̷{nF*K&vÐE]J Qc6R(^E*!Y |8|:n7D տ E&9%k=x ڴ}Ș5 {:U@C<~U(jhS2iU^\.MQHLֆUCW=wWoCz7~fv:ŘںԏYn-(%\A; uM*!Ym.gSQpI+^쩋S 3Qb ?$8>Vi/O)l5$%gt[{vnWűW~!fÒX`M^v>/V\$RLD\RdғPlW.$%jc ;Rnۂw1`G1GxwҹteOkd΅\^5^^&dL1EZcO05`_byأ[H Df7y,BojQU6W| oٿe Pƴ$]pap]W@S { 20P0("(sYc[Яƫ庈7Z{+1޸V]r{PkԥĆ@~qj!qv#milA]k݊ELh5҈1al%X9LV"} sHҩG'Ddc_o~.l78L6xG} T ' OơQ-]wGàxu荮`cb.)f`:yP5ozMqdN⯿^ڸ]%Tb?nH<="?kqiu3؀r0wJ2#cJ|'haiԑB#'L Z۳, YpcX{"ij[?=Q37"x1ΨmGAQvshp]Aoã7_H8FeXH \E;ѺFZ'lWzJcAHCcUa֟~j^ u>"g m܏~E5T LaOegdHAݔ|H96?%#Z׆F}5QM xm4*DO;r:ف,lbmif']$V+c B{%|EX'\x:~"`d{N(X*k]+laȎ<3CW}v@HX]}u囱im78Fj{uFG^XZZ~OBQx)y>!9wJrORL+9mb^;3gmEo"GbY먾IPqv Le|qU0A7>.$%4V"ɢhN^K4;-ޠ3{Eo˭;4/: esby)8Uas ݬŠo;JР0lQ|D4 a/~+}^ =aIq?:2Km'qMg'{I ,Ь;&d.$TYuhI|]J9?=P4gVN KGڣOwxl'#F9ŸƟ m! K*wfʐw~MqC6׾ɣ{[Q?R7Df+qCƄЮwzK`s$$#p^"op}Dh xU{G^,Ԇc0 x'{㻬69wVx e2oિ"דKTv5EYyW?ܵ5gSسx?f]|A*&^p,CZlb_.}| R#ل& ۙH,4; \X$dBɵҗ2mV[^i"U .ȹPf:(@Dw xaS ͺYpڅ.$L3<ܺpN6A]I U X*zW 8BsDB/L`MY |Lmj񨢇.# 15Ƅ,/|Yzí5 vLw*\HIZyCN`tyI~,guSG6Z'5 Wd##Hr6:#Ysx"zG79!`k tKeryy}y XaV`MΟeQ'"0hSTÆpOlNm&0%~jvE@ۦhG4X{7C VwVEEd#c@@[7!NLB)U[wdu-%O#2?9mmX7-B4j+I~?E(~h!FvTJ4+|<]cӀn[DipWQɣuSƱuD Q 6ľn漰og!~w1QȑCFW dvwmnv—;W+3>~a[P8̼!v0`ewwzOۊk0ⷆ`^=g}Mt`S cCSk̲CωMϛ2tȓ퀦a>%>}xf৽bf$6fPWFaG[Oeh,i 95ӾT\Nޅ6hxX&voC: +ff.SQ#Yu#'r [|*q.L6}2lb%~ϔni_ +;TP}Rė7Gx^YCU EG׆8IZ- n,rJ=yMM/)΅g h[R(M68_|051Մ$H!2N7Aݎg.:4lxB(C 5IDD$p~DUXصP Ϣw}?V-߾!9?ouuΖqz: Xj]@֏Xu$;qbGs<߅+n~C\k2Wfuú$D5P p+ɟ:Q7edzXCJcf܅.~t^N3{e云`2 Wlix0??SH(U@@s͈b %1ϕ*>SwT2ZRQ7Pl?5yAl"#!`WjAMjVB뜰D=?16ho4&beT3Szϐ m-wi׆2.`_W[ɯ)6s6Ϧʼ>q_{]\4I O /{ͯpLIH6; ˧] /] =9֭o3NO/FbV/ӕ@Ȣ,5 Ѻ&V3?y@ED=GӪ <իWo{qR +cit黋PATakV##nQ"ݏ(N~j=35.e%,Q+pTyO)^ G =sC>v5¹Ҿ}u@AA ;yy4iZ[Ooˣ/xa/LɗoG2FHe%by*oJ)6>{wg/ m+y[RzA_Xss^= z'mq\eofB14}ҏ \\_FƉm\!Q"2>bݐQyÇ!t\LLG}?c௡ jpJo.K. [[(iqjUX'O;')mR ފMI'#Ce'G K0DJPW\oE76~>(Td]"~ݟMff<#N/) i%7:Y%xrN̓ Kad8;ђ:éL|k%=r `{/3( cJ뤤q==z]|YvW@hL`JECّj7\N㔀 ]^] 쵃Xsg~K0{^0Ir#+ T,n8EԝNo*Vػu21N. d Z%'ifJW-ab>zIe&S0;;Os 9޵ꊟ505  7*@ڮ_i+ށ>pp*ogy%y+n@K B`ktV DTv>pNr) }s|;Է8ؔMDSVi3W*MPrުj&ztu;WҬwS3t^&G'ĥYq+*@!UT 6iҘOpb_L2(k8JZcTfi|%&U6ri5߰ M0R tH0R9- &.FO)&<~p#(32 [K753c^(`Ȃ~ⶠ9&n~qf7MU@6+fʫLi5iʭt #&b?\N#02N!:* # rfAMuu>ri'@ |pI17"pVpO(g=dL`믈u~?JOlتƠ]5vT`1nzXs=6tB !*jУa~,v'Lc>\Gg8Co%J 5㐊u%kUZGr=GK}[߉aDSzx\ON͵m"ѐ0n D\U][}@i@bJ K̪4e "#dE[yy`<գ:NY[(L.i~@nߎjC[jE'ug^E828+h],$:nF_71x2Y/*i'Uv9TOU[~ͲRCڤ/Y幃c<xĘl\_PDɦRCdIxa.jͽ+FOM8i>\$DJn/Me !fs5iG5ֵ`Iqim61U3բU0>Y5olD- 6)SyCt_w񍭔\aVi2SlD2-@]3R3yĴ I88t}rhnq$vdW } YdpQN&|THLmkd;a`-}"YF,;{CrbY}ܮ1h+/BL{hL{ӸC-y[ZgKm HLmZjjv΂ɂT 7g}IyJAۆIags;Ie`}W0nLӆmNx `L'Cl㰝1)*bGt_kJq"_SFkv#=qpb}FJlsU$8s{h̽4z*A#Ч6o;6rɩl6m?-͈@8%zm\ տM7;= k#S*^ĺplQpSTaXa{GPFr㈧GQ*yj ~{-oԳ.^Ӡ='Ҳr=ۀr-DkɄ8q?O0s`cu`rNIV D^ыq`zِx[t@5ّ&㭿!ʙBw7Hy\CQ c ._ `hMH|E(og*Re`ښт BS1hat}NPex'v |tf!NmuhZձ.pP XT_KJ:̲T})w|%ʛ}>3 S'<6F1s۹Q/b۰}B3/B!m>~S7'&f;a=ōCAGtncNb2 ۙ V>tUK~Ͳr;ھ-d5HۥeNG)'RBվK\fȸM:۾ ƦIq <ɜ2Pp/-߂ Ud(yo|L.trzbq}Hn5làIV˯P"c^_F:ȼugy,E-G/C#mmlh^_VIZE@A28kD.k( 7J2cfjY꽱ٖa/UzdPz"b{G0f0\yT &Kl\R 45akK3^'32}U߫ԥZ.w۷hW4,hO{v}6+PZJDh/TN-k>*SQ^.:MK⟗3sb\TJ{@Mn9taE>2Iv@9:`c2FXS7V3;υ#v@[ִ\4=ggs֪+gw4rXkLmʎ]ڏ { h[^Bö>#TOb"D﫬su5Z{jz IO [kS6}= 2U 8o[D!e&cWoCuwo?~ܡJ92~H3qiꩤAU&gfbCq:j!Z% 8$.@e ykER4(8c6MBOqmHp\zfP_e'aQ2y1l)-cXi :38Q Y? (Z`XX@wX@L+=jf+cy(_ley;Ki?$A O!L LMF.N`sP2쿱%deyzPKD1\$nuvola/48x48/apps/package_system.pngUT @^aAPPQux %Xy\~E|LKpvV x5s,6n ޮ+$e.nJJbiELS=@g|33y9gߎ-`suq?\5v69dq'7~t0F>;,(4!9y{Vj4o`} Ƈ7k( $zꉲwbo kߨxOY12%M wD[No:idĬ%ځA|_niʅ91`tC7СCŋwWW^T$~STMBhvz32A%UƋJMg|T-21)pXR_D2X^K[uh ;lz|ySd^C};JK[j^Nefa2ˊ`J&yzD?X1MY2J2[ǜ c`/51As֭ ^b@QHŏɪwV!X@Ϻrk; 1:[R#V D{ټ>,I95qšM,NǷ6Y>Q>sg%63'S"9piv.XblLȸh'wL5^ {{QUU1 _ݡ@X*3nESxY;T7b\\Ks(L#a`P(_^*m[%Nij͐1ϯD!I*&Ŭ`FDDHljXjbIA=]s`!"<2WaLg(ʵo08\KnnBxh;OLE8x9SX㩉{r1ɁP8&քkсP BsNoT rm0cSJ@?0smfWKY_g@uڡ|9ME:nK=!&+3'- z"!a3)<>Rxcu3v44IZ&,QTI0ZbG&99œ43BSk\WK gT2ic㇑AZj9̍!~:qn^{RJP7dixw5q,mwv^w6]ejDʊtFϚTM8ݩT> f] O6D#MGj@Űoe匙TSFНHp7M0vj1HauyxȐ ,+*d聗=>֞̀<ɰ3z%>,z7P=Aܕ><ǝ0.'Qܓ$e ұFLԿ EΎb=Kk?o%-ܫUU<ۏZM*a7ۃ')Q;KFc$O::x='Ic53 k/{|e(!Rt/q(UYXW^]?JORCH6p bβy"JJׂ|Hb! K2seۇ=onM]"{Vo=Kުw^.謽.~F=hق3܍N, };!24jPH SI:L xjIUB٥ggaғa {[~Iq3s' t$A)<)|T@BOa}tʧ'?SY'f+qw(pju3m%zSLx˨`F: zwvJ*SX`rjۛ^=E=}D 403&Ϊ9?.0Whi&ߩM=Vֿ0ܽ+m݊uҼd]}Xs Ro1MU{jycPaO#5;R40Y)eZ􀹠yJa,^'?/ћ6Xֈ/P6f>gGGƊ~aH>"![u߉ .Ў^'*}Hn<"[ub 4 M P-K>)Vhij*E>ҷir$~B"n(; ^#i>o3Pøm=AjCqu`yL9'ּHr/ϯX>*y 1yW|pYtH*uO %ًz m{&Dꎽ; 734 S)7"m.Rr($֦\럹鯐/ 5D{P3ځ/jf,T/iaOq@ <}8#ݙ.]nm7KI,{ MLR/ZbB ni@c!2Y᥈2)'̺-1g(p@ Mp$}U'"n/:ءfvnht ̟m hְpm}n) '.^ؗAZZ\AJX2YT&hoؗi)1.1;fY$zo'h.!)^at6*5R;ɱgԩrӷ Aט,4"=pܶ㉅iֽhwRҡeDw-ZY,F^2wo^}쏫1D/tNЌt> {h7jTVo~#جNbɠ`2Lbj.9ߩsE_TF(1. )2J%LVXep_GyηX# -*|Q-=,=%e2]"1>EV$%4bZ!9])zW0E5+Z֔d"uC /+h0QzJ3 :c=D sm>@RQ[2%%L+`|54h/wH?t [Kˆ㚔٬%/7F\'*($kfRLW@jt :{4:]:T W׌pDA󤙡"Q[Nˤ ؗԪNmO#"z&ﴞDJ_v\!jtDdt[5ЕscXy|%ֽgiLmBޱ8uJcdMԒrŌw o@?~Xd&M8DSVfq? >cRhE1|W&"&C,}(}n[~djj!ίى{7,ӁzX Λs݉8i#]}N ?YTH0B*Mue ܬ@Q*é5`&Be//C֢'qVꈐnè7ٹASVrw~f pڢ,q32x'"0H^IܴaX+_ ~|muq82O EeÀgۇm޼&FPKD1=l.Hs"nuvola/48x48/apps/package_toys.pngUT D^aAOPQux X{<͈16KQ6%BIKO&c5*^SU*zP)s7}yz?>yEo/eEmEou+G8{]@l.Z_cG%&F\"" H5Bmݷŗ-L7nR%!rFF̢؈Y,2Yph$k&EBKA .}*Rk}m7kϱ_:nćDIR2b*e?4skYli?]ƦIDۼEv@aQe[``ݠ&t+.N!)m~a tύXѢ2nԁɇU>J(]r~ Lyq+0Ҽk{$YT}Tv77kY?SA"ml j坯Uy[lT?j,ʋ(f 0"MeVmjX'J؆ v\ΎabXbX5_0DxP`/{jg|!b>SSilTP.bvz%umO2MgJ żˎ@*WJ:U*:^q(vxʘ0x!LE|лhhu$ɒE?I OV9BGKtP821#6N|ePQ_Hs]hsr$  3s)r,B7!ꐌյ`7z:0!lVX&p7a~6п }Qkg.\ri֩)k!V/K4߲ᅕ\ddmsgApW$$u nb//K.MtpTA #H37ڰ^8.n\r//Y΀dΔ E2ڥovw1,Uv2JA&m)$!֜-190xR%?_a:!.VZ2kA*jkO\.MgUʹ,X,SסP5&fҬy\W&[[īRjd/}.L$--yҲnrrbxgPs1B' $y2Io{<@DqVu,P 6:;} Jd* `xl{/6R? X"(jÂIuIBґ?Q 8\V~+7R ȚFeJκ,Og<~m6XQZ2Ne'_KTvhuѲQڇCH??#o!X22xҹ` Jĸ]qH%yճ46\" Z&]YvI/8O/)әڨW eG-Am#E9+} hHv鑺M0bY]yyс7k1G5 ^\'(qm:>E@vڤ îw`TKGh2u, E'b?iIV߼k}V~I'kjĘziwNtM[Kʷ =TU‚"%cdwDQtYl9%dHDi-ZZ ]Ca@ߜxһ`m|-T hCѮFGMLjoqNV^[S h)|{TZ0?оTPEJan0uE?Ame׍BSID /vL,^xx͢d̈.lv&/t/ q! fr JAgPssYcNvo74@H(s:cOX CPhФwŪ@= y2VagK{YIoO؝br/X+ Ef @1^D@n۞+TtiWPD1TI !sp&؏q/of]N}w]RQWb1Wu B#zY^H<ȸ-n!]Y#d:dZւ/6PtΝe2/hcDNuY𡠎8ε_Ў>.}Y>=v߉K'>j}Uf4|>6d2^2ñlLg)ދtmK]|>sz]hzZ[!kcRŚ>C rtWPcsry%ن;zg^j'vxZq`琿rb rtdtJ x}vʤEw ,~tVt aI2b-m/wdw^P)掚ozu-rMFeQd%:vx \2ٟc }Qhb=֑Cn;l5^7=rӑo*v"0H~rvrzwQ ,}IQWbKJQVً3v&?ZV\r+A; Iv]ی?kmv3q@XHB:C}m _فH_0,}cVi-iބko8qn8,T t++B! 7;,Ԩ V %AS0En?-hV ] rl?ml^k@Q\&\r)::/& Ju~5|B) $ %(EX@H`۹  dPFfIHrb87OL(?:cXl^?Fx>^fA?q? /=Z˻Y66V! pC"}S(&m-,^wGAyKBʡsgp} -K_ *E,Lzm𿢑1p=8@-K1曹1j$t"r-~~NXDVV7w]Tt{/$qZRhBy#e#I⑾ IcX Ə-{LL\|KW4q)]˔vG?(,AILn+o=Z@t,q\0IE $˜N,-u 79[n4Fphw jaee3b9=x҃d&*۫f(+tSM8WHG=rCma#oSR$tk;HیB #8ńF׉p[w8Dp[x15I:f!\e;0u]Ah'Mu)s1VRR0HŎxZ9TGإ z!GB ?r[6}x$ב9YZW# @aufnWGLIȽ2花W)T~n6hV0+*"7mA8nf.\$9B@p y_~޼s^3~嵷B򑈖5,&z=[oQӦS.ܖyQ -|14NrƾVyuor?餏KLdۨY`n?̻H/njDFH)./ڕXĦX᜾.++59D,qPO&$}GLesAD5J|S ~^?8 \D-i :cdyhyCR U hum ̷Ѡ\ }0 VX;leۣat\F/}9],22vȓAF}#i۪ "M'N]9[ϊFf & I"BpU/ܖ[oE$tE?gYZDi C^Sc>X`;[ͭ8sBEv0h?J7q0CE_d~ *ؙԙ6[d%tX~&y}Z9=qDz#M,1^|5@6gܲ:TPdx>+zF@ VS 4T'FDS|a_lSg|O^K1&Ao'( Mp?CQQ,)r0>&g)mCď#\xsꒉWaR(ȗba^?Mf^)](\Ճfci34{.BqKGB׭@&c! ED\J3S˽]GO8෢KbS\4cz9"]Q{;"6r.}uiev֙vFM.Hڰ3Wݣv'XUaa&&n"n^"RBGwwJȒkv{,q*NȀ6<#*18Dx-P*)[_t)WNۚ: >CZ ,NyS%tͫU|$S$n֎iVk[`Hyut-? þ&A#U2|E9M.I.qf2,1Te%=j=0=јF(Oc(uiBGǫ6&*W\.>B%9.T PlgƟ'~{TRz `t0o+$2a?};J9[Lʯ_ +ξM.O겪ۥ́1MWM6*DWOi3 :Y|UZ9<Y E";QslJk~+8$Fn};Ylv 挅!xtFagבW&D:֦ܰ"sF'?/Ӕȅ4mtߢw}yy?syNuJ Ⱥ#ܥT0QH'Sٌiiy:d8k]Ypm Jl+W3,>/lЮMo8^*0c(]q 02|E|┻6V# {Al S0xcLKk}iaqq5lT34U/G0+_>/t}b//e &(ƶg۟͂Bx#sچƆE3G+kkY T͇:G-̇fe-:/$‘ܦ|8pr>^6g$uk#P+&*=ל@F˻Ac6_ʶ&;)FXIE fZR9]Lu;dA_^1ob tYQc{kY|x$Po!FR㘩+P.Œ+UTt %"b)x!%ug-Ώj/yU̴J3Ν'n(=z=x#hbҎ4xX||V"tS񙬶^ۤR(HF}(5^|/KDe|pAۏ&*^XI˯,_+ZG"޾@4::%r#MAi<3UҪu>>tȱ|0L iU&\YѦ-GDJx[Ys5pj%@,e".X[G_۷ Kp,bm>\3)YSRS=}fG-Hyjpmaaa"1{66ˊ\mҒʚOǿ%ZntY?'uSst}XVm]a6#4#펱b=ґ w5pimo)ňXd)sUrhImo(F/he~@/ł=b\K1j?ã蟋aZS5RzJz,g>uMfG@Abb- b&#\YyN5Xiͯ>1a0O0sM̖={YWWK]0jEjȳ޻H:+g޽J>SèG!C4l_mã^ItiڒIK | $b#+1Sm-tњNC4}\섢իlz]hE4;z#=:-3:Fty+PXӏZUSlVd[ }暓"ؼQ'-,d,rdxOy&CAJ]b;ٞ'=`φů,ǗqgBCeb Ziˣ df;[|||"\_:MXee썶6,of &n_ڂ#b? 511 Hyܲ1'62K4$.@7&}d* A&60L~!]Z7ޏ]KˀCA}}}wLRb7egC,e σ:_^ li)O21U]AM: E&?ʌn|)\$qSʬ=mcٖOZ4)Dzk/`^'x_ayeW“'T>[/M=܄ ɖm 7\7Էv7_B"ȟ۴ o'U#w[Ux𷎫cE^lZe6m($$BoLkɹWI$~ߔ(QdLSp/(kR߸#GnF9;8w җC |w6k,1 dhB663T[i{(~?15\7ȟ{q21>ca |EC7tX8`D"n3zXц`vm=m{!o7 7lS)]Igc")ޙmO'ڊ\"S(WQ7Ȇ&w^eOh&ORE i5uK}2(4hH=s>Ь2) bdws=t*֝t˯4E#t ,4G߼TBb-C̺:;GvI=D7quuhSӟ~^DWA8\7F5ƮO+FJgV#p۷~g^cfj}k\dr2y:033O~pG|~1!N괽Юޑ3KSBU ƔVUBXf')ęvv:>?>~t~Ӧfwʒ@ $nPG{VC#s𥳐R4`s6H߃E]f5a@tum7orf%p[=o_^K hmF3 \oKF4y yK.f׈:{$qmW$,t홭o;@3-Aܮz~vid_buC&|%vN.a%ʗ'oX&ugaSJW W, q5g6@'U%$sf{ 3_b=KY}ej}2o[סx:]`qĢ/hx1#vS(tCP g虆( 8:62+BPkKKGfM04GbaޮR.Y ~ϸ|6ѫKrndj6o- ]Y](]bTdjk|9gV% c M"\a}v7}q?'OLq>GF'G`-|<\BY{z=p L% Cwm|?SrBnYOϑdEs^LXgT ;=$;ku)bf$s'Icר|lw^D$RxБ`4qh~L̠gi32qʪI1b}2V9C)=LF1@Yȇ=iJtPRH_aU.Aȧwy60 h0qvZ's"D7PId;> '>{v pH\~8u\}rk$ȷ^}CV4ɢ0ojj"Fn-Y2`H_>&UEAo**Y[LgG;7$ :7.jᘘHg/'y[[̓/d4ZdhXddDv1x"%>R/܅msd2`SXf8νX%˜XU" |NGFOHeym~HTѦ΂rJQJ"!,@wi3IǸW,Կx,d>4"^v8f81ys806 yBK[X'&O2O?pd©"яkhp[v9,s(1Y!X[}еjmȾ+4n6n4'a.mw//2 >36 W'S˷iמdvX2 }QM-G)PUEJWZaxO?Mw,;T9?N{{b]x ^3 tҧ-$33 sim7RkäEEVƌvDpڴ`8eƞHH'NJ|_kӣ^hWE"vG-T"#;NQM%@בE;:ĺXAmFƑ@նч)Ev'5E&%erA8 "׋$]i9T7q%G?7bny:$r/(3e4;h\ :oX0xxrV-{yC%]! 'C@7ě00G>a]OhةҨ>'xBxHZ7/T'5\M;&|#^B",~:WՍ+w sgn TW43&1z7bjT$bk)zIԫ<g}ʱkl3ɚ1-jj(퉍*N&/`$ {Z}GFl /C4 UN [ϗN؍ޑq6TZ׻3ϻ EӿFV ^.gJՌ{Iד$7z<+Kʼ~ 0N]BTg?gaesՑ 8'cBiDVZO`e&mLܾ=Kq\<<1&DLԜ/Q'ԇee"VHO:WcI^fLک;͗,AϩR-w7_nӜl-Ztvd)7sAVsƄ,#ok~MbwtJJ*2(5>|S%3(]ƘbK<"ƌGO f*.qDK5v]BXan5uq4Q K?ۡ 6³ff[V5d 7iî\p_Ez:|~.??0{Fݧ3~loU'uiq\E!59Nuঝ[Rsޜu/܍Aq Q}T'_]9ޫ{K3?7K6x l1ՙPq}9̳"mXxv"Y5:b˳/EfUZ%X~ļ3#1/2<v=wIoNB^t19Ljmˊ]i@9q iFV)|4/k޲׀V4ux}BCL=; 0}dt؞a}|o_dJυOR~%,DŽm7gWRYrtT=39[&mCEvkeCY "`#'R⾚{2tnd.i o-TFuR=lF5mmֈt`1g&83tZ5}DMVIbi:p.&> ۆ\8YU6ӱ_rGNp|5]뇂m 7jPK؞L1X % nuvola/48x48/apps/password.pngUT hlAOPQux %W{~?뾯}݇ xÅ7EC3 O|ՍI<0Vn$36 ϫ,)s[\0o`m~8[9ES!6zi࠻{}k=817uT#Y;vz' ·=9E{i4%(kgNzƋerw߭;Weh[t8ږ9^O*:91kS/ WMA.5 'PU' Y5C6N >G+V# Q,\rδ6rQE)FL}xveTUG@mRAy ]\G;Sn^LUpIx4}SPЀ;aB .㰴任X~N Ge4zFS_s>r]ݖz ́pVlq_ O&HV~i^ZU)MFa{ϰ=kpjذG9q!??TB+og1do!Uc`Y.(Auw $tD܇tŵr/jff]#v"+{fc5r)~+al?mqAZ+iѣ<(x Xc]Ov~y;{ax~CafyW,`WЉngbǞȥ&d #چ&t[lpx'4eU- >dۘ<<;%cĨJ #T={=עri0oXOS UgC.<ڤoJDIpjd-󗬫VF0Xj y4@( u 4iR :%}*maJϊl<_V8]tQ #ʮ WtŽ,#8ڠyV?ntIBPd%/p4U]d8,NǒS]w,{_a%83}~e~E #I 4MD]l/CκNivep|ik0*,C8fRηұt/#.i:[rGCܤ%^{ʪA%)Zq}Tр wLIjN:]ed鑓r,r_z6 _(U3m%iff˅Mzx  QSaF}N~&'X{j/v9T}WFd쑴7E]d&"s*c(]oEIc F o!N_LOC:45`B)"(i_&e6%3M d}AWAoPK۞L1hLnuvola/48x48/apps/personal.pngUT nlAKPQux W{<Nf#\GĩhumrSflB*n4rBt;ΡPRp,Bböo^z?~;1^bc?߭ s0t>U_iPպU;\X Eb~dbEGo+-(A M)Tj:eCY%ҔJ٩K 7W͘}1!k`$j BSNUe]O$,؟/|:]\x/a5`37U?'l;4y\rs{IWO+F$C=u@9:Rϊ;7h UO&0»)pmvn3k=nK:(}PSA-љk1 Pw>qf7j[mz_0IK@-~y %Y6; mWxlt2kt d=݃E'_^uBE TeA2#HٛK/ﯪ<ftDt`˜g q4#<Jb:ۡ1o7!fJDL{e} 1"`#yIu`JSohf\$~CO {=6;}Gn~jB>Vْg1;QĖ G#oo+@ZS31$iZdžZK_{~4Z'svjT,^F%]cRig=,uLR9Fqض$an3?&B#LY0HnUS[?=պ%šyĘtS*;A-2E\{j&Ϥ&T/jX5:a/m$ -$={ F6 ,Br`_/,R؞;) HxYi6 $=ZM)Gq|6~>v6 D=VR$5:ۡ( ҄ [{>^qǰAulyVAaYCҾoG?!~ rqQJU`E,$J5s׮}aP2 ^,o%vphHXefũ8IgۛVqd.g,t-rcsGXN5Uw!vKh&([:tx)nS/?@JVO~&A3ٝ] ٤ ``FL5u { *$^ O6Gh ;Wpuު,zm ehp8nȹ^|Ar&%MK9hSA+j?)phvK"a-Wx١r4-klvJ|뼹uP-t2kM;]#['ܥ /K'6.h>Yp55.J\c囹 Kg:`JsBzeF߼CO wPl66r8dv-gk!Q_Cq<چ̸f6i:W1랶6h= m  $~^-غ睪?VK9!I|K,<깍I^,k,O~{[i^G+VaG͹1],E^Թ0)OX^jt!U[?rf h|AZ3)<> C+_D'V{%^S>!ua򔟂!s܇ڎ/hl\(+7$*\,;N;d&+`VHwemI)^؞z`㔆!Zh;!צ2N+ Mdʘmv^vAc +*:'BuvixHgN[4~/vXլWPP[WDC33p9uD#WERNjflF@g.V{𛳂 ,*ݞfN|͂:o~d:k; $j {EBjN{}svmO-'6Mgж_l8̣aGԂj̨:Q{kݶ:rlqe8Z\ը7",Nҩ\Χi~w1/KI3 >'p-;>.K%9mEyXh\B{I`m۠lh(,ƭI!H˅NIsC01Ъ[D)a07鷓a|RD&xVr ?{>B 7 ͒_^x|dF|>2*T!vt=sQpzژI2_C,؂ؾjat$$=ΰ0a04~q߶l1cɴAsyn}sУHK3<'*O~F7*JB>S ɪӪx) k!S@K=})/k^tyYÈSSd) qKNG{u:k&mkL7[F26\8-sK]ICsjx+P=6I.Pd#2ʼ`_!'rg2 !n<[p]cTɢ<3ȭ{d k+1I)S7n%4Sִс7#JtXN%;fREi-`v_ 1n)W,#[٠cyל#nvշ^Ƞ)Y,O+'KnNaFį*$pS/$_˼_t^V8<>tnndN,׃J)F8(,̀tΨr3>I5"-EE[$M^3c]!evnG\}>7jd)w`LTuz߅n&bglP-@ʻu~m۹PKfE1܊|nuvola/48x48/apps/printmgr.pngUT .}bAIPQux W{8lal%DPqڊ>)LyTIJ=*JPꩧbT!}~}}_~]~]}﫫\ݭ~A{hBzш@U'$0bEhQ 䭇"b#'Gu7-$/RA^Mtk[G17#WQ! G ?gPGl*ɔbaF~眢49?ekϓห{0 hJ$ҩt mp\-= C\U<`oݻ;܉?Iޮ?f,*B=12ك)elo2dYoi]\nn) hDt\ 6+l{wTRpGxD[,75 z.8] o;PZwS"Wh+كz dߞv{^3:IZ kb_cůi}[lUo۶ͱC;#㛃ŪIIh|WPT2R2Xl+6IZ1R}ĤLS^y^ʫg0xD_bBa^Ma6&N>2(!؞.A~߯6-,On Ӿ,V|jK;qoJZTzqp*AD8޲TJ6@u` 4~}1EeVV+'?&Zk$hycclƥEF%Ó .8"Li״;/Si9*UE`?ej2n1ޯ!+DGRYV 'rA.o6 *I^D>ϗAS[5W4a5?wx//'1eQuƻj4L|6- .~ wA "# t6<()q'4zB/x_hZ\a{EsKbDqD0yZL6&d5OKEL\X=YDD3טjS<،De]$ordw<\魘y#[[5&\kb6%uHXiU6#;fN顜uYVtW%6h}DL׫~؞zʊ @PM.n2%?kceq%o3]{#o?-X{ne"l:"Qf^zd},׷;׭1pRm"qOxj3&8ABbOy#aFtSfN2CX{bg!IU?ɈU͇Ϟ؇B]P{Vߚ;ʌW#6Z-"HmNJ;ys?ݼMGOmucn ]X_ŅTZ6.S?F>a$U+)ayA49 xP:h.K13kC *6Xl3 jQ'k E$ KN IW)?|jACOoMňܗLu3(TJh(pT:.y;m7byt˙kםZZj`릸A]MH(q?[HmXzo3;E'sCp︛ZRrg*&CEWTGSGӯitzEJb[74>rn=T<>1g#XB"z+DâYA-89ɑXU:+`6sYzמ*GQulr{oĸE"XT>\\ _H^I$B@_ԥ"vtH]>nA2#{yߏ)9hȟXct^Jbit( n緎f*}(cTߚfay'#$@B_%xqF " LyLK]Bs0W t#`%.Ӹ<=e 3{ <LAD>Tz' K5B|pT\`aqn.E|ZuZwD`\EzspSΰw/v!m΂/LpRDή?9ap!)D2OxZff-7!ڿ1A턽h#(:cd=TzO{*p%6> M sQ\f.'Fmɰb2m_\;G6Rumm_H /M=zSKb^Y"dꪔkSp.hHxJ0NY1/s+/aY#-qL"~ 9 Ն˺3P>Gu_$~9лu)?_co ݄g|Wء$O=gLn܇P&9q38_O<%cz0~y0tpͧHj(Royvlr1t@~vQ[.}PKL1 = nuvola/48x48/apps/randr.pngUT lALPQux W{<~\l.i%s)*lsIR9l"ETf\NF7s4t9]9!r~+*'(yz=y)6@7$?RI߇&Z=F|+QT2u/t{h}PMND>-Q[/No2e o8=/ <*U뭡e$>Ѽ556؇2dU#@oMӓeJn/kkһм#NU9AG+hH t=e0 *ɠ=I䭢BS!Z: l(tw*,3$ 4'2kDCTǟɬowvY,WWliDA[BwQlSr=~68dlb)P` \OtV-TJEۜV7nRϦy҃f4l;EFVar#똻LED)?h˻ %}g2J2b1pX⥸nA9݉W [孮gU57x_9Wq"y,ʲ3Oy0bp]sF,42@4DaQ{mo1&z,LI*1 - :ڸدxdvќyo'~!b; }[` ~A油G4,ԷĊ`\;r9S@u(y+-pUb!r<y=h)/?J}(׷_֩JZXK=\a'*TJ砈y䰂=97dgg#)@3v4i);웙}IO|bV*AjC(wUNy0}̨^{zdIþypRHsZUq%QQ"UԪ=S Ґr%}Ep:o#׳L D2LxՀg.f=q,4n޲ǡ564lY=4fL1`c 8 ,D@?_Jje$V&WvL՜)dc[܉PM:U$SBv #)ɒЩ7;pZʐйDo~AjSg%$-$W';jڭ\54p_ĘQHY]PfPT%:~ ܮj K(xUUBe^1u޴N{×D4 98Jr"]+6[dCm9d3έxcK1)!M^USd{hGkN`G3ф\t.Ncդlp6a'Kgt1I9 7HEG wҳgV좟g/>ur(ٌ7!p[~5>l]$ E=2`8dJd ]4Z}Ť"wG,h"kD/ a k.TsD'JK۝xu|FQ\~Fn o;ːZ70$oP*ғokY+b,Z}gS.fF"6|ҡy;U7ȉO y,ME"Sq;BJ0EYoq:T$1?`tAYYt!nXfOfx'q0c$5JTPP)36>%mԋrȡ<5 ?S!ɾ|iHQKϸ^r;Od:71h>K$׈ |0A4NE;8h5LkQ҂&1mOx+h(U2O9V5!R`vfÙysbr?.ƴh m9qt,BkېruFW%.|3Y7nB(|om=.Ċմ&ǎCOFIJ!DnCb/1*Bמ '9d3;i{We؃-xB99gh_\9`lo:SQ^ ƒ4PCHHi#k-X)3%a-t G.$ DMHJeY#0O^j)=85l]Zi7ǹ13w-=>ѣ(/ojmb+'ayd3o4>|& F@$ X.Ib斟ǃ ~ӆ*&߲U6'k7)@H@}_ZPKL17b nuvola/48x48/apps/realplayer.pngUT lAOPQux ]WiTW}3ax!aNBXLR:ZQIB0 2B**J (a4ZCAI!b nzuQ8k*gt{I[5_ L^ؑ=gwЎ_1ZgI>"2BF0LL"4H׸clp; p_1vuJ֊BȚ&w؁vl+S:n5 #}Q9}BPڕ\lsNu m gDÅrVD~Ѿe@jJ#I2s%O'H)#%\L*"'I2md6˂l P)iE26nhpn0|g-Jn㨏/LF"|v'ynI>1(~ ,c8ςtΣ5Τ3Y\RͧށN++[5g(xV+镏 ^!Zڻd:H9 Nrü8tc!M:O6;Y6Ip9S|IZAlww\OY$+o?~O,yǝo:B{ s$Q px7Weȑ;p&p/nM |65"0M2[09؝Lbh'QeD؅]U[GuQHF)HۥtB|2}-Ӹǘ=M/vvtj*ܽKܞ[Z k^y`#2hOf^I7\6xڅT45Տ6ѣ^?x d/AonmpChͨ^WZ庸 ij]_ |~IlӔFJkM m˘Xe);>:&fAnҤ9qwߒSG; Ԥt[ef5Yz~q.K!$cηmPShı+*2[ďO\?]1zD/2Cra`jЙKҬ~fIʎ(2yL,XIӣZ>+6/bv @b/uc,5C f.%ZyYKiZB9_,rqô&J44cA-ő,?7|=Fcx?XZX>\a^O=lQn^a,/X%/1KHA_a2W>ZU)ѐ-wCVL~Iը@ .g=gWѻ7+x?ì糀V) ^9vnz f sq) 9f٭lCʻlMbٌjAN0OX67WbXG&݂M% hV獗=/G߄97ALtel!VD ?ɷ$>?$=֠k YOڱryGCދg}5w\nY:^[2۞jxUϷ,-pG9uZӰ񁌤KFMpO,-2?'؇VmOjxT|S~OnH&P=nɕ9^"B*/1E^)߹>>5<6Zy瀠`Ze%͜]8JPZXߜs(CW}J00R/l)}@3^>vΥ \&."/QKt@7 vJg"6FTL8Hɪvn{3br~.F2+E*(ڏ*S"f(dv=oL{ 5Kke3h]tčp;8ma7k5_9 ٴK9輓7 JU%tN8ZqI]*Fr uQ##i~iL|̍$m]<o\X*S.ŸE|"QLIJ.`OP Crzh+vLlm /hZW5v8uPU x>XY=Vv* F|3Kq@bwz6? Sje^9;şw3 esaFTP쉠w.!\zqR__kfQ8Ho~*Pv4Ac)7G׷+@-svش6in>FFGF{v^ U*$u P$H|TvGwYGҭz%75x^~.w䪾iL9$\YN6T2hg|}#;z3c UGg}H:qUtSZ,-/#Y1܂)rh#m;ȑh匸]G0>w~%G\MzVx64OB U(h~߶g͌PKL1Tenuvola/48x48/apps/remote.pngUT lAMPQux Wy<0f>IDüCٮ-z,nBJrQ_W LB"Y3=9ss>. *Ku/uߤQvH !T83(QQGE ^{C6 =(Z:ᖘ@zrFh0kij lji0lMHoC:2Į,6ً")4bklc&t#;>nmG=T֐0s~$=>2PkP~x^i (X%*C_KHl,c 011icwہwCn{F=$02v?<{!m|2 *`h*ˮ^ZQ[[+,U]ck8c'\=/z HH  _7jFB/o<0ײxÚm/Z{˨aӛ~YFSMō|,X燉!}R`gD\0Kx6D wB`(A}OQsK sQU̢ PZ%7|ݨ/vyãEO UOnMz5mM18y!!YLޤSSS?ACc]N$":QG>b84a݆]0Yl)SWF QuS #JfI|oI}btIVE=:,xtY;vK?G/yd!9R־^ؓb-bs%U {oCZ-Y w MLjөҪo> :(?^81aA(ް$n|P:q\s:Îvz{[vww ~]ˊ!Y'Na~Tt>h2NTvBQ'nf 5k,dn~^Nrt1%[s>61v/S#ojcF?&w7effp_v@`Sےt/ ,XwڷD1/t,+@6MJTWRuD΀”ǸT07ꪪw;rܴAu]ʑˎ j:Ѝhin'rگw7+!-f'k ٜE/&aaZ|"0RG~Fėr` qX,a3o(()pJ U F9 ^R1 7ARSt Y)Pc )8$r2*ؒ |T-ovK>} Z9w|Ӓ  Ϙzsv>Kifq; vE]J_4'ʋXAsAh> o*jJv[4 Єs۫=)gdioQΒ%)u?Bej\/3w:Hk9EzZ(艴5;BlbxRKU-X8'{&o(bzR8I6G樂(wO5%{/_n k-FmBMa\C]jR|yV:Upհ / @i߽/Y*;JVIFxoAꙛ{^l 133*s{;z&C\uO_|@O@#¬.6/Ap);^?HmFG[3oB I { n< GtEa2hfm`B2O`涣?,LtvVfwК=tl"h 7S?!2f\J猋P\"VMD^@lBf=t;iKPZuU toH̱?yMe"|m̂;Jy`IcsB7tߨ~*Ч_k@ ūEBxH&[fQ"]xJb$cJ'"AVtU}r|WXQ;mz|Tqw_+¸K+<w 9O"&% {j 3yxqYa3wiϐOk|jW꫍coԬx=8wX2CK>%~,1r rù/=Ekԏ]Q)c*l߳E)Ѐ4$L7)m5nq v~;6A`i܀~HY|?h2AWuB6ۆ"7h&Zw q@' m?U$Mt:]U)/O&>z\.ǶBw@+U|>ŇhfG h]V wkE^zS୶ G3jUx&fhF]D>)5D ֫l_jVnbѯ1:'a/xQS$@A!>fnnog]]]e5q%S ,k_)!ɟ2bc/]> O`sZs=VsM$*:VU=0Ur 2eg'=ga'%o Gz `/5kv@WEwa۳M\ҳ,ekנ1R}V=AL#bQyeGG\*U[ې;H0ꭐ@RMrbi$4Lt]{שw%Lߪ]}_,-'^3raZ}{YVuGIu&]3 tOU}ix̡dȶ+aۈ!e ?4)A_լ٧KARmPiuyRհT6z":` `4a7Ak I+_C[A>JJkƃBϨj 5I7h<4)l (@R4crLu G2Ր`"ίOfh\(? Q:7 e6,ٸTu5zz6u\S@z)@> CBM4sp|o<+|P4A,4[{ދ$e6  '2 묙-M$RAB  |Տ)?7j'L=$CT U2^ٯ*͖>{ZoW4PKt91x(nuvola/48x48/apps/samba.pngUT gUAJPQux %W{A~[B7;FܖjkCn>08q(렃1Q["9ɇ< ?ƶw,FCC>}c^~uhXr0=SRz` |Ǒ!HZỆSaXW^-9+HZuܾ pu5 DT235Usb~vA<)%4nXAz ѳLA!guuW 3Ϛg3 YDv{WCcc=v9BMP}Iޝ !0lF?zּLrvS'I W Ǿ_P dNLp/oe]*F@XN#F%XCQF? ̟'T\Q8ɚn5gJ["ǔ=u\Ư6?}JI1,Q>~k.-%xr,Jd=>eCM}v1E>͎>s7-0sբa9 CQV,8/aEEs30{g%b+ğWs(`X@t`{\`x~, jOIek :8u\R̙VMJBu8}}ǬW,[It8ɸ^gsK:?R:=Ma20U|VU?;SfT3IW9$g0C|E9WV7k]T6 '͡u!$w,hNW[5IF32c)/8?B8Q@P~vp~WGxy80Ҳ /b\,^g26ŕf&%W/BP3dIPNΥx; Ihܦ̘٨>Lb(ԻfPW5:eB޿4׺ow #f'>LL@jK@׺R.讒Pv{,ԕI&9aw3HO?solaYPG?Z>qp%gOgфTr-B}O4icɲwV&|]w&j]kss--C[s7՚(Y.}#B4qQ~nɥΣL@AFfjj}%.ҀkmpHDyd|^'~+Gxq vl%~I"iRЏ\;2,Q7Siթ }٬7W~ö/?ZΊP^D[çp]iA%+H'V_^r׋d,5mCF[! ,ކSyɃ8'F~bsf )), 8Kƭ f|$dJXj[yZg@Ox}×Ր^-C\vP6+iM_\6bmzW>` ke _%|,>e1|m氲n9`U|@kF EKy^qN%\ؘ$aq'OYR̛ W TEJBoSRfu8WXƃvv]ʨiWj+tmj -e%=Cq8Y=fV(ݹ)Ҩ8)~V_GH qFƲ""ERXـPB E#˾nfAT >߬{lYEIFAGk6t' E/g̹Db?СCټq+yƈfUϬ HZsSU.fxPS-Y ZVzUܾqHeQWu4:>htJ;MDb4>v]ӡM;at=u=!)38.@wzhp/PETP^擺Kmi/H%b?b_7YFlC'[ 6TXˊP9+rb雳?NSz%bqUcJϣ§yjNRE(Ixm.#WwҒw]8^rb zIEO_5o'jIGye.#pM0uJTZ& (2xǮyKg݈2r0l xXuRAP*:*:pR野yDG7 zH;Vr~]d+9s.w6#{08@=I,U>/ Q2< ~FҰ%H(U< W]z5-%nk\ry:10L h)lee=)rO1lNJK.kl!#nǡ<#+C#i"~pDx$XL$Ew\^M1&:4,">η^r$Nmt,,9d!RO/(|K>BH[?[ֽj{iwt(,#8:=Ņ? km~pxڀ%\y ڭL"uz-QͅpGvq}v}cn>20iӧk?q;/DVbkc\#s6Z.?{B[O>~)>G`C%ǚ}UkȈy% M43ZQT~?xVW,NN6·?jvug|%^Y2CL]G;w7ՃKK[0λ b~If9cagSL}@iٲ2EKmhȸ8S'c#L"|Tnl80vD# FouqZb0C3b[6X ^]/(X ׿(_F?q@dwz\ (M0!r¾/1fp<6[f{ָ:$8u6n$^?d@qUdä]w `; xx)`uOa)uޔ]yl uWH"pv62SmU^U4]Evr);*mVv}O(N,o1_˷gp75s!m'$ttr5Ta!wF!KsrłI$@{nL?PKL1?) nuvola/48x48/apps/sodipodi.pngUT tlAIPQux %W}<n×cCPQ)c!6Rғ72z#ٌ E*ܔR{umT^y ۾qu^s>p^l 0628(pcN~ }n We^4-U/=Guk\a;φ'0Zd\t2< L#mJ7B AI d##oP7[!?8.IY-fOycN"*nAZ /ɕ̸ox |=1!_qpWbNSfwC֓˪+=/-T,(G\lB-"8_}jG4Qya'ǠSZ?bõNP@s)dkVk.*=m~}n4 3eI)*,P|r)b& [> WnlmOsU<(^7;@ ҆Í3М|w격h}ⴷ0Q&cYVU@hUբl#g K7 (zJrt/ lr< 'a'lr9)FS0\%qZɁyku`s=:_$~"Ùθ=?Yv&S9W6r/ xťҬR^ani/ߚEt+v.5"gǍw8)CWVmkjjZY&J<_RX{\M ^"9IuX߲N6@JQ$k#&!bJC95h6 U9>H`!7l˄\dW-Z*.s!\~nq`0*}' ђ''Kk ہ; gZUF&ob-!y9DTcUlZ%Uo`.5:al/oGbԋ\.Y3h2gGhuU6즐)G*P&(Um23&}FBCcT0dww3e8=Ul_&:XMr~~\C7s*sEr~\ `e` }G#1#>%RO?MӼ:-,eeԇ"ϼ㪪@;hĪAC r0Z w-cl^o5O y-,6F<ɞ]7HD^37jWߗlsA 2jz꺢kqי֫W#,U0E[0yJZp&¨PBsww^ o+(|D"SJ8bt` 6 )y/6f"*ގuAʢP 3횳sQgX҈vNI%_p s_0Ԗi#;kY^3*"Dbժ_RCf3;$w.KH7)3||ΠA YR|bYAV+F͵=x":ۻeyz^{[C'̲|<. ]6!\h-b'%6v1}1A??? !2mJ՝-]MzoO=JNXuW;!J0g'oӱ8Hxo1hO+>O2L%nSpEk׽E=!/nM(:zݥE  ̝JB,.͔n"$etw/NU5l{FeIl Nss]czRGxu})u0:Kը_iz䔳/I9yWYE*^ 7N77J'UkGzjҡ߭6D ogk*џ}̡P`pƚhIvlϴ1L.%#P2oK9vH[WuhN+), ΒR:45s^R%4-3pg{@ǂ%.i qv~*3Hw}?O!g.e҆|qEZhf6^Ivx"o5>+3bURu_N1Uc1$K]뀽ۜrBtow}OG\%wrSEt T/vlPUӖٯ8?؄Sחԋ_MLLK4Ò yZkgLɀlef㸪D׻_>N><Ep] cDE]׃ez)1rTqӪƖpj\+7wlTvLIŷde򂷜L )W@ve2uo޴D]BS`Z)ub,`Y]!?ON\(@S:K뼠:I7s\V'GX,RxS5<liGIt R Fᝢ9_A(ӆ;O5\Y y`ED?j "kmo+wcjOJ`lAPx'o|S-mI qd2?kH&xn$uKy}ˑ11(nTYQ) .@Zzٗ)5W),TCo] 8nNoLhbJdfeN"t񃝰CVZX‹Gz/?; ( 7`t, m12 PK˞L1 LB h nuvola/48x48/apps/style.pngUT NlAOPQux V}njה|W37;ŭ a]ٛ[앑|2}1U nϾqWчiIAq Oά %{lA&G- |&d({7t+TWiOU! Z,ȣk]iiL қrJ?.ah' 9s/Q)'ԟ%).`M7RV \it.<"#EUc Y0L^ix\_ Wy_`Z@}'@7Y<`ŌDŢè\fx)\O:U% 'k 0k'q8O- Icȹ:<@牊"kpYbVM6:/#MhS wFl#ipC`:bp]2.=s˧fۄuV +)͌m]=a@τPV_kjC2]T"s~[o9|վwfE15ޚg?@h77"މ_ t<8B+6p>J*Es]R]i0/h D%G+05W{3hB/S؊0"b^Ҋ)IU8$g_(æ D\ם ixVhZ)yR20gcӺl+Q=5V6W*0 =q@{=5waҼ{6^_ " ı]j" g{S}d6Nt%tV=ĔźIyBH 5*]ٰxqw׿M,\]W CYXKKsPrH$R޹9 /n~u\ڂt| P\夼_94cۤ eitݹyBa;\=(TjX}TxnJD}{-5d\/9upʂO1kŪ|J6Y]EiL NNfC;Bo%C^FO\o<\buYV^;LG6dM>D+Q_Wѣc e Wfxq4O ɉ4G "l)~(2VwwsP'Ht;fLU}q@cNFM 8W/ӿ,In p2,[I2نA ;J)TB +zH٣N4,uһbqĸo: `ׂ7fr.|KάiWɞ?;?{(VntMUưOPb;y~=w[) ]hibo5D,.pCߞqɄO.zg?fX/ЫzdzO*[3uZ9Ҿ!)1l20:2*pKG\ )@4l4QyuMN{ g rZRmkg< i8|a{:7n`z8[WߪrXQ>鈷: |!\\8`ֹ2/꘴~AoPt:kI\2~#dxNl"/ڞ>: %kw#=-C/ IQmu)oR$OvF!x()* c[31O;[38xURI iðCZeζ. U#aa0E`l(恤 h?.V%Ib&ݹ֩#-jwP&)bi3e6O_ e|}e4X OȽxkjdd`8!RRq,$FR&~Gz㏴`yN%{XYOjrqNs-n%{%ٕx̏! & 17߅u*W [5]8ݸ; rCm/Muxq_qcIqܕ-[k{ŷR'"%p "&09ބ0[@>.WR3z (ZfHͪ')C :8a~Ϩ2";sWԙT1H )M3Z̮c`zTv|wӂ'x1t#?1ru]˒{1pU73%5kh5C/(֬p.wjM1 Í)\_rTbVcG MΌ~oG[b.~@}Qr2z)7T|A==wTB ӆV#` Fsd' 1r''sxh}?p8ݓ6f4h+)+?o VkvĪLZ>CL8KJ>YJ=.1x]ZѮT@SEzlB_:k.Ak+TeɃ(%L~$©϶ZfN7aZj_7o^ 9@K.*Sr7g-zky4%7o)a|(Y4X1B1$; ""]Emj} =v~<[N6ؐ4nâ0, [ j -b}}C>)_n18W\:_HvQcjF?Ѹ*[X? ZzNuda劶η-s>!c[,b0p!Ɗbs}Ѫ= hBLus.Y&sԴ Ȃ`)`=M>iW4~Q {}~ӑNIpP$^qN+C^+D#ɩ$ˑ4q7uŢ9EVHBEtp=y'3$FsO.JG &z%ȁN@ȪcS+VtH|x,ihJ0E츭"BKo{ՠ߈q YI*%v\!l/PKҞL1M nuvola/48x48/apps/terminal.pngUT \lAPPQux =ViTSW}/ I AQ0(j,JbLE0ѠXˡH Z+TT =k=}͉oEF׆"NB2`n_FS _!a4/-'vD{a[poXeGPyeiʞ{Y|>mug+ڀ8(1by3|$n3m'Ÿ Y,`IFi MAMvDZ <(臒ҋ=:%'2= Zo44aaZ,D._+ΨYڻpNj"dg ,[~5 1<LJE=8!ݏI{EX aӁqqLtߏó( uAhJG>0* 떬mO*)iOiӛswlZ5%:^T۽#t|HB{y8=uq52M lKTSIbT.th77U򗺰5gGCJ@g3݉zCCsTY%æ mfƂTC:)8X,%Ea,Ą%l'΅p@nO= 乲^wո mtZ qžR|:CZ/sBV[A&Q0lmqsŴf7GgmȝFS.^l)L WQ(x*)ÔԃQi1Gh(<| 0sEN"Z9i]~kwwxpSU;YwF`H"Xn."_w_vPr6Y{[97%@Kmo0[]8 D_[1tU 8)䴫A Gۿ_0<1$j,=ѱ?)4裣j_%-}?XMC0aN)~uγqǤw4œK㾜'Ow)g?ʵ:I뉖IܿaaW5W䞚%B@rz??`+o|L [4~>kθ0<،}k@?q#A[ԙ੉|rI'w;Q=c?,uwz^q߃oe W< O?GwW(|tU2&k'kjom`6 E*|'A_HZ+A)#UM]iGD5 e>T`@pk~Q9PK՞L1w  ' nuvola/48x48/apps/usb.pngUT blAKPQux V_/&eMRk*P溸2uon!/ [ՙt4@_2[l" 9?<_<߸:su}"G'ۙlž pMٷjrqd쌜L5̄LnܖHpy&(N3c'8UDW@b% qhM̡A>+ҸBv|AZEp$${<Ȫ(`g;o(R`⥝G<8E8%¨Xe/)}TrZ>2rJ +uS%ySs8{4̙ՐTΥB=xъ*c3j5(_5C"1vi} ov*/+˒֪\!/Z$Tʄ<:Mtn/ruI&_}~ް z$UbL'tU!`n2P}sǝpr H߿g5'V79o^\r?ox+h{Dӛ! %:" Do drt]H J//U6|>,R=QhI6`xPLNخM~r'\É&_| %!lc,h%'V0)ʂvZ^G-1QȕAuS-E@Qv Z{."1G.QԊiu{,:Z+`ZlA+;'eS΅+N$Bfiy%VJSo>FQ.mNg9]~r*aZ)fG6ֿIo%˅O PDh30  G Z'~/z_${! ڗ3a0F!JZ7ș`83"79*l5 n]lUE ٭[T>xTxzMZ\n =}s&xd;|}Dۼ-r, mx`}l$CAX3j< j9-3Og%Wq~.ܩ;\Vl7Ծ7Mp`" $}_#*w[3?jy{^mXl}e}4迤uf 6,/?d*%_ͮ^ݽ -ЎUӱ"Cm拍2KSVVlX҆No۫'D;emW&j7T4\0*KiT-h鵭MwMy7@51@[W^.)wqq)|1.\JŃ&0|2a m _ Aa = nׂ90/jwn6a=+G0[Rc^ۻXO>zDdA!;_9<4ПnHt͈'|r!lsa>|f[[vq3g?(/UC5jblj9 C3ٿ7!!888.gLd6yΟB'%~K<ʦlel߿%txR8VK #m(:tս+ժ H0O4CTA`:ےbdž5:_PKL1Oy 4 !nuvola/48x48/apps/window_list.pngUT zlALPQux UV}\~U E _I_իYskSt*me5"r}q[ڴLL]V5l\(sv:<<Mnt7<YeZ$_cƥ8ac]v= #'|egǟ䗋"VGŢ,Q~aEـ A還 zP3@.F<nuPT?&&glĭpHfu EqYf7*Slz+ߥ>ҁpaƳ<-lo:CVg%ƛ ?ȩ}鸿7?gW_;BӐoh􊥵Yw?I5*i7y{XI+Qv U5+ BAȜ",>mv&<)OrT%' B-cČ8f: (~Rub!\'M͛WZ%&˔_"y δJlp;kaCHޘaRDj) n9[,X&}O{N4 WzzGe@p%)^MX.\jD2 Cx mG~̓5ԌwA_ 2c@^؟r:VR>F?꘧?Abyΰ>uوJV/!ZW!#!IAX"Ɵ,DgvC^]FlɱWi/09ߴm[EM(#s@a<Y LПL3Jy]wɯ#R[9(;17 SݗU^2 }h-[IX ] 9dEs%2.n"u-wWT9tjA'L `wHE;*W꟠0jvֿ 籓b1Y}8Ie;< N0Sxl78gN 1?=FF?0.8ۖybIhC|}QGu,hi )<,Yѭkzxu_BUqup۟NYcP@uW-ԫ,\bϤP$DV9|$8͠ h#2J?*v)Z]`EA$)o RH^S),U7YϏhmZs~C u}??I||Ht8qGOGH,G&-БavtKr>%xw韾*2vRjfܘ~9/}Ԋb5a镻U\:yrb/tʞtȮ~E?;)aM Bu/^fi$QtRq!%C fYi; AɢiN^2~ pkXkZ^Ւ짲ti7 .u:4YbґJ 䀀H{ITyx8)B^Jt"eiECFB[Hڹ+?7㇘%Zk6cu_MJz׭\*pNp /#e* ;]eZ{{^zt;D>Z:ciwW8Ce&&u5ldpows| UX<]{\95Y .֑RIK\ȭLAZkk\a3%ͬg Wf6$lQx{NH$m%5Sg~} C:H١s H/+i|r?i>3ϊr-``UNHP)Az4B„zOQ|:~Enѳ*Po\d@ g0mQOaCSDh7` 'o|(/PKT^=1 nuvola/48x48/apps/winprops.pngUT pZAIPQux WyXY_^J0E/@j2Gsl4uF@ť4r,spJǽrEQ*Me46y?=9A?`+Xc)_R3#V5F+ .zYS#RCؼ8̉#/;>.8~~+]v{1C`. B`w7d@kX0)iѰA5gg8ٽҹC"L"N˰ i9 eIܒr&6P#(pBMz/gI~ SNӜ<(0Ho@-l*{rVdGm>|>nT*1/`?.~Cl4&B;BDUwg3LsmEw>]Ra`42S[ %藇8vnD1LCٟqE:b N4DtAԷBCx]bkl{gM2^}W pauKhDa[?q!eM:ǯH/oJK|{l5!]X'/0|-@u} 8h欢:4RiT,bZyq{ZcV OMZPeĦ( @p[#u!w~@"P66U׉$430bq.{%x/c̔~'2XK4z։]WCSoW NeO|j4'E*!(3"kjnZ&&PRҨrjWBK;9@chrZ15IF!T^jVGSARk-F10 %Y>BeO` qjQS[N/ևMLA߶i*D <溎jSM_=@n}vm|F9v~1k[+]#H/8÷y{E#B`ȧ(4΂ [5jA!x i{/Yzqy}:~ΨmOIMwh(nUJl3n5c?D*|0bq:Wm]B7oBgsUռD/E!qG☃^m6MFؓoEWP `-#Êu2$ $[ $Ҝ>tpBk`ElM<\d~,ZJwK|@ٯ;gqBo;@4\Ǻ~V~DÇ#6Pn ~4C޲^GpA_| :b\$7M JίMĥ1X|Ki@\ĿXVY]sC]EΧro9xш# *{v#v&Q4#9-ƶv2S萾$xmqv i_;|+L|t5;#O2| oyqr֯ ;'[Yn܌WMs"I~qjBdej%TbZŞA:a'bT{&pYwk0::_j5sov`\Ʉ ayf(1zJAlDbYy_?/jUʧj­OPUm' fa#i<.vM s o;oܯ2.:8Lo&fݔN.-{)V;-ä:,t jc*;Z<ԅ!ޑ铷Ɵxf}w7<(t=uÂwfM6587Rk풧XFN_؊>+1BKzwdi)>[ys+دHu4~s SLJFnwf#2Ю zܻb%^A@$ YC-pF{ gW__+kv7_,gӜSPT,0%`.*IR)uH0 cmu0;g"[d0 _Tt7|reuuԞzX]p b3ͣ]aCp*6QmQy1[hXٌ sc'c[% VXSї;uu{4En>xJBjw9i,`D ~yfHX|Q<|6G_B}k4"Gt=O6 UoȁġmoȢiV΂KxWIH2Rc_ $^AYo[o2! f߄"|%.԰rWKc'V,=&#m>~dk؟=" ¬e21.[B#b_\ ;`(d'MFf|4H=4%ʺwhZ `^=X9PKL14m nuvola/48x48/apps/x.pngUT lAOPQux ]W{A "j E*[UJ7gp0{6 ̒q1߈41E+֔Wsk> 4ˈ fJC#CP33n~s Dj=y5r36q46V6DW=RߕݱȐzC#yzMagEVn^3a5oywb2?]b<yQsX|\|))!:OzQg!T_[2BE"ف01SYU[Qp" B+2Yh\nsмO|4sn: JJ~:Dg'Kr|u+FM̤N iDO5YMɹ9)Ny"zdGt;2Wa܎J8f53sS1)/N6_Vh3״B 8 ("9KܼhF +WSSqb2&in.>VfE/7^Y3@Uh'XoІEXWؼ{~xt/FA=lm㛎_-)-,fG`6}Fbւv ۸cC4ᔑLIB'Đm8b!VS"-&~nI1ѷ%iEUER/zGY-R.}ƣD\ɾ:D280*K[e<3޷F+9(xJKϖL buR=]4dIshu'v'c>QeQd\GdؠG'J:GxXy_ >YK'Ҙ(1n&Y|CALV:t]LQMhéWrSYj&v똔gkn8 PP_7 ~̝`ടDUSR4ARxqORa3}=4e 渺ޞịO"uEIT+ʠ^$϶_YiS`ۛjPd.5`Co,Nuc`vmBi]mAKsȱdM`ckWl&=vZnU ˱k_5Un{pYB"ACCNV.\ŵF ujF X IrϷVޫzpDF̯}"%y$G4ИbF)av+N `j&ބ?<ؠ(rQ_4fsDfT.۹LAgfAOy we_9+ |ЗF|~k6ILzQkI(sHO"El@LDF l)* MtX}CJYW^Jf$Q"}Uv#͋)5VLCl0+ʿ`EMC+kԲ'%(~P>ƿb/D@KQ s]ƾ7K sVu$cf%33I슑YB #&#:I?Wӹaz@\sg| Ԋ[{].5zT\li\}Qg6g/!BdY\9*{N@מoY}x#:d3gK˒m+oybF)PUCPjϒvH22ܵ?>i ݀Q(xZ2,*<ط4V>VH9ۓ,pF|Av*-l5vCOэo_ێ,.sij<=9(ΌDI]jB+19;zU-vNJ l!j--mYђ Rt#?Оjn쐐 ]@X9,gTgpbvGMx쎟eCWeXԆ`'"u91K 1_v4;yp%EM񋅪߫(vHAlR4 EFfRDFh9b Ld®yb;#ů |!p,8 ~Hpa#u1p3v# )ڟK[<ACGv =W{}d(#{ѩ0_9xgoaROc)ͫ~Gv q/9c$|خA "j E*[UJ7gp0{6 ̒q1߈41E+֔Wsk> 4ˈ fJC#CP33n~s Dj=y5r36q46V6DW=RߕݱȐzC#yzMagEVn^3a5oywb2?]b<yQsX|\|))!:OzQg!T_[2BE"ف01SYU[Qp" B+2Yh\nsмO|4sn: JJ~:Dg'Kr|u+FM̤N iDO5YMɹ9)Ny"zdGt;2Wa܎J8f53sS1)/N6_Vh3״B 8 ("9KܼhF +WSSqb2&in.>VfE/7^Y3@Uh'XoІEXWؼ{~xt/FA=lm㛎_-)-,fG`6}Fbւv ۸cC4ᔑLIB'Đm8b!VS"-&~nI1ѷ%iEUER/zGY-R.}ƣD\ɾ:D280*K[e<3޷F+9(xJKϖL buR=]4dIshu'v'c>QeQd\GdؠG'J:GxXy_ >YK'Ҙ(1n&Y|CALV:t]LQMhéWrSYj&v똔gkn8 PP_7 ~̝`ടDUSR4ARxqORa3}=4e 渺ޞịO"uEIT+ʠ^$϶_YiS`ۛjPd.5`Co,Nuc`vmBi]mAKsȱdM`ckWl&=vZnU ˱k_5Un{pYB"ACCNV.\ŵF ujF X IrϷVޫzpDF̯}"%y$G4ИbF)av+N `j&ބ?<ؠ(rQ_4fsDfT.۹LAgfAOy we_9+ |ЗF|~k6ILzQkI(sHO"El@LDF l)* MtX}CJYW^Jf$Q"}Uv#͋)5VLCl0+ʿ`EMC+kԲ'%(~P>ƿb/D@KQ s]ƾ7K sVu$cf%33I슑YB #&#:I?Wӹaz@\sg| Ԋ[{].5zT\li\}Qg6g/!BdY\9*{N@מoY}x#:d3gK˒m+oybF)PUCPjϒvH22ܵ?>i ݀Q(xZ2,*<ط4V>VH9ۓ,pF|Av*-l5vCOэo_ێ,.sij<=9(ΌDI]jB+19;zU-vNJ l!j--mYђ Rt#?Оjn쐐 ]@X9,gTgpbvGMx쎟eCWeXԆ`'"u91K 1_v4;yp%EM񋅪߫(vHAlR4 EFfRDFh9b Ld®yb;#ů |!p,8 ~Hpa#u1p3v# )ڟK[<ACGv =W{}d(#{ѩ0_9xgoaROc)ͫ~Gv q/9c$|خIDATxZ TWڎ{jhV(K\:(Vm;Ӫ3g3=3  @$@w}_EW(3Gp~_>Q@^TTRB?d>:Fc,"Pȡ ̷AGFbEzL6ua+ٶmՕ|%7O۾=(/,,Q\11ƐdhhV'2$ ""q JP!!bREPjPD?! ~~*AO6nWW; .yᅾLJeR={BNW&\r---V477~tŋ98.\qysq={̙38}hhh8vؼYvkĈջs>JH0rݻ'Op<~=Çܿ{.ܹ۷o֭[y&nܸׯs\v W^:B8C88&"Zm ,Xe$ܐVn@a //"ON<ǏѣAee%JKKQTTfh4B#-- HHH`R2֨(ZCVZWҭ[:E 00ANȫa M1WW0| {2C`% |k$/|Gy!3gz3S_tw|zCbߋ'$z`Q0x(-D 0Xㄕ +v# Gx# }=b1-zD$ LTOǸxYeQ!v ;z.\.DExN@䴈8|XcJˍRpΔt)I1;E i RK15VWuRLbVj)FFH1,L^_:y"0(ߌ_'v`P)zlƊuN@#|hv|Fsh|`)uh;Bvʕk-,X怹),X'8>=i:{L$ LP`y?f`dt !A10p:ۡ +۾| ./+^øwS0W1j+d^tb؛/c肗0xH zc`u>{z_zzO $%\h[$D3(OԩS8QwLUUU(hyyy0L`0@JJ {Aff]&!Tb==Zh==foZhh#q 2ν^{yJr<Ja8ţ`K"to{(??#Plcȫѱ+ J=SyJ4Blݥ2:?rn A~;G#??WԼyhYƩSoyG   & |K^]u3J#=b qʣRbn6vކ PfV{uZ}ќO /z$"0PhiCN ))q7kf@T 44baٌVjyQt)ZY C3kkXw'F @5@f*[FBB&?:F.)2mx⯡PQ63GxSWT drٴ 7<=aY ;q||␷RS 4!XIrkUBiiBغQzNJMccI=QfaSfeE(+O>A4=k!˗ubj#dvab3юL`Q=5]!)X#0i;2ޑbikO ]#F@ll0mk<Y=ݨȠ#@]]{ZN@t_26E%Tzi 3 :E@yqh޷Um2љ}(RJcv/LƱ4~Cο]!tx%T:<ÌHá PRT-QkX N@HPfII /ҧ5P"IyT,윔 򫸕}!:qf?;~6Խ{5R!OO"PNIaHZU@׽@V\v 4'X(_%oWC4"f}^8fӍP|˰x8:,a$pNV}}}yP "@il0Z:!d,բu4ˮü8A>6h=v*j|>|7_yU-AIa"ABNv:0ʣ%ֈ׀-h bK{}r:b^+?)jⲺ<<81Ыm<(ŀG)h~<4 ;;4RĈTuu5g~ᐽaDpvm3ְ=Ǵx`&KR]' G"A$i$4=]N$^t?I/ݧ@+.aE_/8 sA H*L9lHe؃3r;*Xˉ@|F$ϒ![J#szVHe})x?c4Mh܂ťۓv$9Mq<TwдI5AMϏ׀0NKYJv$ px1xŦ%/yu4nZ/~d6" yK'BdaIII5QSRڈ5&?$) Hs-Z7p+n:y#sI&ySLM9nTiR0OEZ J\jMs+ԡinwHNNZx2@rPw1ѹ'I$JdQz-Pn,q}F5Rx-Uh\͔;zYa7X52)R'1$ދNK&S&bt)e>hC+U^u>"I<“Qyl&Yr\7-]̹uŘ;ku,>>j(T2:qنRvNQXQ,of%uѦ4ssMg`HD)ܭUpt[ҧ%0bYKmm[ "::5kBqq"6Ju7F[T*q224>8یSuv:$-7nӤӥ0f0}lumnldF 'k*'R'ĐR*;֦!e|ZѱTfɆC-5 +z5K2, >Zx.6?8e3 ,Y"o$=ziӜ͙㬝3gq{=++fZdfxC*]Q&̎ c&a,`83s[tEXtSoftwareAdobe ImageReadyqe<IENDB`PK}L1Honnuvola/48x48/apps/xclock.pngUT lAIPQux WPM>!@JI.RlI]Q@DD׵+ * -1t A $7Μ{{=wCػgokOoBrP `EMWFvs(O$F c22C0!qa?%=Q0xr+81?u5-9t$+?51%ˊZbA&ULIYv83vD`X O7Õ! fz}׹ܲ;0+G<F-%n h̒*^֐~# Ժ,?ezg`tBq=sƈ5 }qA3uu  KB[G|], &,Mѫ ps>Y:g* HhqqS ڑExj#DB7NU/o  ʥ)ӿ9(3&(8(*D(Q\XosCXà[Csu r^y }|>?}VN )%JB0tc̯@~e &S@-7|93iGiQhjt:չ//"]_>5ۣ&_rU\KN`+PX.!-ʞ1ڟϿYY[_,lkkItC )xY9| 9%ULg)<×b0vV_%5Xr5yMgމ\L?\d|{8V*o27n"J~|!$쟄ϔ 5A55*6Oy%zԥxpv z+W} F&xn](Ry2ؚBt>qRXϊOZ9Vd&\ JĴEx!x FTh.zy ~3mfy7obCFA~ɵ^Z7] `<B ]m v+P8)ـdv}']&].jO& A[g! T !M$^GJR߆Yu%)J1p6>rڕ!$.l(iw>mdjesJۚK>m=-Xw*rm~l06EMŸU Ϲm WXh&"qTѯe/!ZHn\ ;D [[P1/O0/ah4DcrtvuS[tg,"LfaqZGg;-Z ydڻ^ZRcYBar!#i"U|{BǟB),3~JrJj yQiL diB)b4#{-A?3#nK0@ {^h(),* Ԝ*Y7&OG4kq[y#h0l>.b87*go a:`Kzn7~|hoh{Gj-΢ą|&pċFsagгL[-1]J`O,+IVh-X#U$:cvP⩩z1aJy[u!Ӣfle%]knTî˟; } ~,؊-a͇:gG|Ƌ8;afG4s /O׭xjn~ϑA?H/*/\} "ӯo*ܳgcChyZNޙ qA*NtvCʳ ~5J}Lڥ\񟯁M5j\֓İiշ/aUU,x{k[9h`˙ufe)-xub?bK^ !.Ys\G!4;mH4ju;1eh2mZ!f wy*'2L`ߧ\x+"4]xL=ą){~B_VfSeJ R"GooШlY>9hLә5rCkY˧#߹ Q#-l5 sUj1w/B1`lɪmd$ Ü5Xw+?Uf$ohSӧ:Vb{`ֲ῜Ŋ9*AI*[Ivmmϡ =Mvx\JC"W5666g1x[6 :ܧn#X= R1".vÚ[͘wpv IB>V{T„|Kp;{&]3{o$5o`R yj9KʿTGu]z(+ H4[NE붦@*ΜV53HJ=);4}X `ϫ ,4_f|Lw5ʵ0Q&~)[7a7ί|̈F %h 1 /ˬ[\vIq7jƊ䋝( %FD-ڌJDCLC d.y-P{imQpL8`!!ejrqX1)jOŞ d*W)Ms4(wxH:cG*;˨ǸPxuoBFPRuyTdi>F{7saf(Kr!9{ >FF_"ЭLaHR#B9ng'PCؠks~m<#/&pn(qRGKw_zFqsc⇇@[ʘ2EK`._Z{UhxK {5l{k0!eK!^VR[7BbdC~TROP!Żt4̤[TK 3_|^ `A.j`D{hHYp}Z?tݘ'kz"U '{`TŷCB x hj@s}=rn2>DbnTvu@|(%4!GV.+P8Pı*:D̍tbH='ɚO(d,2>Ӗʥ=ټw%~xV(x^+D߬be7QOL]A/_2*3rv\0<@=2%?V"VE+x21Hq92ݴR_2r UO(EC tVl褠rw1ħAR m&^SGcMl/zSvsj) Y|#זV]NaW|pAw5YS@xk*)~$.Ġ&8|ô>MzBz&g9eC<_ԢLo+T6Xi6\CVj)6EP'Vܷ`)ȚLQޖ l>fyx} xuә=kޭGhxEn"0|3bCc]>NOoOEe*Є>8۶rS4JHZv ٤#N_,ں#N~$+ϫ7QF}"VwM:$InÉ7. Wcgeo- *@!%1XcUP95OqPk1XfD J*F0cXP w#PT Lezo9G<'dݮlL(P;\ցl~wx.+4Q 5R}zrmiG>N8`i ZqF -U!BE,!b$J{~MGQGiF/?CVtYڂy{76)a'/n)b<__QZjaiFYVN?t[_tOYe;`Q;>H?ns(Zݥ"W嗾66b!O 7`~jBǷ5L'V8UsɳYcg#l}עijHYϷZM%'HB}=,TjRthog~Ig`ӖB[v.Uț2(ca7Uls˶8ܔ<ÚyNvwnhwai$0 l T=T} zmu:a4eQuOd+x${[F& Tݻ'[#6v1~I Nh#)dOIߢXiSY7X)oDnFsF;,TZ[Cٙ.CLŢlv+bE3+IP yx CBP-*sMuyX(TC\>k)M@.BB _;;:5Jt[`sG͐W??+s8S6tHkAu  &sf/ XA_^+^Hԓp17Rl߇cPós|@s~Y%Fxߥl+Aa`M–ޝ;mPKL14m nuvola/48x48/apps/xconfig.pngUT lAIPQux ]W{A "j E*[UJ7gp0{6 ̒q1߈41E+֔Wsk> 4ˈ fJC#CP33n~s Dj=y5r36q46V6DW=RߕݱȐzC#yzMagEVn^3a5oywb2?]b<yQsX|\|))!:OzQg!T_[2BE"ف01SYU[Qp" B+2Yh\nsмO|4sn: JJ~:Dg'Kr|u+FM̤N iDO5YMɹ9)Ny"zdGt;2Wa܎J8f53sS1)/N6_Vh3״B 8 ("9KܼhF +WSSqb2&in.>VfE/7^Y3@Uh'XoІEXWؼ{~xt/FA=lm㛎_-)-,fG`6}Fbւv ۸cC4ᔑLIB'Đm8b!VS"-&~nI1ѷ%iEUER/zGY-R.}ƣD\ɾ:D280*K[e<3޷F+9(xJKϖL buR=]4dIshu'v'c>QeQd\GdؠG'J:GxXy_ >YK'Ҙ(1n&Y|CALV:t]LQMhéWrSYj&v똔gkn8 PP_7 ~̝`ടDUSR4ARxqORa3}=4e 渺ޞịO"uEIT+ʠ^$϶_YiS`ۛjPd.5`Co,Nuc`vmBi]mAKsȱdM`ckWl&=vZnU ˱k_5Un{pYB"ACCNV.\ŵF ujF X IrϷVޫzpDF̯}"%y$G4ИbF)av+N `j&ބ?<ؠ(rQ_4fsDfT.۹LAgfAOy we_9+ |ЗF|~k6ILzQkI(sHO"El@LDF l)* MtX}CJYW^Jf$Q"}Uv#͋)5VLCl0+ʿ`EMC+kԲ'%(~P>ƿb/D@KQ s]ƾ7K sVu$cf%33I슑YB #&#:I?Wӹaz@\sg| Ԋ[{].5zT\li\}Qg6g/!BdY\9*{N@מoY}x#:d3gK˒m+oybF)PUCPjϒvH22ܵ?>i ݀Q(xZ2,*<ط4V>VH9ۓ,pF|Av*-l5vCOэo_ێ,.sij<=9(ΌDI]jB+19;zU-vNJ l!j--mYђ Rt#?Оjn쐐 ]@X9,gTgpbvGMx쎟eCWeXԆ`'"u91K 1_v4;yp%EM񋅪߫(vHAlR4 EFfRDFh9b Ld®yb;#ů |!p,8 ~Hpa#u1p3v# )ڟK[<ACGv =W{}d(#{ѩ0_9xgoaROc)ͫ~Gv q/9c$|خ,w;]zH-ϔAKW/TARݨ@dJ5yG P| ;CtGPs+3ϊD,( SJXRŋZ:&%$,,|,NB<O?5 lbƇ0,i)S?Tׯ/[+//F(ǃ8Τ+vÂb]) XHoNmϟ?{vvﳺ*vy=O7&w[p$It -CPA۬75mtʢŮ ~^9=/L Rmc=)v}̆.nJ֮r1OEX.QeM>XVxf#LJCeUU+ˠ8Mؑ k8S6PBRdӦ/lS V)P&yS35UxʒtΥ tС񫩜f<^*2&6ؙT%Ɔ li$3ÿ& a.@6f{+u1W9Rfs1[CG*=ۿv=BX"uv/3OƨY)1@g;9yyUKS"(bOvޕ+W<ߥ(MlZ0qACi'ӱ\".Iq F7jd;mC{d ؋5OOOutt|Xq=RaZ1KE!0#bUv3dR8T{C{|#oSmۜa]z.I!h6Tc¯= 痒([$e++cBs36"( I%$ۺJy/S sZ׭SB*#Bok'ǿY@,_{OgsiPQSK)gP{|.J̛K]YGsXE)u}-pjςv = C;9991hZ=ɠ7Hj+v./͹5(uPvh2 yp:1ׁk`\LS`)ۯV7rǡv@f[5  IY7s{},F̓gR6hunkoT^2ڰ$Cwyd]^v'VLj@N{?y MzgLJZVJǷO0zE"p 6b.k Di>DN0@{F솎FoذM[SNm@g0 srr'5'd].MYl!$Sl(d)CDz=5ad2dy~ أbq(#%U5ꙘJbmMoԮX_R Cłr&lźe^;߁1X:rnp8VIv&)f߲"WqOjъ硻6[-rJSo Y o%mplZ3EEug,=H p䬬$01,ZY ^.-r'YNNN*Φ7ӪF|N}[#d*RQVmm Jsdd(pkM Lzb[=~&e 5$L3[6Wq Ž3@N:.A>^;\mۢÉ1W>K GGMx +_:Ued=Vbqh*X{;{8E #GcJ%w-4*N$M~PXEP`6L$H7)#KTR/A s0,1Lھ.] ULgI; 6QBDӬG !]+\1,чAʼnW-oCn"PExApިSoߛ2g\f.I 5Mۏ\'-$3Ղ4o'}EwFHr6Ŋ$uapxlTZc\1VO$i*>_;?j:ݠTqfh/Ne[g>p閴~w]e7;sq7q湘c_ܼ>S"~wݿD'zy|n?([ kljƦkƴ=m/].Ơ?ޅj E8t^=%r *6Ňyr8)(hژꌆU 0p:r[Ua_yMWf[eKOқG7V @JHkDzNm ŮMU*}l1*2ҹl4 'Q0c?mG::CwjY$\9.¬ͨb]>{,+%_fmLʟ^NL#1ѳHiyYِͤ>3ŋ?z{o"#8RL VU9 q1 Ę9þބTLe=͌KKp~,!49‹Q6IWCu0ƳUtȞ+ȥA?fty㙽-aUK[`&g+ r`;+!8&BD_XJFTL :wa ifxr}&5#>o|+헽KkzI C27V!{фIlL\ $Fgñk ?/:FOO~43i5`v-VR5ɚ3nC]&g)m.f uomWD>*=G;%-6fƑ$P,Cv@rLP`_U&([ MW (}Lв@+?P'DH<α|gh>0 z os]mQEXBF?*ϯ=?pwoMwXb/#UP[E-1 N)AD!aRƔƴfse5c~IFH7N 3T SGGlu`sAr'F9vF4jtG}53 68 R%r`@mZ\b;ِO?Fs8 3 y?< h"\T`Vq,֒w} .V:3H@ -S Oc8iRtP{H᫠oolyK()͐J~yP <}5رD5 \DtOqw Jgbs ЕG@Ńƒ<@t&^G$8 ๹`\9t=uqeQa?{u']E!΋Kc2 t޴~doS!-Z_ SRp+'MA&J%N>8y&:¯xd#2_/eD?x6ּº5g2oC tQWRǖuKYYt(*Y;Ԡ xvXYU@e1LZѓY*L㊎izf&tH6T3Gh ے%,+ه5Ho gj.̈2?=#[vѠrECnHO+̿ ̤J..7lLhzNYųJ>4BFD4qjUՊuvA{YIKg[V;RjV;Ii;Cf{Ic/N7ϔ^EWDWER]VWt9+A7Hk\1J' vDb~ck5(9[mr z cv~/ LF?}JE\goPl顧Qgڌ;$K}6o:οnt_j'F4cr nн{n1 76^{u;LDvʳnx䋴Ye eT+Īq sutWv5/Ez| O& ,ԤJyL|MeɏL6ij#/(a^Dyrh Z>SDvmA li9<7WLz_O 0 MIa!68gv߫(gAGIS_ΤFm e>GC 6A]aDeP\^$qM  s@J7(ޗ¼CHtk#*\ sLkπ]bpn"}i.vɕvJMJz$m C봩ypO,"֪t6 4W-N!C$e2,,/J,V&ph2-ildU\8cj&+W-/{kۡk&E e]D;e .=α(6 7mcU H9ećIRo14OޔY^ pD-?A+1uz1@fq𥯾%)vfyٷ( 09np/doݻۻbreJ(6scbf_G{ F |v+a +q+>vX N*+&H!5 .?k,Hbq2!;)Q, 6W(RrTyg1,a^DeAT==f:#v ០$"7C4X)- {\3{V<16p$X N(f{X}eAՂ3@n"˛oQ /KWWws;P*}Jl+i5yn ) mDa8\6dՓ_>-Or>D!/;} L5 x*U#[~8O.ᩊXa.GYEW$&h9~jٖ3_jUKfŠA4mgo^-')z8oK#%Ke'% Nʔ8%鲂 J;m W͖*Ț9h7]p~U<HRQm,r" $4{~{YIhR(θK+6j@z1groݘl覜/f[Cί[ VlsGNsxLGz4(az^a|}Gl8 *8gts`1 ?@.|^chR%*YmxPJ1Uͦgc#L6^Du|9۞px۾ 5fW = ʦ= h]5> ڃV*\sM0 D='|?4Yi/$uƣ;D{zxS C0Iw~m+&j^9q>bf)s.sȭm:.fS7QXA{z6"0i![BZ=5dy͎H>x0ae$P7OLKJId-%lm&$:ilf("!݄b69xC?wǖFGtIL}x+%-<qN799g:{ xf;'`YG)GO, >%I}_;w|ĩ{ľT৸!!׳2&Pt/phř^/W')J`rٳwkj74+.06!CzG6ӵ޴LfylhGψybǞ&+(F ǟKOİ_*3] "rR|^?Kolq7hPɛB.+o t E>殇o,\_I O/A 򴫫k8t٩l_#=er&zK zʈcSҖ4\5" y-jޜ] :&?|TOgK\%:y / "Cx:Sx =k@vaz3˶i[g#$ zPr2eee-@no*;P^7-c#sKq0%mU4HlǚE\phA"S$mwGAԵ9~(}/*k Yq2 R &Ex'qLZ~@AqMu~e'ׇ 5iD3 nm肜آ}IcULnx]^?f#8{pݪҒb?^7.L]/\Q7vs'orMݐbvdSm;0<_/+)`0mŎ&Pŕ'NXyuT&v΍;n5͟.˜),$–W5>iml?!p ƍQ6\./4>` Ѹ"m!, ZCwmZNjiSwn3i&yOe(̂=fږu T]g{R|sQƯ릞ELٻ{٬b#)"7r'W?Pim z,jHZ\at'g|(Jgr Yr'ǪpBMR"p. פ/w}1;፾\Yp|Yc-gf㙻^~嬵*2},Pubiz6:n/dl*g 5~՝yUW8-ߌVjh+W5ɣ7>[ukwz} :/#2~ڈrPNaX@O]TRJ΅<3W^8ϭ$(afr7eܜpA'bْr\DQ8Մ[Z`anuCmh2>ƩWI֛(5nvz 1Vqb|Q;IWNZ6zU)17Mi-k/̈Np?W:PZAF0yw2{w!YᅩlK'QH *Ӽm+udr\cr"0'8g⣞umTW׎̑Ad_TÃgf [؀ݗ- m%zn8|GK$ gxGThQrkaެe"/U~VaEJet}svĭI5(:rh3ՍO ]JD̟!a%9WaCsoFf*nRwkjkgƖ}+#6F $BalZ : NL?x`#{Sei/Ylvi:Aej{榥K,*%u6$!;DXK ͲW,Jc 6KZғƞZ!'5ד>jAYþKm[ KHnxWHȇj赹ai%(6߲-0x9𾠠M˅3`ǥ!ƊTW_%$nEk!xax(9[|}+R;~Ndi_,:m{/9,ckhAmMl4ouHìd6L &ڊ'xԺ+WNMM/ ծ<cnԚ8 qqe ܼ\g1S>/؟Flj8X$>J5yyxKZTii8IsRjD=fmB={t+e[0xRr0eJ*0~ά~i :u~FW qgIQ VoF|q'Y^ g-|{F'+&ʬ$Gp.n`Z:[e Y fFxRFW+:lsjOלDRcY/*d$" ^ISf*噎qqg[:S_I4(wЅҝcG?W |\p:=O̟;H }BMnPPK mL>nuvola/48x48/devices/UT VMFSux PK t91A@!!nuvola/48x48/devices/.directoryUT gUAgUAux [Desktop Entry] Icon=folder_blue PK|A1ż2&nuvola/48x48/devices/3floppy_mount.pngUT ]]AIPQux WyXYEDyI!S$)\)1ǜK)24\*mL6+PpKӦetQ,MsZ,{s{sw#[7/3$hc`^ҿ Z?oG.*?z}_RGlKOIcyq$nB\X76c__*ӟ40̒BAW ؀I@=,Ql** iKg5`+0$fяMꔸT !S>B"拪?W0$2󈧺6hx~neC*pV]N:<_(Р|:m_[P̗;r{"VU8=F4Awx,q)ђ06(h` r%<Ɉ:Wɣo 9_I‚r:Gb3rγr3)0}Hld]hM2^GI:-p޸@@O B]|GW3u}1ifjBFDqt/z݆>U;ۥbVl/^G4 7 >(VONx♺/34@cL&NtL=WK:q%= ,`[|74a̦!"% 'f`.?JxG(:nb<+;/גg&܂c?A,In}U5u^O x,:D2C0L竎VUZ瘒5zh |,mt s]UUKexC&QddK|`a"}|S;] ?=oPG%`e%q^C.kd ⯞fj50 E`c̚HhdB(p7XRzE& B]ABa5G,Ĺ#Xn 푏 㱕]/vtdGojgzk,ґxr&Yv46Oq=]㤆c{[q<1 WNr:ce!MScHF0MBffK6O1tDN 8{C_=v:;g/5XCbx,.HVbCeubOK"z3ܫy1?&T&'d3R N(+>!Fkf"x6M (hq58AHRŅrXCh@bzI錒7=)1$}&7k)VLzl@5vv#y1>3n/B,uqj:T+RUѧ)KESg6@B*[N3ܛ{dYHo(^"RTLM\t{Yw"Q-P}-]C{騲-鞶B,MR ]g?RvVoD H~ً'v*P,^N/St(30S媉Wh|mp[p۫)%Bɨ+}"G%t.ޖ:PM۱Orٮ?Byd-d} fpl$.6MTz>1v$)pQA|{ƒ4K!rMW@X9q环 ~r 6_LPHb2rs<-\!Coڳ"7OO(nB_@aRH6h‹ɵH+/n?&iIm-sL#_UR 9 \Lqa|/afbE6}j`y hpa ^2\=/GW0:Y k2=Qq_*mHEn8)-z ,:tMV[uL`NR+ 3DgDSπarZsv}y[QFM棹"ؓ)6~cO!ם]׌tlm̌䄥d qd*0a{ `yx9ՃX |.P Γs,۾7̧El^x|'Vɇɤ&^󺜀N%4Be9;+Юc^f9o] d-8\8nӪ$fmkQW=Sz,.e t{ܯ˻TȆiP>]mqgsƙjYlKTdcjA;7f [x snDl H&EIFGH^Z9Œ!"T2CvAۻ"_ _& \]%$Oi >K)܅Oy8IZШy\ #;8/#`pȟE)l:a< JbN?޻R~/wl'.H$y^gi C'o W} 7A'Ot+W{g }zXP†_)ų `KhP^toQi-BeT_tO:YGM ]J2!^SA2CcSUZk, (x$oNI }UoD"Ocڟ0m>G;vG[[%]9'c2)ﰆI6ĬUv"ElnvrGIm %R;oQb(t]4qj㪒;Ү/ xa0#oܴ߽& %FPй;F*19Yɜ Tr>[ X{*t>LqojS׮o/ e;[H lD{ _4_+wE㗡!?:u+])q0rz.G$݃0 -S}٬Aun\z@AW8AL٤γ.m+Z:Un%vT. 2bdA]hcz5!9sh{63VwZnq}yO81[إNrER,. 9IpGLJaPxXxՖ8br%՜-$@vN 5V ` )[%ҽu0l6S p/1%<717->|!G%a Q"Rq"QHb$ G̛aRc-,={n`<P׃2]nnQ;,6ZHsbM/~k`:NPK |A1Dl (nuvola/48x48/devices/3floppy_unmount.pngUT b\]AHPQux -V{\gAVo0@LԵL57LStVXKզ[-^DR,7R34/(諒s9SFs1<$*q"In5Z g$e~%<pE D({g" C[~K0#[ Vf+!W1HJwoh><.^,89-LwɂdsaV#XyEcyT?E}Iݼܶ0_G` b ӼD]eTYd$TSr]IƙH{kD6Ibw7@xX>uZխ*meB? =>v iǑAqXA^R ` #ylwA1uH* HxlҼOؒzL dn ID7hhq8,ܽ,lK,S%! 㹐Sf{VSeA`$/f&[1 9i#GtY:|$Aps:)>0?؃>62 5僤0ivZg4StLPEbatS.;Y$4NXVh<\S^Yu| tїQ6azKQB4pL`y8uvs}ǃDpy:eҵ=5]RL wh*G} LIOXx_SxVѦ6d c4 6 הh+I'L`}©&z³*`5E{VC<:#RDjRWR3-y9HVSl'ҵq{TN 0JC:@W)(<.,YT#tĬn1r{k" 7`O w;$HܝIdI%CVqn7 0}.EkEޖ/K .$,^{Vv}"Ϛl.1D ޓ/(_p Ȯ|Okq@TTA~?Z#ZaUǚX9Β-xbqӴ&:堽1:q&u8RQJFZ|i#zT WX_z:!Smm!r#.ćNւjqC2'X z70q KQ2^FN#' 6}4ؚ Y3Ps?+Φѐ!H6bpipP'+@Ahb7$R(d3bAثK $% ?K0|((ed e<7~|9RS86W}oZP9`w ȫ@kkŝg֡0D ^̣L1O',Ζ7$i!ȓѭ8 N Ù7z1;sFPw j!߂p֐lָpVN@1On$B &Ȧ eӘȵp//Z c۹v+>mޮa{BotL[#|mV-?/I< AT39_F^>74+E')z Jb?6ߙߑ)ºm }Wi#NP7 xu.tmeN{.+S%h!m|#UCt:M,,?tj} dKFXGܳ|yW| \ո蘀m{eo/bWX=,7ƺm܁ٷm?M̍vlyap=ի%ѵTiVAWYў%| e6ҵ;.1CJBWWdA/bcp^QtEZwaT>~{,$s2'݅%YF?}7"p6AeWDA+̈́-m5Y Z{=sѻJ<ç:O5[m%W~x@~c&JL EN(S<(,S,5Tf9xj_@Z_rnJh4ӈ|A't/qω.R +1oLOX$*k̂._@iL6.cXU zb8Bb~,v&DɶgAUEf` +1!'wYx+$Jl% o\&,Oj譧O`ҳQWRׯ_o4AИһUEŕƦw iupx i<,?; JBr''p> t\P^3R(+##Lɫ~i<߷>Hn ËB@A3t % WemS⟟lb*$fHϢ(7 Z 3%8_z!(".Ț·^P@v 69Z)$-b[9!W-hς _\8q3E\Rcq'1_Z1q@S|/e*>a}n]~6ծk[(weQC4g}J-Ӟ KYK/>4C.%fdzfe&℉D%c[AB6WVJ)ɛ:hn! #`F9ZwM6Kd6O-A&frC\yzz/.hpXrE*WUw3NaQj9 x1rSrnjoK(ꄭ敤ʬ${Q[b F:fcb=QTʍxk^w+XLYXt*"_6l󊕥X(/>  D ONv]o/B CL]"6R1< :qlny^|sHLEie0;՚CD<!mR4*ݯx͊g+W~26%TxI˩Ŀغ`NgݦJX#>.#]˔Jjim%nGߦR/˖x'; 8yPk &I/1ȴHQeG)H5h`akȄ~LAiؿFJhtH};/5$0RPwoz! { Jµ?m~z2 $hzNʡ *=PTFB "T*LG]|RϦk[XYwb4LuQ%U݈CtM?'S\8KG6x'DQRY˗k;}|b9:% +5l%bo`Hyg {HZ5p&,#Wh[],W<=,RPV&OW' ܓX{H@?$dz?YC_ `OV-[l%pwdvu\rK%շ@1߻Bo; RGG1) c (/9釩% RcPBfC_uO1M~D!5$?e+'ܙ',[6Ŷ MyOmzš9bhB#=#*U"`*H!3'GJIwJ#m0Kp->L{̡d?HW<,!p}brq\MK'.ZY\zfmqKTb\4Ez, CV:oz?5TK^Zk.^ cqϽL9Bxhp|0IdF(qS<SEiQ@Ȏ3PK|A1&ps(nuvola/48x48/devices/5floppy_unmount.pngUT ]]AIPQux %{XUTBEtRC[iJea6[ԮG +in^VlP!7Ki13<<~)daԎT]C!? =pѬvntչvb,@9ljb=ˎIKx(8ÏuHD.L rrr"v0SS~glLZgX2i@#{r| ȑ˜O֢ Z!OEz1 Ww8V RR25xrqq1Zx ͤ6ZZB+J-:nu#HpU`A>WZcK"uv,ok-'fWawB[6;+{u|'E>$W104!ͨ^0) ҁH܌K)Je~l8UNkZ5oUyobW;޵_X*s6RfhSi#o jc(Q4Wka/_P'|fI[^D 9ﱝJߐ7J? DXƸJ5m nCQ]4\(7KGYaǕXL21MnqՇ('#"|5B2 ߻%25I$&>6MX쎥>pZ `/+u}sN2$}Xt>q|,v54>&ð`!UU@ʄ<'W#$ʹ.EcJѫduzQqG\@`5 ;|b tGgOdUNFI<@xyx1X"}EW^͊ث4k ~ KR do!#Jqϥ6}*l7rf~/g3?'x ÑYV]M!<<+`V#ԌblDžM/w[qS$͎!V~W{.F'f=r8N3SW6XWRXy+LTȫ hF1`N)$Jr CZk1BrBbT :b9Z*-RbLLGuD]pS䐭qy#-uv\K$훖\ s;wjY]7t'=MF:`+LKK}޾a?mEH]ťk=xH+Ё 2g(pM*}'z;qc~-9%mp*3. S GP FM7sJ+r/wo!CژW:4z˭Ny"Q~'>a;l}<C8hW5V7Y.UdM7h &%LxFk[-mV=JֻӔ%Y娻@Ώ]mN]J{LOˁJ÷Ox핣u]|v ݣW&+>3W Hɐj؂&OBVy l훗Ʌ*}g !O˫VnpΚA>'q!i]ѡyXHӾ}}M@݂ "۲ 2m&kzkQM}I-o~"{YEPFu-lIU<6E8]CMA]ݝ׺;95E]kQa2#xGsWȟscZo6sG b^j-+$w )Ni?~ΘAqųg7]cxQ|Q ]L8oEdx6.R/6ٰ۵U ʊ?mx 3],J6]@1lf"ww6\ lQLٗ潺ip'a ;;lw\H)v%l'#,#Q+ ܬ:чkJDQ݋o׼-+k>'-3lkgOt=hvkxoHp"pf H-rȾt4h _;^tp# i:<|jL:-9RRhiXml:7LEgmsӄz"[Vo*Ue},Kᗁ8^Q_e ̤(Ι)IgݰUq,XU#w%lhptrʾz}vLfF{' e  뻌:J{ɟ9LS'zDVP FU28L1^"L~mᓹ6? bGe *=cr,VҨ?CO[71[[Y8|S( ak$`nz#2X-ROgyg"oG%F#:?AY ";N /tN.|5[tD;`UKXM{X#hI5ZUzЂx5p'Q6}ՋB||Q'D:)ȥfARis$ {hkm~ U5uͳeAbjW߬N{͛ q|+icaw$!RkƊWQݻɭ&Aoҁl ˬ=[>=: BP#sӹJԦsʙUU)3aFmѪ2zo;i.911^)&+.ړ4q)9~Z${?])|n&gerw(ҊUyiK[L(an:͝&f39+@:{fʹM]{KpOKkXj#SQO4q=b\/PK}A11e]  nuvola/48x48/devices/camera.pngUT 4^]AHPQux uC?> |MSHSLIZVȵ1b-k* aa]jm͒%ZWVVl5Eq1?M X0%|hŵ7 K߽5Z33- ylnLJZJ|C;o왿'AdpH?Xh(;n藴9?Egא Cqv].o\QUFsEk2rg-}F&+ih޻}b[m%CuO:QCl57 K"M#3]Ot1;ApQ‘ě{X 'bsҰI^*xG_WAnjӬ2ѥK?D.C#bs 8*/` aC~։bV1Y49;֪3(a| qHV->6؁5 %a/aJB 60䜺ϗikaeo <$OVE=^^h"(k8K8%>ЙK)꧟bM$Opxϔ @ x S݀vp9nY.h_B?zU ͝y8T`I:c>_PP81? fTɔz9֖'ׯc@&[$] bOGF#杭zGTk)s'l.b eZv/`@y8]@6Bvv&v$͓CSow?3Jv)1scrI"'37g%[yFE\^G9ֻ.|!`3a")g jw3as57<7JLn8B4i#`ۋmQQ-+7~!gӝ`bZ[q-e,)zӴ_ѣ-STP;OI ȇ6;̽(g'鴕MD_ +xP -pwB1>39ֵbP.\jzP { 5"h-9s!!7n(O=2th%a&o[rv@MF*M;',lD#DeH Hδ"8GT8]rԹ\+c׆aEkb|e/fT&UӾŽj Y0sq#*X/j`ᵵfT&dx<\r{pFDT^n՛0U@`("QIo6_[m)JRzMq:b.A* 6ˑɱ.$ E=):#& ,խL4,G"k=l_d|1Aq|ËK[j0FP(i0/ǎ9CÝȯ%|"صͫ |MEGQr,=q{dѺql!ף+ =}Ò'SR#=B-(G&_/'0+,\0ٯ66^JKrin4pl~8[$$O"[ڢ#w23^vq`nn,Dj}E(@8h3 #4m߹s E $D!etgO=" YǀuBLjJ?aͧ΀ѫ.ߐހ9dV* e!8Y*W߆ۨ`±w Oوz=;mApLR?UL_6Fa_@E΂"fm-i|R֣-Whєo`+:c+] X` &``/3癑 }[Hkg.א]WM6Kov:"Yy1//?o :(ykK WA_X?`|/T!hd$n旱vL8hj崾Fd´V9.!aόP].(ܷ YDPQRS6~PrDpvGEÄ́@/m3Z(l5Qy_CLwŃ:!KQ~8N6о ƻp-D׃%>L&קW|%]obUY]*Hd{cmmp}XhBshiY ;Ȗ 1,G`- \+I4 s޽3$}AM1oŠ4 9V>&Z]y'$e3ԧ-bo5L!ܛoKS ]<ּ74N-F?Q1Iaev67\Vs $"8 W\bN& F9Ē3cetBaY?Us~X0}!Zsj<+^-|U~6 v8Wn 1R Af"g#I?=_o'NbߑgRֹW99IC+&1EA<]؊P; ]IIbJ.=7wWTҎ=4\n=bw )VmV#yj}Y{ :̎q$-`1A҃]=w |L'y2G5`T#̩MM VIQ?X!XGbTv2uŢiCDgR+@uhͷں҃?PK|A1  'nuvola/48x48/devices/camera_unmount.pngUT ]]AIPQux uC__^AP˔r+&0Ue rt2NMd3% h8eeedcjy|?]VöE# hB9 L (6icҾNIL;90pH'8I Q CgSZ6W\Dײ@Bi1x) H6.к{zqn<7+B5e/L Ht/=Yq)a8CX3$hUQMƥ3:KK q|LNJsA|coy/A8F O"P+w_5n&>qލLEg Ɉfkü76G< \vfUU/ˋ^zpۖK +/XՉ*:>wMsyLENs7M[2_z~${7ճd}Bjw~f5 F̵9JVyUTݔ ,1?\gB8z4<_R*,>4!zVG?bdE?jo vvZu8p6OGZ 2NAob쨅 R4iG[(g˗93*8]I?r x 5ߟ1˰QoEb14Gyͷ(끂Lbߺ".D\e"cU' 1u-HNz{[;-rNeo|=K=$"MN*GҒd稢g6@;ߩʪkꋫ9cάp4e)j)vTiWjp"ج$vϊ #=l靥ķ%8S|È8botyA.w0? t)%Lax֊7Ty&C_%u7*1}v`f,.8= [4(BoAP8 />-6;a{EL'W 3G>_yv<=[Ww# du$M?LDQ}.ȅ@C N=Qf~.{ JK;:wx=1mJs0ƳP320!*+( \뼽) ̭O%o^!,4% 7@JVЛ4?Aed~.w]$'}0ˮk}]q8V41uCumH/+#'9B}a蕢RTSRhEnVS_,V4ԓ}Oro}NsEbf5^nd3, nvbqX&Jϗ݄mbbTS[WnJĢzz (#0`8ldLg)jT@%ޭ]UuL rE݌=;$_%8L2lG ^K)34ԡ{ H?X׾+2ra0"\*uj8rf (:(Ɏ@9 d2m lw.^XМXj<3N@֫Z=n1Z|QkmM2ѽ{ ƙ6 Ϗo@_0y`뜍֫!f;`uu-)jl^8\zvpڰTTQaۓ4W@p8 X-DZ< $bu}U?(MSѣVō]$?Elzۮ7i\tM!rD__2crD?ߊ݀pXȄをyǗ40`h5SҞ-G_Qw:*J~t]o??RF`Z!5~Bff vv]y(aL}nXQ/=d>l+v .e_Rk _Lg;_/bF'*RSA9ɼg"|-ap8{bQ"i}HM)ݮܶ"?pL4x#_E bA bCWǗ0{ͅ,gL~UP&.m[R6,F;f+g/EPϺoO1K5;朑3ZI JZc^t|ũ?Ob-߳K{պUD+@mIu z< ";isB^w'&D' ?F&DD}ODDG&GA zT_/w $Q@@@)T r+++lnrP.(Tނ*kA(k^Q&šp뒔 p__ tfdK)KeVE\jphj$9h&K4I68} ;3T=NN WXĭoAKq-a [~bApԫ =['uti"-$L)f}' 1S-۽L|J阇# B?p杯\7k>IHJxV{5'&:/64|1!V/RaDFƚPe) Ͷ!Y%,7>ipp' JaKЖyC1юxV} Z=}Z|rt2Xy I6bKey^AEdjc#_Lji}qCڮWX7u"k{q:Hg ^IҰ"k]QT l#c:;%*nyHӗ')inٳm)X@mY7㎊hbCM(Zƾ-7>n 1nsr|,Y=ZKdpx]znʈקwC0qȩF1|@X,ſjOI]s8ȴXj'WV;@+bЂI>gO%&yػ{ _|!\oz[X^8AN0\T:wdRٻ>VKMEXz&:ePj^UChj}=@ Il-> R9%8u{<s&k/a_uVJ)8L&'^o/)%gOeYo RlE/2(rg~wFWy.FY\fj v̐ %Psow)z}s&7Fj~ d!Ml4_zkXM}8S&ś7,C.j39~pL5aed ēdbEV/~i*᯸OR񸱇P@TY-b/ZNh(lynLTƾ#!uZգmpSԀQnT昛?8LEotp=x켽$G\M&M:Z07ۈR‡T_Z{b'xAHaj(ZT0A 2}gg7#Np5KVbX:X,(psիV‡pɎu.6#Q'|jh0dѵ_TE=W){DidNAP:5aad$ '#jї"2^iRFOEGܛE?OL6&~|:5SJ֝Χ k&e1l?kS0w6lބXDttr  U+#8``#gR闰Nc"u>[|} {] +ʨru l"lp|ІId-T ^r_̨:bg}:n.N3~"\a2($݌yPT#VS\cK-ƕ:TFְ4n=4> fd>}~"ծe4'4q)ǙH,6B]m0eg :9C:RjjGcZ/byeQP)d) dSyJ &4͕iFc؛%`܏7rv |/JKi)?ΫBXXKþx#pbq8 xyDfא㇫Uaƌ |Q%_"DLR=፭ 7rW,~?2˅s ԰?F1PjTF@~D> ],\c@z53Ub2i(a#hgPZ*ؑK6[I3ZlLJAXïA!Bx|L_)7&9řJ{ĸW`+lS:DŽ e~x[vuDT57nߎLl&aMC4*`Y,eeg +'j/>ɀ)_ :.Ɓق (Rs\6uc {3[ueĆ>r=H3T] mOg15l +  .]{l4. yozpoϟʁrޫ|9@Ԇg6LiXkN_ OMŻ?3/?V_ =@8i"4'?,ʼPVG љzCw`pv;N~Dj/vlj!mugg\'sY{[;K1*u:a˜)dNJ Q1}u :׽hڑ/AR0vjbB[G)b3GsVfpkTs⠎mEvmXE`{ɇZ_iu_~^F*i#v`ͣ/%jԱc,@ O*8 l˟jG؜!S8ad ]<&O_DO<L0sglo.B7Q kU˩H ;r3jsjD y']˒;2 M٫Y!QKJpCƎOqə-,_J [;ݸa# O۶m;7Z ־{L} qW\hOO[egyrݳW cV/Ա ;c 0E>j)@K[le2޺ :urˊ@* TG7UOmS)]ܺ.PV~urT/ !pP%3\k֎dv^ ٍB;jUJ: 6o}cqm|NM\>7'j%w.v4wQ J޴G_ 8'n2ו7,.} n:6-P{ç= ·T2F.IvJtA-:~Ρ}ÄɅ=^-PK|A1$;o(nuvola/48x48/devices/cdaudio_unmount.pngUT ]]AHPQux X{<fal[6ȷ\jsWF.ۨEo*7"";SQ*MsDd}fψݹw6N3p >2櫤`ƺVwv'0&]h]IЩ<]V. F̸kࢤĎӦGnrCr 맷\k{́0MKu^92 ER#+oF _12hÇܠ@w{'l\j/ VTJW瘐HQ+:ؼ;gvC%/ *!8^R .S41 2{=qT'2Ю$DI=ݎNd{ŦE-,.GH/Ga>^j]My82\l@h+l$.Pɿ6~=AKW5 20@iNƙ\jSYakٌ sǮoDAA e$<=bXA!ſG\p F^=]ݭgE)Y c Crt *>/A%'_FvuprVvGE$QCrT#ԼP=]C%饆֥wĂ=kȗ*\N˴T]FbpA.̍ݽރxNjLWh!Q⍶S^ a^^eI!a|oZ^~ʄ@xȏԺ~5[7x皷|@\j jU -꠆_*2'Auf# T%ȕjsr(E=pza i!v8, SpH;25<\Mm5VVq.Sio_}FK;:HG,20q؉#r1'T{Z! 7VYz1Âu<+M*t838ow5lɌs!}0}zR1|>?0w &$,zC3N`iBڅBSO"u~<|M&Όo>u]fM^ha`͝fo)nl2~dHuɏƬ7s|)6He,j=F,4g0K;4bmiE+O~HU1[WxWIڬB4XK"ՏLOw6JW!9X ZWIzןFvbp 5/ץ/#ٽ/ ˏ)kM증a3}9m'&<ĖSf -"*=ޫ-gjᱵf8}+tWifgkx;IYkl6(^:yg_O؝gi;i/BBEǡH:.Es2c{7%6I^zهɂB#uWiz>(,bwpB~dd;YƗ\5[uіNg⺨25rC-= 3\;zj=2rDTYSϱdMʊեйA5#2"$K9cHֹ&*Iʩ~D ֺWV=vXJ4=C&Uo-W*uP֖yH䴅n 8 ǘM.Q`)kZ됦@3MX5VaLo*LT,U|2o֛SFa0p'dwB.,P 9^wTܺ"R>ϺϽHa ";=%-9,NVJ5Y U7_}$m6"NdWp3V \o=vOu#''*dM]PެTۢNS|=WNO֣}X=U؉ {Q6C-=Eʨp+xU|2'n(a5_f\;C %k FpMHߊ 2`Ҋ,fT쩊@ɔV_ۦN|I)[RexezWefyZLJ U M3ENݳ*BhK*{F4QjyvX!V%%uVIq@_uTi[+h/-3uwVLXvD_HBqQu'7WNg,o6ZoDÁ }qm%V}qK[DO4:m_L d7ZG_f:l>R#@?^3N?-&$ThwID!/Iq9aڰ!nD)nX9O%+NzS ap [Oal K/NV#OF![BR4Zqny0 +<1kX37fkfgI̶)HFz,>D-;{i.f6 0"ϼ'P7 1n͈i<uZegpp_K%%M Ba*!hHS/~_BLJ%zsׅH&j4IxFNx\T"&Y͚o|AӍho ;^[ _6mq{X~7=z kQUmPo?Nu+z9Bg[%qS @ #* ajiɦ/[,-[ i[*w(:8܃:NjךpQ Co0"4Ki1>['~fq])Op\\]d>@ǥwbqUl`\q͕~( l%Q8LFsXC ǩfI̕}]=]-֝>w)|ٳǓpGGy\9N MCj=AoeU%(2kk8%(hHEPzĀqc5xpey*Ч~QQdyFFZ+W_Z?`]73x&cxqcYImEtSݡiw_)!>ODVJ@"Bs}B]Opy=vwZ\W^nQ. p":p8#AoWunء⮨O 'HEݖfpye, ]+M p/GfWk-Vqy6gCtS8##3wgû,xz1DՋЊrv uaԁӖɀ؅>XʭLr-R  keC:٩GWѹB紻S phh>fXmo"v鍩R#;YC#r_Q7uF80L9 B=2צ.f |$[^;|=JܨiPK|A1~$nuvola/48x48/devices/cdrom_mount.pngUT ]]AHPQux W 8}&Ŗ&פ !ې(%Q(oer}JzYIllrI;fd.e<9<9s|>-߳K{պUD+@mIu z< ";isB^w'&D' ?F&DD}ODDG&GA zT_/w $Q@@@)T r+++lnrP.(Tނ*kA(k^Q&šp뒔 p__ tfdK)KeVE\jphj$9h&K4I68} ;3T=NN WXĭoAKq-a [~bApԫ =['uti"-$L)f}' 1S-۽L|J阇# B?p杯\7k>IHJxV{5'&:/64|1!V/RaDFƚPe) Ͷ!Y%,7>ipp' JaKЖyC1юxV} Z=}Z|rt2Xy I6bKey^AEdjc#_Lji}qCڮWX7u"k{q:Hg ^IҰ"k]QT l#c:;%*nyHӗ')inٳm)X@mY7㎊hbCM(Zƾ-7>n 1nsr|,Y=ZKdpx]znʈקwC0qȩF1|@X,ſjOI]s8ȴXj'WV;@+bЂI>gO%&yػ{ _|!\oz[X^8AN0\T:wdRٻ>VKMEXz&:ePj^UChj}=@ Il-> R9%8u{<s&k/a_uVJ)8L&'^o/)%gOeYo RlE/2(rg~wFWy.FY\fj v̐ %Psow)z}s&7Fj~ d!Ml4_zkXM}8S&ś7,C.j39~pL5aed ēdbEV/~i*᯸OR񸱇P@TY-b/ZNh(lynLTƾ#!uZգmpSԀQnT昛?8LEotp=x켽$G\M&M:Z07ۈR‡T_Z{b'xAHaj(ZT0A 2}gg7#Np5KVbX:X,(psիV‡pɎu.6#Q'|jh0dѵ_TE=W){DidNAP:5aad$ '#jї"2^iRFOEGܛE?OL6&~|:5SJ֝Χ k&e1l?kS0w6lބXDttr  U+#8``#gR闰Nc"u>[|} {] +ʨru l"lp|ІId-T ^r_̨:bg}:n.N3~"\a2($݌yPT#VS\cK-ƕ:TFְ4n=4> fd>}~"ծe4'4q)ǙH,6B]m0eg :9C:RjjGcZ/byeQP)d) dSyJ &4͕iFc؛%`܏7rv |/JKi)?ΫBXXKþx#pbq8 xyDfא㇫Uaƌ |Q%_"DLR=፭ 7rW,~?2˅s ԰?F1PjTF@~D> ],\c@z53Ub2i(a#hgPZ*ؑK6[I3ZlLJAXïA!Bx|L_)7&9řJ{ĸW`+lS:DŽ e~x[vuDT57nߎLl&aMC4*`Y,eeg +'j/>ɀ)_ :.Ɓق (Rs\6uc {3[ueĆ>r=H3T] mOg15l +  .]{l4. yozpoϟʁrޫ|9@Ԇg6LiXkN_ OMŻ?3/?V_ =@8i"4'?,ʼPVG љzCw`pv;N~Dj/vlj!mugg\'sY{[;K1*u:a˜)dNJ Q1}u :׽hڑ/AR0vjbB[G)b3GsVfpkTs⠎mEvmXE`{ɇZ_iu_~^F*i#v`ͣ/%jԱc,@ O*8 l˟jG؜!S8ad ]<&O_DO<L0sglo.B7Q kU˩H ;r3jsjD y']˒;2 M٫Y!QKJpCƎOqə-,_J [;ݸa# O۶m;7Z ־{L} qW\hOO[egyrݳW cV/Ա ;c 0E>j)@K[le2޺ :urˊ@* TG7UOmS)]ܺ.PV~urT/ !pP%3\k֎dv^ ٍB;jUJ: 6o}cqm|NM\>7'j%w.v4wQ J޴G_ 8'n2ו7,.} n:6-P{ç= ·T2F.IvJtA-:~Ρ}ÄɅ=^-PK|A1E0&nuvola/48x48/devices/cdrom_unmount.pngUT ]]AHPQux WyX~eWѰ5̥r53i%KK\w˭,6lLPDrKslL\2y?<::}sw._e۾5PɿlMЊ U8z!hfDHDX`XHh©07Fms `M.=>#emVVh[OgAjZ)+!J1? ʫFZ!! v`SrSXe|zoa N"}- E8(|53:7I6]$qH4[8)N}L˧]ŅSB5^> AMJ5>ֻ(cV=TM B!٥/#nNB %l7I\\wt˥fe؉@0X ;\pp"ؕ% F GZ:y/]ФALwiW*pqs!,Rg8ĔҘ80|˜=]M^"L~<]pw?O:%*CP:R >~ؘtbphڞў(堃a<V#wNn hk;f>;;$TKxS6wǍ >(0ƥ NY\z| Z-rV@մy ο\2 01r#Pǂ7~(Q˄IJ,d`ЧMnzH?F5< QtkG氭N7 0>aU"+e)qחqX7e6I= jևdl:ĦEoxdR Y~ mQ ھy2bY&g>.tswgѧJinryg{]T~>;0p4o0}%*?LNߛ>uUX; ʏzB)4Q:E~Q s'hmͲ;8s0I݊դ}͑"7Q%7ߪ̂߅ mC4X‚7d+;z[%xmb.Mr*I҉_6_uQ2v)%j?9bkd"4z\pb.uGѦ}QiNA~EDWRV_Kֶ8s"cn抑j+W~굧9K4J=Ϟ/5w7T{KKspJ\햆FSJ?'ZظF+4܋ZKG,$BBrκ%t?'g!GAnn^bUhK${}e>A8n@lv9 `XtHg#a02l(у"IӼL/G[RzjƉvuB5]wXv-JJ mZV#Na{CxBʽ r @ 0q* yd!tI6LceWp9Ke% R7fk[pj-V7t:1T iQvF>&HiEW&XqX5D4wal\th[{QLRğPeCs/rNlB^2H+ nuk@!wP1'q׮j5qOIndU:U,t0uiMV;ph 4=ؗV^iD5/F"Ϥ5yjB< cx+T:03g2XǾ.."/lٶun:>*=Q! )J?7!G8xh4}䑃 oYAUF1ZZg/_aȓg΄Ǭy5ǠQm 2>vjz(NZ<~UȂ}% ߾bK@G'="s˱/j&{RƬtr $*OҶ$ 446.ȕBc˲ty%7jRk1gJ)jk<-@ޯR*qec}*t&>pn&*5TrlK\4HX8F4iBnc?eH`֝Iho7wtqnalP[^ތ*%.@PfӇ͎N7hS]N?+5;n3+m o8&HlDž ;63"2E 9ˑXY1YJmk1 @u) W1S`ic^"%> }]ihRl4"ه AulϞ@{q2mTYiQ-?(2E*jjau@V J$W\dtTޑ3UwWh=kf!([XvTx J3a8~xl LĀ)#|OxF3&'A^),+h!E+DxF] g[;t"e ,BW.wmͺ'OYj2ȊQT)^{et`3< *y)ʌ,YݚֲQڜ\i-? /.% [bMSmm-́@e?)l+6shsԨM{Yn^P"3bV1Jpny&H]'ݫlO[L!wbz0t,-x{⑲epf'"-ii=~5 QTI?K0(ͼ-1Uv$alqF,^ǧXP{4WuE0o}'(ыװ*`itDXG/ ;朼kFnǀ]ԑ)lA%-#̀7Xa {3V,F/ #/[5 1gn-R‘z9~tm&q(Kd^R4m /͋u&ܼ9z$֞{H£_bi0Ib]҅Uu]f\m{P6}3* uIy~z! qsPPC$hꕿ,b Ҽv:y)\FM%]Tɛ¬'9F&3\I#PkTh'o|N A\vA6wVzDI1ux_V !Y7W6^c=w$,@}*UR{z 3+j+م// B{W?P/\:]j^n]2sI+ipѝ+o  1vk0Iِ?Cj )Ç?B¿ _?ܩOIJ6eGVcb4" `kJ^I#ۛ,+"ܼdی2պ;Nݢ8'u=w'߷kiB(xuktdFkܑ;J##vgLM[%G5zu`ЫqRtLBEln:"+ޡO=~:*Q}|!n3˯m *zǢHhB]ry\f k\j,l2/lfAZC*iq`H1.ii}9?*WvժsߵDt"_2@q(ssBz}0/xǨHʚ:^^0Q'\ՙ2lׂ̪ţ5vO*-y(?获Ɯ~>l}HPK|A1~'nuvola/48x48/devices/cdwriter_mount.pngUT ]]AIPQux yTSW_CDB,CTEd`Q Z$@H'9c*m(Cp, LһֽgݿZw>]_o;5o뀚s?z)_Stt*S1RB8)ic1=:cpÊ8F?zh+ A @­(a`8SN9~$Q1W]B2l3XM$TamSc\!*g誻|[A R."#Oҏ? ufhI!=jw|lc%'K9 >|1 P\υ,K@sybfQc&M$nlY^ t;d:քKgNRH\b6`69@oE1)o ;_deY`T6QXckwjJIg=&ݟW VI"mK7.l yJKmjMnJt7|GQD_htM,=ɭ [je?&N{%&FO5Cwl}MO(GռoC(p0>4AaPY?xv׆l`^q{ G\)RZo ߿*fmxә@UB::jND𻼟8^#_TsW=GM_@ǦɌ݅6Ci(/_N%Yl)3FRsر-u(34,7$iihJ3ľ*coXO4RU]dGx8\Lg0xOlkyss{@VnkSêFܥ2)ɓ:?H[ﴁ ޓ!`@\G_:F)hN{SNk9}yԫwoP~ 4,(Vo|WU,Ci1COp$a<ÜauōDލvtuO$׬M4 ߄Z6lhFqDPx.9kaյ -$ڌR'}ӳ%v(ܑ2V?.J`v6 rTkֽ=~%ckCƛ?п~ZL{mn'ChY"/FK9o|jEAx4ěmLh䧩46}E\oPfZ2jǩTaZV *xjx@UeltmȰҊbx0*qecu_pzSB0lP gVSم*bǗ8f%$C+fo 8NN W4l}4,~".Rɤ>镯TArD9m5{JdU6㰻bX;яb;9aP;ncne?OP׺ik4k<@0"renf\QQUQ?+cU2$T8 z?|5qq5+DKL Y}[/ l?+V~F$ lxT$??1cU U\ +)<_靗Es$7sZv(gV?[aqtIT=au _k,   m}E1!zyٽ9BՑg/vʧ$;:h4!#d[g(跶Z@ꠜ.@upB!'*.7_ޛ߯ߴik,3lE˚t/qỶS؄@^%7dZ 3e ֱyĩ% .РGQ`SE 鯶Zyw(*#߳ Ac)M]C6uWK)0`| Rzh S'\&Y@ Vw6|M9Bd&0X|;˫kaIg"DNn p 8o֞$6O2%P=_TӅ'4 L&75|t邬Z.S_?ZEeX=v2EW0!&wلx}yh+mcjZ hXJÃ̈-2TI]BTW%Ι8NP%bM,pA5wZ| u#vdz޶S!k`6Ke|w~+q_IYnYlg[>TAK aZ@VbEXmmω#Uz&z쉹̯q>Ёbfl"tQHr|^K `UMR-Q]T/kq\Cu*z?-IU,'c60BDg,'J$+:#GyQ~9%ʎ)Ҭqv\ExQ쁐%O]y qMvFB.0\$Aod7܁Yz|Y%8EFJ4/O-aW=[%v χ$j[<7νw| Vqx=Of=c!LO#t<>Vl|)Wuī~ 'Y_@"XG\zhhNt},^^UD" cܚlLP{c7lʐ%g~;zʫA|bjhdTz FU# vȱ{%v tFsA*-b-[Gx7.Xl5[5u9 o4a8N=$8A}1O:½o R7=sa*@̻H*޿u*\]T|ݒ@PSy4؅l1b).L׳+nY7䊿cZת7ۅȳT\x? Hu܂l1i%$xgq0H1Oo\Wǒd>44[0>ȜW $qc{p ZxZ Ɗ@9}zxY%aUeί2p5#T#p̾tST.AYT f-} [B% h'@Ġ7q#Uh6ԒcAV+'"\s,yԱ)|<ծ7PvMv3> 㨍~:~0 UV`zXdcV,s#0)nuvola/48x48/devices/cdwriter_unmount.pngUT ]]AIPQux Wy\~}qyZ5%LDw[ѯ X4ef.-SX:c;V6.Y["ǽsys=ϹdSz1`--P˳F#| O5sFg)w1"O I߈Nj0/'TR`$`Y%dmq[]8.!arT.B[^Jfk)e xx'f[zwg2ҜBZǦT7L=K '>ĻpA(>BĦ**Cz" #U,KJ#4@0? i>K<LCt@cS~zZ00Ut kRkܡDRHřjB`Ltap 2s^-m[{ρ~0"N lCoOBg4Ce}ҦDT28&ސ*zBS7ҥ-L$˗&{ 6Lcq X񽺤w|SQ[`n kc!&kCBحͲO({^牨/6+Z֭E"9(E$nUIȲcv sYCnTEG;g"V44%kPjaB 2BPG0`G@=jc ] UCǢJ mw!ji=uɰ:ԆTsemfiLR5B ~*u'u !=%r;fehm>N-ik#t اf⊴ug^s&ωɓgeD' Dsr;M07kvgE%%az_)81Di?Pa[HLD%Vؐ㧃ajwjzT(i9GwXØki)asO<8‚5mӻtt XS2`W0n2ZF^2`>,%VPAso fK6Ot{ CC[%U8M(:kWGbeVD%O^U,||Dxn@7p>Q\U[@(ɵ+X6>=)(\8O*gLiBlf|MI Fsk/KDLp+RY/1t6yZxV.Cvi I@_Vnl^ٖ3Qd#m~h +D5A4LTzh:ԚJO E`+7B(>x~$8m 'U }6%Ey;;+Qr>-_C軆E^ZX߲rq س gu_SQO`3Xd=S)u_-J$U 4Ip#7|V|A'.PK|A1A ["nuvola/48x48/devices/dvd_mount.pngUT |]]AHPQux X{<=NJ٬\B3bϔ0S(% ,+!%E>]|TTؘktO#B~q뜿|^IT7T@k۾eK_W? :e-*~,q'N:qq<E3Ga Z]@6|Sd  Nmwϯy7;CA=lXi07'Rk U]$"A ތꗝaJ ˲^~uI~3= rgDkG`b OMk,23CyZn!׏ب+03~jH4'㌙A2v"[wkb? ɸfǮZ*cdbd.yXzANps]X&njj7? Y}ωyx@GpQ%Yf5ĉl&h.24^W`%lrHwG1xrR/χn5A461>&J8B~#GuPƹ+1n~ '"¿,fC%}7Oqkѕ S5g~J3G!(?`M9 䏢/?Q50?& 4[~S O8(B^|Nζ/p7sJt#2^97|kp8oT JAj8%87W ٺoI=9uԱ9LVqc2:Ɯ(y7ZJ*U۽4kj [mkĮdwd˿Wߐ XP!貴3:~vU0[%rÍ2L$WƧ`p嘢LW8w|>)|bKUNvl_5Yzqb}6#+䢨IT/8I+g~S1$!s_'mC5$n` +l 3gS}@ qflܓ` RQB-2 A]njrhQzaرHan+ҧt>F&ǯn7n7"X| e)PJ.D,]vwGX]cXan;tf";L|lYL2_'.6g]gfCW4Yxuu/qMETdI+6oJ_VTwj/<Ѳel޸=4>-uh9e:2\ft/sBCmp6WX2Y7\&O8NmqHBQ_[%vJmm':[-D+Rӧfl &]1?Q&m ;(3 ,Sx2ƞC/hL,F(SvR7Cab\Ag]= HOrzW}啐[)G1'1x04%v^t ~!@bD%Cɭv?y~v.&U-&t^'Kz/ӦØ Iep-: LR'YzF7Nq#0>]́|X=Ė]MY1c> y X|_z .T'2mZ>22+ c/ᒑ 5['n' {,LX6(IFmm=8ј$S*^C/YOxR<`]+)Kfԫ܄~dHq~L}^ZҲǁ ܿ&G;D1 vsj,h2W]NE+ 1aCRHNT~`ͱN`oY;XFA_|⾫Z'f<^Bm, &}gdR @DXĄGMcBA_Ğ&wDާ1!D⫞.%1{yt?ʮG>6>.F&3g.\{mcq׹u-ƥf9lfKo/3c֘Ё^ ۆZGg2PWN‹1>W.OZ!xFZ]_cfUP\e)Z8X>=Q(H3By%F'6\,rOuQ%36zllqdCGEKLA">{iaF*') duJEWmB{פx=)]cU;qQso"i$tJwcx~15N9eہ>C!#M12vunhF&4S5Cy1ZtlE$ҷ?d`S;uG?+n>2n/FUU9LRUk svq]o&tN;8tnZ^A $^^ھhީؼ|ϤDJ^ *cR.h,XT3ާ.%&CFVv,:erK-qX-­ 'v& gx?)/뽰p9|`>]ѻsٖ}*'pسhvU޵7HHǫܺW y35uUXVu@?$Qou]P!UΓJ{#˜Kl>zGf^?t~zĨk\`+ICo񃚳FvbS.ӡ42[I9A㶣TN|]HUg#* 65r.qUZ1Hm&5)@y s Ty7KIkV =-MU^-c/G%91cez3+e.h Fd菱ϕ2{cE]`-4|;J`-5ilzն\*RAKIBD*ǔ¤ۣgik3Ndda5YĻϦ\\VM`WL4b [M~!&>$}[46 d HW2AD&-O ˢDumJL`t/.-5"-aql];~!4q{75]CFd]5s?bQ!! IitIB{\sC䚤w乮=^5k 㸵; ]:t^r{BLo1t7$ۀ^Qm{(pi#[C5Qۇ"/-Ir;ணW.+G2ц`¢滮ԭW̝?@R_VU=-XFYʹnbN 0άc ] R^2 Cm:Ldjh;G45qN}'枋#?{CKk{Чf*잣m vE|\Cxm |HroZuvNk^?Jo9f2j_WC߾}#ωu{jTC3ܧ%?.IuAG }N$4j#73 f_W<9ROZbH$V!1K1mPq(Q bfN8b;x}>Փ厖5 lq)ZVq爣FM!g4(y=d\=N;*Gݺ~g;lSp. yf< t?Q"/q/e⊞)w28z=د7¹-ǭy)= ;hZL߽}~$Le,0i#B%R>u\ݬ,\yoThgqѰTc< JU Ě:@[ 2go,)CDln#eXdΔ)݂87tء/EQT2G#C+[ Xf;ihhYX-E7K8`A5[,v-ԂAեYH ~Lasq#R;<}jeтP6I/|I@l{m_|hб6Ҩ&d3`c` .uU2 ɰ G~"nZAUB @U՘Zj2߁n77 4m~vSp \M;ӧJFQ`2m1PXUWy ,7ySPK|A1$n$nuvola/48x48/devices/dvd_unmount.pngUT v]]AIPQux W{<lc#6mrY%m! Y2rr6Q.UHR&澍m~:y?y=yԽKV.@mZj U\2jO Tڪ_b]cG (!aaa `i3';DA$> `d@; alrss-**|mcbʜ! UVJ3+C R(N"}EfM5\z~;RkȁC"X5Up;0¡nl,pCp7 [)b]u4XR/J~?PyG13*'sD"t2; ;;2Hrbkj*J#Ʀ.84z`YHN``h8hX-\u \2L 8 8病,|oR+MO%˓{ndCAVX6cN[/oG}mSV&̺D)B?M!o6{o.0.[ҤmG?dZQĿD1RӁY#d[oNjJ$FڱGn{xh}kv$$wɾ}V&yUA%T0C/a![;9#!ď xj\Dƛ6}1J[cM *Rۅ P' ֘t[USD*W:ҍjI~XnzR,[{g呍0h(| XAA_>?ꦦl.g?cFGӚ(y7|e1oݺSRTZ/ȨssC >64)-Xۑ1 >0N KL+!VD!h{|`=J,ye hWٽ: ~Y>t,T[s9^)~衭򦫬[fvkXLȕj[](9ɈQh tj*.A'7.9R:4 FRLL,8FLHvoyT(+[ie_@&2v*y{p舯P033"4VcuX: [ܭ@\G^_g&lꭣ2}mr86  =_9=jNR,n"m`khk^@gxX̌P~ &_ҸL f5lCbU=K31e?AˇBV=[L$7x_ascZjl%iwD#aOztI:+܁Đ#h9Pô u3?(66nÃmH:es_=y{bd3aIzk:w*欆vce| Qs;b 2 0 zgjj,Q@e)y~f BWf+6E&<-~3Dl :yEGт& F=rgd8w7UW (@W%`¦NYĵ**)r_/Jn7+ ?0+FS_^^P3ZTu#}H$ʰݥrf=Os^OrGT8u [I~Z7|r&".7]M-[[sjBPT#\)qgf796{xYU|0{ӓ#Bjc% wU|!Ưb6+v=Zt bTBV`Rc[0D˸ 1+VG?$ED2!8a)rgy Wԇ|R5>OAa\Cķ)1x;@|d&6nC6[2֚d4]ķg :j]\>eAZ\ Nuӌ1Kt@iNquEtօJ#8HĶlL0qPW5@"Hn'Rk6d?!Xkai0\t$r]' kIhp:Ux'k?Z{AJ3D.[oŷ$gOM5+E3H+;ء6k!O"q[:߳aW3/M ӆ: -C鉰 }q1gfè2ԉb8.XdHp i=G]0$0&7*TXmXb|~6o&TT8ℶˏ 8g+IwD fTg CM\wq;n600 "OltەM\p#85 >R0lvxͱrIߕ?$'y"S_1DAP⒋fŭڗzrlYf\hKl=\#781#D]'NWIQa,'?MZor;$J)[ޓ=(*S=^UOחUלwszz#66tz&~iT+QC> &8V?YYHeBsٌoǨBVl斍u61zHhވ<Bd3-&~We0iA: x!T?L|!Yoל@h++ 7 NQxZA%y`yAˑX+HRgFuv JV\4&DF1ضC/d6v;%$`qvq9T$_ p\R1m ]/Srb*ы󸣤iڲ˧"vR;59 >:_ABNס 6sJ[ry70zټ!jx4,_1~9Hfʠ'*)@ ?rP 7OvRPK|A1do 5"nuvola/48x48/devices/hdd_mount.pngUT r]]AIPQux uWiX[~TH4KK,mвꘕ8WVhVKifZN94dV4NB&yEߏֵ{Om^o]"8hM3eZ'M6O/3%mmTږC i/PL<= 1>"^k 5qa(Z ʏT$m?GHTsIADdO/6e|t3DdssϯҜEDM亸# 1d\J4@.KKԖd-j_TXW}񲐹_e(e0=e]Y)uG?3ž r-I x9Btӣ'}JX}hsLLґ HkI|nBrp;KCk|{31X%\GsZU|8z~ W]#dP-`=xNZU-sU JΆn(*4a!_9-j2KR!-%G9I@s \g:ڡs+K*j]<cnu}WywC[˩tlE/)#,#|˃wXexwˋvy JtMww3SewSOlJKEd )/Z5_4I?oPty{y/ $1`OrO_7+}g֧=2lWI3"!!mvHD'1\?HQHYUz#99X׈Ge\I7=B5;ry_j?,;ިX-9v'fED+p(b7T( 3d+,hliDbܯ%4g%#<>ȥjSKf!#p7GuSSlm9z#AͮV:p]woV&\#m֡ L &V歭&TDZ$pp#B";P8p@[1\iB7PT'nYz9]VJ)./[lAe&f, ?O3^׹V|1Ud[iUV ^ߘ‡_ZiƱBųu'%;陶 wv#y;SdؓeJ&rw3 C/ |FwTk;w" DO+K4(R ܏~>5g◌f.P^w) V[nԡkABȼHtvpL4 .ǟQw咳 .ʙn^R,~^u$nJߟh~.=3O)Dpƿ0˔0dޭ6dǫicu/>/˳`&o~.wRϩЏOtjh_=63eW{NY`Z1/)UC @ 8/kV%Qg檼ZD>;vLpIụZ2NXk°Kxz:+r@|.A◈<ʬ-Tf E#4E>led9j9OM-Dmܶ4OJN757'0!b^G On")o^3qסaz/]$nv%2]Ցv1_|w/}, ަ-ce.3BD=1Es3AZ ]eff7/Ք5:xas7 f9tiwkq\kx1oK!^%OB+߮KH;lb~hLA0P?)'>uKdAA*F>gyyR{ ӃX0Uu)l `ˬ9ʓn O9.phqmΤTݻw|^"ui{V >jJG{NG463&߃lY&;=u8X}KQQp%|oå;L.εe#y`cJ3^Y" <>M~+䟗+>1c##v!Pțj_ ;sqsÒh~ОT{$79,D&FOvϬ`vpSB)QOSB5Ъ8O30u,#a@B3 'NRNq6&RR4TJk8´"Fg_)M|c}+i#aߤWAJ̇H!>Eܙ,0so2?"Jx >NK>'Ą ,;89DQ^쨍Y=eҋqFv}K**$+ 0"i|ٜ'MjSSYI;A #ߙVSzdRՎNtz<\]Vr:|)/wHMR;sLL2VҿP:tLTiN>I۫{$2b#,2DxᛳTݏ9"{xk6KOT%-AዒF^<# w2Y"ǪYzX?5o|Y0wYwdrz_AMg~1d@Ud$I<CM} b^iTLoCY[O9fm@R\!"l@l2c>=ͮA;%C*s%eAR_Xkk7o?PK|A1x&٣$nuvola/48x48/devices/hdd_unmount.pngUT l]]AHPQux uV[XSW>$'!ĉPh* a$ND@ I"X9 V;ACe bT[a HV "DBNciak1ezg'7'VzQ)}d-p҇pѴ\MY=eMJ*9P?V}1^~3^p|sC F%ۅ pNg޲YC.7gppϾ0秞g@e9&9!C׈d7x O^?FGGCK؟aӖ)&}di F?QUbZyK}hVJRg4.ըi^PK*$5`f=$P@%״DSYyP㊠Hȭ}9/`K({U|vKc_<8k2F;(*4 XQLlyUީ.ȵ:9{9uv`2:)⤶V︎O>z[Qax'e7KxQsW{qqF]Pp% E\l_q(ģ_<g6aA)oV16W< wtZ"ɰfKJ"Ml-7 M-:3ffd3bc3$mȕ6 3o @7S3B8Ȝ"UOiI{Mrx(pa!(['|Oz禑X6EjO뤝,9pv_HJJ *,JN[,`3Ǐa"*ȡ[m7h&7<]c(crg[&^V_^wVQVT~6\v![/G։"1T`.ojP:)AH̥qoG22sVرʊy\J=᧳fW--Ҭ1cGY*Ϸm2 A.r 彬BQY1fA442Dߴ/,4x sav2Vz؎Yr.sQ$Aι-S4L#݈?Jj6߳o8X9KYkA17Y4%MhWLF¦gdJzX|irּ_ԥCScŸQ؏HG^ I'\UԻWKss->^PJXr?kiB@EbK&`}m ;d*kʰ]TLnFD"jw(^!}#K=A'Of6vd}(N,@ǹJmCaE\/Gźovc@[! !>J&6SJb[u'ՓW.t?Ț|yKFw,ȶ`dʹdKc!WR-)*{5pg`jTl3VʬX:*b|Jp~TdWOny/qʄK(:Uk~t#YX8PI4=:N27z|D| w'=N@>=/v͊~<2)q3SP3sOЖq,|$P٬9v -'a6Դ{c%3Y(M!?X2?;m8ɚ;kT<OLta\ܷ>VuQEPK|A1pY6 nuvola/48x48/devices/ipod.pngUT d]]AIPQux 5V{8iy焗1h Jf $IŘeemIw䴙1Iӵ6TK9qYJ Uʹh|cyݿs#wjiͅjPk4:NLތL>=u Yp ;>@ 9mwtBQ/Jz?ӽ7Ս)c0\/;ϋϺ)nw/Q S/-X26V80r)ڊ"'U}*7pXX۷]ygP0:ZdjRm@rځ$RF1xFr'I,@-t %a촲Bcw^}@BʝM~](TCY^9:p5JO?}9Te)rblbbBhF~.MdyPDu>L90V@ix6)nPy@XSZdG|"E#)S}mFmQN{o3C^AvZ%欎׵_㏎zHffb~BUKa}0HhS& H z@EOjK[ʧU(ON]& ?m vzJbeD;̬nRv{K 4ų@|qroz?g3W![mಫ67;Oq{0ʑ] #Ku@szity^,?f9';Ldӳ:m#ihS#CQiXEyaŭ8e@=_W沄 X*fy RtZBMHP9߈MMjB5M\Z/)0/xa7˚6VDm`/Z:sfJbMeaaE3oY2Gҳ bcU+:M0Ijxꢑ|K'z*DCc/V )'`\"q[4Tɻ$|Jݾ}F׻iQ1Bitl cm "rن<~e;]^?$uў˒=l9` ]o^-k=\,GE<}Y,5;˳MiY'\lPJQ*P/xE]T-.@DZȐKV}a[cC y 7exJaD)rC@\$&U$#E5lC?g9%P UJScHc:+bV˕j#5I0u-ripoVcP8B*Ώ~^bf(gTtk 1Cl6j8oTB,T#>مm#J`ѹd{ P*CsDź*d` BsW{Ys[yڑИk&843~Yz 6Dʬo;;E[`3Eޝ Zf8(4nN2i55jkkI@nGF]z#1۬!>.d֢X)m⳼B^m]N*V] 3kdykyu2<;b D|}=RJgG'~ e? ^rsúLe8$@|>e"UOd_ gYl&!%3])O,!NNzn7fdkf"l+kM6]sFM1=B&tknY޾jkw<ֈ*09554/P +YQ ({3v7H/ODZt5L|t%1*k˘R;n^kS#.J<(^__K"%|%Y5& #2ePjÌɿ{?>kAbx45-N M1ރCߊ\Y,A&_dIXgfi<%u :]EZ][HCh>A3s͕͏$ٓA<w.#j|BvDzn~n3g6;_PP qE"j#R#J[ɤ-]&gF䡡Eg^BL1mR,Mu%/:`ѯ48ZB? C-\ںJ.Cx%y).yga eBRZqa^C60guҾ4}9Ĕr%3$$䰞8_K ;v9o 44kZq\U{[hӌ@H`x-PK|A1pv!nuvola/48x48/devices/joystick.pngUT ^]]AIPQux W{0xHcxO/u+}祯ɦNkk4z2jqgC^|`8|aK5^dzF{G&Jpf+Cᛦ{99~]bn^uE@߬+e#Sk8^q",Mjoot$".+bN<.rۜnP,uބg@➇7\ի|9Fq"0~& qa@{cˏX֎wpOƿ酧H< Um}X2/龿yƞgMFw٥]`jJ*^ xs\1m~.:?)k;yВcV %s YkՒ@X_A -hAR';9NxN_x(73CsSFa(J짴]82Ÿ@Evrr_pA̔˥O(b)A~npx;(X.my2 '^]R:m:}(8K\[K&LV\y {Y9#|ɼr`ݶa񱸳1L{qXvrvgTXJ>BA4^^=|# 핀EL8LϐR7wK*+}iɪQnD5n٨:>0*R0 ƊP> mMuwaTg6ebb^:(ulH=AUV~3/o* GjT,觇afۖ- r_A_@7|Ij=ܨj 2I.^r&hnXUScFZ9v3#c#7]4]#_XcGԨ 4e *{M}mï55D" KM#㫯"ܝ(u #L*̂R gF2GJX;@;k)K54-L Eœ6uusZ? tR{br0̩xkcB)_h 028{D? CN4F EIݮnwY"[oC9QGǿFRBBG?)}@飶&ذ؁9WƐЎ!9jv<hX Y8%\9mb{?_/엫7_S/-> G6hѣ@UoE"h*3d=h`*x,nW0_,`;"Nȁ?M_LRk5Ď6-~q`㛋Qo~uulJg'Xb%8@p~pz&;'R{e42l\ȚBC1ۙ$njX}?E$'U0NA:gԭ 4^WVBM99z;wU{wigg.RQ=Sn_'?H%s]nx.M&x,Lǔ2+er1 9ܘ“ͪB0|W󢄘{b* _V[@^N=r\*X3u4?wo۽>tf|cS;b:'}J.|53fok N!M?2:MPqvp B2v-]qS.{w<+M%b3 9]:K{c7ufm8kS0y#aRd3)kGu̽'^Yhb{' M1C7,W~YU 8"?5Ƒu6˿: Ms1^ZIE!SC*&|r W\fVS_Ww@+߯ޚY/lغ+]\Pjf`d|}ذ _qon-CP(D-*yEiobYG46>dQ;5߁tTf+CUW~|t&0\Kw*=.q 'RHp;7x&dD$ܸ`7'ti ((⩗OLyCkꕱgjze T$k\P+F}$D&.;_ȍ;)KUU,|y.+ؒ5/n&7A;״Bٹu٠Ih$/*i,kBU)4_]2=7p٠`\V!ֲ>N׆t {'+K>|w t~N2b5 &BlT4]Zo]|brQsVH"_B1lw㖽JI(PO"$WگYeۂ1̇, a p !TP~[O,U8C&|?.>. S~h/^zatig;f_qh$-N"^^l ײyuK6+0+OUO\d}kcOx!U8Ԁ`|?ZkMڃֲJ)>k##vOʼ 8CG=rA' dsin/Ӯ:D-^؋꿳h:#G$Kh{p+IjE'bKi?J w "}zӱok+/˳F9mTAݷ#'IHil2d9Uvq__}'m&wFSL/<γʬ!$B%T q1M W,̷󈑥?CJ"p\Wjp9A[@ #p'<Bk.AçElP&m6+ųgx;_룻@#)FVL݃[{y9 okx+Q]W|8A:2Hv|7<{5gisc>+"nFe[Ght"B  ħwiA"K+EՐ˓>n̸@亲,Ԕl䴍K:;Z]S{֯š KkG~Z[ʙX@U^ԂfLJA-bE4b>=|K̀~SI a \a䅘8{ѣqAA'y i5sCqk1d3- I50Ħ[ 6Nҽ=ד.=SOl|Ct|g/O,lwc}?逘!c@\/~֮tPKt911!nuvola/48x48/devices/ksim_cpu.pngUT gUAIPQux UWwTS˷>IN(IBPzI+*A(E"+Wxի?Q\"ȋެ5{f֚g7߷^w(({6oyK] @.Te*#13>g" -6A#ޕ Gѧ%B I+:$!:Ztq˜B  w=`vV7WpQpNJ}@rIbf #E6(r:\Iy1F̙6Oh`T;~+ڪ|%]gt>ZV9,;@Q|+Q{쁍i=ͅ*¯;$YcJ4us_{g5/Qƍc]2S:FVـy~(,  |Ѱ^\k%I?ULk!]-  jEY`/+ǰDDS:&gG|xa v $(iY>|sbbb S=?Ѐe}g B P Z|c̭ZM!C5HL}Xc)HM:D2.ښ%8&H{jje%efj&<:~\iޗGS̫Cr>4/i9rk4ڝ(}|,RG'q@f+Ay[ȋku nnBSOxU[:]]\c1K.#PD[b-$$(n9mB(1-G=O1vkyܧsUΫFBz:aT #E5M=W#ը>z|{QQOHƎM?a,,\TEtzv1r6z/c$8rNZs|۸9ClfF8Z^ү % $2K0GYmPk>0t'-]˚c6pewR@Zz$xe#XQWuM|th\n^@Lj҂\;Ͱ۾17))<=6jfhΰIiMWkP>^ྖs#Ec܆# Fkhq=l %"`cFj^Y̎2Ic:%zmU3J ts?܉Rl9DX]b`+xO0*#7"ڕOyV([]vTx%ǩѾ޾/^|*\ $In(wT_6 ܓD88⽴OQ)W0[~WTK`xs7>[GPssgBDV"䔱ϝryhe8)s4*?)KH{[z7SaʟQqVI(k :dhBqq2zIexQl l^)&~<3p}GQ+O*#+`(g8w)6DM0r{[j1'yZ?/^]Õy iKI<*2T0l?_EE\%ۀֽcf-aSy*-2x?[pMtK&D|BKiy ]kOOnr1BZygHztyRl3 DrZ}G r鿘L?C܆%UqkgglkEYp ı̫k~}+5n)|-Q dK9=eAa7}FikǬ%tw89t`ʚXʯ3{WiUiclII VP~PTf0tC!*{r CK[mjnL 7oRSn/'eSST0EwA=hZhae] "mlǔ2;p҆'rCs.T|ч/H eQfF[Լt%"^#WB+2Yⶹ*b}8UY_ܪ Q鋓M/?KZ*0yUajI6I\9AOV5no7PU?OQIs}TJ.qd N_O2C`87R.NkT{._i~^Х$7sRJZ%V Db3Dk1~}RKt/ LW-O kY7@B=xsA AE.w]Y9Ixll/x): ٦u#4+j#uNybuP,9h<Ï=Snq:qW,Y; \]3?w}ΆSZڃsֈ&&-쩆_u[Zޕ˰gŠԿ؂vm`;Y@^W}NEUg4YnO!!>\Xڡ }̬{3ߕΙ ײ1GmL ZgJGK-݇+NxܑcWz706D ~9֎wTę\u9+-?eN$^خ6 ]N^"zZIʭ!n66(="">؊Aـ0*Y{S|$tC am|no_ans6뎐Cb`Od56M64bPm.UدcOeRۿ]#OtںSjFj*o!Ԡ.q y"oLnT+N6tg>>&ֳ p>`F.L9u &p'o4ŝ= d"-w^8IQ@0]ݶHmHpk *#\dQyZRүaV!mx]0*{T(O٠˸s\x}XkyHRg7BŋK?>n=Ĥ߱?|MG5j<8J ̍DuqJF3m.(8 /jPK|A1Ynuvola/48x48/devices/memory.pngUT T]]AIPQux %W}\WFP1,R#TbH1˩^7(YRi"Q\Eirm+ղe>j"Yis?}sz5 |nxӺ;k2|, ;Ӟ|tk/Sq$bXn"5 ;8ܞ?naIգ(cZO1v5!uӵw0;N,&[*{VL0am߶a|i'ځˢ,/GKuHո/B뵩"[mƝm`dv J/:0C3#*F}B=Mo-3nrvVwΗb̶^Yކ 0Za>(MPѥj**+kmH "l8~,@}[Nrc/6OZѥLWeWv+j!MoIꔂU1* mQ(j'8%.D2a\H/U(<%V;"Ѷ9ֶfj[w;Ui8~k_u 4~8K{}9NDOn$L~hޞ'*=k1ʎL0QH0Ķ/b?!6Vhmڲt͚Kq)*N..!ga+dQ咹YVQ8G'0R?Rl{E+$Ok=g]˄rdN}1&X-n8/ԁ%G*-hϋ4 M94^`cj%تhi3? HHEGt}}GJDC60_hLᙗi[zɛ pD.c,PoEvOvښ2ߢs0\|`_[ӤsXe_`%;+cuTL؆q Wn0GƐxRtWZ1#nf]fv ^fI=y+9-ԝUYot]߫ kr|y֛6O(/鴳~ 䄦IW~KhX–@OE3,;/$\8 \_٥TJ@)xqT]XiV.3(5c6N8?&dO6;o>f{U?8^- NDJ6$82N'iO<K aμ\0eɪlY20ޒ"M+^`\V_+iVU>:Y/X8uMrrs9>s8@XpA//}@@Z3Lv]~>вbCJ 4"rGQD*2-5΀,iLٰ8JH]#A6n lsu!LyzӨ#Z):ww].:t!^ڪٯmɍ#>?U;y' ,lʤ!5ЋXGxp鍷PkIߣOc?^R􅙔d/Tzײ NarI#=GsyV0УuD|:ZqXS Ҿ4y}|jxaX>Z_b"gUSuJ(ޘCg |6O?&g7dc.l81Ig}uK}4[CHFB3)ĸ[CH%bҎ m&>i<\yII?;`cK}Bmg݊Rdaw vaf!L:[H67NX=E K3e/MLUĜe d(4Kǜ;lJwPRBSVq%cqاD͘23V\sg92䲓̞u)U h #xnj{fOґe*KDSܨS~/U`P";u!P&;MV\| )J{ LGfApz۳%!Cfk+ŴQj5fRז=dY 7d0jíkZ,Vgp;WM 4Wp 1E1I]ZZCS9R˹O6u.0>WxګصbTQDc3)GO+8ōlIKH4=<>>YFɆJ `ԋ |.5WH/`-wn\sW`X3o)ӬqW0gc>K97C QMaSx._dhabM;@]w]UÃeʪ`{q Pt<Η/t>>}`Yݪ 4GD32L-f\Y!9}r@m_/com ?lu֊e|=ó !GL @"EcL?#ă-Ew6Zى3CBvf1.ٛtX^zWoC yZcbmHNHW4M}#5UAEϘ)xW_?-ϪCU9csR yutvۓ'}NoaPjɌJ*Ϋ w<L*2Գ.e?t$fS?`s0ͽ3lB׍I$C){O\/*ѓ:7L ۰WԞTtƇ/>a>ıl ]k@R d'NjY}XIך=n^Jvx[2{5~eԦEhP\dBYωG7y}kWWZ߆ ޖ +[B=-|hL;?9Ӑˬ?ZɄ#js2 zy.Dr7iwg/XēĞbG!Vb?l۳3Z&вN]G%N̿:6F2 --{BC3qY-fJ}h;X-zoWӒeZ)<^xRgDrsBi㊭[Jr(թyur# ]>.@S9&)E2L! 22qY{ǟpu%w!.gֈ \mwy$݆\=[̡`$EI,knӼ*Z7)PY#,e-kOVטBך|{W%UFFNu/KSTJ|d~reIϮjATvG6C!k0<= }r:(nbVܲ!X=Zpml܇x$)fIuƆ_A~&Ě.%{E0! 3w"^+^Q2_'J0Ȿ*J#!|9''KCu >dx\ٷӧRl'v!jV'{7Vp:3g]?UЬ!P}`͑FVi{:;(9} ޹+:8Z[@(Z) 6g?FOCLd!%7Du816tJ ܇V]5d*sF+RmlC'zR]};?{f~n:PIMԔC*~8MbNLV$hS?/ŤqvY<(J[:ҠM ZlS7P reel>ї> [F(_d|bFYޜ3GX-]7C{P|`ܕ4d׊W6P Pߔ1Ť$J挋1jt ^ڌ: T dSZ& ;x?v]e8f1 Y3CUdwj٩^tߞh\Y6Fp5+.0vHQ[]-`iFʶ>4,: gwE ∵o|^ `ң;O ?˄QūDPvk=x|rޔ[ea;Q0hF. /n$&,3ZMCe;]/KOjЗAL45?: L??hqcj&@ ύ'FeC 35Xɉ"} Kut-ĸ?+D8=+~&^i.,YТmpx?5&Y=-r ϼm˩bT/Tg튌Ie@[0Vz 0&"5'E#ygN(g$eI3hU*/]N Fi*LGǹS]l;i.CB Ǝ(u%I d\u1\UjǛTt3i o[ѴfNLtrO[ `%ŷXĵXwi;58 2\ {p-Ws W )y>';B窙"{/XpLo~"E]iG8m%a, ""]sWP".$*Qt]J?-gJ'D C]³íWय^ѹ0ϥ :\ k-:XwC4h_`G̓R51՘yAQظ8+׶6I>[ci"9Vcbf(;ףp_$:ۮtFFKzR2:z.f2DViMwDv =Qs~*i%X׫3q0π47 U[LgCv]DvW*V{al؆[Y^VВ+\3 Yޢi%ȵ jRﱇ~j*Lcc-SٱQ\'$c"hIY鍜8?LBF[v jE{!bWz <qߖ,]h&iPeQΏP8Ӏ,ԣGij,{M):^jQWl<(z37LtA"FtIk}z$Jh. t;v.f%9Cj0Gv[~/;3>mْNHϷ,ӤGhzSxӣRF0%nb A~J\-= 3v ݨTe/"^K$;# Hl^L++&B.iz;HLUwߥU(oU<#Xy(6ءG#K[C+Ԡ\Yz䦠FK^LYK ɘ Vh*\B|VG)7 4_r=*ׂykZy -,J@ ^0el1'}QQ59 zpEKC*L8mԝ<]jK*MV ujN:`Jy,]c0(&,rb.2C^͒e<rg%s9Iy?צUW`(N%,~쾴iU^3wsMcwZHqMMkHs@lyv t]/,9i@;ܿQ~0 &X|#R/93F\wqV#t-`-7#PK|A1/Y#nuvola/48x48/devices/mo_unmount.pngUT J]]AHPQux %WyT[~Q_rMD)h)իvJe h%f&ޮ&nv@p!fe%Tys*Ee;k9cR4=ochHxh}bz/=*m,Q `hdnxן, nTM2p{@!s? bW+Rt***Z`e(KҚ<zfvjXh.ju͆tJxR)w(y{۷`Vt,NO?W\͍!Xg&|+L&,HiܯF0Sɦ DžK!Ԏ0SBST"?UKh7J5JEhWJ>oߑ<==Iʼ:(˗7B1z ''k&_}y 7-5AX,N(}L+;lЊ"FĽ|v7+cE<&}/t)ON2 AXQ\ǧb3i(.OMkE>C[pXQey+%KaҤw&x$U f8f+ ťmxptK[5DK/SkU.`/+\dG(؜*fGrH?4:UZJr, ơD-MB(ʞ2Invʂ5vշʳo#JvbD8-  Ko鴀׳B m/Ox(?l8N OOң NLAQ$_j^ N`&'"dA|!%6r9h"3ihAח uvzշc-ٽ53fŔmpE{Lqz DNxt &FHiiջ1 c{N߉}/)Q*BN8#H=io+@[.:2?Fr/0?Ȯ߾[ZFDX.S14e_=ҰΛlP$@\wMFM~#:qOfNNR:!\)"Vv@wl{G;opwJW -F \e]=o%ЗӡY F{k IRO>G9Fl]olCYp&O~Ԭ|:lDY_'*Kgg3+z s0;0u-U-" '&\SS9Bl4G>/aJ,mjⰫA[Y(1 !/-.kLJ3UryW<< z(ճ>Km8y,sV*BݢbV@"06]3f >_TzNp2&}lwKvG^)ɈIU=w.F(5=Cg+b{Z+cI6" ף#i# u kfR":I ,Gk'PUX.QZf;x_x" /| XZA<+jS%^jkOU{B>-B˲m\lm0IKL z*fMOx}Pc1 s$Z<3/=Ik/lgɀ}&WRX\IyO>fEЃWueQ?Z]lѪxy!͝0\toyzZL߰*Z(Sj*KqE֔Uсy:5.GFIC7;qk^]zU`׼V@C7L]2~ix@)-my:"A؈tqf֝1h ɴ_H*jM2q6o79 _~=-`b*<,؃"r > 7Dȯkcde6s=AW׸(:y4QKy g0W-:iTsmG`o(X1¢Srkʞ-fv2-:Bv+;~eqPYۉ?A}5MD -KTWoL_ -։P&'i3CX;.7S{2A &p^ƴv!NDn~}5a70_J \y- DAZX71eqfϓ (x7lEXb"D$jZk @0;zTFG01FH=܄"nI{U#i{$Fe=Fr.tق\nnOt5a\p8dru6 ୧^az+F*/hۃtUhKCA:j'jBUѸDKHLjZpl֭Hqre^.ē;^"ul&'ɽa&c!+#۰!Cp ҍW[ U{Np6Sy.c p I840y~ΏqKFAv҇)f 3B9ї.) 27,1q]-v|1?[V8-YGGc/zA}Ca)7 AVDEwGoA|Y& F[^E\e/ak @3(!dՋCr= -&bi {{);$ga;nێL/bKi>m{;ol2W+.A=\`7gh'nHK?EM%/Giأ.Y[Z~ltF'Ь:`tV m|9d-MKy~R'9 o:'w[TmE vsGKl7:^ [{w 7YBI)wi0uuOb򺢈-Xڍ F=Z2&σzĺvG:o-9 cSy}gKKM+݄/8Mc뎎*}> F [kF@.z2oLFzO,uܺ6kI"|X)r#f^zp>3#û/r{e, MIj{I:5C&y7D˄cԿ<7IIuw ݕP ~Ž]aoވMvgvǮ]oW˘?K \Q/\(dbfҙ?y<= ؒ\ܲdU78ٍD؂ߋyC~PPK|A1eZ 3 nuvola/48x48/devices/modem.pngUT B]]AHPQux VWS~Y/ ; *at=NBJ n=^m('LxXN`9TRwܱ!ȆJD/̃WfU(4pIqǎsttR-){[[<N۲qrq1 aQinwg[np'B%~_2' 8 n-+wWɡSPfZ=;y$6^n eh4Zf/vE-!Y.{觲=_zyٴЊh?CH`2m'J1Q ol ]\\GTij,{Y v (tq.[SUUuj gJ暐5Kipi_eEPZ;h5O_/ZnDZ^!z}Ǡ.X arl-Nt)YG/0p!^l~DLq@4vHBy"PPxt@W¡у&' jX% ڿ<;88lǷ{+d趠.`F )hQ"x㏍SQȣY0GdakkӯBKX(N/7^3j`I^Յ$ߟЄFo#mv SB..{DE LHR'O}S^2}^^B.hXd-V3ۻa屇vA îiCe}yr5qb `DV unN_F6(liR\\ub|@VA.%Dz,lP L\_/hbIWud]Seb : TTVA"ޡ O v,m /zxg_&Y1 ` SAhPĉeRT]vH#@fDQ%a7xVaJ/3zՏb 3Wze!?f'Wq'}p lcڸGy(S^W~Av_a} F+ë3{Oۻأ#ޝBvDFp_x;0×,[G-ݗn'%#,A׽Ue)q`\(sÃތ3QS{n"Pan*7vaX*bQm4߆dӴCO +Cޖ4w5!NEq/8؃3X/ƛ:zteJebᗂt[`LJ?o"")I0Pٰp- RFJϷgsg+v:oQ5S#4tyT-M k7}a\qg*Qܚ 7ݡfJ#m+e3(~"ɳg[7 U++/b VYß:(nlyE l'0JЮvkdº l,hw?iDa6;)47hm5m^jll2ohe3~pZp]|͉O׵j#Iy-F(`a&Hq~KO:ڼ7M#0ᱻ~UN^z/Pk86!b/̖zj" k9mϨf.ʓͥqNlJ,уCIy|J(j*|Qbz'3ȹhq%Ƥ]A2h|l|rOJ洵' Ƀ)(㺴FX!6_ZrDp+0zJqY>넳k;il 6~0aXǢN dmk{pj8@7AqjɎH%g+GsY ~nos_GwRo5ww?mʡndMN]]AIPQux }Wy1#c.Ax!AQA c;\<H!`MM&Фxo h4Z`QguR)>W𨹥żrkGa8SӔ:pM 9r8ڄWs=QLiXhݹ}Gb8qe%vaf*;; 5'@NIlvo6W$qD$ 3W'e<űY0Cdj(* L-';1O˻<0k.*1m)z o7]GaPsK:k/A $ƞB;\#n\&s_&ĭ@s IuM<+mv_DŽ&Bç^W+3iISFXbhXTo\Y;$~LnQ?RGČS܃rClk9mGۥ_%ٹ*B%.vneʬ/Y~ZWW[g'\1-s0c&;3'{TX2E7B/N7QQd+Ҝ{frUl؃oڄF%)ۯ$ZLY)(..Zaǻ5J$|49#cr!枑Ӫ=u?vqH H.QYꇩM F^]!KG|0MYpCC:Bz?9&H흳,H/wwwzTT׫7qu^^IX Fg5S9﷨-^YQDdlPmF4v U7(ΗGtb:>dt ԔGkD== ?N#Ai;ʠe/D/VD(F)v6T'GAC% ̕7('5c.ó|mʾ[fYvk6򑃹 rVfsֹpE204$L$8'y!MR|ZEqF3Q֎ζHOVح' )c5F^=@[ pH.x?:Dٸ6H$mnjd==7!zqmP6]7HwX6e(W~& J~^~7rXQRʑrgBaVpB#zGƐx Ym X+w"s;Fp^Ji:eQRRUr^<f&JvA2 fX~ 7r)\H3ۍF4uqұԥ.f",NN久$DE-̴H0#qr~Q$Nj|EQݫ\#zO PNs % myTU+mm֩rM9.jV$)㲦XɾN&F8?ѐnB: C5ɣd7C?iWVITbUa۠ ok-֣htIWI9K9"NNO:(yU)kM=IމV?FuPu"ɚLa0mWG eͯBƎq)<E;޼-RhEzmrHn|z̆& ~X$9lO9$`B|=uk2=a%691Yl\tnt1TǪ$Y0X rcжуG t hֱJ_Z%KdYU1:[3oSɄ%p Wn2]V0.}[3'l-oŁcC/g.?ʔ_m9&paTbpHt=Y a6I5y&1~!!,bk9YkLYD} 3@ Vcl87T11=5_9% 9k04ϥ'=ǥ/˞ knY2aZv9J<6.{ ѾcRVJ)>]B}= luGtC)^]IR -4b"1-9A:($&1Q9LQ85;:~Mp?^rE+N*lF]Q:rZ[>WoI<ǵ%'29e^r Pwj[ؖLۇҀqYpy`?PKz|A1JZ*L"nuvola/48x48/devices/nfs_mount.pngUT 8]]AHPQux 5WiTG~H$ * (! IXH፲Ui@ZZ >V@km aQb% Y7ܙs}νwy4:r!Au_Ǡt>bKc|2/d'ݚ'3583+`$gL!LKٝL>q'1br_Ti4I4 I)z,8Wղ]\НDF磙96% *|B)fTiԘpr/Af.Pܞv-jq\quumi@4~>_JfxrL|g& V~zezyي+le9Q:k|}ҿ'?iL+"d"ACh꺧Qt%^J!(%:Ġ RVӥ)L 8JQ NR3I%555D2?QN$9IṙWCv+ G [c t(ylO۝Z7D>EcoP;Z%^}{˜u;U; ?GR+/^O[ȱH@BgENB0T$-O)O) &. ?|Axzz 5H0`.`-FrX1î3 uNڬZݣ*7فCޔ$Vv6­! !7(?^tcSY5FqDdx̎`86?͙3' * ACޤ !"6{։R6:]lަׁe` pc]^r5BwJs_?Zϳg*)pqn2dv<f`ri~*R!wmcT +5| k+7 Z@+qR?fNQN0_9־/[FF~L`&a|^ztG*&E}aP(VPSi0m_iv8|u-66G(CY9RFX1&{wE գİx;bp86IhN.m7Ϫ.n!WWFXI߁pUUZTWOɜ%rnL=_12d8ejjC?tK**66JHZBg 5fbiZ%i3`qܩ-gȘۺ hX,le;R:@|;lK*؇[3uW/<|O]N@Wjmg/zָ, zN614Uӝ^9J:mJeLnJV#|O2? R! ` R\,W6]+IXå':[#+=s~Hu#SL}U i\Ji2XL^#F.a^Ɍ,ق鉞8Qj+ɭ#xRBM,Ŕ0fEK;ş+t~襚R }szBK;l~bO*bX<OyTzT嶣(毙4<-1:2_1LNr;$wR bJiX[I3t9'8_p=;g"ӂ{?S6/#&W;졲c72%f I6%/g&ݶoy`,LI#T="֗OQv(ύǸ宮?Bn܍\K( ) : zUƋp㔎ӫH#n=]BuO;GАI\<zQ!)'\ʔ} 8-(P_ȡܷ4J)T-W:Yܯj\uʥ>[c Z^[ ?œ7x >^w1ѧL&%p|xE+3ہ|V-2K|z17-1;R 䪝m)ʭRJZ]pO,\/k^ZrѺUrw9B13貌 Q3V2vgjzJ6zhVޏӳEj/qpZ h;8O,Z/W}'0.Qbm %FפYh->gیJ"n޽{ȫxSzn>qE)Epk{Uݏ'=]Lz ;qVd3"ryʖWAS(oJah{TrG5⭶|e|]2YB_ʃ. aGW}Ncʽ(}SBTɩʁޒ 3}gacL0f򓈤DqW1`v&2Oxl \c[֨(VQ6!I3#f*#IѱQ$=,'AGexI7͕hT[ Nk5Z ]aEh#<ƶ[;X0J>)'7u䪩3ڊ`DYY,O7.їjEr{tU]"L{tھsiǣF|a60Ԛ_Mv5NNmaQQPְDnVsکv!d5ĄLmq !ylMjQ(@r>tHwl> ^'13gϵH9g5J9,zЛo8I~l]! NʿԳ'"& 6u0zDgVeB\D+1׶=YlnUs|~1ai& S 8,Lp7& /BӮ&|0<֣(_WAFmRAuX~T t_z"g|Eyu8rnX7 CQR~^oe BGi! ̉>ԿZ\XR &x(+_DUrfo{ ~O0sq|}hb冬PsIs>RG$۹\?k;O$ߺ+lxR4NWe!s@#dlj aD`DcW7^[DRk.G~16 ;Ə;f| BGc[9? w\ "RѻZi~v|a[2~Ydk@zH*%hN>_?,ޯqvSABeO&O-6,{ xht[o g>Tj&C325Y_:(4V?7;("0{1{Sj'X]w ǚ5K<ɲ)${ͨBxYTM&}tĖ֣1'PٞfH؄w ݺBzyALt :\*@y i`AZfU2cF DUVR]]m/#DR{MJM-p% 2Ok»B{V''gu@d%bc>>> yu#:T_ %6nM$d S(U+#E Zi*_Zc6`PK=bes?XxʾLE ~zE>hjx9>VV Cvipr4sp^|ÉHF{&4gDp,ڽێKӀQQki'pwpO99KMZyΒ"kqxyZV e|~$[QB KlXL`94RԺ%^s |%]8@A+^.l}&Y&Ha׿!,+dMl=ivhɄ{2ں;*W@CL"7*7nʓCo%n8(|6<g0H"iy }<0hzyOy9HYʧ-vxk&  !N9B\x^rssR njtQۋ[Z!s8nGbC}v/ Mʘ$br-71Y{봬*?ckޠ{AT082YNruWk38d},˘:k9ZPQZ ײ^{T"؇5̐WP'vd>?}-ʕ)~V =BRꃿNNbkc|bT'% _}2.ٟ >=Y~[閻~ a2m߾.}O=W4uBeAFCtİ1\вZOŚE+ᤫ~wf"%Teu{I4Vչ=-X -VXTtgx5R]Oq9GCmG@Nv045 =$.pΰdݐżRo69LB2{#ǎ̓ecH'm0+|KkZVg \t- 8_F aHtzaĿg~VM&3tƺE_>'$▆s13D7 \#_}MEFS)B鈙v~u=VHla;+=^|ZRdq.zC.I;{"-}eV<H@ےZY\CC޾V h 3ЋDž{uGDxi$EZ`qRʔWVho7;͙$#]uOMTa:̭gCM=OӲ[ϼIӥXYʼn,, p>ӁEo<88S{Hdwo: =h =I)>ԿgR? .)H(2P!uBtAqک]ŏguKF Q]C9ϚX1QfWk{l}NaP2X PKu|A1ˣ6 nuvola/48x48/devices/pda.pngUT .]]AHPQux =ViTS77$ $!@(2**PBHZ+r(j8VU0ĊkE I }k}:gOC`*'O)6:p9jFRj)+rN&w2 _K3S29w2caSTdFNfr潀0, ?umbb`E}}PO|yzpr7_Kml.g? 9L7~9z# b*>qѦɞv)vG}6\`0ĮN0-#ZLC6X:U-Er:B#¿Dv0_}o a\ JyVL7kkٯBO 7K"#=;7W"XxHfAykZcmw{0;|JY8F: kՌx=#xb~ CxOư/U 9tY @XQA#@J+3! t&{jL[wHwA3R/E4]&Hl#pNfk[ܖBIFv( idasR$uvG*LZ>mJp1(By~A?vԸv~+;dKf{Vd5{h`۹B23;VB1:JtT@!OUGyf+S輫N?;d'^762e<ގ`3E<*/Iv)+èI#}o90*/\!hrPW,rD35QQ뢃EAQ#ltj>w8G VU7O@uCl!>S!BWT+w2id],iX2^$/f C||WoQD/lXcUkB C!Nc,61viZgp1e<(Fbx`fj- 4qmNLgnDMY)1~dʂ@w@viW)".#8 ^"bVE}HikiGWjUc7ofij/QqhJWH?&[X %m:RF@\(eK}yX"<,}r?aDiqqe8=[Јcd֝U nE?z9FHQK(z8: 't@qvX( S(k9SA#.Λ?9XlIȌbTN&"){*D^H}e`П=0[*-vw}p]r__<2I$[垹^>q!D1<a#l gh2ֲKu2LT*+-dm\c0CQLM}ӳ!.ynX_#}ƨУݭY65`yg.]Dݓ[a(͌=G9`"ɺ7J[5혋wT94 $ S!x7\v_THJ2uŸ e.drr…=1<ѕSw4dg8L8}f&ɐ˥%DLۇ_XiBH,{ee>kC'ܻ<_WuS/{G=GtrL}ڛ'٫2,RkX.I ɍ'Y HzsI¸VMQlZ ӣrk!_bbO,S#B6"&k{}*959#lvai|gSsNѠ;/kf4SQ4Jxb^~3~{?w{Y*|,ȔOɶRݳ+Z+Jŧ -zn\faBn ?"_e`5]zt!V8@/M.I&T"#(LstnMӧ $i,%mkw HF}nj'n/gW~3Jnu"=4ы|pF LJᑡYfW;_Bۚ*͗J"C``ZYtB\.Wx}"n[Yyƻ?nUKUvR͜D﹚x3C|Jp=Csz";Ofx-mN-jyPP E߼象<akldsxhbtoi*̞x16GFq찘Cor$+j@}=&3+ffnt9}ho*7v 'k&S^ȟr+ūF|ǭ̈>#wG]AYzȚt:sFт:b1?, 4=0c8̀%dg bC-42CѥhשBpVi&aHؒ,n9|VȄPwѳ"η]ϗ8N 9WItYm0R}24Q, $X?PKr|A14e "nuvola/48x48/devices/pda_black.pngUT (]]AHPQux =i@S&!  B% hITcnPYEK%Dii R'\Jm>JP/}̜s˅qv6n6-\eec\k_ku˚!)9y)?u8EJFږԂ:8F+6(ܷyaϰ 4[QQ񍇇DZ+WnJP3پcRZqAő,6{kjZOOY]Ń -|n؏>l+@Qw4H]=)5?bvsY_uGό} Brd2zWu"QWRB JQŅږtv~(0lfw(G!mz8^ ufI6̷dOs_~ ^z8^WX"5,W)_a>RT環u~ԥ;ʖ 2bxLnLⷪlkQUm[_w9om҅\RjHS\}ࢢI? S4{63) d HcTfjMTtUŧ( 1/l+l%0PM,(|u3^{M5ZqU?d4εݩʉøw }JVln5$Ehq_YSW~%`l2!s.(n]s {j0duAܟ'' = %3a?OS6J%:˴^fhF7`wʢ~EII؆=GJleAM8ś Y!I6(V_"6E1%d>&7|b],U qj̶HcH2+1A黄^x_q)յ=N ,RlM~ov ;۟@ 6Ea+\l0kɩGlVf0e9 a{4evH"Ra;"u7*vq+@"ԋ:-A#I 1 I&kG"lĴtcֈF- D ,_+uξoJXު}X!k}҃#m$N'IG6vÐڛ>৑qĬ4Cg$Aà}&$$ĀTs @mgCpڟJ [G|Aq%}5GRwbl%y7urgHe@L4$]/Lǔo~ݛudE4B) (fߜsc9d1@kgun}>QvD jSe5, I-^SL;of/tZɄ>"1*SVvPZ_OOqt5^:oRNR1I!?=4t(\ jrĢf8K%(Ifm4\NhEc_2|g}X әQܟIؚIv]Nh;PHޥlp3<ޓM-C|TӋ Q8SB+:Լ$\1>,!/ 0.mMW`LK#/0Y2EAcltrrº'1/R[x 3rKvazzd?&$Q9Au*"ڦ~}Cr̓ENM]0|8+Duy5qBm:vg"n"EF`;Y3;6θzn,s;oART??vIJ TbZ|w#>%ѥS]x-UF}mw~CMuf FX^Cd^Z53rb |i!?Y*Jk gĵno去`rx@3MQz&NЀy\g,NJ+5Av]c ` Rg_R%PKJ|b=Z}x0N!Ab?8:i7`Bajwp؁D4<}R]޹Hg:\8j0^paU21H:&^T3[ƥ`B_j]Siܯ43~"T8sOGTiV oH}…zYPXs`YY$~)˷€EQ WQܫ$fr! J| E UMWKV4<*J^-3  !vpͭU?|HOwH8pz%R4YoRAr\7Lĝ;W lYV!t I+2j c^Pa*wIJ`:ox _Gw6@e ωUYtl]WC" <9P$_}^{J2U+`d[.%}.`p'<s?={GFtIKtm_|#bI#Z"'7 a3\x?ҲD̸y=}NȾr#1ezys `nq[]IFMUYZ`):hݴ$-Wu&}|KV"T̈q,FJ ]`;2AHC W.o.)@z̙;ˁG <첖UԽxeL<$ 'QtdXH5/qz+h%T .Sl%Q/gG%n1[zw0ҙ_dz?apJ>60;fx~c&np,[oB 1A181,mW&9'*`5_UFM6Nqv1?_>OKE0g^F[ZT@h\KZE"p﹨Qn m"}N 8|z m"[qY.5ydįPM:LMJdd#7[_'ĺe Ąv(9 Y۝l֕Zہ|F 8:ʅwc7ΊSȶӚHQeE)g9\\Rª@rdKnO ބ5\|A>FfaUj%+Um#?MMdo 8#'`\\g١6都o09YQcL~XFoR*?ƅeTJ^%yyyA-bY+P~*ÀNtWB |.e=R{$2+KeP%OA o6xr׳L=[Rnz߾טcĬueL9¡PNMYyq v.x} z}-52I'gT+zpmFNnx^ٌQܘ? 893'Y]V$HL9uM7?گ)ofV/@z0<Z|ෆ`5rQڃ#p3UQ^VXdO׋4wN |kΝKD@n3Y=a_1n]LrM'B6.5)'ZVtc^ ? uyJV'cڋo ϐYI*TgVne} Լ/U}[Jw٦ŧqƐQ2=+uU{9vwk 7TEo_Jvmq;el%98R"Y[NUgCh^RdF| ïء 4vg5['2N(S=WoJ:blϱ|vi t٨*WZ]ώڧLiF% L2;a^y񐱻_/ẹlZHݤa]'TY{#,~EtpmQ.eG`һRlalS%YU斕grйUUa` x 9ˉ?]HEM?y'"ᘹ`0 TK&[oOnCگ␡3Tlp{|ueKG65Gr2_|N/%|Տ egi{7/ۜdb(mv,!z8m̕ L&.!Hw菏лu>t<$` ae Q~o>]< ^`Nv$ I4k%Z.Q w"X^`xG߮{ ޔMpO}m_t^ȤKˉ=S g#3ik>9-& QqrUkPGEn}LߡW͑tРHPKl|A1LI[~$nuvola/48x48/devices/print_class.pngUT ]]AIPQux Wy8}hFuȚc3! PRt%B& 2S[H+ !ڷo~ys>y~Im S3zb`p1b;QU5?6mLH"]䢑}= \_hS~&b(Qae7sox@?Uh޷6FIDw[ϝ Nx< Ej4/9H# 0='cuk9q}Ǣv\d?30nfF7Չc]}}O`=اtniX/ϴӖz/K ~}Hi BƔT4K} !B>^]FZ)0`"ש~\)K4ͼ=pQL?e?HDtIsY`hkB']K\|O0laԏBd=2PcE~KS>d`Tö=v0J=t D6}ȤhgcS:Tofoլ뙃mjj1g-X2{~v2'չ̼)l3>~|xZ?,S(i>FWWco8hQ@Eq,u:/ ՕM}z=NXaZո#N_xi 7RQl_77o)C "0fطxI Q5Z31EhTcz*f)ԛ5&eW:'qw/v-Gru={b'u^hiHN"SLWz}tL;M'~|6BHA*ĺy_X=DomƼgl|J4҈\0L}cԤ.L=!fndɜ|r3]4&~Bb*';А-|n"O/ѐ0bҔvʳgj+/6ҽc'" L㪁I= 7~ ;Gp.5&=_D M7 V^R518Щ.Bƣ#5!( ȝh[3sg>fD3_|V8er)Lۅ\|ʌϝz~ 8 Z_얓%2ǣ_eօ,]&#vq@a ܏坼<:F!F4[%iQiUPB^7F6nWnR-z6~L/aFBs5`m!-)) N{'oVޘV 6cjGhGPóW &E|1QZ_38hytn߯>AKd ̒wt//"JڭՋ,ON@}V3O 6$Q\BQ|vV\1W%cV(~|K\OIX?+yZ~X[1ԃiՒ, kԌq O$q9 n7M.4Ob.HH#n+Ơ z*!ۀw9RĽҟӉ*RiF'uG..v^$C=¤u{JT4@ձ6ps6l{趙> ֺ*OD $p}f3799 `#^KP&)? ^5hB|]- 9i_zZ(1^PmmDU{9g6ZEK1c[s:#9 ȹopVSsT¾MJcye7Ё )-#{~lFbvcMrv]Og?,^d*@Eo''Y_z=q.P׳sՁ!mD||#bnp pS!kr4vp+dÙ2FG`Jzҝwڢmx4Lݿ35n~lY\˂|tY3-MB=~ I9vVL;TEaoL6륙ys+ʂˑJ}I|*n uV6s5D.@<-9AdzLVؾǎ|&>z=jB7ES|PK|VT5ϯ듥.o# k,r2Rȯn8MݒԎC7|%GkL(D=w$ԥ$ܱ)-4캕X[a;v[,^e}sMU&^'Qt`^שU'QcR QPeBYҵ:{,%%lYj(]A50qmq9kEv|ũ\7 +Eji\F(]\Fs'tZٰ)d #qkyO{H-]ť)H^+DWP̐Ih4#0SAٵb-Nvhu(<(5u@Ҽn]KK1;9yĘ4$k}'/al۾/!26668y/z:9Kɢ>Rπ$ 9٣7MY"1j&ttzXcO|$ʹsSR{Uc(%CZÚq-ܔ./J^d匏Eu T@KOVLQ@@erҤErJ+9F$dd|k9X&em)Jjfeˤ[kn!ߏ9>=7mA_Rhvީ35Q@&T5֮رύaܨȠHnDqe'1>a`!AgH ޵nß.wt4{`J q =M,kTe:ވа]?oJ+&9'IUTMSGgIt+䤮RCo{,{WE 2Wܙ0!"1ϞwU/*LjgoUd=m6`u-dpDF 5bLi{ AZ 9Ymu  >4Ҥ(lxs` p׀z߬J1tC6AȆ\QR g77 knE5y~GWKZY| (rj}PڼnzT|UKd[p p὎7MUk{# p#z(Vn X#\?GwV#%GJJ ԏQϞ F:3^#k>;6QRt}4M=9Sz% Q}u@XYX?}Ps:_s͛ٱYcsmn,e~0k 7o,q>mPVVR:yI4=ʘ;v|(BF ?ue 86vhַo.Hͣv{гِƼ(\gnF~\7աT$L@ٛnz+W O; ܌abx_#ijKbs2lbYDW)HהBvt$ ;O㒒zO)?g rj]кT\ׂ ^(>S%~ غ`Sv"@dZu۟&AhyH(b-ҫENt򎨣& LH66]?/W y!NGEEBB]]aF髧_'s!,fs^֯ERF!9F/$Dd7F &~ʪvw2M;l\?/K[D>,YGMGDY%VP]yڧ'񎄜Y0r [/Z[Gp/b;"KSdmmm_K ]T} BJ1dq{6s_-˥7/U$~w$$CAm -DJ qjh YO<EdJ9¤St@h s5}tswc+Ř rf[Ѳa'C:ŋaE+(KhFko-iaGCcȗg\T\-`]t]Z<712YDiP0[DWOKqgl+u!n:SNS S4i?7 y~Tb7reX^:CKu׉C<ќB.`1Z,ߕb葊QFFE|dYFA-l6ZRf X-HdtT#U@!%7en\^=0;Ө󋨤€K.vx4ߙ8CH/P9O5b60;f{!Ì wɚҢ%-8kye|N_hm HTtt]ݓ& 6H#\ daϒ 79.^X蠊J$H]e)KUPG2- iHrPIM ֑0U>l-{3d̛9;1nz_BJoOVFc!<ҴBF@_" Y\6ϳ6.T, x &;2G @.O`S}O ٯsӞS`C5꾵06r"*'PK% _"-PAfXbaKE~?'^ 9\|]Y+:%-b6Jo߶~1>+filɒ^N9iNIWw$A2S٢^FV11ae?-huShőy>1F6~G=Ѷ@3MCPf))aj߻Έ:T_'\'1H]X'##W/<2=U &UUrhN/י_|4}Q9+C5Gfg,2 ,/nߎaqQsD.xq=4MC۬}Umx>1i9u|}]3Z5d2>XnL.Yp"g$lz'k̦LFyPKg|A1܊| nuvola/48x48/devices/printer.pngUT ]]AHPQux W{8lal%DPqڊ>)LyTIJ=*JPꩧbT!}~}}_~]~]}﫫\ݭ~A{hBzш@U'$0bEhQ 䭇"b#'Gu7-$/RA^Mtk[G17#WQ! G ?gPGl*ɔbaF~眢49?ekϓห{0 hJ$ҩt mp\-= C\U<`oݻ;܉?Iޮ?f,*B=12ك)elo2dYoi]\nn) hDt\ 6+l{wTRpGxD[,75 z.8] o;PZwS"Wh+كz dߞv{^3:IZ kb_cůi}[lUo۶ͱC;#㛃ŪIIh|WPT2R2Xl+6IZ1R}ĤLS^y^ʫg0xD_bBa^Ma6&N>2(!؞.A~߯6-,On Ӿ,V|jK;qoJZTzqp*AD8޲TJ6@u` 4~}1EeVV+'?&Zk$hycclƥEF%Ó .8"Li״;/Si9*UE`?ej2n1ޯ!+DGRYV 'rA.o6 *I^D>ϗAS[5W4a5?wx//'1eQuƻj4L|6- .~ wA "# t6<()q'4zB/x_hZ\a{EsKbDqD0yZL6&d5OKEL\X=YDD3טjS<،De]$ordw<\魘y#[[5&\kb6%uHXiU6#;fN顜uYVtW%6h}DL׫~؞zʊ @PM.n2%?kceq%o3]{#o?-X{ne"l:"Qf^zd},׷;׭1pRm"qOxj3&8ABbOy#aFtSfN2CX{bg!IU?ɈU͇Ϟ؇B]P{Vߚ;ʌW#6Z-"HmNJ;ys?ݼMGOmucn ]X_ŅTZ6.S?F>a$U+)ayA49 xP:h.K13kC *6Xl3 jQ'k E$ KN IW)?|jACOoMňܗLu3(TJh(pT:.y;m7byt˙kםZZj`릸A]MH(q?[HmXzo3;E'sCp︛ZRrg*&CEWTGSGӯitzEJb[74>rn=T<>1g#XB"z+DâYA-89ɑXU:+`6sYzמ*GQulr{oĸE"XT>\\ _H^I$B@_ԥ"vtH]>nA2#{yߏ)9hȟXct^Jbit( n緎f*}(cTߚfay'#$@B_%xqF " LyLK]Bs0W t#`%.Ӹ<=e 3{ <LAD>Tz' K5B|pT\`aqn.E|ZuZwD`\EzspSΰw/v!m΂/LpRDή?9ap!)D2OxZff-7!ڿ1A턽h#(:cd=TzO{*p%6> M sQ\f.'Fmɰb2m_\;G6Rumm_H /M=zSKb^Y"dꪔkSp.hHxJ0NY1/s+/aY#-qL"~ 9 Ն˺3P>Gu_$~9лu)?_co ݄g|Wء$O=gLn܇P&9q38_O<%cz0~y0tpͧHj(Royvlr1t@~vQ[.}PKt91,j!nuvola/48x48/devices/printer1.pngUT gUAHPQux WyPG;@:) qBKߒmzku@.dpe ,S{8-WwHd̞92ʄcD%@G)Ijf,kXWhFڍ oڅn]mfF;`jL5&kTm( Z.3aK Y}?: vV 8CۗlJm:rf}vit) ZˬӼ[i%uߏ+ZBOD\vܧ)f Bi0&' ;oHm m~\LjfdSEy_I<f UjӴUqzzzߗŵ^pa\ b[{^^^G٣zS/3+iVFrP7 ZZ/])rZH:D޶V`eB~21Jc_gG\m~+NI^*_'W *d>~t[M}˶t#2333{XZzgLy%L"#Q>/PbMb< W3Qk#Z`DEqG9]h9<%A`\;p^ff>5 E=yU03D20Z_@! ) E|ӧ1 zxŠqGuuKYʩԿG\Y9tMNyM+w#!gs1FacgړRSlɼ5t^cenkr֛kgF:dL:?K=W矸竄ۡzdnu=XtU pfsL%LΑɡ7v3e4 amV݇Ƈ{f9_٫ĐY->(#'04OSB=//hoB=T0L׬{T#Pߠ̋k U(w==~<k{1Mr=/(6`xU,mab4S[I7eHS9"A)/cOB+ Օr Z5 R"pXjb5 {9{ ]VV*7e;_TK4َܾ 2h/NUg w;"_'Ȣ_BVM ݴ;4&79@T됯K=|K0Y'`} .lDb87Ber9IlzEMP@jL#6muc葑m!S)N!\%*j2,iXŖ&]9a뵇h݂;Q8#1?ֱJse$wV| fߝP ÈPX¢jx.ʺBp)5L 6aqhBބ(4 [PG݀7FR+e!pi8T)P?3-ۃ@iuK4\@|ׯbxh&`W*C~YL|ɒoX|)BnE=.맷>Ze>n760Q*m ɥZeDSK'0S4y"x nX2fH*hT35KRL]սjn} !t̀2wܹ˜X?yV=.u BՕy )g HC#&P6v1R%y1`yYBDx8x900гg:j?L Eua OI H:ϪPMYe\̺[b22|hL;}U4-N/,C'(N( zJv1!$a =(L[2GVYx,;εO_FamAT]2΢΁) }y sekFg&?˻_}I6>zxv@8*&̌4q=J7&#Q؀͛9/j|c@+YS "@oA 33#b'{v׿XYl²yJ݇8hُ:^Ӡ8@M_—|fgFQu.q`y2=CEbʤqLB^ƳDLvNr9ÝJyth],:#(?=2^ y;ra$Nx+jC1k ņUx84ûwA!!zck'kFqwْ= snDvh!?K݌j;Z/ uE w tj~(cYMuuuXQz~3oI#FN*v~&6;<="4\EA/? Do^?G4mev r8  !*#?/s@eO ^'x1A߾mIr5hMxV`I9d2gdVA>Zp=n bR`ŹWüď7 -Y8yN; ~э>_YqpU@Î铱ʖL~]*z.n /qSP ngI-4&h/ u1K&.Euw;8 ;;ה QeE(r˒k\,KAf+*+f.MK05nL(g =?j3%Yۖ۳.9h22n`C.f=ׅyuz;<邏QYE|ld&Yw!u y8PKd|A1~ nuvola/48x48/devices/raid.pngUT  ]]AHPQux V{<nl$rٖ\*[rLdv$ sIugܓ먦r*8tKsIr~?>y2KuPx-&"ci.eq]1Xk \=@ԕֽF /r[}\$r<;y;!Җl]U-"Ӿ!An.{澎=Uٴn`({jTq)):¤EüľlW,= ߪ(64}JX!!b_w8:?uVfR$)IF7 sIY#0_,wx3͚9sSK1D"ҁ{X YBoڿI%HwˬҁH4y64}^5}IxkOlIQe ,@خ{,&.6l\C$:-Mg [߰8Prh"X%tiy[K07a##kB.pNn+71Vj$.kR5ϕ<2za=HdItpFI*0%vB y)$%l25 mt9 3yV KJ.֙`4h]-- Y!/#!B e`VUcp|Dr_>ct!ܔ_/HQ~֮HWH8z_[eqQ:yo={L Xñsn)#бܢ6vSiCUl+.`KHLj} rSɫ>AQDSFޝ;f`|'^y4vlZÑd~D Ғ%g{:rUBvvbb†:eMq`Eߨܐ躄 zEd~ =z$Јr>kC-&%QN i Me*_3dV~[2ĜaC/D OAx]X S(C=`?h:<[j% Rja'e, 6uL"^zRLK0<u;}1X|;~(4`lnPՇ]63xFeYQ5mLVZǍﵵfxZE +-.ÎNyޫ_FsEtZi`ժ4@]9[ctf.4Rs(iew g?:2>:ZF( `?4:\p:LfM鞕=#/"z'0x!Ǯeojg{$8Zta'דS }I)B% GES+"^)BUB0Ǎ7co}׷.'؜%21\P/ś>sZF;S=xz*ZN2p`}-AǮT^4K mS=7L+ap[=BS8,pd((s?⠸;P;G]r2h:g3pE)]\]w'$|Mn'KLxND5E5.): x5 \>4Ҳ{ԩg+ب}̪F 龸MI5"tgd\其z҃k?W{;Jiv jZ:[lǭi7Χ3s~ǶP;]th?u{gu,`ѣ[LwXbh\Sgj 6P'?LZ!5ں'7PKt91)$nuvola/48x48/devices/samba_mount.pngUT gUAHPQux -W XYYW1k,Q4-QIsmlq$QSSRRf)Aq͵\SKQ|sy};M I_\};i$]˙LmZjӻ<}q P#b˜(>&#"1I~;>)j nG#ީaʥ|ԽNYԟZ3v]Ǻ?y$Ě>>`~^w $8. g*SR)0H>OԨEBu sʓ<*gt:i2m׀6>aP(,c<.MEeFW3G\fI†H[XJ@UL«⠛ B6s\nByzP Mz)[5swh_@ߛЉxp; ,qAZw\|DNA0 ޞVBT0s taBo)Sv6j #o [8NBíOQoa_3Kӟ iNL$IRfZU >, /KN X KbR(lUpS]p:)1dÆ+c狼+z (TjHmHbRA|F%dFj Z9=S1M-nAR#:oz%#{mgp$ E&ͅiV^E).(x:&D[; C?"lDMG׀t0s*:QG}NIi㧲ϐ6m|4!{)\mL .{EIGmBSWzlޗ1 i9Vhz8i_:sd+Y`tqK0bɚX_fV?&yHDxvR4_ɋV1Xc1_,TdbZ -A5{Uȓ>GobYH*hᑲ(Z̳{j;0ͱ3~(=11( [J`p3L/A%;Bi& M85TȍMZ/+$/yV<Ľ5 }QYJ[wV޸7{@5t z:8#}[CۭWwRR&};% LI.5L.PKR6ҧ&w׸U@ ){\r32'(|f5QQ:'NF\v rd2{JdeP?Z|*Π$}4͸<!n+NMQЮex,-:= FKrr~(?7W>wKߡU:泪DD١`u4sJBgLn.j{ ڐtYaf vE'\ajA|j_jx_t: tui晴}@'2=WlFX6Ư0aܓtArdl˯Qp9} 7|B,}S q/&'?@)% z>_×p8͈( vlkmW]2vɐ[ Ce[Ո=vˇEcfjm ~*]{a:]Gs4|E&B46:x_"M++wQoCW;dr?ef` QO!?tj0r#m::/c9 rհbh$N>\w8,y|tc&GFl؃=.Áѓv>76!دkxЖCǓ~lIY(=ghr(dؒ4_S#ɐU>;QSS3zmLLMcEk \tk۽"}+_Qw@x7x//}sNi=3`ozJQD;p53DgN%Z{[zmwSEm TL9K߿|HAiP)dWWӒ5LjW/j }m f΅yOO~g_̍q;\K0~YiEb!ꏨ3UAY&h]O]خ-Xٺ!`M":6sVebv:L[mi)7<,֔Уّ=B)F*FK[|]~{}&o뻽aX׾`sF"9t> d^BqmM r-oՑg>"#3W8ozN Sj"4fS}nܢM\rV?M8K5Uoz*y^ꏽbEvHOdյvǦ$M7j+WP6+3C3 G7/O'csP̩CqR3r`> UK/'\^nhLJ߶:G208fo&y,ߧYC:dH  RZb ПbTTQ(8cdcP]NfxeH>+5L-F= E# \JP)7gr:9oG^J|HFmMl>P=f<Y5 epnP. ]W""0(&>(\9|#p4+WDoMebd描#$XpXM/ɺKhaJ%1P؊c +H+h\4>b*瘶Y?3 gͅ!~c ̠d穌KSzW1Hji,>k*ޮ7ݛ b.vl#/HmwDzs3,Dɽ6LKAwg뒖'^PO "7ܯa][JUݹs@WWɹS`T<1xqʠ!Ŏo[_]F-?u:y=Q 3"Px՜8뒂XN9ԥn.6{>̱<1"fm4]bq]LqXRC[C\HEΩq֟P?9XilT/();ų/vDF`bgK,_5aAX԰}p))_D/eE'2NC[||pˆKw uQ쌵%R ;EbCfRQnK0vvtȪi3 A!;~zꊛOu[|:W_ eUuYZȑ'U}_QI<*+}:Z炨 1ыR|(bŴKG>n My4V.@ dB? gym| 7bCc4% ==p-BeKKrW&?4];lPK`|A1CQ&nuvola/48x48/devices/samba_unmount.pngUT ]]AHPQux WyXR> PQ,599\be9fifʴlJKe6xIJvneep KMS6(9582|{=kf&sM0 2Xگ z`S٫pmQڳ"fSLI ɔQIv'@ڬ4z= NJJXXDwlY{ymkKcg?bSS2~1ok(}qv;{vxttAggRz_QF:01"|ߏ,4D[ر<<<I $$AlfMH歍]Xގgz4B_V8Gf/&MqMs[Fնȟ}ٞ!a ڑc  OM>$>&)xX,)cvfQ1}õ6n|InZD[3>]> }:M%פo.mBl7B=ln ;(I0oaN+ i{y)ũս-]ҍ Ϭm1LLnj) ~@zS q_{vZ{@'. 6L|=dQzF.S164'mdj1F:$N&4w^=Pnb|Hc,dX>|Tt}#|/%TU^.FΌAyh߸JjjJ} |&MVZr&ZQM6SZYBX'$ʡ 9C'n=pmoLDM2^I܆aXӶ)iiX VR ygwf۷wOҁAl_rzcIb,=zsue=EA4Rv(1!;7l8C0I+7W^0U lc D YswGHR<.wR~C:3S%bpY4D>o03t#S^}v"BagW0WJfx QCU tgޥJ]YFNO5{˻imM'2y0M?I=V%UveDZQWvһi+hcܰ?\P(LtzvfW,hI wa)-sE _F!-&!M3sb:f(@>hv{L|H>|DDR{i t I=Qh|`فEǎmt$t{ M">b۬^+J"QiEd9Sa] E%"'ЀB{Qઋ6 (!=N .qFVm4Q?v7=R")f8t,tknN4_A?R]0S{:!)Kr6?@'}9r9W6\ r3%4Ǧǣ ?on:KEO=B=stL\a,#Ւ'y~$JEc}T~p_#䀩_$znr>k ^SOo:3\E# zvL0.clVY;LEuYUU44QTh #8¶:[,PWTxl z0Rl6?n ŠdfFŎaD |.볋`".X͛v# ˖ZZf^*s%%-^|9aq\ ku)03s<J%Kǧ1tm=vfE1h6R{'k'\NtgtsQ*ˆB_"^QBА18!ק#`g=gڈס IY:'L\,Q; fł_O3 mU CV1;i"t~!4+NRcyvqT (ǕhVAmY _iނ@ގ}´ ؓ$bqL|(EǼ>oEf# ũռk8[WQ򗉨|{  %ɼ8>s9L z-3) gV]ZdJhRt $4o_XXXEuSy%$_ΣayDLrS+=}ՔQT26$1n"J-L xp~*}nN2뛟-6yvpg{;{boV qZJFbllL3IB\xtзU4^^Yd&hnnsT +?RVurqNy=7֑1W%a쇱t(.+sȿ}DĞ.a\$:--nu\cFpo7oT3}Ȃ ~2rx1H=eMk TS4C>6?-| MF+hX\jg#z~d /gT+LlR+Mp_1U 5 խ1ogj"ZTU75 Qds⁽QT<ΚOZHW UTϲ_fsKJpNYzR1d0l'VfE炦'=MwX %aH7=fd:{*,)TZW1I9\MPf,٬}70 &?[9]R\&=p/ QY\:G;S˛uNcc#))"¹ O11dr_7a**jG'BYنBMl'n33?m(MVJ{tӃ6+/ L)ʼnsTt'Pmv=O'7_Bf+PˣGͫ79ٌȢ؀k$T01dDWz|OCpHOF1G/N \1@!Ыf.OFe͔|ϓ"o6 [#;{EBƽܸPHJHz~$3`x/e4 :4ț`Xh]14+Q,sRATdjuXh]!R?鋴u"LB99yUy\{F{oDsdS~weƣW&4=DOMa&𰰰ɭiWC9)QX~~Bܸ_QEn,<zg/C/;0<#fhY;՞(۷/bV۞m*41YYD'g'P2CZ֯g7'ԏFis=OGQUꅱ! *MB.} 1R-8z ~0f(g5ٔUW 3jBӮ=LKxjb8b{%I˳uY6{~YrA4`Fq~sw)LVB/9UH̰t;ߗ0{jU[szfHWH>F~i-r' =7}=O=t.B[GE *M50 ,Ģ֮.Yڵn'VΙKu 7)֋{[kM9rV;,yKgS%dF;QQM|$lWkY19Dɪgo7%ĮhGPի:Sb..=97{cX`CKO]"y AZD,CFƜUg|Sc&H,HE-LKCFg84.sw@;rx9d>Ckљ|;Z~m&xNx{𚊘 6L:y}iq$dP䁎/>Bu}%:n!ino|ZeoH8G7жS<߉qG)ޥY9EY/=[pTF/ DqQ=sړaPK[|A19QY nuvola/48x48/devices/scanner.pngUT \]AHPQux W 8bf0[!fJ(TL(Zp喴bue B"KL]fa"d eLf<9sss|}S]oQU`_0E{,0@i2ԴY)}S1QN^Qg©Q1?/r70#?;@-8=c?Ir"uYD9R_S-*Zi Oܔ%bie"MV/[_e24HȟM@Pu*]ŘN`HNoN, #ˉMTJf&ޫf|X,pӕ{fPu;zI2i͡J$%m6Ehi`͂ ȱz)k86j+>GISՖ;j_A$;ЌF^kk'CYVz ^"w$IW'@i}XP#m^"v"p͔Vƪc%,7fiÃ=ꗫIj iO]qJOH 4$>~ҭ \&ýytfԂ~ׂKfk߇llruUcpe>b'\2y)g'ML$:]Xd : TN!&xaܚatt=1#c{tGSl`YGO&$&4ҽ @ ;d;Ys5JK'= e,6qi?D&:Qq NX]|+zVB(ӞBMʴ6֘A/j10*-ࢋ2^9 0 q_|0|N^ꨨdHwC ʗw1- $^faQUdg77fEHzaƷ(6Sf{(aE'␮gД`Hp\pH5 nrOYF=d WuC7D^<̛rl0%%Z^D9'LIԁGrzϤD|h+>𜃪]V^eO @ jhT{ |C eeicBw*6<uÓ]K/(@Uߵ;<@Yl; ^J׾eG}^}́$!oY/.g/D.>q[i\f?[8ʮz*7 2%qz&.!A !AwP#FO\ t8ۡ]yzݍ9OC~S|v>ɑ]㕥&E &fqGv+%FtY. IdI,ˀ}*%BirIԉP.>h(H-rϹ@/,{BY)3fD2nrWVGŜ#̲eI,_byC$gp2HnE3KoU~ENJ[YO0tq30}vnNSC>}m~ußӐ1j-F["V'; Il6;,Lɞ$bv ӧ"2 $[5c8B&v;UB\X( 7>b$vCj~Op? t2ɹpbQJC$_fv'~ A[q&T8v1NY 6!DjeUb+{Yvq7eb֎Ļ\E /Fb}(-[pby]WJ)0}pf)[x}PR+.t?̕2kF ""8K|?o-%@wg,*S o58x\w Ma0ygEx愤Ĩe m|0P7,!]g\K@ 3Bm<6bc7ݺpLdx=]'/#~0::TSаҒBP)z^# ,%gm[lj7-B >Ǜ8s,9lBnԳiWWQHA,s5I Ϙ$(IH~,ʽx^pҒAtAM|\AȹWox`P3oE` ҅ r\an[hz';م':iٟif7 stE錉E׭bö捖+EJ GNkHDuF6VK$s{0{ #Œv` jG qd>q'1:s|>,r&~l͝&ctXKP͖,U#LAffهl*H#;#Z_3"G{&+p/O|;~5S R2Ka")s*\f|^KĦGN?9 bҴql;^J+eLascةXQ¿sva+i^VT) gYKC&!y=kiFuW&p񇮍9i3ÈkӝzsfFy-LhT/t}O _SGu=6U& AcE +=a\"^/"ӷu,~#ɢyҁXC݊3 lkU?zO4WV}Sj|*}a>%UN=R|@V2 z~{)jWKP* }n\T ל[Y ~*hOPˉ¡6Р'u̽%%VNqcӅ c"FzoZaF?6>VaoK0 UQ{w31YmN9Umpp\>_Jw9E5chY"\Y,,#l;ĞI +2vQd}7#3 yT&iqJuWB#-!&{;AWUs{zLm4=;Ewr{9i_]諝y/57 n &>69)r `3o{8X^} 2aȧ_gtذ3Ti$:0ޮޯaP'WgG)PKS|A1nuvola/48x48/devices/tablet.pngUT \]AHPQux UX}lQNCƪe&B%YJ!NY-jBfz)G.3'tU ɰm_yιu]ol6C`R;(j "ɺkt) ǣSZ\JLHҹuYVC;/Pj=-`pC-U&1"+'/^{bEG$h4z.-{1\*5z래応- Ak'U~Tר_9kn{=Cv)W}xg7 !Nǯ=px۵˅FPfx`僻W{E+oc ]n VO wOqU)~ Wf}Fqu6eѹ#^&l3=e>Mkƭ6.u\XQOyr,ʶ܄Q M^_SQ;Ǻj<75.Za>{)o,t;DLLl_/쁁ǟPZMZ 崢N,TrXwRrM0P+ě78oFmpn LeA:.cd%>V ?%2jk+ϏP&,̗=u BIιEev%j>ꝷoK4ô( ^3Q.x"WqA!ɍcXx7p>a"ُW1 )D9.(زƺ|g< ˆM'e?L¶"Cz^cg_ y_D21z a=Cg!mRf)d%sy݈]:t#Zh0Gs=pC}rY/Xq%cCT ۾kH;#QAt_6DOiNAP7,hK 3?/ZcXk jXRCtK]y%(g< ww5b&6Hs70ᬲocOnk7+꺾sL(")c0'q%t0`YLg*K]=v;,T%ǻKKRppuTmVO0)x3*SK浓̥ޟ􂝀xT1vִ gZTkU .^E nv}bKX޶uA7~I D% p;_?Zvy^s0ge_8]!3YNiǓlq#԰fɴj$ b."{1Q)^]wt[gJ6 4)"wŏQ{m,YZJB \t혞'50c[/ZSaJt-l% WtC:n mrHDY|ݟ^ŗ(RdGQo~ngsw7|@[ƹdXua,M_Z2cF.[Ȝ)7JyKjx[yG۠6N{KmS٨"8 ߬Y:qZIǖ<P%'W\v9zghJA|gaVx>U/7bu+ҰT }1)2y .E8Lo=2hT?H攐]YkhEȥg?Wϫ! L]@0ܐXJ;aQOUδl}ٿtLά|p<.nch& Ublxt'/{}4[Wܘ2 < 96# T*Qtd={%, dM`v vyi'TDW\4̓$:Z1a>>89Ti f?{@NGkʒͪ DL]}ǮǮ;+ []D*kx]Kbt<-/E0Ǒ [R"8A`䱮_/ S- Чo-ԭG*#H{ۈ?6Q؟i.*O{]=tyq+$8)WT=)֑m9->BM4:piM}o0_8s)D2wO=+•#9ٿpM}5J!0Pz3up\ȦDvN_g'FY] bbLC8X*+OxP|9#j [5V5q¶AuBXjLj7`7P4;8wߙRiTU3^ՄI'{S+=e jz-h@?[ka%Js:=kJW,Ѽx1V|bpx'߿EK6cpCW{:|mHy: 9L`n0[ Fep$'5!@jr%sQSLS>'0V#u~~˗vkJ]V|y!w;݉ޕcɡV*5 ϊK]\+nاՐww|]G&;UiTKj+Uf1 ©\Jqn\N7vϴz<ߩFEǑpP2R=#UmsCΔo 4Gq* 8eZF`Î̏ϩ[>]#Vt;3>7jG}JlpMQnh-ܶ$j h?X $w]7 h[6߇>PK|A1i9_ nuvola/48x48/devices/tv.pngUT ]]AHPQux mVk\gAP4+}22@˴ZٲBE2AsIJYD˲~"Q<9ra0;Ef*m^Q4(h; %>R^i44εΰ [t\&X2IB,Fy R38zd?5 ? |ILj0^>qMЄ/h5{0m5GQ fw{.t^^4?fyq?vHu!:?*e1v7߮ ͫ@l[T+D\']4if~7!k ]zOB3@*yr7q@u#[(~}%&%RAjis"ZGX`!xv Xz,b<^~ͣapbŸf~ rem1EI}y- d0z A"c͔:hE:ao$;]Nb,'egOxUzX` ЩH-TrYohtM|̙>RÈ'AnII߯CL= eL2VGYe_BX%̵5pHXaV.so5EUi>I Y8۩ɝFh~zfKJTXe,)EX:cL,ض|4(U~͗)Hgv|#p${ ־'Qw@_(lnX+vs[qP&]8;zn= >4>w-isU yMeEPKrA1%#*nuvola/48x48/devices/usbpendrive_mount.pngUT b]AHPQux ?߻#b;.6Tft\l"TNuJ Neތ!]P4ty2t5":r1ve|x/y=WCM0|chV1}'R]l0D&&4v1:p'fܖNq)1ى[qGҞxc0s{λ- őFiC0#x_GKGGvl2a-*!!1+㰅EZBBB.ɏiAcf1:̒ZP<a}F\pU93UX啕 C ϴ!h߄_ǔQWzaL~x:k@VO^쁁UȮ_q͗pHMF ɦI( (]B}/*.H⼧L,a1V8xܱckM/ĘxE Čm1Ƭ#fm3Ҩc0jZj}/ʇ4v(}#h%w+M&?bؘ@['1,$f) 2 x>3EҮQW ^%կ *+׾tڵjY#l/ޙP3S wl$!is"faG亓LٸM#/~_ӾVS- {rT\2 _"r~F:ABDu #^^Ϟ;-,`7!g.ޙiK7>=r[qkR%="SsHܹs X[~̦^>KUOre3cEV/&(M7o50b5QF1⻯s\Ɖvc9!ŠNFRoP|]"BeAYĤeI3 ]QĿ{}#CDt+f/ؐ:(w/ x I 𚆠cϞ)̍^ٍ+Qh$~-( lH,'\KvcSs؟]& *;ɇŔ=%|*)LVYApq޹z#@.&j4a(@9|ɣl\eUY̐KFp#W>6]ol 3_maO մ>b¼S- eDž4IzU7hүQH ~EҒ(wp0PggfvQZM^Ch8.%CK!\BfS~Zk|&>fW}T8'ۊIq3u6u=lErbմN>gii4Ժpx`[84ivlG=xQ+L.o1rQp!\(\X]WMt p&9Ch]9C{$=]gUf),,R>w0vՏ`i!L Qh7W%wB _>yGϐӭF VMVʦ)|kW1xiXD!|ބv|AƺFV"_b2qҼ0ƛ݈9k' 6?2x.-S>'yJOn<.>VA^2[ʭ(=d 1tԪi_+ڜgx?&KKE_c,1wQCk5Nܿ: 3n@^q^;+Տe=.C$2CA%9YQTcH=#^aջoaaR76g^{5\Zɧ.f G|r3\ٔO;+䧤"lPfV֯P''`bT;x~4:S#|סD y[ e:sN84Ut=ښFC7;V:3 b6/WP{D xʱp=z%޶|/cd^_[÷X&E@|eВؙZw~^8)'`ض>6*bfnbL>3X :`}nޜNvvw#F^u3Af5Sֳ6MV OTL=8M Nn4@_נ\] -ӑK'V%)#qClol[- 15fI.<ǫv߻dM9^Ý"5\v}&S=`7^IcMΎ&Y9"DB¹:bo=Zz'ipJ؀ׁSFDhdXsmQDq>9:/p,st(yG-[{uhN_ 4W0%~zrC6>c¢^Hd1$bCLl,#2^\)xL{5L&\Di1lk<]Ъ^hF!6`<iY?ZCO&he-Yͨ7$FAgI >2bDIyΔarG! {&tTKاp̲ՋQFhso_ba>]縂Y,IG/Ҩ}P4`f K# "crrxna/uwMÏNX .f0:D ߊ?l6 eTGZ'o|~a]ժd[aܢл+MDR99ĨV'͚ #pA7{p$}`@q4pzCt>=֗2>Sz6/ͨl-8HǪw'15E"Q{)$lAgMf<TeB{^~ZH?Q8 c/v]ɮJ)^n'`VSqZ1yⷒeHʷ;6|Chn}Osc}}ʼn}4Ѓ;X#~G^Ug /ЭxWZ_܆3;=[d>C(upG,$p'6/kW`Qh˖ pۖ^X\CqcT$Uxlq09vM%18/ viT퇷23eI;qՉ#" V a ќM ( I*@V 6NytaNZ%wvE /^7;rO< j9B_Ud7A53& 3޶E5$Gv|7, 'sg8lIGF]Ӈ+?OLj=lڹٚ9Rigϩ> ܥ~5ܾhuc4PUo#K\LXX'-ߚt$tO/>(5W ꥺ8&H)ýgR:EkP/l*xO U  ƒՠFG28B{HF-˰uoS/BQGs)[ R ~Bg+ '&m`<{2dŭ?(9υ[̢--90[:DyԻj>c]zopEhE32,PbP|T"74`DƇ qa@vXdʩ;b'W4Q z`t@?h=,E666,ߍ511۷3gRՎ+K/۹D/Ҩg<KZ[;TA|@Ny9a ,gxx/((ȯV~-T+!+3ץm!%5修)TUn)q]#l 4Ejh +O'RS'HDڹLEU+2ɦv4Ch.,!O=k5`fkO5,XԞPQ|Gz8x p)\s@rZcdT6xRȦw@;Md`bn,C,>A͛ 44<;zt|o+hQ2 Jg4 ;=Βyo.m֙D&p_qqs2.[Y'| 9;츊L ]>{fnKXQVJ-8#xYu:eM*rp**͚[795;*0Oyw/swLdi It6"E 964glQYҩSNٮ< C2dQt`$ĤUShmWQooiY/cƫ)62」Yꅷ5D(TT63_ރP5ƃg։G;SNJiXucENcM.r9M<,ErJFFD`"}SCxҖ=h&T,;fhHP6=i{4s"=''_6$U}P+w6m孆y~E\wN kh45Bi&@]w v4njzuARՊZF/]}VdL,D&$lo3 n'BvD$glEV>@/fV'P:L~Uʏc2E`h(f&! U"w.qbH ^Tb姄_Lm{{ 6"x<$'b@OaB93J&wdK4d]wjGI\kV#ǎ?bIaQ%e r,%~~j~8_)3}&A?~"4E5Yi;XڦIdAdKZb+JT(RjK! @:uMw"NO睃nTeӋ5P^$f_(*$_Ar>lZ|X"7R-4)_.:"B]xFBfyynG!h "Ф9fG2lB Pҕ% 9^1+G 2_>Fnݎ6λ72)떏z:֔@@<@Ѹ쮖gQ\qb>]8$P'XI^+;[".Q5wٕ+NV)m݈X`,Kw g%W,:oh(#r qwsWa9*&h`;E<⏻wotNw#=xuarU'NrP>"nun'U0\[_nAp u钳h5MʟRsPdBr8lxVڼʒ+^4 OI48c{Qp~z\uYJo7XmZP"+nEszb]u Xn\FVl;U-UKHӮ$)+@,KD Ǎ? 삝 aX|~}o%x~kivfs;`z*etgΜDlLR,@tx1d/<*nN}/~^67&Hv7쵸^7m">&cry-7l2)x7(#d9n21cqs?K?Pw`EF@/ V2N]MFJ)-**Ʉ&(Ga[sDKH\Gr;xLiC- Mu˃_PK|A1p8`"nuvola/48x48/devices/zip_mount.pngUT ]]AHPQux Wy\Y~YW50S4+3M2T@4M6+ pmZFm0M@$*>ijR L+\6&qI4qޏ㹿ssyn.+l fAK0(þ>c0&&T51:RGlIO9=0c qqqVއy+X(T0`iTKMIJV{;X,44y+'>ۆF]rm'+=<T*Ua 6ۖmJ%5@+<gP *^ݼbsss'={M<`k\Xn.ח״# :l|^/8?MK@3d ~N ha,-aψ...-)^=CJhy-SX=cIH(e&v# (ĉT5_$ J,--|@kvmTz\13"YRI>4>oN 3J!=fjZʃHti?:A g~3/5t t^`}TQ'|Mw`(G c T TJ` r=q 1A%G?Ds*@j&Qw Jdj.iYy+MCq75W ~>\}%?O'j2cQg1bG37ڧ8&ayV{o]?h *k8XP{2{2~0`9\b~9C 8dM'8F۽eJ ܚzu"@pǁ,GP }լ,FI/<]D_nQ_9zǥb*=8(K_j\8J>$)]VaIwML6{ zn,D&Jv%Hf5M)\T B]Ir=*%CbJS=/S+ӷb5;i c#@9hvI$6!?6ktTb8<3e@0{h{1r)`)ˑxoH>DHNv~-Z/M9jǧt>i̍T 8h`WuAÆŜm4css[kkS[dU|u<2jI mit:~>bg'~z3Щ.R"QE_IXs؆hk@V-Ec~V Sԍ$="JwjyCmAgi}huh@[>O? l_T} 2ԪP4s8-s?Yxތ> 0o~BBIl|ݏmXhe4O;dk;ix'wT4E?SoPˆ! L#7~a"i vy-t>HphY,A1H|b6aopu[dplʴSb'Ծq֪Fxe U6)vH&dd7燱"R(/1L\k=N.jGr 3>U;-U|jD$M5"ε~f&]R˺-C=X }l)kLp-|Y<]!s_b&blmmymJJUp Gh)8eld>&_ ,DydxԔrO f 8ɞ.> /?WSzd灥O!n.T ^]3E;H{wTԄu{u"jɣ-a`(<^-^~Ynu '@dL҅yV14MnD>j#3wQ-D 6=B3EEbH&J5BεNX|{tzhX[;@ƬVŠ*Cf &W:+%(ߎ:pn)`)+ye S|AbXA*B܌XױvsXsgLV|i/7+ͭЗ`s(=D Tz[Vry4Y Pc탌=?Qo96$SoYM nw^~~CPneO9'#$j 3,D] maI2A0$qR9?׈X69-# *#**uSduN@[8HM xނXS$~tMցJT6w;J@Hy{.P$62_/Lr7X, %:2貕}sDwq 1zI f,&I\ƛw =BR<ɔ!j=A |ο@ Nks) ~ ?c}N&R=( E*X!۾-Y^z 9CB˸:ltBa]VgY|:L75H7+BsWGۡy҆Gޭv&Jsbj ]2+d)&)*;Eq"_^v!ENdP#=&oKRaT!! cA"A YL)o`e<跘13JٯTyQ\t6ϕ֘ h G)+$˯]j SÈKblbT-{o䷈266tDp"5%:FL.]i|u-b[:8[/xAʄ%G|KG8XB4>^_cjBμQ7b}m;"}~Q?o4]NB*J>kcۓr1d s(IX 5,/ '^*単U D!WF_mp0oIjΠ$mfҤ2*L-9ja+E<Lgn*{` .ASd)?S:<.`w'`No4 d/9@J%G a"}sץTF'znbbbn̳eh&9T@ pE.FFFۦ޼k~LU҈heT:V=ԪdFik_хVPnꄅrW϶N&\kՓ$CNX,yyyI^uZͺKM5^ =3 ȽY,˭"YkN9nee̩eI›P KDΝsxYv͔$A ҀЖNhA =c~~z l9(ċT,CQ%t;N^=t®YC9rp47'3J 7C0j{86+rAjvwlKh*4ȁ(_$_rE2YKeZ.Sc1l(aQe0M/ei Yb H6 p~{q*}PE>L̀|AIDkkXY!˭{z~$6j|x)fܳ,^O?XL$VŸO0J8y7jlP,NS)R.}o+OOӃ7|Ǘ7^l7(^*k1ݘwK _w_@Oԣo2' *\kvz- [>4iv䏢}$k7q%ACxMD炟ȹmJ7/ 0%V蔓ށ~rj} =Ror{;p'8KJ(Fj@'*mk[,9Wg2 :__OFfyB1ispi1_Qߺ״sH; $L3o 60]efFw˯(sd}&U00e!%40]LX|Z\YtUGddp#n2%1h6M xk;[.VH)bޏ{c.W!`1ڥ;X 6Hg<._I2<x7p❐%lwB{ f'k+M>99xodTn޸qEa1NhI`*񨃚YޝS!`)'~o alX( )Mٳg=.1LV*D ~(LQ5dI%=|RAeeH$Llu7PKrn!5kǎ%=^Sͺ21 ׺|7 1i=ha,BtmXoiy~ۻ51Yz6(LE'`_O76~AsE?6Uf p߼hi$f5]| 'ذ(*QV 2  q$ռ?+GXW]R,=$&{)~1N>%wk yFޡS&?gH_;Dh+GUR/XOh4DI3ZNLT{Nscz@'s:˦}ә2;-_Պlwv6Ҙg\Yٽre/*#̧+iWA(*˓lyNnnMiG͇y7y ;{Z&@mwcբZ\c2aammrvJ%V˷;(~t7\H 0n]&9p*!1$<Cl_ߤAf7utv;fY<˱#{q}BNZD(fҤqT,)1vYB ә9> wALz.z|nuvola/48x48/filesystems/UT VMFSux PKt91~ #nuvola/48x48/filesystems/camera.pngUT gUAFPQux ugT`^RHJԐ $4A)QQQW `@H@B"+^X@*WW#DE,5=99h]8h]Ux +uN319;$yg\trJxb:ew<<&jGT ]QqbGT ) @ڨm&yeϽyQ?M 5*jd?@m@ "|||>_4.}T `(,)N.f:(Xd 6u]Xe 5hNEX37-&cǏ>BohH?XT\ó!pq0+hBhD U+ߊ%SqK8&*̾7`}c xʛHՅe9Wn՗v7rB1Zn3y|;jJmTFŋ1"H|Ψ;0@`HE"FD^R w-?{'qHNQ輌io#?T[C5q:OD=Ly(6W>]7)PE<ɮdyzV('1jڀU:.3 ).LPJfAA`HL`"e.t:ĝޔ~Z֏@AQp;Co~enZ|93SEsUtP _XPpNDC7P-`GB[ah֒7s=cRG|9r\ӁRH;a%4g}x.oQΫzЊo8dAK,\=wĥEP|0vD|TvnuI߿ڀ:j‘_IvH l_ dFv e틡dvU}d\e,1W[1):m#2KՌLdDwf6bzBŎpd1_p|V.2t'y,|?|.}z`j@O|F \źZHoSu`PX#4muݐdۺU?$+R&UF?c3nLtsY$KDeAW(Sff>DZWqZ+䦌  vrq1H/e,p:+(N `f*ٽ)S t1¼A&9).V8Q 5274y7o(/Wd9Wi6g6tT7$---D5^wLanQ7\zlc}cZ[xuʺN9B,-;[̴9k֪YIoVؑF֝'geynh7sOIS$]%P4T+0PSkۻ $ T 90^OS|iiRV-6?SgVTX3dPW"k3Q콤\uAr9D-4{ b)RZ ~?;k ( >ghc S߳*ژ> 9&(2RM#'M5cG8]2ɫO)Bs-xe 3SCq33t}L/Ҳn8\JzBE}к42th .kxϭvq4{V2{a+.KE!hbjڲY-˗0UKmHCMK$IR; yٞb#5gx[Pgh*U"^Iߨ¼c84Wc qM^݇F'ur^,Q9<μ)ު65KM3u#j 8,nm 7q̽l9M /Ä::R[Z+4OJ/dߙOHanw2 y6ވ~K K3?cem|bG@Mt\%SqX*d=jIp;Qpu<~o: ;&]!ۗ/H"6o/N@nKbt#cAk-xI"~FMVNR,3FԤT8!69n׶mGk;,věof]O(\K+E еrkٮp=;ֳvRn< t!ғrtO?E6ScVum8LI J(Zd80Q) yzdPKi=1x#L_'nuvola/48x48/filesystems/chardevice.pngUT ZAGPQux WiX[~@xqF)=*qm&2Sc֛CR44R+:}YZ8`Y9uJMRKMHMT}]{쵮ZV>uFU& ݴ.L-~MMz[U DK_}6}ߣНWdl-Y@Nq#IK\NhIlXSSsQ|+-Ѯs[B+j~DAk5c0Gm`3Y(# YL)nsЫ5 R~aF}|}ˋQQ/z{/ Ns! Az8ҥ='_{=7/OiggҨ6bS ش{rr2 SRl :?Pv 3PEE yops40)hRWR^Ḿ_iJІPs*y݁LQg῾Np'urf(gӃl80MKV+[].u8j&4 s[Nڹ>s65I]^B 8 Y#<5{};(DV/`I3-EXfߜ!e:9A\d7]gUWP%z2^J*pk{~ G?,"g["SUgR+"okp}ta=mQr%KEZ%3 3n%4呈Rӌw[ۍ>;RMj8 ^^^auJnMXq;Ob;.D~3>C^|Hm#8c+!MFŢώT 0++ j+O9iLx >/K;0! vDŽX+ʐk&`6bӗ~NAH$aYnM0oCXJ?GJxHBSYf*Ha Ւ`&]s6xbj6v!#Enۅg@ijpGYK4QfՇwm)t5lWC;[}X=VW­:,^ 眸UA'Q7BmWD9#c=0MJ%F~No<F.'6[S3/,'Ai*I.7&SSU+HhnO7 ?=7C[<*6<~0nCC?/ЍwNgbox,V(P_FG9!P8 \gZ/yشEvyqȮմ;Kڠ@ebG E)>fAzYֿX错bF\ҿ7K(WgsY,N9x€ybH,3-Z;Y<Һ{/@,@Oxh!.L Mb){{Kc*L }E3 1 ?eh$B֏̡t菃oW.;WJ >|ޕ_aQy>ٶEw /lueF{avU{eqh##S)f-ZZ%㦕&x]lr=WnV{(K_](ӣMV hb\I'tc Q, xs(%.6>(DԖMy DZ$scbAKD]7DaPssk r2LS-0]B_ !-Dܞ ^4IhIFZn5{UX=:bELqՠq%f{TS8{a_% @UuIJpe%hzWVleȲ2Hyg/^~LO9` I&`7{"j}sA;=2=ݗԬeCms(ihEsVt;d~pS69/dZe#F Ń~^7ANY+s c,JrPn9?3S>Df q#=?esM̮!Kx{{!ċoᤊ_2 >Gp E4X9#q ʰ8ZVnO}X]٠]՞V}NZDaD+ wnZ<CGX e" ,ΩңlЋ`=%l)]ێmVY!:S/9K5ڑm?R>ؔv;%##ˉwI)y"!5 Q ꖦ\=`ŮZ}=c~TQ<>yMTK(y4x*^8eM_l\OItv)#?RpB n۽ N-xhDr9~+T\xRcyY%z 2>C ;Px*.8% E&:z⽒>iOn,FoNo#wnчQ)Z[/Փ+*V;`i>ق6P?W֔Źd7Y|=сxotSCx G-5tu%x%g:0W!6%˨Lrxq!mxB`W n'Bi"t{o"::9${-cc~֐2_kٗ,yHKS~L}qZضm4kz]zWڹӨ)elȗGi2eh9bqԋ=?6j!\ ,SMk|T܀vg0CCQ}qի6tGJ9$> K_]+1'ڊy]ȹ.5_NN{kPUkE̕ Q'57ҵlA̸|b8F0N^R\½)w4j%H\=MմZ'hңt,;D tuiPKi=1PPF$nuvola/48x48/filesystems/desktop.pngUT ZAGPQux W 8M|(}9-&Qɦ#RoE%fƼf ~uxCdaҁJD:`sf\s]ӕj5ŢjkZT9/'Č![$8IKsHΠ Ǟ3K;!ej(@@'wړ/}:Eڨqm#`WOMo3]mpu!X€ I~ȃq q NHjf|\u 2:^>`M!ռ]N,m\tXCb{Y,74PT\/蛡߭҈s2Sbշ4|W+В];bfϋh A:bI;r,ESys+)o]DAS q:|M^vç}<-N 6F 5@\'"0XЧxQ/8ѻvIu uc,r1CmŊ$(y(2)x2PggCA@=8.U銙@;T.)awuLx" z[w~XˊB<[ |3Iwk8U/$61B@] *6HQIUkN BElw؜4bp-Ñn}]3t!qE6C&[/sq%jI(coft5V]?kq3 +~.aCG}9VOMnse4Bms,ycy&mJ,zn=<5o7?FA߀G t$g>I*uRSTgg؅/nFBtG ƒ{s]݇H2È}t S1=n3 '|ӥfn yh>d\H9nQ-fnZJ%ӋJ2Vv? +598ýʑq(ZT+K-Q[h..yN )D"u# N{\;ع{8nGd+U3`P.OOG;LϦRy6ǣ5`"[3bw•׳L 0v^bf}v%2}Й+ QSRf VVLlXH~%l"(ɥcVpA) h%5Xd^ Q4-mji ?:}yٮxjx] (RMRݣm4.? c"hPA#DmT:R+i,jo>=tB//r-wY7)/jc07:^Y> Ȁ +[MF}1fe 2y q&߄(r%)0vMobI3kIDQ/`n =r/hb@8.jj-t'q2FY\~ѝ5wǰ4R@8`5Gm< k/5o5˥!dG f,9$9q acjx$-M~Bca=~3c3 ,;s|Q,fEJ[z f]㙬fe𥀟?6/՞/{nuo.ؒqXP5^ > 䘷i (䟿IDI+hzXL% ۈ&IU0MUĿ͕7!*/?7ߣ}*ɹir!ZHw# pժ6Z<V;uvΐߨrbޞ~QMuhWy(Eٶ™X})Rq,p~~50eS gCG]"W4eceo':+nXJet.̨J!Vx[q9\ 1Bn,qx"G/2'Dd/X6/"lSHc(-\V"x {@Wy_k9Rߊ"pݸVQ{ޢǛ0]`֎0Ҿ]Yivݩw^']%i}Yo>Tہˈ"6lsyҺ/G[Mi95ܬ-BO Imib)֠*fT\i#& ޏ7feOM*\kohKtVT;:[ks^T8cKLmb uF d]^do/~5kN=53BZ-S`|XIQeTAk e}pbaDx nYy?GP[WlO2ڄhdG$\˻xsjvX@y}zz{g{ۗuMO*%^mV}|z8eĕljMvN0X\1_ X9^ӾKfuh.&++st9Bk[ǖ9$q3hXDYQ/9S ILC!FسO=aMwĊ¿}y1iAƜVDueor"hHxVM޻HJ`A%0ZX:؈D0-ވpGlQ% !{_Y}dk;/Ozԉ. 1{[';f,C,\"'sEy_5*RBhzP? 4>%U- i}IUti[@R.g4,ן('ZH򏁃1ZoNl K ngNH1,\*lN)lYڂ7x7?3#;r8i&a0n,b2d`^> U؁Hk׼C\AdJq! HOXABD؜|icڙP$|?ZgNІZ]BX:/r`n7 h|q0hH8ҹ aksFQGޘ;6>!8gmc7kԋTY.7t c%#h ]Jj*7Bp'aP!yqȥ-f_ҍDSe9i!ScxdDޖ^3D!¼rK'atҠ g+.h@J66"W*ƈ{۳/<&;_~mgޯ {`H(,[/myOoBK9Uü<6{,Q5ddq-TVA2Q:}iO9SH*/x]ek9T-QkG:&;koIkڅetځď|sw$٠cBFy/OJ8 . GOBM"PqBJ!V3XXwa@l2 \Rw7^ձل4e.lWz5Kby;Ȧc!k1y O_| .78o`KʞW,;o8>NUFU%7- D1=H6bk.4ab_Z%H&O/Tp+WB TsB|s yNϗ…XGtc4:=.vy4S$u,|$i֒wtܕs9z>W#_C$PT4768ب/ȠVHVMiS=q־yQrׅ2 KVv5=>7o͘Ł+@}IDD`"G($ES 囟kR'KMBpPqu(#jq\/)LyHˋкib\Tʦ Y3^39X}iE6:¢9`>٦꾴#[s V>^UVvZ=j$ y>~l}PKi=1>j] !nuvola/48x48/filesystems/exec.pngUT ZAFPQux =W{<g{N3b.J5KG~1s$aZH7Atq:uLu*]l5MȰ?^syw`KcZBխ.Ă;%uKXꮤC)1Gt'o_d\LPLdm1Zf~i8* cJ!׸ 0by`aaaj1Ǡ)3Ä AwK$bLݺұZ.!rV*EWYiYgSэ!ngrYVL'+f^(2Յ--]xreIôjXc XHR}œռ"@p4W{9˺{TxeAnwXWMZ}7q U0a؞HLu\2=?))t3"YOmhISgf'ažHgo<4Uh&S Y,ϗJS3\-%re.B9q$I# Rqra`l#iTqAEoOIdW 黃-K;$0U4 mpsᢑfCM':MzyR05{H*fȚ ;(" `cKSoc* & Bu -!mJ]2ZN"ЫWԆg6EcE{51-r crPiN]#N{ \WNKhwV9:v=<9#ϗNyyR⇫fN_6&*m@i;Qog p֞'v+^%$nLa'JrvH+5 X$la'o_Mzz IsEi5qjrDbe輣~NY?H 㽊?F;Q ?,6Da)%Ar5 O΅"D>"eR6 z/7hH\m[;:%BB;ZUܒMJjMx]?`L|MU\L\Z?AlGIŬ„Xx@xE AÏ*>6aGq)q=X4#Eׯ+%4F7Hg9> 7 Z&aۮϱigWl 9_QЏ 9GIMVh!q4Ax@uoQ('ϻʶ*2 #uynB7޳1Dʹ-Q:-/֔]"9/--Gdɵx/Ir'MFH\\ˬhTrjĈ(NuS' -μj61ƙhPT`  z_IAx#(&F?l`VP{c5pBzUH _%ӜjQ$Q98KSLGS1h aRĻj~1xJg1|ϗ2t؜[3WʌyS[U <}d O l1Rs[ |KN`1&n3Cwd3I !گx,pR'6{Ѣnkԇc/)yn24P*ɵƏga8ު,ruy bFw4Wڵ[~~%wS7x:ϠFѨr)M,uwE'Ʋ5P` 0rEg F+tgW께lJt:zj42F xwf2\x(ۙA?&9UVAt9A1) ;~l?$ɼ~oY6W`x |6Ic,`#*[+汃Cp%SP3ijr0gD7;1y܇ۅ@5F#T>fH5A2ك&^uPz@J 캬LMd/zq)eY+@Y=&Q4|3wpc\0>,ltc,UNNx>Z{%,D*}1 ~()}|Fܱ`f"o<~ӡ.50:ژ.>Srt;\ Wx\tRⷵ[6"j w\--LQ4^f2:DA՚{){ɿڵ0;I(N{x Oɫ:K/}o霖p;z@|j38WVjvZ=_%zH)b?-Dj8qXtjB2ZH WZuDěųy F~}fge~XY+~*l.HE]j0,\6T>:'0 ?~zqVnfu\n%N2oc6xy$! cg*m9ƹj\b *}v.IHݛGr1Yס$Fƃ#$q\rv(` Σ?oxy)B!3i?T-$u뤆Vس [-o;QĽȂ,l{%c$us[}3ԘQze4y6.ß68tf6.f,Orq$&-Q|ѭS>P˭4=.~ۇ8_ @1{WWy ;whxKoOQ);pZ?NCMdJ.S/,LaZ Ӹ0}KMyJ vACij^ &s%WuX ˻Ry!&>} ^pM)y&Oe,VOy6wk>pAr]^6gR_\֚.߰~_p=VٶN0l&)CÏ( ò.M0z~ߋF\AЍ;IW(\Т3p[o]"Vڵ\`.?0&z@S)?_RߖzPKh=1QJB _ (nuvola/48x48/filesystems/file_broken.pngUT xZAGPQux Wy<ǘe!LR;$K\uqKygԵFtkk\Z" ʕ!c-[( J%9|9,*JzJxI;Hn)C&#@u=2/."1:G|b:5<9 7OIR7?`6 *666NNN IDŽMP' oW0"aøb< Rspp޴qcE򂵏N6[[[Ӌu7RǤΘ<<܀@, ~”o7.1j24}LY&z}㮍ӞP aiǤ^9jɷshAB 6+(%˰tSthuT{`%4##CټRm]VpmC64o]VWWQmk!AEvVmwޚnvb.֐o[^6r)lSjcI9"D@@䝮j;IVf/Y=xE֎Zֽj4C f)i4e`#e/fa[W 䓄W5:-6BsSV 34dC :d C*y FmQ߲I{D&8|#OJ[|q {aU* Zw+d:..2zA\\X,[겣Jq8eaܙ ڠz[`3EC'!x o &)=>҅['ő ;;-*& DʵS Ma<Dzm+?ފW޹퍸:lMX/d=X%Vɪ$]$(*~PZ׍ƒHRv3|%>^^p;H1>,<@DǭJ\)k/ufA[21p;d~˰#IKiڌ[#wOS)i$!>9?kd1%V+4"-֥hDps' >mrm]cW\s0U>@HDOws}zWÏUw氯Fn RCkHe: h#@;~ďm{Ĉ}H]*F}1j6e \.8BOY&(ksI`D夋`AA36N/zp-Ob <ޅrbcEsfIV  7ge/%:j[tŘG3MT lWޘZPeodJMa딋XZ$Ј=YڂIQݠX pyμ40)Z/D!G=ٵ|wŤ&ǁo\~?6mOH )YR7b+D!#|Sx!":ڦKmqQ|Lf-և /[ P%n[cdשhV ҭgEޟ؉3~ =ԭEhZ`= =p %5|sPnJS[xCr) T Y ) _Ԧ3X/ҡTPb} j e,IJx8;s]>gY2Nkl k`g[~y^,Ld4+K7H WG 3K3+YYuޮf(}7mHb3T>S%kEKy{fK!Ri]޳QzdBijH3?X"NG^F ѭu~~c;jSPCasHXSL%Ju CC''6 3"v7T[ ZN^]66dv=nkg{fύkOG..vL-A(i+l@L 7S Nq_Zv>CqS1qIbuwҩ&/sr9sd%3.wDvl`X˞h7 S ޻sHq cĭuV˻aѐM}]ݮ(%/]X۟yD-纥ȿq#˺: p)R~*hvx98eS:rIsw @ 8yb{h,?ʊ26k"g0*xm׮#+_$0,G$xBfVmF Ïh!ZGr3JbW7pC+*ϞRYO1+sE" WF51}x;Ӂ6DG^ʍD?nkZ~3)TTDb(G.^5S@zqIhj$$p g_X 3c=dָgLb"6pz;ӤxYAb:ۺ܀!~-w1I夦4C#Hž6nܥ$\vV+F"ܘ.ߞY+Ώ~+2c!}1ȓUc(Yy -@X)/.&KKʷ` 9Uq4P{3jDWlWOi[5c+c0vwqwFNbp0Xcl WECC u6[?^PEC 4k(nԸ_>PX}r3`.7+l&;[[I6^# BSE>>)4iN Y nOjpOhǼ%]l]X['p]D=< ;y06~ӳ%N>]lbr=Jl]j?N9(gݍKϮ,h'IF+OӦ:@VVx@*xr\s8IVwr|fWBHKT2ڮ <W9h<f,~-$cCZ*5 4*<e Ñ*,ǰ5ۖRsr ie{KW̌+Fe ~!Um{~eR!`tY PyqO'8CUk{6*Gy;GPd7|`$TY*rQ.w01Q-{6$oGPK i=1jsjs +nuvola/48x48/filesystems/file_important.pngUT ZAHPQux {<ǿ3ˆwvd("IefRR$9%Ξ_<=O6m"TBo?~_~_cA-wݚ`Jfޢ5Yc<<yNW͞)~gр'/MKM|ƾk;n95aĆgϜz6lj8TZghh)owCOO3`<.g{<"H]^ixE ZWdk11.I WnMN hatEK͉ͤ~k= F> ?0!PeU4ǶGp* ORNdcӎG)jngh`/\B}PV.NmK5daԐݑ4C#gc_zC\[v/Y~< JW W*ui% ~;4KOrzM5K-ه_TO;z!5C[;aN|vAʨSy8g-b&xmuCxS4KyNwf421sMß:cDƝ OæcԪ9b\~q-fANɌ =uVC:*A mDĴZ=A&I`O⋖?y`$(8gʠjmUh#H >r^wt/#ci^.}Ny9x5 S$^̥i9Q.6l"|W UV<߸"c3חr2kX|BIs9EmV,`@nZ=zRi/Y‚ ,)M0z5HA1f{wrnNH(ECMmYoj\22"e)A1]#m!l!l ucbNYcgEֵ|6W"uBNrSI|?eH>p0_sAS#Q>GMG "|8ʬ^U*D+&*":Z4aHg#ݦX9|1> "{p?Ƣ 9_4wNӼz=# 5iR3rL:qdN'Gt5, WF%/TBU8@2QMՉ%;.xI(|Hʬ)%[}ENH|I\Pd K\BvC _`? ק=S* 4j*Ed1nk\gԡE-|u\_~²*k.Ei猖荔) bϸtWԺ"<%> ]9#ͺg_Î9oN:N3$V5ݱZiN- mW8V71n6N6@wvI)Y4lnʊN8_F+.X|\Hb~56}kf cCIL?^fx|iʲ5ŲV;C?".5} FtUVՃڻ"kc _(>B!/]#z`buc9JGys3<7^bgu$O$hh[uV BԚU. Es#(v!+r4 *.ifnvT_xg?R j7B|7dPKt91-d (nuvola/48x48/filesystems/file_locked.pngUT gUAHPQux V{\~L 4A5k]Lkkk5sSTJ͚6rY01,uRV^~uN[(?|s>yη(fcXE lLsS)%6UGLkJVx|֖Ԥ &Q{ɢ"0;(,F~,`4kb ղ.pUa]v6ChS(G)mbv"?TQ;_oR.4o(,P#3W ![nÞ9e݅ ,EZ&~ٹhlŒ$PIu_;tu|k~w^!pcmlf Rv΃0y֠~sLs<]Ve䖖2wi$5oW1_МB3~?|thgHE Q0x=5zP-]*d<[P<..e:8Ae 2Ґ6dCTXlLIIWBX$61N#5f3O= ÿ>L-:w­>$X[C{BK@744!6 .'xj m7@`rrxƷ-[YA mm!ƾ}Rd0iNLy߸]\e1ύΤ"2 e T8&&#{r+^>?sۛLF\`NO)׹sRxȾ ]6Y\:+S OmJ^M'+܎.(oKX:ASdY@O!axy7NS͜k>k'G`.R(Is[OyE s1p/o\*6r}T&#EUPsnHdKH&ihl8ffdu-r`cYY>#+(Ah$!kvÿ]=(ð֢= B7f b^|Gk.9ls'\)s!}.,`NKZ?τhTy/Z޳lѮG_]g=΋Om.kOINgPXgް/$]n7΍t1GhC<"4q(mY~SH,|9Z?5B#"$Fz]"Y/5j*ʃ?ڽH69V i P7檞]pLF{U/.Т Sҍ^X3o*vg o FhCǥtt#RXEH(dŊ]mEb~5%81:k(&ӱBԕV-wM2oRL7Sn?ssyIwy%/: mBc1]*$j\=8XU{$}"Q{ɺatW`*,֙ e>9~q&gwZE2`7_l<_a hNxN#%ѓCbu%m&;9%:E?pF 040(Hcs"0IU}AtJ Ig,ޮD =[1Zz'iU^x= /zy/]2j!\ q=TP}e;`JM?%(s5x(66nV%tM#`>u.Z9`Qe'xgrJO|\sR0y,~39m^+8,WS沙 Ey/YWlc|q\7|b=%~ FJ@V.kg-=#ǗE(6o5b\lTU^(1,i|6%Ļ+F@'@E}.?pd]OP#P#v& }PsV e C(n dz5)8ns<U ΏM}1J|PKi=1To+nuvola/48x48/filesystems/file_temporary.pngUT ZAHPQux %W{<̴ 2mK(],m*i鲍:. G.D۷TꈮY9!Υ”o~=| Bv4^m zK0{:Oo X߳oc)yqG L%ąG{`UDvVdc: (,C1[&d*J<*KMK;1O]ӕV*/籠fϼ5*}( 4MIΊ0JhHhYW\}Tjo4DڋQXɶ%LE~^wf[MprN]ɇSc׼M|#B,sv8?xX«G/̘ <05?qsg֑񘓧YQQyyy&N-Ʋq2`%cԘ5r(-GmGWl!끯 3=kyM<#'Ee&.{kw/ߕ9/,\JK/DH[H{hH9dkT&/jBN[NCJuemT?L~7P, e=Z䮉=qzLm R[npmGN+WiRІ.ZsP+5cbSF."Rq&g^5sIgV؞U1I9j {*|%tk乽0os@u 9񇳴4 a sj^`i5 =&Mʼnh<}leH"RaMTܝHD@C囧OV"g#nsqwS5X)AFڔFє_iYլJgCSrC,$OBi-E 5?DqyqZ >`lh@,gB lMŕ- Yf%g_(P̏6|y7SIϠ*kW)f>n(G։nUAao<#OxH1۔;By'DᘲťJU.i\b;rťCxEv v5 BE5U\C;~YFS@ssy (l *–<iVIrg X?ZNl-2bߤR(Si{>zu4=WGCZZK-`fFsڔOj 1}Y܂EB*Zu~;Iѿ &CD82*f9IOw[!NaOdzǍZ9J]ɚN >KuSU<=kzuF .cn-TdBsw7W^gqdqlq}} +8P .)P*IF+gj{E ǿl0^TrY7SĨ4֗ܤ$YYœ?ԡ&!J `WvyDぁ;8/Yt}l#hf-+K-V"'U[w p >|O=_jF0X{a\iC!}`QčR ͅZZŊ!fq SS'rۆzVxx>+0T2yI-U~3dhX\Mxv҈͒t04sF>?'  h_Hbp{Q﹑'V g,+-%m%%f&qq%*s++v&Na2:ŷK[ႏ)hCZѷ]5<I?$Bl~=Smۨ  chhH$A^9:bJֹmA~6:JδRnAAԥ+/Lќx#$C%v]r]64fNg vEgG$o1՗G 7Ŝ"m%*/FS /cT92[Fx֥.X `r˪>:>w&p ~}2>FO0P:;iz#lltOVM*b ,,( 'i__5E[ڇd2ě7^>u\oC|3u::PF*!n4n oO9 )R)ڬZ1݀NSԣ4J6&N=m xHYǭV!)\;h$fq4Y|zb)`:bW_-v_JZ#ԭB՜$-" Co1bk-jc˓#?`/CX$CɑDnhgvv{(A3ztdKz7><_00 Zgz1<'d W>z]zRI=fF.b'o-*}j oJf s 467)9%'N( iҏ\"$~IEMdš6C+ܡOfFHc:EZVMr˰Ul;xD Р_ߐ'*wHMJrWgņ=/WpG3+X9B}91iz[!'W Ϗ?I9Ͻ6n?iVY[Ӕɗk9 &t 4u1Wɕ"r(WlHafa!omo|TQs(Sz+k zJ17f&!xf+*jMwbv^.Kf>`+̸˨.BmFfO=/ (Q]L;zC|ry)"/rF.uh->BZ5.b62rwr h=pוR @~-7FMy!]#nz iid.G<I[Z~ZSCevaQ|<]@//4X<'6/Xˏ,Sw,MvI,`bKܛ~9@ Nt/&|Fz M4I"*mҲT29B7tIbt DTu AC>2>sd(ವW'rexAĊ }B?%RL#Jcp̣Ŝo@/ӟ ݚN4${&xe^ӻ4K4SdFܽ[:FEU;i833L^6%֯\74LQPeq-Vk,,, ȊuXsʚB=YOSo͜6-q§`G_3^=Im1h(fI+jo~Xe*K\_֯2Q? sH-GԦoi|:q:Sdw7wP pG~PK/e=1 /#nuvola/48x48/filesystems/folder.pngUT ZZAGPQux  T, i 54ť\ڴtܝjlYPLiei\(5t KBrO es9{}{O~@cUmݫI?>B7Cru< 5mz't6ԶSOFؤ8boQ q{bϞx[ai H"ȋ͒-DvQh4MdgCABi5MKּz7HLV8Nyc|psg&>Pٸl]vc6qD5RIFޓ$~I3QRB[֝/`2U<8K El]ϖ-Ov-'[ԨBi?J%{qy fEĻgC_:Q ss'yIL'޶: )](IZ\8 jAP9|/J h0(ys{a2Xzr3'"OIٓxʝ}CjFI*p~hT8 u{@ֻZZMLCEêaQ8I?YrlT}xCK%QGMDZZڍ0%T6z( n1AlRvj'.d/y `$ 0K$ʭ lpww3Xr9b~X̍N۞?=(̟E*5z=2V{y|Uz.%;\.YpO!{MX3ٲB DOƓjݒk}?I!E8iѿZ17.Q.g^tK Կe,V9:bC-n+8)3}*bzn2紿u?Jދń Oy:%u<_?+b4Mֺխp g q8 b z6]t +uSM9@=<=I:7.48WfYFjwndM`[~-vT."f<|k ٩j7-v72y43\g5ȢaؘЕCtX\FHgîLG9VnR ʘ7Dʄ /0#$1;ϐ~4 Y#W |^DH%9@W*e;?;G ,@{:{|-4]x4"-O[Cim!OX=byò;@f/|d\z"@j9q;EJ̌tc^!ꆾ=fD55d%ǂ(H$SB>V^¾/17ul* jRz#{?9qxd,|]$\N;x(;m,.$kK?7f +LZ΢Q쎔BUbz4hI\![Ry|u$!g(-ͬ}ߣd yȚSE۹Ԏ\N cD@xN&ZiaP{_C_Y#3%q2(<ֽ󮥻w=h(S/!Hf=ʥI$̝XkۋHwn>P`{!MjY4&ʖw$$};BRkF?qZVIL +DsGkj}Y> ȃw׿~L= nm~iS Z|y!)uwSE+ pd(wSi\%1d-#4WY=p"Y rO;j35NYQӬTt~ +ge/] 12T֡3蘩#G纻o"Y J3 `I"> 5Zc|z ?|CjP=cwylVP4!#na\E^,}Dg ' &0 ɍapPb {Wf Zį30J%M7^[eA7`2f oBfs2Mk*=D/7 SUXq=t8t ؐM0;Ԃg:x0_9I|1ՠzY/y * ! &ŸxJ)B_:ordvZplouh{g6g;Lѿ45/_ݬ|Ke-g}ւlvR=66 GuPdR% 9ogpG(:o*PaxfA6Š  qG4eFӵ& }^H7L__.f'7]ҿ (©u5^<9v1Ӫ5QB-ýdnzꌜPu,7.IJl ~g0ęu} %0h_ Ū+Jwr~xsǗT*=SX111Kc~䠫 wZ3h{;5_gE[ f[Ձx\2Y \y! Cy^BnPH$G$:Eύ#-z}'Ľ=8i誎U2Nv\`לOz @{aҊϙVOa IZ !ɕ" l|hε{ ΐ FPgu]XnAUsiU.q1\ߕkjRV |>i]T:R!{2hfkfoYֹ7R91slC6NhG= e#vN_ O瀃 ?a(3:v Of-|@^ yrP+-hS/P{5rʴ~?/A^OB!:q8zJCvҸ!M< "WD8JZѼ\ZXPc@<4-A{M7/] gE/Hk+Oķѝ* z+cGEO=;1'W.B t'%툋WEJR״{a:eHR'U-,8,8 j!ά,CY࿁BW8~/.tEKR 3FiB6Qk4n6SXtS/sf)52wq ٨iS fp|2 9=lǕfuV]Y4QN8zq?szz6ܷ#0;AJԉr*M 22T,Fl9q rvJ,β$V֟w7Qg햍0IǮe7ӣb!}o[x&W؍O"ђvϪET̲RH]ZfkP^f8!3]\cQ1{,C!g  V/p@x0P-o Q;c`^ROʓDN_iaVRCPpdj-:y9"KZĚ"611)D(QDoJB7Cru< 5mz't6ԶSOFؤ8boQ q{bϞx[ai H"ȋ͒-DvQh4MdgCABi5MKּz7HLV8Nyc|psg&>Pٸl]vc6qD5RIFޓ$~I3QRB[֝/`2U<8K El]ϖ-Ov-'[ԨBi?J%{qy fEĻgC_:Q ss'yIL'޶: )](IZ\8 jAP9|/J h0(ys{a2Xzr3'"OIٓxʝ}CjFI*p~hT8 u{@ֻZZMLCEêaQ8I?YrlT}xCK%QGMDZZڍ0%T6z( n1AlRvj'.d/y `$ 0K$ʭ lpww3Xr9b~X̍N۞?=(̟E*5z=2V{y|Uz.%;\.YpO!{MX3ٲB DOƓjݒk}?I!E8iѿZ17.Q.g^tK Կe,V9:bC-n+8)3}*bzn2紿u?Jދń Oy:%u<_?+b4Mֺխp g q8 b z6]t +uSM9@=<=I:7.48WfYFjwndM`[~-vT."f<|k ٩j7-v72y43\g5ȢaؘЕCtX\FHgîLG9VnR ʘ7Dʄ /0#$1;ϐ~4 Y#W |^DH%9@W*e;?;G ,@{:{|-4]x4"-O[Cim!OX=byò;@f/|d\z"@j9q;EJ̌tc^!ꆾ=fD55d%ǂ(H$SB>V^¾/17ul* jRz#{?9qxd,|]$\N;x(;m,.$kK?7f +LZ΢Q쎔BUbz4hI\![Ry|u$!g(-ͬ}ߣd yȚSE۹Ԏ\N cD@xN&ZiaP{_C_Y#3%q2(<ֽ󮥻w=h(S/!Hf=ʥI$̝XkۋHwn>P`{!MjY4&ʖw$$};BRkF?qZVIL +DsGkj}Y> ȃw׿~L= nm~iS Z|y!)uwSE+ pd(wSi\%1d-#4WY=p"Y rO;j35NYQӬTt~ +ge/] 12T֡3蘩#G纻o"Y J3 `I"> 5Zc|z ?|CjP=cwylVP4!#na\E^,}Dg ' &0 ɍapPb {Wf Zį30J%M7^[eA7`2f oBfs2Mk*=D/7 SUXq=t8t ؐM0;Ԃg:x0_9I|1ՠzY/y * ! &ŸxJ)B_:ordvZplouh{g6g;Lѿ45/_ݬ|Ke-g}ւlvR=66 GuPdR% 9ogpG(:o*PaxfA6Š  qG4eFӵ& }^H7L__.f'7]ҿ (©u5^<9v1Ӫ5QB-ýdnzꌜPu,7.IJl ~g0ęu} %0h_ Ū+Jwr~xsǗT*=SX111Kc~䠫 wZ3h{;5_gE[ f[Ձx\2Y \y! Cy^BnPH$G$:Eύ#-z}'Ľ=8i誎U2Nv\`לOz @{aҊϙVOa IZ !ɕ" l|hε{ ΐ FPgu]XnAUsiU.q1\ߕkjRV |>i]T:R!{2hfkfoYֹ7R91slC6NhG= e#vN_ O瀃 ?a(3:v Of-|@^ yrP+-hS/P{5rʴ~?/A^OB!:q8zJCvҸ!M< "WD8JZѼ\ZXPc@<4-A{M7/] gE/Hk+Oķѝ* z+cGEO=;1'W.B t'%툋WEJR״{a:eHR'U-,8,8 j!ά,CY࿁BW8~/.tEKR 3FiB6Qk4n6SXtS/sf)52wq ٨iS fp|2 9=lǕfuV]Y4QN8zq?szz6ܷ#0;AJԉr*M 22T,Fl9q rvJ,β$V֟w7Qg햍0IǮe7ӣb!}o[x&W؍O"ђvϪET̲RH]ZfkP^f8!3]\cQ1{,C!g  V/p@x0P-o Q;c`^ROʓDN_iaVRCPpdj-:y9"KZĚ"611)D(QDoJ.u_'J/w5\#;UL1o՟1\VX~{ e)A=ё( mӟ*[>Tv\ MKvĊ$Ƈp95)VDPb߶-f<./1U;K~6xˏv>W E6έ,\ ,2Mճ5n3Lј]:ҷUSPQl0m RYE %Y笴JIX69Dk1eI"1qq|e5(PT{B:;*I!\( XXz{*ʥ|jI*wWV*E񳇪 HQUh8oPaÉƮ\ !f"|*Sc0ݳ1cښy7YB+0%)"Pִ+8j5K<>1v9o7W vxh 8ǏؾOgk_-}%#8K0 ].ъg+ͽ&OU NFmMUsL);9+ɞޭKsrp ˫{?zT" iJy88PZ۹yG~޽r_dbzQAi?y+uG9Ǎ֨%aL>/ڙZdL5}CGg Csmn,? 14L%$xwzPHL㤃V1w Ni= oQ75K^%IciB9qF qܶ*W;v$?NijJ?%Ttm* P9S#W-JHi^XI<P;8@>ݴv1+q/ +C_uɰY87jI77 V^+O4e㗽T`6Cn[G'Y9UQ}MG\6$}9xF;Z*S4 1O[4vؽXW HYI@z!ǁB ݠ0U3 M<7D9E\t0Eykxwl kБg贴Q-\`9`P2$=O[KI7J45Ly.2CGh //"%&9!,V+ ^jyy=Eco :OJ9n>Qvt&'݈fBcwuPiղ(nޔI%;fY/@҃NՒ~ v૓TW}&(;ԭ"؀8ݬQ Ieǀ4g#lܦflS0|,uiԊFtkVb]OBB۫􏔽7?zZ p׳ H>8 iY(}3rݤcttOҊ0d(h-$y'|S|a1#0X<sdpDfRc$o)[:u*O)RsN@:@Y!, =b5ՔOf-Kc~ 49y~O/HvZ`Vѹ9L C{Fy cծ4/***;. ]+v].[Z߈omXQD""p^ ha 'F5c- |N5u(폒2C3M+w1i"sܧ-K5r+\`,!(یum^"aޜfX>M?oFS5⃧z_M7B6lYMZ!ǞxV#4[Pj=]@}NWՍ#8/{)ڼe$'8_O_],!߻~G~.|rye⻅/?PK,e=1n(nuvola/48x48/filesystems/folder_cool.pngUT TZAGPQux W 8sSɭ\Yt*މ4C%u0!2̝ECf;|>+Z9+F#;)ovռ:r$9t0.2BHBw&$*" "$ώ H2V˧OJ0 56vJKubc껸xUobo߾UT8ך&/-t\9whoom>D;98W &u &^@ ԗ?[r叹qj]I~VxmmmԔ/_B̈(.-)~$QltgJa(s7"˼|ԏYV= S?{V'S̑ ~Ncu zxu;Buc DlJ._ FpХϟwD^$59-Щ{.. ;hH+~ ˜UŽ>%cc6 `h3bL$xiH|r3:Whێ),V`-Yw}$am{r9O=EoXH <s5FV'r3@Lc (AԤ OV!@2Bf 0e#.Q"<v8▌ЫvYZV]T[홐K4Hc'Mυz_rtX A֛"B=HT~jDtd@kG76皚wBtO#]fFw ?< ^@þ:URi*fݬri6fh俦r^kw^4֤[hZN8[TShJX"c7j[hykWS',*=v(<{ʆ3εc{'hm;4/nׇS'oQY7 bP[<5 n6a~[6"j#e#/,iϋs p&OnPyA{iDgTIr֡V t ٘`/G2)rˋ؆b^z`E &1*ŜI ~0ovޟ&la@=hw=yI P7cgg^b{n`⟸˸Xw=ኧ=c L2mj:H!M'HW*[hL!0ÆXN[:oi*60$g?lyЕ3N~yBMe Q"-˰WtP}sqUWPAFiAK$݃*D1_@&q6` +/ҖS*<T _@PI ;ufQlyĩ 51{׼nH6(_::2gQ6M댄m(Zm.`%Vwq4珌iP^Zu*d\4<Ɣ/#CTN.q? s)#7Hht;IHxF\R@G"ln2jKphpC!dԼ'?_t}n\\|YJ‹@ϳ%WZ݀ǪpjN$ZUiGJ4ߞGumP Ⱦix{8$YZا5JNGXͼ>4|M0m^upvSI6!rdTlq^]ׂQRݎ$jo&z ~]DfG)и[#'/b?p;|d;X$g*-1EP Sz,(Zytaxo;1Y<:O餮kxZ1尀03蒃9nLZ7.k%"bvQ#64g~j.Qz-6#a_=*H@kBg9=Sw.SEň2߇ Bi> }$KhDZŠǜews9zOx,.53|"UT]cJ3CODoV nT3-~qBD "`G 7BمҞ HY˵b|| h'1)XSݱW߼j ;͐:`.\.=2v*׏{Aj$\4;XOܻ1<@5,CIIy9ʥC_RFKt\UG=εq zPS|~?X[͒^5F;GmºA. Ӵ^DbӠ'i7H臼 ™[y4ڣF 9IHup$ ;d_I d{[\Q6D)[H."]Qr`og{uX uFKz5{HLŨI1+e^R1k.Prc7::c$ьVY$¹b ܛsuﻇƞMv̙'YI9v`U\;Z#S4<b CӦe-+ɡxLjF16akC$WZcְOX6jM$̶_?g; K:$f fpl7eB`%cϜ4'ն8>48'M#hCtެGz[30?`ƥ1HyDW|΢ ;RJ4]$U9c/;^ԫ.ٔcdm!KW[$H3 ?<Celڤ7kDR1Zǘ^ jL۾:F" n,Js:D ESp$۴ΙZ7s5a% rkptPеۻ!1_!sSx͇X@{Kd~=?^ "UlS%{ 뫢΁Ѓkj[׊ּ>SI/mV͊MX G WQq8q-XK4^җ \e\!uS O)]oG\k dx 01 =-hog-A[;Lk_ޔwXu}s v쏇ψHLDžr _ *8. d̍sH\Fvpj'r۬xZW嗥}YHRP˝irQCyhGUC xe Aԥ1= >AFb6e_DĜA5D^#f nA jaH"NHArj}Imcc[YCwmC 8f;䩎=^5~{ӹwܺy՜2Yc:dC/L3h%Bb!{8l^n~{wZXʤ2`xl_QYfyo'9&Uzlj!sV++"M;+D@4eg{v̺d._eBXŝcW!Bak';)Eҁ> ZUK73^LTU5}'`e)kI?fY/x+Lt}BV־=<PK=1 >t(nuvola/48x48/filesystems/folder_cyan.pngUT  ZAHPQux W TOL0sitJťͩ̚\-5RK+Dz&m%2-%JEw={羫vBS/|PJathGWs; =p6GO x%~ 0Uz xV޵kW9qr}8!1mN2_vo,LըVqaVXPP4$_EAª?{O;&,^|wqϞLJ|3TCD4yv_d nJ)D8˫bke 'pCqKXV'iYYN>99^8d9uic>Zy)EX8 Տe^ vKS) A6QFxT~L0=Aؤd,~ z: )>m( :VxrS!Y4J{$H*MLQfgl(gRU@iQ >w cW q\3F&B>'?k]I()H1Qg6p yn`r|mSw^>et/R=jq]="449|_]8#F5X|\Um_N-{;1}Ƨ|w0ڎ5Ev=}mIT`od%\1H'V>"Ġqv;i^lj^<7Kgi&OaCsD߂4t !bc }7Qɂ醐ڹ>FKj gQrfd7L )[ BQZ8B jVOIrUmJ \(|yB4ʸ71 F&@k csr=72t rye0&5)GNZ;Ldf;vfMmFaX3s͊seYk8YsY"-!tYA\-ԘAuΧtEm< M ňZ4YGm1'L-@ Xq&h`[kU]11@(=B/a\M|6DoWPe6Cv$X8qfo!6pλ8.LZ=TpVx5{@뚄0tA eU)VWbxKdEA~`dK#fw`lq[kh-7!vރ;Fa]k-[;,UטU>[KD^mpd nrL },&Hʞ]cI'?u7q4"Mq =$YUނ}PטǶi@b7}0/v}sl93sz:1 >yI7;I+~9 >jh@~4|^Gc'8$u':KNP?%xՈ6YI9i $f)fo:(Kk`Yږ߾Hg bE6ݏ.߃I)G)u:!}(e>2/0#;ESoچ+7i(~r~WA~M^nf0/\fܐ߯KyVY37'*<$sԾ=#0?#CR[mh`uԈ\2y̏?YC |;7kuCCvs%ve\um!o1:®\ٚ*{65y~_#:S;fYJuv°EmOsPW| ٴ|; 2oQXIN4me u 77E?y@kus읈h/qIwac]n;I%2ϐjߡGJZU:} Is'''ljF^3n"UKq`g=G6:P$ɮD>OId%8qEJ`xۂ#"5pp1O{@M1L4ժy'i> "+c}ODs[w[O[[( ]WmgQ0&ߍ_?=.ǦX0Y` Z}܆"]lp V'JF"*'ȥ$^3˽O `^O%1|3;agn $BiDs)E iɟ9{:34tv: /-^w'/Ueh̀ᅶ.<ӳRP@I6SʻJ]j sx1ٺOA|t_F\@HDOy`+$j })UlfUM3Iު`~vNmhdht01 bH u fn(Cbvy/ܣlfb+/o\uK${rFy>+|'["/=#F \+dn?{3h!qmb*흋WkIb]Z)K#S:8G6̯IG[8w"}}9-dfWm;vN%kR^KP.j -]+ՙdlׇqQRUtru AYu.U~w;r-{ڽj [u,$m22%wRɝM mUo%N20]v ![4|`B(﯀Xj, 4$; .Gsnd'l?͌XRo p{jU#'PgmIYMLn*|2Gϭs(.M<89r:W娾T=o2'KVt%p&v=}SXǔfۙQgQN?Wls}%9#Y2=4EId2/!Kc1Vͥ޷/#a90 yܝ#PT&PR2@eFAd ,`ܝh=ŌK-$s|6"7fVY, %.!8420tO;xLPK=1A-nuvola/48x48/filesystems/folder_cyan_open.pngUT ZAGPQux uWWXS >)$@$"A Er, XshEA$`[ +*.UAADWEXb(D UR滘wnfi̜ 36\dqD*^`Pjީyr8$l#qI#d/.9isR\b֤@Xؒ9^ tq@I$4 3h_J {|F%@`\o䍉z2׮ 8ճT̓Q1t *ƑE㮽PB2DĦ. D7l{,|Nvҥ:LzWtV6xuЋjw¬V//S &;=Khkkg䤭}p6(T5%ИD43$trGGZ豦h*+F$ߏZ?֓iVS35<2y\e(j[/"OrGcL:xHXT#\z4Q `b~Kb^L~85V %\H(v[OXĄm& лW31pRQ(QJS.!4%NxT1CMQ&[?8e{܈0Re*`9f OTV+o#1JYXn6:W|!NH3WzDdf0Je,LO 9yUTX95;X[ ØӑQw~X.LڨI$ךڵsͦEI#B`,o ,D[<='ixV:tS&z}pGϼ2ZX7``84/J@ EN_. ƒPΦޟU)q!?Qif')"C^o>Cxs;4/5cmkt=X1z0(DY-42 W]b w3AKxΦ1_? l])>{:4UU⫟!#k햕c׳\TY)Ve8^H-*6L;1i2,T!>!זpm9Ș13Ś6&.qJ[Wacbѽ%{d[+B)x?6y>)ŗ?D`Qj5NϽbs7ݹ/^k`c@?uh[}` 5g\. _/m#?:c$V(M;S"0R1>=7kkCk'7]! m:\o>[>b|QST{3c)LuA҇NhQ~Lz}Q?*s Oє#c7MZjp+ump-#Ro%;.a$el/%K<\zA;c1af<,iںn{?pJ{3N }!FutEY":HPi-UHZL>6Jm\Td >})vhbu(a*.>?э>b=ZGftwhĴ./O5v_I6JY9>0Դg9 Z' sˤҲ~X'wb]4 ږ!NDflw92QPvl FGm*v}8\#5[κ:BB 5C,:H1ohQkZ.ۤU/[O\٪?-9е}|\<:G2Z_!͟˄k34bi9&F'@o,u 0wBcy{xpqDAd'<: U7r,zPA"7lg[.R޹G+ udF>O &EcS)';bMIs'1WN`sE=B䰏x͡.!{y&Eֈ?[V}PbnKhf&@,Lگq墌^S(>$uQ5.3sa0^;G4_Yz"iW 4ݜ6p4VvtwiY>yz/󺆽Rb|J _"} VW`Bj''+}f5puǦmo:HŔF/p79fTPV?ެep!e't̟4ǭW=( lmuw/KIh^f^ږ5ظK5DU4/h0K-58#F,92AsU / V -q ,Q4ݸA[ƥlX*kco8jz3_! ϕ"T'ʪfG^SL#r]u{ EO[Ǻ=c,{ŋx%b yoKZ/z}BZ5iq "QB*S5V3xM|l 8 B*‘ƶIل3+h!*襫j=Ż&Wg)|1|I7jCkؗVv >r=ᕥ1# :Ĩʁ!C ԩ96]{\7^hTrzP q"BY(>BGnYHad8XVyXm"èdzֳ&Wj 7얞W6T$q336VD^0aT3810vMڶ/>9Pwev0 (!=Pŧ4?@DH?PK)e=1Z=,nuvola/48x48/filesystems/folder_download.pngUT NZAGPQux WgTS bpH$*E$$JPDP%8(bKu2{C LpEP!zB}k8ks}&dR} 6oܡ[=CъlyozWaNL3169%h C8#&":-!wvF.jJ5 xGnj*wojfIKf 'q!_8ssٻ˼R㸨Fi߁LM>H_H*Ҧ/!<@$f_ I_MMc_$ʆ\|Qɾ|=#];w>tH^Z]5R # Q+ jۓ)N,^ۓ3Y86rΝ۰+0mێc3ɘfuG:zwkRa@aw`"Ɂ Yؐ~ ?Zd 9"O '*H{`9IzNT-Ή<_?8HR$3bRkSVUY'ͺ+ӗ%|P4൹9l\b V߃:;Aݕޓk0;WU{@m\MN]oodTAq1n:,b> KV-_LJr~VAsm:d E"J]EFQq͜RTNZ[`)1#'ZVů x6$-g)h=+zꜩUgΗJ`2z)Fh*N-ÃB^NOayXK !+r._uz\ OH&eTKbt9Hвs9yyC&dGQ-ٱJIL嶿k/&. }l*W2ZX$@$ό(ٲ qɓf} dN*'bq!z`}ʝ8x=gŊ D^Qs׌W;S<3eRyU NwyzEDr'hҕA~ PF㮜ݚJLm>qiPޝo/g{0'-=3Z7E N1)9SQ3p:BҽRAjǺC ivҏ;2 Z lĢj+`2ģ+ 8^xU y/pZdS;'=? %*Y *A2ˉ6tv!*j's}UkdڙىtΙ^;`o_r;fVcI'R35'qx !ls7@T#J^#wbq/Ypy6!UMbeU:F)}$&"@#)(^qv08H}Ȕ31镞+ ,}v$S%Nm󉍊cERg+ݦHڍo .'G4wd1Ϊ*T.'šh쨫^ `JEkАbejҋ%Rέ0Q鸈fгC:Br2F\f+IRDH 7ϟ~}})ƙ-4F< wq89׏p.œ|@r`[%5i!6~;{/W8Uee}yu.[^66 syB.j0nхo+ L^t(̤h8 s4i<͆Ar=|i˫7r{QAB:9܅AS`Ml) Q@p.JI OW' q ha, ʅ&zT,v f}q~=h[o.D&v`?[# yCl) B/ـ %Lig`Os}9o%Wr /C33 &tKu>?#Z'a({5헵~T2[Y_kʈ:Uh^rUS)R[BxX\p񋁟huR3 ?gYySbO@NYfqq>'ׯ0p uyQ#T/i.+-2))tp-uϧP}kM I4,)ۯGfzZyxp"`:[2D#`76ٷuA81I[Y*#Cu0x$3tc, (77wAXCKs8?wwJ8 {/GG1|p:&:'<4a>Y!q [<| F<~;o- Dk=b(e׉Ck<)J.VAN$Q6>?_mÎe۵$IRLʇEER'⏴~J۾A K3o\Aj(j$`g PέyzH!eڶY6I*'<`.6KQ9{2&7Cp$^PfRRC7 je2?nvĵ5݈XcY6Dgc+BX;'[~4]ymv;Js KZ+QPxbC 7IF&a AxY;|a]Y(UmLohEʟV{X]NخMN**QDBXnD% aZL>_AVY';391@s^4x[u]^f_+>Ac!o_b{~9{.[,,$!μQnPoA2/s2S*5d%vq0=YEis({C|1.~5Üg n1E*7W[ 9ot8듬G(J؆Y6{p 6M1iVQl'T@f#fg4iutC$lJHm}mX䜖⮐)ss8{w7ӂ.z1q#ik0#vK2#ytrԖΡcN-GxVdog8T<%F̜:ߡV)]| &<kzQ#*J`J,`2)*X.gR⊭%K*+uހmKRJIHmBxtٗv8Ee Lz|fF]j[a_k%<{Ӗo( 9҆OwD.DB\4pAY:q_"ڱ'oKe2y{CQž&;s7qwNm >V/g̸rOgZHgaMHrt:MT;od#-JbDFH97 %XDmp"RAU۰zu #`vzNH̎6'pAN$D3K>MEεrHu 2!-9a]?]T&؈A# FZd`[n*,鈆UɅlǚ`^%Pt>|chc+5JYn*Ieo6 @W§08;7Rgbİa$WoBǝœKn2n,,=ZHi8p"Q-dxg,[zA"EnVeߩ;7J~A.XWVku_wQ oxbV{ n<+`Ӷ}PK&e=1nX,nuvola/48x48/filesystems/folder_favorite.pngUT HZAGPQux W{<2\M uTݷ 4.ƐP2EwM%",溙m߾z<~NqR]kbpYXa/|uaDǜx@l! BxlhɐS v?;T 8X>kܹfxhhUɝ;?Gl͍uPOį2#"Z9,~ܱ8?7BҒ"F>=~ I#NӧjJ?1JFtٴtq+TNx:bdJ$>Txna. ^32'P%^5XvrV2o_Pfgb]%(9oƗ NV*G#5,W=1v)> =+ǑG`aPwT՚!c~kD\ȰڹQW[Kї϶C'ǎpcGC7HJRc{(SL) B)~ZY(ՅCj,JO=sڥ< C~@Ru%\yn榽)`C!*M2ofhoꖏ܏ {^CH7xlNUME|Sńc1(uӋ _:2_tģ W.ӔZIRܴ)8BȆβ"[ך #(rKتnv Im713 ·E#ɆFQ3c68PW5 % X 4~ZMFQ Bo}fd# dc2) jd;NGp+xp?_]v*L><0eDINㅿiP_p?JGfZhp\&#0Z_'~5oӀf,5 w*xdM=B6C -ctLO(.=J̶(zˆ24 Z̜2<_@4r|pH؟SWu-w3- voA! *-a=Q']7 5}d?]9ޝ^?2GV!,HĜJ{nVWzr)wU]?TcCH"*|AVH\B+R-s,UFk[lD.v~dh13ɦb-|6pDiwkm&|aun.ůժԍ^s2P OM^m픜2 8Ɇ\q0Vy,n±qGӏp䉠:$) ^4{. pCo!q|ς~xLq i Ak26'RpymmҁGY;] p)v> aA\o.6'^= )M̆._5HHFNXûktʔc!Oλ8s6I_!_F$7iDv9Vc )Cr#ײ}_Z>8^(UHt<=P+GV/Xw~fe?;sV k!IV-{fp=6Ts,pr,*&`2Fl p6M .nhu͔SVhIVI!Љ aZ$9[?ֺ.A`+sŹޙMxdH#νshKbGw;ޟC'+䲑uUgC]5E%ɺH@ mx8#EDƊƣ:8Ηw7nd6x^UF븇쬯/[Sho ű/:z+=ÅP9~@B<ZTzY5HD63|.1&]H>'"Tg\|&Rf}8j* 6Uy$?kR]iƒ?u051ZtE;fO8y=b0 AaÂBcZ~ޛ~/JBT!*8:[lyD9_'~oJ]O^9΂s%QIYY'Os֜I*CKT;"dBp#(^GXw7lp3;Շř{jui辚Ɣ#_[Ҭ iǏ5Q|ncTTYH2j:2Z~~~`\Ey`YlwG 7~W\{{\8P0[3f#rz ?|tLdXzwgk\ֲ3[~{O֝bNU&!nlP++ˉg&?Wk|e켵8cdgiЖ- k7DE^%&hd/OVkg;ѣGNkbr\o"nL[m;-[ɓ?ؒ%77DZVJq"8xy {E";&r6o-;թ!k_701ɽS 寠u0V7IǻՎtҚ™S?kWt i%ꤿo :DžP-z;HXE |pKȣݺ~s7mokmM8MROcK~3Wڅ#jZw\>b͹"}, bΪM6Tl|Rn E?Ps= c'ɚ*Ө(17O@ˤ1&udmJ!7CIԱxm>д~>1;qmfMT5D4솉l|T!%U@M:y+^3Rۍp:p_F[Uj-3+=Org%Tꄹ|${ B"[ޠ9}׀T!YΆ>Uuz#G\ۋǟ,FB? D fN͛B7\9r\/l,ZZ ZQE][P{gb8+Gl.ٌ tq 7":{ܓ捻 _I ϡ,8Kf'VFsh#-c G:Oa/amd Sy}VyUZM|ӱVp 6|RF,pr⣦Q߄R}:Jdzݭ;DP d&,mpqX˕&x s ۋ2GݱIJPzs{4ԳaHkGv{we{:e hش!pF&W*›K4VGl"ͩA#[JC2Ho&8b `… I^\PZv{0>9P,EgG_n9af vTͶı@JGC_..r$ fƻMpǟZ;Y^LpwiL.=A|%i~&m" L \fQolֺz^BБQ^Ogw%[͹"QӲƋ7^r @:ͦ、tUc@)mpl=aĂ篚th H E6Ю2U"14,r&lp(]"ϥ1BksJ mQΣ3:2B_[r|w3 򽢨n+}ݓ !Sӏ#4ګ5Kw i,2((P+Ĭ<B.S=V%0| 쭽 23G7Z1 3+Ы-XH$=d]+1σ#y>]ωul A'_:֤Tu~J3WEFFzscJO~oQιWd?gd5(ڭ%FliX5ޑcϏ/ͫH, q*e_ukA[ 0U8~1a=8rט$60#h'[3-$I~āFZEu4uxzM$XjUd0d wcݖͥSO4\UҬi&ΜJOo*nz#\|=4STc^5oi)Zt듇K泊dJ =G8vyyB M }诘}\Q̲Jh\cq\$`@`oU\1^joH1gWCÁ9cZ: yoDcRÍ12ot8|V] ;ה8o[-y BcNl"d!?a).JRa_:ǛR̮#aLڔ(2A{Ŋ}l^;b=E!fSt'y%n#c8M@4ggVLCxj :|5 |=[ɒC"\YJqsy=6N_BtC UmlFfݮ3PԚ$6.b[N_YjC/Av"ggaC=JeXJQa|Pě\t*]f_ZoEe Bc.a}=rė'O7tSC\c{iZz{K;(m{CT:~!v=O@-ܨ@ -8Mij% y'Csf?罧kBRIvީrR gw>3b9C-l1kJ:F"тdP4K?xN\cDG4e{ÔJϪmW6: ~`Ό٧G;d-P fBx5ӑ`{օ"kf Ujij6дTu%U,eƒV;=ϡw2N&!xٞ'4K5a^YZ 'ޣm7#-{t-hb @tH.79ڟSXxiIŃ~?_JGTHʩ5 f$;~,nÄh% '%*x*֮๩r@PX<# ˽eeN?4鎆*+?L/\ ݆~swZmHǫ Ä}NU,9 ,a7E6[aS( OuVME8Ǹq vu$f"d|+ U?N×T5j[<9%?>C[6}yjB߱H`<|N&?Q2 0/m Y @cOfT+η4A2ЮG.B_ˍd< +M q/.fW.>EZܨ 4Y~Gd6;0fu0 q. >*Lx@W0;`#sojtU1/;Joz=+YzwEW- jҢx.g,G.k[.*a{hax_h::ˉ iS&ƻ _8#,cUt"D` .:AQw`_c l:,7G褸>^BuR$gr!ЫJh_aj{"DP7JgE.38j- KGlRt M9Z3j/Y7LS6oI8ޮzi])$l "5tO߼T}4fxo޵lxPKe=1()nuvola/48x48/filesystems/folder_games.pngUT :ZAFPQux W 8M^P J 1T-D% ڜT ۨ@TJR})6|}4lsƶ\s]sݿ! `1o֒h +F' n~j$IQj,#:HT|co`~ԝ)_UD Xc#F6lx+'޴$K)F=^Ql06}9FnQggKaO"x)>&N>ֱn>LD!>\۶c82 /]y&tu榏}\w,UB :A<-ho%AO6$gLpj?#!CX~"[˿a[߿޽ގ?|(|/~PP3LyPy-r4=s%׉{ rsıciO}/dR/'~w"$UOˆek7K&q『G1脄OQTt~z7Yþef, ?[=cGfwc,=&pIcG(hkk%::/? |ZoKi>%<N}~w6n"ffzQ*J?n(-+WhL$5O333s?_ -ĸY? B(4H$RBw̻vH<@~uWNw~?q?h^@FРԍ ;\=.Xw네^vYD\c^RHr2 hoj]_EOKɟ#C\g.3x\Q,><>NVKJ$wl3uĄRu$X#SCxn.NiH鳷s% _qX~߉ pt74/'DMU Ar54 G9%2n.Q-*\2+@aPWx:~ʾ*merk`>*ܨ 4C,Qj+4%"5SjУ"(}sZUb♕ivb]G=Kר{ws8Eg 峿4*[Ew:9}C)3p c Nd<. ǎ3疔p6Qȱˢ>ۍNg~MTb­2*w# .`I$hr";@&%)9D}Vby ފDԭ0R<. '}J` :F~80qCєs$A#!;ABxH/N%sUץ*Y R'X+ (/0xC/hG ؤXvuvuA:1uSiK0Ϙ1J_Vd%߇R vJ?;U C~0T%9 qr3d?`Pr=\[/~7mCkk[ӧ.or;=ەv{/^ f YȮ/X@D@O屰C%q)»ц>BP+]:D voSBLl!*X“*=3{ A'W/Lxv%#6tua5N.0d$/h[_;X_߃eXM~e]|]<)jZ{Ümލ_huht> %9M֝w9d f.$!Db=XŐaSgd`a{:[; ߾j:\LMm9wTsK_8VxFL;-4FIZ=P:Lcq} 4wP4Yy*!xSs uiæMY+_U˻(Q@_C7RMn1)opsdFq4Wbyiʯ*$ߺ]gvRHKs9F ^=t.&QQ?i<kbasT} Ն;4҆B^~4EJ/[cV}4*xܫߐ+ԍ-9T_x#$;¾j}2|spQ.V2%%LW#wܗ[3]&QZaSUSY$*L Lj{ʍ,{fКb,A >ZtnanUC: %Ŗ&<گS"As@!P$nFcz|A"2畡-n"U "])vV!755ʁ\ {gd ŧ\BءI ;hv[WΧ5!$1b`B줍* s {˴~Ι(T",!C6,QJ wC<ɧM xWcYkHY980 S(5{o}i {JD ٓ#2=Qw\NA{sT9b8r\\|$7.P1  VlPc7$f9W1_+Åaf5SNB˸@"bj8 ze,moc33ɁȊnA*ggk%l(q~3?4fqF>` *#)TJ "wTnM23+/Qxk!6$f" `(< 'os>uohX}w `d۔xaU?-P' -QUҫ⩾);8MVHNg5"=PIw萎w mC1䗫![ßdsbM=)ssYfeUqóA!k,"V܅ @"z8Z52Yt WRY}ۥSiÝoNIdݭ5zSVNU ݤNKµ)𠲁teN.*h٣HP۲~Bv'5Kjb*褏ZV:gFQ\)MṆMf=M:cR m_ bq#a:?5ͱupVE=Τ_7IU]`7jBfY7uK:ܯa>"JEkURW&WHPߓ_1V,LH 9dH!#Cׄ& aIofKĦ+RYc\#nDFxV<z5o G SM>#˄v\FMM]oSb~DȾ ˀa7Ui7"Oѯ{pE <-sƸt)ؒ#xE<;Jv J{n|3 ͵a;iZzʠ &c/'VvvnLg'\U:H$<_ipT%TgځM* LgHC^K3 +/V;%z^q\z3=G,\x)^#:3g't='b*OI0#`!Z}Q<-Ce\0'S`έ% ?/TgDpSyFÇRqTV02"g⾰ݭ>z%loo+bS勄ȵk'bv>ptyC|w$׹S AnkTӍP/ UENѱ Yk7ٛ[e.ZShG~˪ACEݐr Z_sNhUriQ4B:H}'wjeKTX+N$fjSz[dv~V9{+l w >:AU]g&0W~K ":ʿˡZǵ 'm".zE(z)B1wݸwJB.3U_ŀnX{ s_EC(z{!秇칵z½V4.%aX(⸻k˽5]l?xiHUJcvztaޱ)YWĔH9{[7忿Ak-l L5h;j)תA s#vǡdm*E_s;= oۻwz EҞ-zł꒍{Ic.M=.R!.`ɕ{GT-Y B ؐ>Ls`|,~_cN`(tRW-!ho6c3b}ဈˀdsD,B ;ĮIDu ja*ٯms\02c9 T3@ еUx0Yq _YAO|N:G% ^ ;',W1W-7^6fPe[moĞeX''Qcݵ9ޑVg-T|Ґdr~O'UZ!ZwJ+qYd2JpiGIJuo9==a tuebbxiٱO2=4+7_J] ײ X@ (k4;^otETgÜ4ہ]ݔK;w03f%ڴ1:s7KZ}tf˖!CnfOrڵ?zzPK=1B  )nuvola/48x48/filesystems/folder_green.pngUT ZAFPQux W 8bbeV!CQ)% JK%mhR҅(BSn5)Jr-ds}9}'kFY' ![92ttKd>.aw`؈3pp)~}_P18>Bl:ͭ75=mzx׳at[>ymY$) @/^;eaadG㤼'bMr˖ߤ,L|~|rqHt+z5QYM͈F%7r61bj@C,q]8>'˟U~K8!*niIJD;S%6mjySڪCfmb^I}+W<< 콼m . F;rmbl~#\ԸQ~}%7m *F JKp#Г=T)6@ds8U 7 Zjl몙w5 b,P@ϙv%&c!<~tCw}LppPo "ql No*Ly2g<2pHשob2mb`OSˍhVD XP<(IJx4JL^eDmO+2# ? B8ޏmxg|D%B0̏?ڛ.# Xۤ7|o`nUnP``b7ݓ1u꿩ʇpm7ŧSqS@v0\Ad }Zd_4Է׬Uq4j1_R =10QI4JL- 7)# !}.>UKpc|ӷˊ.]׷WYKvr ;d("WAGi-/˽-)~5@%^ڀZ {vLR6oYG] %:gZ!?MnM/' Vy‚"?(sނ40q'3h޶̩,puis̊ yZD?vgNn~P".93$ M^6l VEG%5b5Q Ģ8~ӘyC?oD5 AjP"!hoJ`wϩu0MEUz2AAOtm|޿\ˣlL]XWqΒU 2Ye;}4z9S0fP#̨4 8+ ^_ɗh(fSɻIHl7go1XW. %U?C@kEt%{J220viJi7XC"PD |fG3UE!'FXFz?Ăt O/hVTZWjŹ͖Qez‹7-\Ȉ>{.o^ϩzn`:ڌm^~*Y̢x{8Xd%?!s^:lGd ؤ=\=YCvT Exl`GNK0x`h{X1嗜BŃ^A6]$7iE[LWAo%+&:vk)m"_w~IpV>I/re'h IU Rw-_ A= 4[җ+kgѕ- j#-Xgᔉ$SM̸nϑˋ-Pq(by"1H nۈ+ \C9?T72$C'NSZ}oֹPo+湮N̦X |@QvRO>}'>rJ;g,+<$S99}|pkY J$hS@ºq_s. h2ښOQ_  KΜ21 mzz5ET"2)U5SEO}Wq#A) RW97)E3 NmN;Yr6uW3'1)7*xE|'}hzBzqYsKJ]T#Q,xU(?ㅊLodLj[@l,)UQQ%(r{'tX?HN"/jefB Co]G΀5}2;9U&~'̘sfl V|<ϻ܃fͣ2n2=}< . %N*T)Q휍}XoYm8' ϺQsG[2r4IE!45@*$Lh18(VaXGdx2Xڴw@3 'w-sN@0T~}P*Y~cy/r1T՟Y9=Ib\fmqVبh F (B9koFޞ2Wޤn},, ))>$?n[Qqn‰`9Za}dv2pM }ڻ?31ݼ':GژeY$757Cv(M**i:G0,*JP}3hv-Խ)YW)P\<=*L^^o!Be`vEIv729Q֟8# 4CaZWCb04'ZXVWFt{w9rRv^ܐx,S?snZd/g{YIpr21˥gjݑ0h}sTɦ_;pp#2?kީ}}:Z +`)8E1Hxz>q-0I)Z[0Tqƹo [:-a~>͢USi>tNnW ޳NwEܯnNK[ Q+26fh(,9 K)K@rAdre $M[{ˠF r3Ќje" 0XtK> 6X%;!* !n:۸z%$x.^_l^_kh)\.KXB,^+>Idآ&6TCviġ 4FJm$*F:SF wL&QYR)"GBsex鶄׫[YG[Y0y hWӀiOl}$&|7K\$ꝈpQre#}*bϨ((PRd}׮WJPK=114.nuvola/48x48/filesystems/folder_green_open.pngUT ZAFPQux uWiTSW׾$ F$Q A` e$( $jVeP&aTBUy2VHaPRÌe /]ߟ㜽Z{:zrvMW ޺p7d: 5]y oʩS{N%~1bi!cwbRBTVޔi)`T[ Hist|uODnQNO->d(NڛQQ_CZ!bɞF)Pm0Ԧ8ɚue4h+<^^ 3.tΤfWYrfuYW>B#vnu08d4̌qavIBJIGJJ1G3qo< @k<#o%D;P8_E' qTXixxΰ:ۗز8ݯUrI | ?L`Ci]0*Rۿ6QqHA[ܗ 5Eۃ]&(g[V4 7cX'Sv`؎/TNtØ$l LxsT~?d4_̩4['[ BS?K)cZNuu_}Ww|/]f3r,RnCtSֿ5 sT߫{2OKnI~2{;žҒZV} ~@G (la.Y{̖ˋݿt0S;B>=MnT\w^ >VMp1g֢=!x& Gg0dvegҤw1j)߮dIGv/ScڄKH!i .&Q.~{hiY;Dk; K/ .^\ϵ֫ē"*QSF%:zLfh">h12mYdQf T:+:zۜf**Wor@f^0T ` ,%#K}3p'kNP#e=Yom05rt MC8l7|2FQȦtl/+ZͰC6ݍ̝BF iN/F`e/MY 4%J6fYk(]3%8PL^GW9Ԓ'؇*~P?bVUGvp`"ʔ0u+'U=G2aV:anvR/[_-ff<;&0=Rqk4c:wOglN6͌sepQhf,Ld? @TH502?v6˞vdw~g"c" &y"Gv]ͩugE{ߑIy[B J=m'խ3Rj.t0s_ ;ѩYVtq jƍg:|e"Mp¿iLlz;k©Gyfx$Fuoˮ4F4̍_H%m_л@Vvak`Zg_`6|G+yIٙnѬuOX@dk(Z$3gfd<T̡kQwޣ@NFWkn˿"iߧH&ƛ"Xw-5yB9 >t0r,Co_!y[I֋-WV{ufS\`rsD+{_shao +ZyJk@w Ϻ{S?fDh;r6E#îb>R׍ DעZZw^`m hd->B8ϛy?znz3ڙb*_'ܿe4Z n:4އ y ʋpᛦr[2"e)Lq[:JR*ҡ&*Wm8J6(_'Z /f$n]-zt>ȔpŅcm=u"e NI!qыW*Hw:ZRLū*̋_\!):圲3YH]7*Z~iIOC.Xک")-_2=;Ksܘ-iY(kk}3'h{I0C˺(#+AEZ,qoX*4  s7{$_l:v\u]3'F0 ~UoL0!n'G M2:sΙS&TD3L 04"D6ggGwIdE̘ gU*r NrD"49pX5TL˙r*t$ܜ[5Q~ 5Rag>O X51XMwy9Qf_~/ȑi6'!5o!i37cUϪ>@̟6Q-f4\X1xXBn+uRvQy}hU#Uxt4nK>Rh֠?8Ȟ`Yց3%WkߝԯKx6Io7NyEri- Al9\uT93G <-6vQ ౣȒKznXQ# / iS:<<.Ora<%;s=:C1)d@`7N{'EKʉ($] QbrVeEZ\g,h3F\9AiuAo ޲qͻ KˏH:b֫U>`RTaV^%Ұ~~gǔfUbNkA $M!^UY2iNAۋ7 ug .a 4CUK` Nb7mP+ tɗ%ג ~ عWnPK=1w{P(nuvola/48x48/filesystems/folder_grey.pngUT ZAGPQux WgXSI)$$JK@H((M$E) QQ:˲JU(%Wņz ņH ($/̜93i`4@cjiĠԫ?\H/LئqZ'>/.hRpB8 z7<8,HgK~ z3 Z_9D9'zo#((hM`pGoύF`/"i*ݪI7¯甦> p&[s:Ӷ}KJo"ctDiݟv>PD_!\B%&\X_ 4~:m ;tY:Pe#[J2 x˗&4LҥsWVCjz}<ԤFSb ̳uH f ^x4-w <fq~~\|KVe@]'ji)$EMs\HA7ȓ?oV!hp'ddds^xWJyL7̠p-}2z׻F <03VEMMVߢBW/TThx^z0nD׀ bR[K'˓.{ѱ#{nVNٮ`hj[j% f( ޹/#Q{;&H2?oBPLRi:v B\fhrdo-v]wcQpE,FQ2[2Zqg@&Q(<TpA »V'5ai)cJ+&;Y%˫ S}Sq;{J]U+W󲫪Y[q)A'|ƠH2N#YǕk7lp>3©)4y~|/l CV9n?+/*g(ij*`z{1.77NNEҷo8IDQ tW&^`l80R*۲Sl;,~e^($Yz]W#?rD&,vCcRHa~A^ Iyd vN v4\kH͇=tt*l~5.Mn K2a.9G:ޝˁ'lBŽpGOgJyɤ')n Tmo^OS*tp+eN$WAS&ڗEM>Qw7 yޡ&*YR*,85g 3~PWq^9Ozz ~*11eR1L9\X4 :LjcTSXzlq\6s͊gG3;KF/SjY<|j|Ѕ:4Yߺq25 =ܣ0N\[5`qAZb`̪֗, dQa]3ͻ%ed!8 2IRR$b(5|RMўUJyQ]w2琵 X+Wa^ReNxL[>X0e/@ l`gqoQ$ U[s'YzH8ay6 w{n^`jw "+b=WDu<T7)'@`ںҾÇ?<4$eY *RM9R' $96_rc[q-'oYGO\#vf3 ,V N.r 9ͣJ `\CF BK Ixwy GAY^!M\@rIz] Z,11_8y (:X#[ՏfxB$$l50D܈7U|FFwI#  G&-86[H"a#SWHOjoan.UuV|?u1߻%:~y>1]imMIIږɚX)惠le +֍a2_R=؞tu(ͅ#V ^+mמu qEvhlYQ_>b~ -]V *jQO΋GJOvcP.jVBFqkΐI=tԱߚuI{~YpIE SxAyXPޤ3c's92~_*{N09r>mqz4I"þ k d.}^I'w r{2ec0|-,>g= H6+}BYشy,X"?M7 YHK\]_6 u љi* ׎̜QEt! <^qqLN 1e!F7`5"bL,EH/4päKƤu_S[[y4_ņo 2q'ypRsQy֟v֚gԋF] )lxtc5"[y=HC/w}刺f1.44P(Cم嬐7 )5a},_zHҩCƻdsia lJd)(ި/GeC*j' Ew5?ٗGμx\`tٙ0tu><ҳT|>5VCm uU}O흱l_<)_7O&|tXF0<skF{Q$Fnc;wEc/$%.` 0?y^[T:骙^W\;+BmESIV&'7ɲdž^On .T#rmRTcB4W3Ak@_%\)JmO[yLv=*#kLKXOH0bф1Br*nS$ybv$."hvډ+7%MF#JPdߛ@pN4UTۿw;R6#^5fGyX [J KڝZHQ]DžvnYv˅ L8> . ᪖eiwּV˛/*Pcyk۴iתU֭ t:*HPq ^>K;%m-cYTq1Ϗm@0z޾̏lzDT1*O"W*z}F^༟iOM*4C(T\D_ w?o8 ccnB®ڤ.*V|-KD Weoj\ƕf5A,Fz#RU([ bu"teƶXTz7Ķ6گt}y[IW_]ߊ383 tTgWNPK=1җ B-nuvola/48x48/filesystems/folder_grey_open.pngUT ZAGPQux uyTSoHk2%U@Ԡ8f'agXt8@r (ԇ2 (u &,,GwUӧNWկ6@7(Z z>:{7j̪צ%ŝNLcbIA'#cFưRzc=ԗ KaZ]@tv; b l@@]H;R䒺>?ILL>F.[@ŕ>,X|hNI'vJMM7,v]iX$>V:@F}ގY&IRZ75eU)E)AG{MnKVDmh9::,ttQSHCI0'GG6K<29 :߇5NeDHcYjAN.͝;Hqq̨(li,Eܻ|ni KD|6{B #,$/簟_քed IMOa HqЋݸv2b5n H/QS臃 `G?fU@wp2r=Pxi?/'?#̅rznucltȲbӇZC:~=g梅%jMէ _._8\aEN5ԂtP q))1cӒ>y|ZýuE|qe8 \of+4z)RbFуY8PIk|W<²f噥\Sӏ xy'S2gAFB*҆A>cT* *pV\.D}{WT.qn56 J3L]>uar79{{<o4q/GH8K"ԝ殮uBԐpLEܩN% JJ4ܜR݆b:7T `/ةf:&ɶ1~'ʶۊBTHxPTH^@a*<& 881BEwη+ ׊ l<3kFW8tfd)p=dQ%_4¦@:=1;+b'z={K.~ wc*Η`3+leOM7dWF|%--C` ԷxMCZty03_Dּk:k?0샂 aĨF+R$_Y,P',bk^Iݜ rGWn[F3cYF!0 4}&ש))[<ΒAWa9:@tޅȾ˓EPp`\itjp[kNN27ol 0WM1#Z}<Guŕ 4ڎ;4LJ m""-&]_?•4٥\}}} <8Y c%Ļ;1.YuM&SU/rb08sUW+!˕]W}~Fk KJW϶Ϳ5UcRڏ>&uHC.~:ovU U:?*]uD栎y-nG:E|<^Ic0ys1ʫEnX!(S3.&[!e]HthlVe 䲀:؁n(H'/> # Oʍ=Ys D乧5B̧Gr"/a[þ[m.(SCùG9tMnCsB/J+ꎽѴߝOgB7u,(4fwH5."R)~Uhn{?蚹d]T2Gi|`h㱝4ih2V-JU<-pItю|;pƒ1ߏDf!F,YJDF֊'OM{aTǦ`Or]S{sғZt/X}M.6B=dSJۦ2U/Kgy/`t)n&`u$>gD硙wu4rxKy˜AX]qnϗ h()!% iu'gDyy-><.AmٛJmlQ!g&6 'lB\0)9-󹣲fWOE? tu ,/D4nLY2'+Ӽ k]h߱MpM4O Ck/ MQ~A;z2+ĭa2:ƿ™-0-U0o#"vg.@~b8(`x`HBSm@uA;̶rO/Rk v ޿4O>vaa?iyLUBb\`h/Uǃ@U'Poi\TM9k:+/Tq I -RƖX6pTcF֒>zlyc+J8&D{ԀNq+UXQ] `ýyS76B .F[l3v upg.rrIIVIrW ,)I"2줶vy}2fXKPH 9Pz&Νi ȊmcSEuB1F Q;}U6ӦE#2Y gƭ " ~T1{W4uI^΢ẖI[>|1e Pxq+ru}R_Q q07KF>>S! =pD sSrKtÌHxZˆ^B,\6š5<%sс9 e)[*xuֆj{P.(]W-tN ]:oC<Lw;g4?eY%[Z޾[D5_niZ@H> kלnܖ`r&įcF¿߆ҪLPZ>)GDZ/9bkfdFjn0o';Ŗk:)[/^͊SXΌFrn ~>PKe=1'w(nuvola/48x48/filesystems/folder_home.pngUT ZAGPQux UXy4ϼnj͌}&ˌ1Jv#R2Y2>-֢BXCEY 7ʴČA*E)DdOZ>,??9s=}yri[(mW*9 X?h(}'$n'$&E<Ѥm"b#Rvum^C L.D{;ASxK[Z3,(jy{Μ9ؑ&TeSR![O83EuY'F!7HpٝKڢ%Nf2a J\Uh[Dx]{AwP|Pq@X:gG 7*EJdj;vdS;1xO6 7+owJd=|.%hϟLÑ">Ʌ?G8Hzzn~ɯWyHCr [R z*֍i9dS׋z7''kg֊٘7FM̛p_f7*/+;.u9fpp`CmﺧDҹEُlH| `6:3ӏA-Tg .xU@~7/%klry߇ /B6?z`3aQ*?,GH#YAܛ^! v.%lnm'. ^vDc;{*͜-PD,( Jv"XU,ϭ4%a lHmɴg'6XK^76<Ѳ$v(v+\S&hS_y a MF>>q݇r-,4[# gf}G1V~ŵ>MU} Fveh:‘͜y1^|xx3FBHqDtTf,E(![I8Ov^7|?Ȏ #X FН'qn~śX+ mhbde<5̜>(V!#Faj_5Fwse֗ÓQw_ݐ~A*Tv5e"5-Υ9NiU-꽡wɡ7+J\`N>ϞWBu}%>.8AC/%*dC Vlř$"w.}[7ön`h.IkCN姮n^$T<,^uW5N[69do8ts`[/zr1\GSZeEqC}Ǭ?F_p/=n Ut;XGGꉩ7L|o2ǡBVvOÊU܎s5W@QlDDT]\xSSkjfo囬dU;35o^gOmǽN~\N1%V?xLFC>PbV^&| 5tPSR-6nDi>'`mpM/QNzl%t jp`!QmP2bod)O&GjƢp T+ب1V8E#rBY'Ô96Dpj(> ŹKw5! "BӻUҼ y)lgFYv =<:} RV$Xё,|"yZ`# 1 Ckd๳ 8A,BHŻ)5ee?N uы/ۀ =b9nkIVMsO"ֽ )1bxK>t-LvvMt9yRM0 kb>Vr2z*E h{qsZ6b's\w,Yx& GE+U`k lHW* cGdD#Kн0)[1}ϛ/e_ @s}X ;8#.Ѷ ُբbE(0L߸E\*c2讵yE EJK^wJe_m$E+3TbRse`jf8YX".y#17S|}>eP#᥍) mӎT6QY]ӁB B r{elOld.!H 2%THʫaW4W8L<}oOT#J>޾TT:q*9Mw*lb>%,}Ou}x$},~WQ ;ע߆+?vS%⬷P8yAa!M39Nzj)zX4DjbTo';△]zú9Rv㉖#|l'S{ʹu!scjdỹ0ԈSgŗkLrMӜғZښM U,̗]4}Wt{(s#^~u~ U iH!RW0VH. TƟqeN$ۚrf% ?֚0g\=fé]e {x/Ul}p7]Ƚ{KsRͤwR[f E%O< hNUS pJH0O.+sEWY!؀EPŸ'$g0-ie$}Y.E,em]$\x/ap _/sWk" pvMl9Xcx,eُFFjwd]4>Ya@ېY2&cW6 a0çF>MSft /'RyEP~b<^#ttIQ<ݕԜmϕX#R( qjH>Dk [[bq286Hhw3SDyQVu+QWVjh6lRFu w$4e "\ij^oCU&iOx!xqEK@ŊI|C0GTWV^W+o.V3G; EAТgCPΚf!wFrw|S* plb4lS) &|l,Թ:E7B2VJ1(m)_V E oyx{;B]&#Y9:|ևn_ n(n\+倁~ x'?S"` zY< -EY4)0ܰIAR5"Iu6)R >Uɖ-FeLEn+Σ2W%}>VkSlXdEj"s8iP_Bּ& F]p4/n@W7GȓL ШHQ8}^ȸVIf]0jhXdލ(S/CzV>ո.inF"y(* T5tQ?x8F=nϘq;,m_5bܵqM-Zq7tJgHir.IWVdIJP;Ef*2>N+F]~ٖo|?Ou',s9:_Gg[9e{aJǝt o~45pwJJ,,Nǁ a %oD*\ˀ?BL84&Y֡ч\būwx"bC+0 A?>t  c7wvq5->;%b ;'dh%Lb_:y4"O*E<؎~b)] ~܋Y==#ы`E])La,c4r]xXjTX\a"xjCM|6"%]Щ#}˹ #Bw- ,Xm8F0 lq}gKH_8߾Yۺ8-A |qKDt"sk3!Vp˕眹Ϡ_DJ3"Wؓ1$}Mc 3+RStQxguP\.5`UFWGR"g9][#YZs{Q8)oFUߔ?jtD%iܒSɴw ) dewGOZ<'n,9jQg^oxרxcV {\Փh)/Wˆsmu{PKe=1y+7g(nuvola/48x48/filesystems/folder_html.pngUT 4ZAGPQux X T[fPPyR lR,,hRЄR0I@Ӵɰn6H5-LsiQKs!Eޟu:g?-0Yb@o٥B^u)[gKǞJ;<}q2 B=Ž0XQGN|@lA<[1 ]M2v{ۇժ%Rʄɟ^Ifv!fO>)V8l1])Q/-ktqtKbDP'XV _<<mnOx<3gbbbll|R}>V9ȳ^S#_Y۝=5Oq`8~ 488SNNk`@@tZF)5_bj8b&p'rjgemn{L8I.  9oEk$sS98~YE"O!,CDR=2#Ǥ/yaݡ={ߔf<c:P-ᶓkExf-KrL@'% uW5s| :&Ў4e rV%I5 R{F<;ES-Amk6P`mS{4vqd1Gf,:Dy0$U•G&4Tϵ,Խa)ЁIBTĬV _>7FN5`[l"}I>th{rtD櫈{nfݻfsn:%;KqE~/=8Hq2S]DREJ/ڷ}*sz8O\%B4!ü!&ȢpLhEfըqgE\)8(|V>3L@<ą]p~f6Yv}_ZMQijEUh;\$+1ִ{wh|&ʖ-< gM0eR.m=tF@?鞭)wA^?~wK8ݽgbOP-tV0g>daּea3/`oa6d ^HO\|-U0;GDg: :7'˩ \gEG#8J[bxzp`goI)7`t2 #6<:䳶NfCre:Jz)Ma񱈽Hߘax*5h/fYuD ŭ𞞥^0r7^A:Q IJy.\.2oNȩk Yca𡵢7riUz#*RzabXz\(KY#e/|o?3@>B:=Uj&*ڙ``NuG2exL>ߤeSw $|Vg'kUJ+Q fU5'ܠ7px#F&g.+ѻ?E@ݏ9:>(h1d1z-AXSH7uQoE%!#ojAh_'CwzA^c}1V[{Ky u%33EW^@[^6d~p0m}G^D%lOE[|-^:xjXDÖʖiDz ZE% ~!- ?oD1hB]grm|k, s'.y,u^~wgўnŇђ's(Zc(_5肆uW?t72>%seE|ʔ2^ *&q JըTx[!o xE+NeVcO{|M0RUsWTOD p/(hXV7Rlgwk_QtI1{V4bkT`e3LB1/T~@4dZdw^ ǤG.+@OVy<"A{/3rU78)N>?ԧ |C[SVYLV0 F8 R9)uJ,isC S08Օ0?Ah< $xr֬S ,?Wwsw !~M>2opS,wp YȠ!ߺ [ ߶x/\Ԗo"vajMS͈N@dr5]1~u:9/s͗-Ȝ=_n%E:NudfiԈnpȌi?fh8F}&TlR]j1]żnEΎ N?[j_yRR<$84F[p+-y6"((k C1۞m='6W k]k?^(iKBVNqmA!ōN/CꃥX|]=>_[ -A ᶠ=:F!tAR; P}7ܔ=9g#c@m#bDD|Hޗ:j`ֆo@h-[~tz翻OBdމ~I)0 y|g,:&Fxa obnz ktV=,٩wLsjqh;F;1"՝|x~ץ+X3YʅrxR z~~;Yh$1I:.qqMG|Dm=3 ŭ󉉢4Isc>2܄d=B}~u=,nlDxUUUYKsKùi]{uG4 zn5Fz4e.1?_i_'_T·k*…no}}}m[.U* ŋ"M񯾤7_zf2J& h#DApB!s_wع׬Q:晋31m_^X㺸 @ۑqOk 9r$kAʚ9,f}8ew}[KKjpMM#OLK{Fhk7NŒG辢ft;/\^gB~cd+Mhl6|^pI/\*Jk+k\|Q* L( 4: qևxNJ?^6/ă@ԅ]TlX/vgfwfHt)=h3PxVHL~ Ì[&70YjI^S1+'-J,be߽Tgq]],1vB"F%==xi;ťzkC ļi#Sc\B)OKO>OG>) d0VcBB>ܢmVb:2$ctd4t՝ck]N=W!&Dqv!^2UWmP&i{677;\ %2.˪s\rQqYKp.|8ͪ&Tӭ*e=WBךWDXCoѩg3?p*'-8pVxt !6Rh7v,`M*WAT 0Xz(AJߤat8F6;h灂/ĖR"ccG)to?D'U.Ѩ5pClXR ]t|%/_Ґ?9k'݄D#+> E=,dӫ +d Ç[ϰmì6#:" &4gŢL=rjC[ThF ذ&Q^"VD΁jsUʸ?UFZK{aE7_D}Q `054{ch;y$9D^}od pHbJz֮0_4,bUHF$>[Ol75#XPv f#CҒp@6y(fy?`Ǧ&q r}P=! YngؘO#;s BfkiIeNR/ ;Se$[i閂aͳfFR62kE8;8&'UBA-;_ RQB@`hC.Pb)&qgqVvb ?2}zw"1o;v^dwg Yv}F9;c&Y=^~^U;D 16R[@b5>蜁Gj%OJjKҶ'oE͙.y>؎fWpˋxپUZR^!O lݖ\!Qfo4OI7Ɏ᫋9k#hCxJ.Wewt*: !I_k{$ _XDˑU%GУ1N;kavHD/#|:jpOO~~aO4`; Y6h'pBB[9VmЀ`x'\HCXESwg] $D@qRU5\p*!?K[}>˥;0qrMJe}AƤ [QGҶZώ;Bok7C~<a &[Oa^§QW7ȶ oQ7Y#Q)^]/pJwMNu:*=@6"0siH6;K֟}6LBhY 5xʏrKC#xQ5#f_j7ɽ_dYdqKڑ^л~vLj ($~ +ZYQ _M;(QyCpr;if}X{8?OUkz]*jf?uT<[&zš"RճN|!NK1߭s7pPVa#1ecRVq8N_&x-`ŽsP&>ܿ LV=2- +Oi(wr{DL["DᢨFos^ba:6ROlvϕaNj'c8O .N^C+> lʔ1"R΃C' .[vQ*Y?Z%8Q,5}QQh/|`gv$Eq. :hkyJ /l*.%QJ~`@i *ql9}v:zvzr5/a5RV>7WC0FZkK1ZXZuZiu ɇo@Ә, B_w <A 5Tg܍x.lp3lzA|Wc9]DF=,ClEm1 m!Gjoy6,笎[= ~Ҕ0G+K+?g^8 ȧ?Ƭ5oq`v,ƺV)kWhuK_5X+RxPbfl~ܒջ^bg0^F@i&%W]O:Uzǥk9k0Z?HF:|PAll,mclƎ" o7#tʷ\;A{WФVɿnx|USG;\H[+'Rb퐫u AQX?wn^j5ojR ȑ! 60>u[ y>oYJ,6W}\kZ$Uˆ!YK17˲{ձ); ?Kf.Wm;/ kHۼi#Rg//$ S WF0Sps&q^:5#.]NENpb'SPK Me׎y66]CH+P23gZޤ/'')n_rfa,mǰij P}+`iV{-]Ok&d xئ@`̬ n7G-ISK) iNmTĔԭhm_Kx,hsψ"Uxw5ckG a@$I/̢xKJD8;-Opv\C C:,d ir/y(@}fP3 aG#PߍύހeHW~qq3ebRct. )qkX&<~ѣkױK%a.4Fw>O2r!Az wT)y] CD͇mjժU3lkyIҜHN̗E?571@\SD`z'O?v4@{k[{mIIE)q*++i9͓hSb3}#{=]v?|r^ ^O*// C/7)OO1կh6wx-o,,,ltC"U PN;>Գ/L݂R-z3+o+4k[z4g~oBc[7ߖ4CGiZSxDD)88 Uqw Î!zhs%d-: -TӱQ B7'?}?hCm}SRe Ir &fM M&F*9hk?:_?HeI2PeP!|\ -WSeq{SH$fl H`-Ä00c5\P/`^eBPD2[e{{xJgH@imhwJ%Ca 2cC[W-E>cEv2y|f&RraISHt4&)s]^trE"w]d]U-^&nS k7Yo65]AH)Yn 8dvlb :KP-fXxI=L;FyT| "[r j,!5G6j)uCƷr"u~珍\h/J=GHkzR@[`ғ.FK>ߑ9G厡ωD~Y>js% 3dąc"O3-:9Rr/s1CNk6` 2s@M[ɦbOH^23t gusyGHvM/-V~iwI=UH-֐SiJaQL79E4ޞCF"ɧ|6CFfj L_TY\ þ, 4[egV n\̧a '9k٨:~e7/g؋*Yւ gPIS9<6MSAۺ]1 ϦZ t_K܄}څz忳-pEre3H=7ޯ#`-čc,eS+~ɐXѳ w^Osƴ Kl+f6YgQ> 4z#lM!7Zw':L*/2j.ES10W$f~1 9Py|} c}]7Qu8ݠkíX̘ǴKӫisKT qhq<؇WO3@'DFH<"]gKЄJk!tI; BMX H_+C+̛,WGf+}*Zv(K K"U7B! }j'뫹!S2#*#=J< ;nvBJwe~~û9hj@7`ؓ+FG)TUX!`:M)EGz`e 2\@ =@͊_P XN'VYq-;g_GT[ɶ:|cl"}z7PLTD`:mK+F2{2}$x7>N ?.x]#aOҮfù>a< /\[Ș+-ˠqNZ%?HSIdUDkyEs*^+,ϪjڗXQ?]ú~i >JW#/v(U-JT2#fԡ_p &@\vCء j̅yDRp a~QaW&dBO7/jB2:e/R"75,AYD^̹J#QفRf+ y`Z0c~TO W\ }–rx]gTxw?7-PD3V Bt" P^g*૭ȥ%??>p!Փ֏mh͍ q}ȼXp%qA_zEXa18!Q=뗫2?9- @~n-D3WG\~v!g C/:Z`ܴ=ڭ?<'=K{5fhJ$ 2] 3yV6\Kf R7:LQ;՚eo  B%w02ButAJgjh1 ovsEQh$uwA yt<^W +ҍ -l~>q n6gvwP}Eم斖>vnl f,ւv)^K^ m4Iޙв$^w ^,|gU? Ezjߖ`$nKEtw=,zZ@>c:$FkS-+8cgc¦JҞ=*^QS=T6P?ޓZČb6J{ߥjMGpֿB(*g1sYb=ke/_ع#1ՎpEZҐ2LWa1jCӛ(+i>U>rSSƨbFm~ 3pCj|G;FV~ßVq)"O΍oNc 1nS(X*|BxZe+[2I#޼g2tlAfb)>̗繹Ď\`%o;I.i`ez6xRp`Ҳ޽U&SYzؒ\.9Ym@@lz|45Dq \Ѿu3`DU>GWkTnS)ɵ0^c.-ꛔ_ RHAR{_]5킸;GLe? LHdwCM1@p -bbjZ<} OUCirIm@2 !OMU}j\vр~vQFuNcÏ$aŤ'~Bp@CeyWS ksmjcn344 nnnޤGGzK^Я p}Gg8vx+9PKce=1^베*nuvola/48x48/filesystems/folder_locked.pngUT ZAFPQux {<ǿۗ IRQ ۔SMz9w*9QDDYEy'l\*jVJ$"جD|/f^'v++5 em7p@kr#UdlPnp/T$bB"RGQa<|%tYPWV!‚[1)v+g%sFGIqC///"[]|3qucgT$rGnĚE™s%Vow=׸H^М  ל$Bs\$1 -d4` 8v60pPn;-(P#/ar6,޽ќ ?>)8_K"MPbKTͪWv mAږ}ԣ_G@6 Hh{9@nxC Ti ,|Mׯ!@ U?J/,ж`2H҆k[?<40o}a. 56BgK7`$<&'wv :; JWF*5{'{Iۅ}"S'D "ee8#(V&U]*P/1ZYn NLh ~8u^8U-ƯmV<ƽ"cEa{69>@@~էzdMo#5WOB<)NIW'I0MV=FfpC+X;T f!J-;/" H tjiۭ:gpnHm3g߼8K~CzshUI~LY\ fG2ZRi e(0T…V ˔2 KfIw Bd=3Є)`2>N8Xg:P~W9fP.m:mjꆋuM t:?9C:±r '};PJZTKm l+X)s!{AZ OJ`k,^f|ݠO:Ed+bb}!SoSGLQ"ω;jau=G! OT4=;XT=0-[3Vj0箰qM~a Үj D6Q"" 0:!|jļ(X+'M )Oz_Rbqm.TeP7gUC.%%'& yHzhe{/̆ƴƐgmxSNZV`u̐ кXښ _1a-Vެ }jU$ _r9N׆;{' e1z * YC4Ytw'(Gl>sdD@+n!=d&vD$%fy \u;>hOBep<2l-eL$Z\~G/!'P{e lUȮ{`n.f=dkxڇZ2rg7R\Ls;rqɖp\Xe)Ry, b**fpGFa5 KqG;Av9KiE{0S,w! E`o[ܦ@\<5B2}]O{׮F'Dpa]w!^4?nb8 oM=(zsM Pq~*`"=.4G}"t`4eAݑ>q DQ)wg3#PKPe=1eK}(nuvola/48x48/filesystems/folder_mail.pngUT ZAGPQux WyXr*(j)&y(nZ`vة["զfmhYV`涕رk[ Jfx#癙gy?gy?\?@>{|w.B;.h'xoht׹]Ɵxp|(;2etxLԡȔ3MQ^`ٳ; A@bB*vzo:ܿ?<) a[ė^ꅩ -Xh%|PdTTCpPkB>23n36?\%wOhȐIg(K 3^b8fkL&)̳'OZo+zȹuυF^ºZЯ6Ɨ ں.}8HkOMƥxiMJREhuWPS7V;?oҫ>htWV6.i+H7waʊ0EH8 @v|vJ;:&vH뛌e{z#Uycn=Bj֬i0jj\殯RcR/ZU [Z1"P+5>9[++ Hnn#hNe,LF^q۶|ƍ'-FF9ri{NJm`ppQm*Z,Br1ooSM 9RjGꟁjx ?F?/ V뿰J@921{L}몠U>>S[1%eeq?1]ȺpúUNk3/<"r/^,*B(*'0+w?#ŽPUKjd#fI5r<+cCӕ" #gNP:⧆AMH՝OiUI2;|}v(nT3Nׅ6120Dc#Ewf: W&N RdIbɓ==B̅0 4ĞivȬ  Ғ!Cf/d`nsW_D1J|_8CS>{M⮯~0sJMYk̀Q0Y3#~uhhg f?큈9ͻ$?{RRxwӬ {϶ cX>6qdNHְ}jyHvGl0?*+YDAfX(rb656sSbYP>M52Im zXA)@Ğ2bOusxK4~hg,qb Dm2ph~l@v2W%^nVXb̓,7γk+a(G"e @ h.?u0cAh 2n` ٬p1\ '%Fp)l63-M=EUuhB &-І\\q SɼҊiglq4G[!K d3WyZCyl4u)E-:j@ BOl ý[o+#PK3j +en^ɣ/wO>[bd  B6>HU#bhnyrsc 1 @cj̼ˋub0<]$~zIwOG=D˃àO~Qמ/id5^[m ١CDS1;py xn$Iib^P wv6\!VӪ\;+?bROh@Z8I|ZkGG^X1,[."n)< 6ayY6J+f$N|R^uB9f^n-;"~H$P5(ָJT.fe s[=*Ԫ4zz~)"%2hḸ5}%atZ_D_xTbfdH>n~ l_N $68 1au2}VB`:LS- ڃ0 i ^"ݏ- jFN/1%5<:# ga|ih@, No~ ?!)Q ejEPjO p;k$AR9>0 ̮\@W;^" g4O.&h\(&A[݃w))kk(ݱ􂢢5IwWŚ\F`@13 Eeo:+fxhKI$`[']UzH&O8ͳiW3)?<C^cC(+R1=h<."69ky]?/nL#Q+|fUM&'h2?ɝsӅvٿ MC]W^ h/92M_^UvA!\Z߳+CՙA< ַaVp 9vq|GF>yr ] v.qTetE:Z*UkoٞG Zx'(B8M R\^x_Y; gIC/9825]ShX+5ϳ@cdF Q|VYС;(5gerF* ̎r3ˤ'Vy">_;(4 !k=*D!Hoq[ wВ5yV/3Ro{K;o(>A7FCmڵQʟ:nB||-\!\1 ނm sB^uQIU)z/@4: \j :, N·dG~UhB-=#UnZF RAMȸم1jϒ]Y$ Kܬ{WX)4ݦPhٳQЄPξ.&ᑈf6kt}ڳ-g_kLRl[y4D{ixC|^Y @ 0-j sПo-PxV'Fb}r(9\+5+k{&ӷ{!8fkh} s}7U1||I"ڄT%Dq^~p8gM3c̸BbS`J=,に;j񪞏).ݱg)$#0bRc=)'Ǿq?0PQ,2SWp=J2Xmo?EGXQi ؅WYK1hd7b1s.U)_:"`$Wi}c䪿u ._3MC 4>CTOt BǕd6>xʁu''wK(Y' P[hT^k3(>xgw:t8'It '=Vjv0mzTWlG v9|HwR|\a-a,WeP?+X_Na[.x)5C{A/ J >̂>3xz-a r7dsQFY:6cR&= @ }E$oxCh띝/6m*F~%u~4<^33baj|,Ϲs{V>Uw}BϧA)0&%j|+ ab} _~ȩ}hjZu8(-Ӹ*N9R! .^};]ML5Ve:ާM&EIþ>(fm;su,#,UB7ā*ϑHhM͐k #W\T̛¤ʴI%wNjaK&ƫyo#[ Zk:bTUUДӧ[R>?;R ^[ Ǡt@d5HG<-XQ[2\k<<_wкy&/Kt-}tWEWk55Km~dn)6.{l݋~ \WxŠ 2pZ!W𽲩0$:n+E$Ary~Iif9Ɉf&a|4Ԟ|J击O%gLpuApݸNP_&OI*o3ЯS0޷6s|錉錈eQ B=zCv jYzL⬗{!d -Հy 㪄C{!G=@ Y]-~w1/ŬaөY T`C<1)n2ne 'f{]?˟7} 泈Ā ^Gf7;:cٝs9 ۉ 糷)%|jd]D<4!0"/*EtC iUTQp~]k|%{US#V؆%kH6"3`Ț5zš]sS3Kbj,d n<*âP9^.Zc[˸21sܠ0E%"6xlR3SU ~{*%tgbjIJ8?,t8 h6&!YYYݤM`4\[ŎuuI&=8<ޘr܍cm6J%/I!0g>DžT8Aje]Ȼ=k}^N9x/M Ǹ__ȇ3 ztDDGw9MsZөnN(bzر.3xRt->\YmN*V|RGh\̨''mr'CI[:Bl(eK0SPM 8,oԍQp1kdRH7T=hgچ{J\[|XbsCGC͵yDMkHƬɎFgQN^Qu#^jEE+0JpZ3H e||JɚAD#(#\axٳk5髥0^M.ăE &țr7rʡ',<,:=Mqw; wS%U0V/oD,3 `fd n c2և~feJ#6gCX?ىV;* =b?%!o!Z+ _ ;dC}D~e%.ÎŢ '($yE(+9Y/e?R2Q [7JӧR 3{0Ufw]0F~;_mu9Mp2ov[ iD2wi5 Qrp(^;C+bJcEwT ^?SS%m\D0q`GTN>/Uٹ1樂&U4ϣ n*'5$,B*z_r2. 9sJ ˣ(2p6!%LG?p)O nٙ-jLdf(ji3D*RN}b.I]?!W&% G".Kcterj`lB:X*C"ˌɽ.́4^U V~.?YPNP랟c[W^g]T8tKxx_cWZ*gyؒ+mQb4-u/S8口تյw7':}{Ոj'd[͖cmp(* /!-g'ö VG7i1a lPKF9]X]'kj jG@: McT8z*{bbDon^At1n]"a' %#`F*Rg^Zi"(K>%ΟZi58mG*]l.W+y$2  k=` BQKDK!0?h%)UZMЛ'd~1HMoI'ד:D 3îwLOY rU~7fzvYsȕic+a(.OvΤ^g T _fHb[1VSQOhf4-Dкw4sO|v.q4(DA 5kfdOSvsԝ1ltͻ-WHAA9 5R Uq!mW%GۧRtUU^ ur̮I.V#wd 3܆&Y bnŝd 30M2 (31*[j[w$EG`l3 D(6 -¦!Pai|I iT5xd|\ٲȿk^NX+>(+/CA/jK*eBĴBnτlqt*Fx%9U}.RWs.y;NKs -5b+M[b3;A}7[sg>[Z~Jm'9NQ-w96ylɸp7pbh4 SXXپ.SO7pj)zK͓"mp*:oʦ2Gζˮi`)Kbo:PJ끡W4v-Xh#2 D@tFOOuB|F7z8>'h[^MCE9۾Y<5~3hZp/WQ.S_k*!cإ~&n܎Q(stc\2ꚿ5GsBEpwsI1SY,fΫ# &k9"HkH(۬~JXQH *bQ%// 4s|z.*2wZtt#u#ceõ<ߞ9zf;M$ʫoߴR/HRƴi=Spe/<Q-p*-ԅOBNl"K*/.%^UŘ1hVve>:v6oM]߬GJuhH<"B/Ö6û;.2D]~qZPKJe=1<;(nuvola/48x48/filesystems/folder_midi.pngUT ZAGPQux WTSI}$@(JI""*"B) $!R$"뢫+@@l;**ńBg9gfΜ333wcV}/X}}6h{Umwr2G箨?cb栤 1I)GzTBD#/=w=0K 57a4>[g˖-#+_J$VT.~xGꚝt5C=7񵚶cO Qѭ{) W.נ:ԯ?޵fzYn~36Zg&>޽#m+D\w^S_2lO̅a"顶S;wm@}n~Me,N){NA=$jfp^53&Rk eb -E,(6u'Q{tЈIbF=c%;G&B9Ӌ986I!Y5ȷ:߸jj#ȼgKK 3c8+ҭȈ=ȪsmkÂ*We:t-36u槩dڟE MWJ?<ly45$IŢ^Dml !MÓLmtI߀p(ildiLd쨫լ"տS^#Ӿ::78-Vx| kܝ:ɕMP("6 Ҩ.J}Z9ʧ#)>أ#;!O$4=;L,PtÝ#-VJ eLF!fjmXl)c Έ]/?RN1mCo\My|,u幆AI*/AoS9قFFwſJϾX1+ LuRP<763yoqEQ[ [r' + { wy/@: carDJ4*L:z6G=a<ۿAAffB_L3?bFQrWd"áLEX[^Qq+KH=.7bhE8 /`K4ү+ *C<Z0:VyK˻܈5!9riz\2K}>؜F tAQ!G6>k0E1Ou3c#:r>f‘?ֺ'AwP 3Te/e 5fu81BEfGfjh5]73/,ƃpgd̋HuR/{AR|P [GvwtGql^JK+pP/H[&YP!-v%bۯ:_Ps7kny|i$f^\0,QGOWZ>ͺXߏd),kW;- 3u389թJ,#~:Sm-pb*Cŭ]T7DTe'χ߳>]b_aqxZhο{=SՈkoT[M0at S 4 (d2_($2<pM^wQ\n>vn㠸y%|8gKC-5&<XmcӲ G,q܅Mщ|B~ 8c][Kn2nPa7K*L!0^43)jx|*U/ |Z="P`އ%zwb3nv9俔k"']m*qldSvX~ !ٿ&9'ЕrB <}" rP=uU/PB: @,TR>1#XK_UeV>NmiiWVn$ryB@[ |qI84K.erMEW{N`FpM] =(~9E ihL}Ղ2uR6n1{k[$I8dJ/+Pw[wa7sW| VC33 _^MVk$iJ ~KP+IaBp/w3K0͊[f]p#a0(jӲtF CĪgro2w_-ceb/E#]-Ki10"z`죑x 3 tHAB#<ؼPQv3=6LKeÝ @!Zzm^0wF Uhejd] q"0!`L'Sdߟxi"ݨQZ tک>l=OE҉I6ش\A >U0gV+XͭU8Β/// %K՞r\cڨqpJ\@`1N uiJmi!OfTJ$o~}b"^U bRd_\1˯uvnY66h-}EEE ɫnkA9lx]` a"rVǾg“25Ǣ+U?=;LۢƎSz`YE<( uWlrA@-4.;(k^ޚpIal^9^+3g= ^\%F%vMw 7OQv%DR;~wcT&= y鱷ͣB3`+״x{ CH9˥ލ)aŕ;fIΞ#DUIgf9~{]'2L49Y)JcGtѭ[6Ӻݝ-wҍMVfhM4&ܪdģ(x橗7!QcI2w?6Bw^燶H޽uir{zIB }̝˃ QC%+Ժ5JYо/grWtAD>aHbv,54sVԖ-"B˜$O{KM@ wXXv6~\ΒT,E>Жjs06i;RjV OLt鯂Qg<`FP|J:eMhH:_t$n˼K~ꅙsjPt!&ž":N7۱bʬ 4 Pf=TɾaZ(rRukX'IDB0~K"x0 Zh#;-~& j7R!S5t/E_\)@ 8,WY(ZAƩԈ񔞆Z>]~_[S78[,ɓ Ϭ,lЀRN[VN}ޚ!lJ1=St8 XR/6,=w չ{oH2>7`.-o?PK=1,(nuvola/48x48/filesystems/folder_open.pngUT jZAFPQux uk\R7l/[`N!1cS`g*qLKl-rM6sUjF(l4sƚ.MEŽv?Zϳ^Y{pc,͝^`_)qaފ)^0gM/ّIٛ3SLA:=zw(=!=%-/Q:ْa,ZzBkv[oׇc0rjbQh:Ha,9{q^a0,2̦d5M-3R-WT@2c+JwƔ`{.oL z [y&%YR&<5^ >.u_'J/w5\#;UL1o՟1\VX~{ e)A=ё( mӟ*[>Tv\ MKvĊ$Ƈp95)VDPb߶-f<./1U;K~6xˏv>W E6έ,\ ,2Mճ5n3Lј]:ҷUSPQl0m RYE %Y笴JIX69Dk1eI"1qq|e5(PT{B:;*I!\( XXz{*ʥ|jI*wWV*E񳇪 HQUh8oPaÉƮ\ !f"|*Sc0ݳ1cښy7YB+0%)"Pִ+8j5K<>1v9o7W vxh 8ǏؾOgk_-}%#8K0 ].ъg+ͽ&OU NFmMUsL);9+ɞޭKsrp ˫{?zT" iJy88PZ۹yG~޽r_dbzQAi?y+uG9Ǎ֨%aL>/ڙZdL5}CGg Csmn,? 14L%$xwzPHL㤃V1w Ni= oQ75K^%IciB9qF qܶ*W;v$?NijJ?%Ttm* P9S#W-JHi^XI<P;8@>ݴv1+q/ +C_uɰY87jI77 V^+O4e㗽T`6Cn[G'Y9UQ}MG\6$}9xF;Z*S4 1O[4vؽXW HYI@z!ǁB ݠ0U3 M<7D9E\t0Eykxwl kБg贴Q-\`9`P2$=O[KI7J45Ly.2CGh //"%&9!,V+ ^jyy=Eco :OJ9n>Qvt&'݈fBcwuPiղ(nޔI%;fY/@҃NՒ~ v૓TW}&(;ԭ"؀8ݬQ Ieǀ4g#lܦflS0|,uiԊFtkVb]OBB۫􏔽7?zZ p׳ H>8 iY(}3rݤcttOҊ0d(h-$y'|S|a1#0X<sdpDfRc$o)[:u*O)RsN@:@Y!, =b5ՔOf-Kc~ 49y~O/HvZ`Vѹ9L C{Fy cծ4/***;. ]+v].[Z߈omXQD""p^ ha 'F5c- |N5u(폒2C3M+w1i"sܧ-K5r+\`,!(یum^"aޜfX>M?oFS5⃧z_M7B6lYMZ!ǞxV#4[Pj=]@}NWՍ#8/{)ڼe$'8_O_],!߻~G~.|rye⻅/?PK=1% 9*nuvola/48x48/filesystems/folder_orange.pngUT ZAGPQux W 8o&mD\rD$uЅTbYJ8uft9Y_kXTfQ1m<}y}]s]C7mDѬQ|M@'l Vo3#!2#@@‘8M$vFlB6/, ؑD(h55Qh6.88.ixtԹcݻʙxOϏOh c5IB卿Tmc{r6ZrO׽kSՒe.]1"k{%f?CJ~ ɥϞ}{ݮ4S5 n>}5E`"27IP2ԫCeߺukׁ,M6:w_JUZPjepx=;cu1fBV[x^,t]ݛ=iV!vɐe6!ȡ"&A~\M͖j\~h:mTՏф sgUm\eL&d&;rt^32JE!Z(e L&?!470O>⪜RЩϷ;4g3[#PAt22 ] Bv&ѧ ywjkcv2xJ;!Y&@X¢!mc^J?2")Ef[ܹ"{Z>67{.:UZ/(//*=sI< OwnjIrj%lDu!,:IsSFu γ"$CR+}8˨&9)(X;[ƙ!QC!fglAe1.ꬩ!9ٳ; <w:`5N&.}AGV V|ٚ,Qb $Klm).X>* SNIށ' "wƍуR܍ҺM,-O΋y _] vO'}OhB/(pqG-qbys!LSn2m>JI[E"3^\J>ưH0 /R@/rT8L%ۡ/_`l1K8lڬlG.O*8l;̋{0Қ*_قA/Wi*DKFipc -bPR~ }oMMM铥 \z%xXZT}I *ع_xA"MT+drR 9!Ij`2=jI\qXH_k--Z ~ha{rYcrYlgRN8,w$q6o6|6cNu4%$N> LgZ7YĖa/v s_{K n u;3 >:ݷr| a<KŅ[#j+>O,.BG 600:[dO U=6Jl %|µzbGԙag o*rQNzTvm/X% `@9[;9s΢#a}#l+z;tШjJZD)5$17,t+ ]vdyd?CBoӹnx{ST@]GQG6Ivy:džW8g-f=8 Nä9=Q 6s>]kfwvԔ?ܰR eB56oc7, ] 7x4#{{%'6`0>| IͣJr>)޶o&Y8n;t$Eŀjhx,1rJ$(ٿS{*$Su3*syirA/٦dz6k`++aҖ?aQ Z>'-zsy[j{NP| w錅6/jt I<+;Cڭ{l'DQE)[s="ers_&0<%b)t*>Ő-)~0s-fkU W#P3cYx[ySAj 9S|ި+|۠U ;:rNU|!5NG_2m9֚LyAB+2,ucKgE1&ڇm߻m9tfW{&*<\+¶pc}.†d5=&{If8LwD;Nx_Qݕ_r|MJ+d,)'MCaI]jbW@טذ#|eWKs߻LjwE ͦ-3n0"mQ?얈@ kp nlMz؇S$ g?0; (ԝ2 }AKd}9]$d_"#i4}zvf}?{nˁÁkM-jك\,3:yE o~OY" 9LؕD*Kh"ER 4VQb?$ihas7Hp*''I=],-ӕBB64O|1S꼩NWL  .t|%|fN<^frTq,&+Y׆)NaMJ" yp  ^౴$`~ϋ'utxB~}sZeYDb)RLΦp7 }:ZtL6d(dLߥ$X r=yjxE-=w._g|MOZkJ[. e ;SIWFdYvcbmKjE{_ -,|Lsb0ټkѦ2RGJS rYjbZ"\kWPFNaSHGgNvHq}[F4`;"{6kb)e+UF C 2Fk\*KqkId0R {5&T"˝lI Yš6l/Q>w6C>-D"*чrhՍ9#Xw,"'!an\@Ȍr)Qf..N?E,q=K*&F&^fd3+'0{biǸQx^2199FSϐ+{ə:\i!j,weJ2*ԋB4g iJ nj[_)Rl!OJusZ_`@w"%79bV.kz^M_;gbI\HB8@( 3JHA(!JP+*pZP$ Jd`h-*ׁB4T[[ "9!hk?]{=kx##n^Fk 6;[S7ǤHMN.D&$ŽƧ$E's2w%,=0l{g :aI"qގ L3IO=.!$$>omhi2U1ͳnz*Y)>@ w=wt@t>,iյ=6`ͺU"/0à $daBٗda9YXq- \W@s|v Q˃-UWb>q8m3RĤHCW[]Tn/r?wsMa__:_vE)svv&?F9zq?Q pHAjwmX*J3mwwɛFFH|5L\wGG"0hCN5 /.*J(L,-!WN yd]쬦TUӃILԦM(W 9orko`dJ#v}4xaMxW zc0pw%d[(׵Ռ~G2% Q͇{__-k6}ЦC T[jt碦teG}7>hSfT#O3Hu3fxpʌ[D c0<Dl9oYi⨼2˱䲳B ނEbZS‹^e_5U,"e!I~!ě#"m.QGǠoWCSq<>@1FH!u fHXE!k|=j*u'(xDLq۫~ LT})fm ?5ѪKsd;{oOoE;p!]h8*L.sC!嶗Mwm෯X|LIp5+^^eΫ51s^HqP +SKUme%R; EPv,f]sn@I9' Z󴕅B,Nx,p j9C(\+^[\xx/GV2qH0(iKrx{t$p;Py/&$%C>EDs,9èY7T+:S*0phɢy A1sJkhP  3WJUtNuu.XG~NqI±JV.[?KDŽb$tqGk{OZzWV6*l&$Uoh(3 yL/W&&$$''&(SRCPsļݵX3f$%$&=I rۉzP»2/r^!f{D';=ۥ9HV!o5%1 @ &ZD>K/Py纯viN8-m΂uj$N@4ٛfU%Kڠż Ԫg%h4nIhP 6A_҉ܗX 3:{u| )~?Ii&S}Ο XCy+V=hNK^CoPLY-Tӆ?'Ep 27#AͧOo9c6 vMӋc@0l`k?H" _ ,9?9)*-/?QiiBTrU g:|{ρ8 Nu>Fzy{۲yʕ+Ώc#6νxImB׊ϖoY سި236&&lϤ8TK8XZV*NJK/3%HNٓ;´= d/Y2O;݇8yR mGa Ke4t'TjP4cT*gO/( `±3 kQP(*7 Sqko1DS d: U[AljxdU[]H4Bldbi27$x(˨fˑA? ܾ|yאŊ"L8fDqllY1Ofx"fo,Ԡ V{ y%t@:RSkpG4f2\C g-=xPBUeXsX*aqx9-hGS.ZRE[褽/eH%̼cz(25`ŨEPwlƿ!I9ijߨLR.,دa[ji!T7$ivɥAMM~,%1+rcRcIiM' \ aBKԲ(qAd!?Zp6l6 ug=a VXjb(:a5;>zkRG/ZC^p?O1 :Mnm@3i*sޣA\8J^&]RְZ}#-74gO J//Ą%+,9d9h-ǹX@%MD:8=DG峘  ٘x.S ׊f0-R:x*=N,-,>Tu6qP|m= 3fZ߷3#Y UJVy+( f ;T_+9Ձ[v5 =ZbF;p~RE9:Wu6y|NTl2#Pr?%={6PD7xq1dRTC-1FB&C/<좻52RK10'h[MM7\u;xEꁇӛhsRS:H⼓;u4`V-eGvtEUEGl54*&žGa㝣~f:vIIMẌ́; 98PV(q]}RJIgEHTx lAl-߉#q%:?qD*[YPzbF>qo'R MFs7*ExzTjZgaXD'!BсĉynsD}jߨدbTAX^ 7'M˝0Ds?u^ &a&2=mnMa]@T?ƮA=bطsJV)"8vE.ktnܦt$&l Z;L;ZO'gCY.t)}kP uOדPtWh#gl%L7Sa8zbTf?w,6ز^c.nH/_ )roJ䣥p"TA~b.D E MRpXf-w^`|lʃAEG$w-9Hz;$v}!i;Гz]bF+k;"H԰1 Pz+Q߰QQ"wT=`GG.qX(λ'u PV FEySyD Ja x+~\PՊ USh @ *ab-4wȝƏ Gz{0j# q-9j%њtlzOe &SΑ6Fj$D_|% @ n60* i38" 1++VAsğ{[FA/ry)Y -6%xqXڕyf)󋫍)xuDG$#ݠeM+_<&dwizopxVsI4TM秱+VNp?wG72zK3{rO\WpvNUc;`th/%OVgjo:]vYƈ+a1"=u{`ka8u4_rPkHgI0H>ZڃFU_|M;M78FS.yiIT.-\ԁlۊMuLT=߄j]wd\i_ {g\醠iUԄ,G鸟?DN/W1ywg)_P9qz jm"7R^Q|Ic|Cf41g]/=w6_=L]w μXUA!VV%2e, y8tq'* Jb}dM* K6]Pr٦]neE}C(724*fKmؘ>}:y?y 2pZKo!k|DSQU7sLǝxrW\3#jD\X$aȝ"=`^Toa*" L7>čؽ>>}{\9a ޫG&k%P J:FDF߷"z©J,&ؒ*2N}w2İ!0D>RXYɱǏV+"+GI}W K`T\/vYn?Dyxz^dɒf0֤ qqD.O },᝗`*C11Ǎw45uܻgug1/^gؤe+׮] MUe캿}`!ǧG/+!"ե*aX3'j}dzͯ鑬Z!d,l1C{^j`` `bc@ DGX!Sb[_Z>ys"Ui֝37i}+8;ߓM+QVjSg&"jg9x)yG~Cçw}oQCnbCT_セS8@𰻱AMMN>HML|"56#!twkŲ_͒V-Y,앒)JT m9gbpcp~SPiYXyU$jTYMUS1qz*tuuN2P0!0<ϜM}q~bR认2rX. q9Xl֓SaV:-|E|ɼ\\ <S%S[L)TDߦ/E /H8n;8Br_5"nRmAϓ32mLgYz0L5$6^:"ej?h2<vl8":<"*F6*q3͑/3툃ğoȵNbO 7a-PXlQ]}!Z9K㉒cOI>ǝG+\tС@A16o60+Gh[DMljmۚ 3cΊg̍M->b(s0+L!\q+o»]M7{Bpӗ1%2Wk$sJ^dro/S/f6ߤߤϲ,O(t m ]9c3~ c89rXDByRSWw!zHl{}_%B#9v!L$l3!nŁV|\)`,ږЩf4.V!-l~WMiCQQ4qݗ,{ 1d.oKTn NU4I#NA=. "|AG8*(\憫BeXuc:X;*pPgO^(%E8rAqbH I>Kvd#LI1t~#l C\\"4@*j (=T PiHӿ\B \R5F"K'&T3EZbsI#L>s̪2"+coDS~M7`-KDsf=ւ +9GݧCʜоIKF7R9#c# T\KQ L7\T)Mfa"<3g@QpkZLʿɻe-GtSGt r,[GA+KfU 7.cK#SC.엷lzYPA+UEY|&3DD6z(ܒ,D\yp5Qӊ0m=jsfW^#/<*R xt# Nymscd\BfU\pEp,A&$'hcW)۵͑^_Dus6*b&ӼU!EI/׈yd Tϖ ›43h-m@WLѷi.|X 2_XRz ~RC\JEMs[A6•k+LfpؾZs+zOuF仓P[:B <UDм tV%} cȇ(@9= "]K"8 pK AFbZVz#SIYCق[b^k))uC6f%\@pՂaDQvFj=B t ]09 (9x#rctuzy5('[orQX i "#އ,'<}~j$=zզhniH愔UMs2D[ : 㣴(┦nvn&|B"{0y&QٹWt6-*-}Ƅ*0AkI\LADy9;Qε}4"+ƒkޅ9xWm -Hg+!U}x\KYR_׎=f(H*<<ڪBrwA c1H,Ig>ԹN!wwoh`P#% qv꺺ІԌ* AaC[C?Y `|'?%۩y\8{!Wٖ>ڱQϟ.jn'bܟA.$S|ƍIjäVU<̌<.-)Sb'|a0ub-v-%ձtG['1P3_3z?ãdS\QޅD A$H1Eu\[R $?Cͫ!(B߳ bXrx@ȣuTwK` m\QR'ev5wodDl}>_ )r<+TRD ܳxav$pE^Y2RWg BKJ8ob{489(.[ziw~;0V{< 멉Egxp#2*ZeOVKiz?4g2tt8cXw .t5t}ēm/ohx lATRt1軶Ӡl285n/[gڙSsM!7,azqjJ.!Aj;[({KɅyAo>3bґ#o[Ġol}dA^xt }w r"rSn-5l: -]l;9%00fW뢽6'. ~qP y,z & V|stP6quqy5X z `#-9 ](1d]o2L\ tuddO~\ܜab. RJG~vg'a40f9윢qj嫲 )]{VP&ۅLQu1XIA!dK^ ٳ,i=<6|޼_'OZ}[\j7BZFXe!gO5Cʢ°@o'Eդ "έ_#>v0XT!%2].9*ޣJC"AN\dZuMH#},7*]\32gWɳ?~6SIKmm;1wN_\2U'#߿s 'XR] ~a4b-]YxaPȺV Yܷc#+wmQh`phh𰁩3_ {:2ҼgUm)gZOJQ*X6 ξ_Al%T) K~rELF,Ȝh-6c%gJ=SUs;B;iM7dِ`!nj m]l1:!Fڬ\zIv{lḏ-TdM;҂ M@7ރJ8e8$euo{\A({2S_[GH4w,0|xufKj|?-F rWNB(_xuֵkVRUrwZ̓7#pU J-?T,j|Pּm|Qxӡ{ǧM$1J KW>jAMY{*MŘ9Y͸C z.^?hAlk6  i4uwkH9܀hHJ MoEŠ+`Y+WHl7Ä#'Jh2TZ9!'QR)Lmԙחmذbjvl_zƔ A}!C)~[uJ>\=qh`L'.uULҾ;"zkP:A.nnXA< *G7nfuY!T? %P+a-%[O rEg8]hwL{ NNT iIO\'#{nެ44 ;tW2x !Z& 3_L&P4~fxxQ =&]z.Ursl1k#򱰴Ӳ#'Bu>G SJȚ~z$ȷ[* >G_~AցCr;&@$3@!TH .3*-`zC[}U Gu&# ٧ ی`@?%<ZCcnz)ۿ MIh3\{\^HaF %NYZD'd7-\Sسg3ǾV8y )/² GմȐ^EE7Mi<”oJG~A=!1HN$Xtp#UAw0?(uR-ǟhcP]_nڅGo>6Jަd_<}=0+M~E‹ٯ*řsg G>1Rli3[4? mO^+=t#n+8ܗ6,L~>JL֍%pc.e1~҈+^SH^:#M"a"[G׮f]Tv^tϜJ$sh~vq ki\lw$*#ibe^tH$OǺk=m-qUsݖ(j1>%=759غpkֶ->U'HpjaW~MT58kERGlnm$6$ǰ+ӖDUyGr6MBmuIJ/Vln BxM*s3mȸ9CjO k٥D8,, h'q"aھL< u2#8cGc^{r9:{LBq64C1iK\2/P5  U%ʣD}^`$ޥv& m#";̳hy;Iip,k=5jkNJ?,28G6{9gɬ)F?W?ՋQ@)LchL4:e0s?.f[50y6;mD5kKq}J^_q&3_'3\+C0)O?f}ms iܿW9# u|ל|Z~VfLtwH="@;3+5i83 /qK۸GH{4z;VJ농F>wn<?-K<*yਇU.]n')*&mڰ[ddHym!SS09%E\ڹX%5e5oSrW覚QX},.3? XP!jZ%mD:F yK{vV.or䕕Őd@$ DGTgj2qMdH+D֟i1сnٖ]D+.Z͙Zfb^m4m8LQMo/k\} CpͻwNkO4N1 tD̯Q^/k+[t 4Q{⨳ّ6Yi7" 2ֻE5ܿIUFn5 {h (Uc{5k xD2B}h +ZA:Fvȿ`M4~UckU,}]DŽ׀u Ѩ\`} bT,4Y* wki)c[/xIxpwi4ljѮJ>ovCk_4?\;4I =#D!78J =%IM ?mH~x!mqȰZLaibok9Ȏ&@&2}v&g%p곛x_0 I \:3cƲ"ccըtKȧ >nR+Z7sk&-<~n"_yQm韐AWA<6dlB1-JhHĮ'_gƀbXIQ?PkQ)72bEpou&L<:J|bխno2VQ!]6Cn M$7fz1 Țs2֙gtxʗZiNۼ] {>֒2ʇ{9#DW,D>ݥB٤)ҷ7ɗ,ܪy0/ާkQ 2M\&U7 ©Ļs^g-v⡷PYo/KK:Z{W}Ӫ²h3s^.(/݇f/5 ntzWS2ӏh.;&.|`(jAIWksw.&g3nɺhy:߅2o͂҅ӷA`;Ĩ'lI T 91ZU*òS\G]\v|eʼ yr=\\n #8d-(PtF/g og9bkB4g2^&)ib>(F ƧrsaH9܏dҨ}]|ƕS4O֋Y@pMzzHd2Ej'eZGF)Yqݜ ArW*}LXw1bW757v#LLʈqF/O.'̘uc0a~bجw,1ș%܌%zҵr,b)Z.NWXj|.?suk91~63K{%Isf`dEE) J! .-]V9n̏* ?]>RHW\㺳. _(:=UWz!P'zy0 / [] x.hWZ.srB͛jo5pfY50ؽ{3oěZ m5DȪsc3`u͂oĤQ#DW>M(YQoQd>U7᠓=_++tѕn723Bxs0^tdd8sΟ99?͓Dw\{S;Ac_g*bHǩB#c|uDra8Z&w_(tn`2wWm 4HL?m׵mC&\npOO@+d5c_Hfŋ<FĄT<3\mgxv"٭5hcjh?9$T1$3uc%^.1Wjg1tt -B ~ \*d s6NDy/O%0lVE׽ 麧򂱦"rQ7 64ܒlrHdY4H8v *Kb!i}Y'PK =1R'nuvola/48x48/filesystems/folder_red.pngUT zZAGPQux WTS~)$JBI¢ QA)Ii*V EI@"MD@t-,q $t*!jI?sfgΜM{z>4o0u/rƠXYP椕>I-:#!htP]!G; FCq)a& *8//G1+gG2/bjb*K>@kuaqAqXppT~q?z\>*unfxb5w.h /+?}srٲUE $ɗNQ_ٷŽb%` 7ExOۀ{=򂦦?8pt]0)vJp֡.~Q٦ _{aa6Kp7.onn޴cӦ4 mSoo8=ULrM{_XLw"WLVPb!LtE\!Njǭך 1[n-6_);3gב/1.o'@ׯ0#,(5{6ںZ V{dè"=/%%iϡDwGHRVԄ Gמ׊u-Z2rEdbAz—%.|٪Bn9MO3A쬍Ҁrv7Rez>P*67k VVn%IMQK~ug%|+bC{aJm0Sͳ6Mx9P2[L.OZ(R/,{W/MS2`b*xJfAf϶)Y8jїɁ M*㵮y ifya3 P$zV`.oF[>'LyF ^qӼn*.g"l&)T3GUv}a}eD5M3##kѠª7Qcr+UEuj49}FZ7? wt 0̣k8t>7rdڸ]B-+PO.##x1 y>>4n`1%Uܘȝ3gq]C D!Yvxsj/ފwDɑq Bo@F2? ͆X?si (? J'kkE-!{XWw-ؖhDC>4G JtQ:2Qe<)ŹT> O('M73/߮c3=h"Q\GOm(PuHeVSySSѐ*y ӵr08AaU 9lP6Dګg2$fU*ކdVVH(=\ g`o}mn!EI-"t HjnH.X6w[9'N\smAFõEoƝ} Z$ YM&9=,=S6VبڗʝO}yRhewD%\SEJM> o} 'p%ⷵ" 4hyƱ\L"gJHʕ(.LRp;)IO#7l {ܖeEk<7w+xBq(]ٿĥ!ON0`׍fuufDX3"OS&nꟉy}IJe? & 'k& b*I[rXpz,dVݦ}_1s昍PW3Ww޻_\ b쥦;D|rm&፤D[^cB ZP;&;`{ 6ա< 佄P-tmv}S##0C%ИVTbzή1׃Čգ$v6F=WBÍ=BH>buA4CH ؃nsf%E_0"Im㮢`*;6tx ߚFv15K4F<֮!_Ǚ8+kRCq:='aJ\Ǚ[x=QOݨow_.]m|& ƀ, XiIYOA}uoBQà򆃐Œl: bXG4p. OQrJ=ޢ:4mzR 7fFoN0)Dd DduS4%P+rRxCr<5t]ޯm : d_Hc ',wQ4Jd!f@W _Q['ֻ6{dQ-gxAb>yoN E9<%P»Q$s(it:rդ`]szyUUf֣ }ôqd.ا$# BREJC< mmvzC$n` CJ6jN˾ϕ!s -G9!G HhL`*gx-~䎰+]9h|pEhxXMqØjgTZ٧Tu֕u%aʓ^$גD6va>|ޱ9:| PBATM,YßCJfaԿ-<k_ʢ-_nz]=3~FVv[ld.˺Nqq%Y?sXR{־k|q.= h囡PK٘=1eR,y,nuvola/48x48/filesystems/folder_red_open.pngUT ZAGPQux uW[S=''9HD!  Ce T(U.0T"h@&FE%Έ~M-81 2!@s?^gQB͖`>z-xa߂-\(w!&ǽ_ĽI=$~05,a|GQnS f IV#ױVbN6 - {b n'R)?<&^FF:,^Vr0* Bbdz} W7. 1NBIN‘y,6P*9O(fYDŞYL],; }3+B vd/0 l9{&ْfLKsiaa'þ?ߧVAj̷m5;D}q|,_CpQn00P]Y5 bV;Zx׶E oC/|NcS=S QӲTO&/'֗U5E^fmҩ-k=fYso_iA}d_*6L# I!Ж-Ee l96Q˜勥R_gP3EhRNNP'R\Cqёs}-;z ,qq@ BH籘v_I]noo4}pwu99 ¯%4 Юk|uuhr-d?ŊE|#6[-ZѣdO#owר*2~x룝O[c6ZRX$AH>e4ɽ2-%e鼯$ԋZ cp-ٽ<86Um!$_p=,WK.[DaN{ne6^Nw8a.T9R%@дO]+sܖ)^EA}rWpz|9Hz沭{\sKMqH/1[&ۯ!xO 6#=m"nQ&Tax=J J'?xל]\oxE/ y*ZJ\-_R.0taltif(b|T-ǾG(ra_nc E4tf't^RXjC{w==&t6D8B/ u?C27m#eiDP[3ELP!l=vA #/Qm9= o0Z00I7IhFGGna2R:fYhTW?UZZq^U_ד,EJPS={qfbO{::Afd]=bʸ`z5F;ޔG$4ULb|$~mKJAYh*bIRh !xi&[?Df:f,sL仨 eC9_n[jB c,Wz4\,/`^E$Fb3`֭CHHwer1x^|кNH.bPX|*ze?. AaIUUf7 ('L4L"Y=#Z~gD+%ILБRs͎.ޑe(;ėdf O?IG=8̵n6U@MW(6$_gϞRI'M̌ ~2~O AD9X ?V-W%J ١½hjy-9*:F D2 #Uce1ʂ5#$s* ;-Y̗eñ왰q-Lv*<7i7DRu#&G-};FЌ:RQ[[']֩o. U,}&4d0ٷՓS]třs؄9ȾӤYvORu z3˥i˘ rI0M!:J/0 90,$Վ)c(:YwyKYwFɻҾ7 4FJ%|.:![Z@"X󫓺5]pKsĊv@I9'^riB+} ˹BcH $ ̻mشPKAe=1Հ$o)nuvola/48x48/filesystems/folder_sound.pngUT zZAGPQux WwT΀Df"+  5 A8JT!d(K V-PFaZ̄=2>wϹ={s{yˁ} 6A }~{i"ῩЬ?25A+vi_{F'0υCha!}g™aIg[=!S=#!JhCJ6>&ɤbӛ( oii[WO@,r !GÛO?NLYmi//-M~R&zSe=Kߡp -s8(K^:t~qxG*en1W/*b WWIu!Eq O~Gzzy{7ᕙ>eM\zU>c!6VRkB* 폛i *_8}9Ʈgbb^ 64C:km~u]`0yp!=1~~~})j$֤*R/Z rjaz}NӖ->/+dEAa>uzpxxOwN:q" e֨4+w=72 TE%v針k(̄y ^_QZW)hU=ia~4Â|?SXR_;zPGA-HAla`7gc.V&ՀʫBv;l*4$ /b$֟. ޔ(AR&wlKQ[YPm.y?gOn&DʦYv!gWd@VBSբ8է~U .5LUU$-pʩQn`003ݢ"kAY- (F5XG.xo6 N^6OWU|&~r8C'r.- c>yR>%uAYs\8EL\ZU,Rs ™1#sGsJsѕZl)qk ou⸉OLdiಐ,'뗍.\KNDⓈv?Fu|x1LU-.\uj3,y9Xv$+e7F+bYGR1e "8((i}pҎAݎ !6y"mݱ*o D"Cj[mn'8$~q@!lpo!V) qA};-{ _*$+#6YwW> wۻWNA}.1 4Vn&]ӂ/LсCiWχo)p=A }mFonmu+כ ۺZñ|ŵBaCm8%Y3"nE2 Nf; ]Wjo` n1Rrk|Sg1茿Vp[f5Aga<DžӀ~vD8*Wa )n¸véd}muf\KAmA&`OpOL lSKMzN4r) /b"#w-/E" }Cn WCF!D`{,Qʍ-&ٸ/ku15 ­D+@',ϖTm\]gB+Sj徭# 0)^Ppo۱O.b/0Zf~* [AU+G|F Ȏ7-ES¡r$u$( T(\FnUI*nq\C\eYCHׯ|nq]f3^NҶv`X=o {Im>B~TP [5cl~MQr s%Vk+HB &-J{2YVmMJi iyw./+ Q;c%l . `#|f{DVW2Gyl?kXr7"yYbP)PrGƊ%ZL@ZsB,Z_o/Kj& n2 O&x`Q{F&2Okh2wBW8To% f>垕O++o" #ln1?7bAKk4^ǽ}%+CE6E Ԏi9D/'1P !%"^AW=DO )yz{ qԁ@Gs855R#pB@(@/ brK;v)XQBWSu䤹9@mIdzP~q yp2)!ė˸_^DH$Q?Oz^̧.`*/t;sD7(GhdOH {',Q =CJ$kwSgYuu2p돴ޕ~3@Q$!*)؋4&y=ePHWH+GkH>lyoS~m:{68j؊R}eNRS:KBlˇz+<R -. #?BVSH [lxOl }-\ՌG Z}'= [3U8z>)| 5"7IJQ@,D$Q"/ S9m7I :/e.w/Z#1]ӬJŷmOi^zI`~["hh]@aS=z*I"꺔ת7-dU.9*b%2S~͸vM ٰ.k}ɢ$-:U"2~*f! }# >4N)ǦpŀkXt+5*Tri>Z-QaN,ĥn@_7vWqĪayrc) on+jv]Rj^\Fia Z&鸻Jdc+ؐN8vYƕ#tx7h^O=y\sB@wqf>arZK9KT3 R7CcFq\JumjNh %AN9 m2M@Jb(^#i!Tma@C1f3 m'<-mw%)JAmDqP)8:+*u>nCQU3bAb#wfGG3ʈ 5?i_Bh!BF+}2VZh%%c8{?}NPqZKu|hg# 0dDAl[ӛg _͚Z򙊂T;gB]gpo;GKǯx4 ß IT.K+txw.6+s fUq\2dT&}=Z |rSaf.kzD8|2r<ω ~sHE?L^ĬĥY<]>!Ԯ* <ÂOznl"{GlC rF‘be2R 盔Ei T?Q#6-"ډTY֑O hfc;P34LL ]rV$J70Y蟣T㋓2u$A~]R/|Rl}Qgq}j:jʭ2rQ_fb nwzdC>ْaA} U,dDt,NѥfxubyTH\&Xy)k"sH2d_L+e3sT" CZ#]aB]$q?sc/W,3G45}ᑶ.a z8#T3l 96]y_'P6 _4\m7+5d62Wukc$XJ- @@T|{V .w;P8.ag@"GsFԸxNY5 W-V5¦YkcvJ&ȶ ]3IoȂX4;qPV ~9ewj8ZtqB1Z [ZMl.w!/#ctO̭K4L.)C[ B@FB}PRЎe]H2ڴ#HEkqYۊ*|} vGIu swU=h&K~ sMxO rLl{=sg73AvDU|m1ks^s-:,n)I oV1 TSܣ9Ȟ,%( `+!"tPgҝbj$ v|NY;奍<)cYj|ݡ:VGP*8R##_%%NnB!l:^4 훺˯lut|9A~HLWzaX,r8onXRVuoC& ڶ[{Ȍq~G2 iM+" 9]=*'7lze+ &ѣBlrI>5k hrAO֚$: oUQ{]ȓsDԟgEhW\6y@qrdn_xLF,g)KW yx> ~͆ѹEedN?-% ytgaҸ .im,bjUk M1]I+ uvNa-(d9(ZSJUfGzUl6ǭ#&]O=4E0|X0o <,uć%bW7mWeȀp-05Bm-\'[U)\Y`|a_L\[gIoɺ-tc, K Fû#f`iFP@} Tө7)k;[Kne] 7 !0nwbь}{yPKە=1Pӈ'nuvola/48x48/filesystems/folder_tar.pngUT ZAFPQux WyXR>Q4+BMZïӭV7̴T@-+͡4+l 3vLrTpg~׳Z~ߵ{@= v,Zףּ\<}EI ۵Xc%p*8>ńݏG%5;In/!*" P  ؑMBa۷.~<9u꼳=A=;]N1[xpC) f[SЙV9TYďe( /x8DdO={򤵠dta0U<~Á6~XۯAZn?D98:lmaa/knۓB֤fϘI]J*|%vrbϚ)6݊QQF>6nY^}tb?VkXtUk׮)'A5+f[uGO777;I{1k+W4}|XÐNanOC_SÞo)X_lҬ.oEďVVV&7@OhCr}p[^t5l~+іhs$TA8_xt EK( 9ѣwreesL6>!0/[P:xO9g&8R&U`!L>bɒɯ67~_I"6XFr]bM4F?hFe!l-$3cd.Jt(UK]N":|Nz룃}tuB\AQ*_C[A[* 2@7WQ_F W! gh4M.,Y?4y=vWk}Lhѱ5#O>B|*"TσV|MB' U$'vwy 0'SQ)>J,@z~`"a[FW q0j8~%~t^ "n o abs{ lYbKs l ]*WyEj>U__e"k476z[9|JJ݉ڮ󒛹}ݯd-ANӣN45gr/)|Eͻ,, ÔAB x]b+MOB0vZ9$7%Ս;%TFR0ytl/}A(oj¯4[Dm6q=~}P%xli4k׺+LD$2v abpW-p"BY?%7L~ly]gd rc{ʪϮұ Y xWN7WL.6BXA"[=T+YlM*SϝHe));o.kZ mKږ-qH5so$rMQELyΚK 隷sQ"I)cDmB1B4&uz&`/o@ 0ϋJ_$}֐&@]FrA=Yߩ %9\mhuFg;;L'S'ݑ:;Wo-wJÍqnz9R_Q[}>/4V\=w7:?p4AʺVrpsڵG)\]!HB7j޶/ 2n2nq7K2 9*[OY;XP85u|WK(:9iP)/MGX;2̱7ۤL"DV=-g}YǕ0ixDKz~M*'_QkH8^q-,me<31@ c<){|#rˇOb7 otϦ[XrQu{0v(gq;h!WxEsMJ'i b/!Gu[P&`1g%~ot?Qrߐ/iRl9Hdn:I>%'팾Հ!$?٩zG܅ZA|iy*Q BӶtM_f(ZRS&9Suͤ2b"e)  Fw.M*F1w!%I>=d],71{ᐱT_ B>-i^(ͮ~k=mm_df㰹03H| K!V7+{I:Յ sZP%J>ĬC\!XwqJ)xuASn(n3ֺ^0eF^飈. E* Q?asYIj#Iв;Ї6-xqa W9Ya+0m@QM6RĮC&-@Z/\~_X|_Q`a_x,1yRG-ÅWUuG{/[66ތR7Cqj3ꡥw[9ڈc^RN|O)Gؑ Afwκsy%{Pv){u "?ikM;qֈﲽs3ƏbF[;0_ue#Dڠ?bUJf3!Bfg4JQyvJ/ڋ'y @3s ;s%Xh^J`@-\޾N#gC;Љ,ʝ=c4`$ ̿2+F.PjթBm"14## mjވĵhU4F,Um*hbc[XLzdW@ ;]/;8Ƃ|FԜw7K/AY9h֑7&q_hz`va0{,4)¬2gU5uObPJS ޻0hm4m+ AN)YszТNF >Li3eaņ1༅n\:0L1cGTvp߃sDE.M9mH U@ s֋͔҇zIr/M7/ɅW}c $9p$ B#W9lp UHՐVOhx0Q'\|:9ǁ Q>#hy؟Y(#6 t|jp]*:YDy)9~)!.'c_y ok)8L [Bmqs'Pw0Գ;^'=++C`VYoTn8 ,b2,F\JI/ODnTOf<ѤH5e/7y3lj~u7D,Q$h͎a޾m>^PHqŌVb)c9grLfMRCϺ_ç)W]m۽iDx;0z 'aScOlДuPud95l(+2;0$/-s\?cXvT cl7@B.'GHŖ~ݷ"r3-PK8e=1JH'nuvola/48x48/filesystems/folder_txt.pngUT lZAHPQux W T^T-MJRL&ki׽j*K(X6hHM4Nb5ikh.6ZH/[s}=g9je1@XmܰnR8@i L9l5;=lLOMLψ9OMpx(&)a[BL|ᖄ~u3b0̐0dCDTqqׯ@toHuֈnrlffᄅ_ ?ƻ+H.""Q_|BB]h9j՛׫n3#wMJ9;~ҿ \bpwWjx?vB!)ӝvW#'qzU0O_#dZŋ ` .3S,s;zeԋɾnb<Ǽ*}Gl556vܱx\m]r,TUFOmr dwF])ur1L! ý'// v`sÙz'6YuuAsΝ𵰰Pa"I< HjlzLXA;c )D5dbUNXѽ<{do7/XBnAC&-\zرCNYV}aa6'IU 5w̉M#7+2kRkMP;[4ޭuc& 3R((ӗ~EQB)8[_Έr11kjK][!emm OyM)`!ry"+1RG6t^oK܋`C J\ObK,ߥrl%dOdzwD*qCE jxl$PP1_Z ftqm VgKƖWCxCۢ2 J_3@ysn&2HFFjFiF۾"O~tbẕc1'gpj/^UҿM\"j"|c4]nϱȃZbfջ!΁:;Px_Ӓf!fPb_)FxbXl[clڢq˗Ed1=mjD9J"tAz9b=.L Mz=P;`AԦxTUZCy*d1SlfV/C_r1HWzvtI*s4<4#2=dncT:$Y-҇կ]kD=/rfjw$ֱ(,X{")$|zR.|RbJO:x$IV`4&<<4!^A|{qt~qjpF;KZm3T@;^=E!(B(jٜcYjS$W\|pF}wU.| 7Fg:&ri꽄mcI3"@pd%+=Bz͡2I[ڏ~> Ջ^S{SP}'%Wäux q1+>Y8Ąz-q?#rl[f:WW_AV,]ps`A \aS9~ ғ)bq&57:O4OGod> uyZ[B 0" v :z1gP9sD,XR` EmP~rk\ٹ-(W0EgJI=ՒW5183윌\: o4ĕd^K&|Z$ ~!={͒c%ش h44 z uCb~ 6!yzea@*IIcAQh2{stWsLDh⇘*~9]I#/?fh cdNl/~[m֨sLj ^yr+pw1{(< b)c^Zt/ѤVz16[#S'9go aS2IMt͔~[,T`EjO Gk*SFd,턕oMtyHY4\å_Y0LU~LCi!/\Ļb95bIEu9#y@We qX SʪE"Fsi?VTr}< W|OMYOʬY%:>-%V@aG9hT\q5P$o5}V,5~Ѻ,'l$Z ^ҹ祉%Ћ0F G,cPAգ=V)̒̿# o sW;}cIƤLxhx'I"dykH"Fߤ҄/NuJ$ϫI RG&8Kd\$֊a޿e0kQ;]A|qZ -l ya-Hp7F؎uS%,dP1)[U9LƨaEt]{ܜ=nb@37DSxʞ-yפi쳊7=1[3Y;w|}&p@rr=-aj'fFnyʤs"3qgupDxLo3㮷@@EP0[ۄވi0s;Wo ^7$ډKl&(N=1h2yfЗJ2y~-SČT j`qZ]۴vsBZ+V9HIyԴ*n;>/v[NMψFVCg&zܦV 1 x؏%0+ឍ"膊O]#`Rlc#9o"9P,X~(Q<9+AStx:Nclqexjji.r @8~{`М+7"#/LKo=KQP ~WN=jʊh8S "y"@JađX`oo ww!om *c ]O4! KK(2m&7mF;fcXͿ O[@dOcd7-hG'z#*9XE;w&U}洖ŔpϳP v=s:3qji`]ߛg}y?%JT]yWJTWF WS08W;BIRG0qE0Kvv8 잽TY6'C/́oR94:z7Yaܯ[Rv50`Nu9c(^S9:zvꬂ,jb#7ȵM$x_m#X1䗟C%$ l8`KTv76{'}L6u-%8zBh]b?0!UEmsmC 7XevJ?f3]2~#4}r0Up2ujt @PYY8!6#{~:~1ϨjQդc7q5;!/<ȄH&yY7ۄwF]Nwا E"Y(zYFbGh \.QmPZH$}^q&uu+Y0&TBc5fg?FDù@9yl^/L?>A7fáK5MૌgՍtWdOja+7k\LXR:P7PԄ͎7&8v0LQ 1pyMwY*+԰BHErKF XuB(%yMx\"w 3+iz30'1o9-T{p~sȦt-"/τN^Ȇ&mu=uY+,;9?"#,oaZڲZPK5e=1a  )nuvola/48x48/filesystems/folder_video.pngUT fZAFPQux W{<fli+l%ꍲY9lSIGK %Z&xK!0gs(RB:5:h\tǟuϰ"X= ̟Eu/us 2vm䯀aZ (b^,w>{pDcI,gvvCWgXoD?XGceҷCS-&#WgQ{'u6Mq#=O}%rqrD{^aϞ7c/'e虎WaY LlK}4(ܹ[2^kN\wm&~:,2FӐRS)|GS/Ͳ,H<7iLJGhkjՇִgU7}z޽{셩b[J\kO ǹ;vtv~WW<зjbtz 5V=xͪU K"+++#D`.}6 9>|[$D[RZc͝)]ڕ ؗjŵjB c_+8ͯ}|?Z*AcG^2W)M=iK`rPe>y%i]==0E#s9{[I "<4ϱtH#} V4Eިpjk1HO=3۾3`ERœ獹WbW򼟟E;N-O;н祸TF6V,7F%FOd>x[ȋZӢV6e[Cin'Zwfpf:$[7Ou9ކFOMKR,Au99Jg/9ḂDRIVwqU/rb^v8?($Dζ8kتZ@kx_/|l) ǯdvi@?Ꚛ/_*X69F"!N&1M7jreqfHޗ#38}g|;{"sONت r#ũW;ΦZ\iUyկ~5%Fm6ݻeJ^s =b]_/S%un^{팵 qtKcp-[L)\Gc #dBS gҕYqz7G3 I1ϣ"bӦ[S[?<>VDc?Y ;x48ȸ9(_i$ 2vG҂՚jBm Sbt8|:0Q8v[sXz 0j_pV@-AWem`q@l +0yC? \꨼TϪoU" []ɞMz$dGMlyqک>_cKqt* g,y߂k{TwoQ;k wgF/ :'Eu1jUK9N"eM}17+e Zq 8瞴vu&S@x%h8_D.={7!xUK-,~ e =}z&*=%ʱAXT 6k.IN*aQc7B!a tJ} ɃkAţhG_tv\jyW{$\N-5LI/_yIi h:nwEs>T(3.]uյ3vk Y<Ɂ1?|x9ͻPWֻ@ *Jb_{M4d +Yfsxirڵ| p]`0-ȡc֞asQ&ؿ7aƂxt!18.imPݡxE;g5x.\E~0-d],5I3Qhp؉!)Pi\;;51lIMA''Ikdn>wZOYZ5+tڊqigE "l&bzᄲ zd+R{N"Vpa,,UKuyl nn|,I~!^Xl^, V-0hnn|(2K57֏AObp;69f`??=7INy/xygS>W-"PT hZ7ty|68:W6[$ ` v3s~A2V& c SДi'4"|@BQ{;Ԥ ]a VUCSr7 5i-zBi{ktmsGA ;}P!_;Iy,΅>?ldϴ@fQCKM]\d.Q`X0c~XLf{MNW @D @+^dd F3Eҵ(ްvk\_/Lmo_|zx%uWC#[\̗<%ɌCb9xʁtDP\cFrñ#TlZ[ơ,NI4=΀H0It/uixe,jQÇT4v&V? y3(w(wi"Y֣IlCDpbKNU(,RaӈSIgv.ȕ," 0#W=W>۝9eVU5G1%qU'>E;P.]-E{v;/Ȗ:NLQ(54^GR#  [$j^/m!(<>⤂LZ/;k[5Atc;GYQ%^Zm1afޔW6[ k4G .c^jD67 gTp@:I 6y m+?jHGVc.B:G3Bvm5<ϗ֯y>qFN\ݸuV͈lC#"x%9cU:&cʼnfs&;s $V  ;k}pV(s|R@[\ SRGI0捭4 +&^*JsHslUmYİZxƧVbj'@\Y^>=6]R92IeKTjTzyzv1Ff[î`ZtӀQ@77`ዘ=MS`Fm;U3&(ouh%)fguNi3[[0V%VV<}֡FczGuynVX=9P߃G} ,];o/te^?PK-=1ecY*nuvola/48x48/filesystems/folder_violet.pngUT ZAGPQux V TYQw!K0,5QgfS8Eۈ8f5jneiPӴZZ9i*{Y!~<{KvȎmz0 ز[+]]݋Tfj:'_(oqꤓ['cL O|EDQGG ?|5 L&}P0] x@wlhoT2س\g 4ʖx-BY>Է]FGF ͶW]$w+UuH`u{%Bw>\ =mDK/_~Þ%Bi]F&g5groUkify2L;Y_T2ԏ3bs޽'&FQА#G-n䗸!Oj45g]jS5g2ӒwZf]tR;:eN][i~l U]7$rja ٽwwPʌv'.p+Ύ<56̌KD0'E#NirW̳seCi0:]4uL&{&N!g:w2RpE >axPԥ?`ܻCZ"+⏵kfwD&ͨQtGY'wk]V 6Rָt)`ԓ?,BsXs-Cyzb Vy֜xi0 @ ංȱ̸gojLSiE ^Р^e{nKVy;?e3|vSk[&rlt7 /06fp6O*qe-i@կ~9:YsQlΒŏڗ42cވMKkZPZ";Iw'sZd;M0*{PX촦I-njio]:](k[@-(-SB,d%# w(zC0̳sU_Kf{ Kǘo W "#OI?yp^r(!]k/v{pz粦&vQq!f|/ 6C)m)$39-bc]SV)Hrw-^TȤTu#E)u׷xñ "O'{٨B^R *'"h"I0^p*ݙ]G\7ZvffH*Gg: |c+RdϿd5U`PȈc'?/|ܱ̗i0pⰞwkiuqXxSI`PaQ2´TL yΪ#|\doO-aQ́7G |k{V`0Hx?V2Dt0r}SD43jr@FPXtVZsg*M6_䄵&bEm"^`@Q/IaE mFO{|V-y{6TƔDJֵ ݜ-jD^۵l(1WF-nJK؆T͈i 2`^)y+:a0$xd&-}.+Ȧ{k椃}t­ޙ1#rD0f]=zo^(05{ VYx1נ"L,ӏ|9 qx k7CQՓkNAB*]iZ57뾷Z6PQ`TpMD].s~d<@oӼsҫ!~ދdfUf HXl"kL~mmpץS_&Sؕ-LB7T~[Nw"oi]x !q[}آCФ` /rGO<ѿx=IsgjayC@b.}MnTazS :v`07[ cz\0g}/3UaY/aM)pz/u:’K}2wɞ}w=s#t-$ߵ9޶bJ fϩϱwۿ;d`Cp!npD`";If8H4n8$7 M& Ijk R+b>lyx]IuPk TM$bAJ*\6p9,Qn,aQ6o/H ̛XK3F&C_!ʹy{o]s#` AD2yujS# ic rѶCx`{X5+%Rx1H&WMEq> ]&OvcQ&EY>h:^cKEt׳S x~*ac7vDMf$pFږf+Hz u"=i\kH"NvDxQMt8Z?ΊĞDq!pidurgϞ#J̦ycp뉘mM"F9XO,u KY+qOߊf\mI/tq-f\iTKF9U{ީ \Yp%m7plXELv2}QBNnD%~[Zt_b1ɱznБU[;?Ƨ+>4`=MqrNHJaئ*3b̷SmQ2 N8]?0n?rڨSVDd0G2'pNI4D9qjJr{V}pA|v1G u|"]>Idjy7ḨYk|[Ejos&+N7jSx_7G)xIlzHF "m[˞4Yy/_$v}8HXf$u.}sSx[\56MM:dv1W #>6sǣ#dR5¦RREz/O d:L|Ai=-%"SvfN 袵dfZR]3Yz]ĴZu' v@:p%ꤋe, C׺*2T2(ah8.MfFAl+H._HjTJR}W,V{E=ܬ&=+޼Hyޏ Wԩ>*|(8*GtfiD\VH*CרaatX5ўlr9PXpawJ.#p ; o㗡&J8)Ks#.aX@"G3EN-;]]i6lSﭑep.P31CFl>:^tnS0kl^!'+җ׈6,4薟Wz hO[ofPK՘=1>Cr5/nuvola/48x48/filesystems/folder_violet_open.pngUT ZAGPQux uWiXS>!L! BdPDr02(p@^jEkG" 2C+(!Ј̐x|{zYz0#T+_Zn<15590,_'S#bQ]GdžFƤ];R!vF; USpAAA {CTjF4=؃a56y5*p ĞV"bƆ x\EA 5">.>ףs8E"B(trett(/ҙ8a[~JΔ:i_ WĂlڻL`;wnDb9oMHѱɱ $7ٶ&Fl=4b'Of i}u?zm.e V]Ma^X38MF~%/t`qZ%_N6B/ 2DZ =)bnpt|%RWD^112512$LLNƓL[Cjإ5ʚBޅyjYnBhZs)~Y Onڎѻ_{i=ȸLZ$-h!Jv|(-hiMV co3Á=^6dlӮn%K,<|&hc%Wˏ8Ss`\b|IgĤX68 #*o~5Xe㍋( rZ(`ʘ,㨜oMP~Gp=m(.>=7[: ""_m2+%$f()(DIKž3wj >Q1֠X@Yן# 14t≪xSdFpstl##* ~8CC@֎.t|s)41Zxa1 `AY>Amj4 thZ3CJ׃mZg3}C}ɀMΥWVKgř2$bWU dlλp [cYb-%ɧ"kvafP$j!ǛAW튒@pgem`Ɣ]P)EV_@{~a>2{_ Ye߳8.+)hNIp*ΞSGwA4BjҍK/:luvvt>ݍYo[M+.U:ABqba;6s9a__X>_t hnD&8dzǏDOMNb&qqQ1#1im5~3.?ryPsxɨWPUH)x k=];F> # TdhTx49CpD%59}RXB$SL۔%,'Juf I^A{%~ ~"'Om:$ zƿeba.ռZqM6Oϝ<wx^,br)0`Y{\/s'kä/݌^JH׷~|xDeoM ǣ81iقԌ Ek[o0`Y?5o#)ftL[MY2 yb# ghۮ\ITHOb֟ W:}'DŽ@|Qv&q^7J!p/~SB2jA2Yc`jKFlOT.! PVƩekea:E6 xM^֝2IⒽv# . f˅j-qiO.V!uWFGʌD`Ss;G?˻GNBBŚe] ́ &.Sq"٦]J{ROż_rz֎3Qj6lcse#~p,GO}5R,k vm=mF$UFou5R!;Zo<&&w&15ܔ^c$TxyOޜ9 ܛ6Zգ޹}󄜜[5cQZ`xy}ZI}7t>C ysnmxz lDQ W3N]WTuD̄B[ߛZ!J JHbߦrtaDyySKx pZ-i" \ӻ']\P\5+t;&n7{`]u%g]̀/lskmrʫlIs'=3qL0w©SK Ӆ@ģvICdċhǣ-7~I;YN3vG} 1ho(Yx3$H҈]O".Y\xwazЙ/yۂvKyimϯ|ÆC$ !o@'? E G&L(nShn> /P%)#Fn=PىHEbqT5P[HEIWWHv|nZ1~fT*sNpE/I$@ 4!!G@  "R"#Wb  E}*B ^$5$=5{̷o{*)}Ϛ0~I`j-& :qQC#H=g#]@sgޔ0) ӚAS:PavQC݊9X[S']zvg8$|iB<"wd^΀QSG29Qg͡x_NdHN NTzsfq|T1|)|CĶ@\.ʫWu}}OD;od,sN'/.~iØ!ʧ~%uezLOOn`s7di6 +Ҷ5i87]w+W'OU0ww:|ć%C>ҪW?VpQ+ٝp;kjfF95UM 0-][ӟw]Dk׶XkVRPXgV;hҎ9Q8{kO|w=][$囨'XĐǰttgddŚdf]]U`UvO-1^{,imfm`(gi*f`FɁ#=0Ƃ"a}=>86d~]kg*};=:- 0'Bbzsz1M`@(X9m [;v,,b.q,b>aоW t 5AM<)qŤ\=mf7'lE,H/͏V*GI8@Ant.cQ@uWT@gqc}ΆfbR ߠ ި@'V;#vEpc-P F1\"Q(01X_.IixnE1c"qO9Ḃ# JE艳ڸYY_;3#@+Kc_yKde_MlK~qIxH/rѦ-~:d_kM<] ]9 Zo><, \dDDmErnӸ&O^׼QS),CX=x?t۴%XJj`0vN!-&)|g5AFF!ubPXx뗮g0BFmȩu䟈oRW!& {YHp272*v+Hv^b!,>BWmvf/>wIoLذCxA>˩.Lv\H/LN0RS 꽢Hegg"LJ2O!E1V48fpL";4}vgmhM*}Q: xn˘\QKdP9C]M$V$fc Ùh=j֫Ng0~ȼ F> t)iȦit!D:#y&n:ǚxŦUвqcէ/J^ :h )^QæO°$l[WIs X GLpN. 2jz5i)Y7 Ԓ}+54% yŠ:g?bp[=Į2!|XYVJx++[&ծZߡ>FL(\F8K`\^WLC =W+ҡrZ@.{+aF=QshgP0 2[FL014몃C/z]M?Ԡt)33~qZ,ԘDDC~x祣B'^^ܪ /|@: š2"22ܖkiPm$|V}7n|%} [ӣ-򙳝>>eq=.@v[ jܫQc~bR4 7ˉyܭbQ]ei_e;ص)e_`j (;bU:p3MWoo 6 m=/2ؿ:BO xOD{у5#%pZyAn:_ 6YUA޼OU岃U_D.?eײ) dQ߾a[ ZTd]]} MOh19XzN ִ -!H,ƗnPē0`;ň?!AEK1 dizR0/O+!qG vcx hbu{XB$?:BY Ĕ~kLM$(q2 #ĉJZws[榌(ڳelwal./3=?YL >gs߳: Z!gkUC¯Vl .R,$bCW(͹L0u7u6U=zF h$goRק}-? $Z3 ߳? nT[X-}p{wkmPK=1A&o/nuvola/48x48/filesystems/folder_yellow_open.pngUT `ZAHPQux uiXSրOr2dJ$@ (!I@1 J{{#ך1-(0h+B[RMP%0 BXD@!@q|c<:ݾ|9aыE-B-L{ncO_ 618֢+dۯjonO5Uuɉ=(\>‡bhn6L.aR!zr74X) 5 ۬n/eE8W\u1{GQE.[0;:0FnZ~i|Phm_'!9Iἵo61=e۶f(uY[jn%߀h ̨)GH (APȴj$^cma yc00Z$@Ly{GIђ|b8KIŐN+jNH:ӞoE,1~p+]r⎁`3@)<Am%j- a%a/!f;s95-?2Oe)[2!B _>e >4]› qҾ^P+ "ks9^VRax(n`D"Z(Z%B@$RT6ܴmli#E9+͗NogAcm[}ޅ|k1ԗXQ%Mr ~_zwvu H,Ѡ>1PMv;ZKi_nRѳ>~QтeV-r|]o#A:ّ,V*==u5 ѽRA_UY҄B0.Hӌ͒˭ aOS32lyX0IqH {gēda15FI( &U >sS}/ScŴKG?qr]KZL~FE/ ~e? hF#q 2Fk߼wYg@q+Y ؅B}E8YTʹEJDK0[KNPa@~l3uє"u8 Eabzv׏^ZXy+ħzko\?x]SB5[|_~4k7+xL PUCYTG)<;kt);;% b_^#Gn~n6^ʞ*G:&=zh`6e!8U]Hy_.9Aٮ+3wC%OΔʡ! a{&Ʀ[2ytQI%e7b+mh,P;q"@#;#@b֔ * ^(ENJ6`(>S훙' 5tꯖ7x(4bWȕAit;[W؈W'낟O-Ns%um ?(OK8w׺p Wy;{n^vЀ]rr#%+Rt7Vӭb5>?vݢcf$I%+~0 K lOćE/ҴSds=sz{toȩgOv]u$NcRe淮$eͱ=5qm'0 җhBL[cTvx$p]SCq &4;h'Ҭp-jsluqbK%.}fjDQ8?{{s5! 8sMT jvI%e}Y4_YޏОIA>>eӫ%"!>eݩ<I"#[4o|Zou73_4 ÷#,|f~^sIٴ[ߦ@rAffo p=o[ gucn5LJ Bа<CJb FZݔ7D.zwӼ:QEZSUic]pnc>ɘ63jQ0w!Mk-IA~% EEBҷ3ҁG'MQқ]=#ړ͇Bb!)iں|iECEE,IG6X^1ǘTYi=|Ӣ 냀)hw z=>Kc-d,'Gn\`䢷ɗ+5Ev x.N@ؖo PKe=1{CC nuvola/48x48/filesystems/ftp.pngUT 0ZAGPQux W}?w^}뾯}[.1`vY;gQ sy_>w'9qѿbsfT\;ÎJ: >nܓ%€ tE @U{~U"ەhDyM  2 jM\T50|Ra]-#pD0uf^QlYʅ/CVrZRuk K;3`#LUwטdDoEkV+T[ų@7z_7tтlTdCZvf>=%m"8.1gWʗoK|rh=: \bEhuCPXzK%bq >l( Mu&Qi_Sf53@^3Nh‘Y^<\vC-TpCɑ(RCV3jЭ톈.VpC3vJrZ=Z(7ߑ}cJwjggzShj[w'Y4˳ŒŅUv=KwכbRU5+Jл4"(X kM17u8=>%,;53~on9@Z[2\il) ZnZU#g}̒kU=kj,x ~6HF}AuifcB4![Fk&L'8x]^I$`!YR!F:j*Zy!ëQL; "P>-Թ~ HmYr jͳG*‹e,$˥c^tGz{kDK pMRiUՐfj5x{9KFW@X&^Yt WU$T @wF)(ƈU`m!f-JRg@YuXNcߜ{|)_Neo~!L(_ǩ8?S w'pwpDv~.ae4wI4Tur=U <'g0Ԫg h4J1*^CƄ|E1ۧFLEhÍ r &d<5N +'{줺URDX2X`lS!Lrxʎ89R1DR U>Rz rFЯI*gbbvܠTB6ϴn=TJŢp73<J"3*ØD0ҙW\y_`ʝ1M`F0!0;ES*_jԺgst[S8؋Ea8̬U1y}FV;4ۢsn^HJoxr~PU^di G>gy;Z?F<.(X^VY]c5wa(n6LjTșNn(ׇnuΑD+!I,㲹Y¬~gH6>WJ˔s}3!ķǒ ];tHR?fG(#BF9~Чo!qXm<Butf)X'Gx}7R|=E]K㹗x>1R%Uw1*PCm3WU2L'qo&fp B:8(SӍ51>RK 'j?}Z=YJ|ٞ$ȔBR;k$:&KS VU@ 7s-ޯUvݙKBfC;5^4&scb4ŶUK蔂<}=PCӇoٺ$ g)Е. &kĺ1`gg BM]y yD=hP`T2`e<TG9~iIQI<l7V/Muj4^_zslR˔kRi ?A˄u Op MgE΂`\#f10-c<6| jS c;$)be(/W ~ çϠ[KSF<쵓ـp ( f_XzhG. `7x;JhfZIՀ̽[5@IY%Fo.IfMf<~=t_:p9u?Ţpu5OX#ƥ?7n}e^w)Y؋ʩ" \p!@T8y1i-{cܻ'o H#9P!A]Z׷R*"9m2"^L`˜VB ˀ8kXI⇌U@Dyb$5OWh6оJ%0Bwc5up9ݥ7C汸1SmF*u=(ck5"Zd ~Np#^B !|ja3ʨt!%6M,l{1},®.Vv@ XQH/ܶ"bKĐJq;Igr,0{e+',zI|RG~.JÙF۟şfMjuM rf*{ufáϥr T.-ƥƻޯz5pg[EE2Ji,ՇPh—bKtvѦNF~_Pǝd]F5ʠ=1ZphN$xfJoRU*ykzZ S4onh.*hInaN#?+<iI,FeћîJQGe/ 0:,M]yO^3mߋv+α{iOZvڵ =ۤW퓖 />Hpz:hFKiXhq +qv>+"kjln| fփIֹLȕbfn&H{v}c&\MJ)Q/Y޹Esb.HAIMQޫJ/`~zY^(VK\k9(4O[hs鋸'>-{엽\%vF~6=$H }ɼC/5f'UgoլߛZB^wQ1v4TѴ~F W3hԐJo:2 Mh?0ujw1_2u\HtĄ%]HdۼC6`ꑣڍ;"QY? ht9qmd_euEeV7~"i_4rc␗XvvhsNhLȨ ں&5q|`cXyrmwɵBջH}I"b"J2kkЊ*e -H[qX!߅Z]RG}%YǴw{{9y[/ID |l| i`e!xׂ1< 7#Q;bo}1XsXy!Zt˽Z]8M\BTl [.,Eo͌ pB}abo⚓Ѣ:D˩E s̎Nl$\>'SV~{h j<8%y7oWF^1_5$z:`w =/_ήNUcPK^F;6p)%ڒ5UUOji -fv_V5гS"b4eRP$ЛHg^ BeL?κ}Z%9ͳky)Y Ҙq>q$Mrv;Vq"g",0xX*7'Fߥ.#Lqe2n)HYJaqX_LjfBEN`?>AV2ҁ_k e 18,ϟ,Xy~yHo{d4L<*z+]#نD ۉ`eꝛ"99q@0=_兏 Qr%ڌ]-h86 ې\<]PYpBykuؚ^TF3QZww~4e-2+/ZjitqTh+;`"}9Q&QĕǗƓԒs?f7 4vk|K3{=BjF8*QeZ41=-+mΣOPia'γk+ANZ=8j/:* @m?d%:cU$Y^u\nzݽWPGulں=~vrZQۦ$oEiAr#TTy& ?D R9#>NZq0զL} d>ATEc/=N¡0D?lxlRLfxiry6Udz{#Y Cj9AEp`REg {cevh2i oEϿe\%z71 i=DۀmM7RPKg=1YL}U!nuvola/48x48/filesystems/link.pngUT ZAFPQux  sb``p  $Ù~)tG_G'Y^%%i%E )I A)'Smz{8TJ6#Wl130< &7eee瀀 _ߟ"O}d̔8{O>30Kڣ9}u Ng`M4___gAAA61116>>>2 =]#況]*H{˽ W$k{ye33S9::.2o[=Q"2+x-=~|?߮qRw_q$+==?ƝkΘT2(4)=r$'̱qB瀘"W0Q4\= `*: k/V'3l02ްY6k_̓؁a1<[iWqëlgԪ'\zy7ÆkjҦ2M: ; 7ܐVNUrSdٖ8k/_>|Vs7I,ǖq䕖g[mS?XzjW@v]ih_mN.}Frf.X:ڤA/@^y 0`=^H,j ?TaOfǞ&zR9YYT(/b[Cя|G۸V\C>6/:{ T>H 3C]\W+ʂ GMMlcX-%l6eE;{%d5]A'7;CQͅ=bM ȱ9QtrZl{6ѻȧ AI'zt̨3hq/5^Xcijq\sImB\Eȓ$ /it[+7KK5P%#^(^p]woV%IG!fiQͮB [$_[v؋Ӑ%goKx0h t7MCvC+3Pg&0$C1= xxAaS۴.N߼=Iv{9w3lI.ƺI&>h((rZ|Ĭ(PK֕=1V}$nuvola/48x48/filesystems/network.pngUT ZAHPQux W 8o!tl&͔D*͵RJfB=:N' ILRf% ٘}<|󽼟iJ6ߴ w(@9jujPǷR'O'@18Cz=1 =?o J)hGJԏӢylSmջy$?DGe2h3V s`Z/fŐ"WBà B} Awm,T]+MJ=vgpwߝwXyW)#i\dүDųBt"9=!CMC@&ֿe? 1XC7l4bk'@h,INx FbaGz)y{07qCB9yrUa#cw% 8̭}BlZҔ_I ޱtrgO6mX2L,sZ $wݽwC7-|V,G K4TD AK ^j6W@q0k1z/?souUXJӪG~ZpZD7qTߺhc,N9_xNip'Ί%ʾ:Ȕ#=!ԗӟN4mc ^^xɠ3h@2aTFp _$LmLs%.pk\t -Ƞޓt_d ]-Cn|l3QM8 /yc]!g\4Tr6Ԙl*Յs) n95-chn1HnnDbQC0z|9$,-KΗ s4c5NffhVy*d]y` a0 2h2vOpcv{&^B`UPy/VD^cxI2t &; *5q@2@r wvT|җH:]6kyOfE2 xض :;1tF|.V=wP,}a{9%2j< cI3sJ! .ѾjAMf5nscTv=a˽bX#gCu5W#3 YũgV v%A~#?_6"ija l ZΟ֣U>.] ޺B S\0jH^hKH^pc7MV7 [rQZ^=e]TBSy;--u!fdl~{< n{Zqv_o kHtʮqMB6c"u{_ΜN|9]8x |-hгHzwngx}Zx3F?}_)H*%4\}c|Y?*6^UTLO=2kaµMyoYN|=C`(whãly$Xg1ŔS9sMSZcE[D^l kb):Ϻ?MG?\?l u |RXNtH@$ ~[Xw INZ de^,Emf{( Ոg70raLHhiGn:/Ǎ{|0'B`ʪHJ~7$5OqXT(Z@XT7rro7бo{Sx|3i#n_KkixҐOkܠP]QԽQܟ?\e(xTU6`~C9oCŮ'|G[?Ԃ=?ܡT(MMI,EHGBa"ƚ Rǃ<(Q"p <~Hc[Sҁuxq/haɃUZ %ؿuWm`pk`#Ч 1g7j9h;n F6;;J@~Eral_X1n;qΜ6iY+v&h<@fg=-Æaݰ:]wy;*vf֤w;V͵F yq6O\㹩\anrd$}1'@hYiL̻5X3Z #tۮuqȐA?RLynڱ嬗Wqx"8UY7"ME‹$$ߛŮ4.CzP|~ *+B іnSY$kI^hJA>nu'nS_ug =|T5wbW>8X7͑0_}5{{, z_S-7}{:wYO76A9s+ht`?SaڞګVګID:>{N֨bd)T28 %_^_k!";98[ R۲ʕ/ZF ʿ/;s mҧ6J4D]C RJcy.1ԆE-#53NVE?լs_ŗIx in[x&V1sQoP.Bx5\C ˡ!-} ;Od ? *.'W+3!Zिd{/gW{;nW}Jhf'Ǜo?$lD=*W{pd(2A16ηa~VTJA\D$ ;]i;ƯUmWyFݚN/vi-nr7YR$~:ays"d]6)HI M/:Vu^d6}ǾS"}K )_~? P.)P;6NJ1rZ)rsN'dRu}ܞ׻/)SңdKs3H;ldb {].M hx=ؔ&\efT0ѤָA?(S+E7:-| Y.Xɂe,'G>3v&.ϟ{n hsPP]}7̈s(N[bYUu^үAooP{U>:+ʷRGV7}i^d@m[5׳ޱ_^$zf _k|2HC%b{ Q-:WFO @~}Ӣ3NKf pmu5אM lnĞ[?"OV#XP8B=Ӿ2jBbj ]\-$)ȗ5Sg^htT+?zZ 3O"s% iխ 0 ŒhkK)ڵ[* &x~s_:IQEPTv;UH.^ֶbscքg"s5GU {;oxt2(_ [=eKXxIAT+n"Qx:tGp#tD=xLPKg=1>& < *nuvola/48x48/filesystems/network_local.pngUT ܔZAGPQux V T@|8#(*G@-Ժ4NڽL:٘ H"L㦍#ޚi*K|%Zb-m:g>{ "v]aQFMrLBoTD.64~o|ҷEMNHɼs>{ÂN`$qvƍi  bV5_<\\Rsaykֆ36 r}} {xp[fR@Y8+̀6pҧr;f|A$q݆ $y7ԯDY%{ު]W ؠ\_GRϓ|$Tn`B|Re;UHY|@u<~3eiw{ ONoW%oΤ=ASNdaZe3rPz:2z~t$Jod-/L:VWIS䁭i_ qtH:~ E^>լJ֨@tNFrIU eܢʷdDi8s&^CnO}Uٱ9:- 0'M |$Fr@? CNYAn@dS==|#r-y)P[XPE(|o U=i"~!KIlo+.D0[`6(S\bQ$n}sKX+K!~18Ӊ+q a]f(Z&lWq Nt^p&%&/Wٳi $kau 0i~.jN7r'5}0k\Pɝhke* L?{{/ l?At6e,:QQ㨼8؄9p C\ gт? 9pB·U& Nr \%xmY. 6#Ϲ2I;dtГa{EkTMb$'&Zۢm `ޘ*CNHO^bR**d{L9ӢKΫTV:]l$o6s[޵lP#& |JN[;/&FJ䆅Jzܹn$M Ss} 9;n=0m_H #d}Tð,|z*hZݢ2/+_ 7XT~'Pw1If߼TMsaUV*ٳg, s1NNǏ׹Ƿ `>c>PJ}btWo+\̑G6ƺxF@`֬ƒ=Jps͎\hs׬~) vA7?eXuӬ, i X4%699=ݛZ|Zǡ 2"mmt9l 5[Z7Tu7;q9!E*IuGcAsW_P($_6GgI33) Nhkxmf@bL砱 Z~$׾ 'ctbA{>b Չl|61Y)ȭrX0%fC5m;hUƿvv/ҁ>kd3: 6XOHak7 IU?x^ARД}&=ibbCpGE"/D_FhD>">1AO!HPVY(H$x=.Ǡ3 uCXޛs灞Jyl{{$ _wQrϘ)E 7&?zϧN&j=ёn:l.ˈ]:#i] w 7N)o^O'f`oH#].t6kOtߪ?~u95ՀP-;{fHJ-ƽ~w8O$%,~fsv$ 3Sk7oUR:"p6 Kd Lj|>twj?$'J uT`dm?nuycvߝ`5J%=[ry_@Fzq¶5?PK g=1lo !nuvola/48x48/filesystems/pipe.pngUT ֔ZAGPQux -VyTYW_,\q+kD-MSALcq4LqI2)mm,ͩK2S)-K%eJYޏs}YOy+XEnk9ڴ#&a%Z~̘m)d $)sO21#596T89En j)4&w#U V}=bQK.yfNN5ll_&"tOp?8/}c8[^ Yɹ]BjIr|qK28=Ã+Gکnȑkb{ uGmUVaX 2aYa{ 8=Vrz]ZpayECCD#{و58 SDr<;)wՂ}.wjzO0raY6{|cg5vb8/@RDzʆ vyM:R_06К-%_1 X>K:ޔ3@| T;,wp p+- B^F өdv(g$?vGtYrEn;Cbi W-_ɗѿJ 0dى|#5cLp̄UT9 uMu| sk"o "O^ \=_&/1=;cg=ǟfAHSN8IVOӕe|ob] l$1$;y0y^4mNt]ueGPl77w#fbU|ZGo7츛ʹu `4ۓNB\yd}H#o^kt}}kՋpÈE-ebs@f]Z-l, 4A9 Ker :yze,sʄ)U_FRXu^[0j޲1bdɣ 3;iN#.=;wjЃiw2 j`;LI. P@1=#رCaq yEUr4pzj`%.8XYg,?fE"j\Fcv^I PC ,fDI&&^e!qu&Jk$Zc4T YHzOT{ŒG2/J|ҙepH9H,+@ц]`MMכ}Ex.;+vBC;cV Ƃ6DITٴ:1ФHj5>~,$p5-y>eի ̥MtnϠ9B$>Qcc*%oIz`q*p ~//9UesOeHOÎ[TFKlϽti̾ Z=4ů)t@Bюs%t'RNqbB0۴zZ|y ,:1x \A_nj/z/OhU XvƆu{{r0$5O3 P;݃g&_p,ޅQY~[gᨌ}|Knlm?-ϧgρh홨 80n>|QVH8$|g|HlTjAs> ﰴyUN[+6u4+ 6LV`'F98MQXUvw~(13/Z`o4!en@HZT.T^}Pgxl|vwHo4ށRԗw']i]Ua㢠¬g&0Fý[Dt`|8|'ŬAB%]7({nAQ))emS^:~yn܆ѩ5[`7o+#ެ_ elE+x:q%?c?4g[7^PKg=1x #nuvola/48x48/filesystems/server.pngUT ДZAGPQux %V{+і4KB eu#쫣m̒ȇŋ:9Dp/]}+ FGpVj9h3ZCpbi7cxLmį_}|}8;Լ~İP+m)~&rq=*g-YYHU\\+qX{IYf=-*u~k+lڄ^wD!P.w[[ԑ战$\!!/ׂ铉<B0V1c@rlS/x'@R_Qh 0`fGt7vp PP%9>ũ].:]E :릆_l{ PM9ꈁ+4Įy۸ hGC2񲕔NXX%!.JkαM>1*,o$c\n B:C`nJt3hn[P/? b+[Z|Z!wk`:ʑQ3sRan@?gc7vVrl7ഢ OFrO@`ǝT_ 5`zHC 7\%2UwlQ H"2VkP{o~̌PD[1A@.(XX] )[Sx`pWQs{͛el+$:num`CA m.wUpV';,"Å :wIrG\X)7s6j=ב̚߀`'][@n祦T3'/"{p6*+ؙ8-/K8N@xΦx;K$x>č/~V/T'ؠQ|% i%\h~+q4`( 󭝭-Ү%)`Y`܂w4ʍ :61Hb6X籅!q1OE䐼QE l -(Z3F1 mE\3}0a-&3߾<&qS5;D*yGHČo\)*\.˓p8|r$+lw x),=Ӭh;M:=gV<- XL5pw)YG{a R*aX~N!9ՑnAa$ mhPQ.Q RypFkBݫ7yB @gքS=lQk9?m`~a;츽],M ތ5XByh <"*|kۖ32NRo9Y!S nE~xg9T]*k"OLf~<ɩE"nrEׯ_zYQ/+Yboܹ}D>CŀYӁ|}eNUe *(Ӊ(0XvffߛQAMmޮo޿9E]h {ODzPDv\-*ͱ bRNQ?ڣ`tY/Kt)Bba鉝\ I݋K{DX>e_yb8OMy>ebyIO"MIΜQ$7 D;*TX( K{IN‚͆/ߥ>EWZ-;l..~MfxŤDyf/!YNR.%pC`;a]A`SH9uɄLվM ?m=쒗zfd0 C ^b7w1:nï(T6;l7v杛+X*Ry@IFa4(\%/5ԈFsPtZF?X'%74A^T%}v𠕴γ5(dRd+Djys=sƥ@vxM-Q 4Pdf#.zwY?(&cWUzm/E+^IeO }}uqJ[*]} Tvzt#ua~rR_6NBeIt׉~; '="Wli4\IZ莚NGJ, ~w p㹻ԙ?PKg=1 5 %nuvola/48x48/filesystems/services.pngUT ƔZAGPQux %W{8gx1L4 \03:S6.髋:;#!R#I*O(4SF(2TT"HJysϳzZ?kߌ `:L'}H7O Bo j~i>iwԘxE`%p CE[Gw;SÏɤp92kTrhʅV9Ic 7#SXbJ'Ǎ$0TUy~3[mnG"ܟ~?IAAwqRUx eQ攗󖴟 yv ' T) ]l8HjjlEw|J ecquò^gz4jRg 2ԋ@b~a_h7 B hT /+1O-b$%׍1lx.%^ m `\+U@N{\̧7cZ<ͨs ]W .KnWkyʝ =Qq ȥɂLrEEp;Vy}6RgޙግtZ _hE{N z`xI₩[ K };73 825YI@V8,X!Lj8Ҡ-C*P&fYyys$ZLp#V*?^j@EJJK_: L%e@C$wR XuATK~@zƩIq7oRx"Q_hm^fJ6ewR!dj NqiIW甁SbF|';oCR5LHysAQv ǕC\w\0ʸQF8,i޷B!zo? ˄ uXRm7^|BT, t~;M]Nr !2qjbӘVda\r0}@~DMޭW:xLR?[T/t#rxq~duJ+סN >˟+;XHFN, |,.^զgp}j~jی̦%*Ю>7o+is Lk0}mCZ<4w7))ٓr!C&ɎAbB~On-Cd(rXa =lc?&+l<$0R!FN:#{Fۙ)ݞے_5@ɓ`.BE[]~YQn @n>߼$|*6M%*3dl-l~Ifhj $~,dUC n.)wz#zwz%V^ȧsMr)ᾆ#97gЄqϤUǏ>;!']P6`Vߝұ[7axD8'ޥ&- 佌r'2q-|_I T:94CRruL:4dt r×q +ѱ@^W`uHGWu޳VўyΌB;dwт`پ;6ٷ|X=;iEՆ ߯9 d^:8>9k 9}:)UeXe@F#377ԵD4^\^]6yYVܳqo%s7-eHP>@%&pʕu&$kQ/y졜Kx׷ ru&bk^*-BfJGcg1R={[e-< .L/qk ,x>ev&QDKKLkAqlY#0? Z~W'kڶ ߼gm_9{H[? kK(*^xnj#̥@a0Z'r0+"{;^5˹@cNSA!?hϓCE(N[BlVNg~ڃfcċ]r76T%ư6(U˲+4͛͐oQӄ1)@ >?2ÖZkwkNSfXOohV QHBNQ鼩,NŨeƑWpUt!z|Vgq,^ 9=ܔ\9]!nۖpAux]]t8 Fmx棽+x5@œ5ģxT}W_^PKfe=1N#nuvola/48x48/filesystems/socket.pngUT ZAGPQux XiXSGYalE!! "RYBPEA *(Pj* V$ "P ]Iog99s`mMSMmݹ"Iuupe܇^\X-_e_F®XvBR(ˊ" D LoUlNR"UJTS hX=-Ò.[R./CartܯyP(5z}bn ,':?,|t-ަ0ۢZӪ_1ԉ~qOdB,XF+%& cy7KHY ^ %YG֦"o? )VX|F)uZķh~̾z'r 6 <Az-+0>1x=9W~ZhW8H.ϕ%v] VK{m|l|1P" fA[{^c?Й'7po:%˚@i2bY_,r~. (DJhjWq봌qƝ^du ΌtrY!.-ʺ²L<'* c)n ,RW,?|{8nk4 TVvoB} Xk^J9yA'j,cmBbZ mD|\+Ow? ޺5y-=v)Sﵱv *XDzw *ޯj%Mtw*6 -R&3<Emx|8\ yڌ-ڿ=50'@u?sޒkMk˿U6Ill@v_h44Efbs :Ѝ c. mF`/2_u;}\h D^~XwInٛCO9ֱu1 u}B v ia?.<ǿr_ ٵo=qhYԱ?9 HȻ׻'Pՠn-/мM2W djKN5ߞ S\uK-!0.੼,T,9 .Ueb|=z@(z1ָAOؑvxh{.j福~!`k ħ: xPCDκ-IAf.y Tr]p{\8hE6 bJbڼ%DW3< \굜ԁXཚ{+2|0RU+:Cb{OI^ {-Xw19k1_>u*+L0OwSTiV¶ǫS"[Qk\YȂJ YfU+}CZߗ]k$@HCІ"^=#DƺίSmȁJGjAtԁ-s_5Ć9ե6- *,F<F5ǜ˫rqY}1g,@cqj5|ʔ tOg dItۺLCu_s GJTH̼sto]*;aOH*x~Yq_8JfIY[Jni[#:^>uTa,漝򭘻;>OavuS83䯋]ퟕ0)zcng.bW~1'!.a=i~ɜ Mo3RRE6퇚㳇@DR`Om;+h[ƕk84:4`W2Cf3)rwV\f*SuݓhoF2X#Pu|,\#~'{F#of~`Ms/n}4wHo淎ې˥Em),=ߨus_yW>sw'QdI~Ŵ LA2`J'o.|q_)sz.ٶbv^^CW\V }} PH?JS;}Ef˨kLMN׃zԟ6ȃV ;1Qtk=EX/llhLЪ1+ =[/'y$u0v].仦="tI2.%% fcH'x=w35 ^GJϒ8H{Vp{@ӕTc7Q®X1TMP]^\4%__bƯYW3IjKh ]v`(jERrYd.^f}^ƃà֎pNӶ8ndc4][DTUVO&ŀ;gEk)aCa/J46T|J03R ` ; s텹9;˦Jjj r=h^\"߶Njì^D]?o4#[kpjJ{,>'湃\q%!0*R!M=V{CaECϺ˄c µeFҟE7Qh*G_w]/KC7 ~<ۊK:Ji<<#H/q~XuzM1tN%xo/V;7q1Oߛ_xR26=W+ Vwqof;Ziw\K;*-x~48 b26 j_RTdxĉJ~Dt+qFUiLR>c4WIWm͡+:|t\Ş^(,YÉD^eӭwC?=7r _B /6e<چjyـ!ANi@u+cffym%p:~7wdL"O#sZzށԦ]/3W ud,G.PYS Eԕ761uD$nɹ_톖6kCdsRWl{ɍ`:&#D}{{¼~% WWxxdL  j+2 6Zh) =ϸvE P/A(3k&{:$ZrӐWQis'3UWۃZo\0%ty֫h|88߇%`T[mg[Y", B|2%@T&Na ttU+5 ,ugCTWrh%hRZ6fx;IX\J jT_-4j!*7%UE ?h]?[uED=ѱCnVy|~*.'J}SsS?gK:5Di-{ݭ I->%pU1$|ļb"!43jro p$ sD}fxJY 'K}F4}6Ua/u?.UXh_gL3:K>1M (&L|Kߝ&ek}.G1;G Y8yC̼$DgyHT!53aB"3zg {ɫ ScA z:~D(V=fspx8L7zV;D\PO>UǹEuq/\l"]URd/ChXz5lqINiWS!Fʐд0WoSdyM_ M MYC!fbfsUUsrD 980^ 0 Z7nqVV2xf򬣌Stۻdzhx)]Qh;Xh!4 E$Dp˽d:&iLjhj{ S~oʼM6ߪ f6\-Jhǵi6?JBP# Չu;.&)wFNKR$0P"[*Hn1 mPRhno>uD5mQ_\!7a[s~\Jb|UQw*fýʘX3D*YX(rcV AQU#o=U7YmVv;A!z[GLfMߞc<ЏDNGdMl<;EM9XHJ`<=mq4 ]E>[m fV-Ghx^=Xi[maPK=12 +nuvola/48x48/filesystems/trashcan_empty.pngUT ZAGPQux yXYl?K AjffK. hmJkTZ["N$)66SMN&-SN9)ijeK>99BFkEXo\co4;A'ӷz[ Ӛpl=t,@OJO7d'sb8줜Ï8!&gwdN0UDs3Asg1"""+yfvOtkFEQ,}})G(zk&A|8;cX쯦gs/h  ք_LQؾIZLq<*O%L3p} ľ!t¡L0*`!ua鍏u[Ixo~Uӏp^PifZ Cp]I3{4~rP{.Pn7Ukh|W7o 2 ~C8H|8%\mx]א=;zTW[Ɯc[gA5'kS.GoW/, ]s+cZ?:Muڗ[VqNz19߉?0wR9)5hn' "g#H<ߌ#? W,GO;kS{hVdѪTiT˦ 7c3Ɲ `U|ɗwm`#h*#o^qH`vl< \: L\c!m擐 so rh O텟d| hg??L -Y>I+~oC+OAx,Gq7_l{0Ӭj؇R( kKhK\A5JPi7~ڜ 䗝q.4@{Y!C"s74"x 7XwC?R#BmK[HJ;6'?Q=,E%եEU~E0P&_JnB8/)Nju I)X7{T܆#lz0⶿dio%{Ͼ31Z(Q e"K+X̔{`yg ,=@R߆U vH vXfQUdVQZL".B"Y:դ\+IW}-i sK{k?- .U؟Ӗ51eIS.Ѱ\MjSNL[}oB>$lG^U!dϠWkn=y;*z֥F!3uy)!"Qt  NelF<ÔHk> \$Rq3M0s ƍkgOR.T+Vl.SB Xqd>KVNPf$謢5(=+P E+D)rЇ6N5Qz+-gv~ک ,5Z@x/)%Qv0a_!#R¿(:#X9lƲq8n$tk];UĽdaZ[iܠDߖf- <8b{6-X' 3|< ݀`-zXJٛ$&LB"C,JӜVj:UI~53oF䓤~O ʬ|lݷZxx|Eڣ村8).F4bV5*ueoj$=(W-8keN3/(4K,Zv9iuWɠ~ΧM$(ͮG~}Vhs%9UF"?H%6 L`e;Xc=.}gTUS~o5% Xj7nF]m9.(cv_lIK-xQAq:'ڳ4#4uW7NRIU di/xeŏq`?ڤ1!N^7dAE,^&H$> 8X읖"ބz yC*!ѲV^o&S BK]T??JҫٰN(83y"Zt5yQs朳D6{@asrΦ977Y{=CB Obe&Ղ>?uU+ "PwFoDo hO5m|^nZmzݙ,"\/ݫ {H鋜ᠵ)煅[NpsVfpLT^TEw+ [G뇍_Gaӽ ssplrh>RN VߏpYKJf>x~Ք׷]4)]a#Dŏ_H!0zpծaNz}GWҀO*D , f; o_~F!|x:`|4}Ѐ?PK=1 KD*nuvola/48x48/filesystems/trashcan_full.pngUT ZAGPQux { {cۓcRX@@\R,r8&<6!vd"CZ eZXHpppӒK~ x &10 f[ z=MRe1Yϕ*c;E&kήe_etі4h kHAy2AnE*N#7 E4SZWWR)fx}>ٽ;{/ 0fR[Ws܂"~{^O]ԄAJ6^c~LZw^AAT.nAJ:@؍q :rćxWrԥKwU џv0IΤ wm5'hS3wy^%FU}ܒIUE^2rD^<W"Nk-yپ)C ibc63c!"׹ k2Բ"_gZo]a`92K:N EC7ѽ%]C8#~ӚGj:.Ƽ(~‹iH|sd ?HkDW*ohH/WК?" u޴B:N{ыU/i?ƚ#6BIn)cC(TIQܻS*9m޾]T'e\%)Eh|+Yq}Z|KaiـȒbvЁw (/97c(p^ SeI@k=8y8-MtBSΓn)U}ǘ텹/>"H3 z9_A B淃/HKsɾm" $x.]"<)V=aP2x^0%=}eQo6dݲm4CAA;jOdl$>~YN^ AgkA?7@nA$d!1"՜Q1Z/1EJCP'ed(yd2U7=,c#1qزT(JiW AjDQEwErC7}i|w'{ߧENﴡ"s0_a.-0=|eJBt<(NthH:^7Y۷:=k;^CD7vnh-׽ +2+̓H WnYEA&^MniػfJ*G~W%5Sa,Эm;}QhZ W涿B*D_},N,?re==Լ cWEFBnT^Q1`7>ƖO=?;h<~E–rtwjakŒM>uX x=?sD7Eˆ,~!I 7u^ЄD-Ʀ<@pnȳj)1zY`qɈ̉[7Hes൧QtZ6& ]pn![%v%{_ɀF?wR.@ @KVDI #7H羻S9*d,&~ Y)tqSA,}$k3mB 5Yl&2;%sgA*|d@[v;hsF!Hx_3t1{mN /Ĉ7*[੡] gEJ5 |4xwVۭVւ!tL}V2ͣa~§ZyڐF~(' ܝ<oY]J?}%n48f2^(㲔o3ѐK #q(o@e)chs]Z ;Buj[[>yF\wOrOh!0][}jB4C$z?j*xn3L}2^СbTgbڦ|/G_PHНIDK(rIQMLJY[E=d56S !W}kk!4G*7Nͦ2U?`ycz8HM3-$g5[;Kfo,4K Os{'z76sYSu΍wJ- /Rsz$F)9_Ն"/41u)+?\KJғPˏS6‘av Wjj[×7b#;H=gwT gO6z3>*mdLkEPh7s#, . C8{F}LQכ f^4qb%'3.w̛=B i=2hT_H+1Y w(&bT@Y:앉) *gΤ~!Ě"ШWG~ U-kOsd\oVqw%t -c6=gz3rqS{#w%6m\ YЄg-M}B 7腘ʘ, SP<Q\t>Mrn$5MW0Fd m#g=O,]~"҂s\o7G0AdӱqG=ѥ [*|Am4x+ɃJ(#g|rrstHn Im Ю7lsRp KץTxC[N(=owf_{xV%.ހ=vY07. Usk6 =k| ȟBfEtwgVXTнXQ %sƵ-{-?H0 n]l9"):H!SJ&yWQԸ-ZCtua i9xqNg )sjC^UmUUt7KwNuEF{˞6 6mr9Ǹr EPn=KJU$:/{qdNC'Zԇ)OoV9J'7EarKRlưoH~B;'m/>]AdFN3T{ԪWpvVrs8/V3==dg<IYuZ'0)_ӊ%0vEdb"В㬟>:rAmE6 *6)%FNԣLSM~3uRJ5&Y ԉ]H5颰ctNO[t.xcbP $ A wUz ` zo庳ay':kzJA3ʺ$v-cW܋٘DjzsY=S3H:D b9O:sG}?-Gi{I%/ھ#Sѽ'\Wx JyX3#0fz:3M%49[7>0 TlQ.|(v9&(*Dy =w5#wP~ 0IHE] O)IX܉&mv : m θG"GN )IZއ1)ܛ%W96\K5kG& R"Y#]fFgw։UR\^!q:3֛`[|s>!^Ndf>K[*q&㛃ԶMʛ~Y}kZgf{! E֠6l|OQ%-= [SCIRxY"Jjf]2GslKu =>FAdu6ƌi2;'Nтe@̄Eĩbe!%K6i_NMFWd$ ٠:IZ>OMu=Qν$(!aiF5DM83BBҕiGՒHIDbu;F)87'^x~W#UBN=̪U+ Aݰߩ |/K(cDA,I9e|>4Bä())H:%3Ƒ2MhREZX73**mFHݒZG9}(S']K&#vc!iL$])+Ƴ%'Xڣ4(~-*nY٘A!̢AM/) ~0>9;u?;=bK}l~oFS/^:}m/ ]|Ӵzl< Q*֜#-ti!t3#ب! 'L~):iƤ3 Wa $x/BDBRynR :#J PH 2{M 弩" 16T1ARNo RO>o*%jpjc}' oT/v_gYl D6%}7Y@ITvqlQkm8@5$&n%S@Ę)Ck9pp;cZK˥ݚ=qF>jj# a+іףMC!ݡ^5asԊ0d{^."iRs&t@h*byOp`ܠ'.P4nK '%z6FڧLf]r ߆ a` ^)SǞK ѥ\6q4Ђ#"gD3$ok W/6Kz+A']1G-? ^ ! RDzqhV(v;pkP+FhqMAxpϨy%B80k(|Swd@"*Z߷_`y~㔂䡥gJ~8\c.);%A3!ms5070̖6J݅e0=a>p5t^9⯯#~7{zmX,*SUv&WlZJQg?eY ׷r#̘T7KKk`ل%aSzvw3 Z>t cWTkEM}]1 @j(uX`׏{b4u `0f5wO9L~̠dVvM"<.f>ieOjsȣ?p'su;H RHLcVx~UZ6s.vB2{_ Er$GJŶcoo Tޡ܄>g(%6 A?z'Cx5͎)VQ8)`r`}$_ q:+nlƦ3R3 ELT¥1$P697 pƲY$1U@-ˮQe&F#3`-怕"}g^߹m:wNw42~?Njm齔a?aS? hҬtP)CޖDOUaw*<:bWʙ<}͠R'DI\sw/SDŽ2̇vb< E\SA#cAc:Y;z>E`?;{T9FW`Vo3.Y+t:Vݩ=AUU=,A&O,?jw *Fvʳ=L ATջ/xk0muaYAP3 pJ, k:〲ohhUKPqVY R-~m(qlFI|%Q'VKNJii +=Ojb>J1#k1|ᆣ`I0lgXV-Ulzqx`bȤ 7^"74~dq&b r>#<.QgPCiZY1QİkSVƾĞ}is C&Đ+/xB,$A8i#Qvithtԭ؂Zim=54`]An)I2G (rK[PJ&~+Gp~~wWaA;%3(CK$wg&Ao-Ք,U5ϨÓܡ5wֱgp1~,8U]d_|-3Z< u%}*)1ve^e&Dkimil+ 4?=y42.۱*؟7IW{r7d`d3]Mӓy=ql3-4MwC1«@?9ǍIOgͳ?!?Ut@09Uo~qT(/fjMKVv~2EuoJ*k&s*~׈ ~9hW^Vb;ۋYƽcZ{ޫ65y$[agVM hs}UjOEH!Y@iBbߏ/hV7-zCgj.WuD )n:s|I# ZInLʎ%ŝEȧ_!fa&#TcyWk^hK ha%g`N$JUuǺA9[9 Aۊy8`($ss1P9H:"FI4Q w:ꅹ noڿ繊kT%˗-Ԁ{q!IzbuI2Ui:\Ȁ%, iOpșf=O 4q uwGf01H]ށ3Nke _p%yH!H)c8/14BGaĐðFB |eD"֦È%`N65^2szE$V͂iL+${6D :\ a?'9Z'I~ __خ:M=mk}_}@wu2:k)4e|MG/ozwZy)j|^i}@iXi삦g#q MjqeӞm{.vw7$(orz+u+Z{6"W<*>{՞Dw 5YG")0Y@qbXP6w<PKy.g- nuvola/48x48/filesystems/zip.pngUT >GPQux  sb``p  $Ù~)tG_G'Y^%%i%E )I A)'Sm{8TJJP:0!]AaFGI͟xj>380lx\aƺ_MCA-I " Kj͛=|x|fn`oI#-O ubkHDݤ?3+&)60$zU&v{⏗joAN @3Ǧ4=Pf#?ɵ|8"/q4XSv$N8p`\$}?x}#" r~it1E@Yjd̝Ŏ/&|EYwF':bqCdrByI \97`Z1+aҧ g?o0R-'`XpE#Jcf=m].|᝟vnݘ͍k }ۑ%%G܂ R=r dV=ߗr(w2\XrJ226Zr_*.xP?7Zj_o 1 l%նmc0+ze#qo sj>*084q6jvca``yoz#CaWM&'|{ `zgtsYPK oL>nuvola/48x48/mimetypes/UT VMFSux PKÍC1_; @ &nuvola/48x48/mimetypes/abiword_abi.pngUT `ACPQux V{͈dTV81l+d7 /hNT^v|;ԕDɈȨX5ep65yivDx)5ynoOL!mll|nfeˈ}qyF$H[UUU:',K )KG>^kqP>Ѝ{86pv!*MdatoߖoF}d\Toe))nك3zODwK:)h\A95`xm9W>ܹs*5ퟹU)Ť;CVvvziLB?PnSz͔'3\V9 xº:0Ggrgb eyc--~X*HW~O>~ݭ4=%>$H7o^cV(Dr64Ʉ' hL\Ƚ184_^^ښRŬ5;fcf B+ECQSSBEEE/tba̷72+_?;$C*--DFWVbȏQ6|֭[}U]c|2H ّL; ȍdR8 @7P})-##]OZ?4$fmߔhꑺp7xRNg@DLTh٦fp#$A(}vւb0y]8W8f,/fxz/;iQK\ZnZ~j&)wWNO"fП?"\z{yNv} $bD$b܏{C`a{603`id<u44}X,UD646:¢G#EdR*38wUW3 Dewq9Tk9wz{uu)thjh jpD6e8ϴ~g_i?L0'im&qgp% ׆؁ߔ{'51s# δ np/|$~~芚tvF?8] I1O\ ɡTqa} y"%L?b-Ls ̪K}g y9ͼ+fzZdln^ 4ݸ.\%<uRi^[Bzf~G#!/1bws*Լ2ȼ{T赇KZ/{ZHDQ̚4޿0;~ 븗l!x8BO?L4: :]srGuegظ4xc ħR'NuFH`A S}7 i A5Kd?S6ya!3MSQυWk Q4U.`ygAS|H߇&Ay6wDF'\pG|Ĩ* ?I\MwqO) R]E MHqr0TY0?H/r=0S/D[u%Fy)EUh8W/ C'duK`\9=nxt%hx\38ATD2 m->˕N3Hf2{C!fS=]2Tosa/ BACICe0㪷4mI:5+/o8X'V\ɼt(rc:8?|Ud{ͧ.KmQ\sӻItz #K ]-+BbJ1v"2acdTTA zJq >~| YםW30& l c] YA2:vu+isz.dMc& ̎u\CIȲ;P2z4,tz58vBh*0LK),kasgkeͺ, `+I5]I3+U S(]U;b逶=֖^y\p~~.n|!zJ cëc$@R$Qҍ/KN ;g:O׬@f@e8 V@! >,f <=M9-`FK-Mb>&|Ru/h.DJ+7("kqm^E4c mϏtb -\kyH^'T?>.=0,pD7u[kOxM*f՞Ic9)%-g`0y eR0{)|Aab˅eLCf(yI]YY9UqbWۭV:WzX5a"|)kߑ]ɰ(xW3&/0q]!@H~zrI6U}M]i3O4 %𷷵!sss˸ {:Jݱ}fu̬pz8΂rUO:IfWR#4kf5U}U;?!د21)w!FzI>I (A `p810`TlL@L7pg;dM7#(w˛YDp͈rIIIowSS],c\ #s]"9ۆը;}CCC%%KJVvޜR! cVߕ>\02!`-@;LEmlt;m29je:[еt1oH䧔&as[ͯeE!|KIxBҦnor?]W?!`=ê^*c͜8Q+,#a^v>O8+ &[haP5 |D"?~3o:,/j\O>JnxO$ VL18TpFehkLh#9SzO]!)'1eʣP!)F11a^7ж:4 aaSӬ1ng0 qHntU0mH2qgI4 <܌J^3ֿm~Fsrr {|AxkݕgiU-]m]yFgmmf^G ƫPiRinvjM}޶l9oK^bJbg0mS9 9"}R/ELV/Sd %kf KأhY4ٍ0/ E^;EMtqqdÃ_M2Yh-94]KU˙922@.:=!A=_-dQ\pVe(WBPB͎KĂ?''OI$gV:zh,Xx{%'`TTJ8wx:t`+0Uf:QH8vtcjjZ/t(Ib?M}v UG[XCCK2]'6/esŅcC^sb bu,+Z9H]>ܰh"̮R`\Bc)s$8:^ >R T>#b\/ʬ6 T< #C H)( (Ma땖jQ"HĽ>Dtnunok]B؋Ev#Epn,F Xw?l6p%%iB2t_@Qm? ׬cm%g_:ᖽǝW),rqxIT^2mBݻPK C1%O nuvola/48x48/mimetypes/ascii.pngUT `AFPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?P8=@`dddptttP222}ˇ޾}{7o^ @,,6p)((0$  >)U@G OJG' @F;R# 1TW})".f^[. sNclwZZ+V)eSUϸ󙎷#0b]ȞCYt\uj`l666pba`1= ++T H=@ax a4({ ` 1 2HIIŐxA 1i%Wh.]c  f@!K ɓ$ad \bB@2j8 `][@d-BFK$py{` Hr<,۷ "~d@J!1@dl>(Г3$@,;%ɁT31112+@VVV`H |:.P3ͣ''PhbP nѠ@7[ jdXr<p8#*1Pe*N@1h汉?{͛ ϟ?'X @$BH$nz>PCTSbD<@ISRm!bFA4k'`s@pYJ4_*BA"D5da2Bn |I<@~;`L[ &bBʉT} GbH0 zdԤaσ3 &z gv%ElիWaj Pڠ%!P0j1@qz*(F"{T߽{ O B,`4"'&&İ_ z x&DXX 6b!@dn&(A&5Q(-!#0 3,"\za޽`}L[ &bQZ%bƟI XaqkJ*0Pe՘DD(:٠ºQb5*A 3|@##s$ FA511=2ۘ@/6 ǂ< ЃOrki/TUU r[@$r0?@axׯk-[HGD6jձPPPAS oc@NZZ:حmӧO>y(o@w?60)I 6b- V*j7(Y t7 =I {l-h 7IENDB`PK t91m nuvola/48x48/mimetypes/bc.pngUT gUADPQux PNG  IHDR00WsBIT|dtEXtSoftwarewww.inkscape.org< (IDAT8՚{pSם?WzX%,[eX1 kc`! ! MNMCMw;Ӓd汓iS :& Mꘇ'6RaZcY1,;?t9sM[6݃['ҧiڻ:X3UU3O뷎UӴ1GYYYU.j$i5UU!IV[[=ZYY7yE@U+++V\9/YMӔqs@:S\\^챼(t:t:4MsB yUUq{yOG'gbFlIkąqΝˌ^#k"[g|zw4&q5e"JFKJ[]!E!#/ T3ǎaxx9}tCQpvGL`KOG@xd$J& qu<4k62\BD8{(z56w:AdlU9L) %;C\D䫳gC"Q#$JKD"b2ga P8 ӊ@TeN67@|q$YrHKA~Ib`P?U^~[pUbws3ȍK ĚiԴ(.&w{RwP|D톈$ X:Fğro'd4oqY&ߞpN&_ 5~qߣ4HS_t'%<ب퐚`1oy,^xr2^\.(KN^Uy1Eݨy\b}3F%wD.vr))y{KHd &uA6m@6' ׮eҥx^N'(aAIaCʨQŌ^ryS{Tם97oW?h)(5|G9 r(] )Ϟ͎fU1wU eg@Ԇ: f Q2bÅ9Ad3T? p-Izz:VݚaYZLZZOiċ)qOI_>F 3[cFei;yq qѢbO~;k {hZO6{:iɈdBe;9L<ш|ٽ ʕw_ ؓś2z-\[tfu,vkTTJ{\ 3yxx)C`_CCClQA_?/ۏrI(!WAg9u^I哖> /\9zb݊'y>~>zo qsa2r-CFtK:6%9)_>Z#;?k0M(x:)- ltqMv5Uh*>2"+"˄0fьh#"e٘Tx!BץZ?^4r|݊5;!0nV˼%:}|׷TU 7ܱV `q h¤7c7Q5%-F? CCo,zw+`u7jpY|>ߘatk ?{Dh$I$D0a 57CbݬxWS)*1\L~|?f?EVn 1zMQf,+V!6z *-;Y%Eɛ9iBI( Q<.lx==Tol8t yEƌ72;.}ۛPO)̛YLRSSGw#FgBiN'?x~-_<;;޶oK>b$|Z4: ]g rCZZvynW/sYmҊ5Ln 7å+f"ʟCχp>qwWYh*>?'^>qM;x$>1+撙WO'p]xA[P܂TUe``M0iC^xA3w?*菱{!TUdY,(8;]WW7qv;uuuhv[Ǧ͛yRSSmܸQ峢(6nܨh:g@r,0Ѹa 9q 4KӴZ`ibP )@x:N-xR+£̚V/tIENDB`PKC1>  !nuvola/48x48/mimetypes/binary.pngUT `AEPQux {<ǿ~wn k}1\f%N1Z q (jQ'rTMW8Es<>|>z>q7{l*us8+V .PY RpwLK'ŭ>Vg1b1rdEImRkI(lQ xnxR>Cx1Qwjtd 4z U -]8mZlU ڙjCp2(Cn?ɯβVb3]He̻M:ҁk5ɕxYBE %4V^[Rdp~ }Z1}|)$b: mÌ@,cbf_oh ?ܫXE?ޗ:.z]5 0%*?}f$yŲtN9b{V !ҁP`,ӯ@iSZӓ%o'JWޛ?Oh70}-4nC!G|۰?SWnϥh-3w3~.^]]^eه*W ,r{J]udVߕQI^ֆ101=Z._QU K8v߳ಠHi h0jB#GJwkz#XM QTT=%iAuunάǏɴyPnlƃjvuW5:ͦiܹV-=WJbUZVGfGs =˱rm^O*)/S6-1(ER(bL`\Q6EdjG?df܅0Z@ajB']D!gȟ7,orw_StCŸ>=V9p‡ {a{OqSq*GandC,z{SX&5{xwpbetmIكbdΔ/SShٛȬv`6i( YhH(iajTd`/ǰ3(f̜2I6kA'ŽUyyN _՝ p#Ŧ E~agڜ?qK6Iڱe\XPh*CvNb}REwڟO@XB r/kP#VI \ѱ: 0x%8"fI.5:=8ko3s7J܁4#jb3b'(@|j0!P;&|n]30g֊@^Lqj_) Ȼɓopg٬/{ׁ6uBBE>y_f,3;RU[PC`@]50QЫj>6s.9PKC1 :Q$nuvola/48x48/mimetypes/cdbo_list.pngUT `AFPQux -Wy8]ٍ̠4wfT/ mdY*e{)4zZ(c'(# 4-y|s]:9Yoy#O={y?f1GVpv6iNr HW\x҉014<',84xo.{S߰~9tP$b@hgZXXXOJHLC#6)j=(w}{r*Y@Hb@Tkk#Cc=~~򼙧ʞ nܸ1}^P4`WFU_{[=r*d!OV"Y9X?QxITYU~hrR^>|>RүG0tkQl  z[߶,P g:vyuɀbrr2J%xj*w)ր@'BO9]8@{y^= eb^DKyUU2I BqIYgҧxe36^'~[TC%cNH#8q\av oR(Ufs|Qnb:,ꂼ;2GZ(12/ * nلĹgHefnh o|j-ƓH+˚Pj1h.-Ei\O(`qrxxØqWA4 R.k(o@q[vߣ(YJD}cO] ^܀DY]QvtϯqgO܋@~WWн]Ei}E"w˕mW }h)&E̛1ׯU0B:B~QwaS3&5"%kW) rtDk+!nD`?ׅﰛC=:U&?"gF ̱FRpz)7T[$&7O ^Jy;X`Z?@,*ވ{EjzI@ !GGn 0w<4̣ґpisn_Xtq[Iłs:m4&5vc@iME7t#K'rڞ Vζ ؎f4*)Ɍ?Tz*}4 v= يhȵ/o;`6d W]~9&߀^7r)f/H/|nm'#ߡU}~~ UCqMQcհm&qr r{Uՠľh)zrG&g2: +%"̲2&܋50Q1:[+Pq(CW8W{yv3 Hpo0у&BLo3%wVaYŋAvUKV>e F 3L-*rW;w*% OB#RS(--Rh⊻Yv@-V(1E.'0aZ¯ hAKCжؖ"\JuƢPصz{ ޳Wv 4߫}o1GIA0JCg˚ņ;i?렆PG9\E~+̑Ckؙޫ58P LpjSy \N#=Sޑx&R鏠IPI éTf+7O `ɱ Ү8cu`n;v衙@GtI ߺ2UkZ#+U>^`frJf-i9͎hց=%ֱg1X4U eBݔ&((~uw%?8BG`\.6 Fr{}uh9Zk؎!v" & 3`7 T覉Ms5yhSDp߬Z Tv6tDD/SܚGoǼoBVpRefwRr.PZc[i5z{bdTmP` P%14&IƽKs`V > \s̝ʢDa!8-BH92d/>$0UWY`eN.p "9i: St_Ȓp?k6T8s9P&z 85$ڱ iA3wwџ4_Wڃ)fk^СX,2RxOjYju ^d+#?bwGGWudW,aJV̎^B}I~ īQC T,A1nkm}Þò&eaZGPctB~:dNa>g%CZ uѳK7$ȍNH][EHy^;޾|>r8[H)HdӴ[wm2k_Uy A>Dy^, S0mAATʹYfdx 6>l)̩gB̘g*H 4 Wp aQهpo|.6Z ɺeճQ7kS^TC6yI5b߮'*4~"0zx6L2#U8r{XټFX7>=5*7;& .koSF7[ toB  XŃ3`[xګxrrqn~HQZ5 KkY1ߓoIm/(+ /GM4 ]< ੫'g ]kM V) n-HŅf')'ze,r* Ob2w8QBP%}^;Tl,]-.4ًfd3)xae"3˜L:ie ^<_NW--TmK3hmw:;/jwaWh Vm~oƞ>x`ƌv >[3¤HO#a=-T.<'4km|шg$gtҍǑ֋mH3~Ai[K[3=N=)!Yh${+BpSƇE3ctiaW7F{oi31T/ÿŅ H:\|w \XNRG{k/jLg"p7܋xJ.tYF@Vȝ2Pmvgd=De(@'SqoךCKk9N{!P$ \nN|"D``yeKa|fz~25`=<<:CÁA?_~-~ح;Ë zT\S̅g7kɖ!RӮ'o(_ݱg\$SRSj9_2Z|v}47J[ VejFl/GR*"x,ͮ >a,1O-| M=Vaʼn"v'A5LNP;G5kL3gA%%&G,J6!rOTgvKɽ/*&7T`^ R3FBD\CtY'Nꛎ9L]b)g\ sOZo/?=:Az{6_=xh%OhmP|Bfڞ}?U.15r]R?n(k?ԗ ~%mbO{GEc}Gi(`\w#ft%/]ԟۗӯ!?=[z Hi!k鯃sj{H<{Nu aٜ &PN"{O_jnZs1 u^ԃ)H̸zk|\/ى:4,!MrV&8-L)2w^RW̤ZtcǑzqjA[ԣe=r m3EX*wtMm_> 2 Il ^R\cOyP\IN!zGN( B<֯;4>;;_r1$kz{hXPeq͜ݥ%aOu( v (Y,+Ԃ0İƄ5X=u4 S/}\ó1]V~÷>`Ed@x=ڑaDsv ZLj(”KuqB/<}kVs@Y_U2oo!9s~A8™,s!pV[*we"o%+kE<ڰrXb%~v(w 5#/Za[cWM y h;Qfz«rh1_98&ߦ{N}"Q\WXNwCzPyXcr0a}8થW)E}wMMxav| ïx p/~3:-v%L[!jQ;4ivWAШJ;ˎq5xwGl#7F ϯw/>= |}.GD~Ӎh%E-$.33V)zg}%.c܄6¬r0t"9U.9tʉ;MEbj2LᛥTb+׽t#b ݺbx}HB-۲tj~B/G͡U-TWg%_y 7C OStzyu~j%(`ܡ."JFjqɟ>?av=Ѽʆmmm@TWEd@ dǦ^w.#צŁy.h@X l'-=}tp$7nLKOW.D2EG"Lk* ƍ8Zp,k|i,`x?acۋ 33 CG;%wyFjn[wW>: [w]10P~3PM/l֝[{#PKC1x nuvola/48x48/mimetypes/cdr.pngUT `ACPQux {<ǿne:*KMJhSQT mVCȵ:wKYtQ)cn˥NQ)R<|2} 0dz{t#gÂ>#M7#;PwzL7'm >ȌbGX<67 Ӄjir@4;=wxK *##Zs BI^֑[aQ 1{tQ3  cڒ EV˯vvvB?]JC>E~ax 'zxشmGs\*y`s3c㋏DVit^AI^m6Bw˗GWfTpN /ùg* _L$PtQK@lzc{hhdrWh.@ ȑASVkW\g2Y@b1mUWWo7" HƤ],C9h \@c5AsRF$ XHk$MN2&ׁ2}Up=`.sI)/QuLAZ%7ke{$'<"NH gB|B\9ԋ"j'w)jVta')ư T!4?H-_*b#im nUPŋkCX{-L]PMO&稂C7A>PɮUȈD.ȍT*wfd"ZLokUC[yXu\f eC~ W5Eo4cVKI^hclNar _,Q :vVp~h6f>SC;"fs%.331cW2@|Ƶ)jn›WGq3f xlm$[b|{`%גt~ M50@:eI?Q"҄fIb4;Q\Tz.&*=|ny+J 8Vd2. TO' ЋUǸu9l4r${?BQk>;}Gvru `n=:YLax1.[J V=͢ fW LE%ܾrg#z\/45 Uu@11Hͭ3JRAj܄y|2rom6e.}Goaz!F{\WHEN& Qnɕ;GdEU"||X?Ti@ѭ8[l934W!P 54?7;}ʀDx0_:HOxrn\;tbrw:Gjx:Y >_!]wB*ebʼ`:4~?hlhiqкHh9 z|i~Ɛ bE bOp߈h.ts"NyƧ h\VK37glޞZ+&B$N*,jWE!SEO>99+/]Iˋ |>r;lC`([ğH@'@N3 !Qe-Wr6D*3,l~Z ቼ_3Ք4v!@' &FXH ٹR4;ILFmxJ7Ax q# zx3"Ut5y.UJ77cD ˖ %YW̶_ rYÓ1≢L)z d͏"HB~)62!YwHBMѻ#1KL\rT Ր"ZMF?B K `KS;;Iˊ˓`NCF hX2i\i T:jt6f64JNɜWk֗h04Nqt0 ܲG $\8*_ %s#ݝyOp hz-UDW4OظruqU7 Ʋ[9~Wk!Q4jo%~a/?4;%O.BͿBW ( qWC>Rk1J pB.n` l@匹D_ q"-KtE{z\#<^k٤%"h/S84:$:y"mˢ#؆qO{$wPwS XcB6GOy&6㉌ۻ$+liGhX*wnĪ )P{ֶ[Ys62ܬ▿ӊ#a%nEi) e\VLhsyҴ h]p\HHH5v3~_ ٹ|hAt#ܔÒU(l{\(sK dܚ3∦e웽y%7@{!|咃&u#CKU 'oچC1aA(􂽄+*./E4P0ĤL5V^0*f]-Z8b\ ɒLC.kQOdJrwen{MP-H/ tA8һ=0gÔ7m4ܸYԛ7JV|j5*ȒxP*!OrTƧM*ߙaH&8˞Sۍ6yQ {>< %|޾ K%/KkGPr  \Ve[*@\ig {=m}P؄TVhd-3sznN֢۫ ODI4L@] KWd+gAFK;jh"B%dRI^oqBJ @E-G[j&ZN]L?!mI" Iƿ8Q-ٚqy^HF}gi+L_Gkk$D~ZCӅ/+gׇK}7-,<<P6qO{Q`G^RP-kCY#EO{ܞPl=^g:UE%y%DwLZ(o=J"&KOD1K aC:]QC1_2hYTf:ULOKU>? ]h f+ڄyq$GNcߓ9x" {Փ;3L;E>Wtި%P{ꕁ&t^* -*DriPc u^a0فOi, T P(L/kcB½#MEyxM]_B3[jJb5c 1(n7QVi@e~PKC1KySP a #nuvola/48x48/mimetypes/colorscm.pngUT v`ACPQux {TR<+|e>*^s{hRISijifiꝺ34h LRcf4M{^k^ҘMDk'kö[" @9-\w+nZ|cYSs6H9J ~ =|?/-e{ Ow <'h61Q>]97D djGƞ1x&Y0DsWpSڌDH("9ǝ\\\VWWUf{\sVam7o|#vG-ŀM^N洍o9 \摮i4+,8UrsõRֻf 3хq흥]D?]#oe--}P*SQ~mL8NyV۱dN XЧ_Ad8驒R lmm|ǽ[d+-$vGܸ:r-t#PWᒁgc!롾r̕Kи0ܠ>[xF;|yznȅܹnPbb. 84G M4k`1"`;2P(P( "Y9`He+HMABp8$?YFdQ) %Vzw,Eo>^'IiI3`txCnefχͩG>]%章 !CGGVez-5&A jÐ/Bw<1`lPBXw;Z m)B=|5MڊWD_wۦ|"c ?ZHTGN-BgkuX|OAf+P %9٣G X-J} !Svudy ]D vWگmԥA遰+.nZ+zO:LDe Ο`)8VO^to?gz>)@Bi%s2/dCSTx3hGnm4FCzuy}_K}:+e%2aC;Uw"O|d%I&kfeW>6UO+IM@Ĉ !] k`PWZ J] BhMC9\?:M[ag{)G2KSVq 4|jiaoGY -)fLzxrIϨc1_ڗ`_p}>\9FIwԻa$ o93SeXT>ŢLBdWbW]4&ulCYv0fw  bnX &XN6^%Y+i+{t&<ȯCz/kiNo-MB B3O*J6hw2CXEZ=4JH5 _AnR6hGy;ic3Tqg?#ry )6iL  U5fyIY)mI"[3qJ [ KS8NdAQ} YXh>HAV& 4k^7FygNH 17c@j?EĜqR] `r!0zf"Pb-Wo ̎JqE `% O^Ӿ]tt,^Ѳ)Ԁc|0jF˄zS i(~k[D#v Σ :wUy[BL8Qm#c"k>(9`I(|aM ҃0k 01v +}uܕl5ڒkEwpXgS'nU[Rs/ G|.uzAemrH|{4LYo\,hLr+=fsw5j2.U°"@H/QC{Tuj~W%e}AiG/`4wENKғ8i4 #jD3XٙQY78 N xod_Kbͼ̇UPb9x811Mډ>~(7<|!qlYե% ` N ;J[=T)RݻkPsaNYYep1aUBO6Jћo8ѝuW&wք^ϒ573g3uG>Gէhe, !r'sEZ~Onen>yJ,{X#׾Snܘ‰OYg38˰J qj%neaߔy2mNO kU8Q#?h}GAay?_}fqpVAs;-d=U[*J)%:STM?Aщ~]cv*YFG/++Q.X~w}gTTN<*C#mf+zzz_X[&AҶG=%e&.<FlT~)ǤҡpU ۯg_>+" t棆yD~K~aɷN] ???j^͇s] ,;p'{ќ٨. z` [YYѝkHhe!q5 gu S8ԩQɏƐ<0 ?[!"8(}' !)29BZI?7\ m;bGocس.ct{d& 0Bz'G7D ENPKC1KySP a #nuvola/48x48/mimetypes/colorset.pngUT `ACPQux {TR<+|e>*^s{hRISijifiꝺ34h LRcf4M{^k^ҘMDk'kö[" @9-\w+nZ|cYSs6H9J ~ =|?/-e{ Ow <'h61Q>]97D djGƞ1x&Y0DsWpSڌDH("9ǝ\\\VWWUf{\sVam7o|#vG-ŀM^N洍o9 \摮i4+,8UrsõRֻf 3хq흥]D?]#oe--}P*SQ~mL8NyV۱dN XЧ_Ad8驒R lmm|ǽ[d+-$vGܸ:r-t#PWᒁgc!롾r̕Kи0ܠ>[xF;|yznȅܹnPbb. 84G M4k`1"`;2P(P( "Y9`He+HMABp8$?YFdQ) %Vzw,Eo>^'IiI3`txCnefχͩG>]%章 !CGGVez-5&A jÐ/Bw<1`lPBXw;Z m)B=|5MڊWD_wۦ|"c ?ZHTGN-BgkuX|OAf+P %9٣G X-J} !Svudy ]D vWگmԥA遰+.nZ+zO:LDe Ο`)8VO^to?gz>)@Bi%s2/dCSTx3hGnm4FCzuy}_K}:+e%2aC;Uw"O|d%I&kfeW>6UO+IM@Ĉ !] k`PWZ J] BhMC9\?:M[ag{)G2KSVq 4|jiaoGY -)fLzxrIϨc1_ڗ`_p}>\9FIwԻa$ o93SeXT>ŢLBdWbW]4&ulCYv0fw  bnX &XN6^%Y+i+{t&<ȯCz/kiNo-MB B3O*J6hw2CXEZ=4JH5 _AnR6hGy;ic3Tqg?#ry )6iL  U5fyIY)mI"[3qJ [ KS8NdAQ} YXh>HAV& 4k^7FygNH 17c@j?EĜqR] `r!0zf"Pb-Wo ̎JqE `% O^Ӿ]tt,^Ѳ)Ԁc|0jF˄zS i(~k[D#v Σ :wUy[BL8Qm#c"k>(9`I(|aM ҃0k 01v +}uܕl5ڒkEwpXgS'nU[Rs/ G|.uzAemrH|{4LYo\,hLr+=fsw5j2.U°"@H/QC{Tuj~W%e}AiG/`4wENKғ8i4 #jD3XٙQY78 N xod_Kbͼ̇UPb9x811Mډ>~(7<|!qlYե% ` N ;J[=T)RݻkPsaNYYep1aUBO6Jћo8ѝuW&wք^ϒ573g3uG>Gէhe, !r'sEZ~Onen>yJ,{X#׾Snܘ‰OYg38˰J qj%neaߔy2mNO kU8Q#?h}GAay?_}fqpVAs;-d=U[*J)%:STM?Aщ~]cv*YFG/++Q.X~w}gTTN<*C#mf+zzz_X[&AҶG=%e&.<FlT~)ǤҡpU ۯg_>+" t棆yD~K~aɷN] ???j^͇s] ,;p'{ќ٨. z` [YYѝkHhe!q5 gu S8ԩQɏƐ<0 ?[!"8(}' !)29BZI?7\ m;bGocس.ct{d& 0Bz'G7D ENPK C1T} nuvola/48x48/mimetypes/core.pngUT `ADPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxb?P8=@`dddptttP222}ˇ޾}{7o^ @,,6p)((0$  >)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJq}8(C<J0c޽ <9Hd@8V\pRRRpb`P%5X:G _ c \<+WI  P,0ȣam%P $f_ Q15 @c3OPP, ya9P!8@ \f: f RPJ:|||a m|cD$D L @DĠжע iRAA1*Ձ - G|} lm!e G02HHHP TcHc Hj 2=/޽{eG0Af\z!$$b%IR @DWd0nkjj8r89B$B Py&Czz:@'wQ(2 sh]]úu;PVB9c^(Z^^^xbz}*2"); GEFFK-[[zAPg<<<@s !{P@}IMؒ@U܀ І b G)a@ԠaXG^TT.&/<@A-Rb pRu8Tb@=CCX{@mjXט ,mϠUUUpeZɆP08 Xҁ(SV 4#gbX@ ji*XW&m?N#Ρ56G>}؝-18 ہx7A@JX @ a @|ԥ\Ф A=?4ـiPG9_9IENDB`PKC1;=Unuvola/48x48/mimetypes/deb.pngUT `AFPQux W TRpVeebC=+C ũTZZ& CfVbYWf&(N >|"jCN);kou:k{Tښk4t۷)PλQZڏ?jdXԹӡsHdp(DPxРSCi{@̧`% %>hh1}oRKoH sTVfɍ?=dhm -#m]0P0Ctȼʼn/4+c,> qc:0<$ڄ L$w'H'S׼#\EFDǯTeQw$wG3\`];XR.|{35)¬|!#oa_x߁/4"VcuUJ[.xCz]-|[o0 {Àd1,c]`x`/9%䌤#|gTg+C'ëk')kG)8P"0b7X i/z0,&:RKjvO/:l4,Aj6|X]' _KUs>5.M)wmF_0sx^Z<"]FT WRaM8u_+bZվ+x*L~g/W/$|BGpY'{RS6? ;u:kҴw(>a_JW R3 ] Ux|G}5Uw'hݡe^PftV?)ި?efщՐ,bRAUQ /xgJIN4%  e~a_B[Ls)k`7Y.I{Frs* mT ø.f͘;;[!ght|]ס=~Tgl2& Gޞ\܏!GxE6>Uλ8I;p-J>3G"T鎄1QyPtX¿`+|5V)k? F|!p26;h}53yV@tשA%x{G2JCJv_7.# fl}nl#qPGfCMXOGLI.J C$Bx'&7{3C=q 9b+ uJ.>k1u!~bۨ%l4TDnM,E3 t[;|/*_\١>!sEWtIOw%l8dŭLËV́kH\`)Aӈ6.@qbw y%1^CE*gHC(7cd $7ؿ>욧*qd$῔e;6R͐w#bߖ6J"ڏ j6'-1˄E e`1:A0felxv^N,& j&J=D:rS*0H4G3JW%fmTգfWh+}XOQ̩뒭i.ď,<gҖ{ m $a+SDtOpPtCRuk#tuɷ7M09%>/_~#4$ٶ`VV=QNLt>}…!ÇoXOa-X]k)>Y<5$U E]琣19~ !WäU!I+J=.?[J_FL)Q]_}jgefmЌűy5KQ |{cwAğ3@}]0*Ex²BMfHtR[{Q-e;x` yoD]{;K]Qce7œ9yO g},ʚF/{`;: QRH"\CXܬeUoQul\8;uFqf^}i녈4]Qk|>rjI7{ X+_yů_7kwk %"  e 2&-^W# j% sݚ#|YD~Q(kb"EԐl@x|8˾2~f=; mz Ý~Hg+U&dF-vC)CO=N,#;{!a,3s׆#zvtGy1GA_xD~Cc~u+_Ah'q^a02fS@:^,̲H%-NLn?8*4&yGVܫR(1L5FySwt 1S𦈎u+%eɡ62*#G,60z4ĉ{^sqȈ6T!dnZŷ+x?)2Ton{/w'3rxYFB$[QlUu_6[Q݇ "0Uӿ<5bC.G{ +]b5afaO{q'{ HGb'M/VD }*= )yw'*}=[q3 :k^LK;mG!p)|ܨ_ ͟yǍEϸuw&8Dxfu0ag/nǐpפoHw#?(4 *i;t?8fnAR,U%\jNLM_@/X;Ҧľg \]ܽR(coq'kvۜ?/KҺGL/#%|rv||}Z{^ &?Ka%0,) \eXar x/.;fЮ%xx8{L:R\/n*tAjTqԶSKM05Tق|E_e9LB?=lVmMy %nqlJTYV̷ObO ᏿[J r 6lafZ#0t:~)3iiersY< osx1v Fžܕ +1wMHy]Z})R>Y:K 0tFR/kˎq%]ZS;ڋ`n =;}wY>BoΒdk7 W&;QiuυrH%s_&k"/f^=NMh~R<kϯ$gDzKRގ_\6&֔&n]|l/5/,[ӡ^)nVf,)JZ:o[GgRxO5Yp(KHa#:ZNUDO={/b٥M^;5_sBEbgb@~G>3Fjil\ p[FsKvy wB;^.) Q1%B AMJQJ,̓P(EPU*(QX# qBQ@{c򭵾v1;4|̃2J‚=9[hV (7b<m<;9XFt`%pAqYϹW'yf PxlL'...رcjvhech4Z~Вd$7gvc~d>$53݆mVZVUYU]Yne~a]]]8K/_\ ݨp&"k9|8᳛X┨ca8Nա-Rd=d;1{\Yġ%f؏\4'wSkdhş 9UU\FA.9EB- 89%>.S(VDp]- &3h/-wΑgZaX"B1tG3m+/h%Fw6yM$]\0DA{tՍ1#*"v:9*Cٳ ij 3 TvS4H0>sj B{Ehl'J\" gh|JC$٩R%Y ׬c; DzINn(.1BA6;Jk4gcMQLQ2$_f7)xdP. Ԣ4:].mӏ̀!-fN$o88N Cpؽn=#EȜ>) :CJKT 9ZͣXgRdFwܗdoB]rJk r;f]3~wٸ#zƴQĪUi8_G\J0%X^W;4 bonؑl@cZz+jR]ᄵvXNw;vdU+7-O,y -'? (n^W;zc[V?a~<&<&>Y7 gT+͓(@F=DlQ^qDY Ўi@zH$^Uˮ*ffSs.N2z:L!U9jҡ4πM`j-p(1zm#"Q[騗^vCܔe 3x@JG| .?4P)G/8tUT|%o!;;X؅ yf6;#&/o6JiKĔ1R91[>S̓ +"ʌ b?m{3`n}5][g yHB&zѹC)?h'[q p+t hbUJY$-8P-_ #o:ۅރmʼ&+Yz%DaC;.@yJIz/ $wv}1g!ǍhbR,1ʔb쀫RҋF* `rG/},mD]7#)EoŽٙxy7ض8d^p _W ~Z;::=c>/\ܼ-ĀxVJޜEC֦xQb\ ;ek䯬lU2Nd ?w0@ȪCdo3 lL=:w&wLwh˯kS1Fu~Fk昐"Rd`:BTeQVVyDcc$φ Dgshbb 7-p(~fX'GAhO |cZR>镍\fͳka qibl'BHgQ*e93 &?:ſ| [ &qIox=la[q.G qI_gABPKC1m. , nuvola/48x48/mimetypes/dvi.pngUT b`AEPQux iTSOKB A 4PD&14"bTAy )RTUXB[AzXb#&@j9{{kW%8ػW~Q!|H\Z>]rJ?/)/-|nY6")NɖK ͎v]vlݻ>c1F^\^P\\#yr>q]hh衹ܩdz~~ty,ba0ʵ{xxp64oh(pxsld0cϬր*ätt"IV D81a1C`e՗ÄS|i!4G'pJS$'vmoqK `I2(,"*gÔՍHalllfw:>mFb5'TJ1oSv2j =E}2`:{_G>vh@dS(4ͯ [K,\Hsjt,b} 6K@s}qiE5ruu/FK1+е5W駄ŧ6ve)(SW-63^nuʔOB Eۇ':".'-[NMɐbQmi<Q3K2(T?pk%x`2uG4b?`=f57CV5\tXHKBc8mzL%Ғ 2HSSk덜ԢeK_lRŔVBMKJ\Z7փQsW{5;- #I%Վ4 '?2B]/ʤBH;^r*8|yݐp8h ԫ6"GdPeӾhCӭ@/! +KC`:qYpoTF遳k4GH8.|DB N|'z4Zw|_  #ݛ(} e-X{i\csAŎFmV {|{'8ʳm&w5:`睇 ȌLdF*b)0Ծ^lQs"ɑTP?bǔ$Pb8e6r$B1Ku>D_o:!0Tq\j/٪txm"Z=&&/HE^l}mdfzTosNA>VH+꾉7 SҔJBa l. ]v9x|i[k`8Ux<{?}_oo+^X6?!g2A' Rt'mN ; !QP1fx(3$,t#NxR$u/6DwȜ7?<84ԅlјt)Jtk&bɻ'_/D!3zDwacSSS"璢h[X=*YivU. Ol&g";PAm @L&?RՁe7;waɞƳ}K'N[f/c|OFan": [>wfу3'¿jxZrA!Ƨ8e~BԯDN&(asʹur9&Bq[l-=G պmJoL}p!mum]i3:|eX[okMf* '\o_S(1wZ.KsjH&>iܛcaG~v |( ,h/8 e-,|^o~?k41H#&bvdQɘC7m݅Dwxuɱ1{py:cxU&juhy*"o5*wA v@Q Rx8,++rMW䙹qu>R3԰ҍˬ7{0 h 7;0= ) ;K4L9Vu[[a"ƞf^䣙kvby˅6 "i0F4_38-+/?ĜJrMד;Sz>X2/ 3.]:vꂇҧ(J  7 GAZl_)#<$"YVC6u pM!š~u!Ѳq\93c]8Cڶ&D@~*nX̐ p 0At$Nӷń1^7 Ѷ̡9vY#^=җC&I^*"m&4n晸qF+)ƃY|jDzo% 2[AC:mk/P&on/Ft׳+H 9Jr 9IZ)f;FYVHGI\g@4(ᬭI Oѿˌp[ˡOcQ QZK`HcvjhYj{ŸgRBB+_d.<x&ҽ˔7 }G;&ej"hyXhޖy%"83s-UcXVZS2gQh q5rt~* hօbn:sAW'OCo@HȨ 룛 n{Q\vjى Egu3_ߋ9fqq9ȸ}tM4BTT.^C'6Dɕm @E&'A9R9X܎V$hn\J!o5Z)tSW;^KN}́4fLd+noZL 5ip]xl$ 5BNj+8yAMG[R-)4]*dV~rS%e(ޞf̈E|j5(/kW uv~tʣ3}pcBUzڿcWMܹ@Rcd:@zXDn RQGq Xpa/e}?͡5!mxrydGUd$umn =&OewJ욎|C|fJHO)iV8@Rp&[V>o9J]E0,ommb?NϥIyVhZ2zv9u~O:B#Y666Zn^}/^s6dNhq 2Sߊe쳐)z{D4+?Mтwz {bIoK}z@ѸRC3:q*Jsy.)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJq9ZyRQ(-؄"T3,%&lI )FCU 3,IP1 @L= >q@LF%$534vհ @mjXט |/TUU<7E6 rӷo@?@axׯk-[ֈkmb"caaDV<@a[jꤥdddE=ӧO>y(o@w?60)I 6b- V*j7(Y t7@X{@(&[qKgl>{ pK_Og.IENDB`PKC1X $nuvola/48x48/mimetypes/encrypted.pngUT N`AEPQux V{8l%6R9zKI-6*0tr(Zzctތ~tؘNoJ5"?{uߟ>6.5(`.R<]Ћanc@]:tgRFvo )ǸIQ32E 8č FCa?sGk޼V\N`^S"Fa¨ J~[*c_ph2MXl3 OL555dCd*xJ82ejF_.k7'j.8|Iu6^$:F#1۾=_yC7Ӧ0&]5L|b?Lb!yyyx[d| p#ytޝe%6Vn&-DDs‚YKLvYx1֔LUzfѵaR@egùnJ"K|= l> !Hb+cSN(t-cʕ+%+?Jzڡf8OD'BFF#Gd UhAŝzHf"m4!ׄh C}6p~ "Tܢ b#:I)LzU7QTlM?Y*O!uIje Gh6joܨJb5♙jv[5$ ha)~ts @#SKдٹ+>aaÜ P2E/e]b$q#yCaʮsv%yҞ)4Y8/{{ړ+@ U*)-msj0#c hl šR-:K Irtl x}OF={KvѲl-4@Q }ݤ  ]aa)Dx7Eܗ7] ǎE=?R pN"_sd}וwrbXL*arlC!m9 {U be.z{˸wќTyԗcPaee0@3u0eG%4ܬ9/hCmi{B5/sY!~AuDNQ3[/*<I혳47 cc4`[2?.G̿n\M֑܎/ 3<CuuwCJAuiS7!XMY)&h/^$=}+ʨ/;E_lu~!( ӶMj{ z,S)vԣTem!r;i&5mSPܒrYҐuW-&<\"o[TGq20hwbvAooș'R/xL*OZMըEѽ|!]rj87E5YT*wndC{'WS@ΉGbDn-½bIwZFA#-RZ56.fŶ;D_]K=. wTw"8dl5HfQLx" Hp&A*yzrʦRCg?%NwIFboqFkj%+l7ܞ"-by`cӘ%Cl]x%YAx]V];~hwWc~=WuFP<%!rx0JӔs pNpl姼!=o}c?t-YalOU'BϨRAb* sjѦ*szՅ$bsΓB]XmXIi;!\m2O CJs xV8J7B\advA f-7#(g64yp֌ϫ; ƳIJ< IL1ۉfn^ 0Jq`4srp0LqrN ~9R$Ze̟|l'/UWV `uHH׈ lp g" sǹep=F dÏ\=msƈj;0`++7{ C'j':{/']%3!u8+v i4ɜ]SsL>ar*uq FU:T.H&?~z5jͥs>Mw#d+n[WSTol x7bY{gdQԡTMC9k 639iii$8~Ƿ7S׍)TOԗWwj?e1pܭ>iϳo˯ `0:}4: tٳgُ_})L׷kkQg^15 Q`;%ނb5]g?<MiƧ{܈{[Emd\TʘXkV7orPKC1 $nuvola/48x48/mimetypes/exec_wine.pngUT F`AFPQux Vy\Y~^Q_75F\4Lͩ& DAjܲIcE1˽lrFl++)kC-uYJHE{q99s4%9;MHРeO*-Hb{QZnEҊ6erFVK`~*)FJf,cKLS ]2[2J lm7,#.LG`&qg4~i;>&I; r+569 n޽*+_~Z&a3lRB[FբW AvܺuҲOߠ'@)k s4]DΕ/ُ4\|YV;{3 AԥU#(C'qedI'ZL6e^}}D%H"";~'@ 1<4:J[ T8}JN/~JaQ?L $ 7z۷アapyD%FpYd#H6єy^Ae!F')6iVd0[a]h&͏Y+I.)ܰi ~DgV2ado^WգEn_P>V#^]I{հc|*…R* T?Kye X+<~{(ٕ Kw+S"g[@bΖӉʂ.*9A \ $kl\x/Ў+}!b!:f{\%΃E"1ul< ,|q&CS`}X3$Ӄp[5]F 1$ Is'8N=4 A)AC9,iXJ4Q?{H=qF5Z3 ) }XS;l^$#9`6˂X/Sj)>x*0%QLP4GX@EDtxI[RjFKQ/Ss%#'PF7lSlB1[r5YptAT3ͥDl07:jLúlkS{ -lѹa,g xd,`sȭ̔ .\ &]ۄ{;qHOZK8 c7 W@ *\q24ђPH r~rLH V 4w!ڑ euX0CȾ?53?rO%X!3K}THcxcMXPs3<߹)@'WCڋj/8[L`4(b&Ԩu}Kf| ~n*8F7 f$7c nEd9k lRUbYhs>d>_ $0 S?iGHykUk4sնxTʵ<+Z#0$e_>]ric1| J\ o䊠w駡܂Ja$ٗ:qR U3t$"/`1CT],_ `4@PlG4Ԙ?+ϟ7Bs=/KOw}#a)dd"["aq G0Cbޛ"74Y|ڱv6 3@Yшql'zKlBt{a)yh`ĭ)m۰sfI*];o/oiQ`~$\V#kkJA{eNjO"XlᮦARaM=Tru|~suKY eqm439{E!}EEzbʔK)_̘Yp<|$;U$BSBr}~ҟJv::Xp}xb~U7XEtQ,N)N0eg55P*mMSR^~S[ܿ_;9D$֊f.t/emGR3ǎ'8^ƌꄠ;umY)|6iT?'K"PXї4)X^cI ܽ57RVBQVek u탼Af#N FM12t;__1aآEX߳y*Ǩ'h~B6E]T~z'~pԱ%|ZG1ٺ]S/bxny ׌<5O gB؄<2?=^ 6s ^X#i*7"tWž²ƑL>I7Dq+cG9 @U~sRb H;Ts8 GR׫>GM{KRq.dⷐnWB&S8<Sica=:C| 0Ó?D"P%]xA'd$lİcy b|c:f5L!85L+5P9^s`C_ʛꏒ㹬36-tz8.m_گU`i#o%U+zSn(vi9>„>( % 77*x]wxcDk<P~{D<\Ko8~!ϱF78Y*mN#pl WҨǮSzw( Su_G45\(g^rddI1&^q$\Ɋ^v!]k0̓/41O)N5!ULRd3\M{sSN8]ĒFȶկq###'Ov!PY8۽xˮܴ,##3.A4r(c=BNsXzhm5iti6 a͈'̴!mZ,O ~L?/4eXl MuqJaJf5yPɋ'?OIIo6?Tʄh4bro..4+9GڒR'$,|ghU'&ggd:e{N'Ndbe{ }␑j:q^j I(y?8776ѪjΨ\E&LjbaG]KDzܫ^!$'~vTHWdہSzTEǽe> #EETB8X 0jnPءv}ޒ/H޿ 1q mM&a]Y?#gT`w~c1q8Wb$s=+ܘg"aJ0]9WG܈ba/*}P" b`O,زXd0 Bu؃_2,aW]ra/9uDx=Kqp"KYVٮwK躆\r7BPxhtu Pf5K9,wGDjoKL#hJ~+/TS4yYPn?; ? U?L|P?ϯ'mh(8_̢GQ% J'NUtQ8ˢ}KpFKYD]/v|xz ynO3>7N ,ӭ"s06Z}X5!o+kVj앀hp,nКWqΥ j4G~T."z䅵cU*&rgY¥gonso+yS+Yp[jRI'i/xN9';&!~b%2G=mTWQD40u^GS秷?&~^]V[>IX_˯3K֠/G1P4CY҇i=i_JTV0p\6|Cov}MMM &Jd[giy0tq^'j? 2jwoA+s\=pk`6#-g ܡmP h^Nڐs`7th=C쥺(V &rYn0w KڻਬhE(BgpEopt'%šA 4 Bvj'Z/ QYۜxkTFSzpR5߭5LUM#PWp?o%h;Ev._i^`LrҾvʼnt;[nLQׇ/q^`cҖ}]|bR=MPA|l-0BY6#L7s*U,2Ci')ް_ux<jJ#dRpqh m7o u&5e5 XqG[Z4ꫳwcHn}}V' \WO&/JiW>yZҩc|s,U)Ux왣mwK*EpW-r2ծK/XzЕ]\09+.azտJ=}AO{$}2f seܗŷf~z> Bc=9p15&϶%:{=V+JJ0$3-Tnb>p򇜦uuv)0< vw}37e:ᗄ<=<=]XK$!a@| l,Ww32Kiᦗ>\Uj]ruѭ& o(1vI.@ TREgN5_PKt91 &nuvola/48x48/mimetypes/file_locked.pngUT gUAFPQux iXixQH%J 0S&-ilԴt2sR*&ɦtDFRkFzps;ܧ-k:-2 &3\ѡ[P 2;o;3{z qNJrL xz$uW+֢@V0 `)ixpxV:/[=J5Ay ;_G  cթyYHm\ []C6΄栔[}0 e e* l7/gF:87Y^?x,1ԘqbѢ- 0qvպ-7$,;i9xNּM'Oc<a̙2a+XnS}>~[bs:/>Ut݃ 0nm`ɫ!>hW֗/-Fע)þEJ4V pv}Yf-Yba|jYCNnPaٖ%Y7c#nWjru]lׄ{Nk1ߦѫ;:so]^po0@:޻g p\ҴJ SI[$  GɱI).2MnN6)В в\xa˜E`G3lllDON V#)邛N%gk=-! (̞XfoJ6GnD|wR2b"(Jaa!H̠@j,wSz^Vqnwkqrrfs: z,LŊHgc @Uvs2Br/^;(@(EcaF,! .NeIK׍CT*12c$B` 1 ^&%7X4]JKq n᳍KǚJrŦqwdͧ㜦L]qll.b6ǾdfSƔ'XEr>0ug<+) )jJδ>eBAAAPtt46媞?OշkX_'eh5--M=׻ߢ(ϑt.3$ վܟp65]b?erO JJC2,Yzs07+VPJL曷frmIR(a]t0<9!$HZ53!M"D215+ĀpJ-Ɛ4` [';B%xS%i2&s>{wzefFڭQmOQd{Wקʦv E07]X'xDE^2! K+ˈ J!}ӆt Nza `we޵D?k/9:l*&5#@!+$:Ho'i)楑~>v }5aթ}bE`8Krjza0qЉRiL+8gn1%e`u^2oQ?w&V?&N!Pu,k=PkHq8gf uAGʞɟtOA_ ?pKeQ.J-{Sy6ғ{څY\@t >AW^Q |$g /o!v_`*'MԎX +:ϫB5Z);NP+`[] +S=`.Q}I S%qڹo~|Ҵ@™P߅L氁34k_i֏ Ǔ\􈧢8N- ُل=+AR&b0E uexTnANq&W.?fGQ0![aC@u\~Vu2Iiֽ3Ϭi'BwЇѕƌϟu(u=>u?2}+Ya6'C6r{ZaxȮp^չ^|?a+ 7#45u'-0j%P S퐹YmemsB8JW- qi^yNr@eGV3ݦe8w=q U\ӂS( r^Ǥ!m;z.mDg3u ]j "" @]T0;ifԐY1,..=.:R۰N/9bXjBh'i|S~Z4R4`.x]/`ãc;kp}^aq蛶Eމ`fPKC1e]u)nuvola/48x48/mimetypes/file_temporary.pngUT n`AEPQux %Ww\S Ip 5* !h' +n`.@ B$JVmH"V"8*s>|3yGs6{N!#9}z2n0B&T5/Þzk)kSILIMxGb„A|zң ]ۚ"ւ ]@t= VO3̀+V$D)Gz+CkU1IAWp@݂rBh?_C}} |ydXA_2K؊ʡȂPTMNsӧP.mO1-SUFJ#hCIx_ b:A,又̷o^gKq |X> 8bp 1 QMwpd"o5xl3DhaKR]8lrL^> 5/ ]p"q?v? lfB=φ?J #P~p[ ,@473^u"wMˈ _>fxn,{|z7D~%kDA(:H+54^}`O^6KY@;@u?pVZ'q@PlGާaLyvP_ZmX|\{cac g̟c@A3 D/JKduyEEe2yq,"yy;A$׫y]`,?a篰{UMxabWہ|>|C#*6_}A),L@Jxdd+͇X!!w]JuZ=Wg]8K)P*d,\+67h&M>8%ZC扖B5j[NǏ_Yv+ZZ!@gd=;˿ V q IΌDEHK]v:q{_Jl7.JkAKe?quZ^òvM.uD[0:}Z(:!UԏmJŘ n+Ժo`8I1:X <^dhQB%Е'.Pynyt6CUZAT]_SG]{޵{<4屡YmYШ5<6kPak|/Qw)&= AsΑh].ƨ-%T+>Cz*#;w/TKuZi'[E >8!'12qN!<)I3YHSq_CSfWk8#=gh^7 @7I8tppkieg< +(Vnx`_ۚg#6ǒO<(sڵvfƗS]qOLP ~=t1$8>1`Òף?d3H]HUsj5s7 *c!k'1,\?l(P񀀷y˥q`$lqe,\BSuvt?YĴ&(Tj;$ 󗮞}2==u ތSIHb:mdۑp/;g ӧ%&h7/| 3;Pɋ)@M@s\@utQEW9M̩ 2]G,یLQDF3$GV6DVGGWo|y:aiXX,mtiky[6#&g\:hꍟA<Zȁa '(nXG2\.V&EϦ:Dp%ž4R{EFv곳O[:+٦AoNRwZ竹aoG2-nR[ sp !/+u?TS1_AWb?]A拆sP v&tKr$+=ͣ4ܼͩ*u;OM-8\obX;{bbT"z? w%8aGo E̠ckq_ۤvR`v@‘3(-&nͪc#Z'U\! v1ќ5m-[ s$*h=fWZۙK(< L? %ŋY :vU?zsZ?3La+Y'RPdF4 F{ TjHps;hb٪(X~wғ(vvb Y&`?j-&[[[ߓcYsIÙ]]]@vI/a#+j3WKa H\WݙIOhǽET;Ş؎05Y+%0|* &8EqS0ٺ[ϩ>G[^Yj.`m}mW|jY- 6;zlL23!nAEƭTQֆmEEZ^JN"7{/M?hL_kّsފV59 LsOMHSb:^ a,\o*o Il`ENYw*_u%]U? b_errqWܢjI4[V R:˫NCə.@Fe\ݞ#S~?+ Mtv=m=٬%#=y.p3aS} pdiao!dH9robΩXP]XK eŝ:c?~nȦo$lZDD8pvi [}k%?PKC1}nuvola/48x48/mimetypes/font.pngUT @`AEPQux Vy8[>fc 5nd"fKj]6A$2X"KȒ,EĤŖmL1D׵Wqy<{}e1;aAYA]Q{o3  LWkd45 B}@??*-&l 9$|w~&#H#Wh4zdd47?;77%GF&na&'ĭMI5e5 EB 0X%/ 껫3iP.̝8egB8G@7#6p!Yg{Dd=&d7 n;У#Bxn\StFUsd^br,G+g˯8Ae%Sr]MMMA렫1% G<:rVd|RgfֵZ8NH'؋NQUW)JJr!jƒ@э(c0؁t'vUg1Ǔe߷&_FrR@];ƊנhPJޤlz_n~ItY8REA8G:YB't)p" "󪧧MFvuY")VIYYYxаdɧX*W<C\G/.BDMt홃D.C?wbR':h {HtN>3  %agk8LU˚)4>{א <Öci#,(i :d40| ħ+$RLWˎ#0--?Kd&_ A̞vhDS~i f(>Ovs(Ecdy\طqH)ol.2S.Z:8+/x @jϒnLyࣿ8&D 2:>7=hr }ʒ. yz񖗇%<P0Bٴ]HT3"q8TYU1<+))*v!1bo)f5I;J~jHn pڏ%cqOMhp*^\zb~ߺTD_n}Iw_ЄImz'#nu`f0"Uyĺ c+ڲ0HYwesgggn͔sɷj nRo9g ?6!Y@ȁnq/:\uAr7*6P3^!c +:Ո%`81!1 Lid y?.Z> Liڒn "ȗGSNzy12-ph?lb\Ef]oF4%gr'&!t1l5xxxP C|bK*Y)yfR_Q͜TWwVcfHV@pVOM(U5} ؀Ј)LN C|I~L=߯7/lFuD#iI+Opg 9!]pnfO܀hdKm^+?OX'J Y VM.>jF2َܮ*hrQF6&lcnkI>HnA4T|}w- F#0F"x#;χe?Nau-0q\pCxɵW:~2ؚ<˅([X҃lJ0KVC*+|F!Wbz 2".VBF2K:/E'e,L<۴YNK@1U;p9f`IIPKzC1&nuvola/48x48/mimetypes/font_bitmap.pngUT 8`ADPQux %}Vtc4|1t jO|(=vrRLxK>-,sh hazzt ;xPȅKy;l~h/2dHE"AT\N'ޥ 2? g6Sq{H} ~Qƞpj$N?33i㞼S&'f+5NGqM6Tc !3HaDii_{vᙟ誂%gstj4^Z.xܧv6|gє{T=z4n[1+*;0P"vo:oRFD'1|1>ny=w"zUz*ܜj=NŨwl=Ęح}=UbnBBC]XOD\:b"<6k(7ʙQTK^{kP3Kh++ (:$] ΄.^ol]x A:tĽI*`M;uB"WoQ`whĈ",y#DfT|MlDV׃幺K s1n,1:PnP 0V$:bxrq2!ƧUX#[PZf1eX"lqnPğqSlG۸IYjĄܖ`?eƦ`0pDdlnyޣAS~G{܌6kzB#W"ă&&Boyy ḶI q$^9%p=OJ}XM I((qD"@$0 hTܒUӝ|ږ%B<Ƥㆦ#9xiRb_BX lU{ /X A~ K0lڰ!x'\%v7KjqN>Zɰk܇֯F=7|a;.kxc`tVFZzE:g2|1COOD,jD,d~##YTGOI*FeT>xDJ_~;PKwC1mNL V (nuvola/48x48/mimetypes/font_truetype.pngUT 2`ADPQux V{8g3ϲ(69LBJK!a*I!mC!鍷ߛ:xlMVI~^qo|u_^ܟ}3q8;ʌfF QoJ6[hDEE'&& JGF/k;;tZƺSla?@700./+s,+]/Uj^7իWt|lR>5]) MnQ=(=v;L](IbVv&09w抚(,elyyD"AnR ;j䘮sx99< ӕmFQp$A[mnxՒ< o6Jɞzx ˿߸scgQ.zM9UHHQxD$@u|>Dګ3!x΂:)i !?Vc+i,} H#JN*I E;v7ް3DK5մnf}|j3;ݦb<}SH{d9?3g+PE.lO]Z50>>S?Iŭq+\Dj䆏U6lWY^ _E~ȓ,소<]h g.JW%Al7nq[iz7yF2~dۑc l8=ˌuM,䍍~.٢qٚ:E߲HD.敢׀.ZMSZP! 0W'0*Xk/=@z+Bz17<w`:)Un8})M#6OHs&bUOP-9AL%Ia4Fs8A9(dkf˟xg!H.cxDM>~ m=G Iך,x½z7_md:mYtʼDgks v^{ehceyyd\4  lP|MC[+ۘ#˨[ l@oM k}l.((TnsNvA=cќ15d(dd3:7sdx:)?3Њm^ԙۄGS;s'G%Iuk#@{ Q*Y+V{Dkpu|? K[Su{ @*j$ db`?Mx{3$Y,d1S`+p\t nS lDN22Iho8n" TB e]vKQc`l >V#xkdϯR`Osx (xaPHX}]-Ld_L9đ|Жd[]zWF 鋒1 I\V'*e :j ˿t3,$rO3f4x"Ȏxx u^j89bZjwBh{-MqE` Zʚ_%N )|^:0+]U^JAT _0m;iN/.@"Q~nN ?^( Δz|[?fZ[ZlV4K+}:ӪT5b$/fqur>, m3ȿ]cT 4~. qkm&8^=N֭;Qb]l8-14V)"9ziYGTǒ3S8-7tD-2ɹuɖ_hϯ]߼$wO^Ot&3~NeF:p.u>?%Gm+0 }y,.d5_R?4D#EM^Ub}F hcrL׈oaSw' %౑T׳[lk(: ܖ̉X|pj*N\adn$ȉ7/M#D S7#ۡ.t..oͥ$B.|ir,l#GcBVXEkubS PaBvCރ<9/DpU)ANBCJyZ$ZM[\8;EUhvcWS2gBJ{G˗›}|^B1&=CXS$G$9k0e2+tŖwW7۷W\o(,YOMXd9rKI#$c]EsgJLͭ[{C[[xtbxa[4+dpYB8Kuh(Z:s'3:Br6['):m9'9q,[U^#>~.ʃ]joh41XAoi͢541+<+Ka0з4t~RA"[.Mhn2곾ʐug4pJ4! ,TU&Oo[ELu\i9jdiv K' ,Ճ3A9lz8AuF? 7*C_A{a!N5EUh:S$%g%˯ݹ [9;Ջos,&f 4$[2G4JAj4quZƒ7k=m2P) 9yJ#!x$lwƨ_Q.z &I޶}bח8#)7'kqt$-aϯDtht--iwcf=NIM:!¤rZW.=9(jn%{zg+0BRVve-y|XIR@!},#nWyD_!;~O=.ǹMfdq{f^AjWf;k---85mcM(*o/g-7+J*-mnM?:9*X?{y 1Dj͚AKQ:yܡ^e\0*Oì],x(٦pNdh!+$7v .srB3єxo1 Zl"sFF> RByhQ_.Yo35sSf=K$cZvP 5"mV3ޒ Gy̅r;u@G ɀEMsQcH$V^Q,}ma70$im2J;Rimpw|bFjRoa։3ũd1/E (^9 Z@QeRb'@i )~V1I^Zgˆ5EsjyEnْ -v > F#|qMz4TwM mrJ˙n&"Uַ.|qřS !*lK*T<HбvCsH(lF">)Lj haIv3UW ⫫ZrAԐ8t#0Z[߄-}{7CAnr#^ Ja:(_H87b,9%ȷ,<`( ̈F`Y?t,o3 LGC;逴5j}d¢*z(RV .!+:Gc)ji7%5}6 S} ЧO-Ds*F[Ȝ+t!`lmgQjй7Ⴅ㚨% hu˺h meGzR>V>g0t@mG&K[qik.2_;\ҸDCDh2|JB|W%1!dinś&$u[i[@Gd CWbӗ'<#ڤN2 -o3YE}V Ͷ0Jlr0L $>:^hQ[ q4 [*2q"@aXGoY%V'w(S5_A}`f($AXOi1 =/<:\dгUײir%LfZuz\ |{z\&IԳA`^.=zIUB1)E2+3}m UQv쏻K XcWbfoت ~ZZu)('~>@"'qˢ"wdƞ|orLĝ5((b ۮ{  ? VGЕyէw䡡LϨ*Qm.eb@{zAY8c,)(m/ڊeɎ!)\E:ϣ &^%YlD$ O=hl ?"RX#ǵKvW}e5]ԋ!6P[x,o'ڡEn8+ 3;weLl:|C@! !}EnaL`IA'`%҃2bpZ[[]&$\ {{fZ:a 8Lqȹm,B`: <.@vce^kvr1!Cڋ6!tyyԦH(!*]%.Z< Qy4?S=7؁[1]wgZYﰀT, * RskeF\ANSY]DK@"̶ x!n5 E۲0+' l_`[TOҪWQXt'WŎwbSI4ZRx/7ÓV2Ojqq 2u=;`\쳋B!{:Pՙ&w:;`[/up\nP.0Y9qx Aʣ.v6KIm9I3{kK8f8zHI$FV2NÞ:oP!rcDvVn=]ʜ8PKmC1z nuvola/48x48/mimetypes/gf.pngUT `ADPQux %VyZ޹_U?Nu3Uf@]ک N;`bRxB$q"I; v3;Y'r*Ǘ[2esᡡѱW':NO[ZޕK4hJKVwN_mlllwhcqQQ5UXlrww7Kt81a45a=HQAd$a|^n3-:i6k9Y7,e'O*9{w]k/ Mlgiy%(::'wy1# KJn9aSXS:]X>{\\.Gkբ~#1qS@lak􅏌LS HE(,O;TܥaacWmB55z޸q93K$W`jO )c5H8fy^ěAh35ޅqUrLjXlT`mmKH$$yBSWIW._DdfyFޥ]c&+2Y/?Բ "ϧ謌"0 y/c@O`y3Tŏ8 MM6M4],`}!dU̗@?29^צ銺Hgx,df-VdEJ'1-gs8X^}A Q3D2僯Jȹr4FI#Pb@:[9T)`Ei/U!h`+;c(LIcLC&ƨr,̊WU [ବ<-K!^|Ds|>C)+ HHTqdMi"֮ "y)Nw2\ey "YJ!i8 ͸!)\L c֢bP>2 rnӪgmjU>\ ?9n[ :Bœa(oN 줊<ߓ‹^JJ}U V>V .Y  ʀʷXE&,wk9aIP9^>,EzTG|(.Nzd8b8ҏǝCewz f=URCLՅOs@0{V3ZGsߊaY0o0O|9ml@8|8J:s)@`NEК{k19^Bt% @&?E?(oB2XʅAE t[p |74?PF-~rݹ`!CsG}v,(+p(GT3w) XJZ{( Y5&C9U{XM62{ڋf4F KoڗxZO0]W1$ȲTdLxnckMtNi%jv  F/-K;u;g_g~zQ=-)'vpS#{`/s<ܖq}jGU*ҙUݾq\q֏f Xq\ {"#lVP),F_)48iCJY2Zz/(ߧ&++' `q 2Yg˨ 0@"ݠv"):FKpVF85Ic ?iy+ Ŏ1C,/B@KIwVȉWMe}]y]BVw|4jʝqXʉ ߁nX;V{O$Wnl\ 'B~z׶"ߟsu8~QC%eCH2BIR4n|g]TDn=]%kN[ }s@JH !+H$&-]Th8`qNGy{m 3i#Y-LS{TR '9+[6nkwogLګmiQf"%=t/u3~V*& |Vn֬Ygv|Ⱦ\b5NQ '2mEAdkY߿4byz$mpY]kcKgM Z]~4 ӟðK>( aL 텫ZV^PGc sǠgs{z:։-#w>cE>CUHG[sVׯ_<財@f>D^4 .yhi  -|.پZý&x<TSS#^w"Q/9a;wO> E_&9N ٷBp2Vl4Jc^< ސgz 3i$|K+n VuݚN 9 ^qAMx}0qs*L;tc?PKiC1 @P1P)nuvola/48x48/mimetypes/gnome_app_info.pngUT `ADPQux WgXSIIr5 AIYEXLP܄fPTP `EA@ jʷD!JT][|菙1<{μEᡫg1`FКӑsF`:%@5>9!}?35Kf0#q)" *5Kg0$ jo'59L&/KaSvb~cZs ޛ䰜G o -]c"ydx8*l""S(,UK.Mv8qQC<Tք>сwgn-ǎ',.Z>sH}Pt{N1{nU LyN7cVmw +up%O,še:x\y|x 7 :$ܽά}^30X2럹1ePƬ%4kf߷jw1B]*>h F͖R]E{GV$1斌d@% ]X$mbaƦMR^S-J.4RWLW$A&.džlc|\䛹f|dUmNeY7NOUJoFQT60+o]>AX`OwH@J#"TMTm$"\WN~ f' lL~q/d ]u C :Ǩobz^qE~Y9ec=Nc8cޜSc95>}oG&lglnv̈{h%+$r&3+W?`ϤvBeP{1K?Ӕ2uѣo|WuGQ2`>_+}wl<ׂU'6;IF9)%ܢWaLt?Tcyz#C+g!c3<|jC$g}/gN}A\A%g㤊,O^9OitZ]4DN@#t|[- ֛QߍA5O?¢p6:ԝQX3Dc"/Jm+ A< \z-a'iۻJ\o)9KeZG2&iI||\&J37jF[o A-sAe/|h2]nF\?x=m1ٍ^K&t4~A6S,m#ۄc- lm8"sk c2Ka-xzYJԻ̀>Ph ް % XTӢ?].q_M0c O-\`{v58ĩr+{gJԣm¸On[IR]i+\jIk=u>\qB;ya¼*|NjkI8-d. ZD"Ҥ8h%x^ᬘ" {40%3VBX-Tibe`R/m%nոw+*rcaS1 i`ddyLJ9`@@(n?CALv&rn?nڸ]J̳go>,芁<O\?0\ aif]~$`]hZSKm`KqRjdd;daa M1t/SJ.XGQI 9OuɇnC obGqԩĦ4LɉYL#|K;.j$N '5}ɞ @O'?Q?O:Myg]<9OBzRI!馋+prRy` 8B?e.vk(K<+;&R1tM?&)N77C^gAkCە S{j6?Q1+snLQS@cnQh#ӵM|O~ )}KO5dBh~cgȳq~U _1UzokF7l08@ [0=I뛘 VF!&&&V.(­)zt9OMbO{> 2鄫y3j//\SVa\v:tsy1,2`:5K]k@CÜwq#k5 #:o|4 $Ţn Wl/grd^Ԕc%V?PKfC14?— 6 nuvola/48x48/mimetypes/html.pngUT `AEPQux W{\R= QF; iZMdeVTGlGM:q:37hrR)G\?{o[kM09}X+H!T}0d}1{ ?B9h> s/my t 4`=vd&d s\Allȇ/tցnnnK $Ϝ^Glll6n+pڸ]Znor흎D46洤N2i @idfG=G`1j!D8dis> h>1l3ZF|Z|ǐ\UI4 +*%mƴr0YqU *JC"- Gf2(Wt*S44c@6q^n'^wZYXúlT`c%i=y-ό&gGVYzdشH%__ۀH{)K٘o?0zt`D=6A H˞*GO9/'Pi5 .8'K;8cDn,mv˺l)cϻ"&hIY QtXh ؔPPCj!@UQ6nKhf 4߿?43&,kSJ*NjIruP+@Uy՞8d\H \ܜwA'DT$, ]HgMgM'{xBvI7 N)9ݵ)oa{$0߉APՇ0VӮ{Fv\W7T+B%>Qt}% )CvLGiˣHvvBǻ 7EICot%%Lp! Ej0cI,‘R%$i0'MEa_vi86JX,W)" hABJMVY"ݼ5{GpDw dt)XTdUE"tm$yxK0HBdۮ L2erLr}wKre$H;{ T9LW k#C\ t< a U:  l@HGXsV;s+|~LbpG#q=΍aR'kVz3 &D'"(5f˩WQn,nZ֊-{63{^%mjRڗ'eUe Ƀh$3v@>'A;$?/etb,teIDlG"ܞi (&/4 vʆS܉SjF7vQT_D|GDCj.J|*uR brbԐ~o;LW Mj` yn\+k 80 ,Тs_$( gtPR<%>ϩp;ܗQj{w7E#%ۑmᏆ'5+VCU|o &ǝ* )HCH1P fde_&Etz`߀lrhRC;6}c <4OF=g E6y_R6AbdIέ@ev4 :fqV8aAᠭX1 | u7HkJsna;( k!j)g:BFҳYS^ Z U^ m4|G_m"Ns AEFY"2\AT(_Wc9G'qߑ|w\+ѻ sy*^P 16~yȂRyA.o;׬xΔ6}["ȥȫE[#Zَ MS6MwO ILՆ6#6"~^@9v;#d9{'y2ˇEUJ_UpMx6IRel[gUGLI:XD b+_7uxƉ/O)0LT,Nx ~Ltz\٬Ɓ?o6S]Q t VQ߼jM =~, 7RjUSKTy_CY4&]b:dNS.W0@nygirBYh'Au6U|Փ=qژ!MC i ^cH:00eFڋʅ_>˃54m2r$`wkƮ]9k+(zץ̧fS5E5D+tYf E #b#M1y?;Zq~k7ƿ2`晕EZr,DmT}. K@-$؆7wg/wn͝ʄxsVDUշO31SMnwݷTԻppdy9ܙ5J  +œk5yq@x"Ϊqde~o6;홠FhSɝsa+SyS5pѣ¬.)"ApzjM?3NuQ\X]ɛEEGu+:ZZ@<Op1P'xڪ ?EˉS#Fޛ5>dmH3=/(i}˴I쟦Czyydsa %Tw 2M1Ì>%!$&%zgAGPKbC10Z nuvola/48x48/mimetypes/image.pngUT `ADPQux %iXW'3a@ $AP@$AYT,J%bA(!a_"bTPVl1ؖn( UT).ABٲ|ߏ{s%a+A# a䀋EMfFQN4:cOZR1%xɂuW "?MLE `:$l_z1Sڥ"S't<3%nj+s՞5..4vmC?B{fbU;=^*(T[Bv8 * Yجl:ifQu]3UVqoB#ǤGH{.dQ#*籋c~?’?톏8^7Ƿ_V;'ST :8EE@$t(tr^KI⍏,~QJ0X 4_PqU`Yk37pRRK=>oDbG5ˍTHJpȭD )xɡ;?,, /yS]vKuP(\򩏤mtM1y@JGīuzP=5ޗSxNG.Ԩs`a\SA|Y!kaRQK`޾9CG병R+o*8M&4^ۡI/nPL?Ux,܍sƀҜ;r R|}es!)hQ|J[$fWE<^ #jbx2jT^$8!GIr’L% A双BWl~ӿpr1_U կav9ib NRRD,h2+ڪ?uU*K%Y ui93v:#=[;L\˯kGN=WT+AMw|G*ڙKV{ E*{`xopy~1@GhA$b?mKͭKXImɿCi;13oJάP{NeoyzAe =`MG:pk] 1&9:1Y)/FAh&zq]JU[4q:"xÖ?]*CV)&-8_;_M !幚`[D$x۟#Gq8ANmT1$ir@j}1Ҷ|="'HU[VK#ȤF^k/A5 _,-f/)|֐nQyYGMr`_`^#CƝIr]88ҕ?''ͧqˎ!$CrNIN&>`7vX{;1Zն4Gƀ?~?ӣ(%RMF6cb8~<9SĊbjlm ֐H< 1kDI&4u{x_7ӣRӏr%L~*/u?7)aG`O/m b~YID0 FyLKK?tp2"~bჟמR-W=&U{$^r,λm]cVN֔lhh ј Q@}eXCZK(blZS=$2(=q9 25B]&S;vVAi^ҚXTb[G&b! Do%>}c11`DbѸsX2. ~XWF)|c'077GQZ9L/;Hˤ L!`Q̱N̜yc W_=ŝS>n]XYYaDKp;ȚRQ\?:ry'˙j]6( 0Wu;~36oYaGn.PQtP3Hp`B%(EK!0Wu+^ٰ%MTiKd&hfD6?1FpbBɐffy;K{+7³G%d|)gst]KlCp  C"Jeuϭ~G-i9휑;OO[N; O)ֻpvˆY N RyuzH0BO$_ -q7'}rաe6%rrAvȰz/k2Dxk#O lYp- ,,bGS>hD)7o*CITuo( .^|(5ͧ+q jN|l'N#M A~Y[: @5ɢƧ i=Q X[sM_N"G (yH{N]>b ч\5h ?Z;Ql5`q[wJ9{虺V;3Im[5<ro0 ^gȷuxW95'j8~ofBjyl<-~7?R>@Y@8wND0&6p#{9D_Vӆi53&_,B) Ox YG*Mf8VxG.|UX}~ֵ SZf(Q|hm{|,CyM5]Dp%<7߳@ߓė7R1wWDҪMxLIݔߝhX!?vuWTP3sʧW&'0uUHdybMa׼D/,<7X>&l$W )wW Uܝ@-r#]g辙iĉJ(| E+bs7K[j7 ѧ^Cb;)EiDg "3*XT- ab@ݯ$WU={arc>Lhٜitlz)*7I[93[X}Fww̆_yV c"Oc[Kyc3H^Y/jѢ${k\C._>wE5D%_.CaF,?=gJvO/P1v}9N1B1*(#*Y4cg kKj[.(d[Zn&Km0b~sN䜍1=6],A_-;w.XU;u[߰F3;jc;o_f/ݩ!HPBp?XW=$>Va49 _mT8$Nhk2&} lt;?PKUC18TX\ t nuvola/48x48/mimetypes/info.pngUT `ACPQux %yPƿ,| A"Md ERz6\H AP@X VK!1 VT+B-b|7wΜg3gN>+$`FA~tn?\t"svzSOŤ̸N<)(9&1~_|L\]>A~̰s0L@ٿ 36츸c?FvÖ, J,l-޵dg~HBck\/8;՚rGûuvqH.R FH'@N3?P S]>rW]{{*o -(Tʼn =3"35CKS'F!ISSvBJk# 5lJiЀ ۇ3l{:"U 19@ )G*{]k êM#؇lĮu?mL}2v`{B^8 ;j5FJI@uB6y?*dqauj#Z82?z ¡V^4ɁBߕ 2XbX)| <朞嵌bu<*TfbR?ƒ~ЛXq2"D /V r{oao\G841n`ggˀD) 1 -lr5}O5Gq ߧ? _g>ͺt(_9R>"[ve<力?Shl_=BăLwp1ϠrBlZWmuj>8bHnL*G~Ǒ'/^ȍ=.aDq!P2QA^|wq}nbe :1cN(kJlA]/[^> p_,qn0=|%]iZr<+~)EV[~TFY/3+*Le-P QsOśu&2 "^1uW nјKGJ> At-yީ"e4_""i'cdZV }.9 #P#;UHyZc$^E`jr0ޖ*x[A JoTC9ÿZx> z+ zNeKs񠻣2/~ q]'rl@]3t~LckdF̙ZDAe#Dy*m .$~Exq]({P_ᗾM Bf|2::U²m+wa/qx$k:طڰ4ߖf^m?4qOȧ^El H6T"upM" E2:.ݯ'T^DiEXZpD%~ YA2XSi&/uxR:㜊@wގ2[1N0o' K;Mcbq  ¿:_ݰ 7E$g5tMR,Gn`UK-YIe ާ%ϓɆq}UC^ ڶ_З{R'H2ۤgq®l`i^0ԽB125լGhk1KWW>ZKP 9S*% 8WEl|8'p LfPAZ`\>1HpyԷ:??W,vL$̅o\NV-Jf?ER]4>]vfi݅S 4u(fMOjpL S3Z3{Ӷ7?UzNqo\g݃8-n^)7 ȼ,FTJUP~s +3*Ϭp{Ef֓m*~C#ϝĈr0h2U e5W3+ Y_ ;N]aKS!UDβ}!c&&۲)^3qzG.w=#|sʆKЧan t F•o )-FS;#E\ڣ*k6-A CEG:(hG ,c3$u08nTeDv.OF +!ʹx֫G% c2w:*;j,Ǿ>Bci+c1kops"?}{I2Vq5Na Psa';}oUo~>L!8S(GTT╶E"ic&Pe89Z|-=f뀐^:qz%s[8СR(Pgy\ ^7Rra!J }0>%USUcvyN֥ /(7"{lDG' 1^G,%gZzHeuPs` kM=FSժdl1aJ |@!ߗ&I秹yun(ʒA)Q4zfd=/+Epp] 5WԷ2f SH{Iʕװгdk7&IaYD!~N!t-s-p}p,E(,|Xjt@FX@֥ңql"B-3(yÎ#oyS,E-EWis2# Z;_7i7TSS;rsJrQ t <8R(g&1Łͩmg݀U[%s}I9oQ#gHu4_]Hy&F1 Uӛq4`[ɼ?NIe}GB]Mצ9mT2?bWhU3 f+GYYsjfNya$( 2/otfkĜx图_kU's^7"sssaEɆD^y^+!"y\Z]2e0ͩc4[B jqxƀmT"@I\=XԊkK/nV rh'R\Gy; sW26y\uI ~7(W@sPKYC1$j9 Q "nuvola/48x48/mimetypes/install.pngUT `AFPQux %{<ǿ؆/sL.QEh qP.%Fb2l_PdRQ'/sr\WTSN GK~y?>}޷zo 426(8( Bg)ۣ:Naεz'Č132qVrz?1IL:p$8*iQe1ͫ0aB$vrr27##cxhH=:6٭ hܥo_{ v7-ٓk#֭ܳBY\Zt4gB6uibًTl¼t>Tڶ[*wuɢߪU\7ECمʹ"\ 'flb&m ܹwڟr7B[\QRTHߐY< 3TMD=NĤ##S]%61wt/:nk23J?*`aPVx~0& (>;sA'MF3} Z4C(6 vE5nB |9_F-GM@U^S{`ګX~:A>KڟBga,J$N7x@44eה&E)yfq>$ Qbܷwo~5/E\Y<}N*AhTt>yŌ,Q Dlu)h1 ^w@:%m:VѸf3,+y1gS1=S;l9N^Z+0!:"@H9^e=~_m4g3TY* &$#fmM$jvxoC CAOju콃]T~ ]߻*;w R9#5"ډPFEŹҎNє4(6>$ÎR4d7^w">}5^WShWghb0n;hm5\;?eE mJTZRI<#>pīKoW8c) U4s&.Ƀ!2(dPi8wybc uA>~sy]H (#m3v3GU_K_taob$.ON1m,-`5mnEx$bԴ鉖/ـf+_MPe e/P}*◬܃!:y  o&gfzo,V‚> (ަf3uԚ z'2d3 )wdɧֳB]P7VOMu|T{${v=GMvpP:Q+I ޯՎy0[|ETTa"k;YVIGʕ$A?t\zyYK8w`Vyޒ FI#@30''gS%VPBSD >:;Gab%#5*þG։ǭi%ث}ac-v!q):[( kۦ:I/5 <ƭ:.k$Y;61>>#nOxylHx9m?Y`1G200`z}] kɲW_%Q^ZJW]N~$1n3>őQW xۺ~9S{nU=VwWR724ǤOaERt ċ)@w¨麙޸%;PKQC16!#nuvola/48x48/mimetypes/java_jar.pngUT `AFPQux %WwXSI)$ nIDT$X ,+CM. kwYŎ+ >EA**)̼5sΜwᆇX;`iMSq݀3|g-4fS[JC{N|J\-ؤȄ= ~`s?,!N,9` F˶ Ƿ FrZxHĢ-֣ni"6׮F 4>)4>!|wFf|2;[kN?pbcW t k mK*gm%ȯ3)PЁP]+ſ!1P;3kyW/qJ̘<<+U;Mn$Uʊ;Th0q˗ H~z5jA“.?2CGJGum <3a4- ᒒ#Ř3 +xK̒L5h*e⫪"i(x2gacq6L&}vl.7dʏ`Џ$H/ggf7;H)4Թ0!w\ `wu-/w\#ZT6+TA^-PyWz;TBN]fY1+!Jqi)P̊iSNx:k#i{m^w9K' 1tHmLUkT>%P "ѽrl?ulQsn 9h -ĥΘnT?Fd"^acIoXs/&jto2xՉ<2[Fo2 ({ZxL΃uy#}D=(ble !DFS畣T*XS-!ʣ$TlYrŶv%[A0>8πS_^ K?N tï^w  Z%"Y@V xq|vfz9kDV 0 KXB>3y<\{2>qm>qSQtƚDcJswghE6vrJ"K,+&t `4#sJ!G8f8U9* f)6i7n.,?qIPg^qef'Mmڶsܛzy[ zJWܲyrg~a!'WW(ij(bwټFdf@C- !]*m?= g LQ_}b2d[QDmrK帝fN4)bM ,v-<0H(44#u4ڕZdV҂7BS%Jy^Aϫ,^fJK(^**47FH(βTN'CژHv!8={L/YFx@UPI#"*%fv+g):{uNU' ! ;O.NE~mSMPϸQu“~@bmŭ,ör $~ KLs 0dȏ_ 5p-f&Z3Euf^"5G[Wqoc9Pu__I\q 8FjSeޙc"~}%_ Rl9gJKE9XQNRsѳlFW!QcNӧ%zjn{b.kIٺ稥mPn|NRye´[Op6+O^\RY#gh ʈ D!Wcjȩ{U ߀?AOzkE~O߀_*Vtr=27fbt%pޥ ܈n{V,fʦS1C^лYEL&wq7 V1g"MiJw~?x%xfi[^2{-g瑨Y j>2}߾}<]7v&?1\ol<`ށλ\]#yNh4boIW^:6Xo:4`9LE{䍱AV޸VW6^}ݶbȠC"DGt~( 󥸫cJ.^3 H`k6DFƵut$:N̒?×50`ry6rr)DQ&l.ϰu3 hݙl&0Ch:"?8/J/\mr5N g9#dپ"s4܊6vw&ݯI9]Ԃ 6lOMem!xlz@m4kzH],(Yʠ-Gf^`ҳt5Vl1%S#! w) ĝXGk7=cx~Fk^1?6^jtubUƐ=N{.QyRunOa2x&Pd֟1c C0^T9: I[,nzVsV9ZdOiI-Ӥ*kn&5'~)ZsCJ ٧cSա+ 0"eE|UYyKVՍ 5 VLe(d=l4ˋ'BeҮ@S"Cqڷg{xDB JIL+XSÓ}I$?6B.0I6ʰqP:cr;;.u[o,.w% Y2`ΉZj'|bt=b%qɚʬ>zf0z,BJ+/vtjN.sV$1¿WjcszȪ##/Sf = =_Ȗ;L`ppH-h(̔([D]ӫ~|̺ԕ>Ӡލ[N1..i5M;wRÇ3V(- #zlK:UHcjI3;z 굏QAuF-26T܉MN%wO~ݸLi^M=my}lƿིSNYtZEK6 KM 4mk&U-h~ZO >vDn*;?EjQugNm#| mڨGiqVR]/ۓP'}Ka~oV$P-"H`q/)|/6L* ;P 0Ax9PK MC1 (nuvola/48x48/mimetypes/karbon_karbon.pngUT `AEPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe< lIDATxb?P8=@`dddptttP222}ˇ޾}{7o^ @,,6p)((0$  >)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJq0111i쁀l9|tX+cu BA0 sLK;F&F?A%?Tؒ^~'''`C'%!b!6òV?>`Xd)N< jqA233)1EĶ8ϰ{l..N`{̍^"*2`Xv Ò N8 hǐ`#opu7w13[j#yVV`5éSGI+I Bܾu;CRu W N| I *`wBnVnٽ Vz z*@}Ш! R j 9z+Dl~f>￿3XX.ݸȰu~>>N߿!y?3HH0 :`߿:Pc  4G89E= öuI栝;2ڵ$ k(:L mP@,an2$f1k3|󕁉 fȈ,>0V _f ׮]^%: r 0 31a`ӟ@|m 12Xۚ0{_`ǰ01| ‚uLRHquud f(n^a~`1Y-Al`V;</1aB?hT oc\O" B߿g04gX3}/fQIA?s-xHG$ol\̠.8 cjBׯ_{/[ |9ĪEVPPPAS߁ lK Tt q":`+ӧ{ p`- IENDB`PKIC1m &nuvola/48x48/mimetypes/kchart_chrt.pngUT `AEPQux %iXSI$Ȑ D!"\R s@ $HAADq"bHȨ+ RT$Arz_Vn-t?bs4F+{?kw97'HM>>E'DPbbiG;b*xԷJW `K dwztWWW 6MLL>t8@hqՔ(I&lϜ*Ÿx*L_px,,4Q,-Ђü] wFMM\[!EI fSPogڛW0 6}䏛頮/^Ȩ9-nxN;vϣ2rhRs|uu^ll[), ,2I.➞8ݴ^ ސ~DDќ=-cbe>`GG"AXŖm 4=I 9[.f% !.ʥᄡeawD›[}\.z. ńCV: !րM_9*c鶉W(,4@7}ݲO@Zhe}YQ&Yՠ`+n/{goJibDŽѡUCmf2)} Xq>/KFomS\cʪ*i4*PJ>8Lj[%cQ 's̽6p.;EesdK覉b0;qyL[1LD W&,Ƅ:JJ4&j$g<+Ԛ22[Nx=!G%bcKgb|<5i:Ӝ}[MHꀿ0؎yoCuկ㓾\Mi9UoK=)f0ĜF,cev<]ߏ\B)U`d GkљP= 326C,ttzM^PlA5|֯p 5}Cbqkggh`ۧϏ U ;&]ÅCT"%wŗ[JdcJ[t+ܸJ&X.?»upoyTj]olEk-@x{\wf(< 4->+!C;N!(zg/>z?W&)\Rfr<~O/qOrԿ P9gHml'*% 7Z| ;?Jj$V2+d5qp~]<=e]+QpJőE ` sBkK.\vW=1Knqא 8Se% ߨ"`M3q\e0mG5b/~X+ ¬o9KICE#TCbݘ/ ~$5"C,[1A_)L&#WL>G6ą~/ŇZsZ=`05㫦;&YsyV!Pd- qpL#޳eշ=F%&-ڟˢ3OfU\ͲI)!\6jg`G*glNJc,YY8e.\/mWNE4u Omd[ajJĨ_F}uӆP7/leȨ"cv[q]*_Ӓ^|*.eU(7O'Hg}P g XmZ D*¶^4ŕVz֣)ָK'U6=k5N.|J?KZ*To8~]tb:_6NbK+,ҬY<@ؽ0'6{.CQY&|nfe&wFT9_)N)D *h+1f~k*:|^u,g =]ڷ5lN<&ܥEj>I2hhKP([o]Q62j.Cc 'Xm|v%8/kN8z>j&űu=i[VoBA&Թ\u9LuC@i%RK6F+jUF-?%3>Xz|JֳHzdymzZp+\|ֵǻJ7EB#b~PqҬ#X~{0ucl-TNSY)*1D*R);54Ʀ$>=[MbYYn9l^JBi1s,7-jX>i&we+BKy坎})ce:??= jV‡1y譗 iI"U;="Oz}^|LPTܶuMW{LU0 q|<˜m'd.z0C0ڥm YEv;KX5EeQ ,> wb5Lډy׭cqxɸ= 5$@r0gմ Zow Cj)1yUPOֿL6e, qyi:65rUbuKF#嶱ՓCMj׍2O?hRXQv0[~&ܗMA HZlj2U nC'܍AΜZ]]7j6^?\Sہ2V W1\Xʋ/t4Caz*o 64Ջ85,yYPtiEiz_ͰvsMCN9Lg<94*]jBmZ)AcմrG< o޶??PKFC1U0 $ 'nuvola/48x48/mimetypes/kformula_kfo.pngUT `AEPQux 5ViX' $!bV!Q" ~ " B ȎBzADT "[Hn333wdq᫵Կ3V{T ~L,7: `NQ憇qygOl!*MA&E$C</*&&fdhhbl|/xf-CӓV:2̌%%|)? OOiX&̢(k++jehntvvzfc?|^̀ wQ `p]B`=ycM~&KZWdm_*:G9o&$d aa1R%u"aA-H_f;FRJg`[;ʓt{~ch]\' p\=9V,}ޞx9[Rg5mk)l{Z/SA Rr]Bn~ [R;MαP }엧;;SN2R\4# }||π4 #u\$gR@ס bc1O\ˌled`<|} w $7c ՏăC#.qvv1U\CGol+{wmwJƢٸ~ Re^dmV7Z[ٺo غ!1اɶo#8h_y@(?dl VT` `_;\f <>ĹJG_k4"A[tKut=ƚCPl>e 7o  B=9CܼSay^u&j~ QT-ن$h"T :vBtHg<MEU]D,ŽRޗ4 z!8\ J\+FPmx78xEh]zv ‚"c0ürߎx~`@vCڊc}& ֣݁",Fv)0EIݻAt$qt ]]6b >*} 63+$X:p橮be-u6ƣ"/^MM.0bX%j:&U2eBs;7=%H$5lIbmPxU".2kxc;Fb)O3qĐ\EV4\m(RA¾thk| W =at从"k"gEO K\1y@PL;I/ߴ};)b<j1per u󡻳K/ AaqJQ^E9G hk)_!o86Wմ'O]nl>XBN#K`S`:VGe7ʍwϾGT*V @Æy|͈\<2y$6yHLb𩙙8Tϟ?s/]K 1҃Cs`p{4ak-`幇5Ssk -O1\ 0GE XO!ei ?Wd{4@;DIWJTA-7]>rB3crLϑi̎&'FFDGrR=@ߛ7{]7BqussKMIHKO%df݈_KwyWP| CA+s}V{{IHp0kym ݟBR=rO_mjjZ0פcCaE<X M3|:0yj.hJG,h)I r`O%{psdzB>>o1I8"NZ _ҡɢ(,ΈEnpFXX-cwM=oYODr,? IDEΝبTcT\W遫..]WY6`N%T"̈<:}ǭ̤mnGҟo*xCwӯDD]XzJUz|RI#.!`d?E8 ) o#=z䆲)̿\ܺ.W9S*L}î8'/@/& Y\跣/#P>&BLf!#`Ca|dY3oQ(K%m }WNa>@ rgܶ@& 1הLWŰ4pBS:[躄A@UXl_ *.J&Q^Wbw!< ;S^˓} #3.νt%u`7Hе^LOu_e?P "ˍ)u"8P?|@3Ŧ꾃܌w@ }_SF#CBYȠjrG>WQo\5o[99&{do1!;Rp׽ų< 2k߀é箼x+<1BȕW2 g B% hCt#F}99s;jp-8+M=&7tfvw=kQomuٟ` RW({{zaH 8b:gHXO0[eC`y~yxUiqݝf4͔Y_sjqxʺ!ӧP҇R7K a}I#]wYqlxw ?Vzvbyā^SoK`PoՅdm>X)||cwEc)МHIIlsM926>|z H 'g1OV礅Q)3r^&TXim FdoM5ZUFS,~$O&tOC-AoWM)w5Ltwk(hԨ ,SsK ggpjplLimna%^v b~CCa&"従B+lE`t@Z7t)m^a2Y#~ydR` `ITfoz"~iLImgh!7T\N_UQ(I.@ (]ԲZDx+П- v}`[ zq\wƌx\v\< #s;gsYYGaZ};,W LQ\t<~ǐ#ɇ >;K`=.2hՍZ{ooLED_75VbvL:T7/W #7E|i?x(# (N( ʚ#^h-+ dI B7k]LKnS5!FZ R"q &-hWMY˯ g >K>t`/dvȴa/vڳ26'6u0[vz#T!'Z%Pd[U] w@P*Za}ر&Qx,oּ qvtFrZvl705=)kt?]wkd46E6u1;)T dwB}C͜խ &!͒=l0R/߶xW}"eFq~z"n߿^gj KdaH< t{ޚjבŖi՜[ x"nj[ -d0L|%a*7aI1QKJ:/ &Neçn=BOs[S,aV78#!7)k;0Ec,ų{_prNQl=QO*X^JN?h f&ˣm)3==6ݹaɡ,MEbyͅ^?MG9/駼1 ~%jJvƌ/LmF +~O )^m!Jt`nlY#Ǡu-Ԟ>9J]δE ~Е"LD;sy_"Q?z\#{7?צ#̂-w߳;.` NUFP#UڍqA7vIp]?2 $]wX', A/P~=w :;Hw\jC^ gdX_=IJ1sµrqێPxyyOwl#u% ޽[xm+ ^I @u~ju::3)EwF.#Q4ifמn_la꓍vʢvD"#7LS:CVK?:Vu=l! Έ)?~~B'UPԕ1`*'YYYV8#yw nxa?mY"6?K{ÕX!>hEv qJ,Y{k8yېdTi|#e &qш(B+Q nPzʷo[!z<҅l}qa[C;)Uo ߀Sf GQ{5~ٷI% :;ûYVrL=YxBLIw=t7VVVM_XR-/U F {RD8d`{7=fW^Ωͣzmo  LI N(°k q"xN)!<@tev `UAlw|}^%%2W'w:jJ0sBtsЁQGx/_tK?Ȇ_5"bVek% ]=Xgg0.V|Vhr.Co' QcAwTvG 2ጣOiOKkgF i}I6^*Ņb4>ᇇ.f8w|9٦UKĉ,\*IN2-PBw`o Q02 )6bn¬&lgǝxUL;5opA;%7[ gv) I]"&!̃ >` .3s"͊-ּJ (. B,6c1ۈO=m]NądVHqVI)9=5l`b V!x {{ +RlV;.)+a.6 XηބRPXCg0F2XxVqĸrVۧf}@CWna >fC!=.%~Qulx P)^QÔ8H%iz A]3łXYկ?Т ŕvu5O<\ ='ś& =]N͗!EށP.h&fibVw1Z ,jV&"/h-7'H-yUc(ฐdl-2817QRdSXߍ).˨.'F9KNeQn9Zo CIݑE_uhynBZ [wl%Kh-H3w">`[JxB7̨mپǵ:uEfZ YGIrJek+_t!}:\Dg ߢnGw^XY0E'7=p(|? &YT;jo߾a5AZZZ4 K!Bdd\r 䄠5iDW? Jm @TOBxWMɁ  $DJJ/ "Xlpy[,jbӋ)!OjmM(p"*Sa &4 *?ћ'236@c_Ur<Dj)DIņp`\@U> t@$Ud膐RkN# |1 1}bB6)P)@,6Zd g K51  2 I !Չ+@*NB5?.V<{ `!!!xLLF$ ay&Q V;v?::zҰ Y 7n` \m+VľAWV,Drrrtuu}Z\e62DFF2FA{bR p@ b6t^^^F`˱5 A#԰Qjl!O(.; +t=BGGu<1e\"d@fDC|pM|'v8BÛ X̀P/ (%!h)')@h4vIjh|MxPmu9@poTP ??~d~o[-oo8111Zyѣ߯\r ou&@x@&@ԘS/uDQZ(h\?  ơ vVX ZIENDB`PKC143Ad"nuvola/48x48/mimetypes/koffice.pngUT x`ACPQux %{<ǿwsbV%$Ts2eHD:*u~9|gH͵:reCJl;<>|y?w~:[<;T.|r01vɏʳAgH⎸a Q#2.<}8,&*0*,2%y=Aoe Mf.7aFFF%ѱ^ ,BI_Z!&lHOVkFFFee*X6db5amǏ6K#np']E猢Ъc&Qdj P'bӧZABE9O/Tq~ Hgګp rQ ,ɪr^bq`HVLrƺ3E ƾS\P.pT(f)* Jb=;V?#6$fD t>CG@WD?y\di\M&:b0*viGyJ0S)Ha VSWMSݜ9h4akiFds+uTC 0EOi7[=nwgi[: m7,ą" hΕYv 6NV0\PDDW.p c ܡP) T:*='xeGƊs/H,sڜt.( LxMT$}Jh½Ɛ*r5 &Ň^F+oܒ#-Xҫ \ GmRw-Ie1]heOIWg 6o}N.IgC `rW*>gjňP+Y_Roi*d]bĒy眱,C%x;;ѧ7q?)ԚSE$an333'&VK844Y,QG*C+مv:ȫO3$M4?S]sӠ"4xt&*Bg>\y\YU֫kKpRYxcoARtNL'ci3--9ܚl.zeԔ WWzZVFv IPj*IP}:^! xҭ(~RM cEԫIqY&LsC7sU͎(wjkOO.U~]9wb-f۫ou%vxofY*@iCD"Z;ѵI_66ml Kh9/I~l)#"""~>5 ɫ2[~j훵4џ{2x^Mٕ's\ikˣde%S,mcTFARɠcʁ4|VG^(L2#:XS v\H>vΨA =N|ϼeK$s5qs%}kɽٯg3[UZ%._̉˘XTakGis0hVpilH<֯DZDZy1 PD^S% )Zeۀ-_ds;|<Ór^]}dCz`vczw87$[_!>Wܩ윝l ?MѨ n[`B!d)Arc>FjrpWǞu~iB nU0hB|=k. [s xQkш߄<: -̘Q5{*?B{E{826]>e.:!ڹHE516!?uh+>pAyeܯqC dn4ϼs?: wv/ jnMV._<I; %rji-PaMkhC7j}Ԙ[@$zVw&{|C7x1n5kWY]Xp{ Ee2Y\:ҒsPtɓiIp*(t`<7={L׬1 jXߠsN>e@=3pNt_ 5,EG)ygZJBnN>x z U;$(:3Pʭ|E-ru3(|GA.HEWаb5Z:)E+WV(%[MPQ호"Nr韞[(URYx#4׏O1onEu(GLSݟ^Zùhu{?Sf3v{|xZs!It'~Y|3Ѩ e;lS󀗰B PVf`,^nzllԘ%V|quCK7dCQ9G(!!L)*ZbY,4FCTTrz:4kԕW]((PB '?b/mL@t;T ;d$SҢ?ׅ%mɯ$?4Jѭ𡫑^LYgҫukӖv6Z=+W,Wz|jy׽^M!J֘< P]ubTaep7Uo.Wj粮)ik--;0g1/z}zcf;OBqE>] ff%c}4AM,, n$(90VWߌtGOjx?*,=Vm"_Ӡ6qjTЏRݕz캃p7ktJc99t@A@1{Iex{yrcfPKC1( > *nuvola/48x48/mimetypes/kpovmodeler_doc.pngUT r`AEPQux yXSMeɅ(Ȓ YIZЈ)"RWnE,IZ `V*X+?*.[O"UT([ o|9333s|'_#Ct@ n%Wgx{yP׽PR'$'/&Q$|-1i=b6BxiZJ`{;D:INJ:q<%==1.%sE=jn̅{jZd/h@I^^^~:&kK0&b/ܸ~b9y}\n ПPwWj:Rߟl7Iy*}^)7ovKvTZOM׏!r-;m;=9;H 8A_' @) rAs9t?W+K Huˀ92EbcwiOdn{MoQ*v7q|Cӫ~Ds$Z=gl%zWζgiLȆTv Jz}r%ҧ .dHȞUO{fzxam%3=nՠkS_`Q߯p{I ( kqݖ'TUI~4/u n_ Wnay7õp}Q{EK,|7حx@|&O0ѧ>7GᇚXmД~䶶~wme9H4io^>7DdIe3և=+¸gSRQI1-s9*`6Y |Xqپ Y'Rlf([Yvl`0j[9#g}H[#rumzJ~ZnU% \i-(&m5}Hu,̲^s#m7 9^ΎW}vnX6_ԚrzA^Zע9ZM57-÷gK'xV[>b11SNb].qH\^h6*]#ȖZ(maIO.Z+>!Ȋp tUo|isvY;D%QP-ZL[E" -PhjdBnr)pǃvIJ-msRLXBp0mLYrV=cْhnB.zģ]rŊہWU'~RA:r=幉ㄴNMc]uyH0pۖ13P=BWI}tAŷs cJNJ FqnD;47+P,J ;vϑ^} Ebz8IkȂbZf?Y3<$5Ll ֏i(Nه╋9#Z]I8~:;cEi_ mkc;3;gҴ?ʯ>;[/olvO+q6𸭅#141JU=\s$wssIңE^R!"mgTxJ,A jq}I;CFC8YX[ }wTYfۧ,5шA\%/Oyc30lDɝ٦LCEo׳r_~)so  2 &ڮ43mi^ӱ>\$EO]|f[ }xkiA;dLөy¥vri="Kyžx`$DnaҬȈz&<<.E`spq֢f`pvF9xAl-(#Cfr4@. t[ " 04A^>ɪh^/wLB#LX_e _aXaV]\QOWUiL.sxh7b8B/hvs9hޭJq5R c۵֊2#7t$7??7ݣu!@+PC0 -!C1C;Cl6 AJWzqQT ̻ѭK1W*ŀ"2[Tх`Ɵi/wpm',; ?;ZōvI% 2xMpX[|b"l9³,~T*>%fpFpM费aLMn/Zѐd)G@X{v|hB77ē#o;7(-&|M_TA?E#PEr\`%QȞ=[B{ρJե [NЧSн5`O׸qC*@g5TbI[h r}4B yQ#S.sgsWIR$"t РhPKC1pQp )nuvola/48x48/mimetypes/kpresenter_kpr.pngUT l`ACPQux W}8kmŏ aI:dRv#mN9%aĒ2Sb:8یPD{ :/7v7jK 3,.1b[0d{W x 3禺m4;gA_նuZQ<1 PQ[2En"dng%vq鴲om_:m 1`pL2/TYÍPDq"N˵GY֖m(JGi'.[{^^띆HSX.l4S`,}zjfJ@ˬfEjtx3we:Ihg$?g^Swf/4]}Y/7lYĬMs\'xTSl;ujl8]J$r=9=i!TX3G+m-beC[fO+G~J d?2i '/85f5:yh]j~WkB-tY!o˻=|P}^=cIg$Mr#9P)!u# 'K7i(Xpt@AcDU˩b1|_)y#YY)ⓛK+TO'P2 WzYPS~(Z06G+bNjT|AdsT!GcSQ VXFlB#TΫCjZl|֋ʑR(Bwb| 41pLv;%57O2s. ,[b(;LeG,D|WJfɟVk^&Ðܕq|7el%ũ 9|ձvRsl^5@޷yM-_׬Aܾ2tQI ;3:i~T XcmZT1^s & \z)>`㛙$QoGvO9j%c gx-OkyR*> 4>ac;tiH=Ƌo^ "vNixJ7FIUzԫ{) zòjϙy./IH|@?r%D K}&Xq?!T۵xfa9Jvn\%^%49;|c1&' ]S1Sz w7+?e@ǹ}&v4|yOZbn8_`q~' oYͅՂw(T$'CHɧNmkLo15gta'_l>@`!'6>6_4a5?0,qJyС {q$ƣe7싏 KbMZ!1KaqAx&h*Yb< ;ɥ 2 'Ze='n ó}+E8c&yqU|WU9+PJm /׀? /ϟTI7sPQ+$ەD13$_5:}lI=Sے.߼i4pՌ;+gϞG~R)0޾>GNsI?&s9?ˎYH$fýEC\*{{@?"U]DDqdDEyȲj,> 7~5wů/f<~/~,W3 J!V0*p;ŇjS 3ؠh>· ndPK C1hh)nuvola/48x48/mimetypes/krec_fileempty.pngUT b`AEPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?P0@ 02228:::qpptrsskc@:_~۷oO~K/X 888X*))m.))RPP`/IR;I2333<|Ǐ @T<@( @ݢBL 5S9h_}/"J)o"b%aι*d c@ "ZfF^ugL@1. yd!,:M:|jizAVV ( H @adb`H2b_!V6>>cqb6@PHT@ z:ǣ# 3%Q1@q<JD"+hb"5 %/b).)I%!b!F#%!JQbW@%l OJrÖ4O'@DR)D4Ol)@$H6F5Zy!/pԶ= ln 6 =^BDQ &!jaKBBJC҆J =j^B Ih JB(l1@Tj5HDfrUczHl G%hI- y 2.Di s@1lu'E/@UҲM.B@1;Ra–bt0$\@;ÒD D(39ĄkTbJR@=CCn_ KP; zI|9?xAUUϟ?sS4k 7} C1~6??{ٲe`Fș&V-: @4hj;#Ru 222|آӧM=3-g c.{ǭ#+Kkзm~noo0׭݈4Uq` pD,0ov]s!r1LX!9}'N7ބ>-uѯ~%|!,>oK*ܿߖg.O,3ӯ1 /]b+U*\DL A`iAchGz-o?ѠG4Yz"?!> 69j56&ɧS㮑|37}ÂshxG>VYU՗'nVr2KE}e>WE0zf$GR+(m%4R 1~yJJFz:PEL G\i1-]hVC^CH5"}`1nf {@<~nݪ}.={el 16hُYrJ^w܇wNMD(4H?¥i*ַa .B)d6 @o$HxIM(9W, mϦ8q0FЍI(a9wK7&8HvVA|v0+<IZ,V0d:b@?)2/u!X;+d/#ʊT+H\ch6IqnJ)tKq8֯{JY7hrrD"! B0r^ojZUbe(OzDۤmko=xU9?W<0:xdrtƀ6_!N jX7n di6\J[;><_Q$#_>3qN#_ p qzGiI$|5%\mRu/O| o<,mubJ4 `GPi+FDAxKuΛ]׼} ]s>KMS7"!^$VBeĽ$8 ?#rQ!RDſB;q]gg Fb40'JWNEb,"$g *xX^|ョޑa 65C:ȣAiFXQ;d3$ FW{2Vb(2?ſxBpoe֠?+HWUb6$JPr>gs*G!Dn>W(;DVw{NMc;NGWɩ8;wRg)Y[[][;W ͮYͲs[DOIvC[8ģd2:-_[AOѦ%M_/}!&vd€I $GE9(Y/S̼Ź.hVP=\%N<$AnU?hs 1.nX `y[FLʜX5; K#$)))nyxlNrQۂLtܽEg%4:"^)H\c7󨠰Bo*c2ufb0 )m*th[e[G<v:H,0PrTUhr4eBjfx|iOr.؄?J&O8h4+fkgs NHӉ>N6%z%zn-'i#fdihcOCf^N_kNzfFiS&w#mjr8hggY]iPᡩڥ|Շv*#;$N\!jV=Qk~8tm9Y}A$)HL9-)<<],h#ha~\ڄudJ2dzo7<6Qzg*+@>bRP%;;!IvsQKpqĬ~\ s7"i]pkFj`_ jQZ('ܟĮ鳪9?;W]aD4XXXxV⌈'9%2N}B344=6ECi?6y ܫMFV7(IXj -AxS/Fl WMWt/*d>Y˩D_tCBGP,ģY)/L}Qdl[n׏PKC1LX'nuvola/48x48/mimetypes/krec_filerec.pngUT Z`AEPQux V{\}6JVm4+V󔺷 Pr֖^=n~0\'&{\8ȭ3j?d_)fUU>c*%)wU2E;Taӷ%Dq2;<4u3"Kr.r?:22DJY{hX͉4\iYLry z46Bbxn׭#YH'`PADnsҢt] iZ;}:X.t-ޙه0.ԴD 7k$Z l1 ;ILRi~tҏ4 {OdTiIq[EǛ*ȟ|Q?~뤳Yh/jqWƹV*hWfg: dhrgGwF]* ^Үx}ȋ^K_lBBhUH oB#Pf^+nڇ)o740ս}c cWb3<ޜ*Zn7=j[ZPQAz~BHXW1v 9=4Sj 3iEBx?aB{ rp*1sGe<.D`[KƈL7UbCLs9A8w݂?ܿ+޽3$RUb"(A>ie]~r@ww S,*v]ABLk-PðɹIo`ՂtJ/[d̶yOMûdj͸#Z jDit &ʀZbX1}VOkR #\<31r*aS^XI Pֲ7EtfU|`? CI{=T((^ɭrw9f5%}YN$tzpx)S $#`ȈjW عlx ޅsD /<ӏ!`X4A/͡zW10 ނ*c3-^k-\9TBZ􅄄@w~4II "\(^a+%6ǵ: 7Q^Ѝ&)XOb? h1$PZ&1):,BC, ӭ=^JkIQ$uFL,^nQ8x0741~{ban;Vgr3{Wsl]zYRJZ 7>MuEqE1M L]\d%dø,uGu9rI;FwFI|8Yw&<"RswfPjQJ6}ʳBmܸg9K3cF@ZmÝB!@hȪK|PKC1d$nuvola/48x48/mimetypes/krita_kra.pngUT J`AEPQux W{'ډ^[[J=w-D˖a{;@2Q{R{Kr#LS?UG$zy?0V"p3|=SLpɉQm1RTiƄNգp!50!y 'BrӔo?`߻t@Ll^P1 LR:Ef/eWd;l%P'^YN{ܞ) sʙҺPMv nuրF#Qy">뒞+MvzKrIXx A`D15}IM-f Fea.u։ψpigx% ŖSڣw^b~2QCMj}\m{f`߸XD07 i=}R! (Ps<*+*+4W nxi gS'j6 NFt&Ue l{IK#pH3࢞-u"gρj6?OVfӤO2e?^H5O4 ]4@R4 Yؓ4&ﳮRH׬!%6,:K++KWٽȏ}.w3]13XV7=icuڏL IJ ¢tBf]yIpZX$mhjzgo.fӷ\RI~&[eYo._.tDo";Y$.3>OED&]L=6ARjA}n=E:v–T-lPn|,; a;%')3ok9]Om|x^bmM񊭰Z~r$}؛f8hA] Ć\=06E*PEW/KE- L,jni=ֶEL+} 7Aga@c&քȳ`S]dG]7I3%ePd^k׮e$MЦC0B_w-,1 HA@'ɺKcez*{cSϽlz(eF/.4LbUxk=vaiW_p[<"i}8hVBPX'юkIʑެS+R6%^~\'_H*G7#?1J- F}Jf 'R〴n!kޮ{eDʪfEȢbA{,jGqlr׉\>0CE81MD!%HC"x@=%P)UNMZspƄPG#X6 6{Q"gY{2Ng?x&SPF( 7a/q~B$a4np>- AmUBPK4Mw\]*(ߒ ' qpWA" $m.rά ;^ =q>l@RdR٥mJrԭ̑w~ʕ O^twQ=yVdb~'U O_@sDcBL|X i/ ]`fl_JK {x @2 @pSNbA #{~䕉JEi ɺ0!" mKUPZ˺$CHh+7iLx}ag@B|@d˦Ì{X[ w1 ##\ĕ2!W}$ ="-JEP-yuQT Ɉ˓ <;Ys dVoqJHj)Ҕ43x7rkS@!#*歹db~T##>it^Yk*kHhHJe*%wzE!& %փRh VYHr*MMuaV).V*?" :#B0Ea/ٮH5AwpgTB"]pԤwipX]BT+M!9M$=9FH>4l1;ߡ\W;pu!$b%Z=bK.䓭Hd{N4V9`Hv+ I-kTF܅uE"Q\v{5NMOKd;94UCm.`p0>AQ$6b) ’9ϛP&HɆZYU_%k. %ͬdJud6i\l=EamumF+]ZIfoIyԞщIu'ċdKQyr; T[ѥK8dy$:|t lcJ3z}ƅ,|/_񋫍;Z^xf]re״Ǣ6?p8aT@otn}JvW{+vGW+W3p5l9/E:^l Qҳ mEh 0a:N*+h^c.B!}N5gÿ7kZ2Oo{/=kc)lpxÄ* ! N^{EtEȶ"jzN V z b-Nr_P[AAs(Eeyz@^^^c~K@zJ2M'_I7qy2/Vx"yQ7߳Ra$KsjCk[Ծ fxǛ#0#'3fY~2I=ޞiiSscK%(P@GM>W456ShU@w9d ,57S cK_P3YTy╔٪+pڊ",Ź;(ZlUlZFh_CY Kq[FgVt=c*MC.̤hCyJpl$Ϫ]$_?'BdЀLIvtu(#̖b{^- SkLqܺ, qڠM[ 0 wU?P-ygtp<{5m^34C_ju2ytj a8EhY`#fXґ_"}c.ƂGIx?zQH)td;~" 7-MHM\;G Ei&G^"5lO뤊=ʱ+ bo rJ0m{)#3Q\ۧMEJ<@/]\P(U#(rv؆: `[zRfpL|&l (+s5x0yjҝ`CrXmƂ{8D{B/?@ ,:9<% Y*?:?wq3$ZrcP9WO~pxVEZ蟛tf|jQf`v6b=0w,w|O':2R\0pk{+窴p%cQ2":Z c38]#'&SڑB;A NPQ٦{;GQM(BԚҘxoXaP-<ޒ8ѴZgd Yeb]R0Ԃ|n:\OI- ׅݴ]LмZ6`lE JwOiX>IRNE=\NWk2Lؘf_h \9H'KōH 8mZfF}_َ\9.@4͐]_3l*_a|w&$-,p%`om,K^lhHA>!>~s&h(tHT'Vl8Y4mhaEn4?؛؉^V($E+tR^'֓]Y EЪ240.L`xJD;0}Щwp'ʌʆ[r%##URMxG|==xޚD5`!g4b`o팑O{e#R)}G ¿tH3_e:_ɻ1+hjKFՍdoAE=E (kj訔;lCxElaױct> sxS\ P{ȑC?_LMi:Eٹc<_9\J'Ďꄯר̓|yܠϋ JƺRM){IC!3yjLl6>uuꛖ;|1K:z^Uo[7tm\_%nbxIE?'C~6 jv 7zarb`J!*?hUY+LT#dps%0448};/1y}zbU"g ZKz[TsOgd`H?Ij_< N&i۶I;;KT9¹( I#L69fds tg/)|MПed)0Q"8 AȐ8[g9goo١! 18pSv];! =`.Դz׭G<}hR8+H+H9 $R`7,5oAeC!DoqJ#:9x#p~yt*{ [&unTE>`WGǃz~-puL囪.j%ƐC eؠD}j,W,'~ jy4{hL쩪,Ͷ~[^خk>gS@džf֔Ca`]]DALg> "433hua^ɘ x&&UkICYz%sL lc M"ZJ.MK0+SbhZOpma/0og$q_ssl ˜NsOo4A{*EsDQ}a一PϞpّ(JdP?Yv1F?O1R] [ZGN@dM;101ʙ=EaMuArF[؁F@-1p#z;z{A mRDiz-Ͼ>K/zͻ K"x7d"z!E/:&$ uu}^+eiQp}W-3&;A,FS|Peko =+4l&Y=:_1{&gyokw5ќi'wIiL P0#_IȐ-p)"8=/1u3|i3lI5; ,}Ħ$ǡ+LwR4oUlv ֢CCoftWAA<ڦ ۡ.B ϡ&`+x3BG1f ˒i%WM6M哥q㗃y#|7|trZ! #"(Hqܟ9=MUj%6\#JZۯM%_ݾ.R7@T]j)@dEiƉjS4OU֣ 1ͯ^Q d a~BVo4 ۞<|>,j,a:g);_3o7>Í8s~iM-shDZ.)H.e4b8K=d]Nѽ63{|ׯa=#aŧDRX ouMZLHGTL8ȑϦju`582Jg<ާ$/|1?(ecGA}B< V~r\8u&$6n?ECsU7~Sc L x[)["3$,u~% ڀHߞ5{bHW|tHjIg,Ec=. ׊uznҡnl8q2zʢF`l.*6-yTFZmlDr/e'15nIOaj7 >'SK+/{ Z-ӿgznK1KJl"{F5 :_V*-?^~no8MQ`+ dNP9rh94[]6ͥ޽\J̦Fds6'p3^)@/(zP6m*\i!9{.߈('Rs.pXr&81kzhQ+Ɔ`˳k*Q*Q֫{GNanGg\]l~b6j^0Tfk 8UȈ~/P&HIW"!R@4Z+1[1+ls+I"$!Er '?oW?;!6z"٩|uIRݧ{@}+Tg(B#yPe!yߣfؤEbRW\+1yrX>|t׀MϮ--U6dէ @9-J܋e(o`rh4lQ4e`Xɛ| <.*Lgg};[K/xMzhORVJLb#EHbW=S"CBb^8HxB<'\θb=7מqtwb(y}倩G}r40MF{ܥ%[6B d*UJD1B84HG,m00Ym5貺kmjv0 aG[P } [96q%?1Kٸr w8h+\<_eC;]졚X2Ts}9'DQY-[Hz|B9O~EJReA(dDGccOӬu5;-J_$ sj_pfgeO۸𵅶z%ePZLM 0 s/V5,7;o_ip.LxCj&V:|R<`"狐_C_o&uA=9| eLsD~ҧ!rŰODTfBe˳g0J{2U%V(b16=YZ.&Ց`HÐ2ݰsa3'hy?e-fSC/+{ӤQ~\#ELNDuW=o5ǔݬh%9V<(Þ&gj2^ć#Yy 4"{0a.@lō܂ Ҩ"Rj+xŸfŧm-xVS[ ;_:F&m6iXjttឮ8,(H$ }Ptni= pFm*`I^\q%M%OU'vr+Uڀb7mJRP e_Hmo8ׂdd`R+3Ҋ$~OEF,eQ] ,>7>"w`ՏޤB RMdHBkύ~@]r=?dF][e; ~^8zgUx?!y"cҒ ZZwpaйQ t1>Vndۮ?jS3y/l^zs<K,}CRb۔Laͦ[8bsֻϗm;P ڈ&#C=8>-~9p^yʢcP)QST 4Zb^:Õ6v7K QgL7.$z$PKC1z9y $nuvola/48x48/mimetypes/kugardata.pngUT `ADPQux {8i13x53&P"s %ˌT&ǐ&Y^v}j23fF*e:i*jR+FmK:0jixy~マn73Ya+0 B/)_ 0n/wz/;7!+`rɬN~fOX̨DNNJ'\Rh4FoǒG%M0vum JE fJwC 6n^ⒶEYY4:UzʕM(TU2؞ !xu?cpٳBJܔ:_4DxwˇtG_%9EI)dmqWsIy|!ycL9Ů!׼˿à Ub5 &EH$"l+m72%cFa??, 0챎jftvdrw̓'Kؕ(TFLnɱ|qJnU&kF'֡eKKKeڟjpM#SOǽW7@3f0[ :c1esoYX lqKt:o2^!"{ t3؇v ,ˏ3’xgQŏ2,/OPy*2Prfi3:SSu)?7V eg "VOxuٞOŵmdռ=Y5A WosRQJ+ $NyH/E57-Z.m{8Aƒd^K| 9+|QrJWuwy>uHP`$)Em({UscV)HX77 ~JϚ"^jT'J@%-L`CZ F mFP=H`4*M~*.P՚{1#^UltAҶ\zSϷ'QLG_ʽ@S05>oq|,`ao]l >FrxGN^ Vȣf`(. +P I\~##1rgtr+@#"BLym%_V:UKŊu&ƁE¢ݛSF #މ=ntj%{ss2HtO>0Eom;rav.ugY}ahP77HWWW<^C%nF=^K'7 ՑW-pG"icQNJFW? ptnkurg^shwV{)JƷpXcLa'(NUWDq Ja{NQ:s`ǝ^cD1ARfH 10{6R\|j Ru (e:#rtJD8c텰T@H9C~?@`[ BY4(b :R™UMv*{*7 W ūe>ғsNW1.thp/y !..,;zdS7/诳WVP:#|2N+ً|r~φShCʻx̭h˗GXVPpppiXfmq\xb+EجC>R)m*1j09`ךS{ȭ^$H!qt{Ɖ6̘2 D[n+Okkh5PKC1,KĈ $nuvola/48x48/mimetypes/kword_kwd.pngUT `ADPQux -wXSٺwa6$`HU)Jx$"2f%rTTH4)JSР(`Ae@H9m8Boc[ϻ~ޕdlm%_v߇NA7カGғ~NJahxv)$%vF>$'O")!T*pGlDP(?~Ùz'o3dQE]_=.Vӻ0$i&szgшpfa=2bs紦i/1`m>R=}ZΤX=Tlb'sgvB?۱8f/[~-շ7x:]H鰞 v.pITȻ @їO-D { 5蓄i׏SNSQ+gV TTP($l<:=vv%L8v W)"fnll,ra'_Fqr&n5̘C` ƱG@>=զ~]t(rN\T7MW28tmFL*YVfQ0Nm:vI;򮧦\Eox 9ܲa gbCƗ0lHu]u".P  )o|%ki؁&vSGˡ7z#e_SQLRaKf ;J;g5'h^AQ#AnC>_vCtl_C+Aظ^zݢ19jz F!<ţur~N@[tr赵OF.PBX8ñӡ4It|wN˟ERWx1K>&f "O4o'joΎnh+wnvoFIU-mm?.`ϗ{F2 Ҵ[]|*=@f'hfQ0Av/E8u3Yg)Quf6@ǫ"$@!,u,r&@N)ppST#s:F1(.M+;WT̞<f6٬EWqD䎎drbgCQFBft1t P+Iif]U2D6ƉK4a>BKF^At>"DʛKhEhmy+E ]Y]R^ Axꎦ\U^RFmBocT?ɩ)sэ6aq?bO>A|Qִ×QЋ2RRji4:; Y\+vȺbkh爓-b_Mv~ׄK͜Mm /;|`x<zBE9Ok_C#3W{N[2w[KpcI!?:ҰjI>Ïz'*zN WxrxS';>`w[6!bK<{Uy[BQyh { · Umk#@) Cd0|lRjszmSȞ4ckY<*xϫ.*Na%aIǥyH)!U4@k3Kh3XywRFUZoHO?̚B$Ŕ0^ݥ^E0qFb-uJ1"$1ɹɟR m&Rӧz+)%mCUR%v.E'eB_5OFRMY &QԼ`i YRLf*#rɭWRy7 .mYjQ. =7:\Q Nx9i1L_]J]xy bߕ) *t/Ef.Gk4:pL_ sިܪ9GHDRΐXu.Ƌ@T`&Zę/6S:K"[G>̔_\톦)y 9[8#sUYmU%â\Z3̵K9ޫ*&;&P)dQ&`"Ko•m̈́2$Uz0&B˙tn֓7G[}0 gtū66?%e8W6 ]de֢;n*)> V>^d:K@+vQ9h+y^`=9vT'|`ܔ{ t'6nL`2(nn!۲w<4{ɰDNf‹,a*b@d4_+sej~Z*:" --8N?qR~X{Y(zS!;$xGC 3(MR~wڞ@2T zc%뉎:o"UAG~@*3W?54IodJ{)V,CS߉}ؤhr)(/ .zkn1dhKo 0ҿӠik٢~,mMr?J|S|ne}OArC7@8,㡋c*#'f.$+/ța o=0^!oĢ%[켹&7 Vyf9=}ҶmCݵk\.WdW]g&A8.)ֳY&zd0nB^![g PKڌC1e nuvola/48x48/mimetypes/log.pngUT  `ADPQux iTSonF hD VDYQĨ$!A reAIQCpA& U"  Rd&9{?{}2=d\]}4{/8wRp<j݊Ӽѻ?>.<ćELpapOP{-VvuƼ-Ӵqa#X,˕ãvoetI*Co.!KԤ~-\o```^o]ԔPdBix2?mX|w*^a Hss^42i܇JnO.&|*7+}K_u<^DE'k-I_Iϝ1_p4'޽dQoT,ϳSRAnAA\Pd,3q=F@ ˺cr]RG!bz(!RɆ9TTE$ssm\[6Sɣq~{e[~d GyW$-\Ψ34qsSX6 [F,MW%<ʣq |6QꡄmvqMhѧR@do%ku@{%;Lby$p>:o-cG"q^ui_ڈ\0[Y#eSuЂڥz1jLpW )U|ܛV?ci{7~<**LpLBvs7TW$q6mm3IA›i]-9Hފ.pƗ,laCʰ]O?Qaל6j&тL>дpp>m+n(,2f˯?evtrr) b ϼM}kC-@(g/i]=-${ĂՈ/=NФ6-=0Y&{r8[Fb_./|F^))i9❖XCTy9 1K$❛B9vT tAOR ^^e87Sp\a,ƔUjGL086\4g < (#b-hzS3"X,«{:KUwHWcQyq>(̫e;PU(6º66ļ4& Չi!/2Z@Z&CbN*8z|pQ̍.4aHDYk|^ugZt1yyXSտj71jP0sy7`*| nmirU@0E$FB&`dog@(YW6PTҘ"f6<R(r\"{jI3 -ZaeE$['HNZW5.Ud,vDz"0q/qDuy1bu7DT4P65j(ڤOJRwڡ;(zE=(ڡuedX16ưV@Se)YYTET6qc1v Ӟ3Vm Lx2E8ڟ&7ȃgkr!~P"+i+qDvv-qJbYzti+wX˗oΦ'Vų'׍aL AzFS_IAȨF?w65ѩ#zC'riXBLl:tZ]EE(["v_YkK8&PhaЬzUv̋1?؂7@ȲU#(mXO[#8|AB,*` c V5JN^(-y2WQ sλ[-c UgAӟlLSB)G|`fnF-GaN.Dk` m%Iwgn=S!NKJ] \C3A,RU]\8<[yn+MI~NZď+B}0.Q&Oc9(hfީz|3gP|N"zW$!G1vsYELK&&3/q8VbNMzo/!~K~^E X].ZŔF0n/_$˺#m;bWg;&wؠ1%/6+mU7}|af̿6AFC07`WE/ ãxkn>ڷhPGbQ AY&͇~QA>K$1ܵfߋG8u b^ $ *qnX }R>%/[A"-p%z[!+ c3W1IƇH)\*Bc&ӱrĿPK׌C1lw~  nuvola/48x48/mimetypes/make.pngUT `ADPQux {8iǟgÌ3hLYhft0&f=&TJ09瘑ZԶ[=uxm3i6ʖbm4J¼}?w~7GkD&`/DsLK;>61)D 0FDE'oa3 :G) `^oʅHtttBbb LF@dXi;Q,O;#[L߈uu*/+,Ʋ]]]n?8.N`}AC](T =,~cPuڀ M^vCp|Uv $c:^Ls\3+ qeq9ZϦgpP?w>?O4DCcj5|3Hcܝt@jU4Lۨ÷XIuersĐnI{믪Sڳw3L6U!X(bf9YYheJ墥DOWHbd/M(o'7kfF7k y9 s>pK/z&Z֦8,TBvyw즞} Qҧ{J5+b.HNOP d}4p9->U/]"53<׷D]-l^O98SBᲙjȓX=>>-WG9chP}wKP8m=49ԥXuV"R;4gL&f?.~#@{p^rF'mǩ *51Cx-APiR5V$ZŅQ {C:(?k__#N1(u#x{}#M{՗;vZJ+3U{qs*v[.NKv+'jB,^,Mp]\ gCNWBM(ݖeqØ[TzJǮ[CTi:^q5xO}>vb`"ۧjַ{k{- =>}i_ b:o9o'mm Dj?"q+_t1cs=MMHPqxu`Rf%oa-zkrؕK;vkҥ뢸_Gȸc*zSX"ߨNCbNy8-iIqHLG2W;όns f ѮYI)J(Ą'==NUnAu72"WKa4f{;X{OVhiiBXGwG#Iy<ꁩujtyH XQ;(%(3 I2 7QzcUR%=-yX?O:4vVr(=vJoC 9rĸwT?:;5ڙ$'=z bP?RnHwm | vJAk1*5C7/l¨oG 5~a%&E\PUoRNB\ b|zc㈄ڤwtWsR\Há}esDh?W+?E P6gOmmۿ0Sus!IPҀWAո%GSV%P0l-h+ZޫyߥTvH+:!h-( &C `ŊI5;  ch`7x)GG)0fYmyloT4l&\\ Ѻr" dR9ڷּVj_QNwm4U㥸њ%ŵXIIHGDп%o)fK/!@?(#H֏{ 9 o ú!=mWM"c%8fMYn^9ͱ*K''+M\~tpX<@y89UAJBTb?{ 43ͮz{D֧rM7GrSٱڤOƍ*i^2XT)[p=63Ƣ~mv˓FLm=',f*q͂fwJ ݕ4Z[,,M=iJ 9 =?6 4X?I}jukʹ󾔖4i(q5u"=ҐF\Q.g[]`:1MET;*X0}r/dt{GP~$-z{mlt:La?xF?ŵ/AO1"G 쐜pOjxNHل*YU<)jp?fXI%scu1ҧBPXtB$4pdE,+?Մh7WmI KaeY{Κeb BˑmpZj嶾@_KpSegצZL72(|&GazXDTP0]\\EǴK9H0$%6RQU]w(La #NXC' =]B۱8o ܺp/R7<1cUo^fT샘-|MHc[!THUhIʢPn1VU7S}KcBv-%EBc.}~u٢a27Ԑy/|6STQSQ7:N;3:D|pL@eDἎ  f:2m^n] !KKd59s01`0O8I"<2 d" sm&zCuɉJ ZͨMaACqAn~AQF߾Y-Lg»)-8_g0'aw<ϭhڅ6+MhJu\I8Ƌϋ=ތN̬%d=e]H,vr&Y >lco2m5ɿ.0Hg $Rq>y P5&͠vzOؖApN6L?̣ePWrC'1XkmXbo]bHjҦxvp=DQg5ADؽ>O,ѧ+V@kxP,$k{_V!ҲY͛9TIX* pa9,+Z4c]A ZОj~{zys "0ᒗ qd7ׄT7复&oM|-ދW"b!lN`X*gmQX-c<;!i:+EBv/xz}#!)e+3PeZ:qF:H6e+R\?=`DN1R>55%S!Qj8= +6]N[&xOVX̳c~Ic2jA]$D ZӎZj.}{u|RiLZ &׋zJA$rwPJQ&YLEXDuwW5΢•7r5,;D:D`:+1B$f"sM Qڜ8ΝgrS;J_8X͙\ѣ|uUT,خܤKs]dvBoy5~g3ΦvRSymyσNY"rNwdc _EoՍHbL)toSyʞwjv!깹c2:WY rd^y'h.1@ٿaD5 X<)ܛ7o2rjD_/TA|򬰡tg:a2c!<`nD+֓6Śu$8] >@Xhr_yuX@ g hguCAsT銴?~:DGjۆQݸe, ,G Su I4y$2:M5JJ@oLGp 1!s 1m+>aTnVkM`K Iv;X4]ΣsZȂMX >jʢAWfոO׃ փ y}ce%zP:ށAq'Q^\ɜi5>TՇb.ƞO9,z4l,y∈>Qr͔3,r3LT P*L>bO_ wEG_D:aA\k_cLum [+rRu|tp~+ 4br̾},\HBg~Uh jZh̛v="?Cv7/j-hX=8^B~s7o)}Ef"3# #Xc)M[XLCAO4^G17v_\Yy"f*W=#qx<$qȪd& m!We__FO!Dt k]KT5~ Lm\E*YwK-pjCMh -;A`UskePJSRhBEh؋Ξ݄^ %ܕt2V/X~aN]C_ޣ72S--&'/\{*7`{ m GC, Yw j199֢b1(a=A{ .LZGRZ(XxV(8Tv1Z`~hic5q礆A/5ƥ[B KߒxϗV! ڏhzBFYp L$7 a^WkZ7&QѮ٣G+i_Db~tcQ,>5XcRG`՜a*,[qjb?5:ߏ^+r8%խmɄ{QjJ S\]- ERS.,ֆ%]+zJPf[%}+kDŐaBش/_Ts&dPw<'mL8J=$+s̵t9GS[YLZ *Jx8>a)?;%X\B>i^_(?()8'"ۚN>ڥ@٠cSD< e7ST"ʼnĨ![$)LDAԦg5?oF{N$=_W3HI%t7T6p7Ө҆KT M~~qhD82nO5T*NqrR#J&U>4x~x E7p hs-ZbZc0&{G87ͱ"onULG%(B6Rgp*"bď/ CEߺ ̀ZcӑZ`*x7zVn"{9+;a-`wWlk5 }wvvvqDCU[(nT*,+EQ  #/*ɻpA*qh[zDv{"}Q魣tJ4Ԥ&#]hϨIHkĈˏ(xS5jSoDv2ܥԴw& @gAsP(;ݘ1K*ơ5?. p###~44-N!mN35詊0}aLRхM?ROF =\vSv\H?qhr~?9A5|<`#݂D~>+>DY3y%xuv͓i aR AԦ h&$[ov5훷>4O8n))x'TK[-yٯMD؞i0.Une1IH#ʒ|ژ\$jmӉid"\n-J)_ 5P@ 1mL"y:zhj J2V +-b&dP$^kK.-qv~vpՍrE߿c*H%TT+UqrwnG [l'jjeX(0)I+xw˥Y8b.D0ZiRp·C`! *Jv_0AMҾ_7rJg@'|\^|[7HO64=L+jo鎽F mkuUJl8 'x~fMWB |SOP+"ܮ.Cꃂr ~3ӽ4S 4ێGJWnA D=|]ZAA{:Ab5} kyYا@Fł,𤝒7:>wmD2h 9On3VR!w2 }>ɞ?d 6Kn[]hk*颙H\-5do03ky]u7ih tLKT-U;;2V`1A=-!Q,e- <'ŽT2byÜt3a  a ,E&Q}chjĸU}(w%!=d/',uË o]P-3e$&/FJ*y(Vz#H7sݡg0ڪBaĕz(; i/17^rWǀǟZIsrr@rD.g/wI< g}dV,C^hdk`5KMۜLߗJ]5@ũ|ϻ\t=JEo缙 Fh`?QXs),0@Cm'U(Yޓf|FU2)& x L$>@-lD} c. r9W8D*ֿΗ0>УQBK3 :H *SZB~I9|sP_S9aܜ^5 $o/;\A/~ZZ#5nZDlc3o ד~lؠ84BDMcY[o0/4I3w aK{bŸ\d B!+]pR%Ma۝&Z;AG^3ű^gq0T#bM;2\EW4_pd^utGgVpA5=IR:VGj4WV(rU@i|ok{ ܾNMgn8l(2 i!PQ jR%C&D>6e MĴp@IWSliHsH>_U4 8$d^L /(}-־N5ܻ@PNzc𐿒RynX[Mܗ~t*ʓ ܷtg14zhb곥Y!tm]6MHRSMԥrFWM %V e Au - IqX !R}b+rI=ѿaB*IhK o5KԋYŢDIOj=p|;[]a|S*rE ƕĵ%)`$n?0>RCYl¿tTPɨybѶ@V쐞>2x }yRB?mAuK yp=(s[ F' +6p;iuX?p ՗б#G<"8NO'pЩȄfً>e%n0,rT5Ίٟ<+fh j3SDU"Ք׷[4TX; ^{olj"^ =l }J}Y,.tu-[2%қq9 T\ &6]{101\S L=GBvt9"t\9aDi8rƃ.ic&.LI2Й]!!#{롪*5 &=f~ON,Zt-z/gxƐ=7hh#Ԗ *{8()9AtDuR*X讇p*ʱKz5i-h+6tMg[Jl IȻn|6"vxVM܄Lnn-VP?% fŭ7 ZJDeteN*/\Sȼ HnڥKJmy.=c&jQjTO,o&oH~jaf!XkUB NQx+}ў\w\tl;a&$0`I$cf#fv}KѩktَVb*"g!E˚}i/Ůbl,Ҹ}j jWJS6輼fB:{ZR [O߭'?AybqpZZ>ŝ{18ܹsK|?c8UQ$@b'dςEF.wfҟ.99Kv455IF/{8[/glݠc׺1sk0q*{bxypIا3-i}H}IQO/";$4Fj:^`*#'Wn @ LJJ\cOaXg' ̍><=:vi_񈨺Sʵ4133?wnUs¥ LErܽoӧ6p`'#72 *Ѡ6V ؚ@}`pRK;ϧ/t$z %|Sg;nKͮbh?h޻kvITO ߰[;&Yh r*??q-hEVÀ̞Puc,.0ˮve}nJuDd!Q. QGvn#Ye)Z4&{5}F.<;հ 9SJy%U#f |1爿uh7=AgU1 25tM!?&aM! ' WlWA7f$ުш V6g3*:Xmf[YH?K'ׇ+oPj_.G^Q$ظN <3EboOlRhĝxjLMO과]KurEn^ނRQQNݣgfBB/l ?Õ..[o2k[_j,FE8blҮu/_ҙե4W,udjSf.͖+t* 0Yx6A)PW59_x>zg-z4D5.f qP.ڕa,D68=p,-y#s |L`~x7A_*+[ʩB8Eyë`@:)y{ %q`gӔy5?>$Aی?03ܿ壳YZk/Ǻevn\SJU;GVӬI݂ɱe' sn_0eݧ#lުQ\ ϧ}!Y8!ǽoO!R)d_܄R@-&p9EޠtUCy~sV'<\Gӕufޚ{,!b+tٷ=4dWb.0~nc]pQ^M8BRej?#]^ K5;n;- F k}70,ߪ4&`H1e*Fa2fE@IHD.]ಛ&SN_B f6s{GO5* 5ܪ[@ ?dl\ux#nX*75lf1k{)ʢYQ+>q%; g c;_Z7{51`zCRi R/w~gu;Y9A:COӧAQ&VXUsSGq;Ɓtkwd Q+"0Yx!AG3HdAx9G\d?E 0#cCR`hqᩩKLJrP>IXῠd8ty^ #]t\^&q2N(ByAVT}83GH6E"T6$~0L*~2W,HnW]/ 4%ɿik&קx;7go7AU ]kRBq 7uf(Pe׿GT"g%zFZRvURˬ gfFuRmdΖ)EJ9Yt DF//䙑e÷!Ў'ylsz\ݯ+`x$0> w`Bk|Ji#ݽnW_djآ^Dm<-MvblTopb !m33pV-45Zlm3yEΰ鿅E. !cR99f&Ik-^X9(/7SdStKt IU?X(~L=ܥe]mь7@T.Xn~iDU\/sDVRVI4S՚\s҈OR>GFL>"z|=vjIܺ|~}cMp02؅1b)NcozlQ6T["LnyuN uԗF rEB3Qq2`1%2H2}y}9T]!EkhZ;5S՜8fMeHÇVJZ 5-YUЂr#'}nckgNh(8z4T T6+q?P愌\X: K 0/ϜLOq2cWv\Qo}vYƥ[ F]?۫/¦lc\XeҢU9SDb:"l緽xI%J WݑucA+68s&39,婑=1n9^rd=7CD̵Nf)lP0Qcf8Aj-URj?ٷs]RQȶ~4*ҌnRu+V*kVzH=j?d^4=z{ )iGpy'o(kiqM_e-&,Y,,;͹+ƻ B\;vlryNFZЇf*9 eFDBͼŧa]%G|{Q,D))[ r*+4^,ry69Ibp͗6t<>_͊ \_h՗uIRt}LL i cߙf a TFund2"$mK1@/ Vs& abq:P Į X[3IjP9]Gt}Z3b*iYBf@i%;[}2YYkG7@{ 2 ]w~TSpfWdѩr?L z%w-<]q q?`d&%~_O^~.wk"acIJkĐ1gwԌ' K#q{9ĽnnPLL3BכSJp;LF'\#dnNBRRpRY݋GqkjhJO^>ECjg_W"Oԉc R8EV} 34(1cW5F]YA~p{]E0u3@E[BF5,~[^r%TO보;.Jh?C՛k~UR&乤`TUAZ3A]ψezPKoȌHxY67DZQCH(h] ޳b-] yA> ѽoGg'6 J`Jj 'vY@9,CkZ "y>Wl D?~q^$/YNaŸO`Wa?1ZpV?Ng=s-EV֖9+:&]{_߽Aޤ?8rj˕}6rq954ؐ'yw)}#)Ӈ?æ))7@ L9ő&f~WFx"GU֤!cq緯IGW2H5>=~TfbÐmQu.FH 2`] iq6qwrٽFǽjjj&}z)+YCXt֩y&;oͥfl^*br #q12*NJ۩[)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJqw/?Wu**ؑfM9CD@ӂ6m!&Ѱ0haٻݍZ<Z40+h`e@"@cW 0c3@.\/M.{1sN~$H..2sc`EMatT{*wADp1>)%ZqA)_- APԶY@ ''翌 `imP{FRR,VSQQ"' Jodd˗ŋo߾@b]{̃\&cSJb6=pEX lR_PX(cP9= ŕ2 Ȑ=j2!,fHl!r8=218ݻwX=M-BdB , {YE)"T!j4ũA- _+,9d rrrpG`5 "w %d@LDFhZ ,,TZ(P >h3!B@%M `Ew?4 #XQfʇ#u$%ġo>` ̘*Ej@,D)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJq9ZyRQ(-؄"T3,%&lI )FCU 3,IP1 @L= >q@LF%$534vհ @mjXט |/TUU<7E6 rӷo@?@axׯk-[ֈkmb"caaDV<@a[jꤥdddE=ӧO>y(o@w?60)I 6b- V*j7(Y t7@X{@(&[qKgl>{ pK_Og.IENDB`PKC1h^ &nuvola/48x48/mimetypes/mime_ebuild.pngUT "`ACPQux %V}8{mc?m^N~󶡄d3E6TT"G,*ۘ)h/K(JRs)'녣{(E/P 2۳?/ ٹP]%~H_=-5-^yzlfzOIqG-6`rءlflZJ+ia^Z-E` QFDL&$':|?!*3n{Mtc”J毤Sz7l@wqv> a/WH>1/YYY9\3`Y87e@u)@/ӎV"OΚK̑1ɞվJ6|z[ NL#q[yoLS7aZl]+9DBa<yO /egg9U*x?Sf,@bݵ. ܴ b3NZSc xq躂g||~(7pXX˝w%Żf|?_6cbl6?< 2\XZ$`(rνX"Y '{z jI6䫞я4yt+ e&rB ꈂ<A Xɻf,}۞r;|J3W={JNIH0(=9將2dwbcu&EouGPp?OCyVw9I E™*&[^ 1rzij3Jt,ؠ6_w]ڬAOUqK reM!snb+g#vmBeB՛S[FtX*|xx G`J6FrG8{gob_UbK 7AjE9 KiCCZn\9['L=}p~N?Ȁ!>F hF"#gVؗI:DWNS͌]@+!L њJgӥS_ ovm]DuO$Qgsy2/Z.*~垮 /]A~ QN~ICZEGd~rw-䕝=%{hM[wZYX7@Շ7'VTSR"%^!{#31Ge/c~K_wUwjiCw1"lF"2r.~wo ەHDX;d7ABlw gdMtTvJO`8>z'}%Gd_ҹCA3Z߼`Vjf ŴE(7~v]{L[ekA)FiFXdf[43h&LteUPNqzdY ۱ӚgUs5Pm\;h/`ef,LZWcNTHG[8GTK{J62yv^Dkb҅3zڀc9,Zpz5HMlKuίWLw3@6+5ճW-JPV6`ALA=@FA_a[!ryn8\ UOF -"\P!-W 1h 7rY']=Cle&vG8L2ѹxNlpPo\,!Gxk$x\m8; 7 ~fYK9!Ř0b9+2ߚ)!=y0L{"(>L{kî$y} T=^_o9aOAx.dT2#cW2׮.'xnN,KTrQ'拴AI: KQN~،c3hMt4dtcj}Cκ|\eՖGXv#xCZby]Ț'֠xz` ]jvuli&/b͛)(A~ŖT7N=Ư'tT H->1b/L֝qW`CЇG]zqw "p1b<1<5!脥AM4΁;RKZ(,v[cKKeoE2b򥃑d}')ة˓J+*KL~e ߄OG(JD-&=Qd]#oޮ Ujm4v& իvl+OTo#˒s|Wx A5( ,-Yn'^|c/ !ohh^_%LOLouvuKn-9>U}&+KQ1#+):̡a5H2m!:^w`i{ & 5<@=JA"0hkD&1r=҂ݺ;]uqrp|1(lDz`vq! Wb@Vԁ;o2PKt91~0%nuvola/48x48/mimetypes/mime_empty.pngUT gUADPQux  sb``p  $Ù~)tG_G'Y^%%i%E )I A)'Smu<]C*n%p+ r>}JtCa>vvvɫOk=HKG]MߖO_AT VڵiÆȸy9MLlO"o'c!o3S:̲^.CB%zA*z9w*u]zD,ϖ߬v%K 3KH[_pVg=J~` 5iҤޓM:,..|aڮjFN)ٖZ8wl0#u]Ԅ f|\"Hh =9DRD_$MC+AUDbNƪ -I@fćy&y36T&,i<'1>͚lnr'?rb`4Y0aJ2h9F>tZ*`(|Eyf$p56iNOfxaP5)$7hJG1%Q6W-9Vx..ss7{65 /m5,4_n> 93J61 ,p>弃@[`aisv~>Pm&#l}??6N:u]qU6.d=~JJGibP3[$ H26uOv|gb8Ĝ2뚦f嚵̍K X6c)q;34YK`FB>\@mrh`d蓩UP\ ~.PKƌC1DlZ b 'nuvola/48x48/mimetypes/mime_koffice.pngUT `ACPQux WgTB*$ $ RFHq@HQX@P) :@tRI}Pd%tߏ{Ϻu׺}}w:X]}saP *a=LnE^(d׷ 0lË>|x o_AhKidsJlO/4 q7LM+? p~Ɏc>~AdwQ`p.@J!0Uvg7PY'*2ҫ|ۗJcybCQw-ĞsitL[~eI_O%@_u@b 2s歹蜇آ|L.ñwg)H_56tLo& z~2 .T8cE#3Z܁R2S{Ij>smwA׭66vtd'Cw/ (I|E{tzCoj&,\.Qkg˿sbA/vvCʚ߱Pyyed&w_ ["ʇbKy|yV~1TRRn`&M<NuRpt-֫Kb0(z1<Cf$4??_E0ϮŸ 꾥 {+zPThb.3aGT\Mx^Ь0-[wI*&|$9 k$GtpKt9?aEٰu(?nGu[e4sdfE}X]?&POb !IZ/Ni0=ٵں!҇Øx1|9(b].=Lk3誜qM澩pj3BҩđŜ<8ħVȟ#QЍ&Ci6AR?ʯtꕸVKk@~K5BH}f_YN10PkK[*'>+~+M/`(S%/gPX1|I%9P6U94NoPB1T.K'}"7OMyE!ٻvQnU4!ޝ! 7,>' `L#SH4 `XʥrS];q}ءTS='s+J Ļh8ϏmVD》XSDv䘂vx雔lЉ_,Cr!LB756m[<%QEyɳXFTOTϭ[B{L*U*]K;BoW^M{bwت(Œ:#_V.m\"sҿg jzNڍ E)>ocYϜ{7gѫHIvf[<)~פ>x9h= t$-NHբ61a""X{ږx7٥//roIBN5rDSJ0p4: &%CjkuT~5dK e}}b0ԋb ?V$MQףFbGB3ݞL3)8((OsI&O`h@ֿ4K@`og8@<$[hJS`V|_znXNrfe}p D7etKq; z((Y3z)t/,R|w_}*VlNm"U_/UH {5R| \Xy[+ըO\]w44V9=SrT)8GSzXANȄ+=θ1՞MO9\^O=|hfNhuAYz1 5%RyT羈ٚ/7}nRJrhj!%yz)sĶC/> Y'V]5\0,,~XYIv@֣W-)a%mk%D,~|>O0V'0 tgS^RUYe+}*d/̆OSq"4GLpȊ?0cZS!(P!m﹉A SF:¦QV<><Ev?4INo*gvPKŒC1r_.Q#nuvola/48x48/mimetypes/mime_lyx.pngUT `ACPQux {<ǿw isth2Ya3ՑR;NikV !SLs tNE%t:d3w.RQneF.|ޏ_~}ޯ3Ezfz,_-7?{C*Bͨ|mjuwsXRkX FPd OꠁrSק_ٟL5M]*~ <ۙkph4:_R~jtCܮ'Lsv7u9D8<$x,]Q):_dTCMa#vŗoAi\.)CCϦ'ϝ?WW杕q'WA9QQnohPkflWr 4$ !Wџ)؛dlqR'©QZD#3+ \u1gGwF9T<7Q%)*Y}Ox.9 JLPvp6 lPp/5fri^ FT=h4ȂG߹m֔! 4?Yҧ$RRy(Y*8̟/ vV(Y\R"2@m^Sg+vQ6NHI T0.)J_K'3m̹G2SCLoJP U mTYRm̻~@x -`ێ Z/7dhBByf/{٭4EÏXPPW1b'e* +YJLT~ l'3 B- 7B(_V>1ͶT@f hEt29Lfdm쮧WcfjxUDM\I,̹Eȃʠf{l }'qRڄ:]f4A/ϤrMhkk#bt6]WqZ qul뷊]hb0SՎHH!tlsbh>w5s@vڽQz/yf!z/5s:[hӿfܑT>~@7‡ *@\s/2MރġyucC %oљ+_St;0}1덦{`Y^_hee[|&}fpF{ tǎ5ky9{oҼ=]/m'Dj)eI/+'ayYI{FweTMv 4Ӵ7Mp)!57es_\2o5tp9n*&NZv YHp;݂X@zeZ,n\ M#d(="2"BӲpTTĂ,l·΁*B`K_\ajwS4I*NqRJE5=UFEk 48X3 Jˡ.*7sl*v<϶O^̐-u]g-#g,% ^0 Qx#Zgس%˗/֝ԧ#<1iPUov߿\z6 Åap'cea|[ψ;333oڊ3ww\uZˮtMʲ,b3&Aa';E-#$t7.׭Ȯ֣;ſ-17Qb'/]P%l&}TY+wY( ~RLAXl iشaJ?PKt91\|}$nuvola/48x48/mimetypes/mime_temp.pngUT gUACPQux T{TwDPNA*y@Vz̴~OG>6uRF)Rr'|Lң0Y/tYYǬ Slഴ~>{?~b8$zpv,Zȯ N {1ųMq9Y 85/GMN S%vp|3 zb, Cq~Yoܠ5.)sK ]d&] K>&oo="H$>]^!nj͋.)+I' 01j:|7HWinm)]:ׁ=;fq>$] ysLi;Ԫis)ST8 `f<z uF~DL9sjf&^K;)r3x\@pMx\6NIn"at8%5`wN9㧟DCChd8A@ق?l -0o w\z榊aYZ],LH=ЧW>=Prl}U$64Pc^6ͣ ! sӭd1h=D+'1KR4 <4vr၌O ԥݭ Ai ~*1JNlZWv.+HgN^Nw7-.S3[$mX<" *SM;"{/wjͩM IrAx/QjUM|Fh._43CZfd ծy f5L-hH>l%<ʯyXJF;)mO]xl)]ewg IU,!nV;bCI_m|d s(e LC\n];~dtQn{h-Q)z}0̼f4iE|o)TgiʺWY5ȴ<$QPق᥁[[;-J%?Y"#ó(X܁TTU.V@oYm^r4U|*0=㖐tm3ϵJ R[vȖ]xd[@c#7=p_ROA* \ǩ sҍ;&FY[IY"d-1юulm܆.!%Yyؚ x{*,MTCc0v]t?91 zժ#t rEO6!;U MՓ붨e妃^Kh8TۥYr!aCο軤Kc'-xmKJEkckK'_q8"c8h+,|/evڍkRh(~R@BO^#@20n?^@DXrH?PK C1˼ff#nuvola/48x48/mimetypes/misc_doc.pngUT 6`AFPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?P8=@`dddptttP222}ˇ޾}{7o^ @,,6p)((0$  >)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJq9ZyRQ(-؄"T3,%&lI )FCU 3,IP1 @L= >q@LF%$534vհ @mjXט |/TUU<7E6 rӷo@?@axׯk-[ֈkmb"caaDV<@a[jꤥdddE=ӧO>y(o@w?60)I 6b- V*j7(Y t7@X{@(&[qKgl>{ pK_Og.IENDB`PKt91>}*4 g &nuvola/48x48/mimetypes/mozilla_doc.pngUT gUADPQux WiXSGɅWn( iE &AA B|"TP"%ZIw-*.$ ~?fΙ3;g39![713`fF˘d8 Nf;.{}o\Ӓ}ÒMK>Oxct=BvA4?uo ,&}CSq浏T.M|,cZ[? dٱ5훋"ܽA`{ ľ*u.RqNVSs\y*!0zSUs`FTӧN- ^$t冖3  n,>홥msmis:{Q9ժ'Xuu;ؼſ5,fwI*-+EZ!mmm 5i-%z'㑫ER* L.jv!mU#bW"e˜WtwZKOX}+ѹbeCWw2% ܝm=k`v'hRS2,Љ2Փp`B_4;PN U=o'ƒ&5f2 KG贅AFLec&,= wu!8HRHD_0b=J|+M5 n;iۚQ , *ճݱ©Ynb$ /:o'Zy/)Y|T>UT>/hCS;OzŒtgs)z2? ^M\8=lVԸ5q)R'`r*GM-AQHFlH򣗢NQ.a#za|7js.腼fuax^;ӐԔY&JKm6 >! aͤ@Y K)~tfrYtoxҰ%1wRS5Ywh30f$&Zx` ?n32Ezf-cZDGE[GI ڃ[sսlHR@.o? 8q3%Of#vZ ߈8B"z:l2wW+:UM)AiHvc rJu܆MaZޞ Z 9w{onY_E1IWx˕ꉒ}СI@ُEK"]2Oj䒖°>uhvmRU3$:]~4]u' bȂiLQ߼Jv zb #ֳJe##Izӳqd A1.aE?l5)AxMgRL0R(k,l@0u-0+=q~>GM,܌>~0rY7`4Ĵx݂\X-ՖG.a1+_hCzTQ*5yxyk8'2Kkm CX0iKK23_a>>p֨&D) W6% p>t3'ެ2CODQ^(8dziϱ>t.JT5:Ep`[o,Xd} I~tyV (*rr7W*׮hT . B/2]lj1#q]/bYju4  )0խ?C;RFD3t>(' ;L=`yAkH64RqLGzHVﰗTvOi?M;͏+>B=3ݟ\)4"ʫ S>/ƪb#)9 G{.*僯%T,ƤĜ#wX Cu;V*eCz5?5$wn^XLGh]xbP]=+[IM?[v}v\m 8=%gہE$: %q%I*:dT :,l9(:vi!$=4<7hKd!.>3`3:4S=Һ/oK@@@>ry = <}rlD\@4&.ѤKbgdaJ9UsK)MƟPK C1 'nuvola/48x48/mimetypes/netscape_doc.pngUT `ACPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe< [IDATxb?P8=@`dddptttP222}ˇ޾}{7o^ @,,6p)((0$  >)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJq8` B<@1ǐ Ž; m7 6̐~N{{{p$%%1:u \G 2(?̙3tut^rr2xoe 89X\2+???+:821\>!ۇABDTg="aKBBj*M@fcc,Ʌ ؾbló7o}`9C.3`P0`X481rr1p22l }$,@Ipw>ò=pq(H@`# +vV 3)f`~fleic%5_SIyK ` XpۀH /^`8l*?~]uM--Y g09pfAgebwn2{am 5Q n _$* @f'O28BC J denݽP芵B0) Q&6P,1H 3x0ָ: b;Cl?,?` ,*02)ɂ$IXc!0!RV`!ˠ)&: 2/PTvu1qvǠĠla,A {2cZ|#\ԴI[c@\ARBaro?`TݲAXtF23A/p? tA Z^pǐe{IlE@,$8ϝ0oRK0((*00O߼f ýO^} ށ1H= LbO>gЖc e0Ud4 XmAAvb29òM)($Ƞ,Օx?3|/QAhk'`Sk.6vo4z [̀矁i^*^+CgO1rŇwr0# Lfƒ z Ҳ R޿eXR[DtE/Y x< A !n ߁5O`T  l70f;Qv d~oXo03ʁ2wb>$@,Q윐Bc@tbR @ݔIuTl/|m3VdG>|ob\>{|B)\f:<99L8(&!WRI07jTȄQR 6+BchBJpT`ha!Ch;Bƪ9Q/ܐHb=P!-jpp0=::ԧOouY2|MU2N{hõKVQ$FӰ2l/N&#{Q> 9@*5m%K]Hwȑ'U~"21}_pbsUX.-Z_7m#֜7{y)mdbP`` F~|QNe5+ b^][Kv=|\VVF_ ;; tDKd܈|#8bSc!h5*o sҘHl'P zz+U+ljY29A(2{zqK5=5@ m!=mu 1~"k7@OiPXIds[?>Ιys]c]Eg+V!;rWAzE]z&6Ww06@0ޒ=g4q͍ļqkwjmSځ5+ΡH]6v/)K4گ%?DT$[sժ:?eԥ|:J#L|[61[M#[g :"kg[T?G .fv|0Q)3e:r0 :td}VmU"ͽ<)^/tRjy\.u|zZMAWD ٴa|ge׍r*MX]ڷʔi>ߔ672.s{&,>MW(L5d `-8hc-j_cPV$bP*Rw]OwY+ea >E44_`n#>U*9Bd|3@ MCY.JfmZ#:x.ixn /Ma&MQQ`ܜ"ZW)1z6m/'/^m\afQF9XE& +$vڧǮ3=P.ě4Ä 8E;&<κ僟ky@?._Tos`/u4QR Oفg=&ׯv7 bՏth4ysuYI$\2Asz]F-+lhm:+ 1Ls'@`s~"7/]c[D3tgW*]ޔU^7!fG냹>Jya"co印Qig1ꜟLgtsʵ]R8m!}m֞3͛7-o_`T a@L=km㡃mLo1YL]zKT0k{CD߿*dF'PR KQSI*ZM!s\5Nk6@|cȃxr9ҩ˕ޫ}9ϓu`y<3Ӂz|-0U,bě\=a'L5TNy3.!KKrZ "^Tk!c%~fh نDsa9jC-2a3[-\Dd؈SM>! d7nn5e$Lv QƩ;)ii#d!lt7'/B7 Kf¨d=(eO3 5ދۡ2yNMx?#}zuz:sr z"P*R2$0Q֟~mjI&Su{5޶Mk]\Z$4mBt  4I'@85qm+8__hJ p3Ug$NKqLdˊlDEl~lMHX:!eq(t3aq[don}*tJ)h+8! aq`)lʨb9?X xkN"*䀸P;?E}j%seAa@t5&:n'^&UNIR #7nvCv 8]v2qP_l+h 0=LٰU=P{ee8](5Fur0{?i5>2{0"FU'7@Rм.AWO|E $'gCB%hJ7a#UQʢ}JcLV`YX o>-mա?[;;I< #|{IqjS!"tyerpޝmgt݋KM>r'z-%#8B,Ry (BffOݎρv T*zű11/5 5mmNH'%--vrCȉ`BYRY/:8%/o+AHMǟip'VyaɀoJ?vMacʓ2+ޚxo}!:Mdm!:#)T-A!Wz81~k†Xjd+ə{g9.B-`T.?}fln"~o ڃd=u5UT*, KRB??)zD݆ВZup1"hjn; @E)壈]Z1t G*X[XNIC <ȵ_JBT@cBoE{r)?"fx7-r\}}}X)!YLMM]"oKyZΉ< TIZ\J|=]L|Eu8nGa1; ш~Þ#WɿzGѻIJu2w'=ZQ8ܷ}:/JL1=)E.aT\+76; k]]]%g(KD 2yx'DB,XonfO4gg}mui{8ɩqlR$53 ExPy"3 y^DZiPbJgރ^q6m<<]p ~pviV[3ƒVǽs8(VqխJ|=sh禵u2/pj)v=ߥCgZkm-Bv.ȠPpsEɯg;3r$4\|G}BcM3l1vGι$YCZ lְx&hwR66NQ\WEIt+8<9fpG) !Ͼ3VɮDZ]WV L4Zl6%Q1 pUI`?ھ -Dm} (zi| =60mCo\Z@mC'ۆ 8 y,q"uS#ƯQ+,>i~|;1[ V\e̓[]Us*E's e,M||8,E7i;b<]`JLJ r|,#8`ڂQ[Cx DojSm-# @6v]tQ7t|vXڀftPH4^v--V+Ыγ}mp.9DXmѩD(h] y&"o, |Dm6H+ ;>`Wu`u9cmC bǏÉ= :KRaf}UJկU0=uc^W{`ر*|8'..up=W7邠P40}^|x>VrR]P}-kL9G֗t5?DJT+;Ey `#GPKJfͳ.(QNVy%\8)!qTzBn5=M˺Nww5P\юqyLuS|X ̥П;%e*l}4>)xu*k?H6yBu^;#:y+˓G+،뽽sZ5K6hIԵ2ST%a%CA.0<, [jޭDne&I;r~I/[nWd{DS)/ V~ZNL]sPZ'fv.1-onoM/bbX^0  i@ew~IR]bLA1&aԌm#LbG^fkhiF_:e g+%"5^}EP|")*y' K^̂U62Ds&lj$,;VFlH43Mpף֥"k eɌa]f&qHad *i᥹EЊ+J/5jVUIxJFoLE 1t)~} fKɓԥr+77V ʨ}.'HHL;-Qb##vԓځ릠I y=r5u ⏅Ilei5;PH>SN#^ 2pgv$jkoj~G"Z81< fǷd0+`)7>m290Rϡ g]a(A}7;7Ct·f f怓r#G0؈4Z >kИ6H,c!Â{)sڠwx.L僁aqfA]D EBVƮ(=0q[/bU/6@kwr\(W*>H!a']H7P@>{`BȩL!fX7af-&վ]V*8qYٸ9:4MGˣbKHDh9nlm(NdGKxOQz~񛒲qaH^C2A`qIzϒNҟ :vV&u84ur% i Ry2L@Ƹ89p1|8E!ԟ =wPnw:r(G'c\6*=Bn'r/[9 _F: 0p. L3Y7)`%L~HOkOl8~}6b#3aӑkx'`Ò%U扖1c*OA -u =_`U7XVd94o/ikZH4ZII@##%Ye`Lwf$."%Mb Uq!ђG6ϻϞKOuMA f'q8nkz5:<"#J~1d=B {e'8> G;/㰡D}[r@4E8@1dR(i3yEPKP(_[F-t6@ c@ mOr=K Y^dC#"X>#nuwL[(#ʼq$XUUE!"VR8\u _6mRa^{iPrNL6v꺝&Bk;aJCaw̛8 ]ʳ5KnX_$db 'F_II^㫮&bݶGCށz"yd^^:~N{OPGW=|KSLϩ2\]^śu^kc>QX}+M$wnd̫feZhwK$ vi\vS鮕.x݅EF"bC&C?B# l9߯1pC.r?dEktm_Ǵti&ߦLsREO7Ν՟p0âVNh=?qV"x )^">o󫿽ƐPKt91f/Yv #nuvola/48x48/mimetypes/ooo_draw.pngUT gUAEPQux 5WwTI~SxB:"$!JQDQPQXxE4$HY"MYeYDuaC .%* )K_}c9g>wfTtPq?rLnI TAюaBƤ|Mv e\` yFt;wwĽ Zɜt@ZTQr\|NuИ#6vum~zyi}ʒZ&ByY@4 μ%_ܡ^}/k U=|(|50/s ĉ`)ԉ'Y% H$RgW3Z^lDA-bĿ(4NBGKhewo]^JnJXTwdG3SUӃS>]1BdKJO&w-++C Yv"#6@1ݢEHSyNJuYR~g`}'r.lVZkI;i1`%ҋ9:ts0*1aQ=O|f]]΍ %8T5qS&VWDd5Kx*z6U2.h@zMbsܛx0EQHq;|M8AOO/΂Z9 k"=kfٸJ$6zpMQ*uCCG :P:+.|ySn~vnT@]Ue!?){vkֽR*c}}}[Zs BPVM j9e r_hGuMDm[XuۀwE;3~9ɚDn#ed*(NYf03k8fS%eRn6vmUS6qs;J%u=DQ&}(yU2_4oI.\P|vŭu@';56_dYT.4ϴwt",lzF\aG1WQ1CA{Plბ)fs3GWąN[92>XO8[QHPc~yD1;І3 o=$wZM/,/'"8bZ vm>(?-ބ [7r"щׅυuA̜Q<%Dc,~kl~ ?]ipKrt~-5aj ɉgA N s}30#H%cm1aɛ|$%@9h(9{K-DŽa`Vmq^cA ehݲmt:O2B㜗=4D&H.9NawQ~7;`jȴt{#9P!¼9 @7% M[`"Z-n^4c)nXEݼLa0v-: gdN54u<rId4j;(/p+CI8W̠G2͌W@ ܲpw9Gz2l < `2`+{UZt ^ I >yH9du̳(W.Kjv$W(B3aҨBM0 .'9~I&=jVMM0:̭"Ɨ ՋD6ݛ*b6&fֱER'(Qx4;C;kw(!7u 9Ȏd}6XuOCb f駕 H'lw 1FԜī;7hlF; p4Xtpi{gjcO00ᎍ*JӡO(\TA]*Y;(=SyEyARf-&Qj3n\Xv(U|(sͨ"NIڗ)M^`vJ㕄̃x|6>>S&[X]7ZaᙌocIzZ[@(H^n",3KCeWF+oOH.|LŐ&V-~ w&J 5DhfA|a3 v A ZfqPuUIoɚD~nM2[G@hxxT")[0HE3RY4yqSQțoRL4!6w}~7%&Y$ZvW 9+RaK4a OVLiY!֩{ty\dј9 *mK s+^%,0XkVjw32`uLV#޲6<2g#Ά7C]&}ϯ9* @m3zoo¨גBy9c\6cؗҟe/;ex7vk٭I4)HA4lXM%23Gr.UU8s_z('A`~yroAǂz 86'IvoVl>}qo+6?pGb24PJ2ĸ_9q]mbTySY]=Z&L*k2|\!2.s"\upe?|ܦpZ>^U🨣Tz/|!Keєx vRSǶ J:B?(L!z4s7yp; ^#J(ntȐ -222رcJGF_(D"bqetөN-WCcccKś.'X[䊥k5﮹bLݥcc6==d6\K NwuDmgy)3[~>/K?Y[0]Ugv=}{kk1Ĉq_Gq7kref )ZUC6ǭsy:bǠź6+* %UQvp)ju[BoÙN(aWTWy- 1]{r'(o_ KJPCثttuuyQBCáBV<"` p׳nYa{S'> 9e s]р!ًmt )薥#Gs1uy9V*,3هV!%fCw~}wߨuHHCvf!1Rk:Rxxxv8{f%Jpa\rn@$qV6J9izK5+I{8J^C_=<ׇe^o 6Yf"͙JB#nrC I3|/䙖 0Ր"1N$4l}E&Eo^%/[R.{(j#/dB$z2@W:AגaפuچWۼHҲa]yV~Dlʊὖt YNCras5>>/VTɈwq$]Kb"gmY%;!fH^󤝂(ޢxt)(TH#L,-[6RgIyF.kY {zc=N\-sS^LV N!dcZa/^D٠Ih 1CU Uo]exL>*nNv|jR_]BƔ2u-ӋS$Sč"IWwK4Y*4nTQbTj[It-}? o .uRE9vX vh^LԋYl.⅂NxZ%eg3٥=gV{ś2Wο/ -ѿ/B^ Qoq bD5L?Z.KM?1&(h%]c;7F]҂&![IN1b''.8GUFѧXv(WU 7u$eҒ$ nio ` ʦw41y0;-ѱ\w{t+[&Nn,Q B$ KjЃxΥ<;r펟*+|bN~q,v\>\ yUGsW*^}Wy5Ora'j*_A9 ,Mģ7/[q"1[l+ @Ϛ1< -*5|_q2"E?ؽ\C$[dˤ X@ P>0-Aݯpg@eerDi$BZױXzWH+W#a7Jh1ŖN*~/t^3k<@0\מ i6|/d^6yOA1٠rDY8TP-8<xx8gGgRJ?>DwZ&L7N^d` #u 7zƋJV EνMcֵٷ q7'HQz "Nb;gZuNK>V3w449|Yo˰>3[eEIW9~^.c#a„܅t4@[&KSHٵ2M'X*sz12vo7 `O5IDpڴWV9CJ煣Of_Ck7|4ɩaġEfkU״Ax藓} W}p@qDv:c2T[X=fi|FYbt}%ӈccǐX,=wYsMc57##bF5VrTz|!)(ê=f׆lΐShy[x+yM7s=?48˞kuhFܪ{MLwNTZPKt91`sx &nuvola/48x48/mimetypes/ooo_impress.pngUT gUAFPQux %V{rjIJ'  P.6JNIQ T :`bxlՌ=F4QӤ¶m▗۴HЀT <,ݑ(qz_ȹIDs#PDO X8Fv;V%R_6%'n}9x|T&ிW{w^ǐ!>7ڿELyQ][0@*@ R9T\; & aGZ f+W0[]7U  ,RWpøYI,s"Fvk5@%oTGT?ZՐ * @Jg^O>>}lt ~iw#,erʷ',̢II`dcclkLnBrx>Ut@c4pqa!O1UjwQb<$:(PcPTF(RWx(F{nB ^1A,} C= SC[I_~s:tXYjmn)}bx񮻻;ntT5OBё 9·[Dν"}cO$"<+Y=W-i[-n=D70 ~N0CkV.(O" }aQ:Юʌ6 "Y?n(ew ~Mz i` cC JVJ.5 nC;?gr>Kۀh, $^b>:^R pNntGfDy6. SǶ:CT1PX(3z4ǩ^ւe]9?zipE*=l( @fw^?ŋqUXDtÏBνRIgA[-p['o"a)onW&Q%? =MuQ|4C(GĭN+QWA6]0ʞ6q)M^)yCF s /p=ewGJ/'.5KY&ۜ<:ҺxpgXfAϷ)}|3?mhC9cYSkǡ(9d xmQ0"3߿9C#cG'Q;; gP*U8p"A=:hhhqZ83 I6iƒ.G\՘zpT13zν`3"tg,Ii  zUßR{H© ??_> x &Gɀcq__F*KzE?$8nmXk@9W-:9לߖ8ζՍ#.A n o(Y1\ j\%G}uN4;DpJj dbP [e5JEgZ&|)7oPi]<`ߵj'1S;[S?NԞڨ}(1`v['sx'Lv,'9'H ;{}`)5jkw r|FYm3!=-ܹ{ xӗFĝAX,Q ʨ(ɦ$,NU(r`7$̣{bV;2Ho]+ rV[텆0ao`UtzIk(cy4~F_{3rhcm0ܼ| $$3h{ 6cxGT_IRl{%#Nֿd=iH uN !5mdrSʗ_6 ɞ^(EXJ6lz.:'p5kp̠?6+eW`k-ځ$B.1 eNInO)2!y3^P'޴JD١uxsnGBwsS־D!# CxN8N։J(}؜9+gb^)| V5ezР=Qi46Y݁?ɔW1,+ 8C6pK;c1¢s*G lCOKǟ*):F*ϱb^g8niKјD>>FN#d"j\]B\35N *Pˣ`0|ЌU]mz 7!7 űfJ4ߗSwtph,*f VX5r'⣇J<ޓza/ ?#T({[[&]$l,[ m-#K۹V,AWN&0u|)`9 cgt$rbypU<$GhC!hZ%y=< 03~6vDme)vh1gWp'rHNڠ,OXțhM%Q9jR$o 39j[ a<ƐW%ZxقmZy3h;nxd¢囖 Icx OO융&{2Qct:hvbƍ;tT\1݈͂V~M^P䴗h^T?x4ykζcLv_}]Pn}LQߛ L룑Q6A1('K1Mp *R-&ƺw>8h"pM^VU֍(^\3)oo#?#9n2cFׂӿ?w3d%O6Ef43FHiX>pSE"p`:X. J8'nNk3O*y3ݻжE \+Ic mL:Glf$|ę'+LWxރhQG2\JQDګoƛ@X1ԂٷCʓg*ZA1ai{gؽ1kLrbz)0NhZ<)OI"" ENܥfTBTX3_Q BK1PphȲ2y7bfPKC1k|Zp$nuvola/48x48/mimetypes/ooo_setup.pngUT `ACPQux W{. w5GcWԵkͫPN3  }C7_6t%yc|fz1 @i)1;$pJKe<ҽZYXM3}&%YBCiJeS{4mZ]{h. c =Ih %̙?ey5K7$nc%3r^Jv%kHʢxWo/vܘ:lo]zgjZ G2JyB|X&UVz -3bѥgf1~R;~: 8&&+/'.3Tj =B+Ny*JJqvfb6솀 KB0;>^^ܘdb[Yԝ/XsbQ~:(pvֵ,V;^ZaH0w]_xC39:ڔwkmT%Y8I'Ðz؏ӴwuJo4NqW@ f#B2Jspq^ o̸ &$$X0kf4Dc3a36)BY3LHp؁Q8Kۉ2&s_Ɦʯ =<շIHژ;s<|ܬ"f*rx05d[d1݂5Ew1J[ ph3@tCn8':+S*zRL"9qӨ8Y7ܷ?K7:K{ W .`͇G75G zFC q<jXkhѭ L&Jޅf" ֠hKw3|>0B7жLP#J4kȌn):C6[Oo#W7,`O۸Rf8X-^Lxn (vI7X`ӤA.F%:2XYoցE"IUt `^j1ls1RO+&:r K-K{ f! Q\8qV~|B:"5FqbA'[amUSm $">/A/-=е''3x-F(qvMNt:3ȱVȧQxK:~N~zϙBYX:ߤ4y7B i~d~ACԓLo%/Bp$jO?; { \h#'&ម;i)juѠ-Ik&ޤ1[3)>qҿN cJfle/x)ⳍ`WRwg|8}h-3[Nh S v@0U˷O^Bxf{X)p!zZԧ=(r;yIC+'Oy|O>#6Xv*k7,icˑ'EB֘lYcYjTo1$}+>8 WS1Oy=Cן-&6H`QJ\LR4jW-OJun㧭i.ӆpid:{uBS Ȫc`19w w, u pjFNDnW}dsQ[KBUg)UU.al20jǸrԣ4d+0i 7%4@M!L&~^ޑ:Z]Z_GO 2 +iD{+2T$M-tG += s:#mE:z;F|fgl?kZɛ2`c 4ܾWwsmI]>([w}0şl%kh&|UI3NFφV|XMȠ@:r"M˳.CGVG[8i8V+Ƞz5[$[/e2 ć #juHS>`D='' !=Hb4jHjA1 #씅٧C,{e}C+:n"OMM$EP" q!(4H-0|Wv7R:AԦ~)!'VѤwqhT;=_#hȔ"[o?x7%שB-- E O0$G}%!u*+I4wXa{۷#Kb̡hji[-iޗb N u0aqq$:Lx < U%s~[8#nז222rm«W;ECaSJ1T) c\GMTmQ-%}RF˲'^L&3.Dϔk6޾$T:wv00(g//s`Vs߅9y,~oidfx X{ 5S{BU:uK? *=ϑޗWpaE>!f"ƤxvDK}ažgTQ7ח1*}m;/ ) @V^UUԛ֍M9ݱ i ЅD;fџj~QoiA-"صZ ҬxEЖD_ֵ> ,@wyۀ`Z6)>SvޯCL4NZSToF?HVʖH0&=^!,s𻽬o<@اݾ& M1Su%YF(6kqaIy;kS*b=|2ev 8+\ }!Bq ܜGOΫm<A$n~95|3vab=}4mI+Ru/|z_8n  *k!E4HX{VdI9؎bDmecD2A}88bqG۰uksH2u~@x[Z0!c, sLWdP.0TL|%{g%(?k ĵpۍxuHO8$ɉu~m̓!Yi&@[KŽqqF]y[R7:Ib{Qְ׺#Vj/<0;5ѱ yq;/i~!+׾Ϡ,U,Tfw ؃5KF(nӒab.Xe*_?U/jyleƉ84۱U$i,q:Ry>,#5i8:)|% Um|=7ʘ[rzOs@ՌOԣɍΡN`Khc mc-?988QIT&)[uڦ*t uenX!s/E=xzA )/DSY} H-D 0)FXbuinD=U}&F82fE UN׵F 'G G)4ˮ)ecjbʪW0_fưО1.X˅ g x!٪oJSe+{ ^St52ăVB8,Ժ#,I(zlxtt72]6^svkq6K.*l%|5!Fա^5M~d^rudR C/Q7 }Z.b29dqtngX8G \x畸}XCrUZsVΊx;YS ڗlƈ.wD֍.3.]@5=ܿO~+POu<"TҸQ^J cHlo 7Irz[(UcO77gMڊ~bbi`QY9pIMt+c7q=dbNx1ܲ>xs>鐶]h*2Fs瑏mmu@-!:߂;3"arG$wŢ/ '!P.FCYYb0IUmWoߝؼPKC1$%)nuvola/48x48/mimetypes/ooo_writer_tpl.pngUT `ACPQux WwTIRPL@J@p : EEl *MIA1kł*AR"D IWzc;sΛ3g޹λylo&8/OW_u\h:.<6#$$caI' +XP(+ Iou+?CвJlf#TJB@N2!#ab{GO/(ӳc/w64`0,-c--|lҜ/[;;;y_5A-w ըfBlrPlZw_n̯+Aeӑ'3vdiFDܱ|[-` /// ȑ;襤bi.|.iou)cmm_)innFE ς˚7 zBģl>&RbsDQWG'DTRN?9{j[(#~tR.f$xE\Sd"=*Hchts:4ƺNG4Cq bjks~ԡT@m!g\?*jo.аɧ|0 Àm*MSn+;_KqvMMk'BC:WquL 몣E`ސ! 6{in*X)5EuEEEqkȆ#x@: 5~!xTmRrv7c| +r(]p. wWW^)$˭}Ex0 (@%q%iTn ji;}cO IHIx> [[ǘWkim+ѓڨυ+Ksv1 ʻf(ÿW5@` DVQAԎ:Px@+iM7yJ[iv~ "شP7 m/dpK",ٗˠ$#Xp JxM_ߙ\ӝZ2GckuzsYIԤ;8Ew$-h_Y78VGRI@|TIٌic Y2gלs/%'uRv Hf[Tv=43`όOa3xiuGnyF=SGKX_5je2b\>}0 s2O' \0 {Hs(IZ"f=p9[sFx@R Mh0*h{9!.FHvjGcX~4sm,_#{Vv;SgۦYgן9k{ >Oq3b!FoPJe R3[M?%Kj$U<[=PH2$J<Ch>𓚖}AلƔF7]tPInfRJI R"G|vd?A 'Vs*V!|OlJ۸zH Ӏ-)< ; N8&vpn11H &Цx(4;gJ $T"[LyWtO ξn2gqA,V-,@$㽜;  Ar!Q\(cA]# 8Zx"J&U_EARtA>:րmT.F񴕅%r{X'Uͳ5& f_P&6Qj}dc :єzՊwu-Zhcm~ <$Q{%FȧP&!XaD}|+&R3lpǦU} :jbW 3 XfAtUcD(3vrM|E_X\dʋW^P juDjnӰcŰۗc&qi9)C*r+F{.mHs>F-1a[@~VSnⵝ9~V2u$ Z1!kHUH5 5MOMUK9&/ܥQ%6,sżo}KxuyOA=4V "jAcY/@'Ƚ=Hت'O@0FT ŕ8#haD"e 1֌BXhW{ɑ_Qg=gEI(S!`L($J\)ï-?I>ˇؗaV)qX@7kU^&ZwRt[N5MpQK7|m5Z`+8FOK x+iz|cXwXS|5{`FZ`$H0R ,v,|אwXkܾQpMIg4+Xg&Ni6hamϵ5ØTi {m`6yW#SbԼBnڔ?O8Aop&E[ dV_.Trvƹz5@S!2W;T7 bt@q}s4 Btr}OE״ "B=ʙQ;܊*Dm%oj֍M:$kJy۸ ДOK}(%L2Ҷ {GQKΟHSa7nC}cnYPA+3@&br]ݒ]gPKC1 fL nuvola/48x48/mimetypes/patch.pngUT `AEPQux W{Ztvv&ǭ?P(_( M+5}U ln Dpn*gjDjp\t 7%SKB+Sy'^UYVs o?8LKS3ư=>~gssI?$fN?`E= n{qbвIZhnezTP+za@Pw՝iKu.ݬ@gC@rxˊ5+5#mWz]"Rעufl6%oJEww +1{b:Y@v6+̅ JrB@4豧gBTC:DB. t3_<"oUUUЭ{q~XvIQ<Yޮ21ŖE̎Ƹ8Oq J#pgCU -ohUVߧ5 8B.vW d`#5^>N,˸jYnco+YF\I5CiQ,wL 띔ny/vuמ1+nK\QF#;-bor0vVTyh֔NX+3 0I9{ s^G" @5ʞOGM[l@bbcB?[;:h5.2}~BF<<揟&A{M!C|yىAOP9Z m,.:P v.`c|i[&t~U#@˫@`TkR^rn7ESĎ|( mXl=S PDF7afskM@gd&aVIf齺+ёȷQ^9Ed9cw_ܴNi5]6`Ia(Hf*&c(ŁɃȌV5:[%+&jx<ߏ-! [d4=K'=o:GPNzHHy;ܿ7gS}|6߁g4:q5љ:W4TRjppl?1"z >SV59.R" ܅S&NmyJ2lgN2ڛZe`bh@HZM9fٮ[i6Й7l1h? zR'0Z %X8(?[uJ@wx"XCv,э>Po= "Azt*iֽ(1͚ko^o$#hi] Ĥs TBWpj: :hKcAI5A=K`iu~<&^T8} P$gZP[ȇ^KsI.:ɋ[4*P̓]8_E +" >+2[8 DeDS&wd{ DcN·M8 ( Aľ)0 u!MXy@+ 7o%;a=}[!*-{K7"g&8ukKҴDc'M>).yZ<qw?PZ L2o7脍_d3aWyw'b,.VR, pf]m}m8y`b?@hŠq <8a/E&ӟ6|<4bT6"y#vV. ,ٵ@0!}^uGZ rwhh3!W0wFXCg"܌:@/$\ɿnc;>G$٧y 9Q!L2[/0:=C_9`#̐]¢-x=y b rj[_e-lA[y-PؒQgijG  7mECfǗOhN,m5- pTDQmhN8344>(Gv t &~>t"]/@rzŠ:k4bbgGB;o,UU<܊,־~4ؖ”-$PaX;TxՋ\Ԅ¶D9mߋ!/4l=Wp&Ue97$G\Oh;y߮8Q \)vs=TG#H(My $yhvJUvK wx0m|P|הjR@͹jj>KzƓ{OFt/05)> =ŧ }jmpF(hfj9+hkN 4keZ.k=c`  -Nl/AڰR7WKO7C)Idg2fR=C- "^(<^ߍ[n@PKC1E񩓮 nuvola/48x48/mimetypes/pdf.pngUT `ACPQux %ViXSɅK ʐڛ@I@FHbH@ƇP%0*ʬ(` PI DgT@F"C}?qoZ{@?0'LiR&h%xy@C7)MN؝q,&-MfƑbbbS{<@/8+<S4q(`$nt#666%##cdxxrl|jCRsV M9-9'Н'XXX8WVTVWT89:"/R)lh96=52?!1  &~J ,Gslak di)jҏCMz{wR pm/Fqt,-,ymWCkbg*+r9Vv> ]Vεo~-aX -;BԮ[Q+C!t"koB~ɽi%z#=OUJy k!teg"EQ46~9n+57S2eC2wuTBVesOc ng/pg/rJpKXFY&U`%8;zJ""R@(F_W?+=}D5=̪i݄%$_W*p5bZpMq|QZ}lhMj>W2 f#= !$ٿ(ϙ$s>.ؗo yaj`fHLa)NKD +c|UF_bqPw2(;̈Ì =n|:lyR 6b鬻޼1kIΐ15D6-`,(~֚/.x$ wj&1d?3RB2V3Rgஶ"#Dd8=iЁ P dC_ !qJ~*n*M ۺE*,#K+} sxI6~khb=Pn0/"o ''QJqkWR)tn h"1S kCT ȝz9\ CJC/B~7+NN=$ KF4QHVP&UKa++﬇rS{.`֐k?]ҥir!*NЖ:cŸl? 9L ߖ5`HxCyv dTH;;BmZ4q W9z4ry^`I1/c5_k<ھaTa}%N71.QʏH5#JsMMM%|_8YuW򲳳I˟g_bt%A0қo#aO$>o^(܃N 4(w+y2Nַ^^`2'?M V-Gf'1䵺Q6ߔ? ZktqlKp+״iv^nU(SzWtFK:8NUu@oO7PKC16  %nuvola/48x48/mimetypes/postscript.pngUT `AFPQux V{<~gޙwy1fh0iS3F!̈V aJKFybrn.6˨Vi%vVr dxc89yy,nD "~\zn;+isg^ŽXQ1A|F D&nrb7'$_Yr}Li nV68Rp5{Y{#VO*B`YdCI9=,iۭ9i)&ܴXd ҾIrrHyB)j[5rrr3+RBIC_ּ(QWlNjeNN~964oҌ*8BJ).*2p A0)TgϜz-06]{?Gch  ,R0}Ed6`H0{}fs8 qvT՚_FMKW)M m)fD_z]NS[?y_kJuWxPGFG###Ĥ$!F$%( K_|ov=lU0:d=qe4k+Qx)Xbjn7zM5[{Ȭ)T[[klwlXՒSJ ﯜ&6Mets%lZ\!1賈CMs5asbKg\lF8+fJQx@QQGeEbWw%cc^':`Nܶbp I֨ --=ױ?PؙCc+R>hkmBۚqn5h|"F=\5]H}B:NYee!) `7܀x;Θ89A;ΩUk :k5*1O4)B;+7>rw(:_YC"3&yV<<1\w(4"5OoU|P^5a:ebJxCaɶv`biqK䏴Rɧ<̠S =y.0@K=Y ҥ|l?* ٙ3k$+{&``!E몚-">P,߆:` N։ff!76rz*5RsgsUԅ+.vz[pCc@.kO$8]EoTpun 0&{4Ҕ,̌/Wy3Q*34d~<{I0?M9ECC#àjLLh@aO%l52[&Numշ+HhI0*ݕ*Kb {$yP|hms`1_bL;uߍW"qf ]6^zK g4 Tne0tT!@rGLEne)A'7p+u)KN="~:QS?jt&ԛҷOS h-$(444bX{W`޸7-j>|t޻Vw쫋WbWeT>GDѦObք-zQۊWM"##5qy&9 sV^BJ(p$ѹEgR]ldKLٝc]H}n=.`?s!]cޟؖ6&SUѳF۝;ua#2v^|iPKC1y $nuvola/48x48/mimetypes/quicktime.pngUT `ADPQux %W{:Sb%(OҿClFIԊ2hUǢ`'҉xiUjK# ^ERLԪs5ςd4ZV^pkA  z۸ UEa1SjMU^R.Q&r9D6-'&]]]Pb;SS@dP܎dNG,1.wm1xb`=!&:<z s?YmYVNǶgdLQՉ:Yy䤘t;E5gm6hJ9!L+F`tE̪,BVdFpi[KOkfhf* vɘ;zX`)CgIS=#ż }Z $pC ~vm%B 5#i/ afkh܀\OP5FSg^{2)|\T%hQ"53M/Tؤ3 04]!#I{az/7_TLCUg5hFpCůws2q}Ԯ rZu·0G"ֽY6k968rWN;ݻiJ+ef4u҂Su 0*pf/ Rꔿ#]hqeY_~D{HL~e8+e ,\zyl5צ' "QP3z37c+܆U`4X9gkVě3Ti7cd<rB},ޛs:S#$fك{1lp3y;oHt B(gsc vzT%%c.g *5(^fc,*;M{Ֆ.eC6ZK+j=_bzh|RPDQEDvnstgmԈ G4@hW:~]&OEF|&92H\^)>»XPϹ>x"k(>Ygx8FnL& gFR1I, 蓫ꉷ9x+'s1S89 *%OoFÇl2:Ibrn,81J~F*Wt7$U;8 R̐!Sov:=qݠh/-\)n A,vlOr?=grIYIFAQ}cz ߿B&婵=._#jK+!+>L@0!-|n,-)o~qg|WlƉU*'M%+F0QԘW>khܘqO4m.v DQrnfäF*#CU.{7 S/68ȩ RZŴehTH\6\FPzryRoء,Ua]N'VG#l=4 ]Ȃ  rP7!>2yI:τpA $0EJ=cI7$ᢀ1-.r^lyOE'!GvxH ܶGZ<|lA3 [ ~JV0dAdkR>='{5OBՍ6ĭQ8 \wY'K |%U{ ps<ߛڃ*zM^>mҕc#"<0M)3%A4ˍi?\nїX>w9D|PyK+ZYO I,ěȞ+U|kW1}LW@>~Kˏqcҡ:<ޖ9zsKe)TG#BeITdbDlV==X%z;+Hg"ێE-rTȼ05GoLn {gx<.v34SVva~]ްN5v5|tH_JF:=}_IS :tfFݞû0 U!Ժkl?FG(;Zܽqhgu*ȂmKםn?-~s&;wϴeܱHWKHhVug2G>iGm >5beUt^%ަ6>"E(Z]JL|G;a{E!gYK ^Y# `!#'>][~X`_tn*.Xi).@4׆06«?o/PKC1QB !nuvola/48x48/mimetypes/readme.pngUT `ADPQux yTߗUR R+'Y&`KXM &o~6iY h".S(.)3ZLT6MheLeڪ6h9ss>ܢmAf&&o2DׅBC@'2Øpרxp&mb}w !-s 0q)!9(.'>3pXFftƋ8-Еl]t=@`)iiiodžGG:QLW!lϧ}E_c>)+ݩZb2Ӌa<9` P!Jmg(aE rU"ZmnS}t`D{TiQt0LvUمwD'vo<)H/Gф׻;lj^o{LPWVrj5Wd&%( "09e.>]Iq)-^JB~&+eu p:QsY`}oD.cqB/guSTbc*ܠa^87T,;32+uCVhhF<޽[ӭ߭Y rA|PL~x$BOzp]ϙ3rq)בD񒄄(JĈ?_:aĵMv4H{r~) oaׄ8 :eS3XHc4͒vB07J= yvMwZ ݪj(|v&d0U:a’aWo1B}PADONeWR;Q]N=smӤщʔ})|=<[β88hsvΖv͂.\4ėT3釸 =7.c(*Wf؅<ȈH%K+)ewM;^ΥɀKpߧ-Ժ7܌jrUpHNiQ0`d0I}D 9C I Ue!9{ԠYz)%d21ԑu=[IU3Rv]f`Aԟ+O rGt'G#E~|ŜA_35ҐKJT8:A匸`X+LD`тKY${O' t(z=Y(_G,vYruNrlLbMJI3OmMlw!y0ѥZ9%9Vl㡪Xz*O ,$9x"(.Iq`}W.^*bF4;ݧST+f;`.2if0׭tӹv-DEHXzMA8M'Z+('7VZ(T3^X*#F Jx#;Ex:V)i t3R|Z;Og/% uUF eX>fn*j2 V@3ceuQS-)`,~Ƙ.QZբH+(SG(7ckI ~,E&oқFQNU6gmӊ!F!oxCv=х[0YbDž9L4غ}ZbZʝVOQO\DL#Iym?G<dODָNS`oFO9emK6$7]"Yن'ԮW-{(Fm1͚"Ad`"z nϻ)&o"$s!+T<_kImR4j캚3 %ge]c{I+ _/_jm\6sX`? |Q67Kz"[thG"a[hV`r'C٢G.0x|p:2>`Tu鈀 ?K$ec’ǡǛ*fnڄafÿZlD(ցm,SSxǁ8. Y O'bCV,T/!hQabAe:S<5}잚po=,fl JT }qOu΋# dvԡϥ:Ĺ: l$%|1h񩿸:2] _n4ى^ï"Od^?b~c! [ > 1{z><M3M=2tM6CbfJfwGTPr.-9gQy{f~@ȦmdPKC1tJ[ l nuvola/48x48/mimetypes/real.pngUT z`ACPQux %WiTSɅ$  r`A NP !Jy b(8>ANfǤ~qɱ$će~<T{dUվ jz08VZZ+t2KPrזm̆[r=g\-D +,g''DbwfOO9s~ğ̞@ ;b!qz߃~aJEG ,֎IrG7J/vURYSL}pt'ܟ}]uw3;_2 M3 2mE!^zrD"A$iΣ{~!v0f||1k8E" wٶޑ GQhC,.|gd=H!ru=Z8RC,Ҷ$ HeIFPeUE8|66d/][l&vB j@3e+rs_S4K(]U0x ">`G@"Z>{PlGl@>xfL julғe-~%؟΀&N2*VԚϤ'({u.ø3Ϥ!k}ePF3ӑ۰Tqw/|>$;Yj+g%7=`\¶P\őkU1M,nyCK O__)=ohhXs6̀CycozpvRbLi<&LSU>yg`Sk l#QD5@ѭjNR  tWבP I*Waf3 f>|%b-9 ԡBn !V2?q;.oqv%Kn}E:Te{#Qj O~ c <~+\(~rI>O}OyP(] x|w] e{-w ZOs(p~SmUTy2Xt ZQ!3_ߦ$ (rI,l{.r~+@"H_DG)oѣ9I_o} jʛKx!"lj7*;=1:&-MD `L^M=q8GCP連ާb?LWaMRkܒ[d+.ۛ .@ȥї.[f^,Gҙ&Kp?>pfsG,tjQ $n#皒LBH;u ;HV/_I!qꦕ3xq!$F­} = <//쫦&TY a4VݸUD~v&VXfp6`GЊ:H@ Hi pz(s4Km(iGǗIOjC\?NҹGܶ@,TStj*>V/{WJQ4`e,`̛ &FdvF+!+ A"D%1CvIIG 6^I{7lIuȂ=u8F©8:* Ō9B((ށ}e:Ui1ӌ"ٝ9ڝf(:vg" Gǁk*7nX2`_TaÌj,R|͊6g_Y!]{ 2RU,qTB/H|9o?8ujYm1n鞬PT*YG*:k]./ЍpMΧ.M1z%zN"ZTKLh 3+5U C98&$ʬJ1Z+ʅdz5]eܷ{(PcBVM>4T 8tߩ+'W'AHBpTB˕4w2Z sncEb=ag,&"0dب{E ~dXnDQqIF؟z}Oƒȉ#r#kutV9J\^Zt\9dɋ1c*Qu2B`LڔQ?64ωVQH\2V 48C%QTJsv亪+ҸQPj,&,jg=V*HnܲZ8$A[Ȓ[rn\J=4xMa6d"EѢ=[A!SVjeʞ\s^vAB TPF(T-Y0vs~`[z5% n^U \8i>,SVKA%y^z0#:@tfmY,k懲N-?7*~\n\2+_L gr:s͆/i\W 6`{:R 8F66zMB#4dݪdGO-<f/u3C˝ǚ$*2*.#4sO,mD<޻@^soc4waI1ע3M`k =@_u| @r|r ]{4EǣK&'Ą}~k[}zz``@Gsn\e -}q eWDOfLlB1_ddVo.ܐ4'y4,+?nQ?ňջ g5 p=v PKC1tJ[ l #nuvola/48x48/mimetypes/real_doc.pngUT t`ADPQux %WiTSɅ$  r`A NP !Jy b(8>ANfǤ~qɱ$će~<T{dUվ jz08VZZ+t2KPrזm̆[r=g\-D +,g''DbwfOO9s~ğ̞@ ;b!qz߃~aJEG ,֎IrG7J/vURYSL}pt'ܟ}]uw3;_2 M3 2mE!^zrD"A$iΣ{~!v0f||1k8E" wٶޑ GQhC,.|gd=H!ru=Z8RC,Ҷ$ HeIFPeUE8|66d/][l&vB j@3e+rs_S4K(]U0x ">`G@"Z>{PlGl@>xfL julғe-~%؟΀&N2*VԚϤ'({u.ø3Ϥ!k}ePF3ӑ۰Tqw/|>$;Yj+g%7=`\¶P\őkU1M,nyCK O__)=ohhXs6̀CycozpvRbLi<&LSU>yg`Sk l#QD5@ѭjNR  tWבP I*Waf3 f>|%b-9 ԡBn !V2?q;.oqv%Kn}E:Te{#Qj O~ c <~+\(~rI>O}OyP(] x|w] e{-w ZOs(p~SmUTy2Xt ZQ!3_ߦ$ (rI,l{.r~+@"H_DG)oѣ9I_o} jʛKx!"lj7*;=1:&-MD `L^M=q8GCP連ާb?LWaMRkܒ[d+.ۛ .@ȥї.[f^,Gҙ&Kp?>pfsG,tjQ $n#皒LBH;u ;HV/_I!qꦕ3xq!$F­} = <//쫦&TY a4VݸUD~v&VXfp6`GЊ:H@ Hi pz(s4Km(iGǗIOjC\?NҹGܶ@,TStj*>V/{WJQ4`e,`̛ &FdvF+!+ A"D%1CvIIG 6^I{7lIuȂ=u8F©8:* Ō9B((ށ}e:Ui1ӌ"ٝ9ڝf(:vg" Gǁk*7nX2`_TaÌj,R|͊6g_Y!]{ 2RU,qTB/H|9o?8ujYm1n鞬PT*YG*:k]./ЍpMΧ.M1z%zN"ZTKLh 3+5U C98&$ʬJ1Z+ʅdz5]eܷ{(PcBVM>4T 8tߩ+'W'AHBpTB˕4w2Z sncEb=ag,&"0dب{E ~dXnDQqIF؟z}Oƒȉ#r#kutV9J\^Zt\9dɋ1c*Qu2B`LڔQ?64ωVQH\2V 48C%QTJsv亪+ҸQPj,&,jg=V*HnܲZ8$A[Ȓ[rn\J=4xMa6d"EѢ=[A!SVjeʞ\s^vAB TPF(T-Y0vs~`[z5% n^U \8i>,SVKA%y^z0#:@tfmY,k懲N-?7*~\n\2+_L gr:s͆/i\W 6`{:R 8F66zMB#4dݪdGO-<f/u3C˝ǚ$*2*.#4sO,mD<޻@^soc4waI1ע3M`k =@_u| @r|r ]{4EǣK&'Ą}~k[}zz``@Gsn\e -}q eWDOfLlB1_ddVo.ܐ4'y4,+?nQ?ňջ g5 p=v PKC1`MQM)\]:FWuK}"wUom,)r۾~=ޏz>Wa0UmA[y y!_e;˛3.m27#c '`> lӞАa.TE> :NIKKjnSB6~UqC-ٙ |~k0ċ3?22!e\[̋Dմȥ-ŚC͋ر"3{K4CttZ_ t]OgѕxSO6BQ馬K[k߸[I ֟unv%0??CD^]Oǩ_/96[; N?G > 8DJ xp!ڴ|-~ 뤸ĩ%Jڛz ='DgôM̔Sُv|}ܹ'I?qOH#%m0SQwrW+^jan> x4ۨ3G&J֊֎>vbJ766NQ+C?: 'b*9+dk\MݾekӭA 9Wb}w?feb'ovUē맯ōLt0hQ%.f?1LE xid0SV{{$j}`G\&xH70+Q30"*]Tj<¡g{.#N `/,=Vq{ ;hmk4n$\w{lP~-] :uX^m퉭-ҫz#Lz-q\wΌ&s r&aEWsR {+,3ebdAa!l\D O/~ٮb oFkóO`RKB\>Pe}1&э$75 VT1TYHNsVSY! OGgx'd: U<=Ȁ2!'FsN.`<'qա%7̹/#fT9_"&$HWNUJҷ k; VҭNaM>9U#7c޴AHCkFaJ27MݷY{ ޒʿɲmअfO4eSX4ʘB r1( dt\HdT8IH@Lչ!l3e %oO L=H> J5J׃Wj! l%YhKyz+j%e̔uP#޲l;6^Ε۱$|̾ ^NxޓՇrv/(Im~ !kvXъ?&~AeFO$7#g^D|Q]d%|IHYՐBA W +B'iYw=Vxztr0lҕ#[J/h:3/իQ% XvS?@ZIQ_O!@Bгeo;FĊ:獊V*ֵ6^XHY_=(a k#0)OZ.J4ݚ NЃ8)A F\v;a%)x5jS*ss9~J`,Cg.Nn=`$kLAeco'5mnrۉBdzaAq8}jЎeizjx#+N ˗_3yc#v %ږbؔ%C+YT+(ijN٦Lz`?rBfTtՀ|tV3 ih;䆥}̒7,Vr_J`[ z$I[[,k'& mjBiֺ;.n۬_-,$\l/7CQ[Ƌ$,yqcR&kU) -W o@( Rkv=̒L"=$﹭G^9vaͣ@hZXtLLLʔxSYo:]Z^^HִwwC,Ўstffa聂-sǘu,XuLoooɾC$ ڤlܻv9u8]\0ٯC̔Mʵ치 +=D8sQP.o$b*؂M (]rLZ2BЖh~HY[(~.f(}7๓JHOIe'DNy}4.<~#L?zdꪏ" @^MJII;W...+K16O3ϖ%.aiNȵ(ɑL,|-!nmt\4 j?t=1 pD,ebW3%*2ri.sq̕Υm23):t9ꒃWVE|9Oe° evQ^ ^o|+:Rȯ t:]~J'rP,-d\>9}9y |/ a PY$Gk,ț&azDEݻ>ёlLQ f;~0Ó^ i(99,"a~!-!Էϔ^is` = !r+غw2cl6Ov%pl#2G1rJB Kb_sdx ! ad+n㾜r$w>Q_89ZR]8!.,6`:MREDB, D;oș56a\i;WӨ2!Ëo DG!Cs pf sc!rӁ4BK]wזm m|X33XF>3KkcPsC@F<0}222+ak+Ck;Ӎ*FC`Vpd&=s4BQ.'3z S<`S3m$KG"CB Z w PV,b\vL,'~Y)w[qUr[(hj}ˆ;yayQi>4Y[Fɨ]`eI$wˠ|l@q݁v \`4>xʒB˫H˦lwY=Dt6ڈ"po'W%[BvoNaR_?J%{xLQ ]ϮaF3_●&ҁ$pLaxU8*B%?|FUVk|B$[_@g '8zB*25D]}fG.!|%ѽ]fb=M4 fc==2`'YIk hVnF\e5~AJqM|i9A:ZBo%͏~%|<Ϧ 99L$3M bۣ]l6Bs_)[N!VߖPLKlFb:SYڤZJ5¬-y"6]ev QNsFd}4p8l^*E/!*+xZ7gA4}B(ę4~Md`;;EҘ$9bK1:њUV!BG{Ki GҜ$&^+LٯQ%p8ԽJ)KlmklOa^o;m-d2^YXA޻F+Ca + c\h¨ IK.9MZn7Mrr! "ZA=b p66g0},f27^Q տH448/kݡ_r5xy nͼrb@ fz̯~h7aX` aڔҵ1TACrs#>t=-{y6}`m @¾4?9䰧'#hVC45fQ9x, :ڨT܆Q/lӼ%zCi4dw Ѭ%Zفes1 oTm5? ?ԯsPKC1g6nuvola/48x48/mimetypes/rpm.pngUT d`AEPQux X{<nم/mD"b.:.T'sWEaeV㌊ʑe]]4S'~;='}0U-.o:bJVsw|kQ 歄)[mgm@Ζ%Q3`jY %Rsp(,\5iev6-5b*7N1,o垱ᗝB3+7[Lr3OJL!#daPCSs.A4aJ\sx7pl~+_c :48{xUbP_/; >>,  P0VuMYT8SB($vϼ)Dh;/ҏ`_r|e?{1|ʗ-_#C 4@׼5ACn5۷!룴G lJ NNbM˳%r+A_ d1wMtCMirNQ-XADUC")QшhTfEq_gn1YM|Sn&]ofzQ-YZ1em r cl©%%=%&@,Y͹uDJ"yJ5aT3P /eu~tP08Vh~ Tp]_`v@|uh+HAk4z/A a,eYa90 8[Ȓ{ކ 5A X]QMwίQ?lp]PD)ȤaY e}6\{JcЖ,1S[~b`"t$ 38*N_^ .E(N]ۜ(s<}AEL;-}HI%3 MUђp?Od%o}/T awӜVc~E~ƥDzz| ?_=hG8b[)\"T%]syn>{vG7'65!"?!B辛Lݤ{{ɚ'0Y;@- B=/~{w * sa3*D˄k_.k"r}yDllg$6 ъ"`]0 ?q r*gSXE,wXD(":d4_i py Xr>ght.]䟤x$צq?e* OAiƍhm ru`E$fQEcZ5(hz}6KE!#ŻÑn҃q+%G;tgrJ/8LFLd 4AEv\bHJ&)ytPcptݠRkJk/_el0aͺ֓pZ`NngoS^yaj|FXDe|6|_j#@!X^buYv*/9\DE|:1x|d-pd 9N/Z_#X'LVcwF&М0$hpq@јj/̘>[7 51;PMlӣ*͋҆'H by;d6v"<`dļy1ލ>#=ÿBT>EGS#?Gq!P!U$1 88ͱ :|L-uZC|6Cjv4.l$?EukedVZfWxB"beeaG}(u2ɭ) _|*WaT8dqJ:H^WjfNŕm@fBV 残ޕdVe8kO/eKpaG١0"5Az?uB[m Ca+k-`^. `iFkaS$g2fMl?uZb+|^#&_6'ܲoL]͐l{m)j?tcb+_H!=і+i^џ51Nf)T,?0/V_Xs#L`p5f8d ?N+͏JmivhL"% '%oru0k0"0W<Z$DTHzoޭ .zir,~_C c΋?_MRCءϝDq fx\)σʸ0IWG; 5EqH.ٓ*n{+>7QgNWi)|8NԾw Gsk[:{̪^]c N&ouJE ٮ/qUtRJ0Z7_&u\-;mTL`ZfcK}ZnCO}̶O_7XH-1ڧ{O0%B z~f87%h}T8*yѻFؔ,͞L6dž|̭+~S"|nߞX\*IQgQ_§ӛ-,pJYF0Gk- -F|M^S3ύFUB8qD=C!r#sOip*x&*Pۜޡv[cq,#4<}vu 8;fIQ| BeQܱ*m;[N_Xn~ۻ1X=i;|p#Dm`,ʡҒIƎ|7rʬoȖ{NߎTqS 뿶m>- K059lcs rvPy̸.YSyN_Y~cP)/sSn)_<(orX+28l #pzbqu ְ2-VVJ*:ѽS[TSs*#,1-tx.k<2WhPJ[ggce:1.}Q<-NO7iؖfR HoCnn[Dl"8aUY^iaR~A_!fQBd7{FkTkbD'5C/W^7B3TX&;0CT~vbM/_F 1uJwN\JKC"F2{wp>cqb6@PHT@ z:ǣ# 3%Q1@q<JD"*`4HE%1"'AdS  ի >GD)DC`2aR9(B@h&DEEE.Q Xpt 9|a= &0 @Ugp1MC@ATv`6BA楠a$ J!X(CpzI9V& B.6 ؒ@U0#$z3h#6!f18S aP5cܘi"*-`MԚaJv>Ê>XFn+@;=8iT"b"B8 5 ; nnn  _;ȥ(05dw`kz=%r{LJ!""FUi8"z qy(hii1$$$0]ӧp@j@MP OD8vk![5 Ͽ r((î^ӕ >,ID rKQmLbƍ ;wdHJJbgPQQ'+P>8tĉBBBB &zd`A9nlluz@!?}tpb&jx8R: ѡaoi`kԩS 'Of`g(..fغu+Crr2ógI@`Y`"#CT44 ?~314551ܾ};w0xޯ_ΰpB= G( kaA3" .P0@Kw1̜9AJJ˗ 6l (I_ ck-k)A" cn〚 bA4 A\9H%Lb!F@o7oހ Ryp)L*Fy E0KP 9A0+Tl m!;C`` VN.7!"j` }s>ô+#z󒨮1P u.1d@ct]=j[yp i c1)` HF-_E@Di'r)raXY<j:4N̄> &br4)# ר-O0<:[ ghȝ _ &(ט ,A-IUUUp)mZɆP0///u lkO>@@ax]l2F\#uLlY]PPAS}@1 q~ Um%=DB%8>}ɓ'%Gx;9H yHIke-PA!], A=?4|9PQIENDB`PKxC1g* " "nuvola/48x48/mimetypes/soffice.pngUT T`ADPQux W}8kߋ~ďM~,N^f? Wt*l)O(&l3Ca2)4L#RB(/"3^uu}?7+tw*CaO Ka(u.EwfeP¶̄ KcCCfcPV|H>@j%Rtz\BBG|dӧաD"1yan5cm_|kg1T:KrYeeeTQ@_w6c;ytqaj Յ>HRp( {%=Q{?1&2Gev}J2{Nĝ/:s F^.dOr<Ο힚I@M)#k;[֩`p g!Fn?9-Ӎ0,G *EUP10q^=tei A[G۰z468(t ie!3wWcUA&x`A!&(fTF 8a/3I$K(lN2Yv|(re,zfjny "幮u)م8E[ mMeH^w\e@s_D'9V V~jҩ&{"aiBֶQ;T4BajOyjIBLT9>ZXQ#]>Ȉ[R{j6e'8Jwk TAn͖qs|}99Eg*ujuF)Q$u)U+nЮe)ތeu4wDq/K$8-5i5ڟ$DiLl)}V=f@K{FEF V~!𕂪FvIGRNBZmH'{]6.%%)j #sKP@&qC0r1AgnXYu4ODeg`ᶫTWv*-dWB~RZ~;iHlO<',͕A>S M1gRdvȃ 0mn{#]M7ˢu6@jh_M+.PKz'q=~pg]vZ*5G7vRՓ0 Q)%jVQ\X2,cKfj{t%^Z4HC1#wRi4q4#ݏ0.'gM1?Uj]\x@=:iWNt[ =Х=͒ 6|^^.cT}^-miA,/6F6/o ΋+rkiF&d}v̫ՅdoO'~F1F 3^WI+piƥC"0M*؍שZ6@j*:h5$Gѝ] N48]-H`ip;88tp8ys:k*Q,V]RȆ#`PXYWQf~0Y7[:+E7B{*)9^#2R Y Lv<<1۸Q.'`[nˉHX5wMDok 1k IE7V)GF2Nl@4bK۪NW4 ᬺ2/_K/h0VBRT~u(um2}c2 n\r@e$ O0^4JZ?ŜI gFfJ)glF~>A\\QLl Z$"6i ʪ͡Xawn-Q)4BM>8@*N'6ޯZ1f6O˜oU6Jk]q1gݡ'Y*+EIښ-}6"NvrZR{ ‡rFKS^K.Pa3GwN\AjYm(hkD:FWVIVvyY<ܣ$*gwZeI y(V8֨ AC ё>0V8Z8jN%_W]˯M4րwjBtn͛C/f`+vR.OS/]`p,vnI8<‡1tE}CN?$F_qߕ;;=,)t7ei.,\H>3&&^,Wp{8?(  TȻ)jV5OQ&{o9RDqk6I./ F5uWx1Lb>, 6)ZB!:ho9+oںs87́{a1U -)ˮdtHIKуc:LcJ G^(o>f\>b^WC;K{UaYa|k5HU]5~VW+Yq"3[%9(ݱG{?u3Hàm.}!FI :Z}T͉%Be5'"ŬzayaŢ߹kUAAb{&kf]20aKvnˇIF5ަ'T8L?+\aHnӄԜQM"r!{jl+ug=uJ3%$!xo}ۃ4|Qgf.p < zq]&[.jyY{D߀(Ly5dH B|OIPKuC1 nuvola/48x48/mimetypes/sound.pngUT N`ADPQux %VyT rBڢiR`4NSɢ`TT幛4Yګ4$iI LYJ!i5h=9{﹟0nKׅ̉oiFM]EiG,!@K`s?8VݜP@Hv)bmP!x=BT^ffˑ1~D"h܂g$Cs0- ,3KPz]h4 3>?;ޏH"B= P1[ca@=msuacZ}P4/Kzy5 O!Io<Hܿ{u4g&<ѽ<ܵxKչ?.cpFt:*|8>1ƌy%A&b1QX펤?AϨ߬ƴtP&(500 Qz6Xbj|V7ݝm|,㔯6J:j]MKTՂ]^ՋT!V&Pn[ZȺ6Zh񀎵N݈SèQ5# rl\'\Sr2+~T5HA19q۵.JVu|Gƒ6Y]D`[{>Tpv*ɵPdIP6 G0Hg#k^+ Lr}{|&)Ё5Ym珗v/=ұW[q"|v@4#7|2a!O2Je15WtOzBt9`ܒ "骎^fA)Jm~ljϑ.F}j9 :plϕK"p臆buhLmK-M+ܕ: .̾s_nSǯbs\aS*;.uP~v Ǔq*!Y7T/ne»[3mM;/λr=6G¨o0<$&s\e0?ů= G)8'`#ZAVp|kGOy"nIE¹6RɔE%$0!j }؊R[mb/Ceua~:fi0-J|erq3A;%츪%DmC߂) grK$^u"AmY`?z׌MKMhD7/1$1G|0-^ 6&Wѿ)k ۢafyىB&$$񁾧V$/|z6$j]Ximm-L /N:QC~Krk:v9k3ՕMaUqqqh?\yHCk>⛋.Is=PF ?MT-~'_re/*訂f4l'B[0*K9W3t,,Mo }Pдr,*͙^[mQ7mxSh.PrSśӟ,/v ,DIRbbbrb82I$IX+k¶絝dIY= mH(!">H䤤7r vb)F0hJAVT;f&tt&p{^E@6q SC5Eex@x8k ۻFbqKkMK€E?|KewIjYWROL,*ZPbBȃߎyyztgPښ/*2XH{ת)0;wI>1 aLKKK;;sǎYL  KPTVfv800@wsT7\nрk Bhk(kRa4 8jXT@ͨC?<ާ}@Q["=0P!qzQZ{GYn3=Ԑ+ sD֭/xtJJ#{Q*݆W['6?em{wfWA޻N[f#ӇӾcv=az$4cK0-omu_) H 1~!h?DDh6WH-n*/6g, kt$)[cAǴxguׂr3Kse[U=q֒م6#+Ә'_KxځOx$ O\J]%GvBbO%etkXɝ/ 60ɽ: @jplƥ VpMbm<9'V]ؑz:/o0Q[bcpQ'ƦA092g$1u' Be藢``:miP.n7ʖHG.@ځ d ͸ zjFx6tuخ2~,yp*0BstV>( a^;#c6vI5-;N!ݓx5'{plh nf.r[ PhW?E :؁gy$%_N6/UkFF>922U!jdKzOmhՅ! u{9FP&&g#3=)asl?*X!>y}fX+BV9'MiL_qj|&FZGT+rm}A8_&y XX{W56&-@(5֪.ok\Efrxfۏ+.;IgH3~q983:Ia'8/o tƒV5P֎❱ ;hjC cX?,Q _uJ ?Y1?5 Myb6`a"FVHΩenVir8- m,JOۈRkw'&n`^|ǼxIZk>ߢw=_>Ja龷 !hжzW3 K]/Qŷ0BH!87Jf; ,~bkJ e+ :-bu &4uīн_ (()*ah&9.-Qjhz9ʽVaB:p}slAc.!#KW< #j\HVPMͨվ8|3~T j64r wA_Ѐm@3 }1'Bb^h(p$$"l[XHhѮ07 Wx' .-y\0Sahh8>>~|ttB3ђ1vppHtg^6&.u 2R_P̈́\.^fsj.o-CMNLʂ0;1?V&?{\QM ujp&=ux>'cn VM˫ OO  N t`eF@9 p̷N㴵 ZE \8sTN,S>LŘcQy.ٴ^H չ*%"i (n[PaY0=qs3 oJQ]%3a3|_S ᫝]%@K6(qvCk Qw̑K8O:'HFr2oY,5j6QN+ϔ: FY@Mhrh}TIO# &pQV 4BfJ']sO&Gtn[ G:XT4/}sZ3EH ؕcCþ&/n.ҮVr-H*,1Ll􄚆eC>741lW`&rdW){cՄZk:8y bԹ߷/~ g2̍!Uʠ_"OY4{)җB w#,<>FۃL;åqA=%K bm] vo?Bb6XAbUGYH>cHR:q59s{brJN̝Olom>7OɄ I*"G9-+eN;@H IkQyى Oe[&ҫ_ۣhPZoL5']|17cF75u%Jن [PЕqf<ڹ5E\zE$gXfٮ)h47ePd _[_w0ؾ#' x \Ft׮/e+%)j~֙}>X"ZSu/ka%\fgCW$~6? ~TYnWHm` <ͩ7 P|dp̬^,zpSi".^;􏅤iU}2Vy _lݙHMtWjPTܹmoeyĜhuBCNgZjsQAFLv^GG FDC"_WHB Rpzh^-m=TkL^ )D4?Jv晎ESV)3 5q~yL[cvq+Av˿:ހ(}5ʻ=i߆49^ ;֤<#m~Q#7EJ &fj1Ϥv#^2q ƒ pkC伶wń[Rns+dr0o+9t"}3eOEM1;51aۇ%28𸎹Y]ϒC)ݿhk}iaatF,J&pJ_!F*_wE E|HJԑƒfXu:!. p&|bP;(?xzPF;Lv]pC| N:T*2vGL"Iކu\]+~H:~yس-\$in1v^@iwz.3!V =QbuM~WD!B-/̖$xqU#BpNjLl;)py@ HJ?!)Ҝw*13밾PΚA)^aU~gC5'dJUk_3.?s䀾!jF !Do,+{aM3u'gv Lm^nҮ챉ÿEG Hqn 2^zYy_"9E?+e W(;G1ߓRK7d8WŖHf,~`ggG|'hU߿2cY\Rz/v钮Dmoܕu!MGfꘑFs[׭ *qf0P4?W{*]7;U`{XkL&U3[Hv||@䐡.US̆'>J^HvkPzЛ7w80#UB'nvxPOIL(Uu*N1q(>B̧vtdA[ZYB=531DCy7 w\R~` "%FkL5 o}s}/qU|V/xnn/(%C4iN{U$Zf[;LI(X?uICWݓ?}8oMgP>d>D`A'Oa`B![fMܴGQs/zdN,0><qf݈x."O#e5PDCn7Uo\[.=!2ΰyI)T>4#ejjjc=89te@3z&EL22y0]♎l 7no j'IOM)j VS?~NU2ΞViЖ>UT*Fx2n=D.s5iq ^XzpG4f 0.g\$د_k%T"gVCw-R_tdžqt$Kp=Neؖ,Brͬ4S17nW[FH 9Sw d],(J 7zՖ3rAd0SN:N0`V䑺}ÿhR6wE y ~V./m-x*0zvx+T1Yyh<@Pv)&Y^Bٮ4}:@7GSt97v>Khgx|1U,~K/+1I# Ρ3Crj cX$R#i p^x;cE֢ gzMYijz91$`J+5J\/\yW&s^~513C>߹@ B_lgvUgGUQ9]c4&j t1/BU.}`g(KOAARcf 5=m.5Exjr =LySD&,DAf7N+FŽujfWu(wUx XHRȂI)\rYQv;GvugZz?NfCBm;MTf򁤗Zbl1#7t{<;e{tlSL"?}c}ڥ wv&>fC4ǓR{OaY:JX&D1έBn6&_8H+>hP-E_e}xtJ+s0ݲ "˵ۈbdCUЏKtKtt,}%K 4D9c:i\KSUB3E %+L {ăjx dV`r -,{VE<X#&j1eWYB4i"%"hkdyppT;г٦%|^d\H0'?j|R4X?xCRvIՒ*E%ж¸XK؎-#*ݷ+z|Xiwx&o>Fr:U4wSOаABE¨\PU Sٴ!t/ab&tǘ]}/NC@NSi. ˽˔6{ +v{48Wq(nZSWNKKk^o>G۴}I\& ޷lc]AUz&׸ L8Ufq"=M=WYWP"7 kDڇP}pF7$WCw0~ڬg}Tif2k3uR WDPKhC1o\ %nuvola/48x48/mimetypes/source_css.pngUT 4`ACPQux %V}<xEl::VbҼ6?y,GgmC#I^*Xu_Eae^rR(q|s}^$gNo8/O7m\XPoGϤi>ۗ :gMA9td.%A #hϖBQs8ǴuׯOcNX\PXK^_1sFZ+1qhR;ޔO1ܮIJU a,$`LC3> YVW/!9Q9dv`yQZZuH<ؓλkK\qAXi?:< {'k29F_GLjY9sp:[<4g>'SK_ X5mR!Wx6)bsiMw4 `@VϪMb8͚IUѭ18b(  R9;c Z6Gl477/N/qD@R޽=_5l; g+oY"7{!Gk͟" ƐzLGJ6|ԇ0kԊA3B2tUo /#pmuQE vηttu֭ˡTpm¤C˻hj_'ԹX9 2Wg,Y 9. -K"Zw=vkA{Uw8grZPXKJPwN Ei)dǁQWtT@H2W /X. (]p4sXGeyN/Rv BRYKZ{V)B0_4Ė&0n1 ˩EoJZ9F4vJOB 2_*UfvةH5Xjb|xJk}iK`7ϲB-W!B+ n Ylznck n[ m!ܫtn;^ҚbF,{kS-'/۩`XQssf;uQO-1! dtHN#T %|tl+t;Y KZ2S`dcV}{= q cd; ~- =Q Z,.~k+h  ێDBA._`'*& T24;6 o1`dlY#\a:7p|!.{$'u 墉53ybm|c@rn3 ' -=I5M"5K8On8D&gF 5բf[t6H |MNRXLu`̺s" ADhL=b,D-/|O(AjߕZu(jZv!ٝ} +;LQ6yb[Կbl:ɳk_G7zeg0E.z7tI@z"y-ɷs*jL ;Î:a,0jˣ&(pL%0q:zi˗ikF*T[-hSvIez_rLW0c'^{`rM^y6by%%Ӏk"sX]%WB!a sw۶6__mT'j|.qjҚN)i_rYbDE;LdWḗI: ɞɳi6SFɑ $׋gZrG-XcB)#=9ADz6Rsk6?N;jg\:R0N$m;4rc^IC6R;;::ݏQ۬wH::2zrr>M؛gV}7ø\T d })aѰnl vb YWoO6&N~cmIop]E&^;:A,ev_B%9 ^TB5lJn :LJ/ DŽ 6mq 'PKJC1m0t { #nuvola/48x48/mimetypes/source_f.pngUT `AFPQux %V{<{ml+ s m¦刉SZ8lR)drIzz\&xt1K*Yy}_~jh"5s2[8(2CWE@3Ĺs~  Ȑ0dpDOX0/17 jt߄B6 W @]ΐQ٥RЌԎjx{_.GS(MTkocp&?Κo.NAڸ'ɛ? < Oޣa-3h/?<@!ܛ-߽1 _f ٵVMWQQMi`3/?_Ѭ6A6s:fP q{s߂ˑ<^'$̿MF|g%yu߰P0{ߩ!0)5ؠy&m=NaD4553+!\]#dߤթrg).*/Zx- mAE6gNdGAS;QBKwe$Vm5BW[CQureykkLwW{{!}{ܳ4K9,ք):nTyhwv3:# &R6kfQRG S 8)tCɹ4O\8O=| ֿ71ڸU!NR F^>ަ][~8(DHaƔt{*G fXge-H mЗfW.kbjN^Ynkb:EEl^8V ʖa2[P%k~@I\<+Q EE,+8)C` S,GjwO;ƥWhؐs5ۻeG0g9ȅⒺ9güݏ;",*Q>2x"MBi6I ЌKUaeMb''L6)7΅q{.\?TJ'ԛ-2RG,RD8wu[>NͬbaWj{k@g@a?M!-Y2YNSAZ2LjU9Q}H ^VFJ<т's{tٳIHO`1 e F\@mIC.`n9@ Xǘ6#t`K@X&f1)(֝=f߃QU`8jD:]I Fۑspr>S) {# 3 Ek>w-nZ֧JoY܌"my<=R㾯[C?[HaRuvPWbnFбlg3֑QwMt5yKw6]f{.xnUDYU"cA>А1;%ے+J;D'QW <Lk:~^D{: r K1/L7A$CT%@ Tm|14EHT{7,ak$v4PO8(-N8D8PsQc12ƄzȜ6*X3N]tlF*?$q}-hەoer\|).F'/I9+rR?H /llGұ`YTgYlQUI(<||xWLvΣMyG+pdtٿ%? YBCN/8hP;o2OjOI.E"FDb@4οH$T2FgWqyF!WHOqlxB#D4pF4o^G01C{g>,Vg[ `ФNi^XKWg'M Hʮw B'nZu!* [J'< (׻(Θ/Osv9 9ײwkU5 i͉J533[oL3?665Bq\)U}'&\/߽9З`!Q]v@?Y==pKv꠯ WO ʯuVSIpam Cr@j!(R6`)K[n}V؎fiW @Ut9؏܇${hbx"أF3ac&Jseu,ϾhFlqDw$8 /)-SPu7khvMpHuOWc`?K]SUN,b ~Z#UX<]EwΛ=,ܴPKGC1$3{j ! #nuvola/48x48/mimetypes/source_h.pngUT `AEPQux %yX_>L]4Q4;nY撀i`kYz@\̬+zz隨/[~]A6kt&dVY^ZԌ=̏$ _VQ*`齏, [y4y,>]yCsH$RWY?Ǭ}Z.j%<0hn}B߉a./͍Z4JTvwtwӍ8a2uQGl:(+z"ho쿝ܨk Hto@ UOsh+5rˈ2TsI}.;[}"TqFhA 0$[y !ԎNK?CAB@S/$L?9 m?h~qǏrg@]?;P{ b0[Y'.AcnpBYfZbm:0 H;X,Xcm 1PYȣ0@L:q?R"ں[H[D2#T`Ɲ& ~Ґ{](|՗GblHο4P)Qˑ o1bX 0D0,Mʔ}`*=,4'BWX[ܝK \v}x]QFl iWU&s?ZZ^;c\Ea<MDdE,9sjfn(TiXj:E^UyoA;XKVG=_gLN+ tc%1s饌˘I71(dA_L4?Ό{_q~*YrlkT($`O%\~%H$/6}:x>[# yY}{Hcf6mDԛzNStF·9Is%gO8/J#IQ4#k"4wt9+ZD ߅uprw%m(~oaԲϑKi UEj[D*pԑ+MC޳ k/_g+Or'Ӿ(Md>q8 {t'!K S44b6ddHCMe6pަ/z@3w;ѝRV'؏ڈ u‚l-hbSNS6,dX CnOXa+RFe"09#5fq1-$c/qYa%\:PIL0BYdf 9o}$w~ KTǿoE=K6rfΚB@5"4.b({bZr@1[5+OwcΗNYCz*PF3P NzrVm8t,ԑպߐLu*PbJ1ćviqmU}W@[f4YSH+;նh[i> 8.kDaLSp,[+,r>#ɵzoߚ܊޼1;΅L8oyzI6n/2ô 혓SKw}OUOxKp*YxO\pcy=|tbcՋ ~)[wl9厫ϞGu(Lu#y.їh4ihPn/,놃R$7Rn^vq2X'݆ܤܫ:C\sTkb2- +x9 !x)6.G>=;s(Knz6#Ut\aѸ•9ShhkeA֯A0v9PAꨄAǥ<.6A~&+ d "Q(U$=i+dAR@Y>Ca5O<>] |&.٫KOj~UȨcSC@P ئ"ThERAu۵gLۏ8?KIQ]w܊4oS)..?F+h!Jא PRcSyf lƝf {+k]P<Oyu֪RwpҼ #PomRb=|_ΩaH`_nnVΚc +<8`aaWa.nں=VrwzD B8Ɓ {N~<q tI*)nL9AhmXsG{uekas(kB,mBD=F!F PM|eIo߾e_$ly ډȱ}P>g8¯OΪ;νVr P LuM gK4#9my[^oK$`73('V,F>pA"_+ .^&\#(25_[~2 ɖW(F۬+jNF.<%E {́& ~QG'zG`P6˒GޯWoJ"c Bq~VZ[+~WH1}I@ Yuu}T`'Wh%x+1A쯀 K0TR .暘>0im 5Ъg.[.|n k0HXkon<ݻ<tz⨦zE87[H)ᑏEFo(iXoJE K!Š, S/N/HVjJO\W@_٩yrD2۴$bҶn]XKj<-5^Lh~1z5@bOlB"Z+O뇟80,u5TƘfGؐ ]]Nuon'DzREVU)n Ӭۜ}[}|91SsrRj&̳W W\RJ!K.9:DD"C+E6v_fnϭrܫVgrŰvƛbY6D]F:+8~ŴtM{zL 97ׄ&#\K8"]mJf@"UWn=(|&6";e}|F{U!sv>NuGwQIGk afh,iokP&F#Pgsr9L5πBȎ^ՙ ?F;@ʠ&DovQ3K+7Otn1|+"JǾ`مPR<쒜7 Ĩ/:u,Dk;Ff]WJ! @' bh펲Ƶ傡lxf=?9NyʍS7ɡ >')~6os\O/BkĢ$Kuз͌SFdjF=ac}ڸ?_%gUhQ4/b][U;f3rvt OrH>5?)s9܍k'CSlK>~D߅* |rc}ᲞϡC ӆ.b3ža~4֗6a- g8xS .Ą<>Ffztcᱺ}3z:O0q@>\Wӝ)i^aii#Sb~tbT ogd\(&2zork  szLgbPcŘc#–3;LH(Df&H5~\'''^T/~i9B7 !*a{)3wрVƪBIሜ}JG VQmWwK)ˣOG [X_v{9;i9ʎ'yՁ:Cr3\bXѦlll3 g ab6öԸ# U獋fLx>9ar$T5h瀫1<>f#.i?3EV'S}^٨ ",HQ|v@A2<:1)9T*"X .Up*ĂLi9l왐n (UM*8{od1NF>gggMAp&&(&ƘlA~9|X?LhrxPP;_/?񏋛 I#G"EX)BgRC3NaX 01AٙOwB!W*bo  kL f Ɔͻf46ob:9ar! gƋMLP2vJ6B^[*u 7XG ׿x`FmȢzaeUY~!ƿeRU[eu4:'7Z/a_R?744@'NpMS{A s1KIEjt)Zߢ͈F3hf`(r WR# i̔Mf5ߵ/oAyԨvr!#ή:Ѕ# $E*^Vd|=j{ ExO/dQ깼;.Gk48T.ϰ;YQI6lQu /R.;tH`@{M.udNc2^i-d>#V̷)USeKÁUYN܌ 6쑹6m"(w4]=I>ðff҉E`rǩ5-Hb"Ub]sQ9%~oC\w}=گwc$UH#N=QOkggAN{ߋoZ!uQS3UH%f27滬̼[)8{mVėH:M{AOWO'I>3vjvn);zPSY5)c\k0it۸IwD P˖%3Hi)"Ġ\hH$CExa0Wydq{}D?}ғi}}}dU=@%s& h1mIW9곮mKl*cAMяx\EZ,U)yФ^ z]h}W]qMX5]`wѸEd0J1Bs+2wZDP:Liw}FG܀Tݲ0|~_V_r!\5QږJ"ŚEnfWF`f|T9W<<(=@ʺ Rb̵2? NWf{ډ*Տo1[6ٰ)Y@^.9ϐ`tƪ*a~EFRN/NhYQ[z$6ȚGnW>٬,e*YASKb&Y]_^g]]CWlNC=6g^C{^a}^Cz' A2$_ WI+TRdgdW ۔HUOuM{fdDf ʄih#UWrSx)Yg"xk:hI+>u}xU10/yZRr7\I{VfE#NSƱ.*T bbc.bh~§Z jv5?{-8c5Ox'o{4f{oN뱔@!΁%ٔpFxKZwEY~ %bv\eir OrÇ||lVvεN<$eӑ6'\v@VRTM0 qx͑5fP]{v@ Gϡ5:@y)ƴZq#τ|9 ///vȴvS_aM/,ۅJ 0ren[vQZEm9 Q`>&oI b;01@) v]GC)>uYdu0%="޽{bj[AoTAs8<.Kl͡nn#t̞'iL;R^%߂R-S >\gbqXjxNlԃH@ImS봲 yIoddևɀ3fIGd^N$0"*+:7Ѷ`t <1e0`[ 敛d- PBumo")j OPOd e\j[Qlq6rkh |rDWj -X"_/=߶ cպd.`)aE Aň[XLb^-h*vhl[6*'b>46 !K^,$b>\O+5?ngQ)V>kZLN)i;,ij ʓ̈e>8CaOw h~\?^R̙G|Q7/CֲO]oj:`# 0pЍeUa--9Gl̒ ձA*e֘sz}w{rzFpU`BB~.7dG1A D)O^x*U&"kCLQqeg{16?D%{'V9_`YxBLF\;-)K/h {kGFڲoĵ~XL%LD26ȡuD e:?p3r6A9^~a.kuEM`N!b aFܦׁWV ["q`(;or2;Ku.4SjdOT^l̟-~8\)YzNXCC Q|X{p9ASjV W:7>ZL\ݔѭ`vEe六}NnͅYo a'([ PcZ&ye9^'/M#~` Š$%PKzAC+3`cP}x,c׮ HNNUh_9l=qX.GwwB!R{uc ^1lɁuSGF R qW` 偎#T?xfL5s .:$29 0{ِ {n/ ccN Ӿ"FBv1dwdmCٖ4%;Y>"rFtE4]UCO56csBPC7o|Cvǩ+`sa{mLwݕ! '+M&0_温[j=YPK7C1O/Τ #nuvola/48x48/mimetypes/source_o.pngUT `AEPQux %VyTiE@ 6MLC',\QKԲFƬ[r7L˥*MbV||<=<$9@ZYZqV9>[b"BA9@g7 e؜Fф`Z@MǿSF{я4f֞E2~щ1 IqĜJ:.*ZU\Tkd:*,/uttVCGGՃY.h+Q(*c_îyU>@ rBǽB~wM4~KN~M,v 4bꍍWdgL;'cH moj*b\/TUZ?WOFE{d8+۲%+=}YRsՐ2QEDŽ5Qq -M rQ\³(µ&UꅌR 4OqPW  qB<^R`4i%b{2ڤ" Jʩ3u<}Ӣiy,ݵ*xos-mm ^R}5cj$z=RCK\S{xc]GMNz| O;siNh'ttq))K]w'jx$?o۶ c.! <W4Myqs5|rV"H&Ga5 tMGR՞d%\`@sZ01h| df<\jS1Sp:dC_d0 ihWLm$EuJǛI8K g7;; >ݖμ<5Ei[tt:@̀o)yI- 4"`0 96=*S:pw>:ב&itW%ಏOhM{kF̵r}\U>2"OHW+waBc.̵sSFc,rTCNBF6Qɘ_5Yh%kgiNB 3mCqCJs&c)bcRlCOD AЈݒ/r}U;^^Eݎ6[9Yd6|ma0'1/I{//qr9JW1TKEa")AyҨz8<rL߷Ţ/@f*f,I]qReAQHFlE_3SMs'ߦy)?kրY{tsZl X_l{R*!PHsEN~l7zzlcgփcHV{yU6mLaN0>ʫ`- m˒m7osF5Nj:J'O]Ì~V}i,7boU @JXB%Ĝت {|O_BOAi {(&&]Oz[PmYD5 \IZ))C2<;!ʆ,u7j>CEWFei>"nzgR"]~w/vq XvdNfx~wv Ji!wG X?bR5W\uD]]y¤NROYDsudjUƭ9=ܖXGy +{QPd#%[pZMm〕MHbFk+v}v}K6 t |-akBYR" )n䭑><){+[0` 9zjgU2"k}%VɖgtIpu2˲:dE q߾*Ul B R<+͓¥4TmMQ{<*=BZ#ztb [&¯ۼ6"]Hvq\y@k&}G""B]H?ۿub2^KG]-`^ɗRI"V ^0?kE-=qv |z'gkFu);KJK?v{e U>|L:Ls6oe-Weη `p3;nu9Jg K.-e"tY(q-lb|@ߏG9^ |6 IPK9C1  #nuvola/48x48/mimetypes/source_p.pngUT `AEPQux %yXY/A~F%FeX[$ 2%mR\J-2S+J*UӲeupɭr6qɭҬDE^?9}ssιo:oF q9}Fw}-,nV-c1?GGVH =/748$>)#kz_+NYTs#6A!!!˜>zx`pݬ\\\SZdd[ʻ+#ѩ5oH08lER溞.b0gJ]omm%m,Ҏvw#G4B:<pg)~VS;z{!/:x_vu7kq<V_!{kgg`3xZ V=0~bdmAduaEuW20鶁fbʃG(i/*^@@q>uTqZ,V8B TSF' G XLH^>Zc8>>qWr>B~hHjJfw}Nu( <(}K#d#%A; [lWȤeXD)iMl6$YD-t{..ZZ*{16m;jgZDO)]b7SnAMWЀ[r<| #W,a[`ّJFٙ:3\Tk"(<^MQY?wi]W%>IU~NэU =KYbjc{;),#Y.RMN_pfp5^(1xV }sіlS T)D@DDP<q,}~s0<^gJA6 KXK8`xHs }sgq2jpà[ut()Ю5Wu}JIJ=UZ̆5dE.G̤G&>Y#X\EO'꓌ oo_a?囼SW3!(G 09SiXM>瀣҃3P" 14N_!աEq7g'Q./8Ɔ\՗L3#>q &oX6荎+6L+ i9NP|q[3ATuBHdl`Mޓfe >YAc'AqMּHFUyKL,w3Տ+Bp927rR ݢJQ46Z51{B{RV4> }}iG;fU?tAQ[L<]N;tLՋ类κם8B|)ZCCmIBt w8s|KU}~R4e4$(i"InPꮃ*ٍ)Tkz[&־Kymy #`0κgj6X^3j+‡мh4w@;n8nW|^bE9]?1HⲬ,ŠK|po?)kѿFN#xv no̊_|}~a1VBpұ™X<}s[qo[ B*"Ab²_n5/F[!Z;çpbfER2N.D.h>wz 0Kvs^fzãgjV[gg}0z-éS,NIC[|<q9u{PCmE+=IMHkcSEH_k5Qܖ r3eOڙ)CDl`R/,N8KӔ|EN4~pj2̉[vsI.Zaa(V&=(M|VԵj YU/~{IgR]|{Iq6w  Tl[PD LtUqU591;j)ӍPZm;k\/B56BM#`+A3$PoI6Z(PpLMRF_:-gd>ȌB@ΏE2A)PK&C1 8{%K%nuvola/48x48/mimetypes/source_php.pngUT `ADPQux wTSo!x(^iH/) "$Je}$Q!1&$E% *訠*\ ] DQDz^gYkޢMuWjE?L Tع\HbVͼ=}F|jl)h+)aK+>3-[l0("vQ򕇁܈T*+ޟonL݋8a~&F=7?zY9{j3|-E<==:8(1gf܂ h4UTT|k)Цc\o)E;~mN/ߺ&y"?sBY vxjxU N RO;zv7D_},i\h˙tvu3-s~u7"xc۶3eUڍo:t ֙Ɯff"|.  D7aV|h3 MoBNIɃL[,Z m/zޟiޭf88<$/:YLB8UPyXQ[t|J`&a>Y;7!{-tM~l!HURɘUF3 ^=z5ǜBVxHwLzI_^?-yg,PR*Ap_-0R.oB{ؔᤞa4, ;dM'rVd֬ldXh$-)hM0.]0C:.*\*PoXw`4^Yg W[I-. |e0T>$Nq 1 NՓ"TmI{ pn"<|M@?+OïX%$+k>Vs8 ^eNbugy9t~ pmkhTY=ۓxS64wh6'u*6˼n 7e#(8x{G<@HއrE~K09Dz@8 ˔4vZY6ɮÔZWA?/XFkeEu6ۉ<髑^dXH}32>j͘6; o@p&qW#sUX~W"r4WB6Hc`j r13Υq\ *YcLV=Z"AbS&&W^啕]L3 lfZPpI' ު%kmC[IRXk'D"wb|&c,g@vgsyN(A->Ok3Qc3quUps4ëV0# yA>L/h額4CMlb`HF~s*1㛈$}9=h&>_X#Ȝp^ )Y*1F ӹR芭. ȂR1cA3g%gԢoI&/Fġp65j pd낂CeYs\G7cyn K'& |®"N0 ?Qv.!Ϝ:H1W$Se%HUaD3v4c*NRnELT^a/5-,ݟv*861k+B%R9&a#(+F/$g%*ع_@DBɆ I1O73J){g&2 ME;$^^ vvO~#r, nVRwd/@ CoTWv fNWǹ3Mϫ59I&dN/$jaC~-j6Z/Hѯl|A%@aS]TiC3YsC m1Is<װ|M8L$ή?Ք gH5ϑ(MV* 7AtrZ. A5s)))Q QH5Nv2q9u#o& iTRL_&Rf>ԑ+qD|—}ul!-NKrq@a4R(>= 90(tLA$I_A5c_({j)ϟs-[tr!hN&k䴫P/w\xWÈA% ޟ:xGeY |3\ RI8?W[`V?ކ1#$ljA.Ge5~%Ŋn3 ];qf$[a,udw%Z5ϷCV0dmGZ=l 9qe΂aޭ<5OvX+!>$G`5l `j??8l Գ0J [:bWe4ivJ0eR˶3GZĂuZk:zC]x4%z~ɦ*qn'M6m. '6#J7aNdrOS/b; ~S@PK$C16  $nuvola/48x48/mimetypes/source_pl.pngUT `ADPQux ViTG} Y!^5DTYbTAPT@$lA "Tj " ť(Xe@3ϙ3yνwn>?{R#\PCu60hü5dg F kz_xJXb|ʡ}q'6Qܥ_ p^ɥ p.L&+9))e{a1#}l/Յk3uOܜ958P5@xGU?9Z5G}u0 ]\f +cNqŋ-ǭ$Lf-f Ͱ< %lY;AmRek$R6{bުD[o)Wbi1Om6D+'5f\O8FiM ߿;h(jnCO3@QZ_'{C4EsҹO8/S"s~O~^WWOUӨrToR3fFn6]*}\ Q$,nJl`ott`p&OJd@ 18{ԼX,EO+?d'(ޜb! кHW`r<<6 (0͵YIHC:w}x`PA:&ƥ3uT?-*}y<@1і]N+b;W,%Ǿg(CgV^}us?ݭ"< ~ȏ lgaEy)E6xTGP(΂ń&&lu'vH&P {R#Z86S1_zpEʏp$- P*j= LOG츖 $'/ds:~GVny$Np+UR(Pu87Vf;.iFn-ܳS3m:P % [W׭it(Ixkb[l}׺#}PP0W$M9 䃊CǷltIM~hI_ՄVʼ -tTJņ?/p Ef>TLzVr39jK&|Y5LDnk;OSu݂94S!Sma @f2C EVɘTJf7cri<`S(yBm\:?!%Yr1?R{" u"@#~OVP4smͿodf$\Y~C~ϖVLsHmukn*'>Zo{rjՑ}#,~* Qf+fWP+Fwa-u#wrKlcyL!{1iU5rw\*VJ5fhTK>)ت*?2\MDŇS̕/<.0P,s%/CS%);廬[p-޿^ 1& u#W76Of66ސ: Ǽ"R(т"#s 4m`RmikjlgJ~!\?M17hUFN2u9ww?(E9aQc*|xXcV*xMR_}xE|:[a|.1?+ld㴉/ɰEpI]q3o_jqcez: K=ghj {-]) ˞%,SO5f}⼌zL`݇ ؚKmgMy|`3%>vFV|יSFLR& Gߞ/Yerut:`oa lQM_YEn!ܻX8r*TY&x,c䊋RBO <d~0>l/fτ6&ӉQG^7FA~䙟uES5. AwۦE|+z%Yo8nr?k}Ȑȅ5>3MNQj-MeeD g9Qc?6|,'ʵ%͐Z|.MwsUhG&]![bӟ⏙DC~nʖ{0y7EW+Ѷ(=C 15RS vHЍ5%)l^MXQK  1*PK C1}Ӗ $nuvola/48x48/mimetypes/source_py.pngUT `ADPQux yTG߬o Be$a3Ԉh"h-( (1R*KVU &VET-]1sϜ9gΝg͝XC,@_&ҿ7 Zdk Zף F5cjX=?GX1X(𧨸ؐبDZ^Bjo JnJ #9))`J>XH/Ӄ4bz.~ww,H:@8[ZllC\7@@WƜ+WfZͰLb(,L&<1|!WTgޑȜo\ɗ;ZűK?jzPFYEfLA=oy3$oow1,E)쑟ơɣDN]\}}=+@T18f.W̽,|nMq lbpGdF|2;?G9-!O<6"T3ܗ 07cT1Gt=IEL,:HKKWAkݪ^\<TGcw1sdw&9nlMցƽ4siOzGh]or'$׶[8Cp̽J&Cir^!$Ij@,@KKΞ-̂NEcQK{Zhbv-ySf klz"lNAbC} NZ9 ~ө3qu7|R QoE7Yة,_%/YKSFsr(ڑ9#=Tmm-N"E^-R)@{!(0CA}R CKGH'8$#+kjc˺N/O3]w*~JNu~ˍ%60՜Ḫ0A6td9sOia@N`͂UT=5ttN@}޼y̘lLNKVyvV $["@34X{TTE4MjU˜cO/,'zM^oG>xþ=Zw 807D{'ر%+3{c{cߵ4Lo ߵBE5RV7 XfY!wy2[?yʹV c*Ԡ  cvؐ]OeD>XGq8G-z#/,zz{z[@ŷ51kZ%kQ饣S^%:b *xjq-ZՊlϼUQ:d1JMS1J-Jtu-c Qek$yо@@cՋCD֍`n*oڜC@;rJ";Iz{q$fZ/DΆQx=kPX=%Cv3-}a?# hl zRR<98q1f_2P002 n$S?, {ՙh( W5㺮2EDJO2{B_Kfi&g!#牙ǐ9ey{xPwyaƔJ_- 7 <b95?kk&ytljrwe[g _/0;Ma3Y+vǐ>I8MQ.͌9ѝ#%OD-N_p#Yŧ>C hD}#ܯXK[GYu7׿ox =Eռ}{&& Y{yr~fdp.y>TQJwSf`{Tjp/\дzJTvy,9U]v~xKo[\D=ܡ6򙎶"א{@y'v )!${͍_eM+;ԙ_'&MrF~J&H&/RS3p~J%ٝ&0hIӭI6mri˕c)@த"f/cek4CJ*Z/gD'ه'j1{8a1W3)7$}U2y!+7UGtRi]kp5FB ZO!i~ bti<=FX9yeXm`I(khh| Ѝi+,8ZIӃ:Z2 IKwIncl;atdeGݞ``AclĜ#dwt~ํR6:Z*f 6yNEf϶ԊxDD~{ ?K Uo 1\#z!JY<42HB//ᣍcr`a[8U l=R(‰ޓbl%/΃ި#GtYs|}}}ʆ@'ma0!m- XazrЀT)̨T[Esq=Otɾ)-<9 C@#OyY377x[&ffTh bwW`W Zc1q!AA NmP6` ,G2ܠw=T+hZw?+mX fR r=ͰVxl] g 1U+ ڒpbVs`#wN^Bc #s"#&4wO'N[wW̬=+ 4=zWO|Y.F0naFKz ޮdmv؍jn=V1 u-,-ifgn:1 I ߍH*hI)g} K?ӇIjep8+(Ch YKuYOαcGrMQƛls^%r T{m#u\X1|FKʵ_J0|-R\gح9Z2\"pó4>5<EO$AeG3NNb}6؄րw;~%KS\,V-h-S \+:JUQ( ͑nH!B0r9`At"u;ӛm)b:7I;c/n#_9Ta)"^SĀoRU /)۠ø``\?c׃'W~zk#'"ѩqEO*Ir/NMlu ֣LQ=wkj.M(Y&XP,iH([gEL S(Z-5 {Z% "zDyijٹ.&Bwqf,h$^Zޚ;)ڏ=aYbw#mYܓ #ߠ6b+ҵ qvɾKcλfQyfK ^FGnXgZh;w)ZlDNbaVxrj >6N"1uLO|2J~VGZtG'j8OG4uV'C\%_$0ܔE,- wz 8u hE?d\(8W{E}^|4Oku745D{pj/A2w!OT;i o-Z AG}_ 90b`j[VQΩ:W8"[f^⎑2pLj`߬jܾ 4f" .?KY1 wMgT9\qIuKf '0{,!r/~vT_}0>-/"y XgX2,JtC=YpaP$p3y}yܧLS9>iZ B;XA;; UY*YX5[Ѐ9ڶ>+?[J|%Gć#G-` ;&Jmp)'(oNLXD"QD"h uCu(=y^UA}|lg>(#qyoE]V8XnsK)># މnfl` f'"Ĭޝw!1J7~FcK1?&0.j?5[tST+w}>&$c~;wZe\WqUR3#jO)P(hXc%BWc.Vr_57' gNh?smZSg0Th%X|ĩ#MU^Kŵ0"/5Q]ѹLjo˗t6x12M9g&#~'$$Dzp;y瘐5-?r:Ss}Ns輓ND*;jdB Q|"Rp"t?X}-.m-{'R58Zrym2~mk{uboo!50IIo\4[ᣢ3fffɕFۯglr&R&빬tEKt9ni =)n,FҊj;FYJ8` t?S@vCYCo/s=A\뼫; C0=7['_op.7g HĽ68"wp-QB]pm} -aDӜ,/cTy(ڐUzF rRPkSK &5@4 #Э%߸f:iHEoduC2]RZ0V3Q풳a-M/C!7| 4׏u/'p:;CRlJMUO%iǞ̸#vڅx e yÜx"8]dkN [^D9' ­oI ZǾO?L{N-A׿n!Es*sX=[;h)\{6ⱏT=qԷ$ӸLͰg;0}kg]h,7rܛt)|dl*,k9?@!K_DQu0he̚$wM"* {o M)uimJ|~Xޒ< X%Ɓy }ӐZ>B4(k]%zc_pj˰Xu/gizԹiQ6z%jN(/*ffIFUaO?θ`eeCfF$3i3&qZbHLRԑ\Cu ;: o|* VvNYM^\b[ZQAEW 'OP^^ >#W;k.3u{U MEx&W}F7 $,k <1dgfh *V"2?.tN>-0|pYrӮY;~r FCrI0GJ_E8/quB:曰ə8G)Jh^WRVE([rl/"2RVk';vͭ3jK<€OLe&O**?vc֤`'{( Hݐ躥fǻumjOp|mCQd]r(2PChl*fAϐH[cYowu٣9dv@澲2˨eʊK;֏صC@XV#r;tu_5| ǼhAb|R\l|mqR[Ƃ.,>u9[W+$n-}\ lHr q43웠BeZcNlCyRDNM 9\&K$(8 2iHrp߽C 7`sDkGޡXe6bpuݯڜtv_oc&&'>2;6H4sW>̣)Ñ*!#q{ 0,pٱOn`'' bOl5㗹*l.!ai-[JK]*JKoFUW+ ɞɉyCēaB`{sy듒FWB#-7tT%'$W9]>")__-$٥ ޹2}Ӣ׍.lײʢGR)V:v60 A1n=nP-{ehS>OXʯ4zse !SiҠlWnD*pb_ՍߎrL^!"PXV5KvѪhŽfE)W@InRL-1&p`T ]i!$ .![,⊏ؔ^.yNt)Xs AuA-B }Xy' QFqn#A6@"X{(yW.5('4Q<GZ3v&.TlN KgLe/>EjKs[ , 8uث, {/pvA?Zr ǷRjqk<* ^WC)[Z3+]ҽv Orkn'Dg\9/CΪciV}N9X^qhyls#z>{ Ϧ`~k2a:ppm;G:C؇X(hpuRp/rTl.>:7?NsGۀƨ' K< rݪIWW}وH8ɷкSo|ruA;}u+X 3Cz6Zͅ[ aض毝"NF{<2z,|'kXr5ɩy:UQS#l_W;AP1%h\An~dFur;`|[\TC.$sf{\#VFf&lYğh!tIt.:0È&Z#%Ux߶$uVEК-J{u6 cw%Aq)zG.QW1adh CU07€ʼ]1n]m"ʹ4tR1w3[Whٷ -cyw̵aG~X`k;H ɤTvk:נ+m}+eb7=11Ѭu1"Eg֒*x[.i"|k2.68n]~X%>YQ=qT]!v݀ Ҵgvթh,I!_qɔ1t NܸN ߻||WoPiԷ)f_=tL)!~Pk396X&8i5bWMWHb덼_3$Á(,u;>m3ӣEfJw@$%5 Mރ1} UݹIJs\ߜa-)MMF<[j*aLzRSǼpYПơ/ ugIG ǡmZKzRpM:O~%@6*Jo0WwiMߵRY !"Aa<#ꢔ8s⋶ T cj=2.㍴:A!}v[;GSjkYRH[YfeEEFwH+ǿuBt9^)j$9CYVףl̃suuO!")U4q yق=?0#HqO}DXz`hn7ׁ3%:ɤv0`XFl羾;S)![v"kѳ9 [ΤM?'pF'1 XJ1i_/$(`g;Ar&@)9mG[~Fe>rT6~LB W7W4[U{}+ ƉX1hZ+Zd;̸ʍVuԼ^,>yzL=6t)2wrPS(u<_S=z k5.Z}&Bٵ76[ܠiuv߆ҌY$C=5\RI|ѡ%1J%Y>ŧs-CA;s >Q>L|Hii)n5tϚ6*a">fJ;: ~ H{`9|s o?dY#b$m?7Cv1?7X[A@7[6,(6KIDipt~L~c(_ .kS"7ړz(9+ pWY6C!40^h4Y4 1xDV.k: O֋s^R rLJMhTsqH1qV+&:߉@\@[.䚒 jgb)DVfoIN`}8Pk%r<'WDDz'>}Y1U(,*)%|ezH^wń]RTX[9M=S~-hRi܂ d˯ E1YwaJ!/gZ?E~VԄ5 ELWd*z!( ,B/"ؘ+0Pwʤ@x4+ɈCC(d) ,8ES<āmK Z~lp_:I9B[+."̉:QZ2#f_;1 ?(,_$Mr%j2ߋr OC_lB63Q;ִ3xZ.D!W,&dAV|N$6DKs`9a8_a?X2t~3RS󑪥3+h};U39uƇiKs|H6rb];)*[/D7NTyodٚse9zWj(9h,\%!+ ۳[|`]ob?+;$#]+7!G5Wx$km J-F!R .x\ 8.O9f}p&^ZPԼmD^&J"I`q].XL\VQ-yՅs9ї7Q~vhe,P r=l˼*4i^ٌD7 V>X~5Kw&{B{+}<)-nK+pH- ?xMGBwCҪs[|RLn̖m-hSID)-8H6P29Ntu0dLwٱomC lE{'Z1_ngp(&Y`OI}sd$ŽdVyͷFFuc7f;]&ͽDM&KVձ~ ,0TM:r:uei]~AXs!A6S߈oŧgNjd7gŰN=5O`F\6XW~{xxFdyخwܞ'^䒂F;q e3w]-3; x,. ǰ69-ᇚQg/6Pu/^~cO^cЏ}l8Ƴ~KS>)/ آ˴i.sV[^Jr#[I 7Y /A=Eό8ee6,eAC'-jwݥd 戌͒&kq/(cX7=fh>ҌGp3KA&Dp+x#{0a&ح`5\AsV]Jutzv8q鋮;Z~Akuˠ4U`:şr2niǀġ\F]C*<(QPi틎W 1Hg]:Ag֛6hǷl޺"#C_-޸8yV5$m9.Č duĎ7P;jΧ-1@6P O p1Mi{Qxuo0?H[t,-&AHYB!=pwRӌĨs-5\u'C7WOOB޳RF.*⇌_Ʌ R_]Oxq1HQqdBcI $Aq7ĜsՔwo|.:mD vXAyN{UB>sC #q3? |cewֶ g0v]$l>Dךg\~c^1g(ٲxu !FB ,o6]x6Q}1dM&+*fzPx^(*$H8w>e7yT ;3P&'sń]5nL/OnQ%ՎȚz>Q7V\;33;a @`oYv"X QSC ީiCe~gJ;s1D 7 !l @Ò蔩5'EG ޅx?TFe0&;[hńx׎2!;)a;g']=#9~do+3/CLRJF>V\md@;/ODFKjhhd8.QJۣ(`Pαߙ;.^3"Èn5&IjabSmI6cK|oSdK( zaIe61N& ·8=\]% X`\*sIvumZN'u#2mB|6#Dl[ oool6#ѐj>-#7Ͱl >LGƝs4y!4c HhMBJq/DQɛmA S D` ;mgRS*_[*]oA#)LJCm·my Y*^mxfѢ~C 44 R65)504۰Ww 0ͽ/ILrx`ӨZ~ݚ JMt'2K?> K %JjXy~fs qIlгkn{*b3l/CQ$"ט}fS^.qT>_I]}gmI-(c4dh -;<@ſ g(9??sAFMQ:s\゙:QuB␴yY>WH<|~|XUexcn}vf~ha52l΁=*Epr6QQL_L:,H4BqkEr5EIcRS=Amf!?gsdܳ(78uB%a dJ(=]60ПLޑWWUPu9#V]WC3 R&@*2οk>.֪6]Si9Q~o#)'2cͤc9̿74RY.@mݞݹ[';t2T6uKU)Ę*ӝNVoh4!سR;\FX_󎴆֎ƗwS:EY,.!8Y1'?x@oIC7$).ъdJٞ-rkMDdIyCn йpx4n4j ȟk.Rԇ`1Z53aXIvQ)ŋ^:9*q@L0Oi&<lݺ#I,ܥAZsd'GBtar ssR,n- Oq ʆ')|OI_"Oș+ѣHtA/;Ωu?O۵A.06=ZfOg?{uE**tIG*1yL0# 7fa6k#>8 Q∍}Sͫ4լ7뭺=JL$τ%;ZY'>]glyS::޲{ʣx%*a7缥cu9c9A t4vJ&?"D/X9:4E֏:sq9i=P|3Τso-GbJ]c7_O5I\D2rq}E˃rgO[^Ԩ8X |gWv`쑠=&g{]G |)+{|jV.MLxJ9!A>XDžA'ZVJ K ҞLIjsYCsrtFD6ݔ OfV|h1~Jֱ6[p}uaz]i7* ,Enk/եϰ&НjAD^3ӳ n^^gUu'4ccox}>/t!5rv2;Ƭ$QH-zi:e;v>nU;&47[k0P @z4Ȃ"azo"rJ)=cxۡnnSQ SY P(ګmmmjp4^D)31:  xqvOfϷ)s+m2O03!{M0 ǥAyGG+UOBzL2zbtj)"yu]8AhX栛z= v(pzA` VA'QaͲ':dNo:u2uy81ߠY)c}`9 M2~6-2uNnr *illT&nd~÷&T{dOQ'3T%_D)Vh&Mt}h|8/BP|>F#39S֜T~Ԡ】ν~qVۺ;GxB׫60N*ӿu# ]zxj!7pT@V?#%=-Q'xQSCLj5knkI-ry21sT&#yWW?:`yZEtg忏c lwS,SإnzAČF̼w5l/eY$ً|aZ^L6 ܩחܨ0xPf;{v0eҙk:],an) }MK'Iv(ƅ쨇L `n"gܯK$Q}vnilJ(_^-;%f7xi{>BuĦld^;@P8jQ~<;\|b>p^I`tt4s4zV6K 5c?!Q2Ň̍G##+qiXjdΊkǍۑ+ZE" Xp9FZ5?`eᣉg2gsq[ٙ_ZL"t ߂d{y 1JmR}]gP?%#p$EF^= VvzWa?s8t@wolgPKC1Hnuvola/48x48/mimetypes/tgz.pngUT ~`ADPQux W 8w9lam(9R"͘C(bE_GE 94_6_ۘ}u=}=s]ΣT7T@'XiMUr ( 2 7㓶$:H: PGDDžDGG& :A>)"DPuRkU + RB_I->lD_Thv2z:mGDZ{1p3U ~ !21 #;Ȅnʡ^Q[O}+IL?]K)Fg{ q-PTdLP7|O7S~Y^DFyB.nE^w+,w+V86Vn )LrK4^,h| S6 }|ZḰbddLLLc4y 2)ht #%9 8蘙@3qgV.CZ6O\-7r4|P!l x[,QL|>w3DHL>[Ź|Hc\o,~ ڛ \ϣbr1`*קwU'ox"y}O>MʅV.Zaӻz?:7XhcE^u0wbmХa@+ APxމBM=2,Z9Kd*ŜDFtCJ6z@V̳/?kArnC}0 (LgGYgUa!HlnQ\8+1zGb"bWe"֥hfb,qտV|#i y҅25ޑOV_!NPUP-^= J0ƆI N>rֺA5Td+y`Mhhu1p504wJB>Ͻ:Rv-KR]| DyVWSDfuȥ U%"GTYH #! gxP'}v߶]:-f4$"#EeߢC/QK#\Cg,eb!ƔOS˚E jFΞ׀]L6DsgkεY)Dү;_Pv߃CVK;ņ0%"P唫 FoCaLT{w mõNP o`236$Ћ/E:A_AȩFjڔqO#n0k &_ȉD,RY6'c1Gy0h9#NeZan7Cb_`̞Q ' QSl@, <\jDi En"K@p&c3ɳa)v)g$HC;]h0Ȥˡ=m{?~d-~Uh,&qk|3TgX %Ek|B7=;V:/Ӳ?F15N<ѺYAfLHg9wU:Yʴa- x^u/}8~8sjS,Qxq:6qOCa֢` K3kkJ ͦqq0s՜P8آ1&x7k+s7 nUrr~(ʁnhaQjM?-]B2eE.[Hh%N Փ,g#i]"]-( &3l,})Lnp]bx 1M7=˜ñ7|6눵$պ&Hx4֭Vj[G>wbq|}  ª73-˭J&}>QHDXǺn@DJPWcmlи]B D|Yq2 ܳR"{̀í$NۈD|="B [M1Ήp&]MT1.5(6J\5."{{t!sVm{X]#>zTK?⿢4oF<ҘuD FSDaWE Ʋh-r t=>?Wzƪ#\JM,`Xj.-7q\ۃo#"#4kfG_?\¥ ^";?#ׁ_nv<6^Zrٟ.z*ʥќY~Q{p7vN͌r#EqUM*mw)kG Υ;>wtE!29*̷Mû~:kKPx)1y0tjaqLDiԷM5Ekfs9L"Y:TvH{ԺItČsCęq'4D/]A֠ur 8]ݘ/;3?63f* T0]cѲ0񏰊6KBi,J%jkBJW] 3/"K[<9|O˼ޛy!̠9&n2=># \*e3?P4匬sfpc<&AcW1`@/InΊ`ڪw\ݴ9\g~Ӯnzx ^j}dyŬ{Xɵ:'=m yu7terE- ^y 8A ˜aMgL&a#eXM Qϔ硪k;Vvۯ,tgN/ږAT~/cG5ajYfZ1z$훑.Qk:s2-ZO{HZeZ8-|K~s? X]ZmX<ruqk ;[ARYrd|&0z@|ZChQiN|H]T): .->'ᔞ&U\e:9U9[kkHs@q:>לJ&([ŮG[͒r竗_\iFl6ajcß'ڔgH|M,Hk9To*o侀/sX秔7W-:?&/:lTI^DgvQ~ l a^PK׋C1x- nuvola/48x48/mimetypes/txt.pngUT &`ADPQux %V{Xg~_^|AE]jpV ]|`KŪOJ 7X}C;Zx_)zȷ!&?bII3`c8:v{bJ5 7K6 и{moNc݂**WÈX8(]gNɣ(Өͅ>GͣI'4'<I@L%lI盳M(J8"&4 RC/XK`Koń,;mk  N#R!:PeMdŌ fp )yb`k=U礇JS@Mp>jP;$Nj%s =g-sAwQįo^׻o I‹ClLF]. [kU ڕЄarքeddLjt.]e bIanBy;Nb\Wvkwtl^W1% ߆c/efeiUYM$ N;^^qڣtd[;ݍqycVխhW R^L1YiZ!#&2cJyc$pQAVlg$ᅦ ΒRϊtԌ,=Kj{'nB jL'nva+(msUxbe)lY\G6T"y0eP30sh]Zt,98;~$ Z[=H{NCuHfBMB6VА*ZYZFv8O<\ %˦ Ml?cɀ)uDG}Hus@w3>Y~V1ׄ$|j'%]k] 6漇5W 6LϨv904;k0Jd܌ pXDWu3VPćAS :h0%Ifք9;!c)k{5UbabB4~Nə*[h2[ L>3Jۦd؛,~Qj@̂[ "Pq߉SBƽKRYzO^]@u{feMU-Qj]n<-燊G9`O om>( 5kb1Ħ|6\:4n'Qc9%Q lĢDo%5S( 29j6cVo3eٶOF8Z PaR{.p;nbO+ߧ%0Yu|y s^$^]:tl>;Jߊ|q%"" E3O|5PW>($Uҟe,xgfE)nzgEʌg,GPmdڏk& -zfԛuKA~W/qQQQjqȟPE ΢:i& ̇@LY(QT/#U.?b1GѺE@#{ Gm(5[!v8@&?# 7te7zmM(^4 KV[֤m?Z]IeFk+N;nݺE;_(7=9껣p,eRA'aclwGTmdH9-I͞z~"8(qR9Sa˔( [̰;~D|]+C6.Y>E ^!I~ hdR,Cl/{qoz+VPK C1˼ff"nuvola/48x48/mimetypes/unknown.pngUT 0`ADPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?P8=@`dddptttP222}ˇ޾}{7o^ @,,6p)((0$  >)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJq9ZyRQ(-؄"T3,%&lI )FCU 3,IP1 @L= >q@LF%$534vհ @mjXט |/TUU<7E6 rӷo@?@axׯk-[ֈkmb"caaDV<@a[jꤥdddE=ӧO>y(o@w?60)I 6b- V*j7(Y t7@X{@(&[qKgl>{ pK_Og.IENDB`PKrC1'n9 ! $nuvola/48x48/mimetypes/vcalendar.pngUT h`ACPQux W{8T?33cf,2:rIbThfTUM_n)\3I$rTvmڌnq4kMSB*}<}~?{yŔuZXdHo#N(&T6{hg kΌȸİ#`  O:p:^YCqoƥ["ᢸWC]VfMi;JZHy] q =iܩ ?Ea~hkvnVK0jsc\t@oX(4!kJg{ ۟M-]$UYC0'u6зRpI$3Eϭ pg 'J)qv5č|0p; 879PΒz4'^ͺ Uwu",s=3@l˶nQtwwwX! 2º9É"P|+MpT3^Nop0};lן)j)r}Yt% 3~CR޴ܴ緺 u)]ӈaL6|@iiP0!ؾcbb'aiלVƮA6~qv)jjv{!,gH ^p͑2rO_n>0Ѣˮx.=vLtqqQQJ[&9p髕 *`Xv5}˗mggof:E!қzV:JO,++w!&EЎdm?rz5ԌNH p31ܮLnA©ո'nW_fyv3xio9P(aP gN@^s0( h)h骿8Q+3 T *$K3fϣp;fqUG_7B_x}V.ws{Y{@ڠ(?\F@Pi'ᘾۑ:l;~@O*Lێxѳ֭ަ!P̟|=/`>q4nVsiy4MIWIs֯oڲ~dc=T6k(s.Lt+\o#?R $fKj){g\*i~ڎ AAښ^F,0DkK;Ʌl"S;S&{OPͲ-ńqn,zUp9r`xCBa,^Ñ?{Ӹ7q; ?YDȸRYI>4;,\9]5;e? ' Wf &?6e8'/E:(OTRoDHr,ΆnS此}釺?Bd3Obz*xXq]a 1b?GUx, B21י+jG1]~ű[@ +CI+ z.NAʱ Fk}(U!Z^Vωe׮=ۍHGJz^a=w~tW&zKV;2 ]"-)qJ \ol,q:: ;>4 ߄v |ض^p<F?c!>zzt CАuC]}=jy=2Q#4~%q]=>h~~ɱ>L&Dy?*^Z^F@]wg]TN@7I; :BNcur v6gasuWTAlI;wUp'|aiDsoq0pYldrf$c8^ $b^fƚ#BzC/^a.yb=W-?k Ԣ.51߷0>!'g6KmX[4C1 }NEjx0>x("\Dyc@nvR$tc%;G/&a?qҠJoHw"{D7Z+k7_?,q,)v)&]R)cEVuY˔n+Qͳ^ hW V]{=ц_ҕ2SepRhuTTө=U$~YjL_Ō^>-&T, 4 N3fSbo?OF_;xܜn\C>>jY^* 2/M5ol#<}j@=nko}Um'78M>93ZW=$Y#ɘ4ˏQ`OJ dEFn,w kraJ^wABr}g7tst" ayBP2ʢjmr>hKM>ZNY[S 0h Tdrˌa|{hi( f`m"%6L*ӍZDn̛Id'5h=Syyybd(klU?E{PUH b$p;`!X!G^UXG[@Rݝb8PX^՟HCb?1I0H'v-eh&\E@{y >[^8OtqxBb4u9mk<;'LeWi|7AW-^gו!eo'o\m.Jw<'WhXn=1J2a;GB"_G^K[ iWVR}:$y oq]APKbC1 !_$ - nuvola/48x48/mimetypes/vcard.pngUT H`AEPQux V{<n_/&ds$rlHHr:r23.(焰͘KrN 8:8N܅AeK5[<~g3via7aڧo R? 3UE-]N9TgBNf3!:'F=/,_/zPK (!%XIwRqN>~K o.ˤWcS?]-e 0$Hٙ ++>%_ja=BqKV[[ԙOtDYn@0ve7ɡZwKtpה,_~Vbٽfc!*uq4𡴹- =$C`?xbٿW]No&r2{~&GFPIi.3335-oa%S| Y>? lqܱC'4nsք:۱X}7Sna{sPPx$^u 5ǠjYn$Ęh (f{h9WܺLOy㭨HBӒ4ƕ/Q8?B ͬ0>G%MR (Gnwh(kP:Xw}1$SvLx0ȵ뻜R*]^ʘ4O[{YUoV$}C|0PY*V2.&  [;C7y9Aؼ#=oDQ>i ZvϠVG8W $어T!*^H /fC{w]&'?x\//L *s0H}/FMKBc" @fs+0(^6x+͖/K]gsLkx|Y bsh .X,|A{7pa c[!Xj 6jGcs fDi&µYỦ>R+(4EAm^de &㘛6s_f]8")p!4,#<:>v"b.;`5ܚxM}˯zds;P欅$FM "{8Zx^\X$2.Ԭ̥}tI>Xf!x+BipfpHjo"!agkΟ(#}lHSGS5oVd/>VC䞄c C^>a,6qC·*+g Vi,ԣП]1-66QVhׅM(y~\KeS/H0> lB#gGqZPC Wo53Þt$M%wp^ vsBrl_--&d@MS5m OpLPTANʰ˽y1:6#1y+7Uꖌ8Z11(E r c+ K?)[(~0_@:XٔGꎒsW:Vaʴݤ7Wo~gϬ_ʋp4@)H &̪,hЄϗ(/ß=&tO$/}!\-s20jQd bM`ѣ#-i'k+9ٿv@<"q*~rMARV224hW]..M=yKfB>G; ]ϼxD 59gU"=tDo BaK***,TܠIM+ X$v{O|Hv],M՗)9/eZMip5K6'B6&!+-tͨy`*CרvXͿ H/('(ʚdϻDKuA>|sM|…&5Yv?9,VyYYbFfEprlHU'_;N`$#^In<ֆ>~r6@  YEu{n6_g 0\JLK_Mߔ"LRhp2?!>2w % 80TL$wZjj}#7uĪR̝YM_S)YSC!r Q!/iff>n󵵵ˬ1`r˓Y/o c-Jh]#1y3j 778IY*x`{፟iuqXlr]ڹ? m~6c!+u,w蝙X amZ%'-kM(W,bd(BPggyjLŜU.w ڻpx+g׸Hp (W{j` %̘ ^7x$*`FÊ1;4FcзхD]\pUEGÇ$,ڼ LOfeϭǒA+ )@* x{;V; mn٩,Ǧ8cҢT-[FJUkfuj5WBT˖Fl4IOdCUdlU;W"@p7$M==yD>hnV0HlJXI 3&+Z3>쏓bי4{ xAǡ01wW3N=@age0g;֖*=Fe,DY$tcM,cy =i'忿4&>ɇζ+ҾR}y#4=!X_&0 ,ϭU8"_\ݪmUҵr$e٣ɖߒԞt03oj4b9eYFIfђ o{ ܴ1F#ք3n mQ, hV{;"ʯʫ. 8F1F$Q81rn,V*zl34 hu?%1@$wȟAow+ _8J'bmx('fq"͟ڕ{=4A\-gAYel9T՜&/B8j3(: TTXv,*BP ቪ۫hH6 ̖VWqzW[8<*R-Ɍgw;imQί ADtf _7ey(bqe C;7a}0aKV?/_kyC]P,M,[+)GCA6i`L(T:#ZyM輦0izf@C{bz6#<;LxMũkd3A{5WWՏI} se ~tOQ'],,}Y^욅LMreBmaQ0Df4/&+JߛS7$ޔN'& u"tYTU'!a.ߝOPOZ V@d !3,ժNO4u\?vĤ%opC EiXc'3`0`Bv_BJewu)#v>JTczbhk-̊f(EċvW _o%28jg2VK*{VX5_bqBUE;4@_IM⽚׵3lٲYmmc%aϔ c{dLZS~ xfuW$QL qo …0ˏ7aYG?w~>s"Axe1 8νv+҃:zzz5}!g:=0qP(uUU+*fR(sѱk> w.nY^|XfHԾys#R" O&3b3W&ݷ]^MŇ4pMGӲ-P%鰶[^1"PKOC1!|T nuvola/48x48/mimetypes/video.pngUT &`AFPQux %ViTS\b@ 71  TÃ* 7̠V@c}*2#VY41ۇ&*(S8笳δoW* 06`CFF#}S12`}}E lS$["%IңSŀo.:^&_ zz6 m\.MH$c͸a]%gyafx^tadq*F[ʽ*ޞX4jyqpp\eѽpXj&J{c|k%83'D]S%,y+> џTY 9@:+Z :%hZaC&. Ck1m>E?>2!ˈ/EaFĚb!DmoQ9 Ml!w5^,FHe)Jb_jA*F`S^^.kh q4(T:cΗTTΎydSy5μ39aP뚐bfQ͚HKK[Qh 82E'v[~qgdlX~!Jμy vwshpq Țˈ{XT^M)gac~E <"gaP㼯5#ZƔWVƲ]C(4WcV@G 87VY z5PU'rĠ D)О,17\ V;{՞9c0A X+ aIi)&KA[ ]CETaIkWƇc6FR^Pd'.)8`bf0Ƨ҉9zcN|ܧhr2/ l1 mI V 5cc٠TJʂ.a/|Dx'"9'#%R r?t0=2#설$[jl3N* d7j\[y紵ZLOOC5o`&hqnfe'@de A e+y.mcC`1*l9koL~M Q}hd>~ţ [B&9mD&  /8G|O.]9z}W؄EXf#qb}qLX_6C#g==ZmPj߶g 'e{#j+z&PBٕ3s~WiO;kwN%e< '&v@[e4hqPz^hQkW9Q gt?4NrcI,0͘ymJP'] .{#E5dɯ/gRFbxgh /57Xk~ .Wbg^3(H_ڬ'gq[L64̉tx#1dE&5q}>^>bҡcDڠ`2sz0&ןX~C]cZ' Ykx1g؝ŋ"#G-BA}}3âOiuY.)CAk;;;~2^JZ (;!KٳnGb iEUp0)U@G OJG' @F;S2H$hTW})"RrIpwsnf Y{2րWk]wv>}F ˁBs!NZd`e y ~R@L$#6%ba0(^ f 1iX$)!A T9YJqEʊs&7|L*-PHDex"X [gςz+壋[*-J!"?`ee'' ,LP>DEE ByA>c҂ĿwtgB9vϞ= nnn BBB`/_ŀ}@`'Aav !!S-2/:<@@Ͱw^;w0dggc>YcP@O|ap`1Z1|̆5ҶmN?fظq#8&` -b "?1p1r203p|޽s&`766fD1صD1n IY(@w)X:YX31#@6 cM ,, 6) cc@U4BB'/ fb9(  ?Ad3hD# ʟDtŠff`zQC. >/p1-,,<@lM @8 e@y`>)R$%$ه-c" M ofxU@UdRVt~`$ 1VSSS'@M 䐄G3CtO 8*0n`R%%BT jQDTM 1Z4i"" %.B>Èr<%8d@DUd yb"TI1@dCjǖbt0$\@;ÒD D(39ĄkTbJR@=CC)cKĔB1G^Rc_c 0<~x` .GnҪC(236~ _~]l2F\LlY M  4ǂѤ:ii>b~h MyƧO} hQ Ļ~ l`R@lĠ8hi5PBvB>@w u4ibB4y3M6=p[X IENDB`PKC1r M . )nuvola/48x48/mimetypes/wordprocessing.pngUT `ACPQux V{<ήm8lnd.eNVߑJЩ99qis9dJ:Eqr4E.(!N.Qy^?|^y?M X <=g,C ֺ3S֋EG%FPxth[#B“b"S{{@:V`ͬfT+q,suuHb y F/\u'u~r@yq+zsprYt<O`o {Bxnato).UVV{/L+DcˬxФ̢^unb xJI {ӷf=⎰yn7|f Ujˊ #Nl445gc==A)luW 46)TV(~O}}s6y fyW g3dbűcN-$98 .bϣRZJbl`v ԯ7+4~ZupI#̅,*Ok#XIs8;Ftşb9U.%33dHY#l\X/-"zxxf32O#IX* k9(#O Kq̌+[cB z J C :pSu|Q׮&eYFUi'3KD˝Mxi(* n`hg"K$F,-L,2ds[}%Qy .tt+vLT]vg~#z,oy]@ㇷ(aڐÚoo>q#ӻɫt w}4:kڑUy$%n;trrI߿p&8sҮ`BL4?8٪wKdp ⯷ϤRxo*N+ʨ8{C- "fRf*dx?㡑z=V𷮦\t܇sRzW%KAf|,e/I.rCA}8/^d1[*Ycn+BJc:smjgmⳝ}(sM*ͯ77^v-=cON 69J˖Erݢh] T+a\&tRM,P[\\m%{`h=d@#"jCy0h 2G ;RR*ODG"n*_D  U4AChfL3NҊ J̽lav†50l<%0k)b+P|XvcUBBX?l0bnHK $iN;`~"cJ<~r)|;񿒶 >[/Pt nBI*-;)V=jC09,RFTj3=3QWwk$SCޒ;'23OJ귏a:S4V|.pc^A\Wn"NOBpzEk(:J꨼xb?X2'bi펆1dɘ}zN[Iʪ :IC-Lqp}SSSbbIs>q>uiIWJtkX*?G%?M5uӥ- 7sXF^;'% JLb5< 7ә9u?%́#| )b5<Ǎo7}LM}e[чd~U:(gu63һ5BWoVZ:Х0у%BkvY2q?ؕ]_)ɞd1-?SʋV$O[+<$]T]H'vcqΨ*뷏vڬ=2"USK{0EsX:(E(zߗ[ Ḑ1\i\I9G-ɤod컋4"xZgCe"8k7W8UmIͩGi= U֥-1Ii `ٟ\S_S 4/N{Z12WE]L1N[v^] pBc-YpC r|\x="23$Sd*z#y>=%=_wQA,w%]OE#{ U\kų Ug;r6BaH WΔ/%YMI8бAmpGdA:\sl)gb;ty*{\|t0So*PK vQB nuvola/64x64/UT  QFSux PKvQBpTlnuvola/64x64/.DS_StoreUT  Q Qux J@@Q'0Aw"E" . IiR(ƥ_tn1vE Ù0!0/`Ы̊89Yч;n֎"vO\~jL^4a7v/پ:i>qal9iɵ\̷(]w'f^YZzv\'ijpn7wxtqvse 18AD#L AA|0XCAMt̰\C6-&:SfXOChh6љ2NZ  <;0hWC&CEI?A/V~p5M. \MtLXPK rL>nuvola/64x64/apps/UT VMFSux PKF1$unuvola/64x64/apps/access.pngUT  MdA?PQux MX{8Tk^k֜a!f(3(Q3AN5kS,Cv̌a _D0ۖjvkDm%BL(37}u^>}sm`dheƐp~g~MnNo\{;ȃ) Ĥ\~Jl{aR>R}ubw]MzϵKSWZvēf@ RںFyfK|²ٓK`¹rF]mV62]Ve /LM $VK\X$![r=zJmI A K;}v4W>-rc܌!NݕyUoLᢷ-dsql* ǣ ?*=E{[į ;}u#nR1$f6K0'G&O3s KanVT}$wOgElׅXGn}0r֟Ѓ3t6.+Kŷܜf)<&~s>74֎ hsvNY9w NGFJj=E~^ \@䉪]䆉*;!uLv:L) Ț#SwaO@78A;-ZrM ~=,!^H$; cc΅48^U)az+/P s8RV Ƨ! svt+2?Eێ_շ.yb3|Ɂ֬%,'vI|nIϘcU@AqRLqF),PlNH)(8,b fC&,Nk'5 ]Xjr@O&vH/MK-E 3~b~/r C5iV]fNF ςg0cO@H8|7 B=J1ĦrIйUH%eO(vɮY} G9a'(VMf"1zs/u/fL~by{T6'OgZJMXAs9M\U ֬@gC<1_t>IbJZ0"bQT 鶢7Rl9@ϸ-̵{MhM[T+RE-Yw^VV*y>e Y8[2;݃g}t+TPcxcY.k 'n_r6U_DNUVHPX r(4FYQFd;cWzdö  '#y] JBQ;ZudXdX]9L̴?0( U^6g?#; %#{Ee宐r~a 2hf^MX#ͯ3Ԃ5_l.6W|u1 /vT5E1qLw !F'ےо9WnU-2U9p̗^`E_Y /oSk[y1h7Ѩ φ>ol%=ec;^5d1N o_ľ݅Z]Z1Zc7n*2^BNFM3f"_#E6 VON'ZXnm'YUYe7A%C%Jz B%Za'@}B>)KLvXyv6e}70/n]*h@^|O˛+VNl%4.<8J̇J9uK-''pd{ItkjjbM4c\J%NN<l8&; 1W-6 ܍=1UAAB` (F *pԓ2j H!D^[%wF2"v,瞯Cs1%G BKzL]QSPXlWB۬8E;E0ӣapa~:)iIEuyo|qט*(>D^򀻐{|EXaL/EYv_qnOz1)|n\RE;&c̵uM"Y Y+MXmh柇ŒPF Ვ"Y0C {׶sZ#{wcؕLewg)J6dlE߭r,˖4単/ Z ߲=KO*co1؏}@Y{z5xG3A%5Fj^Z0SASWɽl<$|]rgi+),3'nEN4aUnx" y:": DnĚ3 a+; ,;ulc%~A~zE1}>E#$90Yɋ3 >Qš?wx)$Z;A K+:98{OR28a\ڬk[#v`M-ě2r< Te>!w /Is-1dZ}40nE {1 R]B)~5N߽~8i8Zcf8[j1ҋR/%L޽5EpCP)p-UnB7 +,pYcd=N3h׼ySDm߃}}:K^㋻C{g;#2RE^ ^.{HbOKgXûU et\9VZ??:s+5οohe}\&[vQ}y@9Gm^|m[z65bNuO?$Lp¡~d 巙⋪jpQjp ۋwVʥ߭QH~rD܆ڗTj yo$t킃'\;ܘ ~h^Vnj\}([Ik۩GiV]Ȃ}c)2 lMQ 6TVLô\E#bZi5)WcK̔,k,139|_<971@o͚_c5]j&x ~P93Y ?%u(%@GY7*>ns\Tlq^`I\)ZV`TC Ubog]xxpƋ*ux;IϿussDw DfvKqW / $!kګ&xLn!w )DZw!>kb(v,26s+7R9.Fb4,Ʋխ\w}'nZR+i󙙹@o(QnNFULnN)pLJZ?iFVX\wlrV,L]{^&)*jh7(Afhcӣ9.9;&<@MXt!]_#aMA_|@A^I2;eXS\A Uq MCs>cN&^{y^NlF]w#_W$ըaaN߻ll } *iL'к^ G%tvΎTdk}+˿<(]l;&Iȩl:;Jc_PvWE+n;v^=8.[M"[& i//^!G YR>|ɊQѹa~' vGpZva>qw6}618\BI6\&xj1obmR #rnd:N4 +ƿ{(3W$luLMw]HuP ]Ay_5EL`MA'X?[ՅqZ»,AOX2-Y}D.V0.*G:94\DtU~``d6L:y5=$҅mdG7z +? HW^MqNsye٢yun*uai-M9^gA-~^y+ P.aá$2ˢxSFtk>LQ=jBrs;]*kWUSTrLB\릹PFxcoL<YeT"ݙGE,-teFMh?wm_S\m+}PllZƙΆR 6Dߚ_'4GoK?EA:wӔScbٷ\DePm[PZDP8;ĺM!rwU/< n/_\<*m.؀".d2+0fw,V I$/"O{U`NWunJ[[}Tm 8M0KALQŠ 0wAި1ąu#!p4>>._~݊u1&8+$5 dt_$)q3dqgRoOq$=|oRgaH*UjZ2A: >:RpM~s YdGtewF&=9f׃")@DPzI֓S? ׁX3f͘ 7BntroN^6gCuYtw0::.gLIR!þB?$ҷ[㿽*I*{"و;^PI1 ϡ' 9 VoӖVö^&EXEڧ+/-x,~V_*ZzIdYW?7Dz1(O=I: D56*>$E so [R1"ņ*5`\02.b[t>oZH"Wl*Mӱ/rF1y8_uE<5Ra`ētAuA61)?Z0:!%G %X{\"~h@p²1Yc6?R+ pߞja TFDÞ5W' 8zz> AFB׺jܪXRRF굛W4_$0ӨO+44_/(:N$ڬo9;^j1xfO!JH[wo,&Ν~l]xh5!^a }9 SI'ڳj5 F4g;vy& D;>oi(0v9iVRD*-ꥯAm].J:,Zڊ\ӇK+qlynIp-ntEaCSVrc8(wW*Cn ;E;1qnv:y^f\E\)Ka5?G)h7 9 mֻܥ}u:!5 \j!k>^ЩDd:X m[K/I s G\GoQ$p,tIRꚶ6W-U0uddzxxmPRWIB7 03l&Q׮GQ@ B+V Z^SiXOS Z~Bkb!Pf,9v>dU'fK:$ed0*yDRhb0ULNT/_+Ű^+܀ $N)vj#cv7}xy1m?<6}m8N bc؁=P6)?Йa]c(SJmP</5NJԳHX@zPů:[)jn\Bd/rŏ2JVԠc_%W솻-'JlE⼈e ^PzP$˟r.X!)&>X1Q|^vMƓ5A)fD752T?25-C=sQ7j[ =sܬoSAdk@ Ci07.dBAl#!u nRlٺѧA JHmE8OkH?O Ӭ~Zqt1RFPOlq827U3MFuxE]Ŀ6K7\=ək޶lp7MXȨ+od3 2q5NǬP~l2}*|38FAb(5Qˠz?Žnz|}R?FZh J2!aFIlzW!2h1fvU3uP1<2 O "oćpΥ@I;JOOZfݖuNQ߽USB,y1@VQoP'&3X \H եB9#a=m?J\Y5u4 b,bt.x EeEcfAR/rl.>wui*-,݈9x )|N45)|TMrxo ٹq-1Z&Gu ^*]jrD@]jډ:vN\xo:]d̺~Tzg “M4jz{:S!fy~oX3T Fz9IcE/{VcrؖP@ؕƹj+P9{y]n]bMaRnL>zAJBlx!nzc@ `p͔G|<Ԛn9t -f1D(]O@ïHoί߲KxīWoV(H5Ǭ d č ɟ5xY:C%hukI Ҍ8V,kPNZY3y4n@OQc?%/7+v7#W:ٸGA+􁾸]V 0I_ئRn̟ozĒ>6mK.;!SdU_ܲ]?JRo]I" $Kr~24>bT0۫]7AKwI>w\i,j$r:i7ig @{B>hPw"o Bu4R"!ixL O茱kZQ/K&uDK?%^G]_,>`R"#*RCҍ16Αe]Wz}k->_ԣe~7Tq*.J xV5!z_5Aa_AF`էg 03RsJu:#:`RIBG m-3N锿i* Zu/pp҂<^&qㇷtYÕgb)&#? XDyS?m{6ƙ[Ө$ 6cл3GzKg)*o7kOpzĢ^a)ҁMkb|i)5*^C'ǐ./~r0W(<%}Of72Db)h UYU<^Yo݋Qß?Gnܼ*=:ܛHxK,y,΍uf< 7Ҫx)/O0w=~af)%e$rrΖKwJې(oPrГXjߟ(ep<zsܬV6'tP14AɼX?L7o*eL慮&G^<a/.9S#4! x5'? Fâq4R{ WZ}܉ n(G ,j<=ͫu$>\ܗ?m x!e-m{WI;%ծfE#0(ְQs}7#Wb{ʣ%$(@V>PN3ą2Mv-=G)d2n ”o7TD?ZBvLaӯx)6zL|f4!u+ҽUx>N]ǐIRoV4Fww,(-\+fjC{)p.)w_pAG[%R״D 4v|a9Β[t~ޖQXX#`Bq '8!1m}Scp~HlS|堙 I?W0oe0\{/dkzY3|sRrӵhɃdx,"#K]_?)9u>)dVm&$b [*(hָe7{xP^{ rQk I1[gL!P8] f}w$c *O'gXLd4}si8FStN9j)G0qQ>0뽉9~Gm{{JG $Ox\ozbK+C䥟| XAJ70? %4t_[=rqH#ZU攄?3޼;p%zwn\Xufy&/8(`#+>QM[jPKF1\4Nnuvola/64x64/apps/agent.pngUT MdABPQux uXgWS׿i7@.% $JRH]Q2Ub H(FFF2̨b%!@d>s:g⬽o]޸kVlSԟN{'DԴ ?C+#mII8t{ `ťS&oe=+Xob4PTc#N@jN @s7 0c@ggg>g *(QF/zg;H=Y0XE )=^І9n# #Cs (0qՃSb? Y❵,oW0fIP9t"OW0gIOJ;5'd(N&w7~ {Bn,eǢw-!hDm bo{IqAȊ>=_ 7C t1ɤFLezݲ@_XV\n.6(qg1ۆڮlsuب*B+7$ǤCq~i1#`]n7߳x"7p@Ks;dw{Tn҅r cXKQW7SNVnF( A_$*D<bwyՊv1vũI!UIQFq:o ɢhf#o*4lkj+$w@ь+>0XѲe+$u=o/܌dKqPӌ1CrP?gsæ!m3h 7qA qK8(jN?*fF]Eمj ǺZx'60sۭr%r]i.o"fѨ0D8-Mͫ:~'Jֻ)kvY_܊/yscXcߖ#ꀉ -_u3$DVa`o;{ u3yTpOw +@|z%*p2d`a"1^T TE=̅f;C*}@# _߷H!O9=V ~GX+&a-!ͅhkQ6o &kC^zCk6e?%% oߝ p_@#A#RyyeDi@99Z4ez4~ -g0htIcYP_b[9uFӵ$/{tt5Y#??ֲ),GNЛDžCU0F5fx4S6įBy -jb`TE1H3xrk5;:fV`7\O:ɀaԛ{N:ofgg~ 4wdž|-R tT9:|N^FBZDE䘝 R?`O ׾F:qʗYhN W˜qrɖ21E)c hޥ44 n0݊9%,si}AJP/'/!b ^i6yc:|0=dUKQԬ.5݄o0P$]-=)R|y#恌~D2(>M%y x΅`8IGpKe-"qXl}ZF[uN6vO@2s٫5ss9$;ѩ;W(@XBtLC@Qu/F5cœdQPt4Ju8-Q *J^+hM47S늬} 8RQ@$ɉl 9ӏAݭi96fLAj!joԳ}1,+8P^X9; L _?DyW,odXIထێ 8bWOAb4SeΣ䇖1B,+rk"]cUJ&ˁ{$ٟǧ. 7@ن  0tNgph;Q=M{d=QDXoS(oTX@"yق{_mk)KMP]82̓2-+-dU|6A'r(~qR^'U 聃fUٖ"EOzPiv=t*+0<a<|Α)8)?$ٶn"QYJXZdXf6n/JyCo5x;i˲g|>L;s5ֲX#X-VOU[ ژgґXa~92+Gza@߉'tradcjx X7$j}*# Tzv { nuf\klȊ;?"ur"(NKHԳ(?-='vpSO9=>_:t(B{71ꂋ!g^gC]MfsG9pl%ßѷV QjsݡNzEs%^NϱeS8neu'l52{:xigqrT/!U+k [+2yvqZä]Zpu3:F}XBu}C6pa鯴om~I+ O3^{/Xu[ܱÎz;1JXٸ~˒C?-\umۢx#eiAQDwhp )mೆIT*M9elsGQOb.*_@G@/3Ϟ}vܲ+Lzj~+=a3X?~A`m]洦qkyD=OiɴN}xuF_ȏp, 1ș<+Z ndנ5GejZsnӲ5WIE2b㧴b SHx|m9n< <2"( )C^DT<4WHÏLA~_ T}RgsUfzC01'IgK3P̉S~!CϑKo9:+=5ιuqx$_ 䧳e3#3=4rqB-_FKm"gfg"'gpG {EvR}Y?}lHv=uUܺ~6藎Jtw*4ŋOyZbm+}(ȜvA AAn}Jm=EE\2n@+߫%sCXX*ȚrPDz9z/>{6z1}/AsM"#AJJǽoDM ~YX|j`K=Æ9-7mEpNg X/-ĺ6뉛 Oﶕ3ZKγA慫Il7r6]yѺ>]f[$)~^Zcmfٍ>L@Svl}r/<1- gsD"sW ~ yRǕuق.1/Y1224+))A/Չ9"sBϠeXebQN|}BERc`:XC79`&J+ ]~3CPQ v,RL1bƞQ4|Xt%Z ƛs9Ɋ78ƲiҞ4飳-ӵ_L~+']헿;x r9yt|^RgKsEY᱿~ qa݃ "";sz8#Z1VfLiJ?|~ 0j#OWB.[q;W? w2(˸rt ɉNIL| %pΡ^v\Q?m^](sVKCv.͆[)s&'g6`0/9=iYŞ7Q]w[e^ѽTz W#)`cS§Oih,r>>LoTRs{S@ܸ֮n'PKt91yor nuvola/64x64/apps/aktion.pngUT gUA_TĽyS&h` GS,4gdzO҃dW)6i-DiЎtl0'ئB"#ZQi#Q!kzQM[2G: ?JPl 뜐F/4rn"v$ʍ^P>8=lBяK%ZwQbE0ہ6#[>;J]k?Hp=0B=8R]gj@㵧i˗8(w%ZZl:/opo~c{z Rqt&%!C|푹HG l],Jd򆒟%GiwU/K# a#Kȇp9Iւ-[,XYh|rsc_5wÝAu`faM ?qeشM8#>IX:o>QK@= .m׎t .O%'Hbz.g驚EY&UehEzՂ$ L|}NdK~M,z(À h2~,iy{_N F0"瀦20X ّ&U ~$,"i6TO~o%z]J[_Rg{L9i-2K~LJ O ؍U.ۆZQoH:6=Ki*k]'zǏb'OUo٥!K k܅c:7Rغi $ʹ57-9䪐~ X޻^kݷ*Y0{، +7ۙ캧lŏ-wz1:2ޫRx8ݗ[ě^2XRq'^e}~I8<9b[Y4XqۙX5)PlT;VmZ#bx>y\< Tl8xz_K+|v;l0AVOfcaf܏yN5z&/cG7X4τc<[Aاmdzkk SrחxC'w$耻{tl+J?u3dNj ywgz Ӻn.ڡkSs\R_z\'@~T噵 Z+ЮG3'|a[[9F{m^YL=e$ 8pG3= s Ld$UU!X;A(D3C+I繷-k+Ul vLzrwś [H 9-y^Ivj>f,N͌L_p{̜zxe'|w폈 ؁(o \)]A@@OhpU^rA|UH$OgjuiWV6q~*1WI1ees=g/^<v= Pj{kx1 cE0`a ^ʢ * &r^^ust989R=]V P~͆Hd;tq%wp}x.N˹i;/xyfʀnHX=tBps+1{B"qiPF`EU|W:C\(#y2yZcN@٘rVٮ-a6)z+oغS#^z }mzǗk+W݇.[k?Og"l%܁[[J-aA4ɱW9@~̮\.PY)hKSjj7ۊ34vV=˂Kz'kғz Xdl"p)](-~ -h&nר ڢm ¥[  hu삒=o d*C ýK6;ja&ʐ+R=@ώuG= }ZIU!Q5;Z u'$&Y>w[{cll?ƅGʦso^F ^UGcAT>24x. .@/kթ~NpadGFHv8g E AF,o>P?,L Ȯ[]\BÅeaҶ;D9ʻBh!A+axorr.:qks!_\iE;Ԛaz7@?.x}h^veݟ=3並7]XNDsj]@^<CO+|u9?!AbjKk.ul~Cl0vπgJ32NSYib@hܧT .ƤJx TJ$oH,B+WzӃz-xgNmUA?g(ͶŴM]wn2-/PSq?hzMUV' Z6}s¸C6]5Na|0}8,)Ωִv f3/s걘k!aM13_ ,9CEfO_V@iI QwLdd:9 O;FfuD]GnH"rN1nC6|Xp_ (؝Nn)P~whF]]Ǜ--=Ϗ&a>>Ǩ=(O< ]gR7`A'iM Q(.< 5H@!< K9)o?`mmWe8sjQ "#nTxӔ=]z>M-8X7Iÿ;"sIDȰo<2Ebd;a@@b,/S[걉MV~n&zmM||FnR}er!42 $vD}py:U Y'~OZ'-3-ކb\ =+! c_3?w$sX 1EFTJ=D_u%Q F~*`ŋ5UY&~}2)04x?𘫽v%Gy$Z(/ 2Ƶ& q+ D* ze S/}MץTwB|("lzsEғwUQ1r*]c%nγ,}!djE"OT|B08_=EiM2𗪏 íV1jN=(Wi^,5L> Nգ{c4`ޖ,ו3Rxv yt8~Ә(b*=j5Ryg oʻ[*CE7n6mbfNMM1岸L7onzkb& ;ߑ\0hUgƙE`A1

        xq4τRӌ#iNmxb:K#Ui!hu<]xu5 c>޼u6KTQۑju}{JSz9#LbOl+wj4p' uК)i_׃TR!"$<ä7R)mb(}t(Fm^V=2D,Qch+MB`յLi a, じ56ݞJ*j5!нQKdHtttCt( \ڢE2n||xD9gIU-8:} u<2ޞo<#v84w J={dbvj953`؊ (F%;Ϻ̫dgӃ>6+WK㬬pzz\y]Zkϴ؃캳A?%6/!2~T֫yӈ%2>>k~S;UƩ{$ ']9wZea_;|h- ""?:[兏%8#<-Jԃq"ٛO#5>=9>o<.ߍтaԬmc_vF0Ikl!߂P0m)W$JI+}xC7nmyb=xOmLuPӕߑ`(r&L \ Mxyjf]$:SD1ܳnEmun|.ZuR:ugj.eltgOtίI֣`z[~Z`dp@>16',-ԯxL]w6!'|> f Vb7ВrFHÇ"آ)RW5SRx[q+JEP{?Z5u^ʼn ! `ؼF[<}y<`$ߩSsWJvab,RO* gB欬>3LsVj&{ƾ߳#ZlH/?QYVt$:,ҩAkοO5c- B=|zs55TR& hB/DqtVEƙk+lԓoq8^&R 桙GO3HR,| A"jx{XaUJN _Jeٛ7d)q4~A}hW(|R9x{2 ̺o$5<>EZ}f1RT&3pzDyNF=Z& ƽzX? +VQz4Uv 3rwX " }.p&>"qƐR kkF!tЛshCǩ ڱ0c`}'{qZ>R"<2Aa;AW|&\PsbͅfmxK .?N )|_} 3yR6򻪥c=7DeƮxWZvExy=NjڀmCIyyLqtTS[iM݉EdlJgU[ROL(>fAHͿBQgh%oh?R2=76b͝[/΀ 7,g #מnnW;e ت0xd8֊s2L?6Eb(yy4L=˩{)}nch>={ ݔi7! 3Sy Z ^1mIB (,b^A(MgGGcyel'6މZ'`Z8Rs xT2I/ah(SٽsEH0K2-ß˽ q`P⧟;k-s: oZzR`F >RCֳ ,h%pNc? S L$o!1- ]"=1ͼƥ$>>5#{VB![;īKK͐}:W=Pݖ*һk\S##u9΄ ү&cE'CT?m_/e"z7Yjؠ#"X3x]]\mIjd8l1ˇw(lfRQ-Qx#ctw=s&ڊ=HwW[Ăڒ(ּp]v4ңNr)lϋZ6uk)ӈo8؎ͼ6{`_0/߯ÆZR*g\MBѽ&эNUԑy .Zpo)fѭŌPDsOC#V*Ն (}_yץ69Uf:L2_v.=~3$皧'::85uW6+)6&%]DǨ^0R=>i(̕vEViETPF1Ԧ7Ijd)oYv^lr :b;f~ WuͶc1f,1o W^ ŋjcD΋ػ2 ?vH>4L6خb3,W*y 9:a$'E-ev![k]qPcc3 P&qy⾋6|j^]VU^Z~XVف^ͨ"TkMqȐg:ƀ9~6ԛJ>%0ܥ2x/*("fa(*arNLѬRX- YԴ~!Bshg@MH <]TnY{\lYstU=iwUٴA\LrfBg ؝:3#$O2̞ =l:uB}&X>6Gv l-Ͼ3&f&z[`Wj[\*)*g8t b?,"3~@ٱH펉}<1?r:~VpN%~ 026֭-KL dP<AsV3-peЊ~PK.N1'\2Tnuvola/64x64/apps/amor.pngUT 8mACPQux 5XwXYɤ %4EE%4AA2*,>H ALvUlk" C"R}1;w9ZFhm^៯Q$C9:0r3;rghp) 50pcqNO`L gݲ7a*=XUŬa m4}~F}8 ЁWՙrb4V% \!U2icT)OJ3VGo>q d m,`yT$eXL-* V︳]tL1RHLJGόu[~JҢp}fkCApgO#޾@WJ%JB5[@m rjƭ Lr;?u;?j!.s j+s(V8E"d\ev]_O& .5 Pdbf؂ARY հg%o>XH6lXQYWDbbB +tDckVFt:Tʀ7o )h7|/V1r ,"\䤥4,VkW mv*sDOKzH? zZuuJq(d"-qrð?'mƺYnys/x fRyL||02r <2᫠Q/t8]K~i>+PD\u|~^ؙXeuQ`%[L5ku<M}JЄj5ؽ}(w7,,Szg/OFS[\q=G@FEQݵj*+9w&u5vM"dž5Md;СbA}Éo.};ONקһ&;]YykƅYz?QM7q7zXȄs\mзEu:{;p1wZÛmv䵿*& \%5lnw!LYX.ڲ5"71Za ecK+ܥX. `Na@w|6b9&)9F6]s}߃mJOK} @$bU8~Ing4z0HžuC[2ѷJM$=W'FҢW ~/aE,%jT&YRu(f] LS-=@z^Ze&զt6ɴ%pmNf'mSW5\5fjgⲿu?Ru'޵k33&1-32]^Cۗt uہ(Ijt |-=DaESfp-&d. _\^ZJJ퀶)ba2@GEu\˔袳QJ \1`8fVO ^HI(NOWC^WN B?mc@4Q)(`Їe!(0e׮Y@S%A[5BVmҧhY,;zzYC6  T03 f=*7/7@O1sD!^0-;944)I6,lsdKcfTvY_^f2ѧ C;im:>ku(`n R]H9 j%f<+|_fDg+fiQ9-ݬϛl;RCWy!j2Im\->_QAY{s+Ies6ZDnޏ[ l=4wD?_=GK BH3ͳ,n2_#weiu|p)>GezuF*qbӈeN7^՜DCݛE@Q }Fy-Q^.2drw_^0nr=ZjAGxsMY5߯`RC aBn˟f?{>dhXSAPzo iQ>%HXq~OogpĞ|k\ڈ0d@#iAsH 4r;RYI=1v/w7=J{,/wVqk1VToC F f:WE:kՏiGoз[[sx ud2qeg=y|y!% wu2Z{&E [\E15R4*"jZXPj3<ɒk׼*]X*$Ԡ|eˤѪ]$m]/|59:ߤ3)Zwhecb,}ѸsHyx3ߙLZ}:K)VB;Kک:0 uKRI˕4ZHVPFxɅ_,;&sHl{!m'uiγ+23cZ۟ԖaZ[9(wi7 ȵmopCs8IiӚ{( E C%ϭJy^uagŐ:6#LnCa팺5g7uuN_Jsؓ \ :wG@˚Sz\ '(SJ}xyXpM,VgC/ܣ RsP6;>5nG5Tn16#D.(١…ve#u3Osj)DR`I%Bvؾ}T9#>?hj2 5r16(v}@Z'ҿ 4PW蔟hM)f K4kɞ_6:唡-#ܗbsp7 "2\yHz-5THKlҮfG:CWDŽż{ .pwU#>=0wnNV@Fs33qe:u}9:cbC4U\UIZ1-? nSq cy< .6.FZŕ eM|0<^MHG >G/]Kwi训4v%G8L5P3y0do|H @%?/)L1*Ù V Eo;1-{Wy3ɺWo/be93396il|al( z }D"z/$JRZ;Iv53 S5?2v<0F̸ gJ?ՕA]N~OP>iv˂%L>fL&̴+.&Gv/3hgEG:meUoQ^ꁕ;yM7R4^pZ3yډaKp݇Ġ.qݸGǍ I-۽m+ȴ!'fZ*Ҭ) )ajγusrZ%l&:+hp!U$xLQͯ@lټ}nHPKF16껑 nuvola/64x64/apps/applixware.pngUT MdA?PQux %V TSG$$QDQQ^1jh)v-ua/A  =QZ\@@PhM[.E?93sf|~ΛaeQQ2C$J=\ iCJrlX;?T;*R_˛Z8,r˨KHHxֽv˻X|Y+0})Μ9c`q6 P-+z:ITdND3"c8p.R1b||}#EniF;N+*:+yE&Mezj)t@mڂ '[sMGRPY iy2!7\Kvs&)ѷ϶mJ#E^!h/s& 3U##)?O&ow&Go{pR>TCH]G/{^!=TNrz+U[f&6#/܆'G1%Oc {Dխ^+2tz>\;tەȥQBmls$Ȭi#Lq;<ŒI]z'*׈؋' K&kkgiDD/*%dn%nB`flژ{F#X=#GӒseq6zኤ[j.b}: \? 0[Up4q({K1Az3Rw\]]9WEn,Y\3M{@,QLC#cP Ƥ3gq| bx`e9,5"gd=I25m.f ک6],~:!eG vhLhJ٪퐚ۡYPiWC3Zq71m*hh]d͜ ʽTYIb na#j3#9V`.Kjz9Á TEVA){-*Ls8zHopc4kYZ,r8,=L|pu9ݕc,|=m}Ê,SYԈia G迸O4 q@@26>_9<!L;0O|vEYfƧx%ۜ 'aKmgsXO5٫z<<cƚW]{6z;)9y9cx 67GD0gtďP/aFΖdm l3ѯE6uhU5׿@oަ\Ye[t ,1OݺH$2:C-.^_+P~sk3'u`MqT_PP ]uM;vA"ê*b@7 Q( ҵ}%?}Fk(DX#Zr}Mb Tddx}"lWwI>l zco+cH5ĨMVDhy͈SeX_ U+6O{!x"GacNP%+>8 aV uֺ]T{jJUUb)V"g-)h/YJ84[N}̍_o x3[^AySv C=g \I[8MxG㣖vT5 soYо9F hiN5*e6дT~HR?:9Q1wdDorH64Sf>ѮO^i.jO^ԇĻnPK5WG1ޕh.nuvola/64x64/apps/ark.pngUT eA=PQux -X ~o^έKMX'X)# j;]t>;1ϔ+:124".&8&"W1`ړ)Rd6iu}  xs###p^?$^[V4溅_$Vq˺YY&;;mr,@3?Y]fj2:h7g+,7̌,N!~!œc[Tnnn>f#BjqǽvO>ꘑ -ÛpKڵi-qmkKaUUUx{9,,f>fBNURJĩJ>u\46 j<yyywUD;=_?Dлj˄PG\iB8sjACIsqr*7 4cZ!| \., qB96U.f-_6(9(P{Y>96gN'>z^uj&񔍝RgÂ{2ut3֍-}&c rPI'_i1b{wW/U5tҳ]YZC!| ."AJ6xp݁(Zn~i%#nvC k`KԲZ~mOϗ`[Mh>)c@k+HO\x9=QS&yUa.>v]?e8d;[N466.)oB2DcDr$= sXĒ0Y(ިӎ2L3 f'RSh-^PM}|1ja|󤝵jցݹ\W,qno1x@WJ w?/u!$ZޝPЉ+qr<^˜`0-s'#Ӡf>yJCM[Kb` lF౤{s%_)hN6;uÑp8= =kӝ dy rnھԷ8ff[r! a!ޔXb6eё焸bu3;P؆!4/L8Q2ǒ.%䪕@6ƺp;@nE.#f0d?6!m`-@3k %Ǚl[R+rr"?MK,pbtsh0%W|`zQ߿u~r 荅%!]῿me`(#aƍ$cWR._y(1ً[v=Hl(^r#8^=4نIGG-֭-e\Y6 D<8pNjI::# wd;;{Z"˾R釩@mQ SX!z{8 A%dEʥRJ53QvOJdNg-ג!/2G'88ĀC {:gfxe3vYYYGc_2tk;R@"2AQ, &3G.Œq&7xQL$_7O:hSrwM ~+JypÇB\nq5 EW<3_ݾ|׽ u_oբqvcKiD/R \0ˆIBe?]]%GBFIwv'FY ξy9gdZhX0WSDD M#(q穆Tlv_eޝt :TŲ^WذX?qN3)PE[|Mg/`E) L?ם@LݭZzz)D3Zy:vҤ4dI@}آ1$WusnT^+#tU|Ʌ*:^b ӰFEqQ>?k^eV3V!S#Ûe/Ljj5s nQ2 @Œ[̤4-'ߎWCORL.{73jr1ɀ?^8k@R*-Ԕlw=| ƾyUK/r6(A-CqvF$Vuw7w!VjRdʯ[W^vRosgwX.1":A=zy,+}pe,v3UFi>M[7q]owV4Hc  e^%7턶&R_MHS<50҅ufm,\*_ŐҷD$%Z12D3CC8 w~= +\ Pc@г;57A7{Y2C+pe3!?9_V̿eNM1R2;10TKscunέ%M͉ ) CֈRo K.xbEHć`sVbYN6;ipDTbs!t)708E&]` %_E# J֕7 "'/ h+ʷ04:G )@=&bWQJ%qSJ/[g a5,>'1$J(˓͆yU::ī9Mz~DR=Ed h(f CV:Wm~԰``*u=SG,x8NrZլBBc'bq! ЇM V՝ Qg rP. N6^[pu`CjTM^Qz<0WM'`9–hh;|:!k搦_+saHl;,%tйNo8\9OTJbj̆'B-Tk7^hעnLB>!kk #"GYHtX鯰s 䌾7 -R5KճD.Bz*X}-Sð}} 60+c=TzoX P*=LSK"-`26/6~}Bi{MВU4_cN&R!WBD{OYZؘ! 2T_L,DsErE+>[:@N?mͩf++V:ߙVާ~9,apQevB zz˻G{;sm(; ~H 0ƌ@],f*,no^@0sI2 ygskŽ7׸(KΝgxv"22Sa@p􁸠~=|EZgR=}_;ٓm(ʂj>V3a-vP+mdjѠ&&B9:G@gdd+ǖ!U"8D kq2nIOO7dխ> uݪy^IS!+ל;ma2ҰaW6G!7skh{N:: -qv"Ukas3>gWrK7$>XB$l|+TrF㊎܅l@Ƥ}!nstZwg;͹W$CGH*3ψ*_6$*;?ߠ"›&qCDY r@SPZ[W@PT9K͢l@8DpfepܱfgFtGwY`/t3c.Ʉ\M5>t{vB<^؇?ٱEvvܱ)-hAy 5˹.PG](ao,d1 ; ~l]ü<:u9Atg`TQAf07ubߞB˟\J+?LVF^`C]?.8s&*o? [|ńovO9:0yrpPc@S)/|y$u]iYH!ہm>(\5F Xɤ']^iC\H N?+,,ܹ]TyuEh~2|IąLȌ>Ъu$?JH>Ø~RA|Kccx/<{m&U?gbݛRgf,YIIJUcZYt:gRSPzzPk2tN/ju2nEzS45 =knOSc$9:e| ,܂پj V"3DFși-9DE~rX ܜir+kVF՝n6z9,^.SeQQ{u~f\jڻii5f[ #N[+##a Buj>aqq_R+Alᖬ@XL{*/gG `r?{G\;~/Ax(ze^nk J&BkLn!AH6jtz5򿔙uSʌT>GޜR?/,&e(Z2XkJ15NqR$RLy+0B2-[1?C1di-eTή5j72d: 8֞S^׆F`)3WIehz{T]OM-lV^JF%4 笨-0F%!`k2)*nE!tӿ(:#\yOfK~2);uPǫ<;{uvb62I5#p;?3ŰP:8~BaDdl;e KV6gE#l i@8wZPK1WG1nZ0nuvola/64x64/apps/arts.pngUT eA=PQux WyK|qx%ӜTv36a\Cv4ěkȐa'AoƠa魉@ZT{yC$G']iz_Wp7*U#-\jRx\#j魊jxm=[S4ؤϬy0j"|C7ej|(* kʢScXkuej^-l1nk\zKgw#1w]Bln|]t"ppsQ81OT5֒` EoY$)*= ہm/;2/R \Un99n1F mygc-_r9\N_oz1AykkA%w\iUEX' bqwJDyNSM5MлRɤu6V*TnWw$b襆YZ IzEݮ)竑I_7!YAˆR3SEI0dc['#˴+䒈kz8|`z>93g-$> nN0"k2'[n-LaDd`j.K1lƹSu|#B^_(5Zޱo[9w[8h71Ȩ$T4m%U4!n<̻!'Z7zWtijq7ڰ>!  )i 5oa̰CK޾n0 aꁓ˫$9[cId*KiM}HYO,A 7H"ˆshߧJ7/"UƯoDІғ[c WYXeΪbolgi8Ctt~|<ב! }/KZ84j=a˧ė8p qE_=F83[SR.۴1[ic74[wFt1_ޒ~\"/LQ?en7mbj(4p-Af6wzK#"#S 8о}fP|)psr7յ#EH;ćn^bt$⤕ H"eˣj2as |}*SW,AAzE!:̎YD0z16|K {`x_3|g 0>~fQQmFԁa]xqʟa)9%葉y$) a֦}|ʛ] G2敚<بF.50LP8K˱1i "`զ[2֣nC0pn$-9, [3\ >7#}ֳyxit]=.pw2cnBWBr,ھ^/@V,*/X[9qEόr[PDHKڿD($D~4zmxj\0u|`6`:1J])a~SMxkC2놛̶. *8HR!!UQ;-c%<;~$*up Rʪ̐7:j@TllVGcܞ=: utcgO/ȣW?-6H|X4`\ːz?6w= x𦼉H/}b+&®fZaCv P| l?gR3BbkĵI0Wg>| >~ʈ+n&^^Zv \9OJY7V˹Y;h êQ#{8&J{ ֦=KMRG?өjѵb=A[*}{˿N/K/yL|c?,ٟzƂeOuźj' o]Lo!v u&DuE=^Yk$⎙Y3o{ww7^|(tPڋO2q$ FӉ7ZMuegQ=8w9\(%GU$I+II;&dtf:6tI|6}&;?H@#i3.#pOGʛC S-0gW oF!*6KUf.@NԓV[t4duQ5k2 pOvg޿W1f0>uܭF^-ø""Ҽ%,Dl4OuXJخXR7׮A 9=ִhE¶@]۾G=ZБhǹx%?p/VfW8Qq}UK54|.g~ܯ:}~9VQϡ'o_%P7LKܢ׎aT[D:T<5Id7@~₆ E'l`s$0G[hrvq$\z?FOg-2hLcEEu{^T־F"i3R\77Xƛ J:3k}W"l{4ǏZٮ 9tJu1 NfvrEDOqTIY*<?$-i&K5q7䱻W[#^R%L6Dg/A۝{9/jZp&2h;BL- 7߾uQ\{ u봉\eJlQ3LjnxZz?+ ::ͪe,ͮS_ py_~c:4`Fc.,_ښ.^#|/>mZkFqg&l/`]ũ.g^˺ZDc}HwK,V6TQ3Obʒ>Z#QKKF3?m]](ߧbcz|63;S9f|Ҟfū&y=m[I׭('}[BɓLe{4Ak#KΞIJ$ϼ5|b0?Xo 4F>,Zs>>(](/ݱ!#{IZS\SYձM]ՐC,GەOmFزts$ uzR41V0҅@:B=GQ ,qlJ7UOw.f<xџ+SסDmn7x5x" Z\Z*2l*|Zʴst#~KJ { ^$\QX6tk$_ߛ&t ҋ942FIX%58;t 'f38Jg|+52 }Shp^uƗ)͘bʉx1 ǖ[gP X2$PK.WG11b!nuvola/64x64/apps/artsbuilder.pngUT eA'v@G{z@;7_wuAGFM = xGĆE6 Hokw$} S0U jBkGY[Ci#4!x~_̝z2b47k ȢkNhax/0Vy,/S]"OͿ:pC1:LasI! τC9hㄳȡȰd UN,cmFNڹP=X[^J :! d9G{?*t/9U(WTE . {0I7ĝ]6Ki^PwlR,A69S6AMVG^ņF.G zYHz?_^½^$' 4xKvlwPL5*C#xnڢ}ࢍЩTk$wۿHT鉾|BRR'!t2+xQ!0Ag16ΏFi !YaVz&?[GcVkj 55 i SřC`8H("l_ "4*^2AU-| ikiϴ8NĢ3`&%͐dނ009\D;4õhz;X#U+& Fpn6J$dE}C\oUj%ÈoNiLtc:Y62(gϮVhHΨ2K!stziwWjNٰ+ #'gKCM`>*}U`Ѐp0͗v aD0f,`F{J?E,ߵTX>#]*ME$8ܯUC+4/:##s k4aO;ܘ kԅMmUݡUr<f ӉgγWvnwyȌ'-7ΠΰeCXP_2(VRyju~cF؁a:E)-' I]4GF5lixh\ѲMly{F guxÇxZ+Y[owzu߿wW A"5EwfͰ/"Do龲 >Ka>Gg p(džuQG ZuߎFb*q:-rv҂OfA/dkZQ9"ܥ%;C V)5W2Ξ-˿,&tR{8TN'. :PM;?:9u8xoى3vWu/vc:g2: z W[`}KT&< 2!&d9`t Ngl(֖0 sC[ndJz޼B/?FhxHz$WGv2L̚3&r&{:#gEE}|s, ^8*-{Fi F SԳ qǠV>)[LY Ժ69B`" ݘIK~8""ϊ&6~ŏnOɇn\SbIGJ(( ]o{9b2}P+Qʑfӗ/oU)}*g^0:( Ɩ Y( ~SX3W޿7\bZ3!ܛҥQIi(qh@`X㚣Tf] pL&q$Y1op-wπN }ސs9UϘKƊ@1ؕPy䛳bg(< 55+"쯮*usg=ENٞߞ1@(B.uQ<>Ħu*cFT츓UN1Sэ@Q(n AAטFuO52 TԷ U.fKqW-Q{2._ e^崋qgNBVsE{OE2h徳jfM /x[1=lTu+P=~|&]r8=naͦq̬(2NFTy3a lcbZPη0;Wv٨KFېeؽ(WCdRc%K֍U+8H-m3g P9ӎAA俳 #/=kɽvR|gs.;LXz[7Xs}KL u-S%[[xg}4^O/m}o Ojo^!cWABF6=k7z=W-q9Nk7c(6djZRH-10[`M8r̍,2Ƈ::9O"݄ΌuO[g`GtgkyI^MUKy<1YxeN͌cJS O~-1\JRcrc<^K̢|\w mp21_ UMr\'#4Rm"z̚2G/,x̾2#i8ڔ+[sf߇7ʻuQ/|d5*K>ysOA`4_HkP;LUDrrMz(q3H:Hb c}M[C$4,,ot6̨1T>a_E T,.aH,W=セ .z7+;g8AO"7pmS ӿ46;y1JMDR!౏w ]* -䙒۩T\ou%|S4\(6p7E~!д:C;IV.ȸ7.cK!I bO|U[ 5ܺ@EfT_h|aanQԎEkԼImip'-eP:J U: my _&0pֳud᯵4 {ɿ! 9_5F ca%Vc! ,Mz>j0v+8ak r '`%}өC M`L^n\ѺN@SyJ9XV" ,31~4B\*#E1#a';_gӊ8mЋ)Nbywl+1&lʭ`;vXoؠ;z^{t[e85W2Uq!9+Q5J ubEQD_]>oǸg nf1Nuk-ciTj;k~˂5cl ^)VwzoDd&o7wRr~쾭ɸD+ٜm9Sثm.=E9Ra=-e?ԇBuޑZ5k "C0c_1LO%70^(,2\.bc:Mag62*KAG~l?AowXSZí4P tFB7;x=wϊGq}uoޕtζ!e#h+[bG؎^(@m*w`Nɨ/c|8|.;j7*6~ ҲY-+L? h>uJ<)dq sIjFҤP~'%$OISnPӵyķp )FoTd+lʈCm. I%/wQȲ!bU\,5}SDGad,J>/B[k9nȺt v6#z/=>Ett;M-4@(R{71j}\Rst+~ԹsZ$+]oLcq_ d$#&m󳵻%αͮ/f §َ>ܓ#]?.¡#n,ŘԁY9h o6";F`ipfA;ۀ\NDDW[Rfٜ _%%/WZ-8sy)CzB*`Iqަ]ZS0@}CRq_ 3M3̿: xjk4l]DTT؈fTߕ˄:Ҧ>mv%O?]L?nnjĘwǐkPҾ%T8 ГHwJ22Ȁ1Ob%wJD =[RcZ3LR'{иr: Gf`cyA 5t4I95giSn4DrH{*knh eXoYK%ZKOP,w3y6X^Bni}RQbH*RtR*NuޟYoQ MUЎo@j|'gEn} fjbySE򡬬VDKp: 2;ɻ[H)\1̋`fuj佺?YJ[V*7;^=mr[‰z%cP}\X#R1:%8x"hD.ӧdDnX9"Z1R Jcrװ`UDiȲ*0hJ뷯33ʓHHuFVr5T@~"{RO'/ &yU&`8ϑ1^|%p}-"<,)6'"U?< SAauR{+QVKzHt~\u)_JۣhYڕO]`//J)S]n#F2`97m3<_Iu'b^ESAϷ? :11߷5`ڑʄSfhޡ B[ }`].7vsklE;i=ŵVkY}d~غE46)x:^m]t5#PK*WG1 LC!nuvola/64x64/apps/artscontrol.pngUT eACPQux W{<o=T.)JMTd[>B.݌܊B7)f3FQ(OuWao&w)s(޿}8Zx6%XZǕ?驫AlW~RH- ~U30|cR\(]ʘ S ߲kHy52TSmBb[qUa"Bx=u%`/9P݊M˃sh,QExMywO9E@EzwҘgɯ/7 ;+\_24aʯMKL3o]x%w=ҧں5"Rv8NShOǨF~kOo`&~)ҴaͧO29;kaK!B:.$ݤߵ lfQ&@ \ 8B"[<о3sYD>𵸚6~y B ]dVu%[LqmȌWnEsGXٵ.ݴ@{&V&S9k|lpdo;xŒvUĥTA2>!p1'~;{,|1[*-e>B8ٞ`UpX8|jo̶f@irx=$o$wQL"% aɮoIzI 7GC`r WUiZ}"3[]*ݨD$ѽNT#}e7V4]:)XG~&ݣRI*=cbڵ>k͌'mbvQ ɆH_czr qBrh+Wְ\DXJW賠G|+ v1hrj JMI/Aq9G^\ l }J?P,ځ!w>T5}zqsxPd2Țp썖m=joxpJ\/TuJ*y~*Dbgm8>6^6`3^g/97A +c*w˕}9vR m)띭7&!faT!^$٤ pEj!]B58ŧ ;w$6jzb%i_A,N@IEה^J#=Hjm펈m &Lf8ReZ:T*&f D/Ƹ"<,Q IYY U\ Z$Lb<4GBtF?=?|oÛ6<ǙH1Kdvopx(7|d`h#Ύ&e D͕'𪫸g.#zF戕MձyղD{0T|X wS [t؝D}B[P~$/GkS7WT/?(6#x_NoXYم'2UxHIܯ_9Do+' ~Ft%6qU ꔗ(+9rU:mq{հo>2͗bfj8(-Z/n&On玢t=6yduWg$݇8MʰdЋͷLoNY2rse 2F[l©_Tcmc{%wuee'&64;?qfj:H,ށwvONbYQȚCSmE.#$2$4zB苗3@/Jj^klYrī=%6KnBeIΆt!Y݀?bGff:%{Nnst8T>f+~Wm.*oSWZ@aW_h91Gv[TԀP}ȇd>sk0)?ObY8fwˇ:$jp>KMVIlwKb&y\?{?X5*D5 ?[b5D55 ־gO0(Il2$R;$s6v+rۜb'MqZ@עjHT=2E{5 16Qyw98r񵽣&%ΦO fɍ6CUΗn \k0h=қ9iu"Npzqu} _}N/Z`kۏ;dXfѕn3=N+ޏ%BOV!pë'[Vf%N?y9z qOɊ4ZDj=,M;$]"gO=wٽhF̞&©A^T;-.b5qT·.m"Z+aF=[ۦDIyA%L/(gtq A_?c$X;\xjkX3_Ih{&n+&* AHM;; }fLJ*KR?%ywܓ 4Ji} 5tOГ[GzW%6c^L9}Vj0+2ݳȣQ;ysXz]_IxF. h$G'bsY/Y1Y=˘"6$ w'KPg: `\QBW\6Q)F:'0ze n:J,go`IYw_rVmdʎh,'#j[(oRjoA(}R/$%7 #5I$㝜L!q|i:2.eݿdy䕂 ^h$s@r䂢 +*Eq/K?Ii*LaݜLJ`VC@oG< !N"-<&!}=!%PPTçqa T&bZF'˖p 7ÑQ`uQ? W,8F ӧiWZ\֜ p[!|$Bp_NlxAͷ'l[sv]ǖuRPKe:10*w%nuvola/64x64/apps/artsmidimanager.pngUT ΝVA>PQux -}8oF6*cn*b'>[Jnf{# O&PQeLE&" {usǹι^<:\e˾Ş_%ۻGOv/vJ!=LhŦ\Sl:|&T ?Dq?$h_`ɖ { )|X "jj5@ \ S 3BjXzKV4J+pFFq5bnƹ=cxj N[ubU;orFSFٟ㗸Aetl"L4L;. '&T:Ǐ>@uF'"J-7iI*u+Cח8D)_SK0$c<'QɜDŎi`="K~^ ̀CvѪ|zQ? M ͻvtzʆ '4`R pe!$z)deݧvx2u?Ͼ]_9 K'XwGpg,S0sϞT ~=[ٵ?rP.zavz|!^+3 qJIY~.TԹy;Qqq1,Sgȡt]~ ;K&GyP( R.}RCa}G7@c-z߾9~@53< 物Զ8]J߼{Ԣ5bq`<'\2h'ϻ,E='VM]d>^4VDTⱰ!r70B>EM uKux˚pi'WR.]Ϲ\n fCSˤc*bme,7#mNF1x_ɼ4;C*,67Տ>ف;p>=3kPMCdO<_,+~l妙&\^kĒc 6#Ei^hKFT6u p[+b2{۷ ɼ]`p "AqMf*G[K\y?0@v-oܬ;Dن B+D+(c;օE7/d~G SOcLb5}v&WՈ0m?W#[Qǧ5.gr.wBZ-y]Fqm'qFD-J-6 G Z$# [S^Q ?p8geXO=}׭ _NޔQzKE7ϻ;VKyN,W@mHۆ?$ݩ#G25 }߶Cz%,GF1@-A8]eGln@ S}36Ru=e z0QHoHyX F^@@1 6#qpi^=^'=zjFFzdq<"4P2?V, j5E.u(x@)^ݑ&ɹf& B'rtRD#(U>dlf'b DݡaZu5ܬez>g-t\a})ɫjelmLj7Fhul[ճaϾ7ՍRԿH 0u&!3[7 3X0q>mG,99L%Px|pj{Ն.٬P:+SwZׇH[N(g`>~rEL` Q4%u^<:)Y9:ӌ{k{F1Uب[1D_JGL–F*0UYE@k4lʨ$6 ǣV ? ^9y|ݠ#lIN~VSJnmNt yfDnodMSQ\fk! ø5,.n AS$"@G96 @G=$pcS̿$GNu?̬GŌ҃T.-=!p'oRٖgS$8*-vDfЯ8Fx|V@;1řLXce90zWiʐTEjFZ)J Bҙj's p4uN}*K9()~`X|Et5vyuKZTQD@:k-޿}:cڳJL-ޗ5='s+KvDɌ ~WٮN +}jN5 ;gal͉[ڟ` r=DzGWRd!)m`ZIK1wv窯E͠:lcwTxbn-Yyxch?yᦥM C_fջ3Y#mT6,sWH!tﰦpBJs˚>I7p}Se9z񭋂jrMsA U]r?pYus6e)VGh`אeܿmљNʒ٦vv+! BULz` ^~-H?vX 3hQcņ%Dmx|}F_+s,qh6쩵Hu5wN|2ȋCp䀹EPd?J0 %uȈCX~u7zs—&cQX疤$cz rM="HqHP>rn@{Dvv>8k?.(3t6ϓd0eO)ى77|EcW6Eх Wŀz_CR!'OYn:L$66裟I@ʹeKØ=\j'J#SBІ9cیy&_s [UI=y99$sbUԼ6ݮ\o,Z߭\- htD|=GFhlpk?;"l{;41)tL2|} *X( I+4eW77]\KScqtJ^_>",c\:  {6>bee7tOcHOAxXp$>!!AH ...=7KDwlA 5H*wHG1˹I)YF ćw??=:ƁP>'ԺW8TD\}PCwOwo6`Ebq.7?_'j]J9mt!NX)㎂,QKn^ oTX ]VйJZQS]L0 ^5e@Ġ_Sw/9iƗn;Ov}g¬!*;[o(˗NEݞm-$ S;]X] A#txЏ4 ;~ye~~o1mg B66S;_I!} 3 k!p_M/B rJ1ymV"ҦNK&h}heG[`P\Ql2ি4:`'BDחqhggcOmO=siR3.ge~Fy@RAq"7XM '8NLn&ެ;2zG'T@R@@j}NY}c|7ݽ oԋDbV+XW5CO]QVO+t,&37D!P24,ӭ=0zn}e6 #Oܡ_Vq+ ΪXn5Dw]kt)=7]Zia} 9xZ8+ Y@')$& >Z) UAf9& 2]L 6Q.cv'+29ېD M6Ja9fLa"̉WT{K.ژbvھ{4:y^)us "Fw 7>H[+dŌʆ4,4:#] m&ֵaIcы6EI_?"(֛FQ8ktSVwɥc'8avGַoՍaW¤ή1(,C PH4E"Q=ڲUP -,mbqL!B|hXT`5_IY+6-f~jT@{AȫUIJ&N~{+8)#}YlV;:Nn"xuz7?_Ÿ;wNm$c27F8PfesN+9@Du(#YjSE9c$|IM%ỵHd kߝI&#y(έY;@* H0h:-qEFUHW️-屼Qp7$ᐾGP+=D'֛~N`GM-Xw(Cf>~w Aen `):%9Pؙ>js>ung2H\ؖVS5S~xW@ɢ^NJn`jڏe-a:#T64v,-ʤC]shJI)"x F_mJcc@׮3&+ٔLŸx<)|3Dm9gF>'Ꮞ8L6u+rga@h7k $ "IF" C~:p@5h`E5K!ن8fntqJh%́ Ӧ U6u rZۧC+u2zvJ~ gC"-j/H嗊C힍 ?Y0I_ġ{ -__ QͅG(Xfj85^U4F%#J&q4+1X,`eیLHFVS*dV# $KX"Y^ 4`Sl4:E+Զ=47O=a4pV,>R=]rh]XZ^ ?Ϻ]}3;o8mu&BYw6N?4̈*°ps3 xpӧsDA*!۽FN}8{)Dz B~F߶x W:`A%K"Mn=[rGZ_FX%:elRĀet5}|nObn[:q X枃h]eտeqe+(`:`13)eh\z. 5xĔcht݇WhMoU,(Ok>1HI'@՛?TZKmPi PkQ?=7323O?ٌ6کk FVA4;v|ʼn'Zh3m}d(d0L] b;p$̌|n}g'aTR@/4醷jo1,mMUq!TI_EVig¥gv^YbhF<sx,:skF&;&&1X=4bq 1 /7ٌsi[AVɷo(V-S+IFFl4K("2@w;2h[3˃F?}xCp:E܀\_.ۮ'G R]Y`1AT@!| %ֶ%K\ۢ <𧊒=O@vu 4@`)3)`x!@W6=߿s3eɤj6 N3WB;9YUvF՟rBMO'݇~j蘉Q֏KDS8O/Xm-4W;?u;XZ[Rsp,{^3㮝'Ucq҅-)\׃A#inƩ ra̵T5c.zU4#3;_4SFN; uW٘y }:ޢI^^ƌ\&#R^}Jt|3.l t- TE" VV.v} DVe]Psjߠ*K=j/o]/b0BQy7o^ϑXώ)vH?Y)C>)&x0Z;0 VS!ܺMb91Y}u*?8aYyosmtǭ<^-\ªmWOS1n{tt0DORj,ݶ1|---Yܷq_d]l1KNl/kְֵPK WG1yC e nuvola/64x64/apps/background.pngUT eACPQux %W <ؘbs%P -JYf]B %T$<5TBwxz҃H[y9z}^s>yΰl4@'PO ^'7d,c3nA>Yr$(!#*!"<~0|PB`-HSKkb°Ek &Z0"Z-@?.bVi>_\5hMq٬7Cý(z~k90}}ufh"2__^,7%md]ytxx8//KXc:eZ::pT* ՗⍸F* RǏsܦL(šmj1k ca?& D!%t6C>[qT1SR7+.Bjz T*6t^uN /3%ƕe#}]SvxXr@`6io77tzy[> 3C3FY?8*k"h?Z𫍓pJ EŤ"OoLh c;VZ'ŗEr)Pf1Zw8 n a^(:PǶ %#lQgzoݭz=V]NwJT"2_ܢ:tc85EIm |訃GReVUppI5Ho_g)qʢ~& Ё wIƑ^]φS'/rI4h0[ v*>ʮ2 Ҡ>L"!~hFAHY2 )MnȸbHۙud^mW\5(%UsqW£<{iδn 4'LVC6g  %*k%?ERCI'nK<]rq-OHx&h6b*5wK+ P]@q{5Z*o YtL8_ΒO.&V9R+ѶrҫHNף sqDnnD+M)#BqqtmڷBN.̊-r s1٬a| aF,E6>S~Lc(C-lSߔH*z{qf kIrqc9ʻ5`gC:>;l#[baR;3!oހ53dW#&G L﹣r:4O]B@S?9ݖZ[F%->#Tgﻚp8mvg6TթcxKfA\֋Pٳ}s3|w܏]twIL.7D4|C0Z̖RtXFeCWáDV2Tde s`qI[[o.Mh l) CYp qq<=mIte0UMpįl$4|j;(h4m[wZ9"rx_ے},M]2 bB[(CS)Lyf'> s8{MXh> &z4E6TbrbJCK0J* .+5)P^p87n%$+fZ02+6iPAZ9cWA]3#"KVmoo9snܩ>ܔfta5(ɕ~Y૛imՔBr&(=ρ?|BT\* [[rB8tlZj;3[P0Ҝ{^Ey5!#A߽ p#] ϥ/u`˸׷\I)O3AD'E:ɛ6ni}:VE7 ݥޔb(T/ $=aAt!' ȧrE\ƠݷQc(,_HBfߗd=]]) !iҷ8m) !V(Q\e6Y~#[ Kf'{lІiG|nJdԕW= D&>T 2ְf!<ƻM\{$jwQ{=hCX ;q61>t0Ib[H4=@ɒo;\D~qQch߬鮰ރ3!u\L~܁sJc WxƜ֢ JK{!]uHyQ}:7tt+o%WH`BR8K;j[s=ܣ"PWժJqgR.0MZU]@ŢF~ѧcٟ5f-mXEU\Ia;KEXG yn 0lY4!,n;:A 0Ȓ]v͹8T9Cѕl^&Y5ݗ)3dvӢ 5=$dn<2x9Xr_pևRpcl-"Da)|qm\%%kD@EYS\:eDVi)ITP,b/+&V|wt)斎CN1oOxd\ lFj_-+s 5ڊ.,lUgf3LrTf̪yUaI&"߽0=T,t$WU]aD0P519J^Zԙ9V\Ρ{CpDصL1|˄[i|rlb7 vV4 |1G{)#V)rQև>pQ2+6b >N/ٍg!l` gn3?:`HaU:SY!SO8E w遷N$Ol<IJ7cz( jq*c&Ir[eNd!^I! d"X3C7 ~# }됣rD!IxBWp#4ZʈD?R'+s2[0/ǿ 8ݤen߾ĿS@nngkN_5Xn.lt {vvEw\01XtNS.fSst`3ZdPr8)^SQy3q!IԭIr勳%%b Sd?0E 5NfOő8޹0 BF^O+ւ(~UM2+)d>ɉs?% &*VjoO觺,Js}_Ö}%/%[Gsď4R`Z.h- ̰X A>ubUerl(4"^_۔;w!zZP[k_#"WZ=,čxe2Bێq³{a)eRص~OLvX2#:n-8lxNvK5CCCO!p9\<۴!;~EDDF~fH v [Fʍ~?,~ o yrN~?'-6eDz+ )S / %!QrN!FD!n A>>ZY<wKi;6|4#M&q3,L*쮇tQV3q/̛?UG\>8nvk3nau'&EG鿂4?4)LwFM-vn˸8(rR-qldՕƺ A2a4jwBCԄ*uM٦i_+x*&ΣZ K-VRu n8*]$W)vl -UsW~_ kPZQ17gAHk? 3+)m|jߏ0&ߑ^*gw&橀}f~py[@B̢ITL9g˶ qvV<fˬF^]ㄵ#Qҏ4)q 9^YYY,[B'yѝ 5 R^>9y&e?)F&{}ݹB7$KZ siFȍw_)no^lPKWG1:AH#&nuvola/64x64/apps/bell.pngUT eA@PQux -xwXL* $B R5 (E=TQQAYIBWABFE(TTiI2}{3s=|aʥZ-@"{'v .7GV3ǯ?1L!##B b ce=8 g TWR梍}gb=I\ c`Aϼ@GɶJ[YϚ@b'Y`%!?;#c;WaA-êL`X%wP?~8dýs@3+x@ԏ='0 7a]TТ>~/ O;.U߱ŶX+\Ye}üGLCfr'ܠ2F.pۉ_rYQc$cC-hH1U+WNZ@8kL5`+vFm5)xTK{/O"8243_\HU,81B9M@wbISڈ$a%GNMk{įU7dWVTi8-kQ&RRmg}+K#{jK,cؕeŊsgA e"c(Mz]|l[5b*׹e'G].,R&C̼J@*~q6^|)5Uvy>Bxl2_^fwD6%zEJE o MV֕p[bAP&0ϧiؙtqI**-K(v+cOKp"uw i5:WyG)4$rbBeAXf_ߣzEo[X7XSe)Sb<җko?- pD#sW!m $# ] PY4jFǼ PFG䳥c:n}m{R*׀`MI Լ\!ğG^VaTA0ou%&=Qӥ:RFe5f* g'v;W,}9j ֦>l*b~,젩>=%nEV@|BûzpA`xUCX\8%9%Ǘ;}j2͹ꧾ`l }!k:[9J,$HxNĻm`Ge[ ψ:fACg`Cz`7;{ q̽v3ˬɜFdWro4+7M`Tu.ǹ^ଌ޳$Ot f_1RL|~ ,g|;%b &sKz&h*^ *0mߴS '@MH 3]kwkJ;Iǡ9VطVdJlL͝J 5'3" Y+mi>@ |E 0(~{Adh?r[&.?nCln̓FwhiagKZp뼉gbк>ƭdsfF{#rQRtie$"g ó kN 튜oi`?=ASp'o_f&biv{3D3 Y3 ]Ż:/Ҳvd6LS7*B|8{ڟH"hcqcph3j iދV*Qʭq(΄p,s,oFӨy@`J%e#)OM^u7B[_%bsҿT.[ZfRv5yjeܬ}eC9k>1Xs‰gGRCzYoCu,J3 H_q_a*x~+כoRu0$նsB}p@q=ڍ8UiXfZqd ;k0!+JNxX(F=ӎUWZ93,{G$@ng/pDPېHzhwUGҔyuBXе S纄 Uk[ǦU&V~8S*_ &(dǧm]3P7^n{dozوh~%G\B#rz+mԿ+ :ux5Z<ĥe5/ 5ꜩ)^Șu&+>C\qg_61+o͹BjT[l ?q_aR>LJtHBQx >PJvō;j#9s?O 4X-MMyv(3W8Cn.fKeER &ܲ$,gaSiL}`asf eyqI5k /+&i,'#;YH>2Ļl#{Dai+0iU>ᡴBXЏ Cr৓t{Xϣ8@A[nj~{ *u<٠|r!k@ԓ/%Ir%`,焹ZmEVBu(5gΚS[PN]bx>yM* 5M6x8%kԉNSzP"&xͨ^UFsǹm$K9fk4#I,n(с` 44m=Fxox1}kI|E;9eHwTI{[={ro TRH4D*C A?|Qfe |{+xw:1?՚uj J蓏D4R.AK=_]rFdD(FϻST.6!@vaJ#%4"?Qؗnv gTj fL9Y&:HfW}jqRsw|#*H7"zZٳ3h]u ޛ̻Hjʟ-a"4jnM|4 yW'^fys1Yٚ55tz/x<Osn_`nR9*Xn(֢/LO.ѱHgFfUOjH%HOLz0oe1}5GέC:M_rKߢVZwG8 wWyVH1VC#h^66fjd>PK t919fnuvola/64x64/apps/bookcase.pngUT gUA=PQux PNG  IHDR@@iqsBIT|dtEXtSoftwarewww.inkscape.org<VIDAT8{pם?=c€6pƵƆl<6{ޛTVnnvf:ڛN0661 6`$  {%@Bc{:uzZ9RJM+Y<=#4?_ʧq_Yƀg&iۀEJ::|^~I˟T>u";OMJ@ / Rq$|NdJ6m@Պ%ø)=ΦӼ?ǎAB:5**ǭ'BX ӽytf|>ยoJRahK$xwhnlDB2 ^}AB?5-G@fnq1~p[ǤaKdgs*{ގ$x |_ +BT3y33yt6Λ'F*#&X @COx]]J 75!f@(l6޶˖L"RMU]kw3ۋ}Iح󿔲c*<ٯ"x֭@U XWiN~{7C0:\N.;);oWxL+mulz1gd`\w*5~ڶ6^߽X"jץ) ȰmX-1fx0dvϛ2$T<3mVfv1yX M#g% ,bժUx\[gD:o u:#v$zAMH@1߁lgJ XiQq Yio>pPz5+*kڝ KcR`]'쳔\s0tts3|0|:՗\9H%!pޟ9e\[ob嚵; UQgLpNRΝ=Ç͛)³~=bD0b 5#)thNsڮzZsSo\a>ys"z8s2K_h%%%zIn 9R6)R&TPKh;`=N'23P#ϣj:|~>[߱f:NĒ ˀmee?>4#\wEhA><j'%0[.u<-,Qr3:N6 c"c=É_Glapl^6 !޽@,ٰjUy[l#<;9bzkxe`$G̱`45Qe'"%pl@RJĒ ' W-D4ˇPP2+]T$c1v~WXc!!p8n`<7smC!tGK:M6EhړP cWJyne/e#n  b}MD."5ṱ|KF1nk_^5(0?Bhvb~V4Vz0b1Bo@u5]{ =]{,":)e@Pȯ&&a#Iljt"SAf]Nɽ1&p.GvkK*MUw8^nx[{o+-S)@u5ݻwӂ٤Z^q/C+ I 8Jt *լ~Օ4q!#!zK(PZ^En&^C;}X$.McIa! (FѴ1mm!XY`ٵ>Zs{ȭ$o 4 IڏЀ ]N2].XM_ʶ#v"`(t#Das(] ό$ Ð5_hb,+.2?YYY`}W:oW8s~4ɭ"KFFm.SS5'p+#b #f,v41efne-ވw&R˴w&z .X5غ?'rqMbQ {I>UҥVUXߏ$iu@$~4o1BQPlV0![J7qO"k|f Jp UimfOK YN'm(b]QA^U9̼~ߏ&D7 B`wg z-KM8", BQܢa u,hޙdKTo_lw{xzRJO )Aow7i]Gu^_v6ddd+Y7(*飯OcӖ1mtMh#NJłuINoɚظĢE.B̓+w8r\<eF*Ot?$kBlpch#UgνW-PVZ:i#:9FC3))>rkcw}EO&%- ]xWQ홸.ĞY2%BQPT XUn;#EwQd{M# `DQ,Ea1^ V kK8 X*u lFC =C$ {vՙOA%ZFFÈ'unz:;^g0BQH"$3%P&8ç`u)'ȟC]7;%&̺kErro7g2xf7gvqau񺉙|N;;P൏T 9:Cc-h. ]Ct 998HA6rFу .\!M.Χ,i).4Ұ*g]-;f.0aN1O1v:&q4!_&_oNt --T=!zqejlDUĨe]70tCw( 9(VHiҖ43cQTΣWiz5׼{ b{CSw?_)]}X+ qySώ;mOfS`uz Tĺee\4@``j0x3<^SFMef//$L~S8Loc3}Mđ5Wa% <%‘uhFSpwt cLM:Êjw3poDg,g7-RF1ߥ 0o@#ITEf]>:I3,W)[YH<tM7-x'mpf/"t Ca%).IXV,xuW"\Px`z tg<@枸5EȎ9x8V0Em6jC F 0 ֹ( M,@7;wKRLj$PdoQSCs98z!ʩdˊ/er%zL:CLTłEh'bhTuMTy_y4{93a'1N!/&!jg(Rի5 ]Ĝ\ Jݲw{@$6mBl.+{%1ӟ{4L]3o36E_ aihGTOފ$Vv=[ǴyY/GXn{ݭc#a_K__@x~S͐ |m3Vm9Bh5Zmbhn}V0G&\}GɌۧ՘.$%llKUFRxZO\w-opBrsg`TJeK!LAt6Ln geOؒVAIENDB`PKfE1"a nuvola/64x64/apps/browser.pngUT }bA;PQux %Y{<^z^z::Zefg]Zރg6lk ]p'~|f~$.P \w ("lKXPhWan`ink[`50^ @1*в4շ>iPXJ9xT ;!'kwsG6K" .t >6r4M+eτ@-iC>`09Q0hi0:wf/s~weB-Im`RBz3AJU+@HVDc͇h?{XqT7=@Wnok ꥬW5qV?A}pPyn|'J9U@0jhTJ.jMjd'ؿ#Və"HΓeaDWor NTe.J8Pd䣾ICSmhͣСCj'3meϔժQ?lը1FNJaiH icCiӦ? 8YA&(b}i.>U< Pޜl(!ܞCfZhFI8("(<E%m172;jiaD`fi!ȁZ"U)q\r84OYy Xrom?2uf41N1^FҨq7Bk ^\a\(ceڊ?FtwYE]`!^%?xwZ"E In3c 9uP''֭LXXruS,AV{NJ NF^/f7b@JxJL癉A17oAXiTa!*ME =V`&)B˶{3FUPByG[` >^e9?53 ާ%NjtZ[g^`ZG.xBNgEk+8F roddXgJNk^B$w UEx/ݐShUF6{,;q/J*ھyݝ}㉎ʒ@V jFJ>޹s#_) mBFہ Vv_DD3lٰX8TEK"a]D珹 g: M'?0ܻP[LgoUtEu$8zh̦E1:TZ2C8Ϙ:Y9Ac7`%8F?(Atj2N>`m>e#bMYv%fVe=CG:briV6u)fvLMTpM lzz#$ mOx;\ESVީq̅/Y,RzLF҆7 xlLs8lYEZ{C}+)S=+X$կr5XwDa=Dv>4$,?="# ,ګ_q&PZS?M\ZLQ.€6J'2ڎtٷaW`v~RtL!nEI>l|Wt GGs2ѺGh$UMz#y!͎ђI9WŒkCi]!Iֶ=fEkRǒi ^r'5x=$LpUi6_CinQvԱ,JQ ~C/1 :/ },l#J@rvTĥ`KH^M|h:2\e׺?G aBN% |A)N~5@=A^'Li1*S\HOI_P#DM.wX5#M7\z U9c6,FIO=lH&IܦsXk^pY\o!U%e@nrcEm_-Į]U>g($tv}S{̜ZG\y&iwKȡHs6Z.,^ȔI[w,$ r15%AsEȃSӣ'f.TTFFKj<ůcA{3>''u93GU4bK-^!:ĩ xcl>B5G9Мz0/z_T=π~>GC+RMcbOXǩ$}-L})}oeݢV( V&>*"#5Bиuk>'γ吙`pmڭ,O*V3hb[htQ@ϤeAaY/Wnnn}ЯS!0zdJ[kr\]wVIW7o[(zŏߞEطR_LtLѧu y+f!OBͿy'˯TxЦ⯍0$=G3}T _9i P1p` 1-=׆oPoyKm+1dm%sosJɃs '~5{ DnDZktQB`udPFƌ* Lrӯ;o}~(_ǍwOB' ݃.xv-7iVN }&ܲmUTƩ5Ub!Z%+ SCA!ekX9 ,!>FC*|vifVX&Lx l$V!:g1.}W[P1G\?9_#e! %SBGYB" I!CVr#"AKs*p41qRyܹSۛ%9{rkykU\ٳK.y=nr'3K!Vl!-!8 yJ!UĝIghAwHT Nc&ZA.b k/n aԣQy)(P-'䕻ȏ\T`K-zyg l({[ɖ*SA0N$qPpQoa*5Of> Wt3͘]g9d[)/z@=*KC%%ϕ>kQ()vyǠ V,?L_zY!G wD(kj͈g!=#m=Kixdv1ѝJgpA1-9e3iw|)=Qy5"1N~ "e} J ti_!Tc [Gr34܅c5ƫ& 3+w8|H:փ5e8Ng#vΓwӟ;B'ii[ 8Tĩs.WqQLfi^M^3i58<nCҚ7& \~C9C+]Pq>mk۔&w!AD`mctO((E2碨ﭯw f%%~`UZ7%aQlp3;7=ωBѵfae@WM 0ܸ_3ܷzdc;6r"DsKxzsD#65jG}mtj6DJ.nJ:tg,ߟNE nF0m]]eӤSd !Pp̻t@A_D sQdܝaEzì(yZ?Cn5s3kkGi/m& _ yК7 jrHٴ7eϹ7%wL7M>\SźDӞzHktx B.92R}EbΝ:T=q,^yZDO.dfC7c+z*. 87յY3)8?[LJkh75^)A:\ߧ/s%k"9eo8Ԥ ]=-o!=W)/-sxpKoڕ"-@t/J8@N0!7P)҃qp4O{ m lbƞ]7% aZo)4LOwL ~\V%i0ޥ =YyGeFI!>(t94V Ogfn9<_H7$lW; #O+Ufjy 8GhWTvbY;eހԬ6_~{B. +mCMz(9)M`\fFkWJy=\oJlc 3ҶぴD%vF$&bF_3X k \Nԧy\WS+P̻޼]h>9|uEgi g\ 'HwKx8ݵd}l4+AT-{sHiL=<?am bYGy'_A8OD7X5fʄ&\#^5UJι/hQ)9`vQ|xĝ\-ܽ)s<{$W?voLM[0Q0}/^<_`]qJCzk.j] eMQ\c.wYer<:*>% qiۏc|f WX|'=UzKѺv\bA]@gٌ?X"s\ަ 6w-yfj4"n':`..ZTG?L)Ѧ2_2 ɚR Swm˸rdj3o'BnLz . MCD61Gz6L^T [zwUN96k}2Ro7k㘂nzi/ 5Qcx=$%`aqplwj۝$;8IEp%d) SA Ss{RUDՋm; F?/_K^U'?XN:'tmIoXȶѮW ޠ7/##N}r=: FriֵWʺUێWHVKwy: 3S3؀6 CUw

        Nal 1>]C?i˘Xj'A;cp*~-:Ltm"1n~סc+CM"깃2#|o:V;=}Q/gWmB=k_;S/ʠˤZCg F9K.Rc4L VS~bEr2O 905$@ s]W\.r14 ggUaZ.u?QG.9e iyI4pJƶWSпŊο=4Kc4o#x"izApb/G}NeQzҷDD*kP{9kBȻCZIvQ-3bj1媯s7W|V&sH);0T-h\1Hd.T|~!%+u'Upfutڝ'g['VG㞘ayp?ArU #NyBi6]_mP otq cm.=9 6-ty;&+$ߟ1s0ѕ_:9 BU\Ͼ~2nZx{G̘!F/?>!췑>@X5$Pe?2B5"#:[%3x-1uڂh M*FӺUpgG:yTˁ.mqG?iŝ37bad.ܹOrlAp^EXf K{I9txY2ݠTH];<&)W&y*U19U\9\ `KGB#+kt (B D8RյJZ#'~:hz;teVؿaRȷd9` NUᏜ*Ҿ;wJ*++?^5K!3}{cKN :PÑ3Uz‚_#XT{*b)'p{30[y=O8PKWG1^nuvola/64x64/apps/bug.pngUT eA9&ZBGD K#`׷mVH[ ǿy_;bpݶ;4rgHdx6'`Էr)>t<P+AH RP?IXp^S)V<4Mb-?R9˵_ j|ֿHCȜptB@GYdZFfPdR#UƑkI:3By :PghGqlۺIJcKY1ba*ڽq@ =d iʞ=[QN/^/#VDVKoy MpDZ4S 9NęƬ괌"QzJJB|#qS jlPjcY*LU/0Kqor7«f3.m aѱC_?1U%R2K16jzʁoa{HV_bΛuO$Q.!ΉxbYYu%%;Xi,O5o?]Xʱᴶ_YlbiVgF@ III筭fc+JapDoKyguAxg#_W;@-&r ʩbeV^G^ WߜYڲ۰CK9/7U(\˼ 9UUX/xm8Ⱥ v1lρMww[V]m.HtZqi/cdĺ˸/xs::O"fÇ, ߸'Ɏ~ FonC*em۸N\.3/,:ھn]rYGzޢww;%4N-lNK4Ӏk}&Z"z*TDsO fJe? X@i$SSK6Wy`I(smwwr8peoD=tD^7~&sb7s_.A[T#bPh/VܐG|_ |y* ky } yk8료h{.N>ߧ̡E њL:_c8&~c#prkHicҵLGa-Wo-ڡbFM&Lo&xW?5$8H}LBKP'a.@A `|eOQE T(>`V_/u pYR B'xjo Ѻe?!RRZ+]=p`lǥ;]~+Jܳ1/#1%r^ if<\Ķ; f:R-1:~<t q:#i ޴5#oC@Qv=^C1'%Ai VB Ƀ)q@1*;:) P[,h6m58*z@2Ub"[$]ᗶD),I˨{VD`anP;HƙC jiLQ&,t/؈>ߚ Wsd0uTi<]VG3ZwcJ嫮M&wPaDlRK-U?T.*rS+<# !4e6>1ͮCMO 1|H٭p3!,r;Py܏^]=2C~ibbiGwMjrEebgdq廩S=Ţņ8sCoPS AdD8t{*&J=qOOŘ}ጽ7Xz3Bݖ@%@jݎR]g6;OT}qR-JC|x-kEz?=TԉڶE FW*jf8bjb#DB歐;Ȏ>="m*t{R- FM|E&-)"3tyt 62\ f 7#I%Os.@ÒH$Vg螑lY@t*1j ]ԤG> *8 kիOQPؘ k67g@'?czZ}99JUqr418]+9fҍez ,_?Ǩ򆂙6wm۶M'gJu9g>DP7a[c)g*3+T,7pg(\''Dω4:ÆMgџe[<~qlP鳠";!ȿiZK0|mr,Q2VuOm5gγ+/:'ii%}zsF;X5`IKGpș5|:V탶0ve֎'w4,rޠ6Vv`->GŸZH4or7:{/Y9}][]+\s@ÏzA_ :MZZ\wx+YEG1]OknӰ!>e#庺tv|XcHP|Y[vd⠣0:i.Y73]l'!#O7Rhg8SL78ҙZEyj2J'|^?\27E,1PUl7ȃ}h^ƫXSSjٲeǮG8*hh=x\RK&s;i`4_9=$!JK壖(+,b|7Y+uke7o>gE{.m~ g,m`2^1Ni;}]L$t$A8b>wQ0N)2)L[+RMj(rqH 9>- "&>߆_5*TW^W q(vIǽ珯AVL316HCᡏ1X7,`Y"s~>pZ~ JC[ = Q~uz3#t7O e.1ꠠqC~ 7NR0fLUE~0CmkA-OxmE>7+x =V{VTEfJ)XdCޭY rXpZFY 9206\4"1xoYz$+* >"X7u=:Gi+[6\ ilL=#a=Aլ0Q5fx'cI`h nv[YJn]xbx!|?BoF'ڍ4l7;.sbd| waK8j97y2(n /wcnyJv[BUhQ'{AEVIAZڕ\8S[Xc B@lzaSҗHkץ]+US$m\zU*3oo 8h% YwTv(~.,J`lACfyZU;dpK*ڙ:k›&(ĀVmUsZig#J8VOĤZg 9DGU !9D&4Cy: /v|ᵔӃ'^pvHMޏ m,%LX 냙 d7_bUe*8iģa*qFj8-mIҶBiUCѲ n뀸J@91yiB5]lT5dc ?UGX2sA4|ZNGO)Hϓdq?{Z(e@?䠴͂cɸv#FsgM< L ,udJI´4E6؃o-r0yo7YOIRŏ\ձ˞5Ξ[ .6|[/nO (ZL VɽuI'xTCٌђF: p\G3綡cuwi΅ i&#;2N1SӤypZT߂x=`{($4{7mrpG@A짃wk7<ԑP"t`l3Gu]BAs)"†ɜ+BiEh75Ͱon㱯\@+_ ߻7\PR'Bp5ukKr8T='ΦĂFZynArrN$gR P#w.+Dp0ؚ؞ ,KPK"WG1:n| \ nuvola/64x64/apps/cache.pngUT eAAPQux -W{! -Nx]4%I .NYy{O BUM:T˩{:-ES?II Zz=xe9D ijprCqidm`1R齗ݵƶ ׭^~g#&,̬3j,89A^ubCL].Sm9 vgGeo"OFUEMd&UÝ. ./CMC%61 6"#$Ù* ul\T\脵;2}.9/ǔfл|ad)Tыﶪxyd/[ғn p"-n gL}X5^\^:dC_$*#BתȖ}D|n>TrNdwJ=@8&!J&_  "s{wg,Zgn9x& //ԣ,度aam]?FX%  }-s 3U9b/I)pO,/$baW0zDn#߹׹ a11Rm2rdT\ng]X01w)aR),>뽿@FV@o{Å{ f:F{E@" :J)r}[û]eF.&a^ :t``ֻ_UJj0k.GTPENk!2KG̘XG[s<&{e=7bO(ٛю@bjAGOR$@p,qoh`ɛ*^x+O?>`nLh6wGVXROx+Ϸ&v7#qZ>H*nٙG:u㧊rY=Yӵl(U# w䵘ŻiDZICWq.mv((ABjճלO/E8Etɧ*׼OkE+$3wu?i@At?%+ g=(4A {Dc[q.[ oX#% Geڰ S"J9EpUUey2_s6E뱍6)9<Ë$mzȒ.,)´RJl+yaC4^0mb!OS@e(%jd1(KC=gO,a69^PJtla "[n_69a d0z'h.ۛ;vu" 4eÒhVrP]h{v32H++it>$$FcƣIijc<|YW %ঃNݻx #Hupq2cD,?0Yꍔ<;[=5x(Td-#lſ>mХو+~3c_mHHlVsLlsV|;ɸ֎OJH7K<)_RaƱ֭*;EwLi l];cҦUF?\n7[-9m&L̰cU%S @h7*28 0dXy:)V;ԩX6*VlAD^|6~ݚfZY}- 2K0Q+vDLFaQK&w*zpfN'LQbBƯ@oByZѷ/)11|oA }K(((WHDwq\L!SDJ=}W:vvnF">Vu;{D"MNhgO|3Zkg6{ڼha(p*r_FXl=a[PW)V`ʢ8؀T;CW>Dw.wnQgy.mfS-_A;o'_Y Uqƪ8瀥))Y;ӽ~v'?.ͯ6ȞFѩ2\,;XkJ&[:'n@eƚ$%SV+\5EG ~nmp0J81|b%B'ѮȚʹ{.Nw`80= :g,(0,ds_>(a8*)+m.TdY&mx(#u޾3z` `l/`ڮ P[Ht*;hȯo @3R# w_.O`擵NYCK\j|ݣPLv0-(9&} ;uRȢm񥮉]"&,unkd*,W*`ÇE.";Ooim#X?f'԰w `!Tn^e7&W @WBzּe tph(Bw3C1-3-`x"b_ AU *j4sT7i0Ao^@5.<3,mqDQ|;c6b+DHmKWChKlֲlhhR*Go^^L\x&BOQGQ{kKo ћRr4Ol#oM-eݾ \^h##˦Ч./XOYg쌅Y(Dff*z̻D+jl =v:uDk@>_:Κo*!jۧ˯LH;ۢ IGS;]Πn1viP={/?/EN%3h֝R2Vm ٫0rExclI;sq<ވ["),q~r:aV%s/_&B~,@eN|K׻ז`O3,5!/7A.*ٔn b}`Eu Ɗc>˝ &,RШ۞=Ӫu]^ǢfzЋ0i(k(d-"N+[nDܛWzږ G\|f(hmӅ)ѸegbLa q)Ce 3񗵨Lfb*2N~`h!vG@UT n`ŋ/2.3G1V0M kYNfejm`?Kiݥ!aP>C6caDGVlFku3L62ނՓHET@ng%,EH)~M}x/Z\dqMHVbTSR9{vüb#ckT6HO^Dӟ.5)!q%8219n{*hY.T\djlC* [{M7=k67utXG4 Q;S:W.Vٕױ n$ZuWњDktM֥s΂}m GwY_,Z'C "]Z8ԡ aCuQ,dCMnnwa-7vV9UINرS撞}^O,~&Jw*:.h~ELNKˠ1 wA"+t1Z,,4ykNw/U%ZZ4Z5~VTU{=NAuaT4EJ/\ Y 1C6k 9N|lg8r7P!Svf~MQg؝J8vKb$p% +_ Ղ畇^RTxGcF=%}=AXs]1 ,9xgRӳENKx]+bu1A|33^uR# L=@+"9Q{h"]: tq\oaߒ#{`otmϞ0 M9XI)t>^,}熽@: -,E͙!(sJ5\h>HnYLbxqɥxې1ό|NVWH?\qdF(?&Սq.[6+Hغ}tINE#?Jb^W~mйv ~A*Ej3o)1%]~uSnnz9}C}3rUEj;j= A|W]K,IfjbKw߹/~ q@ҁYN0_Fy\ԓLߖ|[ $b8v=Jr4K@QDD68ͯD9Xw~KqA 9lC0.j&࿴t'V^ɾ[_7OO(tS4 2H݀qc;}̆RCu"5vUp-f Dt \4q!c]|߶ͽbj[l 0 ,弽gg(u\@fJx 1"o'I[`'W#)1;59f=zދQ,LLKnqS)!mNhۙR2zw^2| d;lgD0wE2Aĉ7=C:xqDU m-*Ϡ8Z8XsNCĵVTr6KW<}*wU"E/iJo=}\}ַ/?ٌO  &*2 W{ F,u*%riAy0DZ/_ZURa/ ;2vb#ÓNV0~wIn.נ@FeH;Cb+ﰥOU"ꭋ1lppdBٹ 1RDQckzvøyIߤ;HyFZ/Nteʥgl˓/hag6 n;%_F;IϙJՋC%lQ^|\>d3>8!|~ ZN{b>to ٱBiyرWl *!5O-ʥ3]^c‘j]~?e=O( hDR)"|8Lߛ=ڥTTrUcϨўZg!/PO Yb+px3\n9J8qlc;,sQL]rlD=h- Cs16!j}2ҕ?pdssnT #8e(';[9Ug;'V-J^9jќ|V~8 b]I~~bNa9~V;6"ֶUP񠨔β\ Ԕ{ ۵]Y{$iHqom> s[6\Ut{ߪ̻&K>]~TR8BH,1B!t-_5LmuMr<̫D3ͻXtM2I-,T׶]ukfD;ct)G]=f'`fH~\7/vVhϯ/d\tkZOf3.̺Σ7Gb>U%eD1w]#S2#*YG4}`36:3[uDz;  6G'rJOwX޾DCo]x狇C*+7i tVʋ>kRF _&`tX0}\&'mR;{y5I߫o DK-!K N`jS0_Iv矺tݠĚv)t% ȹh8%dχIPǻ^F)&G]z[%IՁj>GJ* vlD?<-څrocv m9ݮ M/k(dNՍl+>oc6__Ffaq׎:H>^j;Z j͸932wzng%*wKO}W:=31k0*k[M锔rb5PsLӔtP큘նEçХ MܜcwnAٺf>d+nV`gz:y )EI6+]eÁ~sOI$OR~UENGD&&"h)cu[m㯋^Dʃﶄohy.В_MPXt5wms4fc - eFDC2gjC82Ɯ$QN J>4PfÁiFITwZ_;58)턌Z'P$jTr#o܂[NEm^$Z|Ŏeb\H~`e2]"m+L|AIOt͔ޑP`v `Fخ(43 6b/ILJ+#QO*zk8F/ c"Џ y ]rԑbE4mհWH^B=T,e&o\Bm]NX XC9mP8#asg:5ͩ\s/ˋq5]ċl[)e~~oBב~b`tQMn\}фDS}` 7Ҟv 8Җ X  [XPKWG1$r nuvola/64x64/apps/clanbomber.pngUT eA@PQux %W{8?ml:fc*cLEXHTFK9DlVK)(t`C31t qu_uu>]7}V{kOj C' wJ䀸԰H HOxA770MFL Ff剻{{P>>ο6k3uJ8]gfJּnhJR/-ϰFcK[a%w- C.s663W",(HA^8~:5eJpCü*Bbً TM4S*ElJSsEX#CGSgES%K(ȁPht MW@?. q9ZA ݛ:Xr=Nq5|d\Y.%)U[`b젼pUQȉ zS#M`Hb 2{9-ʸ7Hϋ g;҄y=.:ޚExWI>hJ>|(%X]l,tQ|r[Mh!ٔiOPe7mJə:Ȁ~h­]92&؜E:evu脰Dxc k:KDTfnu,]kӧa1`W Xתldrh{,fEČC ѥvY4X .*A   dk-W$H洜7rV$+S$3<|_-.ռ2T^3([wnL-tdy Iy]FF jauP Sz+A:'5aGnyT4rKhԭkr|d*Ŕ[լI¿9EzXpSv>+~o&r\m5 (ɢN\3Y,TD3^?|nYӮ}[G~[2B`l`bpB4%Z4Ymp?qQ%gٞ63wsP{3Ew=&iZNBpa%z^آS,gђ%A/=  +9 .66A}$ +-QaR#\1QtgN7LJSQK=)>SZ~^ WS_,X{~#~L]1 8,f +0] iŅz[@L6Š_96ct@l]26 Ii_ nNeUntΪ7:A ~A 4'F1 gѲXMq+94> -V#" ywXw("C}}}|?þ^>5O.#rY6ɧzFgXZR a.Z^Wo8)aiq1[+}DcQgmM9=|֋&8#e8 A/S2 E"<NHK,⓲DO&B Ԝt7ms_n?poHnڱYkog8ؿ^֖\T73j]Ks7}ܟ du$ҤDK=f u"=]sy/&kľ M}'YĊ_b'UV`w]p ^&BΐybAD[+1sA$Olq#|j8"_0"nF%{q)UGk=蕋Esr݇Bp_wXlMш5@2"Xؕ7)4$0p}rBnB Qk 4N4m{^G/[}?c)We݂5y N@"5'Xgz^~AӸz)))rxpm4?+J# Q0 xEOfffkEEŻ1ay]hd,ÆOkVhgnR%pxc$ Y+@! 2, tD ۳v#6+ Ӗ+b2⽈ =  sĞlRu&`["lEk{MOm"IFFF\Ų2|| < F5+?gd WZ-Dy{F,CtH`8_&]-X^oRy):O5cd;X̼MQ ܎\B_sIKt9:e[y6@9fFr_<Q;Xvha>fi=^ZezLOϮY:MVЬ&ȇ:շ xc6xWXT#lVǕڹR+2v#eЦ(4!dz߄jˆ 4[UKkKd.]ΥCk\;pB&|' p K@ *yו)%*lQ+e9o~ivh&^[ڹu?ﵓXCYJhGV9PKWG1u"nuvola/64x64/apps/clock.pngUT eA?PQux %X{ E)n̝HJ}ERu/Ec)\WB(s)f}x~|^<=]UWybw+JM ?|N{9}T0@ :Lq?4xoP`;пÙ/KT.]Ah/ 0')>ؙ+e`_(5|~4i~(orf(yyG] n9yivjprY>ȡPN)?9m{RG0B h+<aiYaZȯFd)4[4;cC> \};7 >/UѸ1O\Z$Wx00ˠ2advj{s幛8(Xh]49oaq>`ءfd9#[@ sx z / ˟r$}| 9響ts+yHC?%M>a/c+ \92cEm  5xG820usF @q^{pX龍yl uU^8Yd.hWk@ܶКIͮ0kAP~4*I*}87崟Ȅ"zv1m_e VDAM:Sg%ɍg}zkЭ0CFx||*S,>Z YV:Hۣ'f8gsWY=h2"P/0u>YF'>k| Z͸Z&޺",㛉g9ڪE;#i j 17`Mdޱ :i'cE7.AD/+brr׼{`֬Z֜ޚ^ޟo.K>᥼],yˉ(OzEZ<4f݆\+uS4=_@h>ߧ>݀\xWoϜ!j; łZr3oUԽs|I RXQڶ¬|.O8|O?AP WD#' ]˒`^uudv֛BTMkz#"GO:}#>8TYJ5z˛7J72^ -yȽK7_ZN]ޜ ϡ;j+X8T$۶r @h,L=)m٣JO;w4YZu\J{4@ٶ̾Yvӓ z8}҇ɂ7Ą#t\ PjjflW:05 ^[ǴP B}PћIȩՖ- ȡD4^W?eRFVNG3\GD+: `!5ehW3e& Q=pթП^Bo.?^8T&?kQm_;J/ !&1FL[w}CO[0_|Yo.^&">pѱz- 5}e& q t7%H!9L|J$ r_ =Z<)Nʶc[XG%4Gw# %~Sfxط i_PpN|U1UpFpߺk{ k~;9z(,BƫRE O@٥C® ?\Ro;z-poOЇʜK~ O,|4cp }޼ôC]+%@vV`ŤfT%D:呂PӦߜ5]m_ڵkz8 H3FX}| ^ꀶF`HSTjF??æ7_ 4 g',+4%7J.xAy;pA%05b|>oX#I[<( >?8i?.U)U<_|UgE͞ jq a.6M&xid]~Lx yuc0@<硂-^P#qzdHэ/U9 cI/ YrCE=Wֹ8 spl>-= W}[k} VMXN}tpTN@1ڞדq^IQ.qH}@-eʂ>@ ԥ0dJ;;!+&E> PLUMV|hQ~JNUY߾C>Xv#9?e4Z{fa_R>U ?/f,R$w'4bya2+Lm6+rWOtmZS4 MLLqڿߖ^19jH}/15Q]|xTvm?]/}xM3;G+U_5v(j^Hoh uxbZclvh|.9wPҝCvY[g~# ?ܧ0w\2 M0 0w.%{Q$de(H]Pܲ2==X{ T`x竫uHq=4RY?3ø&q9DOmjJL?,j*Z3ԎLvNV}$gb %PÖ~tfܧ %`xlϹOpn}3cvzpD[إr=WB B> R`d|baٟS ;Ac'khW>/U,\su=G rkD(2hPxwtڎ?vkb1m]hF` _MQY^ks["DAsx*٬ZP.4I?.'-7L[І?[nS"ŃF^+eHXPeMB k|4yVe)8VA{> LQ{EJC,HSJ%(Q>S1vdZilC6N]RR$gsxt.*>G8hAXJIkՌ&cWh a9`eAWF.Z%saV#җE?`+,&[%-7 1wI#vGC^v5٫[+J_CX}ϟuPS• "tkS l+~*ܲ;ԉwfҕ">_\E`K\4 ?ẻoM}G⧶nggY"P9[(ʢzI#_~Yz=vR7fkxbj$.,y4E 84x<xҁź{eb&[8G@6ɚѿDDBU~^tQپQ !^+BΓWidÎVO#-ni~M5ȗ/f)~~ d?ᅦ{30 aJԦ@JgGtQ审6'OZ+iӿY)ȈJyAY5 w3&^˄?QMj_B;ڡO160r W܊E Dٜbkac>q4T"QCf /KNF~YW/gf,?Š|A$y)ɨ')N3Fh!Õis#MPqj=u~#zFy*{-!۞\y|$@W&fK$^E9ECQ[nCgf΂df>=px:<ǸjYFw7O$el Y(YkNM{ZL~CZn+j=Svߩ9XӣE)-̌ Q ?DJSB|u7;`.ǻ³h9%_xui}\H6?C^)kvwӻyD#W#/l ;P>>}`H5B/7u:ذμi 86y K[XCTg*$`pTEɗ^*"( ]Rjofhv1yQӅ'[OTj~{/>w\M!/0RB;&ڄ\Bٟ0=XH \<&Z Q/paRht~dxOm[=[nvMTxM6ڗPg}7K*O{jb>ۊ6'j$^2([zT@=^.2֙S 2V^Kdh4k~ k6;`9WײmxAPĨu (gyr@?cs&N7ůbb"GIe.x_p%03ޒ Y1 w|zc!?^5yk.z5 H:1czfL~~K&!;@a;=YQ|=iuI/"B8.نp@|{,~lǿ<=ޭ@ "Crnx/ nƆ:g V Gپ˯Tw.6.t,s3ΤTh`Oт4@%M]hY/=סGH/b%%l.!঱Y.$~m?Dl%L5͚]VnRmNA[ƌ-($9Z#[ܭa)a3lB:zv0ZnepQDizٸӬݎ̻܃׃^z"&b7Ƃ4^WQˑoWXu |~`ԣzK )9ɋR\IIRxRzq?3Q(0**, 9n3nC˝:ZN%C= Ԍ!k->q:S+aV=?{ai^sNM ;sEbMtzaEqn<>˲>2@aOF> X>rȈYEUUdڍG&ۘGS~RdJ5u}X>Xa @׷?!*4>>W6Q=]5+;Zхd^Mw~T)>I:Uie)uײ\63//`,ˑˣ09H#[)HF;e Nnq" zAi!QcFaL"=vlsw~HO?PKkG1,[FMnuvola/64x64/apps/colors.pngUT (eA>PQux X 4f CLdFZ\163ЪMT[g1j,%MQFZT2JEʒ"Ɩ|={>y~=9۴5Why_<-G ; FNE M8梾k3@`RĞHR_Oz &ꘛl{wTT~uΖ--6m_6ֵniIoG.&`,-.˄Ljnë@ra"/b.Z`@3cD'U$>!I80Io /Jfm*bWN3 ʆEe[xNc7:LW ^,,Ar)Bb0L0u'%P3D{ ?Ȑ+6d<[6=r/>k[+{vME<@6>8d)iSZC89ne@ۭT: ,0;D1#?@!)TL8f/vY<"vN{71q#Bv=c=8xٲ{Zk2䚧m<5Z;rVJzY>tjL 7k.ܶ.Hu0^3ZiutM_ ,+~FYzz_[eLc,@Xn> #}TE& (A]c@Labk:0 `m0"N ~zB6hʴ|b pR(Q,&hfByG-kof($Ӈ8I[ -lIQD13XSo_Z7qָ}BO Xe#㏥+yZF"(YIb4.[@e`F$ pQTd*KHłD Occ-%U `(s$6G I]np㊄AvLɩK ά΄rz_q!S%k+å9qRa]bC:E*-;q ](qB2JXҪgX\D;57g(FQf a<9c; >gr!Ĺlnba<" ǻ!DH+q!)FH'^eZrL~MbUR' kyVNtdOPDH/Lۜ䮣a#/v'BI_[C&&hG' QeoLj0omoOT}0׼ݝa&ɂ[D(~S6rt(Оu˷4=9Iw ۶Fe_Xm3pYBu VI},p?DX|{P܈`Ƨ=KUTŢ>(r>XȦm|-;v[H̢ g"{`{Xy2T7$;:rfCױs_< @ /^;?B ?L#X&qZp>H錦F" t16z/{=yl/#_L-w. N$+Y:=ITXaE}3#&.ȓ4:.(}eg/0,]S\5@Mr漒fݛPG T"J5.kd\g@`u4wU6{w{?f޽i1atI4Fηsd{Ԯp*#<+'N-JL,Z]u[Y(ym[=XÂ&7,8 28k{R]UTگP1 r$6 ({l*n4++jr>H~ix_흴 hwI9pxS {Bsh1ZmeqXIB TVf<k\%^MOx։ bV]v~hM͹RGkDD^?HsVmF("y /AR٘XkYTZNo +1@@Mwpv1_ i($*l\D-^LG*J{ή1I,lc:p{y$¬h|=K_&]UunE޷`.Yq'#z@2D>n{Hcq:peMgSf6B{ZD *ӵ$"lkXUT}\q}qDʕ*xD-zB/3(GDE {(1VZI_9cWOzS"n}*:vu=7 !J^&+[KFS>lNYB}kJ3݉+sD ɆX&ۑ"tEGXl!nz:i E߅Ӣp_ kN^$)T(:ۆ-D-Y#]I?N`DVvfjL:ù^6Fp,Oy%څGJ2VA#];E0{fQ*1M[R?r;ǀ%rV(V н%PcL6 AV2У&&fL NomYCYѺKnM?>0%)PMd-ߎ@%_+@4KPqꝺg0@a3@X?9ne*ihm2PP * " &,Q]kDvNN}?xvzFW*_ԉ$2t&HTd35I9f%L.'KTT{t ?^)**<U<2C}5;|6άţpGc튛VUJSp6$g\qx_֥y6Uɑ"TN&p,vbLSpSOJc>f]b.i؏tu5=鶁o@ytXmCXq!:\cS5eTTp) "^Ȼn˓tZ!B4?,]D4XgÕe_gx%N$]U{x,`\{A:g|* :&ȫPPpXeb]"#70S-_]Nm0~.׾]ߍ! C\`o<@U{ Yv#fE v*ę2Jv\݅Zo"՚KS.#O/{啥J/p,[+L֮fV-$R6Zp\f {%SƁa+/> ȸg[3h0@G1cj, = u>)^ 6/ wlӫo݅iJے,jp> \Hm"o .=9kD^_DjՕW_EuH&qA}!xSmyUG8NEDu% xwUPgAe=ҙ\]fȔJ݃5TB쫬.qC_%"Z]GZJ_qCG q@#13H1A0%٨N\2rYG}sg% !b/|Pyieaخo;jFm7K+Fb{;Ѩ9>QǷX4kO 6m1?޼1 Iq@;-j$K s*nH>ss/{T__f ߯>i3@< >v5`gvqxA7=J׀ R9/ژ*w|ZHC_G%P|kJ4|\@hu%b!]|1 wĖkB֗!:778hno\``QKn[f|@؀e}٢)͸+3U@qG_ՙ~şd򬂸c3 {%=;d<ФxnOOPo;wY%2u@ WNJгaȞ9 }F f5zǷoR?-vwLkn!0 43{"a`Mⓝ EϦN1k9)&: AޟQvČWy&!<#u2`^/:L Ӯ Z Q/ĕ<"(L"s8gco ϣ*{NF-?8xЯ5gGz=~Y X[bKVC7E XY 䈲H($ QT*(JF=+ᱧd`c45bvkz: ֨"G(kkwld@`-#\.2[hz8 ĩ9?I vJㄘB0UqUY9-aXP;ZI7?Mݪs+t)מ.!;W&|=ZNNGfZje)O )ZC')Xhs$!HӦ!.2'(x ]L[2U.1*Zo>=|WsY#"e/EkƧ GIّ#kdXװF{i$ʽ)ɑA6ILM$ |'F!aՊ/8D 6b]ZR;9.e oXIZ]bJRse6%*5,W02)߄]bܛ^ED+'Ώ_Vԍ":b[^YEF;h5%Kf>Jrlz_pB1! .JE1 X:K U~U 2r"E&{ 0Iy|<ݕY.Pwa*ddG=@EVHVb*ҟ0UK2|v:@h*ܡGVj?XL/R'}.8F I\&Suu{-Ӄ²]d]IsӇBr [Aa&u?zn-BlȒle(_77^AKȤ?\Ȣ)x ]~{ > $[6Q+G{4R..Aԝ\ 9 K=o̰G(g3Z&: Wx1j)D0"q_.hhfa̙t7cnZgF"HBpW QZԆS66uT:s\Nѕ=0_`E0YqUnLFGp'meyKx.@U!\+WIKlgd]HՁϗn.wT*--+s\l)hZ"|3~<ta⮕ܫ8`LqvU4 -9?@!!k#OhVQGa% 5kH K=c;7QRS.T(RlVזݛSPKkG1&$nuvola/64x64/apps/cookie.pngUT (eA=PQux -x{<3~V:[.3R̸w:$1Hu"8!&CEGE!5)b0kZ{i)kM~m9pǩkFGV2kw|NѱQ!=8"0D@XWH@S!vL?)P T+H(@f{7Z7 IXC6 V4@)YEF[9T+;NXKm2T65>Sȧb1fv+n&stGzg(E'Ƞ*TdO**g^k^>ΏD.U_-zAiz0l;SQ;Y#2D6hHO_K@*$`)$L;fk ѷugB!a"ιkUw5áq2"}6p=^AY@l6ل/i o^ ?yNgE"瘽*r=%@N2xn}?wp$#^,)Z,=[嚀*-ZZIz9&fT7s :5iWCMBl!"yl}x#ZT ۞Zcj@d/K<$.t8.ppd$~;խguUҌfãDHliZԝ|M2;  fVtN~B'oP OO#IV&G/SXC3!8'ML ӷ]aBQ_&iǏ#kĊ(cLWurJ"UoMxH4beF '7c< dJv(KVmUnP𔉶1ȑ+8S|W uAuq"dF dcf`8|#G^%DܻH ]E2ˮ'qD'$%I ?;;ȯNЃ,z׻g 7UG IgMD1Tr: f01rTO0ݘ e\CݼBxWع`6)kӗ-ԎKUiX\ c1amAG:KEY^ǎ$QQb-U%tǖ;Oo}/^}&^G3IC7à=a4h1du *x_!hliSG{gsh{Ӗ $ m^P>5= |%>޲>^=} A0d t1 鼪EdN̤"UWՀtWz|O n-/"-^6eRFweVɌ_i?ckCJf JWIɏ+ÆΦ0Ȥqz P0𙜰:s߱5FjS<?WURBu!7A2v abğ0Sf#dr 9Mݟ?,kw\y_&2O lcMz 74P$CHm9M7>,fԆQkwi[imM|,εHv@0//Nm)HN3eZ_0;k~k8{J\1=lT SI(`~*A RqG\sfۜ*JJhr5(^)Nhnerfr?*C9`ƺxRuaӌz9D $,-"m?CiogpP 8ܙ_mt`mE+#G'ЩE]d~Z06"[>E*ܷBXlI8Im Ɣ1,&ciF&\ uVxqzE ^lG Dy5Sh,^Ikaj@lscþLR`z%%v56劺'sjɆCxdGQ$+:y|~ (+QڢB,`2)*dRh"AXmΌЇH?`C#UZ^%(\BKG9'$ȠZSn:hHtʶMŨ} 2_@?亞xp\3~B(L޺b! x#/(كIbzRs.MiI.F7ÊץƆe17:+0׸ zxrOz+ųU{8^I_8kݻ0< lsܙxİhm̒?(r-)|2crD^6oM%/8saAp.TuUJ]vx&]PVr5^RE?o`lKT-JKYF}`3&^q<"Ua/ߥaHk5ݤ}jarK㍴8NGk*EwL?=zkJV:8Ļ.]P Yթ.{\WHAcc^DkiH0A{ mYƲ=_YKT!2),}2  ʻ,Kf[6wnpFS&m_0ğ=@J3 &J_ ?ʦ70}qv 0?v-+@( *UEwss a~s*L.g|eq3ڱMsaz;>dp7)'NPHjΞ:= :H(\7Km?* $㣍A0{6m%♴%y!+?liIkL)p 6ԺZIBlǞhluNowDRb]:H]H,X m\Bii@MTSodY@<#â@W>.[G1SnhH[fp zrxhS#;2x'ɒLhYU|C0s~iL_jCZG].aev xz_?D"~7Om;N~QI$VHyvFq iKʫdD#*աg=:34 ^+?Q\Iv}ڰw^][8 >i2gAM8SDx087 ?cxpIZYN,u26 $Ӻ8;%7o'}<`(tGtHF,&H!oQlKjBٳ? g~O2nRPyZZV |!6 R8}Ubpzb`RaGTl4]Nu pV>ȭC+,8k$vY&dQ+Xf[XO9c8(Ѽlk}*<S9d7DVt*o0'٭ YM:<\x_p?e)olUMl̾! ЀnԎF9j' :/x6cZl}db,31'-&PooKKPP6+- T896' u44ҙzxateRālaj~r^O!<]ZL\{V_'Kd}~І&[}ii BPrsСUa㓺\;k38%]hBK;_}M +S~y$zX#tӸOq}*kkNw燎̤PKVG1$rnuvola/64x64/apps/core.pngUT eA?PQux %W{8?ml:fc*cLEXHTFK9DlVK)(t`C31t qu_uu>]7}V{kOj C' wJ䀸԰H HOxA770MFL Ff剻{{P>>ο6k3uJ8]gfJּnhJR/-ϰFcK[a%w- C.s663W",(HA^8~:5eJpCü*Bbً TM4S*ElJSsEX#CGSgES%K(ȁPht MW@?. q9ZA ݛ:Xr=Nq5|d\Y.%)U[`b젼pUQȉ zS#M`Hb 2{9-ʸ7Hϋ g;҄y=.:ޚExWI>hJ>|(%X]l,tQ|r[Mh!ٔiOPe7mJə:Ȁ~h­]92&؜E:evu脰Dxc k:KDTfnu,]kӧa1`W Xתldrh{,fEČC ѥvY4X .*A   dk-W$H洜7rV$+S$3<|_-.ռ2T^3([wnL-tdy Iy]FF jauP Sz+A:'5aGnyT4rKhԭkr|d*Ŕ[լI¿9EzXpSv>+~o&r\m5 (ɢN\3Y,TD3^?|nYӮ}[G~[2B`l`bpB4%Z4Ymp?qQ%gٞ63wsP{3Ew=&iZNBpa%z^آS,gђ%A/=  +9 .66A}$ +-QaR#\1QtgN7LJSQK=)>SZ~^ WS_,X{~#~L]1 8,f +0] iŅz[@L6Š_96ct@l]26 Ii_ nNeUntΪ7:A ~A 4'F1 gѲXMq+94> -V#" ywXw("C}}}|?þ^>5O.#rY6ɧzFgXZR a.Z^Wo8)aiq1[+}DcQgmM9=|֋&8#e8 A/S2 E"<NHK,⓲DO&B Ԝt7ms_n?poHnڱYkog8ؿ^֖\T73j]Ks7}ܟ du$ҤDK=f u"=]sy/&kľ M}'YĊ_b'UV`w]p ^&BΐybAD[+1sA$Olq#|j8"_0"nF%{q)UGk=蕋Esr݇Bp_wXlMш5@2"Xؕ7)4$0p}rBnB Qk 4N4m{^G/[}?c)We݂5y N@"5'Xgz^~AӸz)))rxpm4?+J# Q0 xEOfffkEEŻ1ay]hd,ÆOkVhgnR%pxc$ Y+@! 2, tD ۳v#6+ Ӗ+b2⽈ =  sĞlRu&`["lEk{MOm"IFFF\Ų2|| < F5+?gd WZ-Dy{F,CtH`8_&]-X^oRy):O5cd;X̼MQ ܎\B_sIKt9:e[y6@9fFr_<Q;Xvha>fi=^ZezLOϮY:MVЬ&ȇ:շ xc6xWXT#lVǕڹR+2v#eЦ(4!dz߄jˆ 4[UKkKd.]ΥCk\;pB&|' p K@ *yו)%*lQ+e9o~ivh&^[ڹu?ﵓXCYJhGV9PKkG1.nuvola/64x64/apps/date.pngUT (eABPQux Y 8T>Ffl3V6VF*iR$u#I Wʔ2sJi1t/ .iAHuc9{s|;vnP7P@g@Hyb׊㟔:7/lsQW Nޝ|:,) L" L=" l}xI0U )MPE׎4J^X>|7z#r 97PV|s9Fx¸H%\fV$=Ȉ3#wJ^z,lJI]$4d,<$/ҡJ< ].[Zڗ _?P~K?+^wSaoWkZFТQcqj '%\Y\z3 P /]+ťh魊-G^I;2@El8u݋111 8UPtrs+$ O]md*h\|9!6lmǿalj %~n6ɱQˏ9,;B=sZ[qɳ6Ңa"o 44ErBC÷Ct5eL*/dk6kؗqǏO8nPo^LZpǧ pf`h'x:ug{lՙ\8ӫ^I=f.w%~-}muaqC2yѡbֵ2T؀{۶S@lI+˶G2`♡>p r{0G_\0ʈ#1jXFFtt3sϳe EC%իW_VIBteYˉ `_e (I.׮I>wL T! 2:}6mttͻkSN,.NnmJ߫|x[BY"4E98hsΟ_Od=3iqCD.ۙ8ٿ7_E>! VEźtZ߆\12!}Ƃ;Exx^uf5T\;%$ʲ}?|ILd^Қ_3րW0ؿ~zɟ ]~P%?@Y p=2y N uFTw. hzNdx eeeƋ.!UT|7l|et8J@qHz_|6[`'3?^:5ѷ FEk\8Nd8?MAv`ޱ[ſToS .Q2[J*F4vm^E`LLkG6mDs`QNmqJ `2GGG5*ө9qy"@] cYSY`Ց ВbCWqd"FE&hzycC<X$Icv9ǖ bE#Zڗt ՙLap| 7mӆ}7ySڈ 4s DӨ@[^wt#\5-Z]5 8 };Tr x+b lT~낔-ippPUq$__ <|5<"Rx/jUSz 'CiNp82Y N).-AXq3htqGL^"x w"g&b29L#?f@ Xql(il,syEKA}GބuI43}¥5msW0wfnOS}fSv4et ;ȬQTV%ի' (M +TN\y)w^_:; %&( v;eI3QB4Pp756E|]|3z?>68KMSp~5BBk"1%1s=m1=ڹ_^5#i|$M oƣtz Гsd,UrY[:}|K?.ysiwzѮ8,LEy}b"tr@h9C I}Q %ȯ!z= wOY/n jKV߅SWW.оlBZvIT$-Ɵ|| $w$PB m-|,-" f_+"y{P!Zխ )w[to<C۸ӓ,@ʒgj #ua]OEM!PCT(SЪ׹yզ{f9TWb1ή;dLX*L">L/AT]mM)7F+(=1Ӿ>E=WRAZdȅPA*5gtEj۶ ؿHGds=b.΍7ckOf@*r_c}V'$WL;-}&szΔb(9TpUuv\` O2y ncY^IH݈bc-Cǧ&JZiav?'|640Uvr°($9ݝ. v5K543M6֟Ѵ֕p>@}^ `4+x8U}ƍ?+:\.NT 5?&1QLU-\ ی&(\0Dy!]BYU4vcS;b}{?x7BUahQ;UNuś 흆WɓuԆzw,]"evtw(oLMf:+I.> f> nwMDl;4lDt-[.ROBȬ\ߖx-IFI{%;p#[k!55H!zv%;Іlv'7M:ypŻdn_<؎9uX\Bux,[,JT'7Q hQ h1cQZz}w(*iTR,3gF*C3X)*do1AX(6uȅ/:l,R&pCStt:No8r*<Pcw AT<oWjj4↍q{1t=0A!6<Ԋ J.ܗ \~mE+ͭ;F ѵuym߼]#i5#ԄjA/וGQeT8cqvb?簹6t $p`JRb-LdU<ϫ G"u͡)nE8V.D8v[u\(K@TfI:Ɗi X걧k\q+̯ bUp_"O-ܿ;̱u 1JfbOTڒ.K/Lϑ ġ,T{&gth#5#1iqC ʩfmC]jrݲz\6" Hbm7o΃!YR7ZḣTZVK䉎؟=\h'bwbTOLijZ`m|-N^jn znnP+\ d;B[-{ _^#(;јP!f9sІu$gsMgpRsf|ziD MUh|0ne K:TֽNS$A"d~$'ro씥 SB2C+K7Ԙ`&EHXRY\ސsfKʰOΘb3!ѕ5u)Yo+`!lc&TF;X*gESK*cyӟH I[sHTX!gSqE8ͮJfY` ÕeE{j %6kO1q\}uy*ŴH! 9I(ye [*;f浐i Ƕ:@Xz_nk WZ0;Ҹ0d/m_er!| yILעUyz;ݬpm-9&zw:|QbeS6* VX)r)>`:7Tu@!;51 ug+'ϰgpM +G 8i1{g!vK$Uno3T X^iO<{XRSϕ/ʐko0؅.}= WD>kOl+aWɗQfm23JR Ӑ,V2įP0)Bw% ]WX o\jq߾g&aOJFOGTLyD&`@. ߨ Q[FV;r 37"O%pmLge6Pvs@v+ȉqRNZԇbXV{&tLG9cO*^ #{>!Cܨg%Ao#'l /bL6!vnnZ;33e]x)ӟ?& xM*4),dBf] :#c5S;?0_,\Ħټ$ 9cDD+B"ҩ(U #;TjLf#h'{xfT8Oi窂C2 N-."G)C*CtZ-Wl'Yy-IugAJRqOઔhREir_oOx+ae W0;|bl 2\eNY KVssG& O҅i>j>{{q^yw4.Rߨc555:s4(j`63/尽|cN:?@Ԑ){9Ļg K+]8k\nʹx!UvUcw$O{aEm[7Q 74*] @rC~T5N]xȻw i2hVh}._wny =PKkG1 snuvola/64x64/apps/designer.pngUT ~(eA>PQux %X 8Tk?3 f,%PfC"ƒiMeW1Z3aTזmt c4h!EƠ(0f;s9rz?d#ש] rnNyqᗒ/nq#N9\n_ΉR,0ut`^p (5CU $-?8Dh8~¿:qga5Ώ|1$n<\JuҜm wz$k=P׵_޻갱/h+vO{鑏iDNOyX$k{!` V0cʞ"^@LۊXjO.RNUp(&E^:AHV*nR+n!1VcqDaA0IL Xj,B 9⌿!JZǫIRR7,堩@HB\, u1on4 xqӵh0㐴k^֕Ym UX8~xd \_:cfgPP#5k+#OSDE`}ʊ NHeGW OQ &Ђ.M%BŦƄv-/%[_#lfTXְ:SLS; f~cVqnx*=rQ\DIW)K !;R8qҳW|bA<~$GnAAUK&1$9~΁UtrXsv~)dTyJ|eGqEF*nxPN ~`@W]cJsǬXs̬vBB8`}ե˩J6'FEX@Co OX7GF2߿ܫ*@yyǐo7(&Y9li+Ӈkő@,حF܂&GjᾷqmC?o79b s 6^Ȩo aޔST:;>:3ʭ ~?qAb?D SٹOu̬,dGG&5d寮cY?^YaAqVH  Hfg歿Q¦p?OE3%CсGfyiP &ک)'rH=BUߒ@@}m$2 \ ~}K׏䖈Pxr& p|/2AsEhsYc$䈕Go15OޯP"\/7Y;sN߁KGϽ~]߳͛ Ic+[[Gءoz >ߟkj, Ęynq4 B5g##6Y%eǙBZ.F+c3c߻W v4yT8qẋ4TLUsJٝf9/_!d?X]]͗{|>: pDkF(Q8]71ʺc&6ܹa|QK`|y^=ٺ}&8$-׷./]I }0ј{B<ҷ.P ~[L:U\ox݀'_֨"hS=dsKb0|{U(-p[7|Q$h?؀czQurM[;of ?C<ȓ7fU ML_(t7 V8'{0S{'|~bWP"8 HY 6i40)(аkWw!fA_8TLF7vNZ`@sڊ8ut``.@s$ FC7,%u(s f&'U2ac/UcQ-Oe@7eV3* RH$8I|ßk2U0GN:,٘)Z%o ,.]`~&7Pm@z՜#ݔ[X\$RȳKNT5*?irà/3i'h6g8?>AU]yK>;[:$'O'TI۩̌%‰4 b aɭ4>7޺oN#.Lں1_ad2NL9atDkNg3ҧ>7fŢ6?'_RN_o/p Lu^lʌd)J:b >V0VUchQ>!ڢ<>zU3`BX;XW{|j#wx  m9;( 0du ~jFf*/IP'8 I8(dcn.MVM~)pIql}V9Gޞw@$D2O9UcsfgWYI~jEggbw="Q-x__YR%{`̬s< .VVt]sjZn$%4 t}MM[zcfFX3?.B==0~NU vJ%,uC)I_9x <8;HRE+r90_w d@Us)GÏn>4Ғdm*h$Jx)Tlmmus!0wZt1p`Po>ܜޞzXMX:䣲8/U7ժ55?VxH]7j9ÿֲx^ ]pBsYg>hlX)Y: K{es볘oI,wwtUp-gIwҤ(`=1 Bб7Hd? o g*rK QJ*TtpUTF$a9IP2k?6MPD5}Ffnc9D&:<)Il;.4Qiix@ɉʡ61T&6?!o{I)bA mY_M|rU5[A.*#tC<~*79[HC]_7$FS)vܶVP=[}2:1a='*R p,ROO۞/;V$|Q X^̌6 ir`)rR&'ɯDY'm %ٖx*+Y`c,>jCZv}6Kգ3IP[~Z7;W&1a-EF0$@Y~AQQ!pHwܓ:]+#r*~]V{̲#{ǖ6KX{QYO&#(in44TkR ǫTSk| O|`>/<{" s|aS{'f/VPQ!9]~i|n- Úo:OsY_'?c0bX\Q^jT͹\Q9wuj'W,#'FŶR,>L)kahwh5Ɂ_,iWf :{H9T ;_szcXEgr,6˝biӵ]_O:lqڼ,秋-zP eZ֨=.E,Z+"oF#b[jq)KpҥR:IlP(ľ.9EM2\pbOyp)iUzZNpæMeo k|=[A[cBH@sCȫj# ł#1 {9` jS OHl81:yMaJATuyquh-4Y='G*O=j@ .&ɜ˓ Y_bßbi D":(zJ[0`:c#HXG<ƦuD(?ܧTeAk|A RIDk*&\|#g-xд6mm< mystv응Ҍ(Us{:pҁ5{Cd)VpV@91ʼp1IKdHlUYk5DNᑋ1# #wg W{^ l~iȜN<6:mYN2\?a89Wn # ZYc/i]&\ezzpϋ'H3e?-ZtR3>#GZ^0v7(dkKzG׍  d LC:|DYσճ q,y(2ji$o7f$$(Q B򩳣*ۇyPU3n+ԧI]]] '}T[/Xћ.pilN2A ˬ;;+7 ެy;yLzʾnoǹ,ZZ<Ǩ.c*WY.TQHe.y|qU#N堯l4Y= X$-8F%F@~[T)SEB?\/d1\_Z8 Hs:Fp}k׮ yOo![4 Xq85eT?ASd'6Pn[(0PI-!sQzQIj*8xr ϶vTi Iu^%#.΋RK$<}Q )vfVh]#ɾ"%IJL&oX˸"?b`SE?v*[&$*d1hp;};TG@jpv;GBdPn_GKLK3ش^b+bw]@|ᠠ@lRzc v1 4êzjɯ߯8pޢ?˦ kOZ@x[ln@PViBD!-nbZl ^ћ /Ȼv= \m//LϟfRȱ4#yA1!^͟ osuۊcI`(y-CV7JO>kڤDn܇ISiTCvs^7R@0ә|rld2l٦]OeH]ԖWŌRt-:`ܠſN_&zHA{&6#'K-ӡlЀ61}({] 8cPqjSIpL=1104bN?8꽅3VU~ؗX}'\c_<{NMmeݛ}"'~MO]v W5D MN^TԜ`C\M ,ďMM$갾BS]wKxOdjݸPۢ?Mɿ8%ZLAz3ӫ[V#O:!l喋;} A<~5[`IEv;Rxhk&dY+abb5ZpBwuCtiE(* y6PZ4.rv?57gẃ|޹,/dVA~bgpr>(l!R BQKIՊAAB#0_H/{bEj-VSd3>Șym/qcL 8Kr ueqOPQ,eS4=wyRuFu&1;N̆%7ڐu4ʫ k_+NaNcˮ>!oo{Na%͘-: O!m!ߵծfp @^jbnm_Ѓ" fy`j3C\Fuƚ`BGyEƁfL U3}}ϡ3BR{/&-_R.Ǐرם. $Y<"n'fG/Z` 73t)eM:fs:{Ϙ2 zF}_;@dZÿ*Y眴cӿI=Zwzλะm܄I؆,q$vnTPh.f]e-)/ryuLcy H3XQZ:kIݱaDxA E/I.ن~=eΣ;Omgşf%|(.XBĒ+6I6YKGj5c ҸgXws(@`-*7~z_E^΂u^ъSD͖zhy}ל/qKzzH`Ks.ػ$~2Iu}agoNQٟ`y30{67[pT+SfvJjz_s;: yAY `~mwj6iEYilI62х 3p~ufMt"SJ,AlONːз3zsJ¢ [9wVޑcgW>g4B$Olmx(^lY* l߻TٹPi@S^گсj(UךvΪf&ַ24q*QT(?5aJe<MK}|Փ0pjk5 ;t )YZє05Ƈ,&HÆѺ-oNlER'k\IymZY.[p6(8sYCY|F|q3"#^'1ƣ-^(E{NcD>MU*x^`Ssi\MͲKt,Չ:0) Rq(9E(ԢWo)WswoCk|rp-6Ow`cq|{[-^~hn/ubc"-n8Br[ƵL=P սPf!A΢MGw]>)碄|d+]{n 0bV'˛Kn,} >R>4I@o bͱeNgnpPKkG1@Mnuvola/64x64/apps/display.pngUT v(eAAPQux WTSY}/@B@@L2F JQQPB"E旦8 ABQi*XłJu:ܻf1sWUU@G1xULto:q@fU|t蓧zQ$ϣa|"?r O7_қpQ;ڵkgΝ=k@ <Cg8Rs"ňwN<)JdL&3qqq l~E7 vTGm`0\3K9.\)9YYScM'OJJդV~5vI+.Y5 em$ Er)|G{>1))㙙m2ʎRvJO GqvD===ӬQ-ūKIS{l+(4pņZ[a#_H\s,^LZJؘHܵ:9gʉ˜i1={f2CmP4"JӍ*o"Ih9pG,ɜ . o؄mrёaxOŏOPW*J~9^U.]k?J2&9O܃ݾIfҖ35(!qg싡 `-S/ "\4oq<-v{gMI>:y H@V>ēCB5C&~st sf ;|˼Ϝ=4T^/^UԗZeFwCJpŊ΂,>pS# 9z [\cO!mgj}QvrSGBY?G'[Vݲn,!(E*ݾ˘쳛Q yn̙pJ,w]}Up|QOi%hetEցYE9h2m\b0RxjZc%6-Y$$t΍_d"<ޒnF=QIsDOWOPtWO9Pt(Fo$bjC<$ a͚q(c&8'(>(k:6b[p/"ݽzn!H#Ik6\z8k+;.{t]7U0cEqvT&6m-. $}`Lb͇U 'Y@Ei*=PPOj#5%CV ó#f \$4" [Vsdn%L:9T2+R׆/gF婙1ތsk?vvnVFôx s_ BL> 3rkbFgC7g!;_5"3T2|^"ouSoWxؑzGGT >׌B9wi2)_Cx_P68FMuFo oz®=R} Tnf+,nhҵy^E+?WoK,%f #^W_Clh60@PfZ-Q CȢE'1{f@D;eIKdh*|P;W߄(0|`BTs:27;ɉ X /}?(\ߖGDϟ:CC~@QeZYa>+"1 fgg*|,ҭ4 _ui} zhܐ'sMiEeݤ3^_ Dh417kg+u0j[x.UAp }4#1yHYKm*uW* ǃ4x {#y&q%˨1^Wgfi&:xZ>{9fx_ ruzΟ>\bॲ+3+rGHw7~eWqEsC$œ. r7[ _QWG8Dk;}݄22iRw}r[-Ep;3c{'tmsWVC)oMJB:(_5vbIITIAA |$a 3[faG,r \YT-FU&fff-{@|`fypƟc8GGˆc)rp:Y7|h@=/@1W=AhŚUsX |ya `1e-)0tq8ָuHs"r .i 3,6Y5d$럙7 p+5GV5fpe6TěsрO4"a.B'A 2F}ev2ۯ:p;uouOS`qgF0wṋ)H)aAԧʉVa5A^_O<$N>*~MS}.۽䞾I Q"4uz+ɂ(4z6(*Í'4KY(aAG`- )S:83`Y!w0sHpx g 0eʏ;B9F+^JR[E7EJ< KRc Vte08ۻX0_ .~$fRQz٦Z6cߢˍv"7jkk;i⒒UUru9av=E_T̓>Jqy0l1j=ytE(' 'ӃDgGJښۓ*B =¢#M(۷h{&w3h|yyWlpܬɍJU U5λ]3zEp@gZ(=vaPKkG1&5&nuvola/64x64/apps/download_manager.pngUT (eA?PQux -WT~IHaB $auY b!t"*I@4׺+J -+JRsfޙ3{}'7512 Џ왛?o} 8r-[cPN>sFNT!Q!Gc[" lJ|AP n1>7(0|x{{??|h5 N$ArsبO慩HK:CwW(kI$#q"rx*H"aԊRr2<4Z:]6jY_Y0CpFH{%IgMb ƃ(T wB78 A(nit:Q)&wxtaH1W\yXO( J"Qv^OB̽X8%N`8Y>g/ymx~ @}(6??Lwա$vN%SmWAF ''pd1ivTtڅ&PIZfaݻti44L:)~}?1NQ X]~eT17L&gAD3Cdg"qDJ PAn1g؍nZWB(=ĭ4م17ɂ &@ 4& GjOWӊ2HϒL,cm ]) v]KFg%FYLQ7A4@9F؁^SpdӤ'3,h2S3m9^#%3Z~T9nNB[m"OV]uZ( UDoMʃEB:aBa"qS ;cqD^a0:\L3 Ju-جf]ܞv^x}(6MN( c[^4$l/xsZK+5? G끁"d"qIBw6`Ҝ.5%R[>eP AW֎i ib {b)0:^;/2(Q-Vغ }mO? `wa\e&Dv7F+}i|<:@C-Y.eݓ4cBg;{#W8O%/aP} ;ض>C:.=(uK)-KB(%۫܁HqF:a9|+d|Nxby£K^%Um&=&C ˰t!p :\Оtxӣ4cAoW4u]JI]ыTfufTlCCPS-x=Ƕ﷽*S-'&/ Q::Oޑ%duGtvDԖVjɈ|@e%ܘI3;мVc 2%|nDqCW2%.ebE^,>'4HU:UṽHwy!<&%JネQij^ Sg9aD3`G܈:Az^1EbMnv ǞLIRJL ~^NXھ[7ёґQך5|_LD]\xyR8e}d4Iu*[+˓&Xsn| VC>;MTfSLz6>P"J롕oሤ>dAVA]>gm0iG !kA\zc ?Ӄ ;^FYiK;Y/4eKofհ.:p4} @ [J%eN-+/yS6[:p њ|dq ФrX JSÏWſgNx%Xd`Ffܟ@b;s:{*ih7{|QGafB{o?ϋ^el3AyvPMv xᑲ`*c^H.TL,Ekamfz{lt52-AjENk, "aib so@aֿ;eM+""lqqe9r\ךkŎ NZ ]9y%+rrT{ciY_0j:`.zs5gGW/^E7 âg|)}PFKza8ﰪk=Xa<ܿsjcN(3{mT֡A$U,9Ӓ/`!oUJm/xO͜ ɞ$% %A`𐏻ɀW1 swK[{$2;wQiDqa56H.؜k|n Fyl:RTv Sp">=L7?85]KxqxcksO{{UZ[J0K l/}EvlcƳ51?XmA'Y iORzYJ8oJj y^f*[YAO\|tK"O?1"4'n!#X5a$~ZأWd$lJz*y\wqWٰy NG7ݣ"(C4],ŕ;l4ZM>9nT7m ^@QjR{%-c`]‘; VCFT,dעފ91ּD$KbqzەWshxǍQ+3EE֜u,gMՇU!!Kelk 6YGLoo\o+9G#i>j48lRv=Z,3qm`,E{U4瞖}o*.dW?N'}m],re+O< /4F|=8 [pQ!]pM#e&P_rkY>=C>&glyǣ/q'8;Zt6z p/I<*9eNJm-2͵ 5̯5}q[n݇1(gJq/h3ՍzqRR1ĴkLyn2a >rwre?nޯ77TԾ*d *M/nN9VA`RQ)=֟|Vpɼ}Hx+݅iG͜sǒPNCvfbFWb+Uaƍf?l *2zG|ݟo#w]YGP/Bc̸,:vwW_#0aѷDU$/xj=Zb_'uY3|h!r~/lzqݿsmO߽n(A'oQC;7duаڏKh)PRLw&mal{o{TflD`˯NG K[QQ x检ic~wo|ް|57PKToG1}O l#nuvola/64x64/apps/edu_languages.pngUT p/eA>PQux %Y{}]TFFo ئ[)=hu^2u3: tVGEٞt$=P"@MHK۰?69q[bl񃝉`@ a2? ZZ pZ9@,400IUmHjBj-H7VcUu >,!F.%FgSIaH_0es ܹm_̿' i ֝3&k>glDF쌚 $H~`{k}(rSC涰\u.j69vwص y[)o75!FZ[ nR{bb aumHIj|pR/}/n>e^{ݶM5Vw%9 4IkY;Ivd/{&Kvҁ+~Gat yEaVb#:e.^ 9:̿wQ{1瞝ޘ @P҈WG!^LSã-X*=KMЍ]!#HDWb?|KCFA J]d-/*Vf-=澙 ^40Pj W/pOw’osaT ެ uNȀQsiE?Ʋ#H,&P4"6l5.])&2 m (ZqnG:"mN#8kdO5j&81}/Djv7^ rMkOfK_|2\ap4'U Ɓ%5-ɹ5G3nJ?S.σq̷0 p扴׸@ՆYHPzND륞~7NΕ\ WKy=D4bO_$sy l{Kc}!ѻ^ӗH[þ&bci=#|JmIe>,7gnUll¡qNz!Us Ӏnwt[m~KtG2ҽ<ԟ;3I9TN^0%B qOV8U*0>r}m.}MgЭ ]KG׷e&ZxD5y9TeG :'8h#rtG$ϳY$z/ĨND? aT'%1'sJE 5R=V_/ȟP.nS,*>k3dRS9EkfclwK{D8f5|`g!c LJF`[,K>o~pɛ8n6|By3v88x/ýݞ0eGˉt\|n^^ZU/h~e%zC>+ny{8a]&-hӠ[PfXT/T`1u֞=.7@:&[e OΙ]$ݜ8&#.\G-I بN dM-u;-)sEW sŅ#yL7[.DL421YE*HoTe1tOLbX?lX^^U?̂K}3MW% SNG#'*L¨$&lK/Skk^ht/!zݒb}iPksF!UIA3r `\(ma[ w=x̅e9oU{AR";?L*&vZ}fEqĴ,!鳇LR;!bʼRqFmDċafmƪ&dZu;!Ζ.ꀟUj6NY:s侌J<+a)W]%+jWVz~L`DG}EuP6LwJ.iG6[!JL aMU+ eI۾ uM{W]RZeeiD}Z~-d3|[gC`W }gȤ~7U߰S'?>>ZvbԨFFB$՘_Ahd w&mcVw.+b# X[Db}#Ke1v2\]!6%2`46tX֟*{`O혜# EO2/]ߜ~\WR<#A&ovu!lf|$}ŏ03^c kOM>hr, 'W!Y뭿){E/|.O =I[ ޞƐ87GI^Y_>\1>W{~*Q~Rni:<]77x5.89-eGEY[&)Ž߁ł{ypIRyըWv*P)޺lAD̗WQb/}؇ʼ *q={}|es(K] pů1>8lXI}>ϦL A+*.Om`8/}-#n˶1KG4KsqְU;O: JDYr &2Jx4 XQ/O}!hE&41AuQ9eKRЏ]͙`h]=y݋Tik7maK;ךw+n2 ]<{H|:UDn@u`tctdڽjдUtQN_ ,Ò6?(?}JߍB eJqݧ,1Nm6(jϧ mi gNrQ82:>*|,skT n$2qvDzOZvb :SF7 #~ áUK?x"8wXHvr_[_b"֧O22PSxuJlfQ3ﻮSOc;3t[dH֊W|2V90=hzf ަ/fW%;H6/n޻}-5ګ4uܜW=?/{˷[ ڤBKקCh/S6֔,H1e(3yjM>%7c#m,0 5qV.qJ`(%ۅDk5ߔ~-g#o n:-x{a NAwAB =QμZ}zN"^do% Jk.&3#33154Πl|Z&yxshy& @쑼ؽYƋX䫐1.1Pf*>6Vhz#:OPb6ޢVïp\9ÇG+3VW.RkL 2( 03hm#b33VL;ww5FBM@G`0hQN*AanըՂS|g$ h)xBVM @z{ETp`m҄bjg"&:w"' NVf8J3ܡ2y 9MYZ)CUyqbD9yf$@H qQxq0! Hfp{JmiXYLtV֭lyw B5Q y͡C#-ϯc#YrKہtS9m9őMCH; ;#IRӨr)_B> &I'<2c99o!kŤ(2C#OxNkYk =+k&@\?$B >}sZ-}{o!eҵakez)s!5AwAd5,50 /mƭ^ ҧ}D_O|X8Jk=S?a+IDGB1gt9-+ϱVq(qh "K @t<[U7ˁ1ē$P;@c4u~߂Hm,UMȼ KoFQL D/@X`* Rx.D Bb)9\QX7X-w:Ĝ3 /mKbgg& Ŏ?S:oG Y!2Nk0V#(;=ڴXKBae1x?H8។WT#i DJeM#+(nmqbA!+sH{1̛- .{\?˛1uWHϸl<co}lqRk:XWAIDX Nx.O閹X"l҆br5e'DT&i!|'ȅJ~W - KԦ= cDZ1W*Wiϋf|xC{O]g{dj&]/ 7&duM3lJߣ&^C: 97W^B5pk}"MH7閜yN)z8h|g9wS78. BblrD `+KѣrkB$6hc3A%qp<(Os_[ԡ♷!;g1(oBy,};U% Ciq6^.G (ů!; N+mZ![_AkΎ^ڈy?o!I$'{kϗ>K EV5^U^ZIT}RqM\'NZL;"?PX#)1~k3_ٜ,p$kҋ^Ǽ׿5K'j㙈H$cЫ,A@\9iLwê'h鬓gN^ֳӛ þ?b0ucs Lc< V!eȖ/K֞?_slv{1S:y'B9Y 2clg}^v]3#9B}8ō4t#=V'TA+ &LJ/ [ t}eBor2BTKр PKNoG1J8%nuvola/64x64/apps/edu_mathematics.pngUT d/eACPQux %W{<[^?^[ y A)};3fA!Sv79*m"pINA6U[D h"2ON皛>$[Zw/u{j|û?lϼlQ8O\GI<7\0  mUT+6RPRuH>x|rKc*[j+VVK3EK1aMKe[\QaNo*M{N~=)=<j{ =8 q]P ̖9+IvYY^9?2_Ӑ5PW\v-3Wo!YM'r&@XmEI/2̪ţ`Q}--Zh#$L0MVHH-lߕ _[uBAEAÇ= VxL~gsjBj}SN3E ]PZ }Eǝ-P}%NjlVpAK(ԃ)%ֺ0oLj8vyd tp sB3g=$RX"@`X :C i \bF30<;U1*6F*`Yw/t#dGolxSRmlHnJ;V, ])=m,־ytJF뛍@v gS+Pߤy[JRerkPE@Tbh)(ҊO DjAG;F}J8^a n]6|F φn[*?y-oBTXWc `)ɚv׉ac-LXrG9𵻾 2>;ДcaxBw/{8^@q}u.oNJ"-T@KbŬL>L$\8ElBq Pg]'\9E"h@UR?B#mޑ4fY0u;Q իڗ%ryF$b ̮Z_ 2\־ី_Amķ/>ܡ RY? `cU @j\E,r泮K'hvE*o{q։F#+RSM\k=B~{W\(>guyk$2yⶳI5{u ^I.*]D R(t^`6LZUb\2p#?[w<یYIc(<R^]ߴoCȨWq'$fGVzcVln{u_JuUzhYڭQe\0LSA?Q r/Bgs\ R+"QG 渍dR|w` _b畞Dk¯߿||u}sIҎ⩋8Y5D_^zfoq-Y3=`=q~(eiVVEkF>`=r:[V P I%Dd\xfk2XPtQ =S\6{ `y;=mQ%s׫^D>B6g l^?醔fg!ѭ6K*#\ƀ5 -,ӶG:X5%*̧/  čʍʾ-iJ w[`3&>Ĵ4lհǏ>}Bo怑{F_\-n.,e`v^M.(2s9naDa$Z>u }?Hs(Em(ZU,MVa׹w$N7'b<5ͪV-W=MsႫ`IAGa/U֥NHȩ@ !J6<dJ$ZPffuW&w%ZI}<@NޣSr?&yōLێn,\viܣLd*]\U9/k Q &XrtqI\5 יLDࣱ5W.4T7I{9IFJJ6MN&dct?}QC!m%J*䂢k#7`n=}|p*j,-X^H#zdwNʺ~e]tͫfӣ"sn4Ya84(>IvYPKt91E8'nuvola/64x64/apps/edu_miscellaneous.pngUT gUA=PQux WiXM~G KE|r\ެ6˷\ED\\Z޲6@qJT2D뚙k̙3}ι/{v]l }3] ND'P.*7G&QCk$5 o1,a]S)ThsmGQ,)n\ %"<2W7*ǚ jϻq?)`@DT|Fz<%?\tx x![@E~;Թò [`O/0]6VZk2G\L5y'{1n M`"X\LV\iGͥҁ 8waŊ)*_g9K1uS7>]-Gţ}QD ;O1Ϳ7_RU(ރ/ gҙ6Z&2a]슊S͑#JZje|y=x>i+wZ;e8 `K&!cY"~XgBlro&TG7E~W9R֨n?Xu S'= 6đ͢{Ѡ_xE} Y0 C(T?ر^PzΓ\{X+|lO`^Q"a+#TM]G+V=* IP܇i$Ú{"b([hߢ`}c&9WaOѨ,h Uw<E"f#KDhPey%BTdZii w7uk#`H B7!_z޺"N9B_^O9(N݊>qnqGɸS Rӻcn+nާ "1gǑHOkoXZ!-R lx2D.,HsIz_H>kD HOx3VԦQ$ʐ iȟMu ,tS k9V 0#<'V~380CwN{E^XJDȣKZ #c>c~B͖|2jC*3#Bm)m]-b_zRc!~Pz!Ïdž zpN1!JT} `O9v4s)pJRRϤ<"SM[Z=AA+4$ibPS,ZxZn?xeMoFq4avF?+$ˬWF~sL`=F7#V0 7Wc',c7_pΠʤҘT,̕v<&$CT8b`t: >9n;k,)k:ϩb wlko֮do-Z6x]Aa>\~KcJ-$A-Uq54uZAG.-ۺ6ppE:]Ke:0:^ܐRZOK(\Tmz:.ƾٿ ay6zB=JS 0klǛA ;",4η U7kY$׫n7rL M3G,*|]t}jlbUG-os)P&et/ve寢r΁;O尴K!0x>]S'qD~4A5_"[jhS#;6 'q~GЏi WǵH_PH V)yk(j?GOu:Qh{|S 50a1uu%p^RYBđ0D Z']Ta f}L]oSIC* Kol+v0u\/,e9`UX 7x~'/PeXxњ aE~V1{S# g,J~yt^o:tɋ1o"GQ\?-`^AO9+gXgʁѲe-Z%[]:Mދ5q)Tu>zyQxZo#:ro@y;X%3XO<( ޹@<]5Պ3!*!JfM5l9@ :a.(_"e7Ft j"(T s[~ Л qp֊]*?7ƟW5c~B 2 ݛ^NAa{^)yl**,oQ]]sXlv%pdak׮I|SVv]!jcTZU YY }MHԩNAAI#0*<r]mD/r{0=Ͳ|tש vRyf})N f J`zIT >s.^.ubZU: ?z04DrVb YhSCe.hf'KĿq5˛'Cf4DgC&+4)dP}S4il}W-SaaF4ggnK45-9Gak3`oo'%:A=/񆫣rtsàLꚆsU]8[$'rISꨀ:[M%Ztj ?QơrB\cVġis4EiYP4(jkv o^:æ<e%}LމLqrdu 9s1zRNC(x~?|BӲ3|;8f<SC~.ұ:=ou%2dW|(hkqx5:AWb%lGlLBnGm|pt3ݎ Wǒ\L 5 L.mK=z,/r8߬Ч`ttbr7΢'K]IJ>Ĩ F=[N ._lQdafjn F*UO"n0Em'q}}Qo-.7 ĖqUͯ jxG )O~. N|&3 |6R|f,P6$tu<(}RiҜEi4'^hRAפ\8Y^dnXTl#'.4ҍY7r, ˼|EJ۞c?um=;0t6tt>FPmRo%[xʦl}I~ufFi_HrmiZ.@6=J[9%i >4|:8c% |Hso]oQW_٬qZ_9|r\:Gc]5ʟϻ y["9%rs;9LEG[a'=I9;)+ #>l=\Hype4=~px1’Y`籓OMU:vU鄰ck ./^?Bפg+F~|S{djwS`"(^|p."DR |_ [_ļݤRek:FP 69. #ulᐗ+@=aī4XIi-5d'8du$ͥkXcYdbhZHP<9yȽo,MufٛP=13Q_&<l#Wc@(8%/&΄oy@=硥 ߾$oqgFua-dtN]]Ŧ* *R-jhi48")Qo>CVגYɽ 9 "魒.r5ANQe4p.KT?vwVx1v49EI4l1ˬ+?zsT +!e8^Ip {f5dCwhM":U|ArՐ)Ly%MBm]J[ddyGL &`Zl#ـ DA4龅_X_s& Dc}2zo|a)v&7V K#0kda}S*_JΪWJ ԏ9Oې>5Ԑ#@ n5WJޗ0A1(5 3as<Ů.:fՌuT/:%E/G3  Tv?G9&kKtϜʰREȵSݦۍZ;/wB!3oÑ-HgHT\RS`RLƗȧɎYL :t  ~MXn,d^Zlë8v5j]~ȻF|jf1Q sPQux %W{|ޟ|뼿V=x֬(ѓ_5V7:T"3h ~,0Fv;5 &y} QBM` n"";QaW`0 : (h+p+!ܻmc"fI+4E:'6cD(cJm={V1|K?[dA:M)!'SRSFjQjT9%; DծpPc3t?OJ==G!ԹUjdMMN<qÄ[Ο=3 !!5%ʙ)zhLƽ-۹-CO1]`72aR]kχeP'^/vl0ltbBՔ0KnAs>y!V8k|7>k^yک#E+ 5Za%,djM҈Xmʑ[m,gEf~Խ8v~w뙥 Ĺ|̒-.}?B_CzQjn<8\5bS׹|qߝ~ZfFU"viC. սUE%Smi By73FY3{n?[z{Gw3l}s*F)E\> B_'4Inu^[Yq4oppwQ'A[UشT,cfg7q`p`."tUH^.v'p0ۀ!Z#7źoiY|i?"n-R]j"3J0a }H,kKSW8sx&)cJ\¾Y`O0eCJ^ƌ֕]j[Sؾ n(΢axYX EHi{ʪ{⯐) ddj?:^Ht66i-?OMM|Tm4ï;k՗8YɌ29 ~@>i pKZr{.܆S&|~vo/J)f4_pI-@};K}XBVZ:0`+ xXh4pv:ū伺D3Z8mU irn@0$@D^ƽ@4%%ljU>:43x z-58?D=`u_7M26B&)B`j'_U_q dM!\_?%"B5q֙h(:mE/^<;a^+E2V7C͓3hHkWYxrg0V7A')PeUoe4fZuBN#LF\d -ȤZUMf}"I8Uђ~iklO!,n!%z:ýp^o~k6`uwHn+X*, H/,Δ9ݗVQ]S訸IgoOc b܁EVnC*6W˘{2 ^gi^xyFm#Pt#يaB-27J#FZzQ[iF|1^p_ wozV|szu$CԲ~:!<3>Y&b6t 4MGߌsQ4[lGN^b19o'bԣ#v=O-WniQ锈?q:DeT<;U3:4ѱ;ᐆ%5 7T5Gn%MUAy[dNacOt* cE_rĬgPi qZ VhChd]X6v23S<|E_)tTACo`i#^Ie-4~3U*bX!e0LdE-.TGx5UT6YvMw)6<'5D>/sc' A!3RU 珡0_)E C%PHa^l-3U/:E}5`ro,&!U},OBXW xI|#8vbܔ',㌝-՜<r'^=4])P];'6fiRMVڃiiސy>{i •Y.{8(l0w2{!-lqѰ&|e:N@_:j2pTz٩D('.CI0j|Qp1B+gs<,7~҃DsLιc9uzk4-w<'åG.!sޏHYWj"\1IJh߉ˋiwҧnӠ08z7J#īKSyEDMO#c `+JCZt4gέ@̞ubGYZf*a }Z&53rS1X1}q7N|.U.[!II1/iu9WKYbB2\q ;Bϖʏ^=/cf8 Y\L؟DL )ʅ:C5F~ fa]Tq4=P]ϐɀye=P6F,^i-n@` >GOrj\>ӺtтҫfCТ>I9/ѣD"_M;O*KwQ zсzivdha~AS*ոԈνG|`Z8ݷ|&[(($ӊ(}FWH\tYO h&+iY8Ǚ]$QUaA dXs9RDHs؈JRo.ڍv0[Wk*'ymK@vG4Y?2GC4pw!CLT7D  <6(swrsLaIA1ؑij74Z#Z껄Ku%) zfxۭOyt蔝-o@wHl]"qҍ(f5_L yޖ["ߌ^3=erKLbD4!h X'LV5 P\ l!uv1L [Ep0B#?gw2:\J$_r9K@E"but-yV[%GNo/5.rr͘7E ,CYGUs/D9kJ-N$ )0 C>)/5qNIEF|uYi.7Rk[&5vh [)k87.8mX 4lu(Jm%k?)PK-G1/k9nuvola/64x64/apps/emacs.pngUT |eAAPQux Y 8S?ls9lrۢ2(Jn'ee "aJJ%s+T*.ʐ,vys>}|?s|vjk.@m6_UK{#T׻& (_UأFn(~2$܉ ̈́&8'u.P=I ho߹3m ނX[a TBk岏1̛BX& 6olW\ 3_]p!off&R&] etaBxۻLUȀB:=/*#y+ \Ŕ&yRŋCN َ1*3)Su|(TۻJHvw״f'S2=JcCa45½Mv F{C#vB:\l`57_oϢy'oo-8'LӐt[J 6F"l;NO_w/y&EX+7Ɣ:j>G͍bU+p_}MPmbH(mat8{6GSS`̤xzbU=*$I~8jddd݀>*i`+|x=f!sQҘ/vijc4!ĒŦ*lŅBid\;΃YX5̺?¬eKpqLMefRKMMpNǓ2iBjzi85f*dΖ+˖X E^Gp@3]ڴ6Gs1K4P>Jq^-J 6>67o (nySK'$>ӈNR[3*1˥1] .K<ƪsֳ 5K o8 )yMinVĆϵ_)@Ӂэ;]_wx "Fdcz##:^/ Q kx&t3v@>jG6wM746Sn~Yo;Rj6ĄS0((*Դ<H"g;UOlCLc+^Lw/vCXT)/I楅c^k@1) 5M  &%dC,^:t- YnPocS0g556D>Y͔ZC[XkUp}LF 6#:-i΄LພJLnjkA1xQضe* 3p&h~{]c/ H\{c2/~$"g$3ho%q4/JA5zMg$u'sL6COH`~x-"\;y߬zKU آa탌RX4%K1.Zt '9{˶kҋ5 40䝂&Y;x?j>O;Yzli7?Ս,wY7WܮokgbXg舘'+=ɢa'uamj'0>c60ڒ8eb8SqO Ia_3k\k_RmfŶM^YpX3)? A f|QbF#12/L%@ZE^{ӝby})pp9s9@$ce+nBogu!%szh4b.fndc &d6E׹*AӬL,9) đR"cHrŽp]ɮނ\s-RT19J0]a-V[z͍+u9|pjbjjUbVv"%!el>rrI@D vz˜"2Uiz1 kii],#Yҵ;zG]ݘ@!@n#MLQhVc?>Q8J%3c60#`QT™k6 ;4n&ÿ6nbK!一0Vbextpt^F{E"Ax ml:?J2=9^SV*=WD@|JW ֔M@NPzVbYRB#r7<)G&YeB)-%׎,r„y+Nk$>Ԛg%<&E֦{r@j)>Ko%eFH5O۱囱 2)mZ@ U  Lw +`8u.Y *vjʿmb+e+C]O  SxJ f4u%!{sDmxʉ)UgANlLY&9#Ot1ؽz@3ީ ǯ_z^`5 0C5`);c'JE6!sYZGc1zY@C GEarrARG.FR$h1i)i]V/H ;^F.^P+6$wgC70N}Le\ JD=}KXԍ ""2 gh~OA6H k,t-Sa^76wʥS`RLq$zpS doc]B)@^#<&bpbjN[5$܄KYٶ̔_굞_ȊFŠ8x+UfG78P7m.T`O`jcR筇ǥmXA`0:aEӅ0*e`i.p3;~{@j5"a`ƥd|R+ Go`4k[շ|sT~UIuc6!=COH,\Z|~3 ~1 CQ "h;Rhrms faDpZH3gp[;/bilN֬~ ,D¬sGXEF(} [bڛ&Xж㔦h1kL~\x ~L?G&@?D/̸,'I=dsLbCOӋ2˵u'>Br 2`-]eIس c֡߮Nz 9ֲR-QcNi3+4 AQѧ Gf} 1R7Wp>Z&#t)AQpCTuG0氝cnbZ}ϻf)Nƍ o˥Ϧ?LYT;~2UdZⴿfa̴=Lp": iv>e?(RP8(sʎ|mc# [ןϢW;6M@mb3~d¤CyϧaE)'b,qrcOvЙ7άG/N^tu5I$-I}' 32Ȼ11،g, aC3y̓iM/Nzwk3Ѭ˳$LmS}ajE9 CGc>.)e_1Iސ J wiЫYS{a03! 8k_Ꟃ28CMebϞoKPe20"w9Ѣ;{۵U&`܉>i8uޱy^Ӷ=өýcv^'Z;XpR/`QЗrER\M9.QwI-Poy5W=<7o!Z9jG"b#̖͞Cw)Gm(`V_};9"I ;ErSeqbF*9 GWl_  dxdJBL|3}mr='A)n(2(RɷUUʉreITwP( 8=\r\vd\p|fbbuBFҏί>4xbNx7cV%od$4z0*Znr*jn^J':4L[@U2_B4=-]e#'u0L^=cԦT?&I8Q9Y,C q04V\ z<מذ 71 @=P Tuw7GGAi)$[)Ѳm1&)'rĚ1n"˩MmiI&B_ ,g-鼈4ٳ;}~ñJ@?ћRZ >R|,IiLÓu륹Z*\ 5}2/1]އc_v ^vB+6)4LI|h=Yt|p8X]3=ȹs;D!߰bV_~io1Ctq}x?r@l"=vSl9 f{3/_=q?2ԫEK3oQ%A~zAc9EE12p}CQ#G.FM I3asa7~3rJĞ IH]1t)ɩ>ߍg1VePy fcKS$QQLJN /ZU!:aNVwKKdSt{%1k&hAb۫1}nH%e Qe |B> } AG^[n34?~[l!~k!RB猷5_!#N{n [B(o,{{97-;"*_p:hqǮwncz҅1x^\}a'v;Q$Ew~ n r *jؘJASr Fj\5#Or7~w<52DຕM>r=*uB|'?wPK)G1uy/nuvola/64x64/apps/email.pngUT {eAAPQux Ux{],ZR=yO-CdfU6oAx{ ¸sf%g Ӎ>,e 耒<UA[[m8;9%83}F4az| [T8BNf'z BC/ڮ2qyuP4<ÿ:޴oRrsJYBBE@P0g cDFbLWj$ʏ?!]B+>; Wmd޺ Z50xygr+/riR0SWt">q(~vK!>H_ɓikS}zQ2\iִ0"4 z0!9V1ikw"&#nݲ]ZHsX`qVu .AE?vvWf5.J!/mOI7Mn:n4~'0zB0ΨYdYHW 0vV)>_ZT,Uǻ&pL9Шv/9{OY5ѮV8 'j-ܛݍD\,%B"*_zH- FοN~2G=[Uz5*"Z+({66ս!!5QewAB̬,BOc.iBdm)2>މIպ$D\]5`aݛQ-Ng[gӬL6emeO߿.ڒg,vy70$$lOUtǦh![)Ҋjzjq3.&^/+Wd ;~2D=(A@U"Hʨbmm$HB7sB,g 66^#Eo`"DљGSAEdβDb8}%T"2J"!+! iLVN>'&o "_1<2 TE#9 _sl5Ltu`8^`w x&ybSE|0l$h2Kb#n͛6)q{J~=3S!2 A f1\3;Wf 7</[<0Wp?[ib6jɬ niY 8waP0u$wZ|5Jvom)k5b E %cO&,c]IL,a%!! X󘠹,~!M"LACo#-Nk&QKa EYX̏ءzZ`h=_FTJ4UgLvy-Mg!0OCCh谼~︡YHF݈G $jH)X `W^7 [ e:0" eQ/^wxZoӟ~( oxtwL״n:W!A_ 8}*E'R49---?ZZi=Wy{5/x .a o ǵΑ"`lVQwެdw RU$@^ra90Kp,Ȃ˻Gy3jIl1p-]%2 {l,Y!4cJIL%7O*/PH[=F~e؞,Im`[txO:2z],2uBNCt"vλbwE(ĥ]v̌A˺HƁ ;UwƟ`94SYY[p tB34raPux+4k 6]w`aQGgS9% 3#)h |4vUrcRk49Cffdĉ3/Z޹_=JLi@>94ugpԛ\eNk9Ɗ2/pļٟ}z?Nt楑UmJ~G|W(57OX3x2<"aGbFZNB8q;m!J",eRa{{{1#UsK| Yo;ZWClPTY!MoQtT )ZHӆGKN}&9MXq Nt,nоi6Ac~tO͒ 4Յm#ϖdbA)I!;]MEM?5[}^ʘ\+\bQʹ v)9\C R5cVRv!ιzEc;fN܅?m`E`bCtŖwp-W9~NtiqfNK1?ٝ)Xʊd8fuّ͆Qez` pvC#*L,X]aБ`.pVͮt3Ћ Fݮ*+Zl_r%Udl SGeY8LuM!ai40Wzv<QM4hg]hYN*o`+Cb[ j )4&)PbMw\#x]{xko_\)vcU.voͻQM[%誗bkcߏ3Θ)BIJm)~X4 ?^%H:'^-SO.M e}N_ȴ<\K5bkH+?3EoZX3L;P5+ )QOD%m=$1S:_P`w"E"^ӷȕjU7qV-OoRo`KpIxF:B>e漢7sd6OosG|v[xw_ >NɹF5_,]XUB- Vam6V1>U./)噭}!|I~]82W[fԚSx@[f@UjmFq\, WdUXWO"8wjh1#!@*V>k!L%N\W6ȉYh]MeFGXQVӻ\Zo Xz309$GNrPKKoG1Jnuvola/64x64/apps/energy.pngUT ^/eA=PQux XwXYןt&RDI(JK@ ]Y HI@ k_V"ڂXPYB(j)eyw=sί{2l=: ׌n-V©w#RJ bb3%xb(' "6b|ۦAq DW{IS]C' EM+2W^y@j0ϴ^&"eL;WXƌ O406I$J'doOt+P^15!ka0IQȀa_-uLw_C1LL I [#\6$tO;pl|FFVEדsU7!-C$W-5⽄-uEM_Λ<3 P] '!p +v \V==/ ZCMh; x9`FRM$p#wc~ve1I#Ƈ[@Q%IgI~H051!֨iw~s u)N8>#1dA;}3V2@icV_pGf`#JQjkƫjtv== Je1WXR9ܻf(b7sz O @NU=_k8.1B.>x-hv|14b>gTSP܏%pV~@ ""^PK(S &:GMpsk[6rI-:Fc) oV#۶Jʙ-בBӒrԅH2,1m&Ҭ[(Vᾒ.& "z:ĹvјqklU.ܨ_4lCtēGտ0C򂆵w0ݭs^0qwк!myβDMbߣ+ J9Ҫ# x?ӡ iVUo4yUk3-19yr)aC5[E䎞&C6o6ߦzdJ {5RQf0aD9b,;8$`fq&8+)Օ.\L OP 6x9(<{QPrd|9nxF`O\7L wZ)ɭTdtPU#?v&4SrQaAt‡q͟Y~%GF gt k#gJ<2Ib!aI(yk{&ja[N…˪li'C;a].NQBnjCnkGr.JyGte_z+!K1m?@ƫ0lq('ht*]#~j ~+H3 Rj]8ڡ ()gzY,HoaF T FdO Znƴ$N5xND- #le*jfqlF)xFh$35>v /g/qL?=TSOVhL$h7،l7{7.@gcӡV3 T#wȱzccTwZvȯIֺhw釐Ϫp[lXc%6Ilwfdy3kBUQsgLEW89dP h:b`iw6c*;7'7Kvj>y-4RJwȋ/+ĸ}SÑj * "5~HI Yw#ᘄ(vELnm )klEc(/J5 yP""rRsHk~otT=dNh=kiQ4∁/.@]j2ғS=Y&. .ʡt,MH^ُ݇bjTO:C(d ҃ڿ,}GwE&ũJq=ktLbY-LMo(Zٯ˯^5cFc Gl6q|9.>7d:&&Eh*WwxMHf -8rGaGܞ7XjlC tg>?GC"A5NQh@НV2 lwoLc}#ޟXvi}TlRS.lHu rNS#Kb£ƫ?nQRcb%:4B X;vq;b3͂4?{|f@^:W;|f [sk>Ru֦gةF|287 1F:-NM"p-F6/o9C1GQ$ϝy\h.B{XWKiQu1'lpq*+P:.̭`XAmuL7j+1gŽUO EsWJ'ޕ,U_+Ҿ{n{  7恡PGBF*|4dO~K[P6!y BB I#NČk .ʟFF QlV|R/C $^/ / C臸)TWcǕʸGWյ?S ҂s_ `'CE8N)gH=; xvf?qzEKw Ie`:0>00> [/[fCp4-g9+$T'LJ'=Nq]ϟȺ%=}I:#g%쥒"0Ƙa1f7<@*ko_{59ظF˱U!hV/@Y% O@Ȼ)$q,W_htsDsoyO7JXkȔNfBFE+/IbF+x_`|kB4DEg%(rXս@CG^) LS_w@P%¸Zu8|Ui^"'I`]l5BP\t.A.gq>!,Uip$Y5i ䷸ PoM/V;6Wk+C<.9$8DR'yN,\Iħ rah<T)TM=G~f{;`ЕlKਗ?˂˾|Ro g~Nsp;Fnjqڗ-"*^ǝxlSʐ\ǫ΂:dwQ.۔畘;B՞x>c|@ˣXlL)i§hxΨسhw!4k%4%z5o~PrƟXq??ohă} M/l/yy`#Evwڕy{EɽBz$]5:%Ry%ca`SO jI\]0@Wٍc5F\t1["Aթޅꏢ# qDHp\FӛQdU1Y)m` fɛs?g͑`YgW̒fXXT3Xl3'a\G{-F/Wm`Xƿw<-ud m=L S.$#++2sO_[n+zc#h*ɱeQ#; FVd=~cqz}F1^2R:ZG:c cٻ2L[W5'"l7S,YZ4Z]k"ܜuN 7nl{NnZsjjur^%N,hH+_eFhžWڎ|eOrӥEP\ZLvSҘt#h;tkۜ`m3?_2b+(- ejwRn̯}pb׊T"=D7MN&ƏvV,趋ł/$b?x<ν{DιsXCNxd:#iл?d".8iA ~7bhGu$-చLVHcQEѝv0XE$Y_ܵ uqc_Zj=~ L1_8@^cFVH/S7yW!dӸ0r"pƪ%tF;~ev'[~i>Zh/XQ,je(:`px`8ͭ,s{wm#n^jlvbI^}/}nd Yڿ-%n:b ao*PGb^cޔ=aĿ*8þ4+G[V"2X^ʉnqkITs;㪝l й/RczYvZ ޜ{G%u.@snY?PKfoG1='nuvola/64x64/apps/enhanced_browsing.pngUT /eABPQux % TSovAAP\PeI"آ ZKRA Y@"U%ֺ'.H.ew4(( ,~ߜ33g9{yw@e.NSpY$sUi;{V@D(l~[̴߲L~*cIԸԤۚSC-bޚ7| rQDpCFpOGe ?$ٯ qTozёʓTKll$u*L~7ɕ{TǛl31iPoP4BwWwpP4)Q5)ns)$BkV \_4;!9Yw)$E1VJusȚb/p.h&{͝Tđ{\,S`K}U dZCVYKxفbi0=edjuI?FDp=Hi(ͼnI6M*[APK cW`t`kfXWz K3!D /0b 19FWlLd]wり&VL ϠZz[OnN^{6!#A2űr?#=0]qoTa[LAؙI=a[P$= D9!K.ȵf: אG-dhQk+?lZݜI  43fauaNBRȘr~;@As NI_q4p3}v'5X(c AV%Џ3Ksԭo8=*14:lH3& -y .]~-nqo;.j*) q58i(*2^z )أ=)e8&Fst*+N*TE{+jҾ%^B|(-#l `Pd"(SUۆh zv?1"ƜGYg̛2 we5aA5ud:X<5-+ Lmx  8 ^wEILSlw^O-j/J._4rǢiAVn7"+JKK6]#"J԰DYFL gwg{{qSY 5plχTf+"`@ 5ݛWoqG'!-?8_y<?f 8PpPRzС()ޚ G |7ќN eQO@Hy9WtA9Is_*aAfu"R2̽[uMM M+ha΁Yè֭HB\jN)+׈cᣎ3ML][KU342`_5P>i[Cd Wkϳa͜cc.pxW#AmV3x?EîIv-HTB\2g-bmt z3EUxWB5@ݯYcxo1pn ʸtYtxza]hiI_p`bڃ>~䂒,uHO}&ke>l:bb֟\%]rgEzr%,/6p8 AaKމ>NN]΂AN-q̉LvֵkuQdS#w\(),7hMƥ͉f쯼ћ,06?nX| D"Efy]8$Ĭy2 Б2x(d&ĥT?d0q2=+@R*_n?QWʋ]F6F4h%)r 9 }32Բ w=:m P7Z{cwPmI.@{Ha:-]$cts&PWH'kDۦU`wo={sӠ)bsDl z>1};NMSƱRc'za[]Lm6(x^x٨*5xWV˟"Ͷ!}g;AS,"Q'ukwG*/ƇzNiJx+7TQANDmRfLh6¥KU.O3?)|<,tE6S'қRugJKnc[Dd\!pEu;t;wunn3NG(u!&}-P? _DO O\6e=+@պ>KZ3}[vxצjQV7#_(DZX2#R&'vVIiqa9-)Vh> :*4?pcp9 )A!<n.AGj}{>p]+snE0ʽvXmXGش8k۶乖:D?Y)J%l,VM Y$g!/X?f>FP4t԰I=s!bݪ~[e=X_}Xc~Ӟ~!eYQ$\7E(Fk C]qs3-4-zc&igj:"l#ئFt~) 2:xk&]h|R e+7D|h }u#X~Zӑ2}۹"@9BZQE|>!(]!kܶ,%7h0- nN~ܼG$9l"?G傲˙f_><}Vyɦk!/:n/~ݔlKuwom|ZxLhDeg[ MEr#"L٬ KXuwJjV`iƸ X(#ܘkg>V^;>D`ÍeDWvHle#-q>һHlgҩ9`) O7yJ4UN$]jT@efbjK?nym@VfOug>r!KA{F87ڶb@YU.vs,O#1~ҍ|bZ|g#b+֍hb@S)p\< f uxqm]*Kku>ѓ&BLW!v5l 1Pm҃{hN6ەvScOH>hx(D{q``Ben8/߰|$Ikt2y'12;CbK- }˞'3xO H%XC?vf<MOM?RW#SθJ xk:RƊDH: (hcG-E9b<EjsdnYp%_v1nMV7 .zbw&zd LQI5z tvbŸN 4Z[K0ićmUy?ъZtƤz+k͚{{o_"Q.y]Qi` 7I[Kh9 MwS6j=6g |;D\J &9&I3?%C 3gs9<͖+G113N)+799^B] { 6H9Vޑu#`@<#f22SJqWOSqO>R_iUǨPv͖c>X;h&G jftScI07KPa~oKÍK1 Y>\OL&6i ΞWSl6zH/w'ľu(jfBﴢPWr]]±3|,NtiHb' l.A7=ON՚k5C^;0sL=d{2 .ͣ?  F[4!`TK/ l4Fx ؄˘꺳\7x.<"׼7A/s-؞>3"r';ZNΧz7V$ Z#DžV oԑd?bے2@ #HmcI| 8{xM&lưZύ…Y+#z)Ϗ|r| 3k8\4.oB4+aӌgn*;@sx ᳎{ٱ!?ax !\y᷿'~7fTa4N|\̱ ܾ?.ۋ4!+t')|%WCPKcoG1*2nuvola/64x64/apps/error.pngUT /eAʥDǯy{x/O3e;v}8jSƧh 8_0'p*NvwiAyMSc8te!6pnE'`v-6&&G)wUM)tE&)$2piZvQ۶tq،l<>zn]wT:MFjx'ֈ͂5/ʹ\8_U3e/ƨ֫p͚ \k"Z]<抅y7煬[7M(1)n3ai#.*rs!.}ǭ?:?;{pzzO6cCfɶ-FUU`9A$.zȏR +03*`$:*ōa|~F,UC19"ߵoP9gh ntV[j1d^|elڿo=Y#f6<d^BnvE|D!1Gez;)0н±CƎ} *Md gbVD169T~ Ql><桧j.cR\/u.2vX8UnQŋs}n4FA8ik%L8kҚ, jznk^˹VnA>r ŋWX!ˤ3+/ݗ}2}bSS`<"g/~O0e:LoLAsRl`xՔ;IgLMi8  sBCWKB%:NN LaQ# xq{S<9I7GF&P kZvreeGf4<υɟzhk4xIHb'\9G_=@֏0$)(F5usx^*!g`X@o뇔orV'6쁐񚒂'9Yq `"\ZajQ_ZeNHa5 72bUFS7Ow˂Hʏq;*bq>D#)V[LπK?x?&NiƵGC͈DA5j ʬEXO+Wχ) ` (g57~B.2zsK&z?*BH 3w_-4g&AS뉜Kq4d2uōgG1Pfy-orl)诡mX\^utݵ[ъm ډD^[s욤gufG4|6\b6tz C,1jFm-ٯ)ZdTD"YLtVRipfiC~C9X.F598Ms<%~. >e]'J{k(_YgUs!ygz' D޿!7mylPWZڞvQc hsl!,L5^eqfP1hsR쌳˭Jr]h8')Q̍uZY,tʌ+C4cG6Vdk8-fY u0hIf?:b1eA֙P].ͭxzFN_ q1)xh=]*4wB}qXb}mޚBjCq@:&R3|*w= 1E)0 ݭ=gh]U#*P4*µ $G#_wyI#Y򾰪RNA`}Oʅ}|d:a. }p$ZCTe)Ew!nnrp2sRuDB9)DQi#jIK ̏trؠE$n,AptYSC:HZV'a;FHS GGUk)KJtwmI?? $q$(aFbS~mS[O6>7uӟHP Y3fSD)쾠>pBNL[.ln}1W㐥d6\jEѲLCW.NNNM!Ekqq-wwWlWK5k`ּ4- hHVBMGL̯ڢobH5CK_7ڡl|ڜ :(8ߝBoFGce n{5#ӄ)p05Zzt"1Q{YLmz0I>f כ1z M)#m8q_:=Lc ̅oe8 N_YtZJ1btKFS3Ԋ΁> \;"Koq)AWEV) Fj3 3IV68k6t—zWp;P,_>K&lF$ U/,1Aw(a5Mg/k^H/ĞJZp:#7XJ_r[s7 ;EKE,?m k2ay{=l`Q'+H$[K/ n*ocTU;Xfut>68I7Ѩjj{WKX0˯23Tc^P5Hҏ^%k{+/KK 1pax'h,3s9'1N3(5]Noۤ0! uu,N˰w3/cfʹ&փ<l#Զnj5.+@ P0'˄٨ᵶ)TxIk6Ce6eZuPwwBIզ~-J_3m^ȶ YXBNe 'tFG#!q45Aa+ wP)"ۣZ@<_Csoj]̯}Sů^J=a/V>MC `O3-h.tZFj4߆lm:;E;CK}P[bӶOհʬ/Uz(HЊ m-{ e|D˳5?9p%U 3y0QI)6\ FBe JCǸp 4D$NZ )cl-dM/`tyaؘjiԣ4֗褧w8ğ:gN؋$@ό4\~' .~dYl0y.ɔv,T+fa&tǍP=unhIѥ#bHk]XS~a0Wi QW0a, GO|_-a-wkgL14Dlr/c);(HSbYUp}ةU!q.Ҧ'M5Â4:KN-Xhuue"=Bi)/.kVG Zy1&&IܢF}nEvXIaRH\6lHKJt:%{tm*\<2Bdx^vnC!Lj"fel[ B$H~S유39_ْuؼ鞀GJ{Ob,8J4oI!}}8J}6dת&銋Khw,(b?s! XEk R  қzJ OWO~(DnNyX ͝ a߼VJWdQvß?{7Sn?׃iBv8oyFXa|ў bו7ȩ> \ -0G2P:dK\f)k|tRX}`ӳ(R`k؎sPmmYYLǧxR||xc#SM\J+\7D4`7O=9qqPﴢݙC s@ʊ "?y߫9Bsdޫo&{\7 #e>ȥzn3 a(F1sWP4E sǗBU&30x`'7ޘUc%I9aa:'(g#ez}M=֌ꮾ \Shsk.NEv U8?%0`;5#C࢒(zf٨E E˞0>bϹ\3) cȔA"4duz>Ӑ5ɓ!w{BN]i爂Ӥ>fUs ?+V|8^6߰!}I%l0=MptcrO9SEK~Fhi`B,N/]~ZA+e abl|7p˧݄귻ѳH)=]ژO '_}vybNMxP"1k@&W?qFzTSjsiEkï,+Qș$q%Qv |ﲓJ?2&;*PFRa`]@/9qاk!]qd€YRkAP_Qv6KX)ҾWGNg*cFP5WR*{7̘I}Zo򴽟n'J;tN]tu ԄиOĂI;o]ץp?T4jH%VJ {\ P}@{-]"b!PKpG1z^nuvola/64x64/apps/evolution.pngUT |eA@PQux %XT[ם$dB"(,`< ]Tt#GE@ Co (^gfs>{e.eEmEFS] r}T(nF_-ǝy@h 3/#͟yǝS#,Kd jl>' 7ج]"Xr]J?>\=s)L/nrHR.;S99z VTPע G񋽥8&z.}ROdI:oUJK_H;S\*T*o ,yk ~IŶV,ɇlO(S^a㞿?uƤeJwAO~a*5PFXK&rSzo"̕6J[  Gra2)3 $RA&mkBY3Kɉ iq5,?gcŶOZOŮԁ2q*:#JrNad:H(nW G"0n>Ӛ4A @oWh,Vif ̔]qQ nS֋ՑKqn*LS|pwZK#1 tS>6Pai̢op`~B[J-O}vfV#ڏz@bzdMel7/X9a\BZ##77U; V=JOJm];gC[_cFˏyP/R]Qe ͬ^%tGyԼHs~U:PW0WSބ*35AH~1`&)2a'#Yb765q/\4{ dCV#;a֜DxbDb՘)gO^' ~l3QAR>Co|p!Xw|{c|~3t2z8(~(255/bFdƈS%(ܾ4)jAvfvzT2F,ޅ\NS@@sx!:]gҍ X/G=Ȣ:\ѹ2<-B߱lf9eR:1D~zץoсm`8%fH Ojp.2"$? u_/↦^HkpUXspY=wf[#v=[lD,< p¥R96`JP騊wBkd_ )lإXkQ:[{}VW;J<}zW<ߚDi`ɷOO6|7%ycYr+bn0w%S~ ޻Z# GtҲf߻~BU_܋UV^0ҭ(D3 tJF <{o1Kɰc7]4B7XFЃLz+Dq'io&1ҊޚJT+`?p,+?[SZEkښ|1Gtv䯫!4*nd+vkc$Wn#-Ki2<_nVo:0|*E .Wz^SGYjyI=t'S .쬽//B N.VF&7Y}Qە}X jyɕ(F2QJO7 /HHva8\~0$d#G*ҩiovu}#fG03oӷ [)OC~«+xH5ȖWg л{+{!לmӃ6˛H30p@,MKsI֚PΞx6qc04 Qg~И*aE= #Tpn zmHn4"}o7"U1~<љ-E}/f ȏ`'Z߃&㢾@uuc8O:$cИv!Y! ˜Q5"ؒ& Zm Vxbт_"-ڜ6}=.fcC#f>2?-k4W8[+Es_̄`6;~iuu˹TRI#lJgtr|as|xV\w_g$̻JFG\h MYXEX:p *<[mt{ ?c6U]>.ߩ=kѸʘ&+7p@N]҇4s(lfo1cu97{pH/YM~E+%(1XtL'52rum=?r~ς/[}'y .NXK?yq0ٌh^xRKjC^6c2:WWWUH'uý" {nivD,ٙi/X𢾬$AP9K=l^fWz6'>_]yrpx:T S(cV+uqҍ=Sf!sXMcЉtW9mF&ՇM$B6]g9aA%=S!u]Ǔ(W))WֲR{7DqcC^dBbLCof>Nn'X575ܺ柕[@PRݖ|Jtt"9YObYt[E`znɈ̗4"K7uw_YD}9N?>tBG ݿJdXN}X=wnfp_G dSD?^Ci~Vy8؞||}"$F33+ н^sI0:ܕ^Ɂo*՜&q],2J)zvނxScӛ"|I*.6뗎Ah"3J2S3=yXpYeD0bݔjy?6sf!ŐbLjIX|,:zU ٹ+Yh+Rni!<;^ Z7fAO6zիW7@C[XX?lIg8Q}}sc#ۖDDC)x߼xN'=fCwd2yicH]1B<<'D̲ۢ˗7S #{*%|[*$%*f.RwrJ WwXE%J?jށ^G}POO/ljaq >ʽ\^c.9aߏ}W6/9'[9c6` TCiY8Zؐ8Qϼ =j⺬27˅)סT} la]92D=uH㶴uH"ԩ!=rYܱta:mJ̼.fEYC-FERQf?Cˠa ocNt`GT_cWDP+Ez?GN7+)(eZ?9>l߃,tC.qN`ʾ)lz0=u|Vd>{E#ʯ+#g6w w],M+ȸUk#qX8M&o5Z ?\M?@{26gfdFL/zxZf Dռs+V ~=_񿗝MNNŸRo\Yz$bofE8J]mUt2nLӏA4FY*ְiWQ3ڙheɱ'Ů\Fż9J_`.bPS: pS/3Y;Z:a,چPnE#j?TBn"|iSZ|G3͖}S.S2b tT^hjz̒ǢGƺms_kjF h.&$D(K֨~To%yv{OMև::y0[SY{/<NnmU.4,L@oj&V|sTUx8-["Z#.1X:WG"z K݀TT hÕ)'XHv1ٹ~Xlae~硭-Ca,*}TpBޛ7[# S΍ = q[UEKޡ ֡m +S&a@'.t2ЦUcIGM:w#ޝ@:ڱ<鲋h̬,ѹbhs`5r*qQ r*ŠK 1Ykv:v"js?nԊH?-Q]byOECZ.+޽FEE2#Ԙ}B9.mT܅ g+d<IV?Bwl}..!$˶E=NNU~DYoO-(P|X/ߴՃtx, +Vm"() gXB]/qv$^J@U#1=vBAa!`/f h]Zo-Y{ō>}=RIG< E#g,P=tYpV#F3R~1Ѥa7RoRCWh:sF.xȓ7:Yz"Qs zLΎ+ъ?mV;.ռ9-u@鹭HYbx1MUeE 0~ ix~U %3WE)"HSG=H4]h۪ 'ڎv rY'C21CKKXs㲪aE.5wDr_IϽ[V'3jPkK  &aG'Jx>[g('4aMS(Ch&m " OA2J$s twRL"h1AD߈`0m6+Pe@ tx1UShS8+wk17Ṗ֧jClhΎ]szROW_I_SBby. ~i gn|l6Rx|FD~\±N~Py RͻS*U|G G{blIayR6,c&#"M>я : m"Y}5e wE`c)cA/YOEpD;;?҂`^ G0kf{ƍQD='T!4 -ܩ,(C$cRA@'ożEHe Kqh<L56nk};/$J]EJqjOȾ&޵TfzekH n՘-yb3ŕ6{`4YtIO D1d~AYp\~ob7}duLCfD*1v+Y28mxylOq4"|9BeI ojW2||#|ny$3q^a"y5J9/G$hMwFJ& ?\nA^ hOpEn#E8"EaeBY1NYbC!%lY~1LIx2 C y"FD=e+B)!m(c /wsOrepLN35SΊh#%ptt)-*;&-3\:nVFף%om!(z1ev}ֆH1n=QڏTB~Sm`>KG:.DxJ_!_3Z~Q;\Vy,r8_oC_+15:",d@+ ԧ^hEAMrQ}Q/_f&T_:;B}Ul$ TF~A6i79B(]QI 0U(O/ zzjխr*ծ@@".6. n{$e'pM OLzVQ&ťYz!cV ˾0#/ )z16~|e"u)?Ä 1z,G{` 8\˾?ZX ` 4]3]Y#&B;z UﺂWvեs_>_4<ԺҒ𾍉/0]Uj4=6&CA OZgl)Z$kbY[Q-/^G/cI]&c wI,Ya^( lMҨF'b凌sU'> +**Ηn} lL0+ֽ!UyA322!T[Є@ý"x|zlaZZ,d*0jU Ld`!kY`3I:OzR1~t{gȈ-!WZ<\KnIE=ֿͤ8}yۻ䴲_𙅀a[sH{6cnio} Qٶ@}=8v~v*7?N9EvepWIX҂;7hy#Iyf pY)J1cM̿uTl;)ĞA'*mЄi+K*89"GhίFM#;*i7!KZzAa֦VnN]nPԱQ$4j^۔\mN\YD`ARLd>܌`**Ѻf}рaԮt^9tLX]HmTiI#{k.]pyQ>_6ǰ* 7  k(Ii >m1U`)/1xi}A8SSMW'f–W?ei=yhTCuDd͙5} r`t7^xVa]R3 <) ]yb^g >k&AtF=nA[Z$>yD/4Ýc܉^IMNOϫץ{5ػG%C4ܨb< < ~*#ދ<&v7}H'O.p]_Oͻ%{vq:kՎtYr,[h ;^82;vHsRTPl~j5lhxg},:CzpK+Sʡ.l|J?;[~.oyP2>k#uVD Ϝgk+x  4 4Xt4!;J3uTs \5d2k&}\|wmmpb+jM˖m[̤.B}ؐfN" @Ӌ :i֘#OIM<s< ǧ&IJ؝y;aݷ2>*!ۂ:;Z$ tY&XZ7pl}(Xc/;@N1['**TM+*jؗ4-] 8 z+?-v,v/,<+j!5ӎ7.dB*De|dŠ.)mB4lfU ůk41ܓN" >EӨ0 ˀV^ $/WoeVGF cn\{ARkpʢ;O*}cXT{cэԮ1'يok~"7$8KR|;~8URYg 1k0:UdmYo"W pj5M@:< y D +,f jGZY*P_EszO:b>x%]:K_~>,_)=> @HDs4ŭ-S5.@%NmX?Ehy_V<{ӝG6 {@=`ȳ0>z /=c@beu[[S}_zo՝"`;) =0/HAlz9m|P?ݱG"ӇYm+ZIftƒT[aUp`7 pjv^e9Yhx\mJo7qzk<_Ĭ><4S GveE!Rӳ&߻_O:hp2@Fշ]I{ʋQI|_GB"i.i4w?Y9V|4w' ¡{pOMBqH.ɻ T &R=_ĺX(%L(Jopmݾ7qXFtRO+ƺ_^qJ; "\}X` +Bh AYmdy(ʼR_>|F9tK"Z+>AR;,4ca)cABgFH$9M` v֣uX-*[G9'`3?@t;f=R/}N|ͳf6'=AK6%FnSay /G)TvUo1T[hjR'^I*Z4mv;5aipS}ԗ"$a^H0"v-G;I޲wq5ѿ06F:ȠZ8_V*QVXT%9&R+ EFCiC[sX/*;hYy臎Ͼ# L"Hch-_J " TqFK*Ju!)+G**`u/M؈A_<[4|#.RIP~>ԯ*m*>Od|>h̵A$8U,79Z7ᡖpl)(BC7qXeKJLMmkjunwxN50cUfBFVfi:UYKyKeSo|P(Y/gW}IO! /D?8HtbGdE~t۞iLjv9(-.6w"+xA":d]lG(T$(.AGaivKl⟷7zniNI0uGB!' ?V+Jg, 貅ʹ#@餭f*3HL1Vh@&tX^/UPW5_\}T$y=\T_L'ş5Ff$&Ǽp 02N L@1`{{){L.dYG k#w|(T؁zVAd$'Gǿ[ !Cm?'^PP+L-66k`kzPMX*-'ږҫf;CӒ|xxov-VC&w]0q=IvSBZ9HݱE Cۨ)\XoEgǍrAof(г*̾Pxmڌ[VVM~#E%ߡl+CxˋI)ޮY , H^o J/s,H;v;P6BnmLem%h ]|xIOG^,743>8{s&{:sLsbIұ2oŒtC%LV gb6eÏwwkS(/ U컁xo†gg˳Jl>Cvkv̶3V9\PoqVr:3̙UUEЭm`s}PE"qg_z܃ ~`6%DׂVyG .׆ 9ɹ QQPѕvÎ/YY}]fxﶄE/1sJi1iZPl;n%Ad3Q4PwN ]ȶjS*_ޏ~YH!zoQ _ܜT<#dI2_/D _LL~&hQN8%ZhUuNct%kc>1nE[hqHny߅ }Dtկ~*d8;G$8ٕ:-] .*$q(&CD]NYlVۻI]9xp[vLvP7]ײ߃z+oE\ \:4tu(sO<_Q̋gБA/M=RsVnb_V%Hkc3d<:Kðxmۚ00=2lx^_fXVu22B ȗՀ7яExPD1ysYS?%ڛ!Iwq!y&lm>*LT[gol{rț]>2 GK ٬}gq1D^;J_MbM 0c7YK|ԐM}S<@dCXiLUh|&KML_\pN9k`c3COmB1/x`噯ٛ/NP-˷p}]o[zp4LLlIQcm ş,la0&Ŏ$vDP`ʁ4ZWm4l2^pcLTM. 4uR>,psG&_xFǑ.gH5=9"ɝ]lTE'C^ x׽-cƩXS^VV`H,hjzjNpθ߳z"Gi n!P㫽2~55gsy* "|]UVy{A=;Vcﭣl8U8"ΟyG8$Qc~']29ܝ%su P e$beD KRIbt,mǒ)󝃋yQ?Уvraaڪu|=6^n5d7ng7Zu~|gcdxuep54}i90 h-4OejZ1SZ:0ھ!33W9Z- E~*cJxQk`0MRDeRh{\'2 5C]T.bsΨ]eyҀ^@IX\MLySy5<>]Y ~n+M6gQ'gzMHTJ5ӾG>mdonn( ۘ |$z"SHP4'GXmJ eģ!YISRC:[2Y* U*$䪎R9FhY{<1֮)ǭx=tUA (/Z1+|!*4#bHr*'+}`2f1 E|g1 Y$Z"1G0^ .@e;25pa̹F'{"i޾u Wvals)8ѬtG5b?5dTU7tLsci)>\/eKٕ#>g͌;BoO#޵ CxI-ZGSvƨWP x_rvrܴ#(`,]fTh 9L^Nϖ6:h~;aflݼ3я?PK{G1-Fd7 _ nuvola/64x64/apps/flashkard.pngUT |eA?PQux %Vy\SWC$,B<+B Z SUD U $( 0R&*TbE1X@\BT|E4ipMA7֧?:Zએ|7'Ut,~c8r=ucBp4)7Bo=^ [~2xaQV㢩3qzHo^ 84@β}W<;B;ͭ%dhFυ}j3=>10˝Bpq mI3x + e,:V+Z}_Avp UjSUwѣSj8mG%py'.>N]v 7fưϞi@S,yHaa9RPvoT:Ik{dRG!?5BX~oLύˇQA't"e߲S^SUS7sLf&3\B(K'qOgTdD3Vked|^<-7N$O" Gӷy$y *5;~ Z`8@u>%5Samk4(${Aͭ8"8jF6 "Xza߱z=݅%q"}ub4)~,:Q 񳪳d}/w;>Y$\_,xsRL@̱ G#*px3[-gvA|rA&| ^!4CL֨aĭOU]ൈpBip6C pXZ։"DCʿ\51O/eT1aCɳAں}o~Cc}!hV#;Z`?`W . ?zƽp)C>D3q6M~6=aۤ\nW3u4H7)} k Ǯse7*r~Ab7TN't ڳM(nL@(T)]ٵØ, G5M"v1r/ij"˃34ps)J?Z*.N&[=@z ' I-ō^Je=5@h& =i*^Ft[g8ob ^fYrlLn`ۖY|ɭ~b #˚N\íp[wnxV졪I0fKFڐnr%ſ]P2!(9NwݩF p+LJR✹ƒ!<ߡ@U-}u j-zeRFU;>rكFimv`՟+Cmv|R]}rÕrm4-z?N$Md'-['Ap~3u~rjxȉ8\h뜘Xc-i K|&ئ.nncsG =y\=,هQ]ĝ8/l""Ydk eR4m  m8Kڅ;ݧQQLuky 3\+CRXhB-P&'Ma.\s%o@2 ,AׁDjcm\n 5j{94,51_2)VX/\j3pc|ER~tR {rV#WSWJq KliXYD i~!Qxhɓ˒Ʈ`vد8AM>YQ]m۸8r3𐅥,ݼp3.3Fiyg}%;xg=uƈ`IܥLi7C{k+a*wtDT=%# :l~*;to ZfBiX ]B?|BIg2.v(obu=h9Oa_:`2P7}&1CP?ڿ1?#v_"LHK]'6)qCbl¡͉0oךfD85ХAHi@1?T@jYfN3x 0bzg#1)`GbUM6E?|Jq$E V.҉5лW!L#O=MƒZPXɁGk+F>UnC'{qRc{q}@a'KqCv)VԁD3Ru$ow3Q$v*N-5WƩyY`,ȺN՚Vw.NrSB:nZu?%dN9))p+ jt N)U{!! Y؟fͭlz uk[G@_PZZ&:HwBۖIPQ]L!dUPc:j[%wE]:e(b8cKB <Б"Y#䝯#_`F(#YGBY@p)RSS)_5>WlKJ"̯(1N8,;VN݈r M}'|tFؿJMOo>,C F]PJVǫko; {p&ƛ̘`w5GqxxЊ<۪P(Z'sg;WP2C'WrU&E%^Tĝs B5=v\}v> R6K!E_ĐrIm(b(.=|oA1pqx+4 Ų&_BaAqazh#HQtOn%mBy=E|Q<-LFƱ~B7frh e^((3j8jIFr.MeԼY19s$k㾔=wEM]wͻ~G'ET]!u]Fwpɮ5}@0w{w-E4l~SN~YWc"yrB/r4(55-MLUJ8n@]^gĨ8PVT$2'$ xsJ36bgG(&diR¿$WWpU"ˣ ŗa `?Fr_^v#tuΕ'OʥB X׬(k#-BuGDY|ǏQ PpC#>h,įFllz[46?+UGU Լ%Dy(˽nh-xRB0BNCol;, t+'+ cnq+%9|0~\Λ'酥0^tU" }9ep]=/QRөY1q5-iP# jh!!%#Ȫ k3r$ڵZ݆1PTX.jy^XaD_R٫ {e?L}jwϓJӋ::L&}в _on9F״ OveKżٕu3; (!X;B3h?Z7 /n$}$d*ph}jN-,m3OAT1uYsd:D?loHԕ52ĞwNvK Gw3c˄73>12:KlBQ xhbVȸEs5x'w;f*ȧoFBtvMFJr=.Yc '^%?jc!VqP}|v/D'EGg(fGᴉ} ~=DI~zV(6>!G `9NƠ'c@+4h}=˧qʪ>&Ftak$ME ˉj06ԑE)VG&djbhDU xz47)Mp8)jR|L.Sű4)?.%o|ԣ0CEF~}r휷%?=܄LDycC&vؑj>_)rֲ3'W?eΙM]E+Lxr+tFkh& 4[ۿ--9C_=t&_)y\ig1+,a /N0KENfR015T5I jє}n~ n2&=^[e&IT`_^hzZE:̭ރA_'uEf%f8o}z 8X0{_K?):=Y3weڊM5-1hK"g@l%܍/[WܯM{,9x0^'M0sT+Nbǩ̎\?JvrZWQGwY=` /nZтrZMo&GaA%uۡbZs >\֤&ʕq&Lh23ht,}j'C>sDkZ̈́BbkAu!0!JjaǛ_嵪 A Z0`+Eoqk]칅]fOLAA;%*NJSBY. ~wvØn]!:],f춱: ?*&8_&!Zcl27^tMz$辧S[(THG>.vJ₠x#=5 -*C ENriqcqZHvc…͌s f@rB Sb=_+ЊjϹH驐Lzhfr-Cd\f 8GP'呑EuAGܵ0BO0pj"&{٫Ly yܬ0zW8,azt+-:IP_5i5;ݝ@1>ֿ4m¢hľ&vsH 7ݬ}P|hb>/7zs֕FfB{U^ \="! "$9hEBƍ_D|WYt.9<q8Gv#R%qr_u<4sv φBJ1hqc3JDžNG"oNu={q! w eqm$V8d^ڷIТA߹$j' #:\ifmϜ2m"LxTc.m `6op̃Ǹ? hI|AˍZ d$ۡKR0&mGdvNw8hQ]eMx=|*NkaՁ3PC=R)e^Ywͭn 6}}9Kkp%ߧv.ERZ-|}RZRM\@C b򾇯Xl;؝Hr4(Q@n\u_*ITPAxkF'{>q;g;_oSOl9нt݄EqXE*xVUСg!O > WRk-p׃`p~bzFBYg?г,,FL]xA6Nc3NOF05)S>2ѐ*s{Z 9V9+EsFw8@{, z8+9 ιY(]5Y'@n0f.q .lĪ\2',(5kCld3[C%.@_H؟ᎫY;oGuZ, qZO#ˢ[V[ýHl$`{Fzk(Bѹ$$XFϜIRSM)`',B eϮӑSwH mr0%ϐ6*wtV% 4ߜy--=iviרּnᇻU6 ZPЂR9NmiRFt[-,۝U@2r9搧n %O(Fr~Q٘Mz?e`3舙EgyP!iNUv{yw|"G|`Lb\ 4J 4垎==c,ϝJی5:ŎS~)=ۓw(L[ fQ#OP`Lk[ظn0(HQF,|՘ړf8}|G!6zstܲREOgN^I&FH@*9 hu"A,bv߸7<1V }~w2k4EDDs#-ꨬUS!pݴD T/ y=Bg' AڠJD_Ut:"'far[AVm\D.Y^#PKG1m]?nuvola/64x64/apps/gaim.pngUT |eA=PQux YW~Bxi *()L@ 6T\BgFOB4T%+J.H)UE(B$/朙{9sg{g{gQ2Wf=B-u+6أ/|_On='*䙀58*0oBܺuolWO T#@p] Cd{⢆4mM F@` B`5=< ٧u&鯺bk Uwo// _xraUnt,oyAvqQUE@c=FB\4;jE,$1tN\65E;J@Pmo@n/ c% {XF%*__|_B`VlqcD>#".^k\!JS56 q8H@ q$1( eʋTjLa)وQCsOOHc%20N|\-;5ʨKel 4P uQtՙTt.+_p((s++YGпS\WMwSv ԟFHLrdḟÛe=gc_z!ZbG}P0R[+0u&cǕ~z < Y: 8 󚔚X<7eߍeB#ĞΜVLxFTuX/^j)٣ q>~d4f&cqIb_ߤ Ie2*dr#\ūԭ'1~Fy,xիo.oވUu߿_Ư4FgGA=L^_j[WkS)˜ފ pM)1"B>}痓㊨Ml "Igjay8)P߹5JXe&`j$`XaJ9 N-{ݍfo27^ bn96 Fd >ai_R=lR'N4BE' Lx fG*cfM*; A0<(a؊R>}AMHDq^'I9#t.EΘoL,wu3c zaE@*_pFK ` 맖m"Ɛ=.epV bOޕks`X6^k_> Q"HQEmgh6^ h^Pwmɑ~"pW1=o`VINut;^<͆H{^7k˄ȷ#8>Y` O8wtժRI}8 {Cʦc $6&e (tȳ9+jnv/x«T1}8ʫƃ:PLF6lB6U€}+v3oޚU-귴!oo 1Kl2ԑԴsd |U_6唬ˑnɉ2_ȝ{'I/\ILFcI΢}}_c7sB S tEC1ӡV\o.\! 6W*jb>>HX_fpr``y&q;qUqb`,M;qZE63xi@.\4Y G.X^9]ZpOӣOl<|d#FgW#Vڶ gn,0},b1HRk,:3ۇ$z"Ơ{9%Vt &n1׵Ti͝JlMtجQO*2}?Z ڤv{Xr}m8se?əaY]7{wSj13l!5wRWg1HNLݎ9 05[`~΅ %{Xd][vf+Sl9іZ+SF|J 2urt=reYYVFpp'R\֤q}nFd۲p sr2oUV"|MdP*x37 k=a]eٌԚ<}XqdP+bh}oVBSN\~]z4}1$GIH,gCiϋ @~.!9҅wßwZѣT!խPVC(#߭J҈p"=w-Hѭ>,E8^j #_octKi3 vi׀b:N(w shhqEHGޅ%)R±/Y _$YYR|ÇfKza1[dSjW902`b.2C"`݅'Vi |,LO܄^j' H1UJߑ:;}|ųFFEOykٷJb$6j ܧ_=Ta Tb'L0ڏxrx;H}W B滣}yc2L,S)l(9בorѴ`MȢjjn-K +Zj D|k;b|-eۚaFq4TQ4lv kJ@"[!2,c^AKt⚳iDžpޭ?q?Ⱦӂ\kK3)#%s;9}=*T/lq}Q(ҙXZ GMʑN% $' .z2g-KK&EH]Ϫ4dŬ.J[o",d갇B;#d]CF|]خ͡gՖxB}+ IW`*w3y[ VaOs/sH8ވA 7]q0Vͧ(ޫ0"6!li$#"IN!r0D9H} ='M&YQo[`d*8Mtz!k$FPkX>qq 62l3z8fřoNuFOt!%K:XY Q:M*FTqg6-aXBس4K2gC*q\NJA#fy@Jsء3u=ԳQPkl=~]]|n^]oӀm&Q4Lx(X=ZlFk&*U9&wG1YL.Gr@g5D`މv nN#@@:6}H~[vX̖S1|bG߶// L= ao τ~FC$44P(8:7UushdW1o/CIn("wf e|0-s"X䘨5 ɞ$(T9 xXwZ+9+Ţѵ8k_789-d3ķ/fxj_'Y4A§V|Z#cP4=uO[辧P/LW99tn 2/nw*7LNā'6`8HjJ9TQ`%i@%/3Suk6jv~NޤwBT^&z,úis+B90xFBlC C)4xkQCyXt߃ 7н׭yl&GUzIȜ<࠾=?~lTݿɓ~<mFJڸQjUB$!Ӵܑ'8I|] VηsY^́/\.qShV2͏k9QQA*s),}1/6U@e6~u)et` ׯv2X]j*hQ ;RͶx 6hɇDfng&~~NdH )cmOf遼)@Cm=YBTXH,)QKntgV 2^ѻ-dp49!lFt՟ : Hydɩɜ3W9m K"scX5O2$3}9Vtɮ;9OB4l>ZfwTƱI$8=(H?\T6QmgdQh~)v҂+\TNe/} /7׈P_n;aޮQ*ȍ!B$䒊(b^Bs&Tu_m5X}"8$8vlJ͕@/l+GQ5ȴ+Gz )I~S+Ys o=ٚ~ qBǡ(I:S=qUHl7{/8|YmfUɤA[[/`wNE(57Pק~_oV]tYr3\P_^Z\‹-D:밻f@`jbH L!I6ǍlbcQ6;5ZTJ\WPuR+\p, IHn.o0]GPԜu5~<=y3lM~!ů*v-&ږ7-uuu55oq-4Cʬ ||nJ*"A"9tN.'3ݾuw,R͘W1 'g:~ڼxQ4 +d%l&&I/((=L4Z7# [UC 4 хЫ}}AWd /րPA QOaZ6xf$' A(L{SBɖnJp׼o6AndcƻI(ZeR"#h}//JT(HcI"i1<}Ir댷G?w?3m^ɼ%uVs7>acy y9j9=}v>ЧRS1: Ԇ0f&qͼP4#z l! IT@Zs"ԓJU_"gvN=DrRW ?ӱso4c`!@&F=Wt2Dg1z=N_A!fVs20Y,=`8QM_CE/Տޗ^Jy)HR LDa'0 ,^Qc` TGC kS7AwxB ٠Pۨ*rjqORo\VT<$*̫*uAгHFbkg;NiyX .sb#v|iAҹGRuw8& x6:"A_ eynX_f,ƍ<$6X2|pLFNKၺ v #7q|5{U>;΄uNc}/Kd갴o3bO0j LL26lj,E܉gÕJGױV"KH"r٭-Rݬ޵JG(XbϮ|I7T Ax߂!=[gݴݘJۜƣW՘a6?6ZDxfDo_֗:$H]ey":Da>Kp[U"q+Q{]";?MC=[:ZDBU">nls|!)PPUjS籽$"azUMsT'0rKPbqHHT޹ `doX [G mMC* qC&0U6xLퟜ}3_,''.?."|3&2 䣿 y]()sɂk1ീRQu p^NQ\ ;@f d^9Xcn: Q;"5Wqi~gFMܶz|Ih[FehS` Ig/._.HN>g'5bv!G6N8_w2}@/S𝒲2{q(XkNyE5ڦ+Յ.f|Ԛ5f< {x~Bt=Nإl:?UrBkb۴B'(F  O1FM':ޞrzWz*W#F77 4cqT9p\,}nmVTiBQ]'a. ܦ" `)Pf}'ET0&Q S*Gdq**NH B1;tC~`\|{tXqE`fx +T>:`fƪUbY,f~NV8:`ZlR_u[8H[X34_W7]6LjU-B֥kkJY`sR]?} 2Ks^85T- 2xht-aĪp߶MTm?=3[p&+NM^QCeTЫvq1#ct"u?~K6bwJWj=4+* yԟ+m{zm^ᏺ[hk$iޜ=%3Y lCh[}R~U,\CE ۡ*u AjOt:B#찑2oHn,57@=>6`_R;%H[ :!n>t0N hwu,:<E~m-DŽ\\/}ZuPCF- 讳KIu4\v&c.'ͤ#̓9Jν[\s;fbrd5V^ 2-'_@{'j9lH\P̓`c_Ƃɛ_"{79$]j4q. 5'^VM-D.:ڄR|& ϛ Acr> )s+JW cO|m7^S[f(4coCJ"8tplޱ9@0g:3V6%5.]cA7 FLⲸ+A#uCG`K u>YEt]L1f%?*M :w77f0_:m]0Z߯vyÜbl*m e[3dEBL P)C|Es礀gB- n,]NO ZV0cG C*sG'0 ͥ=/Ԉ)W,>LPN*7Әc^ lGV;g3cK1p@8q$Sa7tzK}J 0gܸsڮe{}]{9Ok"|s~Dk~N-]4|hΓeg2_O􂒞`ET{-mc7.?]is|]l{ck6X"=k܅Vdl]#'yZ9KU >D2ɷ.EM?%u '[Q"88r_!cKO=jq\f9PHNߴ$+zѐJPi7shdYX:,~gSZtG}V~^1mo\?tL:32 ׍G)pm 7 VZz}׮8_UJ~@,Ew}8,…9|n Uڪf5x bS/pnן\{a[s-`?׺dChwlNN/IIm =lTᛵ"oȯquVTV [;:<.r}1SEά౅DߍфYA>KDQO8 {u`sLlu%푓}5>&)FHE9X0,ڜVĝLu9} TH+עV Mg)E m"jBq3a"hx0긐;{{AsP6nk1֖A,_ ^T \bXKV 6&'cX\9r5I;SFFg:ʟ]29B n# ɿHW!Q#6TuYHYxY͖7 lk~ JEu[rdTr[3zZXcsJaב!1Ylc*r b&E;`B(Rq0H ufVtsSU&Lk $**ծ|9X޸ni(qQ7k k+ bT_Oھ'X:,]oZX|lΒ]fxō yb{~YiJa⩹{oh4F,h@j\e/xel@[lW7=t1:l4?0.yVx?/?ӽјQhtu<:x/HG"wPPuґe@KZ3҅ Dj^X}A,+TN9C2hڡ@H,\Hk$,o#,]V+4^}HUpf@;'~tv30Pz xu6_462;=VWL벹N k-W^8T0cHeCHw3J|~Бwl+qЋ,UX )R+ɑZ7m|TDf=Z0DqY tq#!XujFqR8f9waZFL>k ▅ާȍ+{&i*kMD6&\X/@=jO7DpY^xgt?9+!%|ϸXIcޥFUʁMHM&RNNsI_փ3=3SbWcT:U,P{Sv#},62$#K`\MfF pviJ9ٺr?kUj<h|u<%.˻DA(')h2{O0D,%g2Yw |<޾!riBݡP]ao/ԧگ**04pEͳ݀di@es@< t\̻v| EIYSbfwE=&!´$;ΫBMcBUeF)0uI߂'dS/BAoOa/.(=ԉ|`5߶>槇DF_ <\0_?|xkcw 4EgXˏj[TAr9eԥvIY-F%vdJ gt$X bMm ~w7%"^4B/k<\V-(FPʎ]>G >&i5܍]M3ZWP2P!iǿ؍sn|(i^2zf~n`>-6v)J Q) 4$Oeh|Lc%"wt&7]_{M6L=Y5};-" ȫa1nuw 'ť{B <(>x%s*hܔ-Aw ;h8IIڹZiQHgT#<]PHWFE}(T%Ӄ}V`v:x¡<[aEe/u$1r̸"\^Q9QC|GT4؞3m- =7OY6<禷ESHo\y(LO%UatPp^9`!.f!OMqJyĤlȓ)0. |%C (~$dY*U Eо,zL~377?^c훼d? =wcd=^mJs'Uo%{1&xvBYNwd8Ǎ'3o~0Ș|PI }kx*S\JM*o͡OdRvĪhP:3- `+"m>GQk2{!!pp?)J}Ӣ0Ui,CVW踕x6(k*- `=1xqIlpt(2߫,9W*1;&o=G8ݷ6!,[SޗBՔ6d|Dg "v&5 tS`isSI+JཕO͂3]-Cڱ*|EtbT :, [Z.wZFr@3[ͼCO~zxu cc}ߩma_ Zjj=y`xAz3GFW#F{mgi=wՔ)\ˮ1J(qS8S[뎻!j5;1eBPG { rGEnOh23RHWc.벝zQ̵!oxr=E!mLfOjj2e zh/\9C.5 7Ndr+ qB.X^JuzB\VyP( w/?8,ޟjBm#m ޘ6H[+]0&Q+-'SpPivg_heAһ&OIٵ"➗B[$t7Rjcӊ~;;znb{;UCs.[pl݀BF*|o=P-كV*ti4It pf1W`y' ݍI[#^]4Q h2eZS:ɔ|R9sLP!^+L-< R"ٙ;X-ڨ3Rx_(+ V8ǵOjĘ :p3 أ,? ??r*\9 ;H/&JfZZу6F1YF;JJJ "KSLkS `h׾ƱV~O 5CXPʖ8[NmxkrقӯQ?MMTޤu=vm^AY `6u3@  5*eŽa6"N} ʌ.aKK)ӷ_kgY^{N%ʜzXmN1ԵO^/ܙ۵[qY[MVt].3{,9c\R:OlEǠ:/@_zIAՃUUR V}F&ί/vΝ)/;ib ۙrY>q޽eNF͋,V}|r#'6iyCRҢR; c,uwF22 R 3|ުᙚ('U5֖im C$_2"1M8clSrLzP[كdqhn-]DyB3;} G<^&y :Y mhoH=0Ӓ4z f$]:#@!dѤW)w@x4RRH+z`)BH4L'ʬک/Gh'rC+=7r5VKO,BT0Spb8.K`Z8"C]< -9y[+^,U0I*^(i VBYooLlT>>4# Gg7{`W=^,Lp!ȟ\6Ot]t|ANTk .)im~W>&z.!i<^5?6)6\eV⃴u;m|ݖ$χ\(N-ؒ &*QmMvX.d 2u^1dC'iSM0{۶w0^ߑ X# p~<*+D Y\3˾ m16xH ^f Rt[IC!+؏\ugb 4\%C,V uwG&|O"Xxte$VԊ\[E&Ye.@AɃo7߭Mྗ))bNfН6R6rћ; `\S_Noː#<(EAPA]ޡx=AmeqH)Pu);IN"Ji Ǜ09 .xI좰+vŏ9NO_ K_1(!W_'[.:T5H%YTvp\@^)HMl"wqx8 r !4ZmE(\ioH,0;y r=CMw(oI%'\bO="~ʏnN"  0z񠵵/EמEk0j\6/6 &ss5xcr%zs^3CMxy+֕ۅI<+{CP)E`wE +i'-%bkY6ym#YIHJjj0yQ5uG(J}C` s®7`-e3oi)=vq9 iunភ T2<_oj4 >6; J_:k)8 I~G^fZfy)9<G|`_<Ҫ.Iu5('TkG N&N(傘[G8G8u.|Т#v>j6w9[O/3l)r+Bđ<2mCB[&Ю |f2@yc][؞Wwz3E#4]U."p1.CI7}zJ\${oGģ!G >> 6#BJ9o85vB sD 0#69k ?t緣D5dX`fm oSSK4s)5,< Q+~Ix47'D ˎ{` +GgQS%[ KcH&`zʌ41Pt%5\ ĥ"׻ʑ!=+<1L<\?K`DF `Y^6}Gl enzs`(cվ/&27^:v y;Jfۚu5<\k l+B~I'ƒJվc'LI-ܗY-]9>fV$T5)Kbh>n>3uLDCi?*N+XgRJIW8*Nv댜d=5lqavmxg4%d\阮 "m\L| |9zL/ݵ8y;-E7!RO9wڨ\HI+.)XH VA'Ɏ*'ݱ$ٍ1.v<ɛ^ c=j[rE析?qR4 l*O.I 2`Be*԰$>.Z/Y|%^jZi$l<;=C&Ra#pgb6ʄ/Yf:lD#4_Nۅ}AYlТ :ܵ3DŽGE[X,dh;;Ԏ9^{I<;O>SDdX_j1S_Jʝ '~I\ggT`ڿ 0g-1Tԍk2ꗼؾ.K4r\\A9Ft6w3:A8 (r.8 kHr*@1O5%RI+*Ja=Cru]P,owy^ULg]+~R ;7"jGF7֩C>ߵ,eƑFQvGtl|XkJgɽ3 ǩmR`ODr};=m|.lmcN3LJxO_=&HqMB&qZr i*d 6N>>BP tȴ=qƘG3l;wv ёۧ IXbÂsnMeGuMz$`m{S;`B4aH懗[W (pS_iԫƖ[m; ?qwl #O൨׶O1CC|ns;@ahSo196MEhKٜ?_jhuఆz>6ygYU'5sy{NW{pZv սyWVGy)Ö:Uغŀe㗒%kbK;ȩ=[9ٳy$-zGM Z]t5dN{`3>xfk//k쑭\iscLV$ CGPS[iRVkэ1H{#`Ϟ:_vj44pT&Z9(((ޜj=ߥvcy$\̰Yb}jo0%:Mա(=M]-L a6ZQ8d~+Xf̽cj#m-N[U )^x(R+-8ͅ?.c욫~9NΌg7ۄy)j1 4ek ՞w1f8b{FjgM(x7_/dp΁RڊʵwUj-)s@s PKt91Ukxnuvola/64x64/apps/gimp2.pngUT gUA=PQux 5X 4|g_ |D[%JؽƌZBedy%Tb-EdmAhe,c~=ss}>7+)h+mLt$o/(mP|6gL6GvF&$8džF=DE OopUk7gߤKR)UP RPV @dO؋6%kiHڛm̓b K񉸄/(J_=18HHs2mv9kTeKIYB=u$I*T듧!Cu:1:Y kmt0.$t޿OHc;D>v ޮO GO2+K!߈Wjq^ w8FgGͻr}h1x w$$۲,͚$/73W[!եۊ>*ږD 5IJe0dR8}YWd}acKm3ckݔ/Ũ9ccGZ]^ٸf- ⷢj'#{P7*ֲi1j~k T֛ӡ9VВ9^ȳ/\1?C9NApp8AZYu?#nlJ8`\K&}BD`}eA ;ph9>9DIe䰂WT!2`ܼ4@BH5) W${(i&VP(dc?I x Ƿq*D>ހק;%OSpEU36`uHj(+ie6S碟4஼]G>~嘅72 yppQ&&1֭ceqbEظ0إ)V&|'Z@ 4?ѽas آ$X"פfb9-p`Hka8x|کqlȠ6| Ax7f.9]M~ > $> %R u9;nAN-nw%6:Fm=!=•3s;c8J \s@tW ɂS],X)R`F~~~_*n#i)YrS.:Mf#L:%ve{yX{m٧D1)Bzh?RJMW+Trݤ?a8Lğt~%1nG8/07 YkTEQbpYhEDq6) Dzo᥎+[1Hoҗt<gz\yA#VpBMcӕ32تAfM\!+ lVAKkNm} +0EbU᪂ )|YY_ojhu^-=DeEOQw>-Zy9 D` -'>7d f(jBPZ 0>\2_:@Bx Ry<(Ⱥf8MK2CӍu|-w8al^.J͕3E% cە{QRb|2NIͬȉ7x\fJŀ;RP:I?+xwIʹ~&&I6Tǹh-B1 g(a\UaP ]ӽLH_8/bpjPgw0Ɠ.#teKSnl"Gf]EY@\ WTUTÊ(u(mNK 8Ad ?!@L=mw83p;tݗػL5a6^ًĸFx"qzgo}`7/0tN[qomwjl2tI; 6T q(d!!~!gjgRܶFÃ#|C 7&\C9:up,/Ywۓ\ _ ~7 :D9#Q}L?B7@4Fu߯th'Մ*B:nW縙 ozҭ]6|%?=4)(=Y;bm~?^0؟yU>R?ѨO~.-=XBgz tWͻ-/%/8fuG/*{jQk+QqO1b/O=t'"V)Z (z=sy+M*[ '/qQ¶l2{dA"sZĈن͒`u9ÔZnȫҩ怣6|ڈHb̋'}̙Y%_VJKTTmkS/|K.';L|>&A? I}:P1 i9ۃ7eO1c&\Yx&d W_gp_\/X7fXAюNsL?:z5LDBIWܑ2-;ea*Er#4v!P;dX\P5b;?FPqD]Qx:o}rۭ-p;RW 3w0&61K8F b0\-4o{{SS0v'haoTqoKd=r/[[|ֱ{Y'QOcZVq _%&.j͙fdNW%kk8^wO"=)Mux*`jMp g&k[R<M]{N_Ri(yL`gJ#Sn>Z@I`YBp4,+/K po=qLl/A7)ZJzz)C <#&wԐB ܺǤ(v ۄ<3Q7B=l豐[kUrJ?ٵҥI{xỴ k{%ݵ@DU"  N.ҾmҎ}f6_l:xߝaF;A92o;; >~5n3PKiG1E+_ ! nuvola/64x64/apps/gnome_apps.pngUT v|eAAPQux Yw4F" j%Fj$--P-:ig:֨}IwHKyD9>y|y.ۥZ_g,e[S]c/8\8p&Bd|&0z* ,3$ 8l[-\h^Q%2E &$A3XIBN~ci_p/aپqw+Nf}_22QZ%(q,,,mXB"Zx~W<ʳmCP;,&#%k$!B@zP}(8@ *fK{DSSp.EH!`UY3ܩ]XC$}}se@ṉY=$jY44~]@!5{0 ]u4Pe8•o2bI₪E(A<W#Z싄?ɰ>R JfA-|8BX#JՀQzp?|MpX_WS$~Zy01"(_ք2Dp JJ ӷY0FMR."TL:ArJ2&{I"F:ĺI{^g0ҿչ竖a%!>Ϧ47q RDK[rbj㉟v`ataUħ0wĀ굡B!p8eUm&Bl U_ke63G)S=K^h0nʜdݿ)GwuU"Aa*U/]<=/O{~w:-h@5ȆHB LJ/\na;ŷb2w b\0'-D[/JvvkVo7X`P_=IpNCHv9^6B1TϸLT2I ‚Ɩ!D?˂hh4&s*ÿ]:;K3j0TpINokqK£#pB}ơA;B;?A]=1NZ>4X }y¡T=X͌Hz9j *G+׼P֋B블{"kh `~)(7U ԚaB'[E1cj}#8[qn凼%V^Եh׎E)(1xEb4Pfv=% }3)5Xkj,HQzh/NP~Ō{("U~CatɹRX-kh,c)VcL@E Ñk5?J>Wx1VA@ U m'W+ W^S1)͠ɛȦ4H0.V(U@E ϦgD/eqhlB׊x%j$.z@ervbfhiZkwr7;߳-L7n j+{ ‡ 2m K2tǘ)/n8wV%96~H8?J7aZ,@Y.4jo#Z4 ƈ㫋hVݲϚF-8e Pn6俪ɢ%eK`xnA,f,#nIW֓caM4άqsq1AkD &3}PE!e xnR*sXhImoI13 m/ȵQjgʳ T,liF*x dʔsќnGWb@D*Ԫ7,БaWtT$0BE@UVAuQA`E3֢? ',=a mh'_=\\VJKW&+ 醲d#Fua u[eF-.T43 2B n61}K.| Π/ߩFźzj ܐѾc 1*4Kă`u YHrY݃;CChvy~^5?e-"Pzg)WPiѡ(g̫B ^:WooHS@$"J修g 8A-=5anޙy, &XdA8XKްJ.}r,㖖o?s[*J8"yL!ReZF=T,ȜrbO1s~M GyUWv Ѵfҥ* /7`V4jln]=l)ao2vI WpM+S&u~&,[甾E^e^RT+ J ҟh =Y@fMkb'㓨9NfJ|JSK:χ~gCCZޜGMiJNu!DV>L8a'w-Q#X/<01վ©\!ڪuޙ#}}=@1(b|Bu g9e?gF{;䝠+&1/)4BG{sqM?oh8m_nG/m@=:Ƚi9i{bsm钿PrYu)JԭmRm78ڣ{z_Py_]y97Oraql!7$96?ϴK_B~$*!]ucI\]@@(d'KBq Xg^1pu:$T')EɆeiXzFz&9-l::1uu'@Z-\ӓwϴcJ%}#tq ~^Ew/+LJhʤd4mH5T3Ah5uJ?{D"{pM44NRF= \{}n UQQ[ޑd@U52:N`Ke`"gi3s409= q=` }(yn7;u4A^侩K$ڒGc6N#R82 nkI>O%E-B|%mԍ5M4+(W#ipƊ wgo6fK*P gys)We#O{46ʜ옪G* ZECE_A2'oDZ;~LyӇ%搾Q$LoXB+紗 ,կqv lA󜗘: r 6e-hz@)捹V/dBSՇ:l;`:xGڤ1 f1TEX0a*FA$acbڡ%}ͨ2n=I}|hl#]C_$Ӫ1]u/mS.LK)SQVuqNnNws`WӪ,G4n§`hZ,c_dQG8Z׾7~f1$Y|ty6TQ`]R>r1i㪧.5R/kn~!"MWR):R5cpc8Ԏ.^>i(y31 V3eb_ {w*8^幄L{cRKqih\hipxXJֈko}Љ+MeV%Vӻu$E{2==^yφNDJօ>g[D))))"r9 1tYx7'r}?f1HPCH9-|kq%i|C&YBU9e,y<X਌q8Wjj2:f{8KJQp~ ꦜ!iV742BBڪeKO.323Ի{\YW~l Ȗ05o׾9%\>uUvq'Z6*}bӞ 9H%z _Sϐ$[Nˀ'eJڠ+4̞mYFy/Rʿ%圾ؓS% 4]K璄@,(X *o?`9ug#;2lmyÑ Ş 7հ389tt+qtb=&F_m۠^xm( Lϔf wTtȜʗ*􅟻5ܜL.j/.?(/7"qw +g4juvYz^m jQiY=Nrla&(ӟ@װݎpL;Q*^5ྉđۚD?g 8AUX럸i/  &1o{G/6gվLIe? SZ=,'@H% ~Q7^OL@O_u!SLAûy(zdd0/,qK#(Sc7PBF>32D(]G#IԘmS5Ѐ lRE?rJ2"smW2..*'|-/8q:kQߦWqx]Sh¤qd41NT To  v᱌8K:L!ծIV`f!+CkԳYJ]П lru`QeW3x{/9Y_($g,l`\[0t>xFanQva3RmɩPM}b Eeݲu~aʽ+1.oFKϦ. 8<> yHM|a?=Ñptdv'_@\#מs|1g~$g"?nmc&blu~<zXŲE'N.= E( i=~q R(g>pٯq{Nǥ4Me#9?aE}R v ^,b}z~۸h i1En̖Lz`*Cmr0FZGL.7l]ORf HF,n+~'SMX9 zW{/ٵ3#OM C{nz;Ý謇I"0ֽ[Z<] ?r^Sx9c`xerpa&ALz$SB?n2e#@9l dTb.6Ɔ06Q2 MYO%aQBp,R]˗;;3~?<]<;v+[gU/:O}cܠ%h FTW6yD W^k^E"3 nӃ H/~) k=E|ьThT܇ؙX0iz췐M{DK`!']mH~5KȯWo|?|YDj|sAwqEMܺBw mA 54 =c*"T<ߥOѿUbE|7l8KKLpnhUx1clouA*"fA%ϙVȂr0 2WOZ|R\fpYsA>]U?7:OR8 u lhg1scI”蠞bN.& XKt:Y4c>eDrXv/`7ɤcƟgnвj86! ގy5>.12,K bl&Tyw x0$:&Uǟ#YaٝW;܏u0#}`C @꘺%D&4k1R0pp_VZk O$6K-v r)7L&`E5l1jVmI$l8Pz{#L@+`AAbLOv1/,M2F+@Jy|4QI2}fUy޿_񣺐M8a U @~-I00.sc j*b) ~ 4M{nNa >wKg?F_4E{kY婭DIv )ܲ u 8wZ,x%08*3j#_M;[֢%}%tEo9ݤvJ Z*k:0J.H_W!kc/ϟ;<2%(l^Tؗr޾9uݼh^ ,hޑ|* R;,+3,ԫ2S*/.? PQ ivR=oge5uI8f 7LVxYoN/lH6OXHKFKwvzO{r{:OI,f`:Z5c[hU,(5lg;JsWn׮ھ}0d `y*04ËФ,ϜJdL?AKRM )]8^/=nӭTI8> L|Dr]L,71!_PTxF{{@vqU @v*iY78-ce"leVU15K( L-drЖ#ZmIp[U O0U6&~YX=5?y-w[V0&llm N*:׬AxfHW9zWd/ +dl6m(T#zp')joaGjQ)A.AXM>vܗ>(BcqVÐ 9v?[Z7 JDItpQ"ݪ*NWKE([0u.(h}GXW8b,CyI[tf֌[~%^s auFvi7}"rLIn=kjkySzPKt91"!nuvola/64x64/apps/gnome_apps2.pngUT gUAAPQux %W 8Tݱ"3T0%f,HhkWC$+J*KT*_%-2RabP |>wwN޾HI[ E;]+W /@]6P޲p|O7$ /ǟw_tKK?j;mܢ>HQ)pLC*IHK3YIV]yzD[ӽŘ4k_`SjE.P\=m?n=qu]ۺMʹMHC[X:;\n~vMߍ)6|ҖēJ>`L%ZE7V ;CTFMFy<ЭrUs[iŝ\#tmMA6z0l?Qg zb8 `ڷ}l714 /#(k)NA=k̦ ztެM8Ç}otu51ύa̓-vxJ^h`h ,e# PXVqIC7GD"|mo5\u^$+&&tZVWU& W}^ x|*yiPjV{ԯgMpJfL²+O='c*~=Osow rsyg6@מMzNm*3@B "g&Ǧơ#VCr'pf١w`Oב`e@0B7­M1]$󅚛:_orE mCP->Ua?FXat|՝\3rTjyt?)hu_&}N# s95dҋT$Pz_Vs2Xs-|A=ԷSq R%rL (ٔDX;>1ƻezrhbprz :\XW &F037 `GzK))pP@BkP9Ӧkmj"%+ ͎Q4xO]SZ*\ lKB ԵTKd.p;:}Πk1;w-rZP{u4b`)b^dk(D,> }HOR } 0;W53z.SK$,`Q5w|8S*}%y}_VzR"3 ke Def>i+rDU]\.n&cHؠӬ3`*ՉQ01b_U:?ܗyd .(h%J)D]U p}4ȐnwQH)_`]c8qmƐvsw@d'`h~;`wIӌY5x`l j51r6Ӎy⡙>PFG3#hZrD$LG0+=9Ǘ YI6yI܂Lr&,F0[/h뵡6ABk='\o۶=Bܱ.,1=,lXhY:1[2O[:HҰ"؃[uWi lBD^1X1zc*2<GȲuBM, 巋Ǥq`x_fm@,fv[iy{2q7 x~6,`(JjkFdJ;fOgс%JBM ~8/t)ZITv}}ԟz1y}Eopn14j :zrt3a IS*<i 7\Ua^7(ZM_ũܧ m<<(Jg5 X/_DuP 4p>.0{蘄e=㗇eғY@:a?;.u4z `XD2̳mϑ?|Q7@?s]Rо,vgAfɍW69u,%|PawjHTTuA秩5JXtxA4ToWԤD=UUm+=^r./}/>+ȶLÒԱC RR c߷r 3_/{JvVw['.4apbz}0E{|&yLb=!bsEh)nCA:߱ReCQmKϷ[nϹt4%ZFz-Avf/{9㋔W&T^&gW0{/^m d (cy{a-/R䜕ah^15A]#k?eqkRu|YYgNe YM-bq p#5L#DPIcuϳ'$1wfku @n![ѥ eD`0OMs^1jbE |`8!XIvN#s$>П"Ǎ, ;(ǛS'pq LT洹^ݖ)~‚Ou +Tyh斳DrĶ!}/Z:V&d]üe9 H)Qh(zUʥ i`=ħ2٘|[p521/ /sgᚪ5XwJ=3^L1c;}BMQCT\u/NE_| Jʽ|%R>=ijN G<<;1®srge.~+tm/q[Ka]CK20x9d%mdY@"# =zԡ`>| /AWsj{t˔di J~N{KDhx&ػ0V}ڐ_,ڭՖo UV!O4ډ Z%'O@iR#6:-0o3f/Kiҭrg(vji~t]$CAa,tGktE+ՁƖb}L*3塽BcK.]pjt۽IJtbjm>!6RǖI7sMq|I ^7=mVDh*s0,^MPG9/r*fp'V3s%_5K|pվȖzZX/zO{L|rS&b]88d>L-Dnb?. e 2lKcXWEpRZI#ey8z2m[S1} E}y$ȡv g!F~*/zR;qfmFSCK?B)`H sM ]K=YΒ%qDHU]OI.eD/lAh(e(&d,ot+~ U'I̫g8PCE K{l720*E힤>Ie{6,֢9@v; ;1g53)+SBM7 8fI LoG^| S(Tв`s݁aF_]40 .EgI*W'RDws>/kX%diu%1V2KTc ; [&ώlPKYG1(ynuvola/64x64/apps/go.pngUT Z|eA?PQux XTt D$t, B/"($DJUPb$. ч MH脒?k5kf=}gݝ4wu{X:;e듐Dr#@u o=>ϋG"/\H8s>A|η8=׽ lBuhņ*Ʒlf'K$uSE h`^>~U1ҋ)ŹwQl MG gGk˥L+Wd-,,2F_a.f/^F#/\X_Mk W9t) ;( Q<&`;? b# _Һ+dmuVS{-4A>]rpp@'Rn -㋀X>זDٚRBDEYCy1s{&Cbl t| 7Ľl}aS[5>40?\UvQ XFvB*v5ډH3g ǝc~>=U[E9FƞO--/NZ0tGūq0R_u6f;3!ISq`vl w 4tfc Ο˼zIE7"x^բj^Qe׍Yzo߼9ၚlo8yXAfAcdCI3&/W`JeJ-bycH//W<{ֿ8:g.Ȱd`0[-077z~ɡ-o߽[i A̯6_]C͡u'n{wZoU=n[E :N5kSn]f'o+ofx8KqYӁpf36|.yq;ӓX<=@|NJcHc-f@[91+ ߀Yq:<1^ H7/:i2!';&5qSJ433]:ZB&:H!Ing>?a)}ZuJ>k(MUA/ $LBrbj!j/i]L'#/D͛4 *=B70H"]q#͝e8ر$W3م߶iJ+jbBnݖh՛ߡ{\%O1n:;13wS*QLiF `I"jGWd7[E8?,e!U2فG~D C >ij#FSo&_+`lYEե'9 kB7Q+raR'0 +*1x< Fx=|'m5zD.8-<<ɬj_|]C+r;a3<mk!ҢA_lVzQF|`X/m"Y_mQ:P>%l4YeoFI"kB(ꀲ7Ӧ0#@K=7( 핎 Ƨ:L76MSgiAwh_uq^=+!Cryf.n-3~Cuۼ9U8nj F+S5VPFrvZOGrDDvh0*qWi`p#<=&4@Ym4,jL٣3ty3ٵS~5:]}5RM= vd6N;A~z#0p<U)BYBg >gBAS< B.e ]Q,J=ŰM@?`3p2HLxw) ~ŋÜ*~[qo @6bNi5&L0ۈ__vDރ}JnO QbvRztzkx*W>0G!/YMK$1g~{ $=[m=P\ | gI((~hҌ @W]=OV͂ )"dYPlKQ7UHwu_izo'`]ΧO˴{\M5WϱY{8*@{eq~mTs&o@.JD#+a~-4\ lMjI<_jW94GyڼDJDA R 39(u7)6 KLLM?yf0)O/pNSZ;YWi7`dD@$BQPsA ֖6OF6bHy]IML=wA}|BC4n!fR737f*3P_`ߪjjGe;϶⥴Ahe܋ͨ]ؘg_@1Bѐeb\cK3YG8]z?fS?js?mlw& zwdۧbv`\%9I{`UUQA 9 _qvII@@@@= i77IE $O>ck1=鎇y4Cݠ ]lU)=,AIwb*Л=4;i`ܿ2_iN-X o6+N1 pgggj[/s`"Z=D[^PT>3skCn |T9H'39hN[V+vM!{}DOW-Zʑ-W,bE⺋,˝b~;9.#YjQ[qR@zf.4^=D]_Q}Mn.aOj&VJK1u:E׶\hiV&j0OhaGmPd,&Ok9Df w".jqz]0:ynnⶌ;wE`?׈37 ǏC:#G6)m(ṡR>l5A5/R*1`{ROD"CdHdyd$ 0f3CTP^q^]Ѽl. 5?l"hGG_7JT@6ā`^JHqq1_gч$ќlχ%J<}^Pgt4jڱʬ[d{6eR},oA[ gw8Wۋ`>HMMsczB.SӔl"&$ Q`3yK` 5-O#un۬5phi ٳ+;2|"zK B<~{KPd', ߥDF6oM:V΀B+ 1c`Ți9X쀃ʂP}M|dd+ΒZXI\MN %G{%M.CƞI nb=32ҨSݞ1XȪ^trsToo4hnA9"g&R%~o/ח |Lj%y?S 3dLtj{x0M<$ &] F9&FO.牸y`+ChQ5nr Nb8jJ]o=02`ܿФW-l Ӱ{kÌTў$x7m`{Cr ~[ܱ(UNo}S;@:>?yMއ%ȍFxKHISܹ ΠȻ-XVu_)~tP<[*gF{c̉' gPW8Bq)Cjs [.|Ur~RTy8$#S"YcK;ͥOpW|s%ww7eg&񮕲W<J By$8@apW75)}? XC` 7~G%˾zx `vj5纜&Swrj]oAD7$pٖ*ĕlSgNl&l@D@k`< >cڢ,睎$$i,q G*W 5{VjWvB&/qkM.k#:QB9#jkۛ]KnXy iE]SApN.E pΉB8gufjT1@+xLkB\g朊D_uUc'`/ LbՃwyEk&g/w&H qqv&&`U1Ǡ{MRk7?48v<`gǭ*|hɩjugaM-X'fv?kلQS1KgU|`vǧJ՗6;} !*]\8RS[JT+v )]]* |& $YPs `% Gx bsIJC泡O cZѦuٚw0a4D8|n?fuimYf=@b֠uRx[d2,U{)3*a9YBk<z{*+ݙ{cR[7}2H "h;}ȠgnO7+Stuk̿aË?zD#FpPwp=,vyƊOP mOW*l}^~H7Q.pmsQyyy,iCl Y,"> )HvN 65m YĢj0Y{6oj^]fӕ<Fu0@@ITEHr5a}uqk&佨5Z54V8;㷰8K^%hqE8T:DGSShʟIn#ֻEP.Q+?IXXr0'%w-;hEՄ@pGҤ=Ҽz nNr!^翙`p & - ~eE*u-!L IAd6aQ=u::*G{ tw#-?{t ׾QV(qB-ShQ`O~}z.Ԁ)1.[G\\0\9z%S(-:?(Zh]'C mN^إڸ %)q# yYyM"e+akX[v>;y#9)i~czu y$UBzR;;,!y1K|}ENIWujxź& ׻| +bF#+YLH86HS D:fzsDռQɍP ,xH}{PKG1ʓh nuvola/64x64/apps/help_index.pngUT DeA>PQux Uy{ǿP!F0ok0L 44ĥ *ccc_ŞRipBt߃⣲5uҲ8XEż*y+յste'ڲ&m_I4.c;&l˘(T%aVMi?G,5:;tT%J <=݂XN|22FJ^lC$cK_F+3`x}=QTe⮐>(w\ܹ_H<8, @ O TxWqv>!nxʈ0L5I:7?zz3tB[BOZiPϚӯ̣"F;XJ<C"""տf{\x;0*e Oo_Ff;2,S`pޠK=%fpțǹyA 9u~ZKPn#agAY H}r;Sʏ)Or+NwƏ{( ع khoO\=噿WTDv9/7Ă+BѸYNW̗4`(rljN8? l:dDE[6Mw؁Iض*޵+Km5#i%@2\ݓ'o$b pE\WH(2R]]Rٰ)Ȗ88ܠ\ AɆՕ??AqruĝTÑfuݨW;cZ2h g{Hu#9,9^k@C9G4$IɆg*m&u'sJ4s_56YB|/!P 6Z>~Saɳ:S IZ1aG@ ?C:U7ڐlV4~kJi~ P7a<_DԱI%Ჳ3x8ȁfVeg~Ŷ2b$Hiv/8H{Q玚nf]B i=G9Py׿&H"8%xө^= Qt~CmS%{43¢vDp'ٖ`hJ` fUz&ߔ]5:cwU=; u]": e$ߦ'尹b}(g:GLj8hGk-<! hH!shT(ơpz; $ ]$&#(*yAS=Iu~bԙw1+oRn+Mnـ OMGV7h"jEJ생Ȥ@S:cq)yaWir [d?82==>]mE nDbdhXvHΞ~)޴l~eR9ˉ1Ϋa%mbh;O@떼0#f zj>s^z8,NN *4@}0eaBɆ9?-2-Ғjb[^v\qB#$8?ci1zrԮm%N 9<lr#p5.",+Xoᥛ=U*|.|q,7i *x5- 7GbMvB=PܨQ?.mr)=DžH`+[rĒ:؝uuz+~"h ,HzsDN"F+-{Q#]jz]K0Dyx|adR96u _(Vך?]u#iqn5̮Y fP`݅tQl @3uVC*M7P{>k6],3^ A4bz#B"|1\%pT'Z3R Q7ϛ뗔d7F>DiUyPiۇ_I>>X6a:WYF a<==?oM`AZ8_ _몲$vKV `~u3^o҃GB*cQ<- bmv?)pRI^ྍ3R5rs,B}>JQOdsUh>9F&J+\HbPwdbΦ\AA '%I׋9c< ][rE/~2!2?IȺ39{e'-$̗+hgIʔEb>S>!C8han=6>+6|$B ɲ8m{~V9=lYpc(g68u&39#(~R¢rNu8P擄h{yPg>ӄJRaq#n3 Zy$p~SB`FJďn'NrGaWg PrFP] g;w ϋ9[b8bR[s>[/|I)9oaف80hwFǶL&K0Y7(?6yhP꽹!KW+e]TL|o`n]t5*Wz;Kjm QO3H[q[pO N犛JD_K^1D GȺ{li tsʜy -AuK) ZIR̛ec=cy*+mEH]J(sOh1M~ؚ )ʴt͘ !!/994OF*Z#/wd2~njĝ1YMM&kiQ{0zc)%\We0~ 1f0ФS5ĕ Bʱ}F2Е/[T耆IjsUle|f2tw*Nu]NELj^7}p^y%|?ł!Od1,6߬1b;ͺW/n'fKPP-cjBC%' ).Vu\"Zqw{޶'Y894 ߒg:I~ 0^|yMcׯ('Em]ҼtG nm>b ˽w7d7@2WnʿXF%IҬ2:A>4 "6W¾2yZvt {B%)}^.!&҉'V ^|z<Ş6d6"]8wIFFD5J.O;KP-,(nVC<4"rH8xbғBH$;#Hlkpk.^1$1$N.= 8?7'{KydؒQ"v@WpOQ1gSug. Oӊ$Thah NEz &ֺW&5$W=lD=ReNB/C2DqmԐ^Xrt=ܮc<3˸}pB~žRcR" 5[4sw٣Η0; P6F'Ŏ[JϳCS!ٔ)%K"WI6hN׭ ;LR}Z?KL"}"6 uS<-y1"Qe$ѼljrgR+]>x)61Qpc?3NOٲ:aNt 9kN8G;?B,C\ ,E؂_!]c]ID8ؽFaᒶ%o죖^1\ aqd :s2-֧4j(勿<;L&}P4|_o5\p|Qf%=?FUoEbLϪxt.M ?u;M8A-.J_LEK=V2‘@k[&{y'Dsit>Ć'(EOveÎZp[[[܇6㴴כ ʗ \y+V`8l1X<._M3u>yR!޾-c*JH0$tE\7*,D3ߎD5.'NL 8M[1D~Xxyp# a@NfD )|/]8SM}50F <4?W*?,) ͗SULI~OM?3֞U(zX:Ok2Jͷl4Y]]?}`۷5Je+EE2*}Wx.Uh Ft)G&[8+>'`.5,{E|Q>6߰F&DgbsjeT}?I:ցEB-e:Wbz٩}P(~O`.;iGz՗:y)'2#;S/6?ap8U1E*[>)*(-OX6Kp1њ!༊XnnR\1߹(<<\+b4.*:[Y ͵1]t,pb4PW($M+G::H Ngj,yQ1HFܧ֢ZdZL9=nR.0rxOx)|Ż. Rf={\]oehgg͗_y sPB1?a^Ҕ2/U^}Irttt…3cgqnp,T݋4}f-#4[eQX2&asfRАP`%MmVBwVQ#E:8޽z mHx;dg/w0Zu__+omՙl#Fwg;7?uPKG1sshnuvola/64x64/apps/hwinfo.pngUT >eA?PQux %XTdd0AA, `CQBuA" BgCtHB4A JTVqQ 5,"$HSBdqsΛww}~޽ݼu^ganOP&W.#&ӎ=Pc`t(0/4x[0/(pULG֭xG} `K2kHS:A!#Ri4['p<;8,`j|k5MQϐJf;iLՏ$y{Pԑ\/}Ud ;o,qVɹli͚˩}E!4( kNy~6IFìn?;ۡz)8M*ETh^rpϒ`)dcnE;"]\$]spԀL[&R)[Zcx#àU7;1-ʅB W`S>ޓ(:{ARP`NϐWp2>_TЭ{bNч K)W̊CO:srԑ:u "ㆎM\>[\R.h @L{4yN &z;ֲWi?Gwvoc8uәk[v]欉7v`NnQa7:I<ړ¡NFt0~O@Z!o|t$^ګ3rb&{2 {TS#?[;:gG ?߭|YU ͫ/r2-:淳?0_xػn.MwAܝ1wV-!g>lhޕa-,{pJ*JͿxһpLjP?ɲe[[0+'nfϰY!Z@#{'R(T*!3kcO_fȋOtՅԓ·>nl>_6&Xŝ6]7QlĜ\GnNy6;Xj]'&pjo{qIdVѕxBӴ|QwjFt,&TFKr_: V۲bMJFCN|ny %0t665*[+רAi( +=5ݺ@\1E']hBvwV=H346FӿxCZ`lrIӿ[ `3sEMDӍe'81_K(_^1aMaur>,4 ϊ G3<6~wN5Eh?,dƼeHCh;eRle [,Kp/E|D:x`)%nTkGYHP8Ԯ CK3ȯorZjʰ T;W|oYUSA#:1u}`t! /Ÿp3ghME=~OLEQ#?>ΒDh:mMc[;yKf*]39VbK3\ FMVV|4 zSzB ϛ\gt]I&B p7Too󗸇<0$+~olkzw_Ad_c≁~B-G-sE4 ck4CB8 CNL;{'hSHBQ ="Uܿ^X$zh >od kpU0\XICVdF,12m4)~jnej3$`On(51؍M+记Y}=%͜+ɜlFr(k6T z"L|c;]#'77yZE3rjq0]9S|߰j\h7-d;]Ri5-=?J#&a>i 5jzz,gwsv8j̈́M ӻƬR\m͏Q[Z1JH/9soK0/b`0F V&7m4"=ާl*LF̴"YI 6>}nGgSoH[Ul[cҴHt̮cOQV4n< Gb){}Įy~ǔ R)sRSUN9MQ^M zZ9G jo0uy%[}+3@G^w~8!) }Py |b\8P`Cr*6A;V'L KO[ՖcKFszY:o,AUsǏn " \2o>mǨfo_x!u$;cԽAi&]`ARÎaVZ-[7JbumJen @i:S5ww5`^SKh*Řf$ @1Y@K^eEl@@)58C-ݦMn/ǺqN1Wo='qq7JFe` KQ}p̕ܦG$/5'-M&Lb9U_@iڍ:g3cbMkFID l7:SQ__* 3-Ţ4#eJoKDi>m,&&2Ijj!f i:E:K5RĂ3W ^o/2*ztX4cNmr)Dɔ~H; :Q,N@A6>Ip*_?_Bk52v{'c o~AD eʥ+=4|~;)8Z̵Onɩ "]{Q7FU#~VwYPS= 5LƢ::89 J9]F`_+8׀:Y2,0Gǰr#$%XY{^͂㉢rAX +.U=~ >=G/ &V1z-{QXR? Zr;FlT.N%m4ZY/M:(x&JrޡΩ ̙w(o_s v?6Lp`ܳU~}aTXDN*7:8i4Cمo|7K`*x7KIC+=j0`( p/b&e̘2KPޮ?Eշ_PMI?O//~NFZ T4.Hy\ds2k Jt,bqx`!$ٶ90A . rLRŹkrPm?99hY1MŴ+s|M aγ&r&i/WdU: ÐU4$̞Y7RىY(ðlx#}gX0ϑr ?s[ki3Cn "c2ۘde@- XMkè@x3Nv>>DģSf_3J1YgJ9;a{kv>3o⟱VmOm7?[s FO=\rP̼_RY|Pz \cNΛE-?M8wHߏjdw Ul699RXTAi=N۳`փUsB0vP/ԠV^%rfǼU}[La@ٕ͜Eāq^Hq(m틦bbݰ sr^l`v)^9+= PnEmYYkžw+Ƨ큥lScZ\J׷=XzP-:s] 1!W'F.8 l`k%A=6,Z:EC恄p( ?s\dIɭ6g߾<.?)d=[59HϺ5W?@PK֛G1Y( d nuvola/64x64/apps/icons.pngUT D}eA=PQux u}<ǯk]6MM!mf%Քܕ̈́"CqJB:hRWnN' e]<>|nޏ|?ǂ7 -   ՍFu]u^,7 5+Gusz:^Rؾh/2~ 6:4Z0?r7`[`k+'@2\>La ]d@ X| Ǒnbq&(q~< hit?,Fmd&i}+VrU{MiHf ^!mŽbmvu9!F_@$7t(3+B'?c ϴ9 67`bSoqB^oOF#y %űV͸7a;~gF\;c\u/ONꥯlLolk^c*Y7iWcLe8,N޻}+'>DBy#hы]ӥ_]~n7|^aZpa/L9mu0[v7ʈ FWs>< w5[} =X|vRrB,(:sSYxd];,2@?e]^( Mo^Ζv|oMɉ4- iF5@\KJHNkB@YusdVA/X4St|Smv5;~dׅDtz&o4^4UΪݯ/`cF[=+gڹhY{ T>C!n)S;83庖)i|܀wsmyOe*_NUڟR[`R[u:ےnEXN[XH1"m= E$:H+xCj hsxkbn6EKn%,[u/ Kjt |zƞ2x(UW%6*>]~OK-EXYlY69MUPfxCN7iH> DgU NJM}N:7nʈ)m&*#VQv4HLR(ﴄ} #Ub}ӵxffhVܚ3tcFOZ6(Pm+ Y:B\PbZTUП .lcX/z:ޡj0\ _cd' S@1@,5B77]:) -%k\ @(:i0*^+:tj|LT\F!u|;HzF9l2;=}b0>.X⑴GoC:1#\sn~{SVOH$۬,}196aɗyCDk{#]oo3GJLaDliGjcXx"Shki.ڜ} =]_E0t\p) uC w_sޅ Ւ3xS-p=*ZULRy ;@ӏ`Ǫ'R5&-W narMKfLPRlyAWf-9?* ZCmhKZUg"ϒ/T?8eL1$9ME;\"Ji*Yƫ܋xμT&W3;)F!ěG:s|̰SjDE2]$f龓_(c{WtD^¥:,[m惛9ŜO!uie; ~=)"W uڛ? bKFbiOUHz&={wi*Ӭ"7eg (!Ů:ȇ@]FіI ?rѨTûD*|=|{XzJ<ϧc6ŗOlܸMXѩ=0\ǧ>藍aK?bi1 5&Kk< ynYװ,)Q&`H(!YFlɯ.,XLgiL+vTB;xϻDjad22I# za >he>~4f.kakѥ5 .u>0uHs&mPKPG14U@ nuvola/64x64/apps/iconthemes.pngUT H|eA>PQux -X TX>2 `ViԺ u[L 4-=6mvMAŰŲU0˲R133gfΙyyIݾP>^5㿬֖7QLo&kwBe|׶G7w͇FcB삯0*Sek-uX i["IY^:^3IYRѬ/XΆ)1E8+ֈۭ\xD @ ޺2}(Csu%ϗ('{Lo8xNēpGcWĈ/Z@R|%5)+ u&ͣ{yn!S&:!䒮|xݥilHĻ%)NL9F2ct~w!Yq]A"%Ȱȯp1``Qgra! hFɜC%Oȳc-'mѹJ!) b55S4{xr/1-VKh4`n>og(bݔҷݢ2Vv7豼7ch>yȺEjx~&]O\)}ߡEBXeRx2;4CS\-Br+ObNIpĐ|sfه^s5;Aq[:DIX{3xU]%&jtJ L _xpft | kɅKί#+?^waNGhO)\T2WX8fR/rRYÅ1D@a.LR$Cꍯ?" a|R"[[x Fr75*.Y k n7dSXQշC԰ٽvR>PN'j{^ہ f |z}c|GQ|s^p|lo+ѵŰA*؞WwUHr6K;u>zF&6}}AgÃjVZ%LCqD@DQg33䰿l(/^81X6D"~ 8e z+^_QiǑC43cO3W% 6cT1RiL5z1gn _Siy/)1Uu= q˞c `xW!xBbhy&kZKʑ^ /4z:/ȴG _4Ns2j*QGg󝇿8zcO9D G챍<$n!F7Џ`JipC.CO ov)Є԰5h&,`[byYhJoִ|7m] X;%V"cTt  Qݒ)DI7/ Vh;`y:sjZ| ͊bګztzN?KA,JM5\FwkΟO&V XoNG@`E6ޤ.#nCkOM K>wC"8{Svبr]JRruC&9( sv#Gz?~Ev8\.6o7]խG(ILCA/DWF4|E{'͛+šaՉCV/@֢(㮿(psX"WI&;9}spei?oB_SԡClU(r? _1%^VE#tSaدd7Ra+a~/ 8rWcL@7gmf@-ηR&&ǵ/WbF ^ )`yUtlWVOz!6Y\,ST^$b1+D!>[ԝV+gwpmpOY91%oI(+&{z>5 r|1iI4*U|1׳Tʯ$`8g69ܙh<8C{ǭ# R{!r.,ds wtxR73DMSdȓ֏,VWj!2 L"W4spΦ5ҏ<н$ lΧ&3;Zs\mL,Kv>cF׷s.\MKKcEߴ=Jlw2[EMj܎o#̇J#Du\qBÙ?ǐv#[p8a}eUs~\r^&~qkQ?WKf7obzkH'-(P݈VT Vouv ^b\@eJk9lLRpfrmo4w`-#6Jy<_WBi;@ '=j^!KH܈+nG3-G>NrTś"`@MD8qS2=J;Enap5(w)1%o*IɛXܳvQ0H?.x1LT4;Ea|aWW(gG3%[rCTrQ8ָ.<4f]pr\CŷtiIy,Ջ~\`nQL̀!Qq>,^̃j(vT_dZ%fnCHz֟SfW>.)bzHazW x GQK5"qnwvm3S5Dʟ@ݜCte.-=!X:}2=5(+c=6c'$#ufbwk΁5nQ.ղoS!~@>D}㙊g'D7ocͅH341[oD#QNN"_22N ^ݏNJrG/Y S2͛aEVsdJs4kMlFL.Al$&\ώ\x2r5'+,&"ŋS ^$2/?w~.aE-CK-f&2 i@(q*_w.10_$`= 9=;o: uuzw/oiD[B npyJֈrO?w{ÁB7x??~o`XWH`𑘖5hwĿq]B}='P3BD6#''U0F IfjS0Tw)N?x@Dm_Tq/DguC:GAJ9Ї*{R= I4;zA3sO`U&M/':B΃J#.jqɪLRzesK] 9@WEbMᡊ&Ts=5?S.2`f[4Z)S=/}N4`-B$+ ;mmojxheRZmlbln$])˛g\O-~c_ba0 =ߏK_lH;'lN"Y0L''kr"x;Fِ*Uӳ\&K<.=>|.# 4RU|A@^u6 Rj0aa֥f5 `#vW(H|&E]„ !@q;2ͮ}?emmDj5g&C> Qҙ(zܒyK) 7k=`Ȁ+ FsR8E{PyWp\(N<A+,_8(«Rwrc8;2I#YSD8ǹ/ZΈN媇\9*uUq\RT?Y ecaFN(\#dNrWD*`{#9rZ- FK/ZnȞXuj ,,QHt䫴6gTٟzb)DN[V۷mO!@v:=ox~Tu:ԽuٗpQFi=MT 7IwaKY*i7$2Ka*z [M6_^=\Y=mngSDqZڂ{|q1q\)^updaZR,1K=B08Î. l.2ݹo_'X?4ѦD 4"؏Śr3DPfk- ,v4QzuC s~:FT*8w!82cL ,.}f2}k6/ gw 4hFd"'y Cdϱ~U!.ebjj+<J TE:WVfVGj3_ [?:!4ͮؐީds龞z+t]N ñCi>+ehF,w藡$yd/f+_`<. /Y*2\7 W9w)7@AQQ:Ɇem#bJq?u醎hӧ%!!XtwĶ^QBepO"%.AOZK0IsF P`_!lH-PT%8N.ZZQ'R4%Hkg}&0|">pZVC޼*50aqCaC:9T\T*zlv+[Be%,Is^2%1: 5Z$g4ݫ' ҉b`~qPVf{ և)2Sج $D/ YQ{zCI< <@:l0@Opqu2ptmggbDLኴzUI+oʲeCՒv}Fڇ"R?ŜM1sE8lhUA(%!4okGrճcvhrІ;=!8H/Rux\\33P3o]$~rtޥK .X#D5ˌzA;U{iբ29h^HW ASȃo˗$*\4f-#yf8Չ:_ g' /3q'Hfnѓwl>7I?|쿪Q}-LZPYx6mNH}d}}M~cH=o1%=\ *zpoP4rU9xszTw,9>ufA|j[Aw:dv٬v au[dVV)#o#|Qu6^ dIt/Ъ KIhIM1'भ|v +g0ey HG`<^o9"߃wL Uh,~v2d@[ڄˡk$*;G ꇋ3 vVE uwRXYrH7^;^Z/'8rj&Ҩ6=E7Q/1dL7ʆ-ư 7Y&lWZa<0S]{FM*v܌H5MEڻBpE&+5ޫA(U`"QD wm$#"g!*'"#TIW99g9|]*ޣv 'gfKwnU'պV6%&Au &by 's|}ucblwn\H(ù2NC+>v#w &.sMl:ӱ}23/gUۉ.YX@zo~$**J\dSbAvu/c'sZ"Λ7' noJ֑z]6>=2)AFʌ1&v~%B|ݼӸv ~|?D/H$awl'C(Q*zA6- p~aЌaSڗ~mQ{[l} ּ(҈ړ|/mF]8,VHSֶ:$댂vb_5,{4-IEE.}Νtd*X*1)k'qj|RغG| #%*;IH<>-?J\QWZ:j Щ6$5k8恲f#pۀP g''}5nQXvj4Iu5\IԴ R^?FgNѠMWu$r[Y<+UUY?[nBUI?$w'=(;i`xhOϑOJBE^$TP׫T%ύ+#k2.sR*QRv'ox&4pyN:k e_r4=Vy|H*#9g.+;98[&oVm[X4 V%a 4_rH?|=:DRWwU2e $ݝ#s ʕ HcF;Lzxul2nxNr:00/lnJ?^SR;ԐcRƍd4iG>ky9>=FagLR*Оvdֆe0݌jqi:"O^ }M$_ifqY@%QaF[jiɟF4̰젲y4p#& \émt_C8ye-#\SV\Zp3qʅ~zp *p 23ATeRn87?ɢSmlYwjIYE/Rur/iߪŗgu<ߜLǘJiig\_E *%KLщ4Ic_$r@SC_fz.:a)PKG1C\nuvola/64x64/apps/indeximg.pngUT 8eA@PQux WiXSG&(lA% "[Mŀ""HID@P -".AQhAI>,AT|33=s9}bxlS@_?o8=O㌃ e^|xpB̙s#*M:qKSfte)B?yDMZ&F$iއ}!>)#~}N|z%{7t[$4]DJoNaBr%D`^{_j_%镘ŊFTsw6N 4RN6Z@=%"b1K>9O13F6cn=|8oOgG͎sM@/d̟*/WmL778jHګ!b}-*՚E Xn?oTLqr7#Kbj-3ݎoKsb?NHXn#eNPPɠ: X|釉[Y7+o4=0@f֌֒Z0]l ?~~}Œ9k$m\ۀ;~xՑPyB/RNxw]w\]}Ur}aj}TƕߓHJĉ!kKl@ s&IyyLf;s&SF+Z\ :^fxWwH$v|t޸Qc#wjEyӡZq\ym*SM40#i 䣵+2Uu),t H|) a㸛q*!%%ExoCAz,>1lQ`+0OKBM{&|F[0ja}m]X-C 23k08(/*OME5}?&VD#ҧNanIVVQ,{KC_!O#lM Bu1-Z>2/?}ڮ g1(రkϮ_wZnL<@䈁=M893&4"hb;=؛p jl(`͘5#"V6e;!h;A{bO~WqSIs$KzO?GwqV)M 7NB@['|N߶=8@Rb 8ۮt6D~3z;?Z8'VnaےV]1o/H}-kO+ ZZq}'UB{Dg}9Ve -/ oҒ g;QݚJ)[77 dڜ%$1}pސ8‰sPOͤ WrKzxo=He ,4BnOɌ:vn;Ek#D"{!!_+mܰ\G>FI;"Vƾx9.K+_ϸEinԖw0UhXy1CħJMM˻Ky'@X"iD8h/ŃF=ғҭLOeo>Ԯ(41\2nuJ%8.])RC;Z oMEcq5⾋#kLkjH++MH?Q5}CN6Ao@:._tl}|vL1__Cnn9 #ztqW\[6kǻPcZ%־\qN+.F_$>IVN3-;(ov瀼}ñkkk]ݾ;ãNg"_&sɜ@//Uy}l)5P8D_SS rKY+^ {'Πi7Խ1G`Xgկo\:o]${"eKuYI8s&S 8(}E (ۜW,.E&X?7"HOn*'q-&ے0іLY*NwaA1o;"o54@$??+1/Υd,)|>K8󧄷޵rn gYX,3нi>**έq렖hfoӓBBt*g?~!;l̑uR(V>aO{/Qe'1Ij{k'2QEm`|"%h0XYXd" %6&܁G\\0'kV{:8l%_0S1IZ/dE2)CztP}}djl,?+ eEΘ -Ǐc%<;TshASŤ&^AAAHo KJ0Z?Ry M%?3Mw8pms $=]٥$9R(93Grg#+m٤KO]NƼؐU岂2,]Ws7Dqz JwQ}|E2c1:W4RTY0IPӫK3XXxyWǻ65R}Îl?x'I"_AoP(yaW0ц0-ϟڛ&BwU/fJyxoO^~ O'СeMj7>⾫jkںtLk)N« B.j4숽k ʒ|_^o6NBHY}$Z |N7VPKG1P,nuvola/64x64/apps/input_devices_settings.pngUT 0eA?PQux XgTMӾ 4QDAHMAP&HG"% 5 4*%(vP$ЋĎ t =9{Ξٝ\3[4쫒N,Z;tK%۝uzP׋q  8d=  >p9 ts<7;c* &@:vOR)s ZtMè=#,_0_sBzsDZB9ώբ-(&Cn@_ΤW +E f.CҒ7}kL&7i1inh0C G/| O[Q+,yIXl09,]C̜"&+J) Ŝ)7I2?3XPiX.h?C A7;maw5i.$˵NS jԱhjǶR؜  =@,ڔzcCu]D#_5 9Ǵn&<'j֨:uf7:Y\?UZ|2d-t0An'𾊪 'z^r=:yvF`@pX'a=mx7m ʲwO։%v9NKKt׍^㪹\̿m>6m,.bΫ}q֤= Y} lX.yျ;Wvaxח-[6¼Ļ;&-v3ީb^cvGkE[mrF5ɤpހ'U:F>e$[6Smf4ZĿ?*>ݿEKI.R~(4LnB6`?듣c`}-lc9cR, (@b J`G1DHq!Z@!wvo+nE;aJ{VSKjNǁeG~Q+?r'&ԫ{UU~nH$kY[7ʁ͡kQQ$+MuaEH[o̎N6iBh.TJRhzx_bQiԨP[ PH+~߰*""&qB&8G({ĩ39Dt(\7˗3R|]pbZجnMLS#ȓtbצ4N(<ޱ%6l:h^ a(\!F :[\w'4E70Œׯ[loX\l tsQurA(D?T8tLտѰP*vC|2K͏j~:\Ln[rU7_yۏLxvݍdKdSS)BaDMMO;}ѥC Z&q$|ʇg/ >}09'`e/Lv$. AX6 #\u1ruRLLGot3O و2pK ONI7ـQ5u}um[[V޻?jh%]$?teZ}sdI)um!!c#W:.=q$IW{=Gh n.'@hFNTraT[^UP!5- o' odS/< /joJfndf¾䖬ro$?P)o<;ꈊbtspp :h OM[ )~l%%%m7o֒Q3|?izJ=9eqFm bQBDr:1<1ZLtgi6 qZZ HuaDhntWW5)Y1"6iOJT:VVQ,{3}}ѼUnZq.3isGe/xH%PcnqR١BM2gra}d6Ds0 <뺈Ң>G]u$$^x]r[a;v/(KScz]mcqc]eA«WPS[k;'v0#Yގ?$Tx*GN[P|m$6Oq4N) 7\ r}]`܋0mΝl-=ga~L-ELy53SErta|ZA l,KUx?x4zŝsS5MPPUdcq`uzvdXOWTn 6V],Z)Je 4!Ff̌_F+ǟ]2: bq(`AElJAGxb>nxVrwBp (oKp@{wu"uv2ʟ1N+mGb&_> isL|#I@EI}xU&hـ*UZJ MBEP(<4O xc ~LTA?#?z*A{Yq &V(,B?@h:8$Lfqitx1ǻFѸ[{?jl}t̀1B/;Rk)+G1y'{-y>2UJN2 : j{N.XLf@C. f -Co(kw #@neԁ"ۖS 2o1-+`+azGm =,K!$涊ͬUԀN?z3?6\b TOB-ya!8&A뼤G-Jg%i7<1lRNb) {W }yVm=1Rcxp/H7{[=y+6–AQ8 ABS'Cٛ ,]Ee8C z_!V%viً܌t6ߴH/-=[ {S tɳi# Ȏ8!Y&^!ؘ/~mߟ"`UF*rsec.g.u1|x.b/fggg_;vfg_FzZeݴib$꽤4 n|{a2sq)@MQxu0*SYS cO=̥U=67C.l_at C)mG۪l@-9P O7͏\PKcN1nuvola/64x64/apps/irkick.pngUT mAAPQux %w XLYf_je*$2i.餤 hDx[Tg($D2eMNZD ٵ$}f~zz\|>< W`3}=T;I֫[v}VmUpё|<8>0.:Q{dܦ(]Ϣ{PMrҭ֛u\hPGG%?TA7m^ .Q:%ٯOS*>)frȂ48% kgJҊϏ ?^u47#`o؂~{U獡X+v<✋,@֑I/wٳ 3p0.V|1] Hxd5DU*-b?@-`t7~W*oDѨFx,fM2+FF IHs4;)*ͼt Q)΂hi4iz R]^jb Ca&{e\7f?>*d#4ti|[S_U xNңS\`q#4(Ev]lUA'n3&L*{rJ|!64rF$ 3/M a0,؍iա  \\Fi0jmLI_$]jp+RoK}¸ASGkjl: TʓߎI'= DY'5^ȓ۪Ht #܋30;]9O3ٸ Z?=s%G$ $sޜ,C ͿKpCՑ)#}/2Z5%r kF-HE[Df8سaBRz)\%:pR̷S7dvc[:;I)4bP+VCӧ{zEvh :~^[񕹜mYқ7wo& ޼6+ͅrHqV,.\m>!y^g)xA~TfPТ =Hro7+ju }}}[ E&?';j 4BLku C!]ȊMŠ_E{bGLeHn:T/Q|\)[+\YbL[Y,/At4y$ީIz壋M$KivXUHE>foZ;tj+ؒH>6$?MLx ݍϟAWz?+cv얻ʕLs.X~/-N:if٬F7 Q.Qf*}pᬾ,l_9skJyG Bl{{}%!^u~u^A?,+ggNC.+Ga%2QuWJǒzP]V (xc |'X=og"U(` 2AATd])с0ۂ|#h:$ۧ$7DGGr˾)vyOC[W2>b"Ͽ3[y1%Kz(KА"~Q! K^w곬bF8 n7>GA&p[6:*N/K!B^0#iɓC`>݃a΃4dixmyBM#QtSX$YKz`R׷~ +'L&:WVWC'>ޯ߽$cs Ȧ7,4^ϼx$J|f7=} 6~ϳƼ@rO_ˋ8S 0=w(VQ{@hN? »>DҶ._#q ENk20W{iՂ).Ȱ^u&A^RwU*-ƶA~?XN5aD crҭՀ{f(-igj|fwgL9i753G 6LA0rp|AA0&.٭&%Fȣ%KwY!M4oBP/O?+6a9p~5$ߓnXT}a 0>nHc4W3&'ɹ Ӽh>%K*Z;BY hfJ&\J׬};K*mW 5{H_‡d/wZQsYzl{EʝNζCS][R8ykܱhf.R0s~*vl|1o!KC1%:2%3T׆|fnYoxEX[PKUw$uShC{I)6dUi#^w 02+i.*ua!_Cjgez}Y^杪9y#ՔN+;T-Y`)m WũswȮ.BYT;:E)WA᫩ݕ#+4l) #z1ӁoōVVa22%<]|l>2ጷSXI?!rK\)?? *f݉t Ɲ YyCZ[7>*[I/92 !UH]2~ݭMQ1QV.ծGr4 r{(I*NSU/t,x8z:dd'a# 'x;@3AJ#8,־iiicoS 7&ip"H|QebPdv䁝esC:G&6!hՔzH<-{$zŮ*޶MR ~2V<9smIm*tpS꒔xH686Fa6bxAMRݵ fkq@Rtw^.IPRdY,9ĢP(@@߈/1xA7Y[V9Zj) ^^ 7 1/WZTn;"Fƍ|. m# 28-v^5r ݪ8u?,YJ~R4L9(tཏ0ʜN8ȠA1ylrБָBRbxֽّ/]#|=AK);7jlyj€7_KVZ}fnEqC.IvіA  PjY745~h?C,xgqLe;{_N&Ma~hLG 'EzH:B&,6(̏>X 3TsY0IԦMG&K2(͎*65 en];FB?e)8kmPyR9 <1op>a>oOXG~ftɼ++LQZwi΅((!D>ϟ-0ɥK&-eWg;j1ggkjZyظl\)WեjO҄?'hf uqE>٫#{&HÆŲ[;z3KŒI~WRI=ͧ+||emmvz,vғ;ɝ-EL3iDnݾ?;28K\I.j`A{ nLHm[^CuAitM(۾<,) |gn>:#>bJgi0iLXrDL׉x; 5J)3ij" u's742iv`ޛ7o22#A}4PߪBnbWh]sp2lSZl1xEȆ ji"4hl]u lW1jxwH$@j|jl>G $4,;wDZq 1&d$b:,KrXӃ@}|'zߜ[uK"n(8yFB{߄킙u/"CgTNF{?o]pL/^!?tjYၩŪ0 %9K$/9L0Xqt?S*G;F}nUyl~R0dM1ԅQQ_od+d1+w|Jdܐr>N0VLft{!(ͻ4Ml|^Da6+썧WS3vjO {ףueȩ {ŅOtUdEߖ/Dk}K0kh10UީwP =/CPKG1{( nuvola/64x64/apps/juk.pngUT &eABPQux %y1w{s~u[55 5ܾ&Ou-4j](_;{N >pNӶyL_l7ⓏEYmSSCư b\\\V]c 㜝ːM>k=lF~3LCrn4E6 w5*{$˄pȆl9n\.Xv--,B^r#*ct[%N0|;`vܩ.$߻vj>>gB>i%觥ɕ}n]E؞!ԢHJӽ֎wl!UIKȿ,5{4ڶq0c༷b< 'hAiy:n8 5>–.OqApcaݱʯXmH7b&/FNڹs5!l:AwdԔ(Ƞ . JEg˛FR) u1.NQ%PxX6*^I,nŕ %R h53B#Uxƿq@p5Sܷ>J {N;;; 6ԴSNhn~L YN^EfQx|M~K8=@V8[_* -_D<ΡZAϱ8|`3 aʾSH8D)R x=j =m/r܍;6; jwZ+?( 6fk0 l"f+2eKLTnarׅ Bx=B7%V 6wz.8-$N2*Ӌ{! COEGe5uHm-F'D}{Z)4X 0]_pߺ߀ j  R a:CcGwg1Bؿb *OC_ח䞡82w7 ]Mggpco0"1 &~c -([i -"PO0:*;Ңg{]k'wL3*@;A`RȤ_Ϫ65S[ n/ZQ?*ta~~GoǞ&QJPd9y,~Dݰ@(&u5[,Kv&+ m%,c]#oWos>} Znf v0'UYy>R)oJùOsD&FMFkECx-իzLbZpӁ$AV,Se}xUw񦩺,_|%6V2 Y2#R[p*Ah`URRv5ҟ?׀M|%[K<AʴwO&R?/YɁw|ic^/` up#\3LuK5ͼ9t A,wL;i(r,]6R <0z5-xM<{=A82m S ݧU/&~Y-ܷR ߴb]otb; ZU'p?P~1Gz*yHŻ%ً:FKO|ba xӖkLe3"MEDCʜo-emt  -v1I!Q!P߮Bq*G_G>Ds{J #i!:HYBm8/rcv"]tޕvQ/m#Q$.2XH)|NTl#YڱU7ofx_Lw`+ջlab\a]Uty:!/{ Ymiȴ@Ӝ>"cٙ)4 HXtNCMOU&ioa4F<P:X@}i{LQ[Js+O]aGL_I sÁecCւtZؿ,iUz I'~ u̿/s%4%MaXZ_m0PFM6n5 HJ>nrLns;&ŻesWefo5P7B|S-C gK^eGH\Pc=C}:cIc?S ziLᅅgdb%rkk5RMW4! z \jBo{R5f_!ㇶbvDu^$󦘋Sd򔝱.S בlt濳p~<:/iBT!@o]4h;yyg6U{m=4;9܌b o;lT #7We^DVZ!I8F=/U"sxG|wꇣY5sXGC(ofRzyvOe5L5|5 UhD?(ע2Y#(! 9.;pT r $^.✖ٽ"g>@?WH{ ؀G>Z7^TJ0$_DUqn{sћk?>vdzܿ4 YyhBiN ϩ򟴡 iuσ"H&u=['}t^ ̰~4a~D |Έ+㙙Cn5h>0_+rSʡ!o7+imuZJ@[][C '̉HO&]+NZdP/¾ZMR Od$xȔmo$y xZa!۷ͽ(oLmksy&Jܫ]sxQ5Nk ژp=KPuEJ@pq`1Y#Z=r$``_MI @Ip€,NY]_O`a^1OUCCf 2/*9rz`L4񷑴sj%YۘߊuTj:=XXXi'O( 17- eF(6}b4oȥBtk퉾o{j΅yӵ1&tp=~"8鷺Tg+Ky?cO6#c" Z>i_y#pf:R00;Ҫ 4ʣQ%jl j6cG,T CN}}mD%=}T ˩tg͢_((&X5HϞٛxZHߓ))yh% >pl|3Xx3D+R7l#7nf7i ww*{QrHzQ3wA699!S&/yzΝ> (礵5sj'؝-_ǺoM,WH75! +y 8nR]Ŕ0)EyYKд铿-#ݒЧԪl^#':f3 rYa%Ѳ vs|߽Wn0]~yJ'x2痿br[MIXtf <3J.s6dާ/I@+>N;Q4@4+yZRAfJF9ybr/ԴhmUX HlZp dI#fMMAU}雒Sj&k 1c:\Cz^? S@P(mҥ@ԼE1- Yw; PR91kF\rŽcqX}o> @B#/x)̞7%[o &q5t *X4!'5NH" Cji(?reEc;^]v$ʹ]*S3,# nyk[SO} 2 GmBw .(1oMlO\#ȄKV3Wxog*eZcz+ ᜔&p^:DcZө9M= g4q$fNngQld M@<5۱j]Vz%$[[NezIZ?_EXkR`Pkʅl e}Sț+qI8ă5P\|Ph ԰'8myHg%%YSvLV b+oFc`J {?o6nkEc|P<]ƪSքI/p; NJ#)JH|sFnbBJ0wh+X]]BIQr/p@E| jG NNI;+f5W`o O[&旻 81@x=Ȣjew;oQNBGGA!3q1 V953Cs1NODq0f^ 虝ä9]??dJ^Mp@s'z앲_Q6Y7g|1T?ڣI05qIGE6M"UdmOw%,6DZWcC eٻYJ̴F͆qH'%no B~갵M`a*xDūk`̫hx>PkIr}]HssqBٻZzzH+cČ@2ƣxNe_Ŷ( vt CN/¤ϱH߀M[="qʦL6oz/?;KHI /Ix^Q~8pYbCiTqAp ä;8(mVMӎ HIK)EQDfƋQ&~cKRdXUlMuFy ֊ zax?L"j +ZeN|o_H7VYr 4E=Ż?nrY\l_H*OvXBk/F,B|fmw,⚁G~i>&+  - Vl WS';ѧq0wc5PξKg6RS*R?ALƨO*^tEY@k ֎[L3Ϟ3z@, n[٘ffGzum ]-/)W)R rc"b*?^ˢpvn,3-k ȲF-b@%p( y tH<%Raά_dd][os&} @va>sK=G߲iݠbbi?{qw'a=hKo1,emnA38  A8+*ys86!d/ҷW 3wA7Q݃/o&fڲN>;o?/궃3/K{Os3c^?BN)0*(H.Vj zk('Ї7Eg|pjsjm>yEl̀>?>c 0 DCkdãHۇ `|IU-EKU*`5k-)OZ[əG,mlPhP[6<7?OhbFzb##ϥF49NdVO76Ս jo98rS@n7 WWUڑ3r NONV@QG.j4hFr&fCY#VMs:jB-ׁ.qO%,}؛rDk~GFgrQ!H>vۣ@1  1ے>N"^16_S4=sjρZ|^bî%3>^sՉ1Bj]JcJZxOoGGI1~Qc}8W{=5-_=ynzJ*?3wZ%c4x;3vz. ;ΑS|u ]kօC+]8&CBn+k>8_cL@~ Ϝi "{##/2 *0YEź]w-ٯ-o_' Q?Z'гh^+,YU'Vg.<)7{+0k{Lqi:0\@|wM/vҨfDv3'KzmDeUF8o.' Z&>MF j61t*˭r6wl2<0}uy6ˇ28:mu:XqHYLJR+ >\z{n{:Nm7LRȌs]8|ή'Ys}tCyygϖlG(c˚v뢏ʡ8s ~mY_2vR ĕeM<1lB9J$%upOjF%C(i6U YX2R&??VeI9H_V`h,uđ1jeC+6Q> w(HW{{# mֿ#`0!AS󍪙(;͙S l6uFZ-roV sYq~)5$Lc Vٹ aW[8'mKgjc_6V=Dز(g%|xv3ڍ~>K aq[0/TS}:Yo`hxZߺHXK3$zXϨz"7أOԜv@<6I !3%e_1b*ۡ|d:0OǯR/-0DХ` ;0U52n8pnm@áwXʮ팩mo3&pIyڶ9~Y>JRGOv M[~rXV(SFtPsd~|>L/%SaV{㯟ɱGзt;ZexD_M%Ls_l4t-ٜ* n <8TCUf S.b܋ügzpMUq\l@{n.\;I7 /ǻ%n)?JN+ԙ\7P}츊Jk*LH^ZrzgaSpХ6Zx\qOg_(J\)EZ?WpμkW 6nݎwn Kvt >~=C3;8^^Gpc l?FsܦY✸24u\Հhs+\=U0; d'`-T\m):W\Ęx Ж$vNލE @îf89o%Љn*>M^ͭN y5-kr J\ϗxb:uvU'Ti] E2L.N\7 ≰vH厬Рs(~Hi }y(PsMBZ[~=܃t ]mvDӹ!kYYQ /~4u>#P&)nqֱ~_ɖ1(R=V䦄5JR挋M>&[y<Iw*QS ֯lhU=N!i,m9i[rO뗯Tcs^/kZ[ekaUDD`帽|R$Z8'4 -MOʆqoh&6c'<߱}!jkp8S.Ru`P=#wd>ꑰN՗lI&!s/7:]`+n% ݲ㰋֚n'핺6nƿOnQ-lwDt;xOZЎI`\~pMĿV,zքtqik;8h?T7ZP~B㛗\hO-Hx{ ژY㙭<2@ ׏^OFGLQ _+ZPUhdky= s4O4,SIUr&&Ezc i‡ +lI^X7U'h}'Q;x~w@Mܮ/4;[)*󥯉^IGf:MYiiDwqy!7Rȩo;Z`HUEd֩#bl"j3lZJ3CLx엙-i(Q䄝ᆅ$@'ǟ,T|bLߝV' 2tmqPT HөU(!MBL;̱pcvKVT ;h,$]U"`+|&{Pmw'PKG1Zg"nuvola/64x64/apps/kaddressbook.pngUT eACPQux UY{<٦N2%2V'lTDTzHsL6tRyœbqϜÔC*Dbl?}]u}^_>מK kEIU11݋B%A:;tSqa%4:8 z/z&>p\S_J%I  2pY[x~6 KnJș9+W-pM{ڰ)u2Tp&= NqŰ hƄ:, TD{MrPmN+Ck9D KёVp.Jz`c%^jp8_߅c$Ԗn\=Xk?FR&:>h;- J61 sJhu<ݧdS jl)1{Ǭ,ry`5P6Yw W{#&RiCAw&(Q)'έ;+i{ gƾzpvJf.}1HV@lej&%c%iԘs"a%DC d1Il%B{rL0Ǚ!Kيx+a|QT[sz*O(]89*Q52OIl殬NסLbW}D[z¼diMLASxl6p{v+I Ddx-m9B+q,_D%QPjCDQpMקHUGfUt,́ThSpTD@o>xӧLvjo5NzAPu:^/>OZ {Ɖʗ'p2e6F2bjB?1-"?eL7h)*7 (C5bI(XiHMH T^:l(|W?L>TՀ$WowbVGpmyYإ=I $&7\JtLGeuY iloZC QЌx+ sX9ߥ"cC{rdՇ-\K@l- 5G/ K۹qѕ׻;1{b[Q67j4QjȐy[!y o[W6V?`1qM_Q&D==0_BۣaQ78ǩGP| &5[bWߕ ܖ)qI2๠K9cJ06[]s,M̂/ꥳ_0&ǭÄ|x {ˑ}W9W+dǰPl.(*"5LAؼW q/r%dce>'1֞(-67 .0ǩ%—9_S/_Bz͌JhMc1t uZg'U`"#{޹*Zj$.|W%'ȁr52޿DDp{KTJ_$BӾ3"EkosiZ|b NZBHǐ@'W8ZtYHVk`}%#p;'j7 u{d=ioWM~S5N8*»PǸR8 Ǝ:DUEg#^)doXO9̄l*k%ߦ3ip3g-F99(N r@]uH?[g\"( Wly9-G=AyCm /GXc^)$ ۀRw@3׵ZeYvpG|Z $mq0Z7=x"TywkDOTF ?j\O8/J:z 'ڦNA]9v^Xdr9dtoYzr2rы]p;=e.-7L9[Z;eըʿTSۣrmn5|/̪洹$eǧ^ fzTIO]{dKA@)?fgd>v«P*Z qVG J`;:4xcj]'QDŴQ 6,V6ᐛ:ZtCyGnZ|VUaҷfO2vX7ra Hi#.'C31P(Mk0έu!&"]URu px%Sw(ab!6g'&#Q 3¯9N_f Lr3T{*Z Zb+Əl)([}k`k5J|]*~4X];*.k gïJU*ؚhmi)gsJ2DAdLU1fu[U0O9dlcwEdYO@*_8eW\×s?a_aox(W T%6XZ.%bحэ8w(S:N&HL[ZCΣM%wZ=#jBMْP^Add#,/D4a3'1_>8FuI* aqgb|bh voFf ;gD7ico W +eZӓ*FG6 єA B(9sw 1w/ kQG9( ߕ|iMXރ|'OS D@aQyā-9\7Z{: Ly8vSTaWp9tvU#aFnBhRD|k[!9I[bJ|^ޡJA}[).9^9ęr5.@_ gbsҰS/"KKb*MLGX,u_1b;@5D ;KFTQiyyO[\VИKwWGUb<_L6WǾzn&+GGq쫒8uٗkYvdwCӑ^uR3d~KB9Cmd 4 mNFj`//LZ+ >fCnkxC[YE [7vt)Js>΍)/c5q>86w%0+#'hP/h8R9Ĩ#ZN:k͝Y5}&8Y6/-.ܩ?%x~Pehc~~ޒ͘j }xđ R#ϫ? Gh;fxґL[[7'.Iڦ@W. !Y)#5O!mM~ZHoД?gpǞfqع7=5քT$7,`}*2|19錗 1pbP-ϟ!3q /&(kkC5g%>YH&ڤ)nd ]<|^n ~\Z&5]SX_ecFRj^:*Af ,醳p/mUC1^%"c} &y6Q g`b*h?=̮a]s/le%3Iޕ-|{ f ۦVd_ +ґvC|\: (˺@pg41;iCi#;77(?dlY#`uZeU^VA5RV2hlTnN+Y+Wrを}(5{G)fgϰ!4 웃3'BtccO?#W|{0qaYeY7ŦVZ&[qZ8si'|v*R}ᏟcΟ-XP x hYO0į5nӊtQ7ySpMݔŃbNY%n"rNL;>Ĩ[OJ=* gݒ&@<SV9nWABtIZ;I蚋ˠ @G?Q^;amtYWziҭ3~Ywjx+Xrִ.e[/)wvךn#p92XR㺾,ٲS|;l*!g[,򄦃}RMV =ȯ!&9dWHWAB%_tKȞ(TP%ma?tg\xDz}O2 5\7̸.fZK[8`mkBNx`Vz H~k(CKfǥW:{q0x$)g2Sk'TA'bØSۂA+ y 3@f.{D V9qŁ}:|OՉ$$T4iTxWKGF\3)\ DǚdhjL CB `\X 1Pa%?* pV@nG!A%; kGGaboTvx m[  ah{݆\oJp !oO:_#C#}/-|Kv# `}Sf'/{fYO]NC=<(&+> #Jf|50۔{.1]3ޢJPt%(IZRɞZ5~|*E2V >K.;2 RoщmO\ʇSāN=g/Jܾ$c<l~،Q 15uܺjrUT.+@1%S EAfT#+6: FZ~@nYhs j(& _lݬi #oJE ̧4ʾ9t8>Y E*1wg9!1Ier("}þ<,ez<Ԓ_ `sOԦ?xUGwMӍ99%L.h6aQi"JA;Lp11AqGxR2D7$}>-PmliT҈;/pwC5fсufa# ϼ+,heHn?݌- obU ݻM3ےo9-n{/?g[iQSƜڇ * ܠj@T+۝&d4]a\s҅#WNr%jC1(l<1RPKi4̿ (n#%HVSTR{͛:D;S@+d}걁,~?Nހdiw;B'BL3`-wĘmVLeݯC  J2F@!IDKѤ[w8+;9j%Jfd0Qvudc52 _ :{og{VjPKG1IMnuvola/64x64/apps/kalarm.pngUT eA>PQux -y{<brMF92dJ)Egr(*Km)yTOlgO'Tbr>P:b|k5uꪳUPXrӌy|ootیwJ3U>1#Cc \#CXB6EW8aJ-RY.fɮX|(͞ua8@FlaџXT^ #y k9%R'nPT @L]{L NWh%v]ΐpHwj'@`V5- 2kʻLU$d7k[.q!bDži!HX(%b">\]>bnsQm Aɻp) dLȗ<oqHψKy~2Ryw[gZZrW:ϥrۓ aMb 73RadVu3nlla0\0ǘTO`+:a**^(@P;2թT iT"\Kl4\x(4CFm._FZ=zw-ǒ~O I-¸Lyh7r!;d3ηKP%ɺ3sO ,NKp>&Bmw䅓-.3bvWѤhwIyXkl WHJFFtA7DKx̒y,d5:,C_aZۉxn-2WTB0 LסrAWثYE$8[i'^^M6=3Nâf5uՓwOxLTS2-BsSbZ~z1yh.,Ef Rڊ.Gf1Jy w)^Q>Z1n(Z-^3mrL9z ⴓ)( 7hzX ɕ;+!{Iw"'!'^rz-gCT6>HrLzjblg(3J!o|} O] q>B'dֆw?EZ&4WqA$q5>tYi38 ˓`F8Hu2Dbs"ŷ\ H_yHD|A8W(n#1l5_ QwLm`-;H .8Z yvgl&KCi^Ȋ[Wg0.ʤ,Ͻ!g[>>+X`ZGڠ)Kf{bʇGhTN@C97(I1)tzZ{=Axp`>{@Q4cGg`s ad'X9n>~z]t׵Q zїW(gV -v`\O*>>~Av";:P!8Gl!z°w<"ږh/r:Ϳvp7Ŕ3E+FگQzw4+OӧΓ\-)$2=y\a8?c``5e7tJJ;a? ݇E_@/bton~!Ge=.w^-xQy"UJ8].ȝSQ$!۱%j"Q3-oO-ICb=z@[5C"]/ǹ;A>]GÍ)t֍է 0QQͼ>H X|#uohڃr"2 }cRgɩ_p JR[3*^`;8Ͽic2fJIB P3~c .75m: uI3ѐY>"Yk#^R*|n!aRc֙aXo݂,T@Ԕ:tAiB2#$&FEVӘ0OP&ozқ^ExhN LK6 D)<9; C\%*s[ c*u'M [aM@蘺'`õ2Y琩0;.=sZ楊Mhz TrjlW9r]I#0Vo9 .Xv3P~7L*itĉ)@0te+LRץW8%C.<1=BkcOҴ[Ǚm1^RGlBkn\d$…?4GC_B uu_ZkuF%*]fI{:[黉% ZR֑P77*4Q! doW))Q`7MmM;~uݽ[WyDᗎfS5㆛ۮv6|^7Z\lcwAj Ƨ?tnOMg\M~@Dh"nGv{Sں;kdů{ʃT(P2<{T*GRZyeU]ٛjLVmiQ~lMLnոBţm |FMwjDظsXj2wU{L} c;/zS񟿾^_A8\Ǯ to/1-n s&O!w)M*IO<Y8biR0|Jc$H70vp\Q vp\P[1T1=u+6 'M6tPR[FX4 7ې*JrW/#nXzm0_LKπ搙$wa*O[wGib20Yv*oh7<)f e Q7~oBѕ[>*ǩa<+#v~6eܙ#_Rtlaf=LWh)Ut~.ܟfR !Xg9K,y7rn![(</ H 4Bў. }V0cK XK CH44Կ-ZڅPs+|[뤩_o1<GUgstNgM{ňlF첌bE\ѝyu)mS/x]@KDtTgK&G9s;]TN[Χu(-|M;<|sfn_eX6FwMbX ܔuk\VtA U|; GZꢼz $x8`9/mS'uL%*x"PseI\aؓïQ]T.6d f`t#ͭ3r}a$k5L 8bV<|{h63JWMwr'ml)gNKKnƣ lkkI3{Z@_ݛAqkpR.s1mfq8$h$ͱ 6c-UNmQ{HnV9g(ُmӚ LbrMc8nzjWa[oO؊7C6;4&8Iua(DC41oݴ7uTkS+<2wpO7笹_R]HkRs$m2]2КY yF%ݦy:xk+WtV5Lqu1-;{KZ'݅}XwhU,J֤:A(n vwe(E( ݹnv`6#4t/Q "Ts&w=-k 3SH(RגZֶBS);C,\zANwO5S oͶ{F02> ?"CjF®W0+Xr+#:HϘk9/R8N0v>AV2 Sw#]lNaYn'j2^g7",(޺0o,V-nLAQv/@UU  qӡ0,|EioA_*TbQG6DyF+k'Ml?t1b;Qd]hR{xL苓^&ޛKڝ #.@E(_E9.h czn^X%P՜u7l>CƊ4~FV'r t1kwNgںQ4FZPmc}Bi]U!Eu wJ#p8o ͳDQe^{q D}B5`Nz5u2S(EvpE/oK֚ϐe ,.r=)GUw瓝U@ABE=d',_3 #άy2P%Kis^˾zRyMX!ѓx0/i ɦԿ-MePQ0 5ɱMCc =J .tbi`"@̀+|XO;-H)ʖF%3o*}U|ۅub3K^qכG ,jOiЄۧPzB:q O*W\c*<.=XO2TNWdxj {ʞÒphLx@ !؃O'm%: *Nw)Եqla&י)H5KTfG3X{~n0RtV@nH՘}P0U23DVʽk2g-K d]G1ϯ)B€K_a=nξ xߵG:1YD{#6V N=2b-LmP[`8IVibMz9.[8k=U (+~JN# )!J{=O0`cH A( 1S *Ke{jc#q \diz=We+/jr]{Ut-fuk&(zrn/(P eJE)lw^ףS^ e;!=gnq ̠~LAAlE3I{-<wU> qz\a׾ڕo@S՞3GgQ9Q RwbmPe{ߖ ecj<>c`gXHf]V׾|L"hH;Saj4+l$Y:n]}C_d7[G -IE~'=0^ 5h%*/M52n? eϨWA]wa"p{j- '|L_*HzqbDO˫{G KnFSUoh5!6RSq*%ʹfJA9U`v-?:l|}i{whmr{m uerssףکmu{&~%L7u%Hu0,=ϒ>J9L(h({EUJզƹGD/PL\!,*۹@ F,;;;qg S=1#NnՌh.1pCBBCcLåGCLEzZ(ڽ%+ @3mɝC',  Qg7[?!Q5B]4˒m$1m;  :ʣf!x ˗?I$ZhX.M8Ak4 6iͭT'RJ%ܹ8XYF)Tcb<ʦ)u_ѝ%î!ʧwSrA8pDrȔP1tx qc"&DU7Kѐ_*:j~8!aa5f8BXp&ȲȄǴGZbY^H %"8RhpxpdKXs=ϿKIKQ/L$gQΗ>&)[FzyR9T; L͍04w:ԉϻuδ,u(GJ9SFز:{Ԍ\V٨L@J`hm%$~pѱ1 T6ˮyHԏȝi=Aua!/S7_H8dG:?4bt%!F[Pl~h›"rE1Ji#Cɾcy"+Aey WHixE)F9,PGDTCC'#Ä[Ì[ϼוt?߅pg< \+Jeނ$eRKl顛N+RE<7늴4q>QYޔզ-};2Yc4tLOiC鿓wtwIBYE6N sm/Y7G2.TPw'&!l!gנ kρVK&׿`#5 pٳsNIY7u5QMQokAj-VgfpoMxRzfPB}mTHa`%͌&g\z7/QiC_ZA1,_0`.`y&Xr|m .i`IS4DŽ2]M $GX4~69!rA1Y'}Y$#>^&hh,cnp{Q,-62|2R!e|Yl'wݲ.av3E85wT>Nm0gQdLl2G@ФfdPnl$PA|/hljIwpRgEY/| ?9@<4b`B*)9k696 ~U0yč |kSr y"͋5[bO5uZ)f`# S2 |D{Nv+z满-޻қX(zNp&vi^aR*N;6BuvaؤS  qx#{ #J?il. ?K[,.w $6F[(n+ sm B)„.ɿ^vPÛ /ÏAVRpRŵ/)YVsiAWw_(RX|cę⪝XkKX}na..P4'+ %VϞ\[r% g3E>?ŊtN$j9vrN~8wX8D\Mf!7H4գ-"Mm^Z_Ga5Ƀ?hFk̉VMi*mzm4-!yZ*H񂙃ی!1Bϑx,Ů\/0`*;F0juro,+**ڍ=\&0kſpeY)LMsO[}޼{eIZ?N"JcY:Xf=x|ƪS67gu^4*ϙ!Rce d}~vdmjqUl>:‚6t&ٳ9=k8OhÇO(n͛O3|{+^iϸ(/q\yʼ0!At5!(%³6ˠ_2MGb Sva$k)##)ߵT8bMX (ʾڙU4C:Y N?x<-D nb(i>z~xdpC ζ2!§xWI"s⭛δ.Ĵϛv@:J !?Ŵi5ќgQ\nm&}+ܑ;?UA*DmxA (s.};i{5G) +E/'_ $9$%%^T6g1y24UW 4\N }# j2\!+IEr Snv}?ʍ^jAݢ~8> |U;hxҎP]G嵵p+v.A',Qm &*IV_y m('bD6L-@gs4FRs۹;2~\(&- vNqi ]ץW6Z_#rr6@N+zዊ XEI -DbpT4#m'A=Wl 0ar3S*1a9w("^9ht&'2_ި[}R J.Wbl:5h =4It@sٲvĮGc( )Y˃ x-Lμ!=/0yLMP@]zPv%''E'4{fl CR$U0Zom32224 Y GӦ 6v$[Q:FaQK۔B4@9-Q+e@?UlP&\)/64KRŶA)PcYȭc>и3|:|3ܜ1LN.帙̇&dG?%b V*%T9gBc(zĄ#ZҢ8/`T-6uVS7dj,sU řJ>g,Rnp%N간GSaW0'c}1Ι˯<TWk1KJWINXԼ(Wnd3VX5Oлl;ut+/ϘPҧ*@rԦ%zrV+),|caym7 Ҍ_!8{i5Ԟc{`@I.AgZMpBcG ʴ=h7KByMŌk_lV!RH2~xiNq@MF1<=Vmwݬ^?ybwru*ދlK8 yvXs;ܾ8nr^XzC e㣟Z1B[lVdWuDYCγ1Ĺ5Vzv3w>l51썴%0:PM^pc}]3i7gO N-މ6V0?-*#?nQ"-$M "g~qJ!a`y`.klF9l?'hedaа 9o}XcK%6f᱾a8"=nwE5Z;&g qu9coJ_L,to e8irܵRlw'Od #wIz [Ws=qÊ@p?yʖ xO%Etb5iYJ!#9Wa*˜U.S9K,lid9c1ۮ&X`I^VQ{V-s%PKG1Z nuvola/64x64/apps/kappfinder.pngUT eA?PQux -X 8T?3g˱mF1#JEXȌR$nZERafLPQU"&mXX*4b%)c9yy<9.M޶QCP M>ʕV!(\p[]w;z;Î < DR7rHC31H 'Ъ1L T ( T@JHٻJPjYc{ɵSw|䏪%.'V`ȕ?Pj=aiu VVVիW nPxTDT1xOMO'` M b^l;oWQ-,ff G (4 F<$nrHO%j (ל@s?= 6 /vvlC3._Ɯ.*d>0=EJT s,N"jFyZcWleҮEq({BB uGY~5}懍UOSʮH;αp,o[æ-[y'mLn۫3fx&' ʋ2ׯ,pW'6,>~%-/s4D˾0O:ͱ EOQү0 W싮]S9/s! m?B9'ߔ| wK ^aZLQ}Y=p!DMY%kҳl ss7% dQzbOm~ME G(+]'*KA銯Y#jYOuwuGDc );0 -R Pmɾa+c8\gm]]iVP`+ BPTeѱkZԃ +# BwH{I$f9i`2#auc-t[k20Wle1i3q @ ٱgi Qنژ n"n] JEE"H,J{KQP|6R([B_9NlIT'w@ T!-.5~~w[y{ޖ))+)7kRVѕJiY HJ ,I+XFZ%T6ٳ@_ Aa]eINhÆ Lb8I9 Sc٤Q#+Ӓ9\UIoc=[çbD(')P)Gh{Zf `K: /k6B~~sL|=ZMiCt&3@o0T uv[BctpT R(mX:["+`H%~y,V#A!Sm"lN~s䒉TpfP_ɪ[٧D N/{ nO,VV~ ;{ 5Xø@5IS3m$)E(.ufj/r,d9 ghoG2;2JNAMi3¡(0Ig:؍#C8%U6c򼊊솼s0X^\M ]GsQ[G#nFo(6d-ҙwo;G}> Vlmdh=";Hb{jA##i W`T;\h/Ax=C褽t6һ*wm[6G=cr=yE|ji+,]yӳD0P aFg]i*N)Yc z&ө,AsH5Ȳ8r͝Lrs"u}*Pbj ,x>k_e mG{ˀD>[6sQEMXPIV$ % j{*0ЭdqjKр5Ky<(29tJE4:hqktn2M!Q\5~bӘTʼ,_Ex7Ms<1-_]=אi'X,^V%%/'r-c-YSs47UR>x{,@jQc hM0cOvpLbAU>&m B)%ǎ,\h3A "eyx`lPۿi;;]m9rI:pzppC.@. $J{):c=?(yⵣ(# U`zɟAO.}4G~k$iɠ,^  ) ҁyʜEjK 1J +KI Gj b1o)jޅB>g?08a9=B|sR-:),ާbmL]nO"VzfdK%#=u*߯}wUKcvM^t,/p$Бۦ{b3SÚ]!Vm~?_rj <<ŧHF r`DP=>%6E?_gGW `.Zd S.B" ta t8Uc1Šrh]ׂr{: whB,|&;x^-ZYa:BT] .T`N+}Ln\oC2{J%/C%CPlu.mPQ$*7*yDW:5e1n"ڂTHfKDùJö/fZ}^}ozt w~)_?k,.<< {ڊwC;t:~2a򐂸ԤT sVE\M^5[UEmҀ{.$ߴb7! 0sJؔwef8 o͇ƬˆJѢ6q ?_ "pIp0O[n60<DxֳASQ<*nJ><]{B^ɉPYRUH]ox1#Asվrhm_9|c/RrTd-Y-vٗX8^@bsoq(<'Sp2fmxg> so6E6//Ywd왎bgdN(pp8d[0' NTףnk,N b u9v9AFr\{Gp6d/@z*"m?wa w()>G"-`.{Tc KOq9wutd:֗ۼ)l;Ob)`cq$!؄z'{%ȅ{VKL1yXGvwޢiZ>З鱩l6>`}OX>eih[-rGh$~&L/aW58u^ ƽ G'@ K ~HʼnVǮ\O l 'Y^r u;iՄ U^'T P(xD{ҞU1V|p[M XJq_ŵy >tɞtio\ \b<*12./a+j_~EDx>05K~moPb {[]ni{MT/"6'Wڨ95bU3.h{[sJ3@BVoj|s/f$϶kdfUQV49PnӤw?a?D1C+ Lk̏V4L2 ZEc 6uwL0sZ9.ȵǾ}o*)`GZ..KV[Za=kfkS"AϣngnE_94T׳YCi8'4@{ɹ=oצ<PK`N1K:&nuvola/64x64/apps/karm.pngUT mAAPQux XTSI}yuI*%)+IJZc%*P$bCE]$  PDB?s̜3sfݹߜm` 7۪?3+>tSWCYs~P&FgGm := rCsb{Yu1f} .zeuM2\AM:JpnNAZ]E ׌ļ"(Ұa@Z{gsV߈oU#Zo ^ŞO [NH&@q|S>2IzGx*=\Xz s==Sk ?PX=%rVW3lA$U!ԀY%~ KS GXbC8M8_PY;j )[1`W/=y(ƔwHپaccP<0zd\[)uRLwm/U(AZR-7vt)r+6 IvELǟI\Ea=;b+ͫ_(m~|[U_Twt>8Fӧ;֔ ¦Y/Є6@1rHЮ)q[lC:(yW2Е2- EDHZʚ=ɾ*)q88UmWBd'Y=le@IL{?oS7cR&E:#= K*orOD6w( r Bj@Jtr8o!6de[CZّP=-#+)-u(*'|#O<3*Cwȣ?RAQeИġ05+dGv<@XV8E\-`%%ԙӜ?%_9C:CڈplٌrhAۙ-@WZ3h,JBė񉵲FU^s9]nQMZABnhZDH=dG[ɫuÎ蜡LƣMR{{y-Num<mE_5x#\޹!%nP$FH$Rʃ4*uhpz4V ReǞ,{QF #8Gs/mUu1k|ب.'+"]̃5-3^5, ̡lYYT@h~MQTF {HGlNA/a:5ioKL$Tʪgr*7~) []{8).+Az% wWoK;澡ZA|zF>ACAn|.b{<1*{ \uȶE#GahJN@ZBn@l<{e2GCv!F"Q!'"7E%b׋✰ODIRʑqq{k^I  4VǏc.] `?0]ׯs &_Lt057 t`t)1\FT7gkڿFM%j ~Zb_17e,z_4Mi0a y_)E(TLdc` ۺUy}@F4s7|"<7țن q{ D• '(!s$,(BxYx#zVIXY#""^+KQ0yR sb4X=޷XX\fnr&}ċAM@+a^['sM+թ "u=eBC.PI̬P*s]%V8T66<{Q3ʹ᎓m`\\xģL5IHUs׃dFN_{{oBd]MM2k!D8:)X&߲!=[F([*yo8iұ˓J7{rnf_?|?+kjxGRLK2cCxEkdOI-K؝TIE+Vd* .'1p;jN^J/ȧغ#ղ e(#8L0 &,HpQӅX ,]C]C7r6.fFM}!" Jed G"X,ٷhx%8vڢS낸+i u_bm~أFcSi5(4ޜpiɄI)0-]w*;XEz Q!ͨ,غFh|;=HT;֧l)iu64vxωH޲jg8!zM%/Ɲ9.u^lAo YC"Wk 561佇Z| }'YRJ!6gMS2(!]h&kq?tn!1.VN^M Ӗ[WWSӇAa=RlNQ8 r_r2SCH wU *@e-bJv$m4 36vjT w=EaFZo,ODRO򚛄{/Ej=_ix?Is.{0M1ِ`l|:^ 6U51Í0Q'y(BU o5<Ó=$$Vlznl{q,WL، f]ߘ׍ żu"mi#RC .M˩iPg.lhE Iۻ&zNqXXe2內7v8(Ȫ`5 XM Fljh %ؤFǧ=4eťeatjJ;1')rEYJkQݫ$'%1Fى\/%'L򦯟M֚zA0IyՓ,: {啺٢):؍=`q}!ϤܼŊ`YfL&tpkvs?v{$)r_]pBL[`YڮU]=Ҿgga'4b{yi'?$O_ŷ,Tģ 3.T;KE.҅'3W1Z )F!dCҵ>#^i Ti/ p/g므.mXy5PKG1e8Q nuvola/64x64/apps/kasteroids.pngUT feABPQux %W 8m6,!JCQNOotWH'͹BщelzCI:R*e)rPDMJTl_繯>ҷoš`Z^>ZC8~<.hp=F eօ9 75x^rT]M}@ `g輾T_ެTE'Gڏ |9Cv);m("wb>CFPPlnfuշd|2Ljx 'ر2͇; ]uH?fݍAss-w!͛7! $* s}2On|eU9 88J}hbrxHȎn@b4؍K$v :T\=W:nKWybHDoaL=}LnJg鵆+.$@pˢ7߹ZhE$I?v]jZZ}޾>>E 1pES6ΤEVr^ssk7XH׭[WIJ 8TOm"Ç]h~25enBFH̨RY@KwEkk?SIt eL]:~/pHhS^u=ߚ|ybim}:@gp=C|e/- { Q⊕P)ëIe MO >AZDGEr|,eE: @Vo]Wj~(Q2y J8{nW]L)^TZXԙ_IYkǚ,@BCC-\E .kd@\-E9:ݦFCqP˷ӯzfrgloЪF\0 :SUsܲF(C$@N>3zjj0_(.˅fӹuzpʥLn_{2&笉iOͲlkmM/u[jEݼEf~)Կ˃<y'c.Qui2̰U:^guv))ӂWGk7n,\ /CtKW<;n3Q{PG `-:tCoK&NOF鐅LbouSk F*[ GRoߺukdpQLMR)]_V j)(&1ڂW"C(:rj[0$x? FEG=8鎝ߌG !RڞSB^:\s%ȺG׽ֱu(0] [6+s36PMf}١;!% ֮wrU8'4"! 1I3ZXƊ%ZBBdVOJ-/lnj͓pzTZ%10)8sLk@Om)K^5&kUrLH+w,)VP#  =f\Ss 2d }|Q1Nl4esZ~3F49K.cWc]KX v(jΓNUhka1̸UmYi&޾ZǷ\&(KL.6g\@S{ʁsK(HnzoPL0 =š_St">RG8uQX̚5S1"Ŀv.}aAPxߍh~$\oKNLG~#KcAuft8.$˗|+d61\8d4)޶ B[Q fyDpC/5܍V7[O~;E9aPRڧ=/J`4B:Xgr7;5RI!YD.1_{o-KoO Շh]}Ϝ7ŏi ol{*؄DuqʅR/N'šOo2S =ho?W/PA6Υq&F2~x@AI G,M9cNGL&@;yy+V&}c7}5`K>ʴ>0>)zJӴz&&Y丿q;mse$)+c U'NqSZQ /-=>*uyf5[.\2(Of@&`RPTUS *Bd5:q*ML=+Y6caR\O)^} 9 !bsoCD?&m:$x* !}L"jrxFz__W &ϵɟ2v|P +9R'(+ni~3Ǐ7͌!]砀`(jJ3,ck_IΘ?&q%a5~i8C$v`>u#o흑EjSDGb#GS6t{@um_qI7^[~9~#ںe]j +htOfZߺɯ+{[9{3 ߷k{%Fz΁쁮 vp8lXOB[ Q1k\U-FaRS^ĽwL+ǭds3G+FTfFJ}0+G%c\JCCiAw { ]]ovsuaX,1dvѤaWȰ=7]p-*!|p`V6vvqH+ 2y FƝfT T(.-uW0NAZ[:x8B?9I!?z_*Xݽ@Ź%BDujk$gLC} ,WK9uTrjx9eMڕ9't +UENx?4F 9t,W{\Rm@y MUy1< εkG?1Qo~ F? _M-$צkU,$B{'VZf Ĭ蚻ANhͽ r1E:Ke^v؝)h~v;F`G-LdL?‚F#;yAjX*(JIt n7)UNӵ~…8/]2iـZLSf} e.C:c2"g;pKF?vmOƮO*I!U[KAсL%h +8WhO38Q|\,*$}:WL纍/j77cnڐlM{q_.@SZŜR?ސq|@Hk혅~Bʱv좌ntM6<ݭaOPk@S 01׼v-,7. j|A*Lz!\'Xk/gt},(34&  l4j1o梂ʢ ~C۷߉zz+d^{1L(*xa0HsTLs_%6&T%j @*UJ'Ed!po:'$a}rxsVKxmKˮ~Z"i{js_JF}K ^&GoӃ33IWׄU +r >5ob1Q[cS(*識 ]-0гޠ;P$N\Õ*'uc's3Y696ӢLj_^|a%Xy7M8bگO?O4㫪*[CGVHdmXD ^g4$7Q0bqQ?mhQ1BRغYdYF5ݪ22 -t[@9d Y;l7j|} imL~MZXbqQfW. CW\iƼ)H o ]Ʋ/ee;T3.V緹}o*V&b|V AHTS]/;Mޙwl?\7w.\ٖm1BB)L;B9R/@Z$|,/,͍NsgJv>lNH!fԝ7vw5s`Z쿻Y(n $$$0lCCE i*OqtaU} m/JZ}' F,Dڙ xagv!k+9' .^Է| ,Ņi/ID1=FӰkJUm$@PZ=Az*fyzz  ¿kۢLy Uz@v.Bh[ ;0e );5Mq C7Gt[6f _d. 1 SbZv^m,A`r&{aҒwm%UgC#T%Un ^ 2zDӵ~lTX +iSOD>G;@nbfQԇ=|bA.GhhO-(Xs:bwe\ _6<\eoߪLn 7>eEn8G}7;±YcHld7%+^ZR4J!Dq 45 tnMp-YΕIm$ZNv 1['^bpts ]k;g;^ˌܝ>0YJ:[IV |,n3\6 :ge.W?kV VX5yXtL_xO JúOۃBkwP;Jo 1p"\MVߺxy-k_eo+L#HDgZ@4٠#rIXA\] bnL0 syHd15ab9JND߆ENκ:Ɋuh*kD=Z Ֆ3> 3g\,y8tT,WVVe#["ybt BG?n{V^14m%@%)D*bWN<+^s;wfN;yX+NjnsP\[iGL SNY/}yZF|`Ub{YAaAhHdbI!m)m^"m[g忎@IFxIO:A$yR&US_xMdH\b/ $ á(I͇V;a~@I*INDmBJ˵49j\[TpCa:PE;hK'EyϤŎfMH s`<Ak ~693 ̋%& gA.`#DY=hOkR(~PYWLv6O &72V*V-,dU{/B还8:1!½ۣ0OpjLPx9#2RTx)O>(fEu?=qtTi8]ۛ214MpŔ =C?2jo9VvvM{+MҮCqB?e}Czet:+}өS:UvF4Y5(/"pJ8`26vIEmXwJK~# iav4*GO (@]!LI4lnly`zJOwޫbI2Lb>Fx4Aq32]Fik=']?D|++Kd2=[e2Qe 3BQ(PpzNRג<\pʭ{vFmG>r_t`Ş/so@&O7$"Wg|Vjd[Sx{xFXgȭBFt`V uH`v OK:[Ss5p>b go>I~׸YHr0;f)ȋ?yB^p]pQjNnP>?F(n8=nk/z`Kܫ2ikX$5∕%UAt8Y9-M,MTಛE7+򯳦4w҂rS٪Js{8:@ܭ$oɢ08҉w1h#ZV5f"׷R-{3)Y5w%UǤY1$Lwԓ^)@ユ4~G(nNS&f.gn$<Sj?pRtfoڙSK8H{eP뇯 =Lr;(#xEDl8q7QNԉ5%WF;CFd<$N4Ș1)U+lf]F߭Dԃ믛Nk35atZZݏF36y 䮢ayBMk4O +&n;E= a}4LZ|ٍocLނ=uPEcݯŰ$sg󔴹):jN,7썸/6-(?1/~`䕳5߼yS2,]f9- u1>:din81$ v؛c5i'ކ2C-PQH er5yfh;.c?ep/} WND'z#5+pS$bz(Q>xnzM\vfS#WnTGvC%ٸϭϗ7KE(^DIQSNQ^dkM:OY5qs%e#?h,(51yTZFeo!ZGzp.[l(C*S5 NߏvՆhZtƎ^”-[J<8ksf+#/RoYzslQN4ⲛ= 'Qܒn]K?D s? gOƳu. JNeKri:'n %r׌gZ,!ʞD;η\_gpw/REѪ:ѓɌ^("v|$-Un3gͽ1K, CNw1|&Xn;!6@[P?>P 9|;깭3' Q2IzM r-g TҊGάoM:l^Xl=ٳow LmaWvġ&UkܚsޣT)7JagM#G}|ΐ9}V lu[i jMuq%F=ᛖc UPM~cǴ=7 *|$d ׿q_;n5b&ݡޜCr~'Aٿ^g[9E/P߷=KBqb$lM?[ 'hUo_$rW#-ujXǧ(0Złcfs>o(X ؓO׵m<\MH )`UpŜb?/쒥|5YC+"5Pƈ.kb3ˤsfuƆ)]GdswCyibƙn7Z\{7gJ2"n".l{LE|Γ+x0ɉzdW:];V_u-F+$DbQRWW'%-_,i4Q>?|WEjuioC˰"k(|L؊^郶fxY$|t~B;gղmuG*hH#˶a`u΃Aw{0ge#+ x@+[I}(=JVvI5=b`pbh$mj_;3݁Vd4ޏoZ|.I0;7w%tyXW|M>o 90uZ4dZ%ZHR!~CznS Aǀ "D\_Ay*]95u1[R&&_J$;= ͞Vi؃ۍf7 z-^%7l#:R zo(b#=ɕMڅ-}EiEva+z:!:m'(T KfZF,fW1x K1[Ǝ9>}My.8@/yB6? EdsN`L0Z/f^LDo(Gt۹ w4w#qǚҪ ľvO;c4?f7Sdx"s@88=*gkuW$7h"ȷ(~^Wfp֚?_Z-jXoV}ޣwb6㚧%%{غ/B]8~|^;"@9yDƣ U*#5bD1 J[ .@hWI6]3\KZSMƒ[PR [3#ǔen }DsH]KObQr9}Wso0|Ҙ{ \>ϴY7^F{S~s(g^+egys,J5 #C gzF!#py04BMC?۷KNe7]X{lqf\%ݫ1m<~4]KW!ֵh;/A7>,8 ξD(ѩ:hCmREf%F OϽ_gbO}czL4Z$,Tv\U/ڐNC+2x2KNmcq<-rHI#D$Df"ģ6+Ji X2r~!-vRyObE:{4>P<"9.^o%m!ܦzf svT]K$:-Kv`eB͑=]}em c0odڡI$"Otgc+R=zsXPנ, ']K< ? {yy 07%0ꝧv9i;|k]@1Qxck}(W u3<4 _4Ϯ/NܺgtFtKt 9(@N &v_Ϧ7PK\N1C7nuvola/64x64/apps/katomic.pngUT mA?PQux %V 3ܱ1#X2# Q(Klo*>czUMȞeHH*[Ũ~QTJ $e޷{Hu,3?9s?s9ys ] /òSA.a_w3ξgv^d+]8_eH\1Dty)͜u{:Qg. ~RlHZ T\m$q➽߳L^]I˃h9 <ꆋhd~9$bx~ҢJ=m1fP4مW7`sZ1OW$q|Xʻ>bܙ|_%$1KyţRV:t֌6 Kޅ0`Svd;iGuح_ GbHx < oPfvVl6)g,K:J!(V샢(h @8|T_EXGG䩦&rKu҈4v|yΞԆ sLFSg$a.ԓNhosTS׏م[TR$d_<7B;N[ҿr1᭦DWTwgO1z[W57 =!q}e9A _A<~Wl>=s]b=Pp FhI} EMMT]mB:zBir1™Kh KL$?˺oQF(J(>W=Si[)ՂK -$D}'eJ/''(ﶶe1_Uj8x,ã+vN>z6qcoJ4Ln%>gyn[үZ9q2J9Vy1{ahye2 Cr&:3UhWP?XWsƄLbᵶ6юETu2= E+g S$ơB\pfn֘T"9 Ab~iY`%vn1IbfN`G8[(NC=rŦvf-lf4m0Z!0Ep|-ߖPkhȹ..ZVl}sjO?p_VWO&sNhrXq-#P .:~xQރ85pBddFq ;ˑٍx|4j =b0L7au6 gm\_>|oezxfhVc   fGA^uѻ*r#E׷UF3_-hݞA Ded^֭Zb.̮iN/&nG^س y;< i 8KK잣0U&^-:R;=1|XszN >MrmwHUTwǔlEu@ mn{`<"iJe T.x-~d7 faKuQ^wz}w++1GJM{mVyݵQ13VVr9d{~c Gj@cr9|:"c qTf4E!] w[5܌V #pu@&Y<*|>Gp ڜFNN}`LKJ4y)m?ϛ琗7ĀBx |l{p浆 OϭPرOO"Ȏ7]Q cS c6eW6@a*uE>4CU#O;./U` JI,Fl #FPGEx^&\8:a3վQEgFYEpی$Ly|>S to5_d=]4@Rd`TFKnRL'Kt>jآK9@d`FvF ˗ &-r3SZ#Xj>!)'B-H{m*)& < sB,hN:gqXGLHpڕ9T+'K2qR|KcZ52I3 AӹMCAo'z˿h;k6Nި/.އ y5n\5=9(m(jU8=5\)"3%=tUq )Ç(.YD,&4aRðd#@1c6!o!ex(1z. ek20㉗D)3+,$'#n`ațRڑVPҢ*DoÉ`*r`P$xiH&|ļg5'q0[ŊK[zCI +joD<4d1gkxDhvj$Mba\*( ON4v)P\y|p +iuKcHTZs[ZEH4bEFumbbd њ {(- d)yۿ% a>?=ã,k*%lkWR-Xo;E\^~#^k("S9E:2CN #j@ae3çY[w`'--u‰;uh pJ$FiJix3ͦ.s/[:Qװ- n;u3gq[=;(QlUc1k;](\KqQ***Ce+]{t{H|d!5DXCѴs$$sLc~"xll4njn2?dyibbR5tUt65 1Eb"Ѱ&f_ X?5MBc.}Ŀ;be@aFo."$4|I%ĢaVȖ4XO#/'YRa]^DfVNՇ57eLtկҲYL}7fpYS36 64\'h>,DJ_Z6|vje,ѧ@adK>qFEKeHxyTd*DnrQ؋] Zgn\EΤ h`X y_> HkmpNj[t:ՃQv'O̗$;)=\x>$̾RYJwB'i#h?ZG5I84{L3t彖v=*wĹE#dv?tmS@N!֐s55;!5^b&j!븭:4K(47LA4.??'4VKa՞kud1G]>p{v&g͈qfSkg$ Elһ%ԅ277G2vomsԊMA8_jEd:@WfC{ )&,B9m@UDcJ%/|GrD.{[UUmҽ (Y- .]"io5 22+)CO:m CǟW|Ŀ7cé F0)a0b_L^`Pv |P#/TxC>hΑ-E.Cj.sEEif-V @ e|txBȉ L\1N*!(xdrSMLyrejfrt8jco1YJ?BrQpc2;4忚GL;cp>l~ "K$~skzO? ?ծ.>]pFHe^L9Kv?l73T0p?0\{MՓ7)v*CyQIQ.j `v\Sܝg'4Kq2~#rպpIIN!^*g GS+'u؛Kk?T^ {T8Trk_,b!78̀W?/Fj6JSB&Er8N*yTi#ղC_M偖@@S\TَY\|cī&AL,B5cn*00.c d!|x/7 lq&XYm{8L7OQ!}a!I'?8?Q|Q#}UǁaTs}!M5?OGEX}bxׄ1T˭u2Cx̄PV ﯦ73:~ ԻM7a 7oIix0`Ÿ*5]\tdD`v}szT rVYE:.&g95v{zq/ .HL S!W_w6e& ǽ㜵8 3-]\ԸCb%t{꥓g)DK.t@Z昜Նƻ>'Ȥy!za]er띕Dnm2Y;do \0iҖm uUޟ7}!}dǨSTUvE licԬ $/cՒkR"=UɟcFŠ'0 L'/1#<ݧ7Bq-:KT݌Չ|yuxҘ)+[{+~*@儦sNE0o+!{p^j 51o/oL2#:PC_]BxBA"n_]t(xHo lA'xs}҄pm ݗTua6 }U% =۷H@PsJ@LC6mt{0o%vzk5HDB~VƧ"Z^Ċ|bךgEFS?#08:O= BrRtd=<2J)xf-oȔ{'1>j^@FͶ*Ֆ0mGZ553o;˽{^ |yu AV,\9=Ʌ5ԽΚzRSWθ6HtUYS_"ըvg!l0-*Q]{x'\y~ʼ,umճPd惭Kjc_]^t'6Mf Kajv @WDcfl{:kS$sD:ipiGhי:a`(&Œq7,g~cAɂМeA!?ClmR5i#NǍ-N?tIS1qs./\gƜa86.zVl5 ]_| IxTJTzL!Y`/X&fbR\ƍ-,Hbҭo(+L}ږ%1cO~uN$ձ;=g4|ݟvv=%^-ǀ]r庘Mϑ0J:e t1F$3_߄d;/I+aE=_IKGB;T$Ea ^8j6Gݲw0)Sj->SφwЉČ&9F]ew@$&h k'J[7p|f}y*ڐ=+X. )]]19 J=c>܇: oXOIcM Ƿ.rk2ؗbx!Gwqpǜۏ 1nr6)Sxb2Y!C cFE?ƀ(Ak9 an#B%\㝻-ϗKHZ|qru/ C4kQ -8"BJӠ@XW+-cJm|,ww(tfVJ^z8vRwS.`º _`e#2luD׉ Z% YAS"eFQ/ar3ףG5DP%)x_b)S+qRD<Ժ ՝N1Wu GA4%ҲEV boYCW6^VwTۙ.1J7ҡM Z*z 4ݫŏ[(PzXh oFqWA(Ō/>ɐ{C|0))c@*g'LQJFUpZ.Ѣ9n9_dU3?!J]!W-XUNCtL _Q1@mem7~`u֐ʀΆJlĭͰ[81CbFeTq'e8ʒQOcx5mŝ{tt?y^ww/:pu wR߭|wa7CxY9Cv~hϐoL^ yiT$4yv|bzNL/<5dg/,:f/2х?-oĬ4&чU##y+,*>A[m* J nC3Գ߰t36rE0Po 9-R )ǂIA6WOT²/g1"pie <J3ۃk 6xUs Fm {:T6z-]NhjBK#vt|qHhBt%'V(\ߡMkbcdEcҊ*]tE!<{StZ9 DKzs"fֈԈ~e}|yl?XJD4:rt:;ZYδoK6 K' p7ws.p -믥 _J/agߎHdo0\)Z\\tODqQ}0Ч#) PNNhq%##fvįƯ[Du-U%/`xQtW"R<ίV[r=9L29(ނ3潕 5:#KZE;7eg@5xfҭiM:MrG'pzz1gg|L>-z]y[؞3ŮyO CyUbgy8iVֺ`% vu,#}9'v…Pm>reYF5оή1!ڔr!=RL>!(e" (B vMoV 6o dX&.*zHc q y]Nv%zt+8;XPe $ق.]ݓ6^[ρ6HG!e h29%`d*i3M0_m ^<\c;Dt,HUqS+E؋VktƁ ؖWtUa :/\96y0ջkkL}N$Asjnz/M1Cp%B zt/̾j+-~IKa;BKȜ&^#AuҰֱj:Ѳ'PL ;ze_ìjpƁ~hL}Y WʝVha;3|w4 [/lwXk'0ߴbcM;)>z[Ë-f֚\Ͽ;tM͚)9j$~5/af?SƢ0_=£p?uǬD!qf,2G5 0|,͟uF*0 ,sƹZóGK MOzCStcd<&9`jbtۧ1mY%A@ʸζ,ipCZ nGdgk@J=r =Vy,dǟЃ=X']foUT ]q%TᲤ?9'E}<)L_> أRt]Ş*OYcιhNM0w_ֽӊ=Bˎ7"q6H15hP xkwwucnKR*(zJ5& j p$9+9-O!E}z/@N-#5AE_ .im-uSLAfq̞f[P50yaSW eyCg'Y&y6Ғ޺-?znQJc>))~gx`K囂W07D!tC*,pK旐QJDݮ>p2p,4~,Xg'n݋$y|N?t^o 6IΝYJzm6ѣhR;p/eujcJZ[+l`<؇WwHxjfeWMӽ-:[U*\JcbH|2b4r-ti]'}1#GQO1)z9Zu)RE:Ñ-үMUv]ī9˽صŸ&JjJfoq/5^ĹXRyw\U"(LʉvF X@x FP}C d0G+ Û&;{f>G[woEz*Õ)"8/2~y`kػXd--rǻ"ļL?|U~`5Fj gk^Prd 0mS~ oA^U;+b|sN\_`@]pr5Ȅ44f}i++TXwoLd=u=!Pt/|_иN~E,F*kc6ًaQ#J}Y9{h0&@$F5+aɥ& JIڲ4#=>6Ғس(>IªL@+5@$إGBR>VDU"r!7<exg v帾1qou L3ļp =ȇ 4Qt \%_6m%7@ndic4N%sa&+XC6ԚRNlqRg?7ѿ[X'6A!/:=)t[ilGpL1TL0`^0UO"<5m eC̛b SP)h8<7rm"жJmR MRK,jU&ếħ] )vQ%gx ӡ8?5:d6\"Pi"@jf̘8 &8iCU&alR`BhonZm6!$-XR~sCx& \|s4}?jAVt} g ƂiƘ ,SzogzvS_ feA]Fhι`sPWo0SEUO+c0!{*,ZuDn_MBLXhW3I&hMc;6̓:֒vܱp|7gy_o=WȍYGaz>#h|+iuYkd~k6r W~hn=?tJ 7SdBfO!gOFX8+Q࿊I>GɊ{(i^z$-9̜GK C*GrN~g? י= S:-SZ! O()QiGQ5nDr)چ1w]nlϩk]C㴶Up;Wwz4,3#eTҷ6ϫ3bCam`497;aY}'fv}K?1vKYrֈ+i4G 8z9*r%x6n4ܭe38/ *%:sI=+Q_]*ldjH}TײH8whrFM%7Fp0QuOve^ZؾiCa!WC3eʔh{ɞ⁰6<\K9تyQrr j8՜Ψkt2\+9q)̗ "NTLޞPֆqۃx{82=ͺ!&Լ$jbOraZ%WzNQo5 ^ـhwiyxU 9z5>W酧X`v ;J_,"-V@TF7,9W* ooF?GPKpH1Qv!nuvola/64x64/apps/kbackgammon.pngUT fA>PQux yWP/ @z]**MHtQ$DtAP m^iRtTZ }wgv̙ݗ3;smYY`?gnl aj_?,qPգt_/p ^3 }.eEu1>;o7/M47p(  i `{S^%WV:SLw{N~ %Muk:=ۿ}Z_HBG嫾iF/q7eģG[021_p hsiO^#\#isuՋN9@|3T`k8HH!߂ ]g>U|`xTmӆ/ι6FnιAu2yOv ^g9KΒG)ot|삐Yclč5c['M;_w5cd9h^g'5.ꪥuXUYAk)Y/W۲:>Dqd|p__²<_'bcX >]~ww'iT6mh<)a̦9zL;ȭepeJ3[E _¼k `Y<uw*[QQ^Hzm71C{NX*k-"b2f@X+ )!5Gb2[u \ͻE8n%g̗.s?L|}T!:;dmrQ Kv]10ev&d\h\IaHAr20'Q%;I}d;Z&G.05. L02kǣՍv8 gΩ9MT7A<5$GRE"`dDGw)~O$ R\J-@rURh0F2iԲ ƶ5)oL:ٛ,!=.>٦:/qY6Y:Jܧ4/x ,^<}W_zSTw(rkMynjlufxƃb*"t kzLs[N<˨MYsW1D{V.eSY׫Fيs+ZfoW6~S4l} % mj)JD-'LNʴRd" qrn+^C~50/ADm)_ eKo5L:sn ӏ '++vr[S}tȠ/ԷRPNH #+I)3`ڋ4@ ).7*żAd'1oֲZW8C S<8.hiFCpX\zT_aibyS^C9j_S^!y;ryjs Iwl 1us=.l̋tC(>2)LvKο#l`EԆZ3svG? SpX*+Unݰ?M@[^Fٺ\xcG- it.Hv3GAhsGB_R0U:9*$98L<|p}{wOWm]EoRQ ?k.lGLIiL6(T :Ks [z\޹m`;."TRt =%%&pE=7J"˨KIN,ɳdWr8E^ {@ni x1ƘtЗ¶x'@B8I wJ0ԏF4$pTRԊXFm-T>3.S *GvD=IR]P E/r5TWȈ+:Ϗ3O0U- ikZ?MKxBO$ HK:PDe[a2"ffF"!7{ &_B}=aو>yNͺ֌97 g(}SnyYFxvªQ(rf b9kcOmDY4K.FɹknMdR#D-{t-J4\COz-CCm}/A'udHzJ()bޯ%ۀZ6!6ke,t%л9^8pQxK+Õzup] 1 LYp3"3Aift??%O0~Z9D3pP7J㎪PhEo ǐg/S- qVSh{*bp#mNbqWD⼹C/jEjCW: ' 1ybaO?R4_Lx"e^ j c|wզu%N>"PZ%t)lPܟ=CA_|alU$ac_QyBZ}[X2gۿ8axU{+xr.Qbfm$+K} SS.lBH7+b0דAĸX z(#[;>2$h!ee]J|(+aj& *4^!o[DEm.j3+tt HUHr@?uj$|YPCi5h\Je8sHY1/Ncer [Kg۳JO(b | Jx"a>c6A昵S.*‘eR!R'ͭ4s1;\YN^ÿ ./o\nlQ|Y,4@oc^' &EiސfhXMQW)!ePl*.90WԱNv=/9r j(Yvp]+C=v^G^f,g ـ2߯v/XA5ss*U|lM2 ujb$3_:z[Z 6-#[go&!'bCkRF#W\H #i^"OKɉ!/Bn(J'ŀkKD87_[;IJUڛ#!]}Cw@kuH?Ƌa`Ξ='`Ʒ$y~,3gg|zS?wn|HhgAt,۾b|e%iSvmOq=2m:pm'YCoјw=^#P̬.q=a.m7sPE@#Z%1xXM2l!o$R4#̖$JSV}(^K<3;gh #egbϺҙTuY!9sTj,Ոo~2뗥CK'&?`ʯ% =+'=MX"0z6PG驃BYY (a %Bg86)n+GX- p/WaP&%Nke"x d` 7{[ LKQ>72~}vr?UȆ[ oDHmlq(WQY[a(0I+TJޣ|*YqoEjԜcEGzRl;Ř6|JcUdFHq7Jd_s_7J<(^1T eH ѷ%#q2/"bYo=#z I:f3_?{1n_U0gb %@Kwa Sx3#X ^M#ݚɑhPQux {k{70 Yy'D=_r@e.{: _2z`AϦX:tݽiʏYe+6yэ|p,Oyϫ܌iu\ w=< 58KZ[pq@^c`z|JD:sA8=VszrF81TLjljKU6`|_o;s4 A4]#9CғB_{z&Snl|l8K}J"+7Abm"/7U=P},8p ">-×'SE`)3LsDq+Y{*{p[FQm鳇n-#=ȓ=tc9F= Z(ɦy}[}+2oܖWv՟e ҝ*Q8¸aN{OĘ:ե=+=x5ոj)ķ[{Y<2 $&+&99_ep9ʢ_å[a,D~jGkQmީO (=  rґ/aqqM'N%l:ܼJ9ʹO}33 nڝJ).oWc;odF?Gmm=K+V|[۴M7Z+vinc;v^`!cnB|JءYoˁ`~{re"TczN~;` #fԳFF)L$Hu#dDRxoYPqgoa;uؼ< q/`uc {f[pك3OݟЂ{^0/BQ FUŌ+Ҁ`tHN]ƆD+0Ft`cT%Է^өO6~y( < ~X*ݺ\ޙ ^6hM^$H^*8qHyj: 6EaLdAbYrbo8t$-.@'xy]榄5 fQ.Z#W5FH]H ؙ X+=6Կ[+ޑO<$;j\tP:|ZâǷȒɝE F>! cBŝ9(0"-+t)@m m3tᾸ#^ޱq8D @yxJw$w{s՞$7W,ͩ9W3$]. tR ɸ5'3m{d@k&(3QSCiyύK[ fYWVArnT˺>Nޚ=փͰ̟ g[jW8*ҹߝVs;>~ݾ @Å ¡seL|T9]P` &ևI 3Ҁu19hn{#D]1zNXwNA(sBX=i)+ICW#uύ_Xiw'+WKp;vh c (w.JOVx'.i!cDG":BQcDܥo9! GЬrĻ.#v5Mur-Y'V%۾Mqj݊t"8ctg cѵobNSO .͖r`"AKP8!0du\N\,`N#phՀ\7_rTMjtץ586?wFWPnU…u$hO@A~ pqؙ/xIa  3?坹[-򉣰)$I*:FRWX eC9=`0+orۓI̙W3p2(7-i7qSc˗j2O|b|O9Psi#Lfn"y1^ :ľ[~/=o/Rbe_$ʙD9GbFOȯl!h^8- 1W1aZFC |Bm*5̨wdKѾp$/MrtP zX,{gHPxafW^sk 9ՉX}G2diAxU V6̿12uNܨKgn<#GW,EZO(sKZWx_{we)\ Zi_4`-N#}?UB.%-ǜ`4~Osċm[Jgn,*$бqIyV2$[l#%-fF~k*yȻDHBCМyN7qNK+e3v5=Ұ1zxa2'6yŇM_FuQh^1>A3XWX}]mQрmZrZ,ٙt cVשJUrI{q%N-wlAP_}[ʰ'=Xn=H@ԜhfN,H,˟q%9Ak] ZM4J;k%5-TWhWWm<:ĀN+1i9 <.zcv//aOyUKHgn4іe3dz(ԼJ@AxS"kH{K*rt nS`mgRnl7Sߩ4״m;C?I^N4԰1VOoqh yY7pF)FtoR(Co }&S%HAR|W{VBET#`)ў50,#.[ŧPX9:r@\<aR<Ɓڸ)MsbEG كd t]{>t*5)(1 JmqF9x0aXET 4 Q}N`s?qi*.-xh<;r,`0KEoNM;JL ES3)sDDt2( }ffL8O\ICa&-%GjNHg=s`&t~۳SϿLwn}ȵq߰,/zaVb5]Yz/9DuLm:{fe rpw[Gwk˓V<>9 }ǞGٯ\Vo_{яL&ֲui}GbʰewAsJB3ͱ|ƺNxwfԧ .WDCzUq FX ,E1$|J|.WCNG Wh R7%%{IVX~:̝M_U"<+ɇϧ_VU5 @nğ5黿wMNqTk؛022};6 Dl=6al49b /.0ol6j!@ q6˧{+_)04Jは  LIug*roAx[b5I\~/Q(ipnUE 9GA Ąe .dQѥ/[n3WtL;ݽ|rVtLl!$쒝t{rֹ{:–a|[In`Et L~N>Cq*ʰO^Z`;א_U/򏑱p+ö{?}h,{/!|Ylc,^ DUT][*{=mbVa.y:D.M [Ҏm>D?%N 0Gf3atլܐo߱FSB-#!m;{ŊŤ> p-4JوxxhEoEgycjp?TTוxMmG~o L@93q]63:#K߄y[_Xa7 g QQQ̓[Yw)etXGh/> v]^\e*P'!~]Y' beosb hO5SQB"Pl,}qVK} E?rNl^!j?ϼ8 ޡQ`,Vd#X> I)r^Uo&3<<.:"@Z^Um7>lT3rkbBDx5պAˣf %IBgD^"I16B\kfUt'e ȳt7q;湕fԙ4,K$ 60sֳ.61k_᠞"{Z m[躚jwN͔U԰b,^\ U"vWdZIޑԼ80i!#̞ (3ײַdۥ^0)6, D*/P6jҁʦ9^D !W0Ht|yvQt+9%rl %3~#},[?`ۉ 1fzfMͭ;quqzphuXH/-1"_cK& Z5iW ?$+f% h97.vb[6p*/*#IǢru/VSL1 2Vǜp\pN@?5>:AOTxf~>0"ftIq#GCB[,Ӄ $hl[ X)%ĢXn0OJuC$5q)걕9 I="5C/rsR&fXvfǓ# 8OߵJ|^.Iߩ>H:Do>^o"a7mYMkL06 ;)&30$ iPx3p'&[CK& E! ,܂޺rhϛ餬٠hcMelNpb:[ό<'9iM뚹r [Jn"Xhh=_h5ּyֈ: CV88w wٜq0o[ߕSƞts ђhAWҍyꦐK0|AJ0+>>T&;v0!Hu'u@]զWDδKktq!(Ihl;~_l3%.ѰBI:AWabc++ĵg5v"K^i.L4 uA[FBLU| &?BׯBz>,FZ^x&I V K\8l {#c$e5]B"I&>fQpn㚣9x$tn8GonVA| RsetKYz>-Z֨:K콿`VY^<6>o^VAao& /HVHu![6F;EOWJ[QN9*ug_^4lѤO^Ҡ6B3)QTe\"VMKtOa%>R[Z l ='e;NcODYMWt#sc"jTsͼ2{G\U~`4&waH,ݙm|novٯq Y3ˎuNtXTi= Rqxo%1matMNT^Vbc4N=[U!LtN)0<ЩlDZOwaAk,\-yM8̽j6WƔǎ1FNsDv0'lZ"I5Tf|Ecb(\LjX/yϟ !P]j8To\_!h `.(] #l />FUrTOÙzIujSՉ5珗Y [.'غҗ V-p-H'#M`>ɏ38+"://ijFĈGY`BӚ N'`G ͱsۺḠPKG1_x[nuvola/64x64/apps/kblackbox.pngUT XeA?PQux -Wy> |j\Ho4ȴMҶ$)6YQ/Hiw@o/?|_SS^2  *uq<3h]ksS wB(/j}ɩ?}J.Jsߦ:Aj4;\,twIO |ɞ95>_1Ue"?[!*GK! աښnh1+UWW7i;6:L?s#k)&9ER*.w?b,JqK,^PҤMZˊu}H#GfcG攻g4p7ܷ.ތbƺ?87y uܴеUwG~zFNNf ;z9۰(Vw:pj6tΊA$2^+w"eݺk===6XЊ-&3fC*<{ͽEi?hHΪT3uBv?SS䫯m晸J&h?' *쫃-Vk蓽FϘBGnr (&YU_ 5hmzeFXo9(n %_?P$A.#fJRP(3>OK<АF"L6NX(ju.zJ53/Uu^pPnT^_t t[-(,́P)ڊvbV6 X/ k5U=ӻFf%{*DAGX^,ި)+bK+ r4;QfB IP$Q=LX"^4D(^,NH.rX.ˌmzļy0ŃT]>Aר(RKrWJ^3FN䑀UXƉ \摵VвA2 Z4w<8şLY` Z%}Oh5J-tT'z.Tꔸy;N޹%9#-j Աj` 82D2; t]N!*++ͣ=13Ӹ2-K9 .P/o/yII{CY<ezg7i#Wwp6uVB,0'UD:}/N.[y=яVÖi૶#f [~/%.Z(NyځAn6tC{+vʁJnALEر6*dB( @҄4`)F]T05*h^(#)"Ct>þ0PH9es#V~xUs`h> g$;@(E6?QtTXUߗa}ڹ_%}s9*35q%\Pi`d-A4KE- #cNH @:kg(pnf %sN 1]յZ1Q{x v˸u a@FH]ԝԐv=0C,ᙸwÚܪ2 E:96GPpf' -Dh 9nP$}$$qep lxDSk0zXm:pC`8J1qmΟ~P\9`HaYLm${PG]nV98w/*;K?x2r5$qxӫ0PcNW 8Yѹ0SwE6rQk SVD)78@w?RQ7gMiRm mߩi [KM?*p{W[AjB5~8*WAD7cٚ%NH6BB(@e_72F_tN&ALnM}U5II9].osMy~]=9D.efSFa7?jFd`K*z>$FC!56HXߔ~Uˋ:kF;T6KSaFLUfeKPf & Pc-H>\}54u :s'SQrA_)titXVJ }0oh^}Zd5M]iP^YZĺ(תAD`r8y.wxMF,M e^b^$VR.ਖ<ȕ%Lfw\}Z'tRWbٖY9 fY;8SQhb+ b3 bpձ|vڢQB<鹍o\3wIz-m:I9j[jNٜ}z-ݙšLCKt^&X%[Pāג6lHpF$FFp.uP @umqj IN3%pZ"SQQ(ƴr֜iϻ7Y66c澕=sMv}i]xAy/ f~X=:lZU701~N/1Y_7g뙖$ Ƈ ҥ3?s~^+&)pZ; l3UNylf_/$f\pPeӡh=|KPKYN1n0nuvola/64x64/apps/kbounce.pngUT mA>PQux -yTgǟ$d&$1,"ʒ\+ HصTyI&%h`o*Qk]&(Z @!Y!Ksf3<{{?wNFlYO6g oܰ&ҸI$@mJ̵Q[S32'>56{^RBd/>;1![k8۲գ(K0uug68= IjIu9TsOu݈R)sS5'jǙl.%Z0&eۑ8n={SdTxc< Co'?4X(p:e%YQԒ qR W)s{~*٧ej.IfJv^1 {78E)mPCZ0Shi}-Ͱɯ(4 b0T;ŭS#ށA=oB;G:A;s7*Ӟ8t G"N/Q~eEߠV'Ҍ# !ʚD4~7gY'XOs2l+{Brwj!MHO!'Oޤ'{H`ogO'LCPen#aVe'l*As*-u#X{De\ً!z]`qLcCs¥ZT(2ɞ?E_ }žHR>.2ǃp5 c v3Rf]r{Ң61>ӘGY'a2 s-ʯe8g<=m}UtI]j4 m9eRP?"(&FjOg1,GGugzJc6r*ulK nOS3n"@j|C'(U6LfǨ琞 XζnmfK rWA]}KT]bqݫպ$O$͗A8`8 ⧾aQ.,$ [ H8 /Y(-㋀_@܇1kĭ1(S#u} YwЗG6vا-^ ܭ#E7VQ[ZZ4:SqG!;.q>l>Ɲr1J+l}ytt T>:V: $ˀb(aCyRy7F ^{s /{S2a,ޛ*ZeFп\&\ъ aL AuG=9bέw<]FƌF*ւ{QmfrxVz wBx#5$$rٻ.[!Hig@>yv]9R6bLM;mG$.1Y@a`gseALȀRaBb`ʖ g(Eo!vc #  7z'yHPɗh `H5R{'Zʋ0a¤1H%+@v]+TkP}IȪiFpp0lp6RA|a*T>j G-.A0sP"=At̽N(>)qEUTKOq3"<,:&]˜hpa4度ԠP)%_j6KǑ[y?,7siucs[%ϛMkEE1?˯v2Z"у+#P47iP95̴ΆCaXMO#{7,a /F0WY$B^V2C3FE:ݕmY}E5~YpϝllТ$ _}c:=>'1[PAfˊ#/0BOբy5E(>̄CE2ٮ?E${+vբ"j9 vd>E wy+'߻v&kճ4jx=agmc1VbڦoьD^-a- 3 }Qv5> sB~go")V BW`pq(TEׅւ%{˽pwXB'7|аG^y{s7GYo\>ő劻%0禭]D-#~nkC==vS)+ >ޤeOjlͱ}-Swlzs3! ZN_ec;N8Gq^Ol= [gOM_$y݃ߡ5d볩qd=o\}ɓ⭏ ~v>Fp̬py!3̲r݅-eDz3'އo)^jjtJ? ,Wh?dBqvز!:=UB+7MV5f@gɷIkQP:ݦ7hSb۴kfFbu{A1z#@ݙi&z&oa”waAtvS^ޫ:*?āi3"K%Aws쬴jL }Ur%R=J..`6l ei&ٰ3|jJy~l6ePDOߚN ڗ$kKyƟґ=sِg<^p%`_i;:?;imU-)Bo7񬝥Z6 -Κ߳'=hN_WLU.ҡUcAi "#[KNDfXsʇYqؼ!`Kۘ; ƖO }5ċs䎝t/u/:7:jo>>ulbxS#_ z^K 8s6ZwR؟//))Q{>%{b&;erAA[T *ryYq[jm_ r啂/E_We<1zNش7Q\_օm:x;6|iT!|ؠ?`6Ii٠=ZT~کZ0m\nv)XգRJߝmcqd:gxm\ePKVN1+v nuvola/64x64/apps/kbrunch.pngUT mA@PQux -VkX=3!BB!"  A@S@V31<+jZ"RXkU#*JbrJR i@1sfΜ^{]d54$0[E"`}b P?lw$(HdZʑČdۛ2159"9qd_̽Cy F{@* B@cV1vݢlggvk|"-"[qt%QŁaYpً?6^&DKqqg8 )ѸkZ]BDĒuepRJ B׋Fϟ7$XZ6f@bǧBŲ}}}O ^Sb1`0P,--) 㓶6?ijYG%4`hIJJJ ˗3Ȧl? Xg%(3qv/VOvR7>!O?8pof҅[=!u{P;4*twwS=6qQhثO)0 /ˑ{W# f/QJKvSOHtRy-@AQJ_ EzڵJ*&(aϙ\&_IOO G_`1ә '#~K3{k^+[ '˂ǐzgOU/z"ޭx,z9~f__l;0ڥxNxK6ZTb);lP/@ R3ݵ.?|W݌*76uـ4K̂#r0jGLӌW*(ama mj{n#!W=h#M?䇥pn Ll=jg`l\(q ʜj4^)MtK33; @USBKY3 dS7,V^ PCa+-4&E>b޺7eBpl*sdٜ[4cJs/1:7IX8ƙ'%V]dߔSMzP }f_-psMdt-1_:U Rp]`|\zVr!r/|0 O ՟9m]h9w#2OPr$SPU>;b`رr=c"nyg)N4ݜ "HOљ|=񹇢[U!?.1?BˉsSAXz^ʿ8m^T|FJo;LGt$KwXXNI׽h_79~=@LT9|rO7M:*g} =H$>/Ƙ= 4]|ȦLpVSԞ۷|-|xֆ!pkOoT ]v`kkB+9p3I8f+ \xIYǎyȫy \üOy@YB.|3"ԈkZ'.j {`hzu"FI7\]jY=}n6U?2" ̚P`+Y0mepMJ0*(Um AX_q"?]tL@#IΫ{ٗVc,gA UCX⦣T3m;gC?Bty-}T^> OP~M&p}>fj'4*G;^ULޮR?36%aIxy{7P*v2 &%,y/d\HPݠ_q W-0ޤ/bw f4-'_~6ؑIw)ՙ<~C3D&3Mt{sX;X 0 OF\*s{lA7PKG1sĴlnuvola/64x64/apps/kcalc.pngUT JeA=PQux -X 8T?q A!T4223dkAYf cIKIuTn$Ʈ.qb, ;yy>}\VĎ g%Ƿ'}w+BtzXK HflB'MTJҕap3^KXUv9N y],iA*ҭaha:[=0 ـ![2( EF}nVV^wrޅ meeviؔ e$_B:lNЩfz*R|=K<]7=: TiFݻLmUJ_GG@xjR.bl ʸ%Il0gs7fޏ I}:-nۦ3|ҲիBٳ'a듗"n}w?fk pzH}R65GBdlӑc#}u&>m@:7afn[S983Yke.&v 51̿lBK?t \Ee;K:_+5#30 cb|Y_ty sdF@D[ CeqCdڇʵ]ފӯQJ}­)+Ƞ'HyUd#h/$u૚`S:l Tn(R,k+RKep-`7,OJ`bG\(P@0i d U@\ly SD#D>.>k^eK8$h.$<mق.*$Vs%v_M+K ܚ=MJfs'j9b:b[ pQaonOJF*>n77 u#Z߯iKzvz|r!_ M!ḲͤjwooT$k6@#*Qm0.nni?ֿXb 7#D\·Wc[MSc=!EYѦ{Ky Xp̍&ח*zKjkN^)ǑyHB=$[mܒ~ܲBʐE"Cf}`J6)nFQ8%~u)`sXj5> #ًL5 ̫tNY3 3fK<ۡͮ#S{1jT*g.y)R¿GѾun6;|V?@\7J* #yDd1>r.XSYGnpyNzx$>ԙϣ:Ãi D"k)8x 0(!Ebj//Dg/;}5>}wQ:z1Z->'Yfe'0G :*k`ao.{j>G MtMVf7eUk8`R:bY$V2Q$1II+puqmZk^. q $|$S]/ѭ$8݃-JKQ~Knia3>iɂș>s[ym$fMzpscp5͛ ؑ#VbIGGo^+m;[n+i  zDׯL\ZF?ܢ"WhkΒynݵP$Zj"p!oJSH)QpC] ־7L5'4HxGim3?nD62P# $auqjJKGnjz\k$ Se)C&KUmkrjBJuKglIV1p>P]t̫L.ԚsȄ쇯v#EH1%{E'Ϙ+PV|M"zoq GM$zF%!߀D}+uCb/֦㵼M9<]x۲)U!^vaYU纊rm~;蠤0D̂'(XעcbaØb+k*w(F" xuuͥoI&gzhxȲ" mffb%yF}\K 񧈸xu,ejfF~M3A9Ze=宨`珑3#e̔ttG?'lޅͫ~\fE**{X<ՎH$o.KށtQ'-{E)qZ҂JI[;v &ͥqMS|g}+ҠRR,gͽff1fQ,N{KBR ~Tݥ$늱@RjEq\G^BV VEj\v{_s;D_Xi= R)wh Ή4, ^jٗDH_':+j7#^H6aXd>9koV 沪v`~ У{\Z"?kS%)zBJѧX/v*c;XH[x 7CL1eJv{G?԰ȬqD3cA Zj~T'+wϡ2KeOOBHcMfW Cqsmq.1'}HHk,2lp.m-x=㕊W.rpQd]wT$Y0Gv? }`2Y|U-G kgV\-|Ӑ^{~O*֯䆻VPB=Յ/=(k_A0ln.Ƌ4W kNZtAv!"k4q4ۘCk{p# 8KGcWvRL *X^)/B662Ӕ+3MqOuNg2ጣtQC|'?0^4bZ-tr5nB #vC+Umų>9 *{=$Az!E _'j׼%p IQ~l#x%aQG*%Mt L|;ᚗ OqwX׊Pn_ 13.3'(=2Ê#k:wa9=ƃQ(}Ρluzb7q 8nGuytCpW|AJܪ+z+p+@>΁ d_p^x\]'EZ4viJH잇r\z x 5ms90]-|uXf0vҼqx ۋu1~ո0(X,Vo~;~48i_ڔ1}1f6,; ia붰ğ5Ym$9(Sê@\Cn:[YiXSŪf#Te,1e}4B ǭٵ&0[7B&3Wb7ѭ/ߔ%>2'c|ܝ[߰msD?68NX뛅4O{8=[OUP#O넚`"Z0P1FCY{(護:|Jm < 0Z&V7D;.߀qEP.5*Z8f;z ..f ~r\֠I7ؿh};!, "ɷyanq˽Y$\fo Zt#{6LnE]@ a6#DP?Q/ =|D198ΛQClEF(L2dL3Ӆz,Z\;G_E@ۉ ;H%^F_^yuCSbleTE F&p+rG (j* KB|ҽz 0DA-`٠ȝe0z^z\mF-_gp :NہAana|i%Y\gNf)ڄ"-aht,9_VƻNghh =}tq4 4Kd C.c31"p:FY's${*cqL} AeDRk,Qj|ZPИTBѻqxBF4A 'y?<ߋS1q󹹨ҟFQP!J[Vj!V70.7߶Mbnq+{[gR"2I_\r=ًmhr9.p ^}1oe:ѼX\={Y,JJS2 B< [#<XƝܰEC4J;Bݬu-ii''/y \f!glq(JD5Ŏ\U_S_pMV^~8<>Vce|eD|)8;.8OLLk\znJYI}4?S(j|Vַ2 YgόU^pyiz}Řd ?W~oCzΖRkuM^`Sz7-D9iaޫӛ_iGoz8~I}:ֺs<:ך}"ωiؓ07 q~t~AaǜJ W3P([CCYO[{[CBkn[`mLt‑/QlWwHɇF$‘mVJQFKV9;wyn~ZcccTnNB&Șa?dNYjj+A6p{Zz5V++ ePov7Hg%N&T~4ï_CXd"[UWhbWJ~%#ΐ$>>^0<>Ϙ`7 P;!8I?):/Zrȫߏ>~W}?NJy_[fxpA_t͌vQQ\Bt1B5C׷{AajN/Sm ҥFWto7joH*+3hYZZk 2Uq{O:`e~caNp9-K{:; >;:lLbgfg1aw(#We] ,sTG8+P 85蓲:Ay6fc?j_w(r͎|)8ozNj( (,nGu`S8dIPY'w``LLrA ZJ0F.]hϋk 3IR||^9d)u=XkGj<D<5q0;+ZlfǨÛ3~wFJi];%sh'Y1F9P Ar1}I͔/q̻O9\Q9ghHptHhqGY?PŒwA4^ÓiYsPmm I(TM 2MP9p HEqQSBP,G4ހg4dJ]GX]7>iHFPjCP'9K;*܏CwF23 *fj᳴5xDC t^(.|4^tkqƻʾ>P(txj)9 t^7oɥtǫB*lDRqxߓoaSp7:p~ 8elp^-%@𝛻h(aqFs{鼕 TR \D YbP SD׃j<#%WtӔc;ЯwjWLOULYm5JI6 (^ -H6P b@}b?=k蜗H@ An0 Md01HC.CLz6vR820tduyY9߼@Ad (Xx7mcPxB{uQ62(Nui+LhrB*{%(cDɁp3Kgh+>IB{&zXIB fnZJp^4Uoo@$4D@t޻9+^=4'keH+mmko>gZT%\Vcɛ;.:Cx蠧AUG=+>^]~pt̗Z>ߡr y-yAEe8om.{l՗JΟ? C]oRvZM&OlF6 |?D\4o<޽=:ml׶ٲ -. eS[לZy"֓b޹ uz-#,GDu>W'cS8WOK%Sm 4;v-Z J#JAn@dZXK@==qmұa:łZz~cZ때$dĥuyG=Yon.T/H`h6l}?@&ʓF53`F*e ԓhۧ?5'}]Ȇ1֢.@uiYʮ.טc`cH.)_q ~klDMcuBw{^*<;ZM+|T4Cښg$|=r|K"*;i*z P99_q7u4gݺ-H?Dm$/1ѕUQП?*٭"+ֈQ/=2 ;YzP yMɿh٩ǟ@iw1p4 uzW&xbc e ynㅁLgN,3ͻ%S]W d,+6 }~{1Fm0cv?oO!DЬ%W)[fĄ"}C x!twL~RF!mYc7?fkmnn` 8. ĶCc(<0>vCa&x|LV}dkBXIUMdoˋ ?m?:5*EkTHOCg/|Η8>KUv8#l NR6|cAԝqNHOEfG1Xu%74k~PKt91l7-g}nuvola/64x64/apps/kchart.pngUT gUA@PQux {ҬBOgQ:?;D - 덍t8n^b-|eSM msf\c~}NBD!/~@3*{f˙tòaaV]=*NS 7_܏<%*>ԄfMO`dlgҗ4k/}(y{:8K͍A(L񺐻/ Waj=}^dRɳg=jFZo za`9*Og݅2ks( 0e`ZM5 DPsiplGw~bjGkp7ѕr=AV䲲?Q )#HH7H5)EתྙG[ .-\! 2*%[x4{O^T-T~YI1܈2횬Xwt~"aG!I޺y3fl+߉ARsd @}Ev~fEe- = }0\lOInaw*֯/^L%2^f#H*k: D3?||1 [.8(A73H%ae2Knu?>،;%1 H:noY*-//3GQXn|(/(oc.7(fO6eLٗçP^~(ƹu\N>+ q t;QN 0}@}O.šO{{4b,H0J`u"Ttt]=s1gSh}.Qmi:N \XCjR$\hFaubfWJ-LeEWG L_HTNnnꝞ}kq"1,;52>R8K Ч"1mDALm)gEY[ LLٕ1޸9T=gĨ 7ھUR`N+_De/h/tf婧A>v gD{BNN%sztL;\si9</gbj0PPX'쩱B5YSc:n*1Oi/E0*^bG- \O'ai8q"BsHMm q6zK3UW.(Kr\RY1 HO-8wsr eMW0aށ4) \e1wg8h_$„xhtcdJ4At7pl伅 9BFB4| p۱ _30E+GY;"E əٳAXUsp,:wEK Ʋ@Ǯ]:߹Cff|m5$|R"PNN"nt/rQ͠14Tϒ[[tZww}gCLdX[cJ@.njF謴G. Dj✷Gc*%(ٜW=jR\D[s4SAESh4uu.P/&"76SX >$e|lX"3}l ,kԸ0%1*y Q5ƃp6F9 9H.+Aɭw-L}hE7B)i]8eEn7}}K+-u&tc {o#ލϽ_A]j0Cd[dmw zf@.c DJ !͛hI TX41"<ρʖCF"&^-N+G9]T&YQUq|kt &ͮSW?G( to^-v`Ht'_5Zr2G5Y C&#;ɉKN+#ԕPyrzqwnIk%4=nISum%).<0T_mŹ:,{,/PcF.V+;,pJQ&_%j*%"X_EtZoojT}Q:(͊i46)a+mX|Lٖe G`@` oB܀ F}I(.v +Jm+˱8ݬh$y)|Bso~ Tm'*31XJ2F1g.bO[ EAy5l o9 75B+q?'I3ٟ_ 4W1k;(Wxq5<; )vCKm}N™֡QpZ5ъhdH↤S_Fwp#GE14ʉ:IZ|?Le%U@s4yGEBӧUO$v|na1U5P;,mԊ8؉}?Bq gh8# $(tʇB/ʃ?Yh`YEOtk%--TK •|tGM#!g{aQ}8bX l [h&UQ#*c#n$k=S1؋UF6> 8!zsZ\:X\r-(ev<`rk> 4a8_;ƖOw)la>0ؔ_4#ˏBR}a>(CNi3˲PQ.0ɍD=QY3Zc4C~@WI_6|v4k"=@ey g>6hI?QrN^o~K>F&&G E'RtkZousH 4.~$ϥ>2M 0J3M|[Pz(q#o:}Wصr?<^|2ˈ ?!),#;LJ҄SҋC5|bf?Z%1n"kʥaL@wp FAC "V9 &у<9#\}e5n*Uq"RqV^x¢@:F{sEB{ ?2]I(g{NsYCXh@ג>DeS~1V 5X¬u _@ @d}s΅O_nEF%^:FcÐ(c$$Ȅ1{+8qpw1E6h*'f]N-:h.mLPw, 3 fpL= ߃5xfc1mJ_ÛCTow^:yj(IrW) ܗO8r1H7S(gyw]ՊBQv5IV4X0[w9";CH[R K|1rNL?1ߣ1ggWGN=Z<\|ѹvtm0Yf*;}.yWg1:vU燆 4=_b@M~fYYOQp[үYE;ov;S[ aVx3 lZ\2 fG&#I;?E kzVxu& b0Q,(dkt$e?❜`jgܮ_ :ZGwAԟqtoR[@ d!4oV?:"4 ,s\ /mQ6i<%5dAY!-)WvYa z,:#{xHOT JX|`?AU+DfgۤSٝWBvp ʹ\.z q5 3 nuvola/64x64/apps/kcmdevice.pngUT eA>PQux }VyXSWe"F^U԰Jv, Xf|$aQAC- Ym;.XHeiEAy`Pa(23_s{{; VxTyۖY3BIkv^Xr^®vd(ILOOL_ +*T)Ho2Ցdi4NH>@Y ;F^da0 LKpzf4.<X;ǎ7G'L12x~vjx}Ù3Ʃ~rbEVc+uCl{NձqՑ&1D:j[pX-:%VW,J #Gۚ ` $@%1ns>җd x@sոZ{& x!cS|c?l$d#wnE?D)+)4g5BfkvcK%bseŔe'N=GD[\cfQq0>AP?g^@쯂8[xd]FS @rM)8|,EEJ,1 ]t<=Nzq٣^##Nq.c}VxVQ&lWWr R18PAv%„Ly"y6~)wnu= 99JCy@M%=~D40/z"e-xb?_U]/@Š(:x^N$撈f@$*rQMRKjdsYxK>w] /waD̷}BRMrks0 ;LO)0xBM ƬɁec,B Ec\iNNE1mEc*pl9+AWeAb&wL+@fWwަ QxU(D gXX '''8&f+<7|+M 霷:C>r(S6Y)x{-䠦Yu\hN&tYT&lXy1& &>ݹ\voEϵb] D:~萢cZCʏ,9R7mg8x@˝4ݛ;(\'dx ~*.4j9db7˄)D* ݝl@ .$V{1 a>Ia :e>^|y6,ĺmdj}hi_XOU:l.D^ǰSAERKWԎ>B`4DRE{8P";.Ҡ"?sStyEP[MrW^Yz.yD땕;FGӜx^@$aukw$a;B,Kkg);vodLx'. njiTc'10B,]>yG9玔ӧ OɐWe"pm4{%_ yuԮD$-u96* yڞON tfŮ6 Mh+(6 {<<2'(Q[ܕHwT 17< bEw:2D>>laД,ߡ Eawo{ va1PG=R/]^. 뀄`ILFhRdG,b:Ìңqw`}6V<PQux V?Y>>`0^2#a*h"o3aټ$y25]l6,L)[JHmJe2-jPDٚY<9s>nh u )t{+M)}3N'}O <7z|,@tu1:,P/3pC0(6T#e 2 f.*--Ev&ʤ8NGЧj}-kCl :`Y7CH5NzZJupF6J}$nNQB|%Qz{{]ZQŅv8tjlك<"eEsQۖZ XnC_,w+|y5CYBi=1^Bѯz;+!ͽjϻNy!2 0oT4=xä̌k .L/+,ls~wvC/Roo>jEo%=^/z 1L cHħLO9mB1c[ D{v>\mnnF|۱-.+?y^zj&zE"_ܗ <^Abn鴟Q 㙐q7܆7oI8)tnN|*XYVZONSX>ݛ tak˸_H?^g ǴV RlnEM$ۦ@ 4M@!"CדǦh>gsLTGAXg2m4ݖ۷sFܳ]KW{B! @g(Y)&&h;Gcַ0:UA>*'K Aw[Wt.~K Tq2M7㣣a0[]*~뛻u .4rf5ڊ=CnMDO`r ".c;*jd!UON&>'Le{4=QW-HAODWe4:]/U_8C*, m+33M3iCU߮GP|SB.~5U'B s HC]Nn!ohtߴ5Ql: >4nB`ȗͯ8RbҎuA}]h,$>yiVbrq c9A[I eeqKtX.&'j:i䤓sg>0[n}h E'6Fi NcE2mj?S| u."uK-N -B_#Q@nE ߾;$<tn(j[>,y|~;wP}nGe P"sYS~H Bd. fP,K(R*/ Eb"ؼyG/ŪʕQdO87_Moj,e)I`mΩ ֛K4HߖWOw:ɎEHg*w:<:ֽ7,[^'8o䧀\Qi'[ lˣ1TP`#|3?o .!bf QM>%*=/[\<1•p5C{bnFr7 'lâF:s5CF|A*-xX~`d='TaX0<ފs8Q0ègX{}wch2ے4s33D^PLN*CmH=OuwwoMEe}? `8t)]XUyDv2T]D{< *xHpaIIIgq=qQޒxAQz0rRʕQfr,Lf#4U&@: 2~tՠ{N':8h\`zA,[g en>"5M,0 8>+ RBWc]%uif T}z *|9 *Ao"/) 5ɵ XƵ\ ~m_IAFFO'6{{&KJ!nb69-`%⑝16}]T)#2hg5õ~a6q^ (O|7z/e&!ޞxYPCըWfP,^OUvCіî-6xW)Is^|\˻5ʫv@p칿/T.ʞh͓Zn'F 5{ƒػ*ըGE胔evq]8R 󟺛7jUg\?n|ܙxQ˛F]ZmgHeLR˙lZp6=δ9y~לWp\N%:4zٗ'/PKGsH1$anuvola/64x64/apps/kcmdf.pngUT ffA@PQux uX}8yHyڊDٺQ*7"}^}w.mcmt<43gǢ5_GO i&d c/*[Ph䝁gNF(wBXL_TXmQHWB !2t͆<<g`b;c0s/+',GxDihx>SC_@PeO$ sYo$-ΐrSQ~_'gɄneۀ=s:8T:?u BDn>UjQ;M\2Uf(_%ؒ2قmaj4\qbnmGeԉ1Y)yU$U}#pt BensrB{{2IV}f-⧧*չэ7hasT(G)GNVT@uaъ= YN >`MG4< -˴:U?bfsz)R+mS&\NzJ(>GEk0?ǫ7'ӎmRŎ-ml[}re6eIVnˎŃ2U`Me'Vώ.KJ6ƹ]i}6B| ?2h`[YqCE?J3`18җS9~RQopbZwHm0 []ov/_ ErշVc^f]>Xhڵ0`޶VB1srKNP7<vC>8~¶,=Nj9؛dA*Ro5MCmmb~nD⪿)ؑ ӵ+ciS`0ܰw l :.::k""xٔ"jn6#0Mf'7}39ГjhH+&'" d$k?mτ22Ԫ&>Wf ԆJ^^66HXL!yױufyvx vb"Nd;ƂJZvg/;NWj ;!TJՎe]y0_"+>B \@rG/L(O$n+ߎ-6;pBFImfnL:.WSb̀f~@GU3HɱF[cZ1y?ަ7[;T5({|px{_jtF4o7Bv?9Hv'9QD`,"{Z 3mF79ԙ׼P;ͼ-] ?hс0$ =>8F 7lKXX͆/SlŶLmDXo{3/P+cħH=fG#zZ$c5$P_pLLDw`D޷b?4[Ӕb{Yp_m=B2 ;mEH{"ۙK)BƎL lIvB'Mxy3={UT%zU,B#A8F5 quB>$ Ck!Xnp)' jѡk"'X=:6"@OMR鳴Gy,V |BeukT_Cq)[fi7.b{,_+ۗXU<# ":}}HHo]í5avo+Zp8ys4P|t9&{F4od!1 gGLw:l8I1uɾ'> @q(k% M/I@|=+ߋ 9nl6)&Lzc4Ro$:,cԝRfJk0'TQ& cB~]7No?~uH05eL xj+$j@b_^nSth\F2)ʥ2ƞ"FNVoxPUzr&#oP{7l Gt7@Q{ʃ(hӒRAOVkS,B:%REɆvx+ ߪ 58Ý꽅M|M'UQR󨇍"bO/j'Qw KW辑#nmY;ѱO:>I "peq:D]l{IkEη3vg3vdEm1`e5܄"g</D{ RadDػg |jTڝ] TuOغ%EL[˦ղ]|ZgI02˾o['= [8K-CDȯӞ4,WO,OGTSl4@hg70zW.\Eک8ěGa׮Τ kc/yv`gC cXˆyMˆW)s3dϖqʀebrӇQAè%3*eP,CweIj4xvS\:xl/ZF\$R Ͼ0o-x2O Ԃ܇"CFBYlު_11F鋾 ˋ~E8ӌ.6f?|kط5z[~#5cG dZU_AWD47z;%DiS}U5F)<`30VDT[S;ˈǻVV}LZ-V.1)euܽB"c K\8ŦkgD\4E"<٪lY{B)*r|x<=?U=b >LJ2"Snq6rsF-') orqڂ b8/+V \\iΉfnGA??a:j+΂R EY!C"Mֆp>dSLnE% EF5U-BB%Y`c=wCIxӾ'cІWe| DIzy@R7$M {]Y搎J3(~FVKI#ہ-UkӢl/ 0b!)d}V5 ?Ve2 qS 7xgYULyxCη0:pZ~  BZV;aGi5YMZ٣Jݺ>8;]]4!b7[}.K'M1jC0?2|˾Έe,02b_fJD; lΕc U/ Z)7ƃ:3s]5G/HBBNNmYX0=hP'@A*p^Tgs  $o*A@k R?"(Эu{^@T=Wmi..陧J79 $ T%/P* sNt7@(Gx yGYBxa1N)r1N ߃-eeT̴SP(ʈ٠ѣwx$%|'&iu;= /جgzw%4"]x&"lI},m'ZYw>ٮoFM8*1kHEr ?Izz-wDI?M_]5@G/vL*A+ZQiZbqS*O% Ԧ$o0_۵{ FWM~b[/OΥ"GakG1c[ߏf{q[ҕڗpRD0 $EYWq^G6Æa~_j3wєZHCY* >Ԯ_I5B`[9XJťQ39(э-%Fyvok2θ hTzO5\[1c3O t<|BO)dmJ,"ϖE Yk-eyd3PK H1š@ nuvola/64x64/apps/kcmdrkonqi.pngUT eAl]S]KiD k-+ k\j +OH "G l LV&fBUIMcJ)7DR)ѯ(kvT0It? |(Hʛ9]/X5K7-4u+_ԅ-Ta#e$I'Hvׯ3slxdkuw3ڜ6qT% !C< [SKm}&5 (@w@4:vRD!Id1@ `k623 n`@6||UnO\u}ӯ8Pdux^IYeł29<[WU9_uv%G+W/J ]\`Pz9ZepNz~E;fÄWȤޮ7yah\v86.HvFcz"<>S ˯l\麨7$){͘foxݙe`ɳu/CO>y~oY;M$d̼-?GS[<&JS9ìjGT0ƬDkC}|7l 2Skē<3 ǏYYy /Sߑ䑭_fOX>V3Z8bBN[lnp-"1{"6z. wMcN*?MW!~m; a@fRJy=#@y=Խct~U0Q;OctYuS3Í#aRomO…Yd1[(;}O9];#uSEuQ}~[[}Z$F}<5XT?I41(7%q%4^Zꙗظ=P5e2Yy#ab#mf[۔!L%w6U !HfINFѯ1 mqW].&uTܰgQC6V/Ҷ CߒpFSAU^FFUV*dLi'x<~@ (s/%/,ӑJ?R"p?z, ~Aq g:9!z57yϨjjZdeôDndGFe͟B\y|CgYV!6 e ܢQ]fb"2SI1.t(q=l"]~ALuUaۢuR]qg|FJpl |"7} υܗjA hU/oȪa9v;c.nD.?`uJf|!s1q8n٘[(36r:w[a!{ @ζϚSwwNaV8$2*-_uix(nw.-(dw *=20̡+':%Z$3ew]#dE<"o=M=䀌8ʞxsO 3a6KyMU{li&yiF{0{wͦvJ3<=,G˘ fL`m8'U7Pcg(48.: z#=:0*jA4 ]ggRKJFred" 4qp[6ьm4_&KG/3E#?(W63BI ƋrJf4 HnBpފ=($4oQE;Rz/7~}vY;veXo}ziq:5S_`xiu~_tT *U~e>^[t3rSp(P|XSiL,S:sډ!wl1TnZ+ NgG`ttLyu1UN({M̭\ FkYBnx:MwԂ~Ԧ06c"q7ח|bre;yCqC`X1=}.-5zqh6aH2Rw誉o/m\&!1~0adbG*yn~ =m֘ux8L^W\<= ƀ3Z4,Oo媏RjZfPq3\^Se*ёy~|}[v[tU%nlD*OKvs$*`;7OzAScv]⡦v*&,D] JKuu-p%pQV3WYggs#lWSNW'nekɻm~m%e}"IucJA$N{Qȯ2,zNF2s(d%x2aqH?HgTȨ_;ՐRp;h`?3-1([ʋpc x(%ᡑv,ШfCSWeGA?N#@P>& & b`KUq`b`SO,z+ {okDtMsaH?1BLHdGyT -y=Yc'D'/py/C;"?=sj3d6SNYİ*HWn'%]*cB5YK:2jz卐O::D1?݌m?z?%yr~;07]7.dUj:D|ن07FB%qy ߻׉B{ە՞Qݍ!aj\Nuw\;9yu$&A85O[gOy{\G6W΀}p4ȑX 8dDj-Z^Lnm!k^Ufe47[|¢61k&_XXYDh):c&Pha (o%0/ΰOAy0d:&7RD0@1b+GmPnEYH8r?>t: ِhgn#"ّ7`J_yS7oȪs߅^[epXpTkIΕ`[;ʥ"#O9WTCfM wRY~:f}'Y=";]t]Apv1Ď?s(Fr4䀒1)N9v0@(Unkm+RЎFܠ  |E`sE/c_ =[ $'Y~i'޹}MkaZz}|d]~.fWX[݋/}l4S+E&Pk]̺-ީ'9c%kKM7\NoQ5HO5~xI{$SaWZV+ L%wܝ KG':r"'kJ"^`\ ȅe[3rFWJq1Eyh&JksеM]N~5(m+r˯_(Ayey(2fN׾>! ̆F7xዯ9KHUaM*p\ko^zר/ydtɨr婫H=clvM -A1^9\t}}+-DܶMN&(nɮiwp}Ⱦ&:y~w&[͎Y}/ѺSѴܡ̇TLJ2G^xC-jgc*+w||--"vH 6^fa_{FޒA ^]di>bCM|qFS(Z;EVO:ZjUXj7,9Aw֗W0ͩ(,C֬j)KTI9Q;\oH~e//摊88r4) iU쬺͟?5V6,Iݼ̃gեe "$lA?̏G-nBKT\}o'PN&l,Z :>2"2j !5r1.haGt#>ur#Z -=UPov$̾f lNߐӧeߤ'_Wtn\[Y홖UY[cL#㨾u3n7.쒹2c2 b),M!g-=P&$Nt/\<םo›٪dv6 ߬f_uy S+Q4zXd]- 76ָ&gd`%CUC2тTw]zA}m)x!Y"`ŽӡV.Oj:=42)WnK+0gA{Iw5#ZzVeYa#˒ٴN1I1٘J?po=^q\@ʊu ?p ÌUe8_+Ym=Kw!U2N:ͦ'>hȯW3Y UP:,1b1 A:'vR/`&&Pj=ivʙЊzv${=됳qv%z.PP yE^PS2X_Oyo)w㈘0Lݛ po>sݥ6 DߺdnXzo81MpWmjwf <ꖳ3z[ĜtT烑0M_[_dfR0`O'9g!.[xO?PKt91d!nuvola/64x64/apps/kcmfontinst.pngUT gUABPQux %X Tt\ 43qLl/[,qA+V-M@-5)ʲ]2[w-mT\ʅ?s{朙}9qzk|7iW^o߭]Pь (k@ :u(! `DƅHk fmbEk|?`&: @H&Iss3s~9`β78wLedRIL=rbhH5_֑DQ Smc,zuRÔ k^aKM/lH,j9 X&WDoL<Njf?>o@{YD ֐ p F?xdek Vϥ} TX/v a߀YToo$J`dh*0gӱN9./3/^p Q72QL ΏL=!eU8ulseoA S'66ob ,#Lg@̯;LJ}c)EDʝ!x/.gĥL8Az>Bַ|K , QfL(rGr]4{]:0 aUS:DTkc/bSz7 (q`|zhɫVu!8(_:lD4"ơ)@?kC=#k ֭¸-9MzԲiΡ Ȍ4#8o?eS2HMt-=u2hϵ;M$^o W♆>RM;z": _z+"3c43@{x(dםב8ŪMdkWjZ)sfnRhaJn72Vp[#XP]hH'mJ9V :Mb!"&0O'IKI!@d[X4ץc|{=!/e!Yߏ)զ? jR %O^!~ v'#Å;q]iLZUݱH\[Y*yozc#bIk%I ]')pM;Ud|/E>m"t1Sw;I\!bC|_ 1ڔP6@Uir6%P.2ٽI~iK0sLHX:^P#(&"$r(y2~lp0HkaDh+^ߔRJ nZQK)A %&IKU1o];\Le.Os-yM මͦsHO/n/]# V) E=cgh@ְ" M # Ϙ /@젬}GUN~G885w*Y(ΛFgVQRC*(:>05#||m IK{U0i)#YHf/ڎV]o}Cd2R<Ʒ` bfcYݼP0x Qjg`*eϨ~7c 0qnA%~ DtJ7v 9Yr2`j6\2xlzQGm]ڎd~is͹Y3gp4.c)|[(wU+ l<1߁=­n'T[xT\\O'TBb4d |u9 0 iN2ҹ)|Z'͠#qrg;[t̙˯oonaw/&1EXohȡ4+2/r,w|yraA|OZ'M2xC䳝 SԋjhlC#FQ8< Ҳ=KXȖyMOBuuPoF +WKw}11p|ٝsN`icE+3äa  `EZOcbS"F|IMHv,fo>7p&_J`ZB6^)۸wC9#gPBD!Ȍhw˰A4Yv)TR;~G0/ am0IMJ8ƳjxAyDWn|Ո<ʅuR3/6(вn%xv!1o8Z'3c')bИMg`L&z""V!vGΎSK77  NMS=3x b) g/׀`e 󸹼S @]Q …؟=\2_e tqa Aq0{[tG4./fߖF!H NڵGcLߧCNcubN_nKzhQm!ZtsotCmB3/fqo'ueKFuL]m% KK,5=҂˓yJ%׏D)=e4BA?XLC3cN2ıZjqk_cnK^0,6SbLD|ĉA2ל1Ou%wi~r)v^ai~"P'mJ1Tԛ1`?yBD'r(6Is9r'~O7w>Xu S0..Hm',Bmoݗx 4Ȼqk&bw>=z(pV X8ZBjs*{|~|Q0PTk*/_r$n [ץj왃‘8o˘$^'ƣS'b>u`7z{Zk,9x^$<讞&!Y-FkV΀@"fn+rt/}.*s. S`Wm)쫓"jCױ&z͂a=GUсLđ {Rzdˇ4ͪ+r~as$sş~1:,ugRkKz`e3+X;4rJe0"~؅iLg:.]=OOۥϠgH0g(}4&@#AxL_?,!(24~j[{wy)?ۗV/&z@l;J9^CɧRa1̱,2#~!U:2?hd\B XX`vnCKCU2簇T//)5Pfv-ɭ:a[]䁁l{&}w݁U<3"_wɸG8,D&>0ytd XWfPHY $y;r^JO*3zCK,zD{ Ԧ'Hsã6HF<u5"5Tx '.̊tW+4F󙌥|zp}Nk;a2O_\ְ<3ַFGe,nHXxbfR66+>P5.JV=j%_D+Q |Yj_q71sx_bׇ[O kf -X~~4֡7ы_0F7+{(CCs2O>0P%^pSlO#`S5lEXl%v 0Lu` }nT-ⅿ;WxY+i"OzZEl3: oav.Pce3ghpO|p] &K3>ͽW/sF_ c(V2Z9sﶰ%5lf9܎u"J;Au(tOt@mNmH|Wg?^Rh׫߰3k^ Trh9`~Ec-^xٍs1+rզ.D Xe2c3e&Y%Vֽ?)31h7 q< s) $ +a2:#yHe{3zltarP\棤#?' k7x}w^]v4exۡS^7 .Q 9IχG h߰(˥bVG'ÕA筣&8D}nqt^5w)QI(sՌ1g`EV +6 F>LYdeb.KX rهvqo$|:>8VHB\r=t6(YDʸ*qnSI/b5lI -7!nXڌz;-kK7!8gyQ^RV|Ip'l$T'5*3-.4)no!xSK㹍;[F4+YeJnU5ð\j_#`GG+YkR^2yM$΍ϊg [/ANm.Wޡ}$N~ٗٚ;) &w sb)É|40>E\蚑/5>m[{jLth-;;WׅrӾt zUf'^_C$mi.cE|:v-dyvQɊ_V6Ԅ/)MܦcXX qv[a^ښ,Kmb=+y.IjeyȬwͺ8cgKpfٺ wWBgIF9P:O$x ?`@_l޻ @ N%kz,tTh<)FqUrFW۰?Ae<M{^UhkQ7L*++I ;C+ -Q~(K wӧtL1udA@Ǖ"'?;)/F(_Z y#z™JUWZGØ7PHN("w=;(Nnct]"q$S;^R >f*lm1vp(\.a?L$B%Q%GY9L/ x1F^6PQ4b xILNӽ֨; j`Y"!鹿^+Zy4_ 6'xchHXJ[13NS,`Euݡ gF䶲j6,?36̷Ԓ(iGFZE.AwuXFWY3EPU$v4zG 3^} :f獱j`ܡ.T8Fbk#uDأ3 bjY:g;&=huKmu=}hNT@LbSRdnSg+ Kem \SQn:(!ǚ}0SPKJsH1rM# nuvola/64x64/apps/kcmkwm.pngUT lfA++]r@nFv*<,uD:xN_cLo֫՚OjEbo}ֱ 2;eS>%$E_ M73a5ޔKw^s5}(i$~xpr-Os*"y P9U::OLy~Vø>00‘8mj57#UPqF*tiR([ywXnBgdm\OD-  "l=]*5wnS^Gc5hB, ME,wCF7D [E5G$,W9Y(h5qw҂HݱMYuZB&lJщ}@/_Jod/d݇[&mv;Y\1 X(+)4C KO <@gZSوzr`Ajˁp12pQf6T$#c( Hv FOW;!/3X rT9ܞ+łVPhᶖ( h{./i/ϔ'a$:,aUڢdm.pSyc$GE>P$ox)I;K{eĐO(-JoݳEkTb2'gmFKIcXD٪z:N^Uv9O@ihA :/Ϋ(jq6BXƞNǂT>Eyj b`˷+ٍo) B[7!"*A|"Ψ" ؠ;Oay2NMDtȊ@% B|J60u w-^qYEAQQTlgH2UV.C\oao`8qomb#$SA\rO Ph)q#+T}~ʫz+ޡK"kID:OaPSNNZݲ/07&cZ#0V#F" g2Pt4V/6 (3P *R[HtiA9kg4LjuWL~"UD;:N,:ȑs5K͔8&93©<ϳO 7۫BcገvMJ=gf~FD C} f.X KZ  nqd֢U'J!R8MR0D=1/_s.#N)J>v [fi]s7f!ofu#ы2eߧ_xMUbJ0cbR8Xrd9[E̶*SN>q~ OдyY1/b]Zɝs8ǔQ ˆg?wk0OFo5AX+zxXYﹸVo,-q1{3*1HL5g5mو7~ rȽkk#?[il Aafjҗo V;k2+vu.aT>@Cv%؂:”3'?LԚ1a!H bW~tf.$8tMOnFY\^q7  mwjBe >`G"/ؕx7Cf(f޲*}ngޔz ;8>ƚ8 œ1uekZC;ء@P&ZN;$, *,U`%Y͠EFmhhE^v7y{[8I_֩P2Tn6h5;@oл5ڿVl[W6o68b a%*k!j4޹,01[*t4yawR_JU;$,mHfTT[K \/˲|ęC7E&~+p9֚j6V8qT'fݽDP[L!^)I`9șH{!68m(DJ~d:M8qBaggŠ+ja|?((2.&BљJ43Qqߟ`GLs-B xu.WUߖg]Yuf`-HlԞ 4$s2{+ :Z@`:Xb#,.?\,@w;3 >kj/qm~mAk(2聘9NoTyB 9c?yw^lXx@ 6% v($Yt2d͐)"gw"6#:US6Riha8Y- D5'3N{. NLۉW͙^7P ,:9,[MIO%j@t)nqc8`vB2v(I(*%3q,R)zT]6l+'Jk5'W_Q`-vhyI7*_B#ϟO]fd]=$z!:V߳Rqf#FWf߲~?* -Ǐ>&TDasyB?6SڶswIxJ8ܝ Hi0K7px^Moo~M?JaL!/'+$xZjz5 kT_4._G2+<O:\tDI!UPXnM@ 0TX ,.} $:WZ뇒,Kǵ/oGh~F_D]d3Twf69Ofs:d3!ꌖܣ0t&P+K1 < Myg]&N$E*dJY~rU5A!Z@C/ɑZMi{JA wNSLXe#hB?(ٔ5w'ԤަI0Ǹ$FaB"Ao*vY'ď.kC ºQ@- ~Q~!AMNwn{P%o -Yس˝Rfy4Z/j$-hs7E%PVb[N\};=u$TlXa945Ntew{&|(-t&ӳ1l[/Ns^-+S_nQwX{wLBBZ`gJT&s2v#fI%(8~q IEȈ'~j ѳd_DA♍1( ~\7(6A"gcOê~}`yB,`b3)=}r(vÔTcDzZGs+ zpP)!7U)%&m;#`gJ CۉI6\ >49%2T_ AxOGTC[K,˗?ŵبǃ%/TXQnX?-1INžk)}~)~zJyN=?W&)* u,D/;T uV]{&;0y(v1%ʴI:DKA8ؑ65 a3mw~6|8@KmǝE#{%ٯzZhT;.%Y~_|Rr@}rԍ'LlB#b8/o~(^Z ڙUgulB{>CWwvde|W{{Pb'8m쳖D+a ߫$Ï.֣K1H0sKՄeQ"7',BWc_XkM<${~W݌IUlr~Bm%pW& jƱr8X l}iזXX/dxpcҦ^ћ ҥH+cCca#->~5[GP5MHܪ;㾏R30= '#ZV@'iϬboFh(T7e@w̄4w#WU6-{P>I玞ĔXH|ZțtFRJcR g|KY`uW0g _ݩT$R*#)T]<x5B^eGV/6fNt04`p7z2x#jiܵ ҟk3lzOˇWRU^9 A'σ*vN`F%~RGN\̱:PbmZ׌jMzͧfݑ ROl={=,t)ᙪdQݴ`mRt$xM͗Qa8!b5|n_ˇ?ba`s-lB 5{SKDžqnfRoH3L }r芕xNdEHXzʐIuI X>%t#vQFK>W ޭᓳm,re^IPu>R)z%r׿W1J-M٨ögm6Y\cI29*I΍:Gp-I {n;mD9K1sut|H|{C봚`hnZGzauG[֨G/'nk4Owr 6'LlT+"V4 aV"֏<Elh$m1cd'ͦR7x6ysv wk`Ftj1J#%[UvuIޏ]GK_Q&l2WA'h9,a#%?݂{y>H+O~ ;pNHZ#v~DIc|F@rcE{#7(5E6%E:vX8!N`o,fH?2,~:\1젮&d]=tF&VeiM8ZWYmgD271G}}qן#0C#ΫB˅KBdpr{(oNBƀԂScK)+8oߒ  Kk- fX /ySRN F`W Aqus 㖐 fԡ2G吾Δ~&,mRK:[(@c(FMlpZKeZ;A^I}g(/\b0&l6u?+A#vK.FBK^DQma՝e3`gsLBFUKgGbjuTeئeoԅspej{-^T*'Z0#3n0 #<[9S-pcdlVϝ}-\0uIѵͲӁ.qk:l=$3(3bQAV!Snqerס{b.v\qsGpqf)N2˛{<|z"W^TQk=&(%Uup(DIW6Wʳ 6j+SpCNQ&LZMq͝*lYUc#%nuvola/64x64/apps/kcmmidi.pngUT RfABPQux ViTSI@V$$qUĠ(/,bD$(BxFMbX"4:حݸ,8a $N#%AtԦețG5?ԩ~ս9atŖc DEŠ#Hy4:46ߢsĂ'yi@-IEebĩ's{ qEO%$^j]T3`6aOOI2t=舞>[>JfB1(1F%Eiu*Yfdd)Ƽo iA&o2S]eU ߼~uszs纟sL[v+"G ++6UNw[N ?Cc(  [~fjW 0-E@T,((SJ @sl>+Bc4뎹2:৏3BOMo'A0!͞*]*縃dPUDkr3Xb9hͶ{GnGxƦ:1/mH~CʗD{ 38;$ K-VvsA`0rd2_JִL g9nnۿ,_CC荈&F6bD Bf@г BW !y3y@yzeְb)z7e|^Zb";RrYӌҬrPĘ n%[2YBS@50z4W-ofM9 OJo~B\'0&p)ϲ$aNw!054%!bUa{6zwaY 켉yT S+j#xE@Pn+A22XTkșjPr@ˈS ҔbS0)qtF MGozx0=ipX 9Y· ۠yF2X mzրC$s߭eMļw&Μο$WH EYrz"V CNۧDd燆<B%7?9!1. Y$d ַuOw/+>׺Scx˽xMn`Y8ݽg5.+x>缫QcF- ɲTtq45i_]vmz`Wrϸu}~Q:Ϸ<٠_&d@An迓JMMM:济 B5ˍr t=дz -m xu(M{#LC}Ri+ TתZqrR 15S3B8eP'>ۂc>H3N-0&#`"wA3X$ܱ-FݭpGT۪m0?}$a3;EU橎xNml{uW-/5YyЙ~wCW@)ˬ}3!%QhflpXD7mySc S /TřpfT22"LTQsyHtT alU/HCa2X/C.80HεrygM˴֓ nG4.*BQSTc*ް@h3a6>C%D$uGN#=5.5PSaGhRuR&.Z| Ŵ-WJǴ M;S,-&UUU.}~QM+l^0m xg.2uwb;cm#h+ v{/"w h/_05 F!cgpBi/ܫj-+͸ȑ~=\m P X^ͼe腏AR3.`r"&]R~XCwutp\F2]bPM^t$S#ޙ9FTNQ$,xivE^1~*SF[˯70`֥ә9(Y̵: /mtL[S|>0'>LE1]7zH~ɴ0 :5ӯW܏cJ<ᜌO|w*UXXE䀞K}v#"(1>!o~ݖ+}o@.faB+` Czst[:MPeb)KCvQ`2=1K6 Z:3/fD,*a44H sS'-}gV\0)dCd$-GwZ?p3n#ŒhDJq+¡7~ <Wt]U¯F4xHy8Vg£zT)`8T=fK 5/*ͼ{{ ^?Tr6Ijt'|bO iMUΫa'1]Y pVtlV[Sa}Ah$-W {ԵvDnJΦy i33gM`MPhbWϕ߇36-{0z$\:UT-Yb@+ *+=t\*,m c1$ .;y۷LV|c`EK~rvRHԭ, ^?66cj k`JJ(ǞÐ4h?Y8iפxmy1u.Xⷩf8@/Rye{̬=Fcp:TjwK7|f3;eł*I@-A|*Ў( /f8ԯ \ۻɟ>n/@1IyZh\G F4{ z4|j|Yb**E.'1єQ^+bw)<0`*SP&psZnPxuy]ʻXz-Efgg!^}h}m 9 O q"2,F3X@UۧӋF!XO +S#ޥȖv__Z\0428ם8ǏKRٯ<2ٝ!Ii|o1`b#[n9EVI1K$"@;N-D P*" BqDHNAn]7::8߿(ԍ $7Fb=KDe`v G >8Hu]}nАb @?E :|RttB`'!mc 4ZxISu{9 ^S)V䏲jVӦ9 *ȉY3S )(TJŮdTMO UҐ-u}OcPU {@MRK3%ɖG~îE&kf-Ϝ잖47q_RHG4$TXa>enZnc:;wɞֈż:w%_%qƼ>z4ګ551 u ȗG氊3v ĴE@^Zj2wobI߶m%{X.o{?M齻GTkw%O2*x<¨nLN hT]3zѦ wgɫN+*''r۝ >(@X.n~G<03v֬f/3i?|=U$wurl}~6jciD'M}&;@o:[??xSʉĴ$( N^3;ڊYgr+qa0*]f}69'ŇuQ^ rbz9&:R(;1be=lUΓ@ɲc6ic\OlQ}A/5Z']=>V] kFc 7YsXѨ H}"䚄|*H}sF[KݴQ#,b:yb#fL:kUn=S?9VMwjWo%вDjʃ"mr`F ;yWXx{;}2 +0M!5UHOkhv5{腱B7dl:)7YMn4 yS/-70o$0q}OKr=Da+{2T%rd~lz u+ߣfd?; WT+S$)eo)h][>I_o䏟P$p궅~^QΩ-]\N@;qeen !(.*z }X-6 +ƓwSdO[d&lX,TyqF&!einmə9v@V m}M٨Pcs[K#wg]j z{MuBti0 㗿jލRaLDP[Ϡ[ ciP,~yh^ufɂmk4ᇺ5; kٻ.=}G''H/ <ކuî鞕 ԼDaF6P?2֔&y\P qy]"=~ke/^?K_˅:kׯ7'~7kų+ U\f' 9=3{ivC&UOV5punU_vvA3c:XgaEt.fo/ep7C~%Lz_=%k=?[}Fk=Ѐ?B\O:-(Oz?3Κ(PG7jCcgjmXù*[ՀP"C4¼h-g!F:xDֹ*N}_L_3E`8_8=TĊwvLOM*ωǏO[ozk9p4I69}PKsH1*nuvola/64x64/apps/kcmpci.pngUT fA@PQux }yPSIׇo@.ń]$!*h¾(r"##5*7 qAYeTp @0}W]U]}OsD?-MMC=Gcm;o:cubN~TG|"lKaI>xĥS~N8:MQ0SkP뛩^O aYmdb;Nm B] Vmxn{{QB  a,!ex#J3ٲ%S*7&Vq5Eik.0vdm3}5x9WF器RM-(-ǃXkIk!M KKJ㌌sVT.\v7/d_:[u$S^|4cf1!.bvly2Q*L"OM/yE"G1'[[T%B."xyV-RJn䒄t%H~ f#! BXI t=h :K$jv+h_@X"Oefys$ 9^i>^--ʈ`3qX;{-(vzPNzu侴,_)p{T SIw KBx"|~Q w cIjuXAY`_(V`hsshǹgV|ٟFhQj-{vckkkŽ]9IS4( D$z=g1Cy6<VEOcRv+1sR &90HdfC{9 9Zc##܄?a' F`Jm޼)RI!W؄n0=$alӳjXueG7p5!P_mPR񦆕JxؘV$guPOayfz73ovy] I!8B)˧l)5>>.\[eo|vṁt?R6 D8ӵ-Q7 }p|̅<` 1>xQ`vPf.K0%cmotF_o hV .K?5ԁ>9B^"-74uCY]&ɆF,@AEndw4Bm^`!\Ɍ} ު E`W9{|z׽k71äCYip뼝ҧ#\*9nDNReGWrlέz5I9 IT"J 4hiVD+'Qa1=ї i{\EBcmb|rSMDo7WS;һ6 ;Er="01=L-lˍiYL2<lkX;^@iahD*Ւy^6uZ޵.C$:z˖Fh,(:Il%YR9+eϟ~*YMqc jܞb3a>Jwx ec咮[3J)s'4%t05GVp]kB5HμbBJ9e$qmx8 ˏCQa~$*R[fЈm>cLWx/gESGKCON2%O>)_&VWkAaS\2#7D$*q8Bam!zpϧ# f6!TN[-0m\AJf^KW~5؝= ꋾeQm-Y]kLp w~ok+wrQ@ ] G: k`>pd˾%7ZYs]c #*fDe`ڕ߫&vFkYCo,q5'f%>+а?rXxE B.*vҎy3JQ)[h'o#=v.3?mPjX]Sy8\]"{5Y-m˸:b^cGfe}I\kȤܞ|?h)PT)REFo-B>3gA2 #3wz~7 taCdvSQ2!OCq0rɋҩaБ*9\-[fn;%Z;/[ΗT6 2X̖ɤD{XևWLCr="~JCȦW*7(s _%$$@lvk)&hFIr+!1GENab~֒6/ HxM$<%Ũp&~ʕ\  GvC=Mpt+:и((UuR_bub},GZx3j\u`TdlI@wfAn"E voL&$g#O4W}(uUYUbGy3t!ok)ʂ' 20m$5P {٭=_+,bV>6/+ , }[_ e&z@1!3#\+M2UEtHɽd! ~!&j{ g;e| /!ɐz_xQ}rBfesN2g|T3alأVu0rkrmI[S)7髏}X+bZ2)^'psU:70hFs)*,p;a@@MNJkׄ:Oj Y_aoOTيOE*~*=ք7>+KuGaO\<5#c 3|3?ri pC?DΛ.㎉Llw>o  h׻FlxP-xB9PKsH1žg"nuvola/64x64/apps/kcmprocessor.pngUT  fACPQux UYy8T_3wزDd6CRLhd_fdhUb|dɤFBbR50|~y=9y{?}y9Ou-#^ =N;=&O&P(o@_%<{0"l@Hmx=;(q_D0lwFR \^ & }"}W ]rX?8v `0j08cC<Wr6d];E#/1a؆qy 衧dlj:>?n[CMãDK3&ԶFZ2@69 &&[=^'';vDn߾= ɟ쒖iΑsrr[kZ8aMXKũlAʩ;C_a~jϟyGk"!zu%uܛ {zyꒄ ~sֻ< ڲH8k>Qt[#AE::tI###t`JP:~O%ȧ@џ^^_MrsB80;ir70gA|9T{? p |Ħ_u"!\T;~[ZZ?x@@Pz&`~j`iCQ,_~9-!Gc-=/﵎nO|mxnVf-`Sal2𾢢'vUg=?k3>.9rU.V?FFm?W\̔c"rLOPE/ѸKNSYJQ? uowkYtJ+lwQmVV՛K9,^CkA6OGJe䕕Ѫlv8.]v_UNv) f]% 3&@[(1AI<;5P1Z'^;섡blN )abt A.)͋! d1ùU/6"O('{DRj06淇>/~EnnQrN[RP}x]i )T^K cKDn/݇{O=CTu=M?wJlQ(pE!l~Fu;7;cM7^8RL =d9yHnBޗjO(X۵}1< Ⱓ:VҍSZPBٸţ"|^s8NhNM)C9cr Vkl*tӭ$MK+O>+8䷇fTJI^I fRJ2o$o+ -K Tq)e>)Uwc޾MLuz;7lO EV\Lr0/π.H}1F_i:`|u9b1,1vWP[As ADA@ %%^ck̸*KM@@ twRޭHL8:Me񍞘vGx~2-.8rL$}rH7wrbfIEΜi,ȞfIYk F1E,xf<8G9&r/(]RPpq_p*a:Zf¡s$.+.E AKKKyOfzcIT)"Z `W/9H%yPiec>IͺUJYHcB1prxW#3.?e6ƵSҟSD }o y2ig͚@r%hMEZk0YsSٽ2>4:R^ ՗sJRjte{xw)")Cxt_l"a[ aA;3#;i'/@l4=]p(#o_pJY,A[Omw4lxm[g,h "T rjFV|4>E3+32$]da.si]2cmfڑ:P1d Ϸ2'wceL]VKR+}]:C ktC\oe'3:;PMGA=d KՀHs^?=5=tχF[+̚IF,Ab Qe-H|$ +tC9o55j#Sca/oな[=\)%kH% a؊0Kmrvv&ie.'Crk3qHA,:dO=KWx786#1<;HpGFY)VA,e}:jmKJx SZ][3X =+I5Oq^ ,2vr'>rJ #1|41VaX{F3fEU87ɯqK?^^NIҘwӗz$`)LS9ov7P  9'vh=qi Xxk5:G{ 36ҭ~||¯ܵXF]*r֎i aX~gÌq:L5w%vĀ| *Wx|/\~8Z(Zϴ瘩B%b29.F"B]O"_Z `-3(ȓvmd +&H~ YNBB ?QJr`^|6L^Vަ =a$sra%b'nFӔ i9w/xP_9H_DCƺ36[%hq&2zOz`gtHKe{<9G; [Fl9kIwӂUnƋOmpSF o;]V ),O8zÒg&!O{Ah<-fo5ʾ2"B{it|@`CB]QUúdpO]A!ǂL=k[_>6F2ȫ*eEr"C x~QU ge6ٸhU&?|g!,aFӟ)6‘~9jzaz6-^V9~g2l;2=_uĠT1!3n} X6*&gimaEw 1dט,Kmnխ47".ƄCswL=mAW_o h{ %nXǃr( <#K6M FbZhb>b x٢:hHh}YkbYzaJb˴~pnXsq* |hot|3h^f# 26q&W4ynO9IOy<:g=v?j.q^AL 4MXZ6Ōz 㰟%|g/xs{s7JK6BTu6Z ƣzLF#.e^=j(\zK퐗281fl+Lbc Rս)yYݫΟr;aR/?Dإ ??Se7KQ"EF~0S4V$jݲ7"xn RMq(ͱI(.Xqu]X_;zaCߥD~ NAs/T&vy{l?j21?Lp_ }Æђg\]J=5M!R>fjqnH^պ'l[AOn?Fits';o#ew<~lqu%>Dk1:D{fk*f Tޮ$ :|GZn: $)qSqa?zi Ag0c!doc,E sFrQBW >cmѵVSiLr-5cdU_c<|y~SUS@/jsZFč%D̈Tϸ=~aImtЀ<ݘ[9=rFZ='fGNc(NQ2!U!7ϳrDH2_(q.TTd`C'x)WYCg@bށkJJKOG#8?F\aGJ܋hr7ILZnm@~ov:li) H!N (+eYޙ3GR3|>tYy,tmYܕYׯ O{@Xkhֹ 䐓MGvkȁAgb0*!T ;%k_ ³ kowf(a*҂5[ 9!g6m: 17$"ާZ bR 6^E}#;n\P'R?jWZ''s \ MI;[cJnTV~imkC6|/Kkwtn"p))7א wg;8-RmMBVq]$Qb`]9!3LܐS|>2Cԯ.ͯ|sU# SN_qCc,yEfc|r}y,b &e [׮`+A*:"QCZ#gStC5i阘Lg+S&{lU u)fIc{=(ŹO+XOxi0bߦMlWXihuyd@Ҝ ?Dſ5%wv:: /[-cwaUC1Tw_/}S^3 eIgyekvcyNyI<+({ N?R܄'lf1~8{'ñmI*JC^DrH|".rſyl—N6l._N7>~q©&|O)WA 囿]}'; =bbN̐2g蚸 WfD|SIu[;;[P\Y#C29?ZJ4pT_qKr.g,~Wzn? GVT6M}C_eabEܰs;MOsNn7PV/o U!>[X]Typ^ibWs,1[CqE/oDP֐,a %@~$͛-Hɞ2IId!m3j'Pwd:5Mt,3ap)p`2}núKvͫ9Y]3S_"pn8ڵj)=cBE nxIm \me7wy޷lpw霜(۪rBXZR"=[X8%L \P=jkٶZR[]8 wcCU;w"@D&Q*Ϸ66\4oUd8?N]$[{ 3S:V7Oe\~á҉,7Nj4yI_5 d}}\ kE%6gŢ䩳dAo0;H@0_^cQ>%«s~vkB0@d z2*h#p 2 d{aP4'鯏WBD\4l}PMi\Pn)Z%ݘ@s?E{hN>4->t)O:.MЊ6Q;+j3xr˚uQ3&vQ6dXkXU]PA:/3cYN}$PP ´67L:FUeAa}Q?@YYɂo7r[>ĺ?[pN+"{zc22v6vu5e;!¬lC*nnp=}߰P@^Շ+7%/u-VZX<޾YcĖ\ug/\^"q{IL}G6l$OP L&_~'FAu.W}^0sa(&[EN-(`ع7#qrt'+]8ܸh] >d3gbo/֪zA)\IЌ޷&omU(oCF(] {Z7GvaUӆOn65vkꇰ0C8KMFֽ֓>9v&uŇtuuZu_37'K3,jv2S)tE ;vKY9$ `Dds-ʸ=t-U%?$c[Eդiut &QN?G%dײ Q~M{]\4ȸ?ެ= JI{ "%i6||`n6ݛS|s6mZtv8 1 Iv&9;;EaE`#RY':]:=sS=9s,.6z{u{;6g\pU h㨓_v S#!'gmަ兇ܠ "`5)"o]./0^[‹eTndSRBB1TXDGEkH- $֪b ZrGhJÑUb~(T$-B5]wr|݃n t A_Ҝz~M#m2l\<%I'ka2 YOo65*5mZ4iI2JwR,( Nץ~'KFX_ \8*j|ϕcJuXPN})PkJ KCbQJHEDeѼ?Wz v-,*RSĮ[Y5nnBm?\Ep /_CJCoV#I`Swg;!Sv~֐"`ncasr%ЉXl+I>:q56) E<S6 1u ?5 P&%B@F8Ͻ>}9s^g#v[; Wڿ7#|. #[鿅r6H(?7@e1o@>a55@`dfj#H.-#NpPA&/^xt7Hvj|eEaDb||K Z8;7({]ť{[ط e X=8 bZn 1izy.+IIDER(uEiѕsy2VuzsnOز{_5fS?dȡuLMMedܮ ;(jj.rgP,(n0m!u@)X]sGeeuuw}t:15-8`A=LLx UoUd(}*mc}1Da^%)!aHwJK~a8Y1rrE446^?}z,,.ǏFbccm&טGWz%yuha TБFfCg4 ߅z ,eK=|2Y]fɍ0=D]Y{VsmmTN;ľ{ d\ၣ" ͯ uʾPyC TPfJ[#'A>NR3\P7"Wg/2 =ʹꈘpɎRիjfǾL 3fNMg+ ewJWhKbYvl(+#򋾙ŞSڷUC{\T*2'6p(GƳT^Fw31ٍ0M)u k;傒! _pu+i+N؝l4cXe~[d ُqw:iWz{%solRHDyPV @hh(q|uO-.Q{ieM1.Xӷ3,,PJ3CƯl!FMXE.7D6uT"@Ƽn_! NL(,RoȻ=w|?4,)'+jjix_tY~55 dbFMml!$=j&RbVIL#I_Cog{Z.jn߱suu9V\nnz8z`ݰg3 :med k"VXnbh5\+ĠØ;?'k,&Itq-o40']ZZKBy"J?:Zx`,#X[<Jvff o1KXi7UmŹDjc`i;*zgs)f ѥY1J4[ROܡA&)l$y%vP-==>ʷU? ?72x3™E~A/hXD|u\xƷEh"`@ b{C &,BSk DR~-ufǘ XJ> O:TwZřb3ڋ -/;7vAX@5zbEA7+Ovuem;{ !1z$sgdCD񠿦;RhvǸ%J@ݼy΍k0(TAMEбx!{' Q.mD,-kn{q`ؙ9 c9bD)<71Fg-b[ʊ5~%H~d&?a'H K(zFR¼3w'0@|kXf; }ar6IL;#W2ӀՙCuq>(G 5K#w`bp{[7%X$ͺ*z'X$cz{OhUA+ρnl~]zlFn9fAD4;䨬л†/uOڨ&;6dyrie,fb(_8&,bk )*pGJ갧h,-M%^ }9Rؗdddm3mqy0 ~'TtuI]lVz$yq&q#ljK(q%' >7.旄J`&!t1ʮ$w =8<%Qnnvȉ[wf! ri伩 "#G/UD-<ͪ/Fv٦*ȕWUBӁpZXfJB"vn"Ebr隴g6 y3&]UֹdžO?HM;ͩnaNY^ w:*UѴjc,I_>Rx]ΒܾB -H_D'!O)D-NJtRgf̜.)9&C |ne͞-`lkiy껪z${^4%] ԝ}'}0v@]>K#;}1..G ̾=B ):fƂM<^dy^[v^}msDv( ߤ!|P\Nжw mR\ɚ|b$ B Q[JqN72u"޿"9ٮ(/ac $9!b2B?^YWcKscjC|GC[nmuiw|kvA}{߯r"&":(vX,#R$!}gØ#j]á!h k+Qݺhpg_*?cPn6&~*>,suFN'|*O)ҪDN^Ig]9ٰgS\%!ԲN|kǙK9䐐ߴp^Y1E鄑 'hV!odKļeE2ǒhYNt6":ݥ*U+0埕)_J}y n]]޸1iǏ'r@Y^$%gF4]Yϔꅖ屢OBA<'iV8Jg3/gg+X_ l :riko:@`˜>?z1x#H1^,Izf(RJސ>&aoo ̌F7D*{ס/_wn\ɬq%AEeͻq//Nb[aIWuThlji?A2AD |ܡAӭFN5.66Dz5@鰄y'A =)>|X*K"ȫEk Eb^[hclƍI7 /t?a I"݅W+Ǎ_0䀮ԩfrHה-˥+ ? `8mS 3]hE89tJBC BCTTH})lA7[ErLH[ -=ah{&6kk 9RzI{`m#j>B_ɣEp gޖQA *fvM~7ܩ5E*ӯ\f\Sꏗ?B9ѴkJG+ C42xlN^K_7S$5yi 1i08*\ʍڰɓv4/܀?7n3O5l:VX a}4|]up81p:S%:xx ?!s6B ;{#> Q(_k 7f]{} f`#]ӆF;nƷq0RŴdaR1~kF*<4T6\)d;5%MO`,aUC@i~a;S`$P$zҒ(zr=+k,uhH#ٖ,'kߞRq"h*^: `M7]Q܂bDF+ݖмsbW1jg ds%x{YJ(!>X5Wm:5,Kq?mڴBbW%f Xw1z|J1FWF!xD-hێ~bdV0 lK8b8PI$v+-FҚ9/S]u}So)u,6I-pZ"Â`(;s}Gm @vSí.z#Le%q+ ,/x*u`3,S,u?xm "!W(|w#+ޫ}ۭ.}/GRAY Ѫy WRxvE_UF^ 9^]N v4yCjGh^=fɸ'CL&yu=l*t&iۉ=gb^36vDb% 3ZH=b،W5ΩwLRVѿ wZ,yFRiW7=Y~uF 8Ar&pqq&wW`~wDEEʈ4cX˴>}Z9fE ҏMt n[F1"HFna˙szJx!ğ-= VBjk$ +Sxv*&>>>#eeɏ:FןVBsѲC÷ٚ)hE&' <% ĹgT] |C9Mt|S=~KX0}q acM l ]]{m+?d_VL\_z}reim>t],SpFL8"pe#˚! *G׃k?BU\ѥ :,3OYrB ;6NeV\. 6ZPKsH1T81Vnuvola/64x64/apps/kcmx.pngUT fA?PQux Ux{_qu]z>_k ^SNs2w7*3FO Ipᱡ(B!o#\@^ܑP)bHW\ZZc؏AT4K@`0t-3_Y!J\J筩zLr1u^`"{* F^[RVqIɖBusK3RZ,"bcʟr%N |C- I^ɋv%olFDK&{z:&P`1DRٸvmn`K{͉EL\a5 c 3MZo iUVQ$s̙3f?u5PRT޷&$ەkّXW(7Eյ( ǐ1M)%?9oϕzsG$!8nX/t% \P[^݌{"ͺmɔu-_k%47/ek; #)c#ȇX|{Yp覞>1#d$_Á.`?PEC5uX5HE+0fcb؏Avt.E3ZK3(^h#(Yw)uM:LE-0,oNz!Lq\b<34D.l)=$fqJ|﵆TUxUn(熆$@ PbËgK J6 |S=Q:NHl-YpxҌ+zYDtoggʲa C+|c#Dv0Kr }w#Wy2i&Dg⍿GokQrs7aLx,I6"8 wktSSwFnTlhq<@3V3MkL@0E7)iYGTmI^@nL[}_^ݪ_fk˛Ywo/i_<60%Ul\N6Ļ~{YZդַ0zI/C`cQ՗IR)̭ObB!~o\or.p.Pxʮx+Y^6֧bP89<"N\C43&9M)9ԉaӭH̆+,:zħ,d5S5;ɳP}B*Urf?ZW$C^Kע}t+쭔:Tԍs{#m ;d 8* pG1| Hp)Nϑk_u|E;L`.Pi(\Ty {os=K v4:lK-Bpv3SvuO;z!ĄPNۇ򍡊` ?YZf!8>3'U5HغYqT+h^^O;Wi=G\5jHG?} ܥgQPp ,Ίsn;RDR|>@dn-[XB8]73Kxr}kcA5KBkIt 'Le_)/B" "!ӺB4ˡ\xk4\_a0ߛId紿 Wyasy" yiFF{jAn>r\}Wdav< 5av0N1*n,SD:îwQ)n+<_/c>ۇ@|&$ձHy{Bf`U9{М e}.yz_% L%=j}2Unܼkȝ ݺ)SIEabgnFH: O_~]FIiԙw#zθ$nDR $ad&1XtlNwyh\+"s>腣/# l/jSwW"|o\HݾxSZHd`mFoRn#vMV别9tɿ#\LY+ i1iDl6#Hf&gΉc5Z0`3jJ۝RyfG/HIDݕ׹8 >D/_>鄠!>n;$cYO5פ{#fZ-1plW~SN 2b~f~$'=i]3f9:ڊ/d4ijFʇp#X57g>GPڄa^2lLdrV^ nGfBޑ/**>ᇽ1ZNɼ \ߩӬRb0EԚ=΃j?E ?e|DzեN/tkYK裵5Kx #<}+|F}[Mv]o5Ƌ'DSOs"GG pLp[T~08n2:^vεqiUt,Y:j|?5 ^qf\٬S@bk,;+[BD{d~Ϸs6Z$-ɋ=1m$Μh(5;-\坥\ _~ktt͖@D͉L\ Wx.ۍ5us"it+-7:KI7%PGE~pM[S}e!bUO)9~yه5嚷OlzNPUC@YH&ȉ:Pu츈Ϻ^St9}Lryd}U[@zxzE/E?,{Ӏݑ*x̮ j\?k'qI\J0n0%9HحCkHTrM,\ʇ_lktH7d z,v:L~glFTN"2мW{")llr0Y"n(^wk5jf}{4z3b! 9q(8ngșr5W4RߏE-_$vH_Y7~{2&Gj ,<KywzipƗiIm a~ھw8dX7.@9^]C MiQu[g{&<"Y.QOmϕ!vQ~/v 1,+.\AWe3}PbJW|m;Pk3 ٚTSWdcbvf4D9ۤMD-^hJ}RD+kQ2΃u<Ê6w(:E%b,<yNrԳeר%%i9Nr:֠yNUAQ jQ ^T_R&Gfz#Ƭ@R"pJ>Q,t獯`f" c|a3.[ ̂,W>;jD?_Z!0˾.W[a2>4gs|iJԑ3P}9ܿoJJ,̽fx oeț@iV-RΑ7mS.ɗuDZrRN$8JjȔ| gBTl58wHucp݆M}45l5$ViÙvaݖ]5NL}8;}< N8n`ULDuBvxC_C7Wte9t- "]ݲnp(SF)y uR?`<GE441o0şK=\XRX!q#W7)#H łZW:+YJP,J*"m & !XUbl hG9:دQ֪jF#.k4r@Tr3n -j߇"#ScgصO~JHv{N%"^VقW6ŏt`įW1K#zOPݣ=];2`@DFr:o.\2t~n٥pBvoGzJte._Nn }bqq)kY(A=4*k/-z;ꂣk枽KRQxN_-;{߆HӢ0%yԭeEFyNQ¯#p8&>Υͼ*!b5e~]up`?.t\Ɩ99fĎFNb,nWLtVj,BMC"Og*j\=Z|*ǜju13x@T$ƇvȻ*֌oi0 $9MKqqoF'2Ë[d4mnŤUЀ2.`5>i.WXe|C%&(*-mm6|{'5:l.^" 9ĮYo؜ȴU4|:}/g}KRfxdQz@ ˲e(&N f^RB˞3Xa G͗XmV5園`moNM<{#=ÅV}i) Aq$KO> و!&̑dZI?f?/^Դ)QW 3bZa@++'~.Y(Elвf:Yk+/Vu/M\b0i~?ø`V_< <,PCn\ME|nVTrr<%zpNNccyFg^" Wϑ2-pr)qa=W?[6 [ygS,p*{B egX/-7&-,|eS\1ŗ/6KWiIuJlWT "M>;>%|O_;B{Q藘Wh&֟iW9J׌ʧÆ3^- VZ~$2u 5VK`Ǜnwn['@RSeщ: :`#@%%$+ .kxMM!wvtǂA38Hm9r6mJmWSށ >Ui9oݯh]YpU ?.Yde*7&@wz^> {p_< g٩bvMFi|*pxnv1,`+ ]3<zNPremw<>@dAo!c,4#k)'\JA߶>FeGfݚ?i*Zȅ\\9bC1LYw)DM3!FzW\HGj,B)|f_&܆'tLL:Jb 6Fyn8_?5붿!] ~>Sd.k&_yx`K.$w`'ΙKm>B|ͳ{3yKM؉j&|}Ofq{ >Z8oܹɊ?vha U?)Cy; fTЃ lށvБ?,\!Q HIo 8G][dz9{gyn@q㝷u<'lw}V! g?togtJpNU(N-%yfGHWsw2yI[XiC `7+%)6^٭`T*^: @p.SN6ܻ_t+d?{kv1 \#G,;2j(N"$LJ}S-2F;ggYRZ";rtMh☠RiR/sy)'|g#m({wNGe1?bZ%/>۾RW U<ڊٙuȕYf<%?@ X%:O逳98ˡsF-r1J KGꧥV'RSқuKf+\V9ş{ms{x(v&G(2qI>P;DAvN=EybOmTȯk6`o fs _Ӿ@qFb K2P 2EBЁ'Td-LCGb&*£:{|vԣxg0U`1r\JtU+;K߭U\DmYӵ??\Oi lbN4$t<`M?SLDppjL%W]X3HgFe <~kp?Clz9lb~AmN" ( 6ULO(iUcހWVٍXq'F^aQ_mkMNMN$;5߂3W*sAv_~zY^(<|Цu/x'-}{@~均!t vQlbEy<."xzEa[M;6>@?PKSN1j nuvola/64x64/apps/kcoloredit.pngUT ~mA=PQux eYy8T>ڎ- bPS(D(jRѢh1ZPɼ-ʛ0$" 0\|?y~ضc aGzd|xqQaID/zP |= `dѬ<:ev!Q6'29t %cِxu/@3[qt1 T";f' 0X1-!]DEBZ"Y&}?-6o".9BSs$b5G De=.ȪTQ)P ѵlBJjm 6^z&;\xˆ̉3+O ɢ8[qE }yzKޅT_TO P4R0O9g%/FY4$R5N4LW@ӇjY S"=Q`.9 EvㄆÀ۪T;p %F׌ֆr$ctIވtݿK夒9D g4൱+ FutUYо E,ʯ])aSàJc@_ۄ)qGydKܕ3yK߃!]S^C~7NyL늚'm:Tj,OJtSrNw#Ө#;2|Ng(z4/뤻[ɼ Nw7ֈXk[Ƈ>7!a_F-U`N`ن*bgTGOzC*(וtM/xg CG hOuK1wPvh3elbth.9QygɺQ\YF= DXuBK6uIxOU]ؘ5;HeLe(Ft/Wj! IIr|#m`s:r`pPЍ8Vgd׿#Ǹ&)՞͔kd.Agg?F˙@FpVDm8οLDZ4-a2 7Dav/~W;^ooqI 졎Y8%6A=ryQ˸%V$0ɤjQ*FMCGu6؟Q ,ʼ fn$?=֛O Gx: `C 84 GsaO,v7 H|;[slyLt V/U=Ђ2_oI]x'x8p4sϡlc6fGK e3e29Wݖ e3侸nXY_Ats,J_z>'ƙp]ԙilqA7ci#ZtZ-RI[xe"yl ^Ύs#Zc]RӼk.6259xV܂c:3Dhj, vÑFakce?! >tEED/o4{s}O|,T?]ɝ[#R؀}bH+|1Ѹϊp3!pv¢pH@wjE -0]q&򁼲2B>}^2՚ :ĻE0"b**cŗz1z6Q6 ɼ݄ȷ­g9jPHPJb_mw5?~;/K SRwwI<hljVv3ޥ[ޛ( I@+C|M$\5d@T ^ 6ьnl/<0FYÜ J軒PLΏl / ~qԢ]nH-󈓴G QrFGRiy~v!@hm$_"W*paLzm6< GŞPkꇄ0&PFJr'_8[_IZhq]Gk _E#B>nAE8ڑ=vzk̴;cE욃ԬgW+:x&%6cAL$Iلi]780N=9jT"JA" 5H6B=Κy|s(NMj>h|ÇƻrPM;BGe9A Ώu8~ ͐}h %A{7?=XMh*C8jcRV4 4ZG\8jYJݿ@ٴ}sy{J6B41yQvqp+9Ip͌(q1cTڄ#\&u& !p`*7N R qŭŭD~m3@C!Y ҄LTv "5*(bĹKR0i$33uoTF|%j5p90:ŐB8©y @"j9JaݳhQ0nhwyhB؃eD{*R nUf?'go HŭRqAqv92 f<3J1Fnq_ ֣k•*YΕ(բxr wL[ ~ OOڒ[[ v]ԑ5J?$XKLJE0.ie%~hfUoi1bpcǨ--+.,bp粝m+:8/M2/nZJl&c;,8 ٟ)#'NLj~Bդ H{cI)ީ硎/3$߮v$21l4FEY{GRow^zֱ!խQHQlY: *S9<6@4iL_jP"rRw?n^p4{^1nXч&+x{ߑ̺O\ dJ)M*V3_8/^sZ<Wjn-BsA.[Sb\V$s`|r)YLʔX*3>zoj܆tc t@)ZǺz'¦rN2E)E+>C^#zf/I&:nU2QP}D)o*v6)Ry:r)fxXP}qk9Og's݁<͇ԙ洈ЀA} mݵD]DRihFJ4D>]:d 'm%7ͫRY+aT5.bюcbI3 9̣:rih4OeO?PiFVJñ >jF>);Y{G'V:)wNfoG\A_8+%'" 6#Rߪ̫UH9WnD¨ّ>|r-FiLˆ:#3}8v H&=NsU`("E~ZR3HK`[g(Z;Y"+/U>9= U[B8)B1V*o&a5I%L{%bwj у''P~CeI*4b0) +&O_1 }yo ŅNev69Dpih6Hēę_>k~ $M5Iax!\g9)5n'Ξ3^~Im-}P΅Sp1`\ȥ+E2iS0S/QyJ d:WI2q;c'i$+h1(xD~|L[$d<0'LDwLP?-iǞ%9/ѯ0%1)ڳ$Bk/d[^0v'aV5J' 4vQ(07Qj_j=ʦaTS-_B˲oi%O TQY/*$?GA]́_QxQ_|pރu;,oҍ}cIo9:4s .t8|C%3D- ~tPz(pY Tr6x#PKsH1}B/nuvola/64x64/apps/kcontrol.pngUT fA@PQux %XT[םT@C A R$`C,$ MEi"= RDS]`$*@(Z3wMܳsV%˗{nHGc2*Pg* Nm8':Tbp\fDpD07XnmޤhЀ P+~[v}K -/dgӻy_QL } #|ucR¡IRW?PS[[ ͜{fhZ Ϯ~Bd<̥$)dZ 8oraўK6IJL.!x|~xv[[ƒE״!H.ǀYDp#Mgؒ=>_btI?I71{ϒ$I6VoZZWDx 2Ş>>AA< mj}H%tf#'ф߯qhzS3sxX33AMsſV2~K1,6;Y/c!pē"yF~}gOz]H_\L ) c SKDRSz\$0]OَЈBDp|9z.n)"$/t,CCuUh+FLtUh25M`}_W[X4:9ND_cUh C &w<.i8ŝoJ HNdCB༉DC9v ٠>#yoyS8ecǘOlXRJź1Si0^\;tU^wc3Or[wpAdT XLZbYb|Ro ج^7Qw:ãX!!h =Y=W56Ѳ5ϸ: W'}!T_^wwwʠ*)* fV .s.ebڿ$  MK+؈05(퟿#kץ꫁$.!XDKKKRIJ{ՈfzW cGLIChBAm#WK:\安4?r=:BՈi p9f)O ʛ&j>jeڮ7֞~Ywg18Sԅݪ~~7 1%A}o]A**y%./?23;Q.'1Bقz6*OA[¾VII{V8שjhoZΥiKy#W:tWq%;YBo]blJ_05Oаk׬1kN9Y"e3$࿬+Q}[\u0g[yfg/c?yJ/Ui%&Q;ٝJ@bzpvr['LdyS51neFss bVvjD } ?g C4c['N\xuDek\0"(R!c%Q2^V% ̬lE eOn7~cVP]J`zӼ7h#U<V3&c~}qe &wGU_N3>WcTǼh{mN7ɜEpH&V9 Tt|M Ux'Oaqn 5v͚5ZF4=zqK inn=x̙#hןGo1ŏ< ĕ^[StU0y37-_'j(fT) SNj5U.ןH?8ow,ǹy;eji 5~ _) ݄=12ZϷ{3Iy˲[###[ JW/{&kXI2o@;Y)|)yOOUvxxSC|OJ@ox$ReM9suZ5`:а}Y*K^}d=d 5&2Y\fk.n+8s҂C]n4 ٞ\_"pS#FN` wn_Lo4)tpdh,I"zϞ_*<%v0;bѼB>Fwy - 9}3F8Y) lwE<"Ahl[xJ2HI  O{2.}e&woc{̟,Ej ȝߑkЬe{=6ȸ4^?WRȥC%mmڰb,:҄`M327o"?.\|p6o#qE ,&EW4b!m#AѴt)-]ʤFoU3˟%ة1$,{k_~Vzw2>u l{Mz#!7T2 29 {Qm"Dtn箢=m K.22scy1mM~l>U5fݻ2it=deӆ9 22Ӹ4r{Ӊ}M&ELV$A~h5J˼3t:[--Ȼ\0qt}e6{ݏ6[U0f}Ew?L%[09y r% :k7lnb6[S@O,pʬPaC |2,V|I#̗}W=y8pÁcaچi~u3%}pSިidbbnR&{YM5KC\G={H4NmP4X.o,mhW#t Kuuy=>{g 61iү|[ҷT&9$^F_`; 43 B ZmH1c֎і+$ONQ͔S_$ѓuUqDjA,=d*E[c}`;Үlh8n@rbb_ϸpRǏRL0w7).7Y#mM1}=굟d?H' n O4cqSR"),],1A[ӬPt4WX) ,r9l0%/rV"RyJ!i+y<?it~*R?r0׹61bE(Qhx&'xN4Kc)-%=g~ A}"#N5CNLJrb zT/ܚh-FMԺi9D(04 \;%keΏdQ)gd.2ᏐidCk3^j]"g:|*]z46V 4@ f~$5$ⰜdLU~,APB(dW.Gkf؛TR?|J +<}3XWI6\XZYg 8* C :@g1x0wɔ!i-;|omœ6~m~PE&) Qqt~5A؍Ɏ|"%N 9V€ DE)(e\'6ַL dq^h0޺vA#F5F"j|UPp|FdEuփ@% }! ԥI L^&G~CZ#nwLY}wFC*sVsd7yqDd(d8y54Ϙ]U/h[4+SGܢ ׁ3$kjufyB: }omH 0Ї2cɵm//rv#ˣA%Z1 T']) 1Yh* ESs񃏹9T~IۻEAk ?G.B$3&p vȇ$1bF1$%M&+Vс$#;'3iW"' bO H2->q%D)Ź F.6mJԿżؽ6BO#B 큙}|hotMQ|{S1RY}F^ D&2޾sdBAh"LˮS Ծ^P1KEACs{=(hJUя_UG8q񡷉+ɥ1 뽧T4;]Z(|")I[Ed)K VKM"nR~[nÿǂ,M5l'U6q!kGeMo:j0g^HVg>"if{a& -z?-20WzH{E 8pb!W@Ks] Am_5o)Rd27Q,Րr˛P}`YZnWUөjoom5d6Kf%BJuv66ү x 9 ]jtDdV⯙\&W!,KßYx 4&R=FEgj=u"ˆuJ_Wэ|+k ׸U`[Bc -n"քh-}S@mۼcc/JPKrH1ac . nuvola/64x64/apps/kdat.pngUT ܆fA?PQux V{8[cfbf #0ʸ+&RqHUr(!RM_qKדLKB'[8%{}}y~^k~vu$)j)H;Н< 8tݰֿYPٺUgy{8ؿu`_p[_`l K;Ƽ--Y5:$0 Ȓ@L?9ģ/t+ K%x?.{ $?~|:I.۹07qc}&RIҒjW+َz-m&fX8+H]fʪ%IWy׷{.'3gLxpE?cz%(Pfo+5=qq]eo*mQ䫁وbT3jiK"{R,]BT]q;2):=ÊWLXJضk.ve:brZg}ĀGRLIRVQm-Vmv0S:m,`o>0}BHVayt"-57Bp=xz5.yA XZیtH,P-2jӭ~rCiv,~"k9. ]bĜc2ߝRsq(`&"FV%1d9P$Zޅ;ʸ͵w;/ChfNF&0o&;ywr ݢ,㈾Da>N,8CJ XT4xiS1N⺺f%/ By6{.[x# kQ :&6skՏj$5ݏ  W ?-9TH8g;\J(nފ2yY ^LzyEqi%z29Œ|W:㾡~S_ޟaQcﺸAi8뙔~nsnot/99_P20L4k/Y/Imbh<"ь_SoRRf%^te#+[hbyǧzZ&a53|%A&tvpY34TRDC9û6Ie?5+pq;,M缱qMƍ_?Th{?fnBۑ O4w΂W=3b&ɨ#WġW|~ )3J98M=oBTdC?5/| %Vxyy-RTT rs7t95o mʗh2y˔Wd+`҅$Eh;Z}&Khz:V\Wsъy(@I"KF#'ͪsT54&aW(`X4T4?{qp~8 F'iOz;!j8m00[~mULPHfeS_O?{wEBĎPL>@Jk8Wܼ,gz>83Zi/%$seoQR7 abE $fLp6}MCW5 BL[ƽ$,keb.ύWXHy|: 2/q|NAЎAhN5yRœGj ZCTLYn:{U`Hl%]7򀑃5khu8;C4WNQk!FFDG:Z-夛o#QP@a)ŽImTm!¢R~)̣Zׁ(Q>jm-ox␹sϙprҿhh?Nl62m{ 8*Dz-UmDa@+eFkzg:hC$҄޲E[U+ׯ8:.>Wj".^1کs }Ju@// imQ\DDw#57&︲X(lUU/0tc_/[8Jh$E6U`?RvԖ*r3GN+w) ƻ{1,3raP^> ^&? *f]}ѫwRJΗ1֑(kʮ~ j)py ֺ𯳯J 7#1'{.BDo* 9l+ͦ(eXIKz>'4SL܁X4K(Wf/A ќc;F*+sܲI8C2ܫ 7ѭstH|HYo,ݙ5$։F 3ɤF߼c%SNʜK Xjip&9uꔭ:UM i n}~˩l _^ˏQՈUwoP ĥUi㧢pT{ PDJ{2eYzϵN- `GM* QnoV ~D]=0?Lƌ?0l&{nj.Fr|5,uJZ`>gW7H֥~JH_W Y)h4ό˗0!-ͼ~y3QWBBw{ș͂K>:ߒpǞ$^7I*fi^+V,\w@ß*[|} eWiI]$69C͢2 gb# ؿ 9/znwgMemG<0sR_dmöTm E6U࢜v@ ^܄+$_;z a~i*=H8Gͯ"56TH3E^ ]~'nʵo暔{+uT Q`ahwҌwxe<1 ŢZF\ϬBF)yjM{֌|tP+ RӝZ g5E]Ϥ^%FsF 骢PƓPee>WM"1o? pǵIZ$ |c:$5VqL @~'|#=8o7vv*ŏ 6⭕ئlh(6K?:܂I4ސ ג!VzC.hZ'7?EjBt0$yZrqb 6ei~CuhQ+W)Ȍ1vY$͜uS)yG1^T&(I5kn2k ]aīg@!76ߧfrqS)pk1WKSԥNv*?5.BWͮ8A3ey~u=x2jʭ`>Bx4*?$7o8ඌ/_`ֳu .rW.m!=צ#W[eTcܿ5 "LjAl/-]4#8ܫQpb|;_"f⒗;$1E3_ jwVUTV8I*f$[3ng6Wtgҫ. )Yǩ6qBk|Dr?Ȝ+ZG3y,BUû/ TNQmCDC 7Ve2ۃ>1ٳ>?P(Q12 Ygo^ xQ^J ˌb 0{DJѳ㇒a&c_u0oa`j0z9."x{#!!+Ӗ P;s/{rpGQsR]+Nty4Yqhf}| X-eL4z?+d ףD[D@AV$@ͳam>g!.͊'!{~}F8:Z2/XirܓLJ[8~X60O $uN9-< 'Iwa%ς[ oU?@9q4΃ׂ6r@JRgѭag7O 8SuA |OLDeu XKUxzJ3/ NdJ1!16 $d"NْCc"҉5aݹ,[9/p߽GC`O6zN#ᒋZX(ێT]Fl{Lz 0AN)y+Vyǝ|VU7| &َxV^WfN ]ňQ8y9 G\>P@{"C*˖(CA2M9M2")0Ț6wҏ%J0~P(F~c׺f}X` pw4PQ{Ƣ/R>YtGR'Ÿ;3ʲ*MP 1(NDpڮ} RkLoZm](i=; zN!_I+N K^5PkC+ p^M!֫KgwJW@a"鹾SQ}5%0*7Eb8 L#M)'mfN1Î>[Wrx'wԀP#e]$Oˤn"]\\hcwsGk`ꏃ٩o(Qg5˫%-tʌ=Bd E{B #PE|p,ZKgVчM$]W)@tpmEʲ Sīm5W[`rLGw<&7_^\\!|z*ۻ _m&:x/}G 3o=lT z!BRx2dB' 2MמM;Qt Ɓ]wYͨB M-utfg̾D%]>R GMְ  h㞅Íz}UPBԱDݍĿWjBi 5}5Z6 aZަk'$`e@k̤?fVwC*"^,EG }&cz's 6lұ=bDvvrB/ݦT,F#WӇL9*%ߜ‘効bKUFl%ko[fgEqS|]' >}\^?.W=zBŢSN5|%{%Yu-;KfRNe̾muKF:/h/y gGxiovo$NJpVw஁L;UB;Ix*`մ4~ův:=R/&%QS.d8\L|>#RjFA0PǢ[/ 9t)E|jQY?en/GPKsH1N2 knuvola/64x64/apps/kdict.pngUT fA@PQux -W TR^A+e&BM&Yn4sw[5JGe'+mrj*Z&HЫTLh.$*p4Ϲ;9߻<>o[x|}6m׭/}o9ԣ[Y[YpeϺ=_˱xO==>:.Pk;,nbFFj +RZTT}ϋc1Ѫy9Ff$S]b~5gZU W#}?₟gWtlhyĴ Mo1WLo[@EzGa2]}`CZs/'{AGP,ġE 岝jm,޾Ʃ Ed:bNFh->]0yͅV* *R|Vi>G,J$YNTa|SȜ64C\ <cVǭv*K"dBHR%{ba> q!W87uksϓH|ma k,سM1AmxWcbMn#:kԓre'Dݼ&KA O=yK|ڿSzqZUe)=B:E <~%k''F[ EO-mȤ˖[z'A#$UAG&T?*T:B0+ -e:8 ~9P,h/i l_KpU@-15!!pIL4_qqg~W\iE (c!LXz^{z6VhZz+iVиrKzk7$?DW̒p>Z2;N>l \.[ZIȐ?%rڬQ7oJɛ/Dk)$M%T(>ꆣ,EavD^/ϐHiry~ѹ~h!FObn7i{B(&JV U܋ 6PȨ~Fo8*7R(2JVFJδ! h E9' <=6$Dz{%R$Zva? m;-`#E/D: Zz{ Mt u3(]|ǘ"peD[Y)fP^cgsS"H`ImE+t~f?7 Қ,sY[4pSc]7 YbFy5C aN'  ϪTZijE';0m٫Ԇ v#KN\|jW{̭5Nhi>p.ʑIJ;L&Cw/n_G yIgW;4fnO8S$pEJ=U{ /\uE17FPAvv6OOț04}1 *qG,}:g/kY!+38[v Q>WE92KC C@ Jӛ/O *XQVuؠ9%Kk2'1 o@̜"l.H%N_*{))htyx7".!؇em9"V⇔3Wj(z8ʫ-\nɎB_Bgm(SAjB1kтW'$#IT )|P[)/KZ0C "2xEhԜy6oɊ4jz7pDf5ލ %iWRQyu',tNKOx)b`wi ތ|{Ru?SL^eA%7nc= 'WA8 IY-A?iU33& v7nKe+PCh:^]ݞ2*V v_vz֓uxO>5M#,(ͪN?x ׍BBEޤJ'_`;y΀S`̏_HpGc/oy:Z\ga`xk7-/X de^E_VY9QR20Lj߅Ix=Pe~n?ƍ"|Fgm"r?$N[M%Ig 0x 7tWUT xwWin\$$&?%WNvt"~#:R5$M_y$7%49lNrkf!ޟr#|6׎*OS"X4Ahju[8PpFˮn{2`V U_`v;6SOYZvm ==4j5$--%bʸ+NU6ntj2ULhFM^&/d$UW_K}ߚAffv&pAz"$z0*-_ e+71>F/;XǼ#ʝ$ VPNPr9$<6~_G˛$me%S[EǙ9j Xh^;H7ʡBiAKz^&kXedM28gINz|CyN|f= zk lfϒ^ZQZ.T|yAr#yaIYⵉܘSKy_#+,CWatbdA4^U_@#Cϝ ;4Y1t&>MٿDVʙ+c!(uct'ED򿇃N˧q*vcGL稇]VX/#A){#V :1`;Z^XE^#b.1H\y2ii5xZX0e>jcTY'x(GlB3f-B#kKX6cyᶭ䶀V"mS|(ݭjz\Zl*,@1"=ɿęY O6wUqI ;p08}T~'|DZwVEgHs=k! Atbr!H aҊ"hdW6>g'65ovF\ȷ"$[Q|Ē2@C".:y]]"Y!Fd.碤0×:A'.n2JhP+. AFcEcjRk+[=j'([OĄb"qXJzS9[".ZX8.)^P Ifk͈"y|6+f8i؝VcCpU1e t+v:-LanJ`=wc5ҧ]Ɗc˼(ڡPke%vK&H.yAbp\πE rOEanRud-l$H3 0-A`n#D.uv X'~G8 ┟LϖOWC{ǓIЊ:Zg1ML*s.h` (ZNt B2bR<&\W6*]2;#WCMJݧC3PpWNA-0Fi?q;RHA=HMm̧.K_.E8OB;u i& ``a_rw魸A>^ҡtWP7-a+7 Z3u -3J%bu-bog8qG^ fQE{gcI!gpJH˜j0/:qIP%DOJIQ\xnӃNiԈlL,6Av͢x4 _ sy}zsJo˔ l <^w{bg+A״ !#<7wV$UFً1"5НSZM-~jťn1;XNBZ?+GjqXoצ^:"&TQMܚ~mxr"\ T^3{e[:ZW\ J:⦿QCy9N&\/TS8{@ 4s#X#'^D A9dw;O`rs"Cދ?@9ݝ @\̟@J+[cb#//Jc.Z)nVl6\$^R=-Fs`I_NMN% jw_*>:ѻe@xI~]FYw fMMQXC|E"AXv`O`8U~:i˩{NJSuh&4v}TԅEpM `9:Bm{ _i{ܨgniW;W%&/с+mP?ֻjP/bN嬸,"#bg>Ri66¡h՟_U yvHmYNԫ dn,Z0iQA_8g*YaP?s2im(<580vVtATkgnу24dJV8VVFA D#Rm2}!G0W7Uӣ{"z:c 6"_U66rZNN38:X„{4PKl^^|{YDC=vm6Djcn/I+řSW7Y6H|vwgLhe(-˨G(%D2o HbUd*_-\miՎ!y1Ag߲,G\7&t#+}I;%E- зu@C3QP'_u ,|ϭY *i_= J=+ؐV' ƶ8xJJ*u{;8kQÛhfN5KB]%VXT uP@G;E ֧)T_M>ğt "7Ƿ`t,3e L'w!j-K,_ygOz?oC~tCOFɋkd2$!AdssLBCv#t77Og+gbQf3l m!W \5sulHSAŘGApޏ%7#Y#;1 ŋaSM/VNÙ"Dcg GR(KJ^Va^`˥F0UQU=b7F^Ğ9zADC~&saУU5FF~ jMG YgZHXBנďy# c7o}cÜޟ+Q1Bx7Xpa1 J Z`]kiA*㰝 3L蘒3)(>|+vS``,9vWI>s}i{y6MR踃=$$!R,+ )0W'xT!+j~콏Z)ZcvVX۷K8ZC,Gu b 5^¤!o'3Oaͳ4F߈-1{ i__-ۜ^dﰣ`EFˣY2l`i>xW=KC4VWZRnYg@dU12KVl~?EBkExΠnF2e6J ӥeYtmX@ v@FI8Wi!**е'HcST<Ϡg! w#㳾pi鸏 r_B(v9 yc]T+%ſLA o𣈖Id|FWQhuD; oR:ScQK]KYndh~{xY:sP{ m5+d}Rf)fzZhM+g&M [HdQn5  /%0!]NA{9Ș0Wk*՟]D2hW\XzjfDqRqڛ^,8pQtbz;mP`#54&q`>GwWؖ-P9Vh7vsDf7-?]P+y̼c'-7!bj0%7 $"{h>x,)JC:s&IO "ѫB%A]CH5=GvDA+<"@1s|&}cS<<&6x&lޑ ɘmqɳvUJO o+D[4|v}'N%G043w$yam:ԬPM>+->Uܹ}a,.o\Ѧf`A߽C' E6ݮؤC\()}}b.Nŝ4^vSq0}g$MḫnH5zӉ/ ~DX"WoԪlp.aYD,_1֋ҨdSkZB_,5%-a¶ҿץ+ƈbpXј^9C[]5ϊeh'ƛs>2 }Q+POƊcE;.6q<eWq8n|9 AoJBWȃϻxecV䮋I綃g?$( _Nm.mƛ}Lwe\,x0lпT2քǧ(m|B/$[}? Z930#\$1~M,`l@`YY ³ڸu8Qci}-sb/B.EF&HSXDz괈%F?k{|ia8,+7 +ԦD6_o8v9:R\~91_E?FHұS${]_ sup F]f*]#> Z􃿈.,x̹?DK`WQ*X&q39=Z-x\\[fFccb5.]Kc/ )[5:.#:O PP7¢,y?gm[FK+Km=-LVUxA9D5ni#V?$]18U=؆L>!XBiWJ%4=pa3U(</܄\1%[ϰDMĹQaA iYzĖSg M ;>tqF\\h9p25+f"`3&~@bF>*N_ 1bGm%@>SMK8v#n"u8ŷ ?jAGN<+o*αY*.~^OcYWyߐ䋗zrJAх@ P?kVNeXj#Y,:!bq%2OcW|3ߤKY6簰ށmZ ӦolyB{r~܏,ܹ1yE*C/׬x1e >^\;a,qQvnR)·.(2fUhZ1Jd rs^y VZq?uøIQeD\_rMqh$S `ſe.IIш k 鞑\}QgCw2}Ib"nrkRQޣNM-Lpfەp/CʾH͔`A/x7ie(. (d|v|}>bD}}c5/#_I7A`Lā;Sc' jQgD8iD.%ت!&^;)QF0v0T4I'#ҞaZ6ߗQ1Џ S--Hs ip6|\24 6-$$Nt+KP 4}{]l11񝢉ÁUQwdZQZIS5t}QH5zJu6c$LyE>[v>IsO79pn)O"AaG 0Q?FVT'_v/s-u\vHN f'qvs?rr,|͞5n+%񭍣jy]c/\x]&SD9} (dhHcQRB iP!-/+-L!}U`G.r#Ba(-^3Ft?ctf~`w/Z };umZ +ih[tӆVZLx~sSb"*qvBd5Դɸu,VwM=lK*5 >\-Q\ Q8gM3Y RE}#tp)Ss+g6="WRc/*> r/$f+қ4,!ihr(*Θ->뺎jO-՞TX1]~k5)|^_o2WR9pXOW!`X]YTKph.AW0紐6]bdpjmQa:U`i*\mdDh9e6&ܥFR0nx_c?gPlgZ$; e)4I吼|WdLhfâ5zۖigcXi{B?U<*r]mv =~ #DW&Qo!tBCor =Z䝉yORH\("/O<PnZ ߉ݔcѸ^/ж69|]]bTnQљbem*xti_=F=$5}](ޅ]KQ9H`6;G=ΣV* `Ns9t!;{a:wzUk\쟛oEʹ:|Ut8$'m\@2) /$;{y~WX6PKrH1^Rnuvola/64x64/apps/kdmconfig.pngUT ƆfACPQux 5w{<3$lHEmL-T-7sVr6tP)%KwdcvGݲA ap>ޯz>_@mK̖ws6w렵Ͽ' j2m ߴ[BNN9 У" JKj/7ӃS?E *E&r#\RϐhdãVv&6KPFl}껛ސASd,"Y07pbCRu\3O/)dAARӥ1Rb~^T0Ifvȿ zqoBl_?Wlxsek{ W.׽D)2bhnq*Â_[eLf(qn5 yUyaik Zަݫ5{"F;+g6T$Jk LUq&E,S5S&G2~Ia[DIj}|)Ǣxv8\ ,эSQyagqx~]w ϯ *Է3y>Ei(,z6 GC",H 1zSՅ{X=_/dc:_ #cgTmzB Yy9\q.j9fhn"}+\ag,}N4EBNɐ_'{{3Z}|ӱʂgǼCOѭ}j,à%шlX6ãf?.!?zX2@!'&sz3}zO*EZǺ 'm8lxCeq(D٭֜)kG  ̉ꇙ13iL*!X1oa-K;rz,X yu!F ]Frqԣ B!PYt!!"| $Kڟ*lRob項?&Ay8D4Bx2-*$Vz0B: Uu N EYXon f1E26F\ 5tQvPR+ k^T|$Z+'&҄ABB b[|O"kPs6&-쏶˄14ˉ&m0 QAsoݥ_1MO K>OMX rbG#\%YNH+}f֤& YgF8㷈ও¢ H!vL~C۳srΩ01l$ڔ`3k5[#Pv$}dByL.˟2C4fͿqSWiz_C kߤ ?пng`Yǐ;XŌ$yf 6銩|9,G,w%4 |YI}i#3JL T $Z9/{;< G;(:`qvBTx-HTav_cU<:O-Ql^IOE>v&~[s2=G.O]{Ζ.%. lY_;8VMK⾷SVc)8TnveU4ZU;3rU~C!;YlY$s{v,|ƺϯSL0Ηf,@" hfZ\ (&3TBkm''_KOSpB/lBF\aozm˶m3@\ŠBGTM|͊0!@F*T"QPYTB0".d~A d8 @ aǓо{(Ci첑pӬXBz߅,aߴ6x=FtflH$F X=_ TkAFzP/< m{v9xþ}ޤhbiY]%ܸXl% '+&L|3KIu\VQ-zW[*S2P&]>o$Tz^$|?F:vp]gNN[~Z'>!z]+$I}so?U8@7wM=FxT|heTW+ǡ>w.u2ɲKoF"'Gl2%qٰLy,χ(i?&͢7^~V~Zg#oz0`iO岱K}:,n#'"nȼuap:]3Jg- : 1ᑚ ܙ P5Lܗڍɟ'֟鴚afkܧܟog{?8`WBY#XT&vh`U_D@M{%1BROC;9cu:xOa?~"W& Wf5Q 0*#|)sL^,`Ƹ+/rπЯ]LuK^Q2}OU|CN\{%` C3-`VҟC |]\O;eTKIj20piP z5e6R)~(o| ‰G p\FZiZv ̻=mb4A1p p4ȹ\k "1` ^ap̘\g,;" 2S웴RQ02 Đ}I[yL>|k..^ 9 5mRAzvsH۟մKe  c=:[jJTnAپ[)O`5Ò-<rLʤ *Vr/Z %x +PH@_Jqd< LDHkƇtJ\;@+Ux"OǪπ7 CaEro&8VJJ]q.F4|e![o\-\WF3d N1Fr1vCމhjfBT]n'؆s'[]rfUuKfzs= c ϓC@W~!>+AūƁTXkz̀o+v[n%yLj7_|`V\XJA8 'λ뙢UY/5l=1fzf+g,8v}fT:GTd/zʰ1 BͶK&3oiTG\f#t}7a"~g_5st*}0m{w'WNc6Xi+Ukj('ˍ%y䜫yRIP[2af:UbwH5 v.ȸﯚxOڄ>ʻȆEؗ*Rvq-oD}]{vR-ɩAG>[Zs*tΘG&[6I,.]}1^ ؤϒn obѰo!t} qi$!饘X|Ht;|+?VDk7 Zv‹VWe@*1H9Np"#EI3 +& fRR/]mb#'QRkRk%~ 9'gj^IZ p|nY[ - yG5Ic RKUD #LBaX#]ܷn.qFoik@Fxܪshe'TJ͡]˗ c?Z[D8jZx&." '1jUߩrGS.}_rBOJ.wUm+ݠ}ezDOhN1#ԌJeۿS XzhHaڋ)oh:ngۡ6U?ѝeN6RO y-vIGSQ.)=CmNh:Xx$CԡJ[I MB;z}eo5`t:cl9@HW>gm]}v@$L5S<>|dbJT0RJX[TnkyDjrZwUmCA8-Pl pq*lr*:k`Bf:Y` ΈAw`_=6ԨRՀDh-^>=LAyET#_^7Õ >Ҍy F>9NS*Z 9#ԕ<%XzNw.> ݢk"ôc `92=$_jJqe/+. kM"PD$W-"s|/jox$ "rjt`p$` Wmr+1Qn oR)m8P,!j,͘UܺW=ۢs 6XKz" +j;UR28-ls\҉Y+)9]مiRw;a&Hw"pj>)%^XeE$ů{+8YжzAK_iw&'1*&?uLNryT g=lZ<%IOםay~weX 4SQ'gm?< JQ oT6vIZdLg|/qRͺ¹z苄:vN0@@ܱI`YXz`S4/ZȜ@j鴚X%Y+cXabJ$vjx92&qu4%fF*ըaqa+'؍5~m Kcʎwd&C Ϲq> G7wj$v Oʒ``dq%j# FXFm c iUfȾ):.R̐=P'Dul{z(KO2 fD+Nf"uʙLd/o)ڙ,}6Ng$5^D=ARI UX]W9FUiF5t ~nw`~5pV//KD&%]>>' Ch!KRE"9sZvL:cg^K}kR2[HX[QO"h"WڟwᬸBP(#m<֝c|h% o1o`@sLI chTIAg4-i1^ 0LX o>Mw$^3ZP=l0̥߮ŐQ*앓;#2nNk07սTsE]\@bt*)px~zGYAo{!Z s XȨd njEY?eʼn<Ƌ%W-k7/mMj@kU0L͝OV~&VRfK7Z5=rg-R)lW\|ɧ ']~c0`$<{vl-]<89NeVsߝƮ38J}WS%gJgC7A,ԩ'MVZ8 :e%Nj(e)bF{hjO=Ev $sxm%"#1x)6rQϝR߯L!wߍz=?S=1G7'h{W7D#U@./?ɱ_>}䥛$*2uPMK e<{l 9eNf^a @Kg|q 'Kaxk` aɸ3Xlqe>^+_󊔂ɿ=%=#.4RfkfjRh3z/=l f|Ԃ9!Ch@F9ksūYaNew27vrR|7D݁ s_Mw `碯4s8mKeC`Ò'0[N!,ϒGrk률IdXPСO07"]eD)Jq3)Nf''t,x g@KPwp֏/'/7[;6dȯ~ox>HIZn GNt)a+ᖶ rۃzt~{Z~963|x. rxǏ;|gqݝFv.=tYL.b!gakJ6"Z{`rQ~Ilfڵ8#S7o]yjDcz[ѩVU`V۵AH2l T8ͶJ/Wap֣NL*abjN$q c(K8C4h9뛜s^s({<9{?'8FTڻEkGG%iA* gA|R/.jkO,,-toSH OwMx7& vF ~F'A چGVOkC 05Wz| %T/nZ<߬xloyפj{HFM5]:~,NL}5صvyQe.lp}$j.[a iPZ}àQ %~7s~a|]Po-gD𱺠!-T9)O٤vȟ A}]W/r:fȶ^GΠ~=8#[]RD->JNIx3f0/oz G߶r*P&ܺ|Rm*c$ bRKaGX/Gg)r0OA I ( K#uɼk+ ]{4m~gagjs; -mSB| AK fG0YO&WwU͕UW1vIu^8prb_DvH=.@͖_1iŅa+X-MZGFZ$'Ibp4reƩV7'3{g'&raP}.tNr)gj=j6{HfX;}aGjj7_Mgi9bw~(6f?LqݲH_rKm4) 8h }Y8To)vњ :z~y; ؙSۣ)֔'[maO: Cgw/nY$i%!H,뼞|ŀwVET2߆\M}O"I:@nv)EegӄgDi~- II{kZw 68AE >=O~3ֆb/!1k8{׀CY\q8ksi{rcj݌Tr=b?@jxWy8 պ4rE3@,vcZj|c(u.d ";3 oH;V$˟4CIT5ט~|6:?ca켥(QwpΣ萑3A;(ުܵzЬZcBC/:aՎPΓ fF}_q ; 9ix)Gqܦc'"h S6B C&dˊB`a Fg `צj?bޤ'Gs3[fNᓽB5t(2͚m~LGt3P_ {9BE8<'G&0(: IZˀ׎r 2[O4D;.+N8X y~z&@zA aJwm%1VcrdԚh]JW̰/xU R`7hckd l7.A?\*ɮ#Fކdyh) ̟TICʥ'G߾\q/Z ӯsMK_v&1!y :><1Z@|.-!S3u1IUJ/;c[JwI;Spk(H.["[:i=$W?^bR ?AK2BWM~&wGb9# OQnkOK˾<H^>iy%I5=Uzc#®b (R=,5ᒷfe]Ve[I5V^;٘=S3e\=1haV`Ltéک_Sσo]BMnK |"pRLݛ@xLcpu"90)cN8G Xϻ+GPK%sH1@H$nuvola/64x64/apps/keditbookmarks.pngUT &fA>PQux mx{8Tm3a6a1r.1H(N+ ) E'!1J=*OzlqPɡ"9uYk]k]~k]pۮ )ŽzJ%,$} BgxhKL%SNEEvzEt;:zlÜA^c@ 8 @&H-/*@sfWe\vۘ-[tbrGllfb$+^ǪݜʝI ~ P]u S"FUManQ(ڜzl-L/=S#P؎aD1'ۥٰ?E!?o~p 'ٜ9a;߳# ?W/BN u|V??7$G@pI=X:0$a,ϋ{A 4E<}笉,*Xv*mfJ~GVrtJzJՒ^ '&-v69DkܰPh)G\*tkmy=x'K鷰 '?2JM=;YJA WO>7 x1V.*fߖ?^7Xkh+w2h̻p}olȵC^;^HymWew^/jQi%)QrE^$p[s]scN%%% @pzއ=4oh_HtbySZ}+ZeW툎/z:"m(Պϋ}|6F;d{y|ɗQGy-q8u Znmqz]`?v| h{FSwS$,(KSAPD)͸\ 7=ft=3|3^2x1/SS<<=jyO RXK]Q0X3LUv 5)v.7. jGFG*>$k# hE8|oZ[ 9Y:n<װȭ_? 8vpv7 &^_K zpQ HG_g(xs>BpO%v9[P8 Z4!!ح6yb:}hxe8NMMNosAd#Yȼi^Ac}&^&I2~)H'X meDqz5?O`'{5S*aМXcgI)Z.`\}?7mQFL7Ʈ$CbgTSz^vv/M`F4>&;&(l}=ΕsSn,z_t!w64\yy0ˠ?wC3M| QLb!.wX_@UWR=n~S&XTےq B p&7>xDu!& @ƆkR6 atG HU4j[C%_ XjIg  Æ6 g*O.Z:4aX}N"jAYNpi\4Np\R)X5@.6SlCF$oIk{;(OK3• -@&<T,G(#߸rVtb`3oꠚ~]~ B^ WkpsLrT% KMBp1{XǛӶ)-@gڜEpw`G|%QEd+TEcmh _ V`"yѶegdEKUC9TS[5CwXmgO1US+2_= $sMw֙@/Pi twcDQd)c)c~6(d" Ьڵe.5Hgd!7CZ yCNօ4YIb<tyYK ʲ M33W[~:'wH s Bq^*i^P+{EqP:U.(L:6)cF;ZOE(Sx܇ʹcfts|(#OiN󀏕[1bxcajw LIFd Yceyv ȜjufPK91<=+~7? sp=@]y;q \_qZaj);I*h}yߧw&WGާgUӒ~%2LY9l"OUJ/L.4(÷ ʺ*±FM> yWws !gAhVf'Z,iC!Ĵ_xg}*+$ag}n6V Cq>Wpf k [ǸAO_5CΨ^s-=*8 ]Y?.Op 58 &z,S:FsJǗ4BppdeiHP1n"I?QS& eDᡡ5T:Hi)B]c}J[,oۋ}4ѴΪ}ή,;.Q2'?-E lL23rk"-|}#fZ )U@G(OpczAz-/N0Cޗ)GFeB;1 n(n7nq`̤e Zč+o66yɬ%ixL7g&$dY:k^)SQ"#?*mic.#ߔb\p]=>uMBzc Z1 *9!L'0MJ4&D1,$˦rsB61Gy_ !Es2cՑ;N_=u#u>,גVe3wNbYr)U]lasƁY}rf#d&A 7'þsR\pR>ū. n 4(cԂo$G>Wqˤqp–-\+kfV' &DV&%[%Zuȅ;+hv*}[U(tU%65 >-# g䀧m7n/&-qFp4w4uPI7 3f5{!:[OX_ RŚhZ FPD`Ano_6%WFn,@ }s )6 ){i\VZ iGʜjz*4! ]WSrdb}QtĠȒJPgke6M M<N=#=gq(ߵ ?}8_fIZDg:- OfF>1%r~(K9.2/eؒq)L)a~8Ƚ_:i圀\98ӌ_QBN%Y,M˸ʹgsc1IwZإ U[s/oz|Lza$K2'>~,{G҈DDgq /xVx~J5i>Z0 Xңn=үY=Ja/K;H"6?!^I`3nׂ][F22ۖ1VG>1VA:~X d=޹Ctm]4 0rjw. ) %RYMpŠθ-n&ZT5-v7P׮xdDX&Fsɏ10)X+7Q(k?Q3hjMk~snRCj}2Ț<[uT d~O]ʻerܼO':gD6Q\,; 'r;D@zvlsd PKrH1;:!nuvola/64x64/apps/keybindings.pngUT fAAPQux WT$C$ (H(b$ e2,4Ʉh@AAEJTVDQE& ((Ȣ93;}߻w6@3@3r4X;f 6q)7?cjMa{B^HtP(;J*Im uxoOA*pSrcJIgLbq 3>mo{4 #~r&T ɢ.Үks7 #S=^{ v9|hA=fZIDq"9ʜ@+-@hLoH1|cFsƢ7v嘒0~\P_؉`|m+Wi$EpIRnB DӛbKeo/NcQնj =Y_7f} 32+"Ơ2mu8Njix˨IQ9V&).:c+gAԶSYxz?$n)C |G/]I;w:{/{&E= Es:MU494߽qϞ oض6Z839Ĕ+\9:ȨeI ʄj,_C %4#Hv1NnI4!9>?JfW$؁l]TPie;.rai:cuFƚ"BtJ;W5ԳV$~ѣ @+&aw@(L9ALԈqpꌜ9G@BnbN8IM̓J}WƊ|Hg3s/$_MnqQ)6n| G{n Sv>mE d2id?Q;va񯺵9 )t=R7s/S(/ȣro׫P:)?S.eX 0Lʇ%)"pT۷.sk@dшVh_4gӢ/_@Tt!/[Fָj15⸝sKTg|xG1+?Z89Z0ԤT~Ll0\GrU.V?{Ay%T;tb{8<;𥗑'XUH&n®10r8 |^Xs2y6?'$*1 7̈́}Eڽߪ8j(~2wͣuR1amΌ!xnqͼL5TLV^jmc,zKZݸۘD6X#DGW̏ P)ïyV"` y]1ɎG NVK-ʻ5XMMFgi[DcСWS^1}C]D>kv6Bg]7aPzLuS:3qUI> 岵"%HI׸rl344xf!i:v=cYPVjV)Tu)\}FqUN=4x1@ 8`e)QzxΈ#Nj a.o_+Lt?uȧ쐬 O=̘7/jcj 3'Eoc;Fz-"\]O"T]䓻z{UIMy2QªQʥDXG[2n91iA룽1 \)2qZ5At+'oqӅ-wZԲRҋs~F'i,Ὢ¯/G~a'tYAq[pg2IJ/uԧ3&aWZF)/xۡ9""5Uiֽ1tY!'<1i^1ᯣB0f<\5#.4Ϝ#*3|} 4eL/O,w=㦝Xv-:fyߎdnVAf[ܴ蠫3388)ݞ`P@l#xsW9.hr$5%y"yT\ZHc!=spNيޝ9GL#6{|GH됈Fz;V45/`BBv.7kOF$YFgW.D8 ٥vC <&g,_Xr0ԣ#>Ti0oωᐾ뫏YLnXI;PDP=m譞* qJ{0&P=/h/Rbhg6l=:hҴQkBZ`xMhpQYɦ(:l݅#Vs5*$V4aKF(;&`MAU^xv>c2sa!U`ۆIKsCn"hx T"ԲfspuO4WמZ(voR nyx@ݎ)s-"*mZZx;YY;nqçKR~kS`;n$?2G+"v>Q3%D۪: DQYTuɁ|[^3R%]X=DsC}_0u5 #'tQ6)ߕud6F;y&yqxi#K-@!h$czBt= V,c9;ajDc96G{cXtIs1+"bobk]Ѩmuuv] {n]QVB4j'(/X:R- ֎!J!}S\JGw F JtPO3c #)cF7Ԗ?ŋpU]~A,T ا*"!uժӼOkyHՙ+Nx{4Z(en|kuc<˜Cja~JI9{ƃX*7o0XTgB=bJGx0-/4=PQE z5:[xK[5o,hT }="Ϻ/>B6қ:I}3U)$P\vzaT>Z>>$ ;G) HqğsYy+[{PO|rtmu)LlY>/K=ȹH,r"ӂ23/F=/F"џRBڥx&y_'INؑH [BnI?=%ͬiV"=C|EDT֘NM}GgPG8LҔpw][w5LII&oT͹V3:Qs;2D"Th {rip{mUQO[W򨞜5 A[X*MKLθo$ʕ'(tl3( S(8Tj5\8Eo.<8Q=lz3MjK |+=kԶWǒ||v;1iϧ@!]U` tUZmІ0/\F]8Ĝz@I46LAe{fy5 ?EWז~˻8wdC;oʸ;Di'QQzLoҞ=W68 79# hfϟO|}#NקTy~EJ gvD24iu:*G- X\a===w@ ~^UUu%J+/. Ri,520MPi}vˣR^=*: ݅g+Ww1t>!taG*Wtݾ&&.Z_K+Mc$ 1[!glq(JD5Ŏ\U_S_pMV^~8<>Vce|eD|)8;.8OLLk\znJYI}4?S(j|Vַ2 YgόU^pyiz}Řd ?W~oCzΖRkuM^`Sz7-D9iaޫӛ_iGoz8~I}:ֺs<:ך}"ωiؓ07 q~t~AaǜJ W3P([CCYO[{[CBkn[`mLt‑/QlWwHɇF$‘mVJQFKV9;wyn~ZcccTnNB&Șa?dNYjj+A6p{Zz5V++ ePov7Hg%N&T~4ï_CXd"[UWhbWJ~%#ΐ$>>^0<>Ϙ`7 P;!8I?):/Zrȫߏ>~W}?NJy_[fxpA_t͌vQQ\Bt1B5C׷{AajN/Sm ҥFWto7joH*+3hYZZk 2Uq{O:`e~caNp9-K{:; >;:lLbgfg1aw(#We] ,sTG8+P 85蓲:Ay6fc?j_w(r͎|)8ozNj( (,nGu`S8dIPY'w``LLrA ZJ0F.]hϋk 3IR||^9d)u=XkGj<D<5q0;+ZlfǨÛ3~wFJi];%sh'Y1F9P Ar1}I͔/q̻O9\Q9ghHptHhqGY?PŒwA4^ÓiYsPmm I(TM 2MP9p HEqQSBP,G4ހg4dJ]GX]7>iHFPjCP'9K;*܏CwF23 *fj᳴5xDC t^(.|4^tkqƻʾ>P(txj)9 t^7oɥtǫB*lDRqxߓoaSp7:p~ 8elp^-%@𝛻h(aqFs{鼕 TR \D YbP SD׃j<#%WtӔc;ЯwjWLOULYm5JI6 (^ -H6P b@}b?=k蜗H@ An0 Md01HC.CLz6vR820tduyY9߼@Ad (Xx7mcPxB{uQ62(Nui+LhrB*{%(cDɁp3Kgh+>IB{&zXIB fnZJp^4Uoo@$4D@t޻9+^=4'keH+mmko>gZT%\Vcɛ;.:Cx蠧AUG=+>^]~pt̗Z>ߡr y-yAEe8om.{l՗JΟ? C]oRvZM&OlF6 |?D\4o<޽=:ml׶ٲ -. eS[לZy"֓b޹ uz-#,GDu>W'cS8WOK%Sm 4;v-Z J#JAn@dZXK@==qmұa:łZz~cZ때$dĥuyG=Yon.T/H`h6l}?@&ʓF53`F*e ԓhۧ?5'}]Ȇ1֢.@uiYʮ.טc`cH.)_q ~klDMcuBw{^*<;ZM+|T4Cښg$|=r|K"*;i*z P99_q7u4gݺ-H?Dm$/1ѕUQП?*٭"+ֈQ/=2 ;YzP yMɿh٩ǟ@iw1p4 uzW&xbc e ynㅁLgN,3ͻ%S]W d,+6 }~{1Fm0cv?oO!DЬ%W)[fĄ"}C x!twL~RF!mYc7?fkmnn` 8. ĶCc(<0>vCa&x|LV}dkBXIUMdoˋ ?m?:5*EkTHOCg/|Η8>KUv8#l NR6|cAԝqNHOEfG1Xu%74k~PKrH1Pok%nuvola/64x64/apps/keyboard_layout.pngUT fACPQux W 8T[3{.q=)fFPt̸ͅ:$F3uꤋ? 2:ȸϳzgo}Noy࠭570M W?#REq)1D'o8fBhP===!ˢma%vq SHq$OYB̃#hJsُh١Ba!-2+4􍌄6$'CYsVB>wEfQȷ:'h\t;X4ڐkt/{tb|uH%׮qAA0F5GA' h{/{p![.NJa$>u-uMS^ZP`3mt xw |3Cl~S^r#">+Ov~Nတ:?ⷬ,șٓ1J509 P&!ۼ '|WV%z% )GK(̦ :y!!-gvӟD2e!`G~m5Ġ;3ٛo6 {Xa=[3'_UK Jq1̄Ou[]c0\{ I}_UQUg~|%HlQuPip.`FchToɪ^ЄBe'2)K߾5]d"t}~$tɧH\[*_3q?`>X#P =1FH 'VVK≖qN3 Ww&s_HQ,3͜']w&ͭ@\f\ DxI#4r*+0b l>c&5X\E CmRC92lSc+#LfE '5Q%UZTb-ZWLWLi=m.쓺^qhR Ln8E_ٶ;f C+= 43>n-i}Yy"MbðAEZ#@ԹWΣioO#jv?V*3 IMݔ+QM}LC!dyqҺ2IZ4_djmB )ks,fc@'%ۗ[bx6h@)ܓCU#sVpE]btq?ްK'@5~hI\?#jMeuם (>%m*'q I'} ,i_ xs \p"SZa y$5g:~ Af?x008zf.,swy}/XSjD-m%UAwlv]Rﱹ+{nJtY\{cKzhYؓE!c=U Vs֨K[iB\ɳpVb@߷rtΚY%#:6}RHԟ:~մ{O3,&S*ZQg--n:s$@lvQ+E29BYr/[zjxi8ݙn׿-WnHLQN.Yжk Nvtjt,'n0!5H[[lk;&> 9:%nVI5*If ^ dvYFфD|ӻD{5xFtD8[[[81|'n!4rU?X37^qRBW/c-p6Lrs ]@fEckYzXB.A k|_6iCM1U((j,t>I ~{@#mn71.}lY߲-(D0v#JtSy x u}闈=s&fr|R|q¢+=RԽ;鍂h^xNRDF&AEpӖg;g]h+.(Q 7BX;Y]gM*N9\}[iSnrYZdmN+mP*q"^Ƒ8bGdtF99!9C. Yjy7Wu@gJx8"j3VГHHC_K.D}-T- vNc-e?0-0 բjSE(0ZAsRѿdS '[^s _NsPP!:ϕ{Q-Adљ61FxԤh#:я?nX>&܂4&MG|Z7)eD>pa&%+ =|%(Zg! ". 夾@|n.h%/?HNdیs@>,Olܙ(5W(}u] )"_&!=/rҜ/ɫL3= c3߷yx_WA"RYHFv*]~k=UjGc#KЫӕ6晗V{)1'%+SZx^y )!0p@^RZU;~bL&ޡ+Y){NӨƵ^Iߢgn_;`oӆ bң~&lRZz_6A햰u5pq|{kW}]UG2IڂF9ں=w)gxTjM/姟3xpgh'.0ɼز\sGj@ʅA1k v =7sJ+ae9r^ rK? 蟐uPKrH1+6Nnuvola/64x64/apps/kfig.pngUT fA_cb,4ꉰ IlZmʊ,e֬CIIw\2 B9C\SꄴtMb"eu0H '7>r3]i`+2:kZn~ AH k$UC۴9"dl4s%W\ q.O""ٟ#4@J H4CKcs;F̸ |㻓t,&-QRp38⼟Z6ZuZIEC:=5mH8{gzJ5omSu.񕱮p%K:b%e%L> y?T<e2s" gE7NV,zyk.vV&}[bq1Ku,5 Sӈ;8sQJsWH#?90cVOECJ^˗|=rKo0G議;' :NaVh" [צGYHnjaʵS}3RYDJ"6p6Re@qrQ}WXi}M[$^yԗ$e_y5Zn,r@a^y@N'RC FҞݽ]>}tdś%/l ' yŮCM uk*AŨܼR 縸o[Ӛ ڻ87~,5QQ#:(8щ~{zVͳ2كA^jmtO8q}L_y=vrGW<[Aq]]Jz,ydEkVk26/1Gy@`^={E|];U\!`鎲|gt5]QWDzo!:KGQ2Y'0ܺMSߥ:Q}MUfEcf.p. \cɵ\n3NrT֠wH*LW ljlu/8W=Z(oU"Fno5zڥ?u%nG7k䪁j5[FE׬z]do#9cآY\Bkw}G(rnjų`S)+1eQOVSs`HQ9;FԖJ[\H0lExn) XA=`Sv(ޖZoD#P?yoO+Ts7W61L\co"`5j0ka0=Pڑ>XBf+WB3|k8n̯dѰ #'SZ#*&BORR] t?wkL Q?׌``\3gp0ۮAjb֜1J вh썈P|`lsSF]45 oh/x' =$lCShmU2'%2ae OycliŊi42BΉ駯wKch IKEwt"Ubn;b  d^CLA$YG45q>h6!ٱ̯Ckp (}!W!#u+?XZWǿKcɕd3[y<1M1=Z1Le[W/:^-=4u·?{م?|ݦIp.eGY0|[Ųg{ xeo5z e Ҿk34ȷླྀ6 J:W̺)d/"\qszzC?欁ŷ) cF1D'S6nRlJObc&mwm"]/񜧍.I&s1 3G?v3v=gԁ>lKh]{lY?Ev97UbTx8*J.p_620̴Jux}@E{KDj4` T_˨/"r8P-=SPqId/N5E-_[e]xc!O_9+ͻ7HO>U\u|0xQWJ.CGCI˿`O2 % "ZoXaxAGx&r؄REi:(AO X%Mk#c!.u89 ČrʹP.1FMԭ[۸5Ǎ)W!ֈhg}D;(ݍxe&g"A郧8}'V@|K:=☍[\N`kV4SkﵲNGF qT,ba}ӿQR*4T_ Nvg .ʋ$&'Yl_Eg`TŗpsT=٭`OێVzE"w6$:Sd#);=ɏԓac Y|.u~{0h>`Mn@.ܺل}f̐e|Xf% :iNH~:cߏ}[vϓۻ<{J.ꌴ$yM8ib ZݻKֶ?,i'j++]W/jNF;}¯48VT?H'3Y_-$h bM||V| :{/hAN0TV8uF_CGZ y nw8a 䮆YܢI[;ǟ9 ;!`J^Aۇߛ?QSm/&'Hz$.*{=o+#U~+ ]% ,rk|$nZ+[dr VfrO؝lvr C{Fpؓ+Sz1JV~]NR$iB$l a])'`%3nLn'^|I2JYFC35jHy&Eੂ7k%\V۹zC,j̘_h~b٢ eHЀAuDJyP%΃^h=8+{ ZaonL^كSȖG4ƜyDJ/7Bj<.֘\_*86HԆ?ĝk_yp8 `G{(F<-?l%:wKs-%H7+:fՖ8ӕπC"/`䨳<+tF`l|/VeS}§&pOQjJ܂.A^fF?Jayg h'wf')0tƂpR HO|4p L9]\ݬu"-mn6VS/Au.I˒Z9s.mB$Ip=&Dx@>5)HfxB[ &zy&̩½v;Vhަ%knhKƨee63Nl~` w0E7(gPw(@FliDwH]|*-czDڿ#YqB %@WxG8L,aR52l)fhg! P 32t6+k2Խw8ٕ- {.͐(F?0`bu դhNXLVȯ_jDT$P+zEu7n:z"NXժ*ְ0lEV:p~޷͡YҒ5[{n~b9i6n{3PK(qH1tnuvola/64x64/apps/kfind.pngUT lfA=PQux -yyOȓIp RQ Y f0f;9sz_d<-V@mjdIճc_U. M?T' 9p<`ES#B⎽ vCs]J%]F0NoAuMP}PxwZi+^W335L-Y $yÿ4kf& /zL:2+:0[os9-!?++ڵkiȹs琫Wu@5IJae#zzN:v=31pw0N'2i KPۖڸmnKRSnhCI*!=[]*۾Oz,fkr[??/w? `DbgefSLR=sA'T6G޵.IK+^RaCV e{zCzٲI=a Qh.zc_5+La=`XjvvtlX󭿿b:T-H& g>C kgג)"E,; ZWsTO\\"0K-/-!#3l XFDU'hD%, *c] 3yLX6e+) _mCTE:ƶЈdl=FSr'ٹCwƀ}RSSC^|i[|x}څƈp*5 ^NsU=kk_ZFkD)_HLfF<_hЈMp.aXZ_]VHXT(^rpKmkaӨ߂$OCA{K[HQ]x b^0?:(,+X!9;} +]@w$uvjجό};ƹ C komN 1) <Qn$< zx/oCc͊EP|ۺ \s$d| !=y1t׵[+yyQ-uC 9 $Qe l '-ws2NYMZnF )G11z=1k[[[/ gt[»‹g;6LֈVOEoHjl۱BRΐ&~0} `*XA>YT2fF+-)b􍒂/g8uFkǔCoVci*r{voCPjHq[c=42.Kޤ [?gaPTD˖ 5ۣ+Һ^fiZ76@k ` }od-IŷC~&!R@uJYEqMFUٶ:%TW#"ꄓ /ge36uj֫t :a-h`TَX fw$]@!S8œZiO?Yټ+\>=a:ߤVe,y\5,*"4ey/ІvRd։sÎ \{.oU/Q˴Mx>筠IǭSMEC XJX ] Qyzz["%9wA5C^.rH/`&/YHg XqW,$.SNzVWR<:N"g}«15nN>FL2o3hȉ ^X]]-[j%a%vZI;I}%E2I)MQjޝ̏OIoRMM'Ѯ[(!2g-PO >7/G7(FolvlE OK)=`1U)XL/k5&&\ mQP]h<QNl"'=^=AH)6xk?խ Ffǎk^Z _BX}s$f)jU{#k"VcOB6kJkme!/& B&v|賓?/>xO(9WMXGwtt ٹsHֹ/_rn]qϟkFO|Ivp{M8- ۑU}8ʕUWm8C>8_VVP#a VJg l)E:6P5 )MkSךzSٰgtjhbiܞ'}%E;YOjDہ쮵XfY P%S#1c쒃,kAZtX :G,}MtY)ƴɳJ%R2SuԄ@q[wmʑU<LZ~~~fh:VӹBِԜX7Z%cRmW30" xryZoilll;t Uo;aZ:L32W:mI O;]dz־HiggT<̌uW QN5HEG8g]ނ T I+U&]~8ʨ>A$`͂pXfc>DRְ߾ܽVwt׫0)nb vQlNPUd?1Õ_3qO͙|f.dP~1I1B` D㠯tؼMGLLDX3+5| lhC~;suFrbf!x,hM &][7XoƩ^죳rEnd'#hOHn/==9l'pW; $jx"5{bJ̯_Ɇ gg=;*>!_;?(`|cL76̟1Wv}m،y@];Ùt`C؁ޱq? qqq^0owHڋh- 30ڌ`5MJY[dq___Zf*y>A#v \gיּpAY釾 鹩+2z, Y-#> 1*h/4%Avl[HBF'6995N>.|&D)|3Gbluxh<ɹUāRrVtf.坯ö[0]ŭdpWڇ)_߬¬ZZNXLyeb8ؤQi aObwqAXNqye067{c6yTOߎ"yteyOyOh`.psk^NгF ٓ/8]Q Ru`Cɇ+VK5UJtׯA.tzV}C,OCL:})?i`gO^ǗXH`:DK߲{VFk "4ghPQV^.0 "4ɍT U.& `G( R]/Oud f@!+9Ggh`Wm-1nCeIJe1ǭG#wZAqh~$jSePӃPo\IOj&KF  \AP’k^$ IU9ֹwի:+q]ˍ\;gr"c,Xsl q (NYzb輸gڄH/,Mﴠݜ1ȶF )+h;~Zbj/2+oɕ?LAd}^IM#CT5_z* R-V~ssճY7)7\2P])r4Ƞ#Wb~^g*k69Ux Gx桃9I>RgJZ*hnR*Ċ*|!߻{S.?&ԒV.7ɥ@̈́](+ASfD{$@᪍d_Z=rP`1E 8|Yny p$QY8P&"p{ڏᑾ9!ԕ@lLT.lHyf3g/ʖI>*{ؓp Y$GE jkz:+~rbE<6R-P})$9tVh7(F2/كi<Ksݟ.ԅ~"ȼ)Ab H"oMQ=Ψc =#C"KѶfyx&G9.7B@~1[OOr9ӄF q$ 3h~i1ޜޒVq $fb}@ufK[)c쉆=M*A t7 DS$py /z y,Rp;9e[]'n$F4ɍ YI&lLJb"q觇Šӏevv٢O`ŸUjXn]r\Tz#ڣݒgp }L"%^YEA#P+Zu8iq6%Hq37.iu&+Á$T `c06e4 Ma4"'Z|m\W`r)I?^9M`aߓǫ<ƓoxiېZh6`S 8qO#f!A;0q{8x Q?%M;_"ή8c?F~mH^H/C=xh[ |wxc7vG#@dBGD:ļ&gȭ!\>. \vGI,#_/B+ F1@`"6?u{Y<'? L3ɞ u).H* Xfj=y7 yʤqg^ZVUO0 fs?BU 93BD0!+s*bAicӤ'Q<*u$H@/2ci$# 'S }d+|VU.9k-_v8uC˻N;p+$];\ҏ6f7o%̑''ٰf‚ρFCVpںq_FDҼ':~Rź ΄q3 #ρ>3/q!0ux7 Bd(ܼXʧ|f_ E4K2sJ>%=v"e6a nIڣذ.|ݭ߉8ߋG̢Dƶ yԛ:9Vw̻b.#n`QR7T L+؋Uǁ̦ µYjMPSul- GԹgmw'h~by_W⟝`-ϩ}ј'"㇚f\FK袠w~zGo3p"s;]*.Vބw&y%dp^ѐ OO{` :].B-+.̼U`ѮÝ14-fHF& \Ѹ2YJC].Ok^?Tv$I[97|9E7Ô=~XC sJմ7o%&ҴM^USdڡ(7{ckn`ܑ:'KgKshaEUjKK\ yZlj@m#cBe X[ OC֩ZSs$-) fV)KIr6xzݰ;2@"Z#>y#8϶A0p7=pYF.=q'7*䗀C'VuOuQ.5Gfttݥ$Qx8%ʌLvlCw:cbȁ_wj"0GP_(´ J)PI&A.ΨWʯ\ٗ $^F`Z+A l; I&aI J7a (RzުݕMrA 2dpx)WyV/ɂ-_ t}w܁Z//.gQ7E͈id=RtQt U <~"&IZؑb !*, )N52$.Qqح5BkՐq ;+ftBor4APۈ@Zo;bo+ē xbB$A7a/QDwǽ\qC`P? .q^.0\2\l=?#NNQ] BrgIE?†[MM/iSFJ*kv_<Ac~Vl?(C!uo}M> },台[z6*t&8`X=5߉pGK\M4Q'K"$n4'e^קroc/7Y64^P$wl+R&S5KARaq Z0 1)KMvAf~>BLì$?(8}`1"RxBi.k渻 ĆׂvWGr6V_8-姲ZXJUHD@ϔ,pqULTCBsz2JoFE+n8%# VaSikX? ,pLR,o'k=vcB:. CS %H ܧ(YLqodݾ9}w=uua䋃M" dHa娏U\Eθq]W"C`nl*⦛)j3r_C?gt\ݚ3>JK):JmI7Э}U%! 3¦]RqW{OjqJvL̄]x6j@E)G?;h"bfج1@(|A9u-` WڗS # 3IsëAqJV98~xfH3q?z[[76DH82?US6n~9gPOE{فXWq}PRCԳ?ڮӘi8-z>szKkWcVK(9gЫXh+k pNޔ3}c\@"B'%};""̝QM9t›h|)S"KAreoUAa#b1RM `bGsVʂf ڝW j 3{tb` 0z 'IoP=Am~cA8PMPv9@@[5쇓dvC@̸ ..0Cc3:)rĄ<Ə2^VR1ݴ^,(GVR=OUh9\_`pk uo" ]Eizfc$ϟy(V[0/dl65ъugg{o-erks%Wn䝺|VB:nkJ lNc>ɒ|%$"#k2"u-A|%ڀ5%6.{sE7_’Ꜿ g ,YIO)KF!m_q>xɨIF:T"RW/krzkOWR6X0L?]qQ]~ȻTR9g n{XmSt?lU#cO5'/\8sX4  /.n|eO$]R,aigdxԣoDBûYB?㍨c?kRL֤vA*_teP>a;!hy"` S\nhypВ]n̥^}ʗN7Uָ}.AԀ>7]Vxˇc)8cɬY vM\gyx&4sJ^"BbLѴN Тiǚ$,5rw$T=5=,\Z3Zf~vM-SRaG{g%35r;pz51yOg*e`φf xyiy kC\[ɆkR$'rH,۟~ʗ>Dn|]9n/蛼Ŵ6Ce[rЍ[=DIF*%'N'dX\q [0@s3!]6s?ӾQ5pAp8Vyb /Ma;4Kb:((Ƥ1ֱۋ-EeKoS al|P9DEm Ei͚K㈐yR8￷DA 3Ph +71R_Y|{]J_H2!Ew7%qgp=hT*@RDqSNSRO] gڱ?hs0AaW"y{oJud5"xv (0j6U#H԰+Q7\9FJN8g=*pkg6qa6QI(\?ƒ]J'=wvu/R̸y4Rtut򾆩%&e)"QsW߼dUyQQIj7'ؤ*''m+ce@U+1Ng{7}S[Y[X]_?MvTǔLU(=Yțnё3,NZHS{D?oXYI,b *fW|S Jw#}힄ziZ:tB q,rԉO\O<&oVbKaX&Ǖc{'sW.jtesy].g{3'k(TǙ}w:r^yuDYs%05tDIDiQ%afl XVɢPUPxE^}9VHqi$~lZ {7`¾aM}z`@SK\0$vkoqf_:T.%u:VV% !sZܖ+{sO.-0quHNEi.WUFF-Pas8ɟ/^ 4Z[?G}V}KJ΃3&Kȣ 82UR{$Ʋ2#.Ȥ-*3h4IQxmc'~9'G_T^s^ylw|ʊ&dkOty0?Bv;?""8?D~:gE=|%w絕jەI7V̂=ۮ9:QCCOcf[j |pk*XSNVJ Xc(aGQܑIJ\m# ŁSN^ʻThΑ*}k.M _mPX&P=%-+3v͒=7P KS3bÈI䏿߅ AS w՜=q>RVGs)cMդKC6Y%|ra;ԞdW'o~v87!w-4(!>:ugs}7mxJPKe N16:nuvola/64x64/apps/kfm_home.pngUT ιmA>PQux UgTB %P"%w(MABG@$BQDQlP) ]DQ T\~{;vf7p܆[;[K_G"ƚdd=z9sL{8?7kw'(9?!]HYf2l[ 4 gd@| MU$ \$ ڀKнıe})v6v_a.eغHoP|KԸi8W@T⫆5j8nc&x tTzA[u xX JGN~>"^WBY 4Ve2 F'f]2(+a>;Sbtnl?UBw u^RQY /Ժښ)Mg'B Gk)uj!' a׮7#Xж9#[ &e|qo͉$Om.v)}A(v\zp97ͼ{r#Z[՚wݯFs=ju`p!IgS_/R(򊝸. wfӫzjX)^!^nnK :YRRBϟ?>s fۻ?dL䉖sWPmuN8 囶Oo^}T"<4tfqyC &Nvw-h=|$0|㱡]1:>VC?5_~zm;`obgZCSI{ ==)H,W3֊-뛜pv9ۧ=ԙh.|{jIV|JTd%ҽp-,Lu~q$߯X^暅0t]^3:fG]UBnwͶQP@$5`Qƕ fע?k##e=ab|Aܚ ^dۿ# }/|GrnҟrAӌJ*U :폥2p1֏8 Kp~ZDl<%[/GC0*2R <#$@Bg.S` յ1 4Ezerk}Nr rouδ{!= K mC6kADl^F@l*".|U>nMhV&_ KeL?wK1}02]2NDnw!3xutDi#vkXNqzc[S+ SS+ASEImqFTV9OrR1+3՘TL1='`V0?d jCYnFSҢ--kIZ«A[ eh8Jq/n)R|/U~K{۠DV¦[-1VP*242*)J+尩L= ,B C]^AܴVZ/~2&|~ZW $}o5uW5TbE?,W.VZv,L0Iqiq9ʼnulZogfۉl>$h\֛yPWn~z''^{qCe5s3 #k\ 8leiqk۷Lɨ ӃeM ќ Êzw*psrA{'ikDw5f ywRVɿ>ˢՓ5'!KחY2ʉېjRxvi2+pcp{pOty/>tL~rjynL"~S4u Dۏn#/M7M vX7R}8]7%)/h▐XcK~Y㥀[M]u# p~}qߴ:8M+ew͹*$%@,:n@˻f.Tc#|/ϟM{z+Ebe׬dXnC3-<k E%YyKw2MFxg\J{⊓chCvml7jWC~ kkS˜^~2dvzyLD"Ӟ=Dg{/ˌǏ[ϸe.-o7j_'FݼUr}=cghZF[NWj=~ U¶5y#$ea`mW\ȭXef8okAQ/E˙C|WTOky/E$VdejkGt;p)c#5({r#ȸs(hSix9n&TdLX>[}\l~XZ[WTH~j~9OG(g GRi4z~/yzLbAȥPx|*n Q HoL08\kC1Cj0mh #4Du渤1'#h _o+)+xj7/"uh(ѧigVqGlS΁30Ngy4AZ5P%`A*W!N.ǘ#LK)eDSw&b a)S%XMj_:VH9v)KYf/,35l-@p4 ޏ9`Bij}܀BGfkspl\RkujʈоyoܒŧmJr=0EppZ*cld~.S w4eS1C>`-&,J.b~+40w70+Nz׵b6Bh-5"g` }rfQ|:mׂ"OoP盅@&RL $e &k [w:;ψ~;CJkm O 0`O ÄK ITS l&\wNw&9y@GA}q sk|8:=S wol&NgeHAPWd߷xtj'qX{_NƼ#(IAjנ8h(Cyu#U!#Jl?X2*tq0} }b[%g;q뉍+9uWk-pV~+6 souPR@'6q1lc [!2g07Nr܌o?dTGJX^f|@ ũ?̂-l#gzyG:B 8(Qu՜_y 0JN4: -.hr俠 oNt9B $o}>7ae/Iwȏ?tk|2uӣ3|Xa,=_ǞEGV-T6,e@NlL*: P>ݠ04z_=wٸfNWoA%NoER!ETRτ`<9g^c$0"; {\cp;l`cԓ9ٙ Ds+ׄQ г]0 LjNgE'+ ʄ'wi%V⨝$q-qJa$y ~QyyC-B/Db,zJ@Z'de/_~s͘[w؂$lF,~\)i81yQ[Ư=bYc6T?8-Ab0,P0<`Hc8or`YGЕ @ yKy`V囝 |!ML ޳57G2f?oj_]ڑ՗QImiyK"hzIe21c_dOZ{i]LjѭOXԼ |Kw&=Uz-{¾YvxaG Z\L6zխz"#U6 XhGϜMǧsu{ձ\ g9 '[[2MI:нf̑E J>D:DW9&hKuwi"0&m |7F-aY: i m͸`ѭDpM TokRZ4>qgEoƠ3ƱOf𧦦BF=3ޔcDr-,5y^_|1# I]aLW*%Od|6WCK0cz4%,q±Gt÷ Y=E F6a0/O<՛F:&ٵ} +^2&lVГ)[ Enѩ\9>Xr+!x蹻m23?ܵa5uuowA0ΓZU7 wc62끤sMjɔx!#_!j1#-g5Dіh)Lk3 8.khYt!օ̩<,C +T2N:`wحU)ƺxFn(`G**s}xi]]i4˞|QӮٳo_RVqx[#%[ݑ~!;9<d(GA:nYgNL?PK H1!0nuvola/64x64/apps/kget.pngUT eA;PQux -W 8kf{j 13(bBafUrJY6fp**[БN(ȖPHYRd637y}}^~쭣eWϬb6 @I#.0v[TXl\PFR}sO4@d@Zz RАRz%9]1D<ƙ.EM.D6$OpR":u)y 6ͿU; E L\'AW8x1z5AD@'OltQJx~p/. b< )^ct|_ľ8> Efm ,f(kA0]˽DSΥ*A{ R" I%ʨ/\`+ ͤ+Rv&?Ku vFV„ᔇXjs_Z&]a 4oXwa('q>HA׎SZ YVK3Jѩa9]8R3QY5%MT(F3(OE_S7ES8EvۘGujv}p!lz.UlkAx4%8q8S-"@Ma3.M/ຠSSLIC(\5+ Jabwh$?XsegW~ӤX S":'j*W8?7 j5>Ɓ&&95X$jbڌS`¹==D{+;XHc:b ҬfC>ULj= #{b.]݌Z]Mj9jhyA_λR h9*wQQi?aֹ[:/zzDnU?0% `>"ôCR<] U29HMeY~ 5ᜣ sù:C?w=(_=pDZ@yy+g6Q>*hPXAuO6=aGЯ0NHNnpm Y d](+5-Z?W۶$<ʫ z4BHXM ,|d?mrm^8PW# *"-H>T|j LI$VWgL%2 B:u9'fmF.h Zy:vH2ݚ|Ņ|b֊$Ev% IT~`[ɒj]²2]sZ}<,KER%**?*H-9 ' G 4 pN~~ŬeR^ߛ9<=t5ږͮҠG-ks, #tw6 ]hI( c  @X;Q%دbڟ%9ϐ MuKV˘tt Ja{2Mj+QNL+ 0(3SȗF\dI4=[,_<7 vA;CSx]&TKB(i_:4P2J?Z &ڃOHvhߋ)쟹*Gڵ|y֧dU%Am?Dʿ~sCS;Y5n0ÃnG)dv뭷r.sCu׉*-:YmdAJ9LW1+0>'c΋^ Go ί62812l`-jUCLܮ-4X}TNOc\8|Jm5ױ%)fg 5=1GQ{{Kh$T{έɮ8 8Q# ZUAa}q֧U=92izgeW $0\t_6Wp Ai٨i.>NGa&dkj:ev ī|X, mHr+վz2Iq,@.{_ 2q qCLg oP}opc.E+= [0/~!*C6iNvrcmZn};/2NCW @d6REngMea.k+5%Cgu\a7oeK2$+7?CYpLx|ζњYn 2u՛ԙTP*lI'TJt!`r4 nꝁm"iLw'Pr]-EjHZD U1{!GpŔ@Rc(~ ?"gI$ՙs'URאPT~N3^nzuT`-B .YTh 3 X)' = 3)芄xrj^ -Nzyw[3&ꌴs T$k 7[oL|Sݑ#b+.)A%:1&<ŪQ4^aIAV8 :P$4H(eBeF;Sn땜Vb qF<% 8R³:1ݔ*֧'c"| NMכ! u pe;$a£W4'Ys8ʬ!yodIȬUƃ.mX21vrSp*:r/) yURm"f6\NDSkFnR*dn*K:J^z cIWBXG5o렮_T476lX;. d<\ c46h.ѹ,|7 xiK;vJ‘RE77'a7.e˭et}XëfZ%?@zo-u,_gܽHwqY~ޝKs&HMٳ~l/Jo͟^T'ݙszzy#<ӧc&}Ђy?T d@@]uU݋/sѲ/Q{G ܄i}HfͨrrE?<$lHwaֲV39m== =>Fן&<#1'U65Ij 3}5 SlY{%w@H |a5Bn+Sa J.&[o n4Ecxa|Ip]a(|ZSڥ(5_8pD؞A]GNM2wD!^)JO E[䏚uH`a/FB0-*+ YP.~S<7^.eN(,h'~?R7nXj8ŴjIMe jۼ==Km6[pc[N8z2`fz8D[+y28 w7 `) :pYGFSL]0oBt L =2< bӽNV,}N);ieC94;۫ʊsU|YdLvz|CeÉy¢mkkYYY9O${(CH$bccUHZ2\g!Df'POW7\,O\KÀkK=ƭ^jhqz%h+:!]SG0Nn 󞮎΃Aֱf/p%^&u#̺feLÅa8aI:g jv;.`\5'aYM%z| õ+Gwƫxt(n>7􋣌'M^=yׅ&<۶ti/liy}V{F: 8WzVf#xO(c<*\K;xjGF@uTƦ;d3S e)o rFb_Z$v a-gOÂ\Re!HTTDM8-ҶaTGk!_Ϊ:.535[X%21il6Liɵ+<w~Y`IV/SN M%'6/Lfkyc%~[޻Wطz}{{/:/rEvw hCt(V%slPq+~ FEc4j@t~>K<˩ .\U2RI1p=Tƙoij$k ;3'Hq8:"w>{މr-1gi:4 Fҙyx|%IYTX^BLLL~|+<I4>c8@M#RjD12;{OjIn>* n8JjEC~5H{2gA zM%=^?3(\2޸qc̄; mlHY%2F][@?HGE@z*Ddj+;6yc.ʤPXrcpv2r}ze!_ zw%E%[f:-X f0a3;Mpb;M쥋 ٘"wOK7 {yū{ȭb/?`\$`)HFhewݖ0*/>!dc^z)`J^n*C',~6+-+n.)oS[Q>}p(ZNB6m{Yʌxٷ _7xyѴM±E pxEPyL@&T{Qa`kZ/D%Ȍ%ݘ%zIpb4~})>VBIh_$=M;A.f+gg&GYq1 vA$@ -{XN #5ݾyNZA:UF"4N:6R E BhFUZ@\ {v ׽6I$LUPWE)w_A5n$y ?#KJiRŊib@֠^caWAV.=!qf>xdTׄ'Đi e`` RS;^1Uߦ-RjvTlv&Uܑ6ݾ/D!P8Jc@?umvEPɑњD깅ًҦJՄ2%M{(7>lv9bYi)ԃsˠtZp@ߗB>>tJ0q M[aEfe{Or9\U;b+?2s5^#Cb8qI>W`ĖU&߽հ '%a8!,EJoE+?LԞ/GYl]ј-'Gq{cMUZ*Ks{'ѣ2r[7u~pf jnX*oq+)MFo [\Vz4H+;Ao>6mV6Y~EXBy2!_rkď˓-ksNI}яkQVeD2|\Y^D-٬]QF n%5L={NdLY;V#A*662.`L騨^urtpwzr8',e>XVG?{fлU:|>yԸwQ(M)*p^'?Vb;YU.@y@6땇AH tQ/ !Ǧbdv8UY'Qǜ!#f<tSP`5kKLſІc=%;ɐp_3-RP=$MlnE;ej^x'=$G#i2D. _!#b:w(׶x|W*$($l+"C!k9bESq-O-61G BY+ {qM7F޳;l~o꒍}4 V[|vBbm ^~@­ 4F[S0XN5X C.&4iw`j|YP>۶z>`PK%qH1O]Xr` !nuvola/64x64/apps/kgpg.pngUT ffABPQux WwXYן e(4%&I,®(CGW;( ʚ`[T^uE R`YCy;ss"tZz]~-PsgObo`@U77RٟSb(A{b~OO2(V>΢(S8 ];c~:Nm@U 45JATy20;0c{I&]{Ŋ"4E׆Y~hd q@«dr&+#C`\؋Tk|hiRZ _954dɚM=lEneY l!b&ugp#"HDRŰ!_ CX<K~ Jz`\'@"i9՟ %縊5jzk_bwK[&Pc7T$җ/\kat ϯCEwļ<)nA)os뱝B͵:sȤj\9;̹_(̩'{^aӳpll|"&yTNfWʓЏnx `6g~|8Ydj#g]IW/UH$ҸM&c o 7ONxۑ5/v!k8t{DPu _XMwAB֒TTVo}wjG#ѣ_ܘYw`wBHoMaOMkr ?+:GG%QAh}z2Ýs8d9@`J~ϋwe 'pD\?@!M1wyw?RAY Kd9rkSfhovƨU9<05;̓;3\~+mS;p[ctlӼ1+! lӗWVA$AB>3sʒ`oug] |( GJeie&>xEhǺ3p,ğ<`ZuB9k7Xv~8>iوr_u2e斕f._D۹4}6; sK2B<AԹi]^ٞ굏`aSn,3ɭX3r8;ML{' I(RBt>&X$* t Gk }:>u0ћ蠯{1^B7wyc *x8^9C{/kc wS;EPBvpK&9F~ƍ(V3أP$m%6#0ђ/1[Y_i+\DNف~`#t$N6?my'xcHgBV3}UYl[筠:^bPQXgrhwBS͑ _p-NɠWxZ~VoN/{n>1ڳ/n`f"G.:I\ķpn.ll=8Дg8B>& e`/$W)b utrnHCȐK/ E&c|l'3_H~w iT.j*>;;hPhsѰ?:ʸ?WLr~@>,}B|ZƘ =ur^ vd"cEmƌ 0|yhrOx>}Pt#(w&Ö_x _8,~Sq?.C,$,9m3?6MJ?ps3au'P^l^"YNڪS[R5c.Gv$ܝ9mq^O?ޑny@emD-ӫr޸r-|{E88\H$MI47,W2HYW^N Ruy B؍*G̡Z(F\٬s"?FA HT$nХt9;0@=Er WQ6=n)C%%;.LE 餆fdՀ~d+u%Z?)ȴ|sU+ Ԍ_-g2=*|Kڟ.smvd^X^";rE1bם[׺zM枖om mR ;4&D(?6=1dwHpcSTkz[C:wX81w$?%ZS)RXyW[NoGit=la-ZM>i?Tcmךg%Y%vd}JЏz۬M +̚\,΄1W&\'-eW#W,6Z|+Dj}'٠uVӎ!)Lәb77]s蟿x[s@\I-סD Tm҈۷j`U*Q?'3һ6eعl{?w4DFvo%SlJI;)a.e)Fџ1Ա凃}[t'ޭBZckhd{ y+/Qg8 84njTziyIi察2#VF^i.=*cGj'H go *#C\R?:%L-UIsIj-B\!AhǍW 7~txWէ%n ]PT4 .7=~e'T8=yx3S:ir&0Vmt+^(9[k_OckJTQ5捁 b|d!*szo&]l|b(|fe6 Mq_b|WᵳμH;I52I>ԼQIi~ 2_mQ rO! :p UN¶òNfLJ.#i{N.!JIoW!˽sqzx&n8}Y٣Чhk9;yZZgƤQdFwm$\;[%d@n@#+6/V6\-UY92~X[s/S[N#CM4噯+4Nƺ<"ΈԩF.&}Q Cff8/}ϙӓIm:ӣ*W{ٮkj8PBטbJra-g5IfIq*zcֻxK^vYSK~Vnh~\IWީ]i&;>(&(i Ƙ -ʠ5wĐ Кoƫ{$k^C\^B])FfQvZFr-w cbŒVI85s :K뿐Vs7Lgԥ9;22A7,b5@# J P +2*A`a&h/}Fd-]8-k 7ψ#9ͩ߇h x}$1թ?r#/X]#GWZh<:]D)L K$xZ'&lY)Uf:R9K߄v±PyU?Y;8/]w݄-sN)DǶwB yF%^|ʛ JxUgyst'_&7 JS G,_m $S_y)n=x};~'m&Ka%+萔ppEF7}jrnNįh`*ܯ+oc;-\h^RU=c\KŽQGæ1I- d%Qy8ugǦO*B\oQV*d''T877#LKNŭ;,ݚ(U's)VWԯeq\͒{0N_pT'W7jtvK2糭Un-=_v;Bv`rFGhmofK"J2L2&Mf${s{r fgM{&/i{=ч 5IM08@m65ӏ\5^HmkznkTYMdf×[ V4b, !i}fCRvv=JH+nu_EYa}HC":-Y9 J=X ڎIdcR$ #][:q xݡ"ASݓ<S[ :CNƢh‡F(Gl 3}YF*۬mKs|AffOtL(ܼxtه`6݆&e$k[ WTPV#Yy`MyT|l#X(~:aDZ d7&T\M,ީ ZӚuHInUbKjkms96-$8s8 +_aյB$ʩA{JH.4:d l{ |UEʬIoLW9oUvP_S{5:=1d]{z ur6VݚN,}y洢S5ڻZ hR_@pd 0K& Nh1V+A3Thͺ lթ P> 3&V;R{W^\ZȆ i IZI~E_q%uFiAŌ6ulA`ts`E E!X|eW}gZk/Ɂߚ=w suώ,/So@Ƃ{oI΢.;V,ED٢nhsQ2~'Z.e"p/{ qׅaJ,0݄&TqYQN\"xCG=7{Jn#_&ge_5Yl$@ÿOJ:UCю{u 4Xόxo}vc "$.E҅<1MJ̘ne/`?Snϕfd(uVzACGǗJ .i@y=GNQ| J>f6#h4hY6 f3Z=d] g2-q࿑!_P@J믪fIQaKt#Fqu|wx?2KaPE$'"Av7a*"oY=8|&.SJRKL9FA3E6F|2o T$CĹXZiy#wg3Öėn|<6xLlU9=MwpZs?Vri5"[R~*"S[%yJ}8$=6 T<#33ٯmiV516+ UE16 0'$C=Z%ެ%oKXu1P\&8Zh`Ӗܼ嫏UfN9mx"gHZ.Kx@R;{.8* ?BֽBN%]l2 ezd$8-G0o[ %^ag\0W5ɐAR|~7`S`aUwF(@T^E1CB-OКﮄPKpH1nuvola/64x64/apps/khangman.pngUT fA=PQux %W TRE@Vh2-5MlѬLK=t,2e化MO)+KQSKS| g~ֽg:>i-?1pݚ-k;E?l@Yr3sa['Dh{DG%l8p g[ dQb[_xֵnxC^&+ǽj ⷴ)3+EG>:ר6 43ˠվ%$,@:;зHekL#pDRfe'Og4 0 _c &T5y11MG$)Jzg`Pʧv 4Yg˙lx)*q 5j@p/.?٘JA\PJ3O';#v&bJ s=89^ O_.(xЈx8mdԗT+2Nm>yy-v-Fn+kLqM:'ڽ!Z¯6p}Xčghԍ@[WpgUgnUFGOyƗ5|Ejl{2hJًwt曮nyMfT%&}4~K $tEI5m=HArwkX7P c*s0LX gyF zT;& }ʷ={{򱻀kF(Bذ>Ҋp9,A.7Zk 㠖jnzssF b 7  ʃ7q"0Rgca^cFaG0U:#6ђuɀSaT(\XgZ0ԕ➌޵0sQ׃^uM`WߢVw֓xi-dtMFq8ډT4nH@Ow g( p^ LQHdŕHkF17N8_pr78<1($o )NjȔwӌo QaC N6cK} q]>}ZtlD 'kje@b >zLO%p,#t1ߑ i/.?*+°~ΌAٜb10*mI2G8Et@D`˕yلr`Ҿru\Y\ 1~mTڵXe~hVFf }8+#m+}*&ơ3yKvT$JT ś!GEE"`",M' B=iі@CϿ|Dx$iP \ʺaK*A_9p[p+0”qaj. {ΝW)p)V˞F *h7E6Xk*P, l˯|d} %0SkE  -_Xhy׍=: FD3F_(gOF|yސ t!: 2c?'@)aw ;u6A-wlyvUK!T0q5FATj& ZY%"^{0Lla#;80\/'/tD⤢dCެ˴)_{ _O>ش^q f.o(ǧODrhFdub O;z5|и+WXh0a&AZ.)F%6 fDWlt9̿84Ae6ި\g?&1ϑp'r=sjm{77oú-dr}q]ģN&C)Sߌl{,Jm-ѾN8;xLo{T wԄHܻ_Ssyj(|q\|&|zRö D#:fýn佡h,<8֭sS`r LjGQ1!,)ei+|g^7n .HZ- )NUq%4`lA-KCIA%(!𑳆ԫ^QH뤫Lp9&v6ED?A~W)sA&Y׈{xc#hoOBlAbHri-b}iBo4̭ҡݦtN]T0Rbm K X OR)B9m91*1K$DF쌺xHo ۺnpjmV[Wˌ͐3j]z˨q]`[ȯ圴mEFy[bT"k1~D\1s ݥ4]Jjg }UeY7Hm&ZfTj֕}hS ^ J[XVmpʜN ̾s9Kք,RI[`./qű-Ub VdGά2]g\gSt-WOSPn8zP )4ی%\i)>zA(RΆЁRkf[ y=߶@ ر׭2I{YQ5g\=9 p VF;;}T|;]8[ y(f!=709>6ZjpPLOp/C'^BHnB)!~;g&T*r~<+ˌ  2ňΐ>n}EA>U~kڂ HhhpS?ڃ6j:@:`Wb7 YB x(!QL{ LM}8Bڕ-c_"<M?~PN扂?8m}#83-1QH!+jw"wPį#EŸ1 k (뭈NqSLx9x)CaV̨dU|nj#P?&>VpFT_ЀJTŏ`v7ٍ6I8KxgK7U6v6?ñ+QfbgDz/Jl}dsg4dA-G+]tXF OmvnY9#4?]qS|6CP9*UQ@4 Y<\ER;HJ\>܂ߢb9ovKGG1=I˟]\nL*dOIG@!ں{/aw_y?RԆR5_(kr" vNv (=VQ#&19 8^ x{,pFݻ7aWL:3)W }GDZ::cTug| 0$S9CR(=5eh=U}fOt?uޞ(u2I^;_.9lOosY%\KA)ۖ#{.?vEM̀^|ދutq9–N'[{cY8~v%¥є]i`հn|#/|dtH[m9ISfUްHΑ#!^.ͧV@ZZ%o;*7-})[vv JPTK[!$K,ѯyҕt,-BVhg&!nUJ#V`4 bn>P`LKH}p&1EÝ:dF+1lVOT*69Kҡ%H5snZ} 2pmр]7qu`8 &S;?#'3HCq%TWC JApl6>勋|Zaj,ȅifA7N>kvOnmo% I㷛hyZ}<. n}RI`AZTk?/7|J{$UϪG cb A:>ƑfAd(Q@foa#͊T&@}nX MQ m=k36u89/Ŷˊo훴W6MvL,n\h(2o?7`]Wʉ:ya`iO5PKzG1tCw%!nuvola/64x64/apps/khelpcenter.pngUT eA@PQux UYyhSgR9ʲ8ZQt@XˆdXX{Z>`вGA7;;P?wzљl,ai@+#V ɒZ }n1ުBW6u.mAM׍XJYMgJ-}_4X7T L9W^0Cp6euy[cǺIm0 CA(?^֓äzHttFM])j~ #vhpr…Vfe.ܩq}mt|L>u v)0vk e {sgz XV;0!Ѐ#ůtLv[ 8HCHha#ܜt eʗ[3nMn^U rlmHO*|&*>BwQUML ѹe47/ $oYd_"t o^ &1›B`A:oSy| LR7\5ods~o؂V^c7B!qځQlxU`>-٤M.^d#ˢCޕvL11 d6AJ(8zHgbpX.+`oAX]bebUlB8: # .p !3{L y$z߷6OXmۖ/5<Qyf,TeRߡ[Lc_OX:FbO(AuJ".y./c3 3pK'aNav3Z 7ȏNf&>GRɸJJ.^b3UU>k"^Oe{A?B5M`Ru] nҺ,!_Ɲю4)L i9,ֆɇidH!#Fnʺ"]!b&?+EܽmXKj_6wl!›XAw0~qYT rMEa ev܃f6.=W|a?-;JN$9JRP |6n:ĥE29«{rC4*UD)`#"c< ш8#2 DR+2(0Y{“CĂ5O,KsxVv]EC!ޅ|pT̰EUًgEzjLɢr)({>2$ O*CVf*x 7:bAD۹tJiUgʰ ǩfҺmmcn8BA¼⎊{Ocz0w K[viZ1A+0P+;"&hnUW(e9'R1-wq?o`]ֲa^f&&A::9sх1QknHxA eksYwݯ N p= Ք:|*+vccb~e`Xc+/ݝNK2!̫sbXA}΅mHPBtz֖MZya[k=|;eHf3ߠ]1BIUw6*,Xȧ;K'm4T]͸rEP|=G0vt\sYL΢SSzrZx V- ˺TօJ1?\3,E(sݖ5wEdVȅEJyĤTs]Wj2հͩ!׮\1'.;1{Ί "%=];MAizhSvy+L՞OaA hLgm_贃Db˓V!slNݐ+7\Yr8D ?f7r^-5MY4ݡ4Upm~;ScLXbKwtXH]PiA~ )6_r?^_ymUf;Ĥe tޝ}Q̥֙qSx\l;<0m71y]Egd},7TJO\LcTg~†oE@Kk}!M,=ᇧz3V"9wya}qܪ*arG \6^DZA+VG@=5Nn Cav9H 9C!j*Teu R7p^gAţGw<' ߱:MIY#``JM31Y!41 jq:Vp1XjͯgNeةmge(tѲ5̸oF6J}. Omgb߀XjLKz/O\<=[#6gל%WNs64mݎ"m.w;Ǝt4UO^e=voCr|Xmfi)ʯm ǭ*^ ;ũxEV*%aUKQ"[tݙ{ h6*M}N<X)q0D9+\i/c'/Yƶn%25E)f[͞_@qw/mDV;gxt͝R*օiY_1YԾc3=8-=\DB>bj˰KgtLSrl9eĆ_t B6`+X|47`q3%<'Ŗ'1BDdzͳ ly^;Q/S e8C+)"8nkߨֱyzc,4o0r' f-K0|gҚZ͏eb V캡D;1?<+'םlg^с@Z{ɣ,>Ħ$f]xl߂A@J |MXnI=|,SV`~7AW7t- /zJ>i6$||YqW"-A]u]țTc{wOk,NLnDTH'(\ n4e_Os&L[S dQ% 9Ǥ5URͯcQD3FzRըzZ)_! 4>j/zw;2~1N脩x:M7iZUH­Sq'zSCfm-x;s sqKK h`bBuiBTTlEDd]K6DB߾GkFi:RZn')}R>*UA ȯ+ 4n2涉5W=h}˯M㓅7ZSg5U>w3>%^LM=v~mɗ, &Aޚgiy%l.^FZ*-m?8 s:#HKp M٤=%,+:Ҙ8Ph%ñّ+Ytw⊧TFs&x5=>T'|53[D>~rԱ0*-)a/&mLzrR;5b1C+c3VÛP0Qş5[Ek}am&7şmw;7B]$)T+̑ u%yÖ+57[.\=HR q> h}FU_c`}bٛ_7AeG`LnL͌휶`N`ăw3`U.֏&҈q(xha]wP7|uN~qH"qY \&Q0R+<ʧVSJJ$gΜWrs_Js@(ֹ9] nO륨yol%)`td2{ݤ"1x#rxBzs(F6ګNJp]gw߷$ݵ{)QdJJCbbCr&ddݓڑ4wqG+M)lyCvD7פ6l\;<8ٱ*(ƺ)DaaB6+:2d}}ƧNc8}0o+]kU/*ȎU##&w)B.Qmj'fn*]tCf{o'aOIo:dr+):.l(bNFG¡ E}'śO^S6 Q5\=Uiޓq[w(7iyf{o]!p1wz<@e`C4=vsϖpPKQN1䞮nuvola/64x64/apps/khexedit.pngUT zmABPQux Mx{8T[0#e(J1%I)JiRt'bvàѠ'.'S9'0Ēty쵞Zweu+ f`je(d]yw:- K;%3V&oƥ~ ի7`l%1[q0Pp?(CBO 3Gq|?\zqh a^jrí8wWE(Woo{}'2`yPնw3vY+RXZQ>;)ZBye*mdpMڋ{{M9B+yύ1oB"~S'N+ŸWP3XތaJ%ga^(>!]"$tCcn5h@KNq!@Ͼ!z"}oKpGp-3U?Ơ '9" be'в|:v3NKoQG1Җi ނ Ъ|c:3#7Gj."<3փ`m.{YlLJ:?Gw&8A7a0BR&QMet=a)J02皴yZD!¸Х%Ox FWND՝^So T.Pn>;@h;ۍ֟U y8qH3R#7Eﻎ9AT/tiLsGBpS֓5joFL .nSj-;ɞXu[|N$l{O&X,t xzI'Hs7v,=Lن!?Sofz2W1KE=>䤖HL}(up퓋7PkZcQ4W/N>x(ŏC`=:Scåtr@&x9ɔ9C^[f D5mr ؀_d`5f!s0/FZT\f<ӝEvA3. '[}-Bn1;T Fu 2Ou3\ .So\*/0MӰ/W2 LD;.t# u=C3.I{XoFtyQp0 |9?ΒnC(rm%G0_Im$Dp,ԛ/+ 6_d]WV2b4t{D]W<Dt:Yn yaZ>ɷqi5ZE.]Bޅ_R`#ԥDYI&85L6L'Yl]o'f&,/6abY^hl++V:/{0k:aUs3 Orz47u\ Cc'ݐH p9d5s 7O QMR _A& n=%1ïx0^}B1D೘1õ8Hv(_^_kfFr]}{ttD1ꄰ>9|6sy\91Bm[ /fƔTh&'0V+q&J!}܉{ap>L0񪖹Qy/ ;1j3hC'HF4-gZʵѩdkȫCiq X4=G@VCpi<2anC eE~`bpFзy0sw5a8+oBƈ;ŤW AN>7QX CKjGұaw:z|Н.l'"j]fÖ(˚ޒ7U{%un^Dt2[Y&~/F.D{A-qCԉQW77!b?[`gM 46{b 7饼JyV,r;:*(5 g!q h>]lo<!gc jƨL0p)ցEnjQX6^-zI3R ޖ7M2i?F-KHIf͚,iASA;ҜLƪ~`zb?) d %CE=mc4+OLf\r wMaRN+\eF$BE8 U~!-Vh⓵x-C9fG*,cS;׳0閴Dd%y+ H\g׸K9%OtS5Z?\#4x݀SU@&uoa0KF:Oʑ<38O O@%rEsRXb5f(b'>xL{*;/>DOM ?Vm\&~PorO`'{Ate%4Quػ:(m[iA/!I#Pj6ur+Yj-^lm׵HNaMbUЫpO)][NcWc/ mh))8%Szs&`O~'YSsl5:?oM -)q6Y_a8Տ|h u[Lgtg`j?/w||m!U~^匧ýzC4鄤QrYd}9EHB[M̀^fhGbgCz? ᮔF7" E[PZv#RѥdwW+z#:XZz5))2nٶuK.|70u 8.tr=`A^4у;o9CY;e`@g`4lo+ٔ ǹ;j|Z?^IY]DC@% H *1ks@%R[C4ٹ%`M`䶕׀ODZ/wcwAA81 #079hڒMKbfeP׶OMt q^E"{J+Ľ0s{+ 9F;qw:&}9,;̍]\h4t⧥c@ZCYVQWdDžg@߃T/>Ahk&3EboE;:! Y&%:ƥ&9q? AW/^OĝrOn MQxJ|O^ԉ Ŏuˑ?g]s 6&&x37! -G2;meAjXFG.%KA>^U7-tJ',]v-&HM }nrIk,gTD꽟=Dʡy7l6!Ifj[Kª#Kzym=МjЕ'tZ"nIE6H Qg63퇸%EL}:lDE ޿ В >#Ml?An.z$zڠd8mُ 8\،MPo@̈́mz Yapy5L*m)褺aFsw]M:REMEBgs;OV$~f+WĒW6A;FMjt)K!{v 7cx6KΤ_b %$D꿍ls]W"oU=r*a`P}+gdioK$Ƒ-<(fsY4v\/ݣόM0"$do ?GUdERlY*f}\SPbx)W#XBkWy궴m)Ke&6=HcnJcj# yryY5菗!;GIUDbI]Q.xMy3 Dx~GfGF .;3+Ij׮_RO37[л9|qX]k_k{Z#}zKE]ގZ1h;iő~J6dy tJl\ Yy>SYH 1ۋW_"_c!a9Km*~Of˓O?BnbjF1S^d8{ᏂzROpnqPDcocmu7^ttcS=PPMNW6G3 'xƜ$VyFl;IZP>>#*5W@øz kkwxUׁr5[͈pzE6@N1jݝzʬ\J?'xÄxa܉[oGoK6w>iR_Wt65OfۗjTUi໦qٻWĝuaOVhmxP62ηfΟG/Xx +>%c)IZv3jjِ/#q8GYAߌ+5e,QC{ ~=rޒp69Xhx{@yNPQzxJ:(nc탐gs^FR1YuǼ&"ROsO`o'Kͅk{e%b`9(86oxGfgwSϗnP*b2Jʯb2ꍺz\RGu2@n-ʽmF*M' QaU;I,:ZhG~OI]<-&=61H[Fya'8|^dVU/b0`Yۺ6Xǿ=}yOl_$0(jftmu#PKNN1cnuvola/64x64/apps/khotkeys.pngUT tmAAPQux %{<؆Vc EJB.KP's gH\t9_?G褢 K :r:Ju}=y>\o+IgHΏCl ח @UVvlKqÏ7*.B:#G8&p@˝1&O@)FQ@(ӧr䑂kM}X&iH(CI5̧U1 ^l~]7=~jnɚZdʁ%]=χwDa)_17B> =Ny?qt,9ae&qT^u D2Pc%Q&>~"uny-ֲ==j5D}KSmQw]N8sG&ŠK(tU.~T\G}ΎxӋwձxb Eb̈ -Vx3U݃&%lL͍$)j?<:?h؅O5˃e C#eb N¶-mN&IO˖bV^7f=}ȫPVHHbע UV>-u / =knb;Ureov]f0\h? πQezWr+]E!ŝ:7O+~DO߫[9MٷȄ9XeH+S.&raoHy ޗaR5 oo~i9C*78{tNL3e@rӺnj AO.$G"bQrt9/KWt'X)*Lޣ(W'&|0@쥓 r-ɕ_ك_J (clK)h\zU legk)jլ,Ama\r_qxyw +#WJAwڰEőy3{SŃMd>bt)9TYe:\iLY1:wUG\L+xg!taT{ `Uzxbx&9֒sș* o6LJ1R탨HE__t1'<]]n9>թkJS4'Ouh]qṺqd'"6m>(bi H ~zl}<3e G`hnmhrCCkXuŹmc 5vv["gbƛށIvFaqoq̧ou{Q(O0v}oOUAA`UY"dO1 yNuc7M y͌eOR?zܬ翼@(AKѧǍa]Zlg͗L!;:AG-,]=bh|s5畱r{e>3edp^ tQЮ~ieE<2l'4ZyoOp3n#*{3qsndZp18+߃H "_TYsH++e0jz'Òog'A0W Sf9E9:W6O i◯'x% +B`G)5cC-tG8Rt񢙩!Bw}OmSu~e_%żhiڎfdk͈Y6A?x.El![/{DD9G/lgL |zJOW4D#HK{.4]6&oii/R 4sx1!mB8^^8N2ii7ր)=Ǐj1Ez FnǘPop mS* IFӁVCU2ޜSSW+-nW^Br@Q]G*փ(6I)ٵ4/f'Q0fp]|yU:W:[K[>&"SƒJ5xv {eV%pBGLnc\ mEC(`\z:I5m7H;l JR&y[!g%dgAZG٘%էf㿉];UJJ~!Q(IG?-MQu_y)L=X[M -Mwϔ}m'zV:ۭZ\:/𣡛cA `j<;nǖ1SI'3NDYH^ {iK`';E0*aO՚ЦbsMIna;1ֈ\c, )V./lc䀭d 盘߫v݇Ė]W;!?vKn;m?w3~|{K!kג`µ"z*Q!7$\^a*"(t`/<`SHLM l9mkG;c#%(؜7nAFQfQhrwmUꇛxI,2jl3ՙ c>(98|l^N/? }acXI<x)֩DY_\7mŭ?@>̾:;G2acXZL2gVd};&=v"8}U؈qFxJDǒn!r=Kd&/~%ypqi-2a5C{(=; /ǝXg'7pΐخ,2c|ASt=r^[omPKt91_Inuvola/64x64/apps/kig.pngUT gUABPQux X 8mݵJ;-rݍJRI)Ӓ(JhSK%JRV_RׁNJ:2uͼ\3ŕ;'JA&w#m׭vTe})KYmBʍ&Ь&룵2-m x$mpWPXRRxbI_\|KCkfSYoi!4f*'bHB&*S:u3\8" Ȳa AT>dbS9~~~Ν;#^DBDc{kh䇷ufTiz0ԂapFWz㡕çO>} Iܷlմ ߷osjΆ8+A̅qK+/U]$4,u-Es)ު\ xG{\p0J U!ٙ3_ܛB[7fx ULdf^|y)z8X`+1m52x<FG&hZ/{mcZf Y4vLA*itdnF㯍1 #ؼ^/ TYj '#Hnj̐Z~t ~hZR 2;Bs-T+H6$Y#ř,,e0P섞e|)Lh]ޙlT6&>V,CyiZc4dGPMUk*qpZDt k{S8-f %6$>ЪmɶиWmh^+eQpP*;_G_R$&-4]hTAlBzE"rOZ#O_,u8x|>'|&4?F om%&R*-fFU+ѐǷZM%w4!h1cEꦠK,ְ_Gh$+4\W>eԎ*kP}U+Ѻވ-X E&8)iW@: Nkj#[E$pD̴J>H~mdĊ490fo?xCz-&l(WTx*0 {&J^tr@{x^Hz5;9nڌ_PؓTKM"K5㌍U2TVzK|JH.|WZ?s3yœZJ՗qzbVryNݼ!C &_] M) [ qB0rI2),-4&S(r8QT=waCWN, C$uN}A HցӇ 6.lhA>oB^ڊA7r|?Ţ4GfeOISYq V )FO0c_ ʻ=}c{s ', %o?yТ_i[hq.i>3~kS;+{鱡=@$c )"#n.P!OT ~Ktofan nچ*}/ l-% 5Ąx ;H{ss,3(e(Oxƾ0'i4X,жHqd9zŇ\rbEq0 va|H|awDg$TzK̺M+E' N/5`qVu+oC!^Z)n]𫿿g׮,ɯ. fƎ#:u*qzy3/Bݟd!_ߢ6Y-V*< TALB|eY@D|BBAuþ H Cs]:ϝ&:7\Ϩtd33ULn |KճLR:!)}E@ aFxEH}\aPw~F~0OfzTs#^`oEsoBMyP瑏ptO7VX3ֵq5eҳJ$|t,6T{q]m xZUo$,odWʤSjo^OrƝ%`?;P3)ɸ`TAPxh;ڐs^g<&fK ,Y-s;ȟł=N=ϊn|kt3eyXNlt14 v 7bN?yb-!?y>lltU6lMن'ԩװ_h=w<+?KH?_2d$CY0Y>t@8=,2 ܺ s z}r-0m0w CۯtL3D7Յ)ss8R\ڤ|GCpo䙕%xh~ǯ u4S/!2la`y&Oklw?{rN *|/v |[ {3hK0\9Gڌ˴ˍ?'=(]]CX ϽTyX\\q߫E>)΀@ey(13$_..W^aIzw7\&g b]M_奀#i<(46cpLFD: f[0s K^MQF{q)I?3tMQr{x!0;6N$Ra,"n8)lCs_nшZd9+v\{{ئO"U3iRAǟ!t!ClKNp/GV9- j lU*P=8H-̎sVˎ2+3Ȓ Y{&-y(.wm.7)PKpH1വ nuvola/64x64/apps/kiten.pngUT fABPQux 5WkXRiް9lE l ֨@cVjZIM)5ҘZ53f9/4eiDhbL1~c_ x|x}DP;P[y'ndlDxᨠӂ(w}Dh  Z[- ?U#(X1L9ΕܑVʰ4XvUh͍׸8}oMZzU4O~iL]}691xkZWe2u_k^pz&v۳oL3&'%%_o^T@l>R35Ē蛒>9v\02a# vNe,?NjΕޝ z{lwb'@6YWW]*Ct8ᚅ#̀ #i`ꓖ l #%4`Q"L.6ɋnmm/'O=P(X,__&KX,k<#х)Pvҿ EMBKו^T'B%F >`쉡O^=Adž b.uI`̆G;D?U_zZZ;8kdd44@:m/8y|h]Ѓ5?AUdX G{t2~\BdqZqqgQbҖGr@(tBCI\F/59?bRRs<C;wuuN$4ͭy/Pb( Ebɩ/mQr4 P_WL>Ts1 ѝX_}K<^UǩD5G(8Z}1%hqNT𼽹[ -]ś׿փJѮ abκ A梢gH$No{x wCj$%:W*YԈ\&cJL+/qq~q;_pq*[[A%Y6;@_q/1H,^槭>1ƶ[Og=eKy'Sy"boBnj~Q$26ӌl4cs ."ADR(&|eT{6N$2<󪙺s '>w` KОŭap$Yhja+ Ǡe6Lߛ8@%z ʊxe-'::~Yߓ=pv  !1vs#I,r:" aXi56LfkWWyS F+85$+ Ze?ĥ^,&E{,\cώd#"1QSې\r Z`0W" P0/szZӉ>\ōTؓT<_c.lyUEWNykKTJH/f$,>t[<\W.$ We 痳.@'4i&`6j;X D\}3(Uͤ`*յiHqag DLڙڅ.&ȰǑB܁C|Ypr5,F\GSa`߷~wu *}d͙אNL u[3JOu7ܾ.;E -|F.緫_SL3* 1 IV2PgIig3Y";èMK#G2y'ۨP&P~eqPT.UrXs֔(3Q&}kLR\@w;b⢊mo/'LWEi~8n!glɪBMtDZ/<_w] &OfT6"3#RG4tekl$|M)ܿ|,a\-٘v^Q5ӏf}(Ew8Y`[M"]#veEo#*ku"A(2{eSZdžJ>q& e ^be \.tE&Gu1qBfo]+ol:aYe C靺uIj)f5H!` 5. N(p~+kB]Spyz(i~9??:ضܸ1(T>&N?R`糃N88]vu%CsܷY.RC}M0;OpO}qHz3 n)Deݔ~_X4>TCF]ts 03/!ׅu=Ld"X:sjJ{Y `n{3ǬZ.dI1qR@{w5rV#/]\,OCǏĩ4%=.OnJGJ}~yK 2WAatm94o"܅XzP705@{E&aZDMM>L]I̡葘Gז)z9 HHs֭[]]{|Hշevv9У)ceD_>v.Z1AI3l~~SXLR&̬Ur%z쌚&_C4w9Meq > LwZZ8ߟ2I!8:oCa KxJ8FZ4O{3mЙ$/a~>E;twW2}Vfgǀc!ʉ NUlkA03=*5t+$+ O#>yP")Gc=C,2ԭTjP΁zΥ1yiߒcB9sfprT`ÏaڕQ2A\Q$%}쳪=s'Cv3 kObZ>@ m%Ie߭^O/PKt91bJnuvola/64x64/apps/kivio.pngUT gUA@PQux -{<6^SʘrDI*}mh)b$%r؝)*! 9 >xz]z^5me~Uo=F*Zlq+䘍~1Qa1BPc#Н!G_:n.>q(Jn&j#*_~0lJT@ҰqM0/M{hiEޅ]Sb3hŸA Qm% H{DkWiwKW a i>PR~IV !*`S؉a<<wo vœqXX}[XTd9T/_W0eWb f5U*XR/a=9=S2:kzYN7A(D[q?vMŻL:h\|,#x9'QX8ySe  ux|NlݕX1t 1hEZ&>`_C*'0#g(04D6- YBC/_W>A ˕_x=l^G) Aۘˆ/6}+kv4fGr\6h:fftqs>Cs.PdrV$h4@i8/)(*,]-s~BbLo}>jR+ jcLITss2|.FX,)" ҠBTʹLԢ_[* XSӓk|(wҩO glk]A`:(Jv9wH(Ty;*uj;db׵LSn1r{ݤFW>k? ӕmlJeX,p6I%~)ǐؠ O ['/sobl3SuimQcq.; FV- 44-CR^C%ki 3$5-OQ,X萞Gt,noz^ᗱWZeYiFS~>tpݔqs.,q>,*kԿte)>N /<DӃ3i:*﹂d@ i812߿j502!ȸ6M-75U/d~3=b ̓sKa,yNa56YWBTӶ&QWfhuYfx:CHf ]_\ |F碆#z$fllXܾcAcr f!oA ?BTO0M?a*G8?i"d:]~|bQΩ`}h6BOeZݨ}3 E;_593u=;J>'~\^0+y|I}b[K/nz9(U6ne 1bU_] h1-p_F1qPExpן_}y`i:5=rXI_0X-+yuZ۱GvU/5J&-%to QE#dO"^NPZHjl LD: ،b?^.m̵~-됶 V! c (,S=븅8瑉Ph&:T<5;)~ 56}>DfU37l`YP˞[U8 VۑKYv-XX%+yJ&df 'oyGbͮdg9⯓n2h "\MaJ1Fprs-,AB m)N|HSr?ßĖ8SkjO~kVýgx:>8%3QT|qOI_A NLJFA@6)R(#8i0|;c".g ;tكWsFD"yʑ69V;g(slBq]a[TvDIWG=jv6%qAsӮꎻ5BO\2OHSI*[$w"%սj1l@cгoT]|U ~։X.'~}+eIץo:Y }=/ռVNQD: Vzb@!{@C7p[P'Pp?x9ʀ7.=ߵ};ٽ8@߽ %@Rf2œw ^+gjd.^t(W>Pȫ eRWEuM^䱅ݱ%~1*bȦ|ȳ7W#^V,4'PlG|yd=r=?TB&@W.\}U6De+`zO2"ңh) g'n?EHlћQq|m_vi)ie8 1ѲF|<6nw?PKfE1x]E nuvola/64x64/apps/kjobviewer.pngUT @}bA?PQux W <9Mj*+UPh)(EnƵJ(<ᱡDÌFxѦW~ುp7T :o'B(@ u^m.8$vVP*Kf:|Hd"M 26*zer+YYiii:=*Z>c9mQMV0P`VC@ח6ٮ١hKmݓil(w~@H͂"pe\f s \Ia{st|h^ʴnLH+Z`}Ef7l3=XGq]u_B\&)\X!s νnW̶?l2%`;Ȇ[/|S.z4#cap̽AҡvrrLqrک0Q?g'~ f,"hΔ1̀t?h} -Q<;09hG ~yR[`hh2pQb}3m/t^% Ox";=&avz. `:XGg[ȿPPP"*6N&c|l%<"̆&)' CxwdT`N_QQ`X7mNڞ8.NP"GPY /k׾,++q | xDYtu涊]Q60%\?K^?OgO.WU)tctSﳢ0w㨾?0AyXk̍^ F^]IxkUC7bvkۋk)bZSrA:! zj 8:AD?jJa:鱃 a&lK"lz=g-<ڵGr •k| N^N7&ݱVhvUyȕ a% ﺸTťm]#vj|Rl)mÄ=N 5u_d;pI4O(mA,~ Ɛq p@O(AQÓ`D6AD) >[װ0zęک~ͼx;KFQ**+Ip8ܾ:Ev!h5 BEIvT1R(?}B5bCs111HNwCaQ`9U7 g$յ=kk]J,d2̾-5I1xe3Qѓ!u@ZMm#YLBI{~ǧ5!qesƦIt' >~ʕ7&Zё'15"pԕ$^$x_vdZ:0f-kڄBck| Nӊ !L=/Xxi.ts"4Í4jQ⢟s GĞ힞YWuSHV&yO kZmRu RFYLG8Gb~9B'] MitL_%:$G m -3'u1NYOh[Ihk ^ s>3מst|QW׿ۏ^*U~.ύJS-~R2GNpj!K&l| y+B- d ߮$dYR7|*'OoFTÐ]+ 3;?vjæQ;hF12j[݋`M<{:Cgک%377sCJDrG#\Ďʇ %؄0E'fYwVxm5pLhLtI7 0| #laƸҸۢƦUHHz;1@8U?|.{ŝ RWߎpwNbiy gзy89ٲ/ g0zjG0,Q~6-kBl"Fw$o$\>wMxdR sbyY_ ɩ+('+٨ȆQ@|>O0$#5ɠg)2{/rzޕ+_zGub"mA$BO?&("&_ԬNYf:~]t kȞ&BUFVf'=pZerkv( omy Oi-!`Л{#! x+υ2=T]5?*#7C]!%-|@s!dO-A(Ҍ⓸m+ ]!UB#W{i {xUQtO/9glC3LdMG3/z8/8=.Kw}=9Ȅl41~'+|d7D3q5Si sAQ`סZX┦-3!ܸ1, ۙ~,Yaɓg?Mؠ90S=}oPs5qlZ Mz\Vm̳9#|\!wINqay]!*pIYIf[sJR7UKP#P_uiJz: pe2yKΨ rLeyKxJj͵!ys3_ˆ}\?$Y8Ҧ{jbd&]9w*AfUzhؠ/μɨ_N+ U4>h[E/[ڽuʎ5 _ۊݶuDY { u.1?KD@dBH=۳l_~&x(Z۰Ux"K탠v' om{Ի׫jiO1*c[nq{ӒߝW/WDߣojMC!_/w@( }=A})X`]+޲{'m(+쓧@ndw#I[c}!*WJԼ^&K%Y?zq8Srv]5'J0jݕɤ0 ϷafIe&s׻ &[TsM8ճ[@.QagԚ&Za@~3SФ'˔4S,s\y'B͞H+#k€z'JH>]̔-!d6GQPhA3_pI.Xo/=yz$c~]mR쑕gdSEBy b&Sd,ERI Gߡ%Փ4O(sS厍}:10@JaE(~/+Bц|<3ҀnKICZ~@lYZYCaC3LI[⒒xM]ӻ%%B͐܋^@޷IP=_z4+jٷqLAT`#k---/Z]!s u[Bb韚\6t[}*qPQzˋOqdP ݿY6; _AD.qm䔕N]}=CT/Aj ^?vCKfeH+` ŭ[qx)nbs*_:!&~Xp^Vj+(ёqgByTC=]2ƭ̍*GbO͘P ›<_ gm|"$PW}h)ODP8T NV}[!uБ|Ǥq1Y|GYݓydwȿѿ/O:oTTDF+*nM -=U@^(//?tz/.0CO{2Źn[Z hZ 7*o8)q!7 t!?LDMu ten|™rY(_A^x" GM';%JgGfM.hji1 /xXQRD8ힱ>X]=> s#O}U#0˜lQR2\.>V:+5QԪN'K~eJ zwJJJI b$#''GETMe5(CUi>z#Me3:\2 n #zkQ(jϠ/%P6HϜlM6~Я4y n>Rܴkd繟\hǠV^~ 4u6˔i-gxv!w :@@Lyoz32yJ}/=:}+Jb*M"[N;]TJ ;އP$6,@qlܾ=PKKN1PP1!inuvola/64x64/apps/kjots.pngUT nmABPQux %W{?zO3564733o:01<j& Kظ?:w(sd=` &*8J3@s|y!=:(qJaƎ O$rvz'TN$aR_AZ[aK8Ww>سx@y{nOr)[ER?rO١w4n>Wyy"Z2ıBg%H9`=fCIɸp QqK`k a*_e"kCCab"fj M^̦RpC22fx[w7] fzRfB "KгyH4fmɣDOXso {asX/qAamY)vJ ;>zYaf咧n>͎?"M(.`HA؟PᅬLLG7=}Kƶ!$(7n%hqm sc룫] ~XXF/ylZKJMu97 oJ!-B{y.G>%Nd|p $.J,I9mVSEk{Ӻ# eW\Se bꃳd31;%qbڢ`)cROKW[ ӊR5Zj, "dtz)iTQ7 et Ӓ/?jvaLSXq d]{ 9GB.j۷k Rszx| B#WoD,k`F*Ł@J3;pBdIQ@cHDnm)gme3YGK{;"O+u-]jv8EpU^B{+.%tv[$ZЩQR#sU\<A  A5{E%1mHfVo| 5r|UFnSg ]X< `=F5[!/׹ݷruUAeq+O{7 lטX!&ôRY̋8W j6Ud]ÜWɦqsQ1zJA{YCs,;r 7eyOH]jW3'E4V?Ļ r+໶=3QZqnKMS8P2,#q6MQv%Xo5B:_(Q0 \mIрݿg7'd Zg] ʜY(URQF[$Lhe5_ $r ]{i ?sm:_R?Ed?kEw|F2!wB;c%Һ<ۮچ6}v4. ">:y:vB]j* &jO?cWX>BvnӒ\hO#\|Q{]ؤbzIZ<}p AcQ~gi&&2ӭ{S yQ-E6C|}sL٦:2,7s$~Ћ4ޖ>'WEo(OboڞB KޅSX/,ƐEUIa.zt2F;i4 #t׌/>˳;ecݿ,<3ǐ菌Xh>p.A1"ފyvhչ8 ?hHj XB*F&c"_'`:;|PKpH1KY! nuvola/64x64/apps/klettres.pngUT fAs]A7'gXvJ!I7p\y6- .ЪU%ܜ(!Nse^xqDxV.~p\OezնHQf,Wkǖ_G) i\\l.qtOѨ^dBuBAe"jPߒs%0~1ӨMcСT0G֋[OQT%Ѭ5,nnٖ~kl?q?rpU}q4*qRUVSG 9 sc޾)GgFY}b4$M3*dtLu]IYYٝ6^yk80G.&>6Bݞwb51XG BsGƾYiu# nIQ$=%-::,?j߯jBKߥ1~]r ‹F}c$ :UQ10xv5D-E59~y{Vޒ+hGFp+wS]xhkRVwx+ *S_f$n}Kb|AG3=z.'7fP6Xs*vĽ"w a.oiA6`2C1> xpxfu0Sk<oO_PK t91F nUUnuvola/64x64/apps/klipper.pngUT gUACPQux PNG  IHDR@@iqgAMA7bKGD pHYsHHFk>IDATxy}?cvW{u d% 1#l*Q1`;Aı+.S C|U.80XI ٹGjq_u~oF(x;7llw88v{`4v|M o|i |Q7kߏ:HP OC Ģa#4@4%AY U\Ӈ4\h4Na{7B˱7][؂ >܍Ͼ}'7| ΋Πcu`|Yԯ buHs! b3}J]AX0mꊰ#W}a20ZY]ȳkC [bZ1#3NkWV{+`Uڮ6[\\&X8qa,CKs=6C߂pj/wAwd#V#=)ʕgJgxW7>Ul0"$Z{[`x!8/΋ܳji)c+!\M8~[gm}}>>F$zG [?O RJ0{:SCNRdcM|Gy&T 9|aܴ_.ד#J#- >:a % 3( ˞EmbNWs-'y 8luTJP9mPG$ J iISS -~(:T=ЇֽcFnV~&P"1lNQ+!zN8ҹlʙm+mWAVpSڒia|}6p &;WE< ReE.%dpd?"+`RZ~@1S&J{6Vn]–`WBb"1*6O ^PL+6:&}qApMg;վbr0^}P,ׁDӌ_A`hh oٺIԄVg@<¦EQɱF@9,q+/fAQ Q!:Cd[4R8!*g:<q"jD2]"g$1DCZ}`ht)M5 Ck.:T+l(d}7p2HK儮Yz|aMX!EW*xxq^A>_[A:L@ 5Deq^24HN 榩΄"Td}Eѩv?<,醒Wg# NABk Y6K?PHxֱźPڝsԄbe">˽)tR%HuξTfݬ_ mEAzh$46 =3(L*O$`8b2_ObhudV `ֵay\Y,,_a3{ P,45Vl<JJZ$nW.?pJSM]w)nѺHh&A ؾ ^+9Qso6N0Bnؒ&6y0P)Q>-kZi Pl[̑ʟQGM[B8V@EDXe :p`܇7hJ(v&p9{!`lj-=6$_'|-럥z}fY߲R}ӣ@⚧Mˏh 60*7`\.I-HוܙE+Ma:Bu@9@`++ټ=*~D0% >mPt|=4'ذ9WnTj VVH#~z⻏hug(E(c+.#qt7].аُL;@k9xKA[|Q(šsNyD10)@c[`(u' (%N"@bX 1.Z2ɲXX3,^| )Hv8P܇dpNN`[0Ӟ= ȼ2B,bj o9|d 6H3u!CDE:Uh;7߸kw~:r=N̞ ͧ8¬F*;>*A9S= GX4D$] iOo?=ʪ+\x>| =K|{6XBuej؊0ZM2?`.;{A8ʺ{YiI8 zp{2RbR`?2(z`M,2&99/$V\?`WPէJ05L0g4yl:(i"H06`_…<}d9vP6ǟOq@l~99%VfIO(e'N.u{B +/p({sZTxF!9Ts_`\w&>x4>˚0a6=gAHfRF8f@ ; H I'eƉ0ujd[w;wɟ-aD)ٞ| E4lGE'S_<Q >Ff )˂ p&)0S QneRt8L7_j'L% Gn9]WU*e۩s^{ur|b^~Tۧoln^N@M 5]D>~CYTWV/!:tB~XVS< r}Ul-O=Y]zi v\|R?_pP:ѐ )jnV^'Ѕ=j8cV/皮g'#w&U_z%o~PuU okZ&)$sϰ+xۗ~ CSQXkڢSstc)F&9qhci cEvN?ij|!\K";a|$ f8fp hRT8%` (Η,rG gLa%#G9d7po>Sp` N$~z}=;%synH5Z %3 d9|zab0pBǑ>D?ֱඅ!xn~t|bF?FFJJYcIFz)j[6pczj T ƿs#_<9Mj*+UPh)(EnƵJ(<ᱡDÌFxѦW~ುp7T :o'B(@ u^m.8$vVP*Kf:|Hd"M 26*zer+YYiii:=*Z>c9mQMV0P`VC@ח6ٮ١hKmݓil(w~@H͂"pe\f s \Ia{st|h^ʴnLH+Z`}Ef7l3=XGq]u_B\&)\X!s νnW̶?l2%`;Ȇ[/|S.z4#cap̽AҡvrrLqrک0Q?g'~ f,"hΔ1̀t?h} -Q<;09hG ~yR[`hh2pQb}3m/t^% Ox";=&avz. `:XGg[ȿPPP"*6N&c|l%<"̆&)' CxwdT`N_QQ`X7mNڞ8.NP"GPY /k׾,++q | xDYtu涊]Q60%\?K^?OgO.WU)tctSﳢ0w㨾?0AyXk̍^ F^]IxkUC7bvkۋk)bZSrA:! zj 8:AD?jJa:鱃 a&lK"lz=g-<ڵGr •k| N^N7&ݱVhvUyȕ a% ﺸTťm]#vj|Rl)mÄ=N 5u_d;pI4O(mA,~ Ɛq p@O(AQÓ`D6AD) >[װ0zęک~ͼx;KFQ**+Ip8ܾ:Ev!h5 BEIvT1R(?}B5bCs111HNwCaQ`9U7 g$յ=kk]J,d2̾-5I1xe3Qѓ!u@ZMm#YLBI{~ǧ5!qesƦIt' >~ʕ7&Zё'15"pԕ$^$x_vdZ:0f-kڄBck| Nӊ !L=/Xxi.ts"4Í4jQ⢟s GĞ힞YWuSHV&yO kZmRu RFYLG8Gb~9B'] MitL_%:$G m -3'u1NYOh[Ihk ^ s>3מst|QW׿ۏ^*U~.ύJS-~R2GNpj!K&l| y+B- d ߮$dYR7|*'OoFTÐ]+ 3;?vjæQ;hF12j[݋`M<{:Cgک%377sCJDrG#\Ďʇ %؄0E'fYwVxm5pLhLtI7 0| #laƸҸۢƦUHHz;1@8U?|.{ŝ RWߎpwNbiy gзy89ٲ/ g0zjG0,Q~6-kBl"Fw$o$\>wMxdR sbyY_ ɩ+('+٨ȆQ@|>O0$#5ɠg)2{/rzޕ+_zGub"mA$BO?&("&_ԬNYf:~]t kȞ&BUFVf'=pZerkv( omy Oi-!`Л{#! x+υ2=T]5?*#7C]!%-|@s!dO-A(Ҍ⓸m+ ]!UB#W{i {xUQtO/9glC3LdMG3/z8/8=.Kw}=9Ȅl41~'+|d7D3q5Si sAQ`סZX┦-3!ܸ1, ۙ~,Yaɓg?Mؠ90S=}oPs5qlZ Mz\Vm̳9#|\!wINqay]!*pIYIf[sJR7UKP#P_uiJz: pe2yKΨ rLeyKxJj͵!ys3_ˆ}\?$Y8Ҧ{jbd&]9w*AfUzhؠ/μɨ_N+ U4>h[E/[ڽuʎ5 _ۊݶuDY { u.1?KD@dBH=۳l_~&x(Z۰Ux"K탠v' om{Ի׫jiO1*c[nq{ӒߝW/WDߣojMC!_/w@( }=A})X`]+޲{'m(+쓧@ndw#I[c}!*WJԼ^&K%Y?zq8Srv]5'J0jݕɤ0 ϷafIe&s׻ &[TsM8ճ[@.QagԚ&Za@~3SФ'˔4S,s\y'B͞H+#k€z'JH>]̔-!d6GQPhA3_pI.Xo/=yz$c~]mR쑕gdSEBy b&Sd,ERI Gߡ%Փ4O(sS厍}:10@JaE(~/+Bц|<3ҀnKICZ~@lYZYCaC3LI[⒒xM]ӻ%%B͐܋^@޷IP=_z4+jٷqLAT`#k---/Z]!s u[Bb韚\6t[}*qPQzˋOqdP ݿY6; _AD.qm䔕N]}=CT/Aj ^?vCKfeH+` ŭ[qx)nbs*_:!&~Xp^Vj+(ёqgByTC=]2ƭ̍*GbO͘P ›<_ gm|"$PW}h)ODP8T NV}[!uБ|Ǥq1Y|GYݓydwȿѿ/O:oTTDF+*nM -=U@^(//?tz/.0CO{2Źn[Z hZ 7*o8)q!7 t!?LDMu ten|™rY(_A^x" GM';%JgGfM.hji1 /xXQRD8ힱ>X]=> s#O}U#0˜lQR2\.>V:+5QԪN'K~eJ zwJJJI b$#''GETMe5(CUi>z#Me3:\2 n #zkQ(jϠ/%P6HϜlM6~Я4y n>Rܴkd繟\hǠV^~ 4u6˔i-gxv!w :@@Lyoz32yJ}/=:}+Jb*M"[N;]TJ ;އP$6,@qlܾ=PKHN1Ct nuvola/64x64/apps/kmag.pngUT hmA=PQux 5X{<ٝKb׆m]$JʥK%rURm'.TZR)&sJX'Tu|߼^3k\y笿<TMUϲU62ީ7y$;.p m:Ž`'ƾpM>).R/_ׁ,DF7H旈 /3ZX%wB(\8ds2 ˤy9=O{a ^ ryîNbv:ǓneX>AA­,##r h ̿hbS}j\-]Y8_/03E# q6sϷyCmooP9x\7ۘJ61G;buBJZm&;S 3@„NPR:z`mfo 8dFmeCq'y6wzT6WN!{TcVl8-G7Ltol|d/~|{6_\P]8Ng* frr}XtᄊDSc^^w  i)awF9ua$`v&+~a'JA׊Jy88_'Nv]; Y@`/vaqglϭYؕi#N 9]KspE"}vu44&Q>?D;"| nA"rNq1JJawA]:)iOZ%|.ֱӃSvUQEM!W8\ C çVm >N;R$>̪K Bk{H~"[sϝEx`?<]↑g 1c._4oX@ Ru>U#nnnca\8{Moof SL,Xb!CL贐F F4J1t޼@E4S:+Ajp3Od``Yu4PKBuL`u%P|H 5i\1 uRfnht/5&UYN~*ɽjaң94&i!묥Z}v~)>Qoy0]T/t鼃=A%˖b_w76ضT { 0à{1=Aʰ{Ǣ3%Lٕ@z\oV17>MTX]nlqw i VTkפgc["LA~HN?yS5EiEA\L Au5H˗M; ?doA5$ĤLz$z`4]3)SӠn%'_Bv017C)f!JQ %:~mjJʗ5C/Q #몊crܬYTKIsRog';(ԣ-4ks3qqawf&I Ik1O!ˈ0gx(\[7nے!Dv , `E+) OBB5f$AxZ28!)9?H#Agr} rۨj|~%^&zY;Z{`^Ovx i{J+v]vZ[M 19>T 8*r9S%!Ux EL[VUN'̡vKdͬ"+pq@d8w9#\dB.mp=qHH'c*5tAl-J׽;f"BX tA#F68q,ORPԲTzaO5/ f2 (S;hנƠ7HA`$%9|OIFDKtxNq!4hppiq{ ݀{SOKA8*'0ֳ7`Q .Dq ^(# .``½ M \(vF'=#7f3'đ^%-[tPQo"˜v5k_RB1 :C4/O)GP`YNp6;b,UJV;/_ _ n$-zбf%R9ǀuyF,+g7SpC]b"0|nt]5sՃǮlFswebEh5n^daع  v5Ԗmh跧&pY8WtOpbBIHsz֟m^Wնa 3|>we״ez0TʪlJqDS`ɥQG:a cW:KoERSU,(5ݾ8uds?^Eh46N- z~}G BbXPYtj".={&FD XenEK^ܔiU=eV"y"eQdJw*\Ilv`[6dg*iAXl|](V!m9SLH;m:F>$Yom9~UayGr#"۟TԳ*ӹt7M3enN#7Bۖ:DM', RӹBdԺ}qݱ+SKg羻`Ul.'h\9?:A &oo$%{ Y6yr1 J"_Uܠ'OMEE8r{^,!zLOc.mKhZY5*J;j-6.)ǃu&J QnqIUg7Q25Wc o5M{EZ'Yx%eˉhS(?ԅ>^A[s(m<+{X1A#]\[ɉ_@u _VUsZ G"z5zIV%aQ_p|@kD]^wJ)W8!}}Oҵp -5IP;&N y'6ib}PQD<jW؛)y{..u,|&Ka3W@* 4x#8aTc/1/RK,d)=YG wewQT/\녨v\.?zϦ~eBYCkq(4b>q5t(sӽ ??K^8Fii&Yq>}9E iQ^T3~n|A*h%!??՛"#ܐh?>5opD` ]qݻWr^V{,LH|Z9"੥ ]6<i |aíU:ϒqY"_,<5ir-q yr[˶e1B׍; _|)b-mmcv!gBae*=I302*cXիW۳g겗-@OCsr/ @GM&4½ P9ް3Q>D87#uz5UJpHqqqHz:59$Oih7s/9hB޷i+J'ʞSRbkäؘX&=ncp狊&l|m|9gh88fJsqX( vy o!Pj&o/zcScI7pBڒvMU~T?,sX޴qF@tHoo7o$ZOMO2ZT6RiqXsFV k91h\E(jaNM"  D"?9{wlh.W9¨΋=-;8V564{qeb͛yn Yzj'%Č^r/nI}r_~߶FѹJj?֧hH"(wDT!H:NA7#m:!x#tՁ#\fA6iQGw/vqT'=m^c!}OlRkJNFogdmonRX6vQ-؊ &gT&\еЯFkz9/%qfLZUU=sC p\<]90h=RQ4+RN]#TbpBW&j^ѨT6KRx0D'CvOvyb~>ԯD9W;,^5䙹\zYɩmfrC:V3{IA1r~z(S?iM^:k`R$ am0l-^d-㵹brBa1R`|S_ 4W[-z&i{K^e<)$_1e 2r(S:t?_G8pE3dUC5'%vƂIj3Z|$,Np]Kp,@c/0궄{zVѵE;M 7/%ݘ*$ kPIoX@*ׇ87%*UZ*㬍~J+g׀-^r?PZ/D iDkC$6%At W@MxD_ŝ.7: OpTkཕi;N<\2_1`𤋃PF(i=]DPRz4$yj8M哯@`+mU`ɝJB0YCܿ{rL{k58@VK@_:O)Kz3nc-0O^ΐU0[ P]6zqCPKpH1;i;nuvola/64x64/apps/kmahjong.pngUT fAAPQux W{XL[_̞.fr=MTЮ'()]tr8%HN#N*$h#NMqogP*ǥS.oηg?]}~aK-̦,Ww1%7f$T@y|֑O3/yITčɻbvIl8~֘q1/H}^G"u  GY1!L=*阌wE_*̹⬢?2V&;qXi' 2AlyH`!^&mo|w7&F_3~RQ!%Jj(<~S/@&acu=W4-*AԐELwaU" :)bIDowTr2g[ܫi,fv~ 0[eJ* Tt8ւ~6xϛM\';ŅeG;00A@?H͢mu~DubBɚ'GJ™%.&"yfۨ:?n$ڻ8Dn%01 !Kl.4`w&7"1lz'*ɔ;7?D)3k_PEħq)aoWI_jb8œ$02Ffʼn/g7^f / wqf",,x=3K>9jdVxK3VΖZ)sts[C6 Īt'-9I~\r^m0ֺaT:n{^z۝ǽ-i n^tשў[ƣhӈ0&ZeBi+ t@ ܫޛ/Hg,Yry 8O* 5U3AaͿWoV8g] ى;fbṗ?A]o9=XQ+E{FFʣ'P܏d0#62O{6o0M\xE_ W[~CXl_qtU d {PU7rF>jD74&?=r}Sg7+] Ǐas.;7ϣ^3k_mfӐPM5ri}mt^ba=YY%"tt~p "_5r[sfz0Ϗ'b`.w>5#,GUT,o ƯO;a^P9QZMȢBÆ]/I{}UÎd^⊝/J凔i~g 1,{mg, #RYY岾^noX NLHQ,sz+8+TFYJ` V _ZG/.i҈^΢2Eo1eU;Jo%j|<2I`LR^^LL0Y{GSMhۻ c(ᶽPX]-\> ~h34kDe)i43~HfE,SP5`3h=-Ha@'5@TM M:߅(Ұx_,|EwRG;sӑ{ZGztH5ik{eѳ9Tk OM_Xe-H( Iu)ra#Fju PI uѾ Gk<3ߊE;Zڢ 1]ڨTA,;xRg0koNSbqP̉EC6lm/˯П+D;>WJ/ Sϡ"ŇsX|Q :WkM ހ e5(#W># 쒷}jڱJ* 6дA;ir [q ocl3Jye? a=p<<Tg+TkѽeJ@.;ċHFL"]MwHB_4_Չ I2B2us7S+2]s=` L68klj{1DCO O6k1w,Tv S]q ,v+!0&D>(tز: IXc9_l))W&Zry%%*#27t-{>DGK=Ro.W1TjP5~clow7a\k"|f E ՟_QC=}*.q\aOvlC;̭=}bf!~tC[+Ü̧-vê[YkFb%"X( S;-x7~}h>c}:1o^ɧn4dž5ϖ eo{e0^R.2WOaOIzSBh_oG۞Ő킴/d~}Wؗ6i\6}ǯ3 eaw:(OZKΦ}ii]o}y|Nvz{ ="\gӻKtan'h6M'J m?- ?+x4w$e׿1\`'}MW1lފ@8dOhlDE(24.IgM%ю69=HR'˫[6敁Q#zXfČ|wSj jd፫{}ڬZ4s{p=xu1q\5*uqߥw:9Hp3p%wE{ .^Oή6A&tnwf; ADBӖ#iOV4o^%Bha)uud@>%0a"xN|6T7[j;*qFvWuK ;pnL5T![68m]3-6¶V1I^bs+젨㦗䒞 ׈{!]" Fkk_]8G'^0|lBG:u*4~?̽UT8P78y;kL^+V]//ai؂ WM9PeS5.sZ[Xē!#(CgҼPMT\IY1E@3 kk&lm=7nEyx~e$vvYzatv"4u]˨Ά:!z5\c 7CFیP5AMKh.!F _37]<<,jwfd[/JbS̛Y%p\SO\ jW>Chu ٰmX/)Y16œ67Z1ź*KTR7EiÎhƮIKyGw蓮]9 cUE=*8tQW˸PYӽg1 S42ʕ-PqԢ530?gZ;C4G6󱗵[53`7~x4vMp !yhy%jp^;g}6K/=}W}"TJNEwBaIUYƽWCR:ϝ {\9-~qܥ_)>aDS JAi|7nzm~Q~ѣ[S;BO"@ipuƍ:gYl?e(\yG%x:KX"YnHrRe!4Z5. )`PO< Gh؈U/[3!xN3(YNi%#g቗@6o61_Roj%EO0Sn`k~8ФbyĂ*?M I[ 6ޛ7PoBD١jS~_`I,,@mZ VIJ%rid0O'jD(k2||4XѺeC=*V/:VW/` n`Rwc@;.53͇xf`ªE?:c "GNFhQCt1 $2p)?]Ht'q[$σ<<P|wі ُAyUkƽkK.gs쇒VK< E {u. V =-rz@rPm߱#{})6UKr5R7'՜Rr3 /3{ӆ`wzmn% x|Z@iML[~ el5-67=вB0@Gc*@V&7\ˆB~+~/Vhn{EJ[6i#>cVt:iLI5qɰ]>d+f_.nDP -<r0b{tݚS*$\t|m!&Jm8py<>TўWc='~K@I2By52Z-ù_>Z z4RFYVw+izs Q|/{iR\!\Qс(spZġfT~ؔtzI2r<+{ fO[(׈!k0 nUZosLC,WQkא$)bEqe3׳mЄ)FGGa zv' pj$ [\vdjY.tjm6]^<-y*,<8j=p&dv?I{mvg?N #́$WM=ʲyY2P +M|YXS>ҩ }:ksj +~^Cvo`n6-n0s. ]Mr 0]p%qCb/R9 aƧ\r~p>;b<s}WŦuF~Lom .f@o)N]{MiSR{Ph% '!FS,ˊiN2Uᡷ!+Q1L7 ZlGXvr0~bvEpc &S øBy?a1fWطZqg'<j ѫY#֝uc;9@|풥={k^xZԎS EhӛYSM]^s 'X*_ų-|u-[PC7Jov(knzk~6@1 ӦouI N߃e]e[3?# ȈH=l'(7k6 5UyH!vk9;NzKqœ:nqM|@01+ej#nŹ`b*4:d9˞]1%M;3P c}T^-BxεOL Io[KgÔHwP:꘣3St|3祆۵mVMk7}$T9é"(Z]s)uTQ9 9б4 e^UFEgffC w>)^B(ηn'P>rI?qBCw2 3T-oL'GDz(JG)z2cq.]aNrkVA/ b+vUS UP4dl0G[h5DX[VJ6-ɨb~Iط誈WoaN+y;۪()FibC3v+܄ RI( ޥ93MQe9T<18)\SAH ^j6 0 [Ԕ Ř/jJW! `$c^$^-> O 9'duAN- vJS%>hS(V%""{rwhpݺ{{L OgAW. m-e]+uk`,g^z׶̀b:?.2BSy5`vV+a~RJcWApz&RHdI٪1` =|LީU|Z2onhTЂB_w-R溋2"%vi?XɛiBv %[qΨ`qAK@h97;`.wFyx vG8FEyKI~xL?v z/wdoi[ 3men{LA#5ڝJ0)3x,ϜSb< 'q\nQ 4-:wd.(\4m4~£%h.;w\϶ljJe&R}һAdEh`6~.d3EhY$?JYou*A4[C J :*n;B`"VVZَx%X_ M/_ E~_-. ̵RF̽=Ly^8([[eJ5}5SFĂ UlrҎub8k(ަ煂dCC1cmf8(S:GsP/I_VspKyNKÁQ3kΟՐ/)]o(+2BRpxBw6c Xmj{ЍsF{G@ϳ!q6-dUD9n%I =JfJKst"1zv2Q'M1Sff9yI!gLcZv`J|qQ&/"u)01n'Sm<@x.0' )2)wR|Pϥ%2_$3O[+ւy! %jHPRKĠNmMm9aZA{FuP!0E?i@8ްVƟӼdT t^^?:! xpY2W.2\7?<5D_ 6 kW":%xJnĝPY/&EAVKW6nݹ]^D4(1I4_)XР*@u x ApH;!3ݵ]On!ɠwndԁz7QQ/5,|ޱmRKbA]]=s>s.ġv9:ny3e z ds 80=}N{84w90xHt#Ъa S$7n-. hbN`)/u+m;=N1n}czR+c~+MM;JHMGbKPQQ=lƦ6s&~>9{ІvAL 'k51™@E >ӷ$K … P4cxZ/x>dMok*9+' &Ƽ lEG# &*զN{9݆%}] }̊n?.F>&02ҹ-&3,BLi\⺺4cR}GXޞiRރvvIe0QQ9_>-rNz9C 099^2M6:boW/ƽ/(ͣb.J鉀p K2 (f6N:\Lp4Fm7nIqX*FH<33̾"SS'ovJ6Ԕ^~'!=X(/69kuu2PPaynȴwqzeUƓOx-۱Ǒ]gM^uV@דg@~bWffbcM fKQzr=ub#Y30YY[;*U>&'+Rl [^r)q v4խ*M(smx%Cߗ!RcVpkiQS|?>`&ѫ?_2;FGoxծDKڈh8x h A^!'&]orدS|ӌ!Fh * 6ɇ{x؝9kdDwhZ)8#XĊ2}Y`qW_u:77P7nD>|K4߾hq`K|-ȏR̳]\f`5%"%I;l}uƁߋotR6tt.^RqidχNv6wwfW*M9;꤬T#]]5]cA[^UO ?lBp@q݆7E^X[1ظw=çnU0??[KzEE|: ³eϾ )z/(~vD%O`3i#~W)73`.4^gXcyxc];0)LDE%g4cG_ FJ Z4<~|-K l5J/CX^yX! BG6c-mv.P%>_1:Lu/F'4@5z|oBA4IIYr/WR\7mP]eifaS42A%ghQ"L #W305'B,|qqj@w.,Gϫt8^}6oԢƒWct![a'ʿtݛp{.n Ant\XKHw`T@fz5sCJ ŋMN`":~Qܤ"[ eZ:5_֭/4JPd7n$;{>yk o0E Kalyf ,+mLϭ(襮諷oowa:98؁$ʊ]#7|xgiC+%FTnR!<_j ب,՞]xK"&;? mR.w.e*f=Nn+8ah ]}VTjeD(L_Mlȇl{F0?3~Yg2tUܗڕ+|IlN7TqqAp*YMe݆V=ps[b7]4byϗx"ʚ{%F6#9\'r2DZFlK6%7^R @bZ$c?O#|y͢]؎݈J-`7=ySR&y wW_ȮBSzaTոlz}+tg#F=ޞQ,m0ҵHAo&WyTP E6"۲T8"rCŐq?M]#␥ќ [C>)\g;QmdzZZc"B@h:~ [1"S[2=HѣSX-X%lOQZ; MGHof=2`NU:x>cIm'U!",`PG8#(_ {H ! wwsa84bd`uD;ak̫"X<M'X;IjQRA\Q/3O 31{u5+܎ќuyw($3=yGu_!vOF=,LCгgc# Fu9S[-eu!#m'8?zWWEƢ@t}fl\|wgCs'H f@2!kvBxfHn_@>5? `Mya.).Zqx_#u2LJVU7:ŋ8};Y0?X8e Y,~SH1 t ۂfOKƵ? aIdd 2F!g9P,^^ƎELzOUm<){*Oc<\A\\ea%3%D7FCή h(%E k[ ^؇9 dvA<W\¼bJj`ik?G i`e%HNkn0ZY\Mn`ͺ0jb!ivAŹ/4ppc/*DB\Ln|f;o[_}Ue>q s.NIG6]$fL:ܿ-g̐QhGKgDWdsMO 8P15րUYڨOyjFiwη~TÀM }„\ #U㓑 n0/V+qC?OB+ׯ尒/+e Br%"l$1N+:_Ù Dwh QMдBjR2ɕ'0  5Gx.y<? "׾UCuU/qȥςSUۢ|nZ은XVJt  jqz_amf&qx6)x;8 ?1\q>)O? ΗSChM T?fudeͬ.`؜ ZmsyL^˲&{%;֋ଞmI4=1;-2)7o>!c;"8pZ! ";ky>Q?B52vy}/'P_ȹ1ݜdH@iw ;7s<2 X],RS\| ;T~{wŇS r~ uqe2؟|QJEfUܢ ;iΏ*VP>cl]Y,~葨5ȷkel^[=?=F(]g$0jZs?k N53ʻ.=Ӣc*炚Q0~Zb\a$v,LգW2},[KS+?e|n\{$f~k~s.{ 9a;fN6!?c>x ¹\z%%q8IfIKӺ%$E:Ȏp3?F^L"}ɠGGҺNSH#ܕn1{̙.e} eo}>?f&t$*eǙa>OB~\vEÑ%:Z?L}zBO;XZUadq:[ani37͸7_Ԛ<vs`|!}eilJSqn|Hs){-i\\')!_͹X' H,(%#jk+`ސfV#Ci:\dEη宓Jwx)2ކ_:H޺yEP蕅d!c5*4;21jz)A`Ț9;s=h`cOS *R*=,-4[9Id&UOJa?>-(0Tyh?2.ʗW)$Ӊ3nc76vV1d٢{RO2w«;%<#=7BTh P1 >Ѯk/IڮDڹ4 @FYfd׮ 8PKpH1l-  nuvola/64x64/apps/kmenuedit.pngUT ȂfA=PQux V;Y>j0aal^2͈Ԙ/6I֤d[/b-je$ԚZ=0<6 3ZEe˚A"oYcW9:us>sߟsl[afkX=( ^NP93)/SӣS/6)&脸X*dY * P&gvN#6='Z>?˓fId\ԈgTh;L"9.ﱾwP-{R@۟qHɛ}|59u.=|"BrGM?}dXw`18A6V$JZ&4R9q.63jʼnkk=G5gAY_=y N: :K-uq ^LTS&fh^y&P02!#2t^Ѭ=z|W4,뮣b ^t{klhFM3$kp} bjR%Egh2x3)w%N1#S*gtm#dhX,:p;/"Ev4 :'̙ *3Eujg&@EJ802~m@n2LU>9| UA = Io4UrsFOҏx5 (Q:ҙK}{ZgUsۥgO&|HCer_O`ԪL@@Qw G(Z<ug}* Rgnë@ >nř gmƞʮwŇo8Kcmʎ'RO)O[^퐄{DPb+LܭwBYͽ5G7{֚- x*{3?O{vOr[daOV:pel(VSiv) W,dMxhMX }9G[ALoADfhbم F3@!9{9a ۿY[noeb(bn|)1ncm-- #U"RvLps~|~p>ވ*%D16NAf $:&SR8M4?3}kĨ3l?p| N<JFQb)&s@+nQ%VrL_ZzۃV<29/N] 'W{>5Uϗ eϱn]P);͔9;38=0Nʅi@ln_@ʓߜ~N$3n [i'x:YԁRG3:eI^{>CݛI4av\n=>6/lXN2t -'# 've c|/5MRsm!\m(B{ R/?()|KcԹ*ZPwz}(YnP0x|=zdg ;`;:~*l8G|A`EH`ߘOj4G3d՘% *O6JW"$ŷy3E$MfY.ǖ?7/./<8_nʘ6, n2slO ߪsd;wtE,>6|e/}Q5Vz"CA3JRk"HonoYHi"Y?#Ax?XX3AW<Xuգj A2s_-^}{ƓNѬ#|VL%9v|5tDWS,&H) Mؤō,hye4-1 shl词rM҅p>nnwnAn*ɺ6TpѥKԒ0\[ D-FαW0M!'v>T4뭞YКY@)i; q:pǎ_ ZFAL wԸI"WG6ĖrsGdClӂѾ`,@z~\YzK.O=5c@=qrg=ghG&<AC/zd6 =ζ(kc$ Ti6BEo*j[R"bYi뀞P1gkTх3Xt{`&ξ]oR{[W"7T$N4r/;u؂)jJUW+۽*bׯu9KH-]X%t+;yl8Z ;bО!8Y_׸(]i `?]4`ԓ YlJ.(*cU2p}K%L.GFD]NI7^Aob^!puh4O@ PaNNE:X,Aj/oPC!o!O 7ȥ6zg6.Fdn"Z@NFElhO9YܚWYow#1Iϼo+1{QL%{IaOMu*XOpm d&"oUç (zm^m(/Q}Ь$)67&꼔Xpj  m'9K9*~9^gQK7Q1;uA׿6=5B@9Ş3/aIKJ^9IU2D0ًIjh}MmN7;M/^ ;869퍚󃯪L`?=_`R"H<}prNJC#d:ĞqdxI0`4M7LF֎HyڴuthSl?tLd_/C[/ъgt>-ߴ>DǸ BXOKu&Q,kHbp_)L7MGDihֻ8p1Bu$ jh>7MPrD8SoTElaiV1R|B 2Q, އwY's+:%َB>{Al010pC)k1c%^$%8>&{ KO ضTLHdDo@J%46o>cjsET#/^ʸ”hI .Sii.~*~MvT{Ӣy|qKV~]G%g ^ȠȷB]A ;Bʌ}ZFd{a`!d%^LϜbrMJc5fx?-DMQXw>}'5Rz/SSu {wkE?Udd.}|\HqM^ Dcgs)5žȒ3-j tœMU9:̀ߛ>9KY~jjl'#Wd -K{ sU2v:*>aڰ[Pw7JsTxMգ5V>g/Iw ,b8wZKiz""8;\`n(=^ /ǖx@Xe"eNy>!ŒZ#ufl-/[lA~R@5-_H4roXyg+Xٟt\:\ m:k:N8HYNdCDx%$8 ݔaEEXj䕛(F[7DIO!ٛ7MKD@̜vȨC=:t;Nz ]`H-zm9 YQ^"ݻh:A1 Hpo4gxFthjO&Ofwp2 (b 2]̚o9R1ƀ@-۴Hlѻ$/ Z&[Z6JKLEﳓ.a4] cdK[|)U$C`0Vrv±Ea).0|޷ޏ.5=\"fw:ë7u'sz{ь=4j!~3^NP{:kbТr ŠKu±y\] !hwkSW^|!̴eA H5ϟij@\cib--)_eˇ9}3B CJY 7;{uqb.ޜGA`MiN ?AdQ#RfU?w2 P/O RDJ'i(Gd,?%! W$,ql_&ix$*m|Y3=îBrA1dAk7գƐL+{ԉ0H h-M&o4q)3̄o#tJudKXDyqQ9" S˟%шsQg1MTnY =pIy zw. OFl؆\@|[g#/K vWކ}DITPJwnvlD1j\S]2\9@o|d ,hxTPj,+⪖R7RXբGp,S]7w*~v[\$@aYu\T !OW%j\t,K ˕:+6mגŵ-9(fe;4]`͸JL"3$zk'_q:(b/ W#͐S2QtGrz- vXMu3N꬟khwD2Gd{B_~dR;:~(˷!?- c9a|(x4aOA/P/סAuOo)+(f-7,c$E pсՖ:+?w,V.]mEE"tw N;V sT1;*HVzl yBxQy!])ۚῼKJzYE7;&ێ[Mv3nΆ~ҹ6B!Þ=b28gO8ؠrTq`si51)oίU`JsQ=-@^:w "V5Eʌ|t׼tiɃus>Yd{9nGwT8o" zAkV̠f3>VuíFR<"]UxwaKtb&Ep}?°s.ܭ дEq<8lѵ~7YDv?S^eeU텯`mq Ym?w:Rͻ ?Lڱ^o©i dW??H޷&Cn A%kXņ1 ۻOiG-!1uOҶg9V =1U~@=w‹W#r0grWzXm2Ƀ$LxrLڇ8Zy+ J~l^1m^b; !>ށbVȨJtEC  }%+6$$Uy=ݼREb:fZkkt_!62^}~^ Ik&[sj^z5  6qB'~UpX%Ռ$4+ 0uOYt䋯aכU!^˃&Rꚣǵ^ Rz֮񸷴m FVxdl|1R73XM ˍH1CAo$Ĕj8o;E%UT}%`P̲{>38ې6xu&[Mܑq)[m }كnb[%;bd/aɄѢ&G#>שh*TeʋV9kү*|;> -%I 0A7p.쇒ce \䇺mHI5f&B&wk K! srNHd,+OLy+j<D\4 -z4Lx+H1 40TI=\A:];VZc-#.pWinɝ陖6|s{3r_\X˗cN= _PJ%&}7a 1` ZQ%(w*N <}Jw~\{:j4+H]f1H+ز<6Kg<{z* 9Hxq=֖l_t| ^~6(~7XɍhO] k>SJ3n =Dpf|(БgSod~3WP'cMb%,)Jl03MZ1z@̎D̄21h!:^-ù9 4W-y) 2iƥ7ӾP?e3"&^' ЦpNt0f6?֠Gfwe%͵s&rnPTO&GD:b^n,N|zB7Gr`lz+2=\4ua_겷'Wp"[/p4jjB`[Hzn'ņ<ʮ.AvCȋ0hw:nق-^d%ٿ Ě+}ɨb|d~&&$-UGd*%I2Nn'CL'DbѸzQS r%WOUhE48XqQ H%FDŢf3W=t0~1 7|x*c¨zY@Ҍ}^~thmlfSwI13,M?tVQE.FL(W{&p47Ly~RH ۶N2wkLJns[+B {:/ &\^`~HEԈW/\=A3#,cYoj[9O&Qp4|Wu|upIUK{+  :R&%(b0Z& LϰDuV l^*e?Ϻ^* 2.]dP툱8TK>;$*Րv6Cj޾l=Ԧy1-njz)` H%$mZ:ΓPORg/4)f,BʔtƠ*;&v{ rAEOk!Yݭ+"t)Xdԓ|!9{h}V m8 _| *5Lum ~!)KW-3֩(@쉏Yt1;iޏx%TS$[sʦ:K^!V/fa_-4!mO36|U74{xD`D|3WϚ[u~$1+6 AfĚ  سP!}p&8d2yR Dm)9Q3 4G\ +d<6Y.kDbgjѿuEnD ^d>t[6ΌwVÅX{ʡAPF@&a7q7'PpmV6GW0$>*X\Tan@>~"d#L}򛦈VNk;ztTjQu4ǰʗf-+8, _MƴڛRGWs%?%1 ~IU:H3cV ycC )͌a_QUG6> ^K*ԅFJCB?S$JHDn#&9I+,PjM TiH +/EL᫅nvUN%g(Rx'ɶڟ&X ah; &Iv8}5XcKȤzDw.!Z#(u#'k\FPY$gq#uY!b`bv"miG$搙k 0I7VȪţ}bC2iS'3EXj*K68]$]<;h%4_]F4-+ bhU/Dus\ⴎdVkn5@ш+WO`Щ}g=o} EzYd i?Ecu dNdcC#8Jl8\̖5Eaϣ'( x`<< 5{7buyhk/;wrfx0Xxn"r {C?6wjv[ 3e^w gz\O 2 )ט^Y:O& xa-NXGgq ܂AHR&GCŏyIdbȭk /w:SKqJ2_|<>?3x~ۖ?v=n ҫ;N"4%quvf5Fmaz+U9vW}yuARΌ|ySiE/UAQL[_@QN7,I[&Ojo Q^p0Zt|ߗh7.i9b]Ps6y10Z8%OIjmc042],5;=mPK8sH1>#%nuvola/64x64/apps/kmid.pngUT LfA !'dR bAK@Tv v:M(aqބ:2Na4Έ)]^9SH&ÌRiM ?WdOx(5 ] jQm")V5:;/{lB&=aӰPA}N Yy=b!YX(@_Z0 xzký Acx<ɍ`GvQea#6p2cBWEm aeFEP "<ÌgLhxK ׌'f~il aI>ۃ枇SVFȤav{kv;Y(Pac<މ{1|T9+2!҂M 09r2T\t}AMS "SgU(6|#F"X¸C""Vrxթ|AlO[UO#e *E2OV9(P)9+2iG) C[t~hbDVN3j [pvV<̹:@?y*f)H]}0 hT" VbŖӬ7vLJXef[T@Zk䥹G,<>uV}wf)ɓ' &H'gf_ܥ\ς pC68.>Bǿ^?ԏ% 7?\M&C]Λ\xD&i6&0 \7$m#vi±쐨hm4j[- ~8&(9w>]9:6 gCr5Mvp{&!#+y/' ȻwI)(;+W89 ELAB$xNyX5[BSnE[f!2纎w Gցpfa* uz2{u$AKvPci"9Zo%g?"cK <'L&ub7Ll hOf}6cHfdߗ6d,|SA\f|JWE5ŕI+V`{ 5n޸u l[\e2~t^D:*!݂>ĝ1t3]VX&9etCuo…X2Y:qzXJV!7$$K+«#$nڮGNg2;2kg σBSNi1]&ŬCxmp <ݿZN WvtLxuGkw45}};Z/O:C=N}a £P)kJaċ%˜SSc@ I2^%*MTYZNg `/`~d6ե6shLS IEpbvwo6=rө+6F4x8lrumuuV6zhQi穓'mffNWxŰ:ĆD7556ZuY]Cs=o$1/e_ fdWUIBgp 0$n0A "CBڙUm»g_oJ/l2*sfއq A)ΧX +a>n_߶ODF6il6$0|WoFwgtpncJcaUAp>;ώR8:W?V6ИQʋڙlHQ pk2(tm"{`A q3lyfÁ?F\]/)Y)%dׄr=tE|H\U7y8`M|~?=h)+#c'^FU55?TP* hճt2I*3, T'9#dRƂp{cΖ˵3 /!Ygm≴B=2㣈+Wٻ&Vza>^yf%gΤO*zQSҥK*K⤋ #=x2t~>O/OO**YD&7]CkxZꁎ6b[lNu 2JX uMܪNU9#XNR 6M<ڰP8֪&I@ɕW;Cml^>9yFh蕣 $*|JUU)ѻs_Ma-"r*cL,5 7I! CW[ =$'>8Z`2v= }罠,0{ri ? bNG6{y"aq_Ecxe7^HO]Lje:M T5gXHf8J#>v=qFv K#]ϭ٤c}oE?-1ʁVz(jPVg։Cv{/ jHx}*@lXCTA:X]S%\2Fs# <6ZxRNnbpC}Zu\&qpB'<<[54,V\ʌxp&5e.Vk֥`0')paJ.2gaTJ>hJ\ACڝCd#x̄_mR*FzRxヵLF?f7dI g<_~=PP|dx@i[v\8tpe!i4GFJa *.}3sτ0O/˱@z$Y9M՗ nm5 qSuĥ{п op6/-6W@WW9Kkk'qx)P$:N45~Lfl;6w]Kڟ*- ;Km|W:/q3nQҁߜrRO`6!v J]'0hѿD1g/협籃~3gpX̓Et%V8^WXfNhÇUnA$uĠ=;s5qmP_rA cϖH""k>MUW8=g@EjUK 5 E[G_d]߳%uJ0}`+hUʖ5UAP:zRDJݽ!sͯjT9s_ !,L?LO>9%qeQnWdfۯ\V8vIVlW4cR!e#|= HG~l38qf,^W~Ssƭ.32BVwPQT&2 6xr8oI5Mhvg`]L"aڈgoRo_YfoGE^ʵQxךdp>d&reGe'Tj-T>=nP޵R%_3f}´3s `7\tNIajpVZz{Z~zb- S  ɘU |b wʵuT= {M-YyYkWw3׿=ϐ ;?TBEeI o~> uwdKl^u=#C+[Ֆ7nX𴛔/uӢΘVECnvV4qW E=ߒ$u"sSk0::@ƒIjϫEMʙwˈ= .m#=:G'EGM{\)}:ﲗGOVj$?3hP@(?+0C_<॑S^!ůa!=,eZ(G}h'Z#+׳i]s_d~j+bOu22yk&ǘ(j|RNOf_vI~;?(i  ||?[`{ʕ^8P̤orH呑U'M= Cyj܇Ow.^Sh=oUTu驩9>yޠv0 B&zz>#q܈0X8-s54qw(AA@﹁k {O瀞ݷY^쥧\T=&K+Q//KC9F5av0PKPsH1bIl~nuvola/64x64/apps/kmix.pngUT xfA vjˉzD[dEewϭ[w I%+kBB A7ž{˾߂!o,m&L |wQwpPRrG" %Vܻ4>9Yӯn܆6)Tvu6=X|+`@ ntK|zAwDi8|Bܖ'nY;2D@1&~v_"=]`B!!&'oN~X{\Pگ % X o^MZ0vӼPׯ M!w(ssoƜɾ&坩o`!b tPlh^J J("U-xzVx@$~%|#cُ|"ut%n|YVWoe"w+p?|h7vaSRD*_2S'%j`/wyttu1o Q<޾҄VzDM[#EOypf !ᯰJw=ዬ,*:C7!*XmmְMʼnai,JV flxmm a )5ƈK5!BYY~>tu LL<G#<{0f*+;8L7gsaDRwb(, -,L;g8A+Ʉ UpS6Fg|#b4(}>@w<+\#Zi$.YQSB<)yZa#6Eݨo?v>UHMW᰽^hq: k0~s¢z`Er'4lӻˀ8 T8ړc|uKhe@WEL)PػE:=,3z[uZ(>}ddY7YN4N T41?2M,ߛD΍9\!|V3rL 8&I0)3MA*:ǽVTYR=-Bkc-oLʬTNٓW`h(oD3QgUEHtADdIŢU_[馯5}MF;d==])>lLQ!1Ox9PysդHg:=ϵ y&1@J(VM.ifxBiHq '$՜-N$8suԶp9}q4'oyIU'nԆIm#S"pa+'/zn:KuT$5ba$4"2ؘN5o'3>3(c,^quEl_\>#[srٱ mT_,l֞@Ղ pbN?_֐_e 42RݮlUȋfD,z(xo-7SxuopV3c4hJ?k)R-]vvRtB4iS#s3Xd](Ԁs%Ru7߾hɸxPrЧ=HxJN9k`#![) ZH=>aJ{Tgd+V;ܡV'=E D} zSSJݣ%. sme$N )cp q AM_mÒc=r;F0KىLz\WGH< DEyž_X`W~URÂ*ے PG!~wC-is)cM/x <;3""y޽4,WM7nGn/؋:92^Ȟ*ʲ5#݀)S9NĦ'o>Aq3bOtȮPFAӱ# ӲsV_\+71i&wNL(sU~aa{~=O{w ;Xxvн_1yl:TR i[rqm'fǾ1{9h t3Ns[*9C(K(Ev^^^5bBA!BI=hh[!P0=w l?d&%YN7ud|G8 w󐉚 9MO2h,L!車#N" ^wRT8/|m Ƕ$.o`ֶ?x+ci߂hO6B>u=MY;2F ?.y+\6bg y1I6_?Ky,)8VFs{gAR,n,+3M [V>֨㇭v0'cpX x(rnm=wlRH0=*ƛqv@  2na75F7yWMH#`UQ=Lg/߾-nPV c߼gƖR+zf7&L!`n9Mw|Uѹftc|w`4쮩:oᖙF)Kū r|XiHDZs>l*W3Sp88A^#V.~T#tIeuqXh1XMDrI 55Ҩ"~&崛? >\ibX/H;^K-ID$񷡦to<%s\ގ֔?[} D' ] ױc{NU?uduYvGnR_j`v DOx͝W%7sZτR$.Gh-y<,~ WCA33|2nh㜭QU)%ej~Y*D \l !sD89k%?Nh.z8j,Ej7X.Bt1D~-|N7M6E|&5"$Qnh۳Lܷ/l8ޡ9iWlOlCT_)ӝgYhp~^3RAz._6) ȟ_]d !Nҹvކ)x|j9Gf">JFjRFm`H ]܌ݼ6Qe+Ң2_ZJ˄>ټ bEL֬?)ri~$2YAiɮp= 6nZZriHHAUtCfqbY;^8*p]8`1^D'K Pp74K~$o v5ف~g\cWq32Hn$TɡU, Uܨ z}?꿸ɒoJ^ 1XhIZMC?Ln=rWe,2’ZHuR JO1o;޼9ȹw\皼Juw3\s_#kߠc!(TyOk7?L$jƍ/єIOa6qu83/>k +{by O0#Jmͽ+G3`u IXu`"<A`d T*kOC0hmϳ{%5<<'-zu|FIMbVZЌ UI ]?  GHhl~R1lҀM`J,ёRN{M? %E]eL+^ [-ʷNSd=bF4%`X Fqh[ZǷf:lM\{.\Q-cN0S?C4r6nUUP>כ7)]`}\I׭13Nec6 IT*cĐ[A!.(KZoS^q/[XJ3t 7^VU>gB)ҕE7#~ի1zgIJK.xlA̺S` M+@7x9Я/ZȰֱY=*^B$7W=|G[7K腴muo˄$+gMdíٶpe)[s.<Io/,6];8 OY*lvц^ݴ:+"7$xQZ4XD^'+4V;)!:[cZyR,nZ5~ o.M7TO<od]e}Q/ۋQώ^4z.6j(Y7؟[[G6֟܇yp,.6W^ߓWu}roUWS@}fb!ß *vgt[P8vbrHIv04*?24"HWݹm3sWʻ09 Eh (/}F01}9?R,! PT-' X 0 O%t E.?55NȖ-+hλΤ=0F| .y;B谴lNTRUS"pa vUzBٔY\B`L:+do}|O, >ǕE{*j @Vh*[p^KUP u(/a,-8m˰/RLS_b ɐO[D('+L=jH6/3f#H+%\}=R)B;Q|ʉߚ5o ";FHV 2҉D7d6 @-q]"W,kO qF;CG'ݖ뎟iɃ}wJ'3_uG 7("I ҭف!2ݲtFxF!<ikC #C,pp=%i? Q g ; h IRd.SctSȋnxB`,.#]}\Bzڨ葎.fT Bb` FcSu9ƟO Ƣo\(? xB*6 v쇠#'#gm#}NEGW*Ig袉RJtE6}v>zص䑈!Iq΀tRQ;BY UbD{2 hRd,Ԅ~N<}-$zQ\pTc9a yH*%ف[ykJ\,S;5u$p Y8b#c.Ґ!oۼ hP{Z?@uŽf۪]"!j _?Sr6) V/A ɣ*O tRJh2hc9PK+W~Պ~+5,uhrjrcT7k2kW̨Sy ʸnJ. I~u [3aNV"xiT[*Pod?<6Y{b`HB4 &ŎJLN;S\O,mjI.jh>uAaPXG큷|;X${޲0ŠI*&%UˆN@+*\/h^)PKL87佯q%NN#[,x4IWm8tr1+yA xP"aϒAȐ՞f}D3}BmN*@x*+,ɧoz n`cx<֏,G;=;*S_Mu[U[S_O>e>u8[I t1쫾gp.8.{O^%6X}@2H\I)ԔNi=n(j.}-N.;Ke?rB;9cTVv"]G<ٷ$#)@+M|uk~-^fķ8߭sߓQ~q_lk'cPZi6(\v5Ɖ$ Ǩ [WX".q_[kt i~`6;ZKl]Xۤ!]m)XP`^E0ƿ3n,E_X'qKU|~v~N`i׺#8D5klA~R(KkY&[ִ#ڇڃ5p uߝoOKx2tUݔb뜒>9xXzW4YJX['e;3 ! K- z2ޜ]=چlL2hbLVIx<|I},43Uu\4x? s-**kX`EtǸ4[&Y7TlMi)7$RԁYH?BJ(\mBU6 ˁ7tX0{S$TH:3;cE >,E/GmadtG5g[?7җe> + +ũnPW;u wuk{szцPJxKT1K+~ RJCč? sYS&`@EPbU﷍3am Ey̦Sk8 C \tl(bo% B>Z81>dF"Ln#.}02RMX8zu7-ýٯYV\Y_/u!)s803Жm],5_0a*a yLQjR:էC;d5iPC@:]EsV %|1YY0PY^$=8MZҐոiNeo\xtIr ]R~%#c%SC E[(j/?qGnZJRfRhX[H>#ncNrc>*L2eƢtS`D2? hNpgܗ,_X/xGԉTsY OS-q|п .=.;:VsDmX88l!]WoEca-bGnSRH=]05rMiPQ@"MSs)<>Wh,Upκ;I/d-2hF92&de 3LG񸆋/##A9%`]طt+Ŧ 6B7g=/ڄfBk+!٦V@ 7gTOgo4cv' ,6bqH/ ]D8Ok>R GQS'A#[j9Dbi}aj4g?Πq4fjRvo?ʏY?.. ὿0Jc qfӅId/\,TH:(s"o4`(1֯${{}̬+NQN*T _RF,Q[^blf?*?LyhR6bDaM>afW&semć922 {!>xUfm+{˸i7"g m`r qoɤK~#_jORK2ٓk][S^O^u4|dT-]«sGM&_^yPԔ'xhYFZ!ni8̶f.+\LHM˥k'~աtc d<٦$ldz␻Q0 N3T-(QqpE ::I/Gŵ ^&icN"NCoݜO-:T?$޳__~sx hA(YI?w =Fž!5 ޛHIA ڡ`QpT?ND Gnڳi 0b+ )ØEhR&ey-")] !Ÿ$>WؼN-(񥞈WmͲskǨYVoZGqH%5Og, ˘H._}O-D*o " &wuK'".zC&6d7rIéM>~;$&$>]uĞW.}#^JWF;pv 7D˸)9CYA}y7#lH7q.ykxchO?Q%7mڞ %ԋz߶wfYv|x('2Cz/\:G8oeZ]m:5WFi)J ^^_)1U=WgE'll m76 Xt`Met7 _{Ȇ}EPU0Ҵ鿣a"1Pr!R)[G{q*SVB͕sĚuO4oeqW նCdzR-O{㏽d͠LP`SˉE2jó1/o/(R)Ѿ4=!uV]te8IO:Gӗ r{[%-+0 :95ZqS@t\9Ô%s5(>!¿mKt, ƕ߻9޻ lƈ9Tn3'wF{q;rܑkjwr\)\v&+cb}Wk|J)m܀s2/ IVLC,~EʍIp=V|){}\~[pV07ڟ[49MEvhʊ(ͨ/ZElP$As8l`42|`[e>&>}3=NO:5ԺP>~۾&VPKCN1⃪½ nuvola/64x64/apps/kmousetool.pngUT ^mABPQux }XgPS[=@@ JBPA$X."JBWDIЋIXT`TT"tDB)/79=f^{} ,0ز3@;R{uG<o"~j^;b#O9cC#[DED'}x Uj4f$'P\9qw=i`D(-ZM'h4+T/#R RҨ BC#"pƼzt%)Y!U5!ɗIipȧԾQFLٹڌZ+>R5- yzRS8ׯ8Ex[d0=Y<54IVJ̙/L_ d2ٶ^}%$kѐg<:]Nb0U'X*0ZnJ"7!XIN;Tz<=М[ǟHDįKGuU9_1$%z.3$j}+j| Ud iF$cȻ`p!@IUC`x·3P$Z 0ϛh ciN.Ev/u26-( -gԨS=uRgs{$|EΉԿ=u0’K^+1:;Y0hdܓ )7FUlBV4n?6V) wՆuwf:>AیCmQٯFaj $K<ا#91q ܄T&m ج2amM<0)7dZ7ˈuQ!q_I_uO6ym| M8dnāa\d-A6y8,^XI8u#ZSPxݭH0CΠ#q `H rǻAܿ=GM6J b[t/Ӽ־Hӵ3/IO75'WeBT{ OɂAJ@.n`#L;ăJ|4rXݜ>fy9AұKI`|$15 "p#<6ZǷr~ϜASXŘ `bώۗFLRc-8aGQ8"<ꧮ;9 P] Ϫ)JޛB+E$Dj-:^>k@3x~im'@/qklcR+P+^i5M*pGg.@iha+d|ݳzgq 4Qw!{!Gν#%E( KhQO~!gV[4jr]-Q\/3z5ޢ -Gd* y}KߎLV֯8qoa5T90IM{#Pfj0t1XjQ~̮xjN)[ W!7Z*|uAyK:RD+ s2tC(NL 0RC BýǢ©?!FDv&-u Rkz&hT תe>ȑxh =P!|C- Gqz̊`(4β( kZpگij)R {b )ʼaPqXem#4^uxדh = m:;]D?i¸Z0ͻ gk$~&W=*juE"Y#3M^w_zf[BE*7SȪM?TW}јu#+}r;5݈hzFt ltu=̈;y qⴒS4cmF4IYR''؆”YF MM )89 g)P;a$[N<):%}6NyJbztj:I!X L! ֖&yg{Owt9Zsӗ)OV89j9ymZC'edQshܺgl &X:=6)l&28&P;[\ b*c s75̅Ff>栳kF΢wԋf߁4hd't(*|zm=dE;T8ª)[8Lܝ Z6 -jykď)8t.[؁%5م?@}zIX^#6AY{+CP'N,+˩4))WIi܃.0sѥI&{] A EqMJqy 8=KՎmVw-@>)k?7 @^r7n v*Q2:ugKB/ oiS)8PkOm|}#A, ~ϧKz-+uP͉gsM Er?P7EP]m6tCdE[=AhaD`v3 An8-WJ\(0Zd 7|M9Jmkkϲ/%6\ZL| 7XYJ?OLȊBdQh2V$_ܯ53oi0J$XuG&亹ؐP cHWe3CɎng1C_ MD_3b:s`-rp:ϺDz`ŤyT)2B&nG+ON$ :WYM2nLtKq}HgRߵ?M@&j\_;\.Kup9ї~q?g!ocὩ>2VʠuO`ϧx(Ck䮪Y4GDw$Ȇ˖v|mzJ2&)9Ar; }hby) [r7=k@_ZZ( ȭq<*(V-pRx_!7-`?S=/@qny$݄ xM_O`\[/5J_?w9=!VbLFDT\6(.hDcb`kv9I ŸklLXgyhPt7VT%D>_/\Q*5Z{dXTߟ%Y󶻸S1{tZ cDw.|'I)UW[&|C!OD" LuPd|/,ЌIdd:n.jbj8]m` .w׼z>63e}_6}ڑ rI]/ЗܴUU?a-SFwwgKnj?Bq42.=5QgNss_qUi܉Op55aU'ůQE=ˠ;߃s!?##C>F⋯Q3B$x2R!\WNj6 &AMk= `vv4Ku]]ξA8#mAe| cO/zS<xeHq^͙(ؑa>g#TKz,c3B͛K 6VrOJ|9"Pd˗"tgP@|p12b)(2/U.Kwpn>s\}dʩ-aֆG;q0Bx!gMa5Z }$RS"|GKpP^ p%Я nGΓ*{MwN*uN?1сY];zp|B$3{ I) y*RUU:JsKzlK._K؀#Z q6'34ڵ?wdw{N_ﳥ4iY-9ټMvd}%=42"oguyVqe} v:"aʤ<kDPxg: p'2>.mgpHFEm1~&k$JpDK.QF]|#PKWsH1xnuvola/64x64/apps/kmplot.pngUT fA?PQux WTY$"EB$Q) ԨI*],+AEib AQQq&%$93̼7}or=]KcZ^[|bP??BC;ȓc=>#8qWBtbR(E cDDE,^[i "D0g#!̏$I'm#,J.L̟*u`_,ygYyIE摺\Q=bQS 31|{$9Դ3'| WXHaeV,G#^c P߇= Jz53?czm.[ 2 ~ }wN?EWcy#_%׹;չ2koBx-ϗ#-fH/p89F &.Z,^D.GbK9͇>ΩPILD= J\ )HѱcG IQ[]L(_p< 1]f0Qw'n&Ʒ\!e.t UK:C*Rh]MKl?xe!w~ipfFB-jk$zwheL֋{s`VsvڵOWcL'W;=ͪ`eG@EN~~gvJoea$XU|_mà FPq|Hz8W9΁Lz~DiZ[n'cQ&`Vg65ؒ.7 eQCqJQ`,J'/ Jw"(,G* ſ&͙a;nlۘc1AwBu}zSCfQ3}Ɏ8GE!|Y5ס B}L߭U5!# , 8E~OirW92|FG?Ymm G!9>a0x+>Xi+AyڮvI̬Q&;a'n<Wpdz'7=Lhߑ䞖'ߡU'g.aRPMI?J4uܒHK3Gm *J{JbJd8n&vV9_~QQsZ;[Q_DpAAP嘩mR5r Cn*ւL\̴a `.] ;qmDvlu$(U9;$ ~G(!iȕd<]G +Z-{;H`+'6wg&OhFPM2׳,̏=XypḦD7 kl'9EUhP:2]! |"45H;Ӓ+dVB:dֱXϊbm+b;|‡<~ tp s6Yk-`K 41 0Jcc֕ZHhAx (^gU^z|]SG(wm묡nnKڲ){Qp6:Quǚ! cNӷin Q:q$zK86.؆]UK0׷%yo[n µu͔0h~ȺL!fUl9NCdL>#:SI `8 3Pv1W !X41-vAOe>s'hS<@(}KT\ Zikz ֖C, ӒW̞+€Ob vZxm,L|Q jH66w ~z`^CC*Y"ׄFI|T=LRNV<Z+)#A$qNԶ1J< 'EE_&A|b !Y[Ы8U= _P;ɚ,h:,JE۷/>ňr4|B5ˍj dߎ|+.۽璛j[R7HRf.~^̖,#Umy} wƹ.(EXŮ.bUa{3DXmcBbUV=2̣Ml؜14a aD+_[$p\ܽ vVPܟz<-} h >yqIG. C౿cVD_>~o w%QF ma..H؀o."wfY6KH,qBb 5iO^]QPvi%zZKp .H_Y1mcE!j0Hd}˖hB5qPto L 0 !q))c='b@A&ڀ}P ԰HL/@Fw?a.MCmhK:Lxی`*,6u6q)Ֆ Z\ko6#$ҼGĝvOI&lyl"n$c^uF0BGJYq.6k|-r+P|͒" C< Mhw]`_Yviٶu`\Ϝ+ȁ4%TR31˙J!VBBn^=2Au* "j]CN XٛͮZwk?PKt91@J!nuvola/64x64/apps/knewsletter.pngUT gUA>PQux }YgT]@B:HI"X@|t!X%"HIBABTT@% E*  Hoқ|ooֺssg=sMIeI03%{ 0ʚ` c}N_s _9s*< v" kAd iuxH:&< d& ~I[J*^5x~i! tE6IQqMMOU2&rw,MY 4 oZ!% je,SK-c(% !!J#kzPN|~$Znj߹S!!N?pܛ,;g54tu5wv}kh|G,K7/t-r22#vxYe4ϐ#X(}g\w=!ɱb߿/NLıDҷIġQ?P@^,m^[dVQnn *Ɣ/+zA1 )IccSS*,UmccmYnyO0\PCܘCqpHe7Y'r4QRb'ή[%c࿷&U oˎl+)ݧG%%ۊKĴD-L.d8ݺ㚒ygWO;q@Z :qE*qfM]%l&z8EB";놴ݙ0zZd]D-E}He<of~&lĜ҇+KSi3fE8o~`<sh\U扌Wפ5EU[kpGM&Zgfi?U=>>n%i ,N-L`x.*ܕza"F7Jwo^o{G8.r.ۖdP7ޥ~PUfo#-{Aׂ͖7^H򸭖^ 7|:ow71.<%BT7Q'2 6a_F;޾L;o'ެ0U?UW[Z5ҷhPh(* t ,ͮnNJ@HfDMUNj'|r{~kc+ ц }dW8WT􋽁rx$K16n ]]Isyэ56Z!&_166a4 en+ēTpDK@c4ʧ X N.)_[orNm+F |%I h qҖ ~rH%Kgiϟ/jji}8*qr|eժ6"ku 44a}m9>}C+XN}1UZp:h~#"!\yv:dTTT8g qD kE&{*z}rQM GX.o܅ L .jru#@MqaZ4w1nhM@>hL,|A[ҨF(܄֋hXX`ZE\n z቏I5C%@ \OO N]S/^K&EHRj@Yӽ`*ب$Oq>Dm_@nQ>Fa>WN~ŕ+&LXEU$:Q4'OhOAs 4 &1 ]d$S S@q=M ufֿsPGȔNN-ARrӽ݊^G|Cǻ9?1x'!jqi=Y( ms#hl19)#@R`xl84AD!Ħ&-bh w E(vHRR.XC $"fNP_ *)p3?rq\ DJ:ʃс2E3Л33@7ԧhd4Aq}œu4O%^W x(Ǐ|piᑸ:{)k)n4~ p_&7%TS_kC@u|Z#䩛v`Z3Q85Mip6_;!` HgL L!ISs2'pX9^{0AO[5+ CzrٸnME[E[@:>[ټ!{i&n$HTL 6&1'$4Zfl8d]}":r?bƐ=T7e#aPqF%+ p 3i}Gu$졁m;.JT?#y*Cu  ?rclS(Uv`5$VK0[#c}FM NF7\Z%i;#d3zviǏ9zoHdiq]¦Q=[Ip0! B\0bV9HPt?V=]PEN5rNm1+br)KOt+{#!「nSkǜ8^m ?1MA[A38bZ[(8xy4PS\*{;1QRJ8ɽFCap Q-}BLK5efQHyl>^¼@^S@ UA^}B TP*9ңn hh=U`AJ_0`W`T̂YHэ+hp 8]B>Y*LU ?F_JX ԑqqdui6ELCIJ:xM(@bU߆qI_Y/## gCnPs(NR 2U ܳ}(W$iM!8?JN8uq:RGvy$IorY;U. R}VFa9zNЧ@Ot `ʄ+FG)Tq'M\~(I 3VEOαU|Y`zI_dt=Dڄ@9Pux_BH?ᄺk-'n}eC]u&p~Ց7/wY?O~'c=rR*O5onX\tdc6>M # /g^'R\gy~bb֐K-ٻJi9gƃaqG%?l~S-z)ٗRt=W|Q:'Y^-E@h&eO}' }LIU,&g.b1 )tt omK VrJp. &V~ژP.S% ܃<^fX z;mts~|Z)РLdέV>VM-g[0OP%}0xU&c\OP)c Y:WRÛ6TRkQ<ɤj) tfho]uۧäX2i2ZJ4+!gztjCSXo}|;"Y_)Ǐ.<e{Vv\WJ cz.h CEͨ*U̯[Fq1-;q9'\xQ"C$TQ-/YI\=rKYtJ.1B>Xy6 QXHrhuЇ a+RUŨsI'Я` Pٙ*pSn !?<+ժs[~ОޓR# <"JbLfU(CB 4v{)EC|+*>ɜSࡋ9 PѤ%dJË49L|JP? I}n!Ľ*$N$:QQöIdc.[t pQ!qC]lwJLyތG6IA S}|Eʱs'֖>^\?;0MaCR%I+!ڄpKMxbsU2<{ &U<ƅC5/H,cEDQBa.)R&\?Zr\@x dsv:L{yumyWV*𢣮(b!0q1f% ɞRqZ_%}4ύ}AWT\BsbI1Vbio2~WQsx}"\ tV@4#h_,'Anu#OGOuoՕ?xUE#Yo}FIJm)[5o_('|]"/a4ӽ,ҩ 7urr-JJ.)p 4e>|nUh ro~{ =[/0e)i54!zoujbWꞰ'y=#Y +c{:ԛFV^G!?R w~v\[˖,kZYʍiELn2)LIcҕɻN'99]שּׂZƸ_ĥ,&5Ш8,@:^xIz/(|@k~v^^3qyy[x'(鄓X&P S1hPhg|S+9fsӍpu+ WRy?(:%LEE '<ؓ@bls_k8&K8Sz;d=*m'Yſޖ|$r&ڋ(fGİn,j$ƑjӏkCxN9%_s5%ðiE:ol{rdhN?|(m~ {t^¨Vǀt(Dut_2 `_8kjvӔOS71u΋Zxl::2eBx~vpRdJ>Ɓe`N;%] ?p\K݊@W.tRǀw^ZPKt91 Ɏ!nuvola/64x64/apps/knewsticker.pngUT gUA@PQux mXgTml*!$)QRFSzUlJTD> D?T*(-4EA)|ޑr{ϻ̾gμ<3ϛ²+g> ʏy E&?g}aOEzLӞ>T~>>gZ|L@6z/1E@4;`{2 )@f߀^Z5`{{+:/kRdtGR++ܯfD]dEKӉnwE ~4cpLļIJ C@@9&݅ܺUaÆ}OU~0RHq95)p:|/ARCC%5u\iu5jꍔ{Q%JTCyē[;MObgF4bl{q&ɿAz[IW+1-$d yĀEZFFNP;Pba]Ly#?L M ssikij6R_QEmmH^@M|"bA%`eeΎHaT,]B{W8y"wE9 |OooWo}v#vt;h**&@t=52O旮GGE. Q[@;˜D)es;:!? E׮ @\ܬS6.gO!'''Wknn\YL$GO*Ɵi07fP?G>IwSp"E+,C 482DR+lxPCLlJRbD53%jZϞ]|t7}pTSzS䔇bKOT3$Xhiko3MXeayy`rUàh%3$$KwJqrrrmt ,܈"-TuCx/F!6?У 'O22ٶo_MJj rF4i[Y!Mͪ7NM|r}c\rYWDD)]ůw++\bH4utݚ7rꎎ1KfI9l6aSjЅ~njRSSG6 ,z?PIIUSy dJ@PmU !_s@/;;ddd0!ρ< K+D8H׋JJ!߈-$Y2BO'+/7cvƖItEF$^طa4: $%Xzrm}6ZPPpŌ&flo߾Ί(I3D"ךi倸yE$ʀ--*+(SS(j+GpDxm\*'[Wd3;vU%"<yΨ2Җm⵺?h CLG -a,u^~5#ncjxa! o Yܯ^g(Hԉ>>pp{MYV~v}5[}4tuYh'X^V- ޿Gl-Fm ~@4 넆k]ѐ-*3Z5Pա<[p?v#O*,U49XnрVf$s-^Nbb`TMq:KP=Q@A ‹KtL]Av+sY_{i|&{;UPݪMO[-S5IJ+Ȕ51dcdiI<+ϒB5f<{f{MVvlG8p Z뿩fTK.$G%*M ssscjA% ?8oA떧oEN$&`(< x(;6ivr)n uA,|X?ٹTЉ{ L_;ySyt6SMv t*J> Ȅ!7`dM6ұAXpFDZ+m ʿtӕV65񫉚XCh7{R2&nဢ4=H?39 H=ۥe4vsØW<@-e~D9Wb|Id\ ): S†9L\ h߹󬼲,KxQx}RۍϕK;.^T{:iIZ#i BO1: *0hA} zDRvkMANH_90Tb,L(<>ٍ1Ovݳ+G_r'eˤØOSfP昜IG6"!pyK^_\joĞ?Vr—JI?) 2ؼ˓29[jƕ\p$^e%?<1xgE)c& ed2y{30Q:>F Rc/SL{x(,3k)736Pt]tDPnò,qIox+sek-EIER.0+RJRkKyрM/gͲs=bk F6O7.,97XH>Fux~1Hܝ;ӷt.vW+3ԳO+ZOw b*Q_ ^ũeXrL.U0yҬjT N7 ;TV iGD > r笘EnYiQhhHT+_Mtzd\I?;69w΂춛Ƅ0qk\6tS{[qA4xCgjFYJ0x$))Lm[&".rNTD$y|, TDN@u\<&" ֡\/zO*]M '6(Q 0~E^ep ousA^Hx6fOMMm=n8W9KB3\ ٦en$ ̰Y&Gtaa4aZ\w $ɼAƇZXEX, 6a|Z> 5-9 5^ ''*`qNC q$1[op]F0Z)2F݉%hzX>Ӄ!_{.,〰"sl"X HfD$rYD'ʡ0 @H֖PxQӄ5=K+W`XY,[6aVO=lẺ˜}^B{#\E4Y\6́W:%l!+ oNS-VVLe5@2ҨN%f(4BiBpإim&lAzG&9 )"j9>J?١U @S/jvT.3%\*|@") ^*n H!Į,J /,_$j}vD-5I鯘}Bne^M.KN7'z0xVe%4F&Yo偬4՝+2JX̠:8frv{V@?ݡPIĪn=m}ddKJ}^i˩Ap^3=ETs@"c|q(-w=y7<300Š[r9 c1-zu䔩o0GQ'nU65%_׹9#(^;#Pe0+Jըq0,lzނ[r=!󵽽Gy$9˩U5V'|z9l tj݄,qe@fx? o ~"bי3z!3c}FeL Zek^{P)piYGcn`456ֲ%1/´) "c/>lMy Р&AXX+#x<-x\+Upwh,T40ϪT)&%"_>PKZsH1anuvola/64x64/apps/knode.pngUT fAAPQux mXy<׿f̘͌}bdiH=%l%ubdkQ!%,B*BJxjKkc)*ْP%!e޿s\:Y3w;XM&?"*))trLLRR|H|!!y&{?:hcfK,=U|; Hˋsbqw%%B2C +1QcaQ؈5F>WƍZ0YVtnH$aА]'k"}2Y- T  TKTȷJíI|+OMv`**(32Jc-ɿr$O8akg]iPOssQAfhH6"易[wi0Ll\Cڨ$jO $iP`fV0$rFrt?1`,H|y^vKg"X;v\>psu+o £(LIӵm+㗰o:_SS_=zLPp驯 T}uJƋ=P-BXX\cdT8??3/R߱Av~h# g[aOrPc~7ȏ% yp+TNH4fNXZ(ݫwUȉ@*'ݻjeeeb{^;sGi5B8CZ1YBkָ/͏|1Fp(* \9NHcnNxЯ47_VJ>:/ ֭[CI&mٲ?B"Ŷ>:YtR/3r(:GMRV(de6,-D}!Pw>EPȵ־Ĝn⽵CCHH`955i00Ue%A>cC:[R]H޷2~z↸mY2@wY"};D6D#e~NK%Ԥ٧DIkiO3pDnėNՖ_W$6< gHJ1SI, 6b z#~{\?g~-lYZ K5@8:A=:QkOd )oLB>9ŧ,ΝJ"j[ӳo#'u>"0 j:Wx $\/>VMZ @2nMd:4) Zjo#~D@V$%6%SiM.2[?8_ЀȀ Bq ( Ô`\]ݨY Jjy2 6q=ęJdph!؍K]*ǕW\Cc` a"(ڹе1U0m-(,].ra(\?PFHRQA^ȁM2闛JFɵhМ*emp_wuթaw[S/yQ:]oR_jcBJKHe*y>b桔OP0 љ\ %xfnf8&Y,$Z/sI ľ5xdÇ&4^{;cGv=]]p낛p*~?VuWQGÓ7_.2!\Ӂ=6No oǬ72]]we77EӐ$bЮ@iI 1i(­4]ų )cXVա!G3~[b@գ|Xr6sܷD PJJJlr[dj@O"aTZ #&z{;Rztte7/q3ǭ[;> j*6#XP_Jm"y;pN ШvsnI6 "~vbίdowDu9w9:)0T*`,[lXf Wklt[IJ]cA M옝5r=jW!v'C"S:y!c0Jkg}_'s_5lbG>G{ǘ$TTTiA뮵P0Չys &2"g=MG2h:ᰉ%y>Жzx1[ɛX<@>]@Z=mJ)X:hn]h7 0?#i,DmP`5| KzZ,j <>@A>>>e҂A.wsIpId-F>ڶmStG4":wC̈́]-JG!kdisid&>!DZ^(*B7ۧND?1s'cbMl$JUlLP<JTҷ]0/nE.ڢa~+N0A 8@kFZ o/!aXΒE{X2p?m!HȞIè6T7h;]} ]8BVnkf5ƢB,I2ΑR{d A1Rux@ !H(QLv +=ZvH-@%ȥ@CKKt]*k P9 6fU +yyA3dZ`J Z џ7:չ]wBUaE1#N~,)P> CZrA߀K\ N:z :=fr; nD,G9w=>>;0&QU bꭿ$m_`l0K4ƧOuΉ\YZEYR=(Y`̩ςz87j389%vLn1v38Cx\ǀڠ E`uG_cqbn\>gWu|bhlZˇjaj}-R 3*Dž+Nd 8x?eu.WeW$'= sj5]>/Dؒr{AAkD0.FDͷ6:^31`QZ C[%T 1wznE7LԎ98ߺ6Z(dJ84t|fbϱGǼ6GF4+k: PHl rRVhJ˳ƍD⠜bz"9s>h]}yħ瘩U\%\7n]\Z9WvF/k"r y@GٲY\KڤYLB.TbooرWo8ж g~(q+ݕ'*^ݛ0gYqIOP S̔cvaH$B.Ha&̨vnXW*muT>;3mw2/ϭ^P%͵ItܳB$U(xeWR:ieHE> Nèfr1^x8fZU7LW_n"e-4`6auV}z^lP>*>X}PuN*? .1Ŝ櫏8 sas yr_^{smY|qe`5l"LĤM\{LwVԭDY)\z1ɷN/~1?5O]ƥi0E|*%G用?ǺOꪎ3dEЧO:o[ NVxk9 {3Z} vNMMk-/ZL-jW7.vYBӨާf;2.zpB?:N$'WW?hjj46YЁG6`׼.{._n4}`V|g{ lAJ5ch#jӤFgM|҇ o *;4PyIe{\S+M?B|/Ȧe5xTZ|GF` H'%XV/g۶Zv5͉&1=!Z4YRO@;v?d󭝵{Pt -o3H#lhmZn Ag7a]qԕ?Oy-5:a0?kFa¶}"7 g'{ZgW[d}VqMzWF uA&UXVt$kڧ͘MMOp~Mv s m"U{cvF)D޿wB@9]m?I*?]jAy7ߐg-ǣdJd~bR26rY3k] Udc)@DZk2t5|g sQef.:KL!q&ʏD^Jay1 [U/ 7 ][$28ɅarEtr53;!]8 У!Dݾy.J%3S,eJVh=)3vN˫Ⱦoa!bRWI&?{pUd*$@`}:hل݇cccycE{|rO:]0K&lx!-'F@0}yEw!;XVFhrnŶӧÀP&B(貤KDGRqg¯((IjpN: 2 ӝ+/@%B^j M=r(5\ <9|1hhwO}6vr8PpȎxmhu-c6 dAOç &.M!(% ,2UR907.+:9ث -rs#S˻+ӕs${ڝ] HeX `葛aJ@mؙrrayiڦ_ROHy՚EYKN woTnF+]]>#AZG?p!9*L]Қ*\pN}2{f jO:E}dաA'aMαk+q=#w)`bӂa1G *.LU GRB㠖pRUF3+yVF]bRE Abc[4ҔjJ1s*HbbI2ZCjzZ#"hzݴZvDac[*$T#ǀKlO93` pǹTmHFez6Y*(`m9t~@*WLϊWH w_ec"ѐ05 :(7 \QM>j-jvhIMtwb6jHj:u[!T3I,V[ †-`Rκ#J/Ng&!(wGvzYh쇼x&vD9cme!9)zL &6Xx2-Jy"T)mXITwJNjp!ۻ;6v[`dɘ̬'Ko7PyƳJ%`BuJ,*95$S.G?%G7f prOI4w=/pluXNThQԆl&;Et_pc`Ѵb1)H+fr"BT0HJ\YAEvg.hwj6Sy>r2Ve?&@`V<,O)2RrMev=n!vȌt"\`{:na*=Oqx!:Oѧf73KXw E=l4f+)9ṗ]^ 10tC+GvUav|>:^ sHcZvg3䲯otbY-@r"܍3j@xܭ603E\: c54Z|wm0C{F]+[rh Tn@I`c^ Wo4,anYLQxpyjtѴ2BDA7"hͳKW\wHE8N,lH%[t|3Hg9^(^Dy B ϪHC]ZAN0)X ̹;|hc7.eWͽ j  Ira脫2z?K$*\`'WR5ƩpsΙIz^0< |L*;N^rTu&:ԣ{*7݉P9`#S!8s9Sg8.ap2]Wi,"!EO(<>xŪ`"TVY,ĆQبv5J͛ o,^O5S _Yd,f>jB<?KН,JٖOP>?d`ss4R u= PVm=9۪8MA}Cj$q3g7'McW| itx\z]쩽/8Ư@؏v⎼ˇv/,' Rm#6fxfH17n-B80:%!T 3FTO.)\GUC6TҩJbj}`n2;ZPO 4x I jn[@s]Q\2߶ RT7:uDR3m!Դ*b[e)4w6D"ܻy5wtș+\·'0C!j.sOQՓ ̪C&?9N@A]Hӵ:rY ev7V L,؎̘4*+raw3Tmjʅ,V묂,) (xd{lU,ݯ)A]~ZaLQR;G\TvބHXAŶ ބ,ox AYNĐ R*jRϡ~B9+f;-)sQ=Wbw5jN5@bO-Yjak :ĉbF?J6^xbDT^eW~=6ɧ>ڌs󐚿/>{Yᄗ[HpTR!9`F{9Ew9w3@Y;$w<q@ljݨ˼BHpM#xr#(@ *@4+FlnL0ҳ|N,^_ Vq& ػD~IL&]\8CoD7R_JV4(^aW(!}5)EgOQRgנ\957R nd AA9 -jM)<e* j6{JOI[Q?!ܷjD r+;v΃ù  BʤWXWDP0o 9 0Lw|%nV gEݟ9E[X9p9|mc`؍ ~G T¬DzG}T#B}ڧIS̊쎸AԵyۥވvdI.'>Q2Y9Ѽ2qQ'P7<W8$pOјKfn/ DTc_5H:iA| ҙ&C(kQf}{p "Fy~B9>c4 7Yu8jI9q>.~$lHz,U);Jb%SNY+,ռ!h( $Nvo[D^Y}8J54%qvhY4p}p}rrՒp*Hi[eA/dkaE\(ߖVɪZj + =豇ҵtַA"aV2V'[Dfo^!UPo)vaHX_$Wu(;>鷋[uwP<[ݰ Ū\ d,$ɰb^ҵ$ծg9.t)*0O$Nّp<I~Sv|fe.1Yj(QFp|پo__~TeÄ w"om72>/M[E&&Rr KD;1{ \aT߿@޷lmW$[avL"doP|K1[;'̨tQFGo+;n. Ejc;dg,p}' .wu{pBo kA+`SG=U/ەfk]-O~XʃpBek=sJ4m+SU[RXd: #Ch(%Gn&gj$u3V{ nO !ת||"j;5",9\.&V-?j kNqp^Kwe"ʦԄzI jn(6|f1lnEe,t@Df2!qI)s+*[J͌,oqi+*/X7⼒ڱhgVJ3^|zFı*"%gPy(ޚZڝ;*A<闻.G {(@=vM c`}S# T\MSm#V^De daN9k=ڷpQ7.f,o-> 'վ-c ,C.J>l(v0tmY) Ǡ,,ng| qWPj<uVGj#N7d7RGhR?oo&!.`-@-zI `n ru\^Z `;"-9L!k18s'˘Ӈʨ+f~^,K|^1Pw}k/8ȪkE!j]ݱ}#&9:An#tkTPl,]jZK@2Xј9؁;Yayw@4kCnG,ۊ%wQ⏏PKӳ)w{ya:VD:zF&kd)V{$X)vC:?~@|lN\@W^0m2/7}Bm1qO+=ߙ`+għu\qXEOkGN|R<-yq*]>-q3aɼ:9 v1FG}<)N@}bP*~4-l1O 簷w2A}_9(}PKq|F- fMZN+w%3160g~~@͞qƞ-|h =zߔzQeSZOژj${ʔ7cKQm\ߘ_v/%V;lW+P'i'Ӌt-ҙ.ԇC})8;3؄֢,)2KRPkhܤuSKڀuK#y7 - 4<%9u=?>{kBU!G*K;˞q^+)"AgujHU :3ּGdD)2RGzƼOi5Px}Y(qVyo)qW \iy]io#YZAbiUboe?4<3kbMR6f~?KXp֙q&樠$_gųLD,8;L:*s iXi~ԹQ_%#uD4NV+.mNj*QG]q}zMHE@]ї3veN򣈃 7H+-´x lɸӪaL~h ID5$}e9F9pL>ՖN[槑 ~HD|h_ƴjb7{x*> 6B P&XF:=@ YUj(y2!Cٝ- k}L ^w(yEUjGKWY;B,9 }& >a~Wq}Qd'u%UP̳Mc1ݧVt܅vyDŽĶ?>5BfZYw RIv3ͪynm3N_ b^yLDd? <י,,iE>~+i+v UG8yM|WR:@ _HE]dg ՛+^1POo2{q8=)$XZ-Ann+Zf!*3Qdrz]=&sdÜ0nKSce;m(Ȇ&@><>*ٽLFςt,Ʀ-l\ 1 @D(KHiUGv 5zimn绖QWHR*{\ +eywD,t@2wWe.ͫ V䂩g5x9"O6)=(^?B_IqARqv*l/PnT/Ed=@!i۞8@D&5Gm@ŕ/VEXiBXyg^,Vnq0vFoXy.}s7Cpi߇^RK:}(0k@=˥Sz:{&=)Nb8Fٷ@8Y%u_܃͕ҏ|?.6w/sY:9窶(),w݇+#Ke§L'sgf 7k!$Q Y=愢S/eg?e۾M˫~ˎ85XW䇿A"$%Ofo˝ JjP}Yd!昹.4 /ШWJ_x?BfGڡ'Q1]gvtjd,#c'&M&3j)H(ncG" +u-M(Cc=Ehy )Z(إ'Zbj P3k%iNMrFF~#AV#98p']oԨo5e y?ckHe,o|br=4/РB?New5|$%"tS[l?t7yW4\/+x X[o3:m^/Ŧn^yZRNj{~3fVE x._ Cf!ב,482Zg1 uĄ&%V Nv"YB$'24pnuPhnyP~mYEeQ^s2Z;_RjO>}r9y.ڛV?&ݜOls?nANbQgEKtQFV6;Ľ !(voZ6\Lm4xCDxؚ`k";< ?ϻ["f-ΓJ1әlgxM/YZ`L~is3}@Sڤu k%9c*qWYP]aHȮ lǭN'f첱K&z[\NeDo R3cljd9s# 7gt*qޢ5j%c@eS?>1Ͱ eߕD) @=^?3SPQ]bkM<ߣ꺱$;6#,ň |*o|?7(wlXHNWTI/D"WŽx"\cCs bh $1a$ ]'F]Yr™ٮr⛬{\,j6 Mn,ݵ~ =;εˬqynE50 ,&eҊ<ֺMYcPzKgeW+y#;&^;E$N?F6vo"Tk^d fBq>8o\U͒PXQ>}8; hDAQ4urKNU2#g^ߜ Vs~L\Y00<߾y#/O^U0fY}W/ɹ{!_w/ k6#W"'@+*TɿǺS3 #+uj쪲tkyh6Q6mEE˺YHc4/ӕP J(یA{W`[xHCm$ ef{d\9j꫼2+kf%g\sUr⥕{g$ZqL^HE9j1qDXEM5$}]3/Ve2sLP6?ݜ+p@QzZ9\X)45дSFS?.PLd~#(3F t+hx5 zF2:1j1dTla톳8JIq'&ߟWU< u_PX4'pL~Sgv 70e8705M൵Pv_,8)v2RtU(7|ⓂDEam_h2`+5̸`0eR%:52;AȕtκZ.. Q8~ua_-e_eNj=Ƞclq]ZFFF&&b9)}D(k(VQD:1 Nzf-NWQ+T&b 0_>44U Z%;*YTߙE3f?< ^dw7;r p`ɂ9vmHI?k Y_AzM͈k$Z {c7oNXN;<ޅRܚ0h$duRaQ*CR>Xe"_+/?M+B߻({)[#ajI?Rp_0Nx&zC;EMY`U=vR+6]ybcct}mo8\+˽Leg4P%:&rKp˫Ӹ 2pz55fr"$9:R^ uD,Hi1e}'bpmKð?}622~58[;̜nwR%i&'Tm:-Uh-V3|o<܎~vw9'qS슺:93]H36Ta 6$a3Jr;<ƚ_?7Ja¿8c3DuDЕo@ V7Px뭧]q=9dׇaof?N}61hCͮl Il6XXYe̓ȮH@YoKFl.8V̀&m`z+ܐ#[ZUr&,J)."%yqko.,=گɡ*X UecߋEPg; ?|[UTz8H+Ċ/ D,걦 }# 4&T\;zOaTr,Qǩ#w ]~D>{1LacSa5]^Dw_Z.t2R!S'x.^/; )F|gAhm-4-<U)b=ϣJff=w6u6AǷ]fRYJw"?Mu}#%atyDUd*?cJX|K5*l-mI`L)X9^s*~Nռ*+KS5b@+kO2c7=f;ʦA С(F.(Q&oW='!Qumc4!c[MtXhI%2?>Q&N?>a[H Q.X@֦’g*?{.7D*rx2f]HBȑS`mutbNxks/,Cҋr#d⥟/AQ QO$vF gGcj aARԘCJrpnYJjs T1"]*tҁ?{hJq_D!uM*=7lDġD. xf_[-9;KBOvIxv%I,GfW|4s'Oo[~mdFpSDf[[k??뙖ĂȐ8=_8jVjDO]<Ļ~koKΨ+gԇ.`w14"?zS dɄ .PɁdWXӫ)r.<~fWJ6 1N}rYqP([I:thE!ekGOzCVa$|y(FmN9zerVlJ,yuȵV",pq!f SZ0FVeWh?UQ4(ES[׫jXOs}T?}; m]̔D}y OpaN:[\궻>I rk ,=l_=zR:kTGiY# 8N/!+A:bq{'>uNn~>hcFN"?|%<. T:+Jv!M ^l`? ^iV8‰(EI\aM/̠ (ЌLra_: #OҪA (! g0'cKx>ٕTg*q:2*~9~'^(Kn3A]LY>{ G6, nJPdEjC)xuGD@AI0S!a@ 'Rmʺyg~,j_%z|;3^h˖?}c{Gy}ddZ>hW[NKxQ4XDž,J?jf(:.ҷZǡctFxa <:l 9"`LKaHE^2WzƗu9{2Y8Q]&C3ieٔ?tl B +@YYZͪ wEipKuu9V$# фـ[b/MS!%|u[*;E=XW,r`|dO[TI ?tѤ#kP͂KԧߡUDX-uEfV9Fy%i/p|\ښ89Uxz=ޖmSh*#ex!HucU"GP82DonVY#q"dHK%*eY2[-0 /,$(^T~Rs$ ic8CڐNt_4[)n$w(3g,%K'2. --;L0Л$=N%`Ǐ-On>m`=f.#ŋtR):QާەDsW(Nܓ1,DEĦQwҋ/5;9Ўf#m]Ozzc39k@Z֪؎?ڈ#DV7oa BN/r-+Ĝ#VT8*࠿BF0'/I!(uDڻLfQ9Vr=I3XzujZw-;4 (>^ɵJcåCIS(ybs*pLZ> rs *k]%nD MM;9DYti 7"?Ncx6$M}S # .YkPw^$;MDQQym*(P0\aD{*ʪ=: @t *avȌ{_=('n-ٷڳjDZ Zp/nCi,^@.p^r ,?]\8RU>mw?rf?PKG N1tcx!nuvola/64x64/apps/kolourpaint.pngUT mAAPQux  4T,X%[3-1f3BMXC 30M(K}U*EZH23T0$%1999Ϲ缟דIS}:^ە;KTUnʛTR~Nn?xVt=F:ʊ z^yF˃3`D 'FсL)/"~8xz )6$/RTI߁\5X_ #OAʴuM(t:GH$SA- E*ҷ_S?ZVuRpӜ˕+'+)퍑X e:M;bZy9bmm ,_N {[}}Eս{3Z`PUjSݣn)c;4߸k| Wo`u+"0$2xh5ФDu?ʮ;rF_z>G:WSUSG)ĉT0՚&GsO? !ee ZF8u 3zm"/Agp åy]) 8K{c%'ʚƋܴ4ӓmn<2έاy#Y~_ZhS7?KtBL|eq+}ٖJI(JrL*]3b]_+m] +EC}ȟ,O#3a, ?=Rt75g'*:~[)rt0'Rrp:z,`L!S ndB!r-ͼ?ku\URˁ؍ǩarWȻ+"ji5j=zzk̮We@l*U,1^>2SGexoSžVʪ8zb$Q-a29?ǓИs$^5VOɫhѺ4B;?3e#]׾v͘@aun#_VZ(8QDmlxҢa:=j3,ոhyf뽅mH?p?8d6)+4֟n'C%IaZQAߵfh QS#.~} Ӥ di~!B82ޟ}esg-L"DVw4`5!L{eI? K0:؂bE4ioBjAT h>[W Q_f6ҁ_R8'}?sP\V%b$$=m}z.x-A,9\ECaxQ% xd)gLZfԗL;tEdFgA"7KkE4eŸM7!v/6 XI!@J^>9O*1cx-1EH^Mx}3G6|׵blK#zKbQ8$K&d ᒧOB!lj^ ,^PЫdWE+MYN6+gc-_;sqy'QS M~>i˰{DOBFcI*tL }'McU;|j?czɧ@; BV+4 q}Ny, :KUcζxW02oH_t| (CCI-%a`UOU.Lڄ}:r}+Ȃ ijmԪfRL,GߘG,76KFBQB#cv2ac@wbO_َV-"8fzU-Ix.ӥuR;v o 5!!pkBwJU+brp2:5pn-:PǥMuVekbC*f0Gc@FT";ToocBk~5pҰxl-\ 'D*t`#<_5"4Fp7S{r:HmjGW-sC87y\@ධxWxl77mb 9˜q|\FQO-F as_pq__"%iaZiB2yءrOQ0oy 9~XFK DuAΧ)p!nhsZrpH<>?\]l-9G>;zgd1h-Ju;F7WD,-bQ% #daUsorD䜸?qNfJ2%}_c8jb0ocTJ Ǝ 3W1-]PӲ]OiǕbvs]<0no &P+o@v^>*_Uh?y{!(_ >5.oJL_W*2>m"DzLx..T&Jwۊ]n]Yfj쓉_DYu#8ZlF46k('Dm{V"܋b WSv6\4Ftm_S12m& ;fILPyQoT0cwV:9fl(6Q&ح4Kx34۷:[F_jɯ7Bk W&VJJQ=֜Tw$)vnWAٚ3wK"Y?"$$X]X]+ &E̞X1UզP|4%eH!ɔÑr0KkkEB 5D 粏qT=&Xׁ9s=ɿGiLYYkO22>0.n^vHǍHh¯ALن;DH S:D왳<#^,Av Tx7]q3,].Mgx`JbSsuN*QyDw/wJtTztavΚcfÙzw2d!yv%\GS yaIS赪f۰Q7?K+̽,q~YSANے2ᎌpޔx=~ݶгta^.@#*}O]bŒ=ëpJv!NMe|.ſt6պc<[> Z!-P# 2fh?+GB  'PxW{="^@@^'Boo3N@q-}lڡҸuYL`Ui {nSNizfmhY2 OϡK2 }n5};>Wwr^[ꮳJ0F: s4r5 lϕ"r?*VN=U"Hib9yaU!=R57i7J%\ )%hu^L{cMuƧwy  qvy~ i.>+*0Fp 1E8kk-H~`Kήq!W%<J>˵|6@//j.i nnj{3RC'-)u<Dff]/eAղ8QkJ_Xk/%&*y,Ϧ ̖Cs/ č~q>NQV@^^Fwe,Dž˦=Rxǂ\ڙi"π#s<8P:J}Np3zo-1zg{7*7Nֵ@Ǔ m["l=dِ5ag~aDwxrؖC(9&/΅=Ƨj:t*Ɂf)/0Ua+ۙ礮C_ h [3PKt91da} -nuvola/64x64/apps/konqsidebar_mediaplayer.pngUT gUAAPQux 5Wy8T>3c0cA!T2Dl5~YgODʮ(ʖ”0Y2RD ;ws?I!+& '2B<y95 !4~j= YvDf Ϡ ;:Ӽ1Eb1)(8 xm]lRQQDb?nB*<,40&u7GL}sڲ>Q___H|$>Cp1 &'liVV "*kBl>L@N %'`Քz@a6::: syiLн%keeٹ9ӿm(f7ltu?R)={-pԴ-}NQ:NV"fx}>:-`yiƨMaR`` IZSumi;~f15J'`Ndd{[ ss9II B xeEr8/ &Zi\JHI7GFFnѐdC*AaK( nɴ+((wG[LJ?,ZQl{}כ8t}J%5qhm5E '?YC>jRd۰95|dxyVqMN- 9Yج֭α6BH? 骐*L;QB}mkld@*?*k&|k\~X"qQ}{n_5ȍFwaӨ(qsOu{{qKJŞ\ތ<}}m+QØ*b?I$Br?szېHWF4]PfN XYI~ FiS5Z8kzpE! rs?^7VW}8>ut{LK"*l4Z{^VF!∜Oz- _cW35[ҟ֬W\j:^h Sr]/Yr_m'jr>s zSDDtc$͎ʰ^)?qMPy]bM4[J`Gܤ΂V"4$@ QVUZpj< !H=G moB`8sƶ}xَ-UḈT~{c8Vy GK6(;>%0x?n[KSc TY&<9x*9!eҷ!4i"U:5CȆ WH'.nF&OCȶ0 IøDQsLPک\&\bI) O#.NĿÀVg;Z B 2xT\("ODX@$ggKlme~ yB)Hȅ^.c6JPliu&!,EOAbJsjzVr:o:KosAe=m& ,:~VBlişʥ!„? jG8W9'PKGL1_{e#u$nuvola/64x64/apps/konqueror.pngUT 6lA?PQux XgTSKIHBQRQS?tbh;*JQ.>P) Ejwך5}\ڽMSH(W*F9>ѭ\TB\w@nz?=얃g \HO r]E)t@T"Ÿ_[==Ux|tz]фo Wq?F*Sb"ˤj.=45HT?w՞<>Y5-D\wݪo 쿧=L_(Aȍtзl)8Z" Ӳe,\1GEЃmQ%owbZG,c_LjVצ2o ;cSk{&M A- qFtŲDvaʛa܇8OD n܅: k **c=#`?s iMf_=ϟ۾?mQ=Y702i~N;)O*3SSbu2x0œiiMĮ~\|ڗH҉Z/=&ݭ2tÏ JG^ʦ,M0L9|5:巹סt# 00[䧸YFs>I;{Ⱦ fbynXCUǩ1w\=ֱ &{vD3P2j"yu|zw?7"ViDYɘ\Smksߋ"Rr[o( H(Z >C_f]J.wzYƓN/sR* bVyF$YBS-to13O=G?U +˧^HQĿ6y'o{1(V9UQq\޴ ږ; $b-4V֒lMoK̥-y+^r"Рf mr+Hkz@uF2f]Uj\Ao _X$,$fxZgfKOYm,H\Qfh؋':V'[<2o.p\:oiv/@БKOVKzu#!CF'fV4uW70=5H U3LxɥϢ]CKFBNR/G͎=ZF_I>2fnU83 C9I /dH tIyNe?R ?m2)iկ, *I;]9D 2(j/c͚/x$ ,1f=FTه׭5,P'UϰJ^T7 mwS-hA 9?jaJଣa:uY1|Y$1kf,d |g]gFvpH9{ʤ;BDElcmZh1 bcC>?Z)t2eȣTVI55M_wvy\ \,Zzz=mɓjּYhޥ 2)-XԲ<|7׎H柉a2jn FKՖiR\w1*8jٟEo%)9)6kY~}%8~~,?%~=*R %5a2 xKsH;Pajh,،fxx\VEh.#.[\*|bn-f  fOo /~Ɔ YGRlWc[Ou  8J#^ee1 tZB V=C!L&Tr~$.ԋƬ5v=4縥[Bpx]sc^to刽 ({{{SLr@Uk#OYtye:ڪz#0 ;& ;6am$ZG_>`ty, u⿅19;3#8To]ހ^A5'Os5a&9b\".3[wv5J?=yj삛&Bw̏t%戮#=q+Lo [+Sy lU\仢֌C(X/*>mEB]B&l%Vw} VPLʓL/P9mNWd!sM #:ϱj4 'A=F2!Ծ,_j kog[11~~.&&ۂ\$u]dtv$ نZ *û P²>a oTf;Xk*X-Whv$9tkS Gכ4B]~]wg+?4JZJRp2N"џٹ&W;,Wq^:RQ.4O=)&+"ӔW+y9OjIn1_(R,.]'$ﺠ^Mԝ5 `.UBaFTEU+^ \̈́xlGW]ok7_O(lvԎhCԴƥI߫.M2S|T-[/hRN~]j;|(޽ )~Zz:^niB[ߏ۴L>-G姛sJ9 =A={5PА˶7O3N"4!|@ #" Ye 7˫E|^ *2pTgl>_Ɣ^mY-/% @*uR:͊PKr .s?H$85U@*xWOnrP#I~P 0QWz6vnQ0۷`1| ?B-FivI輪hEk;)u^.c>Q p %ɿ"e,EIhh$@'6)2Ac;yH,ŴpF)5 , ՛MC 9Yws WsAi֎>}&ۢG{rNe9L1;!-"ϷvoK xO##aoiEVkmCD|1jsϼ|GOF=D 48\!?٭ y 6g_ZR̎ ә򎅹1!:2` #'K+\b{lކ|i//owEW\fs8g7zc R${G֏^̅BӄTto|3y1rWz"4m@LP[1USV-   t 5_h|N qjvE}hhݙ)_IKNMe9I7(l+V<\/b)(tMRQo|ck7~5C Ki]"S` l|UG[ؑwsy}B/a̋b|h WD A"ܠ&i1a&g}1 .uUra rX ]_b00K!Wۄ{Z o*"2YOW-VVNq$23I~z X&0>O`1AOւC?FlI6jetKaG66^-P2Rͣ2Y^y|y;H|Fqr52_oN:G1So3>T%\3!]}jrHDCTv5hOꏦXӿ\J|YW!,)& ?Fj|Ȇ?k8=Ź *h 7@J@bbT%2Dc>aPr #C(g[_vnoc.0gpF "uWJS䰕tV86"a"0?5J_p8P 0?mXl`z0)QPF=o{FcYD& I nbųlZ1!,TE#Dqr q(tZxԀm3϶0^a֩`#sZpVET,>l۝g脑ܛ/O\U(EFE5;jKbT~4XhyXcP|c9]׳PGX΍:;`@28קk`׫tx~!-ϵgû&/\Cx6=Qǚˆ>.t8/O茀G>TINoYbX6OboQ4Ŏ*mȡrRZ0^Nc^*MM>d20; Yk3b9H "NBwuШcqe(?&迴yq9h,<z  ࡯K(r=iqGo#a۟Hv׳_ibgXI} UI0_/oKՑ(Hvw~Ҿ7py#`ᄢI]Mfz"%-j`IhZtxzg/}4*x>۶ʏN >b V_wxX1\9b=|C퀾~!Z +Xl%G  v<(䨝\ܣH/R|ǖQ3"3D#&O mS˝FlP"UU4Cۣ~S*;O6`?l #cTRg\@=x4>)kإOz@a7s, wl#TtzJ*r}?\su+{39jΑ1d6E.H나$V:^l5̌w%/C=o76id -gqe-Mg^,ןZ*+q䎥0\^t\G?hw N_r"{>I QԷzyI4ӏcIgߒ $dwoY=O2p {@l~X}Ng=ghK_f hX> 5ٵdC_ܫ0v cQDr{(1wR3 & Kϳcy6o .] \Dٍ/[m@-\yHNg~p̩-nKj`EaӨ`ncj= R=V!2?71Z=B5q$iXbP0!N仈A]JB#~^hx|ޕ%WYy2t!4jjZloi]$UX !kٴ%ܽWm`NpsY-Jo|:&nڌPZ<漍d sP!H lfwĸT:їHU!xG v7DgY%%{EUeYQWUN u }ѻY#ΎDol?ک@~7yn gCexڍ#)loޠ=LsL#yHX~ęu%Q+`Q(Q;L4.I_(Uloi,Zmk8{5iJǚv.orV=}B+F8'FCu6u‰ÜSw'TJlCύ⡯| O/+W xG/#Pvvꩧ6w>6Y!HTzOsSwi=e3's;\!07@ǹ欲?Ba?^NQ:xd&zBP{gCӃ>|LT=G*ovϷ8aF|znF֩Uh3Snh9ХtP}'' Lp4` z t92W%~ Uj4LZ hh,pY@8DTdm4By$2y^Tַ77?⦦6sdjfttr(xVErpj;]7"!2EG{&g[u-siE;;hd?WAmԨgyYv_$|+igR樦̣{y@mm2ZUXAڄBnllZ2W]|(^d2CV^ɇ arbj-9ךxǰ6zay@|G22=d q}0҂sGǧ߿E̱iI3=nj&L]aRo|l*q7WܢmqNg<&pH+Wȉjdg 0;BjqTU&~9ܮ>4Hd (`]+dcv-4O󆺸^,!J*KȅLkh0&5Qw$N=\9Gr_ Ur/|,=3r"ȟW5/ի1[YK̾}~c??Li t:O7d*1u>7wuNrJz\;yq=!?cyΎw܏jwӂi0cXS1Rę 3:5wA]"h{ 8GMw=yrT]+px죭_J%/ҶP{QUZ43WƍЪr9˗!e /"_Lm `&cϠ.T^^/ltp u%G%JO:^D'ڂ'k^ ֭Y||]Wfߨ,c (Ϟ{>foܘ=]O&MlFh'yf"g2F4=4aPh iH͗waKgVigmߪ;}ܻ^fn'EMu='so{g_Hq} 2C6ȴ;F狕3CCBmWAA2(L:__/*"ԑ!: z#!bQHkSHڵQ"sv0BT/aQLe?X#Tt9RgF%NKJ6Q:\5;qmGxGqGCIm$ Go=0jGL_Ᏻ~VS_wdo^CZG+`IVjY+xo^k']4DK{^0@0<>/"<Ԋ_\LoR˗vh oDe]5aB|eӃсsJf xt'H,'tZDؐlS*b:.ӘڋB (l RBJd:T[OqYI.*sm!}2xf4ԼGXR,cgBgCzƭPI@u9!#ߏb0?OJ紴ǓЕ J[K4 JTfq8 &@Lg2p"rQU]N*)=}Z-f3| -Ōj>(P %/C9aetL\e¢ơY6T7K\\OFD/Ba~:fҙo@'#:dL•X4 {e BBh7pM+'eK$)k "9#>N[$ܕ2Bʷ1fR˗o?F/=[T7Ɋ(}c <0 'ب"!ފQ;P\r~|n̚>C@8〳{3/o!|*6 &zpQ,vn%at,\z?]O2j5qcwC{.sUQ.[] {Z:s6}g`K R'/7NYoԦ! #LA !@nφ1y$ 7䦤Y|ž $]>mGWj k)W] i E ;>3y9<"Tx)Gc6o> 5;-{;OY-ɶTeMEWp䒠N.O}$5a -%E_\5)Oا峽/":͗l~?}zfաN]ϺhA Cﳹ ,|&HJNU!mm­L&P)18Sֲ=J7m8uҍT|˒aZ,:ڍ_THsuyKbII:,,.El=PIr-}jmܫݼ/'Ϳo]pڳu (U\f{G ?ܵU\ͦ Z-.#c S s 7˗/AfKEnV!-#^fև/Ar7nEK{wFt9)KD&rX櫊 nDHHAu+^N,R9A'N /Yjs Jddu-AfIg#s~8*fFo@nG[ثAT-> R`mzTWPF6E!l%@Wb%7דM-QRq9ST-VWU {/ݷd-qwD$>Hm).%aD4 s iIJ:EB@`h֌Ծ8wJ߾tYTPV4ޟ}- ^9=E3k$='* ]p(8`usˋ,-%_oF_S=Ww4aDUؽ 7FW-S8(`GZUˑ+렻(hpp.ha; ;ߵ&KMF[N ٸC\:NJ>HC~{ۑ)]H rY25w[\{q#Gɿ!/k2j$"i%g"Q8_3!lFꜿjox!m» h^μ#:22)=dq:x#Cݩ5gpM5IC6{AR84b_]PgaxޥDN=+S =-&w[k+hT̅,[6oG քǵ7 #]o@*T]L:F~؞԰"?E|`Ӊ{Vn\Q0Ed ͭ>S{ZYa?01P /[;~qY>t~4!J",qiEH/3:#w-BƾAn|3.dWYXwýh;Dt!?AMH7Ka÷p팲!FR Jխ?%gjF0wF0tpPж9:i_(m|}9k&d)Y0vE8cߵs.L8 3)e/#o?; N^")(#i=XW{QpOl)"_un_kPfל)RegCAulM bNvсCͧ˂댑u>ꕱ~ta'..w lQ'WלTX[htÜÈ!)#y#,B9o-y X *f0MSM%(vQBd~Ĵ̲_/`)[ME2~n\C1_4).`uptOJ =nZ} Y!= Z ڇA )\Y@æD;xv0oƍ?4z#԰<Xp{mBz*q tmb LrWRpPi-e".}y) $PjБGa'^ vԙwuX =ݘe^jr>OȵXSIɿq]Pg0q5Y L ;::OԚbJ)@Iߧĸb4KDA-0Ԭ/#zNé_Fu(ϖٞ[ {ͫ 3e]hMM& =YDrwmjjLzSGaRu"J 񦪙רB<S3|Pye_ywz L`j(Qy|tz=NwSa$wo)6BfTA)5(F4ڋ?S_?1{N YZ|V0 X,Ԝ ˜U"n!g"CsgԨ /@^r4 S36&{5GݱXQ3pᢼ?ٹ:r8IB"06zpnvLDvCy ^&ydx;T&4wn(ЍkL;hȘ{o{cE&{Z)y% W׊PPDc-ye6@zpv}migNCR~] Nro5|z>qCl53'dw粄8lbwVZt6핹.XٶGҥ!z_"p=qw.P}Kqط'ܟ\c1Sdc{ q|ktϝ;ʌ`۳{Tr^+Gf% Bzc~[pop2pa58!lV8!Ukd-l᜻p'Kb>q#v撃\zi.*YZھ B+]PL{K0:c´lua'NtJ*ӱnu-Ay5_:f3sbi#Vު\=#GVd ޚV=[9=5NR;E|}}&_S9mc;R*(l.0^419,jG}f@f/>eR@]QeQr4vnVsU'BM87$Q(nj$ta~^X~ wΩΫ|,xVBq(s/:̵v8 `ޚӧ5?鉫+mN&߷3N+kZA?3#+*+ZB6) ThYtP=Q|UG!̫Fn2osGCU?KsBâd:`0a'C;E}byis G_x턡M\OG1Z|֔,^]Y__zI~\w/eVgU+옐hF/.:GԬHTQ1Fmi w]MڙޢJFZ 6:8f‰Mz! H1}_V{"ŅHGтV|Ƚ JZ-rX7[47a%r' XѼ4fvv[H.zWÉ6BᳳX_g6H7<پTK[FFI ;+od!SF0vHkӧ*5-A9zkߪūhMܫQ|I-I ޖt&|PgP͌2z^kێC)b}"@VS8w[J[RDw ::L $~E^"nAF0H^ ӝu"%DkS:v.gǜh͘iLoZmhkM/A~622t4;ycStvP9>MOav]vhYt]vYշ ToݻgX[.T__l 71x%bя6(hMtЇF85կ36Qz ii@3 qB'fޯ=B+7Ef|4*~ۚ.c/ZȖ2;M/ZMKfU\1z<[̭:_t N=۷D, Qq-+<1ObQPh_@lf`[aƋEӧ*^c dg؁-Ǭl쬝dzr\-*Lm"Q`0\b8khu y#En#@Pm1ԤV$y644̥JbkÎq~̃a*O쌥h;#ycWUi4\r[x+HIyvy;rײ^d _A1&߭; 888XMVsN)j +5nj 2NmaXWMy h!oZ^\$UqW @fcn$fVwԺ:}~yr=ӧM\\F *vML5CvMx \olI{o≕5IFVoP%V4׋U1[AQf`#A(,0s^̱SzM_^!GU.@SiMoW kix)rF=|uγSXr;hbvD.ժIߓN븞`W i{rx M_Aь4T*"yuΡ_\ݢ61whN&L50h*a?h Zl$X`f 9_Er9i9˴AP QRO=\HUK#! DT'KK4 |r):SF3Т[]b~:va!.$R6k 1~h0o`)m^LwkoPV~l%z6X`02R8`2"0uB gWϝ{R;WxAІtH,ۨ|ꂈı y,ݭT aCL$@~JiQS24%SH#I Kaj4D\,I`+^_Az^Yҗ)u3t]^>{ה6o$5ϟ}A\Y,,tD"+Bş^8w17~6Hv(]27f"#TAq y%D_ggPw֚ ʔ_K=p?ynwix_?f70X)v?lsiilB(0v[ -1VkSY QQTʘ3[pFr.0&?HqG)A{eE&/LDMF(!(ebe8gFeAkWNri?K17`,ٚP;=u*hB}cC&#OǕ\qT8;n6V߿"n?wJ8"HWY򻙌*;{>׍cVe56soڸ]"_mz ]H#jHoc.5HE=};vJKz)D;LA;P$^f ݜV HfuեmJ4}PK6,7AK]d4=8XKj|\B棊_?ݫpآ%5:=OFBo #,1"K>zsȞp˶A#2,R A<my"i=lӡeRda[Jވ!P6\0uw`8Kmg)UD{}kBIV}{ܺEVEW棣4GIH Yw`?o G2/šiz$?vƶlñf_ϰbGP_.Gġ%DDR*ؐة4|`'@J[.mv%[jcY:~k APӼy3bH\$Ύz6 kзn*zy`rLRzv;(fіjX׺(s=Òؤa彯\<ϷmcY/)ݫvb$ǎHKKHjϟvtu>zDG֠)jML݁fuM&\ٞ^!j^65;IO'6S"f~n[.=)OTN@O䞽@GlղglF179U Z_|Cާ{-D߿<"8~lz/GWgw؃+>P0] #~ųHE~[ScL^%,:%9)[JXg:%F.& K/r&(UWD}GY܇*>efM\e8<#H_WEPަa%XLU`r U2va˱ʃܿ5:%VҏwwoVeߩ08ϕg=ȯ[8?ksJe6<9i[i׫/Rl׻].rz:GF֦zJI?/ 泍@6 A̚@쿅ߟgJQaێ5-PIbQX.A}> Fq)jBvZa4`+(y:BUP}^P]</U3)gl>ҩٟ ^fMF'|[Ԙ6$Y _Gp=+uPwՆZhzs=jmL#$,"MњXe(V )ztT"@Û;"LCmIu)E}}#mqrVKZڌActoɾH&᷽˸REB 5/:rnQ p~7ZM}J'^(1?@ɑizD>QBHD~)s}o7rB Ĩ2LUDY #ShQ/ m7)NeEdN]Mf>Ln+Y)0wGV=kc&ND[쐃%+;-%Ty5Y~q޶݁Iߪ~=o5kcyj EI!ZÍk޹ w"˝hVn(1 }YR7%_F@6Y pfYJiāPF@/N_Sv.{ oZNyK jX.M[I?ͿUuY3BLLPq5qE}V<)"[yS#zCQDl ^)=dB\QzA.d=? {.}^sz3I}A$qcͺeQݴz ^9cf\訷G(la]T6rdON,f㍱a_ NT!Wtf=''(Cd;gv rTٺCPgFÆ({,SFǤJ{Toxs&UcTuQNM#%:ڪW/$-܇^Fj?Ozԣ=n~쥚f$'oGywL򯅬Vx6#Lz:0&)kĸWe%VwnDdJx'~ CF]Oէ-$KsEkKFy1d|J9z\03jx/o Qg9WL> Jqe5ѩc)oϣ:x/q~1.qAU*dLn9 5k<K4D+9angpH/MC &8s-, ~,;zVSFijCVʱe؁ϑ!I\<}luy&EJ>O*AM 5-4Iixڲ qU<#m;DukY~2쌲Scc #5|~oȘB'BK|gp HAwy-70ns9}1!y1[:vVF+)v29t|#=RYjh&7 Ao>GX7N^3@l߲G@JpΒ,:]r"?:nz&I.jQ8qЂhwՠV/(g7Pfq>6~C@'cë7g52(v+ElsmnRؓt=1NI-NN"}ҥQ ^3c6j/JY 2$-rPM*G6ADyjrO?KiEs"셵QV H'9 r! Xnm0?61Єm- WN&$/Wc"Xo.4/5%e WBA"RJ`)INXS=ðќw}_9cT: G=U'S$x$;$]Ȟ9zJb8:_؁-n8O}P)sՍ>AɎJ>}l)Y8M]-v-d # `_1a*|cҦ:3ܲ)H^K0vkemMwYG#=Vv)׃[UIvakY^iog$W3kՙ֞d;chcg/O[$l<$ޠr9ܸ*s8LOY0٨٢ci%ϐ qwr7%m5jrpfEGo`wУO8~#ZoyC #k|7?*fy`S|Sɹ9b7l㘣,oylnM~=*\$]@PX'*o ՜NT.A2F5]m!hxߋ҇5 ͈jUA\>oڝ(1/ı0:Ov'?EspLǨb )[ֽ9":'`Ɲt'R^:inKeߊ-qh\r(Myʼn^Vh12'\)ЦKQ}MOexY~k8.w@BGAd\8]Y3w=%k3HQiC6dedɚ-eaڽ{G2*SVu4z V8DBhpGkY^~mྭr!VeAVdZJHqj&r]ZG)Ҷ<+pSN+S,nm'%>gDn'{=?p.5dF.u_o?]Aߡ!Ξt>)ӜUbdm~D N.;s.b"KJdPy$F[KM OJۼAo(ʸ';15ڇ7h\ߴ;t2 x$t zeמO*Hq*rq޼oaZ5R{V(BCtBt@,9Miϯo/s:ՄݚSggn>BegHSoB#&~2vRHr־ݴ鲫t SPm\5Fv vm=uKyd.~}E"|BRs.|5RʎS8*:Qj"ˆ+.H(hB~Y {j[k`=r[R/meȦm R菱2\΍1yɱ1s4ʙhL?/g F">l|a YEFqxwɰm|+=__3WREWi!P)xxOҵbT[i#$I3{97'$rԈ?*fַKg]j ?!t>N;^_[}TJGKZPzÆ oMwTO\^"/(꨼{Vd# n^K1)h_+X,Ii_^E=w :/3S:N]X>ƴbgqD3kkIfeSϧK; $m6 ^w Q$Y! O+TkMXH*8ٯ*e ! npXի&:%hwb*!סhХ"Y:5eW۬xQvu^C9#i|Ȥ Ǵ/FQ(;"q; i/?g8 `ڏfbF'T֍#CIWkw!܎K(P>E׶ձ)dCG7'uu==WysγAklh%=R!#LHbwfst',!Ob[ZݦQA5_kMW0"RէڑPF>HD){z:?U]qZQL|#O2/_UWfu͒%U"'J{+ό'~'Nͯtn{7,@prV).46ˮWeMp߾`9 3-.&ɬkIE~5TPe]u5f;W (S ^N*>&@QQ1 OɁ㎃YɃSyT=Os]\Q̀ 7z$ eq4yEь9BpFDa YD6iߦpXqK`ˢFt>O|1$HY6X+-9jh 㡊Y3̓ΌnI{?DSJ( E=$vwBǬ^Da)8X:CDת>DEJ\ZˊN4Pcc𤿰r?y<-P;jP{ƎSkz1&=D4DajU)l$ljA5]ly zw=>"t7ĨẄ%u&a !q6 F}2@%S;5H㉶]l~EFSI7x4b]" ߆bm>bV\vvp9I#:Yd-v!o-xS~M)(<3s  sNHё?v0@r:f]Bd6ya[_ż%lO=& brbN!k. C $, Lӂm ~1'Ќ+i[3\aܹU[\'Rbk []}ELcEˤ|\llÓF`T(zbQ2Z! zj[a(3ok^$Y5H5/u-fjV52Z]Pfc4s9Yޓ7cV!Թ0Rog?Fʼy-6B!ż̓m|F's8نr~vrM?XWi(0ϝ0IlH03omI"KiQGx/5p]xƍRWAp|72wݴkJ4iq-S9mDGm`r;gCF3z]SFzv 5U( @55M[:(XO+N3P P4xjPIɆ۶56q ZJ F\9-d tOO?>K[<9gaJI4Ue ϻ;w EZ/_!&⨨X豰Jf6k,X~EG]q!HֶC}{ZCGʡua1$]-wRF z6g7!0ܚy'?%CɦPʞ9 j!!~/V/oj%YXÇwLj\@(f^X8 p>21^Fza'VO6ꦍ 8ՊUk 5aZ= _Қ|Uh!jۧ KC,]/\wrlQtf&fPR 6i9(-cㇱWڃ 00z #4I+~OP~s+Zco(гm(EX q+gLV>-†fp%wn$`e56V!uu%TzcB܇^G!QC[ OwɽDix]s >#8.}1Le,A3379PvzqNh>W4unQ,DeB$ыd-F/m,jw^T1̋ W JERq\I y'GT_'EC&#\Kd D/j]V#HC@%Vg}}29 6D5o4 a!t}8wZ}OTh;BDnUJ9 Q(&6PWa(Oҝ?*g&=U":}Qc1uS #R o C*k _Jll*9"zrҘ?{j Փjܗ)@SϧlMRL>dE4|AO 0"IGFs:Qfk| zsl& 'G##H߿qϟ/V'\;S[suB)kZ Te=KޣŌ@1[kS nd`ìenԝPnT~ZEލ1pMw0TyOn{ܜB&ˈ9( ì׌*tu 2nlrA\qs-_Ž$_qzn0w|ml8 ãxDk2sB kӕH9$?4$X= Y엊2|_ :3PΉ^CSY캲7/h`Bkq<,kCwnn&F>.  RE. xz>sA%aѲ&{o,5iڛg +;6>;=U4/@5r"h& K}W_sC>/7է{l16*mb;/z&"/UϷE뫫7hLx26vBApԅߺ޽M]u)psd (b.4wtn/1"㷱qu]`?ݷ}Ot):p< #m.͛v'ccy;w9L'r *5] 5M[7Hzژ@ c7'Hssdp)WYvA%tRܶ`Xathn^ޭUՍ鸋g(m#rYh!$|V&N xNU!6HܘDK7 c߬ M"J~ap }ځ@f%h%vFuoEm.8 Xv6D2]j*knVZ[ޭl;sA\UUnݺ$ȭkQ'0":nQAܢL5Hc&w,WT*;<<<}sw^TL(r]}|ACܷAs Ǘ^}*_(Y~)=AXdXnc㓆z2BZzxpW:0O>Tku9_~ (Vʪ¬itɩ_ [n /`/J/Are=1>ZU? / kvXo%Ʃ Nt;^;q*8<6{mPK1tH1 O inuvola/64x64/apps/kopete.pngUT fA>PQux UywTSKIN`@Z"AEPRP$4QAP\IBUX$G XPZ*6Dp-$p-EBD,A%x~^̚gϜڼ^OgzKv~`D3Pqft~N8z$8!HP$H`G7ı#F"RDϯؖD Iu(:pvr Do Y8,hdFD|&u%pI,o\5u9U|^@5;u4k(PM"͵ӎԝO~ECڣ-52O>=AQV&?s<2pi4v%(&8w-WB2| 7bԉU=2\BrT®3cCAkQ2{DB 7aK̼K]c(6"~ ? oxytݵ&tw_$P2{;$DGT{kl9]Cj?=Y":4~{{d,PsoHQ'YfwHC[2-J}Eگ<Ka> 5+/Y^^RGz 6szf).+-%RsN>(!A2.y>ԨKzwAJvhR)`p&A:psx]<>q-Mu5_ 'rΚS#=`lE{hhp| ZeoM>@vEB(,@*x#/fVj`|O!S›vM6#m}byXK:B"5c$ #1aߜZK`hZ քYRIP [ْLYݐv s:u+_N"lAS^*(Gӽ5=9}[@2A/nkƱ`6W0bR׭f-ƪ^Ϛ,t69Qn I$pfpa{|3O5`ؒХß_*$6Ɣwӆ{pkt,rlj{P"b_ɕz>L.~tHhs0:k,gZJ4Շ&M.2H~E:_vEf+yj`ev%evc3B I⃯f^oS^ɦHc:&>KE v$ωJш.WLf.r=_ܲ?mt K; %_6yY0+Mɿ7_bUa@&؋O-DlXƞпMIi|<ޢ=*A\x4"!j5.rG.w1 r=:9;LA*\a=3tԹЬUО=ER 5^LM4N= >V5<)wL1A<;-kTzEږgm{VFAKj3E*+w'ոI"/,J[$ɳl%`׊kY*gޣX3AW>b SMV?ˠR7RK4+hKHpЅ" H8Wj:E^904)e L,VJ3>52*kb́=?5 [mN^m9Nw/hZ2t.ͩH:ΐY=O"8ʵXƮ04](a/b]u[>tT$\vU+ s",03[_5շ%-hb)8$?xЕQ?9S޾dzBa"p7󭡵P0MK/@mUs (]|4 xT8Rתjx^֐ zH# # [>됞zLO{cPS?P |Fg)\X/mfu5"Jf~A9\Z_{2c?qmH lUNxϓsfݯ$_׉7z{I%(5G7ZK*^3tei(;Ғuƞ7jD/s]VEL,vZ1}AB-滝;H ρLPY-p3)ynz*kSJPvĦn*V%8_>Mp(yiǤg\)7rCy}OwVY|e8osMorRS  `}͜u fBeqG:P ;@|"lJ=bo:oWϺ\TnX֊:{h^M[lHCCS /RMya|qYUN-a۞u(B]߼n>2WrLe^4xW➱‘;`%)9 lh)EME~v5SkטKrE{4_,9$G/x+è}KjKb[C?Flt_DI:r)lw\b l[ &M;١m8761&VۘtīI} .x*EHŲUwNjmԘv{㯛۾fvQlmAIvб9ͥKdp—8՝x5n4Qm~D<Y 7Sr\uyk9Jr3 5殯`Yo6 @^_"TJ.qnm↡BmS4e S$)妭v uN[ ?ҿ0('߇o7eO ܶsm``r>@. F2g')ZX8@#e2g!߆}{3!!N0^:~xiG#RL_@S?rturryCcOMkH2G5*Z#h;JhO>?^DQMMH R|Y˂wў ^镠bZ(mP:R^4{l#v!}_ڠ^ݪ3byY@$׬CʪNF\\gfh#d:?Zk=LRSg%._^|D\mPJ뺞 '~C#3a1u{ {& zr}=ǿ=q.?T^>|CwnoiOg߻7pH1jngpYh{oK*dӻJ$QrhQ(ę ~g{PVbmcP3n3c \QψmP9\؄>_-EGHϞImBSasWܐ (U 4\)A®!HA6cYpj^+#Gov!Bwpl󋆘0ŧ|&l]Kx51}h3m19n&㢥`֐{?v~msH}#Do+WXZD,Cc NI}=ry7Zyxü9YOaMW0_k/bla2,<yI\+bڎI~ ^', \-0QLsGNGÕ+s_MqS+ҕvޖ80&|<"WItp`sk^A)d{Kg;fiasnA]JANϬG+'A~ Ƭ#F`'!Ϸ9TN>;DI7d/QIWd)s]8> ˌὟqԧ?1g7/V006#rbt}XT XlhP^QMfؓBy(3Y&| a{߼ RbfkR9a(!aV;#z ިKzKwtm=io>2iWBJΨZN_Y(1\uTATOz0~&%=p+3r, dJQ_ B"GZP}Y`W'RޝXtZ4~-ݖb֒:Mc>tU1l?y֥S'$4kF2CRmH2+YLi;Jʗ/:l5|y@H3ٲ:#AirsT@3/q25bCxS "G^Ώ<̆wFrdhM7¨ٲ.]P[!(ga*D)s VQHJK&;% R54X2xBJlsG556qE>6_D>DUF}L0n*M"/K^.% -7ǯ)"߫pN4je|ѲR`L*IyL;XgVfX dxs9&];/{X rkV@)]U,|+@\~qBxdi i}U`wR> u&:u!axX4r!C&5tf:"8lu%eCPfNduMsl13*ƻ |}-ȔǧeD᮰RrE)To¸4Jxb79_-発 ّ{0DbMI!xӵ"RwuOpYҼ|4Lp4Qm,=@[;.BR㸼= $W-p$75ڷ5wAn~]S13>rNgaˊ?CB-0]lZQ^}N]j6;9l9rҗ(: |cNf=hԍ<1Z5ys&^?:X^6v<<PKt912N'' nuvola/64x64/apps/korganizer.pngUT gUA>PQux XTߝ$dBB"*HB$bZQL"( (RTJеHBQA" Dj 93̜3o{9}} 797wst{=ĆNb!QAva e -w} RiT**H(pQ[` :t6mnT7vn^1D=jF˓yx ,JߢG_7PYRk5;aqdkK}!.YE}ʚiJ+Wu0jJ࿳ޒ?Tt #tw|0WDMЧm yHd탥OʑZ|Zg0;Noa4xpJ nI ߨy\f{:UI$4oe.*BQ|Hz8{zGv0ZO`ilQܯggg<;y&z+_0u~RyR]{_Y\> <Ģs޺ˉ~hn&le|;Z87wцN?Y]&*h }b~jӪ/[͵MHEc#Rch@X${FޮWaM[Oƾ}rä|~7OdRkӠ.8L%B_>±4(] Z +~Qy鷬~ߋW=}Wݸr;n7%/.&Gp7떁A HHt%^f&B}\}(_^O3Ɂ۫G<!755 8ʲ!iI Kj'j7yEpƈᶁ2*6-r23~[(*,YU :X1t;JCZ̳j:Aop n".OڋҞ&G )je5 ?z itg9 dy>8Mo8P%U)~N1Ak8_(b{D*\ rWvVJIP++g-A5c qo1CB@ rjhBo_Ό)oR6do$ JC`˸ xmzb#Q'S>CN]X|VݡS<P9q J?uJ.(TU"uv3?hӄ'mOATM#+qyhN{0V13)*[{[n9ZAG"/ߗPbE|&9 kcBcx3fX֞~n7cza "rݯa8Cq 12A/ ܲ*?FPmdGP"jv2al[a!XEeߊۿt53LM Tɯ QÙ&ֶ͋>k???sx PPM'^u >fڭ.J~yX,+(Ԓ$ۈDṓGGEaϖV[D '8F3f_0b,IHN5xasre#*ޭ_>JࠁΰkKB=Ԡ4$N1]N2-?e4E l.mO7[0{#o~U(14*$59)e kboκ] vq,{IJSd_M!&'X:kU됅ސN^:9b{)au7SՌVInT y%4-SD /$g@7{+Ey ɐ+AR-sjO6D7V ^E6K^L+oƻ~$Y`2Gh(Ľk3*mͻz&dʞ/wCx4]_TO6UdpحA:\^Ijу:=Tk4IBr:bzmIha /My\n|ˮޮ忭~FN˪D'_9靨1t*&zTҔ$s2#)i㖾-}Pʒ:Ur6`IJixn~mv=qJ.s{s  Lp?,#]w ]o){:56zm槙>%P571]য-=G 5`MQ mc3Ë"6!+DW"qtLjf.T'rNmGBf0^(ZCȳ1;PMU&O FfR*ž YPν(ԑLqHP@ʆ\F%,ngr_m }$YuU4:/-6M+PsEt^ :D \ngፅu` 0q)%ƛ#/#U `'YR<3WM.p.:M)fo1qD=M8'–!Ak'WXcQ7Zq&5Sq/G)Iv*jϙ sw {0V}wmSZM:c̋Wc?ZzJGtZs+i[;~""l(HRN Җo3U?^2 BbePLC83zNsf"P⃥rMPݸXgGaqO1e4A ;%]qsZTHpEzWPs~9⛛wnOrBԟGنÒUT#BbcNOS^<#\v' MfArU`4wŐ`VU4 Uk@ƚ+}oıSnNڪMvHcct5P5*D(4cvKwkH[n1W3\*fd︯JYT@4I7U>AaYA{W Z 9Wޠ \|SdMN k@_F5!obq,O6_wNb?"NOL&w&v~K8K:#̡z)}? m~E߀S w9 (P \I87MVuY39xud͎TkG]y/jU'޽ZoA^y,SR2>!43{V]__B}S!*%;~: ÌyQ^)NN7g1Iy"$ zK.s^ H"f|'AGĻL6}^,/kNf03nt(MA/EAj%[s΍usBowq<ڝaZF*1` ̂t=My@~6}υ,zK C] KՖ<Ox tWPueSq$B.c; ezYZs=6`i:xue\NYV-*l ~ÛZ3` bYlbB6B$s,Mj\.?f]p_/,6lö!& K :R Y>{ۗFW3k+>ZA-`UZ EQ5qx{Ơk69tM\kWđ/6BAhstlA,Z 1XZ "j_* H/&:i)?m"]OipbrRGps0 tob8*U#\L CpMuv+%|;}]6h  qcLÞݟz*|uTzp^%&L4XpjCV?:3)" aŮg~spyV76;H u0<(<'EmFNDĈ >:H%&qe3+ת?\P슟(s 2)G VoMU}TzI0.3 S?/jfu',YtD"k[5MXje|:ltLl<&(6o +;9#&ϛ*%OL9T&ǥ "̰ c 6lXDe f?3tJv>jg`P7m㵜G=^nhitj&Ĉxm[V^aƀ~6zߗc_'頴A dߴ*cg$TZe)\}". u8WdQVaDG:bĹ21aX]i tCC+q+2D8s%e k P]#&P՘Rc'y·EJ̙RpG2I,b S@⟢! #3lD\{[ h_YC$f gtJŒ`sB?>wD;Y-;ry#ޥa `502.6C/~s^pƋ>}8;d.iҹȞ|"uIJĽwdøq;{CD=LOj-J;4x} qC 66\7X@1ئP{g\../U7΅\m8#0PVV|K^l'8MֹܸO qpἓRW iN {o !֗,_Flr(h|9Q<HLɐUDA,_yJT@/?'2: >l2)^CC봄-`_0%:qY;j1* Y=ǻ7_<). 7k/s[RKsٲKP*6GQ_ ڧys\N{|a`LƁ&G'D^)@ &/zڣ0Yp,ɖ$`t\*sJL80$4*avb^5*gh+k lM.&ЍmTchW?bw<(jud1( Xt"G?\$߇l;OZ/ڒ,aGZ"\7L%7xTFnOÃQ㤒2pDk!c؇ju^|p_xѝ}ͮ(7ijrbUnGJVm.|bx6[8Ͳj*OGHje`#5v؊02?v, ѧȶr9@aJ=ӊ q== {=wx]AO:pnR8 P=TFF.ts@ਈrAT_*r=VЄ<kxvf囖}ЩNU$.1>oaN+i5kQi݂ ܆}(%as[w_& sxB\A {gI+08i\[մnn7|WM~4  "qFC}Vg/7ĉзtFB֩g59g`j&Ne]W `RBsFp|r|,B8@irEKE5>JZbs.S^n^BS94j!m,845vw|]+~Zt݅ݟ ׎>!6/1zLN2KpfW {3mV `.ԛM HP6 Тg{\J6G_\tZspW_ljs)S]V 8Ǔ$G!Q-"b$ ($3znfm:ٜAk?BN"rIi1hpGRSw$9l$J (@ޕ*al-.6ك <{&<3oTלqF4? Q\]q?]Jb_s/D KI~ߐ TJ^ >·#KAJ8Y@料BZӌ$hRN $,8M&7j3c/x++ zR;G4j.B@ߚ5 )?ŋy8\$(|Ѫj2K2$*?ЄN#oXd'iN05Nnr\Ql u,v*ˀ %kW`d ]3\4!uj^΄`|cr$Ct8 6_Bs3Ѯ?PôW}xr^r`npt|eεTeN(g@};T]ٮS[ :b^X%-" 7 ea$rHtj:7[p/yI׍ch1,ܫՆƩ;0F+)Ǡ:fu_-Z*BgD5{ZhynJ1ƴ8LRZF1_2[́yjS5H ދa~/j<78N(>I7lt+/]寢Lvn?f*]!eF) 3;Tu}\ER~ho)B"r~'Sާ%EaL//ʥtx7f$ms\8u s\x}ķ韍 8_ AJ=WG3$˃w# iŎ㤒K?nn V:-]]aUKXӓ<;MEjd>EW"Ε[m`,:X?Vg}', l!iG< ~-[3] [ #R[CVzq2(7&BCk|35G8t1Oۿ1w^cF2 q9A݈ۅl>\lZ*%_#iIcpPie7+yWUQuruՇ44ڬyAז95iR"{WV.e4(%W7l_g_e_(3qW `x%•]5ܭәڟ;ظx$J鑯A՜vYKG 4 OBY@MQzA"E5CJgYf"(l@ȺD%N즢ǎBˣ`;k%wG)tvVG&a"E2N`["f+.ɦm[gh DԇfGãJ;/ӿYih̄e*CcZ;D]J:kˬa$h-s=0QkPW`"1lLI*`޼1ݖ)ܱyn[~N?PKt912N''%nuvola/64x64/apps/korganizer_todo.pngUT gUA@PQux XTߝ$dBB"*HB$bZQL"( (RTJеHBQA" Dj 93̜3o{9}} 797wst{=ĆNb!QAva e -w} RiT**H(pQ[` :t6mnT7vn^1D=jF˓yx ,JߢG_7PYRk5;aqdkK}!.YE}ʚiJ+Wu0jJ࿳ޒ?Tt #tw|0WDMЧm yHd탥OʑZ|Zg0;Noa4xpJ nI ߨy\f{:UI$4oe.*BQ|Hz8{zGv0ZO`ilQܯggg<;y&z+_0u~RyR]{_Y\> <Ģs޺ˉ~hn&le|;Z87wцN?Y]&*h }b~jӪ/[͵MHEc#Rch@X${FޮWaM[Oƾ}rä|~7OdRkӠ.8L%B_>±4(] Z +~Qy鷬~ߋW=}Wݸr;n7%/.&Gp7떁A HHt%^f&B}\}(_^O3Ɂ۫G<!755 8ʲ!iI Kj'j7yEpƈᶁ2*6-r23~[(*,YU :X1t;JCZ̳j:Aop n".OڋҞ&G )je5 ?z itg9 dy>8Mo8P%U)~N1Ak8_(b{D*\ rWvVJIP++g-A5c qo1CB@ rjhBo_Ό)oR6do$ JC`˸ xmzb#Q'S>CN]X|VݡS<P9q J?uJ.(TU"uv3?hӄ'mOATM#+qyhN{0V13)*[{[n9ZAG"/ߗPbE|&9 kcBcx3fX֞~n7cza "rݯa8Cq 12A/ ܲ*?FPmdGP"jv2al[a!XEeߊۿt53LM Tɯ QÙ&ֶ͋>k???sx PPM'^u >fڭ.J~yX,+(Ԓ$ۈDṓGGEaϖV[D '8F3f_0b,IHN5xasre#*ޭ_>JࠁΰkKB=Ԡ4$N1]N2-?e4E l.mO7[0{#o~U(14*$59)e kboκ] vq,{IJSd_M!&'X:kU됅ސN^:9b{)au7SՌVInT y%4-SD /$g@7{+Ey ɐ+AR-sjO6D7V ^E6K^L+oƻ~$Y`2Gh(Ľk3*mͻz&dʞ/wCx4]_TO6UdpحA:\^Ijу:=Tk4IBr:bzmIha /My\n|ˮޮ忭~FN˪D'_9靨1t*&zTҔ$s2#)i㖾-}Pʒ:Ur6`IJixn~mv=qJ.s{s  Lp?,#]w ]o){:56zm槙>%P571]য-=G 5`MQ mc3Ë"6!+DW"qtLjf.T'rNmGBf0^(ZCȳ1;PMU&O FfR*ž YPν(ԑLqHP@ʆ\F%,ngr_m }$YuU4:/-6M+PsEt^ :D \ngፅu` 0q)%ƛ#/#U `'YR<3WM.p.:M)fo1qD=M8'–!Ak'WXcQ7Zq&5Sq/G)Iv*jϙ sw {0V}wmSZM:c̋Wc?ZzJGtZs+i[;~""l(HRN Җo3U?^2 BbePLC83zNsf"P⃥rMPݸXgGaqO1e4A ;%]qsZTHpEzWPs~9⛛wnOrBԟGنÒUT#BbcNOS^<#\v' MfArU`4wŐ`VU4 Uk@ƚ+}oıSnNڪMvHcct5P5*D(4cvKwkH[n1W3\*fd︯JYT@4I7U>AaYA{W Z 9Wޠ \|SdMN k@_F5!obq,O6_wNb?"NOL&w&v~K8K:#̡z)}? m~E߀S w9 (P \I87MVuY39xud͎TkG]y/jU'޽ZoA^y,SR2>!43{V]__B}S!*%;~: ÌyQ^)NN7g1Iy"$ zK.s^ H"f|'AGĻL6}^,/kNf03nt(MA/EAj%[s΍usBowq<ڝaZF*1` ̂t=My@~6}υ,zK C] KՖ<Ox tWPueSq$B.c; ezYZs=6`i:xue\NYV-*l ~ÛZ3` bYlbB6B$s,Mj\.?f]p_/,6lö!& K :R Y>{ۗFW3k+>ZA-`UZ EQ5qx{Ơk69tM\kWđ/6BAhstlA,Z 1XZ "j_* H/&:i)?m"]OipbrRGps0 tob8*U#\L CpMuv+%|;}]6h  qcLÞݟz*|uTzp^%&L4XpjCV?:3)" aŮg~spyV76;H u0<(<'EmFNDĈ >:H%&qe3+ת?\P슟(s 2)G VoMU}TzI0.3 S?/jfu',YtD"k[5MXje|:ltLl<&(6o +;9#&ϛ*%OL9T&ǥ "̰ c 6lXDe f?3tJv>jg`P7m㵜G=^nhitj&Ĉxm[V^aƀ~6zߗc_'頴A dߴ*cg$TZe)\}". u8WdQVaDG:bĹ21aX]i tCC+q+2D8s%e k P]#&P՘Rc'y·EJ̙RpG2I,b S@⟢! #3lD\{[ h_YC$f gtJŒ`sB?>wD;Y-;ry#ޥa `502.6C/~s^pƋ>}8;d.iҹȞ|"uIJĽwdøq;{CD=LOj-J;4x} qC 66\7X@1ئP{g\../U7΅\m8#0PVV|K^l'8MֹܸO qpἓRW iN {o !֗,_Flr(h|9Q<HLɐUDA,_yJT@/?'2: >l2)^CC봄-`_0%:qY;j1* Y=ǻ7_<). 7k/s[RKsٲKP*6GQ_ ڧys\N{|a`LƁ&G'D^)@ &/zڣ0Yp,ɖ$`t\*sJL80$4*avb^5*gh+k lM.&ЍmTchW?bw<(jud1( Xt"G?\$߇l;OZ/ڒ,aGZ"\7L%7xTFnOÃQ㤒2pDk!c؇ju^|p_xѝ}ͮ(7ijrbUnGJVm.|bx6[8Ͳj*OGHje`#5v؊02?v, ѧȶr9@aJ=ӊ q== {=wx]AO:pnR8 P=TFF.ts@ਈrAT_*r=VЄ<kxvf囖}ЩNU$.1>oaN+i5kQi݂ ܆}(%as[w_& sxB\A {gI+08i\[մnn7|WM~4  "qFC}Vg/7ĉзtFB֩g59g`j&Ne]W `RBsFp|r|,B8@irEKE5>JZbs.S^n^BS94j!m,845vw|]+~Zt݅ݟ ׎>!6/1zLN2KpfW {3mV `.ԛM HP6 Тg{\J6G_\tZspW_ljs)S]V 8Ǔ$G!Q-"b$ ($3znfm:ٜAk?BN"rIi1hpGRSw$9l$J (@ޕ*al-.6ك <{&<3oTלqF4? Q\]q?]Jb_s/D KI~ߐ TJ^ >·#KAJ8Y@料BZӌ$hRN $,8M&7j3c/x++ zR;G4j.B@ߚ5 )?ŋy8\$(|Ѫj2K2$*?ЄN#oXd'iN05Nnr\Ql u,v*ˀ %kW`d ]3\4!uj^΄`|cr$Ct8 6_Bs3Ѯ?PôW}xr^r`npt|eεTeN(g@};T]ٮS[ :b^X%-" 7 ea$rHtj:7[p/yI׍ch1,ܫՆƩ;0F+)Ǡ:fu_-Z*BgD5{ZhynJ1ƴ8LRZF1_2[́yjS5H ދa~/j<78N(>I7lt+/]寢Lvn?f*]!eF) 3;Tu}\ER~ho)B"r~'Sާ%EaL//ʥtx7f$ms\8u s\x}ķ韍 8_ AJ=WG3$˃w# iŎ㤒K?nn V:-]]aUKXӓ<;MEjd>EW"Ε[m`,:X?Vg}', l!iG< ~-[3] [ #R[CVzq2(7&BCk|35G8t1Oۿ1w^cF2 q9A݈ۅl>\lZ*%_#iIcpPie7+yWUQuruՇ44ڬyAז95iR"{WV.e4(%W7l_g_e_(3qW `x%•]5ܭәڟ;ظx$J鑯A՜vYKG 4 OBY@MQzA"E5CJgYf"(l@ȺD%N즢ǎBˣ`;k%wG)tvVG&a"E2N`["f+.ɦm[gh DԇfGãJ;/ӿYih̄e*CcZ;D]J:kˬa$h-s=0QkPW`"1lLI*`޼1ݖ)ܱyn[~N?PKrL1JYnuvola/64x64/apps/korn.pngUT lAAPQux XwXIB@E" @D]DL諰`XVŠJ+@ kY ?9i MK~=4^0<{~tsᇣϨhƖQ:=˖M;SD(%`K dEr tMtA (~s9A!cC}*š3]ԴĩsȊdq  عّqTȧ }e,|9u}r|6;fl_((W*c-;y9ZGǽ_¢56tlzyЇ?T,wLϋ ]nTtQ'>~l]#>F*B¬X:M/hdP>;o_8dD-@Pc{^ie;pnV@DpsqqH$x8w .33 a)/:]gJ}qfܺÇ9x (Ҟvv[Z[;/vf>ӼF~_@%q3ϘsllޣO1vv*=wAkH,}W,f \U#j(\ D( T#%3%N*鋥 /] ˜fڣOM G*16Jc|mЙehkJnxF0?,-D f+x,)?!5MmOˬo֨ZO>>c摒[jUX&ךТ&d]k_෫֨RÒ@MZ#h(dW&xCӳLISKm)4@OO @cc`n?,mQSt?Fc#pVwӇQ50 58Y c,EP2Gp8@LFu ?r DM))@BڋkHW/E:kA_]cc)P{ꃅ mᷜ(B)a-dq;/^ɓf/hʔ:5ź/ʺN*t^P/lq,}ѕwB5Fvx܍/#cVð۲86`-@cՇvX8e?^ Є*%Wq'U`H9o^gEf[Z<:k$4bMDy^mwk) wmħ8t1ꪼ]Wl~]i>csi FcK>PRJI2$Np GDAfrp.,2qt`/p^%; uQR[%"ߌPOPB6B+C:ųMٮ_c{Mop~~g2E bZ@0ԉS5Nd{eݮ8^P,o<*2%SHޞH~5^BSe'>˃vqKX5e>pJ)~`ؔWsy'LQ]"3[\m|Sqk`B~Fج&+X*jd1]=& U t>9x'g%gFVsFiKolb8VF!1wo[J"Kr/V@D{-(H4d6n,>j'?j[(w8c+>"£3y% p&;{Q_&DI0ljmBO.\Ϻ`/.V9VKү-]+9*R=Vpk2S0-sGV5@Eko|NlX!*VOc"z>#]w:jx(bNjR^&&&k~=ޟSJQenl.bWPDlvoW]"ް/m &PVg¿p'2VFLKRD=p[S ^ >zμm_|-L~eH!#*f AK-܂x$N㝜B9QYv={=\8i*'Rܞ~ׅi I\; ?5Cr.naSq5Ĩ å_qώyR,~.}&e}nL':m˞RK24>l&j1ՐUK2">-e"~/x{ q@o- 9u>%N(?D= :)װ_ZjddnV% }KFzYҳ%R<]ml|8/F 4Emʹo<^R:4,dPJC }ˆA:; ή1y C`@%lm!dW#@22I~ Yi=.h oC^;b]7Wbc] ]WY ;/FZ+@xɱq p[@XmMDv4j>Wl C$Va%L}zU͢_a!۽"Ж_ڄ}έ>NrUCeϙϱrLYwoXوtJ'>YtM༥B@'w9}Mۚ¨{3VFh9u$3}S]jG&wVBB1CKR֨?02~cfd7DgMV"KoC}-jEpy[\r'zؘvcrmf>SNvE!Hu{4IY;aXr >=od^ItdrEeRˋǘ̥0L⣻Ȉ"&դ9q0 tWzDZl's6hM/>3)xFW8wA3a-h&b:۳Tڷr]pf ;Si҄a&_@ch뻭@\vzW+FAp~{eʔ,)̕"H wɃ*{-4LnSAF_]n cN ^' c(\p*/^/>AM"hs80>e^YfA,C??عSl&Yb"h}ϕgߌ=KE&}F3=_;H{t߭Uc̰N42nN"Z&x~Phj܁"h8>U9끏QЍ!6aGZg'_wVr -~p9,Pp\~( 9nd1a@}<>5b*xH޵ֲu Yf\4Vog:HyF28pf^VoId2[mݍS%$mK |kP4ۼ4]lZ싽uw@?M:pwW49e1f^dUtOoxFFm2ah}Jׁg澥qqr=^}e|,ŕѣcǬܥY T>L BU}{Qق HSP(ۘ#(_U=L11PA,cbR {u\RTUSnh+NnY'ͣt&&2ӵGg %츫 r, ht>X+<4kfCS nZP3n1š^NjDTw*s,\n}&M+ؒ޽DqnplKr049uI+6?ʀ_P(g|E՞bH.)f鏈BӉ(W6ٌwaA]@wY'gʟVم: jJd*,Ufu 5x[^{sg64g ֦1CB}MEia Nw>=t -ٟx06"Ʈa Y8J2F;,[*\gvxJdl.}& `¤}+ Xiи'4g;vt `@ʛCk^@D'7YL[YǶ&g9qyͻ~}vD 6Y Y~/;5Vv.{TCfԵpKD>#h_aZeÜ1Mm'uۉM#`_Jk?LC9${/LJA=7y\ĆT!5Մ C{e ͱR׈_PI>A7߹اhe^؝;=Trfh69Y.e-  \P:ͦxoUry 6_ߡ^Aø gl"+\Ѱs!ʱxGTGFRqƌmyw{KřȬ?Iُ8hUF@M+SNsV [&9=άG_ tE80[|6@. p N֢.y9{B0ҐT]*;\30,: 3b `_J[.m48Mn!>w>BH)Ie V 'ZYV5ON mXalpiÆ ҭe-KHV"yX;w <"6`ќĭ8ѱ(N*QmO I{ K6a‹(Xo'=AD/1YVDkgVIp)yefӞTrJk~6cX}ʡshPg- nfafOи d,kհYUd-eT4oNOd-EMML>}E7snAd8[9:O q/KᝉK?FL;瑏} )2xr}ܷo)pZ&$_p\s`@`Mױ^x\\Y@@^M}g`41bR|rHy%WWOLp~+u1of#Vl{#)50|X06z%&f`}ȋ*F>_gOjU`mXX:18(v2r;=>~VF($a A\Nqf)/|5I $-T~7yRR-o?PKoL17? nuvola/64x64/apps/kpackage.pngUT lA;PQux X{Lu!N(sk~y<ޟz=_zKCij.(pgz'_}`֨zܑgܱ]"3ӏ&e~i#IiiIY}i_/*C\"qAM삑r h6[mhǎ%>W{LC!HprxI-Y[ҔO^iI`S6W@S.I^mҵ:;;p߮jOcIJЧIk 7_"fǨH{%Ӎ ؒ6oHmO4~BM-5mv0CG<27/e ;2 W^_k4 ޠ7x+h7{8ɷa"dW?->ʕ_i$+q'+TX(+USQui6.c}@Mr sf. CZb5j$[=vxxq 'OP1p@jW[,&H?#,ݷGBt[&<!|;_* 04 eb /:?&I)`3-HkEx?KtiA=Gpubl-xsx݋C ٤D7܀ד/rU2)W.-~<5+&qUTW]xv;rtt iׇUbX0 ˽yu=f9E I9q3:hm2HYn Y:wjv腚y5YHKM yJ`^sc$HYft*B(⦧3{wy%"Aπ$g/9J[] P-m)i41QdAQ3FLCAnoL{X@7V`{A"6`TD9C򆁩`{>WtlԂB-]TL_đ'ǀޏj*hLrRy3[KK k*-+g/})΀c[[qV&o,1a&yL93۰!1 ,l`P^/1]Ɵ4nH&l~VG dw0`@VӣB (]>t+i .X!_ÌpBiϝfvA $ߓܖ˰)ovV+ey$vrw]]0 ΢`{͟.K9!CtnW#Ɖs#,W&~$hȽORᾎȻ4|g(;OkkzwB>҇H+sbA\/Պb U=np/NXȬnpLweG c<|E.-ʶh NV,W]?%oڗ=57yp0#ULQ73eeb{b_mdhL1>|1&qaxsjñk\x֍fgŵ™\J!ۨ!=VIІyj "TeW?x:?z&O7NJ~Weaߔ^Ķt3ޛFg[31novtN3xנ? Et~OYO" :^_~AJQbŔBm¤>d i[k93C m.\Gm=KFϴz>k?2U2]_D/ bh?@0Zb{+uC^ߢvd2k h"9h/*@(]Va-RR*ӓ+S̆vUcl]6`^Ε^w)E[> ް0OM[l- -WQN =Dp!5'q$wE"5?́X 5%%O$@CidBYn=`Y[l/)m!,dё/큛)WK(3~Qgukmz.%=B!+Hز, x "J޽Un_S' 9`N /cC< @4<؁?-DQ#(̵+bLA`0CDh5V(35U4U!C;z>vs&Q12ͰQ||v]q_.c*^V"ohÎ:91aXKeJ^8BkV WjN6RW?_kjpd~#/m3PNǢw^`miHk[9lK/P}SQ#f:Śz~d;mT0 =\gNbV HHͯ L _N]T;L-hUgN d<F-}*@"M7v( u7bMqFs&?9#2chthc V1}>K?3%Qrgv 8㽲Ri&M"~  68›#hxi cߑƟga @?;Y?vhW.*u;+}5-BthOݹCbWt 0im_.^cNKLU9~~ƇRFk;}Z0*7\]qdCt bs`MAx!ZR9gm:?.8mW[7YFGwS }JU^N5[}Ȏbq3 =ȫnn~J-TK46,kQS⻕ c,@ốI,MpoN._ 4Wt5=UPa~xȠя'l]7XӴ6y׶F H{FP!淰o2j*!TF"s1\P覵<9 ]Q3ag^`̜ PBZBct[u|cТ]T ΉlҩJ1ylwyrbJU>$~}Ech6H*Hg9 4 ]p\cyAS<\r.!&gڱyJ{=bP7:e%E*rW7SMxGNl=7eFM@,D5l p4 ]ۑH>p{J4dpܹ: L!~u'?#F>p}p7|W?0_B^#.T4>oVf%lV[h:bNn5s'*{o S6+m1=g" f8|:f0˞ο>@XErYΛp T\^h5/zä%CG|9L+L eʻ1U]Cbq\x|B2>%MA Ɵ/_ H.Lb<:/*vk6>"̥K:#.2Ipǧm7UeN|Ze UcQ&&kz:n$R@ElP赝[MG yv$$M0·u®$ ,CgG mU1A&(g.O<|ƩUa7Hsc>ìZ᰿ù}}E?aw1uTJLne1ќea@B={FGP lNp,e(uU0SI>\}M{ţSuJ$T[;6Ϟ뼡E)7@lT'CqD)A`73XY<snYy>Fc=dD)VF[f詁bU`ʻEUՃx鹰+4X$(z>wb>|ZNto|tO;} ~įp>NEBNΦ6%.6lhj+=Njors"+oua (t`N)"qtl& %GpZ|%=pgtΈLģ>Z׋G^<~e$ǴI(ܴlnYa=n : R2l/Ti".ҾyX\7iė <> eG t3 ຊh+O3D*Ibd'J)vH?otKd_fO˗1v6L=Oj?ʀ"|y9խ,l56u ZmOn٬SMNл}\Q,nI&++t+w{9r?| 33M[%OIs6z]tWnt):9Q;9A8>><뮌\cڱv6ž:LF$Isÿ /6褣9'j;b2ܕ%+ 3ŗ_8+/XaQ;lЁrvѥ|(c٨ݴdT)eƫ,/2>n"Oڗ\&0~Y~nv${&4 )"/"u`>4H۶z_#b }5__ =Lu~m&.Ke %r7н>g|ڴwLD BIY^$zT9ɔ ?$@P EFU3KdD,Jy [rv-lIg`ҍr 2Աaw;gLE^"Ky5tn=.֮o 'ҤM-]wo۾Qb,Ow^ Zx|0D׳7r6g}s:fsFcSX&H)cjΑ Ec>Fjew^+'IZ7+^Tus0|<ق8K|zb*бR2I-['h{"LI_c,d;^41'Zk-N'.ДΏ= );%:2;rwj-bǘ6ZtmY|S8 ϫ}̯ +?ky&Ա*n20᝽cW #Tpz :݊QWb9yHCCm2M~1+4%4bNho €yݽ%{QCκFaho{SjJn$p_5bO: `ny%ګPKlL1tcxnuvola/64x64/apps/kpaint.pngUT |lA=PQux  4T,X%[3-1f3BMXC 30M(K}U*EZH23T0$%1999Ϲ缟דIS}:^ە;KTUnʛTR~Nn?xVt=F:ʊ z^yF˃3`D 'FсL)/"~8xz )6$/RTI߁\5X_ #OAʴuM(t:GH$SA- E*ҷ_S?ZVuRpӜ˕+'+)퍑X e:M;bZy9bmm ,_N {[}}Eս{3Z`PUjSݣn)c;4߸k| Wo`u+"0$2xh5ФDu?ʮ;rF_z>G:WSUSG)ĉT0՚&GsO? !ee ZF8u 3zm"/Agp åy]) 8K{c%'ʚƋܴ4ӓmn<2έاy#Y~_ZhS7?KtBL|eq+}ٖJI(JrL*]3b]_+m] +EC}ȟ,O#3a, ?=Rt75g'*:~[)rt0'Rrp:z,`L!S ndB!r-ͼ?ku\URˁ؍ǩarWȻ+"ji5j=zzk̮We@l*U,1^>2SGexoSžVʪ8zb$Q-a29?ǓИs$^5VOɫhѺ4B;?3e#]׾v͘@aun#_VZ(8QDmlxҢa:=j3,ոhyf뽅mH?p?8d6)+4֟n'C%IaZQAߵfh QS#.~} Ӥ di~!B82ޟ}esg-L"DVw4`5!L{eI? K0:؂bE4ioBjAT h>[W Q_f6ҁ_R8'}?sP\V%b$$=m}z.x-A,9\ECaxQ% xd)gLZfԗL;tEdFgA"7KkE4eŸM7!v/6 XI!@J^>9O*1cx-1EH^Mx}3G6|׵blK#zKbQ8$K&d ᒧOB!lj^ ,^PЫdWE+MYN6+gc-_;sqy'QS M~>i˰{DOBFcI*tL }'McU;|j?czɧ@; BV+4 q}Ny, :KUcζxW02oH_t| (CCI-%a`UOU.Lڄ}:r}+Ȃ ijmԪfRL,GߘG,76KFBQB#cv2ac@wbO_َV-"8fzU-Ix.ӥuR;v o 5!!pkBwJU+brp2:5pn-:PǥMuVekbC*f0Gc@FT";ToocBk~5pҰxl-\ 'D*t`#<_5"4Fp7S{r:HmjGW-sC87y\@ධxWxl77mb 9˜q|\FQO-F as_pq__"%iaZiB2yءrOQ0oy 9~XFK DuAΧ)p!nhsZrpH<>?\]l-9G>;zgd1h-Ju;F7WD,-bQ% #daUsorD䜸?qNfJ2%}_c8jb0ocTJ Ǝ 3W1-]PӲ]OiǕbvs]<0no &P+o@v^>*_Uh?y{!(_ >5.oJL_W*2>m"DzLx..T&Jwۊ]n]Yfj쓉_DYu#8ZlF46k('Dm{V"܋b WSv6\4Ftm_S12m& ;fILPyQoT0cwV:9fl(6Q&ح4Kx34۷:[F_jɯ7Bk W&VJJQ=֜Tw$)vnWAٚ3wK"Y?"$$X]X]+ &E̞X1UզP|4%eH!ɔÑr0KkkEB 5D 粏qT=&Xׁ9s=ɿGiLYYkO22>0.n^vHǍHh¯ALن;DH S:D왳<#^,Av Tx7]q3,].Mgx`JbSsuN*QyDw/wJtTztavΚcfÙzw2d!yv%\GS yaIS赪f۰Q7?K+̽,q~YSANے2ᎌpޔx=~ݶгta^.@#*}O]bŒ=ëpJv!NMe|.ſt6պc<[> Z!-P# 2fh?+GB  'PxW{="^@@^'Boo3N@q-}lڡҸuYL`Ui {nSNizfmhY2 OϡK2 }n5};>Wwr^[ꮳJ0F: s4r5 lϕ"r?*VN=U"Hib9yaU!=R57i7J%\ )%hu^L{cMuƧwy  qvy~ i.>+*0Fp 1E8kk-H~`Kήq!W%<J>˵|6@//j.i nnj{3RC'-)u<Dff]/eAղ8QkJ_Xk/%&*y,Ϧ ̖Cs/ č~q>NQV@^^Fwe,Dž˦=Rxǂ\ڙi"π#s<8P:J}Np3zo-1zg{7*7Nֵ@Ǔ m["l=dِ5ag~aDwxrؖC(9&/΅=Ƨj:t*Ɂf)/0Ua+ۙ礮C_ h [3PKAN1Hl Rnuvola/64x64/apps/kpdf.pngUT ZmAAPQux -YPS׿i7.$<)"QA DH@DAE n>EAEEXx XFYRnRT+ "i|yvfwggvfϞ;sK `,8p~f ~/ e@E'&)>u/gwM.I[ljݷ%W,!Z1 jhգ@"S@- yDDK$g j<"kqp>x='[x,c FA:nj|gR_Vl.t!ZLX(wLz,BP,HusUT򶂇V|L_-T1B癮_hn4zűaƝW쓡Q+٘}dKRV<쵁Bb3]ij D#GdhML|.6ok b4 /^6wUS:N>:\gR!. +OH ֿ#b=)~P@V9 8ö\^Q%JJQu>+w…yeCnޗ I|6 `Lt_.ݕe2\R[{^T`\&rM'9ntZG8YH}hv+@ W+JI i^:&V9!Nje|}7if*(x1f 1,mC #4 E i ר+pS˙0DV慫$QQFc #So~m|0ӥ1wK -|˾ U4 $ÞÂ< 3e)*R8[/*FpVӦ1 Kۗ;N<;+d#il)X7DOm&i&> {+9$ Ztf>8ApGz?kLueyGXc<ˎ݆^̍1{с sVZn'-ɰ&Z_ѫuM $룘ݖ z<_-وɦ| 'Hio9tgI[PNJu>C -2~PO|ݴhad_7Ť|8 3U/ ^_8E5F7Es~N֣4Ou;]XW:Z\tB?.ZA]w`ŴS'9mk rlĞ$g\? ~krJ ]Get֍YJloJB#ϛgPX*"4T*> ḡ}Wid]Q᥿<0jn+"DŒe *c\cRj%ɓ_5O&vWK:;OH^JPNݤ0kOhc$p!@fԊYAlړlԕQ ]s@߆# cĒL'kHԑIřntfHlsxpPLr,s఼#ڷo4 2 2ss*P7Pf@"ſajyf zqԔt68 2.jp{>GSH_Oa$mM9(}-䝦A"8,`<}|0E+@j.q%mtdrFdo֭'^NWx}!npxxgv Qف.D"xGP2m+M{uP70B إ;`P,_!7֡'W/]*\4Vg\6.3: a'z?xK`/k@چO6rUոM}6~ >>Vd*c #3u^ \os-!p=˭&x Jm!t%vw+ZX&A٨I[Ѽ•67~O\׾~AE^:Ȓ`TQ={m?Ǜ_G7m\|>pNpORNOu>L? g~گ^eŬ (7oBQQ :gi Jv :%߳jadOϴ)~E Rf% r~gގspb9! &DU٢p6Ty%dLE kvv6tڱyTG=s LU\"3^:* 7-M;kAQ9qAX>A:&cCm4և[!G  1%'D=DB#&G>jу{W@܅ZV8YPܳ%jٸ>?WIr\ⱏ᣶<[4s2v3Ei~{%WgI/OkBa6xvbvC`Ś+zPһli OgM9Y='tw'A%/[̐Ƽ138wm+fĘ``O&tI,j]p)7kMHNi'%8<F"B{LwNX_t1JB+/b)[cH)(6Ÿ>U+cQ~ 3m/SQ0M[6j 蜵x7̾?@.6]Jcޅ ud- pS>0q 8nNp+@lx30.1J͑|>e186(5O`]@DePOM0ʋ\Y,|=ާ ]'Xy/\%r'E u0i2^/W}M '`X)yh麶Xf${K^1?7il4N]~{{~Ke`;0;vvZlU/yoOD-؉اׄ;KG͕\E_T)&둗/ڐbZ:'K* qlfu>j{ .ƃm%sњi%t\ry%йCޫ?#ɒ:`oi EpZlZO'zR@T,B Qb鏢鐮)Ds *4++ϳ("/"d=᫣p7ETu$)A k`u8PR|=$=,$ õs' ;+. >Sa 'TjOqӆ`k{,}e_e_q c،SBaCݸE ߊ2d i.U5R.+?WIXSŁޅ ʗq7gt@ 59%\:ЫvаSC'snCRgxk`Qc}KO,,{\)Kr!mmrJ3_ZF,dEL1[g"&<YlXrxkWD9$]ztG}ɖW 1F D{/Iqo5u<\ozi[UХFpaVH?pA1B2D&T,ÐClrd skܥb3`y5Hr&pʦVȳ3~[,~]tg09.>^E1)]m _eJ?q6|.{ 4kס^`̓|9{h"qx{0oj3(Z5/?CigUr CDv"݁M(N+c&^%.ޞ;urSCF?P&nbY+۾۰`31EZ.ߙѯfpLn6rE0sx˲uJGVYEgF/%p  s,g0U^Щw iZb':<=\i' VN:;zX$; XO!Ϧk;rH˄gS*#t\#cg|M!ZZntB8QL u[rA-Is:.2LmW!7Uy+!wG.;.N? #@ӄ3kăK3}S "@abP B<,D-uQL ÆTAQ܀\-KܖF+3QًHMX>I2=:+WUIq}jϪhTr>2`&>HÍA9jnO>%:P-$XPlZxܵt-1ý!r,hh|ϭ{ԬiP(nl : sΤ%HQpXC dtͦpUbda |€  hV#Q{=*laA+5ܺ)taXA0'y%({ t ~Y' .x5]y]tjqCc>QXqgYORI4\S.wC[&&6| Qc26 -ܷz|F('mJj 65S9sA \xCjҘT/; .i |z'^1ώGROMLo@ܽr/..w&&blޫߛR'H=n$=cĵ&HG&nCBqÇgZuO{Gu %̿t+oT68@yKA^-iVw$W~UX_L*sy\M^S _ՠju讎),*to⠳QgԞb6}C'?~@u=d;xpQZζBZ _5CyٷLZE ~̊i&vʋDJ~_M3vq27-;rWtpoZUa;QPߨV0< T^=JJF44L=HCһGpbֈ|;Iv>_}2KL.1ol"Gt j#qJzXvin~>ixMi0K h8Gddr&?:NNwe2c{C1QLp踹&攘RQ|X940mn!܄+ҕ㍮60}Ţ)QFo;3?i @$\Lm%@M 8I ..l?`=k G$i@" |qi ax*I`I9\!~1S#WX 3nϣ/"(ou7@˰lzKTVik#I,z^eft;D 3mDۜG;/1* F [351(ڽo;=3`Hv:;3[/1/@AQh>7oGPt ',ҮX7\bK]Ylyb#AhS ٽb<[xgobe.K㖔[z]Rքt]?d'GH5C%Ez7ՅGUOm+s!_ !v0bH_7̋ aoe#[1Үp\jVdFO-uƻ[ [Q+n{@ji2y'^qּtGVD0G_ZZQ|J:Z!ϧg:JRkCixR%J|H_lVj^EC"Fe܇FWtkiZG66ȥg]YPpz(8ǽχ׿A>zk^Ye2F>\A#iX3bRHŊw^qbdDY0@ٜ$'<0F~~8'Tc$U>fzQsL]{[w4rh%J3JxzWvn'ot.߄^S(>lv3vK\6]|L}T7_˙.Ɇ5IT9a n>U#^f̗5IC'@t2Xt8`oޤ[4}J;;iw/J:x1,oqJ8m\,wU\7DK9:.he2$Һ,n+ \,Η6zG md3B@Y2 VT|ƥS38+I" 7e$ru8hSqp }ַFٝ{lQz<dhf4 4P&#fN?v8Uet( D"|dz%3}rqyC '1u[:em2{ 9O#,y(ٽEUYC;`(_Hx 9b1Ҋf2=6mXүޘrә##VBNc?%50::&nf/25s w,7_*i%9A]n6Z:Q^)F=r)b6cS o@xP?#>oɿ "#0xvg;*C}blتpF=fA۵=+\.dE!bicSaImtJ s8H_ QLWꧻra0)t%(gej΢H;=Ww>U89DbS;tLbխ[<qN]V$)1q6P&Uȅ8 K*\mG1ŝct5 fNqq07'ryå*k(5}AD  mnir|]'t:6<`#(N<m&!LB0+Kbsk ҩW*d) ^ HeE?5pX/-u,  sY- +\-0a*[~ \h.WA>IgSGd Ag^*u*<R; @XN7¼zi`( YKUOƀԦt3 ZCת&Hi، o@( agyωŔl.߷䗇~rKB\uD-e菶E EUPx%[z 8-q{i"O>Q=[Ф{6oB#4(|.fޙ.RxI=އY*4 i5~~ͼ;syT ,'d-mesnCyH+?Ewݹ7'* }o5u530zճ.jD OQMdqp*./k_ZB G{OT;5jh--; ={DT SM]S =c Uy[=:7f='6fw CW=?.\{62A[7WAgЖ1m47 X^0Wk"; W}ؒpYn.í_[]h7͋zwqq8[?"Z{'1 &p:|0[{uN L.5Ex wsblnb'܌lN;€`'4YtP$nǽGÛh߾`dx-`S$PO %"'f0= [[|1S A`@qj:@wկ͘qF%uƚw{M G{Y5 Xpc5ՄžO8Ĝ7ƞcX*f彷ouҳu=>><:m?Pzss:'*bɥgZ,I z%mEHWģmB8>hƟdͬY_FeI'/b}]Wz B/@/BtX㣏kY1˽%7eNnkܥk*]xu3Ao5)1k%kimSyI zzan&M%[(zӢetVP'@H} ,<=/^EyC[#]wdde}#2 ҩӌ}鳾 r@8j 5p`6Z&Es8Bl)#0*Blp!"A?; =ޡpK"RfgRަ3Xts`lfMZ5R(7g9-}΁x\a?3nHKFte]qo籝͎-X5ǘKP#:-BUkfRI`q[;j c]1xʠ۔uI1V gE.;ZB"Hz~'9ڠ9h7cɺf oNuy xv *!fɲk"ݼߗ/o;[?W9Hg{>1ѱ:,Ys^h0yE g6?"eORa, z`qN64A֬fc少T 5uObGBM_.m3,_qI/|YwDb8 ddbīV+^!|iʴ #.UrVN٢R:vK3$LwЅJav]ͤ[FFGD'Ni<2EK_M/ƝO#^eeLOCݶoyWlP!N?*HaК#kYlpN,\h,XE"hֈfGYLTƓ"3 ]ޕVNݢMֶpΈqA.}V̅!/H&=^^y~ɺ'x3P(dUN/ra>^Wij;*\g"0ڍ>V]lCwϣt/#j_bC 2II5Xش8G̵|΀vMUdS߱W4E˚{Oe#Ey&) zfZJ" :}RN 7%nQ(NޫUbQ n;x.n@5OR0,%^*pP t}nS|n#LFaxT[3 ^ME: Pe\[q-#k:D"ᮣvv㯁@?Ϲ{s'VX{-xqASEu0ڬV*m6uTw*9#IB^V'_P/P8=q䡻O|Q>CQ Vf`?.Ȥ/-_ o sӣ=Ӱ9~"*K|J>P+ohGpR+ᙇ&E|Gc:TwqR''kpkHwZLR_: )1?n,/>Čb51HL/c#%d?Vz+^0TYle;mze3V4u/eb`\#|!\ȼK(kS |)E&%#,b;nMQioP^ ~/:^x#7+'@ߔv"@89rQt:۶YX vT9>-1G쿳o!mLe$಼CL3|Q*"+7,Cȃ $T(fD16A,&Fl9 d㫫Ŀ7ou '?o ¶~Ow̌!hY.\coGa33Prߔ44,|u4 O8K.6Lk`8JM )_k਺8\m,yX4v _/y07U,X^&n_i(߃:%??7;H/;ѨQ،HG4>9QNn!&-Sl-ԱԱ4Ed#:j`r_aWY[uJkBI~$3{yY9aTD\EOC/4Rku ,wK<=˳VC8m-]&̭I%iC-{m*')8sOKjaW9"zN[hf\;=.K9a'`Չ%$wWybϵ>toʆ%T߭cۨX+(巘1!8Nzqx'ܕosqy_S'~? чД:6<`@v{OT$!$H~Ѧa֛Nut2dbS.JFnLc@mȤ=Ofm^>,uvHzoѶd~b6#S{3UUx|B(lMByN|vY` ʈ#eEӷxkmx%q33uB|(Uycf` IG9 Jei$_v鞹?"]߶}jXWEޟCں-BsP' Ӫ*5yHGJ* `>xG *E-;ُ5F=x/#&@xku-vCvڌ~%n Gᱏ kc#ɱGP|Z<7502ͬ=j{Gp7h;%#  ڨE-[i)lI2;h'`>"yN[_n1% e97b 5 0B6P_k5\rpk3$m5q|7^6;T^}Y БҋIn-stM$g{>j턻{ϙfpLȴ-WBW'G>u n[RFP(;QwuOzxo,rSHy݇şOIf?"Y*PNj8] F`ia$Ũd USۖtSR_;rvOʑ#|<( ڄD /,Gb<[!$Mu6h_N0 DNz$rE= t6M^vϋ"GuR8j@5C۷a5!,{~6iFue,j}F]i =)ﺒ jO㈜d&_C;M'VW;6L?PKiL1w3nuvola/64x64/apps/kpilot.pngUT vlABPQux T'2 I @4 MB{""X(* @A Py+5 f!4 oΙ3s̝ 7khV=c AQf! P~Y]X! pttVU-zZ%ŋ˱L  {x}~RO,*uZh`:ee[o\(,( i&йϏ2ɳ6^wXzk)`|ʁ’*N3 mlyC"ek-ΊJV.P%[=5D +{q sccWA?ھ}h[զȓ| X@R!uߤIaF.U7͍•_;{.SZw:(u?v>*&Pxbgʱ~k(?ZÅ$INqY-,[ ?FF)gqB gL),X 14G6۹o[.Rc"l%+PAئ@kymMұ8)QiXe,N38 ^xjx/5J_^P2y l\nb RcX,ꁳdTw8Zetf(QvmV6w7KrsA j,i5|\bX/0;NB KWt]gJ=Sw"@qO,x&Jsw>0{_}aɾ|wAH+g tsCbT>RurWj$#ulԛ4Tn(/VB28G4ͤʿMwA|1OCXon|0=E?(!ekfp9uu:\X?ʀX4 CqN (&sYV9aǗS GvT>C_']7I1C="K֟ȱ"LHv#P_  F- V?Ys+--X9]6qFNvRn5CFsa/O3-&,t=1[6C_ȺWcb"fB,"_Ź?#kVj/\"`neXDɟep phKR{Id|tk>Bx'E$|q8[e7TXp9d%?C)Zd}0 ]@&ނ@KYV.j&މS9kyĞN04iPS2d%_m89x L_FfQ5A virzN֌Mo r:=vV_oP2\<2 |S^&ȢJY9Dؔ`Vgr:|-Ǣf`n8fڔ LݜLtuC,ߗH7WqH@ˍz2'=WߋĊ:c t|ۚ.\`IS,p9~!\hЛ`W8we2wϴ!*R# q iP1=!'&ҏMn]\{jTNԘ)ʖiš<x">cB6X(B YOǾeKh`Ɋ51ѳa$Ǟj1YܵrhDKè\-o uTfX:/7My)izE9Oܻ* kQ{'ym n+o`s`ȐP=qф` Ć13_"iR*{*;eà.F`(bByL3ˣ-yPKQ;⮉WYIQcYG8N~u\8WO?E&;} ǫ?:b`R>J ?QЯ)5ρ~t~D'iQO"\43Yj&X0Mڥ:?kׁ,#`"e=U#0V8F7_XVH񝇱x mt3UFY(+NGHM23n zB]iX_g@|L71xegGHao(EݧWz6P%=__crL?8C/((3E_¸ 0l/\ϕoL ,lXbz».suPlDNmq(?6ʄAc(W~HasWZ@99:N3Kcnh,)Gk/d&/]qYl-61W|VgE`$ߥ1.8ntt~dF0O3{5rŇI 6"ѯB[:X\0e4E˖-K{Nh >uXf!_(Ryc474,̴dWHʕrR2Ȉ:_iZo#*Yӱ; *}hQoùz"<\ـ^l[pCB߹^Nz88"]|J&%E׀WMExM'x5Fߠ55r*7xe]cZ5]-feh-PC=m(|~}Z m~jY+ ,J/fz97EgXq>V54M-O!!ࢤf0ݥ LrtAaG@BAn.[A#¹2Q%8jc@GsF{ 3IcsE)YE;֩m(mko4_oجjA5@e15ܓ5nֽb4m\\\ >%KT/ggPz:ԩ[r ]ةo>T yxvDSlk$9kkVfmTу|fHSGv !v550wbBKL<{㇓dG { wِTbfgzx~h;pyEm曁%L5sG HNK*Rƻ'3ᆴ~ ޢk ^M;;ck/ bݎugaGw%=y8`$GREIOåMдT0̔n6z+(/6}PyZFD/ pܖTT\Z/_Co\+]V߰^+~Y1<1Z&]#kW|K~_حuB 8U{.5/rHXR3xW'Ns5cVU뾋m~YA߇w&$A^ Df2\)Hz\x<Ê\Xݥ1m~JXV}2Թ㕸l{g^~`Į8 #wzx:e<Ʉ=+{N>S#B"JjWP93δZOdSSHgMo A:s 83rx푵 ˼x kҷEgkEeяu0XAK%І@m}E{fF ͆bqbV`*81D頑[AuʻH3c*5 z*B6sI4WJc3!y@T!-2Z&W!wEEA1rGaWwi*УjI/"adY{{ L7Ơ5;Q $ #'rhe@'zt(tx2bk4d9@OH{/uvZӶUh#x d@8+bb=B=R^advw0F5H38sKs:}M&ڵWXDF| VW"*Isș_Ca ;DշxyCqPǍMNS;]]YOvcnƽY HOՖ88̪<1fD0JnXX]3dsW>Ze4^"$uk6ij((2'vmϿU b ˡ#3̸5Kq1.adHd&*H+sqmcOqV4TR"&vAL\TM5Swkh ( 1 #,:Dd2}35+ :& ,2QPpu-ޣ 87)8Mu2R~*ywq xD2DbWo2ǰ_ܫ#̦[~q$"R:6!>2L:9kus .@[2tlJi%8ճ_kIl& @D困ymiӚ|Ԍw$ ĵc]_n#w:P8ط#p {seIKh-m/$=KWfl& vfo(X{RTa٥ W͔+T^eu(pAAS:V2O.V.$bYҗlT.-sb!)CJߍKDjXTj_;v"&M.]#MVbӼ-`@f GW2{>jF'}j ^'|uSMB?[T>SMaS* jݸ":nwOanx䑯LP`GؾB!dTs2GpTݹÓS=}'XwBXpģ3' %}n Lq-ļbq]o{{NڶRT nC HtRLB;*g-K |@=]3& qڴak*ђ^uJ+xϚ;bw #hMDmDD38-3"y:8LSa r0ʙ5IMҨ6s[uϲcWI1D4֬eKb/WJƦL⼓ai$2RU%Ra4@1}=!s[޿-zVQɥd+YaH[fyξ*n&/^V)>c),cV3\T{Fobl)Ѝy6Ƶ_m;VPmWݮ)D^8`旱PnrД W)_2\\9EyF(I"K|8ʜNRyӌW7Q~3j[d-(]bՖIuhNk]ޙz:6l#Zz]8"+>S_فՊJQigbCLH4z{+N[dt 6߮ZBݚeN'=z0D+—o3Vޚ oF.U'+cOqS'Ha`ԕab[89|)6C@5^Q&zz…ǒZ#K-60 PS#1hd֫L#j ٯ2rfjҷRtקRSbÇZrO-76w%~Ŝ!M=gp0]L*}_.:F`B$S͞pYBqֱ1?^w0[.zgnצ,PxanG xպ7_PKWL1E9nuvola/64x64/apps/kppp.pngUT VlA@PQux My\[ՌPWN^ @i37=ԖSO1Ot0Qfxʼni sC>O!2CPu.AJT#SFPͶd}\t"|=E*pfsq6O*h5VӑBqPM|??"։$ 3ۣC)E7Yc&Cq$^8^;l/aG*x0Q1Ɓ#$/*Y# ^^Gr)8J"Tp-c? KūG-F\)D덈6(;CI+kHW:>,8qV4A\=oc!lR\9bzs#E)sK)DyK=w-bbCKK w?k Nlb.GjICj*hsnǕ~7+ ;*P1Nڧ,*JBCåX xsZUQf>6Q`A )(ۮXh&[z/)q!VlCxM06ewҾl$, WvC'/H'ܓ™!Ҙoėt9E)ۥwMX_~oBaTu`?&iE#ucы\rp$2r25j"x'NÿGր/2ĶTWFr"hVЉ&D>+#@%=hnaF 6Kbh;E G"#qtkߝ,8K7t@mV  Zq_o]NjCE1!Rʄ5ϿJh< n>uf'ؤNjo tΙxQ(eK /mz3I;W i1,#xn]%4P/dS[g"VS6OL4mvs8H?-JrqrįޫtiEp{$᪟:XkRx鿷Ѩ:l:K_*ڗJ ըD3%OTg~1!wN\SLU*)=si;#A1m.\u1<ˉh[KF^ 0|QpZ[;WUd_3'N_amIbk37\jqM|WĒ S'ap'7Rr1>db"bY`V٩ rqPBȀqnv72zJq KE (aw+MJKB3e a%%9jzi-5/+l1vފ_W7*o4Brkc6rCg{pϤrTs !ELgY2c=ErZRi6|;:\ xs=$ԋ'MFN&仼$ m9#;(I_HǑcUjΜw_4]T0a`g?l? >2ᛲIrBWi,.7 OH/cnojO6Gh3@78Uֿ˔~ŏwnif c2.n6< GQLRo6]?ѡO;bחp8? 0b09uwb11`21buFElrE" _V|;ܻړ }o JukQdyzșO,b5[8=_ꧭ [Vz 4~uOyDֻou ܟ^>&:-OJγFuxNOvUSCz"aΐpFa3mCQJu>O߷Rb.D{S{-#TIP4(Aobps~ɣfKR`H8 KV'4wlWYϼa˅G]403 YZBǑǶi\=4/__ "Q{$qkd[GTݨD.z+n44KqikՆ', ߙgĒQ;' *ۜX"Jvpp㈧͉Fv:)XqQ&)8 d>, J_{ MQ$&mNV LׄFU'Lo\PO$PN'-H;f=`fcuXyhsdx%1S!*2 Ti}ٲeF=73wi?\$;bC]eO;ԎG"۴L.[a V)Ҷ"^S۸e$Lע -[ϋ\HяOI5cY^RAôBb.o}Nl Ul5~dgyM3bheur "GθPkw! Լn0Oϖ%PKt91d+s nuvola/64x64/apps/kpresenter.pngUT gUA=PQux eX}X?'mfQ[ ޮs8QfVJ 3>?B\';ؒDeqB!,Nf-͟hFcfJ_ 6 3uZroks/ PT,i6 ra+ PPPE5@(GA~c;iDlpuԤAB^KiIj6qT°Z먤ᾉu@'L—x#$s\}ofוv#2;EgQEʌ9;$Rvљ %(4:FAH@sd${f3sqn5w!O!:4VGם;]x/ɶnͥ >XL~ꅽ#.0Ցhg:si6SKb ZnC 6;)2^n0 ~% >pY"^EV\&(k 6S8ͭrH\ђn aSY_2 cΌ VOwTmxh z{? }J 7 Ww4x0UǔF<]8JG d$ϽDîG-2:Uܤ=򆯖9^u}/Te Zx+q[~8ۉ^jM5ݑ&T'pt;'@{}z,+>eLG{7g-/-[>L<$*  A}<2f{>~s ;:9; qI @RپG_9rVI>dSg,_0og\fGfކ9lkl3 pzfJ|;cS }_X_@6SR>jI bNݹ~{3 Ik_acubԈ+`גJfYe{sXzHx%3YQXT2~·h O˞JCaqY9Xiɸ;8=3RK 櫰0.,r>o,+ ;'e 6:h3`U ,6 A k/^pK/;̲eyo3hz7*7d"Idu3 3˓1s3,! g&vnj̸sҸ09CbZWnUi08Eu$]A aHNӼkn䦒@g:f L9T^62n=0[9Z/H*^_yckr6L(f冒k_!`;{}&sWNyYL:sQh{gF0L ֐𕙞^i73^y!•lל;0 af#)YVdW~QPP4m(P=j찍J 9 [kQ`w=NZO3_yf'%?BvbzP()KIfY*pd6/Srӕ,vj=+ *>}m}ZH"(E_C-y,`*l9cWU ,@<af@`ǡsU{{-:j,עZ[BKKdI۷S+:9!S 4)([@ww&}>ipy Ȥo/%!o=,f7͸#|舌Voʕ0'gg Na֘x*p0D`"*Fw=4v럃%cW$IWsZԕɇG#t]L8!:Fiy M!䮍c28Q, ?C,Ul`J!sVŒSq"w,9u{ B.+$K]LqLôJ{3Ț/ԣQHpy]V=9_w۬e eN *n nymټTo,6Q?{H1#ƖI)p$<De7;1axOkv<ۏtG\UE{zmﰡLv٥,SâZV.40*L/&p<ھYBI]z<7(|]҈y >̒/uxcHg}DqG>!Zsә9)R&gK[NStr=;Ǩ/'50Ak!"ްM䞼}L2"`l@qϽȦ7 (9(tvνD]&m{nCV֩F^M[L0'#2Ū%a̺ob޳ؤ uXd+|aDά!y\qQ/of#[3ڱ *ޟ 87&GPn ^@A2ӠՄo]v(DyEjr!0z idVPbK D>Bmz,DfR5~b{ W$=qPL2CȜnwfHCẻ,VkڴUzyHQ|N{!>F(-,Xp$l>C~v}4Ǔ|`||l:R၍/BӬjC}!(u˩ilikzȜ6,Jc%>7|,*r[bZmAcA%kݍd2M8N╖;ի޽mɤ]fxOFmq'!}; / n]6?]Z:wSbB`C9*w.\o  LI^n^nlB࿭Ά/|).IzBʫ NРu~B۴֔`*wZw@p#U}SדeԵ,Y=8q,'E =h2Ufn]iׄ.ן0flRY62i-|Sz㯔tHYa̠?mAJ ޼i2yNy2M=LB-QpYSKt`w|$[6&M|,,( 3Q Dt2ohBU6ZOhh#۾ 痾7&SHd7)O-- ߻lVt(d, WSirQy >%u84T:v{`i<) Dq TscI}CH4WBӍwdҀwɶ7oVf!Lj`53 @ W|_#EA-Q~=ħ ́V&W+ɻ?Ųؚ ce{aj.G+瞌0M]L!.'6, U7=(e"Qd54?X׎hpB]O@D;(euKeU]lfMíI {H-kϭ`CWp5:*8> [ /PKpH1@Mnuvola/64x64/apps/krdc.pngUT fA?PQux WTSY}/@B@@L2F JQQPB"E旦8 ABQi*XłJu:ܻf1sWUU@G1xULto:q@fU|t蓧zQ$ϣa|"?r O7_қpQ;ڵkgΝ=k@ <Cg8Rs"ňwN<)JdL&3qqq l~E7 vTGm`0\3K9.\)9YYScM'OJJդV~5vI+.Y5 em$ Er)|G{>1))㙙m2ʎRvJO GqvD===ӬQ-ūKIS{l+(4pņZ[a#_H\s,^LZJؘHܵ:9gʉ˜i1={f2CmP4"JӍ*o"Ih9pG,ɜ . o؄mrёaxOŏOPW*J~9^U.]k?J2&9O܃ݾIfҖ35(!qg싡 `-S/ "\4oq<-v{gMI>:y H@V>ēCB5C&~st sf ;|˼Ϝ=4T^/^UԗZeFwCJpŊ΂,>pS# 9z [\cO!mgj}QvrSGBY?G'[Vݲn,!(E*ݾ˘쳛Q yn̙pJ,w]}Up|QOi%hetEցYE9h2m\b0RxjZc%6-Y$$t΍_d"<ޒnF=QIsDOWOPtWO9Pt(Fo$bjC<$ a͚q(c&8'(>(k:6b[p/"ݽzn!H#Ik6\z8k+;.{t]7U0cEqvT&6m-. $}`Lb͇U 'Y@Ei*=PPOj#5%CV ó#f \$4" [Vsdn%L:9T2+R׆/gF婙1ތsk?vvnVFôx s_ BL> 3rkbFgC7g!;_5"3T2|^"ouSoWxؑzGGT >׌B9wi2)_Cx_P68FMuFo oz®=R} Tnf+,nhҵy^E+?WoK,%f #^W_Clh60@PfZ-Q CȢE'1{f@D;eIKdh*|P;W߄(0|`BTs:27;ɉ X /}?(\ߖGDϟ:CC~@QeZYa>+"1 fgg*|,ҭ4 _ui} zhܐ'sMiEeݤ3^_ Dh417kg+u0j[x.UAp }4#1yHYKm*uW* ǃ4x {#y&q%˨1^Wgfi&:xZ>{9fx_ ruzΟ>\bॲ+3+rGHw7~eWqEsC$œ. r7[ _QWG8Dk;}݄22iRw}r[-Ep;3c{'tmsWVC)oMJB:(_5vbIITIAA |$a 3[faG,r \YT-FU&fff-{@|`fypƟc8GGˆc)rp:Y7|h@=/@1W=AhŚUsX |ya `1e-)0tq8ָuHs"r .i 3,6Y5d$럙7 p+5GV5fpe6TěsрO4"a.B'A 2F}ev2ۯ:p;uouOS`qgF0wṋ)H)aAԧʉVa5A^_O<$N>*~MS}.۽䞾I Q"4uz+ɂ(4z6(*Í'4KY(aAG`- )S:83`Y!w0sHpx g 0eʏ;B9F+^JR[E7EJ< KRc Vte08ۻX0_ .~$fRQz٦Z6cߢˍv"7jkk;i⒒UUru9av=E_T̓>Jqy0l1j=ytE(' 'ӃDgGJښۓ*B =¢#M(۷h{&w3h|yyWlpܬɍJU U5λ]3zEp@gZ(=vaPKqH1Ρv.@nuvola/64x64/apps/krec.pngUT &fA?PQux %WwTSY}%y Dt X@A8:( "E $"FF C22:V!MHP$&_{wݵ:s{ߓ>[7y߮#cߩR8ϋmNa՜/~GtXá/$:(q00W%FuB}"nNOUH'& 7fAϋh4ONKVdߧ0[  !_}Ex 1ACdŷ jJtvA$ӂ-TcH1`&`#Ξ3= ""?W b`;*Ms!N#~jcb8%%9DQꕜj>&C7#PzJ,԰~mPynO58ү_#ʡTDJYxAS1*8 bϟ?oQifT3sJB]?k€Fo4jq"7r>/A1;zN0&X߄ ME@RyʮX(*%ƺmU8]OP Y@%Kڅ O(J'w_ ."ûT#΅+i,$bD=[A gf@ZnntMKWl l·cvD -'zq#AHw7]邠\qct]n: V< OV\Mv`1"fI# H. %98hɡ|Ee%8G6vRQeNcӟ{^u, -+/6CLiFLM:@& e3cub-Iϱr_(UnFfU6o#jt65w' z3l?qp8tL\adNa`V~y`ӃƇ=X *[`YNXmUZi7Fe`2JQ,|@ lPĠ8ch]1XTƽE-tfH~N$/soҴ -o-"O Gjޜ oPurPq[T}x(*PMV]i Y*ܾSn6EipCh YWi&IG Z(krDݏo/ܡѨMPۤ浥 CVHOye5l ;:RԊT2B87MMQhƓ=7L)*2`b3?U-{J;Xΰ*BЉe.q:/w~)B7ꓚu.Mm]nߕ8h` zfA>ڈ*_ C0Yfb.j&et+,d~?Zh6/v]ib2y ډ\%W}~\,j;Q݂6<%jͅ$Z duyu'ɾPCާFDH "^PΥe$F?.uPQeXbO蟽"i&opbp55zrEM0SqV='qSv>A;/d63U6QfM8PvlFDl ZkaŸv/{uZ:JQP,>&KUl^uXzOālz#v4ۇNe;K5h*1 s՜.@vavTݨwLGT0L Ktj!`IC}#BFT 6!> >ld27F+κW?}% 3^>Kmlj46+A>ؾ@dh%'vQ)NOW*sm%*DžZ6YNƺm*a|D1PO#t l{Bݯ/caYU@ϽM+B_Ti ^xv=ٯDXRLiZJʋqD:4[51zF{\Y_Ɵ=vj%Qq_C8K%xom0KYo}&<_]Rb=il[@4b]B̋7mΐ-Ў,W/#omɊMh $=dG*W|+=HD"i^>b:(j=6|:jXA xlغoW~PKpH1t2/nuvola/64x64/apps/kreversi.pngUT fA@PQux %WTY~ɐ:B%t]$**YEAP "!v\ *kU Bo!G9=S=oUn;c(G06uNg} =~*X`G =Z F'sDW cE&$FָH*tBB#Bbe)san ~J͈'hUU]umcREHGe~ 7F] ^YrOdOaC6Nư =9=T4ųAHANX8ї]aظkܪUEI1y KLj'̌:`hH{Ѻ77JF _'6tg TQ2TTVӄ>,DQeB}B1}'Qц kHG & ֮#n?*w#QjtZv>%GbW "z)aٽfe5Iip/Rmslܴ-Ej$v_Ǹ,{+RAC'evIA…|X&DkG;нGv al`P')3%["t'g^W曯mERYB -iϷF측V Y҄—hS=b xybIփ ' o80/{OkCWPh+]AE4^1,x+ V#ȇNSF7ײބu>mx#TTRy4 3ANiAe+IKGB;/:@RfGge$Aw&xEpP5s?lTIi_N2!Yj_gܺxfJ( umۯq]o1{ΟHךcj{[)P3\745iH% i0N3*"o?b\.\˘~o7Qd@:"H. 36|lA붩#%0q +9!O^`&KGױj"=$a0F>UC+ZE/:pᇓ_XSK7n.n9S_3lDdarD;t'LsZѼ=pRK v^Qz>#>S"0Ka1=ZF C 'BY_%+dD_"rԌo'íǾodl=`v|ܘ#药|} ZN7n."3VuXiz:Z7;\!ȕH5==AH U 6kDe=BMdFQno;)^>-07P߅M289xU:[a2ҀYhKdI7du TQկUXhƂEQ\oa`fk2(kBe ]ZzL.^Ht) 펗L(')kLaDN6-H 3HON5?kz$ h};Qa\FEW?W=#m g< +z}k1O*%f6å]}ty2ƶmHb#wSy]ПXÚ _ja|<|Qڹ"GhSD{lUO,27:j$h|F"zBĥWN4%zt?͹MIQ>bpiT;QLE;l[F&Li:'dRAA^y;[:Rla i%0No#$wip?pf"iʾ|)e'jSR]7*ܮ"スO mZ1*[8@1-\SUt d6%p:.M7 L{W$ӟuh;W?s/bXw#QX{ ~_.I\j>u.p_dB.-?uA5v8?4f؃?dNK'/OuA[;%l@U^0^,ZC~X4<7&t=ش>|Nr`+3r _鹚ltGa$>\̜>x&xȶึ ~sAul8S@j^ye* > AN>ߢzJM`ܱqnd1b|q&v͜";|%7 VM:^;+#A@f[GY86#lݶ#Kgy\QU{p=N+* 8en  N_*'PJvMgtͩr7`G@9F~vZ'DV:܈Z.J^CoiАɦ@1}=~w~~ddnvg3i%ޱo-?i,iH>UVfh6,JסcGC_|T8|vn#T+K!Kztҷh5_ͼs'vn1HԦӫsoVXo ARTmK)hٻ I0)} Cxޢ S۲I+[j@ ~0f:AV+ip<45&ϰg"169:$/.k1g& t}aT5liViӽkK_ܳ&!iCD3Q;1#U Ռ@]N,}_T|L ~,7wYx18q.$gXMƼܵ4鮎hXOg;E6\S7MMY*~V^L͓sx5j41N5q\ǎY50JȢ");0]7o#b~6Evإ+]] ָ-ME{-yqQCvL*LܜELr؟ZcqUxA5%ILu;.k^[u>/ kkV Ko<kHֲ[7fDi\]sQئ)XbANeῇXj@gG(4H|=}v}ۓ PK;^=1%s nuvola/64x64/apps/krfb.pngUT BZA>PQux Xy8T>a>d0dR6K K%f1ŤM,3FvJf$K"cw9s9?>vnUW5T@{r&70?4m.*Y7u\Hr8><{<,:rwdM.U(Hjn&4v,< HkLo~y0l6p~X}S&Uu=LuXz=?9\ $x ]Ek7˞ݺgJ{vfolŠy{·>bq* }6iPJH{ft k軒#~A?ѐ#d MH|osÔdjYOrl``桀Qo qH bJ<0Q47< ~OM\#Z6 R* yƌO+@;Hc45)T)MkrJQ+{4 ؐMkN4Yб?Iٟ' 7a̤󅄍BnD|㧜>jv3n`_Ǐ;>aȖ"\fh67ꄷ[udge[ӛ|zr2#BoFtu!nJx&[Yћ~cf)^4{T>2Q׫#]/0jDy'!ueA糽(@!5wC0Gt3NjN킫^Brm{f34BߓsK5}ʱN";5oXt4D/`]]Y?a,WOVFG2S7SB꿐.3n)'wS]̳#%s,^$};%5JshPn:h)1,fu-5vT`WhfǺV! c^D~]EЮ1T9[,/(‹3jH[F q#8"lA,qA+!˜?qxh9\M 7!gAPT⇂\u6u_zf9~'ŊwёszЧ9 "jcȘ%^|h郜\v09̎H&F)VL teXivmv+`S@oBB!c~Ԭrt# ]^lEGԪ:~@Q#Oݧ是> Э1wQ/m411c%(=/Mo iP̾l ;?#HDRXLf0!=Ь0|82|@؉J;2MX+1n]PF* $t%Yeot_YG50e81m[lT`3VRzք?aje=m<蟸M+Z5@+cUzfNN3=32xvsesO9@vFr1߉OӅ9Gch4̖_JRay#z Yjjv%Rcz^ۀ%[$)X-ϼ+P> ܻwsk٤?B5Q-\T5\B].QlGpAO̺[pƧ48fG\=LuE~p\ȑZ..k,1KJzsg:VH{Nߟ!PCua9w;|_13R0o" ֿ n"jIpjaDHb-f. aB+R 6MNv }f;"@vQ|af !jbEL7dB4 .@]yDe7= KdnA}v^ޅSpC",Dm5M>3(qo7Ā;߾I#()R=jw%#~c,j7xq̙!ff[9${uTMM'aaKvҒ*ԿH$@ 'Hўy-[L |>F ~_IP+æ,wRcWΊ<7B n-mxv&<{5ΞeV`~OYYp~DteR>@Zx{+7n3VlSpWQ+ߌT d!zc4ntVP`ob\-þK2}GXlI^;WV&1bA@s!Tz%=+z\n¤{bP[[S>?,;Ү*%4#pK;?dH *c`m~[;ߌ A߾(ϐuΖ `?5IVH]Dֲ;W*Y&hoU`Zv;WK)E<Ҭ+kxDp?ni D?%l\Zz㏗/lHl(z='枻}LLn0IA~߾m`FsEC5m~mcr(M1,TU("] '`ƞ ٔ_=,+kSG8)aHzK%{ޜ3<~HA[q7J'sn򢴊EhCifTCw0OO pRR-PŀN/dZe)zp>p1׭a;B..7ଳc soyo$ZJ2dNMWV2I8m%%q?I3 d xiV^kA6lYkmm%@lAR5u SB-݃:hcq~+;cσ\o $klrE( G75ۚMQڣK-7;yv#' Ld≞!m5VsN,jIreMU}:XʡP|\3!8(F29^xHUA(j*6z{j՛nJ% Q5vDFcv>`p^AdޅZЖ|;γ\hqÒ5T ^:Npdi cI-#w&ub~ǪMO'>o/RfZFw_L|tGS#]pBka$N;BB~Rg"2FbY7bTp[n@~lgPƈ lfXt+{O'reaҦy'77 芥[?X fI aH nE'/. +PqƖFs/ۉW8">p?7מpT3E/Q=%ZN;ݝ0Mj)СQǺ L~<Hreohhls.zV*9D!C+lO4B*dxWzS? )>&zۤ6 *ol`y-8앿x+v=kK, rNc@7Şzv%HDy6Db~dW~om&,T,ءS*6%I9U>)db#~׊ʯH(dJظXG;YdXǏKV3F ⾻6^ǎi$385 Cus_Y}jpܖobY=v枈j`fk6vq=>sXϾ۔;R,S8$AotJЁ\*w+[/{*:}||2O|k-B곏żadҳӮ']D(AmzyLk57??(DNrjD8R]Rr&%mpSBo,0sGΉ':cY{;st (ɼLRɁT88PFg\eݸ2Q<]OARR)#4FofMYyDKRd͸`W^S#VrޡԁqMfxzbh!ш)(MZ)OokqX\ )% ]T( rFvv$PaYRT3A%ahKP_LBj oHn֝;xo0J!΃=}M&Yg}ThZ]{@ 񥩜"Mct]֔`/!bek6m<_߂ z2 f.35ŷ)y"JAQ|"s'AyS LЊfk"i!.!JeΪ@4 /n{ QȀ`8唖pxmv1Oj o 7MCL0Yc ȳ-ʵ W\wu*=5n[mJ`ڳWS-pUUpKS!,馓v݇B,T b/l'Q+nf;nM>>߾2d@?$twDxڶM, Q'jk N:)/I۝H0+> %X="` {ȩƨhOK.P(IsPRfdeNȨs(*:GgVxw 3OyhԞg r8f9{/'޴S=~)_e,9K30Ph~Ԋq ʀs0P(d+#,v)fSnjUZ+1;@oʳ+/*!z6qUIsšxl <ɰ_pdP(֜ [hԷ/NNSF7E8ҔV#^|yiZbN/F[(UPL}fm1ֳKBfZiץ.7uY2o HһVC-LE?f?9:>7𼭐+zJQ=@]7Wj(Q)=K>C:9_ r /}H'6gqkvQ8MOXYiiģF{!hOA?d=+BiI+ .ogG% jG'UM+W)wQ]^>6 ۑ$_fJbXbUjRڔs6)+ q?$iDl>ny HWׂzhfG>>4$/.@Wi'A2̮w5MA_83Rhp>Eea;Tn0;вB}M#TxXc-ןvq6'G|bc' ,Rsd6PAX:ǩOfrH3Gg6#+?6Q Yʼ ؏NRtU=1@^ 1WN!}H){ϥ &Gf0%AݽoQ\vcFO bDpΨy+OӴd_*|s<x4f]èAYPVkfؿq2۳PP਻Ʊ\Jna<'#]ؒ Yd^^C鸄e̅\ Qq- #f֞TϣN>#{n!'3O1/N}t]5<{8"rܡ,Y ެ])cR6K鴅%3 PQ143;K׵~zލx/ ƴc~\y9+f)P09 3@'rc=|7~PKqH1 X(nuvola/64x64/apps/krita.pngUT .fABPQux W{,TT7 ,/Kz:GŒ.A%nf]2^@ WR##j#$bf|XWZ`3JZ9 AiQyލ_O n>r(WY"Io3r^+j(-Ici֙ RD{>ֱ`Zl\_^T@bVxOMZ*;~苖О&$JP(OjA:dVX>8Y έvflhHrsQ1n2l8AB8sW [ZDJϳ|,G.-q%0M$r4!t95#V4(1XR -YTSN:4K%*K_nS]&FY))kKזEBPjfM-EP)r-|*L;<siS}P(wA| 4ѻٍp\eOy;vu%a3!e11s14;'0M iP(Z۷=fu|%!kksP/č{Eֲ "@0П Ӫ4Pk~ߕȿU~@b/*j`u?;(8ʭ8 .i#mves|hQX9YOm(D3cVtXͤ- $iKgQ E8\-D^IT-NcM^p ;?-$g<[77bu[xR6M"/fRe* R)QB +xj+e 8YZisf BcfDE&c'd2P 1~T'8`f ɰ? ֵJJ0þmi4 !P~ qZDl]^-^ZeDŽ=Irj`.a=@ݚXȈ/mI I\dſ'.6Q8R8 ' a4b'(ŘvxjtCgV4ϘդVcth^ "/ 1ЗmiN i'\o=(%PJ^hŐ=鬈`G8vʩ^Sy{ghut=c635+=i~)q^JE\'G&,Gx(M\"J9#b'$xTKaN>VaХ#`'^>x > ,,;f^IEk-7ƙ l|?șDȄojd=%̪hJSIc T~K{pCxs:g#AT^I+u?_sg_M/7nw, ڟS7KN 2;?;T}-+)Jg?r?sIGWsn?*l"2[v89M&vN55*/= x@4h'Mtk@z4 |犞 0nUZR\yH5.C mrvK9K%d쏇r>nؔ lt9W}!51AZP4pÕYRQqS@eйqڛvYڠQ`~+!OmdMd8䈛TsAyN6R2>6 q# o"T1>ht1-Kuvq},7f+6"I<2 0s'm܁bv0XM>ո 1:9|8UpK uUٽN)Ulnm5JZ_)lgFCy:RcfR1Q3%؍*gMK9~W-)I5t|-+yh,)DⰏQ3/^6W/EBeh;ZjHPzE׏@V zV// ;hXkxǪCDJ*h2"9jS?+FVP5a*n5cEc[;]P1V4 @lVgfBR" Sq d3xu~Fh5Hw9âA7x*h0)Zdv/Q(: e/E:D٢m} fh2ĺ0l=l"X6+n}j<:{MVQknv轿S(KL GL3i(xd 6.Un9h'qs9+Y q_хZvU8$Nb2vld2 25;/][TDA[R׸Sr_Fb֯KoԆj=WU"#ѵqB\UEPA/aSon8k a nw/ŝ/"WקE !1IdTy)!}w 9;!gálbd+j1Na]LyoD|=ؠ /]\ߩ$*U t/2[ R(0b'2ViUdE ys{Eb`_׃m9pRyϗ]mI ;[l @;{ds&dcfݨȁe& W"úWG ܒ-ȥb yi3%"wTS t'Be)[Ndܠ i(6\hBG Fi?Sż JwAE{]h5c7}ٖˎ\uzy#ui $aWJܢQ=EvU#ҲFz }姉@3h"-z,ΥnWipU6 ;K@(4,4ptDp60_c*;^ȓ0[k,}Q5*G'FNہQ4fKHԸ:<*n]~O8I|BKޞmC^LVw-( $`UE"u&y|M?1}HG Okmsj߿`wc SSf'IJO|cDK'ckYpPYw͎[ur#i*,mF4qK'OCwbؙg7ݙdº3nP=,ImUlPUXJAIFqKne~}68vbCuC"w_4V߸&o e~fX}5k؁ 4@T$gULAc豣s5t뤏P}h ULJ1]T)oE5z/K i#s~vPU^s\^n*rQ+fWaFH.{ Ir<'y {CeF37CGa|Y2s&'K&t;EpcYձal-wR*妒F\i⥖m̬[[鲉8d8B"[\mB!U:жFYpan62iT{"7;:tʆ+S r٫N[DH(I2RK\{/i+w[û-'T/yDW޾u PcNҦF?I(gv@x5 <{ClM*W~^L7H^,a'OeLyv*h^]KzundYD, >a ")N}Ⱥe Τ6c]g|bw,3Wj$X]N-?v}DaY^+џ9N%!U|lP ܏'녤8tM3%\Y'YgjYW +PvAg+L*lhhʍ3j>T/wGaϙD|_ٕq-9O퀈;ª#Cx;jR` QNNvIU(0븼ҭ؆TWhtpﬠAZp@H@ < $^Qu>ȍÖP֢Wd!(;r0=zrPx,(U\( ` Bc k7]T"KYijYxLNmr &?M!FdO4pRbBr. @`3ȯLBŒg߃۹ÿ=›k?wŁ>H ﴧCq!'ԌJ\Wύ&70։_JV' 5C~ߦ}̵Cf\ZY*E1f{].,fKacuʼ!q:U nܱ(b~2) GKF͢U _[ܓ3E(k}XF~8;2G)xGRJݘb:I~&p%DŽS?۫IGƄ^ULpJA~3Xs191{]gA{ ]:m,}љa>S69#oCxKm<6պ1hZPAXeχƯ5hB© :XX fRDeTܘS?P9i:)-ó#sw:="1&3&u934߼zC`Wz6m0,Scuް01)>}Kj 9|>gΡZΧݹ.Я^|JA*WK%EOuzMO4# (W iRߛ$"v~ƟuQ=/܆$ϻjwd!| _U)撽)ѱd06|n7 &[D:_Ę9 h-:V׿>-q&8\% 3Nw| 84e6R&W 5kV"Z5D=!Omp eD bhfBkz/K_w%#h)B] m嫥yP2^#ZA!*Tt>6w^FJ`IJVVߒJG#[qa\w >.6+2XTlLoKP  Tucfo]n*mu)|KuN7ߑQ̎I~/Dwɞ+++G_wYwYI> +J'(M%N٫16?o<sXC$&/xI>*Nis9:E,Cؗzl4~]m:\ q{q|չfF(_Ou;ϗøuѨt{|^63k3(v ԇ'v(Jɪ6۽j;5ƧyRJ4v&8byrAG.gϺbfeݏ=m:hPtfE \]W)b_;c9|bO?P PCp,#y鞺{_t_Gv5U^P)UςMuD9p9inT/PY|O̾hoj{|!2{يcʴ"y@H0sf(fsdB"7;wu:8!>L ]L DŽ7g*;16"[H-gIwut:y_HV=.<;Gwھ!n272^>k)RM~v >VC%"+C/zb=j? Ϛ?L%: \==g~o55o/,e!ir/ݛ4IN;M]e˄wxƼ_P[vn~PK qH1q4Pnuvola/64x64/apps/kruler.pngUT 4fAAPQux W{8l6gfrzVۜCHB_Ǣm!P1R"y9)ՔSIq3}_?}u_~ݯ}_4ڑһv h._C!@+vZ¯ψתa1/w:w)˟2_B$9"H{;B27@#Wg9ĉO,@m QԎt d!P e&8drVD(aؤO,,2*iNkYC 5wTĐMTWd穬D"ZbPjkH96a0v 8LX5Luͩo(-wIɟr{L@p+?1cߐؐ6iՋ&4/Iv2W*_j0SH oUЌEҥ.!(whϭ|/uᗽ05!7).wp2A"u^^ {) QƳk_c`'z(`kǿJ|g{-oV>Қ@6-΃XϓNr*,?YGxmsdoVLBiNT:/E8Gڐb ̾^^=ԴaJo63]~TTmHTϲ e92dUFc68`[˻X8)=߇3x}&Tbl-@3`.}7waͣ/ bь)M.Om b{dnB{=wxEh UJk>37f~[<ܥ;J~tyZNw277N4[UסU+s!C&~z!Vƒї_m(Hқvzms޽i5Lm:=:a PDZ0 $KO,~f@ިRy] {bؼKKi'('w7dJT_cO֧W].Z—ݱғ9ۙgJp0 =r-ޠ4(Ɔ/qj> ϸd^=rTA?̫-EQo^[xIgC9qN2_.69uss\Ǥh>y6[&t %>IX I̒% p3Z7]ɥ@/;` ~fCmkyr0E$La{zX*1WA WTb|bHBn5SN]h4zei_P@h h toX&<(kS *a#M.E;dOVvmfOhMFpYS"tp9u=KY.`׏?/j ">^Y?dG45XUK75qqF𯔟+3A, wv/d_&q>92@6DR)֜.Ӿ%Y9˕܍Z.9 n](9'$1WkϷ\y?mD )P[ց5KFWĞof`jIỊrzǽ)&?9`k[hw_Q!Wqj;ЌlU7uʖJa=mïnw 6pzIlF[12ہFn~@ slltR)oĸC2 Y/| R>5UナR6'^a;Eo^"1Kcbc%XpzvV<}NJ2U/["e2uˋEJ42!Ȃ []6 Ld 2ys+Kpȝ>'g1m]Gš>^~}C /T!]YA  !"cC{Y$b2}BR|({R9J,/^ɻP| N4X'arsv>M 2،HBۦkuM2 #31C/!XI>1]g HGTxt;횪!㤿's18thognAjvfsv2>i6-a#VQ "pbj['mLq{d&R:S?>:HHƻP+MY%K1s|R@-o PKqH1hԂ[nuvola/64x64/apps/kscd.pngUT DfA>PQux %x TR0P 9ef/SȲURF/h=M3_j$ZVZjjR-_JPٰ8fi Zu:{skт 0ڶuװh]ɯ:FI&w#wB?Xq̘Pj-'p9mDad+@ד4S" HcY$҆791AK_lRG>QGA6u4?=-FMn.-)bݩDI%GI fKh@K<ةuU9YNV$)85p4k ۟D7,)s/Ii 'U ǫ~wXPlxgrlE@}:Wٞ<{ }f:ܳ#maA_H\x[Tg`ZIn_s8[qD ŢWۣdk&4 mZʷK:ϡ YEe  a7MG2-[#:3,"{4a>yG{Wli^=ѪU{<<]YLD"Sgtev eH?|n%+Q/_lHnV)C[4:R4qNYH7\-x` f1w.&S/YF4p]%Phuh0kw07?0 `.J>.lebُ.eLɞLQ=J?}yScJGʖX~ InhuyvYNҋ8s4Q'=,L(QL^7n/".C$1""ħV_z+ͮtwYS]eB̰u-eIz1?el(SUōXI|K'[gG#ɉp~OMdvUFǽcqaZ"ionC8R%~0D&-JZы*c+6`? evf]G[]ڮ|͖\A-Cg-Bw-B&8^PAk{sIPQj۔'"W$ f%OBִDF q[mWE]ydN mF~QpJ|b"D!Pd|,p*פp[g8dЈOaá AۮU2Q[`!Bds9q-)Ll}c4:#q3~TM(Ɯ3 .P} ]G"86?Y[gt3 hsk{\vxVu'r]? 2ys cl8N8N̛V~J/YOApґ^C_/9;V=OUT}=3 HPXL^^RIX䵭|!!ip[*AFZ#4_ kI˄B_8Z2>ZuvlWF"Fq_98M- Ro5n Ǎ:&Kic$-UVLy=v%@8 AoA [-%gBǍyqmr9wO' KB}{Z@6(ƨ+%]@V5{^ŹwFujegqq3^A>g(1 Ø4-P­޾嵊iUPw6mi2Źn۴+ww~WJF$I-?#ECt2ԛt';KvYe>o/Sj~n`ݭ1s[yHVdkTgP.2i@2# 8εC$^IзKM Xs'k^OHgkĂ7̔hz4#vĚNoo u$Ynr,JgfeTB~P"γ}U34Oh{*9q1KOi3Zͺ7~=&tZ^&sml|Yq5a`U Չ[+\w&'0pduգ b [IPp+sS1izyuubǥS@\ .OّgdjHi jݒƑF/亽1 ee~0mS [~uV #8cJ#T/,hwi2줧0Y&sM%ya8Ӓ/ Ct9~EMm7_EcdۯjNA/\waoN _/4~X{OFe!Y>br8*={0 I"$[B佤U:DtKdk rG7|X9Ste :s~2FH:cAd?e(p"k)JW9yTa,p5jgPRL_eRMQϚ_qQ>NyULģu ٯɆ@ **w@ Qz^u(_B"ȿF#גI(N/zǫH}T7phU =_>~KF^H?cmp}ߠg9xU*gcJܜ&}jz#;F߫E/E^`½{όJBXAF;B6HlSv>FeW@Ula=!-x>0pN,m?i8n19s3xX)0a>ZiA g x &)b>5'orCK?Dv)IS̱k%vsH#uޮ\,*]E}؜1}_ ha(l[T 6[~kӭ~U5K& t]G_IK|YS`0q 6MK$l{]q=-ڇj?uޏW=! tG_$*&SeJ͚+g_N314F-Of\p>ܖQ> ,2Y&Xh}+ߧ; k Xg 9foYa_⫆*P22!:L`#]`:;$^ѿay K5H \ZnrǦlW3"I(X>eIk]O9Z)x`]6B=85߄.(PjUL2mYZr"<0g;0xb\2C8nxtYŽ kFgu7_5Bم!B,Qz nW,[qܪAW*%|dQ hOB姐VG{ 3("AFEt0)_^@ ȱl4 P+;6qϯ3\6 M兞ҡt7ܳ#0Oc +p1s x Xb6 a'{YXv^]CK0Xq%Sq`9Ve |~= MDƳw jTQ FL6 CF$y׮SI_ UToZK&$fI׊1q !mGqe+U)`{Do{  imOѤdYdn/_w# $Sd] l#ʣ.[;?8$^)G%f--S'8H%V6^$M3[@y)pU̘RImLĹZTSe:gpuᓀ+~ZGd [.1z5W'8p rABz|w+pOF?b67 zŌWjDq"bҼ4.(&<7=n>C\yI!7Lۅ ?-Y!{ZwGX`t,/2NyA<'P:ٞq7qj@g545/NZNҵTҌۯJGxJn3i~ػ~NG>>Aϙ3g0c$zu=KA!h`gN RYe H^?Lyo,trqtn;Oytz}mVissŋxcH4򑞉Gn ?']Ww >HR0e,/hn?3d-Ը8S ӅG$-̕Οעϴ'f*{^N:2ε"uT`윝I{c^8&捽NzUu8Ua:XW>.lcq t8 48}5o$oW:s@ry.8jD́MMMԬ fYuzuV3>cb!TFjU%'"l3W[Ex2 A2_j!ʼnpڼuHk˪ 4Sl+D̷|h 6$[37C|ce63j~K~LRpY-yt^z+&Leq EgD:Lܧ6.___RQQ)447A >&“$Zܻw/.~+5P5/xJ76 7ߜ>sn%:a/#Mϖ 22#E5JϯV1H휜e\ l%Տٲe &Qsf*~ (WceߖM7rrrs4d﹏zsnv/Bk gfw:u¾|f76"/n#ݸq/D)8 skd }rQqW+뜒8uu_>تN hik {lqUDc=F\ b[+Uڹ(o8ﺁ jx#A1@^Z}XfXX`II ׏;[o \]SZ9nnPb>Y:.x^XKҤ2]!ORZAH ZtLLqRp\<&Va%*+o}nWePwѡ=u \qIJZw{3mnr:+5r9eY6*^ 8>*gmNYq_b5 bUKL?Q.DTr)37O3ri|[;8 iǍreЅEo I u~{K׮XK*W=Ak H{;\;3OWF]~ /jRCKb̒h!TጏC ќ G *o%Ꜩ3M"j#9[@Ϟa4<BiwݩKJzn0DrHTJluo w~cOhIɧIJmkt+n<ǫX~S6ؑd-h>yRq`8Lf!A>j\ EkV;?G$I%UYvrbb}/{X BF\/k8Yj*oXV*-尚(!0[]6 YNtC\{UB@0{ܹwaS8I"uzsI|ũ˭V/䖆1X8C:-ÔyiB[^с})g>{ZI~c#hk"ܢWћ.2蟊?{0/:[_>GCo;e._:Na|0qMB [v!Sַ?|\̍n?4;7l.[6YO^_R+.3%!`&ivRÿxņ}H?* U1|ql/VqqR.`i 8eF&$1ucs&y)1 fzWN(;D1p+-QIS)[uzo][Ue{byd EhjpB\$ ~9cwp/W*T &bMTT3.?mxZBZIudA fN์@%mr$Ml&w&}vud,$˙ēD)_B4ɗͥ0S0؆, "ZYQ2=`Z!ج$=eGMk/N PKt91_nuvola/64x64/apps/kservices.pngUT gUA>PQux Wy} {4[}%;c%q$:EvomwD?bBGC"}C^;vVڞw+bs;?60pwss˷xifYYɴ4OiS,KEE2 Q%$2``;d61 RuUU)U%ÀGJ g / \sE.]:38r= fm"E`z~ߗuF_)l/*:Ww?ϪGϱ:>ΌohMh$ǎ::c6f\kN VwJ]x#5yyp!!Yuuzeр賈BEhIc@vn7&iJlp@ŋi #Ȟ2uԡX]*I&@1ȉ3x)9uPn|xM<䨏VCmOF͏w߱uk)͍M t9''P;da[N1^g0Ec)4T+)|>|`sͩcVC޸ij:JeulI)reUlRMW4m6 jԅ{MM>=+*xS2k hjjr!qsrt1 Bn8CJZt :KLsFb#AO?7sWw^alHV[nI j)x\KLn7~ݘV^E1_n0~8+>[$+2ќ:E="+ *TUUq JR5hRCPT;k! Do) aCBZ[R>`Bar_f*IO._QbFpL=#P5DsJxڪtT?N@&KkA`"r++O]R8GDws.e!S{?' ߼o?zfG7\C6u]9JB"#{+cٛC3Me/pԎ4)pVq?Ɠs ++QG}8s*lؙed=_ӟNԥ*XK!X#<9ē Cܟ@*3Es61Aa<3mBT,翓=Z laD& pDѯ:By4.P{K>xuCp3&jff?YFI,B___f"nڢE;9I{2T) (hYhsl>f9mFw GD vc 8ӂ6cA "Ab#OFYFܖ> g_<맑}hU/_@T*lƔeO7'< ,eԒ\`ӓ.51'? yܘ&X|: &ZZO#" nA[sw-%-YDe;_8_9迶׌JΓ$Xii_M*N١Q\TGԩ 'ߙ&۷4Gg$4 Bu~KO:w쇠Ch/UxX*^Z ZmM]]Bg8FJl6hbBy:HOgE3\WWUn P/Ws{ޯbj7>ͤ.." τڏap {&(66}@\a;'L޲ѐמOvv7޷Gco nqWx &{FUZD/^NuJƞ~HHaSkkkPJ *tX0uVXFck3ĴS>Зvw3TZn!J*PˍcAZ+.$G*r>fGa5$?97nqvչgyd.tԞݑXHmd m MY_iҬZɗU`ye[ 9 8{ҴڳNTjJ:QrWЕ갫?2g_cuvu<6i\WQK]ZZf_G q96._̀ꬃ׀xoIBk@]Z1SV'{tk@vk>+K,$QDå &〟0})%`|ki֠T=W85W4񜲰4XX޲ȿleuࣇU!Ef=74L=&Ziŋqe򔨱F cS[2 =*Uj'Ӌ^=wt}*ZL7.o*?6}7ey.27?Ѽ Ԕ.s@_޽p9O'cx#i̫h2A<꟞&[i @2-aq>A~@2Yf}4Y,3 w }Gobl.;rgB^ZCb}3нF*fR h/Qʿ~T$7=t$/޼s7(>!;mLV(Kp6qa^* W$^ ègP"1 czP!B\P Z7{{߫*J ø6Poo9AޡQl9& g"0H62”ݵxzy[?|r$&,t8J.BRRIC؅ύ˯񘷷YP( |k|IFM2h UƥG4o;Vyrhh\B(n'iħb|6*W2X8KWW=ļHkQSClblҔ۲?wih~ ?iJ<8+:+Wst95 $eW'N\܃\F?/ Ҥhg5= ȑㄌu`meu9 ghW#Y%.LF?/]ә~-ʿgd/#bkK/(gǸc*"?ƪ4CcL(W;o6}|xLl)mvD~ɥ~Q_M0娪]R(į&,씒Ԇ x\+ q7_P{%KHudXư>jA^1p&QЌ`Cn&Xܶ]~NJox&I4+ћ5!d`sWЄ unݺUc 0\ @.OR| 7V*쁵;$l@9#Y/ 9kȐEQ6o+Ťw'y |+w1yGyqO RY~;q87rSγ]tmi3_;a)]'5(}SSGvr-O?< Fݫd }ڋ"_2!Ti7]}Xo&)zŮKE,\#GRz3۹MtAJ%⁞FKMx;,A6taN^OZ]EYpǐٕZ>M9y߰ `u˩3 b^HiX hKfjo^ࠛ_F0YǁBWtyk4ch+qTP~$qg|QEuCwzJ%;cϹ]y F?6<7~:v1g~5 v#[G+vea ט PA$z;[< 0d.89M~ݚA61D-8q41M ڜ (!{h,r7D ~_#.O[uz~#o*uqZ&zDS5S-GiÓp3{{zH8_+ntxr>M ܝ7VpBuSA.2RdwOs ׄ,@7/pDndH4UCtZঔ۶ML>@t.I%nRIrֆ#}1/}izlHun>ӢeVݧZ2.N>6 D0VbO;p?us?B{%=04 Y0Z[kHwܰCYL1zg_H>O,i6)wBWӥލ +=3jV/Es45dЯR=󕨉ۉ?,؞Hu%pHR%: ML&Ưn zH5?g>|@%XR~w c-CCJd \R~gUo ^V;sQ wdA/ 3|[pȌ ˜0%l/6XJx=UGfDo@(i#Xۘ yMC^i^3_fBG,}VB#GLv$w&k%f<ѷ)a/@Z8P; ؿ u_H)3= ƏL /ۥ8O, "{pO߼yӽ*(Ԣ\䎇RW suzJ8}f߶S{wR%zSйQj)wOxU@ZJ Ou{bN=Mh:Ace=7$:{`PaR)8=Lh>ԕV Pl+-`QYun2E2?^]5 #XFi7sz-ԩiche )k+ nt{zpvyfaA1/O >giyR@t JFAiJ6=NOGW6XT4sc0Y8B'(Vއw 4%;Pw-pOs[^ύA'$iYwP}}?&ʯٱTUQm+(Y:vtwonm݈H֪$Elȑ؉ 7$,$x93sBmCbDx8n8<;7sm+|GJno-$@X$~̹g8ZQC!9y;V1GPԮ+lY *B?;ʑ`y[?l8H>m[tapPK!qH1;i;nuvola/64x64/apps/kshisen.pngUT ^fA?PQux W{XL[_̞.fr=MTЮ'()]tr8%HN#N*$h#NMqogP*ǥS.oηg?]}~aK-̦,Ww1%7f$T@y|֑O3/yITčɻbvIl8~֘q1/H}^G"u  GY1!L=*阌wE_*̹⬢?2V&;qXi' 2AlyH`!^&mo|w7&F_3~RQ!%Jj(<~S/@&acu=W4-*AԐELwaU" :)bIDowTr2g[ܫi,fv~ 0[eJ* Tt8ւ~6xϛM\';ŅeG;00A@?H͢mu~DubBɚ'GJ™%.&"yfۨ:?n$ڻ8Dn%01 !Kl.4`w&7"1lz'*ɔ;7?D)3k_PEħq)aoWI_jb8œ$02Ffʼn/g7^f / wqf",,x=3K>9jdVxK3VΖZ)sts[C6 Īt'-9I~\r^m0ֺaT:n{^z۝ǽ-i n^tשў[ƣhӈ0&ZeBi+ t@ ܫޛ/Hg,Yry 8O* 5U3AaͿWoV8g] ى;fbṗ?A]o9=XQ+E{FFʣ'P܏d0#62O{6o0M\xE_ W[~CXl_qtU d {PU7rF>jD74&?=r}Sg7+] Ǐas.;7ϣ^3k_mfӐPM5ri}mt^ba=YY%"tt~p "_5r[sfz0Ϗ'b`.w>5#,GUT,o ƯO;a^P9QZMȢBÆ]/I{}UÎd^⊝/J凔i~g 1,{mg, #RYY岾^noX NLHQ,sz+8+TFYJ` V _ZG/.i҈^΢2Eo1eU;Jo%j|<2I`LR^^LL0Y{GSMhۻ c(ᶽPX]-\> ~h34kDe)i43~HfE,SP5`3h=-Ha@'5@TM M:߅(Ұx_,|EwRG;sӑ{ZGztH5ik{eѳ9Tk OM_Xe-H( Iu)ra#Fju PI uѾ Gk<3ߊE;Zڢ 1]ڨTA,;xRg0koNSbqP̉EC6lm/˯П+D;>WJ/ Sϡ"ŇsX|Q :WkM ހ e5(#W># 쒷}jڱJ* 6дA;ir [q ocl3Jye? a=p<<Tg+TkѽeJ@.;ċHFL"]MwHB_4_Չ I2B2us7S+2]s=` L68klj{1DCO O6k1w,Tv S]q ,v+!0&D>(tز: IXc9_l))W&Zry%%*#27t-{>DGK=Ro.W1TjP5~clow7a\k"|f E ՟_QC=}*.q\aOvlC;̭=}bf!~tC[+Ü̧-vê[YkFb%"X( S;-x7~}h>c}:1o^ɧn4dž5ϖ eo{e0^R.2WOaOIzSBh_oG۞Ő킴/d~}Wؗ6i\6}ǯ3 eaw:(OZKΦ}ii]o}y|Nvz{ ="\gӻKtan'h6M'J m?- ?+x4w$e׿1\`'}MW1lފ@8dOhlDE(24.IgM%ю69=HR'˫[6敁Q#zXfČ|wSj jd፫{}ڬZ4s{p=xu1q\5*uqߥw:9Hp3p%wE{ .^Oή6A&tnwf; ADBӖ#iOV4o^%Bha)uud@>%0a"xN|6T7[j;*qFvWuK ;pnL3L'[LoM-vc[evB^;M? |L HR]]࿣B9qa:/Մه79AHnBo #2F٭*D9"?. x*`inj̸Dy?G$ 1_pݫrϹgUWm;}[rfһ/q CPxR@Ya=0$D~1h{j͠LB՜RT$n-~P}'œB 9/1/׬9w)G$e5s G6b偫e=EEe#.ט}7!*lcqzz9E= ÉVpCi;W`#*:W0@O 2|-ɡZס|2lY޻9(0[좽5 A/(tRֵ^Yk~_ .![ZNq]͵N5vҞdQ.i;F J+(^W.:Bcɞվ# xV^w5 Go }LS>͠?T5bycd ySx洞S}8Efƻ%W7'>{0,T/.{8};{ mJ}"^(hЗ?v\)SܶaU/?H:ɂbP3+n|8`~# 6BwW@'ijx^am9k?5I MK,ɱ{:3E6WH_=zW u>=fR|C޽4+i_;CNyl;s 䯐ӊ2jA(e@tM̤\u}|[ฺTpef-zαռZeJ#}yTbb:;8 InoRIÑg)} 8!!''!w>JeoK+߱}xV~_fDMZZn7ϕݴӷ<9 qrYU')m;`)p}_xBr\*ow@, K @ֿJgP2ߏ`Ҙ:DwP#~zX5jA@ &H0oy ?ǓK6sv ~lt ͦ" {Ή20Fû/;1OF'+LMƇSh4(qYELBQ v U%T%E.;~U+O'0C6v>x\uO:mcnohM V*NTU$ww#+xSdǵ2mLD-fQ oB$ӟD %k`A!s54Lő Bc2a^ {Zb)OK]`ctWNq#\ lVU\䪾/=ߚ9̪y’@!mmm=!1S(dZ$6N*ӷX*P[9-cm1d8x{cGHW s2ÿ>]w gT)Y4k:W[ U5(_kGv~XDdD o Gb)xAߟ@[ h^x*"';;,ށj"7:·/ [jYte9WKweiu/^} r`)LyyP_d= !'ЙFQ/6yq؈{r{xi%3cy4gGE>X8|kbcC `6e=%ER7j0W6F^&}m@Zy7lɜ}*k6vfH3m:@dį-w~ִ}׎^v5v-{JY[)hQt]пPq8grMr] w#63(p :1hfW $0qZV){J=B>;k|V0Xm Νl\l]kYVzM*_T+\U*Q9OKV4 mj¶v]Eq[j'.\8?1p>XX_,i0.t g,7-uK؉ToG ,'k7tyv-LE{ +b%_9Ӆy<(HUʧa֞] T)S%Msx ,l:zFuo#^ ٣;& }vcB˙ 9[ڡ! &OeB1?UW{u$-tHVɛJ5qb $8 ͅsoR7])GJ$ΏgTQ(&Г15ƙYn]ߡMRiAWa*XB}F8†T I'`\ŲuK)@D s@n@sq7&o[?pkyV#QQVzDp Q7EA׉ې]9k=k$Z藮 8owqnhO諬D#MrGu(C4B܇1`&^rvenR]5saq: .Ϛo??Dc}** Xv,D&05v:LL5BtbegO`͏lj q'*skhrse ښb={اh]~7*fI}Pz!WA/Z}sW+[c ۣȽ#aqбQ(47˾ΐ|R@G<3P0v^__M: 6'[y\X{ff3v鿬쩣PS'W*vI+*NZcmsb-y>|"cNj&l]Mid%o:*()%U%.'@>RILH'ػ\ZQ.~(X)5Jsq` ~"ޮw2J۲zGg'vY¥k=aeԝ(MgK>mCMz- ob-ɪ ߧ nam9n eVGSjxL,nLf>`_.;V4B{q]ka3q]v­vmTmoꙞ‘2P?ZK`_\cᖝ:æĢ jgƨ:(!ֿs#MN/X\ȡ# a+\᤻0sϡ Ե< yld!H!T*fܒ!dioƣ:友h}p]PӉ2=y2G 'b3pU_la*D*|H;;.gmz!`Joh~^&{|7l |biLF^l{ ij b2z*!{$%$Fy bN6E=?(sx,vlgN->ǵJC79ĎAB` k4SW+U?H$rRڋRtc1K 23xCFpcc׺AA z`ݼhc41!׉&j @1jred@)+H$Kđ+j JE<[^ku00T.El9;![?M|Cݨ(>.B@4GykyS&mœ( g8ͅL`bRmCt?nc,0dg$zq7WDhI|񈀓[VV: Ur?A`3?)wLllġJz~~gIMiy:pQI:j"U-um~1Vc[=;n. DEj x͓ȞTϬ䀽aӶLRt+]GRijQ84է j+Vn5gtu0 AVHh$6ƄPYq7+X>CMߓ#aěFρ{;t%r[ddMQ1D{(4|QBڽ{ANmWɗq'PDGTxլ9CVB!s2kNdyA#~pOǢ0ANBQ-T>[_,Ez>!XrJg^ ֍_~!=]cw5 gp[dfeɐ $gSUաr_Sq-Tn LEا)jr| u=|V|f_y}ޤ3\`4yt8`ɨ[d+h}^ŔG^__З#K]cʥo /zݾ]{XώW+ obj]izLƜ~GQGgqL2ueֶءA^$&ϨK4G?k5b}?+^o$O'gZDJ\z-,2׾rܽDw`s|8;S5"-;f>HϪfPe/O<)Q:>cU7-'wl0J;T3k0M$^).`{Tztb-ҔWFh:(H>0+`с:ϏN^qk fM(Xp h\1>-⠻dqxL{{TᝏI#6F 2%,Q(d³ g2y1H)}y $ؕ[=L#䑟@Ire%i;`nZ05Bg&/W^ K>\ɹz!2.v`d]qOlo=XwwP3Rbx0\V%b2 Y}N!}|zGƋ$=C(hWSkR#r9Ml}zґ"QȣM4a&WN9B_AQ2Hʮjđ'kiEEi;H<fOLir1Ѓ8&;^u䂭  _|]韥?2qZ㿫XԆ95W:9njBkvqXHyF:S9RUv~*6Cȉ?W]n$ W;-dثo:<\p^&nPvTzuĊ/X "~rv#֘e_y<*7x9)IEڏlDkcQ}ȓ"Ql#tS( +h5kN!Lf=}ÂpbrPI 1Fnly@HV9̺xY&ʖnK=rϹ%2h>Ү}=ߑh2ojoS2 tŲU|#΃s=[^"OJl)orKN>͑]lɸqi"E?u]#)%=t'rFs((o¸æH'⯭>|y:xw+V:rftSq{Ϸ\,#䈑 ]xoLY"6K?BiӔ 8݂lh O:+\t&αm˿OQ0|W]'o.}e~oE7VW!l3a6Y[_&}#Mk*+>$p60: 3j\Tv]΀\ԭievU%/aȓ5?5*+ovt a;I,=YT'2+oXMbPX{vavirZ uSLe#WʂrLf!s}6qPQux U9{Hv_ʂ3x.T)#S%C`m#Oژ*~~ 2KW? ="JJ+SZ~4JsD '5MYD9Ԋr7jbno% +/$x1 ˕E5я.Uf?®FD_Ϫdh`zO:vP1볓pk-Zpr\m~E)pJM9?t㩵=atc:KXOi1SLul=m˓Oku&pMԱ>‡9t}%=I2^,R!pUb8B&jޢ \j:JJYgC/R#>{?(v:_ fFδHeŨ1R3٦8Q O_d9BJ%&Uc7){]^[zwD6|Qjh#::,TK!8imK$O$.!l/nv`h s^1݅5?(YcmQDRԘaɵo,  Qfg\dCˉʵe"lA~/s&# E&v!a.fQt*O>0FU+*E6&Dp,r |oQOԖ509([lS%l " y+oaS51x"Ws} ]lLE˟SVнuDȒyOxh#;z]4|n@Z'n>dTrZC1/aŰmtW%t!_;(G}bkHw=.qOݟ-cQֈNvP]Ḁs0t5rRR#uwZ)ɡ`4'3-k<-بojo9D0bB燂 *GlA_e*8x[ u8cAϹp&o0K#uUZ!#V ZO c9}]8Sg̝]a:U5F~׿aw?{g'b?'$r$HWȧ&>[M*b惑&&GEgoPN;γyȯHѼ 5 YkLC}~E|9&2{klɶGm<ɿp8 1oi9P%gIp@Ei0b-6׬&}1Ʋ>ꘞs03w}ry9F%ζ/)^f0;"姉m1|p+7E׎PRF?3Ǻk7/:԰ģZFSGQ{(x_q̀%iv4T{}J1;lgmᇞ}ϖā%?NaZvd;V15Ľ#}̌cA9 Mݒ$oaoO麿 3euW ng=+j׀_~XJ'udfRUtV_qQ^c?^_Uwm2gG;EKIOyGJ] K.!LVlinbt+FـLʸ(g9A$*٪c4%Y$4ӏ .``IjᙂX&+֚)B;}抗Ԕ6k"ͽǴpY >l54zRx,-KY `m]]I#V\cc*]BxsM++wljصʠvR{{2ʌmG/RO лɇV]Ü'dtk+گOk hh#s&t\*[?2󉪅"uIЍ%nįu#Q$^<֒eI/ t+c9-E;Ru1(uM}ԼGW[cXh b[835~>iMXK|m?cB?sޞXNU5m^qՕ|j6 t^Y.Y;jOSE[&c R O`.bZ;l/7K!{vI!CS)\Q2XP9#TQCm u.M?lݧP'sd `|5#Zo3o#`0PZYHӝ6U G>3%B)}xڡr7w^uŨ&YR^xćv)5?_{&/tSUe=5^ ]VAUc``ZR0xAy 9Z1 OR°\X2y.I1nNkqt/aOFr: (jw^÷#Tމ| SV]Tj3"$[¦l 6C]RG>]enϏ +q-GD[kQ{?R ;?ۋzS*C D^lb"o#/oPa0YGSO^2|Ys!_P֨?OZ'Dt ANqLV,e: #9 )~2GgIthi~ wHGtwPd HϨx9F6 NAgXǧޟHi::WCH rym_Bl8|9?R:.W%.:UMq>)+5ꇽ,sK-X!1Z{q/#䶂"=%,Q""4ܰ]r#?K$bY{=R3ӎlv8:E(2M~vguHaSIӤN]3v_0sykI 3,K3EyZ#bIgR]oBY9TVE}.ެd+1 TnR!tHu KF`,[j|ŶK(ӳ:S"o1IXQ0U yx}k~~b"uW{haNyo; N? 8Rj Gz:lrC/WgwR;O 5F+Sw:<kj Hf1ۼ {Ǖˋ\BmkQ41$Вݎ2vu]. 9LxU R& ]pyy\fJ=L7@x9_?SAuv}Y.T^O$U ޒ \Zc=l$p*sUf!mo*] uczJ=EةxߌP]5Au 9"MEgBl$&w+T yի+P{g0mTM3E?Q 5؀rOB\'{4FtsyqjI/7AO|lµsR`rHD.ҁhFdJEkkr3ɬ|DKܢRύO\iμѷd^|Is<]Hd@f0wx])[̎O:%jFR!arR[mROD"at 0ryS-Ԉ^e1!ҧ4]T Xna<}soZg6ice~dҚ}T1Oߓ3WP=O-۲ lf I NV>'~,5"ibs~lB@ xOt;Z6wӗo6g*eSda97 g5jpVWJP?mx:72Cz__7\.ܫy Dw熘Ġo)$:߈$:{cHUޜO ]gRW Ƈdw^F|80CM\/cAK0=x qZ]k=Z(CN5AMA2&3Ća)J¨U(6J5tDXս^ 75kn bFhXemL zB>ʿ'W @ú80 U>*WnIYDWB 4AC+5@ؑ]bFE5yĂݶM͊AᎶ_"K[T}+C1tv' 4UiPJ]="GP\y߫{E !ysgޚ̱}{SUǃ+[#\KܖN""_YZ&*\,#J};(6T)L~Z!mYT@tȩ rNIL1- l쎇 $n)(P<2BFrHk+r91XůQ3*E(cG|gלўb%_jzmsj#2 #:',UV7?Q+Uc!F3 efҊH@!]P!荑tIWi@X└n qxq2ԻB}'AV>Dx򴳓7ܱ-܄G7.@9|<+n|!Reˇ FD~ss@lqD:!~G4 %] | Z~A> D (w:r 5xе 9V1?{\Nֶ CpeXe0e*;fi'zĮXB#Rk={.,ez[%4=oL,J~ZMK'!$ oO2Gӭ2P ȤeZe"Q ~w+lBN0qaZ@Dk.:31m?} SLmNK #7dA9+1Qi3uRv,7?BbE4|%gj+kQ_֟6:Şj"wAh}'}dz*eUop8ICZtZvLI5ԾʲspגtJ=҂ P:Yܿ(IƱ)ϯ: !@|/oYDCko݂Deaj]8V1q(EP0$x?| ;wp^|H <ć֢~%EJJ+444:gGffݱ搔Y?/vr3R;bɟõt}M {QΉBp1QY>n!cAe>G W<=NH&ked)F @pt}g>d7eR#7ͅqABd(a]2,@Cz@T ZQ54Dg&Y6TDABODdv"y5Ve;pYrHN\[nlgwxUK I'XlLZEꇞQAEڝ# F'tp&G j+$`Y'8[0J2i:iTMv>}4˶eiDgX/Ԃ/ rfeDwxQ <"0`T # Tnk}/-~3Ld+9&_15ŐMXynH[p0n/Vyد".( /L!tAW'f鎎pk(7=D#/UaO! :Uo}00'#+472~ĜD'&w.I?l Ie:|s|q"5HSh(k#dm_N9ձn"Ӧ Hܮއ!Eة nH'']ՋOol^:;lme@C3ϡ*[(\ SʌĐiK6߃0 <%y/WҮ2 'oV,90JB.rW_[uvtXPX[0sN dW4 F-[,n˷ܰ Y׏JPsM(W 7s\X_SO&D5j%WA- *ZRDA9v.4`HaKk+['hi)jsK;l9g I[iP<N LNGEߡ1Rmh1-&pӽ*yzH5}1QmVٵ|FkN=Hr,]裺:kKo_Kx2grP29w oh 隙%,u_|CM7G4Z phP`’ Z!Z`soy:a~i1FDs~K{ .we2 +tοh}s4-QW}i9F z}_(_=w TP^8Z٪!afU"FƤ qޜ-Q8%$v}7F`)MZ9Vc Mطyw M%=׽^1`A?qHY{Quڴmlu޿Z}uYӨ:;˞'ںZяUoN'R] tR~yI=+b꺳.ӿ<[\8֟=ӝ@oB R0OJb ˳(tKI8{_h7P6a0Z͛H;%) Zq90(%G jT~LzT$_RDomg---ܻwׯ9^)AZZ07LZ,>ę?cIZ+Ӳ6dD$''p48=W0"@rkɔ3B;ڷwo0B"t0v*} _;iΪ.; _vVw'PneFt&7ZlFH<"۶lT`(zBa-Jԭ-84 *$'* O:;00P?.䅁WTu{N̗*aHD٣1池s(h*xh1〢Sl|ًA<6 ʿD (K[?[U.H~\] {jp0]-,VgV2@(j?ޕshhr <6zgtxTFh7l0EJ 2\XZY>S @!h B|I-K *%D\SR=]7$5_gWt[j io oh-5h."x;ryn{^^+n ׫ >Jʲ3 yGy7֧,C{TPsn6]lU3ꯄLp\0b|ul'Ad?%!4';WQ|;5X*^,~I*§yKd[`M(52F"$):H1F5:D=. l3W9Uy{9G9CfoKxB$@Ř}wQ 4Q$ry~Zgߥh#P vy_. 1L^XwUS\4:3I(m #6EoTl-&}Ɵ1h`zb昫G >54!;zlR)h,Ɵ֭_oP~˱nuT#U(Y$R׹+I?ZE_=UѸI5h6)^`ƃ__н͸OuLS71ʹ/{7,N2wRJ{%Fsό>Bw5i9W˲ 1A4Z509`m+7p{mXVR[:j\:{Uu.uКl㻚Ja.KՍD f-⻸8l#b{`e'8 0o"͏YOß39'hBhpO]zDAٶxx?ّ*=iICG@fuod)%pVg5⟞D%#]^7rd'8-K_՟lu۩Ë 4H_ˬSo@2{K$\[';**F3 |FSa3icȶK%mk 4!hivps̠wئ(Uo&} /H^ѷ[ 6Fx54uUZܽ&vF5H^~v Ku`EOo^)0O:O" a, OuYpb}7j˪6MJ>S!bQ-'YcFr~N-obr*ۻtů@Ѥ( J"pbD :bN6iS"#J]F;o-κ}#ϫzS:[uG4Z E}xCɕ+!w'غ Д$u}͔O7gER:P@ZFn' X /KLI;׆)h`&S2.*lvx_}U#OKse Wֲ71 &GsX8m@)NI7$Qv3Il%q?٪ OR᥏^/QprJa N.qLIl<..wG͢ݲ(fJJSz\V.w &ARg qU߈ t$2Zg|tqq_o+u邠p la 4PKL1{nuvola/64x64/apps/ksysv.pngUT lACPQux WyXRpY i jbruRC2[-JeZM)6dMVL^U2K唉 ay=#akBL)LC7S˄d_۞a|jj&5{F OIس/:-ťijBwDGO}`^D=qI&E`2_2&659\Ȭ[D~|hY$3(+<8|^"eGsdQMP5n"_:(vc$P(Nr?ݔA(+3s'O{5k9(Ξ8R5.:u*\Bف*$3w7jX8!:rLZ*wXʪnފ>Gkg07)LE,sH m&9©4X`n YD5T%PHy Jx&~@k{/ 7Sb8j|xϏáQ1Rz[97_,uMyG 2Ç>;涌vq>BY3-9<kd__QI'Hvy,*Hk$1KfcvHK-+̪vhUVfk#/ozpZ Aҿ U_ ?6K>W\wFB %xan[x` jI*zQ^GX$Na0O!&{PAfӳ}\Zep_X,.bRz|~S%Ɨ/?%oX/mqsWL!s!Ge3i* [ n(.sI(=Xa @j*܈Ubg6NtA!}j) 8fJ2wDNhPrHTT)*Q tkEHZ/ Ÿ@ ZŕwB}1U {s(3OPS&<}w<[}6ֵ@dG%1ٯ*85BGEg_ir7r ~ $9dW ncg"5؇?.^~{@XƝWŪ Ddg휃0Z^(x"-ޕ'OEkPkp-'l 85;!e&pfA}K/4;&!P-j跃LSfN,?JV mcز뺫?< H.jnV%[\=o7ie0J2719j0htGa"P(ƤaO` d b,Eg,ӜmmoRZt@SHPOqf< 0L"Q p' @!eG_wt35KzZXUQH M!0yט.H2Rd'Qm#:(M wbd` ܨYW~<Ս.r5RHMb Ff`pD=E$]Pnq5,_.ވ 4 H<[ }3]&@L_!vy{yZfpG >x'^?Ő$C6F[t>ӏvC'B3P.ˀI*Ja.[r;2&9<>Rԣ`Ez+QY2 .C 5+jo-w1>Tn<Ǟ{rIQ㣃R2O=n[h}!6SB=W4fw)JMBfWTOr='mzzuʸԧA%|hA*ɾ?%q1xnʯd.4..w{ѮH>H FDS΢*&fC^?Gg)urzp 1D! %=EBL缾$x饌~z|Ӹ3j`vN8Q_6ccA2=4I?-*P^M/^)؜=f%*%7 lnXZ]6N DEݛDp NO7;$~)-0Kx ʗTfhL1e@ܣ"FM¡9&F`FcNhL5v m7c*$|[Bq5=|qXh׻ް9BfN+pY|dleօY1'Qrg%bMZ93抯W2@[۳-b{E}}yt{QP9朜f]զF2Da<4RilmI'qh/Ӏh[+~T''0ȮBoȫIw7Aw@# W]ew@eFaYꭄqo[Oy>3&4]J;N5$ Ȧֻk xI Q­ͻU [>>",I"4^Y2ɔ-^w*KM{Nt3'/6]-Qb!Σƣ]omfF=[=UC.#V2[;f'eO [s_hnND,c"'bVW$ӷ_|ZM#iq]]v:qߝwbZ}LݻP_PFynO6?CƇl⏮+CxrBzxb͏tV\feyhP`}=8NM`g/bj gY㪹@!o8 V:q ȴIrӸ;v-fX,@7Omϫ=BvDF.#e_coZ.'`cd)yna{=4lMeZ2r*A5&V'=Lm POƌQ lI6qԊqK&]`4O}Ȳ`8{$^${bwp,dMv M,sSdWץOt &R)P}6TTP'*\B@`jk9jkk*2&T9޲;q)%ODH7 1F:W т ccB\ތx B dPK L1=g:i)nuvola/64x64/apps/kteatime.pngUT lA?PQux W [x'&u,dҕ*;`+Wp9TI^1U\|c۞$ 7<$VP{ ~AW'zI6Lf@= K>CQ }*k,aγKdtԥ6kK}*,,?}]$G߆b(-ah`#Ůj/+6pcWзYclo3:elÿxr)_ّ?c<?Xq TP`C|]HyRvT fC`&4o}h[M4:r9F,pS6=30 +b~ ~fD[{Cs cSݢ?<)v̎fOt[md#H?}(aY+4JXV=bi/X>-^@0Yp;o0" 6:" m"":!$kBw2]Ӷ}E &" s}G!ާ8PFh.,~G4+tLDVd lG 5L~ƅ -`-*Tͽ#U᧰T~ a|ܥt%>*<TZGBOB`(Fx0Csxi8$9cFWWمk AmoD $)NIT*Y,VihcJAo[D(srg*"s+b4xL?/jkɥƯmQtuԧyiB'I[YT. C8a입#4~/ qZؠY^5;|[GF/_*bW/,>>>.l,D_,GŦ4MS/].+;$Yd}'_Z\,yMaH[9feb&~Mz|P_%Ta^KM8GmW * kؕSAe\oKW^$OGm5o9z+#$&5& ҼrVڷY)fC?d~S7&v_tḩϤn [X'LyD&M9xQci8ZNWմx +Tv+i0@Ȝɦ;;Q 戣J&V< uXס_V}LхtL;3 1=Fx5G8a΀@5ck?S@^lf2ADAߖ !8BE:|fr?{UN^FAaLd \亖B|VPuDhV珋nM?0uoz*v;b?NV\j/Bb]a18܇ΏNn*vJ<^jq ' e5 _~1t 8^ffŌNE& lur͍Fҿ}yycNJ0) <-s<+a\ik&sT4>_s۬'jVk~(Bwf]zQ^n8q߼q鵕¤M77qf,:Az lO,܇cm0214`(>4gIڀ$=C؁.c̔\rx c1銐E$1_@] tm:y ŋظM߿mxأgՒAϥOMPx7yŬ "\~M?w!kAGwO0"Pr|}# K9UnQ}u;+1֓<=X9Shw0?6H(FaVjt9xeZeBw;VKFh>|w RPR @mo3"]n1VRLL0 imFSF) 8#&'Sdpc&Ԗ``lD@ak '`_4V.c!֛DxYnϯdmjwɄR bAYuV.\Y=ӋxjO“Rp6hmڃ [+'O5ZD*[,Z1bĔ%;1i^vzk`u>o!hO囦ORf;{D? e^$3 w˒FMٟy$P.4yL;{b(mg8.:=|` R?&<34R+̈́k#=G Ď\NME*tW5qnKK!Ng`@ L壶0nNW^0c"‰5 6F`RHH{]۪aVs5j7Eo_զaJ+1)zG\2LĒۿ` iJBm_*d`< ^9-9s`f{@NW صf&ӅU[x5zlh0A֔F]P{;D$Š@f(}\F..MQqtߪ?tRUz#ٜKF?6Zrp~{MtaT%@('cg^r8(d=1dX%&. e=߄-ε}f 8W~L.u tVӾE D];RGUGdmN L+d%_jr09́bwI,KDsK[a:б>+(I;ibmZ)Wqj8^q5@SY$]BY)cKcoQ@h(_= f% K _\&{mM[JU, pE/X)>(Z/w Ja.`'3'GC)@z z 0nӬcJ\jPd.=`^ !iP`;_zrRL 8!`B4TٔV5Y!)ҵK҉4YkE- ΁Llf=%y/ZE"migU3vzNId cFZ 1 8"6 ><9X #}`?ɖϭwhӷP Eؿ@$s^. 5 GF&P1#pRKՋƟWCڐCRhT6kc6G =b{:tI *K2GI>&WN;;xmW't#0JUĭܤQpudChkR-ĆB/6E`)͘g{0vNikFG-f\ !.P蝐UEuO /n7^\! w^. [ltg޽ۇvQJ+_w _g%Z1`o;X%!2~h҆i4Ā%K-:8`P0p _0_@@ SwZB<.S*^WS]4Kt?:`:9AJ%2aBF o-[R&!TIN ,~l\)nda8Pn` N6* b !BEk)YEF,OidD1f#iG(Uziyp!BAg kyW\No{%mIY/d=ξI`;Jo̾XBivz2"8vbZ3^eH0=̖lʭN1E_"DɛZ5LN H2p’!\ y(VʷZ(]tr8 HB&nALAh+4H@yf.%lK zt<d5-ISҹ &";Ի/sgN"XQS];~ӿy# .O~g9/R]TkN&PħXkƽ!bqc\SL2+[v47qn̏P?H`z;h d18zS\)}v9P=٠xW| kWXTCɀ>ԉPKL1S.<&nuvola/64x64/apps/kthememgr.pngUT lA>PQux Wy<~g{gbd͔%\D ]d)iTXF Q l]EZQ*-F(Vews9s>|slwSVQ@yV_Lo@Α J@y&mD&qjWB aǜx:Z۶wG 0UFJT ^gZ΁hlh6 ,x$.#Md)O˨0]})Z8+!P%SZGX4TǏM-5H{X pO. b+Y&suGkX^M& |NĤ˚Ծ()-PƎn8ǂ^Jingy e:V=+G ƅ%Ǐ`@ XITsYtCǖ߉OEz꧗ SeV?cWOvӗ-=Ïz7lZM=0LdIttP&*,5  Ȁ.o:#/  L Bnm^"J3",%b^vLeWg7V\85J٢շKx+Ju!!>Cgx{*^[ nˑ,mXbU@3؜c<+Ugבz(q'>EASWP(&"HrG_LvbEK]=bպe 3_=:ȭ9a6goS~d2) q~jjn_V-tmXS'(:S }WDiPвtk" f|9)+cEћJ8D/n; k- Cמil͎XSNe( ^nbx>Ϯ$RWGCg;&T?A4iLuM/u@s鼕)S;.Q'9o,٣ǠȊQEL]Y&&}>Eh,IDz+H|睬o E+'~)7fJpCU fL}[T#>GAXH`ky(p֊$T(D=2 {2;xwgW(v_2܇<5 sf{zPюP| N2z|26hE)뱀^:ċƩC隮6#4x:㼹~={`S_<ɴFYΞ[Î{wL7i ;L[^?}or4 z%:6fll~}PV{xdrtϛ>fQB|9|\7^^&]Cjz}m÷^{ˢTa|{v4 xsZWz6zҳŢPYUB&cG_n^s(Z7-1w>_͉2bDW|̚FQ*ZTa?FeD4?u{+dbE{Yq-h;ӧ2TH.PA#: \fZ-ֆ&]uVr%G8;IX#&Z᠕aG*&ؿKK{8g8VE웅G|O!2YH:К:J@7oorwu[3V_G`J( j&Y)U|4eFN_|٘0'"g fY1[ lFJ:)]hjgȱ *9;:ޫ/ !J28`kFTGe/lX3A-J䅸'L YҚв=#:^vBm^^!Z]($AygBȷǼSQʅ>+J}eOol]YOSv n$gzam玢&a؋ P" LK%mT="C,VE?G ӰVM4e2#“;{HgYVAՎ]i)4X~xe!Ί {ޞPOP7иv̧0Q0h p 8]UThmRh\&Z6A2oRH  Q]K?4z̆G7ˤr 7䢀cJ6kfm7JrV?b5QAkhw= ] ݸҬȁ\rZmO\Iz~ - BOfn=M,rdy& s/N:Q 9:D[P1W.I)}Vmmd ^;Q$m>i h0งmM8Z Ʌ90 ; 󴡴<D͔WL+^`H|O(=1_ha{%));fcn4y2'P|UW FK,w;#SmFk!(MoA&`JĎLP+t,L=J)9OMLr;& rd}{+C;뵡vC8 0߫B7a\%mImlg3tAI.M 3z'3Yy ]a*\F q bR͜:sfLr$c 3 Ť=t.sn4AGM70S8SH䋫oL}a{b7oyjBc{fr~XZ"M96kIUҿ6ezޜ1Zu#Sn}Q 3!}pM&4 jpH~T%M[46lbDF}1.Hڟ'q=Ԏ|(⡞X[xvei1EU]*X_q^ Sk Ji"ox,`2,%MOo zd2#Xd<q馉Ӧ處'75+[RO_z'Eo._y^*szhypo!pT] E}/<[ƲD̈́ۈz@UGSCЋY}wkJ-h{Pyl9IpVN>|'lx?O_cgbEr~ /|1d~L"e}Éۮ FgWN@FF)խ pqLU[z)T.&6cI(#fxW_wEڪ 5>6R(`R8tZX o^,5FkB~i *, f RkmjӋ.ƽDZ6U/o,.AHXO<ٱ%FnҷD^|Q߼W64a)՝~Wox}[IhiKuI,@;ܣy6=IXSØO,EY ЎL3պZف˒%hH:ڬ/@ -蓹 N \Z:'X f^|!G1}g jn.w.3!Ea7i6[rK~e67ܽ1zufk~2%N]GQ8..9$D/Iܷ-?e>UavTQ4J!Wř{*{kx#=8"/G|D/+tܾǻoMWZU(OK@=JH⫠ IJ>kߨD͒ J|>sb{:~SrRIzpX5n_~^$:86,h9eX:)o~` ^,gll8w-- ^Vsz|2efnZNn 죱?Zo[,b#J8(,P)Zg$Pw-x4mӓ( `z-?_c]л]5lŘ=ny)odrE \DY"ayeMúi/W%coXD}=!_/XO~0˿6iBwVBz YVnkT|Wcl~8Hx 1ĔgcBXE,4i5t0XUр5@\Vc;bu(=kh?m@Mݵ?IWC{ق7Y֗V׊jn׶Na"Wi3uTi|$2QZZ\l`#u 4uFJ`O߬d`/shfrWEW{e__0_HɥOێF~DO[UNW`yD,e*_ji~VH.~ s@bXعd"Lkrk[pwp;0rvJ۽w@ bFMy~"1k*ε 0M\u=ʍ%5/PW.hRo4ZC4&_U[ Ȁ PKL1? CSnuvola/64x64/apps/ktimer.pngUT lA@PQux Yyc6ˑ!1̈HS-hA;W5rC1 eVhCV)SE c_]%3dgƜ|~?y>y9i ݪPǨUMpN7; քS[N;x"`D ? ƞ^{)`&zHޚBBn]YMFGCֳ(qya0IW;:alOS }k x􌖋_K 濣7W2=rY"[*aEHrbtJ i>@fou x[|U7 7Kϭ8y^<J) DCMz(:r!YPl%9`d`A?l &k,%u$n{jWBhW[3jb,cj(k f.K';i]k8Q4`|PҚ;%á33>1$zx/}:ùvl􀿳W9| ,H- peSǯ"c@l*-/2?ROjO.KBP r155ײ,^K@?Boas2w/Ns7{N_TW\h(qӿDG40fˈr~/}$F u/)chu0=r-Ϸm)\&ƚ5vhuyw/A2<LEiwND&['w_ Ζ5ƂhK>( B-!>+(@5 ̣0fmINO-~ ")Sr'\+8.bHr}n{ sRwaZ6񹽫8VިJ_IJ*^df_M)v&_>IUP2>UA`;rTps& 0rӞbn  p t`[>ʂ&mE7R#^G6ʒ[h42ƣ C7V,תcr~({H*ʴQ?Jn6w;H$aV6;t Fȉ\]&L KlD>xeoVJp&^ `jQ%PeoT I2oouκԀ-yW&8 \q.DY6<#Y6`pYVQql4W:?JaZ&/XCVH^2%#Ϲ͞"ږ@o:,'zFd$SbXY֍9\ql O3DG :Rx>p*NNT7mN?5;i4(.`g߈*>XZRZjɳ0윐P(8appXPRZzֈ6Vڔp rq)b#kn%ra?I C9tQ;T ZZT}*'XBG"!1$F; H2|BȒɿx\zûF5?qmKv)C ^a t@Pe) OO݂f/ F}maik"20&~X$a_z0q$U(Զ}cqMFڢqqHTQDz>QCgyL_?ccJ$H'< we-E焉ye|jbV6R,nݧSOEsLHnVQS]#eFqq5AT`0t1Q٫;)iQVSwŸ(ɷ&/Z_ ?`,oQWSKYJWlidv%MaYyl'wrVc<4G^Vrl[*:_&X؏gI=}F| $тsGneE-u>EAώQM !sӂns "s5OJ=(C|&=:nA"C֋F>`NqhquQSn1"N)2m@_wM`X{J\mC}|P&޻#-sX<_{"F.{>(\޾EdDz/+!po#hN)ju?{g6x~Է%<-GkHxo f`^n <}/26ܗci,Rv%O^Bb t84⇣-%]{ObϞ$^Y*9t,3c=w[3 n-Y֮气 Xv*՘0.KXウ([*0bAU0cώqum43mk׵;jEt־ 3P+ %&&ya²__5zC+{;دBMD8A4=vQp m~+ԚTPbY ߊX _٪v$b#Ė%MIB:X0.+СB擩2f:ǥGahΡDc43ٿ-NFjsի߂ `O{$8>,R̵ƾ%@'LNX*2#i όbͨB̸'p^\0I^PKa^)>@ZLjF$?/,$7 9Wa7n̼lz=lqAJ@:yv)!ڪbڞDҢJFNvewT`߽abЭ}F۶ҿWWłC% WIYG]K p )BMω`䙛 ];M.,]wM6k 0B6C.Tϫ!ySL<$Ғг$ //T[5dU;P.b<ʒ:]P",t ӧ ҥfDR'QK͈0kŤ`ɋ?jx*==nJPBb-O(Ԯ4a,䮻8]9.'<c1fuL`^=?%9fBÍqc {fLҬ~B!S>e$@Ê҉eƭeM>Q$;IghqF/KH:5PhJA:v}c=,|Oe.b@r@\i@\BԹTWYFe?Dwsa|uaܖi)@:ʘ9"nϸ)X{TFٻAwnX()K׽vяv)Jӆ(<+/D|墂 V+W 4N"8;V>n!Tzaf&(~X_1GBٶ(KGI^@>{39$v>/E"GOʛPԎPʯ[j-Z<|D\O,>|A?ĊSH}5+ u?64! b0ޏQQXOv|U  5O (3xN}2qxX?4dL,ȸS6;.nz%f5:7P0ʧ:h[:y!;T{{zC_KpT34| rk؉{?X;޶䑸C/ew_\TG .-|[F{c{Lgݛ7/ǩלSBuM0Tɒ~<`=2_e!da"57ŨlFZ&61Mؓ{eXWӓᒉ`hII6PZVTy]) +lƎ=R"&a޴U+1榌?3S, n~``\q{R.ȑKvJbeuRp](hp^c8M϶1;Fj۹+U7k)9 I 74Br ֌.[_&$vkv0w߂h&La % ii& &Hcъp}ài0hEP@ =u$>ufжRfVa~*wɭreK'cSz !DW *G ޚo rB]P?s1?֛&#{lɉC.u33Tie8; {>@ju`F8ߐ"tk%au!$CIQ(&8~됎.Vɻ>*=vf<<]s:@} x% {./'\EWCe&^i484T`Tt>(Jw]b,X_OPgG[{ޜ\Oϔx*ka;Zf7kzxmي+аݶ`=+&.$7oP O/+}&&=Bqf9--mo8aZn $+х_ 92x}6E|h:CΙ=ӣϨ(9tAt|Uuw܆=.^V5#ZA'`Q7Dmф k6 o:)_jQI&)_3n#/+2 a\G4`z8Ks5W^P_fT'v ;[ vWĉ[g;ВORџz~?Q̭ř]E:ݮC\^RX:SN&-\^zNW,~4E r4q ' kE9ؽ07e,Dn_nBU> osdmgĶSYmKgŔDx:clƶs B.G)yqZIxȧF-#78QShdJҪg,R+/_ _\)twAu1)d6}U~8+xʭ@/\ٮukKIIsgIZ02p0. 't1"kU7FT1=*Zʵ芔]tf W+xs%&w(hmOAgzvZBU=䝦,߆,4En.ҿ5P"8ĐoN2^ y34],LPm c`oK \ DCƇR2 ~ص+4aЦҒw:-? p@'f.YE -<]gOJ=N: w'ƀq slp[M0ތ0ah}3=p$/*;eӓ,^4QIILҊzɤCu\8hDeԧs2]ܐĎxdA$' o~ȏA?C`5/ sgi08-z};1+?ycz~齻Ō3=ASU< SXgݔ e玻W,v3WX0m1/{ҚX +Yt=^C*FvK(>tjf'g݁M=ƒ#`lS} &+ElKL/Z:QpRkdI\+|ޥj5VRGsu;FrTM2FCc-XrEh j:HaƠ: D,E!@PD2G N&OSpQdlt"6@A tS"i&4m?4pXu n^&Et-6RAA>?5d8Ä/q*"۞ebV%D:vHZq9WPIn2ƀ S_Ш̗*%T8NA0dߧ5<҆z[W$vf>e;QYƐ!XgN]TK _"d3LxɔO'5).J_\Dس64&Q,y=5$$of}pWpmÒ^)$]qh#VeCJ c'd2';Ʋش6t{]`. 8 *jxG[~ Q*By{Y*&z\}g ݂;5b>8Smfn>R[ OX EO.5Gs^46ne;U돓-݁$]1K)ITM%XF&nډ/X@'M[VʡU|M6&EdI`I>q:r"`Kg9 R yGbN^0 ɱXxА`R DV-pσ`_'Թ Dl|oZsBٚ9%TJ%j{Ʋh5V)u`N{D2;=EW]KfoUir0€M3vԄvxN愆`KQ6~$'` Owy%[*s/A_v I׻Krtc5.m!XD "%*dݢ0"^͜#% cVn}%}4KTFМ34w`%&Xm}`j̋6'"!z_p׬G*w*v|+ p`Cf>U(t̩^13fźyԥ*Gy66 }_ Ek*oȫH,'uYz8-w6fFH|ٍ0qʎFX 2pِwtoHiHnCcgq]ҩf)*_+$S#| Wّܷ0K:W_s0 GfrN[>/|(qYX':5OXuׂpÕH9MWXv^ӊ*n᧥vhB7` :?((K#hP\g ZR,Y*/jر-7pG;9Ѕx"ɖg.[5o.4&ţ]sY&}NPn5SUB,ˤG _Ψ$a€+\ס'B\t}l'GC+8cJNdr?|TK1M]&[E|bhÖՅQ'T|%:!Zn/5EYfCDֹ$P XaBP:헹f|̝d0d_Zi`FiYґ1xcizfʁ#ٓf\݁CVQ`ZXSo%Kj5\<cQ.E CV=lVvw`M2wޤC}kj΋JVsԘcz^}}r r_Iݽm=)+ly KOzA wz۵tbn=SO]dbZ>3S٭T4DBTs XVIZiD3. rB@pGsβƙ/.R"`Kj4%d pAL 0gw%Oh o#5esh[$m G||"pWY *(9oiAƊeGT~ٳ%|݉l_J3^eQ7{VG䂿A=9uႺs2 choW >qƒ6N0iٱ`~Q0_a~Yc V>jcMW11A\b`G4J\8hN3Գ?v7'Zp@פPe/)'{Sb=V wI.q-+"IgͱpRn8baQ܃=Ғcݻ{&Y\V/cqygэ#sԘX4ib$V+ii3϶hiSN7R?YA>$<78=r;|y;>o¦_n882RA,.dTt{'zVo:UtC1) Yy(Ϻ)ɣ &>yaM =IХn*嗉Gsc >B7oƾ@vv6:hOﱮK3X=W=odͥ06+>.GgzzFtq\E?~qa;4RQ7\¨Z~9ݻ iCucf c8 sV(_;H^KKRht%!e7NSpݍ?O Xgsf`\>m [`&$/ݮ+?yA\C֨8_+^%Y[bՖ"[L|o \16W]ϫ2Vf?PKL1ڡ*Bpnuvola/64x64/apps/ktouch.pngUT lABPQux %Wy8f̘ 3*Xƒ23xCD co!JYss݌WUZ'ńa0{#7Ś|=aGfd|x+.,&* *,2pO#ýܘSއK!.Dv `IIC[-4^Ak"L&nI2nkxỏ USél;}; ɸ^L3:M͝ᶲc>b,ϟM/46\g]^X9-)G imT3"R"` q r)+ef,X M5r`qF)oR g@nm-=rXI-Rg%ԊR0Q<xCle{j6:: `.QsشNP>[:["^S?35ƀuР:ۀs⮩aBesjMp&`\IjZFX|dq=b3TWOss;@Z&˥P7hWo¯>RDl=L=Yn\[2w@G V۟n˦iCP8$)^l7Pڌql! &eUR* kbv2˻rm}U5J%?A!gOIf('#Ӻ#k鹍㲅sb3z.aB_}D0iL]/$Bν (ÕcDPϡ1SV>B2;'rJ:Yˠ4ch m(-#Sj,#j3G'} K;6HCeյVGeKeϞNk4NдeYLvGʓ 7P7Fm҅sߎ¨B;N݁w.tX\QMX_պ1INrr$T={)Sn}a*WD@7\@sVxki,:AX5{ %}+^5[B'YY\ZnEלwz{{k!y ,//cu$$ڸ!\z7R. `C,:Dߍ\?efUe˭Y"5FDķgue`˖~[dR ~E"{0 o\옪o`77C >t'm )är'U:k:8j-:ŠW%:f5dH軃ȅNד7 < ۾P̴_z Qw?VT6%vժDUJ-h΀!t^Pu$FpTVΰEk')CRe+-NTZ,\ٙ'`:M+P :J24:g߰mi}a ^G5:7agg'vNޯ|pր0 5 qfMގ5];&HN1_*UotF)/+ LŻRGW&ƺ(8:Xc'򆝞홿A o9c5 f4)&8b$DmONձavp3T%oU =:{ܝWv Ӽ?CΓ\gΛܬ}~3 ŅzMH͏[vw=kY5Reh4Q]zLB8M_ZDg S`J]c.<0l9UB!W:`ý>[q D`3|U`~[G[_\F^DpP!* =({ZV&O QkJe5MɜTvN(OB[):~U(,=-RJxY-4&o,I}bkOlm-Q( 6G{߭٥#NL೪t3V2O\V :p߭E ʼn8:uݳ~m9:s:ш>$M`s: WsPZ&q^ AZբ9j|[KڜJ ID_^v #hVFV-)ׁ߽-_sG5z 7hr>q>iZ+L mgQ羢[־ꮵjbQ/zf+0}MG7KL)?iʐ{6c@AijJKN ԕr(>/w_.PKOL1ڀ6[nuvola/64x64/apps/kugar.pngUT FlA@PQux {21wE CdKU(MdXݷ@HZ![Q!nx;{A4W F 9e ԏf3m qIfO}Ԓ@'wHU>|+x~ )BH,U& xWBVxOEq [MƬR.˾;“EgUy 㸽g=>sZ9ij'/+qo+uu%9E`o1fPktGxۃr1z@x#6B!OZ Փ eH^! 7^3o<(Pt EfU/9M.ˑf?޲ЧJ+Ii!|:A@yO>ih,CØOeY{9#^Eݵ̱|tzۅ u&A=u8 ~^ܨ( {d^gIUa223"i/a |Gm!![u[hiżXn=mМŬnxDLpbZKBS )._NSuWVՍַ;u ݝo.L vHH գHR)!o94 n2\qiτΩ} ekC0Q#dGC 6mmSdIXzר' MQyO2C\t9;EٛUkőե<2tZ d.jWQ;b)#?5`g(RwE/'4`j{0"$/77qh|ɄƓ 1 Cvs阺 eL JtaF)HB-7=Nc]]&Q8PL,5x+#MqG<55'kQfr'.Hu?T[\rTwjJqtJf3Fg730y7]Yw087ȄM'/,)+>L-oSZc|BЪ.:R7>e=sw3mL_w{nYWަA,-a{"0_sAXz vf)TS :Ǝd/Et٥dLb$qvT'd Q{)PrHY-b( ɮ%FBChy(?Q%Sm9 o_EX6X[x՗Q8 |Ls6 !EhB?[͕rCbū(_}d7;vѩO><le{rƄaZ¹a' v;?7C٨\0(/ #\!! r+i\0ho=G ;@TX/$yVqe`~3IkM}v*C23Gby#[i^)޲2(;T9%%cY`k̻)=s^a/fkqyTYWaB1/i?n9{B} r"I5i]H k>\} `.n{h{ Wސ JF]a$/ =D=a= a@o"vM/]y932Wc &9;L~ЗFHvf$j 038?"e"`}llY`;ǿن$#_90-7&D4dXqR?*u9,otf /6p*@ qRӰcs(z>a^:̞D"eJRmj!β T]4ų'V 浣(_ z+IGɿ.4jCj;?lY&}RG&Y֛\fioZMK*-mQ*zAۇ.n3;;eLIe[~l햜P~M?{ivƍL/*)zo.è(6Iysn8 ɍ5*Ns{qU1/~pd/6/S-TnZf{vf RĦ+s~>GÝ6-w53OKy}NɈwt^Ƃ,2gq4C6 bO]B@t#uiw]&M3͒y8og>&(`X7Stߨ8MݢA#?H^\gBTq <";4 Gޮރcf$P58_pε<],,KShĒbD_Y?d13/$S҆Y% md[mĭδv3p}U.t4A1{9IqEtQaAÓHM g%_>f-gt,4 c-dE;l(78m"silX(A|37 *:k1h=m O8;- 󢚟&e;Y ]1v0^}TSQ ѥx*c1 A[5Aг#w~TZGaY?v31u=W܆%<<Qk1McQ1fO8XU,ؽ[=_/* Aw iNB1QՓYŸmU]H+9ќP)< Նs_^@NL8c|Ĺ} $  _ 65On,S߄kw4ndm75k0u m9Un@^T) {&@j&~MS"ӯ3 ?G] GքM]Xi;1AZO!-GDC2D=H鷤uTB~ l-A! =@@XoF݅KcdVCUnG@wArv~I(o1[tA̎Y7/NkwUjr2MI,jnRj7 9"Q Z>#^ h!GB1]G-p$oez(Kz YR[ :'^x<+SamL!-/u\Vt#oheDDaEth)Uc PNE^0DS2/|h ߇y uD@ Bkh Mr mx7:7oX.F{ YB5ÎQ7=v{g{HDg!" Uު3( %*m]&ͦ5ܳl1[8k6e*Ё*(/[5faTMQ~LCoYuڶt,4 1@;d4dE \̟G iR#$~ڃ3ĔZe4Q(3, х' 9ߓ~݃  @aoA P۵LpFie=YW"=`2b'w"XxY !Ah񠔤KN+b8ʀ Цؕd vBav)x6GMe5| #Z2WcVCs;k'&Nq g>֥l&+wyI.0!g2}Z^b2)v,{"k}1./zPuڅmCQJ꽙b}m][vNHNW5B0O%~gq_ORW·Yr&$Y 蘓raPUo`+`)⮖,alDR7U ]*n[]~5PmX2Td [WdPji%;ϥ-9aYoӕ,ӽJNɮ0dKs#:Rqa ߆;dT^VY"YH״0W#R 9#Dohnã ?:(Fn(\g,(@9wpCc1v)dGs%yn-u56 {1{x/!=S\|UTLɠff\ 4+2NUgg(gm-ҸUζҶQ|ůu§tpG%*̻a@G!Dz@qQ-_J! f8IkzJsF@\:4ۦ q0IQֱv މK+&J3͍iu2}oRK^v2%r[•PaA/;P (dcn pn@x{C t&@K6ǏVP߭vyB]lQYk#PGhRo }v)vH"$v=,#4ljdmj#7([BysÉ1:4 i/~b}S7>1C5Cnl:$49$XqKl)c]"vE*yƋÉ`0!f!55Z`sx/mU 9-`/|)#vjz~96%nYeR?Ity1F`tugUoA@ضgSwZPKLL1qr9nuvola/64x64/apps/kuickshow.pngUT @lA>PQux uy{PjGo%tp< clj-h/4L*ޘ>3 `,iwP^`l/:(_a'/3 Qxݶ:Q-ilj˦̋#N]zZ&wF2.ZNoOe|r!I]T S$m?dձɏT%h$:%!k#KG ߒAwL~zC P&͂^kGijdDv "#-Du)&N9ՖbvO ̈;@9gu4mheX>zyR+ÁN#jqRJs.6uj\S-S;7KEX抆 ]Tn`tڽJR":L؂&4Qz:XޞBM=^~غWEUVJ3i'JRQ4oC u*QSyzrlש:|>ȳ֟[Ib߳DZ`,%)z:}3{y>"$%H~! 2-|;O%J睟Bx$u*N;kN~`ˑ]eOο∗e3UCџ}۴ϡ~ FpXqv{]$ ӱi!A+KM}BJ.Ak&YaY~^kX.p}r늇I, .1 iC)Fa[ԔA`>/jQ> :dF\x(N٨>#5f,C$ B -G0p/w77~k=Z:{Z&5b1jiCnӪy:Dr]"p'J!T1 !h%_#[T'͕moɿR\G|Id?a>4 ŀ_aDKQcx23 ۾ \!ZMmAM3- [ 6TSnMcޑ/ $kOѼM'GR(uYNUOO kY>t.GԚ %iY CAΈ8&3m/JR0e;#w(U+ps}KI C+EhZ ?lXs'hTMNL_C>mQkuM^Bf"/kFy8i+P-J/HF6 ٌыw@8q1׼䭯ECӼ vaf0f[g<0##m ͏MDa"?6lu%l֚%MVlS6@^^ay+r .mN2vjK ?Dy?<~VAװ٘1brʡY5F{1<>M) xJ+=Gdz+[}%({gR 7[df_Y|4_r sQ>DNyx.y̍W3(XйqZEnWG IZ޲V}b<*fnG)8.]|=i<3|}D{x9nuzmu-4wK|禃a G'OGy< b%C61k Y"\V=KF}Enjc]yg'83Wxr7՞#뀅h `[} kcg&AuXU{k٩@cmU )JvpoϜQ,kײK`%mjHs}IhRE,j͒n wneNyhz&$|9Ýfux(cށhø 9Kw/1B6[BTp7 KP64(cj<ݮDFz$]QLd,J!(ʴK\;$dǕ]L(;|AqZ*-ԕ$RtТBpW8WżI=d VW4YW K:՚Dkٴ71n7ntÙ2YOx3ZĮG U la/1<ʣa{В~n+[7;rN$e݄+*rk>!ND5a'O9ĝϹ%; ! 2ڴ6F J~M3󺵧c2I]ӆP7\4$RSH(PP? &;YBTgcKi7q$"^J5iݸMU/xI4[FVXKyFjHJX,W &ڣZ͙C$zd # dH/= [l]^KmpusMpGoV 1@hdx] D,Mҫ!=#Z职AiU59Gv@g֟bzuޘX"vh2y ^:.4`)yX7kK$)fV,Zt[2}\Xv_Ln{TtճN3kE`lΣtJA&KM#ۄ xjw|Gh.Y}uTUXX}y}vhD{W"ւ4jW5J`{uٮ{  =v0ǗL œҗ>?QN6neiJ> ]cFA:>d67Kg+quLh/8k YZgebm 4c*{2hQ42%71;s?gd'_Kj^vcnDuUnmOj&yxNs(3EkWm7ϒ%kZ3N6  +O5&4Io )b0et~J DAQz8'鞡鳐ZS)$sWCPaż;O\k♧"{ZFq$$%|*TW(pb^ ͽrV=cWG/5-*i*`K0>fQ7S+՚(Y^]üRB`4=bi[v "v5R|4/h(A^G~́E~p] 6 x+nդЛ0@BPZj-!_Kzc BتI­GhN/^g\WXkE͠g[?Y.qG(``{]sj7` VAgf%'D7$G*BXg K'$]\@:OFG Z Qwmڪ}sS4ɓ}}"ÊQܗ9};<كR9k]mjHf,?mr.ug["$FfneP,~G誱Kvosn;gHI7 n' {Q驹YmX?ޕA8k* Pz?&M7lC?7Umt&(۰`ep$ĥ$ i1sru}J"kP^7eOw1~<8oKVRCGU^6w\M1O;biQig?վRXz7)r7c 4=$hs sL@vtKu*tn;*VJݖY1<| ǏjN6ģdyé6ڏTcz(*Y/[}k *5H1P1ek:ሳ3(?SQϿ*>0&}}e :Dw'4iKRK1")}ݝ{s-LxUgYWb Y'x;:EUҵ>o Eκ(M-Xv3'C5"n25=VY,f1oov?Bߝ,W.3pebgAT75! I5ZM88݈v/!:!y3~;ss.kk7?*(|pNYSXݝ3\xӢk)}.6b\(lPW/r&8_T#t *\/ su5Yv 7mIeZs2 2Q#RX]4}%>GG{z ONpkb"D!; RzMIip8dcRuG/ޔ3Ly18ʸ4hxTZmG3/R-|<4jp{˸q_w yLKcϴVf>oc:aQ\1$ԏGcF6CTy~A,Cf|`nuM(yo5Uħ39Q W#MBׯX8;F^oћYQL{qБp(u[Pa?F&;ź#j<:ŹU~ܭrB)Zz hvu@t|/U-z8Mw6QEGm(h1]9-ʆ9dK)K xAs~DbuC!Q׊Q^Ժ4:ޠ.?9qjcNCd7#b¯NȆ?L#xW{\r>F= S̈́װZ_O;J\4% m` ݾ1.!iΚ);)s@Z>j]8rԿlx`w֏_)09WMޜ ̎Ak?`gPKL1\ldnuvola/64x64/apps/kuser.pngUT lAAPQux {<& $lKJ:QʜU*aiA%[O)JY'$S·(R1mo~s>u}unho&u~߫}-HV5. x_gO!MG#ƒc=fj:Ʈ/!jI lkm'=7_%C5e k $W(s`L|,fDz{B><%łԛ ' eFD(U2AZR\m Q]^dlr5L yGz4mډ !q1Z| zyA|rrR;L2 1fi2ș+^ a9yRh7q9p^C |:#Ē4 0;&UKLmgly7TcՔp-G]&ǭFd=E YdI lkE(u9꒴ds7uᩑ$m.<ֿJwq%mx$5.kcP: Z]\==c0d!YmSӳ>8 ḥvxAb/yC NDGك G pS:]vӝ F z)C]0 H|3&n]F@ޣ6ͻKBz ;urVS"fytd&fUcu !`g]/?;v.5$C!~>\耶' b6,$DPe.;,h]ܡLM'p`-5&.`HJIc,n=_HXP,61 6G:pdpeмh]j|?| _5ŰCYJT%tVG*10[P:D[f~v67idQb\ek9: j>CgRώ;ud#Bԑ CBT% plR8#"b*"K?y}}] {dr.rr  .x._o6ˣ_^$C0Qu:WbHAM<==1B]ÚzQ36\jQ^E h3aMj7#QZ9Pͦ Ir=g@nBFG'ê[R8;UPOAt,w(Ut|2 @`x=(;Z>-ż侵S[1C-޺na |55rH{.~=9`W읐b3|Q~>fIl:au0Fr2杏##p9`],UMOob=_p)E9gX9YAռ( R\>RRBu?A}_pJ2`kc/-}リԴLLmG>AVߜ{z!br;7:==YF |(6&-6_yhG٣1RzLheJTcZrӭg}?/ZSnH$e~((jdB3 1xf pa;lÝUOZF,h1M 2kLD.1>2ҁʜ IAB"AW![%\CЁډ8x rڍn0E i  _mUb-p 4J̌LSrqN5~NpA5}35xkFe iy -g zEde3zOw}aEdl\J;0B2 !aMһ#@0Ϭ߹ bmD3o첓a Q jmp,RĞWL?ܙ҈&=rp g~P)P˺73>}ux| pzˎc̤&p]<}g?GIDh\Z3# 3i]WIq>F;н7M YZb0:3I8KDNG)1.ߝge*Gp<)q5YYe|]~̑[ܷ dͽ2,CasxZ,G9Ofb}A%8wyފ=)M}Da! Mj!{bh |BߌU{}OC,*4p1c\ e,9Ryd)LT B&hOi$o|шRMb|zw>ԢidF(0wՀ]5#{(j⧙%vɭ5>L@ތS2K!joZҀ/+WBr6L%V}h$%7%0EWPJ %܌$5ռv>ʂ>zmo,\>"DcY:NlRK%6qWA쀬#q(i&=l0ձy`EWfiȚr?I0^ÕHj'+w&gˮLι+;gEb7^8+ϑav~qCQB-;"7e F=^Jܝz풳,5i|03F:ND(FAߞ%qsg1 ƥ7r ٻџBDYU" s_ȟ&F*j|C}Y<>&A$|3澽 U9H ѢBƈpeޒ qOʈ~2e~[)G\b/>>}gL`R4N؟OqĠi6=.xo3}{sIdǶ0Sȳe*\GMlj.mx9m[􀃙?5&Vv"Ea5I<)bfP:FˢX Ԃl? ɇx/\Y'mi8],:C}+',B2o(rBh\eQD,6z,#x_ś #L K.I+ $exZ[\sg{x$romȻ֍DQ 0B:\ i>"n*&'B2!DQ+ r}C3q) \(>mK>Ic摭nh !]>9TD2 M !DO3='k̀mDf½Kf{Jȼ"/2yр: wj_=Ɇ_(㖐_EE]}zw JhҌD̎aJ$A~>3a)"Bi83F7.vZHNEbR|Rѻ':$5Gf\(d*L2gktA N#'j×bxi?t9?SQ%9NZ{QH{b~@|͐G7B+dE(+jx U?{mf :FIx=e3b:vk7Hd̍4QgYQ~] #Ny,&m0{˄!'_gذ fʳMϞEi'(Se$Dsso-fy,'~ OU'AKVIsQ &]3֪烗Q2"zuMw<&Ϩ,-+c`F gzSN`ǮƲ\M]I1d%ݔ B2 &h[ ^v3^´G0hfVƾK#UYouU#Fk)"fҁ;cs5[?@|k/-HIFwU{_؜UybS{7o5.&)nU?7jGuxHc++IB262U^Y?qӌobhIcVa/pWkSdA1Cy/F-ĐƯ$I6Hx+ sC +IITi:'xQ]X[(o} '&xZ/Ҷ|Y$:1qRV98E1y'꽵-s9ƅ5Q?𥭕RYE+|UM>\3O )tN͜}qI*=.¸9FUA>t߀\b*fU+{rt 9\'c|ڃ^jF,F{<:GAKLeߵ(J[myLfىq-5Bذmjv k1`aL]3"b ȁ(2E_89Kn2bbUc&ME:4YqPFDެ]9肚P%~CNh:Zs&4$հ7a'j0+J@WFi,]5ZyM'[<V^#eYkm+ cjYXnIg1G6voQ#0,W&~wɰ_<] ?puldmZL &rԘOﯤj"wdtVQ'I3t>XATY<[x^떥ckxN0DXAN.{iڇFD+wSmM9} +<JJWН0G4LF%C/vj]T}U]>@2?h 0+-[aʓ (ٺt3G|S`])l.- r; YOb5u!٬9#v?u^bHۛRr1^mqw w7XG}I+(T f+.@A;<6t>:Ym" Uwxk~p(hpOgMݳiu2SPKL1&Lnuvola/64x64/apps/kverbos.pngUT lA>PQux YXSOL(("Pab- `D*jIQ@(RV̐=,{,4:2(24O"w/aj4$Fv= \RYbhA|k_ʠ`:h\>>ͼV;]!D}!pN>jJrN΍ɥ[Kurrfr:UAVdpZHY>B>>%Btof6=}rR`=GH]f_b??>+j RGЃ9|F9צyz(Y9cu4n5'DU؄^T==0⺍$ꨫasxInUg :)`mgg#PtS{LBNmp@Ϡ(r-%eyj]J! 0Þ4RafHdS-C-}} [XѰ͵} ï $b(%Ѹw9nXw3Ѡ>>:Uݮ??ݼIRg_vbgdS3^Y|{vjoDfV >c_*|Jz?Z^p"Mt.(J8O` \is尰zͬsK/|>:Ȝ/nvwS R(^^+Dsd'qDv;-_,7V҄2*xzGꚅf͚cq\BA:ūjQDb עʆ:us,Q"<݆wv4wAR/2ܥU`^G2SdӘ>נ _e*Eԫ~:%t/k+ne-rnq8 ˴ p?%@,72I65M@@ĮL]cیmLH㡇$-BߺxJZ,\2Sm)mtYܦ#2nmޕ]\*, Z98C$z pNj,n\R}9ۢH/7V~]Tlog{M]lHU-SV=tGy"w,'6e3 L179[꼵]ؾ(vcԔ9l7sJRoS"nVfĽQDz޲M^\^ZOm;N)Rt`SfkVmPܣB`lSY+}SRgɻ{/^*)*y^x reϦEw@.۸Vn5;Z )+JΪvEڟJ@0 Ozz@!+D"SͰn.gLػ>Tv˳ /}"?OdVAM1 FP4&qħNR45C%J'+Cz%>-MotؓYQ_A6eښ2kL{cq1@0t n֏k2F#gP߇b7YVKenJO.udWdNsּQnT6m"YJj&ey v(l WsѡQ+ OW.Q@ :E"Ǒ]pETzQOxs 2$C@L#3`& %S.Kۨ²ߙC=TgD@px#hD};—`\ca¤.3 ! TRF9+\"FĂmΊ$!Lc NSNjs i hvYeZ8~d'ƓF0SsaԙTy{K(.I =JytC[7b 4$0񏌟<"@5ΣgfX.*'WwQBZ܃kR_Wʼn2S. zOV3};:] QdJ"/Xi7Lek5xv(=SSM@ ?n"6d]0)#BmMi;zc<5x'w^X^T; Ic^f;eQ"7.j1.-::)!H3kzj,G2y6Q2t1VH=OSS/Ij`F?PlF6v k5 hnpT}9JF0z+1jQ 0*R:"J&9ܾX u)|c8M107OIaq` w_~-' 8[Fvm;7%ŭ&o靜䗪ϪFcRIJ {Gpe28Jfۊ /v6_{cMl+2Ve$uΝ?Wo9PvGԙͽ*|32]׷m(*.V9 5 ?E/6z+Pgd}3%daE/ \:~V1MzzG̚1 weXG'aRJYJq䖍,ыvlP{pG*^b,aqĴ w_s<O>pG `Dա$݌ z /Y%SyN;mzqUNj+ 6yƘߋ3Ezb?g_L̡(wDN9n.Q[e mkH9{St6VA~U8Mo&: vJZH˿bvF͏UX=X'k<)g GfV5`6ʱJ(=}ö >>KʙO[rsK/%,j4ɥyY)}4CS.ShI {3yr;u^(3(Z ((h}p7w}3Shc?T\L1/5FApS57az"(Cc)/^6]3 n&<=:|S`Att";GX/JFS,Q3dmҹi$ZԌu@}Â6D]3XO@1 F;|{vfmvIHj}oF '[oq9oXP^:4!im5\ O4D!aqinwG^PK`oG1]TDnuvola/64x64/apps/kview.pngUT /eAAPQux UYy<|̌L Z(A!-Jt󱫔\KYfETftfEFP7QaТ0;9sy~yioP@c蕵LЊQ @Eʷ=!#>?7r'(#?6-6P]GcʔJ (UD@so =X lB8 SQyVJʸBkϸu7#vd KRğqjCO'QD^[|*U-u}?Rק'ڵt H@GEYP例m2zvg//vN!Ӷ4.:RScٹl;Tk)cuD)BLRعxuu V3)ڈu³AyvCgehf݇ ۾^0mjztavuUu%< X_h+aM "3doίPg9ާF:d "8cl UE|bXH"L/* =u*/2ѽ,H$`x ̨‹12ayLJ|:W@\ȧ;rkdq=zO|y@BاzP=@PL-$Iڵw Cy]FoNڏX*x_\'@I]JkqG jB Yuܗ v)yx:?kL㨱''&|Czs ̔ih(",=d}1-8` bF)~j *}'lUAAɔ*(q'_'?PsლUygm& 4)nd/cC69Cjڃ<($O h儙y% -WM s/͍Dpɵfv.%t,@i+!l` 0]=>~䰿eдEAHBw*%MS ;b jbV .Avb4ALSZizgy דX+Ds|Yŀz O'ϓjh@eʧ1Km"+ @=>A5" @ ?w_]cفֱ‘wі|k!EweS!2rIƈ{,(kJ`8KO>X ư{$bx46rۋUڑdk4>W#jn$u.ݿۙvkX-?;rd}"!͑[P˲_W<,#s6Ёa|UHW65gXQwǓz˥f!q٭w,TmDϔH+yn)8^Oۉ*I:c9r,rq> Z凙N|~fkd@ǕiA <|fy^筤/5ŦoG7% Al|>fRq6N,!`a6:d{j9e;wAQ[!d@MPt4#v,B0\/xd:}'18+n/zV,c\* ֱ#4GS9:jh^. 0 {wA_S,~qqN- } W5]F"컁]P6EZOg)96X>iⷤ{ȡZ:W&bωG-ϼE /vզ-ޱƸW T`1"h'J1LoBgk3^ו"A&c%ivZ0P{W\!]G#^tSo<?͸n c(x9CGWbZ,8ޢT([r VP 74b~XtiuF> Fu.7YEATg.3-*gtDQ{a6;9[^Jfտ>gysڹy2<>?>?ziފ#z~9pGT;SdqG!A`M?@C[~)N/x+7 8aE܍m=@veCC5"%HHG /yw H*S2ow=`y錎$۴'~ُ6-eBO ]seXq8LGs?wP;\c3jr7|'k@KUJن"g=B`{=\&f&" }!en,Qն+jw $$Um)kKC?(u?DxE͍1,pő :dyy+z]%*ֽѣf!lˀ`290X_zZn=яa qW%!㠾FXM*v` KD. ÓEW-|"m9k܀<j"x%qbХVɸz4kq =e4:TE;03nZ3p}5L칡{Ԙqsd\& /`sn Weʟݺ1%wtjߺ UIWͨ g~Sױ+q>4)^uZwgwJ؁Ja~uaŻf5+7ku~-zTZg.o[Īu@L"E1y ;TàCzfEFj>{ri@7U0-,P'>$'/62.|s) م( Ĝگa6i*@ݬcšP[mB(|d83(x')4"Sy}E8P&E$Yi #)VPЖXPھ1ԍ$:Um`Ջ+?NY}uAG{R7uNIĔ`3|#~!M#][^?N%n9)Ey];eg7^{A2 fo8(|m:BO?X1smkzC_E.w=cPk)dK/]ј$'.,6]O7Lˏ1ɶ-ۯq΂;劉n)ԝ8ZF7z#x]p`Ht2GcQ _Yma6mrz:/CG(?&lYWTۇ%1M_Evpm46=;fbd0Ӧƒ*~wFJ 37c {*s>up>6ܚ"}@aڕF)63jɢChhaVsb'ǍLpPF7fbf6ɍ˘'vVŝi};i!J$PĚ@:XջoQ4~ Q|'[uZxb/cR*SPUh͋N~ 5z G|pB}8?nTqE`cʛq8 xP-eDqG 7 stJ5 ZVj_YHWUhtrdb-dQcMc9[11`P<(zR^5۷Yqxׯfr$_r_ UlpĽ6zpqJƌ1/$8c(՝1Y%xH06:Eԡ@H{=Z ^59ҷ=]D0'܄a/AHK &ӥdE:KX[K_++"xԹ=xOo+H" 8syӘ5Da‹B4b\fjh<%W^J!1O)3~jF.JL2=A+8{n,ͼG=T9larPn[|_cg 39٦4|]x,ȇ8lcZ[#MjƖj,Dxk 4rq5Ǭ  a/e5"wWi걇c-/,] R54bQjh;iYa&uh X=5W>%`x5ј`,*+%Ak]gt4+e" d9GV]LGsY56MVXWH2퀪Fz()򔇺AB9 t}De)ds[BBo4LBm@ (Igr||i|S[ȡeIʡT-(9nMILK~כ>A&{;qБf'X 7 چIz>#pNv_PI'HhgmssI nnzv']5t cgIqG0ou]y@z;$ɉ=Q+͌qf&s(v j>>)QfqR䘅ә# =j ;?9X0>@&"H%Ls0O$&2cSfOq@^BW B~i@_o} #Wt3lv{i=NT@7qCsQ*'=he5,. xXtItz͑5UO4sF!Zh,JLx%=dDH&|&^bp|_|ye\=\QP^H,I5ʗr?t/ <J85N^4s~w2Ucnu.-g31{SWreM$0d~Q_ŭ $-Eycu'ה\ׯ\ƥ¤C!Vܫo]+7?{MRpOI5ה9zP#1JQ{ħ[3)\+sP('s {VN'&]^"BVoH)d ItdR=`7g\74-cgmWqEG_m z:'6 ,V~h^+u{0k coS~V/nNIPKt91mקqnuvola/64x64/apps/kweather.pngUT gUA?PQux %yP)K%JO2ؗL}m-T/?>sy_:vnWVV@-`)V vX:裀ԏ8 =͎ZKW+`W" $qRx  w&ErQi@-֭YFe18~g?Ba\9D4򪱡Ho&`iwe9ts9ٍ,M5D$SpE XIehpdĈ~zBx{V- EqyݳODcYv:.62 W_pr_7oYh%w뇕4 F(\'3A.fAV?{SZEJldctȪ:y O @qLo]ŇqXa$N .c `[v?%J%Ek!ڹs}!9-\|*|'6Eϓ".|F;>N)̘E&#C\i.;Hd(?IIA<^Kx3W% K8+7W q'K)͐۴8R&_f^Wz<ļb2P(oFJ$,-lDjě LV<zj~N`BIs07f?&KMfI๠ iuDt 2d.VhCrJy|j/*xR(B-z!/,IAhuC TSԨ -%NN* L-˚,ld\6ƼD;8e .s4vLznoMaG ׿ d [=:"_{KϲUhԭ95;M1,eo00 O)#Rlxr>&5 g+^z_ 'VD 69<>-’Ճ@LLh}.QE,:8G+a(VK]- .(@NfBn o*F#=_$-LR6)J E:W , LZ>kU!V<(qz@[+!kOtL #BHZ XD ^dfTjӿ~K.Q`xc#|Μ=|Ks?pWp2(c*M+XAJ<_<7wF3 {;~[r|do=B:)Bq|zHLNa#塵+=iwYb3g\#Jd^WK=8KjԡO\'0xeiǽEEce0]~u/;O +5*'yW8sŧ[&iPHVKkbH8f¡7QY.gڧfc7A+ǦWd_21D Sc?IvN[GVa^⥸Cgd9ZIS(б JMLV\$+^yԉ,Xy|GC  r u@1)̗nG ަP9n\0R/XieBc}˔Jȟ $yAq So3 8_ 삚Ceτ 0q%?iJ慉CH]^d`U<7؅]6eE0SFjt.\D`EJԃ@'<=tp-ipSAEhJ|E[]%G3Kc$3`Jy8ayWm'JuUߎ nSޝWݟ-eb;h'ULV T,TmAP,m{$_=>C4FaMg+Kk{OɵCSZ 2?_w,.BМ̰-:]nqF1Sq:Qr&l fΰP ^ _vV峺QKyvcg#)zLVRZ9\Sx(vbҭD`͗_/X yJdAdqWV8Cz|I!!b)'unx#Ӏx gQvqf#.[,m=P-t%k#=b~㋾\߰%WGc$DE"}},!q*SdyX[ܬvm1]>+\I,޻|rnO+o&`φ"c  a w~?1N&ҶATu7KUsEHQ!fc+ εBQ eW`yH?t,= Np(bXFٶq!?Z 25v~Rpm4\F|ƩONۤKbv~f]sb'׊)`߳6r-f,K{\;Gfw)|k*pl۴fμM+sM%[K>+ z&gpaE_n|ާ+ڮ']k@A6X/i ^̌_ WtY`~]C0p}'AZ93!㾅I /7GW`*wD"xzNq?k ~g'PvY2ܪ"Y5{Eg@"zvE쑮ci*ؠGniˡ_:rdc(B=mF`Ea?u~e`_ꠢ0,; ͒aBK ,6#nk-Ah;v[*2Rn}k O18/ĥc dJ,_)^Imnאj <=wo/啫W餁k峧kf@ XR鞫gOYY/w$e]͆{l# &o/Tc/@w7JwKn6NpQ?w,}&;ZI1.3C[hTGtО*=RR`[=RSsJ)>.8Ҋ|.г4G-ՙ=-VwCzb 5rw^DGj xz#~yTqLρuc/xK.­W0ڛuՎ03ɵǗiRx. j YOu\eJ1a#}T';%[on72L ݌qiaz v$+G3 (IG{-'5aAǍspgamfsQԷT|bwS/ksKS}nm yk#Ғ¹ ZqH-NbnzBzy*lHF& &4ĪoDj,Aݑu;n+6 ˆr\eNv yr& jU~dhYf֚PRL;D ʿԌBOe`pѐ?a哬wcCzU/UBar'* S~^:GF(kQ%?f'QD<:)+Lu P]`pnnL:}q5ƿx1|_HW%}u~V4k!Ie,TBƒAE@(]QTsvK]hrMK\ضqߘb8Oy7Ӄp5oC*xT Ҍ Ƭj_e:A$os~w(4E Yüceř'a.w39R{T+ς˹g-XyIe/W.3B'>1󷳰'Y>no1b̛E+ʈKW*yf7 @K]1t"y=S };\=۔J겟C~˞A* ?-OaQs#ej7UBpLrރ:['&kȏ-ϵf C÷qG| Wi#(D,Ոf=lpC>03,PQrjHX0 m7!oP+\G?mpNGEʚ7f聳$|Vt[>0z`@YuW4%6^1҇{W0E]LE(a({BRuQ$HK?*f6p 2:eUaNM )iHgħz]S+ !%ŰM+a,.{k:U<7 \8کsGBL Ihy0)U߫CTf#OesFhlR9@e_-eѳ9=K~I0|mȥR6^7?KlwN)Tb3Ґ6(Eɉ6EXKQ<(i5+b2 r U%!,Zg4 Lj%>R6'pZ}rX|(ƫb=(;ܴD ε-)&y@^k !qoV36R|⿇$u⇁%!!r!Ad38ܖLUr8v7鷒o;Ca ­ &Q$ǭ,]AE%e+PJ/sk&,Lpn4O-Lv)uG?i>-&k^@ng ;s_\[m5ou-= /ެIS>x9ԑ .uؑTԯnU@pV6;UOh4@kqX|I,#wN.W/Y,|>4#xU[A!bXQ+T&5;W {][/!ЦdU5״S$mN|m[4!+1510N?. Ą{Kbřd*o%<Q:u*;&$3J8l_7dmAkVllOBD̎)Y69ü&*qDBF"6M/xߧ9)VFNǠrSkևI:l%#$2;zVD |J@1R9m<^pq#=!i )lMƼ{jL9$Kŕp8l3[?(F"S9N+ģڭX#2֒oelx>]E_ 4G3{GAb95+\û:n-"" YH/, iH[7z@nS*^4 nЏl4 gQ)d2޴M#yIje 3`t n6M`@*Kz>'4SL܁X4K(Wf/A ќc;F*+sܲI8C2ܫ 7ѭstH|HYo,ݙ5$։F 3ɤF߼c%SNʜK Xjip&9uꔭ:UM i n}~˩l _^ˏQՈUwoP ĥUi㧢pT{ PDJ{2eYzϵN- `GM* QnoV ~D]=0?Lƌ?0l&{nj.Fr|5,uJZ`>gW7H֥~JH_W Y)h4ό˗0!-ͼ~y3QWBBw{ș͂K>:ߒpǞ$^7I*fi^+V,\w@ß*[|} eWiI]$69C͢2 gb# ؿ 9/znwgMemG<0sR_dmöTm E6U࢜v@ ^܄+$_;z a~i*=H8Gͯ"56TH3E^ ]~'nʵo暔{+uT Q`ahwҌwxe<1 ŢZF\ϬBF)yjM{֌|tP+ RӝZ g5E]Ϥ^%FsF 骢PƓPee>WM"1o? pǵIZ$ |c:$5VqL @~'|#=8o7vv*ŏ 6⭕ئlh(6K?:܂I4ސ ג!VzC.hZ'7?EjBt0$yZrqb 6ei~CuhQ+W)Ȍ1vY$͜uS)yG1^T&(I5kn2k ]aīg@!76ߧfrqS)pk1WKSԥNv*?5.BWͮ8A3ey~u=x2jʭ`>Bx4*?$7o8ඌ/_`ֳu .rW.m!=צ#W[eTcܿ5 "LjAl/-]4#8ܫQpb|;_"f⒗;$1E3_ jwVUTV8I*f$[3ng6Wtgҫ. )Yǩ6qBk|Dr?Ȝ+ZG3y,BUû/ TNQmCDC 7Ve2ۃ>1ٳ>?P(Q12 Ygo^ xQ^J ˌb 0{DJѳ㇒a&c_u0oa`j0z9."x{#!!+Ӗ P;s/{rpGQsR]+Nty4Yqhf}| X-eL4z?+d ףD[D@AV$@ͳam>g!.͊'!{~}F8:Z2/XirܓLJ[8~X60O $uN9-< 'Iwa%ς[ oU?@9q4΃ׂ6r@JRgѭag7O 8SuA |OLDeu XKUxzJ3/ NdJ1!16 $d"NْCc"҉5aݹ,[9/p߽GC`O6zN#ᒋZX(ێT]Fl{Lz 0AN)y+Vyǝ|VU7| &َxV^WfN ]ňQ8y9 G\>P@{"C*˖(CA2M9M2")0Ț6wҏ%J0~P(F~c׺f}X` pw4PQ{Ƣ/R>YtGR'Ÿ;3ʲ*MP 1(NDpڮ} RkLoZm](i=; zN!_I+N K^5PkC+ p^M!֫KgwJW@a"鹾SQ}5%0*7Eb8 L#M)'mfN1Î>[Wrx'wԀP#e]$Oˤn"]\\hcwsGk`ꏃ٩o(Qg5˫%-tʌ=Bd E{B #PE|p,ZKgVчM$]W)@tpmEʲ Sīm5W[`rLGw<&7_^\\!|z*ۻ _m&:x/}G 3o=lT z!BRx2dB' 2MמM;Qt Ɓ]wYͨB M-utfg̾D%]>R GMְ  h㞅Íz}UPBԱDݍĿWjBi 5}5Z6 aZަk'$`e@k̤?fVwC*"^,EG }&cz's 6lұ=bDvvrB/ݦT,F#WӇL9*%ߜ‘効bKUFl%ko[fgEqS|]' >}\^?.W=zBŢSN5|%{%Yu-;KfRNe̾muKF:/h/y gGxiovo$NJpVw஁L;UB;Ix*`մ4~ův:=R/&%QS.d8\L|>#RjFA0PǢ[/ 9t)E|jQY?en/GPKt91 nuvola/64x64/apps/kwin.pngUT gUA@PQux }VkXSW=7O -jx$7_`\b[AHBx <(vZTJ% X֪P% q9?^g}j&&ࠀ0CDŰ_?H<&pf?C' /hUT LxO^xh-s[(jk@(ȟHf|ElQ`!Co.$/\r,NdO sf8u^ 5ԫYI_r=Dū퇽-Zx$R`\Mf"߼Fli^rT/-Z8C^?]"a/%*!oAOЁ tZ(S6ʹRi_;huW=ĪkY`[x(ł34rCo)UOz;mF[xF=略[:u4rxhQV.Y4 Zw2nDuAxU} xХJyZ+&3jVgk4 hw;2K #B_aq[En n;s4{fpÑnrFi},+`X`|5` ց2>_ً%{xh;P((/K.K\"I][ V Cs=Rk$%1їg=#_+90@L]UD}g#ol0(ޑ[ż{ "dv`T*ڬ186:؁Lfͧ |ˑn jh(諳'aj،*nY΁iݢ3bRLCR_wW,j3Mep=遁<11UrU .>ҷ:6?{NYD]gˇtS6ilPˇ#Asu \y2& `<8[[2---  ۚ<,P2?;Фi1`NB[;|6{VCF1ؽ\O+|] Q_NxDQ*Iwӗ{d[$QSJ*|2eXb@=C V1Tد]rcB*_-!B_qo ~«tFߋH*GU4}9bfpNUuu3.5NX獔Hۚ^䘡Ƹdvf __><~#m㥧xc1*3i~4[¢JK&踁=^@PuN}9Yu)| ss|֭AF2ɉ@8V5ZqiU5;d7wţDi/]lHê'du\ĎLgggEᩗ>l]/76mr`BΝn6W:#ŽG7B8u99Q 㖴(;ĵAy8h܀\ {4S#G*(?tVP64!90nn&s1L!ZEW8?H*ޞd6k jrLiVV8?TM1=9H )Rk$ؾSճ}@bz\^膾8`l\4}ȑ/C`61͞ϷzNln|/8;5o~yIyV?+t@#4#îu ؂P/~w <Є77dS3sm4RF.v&=aQ=J׻u@BscBNuʹI dpUfn[+[ϒsC> "75VW˵P)z/[C놅B<:~:k*@Gգ QsP~x&6oTc=7,>ЍsHviF8`A; ePKt91C5enuvola/64x64/apps/kwin4.pngUT gUAlzuX3x(}sr W8"](<mA< KXXko|QvvEcS^߀R! -r;b/ۍXѴ-|l>8jlІ\^#k_5㑠;踈8y.4dPoɔVTxWؼMF8PwR|L֗ UD!$gepmӠ'mas/57qq߫`d2~M =a!&7HRt.vGphO۶ˠ5Xw`tt!kS{ ,tQ~Lb g$:6`:: !T׶?h:|44cw3p)8"Q{2 ^'PA b'[R[KlPO^Ukt︉ 5D 9݉S@ϛjŃ&{1,}쑜i<\_6yXAb>抮%fPUhPUL0n6)'A e8&2!^A1̷( -h21WBUJYA ?%-vsN;a~uB*1h"i#eu[B&o8.[CvWC'%\ 0z(=M7ЄzkX|%k|!zF;+M ^I,OZEEԎ@pI^%QRJ1ErM é"0=epM-#:g#_q+.%ٯtfS? "q$M֝&RMq}m'_DGNUZ-ESѫH̯k:4Q Ozsc6ayZ⭀ƋJ' CB}h:ÎpA@ڈﰥ-nYnWi OT6wrQ~Ie}M_!-n6}@=j0f2lJ1}ξ<{j"}&g#2ʱIP4ʿkKy?DCi <^Py,VS\crE7^T7߆?eHi`#{Έnb lm_i~Ny\ 0tpj6x{7t%ᅭZG[i D8k LQH'[6 B/U$Ucԕ0 _5ENbgXyl+Y? 8ڳ!ΜdR ҳZ.\ ЕM< ^cLؙ4O^./DGHSy|eo;6=?S,q|OI&,p8ᢂMFSjw$F2O-z92J5f ^,! jT&VrL`󱸲7NIm<9\j;^qDwh|l|Uyfu~֛v ]oUTV#U@̗1WB'MIz[l&=;2ɫpBmXDVqr&w(5ˤ|"db~тM>md<˺].KnaVJOS0Ðb}d(IO(-)\%FL|ަW٘'ЁsRk4 LR΀FD5A4x3/_͒rSD8Xy (}u}oQʢ|vsJodXcm̸x/wۈeOl b^ p'?9k{qI:$ ގ <БIDQI x u5w/RAx  f آ %LcފHw0;-xzkV5k~6TT (N Ʈ"{T= &/G 9t[ h˜#-qnآWii|Z/k82ހ.xr,mqɪ'k1-_$g8SIwn)70 }V2?~RdhapDߗSp׾{Y=ߴ Uj- N|.ʉ /JFJ'%aQgpDSHą M> qc3G'2i<_aΤ:]U8?$ pC,A@w_ &9#ɁwR08"ITuCVؠ~Ɇ1d4)Md3<x֔k)NQ~2-ԁ8Т R>>*LY%Kּ(l|0i 1n *CN*xPP(T䁯~,- 6o%5Z{F7pB56.~6R2Zq%")VcjK1n>)_Ͷx(bT~F :#{oWdDN1 ?VG:#YQItnba~ݏ:w%~OOWȈ^W!'oB2h $QlxzLj!X;KRO;U}*&B[Iڢ}PQ`NQAi[ qXvWM;ZZ8xjxI{~l`Z?PKt91x}nuvola/64x64/apps/kword.pngUT gUA"9kF>חw"O΄)= 9qV B xg}˷Bg|0ȼj7tRK[YI˺ύ 2s0c1E*YKJ-#2>)Z759Mx }[gvTE_,~Fʸ Y x-Bxi1vk;A+#v#mb =${cOhQVVIT?;(QTUط j7ACr]wW\PP 7b( ws}ffݹN=nhV /hɺip41o?-hŢ&;yەPI7.%T9UvnnQyu3|x pB90_\$-"D= '.QL`,/~K$ܨ6Xn E_?*v!#C?c!{tj rx<4^a]EVf*+!:7Sb!FC MqUf?ʹ$;btٞ^"EjT1aEV#G+zV6!|bc%N/MG\sJ f )͘;^MڮU1Sq0,0]UsrL!j/(S/V_+yj--CiҴ'e?WrΒ%u:KK*F :y^4ʆ( NѹeTӡFSēosyNJ*O߶(Wly<%f` 'y NVԻ Mo5;6x Jy*D&{ HgGpwW;7/E5P|VggN~{ K9ҍ>ZB.uBk(Aa}ERRQ^9Lҳщ6H ﻅW^P*^"ōZ+ oPqE=Ec*C\AyUO7sW,׎,֨4sSԗ]@7ZJ1,,JJNvnΑKaP8;3ރ0)$ YܮCK$s̹+oRwbvꐓv]}/F@ V 0 0Gg YnNv΢ϝ[!|>BtlS[7q b@^^ARQMԂ;pTRaqvZVYvmVFrԩZ{A\=Ak y/ItԔҦS2aêˬ %Yu%"t ::!rl\j8JJOSvL+DWߐnЭ9h޻84y҄'4p`ԼB:e`pY kp#6aV56fde6笟-QdygӚ-/2ս"goYӱq4ʎEDGD/v9|0f$C}45<#HCjhmJ]Y#t.Kù%"<0檀1 ' ƙ7mwA97E|mA ,k Aa&ΨR)a;$bzʠL y|SGO_eJb=n;i)H(nP4,(Ϩ w2ý+eGYm+ۑNL NVcuU(h qc($];ń)g+43*s([Tz Y VcyRQQc=Uyrl,Z$h1G N%Ba|!u>~fO+ oyt%Jtb"q[eT@_G44R9;D^M>F};߀t}6|ֽy|>”-lCM4.` T#.hG"d JMG;ʇN?FnKB eWFcb: AbNw h$9=T[[@Oh4~,idK|vvZp^Q8+i=|ӨfT }0\]Lr)zM\6$6\9> vm_D~Y nR~fEZ3a~נlJ `$r\XWZzyIZy#V:%Pc[AFs- haIU"Ѝr>ړ!1 j{fAT]OZ43K6ĎXYMcy tHe߯Z'IKx~LJAb' 8dm6P&Ji_$o*/ cpGxD];t5&&d\7,w㶃Ӎ(y`XoݞEդszLcr5=*3j-ΘsPl 9C楗o!5̈́#l' \`rĀui"ǮBXCjD +UO`vrIn1-'#@T*g57OZ܉QCP)k [&iUФ  s|bN{ܞg'1-맛يlz %-f5YI2%M6V ueϒ^[n@~A֞K"\YWZV{VJ٠/.̕8eI0*@Õ3#N^:3mj$P.W|czbbUaI&Fvu 6]rSڀ*}}QCkf跟ia,mdnRmʄKGYsi.W}af|Qz0QR{#ϱHnVU/{ S$kMFh'4j m$7~,T͏퀭"Νu9w޷vjnx7OP7җkgk~0c{Pt( ?pHYЈ}h|}<-->'%myQѡނ6ܴ%KM[rK|%b{1H<$$?|)o™Xx<\V_w${7fI0ל߻_nσ`~ M _wN#q1'O iM^Z`Z7!I8]+L{| eIep,z6{΁ -i#Nkyrc$t;D|CtkRe[5S$;+h44> *(0哚[کs };EnX.k>*M,]'Sս+m>wJudwf-c]z?.ǝ'_t/q/m\{{T nWFiͼ[޽dAFF Ёҟ8 14[rPnA_P/fR֐e/GMn0F&SQ@YNs*M}  ̀/(%._fFS{ڻ+Y#{{Wp Ӆ\rfPNF!]d*EGO+ދ+ ;4F>{%rLe2T/țO^-Ղ,{_|C>2|_iSXhn\NM-W nmHx‸S#hfJ!meMYg(1 d=|G]lFzFz* I%6xs[ڝ\i摑񐖧mpBd59@ܨLXMN%XĘ=ǎ9C.T:ݷ/ ygNOJ,>yad2J6z/OlQYOq 񨟔v]S_@۪L ynQV 3v)-hbmm߾ENP aF-唇w9JL CcMt~ƤxK,AvR=Om$NZnvhTtk tg{ָ*ހ0+׎< `URwWxYK1=%"scqZJmꧦt=+{L_ѨԧM.y>!U¶ .l 7g@"kѥ#;Z\zc?vKr+ u=[*3{a8 )n/ś>[r&Dm}-G,8tpFv릗Lz#K/|DSt rJ.GPty.ED$޴!aQíEw>t<ӵ%lɶ ޙlrc2G.uG}z]6a~.Uu[]Bw7;ӟ.[1~~sԓ{idƶ?|_Ǿn7 Җ:޽h.6Qc㚽,fҌ8ek7uV;((fymf /u{MkŘ.XKK?Z;?4zY[+ȸb'\q.Mc6ddtfǪs+n̼v.??PUeߩm=ഫ{b,S .jSoϜV8#{ni]}?,< o/K ZL+'FA7ԺE^N<>d*sD O]kW* xNw5ިn'WOG@:{IBg+g[w&yiǐMd8az֩txI;oG+nxDΡ%]D*Ĵ&_6DHc+(Pitӯz[j_Ko #'Jhh@WhJޠA$+o?GBKؙA|w5︲Ihv@vx ه;}[ug>沍xkuR'nېy7 Nk]2ܝc&s{i {>8qع3ss.x5dshZo<`jzOTP+NC57j+ܩP٭5CMzGL+&i&!B9V¸)Tej4T4O,f$!; %{ҟHb{97N~8Ŵ3H8GDYUl{ziԡ;-G)޽䬔?\0oJV9T!s(. `Xj˜+2Z鹌z mXi[3?5n)|< .iZ#2u;- /PE;Y !qzͦmI<~66YW=}c+۲P0f}.PDĤrgs"\YDgX5 F7amľt(AN0xJq uc usÁo4Su=sPmEe%ߝS=,otI3]Yy\|];z-Q]O5Q c}ǾRܥ+PN"g{3 "Wqfhh7sNbxNn_UF>M'C-`j:9X A9G\V!s}o^1˘̻G:NN%F ^r$Uu:@))+ިK47ҭLP%4g 7SLeKcdԘ]ANoop5?MAMD7a1cU}*5t $/EE4I$%,<~C2أ=Ö<`^箪i/!)BGci6/x΃. 8!6CRÒe;w1,j'18TggꛍᏤ\# 9ߡn+noY+V0 ʭ5&O*Tl aHJU̟b{ͷ10=g(;+ j;ϥ? UH7UU1ɰǫupJ#x!3:䟑Ph.K ;3(}B*9$@L@/ rG/N+e.FՑPK% Novn#:;$֬ۂuk\Fܪ+g uqkd cuņ y4U2R..-vŋEbL6O }̪<6.,96lzUNxo5>#Kd_pSݘ9D> V1NG2Hk$M.SP熈&2B47E9Jɽ z{`/;.о[8 ؈r!A1Ӳ.]L EY3,W I?Iá .]@sz}}ٓ>˰g|`XΏ,ycG[84 ȉrOT4,γ&u#6DfW;(~Of%GVVXE)j3C#N;\ OpN׎ZzူYܚ& H]:n:XQ۟`vS7HcmPMf&5ʂRP/k@r ADA_Nui* kzܝ9A&y(HG÷B |G{&ao=[я61 ïw[JSZטdG=E޴Xʲh:zQ*;@Kh$f5$'d `/\;#-D#4jO:8I`+J*D& ;!CrpqK࠲~rjme;Tjsޛp~&xe|br9muheLN4$]]"}ZHOS簝)u+k-0dՃN"öNEpҾ|a]y~Q1w GtOμnJQsA MJj DFrݛ=S`qwLae Q.0Qh |aI./N$w{fF(ܕat$}F8:p{u1[#}6>jF76jD6֝-E6;jV9PX8 C,n0vH&\XhrZqWn6qԨS#. \Y4恁ҏMcNOQ[/lwZS+宭޷!xH&Q1r~:,E7#K9j/s[FJ:t)D?47'Յ~+}?p0e}C-8f=-mhRw(snQiR'Nhsc+vVtOQ袳0`TDg?i!gSgYw"XI&eK$W\<?7~X񸼾HZ@ߟ0úHQ Nya{n5aSvt4e9뺇NBv`QBh]` Wh?3t3]/1Rz7D?5 z\iotFp!85z7) LXMɾU?&"՜Md.8=Sb^^lf;Ǿ~g)W8g5^4EzT9@zYgڄj^g p=S+fEڟ.s$MܛG_]Hҫ_V[WF].<ؗI$2gUH= Qh(i)^s: v\O#_씩mZ(Vvu -k'}[Zt8r Ɓ [xE)i!£K\c`ns.{@e+rB??T)[$>Co9D 9T$ ˏ啡)Zl}"J0Nzhkyc;eiVݿc~k}`P֝FFh>~Bf~IF<}2%Р&7Y.|{#2TkE]){D@τt<)} nxˠ;P;}l'PK]=16?G:nuvola/64x64/apps/kwrite.pngUT ~ZABPQux M{4go..]EeYE]DD>b'D][JMJweӅa>`%u 9g}9gz=sέjjhxo^;UÃ1݋6 % v3?q[|YG34*MfBcޱc3sO¿2UZZ  l0떲 'Pe(`yK"gBHtYZ(Kh0tOq͕݃y S3t&cpLe:.#lRB[+tPy(1}ߗOT&!+$nn٧qwGQq.2YA{J7\ DS$Vnfa`ʔ /sC(cJ!LQ3UG +!%GN,;X@h^8 _ !S^3DU_ʎ69bX-r˯_E5@Nό[w>v=:z[Z0q+|/k2TlޝDOܥ}YV[ʅ4]#W~^Xiq%;QW23IvΦĴ8x]X%*)qӮD:ڹIU2kqv4h3s+2( XoĨjg6B6ӐxC; >aեȧ dO/+o/Q\hSMkN1F%fk9rN4 nT0TZ."pp0Y15aM{c52d'I~PtE"nUh4ewA$TV#`mgkK9x8삩*1"Z@臰Uȍ9,%zL=f(hϨP iMa9ބh$Ay7!N(&TMoUJT\)m/HJdLe5ܝL0MV HvT׬f \g{&ei5}+꥛NJGBPSُ: uXZe tZֿE`T3m hވZGHhKES!_ZӪR?=Зz&[NJeІ`xO-b@Lv86iXM\Q\=̍[.Ds38e%*S|̐>LInYdϴQt̨-U{GT5%2 &B؜ryТ+c'E"\P8\yQ4MEɠQ{Tބ0N_PPġ{,|_!k6LIhbʋ+QJ/SGa]UZI&DִW'={K|:f9_nx;Fp(*n {_Z!V|> qFoJBmxhR Ql 9 u^$Q*R.I~.@T%~O ƏIT-Ms=_yq `-Ә%T%oB-VFIj n(e@Fad3GW%}{;0tÒml]KKn+ IsbY]s}| ٖſ{V+j ݮ4x% }:84 $AmFd;/+~j֢Ƌ vgs0#}Xk "ȥg$ bz7bZ:=$+}^(sDrCXl7nXi;݅Q F‡ڹD#U%cHA!tz e܅!+Pީ CO*z԰$+XAF ŊVаn(Z#Ж4vh[RKIE+Q>@^&'vH^^ 0!)wEQ8Eji@F?tC%K;Ŕة)*)CsKOGp|@vfZ@NnmF,j kiFʲJŽb rwU{N4 +iN-}f{1'4{#촌1TuC{ŌӝE&b~ |# "qfҿdW0V8U-],5M@s.WF]ہ]֍fdjk/x PAYUo3Do8wTm_=ܙ`Oo9[ICHcѢb/|v/szpbAKWWG.t$ɟ]̧id ^.٢%$1k ;wifpp|FUBn2H$*BPLwmllrX:Wxж&܆-lIWZ؝|S\`zh?ƚ~X5NVb̤"թ~gӛM"?_`O^S](UU5OVKS8 ".{E^ FlI[O:QOG='`M};#ԅuWq'\|ސ;)rv֢),aVڵiX=1*U=گ2rW^v}KCU. :~N! ܝՁ%QPav2$@t#MÔ[N]:7pJ %W0} GNG1KCc=!!z Z#nھekQrGv ~K.{Q^2`|CU<9fS``JF: yAt`FԧKsML/:QQ}O C/|3TgV `2=Ă  <)݄J I>3g}0&zvxI?_T%*yFxكt޳)WyshwU. |9rF;RԘR1ek('a̒(nS X:w0aZ8h9WóS^t'ǃ`^׈hy ȤS_"tыR  kaUۈlPac¯N|F*dVM̒fd(v<Ǟ4po֒FEG;ߙ2 ?Uu~C%yEZ,<mAZ4G>Ϊ!e`*Լ>F(a@S!h<.!w *|G^:H:ti-ovCBtp(⨣[̔Rݦ.HE>ʣ$CR;@:Aq-ix* )7$ -ąV㤴ȃ2o^֧YW>7/hl/=e'AbժFgp?jyM(𔋈w%mB>~TDoRs|s~1M4*7O K>q~=!`YX&8Xx,u<<$8@pԎL*8V >ʍ+U1ʾq%AUtw }i6,@rڍ l7z?^[O1c[I׈'MWӶt';ma#n+GAN%bF< QjμYn'1kYh}xh)UmR>zwcv۵;^HHBz.j?O ^ʆ ipq(S¶{ y{`8hCQzн d# ; ,Fg[MxBPJFh5+ B*1Z6gJv@C9k߄/S }JiD~+L?.Ɗ]jW2t#^AIW&@y?LF/ɱ_% 2[Ch~=k< msҳ-]*'#ӦV^bve2j0̳2y]V3pTī"Ϥ)u_komzְ02x?6B$9+ jT DxgTÔ]w] ŧK9 AQ+ndm9?͓D JB˛yRn}"׶_8p̳ĺ,i>}fM*? XDx=%$*@ &or lQ?y^nfٖ]ҰVk5ea9hWfU8aQ`s0[eqquTClɓZ)CgHE5xwbrg48mN7Ɇyuhj.#2o?Ϙ>eľtPMi?‚_ &Ebm.hJWx(([:ɔk<+{o՜ir7β~KP8&̰Mj<"51XJ"ZiˀnUׅ);zQN,+Gg>lO«D PR#۸Yme)ZT{dfn.7a1^(6չA4oӺ(Not=RCoc27?k ޳}cĤEbXq[2\Q\ZX<ZE bZQE$l777s3{Νݘ`#p(@JF}.ߟO qX1'&A&K{OfB 9 n ' Pl;|ܦF)VS.;fWM _1ŰO}?FN]G+[1N/l:(y>?,;s0|N#יIJ||>zZ^ŲHC|~]!BBV8 Φ^iw%'lE〳{* mM{oT*:BEҰfo}(ƿfR,{ ^P)0.c)vCR:AgyM]]v#<@ h,(QY/w[DחSw =( Y[X074j`@mމa֊jSEQMTXCi_RY_ 鞣1łbv W< 9}RSh_~|.NrpslV+&wv7xaW^0竼[e""J٤ɧOF xJ@{iDc0lI1rgb9%jǷ^d|/ Ћij ,̄s69 )]‚<*r]mb"GTc)(0WD&i"]D eUiSK.nYRTy5B:/V\aٟe2!a5&cOC'ݲm:9z処 llNs\%Y r[ .Jd#H4y` ] VV%4IRd[js=BVN]ǝQp^dwʛIf|f)w6ȉ`HY4! :e A l&N>AHS C@/x,~B'F'E>țўϊ;BaUss3 53v !#W!^y7j:7k!r7=Q"UkrE",|;WG?ӆ6B=8X/X{هtVDH| 5o*5ɔv0~β8 "1N,3eu$@ [Q訔 Vӆ"ާdrn0jגglh !@֊!A(L1-$B^Eo >jnH!&[0!Y{&#rc0e,7D܃Jod+?#/~r|mkk(gqj="V: $w ͊'6o 0| JK_T7SG:]+k/|Z4!}(bK'DbOq:;L-2-ȶq{]hG]WSr8.scLȈ2p9 V߽ ypopڣXk _^ۤcO'Hx@POsia+%22fiu@0*~<1Ɖ&C|wqW &V!O B i˛xұG"z@o6gL"9!`|=({[OG IUJR 4\dfnچtu<}8W|`)&9&kg +-wjn4[ «AwB33˕Rj#-]pp;ZUR $)4⻘>?\ ͯJl/L24g0J&a\g88Cd > zK1On-) O{v `7iVvi]z)`<dc-0}?(>T6d{g?8%IYqq 4<#UCŏM'g0%ûnҒuhhȷi/s e:փ蕉̺kB 6H1vнm>SyHf\ t3F_ṙ [!L˦2yKuwf'Fo&=>g>*`T6V)pm vKZP&yiW}` (='0hSjO> >$vzz:-ʍySQPNg ~0bz:Z$0j\CƳhSFyLcq;SFUE {GKQŽ& 8֛:lXYmLopZ+Bkƴ)V1L4R^p̻91V_t11dQK;&|yOMM%*5ψh\Wֵ5=w{UR^C (r~gqttLvUIu S4#N7jퟲ~`qPaTMQ%}"T$ռ{ڊ%B9c'I#5e BvIH<3s\Ufxxuۦ9YK_vAyknG>i W on&X1f9x猯- # U^5{/E u/6rOjVd0!F.XՔ /S@l[Bf,XhZ7=IAa\PP* h9iDz+Q\n:TrU%֓o& ǑRwoP)jNU1/P\=9OC*g+٪P{מ(A\V8|&} r {`np0Mb| LMzhX{D!St ̬2+߄[*0F(@h}(?Z^C}9Ԓ" iJ!}GhR@JR B!7t>clKfh%1Qgu{ cX,wl I=5ީ:@R+D5XuxWƾ"Rh''5 >kw-iGr4|Al&8iۇ41gd&l>ẙ(K҉'Sv-^tZ0D)wmn pW.FMdt Bu`Ҙ95]@ ;p@&ҭ*)S^e&8{/cc0 g/%0Rs:#OsJW34f?~l"_;oX,ڷ 9@%R d WMM#ѧO۬~=KT~u@-0#Δ-V.#u4sgg荋[dsOiE yj930s{ *;;(*2QDd'уXv0 0 eSxv]((=1< @  j͟D衭e̢r[ēuխ|-j;x3U8^ϭ,ٓ 14ŗ)ƻ 9xn-Dv':ɱ%ђSfn`S*BN$pef 8q @\a~t ! _>FJoMl-\6NL;!& e\>^g2z o_ZDki%]f(,gbXqbN%D+λ){Xyi#*w5GUQ53oǝϕ|DL&=)3^}3mJf݇ojՍU¬w(W8GYjJωxZ_XY: SlC =UiB}udo]RS{!J'㷒29fST5E*Acl f|N*^kxC|YN뿧Jo-\( AYOl|m@7 #<-¯ Vy@ x/0%ZZmQ!_P޺qƻ9ep58 #<W >)=lHrgoNHdbMXOdtAYz#d=D"670C%n0ʵ{`q/A#n:[/wHqKa 5*VScgגث<tPީ Ql.E~tӋ=O_Nst)001`(s«q,'nR + X؛xE$?! hZup9Mڙxj 3q=ƬcweӎMQFw\b&&X9<: 2@_UHJ=@s?-<7[pNU3N1EAш{ܨLVy:`c<_d_wCg .Hkg)4܎ ˸X>Bw.P7|ItcsDT ;V=5ί(""Z]b&6Dew[NjcdN?mY'jpZxlV&Ԟ4'99ye;9S'ip?8ONq9|ġ{覮\L2Hȶv٥qNۏBc$>Ec߰;~8(3i)c׾rCm5[֑-shs7(9rU1?\hը{?2yo^\3jbp'6Y3#ew>dj!pk<\ȹ ׺[ Ԍ,} S[S٘[0Ϸu6F>w֏ A7;aU/w3z6|Rq(,^j% m4ٖ"r>v>kP`m, tٍwu&$e+8X\wpֱ` dðHBd(7d2q?l)Q:i0:GK!"=}vj77u(v,L{b$t>2NY؅ hӤ7=OѺSJNJ]uAe Z&U - ):[5g!D|]c)G"Vh ^J fhonm"RE=۵y1aR\o+6JRj1\FW'tiKlQZ ɟ{C[ j9lL拥&eqht? "^8q4J v:}M Pdn`"V*hîBgpn4a8VG@7UZXgԾP9’Rh֓h%8C!^jg{sY$nQSs>R~:TML|yҲ9DD> oώ2ҳmn#fWEpM Cx{ji"<Z\inX^U`yD=ښ?jDUq+aJrԩ\dZ~Tc4ni*冓)t%[28`fO;q"T|ߍ#zTSGBDaIg;RV1"pe(XY3HV`Kdh.V<+P#då>BVqsv :SS_ anֻs\tZȂ1gPG=L֕ZYuJhrU!_ݤwCF*C{YeSJ30İ!/XT -y]F[U21CVgUnDul@& Qdjn=ڲ`B(UP~0Kń55" ݭ|Y1hm,QtPf:dN-Y *}iȐ`8]S.){Y[숑v,?lU C(3h^U:O DbTGv ?U; -p=}ڥJC+F0vǕЈNzP?&DfTf9@Exarrj8WTBt{U/`&/HSP7?RL>#>nP`u“3=/_ ̈`aChtjcOPFU6-cRhY;s}|9"v_Ӈ&iL9kpt;059 <}V8^q?t_isF\;KS,)@ 8aa`2-F6᪍hov_Fy-O?T`97u1Іt!F"P<nV#s$ @!Rn4 ίy  ?d1􂬂%Ò[ lٍǵ.L282 Io 9}+_ ٍ3yHWa~P?OէAFWm>qf/ spK ?C_]<[p=j0_Z'w>mZ2=Qg NqcD^j%@}!А+`oK 65;w@py/fY>4mZf.fdt dEI7geE y^YV+hUXNCNM1/\2B 7\5P&f[~A[Xhvkh+ 2gKRvZ53ԌfusjGmݨ ^JQx@9 nelKZ(\wܗF4G& JD(ҘfN}tda Ka󘴝hi)j3сA%(`B\񸲋X8wP5=vX;aIsiokSM y PsLt'ҿk:zm{ Pf̤1}пU'_A̠(N0 J#łmImsB#X{s)k#Ԫ {o1:Q[/*2~ůvfގ޲[Pg%E^N71^詤G$SΔӅ^}$>¶ HB/ݍ?yZt&G0 -XV$Sţ+{McavEtnk4k2`LFϨױMVۧz6WyPOLpXD4֯b}ā@nf mu4 !MpؤO`4_RY8g;uN8?ۑq :z_/ꢋ YqxwlCG{M Q15[{,`Voc ry%#T*i!)称YTSmJeG` ;6hqz~ r*ÓB @=kSm'6zw32#m_(f{O "aš;d~|r݇SKTIfNTd5+jGpQ{]e p _q>7yY[wkegSjտ_`a~uPlwvz7Ma4y4M}`S%VGWjp`i4P=|PKL1hՇl#nuvola/64x64/apps/laptop_pcmcia.pngUT lA?PQux ux{ka VjH2ekt g]⢆t<'@@"ML9.vdnm|޲N*juېlM{t$VГma(d*mt\ONf~f+/gs322iKOӄ0zUj>m௏M#;KGY Dju"ьNq/;(6 V۷o֧\ֵ|x5Õ~U@Gqߧ5ޠg%}LJ0il[wOZWnWWWx:0@{ϭIR'jkþa+K?ߓD#n0Kw\tlЭP9_rҕqk!(Ty%ӚI*ʭO>M!{BDe@؅I70`VDu}̷͚q^m6pSf,0}wNJ(`q㾗GKgT"^կJ줦^޻}9yլc}Ok0%7rc/nֻ~l};gŰZsJ{g+?8K$'L;Hh @` JB[-pϼt$=УC~^:"fG7JLҺݯ]QOCX :yl~#l416zjqō^6G0{bx٥xZuvBPrUt= &`!F&_%s{HIMU pA=X[9 958(;x,RE\ӻrB{3Gߥ]K B&v{?_~6QS=Njy6$4%S8Yx&GM{\mg |w^uVm@̭ |,I͘wbm$OrŸUt{k r)0[dj,SVjW)W>D1A (`>&jkjjܞ ^KB`Zp굴y.>(bμٖJ Ͱ n^\)fAW6rs]]R^c?:Epd4ԓŊh Z9={QL`ײCkk[{L-4یp#O\fhcW1an>ƪhA] AxE\R`ۀnC@pĠ}9%βan }?&x_PyNS_uH$c!½32lMr;5:<rr255Ԍ8NYz `S#CX}wħVK8~rz (ͳ}ܞ>w~S=fE>ѕT3p%N٤׎3%Q[]^m. # ]Op>L7 9%zA}Ie(H\ ŮB'įa!59_n笐d:f~Pž4a`v)s}޷T!Ay ͊;AN^,ȲīM,[%߁9o_QISbb&N}ƦJ2bR|݁H'Ӕ̥C/U)U^w e(d0RrKlV)WMK;;CQˈ5Ϲބj_CSc>uqπBDs@AC ysV"MR'h 䢊7u0X6'w;  a~XA.^<-X)ݘ+b`G}k$dm95YtGhj>RU I%;;}nBhJG,]\ vr.d/orNMcfu;U?-v[*?\H0 y*965R.=S-(5#dJ@Vf}Sdmps{,M;T@ p_Rѱ^4~_T)?Sg%g(ErAeVCrEEc{NppN) #.TBoCX/fs &Ph2cPrW$~w%FRJ6V(TDp?X;آ rg(Îckuva 9TVY?nk*;Swy19\Y$*YCL7^$Ӿzyqעќ +?3%ggDtA; -6A@mذ:gэyOI>qk\qb_Y{3gT F5:hϥ*s& k&A9*$$EF61!@)",?m.F^'w/l9 xW:_h3;>> 08?~ Re"#7Elpf & g;مo<jKZ{Gկ?WXA;tM"]#2 w)í-lL퇍hZ>!15~f/lFqROEWu1y$uHOyyXX凧?x=ᾋaB: ऌ:m9mGM? V-w !`F*rIVѽ -L~9{ިZv#Ĥ}6q頙A?.Xv<8zuCy %#;Y6zƴ@oids~geGhnes3W|yt]YF&'NDJk>^}l}O%XEQ^RX $pMD_}/P֠qS2SnDpewܻ]Uy."xȈͷ>%;aYd/M Te@PROQ_ڍFXn4䕕PV.{41]sLU9X!3ECVAP".~R|%=D ͇(i [FE1-;ڰ* t{1iWB&Uԏbm "S`)$󦉺R90Y\pčk(X 7p#ѣ#0( WT3 {.}( nm4k\[ݬăOKegݐL&K -q+8K66xio>3Oӿ &c^1԰p&Sn 7]rj6DS+jIE(@d e1}ΙZ |.ft˥≯!Z7% ~v1%@=>/[ko/1dXY, @=SVT:ܠGqB+{OZ:9߸J Ͽ̩?;,(ǾLZ&A tyԖ,%G1z0 v2k/~F{=mxs$2v\\MKJL'eV S \Avgvnnn޴ T(n\x`Lo+8om}ʳ*Xw,r1-Iqg t7(X9$N÷S(!~&xE/˗~uu5ҙ wWV01aj>T"?mr,!ƷKVAa1m%eoPiS%Oed4?6%E5Lu0#0h E;!Ytb阰*@ޯ:!X{5əaݽ?,`mB`ݸ'+PKL1Ԩtnuvola/64x64/apps/licq.pngUT lAy~| WWy Y!eWw!?xzHeDŽ:XD."G suݦSVxO&-<4a]ȹth}!zK] Af8Jƾq4-f#x(ՉP➩ˍ[6`?fN6ddWFDBbzn@?yY}.2.dc Mvuʗʳp^k3S1eiQi+ KXM1ڀ:eɦYTN(F/៱|3]XX K%1{Xb`e( i.taPk/9 $RԪb<ʂtc8FIGg٦0?+mD993t3U#{K+î@(D~c#vUhǑzUh)Xz 2(5=vLO,hGF<=Q42_<:J#frEF n!T lwfx˷d]j6=GlAl60 9mH[ zQc'N *6#Ғ!yB+B_((hw  cW(] 3On?y Iq7>1&rr~\s0鏁[F^|}4O"ji]i_%%=5 d?NHz{LP]2eր4u^r*W\#s2tE@^E _tڙT P.a]:\g>}~Ib,fIoᙡ "Ƌ$0΅hj,ӹ ؍ړkaTߩjʩnC83CL.G2r?`.nqhZ6Q𶸳Ji~0BQRaWpZQcn(Ԩ!EԀJ2y&F(cq b=<-K wDpgg;-]/6YOgG~]} | p%{:> +\,^nl5һs6[[9{z+[[;ab»mڐ֔$RiQH1vR[ҢAٌu0cs0w z3?>7_*c "CxҪ*[}Z"ݯщ~v!΃-`k{m ;"ǔˡG鏈.OclJHI?1|b -* %(7qG.tvYF'Hi|(DCXƻ3'e `q1>Ƒ=~FX@`T`h8j$DI yw2*vP7=69ԫN+kz@Q'tV6H]6&g叄-Ӹ٘ `0vƟ&gSbl5[C8 b7aƶ_lRh|R(8V~N9<~-8FI{XmG3я-YKhhz;cRzٷka 65 P*DTt*ݳ50\(F,A [% L!(G%R&Qъ@\\ɩQFSd+u1aݡKu\Y_^AݶJf ݰSޢIXgSr|9p3{/갽LS{_g\B ft 5%z 7)nAd 2MSdv/_rf˵邚T 5!.AigbBBt.8+ȩJCb2) ӤPǰG]5SBsR$㱦6Q]ECzR/.nbN#8,n'ݍ] 4I44L/A`s%La9 М.~nKj D)ˊ|m-#D}30#31̶y yoB/7$YEMd{UZn.9' hB`z@Ss'yi3zTW#jR(ڦ#z^T/*$tOԟʟ=exK`%n-?ċOZW10R2TwL j^ N n)P\$56'L5{<ˆ tKjԔ|t0C\u|ѥ='2ǝ% U^S{u85ʊB[٭YmGycpGv!֊ =qS\4s>?_WI .W{zĥ%rN-8%XΐFlh!5 @0!!S̚ ]-W9F<3KrUEȨ}Zy3q[d4zB0E`X]z\B$YǕf#3\3!<_h2 ùʥW%]4Bŀ2L/7(+xA}{DN0ff)8Ґ;%vcd7Q `i;"e:e:,!۹bNsHZW Tx+rbIaƀ_xڟKpn|V`ܚYKF-J8=f <>88 ݕ!Z}J,K]47:&_V%#3hVUPb{$U ^#zYۧd=OQm#6bJ"VT(.d25<.uv'mHxzHQ CٲHQk๊D!y#0$QNX11g~qS2eP߶I ~F$?{ͬz{WsXh.uhS̞q~]JF.2inɻ#@|Fj-n2Ͼ 5սLBD#Qex)F+wT'HESGpg./n&%U?iV/5F ywĀ~]oNۄ9lKp(E587RR⿊]'(ަFGR$=Ub2 [gtV)2/"XΏf*ё<8Uմ_˿E-I%s0# ulSϰL 0L0JRlrgF+R:/v޿|?߶P_O-N t@65!ic4 pumS+j1aZcv|\«^hC9KҦH<8P Xс2]g!b(8vZr"8ڗe'{/)O_}Ћ `!Oh5.ď#NuGLt8HU9ťF8uꅬ2%^މrǷ-;.!^0d-YMt cUo' N"MrݦΕ>Rԫap'$:S]|x gp:aċ9H&}{ 3ڄ} pP<3yzJfV^V͜U:}ٟ~1ƨ7^MF |<}_q(D ]Z;߆ާ]U3zYr_W`Ym՗=xr5isَVzxZEv|O}#٢m_o:ao\8g.g{jH%?V#piskdWxo z~IJR.['S*˖u]`gGgZuط؞ޮ㱻)l}Al%l B@`wekbмuؕ:F)bxpgik 0g_OhE#R71,rɅeh`0Sַi9}vϦ*FHx<[0e`Ftuʨ~ȉ$ T?];ls tM0؁)mr`w#WzepV݁'w^*2ϭ>p1z;U|EmwDU6&V7hƧ3nU~eˎHtUPϣaKȣY>Ucz:O  @h}܆$vLk&snG[ƶTBc&#^Ye|]@X77PKL1 5nuvola/64x64/apps/locale.pngUT lA@PQux WyX۝,$@&$ `A&(PDD`UB  e3EARUlP" Xk6H2c}w}}{y BCv   CfG=>{|C N=yf"Lji~ ĥzRROx8%[QLH gPmS+B[1(&V-^Q0'a@" )@@=(Z3sf t)~4̴9`ƴiT/-.aTJ E]QNbYQSJU!g {5b,wr3͛$}a~,9UlE1XaȵTҤB՗Yɩx9Gdj&YKBtTnĖ""XL }ԃѵj t=z)` I<]1͇|135}] QCgU`s*e6a7׮q",*E _4mR^g:WھǨ3)`hKv&ۈ{]:ϹYUA('KPk/(7t0|厍ƅlQn<OY>X`b ך'rV׸wv]>$@3$veLy9 W&;ˊx@Hb&% pEB5vNS օ2B )omILdoO?z Z1\s 69:qa͸W헩'[2uAF$.8ܖ8KG>VXbz1C\8 ɸ Qs?@_Yv'uNTN`5dY ű7ЁŞA;UgMd5Oȇ^2pi ׻'d\"FgE$A>4kw-9E_>8KX:'V/4_κʺ*-Ѝz tzKή=%k1|`|HK^a}^ڪ׉*LIzǚ^,h)ХU«<|Kܳ&7"/5y?>eb#r 3r`qmVvtUZ j01uB3b;!|G_#JPBnw n%CvI#~c Om*' Z. "xI7(YC`0P hZ40Q(+gMwWKDoDcN)'1RvweĻ_D&pnY e)ȜZzoLX\T ,X$,Snu7RX0n~q ǝ5XCZϺ|E@}s\Q 5~$s?=6a=w\]*p'X~;IGְ%QgsTj=`? :jhO.̌Mm å&fhcdiNZ̎;W7 8|Q?UeQ6k%o2fXyAPfmjm>2n/ՠڰwoJ([ڶT;Y^@>~ƻ>\j!jju*TV@"!dPi^b|%mCqY{j}ʿg?Q0/ux8"ZgUի2"N*kL<~k GMgy"FuMe? %%Fl5ch櫬I!ov%վs3>Qy׃L`N=RGwax 6ۛ#Mg})m?kV>x/Y-5a^LtUQ+i(Zqzawӆ_t?j9ag*؁wuh~ٙN of׷<\>|)T7vSl&>}!vgqfHTnm[-UoA0dK4"~x|xf谿]P㳨'g_ bPQgH_]+dRZ6\1|E^}UcgJ fi2h*őqk[G%d23Ð=JTHpu8Ot蛱|ۛz`9ee-oV#>/[4XQn JjkQPx2ht֦(qQ^Bcx„@ޓ[)0ℰ |]\(]}4Y9Er&lM/s/:#x?)5XTY"`rlpz ^|+#ɢmq%X]W旋{f%Fj9{YאNk=[ުtm0o”ѭeܭICGQ1^B %BrvE6R-jemJ|es:7.;O]O[kFSY/#fršOs#2 mix9䰤G9; g1Gi?n$hߕ /$_ZCr?=^bWZ;;=݀ f{m1gX?m5 3ՀZy!6it;T jdL94(YqKJLmصyCOE+<͊fQZ.aM OXL\\u*}?n[w?aRW UQ^䔖$FUKl%=+sU!^~ÝjFfּŜnsY lJ·WT%fEN3M+_z!$K+:M7(oM64tI0[(/ ~nqݴ 㘀.1p12ԧUs {EKZ> ]Q[A7bzBk|.m\SHCU^F~TqFK95,=BrR)/NGh$kk]SIt3i'NGqO9ʑ疠IjHmYFKK:Dִ3|(4W^J.XX"( ~x]ɱ] #'B0sث2#Gr/fu[] ^nԋjV9"M0{ HkI9a;=B8=, { Cy,|ldd".vr4~fj窛tK34/g {^֊Ef}0R- hA'hO2`v:[yG ]_o/gh"_d$e;T/-J7gƖ}oFC~ee?PKt91/nuvola/64x64/apps/looknfeel.pngUT gUA@PQux {<l7[9lVQېTB*с9WP=?9o3-"T XONvτ'I%N$9ioz}u}_u}>+7o&[|U;㿥Q:ڧбLvLsS;b<~,`F%DD J9:ܕ)b h@FZVOZ=|qz&(>.je'Nl61y;ކ9L(J0_LjM03&_n})c)30~Lv# _T8/j_/H压 \Y"g12*Rѱ"K vfJ*.g%wي?*KTuہΤ Q+u}X0zzS=ĀXPYx+f>hw,T,2z;/5Lh0pݵ8Ft@ !ֽ|*$(]fJd8s̻H˿%"PSnckB[!W1-nz\ߠ$")tgo%bmQ.bMk K<*O@q@L(`n?;ĬEiO8$c0q}1qW~?B=owB'$?ҙ.NhGH77#Iob .%+!5ʆNYJ@_(ƌM(NL O-ĵS= Qu^$FTOf%#x-3%5B֛,ΫI!lTt zqU6pKK QJkcsV6ZgApқ:g!>ֹZDED8Eb M:|W#-\]̗BPZ(PL57<^bU} (B| '§oGst< u/7:>w&8^=@ XP/z@|&4Uw{;1R& Go)(ֈ5뽢vD %­Eś[fo6wwd=mQp˄]YV .=#ٌ E1.߀K!y`Y`>M.. Tv533!\v\ږuhKvosZnbt=JԶ!n-4L>B'sľ鎒8!ziлtdzO`Zg z\k=-(?1֪}O(/]FNhD/R@{&ay9t`}q&u" P^$.B=16MJDc%brivq2n SFT*HtƘ#0A'p%6[up ).OAfIO+.țdž|y[ 084Kse%We};a>m4(+Ms%(-OV8TUH)vCZqP@59XgGH#EXQbGӜZBpwQ,,8χ\lLPvX\=Q0Sxo.%#˺zNONAI~ w5؎ \`}9ܰ{, \}Y\?͹YrXy0y{Bhf~BYSQ ݏ Dgƺք>=HfNjˊ"{;RY/`$9&D;. M2b|OM-xwRl˕KuE UsH2'8Ǹγu.#_s@WqSbߗ/dÙo2Hs IC=y乳yܼF;J&eH|gf;^8~VѰ]r<`YGaޥ98^A6KitJX,-_HI1dETm`imEq8_a "^JA핚5)Dw/IwfIV5Q-cnr'2IZ!gJguAWrqvs#"*^.ϸ+C:7%°bGe p{$=a-I%X|mXaͭWy)-W }4ה32w<"෭ĩJQ].h*5 D(0Vu*Ғ\9l)⍓|yRtIU-.:>œ|R!|yr72+$PsS#Ϊf&r,-MF%ʿMO`+_ T]$o\١hŖz]Y̤R>BwO;/$NTp&Q-?u$J67jtp0Htw $I>g3^f-h؄)|g%YL'=>_M`r@43[˛?b^ĀD٫F1:"|(x=DQs_l`\,rxqx;X _̵;VNK.S}rRiR/~r#POVGd:gTq\U3cv*,Hqnsk[z?K a o!rZzĕܐCݍSʩ @ #KXaNuv9o@+դC$,oPYrǷ$vEqLm/ԭ+< _*mN [J h)-{kt;m[)Y4't -%/}=>b0p adxЏ:*tnHO/h%Etbqq ŖN_7!s|7q3|"ǿhh tf$R(kU_{@R2:Y/K^B9[XB/kO$!Xd`r%1@ tV<>b-yy`FǪ;wʅwlEbǢ:Snc!Pwxc̒0y [!n{lL:vu6t$*vF)&ޠ71b>"F$=nH׬'آoebdrl,,ݕ+~/>m~~nu-$j: !7no ɢI6:?rˀ7`\.tTB"lb ) {"?Tm |^6o kCZ&reDBDk%1fb! \m)v\*Sf4%ON4)]gƨNG@4 fꈞcΝk!:_ ^،w+dͯ.)Vl3|8Npi6[iFIbV!ՔƖ\_Bv1^*e% ੎Xϼ{k&$ чS }4κu+1ackE $7o9f@Pu|= lQW? ohl_ -Quc</zIBM 3a |!|&>wCBvPMgm%؄| KW кtʙ58LdX9Go0ff~EE^,(a/ݿV鋔S懂:[؂c1(N%>^[ Tg Hu*XɊbYѯs^)zm*?l܏7yR/^X18&pL;|\A0km0͘HKOi+,X:4 gZ[??5-9M#+,natkrr-,$!P6x5":CǨ,?q,0W>Gk>Tty[OLз4"0)0S;NLm9!R5VCuόfNPѭձIRלp֓L|n@aݜinVY^nLIDaqcRO|m\*ݳC2 zv`TO\# wP#N{4#+l g(_hh7mm ?q ![j|c~@q~4ӧhI%Duwv_+׽-DvL>tnReMI++L `Q3 swuKk?zTuS~N ?ǹV4b]C<=Q \TkݠCNznI~- ,\ ݪ,1)`lqaz r{{.GIU{ ?٦DpCALBu\a}qyrO,fMU,Mg6uOC%wh .jF= ËePly9留co'kϼSG&v{qےzpjFzwt4HGrF+Đ.U:xiwKW"L!E$c:.K =o)iLxso&*Ә1_;u=v3=drM4,|2\n8B6^ ^^|# 3~\vZI!UVJ/~;6g7,w$LSo~ꕄ%U0\ʑ bUc:]wjѲ^rRL-ٟfRMT)躌Kq*uЯng᧋ʜBdyGGP,,wQaeV8'MWpr[h4O1WR$,\U䴢?9v×re:JjeaBwfn8~$ïhD7kE߹dk 3k!9 \YLN!]5g5fN]SO= rm~s/WZ hGԟ˫q6`{*U )g$$G(EWHuDe!?|UNqr! K~ $)'LjTjgݘUN`jH}Ϯg0)oSr ܷd{X͊\W7"xN^ÞEQmՠnQ=IWD=[ЗwHtN*h18HӘ>fۀo,vRa!E \ İ;Ύ` /Y[L^$bWHH%|"ޒ^%3 P33素XO(dZgXJy迚/Q=- Z6ԫr(.}GB-h ѐf{y]?qёzd{dug0;rAxQB>|Mc|p0 neF- 8?XIg[Vjmzpw9ysh,yD&U}2'l@}HuԒl&3/aWxZ+eK3v~Μtv'uYt S#NSh~yD_ 0y@'Qų)d~ECĄR]miyG8:{JO}zk"~ J6uJzUrgk>6 zeӔ `pNLa~Vz0DS?ʯ|MDp6ٹZ*!oi[$}ogHĤՔ%]˷D ]1^ D-Go7U8F!2{9M'<2t49ljM#,O; ]O|:DېH Ƣhj>^bX) "ܲ/S%QLM[0k?49ѩJt~t l 5l)4B{~mkBzaY:\[#hab198>,~UC,wo^a-Rn,s6v9@{ x\Gbji:l9kI)nh' ?f\2($;6 !a_Ť kq\ut:Gx8QO2 } ]y}C&W6vR炕>^;xyXGՋ;o8ɋs {G9z) # /Dϑspy!0I\ <4QcQ% }E6P>XV!(N6ڧopn6K*nۂDQ+d}$SPJΟgĉ-RfU4y"7"}ms3@Q]IYf6v̐L]e\nZ1oz&2"n7PC狆Nq44awl]C= SZ$3ח:KS\6"K &80U!?K|1a!Cd+yk액>=`Z`aO#٩# {v$7 8B.#e{BHTT鬳V ZZL.;FdR 9&0_L:\ ~UZ-Cueט.kw4:'*٩yW^/Um-?l9#׻@]`Uޮp҅[vJoW(VwlcyG7<Դ\|̼ʹs<|:=G">ݚ%sV?431mG*e`yW߃s."m5y, b.dFO#|X*O*,۔ FiOqWS'߃]b! %Be@lA7zQ䛁׀:_Ǡ9ӯZTM=wYQzTP Guv%\!߷q%ל_RrwpnoWP45i[H/| U'Y~3 Uưb4ral6APkƛp<șRhUn ?=3| |i4'xU xvÛmO2zU~]r<} Hp@i={ jf:+$7.]qhfnPēˡv'u#t|6c" $3Yo*ki-Xa4AtZ'G.B>_+0r&S0^tc{G 39zн-depZ! u>PΌH,E(<_c}#tRK_pfj_M2EI}]y+CtP$e"f+MNK{^_ڎ9UH3r?)8 uW,oj^1dfNhe*{0"1jXHGgd~fX&IkѶJR=z70)-kTTUʇ](|ong"YHs%Y%DJAo~#J*.vLJGfڨ,#F=;ΤIf~c:4|Tt07fǸQGu=Yk&V@SkX 6[%WPz8|3wZm7#%qf]R\CS:Oxd;`+D_(T }1o6MbLlܗ)Tԯ;t=^oosMjc ,LW8+Z:OY:?M}4 ۔f-%SD$wi5x;Bx#|\5 ?~y"(};OEtMu&#jbn(wtOcQ_WJj7ve"S{J-_kf^ & Y|͒tN*~hץ"xoi 0}OVxuPw/Y36\eq'O-Y}1>x7B9#A:*Nބɋ׊oX I+בc45 Mk'bkķnX$&>Zbz / A])wNG2ᗠml4 h7ȍ:|H|QyQ yݾ}+Exc!mk'[xI=k/pv "bs¿\\ºN*GJP4*P:eʪ&|x5>V"JH`QOwiğ[2nGX/zFviһ gX\5@Z۰ACpkM 51p)%Zn&IpƧ-_"TЃj֙iGdį@+WYK3M%c>8IH͇TA-9Vn<sWdv؁͔^k{DYѨǒYS᫐=܋7W]V[h jUta[dAgN@ej3ݛbn ȅj<94a oAX_Q Z}zΝ}H~etjӟٳ-~sNۨgb73.FCюp՜?]0SU39a)~y<^rsT:"UY8PTcE;[?+,tg[_78sKɾjn*Gcw(^~,YWY݃%8xL],F`dҬ^vԧW1 7LđtK]>* !S2A٨.I4*=EIo;kb!]C.S]]IQ˂jpj)乖YPڣu[qx(,KZy=K\݇?At b\HVCMJ{xdYEqV) >5ړꟙӅ^!E +ez폀Sa;xE357ϓ)saKMi^ftհtZAv2"~42?>iQ1a\u(2'5A`☍Fr*aºL$*`"7A]Wn&,kmi!P|!/;a p΂:ao* ;q&Bs_rzsy;X= E5rp]|4ҝ y[5rY"ϲt~_R~`@Rfj!zEg1u@NwRľ߻p1*3-WBD iXvDcDS7| r.;>O_3/eA4or.I[Z7g9e,f4Y@uFOjrf`se-޳:\f,HNQzB\?Y<[<Rn?gdJPI~TJ]V]=`DF.`JB,FN8w3B\,xX+i/(!liЖhwMXۧeFCFƍe{`YXm~98ց:'gQ.yjԤj)f"`#fKOX P{ljc;p@K΢!T4K ay|wxc# ;`wjF˥W?kDޠ.Mo QBŢBɵ e:^?,=BO՘ ӯٞ:骬U_ .P< j12E*y5h j{j>S57#[>qxY[3$OH3ZݍO_aԈ9K6*+{`)xxc 3? "/m-?ORy~3̪b~$2Wß3lV'76C_aqy-غqHPKt91ݦ~c)nuvola/64x64/apps/mozilla-thunderbird.pngUT gUA>PQux %X{8[KE=SbUΡtrKɭ EZ6J/v~{y3yޯy?j}ۦ=M"W-]PjgTyjox(Ak`m~!A{cN9AM?+PE`&po: Xg82.Y Z*Y ܖQV[Z&+gR8l Fq:Rӌ*>Lܒ^e.z\m Πc zD>pi pXD`p3ytV"Xǜ!LS<`qBBe"`jIK>G~JƄ5k2X?Dǯ`QSD^N!mG2 Ⱦ7Gf=}@3r&^N+p8On*`_MS릦|;Q.=5ml,y- g6Yc 54mg0e ЩQU90C)=t&{PyggeeegPxOӀ)ROFY&; Wò9/JG[87/9gGaUVtRڌ4O}z:9nrq74 yڨ]:bzpɆ64NO oޜWUe j|A/9 *{k%%VARC"fv,h GUU+_yٌ:Vc+YnhW"-q6r B9N|GXJsIjk$^%ԇ/@ޯaesOV@kP̊7<)N4F[ś9bSv,;k=+)tUtrRݟa)1D^{Ѕ: ;,jBƕcif^ynR"r::2p<.fd#ABҗ(W״8mm$u[?IoK1$)eZka)j!טAJ8AC6vÔ߽lxs2w15wm̿HJ*q*sJ7Vz˭ȞE|nrV}ecpPnD {Ʋ;xN"[6}A-2Ы˖7滺y.]au]8פΫ%#'p{"Z!aN1 V~뙺 Apt;olw)G◑l&뇫hFbQ$-hsStD:cPqt6$ݱ r/LI$e2i ?u0_BW YW\j4H̯|Ǯ,:d0 Ӕ/(YOx־ L y27T4i8pGQ90eAO8'ik+코lIů^}JS(\‡a̬V<2OE7`,Ns⁛"8@O}Ϛa'tS0"1鶎: 29{thG "v@kkeǁl"񥯎\cDܲK Z܀.ϡBk`fg!0hFg0%ckp`+ZoglԄ70}-878fr罹YE%Mk\EӀ[uD@v(fm?1[^rCH0+qm͹vF܃gdL %^sY\֫{*ADZnozvՎq-褱}G: 7jȦle3v2B}J;Ѝ6H쌎Pqݠx<= kItoE8ʕ,ĀY\ojOG:$6"X$*}\7wyAH)lɺ| %:,i/g2O'Ή}P2;.x=Ӹ|Ӑ`B!k+2 (wJtiנfݲ\h|ރ7j˰.ON2fSUz8kQ={sZ AD,OHqp m_be7!-O?Q_d鏼-2V6{yWPcBYy;fѤH2XUCE^Nӱ&%H|AT4YgY6_Բ՟$؁hNwНb

        t6>r\+x4Vj?&Jl)z=u݇nq48+Gf8hȝ:㽿C3KIaOOr*oQ}v4k_Wnj,foNuAYzM<'O^[ j[L Ϲ0Bqմ1Wwv nſ׺!yjiY%NZ8[A[ ]GPWxM 8%vUj@ OwUXBILkmbo$DQ(y1wE9ϻۤ>"Z#4mU:yl|G1—;] sJ QMkZ["~6;{uZ|(?;>0"E̜3xPXH.RT=HkiF\;U 8f4'bih, >>IQۏV*  T3<| q)[ "S i9<|n-d8}C~Z&J;{ |H`VĪn0WWgơ9 J]0.5 Yhė˗V!`ٔRF}:bZ2 c¬ C񫺹rwG$rX(ŻM^<6;qI'(S#mzLI<-HFɝSwL ,cƕK ʱۿE_m?BnS;ln!ȶڻѧ%A9=/7IJC?i[_>/^%A,(!ii0E?YMhWu 5C Ͱ6L߸o KgąPMj/4WraͨbBjq{g":b@yEiG*Qc zV^>^fAW|h蔲_̌X&:Q^lF/}SU:Y DT;s:tY[`իkr*8 E_]^Λ*8$Va,6st:=agJm9T4a2rtܐt0q-V_>j7ͷ@hCI&8V\، {]; [X&A~ˊ}#nS領Gz.rPb]CEj"T_y~J:Lq8Љ@g(١ZtpcM7t.dBl3#= nm@"3ŃZwj:;9u =t؍NmJ"LO5O|?~~ F\; j}f,@:[t;X z`4hn[rB9gG prHJpi@܍?Ԝ#AywPR_w=# JF_tE klJpeR! :I47װz5'ox8׾_ y;@\M{AC"JE5Uapц Z+Is^p!%L 7+K -Ay؃ כ)NuGW&_6"} \b5; @QσN%˗~+ pqviv?XHEwørnԜZj;D?fsą[0^&:65wq(dZwKu{ jxP Sn-jNM4E n(]T Dh7;67g[zش q``*}q3 4*5O,:ݴ)8 Iy幩BFK'/ mw"0vͥCY #Eo<(65}QÉKq5h]ΝK;B ƶ(r‰$MЗxÃn\JtL7 !qKIQێju@J|M2%0(:6w5 0%þ< 5f٪8 ƅ13/T!I 7&XUK!,D6/_řVT$x(.l`Bֱ/yɒjdɨ[ ''*UҩdTHf S q*LnNh;:{ַ3w!7X3]O'a%)b%zi2D0T[Nm}ဍ)QycVED:ތOr;ƿǻ=AW_ؘ_PX # 6-Zܣ S*^ zj? 1q|5`sW+I}OhUн JN$-fJFD9/3t2섾p]2",1?" TWy*%t)O"ԌiN7׆OD#Kʴso+y=i=k謾@%^;Je(STF?5>tvd{\ZaGTuڞ el\3t9YЯu=TBTa"%e#a4ʱJ2 b09AJf[vdH~TQ 0@羗1݌,?%Moנ !6{,o =1rΟ 31SdF)(b@# >?@hFRj}H-/,CQ4ꑃGXb)iʴHF*j;~GE{PbSKLUEvFۙ oi&RK57nfwh[ZESYdkjUg{.qğƑ=ھ q5kEy;}OXgf]׎9c!EY?E:lV8zɿ#B+3y646<;(&HW+- 7)uXVEC-"{~6-+JƷ"|c^wQs,||?%@ w`LbI߃hY+Ca0J/M/{Zk?G*k#sow-28*jF?'F[-ax=mL5ЖF'?.TBA=G7F], JӬNN騫<\5ˑNeӀsuJYkFb'*FS3 ;*j,m]g;Mvx(x|RUCȱ~6Hoʩ|B7сDLeq/`MS*'opJaZe?-Y> 5ja bl"#9̎ FMG t{Gmآze++2CYpӡyWGOYީ-cv^5aˡk?懴CI\(-,Z i!U֡i6oWPVz@#w~;{2bwxEo9L}$BF^IM|~!G񜝟L 8J2tHfXyVV\X:p!{/ Ѕx̭IJOj"zQWaV/T{nqh)-]7+ݓ^BshM 3gDEMnQb"&j $o^~&-*pSF6&_kyscuoFEep"Y~3/ВSU2@ ηx'Qޭ O5C="Lp!^kF "FP,@=s9A*'Uĝ+7)u`=iW7o+<0O eNtď}O"f,JUeza,'ty9ឤJţ5<7'tR9HD= 3ȦթMi(||vy:7Fil+xۀC y&"' >VKN 7JgXڒuq rL,)c[ !O nKdX۴*\=(myon8/iX$'yvݬOxz PC#&,2?$@cגcr-pDW\8>$('mD QT\0d쉊 %:`&-;NG1/+aeEm+m=0N@eKJR*koLKs}G~Su| /5cHĖ &2جMc2O`[AԚ1,iL^AI\TlOo$'gȡw\^#!]Wj|'ѳ( ơAN0imq+-?j>}!XS1PE Qfڌ@s&F`l":2278TUt7.(# *4/j]-zMw{l/Qt7Tr4yґf(_fOHLH z$}`?1xgrxS'Cl!xf|16q>7R88wEVGBz3 XMh(Xq=5jHq=@ze{K߈|Ԝ3:{)zW' \+y$3Z*QFU.$4tWx,C/m+W cdSFn {i=D|oXq7A'%a/nm?ME-XQ@0=n7Qӊ6*}Y_`Qԙ<[rI^a^Z5;g"K$~ p9%THi"fgΥ~P@6I|v#eOEh!}M!2Ʌ]Gq?Ѧ.aʼn1uY8 [d|?0_Z>T+ll}Y?h?gm4ESפArlREr0ik:4팣B]s}TB_cbYi6{-t;# x#!qؘ>s$-i !{=@MeR|i$N KpG cb}:8wI OL-kTAY=NG8sRVuSBHiR)5#ܒHx}.0#Em._m2c5x ,Ӥv 01 X5(PS9߃i 20 KeExCމ+$C΀$i1 G|eS{MǏE[V_(ﳖ+WL_> V V+r%O]gOܫFDe!ASΜh+74HdB~O~^aS.AqY,آ|:R;m0+}5R?:$ ??ߒ:\aRy<2ҩ*iz/'v$S~+H?L/kɅNZH!nz#9ɗwς2"T*j(qٮ|Y؄uW[EӃ? q vIDPC.8HAfٱ>υ*R|0}^6eR@Iε}U> R\{-{7h8˨khX47Λ wQȷ?SʓIYwۉoQ"5-[. zN\΅ʏz{nbB>w8vu;ҭ ;f sxMqFtÉbnWhJ ބᙈ,Q_[ xԫ'…|lI U'14)\}ӡD˻AB=Ւ_H]k'Սљ |Ap?:̦/xz(P.fF e&<R2koDJ O} 5R>9^Z۷{^ xU'{'xFhĜL]Ru '+>4׊ M:ǘ83h<U 5DmȊ]k+r`j8[X;J 6؞5gֶ*Xl) ήxĮ" ~8v^B d L5 ^B- 9 /^ ZE 9B{9'5Ot::va]pħ| o%b}!83*Bd&wa׎ Ңש^G &SziWs6h$֬70<+8W7^,fS4#{a3@$Q4scb0Ѹ@7W\ JӜӭ,iq;BSbj| eu6Lt?TFXux`5.cS/}V`Z ^-d F.Wʄ ۓ<1OS pa̚j Ȇ. DJDZ,6/jdO}uh2{9AzoX_‘fzM\bT5~j<[3 ǽql8ߒ ˰,[ɀeAvYFB雮ϩX`c!MoFXR0NW=&~Ģ$cvfg\mzY!=\ĀdSh;?j6P/Tx2NkT\F48F[xsƟ͐C'6n.$ޔd`|֫Gi-BZsȐx @̅U"Jh=b |F =.]l$w@9O:׊:O E6T|?&_ rD5 2UZh)Ͼ1{ ?Alq+nTUCdY:%rϸ{p@pӓ#x]o.ZU|MީGtE:74&^ϘzgS.o 9VBze:?—vfɊ,fXoEsݒΪj>~¤dzڇsF,B-3`[:XmDT U}MZH980y:xc8)p{G^>.Տ{Cvwt} Dў6?Y^>f?usN?-Q{d/!w"Nw}726 l֚iL IˇʍNzH_{d3m9;t i1 vg6._=M\2Цx'D{^eJc7'%6ɫbzU墱>rhoe ߠ7Ϛ8?>;&.y-N`Yφ C(m>So)*w JniX.tOt.Ϣ 56ڽ?F@;b{ǘIZ>PGd&{[QifV& ynHLs xǷ_Gt\ d᫦o .K%/]|iZص]ǂbݿSbeT#;4% _.Y<-D9Kи(cۻ kwӡѲ$ M{YU H W*z*H>hzaS dI_4e *mM.+"˗I 1Of{LC|W[XQ:~ j7^W V졥)Nn"!? i(M zsh3c7ŅEFi9YOcpƘGNG]IGyk25!]1R{d`Y6`o_Aҍ\᪍a`_SVKK_hV#D f9H1 W݆{"ivIMc|Ի. :>~dmә5[*Py f狴s+v梮=IX>F,&eWFS\f{t<_h[o*%}|L|8VĆmR˼2CS.R9ގ׽r~'n6/YE_ȓA0P9|޵W3"VDKYXnEs~F\2|L`VknKei{R3U.\ "(i}'n3Y%MG>CӘ+MJ{6SJ@"i,R8PKL1Z nuvola/64x64/apps/mplayer.pngUT lA?PQux EWyXY~@@5LM ]0+%Fʹ,׊F\xC332^-2Ar3S2>zxιιu9la0B53Fj;j&D"-7kլ m<p,y4%I̸#M[~֒Z#G̵m@`d!M$omڊu-T9Pʋ4{0$%&$*oݚ?-lPV Xy!ӣz(jhxx1.SYiScb4U@yUZȪz;a8Pp0֥%/?ߙ(;KY7ֆ5y25 nDm @?17ku.۷_12zQ*:dQ15!|w߳BsgaWx=zhd;9F6N]u#{PP9*yuoDB!pܷT?ar~M0{D&Ho`j?wb%@+lФplU"R>vu8+ )rjL+9\!B*|鸕{OAj1O̍zbs]7d!H%\Mwx@zqƇbKG^gg[Ыb5eCZqqׯCikfq>YP%+\\pLS+cj35% {cN.7+()"Μ^P:qlE]p! ye>{Q~1N}V>.1~La M VR `u'fgBԸqInNee̎Z^s+:'=t{ ȑXK|_ɇAu1<:;=OR%%*¡e3b.SGa֖O|ټ/&u iX L,eɐR{*\/ ̏"Ѥ1Xm1x&?Ht&C]!NPS`n.MXĎƍ6nja!O Zl8vg7+}+[_Y$^ b^;'tjeܼ)}*u;tػIݔ_;Mŷ)\vFc'nu\ҫQ>=k!EFXTU0Evc255ĄTyP}>}IJ"T}PwRƍFI]իF3ձ:5t6ϏCG1.l(k*~vXp7<ӡ P:YXH9r Y{w-BԐVe\d2K0U`KU',\!,zG5,ʎ%OQ6[s;hWxҫ-y6nG;Jw\ i'.[gv"} ߧܯ=Z?=w _HV|;n72+vU-{[ǹ5iɨ/SoD"o8qYe{ٳ-A0t_t5Tɐ/VvSAw_%oLjW跈Q=͋-^A5WY!T$d( PSI+@[3Bz4`B:̾ u>LֿNC674 ɽ[%>6i2(Eׅ5U󯴿;/MdL׮DZG|b1bVuFG_㞖&XiWfE'!Uwо ~)7{z[wC$E"D2б }7 iΜ*tOz694߿~tn2Bk6tL[ rDq^biDVܾ͎Vdcv}DZSVĬ3cԛBEpRIO7[*0j*}BggcPV`^{ v6ҶlYɶ@oDd~ǽA_RI4^Nh:]ؗ~O7%'#6~1!.VMqqõ 4WcG;22nT8xI,.]=q ~n:L@NnݬTFT(y[.m)pmh9[Qg  4BZ}+5Qa?Ӱ·FɍwȌ48ָTZ]䏁Ka,/Ŋ3ɷ6E TT ’dƊ&-0!+[EZԙ#TK"bydd^6uFMՄ%ƜP* D^7H66dp5XҖ*mk ýrŵWs4j{=Ia?Rpk Od5?;kuUФ`ٳeKWxűIɫ1L19i94Âw 5TɒG;LjD4~~)X1涰;q/Ms"#‚!}d}7}0RaLZ@[tA߃BOl=hhhn! N<hx t'K3ZfC\ii]PQux %Y 8TȵBdQQʦ[% 9v,%\I,]AQ0J#k|gy߯k~ MbHX;G^x,8{_8`},Y@ao9^G/],<ܽTl/x9xy^l2 B~ʵZJ $,GZ^ҁm4Y˻Ө4~zRljzx""֑*h2R%ZNz^ ETjãL++դ1B4i };__Hu)֖8H;\}lu[p͋;c{yaBq3Mq |?Pw(y˷O–$Mwȋx?4VLTsg %As>oު~}ke8^⮚=,|g?lHt~ߊ @^PpmW )$tTVVU}zx7MX]NT _gMqqeaS{ 7URk QO[4v,w"LD0L|sE+HHBB-i9'T_D1άUUei"W!_O.N>{.u5ZV/Mkw3ۢ$%w:{lrmp,0{k> |9Vw&ד{)icHUߔx&N7)!׶p8}puov&WL,buHhaکHU="R"O, y{^C5 MwR}vHk Y' $r%^|U|2R&]˹('WCTfd `IWxe6a^^y+p`7oӧ+hIo±O[wUM_)m2VDe+H%vRBevW 3ch hFߺBL&3bZ#ZNѤ$mcn_#0IIOKB>yB;RɕR)u;cv>3xwLX)];0S շSn2ݖ87lcl 2i-*̔>z5l1$ͭ!;s}6t 6$jg[<١YH~ ^=L 4ȸ> _jEs#|[Zn1ga7ȽQqaڃ?zz@+|nI؉ Nɨ^3V뜭0*:YQC6>9K̀=Ϭއ=m 7yo\*YdȌ_d(@Ffjobvmm$FpJk8F*Q*$d wfY߮;˔+???W1г 1&1R@- VBbXN{la+-}MHHfD_ذead~ƶz;Y?AfUjVjlBQpqfF^BTyHY3mo wƦ!8t 'duitLlH}਻q I0xO k}*ix/ի'G^tLZlBc(!sb<9mu򘃫` |A⢰܅,Htoo .5~pGN+&S&GW ߜր`”B;>z[Su[뉲O8bwVI%71_;* P>8óXw`(*G;d0L*# zף4O(#d?:(a ^SukQMN(Յ'g~΅} iˆ,FHǂu Yc;${֭COrBdDϗX nIk8(9]Beu! ohȍikltVb<u7U/1D@Soͨ|e\']tidQnHICew(G{((BoP/eCe[=Fu-ܻ+sr;Be{.. {YM쿻G:9vUQVQSs3|:-*TqS#;>vpW-Tof#AUE;`VnhU@U\+^1LץA'A7TEns𰌙% [uVp Tǐ}GR޽{llCBC7aE6/ʼ_yDrެ]iFH[ph\3̓'#D}PwO((cm1͜S! 7Pn[};x3G⨻n'vq +vvΟ>]t8ώA;bm/E֣f>4(67ftX p$L[vYpZ-!X.A!Dm+R68&a,En΀}'Jz`ND19R^3J/Z*R$ g|caܘnjVkIM+VSikBlũ}2xKXCnObuLСH@h]ffgM@WY!ۊ nsm0ŻNn¼ޝcA h19 )E3N'~h(:ɭpyC YgITfk`jH E2sjk2^FKK*$} ޾qNm]F8hjђO*%>1Z~_3bP{_,Svy̭SٟLc%m-8c,=djLJZ쎜ðP6nS?`H%fMѓ)(kDAd@)ɩZ˱R=l 'oxk#NerxEleI:=BV丏{:}MmL-`Ǥ/;IyZN)c#p\zNn,&#etѐB }+ O@g^̕</+27G}ǿk2$}9(_dJ2uxiys-]Si^h%.iUQm [f 1H=W`l^f 1W Yc+]qyqʴh(;=i{QC>9eK9{Toߦv|\')/#Y[*#QsiIu 5(7 ޴ʞ'm)c)6.V$G)LDzگa|F::0 f]nL(xw ݐîb 0-9jeͺR6 y#!d9F]sa-+ idy2%Z4 R^) ORRs$jՅfvuWsLn)h~L->@?F;]mԉ+ лS wO~VjxG[SSe36m֐KJ`iA= S겁-NЃWˇI(#?!NBTXҞ^ڟVJez>Z-M#5V7W55A}G`I:RT"22>2s(T6...{6x :#$_f0S<mXdw]Y@)̓p9s]go 1y$+붭 %V>Ṏ|Z[.jQ~ ,# ʺrF0L*E9g 5ZRpntgbh&jXADn 1)"$ݿQ*'穡[5սG[?^<,в}K*C@~݈Ċ0q5s7mQWa_l0Z=?C-RJ2fD40@c9IA! `ԩ,AY*!h[/Nin>RPCVGmB|@^43&pQ|I/HJ+=]bI1Ȇ,*YGmIAܮhjjM⠏^]A?r}bmlG4 EXΛ4b%Gr?ayM%`S$\t.^WX>OϩBӁv,(?U>suX3N+jaߗס ¼{.6vt0bY>IYdRo Q". ZH>SN$cO=TIx=^2WDgiֵH>@G;)yXAgFTs*(˂%h} W~\m孷TܩTc?vH "#j^3^X+>?eܒvu|aQTjկENrs\,,~׹%mԩS^)\U ̺ZtE|A<<-rjkk.yIFr%Yf E`*c!F\{W6`x9 YƌP䀲 &*xCm%o`"eCbzVӽ3`g6\+%0ƈO6Pb+: ܻ TpiZ\ƶm1]EO УjIR1 (!E!o1=@B Q̸[y+~?SO15-:WOhׂ{r;\ wMKep"i/g85Sxq;#n8@'#9~#NvШsW(|y9g'O*OXXecni-̨*ʆgDkJ=[Ge33ϑjU=LNGݒ'uZ|AV=ϯ04H@>oRO\{Gd[\cy*5Yb{1(s0Wޟx#jO#>."Ę[&TQ{P-GBi}G~hߧ>DX)׺y~SG@Gn!3|S%e$;h@_>T{$&*Q݌[K}=P"haN+tnc튎ƽ221fRuw \myf/!yj$+ .^f;G2KFf%9=N W| ]6ZyҢž(ID)zv9mӺ?O99޻R\JppHm;8r܉6s=|7ǼL8P9@ᵼS/Ϫ;_>-/.P 蛮+!_w=鮒428T8ϜK RY]@|yYYSg3=g!pY)1@6`E1r_9ki nɠUt7ѯw%[O~K¹e|4(.׺VL\~YN3;GɅXrC`@Jn?|`%ï:r&D^Y>?:$/s͏ڢgSsnUmQ~,^˖%NFNSh  <;= l~eɈ?PKt91k7,3 nuvola/64x64/apps/mycomputer.pngUT gUA=PQux -X{w}~x~^~^9KZJE ig'OJ{K χGb ,Jf w)GSN(!Axᡞ!-ف%H h HQ~W]y+ul86-4濛u ,o8l}'_`4xS}-`0bd6LF:ڎk_>5әb}nth0Y_LiFrYD4_,[8~<,柶~C!rӪv~viآ7g c0:Jb圌<̊b^񆻞ok_5'ٺK5S0W6I7չjikuw+qzP|pG拏/deE%kkMB~rj#/kG Dkj Sx%%$=<'Voƭ>@0Po F2nW(+PTF|8(=O[jBy.oF. 9x5U}]~E|noڥ7aQ +~+Q(IMfiVZWCnIn0 DɚB.X˥.wX,-Y5" *b{+DO|1j嵵uut@vӤ>ܵ։d5ǜ݊:qB}.f=} 3r(lYfG{MtvX?](7E\tUUYbFΜi\ F: I}w U8;D[ )J6*8S<ܵkDu5./B/("7hS U<#4<6qW_PP(Xh1‘-MC t~L/N{0@`ד{q5xC7+* Ʌ =pHl}{{q,fDrƒ20Od2Fl$qGQ53>BIAjK~b@IfgW4Ƽ&%xAzA]Dk5 ìiՊ);֊4h.*f{;BxX^_[z]H#Yf]${eef!r9Ce;|Fgx+GYYZ&SHvrxmc`~ oC,|["5yˁ>ln`Mٙ7x%;G65@-Xi5 d?|3!Р=N9#1ɃpQb}F5#;S#x F5h'=R1Vew"+ L5xzD9+Qv"yJI9?nAg$ژe\{ߤtpJg kP:Zx|2_nęcUo$oRzϵ.qn|$)dɔˆ}IEʦ NMf)cۦi7Fރ,-((6devK` *&kBV[j(C欩Z aaf n 8 2/uE z{);uf u޽UA36ҨJ:E PYy[B% /VĤSR74۩u6NV||R 1:_":O(ǨKÛ.wv1IIN"Q 5Q k<ܑa\oL ުgc:l 3,\?VHY@-N9!GLL)pR)449%oktKt"8vYgqۀZO>FjZ]m A܊"V 8r>z"W 4#fabvyê9zG}\DಌẈTt%-r _l_HB6gg78 6E>!r=6[ReĀ{>4F=;ُ ڽ'fyzc ײ53\w4&쨛}^Qi>DE#zy8JjF>` ܫ?LƸ{LwZ@1|6]DlIݼ+G{ޜR;ttG=Z2&uɊ uWRރ]w%ٺ_z;v5򪯐}H ro$ tQiqc@mM(ĕ^Ive@aހ1,mBPXX0B [6'XVQ g D:} hkocfTcf;E( iƌm\"՝T kofx ^@sXGŴ/sc.h R aCPрu;ú4kkC*+c, 70Օ9dãQ(O}%XT{:Tɂ(2EW IbGwŃEtaa忴 A Cba`p'!D1su;GHTu<*"!Y[;1}gK[ZkncRg-Q#oі LdFSH6&:EvI;bhLLXYtu;J?qxPi;ƱN@=FiQFh3PN!f;޲&aQ#6] H\1:jr.oq20HU$MZ$3|GHtn_#@1T\nWB*DXf6PB- G~L헝_KzGLuOe~U8钙u _F9k,[8S',g",Zl6"C#}}TQ[7kvxûl 0)#gu# whbK0z7k'?;6% Wނyy(tn~-K|@Ƴu5NH3Wbx*u~e\ktCC&RI|+Ro5DU"ݝ$jJoP ^UzGN/%__4 RP\wA㤢:M|mW :z78j $8^ӿq/0mtb@htOZ7Dk]uT(T53-D06>GI5<8(;w=ϟk[cNVV$g u.\/ݙAP7nR'P&^+b`̈Pr3v'AJ'F77 ߩ࢖iujj8se6/H3xop0~.sK7#_bhGg<)ǑWQ\gUTIB;cȣ+DZRƛ y|1;iْj[yk[YrQVVwPNbGvX0&iR*f( 圡r&+u~{^n C[\'Kb"X!͒ٴL/_TGu7Ar<χxocK%ĒNo>x1Pb)$6i @ |c&2)a"a;DseM١)dHk7&x  +ȲR?$ 8ݣa{*6aFOϩ _W(*n2bm{M*5,$N۬%)S'#4 UpPBc)"?+amݖ&0d~hy7و̱eC80D',SSP]8*?wO(}1ET%S{^ݜ|_CZ ThnsҕhoZ_&w~;wK9xisAE5,̈́|ÿ&iY|.q^NikWvJn]rjҶUZ멦3#.buPÍlcfj!aլSbvg-}::9z)M*q)g&$&tq6=B;S ot׀+l3Kd:MS b&P f.W# gRJ"F\*Î\~sjktu<$PQ$0 D?os#w³1D Ky/d %W8tUi)UY$z-vNJJPQux  8TǿgvfD µZf!mS[T&ܲB$;(rvn,%J01%O|9}|>~^G9tjtlѬDpo??|C[f'э*&2ڃ v,rTCx*+3_1< F]x(WgF9ၖzxɁn®Ce&ή;)R":"=EbF;clLMѢoɲݝ#otWKPUʦUhҋ6oPRkmK;;|tDm-WބLiu&GѪbJ,vzEDhc+)-MEC{k1X+oEj([)R 2sWBHQZJAQ-yDUBl,;3r54b\܈Dk{LR_'"دF+3{R?Y'8< 2_aB{/oӰ:נ]8+VwUn$>x`,Jض-yNLd>ťO5(Abj֛DaVܜ{n UybY]JHmĐc|iF,gfeQZ3+?L%E;a3'{XmLh+U-voK,);#-V i;0dإd}u vtwɑJ_[sOYQ \iG]؃elE|iU%쎑(fEtG!blv=v gSiF8Pwm#|ݚUG%&HMM74KHd?fM`&ZY'mq\Bq׃8b_j\h D&j?Ki4zVD{ysufiQ 9CkAjjԁѿ~鑛ssgY\r@zA;ޑ5s#,y,;1I8]7:qOyIH81yI؝J3[%&NL%u6hum Ysh#?$_ n1)ڋ=~2۵ mAC o͊7ydq?1f\aՓWEfu_FU3w7NY{BO] Da燓?bb0WV[HxGm{/yr&w"йe]Y3Q`0Bɛ.1a ?0Z$ IFŗ/b6G HzI_k>ܑ<`{-&x9l^z~o[o/K|%1&rQ& Bh^lz,ڻt>?0/oH_UO^XleFqmFSJ-vǛ,(O~/~,?wZZG9IbY|鳹_*3TI*!$_Rzyl\6 HcB}XBbx弍ES 9Xe8ܳ _;BwA[.}~هa/`-Qך2lpq~k5u>(`אw={jX~_V'3]K{iS-;BmOzDv7/]_ͫN#qx|f%qyQ<vA[teZu@8%kSyÈꮌRrw ֫]w+EF.‹ŗ;#П_=F'u{9Д[E BkЗ V]?$iK՝,y nt=,,ù65r"Ŧ! ؛xQW <0a-=~6i&qrT XsBGACd6<'[JUt'kmATj-d3wt;%AX;9qvIo\;SEvw cdCes79XM;IK &fO6dAe~DP+绐z2qWEt=rHh{.[64f#]f#eP|A'}=wh 9z?Ӛ)cdeDƈIx~"uYN)yJ|ĆҢ2VZ{/aϴ5)?N%6@|o゚oKUn+X]$~3{.ʕ^l[i!x:\pd؃ov#yxJJu6?[:@m 3t`FJBw5#TЊuͥ[ 󚌨K/dk6iO<ˠ>PPVFS|X-+Ydq€Llir#/RvWd:K/ƛSyҦ֜XOurfř"ZmR/h`U0s~ZNKd--*5FV}-<:%[cь$dKQ !8-e}Ueж#6UV MBA.V099 kkk/@hBL_IuUޣG7^} 40L}Z=00d>`.޿_]]Tό_lW^R?w;bvdnꣴL]TL_O>;y~A5+u?둂'JTonQ#sH@uU(t$a.Ϧ%Qeq> 9;PHiv3jlB+#93ޅ +:(m_zx*B4{s7rݩ mZhmv۰]i_5=JUP7|lB&.AC؛ QydFj,DI!B^V- 7 Rҝ5Y &B%# eI䦹'N__K_{W? b+.6mULzV+~7Q, b;FqP٧8τcXlI {hEzb{v!m8 6mWDS,֠=3qX$d {T7M*MLQwܶ]p3 (wFR1V!cH?׊Ss4a#O=U~ipEd_-? OC&\!c|P\75C_:أU5U1ƭi:KuXڧTnUqwy^"Tgx t5Ċ8sFn ps+#׼m'au)'m.{"}#W!SWgwKv&BꗨPvgV* "Zy5[qN.> nԙX훦}Z! vhWrEuR0qY"7i.I_gscF$wI(GƘs\`"t0Ѫ 5R BJrW@J襱-hz>ԒƅTip_JHA̭zP!4l@Ggć(BVab43.q&֦Ap\fl_3RR0Iά30pҳ5vFdɲ fS;cQadTgXU 1'9mtO?IhJ*Js7H-kWŐ /xoGc߮kx hu>NO Б\hC'xvJ p05}8S]&Q>|B1Ɓeo !B.ivPtnv_|"`ꢤWP MEBa^)p[7嘾TuccWe˯ZGLя_бFбFH& U.ByjJ^q-:/{j] /=$6EɛԞJi™Ouu# Ŧ=˸'MIDI6G`w[9AzWf~0/FsBYL^5 ˃Ht&nƥjՇ+oĚċVI}NaK|9#[_ OcWƺ*:x0-=kkT^s`":`e`%|$GY|2Bm]Ia%U)p eXAW);gP L*+<[M  ~Ofk91j/z*ϗUx?kl4pEXѴ[p7}$;'Lnq#n_Hm78Ur<:0z rss34eBJ5mLGC8 9EY+ ߆4^Et;#=}P 7fl ;:'2vٜ3O=FM}({@Y$o@~k!fDν*KKLݥ˩we% .D֬}e&:kxl ۯhmi58nZ=tDБ>F-O<%j|Y z|?9_o*Jy@~Z) ,iQd4v3bǟtTd^H(#vp hl@UOUwVzpfE>L_vH>-%X?Vz]h%py M(QF]uꃸeZ8,-*zOmOҩa,Ȳ2E_J#&@f^2Τ!Ԟmժɷ_˪3 جI5Y{YJ+M2y0Ɩ$:'5|}֐b."3>j~N~GB9ŋI}zؼWS[[s]ImVd8/aBͪ"8UM*a\xg6I:=!N,op{av`tx/y҃r8vU((ؓEf3Ycw&5zIeQ v| :y/vx$PP'}ѭL֖-fU}hI҅mz Z [R\/;;|!)%5V+*7mD}~$#d} !NDEh,ʵC\Y⯭RjKp=,eN znfZM%b XF,?J~gwt.20lVuk(}J̹Ԅqp~Ո- vm&P<3x_il=Vͺ]ԶVӖDEJ)e ݴ`'T[ɍJ㔓<%*aaѽL筛w`(ydR;4ahRiy#glI__ݳ] |2eBTj*$2~"nvٰ~CT+ƍ>k%zꨨ(ܳo乍EBx\5g nփuw7h=,mS?cBv:Ç)'BISoVpޮ+h)acIKQݫ]]L\tw:$7 LsL⌵ɦ(6\mH]b3F9ߡOΝPg)ڒ0}ёH(3Vߵ.^8T1~$ȓ@_uQ "| va4wW :C6-^},x7S!pf t(؉հ`,}n+–M X=LؔKYC\Uw ZsB>mw !?JUpw؄,IԘa;UL@LʇcPiV):75=^py7d8\ u_jİXfaaOe?/C}TbI? $cLn-ߛGF!O:M޼ 1+8So1e ݁, H/xm^΅"ѰU Nvܐ< ڲ~KmSGj`%4;P76ū/L*2t>aF'"#t4!SO䒾D+u[;ZIN=H.=KyzF$3]t,QpPsL gTUu!Ki/y7PfHMGR KE:뗭fη{ 40p.Ŏ?'RG9M \b!̦P IkZofSPJ)@tEq%JvS̮#ſ5\2.7oR7V-WᬢӨ*Qժ0aaXŀnq`(:=h-%FmW=\CFolfe 0Sg[)&Ƈp <)^rNvڇ|q%+CZWӊԶj}?TIכsz\R=Ag܃ *X;P/5YuC%O S+Ae Mi޿8VPK_!yؙHFo&C"'N?~ܟTi[=fb>I)$iYc1c6.kHai5& -Y]?"z2`!c +NAsg>Ԃe̻3Ws88뙚0'ΌmG6,?q`q6{F2t@ر%:ō:拢9(}Yk t%In[=iDŠ$LrX [HX"CC}U!N>4ygP,޴lu{I)U?g$_:ȸۗ)Zlg6 -?G_J рټqۆ.PKt91p jnuvola/64x64/apps/noatun.pngUT gUA>PQux 5W{<[^<3chbFHfҎg@혍Jf(CTS!C@ٌV\;RaN(=q9 ?Zk]u_rܶk4\]x(WtqʹpGbbP|#ܠrO=gD}(, z?(#PTDSm[^B6Y͘=Hi"5kbbN1o PZڶ#hwl* UC@47qK6@_@@%8o}~ zK6&!~H>XOw@j8}xZeRvX1tWIQi8^_|~n1.WOKwU YM]ȧP/nM*mdE7r%8P2 yySU mghH˘%6wfhМ Q۹7>_ !^23'is5;7.'tiۧ5,O]FK iRXGRuE5OVY2(Y]73m0BG!:Q̻U<@?ׂ,JR}玲^潼D͌oQu7q' RXa0R>Hw 5VK[L:Aw-WV^,":=if?!g~M5mERq~՜

         'soڐhmKh2p1kt ׿6[N ʝ͇KDF/<n^oi%_'ix3?^W$ QNSe}7ב YA32ЗF>q[ Ą 5? $+/_[9F_XobOAsŎj‡! \c!:)Έ#x㴏^OwI4yXe50-7OI"Ğkb͙ D8D=,[vr;|Kn"8Rعd(YE0g{8\^t3SbuMM*H?P0ʷ9 @]_\!زХwiOƁUu҂"FFhdwnXrUD$>zaO[F}&07$cGIܰ6K;c[ky!M.4݉&_aLRrEq%J`Ә $MY$qg)`!^V V ֲJ4i =r_P/ON[sݥi*։@`zb=4-e;*b@ԥ8 B:1jf"s&N5d#0}.EΖ0o i?/㍷q_xb=2r<:UMj,I.L6)恵CN>z/ ͛(FEw.O6#ewLpi7νm]ìн z U@u4Ql}֟HG7\,vnP烶|TlH4BhUUڢPes$#KM6| iCEn& 0@Fq btwKeAj{Ǐ7H3Y<.E 4AaCc9<4ԟx\IZprF,$KΚ"s'1].zXF@4x'-S6I 6šs^ DKCFWGML~p.B6aK'eNǟJ{S}2ȃ%1sz[T̙2@ӺATZeTNH5-g (o0NͪUԅD *#*;xB101P%uDi Wg:ۨꨙgE۽]|CvUx.u=Ȝ]UܬM PGre7CFC$tLϾӖ7yqufwoܫWBj]7Gͫq|,pou'CWl, ۃ̈J?íc\$;8iYsnnbA.ӐDb?aw̥Ƨg>3M7C)9 &ZqklUlH]%7J~7H茣ze>ƱR#6b1Ak(Y~|l%򣘥rN;G*ʐό/_7-r:Nq yRUU[WV/'=oPsyzAԁ ^F.\9+ Sy?!+ftKϑ2 mCJs]1=^2irRiƒ^%_[Bh%\8N]LP3W Ѿ{*ȉoLc]ǃ)4&RGLDRt(ձW~lc»_jKrGc?r^ʤ GV"R'Ib發4:>@D0|jُ\nuRMPK6N1c(nuvola/64x64/apps/ooo_gulls.pngUT HmAAPQux -X{8w4PisڤP66ubEECN)EIZ=Tb QBA*1fo}|ޯu^TjX,j[=\w)W V;ݫ\LxdML;<$`Lz?4xWP`~Օ's4@<`$Y 2LJ422h | k5n%:?3,!5bMaΒǖ^VsK+\MMmDEϑײ_z2z'Ԅ02U1g_ϽMSmry_e DcdEP S$m{Ɵ;)zF w/PqΟrG2'%F_D=lU6y^m' ҍ o X$]t IlMJb98']}_zd^V%1ZD&, Qy|!y[_ KNu%09fgvy")FIֱ[xd@cC0UF#:A,.9؉`f|  X1$``z(`$geb`Rі{Fe~9{;EZςc O5^K#&4V+AGq~eG Oڋ6fKi(956?@ ȸ@a.pff."Ǫ4vtYŬaTj9x1~&kU<_wu& p jS)D eS 8~H+mWđ7ݯ-⡩9LomPwG^0V$.X_r2$?$t\!vwwsRL#WZKTF]B,ׯ2|ڄbُ/~_ *V1S0wk \'O&5r%m "]M Bٵ݉2=a}KÉ%蒛cU܎\ۢA=4kfC|qg7A6f3jZIH}s|m Iĵ,lՂjjο(׶g{*$>5Z`l>Ee&^mcc&uJrpU"Y,ٲm?dsf~mOc?APb 7[a9M],yp]?K OxqSs-ɔ2X,2vN T/3f :嗬[m&.dQݠةxKܘ?4" A*5aO94Xa#9ZMrg*U7pm[&@ЯRb%}m00i޻+s]b 1#_r;UFw?G O}kFVנ'ġ={6~CRW7xnmVnrnQņm[| )g7Bc6{PƶW3ǯ~ G[#~6,˓-b͈'薍;raqkj3 ۊ}䭳q,+*I(i >a|OR6!XDg+Te Tv)r'}"t ; 1J߲F9(JX6YR ANs x?j 9}|a3bYö\-aC=~(v)CGץ3?!pΗF)(юRd (ᓑ^,\`TiO՘/S[`橾gVn]U#COYQ-Bމa%?DBMOi-؆A49UщZ^}8 bMuȭDžwFB~ |t+1tQ+1=8:1O[/f[;3[\Tm(ȯY/,Ȫ$sy77ty{v4mqJS ޱ1Mu#=vMx_ Bg<0. Z ` ƢJa]N3Y%FUExk|ox{D^S}I`2l_&?UXG o8ĽY_h>.S$>.%zDO4 vx sjOGعD"153;{z%@j$1 0E})L{f'33L\Qf:XuX`^ _8ط^:^W0QYV E q b5lV@^+ mY@In}ji> {=AK q2LV=ٰX8RrKW+խJpo:LOBe1"uDF,/LxDj,U6<ӂNJ%ɠ(Uߛr7"mαۊk z /7c2vSD%(d ݴPSEڅ'Rk`ϡGCʢ+j^^Ԫޜ:mG^k@CGHf G^Χ'\AV@-7lWrg>.ɅibEmv_o:TlgZx4SN˷_ޒ-nt_ý+Y3wA"pN2v 9pKq)*BIM]׬Qte{.CEZCriBaD553{;P#ކ*X@04OY'1-o'08K$k=pjOb}JD^'wNGKvBqX}K燋&oyœ~YDz#/n \|cƅk5bW|G+!0Uv )\,uu<=9x@Q@}ņ`X*pkT釛m[ǯͷ".m<vZ6:MKK"(8Ga@ vus{lE|T~ Ŷ9~OʊK@X?:~[\lUѾx\y8>  fh y %TVoE Tu+'_aۦڊci=hPtF47XY%{ؚ(719AC 1'vt//JK2p c]-|KW"s4xDyi+/pa1⺈jmmLr*L`#U"9x+"Bt 6ZHg56.q'`'BXĠ|=?} v>?J^gr(}g~ܝ=&yw\`{[Y|C(RxMtE }9o :#L@I|pܒ-{Ϣ |YںN."5m.ej}'H0BN4@1W5nPsIZW7y= {"]!)X)VF @_'_gE5-`viac!W'`Сt6L+{Bne%4Z#l:Vk!@k(7R;0` ?Zi$^< .#CtOc̀Ϩ}Ŷ“G[Y#U׺ =d?60GZ#bXTRV֧xzg71Oԭldq}&SU!A>yȥQїTӤpM`Оkntn9Z@))IkڀdʍaΙ8 \q+_xrzd/{rED͛TOgo&UfL͆D(SGe0'6y~cU@rc MΤuOG5 G݌!<J]۬h~hO<ME4ʜ%G?#]lZѯ7n@E`?gG-mp)Rtjb\W]ΆJZN\ Ds{Kf$-T0M7"LVհĦmc~EЮ,#S@0™։yB;7jWlk4{m|bmBdwצq֏>.*ǖɮAg|0t?B;82G,u}5VFc[h$~_?, i×j@j}G@abHo?P׿ OtEbt b^"9phԜ͇$]f ʊIqsrA%Il׿WR絕IBsf vP푯"vGl] ?ΜfE6}lb\Q W:Q0md~'&@X ~ {DB?D f)V*q iMR7h[2RFu^'*=y-Sp|(3@~ 8Ĩ3H%>8aD`4/&+4>(n7m{*}H, { lݲ3+PK3N1#gFnuvola/64x64/apps/ooo_setup.pngUT BmAs,%;3RQz!MRh ymiCs( I%H[d2, YYo\R" Ep=-ھtC-lRb!2՜&Za\!K{Љí5$ )ӑ.Pk (SUVLBV!M.(+W&IS6M LCʢab'9-įZawuc?7RT(o\}ȑ u~V2`=BZ gW ,qOY^í,6z9m>nUgiy@MlףћF R,$ٗDRQ#UK㝻 yo߫} >TuBBt7(t΂dBh˹MSqITd,d2 {.⇬޷p; J8/:QQñ {ytT,;.%~Y1x2x"+?Ηxo309b|邭Q|Qgdz:OA wCtwNg/8\W7Hxj#(MZ͸6mwrT}XjXovb+ZwrALM?UӫQeⵏ'''HH?Z@T"z#uIrrK.lXp{m⠖i fFrh_Vo4s欨u])2wrUNw+ de>bSAFVjhÃT|yUzfHw[&S8, GhmkCwB-FxWT|*)bDҧa H6>v5kuzdKiS ľU /,_+8F%dȓT'^V|4Æ{6-vy2^JߜŚ~݇'thQVk1BކADbH$mtStE(GRhGا+fro@-^WJWO6U85?sȲa` &6`Bdw*@7T-R)ͼ(SmJ"F7)2\IG;"/AײxYӊ6upp7x<ۭ[!DB ˊiTkGȃA5.r~H;/Fg@zPY %4u&Pvv8+ V ;ۇOVM_rWR֞ȽbhN^{/@ K\rxYBbnyw4XH8|bӳpX S ?_@"ܴ2Q ^pq҂P Mu~Loa6fEaLpp`_ *>ϑ,\"#EK?_!N95e V}^z}r뎥s/ s<ߍӀ-Oe2}x2wubm#;^}fn ZxXV [)9o5Er)Ұ&Tkkga=⿭Sj{\^WtBAljqH?1jEmu;_ET3j8Qʭ9~K9KBF(C6s#ȎhKRIЙxrf1c?vKٱ" pn>eg'dhhny F*CE iZD<#xZSьo*x]֧0XHrIDj O@]IfM@jd՛XYJ[b<.7m3y0̔BR5f9&A#:W_q8V:1qvtELʋ@eDաV25楿oQ[V߭L+ZaaAow4M'8N\/32ʽ7.@s:&*8Ӛauuc?ז} KT㖱 n r4/_ץFV\lWүLo\2e!QY oF]>}9g࿣%=7A7Hf)Qz !-$^2Z^Cg5]Q'\F');=K+/_s#9ԧ8HϨOfbY8ZLԨؚ&S`\z%&yf=EiILe6:[gZ]T++E嫦ʕ,%XWR(pwˣc = 'J9UC%j}rqO٧ ($,yPuwEnNpضk?Mbg_0=R_ kJV R j'͉7G8Fݻ*E+齦-/ѝEYUL_R [ 4]V(};b~9O*ۜIrZkh-W WZH^Pu AUTYCjIYJHةWSM__)>[҆C4iNN)n#J󔺰qohmZb%? ͻbDD<*g < WՀמ{ o33@| 0T%vOa3֜\}}5IG&!;OEZI78ZdZkU+~~Za p8y7IT5'!?jΎV MI,Ro\&ճJ1MA~ JU`d^4՞<꪿g#+!$M*&J<=? ̄%by8FKI:#ⳗ  Xw/ oy\ (:X4+ *TV$%hQa~AsM9{{V{T'- |+@G/[q" _6z>J?PK9L1&?9Mnuvola/64x64/apps/opera.pngUT lA>PQux X{8SvYgĮH YHKD IZPT*rYjBzcJJ($MzCCBvoky5y.xylӔ@uld 8ٳ>ـ cd@e56̉{:x    ?:(ll@Tlp/(pqtXK#+q+\IeLl-XOou,f-1 pxb%\^YF !Zx@r H*LU@E6+AnΘ8ZU~6Pde~;GLUݚf2D%WɊJj!ס h Z~j곘Z&!bqf y&^t:PE""q6т=x9,rFs3ÕBa-0S,KvβI&KqCR*,I}Z[nѠGE!5`*Džyf\kIEԞ: P+N\u,Y `u;opb1,vbj}|<^Cw+$Ib1I |N؟EұoIzoYl ; :Hr?%Isg/&}Fzl5){`ɳ&oW`xyɖR}PP2: ڐao?7KG%x1Eܓ&2[ec%dE&erS^@Ą\ %3wEZCtĩ X/i߿.O[I,"螮 (+z"@&/QBx &tWjNf nw6\jBP)O5k JݏHu`2ie$-BE+10@ɽ/9!ɵ>[)"XZL+t _@/`89Zͥw,<97֨~=Q8X=WdF7\zWϲ.j m]{B/pQFb'+-M =}i8%Hbf&QmLt=X$7.]]~̩`8U;$flGDJ3&gDoR6TϞRWZ~hB@jSabI~8U[*Ko{~_N%&3#cꅔOTOwJ3([SSoYZw2>}ɾo]OvJ\Œ-j5*z-8祼1['s%EFuO#e8+c6GkoSL ̃t}@{ln22mI ɛ3ôU\;;ma붆2ח9?i"zjx=Tp*MEvf "=*yQT1TPyQVI#"b%7, u@rm0JWz /x4ebuE?_pjp`E7kQn>D*{^"70,>-UyF]sL'YbYEgk.N$08z>`#GfU}ZyjeQyrq bh/IpmهSÄy~)N Qo^qhXfw7@|Kl@ad=BsܗĬSc`/f˃L?O.\WW1`vJb\MVQI\reeM ) Jq dBΈ*38d,p!mښ ¨dNWٷ{]/ŨHfJG^Oy!Ng;oƅ6TT5]%5)SW5xlpV]FK+ǟIl;VsD!zE-s5 C Eڬ?a'AS/dAD5o` ! $Vď=@umu\X@ہO'qK\Fr4 %4!9m7{eoG hk+Mر)^-u"? 1A*@ eJ1 o9F>*pTleȾ=YOa^ bk"1KXf.3L܍=Ց&І`"q%r emasz,m#ϝπGQWcAnB)i2#dA4ZKn+u8Pb!Eb0|qNʴ\h T5MrEʁhGTemֲ q;jsMs_f\)[72){ZSBy\R,y " A!QlM Rg~BDcG.poiò._>_[6T ,WmۉnG^$ S* #fxf.{6( bXdfj7qJOأ` Jɼ!匩-ӻFXL*'`G.}f㬠v%tҨ9P`x>2)̡qO?_\ℴb'-n< pB'3'ϱ(.dxxulxY3Ж>986bI6T䲶w|PNW&I"q[|seu^!eGrY$9@3ؤT!3Wj˖(o ȱٻA'sA7I$F:֍Jum")e|4AMR)v]x;W^B|7U%^CY~ȗJd^nKthFwB/_"8PD}5?1dQ= qT̯kτ_K5ؓ>ѻ5'+?Uz*!._P5~ExarqY:?/Hb 2Gu= "66\yIHW ~q尋蟥O.Hc'/~#~$E+(2%CY\ . FFy.k<]tr%i7N7ڰBXv[TF-Lc`o%x`kXԠ^♕՝u e*@ݧ;Bk ^bψ0]߁3/d%c[6H(SI7qp13 d2uɚD)o4ZNJ,s@6;]F/QpCsSMT[D2$$ ܪ8M",DCdi)t/ S{x = d!Ҕ:դ(|Ph)r_J"wbpPxQZW}*vW OqYu6N"NnҞqV"19=ISI;]^ ~óRt]2_>!0`(U nmtGTgӤ̨ur;rwD^C|?k#Ϊ-uOa5>hʖMH_|H4/q2V1 )q9Άgm"h~qSxUuv㶞뱀H91az8E<Lr-(AWnN/8"@Ar._ YmH14:0u(d_b* :)?zOMqw PF;]@`t*rW)_t''sJk' 1pI7^y: $q32G3%ÚKV@CY.Sg0-ton_R*L,r]o,`EӕՙԣcC~X Ka ?;x ??;yfKq5/AW;`.m Z$t >aW^֞Sf]r"z)PJo\%ދU.\5h?fѓjO5/bO(:Σ囊 tJ܏Zb_7i)C|a/&.f[N"8 y >w=^`3}Mf1sˣ8~P1݌Kz`]]Ac+.bIWug MP_OԞoOIF|^6,/3;8:ejyepoh͉5e9A#}&FMBo4GtK[ϷdBbH*} q.@JX_/Gpj(nx0(=Uk։E']Dzv1%gmS>.?ma/]H,޼j|"ڵ95ʥ AXz_[cp<ьzCuUObfp N?׀6R б nG $LG|AܞÇ\D_2:?]o5+q¥,mo ńuٺd]61B9}<3G4N8y7,]xQr!zQp2`𦭡%x"0 =[8]':Tl`H`P)ʃ.箪1ꧾDڗ \D߮}gg}|zfY')J:CG\_.yJ}`0 T NШYւ>LHYH( MS$Sώ~NJWWE'א+ym:#X/k9yIk;ΤnӷBC+xd$ Ÿbg*сdԛ 5vvil]%$[>ayA̘&:bru_IHX[5ߵ},mLtZ;Mh5$?uq|Vz@ݶT"l% 3)`PPKt91ijnuvola/64x64/apps/package.pngUT gUAAPQux %X 8T? 3 3(4Ce)!h3X ӭ[sQUs0d+ڵHQ\Y3<{<}~rSWW@}rfXPI9#w:@}77m =1hF8{/0b(sMQnHtLfQX-Вm+}d?FxR`#2NJkIRFxJ^%d%L;]ڀ'Ϻ/r*"?vx3O@ubW@MKwA KY KU/7`/?N cɰ3&yEm\+6msGpl7,"ma;Mω|7}/"ʜ]wf=Q,Li➓n70Ԅԯ#?qjca"ћ lXKT/$v NDj, Xb˕U] 9y qcP1xIw Id^O_αm!!aõ20j6%OB/*9IǣtueOeo_:Mmv 1 E)2U`roIDdRa`ֳ `gXrb,@y'cw" !x*^DCƫz 8gu AD(4K!݆y>XhMdfI?ǛE=߃UEд i#~‹jv)M7i93;_fc> iX A&˰B?dq(iz+8) MH?03fb^W4.[g}Jk6 1CSAPc] \6Aow]k}JOd"~Xx ?o_>< ͩM]OɏfDe ` rZjK2Lmrfщ3*q~?j |%iw,>R/G%C♅j '^r MeM<=ᩪp|6E֏0 .đx@'b)ͿSATNDV3C"⠵>3cÙIؤ_-"?R6''7'N й<'I_Bx gsKƈFx/,ɣki80c7Z"΁;-QX p&\>G{"Xe^&X%,U}x5_E^ij7m ǗRVYS5Fm* NDx čt@to8A#A?4  -he+m[ 9E]3= \C wMI_Nfg#T[2H&gS&ztmܴ{ Á[a,!#{{lܐr .G,3y3G49snr g~rWKWrEҵoRdYPd*xFIFؾy/,zvH['q>?9I~qw[{'ǫwVm0քg{ 9x 1G]- ]>~ NΠ+_ eq dQ%LYa: ft^hW Z캍&5>gRVs6 ~}!tro2og÷IOƳ>>Y^}qW}gahj7IEHA9A`JoS ]ih2%B5L7=Cx&n0j?+Dq|J]!FU(ެ۷ ԥdR { M x?h]eޥnhyM9nYUakJ,H";e8+U4 hq4:g+ w$ZqnM-j-pnC]IĐ9M.ī\]6ҵB$:v1ԕ̦<)i,wi@pC!ff5"۾w.j;P,!Dtm`rut>%7F2 AOm)U=c:hPnaev.>R=^"~;$I;5v?ڪ Ȃn,1Zk9Jh9pƺUOmg]`2f72%qdH5ALs`<XfD1i ig@=Y}bY!Q~G9 B6m6|5&PQHm#^.x7yr\+Lچ8{D]LkR#Mʋ'I1Xs^yftCƕ S@?׆(8H?%F8*Ѻ8KAL&/m-TS iѠK )eL@.@xSB-_C9Y8-=U/>q\w9;dV/ (j}He M1:sU|&6UwnZ9n E۩t'jϟ.%Fu {YAi*:u[.M1y ?䢯+5kؙ`" WOy_u?99 4u##ΖR;֜pP507F+[WV6$"O' da8 okȸ.aVQI|BPމṖD^bUlnYuW6 Fr`3ꍺg¨ϝȸzZIjhԝYF]N(NV,:tvN $l~/&Pћ/d|F4kgX"Vy n⟎t<ފ#R1j3HNm[ϴhC89OcIś dT)IΆ >ܨIIZwn3S{_%$o$|OgN}Lv +zsK#^\@;1k:I[Hxf|2 $ddR{GO٥CP!ʼn<z[I0/J޾?-|Yx2r}q[kJVokp|xzOĴ./a# CGT9vZ]R[gHdxQ1tQb h^zY"npSFz =3 o!'{.Tl<>~?&0M_+] M䁀2RZ*\䡫#Tۮ}saIwBۓ Y29(`3(_]> JnyZ`ߏ?۩+" Hz&u7))Sm~ %SXMLIxn=?êgp".aLޑޑ _IMJˡ_ݞ5<0L8-s|@ X^ιĐgMy-?X*S,<\VG&^G+7Cx P Kyroe{/JGS9O^qΖV]E:Uk`ʡR =֞뗖M?0DA[lDB!`˕e4_Ai~KU(.mv?lGSl\3˸yŴ*ko_=*qќ*KZSL.H.cS'D6l淄lq੼{qD'MKE׽Hܟ,72 gY=ʹ{ȸz9O{aJ6^oҩLr5H^ \}(EݎyP k|^M%H4jjDoCE-A7 ="V@[Fnjz'D-n䘃O:-@;:W&Oۓ<(F :i @acdPXz1X:&F &,{H hc;`r LΏO;B.]f5v;E-6"q/Tܬd"…r%;i7^GH*9j1-C T&\elm#&:BS%EÕHk((K+͝kZGC":KRZ*ִKN-e ̿>SO;dN\i~Oāa=l1oyUsh3v(WRdi3_n\Ҽlb -^wϟ(U*4ο":qFf}Ә6vK8@â˗H%߅Y$o>s!8j-ɇs K?$n2jg }T"[Q.J[[үZYO@&;~ƬT(WeȁȈZu3BY:cL.m^!k1hc)hHn6 zR5Ԏ/xG[ErutL:N7!4aVjA6Cksi zL<0Omf _0T^k:{ikd[{+5K@_#ٕ*(!>I;RL *atGlltiCL28biTj~ɏYґoZO]k%=993rˎzE0u,A[D٧-u0BǑEwpd}=?vY 7螻Vj5'Ȓ\w=<%%0~˗H<{W' Y-hh@2fL-(`LS`x_ܤ*O t!'jDYtDXRAz|>=tި @!lLKup:9mzfRo>D$s f"6s&;ψZMJ$J=od9+tJ$P?^,r*&#PSS?3*PĸY1Hr>q$~p N NdnEDi ~/M(w-1eF#U.J9}Cb12L~t.qEWT(DOaS݆\ ,|H8["5i^ vrJZ=cBh|?Gl3Ep{ؙ k*+SGs,bԫ)tCm@*Xī/hJCGX69 "FWS%U>Zu{_FVXJνG%(,b%&x28 U~nul9LD/#q,EpA77wu%?!ܰĩb= 52Qd}Cg7HD+BS aЇ]uKZ:~Mi)"sٝx,FǙԪ]׈Q ==nno*f-f =[.ͥ-Go}NG _2a+Fk5 nBFMFPfJA>2>7ۀZ6//|a=qQO%U+#R[C>]\|<ʡw.yOcbbNA@(H\}1_iG _`vg"bo2AhylFL~ysVwRUNt8C2oS:$堊yyBcܱ /Z#^'~sw^J<W4|8Y;&:<ԟ杗9}؋e~GBd |AxaP M DW;7,=\V.PF(CƢ}$D2ݒc 6;h[=zF0qG}lx[[mUgAb)H* gs\%ogzQPOi;xO&xo ̒KWcc{0RFb ʞ!VY~?D#lyqBCMc ߎঙ{6pk? 4.ս9٦xAxj.nφ`,Ů䃙B+hvW UJУC#T9 1+P%+x@wwp64|]mmA .5~s C?Ʒ@ZkCd~W2J?8=)z1gd4™ّ.@y=+[޻.V޹YdĽtk +te*}',rw︾tҎC!ɂ733/NL@ o kF95Ğ3At>w/:2#)'OU:w+u4"2nl~!ODBosE/ qt}yIOѮvKIC1@:{Tꁇ\r.]Lq33;;5?' ,LYb] ^<{YG%rv!=tWXX0 [t[De(Cn0:os[lN,b9~ȼŜbLfzm;U Wk֯\V&e󿎌PKuD1)xӏ)nuvola/64x64/apps/package_development.pngUT ]aABPQux W 8a%m%)Ltp(AsH6cTtT)ہఱyKoDfy {}{r|wSJӃM#cTh^Pq;E'&%DqQSa1Q"SNE_0L{;bH E0M===o>J~"}_|O5 &O3*|M;39V4׶WL#&@1e٫4tDǬG{#CCGgõtf@FMVî@wlC̒,=eSZ't/)ܴEy D U =ESSzI 2Ip9IT!D08L/igVs}H?iƚP=e<[}j ~aT1 K#%C V˖B|r~SALR]&,8 dG漽Ǹ^*0|T y~ٲDmD''kts;(ƃE'θGv~C-p?E?9/PloߙVwS,AHM7ݳ,Ko=ԾAyw,MFWKhcb;C}Azl GoEЁN230"k\Jh KTAޓdL0\kg'XaZHO**lIRSWjQc`v*jf|+Q|5*py 󦑚;Mgܘ/SNݗˢqjWAr&S3SwnFS${#'\+8`ѪKJfM;WK0o^\/1î䦪k0[؈|J-S#g917x7.yuG;I|%Ⰼa>t̟[:^tIwL_^J>Ly1k?On(vtԆà/a_G K';UxYRwOJV֡e#fMIJқAQ]kHF؁]сg=ڃwm*g_*ޫYV}׌:ng(뭬WwLk4\4X՞=Ήl!thU*cfC7$3n_U]<.ꉤU^P(*'RğBI6P ໰Y_s]7+looN.؅ׅ&'N^bח'9z:Z8]{f쥮UW#s$G]G ^EJwFF[]8Ħ8 eZ-+n%+u @ufc?AxTaj({}s/F=hMᐆvVreD//u$+K\bN62 PO.@4z), y|«QMKk7-CON_Z,!"~[X{E}rJLn@^!Yr~Y%SŤ_Ͳ>5qܠZϏ_v;2lQ`0G^U j@\2UMk.h*lBL8aøp6rw}?z騉e>XFК5Lcaރ-WѠ{*V 1]>W 'e(~9X+܊$?'2"^L߲忬-5ɝDzT-}^[x,{+JTL\S]:n_#-vdĐNy}m@C(b\.ħ~_m2i(.p/+n6b)_ K/K" ф&/3St =wVV:坞dϚ,[.40#E v+sWդOf+.ԇc+jJDB1 t 6Z.IC*bkutXI Dy."aZXF_;=oJ[uvv Ծm0;d} Rs_iIk>30.xa\d 6aLf"..!se DցAm(-*T΢V!jR]Jݻ(U Nb?(H1ɀUO5̤;./=T}*u*nbox舆Fv R @=av$uñ F,:Kw lqn80m"2@͐ ~sWs{b"0u/ D]*$B&Ssžq“erO,Qk\q`bF˵}r27&x{s].PI;96ERzao ew[&>ˍ^`{OUque;kj5okD˂? ԑM>o` ƺxt\ S>Ӻ?iۛݯ4I]J4ZT7f31l6>UM(;3UߠW!nT>4IBAM55)k-NU S%}Iȗ l^$,+Eh[N8p.Q##FN XI -.؃9<R*!G&qqˊZxΌ7ua뤀1sa5sa6BcǓ?ȿqf^\htS.؇3uixLt[J%>T[)2*K&>@y2X6WvCMݪyq̘Lf^x&zh MT2@~Ny*+$&\OT G:nDsNl@Xi녂89GvnLB%3PT2v;X0eMJ<@;崶၁h:i ޢfBP!0V0 V!|~րC"'F权 vMOc,{/ZFc}K|0#vfƆ/?ˋ@zͺR'd چ{}G[U?$!yOˢ\z;aVYQe @5q+yq7찉sXw"vȆ?\P#蕃ec_1b]ˢbP\`?s+72BK( ZRUZY2lFB]YU])g;v`ݗjMmDÏD~Q0`mR3XgI$@bIgQKDbNרeDyInkroPiG.>aK?/G2a)ԡfirpJ'צ:J\ߘmv45R JĽJJU#c}:$!zҋUA"x1t3 mӭ><,m?SO~fةd_*;sõ$]#͚.,ů3@L \ߊ, nޣɼ^(I\S]e9=Q5˸8//Rs 4 &!˜0lUW@p}H-7JKejD4c~-Sc./ӮzqVvڰX?GfF9J!&^-CM@Dc6%DUGI›+&kқ""B!Ng7r۱Izdd{[&mD¬˭lu_7}<= @liHx2G&x3WKXݦ㜁Y֝wQWg3ȜMVL85phOY=,5 HY5}aݏ9?G$j1|Ʋe2hbZ:,s]uo~7DanEb'v@B4<VZFS 4 _u$_M=6J^aBπo!'Q p).Sx-@ܻ6jPK}D1kU%nuvola/64x64/apps/package_editors.pngUT ]aA?PQux uy{43g\ 2#\2 U7ȥi.&(JsINuR<TqLTs9{{ޯޯ{yjkmW5C:x&:i0&]8=9hZXK :-62&Pk7,JHP@@55Q44D@ZН}{B[vF󨁻 #̗9Vq2ޜ-޽xS2iO@,ŵ|¸ 8C z:unzKw 7l0^x=?T[9vm{r-R@_ˣ:mEJ̜߀0NITs_mVJՕbѐ45!|j ,3hTOxF6<[kM De=˺ Ű6C% U*ULBIS9y|YջY:e3@P2%EIϑ?Zd'K*ȕB>77 z1`K|\-sZ(m'`_8|-axM]LqP4^]f= L(?/% L>K;R}lkEɥbr#{#MX8"{JV8{dziJ9~$< a~Z\6eBw_.=}Oq^qOO]rBr]iёIGf֕K߻@)%ur0e((B؝3StdCeρj܊i!w%q2MxfvyavDVT~ACE@5lxR5:X,NQI: Eb=y<<37F4=%r! ePР?_.ɰ,i: 5Ϛ].H{+w=w2.i3uIz#WAРdo4U)ugH5CV|to1|,49d3qG>7=Bͥ9%y*5J&13 5:uޙeTjtP'0b*"FB"m/rUsd=-!EZP_s_WĶbռ+94vP3MR 3X<࣊ Ō.:a8^?9 SYQoN 'Zzb^ rP&%ižۛ'Ź@ȷhWS@ ז|^HD{"Y;+Rws>t#UF&6(h: :AKV Aږ{O] 30DسqgWr'vcq`"\] !(lCAe=EuWvɞ殨Eg9ڇݾ0Z,<4̡*bQqjˍh}nFΒ#GA49ΝD˶Z\uBU+qxaZ\q%$1̥\rZ{tKcr'xyٗߨ[T|(azkcXґXTo+m5-7||?|&S5%f Xa%w6bvu&kcTHԟ pn%y:rId" 4+Jfxϳm۳'R|V V44/W-(Ԅn9d0f-n)Cs#/_pPǜW᝽$}?3eCeevs3u˫ާPAAH%8MIN~"Y/e^sk-lVThyCt +5^x+Dʾ6دcz!%漏dqcɺDH!VPw3yi80@{vt6#ڦHjcYԻX&DObxdQ+Ww%!̲A ΧI>/;!͙/ԢeG! 0u{ma7Z⢺^uh5.bzsB}(W5~o9J+ϕiG}~4;KkFscOi޿gɁNPD !*4U`dL\Ԙ4NI t(KR5L[f6]ylgAzi~Bi]L9' .׵ ߃:JQ1"9u W+ıLR0]Wf+#-78lF(x EXd1 dqs2~Ma7"Zj@W{\-g튾rpY4֦ri:;,d~dŤfDJ;7{йlE(WN)z_{ag BeczF=f\o R FB !h)|`1wTD4/h"onT#02~gџ\D3c(u_2w?== osR " vE`DpFkx̅O) M+kKi m[K?,wFEDC OLn&t ejNگ,I Ӓw,.}H 3CVqؚKEfظ.H7`4:2HqB.grӭwќ`@C?ʦ;ȍA\Nc>UG#A a} stBZHDN-VH$[ ɏntEQC+mP{@/_F+?Q3y !: n6h@z|۴(Ռѻ@nf6G8G(]9s;Rl++Ln^^ ]an׸R9mݺU0B :BKCwwWNI̭$P+7."J6=߁ 8js™ZTyu-(+I)Qm{E_ND3'p@oW $| u?!/wJ5AuәstF(_|΁*( _4 g3o͡ZnFCZf&긊zyH!G\dY xv2jciA1@p =/ߒƒD.+%p.+EinOڿ=P,[J,Mmp즣Q=G"F=-X46deO X3n OVzǔd~OI;4qoI3&}FDDR_&ڡΎUcde]|rio} e$ر3|8tsLk 03fQr%nzu]z r9vӯM+ R~!wQiW(W:G~+&硖?t?ao~EFpZԢ7W˵z? ^db,1J`U QٻF5f@UV|v_Wv\މ qO2,$[xynoՁf ^ 5l쿟^Ք]~7.=]1:CsU/Gܲd[| ;n ܱ62+f :?TBΰYWJΌ(2*lHeL6i@ ;nPN-S5xzigGSTVyUTwb`%7Pԏvo,oZ☳9JBvvY *K7Մ(l30jhTt)OƮ/"VZC n kls =̯($3b|;I+ @}KGx@`іpןΡ`26ct]z2C6tFsŵey|z۳l}ut\ ۈ6,v«MIK[ND4{iuЂl1|n\xQ96n/#a( [}ui4ڿM2,r vjpTڈ*0r遁3F5M^yㆭdx̰ko54@24[v r9?7YdLv^WHK @!Jiose\OO~t)񄓳'=\??`nf=j׶vJ:I B"2BLFM;HJ,!D(p wth?t7{Lp1";uQȾ`:0 | ~7Q;hw-=/%uw<8/YʛSZN_Mp29Hb&zbxwRҠYID2x:i?Gl} }-UkW#Jf{x痁Gʳ !itkYjǩgFpDesJG #P~C1ĢtBfʤ8," .9V*%LϨWU 9.TP /\/f_J1ؿpA?G׈Hks S7Ӈ^7ީ5EkT]B*U}16O"%-"ȘR/;ʧq uvAצfQ+B2*TQf\f,<㍜\9&Q Ɓ 'CKһZ{1+lg Mrmi7充~(07:|o Ͳ:-mWLQ1 kKWXئ= YM˰ +tM#)*J>F[rזJXxWk+XNNq8KBcA}<{JJ^,(7y'؂3M#cRiMjkpeǽn/ٸ$^P` > * -R8eYR#r`a68DW+8_K&9eu:iĩ^tuSE=@ހP+ b3 >38r\uiyopr(ݣ39Ϩnu-P1pRUQЮjrdѶVL#w^eci#H7s1^E\{&k:6?8 Wo(;5un߅てq2S٣%LB0ָ 4S\K%?PQux %X 8Ύ2I)1M4RҤb-n&ʖf1{H(2E1v2m#DȒ/|sI8[Sc{\=f] 4>9}kiB8wVKk…] ‚/DaA=yƜo}g_DXuEH5^pULxېp1_2luW`UKN{:ūT \bD4&IJMQnv.j| XP t $ʪPH{X_Hһ+C,s;YR2SkAf68+A >M^Ї ]8雽)Je5BkD|۱nzAvX3Eh+ylRpn$fQUV^mukkBKQnb{;?3A/ӥqIpC'J/ir͓ѕZOѾ'u틐" ǔ^́L8j5"ZfLgЦDaa Ȃ( bd9trv( UϸI;y}P\Mm2>ҢQگj^fa`vJ@ h8 -?QQOتAf >{5iEg!J|B.릢ZxIS0TĖN%\ۜ\0{t)ֲ+-RR@BuU{aj6f J 8Bjb6LO*Gs󋨿$ڄO޻jzXFLJ"5 u /&K,YK)_Nm<]#CY.ZPߤ`/x&{cMuE"bC /(>6xe-?E=$,ߺO) -[H F-& aEiIG]!mqMo+:&7hĜ_!HvtלF^ƭGrHWƉt{k?AZiYsay9`^֧퐤8Z~ؽ0^NL- O<}4~t 8UaK:8|TmVM67S3IOZؚZ&zJP158R{}|`{|Iڐ fy3ݞQPM_E=[M|5h9(ݍ(7ib:cu=ESj5wY`1/v_*v? #+ ~ P`.m Ƨ mW'#N-eX+OmlxƂ7}ODO$V;:VKdјV'?'n{Q75rv](V5%Zx(=4bcdt<+ڄ?<= /m]J >qq߹`gZ<C{{%:TEgy P:c9ڮ7Vr<0n,3[H?L\Į$_u!}[%9/&VS5o es~pa(׺x%!T'$W% 1@Q.I:m 4r^Ȓ=/pʦ&8So}NK[f5fT'UUScg+^=:S;Xf!;$׫ГkQ&2 @zg 4 oJ+ !Z2m]2dzGYh44Pr"$?DO2oy>WK?[P#5?W{k1T 7^;>u̎t(ٰ,o:rc~ȋ<[DI׬0 03VZQv-R^B,CF[ s7]W^l0s H0aՌNJSAB(_i0 l!h~adD|vy[ Ϝ!}6 :IZȀvk ` >3.XhkĮj{)s>$#ecK!dYoY۸RI5yz6[`ڋu8unZ>H \wdu!{')eBޥ=YVA!k1- -ԅX_nkE^Yw ۔\UO?7 [Xz(pX}lDڻR;.`9MQ V* 풗/6i8+̠XFe-5E_2a1^Uq>4` VZ"vȍ~O[ckg}yD!$V#ueXI{QgC:A_C,g+Re:{̩5jJ(}lI:##Q-qzBYH}Ys'*e!/(ӿYDB=va`̴ۓXCﳊ+\f~qIYb [Zӯq΄P33|ycx~^uB+wkEW?B:g\2^At i?Q=՘A|SeKLƽ %X uUoQ9@2#h,re٪͂q3^*V$b{*O>3Ng6@x$<*#&\F{;/#][izzoSF-H/*m+.Do$銨37"ZUbځd8 țyoI$~.L KjW¾v,.[`Mo* wl?ط;ۺeӣkP{^zH/~F ȑڽEYK)֮pV}%鴆ABNP^S(RP"[i9brQG 8~Suۂߩ/izw=c~WNU6贃/ RN!?_aŅݘc>ÐJJ睘jr*7wp͜LEtBn/NKh[ݧ){Ub:o( &{s9ؼSsaȝsHߙ_*@;64@z%:rfċ;r 4͌&B DxDa775qE ~7'Wߌ)`**Gi@kk}]*kD|1mi|[Q^:xwgc0%ߧH)Tv 67l αxLhsȗTVUM7zT]6FՇLaPZ?vBrq_X-Fm B03mڃ`]=Ő,KT =6 [*V#EdٝRSAO?B=狐zbӫajbEYw0O{KGˁ;L%լjʗ0s#]̎5]W)uHP8F1 7M׈<٢<_X[/~aR s_b7%׶z3 DȧG%͐yUFjoW6CkY* P͙~riD*ױ&wR_J C G7?Zi;}r)Y40_<[p0V>?fvTH_Ϫ:iFPRmRCphsZh:S1 < ^{ڝ^8=7-Ql⨭:A%+Rn'x&$ gҠsB xs;v*LIkb4Uv,淒?ڀ7-lE]1- ^w,㽹:spw^VE5}nz%C251fg7|M2(/iU^_xwr_[ߺ4ئs(#Ӈ֚p\*j\/!T(LOep!.>dXyP,i+"f3STniQ"[?yUWoT!,B{BY>5NOW)&GMkk/^krc:ZbQܗQhcۘJH*axuw;gǾ>պFB72!698I,z_W%'/0fҖMjZnf(o)7nhg/HZc:x g+%fTQ#.T&{c]Q S>(㌷2-@ !> an4+2rXÁ LX=H9HQpn1,He=5AgLL083 u_Ε~zН@4oAAK3pp%b9ߵ}J6sS!thM9|EԨ~Ȟ_}?٦tw}}7F}v9S&L'>K9iʤ$w9D^:ܑPK/sH1 M&nuvola/64x64/apps/package_favorite.pngUT :fA5PAk|T aiΛVi_#*Cd#:"B6Bn#ٞr8Ll5&06Z"+|%\NA/R9L' 0q_#l3m.0ܨ8ƀ--ouP GȪ mv\߫}`,^QD־oItED4oNr憎J${>W2j2 QXLT'/ݯy'=9{Fnbn;&Yׄ˖{ nt[O}?t(}3%mFe鼎[>*lvL#>c_2/#q)hX׃#˜_H{^y7wL察[}w0s9ޱuRz.-Ycua_/%#MSDuI/P"_{!TTcrs&C&C_GAv2,/|Ǿ3OTl7!wPKvEO;t9JeG%V֮I͘(NV08X`S_,WG 8KBDG}Ux|P$OŏF (aί=r\93IۓteUUrjk~/?-lF:3Oͽ\>zTLuE.yn>Ph5MAhiS?:Fh?P3HI 4߷(O"posv_3sWP?!}|Hr?hv[+^t}ZZ}4K TQ)NZD>˃$Ev>y~U_ǒ.˟/ %AOX2%>Ԙj͛CMMhBs\>ޟmNce"% = Aq00<4 .ա5Vd/Tx#'y|b<#97#ISk_FѢ.p/ jg}ij( E0LSVm<[R<]&몺eU;6n>'B9  IdcвA@[CmNP˿&iղ b 8DqrQLiM'abҤٴKJ<Eϵ(c!{1#ȵxj)J'X*(L;(s' 'j 8+/'|dGK@"I-up "_/|n.x*#Auw(`>ߙHI4:Dak&X%dex6⑹ޗ4nh^q.ৰ9B9N]К#71\6I{‘փCXaUǴWp ӡ9FlV;aTA@8,\։տ>u vVa) TϟHI솣)ZXܑD}<0WMGQՖ'RU@z7-U6FߵP:lԶbb_*yvaǚUZQW,  k?3T7_I @t|>c^*GVQGPqǩYshJHex/1 zL9h Ƣ+84&jjI8v1O` XvB6zZ:Zԥ. C;w|t ͨ^a _1=Ft*ZK6DNŷްNTHEc=o{{%o1˹~t'2mp@m96PV9i, A;@wb%ˉaq(OFm4} uU9oܷviljx9]߳]tU4S!wbsZ'cfĿE'%r'?YGT@H+mxҔJ7W)i p((MYc8$CʫJd  .:pX'~ }.,%YN0WoE7>km{ J 񲈤$/- }g Q97Ubwo kFif%~gR+ FӷOqkpȮRl/-\mhZ@'fwp54DI Cf1b\On;o<,Ä $^X[\, W|$R݋>*қbgE2P ӔRvTl(%U'&F\ Kb^#BK@Jfz%jV+vj)q0Ğe~\lㆁaAx5gK*]>•D6 Lťd/ׅywnRZs.He|rd s\qZ@:^Q55 szK~ɺt>u&+ o, غ,v7o|as ezѤݍS Z 343St˾6YJ8C'ljƙ1q8XYٍD'_`-iOCvq:}-I:9!yE*&. n%)ˮDMȭښrx##2(&`/i-QSjgNX/zeQ=%|d(L#"˺ T?䶆MMkciT@dV3P35֣;jcHhb%cHCl6f+Fqm{A &*2E"p:UsPEyM6zNc0F>͟%uy2?u׆\H@FBTG, 2 hna0Cɑ +I%a2Kj:Cd#l; r$O !851 -\%{ru9j 97WddH``!ZmhGVTn2YzV[}F# _{g0Uz@O̙OyK)q _d{ ZeY7M@,}g-FmR^OI ja%%]]qͨh?C]f_jIWEAa c k֣ܜn&s h=7> !(G``:Cxa5Wڊ 2.AZ:pt/7{vd:o?#)0$G}8*E>J,](HnOKr;99s~~xVk}{<#R}}rLzG#p~yqAgZhtpɾSAaaA3Mad0XF/XRQD{T7d]e @M7@K(+fz6Pely61?) z1`V{k?㽏{Ǝmʸ 1!z|֢}?ݘJ/o>-S'i)BJ~Xp?G-P9uAM S ...E>Z{fVR\W,uM,TݷvI!X-.fC)7pBӠmg`-p!UF&./s$K(r u4(㷝B:A s,g2O0U6Svi׮'fܸ)K> n߫^!|9'U#-qK=38qӦK)Wq- n.6TMI`"kȜ|OI6N IU4b}W"BT? >yޅlZޓX^hGfv[ڊ yN9欁Z;QxkVŎ}钶 d'?,tw5 XYe~hmC131 Ox)9|_, 7_L!% =$ۼoKYL,+WF?AnقvzG TsB˸!kߛaO*+㲒)$ȑD};!G dyf+v3􄖖骪m۶8[V[](S(jk))4;;tv9:6$JPP3lHjQLuZy]-mmOcRSs4#j|4JQˣ>*HZ;vaT `>>A|{`¢Nؾ}l`E| 7w;{XMװڹ2KbI!4ۄuuܢcGTYiUhCEs7דɘ o..-!m55YMkNgH%70kP'F!.v37#4K9G'3u7%ÇR )|ۚd Bd2)`%%dp}2vEgծGiao߾N!cf n@bVs 7k۲,vv'ẈEyc~h#'9kqeCDֵ7ӎGhvd6{`>)Ly*b b렭ZM`poќ%S$ K5~ u:A4Nq}-!$$7Bd.sxs3بI; |;|<Ɋ43d,Dc`B$ wn!ƀv~_4if[O0©fȭuW Y-;^HXW[;e"MV> _BU,R2^tj@F˹릠 1U o)057w @۲+9q&=N|i|I꯰IԲR&OL6|Bծx3SOjZ0u1;JO=h}ߍLH^r*yDPPJk]^C\ԣ !hٳVVVufKRJdklR9֋.C .`?h#2f*hjIjIv:Bza~ҧ'w1Mk^?))dPv 9We06!taꅝBwi8Z42_9Rr$<~aGҍۈ|2&aN^\%~ *ޫ| \ O:TKlգ@}ȃ^yh6[h҉'6h4(P^QMN&ǞBEN1pyR7}x눙P'BZKrS)7Whos<`2ɡ6ox,1Gݝav|C,IT6vր{+K ʥJjeLbG!RG DZY[^[tzG@ڦmM^h$ez`27$G$[d$-mr} mmۚçmehr/A'NN_TR2 tסU\'=@57jس=A 3{'!ݬhrWemDhUTrPj/pOf,߾v {0w'i/!!RYR"vO'lFet[.>ojyHt}KAs!c]]6ЏI}ӐoY%n#FV/{Pl>zY7dHi7QLp`gܴ2Ed\YM[D!r$ 0T ^ `(גmlC3Oh۸CE((/R7^ƳQC-c MW$^4,W/SκQ1'GlНRSd8͵sxp=O1kf޾,t*c:Ѕ/8?u9Ǻv_A]b///;ƣ#Gpƺmɉd.Ha)&1c{8`%X&1mx iPRY#P[ԠKiKz^l(cږA5SyT">载%GlsޝWǩ#j\,kͲ2ZDzӴIl*Ғ( u|iqҶZ75F7BuP+rY}9B*iPiSS%/dTBDov|g 99Xk15]}&*V=ĥռ=2LA¢ؙ>cb1:?yd[jd8帖Z[:l΁3>P8U)MGao -=aj1ap1̱R0 ) glׯKBx7W4ӨrDO9ZO\B.CCs w6mbnJ[ 75`=J]1,i|^Z"\%|#2G&/Jq`PA; n$Ď,fhP4g9sgc3w#փF /?:Ȫ0ŕ6GV@1]<(!d́'lOCAT6 _  LlqBs|pt/m`yjLx?P-btb _qR2'ez~;_wڥ''i#f11vvixjdÍ}`0 s&qXI1XM<1r`w ! $ 0Q 1ghLj*Ps(caer~L]lrscY Ϯ"T,mK1i=raj3o͍Ȑ5vI\Iv*lf+N1J—~Hqe@2)6;tqE-?҅A.p'5I;]@< 謾|e" ?|`9'v['9zrU%*졖_%}vAz,N\YFc݂Pq Gd?α ݖG" {cԠȧwz=Y@T[$HO> a~mXܱfWͷ{;Ux@BT^ߜϬ'*3 Խv=p`O\7$ Gyr3i3too =?k.!@GzDnn\l0\<㆗{$tf?h!NGLٖ8 ZGIv8e9q@=7cEy!=ILvI <~xwQȩ>3%dW[uq?sp:.u w !S+l#}`)gD6kUƄOy8Zg@FPgh{v`:}Z=EQCf\`Ν;}Gzqk)rii1G-t,ohy~y^5;+s:vZFl ؙZ\pJ,؃ n?wҹ8Fm f}uՍhdR؞onǾ]vPKD1rEi*nuvola/64x64/apps/package_games_arcade.pngUT ^aA?PQux =W P}N:!$$Ȗ Kt2vQ$w\3Ѱ(8t4**: Qp Ո Qe%$?:U_uu}ιs[ȤLEt+!got 9DL@҃A΍"<82J#x>[%!A~AiGA^|V~A +! <|A. sw2N .g 墑bI*#); t:F@ C%p$Mʼ_/s " Dk9oc {/\  "CGNB";҂1H%Qdj˒Esfގy )\zx|Xêx-?XU\7bXZsiO@;$}ƌc4Y¸%) E.>Z{_ƍ{od! r ɲL0|!0I31]\(j>}Owl) {aw}v$k SZ Z?T!lvVS,ΧRZN+d*-|Ǣۧˌؠ%E+h ˈc/omb{8wI!up=fdHG2yF$d$Q< ~=) &6)UO@6ixr̨ݍ'cj%<<xŬx5h|kHe~є>*3W066(|._B #\VQT^#?OYDq=<דO8C;Lfro88i+ sluDJ53p,^Ir<.ϨqNKuuf ]ӆ I0& wgN t.y(a'ڏ'ff8=M:O~n%tt}o _SO,nֻ5koHoVM!na搆ecZ릥j|>rvS d!.,H8j[=9ھ7qf*"JtYCr˞?WԶ$yN2Qy{R5K}'4XM=a<5yY91Lݥ 7$UG+Ӥgw[AMɜ~XsΑ^!|orN0Wn`$ґRElҫŏcnʱW(rroRxzd,!P.fHq#z9gSSaR#.]ڢ1dENLv B+UORG\Ό۸ Qܝ^x`tݿnU-8S$bym}S3e xa~#exsaV1񓼊LVz16o=6 vCLg+)$|s9[Xf* [Jc^2\í^&T֡=3PܑY_{Zt ֝BeX Nfh*X)d+.01 ~XE]zL af !M"J" Yd5JnRMy덻2?3/qB٫ϯFL }$8}A 0M:7e*YfM='Ns`WQ#:p e9]~XnT D,@|e(0s.=u7*Zfa!糕aQOu7e"oV'e~l pA޻zDlW0Jo#s=L^sF>TtUOk]Q8;0e*Z!sqÕϳwSua9ѯyJٿ((oME{Oe*c×}#Ä'V+j;)(y巖{tN'+PvGں濷Fĝ.&A!{=4hEAdVϝK={Ϊ|ȁ%$'vE4 ̭,33dQ{fQW eDa1J6[M5e!yS6KJ}w;~s}]wJXM,Jn[+?9|G Øur|=ѡOĄۑc/Cd7cL,tE&Z#dU#sf޽k<[XP2,暲Tk!/h^zTp ʟرyh/ѹ]0r###<>7yT5՘&Ap PvMG2[*fiF/z.i4:^@8b1_JF)P+WHZ"aC5]a.Zu1]бhGGGѣG=;,|>{/L%@˃:>z MhY zDd%LI,!6 cʄ&ٸqW NUFƳdіՠ`~oo )DaC+i0ۛcoj25# [6s8nğF6! ! _;=nW]Qa%ww VPn)eq'LBlӨusLDCCogڬW0ɻQEI`aU~1D"eQVA{;Ά|n@c0[,|`C] u. k=( d tb:SSҺFFF}ŁTP̋,XM/LY4mŋA7fDp<.񧲦L@uk.7QI{>FoJ.Ô;u<# TؗZ͈~ 7o Neܱ+لw3E>SоpEuT©".-|dL$S5T D{$DS;SR4 e"ה @17 WGGdZt`(xic28l?[l KIfQ%J0,2[}@7{aTP!G&O 8Lvڪ6qE@S!^ |7L1nEȃkv oVFȪg /۩F.ahN%ٛgd˦YOxclCdZr(O|N8TKDFj8N/\N91#nC{¾bp1f!GG&FFC8-]5˗Qn%/NLQ*mIc޽CuCneԯMNobMՔqoBiAɏUp4zE (}CjZ\>_UP2cYKK@W:h%%%m(}}Ys0>ܽu+[ i[64{˗i+ZUʥNJ6|B+܍:f!gO,-:x+09[ԴUFB!/3"6 ^@C]ߟ XNfQةʇ "17;:jcaI/ciYN-*V ݫQѽ|Q 3F j=GSUV%Oy 7HQ$82Y,G$lA"\ߢ_ysytuE|q|#E:.`XMu簑q_Y0EndJ{G |bX`ߺmiy(it˘2 [ Uy(FqȿxET.ODFNWthfHA8'+Vu~?5>`:Ngv2>q"feRPVn8+F&z55UVU~8[kXSQϳ5q.֜ QGd1, jH3qt\qJ{=Q˲Ҍ r.S k35|Clȣ"gN5.luG-p+9f~,hJ'ѮV2u5ؾɨYLK7k^hFe _QYu(u }F" qidWoy/gHܨ&TsH p v r/ch_#[a~/L PxSՑ++9>Uw*[H$GN[6ύⷁ9R4 ٿy^D-Rٟ?]|7oshL7@ld+"0y\VX3BPۥGk+Wp6g m_OɶXׯ_7.s;,7"a%(>%%XzwtPM[،vc|0G.7v $r 8V|(ZdffۡLr[*PIj`[Vǘ=JԷȿa*y|r&vJ0(h7EEhKR3},dQA9t*a6Foе[gZ"e+2AdQؗ\}gI9;&t=GoMhCy9o.\dpgmSbˋFF-!_t4fo3-xMFjc>M!gAd\"L+aCϥ}EH y95$s'+++[_@?g@ˁ9|yأ@ s@ l>m}Ryuw<򓅌 7v]`>Phnoo(OD\/Bt\W>&&Jߥ5 C:) ¥"#唪OyXX%t!*gvӄ-Ei|*Tf,L ω{kPDaIJsc*>;=|.K\P9v 5Zh xv {hh:?uѾw\t-9c)I 1^s뜀NJ`K措h&@[Y?=6rͯ{]Nmc̔u:OU-):N*|]tz156R)_M oO3,t<8`V4~+VĴCuM{lk3&]NV| BϢRSi\k 46,MEd要gO(|vv&t˻VHcO*L:!/ZhܜBɒ.?GK; zȘ؆Y 07+1G+v[#qH~Ņ2ϻn@h(Vav'H踗w2P[*ߨzڣ|{p3Ӧᥲ-;0QrNy>!!CGYK E9ǏňkIC1<}E,L] =I[_U$$)у]7P+9C5vr?jm{ḭk@G鏊8~bҪ8:x승"ongޟWo"G=RI{o!m: AsFۜqǙZZ$®GE'S}j EjDUܖ6xʳ@-R/]FUKXșo@ m^-+}m6ÔOQ;ĕISL܅٠ph/LDDXnۻ]]Wk5< f] E縚zddްaMܿ?8!fd6Nd}DIJѩI/+w skZK6ؓ'0pBdk?,]u6j"hω2VkvtV ϭKOv^Usjooʘί C<%Dqᴗg>_߅4@>Z=ƚz8TAX7<#Y~Eu<׳gёlOwbVYk+rl)~%.뾍84G,;-@<)kTG'!Λ#&XJw\ b&l>9eݞq ȨL}d}UFv&4sV3 a [\垦!> rv8 /;+񕢔ݚ.]{Kӓ%vhps`z}NqM E(v}! ñ1R=˭\hg3ho+5gOhduh5ת?FsFF1NM(y F E )෈@_'Q*m ,ʗa[ׯWw#R^Y3FOaNA_1դXHTZz[]Vʘ2)Jrgz TiHABFǗ+oT0.|lhL] ^%KَKώy1WH1B>&;YUg\Ba|KK@Ȋl A)SR憾^0X>U؉I`$?Hej6CۗpϦx^pV;!9T51pc4])zxDiE3Gݘ읜CHɵ0Wm. _z~2΢ʱJp ¢Ȫ36V~1Lc {,8. Z8':e2l|OSCx#b8h2,%`*زLYc[JކۦH(l` )1w-6##T  No_c2O=7#ѓ aGwGVpvAKLJ=؟![ohqfZ' = ,[T28) 4nW{ :܅$Z =յH,DqAl<#*5CR7kmiU0~ainVeu|̞s.fddmei,'FFY(KH 677?U eD 8jقz˫A6nu.d:;a@ 0k3]|O0*}{ gU=,dөUx+Ԁwik{Vg=ԩOȇpb ، s3*c@lf} v.$Oϻ:]7.o@$[[#'P>EmPa$QνLbLAF%n) GY h97_\.j!&QXNHkJ}8|%љ7ӿlơ[ XJn}Ȥ`Ol|[5>PH";z1SA-)ȉ/đEٖ¹XWNjXcı>( % y {;#K<~8g't%5k3 f=eT.OGEE!-k$tskZ\(p4eOh.7ig*";.CEqzTπp&sXg8  D&VH6?dnL`gv@|E:'tn&D(=z9ɹ =-~9h AZ%@sÑVʻ}4xӟ-z"<6i-9;?tVܫA&f6?ؑl):;#7To@_ )6y'X+R뒋?p~0uƃgcu;y~j5L0(@رWXf84 ~zyu Gz8>~niy鮹נ-[͸g@.$n؀;[htN*u bhO}C"Fңw# --n狳;; qt'89/}jLF\+u9nS!#IF.YKG^wr0En>6Ȣ '5"2owY0k 5nrH_1cX"XV"d4jpELJ6648KxQ?h2; %VC8+5k`|O [8QiJ5uqe'c}5I`rf}^a5 [QR2rؘYL\%r5:cM-'$TUWl ֳ) 99`+68 rC0,^yI1q ѩc#5󤢁D7p8,Ӣ_˜X[Xv+g޹+i(*O`GST#,IϒfC}p0etW'sH9T-dΡдFy17Y>>?>U\Z7Ƥ-фdŎF6ج0r ks"Nvyԗ]9.Bz-,MSM9o8CA]u"1@ 4,^zJ vǹػG^qGb,"S9n!2 Ƥzjxf 7vl)|/fO0:ƹHQ=rVxV?Jj nȸ< N|Ba6~N[vK[_6Ssݮ8b;1`!5TD(6 6i uaHhvz8yڬu9ft@.@~x`7E3`pW#1k4;71wŤ; rUa؉Q)ӧ4orhhs%+*Z7u?^&0~zA+`MҲ<]N9o;_zŸX7 (wrkfH~qIe`dt'9Pw7Z8EyE/"1۶ܭ"@4ha"JKE᫦晅ά&K3AgQ9 ʥzm^FBEBC؍n]Z,x&Ӷ^9(-QЕw Q_;?3UǦ.6u'I$ XL^ZC Kir}bL8Xw,]P(*Tz9,ʨ&C2Cf7׫r8wP}>IvBrIdw>(6DH$͍X&~ C)OKHc0NO$`'iWxLpKœ2=w-iNVXopz|Uq|J?NQrBlvM8/e2mzB]#l5DT1|~ h# DL NPf|辧nc3OPUB(KMдɾvk(ۣcqOe [ u*X f-ގiɼ-/ZE}&D;E3GLͫpZ&u /!i}SO 6fSC4iRDhg|멭}dT|?b.7}.Pghl.rՕEC==V]x^}nt Wk)\ɘ,RR0nF[yCAtޯ2sX7K< $L.ƛv fڍ>i4:t_c17.rR/~axf!k守xw'#R9䦧׫ھ 慻t!4ڧ G\\̫Ke*B$4eº WTF5ޓ/k\9dar ֙/lM] 5,4+4'6DJ,fʽ-0ckaRz͑+YinɷZ{n0s3%B'"{j Vaq&vnv=yG/2ܯ&!<yͬ:L FɃ ť}#T۠zx14LY歭sMQ-fz+W/?:3\!?55F^Ze^Z[׊Jģ>~նu?{_vcv5,IwLz5 }K_ȃbEU>c>OFB% \Ud^ԡx'y]~AA:dgs 쁘RSH9-kVm|2KPZ*wt2>& NDN4)?m`>k:>İbIp-k{_Z dQ ;|6tڲ#zY/LpҶ¼K8 <OZWL}8$xeシ ?j{Gg0y:PPeC,Ưt#M`AXrĹJ£_oxLZ\X/k16J _=0s/ <IL倔TX iyBToWS{q:ﴲ}%[HGC/[QC6Z{60hYAb.x뀀O Geu>v7c]-S¦R'B]ii6ztʷ8It b>cUNt|DqkzW k_QoÌ tEߙ5G ?˼؄Zt#E܊Ȟ_C!Tt($D`pJP>wU`$^d_OںؤRlK2Ǖ(E:BBڸrѹOcl[K\} Z"7BAF+7RMyXg3Pw᭔ѩT|VA.:Ri S LEz/wMC|O7Me[g! Ϫ0)BVEqNu+Z?Jc욖txOƼ0J;FNAQi;ά'~[|ۡS >R|t~%xVaA2,ɣ) Bv+,O]W!uYYN_0NaܹfTV/YNX2?ƧSmyr2+#aa@>"er8m:`>㈙vv֕{; lyqoi$ʛŠ$ɺJp>)\(6$$=AiUhz2u %82 dX¦Ӈ5`aJ!`{M:~ 4;7E2&ޢjc5_5,"H8($A.UPzJ}@s:LkanoEp"*6U21!w7bWth~fr})OG y()o o6=;K."Z817P= GpT׷6̃V &7e_Pjv♋KƗQMqKv[MsfVs=]۸f4䙱7 =Gpr;ÜmJb^T{MCᝃį,w5;?r @suEp TT|Z8$i&ssIhm{,L;06&͉ĞuN|LM _sRlhJtfT[(bL lyNF`hjJ}gM*Nd8y]ن=EXо"<'kI{n9 H(NR$->s E<2:vY">䢅>HEM?F#rR+No-5!PJpz[nJ"Mg)YMw<]苞>}/^O3@1ӻ~3[ }{y%a{hTyKחpӯ/ bxd^,1'svVO쬧濶va7YnΏG\AiW&ۛvb"D?cpL%0IM4x}mWKOIKKL? pyTE9`L{돁V`pL oT -5)>wLۧ|Dŝz[85$[T=(䑓 ^6uPH+}a0kx_T*%]<])M%}xR2ʫLH\T]*:6%.Y23,|~k(gj%"3 {/<)e荰cSxgP; [*E !V`ylx#{,_aπSW3+ jS."b'5o,5э_SK\ht< S`KZT*.Kvv'Ĵ#@>)̏fXfxh{voóL,CBcMIq{Ko 9 1Ĉ B14{{'̫rR\(($2=d- gF!x[1;4e~bGGXmၡlM*5&Q(MҲDGшs}{xkBZcPGk|}95Eiج"1WR,¿jAaEsV>f ia`"+RC@?ޫͷ%[cS.Of,*EgU@a['2i0V8+wx>05I]isW27-!8͋Z5IjJU/_)$wW]w J#Ǧ @t?5<~)sKY8hI`sc$۹p[gHl`q2R_^(ĦpnQz/#ɲXwV*ب PPyg˗ci]v\Sq-YnEEdrC^{f#" ԩ;t+r U,#33ЦvDM~{פhJIF;>CK>u@f ;x!9&P 'Y65h&X`gB.?d. اHb9\QwE7RQ`FPOWBC+WF qSe7SѩZAhf3on3n +{Iw_/ε)娶ᴩ/&$n$D5 ѣ.ˀKLvzz:t/ .(=7dby.k] ;uSi,4Sh`Çp lݻW.Le|a6:[=OP*6^]mq#G *!d Dz 2Z~Y#_v LGjkmQK3$_Uwj|]Zq|ߩam8NzӡdMGD9S>>$z};%lQ#`l%$א{ s7 -fxP̷k[&I*뎞85g7 oߗZz=8SeWCsX|R5u}k8T.ʈ W>, ""zǔ~쭇)$QǦפ&>Mxsנ4VZ3!ַn}Q*ggqũڋJt? ;%eK>:D" ߽㽯n9Lx? =ru jeu+\m0~m{aݛx\l!VeFog:|sвC {vBƦnLIc^E)ıJ[CƩ UJ |s, [[[ij8kp'N@o.jVTqO^B@tF+~U5rw KD"*:=dCtYG4{z{5Q(ּZ|cØЛ,y5Z\F4=MB|cLxV癴5GJY\ST]? vj1hP$H]{_c‘|~|O$zymQЩh5=_717AopaV䟺z{;hNnǹǏ;'[I{rOݲŠ0"=ύ -峛Jд[w]g\\M)a;@~Y<1))'XT'зKmCwlHl, Hni1y Q+9;_07tQ{Zh(<W qf#lu[k4=t*lEj-֔YYǓBD?ÏӁ`IJƲ>m>hȟ,lRwO5<=^PW%MgyfeWǛ絚@X 1)UWsJ,+B@)<B8l n[e,P*;؎&{@viPHhs]5m)|ni6_@,`=B XDjKYw$Ш o}+V/jӛ$y`uMͭ円t\;a~$Bw6^{Hrܴ54T~#ɷ@y؄{Ҳ*GfLYqJ:"ދCPBxOV Q}g( ,kD`!ʩ[ToZ#/'oow -4Q0 {z/tv"8̉FPub6}]M 1Gms #T9S jͶ !BhG!5Rb"ғ nѕ+99!q3c؛4 ^|΃IRwٓ-m~ P yO,xVܒ:SX9e1hlzL)UIfD'Firb xcoܝX:mTkKfv㌜`]Tv)@8zs(Έ@?Z^ڥN+bFcxwΦ}W+++ƫGvB ɓ/ aAFn&[%r,dIGZй΁qn_[9bG[ތU0,<h暆 ,pZ >1Wͻƪֆ]n#fۗi':uzժ{WCOoiZ~9xJUG2?_4iD"ݻ,F[.i9fx|ew`a(~ ?:[¯v]=5mQÎ;^A}PA5N::q[8P\L pG'0t5 r 1D w\_Fv.]c$t?}@2x7yUjxOݺ^QCyT˳ 5Ƅ'_P{phOc/fDtk%YZ&?UWkk쎩I;)| +J1R+Bȭ==͚#;;CQmnyjڤRmRWr(>9Tя]pIpd)URZ:-6 @._=Vˤ:C*ߓvL2p-܂4AvG N +7yuLL̎`́;rp<F$ӕI _߸n%.m% @o]h iaBeȉ?#5YCLe?sd5N=j?oP\,tq6-S@ C P@oj܃:>nN=|f忩}XqLXė =iX``/`x8ͲPbv'N=9_hev3e75$J`kK9Y z+W 9<,F!S ʘsKy(qjkgg 5)Hsʳd(isZLW?/-%8qj. Mig (Y6RYoAJjP 9~qaRvp.xP'oos`f/܈JT C65b:)Xl qr|x].@>xg(sM\V~3+ xe V鍇=\-yx=^׋|~Sq|v :ř3avJGƢɠ:":g z&/gN=A*ũx#BF&9"9L= c^ܣ$m)~Țf>dCz]%(l4ɥ'&Cϧe ﻘmi[-sy2dC5dX-}ykZ{ ڈr:daAn G6p)эe-|S< j[ bM]"nw;]XDW(]@SvH@ D%SE!ET$_ )őJͱcT/'D;xghDdK+L/5D_U4IcWf*w(FЅ9lwˣepŋd}YBkY ki4;FPҸņʂ8O' =^}FľXX`;7?>x5E= 6M }{qwδϭ\Y )&T(*Pj.[@CqIIsuQKRĒmLx̟I! 9ٗgZEpm&{^d{s2aFpV4c){/YyeלDu/=r 3edoC\UYN]-},̪d8tјX ?/5ۈ c lAzLV(`Qd$Kg;dea=Y+K=0@ U̡ ϊ= )hF< }=b5{ |]-Ù%`GƅD6:1P/G6̀,._.{w]yb]F$}/ S'T6hݧ*qdd<̭Ձ8%m(ω!2"r?1L.'%p?ڎuNe,k?F$!"r8%{3߯<&㚨t7 蘄sTkX>1+ٯV8; YWydiجЮyGyބ|F?TyeA'u"VKN3V!pL*|Pk!&әo^^]_y'6m(`4Th*0x-_zqMMsÐIҥb2'1*ǀY~PcTO(+],o5|5lɓҁYb,T#,XGyم[_ԴH:iԐ$'M/O8-FiRϫZKagx99}t~"qn@D]'"9bJtXȂX!V9'վz6>-m{qC姎ax5{pU!"1ermt.azNCfJ}U s}7'`U=@80{Y;^nGw;']WWp[t[PP,)to>d"2 0lҵ;XCR۷S 2뎷oO>V5"p`+<=҅2G$gJ XJs߾UF~YB"Yv캨bxL'&[.P NB[)PY}zk{} (& 1R) p^̋Y;6cp]_cXOr4[6~)S{ϦftXAxڙ;SK,,Gjk/О g4֦4-;ݜ q,!yK88 P;̕PKD1"a %nuvola/64x64/apps/package_network.pngUT 2^aA?PQux %Y{<^z^z::Zefg]Zރg6lk ]p'~|f~$.P \w ("lKXPhWan`ink[`50^ @1*в4շ>iPXJ9xT ;!'kwsG6K" .t >6r4M+eτ@-iC>`09Q0hi0:wf/s~weB-Im`RBz3AJU+@HVDc͇h?{XqT7=@Wnok ꥬW5qV?A}pPyn|'J9U@0jhTJ.jMjd'ؿ#Və"HΓeaDWor NTe.J8Pd䣾ICSmhͣСCj'3meϔժQ?lը1FNJaiH icCiӦ? 8YA&(b}i.>U< Pޜl(!ܞCfZhFI8("(<E%m172;jiaD`fi!ȁZ"U)q\r84OYy Xrom?2uf41N1^FҨq7Bk ^\a\(ceڊ?FtwYE]`!^%?xwZ"E In3c 9uP''֭LXXruS,AV{NJ NF^/f7b@JxJL癉A17oAXiTa!*ME =V`&)B˶{3FUPByG[` >^e9?53 ާ%NjtZ[g^`ZG.xBNgEk+8F roddXgJNk^B$w UEx/ݐShUF6{,;q/J*ھyݝ}㉎ʒ@V jFJ>޹s#_) mBFہ Vv_DD3lٰX8TEK"a]D珹 g: M'?0ܻP[LgoUtEu$8zh̦E1:TZ2C8Ϙ:Y9Ac7`%8F?(Atj2N>`m>e#bMYv%fVe=CG:briV6u)fvLMTpM lzz#$ mOx;\ESVީq̅/Y,RzLF҆7 xlLs8lYEZ{C}+)S=+X$կr5XwDa=Dv>4$,?="# ,ګ_q&PZS?M\ZLQ.€6J'2ڎtٷaW`v~RtL!nEI>l|Wt GGs2ѺGh$UMz#y!͎ђI9WŒkCi]!Iֶ=fEkRǒi ^r'5x=$LpUi6_CinQvԱ,JQ ~C/1 :/ },l#J@rvTĥ`KH^M|h:2\e׺?G aBN% |A)N~5@=A^'Li1*S\HOI_P#DM.wX5#M7\z U9c6,FIO=lH&IܦsXk^pY\o!U%e@nrcEm_-Į]U>g($tv}S{̜ZG\y&iwKȡHs6Z.,^ȔI[w,$ r15%AsEȃSӣ'f.TTFFKj<ůcA{3>''u93GU4bK-^!:ĩ xcl>B5G9Мz0/z_T=π~>GC+RMcbOXǩ$}-L})}oeݢV( V&>*"#5Bиuk>'γ吙`pmڭ,O*V3hb[htQ@ϤeAaY/Wnnn}ЯS!0zdJ[kr\]wVIW7o[(zŏߞEطR_LtLѧu y+f!OBͿy'˯TxЦ⯍0$=G3}T _9i P1p` 1-=׆oPoyKm+1dm%sosJɃs '~5{ DnDZktQB`udPFƌ* Lrӯ;o}~(_ǍwOB' ݃.xv-7iVN }&ܲmUTƩ5Ub!Z%+ SCA!ekX9 ,!>FC*|vifVX&Lx l$V!:g1.}W[P1G\?9_#e! %SBGYB" I!CVr#"AKs*p41qRyܹSۛ%9{rkykU\ٳK.y=nr'3K!Vl!-!8 yJ!UĝIghAwHT Nc&ZA.b k/n aԣQy)(P-'䕻ȏ\T`K-zyg l({[ɖ*SA0N$qPpQoa*5Of> Wt3͘]g9d[)/z@=*KC%%ϕ>kQ()vyǠ V,?L_zY!G wD(kj͈g!=#m=Kixdv1ѝJgpA1-9e3iw|)=Qy5"1N~ "e} J ti_!Tc [Gr34܅c5ƫ& 3+w8|H:փ5e8Ng#vΓwӟ;B'ii[ 8Tĩs.WqQLfi^M^3i58<nCҚ7& \~C9C+]Pq>mk۔&w!AD`mctO((E2碨ﭯw f%%~`UZ7%aQlp3;7=ωBѵfae@WM 0ܸ_3ܷzdc;6r"DsKxzsD#65jG}mtj6DJ.nJ:tg,ߟNE nF0m]]eӤSd !Pp̻t@A_D sQdܝaEzì(yZ?Cn5s3kkGi/m& _ yК7 jrHٴ7eϹ7%wL7M>\SźDӞzHktx B.92R}EbΝ:T=q,^yZDO.dfC7c+z*. 87յY3)8?[LJkh75^)A:\ߧ/s%k"9eo8Ԥ ]=-o!=W)/-sxpKoڕ"-@t/J8@N0!7P)҃qp4O{ m lbƞ]7% aZo)4LOwL ~\V%i0ޥ =YyGeFI!>(t94V Ogfn9<_H7$lW; #O+Ufjy 8GhWTvbY;eހԬ6_~{B. +mCMz(9)M`\fFkWJy=\oJlc 3ҶぴD%vF$&bF_3X k \Nԧy\WS+P̻޼]h>9|uEgi g\ 'HwKx8ݵd}l4+AT-{sHiL=<?am bYGy'_A8OD7X5fʄ&\#^5UJι/hQ)9`vQ|xĝ\-ܽ)s<{$W?voLM[0Q0}/^<_`]qJCzk.j] eMQ\c.wYer<:*>% qiۏc|f WX|'=UzKѺv\bA]@gٌ?X"s\ަ 6w-yfj4"n':`..ZTG?L)Ѧ2_2 ɚR Swm˸rdj3o'BnLz . MCD61Gz6L^T [zwUN96k}2Ro7k㘂nzi/ 5Qcx=$%`aqplwj۝$;8IEp%d) SA Ss{RUDՋm; F?/_K^U'?XN:'tmIoXȶѮW ޠ7/##N}r=: FriֵWʺUێWHVKwy: 3S3؀6 CUw

        Nal 1>]C?i˘Xj'A;cp*~-:Ltm"1n~סc+CM"깃2#|o:V;=}Q/gWmB=k_;S/ʠˤZCg F9K.Rc4L VS~bEr2O 905$@ s]W\.r14 ggUaZ.u?QG.9e iyI4pJƶWSпŊο=4Kc4o#x"izApb/G}NeQzҷDD*kP{9kBȻCZIvQ-3bj1媯s7W|V&sH);0T-h\1Hd.T|~!%+u'Upfutڝ'g['VG㞘ayp?ArU #NyBi6]_mP otq cm.=9 6-ty;&+$ߟ1s0ѕ_:9 BU\Ͼ~2nZx{G̘!F/?>!췑>@X5$Pe?2B5"#:[%3x-1uڂh M*FӺUpgG:yTˁ.mqG?iŝ37bad.ܹOrlAp^EXf K{I9txY2ݠTH];<&)W&y*U19U\9\ `KGB#+kt (B D8RյJZ#'~:hz;teVؿaRȷd9` NUᏜ*Ҿ;wJ*++?^5K!3}{cKN :PÑ3Uz‚_#XT{*b)'p{30[y=O8PKD1ã"k#&nuvola/64x64/apps/package_settings.pngUT :^aAAPQux %xy\B`VVTZ.'K[)V+XZfq');eaYHdj<3s}]L.YɞVncę FWG ;<1lAs:$*`DHxҙ7X۳pP-ĻQF(@AyyNN7n|֯@΂tQO" RO?y7Q$aDի*O'32 X=RfƗa 174=4tk>M@"3jA/*KjrzgO,2g;VmxxuhBԨ<>0m~3$j].Dߓ7lۖҗ-Uo:_x1*Ư^:(dAO$Ԇ r?6US{{)k\T =Kd,Y"9O ٰ֯A^:~Npjj-XTwpxhW\[b%wFw*禭 jmMt(,7veG|hm/b2uZPcˏ8s֙F kI$R@@Fܹw--e˻$n /jfř؇@ [>Z3_TT;զg p;qRSާgq.is5Vy`0ʯ_$~' jDFQWlxj\fS_ ˳Va̺g>{puweHA"E aqp쫘!v%< CÚ f #'C?jLZ=y@^WȹdF)wR|uccOܯbo[s`SFv^7/F7t|!6sG֖kb iuqv-IV=QȭCPƔ={ 믈Չ+'=^4ϥ2XX𻀵ҞuC!Jdpj#V8&+bV"~Xԟ8C6t;>rs;:ftV;ޡ\D"~svk3C^cR ke2oOe/٣y TMz@NyXYx\ء695"~l*AwaJl Syaac.))\;WڹFQsb%6vcRVK~2sGoEEݮ11:M#ʦ@7e/hl,C5 )>Y=ܖ^^DP5;i@;p84Jw b>3\~0mW $7}S&gs]'abH*]jNf?|RwIR ϺGt5Ă 'J14Į98Bdnn ]Clsg}Ǯl,"]ޜooTj ƌ S̄|Q=u2JHh#:djl>O)FF3 |w+vIr"{BHKWW@oWwQ~z: |ba](rX<h}YEf L%lp]&TOJ?PnTHLy3ޕ~oeiLݒ2^"tO Ol!+솹_ߋ8$H\i>;c1=ۢN;Qm1짚B,EL^f5:\jR5J06ш&iAOTރ_ߛ #)nl$O;/=]ʖ5QH`hGCKi赚~$3eh 4c׳q8ggg>pe=2gu^A){@bM/Ҁv*ZqmH< Է%R]cl'^gW=us*bUtm[4 djlF>bS /72"R3n_}"h=UnNp~7gg,ԼGޙ :tzC+nC/q,{R<+W_r4[d'E=UpfFa!>MbyXPNf5$ [RS1?oc.eWwZ u(xR;. [x_Mɵf2lLw} vƲO{^] ljK_,*dGElYwR,у&G+۔v @-@dp/g)8=SAzf&dgɰ+HL -._HZ!F/ܨTuڹcCfz@58IN[\XDzO@6МIiZ #z_/l9Tv{f+S{U>CXg*{=!]ڪۿpO%v G<<eFODn]S3$EE@$qF: ۔F[PD-Z@E¬B= uVQ+g}l`[o0i!sIIXr4'HNzT E!xryXum:Wf㸡`~A8i=-*ׯ7X@M8BT\2~x ݴO_M4@ ܐ͍-J]R2 icSDpo&$eql>l" 2o :1m'uqrHly<6#o@&;U3$b̄# s.QE: ^+` ZV'Q,B[7Zlnp{iZ3i'mt  Lˣ_̢nɃ"T9NnFcs#mokU4'7#>6ii男їGl1 @THhM- m⚎nZ.YGPuOk. *oTVOkyI6LXd׽C n\g8?3Qd]# ( }s BA<=Ć̸#GaojuۧKd*"ڹ1S-pL1r۞`?}y>H cGLeUkQ ai`ι\(#@ސagЭ;}<-ہ 3X 87TS^5gfNSwHYq8e95ΓA{#|d+ɥyl6M1b\ŕs&APFOlRM|[](md-}T  Q!V8셂`Uȑ{k"lmk"X;MQΠNܭY}M9k[R9@TҔT 䬶5|;${iuG{e tg%!0V|:eUȞc7v RwA9rG58ek.^r,,DM8vZ})joU*:hR);_NѸwݼ޼A*uVW)/F{P``1pN.WʱʻF)IM{ZO٣32NdːOg+ndU2(k:2Pݒc &ZxNׄD"nPWK,Jq,f } JO~ YT]𹞆8z%4IH$Z{0n)Zϝ-3>H;,^9K\jm{w4 <. NS ?9/d ʄћ0P[j*SnvkUq^3 W3@bd$AsRE}V`7Y54Źt-k }ʮwR;yLs%7Cg Θ7kr}FhzOlU=!(SQmz DME\M{p]&ɔ ) g !zGNﲅk ?BWP[/El=##'6-5<όY NuixGNU:iU usFfaӫ鈆?q'N5C~d$҅-b,5GUp1' ;HX=6L^$Qʜ1J zfVɏh,)Cȅȝ-RJ`2se>s.-OG0r,#Fo02z_ AAL _<гz$LR<bwDiLmF*J7-gk*G>=SIF WNW(98_Y5 JH&q:(y"|klZ蘭oRN Ca}oWoڲ b<;5DMT kx6%nWzR!cH}gly͢ע?F-rV0vOiuR KqO6߾) Wk~Lc 3G ݣnBQ(B)NI!F' )E͋b bs2y˺`Yh gQyl6 I}̣ \ _VgtQ*յKx̿.mS .V.~?]jV楐7˓@-z%T.f<ϥ+ ` @4{ШSG,P bc>Bmcbf_4fo׎MתT׬>AҸ UIILj|[7Ո Ŀpb;S xބM7%kYLm"oإb/c^^ɝr-y7bl!yEb{2jq{U_𩧬NZ4 G A_KvKthB2*'%,0a_jwng;G;U I7BZxT}l-[]2AbjZOʛX.c9|2jS۶ENOaF[CJ(CGJY` \i`tSm,$X0g3ZOS䦡9VQDL<@ <׽Ri$k6\ * iiX,@t4^fGӇ}| ɃWX '-2uMY fG3YhQԹ6_O~G<6(xu=+̆):AEsaJu"[1RұqsqGtnr`iÏ9#? <%ڕI 7^8FC C{zG3MaN)kάL֬ PL\4NY1*XWY5EҰ'YPєy̸ƞn0\u]ES8ƨАyP!jjkbFw Caa#f?\{T`/I.:)?.zO-CR&")@pNg%eKĺeG v1(296;z [1?%`^x- g^cR]|'X!~#> a8DX8tg$7Pghxؽ)ST Gl, qʈ}3`ՒϟEs:U@{A6v7?M/&# D:`/jz4 *eu76ge+ij`mK6&+shmc0yi_!ǜd 0bSCл!KS/Gح\ݛYI}-/.BTFnFXrͦ|b<(=W#}MlB`+% 7_Mتihg !Br?j0/9 q9/ }N)er =LOq+MK  lXM/oTNwβ@xi /RtSZ E[eOH?Q?9֣߉:nb LUX2,pzXyHZ|:m)Zק+@|.A?Fꐸ+%YR(F1?e(c+U;>6Kec]Rfѽ #B*/HQS@QRH@P-|\k`LD3q6Uݓ1n{I2c~4Bܢ>-\V8775 Mb>aӻeP,*AvŒGrJ_|1VDIMg sDD ]FE*Gm8:h/^:+. u&61$S^ 9N~SW)Ձo ?9=/dw֫{`H%`XԁPF|ysI'd^,gGVe.3B\f邅zMXtuw|E\JUÅ5JRw5l+DNGjV AX/1&WPR11Ð0,(}K!Yᇗ7[ԖVՑe?^I7lWY0׹k-' sq.,ѭ Y?^aABPQux gTk'2&E$R V,bUPL ((*`ع^b$T+ *HKBB߬559{魥aϖ{T+ϩV]7Z;<urSɽ1'Ba1pѐ=!aZs_(-hV_OQ RP.!,62Nfj˅o(mK9U3lLL)sP'܎GW88i7ݙw.Y4%q{HDM/ʤshp$,A+.jZ.ENR=Q~Fӑ̵=族k- tkK.uSBC xM,{TZ |ip *#{+N%._>w<400o5mYZ[o9գM{ ɛy-`D#;4c=LrĠnK(+ &KkhjwA﮸%6`'HP-LWo(L(T@%*d3X(mK5룩 ?(9B SY ʳ/ ^i9=9<p^]6|ZM&yGj hfu~:WȬF~;f %y. ak&T٫!/uy'P-GbC>utZ25ÄYƖةui 46WΘDDmqtH +&H1Hx !X_hV1G ֦ćml-`m1@"w+,,Oj 72}P(8#&'94ڵhO֔:Zqϣb5ivpMdzյ2G$|V{>s=bK-ZܖU UKVL-y7EFqu9gq8 sz(;0˭T7"9z?p?Ǵ+m~XiɷdkعScN`9=3Js+@xxM'! (^Oi[EEn:uC,6ZĉEur%(F*ʻ*4r f#FC}}Tك G|1 -L/頦NtP5v$vݵ"76G-6YT_CVǖvJ1]$uev@^RRf?,ӕ3R*{zR \i^v u-M+n>MN5 Ya*dX1 >~ò6P Nrr_8],}qongxH #J (+%~{I۷5ʜRwj4O$w_\RݿWDVWJho= ;YN''(g ;n.&fÙV܈vGlWG1?>Vo]V*Y2~C˗#`Y|᮸dCDʹd#lwq8- ~fMjtupa%j'J;ђeþ/B"\-ؙF?i^"ա U/wS;_Qe- ~z)`~$Ӕ@N~ 3bf*j%c5%8ꎉbnAHd3KZC/JW,C&R4ޛy&t?>юEħR/3KG2Z+Ĭ2Q{ j6+wyvܠᡃݼ::ΖFl:΢Ĺ-DI3o=Y;eۿq}UQNVb!5UOe}iZwϵ9Kv $+47r ԃЌ^`+K[%Fi4BEw{k9QlZQڝT87]1ʏ&=rCݧ\\wijґ`6[aձSzjֻ6/|80`$aT{ZsK;,l+9iguk8 c`4I#ҙhmUS>%}:yZ͛ϭK$qMܩJAs#Q::u̙b8&>" :+I n$^9BxTedfdp%#r^ǟSXZg5 SؒXD:9<Ac7xE“8g=rZ 0o%Se5ڪ@[V˽ tk L #hB|Z.cMg/oަo\[T#(gL99ԋ 퉋ҽh0@'We0`*%B!2Gh D]~ ‡(r=o[uԋۮ*[xXGu/t'HKa4+82ϲ"p)x^ UaUuρ}.l.#֨Əw+`/PI?jDJ^7M^*PzOU2֢h^~LlȘO9 9* :Fj-؞aCc4H+:cv+X;y/Z/(b}|nxʿq5u$򿤣 XFq_UX~9%%2ʃBKn h;o3"1E>(폯waǿX$^ £33}XyR,(YM$ ߀׭;HKC"c'/KOQ\)&\8HHj }>Eg-p`i0<^^swjrN<\N۶gN$k\xڅZtso SIZlęfC\ wni n^/'m,,yrYk3?ZbE-xQn1\-9)~%R33rhf̞QuFחe*O} To YXK|^Xh%GE֧X#MV6 4Z.kcȂ|>O|>:?fh  TSSzչ%n_Ӗ$T{XfT" '3Tը+>T^zJi9lo#Af(m۷;=FNHܝ)+yg{;?w;i86񩆭|{ǪjI#cu|``<'Y2X'/,NuS͑' ^2l$Pj`zE܏XEzylʕ>yktnu=WCߗjl& R#PRM,[8z/'bÖA5K@ךeGux]bBvJ̚٦v4V1UEc?CЕ?9LSSpP@ kY%D*8Fu{ivWxrEYゆYdBwTxmܾqţ< &($Sҕ)}^). # tx45J6%yS(iU!\IܰQ?C54䀻(G4Ws;ب _i3]FR>0YdsMuTaXMJC]G약O}Ey3/E*7pzzxRFryTˑfe렄Zogݒ2~T/EXcuSo_ebMgVd# +D=  9e`q_n:}גxs˔W+y1NHMu"UOoyv;Ql w fy˹+;x'qX -D+[ΦM أJł5̃oƀ vv*uWv[t,e:kn0|vpxJ]w.&?, bpl Y/XYjZ 2i5fX+SJAbuv [{*2jNM RW') Q\m%#{ >9 bEx̞e%LQ0eE,-6Bwir;)?:˿b_^w]:d渧oMAT4t*pad^>yZ4shVƉ4^(R&r˦G?t^#ꃢ :Toks]A'Amř 4:R رY|uӿ?760Ǩ fs*LI:##nx^Q8;{>bQ(2+ѼV LQCdRcM S6x %%Q"d\8z6OA05; -#cOr$xDc4]00I\~OʕDoDf[T5,3!5/zl<~ӚO$zO\o v-<8fav%vͱec&4ad_—ŗ1u+)FU,Xq:WX5޹sE^n@'n\ ᫘r(ᦲA%X(gvG63ӴUKg&[wagMW?%fŊxRGp׵nCT~vmWm˻>ث?iMZ/3Ó_rT6 ~IKhf&"&TvQkjiCMT[;Zh BqAEXG He9L+= 9^t]4t KL:u'-ܻۘ*X҂͵?bL.yq=$a-x f㱵5gъ9]]h ?~-kjvpн!$0ț#x2L*ο$w6Ņע]vn|EKPKD1 h^"7""nuvola/64x64/apps/package_toys.pngUT D^aABPQux %y<_ǿl3ֱ$6DEhW,,*KeF(#0DQTB%kJ0yz{^u_9s.EyMyJ} W_T|+ `qOFZ~ ;l^.wcR;>Ф1Qa@}q/(˷u/yo;KȥUz-fmOԩﳨ{$_ Uzoz1 Qv6\pN| Dp!eśT_o~5Awi=?餝[!* Go (/K?KvS:lZO`,BMFpN^KcRN3脦۝n,2G%18LCC ,tލbJ%ڳjѽ2;^oWFO %< M|1Q@O]KORy< ])2jU5>?HF(PiG'TߊQf<-&||* *p>e\8,=kAllxLWF3M/}A"%hT"m:nY-脪*Չvŗ0Xf}c觟y0tbYH|PߦS>}; >X ]S"ehO䩥IZP_8?VAۅa%1VVԩGoD޼?󈕅?Ou"ڰqҗZ\om,l_5sTɭ+ k1XfXkʟ\XeMn'={ۥڿ9{`Pb}w;zkצ<ŭ9#;t\"cv惃#ۚt@IZ zw 'k De",LQ}毢kzvy+dH GVsK Ja2|SI~8p-{}YۙEչd2DzHL?Z,m2&,-So.CbcPyU?izˑ`ZNYNt>iON~ފbCGFi3?L(\&bd)簐F WV:*RE$i.#oQ7̜}Fglym,G18*53+A:$֦M4Wo9B $1z1/bkyBKW6.!qŻh40JmJ["VrKH(nka'hnoFcǫ"(Y^fjmzv]uOfEפ(Iӽ(I֨CB&&|ջ ,B~1ϛLQ49_`5V{;دo>LtkȺV~fT01gMݢ|e{asȶPAkk4V2=MfEVLPO># R-q@%I||>"? MF%݂8ҺV!H8`S}w~ ā>G4v1[k)?%  R9 OF(8b_..MJ-چqp I/I~2u7Vv^g2isVZl^oEU_/tVtww7Scy~LG^چO2m9TF2,VD~.uu2 o zMm}+>@9}`hvL9kr8$ r)%ޠ qN_QWErF~uJ-Q)꧉)GSHܫ \-kՙn3b9b/uk#~ѶmFԫ?3b;ͩ^eVm0`@HTNxnJty`|C=uu29}ؓzhnڹ$]L+_$veZIpHPu=kTiFh (QKɃ5gS.m24] 꺘V<&v+bt3Hb;c|;„N):klhL[?v>AД3ӷEaWߪI6s@r\7LWBjc)ߦLAs!I7"ꔮi銃A hlT8txk\s`GEEwt{D3VrXW.e{n=*1v8#m5Yh'C.)+m-$$Ap JLWLԟK:`\MG|_)548 /0,ZZؾ0¿o4 $@~_0t3$T:6%W,ĘDwj:DkOK8uCd = Zbu_+P7X[| 7lmTdjbC ~<|fKm0meq6{a ǜFFa[D0/)0_0hkP{Auv4ޝ%>dU;RGhD}nڐ8lRB4ʏ=B ls ~BV)f~oliߣ\h ?L.N{1,n U`7 ^w mU}LtJӣ8ǏۮUdoГf{Cںn.瀬 _)}t07nkE(&\1wd(rsrxʸd 8?7+z"n~zQ^祁}Cĩ9?K*%X,/1֮~Xrw_:́.h^#bZ'q} Th0J;Y>*[.\ϘI`bb lcaKoA|f[Qn;4GsCzt{P^?՛y" %Ev8I'|OTi Է )ec/,,+ &獖zRod†"O9 WܟZf۰$C!f[֟^wf``xtũS)шpy{L !5:ZE'Vl}tFѧt vnrЪߟ2tvޏs+] f k01Z"dG_zr~>sx $t/m3'VO&Ha6!bh VMgFP5whw~OHTȬehR7C_/:ݦC!6m3`~7*PՂR% E#6^¿ޜP?TKL5 {(4ɷ_Du졅% ǖϣW{_g5G?wa*ZĒ1Wc"SN\eg2: lV wfgGLf` xش=L!Kpvx({R+F'3Y>׷ơPett#jf80.*jL|/#G4G.-">LJ>K$ߗNrZn7Eb mf6=#Ed: <ϒZ[Pv, ?Z GCg$}uԠR%ĺ 45U$r^2p ͑ " [jU}k~ڠ5BVANrlx牜Ҹ$ɒHYo_Wb %av A^{`Y;SX E5ynQ 4xFЬ6ɢ7mkN$%<%}:H2YQͳ׿*ڙ`̾7s=HSC7*} =H*F @4ya|Gt!ju#*#ut Us h@)T EχiJ cFƁNW:DwJjs:aDAnxu ңLp-Jw17BMS7'cS~fm}MDA'{f㭥Sͧ+M7m 7.ie0z1yg)<['9]0d69 Q$ /ş(w6=6uXg0svv C*g_7!2 tmǭ`쵋 &- q+lZWwl9ɶh ܱߤJIJ7w,wWf]4sƦzuL$uLН,Q#I:*yt:,˜CwFNUz@ԩxXմ%Cɪio64,ٶG޺3BNx*Ai04<[ՙ. Sjbxmɿfk5_˷K@6ˢc8U#߅ #ԧtw'LxKᄏYʱv${M4Tb*cZqQNş fw3m:3#(.#B(X7'$Ît7v&)P{`.7{;?)cÑm- oDb0+M`KuIإ>2`uB7"/u@OnQ@a[(jXCqRa` A!,g#*I-~E7V-f6n-llE.9inyI K|M03N4oms[G>1ayzCsBQcGR!K:/ $|❇76;RDT\ X`L55Y浼Qu܍/i$?G~Aykbmo+h'-M3m:MV5قtc3U={9j}W'h5o ɑnGq?`O"iL|TNfN^N[K̢׹+VL@mċ7Fь6- ״ _ =^B^S /S{mǦ ,[fR2t:BaسP];HrQ2ěGq~~Ngq8@DwCU0D0BR8r,_~m=Mp7}w1FһY3(U3N=E Y8qz\=.D֗O()PKD1cפ'nuvola/64x64/apps/package_utilities.pngUT N^aAAPQux {9y?>inGedw9x\22pɵ|d ?bm7%(+oOP<]= A9 MM"j$ٯnloTqX,m0# 2vZęn͖N^a?*+a^-Rxx۰T>io 羲%LI 56 D E/Pd=Yc'#Cݱ}mH;1Nٝve5^d>C|^)ލE cbP:x[3ݿ^ɫ7P۽zg-YL[K>2G8obpxэKCD<5!L]H$/(&& qwO~ >G"\}XȺ)okH;tC2Geg!d䄅N{B|퐀1p#WϮгS5-g= ƙZEҐ.TVaVǂXV"#R)YzVZ}c @'k3+W 9By~o9CWi$fZ&`h;) *]&2&\/xAF!f֮7y4v| x[s ss Xj(`P-ImswW 9RBo'}(rOiҕ6c%Xp3<b4XMɁ^G *+ggc{!s 4t2#2}AvVיvY #OY@ZjY/=DFq~+P^@S.(xH]Bh|oR 6`)'t',1&,KA艗oC}I8ѥ@l uCkf@n ߄J};cR|ȅ loc9gt "s@0nI΄)a*W$aKMK*~D'8fDP97-pBtE.W'zaM欏'=/M߮jqD&1 ,<|QswB'9+AyMC>S։&M(0 ?`0N+:R Z*\ i1;+j'LbtG5<ߐXz"x7T$};V/XYɿ潗h8B#-2̢3|;[Qn uD"X*cǶTS3/k=b`a};~ rm70ܖL-\˅eiA3Зhkws-@M<|3y Xs=ig'6ItEBpm+|8ٹ4xÂ/xꜟh6#+Ÿ"W*C`nVԎ@ŋ~]^7.$HAu=Mw"ArJ!ŦBb| ʪu57%u)&VR\!''%چv?.K;d(>0zvN7 (Lw.|>KrY­yju]a o@YAsad3`eM^r#pX$#MΧO]y.+C]||*&6{P'L_ _|+.3 FZ}4&fWKKc'r[ؼؖΥ~л;- jl2'n 5lG|փne Z:*cDG(ȡH'zkx* z3\+| cqt&p۲jlH;ԕR; gG6zC%g:YT{z&Wڂ$ga""5t>@/(`8 9lҖNrI_] 32 QmFrt$?p>@?<<..Ȩo"g C6r l* ~.^JKMD&ŊUZ̐Edk/^re"(zcb+LKKj+W6i߿ k`>7h$ C utj OG¯*r,L ssxYYH|9fCJae1t=6}bI'DfjeݾDa(0oB.(ccbwOP2b[ۮZǭ*N-)/M0a^-`kԃvf/~"fb-cW"M;[g7r>g&UUe,V퇩B~ru3kuW+q>!};} 6f&16O//<6R])5jNOQ٩B?7Cԍ#m {{çooJ ;B'h.`ϑ1@\%'Z{+%uL"O~2r/kWFZ3G..vfeqcO%!&P "8il[fҎ& ?{烢8ϫVRMd- \.l,LN sWeq ՝ֶJ,\s<|y.N%@l?LX>4KKKck9r\򐯂"$pcgt,vf(e5sg^WNv}LoXo@p_7.)dRcܩvW:Ibsw)ljio[@`-έKgsöl&,vG;} ^?<BiI=K51 =!B=y S40Ċfͬ-[>fӈzp}L"r598mcw!EΈݽߢt.pWFP~i #Kk/lynE6q*z m7V/F' ѝ1U ލ԰,.:ؚ"̛72", Eޓ0G3WsYAJ9R N 0z崌,Z`rBbޟˤ컆O6(F>h> >CU988d0pkDmTÃx wqqZIJo{hbtˆ_6w,M*׋AP9M8x{Kٔe>$q+9M>UAьӪYq}B{7%:vv1/d.SwdI{$b#ux+"E"wSiNmMiڽ%XO4~-W'&ZN@ `f(A7}E E m<xWBݤs^6夶޴_/l +N|F\װp`wLp8W‡2/vܽ{d\Wɫf?ĂtPs&4DY5mLdCȗ$c% 6.MLdVr=d 9z7Wgh khquz9J'/\+gvzn.V=}ڗU[Zz5;^PqO`W30m4rޅXȰ{&TI3y pxiҠq+֮ +#ڂS;BKTE0`I0upϦI@٥ <1( ][\f_ߜ_|f/7Bmf!%S5JwH-o#8d1ClLlqO&9;a5 “RElv::p'k& WxO6fz"|?s06,-tO x[բꀅ^T׽ۼ?K^,bNȂ,sڳǗbOL5(,L}:L#b!5ab3E? $;Hwa&]ϐ9Iy{{3ܝR4 z֗j̷k}j8SIҼ'1xʼnaj-(3\XcZHs~a=z VH Go.lFXP`~k WniۜZ AҺU"uh2b &?Cyb$0̳E0Q(--93{ ^={ bfrL6ݧ 3RdQča`!G;}"gOʹ8ܞol&Ec[e!RWo`h}>E!l׬4׸u+|t޿t/mh \˜";~Iuj*JPp,=v }׭ H +E"XH!Vfw GYO℉ KfV8Ӳ] +(lxz5[ Ӡr_j<¡ͽoCYwɮMx_mY18a4s7=xWL; *룏uw{jpx 7i 7XQD{9V5 :Mq|W[[[t͟oy"Y}hiqv4X<5E'^An-k]*/} [G}G/ne*EIڇPF#<a?]$] R%KбdLSeTHUHIIINKL+Zu*pEg In,]9:sPPX6PSSG̈́"A.=D[;ڤB\JHPX|:M,JAM]-Ҕٜ80#y-A[HOzrrr6+;_0Ȇ_)q~~շ<7 4 ZeT 'Rن W$i ɓK4{ň:ly6 ~{޽ܹ\.=N$P̽+" <a8omuBӧƏ=#pmǜ x%pU4)}&W%,bsQ0%84CfYNqFQ8s e݄ܲFh UQw& yü\P`]$ĤėOPA1-6_S??=d~(]N3B 2KJ$Ɍ Q0`OڵO~qVgs+Wy*տT~S!rY2|ӗ %;T@Q<ߠ,/ldr̗w6QO l[[\+~IAC 7r7 NʫXU#=.%"?Sbd]0V0"63R5ws߅p4CYR:*{J.k+;H߭2bDya ;Q;B 3‰ *0Opo3 ?П&3?%f]2nuFXL'K56^յ3/_|WP#Nxw#WI~Q=/p89嗒}6 ̅NyHc-@tlX,!Jfe"@!`o2Om@Eqc^#!H&@!1KGl|{ 9rA Ii M-doڳu A̯Xfr7wPraZҩ s^tvIM1FoPvoM WmTy4#B_Շ'#6؂nA)vӻN{]=WI'}h4d=,~"ow :Y߷ KT^r[y\A} Y&[gg7\HVzvf^BgeWPYTղ՗4^$$Iń s]9MɌ&w>s 3f!]PaR ƹHU@ OoR3jeXRhyv˱e%,,ׂd9y7c:X46)FOrbEY&tDlqWW rRa/Vaaf H@u)賐X,Hjڵ$7x)qo9~ tWa\JFl-YFyo2HkA xӶ0F7ܚLj _'eƛ 6~=/hJs0u0%XM_n{B9ˣXȟu?rD>kzv g xi۱,nuc"*[e?%}aJ³;f-"y+:|>ͭ"\C#:wִ1P6 l9={h8>zD3›z҈!s(\r4F%PAģ-0N$֧ J>1K?OM+*a5̦i8e|X t)r >86_fS- /9JA ,$Ȃqa cHؒ$Tch;Due9Pļ1;̪q!%oh,]J"_'޺*vfhYKLRvSMo/cc_HVwd~3>!TN\9y}Rz!HP8 ‡ȯVWFNNN9iǼZ5˯`wKމOCW>isO,w|lf[2!g+yY6 ?{%p'h P/\<_|d{ I. > : DG"i>c}Ȇm~EA8.X*x )J!*uXK AA>z1|oc .aN=Q?ʰ@ū@3Ӳ"*ԏn@-ܙWMaoj^`%M U]_mšBT81[C-3qαĥ]!ڜ,|t+־V`%8Ι-lLFaF>ypډngN RIX})}?L(w|sRؙ/;)mzTtMeԓJ͙Rݏ+YB0K,ȤT Wa^E3d>Ͱ`tٽP?al+#=P{OӶFmڲz?&cy T叁#8SP81,NME/:2>v7:s>5;R~T*h:|yHQ\RQkxg_C4?Uɿd[ v8G?r- Ty?ԁC$%ϴ<g–g`epqV2O4[uc\"7`V'a8+Sk7~-}1*~V3~c)eS2%fY?Z&E}<5գNhSsK Pul~MzCn=ųfvB<ݬ`n|җ9(4N3{{A@nBV67 {P\zf?su|y (5j&(<6&Ud-6;2@_8WFZU"fs:ۋB5Nt6foWT&aW;f;(ykmm\h+n>N\ g2g tw7mk2xn1.;&Xx>"Nx_}!3ǣ'D2GNFLsʺ TwBHNHb5=+aSUH|yuW'v p+x}UprԵt4pV=I$N N.rIZ++i~̴ֺL)@T>`/=*)~q5n?u% l,L1|5J ޖaΫ BR9ߨoZNiI:g#(ֹhp(5]燈lfXC@o0*vmJmzF/E oc)aU .7ju*S&mWx\!}c?c ]3e]lɓbcW|q>=P82]%a]߂n5Q hLڅUIΟ3%*\AK=sՆ'&qŴL'(v*yP:ev/0;qVa>𑓺4Ɣx6%LE(ǵ좟 &!!J`p!lEx?D5dȬNN( *Z)&Fh>QJֺ2?:݉yk2շh9c"f%`蚆)uZ&^1A^6%59}.p0{z9X.y |\ED3==;5D40/qG+͞!? X(LRpTd3K=>XVJ/oNJʾ`hAO%Ɔ(W9Q}2 CD ø "BP{N>}TuuU}_u 0 ܹm'urhsO>D9C|S>*%*%Jӟ|K8AbNii5AH%b `iLncB<''yEgQD,t9aP[ @|ibV HD"Y* \V LQQ[(,"F#-[cZIo1[BBȷ&M\'[.{~aIEekGJ.8.Giw#T?񉜭t3q^k+qicvD,&t>#,c׷|֍qC OU4{04!W =NCm:Z-){Nbx/SosKx-C?N7X}Nǩt Trd?e 1xF{q25$jD#PO:bٙX{7:v9t"tBjlTeFuЫ9=d忊FV:0S%h׀٩l1kIi6zXӇ`}f@E[ w j?\՘3uTzcG^]r7ϫ!qtiqxeT@(HM ]XZZi ?MtӢ%7UQ? >!\1pώUv`GLQۼ ^R;G72Nv f2ZѰA@> !>cp۹K,Pzʑjߍ{n>o̚,5+'85ÇUj?%FoHFW;-!qs ͂n6&Cc}KCR0/q~=lf28>-/iy(@ӹN4.˰14Eu=`N7#dNaJka,#8N0|Y/!Gu))PcH$'ZÎoWP8?YC>luB=E9XC&Pb %?Nޡ|zAK4,c9Xo.3Xq=(Y)O!#^YZ&S?@[c?[ŪU&?rq% bo=ԔihMPb}$65CAsJ݈"%C=hoäQ2xKI4e|cdwCa Hy7K6cmr h3.39м9;g(&;0 o*9Y7hW!IuUKꆵ rko$tꋼۢovڗ%׏jp LDLDή%2\pJ_z$,NJEsgDYmhs xv?3 NzZAĔk-hR].c5UgjjeH%bCzydWtwξ< C1rwg\,,\~y *9Fܶc私Vz:iU_o`ô;0q&H!{^ᢻM$~KՆ_0 YS(ļHāD ִ? _yΕXGO>;(+;b%p9LI^oY&-r/a, yM)Iπy'6y4\č e>k}%+k D"9uJQ_y!ŤIRJ:q Z]/==I5ևGX*y*GYZzlډY:ݖ,޷ 7eP/jrE/Znc.y>m]cr֞B4uq2f؞ CB+?N̲Y,2J t;e΁<-q+a|Z0Jr2;C򈡦A ͉ Sg}8&IjY]'tIiϪɗ{1SR/ el%)R׏on߫_t9>35&%eʅρbg* j Lt5& =^u_T<˺u<pz"9J(nC` D5l2T@fCK> ZprN'Evwbt]Ì_R;<1ǚh\9C74ωv3::$XM+۝o&CrR*n{hǓ_e$33^C%^< a^h @t`}?!C'Pg.7y4c>,s%CzWW>ov4\q@$D 9@m'wR4oV]漹\Єr=%ϋ'Z#a xUڛɨG3z_6@^ײwCf8yB;qX4tL3dMX:q@;>z GEF~DJ9bA{JC&Cʃ´Wr}l ԷRKrEao=9f걸q;Λyt2${E4}4n*"U-2Z~;*5~z\ԋwF1ޑN 6;ݍUtZ;%u!&hzlD.LDVR#^8)d !hf*`zhiu0}~x`C9%-1y.%1W E|/m//xjʒ}E㮒k`V8˦b !K6 毟TIhaPMG_}:hku@mڇx1C++/ Ӱ%^ohҺy:cTakk)b)4o/4!vreKֻ:n%}|1c]E]+"pjȋ1e$o o =^rP:- +OQy^~3Mf7ڶ۱H%7Ra!rӗJ5%5k^aءyeh'T,ϐ4Edj"l=jTb- z[4f7uД['5?_Z*CwyњnOBéԺ{ZvM\_/&AMpqmq" EI-vnҝ I:)&e >'@qWJ/?Bپ7ꛜg-?"UwLh,k_f tnѓntgq?Ur0 U" ]o98 rf@_mPK۞L1"1nuvola/64x64/apps/personal.pngUT nlA=PQux Y{8†l9e6 "I*!tRNی9D:M%s&:(J5C7l{~{纾s|''hF@FB!T6XTs΄Nn?s21x4@,2HDltpt m``q=-̗H9RXo 퍲R :?W:=vrsrt8ʥ1ml )˔PbaGNwY?7 -LBM[=k? a5x%0#ۋѿGɦǻI/鹈G3eDXŰ~+) `Fg }Mod/;fh@p| X/"똑2O0?=C V>{ݩ_{y@-! KҪ=o'D>Bwʋ .tbYi)3f?_tG1;xsƖߣ r/ڹ760?"J+*Elfz T ,~;%׎Akb&ض"qVOyE ׏ϮGnہN(?nO$ure$-{rhmOAWWKISC,ZUCW?fo??-L 8PV ,3;ED\ܪDgn@jAP i$Ey.GyP4|[ fĿ x˺Qzw_"0=H fA Z c`iLAnYsCǪ˃W= uT݀\twCGx S+yǙ^-dcF@)U&44";jWYCj94+t+vMYc gfV31y2* th O ('T \SZF+Xj&u}OrxSPyqʰn?TW$G/DŎ&$g$ris*σySJ\ߺCoPoI2lȭ٨=+OC,2*F"PstQHjg`=YNȤ g]1Ż5z:.Q PUh'AʑU&z11Y7-y͍k_0ix K? P<9aکd#Y#jKtn>{b2Čxhmi&]|V60Ye,ż/gLPd_1-twX7 b\{K%" I/P^뭁>Vs[@D7q:BCbƟN٤`!G.rɸrm{-j1#(91C<@n94/u8aB !_zJ̺-]skږC>K:6' l<,G\QoSCH1-R*lﭐ#<+;=mڂRM,C3MKt: ga:GL<ưDkUm=?3K)3B/"THLx'EMs 湠bvNJVD)#q'+TĎ<>e<-ٳ?ي}f 3{V+sx stU#1}ѣb63f߉|aU]r7R ҽlzIltkZQ`e O|5%ELPiJ@'ZZrB]m9U"-O߶LUGKН ޫX'*=@ ݧ?bwO +NI9O,&J [|ֆϟKϥ~Fir ,**szr~<ГS2ljƲ~Y<p>!@5pI'-I}9///;,r=pw O&_d]f4V;m,h M;LuԞ\y'h%D:Dȥh,=oP #>,ņF`]N|H7, \_uMX/nf;3>{˅gP/ T ab6O̬aXO_:û/ԿӜ 턇[7haQF{I W1/aZ.(gy/RyM WykOD$ QN^z#ޅ6kJ/g+K)O<;`tF7D#@{X}ck^'5'L4g&o ⏇yNP#"uo٨t(::t17tOPdT$sXb_s. 6۬5Y:aҗ{}j>5]jFw=ސqJPM^YݚW HB&9j0a]RC~cWxfң!dN)r7,.f־NaTUr }XIM|>L&xԠip0j/U{$d l+e`t&oHpm`jϩ_~7-9:s~}IĊ)W_9&[I >Xk X|E$%35o k6;nL WCWmWʻ+@3j( p=`zQC= QjSC|DC7a=y/iT~#R x35wGD u(ħAu @'j}Ko:OCn̆q |7lsǾU)vs.o@Ds'x\i|tCy4 ̅-!O~P4c!M+kom,?@qP-n݈i2G1V_iӢo|@]f%YrˁajN U1h,"U,}e{'~_CpW%Y䬹>et-feЏHFXH/:Cυv@4wA^oSL"؞JA䫨w ͕>j -/ٕ,>g{>|،g N, ըH,)5\㑄RΟӧN4_zX-FW7 փt\:]Bͺ^ȡPtVw-U:bt=: DpHv?]/cc0Ʃgh\YU pR7}4hU182|3N :׸iȟ0t_`+ލ3^ٍ(=6㟐W~l˓Tfc -ff?F;(OirMԢ>n;΁kdqsVXNi)'?=mWJkCn+*M'ɲ)~~^"NN%0JGq uEҽ6gEs$eV.Pyp =uIn*@W*-Xb&1G7oJAK@2]ww'C& SN07)oDvLAn޹cf#! c#}Q-%',hdk!o+7'|gd^>DY=8a6F dU=?+ٹe|PЂTgw7INF>L3@OI,꒥lNev9u#ޕza,ぞFՖ9w C%ml4/${"q9fp˂ OP:4ǘ(9B5<'Mٓgc"ФE =@+b鑡YkUt+,Yo C?1MaX1 V8m_(owQO&b-R\Ċ7uvnxM|=- #&:x1we1IlMq,e7K w{RG7C?g>Ģ6Al#5KnYv..^2G4S TWBdjmc{ +#a@Gyth-t0iPaT< ͸ Ss _:gteθJ(0!K[t8FP*0D3}~蕹]{WrϚgVZ4J3<jx?$Q|ʃ&υ{W"΢H>jJ_cWZWISd{/NWA 0`kr nvQ; ؍-(.J~3} 俕ıcJ"I*7ܽ^h4)Mw"&}Р7IؔK>T9ep`锳pzX!Vm1z2`Bx~GlRk/Nd|.Sƽ"K@C+d 9we):V>ICjW KТs hqx!ڏ`Ydː>rFb3$E_vHJArYP!ܹ8=wDay`$΍a|Ԭ|{ȂXOVoiL5F-똒 Y KwxP$uTgl;\tP>Tp J1̎V''ǙsC׉qu {\9|Q{tvjxuٔ>4 zoYhK< -6H![밄;?4/8K]s3g"bQB{ž G LcIu;{|brc3kgt@MY ש52`+";=Eռ6́l-ۼR 'B0_! rP@=ŨºP!}gxB!x^g?Vc]V Cg!kGoO5L=īw=495B04Z/7]B;{& R|C\s޽AitxEunB% uK0bZ$#H,W=CMAEM_,G kom=DZ>,~yO NV%kӫ,, Uv.%$+K%x`s/4Tb?H)BdѬۣU+hu7{j4H(hzb[()#Wt8Vɰ=P#te8NJs%Qp8&s:H/ē*ƤFff{&uS%C]'*ʡSfq|bҁ\񈚮e"CEQaY6]k^:)/K)fd&udB!x-_ ">1=k3{S`+4nLv}V@0YȬz6nغ7#PKfE1x]Enuvola/64x64/apps/printmgr.pngUT @}bA<9Mj*+UPh)(EnƵJ(<ᱡDÌFxѦW~ುp7T :o'B(@ u^m.8$vVP*Kf:|Hd"M 26*zer+YYiii:=*Z>c9mQMV0P`VC@ח6ٮ١hKmݓil(w~@H͂"pe\f s \Ia{st|h^ʴnLH+Z`}Ef7l3=XGq]u_B\&)\X!s νnW̶?l2%`;Ȇ[/|S.z4#cap̽AҡvrrLqrک0Q?g'~ f,"hΔ1̀t?h} -Q<;09hG ~yR[`hh2pQb}3m/t^% Ox";=&avz. `:XGg[ȿPPP"*6N&c|l%<"̆&)' CxwdT`N_QQ`X7mNڞ8.NP"GPY /k׾,++q | xDYtu涊]Q60%\?K^?OgO.WU)tctSﳢ0w㨾?0AyXk̍^ F^]IxkUC7bvkۋk)bZSrA:! zj 8:AD?jJa:鱃 a&lK"lz=g-<ڵGr •k| N^N7&ݱVhvUyȕ a% ﺸTťm]#vj|Rl)mÄ=N 5u_d;pI4O(mA,~ Ɛq p@O(AQÓ`D6AD) >[װ0zęک~ͼx;KFQ**+Ip8ܾ:Ev!h5 BEIvT1R(?}B5bCs111HNwCaQ`9U7 g$յ=kk]J,d2̾-5I1xe3Qѓ!u@ZMm#YLBI{~ǧ5!qesƦIt' >~ʕ7&Zё'15"pԕ$^$x_vdZ:0f-kڄBck| Nӊ !L=/Xxi.ts"4Í4jQ⢟s GĞ힞YWuSHV&yO kZmRu RFYLG8Gb~9B'] MitL_%:$G m -3'u1NYOh[Ihk ^ s>3מst|QW׿ۏ^*U~.ύJS-~R2GNpj!K&l| y+B- d ߮$dYR7|*'OoFTÐ]+ 3;?vjæQ;hF12j[݋`M<{:Cgک%377sCJDrG#\Ďʇ %؄0E'fYwVxm5pLhLtI7 0| #laƸҸۢƦUHHz;1@8U?|.{ŝ RWߎpwNbiy gзy89ٲ/ g0zjG0,Q~6-kBl"Fw$o$\>wMxdR sbyY_ ɩ+('+٨ȆQ@|>O0$#5ɠg)2{/rzޕ+_zGub"mA$BO?&("&_ԬNYf:~]t kȞ&BUFVf'=pZerkv( omy Oi-!`Л{#! x+υ2=T]5?*#7C]!%-|@s!dO-A(Ҍ⓸m+ ]!UB#W{i {xUQtO/9glC3LdMG3/z8/8=.Kw}=9Ȅl41~'+|d7D3q5Si sAQ`סZX┦-3!ܸ1, ۙ~,Yaɓg?Mؠ90S=}oPs5qlZ Mz\Vm̳9#|\!wINqay]!*pIYIf[sJR7UKP#P_uiJz: pe2yKΨ rLeyKxJj͵!ys3_ˆ}\?$Y8Ҧ{jbd&]9w*AfUzhؠ/μɨ_N+ U4>h[E/[ڽuʎ5 _ۊݶuDY { u.1?KD@dBH=۳l_~&x(Z۰Ux"K탠v' om{Ի׫jiO1*c[nq{ӒߝW/WDߣojMC!_/w@( }=A})X`]+޲{'m(+쓧@ndw#I[c}!*WJԼ^&K%Y?zq8Srv]5'J0jݕɤ0 ϷafIe&s׻ &[TsM8ճ[@.QagԚ&Za@~3SФ'˔4S,s\y'B͞H+#k€z'JH>]̔-!d6GQPhA3_pI.Xo/=yz$c~]mR쑕gdSEBy b&Sd,ERI Gߡ%Փ4O(sS厍}:10@JaE(~/+Bц|<3ҀnKICZ~@lYZYCaC3LI[⒒xM]ӻ%%B͐܋^@޷IP=_z4+jٷqLAT`#k---/Z]!s u[Bb韚\6t[}*qPQzˋOqdP ݿY6; _AD.qm䔕N]}=CT/Aj ^?vCKfeH+` ŭ[qx)nbs*_:!&~Xp^Vj+(ёqgByTC=]2ƭ̍*GbO͘P ›<_ gm|"$PW}h)ODP8T NV}[!uБ|Ǥq1Y|GYݓydwȿѿ/O:oTTDF+*nM -=U@^(//?tz/.0CO{2Źn[Z hZ 7*o8)q!7 t!?LDMu ten|™rY(_A^x" GM';%JgGfM.hji1 /xXQRD8ힱ>X]=> s#O}U#0˜lQR2\.>V:+5QԪN'K~eJ zwJJJI b$#''GETMe5(CUi>z#Me3:\2 n #zkQ(jϠ/%P6HϜlM6~Я4y n>Rܴkd繟\hǠV^~ 4u6˔i-gxv!w :@@Lyoz32yJ}/=:}+Jb*M"[N;]TJ ;އP$6,@qlܾ=PKL1cQP 1nuvola/64x64/apps/randr.pngUT lA?PQux W 8 133cWd+I43ƚR&ucMuiEdfiC ce,$}0=s+lxU^'ѓpk-×i% O)Blho8M=mNpX{es=\:WokɁ4Gal(#]% Z+"9AM|?BZZ;LA"4qy˂Z]Zv Ivy,hdtuQ8MUxl !nFjs#۽ŝmh1$j^iJVxr vU䷆`@ 5$}T>YD-_0/_SKt ;@J1W}w,zIޮ3:47&~yvq;sXp Dܭ20-=>P\Ql| )dF Ŭ[[`1ОTǜ:IIeSK4Q@? 2?F#.w 7!p0qfd\M y* Z9ЃY%VJ!n n^i6s |oje >yCG=ofO,M "mX;}UN\QGֈ*^ >0wU짱YrƬ|[_\;_[t-`!JMI̐r#_zELyhLu^F ܄|MT>>3(âE-P]rkꆪ Ӥ6k bk/G\7 {%Vftq*bCz/^ifMԕ9يRw&GvnUyF_i'lT9!Z Ee:<@ɨՑUBaQ;ǜ}RciKʌ9> %Q'gI[@jq qW9{mt v N䚤Z[R^_d&A2'?C^Cia24|B+4#mn{8sn>E((Tpu%m`Q^EsVՋ1V !*7XW(Z$HO8mVïoT=X\r5%i#$2 qGɛkHV6} wRS&Ma01 yL83Ft_ vdr+:M4]QjU`/jV@NnR<2OG>Zc;O, Kf) 4@h$ O]2/l.gW 8ib >{Om._پN1=)Ƨo΅Ep rsk+y̭Xh*L6LDj YoE YbmNbk- Bqv9z`;JQR  dɪ(!<&˲wzWsPS?/H.9:qf5̟$6eH=;s҉Tg=Z +{T%pιA<'Y|8j~}mW}|hԒޢuI;'zPte5`[5L"JJ&X-;\nQuo>QbZ\**kfiJJxZ@- )'e5|m/Mw:KEH.$f{16c ;zqY_`| ?~^,4ytC=ܵ /&B)f4=gA7ASF[uX^*YY`8 4{fm7 8VڑnyEֈ ג!{V(:heV1mTbտwe䎓@dnNTJ;8nL_RÄܚ—,9096-Ho xL<C,,Pf?IA g@?p0~U 3{u/B恎/H$2hrǏ4hӘ> TcGT(?Ro7-۽o\KVqc^WbIF` xWP ɋm WaijXML, UJc ]5<x;>;O#mqT7 ,0*n?Lus4(\^-|rUzzw۠b,\qL}s^NH[mB{&9!'~]wT!bxk׽<;1X| S9(Ui렗H<=r8MUYC]j^pe8y)/,?+Fz'Nq_=W&O svl}ᨭ4 UO7x^v vĔuy9ʦWf8J琟1PP;f\<_Ϊ!0 ߤɡ.,gg e8O39$òOu&m:&C}.Ԙs}!̢ͭ;adM@u.M8=>nupacڜ@џz̎5kfsS0 +kƤ\oeL9<3mu,ZsC +YiPrvȇk{T+E,"=/@ga N49XD:0M#&GI$B .TǔaNjd+s  WѤG%ϱg6nʓ.k[xM:n&$t),$Id@%Bp.G`B+!Z}Tr|tx-t8؍>kh j @nMORaERRQ✩ 5䒰H 8]({İÌћ[57G̟w,\xS^:jdU1=o)H0~|*~FoõwPr";58Z]3&NR+li&HR/,t-$8}Gtg}Vm^AfhMD6 :b-=v"xP R.UYԪ;WYrrK -frI[̄u;xb",FG6p(<#7çyعPWL| "T+`7[PLifրҷETGIDpzA*;Q?U 8HL u]//y$">f L+&#. ,sFQJ!;ނ)w=$-GFAZM&c-a"` ZǨ/c`a/еm$RTi$хiy$u'rz(GTŶ+.dn_erzNMH GI꓈D+\dY1zuܩ_l] ;׆wu](B fD{#yR;σb%ZtsAW#]Vvc4䄭cC)5SЛĮՆ!Ev]cScA4/<`0jvuKIEt"|1 m)+l;--AgTj,.,.6MTD"W%p ]sA` f.jëvbm@K;*E#Ź܀w634vGaN{j YxQ^R֦gQTl3Z㾵x@+p|#fE<˟I|,W,*uvh+{||mOv S* (/7_w{`u9ߑN9zgI17_7,zѻqpwUSf$$C۝^Jx9R(` W .dewfD`^BN #j#eJku/h䨯|[*uL*M7*"^GcۡXh…=ˢs`k:he&i$p( 03XBnjGv ~`kHᬅ=ϛY1 f̠h4xOr~Qg+\1[Hi˳mu;dݪ聪9%XcXowQL0~Ă_x)i>N?"V0u\ vYY>!g@)G>ց._ίӻ4|5ǒ٣ @sS#/[Rίdbw?Ys ;Z$kSʰ+ "DGޡOڨjNI#blР:('i{hGG2 !¬R_fЫ2̋Ҁ{TZep)J(d;0TP3m5naѐ(A&3PLN Lf>|37zQÂ5h zHksjjddӵ`{va*Ԏ?;'ڈiD&]3&{MDԧf;W"O@R8lK4_.V8P?eM{xt<7FLp=Nq:+֌#S"uW^,lrR{cQ!so犿Z_0 nϪY}y9S4fu^RְxHMM*X:-j ۼWp 5vnGئ|y[ U4;M]ZORsл(iyApG噑.Z;(+zɕ+̕A_s7)] @ ʽq«+W{}aYR6;bk]}>L9œ=kQ|k~%,yIz.~TJpx;%G_W?MkX޴ Zԩǘ$^R[pmc-ܮ}qLkÛU7*p̻I$糵3 }8.6!mWQEǮ[ز7ߟA#EPvf ^t36.] z~^\ 蜅gjw&=pOjft*d*{XݱEOMYVj-ftC0Έ5?ýWW2QT'zFs~Sɵi=7J|TWjj/an`RaOdUp+~6/ed;vEi—DRNҊR -_EaaqbKу`uA(qpz<]/ /$ecſ!q1TÔ"(lY7]5ԟ2fa=f_f"#>Myy;9GOlk<l~s^X^q#^]lvA_Xl2{簫#. NCϟ4$1**Vq{\B g3nR1- 1)Kn56Yq ,LH\h/s<P+mƾYjcDu}lvyb4n҄~>mYEc٪.Z%@~H_&1SHwfKkG8=C~PKL1nuvola/64x64/apps/remote.pngUT lA@PQux %w XLYf_je*$2i.餤 hDx[Tg($D2eMNZD ٵ$}f~zz\|>< W`3}=T;I֫[v}VmUpё|<8>0.:Q{dܦ(]Ϣ{PMrҭ֛u\hPGG%?TA7m^ .Q:%ٯOS*>)frȂ48% kgJҊϏ ?^u47#`o؂~{U獡X+v<✋,@֑I/wٳ 3p0.V|1] Hxd5DU*-b?@-`t7~W*oDѨFx,fM2+FF IHs4;)*ͼt Q)΂hi4iz R]^jb Ca&{e\7f?>*d#4ti|[S_U xNңS\`q#4(Ev]lUA'n3&L*{rJ|!64rF$ 3/M a0,؍iա  \\Fi0jmLI_$]jp+RoK}¸ASGkjl: TʓߎI'= DY'5^ȓ۪Ht #܋30;]9O3ٸ Z?=s%G$ $sޜ,C ͿKpCՑ)#}/2Z5%r kF-HE[Df8سaBRz)\%:pR̷S7dvc[:;I)4bP+VCӧ{zEvh :~^[񕹜mYқ7wo& ޼6+ͅrHqV,.\m>!y^g)xA~TfPТ =Hro7+ju }}}[ E&?';j 4BLku C!]ȊMŠ_E{bGLeHn:T/Q|\)[+\YbL[Y,/At4y$ީIz壋M$KivXUHE>foZ;tj+ؒH>6$?MLx ݍϟAWz?+cv얻ʕLs.X~/-N:if٬F7 Q.Qf*}pᬾ,l_9skJyG Bl{{}%!^u~u^A?,+ggNC.+Ga%2QuWJǒzP]V (xc |'X=og"U(` 2AATd])с0ۂ|#h:$ۧ$7DGGr˾)vyOC[W2>b"Ͽ3[y1%Kz(KА"~Q! K^w곬bF8 n7>GA&p[6:*N/K!B^0#iɓC`>݃a΃4dixmyBM#QtSX$YKz`R׷~ +'L&:WVWC'>ޯ߽$cs Ȧ7,4^ϼx$J|f7=} 6~ϳƼ@rO_ˋ8S 0=w(VQ{@hN? »>DҶ._#q ENk20W{iՂ).Ȱ^u&A^RwU*-ƶA~?XN5aD crҭՀ{f(-igj|fwgL9i753G 6LA0rp|AA0&.٭&%Fȣ%KwY!M4oBP/O?+6a9p~5$ߓnXT}a 0>nHc4W3&'ɹ Ӽh>%K*Z;BY hfJ&\J׬};K*mW 5{H_‡d/wZQsYzl{EʝNζCS][R8ykܱhf.R0s~*vl|1o!KC1%:2%3T׆|fnYoxEX[PKUw$uShC{I)6dUi#^w 02+i.*ua!_Cjgez}Y^杪9y#ՔN+;T-Y`)m WũswȮ.BYT;:E)WA᫩ݕ#+4l) #z1ӁoōVVa22%<]|l>2ጷSXI?!rK\)?? *f݉t Ɲ YyCZ[7>*[I/92 !UH]2~ݭMQ1QV.ծGr4 r{(I*NSU/t,x8z:dd'a# 'x;@3AJ#8,־iiicoS 7&ip"H|QebPdv䁝esC:G&6!hՔzH<-{$zŮ*޶MR ~2V<9smIm*tpS꒔xH686Fa6bxAMRݵ fkq@Rtw^.IPRdY,9ĢP(@@߈/1xA7Y[V9Zj) ^^ 7 1/WZTn;"Fƍ|. m# 28-v^5r ݪ8u?,YJ~R4L9(tཏ0ʜN8ȠA1ylrБָBRbxֽّ/]#|=AK);7jlyj€7_KVZ}fnEqC.IvіA  PjY745~h?C,xgqLe;{_N&Ma~hLG 'EzH:B&,6(̏>X 3TsY0IԦMG&K2(͎*65 en];FB?e)8kmPyR9 <1op>a>oOXG~ftɼ++LQZwi΅((!D>ϟ-0ɥK&-eWg;j1ggkjZyظl\)WեjO҄?'hf uqE>٫#{&HÆŲ[;z3KŒI~WRI=ͧ+||emmvz,vғ;ɝ-EL3iDnݾ?;28K\I.j`A{ nLHm[^CuAitM(۾<,) |gn>:#>bJgi0iLXrDL׉x; 5J)3ij" u's742iv`ޛ7o22#A}4PߪBnbWh]sp2lSZl1xEȆ ji"4hl]u lW1jxwH$@j|jl>G $4,;wDZq 1&d$b:,KrXӃ@}|'zߜ[uK"n(8yFB{߄킙u/"CgTNF{?o]pL/^!?tjYၩŪ0 %9K$/9L0Xqt?S*G;F}nUyl~R0dM1ԅQQ_od+d1+w|Jdܐr>N0VLft{!(ͻ4Ml|^Da6+썧WS3vjO {ףueȩ {ŅOtUdEߖ/Dk}K0kh10UީwP =/CPKt91Knuvola/64x64/apps/samba.pngUT gUA=PQux %Xy8~Yޱe2P3# GҴz%V$ALrZoIesÐ%)IY,2d{y빞?>~'c254muV_CRPNPN4ǧ}Tɧ\٧vE:"`ES jve^\X>d CϬ˗/汹aF113?q^!yy _ [7\\W?8#D"xYZz<^t;V?ަ_+#SG,!\)(e ӆ"]1R/35hgLuw@B[kPí0!ZlN2Hݫ0`$_,$}`9!Cqrkѽ)iM\`%VҧId8=D33D"`.́O5Š i#PD0 k FC/gryf-#lma#sX \ 5xLiyI "='n#zuRt4d/CHlkl"H no_鴸lxǗ@RdLEifZl5%֪ePo37ZxȧCw:I]g 9BYh7%9?yi3^&i|+kᆍ&T:P6&gN-T`݄5'zbRI 8〦E1j8e%/a8e&dHbJenRԤ S Je Qj ,h炣h6Ypt,)j3A[7aWHԘ+1c`&3eO*D@_v)c쓴8Mf;H{QִO ͢B$/JO*6OL¼n(, ||"OМu0\A-m\MT! }c⥽|;< 35LB[Z %o"mۨTIMPVJ?NI6'mR%א+|싡&OȌ;*ll҆R6jTfaY.8+ 7:})kjX}lT]N_tbrR[%X4N-4(tCmm^ ÷ZkO|z_<.5t<'@6̦.ߚbn勥o결l=n_ccm;n(`@#>##\+WUg+j?yf@jx_q-%70jʳRGfKv \ezEMx?şzsc۩&RLYGDrV5 2?7y nܱOXq W=H@EE~ ;ִFFtjt!"7E0x*3(\~ɴw\}{[ЀmuPseqH&\1UD 3G x3 ɏ7VE|ݙdZ 2Nk=\H~ߋY\i]+_[c7gN{zQٟ;}m=/u\@6>e7m9WYt۬1+É儍-D+S t|wG3r|BAAĝaɷd`<-nn͔:lyD#PaLE0d >#a_0Ӯ}GNZ~ ţkE"KD0H(JL 5Dztw"$ۍLm2| avE-SD~-)$-_>GN Ddֻׄ < L=H0D$@k ݈4_\Q}eYg ooZ…jxDanQHYUHދFx&I喁d VFӄYFҸXDڎmLmAtzƝ6/URc3Vo!~@`a0tm~<1߀},H[s+%ST:QU1ifYϾཥrXIt®rX̻hÀ=qוױP2CZ701lOȷsdyi# rh :=Z ^w nEno…yptep1vXH 俢wq^kNcdr{8$gZujԶ$@  7Ņ?f"60 j\_"qes?eZ&wEk_48#̭ /nR:L娱Bi]\|)t#XLab]ܤ-Vtɍ'|#Bi5Jz@WYI5e_ yt6i2.&h :XC?V: m4⍚^uh_KsV71.N)-뼮oqlJB č عac8 /3 S { {=h6k7(~GH^/l|ҏLpB2 mlʦuX&R0)rN"+!bK3HaAOn`"!\fp:n^'Wvtìf/l_PQ},j뼾rFzjӬAF7.iVɄm=+Q/>N6^g񧍰WwB>'|\ @o¯E)kZnIw4z\Ka AO'\I7>;i rXz!\mJCF >QQ$*',!@BaJOe+7^ڠ`K&O|R̥_~jBuWkCȶFIHZRgY;lؒna} eM)w 9m/v)0wvj4@fJ`(v}/LHR:e?Fj㦇+Sw^RˁZnVfxieYv sxxm2U Qd ...hjv6v:`M^-cfo 5cSRYYފ)R5oI0,;M[[; M<#;$:?s/;n[Dg9P^01''YXeR2rl٤d lf"~k}6g Fۯ(Έ h?$#KB#Q[aѷ;VwpE<瑗/_.d)HIv6_yU )'''%t#0j :cP4!Iu 3wxOaˆoCG&;zoJ0Kcpxfuz)E2xgIX9qZ۪+uYG38z*WQUzĨxa HfNdi@DZ'ɅB&=t6Xe3VVvԑaQZe?>k9PY}CCm)lpLmnjMV٫,ьTWW\.OO~U~1[yU>U1 O 2@͞o{=z卒їPgpvXx܂l8z1B*ވsC9CAs LR`fmUE}+-"A<ңvd}Pt~4udNhgaM_b򣣃5jyPvSv_Qjukz=<wMQd1MB^h`׾1̛X%7"<kjrőW׮>y)Fc)F$_K2%n`4f~JXv)+ٞltH>wr HaȔCj*;{9,IX:yo]Ю;萾ݯ'[-4}_?_ Xd*b@S$@! d!A\ͮ"~w?Tt h2c` 0S@3;7&@~)WL力VFM:~1–_=_z04 {Z34\HKI5=N-Qj$qG%_*됏W!qr\O‰}-$n.b .Lc*Wn=pt12ټZD]QVߥ էۖ?0ml&&?T6џPt+(nLj{۰g>L.t NL"1D @mspy$PKݞL1CQnuvola/64x64/apps/sodipodi.pngUT rlA;PQux -X 80!6ǥ(Bm%o%mN)rhl#Ӂ(1"TiB~B-f{>{]}}S[366xza'-^_kbQ Ñ="6, =:6O;L Tz 66_4ZhDvsj\#a_ńVd;rR`ը1^wgޔ6Wb {w,.25[+=R.R+/5*Q 0ܚge @i*wl㛚a갧u7r Xg?O&l "cK~}ѺL\SOml"jyAYP~ihIOS z<pxZȕAgu8XzhR)[58(L7Z,5'OCSHQ6kQakY6eS[g.Dҭg쇸2Wgl\@VWXJl >xb;m:y^Xۗbݣ3~KzEѵ=|cmm5>{FĠN}..k/9#dn+̶ﺾ=X_T`GJr!]}Z143Ji6ee _?V6nSbt2Ǘ/Bd.ez! W6y#8vF/;nA%Uժ  !j8Sg흻!T[ fxX6C@ɕbٌLjЈ$Q|4\循U _]YZt>˰VZv3*buY;Ӈs>|p {FlCh ? y1 ߰g[(\V88xKҡڭgLk=юɎ C@x4ei-pb0q[ħeGOOYJh.u}"xPq7fl"ȭO6E.]9nrHĹɠXwxg V"^ͥY{wd0ge;'|f-Iхßt+fS&b0(+?Eȴ^o,yQN6gZbQFPW9HriiZM|/ OS"vefr sb]X]䭥͒Ȧ>I7-*|\~ e\у5/05}zF/{9eKˉM|s|4o4-+|@h/y;qY*4GpabO}g^~ %_h{#GY+G[wf8A͐>$',?]ٴZ—F5MPdȼe^]'w3T#|^o5&b_5va(k=>dvXAߎƑF]/h5?;+xK& $Tfcf|{O _gЈIL8[[7UvXT*:Й(XD&#Kz9Ý(&:sIvț#;?,罯Tzn )xwT*CEٯ^R; 9DF߽SI5EC ϖO< ( ?X~0`E!׃XAQ6{_D,"U%?MNБ7Z!*`qwIÔFFIMKk;hOl3}kmr9ͩ76n>%IWy5d\%2(ε<䫕0R~3I:ƻ3ُa Y_q|SRJ_<Wq1I.f-}Ȣo`|q09_6tYD/杳'B i5|$w#5:_QbI!MJVdmq_U.ťi,ynS Y(kZ_F-`p:轪[ TmeꗽuEk-fPK˞L1?Q|]rnuvola/64x64/apps/style.pngUT NlABPQux  XLJP,+f[PfVV]*xVfj2Heht,0o(VDO{gy<_w=LU:BupfX;OVyt9]@tz_=sG9No%b;@vΓ n.Pp 7mqڸlڏIMi{PyKVPWV3$+ d@r ɗ`b=zk"^WxICfߛjYjDc+%Ü`Wݪh8Ĉ1#i=َu%$@Mr 2{X Kǧ{ivQOJ~w 1e4Qo:Lי` ŭlDOlq\~Jx:"m/]0%$Tl-k)/!lQ{O{<(z54k杶nK &րlS;gQ~Yn70L[ٰK)tM(t^۔Ħt \bm^?A7@=t3a1GL[?us'eM1onwRDt itSKT</("9m%'D~2˩ d>X'ebF+] sX!@T~5ZpﶒJſ11H~b;M ~upS ҕ}r/7n|Nx5ȋ HWиqeCe 3yj1w|TCZExvQ3nxD/CR?W||rUV2h`WhRq 2{`y_2-1|!?rO'Җb;|FD/)JK\-LsAg<ԘFZ?*ק˻8|#@nc9 ߣZ<+xL\a <9d})Nn[I;T0Axq~G~2uod)]i?$Q1g,ȏ$r*ഷa ? TǙ#z6`N"X>16cVrys3I;.Ƅᕳaz7~%S=jbţraO]Fnve]#nPҝ EJVAZkn`w*S5E c8?! ?MBc^adT}+`]S$U](iHiUN`XGҗPr)ڱ{z&3ghΆ# 1?+tl:)  V1He61lt>cjo1t,lj/p̀[SGgޟD&|7F ^o"8=2S-&+~r$ ?^!yK 0 f R*7ҦK4J=@a")nvmءNz_n\Qq1 +pY_=-_vH!y6;CwἉ^,&+e({R hY`@W7Ҷme^N;O<;Gq-WTѻK35'@O*!RnOnۤ+XYi''Na)M1$q]5B?F0_G-')zwp.*cs!h -Ř=VˣѺ`c2Af^c|/V_ h}y&5%Tn8\HuI!|zaq{^ ́^=C; 8|"c`SҎO݄ /o1.yJS @C)"Cn4a{'~ Oc~.o6gI)nJ#Տ8{R[Jhy O{Ē҉y8W BC<,H-ذ){nE H`~kֽͪa"4UålX[qsCčO TS~ZW#C;%/;~㱶QSvV2P,e6.1rl3IDnq*xjXz=̯%u7\kH,6U8.^MPzT!T3 }?y>3=5 Q9X&#yP`情.ձQ6^Si-[ٵ?0,Ѭu\Me&U$`SXYjiZ8Ѐ<9fpd%3ڲ2Seq.#d%ݿ!8n yyԷ+>?H$b|锡[)Ls^ъ=~\abq.S 4OR;d8vi)[½0Lagmy~Ô[$ }v& Eҧ7!2 ϫ/PŁ@q嬑R>*߭tJaM1!ECUP-EJՕL~AzG422s n>t>DݸzF-:,P0;p[ҰW-rD Чw:'Y'AM7+;0*EqƉl$o4Dw- [MF8WS&C+zV]4¼fҡa*w(0ۇSU >`+NTPK\h$pSF;܈wh * V8u_n-ZkQ' HMj=93]\O[zʄRZ㫆OXtcHݣUB15JA⋥dǑR;ʡoqQ:gXF×ڏ$ϣx^)z VT->]T'Mx͑6$O=^`~VR_k,fUZj0/YOR璕WkWɟ7R+S+׆P>|tVۿ(.'Rӓ*R6r6gi~[m"W4bp.PXP;,HJ؝.1ݢR%[Guԝ[Ip'eЋXPF\bIL-[pHa%{m{ 5t+&l~y 9:DQF?DR/d?$zE~hc#;X<  qZRH\ſi)}`}: ç3&)~3.r9ϤE[.]us-j%H"s)v&-BLyЭ\jGJ5n$I.&eЪEl;íp`_ " eb=ݤ4Ÿ >N"jouO·;n5ȹ]]&ZcFn1sx3ΚYԯ{iWC%Nxt73 t@ս'' ),]E\113L ZⱅLeKOʍijSSf(I*I: /G[)o}{QI6cKN|a}N+5>jDc 3+Zyk yqZV]vvM"Ҙj<RƌwR(c|FHxmqSxWz|s>P0^H(qpa q21l=|t@yQW2[dwwR0W3]$! tURZ5DX(^aU<YټOr^udG(aNf2\DBbӻ% W@@y)g}2v L[t/k*QNGM+SEB gz/?Uh1U=2}Ol X:ڱ1S:@lyX).9x8.H@?X\'XQƹ+[ N*̯\qY  J^VIEmkGu=rmgaή .^M\_VEuL5H|=.|66`#Ӌ. Rstgp i_|DCьm#vR# :|l?LVpe)f^-(jHt_7bӽm t2 aߣi 4!Fu+qǔxQZRۄ tTT[X2ԵmvѦ -ͯ2PQT^yST#>'foGO..AvO5b9 ZIDLd5^iFCW(ot>wK}:^<up Y d\V7cOh1px9 Qw F7;2LT}Ь ҵyQmlMrjF ]nkh ׄƍZQ,,XJW}щD8KAͰ)j8Qp`<~4%[V䄋N( V\Gݒ{ItK(i|gS9&uN6c̮]%fȶ va? 5S![{6Vwo)|ӄd({3w}*Ks YǘyxBi[yL!/M{eCwKh m`5QvgؑU=|ҢuJ|St@hsW5,M@ܗŽӂ{_ ֺGpJ[Q6QZ09Vh(Wۑ G2{> 9H?Zj^WA_B+xdCHZ+$M u/2'|*B7Dю9XKwRr\3M&J~MXxn@L@â\sK5 n bG$SX)C90R_ ~@(q+-1 z][k!5WK5MFm%xd$YܸLq|L< tx·,*"(ӊ_CXib\ .MK) bʇ~*%Y0Mw@NuyTJ3/nZz' u$#P9s'L <{0/ж -y^4 `W.8( // GN!fwpAe䀸rEXBFq׋Q A׸m |{l.B8 d VLADB,zm5)gЁآ6 r%J ]ö '04c-ePKҞL1d\'& f nuvola/64x64/apps/terminal.pngUT \lABPQux UW}<ۋMۘ"C٘T; D%oSƨC):VT95KQRQt&E/B%sy^׵67H+yʙ{p}~[3xA%ppkxo;0b3%%6r0!>4^%+f<=Obc ъ=Ed  @0 X^!q_OM4$Ry쁑raIST,j zu}&c`"X4 vqMXaHIQP2j!;'G\dϣ9{-t9f[RʰaUX)ON!ao>:9;MܐXgGFEyoA* jh==]i]LK_nϢxQoP;uBQbDQA%SDf^*?u,5'Oxu'@F0T̈́EvY>(ԛL I|'N&< nvvj/JO}gg~[=r;18iXo%Nӡ@;Y,@ZxwIrs< Ri%B[OK|Z\z*|ynն,,Pf5fT䨻x#^ %΋ʰL3V0`N(QT03nYA,v^&-$llmyp*h}9g,K{ĐJ(M@!0Awss<~% 71빳l4M:u6χ1B j@h d8rWa *ͮ4q|  r#̜rhy#~zbגƴ$?q?v~eL;!>m} [!A)\唼Q s^ fάp[o1 yP_MF[IglqLș*!pgĴ:ň,%#>eBSHΧvv`IvEa|儒W7B0J%o|S:%~$.bN: zxJQxߛ>WأK`[:y D,g2ʆږZ(1|ozV!`Qٕ UΣHy&U_ч s^q/Id>*ol/ni!$U;v7S>:\P*!!\K4c =5Tws -rVK@mmԧ//4G[͢dِ!_K<5.y~gjJu..p+D*MnK=O2"96B*- aeT%k(m> [-_m1L)bkk:FSHE՝s*CAtP0yo:t^cpNs7ӕ/QFFh9~ºGε/F-:hbQv!\Qw2 Q4~~9uEK>8y.ˍ&*˩KW^):>r587X/ 7( ~q8mH&'x@RCuz/mAllal&/PT6ɫ^L6Qw~i k( bdcص:-ob1U&PY~~fٹ^ܢ2?OMMTx4K|"pybz;/+ק>BNPَs*ŔrK/lgZdu #zEW{{wK $ypʶ{(T \ ٿR6D2}vH9#<.E$ܤ$'IeEt61 p'|pJ"@y_P*wt |7R>BBswe/׷+}U!GQ32\Wr1bYfϏ>gAH?}Y{/(ڶk3J_0튙n /lJÒDxH>F2km\F/˅"DTE0qP嫶>^kɨc|SW̨t#Tyj2j7RD=m+^6,J ŒikBԜmJU|EYր\&iE%̬(+43D[!~ P`]+IgcT!&˃"D5e/pJHN6LyjADf;ۘͩ*d3K%`(LX2<7dk)ݏ<& 0I&SHv JuܯesbD .υKbo'I N#oZ :#(owl*V22zv,y<0}3{颸gٝxoK Bֺ)Ӄ@1bL-9csɢ0:J0@^HC~Hy~y/`e<~gU M~r{j᏶U4 }[\cD֥jɏXwOڧ%l-ti'޳nZ n-7ی0;ڵam%4ULۢ)Za}:#Ń+-B&͆66:C1GO%э_ʇ'U_L4vpoU?grP4,Xp-[+ n?B{\MpRwff 4R @ne5jL1ZS>00 >z%,(F܁!c.<<_d҈E=HxP+. PK՞L1:wSnuvola/64x64/apps/usb.pngUT blA>PQux }x{4[;^^onfH3TRf[tSBg0! 5Ԥ"]DpRGrʉqkP׊`u~߽k<wmkda\mZ ͮuHO_O\ .~of8z xDz$#=ZF0EQ 0UUJ H6ߌ. pf=4>`1Lwf0-[|j+P(i^HuFUv@. cz=K1k,L\jÂS5ԦYԍ p_`P9K1f4w?v M_y%4F˓8pNK=F)Ffx!z~ʹ>U7V`;4l7Oa#q,y>M(G mTu Zd& c ʫ|VuѼ;"t Ow:hy~UJ]r>U_ k;W5He/ P9 6a-eUBNxz\)mzvl'#k#.P<>0YhzIWdp_1LSF2桘[ 8 &H:N͓*3 Zxz(:|9Kw Ԕ A{&swDx˯DXwv/Z"Hԝ))eӈ%ldUH}GY/QXBc&! :~>&R6yxJ'}H߃:Sxg%|,-s-jv/)HN'p@y%|"5zNLRQʁ\f`MV*Kқ#Sunzb=e .]p 2@8AZTmx)LfmMm- MFKn$M_Vipޝ7L&g 4>X "q^e#c?@R cgtITsJ_UB_Ҙὡ$sGG[Hq-:D7 AHѕ1&svmo\f?epHuWN(q7LA'(CQw=5X}%=n|\}+Dp7Kx)[Kba45[Br` _=In( >Q笄le?jp"4d< 7^@vFеt9R~i6-^%~"l.ee 07҂B!# PRNO^PsвFJ@NQiB12:nnÉm!i$A7LZ?rD]5fiIfeuک`|S,u|H:v*)T84o<Ӳdwq>"<Ί^rBmX2wf \5w`U;e3D'SD'8>eL޻Oޡ>v-(Kkp7>2p+ !y!xO3&Lz=36qN~-w]-Mg;Zwlv~f:xnK,;8XܓQM%G ~~1TE`Jqq1`UMŹ> uF`\W{j`cg Pd`Gf;TeKwK9lZ'©sʷMPkAQv:Qs v\ÔޏQpjUE :PGuKYLdi'݈+WKyEGNgxs:2!MI+y\,IvGЕL^U" a"הq)m|`3Ls8AIQ+lGOa~Ac^Bni6Ґ=)st_n k,~!0jޙ3|=%Yb2ñ(eE+ܭwj Z_f%F]Ja27i{9m/:^P|#so &g6-ך¡#qӁeI1Nz(:)Vp8SqwUfK놨TĢcO+L~V'cp2tÅYm7TCC"ٕXE7YpN<6C y!d̎r{~ R*o-HN=م[6>, cjݼ؍y[;"K8 ҽl|{}D|]?b%0ӽQ#)O#=.= 7l T4NY6H3q | sR ڜ+BCܬ>L׎'ecӈ> "ߛK-hYH澇3s\w[%:b0IS ^ OKM8W4vlvAw#˅"շ:Il%/,Uufr`©7+{/jPM͑v> %3Gj$ct@ia礷I0Kaϋ}FM"a#ɼ[?EhH:OApWѮ}vޣG,#;S)ǎTv*O9s#x̸7zW B_ " xqt0M %qY$ɡZ\I S |A}~]eU/Vxy4e(őp{}DI"j̯d2gnm=?H<= KxƗם6[H-!:6#G{}Ze{z#x}*|kAo ! ^{$拣1Rշ(Q٪'AjEaq2j& }A:_OO ):+HUߒ/˯!-#Iz2IqUζξQucdKlv [V>κ$&5\ĺy2>p.fm6I @k~Я5PjGKhEH5wGpm\Du#p ͻh9+rԼaJ6m:KPS[8ZuT͙~=8Fh.2&4{]^\#Oɓ@>fフB#f3/+} ȼU(:ӷ& %z|4V$ DQ#E@?/^%% tX5Zz9_-^,\r `:^b"$nD$d/վ9"9.]'ϦsT>ESӱv_QZviO)v3{j_Ct-@Ƒ|AhL84}tZ*EjU?FGG~?c]1\w49$W[RϲћPoAmrtQ D!ysWV1t|O!-ݩ \K8X4` SA>ǮfҿNJbSWvYu\ fyצ'^3PKL1ak˘  !nuvola/64x64/apps/window_list.pngUT xlA?PQux m{բ[2]5TV<>xwl;rw(EJ z`z[;\+YfQ hхfT|_}XCJKרk]8 v]i.M^ԭ\'$ (enGź ]7:qTF]fc4[T4HnZMnE5KnŝR2f sʖW}FbT4xoLPe/ڬ`_;0ѐ?no ?%5aPRLL`@v9ĎkiW*51Quv*/:| F8AF-Mc*ExE˞^㟲Ͳbݷoi ex\">Wvk~P$@l9P禗@~]TGedzPn(o<\>@ZfzP;2/> $dNlITckCX 4Q爳+ X3Z 33 G|1 )=Iݨa,(Vlje)P8 9k6WJ}z훻$T'faqxUiVѿ.SEs.Fe'|nuw`V1*+Qf5taTSصE݁y7 P25aERn,$#JGT~ԷK_gܶo(S=$O,~y%",`/8臿5F?kв_#K%/Hb)mwoO@5pIl$SbTO EelW3>roq W~/=;9ct0D!1R0n*% FVN-"j1jQ.:t^ LPb>19ҷbMLZ3& 9(S-/i[7ft/ŃuDT*qHm;=.jUϲj-h.bcK₝S: />?:0A'K9Cp60VX;L9(ϖ{,qs`Q{_pdSDc3AR߮z"A`8@Υ20uXlJ__vWȝ֘{T*;\A}j KN%O.9ᏫG,w_4՛c+چ<}.f'@c<e;Ge'44Un9s vgn ClL{b[)7+nR-`5 k)p ¾Vo80Y7ww͘dH߱/4-ZAy-'dnF<զ*:}h0׽ W 0Fcwa}Ң5b8)T2:*\zbOCnuvola/64x64/apps/winprops.pngUT nZAwouLs,BC#3gB{I2wڽq7ˣlOJ3~G"MOnONLO{G" ,iܵze+B s.CEZ0Z袠,Rː֍`DW;XMcLPF%O؀KZR-dbJRRlś<7zv)j`H'р*E(HEMظ>B4#B "ϽaR~̀ L%H"&_WPeFQRqcNNLKWUUm_.lu#Ǐ5pn[#ȏýk6ȋpwCd):*\3(AA.I$("4=t佹"巑^{hJE?I=V Rl hNhj:'H$ _޾# faqMz[L#^/ISUdl%1s)A͜BH4N+^hRc^_ŻT;ُ۷)ȌEɰ;aev=6)Mcq6dYH5LZ=jd:F`c0܏RiW40*h>`MS};P_1l蔔%Tqt Hu#p@k 6P'?4繕_ߒ77 ;Ai2:4IQvnBJIV굽YcȚ-5V*2܋Ő{i)O%Μ! X>fV~PY=1( 3c|顛a4pM'hʕP̻wi_;HFxR!vIWĵ:=oɡnV͐y_v}Rb)G(~|5QeWnRZ銄]CHڋ )v?Iw1є˗7=mlαlp-q2kywц~%ݧXmN9N+v|d-n+p%B˷Oz:0H% YKX`Tf/5@K3sݞJXNb?A-OPqpı>JށfJ z퐒bT=,8\~+E7kTuIcۆ C 4ŧ=ʵP m>s;;<彵dQ+LU!1WR̂^,^j9? >1 *h M5+אt/D{;z!Y;#TQU-8u:)/^v>,(l6Y9V'`4,EIhGk#=Z40IJ!< QlWh0Nj&. {5>{ٮONz t"V*UřJ|^9@1nۿn0갩HWwr\a?}ӾpRuf|$ʻuM?ҽ*\rz*fHk*8)kdywYe2vK:ZRxB4oL4^TuNjɜF=":7zⵘB'(!lYkM3aH|Mu>?IM>/A-}:!}H?ϸ?xk_+^yk3y Y'xHG{&ۂ^MY2Nt;\Dzj6f>vo>o(ex9H/ve,Ac6N:LɎhF{-icuOuʾ/g%7}#/lFloP;NqeEPߪXbl~ ċE xS١% BAۡ8bܝ|e)^UyFr$w&8qSdPrF,jU;JzK^/'\ѣ$" Y:1Oƛx^EfAQFFz~'+F|sRū.ʀz&jq4U&ڍ-$o%v'0sT Uդ|`_^ZwDbg}s|U?Op# Zjy%J- 3Lʝ`s'Z`%wssz!h %gܶĀIZܓX2[Nlanp tsIKa3w6^1zŎ:kX;W'ѴCCA?_|e1%r0Em\'ܭ(6Q7Gm{jTUpip-?uG2F>隆F5xʡJPZl"M6vl`swM/a0K$%&ϱ͢G(gڄ& x 19wW(6~(-+@a;nFLvcr+fyLkLוrxٲÎ|) IpBPgqj]9y!/m4<`3$?TSMc)=gIć%wLB i)~'Wgryx=u`}uN#9Lʪq+U9&+ 2jr ,Nc6I l I2qݪM{8|gʠ*jGT Ĭ@S'0 It}󶷃g߁=|ymN"t@2\^krz)vAob^ޛMHc KqRqčfF9Z&v(_pB| E I79uV\Cp ~䲼%Np]N$'̽a" s0 ,%'4 볛Uczzq)u &2Rq%C7'@qQMfZwR=^Z]V0 ȿ905ڈЕXvL-yaݡat<7?nhV%gA|d v/UjJ !!4՚G4W͂-T2w+!N/d#TD +/3g[ar\X&0Yy-]xS݅H=h^Y`IUUUv_ Assjem_`-N4N%j̹w`AOg?S㓥ӽ|w^P?!Vo7X7V|6–ۂޕ$@>ۛnfO&WuwhȯI/ǧ'e9V~yΐf e&9ܽ΃ni%K[2 Q]!Ji6qq{Oy:+(h%Z]@+Ad+* 2,7ْ |vHpם`PNMr&4lw 5w;Q罃GI(b/TF>Jyki+Rc> @#ujSO̯ b=W 2ks* 2Ld|0 1dxUywo]tiqsz@e_uܛ.ɒey,:jȽ,La6Og5QTa> R"?#CMIg϶1?mse}My 1Ob ueE.J{t#JN9"I ڹےB41Zi827Y=q }) 3ܹO"mAOTIMqI\#\M_fkBtzEe=%h744|rjjXZ3!I6~F&(cK*ѧfeOo[HcLtplS׋EN̪ٙlCzCVP2E.!N©X#  8?񮣢 Yd ASC54i_55&6smJ}0(R}=opu䁿pا")">U w@,t˲[I[b FuX}?suKw`XRFuFPU>AU?.lc9GJ sy3i-Ҡh:9;@߅(}{P&cE78C饠x;GJ3*< \Ӛn$ YFwl<whLaӥ74`n##!}sS}ۈgj+Jՠ)B'`FiG2Ki cWZ}+t[~յTldLZ:Ӕk_|Ц!Q"94+t=_]u]ǀ0%Z|ǖLI5#t@MAS>.yú,&0~lxljV2 c茖Ezy݇dg/c4Ni !b+"H)[*\AhNCZS,? \zs06xDLVVshī(wfZ(3" Vǵ_ljQ }.R \W~T_~G_En;0Vv;kpYona V 6~T8(P-We*o\|3C#0&=jBh$ĖKwrEN#YI!e=c7Ic54i9Umokx/LCg܄yL'Hz)Y,h{ob]3: OJ$hb]ulI00ugx&?'F㯯J 3#ZҫcR7j.Vf&VW{1x!q?14C '&P#Ĕk)&ѢwX4j`cQi;ʝ'lw&C47[f5?K 9̭`^3n=p{qAINtΖ]BV dGe*6z}}7bPQUף E:3ö${@Q6qȴ=t"/0&*D+6x§52zLIRIr ^F.Ao|&W)ǀKNvnnњ-, s+UoQbx4k?J6ǐWFk`:, \􍰜tj:;lp2[(qLBpA|;&_|i旎4*?¥ӚOP7eaZȪ>}&r UˊYxnʊMsfրSY_ۗHf*Ҹ6^]'!e!3 !V8W_>86YeqyDWQ,G_CAPo&m0 {^OXzp;7J]8ynHǵ4Yd=rx}$NK~hO 雛/%gLrp%S-N4Đ {^z<KgN8)8W#y 2+[m~Aw4oTl48"E[у1]]B+K  A3uM%A-^,_͞t(]AI?/]3.lG' s8+,vD ymYZz_`j'' d$9JU k]KzxބUKw{/݀;c˪:'2Г=r̀ N=XŢvnqNe$hNq: ʄ#J|@ʢVo@[YF |B(gxQʘNHa-EkN`zCpƫsӖ~,VSMBbgH?q6."Ϧ3ۭk],=Fۓs43;ݨ`リP=*su~ŝD#Lq jq R/ sKJ_2}oPaU];`A;o.){{쿧<^pO!: K-oVf*1I/?q_]4!Vmш;T?&Շ aTm` 0w+GvgΝ=;JZЦsz 7EPyB֊#,]:y2\o}+Ͳgnߖ͎!7dž qÍJ8eLi3r&_GŒ73K_[{Ri~eNpm3*lc'L{SXP9 )b$u4t we͕/tԆh6^uo= AS ̛X%ʟV*ysncFg͚ΎO%Pt}] ^1_3B,Taf@Q !Rag(4%nZC&&?*?wrx@;Q%5TUU;pON}lvgGodx JOWpg/W%Ls#^Uc><'&RΒ۬ݎRdTyΝ;{& /6@2IHN< T.3~44^*h+%T4UVk-щo G%@Q$7Lf%bҁh _vVlǧPKL1m-9'Unuvola/64x64/apps/xapp.pngUT lABPQux mX{<ocۥP.) rݕUus6JBIdR*b MD.﾿￿x^su^١eέT&R?9Sj{<ꝣQ}nsŅa3Aa‚Bc\P@B_H҂myd,6 P4t_( J7{cs BZ4eC5D ȌC5k,.͠!sy,VPjC(N.x$$ZLD)ɐ{ge8Bj.wH&;YO'- ,ʺ?^K6d=Q@`Li\&YŜ ʿ'F᭭dB}ac9,"UĤ&/ϒw=V.eD8:-۫ 74$}`-ț>T%C%SV儅 uT릌pN^;ҖۼrE " ÉZU;G}Ft=%ա őƈ_?XjoZz l7@_zar,/ Yr -KM8΂.wc=OJF})Tlo8A"7F70ޞp$C$E;IV2V38NT}nW1hF4 /wJP4͎&xaF {}u[ȋ -&L,?p='dRsMB O;, OK=vi5rv˪x`HI$ֹ*qXMM3&(#!yDSdL`ن^9Oyv~ L=[*Uw44ta޽mlQ>N7c*j% 4voi' P@P}\oiM GteY yD%uoYIm6KB|y|!ʚ..MDZ~+K6"nw,8.fB\5÷Ff\p}%&W0iFj_Z *HBt9yėׅ٥!YŠ"mf41+)C%I*gr F^9$Q|RKm =vAW&NL0 '`I  6f8SHs+*Ү„K;L vmc⪱+.R;iyd~#a4l*~+\#p'^뫃i˖V$WsM\+/k'!+.6&ڲafM{Z0o*5y~.s;V;`B- eqKl]$1?\$!ކ'oNU%y$+Xgz&YE03KʮVCA %PhsEZbEYb5[>މ]S  ?4&=gqC׬X L s|}"-Z0:v3}bHdRtzVanIz.FмOUp$hx+_Gg~i CEFdeh$es}1+qЂق")]9$vzT*ېZYFU6s޾=|c\LeyhQ:]g|"-^IJ `- VYm\!ُQcέDWG wu¦3 "Qe%"v8ss/?9w\j6P>|B{']M ŴFo>1 ys_0ɊLZsS?KSY.թFP5s8uWbde z`DFF"&X*DXtG 4޵x#j| V X^λ8; *951fű@xOY#w[g[eb_&u!o '6b=l-Ԑ@ Mc20 SRE{l9Sv,o蹾4MOڣՋF v>ֈ/̸9ooM,{Юrd+ if*ŖVk2"41whybm>[+7PKt91d/nuvola/64x64/apps/xcalc.pngUT gUAAPQux -Y 8S?؆3\KblQI%IJm6cTBR̷, ]mK.QMٔKe}=<|9y>~_>gi>jjxy*GP^TlqT9K?1䮘a54&8%M<&t[<~  w~MlPG܊E*!UK%GX~[8܎-CS}䐸aQlWa_,((0'p;19yicKrx/ψHL܉qV(!P ;ivgꡰYAnU~ӨD9 J15ҽ5if=0-..L_u G,pA7)4ƈu 3nWE!ሢ٥:G'; FX)*oapǕ+P&]f-5qёߘP>ݷƳԍoH:KOZ8:ŜJv9|*6A6h3>WKvM֣C{1}%.{EchA&+t vƺgXk+O Nn nL-N:3q{C2Piߝ'FĜt^W1 Ňh .V'ӗ鴏>F¬dw}\Ώ f3L試Z2o|B)n"#8uEEYSw'5K.kFQcQq Rh ydA8WJHtw3pQVUsc AC2'&]_q$o`]@ 6<5%)BIPޟރ`+šޞٸ]:%|[|[+wWLpnV4 ,MLR J YE<B3I\x/{/ Qe$5{^$'fI䂝%S.;-UWI7o?II\NrKK,Hf_$;F D4#?6 fipiJ~JȬ ԿK4┈b_0FB@%n튨ާSt-XeI9,_ιҌ-ѩ]\z[UGK7iw"vJTԏ6V&&uK UgNœ7v؟z6>RTO. mS~~Hve'zZu=g\-_RkB7DB E beDdDgW^Ǯ[ P]@-ACGU:BySdG:M#2TR0QWhoZm"-CKSt+хֶ6;///֗֘ KRmuxVβG(&΁q/[e(KфN |FS,7({TsukkTDtt4֖1حpy1ȟi It$N$ O0Cgu#QލOqBlVз^h:{E | ))BK-Ob 5zjc =bcNq(|)<ҋ7?) g p =tF%:?~DZ9rLqq1*^yYjO3:ibBE/DVM5?(ߵ-QZ]!.H#6|W}OLΒ$U!s=LJE]0Xd"=aC\9˹3G6֯1ud2yUYߖ5mY{sgRs};l!:ވqnHlć%K4)ַXmmD\)S EŸ/ C{nv7~\`APNo5VzsC1I$yD伺דHcH i3#_Mk5누 `Hs_}8Wv6iå/*oǏ<;iMR}Zyyo^ʊS;]!걇`3}W\B x}S͜Tߪ ҿw ~7Soܝt8Z¸OB02 }h?0,]4ybK-1񞞞m۷ dKB@mK <*WOc:!okdNuss[giyC;Hp'Nt79%N0X ::~(Gx Zu=by '#-TA}*25e*WLĊ:Ȯ%+{.KmIaC[xF#vp%Jq4v!oG֒a.'zGl%E]Gɞ+F^[_קU%Z0JlEU>;u21J⋏|N2!p{vRg0ϢOԸ a K+(Grzh{YT0!Zx[k{x]4ݯϜrӃ# rԝ(oYD]㴀l55ƅIy_7mȔ lυ Q.^$F%ͰVnHMMšKְebؓ|tJxC ''MeIhǣZMۼOj_g8j/Q=\{Fv)+]U5Lp9'>,ҝY ߎW&`ܕ^Dv5]X)XI~7J6T+(Jx[+(i[Z׃zߟn8? P;OZLB%8 ڽcϡ , j5iڵQ ە#PޚSH#(JPH$ֈ1ea(gm#0Hl1$FNd2'8b(7~HS]]zzoޏM9^ ~m-ۚYl$v*oE/n kni ڬȤ6bTv`ɯ3{IEy=i2GR1QAVMLjR(}#bVn^xHǢE=P~割iԤl~{/>VxYHʺ$GMJplυ5 EE6e#G;gkOgO6_Q:4 o]zc9VQXPPjN٭_!b-9'> Ӈҵu|ſ܍+o'% \EP(^ZsI\]/D|V6_rzLJAs?5iY d^rrxǁn8sٶ-HkO0Qy:_BGsiAh rBg&Ajhdy)BYze^so Kfm~tW`TXl-JDtjA58N;[tu}^=l vڥÇ\W$ҩj!D nȑ _V*o5 ެn@ o7]s5  $UwjJ }xԠ觾E! b}rLxwu,t#P9?S՚SST-9`z4 ad}A>B&xy;>WM /["j{_x3SA3WXo"*7wɤEMe; [p}R@դ i,U#~޺WBBe ;hty0mӰ~(!7r`E][qW ƝOJ.X@8H\6,PЕ5ח7BWxbj.Uܼ3++}AG9f ۃT % 蝴) 扡~SyrWv,vH&_j H]vaqY콿VsYE/P}(б{XȁvX|8sho4LzeԲLR]),d P[6x>@O?PK}L1c""nuvola/64x64/apps/xclock.pngUT lA۱%!faefhxiƌR&*͌ɐ6-DI%sK[^K#"co~|<}_}]W? ϰkB-R,y,X)`%#&I}C);aDӦbzˢY淶`d.5%G]3l;> /sD1PGql#;|G_v%ߊF%;ߐ蘓<'JPhW{0*FX} ADI/YX'j+ȄVn6Lߍ *9NJ4Ң[b^{ ?'?if_s`2U@./qЊػ3} o;`%]0N%ʀ Dױ0 iG)λB?'15Mp Wϧ'~rRC :_Xfٍ؝xČ3s}RKр 4m!Z./JdSN)v]V<ߵe%sӿ75~6C?I73[~_J-M+{Ox(s¯lb_t䜩ճHރk?Kd`t77OJ $Q)L|MA_ս1 1hS)ŝ;\6@q*s S?N;}:AKzal's|߀TgF-ʐ ;#GյBIݻD.O #/Bj U/FpcժU0<<SR}KƇ 6tqC=IuΪR=\Ȟ)K5WIÄڃ@%՚j*кpgyOK>wB~M} &;k#l%Hz#r(*1otlEZE *94M .'zb7&lЭD/ŪNqsWhRY93C- gq osd} SY {Q5 bձ; 43F\[~^ؾ4?7l8Q?50zWHxڻWߛP"9uuG?j&Is/:4k0Fp"stj{P"a]HN0÷I/4L?/8[6%%%ڼpz5{3&MmL8x\]W~r,1jFԸpq kb@/00fH%j5j%#<"744nxL:HUK^$[U?BdyP\Sx'}uG ǎZ߽# KE鸠6|>g%z M( V׵dOb1`W)&'U %Mj) ̼~!^9uUܒ:XlyH9MbmS=J1Fe؎T[}˂X!Dl[ Ll "og9PgWeh~u@S7;;c{3fG7U[sˋ`g}8JO|k泺\kҚ 7dnr9W5v1lx ܇Rux>?zH0M۾ڵ6tr\]Pβkƫa౪Un$vⰞ%Fqoypߚ5xF8厔䕜RΛ[4bX o_v lVu yaz̩X NkNDylnK~M rEu`w=i *K:]sMBI[ Z8;rF-A;"I.;4 'ZFWhNXJ)'F(kNQ:jv`x$HZضH5,ҕ`1Ontz}G*Ik%+$D߽{N~e  cH.!F cPmrԬXֶ~D1@k@~6jFPၭkIPTT~M5bS|iz-3;oл0pa+㬂 @7K-O`%N03},rx}"sɼ*Vx'NtB57+ø!$ae ^Q qQ%anAA+ouz[/>͵}z6wjVLF61!p%O|Ozi76J3h dkdrم ~b?\gE,j9 5,pniD`}y/,U"]'tȀZ14Lٳ;l]㠰PgM)$jR 74>toV2t4`y{ ˸ U\ȳ(TctO!뷯 ;0&TOdlm zj7ZTQx =},nM'l6["HeۃRkT5!&SNE9{v<Üq3p1%Nz~>Vߒ&s {Ç@m,:HjS.}?KBӢ}* &')ӄKO "3Y(E 9#Aч/5hM!=+7+\Qf:oR=Zݵ{/#)PwP},B|(]lsE}e&㥭pΔuxPQ+{;dCdR ogn=a~o!t_ u/ BSUtjVk3H$EILjGaAYWA3萔qu3/÷rx1:By73+{h啽E峑/u)^%[m#)S]CPHFXS+c<<^Â*}Q'쬭+ !H:=n]x~mV-YGfU{C10v,ewNgA)(!Y!͖ɗm:&eyd|~ /=FyN谠Cs>4m,8o6CBsNuo;@D ϮW^@.݆u;}贛 vB!d>Y Z9ʢY E,oSs~+$x# IO|.k:B?K. 4psagĴyeAA {YZ(tũDd3;&A|_Mt'YfqR+~{넾LHNN`zM*#Y2Rh.jf=*J,9@ޯ%TARe{iX"k;)<"9f!6m[^JaztqY<$}N{Gyvy?ݗȟ8@veh+_jH=d@=<ƞV4RJ)\+Z5"[N6טYa)L YE#Ӂk} f)? }諆 HS36%My !Gapk5"$3~ MWW(f-KN!% hOaEoՇxKos]μI9B{X4]z;qY4"V.jMr֟\b`K@C@YX!֔M7F"oߺYH@I.??,DtՙuV8 kwJrdaOEłv:KJcgE!Bkڸɡ o]46s+>ΰL:I{;o*R_0޶ōrv9pqX[Tu,;jF/sD'UULbPF̙Ӽ+QnI]ٱQtMͥq/K;{ڟo|\5ws$xlXcfT2y1g AGU-H:. Z[N]杖M5gy,\R^̖μ#?b7D=eă؏y+0P] z*3u{,D Wz<Y }WFs[B wNǫ %8_O\DSXU8xIn$j8Q\ ?ڛ`/ģk,w왋uT"ϕ{ ؍DQZm60UWa_=}BX@0}*_l wdeqE,9 lN^3-X;CS7N 2tM?aR3sfё\LJu|g2ʨ5x7@Wܘ0lL&ror i)uǍ1ʣ X|Y.gIqԎ)zٞ0r@)p =* i0K+TtpJRsIimS flvI#8X@"b 7ЭgxhUp)F4mϑ0^dXa^^a%HJRu<X#5Z:mݭoٹWlP/V@;iWmضm'Xa×pF8c]ޢ huldIxȦ&uEi>'25!k tF{}+36Mޟ.#gˎΦuYBÿ[꒵bsZGv."HapXajK;\pߴHʽV/v'׭+C氹GØ(M*w=@QUy嶠{Cia{ZG3%\@ڶ#WzPKL1wy3]nuvola/64x64/apps/xconfig.pngUT lAqčfF9Z&v(_pB| E I79uV\Cp ~䲼%Np]N$'̽a" s0 ,%'4 볛Uczzq)u &2Rq%C7'@qQMfZwR=^Z]V0 ȿ905ڈЕXvL-yaݡat<7?nhV%gA|d v/UjJ !!4՚G4W͂-T2w+!N/d#TD +/3g[ar\X&0Yy-]xS݅H=h^Y`IUUUv_ Assjem_`-N4N%j̹w`AOg?S㓥ӽ|w^P?!Vo7X7V|6–ۂޕ$@>ۛnfO&WuwhȯI/ǧ'e9V~yΐf e&9ܽ΃ni%K[2 Q]!Ji6qq{Oy:+(h%Z]@+Ad+* 2,7ْ |vHpם`PNMr&4lw 5w;Q罃GI(b/TF>Jyki+Rc> @#ujSO̯ b=W 2ks* 2Ld|0 1dxUywo]tiqsz@e_uܛ.ɒey,:jȽ,La6Og5QTa> R"?#CMIg϶1?mse}My 1Ob ueE.J{t#JN9"I ڹےB41Zi827Y=q }) 3ܹO"mAOTIMqI\#\M_fkBtzEe=%h744|rjjXZ3!I6~F&(cK*ѧfeOo[HcLtplS׋EN̪ٙlCzCVP2E.!N©X#  8?񮣢 Yd ASC54i_55&6smJ}0(R}=opu䁿pا")">U w@,t˲[I[b FuX}?suKw`XRFuFPU>AU?.lc9GJ sy3i-Ҡh:9;@߅(}{P&cE78C饠x;GJ3*< \Ӛn$ YFwl<whLaӥ74`n##!}sS}ۈgj+Jՠ)B'`FiG2Ki cWZ}+t[~յTldLZ:Ӕk_|Ц!Q"94+t=_]u]ǀ0%Z|ǖLI5#t@MAS>.yú,&0~lxljV2 c茖Ezy݇dg/c4Ni !b+"H)[*\AhNCZS,? \zs06xDLVVshī(wfZ(3" Vǵ_ljQ }.R \W~T_~G_En;0Vv;kpYona V 6~T8(P-We*o\|3C#0&=jBh$ĖKwrEN#YI!e=c7Ic54i9Umokx/LCg܄yL'Hz)Y,h{ob]3: OJ$hb]ulI00ugx&?'F㯯J 3#ZҫcR7j.Vf&VW{1x!q?14C '&P#Ĕk)&ѢwX4j`cQi;ʝ'lw&C47[f5?K 9̭`^3n=p{qAINtΖ]BV dGe*6z}}7bPQUף E:3ö${@Q6qȴ=t"/0&*D+6x§52zLIRIr ^F.Ao|&W)ǀKNvnnњ-, s+UoQbx4k?J6ǐWFk`:, \􍰜tj:;lp2[(qLBpA|;&_|i旎4*?¥ӚOP7eaZȪ>}&r UˊYxnʊMsfրSY_ۗHf*Ҹ6^]'!e!3 !V8W_>86YeqyDWQ,G_CAPo&m0 {^OXzp;7J]8ynHǵ4Yd=rx}$NK~hO 雛/%gLrp%S-N4Đ {^z<KgN8)8W#y 2+[m~Aw4oTl48"E[у1]]B+K  A3uM%A-^,_͞t(]AI?/]3.lG' s8+,vD ymYZz_`j'' d$9JU k]KzxބUKw{/݀;c˪:'2Г=r̀ N=XŢvnqNe$hNq: ʄ#J|@ʢVo@[YF |B(gxQʘNHa-EkN`zCpƫsӖ~,VSMBbgH?q6."Ϧ3ۭk],=Fۓs43;ݨ`リP=*su~ŝD#Lq jq R/ sKJ_2}oPaU];`A;o.){{쿧<^pO!: K-oVf*1I/?q_]4!Vmш;T?&Շ aTm` 0w+GvgΝ=;JZЦsz 7EPyB֊#,]:y2\o}+Ͳgnߖ͎!7dž qÍJ8eLi3r&_GŒ73K_[{Ri~eNpm3*lc'L{SXP9 )b$u4t we͕/tԆh6^uo= AS ̛X%ʟV*ysncFg͚ΎO%Pt}] ^1_3B,Taf@Q !Rag(4%nZC&&?*?wrx@;Q%5TUU;pON}lvgGodx JOWpg/W%Ls#^Uc><'&RΒ۬ݎRdTyΝ;{& /6@2IHN< T.3~44^*h+%T4UVk-щo G%@Q$7Lf%bҁh _vVlǧPKt91/cX]nuvola/64x64/apps/xemacs.pngUT gUA>PQux Xy @K&Eqt h~yƞo45^`:\[ $ BC&`ͤߴY^ +)_`$4Sf$]+6'4#f58V*A-}R xV{ݜoݺ:02z2'mI_άV%6WIPo}I4]8<A?n"_b(gЂa܍TUO\{ĭ+WPF""SG>OؘD⥑IլN@%>}V e`kT+jQO ӧwl88Vtڸ2f=2? vF ԐϿ7HT ro"MMM6Aܰ`}uv[Y(ĻSV-zΒ 1Mv Dsg9Xt8N:# R#rz%6;CB8ЧtӆFFxqxMtϯA'V ¬23̔0/&vGhc *m6&AVh(J:hŻwZqqqa)+c{͏6G)Y]dnjgI;IE r[+? YGO%nV ~275h{mYy{a`;-'lk451 GO b~4x`CJ>{Xn1EϬÐO)¯zaG7J9ʼnT8Tuvv\]\?&撼 ̹ij&K2?V[U/\`3m(K %  vHTn!2<D-g*rg`l, 'MPVsi뭈 Fq#oggf6d ޛ#13%p 61:% :ʆkVo^WVVW@\=].&'|dR>*b?.MO5лvBfݜR4 ?70МͦA g'P%>wQd 2~6FJP(TV7`-¯ț,pA+c`8Ү# "~f.Nk\F*i&g=:+ S+DKerA[}sHJöuɪIOOpf+Q(پBn˔Z 4rY;09ْ'vtdl-tDNurGI͏/)4O_e*v}/! 9wk^lYvfaoqnΛB0?s?N|XZMۿ_+-#yNNvΪppsi(uC+Mڮɔ(0nbfJ @ "Ļ fh_ɓ+\iqPdS>aYm֭[j0ӗ/ɽJ4)άndwʇ'W۹KC`Q87?O%eOUSB ԄKIϏO$k%66Jtbv0g>Ԏ^K6!hȉɊeHcþ? jh7rWxAEq|bv\ZKW)i*$^4޻ЛC \Uhr^{ظi|JS"|rۙ M{J*9CגpU FJv9nT_ _̋l(g*vnNƁXRMMt #~!?TA{I;OtPom7xiB5d gVz9-<_fo6R!/'݉OO߫nʗ;( du`UjNNVEHk!̱`Z_UH;tO=y:(;i `ߒ*P7*}uqrrrc{˵oGC1K̖}`zn! [ \ȗU3`HOQ@M<56Tp>|{!Ӂyc7r{yr˃506T|'d/0!h˟n)^Y!mr};.sr:s|h2htuC/t ,%()%f'D;@\g2#uy'RaKS߭qi1 Mg ?Vb)D[8$X9L*o Vo@ݰ<؜~o>2[{U-C111L[p}4Q=mO3W$Ȧg@$m܁`߲rE&Zmn^G7tyu7jV$NSp쳩 Бh H `fi,n,Ē˲*b1KL\KG⸟xUngz0'^([W_Xj+6 KBÅT7V=7~~'Fgww!2m;= C?u&Bc'/xmDZb`&c0l[i?1Gi>L'(H*D]*:Wxn(Wa7]a3WֿYR/[wG-3SHN48^9w-19~wUhd%}{N]3sq$b4.A0*n+@3{ ]5H*%5N&0g$h1%&fjk~uJSO8M &+E7WLf &$Q13eknq\cVa&u)iCIz_IvK C[i:ʜ[. st1;wں[gy3 ^ I$Wn9*-`x'bΗH'ovEYJOkeEnPbWb^5[D&e+C6jTsk,xc/?d+V~c0?%ȵ2hfPdm9e7 g6&'iKROnv.!{v0yGP rȔLXqsV4; ]s 4>>^ߟHP'=? y+1.#n:.z;S &jy&@UafadCrOR~=M?5:s뷑Z0kИJ<*StuMy >s l8 ӊ;)UOx%(+6,OTk5Y虸x;Mj]*KOPܮxЌ(2%^mޠTU [/";v옙E%*2މWD&MzPW; _{AP657Rw@ުo2qn|m.~S6^"d+b{cg{y b cș]<%@ gE7m$'c5 oworeޭ@_?dݺ2h Vҽ?׍Ϫ߹8y2=o*K;fNTr훶*N5wCC{ E+1Fl@,Nis&K~|I6=UuwUҠC&x.{R UG nN'y=F].WBsRGGmwͤJ˅ VI)|y|];OgB2Զ?CxO (~?MØ]I'.a2HO \=Ϟs\٤ÚԵuLpK1ьFs?N F}iڻ(e;89VǷwqH"ofƹhz&IįL$gn)&3-'eT2†soV\V1Dڙ9yN6a!tUϤD丼im(iˣB°6hk"d)"-/$nមO_ZP4 L~vZaM&̤Xj2 s@{!Y_!8VC P^lІjPE{Sp߳ʵ;uTw+['T_z}z:L>+/9u@[qrR>LӣЎ%ЙWHn ɂcC]:NN/\6Z(A `T4*le͚QU~<ޱv ?ѺJ蚰Ij± Ə|0UȄKOv'%57y[0v  aO1ۦ<\BZf!JYVF_rl?)Aϟ"1T1= ګ2E,F D53Ľ+"Q]WCfI惄z~G!Eaxcw=NzRO>ӪkswoW%q_4_뇢hSa|'% Ý6$O _u\YmW|Y`.ӖfigW˜61e΁-n.p(Er,|0ږ{4C:Uz-.ixm>!fgb{)ﺘjivz{U_?1''Uػry+ ٽ V!aKjD9}|]pҨV3Uǿl%Mx&q=*!׽lg)ȟ-,%$9m3=:`;/T=*Ξ޼k9xov9 3.*TR7ײhkqJ -m72^|&XМD.\ApQBeԂM1`y:#NA"ųߒ ٞҿKĶX/LB"6kC_dPKt91 nuvola/64x64/apps/xfmail.pngUT gUAAPQux -Y 4] _bF*eK{,$̘ E[HLf؊J 1ss>w{m:P?YTgbR80j:+h.x,*b\P>0<#40$>u# w_$q} kmŶM12Ve`x%Y}(+9dk" I+C)C,cb@mQ~R0I>ɥI|XŮ;3ۦYLv>(Z»`J:;[!w:1&-Q\vJvF6d oܿ? Fy]`"| 3g<*GTrSSD\{JG6?Zݭr>m|T>(V"'=An.+$+"H.gCp Pkm~X"Ə7<LoڀhՂ9 ћ._vY#uE$\!b{7͖zIi)ZH @GJCv 2$ҕ(۽6FEJMR3λb)zB5Z`oKMػ.mUf2\~޻2_$1]Y \lO 7v~]-/xsN<k*\{2` T]73 FE_,|MoKP\^|?XCfÈ羦 b=[خv}]9&rvYD!'?* DvM{1s@1A턯\1 n 9#<e2\wgU;ļ [; Kd\=o.֕a{‘Yvw}uiz6tߥf/1~%dE*B Ɉ̞Er,v(83x?zr%~2Jtl6QakޔժCvb]|qA C ;f*Do2'^6znݺ/Alu?u cF8*NƠ~_kuB{ƃ 3 Kju\ Egy3~DMH[}m kh(UIr(^ hQ rjeBgf5ѳOnNNEp5 |Nxz ;VY)45/Cvyv:1mE8;G+B#Ťp^Pm48Ĝ./<ދIĞzpseT{3n¸`#O{W,[qGP1gf(–zF[r9e+6ܕ8rk zlF'RO5 jlwRh 䶫?OFbIeQj^ z3~T8O(sj6Ϛ $nv qJ<&qqjJ||bNG!)Y2"n$YFؔWD5H[Y;xW=S-6Ty\J1ݜUC*MIȁ{)ʏ.n=Nqyְh ֩*i;@ r %zo7H`UPAj iq{x -ưfԌڛd%v"\QN@$:a0TC9N%D9~?AQg?I y57]:;L8Zsޝo$ɕ&g.C$PڿGCk@̌A-j~}{xT3&<5m/^pl.S)Ib# eI&<:,zZPڈ,$ 8"Ȭ1Tp+h}&zzA(vbڗ4u-ϱ9^`G}K`̆ӈcJQd3c!;jME8CCH]}fcmS H߮ճ'0{SW_GYeHb {Gwqo&ɉeObE")6NRDsR=\RlG/X `}>-rR)S8Vsemlkn;Sb#= 㸤Ѕ)/@JlY!M[َKJ~tqIj c\|S_AvMe>e$/D 3!u >[~oc|cq{h: ~Rј\'φyINӾ,Ƞ lЯvO{FHg;bFCCR]D:g%%-M۰vY٥O[tGRcdń}!I#)}nC*x *pc+˞Ci8,@T$;n[2<;Vf~bIExq(2La@K[J@ҋX⏇i EO:7M۲Ikmx+ȽV;Oܶqtì$l񴖌!@-{3a)̗RBvサ.8$'!j>vHN<=}z*K0xs;7/,{%JM馹lY5ve|us[PzE,s9 WR[ڌ* ԫ^38}0@ި;T26)%q8tGk!1#W]x{MۣX?V@~bW想a[tx.s /Gt(D,ZATIW-<j0(}~XsYf_g__i&qP { kE \CANzCv,X;^&-]0+σAEer1߿|86{KӮ#tUsh1$!HhTJTZ u! C][l]-\ gl[>1l;'u`v 9jvQ[ `A8#u9.:5N4.L#)\FsP_ Tz!pH g+pX;kq6;| ,fü/Jm-^ՃY_ŏsoeDvq[jmXvLL 8nk[-?6vvK@UV5 p ָLsnpzH0J7*zil?~O̫&`K,1D2/;5I5,w]v{}J*ZhugjWVfVԛ.Fwۣr_qK|'x 'Ipe򃜅3,⩼^ϱ/cE??9R5cU"td-ȧc1V\bo[=ln<7.$z@Z#HM_ T\bO△W*v%֠9wA|[\r9ɜc_;ߙ 'ωOu3,w\Nސ_RQ g95_QJ]u{)wfO8-SSv.>qyL6dNdz?TТu[xf9|]C'V5{'',^.EŮNb7xڱsl57R;\~`ɸհ0u Ѫ4 /-ˆUl=1R VuKkr:GeNFZwBLf4,2>c9mL9kkτ?g7V:ߓae<6AƥDzi<*? $/}cK=+#˫WPmTw`'k%=+?y$.{Qz/V naHor ,C ͣK\Pҕ\Aw O$߾f.[8,4hf7;;j8IMnT6]_&LQD@V IPXk60r[%1!,mwFL6bHٲn9qw@ J*3o:fyE`lr:mtojw:+7$s}ׇ6Đ{f0V? "㶻ڙPK3sH1"46nuvola/64x64/apps/xmag.pngUT BfA>PQux -W 8T?s`HPtQ0nsF֖R)㮻Bc4I7[Ve da%JJ1.1̜yy~ [| -0ЏEh/,xKW)cQ'OEca4#ё["J ajaJ}^J ڏhr=Ai YY#ĸ] 1dTpP!j\z"g ._qLp){3ڹ>_ AA3YYY(&ŧ&#Uk˳8qK[ G"ZZL DvZ $544\|I)..$$&RsaYIS\՜G |Z9i{;`ىbκW yJ:W*S|} %-Ƞ349K[BdzſNcLC<_a sƶctzz؂P`ўm7Gm-p4]cs8 ʊ_I--9K8$|N_+ݖ <(FD+'MNQBQ@Ѫ:I,کX¿3uSxzmc.#^ Ax#t6=cX5aG}'&lPtZ{v=̥`I00h1|u~F#Q)Ffsapט6,A\Aa`]5uʔ({9v蜿lzh%X/S=0zbn'_Nq#}hh1$A4_ 7Wb 6{)6ގ |)‑)ziqj7b힗92%SE=2;[#b &jlJWDDuf֗d{d:z u#Ɲ;K1r_{a> w|P2Х9Akky')̈́B / 9_i| {"DzME+Ip Ƭ!3;:^Ӯ 11JB`d= ʓ|@ YSlR0??kfd̓*B|fKT-Ʋ=}5`W<+\[C/sx+=7޻}bB8b4̃|b-\_ُ̻ǣ.z5;]3$*pgͲEoS!tў!Zʒw Vde/)|@7,r4 +:ە.+up@rD:eZ4i p ɱN])xΦ!v""L){$L,0XѸLҠaZJ2#k ꠛ9|u} CL1nFtz՞׺Y8v]I7,[}ty_S^Sbh|i ҂,rUa4!cDt#9Cyu?F2BSM^ņӮ@lb #KQ1\F\PD; lc=dJ*)A_IZ&@imsZW=2s {ao6L!%$\HI778Q|E1Nq~Lpeq<= w9Prhϛ2 -'HkrkVvxZk%T Mb.jVJ>tW3Tw#߻p_0׷reQa9"(ZV|;͹="wQ2*ۇW̥۟XqCQg7W =yvjJ -9H.WA :qDڂwdJo, շۂXQ*n.v>"+x^V1]26vc2ov }Rm[蟘zF+\2=0}0+@NC{^C&`շEf|kR|_b5PgН gÙ bv͒'j_`$a-,A~gEʿ ēhڟ/gkŒ_߾\szwJ>KiSNDBz5ІBTӹͥIٲI}pf/Lo @>zCf%+dF22~V5/b(#") o P o>YwabCFtO dg y4axfU:Ʋ.jN`Gp%YKi2G|Q>GtM t%JR~qDXQCp؏:-y#"5+ZN+'JΑ> lـYH{3ԗXEz؆?w#~_[zVVܧzpEQ׶}֗{ETs3keT Q[{~#73T&V)ZH<6Q E̊`N^J|unHG(_)inG R5y%4hh?~ՋSrT]#=OoVG$fWJvUS#;?SN]ޮPyr20eٚ^MGمҹa%30> ۷8sv\bB5-;ddqHjw[鉲JagRǎهYv~7 lyZD1*t ^S#kW8()dm6po|dHldރ4K]*N'''[GUUU/9BUpf]popcc7\dMV]Hv6%"'Nl qf?qqq`/\` +bEr=a&*9Ʒ:>477w޽{YPBB@a8=ggr/5)"-b6L9;Pv+mc1Ot--TÇ16ȂbVԜfP|ΩWS5jcB1]YBu~G Qp=ONLT9Nq<-I)R.iULZ5[֒8^|&zdMhvLM+f&_}> nX,v=6KhPD5o:jTF`6=7B|W[Z[[VVVzK2%+V40$J "2FWߢ Ȳѱlۑ ý謿)hwz/*;'pUTPxn."?}c?O+.xJL.U`/-GEXkÁ 0z u3 q@E{UĮ24V>Hjj5=٧Fö[#!M_0fm,mvQ>~Ojni+MqPp.5 .nS8)M %[޼M)I<%cc•or:@һvC*acGD"Z6$eS3[`۞m68GEE {"SCb&W^I[IchWNu?ofܔٻ;:GdkGTB)Dުqx{ zE)6GJ|zlJ>N Z\{ Xp(ܑfb2ɲ{nFJ'?@ay fuSXNBw+]]^l- 4X b+-▷ؘ*|$IYjmTBݔuvG.4T\WYO8{TF J܁ƽ `0J}FFr_y`T:Lot]O}9@'[Pod+'6mh'hKU>XM'Ozcfbiq +=X]p@ xW r8C5m%ljAM:EE=E/ J8o ش,n_20iF_22&\{:˚N>ƄG٤j0yAn|t1trqq|A^i3:NV)v~n6C>q xudd` S[dT %D0ZҬ,\ ̳x~CdZ|k _#^+8>d /K'/7_&G?D 80Sd΋ &. S⏸i#=_ ,zwnuvola/64x64/devices/UT VMFSux PK|A1{Y&nuvola/64x64/devices/3floppy_mount.pngUT ]]A:PQux W{\i2 /y)MvS+Ӳ,S8+K[C*K++jeBV[1 %f*8}ǜssssv ,t:2brȐ}e}捐_A=cFg nOܜ SRR&e?J y$1U} W2م|UhdxxǺvxu$oa'6~k鴱Q,Pqù;A~p+z7g_C_.NLIB*PWHs'3q`) t:T8M\qC63OU㌍S"tŌV) ;ZTO^!Ty_+=VB@ 9B%Q g$D:ˬ(̀{;NdU_ |^D_ZɫW7Qs8oG=P?u&EHn-}o0~9KC'Nnlm6q7߰I4U(j]ڧMcz,ںG4ѤVAّb~)OP).Jٶ@BL(i\:вh0"Nt*N5GAx>c,7 p_tSwxg."zZ5a8&0\`U`_Vuh˧?/ e7g:3>`C8[Dd߸A>!ՌTг8ok`=u'm:,f4[qY<9t['Uݭ^5(W V/UX|pCQ6L'uZ6n{+;Sxɍbi#nqhF_Qګ6{ݡ=Ni=2=kduO6ЃY,hų[@¡~kg|ޗX6\&7lj$ {5|%A/Oۦ >y> Ǵ,Y"Q@k\Y5KMZELN۾Pd$<.{Qb=0+2b)Z /8/qܜS!z֮ Nns#M0Ccl:/ 7ĔgAZ~%D䋃WGh Z0+'k ;bϼ[뙛p[Rs88ˈ輟RMLeim-ս-._/[[Љ)RTGxp.<ݴJ`Ox. ^@9wɶ&#ɻI} OA f5Rq+B* QdXHfZ)eL7fp<~RҩE?b+̄;>+nV :{wh9qj[3[[Mc8"i =VFb j8EJN$S%֗y'}t= D3=N[UR!2QJLkꧡdd,Uz;+enJᔤZldTܠ\ԿWjma$OK*MHx=$Jl|}T>)p$,@zǵZ~W6{t8l[:ۮkvrXǤ(e ,FƊ:j!&;"5i%` n )&Q@=)hŎ|ZAbFlڈ)'--kTde-}oF4*Hޟfɂu'R7dc 3m0I87wOweDs\?/UyR ö{K+Yy{^Ua4^F&^* 7&׽=\ \T$P~(wr<`MQXBa_KRn}[Vb?(ks3sT$^6/R|ãu&Wx4 Bw-(QYJsqk:cBǗL/S}P`ER,I}~;cj`'E2Әv7eg^z$Ѝ~U(6|)juw Z&|BN (9BI:3 F-r(o2C*. Fp橊BpO{:Uq~ׄ4}TICF!aLޝ"\C (0|bd1]+{cn7D^%v+0 0FJA;i2wF'noʤN`X']Lֱ*ˆ0'bT-Cs/b&#|LjY޵*!|<XWD mEbv^PDW6V6e &j_جtmwHv7"Z˥Cќh MUo'_a黗RG<+P;`K1w+PlD h}soxS$pnaRݸ&d?:dq7F rb-'V^P(Io{I;Pm6oqs&shG\cucRq@fi}wp?t"qǏfSs2T} LV:[|ܶi埤_Hnf}~47JE H+SWB;iOJ\vpY5&0%>C3)p!'pS϶R 2q@]`ʓh:gÙ'" AΌ8$q}nۀxY~-<_X/vq6Q9ɼaHPK{A18_n(nuvola/64x64/devices/3floppy_unmount.pngUT B\]A:PQux -yTٶOB LZ4 &"-tz%a-^$AQFp@mU%@TT5B?Ϊvթo޹a+-XĈ(q7@KM~$Y;Iv5~glG "'M /B5)/8.h#xhl p4b_H$rdNBߡ\^K[n gsQhyLU? Q (qKÞ̛W\38i80Y] 7=wy̎16O_@2u'+p>&8Nwڴǻ~wzyc2?D0# a%aΐC*cb }KJ~ƺ]cF?<nbdOm$BI:8Kl#jX%,uYʒS8#u-"̴ȱ&:q m*a?~ЉhȷJцN V Ua%U:@B0@/DeuUJꇱ*=Z&g+ݻΨ0RҌ18[7MSx"5swؗ(.1 ޼<Ό^ IH9 ՈF?w-LǏ,rh6f8DzCuwTzNVh YA{F[wy!ǛNYɔG풬aX:$S34 YN~b*QZ)sMv_y*׏\zL?vhI܄vyӾxO4{`RfUX-WEBş:dh U]Er;W_"& #+Kד'6B}lŚAPYYy DCZ Yvfuha0WS3"jUwn|qMNjA9J`L\O$ׂ_*yy-.@[LJ^5MPSV;@d]k]NlW.m [(%]JD/0쓴h nAO!ϖP$@jBN,|uL0tn Br O]D)}tpJzsʢWFd Lzf+޹PV?KF:?U\"Tw羽ZQgu`3 -‰qRdMjr R4M4B\3 k'EdLJ^Գr3vcWdⳋ25c8{yÑJPlR/}C13M&;hoʄ7QiLs+U왼kҭpqÎ<&K:oS_~B1T?菳观dPd74SBMmN5(ZZ {?xZC38TUfK?w႓GxyȖ!VkZˏi,5b mLGѝq QW7 ,V=\cD4b=81fNS#iWG9_]ݩOp~;3O@s;9;SIڅG95[^&OlZ IX!3 @|ru9#Q g-6g=R&KjCt1ڠ|RX1-ǯ W"Pif.c4*=3Yo<Ĺ8iN w%"3Y%֣kT :,yQ}ktۤmgGWtKZf"#qƠ԰ qYy*Pfef({Y^O8#7M!Bdc"D0E/^INe^=IWIVVN4f(B I'H#r"%k =_. C~RBR$EuC,(qqo5ӏ7d:UOl%HIVs` .>;2V/maGe؝zDRVaQhflIEwrich2JH4K 0mܪ~,kP)Fkl;~D5}079Myo=$<,hV * [ ф /$hàW~W4O<-J3?W^\\b ܣ']Շ_k.е%54 rnQmq9ql-l' Kx!KKp>ZCw=e)Y:`d\;j,H>G#o,%ꨧ.LOQ!`݂&řL{Uyj X\࡚ y(w rޞŹ}j۪k.ׇ::8Z*!Q@M/qk8Hz65 a++Z2 0 v_ 1VkYY,#Ɖ)!vf6sI-O?RuUI(I٥yS Tyo|pΩd#S׉jnmM-ꥰd:BȤ.]<<2"D+6fpi2|J9JEۦn+-;=*k(9+H WMzAdh7_QM.e^U+dM˖bipPY(/b"+}oS_&k k,-㥙q7=ێĦfozŴJRZM,k۴h/Il8i&" ʷ'e|v=/wÿa,m**%" 2`x+RJ3LNHlWuߕsZiťIZckfJyLg^70a I[BbMJ]E%i׺?%Plb4PK|A1OD&nuvola/64x64/devices/5floppy_mount.pngUT ]]A:PQux X TR[ U('L,SKKR_a@SAL͜*_9%68diڠ4ϡAA,155YZbӗ(k{=k}9᥇]@cv/ J{Б/ jϦ [%$90d]!aIG©住cO'hoki4@0$@O"όOӸLbR)梗SM̭{nҎonoAT,]%ʕ+w>"(d&:J9}k)_Vt;Bғ:-|>GZI`ll,HژJ?u2 fal{ ה.)!au\ d1C_(אp I>J`7ebV 5(q37-Q93Ak5%: `2Լ,ۗ76ForOL7W*$F&;rh[a۩}Sw?vl>ЄnL~9;xF5g5*F^[P? OgdX$` FF-dž"6tL L0,lILR^z]7^H!6Y*4.'}A(WCtvnX;D=>*o(G?~6A_$ aT]3?Gĸ s L1ߝO!GcK*E} &6I9Y~2}ٟ`9_7*)u2 ݓMyo\^ec# hҠ'1-!H =nQ?%lq;61?~#AJa؇ƾ;}[nطRIHHH (1V ?:ԜѮ '~fBB`{sDvԲ}S֗37^jj*}WLk<#0 >wPBPFgVEK]w^'Ba0 P-/ScGj|{#-ů+˲seC}Obm`SJce}7Xʕ.b1+IH4,r0AtҾѪgؼ`TɌr5,eFu^Zw`_A'ڑ\&1h #RźEŗWk}d/kfA!I)ʵf1އ %/}kEj ~.C˥σJ3LƚP~0S?1d6` @*Uan3it T+:٧e">j{OkKQޟni~m'$gvnf]*U# @YM֛0xR,a*3:u9w zz0!wTe\$D]vp4厩t?k>:MkӺ+$M`Dӯtlۮߜ]ϛ`ލxvuJocc(n5xQѩ;wz7Y˿PԐ 7뼎-cy&J`*\qgzޞFH䗍/!F} >uJ/ͨao4~ID8QܚMоVQ /^u{y`L@IIx-}'PH.&-E|rW󽠁_P:< e̊/lqѭ8Ձ5[P.n#wXw'Kqpēid\_Kl"D{4AMcH ;eF=}!\ pp xSCePTN-g!1\.ZL~fz a& N5pe'564^p#Hdy48 rS:2&V"}2 ÿ"HqH$pMzS>j (hNjX1G`3>U M[F^ύJ'˛N3K82q=bFs_-ڟ~>hc`^([gmMje@ؼt&$r*ES47 IߑRw㢜E@Y|XK6+oѻU7qST 41'DoId3 .eᄡ}h6ܪnY4AZWG]Ӥ$TvsolwF5:k7hLVRc΅unJ#P=^j^xKc.H?7Ndr֯_)zχ"~[!Tj.LHcw;|UH,iAS2{R 9utgj/䢯5?+ʒ"-&t&%~v&0wot(0nmC7绅h*f4T,[18=E[?+ \)(aP- RnON"_dϧ\~X^ʠ.W-^9ӆ7̲z "+.d '{U>u >Mf'L֩k/RrF*TaS ]uR>U=^ fZ16jAc-psP=w&pEU'ѭgF`=Rys(yyfiMbiݗ51A㣼@i&m]9jg &WcޘJy۵G?ӊ'qfY~F u 0K6$;ond@}<_$\b5H7v˹ʅVW=>3Iy'`ac]iL=~ 闸;2T[f]mwҧQ 6\=ͳpyzGz7|9>Tor8㪯(ժ5yB $zҗ}Xw@(pmm˗DV@S34Vj%N%=k):mS*{[W# ̯3(\]]8&=R>defjQ >լ7ٞ+qeQFʗ7REPTOs|xQB1&2U$l3{碁OSqU=5*Oy|;b!#y!*g8ˣFF̬ϐ\u,Րý9p E\BuÂt4#E\۴ Sy䟱N|[˩[Τ;vjNZc-,^>(sLJS7 l]㧎^0t$䥞R5[XY3I(A0ݍpG|K0n擶P_ \=K…{Ʃ̀\!?$D?r-Px<нȞx!DI()QCgϝ˅N\Jg RS7WWsp=/| R?А?{00JdMWǷ9L,tR7MGZ7) ³pY5mо-b͢𱱱9+6qdx[,v4ɡ^ԴlkcC[bEw&ϖY%cFr虨3 uI[LW)/Z[b&D_Cv&et4P_P4= -+&XRY;S)%-bb`9(4 YCyy__[ ʞ 2~]&?A)7(rj{"w$ x9!ÇnN<}~sWy]r2ڶfxNk 1Ǒp/\obq-o9'No-T^a1?.y>lQۘU)rJ=ׁbj)B[Xdʢr)iXjAQmk.4.w [KZY?(3A֚L]c! Ũ֊sqB/2!LimԬ!* $ww[ѕ{{5xP]MuGw"/by_bd1{;T<ފ+D%Fك* y2rǙ|?,nYk<~TZ?A뗨6 Ti-rB'\˧+-7 sY>T#Ҍ^rbhq8%]:m_#fKj1V b]v!gKcjH]\3c5@ANN@-dg: vls_#`^=PKt91X;$nuvola/64x64/devices/blockdevice.pngUT gUA:PQux }y8kwޙ8 2#)!Q23$Nf:NHQU'e+ih&dqSV`ߜs{}y~' flɣeNK6+Ia''BZHtP(qoPPFHRP;p3@?A"wG@@zR߅ _Jr, =\h́̐jb69O#/a!T4F ?jHN ֐`kK@|τ㦙7I$qaiޱ'&5,~vakh}hNZq^^联Kz>'4SL܁X4K(Wf/A ќc;F*+sܲI8C2ܫ 7ѭstH|HYo,ݙ5$։F 3ɤF߼c%SNʜK Xjip&9uꔭ:UM i n}~˩l _^ˏQՈUwoP ĥUi㧢pT{ PDJ{2eYzϵN- `GM* QnoV ~D]=0?Lƌ?0l&{nj.Fr|5,uJZ`>gW7H֥~JH_W Y)h4ό˗0!-ͼ~y3QWBBw{ș͂K>:ߒpǞ$^7I*fi^+V,\w@ß*[|} eWiI]$69C͢2 gb# ؿ 9/znwgMemG<0sR_dmöTm E6U࢜v@ ^܄+$_;z a~i*=H8Gͯ"56TH3E^ ]~'nʵo暔{+uT Q`ahwҌwxe<1 ŢZF\ϬBF)yjM{֌|tP+ RӝZ g5E]Ϥ^%FsF 骢PƓPee>WM"1o? pǵIZ$ |c:$5VqL @~'|#=8o7vv*ŏ 6⭕ئlh(6K?:܂I4ސ ג!VzC.hZ'7?EjBt0$yZrqb 6ei~CuhQ+W)Ȍ1vY$͜uS)yG1^T&(I5kn2k ]aīg@!76ߧfrqS)pk1WKSԥNv*?5.BWͮ8A3ey~u=x2jʭ`>Bx4*?$7o8ඌ/_`ֳu .rW.m!=צ#W[eTcܿ5 "LjAl/-]4#8ܫQpb|;_"f⒗;$1E3_ jwVUTV8I*f$[3ng6Wtgҫ. )Yǩ6qBk|Dr?Ȝ+ZG3y,BUû/ TNQmCDC 7Ve2ۃ>1ٳ>?P(Q12 Ygo^ xQ^J ˌb 0{DJѳ㇒a&c_u0oa`j0z9."x{#!!+Ӗ P;s/{rpGQsR]+Nty4Yqhf}| X-eL4z?+d ףD[D@AV$@ͳam>g!.͊'!{~}F8:Z2/XirܓLJ[8~X60O $uN9-< 'Iwa%ς[ oU?@9q4΃ׂ6r@JRgѭag7O 8SuA |OLDeu XKUxzJ3/ NdJ1!16 $d"NْCc"҉5aݹ,[9/p߽GC`O6zN#ᒋZX(ێT]Fl{Lz 0AN)y+Vyǝ|VU7| &َxV^WfN ]ňQ8y9 G\>P@{"C*˖(CA2M9M2")0Ț6wҏ%J0~P(F~c׺f}X` pw4PQ{Ƣ/R>YtGR'Ÿ;3ʲ*MP 1(NDpڮ} RkLoZm](i=; zN!_I+N K^5PkC+ p^M!֫KgwJW@a"鹾SQ}5%0*7Eb8 L#M)'mfN1Î>[Wrx'wԀP#e]$Oˤn"]\\hcwsGk`ꏃ٩o(Qg5˫%-tʌ=Bd E{B #PE|p,ZKgVчM$]W)@tpmEʲ Sīm5W[`rLGw<&7_^\\!|z*ۻ _m&:x/}G 3o=lT z!BRx2dB' 2MמM;Qt Ɓ]wYͨB M-utfg̾D%]>R GMְ  h㞅Íz}UPBԱDݍĿWjBi 5}5Z6 aZަk'$`e@k̤?fVwC*"^,EG }&cz's 6lұ=bDvvrB/ݦT,F#WӇL9*%ߜ‘効bKUFl%ko[fgEqS|]' >}\^?.W=zBŢSN5|%{%Yu-;KfRNe̾muKF:/h/y gGxiovo$NJpVw஁L;UB;Ix*`մ4~ův:=R/&%QS.d8\L|>#RjFA0PǢ[/ 9t)E|jQY?en/GPK}A1 %nuvola/64x64/devices/camera.pngUT 4^]A:PQux X7TwvcE̠L%;fPSTZ>۴ )E٬I &-Q0Eٓ2)QJ>m0~>9zTow,Z c^EO{3_ng({cK1&7~B`T(J<x,toh`H왷R//hI.'<i#H2]  13t&T(zN9 $ޞ[g;&-|eef@}‹Z߬V2^{- &'#}Ku657w;:'&)> :yjbI[}\5Y+e< k prrV;? EMlsAH\^x7=?TUul$~f8^`á+KRXٰBĤB_2~vh+YfI?x X>F,})h@7XSWT,ί%,=r䫤O*z=mfۯ uy1="ڄ~-h ws5zg(ͦ4(_Jv.R9ƩrQSla-M_A$"q| |YQzjx+lh_4KGe Z5 ߘ|ہOksh4$%w&Hp|sJ.:?[^OA[9mm]o)ӮS v`[)wӦU} 'U5^Q* aq͎^>mtԡkcS $>xrKcF|Y21JPgMIqNj٣=uG"6YKX흕.c=Nb ; N1]Mwyg\.!,M#IOr,㵾Mc1}.G)uk&``7b>?vqI˕ Zon%ڵ`na] a%ٔE4E59" 7 e?sdAhbpPtik=eN>n2ó@:1>@gndiۂD.QWݧ :cjQiZ\ m/@&aҥ9d8Bb b31v<<:bU4n*vn'vܵoyHEMkgO9@#~bM@<s3돆d2}s@xْNi0J5!tg`OEh+s ``^Obq7٨2cί~ _l*PVDJ&@C违ٍ`tu)ȕT'=pMwSJS . Fx6XulTV!>6.4P e6,a Kz^A>zF4NhŴUTVBT0hۮA-cMy6.Jضn)}",akV[*N>[/Iǂ96 {˄ASShLqjaX{7n851m֏ 2zn_"~*6eh2Q)&Fa"@J8c36@V̷hyU~a1oZV́)2s/B5 eL3t&^EXj1yZryGȔ)O(+,L9PL2x 6jYμ-o܈7q僴,uG>m]՜Ve,3)}01@n\3+#r vA5g`5 qGk22,Z PC[#FXP:>ޅRֿv?n-:Px3 S2[rl+jb2"YcoW0odh#ߔ=r=RCͼ5bZ|kA__8|>`;\֑y~ȟʺ:]+(=Gw7 =Nl.gL,}H%k fyyj1os’.,,,Zr}NMנ[deyy{~|k gVHmywɈoцPߘ<&-V]Mb׼h@@M?G5S?5j#qLR.9y=vHvrkJsR65AdONMA z򄋦+h_wO{m|<$3ck bdVr`]q8BL/(_ƶy] Ib"(;zs(C&,5L[ci:t7ЦC28W)/h[aN [PYQ8 mGԁe䦄p5 -pW W`$&U}!t 2ur-+xM}a*3P34> mEӰ,n& &.t5I! .6 #9!Ci/܄X(6)g#F6ys4gH ;(ipUn O΂0$$ Q?]|}i}vbQU_]t]`b`uŰb:!j: P0A9g6KʠhY*7RV--0+`Ck %\iNF` n2D]T{$"cR>)7#imy}l8{UU+4U E&D 8!E(&j?|Q>pqBsݔ툻eof:iMO_>5!K@)knfq]RRO\&.w5.ͪHwamӰ?ni.SN_rYM\z+|rl_zN`Xj]: BJmZ_Ol$A۔xlZw.JXT.=E R"zaѸzvI S1`T%V;`):e@qy̅PK|A1bK=%nuvola/64x64/devices/camera_mount.pngUT ]]A9PQux - 8؆7 j*eBRR EO46(D!RLQ>[*%2f}_뺯u݇z Zglhe5[t#χF{&k?CO86HhC#.)&~tB_E5cZ-M`&WZ`J؊OElj `v$8;;ͥ P;Ċm"K|m+Nh|z~ၑFL:mMbGlX%J}qf 4k"m$ig(xOO4ۿMbCt@̚_ g $av57;ېkȁ@P6yzlaQCYNZ""=*~vuMNd Kfl{族cW LI5 ۺ( 68ޟI$8%%:x>sK281S= ݇v+vx41$80I tA_Es6;:c}|HHa&r]L7i&(t'%O쎎ELWLvfH ^szz»՘>%ÿzf+|XC"XX/$½Em/:V5/UNLZa&t\9VTgh#=$oObO!DWU[ܝ'z?ڜJ%#oϯ7HrZmp}|CnRdl߀cyu'#Ȗ/ey<X'~:ٲƇ_^ A 8nN,@ V0Vmz#]OJN񤳳=N]XTiXBK&#K'I/1ZnY ZYdnlh36B"Zé-Ǐ )ӧ L LBv}GAVK3i[R JInkWhw\N)c#\8 |~vbN0F*KLe۞DeIE9܊Z$.0?JH;M'4 nlyI}j"-_n/-?+qS NkSPOj{dj#"*M  jDxsgig}SuM{ڸ]Z)MY,ԋy@I 9E={@J90 at'jYvi[8@Y/ƏPPcˇ5SKa'"^iN#l^yqs | .#҂g(*ѷK| Ci ﱱ1(8eٲײ;I0- cb g1!3=fؚ7X̤i>)Zbd9]I'E2<a;\{֕mu p~b$ 3*MmQ%«Ho-nҁml֤ 0A7k>H 1 y_۶ABFSԜWaf/%N v$!wFo[[E9ЁVqq)3Cp#.B\,} 'batwwO Uz:%6tvp'&-Y E"۷ψ?<$t RmRvb*v,NT683v(Dsby`J;?E!kLg'6$J\P*#1K+mv!]IN4b&I 8شN74Ɔ)tH:k# 1$3$׼ZaI6Щ=_VN YvTRSaW]ȕɛSu}J7j&9l]\uFr/vJusz#pYx;_mhĶ!>[gBiVr8ӂ:vA0PV\mp8 ⇮OYFLQBdW&k97>uZz'Lyח󓐡{Czxi_R h3l^Cjud~IiP#r(mC])%UWa^ o*_DpVj>i+&R_im_u+APViP=4=lŹЧyI"n b/ JLGHrL;nM4^D WEF8ZVj1nrV M,} g^/"ۗg*Y9 _"m{A}1*^CϙVWQ}XBb?ȥʻZ=I0n|f͗`a^9>G/q/81\hF/Yv'NW/Ui8N]VЄ0 вU;ZZlB8=]W=-bf&X~rj !R$0κ ꬣ9Y ˗o_Ioy/uq8 ɹ" |Xi^ \āT[ր+ x|-R\] r.H`1]/ر ((9cF:S6hWzHA]'] ,b [ d+84 1=NW]yXtᮭ !f :ĨX>jЫ; ʧ."i" ~gaA47\v u.N.@vLHWضSvz1w۠_nT3b㿗{3>(}?/ g}| h -oXȽ4p=x- )-Zʍ?뀠҇4$rt x{WP..&4Oq>2@~1X!3n J=|Jb1K|si)9V&2^b#x ˯1;XGu 0EZht.ϩv/ C"TץI_eH/ 2p>,oMEyc9*,)4gfdHr9wa-l,)l9Y~19)/S\cz /GÝcFCr&$`1S) Kΰl`젳z&22JBЄj,sRY V&F|! &]nnD H᥃I}i$$ysMoZVyźk6Bj r㑂ІvYe[!rW3id;NӺΘnۮcʕW:6LG2I܀ dwKY1&ut@nuP"ƈj$³/#Ay=-JnB8AQ#! #Q4k3Ňkceb~5 ~ɗ/ U>AĄ5w􂄬w*0z b9;H+\8K0lsoE ⴘ@M. nz?7Ix}-y% 6pIo0XU ! I܌R$ S XM?"?Ha6e(8 $!U|Yo{Jzf\#UWFӊyU+ކ`W"GRaBȀ3ܖQV[oY;20aIbw]Z`q:s-]b<Xwi+O!ReS7iO1ug 8v1lZ&[G: DJk~IX'^=}؟8_PZw&;ki,tG/A\݅Ǐfa:(NK_QWNJ jOq$c6/O86G,PTDX`8a7,VT F A'xF -5߉nUiYUge^%>\Oe@ybRR[J[^'ᕰn"^,@vcVdzoPb4JSmBAehe_KؗjCeV<ns+ZRN[M4tf6qabL 2@ٖDZ*k@vw~yX=H ^PTf|hV0[!zU~:Ԟ7]#k„P˝ݱXa͇C#l-k|[ŜbIGNSutw5YYY0gB)$@Z[IY؂` hacI݇G/6BN/%)BR:sXx6:f魈UY.fBpll ԡIlo$jo-f^TSئŭ.irA5|}x [)ݿ]Q d7GpK=:v[*ʏ P)d!+]߄lwsF:GczHt܅>_Ә`{?6Bs5,Ku "os9[636e)O?#g(`T>B }NCF?%-4h<"ߌ{>ʍsXZ5Ϳ[`ձC[ P?CebG~n&d~ֵBB5_%jXVYXMh1ysX> x!} VÑS^[lMVdxYB\@j!^28lii5AQ:SpKʝszac!<-Xl&Bc:c.ZZ@Vqo%8MFtgQsFHU3A|' _j(PK|A1 %'nuvola/64x64/devices/camera_unmount.pngUT ]]A:PQux X7TwvcE̠L%;fPSTZ>۴ )E٬I &-Q0Eٓ2)QJ>m0~>9zTow,Z c^EO{3_ng({cK1&7~B`T(J<x,toh`H왷R//hI.'<i#H2]  13t&T(zN9 $ޞ[g;&-|eef@}‹Z߬V2^{- &'#}Ku657w;:'&)> :yjbI[}\5Y+e< k prrV;? EMlsAH\^x7=?TUul$~f8^`á+KRXٰBĤB_2~vh+YfI?x X>F,})h@7XSWT,ί%,=r䫤O*z=mfۯ uy1="ڄ~-h ws5zg(ͦ4(_Jv.R9ƩrQSla-M_A$"q| |YQzjx+lh_4KGe Z5 ߘ|ہOksh4$%w&Hp|sJ.:?[^OA[9mm]o)ӮS v`[)wӦU} 'U5^Q* aq͎^>mtԡkcS $>xrKcF|Y21JPgMIqNj٣=uG"6YKX흕.c=Nb ; N1]Mwyg\.!,M#IOr,㵾Mc1}.G)uk&``7b>?vqI˕ Zon%ڵ`na] a%ٔE4E59" 7 e?sdAhbpPtik=eN>n2ó@:1>@gndiۂD.QWݧ :cjQiZ\ m/@&aҥ9d8Bb b31v<<:bU4n*vn'vܵoyHEMkgO9@#~bM@<s3돆d2}s@xْNi0J5!tg`OEh+s ``^Obq7٨2cί~ _l*PVDJ&@C违ٍ`tu)ȕT'=pMwSJS . Fx6XulTV!>6.4P e6,a Kz^A>zF4NhŴUTVBT0hۮA-cMy6.Jضn)}",akV[*N>[/Iǂ96 {˄ASShLqjaX{7n851m֏ 2zn_"~*6eh2Q)&Fa"@J8c36@V̷hyU~a1oZV́)2s/B5 eL3t&^EXj1yZryGȔ)O(+,L9PL2x 6jYμ-o܈7q僴,uG>m]՜Ve,3)}01@n\3+#r vA5g`5 qGk22,Z PC[#FXP:>ޅRֿv?n-:Px3 S2[rl+jb2"YcoW0odh#ߔ=r=RCͼ5bZ|kA__8|>`;\֑y~ȟʺ:]+(=Gw7 =Nl.gL,}H%k fyyj1os’.,,,Zr}NMנ[deyy{~|k gVHmywɈoцPߘ<&-V]Mb׼h@@M?G5S?5j#qLR.9y=vHvrkJsR65AdONMA z򄋦+h_wO{m|<$3ck bdVr`]q8BL/(_ƶy] Ib"(;zs(C&,5L[ci:t7ЦC28W)/h[aN [PYQ8 mGԁe䦄p5 -pW W`$&U}!t 2ur-+xM}a*3P34> mEӰ,n& &.t5I! .6 #9!Ci/܄X(6)g#F6ys4gH ;(ipUn O΂0$$ Q?]|}i}vbQU_]t]`b`uŰb:!j: P0A9g6KʠhY*7RV--0+`Ck %\iNF` n2D]T{$"cR>)7#imy}l8{UU+4U E&D 8!E(&j?|Q>pqBsݔ툻eof:iMO_>5!K@)knfq]RRO\&.w5.ͪHwamӰ?ni.SN_rYM\z+|rl_zN`Xj]: BJmZ_Ol$A۔xlZw.JXT.=E R"zaѸzvI S1`T%V;`):e@qy̅PKN1 &nuvola/64x64/devices/cdaudio_mount.pngUT dnA:PQux Y 8S?ۙH%RRnlC$a/Re1*%ʺR)N7cJ3Jr߅f/mZhx{fߡw'& kNT='nJL ; ##I>Øa) -.Ǔ%\ T7u(pJ|="zi-ln>"2'6%~MmG滈7bV:& >]yK𤁹B ХMz;t۠KtoLPڕ5Ý,~_+ED^'P01d\RVk'UzApsjJY*Q&d:HHwIB6y}P$jipXS6c$SL[#W|vR)is`%K S5n1i~I`4`Tl,-<)dy CvM)Gu+Dٺ25+ *Uͮ%gԤG2d3TQ173Ik;a_'?q, QF О 3υ0OpgmqoG9&z--hR_?]i+;/.R<$O!föYN| ja/L_c3+&߼Hh]}_ߐx}-tt!7[@dVw%fȺbֳ%kPS4=~A8M ԼQ-#F}cDŽ4#[F2 ]h?/z pǩ s o (QnNsH[&MgW+3M[:*GoòcXrG%NEZT4FWՐ% KN|r|4rU?7b[ 3{g-)#@![n 3P A =^ƣ]8naJ꫖sR*9ķ`u7h4Jsrf>-bCM Ko}p^yiUgP5$#-"Ep]_Ъ^eqh,4jmfQ["ee1tZN?Xw>S0Ajoq#H tgsy `y0_s.%قKjpz[1_g|v52A Lh6ՒTz5y'znuM9cU}Byz7;0jރDEFr*1܈ [;c|wâI`>/N*eM@)'}94aKfC{ӵŨ@Z1N,BBӺ3~4Թť1u+ͅ^wiɑAVY()%Xk LC.sC7zhpnm FU\Ӽ)1-2'PM_i9 ׬ t:,cav:m^RR12`$2UN gD4i'1w]q72х/pü'LK6Wf:n >oYkQtg7t YwZezk Xds4Yc MdͲ3\9 SX%>#栨 dP.f_ Iځopӎ͙_3uͷs)cBPPUV̱<2kN^#. (F{q7Vaׯs,hߙȦVzfD7uG7'gG]e}wfXw(_uطؾB2m ;=ceTG]^jg+u 3tq/ ƛ/W?R@}訟y~҃ڙ5BeE>> N'~ۊ\1O܂_H<<\|frґsyy~ԐXvIvsu}̗`ʿ:Q/uxDk\M_ T۴9V -]Xfݧ=$4m /ώp'¼gqSW椆J!@už5R Zё6ܧ8#\ҙ7R TES؞ej@58&*zkQ:w_ /kI w`jbE?`H #pV4|&5#Wu_i(Jb_Iw"a:Re =~b-Il ;S@dL~dS Z6.b:a:q[k #8"oL9j Ce?V8\4庠WQEB AVA+vK@<4 n3.\~;045x}%l n`\ldX7KQЇ.RW^32Gu*7;g6kGoؖɢIoŪ|MbgȟOMޗ?%4YKs-C>.SGy1@^IUL֋ں:|@t{NB#W+5)p?q =ء(,6hd] 0/9a3^u+.a tDAvЋԹaoIXANo1w_u!`B ]hV S=g*฽~lor ^z0P aP6WPF f!=][U[Oc_ǟ;+035{D}g~LT^jӁSC΢{q*'=Wh+^3<L(6b~kZ Op”Iծm_WV7*UqZ*<~cx~Q~$cnKnM/0J`EZ%_1 vؿ 2d'?Jk+~ׄ[ E5U(s.޻!Hdoc_+]G^8 &&TALʦko!+d"j" 剰ˠbxd1ܞݔ'G*&VXth]a]/k߱"䜒-;ə\[:04F#p飼yCy%ȐkND\Kjz国"*^y]XW:.ydZधչ͹ T;!shԝoPuUFkw#ȌBUF ky;b\#0xJ!\oӳjWv?u#`syg ?`4-uoykw _ Le#:Pى5qMg 7%UccAȬ$*$2SH)YCs\=|3_F; eo` 7qj,h@PܬQJ ?X1|J%Tg[&ۨk4 " B:["ߧPxigMǨBCs6W-'WPpb|IV̥o&0Th #kl?OHp8#Нs,S |ߌqZ{JmIU9F)۽"մO=d\Y0bl3]s.ź:FA4bK{sќSDS(2f8Uۧr &,rQ ٨+ʎO^gvR_cćtQPsأ࣬=Z졏/F-A/zR~k~ %T|B]S-v"Wx>Z 6la#U)ME`*ʾ*efYgoNU _|s!= . @~P+vHHN6_X!q/a"Gnӱ4vSN~/D"pRHk%,f93r~&E ߻w T*8%ߖtO3*TuL{[ȽY7P})rb7n|PiO‘+£ii"GG⢂䵾,(>H!F)b ĈԸu4Hh|@ά B8j yWR~`kN*s[?U:D;?ч&8yC#x;^fYdiڠڽXvC Čok詵9l;EO8^ENSdsf[/EmDmRiiANm.8eci=&*#*D'*J),A~AXH2?&{Y~_RVίh>Kc2tjˢ$9s8>2Ϊj\0W͗ :# KemsoNrJ#AvvdI3cQJ\Tâ-ws]i?I)zdj͡[ vAM? 3J+/ FjkOu/8-u 'JcU iNHǶ%EqCR ^|PNFaɥ&r)R$FjFI6ݤ s /ن(qU!_,M@'oTN3pk{=}>C{wܶq70wI虞I#Ϛ׆;t.7:Dv pLs3vm{~SBUH0pCNԴCѐbT6uG>2X C,Vw/'!YGm#u/ 5֥]J! ku.I w ) QƩ2;wн~ $By\)u'9&:tR)==N'&h-]&"S͂:XSR1,H*DLX)BVnRSQK0\7|8j ?Tv&Jۃڌujݲ:h]p뾕+?RY=~ߦdQ٨w[Z74DNcO8Ju^t%99()^aam ~܅AQRkg5CQhT:L8O-2`i ͟&(c s)ӈS7Ơ4Ί`5Yʉ&*lɠ Z+)ortWAʮh$9Cn+=oO^ ;$3W-%U=ܳ3㮶&`j9 ߺ=ӕk[:;y7*2wX?adN{Lv#}IO-|Y[ahWuݴ]2rF]{;vs{S ?q;oCʶn,VK4`٪2mm#WH2 C J27Ҟ) 0PP>ܤQ11k߱Jwզ.?% ȧ(|AhV?GA3$,GQl<& )tpMu,qY{8n5w|ĩL6XVO2]7ܿW֔+@9?_jU4#t_ی20 qWr?ٽ; ~ &PweJ՝-q?GFX#:3\dv%,TW3EfLKgW3S..㄄4n/Hٯpc.%S1AlGE̎Π#}dׂJ5Z BEI|YԮdTZˎlJ(` NՁ ȴ{75!<~uEc7PB8!uUdJM.aeF[ KȎł wT-3L`fE-Þ_zlCl q[׏B |Є鉮z7%ck[@x.t\BPҲLh;<~%4ހs۩Q6ܔ?8s8qԟ5܂2 ׯ j.4GqK 쨍Ž /; >tP^. eki%ScW>w k5Nt^4y|*M]|dtŭy>ɡ'x<N_$܅Q+S+P\@W|D4W"9Wݑ^92:V9!\AE*?&x姟UYo ɰǽ̀J(Tڅˠ5+UDP;( K_lR9T>̾-N-ʔ֗x`컥EjL\Fܿh aYeĦKӤ  W[bɫ18\> XS/0Qq ."`^:R&>]zEE%p9i?ir ۲ɑ-mb27/YIf%AP-Kz_,pcruԺu%w?uv1fMcevAm9|M_!)j (3'fLf,\EF*v>a4\p.I%,lӵarWdՌƾ"3,RS_|0X;OG `~.KBy B^D5*iLnWn]PT^ ʻ7.:$qADqs6q=Cϻ!\2`0qʢsOIo|ܚO(goftiRp+x}й^⋌ -FWAҷ?_@I~\>-`ۍx}:/ le3d" 8aG S7hmʽ#qQ纚@g/q?|r>*v҉*łN7 mԘ9-wJ\zLw)@5@,.| 󻤨 뾡kg|gGx]oOWnY\$lnoB_$,xa !j I^Y=qW^"V/YcfSܯ_@%Wӡhy"su! 1sAţoG !k>s Z 5:x>\)c$A]r0 hGSxGj&](Ax0P˟j S9;na^'8FaP1fm4*6^De(7rr盵kzp:ft|: Y3[d'~[h-+ʘ3 ܿ_I#)B[c#H_>ta#7{8sY"zݧ&a+r|r .u/Hv"=FLo& e%,GUVEVdzD M1cf$hW*KBwtIh9A1*'iT, X<%`?y켩I+U Qâ];O%ף6DŔcPôq:o2LҺ^NM;_j6Sڔ9P%J1Nǎna:2&C٭N-nxr=rTXtM <$Nfh_nrܼ#`B6эm`Zsɏ^?- DZ_g/C͐n!wݸE?qS ϪmZXʳq, z~; [VK{LX3W{9U) *b;%~N Q;㎶'^|њ{H%%p #\p#cp]4f<H&y[_93a [,PI$EQrct] |ft.,Z /p_EǕ.co?`N+HcU@zneigQ:F0.#W,> ="} &T2Hdž[O /tz>龙ĖOC}y]e[RӨ-6eѩ^Z(8KmI|cgKUN~.^0-XtH|il|t' /GimHTȠ*"R&wQOs AL [2@86cUdgpuSl4~SKQ|kYNހT32Չ,LߔٖѦ3)+O}†C֬Xr)URjyS$q0F "9SެI M K??iz6O21+i(DޜPZ0Mbnʡ1-Qf!W|}ظ:⟯^?<:W"~ 8G \E2ibpYDjD(+) Cgy'ﻚp-gzB{%d$aS*̖Yܹ>^Y˗Q"Y|Qko;+BֱoXx0*5ů, ϳ`?%Ӑyq4 pϽ*LFD];hީ7z[ K|%jWǭ.XtKpB)>V̹= +63C1Wn4Q'A7-;*!D~UxꑰtHkʰV^GrjVAc O^ ,s8E:ַ76\En~bRJ; ,e@Zŋ|O-1mQ}ƶS?]@_RiAUY~WUs8|9|*0İG~..吕8[W@u2f l#ޛ3K;b1BO3%2 ݙ[ؾgdžN0'lăD|Y]K.QU{_;@x|j.$//Z8[ P,z;+6_)x]Q(pg,Z(n:OjTX)!<̄xƲgsG^I#sF.zg̝jGH "KN]:%#5튅z q&ɲQ[']?“G#E{Ȥc*_/o [}/Z ' 40>P> i=JD;2+稣31kq[)&0ȼqeu$4p'y9⿧R<|t0/fnKzbMH^545r9d}T$wZ@FXÀ^6 hA|]Ц<^ Qަ'TFZV^R;XZsGڏd=yiN݇)%eKVuRU>y'oP B]-Й#2`!ʱxvht3$$g  E [yXňMg.5OXBe6uG72L?͆gمo]к6j-18H}n|K685L+yw:vI>F]^6LM+CYpf~Tt:ҊR)QŅs?WQ<)stY:@`jU*M4v~hD'5ixM5"*;o -fC*mrnllVh29?vT7iMi`F'=/cٹo֖GߪYje*[ UV ٫&D^NUG>t fR#<kixԨ("smwLJub^gk_n@x_m9=}ӿdUKFl '6%뷑|@a̸YDVHN*`L _ă_7_qkvVX-^OaNȞD*~kAGi?/8̚_M:xyArǏt'"͜QgUS]knN{D$W([ޡkW=3h5I~j΅*h/4%|B:~2{9B5q:#-qTƨ Ȑ a_T#ɭC4}8jlYj1 I" *\F-Bnq]Wp|&!'`9KyS+ps>|] {O9zv%>!p\Վj;[dS6^C61|R4DgZfF"ª:yr"B7 ?ܟ10$}-:v;iQ?}^*C8zciFp;},,=>MhHDbxMX#e6g,F_䲖F h~ x)[Z:yԑ >%xjQ ~» hyњ5^frb̙dJ=UWqdIc{Cu:Trz>C?w9L^=T #irCӈ.)!xBC^<aeQKGx,Z%mmbQ[hSH, ŞT X,|f\ 䳄7981_~!FYLKx^#h=Z u'_` s)}UF/ c"<Ҿu⏮,?*L"`ќ,|-jCPa2DٺX|vmԕPK|A1 $nuvola/64x64/devices/cdrom_mount.pngUT ]]A:PQux Y 8S?ۙH%RRnlC$a/Re1*%ʺR)N7cJ3Jr߅f/mZhx{fߡw'& kNT='nJL ; ##I>Øa) -.Ǔ%\ T7u(pJ|="zi-ln>"2'6%~MmG滈7bV:& >]yK𤁹B ХMz;t۠KtoLPڕ5Ý,~_+ED^'P01d\RVk'UzApsjJY*Q&d:HHwIB6y}P$jipXS6c$SL[#W|vR)is`%K S5n1i~I`4`Tl,-<)dy CvM)Gu+Dٺ25+ *Uͮ%gԤG2d3TQ173Ik;a_'?q, QF О 3υ0OpgmqoG9&z--hR_?]i+;/.R<$O!föYN| ja/L_c3+&߼Hh]}_ߐx}-tt!7[@dVw%fȺbֳ%kPS4=~A8M ԼQ-#F}cDŽ4#[F2 ]h?/z pǩ s o (QnNsH[&MgW+3M[:*GoòcXrG%NEZT4FWՐ% KN|r|4rU?7b[ 3{g-)#@![n 3P A =^ƣ]8naJ꫖sR*9ķ`u7h4Jsrf>-bCM Ko}p^yiUgP5$#-"Ep]_Ъ^eqh,4jmfQ["ee1tZN?Xw>S0Ajoq#H tgsy `y0_s.%قKjpz[1_g|v52A Lh6ՒTz5y'znuM9cU}Byz7;0jރDEFr*1܈ [;c|wâI`>/N*eM@)'}94aKfC{ӵŨ@Z1N,BBӺ3~4Թť1u+ͅ^wiɑAVY()%Xk LC.sC7zhpnm FU\Ӽ)1-2'PM_i9 ׬ t:,cav:m^RR12`$2UN gD4i'1w]q72х/pü'LK6Wf:n >oYkQtg7t YwZezk Xds4Yc MdͲ3\9 SX%>#栨 dP.f_ Iځopӎ͙_3uͷs)cBPPUV̱<2kN^#. (F{q7Vaׯs,hߙȦVzfD7uG7'gG]e}wfXw(_uطؾB2m ;=ceTG]^jg+u 3tq/ ƛ/W?R@}訟y~҃ڙ5BeE>> N'~ۊ\1O܂_H<<\|frґsyy~ԐXvIvsu}̗`ʿ:Q/uxDk\M_ T۴9V -]Xfݧ=$4m /ώp'¼gqSW椆J!@už5R Zё6ܧ8#\ҙ7R TES؞ej@58&*zkQ:w_ /kI w`jbE?`H #pV4|&5#Wu_i(Jb_Iw"a:Re =~b-Il ;S@dL~dS Z6.b:a:q[k #8"oL9j Ce?V8\4庠WQEB AVA+vK@<4 n3.\~;045x}%l n`\ldX7KQЇ.RW^32Gu*7;g6kGoؖɢIoŪ|MbgȟOMޗ?%4YKs-C>.SGy1@^IUL֋ں:|@t{NB#W+5)p?q =ء(,6hd] 0/9a3^u+.a tDAvЋԹaoIXANo1w_u!`B ]hV S=g*฽~lor ^z0P aP6WPF f!=][U[Oc_ǟ;+035{D}g~LT^jӁSC΢{q*'=Wh+^3<L(6b~kZ Op”Iծm_WV7*UqZ*<~cx~Q~$cnKnM/0J`EZ%_1 vؿ 2d'?Jk+~ׄ[ E5U(s.޻!Hdoc_+]G^8 &&TALʦko!+d"j" 剰ˠbxd1ܞݔ'G*&VXth]a]/k߱"䜒-;ə\[:04F#p飼yCy%ȐkND\Kjz国"*^y]XW:.ydZधչ͹ T;!shԝoPuUFkw#ȌBUF ky;b\#0xJ!\oӳjWv?u#`syg ?`4-uoykw _ Le#:Pى5qMg 7%UccAȬ$*$2SH)YCs\=|3_F; eo` 7qj,h@PܬQJ ?X1|J%Tg[&ۨk4 " B:["ߧPxigMǨBCs6W-'WPpb|IV̥o&0Th #kl?OHp8#Нs,S |ߌqZ{JmIU9F)۽"մO=d\Y0bl3]s.ź:FA4bK{sќSDS(2f8Uۧr &,rQ ٨+ʎO^gvR_cćtQPsأ࣬=Z졏/F-A/zR~k~ %T|B]S-v"Wx>Z 6la#U)ME`*ʾ*efYgoNU _|s!= . @~P+vHHN6_X!q/a"Gnӱ4vSN~/D"pRHk%,f93r~&E ߻w T*8%ߖtO3*TuL{[ȽY7P})rb7n|PiO‘+£ii"GG⢂䵾,(>H!F)b ĈԸu4Hh|@ά B8j yWR~`kN*s[?U:D;?ч&8yC#x;^fYdiڠڽXvC Čok詵9l;EO8^ENSdsf[/EmDmRiiANm.8eci=&*#*D'*J),A~AXH2?&{Y~_RVίh>Kc2tjˢ$9s8>2Ϊj\0W͗ :# KemsoNrJ#AvvdI3cQJ\Tâ-ws]i?I)zdj͡[ vAM? 3J+/ FjkOu/8-u 'JcU iNHǶ%EqCR ^|PNFaɥ&r)R$FjFI6ݤ s /ن(qU!_?^u>[6h-@gvJ{k 2]Q<c"HFEl Okp޴oa X}=F_ۋ}Nl*.gvȺoTNuȺӽROg!W96Jy2+GAz Նڊq!rHs6aΑb[?ЯeB ԱkR> A܇ (Mߐe^UwE 5 hg-ե.Xu !mGGS]s+ifCd]_#{#}nf@T_XնjD޹\GQger,Yy,IS<땛0x6;ii1ko}_5/awn~H)9,^{59j8X^*_/Oi`彘dK7yUMs:9cZT0n9Hd\][f¾"0  !`YB=DuazhIʁp4Y TD:W'g+SEť`єsy1i53)OL~CPJ`ǸMd BcK;+BAx|"뵅 GZ/H|,(uTBs0XÝ)]٨AP}F,԰ P3=G4+ ptԗm#ƅ-jORaO<ЩUiJ|;ϮSҰ +E\N5?׃>1Y?f/ n׹%yCypOXxv]W+f-%ɤF׸뽵WbaWuʋ#.4fzCʅ:SX"-@' H]:5WC 䮵Ix)sy[ lrL7xqheBaT?UHW>dF aRCmM[ rl"!ì/B.La$B\hvx^lSg1 ì? ͹>;/:gO`7)7yA%W$4N7X2|@\o}}7:=Xc^՘,M)hhF|c('M8B]X_Yu]";ٖ Tk_{PWSN_{X_K$qea#s^=(A`(%n<b(Mq0h/h^c>ECi>l5_$,_?X`x_`ؑZIuF;X$Xp¯B#+Zd)zqiivɤ w 6>S d~{"A r~י+ҁ@*2[,m+oL0a5v `bca%TWg( [#n7f|UEY-~'aNov> _% C`У2hTjۍprf-oxBhYOcs8X eep"GEn@33 [{~̖̬X[h23kꀊGdϤ 2I眱 &*b.k'  ^#q= o?Ձq7SB2n=9(ҹ Q_ށQ^a`7$2U$g^? =S&o^2 =wE§'RVGk`CJ37ƫ˟\zS,hIk'gP ҥvdΜ-\OI[mGy@ +Ig,HkHڮPRj%Ǟ=Z#?Nyas?D'aW5 v}Xr"ua-Ǚ+(g4ncېe(O Ƞs(H1ׇسgngJД2$D I;VQ*7ZXFjQ`ǭ2[ ODD^'݄U1l+LvOBÔ#3Dou]aZ\]-:_7w@c(g+U?5F̪r8UB=8 @m 7a~M3w E>{[ ֱ+ճ89NFTB_1V}߮]޷32`]Ȋd%XnovGӾ5Vs닫ۦ\!5kV;kv[qF "Qk'{ 2>?)Jm *MNhMN tA`EDQnSWWӑCǫ2 k$Q!$ez@0{7)w?ǟ7ؓVz"ׂラfS8bСT@BKm'A5iy >qnh32@ިc.O"<}A#@ʐkK7`o)c.&RR ם,Sۼu0y$]飘M#ldRNNBm_iP3F:u`k1t, d8 PF̠a#}|8•K;fTmݖB&M=BU z-aH3xK($\[X16shDu=GܜJ-XI3c(Lb ڿ)`ۭX*FցY9iŃF=TJ+i'cn}]E*" |7߉A!՝9٨he}&iTQq놜FvN$~ LjKRSݏ w S17l~2-f{z}N/T3< sp>t_rG&c*]1`禇Rn]*!ñ˻_}c:xRst\M j6ES悱qa;y`ƤF7^9uby ~zAD ۝Axנ _yis3L8 %d>RMG !,S=4JTvU B9ˣOK({h|)WKZwQІI7StQ}Uj-H >58М- T]'1؀ZHZ=nZnW~ovv~N1+ܪdф>nDDC tڌtʊx7(FV.lPJSot:?l.{hh¨Hud$߉ԩǧ)Y3̝t{+lS [-u.gg{:|M憶A4 '6M(E5'0_]\%:16)) T$W='dtvPȁכn$kh92aH8NiGh]<Uut9Wrd I>1ǘH@$wbo("r%ۜW5E% x<6mIۼ3{K>C[Pg6wJM9ȊuS1 D![yӤ(3tvEog{qe__J eIt A#u )` 2CRXr,TH1f}lRI<΄ M.kt==y l,'cZn63}g^~bzfRS{c ɩTyB7|-vs,ܒBk)`G%.H[_uk΢?u(R wϛ* ]1Mt PGH;UV+bW}H"n7GȚ>5qPK|A1l9'nuvola/64x64/devices/cdwriter_mount.pngUT ]]A:PQux X 8T3cX5q){YXLI*"I23 *6!PiW2K\W*UL 2y{sss= ܲAS}:}=*ٛE٩PݲCL<>ȶ#IClb6`ų̛V,9Rž ij"7bh@ TƀM-{tO0-=[$u>AsP*F#8p*uN,xa,HO>J~&`o)}s=vz=ޫ{d7@C y:QPZ"F^mxNbmN`<M-yN:_dVUyd=ƀ@ lnO&3e]j{A-!b#0 dl`BhgsQBx) fRɵ'd$wAգlnPL%Ed3[xѡaX C 53CaX~ 'lVIr*9}]z)cF#4' .)hٱy'DjsՑ+P  Pq[L]q+(<ʦ\y1gr̔I~~aȥjhtK ̟䢎*MtO |(h0Fz;;'/1П8kߪ.Q,J܂2Ffu'N|N?H\IW0_vaiLk|F!] CD kļGA/زQx`É5~_$;_d4i(7jֈ `o@ͥ@@ޠ j$FvjS_(؁R& aը(W,z½h7kբ>ޑoCu%̓_`Uw+- 7 vݯ]:y]vAAE }/i"w:+Uذ)[ʤ6⼓yO "kxA#*%e m!!kdWf H뾱C9C|8ڃ t{D'cAJoP;joZn^ :_?@x$+昷qmz̉lb܉%fR^oH\Ј6UHXב )<砫>:]&٢k= *8#14 VyW4&Y=/$p/'b+oV5x9q%ƛ*8_ȜwR2C VfQ-B^,I4P=/w5L`iƸ93i(x\h:}{1:[L!nva$CxyF=畝)A 1 9:SP<<<]I U <17Yt`d9mAd l$|K][Dme-` s`O^MDpn9R*;w\/_ _[{k~5m4<WX<$.r!-moy'f:EG1$CCnzWǕ؜B4 < Po)ȴÍm'i4şoʼѐ7m S:>uQ-;z:KqOwTI#9P/V~e/]ȊH4qbb+bU+񐟦%09~)?hW4ONy'`FjiV.52d`a"LVt[YmOm}./T⸷FxbI=v6A:B~tBmmA۵Z1ǿKcG%tg6 kڑ/RD zz*ęzn1fJ([|V F zD{#pږd6}S[}KmSDɮΟk܁|+޵:Db$zC!O)12>saOC{QwZ9}Fjn[bxauay{mړ>[X& TӤReqJu%͒tcIV;Ant\u8P=>͞`d ̶ PUE>}ҋ2"=swnvl?8nTn(YJ-|i'}߈Ԉܡ~{͟ ew@*(?9myjT!ţ$n̰*DVBnϳ{r xR:=qt 4j1qmJ11w?"-=L䩓PU0?˻S"B)r9{Uؖ\ ekwA,N2SO-*o'(U.S1(rcm\\1D3mßRR/GNXge>+xF3){z *LOvQ3!o[ZDztot!QI^ g5Vn&n# pcL1@fNjR2K?g";j\M3NZvӡ|?^4kMsKrhEsyzĶtO@q#fp<Վ>?Pe)>ƐdC8U`P&~]44UA2Y~}hkWe \n ^Զ+TT.fGLU>Z ռ3|0c"^eÇ:X?`'iղub'/'X sҺSjuLjeυƜ3/FPyS`EͲqƖ2H'ӗVT)T& $[z￵#/*.RAF݅s Ij{wz6[= s7x׻"5 c??q ~qWgq2H<ĩ[`31K3r4) ?Zt%"2ŏ$FViPRC1%Yt Пm1]MݛnVk;܀ ^( bդFu\^v15D: MPC<,'0h~ca 򀪵Cz w}94"10Ga>bOI oQdhsSVZS~ Y Ϥ>#L."D&LYA!Q ݯ"EGb.:;;ɱ8q`(|T2 v䯙~3*̺cThrv'맿w^ޢX?xpg*w d ~Y.HbE|pW 0 >* R !ΤN씣p۸<0?LJ[!.;HXZiqx-h+Y-C5sJW zTV8|p{HEޑ :=:KW넆5"cTԺG܂ATxo.*/}_X r-#pEU zO.DhE xȴ;˼H{(3YJi2 ,wһt|9ZWDYPud-p?,Rt1-LXo-/BHm خdY:n'W^Y: !/#{)">but3G53/w XQL̎J [d!Q]1':7GFf;?GH uw!AK'-c*?&4x.2y+@f cs 7r=.Htŭ.]w]Q r_[W ;9Ҽt`*cREzWҿF2?j:4'mj&€=ݦxQ%5 cA}4<*ܟ,q$l ?{Å#J~îw2W[plAH!DڡzÃ6osQiePYi#U;vd &?8ރE>f}en#n9o'O?xa 1pW9e^X#*_mұƂSll ;  úZ`w"&!aoly +#-YW '.H* @riKl݋WT/K`ĸ23ǻmcxw狲m`ts7T>IG2_%X&^%U@tuq4.țڊr+fH2:_ YS.*OVS/}Fɦď+hqk}omX^rA;aW>=l}=(WQ#>;U/T`o,b/wӓPz[+Zhy<:cV#)ÜJK0D2/FQWRʇf>k)Ggұ4>{U,-Π(!7H׮Q?94?R םR9LkV+j^PƨVO-ݶAXRT"=%iZʀH>$,v]{KiMVu$VmizP?ܺE,Ԍ]201Je$>bvX8984MDkp1 7F$7OS4&(*4@ 8@׍#]/"7a[Da~a~i D iM`ϤtԹ oݯ7Ywh3B6"iT[ Gΐ/ n5V%x\ۄ1{`6d։ vXF@w(g5KnK+ΦoR`*0i)Ki?nB߆ ?0u%\ K㪂XtȆkOr b'e՞?VWZ!S|EycdRm-%IHf w%Z/lknkUQ/h|??-P fz^?%'SxF+?R*Z._#yk_^4Xܞ6͞mYMBs(;t2@ƹoPGfbMu"|ϭI0yXpK+)g5F=(7f߹s;dB=!x8gO>.5TMtz|ttXVx矖Ik7j@fx=P<=zj=A`1~lF"s2:}s! U`buڠ~H.&4qpW!ŧd &*Uۛȏ'/BoLowɱi_m&|XcegDu[4V͓Zap%#u?:}]Fa1{61)2?瀢z"c`5~j<;q3@b.u`:xZb?#८GJJG*o!tS qנ,SHKÙЎo EU'br})w)}9 hX"\xmdumqsY3{VfyG;`轺3M4y"t7/TtAXvm"QkLn|TaDUrF~h9Mk VkJR 6!ӨY%MMV!JۙXjU_˾,vYHX*w˒D'8g^c3~bMʤK?LцQAv@' :]e)/ "zYWXFl=ן haY6CV]߳#]^QAɢ...c{lSKQ;doPѐ?0$i6bPSrʪ%}ZUX46@mcT"}aV =2Jj$jgXs`y[vMVN6OjZ '(UlLF'9uSGbq5C7~q힅.2l?RŽN0ަzW /_51p?ﰯ9A4SߴT ۧH0BAr#yaٽ #:oQ6tC /k!4\9DRrHQNjƩKZM.go] LNAWdf~0FĤ|w+R]ri%M$Re.r99QpV|U bN:&*SaZÆ3=3͕a ATP#j:=yEeo7iO"e%[w=v ( X֊&H .nחLV/9a,}j4u6΋)m=-ZewQкJ%_^'=F?6`NuM$ži+~[?S9*ةt^DpL_3D6=97>D',1N#SipXb//)]F>U1jqW+Ͽ-39#(H,֮MI[,G͊!Ew_ӄ%hitv\1S}CVMjӤ YF50xhq=;&V"|MRmC~q{Ee@j#\VL)×(^E)&(êMLhhXiR|Mb@z>Yn,7faj2To!n2èTzmM^$u_ݴ':wchAR1P"a5~1hdͨB+Hç_)] I6Qneo椉W635>9!ZG#Fs ɭ|dь>5'm V V."ad:%c8_n듦 yv?.̍ \|w=,kr(bYGd[]8^)C.EH{0}.x[%_hHmeB:g]l-J#0Q&e:֏1y}*G8Kէ(4FZ?ڳUmFL yBadqȇP9OrzoUbHr^VU-=mߢ0q8#@;5j"e`ѿՏOK`)RdR("j:c=.fv5[6z_2#?f1*sCw^'="auܸj =TUޥb%/:5v%VJWڍ8/KE ,Į{y$>sG[#۳ա6[zyl|X$HJ5$z'2a+:7d+3 TL}+96qxQ 6-1k{]&+vpx7z]å3Cnݮ<ɀXhE+L9;wc[m{![c"!z߄zF5~s$E5zt$dlP$N]AJaU$8a\SoN#^(L6r HFCBPq;bo^eہ0=_En]hLsy.U]k3hI7/ɉ #k,OEm&:5qۧ Q"5b(i?*!-Ak½CܺF1* I{ ix 5C DX]abr!,`%7|Q߁HG|0:04):lWHZk8k+ˡWp,)Qi< qHGOVZc%-O޴{a`{SZbNX>+zQs)Ĉg5[R}{Pѱ} \!B2_GW;:BEBmf.d^zҤF.2`E FsU}QHTE0'O/m~wܽuGD&"R JvG͟M}wָ;҃RSDrgr i]Չ|N_\~I r[x2K.q_߳V}ퟦ ߇"#G""# uD1FW_ƞ(Amd֧#s+"0j3(xBbiIg3h ɢ ,uqݩ# aL523"T5]l꺔>S9Fo!8y#v#(^;X7ncuDǙ*p!fD=V/fȖ['rie0!Rg ֪f5ʉkSS@7^}=,[T#3r7'|,dgij@3,)a ӨBWV$߇r'Ao/a/k5e ׎IJ1}'IԾ9s38ҳIEje#4J"Y취埸8 CH*#2K'uLw90́ 䭨ǽrpP^vyuPK|A1"x !"nuvola/64x64/devices/dvd_mount.pngUT z]]A:PQux P]7D@ vQQ$!PDP%v|DH'<Хi~;s̽S~˾;7kiju?LPC%NVMp^PVG?1ܞSa. BN  ;, ` a C j]3@&ف__R3l~t72¿Α/O? oHpqg<ꯜ˅:)p3O(z&x%BVGXN>>U!3}@\-ͻ>59JorN?r—CxZ zlNJ WC8k׮ x(p,cqȔ5X.Zp؅1w3*,S\֝pT*wDh6ABEJ~}*JP+7yxK}zI(!ci6>:5fD܇8ũ5Cttt3—(FL3s4'-y"0J22vue9'}^96w/ތsc|@zcvӚJu:KvGM(?}KSb:G"AdV)tCu+6(Eٟn3LAG w@݉r<:61X_MC^@5+=7v-u 爋~kf]nSS]wG96itp^n^1xn35}3"<7 +Y F7+1X250mm۝㟉Od\*WS'i% N{|ȣrqxҏ-ci0hsӜ&!5|u%A6pĨKL55BI[W2LѯdNj wn<' u:I&up .)^b q_aHQy67媳/\ùoCqk`>䤰z~ mqt {em<+o,Xj[P'? 6[|}j - QLWS2Z=cF0(Ye0#~K_qW$/MlN< m#;qgұ$K(ոyC܍eϓ=ׯI OX :Ci&Sp8KGRbԿ,,I _ZZ룲eJhؽ|q]#wH+,\}V5GPIgɟSW_j3 p/~ߝ^zۀC:ojwSͳY |z仅P#T$Q]n ȅ(AB8=MB.@X}3MP~o!Ļ'@M(G>ǯ+M1閿'*A$7}?aёkJ%fV-))!mF.*&džz zI~qcd\?$ɈoqHT,xBZYbUdg%IpimAd~)EyO|[5çܳTmW^1-3cw Et|J󷵸1T;4$_ūaϡiγZݟ$Fع U-a[Z=cts.FNkDŤ_g:0|d|]Ħ0tOIV^<ĄUI4: pkd;ք8M%v"E>.N\řY=* p,\/? $ba;a0aۓNwWVݩ_"-  mۙ'kH_t4kPr2FPh/nez$\G  8t +aN!k"r tE7nK. فsR̸ zG@~z`'B{@G7 {$w8;;^vPj|JhIJ*sw`lujhdha?\7g]$c6INA0)bpPLVIִσU4˙iLn _iwᩭw>;W{ozvQڃtb(f"G=>`Eka~>#r!8Ym. 3n+0mӜ#.=GI`)y_Mo(ķ#;d }6[`B`;`;i*YcD)_lَ>t~8& XjKeMO,| 7J`E 7LX=-h~5`TTM2;R@gz_/ B,$3NpDXD>˹~A_B%k,az!O`RR~.s'/%[ZbÃc5 HBƍԛ)#i{;lcXzVhQ3wzoxg8,Y|D\FU:80z4#0V+Z r%XN(:a҂Йb{!eTa,Yc-3 mRb/HzSYbTu{Q$3ȌSw϶'#gxUL2_Y*J+FDZ#_o4K-v9cm?𯬍-_b'GkGR"?CW#v5FxD.`9zWkh{ R8~ GV/&ڼٗMVV5qFd&x3wWT6n6xu NsbgQoD$1RQؖhFG ڬblNy'5\&e1;.<γ 2+3GthҿwW#ur$C"nNy[o9B&), `5rͱ4C0QnōTen?2)i+雝_wtp!@9A#;Co@~∛X |Jx!luw*Ƿw_x֝n,bE{Nv+BhG-י~Wb6e>TŜ&:-58 ixXydXhimK΍u"ԠlD^) 2E 7v!oh75LBq6t#,MK Z\cy꽯^UAһa*p-]b~N 3$!Ww)E؍]+6݌3alQFvA_bG$kLavh㴩-UIӑ&Dn40N YCVrB% qjN}\:~&{*^h[ eS$gZ,NG!0%pP7o^+7,xq'|'nu6?XC 5MWwirda#^Tiju=\QQ -ۼc(,VN/3͊0Q*YR!"1vo^|׸%zjb#$ qFAr7fh),v.>vQ ,P   ^.I~bvE+hw?@ԯ<Q! O<=Ur|.#na}Pɳ4 $} *v@g6`eՆ{ƥ,e!Y~ΠYI;*]N xS<4Ɗ{FHdk)B .O&Kr5`ܘO+&WPF"wl=ym$땀Ni F-Nt#YzfՍ5zow C tuE[q%n󧕿jؘjx)͜[TU?v\ FR3=Icݲl&Kͦ^D/Y"hmcujm@7-I}n/b FM۴m4p9p?G܏0Q5vjw+pR~ )K>Q M6i,]l}uEl 4.LCC5ˑ͞`q;i X\;|-rr.Xk?_`ۃ<`2oв\\]e^m!$ =f@7rap\tEmɏ.#c5UթOt oF`Ybp>Eq+9u ^9Hj -űȖ&\{'OTF.̛@Od{e ¢mC!X.ϷF`^5g0j"Fǰm*⿷ln&@lʎ5AEX(=u̽ B 0t>|jbzS(;|m¸z?Af up E+/$1S^* nePЧ"0.6|\񨞎46+"v OE} R}lEwrfi$yW,ɰa|wOfIz[4(=O>SHrN$AZ\|f>̌A/`3 !ӒL eJ2OsyƑ 9 X$k Rpt 'ٕ*`^7t#_OhŸ]*kjqX7)',ep5 ?؆o`*$Fw622hL2#0YI٦xz":ܳuGi7aWm7ȥϟ\Mw"FJ?&bq]mMѳzJ*uy{X6H`#e(6o_Έ cNV \a[yʜ{&Vz' %ƾ麫W$Xd:=_B h)RU|D/7*}C!&4zaqvٚZ 9RNѫsUlm<ϔL9~X>\OuYMz0EPDq3xnB[>32"#Gk >aB&I]&~LOKо2eRFP߀;GOrHIB*C!+U?h}1w#i2oٳ[&..ѧNFC0vxAY8[գ䣊!A~bl5j^d9}eD}deM$Daf)Hr^윕BO"txBk0mp\pcxP h0iC/p]Ĝ;FS|7eƦ)Nfԓd T:#J.!t^Vji@޾'ںqiPK|A1Ⱥ!$nuvola/64x64/devices/dvd_unmount.pngUT v]]A:PQux %W 8~w-^6%FJ-*v9TTr۬$ta|(S)6ů-Ia3}9|;s6]%nww۫iixDAwY/?;o?7/0&!Fᯄ jk50& _hzD;gz| ܋z H}#ǀo }<6N8ya?i%cBr<vvfH2!OpprgZ=b1={&.(yA{LlYX>ػRSb+jkḒI"sjMmH, j,dBOA,vscE\,9'W;#ttI(n4AW6Uj0xA ħvKlHRE!EF$؏Uq*e{ݮb bPJә lVT-!o+__wJ.J~U kghM^$CCN {jY"s,E8 ee&BަssbjTDMABN'chǭ˗ePsڸQZZzi_\#RcWzf3dԐd ^=T@Q! G`H\zy즺9_Y[5=I/{QT*I {W,Y;tA j\Ї^!FMC?-۠gZhۖ_Kp,zoaMQTJJ}?i1t1.y~"}m<N'o0`ImGrqEϸ}cmTNI6C/cώje%XZA]G^o"%or\XXIw*3Ə-xCYJ~_Їt}YoTp} jޛ %A=Au$b*6Ao*gnfCmoժy*{ zNL&%PqYeA+t&r-e cZ[DoQWL rX1M)4LA/`K-۝(+U´Gl\]L9 $bJ2$E`gAn~^pgRns|qciufv~c~-_|Mϟ1TTX*blwS9!.|+GL^k qfnzvoٝ|;{CyQ9i}qɕ|M{E'=Gcǥ$i~IOt+0pR܌$`mtP2]߸|HrQC`s22:jp͹_CX]?+ooBZC -kT%_p2yR~QiGJ!^@ <ҍ1c0̟|ERggi5&h7m{#yʀg)bг?='TPrSi?l}\_\Ε FPoEJV4HZ{cȟ9|&) b" 4ȜN'RwCPakMd TõS;a[/$w 3D*X-ަA?JԐOT8 m>y[Ξi3 kbE_wNKAk:)՜/}mpԘi]/su|z$0Wr36}{6r:~fc[SnܯL=Kws`j[6X >q|1LC/i}o

        }eL*ZykaTS/ p9K _3G4bK]r6

        V:^[qe@q`Au=cc^wW )DF]g'Lg;]TβΠI-knGT5 doeH ‘k|)զBMrK+$bHKLO 5D'荂fL$#Lwg5 u~/`pN饏ZoY-54>>YT&՘ܢ.+m Dć\ɐ6#kPb$ֿhNEKG?i̮h(fjH(K]_bo1Xᗵ{8o5[ԥɍ2' &T, N.(ԁ4YΛǦ[W%3%G\C N8cte|y(&r(ULڶϧR횁0Ma5޽s+ Rl E\`4$qF'υa~8$@\"+ZO[{1ɦƝ_(3,30Gzj*LWTӿ8rļXwguOZsGi۾,8s=F 4 5_[(Xy!܁=N>z۶dɀi}-PyK2};Ft~X%\Y<Ǖ>2lO[i-v)Kw[MCWt: ruZJW8?OH ˏ{4>}.a?ĹgI<6@7IakWeA09:= j/-99gì__Q6N5VsJkNj#)p_g,ͼv8i) 8 w!0a|/ #{O\Xj4sQc{.Bv3^ǏXͭgAo˙ %VjN 788W/2s)neUCl(hVli3J%˿4.Ѩ ֆg.ĘϤُoqʏ+(`t+TдTCͩC=ǽbGQ ?{`qv*ѱK)%\I]M6W\_IO_11jd6JkOCX.hqE9jJ!J\mL;-Aq |\Dhhmd8ɤ< 'eid5`y`D~ eiƒ]sN-J{TD ;/$C`S>4;\tNm9;253a3zm%UR,\ _60YfIZ " iL~^P"}4mՀ9 |mm̧vN#O,(I+RL'I4_Ͼf꽱$˖TD +EM ]'ⶕYz(&d$qÍf|9稜}YM.^wB"ڀgOPN`{4q\07FI\B]zIz@gҩJĈy7LOZX(Lp7㥼^"<8 :2݅*  zHussf`~1'%KmfxG'aY|uKJZaqεU؛JϞ˵--Nε3@kP F=Nӷ]i9U%0mſ`!z’Mսzzim4m(p|aS=6?x4ZO\1gY@\e(x`4@͂]tsZ?#n W;#ԾE iYhBzT%6GIzAQ6[hy*91/`ZUmէU_MJ%/#V?q4LM>/K1qNky,;]~"nUgLZȿcm?5lEu8JՓͩbۛN1TG؎7!/aKBxkux"dXrDP:k/|6$dT3N~E{j!ji3z3/ q(au(JcٱY||b-.1X>2pv&T!ל?\Mo{n( xᚾ']ۛYR/~`!j+@ڲ,uxH|˄|9uU4~u_@xouh<ۦ. Sw%3OaZRc3Tz[#_~Vnaݘky- d#gScXXbǃŽ #^kiX.AgQ`+F9Ηˣn媶t"g Ĥmܵp֞U1;R ["/%]@ur¢CLR9F̎5Bxw%axLMx9|/'wuCc>Dr~)@ </ez⪊cOlPϹEa&_} F~5\~PJhrRlW1 Ym,`$·~<۷q{PK|A1H"nuvola/64x64/devices/hdd_mount.pngUT p]]A:PQux -X 4T{0 =̌JTa ['Ds1LP ENRq!::t8T\`Ok^~y/&mcmt6nЌ7y>A3`98P%wŞytxg|ᔰ$.26 E%z8R W!s RAg4dh:rȀ0 P>f}||*T#Hro'F:'90I}CXX[|U/9IuX(ܴ`(DĔYdva7ovd h 24gW专UAκm{cNqJՕB"yJC[׾ԛcVlZC|vNqRۦ}P`e9'{r \ӌdAȈiօI:uYLS˿3k =麟&02Ap,9ݐ8:FK9WeY;ڠ.5 H(3ޠA3@/|3d:gz I%%nnm/؊X$'`5`6"l;%繵f ;_I%JQP Ǔ=;WE \BҩNhb>}vl'InhO7VY T{$*)/\1]3 ,,swΖr22Ti?e(356@J3(SK~GX=aa.3C+':OGZP; $]<{gJP`6"D*bYEvP6W[9wO1T? هFY+?"*>gffv 7Ua)AqI]v-Sx8`r(6.Ÿ_DQT,`7KsxBusKdhM{ihjr_1hB<ďDS0C*faQyHwu9s“'"5X ٕ#2&yY{I[ СFK/YуU|DXvYNG9c.;>?Jo@ (' *mv ̚;KSBrQSϺF1~_̐>oA=̚ g87h\q=Hܿ>{ŗY${Y^":"@m?tѧkD_^oxoug;$L|9\"Wt'i52.K>Z&;pcЎ&o9y[~ 8Tw/bSS}7>\DžB9gª/c~s.˽ݢHKչ[N%-lp1S_Ȅy:;{ Q+ )Sg"]cco~W6 'VVxpTaL 1۰.ȴ.Eujr=;y`؆ѰXJC+@*xvD5ZysMN+ 7n?fihtW#4^iBC9&f]w}Q#pW9yjA$ i..%Ggy%r̃&Q*ps&EĒn|Hvfơavh4ڟRɕ,FDK5~]^b/)3)7pXxּ ]?(zm {ڐ~\ +S?oh7(BMWX~D6 ݳ:Hi+>W_#\ڃ>^'XjR}+c=Rgðԉ1݆n-i[=p|bU힋õp%; 6v2= 2(Y"m\;)qܛNsmCeg#,jyrgq?bTp8#_wd̔.zt֏ߝF]]2YtĜvECt m sBli6>¹BCl3Oԥ++K9/x (NՏ+ڹ;l9m,/;>W@9.Q8ϕq^ $=@/.sƼwoڪD"'L<|}T~0:a/i&z >baIZ<>ao4UT62ԭx[,'B?L[Z|Tr3eܯd5Ӫz`,xzxW-ƽu7*VmJ&@0 =N<9!fRKxMϟ\IQ[.zq^IfΏ¤Y [PґlZ45(oeq3nuK,ҬC׿Ƨ8wGQoy9[Q",!atc+/CݬrR-$> U1DCsl7![,JI*<6V@[w:zq㟱=,9 kvNXxM%Cرv2!8$#|4@1=2 Ϥ fhzi<`Xz'GME1r$5$xUҫK:٭_x?[C@]$>H1wdǔQȄwa 8 n+ڤǨ> tzf[]FRU?W5'gP*[x: mSy>ɼtdJXJ#ע՘XYbo^9:UX:cœmZ538p%(Gw$jgM J7^O vAjl\J0˪EĊ ĎBT:qsy>{&NVUsXvTl(VY 3 $nuvola/64x64/devices/hdd_unmount.pngUT j]]A:PQux }VyXSWe"F^U԰Jv, Xf|$aQAC- Ym;.XHeiEAy`Pa(23_s{{; VxTyۖY3BIkv^Xr^®vd(ILOOL_ +*T)Ho2Ցdi4NH>@Y ;F^da0 LKpzf4.<X;ǎ7G'L12x~vjx}Ù3Ʃ~rbEVc+uCl{NձqՑ&1D:j[pX-:%VW,J #Gۚ ` $@%1ns>җd x@sոZ{& x!cS|c?l$d#wnE?D)+)4g5BfkvcK%bseŔe'N=GD[\cfQq0>AP?g^@쯂8[xd]FS @rM)8|,EEJ,1 ]t<=Nzq٣^##Nq.c}VxVQ&lWWr R18PAv%„Ly"y6~)wnu= 99JCy@M%=~D40/z"e-xb?_U]/@Š(:x^N$撈f@$*rQMRKjdsYxK>w] /waD̷}BRMrks0 ;LO)0xBM ƬɁec,B Ec\iNNE1mEc*pl9+AWeAb&wL+@fWwަ QxU(D gXX '''8&f+<7|+M 霷:C>r(S6Y)x{-䠦Yu\hN&tYT&lXy1& &>ݹ\voEϵb] D:~萢cZCʏ,9R7mg8x@˝4ݛ;(\'dx ~*.4j9db7˄)D* ݝl@ .$V{1 a>Ia :e>^|y6,ĺmdj}hi_XOU:l.D^ǰSAERKWԎ>B`4DRE{8P";.Ҡ"?sStyEP[MrW^Yz.yD땕;FGӜx^@$aukw$a;B,Kkg);vodLx'. njiTc'10B,]>yG9玔ӧ OɐWe"pm4{%_ yuԮD$-u96* yڞON tfŮ6 Mh+(6 {<<2'(Q[ܕHwT 17< bEw:2D>>laД,ߡ Eawo{ va1PG=R/]^. 뀄`ILFhRdG,b:Ìңqw`}6V<J?UkySk&LQ}n9_J<[Cq + /孭^&l4uK%V{2؏G^ԟl4M 0&]ݱjjp΍H"ĩԜZo*%Z =!,Bرwwm!rS4)6JW1ynofw5jw^%9IMZT'7u!CÊᾁ̷fiE͋;zPN&kaԯ;8%<h\ ̖4r 42VFEyo,;glƀ9Gc^oNɜBv?bvd$uxE؊?l  @ ПV/wk-\7f34 3oF5][OuV7u?JoT a Ds"{|f&;*p  DRa,!i،C^W]ګ8&݉G[D=4J>*~GkMdxK#\_<+-[ꥳ34)m7ZXf%wqBPĘ;&t蝙ݭ&7q&8c7EFBbl3ab5g_~"y+!8 i!2'H}ˡ, Sk76t0`hre227xܯ-GDmw0cr0C䙙*C\ɩS@7\F4PW]'%zK9]]=C쀀Qi)f=,lIŐqMC[%jL=YӯE.zL f).!`^s/_":C 2n)@jQekP_p [ `P) G.,МDj#Дyl(Q1#yS7]oF'onKN!g},|EɳO陣_߱+;v2jtv5R?c]!ZDxk$%3ҖyU9֐sƷlɨ7}%B Q60$\ѐ0u+²UKwV}JJ]g+ѩS8l>XVqKdTfI␲v1;DRk/{!\7DO/>Kq֟H&l;teY%?k1k-f3f0kx)%qF<vdhmG~eI$hr6M r_֯cjh_\:D66oVóW:᪖ +9`$$4Z(+57 RewϔUW8F2Eghv"/y#HG] !/*4s/xdX>{?JN&%Uz8sm`E"{ 8cPڍ°MꅓaBl|} E4ɖE:s)?)5%.XD Pb=FFLE v1cYҢݛI {qYsK8I@j> <'Ij!%s9ƽNNkn m}.>au2 Y-NSQWcŗK8G(&^3",2i't`Q DZ?D܈Et).S v!x1;, 6}2sfl˻hi@]I& f^B^F{x t`;UP59;ޞ."LRh |{ϡhI`Zrax# j5QKxc~_.Y[ ^ K6hLM1=c?Q~S_ahp'j%h)[yE!t ʨ6ҕٰx>.DEt/Z-6 :QcDn)&>ORUHϟu_!jV+ ,)6oݔA=o)[ξ!-966_v'\*V kE=ii^l22zĩ B[{LsіE \sfPyy̫4EX x*¶R(ʜ;9@)"vvphe6h_sLGvZy'&eâ L9*Jy][~L7xqs &;vI$kU)E_abor3+XOPa0< S YTj&ypBx'pv\0WHQyq?Ю%,ڽr򿬈s2KD2K8݊Wv;2B;N2l78@τّ҄7VR8^0jߔ"܆PB!TxF/qY`m J3O$kUzYq6w|ل_Տekd$:^^i˶M.fl/q4et; [X?5|uOjg,}{ 1P֪oT\9Jg`ϏI;aMVr/!Sp .[jSI q ֋vt6k΋r'laH_Vu Yu$EN~Db½n+{̯M'TZt`v.XAr  \=Q/=ee m,ۣT]YMn9)K_? ;&{`SXȁފlּ8XX-~92^5p>3GK]8ok݂{?Ntw%5 k-|Jl'4|4HWb!C8qϬ('Xwᝪ1uD}pe! oUZ @!=(\,a ^t=?PK|A1F;-!nuvola/64x64/devices/joystick.pngUT \]]A:PQux WgTS $$R"XF"HQ0)d :(qAT QDp@B@( )彻ֽߺN>`{v:;{3}76"n ?'HtB8}:64N_o ,.CA"ڍ ?:A-V}Y8u": lE7o-wFTBV~E_d>/եDn "KDLP*~9`A8:( [v\[TSFm6b^_.CdlFz}žu֚FTG>CsE, 6l: yu8V§īe Bct, C]"۶mC _9Z3Ur $WeBG#"RPVȅgHmC^+öߤBYK$޺wҌ!ue*=/[[EE8b#~38m{lɥZ^t^k[$בWѐ : c]tۧO,i|xgQP!S'D̛ سo7?<}4)#cYOoZAc"2v#r Yw˦bõ,߃ K3>&&&~DfX'U% %^Ij6XJtI~tG{)NæH?|n`Xu=DVffo !7PQ./jԊxt#ѶpvW<{;x TW'_=?Y')x,Hi~S:V 7ܼyo~g  <mٗjnBa)"Ҍ0qc!noW!е8W"wZ˯.Mk*c:5𦲲4 `o _\GwRPi7Ijf/YӉjC* |~Gtvrl0IHWF?vdC .zxkL; ?h. ukJZD]N$ǭp:T'.z1tL.nhמ˧TpfpN ;8F7;vHM{;7vzDVs*펿?y$}胼_mݫEV]//kT.g;q=2h60}бZQۖN"9Ž1k))o͢`-h HJ46ѧDqn}}&O]I4~D㯰sA%'%[_x'&(kk@8ܱZYo.E3Y b >mյ:l!+bI|#II6`3+Az2=31tʾ/_/*-nk[^c4"D-s-+ˀcr7 Ȗ/ڝ(0έ,v;ubL:4#Ɇ=a׀:OKr,sx` &>lR/9bon&=Š9JX]S-.@4zxQ_'hN>Ւ= NfVs?:99_?t AJ~zN'nWҒܘꦸXn oLзj?+d SftAr`6#XpIjV6|P+נּmŮ9wL sZ͝)>|~ oؒɫ8,䪑PYzi'43dD9b~%k$&dkE2^j.m@`vRȆv>="{:Bz0ZKGnOX2###3l?fuUOϔ~"ڴolbBX11kEDL⊎ s#gmZ&gJgc#l[wl6) >h~4]?hW( X8 ԑRWA'WjAn 0ʳ 9" ȜH1ԕ{({}yA[Zr/=mX^17(i;& |&>Ů^A?rT+];Pzʧ؊3V; #.zze)wFp`ɞnp@_^'D'edgeYeDG,l֧^ ! 7 E[Pi| $Ž83%jVٽ!HJfсjWWL]Sw鱞l5t23COжÊ~+jFe5)#s1G[K ;DZF yi[|ɠ\GnEMW/KkOoqxpljWZeaIM^`6[bCX F(5Iª~UNFK`CsЙu힐lqm#rYC7v:faV8.@'?M}'dR|qo%PlXqf[zQ8$ 6vR , N1jURߎu? iX{i~#{)ǨF'ne09`$ ]LjSbNmإ4op8 L\qܹ3^̲`O̠ eNq@0`4sR .en]'px\ ABzfA1Vz@QVI(,w &v^7Aݝcߺ#01/" .N+يmkVD*w!xFYurM.Tb~0yHC34j=KY6LJ.1 K֑ Z*2xR<rGWc7$7>J UBf 8ٗx7hf؍1;"uxdB?w 1q'3Lt Id]'ڐ G$h 0z>mG(+,Ԩy&aFNҦ˰y%H׻K3s &=SdЯgN&{$iiYYfd# G'rzNa =&DL arH$6xGzjhW)q!tĸfEqsӉH ?_˼676.W F ItI ' o٣DjHW9K4tJ&5cg|KoP 7;3Cza+ SE\:ArOt%CP8?TW-.\:^ʶZsS; ܪz*8kM,( |!]Y0ſcAX;@g ZV'́yyRPYeYQ0hEnJZHQXY#d/ñ RLǴLO<F0MX)99>)'fKZ"}!dW&:W,35/\RnEoi&1 VwP ޗw"h.z*do\>ɝNR>#XVwNnJPk<&0{h€ʌjs?pss~;\ uLDR>Nw8(>hQmNٱ1z1(u}ZǴ%AeCK܁eǍl?j%R~/ _YPE=8'|_H>n onS j|W>;k' qV6w^ɫFc|X&&٢5At+ @8%(Is5%C-מ7>qz?l4|IRVbW0C|/cjΜeCٴTT4r*j+G/z#%ySR朄Ϭ5Y ^ݵLחG])̻QF{}VtP2@^J oݯ/AB2+&4\-aG kg߻p0q=45v5l Bӳ{K5 ~ a]A&v  [)F8 S gf85]k<^soǩnGϮRkT`1_3ےgBy2 c  `;UhH,[.QƷѪ'\{ZH5dfuq n+_@=Ri)دTt=61^X{{7.Q6,yVa6a?f[\IjT=b(L] m7K|[(5ĉ?yeT*`Wg6{pwD)hO%?WRrg67ݓ5`DI+!'?(OV/7ePu ~7ؗzY[$gTFnSSW5c t֒;gsxv0&y0Gιǂ1CE>MJeD#xq;0=gVxW,dbJd&|ղ;GݳJ|PKt91r!nuvola/64x64/devices/ksim_cpu.pngUT gUA;PQux }YSݐ eIjPPPJHABQ9Q:$! pX"*JDTJ "Hg)t7wgvٙy;ϧ̳gh*(#߷",=+ !T(mC&'wbWx g=b1Xq/(xRw\\0>Nn)9P0 r$q jD !aYC`r0i T'Fc~抎[XXD8N,uFH&pR+V+ ځN<@OOVExT]~m9YEEC^7W1 x"Ւ냊Dm`sn]t,˖IׁeyxH$PW_?>,p–J ""=vfB/yiqz4;7tIbZ Sg%@t_F|.<4x67 kjj꒹ K͢vՋ &nx{w9f,ȶĜ-݂2ogMLL1p7p>b0]ҩae޿:~׈0922A0)]~ٺ6)AVph\_8kb2>xŗLsddfBMxź́ݕ([ggg3)8Py,nscmō}w@oj9 &;fi8҅K ^N/7︡IT6-J/  |~2@G7ŗȒքT*5]\d{PF*ڔ;;=&bשwSG U\,j3l4z#u;O0AK_rU12qiG.‹bvz ոYf^'#cܤ1)a k3@KY$0 | @eEEEJmsO&*w9N߷(AmYpk5zNv.`V>q k(XAņM--J}P=oV(3 m\0Hs1\Ef?wrBilt/] 8l_7]CN me ` Ѝ $JR(#no˅Y]}g cD=' ڢ^5M~y(7h}bv" +u&G i[f# ~D_-jZ@[IvI;K=Ԙ9AC( j.N6']za՜o]+֕JTeg'y o_|*mf_uDƪ[э*{Ϡ9jSņ:[\|Usv퓟2.l˴<4(3p'tBkTդꤲmb 1m'M享G&~J^4Pn?AqtQ-ŧ'P>ٙPL"O3Ζ=~yFin5Ox) 'treB]]. Ԛur Rr$׾!iYqg}ΖV ʹF|.bhS2'}/SVXnvq"n0;q[O@>TH]A kVPp<[յ,L,>؈4"%k۵0M3X?39"8@H{X@CjiGի= 7s_O)m_e:G) _SCB4|,kQ[+Q8I&)x ,P gt#F4 h/([[xbLRq^.D :Z068j􆁦; N>AIb"ZTN|ixu #te1#X%gAv\ J0Fݲkr_ҨrBs7CP@9aNk l]x |=ĦA{#YU;쐨^rI n|Hv=8 v03o-J#QqV|tESptq~Bq(6qO]%IjwwϐJq}- Vpax^@4Khҍ{BBY }esM7-KFfmlYېpp-9~®5%k []ۦP]s ~;*VCfՔ>4 ,w/F3T:X屢NK/SU'5#h0%y|{'-9q4 $S"ť_ˏtP QMtǨvI:ΛsݴӺWVlU6JLِ,Zz <Oz4e$<o.PzhY9*&YGYsdЫs`\ė8ֹL~X/s D(WM?nCm} _yaEE7pj"?"G3lL[GDK*5ۜR j ஦4|Y]4,YuADF92?~*uBi6}0r%Y]w^%׉BY<ډ5V͌}_ǩ?Gom{C cc=~QL<1ayiDҭ죒f@[OPuuϭ~{(Ȟr~^~KjHnq)_N>F(T?pQ_ z,&dRg:f: x4/eu$WCJ,9v;9͢!UojV,a3ZRαņSf@j%VhBrX\í ¦ *Čw,J\Y&?+ir3"md r秶o1禡=AvGUSȵ&BpLDu* Lj\į[6 KQm"Y0 fy`ri>8A$s&,tV$sVx7-=[֣cs_]jlA7 ' pdzp(٪~?{1Agfq-53'Ĵ#$PAN:,+} 1Vp|WcX"H{`-9 _CkŅ,J|b۟JJ,4⼔U~B[ P [ܗB[]|3d+>9愱U}o3y 9'ްHj~5rd`"4{-wW9 즰ۉwŹ4{J/~^WՊ\DELpo myC`\ =z qz}G?ӬBZH[("ڟڜ09'sNdB,xkЉd}Q\2}n0q/#;^l' 'GbJ +[<-jm-);hgH۶LuvaBI(V~ UIS k9/kw&ꘐ& ]XƵ)gvC3ghY99<\|sHb1ƒQVIWx2C:3 xŘZ|eHsU\=>1/0w&X͹a)ogc }۔8$US El7 &-x"GX38Wg,1_&.4 [Fpln&03&C'WGa-ٔn~ىOJ+FzjBvDo&UUDm7۴,I9/\CpS6%9ҔVE2N{zgnf@xCKZ鯕xfai5z]3#SV'"rTgz_FWZ>AFщYBg8}rQ=pi !Q.ե|?q!Ww*ףYn8eY6{Li,cWNd*2e˝ ݜDPDekO4d}2p]z[P7(ĥ^ PѴr~샄AQF+~ӴxɝOzDG;FO *rйP/1Z#ihx8<✴P,rp&@ BfB|[ChBK'Q:=J$>o)4 Y\k-+x99@*|344#_˥Sig Z&d5qM`P&8Vݱ^n'km,ۈW=`sdٳKv9S"^ ]kCv=^b9$G'3tY{6+ITs9(dNy'3h:}2_q@<0H4^ꋺÆMS*~^ eYUɅ|D~j ;`C)[ tBrₕk9ŔP9A.Eˇsq͡eC,J[׿ض:tTtuOFC8S" B hO^DsSPK|A11PEnuvola/64x64/devices/memory.pngUT R]]A;PQux -W 3׃i֢q#oN~/O:&DA4%&R6F%-SsKdag)ڨ59nC&rVU%@ (P!Z^$ycھ-_QUp6a֏r 8?=ۦin$|ǝfD=zRZUcr*{s ?)@GJT-c SO }A&LMac/I3/)6˛!>{)tsG܍jf-|JB:MkZ.7gG#}Էp}V vs%Wz~4E@)y˪oB ^n3!hL͎R9F_W8fՋT*婒ha\l{.լڻ֒g/>EG:e% @W,a{ N>TBi)mSeXT!%._+@r`K[UYt$=֖$A#6LdxZa4&<~Ąm%6ηhQY=umUFD]Z~HW(OȅZ- 3~~#6>~iyQ!",n 1& WVTt{PhER<<}HwI*3!NU$I˻Ⓥ%_ P8<}{%z*,u#~6*n?<@CygX% oآ4RQ fb 5j\ `ACPiĞfšGȭ3e"] :5Iq qH=jD{}#`b%OAlk*>9`?K*"=Z@,=OS`b߄ =Q~Mh-ݘ-s?`8nGX KBX! 9[j3:Ǣ)|ֻBJUoZ;~\ +Dzm>$& l߽jr)=}m)"т.P5sb?T/57!ѢN!RSꇳ̙ ^_lծ ׋OL#x.DIx`VU!>1N P\4ng5uDr[nر0&>êhћb\m%su a9ƹ0VȁЂfsÔX?`4ˆJQZdsI>! ?`EP@>DUq^+swez/vo`UA̾rSZqمy\Goy -ݓahƚW2EY'Hz,.Rx1a8-pV-D<vK` ᭏-.ҸU}TfCGeRT]a0bZdF.>.:~Y߮YM&O@mWD7&j> ɡ3?[ƿPŝ2 E 5Xq3oz{{w~AbnR͆v^t//) IFCpW=ۀl61>J$)ѥtʵC.Mpԉ9++ysхVٵ +Ls.z?/!yXT]eiQb,䎋f;|jOxx>aΎ<0>u䎘iP zvr}J unrs(dn$W$'hgPs1 s21 O^m;J 9釀aC:V]HSȚ/7_oϏ,UYvfU/[O*Jgq-RaFO?_uhy2` 59D#0֏ RuU4Nr?I "\|"(|?$.+^/!X|%`m 30* S(HHW %Jץk0-!xռ SR;8};Ғ/I{} 7Y)psW1M=6شGIOzu$j=BE,8fx/:N3 2=۱$8.C2çchD*L~ƤDgI8jC«r v%\ il Pb{Qhiϗc4_4xHᏔ8“>mtGz\BmcYfV )N kEĢ E>sr:}mEwO+=% .,5y[{,A;QlT&N5\o`[a~;ͤζW?X{c pV&6g 2F[f#FTcW^*ֿɮ.Nj.sq}iOq@vV ՟]ر A@kq@{ζ(Raa ѠWG<^z pwzp7wOoq3p-IU#}DjnNemvhJ[v j3}8q818;]L/:t-@ǰ09t~sHIyz־(׽3{3נUG$߃,Jp5w'tB\x>3FG?5~}β\_DŔݸh#MŁY "E-}]S֡pW fɥa L͈ۓ{ T (3=9U;6_T4j5KwPY/cv8h !Lk/? E jR@]4Qί@.r9]1䑬}2d(ԉ L>jPbZm]1`xd"Q stgIiINiUM!%sys3 S@ͤe~ߗm(7v7t2tPhX[݆,l$M=eOR֍EXcA:/9Q\㬼89T+"m t`R\C9Q2() {MZʨܓh cbxi*af>!Jkj(2t]> fn1lE-$Ʒ~ >`MvyY$U0LQu@Y߼!\4Of۷T,<gy M[_*4:|[Z0K=ԨZ-aS75' *E}$*$\DXw Yw[ޱm=_[KBrvv JF}4Yi僗^0_JO4;Mw V+3lOu+!yFM;nΕ]zR_u=#"9-gAV ټ(ྴ I'`Y$\xJ5eO O hN-i+w"Fsx5K&y{!$ʹ_=%js$hWbCv lZG@@ij?M_d&9%mx+?陛K-cMͨw)D|?px=} ~&l[(~ r'"OןZ]iH_fh΄1'iͫɜz"N??8<ԖGУE 9>ěj2SKR{V7QQQ9FD+t6A(I!K…::Qf&iT-Or9sm@hO>(D&ugs= &Mm]/;/O12=<#7'{!S+x ]Ѡ*uu";Drda8&E;cvFh4˖yyIWSr#?g!4&ӦBqii#GN%˜v=5c!-O40殮ܻI{ j8)tXg3U[/nL=oo/kiP3N=N3e{8lj͞Qt5@ni/i(bĞrs=Z-!@>[ 7G"T/pXSji0JH*#ş J369ʏ}6w~%}<;;m+ȡ FFK,+d1r7(R߫`ai+ϸVUAmͪkFrb>U"VɿZ`]m-;X${fc4s!6};;([>Y0> 0fMD2u}~}{l!g'O#{e,n[l/?|9K$7MY=.R-뇒Rhyf85ԣl-}`3P [S;[#T+BڮOFC**K> hpl:sjtPWErg̵M*:{QU x߹[-ScgǼ֩Y?' V3SJOb=8!zn=ֵvij`B>oq`~_б"8y'u>\t<:BWgVnL==?_I>sP6(ejl *`-j3UC(Y4Kd 01XzJB, jgC!X|"{4 fEQ:5%׾Syi cMs!L_F4[lS㝗ӬcӒ37i6NQ-NY,}w #y50뛚6?=Az 7p-PK|A1mA.!nuvola/64x64/devices/mo_mount.pngUT N]]A:PQux %{<ǯkN؜7d[")*lPbiF)X Q)t`ݩ|KYSTκ;Rtpg?=~q]q]z?_C! 0\b}㱳8kP9mo%g_ho_ZXK]gd\Ș=ce :SvzUSTGF{N05!W!xnْ!n[_Aے<ˆ=Rthif=<|kUٴQ 6]LV|oH:@e jjr k^/dMI. Y>ɊD7B5Ѐ 0-۫֗?}3z8l{t*fƂѥ6βj&&&j!fOTN)dbِHLJ.p3SAkUqI=Tׂll#Py[ɬ+B'OvI#1y[Q jK&X#Hu (=hi:86t!sQ|"fcQY3*Due-K؀3B\h >sD'^W|3ʉLSR\C0ܲ4OcdK-iUQqRð:0hTr__A@QT'ڎmkhK۶^&x>)vCM%ƒM< YtY$мG}yTbm]_TV9+,FR;Qc-̮,/FAu$_i(Y1KewӒF6#T-<1'`ysr<;We|Q̨h]9śa9~F]JDP!#J *)/SfYYQ!ྗ6@y hזH/݄y M^ћjOpk;M-O6g3D7o²*wŒWŻ;IH]֏gV0NNRuȯ~Jj"7hJ9hWǞY._Ď<׉R`䏒jx~ot9_Gdz h54altt w/s 'GC}AEiVɔd,/S(7?ߺg*y?K@fᖖh9`ԋ­gi{8`"ay8sG aI e{Hh4L@Ept_5setdU(6tBc G{5Ӧt@M)Q*ւihmT l-"rߺyCOE Axgw7X5pF~fodج/ys?V?詬sDsA5?j b0જfr=P?rl;_ZЧ&0;Il:tl7jt寚4xk!ը5͵KRQ_s6Ե`=ki EwXWt(ԑݘy Nhq VCuBcgu<\ Vm(2t6?/NLAzH z̀QF'FJE,'s$ѺLȜ .,1ް"gkѧe|kK01[ ^7vbҕ@̂X_>'O:I>Rwڨ aX-GFDb,k UhqRnj +D䳿! I='ݩn9:G}kNP 5gZ#]OұTLSeH&+)gvxE63ۄ,]]˽c ׀޿xQx~aLԔFcK?ٳmHBeOkA0 =ʭ;馇Tئe[uNnnҷ \WJ5I%?>Ht,8PZW 7K^xzII!#G3OFa3D!߶a|sq!_pX6 6 Rr>nyJTWMb=QdhhB1fUZ6:QB,{UG>-BΠ 992ja#c#xch$jgd m79 |ϑ? x{Gp]D+ZzX+4\ʹPg/12FoGqi %+DbT^!KbqA**,}&uJa&55yH6S,+XO׮;Y³ y<;XrOi#>nQTǷU\6vz#`[-Y{"Τ]f1C&@naGOVFƚTFBY$i6>3 [ |y\)[ Ϛ,I।2 ڕ?BZ>UZ8x`1:n_ 'e^)ubp#x_;jilDzb%mjMc1YH68H鋷\.ȳmoebs`.ؐuObU nS"_3 ]vgӶ.eO; uQwO-OIoGhJު VIS?)z_M̋A>{J;x;g  /;<|)*KY?.\3?#ni\ .Ke\yzbA$8orB?,΅ N[&2Ѡ' {"cTZKxDM+B'F~FFZMX{,QS<裣_0\Vz">it6.xۇ#Ls4WRa;ɌJ:~\\YG(5PN6{eB+ra>,'k`Bv2a=ɗVXpAlyqq1L;[ r|A\bn[B<M:rm0"1>xDOLs׊7!L\I}rۚbœy<W gp}~ Lg6uV"*^ ?f"!:S;G w|E{j:VMy Mr>nF5N,9YVWx<tR#9"ZَoA{2eiLL. wnѧ([mlJkѹ7'*c~0]ua%nLnsOHr&l/Kee^^s1F/]"dVwuˁkDOY7$V$q<QC2 $ qwTBMмL^_K޲аҺW 2JRNk;hsHxVq &E`Nν_qMV\q w A 4l%5Z%GWo3[H9,Z( .&lM =X|,DXW\f d͌~e/#{o+#ۧsG[*] [t·_~Y·Hkg0{ PS+EIrծ6 "E2@rj%|=I橌yBQ@뇵 1F>%qftH~PE;o[mG!IF;Fᥐe?ѢtDnjv^vr''&}B|m$( }u)p%y!E9ջ&s`oߗ3pn܀"~6f"Sg}:qS3idRj/3SPhE͟aY{p~p(ٹ+O AKHz't)o.<2n܋t2Ml98*?} C}.h6c2 @~؄Jsz@Gը?'d/BSصGr :h)mj%^$ "[3K6L곿)gZksٯ0 =ީKY,^:px;\%kTą=cĕ?wCN:nu3xYMf4BLޅl8*m6 丹2Sn k k'Z0h %7zfaYɺS+/XUL7^\ ~r ^Wp{4Ն/\%.3 FʣRѥfr5y*\h{hV!2n֖(f#$MӸD׶\)lE`NwLj1ZlB?A5y9АHem)&iIVnɆ]O$9_ѕ~t m`?E?_FESX!KZuֽgwB또]Z8pF6g,m$zg̛4]8e9V`ubC{5fxe7q |&vaBr嫲cͅlf)=ZKV{YqG8y̥ʱe>:7K1TN+@(.+Uެ^yTc .1trp߼Sed:')KHIU\Nj FQUYFA{$iy-*a '{ay5X>[j Q<;mbW0BX]A:%<8Ah N)c͠Ǚ^mPS Kܞ訉G1rT"[UǏu~_-0R33GJP}e'ZaIxX"#Õ VG1owJ˿{IT{;/kz+!r_SXHZӐXDSY T}w`]k?'`=tɌ, Kb-Ctw}Ԕ.v\AŜZ[Ao`Ks) Lov)(WcaY .A_`Ժ-7}s"hέVſNaOo:D]59j9jX=Yy1]}w }gr&N(//!􋶉 Kayh L!pes|P"RvTv(RD@g4CʇƄqm[wSk/:W⿱4pKPsY@ɪ14QBEsx^cZg:zi,r\/"t04j6E1f x߮- xmsT< ٴu6=`̍k+ùu2щՅt \v &fZ#ҫ3v)*"C*=].βFw,`JV2JCM?Wb>- A,ݥI(+>uUDe0[]a4q-5*fz=#؋g5O'jQw-ɸ_gb'Z/ZU8Vpa=5F6ZMSq7 = į:rquR`εa~$4?{n9܎w lZt-6On*Kg { ӿy,,AV:_{gq>&V[ FbQe\ 8nP2ċFR#G&f0k`gw0Zn|aOgB'z]D`tkSۂS8}P&)}bM7|ܳ>L _C2b""LFY{QGwb~ =\2c[\W{HgOl~Y%56Rq%MvOܒ8|d칑OziFO}pv -rw$ qۼ`qp]&,r{Pܿ Oa(^ŏCd]ZB!Mԃ:^ۊW߭fhUGR6Y@'J/~`eTC:y.LqѪQ2 (uw8w{u{y%ƞʊZ(⵺Xxt M߫g♭g#CϜ a y0+0|t- vlZ WOрfӋ_Uu^=HNX6HA @HH~MKwV$]I*JFg_UJA}DfqnTZxD66,Ŵ+5~@ 53pe \3I9N4๴;M*nr]Z 4Mu"TMMM.BsCBCCaw6tzznGԯǩFJym" hǓ(x*|{|y᝖ 4_tĠ- %Qև1C9΅\U´6/5D2lJ9WWAPXPx3x^0+>itQȡ hNUGꋉ$ Fwi쯍X[}#6G1UW7'SzAxTFF%Ǻ!DqYYArz`=ŅRnpj{KPDu,DĬNѩ3N3]+SIwc̫01|>!kEO( rsNp)!=,D @_sF*t$B!Rň+> PXLᦒƙ_咨JaԨS@𒎤ObŻbWwAd,vI[kߡ )oWAr)G 6ytAVqcfp&OE ۹W"uM mL58̟S]bϟrrM~~3?!|W`ݻ#,B7 ;xxq`Mn?,4=Ar.#Z_ۀU_;|鄞[z_hi$ysblpp/@Hm$_$nm*~>O"[^GFF *wl{'5#OɆ~aVKHkDu<| zy5/sscBalnB_#I`Uiv:/q\A3OYsŸ JvìNЧ@*T 3_nB~%:}vH%DhDMW0JhS_VYGs)'9Jټ|J-.kBp.qeX%g%ȗag u WVY;fb1miJ{aqjYޗlYߤ^sdSfxh}}&}ݫÆtv9p` '@K0):$@V.Y%qK |w8<Ғ͔]m0-j[GjOAq؆ZUeچD.KeM ~gi+)i]MbG BsD3ϘkeSHʻ+:hA8<  kd[LfM Bnqq|ݩe5*-X*bV~lZ"܇b-#:z@*=Hw>֏ra޼9>ejUqjgm>g@-[v2KlPn,uHѐ_-[u}+, !QhUsrP:eje8t+sdD' 1FLB\e m`fGrз6=GmZ5,)M bLBBr`Ć8o=Cp#hzڲPg~L0#թQFg+OyOq|`10=a}osݵ|O!8Zź\An 襡aMoF>v`6; vC+M0jBθɮL0u4 Cibtduas\E\V mH>}Lobedv{ ~ j ֗GX9No9z3GRu,VTL=3^ivZŰ@uBr_ (V=UVQTty&`UO>f$f@Mp(`xD箋BHݖZttTNUC5}/en/)D/Mr  }ohE?7*iKckk#ȗuB| 8.l!#lJպ sԦn[y"<##1B*!^%Bǻ >4q {k۪Oxp7b*՗qyEITo- 98l^}Ф9W=>uJ-Z4a{ "e SB1&ܔsK WVd$H~$ G]=jU, [EY.S%{,UW6tݶe~ q?hZc)p:yIVL<67z`:)=jܾoGƒ+9ܓӷ4jnnҎW{x)#~3gK+HF ~`j?/,=]rw*=LWAgZSfW~d_𷜤] X(V$*̿F?d`Z&n7 ۚ|5YI? -땮Ԃ| UC3ZTuVr?VVj&鞫MuiOjʡA3@b GMZ{}Pz׊'0#Ӑki9*4Ҩr.-E3^( W;?]z=3{l2?5z[>8|/^kM(\lΪ]8ssI B)=)]ک6o*_raB$X`=?`t͜=ǃmfEzo,V 9PaE1@R䖯zU1 lPW7HԶҰK? M &MkD1_˄ByܜR0ѕƟ|bz1/4ZK\Xf W(sw "o+VAQryzpa\ybBk&L쐊'56JMMrБ|ԧڔ<~Ǜ6(Nm](p˪T;ݺ|߭l%Lb.Xf)/v ^jG}ɜ-[]tE:Ù 1LD3S,{fgH"PijdR A&Fh۶y_cʧF8D.7;iܟRӓ"p{顂DY.w`E,xeE&>ETo:h *p{nN׫gp9uC"`+Qt挫R)q]ke@oHtQ>h0g*.V1午60qN]:n2/( ߺ}yS~|*0#e\5=7m2ڈ#i"EuzRj {MkP-XMy:pc.Xt'v;Un˗ה]>`R j1 (\~ˆ,>憄 GGO]>zD3lDM:{c?wnSe ]M0z[XܣLuRX$"{8VqNZ[MԔlz<ȝׯQl.,拐J X~Pz1Ir*-,[%8{ 6qQUu|8#ǶCR?@TS/q?@:`!)W2E5A[NY ͲfD F`&KH{vw<&&F x S*o`yq]Im Mtk?!3mI!io۬X\ecFPQx称E3'dҦPfĔt5Ǽna01;z'X ygfԣNM essv( g7<]1\2]S=Aaj_%ъy0qn+ 6OEm7r=fM{D@ksoj bVDʹ Yr5%XE{ɵUj̪ =DJּC]FwΓ*=cϭ*t0עTٍO(MeM߻]9ig?B7#`/L?*R;!t<*Ő8c̕U63{ W8H>Ά5M֖dVWY[`N~œ_=OYZPb}8JSŗ\xe+`W* 6hyb3Q)EK$;s2ypSX_ *1ap5{ɮbS> =LRkpӾ};*J\eK#(ɯL=Ҟ88,:hJR^/p4>[XJyk5~~2gx0[Q^Xdxd3@=ߢT6#^vl,.NƢU'mK"*7a(9 &Bc$FVDk r06V taujnW +h\&F6(Z̥_i{}Gnߦweڬ_tt,fӛD ?:vXTf]N_Dnd77;3,)97NtIPSJT}7햮`4>qCFL,!!A{ t0JX nɶ$xtW-YapAii~v,׬OC,BaG (!fob9ogk:u)ng˧{~f x(u%mWzyGlbfYf?a)on ';$qqj~#Vltsܯ'f^LOo4ס9*0ӚnHCM $թD@ԺMY&%ljD_7 jWȜQEU5a, fsڈ|7-``#م-3 ެ5 خuAɚX4_lINmM {kэj!X8Aj `il%"Cؾ8phM8n4 WfK*.c=[1PK|A1 @nuvola/64x64/devices/modem.pngUT B]]A:PQux WgTSY׾M#D (` Q0$a`DD&@ElP;z c4 B * %ozYgO6k7 c2~.FW~ڠ™~L!C|R=;bƅИ0'=t5d?yʵa3@4?番"<@P\шU͛X%^V>i()o4^QﱝߍSGG5͟MnꭟN AZc\L =gfW##MX2 E%IGMy&E>K$aqPVe2,SedAH NV0 7fr)@9$1t=*9ߢb\]) m՗/lChx;NV3$βF)>;-O Ȑ!j{?S$d2Yp=ERdZEӃTCU)KqjJ&&3<:D⿾zN])Hg{]9K@ miY$l sVwFw \:OyKt#'bFz {|>nѺ 6QeCqVtmrWdoI&>@2'Լi:im~Hr[ũ o>)D7@ Z]0 fєk8 )rFD?Oq7h>OXM%_Xl_kGvOiZO,,cE Œ9L2x@CQHx{9UR]%x/%r uWGG^n`9fŖ*I~gKqhV]ɸIۇ%VS( L>kzPfw }K FF%f RD:xmI˴242ҬDSP NV[GG\f5mtW2:fܤPkrЊmgЧ0 V"/{u'ˉP{J_dڗA<_AO$jsQ ɛ2++F!Xz~A¨x`FYBoDdg9g^7GK %@X]/Q/&/bO@iÓX}C 1C`ƍݹgΞ-I4حd|ڐ7'u:uΰ+FS>I)~q[K\]ZYW3;ZvG9l 廨ɕ-[?SƝMe~|/YE6/1RȀXk*Cptx"-Rd7y@;Os>4#>_:A<5'vz=|p+D`2$H B2< #N)Ŧ>_/匱-}C SfYkCB17/z;yXiкsv1T %HX7el4*0{8 \D֚b p b:P:s:|(Ԅ2f?[5, Z1L닯dm[sc!8!/MGWWDt©)T,@~+ }b<9(3}9_>$PKFDܟx6J/xK:l3є+01VFpΝӠNDos??DH|S_ 6țIɼFnIm6tț 0u‹n\sGi,Xl^$)عsWNp1#CLI9U+X @yuٕ=j.( ]1-.r+%M^A <&B~綎N|/rӴx;KL?:F騵֥sA2Ez2*3£\-G{Px6˄yHYw0c-"։Z$CȈ]OMZ>'xiFXK3_ ֓ھ\v݉N#CI*_1R@i6c0@^-6 -CWz2v>0!ir(S\+j''U:=xE=&Ý95SӧeJgԴɶQVҪoqq ϫ>7މ+$<:,Uw])(VgYhdGtuĞď)Mͽ(Z\;wWxPc^6ewiC %Q m::; Lf.8N}յY/.ꌚFxP`VPY Xu eė[L; kВ@n8svN>%]Pjm6z.e46.Ž-[O{uK_I^&&֌X_PGHJ0z`C#bj!HIۼtCK,/g:y0&rL=PYlGtՊ^ۗ% NWd@ǃIKB}QL$xOoe`Lij53: ^xD)x OT02ZKRrc`gt YւzmtaN\KOն!5Z, >IvnGP֩u2%Sza-}GMsSø>ҭv]z8ε䠍 f)>?S7.+F.^\@~ݿ&`@]nZs!8'PdƻpΉ:apGjpC 'X.HGT5QZY=YRj0񡎉iDH)vt"uB:URO1^oĎb-4=Q4؇EqK$'e7&Fuu=²eU< \%UB`Z}Ci*T.8@iҒS!XkP~Y.޾逼8>vd+:s@{Crcj6pUOt4Pi┆K )maJfB:٢6^)\/ 5ëm9oTqbTw2;m^j.]ofm$}^TIU݋Nob +EKQBQPK||A1<+nuvola/64x64/devices/mouse.pngUT <]]A;PQux }XyPSIMvCP 2 $ &QpI?7pc$3nuFt@DME ;#l" YW]s>4{cTRuh.ԶsƄB:8 "b";N0#F2"NGz޴0LbċMoAڞZ7yC ȘjP2FYX6ۣW`-|T˳M˨(cs allǞFL[ҿ/ƙ +ի+2O"ܜWRr )-$XJ..Tϟ_cĝ79zpGzL(V"3o0$|k׊ٚq}sy :@ K _+)!pnjbLH,ˊˑ8ffآ{;h/ƒXfT/̍C&jM;9z ]#h^aD7{^|yQOH-VJzxev䧺k[R&#"!7?)V]39pZΓՠf4d:oA #ޠ^ u!+x@%As:=BYtg2# P).}o P ^oL4Y^vP>Wv,?uZ˪(ǘ/`*/z;D,UTj4F2=^tʊU%k+RIޞ:EW~҇]9 ٥NNIYުF{_.+|xg_PNz'C|w\Z 6/yx2TưrF~sko|Pi}&"~/( AzND1hM3_?oooݜ7 ]6#ڜl:N]6|LOmv$ Ԛr2 NGL !ʳQ yeSk /mIyrmvJX3^`֤I 6, ++l,j4wّо3JM2 W'ƕil 7`Wvw#N(_gӫ>$OS#0ANBfR/XA~=C%`"*d!5ߵYH{x޾] %'I3!jDnu'(0.$Xd2 ,6.;*!@j_e/my=b_wє ˧*v 53b0eX(|iT*P??| c32ϗ{6@8_vs8fzIc.lH8 AUENMȮ~$<WIxH} HyzsCx JlM&nr'KZ{s% ^,xP8]®p]|0?k!;>-BTDv]K9K">oUqsi1L _r8:sc)G1fQ]l axnIpƢhUf(thr[IwVb ImR nm:{v/"7y#M͜'K>9 qLj RW=3y'c8O URӑ,^mba#@}dT5BFG'ʿA2RF_1DoQT+`"E̘=%Z[^8ZCF ++ ٹ EJ!~vq|.yP $[l. ";yc?Ɵ=Kd^p)ƽ Dl.Y8x(vSXS?] >BbEf"Ēb%YD=!BOvR琨#]G֋n#T>c:w/⫕Л}8|٠duCiԾ,-Ėi9W"#zQv.KL9+O{0Zt"bx|^nY V -+L}Wg0FD4b3ܝ+-8dd }x|; ! G+4:H.D^ J)-lҶS ٷni9Ԑ,0_Ca'f˕% bKPpt;؛;Wi d:O-~_giC*@.ٔ~VtY, U7/1bҔ)-D^k]qa`"`8"0h++@."M߀x⯥S29;_ӣXhb%N |4LN-q}`Qs_PIϏ[D#psMV^,(y=EX4ba&i/rk6ᣖ"3\1{ ܂MUKx0sjw': βڪDY?x~W{txHPMCh)4^45N=7#KbeTiȷ{Pp|ݺ,-W0?iOQK'>5)I)RHǒTkD|@uhi N>e.;y=閫7&>568Bc5JFƃ5;}Lnzඉ7 {$V&|R17):ĵ %5$*0x&zԀ Vdc׫䌗8@+(((Šb2 ٢n]>A~}{w64t +nR:˅̨0(x3QiBKnf_8 OKLɔte'YƑBX;kCӧ%qJw;x?CZԉu297Jٛϯy_Lw9NO5)/QO鎓bz`@ ,])Is,s9)zb]-:r n%]7PT>d ܺ~-IkB6Ki Y:i1gq"zcrY:,ie ̚gTTH(^Ib@$(8=NeH߬@،}[CqjV"Q:zppe=:qnŸp伸I7y[@qKU~BE/ 0&r.w4ػu::׽ŏy嫹ظ#jI[t˹e''.Es_#aN~| >fGꬷks^5Wr ]D B።v<6uNuF߶])8H8|% +]He)#"Y-4+fb\ XqHzgU-M?vae- 0~=`)o~7mm[P(m{;-,/7 <s|u}^30&pe~fQ= Zȼ5)% <g'$Qixr e~IIM~tٰ/ y5GdtpȒTBDVMSSj sVv9bq<]쨾vd9 㾄l>&*m `F:ZVֶyT? UߛQ 49lRf9EtBB~M$:-UkMlp5 7rHg̉S3[Qό&F '''fNFvݪR K4hkJ5dtݶ'\7S% NHdC-$xAA\S}677KZZJer=|-Z17a`ˁB'v-jcV& yK^CՈ.g"L5,nnkP& s8b rb!m8얬"*@X|T16< ]x߸d|\r/f.F w`~䳒 l&S!8O2)u`v+tn#$>fMrDxTֵ_іY```^M{ M_ݗr F@?Hփ ˙%O' ͶNd1E4J|ÅpB` p:A o?+)--;^TaO5YG&;u Y<Ϙ/@7!|``!0+҃IIh8r:a^ @Ibz9UI5:L:c(6C}%!ѯ' c4ʕ5}1dWnP 8m?P4y=Nyh٦/CQP*䒁PG1 =UTdE䍼Z6) `/k|pGTm$&(_o ~8M==ٰw(Yލ@-mAeUyI%_8{.>jo8t_)/AJس*f)1Áݸ5ޓpx)PvSptˊYӫC1=VMRze텝<PQhԌS0}>s1ELΝ0 4()=Twȕƍ.ۯ٭YMcT ,q?T&g55|*AI=SF\%}Z97P?_Ҫ=sCL: [v7;d)e?!ON0]̙qk JBHq(u##}*fqJ#3FmDG H?S㛆?|d| -d [3n )2rUN@esӎ'~dUioXj+'І:/V˦ -GN&v0Y}~O +h sY ˥o޼uvF Vm-ؽq9 Tiy\+N6J0.`K㨝Cvpf?Gnwڢc4Ysi{DE; 3mǂg_~ua/bm2d-vq rzJ;ɽnûw99hȏvH/jJpyN-m_fugjPOݦK6Urm'f=b:=:'=BfMn 3ga6Tr2 ehHc_9%Q1R`>^-EMʉ4ڎGWJ?@ߓ.Hڒ] d忈֚TI^ɨk*פ 5뛛k&u\Gp]Zad{/s=pYw\Ցa_+'ȒOJow/u.$<_DTu'M03qkt]"P`Oq{&ZAuز7$p٬777r(A9ǹ;h* P[WB \Owx[wo_2}scJA7\ᕛYdJx/2naPTe# Ƈ-ذJ=?9ۦ' {@~/h훁.3F)~iy-[F} `-YxY c-2[#[/D87~̆s?Ǭ ')ؽ7t[|.v^T|s ,RF'-_Tg^ +`qS1\YaJ7L1EKhmM|2FT]=ʧOh2\8SS/7rUСd(Ēh~!hfmM69Uм6/g\X: 3:C4e蠋һ]t&P!oL76$$D~2_WO6deeɡmM@w&fܦ}c1QEXyfJxіp$^vLiMWM3妎̑j/#*7{FɷYQ;Q6'eDDCuH՜.̹Y)ɰMZGzTztr\Ei8r#>~9jm~hsa"kZ"?Ḳ:\E,<'ЯOh iH ])Ouӧ]Nv9M}.xO8 mA:47~Ae6]DfX1;Ʈ8i.T,}ub`# K1my /L. Z >nQWx41qpS IѼȣ*i >\ݔH6 Z4#[IC [/^li.ntB'ddR34!-^ ߍ?[~OO7s/,|l+y@ N/Ƈwc|YFz~B; # T:VzBC*&Fo v4hK-QޫV$WR/T[CIG6s9moz 4 BLl;J=D<!N`e_A>蕄NjZMY = ?)J P}_;c Bm6] j]ȱ2H X@ 6/t,4腸u"gt5T{ 8:[b*E/*μKԾR0:a:#?՛3KRIy"chl v:qUӆ~`fT EW_xպcA5j%M!~#,'[o՟Nik2ttbO,BImPpb*"‰}o͝ ^S u\.Y`Aq1z۵ID\V׷Eeֆ+⣫+O,dM}M60L]_8+ \2", xWcfސOv\do)jap֑Gj?єʍ`9(yJ7P8Fmx!"6C=1[\'bjE?N΃?}E/hk#ꀋBJ5~_M 'y~ff aHI!hVAAA1\ܷm$δ/radI ]!'!6Rxr Uly>('WbH6!!o^` >S8:XfrzL+LU}3:ND $&K9CUVvrܙJ|G7-dҏ7ۨݯُD'_Zu Z`ӱ7`94ą8֛sQ1T1 rC zieM#'l}Q˵BP6/vztb`94F|~Ys|GxsHK.h S: eKU;*΁WȾS5SڷXx::tF x/O7ii_G \N=l; I\V~- ;=6ZGפ6cw#!иI dV7;/!_NUO}kվosIU#Y{ ,اa x NMF g8%¥o34/>2[t}=<0KR<'Bk G@H6T/A=oh7'װ# ^i._\2'.+t˄&o?z6ӕv?/g޳| 7; ȫ[~(DAoz:( NLfLbV3#jd eֲkw6U<к :y|U4>P D۲t\@ 7츲 ^qx؉^*Rt 1ss~jGY:ExNouO*2;ex@@ o j:/jBc:@?|?PKw|A1`$nuvola/64x64/devices/nfs_unmount.pngUT 2]]A:PQux W <{fsˆK͆J.*6DI'fNꔔKQRQΡJWVy?}~|~Ov$=3=iEP`vexYvA89T.|־.w?/)pbvG2Vņbi".UEpjia6Al/7 gEkl=O y D/b3 gU(Q4[ffzLE7-Zg0-2'd ;w0 nDql\혅t65fz$3ư3 4\@R{]7]{M]AXtwK.e)-0j^\ZJm>"TLPz{8bLsYG Inډǣ3FOR ѶCL?&>vuVا^5}B!A*>ޛTkf5j71{o.eQ$|ͽдCB qA$y\gdftdX[k 1B$aFeB5Ÿ$~5e!>y(jYvd[@^Q7ˋ*:(P 6֖>rDgޥkr 5%3Kvgu2BG[ lrR0?⋞2'$C<iSdTTfF(r<.'9IpZ lJa CZ֋X_2Ssu[RRbjT}N`y[cdo]Ĵ4u}yyd ͉NK3c=@ g_>#~1J1'n#Jiet S9ſNҍڨeW"Z*l=~s3\q.I&d! Aut~'%g;poF{kb=O' [T$6\[d1+47W}䣜28%nቍ :BO۲" )ɞӤG/[4"ƜGj{DqkDy-!blj5 ^"r%ֽy=8]㴭 tͮ2З\szeȷ &jsrj];n< җu!LuGpԩS7EDDmztDpbK?c& [ՈE\Qk-~)X\( Pzb-٠HmhB&8ft(bZTyyh#jvXoL#mfT"1"6|F]E[O8\cvA$c| T ][k[K*l˖wrGM lۓ&`7EWIZd?/A'zEHgQzwc gHٵ윕4jMf> @53]bQMpڵJ7n?quSW/Fn1 &_!ؾ} B0@pi ʿysEPhx17eZL\٠[僊8YvΌ +IL`hjll:H-8,NF:s~Nh"IYOŨ&f5%٧rgxaYbP𡔔e*¬ cΒ˧'Jxo;tJ+j{/SïMZG N!ia1c%#: K7SmșNbm?ݛO?.rK0U^y[&%]+CZ8:񕜷!]#;bd,N(׻ӫ1:[Ũ= #zϲ WvdKMwDc zOĨf^Qt P;v7k|.]Ƨ P#f=i>uй5(aPR/i""}~/1vP+gﹾgyX~Xgu\DE|6:)VS.޹cS=ٺtn^SY#+Î{t::i^_/lX''ٳg~g'3jhbc&/ifwsG(ʗh=jhqv鱣0|^`ITZL^ZJX$~nXEI"ϟ*3zPq~}!d%Ǭ7kQt C 琙'-ra rFqnHB5x`mh?UH>GjyҒp;z"6 uEvT9,aJ `d=rv4Q q:w[Sql󂣄<4shGQDg<Gz x4E,TwGtc5dBRMZɷ: C{q~I{3+k+C:dCJ㻋[qSwӨM4*Ce1xm[[hm|DqGukUmkp8|7*z[C`"G97U.\19䬢 5;(~`1?m.g5°]45*&H>վ3߫₾a3_Glm>aݞ8Dx fYl]"'>HISIF ]Tz!ý7s{ Y诞jT>Y)OgX+~^wpc}:sATE̟0eI=0ۨnZ#㐠~;BUV7tnp4¯s㸜pams28:q44 yаҹ~2"M[qfz5aJn2_]18lb6 :΂~->LKđHFlF eBUxZFǿ@tgu!&hy*?)|{1|b^ͪ5Zhl򷺲o :-O3DS,CMgvktb܌PKt|A1"ٗfnuvola/64x64/devices/pda.pngUT ,]]A:PQux mWiXSW>D! J%Ȑu O2X'1'FC@j%"VEŹ*Ac PQ!y쳟<{ N֭P"a=8÷fw YV_!rʸ}QRLL8I&C;S#wa"dĴ݀;pw̶m999KJ"%W P=r};u[FZ`h$9ݴ*ŋ+8aaY31=K1PEEn ٱW”. OL@[J&ʞ^?"ls eF`f ǂoi}]BF-4q8F pqQ'mi ˎc/wZqٜ ח;vMO _Э"EhckIyb? SoDŹCб1VZL L!t7ז~қ m%b+K0;/1gocSɎވ}9q"d+LqDyE)i1p``u㬤ۊVqɅ,5 +pQmZ[UR1b H \#Кu%g" 4F~!& 9ܡaP5CK >efaE;| 0Y2aG|@!+@97[WհӤ tǩEzi {ӼOW8|sU4S ʎchl@z⋂6Mzn$7sђ|(%q` >1F~08Q8<~`^dhDIv*wٻaVU9SJ!w,O҉ڼ7t^tPS;#Ia۲WV:~O}?>Uuϝ.aҟТz-"lE۬',|0뱌z+|ҳ5`Tg?wQDn&Y@.eް+氏]ǺŶ mj-~h)RVcj6Ǯk?x9A;7Z?fe 0zGlʬ16g[ My~Ґ}^p{9W0ۈadZ*'ؗi錴x/ (#JA l I4G.  7T םzۋ V-{4vR"zhdH^ d}FZȴvwKQS jSwӿ##[Ἶ]vEV@QhWuP0+"& 4v[-H@wGWl`?&84pppA[9N ?ȝ}n9; bzϐWr;~]tw=3|;8ۃ_+~A; ̖x`;IZ5"5x;O7Į!SڃP&ݑ}a.P&MT+.CGslш䎕nU*)/ό8Nləg p>+;VbGY#`H^x0c’9;;hyRGy&.4S?gb{eZQ.:].r__Y|whSe@>Jk3DӢI43pUsqM) eE>Q`#sez-띛>im#9t.y*o-N Զ 3o.|dtdvTb.Wɕ(q#׸>?7G$n(]nEep,b KG&cc);_`y$gѻq,tdkQҧiQ$_xglo䷾#sg?t,sCjҩ@bgAÌ@kaG&Iֿu/[dn/IpOm]m,#BqYotn q@$J3:_? @W2 Q|."zFq&'6#C{@WS`"ZYn$~G>TX@xn~y}cqhҞ(oQh4[GB)gqswoژ __1 T= *;pZ jԨ[5tH[׽$$E&j?Kym$a&2<1KMxXR5!L4s\Ė>m0yPEcjʉtb vf 0D#6>":Y醥v_}pfhԌʁDm5u[NLoL+^'vNYym(GHrh\If%}tr*h"?Il^l;S3OD#=o^o7KO@ya^bSƷk"{bXc3ފa]˞yZck$IȾ?'ܾO1 {c9T# 5ת~Z[|o9:kN5Gێs a}B?l J6;iG+,sA`kp!5kDM|SUtug[y>vMH4T5@%n^.ŋ:B2w&Q}lWa&AG@rȁ@1c i0spd1%43_1F&€QD4A},9'GyGdXln+%@Cn\q*[4'"7m7Ҵ%e.Xc$N+7`%4 S96*Q gkMhYEnfomH IR!@YzDhzo#'d8yS Y6&b. JeF H0YO1j̸C~T2oѿLLs#"v}ю=ʵ&އQj)5oJ1(S YG>n?q֛vE;n]_ǺxBfU ˄$hN^mzp|,;翖J1\8 999+̒J#&p jJbŽL>4"Mz%@F:6J6c)8V"A~<2`(DTe MI|v4[WS޿Džtz(0D7H;q_qq&qnPz]ȰkYrb^QQzH +DˏBɕ`{W*K+^濠PXG'ؙYHk͑/BܺcoF'BSW7g 9k"nбM:*XΉte|CrߋEQ;.;a.z|e>4&!<(C^ ۀJ&k8YRIZxߊɀ|}6l@m mn+ 9HѣB~$!-I:R [/{ b ;e7]nHݹ}wo4}p#! ֶITOdgE׭Hz&,d,q '&̥?x28 y-5q_!ރ!׃PKo|A1ڲ̐E!nuvola/64x64/devices/pda_blue.pngUT "]]A:PQux UXiXGמ'!  %l " #EDv,`}IB0E ,*VZ#PŪ$H ڪ!f5f}}n `i50zU1>Խc~wܞ$ÏOKILKᥖ,b$ ¯'(P׫eLmfZ˞.U6)5T5rG0 w'`o^6mR=(T!$؉VTP#\d1YG|iqg&Һ /Bb~Lt Yc<+də60.1sSԑB;X4tpS WZ=ZҐ۾9{qnkmB sb ScK˧f1ݵ2aY Laiۦ킂ˌVjh%ignQ+AbQ4p BŖf\tWsMN*E5xl$aⶹ)Қܩjg5ai46'7Ŏ})i*q 0 .=G1ʋo$yI'-\۽_ݖdx;ZsҊyoX{t {75OD,Mw :J3d8Bt],Dy)<|r:nw~^nxV;0ݔ$0r‘;;%+z_& +5bZuI{^&<ܻ4w9ex/7\ޓU9O6μRiͭ9!H늲P!Q[? `V<*F q6#;m ˸Fi~wI,,^\IMX-Jp3}QHC%CN.[N0`-AfPnc'Ȃ `$$V(rd-m|CA d{ '%rQSm=*Ȁ(I" -=voX:k@%I:h! $8ܖ=Eu$e jy{%}1VO_%>6a({o`ܿ ՗PpQ БDs#gЫQuCvx>e3=R0d/-cOEWK)ֈ[?ʙ.{*eKCvdva=pðwe"G]hM" 0\ct/WO@$huNp8( @lِz/tO%EƯV&/`G mS(z(.zx#N.Dmy?%B[+ʫÐYVHj4HbSgSd8*E49@z,0 ?.Yh?K]MD~V 2OAiJW<.rD3fFN?KzV?@9rͤ 2h]OZ@)G&Dd &Z;|O n3n$%Mz9VO) LR3c6DT<8&pKn!@j"!L}"PՖaڗ Jy$!-Fۮ-=^za 6ǧt_׉-)$2%\0^0ŅX%jҷ|b 2"@Ol2FN|jZ8 ,mN),,ɔ, CW|F4B~6 ޅ)El6fgeZifm7fv;PH2|[Cj!.QF~]fqdVx\K~8CmOJdO98QDЃvqगYs0oBɆLn\<Tyix i6bg涷dJdۘo47fL9:Q:qOR)Q'9 XߏehEfĽG?')%bcӷ OU,JYYP-li5n^!=\h?]~6*q?8DiP_kůcRs:0(" "}7ǞeRJ+(uU|iU9ܺS/=:o3DXgo ub-11}+Օ8DW!93,l9f.G!Vxv>,8/TYI4KJ4Qd̺H2Yrnd+X51<{T sOf^Ȓ7ئgFi.{xA0lf [E?Kͨ\ " յڭaADYczt7O#k|R h#iwQ`j\4"'RI8Wt=mE$X*_k1l[&S09+W~Q"nV^I | mL/Opymsů&EI 3R3n#9ǔ&l-" L\,4v=QS[NѩQ)MM| PUL P]t_Lт&Wn-R5Fe2t7V_$,R4`-W?OI,eϕH%PK)y>yS^a7TeNrA$Xܴqzƒ70kZ% n#Ɛ2^} f=j/瘂)UAqʖx| ,ܦ ErEqeB3 b0-;ˢЬ)=]1 I(k/{5;KN- *Sҋh vM-HLD)Mae%,:dKFsLÛY^8j]bDmӺXluPhQܴ8g^fi~M=c+'uR; yStDm˄ñ0+W'>%Lj3܌DTѺܹ*T|?4e: Aip |u!>Xfh}z]h%S%91ϣwY{0dGq`' OϠ~՘ ~H2~[@ĒAgjwvWzyN`eX7 :Ksh#˃cK#Lk\x^d#vB- ؃ SҼ9egLjg»m+=srt8QyLwj!а}uQZ/M Ązu7_z܇Hּ3/%ǴɅX~?i^ѯ;і,fd iG?o."ve?0BUq>VӚ-ed&r{5<‹[S<RERSË= )Xzk IśU*\uu}߫4wqvna F:Df+_w N#C/\  *L`Ջj#H uPT_2^x;(,%(h fQF-pS%dnh_=ϟ[Ěn @hT}N r!->TEezٽ˂+,hP{Ь,f049JglN(ėx_ WLD<=ee,uc\15@tdVKg:J2DKee<-= ˶(&|-C)h^Ogh|(y pYd0J^čqmCMFFF]6 xe(oSP.ѵ0b{ ] w!Tlq=FY깔[BTU+.Z:<"u:#bgil [Gbym•R;^cwEYeਁ@iXLE$ t4F4 1<\oVTj ӈ;MUcc>̝ R^vnnf$_߄\ $F~G!ݩ1~0.iU/u%m.S~/a`0t=ŔsT2Eq7 vyv\wE`P;?i7 ֨@uLrxǔo7gft5cܯΘAo`}[KkdHL3PXkۄP=;j)yYfcawTSR R MԒ_:Gnm#LI|o?n.hpR5T@7N߁gٞF'uɸTe:f |Z;'hYFLm1Be$#-Dn_L.T{/a ,?YY c eڳ>?ڞ{_J>*A2K[DBCBҊ䳘 ϛ&RA+#@F d #d?~iAqm##wP?klDSSHACtIL:/'H3igh'Sbe^ƭ;?:9L=NݑDHE pK%QW5^Vqԙ)9< 2INi1N tLKO={;6imEulFJ!5Nj{vIh*J{[lDXM Iy!R`=/lAHjC}TN}B" \7fU;B@2 ٣ L-+cԯgUZwjwzKJs˳kNO#޼Q$Q!|A{6hf&,A[d WC.1,4E JJa dWٌinaoأ&=6@Gҽ\^SwPER|Xl5ćBiɦ83~wG XfIِ+1OlhnǢvmU$tC{7|`FbRoJNMM58L)f"\t[lH{y)NvEj˃.V'8p3=*%r7cœm  IKNV!6!k#+858|T3CzJWFB0ي[~*Ia4iffӷQ >?a=}IQ`G*dzARҳXɅDc]pY%d DFX, 2s#z;wD$.xomX{vt0 i%vºR֞2W1_S_>W\%eǴ"Qoɩ֗/i}|nb際L{yP҈~R 7a`+q y!k֌w􌍵3Р1KpVe $y&e_m-SN$7h'EEJFH1ݿ2PYm2U.2DSiG&6t$ѡVk^hQʍʲEE?=}{)%K5i/\{bߩ!yQǓj AʍP\A/( 7Ѧx6C[M,&a[Rr2wݽcr?!tb&+4Nyfiq{C&dٓ|B SfMw*EPM;LXi9~ň69H#o3jI{psfP@ZzPgPz-AP~O$':OO6H{yq\-?<\CD{>u5KZHScW4{ru=)8+Td};dJm ϦX|)KU' |WI٥l_︻i^ *{TObi]cdr7ڽZ/LlַT]ʐnbHM],E}4]s/OBI?

        t3C\D4XΩ&Уg|Jk*/"ceյ-Q !T?~ d ߸r{M0E|l1Ӯ!GqxK WèAه99ڭ h'.٤yyy^XBΏT{&.nϮcWyj=j–ДgGϞ jhA[Բ Nh%.Uhh=6hyI8vGBV&,7 6S}D{a1js9Vk BaכdKķ`eF[JmT=}8F$ !HڮyX_וx~Azx `oo.7xJvʢ5ybۏ?4fdy r?õ7Wp{?$c 33n-%.9M2լ,H."v?S_oe3ko"ː۹Cٰg_^ '̥sx _4DN.[;|}{ %J$//?Nckr,q>B;ocHǷ;-f-eDvNS?#:9 ۩gy PxFZy(ZH4ٯ***QfAK.^'i@٢r 2߃>>I" q؀**_!uc'9 p#>䊬6m*ms8ܦCV,CꔾنT|i =8F.tIQMVP :@.4;VڞGBmo䴕R0]Z31)9JAk4g߃=wՁ%dK:md1%]L3b=z6;U@ }$$Jh1omNg `?/qxDipP}:79R}خ|^å<TKo,KUç3ok+̺;x[y bVY6q5+g (I׀3I{i l߾ҍ857{12$C?8u'#8MDw麙|.LNT#^!{]xx\-̼MNsOĩLlܑróM#52BTKm<HƁu+&0NvsQsuRYL#fUv_#NTm()V%n Sow][/IF/ySnh~;6dWMﮛPnB Ak3uRb҉ PY߯{b,ީV:z2ڲqF4+`? h3%_+RC+V }E<;zŊ 0~*o'Z\&- Y6!B'T>{C(nIW;Y!UĄfY8 UJZ(ɔ(-YIhW4A[tQ)8KSpcP! ZYb' SST^2Bm@&ybYX #Ӫ;d4,(_%!Q#G2_yQԤdt5-WN-Z Ć{煙5) <3")0N.{:̥m5;R92ޝW{xz4:xiowE6V.뭊YM|fV5yJFNFXe2 5 ]Cc}Kf2tn_JΧgXDg~m$ PEe?&&'j9-b/a*j/]MMdYմLٯVC.S e@W  l@'rW`>PA ]4V$MuYxjjtL[n5G<4FfKBek* jjdA_&nΞ1%'/tݧ,/nV6zsc(B3 D_ӹbxtHcN~m!l53?g@)RDAH[ࣅu1/'S[elِ65p~sz A 'i+ʹJ8mvb.ys:0zp7kϔ22b x??Iy[={#iUTG;e˓ꪪLjP[╶Z/-pnp$%a~jlj #CWPSH$XHdĚ9N'<` /Vy`}aDDџ>2KElMӃnv_!'57^&P1&c_0䞭I;a^=_rriy޿B1[_򢵵IMTp7M SXm/n(a-PVq#B|Rwmm?ܼ{:eͼsdv|UO&&mix4ζhAOՏ1Y]M'awDbzbIt:y% BmfVTC&{/CYq:<7are8W gUs. CXAL;Z)YK˷]w"U(@Tr~.Dc\3MaX/w)8jz4/NkzHY6~Xk4+5,e]B)&.H㐎 SI 'D/_Ņx^S-؊Q/n$e7s.^% g7D\vc=31Ӹc$,10c.8 9kl2 'u,d,o:[6LWQd<5#7Pe-OIph5lt=[2/>fQl4D(7QGp'W+0@+euR=Z"у2!-bMž}=iht%U}$g+(:c ZK8nb|l]aP"妬jTkۚc{aKS- Ey"X@*gw3.mjqi=T'#Y Muמ] F VzhBV~0;O™ZP%&?˨7"LMMqZmB ʵPT;=\f uReŽ->ay R\:;(u) 7g#]|4d bA[%gzUv+7$Irlp! yTl|]wI [RH#W##3>@<2w"ZL>PDj-(773Lni8́%|‚5]Ƨ`Xy5 |.uj%rSE2 Q(wN;`n#ky1|Q!d OcP;xY"Ns'f/pܹ%fi:#tG-Îʸq+Y[[YȲtml`^/QaJRC';H?gΕ4<]?s\q/3^rv"[Z͆.UxXp^حrkr?㏈ضׁw)\KG"w| tӱ%;AUG`Zd3g#׋Ev;!k}ĎM>r礧_Oԩ[b]y2ްRgjw<6{0֎`QrSYf7e=O@YS 7rs3 j(xg$dK;ǔ ࣈ%XZK73?>"gU.Jܔﮂ˗SHg*g-4Au8(\:Kt1RcB]04Y()1fZ#^bR#E<%`V_CfgU)Sze+ '.]2̘'-](t{tW{Υe 9Kܽ_-Ӌ-;)'~cӣ2;0&B[TC2lJd܄B1QXx4^WJSs_S"s͏"CH_=*3/.Z*t/GwI8=.vXcrQ\/93Џ[ok}~'y`ʤ`[]L Nay` d!'N޼Fd +:f1aZ۔:P"fhS G]]C:Ǯnmgwfǫh$RØ{˵'ԀO8J ,x`petJj~5fF~,Ҏ~3=oOde;wpӴ@&oyqP`,}fVȉQ^^[[)kd*r+#i7>^;֢kei^04;߼˯ _ԅlQߍuoXN;XݣO@})\CIJ2@"qg!U eUV\9ü8r%RK.xNFO7ƋrO ǗWkU+j^{f1PkM.1nIIK'zwa?LPKf|A1x]E nuvola/64x64/devices/printer.pngUT ]]A:PQux W <9Mj*+UPh)(EnƵJ(<ᱡDÌFxѦW~ುp7T :o'B(@ u^m.8$vVP*Kf:|Hd"M 26*zer+YYiii:=*Z>c9mQMV0P`VC@ח6ٮ١hKmݓil(w~@H͂"pe\f s \Ia{st|h^ʴnLH+Z`}Ef7l3=XGq]u_B\&)\X!s νnW̶?l2%`;Ȇ[/|S.z4#cap̽AҡvrrLqrک0Q?g'~ f,"hΔ1̀t?h} -Q<;09hG ~yR[`hh2pQb}3m/t^% Ox";=&avz. `:XGg[ȿPPP"*6N&c|l%<"̆&)' CxwdT`N_QQ`X7mNڞ8.NP"GPY /k׾,++q | xDYtu涊]Q60%\?K^?OgO.WU)tctSﳢ0w㨾?0AyXk̍^ F^]IxkUC7bvkۋk)bZSrA:! zj 8:AD?jJa:鱃 a&lK"lz=g-<ڵGr •k| N^N7&ݱVhvUyȕ a% ﺸTťm]#vj|Rl)mÄ=N 5u_d;pI4O(mA,~ Ɛq p@O(AQÓ`D6AD) >[װ0zęک~ͼx;KFQ**+Ip8ܾ:Ev!h5 BEIvT1R(?}B5bCs111HNwCaQ`9U7 g$յ=kk]J,d2̾-5I1xe3Qѓ!u@ZMm#YLBI{~ǧ5!qesƦIt' >~ʕ7&Zё'15"pԕ$^$x_vdZ:0f-kڄBck| Nӊ !L=/Xxi.ts"4Í4jQ⢟s GĞ힞YWuSHV&yO kZmRu RFYLG8Gb~9B'] MitL_%:$G m -3'u1NYOh[Ihk ^ s>3מst|QW׿ۏ^*U~.ύJS-~R2GNpj!K&l| y+B- d ߮$dYR7|*'OoFTÐ]+ 3;?vjæQ;hF12j[݋`M<{:Cgک%377sCJDrG#\Ďʇ %؄0E'fYwVxm5pLhLtI7 0| #laƸҸۢƦUHHz;1@8U?|.{ŝ RWߎpwNbiy gзy89ٲ/ g0zjG0,Q~6-kBl"Fw$o$\>wMxdR sbyY_ ɩ+('+٨ȆQ@|>O0$#5ɠg)2{/rzޕ+_zGub"mA$BO?&("&_ԬNYf:~]t kȞ&BUFVf'=pZerkv( omy Oi-!`Л{#! x+υ2=T]5?*#7C]!%-|@s!dO-A(Ҍ⓸m+ ]!UB#W{i {xUQtO/9glC3LdMG3/z8/8=.Kw}=9Ȅl41~'+|d7D3q5Si sAQ`סZX┦-3!ܸ1, ۙ~,Yaɓg?Mؠ90S=}oPs5qlZ Mz\Vm̳9#|\!wINqay]!*pIYIf[sJR7UKP#P_uiJz: pe2yKΨ rLeyKxJj͵!ys3_ˆ}\?$Y8Ҧ{jbd&]9w*AfUzhؠ/μɨ_N+ U4>h[E/[ڽuʎ5 _ۊݶuDY { u.1?KD@dBH=۳l_~&x(Z۰Ux"K탠v' om{Ի׫jiO1*c[nq{ӒߝW/WDߣojMC!_/w@( }=A})X`]+޲{'m(+쓧@ndw#I[c}!*WJԼ^&K%Y?zq8Srv]5'J0jݕɤ0 ϷafIe&s׻ &[TsM8ճ[@.QagԚ&Za@~3SФ'˔4S,s\y'B͞H+#k€z'JH>]̔-!d6GQPhA3_pI.Xo/=yz$c~]mR쑕gdSEBy b&Sd,ERI Gߡ%Փ4O(sS厍}:10@JaE(~/+Bц|<3ҀnKICZ~@lYZYCaC3LI[⒒xM]ӻ%%B͐܋^@޷IP=_z4+jٷqLAT`#k---/Z]!s u[Bb韚\6t[}*qPQzˋOqdP ݿY6; _AD.qm䔕N]}=CT/Aj ^?vCKfeH+` ŭ[qx)nbs*_:!&~Xp^Vj+(ёqgByTC=]2ƭ̍*GbO͘P ›<_ gm|"$PW}h)ODP8T NV}[!uБ|Ǥq1Y|GYݓydwȿѿ/O:oTTDF+*nM -=U@^(//?tz/.0CO{2Źn[Z hZ 7*o8)q!7 t!?LDMu ten|™rY(_A^x" GM';%JgGfM.hji1 /xXQRD8ힱ>X]=> s#O}U#0˜lQR2\.>V:+5QԪN'K~eJ zwJJJI b$#''GETMe5(CUi>z#Me3:\2 n #zkQ(jϠ/%P6HϜlM6~Я4y n>Rܴkd繟\hǠV^~ 4u6˔i-gxv!w :@@Lyoz32yJ}/=:}+Jb*M"[N;]TJ ;އP$6,@qlܾ=PKt91$:_!nuvola/64x64/devices/printer1.pngUT gUA:PQux % XReUAq Ls/1,,3)u,$5˅RȜlSqI%F'+s/4QLp?y}==s0@s>Hy!T׊I@UVI=/q 5,.$32|_83,pWX˓?CȊRInA`s3E\=~…N{n\M_>Z/u9qVRLS5]PEs |fPkI)Y6XXQѾfq&:R6~umM&gbQZ @O{ W-*Vʤקre!Vx@xX֎B;ɖ t޺)11ΙE6nu!QdDi4wȈ'"]g +P_,VxR gPA?@Z,-DW1y|%4pp^* ̾i_PHdÝ0m=$.g8)h;}ilVχp c*/+|t!rw(vWﷂ^J':}\)p؇`D>"7)뙯hjڔ=c^(EfE1I Bt;:W˫S;{3.{qv1$e8 + 1abr2觫Nၯ2d63nt݅윦˛Q(g͉mq?aXo B {3@̀=~~&#-@JP;V9?rpIm0H \r OPΆ7WDU$`nHf/@Ոv(#$Qͺ= Wnڹ ’ņ[5I~~VTu2-  n.]ZYSV)87n)avpRtB^e[ 'NB9Ób+ى![HVXQ B-<>aR8)Qd/螖_Q뾉W"8~ȠK𦌌*ƭQX﯆|Q<88/┏)^/x d Or)eZ:D༦ɋ DQOx;/n mUдղUzȽ `qYڦg%8VStυػ)#" !㚛#W8᭾]IcT.#0f lM(M,!lч}Vdyӹ$yM dsHѭ n#OيKuu<DXM bX%ԥԋzq73{$C aFP?4Ƃx0Y;QnD G\ IF;\{zMY5fx0iەU̟(_t|߹0@&>_+iA^~0=(/lydY>.;[yD}G"ڔqZEټʝ9\.6딌ؖƘ'ZXCDqeQ"t|)ZLFh8`{cgVlQY^'XOWVqϟ j9#`*lL#R!+swHyK3$7 &0"jvr_i&%TOdPo84g%gYV2uhX4뺂 ڷ==ޯX7JFP /}02~ųA<\-U}=)Ԑ\YH@=&XD/9ç=l0㘄ej>zMFg1Y[!'0<2pgz1wh8=Bp=>G./@;Yè`X3Q> ]P<3nmFwu,q0cΑ"YQNbxF-' -we53@`hh x7nE'bnܖkK׆ޱЃo$oI,+巊ƻߟ$κrS;,B0! yhG EG$P `dDОA:?U yαc3bfsK' }/g^;@V!"KuW`a6mթ7k!ՈcqX!?Kccv_sw(jQ{*#=Y,٩1~ 3b/g痠|o/mȟ~ qG?]/3Ӡ\j-46?{[I M :ɇl3`4rwUDkUv6U>D{Mɲ@ЮύɌ rӱl{ xL^SkZvkΡ/8;JTipDVJtZ2t4pq#d:֘ܜ7/{sퟥwG4D&|5 ) -3!W.EGƔ>]!nSy+O#(nV^u/VRV&7XmEK?ԫڳZ WJ9o۲{cMцÈv묬LmlbL׭677&^nUӂ5zj4+SL~19d.6k7։#juI\hvVdT`yu6eBq#v|e'O9$v; 6gę*)xCg;_+owF\s5:!Ōa[kL;~~БRfGM˲Oeu{Ih[*p*gɃ,|5 PF '1$O0m\5u@ '}w\b2l k0nl3?HbnIwc^Ͽ<PKc|A1v) D nuvola/64x64/devices/raid.pngUT  ]]A:PQux EWiXI !4.$ܲ 2DЈ+&QYW/ (rE\\P%zh]\oؔNYGP`q@/:82Ɨ(bw9>髑oN9⯷t3ӓ;J*s.홙,0` HhZ6O%Νkj軁2݉5Q} Kd{GCG)wFZfb@_:\75#5 (k%QP?~v\ |7 L!V%y=)'yz5 cG?>ۭɢ*8/t@KOv-`:'ϡ(mV2H'{b=iiǏLg/lv zf|ˏ }oߎǬ=9I\s D]";i1BNZceK)4D#?6!U@ !e[>dZ^Qx4;QlԟF䚆1J+ouvJJ"'g3 mMhYsܺkJn hkT YȚ9iFTtR4BnSdy6BZ:'wW<3Z U=D2JJF>¦2Yʛ܅߫M"5㡳MdV7_- Xyό^6pY眭y0+5ul#;?r˨Z4Nd_ Ϝ'"epVV:K s:R%Sk 8)kQ%t'G 3Կ,DרZ- RfݘE"}Ϊd!L< 'HhWtkSeReq}h"//ױ-L2XЙoL N$5eŬ.sg_*YfnƣbW4,`?GsrRub/l8:[Z/_+W=$46/YIܷĝ{BبQ%>$򬲙;&}QdPq'Gur6a[+:5 g•Y'3- 8H " ' B9OC\ej*54w}7\5\4Ml%^C<8/|+z׋C;*E}rĀ׬YDsjmmm=(lP]]%NAW]L}a%u 7ҩ U9!x̧"lCC8k"Ϊq>[ "Fnq_T#vA5 7"}Wf>:#vEif>DNR~o/Y&}kFZkgF'Gc} S)(`goR>!!73rZz+tA^-uFB$_ g ֌5V1X0c6Y]њ1$:q|S569ާ6G"e*2 sCiGߎkꦦ'>T{_}o;GŞ\/w}?? aS/)l]o+]Β*;:%dVmJJ[NMlJN* 7HW9Ĭ_/ݣl/Ib (3K@ڏzإgZf?WWJ~Rw+LF4gJEJuX\? " g~XxI2.~|Vx3f@z`_"  B^|M]A TPU怅Z%*5p<9tkX>!FZF)vrKV+1)Qr"6!'̵xG,u?F(yA,F((y8{Q܅ji:ߦOcwk 1Rמּt{ޠF^X"#&aq_QŗF<: 8CJ޽ˎ- }bVLOz&~j끒Zp`K{fRM4/S΍ Y/ZK5\s>Q!)(*Fz4MLUvK0qLAExZS`~.gI|+bd9C=˘%rlooe.J, ~Ļ͘OJȾ6̈rPΙ0f,i*K,&@N {~˸-P3:ęQI87+7K qMX.I=7-vUk_s BO(qݖ`|u Bc6P'ה۷ tzH3b[q6lj3ć[X$GEfD^63":D|@"|bkk)Ŏk -0ߔu7izh6a?@G|KAxΰ DfeX&[ y ;-Avakq6<2?>$ v̆F9@Nvfv mSizce)lJ Iٺc:wUN ۉ0Ve#}d8aS8'Iˆ-GbOnɴl妜0oo [$<.:#<(9b bqVEwPuJF̨k ?qqص5\N:}V;/2|:G"55^|؂|kt0l4>h!noŨQyqx$\; 2}I(=$Dw"|6ҿ80Sp#l>!v(N LF KIɮ Əvb8{sNro'$uL;R/WZxZV"4Q7q̩NGwܘ;w>]T3A> MÌxP,H*vVZ#GY‚ZJypV`}Dž-%bJٴ_ Jj("eVA2xwn߹]T$,X̣b _ٟ쁬ǥ:Iu7**U^tfN\ '\[Tw jݏ22Ȣ^p;3@l4{,oSHK/HT*΍}O?Xы&R74Mh9 R4^ <:=LGUaɱ,E4'A~ Pڌ,|PԻ3o؍YzC : C!oqB9\TRx0{O| P-?|#7kmi!'eI!OOnL68zÉk:{X=}T {rsf\,)KBC!P^aS:!4[-!+ŕ6JGibnKy+tGyU~?U9^$}+i@Cs)fY\X{ߣ=Om'.WH>s/Z[IM,!+|8W1'5 ( P | KH*(R4Lj^@  M?8Ǝ=:REޯj@ZFFVcƺQ2[dgAyz?CgI}&^֙WӃ -I !MPX`+ B+fpJmt)=w1iԹC˜ĐTmQbp"UvͬPYTr,M,t^}J j^b_rˈ)G](rܖ*e>Y v_lOsgX0,3 v|oZCS6g8:a&r׭- c?Bjsm*ݘ-|V@:$9/~@-@+jt -✙~&%i]}׸#꾂]d0ׄ~$l z}X"zYr;\$C{ЪLeukg_]C}F w&vѧg9>ؖ[^k1{9.yLT@CZV]\mX)w,h#"| x8._o|iЪ/_>svT?<|DIƎkGeJoiÀxi^||2o)FD&8~azШ@~1 gzapXCX ({Uc@+iثӐ4`B+ |J6uk/ggqҨ^M8CW7o#l )CSh(&eNuQ ͕V>쿸SxIp3_`dP!6 ڱ=޽E7m=rg|s5xd+ A3W>伿:9=@ð[̾FӼ ;rW+i 3+d{+Ϙfֲy?0GS r.ZUy1~4{'<"ٍ}^0 QԜ3_kV<P׈kc/|`j>rߖ:H8n.٤7twÒF;G3 'Fn43"%gI%${߅i9Ebr4۾|Z>wuHR عG y'{KCsAryzn׃6i'sWg1簀15ޒ͐^l8z3lk9Tb<{0'jQw ą^]lE:n%2V3rJhTxV`]MW/UGD'ѡp<#MP8?ͣ {P9a'Uk ]qfty."pl(g4_m9ggdtdzELcwZЛ]u(yrŮ, _RUbψKL"IKМ8[VgK%_$}º gxx@؜& ҝG{Ǎ_B'\Plb=3%nZb?$tRxB*$NgQ_m1 xxDJD΢ycż5]ZM}. K?&\7(p~Nrv+메aȾtƽ af 4LӫF+@cˍP fߥUij5Vn3Ҏ[/~(]x6_O&ᇏl.LVXIXbD/ y|%GzcrpqcP[ x(0_";zv!XWRvJ~QgUVLT/ʉ;mTT0*K$Nr&Ř>q:-ͮ{Tz/(k65Tr;u,;W-aOPwP]+"ċ U)Đ]4b/׎)' e v(lr %ᆳ`6M0UHZ2s埈YVԢ7&#ꀽ}\6X7A(,F.E,p*HHJ'm>XN@%E&gh^FBL tݤok)Q>iEoV @8fn *lACk~og'F%:\55xL vKI!FF)Fu! D@l/ &`o{+''2pCSÄu7^RSγԦp4#Qn`ܡQB&Fr#,n YD~F57m^\W?a?[i: ;2KhC=̩XkT4oǞu7V4 sjB ~3NްNl3zA+~m4S3|D ?꼩&xZ.V'cD2ƍwߤC˼a,pUʐ#^Q%ʚ7LY> zbNx)o }mh07kY67 mcl~q m-qCZE+DYSvcV+y3>%(F)R QX4_kDlz2Zvצ&lDXѷ94{IqEX {gڷr'ɓ*wyɥfHkqPCݢpj><0iYhDzH?k(ME~~R>If(N._2Ai|o zN6esJʞjuB!'1=@gɚD31qqUHb3G65Lݦe]5EG,,EE7Sf5WisTBKs9;/L^1$\+#nXT?)|UK}\mIrN7C?*ʛz}۔1N"6j 뼶,dԢܨ‰T*岣0PWeoϬ3SgNEiv85"Î/{CBmr*8LQ :v^O96R;4gMzP=EWw# ͳ H*Ś5pǮ9ݻΙFAjV{-TNE?*ͩV [FϞ,`I' m}Ux7$7_ʪtg.>:ϲZpj9|''Jve_n3o*jyԵw("n&XMHq)bM1gm"<5=hzn+;ԛubLIpfsƴ׸{rkM[?8 |?f]5]l_5B]ǂ$ ٨2}RuUMvr/ ES=Zqj%BaB@x"0¾9" t3SCRԮjכZWR[5m .+ydg2=7ck`BEҏJu<ZU2@;1Ӷ%%*t;QvVM޳f$>CTL.3V=KS~d TM:uI}r(ƹ|l叔Gf#nϲPc mJŮg~ڬ=uZ7JQ?FR,}sJtd: 0yBJFbF 9ݬD/M;C4όb5Y~3 V7~;{=r GhQ91otn]"*mJIScxv%Cؠoo4qT>FF.Eᷯ$NՍ~ЅEBgT#|OW|蜂usoPa֧_ϙbd#evT!ɵZ o -ߦ[ 9@g0~Uz iYtA**7^-O^ ˛GY_*B,Eb!!Hm^=$9l mVa4²Cw$y:h#Z3ak5$#/uwQ$|Rqɨ|bq#.aܾ#^#صS/tt@tx`߬gZrÊˠPK]|A1¨*&nuvola/64x64/devices/samba_unmount.pngUT ]]A:PQux Xy<fe6C2RAТ嚱 ̼RӢTnFꦍal{+0-nRcy9{L? ^kU7Cī&.lk 6go7D>r0F6  OJxӍkYBx);f|w9sfm-ccOS;O{W)!S()%ښZL`4†y%Q<>2/"B}g tzobXTLJCLmL@Va&e?Obc xU.=8* pByko]f; xJPE)ZiOaa֖0kw b`VeK.pvq2#=C. /sj1#볅Z% }y0X@hPBK(ࣄJ&Za@XWH 8 K1:|Z -W`Usv[ q.)9sz$}r?Iz2)_AZ;׾p73 B9Jo(7㻩c%Is[wK2aԠ&tB¤Lv()>AuD~ErQ6uP(<?@ShK١fndoHW6Dps(&6h%۪';AA(R >GwT(FSȅHW+2bMN ''s l ]~ 58o+瑮i~ Frrß#smCB&95қuw$.d#f4*~N| O} f)Crݐb9A6+U˪"srqiyM8J]fnX;<88omc͓x޸? @&Q]~$nKECnfqxly9óM<9 m~-5tY )-WDC>AlL!|q}ܔϒgz:EǏ*:VmFUT1n}1;%Ru83SRz${Ao--Z91KRU]tL|B*3Ձę/t`HZ?6S]fx]mbIKQ>BIP[ Ӛ䄆 oP;qƠݻ~ wz](&6\ 855uNŅ~yTG"L,)o*Gٚ98'l̆Ԡpk“s6r\97O D2fR![E.^ zq5>vib]:#V>URr*S<\ 2>0W{[;dj3(m;PtF[?@ _QS^bC{bE4].GW+#%|8N+T"ҰǍhD&wɦ ٵ+SrMQf&5H96*638)yFaDt{-砑4JZ,)D+OpGb8#2wǪ[\ POПr'aX/ RwL8% 1ƪ2"eJCM}|ݗn ZVSATW?/VïԔ.l+V͐ VIUwOmIR}o;"뀷|&&D;+f ubp}NAy@xamDC/ ga ~oQO6% rC3Eן\kbh8S<5hldtHq";@S^bfrezN9l+/%)U?EP</(VQʐ\R~r;|OF GZ^;7h!ydr=~^Lt12x|/Kid<[~}777J^{ef* Q#9h8Nz$*v4}֡{Qlgs~q G3Z#E\J5rmTʣ4tcJx T~'ѐDT]*3r>|Ðs  3r6=x; cdN'ݸJh&T},vm8%&Sru(JQ4ms-!ڪg, kYL~5xP}|Xȋ.D)yt=s bNEv@ݽdIe}sCQ`ZHڮA  X2*KϞ5ql cъŇ_"WcM%z"x g Rot-Y\̙D9ÝB%]@QҮSl5>PeCL)Y(0 XmInfA&}菌(€ǁ:5Xq}2iؾ,{#k?+v]6"vE~h}#/' =N]4Ͻf]Vٿ0lO Ԯd5a97[^Uޡn/POYur[k¥Z350Xa"1j4Bz-X`1TA 7RA@WS/bQtO 3r 䭹rJN?☮Jp-U`=ŀ܇ڟqSdzVNf8XS;°)k5 H2V2  p9.q0%o?@Oŷ5uT1 9u?'5%~ZП?kRO9 V$hyzpk|Wc"7C$Wkbgw=&ݼu툟]~2faCo$Vr>9Ez?US}ݧWNY)={&K1[=W^-̐/)4Ɲ: w1N*A. W>SuT){b{eJWAk),T`%ϽO'8ȵIh~G.[T%@?Hd7VM/N^M˜ّ~Ӝ(.Qw]3E u)(@?|-$]YI ݧ-*cS&=E|4{RS6GvoUr}e6͸,.NYvOMtcOS:RW5Ɓ @0huOq搽[,ckPatzZ$rט3ZE4Z&-4iz]ߝZѶ Zppk]+K:dj=IԐ#@ 8B*ﯧ1Ͳoc %8S}mQĈs8s/r茊ZK-xUS*IԒbRjnj-|=+?*k^W > |>  ? _n~=o· oiiYxï#3iN3VGc<.1Q⦴+"% ]k!F,|.a/2" ΝUOOO9{xxpfZſH: ` ; ސua1Zٍ`asq}~@z<ɽ(5eɳSR'>|X_z\Çok2'H+WK/6c_uL }Ω^c[[=fV)hv^q#lޤMb;dddHZ##QyW?h{fp8+S P圸\%U{иybh8:eX0j9nB(FjM}ue嫨;-mqVQ;ctP=Av E1Bf54#>a5ms4u@R"SVtgM7}9uG߄QEH]vcvCYY oƨB'<;&1>1{F6b5Xh-[(VVV~Y&4-V rB婵B~9Gs^=LV~V뇯=;oC\@ƋNj; d{MxmV+[Vj t}}Y[3  >vɈ0eP( ?޾Xlio}m}v[YVH65bU<+ѝR)E᛬J}1p+=/{\8roFizoz!tjpjj=Ƴ?"o~WߏKs*O;93~mCV`\-D-qL,o)grՊ;r!R9>,S" r,25h{ʆm$Ү%]kg*iSvdJޔZZTaLW+po ~56m$)lɆ1V4zfQZSf<&LNݎ_ECiyͿdAOa aSs#ػ5^W܏t'L/NA܈+dw/:5(4mu4!!T,ȱBK-n ӊR9^F]#< LU1:~{ZrAI7 ZS" dy5QsPr:^ۿ}ӷu0h`DžPaVt20[Z߁^Txݎ,y$wy10~J22;޹ ^x!GlGG yh /T.G귡s [˫ %ˎb&0q!bZO+#F96G 6%5A(x|kۏػ:'ѹڌ[˫Ue U_ UIwQOqؑ HT^d)ln !NDnZ2ĐؕQܓ^C6/V;ք;I8Sk#B;sR(Lړ?,%˔@A(IX `myOإ3SrmڹU] GdzCAB]ej|˞Eafc+==-b1Z?W6[%ҁMUO IWT7K==xAv<kzpRPK[|A1Dn nuvola/64x64/devices/scanner.pngUT \]A:PQux X 8S?lc6eج7w6bQ.w!WbgR)ERMJMVͥYʛTs99}i5=6 F}2@%S;5H㉶]l~EFSI7x4b]" ߆bm>bV\vvp9I#:Yd-v!o-xS~M)(<3s  sNHё?v0@r:f]Bd6ya[_ż%lO=& brbN!k. C $, Lӂm ~1'Ќ+i[3\aܹU[\'Rbk []}ELcEˤ|\llÓF`T(zbQ2Z! zj[a(3ok^$Y5H5/u-fjV52Z]Pfc4s9Yޓ7cV!Թ0Rog?Fʼy-6B!ż̓m|F's8نr~vrM?XWi(0ϝ0IlH03omI"KiQGx/5p]xƍRWAp|72wݴkJ4iq-S9mDGm`r;gCF3z]SFzv 5U( @55M[:(XO+N3P P4xjPIɆ۶56q ZJ F\9-d tOO?>K[<9gaJI4Ue ϻ;w EZ/_!&⨨X豰Jf6k,X~EG]q!HֶC}{ZCGʡua1$]-wRF z6g7!0ܚy'?%CɦPʞ9 j!!~/V/oj%YXÇwLj\@(f^X8 p>21^Fza'VO6ꦍ 8ՊUk 5aZ= _Қ|Uh!jۧ KC,]/\wrlQtf&fPR 6i9(-cㇱWڃ 00z #4I+~OP~s+Zco(гm(EX q+gLV>-†fp%wn$`e56V!uu%TzcB܇^G!QC[ OwɽDix]s >#8.}1Le,A3379PvzqNh>W4unQ,DeB$ыd-F/m,jw^T1̋ W JERq\I y'GT_'EC&#\Kd D/j]V#HC@%Vg}}29 6D5o4 a!t}8wZ}OTh;BDnUJ9 Q(&6PWa(Oҝ?*g&=U":}Qc1uS #R o C*k _Jll*9"zrҘ?{j Փjܗ)@SϧlMRL>dE4|AO 0"IGFs:Qfk| zsl& 'G##H߿qϟ/V'\;S[suB)kZ Te=KޣŌ@1[kS nd`ìenԝPnT~ZEލ1pMw0TyOn{ܜB&ˈ9( ì׌*tu 2nlrA\qs-_Ž$_qzn0w|ml8 ãxDk2sB kӕH9$?4$X= Y엊2|_ :3PΉ^CSY캲7/h`Bkq<,kCwnn&F>.  RE. xz>sA%aѲ&{o,5iڛg +;6>;=U4/@5r"h& K}W_sC>/7է{l16*mb;/z&"/UϷE뫫7hLx26vBApԅߺ޽M]u)psd (b.4wtn/1"㷱qu]`?ݷ}Ot):p< #m.͛v'ccy;w9L'r *5] 5M[7Hzژ@ c7'Hssdp)WYvA%tRܶ`Xathn^ޭUՍ鸋g(m#rYh!$|V&N xNU!6HܘDK7 c߬ M"J~ap }ځ@f%h%vFuoEm.8 Xv6D2]j*knVZ[ޭl;sA\UUnݺ$ȭkQ'0":nQAܢL5Hc&w,WT*;<<<}sw^TL(r]}|ACܷAs Ǘ^}*_(Y~)=AXdXnc㓆z2BZzxpW:0O>Tku9_~ (Vʪ¬itɩ_ [n /`/J/Are=1>ZU? / kvXo%Ʃ Nt;^;q*8<6{mPKR|A1뾄ynuvola/64x64/devices/tablet.pngUT \]A:PQux my{8mgm؇yCR68Qz0g:j"Pbbb#OLE$p}l#ʊo!de+6=KY҆?ks!1gfq,;fktc)kʉe]e_)L8p )́3l|*m8^zmt'%˿o.IdUx:WaW5_a!grշNksRǗ_{LֲWeiE{sYrio,מs9gjd؟ At"fRшRr 쮴=(4[shmìY(7^ H5e?,Y X_=Z̴_M/Q>fk-[b06 6vD{QIX1=&n0B[GɌ{PؾQ\ţ[$U۫d3zwǒZb~_O3_s}]2O;5lޓwNN \it ; M B\ĵagP0^sgFn.vc6S¬`·j:qdM,37dkuG Rߚm)n*bAd#$sallajw|h?($-I~+P p-D,T33dҢncÄ=߱}) I+"kcay e=_#zk7&B>ND{,0B1uqe?'J-`KL|s]%1#uK"q< Lyq  ˥펮P(w6G0#n^.5y;v#pMSZ} x'[h7XMp'ό)Z%Z.*zD-DͭK&wEܼ p Wb9>9P _4Eށ9+0Y_SYJ)BpG[:::[c~:ȌGsCBkj)d~vMˬ߲wWbpM@W.ЦLIS\|f9>>'<_̚v}kp ]2aNGg[~naT3c.K" WMu̅.H!4 7dlL8bUFݽƢ &o :2$**+#H2Czi^~%O s*}`d>K`a9vLkÎ9~K7Gx?_-o`UJ}kmX .m/`&+腨3cr*;ܪQ(RkG<|pȻcGq #[wobYuѲ0~h7n8v3xy@LA!,UtPV}`˪=wI#2&4]\^h4,t6} ʼnCT6Iͯ%jzCѰSSsdIH[@=2wSP8z9n}0U}v+@<(+"C;});=z۞xʦEA|Yo}F3`[/ڢ`Fa; Fd)ǖ[],੔"+RtuDs!aTw->nEr+v}LJ5W% _DYwAN^77pmHj}5 S}TB!<,ߓ5{<(vü)fJBdl'r7m@?C/d\+̢ib!6?` ^F.z(27_ չwbPr ! nӨ EgG3Hġ ]oK#6e4 ikn 0nchfDwh>D97 %E+ܧ~A –W teE5Q<.l^w 6>|@qHx[Y 䃻} ;NkisD0RWl+[keU:ţH eft u&KzT9sA-)Tl6X?XmKg{$lm",omýI>;rmI'c#zTܯs SsDeQu\j& w{LP#ӛ-㷗5]L>iC[71S%x=W<]S&V8G8& DY@joa?WV\" {VgA@oE`^3}ed}{a!{QK_IڨE3 sv\kD+hvTSc֜Isjk#?7ȿ׾q`\[&_7hhݬ!P~aa4Ro7;$,Z_RjZ,lI`,W rW,)h[YJt8Ouh]欄#~`Ԫl♒9_;0}0^/ o3%ؾAsev;b4 n9H3YLis%4_➘,)*+LPپY f44c6봲,6"Fv`븈^F`XwIXB՜V2I}_UNnKKbcU=A],7W@ӿ/3xLчi>k4^D?0epx?\()#pj3;x-+T/.=HfċT.<~ԧWVufv0äz}*Ha2Zj?9/XtS$,:I%t6;uG;.6ƾ\_$Ʒ]~U$YoLꂸg])gu{aa|U;\pQ}kr_Ï{E*Xn~~YY%裦+ 7qnkd kyS83"X%7U[#?>ns2ޓ6,c]Z>YCZhqw0\#D|sNc.j!D܄z^\ҭm<\m9J8Y)0[B`iDPY°/Q=8<'D.a(>X/W%~91+a翿NT$q=ҿ?[Y9W=^bx~?]i2.hFz!fl &BBeՙO7ogVnAwDps,Z=,SI2.oA]M#p**ʙPHNH\gLy h9#uĠ;Kw8As7dKI7 aO)ǴB3pG=S!zHvO |RLr9~C>R/E*bJdݠR T?ޚMDV)}nH:DԌ 9t8&j%9(g͔Z lXOF>/}"ُ''AH2!סF!&6#&O Tx]כ? n6,x-,NN_iK\qtT7uHخUY S!]NeK[%^OjY}ZgTlԽ(;aUmzݨ]tWK>ΈS7 5.jjJSӁQF&2kμ~W$K&Mx]+dKAVlqgX-'RX; P 9԰U3&+,_%̡єnZ@K<0yj@t$̪CԀo; d|RP9gd+O\RN"=u/(Y%)pg1OQHOw͙cQMPX+m΢y}$fXׄ}%hf.8)TEp!N$t׉Jlv _:Zߕ2/6 f7Jyx{ykk+Y.aG{Xnd-Z6::p؊kr6$k]m|HZ{bz%VHqf;u7EP߿?M#Z'C-hyؙ=ۈ!<@m#[Q* #bb6[[a;tH_ ˓U>MX>gz[-l rbL|DQ<~lހ-+s,t(:?Zmfu۶GZQC+|xIk]7Vqm5g2iSQHѰr#T{cÇ1 n- [)%Atc5"V_&9\we~Gkhz4dl 8ư_*Ao Z<^p$%R$#EM8ްK_fJ䁨]4XìӝMτΊq^B`bdN6UӰ ۜ#_93 -DN繷NSl:$pޜ*5|O}޻KI|rc ,+ze֐UZxFkb?b JKOJ}).mg'^mdF/¤d@ܚ [%_/А|@1޽lɕh4MK_"hSAkzI}G^/=xBVj7Jٶsu"t2++KnC*dz*%&6k@,5S>?Y)~#(wzL=1Qg,bA3?ޙ)nAᘯ}$`)!y‡[{&S_b}@(Uí*s"JLtPm(Y̔OrB 9~^V-\=QI"lum)>,5a?W@mE\Xl'''=&o6}S&h[VmlM4g|G$^gΤ-Q7M NPJ"ȁr<xѲzyI&#C!wѝi?0T,+@9֍\>.*ͅqo/4gx:]lm0RSA ~9eV3vTӰA ~ڮ*zlw=MJ5;"Yſ7u;Vӯ;{1sIF$] Kh"U'0Wv9ԠmlSsĴ(KTLKe.s D&m!HPA3Ej'KMK#%fqV= (W@hUC-Asfb4#~)a\86/37oUt=hgS!IV+>7 NB1P4=55Eݹs},4oߧZL<@92xoH-fg h֌d86/8:9rw'Lu&<8,.yJc)v0yz*xחA41'BF3.@aO#83wx6 L4sooZ޺WQv/]"'>&e믺8hg F:q?IGϬKYCg />^>E[xV 7' ].ZoJߠGQhԠy瘫☃)˛@&q2zuvYQxQWUizEׅK-mwc³h>++ɾ }2\w+GΘ6JE zoa>0I0l+'KٰODB%VWsunuˢýփ~m66:y6A {W LT3t@v^,1 D!㳪,PFT/tQJ_ h٪xPKqA12i*nuvola/64x64/devices/usbpendrive_mount.pngUT b]A:PQux XWYWL54uI,[ui1&qAʲMSIeri$mI%\˭]ojYf" ~{sy>ssB6ؘ`ySVo0 :>l2:=b8gv0 `4yT`3L@&4b vi'Y@ʏ{lS _|#s2^\ė.1c koO\ðN?2R٩L{V8d>;>jgBLD?MɃi>UҤqMj8]39驙8LVU!?)D@IO;є4Rs7#.ܬI3,rs3qt'͐zBB b;x5z^EI|A~N(EވKfA53N,QT-0Mx?Q;!.]gf p+ OAVVږ? )-> Z)z+[;;!o0ˎ@b hO/NwkOU hc .yg]J#/}@F9"N*|ϝM9]/z{!)fϵ\P)!3&~>fŠE;8aao¶ kJ2/0,sJɳ'cRpV[83v?cv iF/ Oc8~ca7)N{ԥAIKPǡ6,$X-a26g|܃6ڛ\V#{m  ,pf83S_Nj`NIɕԉw7fsF%#eq|&6/4v/4czD:*"QYG}lJ(_x~vΟRϚ׵JWcwp$kM/y\7Cd-V}5L~ -uJ19tY:ez}&Je^5gH8aѫ=̈qW*z;PB+ 03m[YS?3MT*,~ѥE%pƨ{1BZdl,$ ~>N6r$߿>dg2ܜԂЋ$EMA/J UBz؟RǏ}[DtIP-ݰ+f,y"G2Ooc+wIO}ƢGAj:p;v_n+(6e z'6g /O:kjr`y)]J32v]>NҀ ˈ5c~{=F(Ot';G=..dA4ϪWҪ-q #{z1AGF/;!rz+"NVLn?Ve)`#c{9U8c:5P4D,pOǬU|y<+z,Ś/2u&;qT {serǦ-O=}g;8N)a}v_ZNa&5b, 4iF{Z7QQ2N&Ø7f`Ʋj'u<罆n[>< i5EUؤ^eÁ m󳰈q\ʐIWX#}#x Rh$FyO:-ެ"owF'!'ִ^l/ I鞱rEyDFYZ"K?ڀo|ƈd'ŏzp=G`UK:@ax8IXBJ"Shp֘jigKcq(.gr#;_wcbQ>9H`'GGwemGyW,B/C0mTu ֭//=[4Lf5d%R#Yd񬗇XqH,KO9E1T:O _yQ V(Dec<=ƥ9 nR.YRS n X&,}z/`dȽ3 0W ?Mo5dqsLQHeoS ,'0^ظs4 m,c 'Du1]Ր>_q}WߜlA23jfWh)X+x{i],a:xpkޜ_x ^7Ix.#fb̑6394[}ss+~0`$U yG^Ix?q+:->Ŧ$u¿䫤v~/uxKlFt)S7ysP=;-&(>dD)}sO]xvX4n~.t5R]]m8Ǿ[*o«T zdk 70؞%뾎( 4vxbR)YlTU>Z%HPGG?|eu2J_Bؓi'pT` `$%;"[Rf^=Vo{:Q\qGԜPLkc_}D1FbTN?]KףRuuHkM揹x !: c=ӽ ?!9ne=|e.* #T+R[] 6/j,Z N= >4Y{ >(}B$3Q/>l[4L"wȑ9+q8D|rul/a(-N\P+^ gkeXL.G*òN۲EҲF+HZbXRnpݳy8sLQOd,"m`݈Fn!XYYja1a;Z ӥYV$=Y5X0Qt /kqiI&ce;[d$cmDQ,Z8 `q 7Ua᧡. x! !?R/荪Lv#}-U$C&Sbܙ~PdAolKi1 {qjX|&t:ܣOl\7*?S>[ D" d輹d뱧!,%Gݳ"xS dTY?% &+ߦA +iVJZ\0,Ķഡ2U.`\Ŀg>k#!1PD)wQfVa/ED`-55>>k34}⋹B,榕,&-PU֟ę::?Ǟu6]~nw'oKkކ({(ڛm⹃@ꓤ6UcRQr-wc.+u& kW!劢Huڬ 9iiSCFHk"{p(E yT)n{.k;<#=iXw67⋦1.*vfҧ&< -+gLhכH5l|y9YyÚ)n־W^*|={<4 =ɷ?d=Iiݻj (.hn씴̶X0]oL뢴fAVk;K/zq8G}7x뻣6m6`7聫#o*t^Z{Š8pOi'~|ykg4(Ez+ICIO|uRPb0{1"L6KC!A̱*~즛 x лKZd<=j|%ɰ~3'f&,hi'o]w#;9Magg6$00S܉yKIB} o\{쩕8/^l#bM?'hh:LFVcKvI;A3p &MfPc123 FaFYy3yT+7w/gŋg:s_OO5]*!pjFAp'gZd^b(=8DaW$ۊ_!;z~q;υ3^K<1 'Y|XdUSч-벮04ӛ`>3U瓫__u3%pw]x*kjnT @ xb/ހxv3*4LkRj?kЋXoᯫoJn La| 8#u%]:Wo6C$sh- qν>tt.?k'2(DM$,\hTl4J8=.n D;)+ok*d!R ih/) [a5p& bR CphRY [9XŁ|` 'p2b)$)cOs9%=%=-nK9.>6ť͘w1PdR :/Ugv#F;=zx ޡCeeʘ囍`1 FXsE[V|N=S2u"8B#1̳=ìmYw.*Fz//AyN]CcaI*!"dnI(t$bbqe3Eu$x:ɓԿpdh3B$责i\X2tٹ@P1-8 d:UtCOQL/{J!`sWQDM@aѱ>/Q:: HJ*adlXؘ022Gޝ 5)Veɵ7Y(S!㧛f? []M[v.i!TKIgh@HuoyyyymUY>d2 A8cKQYKN(GNpkwiASX/jNK(3k +7׊UP`&Tll t4 `%&y`qp="8j aij48$^H x۪okg֭^z7n43 0'5] )crFx 45g[eV"-Ko[0%/}}Ed T#? FAEȳ<>tvFL#KtyS]1oo2Nٓ4giMg.\i97pƜL\_ i?Y(@PDe,xnf@4WdKO2ƛ`q2e1ĝ˴[%-95_x,#HCs8xiA%2<`M>24 Sζv{Va̎}fWS֚Ey|X 7F8: X˜ni%:>AkL(KS MşmEH\vWb471)" 2P yOxuQ o ¨̳;33]ΓXz3}6~TA[ <ϕl܊3Xq3TFZZ1)t\L Ii}ُ=:_k|.h1nJ+wd^,Œ %EgrxZ#a.SlL԰% v PUvn P<x@ ƘfJ3 Za*S{ &4Fw9 eCQwp'FO}>2137$:yZ%/fwv3M*K7*}>dq0tblа$ro&)dJ¦dMĪR- sk X%ƋEgU˲ CBy 9p%>Uc/I",תC%yaT0_Q ߨ^MʭrOJh'~emGoy#)tP\$0 t뱂V%)Rsӧ*<ܜƶLr+p0fl[-"-;m\]֕?i^iA^-' ]Mbdtp1`$3/=[_*+6,lj:Wl9']aPo4eTh&/qFXBo iObb4< Ljzcfadߊ+ o(a*Pݪž^Li:}*#g#~u0fJwm= W0=a=oQ˒%#j:k?Ӓbޟ;/7ѫ_M\0R=J=v~IDgx aȱ24Zkx,o/]It%U`)_6i+Fw ^%("Bмp^HKĔ)U:C Iɺ.Lp{v/<XA?ܜ͓Kf!C5i{B8D}/v~Z[(T+?2tjf|R9.8ה꾇jJ  ͽU"Z`~,{&Ʒp{&2Xlim6MgF:ѷT}\If> UZ/|e|.xiVNX|Fm.GqV!jVVmI#tq'񩏾r09X38qI?,k/HK5wtd' vm1u}Ji'|PKYh`୨䠃(߂)zڼ1 ekۊWD-s>zM.w"DPnok,,][ c/_}ëA .dCY=+XY;yKl|esoV*kUi1^[wsdggLր cMBJ(h*jWvvd ^qdf<9h[v2Rȍk?O^s=\exYrme!a)k$ 3TꝑFhv`'Kl$b"{lSq.7!Z194涒&DCs*:qiE("Q5x96Jpdd- pjwP:Ä?Z|N4ir{~) ~ؗlɤ9XC4`K EQs~$Rc|+KCyd7ō* &C@,_%9'd!.N/^6Q4_=)u6}sU{ke~ɓC>PX5g-xkxu#۾Y 8S=oηù[(bFVR %9FCo &|*SҐ72v#lөhH; >lڝrۛP>}̪7¶_ZCt( :y^`-FVύ?@ GxG8CLϯlL,%"`GWWSL=R'0V,Mh] n"܆,V@Ӥ]8oGKbՖ4aJg7K|8jMm~kaYcP7d:3f[WJ>5YԝF[& ͝Λ{l[m<ʾ9N`}'?Ϫ6=SxR)WZtvɲ. 7 /,YG>}c*˫+c6fq-PeZd fb2kJYK] er\\ٺwWX7l'e@ZyC;tPK|A1bI~"nuvola/64x64/devices/zip_mount.pngUT ]]A9PQux -W 4T`ff#J #TJ*3^uKԽ9czh^'zps.ޒ0RTx̜[|??X_ , WvEߣvqq;\Mq1h}]Ѽ09ڟ9+BUxc` [Qbdƽt$ QgBZp&H̙ɸj39#šrs)<3oZ5/Q3@&~@*. ^Fw[*:^|)<%hz) \>?SP飨4C.khhc\cY0V%}tuc鎶^tph[s7'd.;{'wab !t&W4 =jGqb%n 9fՉ}خ9+غ{!>8ڊ!]e,/[ `6B4+,1$ R'V%v> D* e.asò|,Xr\Yac+$NЂk" .$L8gP Wy{H#dl;P ۔cvwϒ:~+!?n?IocKד6kwS6twV!͐6ɰ[hpwO5 ρQ4J[A,rҹ٘f='/1O[#G4vpxd զOX:ٱN?yCb{`ƒ[Waj.V.dS}JWAa4A"Nho֦<1nX+5* Sh f ṙ';sU54_ aD/Lv`Cd"^Gķ$Iy7ęiR'Oe#qV CON?`,YV.K8dl^iT [XbmsSY?GeVvwޘ,]G.R|1onĝ[ӵv~FbI; -_t&$DIpV g| -aQ ^Li HuR\ޅ:' )zgvVry'K'vγxJD]Xϣ;T|=g3@䖎]p5s 48-aA`Ftэ,0r@rUw/vDEMbyEi\,7cdScٮY+\ ɭ:ʃ/\rbimWYps܏5u47k\|@KHN!IՄ2z)uf9%(͹7=8X.:~ {…ͲFR6-+$|,yeBsRb|+w&y, Cu΄o1V8ᨛ^tՓovr" U~h> \C=6zǢ:n9ܠvHdMd]0->ci 6p WEk| Jl1N.xo5Q=qQ)PxH1 g1 s`o9 5pDeg6td[l{)K?iQ]wyS{R(7}b,ī_SL;P*?XJףrY[ ~hp>aރMqV]h.ЏlFZjg'T$_!*ƃ?hf<_8'tٖO\q|kݼA͘}Haε)݂Ga7IՊцOCNbzҋ ;áCqӶh#E&/>dWGVGí6Ο,hP6[e :`r3iw&$}޴iGj8 }~T,t OG>ėH$W_6W-W5oM5^k N=FOَ`Ly8jjjw򞞞^]3= S4u'H???rښ kN&.ĈD/~ a<-.`EE%{>ӧEb1|\x|?{|;B^9*O-oЯԢg@7`1L .~;Ds3Jܹݢc̎jobE`X1d27Ƌ6'd5sN<x: vsP)x3%d0N&`ng2~2Q#E^an!4n@MN@LTɥXLJ_  %ѭG8]W5òtFS-R//i7۹ywxT0:UpFu[6,ɓu5k\ּyv2ODYFRS6֨L vUPrb.̎3K9COwpZ$xItC*cvzY譱>SlY-|W`9g8DƔ`f13@]ІVrM嘞@mk~:ѥdG.\X* pf$=^ė`U8u { ̢FD駀e '6̶[>b%GG$t9YPՐNt'*وB/If-vzp/ω&X梊/:4jcEIײN^ f~<AXQgF:EŻb)ʭ+]# q;-%Ra3┫{6j.+&9ӛ{>Dcf_5+N?f?.o*dKuaA>zw4@jo͈DF[qr֣TJe.aÖr4oZ_UaiEϏnc?9{N5>{5̤Cj, MPScڟi +LgwZFȟՄP^>`/~LVPA3!?*+V7'o@{>4DxC<>TZLcAǘ} {g#Y{c͏W@rB(1sr]XtT*cxN@ ~ѻ ſNFtBˏ-I@_YWt NwTr e+Y1ݚ3Obڅbcc-$w^^3:X2NoۋH.X6(T/Y?Kd8MfOjuD*CkVxgpp"$i|1=:9;pO-=黄cйO'Zp 00(=i? k.k(sQ7qC\7l}*;FwDQ"]N <*GɐN\J`ѝ @QO̪%t^74ԅH 1Do@w[M.?ڑi[B$pqqX,tepgG$vCh)=X)LL_1D'%@L1}$&?M(z,ՇzQqIr xM2]"o?c5)/ Q(w7p ,H&~F/[h qf-";Mm$f,:/ܩ/3㏱Lfݽ;N%$E@q 4lԃ[[ihڮX!l{ #s1*/ujTMyR.'-vm,Ŗ&nR(2 NDo}>d$<Jtc~RD~蝼_uHjܹ2OS |xb=dv&mf䛞Cª#G=w\(N:ocǬіF}k\1ZSd -PvͥxBT^W4#xQH9+G"[YSu T:fo Zy`3Yݣ+Š DV\Ö7Mko,,\E36ﲕy~wK6vQz7+<`IYiLM #ݳ >CLdۜ4#h ֫(w;ӆq>B\X.W((WGsrVx#S_fYJѣFZ16O#@2lvNsڒ b!"3x\Ѩ}Y ܇SƌjQ,0wxi~ȧ9P/Qǵ38V)a~sƭV>k?dѬ?gFr+ PȻ" sX2O{)x cwavgD&h!GZq" pYxOƢT%,Q.HK7e 1W'Oڔ8.4:qvWZ^E7ʚ= (r/?MV#.yuA/kMwKhzzõrZ\x1׾ZLiD\ʹwSq]͓"rt"֚Ϟ6-zo1;^Q1RR\+SBH-A%m1{Lgle[|z'_仧ޫ M3y7,g&Mtl`_PK sL>nuvola/64x64/filesystems/UT  VMFSux PKt91wX[#nuvola/64x64/filesystems/camera.pngUT gUA8PQux }XiTSɶ$bDPAAHFI+ фTd `*JЭ *JQW$J  TP@YƄܰ~ZVUjW߷}.Ɉag-T"^ܗIT6hӎtt硨I#;PX$}Ӂ) Ez@޼i?}RhX gdg,#>i^0e &w2Bd2cMMMqx}l6;DEE%ʩJ̓?5#e,,# |<%VxI Fm_d:F:=dyy2/Pow+J. Tݵ|:,a-mA#!Z"+벫`|K!X*dA$B)$ 9z|姗8P=gQ%# {"l8; LOCjF6ޣGP(l=e{`~n@ tf۷pjnWƒ0D7ņa&ڽɜZ;0#hj;tڼQwuI=@;kw(:D81 w.J؁W@V׮vb+.w&E4V^V":Z(]^xF1C~v8ebBёqkɄ@ȡEr 8= }qan?yEG&lG,\"KC".l}JW5BC!]OSehQ/l'Fw?@SoXR)$x#cĄnu%J${; ŋJ}6\`>O?Ò*(CЎ ulh|a,G&?TVkءa|OZ Q5t\QM.v UI/^u uQ?DQ1z |2ZM{yv.4҈kY\rFM1O&;z&sv/eU5Ż|I?1qWe~;܇(,pYT^`ߋS qMyaǎ*8C mI44L%_/ٕ4xFV൵7d,7$Bb*SI!u~@Q4KHCJaoƕv"|u$Gfe$U \p7;A/yaB^3LǑxlQc (n?WG5ǠIW.ŮZ@4'.h0ka$(jvEVōbl3]h.l&;bY3E>JB*u Hy-T.X`K3Z̥#(WC@.M"$(_H?21[6x\|w!q+R}FSIp!S%䏸4h3͒? ps97'h熮d: c:Ty;$BX^nfYo\oaڮvB<KKHev=}|"sM#Mi\ܵq_L8O/=9{͍>C<\dkͯb%0= FZ)]][FHi0EDyb"GS08fcx2+c4v uݧ2]eJ| Rb Ys1`l+!M9} 2*Jh%0aټadrak'J_-Z{quFĜb`+~o L"^#_K%2& Kva} *՜uJ /iƉJd-(-_-k {`IeIzG"6ҷ^5CHGg m` H.g2{K KdH<R}GU z(/tR*cl߳gi%Ŀ蹂t@w~ yo]$[) 4Qr;nGϾ"?F~n)=/z̋kTT\'6@ׯbrzpr.cBHA;/ 3.mKԭa@E**PUq&fg",>&s)W3n̒]9cic[XatYK m7IUJI |\x_3jQ0^CZo]RP)"nD;=&W Y#`zzKEwY;@ײ%_ZYkLHH=tA6I"ƪu>{UYCi93hQb M -yX'^/&q߫iˊxgjaP$Xk!cט۹y끞#ӗ/ 60sA.:Sjv[dKѯrCgNΝZ3y÷ "t}|'1q-|9n^Q}mwW6PpK^")~޾z^PKi=1m洆Z'nuvola/64x64/filesystems/chardevice.pngUT ZA9PQux %x TMTe%j hfuͭ,\@Lmʅu[-hKR_5[\𺕕sf93]}9I] n޴W;uF;;|K;B99r+xd6#p{s]b㣊wjl֪Fn ?|8x`pБNj!>`A;&u"Ifuywơy=G yuF97+;xQ_w|,@pn޼raؒEMWJS`'ߖ ܶkᎥ^@P'!A+X] 檪*uc̄%qQdҚ.l!>߰Aҡ]mLK"hBf%Ih 6vkbGKB+%bS^b_ӒL=չHXrJĶD>wvR! ج\qI:GufB&e|Jy6@|c(G_1"2H֔  !QMuM.=񡦶.H-4Nue6hiOGt"Qs=M,!7mI""q;o [$-t_鑆CBC3>Agk54Fl@ZWd:GTff>)}w!߅"2 g@苗I"t> Ah[<䯅މQ臎`nqyIŏH{ZoPг%]+זC3BVZl6g_ 2Bia-- :yuMdWy$2Ӳ5Yp[y;KoJlY.Ӆw7fj{S0 m57CD/]8hGZ:>߲PފzeՂD_ + ' 3fl; -D.¯fi3El8SNK#%WRf.*:BBpr4I>{3鋃S~^VfkM ][QoYƵ@ۻw{icOjW2}yЀ([fO?cZw_1DbIb "ԑD aX?rp!l̏IUe~qrp䶋|{wifg~D'%w1|ͯ__yEcf(?<<ߍ_1Zmᓱ-Ռk07蒻sg%+p'\KbA!AqnR~)P#AY(PL6zx^B fJ2ʓ2hQK;yj5zZ qv"o?RNb&?|.!i`uJ~~9c]59 UC[+Onj׿-K^]g>\v+z&a_pL=g ,+$fU/; zSzw}6uc#˜|A v۽WR)ԦOҖBPQvt$h`x?IXRK煔 G{?y(u:_}X~Bp~/U/)J}~rf)!5Yw9!W Zk(`iGk ( Am\nRl)fI?R跋LGcdFBWפz?_Kzsg*Sq uk9ii%=}==( $1}- nwS_D0d Pp^gXl&0C+]V0Ȇ6Kl/a3~j?l-+&fMkC{t*i'z|p:IۧXvB:z1 2| GWz{ MnAaa ȒzQk|NA$<Ŋ>ƙG\.l{zfBWh=Od0B9+!=uG0*܂ ξ}:\DI.LtkFnś~''pJeU: #3NZrm]z___ _ ^PnJoߚ5VEF"iB5(5:_]l-!:D[Mgq -,x73jRosI@oAV&#-dAk%t vFv%B%IVۙCz\;2FÁ"wIrQmo}AoC*4cs z0wfܣ"ES5ʣ1C&OO.(U7vz/S7a1nDM-9Vמm7f߷|zXk,xǘ@2H1){KE ~@i֭cJeNvP*Ha+ym".ݰA$!ےg )}Z}zsy,N, i`uUIE+"Ck4D8E"2ܫȟp!+UQ/AGOm}}? LJ]#6~; )J\}ʊ^ٺ!7fjzp<5aKY"Bl}ea%'j~Ϙ|7)S. Dm-%bCO)J;Cgҏy^24*LtX~[⦏879ou! W"I]5hvJw%#w3sڽ@lY4 }%g֚g~vBb4&&"QL:}=C6m/PKi=1C$nuvola/64x64/filesystems/desktop.pngUT ZA9PQux Y 8T>3!%3I2P̔hRI0cdIedSG ъ+mO7JE7Ȗ0e3fsy}.OEc}:Q':QiHľY$j2ſPCaU*[֗' ~gل{Fi%uJ~;Hvj4{4ov̐vDi!>:+Y~v&X]z_ҒfU,$g%PɕJagґODܠg63yZ)E%" u\>-SAٗ1jbÿ}Yq޺=8K20 = ƫ*YaW6IP( $}<F.rLVT *zR'OC.N{\MfPSfN~( M؆F`7|ŕdEtfƛB`h(&*H pKE1;4g|3Y$,~,}{:_$ʒv)q7 ..S-߾z[L=`df1#ۿ'VpjvX'Rȅ̒M<) Li^JE VWE+ޔA˷;2$/0Tɗ0XH dctBiNa%YY48&zVل6M1L)B&l*]'JU٢A3Fk+:w6o2Dom6'ݰu92AyE_y^P+}JtRedHX.J1wwhO 1~l*;qNZӢU'ڤ$ۆ/|y;/QK")p{gfkQԪ֜_S$T .|uC= 1bPeEj'{!.VΗ<ԫE8w-0/NSU"&"iL>;">\*T7}%8u)ٰ62eV1 S*xl +.–NᲸޑDYCh9MExX/zI9ȫ/{9\n߬@o ´@Ia+ݧOW\E84=n j,B,I~Z$yU qyFJϒZ~ a)JhL잏jt+y}nYbdiG۷A.vAD/[ D65\ 㚝߿o_)YziZuw6C[/f/G?f8Ӧcl|@򓩏NrSQݟrOI0_,ؘ3n ͮ2l> gmݸ2sǎKuod1O i S׊tZZh>K%cx (w{) i͕j O2 >֠+FLW9#E9c?o *< [ ~,it)A!+pZ|LEN/uign=+f!sWDĔejjCj0 ide[6-7uugqVu,N/jbߒ`@dB=خ+H%8HTk@wB,sF @q~AYRDZӹ4U< hQZeڥ:T,@rHXQ%T:ÿ̐8U]=rT Wf2a{ NQ2 sNn%5@$XSdQYwndkw/|,&+}młO`c~bƊ)I0:B J`rs#7Q~ʁ = s _@Fn޶RFv\[N gFL0ܧ$7IMsTU'P>S>ug`e*s }<>]ZU`*+Y 2 }nd0rpiF(v.$vklU'?zAK3>Zvq %_n^;ekf{)Pz9J8}-+ *4ψB.M ^МB(E ߪz'i|!j^xBgH%?T GqW>ZkKlm= ̍Kr2Z gH' CV-ME'qퟹpZQ*`0> e\ ൗJU7Nxr'0'--4d-lǟl("߃Di`Hs4 kS|c  h^? A׈gELgq}PqnZ_!BNC:m to( !LJ-i뎠(dVzcL0Lmj pVFGF6m$(@~XyѹCt^diiFܨ+\P)k={o]&YPR?.1=k1q(s^b]+7*q펀ݱ~D|)4aw(ZZU)eҋ/nAB(:m >g8)l/MEJm4di;9B7<5Yt@8YDKx4ڲb zA> q|-|7$Bvvu,DĀɰ?${EX;yL(9Ȍ\JAӝc0,3ryv=*}AT .Q74lci,A04yBiPl7wͨ[X@]ҎX_P#d7m r{I: O$%)(PFP'[zPwuZK{IfV-Ӻ~(o)XPG~풆5QlgBC#Y9gw"a yyD$kۆp+:eKIOC ˔k|_Ux/4XܧXF|zݽaXFtt緮{_(=Åc6{kSwrNq}:hdjCx5 B^sK~>FR!C/ΕV@-~чŒ ˗W%nr9cQ~Y dzŘy@I)Ê~F`{u>KςȜwm%P4f3 ufSw ܕ9`ĐZc%; j_5a,e)qkG~E"4Yܡ&{tʽ_>:zPw_t+ti1^~nOE=;FN E]ųCFIR-ǥ> |1,j̹ԺM~li <9)5Xz5]IgșDv}{l0=NH>}ȲA&%^*60E(>p)"(d{O==rxWOC*EXnrl)SZ?M|3`1+ľQOSdn4| >?=s[uqɱo(ha2AEXDI,sR)[q䂛[\Tsڂ"w) U6SUIrKf{UM9BWR $ʉd9"1O3Z<`<@EHz!mXRjY9E6T6HeZ<6ЉgkL.vv'b|ZUܢ3EzʼNYaMv %n.BH8|]fТ?+ (2 {Uy N}hX;|zr&$܍3Mʊ ~i/L/ э 蛀KL6{G Hz)%t8hȅDG_H iS,U1=iAsY$|b_XEqf{Ug# -hdx\4{ioz6QX` C|-d>KǙmh-eVI" |\yY*HqMKi8g:4!t-.9{-38uʉw,+7 +p ~*I\Ԓ=0,ιü4_/o 7X]aiH"?z9\%频 }s)18ER>j띄f2yvWWSRvPEQ(Y8=uzήrӊ6X w?ɌBVLa~hbըhMJش( ,4WǯԄyy,<lLw[zB+i%if,wa$My(rMތjŪS7inQPOJ 6;(ŗDf$6C9R y)*Xuo Y[' (a+]GiΚk2ҫJn~-1/: }~]iKf2"rK%vDM/-%na/ >s c8?+KWOV_}6YqljFl.s 1>wVJ>)8(!h4ʊEW14qG0fdPR =CJQixͅ"AgnzwMy;'l xN?b CKVsyv{%c'/!.Ǔ5/%ָYӭr ބ͔ÿU=4Փ9JC`{q{^~fgAx5ԚCn`}К嘤IW|A+Ɉ 9zXۏnM5ЖKK6oP1s2(/~ΫjZs\9٦7z%.͗>[jn7h92NVŒQ@2ޗdcSc-%eZzR2[AZ.bBr@+o [ǵ?y`@ﴮo.RWR8+Hd.fؑFHJL@_8馩Ȫsiajv 7$MW:>]pV';bha8RScrt̠dp_y:/yw9>>9hfZu_&GҀDdd){b5%dDU4+kχtn nǎhTQ@3˕⤙Bw-=]$+կZm:0\a}bivoDP;0ddڤ9JGH" k[8 |=APKi=1`<!nuvola/64x64/filesystems/exec.pngUT ZA8PQux % TX_6EUZvEd\EHqR)(ˠPgDQ;(D[AGGVܨmrN;IN}Ynjc / Z؋&=icG/pޝkX$ٱ*!v N-2&":eo,-Y(M'RG~ @'0a6g1lB%rdNN :+ D#xPLVB5VpK,>/\Y<+wcÎ+:'urܚIUN)$cbrz XX8%٦ߏK.;1mz5pT12>7D 1/eLȧ,}'_#9|ĊV=#Eű~;#Bdžld wQFPw@f +Ɍ/ۢ7-J(HL* |D+18v H+w Mt wJtrrj44`| m:\E ϲVo2wo==-B8#HK`3Dx no\eqMlCIq-(k_^`D۩Y ٥M44UU5}I9~l:i83Y-ۇBg6A? 4+!V"$~*<,Nt@*f/F_U ~*LxdrҺS,.jzuoiYW h?WH۪ep?t}%擥XVD3.M],z@O ,,J8 覜{ 6? %ↆc2kvק %!" }]u4] tptU*/ftb8TNa"!S"`4/=W!j/uȒsٶ3h46vmҍu Ф.jj,aAϔ]2͎Q->YJkEiHeWYD>1^n!f ydf,@ O(U1i"{W8S4X^ƽ&MMʾ#eLuN=GsGީؙvrz8Nl$F}+'T"CpF݉vB'"$uޥMU&N+o7GkCD bPC;e0%mBKx[p.+N\r+ Ho '$W7ӈr.w0K%Ye~z9\Y7I0bQ@!9Ύ1-fbgۻo^eXL0^ryv풌EcZHLK<c0Seʺ0ǠɤvuԽwͬf*Oa`4tn"gLU@¦x-F!Xz&~}v.#=. Dj|Ҋ2s Ⴜ).Ed8o)(*5k`pcGqcEag_Ltͤ.p;GΖω^dDB}"؝{599wℴ\/-MyqʖYsrEవrKׂ*{FCTB=47\èVUő`g ,F=k\',)5ݸ^(LqSSFe#07LG.isBt0 gy׫zmLC'Vc/ì[?Rqʴ}ZLƩJN,"@3nHST$?F MbYoZE{|on?C9}!8l]6N%Z87=Ps!N gm]#VOe1sK'+욕7o'%>AWDW*7A\&w Y2+i|5̏5"ʙӌ hE퓗D(^:tfշ3@HHOHGɽ$x}6ji~j5bE9J}4}ޯ1d3IPM\,Op ?}mlaL,9lߡ,yIvRɈf]\S2IN,Jܱ0X5!~3 ?\IَN+DA|+ȩ"bNqg ZN]}B\cQߢ{k 1WrJ}hCgD~`$z5:AdHe"`.p/ת Gm||^-];?O8`gBLI_(<_0 (O6 3QY~>s5*榓#ED _mcy7Lzzv,54X⒫|C ,JUyh6~ޟvƭ- ƤqzRKf+E)7RmhXkw}9 <֨໼['ꫡz߄yu3::HeVI0O ,0ta!$y4afReL5)jEBO'/Bɭ' 6Qs^J^DkNm6Y먌+w5I,Q1x 29 F [GԹ7N~әMڰX zn/Mha/ 4ӴN?>sܝ̣Ae[|0hڨ'RGIkkLmtyKQKd˜Ss"ׯ_VFsڱёg0_R3#ZѤ ?5mۉ`񲾶C9v)yꞲYO\E}hqQelB4:~o䰫&Z>`M[I)ou.ʡ\p; Z_ۼg Mi*~V#k%r@`du~[1/w+\+/n5iHzҨދH2ȺeIᘮL ~xn¯[uG;| &K}}()M^M֐A>h $mޢZEK)Ms̺;qJLyL8E̚}`RCF$OE[r*!ȿƞlEfӛ֨˧LndtϱDoߋSq-tuޤ7[a{KR6ѯk J1Rc)zdr\;kT Yc.7@& ̜)bGSM?ѼOg-}|4옫 _G⳯^ g7q깲ꥨ:{7?#76q W|>Ѥ{ 8lv,4PPc{=w1s5w#]g&;} G8kxFLuy8HxkX< PsɕܜF'C,=tϚ̯u-Lu6-'=9"ta 6 q `d"izN.P.-eiX]_t{$G|gp'H'Sf['i6#/>TR U`2MM)6 m8bN`Pގ*c61.lIiovlRtiYP2O~¿hQpàr(r tY4*Jɰùt+ud,'tgI_bK7ؤ{h7^,HsqAC f]&'bKIg鉃5x/2=Lð0>C1 G{B"-y&U;$7 yXy)B!?U*{ڬRRP|_hUADҏ̑NPGƭ;[E{}.`Ww*[mhD3E7rHݟGK6Y»2MmŖWEvF8ڄ).'[>pL=5*Ut;yBPbe|mL2сN{=7u(7 X0d{14%ƖVT5xP`Ή;D+]i/yf7>A q$eaNQr+dp1 1ۇ٭b7Ί3 -zWqr)}5XfADlJ؇a{A9d6G@>Z*Dk2۬l ]+oTŽPďGhv+:vckttDy,cهkO-w6YubMfgs 6Ś(wa{Xo]v]OrKxъ)7SYԸJ Nw~̫@پ˞PVpTߦW:Z\}bqt4L"0ꩀR "=pz(NnT|:XN$]62?d|A~r6ȇҵ[ }]+=Iޤ`B}3kR.]!R(;:?<~ݯ%5N'hóTP@U8OT BCC6z{p v>TcX7>/ڇ?e5mBk~ɴ"`$|!zY#Ϊ'VҸqO]Rt2K؏o-oB- 8vwGt^C{C:_(2XNXWGqwR+Eju‰[6tlizwv&(sf $#}!<>|Ad{7{n0-vh@.O'ªݦ`u> i.gK/!s+zn vJ%yG˿U ]w}xyX*a {?]&`mx)0K 螾{Ur݇AW'OnI&ri)>AUW3fUe hsU__؂p fG}w\6: ;jF?U$ kI ]S$' tqԟgJŨo3vo:%a_vf;YrPd"Y'"cE=pSJ~z彲2M&ӌ2?NҘ∍$~/2]cëe?j~m[jrNQH*Jvst-%7mIjb M%oT)uNZ y {q)#F4]3Ya|yǀڽ^P(gp=_VūieˣbS."ՙ4v-6vy}ZS͎N%АJߊr=U= JCk{!0C9y&<5!=hRH fc_fu3eۢ^ hL?}NbUN]A?fAZb4aE)wȪX)u]sR=<ŔtdAv yRħ9*Ά+ vFϏ kf]:pt-&l!.$5sbn0p rӃ+3 Qj ׬$17b™H`k~-Sgxmbɇe|F Wgr,'υH,OEՖ*FPzAMuU`:b5^vc]募mPE߿{]e ʐe+:!bͷ+S*X.ܪrw-UYXM7E9jDޖU-9&Hf9Mꌀe?hFc򧩼8Wm=1z{$ ͼ |@B 9Yաȸ,+R(؇tub8igR|U V53&j]q r&O5(i!35,tpfB?nXngos4qsH)R3˗/xb5]aѬ_߿;!S[_XS~I`4JoN8ʾo]~C_p݇}X$|݁V́"вM80&4$F|^=G3 i}iu䆞@(`X"0cîPK i=1kG+nuvola/64x64/filesystems/file_important.pngUT ZA9PQux %W{<vlib#6 &6rtqI%)sZm%tT%)N:KNdv{^?/۵0<=G w$d$k :hdI8~281`ŅS<G&繍w\bH<@P"011)LNNW(O~jg7FOljO|݃8F!XB)x| BijjV6gǺH+8B鑖Y ˲I;!@7uӺg1%%%S 78\r]]@_C`Z~I~U XFgOY{[WS---xȯCZPPO3:g (&&eCxyX?#V}Q,i`Y @Q~.Ш@# *Kͫҥ7Fx}ƈfp㑀rw۬-xU 0$Agh-uy`b`ܻn8D"-.KE0.ё᭞uMtt*\`|wB{BlyybK,7 K S}1]GW.␃(׈>mޠ^}[*YoH,dWbFh5  =ti6jѲQA A' P8M`yqn6~{U3-ZVU>T N91JdžX!I1uZUo)p'o%F&@58A1!Mi[)((^[B?kd·T"e\ܩO Ү7 +K >[GIAݐ;Pd@n툏:<np` z\M'rR> x+FfoSWGkW aFCXt/,_V<2 g{fb + 2:IaԆfmcs)OW(_i1j}_7|)=-(z1̊y{wTNx*_n&axzz ?%'ļN~jk 5TdD3 1eʕ>,cnΎF6nx"|| LX\JPv~Jx]+m6iAv V8{LHJ]LH-o 9qv닳{X̮F}oRg#vD1o&=N3 fhX.ÇokCgt$ww%G aҷxk}pjbv≹~M i62s>$,b oi_+~]}|WQ`SJC# Z0A>d߼l־1OkOgd9??8irɅo7ۚHJ2SLp'\cmpvMNH.&kQIq,42ZPuhihøi΁kt4'ǑҶ>뒒eGɀnap\S0hb޽ \}Rjx:2on d~аfM(Stާz: qG0Z&y hʕAFɂMwXHTʕZ0!SPbU6+*C& 8GAu)uV>f7p=ggf~Wpweoǐ9C %ʩ'8Pj3ZBg{_`M (&5zH*JAVaW~cS!vu- iɺx)KT2,6?4.qe/T^ ] B,pT駍ip=\s_߉S6P !(AU~zkf[R'ĸtxWZp#W/_d}|ueH5b)a 8+RڅvVM6q|\ѝ3K#s|>_uH5=do{)3*cG #gè v(@JŏkŨ"IKnS_IWw|},Fߪ?n] aÆ9LYE1d9(<\jZD-<4BW](|Nrs#-[G'R49y _SX NrsWsBBc[cT&ˉtnn>DQ`2o&U9̮I)znqJ{[6!7AU(HV,Y^W!OU o8ZH?((γ$WQv'$_З<9 rhe6D %!o6ۈz8M^rI`Xۮ#wNyEo53YSV.lD%lGU/WynawgAg#EICQLh|[! I*¦ՍI_aHQ a[Vj{LOG~Eʌ`wjTolQ!Q٦mpw2sD~oF© 9 Hޢ5cپjisn#3לR4%&yJO6=*$97Fi}\NAKSG5hUîc2zl}^d )nn1Xnq8b m*fZ#k1\/rL0*nQQT@9kCA@,3T#Cֵ9@^׫,Z F=7N! 7 k\ d;In)f!-jΟQ?81蝝z'0k1,3+fS+n\aqqGCc]:j`un v/t:4kʼN  =l{>}2 T;#QލE;v~: [)gP3fQmQ0&$-)o? )L^Yߙ{jO1+A-gc]`PlBI4.8 F;3n4;-pܖpH˩O;{}WvPKt91륪 (nuvola/64x64/filesystems/file_locked.pngUT gUA9PQux %W{{cg=>qFo:4uș)03\?.ܐ/'e}Bnd\8+,ܟwxr7 UԯUr\%P:& }oFڌ۾j ihX;Sb$}}}fb0pYXZJ9F$QphffR?-."l@$ hnJ3}=6vUOC?c@BzUUU/@=kK_Y>It-\ ߻1wvO5:Dž*#\/BĕF3lXLj|AvvvuttsD |WqHd{#s(%W`9@/|k`F_tVc@l˩W{'Y֚0~huD `^xNs3b+BY. O;3\93k>ͧ>8R,4 | NMQx0fCO8 5hCT H+HH3~v݀|;`-W4ǚQߟh~ 4 븐Er|c)PKaC9cKHPۢ'㺛ZrU B*imq׳cMHNk+Ifjw֦rÆއ߼r>y̬Dpp,&[`r#ȍ@i9ΒiflUG%.]pw}G4&; )ӆcu۽3. 5FrGGn~ohb,IIT'2QkZh?ahnkM?P*9!5p)H"UGb(IK£ڨf*g@,_= t/}?tk`I H?IwOj>^LKj0WDE;Th>Mg-G5XЅ7W |@ 9/f):c{lk~x^3)BȞt[\-#("uk¿ _xO3#Ɋ sYgؖbZ`br;Yf\xgfp{G4N;$ %^(nAE`7|nȺbS_OHUYkoK>Щ@ Iz@|Bn࣊LL~"L통T#Ua/KM JڭU?Lo,ϑc.>L'5ԍ|⻠]^EvI[4Ϯ qT IQC/\ݖIήCkg nnvvaRBN)nyL5eS%-,>FE=~_ϩ~Ze`:m#U佒4+:]hx`UpaH$/bk s-Xc2e 5Áb7Ww^ZX<>g@sS+(/E8NmZPR_׀훪ncKiX(|ZfUN/f=}ů9j&JHi_610Z8E{IStX̺p[ڸQ<֒jTq!~{[iYP.djumG Ϻp=D ȥC>7cq ʨhEvYȅm$Q m=ԦF( k ݊Q[ՑQtE_sQJOl }B|3a}-ccհ1Β5,p=BY(@D v%4&̻qɂC ' ވW1H:8镊~zC'?l S/,`1y,[//$"?+hͫ2˻tU[j"\wQW'\XOd}]&ed Ȳ]hM&YE &U̦nH8=6] LɶEc}6ddWwwy$uumjF\f\L4,5 J)@I3ˢ]|\vDxau\M)$ SN~ԉnot薱ĆAL]Ǣ@ES`16绑wϪ99f3\R,Û3kuw4PKi=1 552+nuvola/64x64/filesystems/file_temporary.pngUT ZA9PQux XTY&"LHTJ4$(* 2nlE R(XWEE`*,.EX%RSsΛ̛wW޽tM]fgj^Hr6y@yF3o񭇣DzF^ã9Q[ؑG^E1`xm;\R1%~ jt `mmP,~BY !MׇmlJ\YUN'F]}_VV1@2 sr.pZZZe= S#]D=37lSS ߜeL ඲=]XX8i1ͻ"(~^PhX= ,,,/^C%w6٬M vˊ+0-xz% Eg|zhzSkx%Ҏi̱|) N40P{(b<1cV$X}\pd~0 Xߵ(5/pkT u䈌GGLvݸ@ڄ3h[ 袮/Zd3< ypހu\~.fؑ/T+𒅮zn|l0SEiGt?J&/66dO^3K,H&2~PfuS{kl^ &_Rzb{C+ɣ$9UHmpOuZM:%A^[k ǡH7 NxS>i]eё0R0;"""%7'}' \j ̈́}-ȍ]2\sBNդv8S ~VsSarG@*}@n$];]\l@/O0^\,QjCNٳBvk?6e" ̑g'N Tc= V-Q|<A5P˴2LL/IصƨUWCc<8_`.`:+$<cQj=-O-סi9FݩI ޫE;Jm;}ZSDYG+rBѝ[nG޼茶u<)F {vWRCS n'˄YeE0D(O ++&b\w{(b0}mt? F1E[D9?:y"&Ou᷃V_=-94- JX~XxI\AcꐸU[t2L`[/ɊON&VQ)G4ct.(OgT5;D^9۪VDFra5TIK;EEVCh1<򶣶mKK䆤1bsvB $ð۳^8 *\ZnެWf q#+D ͕CGE${k\OɗPҮH+d[KYf }\6R^O,ݏP(EQ EU쾴tȢ4XOmӱ$ x%$ [O^׀s0j- ~UK} Xkpf.}~g@H }HuQ8p"7CL}H+;Na?ˡz2v2ck^ҬkZh/Q5wZp޼e2K>rⵈٮHA& !9tw_&W}4uJXXWv;}$ ;J:%ķaѫi;+uYV JPJ Laٗ|K^SBD!9&T7D4jM&M4~vq7\Z_ؚJL2z6!?M ] kaq떂_@g0Ps[T3 |CP.B:3´4dF2WGQrN6p_DMP/O'3MeoPp"@<^`A^"2{lQAΊAMz6=ր3k;8\JD0U甖0vņ![wP>ZvLy+[k^A0(m)8 <F:& ^!#cr5X& +빟teK$T~Ԉ!bA[[mb=#CI!wVr8b$xCOPFy!h\J\fc;6dN y|C`[8_|!{@9qBfE#`|p]U'z|J~ބ: ߀2V`Tkr. {2ߩ9v0l򙞘_ю(Ut:F% ahU1JMMҲct˴]P_)2WݒZ6sY옗 u *Z'$VHXlW]4 _x%KJ+E=<&MmujυiihBC"`1haSI4' Sߜ=LJbNǏiϴN>`j%@#4uKHTvN~1έNRq5u|cr.Y:֛1X_pR_p,ZXZjP1cŝ阔S诵m=# S!kעO?ƅΔ6}x55$ ;cs$HRѸMT޲Xk\"]*HȸTǚ2 +e׊uɉxQ}D kZA5֠3=_ߗR/YJZu̜DgM3 g0{"tr?eڥ&Y]ɳ4dJظa8IIV=t^pDqn=VO\5 ,,ARهOÑr-Bekbgyy#Eޕ' ax%K,QdDyЀ q(3?R'H\7 P \!RTx8!1O7P'S39i-:iqQ##*R̝y _"X, aG.Q ;[s0 ~Rdvwq'(T}jܿx;ߵӍ&Gs ƃjVhMν<=űwV+ 5Jr.lJ}~?ab©>QЖHė#bFSU%" 0Wc"C@p!c^,wVa]xwPfZ72/-3sªAA@}EڸD 3sIyXv/5o6 hrZI?T kۡDt L?OkļfzFPQ![zjMqDwL=8~XrXiLuqO~!KR`hrհJaO2c%3]-~^|/Ts^R&M_Z%v)J3jS[nL 1?==FP'3!x1&W6N2|AU]n EMiVɲ$C‚TFhMuڬ G*G.?S5I B&ffdL؎lz532BNwƷ $jR@I;c6`Ki+Y76jआi[]"P ވ#>>*^jzU7QjbTOJiVT䬵HivMukJ@ _"КBo C< "5'bIs\Vo9t` j{0I ]kst B_.S1X8:* y5SêhٕQq/[:c$fV$JܳRtxlͦOMr LC0btJd& !{1bH¤$XiOV8~?Z"R)ڏY|  LgvZ[[g;?qO/OOրUb3\UgX`"vvJNS8V7K2_J5`t(O#s2Ӻz}{s qWsk1THV௙<^RT樛\Tݬ6aF8j\O2omEW9`MeSEO v_<flK7[zzRX,|zڻBVGkK m\!dKeԢbb(^ֻ)=6$R۶5oklKpt\TWHNM`('~L]5֕ŧt8 T|=,s"X,& AA6UT0W]`Xq>:톗<҂%3b4⣀5k5PK.e=1D7#nuvola/64x64/filesystems/folder.pngUT XZA8PQux wXY' )@ A@-H*Q+X@PQQeB E!v\JAzST@]I&B $y1Ι;Ͼj*z*z@RoE)UNȋ?{B61q ZXLH8iaIg;]s+PQ^(BnQK۽t<<<$ ؘNf5?;.~&_]7q>qY1CtC$.-hbFEP$AZKoү/o )ɶٺoI΢'1#`lk 7|^udY.˞ "={[x8=X|5oj$ސ&3!=L,:MxI䊉=ҪU#K֘)?Z7ѧ$)s_jb,@YuKF6}Eq͛OLн7sP.>#g@c ) * <($SPM #ϗ*s 2=#cˊDbgwBa8XWBo̮`!E*xٙFa)J@8ӧ3;45IO |x04țVė/,N-zCp9YnFmrpu&o:؀ CL )1iҥ?FM|g[llo-&]ZnЃ.BX н>`$%+Iux#xB]l#볁7@WN"Z;;xdħ[\NC`˶⵼ ]ύzs~U%1 zhݍŞ?o@`I8'w̗/ ?g6DaH7[!f ͭ>FǏ'&>µaB#`ڧZTZ3ȡD;M21zJmosZeEԯgۨ!b;0cO"9rQt;,L)) ePG%j^N4:|BQ սtCםfCtS`*nLI9߃e}ľ!0X0]J(a! H3}W;BՍ+a7;xkKN]zlѐWR/8TTo'PbVreߦm*l ʠ26h(xzQ'jۛeBgߴsO^fݞvC՚m/~k@y2N(W6JcEJ'\:=!``|\t4Y,'Ad=GdT_j[sz?6$ _+;(#6zU@nBFakyh׮g0;MqHRR҂# .fpj|!, 3>@fW gRO[ -oliY"LM>)CD8^ZP[A9b6'}#0D0q3RPa.Fcد=dJ r]Ѿ2 Pѷ҉}[S+@MVbqAAeic$.t۞үηvzUa˕YWNh* ^ աi^NF BP,Gˇߖ2u'$J!+K3KU'ENhF8*$[ XVeAö 2*E ƆopSBZT,5tg.DA].NTټy>3tnQZW|qƻY<7qC/F(N=PO|q_,]eҶuK™Dxi " 'O\rìPy!-&ȇWx0N: ؜pd]Sv1 H̙DPhQMIPW1Xrhtq՝PV 6 \%mAtG'R|Tr};3ף'Aۘ"+ $;TtT?lU[& ٕSk%@ C '.MxPg>9gީ0 AL0&nމHH_]ji+'jwۑU0)4+Xd/A|Mc얄H{-N`T "y⨌n|2rh"﹓ʛc-0d<1q-/ݏE߃uS^صaJďe&#Xy2KIf먀R2V` Tl()I@YeUaFZpm h.W tLzDu^cVHϔ EOW81yT>fQ%T)AHh_?z1t}f\'PF(rVb9bqozܙtS2ޕŒ;|Dm2NxROTрxa.8MO/CUrDPԀV3X`Z +=<ØiBy85?T B</8? GZ)%Pv.7y}њm^!c+">N:jlܥ6Q3^ 1!DUGj 0t@s χ(8)lq iU<N婑̎؄PIoZ/TqvU6`xNg:M<z0x\PX⾹ />HSZ'\# RphBqA0W7rSiN=\\HS&m%#QroUsu`;jθ!CO Llq0iR{&$7SFWo֮`xEANAL_A9#R,kԠP*:;ۈ%F;y "{*ڷ ZL9& r724QGM ?k9_7į}~`qh0BJj숺gܒzDYLV) <ƨzR~a%{hؾ{|0>o.SN/i>|UO-,|U#I{B;O]^j\ \ҋX_U6}Rt =#B(ikߘp2+lk(!KX"jAjNJ|KP}$u\]閿]{v]Y.evK?-'ikaT nJ5}u)s4;mƸV֥h[Xf1p,c{r +o},1ȩ 4h'2 (ONYt"UGα"bՏCmb3Tp Q9Nydy}4㽗Tulu0LGƳ!.5L?HQ{ cJU5T{Z_LE$w9^*Hr9l[V`ɃlrGhH,8!f+@8"S %^ ZYryU^ ?(>nއALO|H~GBCLxj+c}2a9RSlݪrӘI< '`)y 6GtU=#ߺ^|th΢ g,]~J?h9qicpd]u?򋔒nN8n⫳s)Vw|Ƨz8|C>Dܹ%U4ju X&ĝe(=dA<ۢUqYf)^O^Ѧ5xMyc-0 BWKF@p%v*1tLɓXY6kmGKlR:}~H,VQcb&mODXK$6/2ʸP 3rpٮ?dZpn=SNy`{"`7eW&m36Qݒ: `ۖ }.+n<$NK˙au7p̔&oy hH@5RPN9DtAρ Հ]H5XW\ {윫6YN;ӻ EztCح38U wfa^cmdԾСЖ~WVug±AF Z;.!uܔ?[n7&W9'ןM9֡?CRI!.C?~x, ԣ>ŝ)^6JVސ+f߻0}m:S3TpgQ/#tD'wGuuE2jڡepV;~xfB."W䑴V\9.mE*p{[ 疨iZzImký{U jx1y ldU-1* J  YȜ}F]ߦ-ԧ1a3\)Wf*y $co(Hkf̽+>.crO"@1vn۷=PKB1D7(nuvola/64x64/filesystems/folder_blue.pngUT ^A8PQux wXY' )@ A@-H*Q+X@PQQeB E!v\JAzST@]I&B $y1Ι;Ͼj*z*z@RoE)UNȋ?{B61q ZXLH8iaIg;]s+PQ^(BnQK۽t<<<$ ؘNf5?;.~&_]7q>qY1CtC$.-hbFEP$AZKoү/o )ɶٺoI΢'1#`lk 7|^udY.˞ "={[x8=X|5oj$ސ&3!=L,:MxI䊉=ҪU#K֘)?Z7ѧ$)s_jb,@YuKF6}Eq͛OLн7sP.>#g@c ) * <($SPM #ϗ*s 2=#cˊDbgwBa8XWBo̮`!E*xٙFa)J@8ӧ3;45IO |x04țVė/,N-zCp9YnFmrpu&o:؀ CL )1iҥ?FM|g[llo-&]ZnЃ.BX н>`$%+Iux#xB]l#볁7@WN"Z;;xdħ[\NC`˶⵼ ]ύzs~U%1 zhݍŞ?o@`I8'w̗/ ?g6DaH7[!f ͭ>FǏ'&>µaB#`ڧZTZ3ȡD;M21zJmosZeEԯgۨ!b;0cO"9rQt;,L)) ePG%j^N4:|BQ սtCםfCtS`*nLI9߃e}ľ!0X0]J(a! H3}W;BՍ+a7;xkKN]zlѐWR/8TTo'PbVreߦm*l ʠ26h(xzQ'jۛeBgߴsO^fݞvC՚m/~k@y2N(W6JcEJ'\:=!``|\t4Y,'Ad=GdT_j[sz?6$ _+;(#6zU@nBFakyh׮g0;MqHRR҂# .fpj|!, 3>@fW gRO[ -oliY"LM>)CD8^ZP[A9b6'}#0D0q3RPa.Fcد=dJ r]Ѿ2 Pѷ҉}[S+@MVbqAAeic$.t۞үηvzUa˕YWNh* ^ աi^NF BP,Gˇߖ2u'$J!+K3KU'ENhF8*$[ XVeAö 2*E ƆopSBZT,5tg.DA].NTټy>3tnQZW|qƻY<7qC/F(N=PO|q_,]eҶuK™Dxi " 'O\rìPy!-&ȇWx0N: ؜pd]Sv1 H̙DPhQMIPW1Xrhtq՝PV 6 \%mAtG'R|Tr};3ף'Aۘ"+ $;TtT?lU[& ٕSk%@ C '.MxPg>9gީ0 AL0&nމHH_]ji+'jwۑU0)4+Xd/A|Mc얄H{-N`T "y⨌n|2rh"﹓ʛc-0d<1q-/ݏE߃uS^صaJďe&#Xy2KIf먀R2V` Tl()I@YeUaFZpm h.W tLzDu^cVHϔ EOW81yT>fQ%T)AHh_?z1t}f\'PF(rVb9bqozܙtS2ޕŒ;|Dm2NxROTрxa.8MO/CUrDPԀV3X`Z +=<ØiBy85?T B</8? GZ)%Pv.7y}њm^!c+">N:jlܥ6Q3^ 1!DUGj 0t@s χ(8)lq iU<N婑̎؄PIoZ/TqvU6`xNg:M<z0x\PX⾹ />HSZ'\# RphBqA0W7rSiN=\\HS&m%#QroUsu`;jθ!CO Llq0iR{&$7SFWo֮`xEANAL_A9#R,kԠP*:;ۈ%F;y "{*ڷ ZL9& r724QGM ?k9_7į}~`qh0BJj숺gܒzDYLV) <ƨzR~a%{hؾ{|0>o.SN/i>|UO-,|U#I{B;O]^j\ \ҋX_U6}Rt =#B(ikߘp2+lk(!KX"jAjNJ|KP}$u\]閿]{v]Y.evK?-'ikaT nJ5}u)s4;mƸV֥h[Xf1p,c{r +o},1ȩ 4h'2 (ONYt"UGα"bՏCmb3Tp Q9Nydy}4㽗Tulu0LGƳ!.5L?HQ{ cJU5T{Z_LE$w9^*Hr9l[V`ɃlrGhH,8!f+@8"S %^ ZYryU^ ?(>nއALO|H~GBCLxj+c}2a9RSlݪrӘI< '`)y 6GtU=#ߺ^|th΢ g,]~J?h9qicpd]u?򋔒nN8n⫳s)Vw|Ƨz8|C>Dܹ%U4ju X&ĝe(=dA<ۢUqYf)^O^Ѧ5xMyc-0 BWKF@p%v*1tLɓXY6kmGKlR:}~H,VQcb&mODXK$6/2ʸP 3rpٮ?dZpn=SNy`{"`7eW&m36Qݒ: `ۖ }.+n<$NK˙au7p̔&oy hH@5RPN9DtAρ Հ]H5XW\ {윫6YN;ӻ EztCح38U wfa^cmdԾСЖ~WVug±AF Z;.!uܔ?[n7&W9'ןM9֡?CRI!.C?~x, ԣ>ŝ)^6JVސ+f߻0}m:S3TpgQ/#tD'wGuuE2jڡepV;~xfB."W䑴V\9.mE*p{[ 疨iZzImký{U jx1y ldU-1* J  YȜ}F]ߦ-ԧ1a3\)Wf*y $co(Hkf̽+>.crO"@1vn۷=PK"B1bP-nuvola/64x64/filesystems/folder_blue_open.pngUT ^A8PQux WG,a" PD$, "*T AVDEP E7BX<UEAEjš@?93s93Ν;4cV=KB{U VPx}-;ĉzvYGL.EXZ풩\viZ/;_ك]Ȥ$|>~ZĤ hb0OqaPG`&\|\֏HCx&E.ڡ8.kZ3|}y.h`huZFi1739P'63|\zRՓۇ3ϓH8 7N\QzñŌ)Whv8W8sn\a "=_<Lt6Lam=;Rv g  _ f7Tu&tܪmcqH]?-ICvZ{*_(~ZfNZV~IHxK&dX :kN+-}$-PtiQWzmWiV,v|)Ќ\veK(7E1^k+8 vuMi*#\OB-l!)?y(#gO خ6֘`  wn,|NN@r%l q E [vSȥ74>J ~l Uïc`%"/455nMDT`ڸLe[ci&[mCP3gRizZ鲝~J'˔eSKYK9A VqjqzةCFu| Q^r0]b|n*ۄ5\-ѽl9"N<P(3%5"5+6z+t. gjA1/ &XWiLYO:;VC+ mӃ܄xUAzO!66a4K0FiR9O ЀRyXg08VA6t܊9tFO: P8QQѨP5`[4d.u%~ŧmJ~V`UĠ9o)>,RiZAݍ:UP!Z>p"럲aV,iq#rV8ΚEvvc }b|Nz<;9Q YEQ`fBNJu(EQL9ޞeegeύcSu 3[1QР}7|[mXG"e Ԟm!Rk3^vaߙ oxPetiZFjÍ;5h&Dr﭅^G1?;/bQd<V@M A$g)(miD}6pNH(+mmZi풞M64vbRyj] [ ju ~U^o"8E;W9oKU ?;n#"; [aE*x(CƵ:E Kl5U}2&(6&Ҭ1͞,a3UQ$E@%V+cJcq#qq#1̉1tߺrcdYߐ)%AAnW͉5)B#j_mb"l1HL0Ylm`i}0,*&69ĤOqaLԆY2̢st<C&.Ce~P'"U&b;뮠Z{ KFwM=&|ڭ [{!=h[*h-b$rsROCUUItdwhNS ߋ*Q~ YSzU4ht1!#ìr;^*sq"-*$f a l< Nq0Q{=w˧"1*gN&YUb-Ch F?ϙ1Nk0nk·Kڌ`xcߩHl,+0 3Y8/.,5B,c@elՈw_ YOTToG$p/J$& ֤l'P^ډ۸tJ kԎjJ``?Mekb#LxbCxݤH Jн"p'47C wF|t_I#7^Kkld+% kʣƗ]-P+d+AbFbdvQp [fTgaz6e-޸[  & a\ o+tA ` 0i9C}}XQYr(}S!KHp+/RR>7顓1¥E,l n0)Z-DRpp*f!ّD%,\hKِo# s"y}UN@.&HA epQ}HlQܔ+!\D6{rc&~&V 5qSx - }; px@hM2LC!j'/FT~D'@g—F37-Z 94]0 KU>`z"jKüQ 8v k3_[Z=;ߪ@, qwy;pqI=d]`*(Pٰڡ^1adZIe pr l-p &NKUӃۡ@WAC0R9J6p7MypHnwB,:p~HEf٤7ET-ixP'j%T%6qZYX$'IUB` 54g4<,|ZIEvt]{F|~Āw˵GK^zpιj;ҧq ^/R4,~u_<.,d1ӵ4HJl_n(wN#&.@ݬt7?H`bd/z˚]bO c M gJWڌ͆b[$&^0D}_Ig2ffܸr T2 Efת0ۀIrDnQwҀpvmcmP䛰Ҙ9&ל"=D~=SCx/>Bdg}V3譒 –+o4v8!e|W * o$08J=׸ 6̛$yt +A3XOgB692;>]!e.4& @f|+Zy֭JPWwOh breJvUD9>{lW9EdӦoX@-=ӀmZ"tG\T ^Nc#+ĝ\KZ8b+  B45y19k08q$}.]kkٓl3M{tOPǞqO (=Q97+ .YKqhvظfƢ̨oR*GJ?$CzڐphF0AWqi7iOh`_h<@?lx\[>@ I\+狚\juA=OO1k4 KwuǾ2xOF:vU U^3gν6 Z]iaRb [( Gbb"(K{=_ߐLm+OLw^{8~@dF7_o]UznQi˒ ľڳw$ ӄ*ŅP突4Oo4AR>b=7mՇd1ۙ[t0kj__Olhu3S*y ijULJmώ͚Uܧ[l:S'%]>ƻ 6'R`@m5`hVzFybc|lE^nnQ(pWUlܸuYD@Y4yP}zLONS^-5,Xo^&Oػ֣=0ݖ83%g7+ݘ:?ްƙ9ũf'_Vh枌\YNl-sN<״]ܐ+Y=#  h ݍBXwلZd%8W5?{0GhJn=Δnon!kB @Jڿ߷1Z O*sB*0 &>K5n/T3g Rz;X2L޽t[TY@w 闃iAi#-'회STF'S{aaK hWy~eds7%&39 ٰ0AsN6/Oggoe,hZuYx<  N{x*tX^NRVcaAl= 0C /Zj5+Szn}H*1!.%#( uwkG309̰yxu0=hZ}ΜcOEy/^v9Isb؜Bh-1@$ġ}.p4qB a``~7tul7a7 p.żb$aAp MLSĢ. H^A9n2CJ;xIKNyA-w.Jv|o+ɷ'c;-GJ1KUvp\NV+K3 JY~mGQ +G :i[n#h:lFU_ob?t]}2Θ vJ:Mr F},:$Y6@GdGU$!XƣٶŨ/QGLP駠(w:[h.hhŒg>s 'm[nFW;2]=ەڤAI1's@Z(%w :CxNS5cN/p6;n;g٪ZfnZ0VnXDK߃M 8YljƦl,ųlL{$8wk'%Ip,bu_7KJ:zs&}8o.H܌awu. i6NRl_Ykţ[J[}w{Ta/^e3UI^GQS2/;ZdbæWtZ#EXeٛ?7s/,{?%Rsn22faz$~- w] Ъj~RKh.3-s<ҎH(2@f~ sA+rPAsj# Ror$zomĤHe3SI 5C#Ӆ&li]Ijw"-s6Ǹ C0C{=t<ޘYMUʶق܊&5azgM. G & +|ܮKgh[*(yA+ZoWwj=(MA9N+w jm LUxr4V^Dl 1ÂCA jɆp`c Au"dC>NW 4W ,Y!Q/ tC>wq};3-jf-ޔ<+Q_QKkZ+0j}|F!mٓ &Ӗ+t@1 %̎l#0փn- CI&nݨ(2([Wfžs"D;,(z YkR}~Jaěh/v8>ʈ/޷9#{̟7{&Зv3%1[QnL@cw38ߜl||'tB&i剽7ϦX{b2:tr;Tj͡nb3JQrm`4 ;AĆ8Y‡iH-x%Q9\@xM#s.Ap}^rƵ껈Njiګ"IT@5pROVW,fw䏼c0 lиXBѝaƬt B Wd%=Au]NoiZ;O\^1 4ee"U&Mڮz4MdÒ(q]Jl 6;#GDAeO.aqF-l?H:L {/ @QuPRwx:[N t[A{ʹ=La- + `(٘j.ﳨԓ}uxH0x ĭjE9a ~)` 2WUW%s,3*=]Vhe$ p ;DR40^[}D_(D ?<@"GB4񁂠G{d2-%޾Yj/veI Nrs WxvA_,GbȻYuUv)Ca4Ώx? ː`Tz<@vMQfz2~jJN-mx|",|.L*5QpVlwk}Nקmsi{犏2Z +噌;fB3V΀)*1\\DBRV0@0n!n  $?ʕ |A5P;!&.&#=Aٍsk%g$AUv*ÌͯhQ6|z֚s6SMJd뉊nȼqB?w[u6^͔|KXB qL|pV|Gx mgG}Hĸ_O4Q53?"]ݛ'ia;!ᇴ;c]-G(5mb:NlQQ}E lwP,ڄvn9UNAjJB % @$]zhת2D5z =v=(?y+\ƷhoW7' #qôdnJTrvw:@YKz eE%5 z=HK0 6=8A5 wG&ƣIcXj{7U.|LVO">te9G1 ?M%#Yyfd=[$Iwl7 o{&-T"]ub]ӳ{dg\4NIF`ImEiEdKC >>a^ 3Rgɭ@Q=1?A\&Sg엍[ROj:/nz0\r?.BO (;pD)BV`QE{4buWupQ۷鼆gu).SXSÆrF1 څF "[[&g#v"O"OEYRp-;LVM 7s/%oEkyBP|nqBҞUXŸ 'l˹! Y{g&;Z=)eiqAnk -n$Hӎ,p\Z[6poWi`2gy?'Sg\_a?b/Ã|FYC1a@w;#8ھIl#l\aݼ;KۚdH802!߭`oK>!EpfyocJC,ؙh:VT\Z3KK$65K (f&`'ֿ*T)"(xH-r.B]o1/v4X 5ںcU'ʹbELqī >n<AOITKuK[PPW.CUZƐSZ, m2u7ThgՓu1*Ϫ̲ƞmz4M:{-PPvX- 7,Wh 83EZ/GXYD]*zw/6t_B^3]`a- lv/5~fl=9]{4n+? '/JS¯WUSy<cB0\1?mpAj XsCl*x-8 3=LeSS "Q.]9bueW='>0'τ~:U1..c~VZ8 1C-ҐQIh 8.F o`# F9זpgAles2wxmNKPK=1W!tI B(nuvola/64x64/filesystems/folder_cyan.pngUT  ZA9PQux Wy<l͕kQoJ+ 9"ImJT I%mB}+r4>?~?ޯu늋~q1%18ڹmI' 0%DHGHPdW<y7"  8{:Bs%(w#G @vD:"pm Pxyڦ&GV5*(6PSSR_/N;?Mx~yڧ:z ^:x@Ya'ÃD<{IU;Q2H0(9RGi|Ikw;i [RRH;Y_~]2qѣ\-#bT L"KնR OɁ'1{ .GFj_r%;Q߯˩Gh׷ wڝa-cLs!@Djlly22uFFcl2gG[UVfW Z{6tKFo& !{{^@xy]@=*C9ژj6AJύ<<<^껸&@k2޾}нgII`|İ60EUh'a/cHR%X|>n6qM99Ň|[[ZxxCKKe[` +pfdXFL9ZW,\@iVb^#0 W&5)/$̭? i,@ {zW@ڇuWyO7hMYٲ x!|\R/'+82=x ySe[^^@e&Οwx'@UJTx&} HR~IJjfbejjj\ǓYOqV"!/JT+W>-g 1N-gJ gU]]]NDʥHeҥ\BdiCnFVt]91lToR|[߇ Y_3ƅdzB8> @^?@P ,o=knZF$><|߾OwJ S[q&a3פg&F 6hJ\+{ >թ-Xh;!Oj/T\k^DwBb7c TSA#?4N);Ip;em `'GʋL*FMKMb&\cGQ1x{aT̽ϿaעSQʡKX4@\kǥ(hpalQOH&R*gzp}aH$АQxn0밊j%pMמq8(:;ZS [#@Ĭ`<ҤEUIM=sCi:V"EJi\mfc_"ɑOl\8} nBry?i\;NY/u)KTLxNYm'ܔ6>:SO|dبg߾ #|c $/__ _zAT'қ-=2(&C^1a7꫹9GrᮎڗOgB̢54>p }3QϼY[98aVAk9|28"7)rd߿6IQ#ؤǛq%O=kn*X_=3[y4v3)$9Cr {

        S"[#JϜJ&]d#) ם걓d.OP qlÈ׽ >z0~K(iɎޖ/W+gN]R:\H*NO׸in f M"ENJkֻ?\UKڀ (?U7[] rT oR־C:ݓ^NQ-zg-3 P m7,?.+rCw}_5қ6͌+,;7$mIi,9y#ݢΙҙwTb?\$aBQ ^H?$CJ+rIZs:W *662-b^;XDQi)'bvvFmRK6f [$'>j< P aYtwW?7EfKӳ\_N*IG{]z&(F A0kT/싽9l$բ##e{;ouLb>%?/"wæDD+M3!?w֗^]=mz=~۟GqdjuNvG KN2v+y`VD -"Lג/`݌+N2SՖo* !0g|"27b8ޞ.6޼^ZܝʠWH1/ޭ*k&< 5l ygӴ*@J!΢L8 {&7FDl?)&ǫwV ~hg,fH:T>T4eF5h\G\Gyxwd6z2*R1Ju.Ok9))c~6Qtl@eڜKk?b+XEo.+[f$%wFT~LrRxzyryl*7b^bd$Hh2~ζ->(ѲMޚBR dYdi񽕬qŤSa\-G3xZfc&xG:OafV063'@}IӂPB1>lDm>LwV H4:}ǔ-@n};;YvUTg&hg+ 7~hP1;7۩)OGm'q̭ nLd<8Gk=^HW |JYcѫ-FC6 sŪ/["$0Xso>V|U>YTǽ 4%Bl RQ ,\Ꚋ]ۦmuc=F%Tձ}KxMҘ9x))(q=-Slkٍ$/9wcj/*%@w,evGF*=a3JT~|JA{nvݭO7۝:bC;qg 髄RlغGI?>9k!fI=~xJpDHqy '{yɚ $RT2o'ak!b;4^Jꩋȸj>& :&ԢfX&I̽tHZs8J"i%MVϱ%&d#4vH {}gGk`2pITde0k45ɜڂ =$ E[#4%g(J, <]N&UAd%v Z_\&/E};R%ϫ HKѷw?- b<ʕBH `RӜ|pz*_ cyaϢ[~l3IP9Tʴm 8>uP}"֙/ lL`yݫر&:5&<6b/b:t5Q)cfw٪;a1b9L7ꯚAuдL"2{oT yBCk65Jc2̤8vx?S8gU T MYWoO%IEy&QT_6Li LAQtEi/xV>`)X'Wdlw k:'dq|S7keLTo\YMe:Rv*եPL.d,It@lVt/vfr}9W?d~-rSvLk 7b3(zgc:D ><)uN*jR MLMXiD;.3=J{Kidp߽On#>o e*H 8`$ı_XMl/ KΛB+>&h#^Rsïuk2-DVRxCGQe~?0gCחL.*r )*͂"q#z%1~M`,M #]#دiaha?~ꖝ;K}!`[1 " =Mܤ jo;05" )Xpfvf~9 's⟄SUG%"AW(=g1;O(a\w"0 `<";G%[uZevR Rx^")LB΍"WzuEI#mufG g5o*-fPkdu;V`9uԆP=etARZ+R;1<3ʳ>8kBsȁ iFGYd\P(B,~3+7h0W/*@H0t#Gq. ߃J̱(TDyaK}1/W:]pU޵buէw*ykgL{s |^v\7hčX*}ow&+ۮS.$Z:œ 0Cg 7$3Zk8oRoeмO|ŞP'.[F{^z5f0tuU9Yq/!(|Z U|d@]l@6s/Vb~殡R?4y!juc4#`4.vL%G֓v FPj4odU =@፳ TӞQDmgR%ރҪn /8gKq.r;H?q7) kpуX9Εo}Coh-rMHI>G5נܟhM'<=.4\&!kVS7cql;4:&~xJ /z yպql@}lЈ򹓺+)-"0ﰞѿ&GtZV NDSHG.& o0=$ܙpܺiYNMX8/'8"3J"{\I޾c)!|.s>%= :+ C.(.>*U@KŹA)@鱬H&Y.֎:.& "R7EXGHhHؒ%Ehς!(E2cOԨr[ٳk,3osssyorsvROEI 2N7PW&wG Ϟp9\@>Bw& 4+$ 86#TZ9нc!`- ;y OӲxX F7se dw`sCl;?+!Lu`#H1>0F%,~ ˗op{@!-\"ꊨ2k/yj 'i}>*ٝBĢ~>__'FpEV/^|ALJ\m4^;˭ח;YG_>>Bؔ'L&@ѩL zNKbaL, g  3gv%T0`'No‡ ћ7w(Mv ]g3}ԠDoӚ'Ԡ2jwudR |% agÜYj0XC|2pll|G+qުa2 Y[5ɛ(ێ?-b/D1»V qPP_DVKHK&Қ.#05bW"Њ!Scf:`颻ms&&'g%u$nݼr25.1N_J1Svy.NJ{sZW꼟55dKDR3tuv#oϣCz&\6d'ob _+'.Q]ZuʜA!6%ue醆Z/y%}IlwJ; GU}Os˕?ޝuE\zuXalK0==o(pΊCk J;+z1-' w>aq}:[p{,GWE5Om2wָ?R>kM[rq⛲CWmЏc*|34E`.``Յ3Ǹ֯vO]n!E }pӡ?VrqɌrwyVA/d6d?}[h5]qVKP.@ `m uzu^l pca]״e~:n /.Ӟ{nק5WW])#{i~,4G^.TLsm}Np1>\>*`%p%&^:[_c{ۖʹ>ޭ.]{F P$yL$6c)tZH|1=y5t1aDٚjf]N]G"m6KBff~fJ7E~nHԘG(5yܰ_BL#;"a@0G5/ [~#p kjLo7-7LbI r7$ˤ 3 6l$ f]bI3~E@ʟ# @_ō9gT&l53Q+ԝJ;f#U$Y!, X(!N #faIlJ/qPB0|8#ԀX+!0Qڨ^2PțL+ԪpN5lSVHqqj#79<6 NCAG"A{h%CӋO/TGC8c5@lN'@N0=-1ֱ\wA)/Xw-ԫKwu4v0愳->ą7$JtLLBjlfiҵr{: pn2J1m4t7/#nsiۥy#nD&gu #b|q05;ÇpkMDU6xub<3@ߌ50y^*uЮ5ONwXdmjު9'1LG.{-^7CX hqHhhOy5};vJ{fpbS3U"DAcF^ORUXr2O<8%UY{/05l8 Xc86|dX Y`Sw 0< b}u n?.) ڍ VaiPX"H4;+Ra|'i1CR@y.vyۮ oǒU꣆Nx Ղz..yߓB4P<S]{(؇zʴu){)F(q 7; eg} "#=OAEc+F?Ev!XDm!3oJbهA~Lv/Pԅl W""v So)',&ʦ %_ZZ&NE)? Ҝ2.?<5%gcr,yn+2&g/V39jn=|9/I1 ~vp9m7xYGª_U*DW镜c7,F~b/]ٰMJL~g\Na=RdRǎ6>yrSP͕s'g8 eckt3d1D0L(kKVuؾ{^Vi冚GSLDt17%>i{:[埌uM,¯Zw>0.]v N?tYDvIC\|I{Syvbboqfы{1F 1pcmL姧O:T67gJ<;~Afo&UǦEyB6P,O*ҶGr7<0\aj a?k;7hIc"ِf^Lj@s&[mN0e?.R;'aUW ; %2*"nCţÀ%PB n#-{B,Be) |)xDR,bLWQ[QGQr ~3;aAxh[gtGz?h}K!+ɯ^D#ڶ;5:r~%6Ntk>M9"aoU l`ѷf >T `/S$tUO>a7.Re0 --H Tqg{rIvbo5B.4 m!Z U[*dk0\f{5= BPW|a) 9m-) q$Q_v dx&kJ%AɃO㿾u+dw LX:/}$q,e3"x.n?"X 7_@h2,p\BFx_Ն̠?:>X;5G>f}jbG(%8bҜK'ZgiDjbhCᒈr9Yy/5Hސ$Fp-,\xW,R #{m| Y ^ڼZ3\5ִoͳDҁ1$#@>CdA, ѼDpVtWP1@Ry "5R]Fpb׵ =^(|pjZIND6B\˶ZƣI*{|'jh9LϞrDΕUz$@F;o,N8ħc$jn/2r,~?/H4>,d$ B7g$y&bCM ܬ ЈOE.b!Phw,Mq`d0p切YfR"ɲ{OLuCX1<1m_wujV:ݶI29>bg{.q T)۲G!G{ VC5GOp 3dk?sKR!&4 R"p4 @z),MM-kH9qeSya>F~du`&1lJ9SPX<4Pu]wL=nOxIo)XD[l_[6uDاvu:!ϛ X8;CfY5z`KdIrbe&?z0p"^ {Zjicx@-Ur }18PK(e=1q@,nuvola/64x64/filesystems/folder_download.pngUT LZA9PQux W TR߽pTP̴DDFK+33 UOmR5ҴQRlz6V(N94<}eTZi ݵ=묻9>}2tj]r6Dwߧo P8C' 8%9q#6ywi qc<ǵ+awk &Y` >A]~WTU%P U#_[9eZg I}*؂>[ЫBᶄB)f,z(yww+54=6-c˳d?[#iT:̠aIH[ 046>4$Xx1 +՝OꭩK&R$$NW=I~jRꮢe!SS:y͙^8:Ztvq1)E=%~|oOꡄ `WT654 W\}o{D1~eS\cPǾ2jhЋ2iR"|ډ4|Kc$+9;ی]Έlꞽ*NH>S|GF2BBúć9FBz'_K8m+Dx0}lݫW_ϰw-NJsp{Q'}]m ٍM[]o!p4kB&7)n'0-b-~jx_.G(x)nxZ;E 6Hb"/foY>x?gke x?5{cr./M>9N9#*TcFt$A˩]T!SFH zAO?`m9aˈ0./9YFFD pu;u-m_O0}ڦIGM'@gg'v#"CUY  GR5%%ՂE{,۩۾1NyS$ߔVc€@&61D6L7WKqys޵6"ndqsv|}rs0viP- *htlg2ՅbD;BJlx 0:Ő )Ǒ|gIir79?{BQʥ pD T"n8~h^4{.A Ikꗇ[ז~q.J)gM=riYH]k+bɼ?=5w=i>ũiJ|O "\W/8,V=xnBp 7>"ez8C|rn zUEktew|*A-$G,6p:呰nNæ#CT3QLh@FEW!MBahLYg78_jCŌX6X)hSؗLDz޹>-eX$'.4}0!(P[g%q08(rΔV ["J8z!T+y Z7oa5RnFN3˱=G *@ jzePʴek N`e8 &KnAhq9T(Fa:hݡfq4v}D+ȩ>yhC'I@pΠhKajEtn  1sԳޯ~YS~9b+sr| MٜH'odW}S} Xу0H& 7kq 2R ]8dݰG2P.2Jo(&r `'%h%K--F<ې05S`]Ar4gR~M#>N*ʣuk nOk@Od'xgJknfz$]H<|)(3o bvdю^0m?͈})Ӟs␑oy{MVèKs uS3]C74A7ұ^Clz1U ^ olć c{TF>#ٕ݁=}bZҢBa’@sTe[]>WD`UGOuqoYw}݆w^:2~MB*A)y[dLm\6 ]0#>jTܝY?dW J:[╀&S=Mxy/R6wV9*CF^s|!8件n8XZW1[i=-e8} ,:ھ" '"w S^J!x똘/7"qq0j)k,3c0.'=E2`+㩇ؐ*k9d/Ih1H[̏!An_gKFsG="2cofTUAS]-!Us=u%ÞmkU wˀ˳W~(I'N#۹OmmtA%` zJc>`EBlI9rEɂႰ@ (͑")]iq39% Gw_pvv:ڳu@=ʊu伴ijl!V] qQ7K|p'FNp-܋6Dp$bU:1vF{=]{C㮏 ZAUu ( w q:m\&68@D#]Eݘ=NPʑ 9x_<cwlzlTـ=6*TkK䛺E +\&VdƺRx?˿uX?ӄ= ;z ^ULy%׺dj1qg]]"ORj5MbRag:o\|@]N I,T " W#ǯԨ WIc`?hS_HbrT1_nx&κO. -RuӦ!ܡ~)ݗ)ȩT= ;C7\%ߧe~dt:b!2Vj!k݆-3G Gx6fe]$m뉫-d0c!Ez ФzZюg1 X"LDF!*TD `%l95P<+u7{&Pc咕9QHM3pi^#4٘:K8! c%}j>թYb@:V&XJd!egyotsMA _Ξ1 69k2+(w䴻Ě059zGPE>֋g+<39;W&C&/d?_bAJm|Zr+u9:@{.A6Z{ 2U;k66x/o#&v!:OºtIQ%Yq]kV"fMA;JB<5\MTv,Z(> ^G/էu8¥;TIż3r鬃(KزXB 2C- Qio1R^>ì(БLgֵÍWix+2ٳ.F'rFfV4+;0K ؔ5oVRZL]Ø,ɽhɫhQt:v; U46|)j^Gp,W, P9-zw5ï-0/Vcكw9"^B.Қ^FE?'$tpj9'w@A%.z`&j O[N|HqDNLjwYYD>_2݄0#|lKaw/#A;/H 8J]/o>:g}Ԗ5o1)BJuF{Q}9DQ҆77Pa#hު%u!&.uXf5 `m%Z{ȩ/ze8H54_܎<)H[9g`y c/9] ?+$~TdԎn${0(h6Ol\y##6m_ ˢJixA1N k6qp&IY ]'!wAIwՃ<yje Ҽ,/F#%籿:u4!$#r+,;d~6Y\6 8j pt! Ҵ1•I0!,{C`*6+4eF`{~H!AB_ g5NsʅQA/-xN88 Bv["}X&Աa~6cX곔 !^(*Ef g-&/*{3P"œpdM!n4rg<fA^NWGU/"O 0,YDR5CI4z& 1#Vg%QJ3?W Ɋ _>Hb5#$T:&9 t'E3;"W5TCTIc̯Pi뼝 tl'~OHMo+L0v *Nf٣#ڪD|&^ MS$ן$pa꓋}쎌NB6<ڤ o'KNŦ`Yʆ3F)b'joXXFyjPZ6qRPO USOo,4|2=νن廔y+uќD?C'hّ~zb dB'8\~? 4Icų&OR{}03 irzgd7GbgWUd~hxk=y%>č[2اme-iH#Ouƕd-Ho ]t, ɤ,w]*v߅!4JUψx6@QWkz1_'O2ޏyx$i07Ei?#ߧHt`Σh[nY\}$0=j\J)P|'F}+q̖v6$ˆ3N[w5px+Hܝlhb>fZ?E&}Q4X O m~ոVLlŒ(q# J%=FeQDѹ0[ %kmƕV2PK%e=1 c,nuvola/64x64/filesystems/folder_favorite.pngUT FZA8PQux Y <ncsQ-)Eʱ9:t%0T?*b rl(:P Er^>|_s?=۴4Vhkr%gJnwlsTcbt6 pyp} r?-XDv8in&4AHU tڶ;j&%%899ݢu í|W'Třh@MȜ@$r̢@A*|Z9`W;!gTĵnLu'>X9t ٞ/<< 4AII|MMZff?ZwLI4ގ@MٸPd`9*"?e$Af p"B8yQ+ p~Up7%3_P~R>;g ܮ.GوM8SSkS7}4*MMM/O8x3TWя*?eēdz6T%yM"H~z@*J/;`bZlH׬U`ډKsWF=B x>ݣ2<ڶy%e'i;CA[<5.)EPZA2rxY!34"]/YlwLIbl {Pd.0"7B2P?]Nv, ?ohg5h_$9mh.`36WJ)0]ɢchD]46RS~_غ NS\4I%/r:c,ʋTߛU7UUe.;FH/qX/f_×՞#*Sqx~ff'ϙmam1ޢi=sZqQx+eb(cFϧhRYs;MՍj˷g}րF#yAnU.?p4M#QI)I~WzWw~$VӖXW.~VUUpouɃ^"53ԓdLs湗^GH+5^Vn;E/]]Z5'Gy7J4;\cmC0(TAVX5js+{su ۶j9WD­JduE~ uQwB䦼sQ!TRڈ'<$+?ȈϽ^c; 9{v H,Z bȞB }S/Z#>`:6>Bk]%g۟ ]VvD[gKGWj=! qvjnmAYv*lXn|}V899xA/ֲJ,ЮYPF6H5 {OMrlWڅWc4QQ-CT1o'@)ʻ̸Bzؗ-I0C0M(r< uxbs]lJyJ"!`B0\͚5Gc&@ّigOҼ"!q̶ϽMUva-6?p؊ʒ tGr 1)bT*NPz$.ˑ~QY;:||'_%<:QT+ s$Tkчju_X.Ulih-Y :uj/Q!Cg7@j(?:ȣL\.j@ՖTj ՛Ս'!TJ :@_$In"pii a$ mY(&FQ>$-2}( {#JEBļR(\L D{kfnY ə<ˑ/.GQGCTfϩ!D!r6]6r+vdNnjXδvtye_p +)^y;:Ieϼ=AH߀9anrw`T HZ1?CY ވK@l@ŰU!P4țgJXG#p7 0G"LׇFhXuj(۩/.oֳTœ;~%mpu: iY/8?rѠŚ7۴iԏz\dB)pnn;H]!Q(ǰ/jvֲ:q0,mD/,~%.]"1i㍑#_LKJe}'٪U*jY1wjCɿ W [65]H  h3#Db E ;qfC LPcYmOOg.GAo8J YRڭ4 k.R)qǜȦ(נlǓo y*'Z2 }L~%(VAIr867 \/6mri[b#@.*CFA2,>kGXL}#PP#|0_8$v?ѲLb*N: @ JY-H BBO 4Mi#>Sދv\ȱR;;Dr!-{ Y"Rr*ԍC=&zEo;E_iM@Ci/c keQ -jr?Y m:ʑUЎ71wDʘY*O=)L1Ix[w;!!2i@_h)kQe bj"&߁(Dn@__^#t(hKs!F(Zi}|D>1%hVm<2u &uΖ$&x >%} x4VG8#[e,?+Bx~Zz+պ OWox$9oU[FknЬ.1 ]vgs#ʻ~.͈դT\ ,Tۺ6r6Ĥb_8GV7Ti4։YoG~ٷR qv$8?sMZo]!/&ƬV$E陞FrO\)50. ipb D8a)Ii-)Sz09&Nl%F5CȾͻُ`y) oly,MWq+hЃU`$*RNF"Z*l>k|h%~dre){_M VvZK$i[qGLL@R+|&JE;ދvr  ƀ hM7j?fU-DSlVgD;FCka&fu4N2nBH$drɫx7;W*988Myk⪜? Q y ^`ӭJ([҈f[4O$7BV6ĿNemx^?*cyIg3]V?33K}їV./cAְ@kK9|0hPhe4%IA4:2pT?VTrc ƭȒ53I2~ZnS671`IJrhGZ 7Uٰ!eA.J\#K%-{ }Uuv҅\Xq#ƋL&vӚaj1ΠzijҟH`0ÁQ:(. pnF+ }L '/j^vYfY#\@ Qu&VWPb6JC0&W: hg~٘DXXvS4.+[.tek/7X4hmMDkڜaNUÃC34ymiB8j5XgВ2]P)A¯4k7 }A}IҪ /K60 E$njC+Q(Ҿ,v40'A\٭dn ?\|i{CT8˶;XÁ 2]S NyU2 HtH[|k~&_yΘƍCW6aCM8!#׵uH@h{?4ο=),.g֐wxz$E2Ny9-*F)/Z*1]kls?!'5슃0V3˦N#u 3gUbg5Y#Wq}_Mg{{GҒlȕBXZ 0w Wr(EI\H  ݾ(_&m9ƔM?#Q8RwXkqΩh('/qcX<ꯠ.QGۧ7V~,C>PN& "CƗ{>Ns@64f>YVZt+@qpu5m&fYrUBUK:L?7%kHfOrj3G]ڐ!˥qԕ)X•%6udmgqԞYSs;U9|ou3u!͈P΅fvwH~%F*ݞ jύ1Z%U@(sR%Drbd ԰B4sia+838Z`w1b\!)Q>r2.09$䤾;\~0az훱۶%fXviup{o!lXSg&JVNo2u@V!rdKChn"́U!_ l4檑5SQP[*qW3CEӽ"۵%!j5Ybˇ(MTaSepTv.ݡ n .:f//իz6ihH_ي޷4:<O7Im^ۗBb*N _6c2-ɴ39h2byc$=g'2UAn[!р׾!T:5DpQ\'{|Ν3dvdỜ4dYK%%& 7H`gyrCRR0`׳i"QK\2YLUn5?wBhYc+nj7 Kck:/r8m"WG`@mrYT)7wGJ5\.*rwL1.Y"7Ϳm~$u]sn"dh;mcEwX_8Up[d84Z)"A$O9Xuu)ǹg/YF9w (_}yn @9zANPK"e=19a*!!(nuvola/64x64/filesystems/folder_font.pngUT @ZA9PQux W 8lc>eKlKQKQa[QJ.._"e"#%,}sszuޯ˞{]VkUA.ON]Bi{hVq!ǂ{9Wlw9D?&  U0*pM *Dle]-:>>>6WqX1PۂX8\ۄϬ1l،@[[O;2 g@~e٢eٱ;Koj1K\DIJ= W#2t'ٶuVMMM/~<0Z.g{_Q}P5`h Ygpo~}o[` 3/XEapNQI_l p3ҽ32fhh_ r>qsyӦt#c&9L](?e0QpD$^Nlaw -  ԓ,yAO0$nwx/J^@7#hW#R!Ka:yeDo*rU;%vpLu8\HwcvN^$Lq0]( ޱ>F:*PȗghWw~qreW'wyGc .Yu%wbTfT8;*5˨l,dgkH/oZ%!Q.ݰd)&tTX#0([*oZ6 G IT"Νk{ƚhʤz7c>I+8cj狀ݼ  W6p)/^q}&jjԪmmA$TdwIN& 3^>3ُ93ZP@/nʗ~G!e*pGCǥ4vC7Cs;2Yyک8\mpa}E(H$YF}1ժgԞEsF k_PRPtr L3@89^IʤpN(")&1a^s4z|:P$'}bAa2P#ߌb_JʞϖKMuf;~*gS_b7'5MԄ4]Ir?dZdyoJ'Z_ᩧY~a;vLt7}ϔM1>qڪm.~ hzpR/msfw{U.4 X\v╝fOC"d9(Yۥ3l08SVE-/إy!c)4 Oksn[ɅxS>svQ~λm uyXy3^cl'B.fr=sbFI?ӕRR5Wپl&4\2X,UA5ӯv`E-)QДi8)_}Ys% al.c&m@)4XHgLi1gvCN \"7s, -zVD{PԳ)D Zx\Mʲ̮M8FLHBL#bee)gLC>L0*l|#0`2&WAUW?v9PtWxddHBo+|Z)i ?j;Y/?N1dauGY[cC ]-Zkoރ|~Tg?=s7pW;WXC>4XN03!q[S}g=sv]%˜#ˌ*_h}mK_l 0D@|0&U P~pC(l6Ŭ \7y0 ǖ ] dK@o'|B ߂ρic}8B .MOc8Q} 6={ eK[̋x0caA^9eB|)n)f'dc Ӱ=5B:T$ۗzj?=u*yB[MM=G[~^TTWdIaJ?үN&BFLېY[W7YV,]Xǽ:ϬՑ/w: <@70zv˔VʂRKa~:xh#E sFg>ڐJia~| vɧ17(B:$ۆk`4+';`m2!̥J)aۄ~[Bs5H~*.X;>2TX؂WKEPy y'/~DtHVyJݧNDgm48 'jIA7w21-oT3Wa1'u7xOSe覍+gί-h6/2=:/%19?/sZK(Qe^; TR^WĶߔxE%?2BbIm g, f(a` 72bxs)I4^|WS;U-vC jLv]k5N8X-?}+>*?S o`zQgb۫3NaNݸD΢[Gľ_`z# T>%W Wa))"NqX9W-]+W{1^&y&L*jRd4r#VA'=1$:v^} Y]EؙPG6wBVq3mM lW_N]ȲE\pFֳd#U gV {nbpSFvc q0 | FyXHg戈wd󰆵9\Z,o8ln .DjjjH0 !}o}GdK:nz<q{¶f HW7cg1tjEd? /Ӗ,A_DcDsDKt0pj ,HUƘu=T$RH=Y% K@k}kusq@%e>_XY˥wwl;(6ZNݢnU^zo |gC7AWKFq(/>*ݺIHR"Fg**R{=^$$Cfp,]-j0)XJ}Ux*k% ČiJ K;@&CD"׍xQC>^uXŹ Q@(xlpݿAMߎ e qoOjk$+L-8\}-}u*GP/wT{+UV}nk*O "˻uJ&ֵ){mPyʃs,g| dʠqBʄ&WVWo'lטL6/oNI{c^)%Ӌ{hhv<;gyt>Pʇgr6[L[٨c6p2mczHI.ޣG*bq7q?Ybhbs!b($529qQß۽et5o>_fJ;p|48ЇmAfH֣y58`n"!wYpC -2 ARXux_"B_QuYQ)שׂO~r%Ǥ3 F[ȿH<+W5KO鮋!NrJ ~\dHؼHD8 |Jwwja͊uo 0$fYdw. -65|A]yQΧ^0w~a8{R2MjTW+CCmMCݶc{^ <4f\2wP4btk~c{#BW|߰X=/zMnjQdK⽖ssp䔓5ռWܐܩnx<wK#)?\xnnL3"$k*dL/;;r'?H^*NmG|:^f Bc1\ATTB}%s]k.3ߨ[/q]5Q4 YE籒>((ہG6f6&v-f\h*Kjli`,Z{k$sutZT+GKbLǔHʂ 3? q8&bOi^n95FTw rם9WF Zi#zKԿ#3ya"@n>KEߡU{ޤu)R$gAꘞo] O*RhZe,ڼפ?;$03( ñU2 Ҥn|4a λ2TXUbg"xͧ[UC3v9OBjPY6f b4rzEG޿~ʷ>0Z+ E6|*͈eiA]0 M$IdY<]#*[}z*b+%PJ777-_yWhTbcIyLl3zlPl i/_=5H}P'QƂcp-v}p8MD}zn_:wgLt |OH;"mPqW%u C"Y7X\b;:j^i,Ѹ۽_縇lŠ:OrM:RͥVG@Ag9԰GXZPB굨T;P7; cƸVA0 wQUt@)\v|;=PKe=1of*)nuvola/64x64/filesystems/folder_games.pngUT :ZA8PQux W{<bs[dBQ\'mtѕnlS)tmֆnʭLwEYWl}Jt3˵(C;9<_ywl] f,S>:ؿ`4v2Tkǝrbw|̉c9*>"bpZӉ^ڼ%BD?44!$-1u--zjJsׯ()IHJQ;VIЧJ0%Go^C`&&&lܓ \TƋӤ+JN]ȡ98:*i/=O DF]`Ixok}ۿ^X8ֳUxuzY_+H5۷]T{G 5Kw6{fFdDj`&j͍t?3t!D6s,ӂуʾbG'gF<WŵAf7fɳ]w'O\vy*pǔ9|27}s}WҟooSAŚyY{a+~߲!h PصiS oQ$'xWh|ތA^3Ҟׅ-Zf:-?Ck؀) vyCQs6/om98 hܻH\]wR^o E!D{d*TtO#C ݃a~=f#5^U㲱jt^m\ ؞虽3miHY ,z }PC+9{"(&7 (Z[|lFmh`1k|ɣ ĢE'G]\ҩD5;=ݚBȏ=C^Ō߭fn(WUIy}cz߿pp->>h\zyy7y #<1szaW=Wδ4| *ebuzW!NH]GtfKMvqqq9#7YWMC<0361%]?Nf卟Wf;cdt dr}(yV˨jS>Z@ .UqG uD9XvVQKJyVZ eOԸ<ܦL|\3lj G/&QbA'rDp06/̄'za!8etpPq5q|S&PP eJreɞ8vbc}\oZQ10O;Uw p'NG@Q jXH:ۑoOVM5<ɸc yj*ᙳs'cwQc;iFw˹K.DxJ*짩9-<*%QOoO'v]w{)|.)oUx' mΙP嶘g A  nav ia/8%/g_|;/VLmV\aNf£ݹ?!WshAjbllYۗ"dh eNi"%y0# wx)ux Z(b7o;f #}N 1S9بT6Ēr uN~k^xקip2Ue#TwgpW6Ko>.y>y[prE:T~󲃋VU>Piͩ ՍV\)\ j_qz#Ni`"fAwI?k̲N=&lgm/@:\XQq#R\ OHL#Xk5\XĶ^<<ًFl]EYo`MQ_ Nȋ<<2+nÇj`Æ`LlP,U7~TQk4{Ա0u#cǶ|6R}[C>?c>npi@`GwImYmk ͈j8t\^CemNܞpCS s|'[,;_d=T`T Mw730#Z1x\-OU3秐ccsUfݯL[8=x>ChInOଊsϠb1~r/ 7@XTõU$6jΨ{la1aunBP,鵰_A>tZ9"r l&5Dt hl;ųa1O5ِp I -?a~]RBG*->tVЪ3 NPխw܉X 7CәfXqu~7-FQb W(seĨ.+)03 H>w+.XY͇쾅!E 8 ɧ$c ].1ree3\@'zj# @vYr1](χh}wDVc.4ڔ% .C.[(i kKyL-T19.橊%2f>n0w0l246aGRX:rh:Qs/H,&smmMAGj^YE0(l`2SG­\;$cmnks;E -J6sgbF҂}-,eȢ; S Ԝ=wZ1+H`~` ڎ0R6@` m. nu`TݞyF&lgD6=oYCLt$\֢ 𺑕 I.`tqthbքCvuvJEȒT_(T?FbrS՚c^rVIMBfSjdԏp{k5`tqh7)p|5cD+qOntHv W BSPV%RA ]%B/pw),.}K,,"&lo3컬&XIk4yVKyX"1Ev@AB[Y-7 ɊE#¨rIJ"ʐ]B2[O 5 /njhR3Ԋ0DOY0*OTzȓj>s@RR:7ڰ, ؐ= 5> Ӻ ki@HĚKUHXM̓Kq`PC/RP.y%d$UĶO&9%-Brɓu5(GM$]5(ju=3N5D7$tYM ;3BR.UP7 D` ԉ@@w#wn l~qø0ʗeȡ̋ Gm=j1KXw{bV俏jpa\cZt9o,9vl}5H%eh.CXlI8-97@"*[ʾ-xn3k;/im,AfV1Wj\2E)žX_8_wʶΆӢSF"ǒr%d/~GE_WCKVXntwQ [۞xBi2'1S M\.F+"wG( g9 '4HtQ~DW\~|BYec:OP?L˒6G Ibl?m=T4Ĕ@|JA1\S\Ntϭ{@92 @~fbrKܡQe6>gQflvET2zVV8$ъ.+_[~z_yM,lcz1d\Igñ5gN sa8|D<'ob?Ah[t5 NI2Ap;.e߽k]{!6uٛr,:賷70͕]:!>JkD12>v#DkڮkoRPk7GOHshTۍ(+hL@d_ o<9<,Rk\D`! |W뢘:'=aƢDcqYvNEqZ[* N撵I-`9WRM/_3tx)suʲB:l{y>8I&&_'dZX"8*aMbKfr$ʲ M?TYgBo.)yi%FrRنFvf/~}_ J5F4Id > | ~݈[VrhçǜMX}u3%!lQID[}=˺ƺqS҅rMcDrZ0QTa]HWYy74YR05G?vyFyB|0vjh [r=11J5d\ѽ+r/O;q#`(fyLt$qg/KG *l .x?\YU+ZvcEۖf}qwRϲjqD-vNo ۺf1wӨdDd~bD@JEQa& 3{Kš~ y!K)5A5˿G'xO?%.*b텭iCXL<㨁b w}e!X a?g\QX5yI7&ϰy u!ޏ=V' HlL8 A// V67tJyMG>= lqpIȚ'=:sQMi,azk:N֛7qwG)m"; pvp8SqC%Vċ*ۼoo2[̝z^D3$ Ov.ЁEC2% OIR%ͧKܵ57Oz 2P jۇs9Dc~DcGihY/AEwyh@g{ ;^oY+[E Ņn.6|W52O춒%<6HdD`WlTQ[u0ҍhtO^mXHW辶&ʕ(c^ZT/}pV0sCO67vH%!wUY2:V_5w4s>;9Nt71wO`7F}aIIعΩGNJVA ;C`= n -J[`~[H]c;S7rHIvw*D W'4zZ`{|y"`2axq6\7ТzmeI.bcWX5CwbKƊ+Piъ9KI덗=ig0Ot*.ENz]86U)/tE lmQ,'tp Dlj!mZ8VWN@Mpp%WH-mWfX_]:a΍,hSO_t|ysSFP@\d/C)Sꤣ`XX+ީRɢ oY0l|C/wWMWF]κK$xԣdKE(>>ҚKCGTGEPf57J4f߷-:%fZYs 侻7)f9)B  `F,Eg[kTjUvHg~XhZs7?aטu;Qe-fjP&=F֐ dXn\⁈_kZ4 Nv"61 NMKN""\gĉ9$=]EVnD]u]Gs[oQZ4H*( sZD 4uQXN|S& kθEmɺt Z>p;ANݪ+^.sh˺ݻ# }uhFc}jmVU+tٻOLz5,v}-|%K&pviQ ٠ʐBlk@tyAJg"NmnMxR3R9?cY<g݌ #A[LCC60-NowwRF{+׉qU1l/D U!a@ԝo7; WUf@%sǞ*R,9 8[ 󱉛ÝlWgb{{$F}}utZd-mB?VxkJ}lV?۸ _mBvx뻑B#oؐCL }~>2qAJ,t&Mn,[o_icmz*yh&wNai'jP<dڔYaJmJ3$$.g%rBKatf"k-*#.|YId91\[@pb[+o cRPK=1nz h)nuvola/64x64/filesystems/folder_green.pngUT ZA7PQux 5Yy8]f;`א -Xv& L>/ꑀWz%oa؋VGG+H 5_ݸɹ<O+les28M{VZ{8F5S" xo Z%ҠЀlDٳbUM>8\On=c̳+C^%ҁ9CJ 7cرsaa_DShLD6&>2g+~u7 Z6}쾈wYY2N$Ud< &a hb#8B ]YmLup; ۷&.ݗEֱY>XY>07jDd.`yAQ8F Y_WRfJx} F}yIZWc'A8WHpņ|KO__xǢK|{ЄV#[Vm-Olo.$7% ~t_3Tf\M0WUDc)13RZe5\_FLng2Ňy_2>؏8:qz_*O>h\W55RRI#zaKyovn?Ecm})Uo3H4˩"ҕ'gJ8nlݺDqk,:yHJVd5 G= +ox5(J;Rs{$ |e3# >/%9%ל96'S&qE"dr04w^(6ͭnovIoD 0}26뷑Bì7sb!5s84ի_g#BӺ3jV CfX'GzރL!p]C{(M_@KHHn<&r熂mjD *CPZt fo&tcY1Oap ڍ uv%{Ha=q}+.zy va\vTjV:m\~ޚɰa`hT6 F$ňI+NΒ !u)]hP AwIhL547K84X>ZH %+#7y32&!\c7#vi"岺Btkh6HI A7XyӘ}>zpZC`S_̃w.J))c^/3@~0MIm_gN?O5I1vu2FrnjQ'I닐J0JAvVJ˝(p"B 넒%@:n0y_ro;uJMħAi_u1hiܣrN0,q3t:!&eBs35j1+W{*Sõ#.aG/x>Kgfw6om4u~5Sv4axSoAoK/S5?.ãy:sjdcـh:" ^P'Cǔ_Q mg;ۅH;Q):mܻB M|cGJ9nqyrϳY;4eC쐞MzZrSCZxYՉW>u4BIl차yqkax9u[Zc_<A=iiy:\ "{mbf^,!u9*jįdOsq!~Hڗk&m{wJ5VkC J¬ SC-å׬vV@-*]e\\$FL1{_wTY>#bN' ۫oǂtu3CrqG_EB~c"3.IW5>kPxpRù??OCMްFE~Rݣ*qEŇ}ث+Ӻ#pBzTB=R{y5{Cqҝ7ɹogy҇Ev9_NuX]]6PB4h☉p AA7m'UXe M4Jtr^9{keʶGO!\9 AZ8{`.܈X `32Y@G]tڗ{ VܓϷ.얠"1ۮ9خ|9:d,[yQqcyJ1SvWESsEwL_"f F*<4זOdp%w·,gGgLna I YG4:C8|eZ%\0yuW[RAwvvxѓ!5S‹br'Q"t?uM^l>J> 1\;n;wmJRί.F ЎQ[ $Q5WyQ ?;D0p%_2PRh7FM!)^eq_ɷSPRq5 vL?9`@ɟ 9]3IzDzY,J] TWsc:37̌Lu@_hZa\&*ä)ୠ EQQy*.e U .KvS"498[h t8;cv]̄/\LfU O(3^&,N`}eKe5Br}7_?g3YsdQ)ٱCنò6+4~!e20`?{}Onxƙv)n|7Rn 4kqPc 6mM3X~lEʟ}LC}vwr2PU0cXl/#i<_pw;Iir]-u1jlJTRO[,  Hon-iZcj.boYGEDUqFJCCÈU=HLu {Nd %5s,K1 H@FdX2ls8>>I& 5Z7v;cɑv\T!m:)@BOL/1Yʒ#Y=?],펦!_:!>$.EBp# Hm@s֩bR{JiQ? Vm M3IENq=ceQw:5Rs\n9^%qeo0)sMtn'gӭiYȩ~7/Bp-pU-4hSѿ/B_(@Ю˗<(RU&„+{P>bœec]U:; Bd8'xFބ}תIbcQ[ȟ[a*$mJ[2/)eņ$k33IW+x-(J`t9UM%Ը,nfb{ ktzl t y+sG|UT=`F 'A D<6^H>=a>ts|\y<~?lFb@ ulJS3 p;J[Ƿ|*śPMDݓ*S <`ۨhDVG)6"!;{/8atq`X ReXEihlcң1ʁgW g\I9p}r+{wnOKRN?}oU3AY(_"mYbM٤:iBO"JҾ5JFh5UbGD}A[|.N.^il$HČȹ|'wa0):R<7;!gdh\m&e ydP,}Ir&BȘPīt)$XOpVp!nPSDh+j#0 & vq f"%vąI^Yw=Dx }DJ}~h;TI_|s,iɾv?2 h:ߓ ,Z?lj%oOT- /.Mk#W扷U2Kj0sZiSwyxt,R߶\6jWev7}UG`1GHv`=ALȋLE]%#_hȧ .sJu?5%z`RT`~E ef+L,I"'|=(Lŵ.=`[`e崬e"gclU"Z=nbpmqL622$['aʅ8Ӎ8:B fu=8߯^`0#!Ħ9}K}E"۳|}󳄠,6iZ  R,y/.e1ҡuBITc<4$8=L\a4,?@zKl ,̞Psm|'nȤ7MA-zrd+Saplפ^jV*%3o/@+5žF[\Jb2?HS8Ċ(}"b"Zd]rεMe[!U[, Ik_CSkiYcKaOF)gܴUTpyF!*660#vtGL;F&~qlNxq%SFblIxqnp9}]ޓ4`m-gKc|048pς! bC&dW#"W_Rl )i=bK NRi|h#,صL& &ϳlY-!44&ͮU㌫owv+"d=PGi;<: `UUqc ]fAcKE͸ 55>bϛ_ORzB*%+T80CFXRڜl6řo Rajf+\)Q _ðɹ6 VW=xETxNu Rv^%7 ~$e0Ʈn-NߧAjk/ AQ&T/ Q8MƬCxBE1K˔G O m(hj>hV Wb`,~5`I` RVcG~f**NꔄJ!$L,c5u KU9FETN͍:6*bEU,sVf_ QNiQ3B8,뜚VC(A'/:֨2޳p$bD,TxKvj+A8M(hc$WWj m@UQ :NLj#~ QlӍy&:z֎\7;x7{$ゃQ2QNVWG# |VL~KL- P4%M^Qb̉U&$SʉLċpNɝӦ܄|Ǵ/y;OIɄD(M(m"0he hb1Z}8c7aJx+xMd-#4G\Q̅M( h5Ind#$HJ-fxn=R]Y\D}xZ]}{"ÁߝX<j$F'FDŽ-r$I BX ۬N+MH9Dr4S|z3^42wZ5*ÑR&ZHzx|j3VquJ`~´~bLh7p0@V+R6b҄n$g܅&k%B+pn2pyXd~tI)8k}dOn$ߨV6WǗPK=1 9/X.nuvola/64x64/filesystems/folder_green_open.pngUT ZA7PQux }{8T[̘H#r/Tr(Bqø(t"rK.Q aBI#ΑF*(qa统g׳ny}>k]<袢Q7=^k9A)A-2ZYÑ!g1tfd`0#4+)=#qDXWޛao6aqsl}F 3~se$T=Dt8PK' HmIuHҝSALgڟ$bGfE1!XvCۜ/auZGml065h nr3Gi6c W0$O Fͮ#M[~3ٴG2o#YmZ [oҺ_^8 .?9>޹F'ҎvYbْ̆f3=UGQuLpV\b/wlj]%1-(0˱,lZ9DN4rh52 {xn/a[݆yՕPEU'Pᱟ1ug,@& ;U)@?Eyf44\5#.7_|Kcw̓[6Lt/>ifZA+q-ٍC."S|.1ølG`o' I'exY^Ioozh#;螞/5RgopijMחYpV1g+s4t[y[_r)[!"l…fi~?O6.{KN-Dxm2oݖngEa!;-+>DؽDz8f_?s@pݓ=p9#ČGfGξ 3e&G{o/p,C^2`~ _0tjdy5Z(2ɺX_wZF5׉ob,ޜI?#.?1Uz[SĬ|+]|}C&+LY<']J$\7q }ap=JmR(.sqJJb.#'*|-ձ`(isWo7[UU#>vʚ7 gVxS.=WeGuϘp$sho*I2 \|[hE@B9XۯhSp[ek>~b: ضD gf ޚ*1+e29(濕dIg?<K8Oiͩjk<РP<^KiJW~4XxҎ!pA/g"74` z, ÓcZ]kz^Á|z0[gZ9O/=~ݓgLHCBbIvXN6IZQ&H$ke+#&`Ȇ`T9")&^;haQtu VH-w;t(MP:v4׎ܽZ%5L X=|78Y2NP@OUL1oLAxZCZ ,iQm KX,q=$Ɋ m5e#s=vóMib :*Ƚ$ӑ "J5)Xb/99^tt|3IMU( f ' H d]c\"}wCAZޗҩG;AKOz$a;msyt3n DK9=,!(I9ȯFf=j46`jњI3Sj<&7~z3.)GaVZv>ιoG@k N2p=W8"(JO* kj[jR>.%qk3׌|#`K] "+Oi 22+#e:?1[N-r>K2rEj6,%b1x7> q} o@EeZS(Vw3ziRHfoiB)vːi%dSպtZY |%o=kk _ KcV[ M/uo;0g|葨S*j/$~r4(I s^xjN0fȶ2͸c2Xk`ܕ;egU5틿 ׹QF(-\ʩoG[cavCmE1}ګqGX qc-.OdNfHDȧÙY= {γ,DloLRc.;սOJ~+VT+%>GBkݾOrꠖkH=q*(g;-920 | P+jnD'H!p+^֠)Yqů'e Jk6@U8clLfvoAL=M[Nз4w\TX=DO0~2bw-"loaݡ7B 8,Dh UJ^Q'JC,gkma# 뉇u_59>rV }ηDB5G%9{KZ\v7XĈyFVt;|fJ!B9uw{Nۓr 7~]D &4%!"j#zaG$kğ G~՝`Q&ٚcUs2,v- RVv*ˑ,>7v؜˓j|T%1zx@[tK^11M_A.QR ?^@902B]s?)C-#dy639Kʷ HbUʈ?~`@,A GY|ȃDX= 3q/0>P+T:'z`G+[fU?gK%K^߳zh@3wˉ44dim 7_N 4wghhP!q:W![YPC_ī-W^v%=GL!;ݽ־aQN!?xɼ*fre3 h,~RLӱ7nQGi߂xd23CqXgXRlE(>ʠ6عo$!kJϋv<VEDgc_9>qjTN9VF7[va)6gsBn/Zo3!7 "[>8S%%|d#hB` gU_FI)ߒ"\} jah2 vR&Yik&7{ۀI_9|>ʦgƦQE9l19E AĈLbAM0x[* N4{D$?_8è,Y>}.dfuN[[/r,.}Nۚw6Sw =AMOe ?`UV|J7<'kb'r %gLD@UYWϵd+Q<0; eW!!=Ʒ*J Sd$bE xL|bv"ޏDۑ*^1w4g65IlD2%G×D[ԐP*M3||`2>" xc;؝3ziT hvvw E͝žQi(d-%J5LNDQKK%|{ (G GWxE6\v~v9-?g~6PݩņC& O܎M _g;'grS9?&Mb,W:KGO|#!fQD ሊDD#ESذC$G)*5#encbfѳ.ޡO?ۍB4!9eQ7gbyE ]| ;QUyiqrHR!*Q_Ss-wD!WUww yXtpKs7h 9w >Ozw]j4FSAwb.)Ȉݭ\P*e?}Y1?)h^ `2Q8~4~ Jv!l)eӴB)b |Stg#8,o(j@0 +v/&K #v^kD֓c, &Rp/+d@ 11隕FYaΖT,wkE~>;LX,IO"nA曨HSf̞dwmn+wL۠<= B+?9b4YEy?L9Of:ج5g 4%8N >4,>r*+:8NOuXU!Cl+ߗ>=nT;)PK=1KSE(nuvola/64x64/filesystems/folder_grey.pngUT ZA9PQux X 8w6ClN#\P"PQ)1$["mAIP*(Ԇr.rHTe}u=>^}yzۅא)u4RqbL6hPn8]6's@LӁq-$&(TxPo>:& A m]dقx[U{a48?ٸa> ԏ:0'| X}yf bu@jjj RIW㺯Zb,ƌ.DIM_y;;/6!}`4<~sݻU͏3,Ҵ֜9,&zGW9┐ٙ cJ6))/^?LYW)(#H]ͩk_{J)8տCO}]Vd1G~wF*^i[J 3p$Qtr(ed.vN&\WlH(j߭ @ ש}}f׈]mCA IBlyi)2쪄_U #R%+|@ 8377fugi~•_#61cmXk5 5ܗgW2_/[_8hEa`jk`1W-;.=!?d ߿_"s/uGRzd!GgdXDDXyy%AR<<1E[v @]gy<4.big0]O<' RC茧ɈcZKK4:VLf>Lh^Rsq 5}v*WQ8Pq8OxVV042r$hrpYbC2pN.N|zr(ڇӯ#iƜ9ӊIKkΤng#8bA_YAUetQv7T p'MRɎmW߆cZ|O ,i\ nyz\vR7@rHϨ`O$]+Ib枂})oSrΝ23;3RJ%yC'ݻR1Ͱ,3fzD<&vk1 :[Uwx,LÁϻ!{+1,Lm|A ʱYےf#9=n^&QR}dS>hǴusi+cytİ*<21m 3~) I966f, _?d5eZFbeT:*LCSPjw ݺ&&r9`eق+hxPQ_PjL*gQ,2ǘ:)XJ<v]rVoN2Z'+Z_otf"+fȶ>B>N0"@Jl8d{R2:J2FQ7ׅhh[B'׷_;g6;v2iw 1?M4%&xZpVڲPdxX"=AFDzG;Qpr@ ch9,m=?^ 2זMa6dy>EY)e` A ^-1WQf#'6lmQy7JRw*V IuSʽO 9&ccfsѱw~:/,՞m==)hKj*k:aF!Iޫe%>UA e8~sv!ei(I*:3|pDZe}=3OMC3yo 4M?%S +]2vΈ~ѩ>qc>;eG8Q8RhأS&Y9ک*w"Dqich+zkz ~f=#$2*fqUD=hRGwYYCCnſԗ\Bh--$F)#*6ZI%׃`O7lMn//g`dU53`-Hl*/ oaG*>"Ĩ?4K @.;FF7I"> ˏ}֊݀sZ&a[4ťbVY$;=-ջJc^ M s0M?7f  [Pzg畨.7oc<n`A8q5I w=@A'-(SHIỤǕRhX[.ea eH- I*TlNI.#(7*y-'R_08+ ёN6uW d ^c=}0qoP_$!_( WC{:îiP|)??E>j>lw.c>0y#x 2: J;[*ǖ᮴ՋHU;c/} YuЕse,jBCAV6Y{V gb>Ʒi٪c&mvdjta//|OnέRO\E*X;ܤWf/ٿ)|Js V >Rdb nb*ȏ);:cxlZu7p[LjyjZaS]i!dD*ۈODק= v?m 0һ}a }j'Ԙ{edqknEt{ ڌ8t읫u_wub) l؆8F^W2|dx\^#P8ό'd*tTPP3,ցTtS7we})T0O Xh]$6<-)fYIo3S I/}S-] _Yǡtgfj[V,J|x)$gVf(7J x;Ğ3/ }& >8ѷ7X}ߒIC&박?IOz̯ Ҫc`˓o0͞Ww p1ɢPza)0of_&ľy㓱XE zP|z[hy'pAVG0dߣDr`!zTgyG+T|JU)e W?95ڢlM1dr̮sZ"n꒘j"_nގpFpɚB%dzXh!Pݏ"YjepҮh[@]rUC.2DZ=@}XIΫ;9y/<7YOߴ/>:@i«h.n+u'%Y{SyG{̂v&廊ۖމpMvV0;+Ƴ[aB;!̊҄"r=I Bpy<'bN"AchAk&4m3!Xsoבf.S%7` SJpĞUlZޗZBraa`]X,Jz+>kӎʫ Q_|b|{Ȃ McjSuP\zٳĦ)_/KK. [*m4ò_hVqJ؝ *wF*x j싟![AlR~b49~)!1ij(5-DRw仍!nQE ]+mZDH8YDd7BS#rf!P2P On[B˙܃ϭH@%#ujpi䌭̾=pgjSW_+g'uO]Xnm`764lbz2N9,AK!u֭dX[tHc4\MԱ;lM GjM!-Sʥ?K8?j ]@AW o&Wz'=:7X93OYUvXe0\z KenaAVDC2̈́0ڪ驚?b^[~*uhzȎ.i>CTei{QR"MDK^:i7sT`C|cD~ Z02EffyM3x&gl @/A7 ֎YlO \${ &i;x)SIAR wkѧCů pdp[y؈ :uHgŌ'@7oxеvqscTC6;mP;^}B ޔ}e՞#\KNe?X5<6OG ˠ $> W+{ qCchuή2ןECV.iﮎtnWiƗMܧByB!$$0M/?(ML^LMo?y~ۄ]oEcc+&ɮ۬_vrVT<1 TA25}t,זNΜ|Y3%3Y٬IcT ?s=1ŠMۡGp >~8CN#clO xXʓ1I:; C=;}T#i_r("U./!oW-@..SYw:{5Tl(ik35B.+}+2qU1vAJ/ə;󽚚MLW(z4uk6GϢcf# l"Cf/ޏ"c5C,e1My.CPW&`]$W>+P7 Űs'k hd9d`9?eٶ-sM&36YL(rG.ʟr A*Nh9 i5*YR2n* O?N[:g0P7K ( &*5HQ`s1M%D+{iyxqVƩ, 6bC)#}ƒÒw@SӍO]bDmhO8*n (-)r,`ii B I TDRAT(oN-NXAԺA$yj{lI"^l~%kno7Q8UkωC44DMङᕍ7ȫ9[^ Ww(EPWkVZUire="젘rIIIOIH/ŭ5mӳ#^oE>6|Zp#=? +urLJe`VdFy.^F+|ZZm?1FEwŸ "ϯ ŢĊ`Rnǫlαa"]7PysJMXՊL8c}tzAwg[[zQ9سp8}{7'.~xǽ)U{q]z0)hG냱:5Mߣ>n(-Fr_NzLCK_+iX@͜hZ1 /ÜDsQZ/zʕ:<7MOMK%$=*K3EzS'wCN\wk45.ƺCۚ91d> bB9kgkjN? ,> @f7|?{Wwט´B8sUQճl.cm@_աC Fuݹc<=ꭥ.8iyv$2%m9Usaf 8Z'%%'CCBS [A>r/}t51(iǍ,`L9[ғaw/Goq=eXnKp­ ւVLkr5cِ:1FJ7N3N&@9HИZU~7H ]8E r]R*{IOE*=e֋ ICb*D x'}p}KK$দo'TRf`_umŦ7$jGO̪)Glt@r|I ۯ =~ zT꫸\gkK>Ͷɝ3lIו DSՁ\Uޗȓ\QrO}R1aF$UiޅqV$!>c$Xi>|z ֋6`d+˛q] YTyZ(^ DSf.nvv2𘃑AsRYDa/'lu}M)uĨ^2mgkk!o%(b*ݢx-.ʹUiŤ6Q.-R0V"&%RHEN|PB2Ͷ UӌdpՏor[uS[>Ҹ4|isyOr溚_Ͻ<<Fi 7Uz^)5N hm#7+b%iS,};*X"̝_uSl~N '_IMjR D6\{ -2e^ml_] Y"YZ[OY:@|#vk;p]/Nɺꩳjoɿ̶Ƈ/+}hL bA5ڒ!Ī`#U밊ٞE6?bbr^6hZXFZk(Q/^pGk JZ[]FAen|f ppƓ lw+q2>: x8)؉FP@PYlǓC-yU{'9K:w E"mx8kOérsqK↿&#SF0zT\ml;𥣼?$vW/X+PZ/Q"~3{ijou"%E('A[~.8SaVGQ`]ϕgG+65eFS} 푼A*;@hA4H''KVA,(GpL:b^)#re>뿏ߍNV3$JA|[ -`/XRiXQ97;qZ -Y ZSg5!E]PiZTϥa< 0kWЯ7X y7)rݶ*xr#-k#mrΒWzAaC޶_.,jogS*U2<1֠AQ|D۲ӂSgr/ZuIȱ5\샽-|j⛏Z CaLqK`=oWG1h`&'ֿ 3Cꍛ[3D hAD/({BMgXNpJ"?_ 7mZ(_9ҝ3Ioz6// ^/#(Z zH.\ ! -w _z4|}K^ FlrVpܗFLK8fIСv%Ѹ ql÷*)%,n `\cSq;ysĐ:q0½1')S@T}Ik&ߞ{_mQVCᾺ(D{,1Ծn^Glo[؀1>&E$ }>ljrQ`7swU l ^ɩ|\MK[A*#3!,z*w뚭[0g:H(hk y4D=O0u!?\οMœIMNpoFNf']8GX|z4nA,g?@>w@"{Vǎde{>طI{q‰YPҔEՒVS QqZ:݃wʅ3UƮ_ XRǛ.mxrlҾmftdq̙퓈̙֝!su5, ܅# 2]F%ۯ S2P"FgڟXdvخZ= wW]/GuU "n+Զ|2"P>i{\#dU'KQݻ>S\ [,إ*sٳN-~;hGl}QC7`3hvwRiGJ o-9!j',sdHY 'cr]x#46YSfHkd~++˵[/8wѸ)`bYI˓bN32ԌAs>YIp_E߉Ʒ|KIyN_y* VyaBa'Oh.8E n#RNVUo(4#~o?$+F4ă }@~xrLPKe=16:(nuvola/64x64/filesystems/folder_home.pngUT ZA8PQux UgTB %P"%w(MABG@$BQDQlP) ]DQ T\~{;vf7p܆[;[K_G"ƚdd=z9sL{8?7kw'(9?!]HYf2l[ 4 gd@| MU$ \$ ڀKнıe})v6v_a.eغHoP|KԸi8W@T⫆5j8nc&x tTzA[u xX JGN~>"^WBY 4Ve2 F'f]2(+a>;Sbtnl?UBw u^RQY /Ժښ)Mg'B Gk)uj!' a׮7#Xж9#[ &e|qo͉$Om.v)}A(v\zp97ͼ{r#Z[՚wݯFs=ju`p!IgS_/R(򊝸. wfӫzjX)^!^nnK :YRRBϟ?>s fۻ?dL䉖sWPmuN8 囶Oo^}T"<4tfqyC &Nvw-h=|$0|㱡]1:>VC?5_~zm;`obgZCSI{ ==)H,W3֊-뛜pv9ۧ=ԙh.|{jIV|JTd%ҽp-,Lu~q$߯X^暅0t]^3:fG]UBnwͶQP@$5`Qƕ fע?k##e=ab|Aܚ ^dۿ# }/|GrnҟrAӌJ*U :폥2p1֏8 Kp~ZDl<%[/GC0*2R <#$@Bg.S` յ1 4Ezerk}Nr rouδ{!= K mC6kADl^F@l*".|U>nMhV&_ KeL?wK1}02]2NDnw!3xutDi#vkXNqzc[S+ SS+ASEImqFTV9OrR1+3՘TL1='`V0?d jCYnFSҢ--kIZ«A[ eh8Jq/n)R|/U~K{۠DV¦[-1VP*242*)J+尩L= ,B C]^AܴVZ/~2&|~ZW $}o5uW5TbE?,W.VZv,L0Iqiq9ʼnulZogfۉl>$h\֛yPWn~z''^{qCe5s3 #k\ 8leiqk۷Lɨ ӃeM ќ Êzw*psrA{'ikDw5f ywRVɿ>ˢՓ5'!KחY2ʉېjRxvi2+pcp{pOty/>tL~rjynL"~S4u Dۏn#/M7M vX7R}8]7%)/h▐XcK~Y㥀[M]u# p~}qߴ:8M+ew͹*$%@,:n@˻f.Tc#|/ϟM{z+Ebe׬dXnC3-<k E%YyKw2MFxg\J{⊓chCvml7jWC~ kkS˜^~2dvzyLD"Ӟ=Dg{/ˌǏ[ϸe.-o7j_'FݼUr}=cghZF[NWj=~ U¶5y#$ea`mW\ȭXef8okAQ/E˙C|WTOky/E$VdejkGt;p)c#5({r#ȸs(hSix9n&TdLX>[}\l~XZ[WTH~j~9OG(g GRi4z~/yzLbAȥPx|*n Q HoL08\kC1Cj0mh #4Du渤1'#h _o+)+xj7/"uh(ѧigVqGlS΁30Ngy4AZ5P%`A*W!N.ǘ#LK)eDSw&b a)S%XMj_:VH9v)KYf/,35l-@p4 ޏ9`Bij}܀BGfkspl\RkujʈоyoܒŧmJr=0EppZ*cld~.S w4eS1C>`-&,J.b~+40w70+Nz׵b6Bh-5"g` }rfQ|:mׂ"OoP盅@&RL $e &k [w:;ψ~;CJkm O 0`O ÄK ITS l&\wNw&9y@GA}q sk|8:=S wol&NgeHAPWd߷xtj'qX{_NƼ#(IAjנ8h(Cyu#U!#Jl?X2*tq0} }b[%g;q뉍+9uWk-pV~+6 souPR@'6q1lc [!2g07Nr܌o?dTGJX^f|@ ũ?̂-l#gzyG:B 8(Qu՜_y 0JN4: -.hr俠 oNt9B $o}>7ae/Iwȏ?tk|2uӣ3|Xa,=_ǞEGV-T6,e@NlL*: P>ݠ04z_=wٸfNWoA%NoER!ETRτ`<9g^c$0"; {\cp;l`cԓ9ٙ Ds+ׄQ г]0 LjNgE'+ ʄ'wi%V⨝$q-qJa$y ~QyyC-B/Db,zJ@Z'de/_~s͘[w؂$lF,~\)i81yQ[Ư=bYc6T?8-Ab0,P0<`Hc8or`YGЕ @ yKy`V囝 |!ML ޳57G2f?oj_]ڑ՗QImiyK"hzIe21c_dOZ{i]LjѭOXԼ |Kw&=Uz-{¾YvxaG Z\L6zխz"#U6 XhGϜMǧsu{ձ\ g9 '[[2MI:нf̑E J>D:DW9&hKuwi"0&m |7F-aY: i m͸`ѭDpM TokRZ4>qgEoƠ3ƱOf𧦦BF=3ޔcDr-,5y^_|1# I]aLW*%Od|6WCK0cz4%,q±Gt÷ Y=E F6a0/O<՛F:&ٵ} +^2&lVГ)[ Enѩ\9>Xr+!x蹻m23?ܵa5uuowA0ΓZU7 wc62끤sMjɔx!#_!j1#-g5Dіh)Lk3 8.khYt!օ̩<,C +T2N:`wحU)ƺxFn(`G**s}xi]]i4˞|QӮٳo_RVqx[#%[ݑ~!;9<d(GA:nYgNL?PKe=1Pr (nuvola/64x64/filesystems/folder_html.pngUT 4ZA9PQux %w X.`Zd-b. Xfb[X)bI :sfk9Ϲ\훴54~jcT{UZ$}[ѧ~7qń7 3w'~0UMMF 8-u˰}ݺu2jt)ёOT+&Eߙ 2@Q4Y0c nJ UJg ֥07LMJݏaUv ?6*8]AR!̯ꡓKrS\m>f~8e͚ lʕ)T6jo5h<sH`Ͼ=7}?g >q$' ~.%ASřvI(u 8}(wc=wQds 6{Lfpp̝S gTKKY_A=nK` F[ @ 777w~tyŋck$e"+^$LNV`CӔ3Yk@aZ˰[['ڵq={0v-#uXܟ/ %'}ajT*eȜdEE3[^a AaC4uK/aTmT|.褩Izg֥`;?tw?w2-ϧ>YO-sK> +7.:-~˃;Ň2T<}Dd}Y(lGlZ+*ȭ*e/JAXa%Rڵ|j^~?ꚚȬo#*ŭ7Wa*'փɊFEت[=?~@4){ވ$N39r " (c-iTքwl~v]0/CRAA7_{7 Yr>Ɓ[u +~ tC ';0t`w1Ji.Қ{=(թ  y= TwK86[h+FPHQ04Gc]QZvh~>jq}q#a{\j+d*M#36v2.[{a%uLWwGǃ8 {D4`y`E6~xb rEW M<3!f~ypH!o>_ i5]ΔSe \ qԡ'шPQ?|ᑅ~b=%KJb%RTr5 ֖#|+vNn̎K;䅳_W5/.`'r3UZcʼnR.9oCdĮ:x_ l:ž m^tpظ̈FpH2ԅ+;|m;2<cZcݲ3'n=ݼ 7{@ u[~hjIӎ\4t@B'`)PO;_,<NQg'Vp?⮕Yɑ Px&fek-S OUO**0H87Ʒ\WB.8#L^.}1LM''\cgߙjp_ $>F?%TׇՊ7'+(l> 9;j $ Tb+ʲ\f,_hnϬ&MK5f0D=U[z+Y2E~I浙Uk"j¸]T9EF( Μ P5Ce(ud)s""48B8-$Q)AMѱS0 3XFxdYZ( TQ*Tlf9(PGD97p]oG[5: Ϸ-GYIJ^y&LSUMJm|-e1gݒ:.B2J. ;8}ȓ\p;x|WW}g:effwbr_ OM|Zύ۰w^Oκc x3wGrzrmB70[:DyB`u/(?2LZ/kVtPoI 0ۭ8~lpQ"SoLC3ץd9.﹘AtXq'5ѧNk/ĄwZ85m.Hfե:`ˮs_Bg<mȺI**%w{>-27qꑽ}Z]!4<+kGKCIðg`_6I\k)2Ȗ}Y˭fR9ޥd5x#@T@^3oT9PamP b AQb; imrx㱊qf2C7Z TP:qD.uÁ]K);iC:cKS_iCtD+fh:JQ`mx_l*NP*9 ?qV45kG|&B[YHn8,<2b.37(lI",2P| %I /w#2T\hs%c,}U@ӯ#Ȳ uIY"Wb0kӽhr"O46srGGhDDy+1qVwr9`()CNfxK D#<0@Z@9$4?GAڹ@{D| ,PP & )Si+[80{y37M>K4@U=@Pk06M%3!vw>u+Y$E?Yu*ʩ`(3D(`Y` PۻD`UЌH+9sݐB킆2韟7PRi@ywY;h%KNtr96a + ß='NFX 5ܠJLDp龎l= ˓ d]V?'<9_"acuWRu$Zy11umװ4W˛`9/)70|%q#dʟ˩1@u<;Z VH2=Tʷr ~,G);[u':>mj=R\!\[]٧m)ϔ}|ucōÚr7CGg:- ?j+PYr,S^8SKcj+ !zxMwɽX6԰FuTAc+{U8TOJ@ω-C]}Nk#!^IPcȷΓLz ou0p(MiT_lJ׭mkrvD۲6ߢ|eźdm(E[%<@j3AEY`i[uyQX&Sd_n~Ybc<}Av87o͍+,x0GxGRB { OKvdžXfh#lzB`k!Qdqw WE~Җ}㴇uݼQGI/^v#s5[kyo$\h>F[JZRj] uJGD/u ަ_Z$9"FL\9 G@/ì5=@l-P'ww^&FD%s50Sυotδqr?c^z+{y$*t5 Kd>weoئـ1wK܈%!Ko2ˬ=b> σ}/Mw> aaWA+#AŸA_1/"`جZJ+!» {'SSN_@ "M T~`Ss*ehY}\Í`o)Ki[#IX++-nKyps:#o= ̘wknv~r+!oC_uzi~0 9((-$k"JftJm[?¼|CZ%+#*kJ*{^,_k]2 eMޅÌk_?0D0ڦX(BH_}ݐw1/|]9^[騀[hnSLE0#pKk;%G Bki\~߻*(*5|]h!V%NpInG]nҧ<אO~IjF{}F-=h:^jS#*=0۴}'jf,j#}D0bR%V[N(e,CX4 ⍰W4EY'*xᲅߋC42;Ie _%"KѦ7sDՁfF-a' .1 '+jW#XM\r b #24bi/w쇣6A·l[3f٬v.2K4We3K_92ܦl&?Pٿ 92U4>0rx lڧBV]t8ΗIՔ*ݑY~R=c)F埮 }!0L|{~P6TQ&k9?{&<i^v&D%P| 塕CGJוE^X. $h_ĉejIfxA1(?GЫu?Q)r,k(5%d _vѷ*"!ܯVf5LEBoR- MxSd%"L3HЬ-lNE9_Pm*fŒqG%B>l۠%^ꨶSa]g/,wQе2%y j7l_:(PK[e=1)nuvola/64x64/filesystems/folder_image.pngUT ZA9PQux X{<v DSd*EH' sV*RmƨHOiacS:|2w^}?~ߗi[3}FCco>G !䝧BC/i q❮q H#H]B2&k0 َ-#veVL0 @xdNRllfY @c19?U dgpBCyBQ]N2-7$* ¿ͺԭ,DKܐ7Q^z{{UvNO[v(ײCe@ʯN9g??DU>B ue=0( rtԙ388mtABӅL5K|~@BTs~_p& c;;cҙ,zXg?дaM/]55dcc!yZ$SX U@mmm\Jr䁃QSjk!ݜc6p88YVi{w7evigAN9DRX\W ve4%Ee BF 8{"h@&+$c?l.nIgqW!$(#͗etAt^Zm6a`%mMǶ5m\ $QhTh#) ST\䅑@ S9;ކ A!<gG,'ЧGECy5#>W;v4WoRDΎ1O?~?=tq}rɮVmAkênw07 fOt>CN$XY0*o,}DзU^-n(y_0cOXv>`.&|EEFqr[8twk,:KHIc=2:admyǜNɂ[R8E(P\k}@GFy\ӎg xnW35m+W{fKيXh> bz>9rm/+Ν~|Aw Ppm/l|tc[.$f}Y: +K)oɥ YM[n+'ƷU[Kvv?HJCы8۾۳sf~(ZЪ(eF1v1X uK(ȄёicwcoycQ}[aW-f[?NIQB+Ȭ: =8&BqJ71Goad3ƊE^^*d[:N3|++a dA3cmk,8E,П paDT;e_BrRIlqdPjz{I6';;7hte_)/ͦvq(=j](+Wou-h4a2&&4l#oEk254:ic7 {;jn7m7j*%hm50clpez㻁-JrV{_cV!Zd\IUF)CmfGB'JZyg.k;>rȠ XKlL34OzŽ 1:IBe׬ M" Ia0Oz@GlyX2h\* OIBǰKYoz^~(hIk-mWzFϻ,<C+wSN/1'(38Pw/$JH Wg@NP&JMa6VVm T $## ng&I+HM{VNJW*zPq6!SN9nkh !/|d} C% ׳ž$j@e@V"V( j tMR;yƆRx5 v;7_TW{{uTPۥ_:(E7G-{^[>ǘ2|NLeE8}>)?6b\@6߈ ļ#NԗBbd_/8MX~%w̿2FZˣH!%OJMތ #P6Z@٢8vix~s⒈1EMrŸCǞ‚*yd$XU?j̓qVJXB 1%L)jαg&m<lѫ4Ւ9G5 YVˤWӖ@3cZ[5԰8yJ>H:XB>/ǐxB\:aЩ$<o3֚_TEVЄ KFDsW=WRf\&B<\-4˳ u"l2P2t/gW5uEN`D#a%P c *{LbGs%^b+ FNx¸TJ ^`kwѪ@i6aP$ĘM&$&ț%#rY3(Z% VЇ иEw8Y!nW>yvj7{l!ۣ.ByzfZ ܈l{I D? ~TV o)~؎4(O 'i]='Cu9rg37 JDZZ%a}UKd[ W 0PƋ%JQOCtEp,J ^_|mzY ¨΃xoªP5q a+Y0}Z9Ў%,Ȏ'xo2%&:xҾQشBb^b%T s^iRZͲ ߱ } n\OϜb0)bKf@|DuO\/}&1E>"n9Qb\y-Cbx]JI.\|S<0ٵګa| Qz,\/XLD9ٱ]K7Wako-M56E|%X'=W-_>jk!g ѽ#τj.> 4<>ºWGZaC4]ђD ޘ#"}ہPeD\QLdw4fI&PZ*w#d@Lo'4PV%onP]ڀ]|v@ *J\movm  3F!<?QH|x>dLU<@1g*X~;N+a*`x jfi§oj B{n3S_}N-\v6N(kń׾a8MSdaA2 e2phd;NFN4Fv1f`L`PWUW@q̠M^!*S*$ɀQ,cx\i&O@@ WfmИ+ج HfgzY#.LJ*/G%!LUHЧ}6U$wz~@ "<:qs "_/MQHbد&s*hseՎk O[+ۋd5AC[K۷g`b[Xp&6$YJhz1UU f~2g1H(&5ʸG.p*g 2ngێ"J9Tz5$#6NG'7O i.) ȵ>evN·Vn/$:{qLd}VO[y_w]3빆Q)NG_y:2w&xsnMvMro\n^y;hRms^~]ޝݧvt/A]o$!WAs}^QVN}:mNJۭ6 > &8_ǘs-dӼ&)r&xkOF}oTJUP?&UЮ"Xp/ՍŜ ur<<\qcMZZ){RM`?˾FRay5Bv4:3>⑄-J %oE(eŊߑ2DQR~v2Вlk 0OgzL怐c#˘p$\[m$W479fBTB:9Ǖ+w8-+W5q "Rҹ T42޽ @$*Y [yM %S#`a?p(@CD}t6V1f\ L(ɦr`w ?@^7\car"a|n* t3ܩb)'Ѝ:i'quF묰Æm}ְ̠uL쵃/{\ 4 i-]n3yjܾmPKXe=1{#T-nuvola/64x64/filesystems/folder_important.pngUT ZA9PQux W <쎍%ȦE*e[Wt7JYoMJэl"MWs"R\.y缞zsyysNm`j2ӍkPrfp Ӷ'̞pl]ȱसc'"Xƃc#cki;ߢt H#HG@OaC{Y CqI(=0F N:9m*ɛ҉: : - , k#}}RK6?X韎$5 !D||uO^9 ʾYg]K|Ň^I&vm8?1 nڎ "Qe/,]qvU)wD"7刦U`< E_m|S1@Wp˗HeǗ :Eŕ5JdnR.-Pð|㔂ӭH_3*" ;|D=<7dT+\(=9aΗ +5?fƴJ_߄Dͽ%K\#a׹`q6tgN  EXfI(A@aXY\==,N`C,t1%> _z~|w)u"F;&8@۠;~S3wYw<>MC|M>O~Oա0#R! B_/%s2Dd#ric6BXJa|tSHDs' ^yjF@oC,YJi~mZ3<95_1ce/Do]kC Wk/in~*~R րq#YGjh!> `ժ+׮}_3@M(_1MM6^5U~#r'Ӫ($M؆F3B9r VV7:*G·y8d2<ɧ^ ]J+$&H+`.֮ڬ/s|]\v( ,QAaeI%QF)`\Vi3Du}κ}0q{ ">h'81+jՈ]@ |pw8Lǟsx8[Ћ}-6Y{cÍFE϶2>]qcTrӛ'̧v.}X "7Ihx-4+pi5w@H.r$]jo$ -MJ~MlXqƍ!NVUyY%܄dnM10wGo ŞR,d:3NSyO0ӅvYgc tJJ{ʪfutm?8̵jS]Z{6/6eyq]!+S?ح ^ge/- Fb~DusboǍ?FxݷK5Z/3uhmЁJn%:nUT)UpiG!t'W'wʙ\!ApM&C1Q49 fCd>І6Jn3й-zFȌWm38ȑ{2=3YམB95/Z/|D'>[˃ \t:g<HE|vvO #@~|֞Bza'%aT"1۶(zrHXg)ޢsc J&S {]=|5P+z"ns@f\+] M Y˧B:wC`&^y=IT, zR9qTĐ%JbcS5'`E@tYΠGHi 6@]!E+_#l Qv⧧i+ rI'q.d*~F.v7ؗ}r0>?n#rðZ J|X Ɗ%Źceyolp[D'A5'4cZ) XW82Z`M?2w܄t|Kb CϟJ>Qa㿄055g&_Gܪ-X<4(1xfš %{977Zlߝm;wuN_ {^C۶B[ Q~Oem-Nkj/u@] dC6=r\[wRZ^YVb >+%&9)s>=Xk"ƊPCR"B|+pH>{ڸI|s ^4h,B̂P`"1>&!"IM8;!J+"++.ʵ|!˸ ,@bV/fګ}UaXލYkKrUܻ0 YaL"ln??w.x=LFk:\p0r1PC{'h~AXx)<L0kOy4ccED:{\d怄8PjlU,S9l:iN;;(EkĆЯ0IԿ %c~}?'WMi )G"]25O(gF$b%N)2hFz_ yM1yCiF"8$J/=/r:_qhIˣqe g=D'>^Mri50 )' v)yAqIN7g LfXDsVYE4bW$&.VMɓ 6 gXQxfnvY> p2'4،'IJKKK(r+-%M$]l 92я 8 $bHgF(ǐ'l j}T[Fy{߷eOL^\,Ed7l6'0bQH?g[/˰{QTeENA;; [{W}qTRkpkJ&V!|#e% 'ʼst{߇`Ua9kn57`=~#h'Vz?73씻ҋz]\B_!Lw&rIOiP-ށ ג$K)7T 1U ~tej=FbAA#.`dm~bαy䀥?~VYs_{O*IjIG&qO1lOjt-ـz'ڬ4%.6-K4_E2`|26T܌c>!d ,$s =̛3:AU2=8e[ F$`;VQ{_GU=X)Knn:!WqHۛ /7qsѩlyُznp5s]9k^L3 {t8>mZ#s/]=ޤqGt?; o=}h:cǏyWۻo}Wk$ =P0Q99kLUkPMbJJML#`70U;)_\aRodԐrp49kv]9 k0QrhIjbZ4IK,O`B YZ3^ $kdɺIt[ZdaRʻ+g:&~K'63J_"XY @rhux8#l)&e:돋S/+QiT<>&H6mV_Zqec:H6~5 KvoEDU=G 7?*)muvNFgU&ct58{}DjLw,՝@(^D.SK<:I%R'Hav (smE:nnxZU 8 ^9b` +ouUcF"D;>lpa T(j`rgiWŝV=v;[Ȱ > 戥 ~K -ccD!>7DAdrrثQJQS.ɋ].A8XI98;;3D$TWq%е0L}EOo牤H=6DG&s# )6Q|z_1Ve 6ˉNIw1LtQVc-猌מ?Hg=o^y Ƕ/ ]p0ЭsEAQoVHf7]|YL1}ϊ1ĥ` nѥw wKh6)"Å85(0r"(jH?v J7"4WgÜ{J']{}KnniٜTRA"ωSEG|&b1dԧ'uշvp喋mJ#I s5[e'D|G٫Nrwj?zGm.5@#S=-}Yw)nُ=H"5_@`SyQjC2c%pJAq{2d˿|ڀibNzK l10GUGG^ÿ1Lt$Stv#*ztvǼj8ƚ Enu0&Gy'$kkߡ=('2և̿ E?,}_=<̙!٥7$xRGݦN-<*y8D{.hQq3/ ~GFyi#2_Dc((,Cyb%6e[-DG%5 pQttgY!&RSX^v1 &iIrV\J3 R}[{6cXIOw}t#\wݻWȔxGbE28͓뮞{``>)*0bYDlrmD50QQk%28z /Տ6aTvSd1^ִG'f`0^UL>OL^QHWAjcr$P,2&MI \F a^M n L"|Z9e96dt€]{S(j#:/Do?ÅxϬby}Xau$gC8&&>2+(/tVa5pT~hok+AW#yIE+2 d妦mںNLziᐘ]'qS"dz.IS^'bPK.$qt>:4'bwFVyo↬ͳ A*ɩi';k.P8.M:To^gbLCuNw ͞yksGIr/ AFO#\6kAM#nOآ vd!H!vjW%ϡ0#r)yF2Lpqs~6 R0pJ3xD=(mL!/k74('cXW.^ZN`@l{BEe/'/=%n Lӏ!/4yS%J-cXWEܴ O7 o7XVk% yJ>C 85ˋ H9/5㊷gNgK',Xz BAlP9h \K;w —ӿg/f 3(AP-VT.6 ٠֔PJX v 8֢߃NuGݒNmAyŁ-8ϳVJ.$X/В$-L܌l{ u5?Sk~TpCםM6v!wwJR?IB8>Wuždϸyx٩/n+iNE|ܮU^͔Ɯ0_/n^lxeC0 MʦoLQxWʿ{㢞Z)kë4d%ռ0'bx[3lΜⳃN[O&h 1SkITBv(ckۿyPkoKYQh{ۿ,/L㎹ c XzNk +Pj0__ 3\ȋ=ӦWz Y1>ClAcf.i)\{YIY5+^{'& D6Y1*ܴ$./W={C2&>;/*{ ]ZSc~'RAk0E䪸. |f'|M}j A,vK2hz|| F' 5&yw@Pɇ**f pߙ+8v+mbowͺ  p\Su 7ۣߢ0Jbԍ%^$XMN݉޻/6VӀ .̃cPXAF5QC顓c> EL8ӹp@7h9aGPu'a$cB ߖdD;=>7JzGzUeNBObZ'{Sd @fA@u,̅A-Y83T2#9/}o޶f[ɸ܃iaHD]HAͤ|>I h!ϕr%XP9fN+::y,c &5/*}mftt6OdyK[Z(?Gf ,BFvQז Arov8{ 036ۺjzPKbe=1|x*nuvola/64x64/filesystems/folder_locked.pngUT ZA8PQux WgXYdH$M((K ]]AQA `@(kcY(X!Є@|>3s{swٴqv߇GL(w¤Н'6 ?q:X<Ft$8"l{X a`z掸!jaH6bTqu&$Giҥ\h2phO / R>LUs,ۨp4:)f&=@4jbZ*$S1=l/*O;gje`o9pO޶KYΕMf@g 1䷑ lͳXM[3;i7N2AjEj[[[yT JJFkt73C{>BJDĝf@*ӓšٗ悡 [}\Q]Ur >L.^Z1m74+qrUq)W]C%Ebz(V(Ć_%@i_0zܬ^r8o'[SWD%sC7"dpG޷lPvn;`(554+VʕCk]Eo~qp_:Ѵv?WLٳv=<7V< jEU>UVpǍwle@Skh]ɷq"eC \;}+d=$R8{.ʧWrl۶|̅ gn(=Wv8u^n~>-#,%_Ș IS8Jy<Pc=d9E"i˗GM@<(͹|ҳ$B\-]7ܤꉡi˗k'g<}mLȅa5F\\R =[Hn\0Z-dZp矓~)hc90M=re iSώgI+@j%ezk6-O_PZ)C1Tʁzx;ɔ MC;"?K>e->Kh)d=ZQ?WӚ+[Xw&# s;|O҅Q ])'Mbg.|];3֗z;\Z0m@A8 UN0$BR#m񡳧Qy'xq䞈 R> <֞w+CVVY?9Zu [# H 3d'jA3-`^7ٹJI7_Å,Zc졪D~i6?ױgWS;Tœ}@:668SVG [TB:8nj(Q0DᦆF`SYq&uϐ_-u&w&g$UNS%[wLIշMHΤvHDR=c.yE0jPZg!:ةg^y{_7Oec板ȼfVv0p@r8y0m%Y]7;st dw;+B/T/dI!/&Ԅv.'{z>*X=3Vrc>%/fbObÎ֒*?^y;ͫh] 2i=P+e|74)~urYAO n@"Og}soWnK2) _OWG丨&7E{iZ܁ES8.wz9 AG}wWn?Xd5ýj@{;j,Co_%`HE%y6 u[~yDrB{0ѽmAN(氭#N$%)o| h wȮWȿU#;MO(3y0yq3?tH;<Jv!VSX/;Bx_Zr#?k>_0$cMTM[TdNN<+l)n7%V(7 RtN*N0!jo2زLXu <ە+f,j9K*]2aB}hjjjjyB`½0:۰h(ȳK҉Xu|d$K\P]iSB- Dzqn]ic\;3P"jzs)}) 6&WcYb)YWf9|uu0Jއ+)zj`M{ӎ Gn0ZO10-a-M;+*,rm9VG?O&3 yz噡zwRYw}95d9oE/~o?0Ylڜg-TqܦCPF)4_Zy~]*rEJF%S]TY*E0L|E=}zg317i<3.4,~-K_1aߐj{nGSVovjF~?t[%HdTapuTw~"hgD>Ml  s;)'a`ԘQVF=$Ru1/G!<Ѐ~sb(璀,[9]1@HX)U ŐsD\Y^ԫk}!g+9M?OxD{ kPd79de#~ #Phj,?D5])Mחr;>d#FP,E#b~z;aYʝExOy+>Gf#Fjy/5nEۺ?n*+DV\]cH#GTqvdԣUYPh-lfehtZZW-jՌ\R:AkE[+V8HV|ߞ0z_Rne)몪99B K`~pRG&9.U+2<u_TS=kc#;NNtTy_x_|E5Qp?*mzf {e)1]5 `~? tb`F K^VDp({Pnҹ՟I"Y!\M&Fr_+l㍠@ rkAs%ꘙ+[ y'/ý$?pƅ j1= k\yw(N>IP_q }MsC}&W$׬ H/ekm%Ô1tXr7 *`zIN]<1Og}VP'־,XUAšʩY Ƈ:@{z}[ҟ1w {QEfRv8v[>4W?.]/-;ڸĜN//I ]k̠c.G5Γv弇HI/i+AnVT1( M."t=}\{06\6$E 9=a 2q;*/hWW8K̬WRw=vR?ƜvO Lu3Iղ%fݏ4f e׼GX7W@ ׈c<ɨl;yL^F|gOc2C-L4Ic388EO9d߂ zY!qOD*y7'iaٯ^\NHנ:}n}-';;u)cvO (~ }Yܐ+ %9|a^ۍ c&n=H%$~.'B0$ZcT\}|l6}=YkX|l8s>rjA[;]3-c(p:ArH$/OByD@<bǚzE렟vnDJc+ fHבvI+U[$tQ<-aA7m9Jo-IѤ{S;'$xn`W)I?W ,qxonZ~*p2i-I׎ܙf?v_"{"i tpTv?wDRKipwi^f"5F"Z`E 61dgNVr,KcbU޻t{'!V2 a =;X[q8Af9($nn̔OF~I|I5"ԗm+i4ĉ^N/S &ozl>KF97Q-tJFCQ+hV"@O,:-I](UJ@PV8<iKq\BH־.v!9g\9 ;+ m|kKʔUT˧\=c%G})83iM3Hkk>#"9g0WjÇY45,ɵ>AdF#L` P_ ֶV*1,R0|3Bm.dVx ڰ@aG? \80f6GmEߑ; VOD9egj0/v++gRXaa\Ӯ +apw< X\{ULTsS|`V \n4ѱbC}Q0=aiҦOfPKX쓎'N8ÆƶH,VcQk ~5hɹ"H"xـ%,!1# ]R%:,˴Scքk=sy߹/Oa2Y&g57b5b> eAjb]2 ϤN,㵪a]c#)nR,ZvD[οYf&hrlPF^i.rij%'?cȭJf rt"J g'` dRBN|ĢPgщ 5^sfDDHR_'TXeP,A3/vt4F:1pLqR : [q!N S9Hvf)0,EiNAUO[-I>=:PI.08-} A;G#g_%ـS6<i9,7HDoף^xe-иHJH(Yp#4)FN)d!1 R8爿ʋc1o5CaUgCɘ gU@l;>j{ҡk'!B`չocty+x谕YA/u%ΘsCb1cU&G_U!wʮSN,%ΤoaEov@߻w dQV0zELpfD֭axJzov\}FRrd/0m)2fu;z^4?x^uUON7S,V΁w]i跨(Rʌ !&XEmeʜf̺3w6C1D{cLE,I7w]gpO\8#)<.K=’&䲃#T-~g^E>Oʵ7L@ml|7ͻ \N9/O: ֞iyI7Ye;Yt`V-./9//|]kh5l(ƬJ,i^Z)jl^>uj!eN^ 9"n6bь3۝V+G$4=~pWQ˛y+U^un`e l_ypЍM?PKOe=1](nuvola/64x64/filesystems/folder_mail.pngUT ZA8PQux X 8|%!E6]хZ х\!DT1~1Rs+R a]Ș?sys>yy]Uyb+c#'RNlG_XOn97*%8p=!'ޅ8).^q}Bb0&* _QX6\d}+]*9X+ AO֦VvJ8$$޳cHɃI/)RTA<p @YUgE-2xK, {(~#8ZDrd1IfgO>yО=)_QrZ:r?&˨ieH5_3 L2Ys~cemSCh͛6oA3{ zz #VeNݜ#3S^ Mw̡6v2pC,6AUU׏CRP`rr ^)K|/*ߐ#n->I’%Xg] Bu< @{W~իW¢++^Sڄy&zy[0?7ԜCr }FZ17Eh0~"cvȽնU f *Ύw,- hoSغub!- y 6ciLH\ d/C (D{b+{'N|x|4饥eNM k]~?'e0/=; īv ].=}EkϲqݞeC Cu:j~rE1H٠ 8:f=ʣtl 3cdWWery`ihyhʕ>uM74 tQ ނi%J>Aؘ*6({[z$箕|<VO*te}c~"z!1%~?e+ܶܘa[;9 '*pYPi>MM QX닯^mˡCQ&`@6}66եsBo>NHU4*svt|&@=l)pg>["4*wu &![s(VJO*`"/!rG+! iϖ͛:0LݭwWJBfJ:nq:+狛h %0) @tr6 Mޟ"A]=EЮ^&o.8@FؙCNxqs~ףiUEo6v߾oYŋU{Wڼ#Q%CNDwJPRcaWah'gU;_r_ީ/MY 4dZo ?#Ȩ2K<*ULQթ71nNK/{PNi.ʣ/Q08.ct\@}p`yYjRn'ՑTRi!RyTmzvƠĘ tۗu|0o2|vzHH։- oi1Uq^->] MHUQ"^i>.DqFљ7#r~p{#^ Oo.Z/h_힫**-|/.6LDRyU[Ǵ4̼3^q^h֫ _ժJh kmT"RU#g@Kd2 4CZ5x2oo=^=]Ihi*3Xف[Ŗ?oCJY i)/\wq,OuT'tQqYl6Y9҃BX&1&(Ok@Wɇl͊\ hGs90#V@BgEkmN*R+#%A+[/7kwHUk[[v --~zk|z};ŋbCX-"\1q jov { i/ J썹+ 2ݼC >'=W E2f[s @lf˔K fS.p_\4 Zk:K]RuW75*HBO<4Cz5_KLͅ.9`~RuQg-eGV-z<*C#(0Izk#ԼZB$:( $O 7\@$gBJC#B)'t_ঔzOk*5u7:]J .jMb&ܺzK*̜1T3zmOkU46GGv#^˹ضmp'EzS3D!:;@}!\:}aG&;;or;2O1sY%Jnr Ksa.ɨ5V U#j.; p+ 7\l'J>BWzXnɛ ވK* ΫtG?0,vnTxNpAbdz挮 wRuҒw$m BxYVu6EFۀ)MdJHo84+5,y]ӓg3k:Z"2 _5xF8`f:pA;ҽGqr# [TAj߇^6TP.HH?3.=FR>FDH@#VζRt ˼VuчQIPnH1i ZwD9V .t!ćvcxdt~FvǞi\+Z(~=2ı~9pe~5h;9Z3^%fWdGmS>@vEpx͗R~Mv䩊n4ߐ8t8J`e: V^i.BČ~ph.GORfz4҉e&qAg=m2!R3w4#FU`2R+ r[mӴ'L&]RWW'W: + lv ?iɩ~u>i):9zjڵ{`_b\sz%#ir\4KώEh8[, |\ )"zъQn+No!V_Bfk9=03$-EUSb[gއ\I]o?GKE 7u4 tN`%P9]|kk\X]i8CJx#DLF8bQnՕectK0ZHpkrWm-<^-l|@(+;Ynpg%gĩMH}RW=IԧtFJRH.]KN{-cm[EjXu ڹAa>rJ^Uq6ٳE$e8JaUzmJ^==;p?',N}%-Y͗$Ў! ی(sPTvywNo~Sy$eg/b}"El9p``MV."Sڗ HG(@ϵku*oe^dfd/t I*&,zoy9݈'y_O1Bzk[N+x9_65@R羔ܩ: V!k}҂~'qfܜ3t8anH[ZIό0X/oumtT O1ݐ?d-qzzU%]3pCXךY>y~ٲu1XkWݳ ܑ5voϯ7.T߁+ `/aFfݹHw]Kxq=mϨx*yLN}%sCD¹471*VR*IavoflQ)um<638LpOAލٔ넻Zv_P/eӁy( 7?TY/|DLM"SY9o|\Պ pcc,v'")ׄkka;rLڳsXxa!~>OPzEPRw|m OSL['*=/vF~ѩO[Ÿ~1%I\^sR#)TI#zF&z\n`-$~DՉI^$9[*PR{T׾S=vG9Xr00>j%U61o -diV0M)$lA}"@*oΎ,vhG0:N,O~-jD^9e{PaҒpKV,^E$bKoمQ60=*aptR:9z&a+/womb`wdT;hW7֪9ݝ=+:m 485S|ocܬW k Ȳ06ꡃw]nEK !'{Z ڲU߃rB2Tw)"< ̓Va35|Ӌ^ c@vun:e=ѻ)}]"[GsB3D%1B7!u<母 &h1\MHNv 2i<<H9PO0jQD[7?b+!go z6 LӯZݟ>nWd@(ُQcpTL'>rd z}xHdcEOz.4X 96iZZXui̴)Hhnb5}ykbwˇTӞ'D6",ei)PKLe=1r 'nuvola/64x64/filesystems/folder_man.pngUT ZA8PQux W 8T>3cf,G3Yg"3*T0>,WZi6Ʈ,a4TD1ZV/E&[B>r:uy<}_r߽UW{6\7U(E#N{= <s&` }!ĸm~* &vEj%V!V[XFoOtjd+dѽcBa+g3ak@/SS֎d)oO.CcGZˢF;߇X b^ǍӨvt`ڿ]?]ik2fF00\hWqer3^H;n-"Νql/4ʾ ]tLj8ŵSX5% ~ϤJ) jɋڵt?L²'8=?䙅/ۑU֖%髳 qˣ|+??Lyl6?= WIY,۾M>[ ;'NndfZ[w>E_9=b7fOơI\41 KK?0 ϕpnX 9dWT37SFK%4(jv&ʊ7 r~_GSBTퟠh ^ɮ۵ޥRpЧ_B Z~~J %ե)B P\Rr묭 z~k֬yW tÔmx4varD߷nL,p6DOD <$004srz~/SO=l$@%V[y+Z 5d$y Y%b^j`l" ]@8#^4 jnF)~6['h%Iug $pU|I 0m3u\]@@27q9p+y Hc韮za~]Ϙ7oG"RyeI ZZ\1ҏLljۋ_ 7ogZb#ˣ:1ۑ);TH~,K 3O/^n+._L~2CaqE@x:$^"(ڱczQvwqߺrUMxoj*AI?6j,،L݉Y&Pk: H>Q0>n*Z ɺV:技<) iqpM.,h/Dx0w{~Ww"A\nnٲ 2HzhwDƢ5b~nuUHmkjqN`msc#qik\GSgh笨hf5MnX8 6;V ;p%Y8 Nt+s22nJP#j&Z'J5(ؒ)srbG-Z0$EGLz>#Ͳaj{6 Y(Boץ7h)L^FxiszwÂ_9%;A FJX?B[0>@E|OB[ȅ QkV@>o_-8QDzeҦļ5Qu?|][uu 'ʇ/w6-4^ ņ`#&Rh1J[ͫl4B<,/<%ᰁ6;,Ox Y0 !JvO_RE*% **ﳡaW*_l  K W+X ,VK]R~Hm[|k;D82 F6`W֊eн' wCff>M=ԈdP:xZu#i\s9Nb&̈=9YZZ4hS̔ mXyֶ¬ڡt9yo(&HNh-r$ʃ`{ՊV;/J@ojxZ/|*RH>!= E?=q*3oOsm/<;;~'09ojs=Ie9 (0*j\,woFZ(waދidk@_\~o] IQ PWX3$@{ȧӰa7U@;V%&P!8saLH.p\dNBOro0X+L:^<2W_-ۄ>qAg&Y$pV/{xW%ʑL)TPtvOcC QQ̨!nmEBt͋7uM>G-c3Nws30P~c<%D9Xtn:|{}L-j_Mss? Gz A-OFjk ;PU;i3g39}wr$UuIg}{5௶#ima%ou]ʂ}`*鑊(^4PWǍ{Aœ|'W'rzaO>T~:&]bW{[4YIR\!U hFqT ҁx="Gį7~P!R}F}OR#/Ij/^B&+ _5(3 %n:bndM YL1:j2ık=ΣBF[Qy 4+ JU< ht)MWs*t_6pQ QX0|(¡`U9tj϶7,3R>fkmǒ-M*ia AI#¹E8Mv%+WH'>.N dƼnθx/ZlCUWb[TUTOp+ ^͂7m}d8ZhAQC)ѐb:["aK#? jc >6Gr)+ jaMԧr FT*.I 8E ~;.JnԊg 'R\^v*ys8Z鎋,N.1m7O^}i x8*6$wHv!IgS>6z%Ehy, "@[ @$/`7~|!\*MVK_D_i)t9]&xsjYlqc h,l-0OBo-F^:.jy2RkI|&QD2b\G7y9=uܿ4~ (rA- JY[J"k :P^(R#N{ 6K3kQe*9x}$ώws sR/ΠՑj$Kty.21A]zqTBVJqOˣAϿU >_.^ʋH|ɫWe8ϫ~L'?-dj)7X[ REě!VmNua*!4%ItMlij\c ^jЁ}Uk꯫^Q?^}jōRU EDCF,">6C 3H"S @ |b~]sUc#,H@yr|E\@O;`EMsR#]ƃ>+Dz%u7w͛{*3P Jnm15R-._$4q \ B&q ʐϻY.W9LD]|δ jnyU"6fޅ7QVDXUI.YlUGŷ LZØjaոn_\/Jym*yA2ԷZPk'̍;#!_m2nQU44I63bxj-b*jՖ!FU}wOUOʼnSO÷i|Y>엿r5/(u~ˠxaV#ƘlAԠhߡS0Ŵa|D껿K Էt6bsuQL;̮7{h"~ԒģAT\h<<+Ra"ZK]ڢNęp.rXst2BtuES\Q#SfsÏ=E^a՘Xuj3u-U *EwDFLt_R D<xļ>!E88 $oG:Fy- mmƩ =5oL A>>K`K#|UOtL&^5L_;US>Z<ۺ"l:rA<{Hd,:r ?F 7PsFs UP"ιLNqdC6 -#ۏMrHzR i#ieAkz#p շ׀P>Rs0m܁–ݖd$HY/݅‚r:Irtr#8֙$JL2|x*( 8#1ke"N7 O2E*Fn+h?U*&FО{|Xr1Ԃ:wL-ڽ{zYEب!P<ޘ qo9+1Vb>W#yo8_Ѩa|eщƠ@nRԇ%GΒM5eH%t#]._rDuC4'knҥ`O{λhmSyvA͍C2_mDTɷ[3`~7lFB\ꚮ 0M)%qxjϏ"t )aZX3+)K[ Ͻ',\">KiJ}"oLvvA*Wp/H@y K9ΓIϪx9MQN)PZ nt6ݮ"޶KyM9 rP*~5S' E!y7pT{Bf|)U Cɐ$?/!2((J(GkO}fƅWv@qeo*j>5dtbǑEM46:O U;=_mdقy7[YWY_F?u]FZfCҬB+dɸ1k9Ģ-^On[9W&dۘWCL7 9yJsJ^>GA@_'j_0Y(\7rutu*K5<*PROVO^&,y[)=q 'N:J37XOБ/?n-mIK{s.8OBWn*1IW)޽7#~ç| Ű9hr43R@*bP{![\OOqDױm=yYwg~]%AjB{*' Z_Z%=M,ֶlڵ;8Tj2Zzؓ﵍][3fytƎNbcc~LZSUR.^𧰙̰SV|Ik98HK -'ddSqj-ч//w'3ɵ0 G]/͈VP^Ҧ)Ɩ朞V 90`c5VǶwo~PKIe=1ə|c(nuvola/64x64/filesystems/folder_midi.pngUT ZA8PQux W <gll[dS" M(E%bȡR؆F)1v0J%TνP2&6=<}~^}o6m%Zh{{yQ[ ȉ~AD{V'1;ԖS{N K<LJGEG ;r]?ޞ_ÕDyX 21XTYEEM?_>:ͩ N~{_'+xڠHk8L1O=;<_6E+5]ɟR14qo |hhi ECq/񄸾چŅ14:!Ȯk1$SIN}=gO?L},*d6'H\ őkUcdfT讒4͝Kaj*Gtz%xnA{ ?r-v%n=ï)䙩^KGFB{:Eٸ{4WV:zlRPXhD-07i%bpC7J7& gE1٘7üNiw11^z"X*Bulpˠ6u~n%ԧEeTxd57Epd+H5QM_]+]Rz@_K?mmmvqK, ڐ\M@%?0@˗=;z9}f:]h=3XFYp_ҬI S` '>y#o""Љ<>L"=f͚ 4Ub<OO7wTsDjR1"Z.Z>AG?XlOύ4B{^HWі6ܸv[.R~&c-,a9)I4$ Mƞ]sgQ4^7ŲdwڱTj"lUXpEdbWյK2ytc(D[ddV~EYBT6ʏ[<=Yg;Q#lV b;"a bJ"B WBR,-V `Ua201vyT)o5߲Pks3Ot{unדiJezxvO@r.t0<]qO'C3撅sQlOFTJwayߪH'_jq8QliǮ/`~k* ĚC6eq4Q[%^1}ݕTAXX,z2x/wv WiS*~a7!4J6hKJP͓ߍilwJM6ڥ\[_քڿ .)INpN/DOgK@.nʷ2pdE@Wҳ{'դ`lY|k~ix `,[ƌA)pڤ;N<dwL<3dG%z6ٴ WEExGV2ke*Ƀit_IDѴcHHuNJ 1%,  -3E? AD;SHTɠx3{o`Od w'^.tUͰAŒR\o٬ 䖋u+liMb&H敨9 흄KݫIkCˑY_R(ݞӎ*"*%dctvR2hpF |Wŭ8&Օ[_c8ҥ촾'i5p=2}D5`F,j4 3,ۨ>rS+h6X [cq@d2[ttoobi<N=@*0䙟ҩQut2(7UFۺg~s>e{4Ǔ_#^S'_Ejl*;[ZB}sE? qn&kw ;=>zU ؝bT,N1$(a(KR1J^kK|/bG&lײ1lOpxՖ-A*7=GzpdTˬcalq5aWF6ˠ"A4)CI*V3LF'H{<~E)XZȡ#GP*^)+' f$`uS׵644HċP$:j8'›~QY)V}e)&9>p']wKMz3kc ~Ky`- }i~̻ n8I;%^*E;2uj~e%QR1J NG}EEoX03Z>c36،].rDWw+(+EE˘ qRO+gJDޯnv/u:*'7 oxhBh;=MVeoIr1_JWS)rGzw}s^9ie͙ Aw u9] 4~y8𪽽RS]CROtA~*.1=.$*;POź /"'Gu͓`ޫTUq9Dt)lYz~ 줝]@d#S"8\J>(}6?5^1$0D^XY^THj–EWe=6Cf+4mbT1i,-C$яTQ@4<|o$5?mU+/~.J6l8VvvLٙ׼R:Eh[)g3_(E_8g {u/{Wu8ExIҀp7 m'(lf-`: 0>=nWu]xt:)Ǵ}1f4,T{Kq;H.]|g-IЩU5NK ]2ٛYD,ctO_X``'ϋEE+ׯG՞w}Õݹ-#aӣv7)- ]Pqq?}t]E%hbEcp_WLQr+B?8zIL5ZsW=Yp69go5!(@sn bwE"d]<2ϑޝsg y}\QGSYiE7*D L .?vx%9eT'1)73_"Nks<{ { 󹁃'-ʘC]޶a͆GUkt"×L\&B>m 287KM S8vLo~N2ĬgT*e%iZ"5ڬ=XrJJ!i]پ!2%[{KbD9)>*Ԃ?CLI &_H^dm0fBx-Z#Chjc&^ǃk;cqa݇o@ԳuMo4Es2S:%u%E8,_ߩR">U0U*7NŋM\j΄ M < ln䩥 bz̕0% ȔU%q<cSE.%8Юܵ˲Q2>Cxx !jp2zyWToCGCQ)Qt=(\Mn(qJlrݳ9D:m:AXfL2Eb@h&hicM8s%^py3rtd ˚tb<~MڸvKlPDmmw;A$gG$<x΅pݰ@tKA vX Ws ]#(6Is߿{wluq,B]ti؏s99'*e؇I_+J􍝶͒}Dp'۰]+wEG$|>Nj( 6BTN) }ip7] Ӱ_ w#x l=EcaV+h({#WJGU+ړFWW]SԀ OB< [Gůa%"{N)v#DB/8c{n}ILgD0r6:M\b2.0tP6t-)1r0Zneo?O0sKlFoĕlNAYAmsl,#5KVO;;7/yw_Œ`{%Op8UB.;{ݢ\~KߴHC%@4*[fLc VB̦ ns ZkQ?bs Y8Z/I*uj<+  zoI b#k&à8*Fj~4`kV< :q!LڑI4@EtDF%).bJ~c&>YE'2 3EBe!k+RC ́j<͆k&׾w4\.%чQL#Nס{LTL ԭ'EK İ !ߜ7yf۽?/@h={ h,TpzIKݒbSs7ZcH'r ՞:d[f6-"bᏡ-~nheKWS86zJ%V)FQ@Ek+/8F7y6t, 0@]SأGaF!; {YC_}~|m}F#o]؝xMY%`L>H]vom'ii0۵%BfL$8rHcjyot=PK=1bP(nuvola/64x64/filesystems/folder_open.pngUT hZA8PQux WG,a" PD$, "*T AVDEP E7BX<UEAEjš@?93s93Ν;4cV=KB{U VPx}-;ĉzvYGL.EXZ풩\viZ/;_ك]Ȥ$|>~ZĤ hb0OqaPG`&\|\֏HCx&E.ڡ8.kZ3|}y.h`huZFi1739P'63|\zRՓۇ3ϓH8 7N\QzñŌ)Whv8W8sn\a "=_<Lt6Lam=;Rv g  _ f7Tu&tܪmcqH]?-ICvZ{*_(~ZfNZV~IHxK&dX :kN+-}$-PtiQWzmWiV,v|)Ќ\veK(7E1^k+8 vuMi*#\OB-l!)?y(#gO خ6֘`  wn,|NN@r%l q E [vSȥ74>J ~l Uïc`%"/455nMDT`ڸLe[ci&[mCP3gRizZ鲝~J'˔eSKYK9A VqjqzةCFu| Q^r0]b|n*ۄ5\-ѽl9"N<P(3%5"5+6z+t. gjA1/ &XWiLYO:;VC+ mӃ܄xUAzO!66a4K0FiR9O ЀRyXg08VA6t܊9tFO: P8QQѨP5`[4d.u%~ŧmJ~V`UĠ9o)>,RiZAݍ:UP!Z>p"럲aV,iq#rV8ΚEvvc }b|Nz<;9Q YEQ`fBNJu(EQL9ޞeegeύcSu 3[1QР}7|[mXG"e Ԟm!Rk3^vaߙ oxPetiZFjÍ;5h&Dr﭅^G1?;/bQd<V@M A$g)(miD}6pNH(+mmZi풞M64vbRyj] [ ju ~U^o"8E;W9oKU ?;n#"; [aE*x(CƵ:E Kl5U}2&(6&Ҭ1͞,a3UQ$E@%V+cJcq#qq#1̉1tߺrcdYߐ)%AAnW͉5)B#j_mb"l1HL0Ylm`i}0,*&69ĤOqaLԆY2̢st<C&.Ce~P'"U&b;뮠Z{ KFwM=&|ڭ [{!=h[*h-b$rsROCUUItdwhNS ߋ*Q~ YSzU4ht1!#ìr;^*sq"-*$f a l< Nq0Q{=w˧"1*gN&YUb-Ch F?ϙ1Nk0nk·Kڌ`xcߩHl,+0 3Y8/.,5B,c@elՈw_ YOTToG$p/J$& ֤l'P^ډ۸tJ kԎjJ``?Mekb#LxbCxݤH Jн"p'47C wF|t_I#7^Kkld+% kʣƗ]-P+d+AbFbdvQp [fTgaz6e-޸[  & a\ o+tA ` 0i9C}}XQYr(}S!KHp+/RR>7顓1¥E,l n0)Z-DRpp*f!ّD%,\hKِo# s"y}UN@.&HA epQ}HlQܔ+!\D6{rc&~&V 5qSx - }; px@hM2LC!j'/FT~D'@g—F37-Z 94]0 KU>`z"jKüQ 8v k3_[Z=;ߪ@, qwy;pqI=d]`*(Pٰڡ^1adZIe pr l-p &NKUӃۡ@WAC0R9J6p7MypHnwB,:p~HEf٤7ET-ixP'j%T%6qZYX$'IUB` 54g4<,|ZIEvt]{F|~Āw˵GK^zpιj;ҧq ^/R4,~u_<.,d1ӵ4HJl_n(wN#&.@ݬt7?H`bd/z˚]bO c M gJWڌ͆b[$&^0D}_Ig2ffܸr T2 Efת0ۀIrDnQwҀpvmcmP䛰Ҙ9&ל"=D~=SCx/>Bdg}V3譒 –+o4v8!e|W * o$08J=׸ 6̛$yt +A3XOgB692;>]!e.4& @f|+Zy֭JPWwOh breJvUD9>{lW9EdӦoX@-=ӀmZ"tG\T ^Nc#+ĝ\KZ8b+  B45y19k08q$}.]kkٓl3M{tOPǞqO (=Q97+ .YKqhvظfƢ̨oR*GJ?$CzڐphF0AWqi7iOh`_h<@?lx\[>@ I\+狚\juA=OO1k4 KwuǾ2xOF:vU U^3gν6 Z]iYHd٘^}pD A)0?|/$P_`\Tk 8;b AqB&|#\ iIޞOſviiB:P}~/Nz<߂L(Ѵ8A]]##CDgEU7^){~V2; 7TOjɚKi_;qxJw ookouU$0JVG=/֗(; ZQ6@jxG]I \β(w_{zx6 zJS@՜cpXXn_4_g]X7קjV4JfvJ`ssssN%M`}?&qErvoj`D]|Ԇ'^ e8]QWáR GʑHb0]1._KOB_hI=V6Dkqxb{nB>AgaɅ 1얖Ͻwv E Skr>fne/(\[P#~yzBnʆn(4zճ]VVQ(ÊkV:ܿ?ֿ\N|đ#G<(J c` iqw,Ǻ{ ΁h б#BU&hQհJ\[s|5K51stG}v+'籫_{['-vzwY=; OUdi޾¸s6JG 6yǗ/!ONhtB:ѠJ/3 T 9WW= W*aieu ҪH_}>dꏪ)JJJ a3P*Pi&&9ԜkSac](Ϣ2I=eJJM`oB3٫W22oTk(vӹj]!8գ) Ce,VWKEoSj}[?:]oިŁJJVK']Q$@Jۨ0fL*HZ2&ä5RAȑ"2aHy,"T'aQyj?pzNG3T=ڴc ZEp[|h~, b0[oie2neC?,Jq~6D7uM$2ַɞ?%?Xtjz3C׈#${a &?fo5Qw?n>ețƿxYV⛠NgƴG5ZWԟpR>b[lޚˆWy,Bs*Sv'4'HhIMʍ=Ճe:׿FsUQ۹6wY\6ځϩp1mW(;!z! {%k3U\z9q̃I0 1 XCFO*AW ~?ϟS1~\l0cx.VBmnvuOM!Vó0[,oږDKUĵS qy x }C㺄߁'O" 82?hO rm"mI8$qE=)'!9&%eo^ިH`RCY`$*Y^e1V]/]W5C[`'aJ'Av~FTح> hĮ@a柋wA{jNUie2H;$ژ c@ȑzq\  ]nz2Z)6] oƼ<CT0,_+@J59- HY.[ca_˿YT!/ӵ,rA7!=fz6VH(3I)y>gF$]{l֜j{(jK#G& M i-q},Ԓ$nϮS/Ptލ]ejTJi_)/0u5rο}=k.0t=&,M.?/'7\ :Fi҇*|uW5iS˼ h.# ~_=lFC] Ip?/Fz0w"+γIIߑ,|}sǿ@ \x9kk,󦾦vzu1 a+yUA}K{%SZs _ԡ7\vEӇbw;uBh2uslDeökL5$!c W2#};q[`7in[$KCdܑ/6M,ӳxjC1bw8 ݶ2PءhK\ .UTV   $Ưb~tC4 iS!L\*1 :18Jf t9BҌ͙$; ƅf.#9/P~s$; Jh ŲvyH(Ӏ$) O?:q)ܫW´3'g8~nGcYjv`-[|?bvϟndyC&4{h_ޭꂑGe3T@jr /užxeF Ƚx#.pJՇ'_>/q8_j뜾I\:Q&ڔlq!7^q˻sT=8 rf]%+AdDp?{Ze pc$iȭB^Cj GODnޑ⨹2L}t(S5^ү=5 6 FIM˓QOnޮcBK±iL`Bֹ ']?(cӦ;􃾞s0$$8 a|)K6ii:͛F0rk;*hh k[khQa 0i(k爙* SPԐ 75JIDiCO|5TfPw2ǃ۱9 V[fophl %uMTlہq/}NBL×SYT D8"\s{؆ 1RR Y0]}SMhT1LRBƳ۽?1/1bˍ7l7:؅2/ݿO`ytf,}g.NSS>arfS՘F A\ʸy0M(KC/e3z4 ͊rBxVD]A걕\ j?ڗL]?>P '*4﮵ʶʅ/ nsX>] (BqhXOIj‬RGMav{=Xjee@GxN;Gurs!=#CK~cSr~. ~| 'M&tZѰ ,( Ao!@Hݴ_󿪃zd <:CRZHq\ɪ ]cW :2 C1d CP %.y&W'fخ|@u.FBU'U`j J[Oj}ӹ@}| !8ȱ9yF yk-T]j|f27/=Ωפ.x헄>J=ZGKC(JfeKTT37iRG2"!06UsVl}LŔƒ猐nOzs?HO;L?j6@󃕥YQ^`a7 $ҕ 59azѺr]Z1,˂’o2NI뒃HfMJl`X=a .|47Aۗh}THd^&WĘ>s?]2nEE+B4sF5tԸAxZoE"4ɼ<(}[Iqk˝12:t;AmĈ$ _]" ~!> ٳe׈70i;[ݷT8kҢ.7FXoDאSK:~c>ho~a.] u4oiݓ~i-KsLgeHO+P v5j{eqROy$hcq4o}^/e2(zḅBU!/ 7pxkl[-,c&<aq" /tSv]Į^]3sEfGέltQGd%cKbcSx#GUEFg{ Xu!e[b6Ę#ؠ$Eۦ}I@ )+x;|CJa֖Eڳ|_gsgUFW:ٝ+YtWU.g&TyΖ1d즮FƏ]V9kΰ 3g(B**\b#{2u.:XwIpAҤdpqxvD-<'S(0j@KI-uKqm`ofijt/'4; ppxbADZIu+}'$p.l$q:M abta`-mH%]V i(>dϧ;]H -hfW#0w乇YtB,d(D+_ 0"(J[Oʥ4''Ɓﳌp3.!EGZ:›._B63o44]QNMLkVsY/:,ٔ+]c23)Ev6UӢhyuYM en_1Oåm5}~#^7K-"*U~al1ybtηڭwnڈ4,bS{ռAU TZX5اD*g?Od+ј7!vc) 駑v 4v7k1pSߐ?2! >.Pyo <ڑ1_GKjjPDӕU=!zF(jIvyUu=7SsLwXy*㨍_0Siq7埰/$c9Y$?ʒÕ<\eW/"),5 JĄS$PҰXvxg3+HCY ZXEb;5],{DԆ[0y? FC.W|B^zS埼L/-;+ٵ(7vR%L|QFSɞ7|BGCͪ{,#R[,W^AWأYu5':Ɇyg&Bt;Ϫ0hnpIBE5جɤ2ӭv0Ħ<@ItAF>C Zv:Au 45./cCl8nc" _7ӗnj&"&.'e )|\lDC:hpi<7QogdiVøs?8(ڐl4_ۓPKܘ=1No/nuvola/64x64/filesystems/folder_orange_open.pngUT ZA9PQux mXiPSI !  ( IDPTDTn]HB0au 8: D%:.EP, d/3U]9TƵFVEg֏'d2c;WNկIGDْt8P"HHK$g&'F$22>MAqCJ+Q`G6`5 LOyHj^3UhNGbXhg uO=J-Mߧ.5u՝E-0x1x {=GaG8+.YfH˔Ѿ9>hmh`Lj P"5b٦wI`:Sc~5~'~/ؖG"^ ">g?#ԭqlgA06h&\`nrr[M9mHPBK#@l[(Le@;x<`~"<ئ<&q^Ϣy&d"2#/pv\2iX#h_m-s09|O.+Cőj_Ćo ;9W°&/jJ7J~wr[?iƬ>0w⧾gh>4@j{q9RFjr{LbЕ//)G׶Ǹײ̫rjejn> rE3PBez2/}~Zd>qKޯb~ϔFg wz?2Uu9 HQPAѧHļ3Db_,4Aԡ&Y|ؐ։@@֛s<8L ԭvr4]]rY8Y`\D8"v~[ 휑:WA*ĩG#C"h#:6%{̒kW{LB٤2dvEx)ٹKJt-p =WZ,$X@|MEU%,rOB/q`b<^zpe%J@%eKVCɕd/dUoHKwҼ(Xp#EpO(eۚvpc/Mp#!B=ڞ<[BUYY.Q'"'s l Fā>zcm g<I\՛< <]57mCRތ`'n-k8 v!#+r6a9._PB1E[W׈4O[CAw`xvɥSEU`om'FhK+,-ķƿ|!ha2ڌRܛ6D+ hK2*T"h\̔i)Kx㧠_45?46囁NB-NϺjh>Y4iī Lq$--"1LJd,R;S,>X\3yrqw2 YlDi)i^Sk)o]i7@e1/eobCjЇGhW JVc\Q6c`wvq~w8aC񄼲>y B$`]ڟ<_lc0ң}se!1Ɩz7gwYUty [5u8y+Q*IL`а,郹?7A,P +^m.D<1ܛeX4\R\<* !spDQyIzi0b6Aoـ6ao5{:a7E1iڵ:z߆~$ ݐ 5D%rJM, xm), =U~ ]cLfYH$UBٸ/(fM<OL?ri ;ڧT2|z%RNny⧐@}=2֝g&rP>h4$OH0|'M=ߔG<ثHLQ.3vQ-J_R\Jc=v/1N^-2rU#2t 3jǖ[l؎S|vJZ}ŰTQݱ PiwB] z ]^ı͹CߢӾ19R)#3zr~&6btu7@ν`_b K.F|f&ҧP⃝auT8}Da=g_7ky +qˬAkӢ"榄_3(C9b1&[pJ#z> LkéhG*dcaokU08ӵS%aD6z5 Y7Cgd n~ ?1m>zS=11:rA6G{ Az){[+RvO!צS6eDA\*TIhJzÜ< !wL!ES(KnB sdeϒwᆭ;hHD:0-MBcN{Ɇ=8%U\y h1NKݡl%ms ha0,x @gZr7N3_^ At-څʆu !i[VX;N9bрPcEjO:xE9^ǭF~g H$[h.:gt3J.✝B/;Ew.:NLo'[ 3o`4xaǢ$?@KCR|D1ҹ brjz܌:F]X|f<]0 o*Ha|N [쀔 > jfvc9sW!{1KP#7 As&"%;g])EP1Z;>#,pmj3;I-{zmл_t*fDxw|nLȤv1& Ci]M xkE}_K؉(ܲ,-U&ͤVHX߮S[+3u.32s̫{+n!ڵ]}ȅ>61mLD&**sqfJzLSWw{Uf|VYvp3*ع1a5,L@rqZ$MG"MY?~wg,8L$]|+ZS/6ehٵq!|j; [*6.Ҝ/[Bm~w\Ҕqeczzƌ"KThb7|sܻD4AiqR itryG|cקR=aV}Z}j)_9vOFAWhSK]!oy|1.hЎ>vCE!JK Fe҉TMu̩KƒQ3^Rˁ/ffl%D KD%3 ^g< D~^?Snrx̀_t &j֪8!er/D&eѤQhu9F_M89:R SkXnIrF~/#/C@╮YӮ8r+JCE氱IF8(YlX %.J=h M?, z-"q8J[P66`T+E?踑 YbegX"STaA@٩ь~h}zrCHբU >pST[B + %q@Gj3,Ea[Ù&,O+6R25/N:۞'"y2wob#lZ$9j{p7c:@x%gLN$Vme"J^.64D<"|Fd&JH٭mӖϡ@ 0arMݰ5+~M,.PL=Psfט>mFj]m2`6D8ciUs2h#{&XR `*y*q-N;_z\8 FD (? o !"u[cUA_u*,/1#M\\Ki7<|֮*!ץBR#miNJ9E |n{q${~S Y;q5(8.k)XO3r`Kn3_EQ'b0OTo%|hJqOb% {KΖȥEB[TJ,94`^'[J`7]< sH|4%_vSPS-@* (Ŧc٦txֆ?#wI/Hjɚ* 2>̇%f%"b֖%% (jnR Mr^hߝh *$Cp ՏV>`k53m #P|37Ơmw BӊUFf~8<ӂzr^jx.JENӟR¾XH*Rl5*iV$KYFTh[$YHe+&q)n}]:߅䔅E^QXݗGzO/qjy 67+Fܻ9?Ѕo>zƽIm*8T PĻI*}I(i=5c4 x@5h]0,9 l Ȗl}]^+_)HI>'oD ԯG/fcЭ@0PKGe=1 -)nuvola/64x64/filesystems/folder_photo.pngUT ZA8PQux W{<o rr^.PTTȥOl3FWRSJRdc%S7~x:y弞%ݞjkP"i?Q3+B%#+g¹F : CCIOği u=~A*Bzr\mnr@_x񦣣]V+5rI[ٸ}^4r2P|7YW&pLrɟUM5_4a -{FbtzObs&{@E~;>֑DEH幑jSlԔ}#}2T{C#p$&Ox=1(]P,m*a08 B{¸ķ-!`p,t8Pw6*lH;a|$]V6i[qi˹i%ix@ NiSL{ED>E8ɇFKQp"HNTNc#5l茯n2 8;lۑyTPRRvh+WZIOx|ooIT}t營/X8ۧ|lt9Ń2v|}x|Ox-ES'ZA#Kh?p};uoG+[A#>x-m/b~AR%4IG%.Bo\jxXI7k.~|y9gt}EVX_˧ :7В $J/!\R'? U LGA״m45i^g@hADD㤃fo'3wC_8i'šs3ER&Gc,/+Ҥ0sjsȑAuS543zE *_WwhxAQͪ2VP6G&@ 3j#aucIeZw_baͧ^wRPfCARZ9YXy>aҹY?b2Ӊ"6S;Y9ʉcEsH`Z vqYV$IbXWڰ 퍴&5 'b-(V_p> @ 8!~XX;eWU|ڗedV )"8>B=R&}ev78r2G3؜ڮ tz ǺFϽrtį 9.0g&b EgI = cu[.*+BEOM[ֆjD̄\Vp@֌+fl3ja ]9P!uE&b#,vLv>Z񑿘OٚB*ų.j6`# ĜشٗI˰hC ʘTQ"Z鄅pOkЭ֗7W>*#*j.U{7n;KnifL [R*c63`fpFo<,rGYzN1|Ij2TteU rYWΧeYY Y;XI*L/kT>=}h'Vjrd:cr~c5˙CE ! 3Tu|(5y"h 4*,/BSSr<16 {ϭrۺ-O>5zΛR3LlNX O;w,*?lTZD}d ̔(]wm8U[n7oy("x]sf^І?W!;]x4as AZYS(/mD|ѷ#Tftd˘f0 Orc0'=$9ҁĠ -JFxaI^gTnv;hoQ>`>:4psh!>O !h SqQB*,+Mddج-}-m`3LNr!_7^#~_ӎWO3~O}XZ'RahIGG:? \=k%QTkjzb ;ͩOQ&X~h==㈍X<]m/d9؄Z)\.Q|"V/>W2spD։aA矒A+-}/I,D2ȑ.sr8K :}lL"\/:{l2^^-aaVtQ8އwM ZLbke-$&$bP(D4wY٬m"5Fl[8+{3D{˫.2=~F7s/Ú~*٧Oi] _wf1| 4b&w>@Q@pޛę WjnS2(ݐUu ׶ a>s6nHhnYR/2:ATbkz1( |-Om*yڦZ6` nV9hv)3pa_>\1e}#WZT8 K/ո0U*jsq)nSN7' *"vwz8w>O>x 0_Z 36_7"pA5 W֨ˇ!yd{m|j)4ToS3;bp#l DWu*{bVwe#fςt+踞oHVa& `8R ʵtZխH(KL~l} cv}ID\.VDs~Js5U~rHZi;hoo/P}?NL̞ =Z Fgp JmӼ¦ ~lHSCx^ dֵXY,x}ks'_-W]zx;M0 0K|IF]AYW}6:ںFAkcD% 2WTE2_Ĝ9siY[7*å3ha(v"B<_nYTX&dcCpڡ7R`AoJݥ`(?7 W/Cf j Ir)"rH_WCTifeFGX䙋ҙlXn rz:*{S4-,$Ck#4dFQ K)/ecBMϻy߿MJmiWޞ߯XvC YFkm,߂'$ʥYJ)T#3>Y$!" d z/6LiDkE20!nra}xͲs=]Άs|JG;#Lx q#;%u+YV7>drlߋxXfʛn/!7siUH[EǸ}6}4 [>I6x,(ZdS$W 8Q?_f͚FCCo*G(`nVjy%WΣq2aVgfFup#CaYʠ̊ Uх#C~&}wsG+/o0R'IdlU^%UfXͪ,TM'z( '(N8m0E0h 8~v^x@w# [tba?1[0v o;nD)ͮ #aa\T\^Dvv'b_!}5:՘dUB@Ϣ(R 6XNmwexL(v[ *_86|\qaE03.'+|#,հmS+;yGe?Ûw:C:ߣ̀.@Ak`mRBILHY{#c>iJ5 DdE&r2mS|iPG?,0N!N9IIYyH+?Øp򣠩 3j~HNMb1;&Q)6I~yB~1j~ݛ{FZrJqٙ3Dz9Am-ėK i -HSרN-/#3܇d˃z[[SD &%A ϕ9:ZOkHaP0&Kf`<{OhjG2+|[]Fyo=ިFt?|Z8#dH^}>//}t n;z,F:zQ ?6v[]uv~^B2;3 Ih[۬@Ŝ,z{k%J'$C%uψS69[-Ʈ@*.egG3N.zwvu'ȿVߟ@#ڽ^Rpj%݇*'jE+P=KZcr8 _bxO&*F.wW|R^LΧahkVʝsC׊:e EF΄dV `n>m-L;TrFk"ؒ(wܼ㲍m%M ,]΂=EIk _|'E Xkh(, %f pا U'<7eх$G|?ƼFFToa_V5ܺ;96HyHavÇ)\AF̃uH}B޲Tpy >: 8kZ3/[PՌ_ 1TgG9[ sg.nMZ^Jow/;q-,#6wpR%*p;_lNKD6Flq,uK)p?ϖcbIǥ$m+U*@6߼gxzo j IrȄپ᷁4Jlk&rG=Xtodz2b32E9X|l!̻?E|QgxuO,רu!VߐGR")TMlu/),3oW)W>=ƿLSACޞb?5fiIkY$n$bj!~_EkE@v8D@+qa; +v:Z]Нh48>qybOYWY>3j1h>VRxTo}/'BW$2~3t ,hEͦX|G>S`܌G>Rʦuo؆m%" {3T3rh>~~ F'RhNOBJ9 G YZ::S֜:J[ǷBAh.ivD;`WжM`yR!C0[CDdq=ۓIԟ; *8;t^Â9O\3X(]^7:B%2,g>7,hb;$hlXc <_&dڪJ m{GrXNIfij[| ;{!t(@?JwPxР-͝/KBOkp|dGx6#"Rު06աŊ&?fn. Dڴ @"Z2O.ψ9_zƍGROѠ-W_2%wNؒqϸ =OLhM ߺ55ML]3U52+$| ϗ0nFh|$$r1,˒nRa;*%k ]$FC "%#"Zb>eQ0RZ*>lqwg]Du=ME6Db}uXzćIJ[p/ on`qlٔ| )I} Ǽaɂ$9]g?\12>Z7}>X pWAK+2PMa̳ߕ4޸z{@I+U3љq1GdOrTbbqWA~HGOq0OxW#?PsǶ;kJx')p3 ͲgɂC&0„W!t@q* K}r+nvj2vӼᣴfeps,eԥv޻F1iV8 Sq˜gᕗT~ ruaܮ^0NMZj7JqjH\7 Nui", CCGV+^TՍ["<'df臼Ԇ׊x(^@ɁsEpI8ɄCcs1h'}$$sSb~MD1 vɃv f_B]DWn x3{ $ ܶ];IkAl =%&rg9 \4$hMb~uH˗9#v_9Sw!Cd+3 ڽWP3cwc`PJtx%B?4յ|t@i52лG[5ddSSnqϢC/% ? uq}^܀/7wFm$~u bV< i-Qgd@Cr>l_txø3ǶVY 9۽ a. 9MZ&QOjÁR"h!2hr: ϰ\n$tA= ,Uq]f.k1xU3s# _jc㹕8ps@[? NVr ۙ8j4yzG$KL>\ |}Z3}^M;?NzyEacfϞJu E!u!b[us+#BgYSUx.gk WXNAsi KNnj|ѢeAf `(ejpc,,)!(;Ħ6C9⥯8'rC!! wP^TW~,<)9_ӷy]zK9^P%j` ΠIQ?My1gp9s#o!~#D-  'ɤ-~*Mm$oLvErDxSmgЕ7ٜ$_b ĺºs.M"t?TC\#]߀znJ@x~ڭōi55+vͅF&>7'{BDD !%+7ζR;r%{?o"/U(?6y4`>wRAE-1Y\L'I$%bvFAؤhpBd Bf!4b>H|uYB lVaW9և0B_UG8 ϋc/|$jit?CL^FF(z{P9 }4Bp;w~DfE%LJ|Væp]x&s&w*W(7/C\oQ D|,-4CÓe=~:*] j(ˇEJ0o#`LKX .Q)i lc6S#@m7 بf.: 0+OA; Ϫzf-y`[Q35 \|-`L\]Bɟ/Wx' ڂYQ[[ {/)!p1 "_] e6|stt&F;vчH,gYa76_:2墡OcfZE픝g#,.-;ij&g֨iA(Ztq}0ci)|#Kg!Ӷ-@N<$BdSV 3Vz<bˇ1]_{'Kлy@F;tQ*u%!!_=2:w}$`=G[!9n_h| ̵O`[ͱqXF%AI]Tʺ87(v (4 kb~{K/'Q߄ǨCС꺌]Ll`(O'(P`QQBA!Y1RqaZ%c{ +a'IЗ֤a]{^$0HIe`AeIz2&-JiGmY/j=-p.lFJGc`;1 [R7x ¾ˊ$SAp( %oE?Gy;08igGx֘Hd@/f.Te'%xR{@.Fkp. B xNnukG=0wǒ?zaGp'v'w/6HLA4~Qٜv[ lVqؗ YeW_qB/>J6ńdž'Sȗ0m1{:jVJ2gmJWm0CS,@ͷv _RM'y$5SM9]B P֭i@$Qu>Tu[0ͻ=] ฦT6j=B琔J)JCm6;1}\_}gֻd X6Mq^6S},sn|/I@|FV62- d$[[K%o%1$I:{]#O1;6X=(~ZdZw3 hƨ]]Aktc5c৛쓕CGΙ3C2w9@0IВ|ld:nV_E sM7 P(%@JSwG rZ@b K0!yR0ʏu(76 ga)eq{"5D&Re2ZXo Z]y73J~yyGHόJII1<*jgǩǣuʶcMJ4x]ӧ(2&S !?Xv\)H~ P},Q4\Ϲ| eaXx[G!o;څT ԐgX]}|ĩ%vb&}}<O'{aSw ?S[&d&_?r;PkUQk y,XS\ =)ᒠ⯽*b򡁄8=_DE״Kg'tZy=ޤ|ɰۘ[.Ai͙wn`{'~mܖUSS@ 9-VrZKabg ШI2Ըc]b_'b8%Ts E&H>袖5]BT,4R7{Eȼ7JJL}!xv_f5EoMZ>ЪPEjhmޕBW5rnI#e*Ej$?955쭿w(9XNvJ9ZN[lva}Mpyc)>s:Zf:ƣc[5b )ƭO8lJFW|Gw׷ONt!7sbrI&0FĭknrևKؾ!;aLa<`!biI2-u>z&g\!ܶm؍PKt91EwhT1 *nuvola/64x64/filesystems/folder_print2.pngUT gUA8PQux %ywX[SDE@@IWD$ظ"`S% WC" H/BIH̜g8{Ϝ kb= lٱ0w0 c;=Ơ;㣏'Q-bvDE&i->]IDoFZR0|=ԅY,y8Vi]#zX۴J>=`i!ڪ990GF75=N(ݯ `Ϫ۝C뙘hk΃$uEI[dsxYU,&_-mSk48WJ&ДHH3=KI.>}]ߜ L2g` )ׯpJ%%<᤟HUhÅQ4~)]yxrUrJ>X kp8F^^|0umAeL} pݙV;?thn'xnv~#¢;:?|\֑׽(g470>4JHٶ/F0>gOTs t R7%>x g'TY(iCz"sTݏq;{p.:iñљܥB{^|k6Z[=*Uhg,N}5縱2/4_ybg0f>н5Z:\gOtwr{ˎ69Bmɓ?awcr DqU&:O|FKD-Zp Qo"ta bAtm(9ET|eDwzpZ"ek"싄zDS#g -LKʞSH䪤\zv쐟8&퀲 &bM@8ipA5[ XzcӤwew[`ϐ$/~`1_+fA.P#:i)x@޿t?MW kSS.  {}"]x2:Eży&hH{J|J56#˝x](^IStdg/i?7i O[9&{rh܀ ](%ꉉ] 3]ytt29xt1x}d5E #'Dnh!^S(G2#4Y4DJ%m,ʶUi-d,^&Su^.(U)ў΍8Kz18_YBXCA:&״ã"҆_'tT_[)^,-xU-܃unµs3eyw{<sxS~4}ܟ1IgW>̓6yD%WV/b^aAJ͹G?$8֟hsJNa4(7*]ce4fFplwgchJO#Ԕc+zjǡy=DNQLvJ9s 9_}`¯@LPk=Bfq^~)ynt!ޑJM{|Fql +t`'qwҷl1Œ૑`pI|ܢݕJ0Ť=ȵ¾jǡ eM2ȜT&7gnPרp+ ׀ɮ?DYZv+׹ ڛw7ԅ27qԮDtJ'/oZVOa:{kwDXڝ_VGl4Ml;.)0dKE"8#LO!W-8+ +.zz6م=*։NBnՖ֤Ou:oJͲ, ۀݟ-6w=@4J5epM/T)5j@[6߅g!td'IqؕXځӆeJ'-:3Էh+s?<l1̀%NygJ.Z FԠ) MG {KlwPJ-,E'B` kXݲdJ(+Ԥ@$㽆uoE{hGahr5۴SJ4u]ZWfR̪#Xs`iIР|%HfQcn=$,yѧg4j3\̂*<49e0.`R{H4OYVK4# vZl>#ua"dZĴtHn=v"uVu,cCfZC@ J3x`RjƟUx;q>h-$])Nܘ0I^j?Gn7eM|Fm #J6bwf̃'ܞ/MIl ,Ud< NT?nи7r-h_Y]8n67A/Uy2̆4,g;p/W,qs$JU$ ~G^HW}LI4;lb>;y\[;!c|; k Uδ- ,yvEFI_E/F&/ibzj]LzXa.ĺmhċFwCi5g [D!XNFX]5z wgVc~, ,e*;AehPnh̽4p*iLʟ6"gx3>ke9ۍrku.1OvN{e-p!phN RJ*p'ߨfx.LnIp2-i1Ռ@-.!ZRk0O J04v<M`UsQg2(8h: Ŷ4C/-T^kRGoE~Zbj^_,̵ *b+\2+^Ĝ0`ߢR6tᘩ(~VX{6!M: ]Ҿձ,_QͩoK0~܊Qyww6:ckOQserް Q_%x&!/$avFݲ 앨{f🱨Lo!\8J87FOd 1k4}޽(pDEWI~"鈹`ۄjE=zNP:z7d 0M 0neʁ<mKFh_jWԪTCtDPi *9'w_ZJ˟]aτoC`=- LL#QHaaRhfމk*nUQ*SfҖ[ܖ $ptQu"f>5J\ @tTRQLԪ~&"62Bl vLrIN"ȱbDo 0t6kVeU]qS=)dpxD딊DʆpGuɩU6<ģ}Dn*gy>Mr ԰pd1 E83ڬȴpF6qt?{Ywvq,`|i<8f,rFsqs`ϰ~蘠e$.:0/X-%EФ\s"h[?\ ֝1 2eGRGBŲ25F+a%#r *K>*ϰT[ ,fnur+E3NRbQ!Ŗ7*AkIõw<=p7 oA"]x N]K>AaSS>OTUȋgɢ֛,dw=7: UIf$xFf7Zl]?vdu6k?&@ݿ>pLm^VyV^qWT :mOP7=j~X\ &lz٧$g-/=t1'{9hy0⣛C[>iG;luwʟm ~o6bg}x{no&T3F7_S-_SW()K7wז6o =דGe'|ɍ/~\HllCat cTq7p ixc5U3!lM`,n^xlߊ S%Τ P_QE?($Σq% N[nz7}Ey{:eVeJ]\+/6Z$?Y1Ǧ9On۠75 ߺyU@[+sC4ޘY@Lo; ?&:O3>ُy8oNwߡH&߉sP]kS:0H0媎@0ώ`ph~uT+Cv*s̢#zhpϖt?V:³$ၯE5k[huxBf(~ c`!H)mORP/u ]9Xǹ<}vEaƒ[co :" ;ePt曝. l+j,=H9_v"G=㰖 ;m۱N!X1QnDŋ `(Аp,2A.w褧!QQ/"~ q/(dj=>jҁC=۩'HGR)NOD\%^)5xղAia8sO!(L,5"R΂rÇeVk5էc9(\A`>(e=3{ƝxwZEc[P4"CTĕ;:Z] _ "Xf얧1<0܍͙+))b5 Zi+Fgm&Y6+Hc?ܬB߾oyV<%D\ W(;Y,eQ6az4_۠Db&@69A %i/IBaBi!QL#Bjm'-s >`*6q$Ԝ3Tw?}D14#H2Nka uFD T/^,o]E ~̗NQ%IVdށaP N{sEЂ6WE[}u;+ϓ7w_O&:=UTdY`0U$7VUrϟc)ʡS5{d%ZЙk^Q,T5.gXXX$1D< }|:-֖ʱ+g.<5?R+ Ql3'ׅT&S(-yPK =10Vm'nuvola/64x64/filesystems/folder_red.pngUT xZA8PQux Wy8gx03RD̠,HVH,)dPV*1m_BJKBgw?9s9sEN rPpq,xZt"oYg֘K{͈{C#"}c!~Ӿ<|E56;Ϩ~8cDm-2D+U56:kۋX짉&˧26̰[At5~ъ)L8y+ v$r044(Yoj#g*d ~>İF2'UD 4(au~ ™7?mniX ]2wz NQƾ=+] =^Br wᢂ:$?^ǏUB|h 3uM/_Z(_+W_qԏx$z`sA#IL7b򀕕Gv >|X u .&m_Ub"!޻wƐ8_T1 9;Ea\$$&nD&.^ ry1K3-n}=0g&V:ڿ~=rqYrè/?ެ"z&O o#'' >D)'p+Ma°{0š&8(zLP4nYi~$j2: ~ƍ;} R_"^|݌FN"BS&c}r xu~SH~κQT]+xiZ]ry=_nVru-yZh)`e2Qpxɚ;"6Z%]i&" +0.L}*Y~f ]X`|)AWrK=#wkcD ԪL uMuOb9wmRX!2-3"7ySb]i*.W`> R8zѽG۔gip@ȋx5$9}a{22赸%1f0~[ӰpRW)n#3.NB'QӹqgN<ыCq;tpZÀdJ=jo0Lt ch8 zvMS:Zck.tr ֚JJaQ% w986P$\TC$n|vCFa%`B+m?}2G ,sc,81-e6oUh.7q"V ҕg>z@M#̙>9Z'ۏ TFbb4O`pׯ״B80Qg&,V2-wҴ h03òCsq0cw+!, zxnk u%={gEE *|JhяhW' *GKs݄SRns{.l=rV#p kw|<N$}S=~BP:Ɖ|;w/ShPorv-06sHX?W.9eFMQ}jj$} nkھ1+=vRQ] 'V oy!ospZHt?1U y:Ȋ'*9nܛ:f2w>r25f(J;?Kdt~Oi˖Wk޼Ԇɗ"~by>&zC9I9FF v _y+ѳ n%IfC2Fo]sou'ْRad} J$L"BeFEqyI^M.0Jj=0&ڛS,6u:GDd_(:gm%D0+,t9-b/OXK)5 &!bVo}6^MӷY qaANO=vYdt]r67WŽwj^5V:9d Sz}aG wXmfȵ[Ïr#k], ~6ɟ &Svsɛ]WW"N[xI8z%m!?TbrL=J4?(6zzMtrKnIc^GC(|/^wU/7R=p"aJFo5{-bRŇƴN>s pQpTuԑf-ǔ$w4|B`YhY ,n]'Ū RZ8Hl:%{f^tdvE&km۩xn7 {R`SpZFpyUZ̸9K]@߀Jď%^*IepwCn<P |QK[þڅ'*?a*]\_E'V?v]: [BV)u&õRv "_d3<&tyugKκ~K1 =Sr)u h|̀?k \>&<*MI];9 uAsaXwN5GKYʔL5ܪ>Ģ0y/=k\͔N%nQIģVo(f3(.ҤZ%0%K2BB 65މ=~)!OL )YB/-E=͵ uN9N+-d(%?0+Lts]ZmJ)%0غbCszT2Ns4L34ܭDR'FO[tI/o]SB;$Oߌ)4$Cb<./v_C !:pm+whf$CFwRcetHU(km<"E,"1Mk5hJD4 | +mt? U} т8-q3W3ac,Q]?q[ML* @}5)",ج bJ1 (Ftֱ(lMkrlf#;W=I${KPbzkA0aFC#Cjiȁ=VJZa:yƬF.TpAYiJɡ4CZ L""%jg:2~ 8$i~)l9ؚ]姾 {AzYѰ$\*ʺ"oʢ]rf/AYTv'@C5Њq0 YMJ"#9R#8bKCDqPs};DN8\0zا|M%%!ޟewI4NꕬB+K_?4t_MfͨAwqs{PBnj3(H.| զJ'̘"CF-f"ۮRZxJcgWtv E}FxA!u) .kH!$106_ 2cRSaNX Ugd?f912o7'>+ ٹ!iQW ΍EL 1Fsmknݗw@xfeei)^:@ZK p Ϫ xtIXK쭄As3w-AGl=;T} ["bNEUΰ mR)S*Fڪ8̘ӆ6Fw-:uǕƴt98M R;<6Aأl$.{#P$B9O[dnP\1nMQ(72߼aFkmVlD2?@7=kzMˍ~&Z ̧'S2A~u]"I|ɪ7mwHw?:t0),\HuLXSg)lf.Ѵ`w@{{^20nb}BO$.V*w%jeaaby*L=+a x|фpA̺8H[!.l(2.:` +b)lŒ0j},V{1sպW#D#B:`blP/ÆXX`/il6 mT]D~">ߠz u`ᅸYoca?fo .V0'vh:aoU{]5/ǂߞK"4qL̢5K bU}2/s xJɩ$6[olT&zf1uXT{?&4+fl­Vé+&S"Vķl Wі,ۚ-"`v0*ClEMEZqUjvS5>ÕApi|kCbݷ7`=DH?ao{};#v,M= =ց[DYE,j_4%G\3X,>[YeIoBK:#=! TF~w8O8Vc}dqJyyGj%}>c"Q"fÇؗhbhR7:,kW2S3 qwl,1Nۮxf._0eb[+w{O7Bcw~7J D')ߚW'nȿ7u5˙W7"?6|>HW%,(e YM+Է0 z. lO{0 _Oܤpپ{S{fPK٘=1`w,nuvola/64x64/filesystems/folder_red_open.pngUT ZA8PQux XWSGԟl/ {@!AEAȒ((HqCA6["6g}}s|ӽbVpB7\ nEpogBfV^N)?-q/E8bI P?d0`DaCjb="wS"~/lڵs/8%I :vVqt QaÙ #pA(Ut="eMwBݱ4M]cb'QwMc\vdx#P _3Gx.[w`o]}/5?RfE+gG!=G29ކQF뽴NVG^JmߋOhD*w;6#取#WYϰ^:zd_ 2?G&ms%_¡_Nĭ /$\-C,׊tuBWjpU(}nOGI]t3G|[`ztDpDc}}xq>WhSH Eq2׻.((8v>^DOqW&7Z0u3fOG.gT?x2l܋4H)i-9|Sjd_􅩼(2?bGú4{"QdMOCb@ZfI+̢[QyƇ=mB+ʰ,BѠ) f"jAַHYv$)fKN: vMZr^Mf!oluDRD1$RŷRp+HE :G1iҊ?U8v2RTMM֭bsc :ՠ滰O^rv6r57: E\%Kudk![p ߂+e%/^}uZju4kmQ5^Xb¢eX7J>X m+3whI *dMӍ5?.){Xchdce[yFʡlNSW'ѷ`pBg\~uorʃ|= }!7& qXkK1)L<!iz.s^iCs({X*ՙgՃ9y5@2j*8fex D%S*$g/RH/O,T.$9GȘu,?sH~d3vz} ?ę%Ԏ~O # s:J.Z<ګ1R#pOpلićR,>ih|Eـ u1?O0/L%<͏em5]t?wY .ОHh7&+J ?ooZV$Q3;Rx*0O bW⽬״AMSgXĴ!aTeG}2jHYɟ!WbLF\$[R"u4ӔȾcpGW7ߛXU5.'#jub:Ѷ0!s ~r 3H[5f_YeQ=M;ӟ5A3ǾZAJw;cqډ{3=à#3'Rt Q>:_'FnMk9r[1uπ (*{Ó!iC>bD.~ĦF16?5$,oG}w}Aۀ6'i[ ֿdcjEYZ.H$eM3AJAz-y\$"#͵]Gǟ.; 3tyˮxa?qlpTXS= }"a3i1Ic-H!/ n]L7::"5Wm>ƊxĽ |A_Lpwy:c @7PMvֹENtv"G |Md~qPR+}UI?;_->#{@5Rv8 ࢑jL>;ky:bM/K&<6<߳ȸ{8/`O+VX>-u,rɶ:vWZtϻDOCPTތ3^h քϏr(HmHT+ɨgw=p3j-AVmc1dmimJ` Q˥[WZD-a[SN}o148AC*}MYmSTTɦOy^ӝhfMb q⍳-^Z-K#ڎY񚴎"[nrCRM. BDZۊ!m81ED;|ŮQXUyҼd&/">5J02nj)vߕsIrhAZ= M~1Z;F}=kFH߬kvfohb Q$3\4n|qxT ~iy_3P/# 2ܛf&VV0̺>'&e6vdeY*wЊC֚}bwL6O \)exJwoz[4:Y!#}ʘ@Ї3v7䊭U$|KxaO(hUw!ȳȑ#iߠH=>sjw:C;\ &ڈd]MD*qYFpB8HZyJHBaF\ûqGa7B#>gAK[*loڀ6܊8N3ACVjxpx 5&i n(J>3J+s}ՇR 8h=Hn3&x2sB-lX b'=A蛏ROʮjptV4J}rD37.l뾋am[wtv秦>b<(qǝ|G=T`Ngպe<1cɆKkz9? x7QҐȓ84|;FN,>-1=ЛV 1$ O(q/?driKV3 `@#;x@8*~4v^Y#{ <h?&#䁦]Ts)H1EI)3,3ڋO]H L2)PAi_&md)B+Efcf9~~y^s<ټp!F֯ު{x#m8[wl[d豘#820P@X֐#B\ڰc{@ [8"͔RQSމx9[NJn'nG;>ُ%#fF Kv _A{KOd+"χWB;FҸ]GkB&eŊi_$m@vHz‰_b֗80)$IQh[Rύvw6,2D=V6أXQumGõ{ ׯkGF\WW蠩<-eKCUAR%[֒d0U?_cV׉J4}6}ljw~X%E_8H/0PR6 9Q$c0=$ :<&WؿA}D|'PAM`҄ Dzzz8`Lȴ^7LQ ZdU)n + g]wq@݆R>l,?ǎ++ ^?}?ࢡOr. #/ɿ=hS;Pp}bea+*fφi cl}T-޼yrt;P; ͼ8.p}?BZۅkȏ+& 37^x@x3BUt қ`ȂadBWY&/GD t&DV$YI_fc~@ ` - R{>3Dz@30ga͌ (uq>T@kSgM_M]"wQ&.T*G?.f2 q0#J9tdrE_o(f2D"潲(9xkͶ9ZNE&fx$㿐PZߨ<9/Bf2Hv^ #kH.}'RրzIw'tx ^r/omj׊d}gizi8]\,\bB{.">9Jq[UY0".|0Q@yje/_&9.W",ksqr)l5 BLـZ>А#.v1ȚR?c*f sDwҐB>zQҫL2Jڌoi_w'1'v )"!Y^:, ݸ dm uq^u`K35 2w^-B8׆54K3"һ\ +B|)6;O;_8sUƿ%a}UU*Ըb[ #-/+K]8|(v|_??H=l]1Dw#~f,*-5Ԉ@xϖс$vEGx5&h 2'٣;TЧ)MG$ME[K {W Q3h?+ UV`J2o׆<5iɹهNՄln[JN):pMFM5ra[%kE=(ШL NjbU,]|Ѵ^:qRP&t&~rLb`Zng=e+RZ;zǺ2j&0uabhHW͂PzZ姮W§: JLFiͫg>au:Q3;na^94L/n>=J3g@1ȁt@+a%KwTKs@NRRȤ N-"fsuvOJ9!K%'?ͽ dKNp>lPsaU|-TdUۼk*݀v BUsDWϲp</~%K}Tɗ}ox⧰p-<.2vkb@C|:&_!<'LDz0Df8NTcPt1c0G3j n⦅O޽[5䏯k^k 7Duj9(TnYdǭzѿ*ޖ?f /;ۻ-AUkvY[Qoe{|`>M:jc=Ȕԃ/ v3``VA)0JuEg,V{fF!"dq3O'Gb'&o}'L~.ޕ2˙ĝ[ت=uic3:S+e" ݖ{FI<`~7޺b8?oG6bJ /嵧Fnՠ$Kϡ܊m.{XϹ;mMsFܴƚ+.$ޞkx{? ZEB'j;_fXVexJP63ED=rX"hl 5-S9o4fOJ?0tZT{?c`@$!k(MۏF?ʧvԊ0Qg60KJ m#9\ifbj{_#mY@x\ǻO^޶iڊ9*^.&WEi3"y-b6{q_6E9>QX]'Ҷ'aEuq0?}K-4˼x?$$!Qr38d4kF PI[6`abyXUzrucaQ$LW !> S-#ՊUDۍZP3!뎕k#u%P"} ? 55T2omqj0M;. ]a :FB:M4 _2*umhߡxgΰ7`aFe^r5R$߭hOrgv dQ%%ʩn,Y:PJo"ў ٯWzyb7idh?~3/A.(: 8%?{sGIWi&wS:p'i;lFu3vMǁBH# YB">?ڳ3KhF yFLS[ kz3j CRr@I9'D\.=#iz;QuKEt1B^r?d<$f<_jR_4:9%N*jubg)1fOK }^K^~ v6ל /@2덊sCP E@ uJFTgyFc*+99zTF\dᴭgspтƕVxnMTcVs+-W1(2CU=<|{lmBcut ׉h2sU;MSSGJo})[tB1k0I標@W;hQzT(I? {BA>7psAfGbA}o/ܥʴMF~#Lezǒe]p AQĆ -{le oc4yYNx!7YniӅ] :`p Ro~}Tur/փX tS}z!z[zw7|kn/16s.&9F%h`3}, l4SdCDw1Vas7{ymʎx0<ٚ} l\6BC6R-Q-L$[!U^0;r?JD 3'$`JJ9$Lh0^Ī&FѹJTuԤV0|>%[2XXynG>;a|X$CR@8eԟaгuQgd% hƁId‰F8q4F v0M% JğD?ܫ!'P0\Y b Uw :f:4*5u̫7DID C0bZb)VGQߋ@Q/fqDgETwb? Ï;3zd*џ 4#ß+{==)YZW})kcjF9%OK$D\\'s_łNCڹe`k؍+8~8ޟ4:IM_UL)FAPxY=)B&;W艝a%T#wiE:~&&+,|BVjod _ k>BjĽO#W`A,~G jSq+~  BX<+2TU V ބ>}l)V=1`SSSK"@U+/;> E]qa}.Ϭjv! 4%1R;j-pbWr 'gFfWf29ȷ?ɖe*Q:0|3JPo|EY S*}ѐCmlÒNIO{hͳ$r 52:w+u XܥuMaL5n-XÁWҒ|?O^\ GwFf aPP]|.eDXӆ#ҾDŔ U)=ôo|`bP %{t!(L(^*Imޮ0᎑& K1j0xY r0`! 3:rJt5:]57m|B4mts-*ϼeRkH0ձ} Gm^`6*kf+GuoF,9Ö~tc Ph‚U!A%#cc("=p`nRXhm@ha F 0bf]?~!a#+]V /' ohzB;g1zݼ|Xtp:k<}py׍溲 ~z4,/p-A;HŸp]2l7c/s4Ő&;ahY]j!}NIQ]L#L+w~\} k;Ol3%q&W :'.ULfۄʜ _3~bLquk?gb-.:f܎=IM7x䆽u"SIN'0Wl6lJm7 -J+hUX">:L Y}@$Q)og9?A a *t^&ܨ>YWN}.B0O*K5D}e`+-:{N$h@+Kt3'7񓤦;`9BK'Y,-]u24T-4 t;Y dU֖\*j\&T4rBN}9^'㼰_*g7?]$aڄ,xbw #Kza%@R.Pop63g=uHS.K~b9!` rsM=fR |L[7CB0Y''^ Δ Y^5+^8V-]C,wQGY5??)>'ݼDR1;)td ^yeLY; zT R]`БX1ux3*,'U2}Hxӻ8&Do\{:X5ZLS`FD,!Cni@纻NJGUդc; 25$O/![hi>s_+23C$j (!o+@' _,H_WAѭ"KfS1$VXlѤ| ?@d pDqn_Qi\!;,Sh[gw3m|,DݱVZgapE͆16;.Lճ^r"[!;ӸF{Qf ՄM׭a@o/xk6!QW'`*7)_ϟM ܥC k6~:PKڕ=1~kl`'nuvola/64x64/filesystems/folder_tar.pngUT ZA8PQux Wy8~g{-2# 2BĠDYfGjW͌aP EicڵV-=T Շ 2|s]qs'ozmmt6nX?7x@t܄dlf@i ܩ_skAǷEE BéD싏nw6a} U"hjjh(:pFT#bU}&///9 Qk`՜ L)MQ;@Z-Ǖ S1Mbh5jc#tG"~SK:]FHd 匽.Om,xީn@)2 *wutbZIZi_E_NNunIR͆v4늢I!m'6^~Jy,橃uɳgNoeckz*j3$+LQ+{}[x)qDq<{Ȟߝ];Hn_U rR9P=mdV4 ғoi{*{.ub>3tv +g)]((A#MLK܃Z|9ڸZ_`IwTOCyH,icǦR,onyI]( =g)@cs3iAWhpǎhp6}xB0 }SS'bmM+Z 3ZSmm/Ly{_jC xh^E6wjboLa]̟x}IU'oc*9_敨~ܹ!MT*S4̗%cEnO"=r(OӿC0sLjȰ1dFm  +tx.5 {}:X@]]]pI \"yԵ0=Q @zDivczCP}āfoHSu q6wKE G4_ 4^,Ǻw;-)(lm9cv ~5 ttYFpB5!!t[w!p`&8~`k;; WO*J1!p/H[mEIP{M 1د;EXOr;'x[ڸ*u5Iުأq&A2c8ר8q5PUC2ιX*Hʌu]WZi{`T[9*6b31` ^m>^hzxbz=Li/j | ] 1sp?BH%{ 82Â&W-'} 4mycޗSP:xꌎ"*|$*O؟.?R3ts?`|-0TͬBv$]' W;\4,6ΔOq+u{jOQ k9v]g9 8}5 IL01ٔ{[Z c1>)hTTSr.(EZ&b6(#q'-p-~{i,GY.\?]):T[(5!Lgh/1/.~EԔAayx1[QG֞)5~ZwlF_.%b-mM$V9I1d/|aO2V "3cc$O2C,zf$dh &0:@J?LL O'Ѧn%0pJuEhI,e޷Q0<< pbӹ9W2 "q_TJ鎌K@kPi[nC իmHyX|1s3PQpA8LT:ϓxֺV\/qP&ī02~l  x>Lq΂FQ4%cLj;C81!W.BWNW} *GMOMd9-]!@HwO. RQR_zѱ* 6Eǘ=/1@z(шI!´DAjxe'|9 R7~[#np|5 V&E'~=sCP(/ ZB1w^Hkd[e?rDnf@ssf>lWQ'x BUĻ C8/u@n/E"7`D7%%u0*]_IU$5co]Q K|NL:ŔTwCE ©N3qN ZV+v#o0mZ3ڑz Bps?iOb (_CERheA/BJ}!KsPR9CajYy8kB&y44'm3xNBrɰ}3Ȯ }W)f:;E||P/bß5YƟXbdcP3~ȵk67ޱ]$gby_txt@ݣOv*tNXEhaT\ESE̴ouйOAXǡ]pvKL/L}Ze;;=0[>^oZ_/G;-p/U.Bƭ%Ǚ/g#v{Qw\3Qo09ļUs0WF8*[z7dkTp4@^?#@rbqZƥF4jAÎv]¶Ze-%GL-q|g:$1kj{iRڣpπ:h3Ve}1cz;syٖD=[r:c38b;Z7[t5F%=GCYJ'hR7hS|zpX:\f7HOSAFjM82Ќfycfrnܣ1D0QH9n ݸNpP+/YV<͡kQ4N CP 07Y xe݌עn@XnWO~䭗sܣ/nOt=o;ёov0Yn aeej@m^B0yHQ}V!–6CKNu&l,6&Eh䢰h NB~ ˌhc*;'7An/Ga6S1[z˧ȏdng k^gY`DE5/[Ù />zmQq̷^pszFdlC{_)$zX5ҡ٥ܫVg@v+x8 #Xa4p%#( pHJ>R}lkvq`>N %^>"H]TL֎vItP`r{D׹~ >D.<eMcSVYI,T l6Rdjv)[XGKDRol{2%tB=ls$z0 Rd %Df7{^<ҙ/-&Tk;s$cl%bq67 U+Z$yz{O]4f8g3?/("p?-ᦥbaQB#yVבBY d4rȣE $8sZ9z@e-ϔ|ԁ䐤G 'nuvola/64x64/filesystems/folder_txt.pngUT jZA9PQux WwX@ *  $ bJ(\J 6@% ^,;JP$yΞ=>3yg޳>;<W30( :熴gR&]Qa1'CVHTP(e˱PB]Ń;G b/˜E`(ƄF/GlRRR ^3#_ Ah?\OMD3B^ h#>ƅ T&宅F[n~kNRi+[ D2"&s4\4X,֯DU 88#iȠnÕmε !BҰ&O9?OE~~~K;*m_> a _x"xgTHxv\2;RVvnV;Y0ua $gLԯx\*A>^enn: ٴL*e͸F`lDFF>c/tWljlO9D./ l仾V5U#Z÷wW9|QmDWL i:H~.j6 v-ڍjakRq;iG0vvqi4L%Q+P5sHi5m>ZfIͩKzʳ+{nRų2= Gyׯڨi7]3 =DWs~Ye]U{[]dddX>q4oJ1izu1%UАIVqz翕. &Sp$eXz"zP`T+h*Pv'?~*X}MM-XYꐊ*k#X-T@mmm\Zj={`{@:%QzI-ނtJ!jf@g3a?pk".x1PK;/GeOT66ߙB!D~Ù.-a-R=hc!VH{<"X񊫘$=}g,/;a 7zJDK}қluj|/y9Wt?zguHAN:硳12ݏ_3:;0XZXx ZͫVEVem3,f=cǠ?g܍@_^-pI˿Cw(혽$pA̓ehcIJhYг_'NUuw4= [x9(kLp;ʚljg8W>:~I+{_K ȩfXZ?} eja> W8ʾj v_ ͷ+{Ӂ^]pxdA+# v8$4I!lR"e/oНG^7^0+me3>Ө?"ҸKe'r4HMٚL|qn>ny3~YWXYٗayvZDJ F8RmH)`}ƅi;;Iw `:37#tWNcy@2,i=O.$'-K# :AOUUCw.^NO9?x+[P=#埜b"y|Ps02|V 2OT. B+!if /"a+(VW4\`>}XNogH(02+@7&RSjt9>*˂u)(9)/ҥ: ü7:ͲU`P:^EƸ'x[ V(<@K5xZ`Qz7= mpg ϫw˕Y>>.mf0 (Y__ٍLuWaX0`qs7z@[bߵѡrcAi7yR}$tRTx<zN`XҀGtA~HRR,D7PDT"< W[?2y/KW[w {P૞}?Za.ZעB-q-q_w, ٰ KC$꯮Cww$ՠ\WL1}W#ޜ1t&h'h'){k[0Tm-B _PC`{zN_3Yttn_ӹz5E{"t®mh[Vh;h]qcp#zrx%X[,OhU^7e%C_$L^)s]J3 xe;cl=3tq3z5&!|J6#NX +,@ :mѐ܌jb+YHLs'j]fg^"HFqԚ<Ne!Sl]Hf^An_\r+S)zUW'm>n wWoٙ""0Lj:MD5+:$.AU(.$C ??К{Ve΀ŀ3P[a~xo~ l5PτMe t+t0], qʘ-D_uKR6@YsI(y5'z<[F6˦E˄QHGϦL՚~JAkg0.Qn|ҽ0)aJRdo$]x4Sp-<̏[ bgt F÷?@jF>> ($^;9ݪb^w@Kxvue>Ą (,x\ MnAF0+Fi8?Zļ[zVbŮ(J6/&Y6 no `NMѵs^%pVPSK5LׁdJzgc#rk9LjgU7Ntqm6{@i7tE2࡟{ZEF_/Ůx-?^>+ *yw3q&ٵ=y۹%w PeYvp f'8)kp&<d8gMi27Mc8ÝǶL~jWuxr/Ԓ|Un'5AD?GD]WPl_а24wHi)Iqy' fBߎ`f+g:*`.qܤV^ʳw_{E_`,@e8T<7PA`/ݡXc$ [bT.*LI C37Ld175($uܢ18!,+Z-Oy^S6 !q=} FRBr>HwȨV27{;"M o|Iw)5V d @74lxs]W T٣DaOzf %8kD9=Gd3rKIJ@:^vy.T5KR.Jձ^#öTKܻ k9TU(n2oxτ_0(+l5&O9:w!K6wg0%1ޗ7 VV3zIrj?[b˻<9cWDFcB7AGe@JyK);Sr%7D&ijj64n 7zn~,ܖ7~kߺ6BU呎X t1ZQVXZ7~ɗS!(\2CG| si m)j@gR>Ayd Gt;ЇQ)S꾾&b*c;;!݋r8LW#^s&Pgy9Q_i3hqq nA؎C?"4sբI˖w`"]tcӻp$)S,kj\|%iCu"~orA_|L)2!stIV~u f5h_ 1ף:C*c * S2هAfP3N]HNU(a,o+$9mg{&-+H{] }\OK}d$M>1TҜ$S@c¼Ci❛l&?ΟK38y~7~\+us?twiPUcڛEJu45NPhX4 -c$v|u>QlOK~>r/lD9 >Cڝ,BHP62=ټYĠSq:k4ZyZi3Y0@G97o-Up]]v4M=/8X/4Yo3ɡ(`l%꘳g6cq앐'\ҁq.V.Ӛ#fn9T4jr*bOvɅ%eo^b-i}O`:oZ艽+N. '⎭|k Q$AZ]wASqNͭ|1M^TDrcZ=UkP2LdXWخ{"fmn(p~M~_8L ?mZ N1|{'2m9nl ]i*u;yJ1*ȐC *2J%Vd_Kjw~# z.j'ϳ&!-„-az8u^\n=)QhjQ}R:"H6 #_c-vKNV6Ry"+[AqpNcj}ոuLL\m_;mKW-4ف@"/m_te+Mũ=V8{$BD4HHR\W̒x]ЖFPdM<@~'Cwm-fϐfjeoxX8q'5>R(溸Q ^np C1nuC6V (?룠n5U ̑8vKkE W BYLbQzͶ K#qQ.l;kQp_4 y8 B#2S5;f24 1:8<9-[A/A,Yׂ#r ELm6w8fԥoCfq?(-sxn~p6Y* _`[׌kc$_YB KXg@&w*K?Yukq(i=G#jZ w%eis/glҜboퟃn\#;NE̹Y@䉀cTэJ:E5^uط6o/4po Y9XxӶJ57Vy.Z\jZ?߱k?O}{ǎ^/[9,zC P:+ƌv~E6d-hjЗH-cm ,6[Ō( jVBOV`;\.'\g+6B0WQ^bM%\˙zwtp;S#9qg2#"IJQZ0J`ő }M~kGtNTCn& k(%NMo- π-n|[6 tưbITV;20K(##LN>S3aПID[6xZ PNE ^ zQKG.:9d7\ N}ASQ \@wϯ<|bDÔJRg'H|tEc,5T9Loi^?3g#..V9_A_vK{8@*bjMy+nJ18P6Oqȫ(,kn']H93'Tp@t=gaEY$"mTe~6wz楫uߏ|hũ7Ii8umlK@"\+(xwEk[[2J~9yC0{0j{j!j/CiGKl>g^|^ⅉOxde~ڸ)?W򕶶)^Y2$MOB̙Wr\ IǏ'޹NkXƓ}kP۔DvI3oc K k22Ox5=ԖWj@p6E!mxpٕG6!.hjj?'6Y 0jb-^%NM By%͇)0U|w\c@e[B3a(Ov [\ޢc0IJbaJܞ={ezgK熭)vvE-[?HO7PȦ `h#{сw$spCtt1̛ĩ:WS ֤U;?wvv]|֖f Eښ PLyz%=C7]$_pWFޯX +}0noRSMiv-0͇:O-̔V( XtaB~J.\0:qyt1gj<߽s`Զ2>+qTyCbϋ4QN;qb;=ħ; ]ǵ 0,3a|(n6so@,wBLLfIN)Mt"wHrzWGɈ'u:O'=zt[jٽ] mpYRJ6ʙ.\P$ =q8Y;o od.hޅd@RKܒmvQ6ӪIuK`x~8L@,<XG QAoȁ}vvRY֎ E/iEnHT Pɋ..KVg%?\Tu4 ?Jf$rɴ٤q|(V@,mTf|P gDO"߇@`dad $DF/3l 9S1 40*T/QZ{m 4c QJMRhg8gDyrW-ol{ǵ|{ϖ[1>$㷿lOpE9D[QM nؗjGySmOoě !So+274Z .zUϓp90-|Xr0U'.Fd%y(X) vyo͞]KD|Ռ}I݁冉xXnQl25H8QM$U,cmnzwo󹫣)"_7Y|)16q]~Wvzk{f jHS^^i*rی⧋cit?+ #Z W\g-W`Blwx9_սU I3N "~DzG/${!s윀lgAyYs |,!/!h<j?jL-L> ʣZ"y=[༮pē 0` X ٱ=  dEujogLhvyayH`ey36`鸺#~*pS| \lo r,şHp+uM.q\!%Ko"=)|?ո{_fڭ63%Eͽt9XuDVoV G1#PyGYׯe{ݴ5 -(%Mz3Z%'GiΪ@[7 VtN0Cߵ) FGߝRqw i6iMbCpMD4XO~ v "n'(!IzGA߹;jHgF &6`aiRdenC ">7r6/Կ bXSqΒTH.rC|u_#+6ƦOщ'4P<7 H;!Rnn+(EM)3=a\*j-}s\(a&b-.)KMjt+P/bn4[U^!aF33dnG99 뇦9R[3i7,1RimE,(x_/)nhdq!QgYAkpO8ԄPS悹^PcVF@ڹmr]yiZӺQrɴ"qIoKt<ҁԑt)2H~sG|IA<' fªkݾԔí ܁oә~_G>%d'W,s^u)7pp.D cݏ"z^a#2wtupؾ33;N3U59?8}9KYSE^*)f'-9)p\ Pb1Aa/bVB3d9x)ڽLs:KSKi."ɑkI'^H?!F>½߽v䔳}9O$Ν0NE"jiNK J6@k'[97oS(~ C9=~LKKV+-0`v@]`im tI<_)Õd^=Lf/]R\q[Nl]{r>s8\;+74F(UONN㳋vd*H3!cLR],E`hp((Ó]`YNQxe7edZd,M3N^F;,(F'+l?g)nFWIu.oV> P-n&B;.BUHgr銯зQ/ Mw !hԯ:jvpr!*#x&@a0M/1yq̬Hg~}MRSb))FxZRLX3ˍQ(|/x?>Z^ Ҍ|#5J2xX}=8xʎgvJd+DXԴ\VIJ=JcIM!8Ϋ<0:*ZF__RD@zWڵٙ&Ucт72VV;2fs xZ(M5>@j {C/S x?o/Y暅?[ɹUce뾮<f%UڮOjЇzPk| aLI?)C [xb#C1\^3=9n%^//~Gљ2Sd[26jC2'*oճ*ܠN={Kf 6O\|A[lӊ#@G9E [ sQ&J߮ehi!TuؕrqnpG%FO`Za 9ptDbD}g6n|W5PS-S_IR_kQ+{l[ǝN H%,!1f8) rooKbj)ܛAH+1tVM(SgI;u'0V޵A޳gl`޹öOo'x{}@N \\)j읋*ƵT׼! ,nl)`o Lgw |HAjz8q}醉)|JРcO ˹۹ uxQb6n1.Qh]&G܅յuꁑL[96_)ߩB#tXף+7)QKl-FSG%;Aq'm.aӬ@7-\bknF#{zgbXFcDGlDà\Y@AHzb]>c='LSqy`ɺns->C/]2;<ž/A^)U:xzP߸p+ZvT@ 7C5:gB4(C ,vCg3ZXDL?LFC zp꜕ɧVnW}?}u $' :tS: *)FCJJNTy t$Nim@g-;ԹVRض!z+|H5 Y ^3>澠.@9G8$X5BA%7=rP7ey+?(޵i3?dn a~2n=7[Kȿ'UXGsTa֢Q-`Wdy2Os yB_2E4ާw{cGTK, ~2p_xLoDMNt{t[b_ƛVpDΓ@j[/Fs}=@c M+};\D,$eb˪l=Iqt?D a_|ܓrdݴٙ&=x{qǑ\ȬHRMFc~G7--ppq-Eگ+`N]da78YG(ڹ⨍>uS%kv7U MUtġݚN-S<CTiQB'SNpAzؽh2q3Pg"εH僉(Br'k *edgW5T 2bG^WK:Z1COám1K*Pw ̮\nԀA1) )ە$][Sh܃:SJiR~g-N ص8+UsY⩀r4$#j ުql h؏Ioىb|K$$Ub4Nлa?]-7R iEin72 m5ikw32\ 2gu5>r*`:"{0rï: vWB_-xhu*= gk;`t7JÏ%S!AΖ \7~k9@N1Ev&9Ӕ:LWgF.W+nLx=h @G ˜fmZ}5`PK-=1i5x*nuvola/64x64/filesystems/folder_violet.pngUT ZA9PQux Wy<~ff2a)c eP^.)[f1BH*ZR*dkCQËdɌݘw>?s>׹u_iijkzdG~t4k 1gԿ73>+">,PhtdhDH70Jڕ=L @uLyR .zpXJjh.HgYBS2A Huo}|Nx:H*>$ 2'Ly/(<T̯Q'P_&:#U^IIYŋcw֫Jvn\(}(Q-cYH )UD: XU8m[m6^L~=bqWJki] ¦WIJ7+jT*Rfؖ`.g( eo G (50h^nnǏ@#?ݶ?R#S1 ph 19dh!,.kQ{SKVӕ+[ٱfkZ@[Zww63=5IÑF56SM+0gwԠa2N{In'aHU(4 p$js\y])<95| G}Jgk(S^@TkhxVqT*]QEDA-}[%5g';v<l>oԈ+w?@kzՉ1},.G ">?7gN=3|LS˪u);uo89!1 9 E{ؕKMWuWhbA~~.??.X}G{4=XRN 4b*+3#f4lnđJquͺV^HvC n߇X^--ςi'ѱjԃ*\x@}V0uǴ޹5gH7n-uy+HHoz۷ &dYgXß<~R9ШCZ|&/k = ěnQ_ $z;K웛nٌ1ދ< Mzvm9Pu55ŗjrLIM뗭6QᚅƤLФY]V֧+ʒ sK8Txu+}򪠯DdpQ S8c9$Ϙ0!3?E:QBhm7`+f8Ll9uOOj1UJ|t#"ӕe^ϲ6g1{wB"5c?R?6ёz[5\Idf9BNy}SC4"#qRoҗX&IHRrsP 6$c$;9o/Z;YBmko *{|eo fWۊݣvSI d6TģhFnCoLN͡d)]f8gѽd&]dp}IZK4@bm]{-~Bl y/w!lG7eiEɬ^Hy~uq)ܣ"{jK)T[r^@dqRQG0 jN8RAM̅rm3̝:z S|rl٣zAaw̉wʟ- _g y ZY'ar3sR(g\cye6n>2ڱCWR*hCm~gUZUfUq)kX lQ)QM'{_k5moڅguR8zY<)Q |nV7O]ξmE4^{F,Ҫ#kQ\7wr6mpEFNwN߯?t:We}Ty}5y*\^|ƫ׾܉<yG۴9Mڂ_+_53"(d;0r6_6 xT\kȐܤtW=Eoݓucil~wJ?g!>{ߗS9!5%0QEv*et7Զm3ϖnH[2B%[aȓsp3 >PBSS}BG) ֍ۿE^a+) ҎֈÏs<6oj'EY2 y1((.0ܖZ$6y==]x@ \Oj8T Ä]t;^ F' Gcpޏ5YL`D P=;'[%NutkzJe~Il2ZQx?@!WyqD& .~H IӿcjU_Ot>>B y>vaҺvJoL2`} 9hY,ׅXi$i 9/5L;y:B˱te#gxpMqIYIa!8/e sK\eed6f38m~qeHMULHV[0hs9_d=ب޹X.7s_d~"DoaJ( Vi& Mcƙ\a(OXBSEZ5q.fd֕(B<Ҕ/ *e,|49׸!rg51+\Wž { Qg]WQIS"wU?/d}g_,FYIO {4J6kla܎R f9^h./Ӧc} pnA`NwVb0 c|,OkNyaKZh+g _XcQngÁyߝٵ3hB, GMYWL3`=gk 0y<hi7=+ a D++§,D/ !p6M~Y9cA6c"Q2ۊP8/ YB3GOQ}{W;VPdۅ:{bYш;q<mD>?$~Zԓ a6K@H,a چ@/0'6Esj !:.z1ɇjA\ؿU*x8TſAOYkUaP)s ZyYefλ*X"ky7Dpz/'yC4G/'֟#KkY:+Ǝ;hO/q|%|..>.'wqSA=c igu}aDb&A3 ~{o,,tYުj_ݍch| gJ̭O@|w#ZdOIQoIq5SCImf QU 6ȴrKɼ& U8N-Y} `j hnjm.|ұ0}vs-Cdguz}Jv'w̃)xli^QG'#фv@ _*F Aj|hʁ0;vPZkOEŬE& %v~N_C-q 6JU `,V)Q0xV,&ʃ D"2o$ˆ:C ϫFʓR=NZfĠzLӡ]V}Vٍѕ(6\L4(}+\2G཯^FKcPRC9 So<>"Dv'//P8r ӽԸ5JP6g{3(5 (K=Gĝhm¯R$Iਅ}m0t97e%bot{p`9nZ<_>zN \ŶmĒo;SC#ـuAM!.p&ɻwdNf _~!\ ~I" *m, <+]S?󞪌#n2Ow9 ES;Qw2]IlQְd*j?Gx{Lp` ?Ym9'5 7+~7m''t7/G ;^j1Lƞk/:TԪ&S8j#ߠ% J(m,p KS@50ir{~eyԫ4~@Zيc~y# [vXvJeOQX7-r_WjژKtsscGGnEsc~E!Ȧϵ4qIy۫ܐ̋$QcVVD>P@IƳzЉ=@0wC>^F | *Czܢj;%yIs{KsoJ:CřS`j[l.ws ߷_HYux ,̨?̽>)( &%.+R y;+B3o!w I>ذR>Pb xgjX(M:JqYGܓ;=_77ys)Fӻr㲿ѡ6[&A(+*CsW@W7t8W!L^E0KmV*FMuޖ ݍ_.1H]ӼW ~;x00S7I'3o&A/;n d$>—\kߑ!q-gT3ëo "myMvJXpgG^긞#y.)_9PˆO&>L&/Nt={d+@XgB=dM8JmxȥNIx[ ~z{Ԝ4s. C$,LI?uZT:YFPkM81ÃgUHF0A;+]:B?]EJB׊֟lAYO%lߧmjJR]^ _E}4w Z_C ݴs W.+QƄ_3NR9 1UqX2U4#S1)ڜےZMPZSЩyL//_FWvaW5ҩE7Ϯ:ӫGs޺=8"FoXqDߖQ#z>ɥp1M?SZ؝G59o\ЂjN+e*u4pd~%;yP~IW5k^+O VQDV8('`Rʥ_K=7k0Z^ՅZ˱<+&_X¨ 0XD# j`ؗ>n5ph}.Qͅ0%jafp$C=IA*Ϸ]M^0y1_Kmjz2XWg0q18]a7Z\ EE*$v>؇9@f=49y?R f\cDrߵ'՜`Qx3;*2fqRH\/Y׿TD3IPV@VoMY_y玉1ݧ'4>?%M%.4?G!GSOj1>pKa).% XT8ʿ5`q*ɧI;冟l}}Rq̌YYg:#.^Օ $㿮Jop_OQ=I~3ۆ+ 6I8@'M^߉ih;+89ipȸ9lyGZľxP'BZo"}ߟϽm^PڝD!}_<w<?g#[cD Т#7":-{MmKA @H*pB( ˿"/C+7 2`H%4MGB\QQQi[g`$*z޾Uʥ&+d2&&F='@N<,6;3W?8lJ`<"4:}^뛜Q *%\BPޮ}]侴F[x`Mh4H[~n#땤x|иQ!a䫽(e@ZxχCڭ)wU+sm>.uL㈆ jnUGsq'%"hӊ}%~_3@tpNN މ]urC7bRHy?cf$sXCB6bG r^FD"i60CmF\Y8!P쯫KyA&04Kq.~zN! tg>#.G'OK}ۓv%noo٠/vE4-U~?y{.ʡ8tYTԚ~Wop8yoy5le]Cŭ# UUkT2m)]v@0YE2 x-k"}]e'U i72Lߕ-Zƽ/wSR" 2@`gl9U95خd|z\m`5Nuu<'ؤ Ņ oMTߤwI \5z`PkM<گub$LLOyVc74*٩Sрnt@Jd {AtAЉc]/.i$:2AÕokdFyϣF=( &F(qDӤG`tE%T@14p&#C<ړɉsnzB Sb*Rs]~IJT9~+7ʹ]:=޻Ev-<ˁ|}-\#Ds \3:32I\>vc9I֡=3K(ǹ8MT lfCQ=zo<`aIرdӌ2U/r)4kHW8(w Nqyr\([T9GkvE iz:ᴬ}S5~tq75z6P`0guAy، }4T1o|,$4F7 .SU dz֓췸]9UUPDTm$)А1BH75PEd-;o:Fy_YCY& ^ Hꙺ#q%5#"uKInI>^pFQ50+iE:~=Hliۡ8k[C<.aA?7CclT`Kp?w:t2!189'6%ШԣbIu/Ue@d:r>uˀ c>ǃC#\*ݽWC0nɤ&U`n9ܘb ߠ6ZW`m9z${]w$W;1JHg/K \L?0; /gIkK~̵t;.UI8=࣒M,b ԇK]|TЭ{]}݈7*e#l JuTUCO?ߘE!n u)V [lpH2x\i[$k/q] <TIDm;zͮK68#g8K|n2#]]sm_BSL%m|awcu3î=AW@9VՀ;/arIcrSs#VWߘ웘ZвaQO엻.U}ؼxgU2bL9xG I^ { 屟8@Ss.ZI/4@$uu/Dc- qަB־dqoŎ^J[sq:iLf'V|-}eWxl f׿~zQ蓕R]hblf=˱_p&Nj[)U.9{ w?x-a^<[`O1aq_<jmߵu caL|1MɣvC7 YYoMȦ?΢/h'/'*2nԔ,6T|3O!3D먬3ߺ-:ЎWiYiF"$tOn"@7XCe>=g=Qc%f:VQ1Za@&:wڥ8:Ǜ)@tjl]6μ2)rȑP;a>aJc2E~""sდHS+GokOX/?--.B>j7PT.-}_Br" ('Fz~u9"Q5 RrrX aձ 󲍘= {otK֙"D.y;\nt|œDg}UB&5*&#)A. OkArxu*:7-;*5|"?_/7n_FeUrJe2&75T)Rj^cݰ^YmR׈^fGÅ_:[2Dp"PjFIABwILÿߍ [&YP6jXO|9Sz_fuB5zy.lDڏ2 A/Ǝr AP6qd|ĊJBHy' ?~!b"zp{1E g(̉,tX\ܠQ&'u 1Fq&WYocG!33Mja~aו/PR EOaq"~ a 9׮270w7!W0G'S.vQ[^ o%(z4q,B7 P9<.uf5G鷷 P#~qsn(s.@Qt?_Эih^bW"5?8.ܩZE 3i8Whr*[`Gɢu8Lo܃MD MPo 9A)*:<=BCkt+w 2j XX$e4^[EՈǵHl;@A0t.iY 9QUV}rU@H-+`RhtGjA:} ZjO80gL@ <[9)Ŗa5¸_#,x;j)%x0^j+^Й }?!g*ayWGDbN"Y7 \N"}L8C14+z#?G F|aڽD7ye#}JYגfGza-ck":L/ KI+cw${m#q$5.gmߘxh<%5w5NJɈORBþgskk<;F?nŔ}K]y|~M,74˜c%+.X?4#m 0%B6HjA}z&Kg=)d ɂtK<< H zR&2OĮ V/]3 8@N\j .U 4r&D-*;6T9Ll1i& -H_Tb$pwXK PKމ%LfR,v2@hBv:%Ѩ $#z+ 3_\հ#a(C@%ŭskGb WI7AQ5ҙQ;D,4jy,aP+oG!C# dHp gh߮0A%bk8tFNSSqWsdg6ɲN8?/ Ǒ{.UX-p+]OU7.ЛowP~2P zyr,j޹C "F)L&4jd%S#:%Hae!I3!Heѝ$Y49 ,bm~:U`ARWuMzSE MPv˝eqm9١_l$݊H,^CPK/=134*nuvola/64x64/filesystems/folder_yellow.pngUT JZA9PQux =V{8olVa"ج/نAoƜUJEیQP9v(}X͡*5K"Ĝ^>qu?\9]˔+lVϥߍ,X PN&7١Y6{GuD0 &o;s9V4lsa ap+@]Ȝ-qKZDҟ[qXm ud+z^Ǝ֧qZi!>DbScQȌlw1flc]2_GãDr]r32$--cRinp[&$Kw9yD5rMQ[c4l)*":A:ϺrrwwB6Tt𔝷-iyZ>9PeDA|Arjq>dE*p>Fe:£gP*7`sk$_e0rx𽑻2 v>fC*\G|g Y5b͛ࢺLZ"$ZEVϚW` nTVIۍ?~1G~ l=FH.Q-@Vb: n`ϋ`/A|Hf) %H?/N#Eκ:O_୭a_S7 yCBZf>VlpǗ lT=31t1rO$Q:٥ڀdì87XpbaJ3ӋL;Q(H5Khh ZE+ {v;?Juj&_?>m 8s`j[,g/]PC$$!8 pNΨiT6A2pP†B6pפw\s`P^Y2vKDJ1XJo$sy!ol~{;+kqj61.˶?ӼHuI_r02T h&lr>O~v:6)]6~Wiwˈ±R_5e1DSA&FMY}DQï뱉8P2%V'*p#q*M@t{kЊ{٩1f3lJ< Xhsbh*  r\fW"sf`|3u̲@"bF8eLٷ6=|s+3Rsi" Ħ2 `lKl*0BKKXI 0 na_1nsxVظ;N٣ÙfFT|][Ae&G!ڍ,#;Vr|V.B޴`Vhp#LѬ4VAɣz܇HgҕDSƴ 1-3F\Ǧ7sjSj%20OEJ N̢Fv#!EllŋlJܼ\{}0a86OԨ- s D'b;]I9bR\3SV=JTRme枛S:Zy>v<ҸYi~4bꤿSgշ۟LdۖU<[ݮL{\|3A!e kTWZyb-|.v{EimHЪ T{fsܜU^?WDW]F ?"3?p h Ua,M#M#pS?sÿOi,MvуTqhӡʿwy,V9K.PP+9'֑\[j84wzWYN6q)~q433gP?C;q|rX 2n*lx}~euDtR?^*Xs/xsbV1L{=)fo֯oG6* e [}*MKbV/^ohm!-}5ۥenkDbś$)'kVB+yٹ\`O6w^fY8A{T^D=wH7(x-wslj/ZYBC=U3By'\f^Z&{1u"pokGⒶ=̎}9vFs跑P(ۧڗ6-cGMcJH"jæ{Dg^7JMyW@u0ۆ?PhcG\Vrmz33ȃ @;AoQk)NgwK>z."ah*~8j p<`*o4Br芗:5xc,v"k_qzoٞ!ck&讘obyuaKBB -`íPsz˄= ѿ|RSNI'{\ Bk* C4k0ec5gS/kv_Ćc^5HC:" -rJ4/ze];:E.a=W`)S1ݥrqf=ϕL0$₤p.aƐ1Y;-Ʋ$&DTu泅\9? YDQ2b Ϻ,>ٌApVQ i &ILٗp X t@H3s= ІҬ02x!] L8`m۷SܱF%CtCpE"^L@eur2"H9.Mw~#7 wul^6'lӇ/Oľ^5hB^A * @KAH3 :|Y4yͺO{_ysh0ɩ 9t9#}[L#P֝Z%y+҈*1 vujmβXݜj?ٳ=ZIa5\ Vtg%UX,<@a},"0ԊJ`x"t"%Xd~Ge˜ջھu'*Sk ԌS{&6J9^5D?h1ێ񀵱%w+5 ESp?piU KtvhdOkF]sr࿜V: !{Χbxm\*5qlYmObwT YͰ. ¿C[b[bQ2}d$o6#u׻ xs+H|ﯦx_ ӷX)2E}:˔W|%<|d]{bfa^5v;,:kvXQ,&K>۲PL{Et9S9+j0쌏 +rll?~rKQv;)">= Iv%]]TJbb1q1)jzh#,0uJA)XLSkFQKӣ7~/Ύz7]RS6@?b٤!\k䇮djӭ"uҨZ/'Ќ:_;-f n7b6E_6e6qiIg֚aWC{+OCYeA-VV~ӜvLCĴ]$T[ X3 t8ʖZ<1竪|4uHyVx+3ِ]C/%i吷^A;={:ɱgEgG"jFkkٽ|ACPOE:~**#)`~jY3fX<(Ux8.X6{ k1b7 7E\ȪbۼQ0 9ǯQ#SP,rb? +-sS:?`!솼Q3jzgz)W5⠱0W+q)A%Δ3u c5lW."o%M풩/vreTüPg`B8Gܘ. iJJϼtҢ]ގy o918A\<®Ix0KO1W4PN:.1Y|=(/> ,mw`(Ɣ]ߟ RNIO:C{rX6NС(G/^aXPK`f P [|-ef |w2ϡ-ws ZΏs.^h\)o( p z7䈩ֲ ey޹GnDf7(#YYU;=ƐN+8$vɜd671>kgt#M6BjN4FP,&h}޳4'KZurM122:-N.01A2W8m-ga1Rx+n$R1F/{PWOˌ|Dn/l6ȵ_dm-#epC;8(ZъoB3ľts7*q?AEFT`)KS"9c`\AzGCC cGߛfZ.&%M6Li d-au@ :G"mhT֔ޤ(h!z}b4]aD+%%Mew|qqi>.N"B>e/&mGA lfDX K~\JfJKJ3fB'd3yNb=MʊQLj#7rrȄNE\a^#!4v͖hE4cNmK7,^j vFյY+{X @bLIwcj5JN~ 2J W:&)Uʛ_TDՁ,iԘ.X c&˳2&lD\"ò,Fmu.k}$a#KaK-Z. !(Pak!A-JmKl$qaYcT 'È9.LZGIE$&:/x_V6k#P}jS b+|1_ aSeh)/??2"_). ։?d7l0`a4%6գا,\i\}q"sELƺ_D63 4|}'UljOjH*@x!;=ю뷗QjVաA".v`. OWe2M+Wz]M+'֬XsܖT[S.s9j~]sߣCS FKM7=0jb>Ȅ9tfqYޙ\k1 +l0hx63fg|Bc&gorөyE3I_=x EU4~O ly{ 8 G=Sbc߆+=hH:wjt:^v8 ^ϱXC|?E mb 2#ÝBcV9&\]ݘ?ܴ.ՄU޶ sot$skpXik}PΔ G+Zr;P)f%+YE?OfNm&~]=n9IlZ썓bTj~d'djz2ڵS WV zXp@~nsO/Y<6G1FbZ Q b7ES+֬]ޜW`zw>oò'|vi3颹3M뿘TjpbMN٬⏞1s?Wkm]\;$=kBq|C!C⏧S n1[!,t^yWB/+'5\[Ok]H:sN=@HszplsQ.کzMC!/C@Wb򕪣y4 Cr_~ 7h#c !įmRhd?J;D0 m?3~=˟Ǧ?vA?jMD,o('yhWݰpf܌ Z =c+ ڑ~WeN1ݐl!s`4Zyʔh? zlշ|e(?_U"0hAՃnnwIٯ_8( t/o}swCǂ8 iNCx|_PUjq\ M4cfP|ڻ*sFOȠJyAO  H<#T`%Cc=a+I]%Pue$ 5{cj覷N?7cÓRwͦft+:;%ɟ4Kd:y;ݴ}Wf-c0'*b;[>[t!bnL+B'(-~ Y^ ˎ˱wĥeI @42 pb&wYNڤ;zgK{ -jjXziDO>.tRu˩SOo$n۽_\ng7Q1>-=]2x1sĵ`G츝ED H[dWU~.< awRSQ_ ]%jzT;w_g}U(Xk yvܺCߩq&^ϬoFbܑ5fWuh1SQ~:F0 ZS gG޺(nwYy}+cU~K"!06}#BdӤ(C"WM.&J=YxO?lŹΆʈʝϡ7| nwTuuH.S2.;ⵄ=:L1X E19{=dO`q&ohSE_)c=%i&IjWTr qאb9km4b~bH zX@93t0e മ_NdN4 Y=Z(][wD\G.)7Q;k8%NoN]1iK!N*Gͬ6*Q#0b:%K-̟د F/C ; i(^u:` "k5>bvNsMAvI\-KkOzV?CC '*t<C6Emi]_qz?ݩ u;8 !_v]A5^-g6s!#8j8Rq̝5(6{ي0Ίg'PKx4ە5a+Ս6X;b3zTi+K0+16NP|~.6]M0)̣6R'ğYɫ:8 VUG(_?_!V%0kש0P*H{:3#c+VqImmcڟ٢ g2YK h!7q>Pu$cCNFeAx] 䥚-쟆ހyGy?o<w$Z}Beus:C^F8RNN"Yԓ)&VDvPB-x e7}(b8޺w_~|RM 2k0*Mn\6k6(8'2/J2_i} ZOD( xXz<-=U,T|\P/N]RۣJʾ+/$T07C},[Ou4nNR8dQ |`c ]9{yZk?"xP$Z4H֜_| ׯj^K)7$>yT\J4X8pvi k&7I|8/dtكf.J0v69D\/t%B^; u^ĽHYOU?<ӌb5$uE-|Wj Wj6f!?>Wn5JP܎۷mȺvydb^3SMeW5Á;oo;fQKh*0w So8O-$Ue jZyuk"[}ޢ~@A!`0XTl-bCG!a9k!j |3*q#K rdkb!( yezkH9?71ʍ'k-sQke416 *}:WSHHB,;5M4?{e2:5pxfөcrhN߽q_3oqFo@ apr,}ȍze kz:xl$ 2 DwlM(`)_22kDt~, S"Z#b1e]㗼|f?=g?g4E{E p}`u=&u,QI]P T1{:-vn1[VW3?3FWtڿ =~*0 0CGػ؁!o@>u#sO 5 eQWGE0 f!666G#GCTs30} _?YSn|#0}#qh$6Dk롃 V;IZgZcRXDԾD>&$Yյ޽;VTJFY)>Dٺ0k0E i7WĦ; ׾g0'iPGL;׵ߙe`a+{q:+Gce4Ű7:0ݩvͭ"֡ɁCi`q7NyzbbAefnnvuI;J0m'qv{4K{=l$Gs#0]z<1z @kng]G, ތd]?=%TnZ #4 a~'Ζ3w'V=]Jƃߑ|gM[2O IVӝ!5t[v>`OSG"kJYkCk#'ɏǡFS`YCF-=l.yj\x=w,z_vH !! fwʢބpm?hAw9uq8I"$!Q#6 ?|$G61wGCY^i^G⤪|ۦ'2X~At>be0>Ek! vev׷v7(mVgx |FZG|h<:0(~ʳabe(zݺʥI.I$kN vqu:!JuR*׻e5ޓ]K[_JI*ʳ?$$dt:zl0V¼'V{zW͡y²]tΡfe3YL9 r 暂K`$&L i BP#ӥ#Z8 d|lh/d#MR2Y 5OjI@AԩtPd\5⇺DN#J8Bg^I[KV" +++r+ X f:$AKiT =dPC36ΡH V+ػ×Y>h)E"" ,n|C8NLtx;bT<-r @5D@0$ڙ`z@_)K%|ㆄs/ WF6$dѓj i58WLӥߓOH,"XAPR`lj-l* ևBqY2a C$Y8sB4xVz^ mY\}_9Nɴy\rH-AWض'fU5s3nl~W^j Fʥ HOs!*J0Э nW&xB{$ GԪ"l얷K(NO3$sމi"K"LU?3$sI9o){: _Uc2 z;6ŀ+ |).sْ֖-Bb`Nzܖoϊ }eCqmRNRnaf3L/<]w{浰\%t孺vT o$=]rԺu՚I0P:TΰhЭln7l.c?e/S3kY&vs[t)iABޭʚ}{FY`f%/ wLXf?bSt{[}(Nby ܓP x$o47ɳ5}*|X; Z:i)Ts#렑P$N歾;Qj3z7ty} U=-3R1&6|^I+N-]'>L=D5-:^0Lu)ak.v!KP2nHImusHS+ibZϪ9~<= ZRn[bL`16Iߨݧgx-@V~k_35j#ȿlvL :K+}$5&3@K=%߷3C,X~ƬgDWUڱĮa/ֵGXy%~:aNn<|8TQsnsksvo sy΂3[˙tK_P~ac/>pfF{"p|VGbtGܶ!lx7UOdfk2eRsW ܓGw6Uk!r?ybbI+ jN|xMrZaVOyq FE^>tyݷ>}pJ20Y Qx!Ï_J]na4IDڽ=~G=+_u +< xIW|gٛ]ĢGIY'C+_- gۤ+ | -brtmXq #}@^%qv{PJY^.1uc0xL ;TUytSU[W Rw#`UV*o;yl _MmN@ S 5:oqIf0(H &(z^q\WЬus~ύw"ULֶIj@4̅/a5/K C(aεMy@-Wh+Ae\xIlL8ʴZ(mܝ~ށnyLIH%q[E]_ljVꛬG( ;ܹ@zRSWD>Df%R+L:QV_:#xQ/? ?(ȺQ!xxs8hZ :|4!ֿ<(uFxݓCK{b!{]#k+H0'C1xlw4r1i-T^k.R7`Q,*6rόf*,XZTKOݦCRe@:.I ]Ok5(k?] kR3k,:J{o8Fl!]oGvam>Cy3.>@qn&c<튂[S¨,o/=/-/ou2vn8(D5IFvf}f[jEo륺>`)e^.F0B?#3]7oWhLjb<='@&!ӌbט(„^88;ag; %`̔?#6XdFז.g%&4)~bvN͒P/Q=.=Fl=^i Vg](&;b"gq:)‹7w"qP4Uvj39a~ES890n[Jc9L?^1IG"z$BjRZ B2)J6rD%C,WLn6(Is*jZt=[Оޝxm80ɲok˲k-}lEKA JQ\DD3nJtC |σ S_|8m|bMß$JXZQJ>(P68윐0yzOB^? ]`(,8P05/&~=W:CP-*ˑBթ: kqbA|MppRw.;^I`- }Fs~]REYL9If;tpK .32@0 Y B)FIN^r\7^w:~:c&MUqF /չVrq3_Hټ4dŖ MqΆ&z (D]3N +[ʋ/^ =E;&n*V倥dj%UtK;e b-~Gx- v.&.b/*+|OApC,۶eB0XYkHAQd]3fRfPnK: wX 5V񺋍wW-<%<]*a;WdqXYP=x%m#F[M!ޑ}d;}`A mh$ߖ(~k>:m gsC9!,*XY"!2<|D[_܋;EV29`uVW8rƸ9a9MzAz@d aPdPHK[ JhT=KrƷ~hhj'߮kRbW$r)"W^9:#@_Wqsc(jx=?J?[ϙh$쉂աMOYC&S|>m6Uι}=sKQsФi^# ;XMB9[/Er=@ZO7Zj5~z;4-2/mv*C_䧼==KˌH;)U>S+zp&yY!NV'Ah :K m$w+i9 SfAqv4-#ۯQB)N86_=wy8v# g뷟,+oTI+nӃo iAQ@+ة-{m(P0C-<3I2ڴ#ykV|S"z/LVOV0.dnP®Q쀤Xx8mS6jYmўO b*1ô!2FtnKcUݬ"ɥK2H]/F_mS!~1 `;-/g\|Goli9xdwC}Q0(}V"/PQ%E|% -2&ڗE-A1 v%S @}_I+M[W}B0ih#t EXG`cгS[ӁI jLF0bJig_@If3:/ 9@^nba:%E2iQ5ܮUT* w$hfي==pydw¿nsKWvkb:c2gy`?os 4":ξ  _X\8IxKc:'tV[97h(5kAB'!5+? ]Yƍ^F^ra.LK@t ][uB.ԌRRMLz'UpM.BjD%04#dzx5I8V%[nS"ks2. նD >Y#J*!ϛbGnDWzͿ%Z\Mjfڶ t`S|ĢAԔ 0 -g!pSU3۟i돬LI 6>ر;@ecata\6@8 WsJS[ݥE"Vu:pٹ`﷗(&x$k&a*ZY ;zˡ'3jC<7W>^C^,Kg=zI7IGT{U6I&r'bv!m}M͢nF3hןegg~ܜs&YB/Wvmg ZEy˿18닯R4gs~`~lݴsCO(PKg=1Odۥ>!nuvola/64x64/filesystems/link.pngUT ZA7PQux USSߛܤ&D@ 3-X\4d"! $`@v M@Z[AB((ZeFJ>ȇZ( ""T$ȻW=3gol/V8 CŸ_/ 1Sm;Seݝ$c/Me݊.YH_x(Ã$&Dd2E ? g+ BQ a oŒ-_ܫO]=&ġU܂MKO@Ԧ˵ˡAV: 0NT~秮֥Vm9R6ORm;[VUCc&-Ri4TLbF.'&0;JjkHy\Q +a_}56I"'ֺO?vOBOo3Dt/_r꒎<}K[rd*z ~lD}߲˻xgQM&AńI3gѭ0:G^>CP So>跚?Mm-?##ÑFLJlV~[ 3 1k3%ayJCԾi8MR-՗/lY I'c?, UTooEWs6튏7Dqخ d$яkEALFսλĀNYAn0">C=ڃ9 ,ɭ". A!DC}".$L( tQ#9Z {bCIt`0 p]h,^Q;'L23.'-mSuTQqUcR4h@!؉,;SQS}rylγv{Di.Y`L 4"2FU+ a`jP(\lzb+DuOn׾OP̭v5gJ1r8`^'I8\bJ7/1dOӇr΍lHgĪ}s3qQF`bp^V'$r8iϱhSu^^p~ òjݮknєh y,B+=:dž`$5pT +"xM)ct^W$yEu10<܏媺 u pGW5^ӾUCn[^`ưHQm{r;ռ^Bv]Ebgt>BZo&!wA6EXE>g *dj] S~'MZY<D7Vu T_#)L1_d¶cy "4 MmPKg=1[42(nuvola/64x64/filesystems/lockoverlay.pngUT ZA8PQux UWSW>7p7|q+y<c*Y<asΔP7ssN޻.;cobw:nNMd)2[s#Ȥ Zleͫjibt;Ń0+ C3  y@Z79{L 7$gh9?_'[3ɩr(S"6 (}ӄ%Xa#܋ KRRi⬒JTИ3AظRz wtCVRsyjA!A=H$$%ERYE\41 5aXAt;M}7st_ױq8f֗^• k׀dKϝ h\q;՟gKa؎Ubukz du,V=#:ܱ%v͐rTh'>ybūT=##V=Mx4%.E7nsT64;}?O^UkD3ڿA|)ejhl[*ȅrp8+ \ IiZIW\ yC)\ж&!Oi||җaQr#b~CMP3g.ߏMFܧ y,2THMW:jdI,R\s?b<jd^`sGm~Vlo©칶Ra964}@Ln;tDkPj! ]k$?B_z;ԉe 7\Tb 5%@a^~^W۪{ ;'4Jrq|"Ii+}to\ɺ@%9=PP\MŠeL_ꑟkԹ8NRwٻ9MH"vKC}`3pJr f BUs&3r. 7r/Lx4AKq|6XAR}gpwS E;ovױ2 du&kbc R?rl4O\\~AJMAk*٠EP\څjB. {?EmonD͜zGbݭ0r{ހ!:waC*/ Tc(R*N!;+XeE6- n,/c~.5{ûVK\uJ)d^8/U8}@cT*%@"_ZDۓV*md~ZXo8O̙z[f/+u\@S¾Vp*A؆ŹB\aoX0yIZbon`ȦFTERcOMh.KS ԕ/<4b%P3x|B;.-{f>:,f%;EW\W=(g?;t{ n,#:ǟ2@&OD+$몑ۑ "m6rM2- p|qlc8c &:Nv18_PKՕ=1)5$nuvola/64x64/filesystems/network.pngUT ZA9PQux X{mZhmv۰]i_5=JUP7|lB&.AC؛ QydFj,DI!B^V- 7 Rҝ5Y &B%# eI䦹'N__K_{W? b+.6mULzV+~7Q, b;FqP٧8τcXlI {hEzb{v!m8 6mWDS,֠=3qX$d {T7M*MLQwܶ]p3 (wFR1V!cH?׊Ss4a#O=U~ipEd_-? OC&\!c|P\75C_:أU5U1ƭi:KuXڧTnUqwy^"Tgx t5Ċ8sFn ps+#׼m'au)'m.{"}#W!SWgwKv&BꗨPvgV* "Zy5[qN.> nԙX훦}Z! vhWrEuR0qY"7i.I_gscF$wI(GƘs\`"t0Ѫ 5R BJrW@J襱-hz>ԒƅTip_JHA̭zP!4l@Ggć(BVab43.q&֦Ap\fl_3RR0Iά30pҳ5vFdɲ fS;cQadTgXU 1'9mtO?IhJ*Js7H-kWŐ /xoGc߮kx hu>NO Б\hC'xvJ p05}8S]&Q>|B1Ɓeo !B.ivPtnv_|"`ꢤWP MEBa^)p[7嘾TuccWe˯ZGLя_бFбFH& U.ByjJ^q-:/{j] /=$6EɛԞJi™Ouu# Ŧ=˸'MIDI6G`w[9AzWf~0/FsBYL^5 ˃Ht&nƥjՇ+oĚċVI}NaK|9#[_ OcWƺ*:x0-=kkT^s`":`e`%|$GY|2Bm]Ia%U)p eXAW);gP L*+<[M  ~Ofk91j/z*ϗUx?kl4pEXѴ[p7}$;'Lnq#n_Hm78Ur<:0z rss34eBJ5mLGC8 9EY+ ߆4^Et;#=}P 7fl ;:'2vٜ3O=FM}({@Y$o@~k!fDν*KKLݥ˩we% .D֬}e&:kxl ۯhmi58nZ=tDБ>F-O<%j|Y z|?9_o*Jy@~Z) ,iQd4v3bǟtTd^H(#vp hl@UOUwVzpfE>L_vH>-%X?Vz]h%py M(QF]uꃸeZ8,-*zOmOҩa,Ȳ2E_J#&@f^2Τ!Ԟmժɷ_˪3 جI5Y{YJ+M2y0Ɩ$:'5|}֐b."3>j~N~GB9ŋI}zؼWS[[s]ImVd8/aBͪ"8UM*a\xg6I:=!N,op{av`tx/y҃r8vU((ؓEf3Ycw&5zIeQ v| :y/vx$PP'}ѭL֖-fU}hI҅mz Z [R\/;;|!)%5V+*7mD}~$#d} !NDEh,ʵC\Y⯭RjKp=,eN znfZM%b XF,?J~gwt.20lVuk(}J̹Ԅqp~Ո- vm&P<3x_il=Vͺ]ԶVӖDEJ)e ݴ`'T[ɍJ㔓<%*aaѽL筛w`(ydR;4ahRiy#glI__ݳ] |2eBTj*$2~"nvٰ~CT+ƍ>k%zꨨ(ܳo乍EBx\5g nփuw7h=,mS?cBv:Ç)'BISoVpޮ+h)acIKQݫ]]L\tw:$7 LsL⌵ɦ(6\mH]b3F9ߡOΝPg)ڒ0}ёH(3Vߵ.^8T1~$ȓ@_uQ "| va4wW :C6-^},x7S!pf t(؉հ`,}n+–M X=LؔKYC\Uw ZsB>mw !?JUpw؄,IԘa;UL@LʇcPiV):75=^py7d8\ u_jİXfaaOe?/C}TbI? $cLn-ߛGF!O:M޼ 1+8So1e ݁, H/xm^΅"ѰU Nvܐ< ڲ~KmSGj`%4;P76ū/L*2t>aF'"#t4!SO䒾D+u[;ZIN=H.=KyzF$3]t,QpPsL gTUu!Ki/y7PfHMGR KE:뗭fη{ 40p.Ŏ?'RG9M \b!̦P IkZofSPJ)@tEq%JvS̮#ſ5\2.7oR7V-WᬢӨ*Qժ0aaXŀnq`(:=h-%FmW=\CFolfe 0Sg[)&Ƈp <)^rNvڇ|q%+CZWӊԶj}?TIכsz\R=Ag܃ *X;P/5YuC%O S+Ae Mi޿8VPK_!yؙHFo&C"'N?~ܟTi[=fb>I)$iYc1c6.kHai5& -Y]?"z2`!c +NAsg>Ԃe̻3Ws88뙚0'ΌmG6,?q`q6{F2t@ر%:ō:拢9(}Yk t%In[=iDŠ$LrX [HX"CC}U!N>4ygP,޴lu{I)U?g$_:ȸۗ)Zlg6 -?G_J рټqۆ.PK g=1%.*nuvola/64x64/filesystems/network_local.pngUT ڔZA8PQux WyX׾ɐBB $$,"(!$,B!(OIرZ@ DVAPAQ)+Kk _U b J[$ 399y /W/M,rY48915FP)هg۵xNߗ;,G nniӧnDg ><9Ƣ t]v ?ٝ-,9`9Iqr|bcBJl%$<޻erɚV2윓жQ KX8&Uk \#K$z%g$ FD{!ոC|El{ƾԜ\޼⑞!MKKCc^2L\/btwYQQa͍7z6Qs. H|=!37m֮䨜T a޾@dgW\*ey:Ҵ/8C6GOw-.T|/u~w0:Ż-MP(qXX%[s+ϼGX:B`3X2WU"W3%`3V>d.IB5 "5E`J,_{W*0hry  }!ţeQl7/g @!gXiV㒾21Jk:>.Ѷ4B๺UF!abR ґLf F0\7=Ƈ+p(jCk#ht&^q0xݱztl ЅՅ51.RTǼZo#C^EA0,:vN™_dv>  4ZT@DWgqq0 y;y6 0)lmcW|RYk ܥOt\GCz5_!Wh ~"P2+i&W@39oC`J'mvōzQ 4cF]-1 ZmdfdXTgmVtioޟ\k~K /^'M j/ Mɢ0K݇Hv-~=N VW 7 -B.0(naψ^X٭7B>T!dRj% LAZfG(J_{A"T*T@gJ ͗6iZKa6X/۫ʊ& +A~xT[=dz7U]5.XU,n3`B/\B YVnE5JlzSHx qxH7V Ko22!`KBQl5h9ܷ#QI?۱;ىE -8n͹$ʕ%fޅ/ z  }E5^Z=E~CK[v<,RS xXPMRME1#UeQ}E Π5`٫C Q /9b1Jˊ55JJϤ ZJ;i+:oxi#f7Q+a?ЧnK$8@=UsR*rZgr֙$ۤx8pg  8r7ivRT\MRďO i3Rjr>xnڛbyL$w^XsKK֒PVKZGr=qX+DүG.hi\w-@'i(hHݵk1x'Hu@m2=j~y @rRvmrtCꙚxy/#M9gO1?VH)Ү.iV~cSW]&9=U~$i܄E\ăLDP]7vTT\Jt^=:R|}xy](vePo),klQc=7wuAG{pY0c}\LWsBVN'#v6A.._v ʵi832fD>5<$ 08Lz'4 81?WpNe=Eؘ3зg7ٿfsۓ1"=,wzʨMMlr܀fIp;`|.q6xjn.*)TJpskB'Y'""pgN7 Թn-qQUsfd[s^.Hi_N_e+5iW8 ?7O^xuu#Gz 3ﻸOuG q.HnFX>4 Ąhpn]\1j"IL}dƝQO?j@M`\L' _o8S0@#u%ߓY^}ܵgY\mΏF^F-ѢeTͳeXY5/BbOĘ.iVaXBGj?pϒNTx-hyݭC>=./u.?`=En5QM?7VzwOT<|~W.M޼'ZޒAFtJ'B2!vt^}Dx2Ĕ zT=P~'u}"J~8z7]l 3W/r̗$7%#ĕrP:[v&ˆ: @G>m% YNC@NL1ZGAC7wX'O N{]9yaa%ؼza^:ѩѤ񇈈q~Q8fEyu߀Ʃ+zL(EW=7VfNJQFc:)F{v…&VE&fly+*$pZ"onwɖmQb⊷pcPl%/} ADT6M^G [SjJ!00fkY!c % ່-Bi5Ζ&' իBAJ5g$0UBmM޾<ȭ+R>mdHR hղVnG7CR{r&^ȧ9N"\"ۅ%#0V/p3;ﲀbQ ^PL]QD5X_8OL;>S.`bv r^{K?PK g=1m!nuvola/64x64/filesystems/pipe.pngUT ԔZA9PQux -WyXRypLqL GiEMvi5DO*SIc C[lה̚ԦE˄55l?s4LPP@3{s==9bg357#'eEEu"U k aNEI H7!)&.2f=ѼC{`0P*8gkT2pU*GY.Iq$\U;::|[]-HQNJzo\ܽg2޸o4* ˗S=UVHvm@օM_4$#l91YeW ,-)q/[GZ%VYx[yb,+Rw0d1* 7-|K+vݻ捳ude-EN;{X "k  g{1Nh~mU٩~ϟǂ"oBv#憫ð\ɇ#Ipmm @m<c$,XY$ll#ً`c%d;2qE$27Փ|L^XfhB܁*,`FA~.^ro6>zygoaњtIeؤlOd4$λeO"p=*-.1c1---([<ƍΒ|@L;cV TZ,O?|؈gg=q۾o7l˽p﫫L(0,d , !r1z*/De֪-fAXSu+f>AIM= j@1ɓ;n{B^c9"R]8tb84 W]Ay"ňImax^@؎cscz@qcI(2j^Am߁k7ȩ[7mzGF::i\NU@ D&w]^U·L0s!LfEw@#$EiUgEMx!:4VOQeVՌIJ@ʤ҃8DhXY}Ltl̈́=2f1ߟhOjn>J|"׳"q(\_hThw>,^e*5ٴቆsV|nWTp]S(|jukmwqzu@R*ƄaК?\u:k9Dkm}hҦh\_n~˂jBIX4D kX8^RA,ШQ{'_ :+ckP: @gL S?oҸʃMND,z2|iᘳ8er;h/$&ܑ)_ iˣ\.>Bv8 \±+k:&R.j+ATuܼt?h5IV|/ځݗa湈8(cU2sE: Ba[rQb4dvb ;֐}y zN*gG!n̸U{ض,b--sDnestYQD8sWTW'ʨZxǑzaH{f(yϿȠe.}NvF V ;ڹ3Mx)5My$кNo-9-bsX3awv$9߁<Zl Pɤ9",Xp`8:w`#9we;e Eh^qZE*ng!"IlyPm}8ūصn.D`idw}c4eD "R N kۄ>%W ,#37in@kfO>qipwYܼ<['AK|[,m.u:'\Ҡ1Z,&lnq= #Dv opԔ7KIC^*ћ W sqvèE͉β?&QE(W-(tb @ r#bv x0S8+[P'k8 ĵo<':'|EJź۷4Mne|: !4O0_(rK`T2"zb@{uu~)}t.;Ϸ%Sp-ښb\l4})8M5/LrYbxWWoH)i' +6mE`bhXyMWR+p^xz2qbNHRݍ[s*,+sWTX^^e#`~VA٦l47FsR=?N<%!!Sz{^ƻ< )&9$͎ZZޟ?W9&$e į(yyy4컱p~}ꬠ:h^@񥱣{TMַSVJgxnaޕ VVA)Q5Gt 455LMM Y"^@1tlNΦBch 6UgHLFqM-HӬB0qpf &@Q0}|,I$ذk`YIğ+n@KWm?@e߾x#߿:dZ}13:^NLONPY)!-;>'|ԶTСC1 KKpgC4"ݫ޴I϶~ 6 >Ss}#4FLEE8:Ӂtfۉ>ə: ¡ElQ^$)@i7KE;:R@BƷ dߌ)*rHy2N:[vAAAy87z iln_( jhk+vܓN=o_q+bM24{e a7 a ۷wэͮU[=+l\ηtOl#f+zŒdB@rXA@Ke%h%)L޴4qM[y@UpӍ!'$ mD]Z AxB?Cocw"P#9ҰkX ,\O> =gׂ߮PLP_o/;< f19=/ݺQF|UD$"5 |;%䆺\Cּ#!\\W= Fd[n4.b6IԾF3_(.p;<, 3P輵i2OH0(P=i6Z2o%GFqQ} Tѱ&fDMs(g~F:";4A0x~IMI^j $Egx& O=: IQrVTzd3!+Ut\b[Ҍ|/VK9[qfhٮd']Ų>[ +FF!kh4q!bu8i,jUZʈIݻwp5!ы39J~Ym \BSճwwT$IEhc n.;܆ vp~Q;)ŷ69)*Δd!e5(Yyx OԴww?);2m%7nl}y Mgwfp.|M{kR;>̽(eO#srrNtKq(@q;9Ź;Htt~ Q||BxE[m~蜛 9LQkF`*kƶ\hnџXV /rGx {Ҝidk.0HflL_U˿:mQPCB qb\xG ỊnK/b A~> `,Y%tt4Y - LPSslD }9ʣn-[YcDpa[q4ʃj<&2v-a ӛJڦp*yF2c](pe%CoPtW%֝>zMt]<0ZMުi+~uRZǟ\wkr_ *V"do{Fa}'L᣺vƌvzs ]U?Ҁ%D-Q]J"`YFr-\{ܭrw#YMBhuebN/EV-w=@YM ъjmfɓ>13@31hXx1} opM_?"mj=oX)r P5k2t"n}afW$Q}GyOMꆒJfj 9y#Q/*_Ϧ dߋۜ}NlZ *X/K -ʈvN29olPߢOL#DD8G#ZDHK bf ם,\@n<+ JZWCQ]X5򸗓?W$St:cy](XL+w҂;}^ eν24&/JYi?֝CЧ}Չ "h)u;r aUQsY9`g)Vc^i{Od {bd!ȃ-08IxƩ Pk S8i{@pLU>.Px: RQz 1 eAͫWUzy5 Qc CBO4Cd#pG-4;/^d+SVC! 5Sa͙\?s(r'9rKe}!b,%I`H3f@b_ڍYݏ[Of& Dgt&\'-6n.LP'E~?n~@uLLǍw*W%zztXQ-ݱJÐSԯɲEk۴p7QdJ9;&M,MZ~ǪUg=p7۽%6=4@)$QAKD)#!ʺEqja5CQ@m,Ԕ 3IM-So.lݤl}9CKEousVYaYȬmt.sPKg=1mY4%nuvola/64x64/filesystems/services.pngUT ĔZA8PQux W{94Ԍ\맜=*rA9"88P+]I|' H O<ȋ810W4/"/:9^k9[ VO ܿϺG`Ǧ@i@؆!2:[qoF0Ö[@gw8ҁKr6e+Va8qgTEeI@_gkb&U}6Ȏen ~$|&}?; axkן KvFnTA3fN5 m]C"'%t@yAq8lOMjwZ1f ZZ WWpD, <].贈u{;o3CRVKp+=$j~017}`Fu)$a$;zcl\_~$Vţ/"HMin_Qvvx}!wj w*p' F`Zԛ[R+GuR yTF`;I|: .+C8h"$+@oټ"@P\B(m]׌UII$`/0\l%@%?KtܙT]$2Vԋ9&$؄-5/ާZ!g "{/l<~zuhQwxj3iqs B 3H@P޼޳~|c{ʚMNh%[W(::;A<|%Ҳ!)ҳ bVHH #@/cd.$jHNO+2˛[7:~Ɣ"niȹܾ t{ ᏨBR]1 |VaxjuBog{^Oys8+dϼBڲk(B>Se<’3'lǙ_ZiGsu/FCxdϪϥ -&G5 Lo[OhMhp@7̏) >|nuǁ3bjbwܐvپ]uv\`W6K ыXAAƕEH|%+eP5?<迪[Q\`5% ^1ߪ1bLrƂqUUc W7 3k3Q1nz >cFST-֟`i财+B>̲t5R{J[!{?0CE&߮alX QKC(AS[@9t|vQZ~wsD~xIbT}vd#_[(r\a?ZTT' G>yu~gHp2Xist:ga]U;M+3VFU7,0]?pvgI9 (top4` w;bR@Sv,YA6\z6&AY r75_v;*|P%3+Pw,ߦ^3/M3BńPCurGWSV&ɕnw%KR?5\Ϛ$uI}Ri=45]YGyv0p-W۪A$Q/٭Al$0a  v:ékYM8Im7 , yk_=(v>?=+7iIO3[ZwXֻ,Mόlܘ&Ye LQ'zq(02՟&PMI?sZ,{S9 ;/k?%x}c6+*%Z ڰLC[vI&د_?qHū^=!Z=?1恶q95k(ݻz[7&N<䁣"LX~T#>"@g![9ܡ`j T/*7M%E )U #uݷٌcӦXڿjgdMFBB~Yeye\.SaӢ|';VO|$ҝOO;L>?ZX.T"n<'=ip@<3n*]Ug|+X%3pt!ѵ?`a yz^sNpd`p_)לoSrHt=uJ&Hl ׍6F6?8r!LOV%DpP+f&fMqI^ٝXfM;ֻw!d 9*qZt-u+ d.81wNoTSd.(6Sx[uSS|d 3żҵ6NO(i29CF۱C\u/3:i1 KA:b;ÑW1 [;SH舼vsd Rbٴ=(alÝөYӒ5/ /ױ'(z M1ZoB#XŲ\}* ;~8>b0}˳)etA'^"Q]m[qGmV@EQ[]Vj?[a>FvUX{SW272zq:htՐ]3"EY+"mْ^,o|K% \7 \"Dz7j UAnUbl$5e nbܹJ>CiU$7M;7>%ow)LߍE?Q2ibypugA'\В 6nys~fk#KCw4W??y lp{I>9ׯO%_Bg.Kxo;eISW -d|)My !xQ5cuվyH^ \֭Ȣ}0uie~Um/K,ŎUg&]6scܠwF= 7֌H,/,]NY1:wR,^<5]0PW=UÓ/Tj9Xz߃o1z!!]0 [Y7'ߦ{ΝqA)xR墐hc:DNz^=J{}P)ɮYVYxS=Bg,9ozfFKiAqz/4ߝiCDNȦG2n3ƺɔd]ʺчE/,-JY` ko^x79aK +E_`KMM^M7cL?5?_v#ΦyX#]iWՏ6 L9.Z{FݗC,?|%B\nt3K !{>y)؃~ Kw|芵mX4+򑆠.\1<[̰ʣ TNEFyU"O׭T3/} H3jLqz|-8䘣h,6V黝7kj{s9D :V쫍hp[PwGLիDx?ן]0g:ECBM 15|ClJ#R'z.뿼H0m6=vSS6VT~tʻU]n]QP -lV@SW]vwzlcO*54fuv4?pkҴacSm5Ok W=pS-2v1~JzXCL/:$yԴG;5]׍6 2kWw`jVqRMGZ] ˸}; qսi~n'T6.&6[K @UhB֜+.YkENFVC(:!4eλ'+ ]zۯf M9hiQcOow2A?B\k^ڇAxDdW"IY ={ݵ8|%nښHPKee=1OQ#nuvola/64x64/filesystems/socket.pngUT ZA8PQux -wT' I( &"$(*JHT@J ` a(^ ITlĎJ ^ AEAE=@ff0˿߷H`XV<骙`D1QHx)@b 0%:a z(K^&$@]^(w^bA6@R^5e&Ud>-]sԝk/sȱ#^RNfʛA ґzPtRWjq- 7Uǰ~SSK(RszXo}-% i&8gt߿ " ySޡp2ݯb꒼.z.QL0D& qĹpfm.\Hq;٣k۵Mתg39^NP 0 4jXd=,A]j.G3:F1ASuh4'b'гQ~8?z@v?XR5R u3J10_V~Q)-03 qa=$.g1ִW̓vpHxew8W;InZ - ]Lo?52ze0;= SNvΙk1?VuWO^\0Qyv u ΀eV<9k!+t`nY JʂU)Sχ3yk=([ÔS l5|`+P, (J2խ$ŷ~f&-J7&7\LYRx?h ib RޖN3.Ua%G2siwl$ lR2&:`Fg ޡXkBy7{V';;Ȕ ENl=VSL3eMdf$ZTR1B];p6u/vA] HK)Ff^| @)օd%,uRa L?)d|&>y]-1\=+4J1E;-LIDoN3B #29޼@7$ʝ &Gl~,q,rL\_^;pwAe/վT6" ~7L3uܷza2̮#k~{Z_rNV^5KTQ4A.V5Džgϭ`XĄt ΥG"hTԪ|őAG%;);k]XSPt.hF+i fJ5قWϐMYJ,tWj(~|Y([Sgϡ^oXn&(c8[rg :|X`S8h Q-7ڒ_;ϕ<A7t9(kNpKBsWJ&(y/Nꌓ h@bm/N |xZ΄SdfK乨,@DʾB-#njT<#w\ B49-ã PXMzt9 ap1,n?eoL3 5; [EۦSņ_*Üha3=K%*++,z̧Sk#;*E;@[եӼ uX+-ؒ3gTxw>s̓ʝȆ^׶SOd߻=<$GȎddݡ j{z!ܕ0֑|B,^b;Q϶?8[bE;[8Z4Ũq?Z]O_6yDژa/L9S,վOtP-EP'E{\>>T3GF/ck>t? wt >'^Ց3&#]ſ/H.l)QȪ_&/5f lhoXH[8yؔT|~7e6_^G2޽iŒ-RzFXzxE{^¹s7]amG?r"fMT6՛k hq@q%fKi35niJC2f4p[ב{ZS w F[⁂]okG9=PrmC"OK㛯h k a,hyp\pb O]̲bl=lmz+cEpwbEu(s!bYYaSװ W\wmsr)hY'wև@%P '?*$412M{O, Ε+R+~,ݢԎSsV3po0@X`e*fB~UyCuW\+턷xC6n;_Y1G[YS}I‹VlŔfe ZօF seiɝf_bi >Ah_.ZoADB~=ÀnFdXPylԆ@B(@X6O9D;||nTE$Y!F/ l˾B0cҴ>kR#߻0׌}uzQ`o gIq22>h]{r,Gp@C0՜Du?]y;GG|di teN/ F Fap4M`M5[,nh]]~|uak&j4װ4αN&s;r?ќ3Me}!u5kbWk?}j:Ch4IgW⏆Rq Q‡7c?<;?g9ٙrck.EI6bCIWQuV=1eР͂q%rVkUX֪g%6/'`5 r&8z4|6> jHi&lc S^" `θ$d0\dy[z^AYYKyUdfObn-C"Ӗf͸i,$`6ihVPN uNFb-'ʕ 7}񹔍BBQsS[jjj&ݓnwN./%B%s@u drYňKGM`]m-L͟0ލlލ2M`Ǐ/ևB҅}tgcB$ wI θCĸ(XfO0L,KJÜșyv{5 u!^ 9g- wy}yRR`k/ZiN|Rba NFșfsu81Jo{y_4"Lm~ޤ9`RIuAt݁n'͚À}H Ho&ԷX-WWLxs5v\JK5@ц9O/-s*#1]{2sY=#QN/ԪZ[SԜp6bL/sYA g!~MYLlIt$ŰY{ y%x'zD"zrqibMl-P|m}3V֭jg[fP1Wk9;1U7ARjvmԩ}G-Ŀ]Upti|hS̩.l!)DT:lW]?>a6 < =H9V+g>zBc` &I a㓭ϑ0ZD*1O]@$u:VEa;nr& .t 7Lڙ>`2Ka] 8/ N- 6I++\ kls"K[?WUS4"'5)R F#K / cY`{[phlF|A~sIt*XLLԠLKSq Z RKkO& /;>Hu!N6JCGTQ>[A]⏉H/@ p=/.i{ Þ\q1F\,:2hBK5]v &7dg2m;i2X7!'-sW$S:V ӏK :IhzKw\_>3+ zn}A}SN5z6XK*4O|j]CAS\  ɧEy.3czh\gK)s%-zm&.}LɋNf>^ ?PK3i=1^7|(nuvola/64x64/filesystems/trash_empty.pngUT ZA9PQux %X XaPP07ps,ʹ,4Lm*eV+pA2K-ŲUom25M̬UnZ,g{gs{{|'Btt[I2XysןE+u˵s5~a6'8/`&GQJ{8o0_ڒ.Z q[ZhOA&pxYPXXf0EW*nȐJ4$x ΐoɖ)JDaT #|OV˦__tmd(̯ZR im\ù)Ϝ&NЕ FG.[BviM ڌc Oӣt%l2S4sK76Z>UG.Jx/Bt%4;[̻yZ JKΞ+.敗k'UjLpT*E#C'DuJn'>KnJ͖*E'{c婣vG-żX ɼR){;5as3նAx@aU?c{#9&tKfX a-.<NJEo i4;5ldN=?Kj:.5+sR+n(V=4~D1c r;px5>9]m5̎狘ұv ES+T:- Rqy ۨXD V$+5-ztS,Q:O4I K0#xl:ssoh~4$N~C6coK;]a&3r]^psuE|Yn%hvk\Y9F Jq{c>mC|5rF`CH`kreds, ^ځjJ)<' eU'Ci/V gBA <瓬#d糸]tڅHkPgD{"Z5G]cѢ5@- M#"(kxIҷ~= _I-}jx{waT 0U?vJk>׹E ϲ=Ej7sIƔ#kU| H9hlXω#X,tpcz󺋏S~JeAouN]:ܔkkD_lRKgGܔ~(iʾg?=H&}ۖ27cPxYX}7M|[I4ᔑ&0SM`ť(,%J".9IjvJdIG53Qzx[`RETQy>B!B^KMdhGjYLxuέ=џ$4ze{7o{R8֭+: G9Cd#Ie$zoZ.s.O+{lPy]ng| B!edq?~(ؙ/lRRe:kPbJzX]Qo+Y8 U/YwF]XpAr:z6;Ŷ-]O#tnMҕw"*xtp "-<]¯G|Ε3-QNuLm<)e]b./(|;354ukaA9 L*&}LH@;P-/3QXj4yI!{uK(%-@)}HV|l>iAV:d>:a HEt{x _!"zͣ[Ξn.gTS*uֺ/jdp+ifd,,rBfLAmÑI2vE,e<=y?QhM1FUghTӕf=|}ņꨮYPɪKSNoj.uI&M7 GAׇP^wA4|\;~*12#ؼ1"9w 6!\=}jrF9M\Ltz>!Pc _ɳ3I"eɽɃNjSF !ѤeeV,*kֳz3+m/6E2Jn5ZRY0~=,9F;Dj2tXȽZ&V (ԗW[aL}|Y+LNy{CE_/Ht4U `02IXayTj_gW[};x<CO\Ji />}mpIMwցĬ pv#Du$0J,ddxæOn[IhpC}`8"u^3uxDžcjV{_]ȉ(SvҤjwbܔ\Aɮ*48 e؊A aOnb[ ̟cKvg7 .VM"gB":85NŗEB1V@Ȓ`8t R$1fg^ a-iUKy4ێ({ [bv{kNEEXNx}jm:6 ʠ+m}fݬLdޓ!k>f*u9dAK@)ЕFkH9VHmaY;MաxYVW$¦EymHc~ڝcސ~2>M ,@ioI1εѦ^5u0u{JgO\m޺M @:hH8)w`^f`0=)dyI7, 59E~o)0GI3dD|\m{+R鲼m eHz TҤƒ ?d}$N4Xa/xsH8}csM;kfbi;K[~e<%4/͍QStz Pzv(¨XW4ZħX 6 d8!HfkK2{g[ 2dgrjܼH?]S^\Ǽp4OS<9#gOex BtMiVtÏuϞZ}[Yk7$BQ;&?]M2>-㡗.{QExo.>4dyUf~9L/ U?w$E@Ip05ϵ efwCBwȝI.vT*2@cMg9-wASN.qG,X:8)ѵ}c=y 1ymH72xXk)M|m]Lr w؆ViQ9;4wZ|fl J,sgt6p ?1q$y*Nln|3%T-I1ىE SB QZLA sZRV -UVoJKRk$x Ah]qa'`H0oC3Fdk_-vPK/i=1kx'nuvola/64x64/filesystems/trash_full.pngUT ZA8PQux YwTםI JQX$yVT$C) vxdAAEĎOр( *(H/oֺss{{/057t+ 32a"sqv6/Ú;$lĸ"wܘĨXm+c#cRvSɟ8Ζ/ /9jU(Hs usI5SJ ׹ w}W>lգz''^XgC2cx4ټWo _r Ǚ]#x3Ʃr}s PNi!p~9@oR~v=Hy~kN}}q48zFt˓dsy9haa> z~IrH_@*[]R6>iV m6eM__zl?|nbOo' tÃ[bϪi&i:z JDliVZ&Ẇ%p"·=psɓ<A32M]TQhCcpuז$CyΆ1ά'>ZkzQ'1I(z=eNÚև8ww[ck *uߟw5Ml fHY,W&T }>/Gj{Eͪ_G?\^IZ* wwzadm"H+$iǫhIaW<V+pJq5~BiL#\}Ձ:эB]w`ŏsEWEGUBIM+REOu(u+Ǫ0ڴgUcLBpLGƖ]Z6B|!*z~%f]O'ۦ8YQdnK!D!6R /8*jskr%FT 7xWrcung v M߽}%7␘p} O۳`B̯ag 2,(3j̻E a\uK留N~HaӉsikpg34#ȖW1 "Mʎg+VLo? s Qe'TX< fEv #>5x42KƽۂZZvoI=r**a]L ݭQ]3 ]hwVa}KM)1@7WYbrSxP3^>T eDWTWE*:b: (GJJ(a>v< alf&W\[9M%~Al1 -:yWy_qpkӛnə\ѯW5s@. 14BN5(.]۶uz_53fU]4'}=7|N6Qq k۫ɣeָ-1eڲ4 JQg$^t7PVˌv~gkMں6s2Ti<ڼP &jɶqE‹FNb񂌊|zT?bb |]7 3%~Iy;##""$fvs]_`>9fpeK ^X/ԯ7{aAbqj`ۨ5_9 Lf'ug(g& Dmlg-w"{h*JCqR]ԧ6r;[Pϛ7O*k.~)gzakeV5MO10a]2*g с58o\8}曦ڈyNld2Ƚ<*#+fQ5'I\y8?A{뉂Ož1_;6wMzKU^SMVvV|?ظsMbj9)W#xajӛ7V>IWejdKLYc!_ P4z!yUCmj/HͬZɴׅ)3CV4ܾ˷-sw%8OQeh t`xt0sv[r2SUγ^;c>Xs)>MuiVv`/[g䙂vq7ޘ6kjɓb@7Ǩ!?X XU/J~n–K27)TpR埪;{~y6(ԇ^y9%HX!?bu 2tkӅArDKJUjXOfQZoqL֣CL+ʱ"KgP^Xlj2.4^8HDRئJhdW]3ZI賌wtE+q tbFyd[2VT'Q[z&Xᶻbk @PLv%# )0ke4?" 3Ѹ\aQ?WajO=񽥀9 HGVb\(u2,&-^8*gՋ|w~@ <.ۜlnIS-"/N_E0$k~SN;̦jKQuzvJMڨXX`1I_1]~a] ,ZTbXT,s{tKi\%;_\~-,S1֢kKOwoJXmfI"x@V'B㐮lc%cY|vViam}3N?z, *~FbT<K>9T$ ʃ3OrJKגG%nn=XJb Q7ⵋdP~JMWNWOw֩2BCQ=ԓ~yÂ"^?\Aӑn${\祃Jо_GVR{ĂZX9,N@FF&!K"F;WE&aFD3wF HJ`u`wLie q<. <_ D)/W*Y'0K݇$ڊðXȾ0a.5ltTyB6\V_E "[Eiڶk%La jIܹR8EXɯӝ1L9IT\0U$~cA%8@oq.D]_ӑQ.:ƾk*,. ;YO̬!IqAzKg;'}+g:9!%F]Hl2jFYeU47(CRc\Y-mjhF)LgM̩Bnfx4誂G-[灀dz4ϊܘyީZŻ*K6Oܫνm'qZ =|ȵ~/;wmΫIL1lz;4{ȍݫ=uC3/Gab>Ŀ#6o grH:HISRC/wyt"s;bGPqoٴBz 5;PNu+›?kK z.N4ş̏N=W H3k]2tt]˾n;э6q๏-dxs1( }.xj +Ȱ<2Ox`մ'r7O7;E*I0G>vH7# l$2i?Ml-N"(W|$2.*Z{BzWRxhH^䷻m n*kj?]ArYIX7Է6 .4k6BݍtHK_׿ g΢R'EDy"V7Qtld1X@FQz$p;;D'VysY IYsX{lϘ]9"F0u' x=}Q& Oa|tVp vӻK*%E y|rcO_☺E,&dmAr~ b8b =c#TjXӐ:jqoނ,M? km[jh/)6ϧ?=V(MNgFIOLD2 XZ¬L˳XPv+D5IubCq=/6#²Xn",ߩyKW̼s-ŀc?d M lwK-<+5 3^<{</lΙ)RR}(LȈ/4iD~xk\-h Xߣ"kñs[@&wSw`ܺ*-<8_ǿ'|/"(wu> C3}e'ƚZ0c8BT5N6Q~{ܽ &\ qUsPEЈPef&_8 [hϢaOp1kbVc,@Ӧ tAt]n;{ .(f0d@v43Ӝ̿as%b[hjf~N&lf3}c%o~eSQjYÁ`WS~k'g&Rf8 >% HjzfI<ܤUk N=p$\Z u^a~ $8J^S<$v~(ZWwRg(RQrz6^cք@{ 'Sg^7sR#|An4bHǍ_Y^Ag6mSa%7e½"xd~hHU;{JloV! kĻ2>8qg6֍L2IBޮr)R $9,NLjpuюuI2^"u[~ _,]~p,+_j'Z e$38_`GtT40;tB˔tteSz]垒nޞթóiukb SyNmx;Tz9Cyxa^Zq3O'y舌 Lm#Fe-)LL:ˎWkI:\Kr6čeJì #b'M6SX}ÜSZyClk"t2Rk4I ٛA2"'S8ܡ-fc><^T#XڴaKbik:Yw-`iw1lh~y E!ߚdPK=1vC\Ft+nuvola/64x64/filesystems/trashcan_empty.pngUT ZA9PQux %{u|xֶo}8td@b;PӾx50aaGv(a1Q""=VW+=zE'9^pqqb]B*B9;)%2Mjfrrnr=|?"*庸xQ_oMx93U|l超kmu aqh ÁR/ ?F4:t1Gb Ár,D9LnW&+orV5ǛjI:BWPU>F9sp>:؄ lY%z3$S3$PvnOHoUZ(fj>ҒpU@n!?? ڿlB~I׋H7'/ʻJd!QIǯ_L]OôBΦVEƑLuM_B;K_m9OŨФ젠 aDGV8SIw+d?D+ڨrC rJ^[}LJaG|`M\q'3sIIJk"fUҴO@璵SNvYOjXUKZ Zg,ã`l{r|?͕Ь_r[eEIE晌 I;H!n\e536- a.n{! ,[k,kuSXzY t0Q!d?܎ t9|IS o-v3\Tm2)9qT·,J@s|j\өNDZ%C/oz(FxTdqL_t}9z%twzG]c6Q+zaU|&GA ?SI^u@V&+[045ӟ(.R٫;.-T=I Snx l(lpDG[}%]eػrUn!G:/y1&Xޓ>O\_ &㖿}^yc汅}v=gxOri01N/R"H ssBqBRb+.W#L5m YVjU(>\rz1oSoƌw\Cj!ݸo:2' _4_CWpR+RXF~-pel_H z(U<|TIީY f[_o=Oݕ-ilȈZ,.pW3ᵌV٦O~U突ba~0/@LЖ,Ar8s _n&j'g[Pw eml\MxҎf%Na8_HιhFxM%?q5V2nVƛ.{kq.aQIY .:YpAggR"L"4ݙAny- x9ԥ&u| O> s1}̳ݹKGh^9֧}1y#KƍQ.ijZ|cIZ6UNϬ\$Dj.X6w3 Z- LߩA8'׵/<̑ǍũMû 3{Yc*rw?,FSMy9}+6$ZG0{H$a`ϸR.םL#ߨl)nƕ&1'Hz\0 }ĻjB _ ٫ESw#DfߪIqJi̙ըp/ׂ6*lkn}߈!X!.ܤZ1|rIՐxF>UoM0̜tfmFmx6~ʮ S ._IbF2En=V:2O5yv }Y0g9ڌf|)xϏVjoM7 qv1>O>[XaGptmitKCx) |+K/n{[mr>֘o+Lٜ wTΑ^fd sEsOS:&|GxLe'n,-+oIў`?9<3hq5O "cCLgW៏`:*Y[7HYl9tp &RzrgsԆ||{4 jjS{C=2TmDCʤ[fԦ̈́)U V'fhDԯ^}G jImeKo͟.#,ᭊ4QMhsJH>}Em0&?vhcu"Wg,* 0}0(b W8+Eq9<|( j41n̻!h;¬Q uv ;*: /9G)5_\dA f5f\pG2a'<܍nFMȕ,l87@)_@܊Zկ&-݋G"}i[$jI}=RJ=_|Zm[| !x/ZpqfD:Wg d#Sb0OD1M.sj=߁xꤟah{ijj s yJԁB!]ϻRc="`(= +_C^@bej~Sju{Ɂ*9j-<:hû)_qm"C;چo`H,6: /] $$ ͋6@Ʈ{!jM%i?HFF g;xf(Ay{-x26[r72I t15QYRQMl.Y^/djl"Fv:᪴qSJ!R1n<@e*UO4.܊t?G:(oSmPrX){MجG"B|FKѠ]#LߑK}j_Jd"]g#EIr6Oˆ~E8+%B.|D]\vɯ DcC-5h*s )ݕm_jrS|.PdSZ}d1tL#TS S% R1!7\ur#xゔFM=lSIjKᮚC2vc{q ǺjYuP#hȲc ){exPPwE>PA .,N>`pr{J1ŔyhFXMKjἣEMP7X*}L {2QM\9Ac̊/w=i=W~,kԏW}~^sKn,F*7378]_yo:oOXU7 b83^E0%ז2#?ST ks4/my9^#lE] U4H[ `g3k jmd@-ϢwuCL? [&A|I& IZI_88O ] @j2%< cvcV1`޲xZܙ`Al3} 4(pu7 V5 kYw$-ܡ(b?Б`(DKzo-"^9 ȫh>`܃T;=o&pSSSȈerhؖ ꖟRBO=[վ!:J8)Sd{YtFLMR?Aj"9 D-Cay ~4\vand-.[:W$[BNyPn=Y+]1g8Y杒%!aܿ\t7ɗlyfr>܇/3}?+f“X 0t*ad O\ŵ+{Z'"`~c%'Mdb\F1%ID VOdlstb}oi;gfRN!sњTQHiT~R8.-~>S?AW 7k x[c$aQDUZEk*`}obxw")}IX.`?KQ]#bxia d=_}qj3KYC8(r$"`jd@W9[/q"3\TK79\ ހKpLr̎ZkbtLi}=զ{@Sƨz5oїg"z>cb.J}yN@gx~ zs-`oJc (y5s8ZD"N@:Re5p;Cvnv0}`,_Z+cSŸ;8_L. 5D3`ff! ҏnjҎZ'\D& ׻/|a4Ulހc@d")^4HIœ ZWڢjbv?J 6[ȿOK*Gj* B}^y"jp~u_1[J=zՀnb(팉,PI[ ǴtCI4V`5F;:gڣtXjyhiꝬk•\BnƯ!HmB8^Er^jlVj㹇1 1ꑻY(-L,$x']h܏g=+y[(S9$f~}giʴjGRejJ@ Va8lDSqryDރkSu[t7`O9&vulH !A'IQhlҷXR j? *gyD-w,Zepbe?ne=*R˩, <Ѩ >BM7WGӳĠ7X,D_\L?O}^cxxi{B,ګ!; ZYdʆ(Nr-%Zk-BOQP ⬎"tbz2s3T,zш}4K,*h˴ޜ lglvS/X\D K`w::NŵΖg(;/*T*l={P)S &wUk#G ϴstJj]0jr\[mQ^S=$Ʃ獴mA3}o^x-8Hvڭ]&TO >44F _c_,mם%i:YmclOѱTwZ)V4S\%>*Uaig"0 M?+49hQi ۶i![R{053"i i'5ݗʼ嫀-6Wԃ ӻu 7Mlz"wft-ʸmǩɉgs1ӦDkLܢ:̬5Z\IZlt'5DI4+X ,yE`ۅZҊ Т 31p5tlx \{ERO6I*S1i9O(=8~{Q7j Y%>ݓ#/ THh`*:Qp@IсNQ%"a {4#< MGTl;1h\@0Z9*`<_' ޘ;,`Ud@Or?1J׊LK iSR>fsW-~V}&{i1eZˆpm'UNt&=img1Of{H\QyF.l RBX"'u$3LN`ncuc'K=%^~cӀ{8Fp'.@/֊-yƆ-b-N]+X_ ' Ff ]<0]&"z ZZKȼPXJ};\7C9o!PA6Q~Jg٤o7U6QnI< _h]sm}]?B3˒nb2U< N(IdVZthp B04DĈ*퉜Šq&=Q#z >9ŕ.OGQ}٣+v_-[! I~he`_ĝˬP rW0ܾE41|.0>M֌KJ:dk7 _=cokn&])zy] =!N1BUYTd#`RFʑYTۅPO涄uZe\AAU -w&R8s6vH<}'FS3oe]D9%! טa_&rQy#jA hǸn&>WWWv)'ĜYZ~Z;daܜK.`IF۽P_k M ?Nˌ*H~kw&;ks&<:!87]V?`H0wiAS.zu_#%ySDyHw9+6t}Gxpul6'ᜈWw9qԏ o,2?Ka&7RiAH6[*MS%{CZ dOj:_L PFJ"W"S3w=[/j{ΔϽN<9gYZy1b.0oBqJ,D;oT?*0he:jQt&"ť01+笁Jܴ}j3b:$d6&%l vz**"}KA*}b1P.~h4V/֠cTvb=_P SJ v˿c5otU o?̲bLEhk0FCN8B,GCeł|MPр{AT`V`[ɀ$XrB~E* \HRLKA P¦kЁ-C)&-FAFW@ _׍ěwČDS0l+d:'bnkeonB>P@"3;掹x'3;[| w2\1v^ZSO)Uu#?()oI?>Mdzݴ"dx ‡r/zsL/t5j>afvgk8тH&YXEtgeBVprD9twʝT'q|0MB=$+ x>hb'!(Ȳ/=`PKUe=1}t nuvola/64x64/filesystems/www.pngUT ZA9PQux Yy8T>31853g1L*/ʒ2( R|ՠŗm8mT¤Pc߹9{_>)v(*qL;ѓߖ'Pv6_Ɲ}foDșS-(p0D@hMN@=6<{Kd2 Z(A-}G@'$/yKX !1} /&ұXƷ _!HCS@z\ pJI z3ɲίmEkVőbŢ x'@Λa(8#bq 6xۿa{d.ORJn2\cs*WE㯩 :(2JAOiRTL/u18*uD)>Hv.== J:$uY:V.6ޭ2ݎ#TfGtPhgwEE>&pݺ8T! hI c& )Տ1uo\s,Đ"Zw<0 hviivT!"i,c&5͢+=xlF+nYt~tD~v7Vt7^ІU0%j[zfn~G!}%,ͣ2Cbb ?O]Ts}l|5_=+IANr\($bepSw#ByN2.kE#g EWWYxS3=qq6URж^l)Ldy 3wIy"{U,UFm׿5~c+ȉ?Z'u=p/Og ==ܨLܟ'@ܕYCm:퍇&ϒҮT۾4rz&r~:ere%g ~eUJJ[-9*oD,8| 3ft\.nb>?ǔ|j`+&I؆~s8!mpfx 6*W ѭ]$*NO M Yc\ $Xΐ`vIlj95j7?ko-ձ`am1ƪtMf-ݻp|\HgԓCyigc'>XAG0 pMU~1xYО},Y.LN\9}HGH ȁch!usP,2=b|c]1qzuU!G:ZP9s -:.h?M*(4yth nH,E^"L#`]ѥ/LK |mP:#TJpnjn巵 uRG}rwE<܋RG,?ASsS:rީO=^>QPIZmC;,^|CiϦ}؞Sxڼ׹墬^4eT%;! [>;?H+E!zPC蹟.ARjysO&X\o.!ӓ_{5'LX@\\:0 1*'J⓫ٷ9z} G.jֵFO3 RW$bլm/ghpZHOHas_i©3 .  "3emrsVp}:vUL5i; qaZUɽ5&+3% Ot&0?2s{7@@,ŭz _Y1ODKLI!2h'KDx&U.Gdw c[HDbs[He֛}H![|qfS%n!5`cneHK,RR(Q?& pN:Ook)M@Pc+dF1+eVg7D)Qe~)CF]T6뗺%@5z`-kz3:Phv9:~{bF(ރUգ_b|epbJsIpp +\iOlX}Á>?fI:NGt`ar30e h XI*aV ֻkA`q% '0w=ҹ#`N Fk`mMaNEd^ᄃ;wA)mzɑQI,_N5`>&KYڄǫyZZvw ${Y@F~-YKh!\!v/9r1N0yB3&ďګ͟whl҄ݳ9^dwi/I0"Á9BfS4&Y*ٷ%]en<0pM2o9%Iv}VbmN\R;G.JNh,NY$lma0bbSXm,ڞ;7껏ܿdXf|޸`L[rVǁv\Nrn{LAce,g?16Yoh|y|m2 8#g8Q/<Ԣ~F'w`Ekp+` }^e6Rz  sV"Rs&@ FU@`$|n|Szv$Ji&t=PkX+drn W]=?D)+8ǂYM6n_T%%1[w1#{3#h<,311O hnDxv5+xȖ7 DNlږO>Bm<К!?gD+\#vYi-~AK(>|'*~sh"uT@ :rxB@GFr%jGD/$e1t19K;ӫ;< ]TwjѲ8r!Q|yǻz{b1Sb9< *8S4ڍXc b52+G兲4e_1i?]0Itp.Eؾz^ $m©NLp-Y)*(^qB]Vm_27%95iR.UIa}/1i>RVMKoy#5|zxn3HА.GY=s4 A]dAhΣV\I`g]d*}] tLəsT#/E b+x'xvvdjovGw|Th+62mn:$+iL\zh[}JߥD} i'C"ZW>P9vŽL(v+gq/X3 ^F{)d3yuo3P̟'%x b,roJ,Ṉ*kl:{}%0;~ R z|}-㯛+)Emq?W'Vme]gXᔫ*N~Iv=b-?kY8H+R@N^`8EV#IzG]h(\.M"IfGl 3ۛ u?^q%_C+c L1FgPh-/`Y_|su,{Y+Z>W3v.28FQ*tdMACngBN3Q^@WQt3==Ly}c\SR;oU2Q8g_RV Ϳh D-[ex۲ؒ1N$nrX1T{䦿rk?ye3ɼ z*Z\OJ^BTߚ;y$>5GJUQQЀgzDBf)4wgBE?BgnDܥZ[61eMOum^2a#ת]# JdG:Za$r9؊Ҩyp;i/ ; m;W8.5PG~r-* HE |z$ ;Dp](+Τx'4k?Un#ҧ*?[$,%Vy8cS#Y.]RA@4w~E#Qw0[[wY.MQJgoUJ~j)g|ܷW!Gճ5941Ÿ$NEP;̶!`pQM;"9*YFC7"g=8HUf*Z4{NL_Hf)x~8?[5w rqժ?~KIi^aLcRv>vgaHkELZ#Utӈ&5-e"U8U!BFB.ۭexv+$&Jjw7F(rCH,9uJ6ԈEvhJZtPT3~On:g'al[Ϧ4Իj-6M~OJ9Bv{?в]$$}s3c9:}KY,<ÓߤF׃T.Zt M||nCdzu AOOs> ;-[(q hCWDۖ,--*ϟ৵1|)%[3h_YFHT̑ *,fN>~"Nto7heW*'xmQˑ *O(#0jt n k Bm6]Ddߚ -2c'2:FP:5,/S2zLT"7BJ$&8iscͼ@6 /R]o.CNk#vBޚfGB1C5ptec}MAZ9s;| I~ڔ<'osNO/6.tϪj@T՝ G{ΗR-eI oȵh9VQp!W@ź3cݚX%kwPsAdrw) db@3=kޒ 68զe8sgbUIFx֊nmpe{'z9?@۩p n~g蓈F0bޝY u@r9 #H1m۠l*]nw"Dl{GlnC6`< /l|fNpS xw#V R{~,6~fw ^@⡕"GnjD*LH7 ;pٷ |-T .ݾwƔvd~t9z^a/CXr[W%)j#`-bDwIx+TΘ;C3:O4'tF^@?k2g'Or.xJoeRmԎ#+7Y⫯eZB-z8_(%fj@5aUw8CC P̱_PCMGҝijB F50|0 dw9׷(Rf-ΞHqs_`rSبiDE&TrKQϟ) *zyήdZ^^ a7v]7v'}YuUv'%r?pv^@[0't.W 4f1g$x0{LM5MZ6K̃+aѓ& 0 *^C>/sio7,M RT#@-]':ɪ&4i%qpfhb:Z<0X#({AQ|_Pc ޫ.;rOU7Y¼œU[JLzAy٬=YsPUv%sqTtYэ͖ExK+Ŧբ1S<I,IiU^Qdc2Yٸ$F# 19'V|P{ X}}dD)סu_}ί:a fނLQLpQ]%+&˸,^# o8nʆDaZCeniPKy.^U]L nuvola/64x64/filesystems/zip.pngUT >9PQux  sb``p  $WeR,鎾 Ov%K\#JJRSR%%`qhd9`h f0 #SƍƠIF@W$6t⫍C#/,fIOW?uN MPK tL>nuvola/64x64/mimetypes/UT  VMFSux PKC1uBr&nuvola/64x64/mimetypes/abiword_abi.pngUT `A4PQux  =t$wûJ6X]b*ܫ&%-Jԕ+5o \#<fY}栧iKggyb:A̠C|_A~C6s'RƖUjo`DB Fr%JLWl 577G-][HX"]ZԊ]L'=/_15`4~W"aE }0sx(//]PZ%gȾlPsEu.]|7x#Co1d$^YS; ?HZV2Ĵ4MWwդ=\>Q8K~C ]\\ xQt=veeϭ_ t@|Y l{BwUѶ R6XXXS@Lw[1_{ΒhdE!IcdE;\;c4@eTq}Vn ΁Zl>Sv0 ypuau3^s~=,*snL0٠_X,H(h$!x,D^q]n/c];At)]_Q߯!EH_0#9KTtm˵ξ?nBF4zժ}p͗r6$Qgnu;d",I$4=T? \z\2!x)%H3`.GW'gT}FW]z^x!*m/C=! b iwhek$zR(8OO`w_Ta'[ȿ|Hf.p@^ڐaMrs6-6Η)kkXRc#K̀Vxqp{)!=| ěg/dzh# R0D_!'uucn0yL vC^gō)f_ޭydEёRxex] 0T+VC[_Qi+N\wmR*3Iee(b57Z=UH qNhU|h釨[0dgdZxaOXCީ8uɢ KtvxB/9vWX'd'Y+v-NoS="FVxSk=a(<Z7 7Òg\nIlT0y Ӭ΂n'N7GC7gcqc%:fywmNf_yycŝkR.f7qKuIC.Ύ\avHO][_$\$h,}ը`!^g/PWGw` K'jѕ_|1[XXw Ԧmq0jrBan̦G0XivB$mDQ^& U M9 heg07߿nzyCgoL }G$4K]x\U*zEϪKsʻ wFq40Z1-;}xė7EjRyDX2lwc 1e cssxj/-6t5 9of 8B`jry]xWX]I͕4Qoׅ9j*± d^\UEOj&\E9\DAQS(₩n^8MdsDPmÒC̜/FDmR8[0Ҵ[&;}v˶9j?N㰓Q؁ZͯRM8{54E*N^n5X۬pĐLw#hiuy[gRQI N ґȳ3SRvbnYMy$b%V)zmt=Nry8 8v3+z0D$ ,/Hon+Zm4k1NkY,&7BJee#jq5)fd.Z{{}3zB(ڇ664d6d bb`Wd#3GLd-KD[+oAe[I &ehG@^C-9`OV'?QLn,r:Tٺ!SUs:5gKy>*0|Gk鸿_MBmA[A5 Y>0رZi@sge.P(zbT}w9FΞlHtü>8U-R߿- VwCmSqO"y0ټunW/gg ^,];CkEFrxSԙŰS"^@GS#,s=CN2'=-ѐ^h@g%/yώZJ[5UyF'bfԇy Ͷ' ݟ9p dImHI}m6^2Gi'3\%GȥI䜠>81))%왹po-  '8\"~mL[ Uyk`5W$yTj%.ܙX*}c/F!!{tF5v1&,|JJ(9xKD;z?1 WuoL2{u t\$؏6m@u9"r X<O-WaT=y,~NI)zG %]]0#4+]~Uב^eU?5&r \;4-qjTI?PKC18 b !nuvola/64x64/mimetypes/applix.pngUT `A4PQux Vy#' 9)ޑs"Rd#Dz_iё*,0{R;@t2nFt tU(*9ޅ,֟Lb +'1jwPjR (bw&~NB<cH_',/h#`#9խe`޻k"W}zœ-S8yyymW'g+opju8k!|w4'츶133%&Ղp)g1VUaenRڂހsDJy{NFsEF- ='--?pȾdp \[1Š=O{1u* 1ʕFi义ע"Vwy + vv@qk.ۨ)((ږ>Ջn)וToɆDɥ0-_Z7QEMztrj!tp͝+flKAXT(ic(5|C?Pw-*SǃIlCYtX"mn9X/UTT0mm3=T'_ǑtjǎFO.fub@S2zl]B9d[RDlkqnnEwLEi_[W'Kz)t/oqeHj/'/H|%n $A?c<ʈ[\Psg$fqf?'xή<:6,.:ǿ=-YG8{ B_I/̟!##"ɡt[){/{${s$X\t>J8-1vW"+fMV-paN<5YEEť0Gq: #D\bf^i1[+Y?55~JiKwԐB<}UL aJɎaTшy\ {Hcֱ_'u PȇD JL=Ŕ8A=^f 5HP1EF1ސ"_W>:%8LRc):\*uXU8~0%b)BIqw!֢y{$vREj,8{m݃*jH[h 9[B8Qt|-Bzb' ?K YW/YDuTaZsc~oXC6w5Y69Dnem]QorZ ֤)u?qO7!X"@sΤsY7 Y~5zu^*`YW<%wl,薪ˑD{ZIcH9Jcn9܌^n̥7^X3)T j3i=޽{ sKVSCg,zOyjF0UPPPE37)?Qd(U/μ":BToXn&Ū h0ѓlE8U#8g/FLwagru)7(Ø8GTqj#aHzo+,mc_펨oOmX9: VI42#b@h`,bhz cs"iuyڞ;aԊzb) , Xq"nK8fPb9[7'W-GDhbE5,NXH!w)cn٣g1rQzf%$V"k PMްd-RIB1h%ۀhqp02HQ\Z Ra OdQ|q~FycXaA;,:v"9MM >#轩d@+Wa)w(e GJ4װ qgTw! \Z) 򓮮ƥ,ؑ]Δ ;j;!4ێ[x8OS0hdj=z%\b *V&|'?S|ahZ?g)`269&f2< -j]N8udI]RSOxIISpp7a~&pƏJcv.1@_unycݺd\jukP ͽMlr~)Q0Μ_-h4Sj5'h>˭(%z{{kt;:**S?Hл!SDi_HUK#TL&y(rh bc16e˲ŒSt§1aEs0UV lN%ȔZۢKkhh2Y,C%()%&(7}J/Ё: hf_\Qxm-=ԡlN<  dz˶ޚm΅Gs;u'OZm j}|m`Fe{b@@ >M:+*f1 ^\f95QqL z~ᓁE/z!mLkOZVH}cVJy$vGdjhf&=X=ͨƤrL_tFG#$2 5Ko,Iu4PK^fߞhRq@C _+ <1@PK t91`nuvola/64x64/mimetypes/bc.pngUT gUA5PQux PNG  IHDR@@iqsBIT|dtEXtSoftwarewww.inkscape.org<IDAT8ypTוZZ+Z@6  @ U& WM25q!Ǚ%5ĕL*8qUb !!aEBb@j׷ڐ!l's^wιZPU"~ |ޢO?rE!LS555a - +bX+IPQ -$p*--5.YG#sαyfݻ߰ Esn]d5k.RpFmkZ k׮ej{{ /O h4K.\ߡ(ʠs(Ȳ~?K.EUUAF jFA\999#/r$IaE1MPE\4}k`ZqX2"cUIaTE 220Z-$"K$qv.֯- fz9y3U4:WWC0F}[ɥ9{>K &ee|))aq>[ӏO>h|V~G67ZZ(茋e~SY<@UU.\7EHА烀0Hdۭ[r%B!*WĉPpfY۪JԩIr 7꠨mmDss3{Ї!;!tt]j|SKx<;k|P\>zׄ =il6>!cJDqa?T 4UUQ ?@JӉPW_{v"qуrLʕ蒒(f3 y s >=g?)jd;nf6%\8~+(x yyTFez=`X {"0jeV ۶qLfOyt66t)ٿ梢(x j&<@Q:W@[+ `0PD2bcMh Ș35k]AUz>7\JŶcӧX6eJxƁ3r3.ѣXeWVR_\LA@"{\쥫õXyǍ%rI7hk#k;oo56frsstb?%!S8[C~B1#; y5 !#KFxØ@CY;FȜ?9qrg3ISJH\߼{l"(=ic#arn|w?Q? Bc ҋI~Ib~Ԝ9Ji © TWͬ`bXmZi.j$SWZ&"j5ZMYΨdr|g/_QItƊe_7î]$:l 9s|mICH jzZ.{.xi&S5PU6zX;O@=g[Xϑ1b&+j~O?Z=AkR59@BZA?w]s|Y];{i ĺd=AdzTɳ:G&NCUUȖ_ɵMw}3Kj h$5zVi3yR8-BwfL)UXZN>8Bji;ܹsba}ԤDV}u)?5S{np\1 `I7&BF{g6(?AF};RHƙ*cV28vOAc,xoōɗGTDӧIuQPEΔ4r-y.xf>yIIHrp8:2915zNc1KG[w_TpD(ʝ'7F#}h μ3yCM4Vm[ш_GcpeXjZSSIMMj*h4 Pos :_$`:I`0 %,p8pF$@ `t#IVUU *jwUo IENDB`PKC18bw!nuvola/64x64/mimetypes/binary.pngUT `A6PQux W{8vl %ea#E}Crԛ1TJfFCc9NEEN)SJzK!~<\}ubn$&/ YxrwhTy0h[IWy_`D\|HL8` 6p= 5MmGC7xaZfXXewwwÓ秿}-3VɓꝱM*'wx 5#rvꊌ#_ŊP85Z^6O$QIC=V#k>qf6rEH[z$!MmL&#|||$<=-M\ ҽx9^Ȳc҂QS><(뻧72eqP=|cUy[`͗ a>T&JJ\f%DV>ֱ48" G\mFF3௠ܶ'XgyZIk×0!w:eIi4@ rn#* 65%}!}[;Z|Ҳn6KaP٬(E ݠJe@ VC]k^ut^7Ǿ|d"ͫnόk'|0oE=7@H|h ^5D[x{W_D ]5XPv;1Z "@MHhQ69vV۷ϿO\XX ~)# ' jˆo$?[zM͗:oMeĉOCDSsJg-A%չ- iBD"Q]J޼Hlhh ]&[j+LI-5WH/G @l).oma1}(GpښCZhI%G;C b|B7ŞqeèQ]ےvfjH<{91Z r}hŖ#uݔ䝱w@;ΰG8$ m9. q/:Η lq#.҈<y81+z+p)dp===%ae)+v1Ǧ ZҬBr;ltgFtIscLC:4y8NX"kJ'+?kVzQi]_#j6)b%)Or.PDh)lFc fao|J#sjL_(ovDm[,;?H~ ')*r32TW8eo&ŝk jOs $:Oi0ܙ[R^xt|a߸*A LC@˦\H^}KVK2Q+gfZ Ҙt~:@hף4f©ȕ"qᩚlR URxXSjVZzNmR-c.  y[oP6UZZ:obIl,1==8<<[mC91-&$Ť]Y͇nigVc#H;oO] d%HiuRJ7ݬu t}aN|ߙˉY-Y y1y54OHnts>nOdu&Hʔutezo$LM]LU^6,da^ @xXƕGiz_lm-@9KxgU]Uɮu#9WL=V;T=vjֵʝ@Pk9M+:yؚ-Zc3{ӢN3:4$U~Q6&g4<Pp _|YEXJU3c҄,8\,B^E+P;۳.Kjm)˹w"JU,Ϣ 5p n}}i8j/Á$2Ӄ˶q5MkRfkU{`C $ixR'MV⛐=[_Uo0cWKX&4vHCO~R>kYJoGkt|uqQdy@ JJWΙWѵi7G1@Āx8 |!K^l<"9P0_vuvJ9=Q!:n/z;x%2?zOVXāzV\|MheM+5e)괛n#/.alg ֩,R:6HzfktoPgM~C(hJہ% *qJ4; zoLR W6XO< 畁E!._a҈7SPׁ`ݱ$2¢"_0>wD!Z.Äet$i{AKȋĵ ND5 %@؄.`Փ'#A$JGٟoCk̾~3CpsoS nN_i#a-ik"O7?G5#5Ec( fYp(}98pdoG5c^:/V߂Oe*&] U4\Ĩ|gn[Kq;{8&l"9@zĬGsx`5iX;Wb&0w׈R[/vcW1 b(K[ٗy帩]Ț0kC]Sm" ?ߝ$}W 4/UysKf+K5|oLm//}6ҠLcb$@t9bX s55~q:Ͽŵٌ &_TH.bnqzlGGQxQωV/~Iכoҧ~;=fJ3]Nm{pl7?:ie1`I꽣ȓU/yej:`M\1(z/|RK;z`K|oJxf5z*КϘRWInm, ~B\ʈ%\!j!GtGq?XH:))PڬaE7fE*H~|j8ܑgI{qTW4yݠe[[3hU9- wj6D*kt,h1\4pMwOL(k0pWU$iԊ‚2-eDp596 EoeEߴn)?hQK`c )bǣ֓87Vq^C61rr6nvPKC13GC$nuvola/64x64/mimetypes/cdbo_list.pngUT `A7PQux %X 8S?ۙ1eeSrK5lMFsrnVK}*KrYv0rH7Z$ y'cG4>)Oum7F:OkKVjYE,yTi^7U^#W 8c 9韪s IWE=3Zwup̉_6:>YqdwpL)r6#OwKSp{R3;YC老JbsE:)vO \S2Q5Ob",ੈ؟L\Yڷm p @- &.Z4sd RmS_$/EPD{8H% wJЦ"h$T<e_1Fn~ק[ZZGgZawa{ !q0zbE]]]) ަ[<: f/BǪ yݬ05.jkѪt3X% {[cdf%G~=ys}UƋ 'r[(@ҏ M]G'\BcTZ)bkoFArۙ·_oaKuMio,HK=QYV]Fwkoe*^:)srcX-qURf;'5YAA1 Sh'6 ~wkcEmJfs/iEQț!#Cٚl qVn.P)9a6נ[:3:w}w(q{{(IŢ{4}"g-Wdʓ'Μ]G嬮^@$ՉA _wnar ~o>px}VE;I!" T5KȜ9˦-_b鮧PjR֍KCh4UHgG8Av0PyǸX.e#Aȫ7I GxhĊ5mM-FG I&x}?c̻ZmZs?'e ' R:986nwZSdX'+j]%Or>,p&j*sZҦ9iZ;UΟ"ddex%ZĜՙ$B臎@TZ.vP1}<98MM?[w_2/sUжX NY~MpGgj "I6@hFFM'B#%M(mGC@Iiѡ8Hk;xɆGϑe aZ OKu)QN7 "A}/`@~5k[OH, eEȹ{]9|S=ckOMG9?E-ki1P-֬CY=b\NZ&tM;q_8`\TFˊ3Iޗ$9s43Cjg-F لsPc{vzLljzUQ\2>/= ҳ Emox۳Jd ?׌Ov͍MMMEץ5ְM&5ɥ =%fg$'3eGCZ,IAJVf8wZ!:KjtP*h噟5a |}GXeN}ezҙ?@!6=4,/tWYn] N9,5Msӗ|)|RSٵ/K{rnu Rw-#dZJf4hzoK$4Ngܢ[dYYg4⬷zh;"9AD1-×M#M.jˈ[-F;s\EZ*oL |!Qn*}ʱiتji u5(I)"N|#D}OR A q1C7WgLPq?RCzPoVOuוBDfrm% 4x |s"2`Y1(A.PQ%G2=n QT@sM%u=AnzirM!.O<l(iOhVq5WE ܩp<͂ +(jc#\0`IQ"OXvy5jhC~MtTjTw&0cdRrؔW:Cf.!n;\Au+AHv;pH>`ǣ*Gi荔y`ڲ-+S꼴ѡ\mTJ^YQH@c041thFyhT⃨u-[ݭm'xB^J0 #zCwp&/m$FSZevn Ux3PCT%#1Z.#;5%&-P5Dm D~H0_fq.Ќ9i ڶkW#lO-ovC ԏ{i7J 64|~MyR5!Uɖ9$$m+dVq`1Ri[_Y+[ʹ64ĥ% B}ִyKE?hܞ zN2qoNi3˺q'%$-LdK/4/ɅO+}y¤s-T}'U-|󷯙'N5J$/5U_#'yLd}<4_!UD9@IsB]_)iΪ2ˮ N5`/j&ٚa]EVAi]ܙ5\kxpsNc^k+#B=8 Z}S0BZVRvw]@B _ZbAذӊn}cDD&ię;LpȾEc=%Q8ȼUi.RB1_Kg A1.s+4QAS׵z_w`uc_|//p < E!l*p8SFM,Eb߽؂ܭjBe5az&*ym&@xi")8m`$3O9X#_9}6* Æj;kHw۶N"VVV|&,t,:,ӺcBa!Dǣ136j{SD"s磢܉win2TJz\qu5^3]Z;nѯv&$f?T>2|T]D#?Z7W2(+Y32 [%VG=U\s$ɒLQy%҅єٻ0}sK弮* ?\RJ?PKC1\ r"nuvola/64x64/mimetypes/cdimage.pngUT `A7PQux %W 8S}?8c,Fl"Ui[zC V2J+%mVK y󗨌n[.VBɈ2a{w~s.{l Ҏ_.}=էat(krIO;[]g1OzHM= c!1XBhRdz (g ߷r5TɆ~kx|GEOQJse`CC&7o H!RNuI3pP03{F7^[ďC(2P(;aZ8Is!lamIJT KQ3A1u?pϞ=`*w?z{G3h sapcʑv:>`kǑܪKU# 6?rvr)gm I5.'s傻W{g2~(EwZur>|ڌ8 ǝ\iV 4 i*q4+4B8UJ `WkHrnӔR+?Pf~߹g\BȶsdeC697>R8,jC=7O]D,: 8[|NKYS/ggguLƭ<7&8=_U>&zyZ.B7yŽ2nQCK_t)++}Kp⧾Z.g;W̜ V /}r (~r*pfU=QDQRY,6[.g%GO/XJ ?41 :xXs[W<"u5 &n PMjK_`ƇD^e򩜁/P;&4Zcdȋc jNcrRn^E[E1Pr5+Kd9r+'#_ aZm /yUI83cM`GP>UnuL=W :A_DP:ӇNŲ<#mhKp|h}TM"{%´(d$dBSS9,G \p׮ Yp=C7>XJƑ1g3k7J.RRr!yF(Sa.eDWC1Y:;~z֌C|6rX3;aɗ{ R:6i 7"-k#?0*~@yǍQ+C%ú`;Kyy~Ԭ{F$8RvTnb[0W/!6uP3g(3ŖZEٞ&\UMG;`j nr|`n"qXWg<gԹZn3x)%Bn*}uSY/> C}zq.+;;B}9{)}ǰ!BP(ron/m4G;Ivm݂ucbV2 _ËqόY]EpMTJ禋@p,’ޅ Ia~u|C:n6('vz%UoX_hWAW$ R$tjniS-vBCY|}XٔU&a0,wMgig79̸(&0(W!o 29w`Bٍc מR_ Au܌gGWzod!QׄUԠmEԇ-yewݕk !qI͂4] .GU^3XXD3^-Y$v׶JkcsDr/<*p 84R4PhG(Q*.DjzZcW[ ,l O$BgGE+X_?/:]:F 1X\"a_v&&1Sox*m[,b0BP&oƂz@DX-LPE=-lD$\9j1Q$Oɿ~,K3@{M@hQ};4f IbօoeiS $c{ʅa:/p]`b,jݿ .WJLU (@R!|4)Qh!Q~KUt&\D’aZQ-^8Q*,ہǩD/FǹRqIViZs#ڈ$I1ȹ>? GOg̺)Ą YqLbsqwRH8p?YD HЏ&i+BdOp-bP/ MM2ޱO^6cyY&퐱ͻdMCVw۸K7t[(#@zVTt-HhkSi)il|ѻk9T7u$eeq.]ZDvM%yZzkY*|jAx:T_^E 4Bz.G~7IK.1: Tp] 49I46qCAUVЛ]4 y}KGk72W: mNּr&' v뾞_n?᭄3ꎐ{K~=9zl=?{B(#F/CUcn^$+,B$m0k wyA7{ j^9Հ(cDn/=ӟYkap fZmZҨv b; C;ajl%iOԑJ} sּ_ D' C;VzvUv'+^-fp̼"1! ! p͔ES75>p!RZLE4vww+)\tiq-=o."w~V fFy~z{Lŷ4#!MYvu¬`5"xsz|5F,me3n4F3|]Ǧ8qӲ[q,]>0n& ݉q-fFtw^4,NXx|d'V] c;Ok[oз ._=ж 7wPyy 9V5퉈.@(#Ddl8b*5'nJCdbd߲$\Du?(<؊# ڨ\/aMV .ú_.uowFHrJA[ăк;ׅbbpq0'@o <l;`\3Vܱ ]I]^zWK4A@b˯^KwuuEl"e]ΎVYO ^k35[Y7^Q("X7?|4F؁AAy_ 4F;\ݹJo<Mrz4+DIYߖDmQqNT5#?b C"w S4b[U?b绱EZOՅRv 9ogVПʮ^ 5HpۨhgCF+ϱ9'_7{΢M`5 ԚŅ,0Fi(.%u?_"MYfC]௿0 @ <- xZ:NU߭WF0'ז]4+W}I,4'WXFMovv{sրdpqLIbNez6a~>&{Ix /njX_jSLuc0T|.vjFF(#inhOh5.(\ﴽ?4 ѓC//yq:? P6 ȆBE"=)Q_(fҺ߈)yV3.u25œ Dp[DriQL-i}A{!Mf/9es}vEP Ztx6[Oh.=u<'3aɺejmf5GAi]P\7nTUII;w.%RW. nD}-^ܥյ6-_D$M"\=ZNr|'%ÀնsY2 z@,B z4uGGI PKC1ɋnuvola/64x64/mimetypes/cdr.pngUT `A4PQux W 8T>33dDQ 3Ҧr(q0L3c4Ѣ I%M6eJadWJ{cJWi1nYy=ys~{- ܺk aㆵAC=i6vz}< ;p8L#o< !2gPi ikb}t!zWVSWH XqbsF^ݕٜԵ1'֛qr32:j] eT>OQ'?~)7` 0ZCLccJq`TٹVWsT/11f+GٷD"y2_BBu+ƯD.9s3.?fUNnXZwU7mҽזU%y%ֺxks+7hր!dVe&yfI˽d}MrFOqG~3}'/0<92y vccU7cCSLZ4`֊y[x"ZWL/ qYkS+g:uՠ  n5[/u(eY"H9$1b Iu9DR!x е@΂$/Oqrm3f: :]`90Bcʼn:U Ӏlra3G ş4qޅ6>@>$4_l}EFYAh/ywCOvQwTx8yZtʾ FF|~v4s)zPƏ9!P:cGH<}pZ䔩5TQP)ѹ x5vkXaRun^.]{xlQx[(ַ pGS}u5*~t0Z8dCd{.NCQ'B^E_Xx՞,3&-w}S0('oPn Q+T[TX-gRdi1yҵ1$JYLhp2xeu[fT..'+JM]&N[!L'I'uFQb2G6փq(9o!ڥ3ik{LDzZڭhxVŷ FG#YL9uL_ǃ4ĉÜaqH|QY&?ļNUEڨMeCTDSH?mٶmP:2ˈX~s[⡬:d7^91j#ьN iK@S#qW nd=r/4|FF{ Gp$5=2K:UɈdBƛXZD˻1ɚ퓴9rHs<8!++y:aPw!pc)Ԝ3oi\i4yi{_J5[A>Vr/i}%gEPH[_8vZvBFZ#M1v@PG({"0wh>6*{e/lI㫇X8J]/a^S&=EE5:0-DfC*/;2qcLmP^z/~bhiʝmgI PS==#/z A0swl ]Mɸc{+22]O*Kaԩz&֝qX&;SAjq)QG?/:׫7_տ1;R`kcqG!m3.kƩbVGKD@2vz'srŐo .!RW|"GTBJ'^~"tbw`C4JXH =C}#R;|YK9bl9_k8d2 2`YUZmR?NJ?AÚU``&s񶳸~w38Χ˦D2gAJDY MR,`&twgdTɭOlEݫjtO|Y*;a PRDh/[G>Ww 8Zy(^ӉM'i[p{ٹȢhiFȱRs EgZV1' 9-҂3EBD"-޿4⿄s*'$p9ǢlOsWN2~צ--706 CQ1{rKSESF02N9!^0#S>/'H|Q3:1Irf80@MU)-"$8B i Ȝ*xMr،IC{4Ҭ^=Bq($$*Ugߏ[uƈA*%G{nh^oƿ-mv+uPrWזBS2=ŋ;ojGIF\\dO"_n!sY3-`LJåF͔5-oTwY}G911]d[! OwroI=3M 0zl&4س/hP("v',T<tMSr,ywP7fjg(W\=ڟsUεF %!;R("rY39: |K_B -\І;W*5'g)AQ*fF\t J&1ȝ(XYb\)(y%1JHɣb=Ty4dL{\h?I8cIy vIz&,6F#5,B;N{VZ"҂[1ƓŌ%z[ :dFzߞ_imo AxI.#JO;YQrAYpY yBA|;$q0xˎvR9J2{bSZoR'B k5*tHЫzPbޙPc%`{8z|ګ7H */:h,4{V߮{W\orMPsa|DU_fNoppgl0B<,?;i87ZcjJӀa)wȿh 闣T"fU/y8ep+]`sJO# sʫ:rE~ϼ qPޤv9XHh .'%ԥ">,7lwRvUhK0Yssn1iT*5H2qmɺJdˋ-*M?K?yvU߹}aa&!?q˵D#0WӒMP <>`7Ƒ}۲èűWP=W`["BVU[lM:mV*L32GjGc*%r3ծԖB;Kڸn{~hPKC1Ҕ"nuvola/64x64/mimetypes/cdtrack.pngUT `A5PQux % hx TԟZ:||H5 huj'TPb쩳'bZt"3u42.&0&2:x{  X^}rڃ` F1o^z@R>/Lc/hxV_''ÅֳFZul)F>~ooo)sv{xgd<F&_!f|\]Cjjg2>_jJ>bk<ύ<-#ʾ}xN҂=wڝ{#W\XXal^v .D ~BK3wy{?+r!X֗+k9Ew5, `Z*)̨2zJu)"KT9gD GNȩ.f(NG- .xS$]d k]M2}* 5*LjfڣhSIY\dll9=@ʂTTδ7FPQX7ЈL6ld2GF̑f,E"jjRMٕcZ;?vj&ȗ !o~̢*wOF/b1WCwΓg5Te)].# *u!hhM$ZDMm|[v K+COt9wJ$_="ћBۖKmAci9{őt 1 q]0}|}#x܇8/ozk@߆6ң\,Çh.C6%1rjRц,ڈ-] ƾmuot^ЅcxU ddGkVU!4YȨmA/CIkrut ɿ&7kjMmc\TTk|뎄ͼ#fMbZh3Pc)J(DIZ6EkaV jZƂhW8 "X`,M'n`1ߙ+_ZVu~ 5Lմume'P;؋v:ٰWO[^$6T8ﳅ- -K{X{Z\,J9ݠgtޗ+Z]AL&9A[*=p-ුq獊]/Ig*[f)$ }Y, eI`bj6qW;^@KnuQp$%`K_y-2rɤ#'all{X'q8$~S&fwRI4Qh}"d ZhVlmъ"Mܮ,)Z!xMHé \OtcɡSfۍwCOtͧ!ufL#j[EtMwq@ C=2^ zԆ}`<GVQR=ۅKwgF'w/Kov'qK^%]I> 臼Sw5^` 8x>RV%}3B9K]GGbg1jǓ0g+T8H#W-|e% (&Wш=˄.ni{כާ{ZfZ~ eoǃK;Y.rDuk"$ol4KFE ڡ \^le:g/S^'Me4`qWKh{ ܪ24H{L]G^ z_ U7ًt]|ZRC]0, `z&YԔYD@/{Χ./ivx_6,By&HHu=x\)P7PxvgaGbW*eR;|IV8ǩYS{m0.U{<}}ij?/JUS#.r6/Tш|pPfWBeeYk1/ !1-Q Y,_:7a)ϣ+̈abzj>`C%r-}tYe!{MD%ՒCD*_X[eH$ ˨üC ֧!r0,^7.l!Fx [ey4e# Ð?#0e:յէU|pLVym]@7amߏʠe_bSJi y,Rg#EyÑg^WO>(12V96 t]낈9Vr%"XJgxyE]<[;2Z;}ւXS:e[RX$>ca\|]oe҄K92r_%Ǖ2:ο3#^_?kh*a|Q7+gs6q @zvRps!_8{[WwHԉQsl&ɒ0z[ik-`: hxJ6Rsp&k+Zu%Fz$F`/BpY =oHjyy{02#N #"%2  b5;ф:~E#5$TIKh_lI(:}A$cN?/ޱ#24u1ڐ4e=tp*Ơbu$#U1[&sz$e%Q[.k4K1X(4)(2`(i4&Wo]g1>o~/́L ];  Q&FLJWVZMGtv4UtWnS]"Ŭ;_]`na,HO"UqЏT0n );҇ z2.jvn/ &\kqI)x|tηoW)F JƢzj4oe0)$<(KC9KmqpMlÎ~2)@D܎b:7ñAW:3ڼvM0rt_?;]{]96,IkB:Ŋ!d89쇕 % ?P?ę+OIJ}=HTu5fg&$2?7M3nՠkeT.ueKq_SyWp,wEclv*g 5Ws~d1\lrѕf{TSAl[,t)g9pdwO::`ЃRU@tb{_ rFu2>R;*}' O8*UyQfR=bXɒN|W+N3j7%qk6,Qד2!ywxJJLB(e:L&)zĽ|h%eXVAZDcs=9"_\$: mbv(9k89ȁm)9忺=* 0eu` 5*1y > ǂe#g`3iJem9--`ݢzƒtJ @*?h=ބLHQ:?ijx`MT]sǤy0u&^tL0[׼cAI I4"{CE0`8c_EVDK snm tnKK.C%*ɇ.TgaS` Dqܡ߾EeC;y}lM 9ZJe[z+) ?xh266׶mgλEq((ɔEz%|y,E:RЋ۴ݼr;j)dܟ.hXڭ Yx]߻kerwօ57%jGc7dL0.gyer/π 聽Qi mD#|$4c;"GLq9$ZRCwLFR4Àn>9#nuvola/64x64/mimetypes/colorscm.pngUT t`A4PQux W 8Ti>3gaD̘ RSQFVB23&B*Sd~j2 -Y,&Ikwf7\{\{罟~~lD65g}a c=@I*s ߴB=.Q#c…?BAd&Xdo^bW:V- L)*hcDWL.K/qqxEͯBAhw CN)KRILb佪TH5ӗUݨy넲Se<эe)2q!., {[]k}X~&nIxBբm/xbCCW[>PgPU`uUAbP/|F5G@-M_=yxmPqDwȒòk@ ]m?p! +~rVj>; WQn>@N43[g.JT^,&$!E]BR/G:K>/.oHςOvPeF __Vm(1O b 7+x;ȠRһ)]3X>еofE}3 g)3L7eRXhE(  mM#9.౱lLkž)UWgq !-V%>X2e^K5X#PgU56 )z1p2 m[x"GS_Oy"f}Z5 oc!L|}VmKfbAzZ eJHr!2"hmbo\" B `=8 f|zi= +ֱ M%9{;@|w Ȕ(|vIN'niF\@/I٥fLF\2 YZH h/lobC WB&0ß!+J&P(ק! k巖^b^͋3_8ǮH/+bA 078KUJj䬉ȕpL'"\XiACy<ز[68NuI0NA[:LѡZڝ5Z[ӎ嘟{н?O=۹$)G u?aZw;LX~ 7ZFɹ^cӹPǦPf:v,C;fD S)vUi To +X1e\DeDN~"rE5vS̀k:8M=4Ϟ]EۂnxK\MU3r|;`>E,Sm0)NIw}_q$iSkljc;sl&-1Gw=hvU:AQ ֶ14j}}eoZ f )svql2 3 cFc>FGG=Y%XKTD[nh=ck{x˦N!KJx{O7.^J\:/ΘB35t9#fDҳ2R1$~;/79h[(7u_u'VK!x]bV$| 35#7QhՆbD| bXݗHvBl-bݤ8\?ocץ|B;B{B|>?_Xrס|DZ󏞰&8-*!!bPYɂ)sX7mpޛn$V`jhȺzGyvDhZvl6W珼oi=+2X겏d8s_0Uyo:bms1.GZuKȈBR!+ug&asۈA"a.NhUuc4 U%$Z >$wew6.HR ~+?S5Jϡ)ѡM(q,!n?%(@[X y@ʅ򒁡d5Tנ& ëk7Mk09g`ܽZiu?eoYtOE/JbfKͦVM Ptζ%R+|$yizVr#yz;\S>|))ќmN+hnh8߲%|ooPhݒ<n_],?LW=e7!:^Im?2QƼueMM?y.H+r7 -mǟQh ưaUq#C5K xZPnmq0tbPNg{w&= = \үȘY< I.gf 05kuˈu?񍒬<9>U\O}!+w{nn!++snԂ0q O]kY );:m3$pz!ڶxJ!p%O']Wiӡ豇n%ѮYP's OPH@ϙϬ2clCz3΄o sQ};L6'Ñ P9/0<7l[ I?PKC1>9#nuvola/64x64/mimetypes/colorset.pngUT `A4PQux W 8Ti>3gaD̘ RSQFVB23&B*Sd~j2 -Y,&Ikwf7\{\{罟~~lD65g}a c=@I*s ߴB=.Q#c…?BAd&Xdo^bW:V- L)*hcDWL.K/qqxEͯBAhw CN)KRILb佪TH5ӗUݨy넲Se<эe)2q!., {[]k}X~&nIxBբm/xbCCW[>PgPU`uUAbP/|F5G@-M_=yxmPqDwȒòk@ ]m?p! +~rVj>; WQn>@N43[g.JT^,&$!E]BR/G:K>/.oHςOvPeF __Vm(1O b 7+x;ȠRһ)]3X>еofE}3 g)3L7eRXhE(  mM#9.౱lLkž)UWgq !-V%>X2e^K5X#PgU56 )z1p2 m[x"GS_Oy"f}Z5 oc!L|}VmKfbAzZ eJHr!2"hmbo\" B `=8 f|zi= +ֱ M%9{;@|w Ȕ(|vIN'niF\@/I٥fLF\2 YZH h/lobC WB&0ß!+J&P(ק! k巖^b^͋3_8ǮH/+bA 078KUJj䬉ȕpL'"\XiACy<ز[68NuI0NA[:LѡZڝ5Z[ӎ嘟{н?O=۹$)G u?aZw;LX~ 7ZFɹ^cӹPǦPf:v,C;fD S)vUi To +X1e\DeDN~"rE5vS̀k:8M=4Ϟ]EۂnxK\MU3r|;`>E,Sm0)NIw}_q$iSkljc;sl&-1Gw=hvU:AQ ֶ14j}}eoZ f )svql2 3 cFc>FGG=Y%XKTD[nh=ck{x˦N!KJx{O7.^J\:/ΘB35t9#fDҳ2R1$~;/79h[(7u_u'VK!x]bV$| 35#7QhՆbD| bXݗHvBl-bݤ8\?ocץ|B;B{B|>?_Xrס|DZ󏞰&8-*!!bPYɂ)sX7mpޛn$V`jhȺzGyvDhZvl6W珼oi=+2X겏d8s_0Uyo:bms1.GZuKȈBR!+ug&asۈA"a.NhUuc4 U%$Z >$wew6.HR ~+?S5Jϡ)ѡM(q,!n?%(@[X y@ʅ򒁡d5Tנ& ëk7Mk09g`ܽZiu?eoYtOE/JbfKͦVM Ptζ%R+|$yizVr#yz;\S>|))ќmN+hnh8߲%|ooPhݒ<n_],?LW=e7!:^Im?2QƼueMM?y.H+r7 -mǟQh ưaUq#C5K xZPnmq0tbPNg{w&= = \үȘY< I.gf 05kuˈu?񍒬<9>U\O}!+w{nn!++snԂ0q O]kY );:m3$pz!ڶxJ!p%O']Wiӡ豇n%ѮYP's OPH@ϙϬ2clCz3΄o sQ};L6'Ñ P9/0<7l[ I?PKC16n nuvola/64x64/mimetypes/core.pngUT `A5PQux W{\K]kв':\΢S'ҊܒkImUa<#f(Ja$rzDI ]~}?>5>$swE:#olՆNhjG?=^=kwF/N!o Z$Dz"t>淂7l/@լ*EiMMM*'n]2J#3-wN?ҽIc$3@DY<z'O,h>x_R,ф8:20:yۣCmG_7gb0O7oOHҥPľJ ұmB&UVDћYy1\=J>s 'xQ\eZ8v`|T^T NPdY5k_21NTmv"|m%tq|&/>lҧqGLPpt;?3=tϰ&a s2jt{J}5hӏ*|VA4l@+Tvw=XQKh2%כ)w[ Ê4`<(l3 ϋ}^ sJb_|;y,glGmAlwA<<&Dz|7= yv~ '/b%BMCJz==zt:WpFOGkM8w}|S=^DZIfgjNV.wsV=&/nvsOVgM}CtMsb䧨Ӣneڲ iY!U}< ] bQQQ,qd'd>}hldi:;G+4m:1r)8ٕMp [cMx`td%[-11~){zzol*9sJsRd֝4 N lhllՄdzR9hU0܄?v3\=;UW@*r,Q`XXNlA{GXOcʱjo_|]Oz]BS`Nt'%b-C>) 'lJ+_7ŗyNMS}$&{X^^N_saFۤW AOHJoq8Y! HQE+=|E b{f9u*׭$ &UIGo ^k=¤}tW8~Uqk;v4 T*޻dCäg͗ؒnIׁuN6V~Ec…LĘ`&xgj\k Tdkd?:]Ia|wY޾yC[t) =_czH/ *3q.=ѡlhyo@&Jo Tj܏{}MEP݌Wu;+aD9+"-!eӐk"hQYEMEq"2~{"5DŽX[;cv]/9n#wߛ1;tYiU*$d J%C"Ӵ}*I! Y^jE>:wh}H|NX=&ڵDf#)"2Vu5K^>JT럜ĈN P9GNZn4yc>3CC~=u 6yZ<%yCQ"ʨ S:Q_R0Ԙ5@6n!0/~忭APZ&aҘyVu>pTgTKfuͤ) g5͔ kiL:|Q#y統 "k#N bBȅ)fѪj1|LB6 U&^Z)[aD3 -*,C"!v((o8~(r+R]<=yKBJ+1S+zx@Y@w)J|e,Hy_GB9{w 0jl)'VF^[&кI>ϛgrיfJc*=Mdќ˳f1/D X{1әbsQquڌh{4e: aaCKN-?5suPn PJPLq*q? p5]F *Ttw 3c',e2$Qٛ7γ:챨M~ pMfՓb$wx%N+)-,IPQc/fXYIf[[p8R;?/FFe:t+S;jʬY1Λ'1O wTl@."f@͖bajcϝ yZ oez3Aƪ#eH.n@)1"vlϟ;uNTj e [B$q$|yNn+i8_g*7[$:1~!AtW%%2V V;Xmx&P{0Koms#O!Uo佀j~Krrr颜Q]rZXx떉중ً$49&[M$1[<<<L&_gcWG\|su(or .4WVՓ!P<sͪ^RA*#dLDm1;{?~M|ƔVorXV8y=+.arxnDs͘cAEdxW@y:pƪDwcph[.WdjsAUQ2 E讼acGU1@Rgoulj\.l)c&9ZH aH"4$Wqoo>dSgX9V9A8[rƠ_mz bzct595^EUM 甧˃ۓ43c)b&`{ZToRV rwZ-c=%ӹs}FNmTZwVHzdjOMQ4f2hqmsh=!z<>Vٵ95)x][D )+)脦W\P?73V\pdb`WMh8Ҹ9l٠.Mbhu~Sq,` 6q@`0 O&df"+Qw兙Kipgd'*^=1Z{8u @_@ QZأ^/2Jo"A)-ʎO"^N7C P";?hBsHY0XsۻQ]G X>mTﳖgiu,̯k6ےij4mm(_>嶊ra }gQ'ivQvN;<#FQºIӑ70e3Bja*LK0%-\͛\@ҽ⅖p;S—U8xq0]:i8HcOEs ;c}6 I&Lۍ J+Bo.E x_1읞x"O*,ؐ)V\c>^ *h:^5ʉIPގA9Y)'T+ b5j3*/>2`j!Ji迖_lW6 cHM!f\&_bK; w6F 雠ьUpsO9458~/!2M'0]LZ 'c5(K1ҲTЪQ!]E;kY"K+ d0]ssmMN sGm2p:崡nvx+xXV tztLL%|u 1tk9#B9;y-ǩW|Hתطvx(#g} GsN.4Yhj~򡈐8:aj{H`DSXՋ}?΁LM )BGcʳ{ )~V9z@"Bba=-7mؗ7fW89DSGTK[yFR΂\Cq=cDFÛ-$z,U3č4Fvmu8]očT? L#EdR6@kKi#s?yCAL [`|%D#豍E|qwJGܻ2S5%Y] VPq&+>`v-hԨǯ?J&v-)DO:\;nxX-P g(X}l/n=g Bn, EmBsXUEW}uBH!J&A ((‘>EpyM$v#ONK<|<)WcZR1O cB@ #((.黥IH<~H0}hSxHi0^}fhBMY:qK5ڵG&{>D3.0Cجʿ`8kʾ+3gOүȻO><3Oڒ3O'&`u57P7q9%, J|Op\H B )Go,!'2ЅO.!Rpv@=Nn2-2BJHht|"C"-mMM]yy5uÁS7]pL-P8˝J.O ޷~eVI[Uxkb~-$Ѩ ?2~v~ANѪPɐQE<,該5;Z¶ it0wj]l*".-[^-Z$JNM?ץ[K>ï >}56o_lgy7W#Uu c3D6ai⑸33ΐ2+D#/EK%0~>I::UӶe~3lv|dt 4tRxlw[#c`o# _MHyk8E'<e~IFKܝm[k'jϬ7\* qxi^)vqO~߼WVtO\kTz[ZjcO?m[Z|uSG/ٕ*ff4gY7I0,(l>uu^9)3 o1-L$MXI,^|D9G ">0l>Zb% 1쾿 y9iXZƮ#;UM PчQ#g/~ _Qޡ 2OAqϬҴ(ϤUWs^ܴz^r/;8]VqxwN [utTЂIYAqߐGv:2aq?NNH#=mWEʷ)eFWq!6Ig' u ʓFS56WKf={nkUc) 7)%j{M/ڇ`̂봫?v6=C¡Ü&II h0<#oxbyrN'-d WIЪϗ1b% 'u]ɥzlU v/Bk:nņֳ)Wz(vԅq߲eOFV };BsK9*MzAwe] 0Eo dKU)}dQr' -֘G6Uw"ïkۤGV˛/:o54+ F#>V8Mɇ\yJ*;fMs+?a\*"kk# =K4j-myĪQSisgg=gAAot̶׷;MԢ$>1k~]abyyh7I5e{1DVco th_pUOhUXqWQ9:Hf+hCuQt#huN28drxz ~՘GdsT;q {2‰/$3XOLc1^BJM8ȞvoBO?PKC1G$#nuvola/64x64/mimetypes/document.pngUT z`A6PQux 5W PR>ldLCr)) kyʶ+bYM@\ZEi- [W[n-Bib.wf7s7nZFZc D4[6n?ul3$fTq @`|*7-.1aeB\ 0CAKz= #_?Wep.鑷uWIgSv%clBp ņ){z,ZDaAA$K Ц:͈nǻןk#8Ҕ?VuZy:==+ DPh/#IoCD"lҥE DCށKSΞ .%I3a1ѮA?S6 <5Sp1@1FYU%:sٲSϸKC?{ ЕyK}YrfG4i4n}2~֐}'v8hr9ts辸ͥ.,}Nbm!E:A͡ГF $Ѡ"Y&?N54Y~W = ؆wO \}0_! \ i'xB?; n5>ysCگDpKh—3ŋj&Jn0 Hb#ȠВ`.r18Uә8Br*;V1 NdYeU=L6VbUvZ5 KwȮxb&z!DѶʣ%rnAʯF'" SQ.FziCMjQA+S4*`xWmH X$%t-ìbiɛNx3^'hB d D,żCf+V~a)UΑ 1q F#FA]Сuƒ1XѢg2\^<7~ca7Ǘ.,2@9oNMvֶ _j nq!p|' @f)]0xnُW7bTR2/xɕ&Bw:jwOdsx-|=zL1(֮x.Rxܥ7".Ov y+bMvEЫoC3>=V(ÛhJӎ?pP剸eصD,9rQ鋭ie*V/"L~,*4ĉiK#*ZD9,%Jcv0?3Wa[}CnwTaiͳMВX+fAYS|4bFjL6|8/ ǯ-eh sӠœJiu;#e&gR"b(@J{3bċqN0qV5q6V3GKO7Dtn77(mֶo-% `f' VLWF}nٲT$S1Us?a\7b`op01LXP!b]"gX`U ߷'+)V2LJXiRGTMa|@287ŧwGkLUdzC:Fͤlr|'ܽ|hM N_E{+;# i-2ߒb<)2\h3]ngeo~P'vQsh=+8jݡ41 A_b#/Y$[b؊M5RG$otHL/Pނ҃gHhIԪ]5Ƚz/iu1}!EuhqqZwFCV?'_iFR93 &%c&9TW&G/Oq|5}ܻS/JOAC#bZ0uO+Vg/Z"awgLi`͒rwt=uhS.MckKpK+:](YmޭsK} ?ݭ퓯.fl* D'SN)^ WJRHNEOUt^^|D\HrnW+1F+ mWGLR#m߮u}'aUՁ+Zc{Q±WYf1 $t衮m$a(MGؽgןRL-y1Ζ[j8⹡WNt(a$["FͲI;NPw7?}$ ftGb33Ih?Οr|(3kXS#tDc,C feM nO<PolPb2o#>)E D<'hyN+v~l&g t >>򼏌ѻ.0q2I\. \~!m6/rpVDU1RMLōV/YG39YQ|.)丶wo%r DG/Y 1:F%qta\q]&;Nf"C!D`>}&yՄd˚ 8,'Uېy8ɡ*}Rˠmo]m'l/-z.Hu,o/]h9Sh<3ak]c[Z:auu`"];VZz/N~hyNƔi;k`1>RU.{QOar9n V}e=?N,C|7kSL^OhB q4hzF3ivy1  ЃD!:R2,wĺ z%YaUذ ϩIa |E`»YIw |ANx\ziƤV,D kɨg妖Gd_c%%s`n)ԖaB|Ɉ#埫49x`οmc/l=-:jL [}nc}!ﱯTm65cݑyMrO8qt,$]`]C!ukDιV 5,_ ܊J þ QN0xA^Ӭh gd ޚɤc;)ߩuU9"&|~t`<  %#Z+[gˠrYgnj&}QQ~P-S'-:$eh;xnM1A Vg]KA3ԗϥ 32㶼ߚ-cKJI%5<;@ITμPm 7/=10pqW. $%Ŗf1!'BܴڽqKQ//N7xum)vtPPͮBЏO5 '~%Yُ18,ʼ:c"mxt}7(>YF\|)]Rު೶MA̭WL"~0,%|I˘Έ'uJrsHrWm>=le]v }N P!x[T sNTċXlmb)(~[x@;l٤)C1nd?y`:0K^WjCM!їqNH{i>ÆqǓ!Jh$NJ(pz oV:#z"/$sXOrhYUZpOBCp<|Aǭ; AsDb p\n 2w#C~#qÃ5H6 SSk }uSKE>Х'8GmmB|;q:ŋ˹'Jr-FRk ]@D"[= Fw$72#׮^ʍZf Uk`ʣ}ccΤZvJ u^.M$Xw>i(n .p5)2T*h }#Kff><hCs:,=wt#6C@G\\nn/p1܏]G &,, ol5s4}#W{6ycaeKP!}iPr}b[fEaNYԮ4:N|KD:39Xx6ً' N@mfzzrp练%Θsmhm۶ {]V(Pۼwyv*!K.IC!DE˲*М4"a<6/ճ@:QM Q7 ҈[y@@7DR>U0]-/S4j}\h,jy'&e*U0a)>pp4۫^s>~*p[P^XT|gAʿj!f1☤wk΍,ޓsiW==\g"nTw΍N$mPTx^`CRD gr$&d^g^h g*-Gpx\Ʊ2 AB|E&֟?/9f۰MӕDyo.~~KX<գ.6n`dR{qEY.yhw5"HL "σh v|#E⺼`þtuTLbT;zAQQJ*.ru#/ ""0ßD9֝ԘOmdfkIu@Am>nU∏-E:7~>5jVK{/бOr$ s6ϗz p t$Ͻ5hLń5`N Om8b}y1|Gu3zwi#>җMUaU{EQC_o Cӌϫ75yrsn!Ϛ o O41N|Fm%h>l5k{ !Aܨ7@a&rt_0jh'meJ!mwynxqw ]%Jy{CfS#<LbW?&Q?LX"ؔeOQEn!d!u r{RUٿ/!N%&&Aɣl~\ f;ÊǦH)ϕ-?ƪEk9% |[VT?rYBRDS@zp)H&KWl8Yӊdk SLLp2v574pr&\)1IH{3t#,޶saُ 5˳x-K&D#x̭MqMwuhsZ𒓷H,6/OF~\SY麟7[plLZ1c+1mA#~V jKMݧ& !=U *)^WUc:n,濥5̨<WYa}/ yAEF)9Kx8#m18b/z&non@i A߮>*;tpPK-\Pn>ծ|UqpE DW? `Do| e\C:|1Χ0^l\ o$ -D'ΰzA}̆6c.e k#iH2Gm[U97OyXYF˥L걆0aZ"V R?WdórX!G0A$ ?] o5N'5}g|BJn,[y_X%V&Kۊ( a YEkp_)PFx*x^7SuD9 ?k|kCDcԎ#]v+eL$jIYͪ~͸&^YS-cu 2q$Jn]SiV`oNI \IEJ6/NEz(>pbϊmײ^iP5, > 4?ҕuKfGcp&aϹ5,x[c1j%Y{xa]-ʘ"yCG4ϥU. T,ty OLQ}vw>6P7a ղֳ' 뵑$)͖Pj+XOvmWP K9Suo&y׿NDI|cSD$9;@y9pj'zWr*ۑ)2EbP3:3WQwX,N]gns+.+2 >`^=;&S˧'=u J3/EHjJrNc;8$a:׊_@ZuG,hY UԦ8ḇD1%̢>IO˧b{N>zOr5koYꔖf%Nl9#޲{+Dy~H"%oH/u_ Sv[Iyi&_̊Lϑ6!:yq a;6Z$qa4dj >;/b%> %:4`92G8]$6©a(_%hvͿCd֯2ا`HzL,=?Pnp~曹hn"U#@*3sENii&'3Di:\W$JZ4hŦ%F:Q7b M95LE9QTZn9[Xý}í$9+$w'qvgYZ]k<г~&E`DWE$Q@U FLj+z3JuӡseCPg癡7 RAye4\Uwjئ,-V=E9D2×аQ^eJ')藌}}h:iW/Γ;N-=6:~2_ {>Z.]ܶv &ūgO1/{"'Pt;?Ld{w+usR1ėcmhp%{]3n2Im˨@ӝ~MaͧL bQۂzrt,0=i $Jpq% *Qiʃ,kV&[hKKn\X Ua@ka J/), -BǍdL?D_`ڽfB+zcnD~Z:IaǢnle14;0Фe) n rBŢb+[M >6I)v T G2ľ%N&ea?ЫOTM"Cw)a^}3| Țp,s!DH={ǒɨ5,Xj:u5x-TrN! *dvΠfܾi _1 =yL;~OQpF?Fl1R-mi5nK[2=cw!~%_Fmq,4ΤFmNJJ&Me-aj/B˕6/sOว ܦ&l]o0`+"O,mZ:*d(lp^ 4ȟ[ᶭ̓wtᏴOz,rt-0sGyB&[f(*76,}.!"u'4UlaȽEY'v{]br[ލn9ęj7m5b,9{v["Ib{BFUi, O%SS˿7WZ["k&ޫ|䶛TV<"_'4qUbL^jlgxNTSvܰK|8ưBIYХKЫWЭ1H0ChMˡoVm*y/=U5fٲn_e٧Y\#5bjRw_ (ʁE 0[UtC=_ w6X, U yil|. _Ҁn+ +6kx7=mbQ:S0O]?@fR0%*Ae.a5v(qoU,֛ &ip+d+V9zĄxWK 2rWH(c""B`Ti#VgmMP;c$܃o/%8ou(~щϸp9_pWRIb>\NXZB"- y[l0. }FXZfctE kv&DsZWq@8OPTwis3tJCS`.n&퀼f Ut[A l u_}A2k:j<@,"9=]PꕠhqT\R%]?KJ'Wp:8s֑gK@K,جCj،AA秉zNS]Ga#pd6aMc"}'&PȶmN\6Q&费q,Bp#E`r6pJcpͦϭy7{֘{3(?~bH!%-Ke߷nGžHG8΁ao&q;x`*gp+K}b?klw=[jr>&\ZJN|$U*.(o]Oʺ+[LXmrԽZWjߪ\2 -4dž/(SEe0;xYUl wG(hBv_Y&ej`}5+\xiX^wz8_ϰb;d}G3ۀR&c]A'ДwoƠ&xU ?}X!˿ּ=XJI}M7q#2R!uGKo"68~Sx(-ZLX ӽ%yd ,ࡦ=QԥgCmfY'a? )*6K Kn^d[by+M.jх{{ u,Vy¾t?fÏߡ&J'[r|SN?zvz)Y(Zwe.a; m*LV{jus &c~SH2)/w%*h`6E%MQ˻,SKڶ&V@():"{ލre7M Ez@kxo.,b kQ_m|l7{˂YoX}=.:HNISM“H͊',_!G:jASS uoVo Sj͖HD4y_m\o(n`${=>E*ol"sÏ,_~5,)=![rvU= }P p|6.9gk|ON!l8KYp|0,Q0/dᎏyqSCD'SQ5,6K.R(1XDi!xldY[6z҅IR\j~2 URceDߟ-{Jl%S28JE#x( !ӃlI;F7,FgC?[օ5U>QM #vq(]h˗l+0nп,m!6܏yCDu:@ *œFTX33uwz^szל- 4|-!{ݰvJlxco8ӭ_XZu0i̘FjztE;n2rAjt3gu^30 RN.Zev{g]`^ (užQif'J7&&& o277)\!Oy7;(3+QNh}vuAP@@KeMoЦ> c0akq)=5Z#,rVRԣ8wSwAS:!8hi$[kC.*S0 rVTFRw* Zjv|u(ƞ^*LxB3=]XVa<7ʰMܢ.}w vi3oWxK_GSΐ~xJɭChRoJJʃJAMmmEkMOdMZ'ZImPCt\=&ǘ;f>>_?$tnšɺʑ/-? }n3xd=Ku~#(__Bǁ[My\(bQQjD2Z[Y@#{?擯b4 [o'VE5&rbmFd:4_H` W E䘪&1xf<؜Aw#'4 Ұ0CUY`r>vD?U틢Ĉ6IOVgbK3՝<EG/]]3ٮdc-KHe\[g_ڡ&_@=Ν;NSSkUh'&" G qJnj3[hz~A0)҂lh/8ICq 5(ޑG2C+ oh1{(wq'¼BIJbNIϩMvA5p8ʕ+!n`8Cmxt^ubg J/g 2^R:gЙ_(Yq'Фy6^-'U/_WZB=YjPV3(ZwǨE8^52Z~uXR/|cSڕA ͛7q Iunƴ|3>)Vvb09aaf R/Pxk*2Y}-Rè=^/cBEs'lkWu~Cy2nG15643AE`LKбs1.:;Lvq2+K)C"Dw%D Rt׾L.<>rϖn!QxӘXNa !L|-oTbÕ' CАST =]펆<~& `l/W?|jdέaLݗ$/ m9ϮzA>SŠ!^QFe vF=1;Zщ ;q.n ^ep|Rh8lWFm]XJ-A!WBb'FAMAʳsHjIptZ=|&ZL]ԶϏӃ!*R"^)L!_S#05VBDzz/i=vYD"R9tm֩RؠS Ina@=8`-h.HN:Ak_:Qo 6p&7ʉ3Nt\@f£r6)夡MGVFA̮WVBsS({+bTce{}z!A 7 >b(.tљ-웵ǫwB: 8U{SՠE^︉uM3@)2:&dGOp_T.ט吏-?zSߗ/|pk}&-m۵/j5%γv[t;0x W'hFRQU4}$Ų RCnnrx~/N"ߩ!_;&/#5ܡ_I_?xFQ؏7BZpr;:l 4uUCwTK+)Kb8l@u "N*ig;u03=qojYMk/Wv1(5CVtpw~_N*w‹>b\dt͊4M(q;AI6I5q{՜)3'NWPͦ ѯ-y G4a2jvx9yx j E%MmLe\Gh(RzX%khx{(ض떇0PKC1f@r$nuvola/64x64/mimetypes/exec_wine.pngUT F`A7PQux -{TSOrNHxy(b>9A!T^I轀 I/! XЪEĂ-J#b` _E.DHrn13k֚{g{3a;ˍ Fk# }L[6wmž09qLp29:yb8~8?z$L?{wPAXA8hCmüpwwޚ.VBo=4?>5;,t'o̩-A}G_|9,Mk+a933|o@6"} `^n755eJ$K&zw\d||^0'`t*ؙPEy9ebbF9>~l֚_72zmQT bgIJ4#%Zl‚HP9iߝj:6}|jT\.4{ZՄu0ETN4|)H'KՋuBi年Cpu1B5ws)'ISPct}gm2UT+PWUe0=[9`eB"{n]V^腠}TGή3#Sp?*g*T/7 rwrf{:.JH&ex[;e5`{{{XBm涭U(`q8,·I<зw1PbjS+fٔ(u,Bp^+mbhqqᾅ%X҈UELiWQ/z?IPU" jF6U6ZCx,}tQtFzNe |xB։*QjCz_8'VFu:ÂfH#D#pN="Ȭ̤-OLSjAl)Qx\d15E94\,N@ HQ<4lq.Wldw͑bv"㤰aj1ЖudBa]Ȱ67):d "–3.2c|=/#ҏfŭGn c0dix-6V$ OX.E`sQ箙s~>T?Ӳ ++W/ FNXn,mq'N:lqjKzlr彏\!&0b'`g5a&yѲ}3NqDkpJ!fOQ [2F_NJ(g~F 5M0H(EHE<@onuy-ghv~+DGtrfFijP[[Uo%ED@G|Dd-+s?e x7OmBjI)*B;]rft=}NcVH4!sLuS=B}8+8D?F99qB$ޛ)8w>c@X!!6ˣ4#Ps<3F(i>*E%Voz Lʑ"~'-NN~ld0ΝT.ӷ#?B$/*E0)P;EW:Xe}_, 3` 'Ft-Գ.#j`qtF-E>]y@牏]Yy メvw*xQF(.ڮus#䩆0S^>1<(Zζ?hw@8gN,MǸ[?\ 6/g0њ/-wNZkkPN-lc t!TiNʅRT5`c Ť%Ǿ lզ2HTY]Ju,E..{y$p2\ i3/C xNiJrm_QH<r R8XOoLɰ=^C'&8\O{\nC{j4 ;d-2.{us$_;; XÚ3a[*s-AGG#h!LAVd:( Fga`CO /ҦfboxWfl9t~۲mZ-|뼗y>W!]$N[DTQА`f^^3ql"?!8vyIs cgWGJd++Eْihà"|# 0lEKY}Q]=xȭ 2ү8a8+^ѲԭTϑL{:}A~6mt-d JfQ݅KOǿlZ)^Bf"Cl /?b1>-:"QgazK3F Ow,_*Gm5P--'݉ &sBȤaSK|_DG1+Bדf*yXC #;L(:LY7W| )..e6nt4_ЭcYc#ɲaw2 Ә4.7m|b+(E((`ln[A#.طv_1 mH5J7+8‰Z nm͸0\* g0@ryhŏ?PKC1&S 2nuvola/64x64/mimetypes/file_locked-[Converted].pngUT h`A6PQux W{Oy YDޕ 6O7ƠÛD>ƉXaBé^Mᜰă y$ +L'Za*O GuX\\86UCImWޯ37Fb/-ʋy,,&xJ~ifa˦ߵ 'O,V$s cbd'ہegqCC@_o΢*r;722B_xѩy-플K6A\PfW}`:sꅖKoG7y#*u-ϛX!rLǬ[J(co@/)%I+=T;m`8 Cx <4Ь)FGM_C 4QJ4lx(#^ܡ")G骓^`uBgsʾ7mM|JSԣyH>K DR`<9+wEIMQX `.ԇjehi p4y$SSά^,'J'SoJ=QQ1Q2m @gbl_*jBb%tC6UT勤j9e {ߔ۠2'D]⾾|D~knCC8LMГ&;:xQCreMqHH_A|,g,4s%&\bq@Yx'͉hZW&z&{jKed+rȶ-loF K1cܤ Wۀ[\0V88++a~>T|&93o* }kkkbOOA+ׯ RGqoeQԗ34ůgmg #~|^Q1 wuuQQUUڵV-݊qs @`itYGZ2xO 3Cj<?'Mtb^? ;&,_®+z;QA>؟,[ I3SE.B= HC ._6 q <&LP7m:M趲-Zw({4˫"TpHղ ɢt'(~\tXQCCCCŅ6;{/x`IlB+)q7HxCԵ=蘱ZMPYrΝ..E,~v!+ VԨ1F^2?JyQcꊺ!@սgEAbFAf ͡ӺCōW'5mNU߶!y ZZz^I1i{ ƳKIeB<ɵzPTcxn}%s 0Sgn%ywn0)5i}8\Ly~tw)8bbb|s\[ZŇ&Ӻlt|>?܅\k1;NqN/ysӟԦ ץIҏy(z߿;| xB^ǫI&3ԬqE*jX^?r=}wH] H y['ecի[}Da979iD GyĉJ2Bx"ATlprQ4ȹMA>*lE-iR@]a1 ~R8Mt[t*^{Ejv4M("mkpvFW|>n$,?$`fi{Sg9)ro8 :ϩUIn&?XBZ~T.}֞O{}҉xMQwCxDEmIU19{WMI#Pn3<'=KcʅX#sM[^`^R  ҵDf1@/&'miI) 6Spˆ9pE߬Ϭ@2U> )1k*zJ mM$e"yUmH(gۀiLu <-p]1!עR| [:fi3VC8|a!_@#s*h -&Gu6B'1M0J(6+D2\_/Xfkgl;=;+mN\YmAI)f-Sgn&M x~ =Oy!̧x &OhevI(:(.i1aU;e8ge5CrE\@cplxG7\h\GOeAI͖J.ψW=$vqf[i3FV9+ɫ:5RE;u:ˍ1hNe(є]֥8ļf^#Q%~X1bKq?w!3y\d_|:ڏD\koZ9j3r?uW\^tP4Z\Gs@H3Fx>UdS[x)V'd(I(2{XD(a\9Œ2abի~- Й5Y2 7dmikrN̐V]Oޭ՝ÜOɯgI~iL<: n^'d h)FGfUSFy)Xu&Ϲ-XXT5ֹa>Tfv*ҵ[JOm?-:)-Ss3RdM f.H'Biv c@7Zλ^A͈zޞ9@HWn럢1:e_l QB~\8ր7T税PANM"2quiRyj3"%pX((I>7Vesr.K_Ѕ8vbxˣ|fY`mThzV -O5}e:Rz09UX4e҅~f8~f$:ѰʻU .9'\12냨Q4nys+bZZHE(}CȬU}<}[ek;u;͕BEg*i{:i3ݩY0J;lDg .~e_Rs<24~p4=g eָ+{%N?dDF@dw+kP>}b=k&g |%Z"[8,,uޛ[>]-#b/1mwwrLiVO0ՅXՃ<6u`Z-QlcHz$|@:^g0!sZUAsB3Xe8:2L)\uv=+cE .r.cwq\*W_fHRYG%o*57-(}}df#p9k\"Є@Vӣjj_{MNjf1k;4ڲVs 0xpE>Q{{uu:i=*=DݸqCsrBOWKO0QMtшHOM\-RcR߬l[t)Lsx]n+o |"Čcٟ>T[d~x:R2X 6yH /讍H58Ľ2roȶ fW^]T<ۍÃJ &[\^/Կ@< ;PKt91'$X&nuvola/64x64/mimetypes/file_locked.pngUT gUA7PQux %W{<06ds%dK!$e.ܻvq)fB*2t:ꔤ.K.ǏZI0>~|~}^|;}4 کTR?6d G2'M< bbI#cb#c2S;b@6/ZHQ }AJnQ3r/[[Rl]7p5}+AKFґfO|_ ) p3A>u`e5I(Py)yBB.J J5 ކNNpD`#((? ]tA@yzF@K* I=Y:J咭2PEm3JnwJ9fВ'"[0[  Zf 1[S],&$$`)pT7Pdk_?cVL9y7CTvwhz܊g׊TwӼOBZha߂[QCFkY̿TJ6Vݯ';Ǜr @`3HԚܺđƯo=L!qPͦ^ҩG_鲛>txC) Hw9ᕰ +TSBbºe@Du9B/hQеbFiUS}^0Ñ {[%} '(Zj-d}{ >s6&F|GqVl RD3sS,Pԣ&MR[o ׵x2w^WbIUDX g Nͨ֋u[{%,HjM5.V݅ i&NKޜwGzsHfs= :/ѮƢ5eͷȾ R^'.-h\SWP3sXwUt҂YpxB0ut'O|:4rv9j߀iii#co{“Na7nfe=e:)1 ?Wc_g'_ jk;eK]߈YlXK _ta^-HßfL.Qj@=YXTYя3s[}YIx, `l'r8™}Jubq{ +5A-Gn`6G@U\D#ni+CCk]q4spt䴃Z]47bOJuW̃;WsdM((>.qzB$#R? }YqӉn{Ocsoi^ȾK@s3T,qOpT/4O̭\yc]3͆97)Iݠ~@s.>#GAڂژ Rh-rƉS;Tڞ"̆uʏOj`kۜrwyxB޻a]tqAD4#UZ`l`}X*!Bq ud[Ƣ K`4&+lĭGY=]ZZZQXC_":4Կ(spjouZN>4_zsNOp;F^$0S͂vƺ%HGA< 1(b0{w*5i3_ҥ<ػMKB˵#K?>1k 9&hd"S= Prwv ?EVO~8Z[lTүeᤱILaȚWE4/(e[OJֽo:ɥïJ! 0>]A>6cP.'oӮ`N|Vo?h TT3Xf4 x4Tؕo;z 4m,AstQY!~d%1%/p7,fk,V(mC/#0AdʐK<6ekc?Hk) hLّ,;GNg[9&K8ҷ$;OZ:i\*_nZ(H =dh?jct a='_uԥ3Ӧ 6 +N5=8wUI;7Mea8}ѻfNi"m.Չ!8k(AĬUfil O9>:u`B.`sA=mM`m t)Na) =K"|TYke/Qq7VSnM q= "-*K8ySΞmFdh>aow9~yZoF^Ae* b{7S2H+k.rDsua#Mr/@_} y$7|+`T m0$> ԛq/?+l?Q)xd\knCife~K:Npa뺳'1Q]['JQcX;ЀgDBT5=՝TDG#233 fMUZ;MPbɬ,yd+tTxh* 3^j""fq9#]F 3koT .@2#r#+x~=w%TWlXE'/| 8H8G4@xB5۶PKC1vӫe))nuvola/64x64/mimetypes/file_temporary.pngUT n`A6PQux % T'  D ' (*h)$D "YdB@vTRP\P"k0!sf3̙>{"tg ~ʥt[=otn&wS/xdK#2z|jl9gfRBX3>PW7>"VҤA jk|; xǏ_u*<煯W-#np8Zt݌ /jdllEWW׆>* !%K8uo25fy׮:N->c8z@ =/Fc ^kddھ}SE*'SrEX64|_E"_a8j ǰOlL,t$`ln+F]RRZA1E@ckI'ǔw'~=܌zMkG qpp7]0N ӫ 8]bx!299,fӴDSRTy: }%i׺U'Z]8wV'}Fsﳵ;6cTz=!}iK'Gnե2GOro⌹pڶu:Z?O0?$sb+_H s R/#W[[yۢޜ1R#d]fyE-E@d-,Z Lk|KFzкҿFsW|veME/hE{zPF#SN L_,Cnp >E LUy2s5bouSj)n~2kWdV$7j(nw-v0V!ዻNj.cϯ[cW7Bc)O6#՚E#y6p'x\8}D0JBmWJJr+;vjqq2y d`侰" cݚ*Og C1sy鼪3ܪt2Nxy?}by1Pn=;iFa.m,bX3!qN-Zh)E#ƕniUߒ<,¹ } ]B2cb4f҂2BQOC7GC;:>r'#pq$8u7 y?^6q}froz7HlY@H KPsy xVq,zĴo s,aEWTɯФ/] .RYl%so.([. mOoy~Xsc$M|{_А1a(s0\7(Q`] JfL8F9cm&%z%`; R5Ftr#wȄ^ mG4`_7V+I#klRLS4t()%S:OR\Q67۾vڬ~ph0g'}T`k.tC'W U6DБaO9ҷ~uԱw&*.Mwtxg2u,侄\oC;#Wbj.O; yMg$w[O8M +$w$IS\T`\kExVHՙS@$ 4W^%` (S5_W㖳ik31Cц/6a{@?VW\Ǵ`bbbf1ǹyzq*qM5PsnOȒBI(KpȽGеwYK!瞰W@1bo x52LAs/ ohF\$A4{ZXXHbb82@0].PoB1k1  wί!~m 5pVNnuԊc#/u*>0҆] Lr-wWD1fh:"eUETFilߤk߮;}Cʙ/EFf-iyJTŬb{/[~1n)= ȡ[%%AcAcetk3oY /US݆2zDQ,ij/WL[H:Ff]#D&I^GIxo9|yڽ ~htP ddr>ٚ;Tq!dH"J%Иs&9u7p`ǚtrߤH7;I0$btm f\E5Dx ǭ&ޙmշN' TJ^^EuRB],bMY܍DwmA%T]=NR'_ $Qk1О:o ҧd*W[ϔ3ﭥĂp6%eDJbf;i$ 3cO@1%k%df N`SR1gMfR/I3N[K|JO Ϊ)>>>`j* :`#H5rF{\ےE:HXoYYnK;o@# qBY*0 9`ܴmˡD}/z UEI.n:2r"bOyPsXւ`0բA)r[K,/3gJ/a$%pW%fCiQ1 TR¢ʓ钅T_ULjᣟD}΂uxd: dYAa*Զ?^cł'Ɍ_M`+kAb @Unn9y^[9Y=` +Śro34҆r c3xgU#Ż'rOB2&n.d{>Qu U&ީGg.ʋ YVEn~l:2"]]RE7V'‚xS2=.c_28VgzcʹOF4]$*u6%rf ͂jÇ55(ЮJ ,pRbW@:KÅv"$| Ѫ0#SS7|1M bU-~,*4hj첋h$|ŨHJGD1IhpVnUv8{9GG]^˯[)l+LIO=\%o"Y`<ͺN q݉UZ[Qٌjޅlyag(LߍIyuqtu -Fb4kMFC$Z6`tuک"ϺN> 1b\J~n8]mJ)p0Y}>hfl1Wk| P~+iܩEU*S}]hƿwRTTFޙA%dY5Li9Nhq":>di$[ʛ]՘_J/ޑC~7;9z b<='=CPU4 vNp;;Wb=78P\ j']=&, jV{{|5bS7V_i\#i.|{ q exlxA a"70ᙹ0w64 k.IZW /k,_-,ʥ έ7HJY|̂7!o-gUQN /W1C\l2xfSbOF+rL;wh:xc67##O@7BQż 9W)@imnM2k!ʒ15z)mLp,?oj_i>vd߾?fV7f;2;S?l]>l\L#nj5CKPʾc_"Sۨ/ bڐ\ߵ$F2uGP?J"V>e(o4,xLb+AH*<ˡ9G}*6WI>MiΜZMi'cSqRaHԳ)6[,;NǵjnʊjμD618c.-likp~xK@Z8"5 ~kh R!g˩XCŔ-q#%^I4CV;*Tׯij.sѨI1/=fug|Y\L}w2zYuh܆67ѵd0g}t9,Ё1Pg\پKS$½2t% 0Dي;0P Q{?2YF{QKV/x91fDc'_BM{LuV9-nʘ=aGN Bȳ"b3vDk3?-2De5iO0$> WY#36&@Fvkdl3 [`>B>(wה` W3Ӷ"k.$RyaRԖI /DE\Xqr uS5ïro/w/a[mA)/vCFqMZ5MӸDxUYYG?xjoYwF@k\QѩQd`ԟ{AA%n}3Fn 6>+9a֝mmִO/<['0;hPAЎ=w:džFDdC:`A6PQux Vy<]>a$4Țǒel5%)cIxg-Y&!eY*&BUv4"Ygsss}u$IJHNH[kW `x 3lVv`D{E 0+?|/8=Џʼn l{ƾ_Z]iqLyxG,(!ޚnSozu`G˒j2 <ߚACbBggEWs3u b~G%K Ks_%.^#M}PQ1'=sYc۶XMNN[y ǰ0WS&##l=y9G077zA :C#z5ߒV~8rqw'0!huq[Ro(폐G8 N6%sڏ+Zwr4r߹y R֍G(|U;2~7qo;4O)SV ) kgqX6~hnRʒsskOm{5T=L7Ojdͬ%4[:>x|ɡ缜9wG^J>Y_N9I=Dq۠~nIz 7*ur_LLLrܟ_ϟ Nm]qٞ%;u_+2o<9Ꚍ|='rͻM MSo'%% wb৵U2-O͌]xǻ(k F{Vґ=*'kcMzM)ffQk  Ri?>6 b\WVQ`RmrDY,躰si ͆uzdy\~PC1;1xgͧvG=)4gT:_e\t-AĈ,@Kutرw9sٌH{&W|444Z2,{a wH&5UIl65$į3[[JOOOJ4>..n)%װlRGP+-hXj !&8Bm'uоR5̜9n]yh2 gKڼ-KbY,(u{PSS{{[bti؜>):wHɓYIP<%vm{Gi#GpvvvVtP MS"/2";yi%J뭙F ]ꇬ,UCF/߾Rx8O0i]>6^aȘ"I)IN#@Iѽn5T)|<!"C"cb؛n'9a пxʺ< [&<@PZFfLCLط8_~Jq/la5wK#-;,DL<{+tl qn1/ߖL+|-QX?]U؄GȬ$o4 D~ՎYәK[dؾ u1y/aYb #]Hy ,wOa:FL8WsľrJh'C*,DFtFҢg`ɾ>aU8Ȧe7u`?'=x`@(uX"aͿ]Ԇֻ2lg1OٟF lc27BV315=f i!i̐!-/ix80+~KqhGRMr$'Οߋ U\^vLZ`tMl",+OѲ,{&KiY7BQpf ѻ~_G_oFi&gӭ ^A;6&!B1 m5j}^ОhNTW'\GNE|빕*ظcN̙t qڦ[1;3.4XZV tcD# D' d0Fq7 ynn$ۤ*\ f!6STKu(|jF;gT&  ߵnSߧAeC9XJj{y,9B\^Y6};f\|a'z@(e6iCf[4+\  ]j(~YQ9EL~S#|?}ZYư2k~k٩°KuKJ-+TPa+OtK}søw4'vh͸*n 0ܪ%//Depŭi e myD1@Mqnˬ0MVX\NJ02fS y20;~iꋆCq$F?E\< gCkmpc[?bc"av|>.͢íWiT~m!9|_|Q`7̞oe,NmavÝÙ^{[;;vdǸ J(K JӊBOO'XPơYk*MU:(!zaT 8~ UMh(`Mg~@ʳm 5: {;E(7e%cf 6maN+%/B[ ]#?#hwAr錫D@f!1W~R4UHwVNԸx,d]xTuHǙg\T`. N4`d5%od69S9`GqE*[)R&[~=/h iEyز-jx0Ó)^Ym1//ivP>h3.$h}IX ѤMQk9jp0qq*<_+s\4yScA/WQ5Y@ k2nw$gd!u%0,A>S ]C[yRN,.[obN=*|@$qVT]⹊,Z4+/]bZ_*Ma<L =\):zc_n.so$j橨q!kз f\Y>m> auh:A/f ¡R+,< @G sVgg>OBPKvC1J(nuvola/64x64/mimetypes/font_truetype.pngUT 0`A5PQux W}] Y@-в 2734pn6iل0|*v'<.F?1s6ޘyZJhDj.9,, ٳ Rtﺬk\*֫tF b.bY(АӧO7)#F;{R L ڙ1䧗]}@aLG)7n|7CRBw&!eHDڵ+_'[o_7ߋ+!w00ۅLMv}'fwxJrr.MJhAL\D}u@sDh!/ մܕ5*qcK#M WNMK(z9dђ=PǞ^PhLY@+:@,ٱ 4V7~4՚?[/KxU=̻UsH>n9DC[& ˜ٯ6뻯 Z\ lCN bpe~YC k3GCTxz<pq,F{KMWWWyol3Yup0yW?P"Pa0-VnϟsNNCKo8xלCrhKKgJwV7?휠3+9 5 ɱw!hƍ)v/Zw}袈7u-_AyV$^|^~M54" Q]mr(n2s-jSgG K"D7hi9RW.UZhw_x{zzY)DS>T=kDo^ZrWбo e?m@Mqd־~p\~W0S oBxcc#7G[J\>%K9h,ĩԢ9orru*m ~,DJ+(xn/swJ@>Um샕*'>6(}ؼ.'68 ?n>%ٳ~'yDu#w5vdcowVvmzf˶ d2@9/L 0do8YbQ$J*k01d,gr!K #dPFICX.x?Yt2 vs&bjl e{plq]^ޢڎ.0Ď+NN 3%UWfsEW*i>.8 a!o&nS+mߪvf?':ݲ``O4ʸ kW8}nD,w)U ΗL3C!n#+27dQQ]p~w%I'xxX†7_ %*pesKY'5$#1#U]Xyb, q(v/ c4KwZghY "{7WM3NkHw>EDML ͬn $헯+VS=,5&J0碟L%{ L{7x{J[*ͷla_Vo<]痨LS F/ WƷΏ=^봟`9{rikS'N]?n;!.ㅻ*/Gڝ!i'M&ΈЛWgG*v<'&CjK]10ud#dSj\m$rA;@KǤ]%Nx9yŒrK(E"ŻCE5A`] ÷k]$DhϞИ>+ UfC::40fk9H| :U5g|p@^/?gVNHcԘQWn{ 89Iǟ_5gaP-}TX c;jf͈2Dz=?ƙ9xY(`3Pn䊎F \6n&[<Blh>m Z%*V7U> =+6} Jy-- b&. {S anoUVz~c?g;.6|Xwf.^}30!I !cKsLG]b{`Q9ˀH@Fv8*7A&~VQL>ό :FGZaY>(=xXf+TCErH\u漰4(L^xӔ[bjYC)vANTWCKlمYn,x`60[O8W<ef}uˠ_7/D i[>K0%*Y#U~~G;| Gx1Rˢ͐tS'ө$X]DzDbEW,Z )m{IHˊ8R'pHt~P_̣#Ԫȅrڽ564QQ:ֆ&Rq_R-A|Bal{L&ĽO_qְ.,@CJk[P>=P8^y%ga,,_GϿJ^C8禎h+;?qCqG°HbG"#{+?= Hb-pUpmEԊ0Clv Mj@UA(Y/nD zL(ld97Is͂3/,o?Q'ɕ}-UW@Ό bTkk$;n]';Cv 䦾=vG%F\w+ u,rbيwsE/iig.xOqmg<[Hk5\e`s-ooH7L4:ɆHV(oW^UjH?%"I_גE^)%LM\/=y[ /|{\2k#.So^(/u;Wiwta-So b:tϋh@epHǓ{᜽)\tӿ^ ǝKӇ0פ\\@s &evMV_!=Dynx4:+~O7#u,eS}نTr % ]bxqh}=tȱY}H8:6^C%J?Gaa3eMrx_VTnbXkgIxZYʆYu^`b"n[8+/Yw")>T)wd@ITAGT)CWJEid^/-{1s!; Yt;krR,:ܗ gmr2HzmK3n\B2zߒQQ_ETѿe&%=dR9"wsz&GbHohL,c(LYB1>+5B)\rEG*-,Rmnz#Xظu[s_ܼ?_iE@CgQ oQKl1QUVC|q,a[DG& DYÅ{^y[y/t9a0L@oDDDXAMYdǏI DڸCOeoV4'hu&:Z< ̔bfC]R܃#9ss,feK?qB ɺt&5X%pדym̭(ϝ1I!9J>a汫Q ϝOI@zp,VVm(WR= 2rwF1u Dw0C1|݁PKoC1x %nuvola/64x64/mimetypes/font_type1.pngUT "`A5PQux %W{ϳ/fZ؁a䌎? &nzCN2!盽h{?ԅɒm0.Y%@"A jhA(L⨏߿& 29K]/V,^4[d4t̹fQQ iZZZܩ.4ntK.L7dFt߾<{FsA~@T#v*kӧM~~]3pSHWC;k}yp8В%KpB>ȑ#P.() _ ,A]C?:xQPaE|¨Tפ7RbK(ദ2h;C$.HhGѻh`Q}~{ReȪ! fX5j2R/kf(lDy{K/3u8X@JGo@5+<v2WRG ]30Fv=^B|q'J}y<9Bׅ+Ơ'('ZpY% ]D#i8b%W|7B:EsGSnHDkׯ,WXh=C5ъ9;y*BOMe{ lH':2;wioc<}<./efi+dջ|PJG ۼdJ[zo3ĬW,+}(Bg 7d%rnɽ}x7#Gv})ў_>A[8ZRPЙn*9Š,2ҭ:Lnj( YE!Od<:ɓy $=>bU t#@qW/| +|}[8]ky:kzT@٥᧹\Uv6Ha&jNL] 䙉jF'gܥ"9Nڄ7cRWWoXt$Ƌ#g5VD?jr<sn= [6Jڅ^ pdwyBVT | Ye5w.x6{ 8 {δYbaXO!}ßS+kէf  v-CAZ[5ͱzN{VItndDP@4&G\}F ? ZwZj{1cFJ/!g{0GG5Fv3X*Eq^u价/ 5EQJ+J:j81;cW>k]88d[M+wpI &?`(bl`ҰN_iYVDor 4alS^.t<#f?:P<%8\)d~h~;IK('7x, Em)pb|ةP+5 h؀YJt, 8gs7aObm+zܥ-\'觀7@: JiG]2)I%>Wav͸*'U;g v.@,ﭕ8*b } ~AbId#{:3B-S|o͖9K^K,mHe KN1z6u)O~~ lb9T;ިh 2=Ȏ_bT,Ci]XԧBzŐ`\Ikې ubo͘#sjoc˗#}8H!l[k(p&rY|ЍKVLjX3|BZ3"ϻxJp_cl e{C2WjA׍})/`Jy lּ3fnԈ7XVTRbf`*ӎk̡}c` 5zHj_]*Cwfil<6}}Q[3 Szߘo$ ƒ@%*\sz4T:7y-UoI4݅ 0--NiQvP.3W&I% v*@~w(}"3`1%':7Ǡ@ Z?1hHjc;&l3zkI; jpǽG z V8b#1ba=+s{E-[X޴JCg^ܬH=gl\r d]*@^P1)HCeKWǭNNT0_ l)w0&mTO_nņ#ݱD$gy'skb1xlNם8.'ᴒ;׭|zU;xνGm^*:&,! 5UpŭRR(BqWoe :&006ݐ2ҴJ߰RD('i& o@rF|SּŹm8c\J=~ lmrغAInBc#+zui{5ް>& n`g'TnaC)xgl]zzf,1H}dX *tY[6EHY\2zt#[T@7uhxk-]/hzBV}֦vxgbv퓏.'S$OCq_sl2ƺ\'*"K\t/gB`l _, N8 )0ګyB2n0Q W?N@A8%*w,Yp)feˊ E  _#㭗g).:{8貼ɒO 8H4ќUԽ~+Ir1Q%ԧ/7*gj-qe5uI8Ƃ#TtBkWEwi/k{Ξ=i!)`βS]mgq!fsX zT+:w*px^#=pdž*J;a2-__j+cy^$'R*[]®w1 `TJ*4ߐ{Rde `|M+='~z7xꨜ~~hRol[2'~- _8wf8nĜYFf7 {a$ͧ۶FdV.o..XQXXnw m6i>%Yˈzd#<#L *1H`9͉I PXp =pR'_tJHNŃ>B;)I/3 Ƿ+)wdShnM ja$~4nH(17]CNmbӒk=(.%[ǻ{w@&ƦO;L''"@MK=Xst@~hUxHqGwgҬuߦx<|& <`/ 떍y~BehvC&<8$*@90ˋ.$:NôvÏhM(XMy.7yfqA+87'|POZ/hpdtOOWObk ih!TdG% JZ{$YOݺۼHB9 Z AVCiGPPiEK噩E'?&04A,$t8ppO I7UXz>XE6!oO>&Dt,<ǔr?nWlۿQ5PyvmMʛбaaҫ@0Y-:à4m0E;J,6AEy#%'DlU&13K W܍Mx⟾ԑ8|˚cEsVx8wszQaYMh"KGT鐝 t,kAFK̠o5Xi^$>v}G`{ nԕ !~O!4_/aC JD]ceeJ8덴ٚGe֣P)}x)/e4J(K HhבB{YD6'wU57b&8 rYW@/gYtye"Ur\2tɺ Y!ӏ''CА|]v@.j, H-h|#F4jI5ʈ{ ydc3" 2>ƹ\uQ,WN#Ysi$luܜvXW)v2J2\C~^]r 1,K9W8N82pބ5;G`ԅGqC6"\بu@:ΙzEL0PTUMe(nm y&>7'h-`Z<-y-^7«Dzޭ81Kݻpq%|C_!!M9h6;%tX5+lB{gث[NkuVNTs uT(-K 7$r(KJl GL/:ϒ7Jq g7t(}z * :S;Ւpz)psw2Y]y}Xa,uK.zwyR92= z [ Gq,,Bk3GRp 6q vM=B|/AM{g<$SErI肕}2D YcФB _VV AF_Ib"VPd%RJHeg# A+h8h!zQէeo¿TP Z-= eY_S(Fy)Q:qOXYD>W ō;yBv">>w':UºObΉ['2xܵפ|!5s#DZCh.(^2sw*&~+I')XORK7] ֫BBŹ.3-|| pʊ>g:Wqy˵ N9n9g!H)K} ,.¸emWNs/Ql|xf[6:bIKzlSHT9q_Jbb۔`b|34m{k~˃}sJ8Ba Ërѕ =\3s'md& [~OY/C[ӜS&{hGg;"5-mrV9XgN@ 8NUkiٿ(Wf" l{:܏nxF\Zﺷ֗u}+R k[ [#ೲm^K [˯5au7Ci^]Ȧ*h&:~Te^3Gs$/#YmB֭ (R-`@ycvχ;~رeHPKlC1r_:onuvola/64x64/mimetypes/gf.pngUT `A5PQux -W G_k08(`n~uW?I5|=S#R9)Ild0l+51M2Z4 Z[-PX,UM< {9.8diOn-yGS,iq`!Ǐ{v57 #wd6"Uco_Әf6| SK>Ĵ ]\j"ȋC0zWΊwhƈu֝scL.=BI$1s"nqGFc+@K$F3=fڵkCe)+I\P4b75"{oo40S{̃]=#7qϋLQ  S&!9DYtn 4+LiaHl: 1( D@"o+c@mJ hd՝Ӭ_s]M<9 Wx]̘O[u2Uff6a 3lq_M7iU=R+?oiR3]Յr>Ȑ A~AX5caHo5<`qftIIA*AY%QD!.x 57Q˪O\XY>hl8O['ZCl|LHbg.i95`eMU5RY23NF/ |yXJm2@q`3{rȑk|QyDs^] * < G cjGw~E 7 41T3ҁrFp-3\ZP4ܩsYTZ m~K&'^\Bi_ \[ J^bL  .ĹbKcX9sJ X*A|2e:"2*gj.mo9ϲs9rG:z~oqַ6_I e&FmHRx,bE8B,(`"-;aLi,}#Y%1|$)ڑmOwa$`^NjT.q%{!qXeYzRvQw0qH bȐhT+ܰl 1UGCd2cBtWdL阻t4w(b7A^  ?ij/ ݊Iz'2;$P!#5,X]ؠrO2f:*>o47W,0Ji=KlIo׹Zb+@[_cp(u6G܅ML}2H'խIdp` * ֐4~6_1>zضV>%i";]dϝTwwַ`*@huj I3>( GZ eŏ_(q Q;[FZԥ| 3w3 j$H O]$yk"0~}ȅ芹'0hDq6XDŽa9iƽ1Apx^fwguq{@M[EљP6Gi%YD(Xwq<m^iS%"廍!RJm gƾ{d+m_.Ľ5oZ$* C4r ~nyVĪy;= $+mt"FW ϟN،Zpٱ+ 9S#Bh|Ycsv$h?~dۤR*! NGREHuI/ @`C4E>#u#4ll,Y`x:֯\NODX~tr'L|t-IPb7 -!eJ Umm"}ͭ!v6Ԧ Zj?4!4R]mVF),|л6$n86af{79jTp85k#Tys~}-(zǩ?0HZNKC)(]v%&&U ޅ}?R.!9wJywYGW^㚈bbgbWTI$*y?(ĺ r&#tUq]п 4L DS25JL\A D&jNa2co{ϷG1 Wc, [,x;<~6'%U+|^)kF2nz)V=^ |[9s0VTVvЗQ_lI-G=c.3D'*oI"s u/{AkWӸ:sb).4jסWH)ssuJo 0cشpSK`#ݮ}ǨTjz41im2ɧ!V}ƌNIz1 18| bI^;{~>i}Ql6[|ܡ'&'HWaCڕQOk`*hnM2ǓMZ-*W[XQlK4^Ӫѭ4؆~X '5"[*)>LR^$8+PZFx(>)@wgPKhC1{ A)nuvola/64x64/mimetypes/gnome_app_info.pngUT `A5PQux W{<myl:HR6N[:E(Prze1JH:+EћdGrEHd1 o羯u{κߣLXI@yNW xyhTBPd.wGv;0#({G5Yƻ;q/-bj=H3q:::YbtU c u=:OZ"ꌩ֬d yrtp`hHy{Pٳc& P/.aUş?;Nĩ(GCwH^g.ǀ!yc Y߃1| c$]UUttte P_ks:1/]q|++J\;nԠ<$]wdzcI#^v/ n?^@ lWkƓڪHkH)q^Bpv9i"@IGА aUwEzdQ3YB˖k5{6l@?H?$\ 8I/m؏ h`|oq#_ʉ.y>YwG fmxƉLfyeI=I^sHnaC&÷(M:'wp{ȕ1Pb?eU7]~&klj̀u @\x l[WBLN&8C8܀Dn@VȨ,iݟ]pz?k=,o$5$3a';G^4q0MH #\/p@Q'ը|$' R=4f֯b5iOE" Sכ ;32g7W ^;OJ\R7t١1D?x^r Ja Ye5RO eFښ݅ U-},aGimLtuO+ٺiyӨcuuS6:>a?r~[v`o!sn_{Gķ 1%WRz>TA$e=,oDxIlYX4l dfvP^um̷(8kUapsV1KN2xHǧ.Vvi=J?#.uj͠Js@ƀDc- !8\ |'nbQlh bz]"ݩakJdo˥UXSy.jQx70e]˴): O'k%ϙ 0ppМϑ_tdo۴ڠOКO(lxgi=<^,mF 0?M`:aL2Ϣ :h(`(5HTP|D-\͇L`%ceA$&瀹׳|ϼb f&wc^OKKw.~7ņDI$*0ߢ0W T gwlNCίk* io}+G8?%"ݖ$S1̛ўY% j8UibR+whl'7"?X H3_ހU%[Ùάdng_N{(3^^D/p N^ 0gy]CiݧI4r8iEʕ[ds{n!|,lgd]Ϟꇬw;Y~q fH3dQSC*c|*T;EȯVHq8TxKVi]VJq1.="{ēA'Vu$7& %ʼno޳_/u-m%3S1umGoy s?H {qA[g9|[nwx ލ(}FX6ة]]'Z{bj9}K!^ᗑ75*0FXє#5Xw]RV{k@! }H1Xn}aЅɚ"knmGլs=6['{P1߳Kw#l} ZVr#}VkQu_8{ۢ>v1'͙u: Zt͓6H;/eAl c>H v+}TPCZm'kj7-{#ܣl7BJ'%, JUUQ(zE7{EdBfs[mR*UIGNnA̙m|l NrX$A `XmryU?n'$|=]Lp`Ué) 693B\z+7-ˑଇV&47قt* P~ҌҐ0+ #E‚SS 6ח!Uuq Ʀ+:d(P. J]oű*s '4Q:Y טLfS l&/lqcmB;1"nW8}wG\%]YK-L)லH_g"yl8_`bF`'ll_el~i ٜXR N&m}b <ث끈%nLyj-j2@%.Ё[r:]_&[t6(FG/ :ýN )NJD_O^ECB*&ʟ(QecYa_ԸRUB"1b$IӌK'vʙߡK܊VuvJ.FuD}e\(K%L-.䊌% EZdD)i:! h1kՖ%dnI[6nOV lCW,w)#_}KQv.x'O+q{#$Ya˶mZ6wbZ2Yw%LfǞ pQ ;3-OvXf.38[ zƻ"%a]#9SK!5I 6ܗ+3Bށ¾B~K4(D=(u~mƎ\[DZ/]t};.2z[Yg 9B9 W%0{Q 3!2!(-^ތ dR D ~?H_k"ۄ{p^RZ'UuޭKxfíiCB_,V:|vlog$;#z%Y$]p|(BaqWRRۨM k2࿨Te2kfG[JcAtiծn"1gT@HZ`T牿yOv =1 ˈZx30?kH"/_ٚ6`jN$pI a1D֐!*F߶O?LpJ53]1% R4Ež6f88I/<ӗyW@ٸQn];z'HtL. Yg5RZ7ކKh``ܴo.ʏbb/06Fׯ2MyP7X9 ߹m-0b6a/}YD1Xؗ#*,G.)UڸԪǦXKNqkiRmoIq;@u@.nڶ)yQÆ' Bԃ6]W ^u-K*2D޽V%m9ot\^*fM:#%8EK%rFuKwa" LSZtQ42? ɽpBhjD*殃Jn>ĩ89ALzy-zΜJ UO\PAF*lI>B"篘LV]tՖ[pFvU+]s$BI`6u;jroy![Lg?l2;ǦN>?6>q>7\8t`VsӮ,rU B_g,ba&8/ꄮlH"Gxt/_q'̯_Zxw ]}/i96pc sv٤ɑ@+7x_7 _ 6rҀ5vvKx9[T\ LOF8dX-DFS<hb^/7Co}O2a'=3 ɲ3JE:I9fWꖆqMJ[ -3簚OXtZ!<̂u?̯GKcKAth8t 5{M1Qhn%f6jqv{솫̡j-D.Ïi'4hOdAcᐟb"Ԙ0 9CŬ#X*#*5y#$aػ:$9:yb>終 nz#[vʽ],]psCYK~{~I2F/}L鞴bFBɵGF?V}4Wt{^'YQ߻kwz;zXǖuTw8 ߳z`x럻iNv3A ̛/qE#;Bs({iC$c9å;[45}33'ޮ ҊsrrDs(@EVB[nߣ 9HknX AV Y,4ezj: ".w0ߗհY hب4őuu3 Fa ||r+1?`[ͯN/LiRkWRb9<{(L:"TP&EZ R!G>ve [{wh3PKeC1.*nuvola/64x64/mimetypes/html.pngUT `A6PQux X fAk[au:?y ZZ0pic𢻻J#_wS=3^a v[t=Av7i'-EHL1 6lpNύ6_zE󅅅aӉ^9'fG!&6͑h亵݈m9V^H[;e,R-Ka u ȶFG17Zi2KoO [|?'2qF\@wk?9ۤHNmRZЀ'p !| РB5%>>XwӿRX1eAL=ǦYv[Q ~~* KL2T:?ŷ3]Qad'=q-\F#;bJ[QUIeҟW?qv93ʵ1¢{MaZ-;i`6Z-sA&)AYR |Bqo-i4(~nN ʾy+~.8lA`I $TvnCFheP~W~-Ը "@vх9WTp=3+m{`VnfX>v`rs&6.wYj%|=m)vY)$_'DQZl9.|Mns[ΟH^,L&g *m rFDlX4uMr!34x!B,#;\qpP6i>iUsaǤoFl*lg> t/ Rt $ꧬQAP+i ""}VbMUN.تS+#9Xy4&v([Ȣ/{=Jg6濗7@vw+'ڶ\7+6jB&eALqxKIc F؇˙gX,5v?&)07@$LWjjqsl/䖀/|&-e1V`r#6H2FS'~q :[xܯL~踐3Wb* %UbP#_Q1/5+K\L8FzF?Io`NߦkT*OҡԌ.ōo84ܮȨx {ijߘ*|4ӨSV >^2'({V?b}ȳT,?xF .oQ9D뵦c `5')HTzʣL7F(׮}0Y FT;BX02zvE'X&G¥aiOъ@C}O<*oS0<3wSx+֫_w@(=.'=&*2 >[nBRǃmiQR)YtHe~ֵʔ?Rr ;y\`3&ݯ\| vR23&7*.XRS',wqXH|2r:֚Y,Os׭0v$L .b5~yP֫ܺ2[WW+N_JF;A)S Xs%fg#Ld)9`nۿp(VJsOIUؤ F~bd#nxҦ0: ц-iYKm b7)q a޻4gg"hBf xksTv !duWe/E_,/$~tZx1s6Vil11NRY׽yWIv;Kp-PR*8pD&O d`#Hf+¬ *aWYFBCnnv "C)C>"ߪe%k| AvhGt07`l~1B򞿕UZ\̚jS4Μz'kC~pѕ `o~xZ{ ,לاExILv1?9Q4M-M#;:^NCyBv_(^MtY:r!.*[u{ xfx_fMhn!)6"'i w60"!x B})O 7F|vVqsMx=eĽ3KضS*vTBx0>o=nn,ȴǝ3 aCDbJ>$!NdK\ςҥ6DfɠkjصD){7Rw\_e-)6A"SG !dq۲rt8k)[NE&X1{-+ݼR *6llư?#97iL5Kg$ JDHu&ŭ40$x-{Gi?y[[1$Zf{rIYfZT9t}b3Msuůd2̶?a ZPH6⥣hv &u,EN-M1–KywAO4ÎxM~y+}fI7^̗cy"\nw^(V`2|'!w9,Oݥ۬b!py}@C d)aůEA,p9ֱ͉޾s0DVUo æE|M@3| ڳa2;lx$ߟq}:WfO65kԴKWܖgu,2|Z@Av41.tuyhṰ$wCf])ҫ! 5ۤ2}{%$dFLPʇeH6u^^Bx)r~U[Lr*V,Ͽsh#I{͸VrdTi>!&2U0,u^vDӧP5j|A7tjnj73UrE1}LtMnKOUgroRTyxu%%VN+ IG&L/&V3۪ea{zg:=oFTFY0_zyqZќ٦_Eb_I._? cm)N#?M>!NaK70pLZP37|ޞ/8=7l(wS1jZ 2Ihj)M"6wr? @O,6i::N+8~Kz&-ZW:&NƿDivurfo2]$FC]=GSQL# nYK緤}AVdא1N4oE{4@ѿ]@eK`}Cqzx6`t"R$<}=,vH%ncpMkr8rUU 7[VVOI?;AR* H ^lݺu(770)|!^_޾>Q8M&!z!,"`p* 1GD}xDK1<@F;uM´UOV'*-hR pvXre`j :<[P@蚛PKbC1@S I nuvola/64x64/mimetypes/image.pngUT `A5PQux W TW}IB$e (bT$!B$ARbA*HIFJAC"TD n$ 0Ad ?y3{~w 'YH73 6y=.JLےv0:5ci{7Gǥkg@|=pTx562 ._|ɥzrM?5ZnkV^恦wg'|4Ɠ8.yެţU{{c~:~1l@ffCݝ~9LI/’Iiĉ{ٕsM{Ş…Ṕz yukbbz'.](ْuB䍄ᑶү!03dt%1CZOdv8$G1,sQjqB\S=J:+Ls塅;wT1涉hr4yC1GH dgN3JMz̀Ό 1$|0D4a$#PBBBQpbгMfY x=9eǕh*wx߄<.bXO(]pcUiqeXp{ W"WG7 osz}`qgӧԫWRӼЗ K)@7wO)-_LMޓ(w YUǎ#QD'DJLZBPD`)J(-7zȲ%bO cf*12M| a#Іr^dA1K*!2Q0%C|N0yVmBGJꊳ _K)M|rX02Hgh-$DA3KN8ʢh^ڻ$L~+0QX'˅Mn ~+!1QUK{(57x0䓷@ػ,:n"3clgY.^*>?ʰ߷BAJc#ެ -6֑nsA32F;۽шF_Z&5Ą˄1 ax&I΁Ez؛ NS0&e˛xBҌԔ _RG8!DQ@; ћDlYyxeD8#™EJt  I *ڧv\~2uW>jYݬ[Phah62 qaߞ>M&Fb/bu G/-(5(˅. MgRW=U#UMl7MPYia Fl_uT)62WH 3ۉ/To /S]j\C Uҭ JFL۴L љPť24 M7b+W;um>IWyY?7%.OyI$.vIq_GCp׽jXM?o$-gZe2$jԈF(.==Kd2=v}z=|7z.p:1#"9~~ԅ2O|l@Wh@N*5/YHJm,_BR'O lb@liҀI!F 珵Mǵ5h%3t嵥v3w:uy֒oyyy댁S~F1V{೘bWĻŇn`;k_#csSQK@>PG*p:+RBh!󹆧n0#L Jz{2z4bH)5]̀ ۭPu1 -緵$n@b6_6KjؿhCYri`)N2@ VFΠҐ(7?vڙ*mmػaS*M§yw <.v]3{?wЎƠ5԰-ܽ-̋HԔǦAUc2s:}Uk&Aqxwwd{sɅx”t?nϓ $ĸzǝ"?Xabm|."^hXWW眒xDO)񐿿,q|p!HolN]Gs%!q*ݰ]TٓwE"+܌;2>|YYK>yT=d?V%Wd>UX1sC2}^e6?)JIȵi?"2c?utXBa`hл-ˋG^H2&);,l|1Y E{xN;/aSSÊ_m)@dCu?B 7l5o~PK\C1kD%nuvola/64x64/mimetypes/image_gimp.pngUT `A7PQux %W{uIl_\TAúNvww@Ԥr"%+秔?{S]9M3@7ki&35i"Z(G*@]~ a±}Ӵ!>>>\۬ WtU0ab_r"dæ|[@czyazn$mcb|J`thW/yq3ڄdޅ)R#GXg$ Thz> @?[a}J$&.9P{X `F❝!:D!{$g]ٽbcF$8Q&a׮}%[JB8 3cK+H:S6Y K*nnnO0w|qoia$(/+0&3#/6ncsYk;2.^dt,tb30h4ɣv(q;rx8 *g%DFG-ۉC d c H]ovr @]dwwE݃3o8lYz~_7N @Z[* / }H7߿Y 3LE ??+fdc"~8P|R1"e,&ӆ%edjxGDB.4\xc9gj tL-I#W(p47vT^Y<,-V= z `j2ؿۺO"W-]pꅓ/ceXcjDS ?yRPSt 7B]tEWxSI5٨82qѰ0M>*/-(FT !F1q¨-z[[ y[b.wLn@3ݱimMLL5?3朵䙢 ҉#P jx~<ָMU=pR$\F=Q5atsT?rm.&Irr\~&{CB ûO+#ŮҋV.%U`J`h*%X>¥H>GA0Z,P^s*R|>YO7e!tW CB#F'&JCS `:5E7IO&x&`eBb^ TRSl**Tmuh(} t{;;]b.I 6ӬN(1eFȱm=_4 G { ,P3ֻճB+ -Dн̝L+WDw8d|k,C(Ad8Pf2b->\%$#kq潉5[mJ%eoEҐt U/ՊJ?Vaѐ&fd`x=]Pu} .Тp"YAtK^U!:l7 %P{R16b; jOiX 1Ȥ#]TJ57|\Mr}FAJl+J77ww!~@=PZON%~GSd+c`7EndeCWOſ$r3jK BLDN#Vc:6]s]^VHbF)i>Сf[`~@~Y^&FPB?Y<, Wn_OSK̵l.yz9=oj޼f6_dVȝ;]]<=;P!8JL&>'7YEg:'SްCg(xMsDsT;/\g, TRԤw;)Tl% ZKI?MH; j=`AY!ȩKٶ2`b74  [+1Cr@뤞-aV?dq*7\^`c6a_gaE?xûo4 <5X0ݖI]n)2N'0y8~L++gD1X<{{XP~7 z !5G2d3 srK@6-<`_dڐFes\_)$յzL >"яyWԟ)Ӽs͟ IS_\lxv2:;`t Xͧ`{ĢqVyk`YZ U <]gD@%zAsq1'W mƞ pKggLSqzq9k zaߵkI>6fYn 5G \{0Opř<[?\M1R1~jp}+1iBd.OPbFNCncf%x I_=Mc1U4c&}z[&hǪj{j^FSG,ޭjU'#"2i A#f<ҌT;"X($c-8JЕnu3zi#Z; GpN+`y35ϼYrkA۝'jn k_D?ug70 g vwƶ.QO$/YI(bbbr] pH$_"z@*C OG9z4^ XB@)ژ4Fs[pNFu^~Tw0'|/EVֿ#l4#7y{Zz::DuĴ@Z>#_fn2[m0?;;ZW^}!)#-ߨI#"W~'[K*++srPkh_ azqߵx[Pq^=8^Z=/n8)))"ڼjbo|WNa^rB6iJi;fE3HFl >cW &Fdy8WHM:}؝,%#2A.n"Dv-Ln uŸ:ei\6KѸ MkP_vyT3PKUC1J~a,Rnuvola/64x64/mimetypes/info.pngUT `A4PQux %W 8mv0)[zT 9T A+krZ^KK+cg$,Bf7w_s]wmr-t|}~Uc#t\e1(l_enC A$V .O[8flבNK2ZMxp$7OlЧ?pȧ\BȄ=m  ǽlSPc5F>Bv]ho|H]f}s$+֋\z-ȹWsJ="Ǻc[~]M< >7HI>dkɎQ+đ gzuawvb5*O50'&S?f]@eP@SYڴK(iĭqX}u^>h:7ɸ7{PG%;Sxoz 1gM:h'daqXlJ}/o%p"g8T_ !lj/\ы72h.g{HW/.m,]ìǺX<\5V)MdJ(3Qa+q`2W / 䘼cW ,Qf@[4-xO40("7gńqŬG|TɉL,O@yшх} DG#s1B0B@rtFlx !2ۣvǼ2wor1my @GaYpp1w{ͯX>,9kIX~SM1L| OY4=~Zwo`@6ܫ+;ͼ^PrɵahXZ\HTQD7#44NOkyW,UeL v2v^uz?1 :QdG ox;B2!2`}e ilB6wa`W&\Es0j)[`<ƹ\W-/1Ҹ9p3J=q,t%XI[f 9JA<$!6b n(2&0@Jyl:pVqY"f0cn-]&}C =hpQ㩩5G֠|l.yRv |%R:i6AަqAd2#R_ UG6nDO2ߘ Ǭv PlB#"a }>E4a}\[vElP˒O`n撻 *T0}sQ{9в]9. 1S+FnjՋiY44vzR̫4iFyFBXYܟ!O al ZDEyZGK]yv:b"㳱{kptQ#dp?#U`C>Dp hrgk5(R_h;Po􋂕Jt^ vzqHLQxcWѕ$unUu64P*bџ3QrBy6ˢ?#(=)弽N\b>LJ1uH߿:- ' 9IN=}H".]dpzNx)Vn@fݟ { ke,-yliIZv6?q9~''KDq,4;Vn}P^SXJjN9%=؈L5hyNS)`\ue<"wClDS8g/KJ 20f@]/+AS sxXEei*I-5CV= M? %$KE|mcs$弃x*r6Y=ƬIj\$p¡Z#4d] Ο5Ub .X↴_Q wkM.Rdrit*soޕN) ^{6Y9խbw`UlLd}K?$fZqmw-[*?ЙWp q ,CyWo#>ݡxo Q`ȧsŏqn 2e嫐H/me62º[RؗQ " qC+y~UUjm@mW6S92AU6K`ǩoػLmFew]D,͜L8\>u$IԻ(2`ˆpVK-ư9#Tzo=A7 8r7'bbFVѵyYAO/PKXC11"nuvola/64x64/mimetypes/install.pngUT `A7PQux -X{<>}CmH! ei!]:U}f(1NTN:SM~t\+%56>x>~y_|>'CfC=Gc _k;tk ntx`kԔMa);RF bEҷ I? q[Y;^Faا&pk~wIƇ}&I|?ԊM~Y撮ݼRDaIu͂__bB:"BY'N#کCGL._~=%`|D!3DTj &?wT̼$H[@qц֛2>^r1n Chr/xQ} {-5hoKM<GT:9T >r}% ć7mn}EfzB=mcR)m3Emtrf 3XM]+\ 1xle0wjY{tQi`w;sQCaUhZKev_U|B2s%o bm<҃\!A&޼ItDvȽmW[ȋq~QOSx@st#*8 uScnyUۯ>/һP, j+eAuKh[RJ̝砌_ CގR=3Á?8u-0sE. J5n~X$kKvj9ML{ylx)Q^A7B0| | ΀|[ ԳYPd}qc<`UG~ vKF#. crYQ+.%/ILŞgX,k]Q#9z+B/IFXd]iP.ŢBr043|ݍX.Mڇ;OŮ[w Ԩ2k`2FV4ќnzmZD˽ +PMKQ KmG-SOsɓxSFFoO: YN,! 5o}KȆ S=#ngkn#oqE<={٢ex?8Gy~ѣ|t 9V+!S"!^VqRh}HcG1o*dHX+\`%k/$.ri$Q6XT6 @}2z(i F*:L~M ؃%knsKEU34$) %a Pć`i)NrmF 9厀v"_0m+>8WQaUJOED}FnDԻkZ8 SB \|`>ʣWbߍY>=(xe:⏨9gAK>'oy&myQ3CL5bsL42ד^k-<${i_IOfe_ Bƚr&bE RĀh*M (#&3|?20_w;;!n?!2vejoΊo>ʅ7GE)GAz[smG͚J~v?aZmX=/ kf3<1V=z?jNmYYLJ!ɱ|HEdVفEKtf& w$qK3`lK6Դ+dz1tH˨ fnb`,vmj}H}1Bu v:ߟj~Eu4!"ic $U# imPG(E9Pk3cդrr!JJ)J% >M2$Ԇ/|>pG3lnu=,u G?c>UAKDA].w.uY֮3rz--.B[LX/|kPsu WJxpCXEь^jNxG}}JiU3}rπA5JQ [Z}*L]ͯx&i dֹ̥`*Hlg"X9n&L=uBX 0+ :q*0jթه [*M- 8e=Birck{{'8M4c`*=+(+2p>:>Fz! Kp-8n^0`鸠_Ѻ˅M;Uu՜aZr&ĭIxq܉(%)EqHK+щ(eWួQmM$%nu-ˍ&LQ%āspcXu+hd7.1 uuiDڣ ^`0cr6H(Aߠ#Dz44]ea *i;UnÐG/`+tņ ǜY{d*0X|6 DFGgkr WPU} xR<35q1ٓ ~xF%qhëMԦhӂ\ =4;Y4P瘹8$Ⱦsh#h"AJ+C.:qKJ|$e<iJᎎgMn?u("xF97A`~VùS+ Ma0uGRf~XRXHlJ0l0ZN,̊O"güMkP’ujcyO$n7=6s]"Hd"@o )W+`4/VedqyNSa:4}WnG4?{FѓQ(1tq߱\`\yn'f:|Z ԇ՗/%ѹgk-Jutqrb^yYXDPqc#\x~,iNjP@#026lc=v- Dl=(|𰲲fY#ɏC-dm Hq1reլ!‟$C+ij6D<xb*8wE|-b|e-w<5>žt]BU{?kz,n񰐖~ԥ WA0UGD+mu좯yDTL"]*2ąp<}-q_p? &,C[gD\^Q'c1eap zYǫ-EP_r,G(11+2`5^;iՕ< b\ ([&>xiQS 0w$wHp9m?Q%*3iK+-kLw5{xz6̼;z{>o+U/o NmP,ǘI?3^n߼G"3\rz׿VAA AJy_v9Z>y-#vzsۿ)v=k5Uc0Y'‚9HF%20u8˴{B.!f_*,9(ZiʜEtlثڿؚo-MzmUr֘ޤJX!/̍ zE:Le=Dc`7ML/:#eSu_nPKPC1GNA#nuvola/64x64/mimetypes/java_jar.pngUT `A7PQux %Yyɤn.}UW5UZnc"*d_g9;9|>|ޟyo2@{cozd|5G?l{ Zpg7ߞ<%XMx8*!.$.*68O0ї>Z LI@56RP,/-~RWqxQ!*sϚ~ľMCkE˕y$f| F2Ơ*xy@K9ɍ-I.U,[f{y@g156}!/5'siSjnF\3[TN$UDsRgeC=_,w@P5@_xy;_ 1\CԠkC}`YE0ӮwlLz@F$C\%h.Eh&^GzM"}_n"btsFlE-YM}nwmk0C=^ rM$bXoiQN]J߃O>LUU?bR$EJj]:UYIW 'ݻ!2|#>Iu ixC";50ےטF1Nٓyee;eV!ch^a$tkxw~O~M\GٱI?4O͵f|~ K=w6iW>BŃBoGQC{K,5fm;u-<|A)Yc<9+MXHI]+SfܹPwG[nK* fl贑gL9T5cYUvGc]1M;͵_Iێ>nne|(fy ;VҋSnnz.<(춾rą|6n؅U'ñ?.2%z1:+V2c.෻iQ%-ª~oz9u]>Sp8rjw)~bր+%H_`G0Ym;hoYbӳ]ïAJKrX}ie1Ңurso^GHx<!:'3 klS!G Ed=&1?-ם?`u7ʗPbȇC! ž Cn:c=?Q.nF`,GX.7/f%D/asq 8]l\BHʹXP8u &_n A`4MHjÄmdPsT M셑e #rmۏ!CnkD )N)D@uH39H6=|ea֝Cש:xc=_^T")j'3T رxkAP4dV{HF!Kڴz!Hv>On} fkbe#])]Mn3?R܋EObšcNcpFdvcGkN2-9ke BlL0@}mgV k>Az{-FXiNݱ7R˃U?e GZ8<{bȧe`qC!93%Wzs#9ˆCpdh=fHCҠ"d\Ņ ՙ ` `ɧ"/y͠5VxaC l4ˆYTGd:j7%3GJW{}|e4l cL T?x2 fe dJq/d=Goˠcۭ/E?^z nkS51 }}jXT 8KEzi:]!jRͤ)p=K$`>HH(F6ˊ.!7יy+n8HlVJ-Ob ?kG.cƣ~cl>]z܌l29`/W x2{KbźwW)'Mvuǰn?U/̾aZ%N"m?zKGDŽaV6>piHYj;usnt꾔yZq`#B+1Phx 0lGxq 3P*wO 02Kz[*tځkSL=Ѷ9wc8gX*|N`mE<`q('ͳlFa+A:ˤoBCQ(G$cdw2Jh0Sg6ɱ8=̡V|W?ܸuՅ#4 aQj8fbkg|E2t x-844b '-IMK O6)( dWeqѣ4Nv)1G$d#aNĜ/ `ń;!?=ft[YgOX+)tY=zq'?oVI5-L媤4 _$I* ⭔CJIL* ¦>%a0cp-2̤ }y-y^Q^y_ 56gut0Mʼn0v3x7Ma2.VCۣ39Iyo-$Q%ɝ>%x5GŌj ~3E/yq( E=|%r`` fŬ%E:Gvqq%Bnv۷u%qqwY@\w,5>j7?DHމg}p qU}otŋ QͭTw}UÄOk!|a6<掰ͭ8a)2.QT1EEΑ|'  K̥32mV[絫R^݄4mBi[!u0}A=NIMZ"p#եߩb?ss E {|F#p޾n_-('aF=jn;\yPهαc'㪟=X22.(*G5qRU;/>LN禍[8F]o\0RO*)"GSfx6zΎz ;zcybCrzh KLI\snxIo]y;{"bw9 ^PuI 2H3vqcDHl@ uُ D;k10 FyQ"S*V0C=Uє]&OX#h5v]Sp=C *%(_pf@\`c|KL*)>S. 0g0NiI;ݵT___JXd%lXQ__5@x!F50:WKQ%P%7W WMFq?<sw=šUVVB: V?%N/$rUAqEOWd1NiO `4Q4y)ʥpJ!4re.u^gktGJV5- 돁kO\^mECPQL4aL,<բÐ{U:n5f/vx{Y+6E]1VDKO)S em*؎j-5u;B\-]w:c9(jv2x gUq&\u] |PԺ0%?gSdY.>ѵk&s*e Wm5;;_Q / ja,*;AHʦ.TP::_,:߱ q7laE)BA~e=ʾuo$F鯉aڂ߅iiiɎlz3r5{OsWHϷzhп!?mُX,lJzj2[E9[takw4:V`hhw.롳fj (Q^]N}n^|s78u0{}C{i*Ye? b"eM.'o-G`i" yK tcuk6KvL( Oj7_c$0"7$ i2W3Lӓ*&jh$j)J!nrq8#%2OJsR7^_^@?N%E>T{4G&!8b?5E/&]_)k7##q5I9g!nBۑȪ:nc/p߆%$f^jxD1MvZ3Sqj'~Q賂ϧ |BZzȅI~j8AAȒ%=l@AzqFM#/KyJP*RrL>)?4Sok& DpH-hAѲMWg˗سY(Mk.Io_#Vۼ?*P]0q"P;yڝ^-)DžEeIð]=̡kM?0,LjqUTA4+x~!܃` n-QRut_b>jV1.sq ~`EN%y?dxCXu/ga&T:W9Ulf w]MI6kR?Iޭ!l֛LVYrijz^׏um@ ܊ܯ~w`Y M5*|SSx邃q#J~$m2taB= CqlA H$>{\~c5ANp15lI]6̛|}Gjai#6J3:jѱSĴI 7cfSy6t4'֌ }w\lyw`~d>b(a5ΘD" AnG]=qO.- (ښs7Ƙv9i.5l%R>¡yS#nR5As2GW?a5"#JYSTJشJq^FR ꖇ-cme=0.[cOВm^fygwg7RI:K 9(XZ^|}BR,eݥѥ*mw+azo>!x^_DuۍZ_Ϡ:/l?:_~Bdv^Ũ R*(GO[TļoQmK& ߾ҳr(dJNt457`֔Foݏ >ň2&s8t?^ɮK(.;M<;_;'M-YqS.D`EHlg1Gَ^<^gŹP,R+!w0|/3I%#HhI/ߦ9)'8"m^]vZ eW m}4fL!~ì((y uNdJ9j,@ұ: UB  AZkrJwծ2znf:;N_n_ѝdtɲ?9bt!4+e︨aAUJFDBvJF= *{c؀dim-j+X#շ9o*2A_QF/ɻ yi n[dyRϨ^?}~)@? 2KnPsMם/A3X6zH]Kz qyJAWi~E[Sr~fXO7t0L9ɪLvY7_cu~daÐjُS8&7u~DMּ}֦D1J y}&?J$p^W䤾'z;׉IօFkqɴ]Øߠ~6fL14g޴pY,FQL9q<ܱ61 (^ 6M۽aŜcZG0fAև&v7&Vy03xw&Cf 8čq˹=qj!yS"{/&aYaqx*}ZjTm7D7_.rdך0r,m?)ܿ!SKͻXO07شqIdQ;m4~S 1jڢw%Ѥ55s\Z=5hJ#O4&!\ߛJU% jG;]=wq=FH %P+xs];p&^cb ,3UA1i3/'A?/4!dp#>LOI9Nj!~bMGhDu.4hC A_"ՃU}}ظlE%&8%}1M㵤d8fOsBgJǤX#= ɠP3)9q(_\Vb9I\*_j[#^^K  ݴOu.IR`\ξYh;@j:vb}?޼"fPZ)@k{ɡ+;~)(yb'uac+ǰ,پ-nH7q\ï' [vp2Qhۨg=ti+41<"uW& ΅`EC7Ægb>/q@ 6|y%88dΔݪ2vN=?;q#>xH)B@&J GGX*n|Ou{h, &ż fu^kL#hBg3p'V& ZffpVAi#T^2mp DGo?9λz׻ɐk `6wN5q~ko~CsP9UM><%}pԾ8G ʼn=.*ޖ8o00Hyal- :pe~qM̅+5Ses]({sgqnb7b<P#ZZZVI5~~J3_/{3hh6٘Zo@?ѱ  x׈Cb$j#:HD81vp;X=y´<\tkV[gx+hiN d3 <_l @dqEmD1wQ<Nz,BZ" `S5vjB#"q0#z1~$j㊽& BiT=du ЛamxފXpHL&< Sz{n)rXkJ5Ye*ȿ8-{\y z٩q9Xgq(e˜tTH)(ty0߶x7}^,~:aV",4/M@f hJi!|ځLR gp% w > ׆\Hk ӓim@f4T<7MhPpq'"h^r$DKԖwΎ[>މl꺺U,io==H:1e̦/"&8fuT:^L^-G=oJ2~p0\8TK,f$Zue);>-RJnPl/rwUewԗGKӛA휵>J<d' óE4k*\oݣjT'+ELro H S/RzQm/&WO`f@堇}x^HuDž\n|e\aIjc[aDjs8A49O$8LX|QWMI"$ :vAT`ek/xR9Yd[;y:3f¼#c=>g"߯vTQ 79x~sIbf0z 0)yaa.b!3 $v-Gs}'j"`r1ige1Bޣ u,֍ >C[ͯ`$-hL#m󻗿 \X0hpW[a$\fˠ3uym{5TaaL.@yw;fwU ߅/m.cl6%)Ĕɞ^(/!l|_M颫c25|XvR ~'O6#!JSt3PC͂ZqP$X](8و.u>L@f.oiߡVY ?]($oqҞ` -STEtpICf_OIstmA&վh/g2P7>j!ztg{j8k 1S6Wi9}HOn5 /hFQY9v]I6ΙV )_sڱ"3UIj^vE%j sIL4ԓ9U;r,3HܸaFI*ֵl>c|f>ru=_YCངo(}jFC1n鋧zض&O] ΤBeu.ݳJ;HRe@74(7.EՐT,\8Ldz,IN 1*46vS>0ҏM?*yQ6["<+!"j0; Eϣ3[hC ד?#cd=_DRQg gp%F]Vm97PcqRG'oNȐ#8苑:5E xG{5Y"S19fڲےLe]`o\ sXJbHKk61=>,ǯ(cZzV\{6e~IL)r4j(-}!{kHƍQk/@S;'ӳ8kZ&/ rR)dX*gwCs^X ]T\5m~ҙe} |]>6("9ósyYI=C[F]ğ=$^!(::g.N3syW_G|R@%`܆#^i{K-RCJ$:g:~P \&=75*|PJX- 0zմCAkr:I% "J3x5E甯/o&9٘VzxNKyF_:xHFt;3/6Uj\0a5E4;=E'MN4֍ x{U3C}2ʓQg^Kw58D:G"9WQ P 8ͫC:1ww~SsOǽ)/ƪ!l"D8PV=!o @Ll/krQ8FMzQD8QsQM  OB5;E*(`a2RۜE@ yZa'+;9BvӢXUs.ݡk%ՁdkIR ri9^vuw 6iS"C.([2Ydb?c 7xxAqh_sLkkÏ2~VF>Q]u шaAU=ъɕHR2f&dԦ`j0*-NE_fZ ;{0GV4B!1*&T*nɳW,v~;ˎ8o ܯl9vlHC%'IIՏCe/HnЭĹymxԗ 7*e#mP^}Z$V7L53I))@Gép$򋌠KJc8QMé7Fl%MdRAcC75gYJ]VzG40EWX1KTNpQwY 0ݒ5GJc畃7A1oGUwjɳF3#{~?;l:|q%I[~GtHQk>[ *KWVc=H_pT:}L`#z#3leQ2m |Ug߻'64ϾQGsK}8 *[ѤkRVɆw/I](KjOʕ K%[}A2Op/kUyY1X{M\Њ1="~\<<_ں}^3|f yyB]+\ʫqпbi1a;g:?YWRZΑ;[ʉo,]t{ ߍt@iKJL `_UI333tjAs/qB:DѢ(d ` hwy’H"H1_B1zNWj:P`!NLFpr^1հ!Gr)iH\$ 1 JhC_wVC\#@?7TPKEC1ߴ'nuvola/64x64/mimetypes/kformula_kfo.pngUT `A6PQux %WwT[ɤ`HbB"RB“P * JI,RD!ł<^}>TE1B@!fΚ?:{ڮBOiR>GEG;t]sddaG"f$3>,:/2,"HG=ݜNeJr'$QZAPP;00Pٜ! ].d|L/+)|h?)9}m4~נm4P8>m;(KJ*HxǦSFRA('c3oߞXXBQ\.ׁ%{2E4&p8]rWw7=9yr0G1rAPhƻx+ h V-兾v,/8"{|7Ƈ#bCg)p<{w5vxp]53^RΉ)y5o> p9w[Nv'h|rK`Jh͡3ΦI(A T5sXt2\Q?{,R% ~ @E;8Ҧ#+gw/RCiYL)S3*gKVj//o#;Ԋ#UAF2,Kd` %s*,!},Ah8ftx4ljj<9>۞-dPG75Iݜ'a(cquhm|tl)er  *Rrq7B6Yt4pk*E~[≚i~q~Ȭ %: |A{ۑpB.3S@XmxC4p% yH:!z:dEGJd#^LG^njojRsp6{t˃a1ks'J mAAAى2g#![dnٯ}Q=&6fo+a"0]씱MpSBhC^V45yLUEuNe;Jv^z[-zѕ+}C!Ƥ1pT' _Ƙ?3:JNRP3Du֝Z:;z`owO8;tDŴkjreEEUq3CqSZ_ElbSyx9`Yj왿 tyo\\UjϼD J(7_ lw̕6CH$ck'.šaʄ,B0U| Aulk>ѷ!S?`6! {ksㆾЫWu< f,i`5{Cx(#Mރɡ8~u?'xS6Z&Yt& s5lt30|"0yqNC %K vhvzM.x2+{K͌76;Т4&?0u vZ< 6o~6/"%-`}NͶ [Ea m6ѪP2 (@SR+_CXf%Yffu  ˛B}k9y*V~^>n$+a(#Z]P~G&&&RSgry_6gHQ6ZZvxO9:u*DJ^}u&ɟ`sąm-/^lZ>i Ñ!*\R* Yi;9~XX !/Ņ?2Xr|@u^@~AdaܽbSW b$bUnntqȒY,[LYy:#w5hUFQ%l$&Q  ,wfMRߥέ|5yJq(1P{G Oz]ꆃխJg*GJT9Vĩ-: X㇣%?0Z ݸ"+`܇8IIԫ_|YMp.Хo,޵;;FAV6l'tG:2h2RRqLGt Sc')G1SSfC otJl#<*Wa8&ѺICȣ<5CrU.3ƑiKV8*zt?Dns.J%=md]C(Y3O]0_ kƭ[,֜sQG@בD ?]- ݎZt8p'N>įgsNYiC C_Hz+?Ӫq'q &FkC\{ظV0Ζ"u9-.(JkLΪW-? ^#7D4-ŰFITKu΋o~5E u źH3Z`T44z8&.sa $_BZj@ZWG7=/^[RU<9&j@,?U(/_$aA 5v18kt U@(OV+qO;fJ砬j%^d% fzK~f+FQ>5>ߌW`\ɐhvoqw0d~Sj@S\ |[z8hsu{ЂF] ~!:6;T~ơv0;?~m+ņ;8X:̎U'@Oku<ʩ"zok^w8NXZZ]97tTY`/k5cN+PgZlspE\#YqH=$M4A3&X-["ظF<,TضlQ@@vg@%x'!ErRLD XA@bIBQ R$pb0$!4"(X gH/2 |{?y^{w\`؇7\m_2+~L/QLjڅEM:r& {&s*`FćEZzDEGr"x͑.zgC?i`.BBAi@5$""mGGG?/ego=W\ ãOHS3cu@* 677; !MhNg 1FdzR3~o@#he{#K፿jc #нEHv㟞2A__[TO\=BQXXa[!;X!Ponp[޷ǰ2RSI3Ԙ=,OAf"*LPR}ax^XxI/Os'wڅіk wdvșy\NAb-7[tyw扗~”Z!xŒ} `2V/AeK1`@0ex{H'ˆ!Y6޳.&&&Gx4rfQi]8\]{폥‚čNۙ0Ѝv w12] =AZ(\JOcd1O\ZʡlNL䟒ĮcJlOY9qC>a2I ~oܘ ooM(EtG&tnvĂziR5?E$GJ9w-$ul}貆y>%CPFhKʘkH6{8B=1iK!hsWEpfvqQ2] {PLXpN)D" Gpʂ;FG>.&)%gS jep1h?e ^%a*k6Vay؁D?p6Y3@[ERFvm&WNў@EOεǢZ@)AeNqJJ曇Z씭.M7Q(T ˥_qZ 䗽GC!nU@q -^=OOnGnOYj% ևfT& #:G>uiB>3d ()P BA.0})9Rh st/aȫEC|rA QXY P:|'56z8]~gM[#v3U48Oйaa!Qh4  Q4L`CPeYH&ѣevєoa~oF~Uް2z笰Mu熺- Ζk3N{^HI%{\A}BjG t>hnߛz`/kW4Qܜ]$'t1;Rj-p /Vug_ ~͠aSr#;Y* f{pAqbxi ط\B)inT訩HA(3 Dt-;(&:EyӊbES)Fq>ӢAc#T' R\^Z' wpS`a7V &d:;p};IA9\0F3U ⌃PD4׳T1`W]z㧴JtuABNUS&䋚o,(RE،_؉3bg |B,omeݹWhA+b!p p<1+l y)@2+<q=^e.d4܃OE=SpElHii-ұ@!d'Ëqq4h{nxcjEp.XQY;3EK( hK-lU/D!^2~=6Ŋͭ%pt/v(Zv8+0årW3F׬J_鸬+*J<_})mGE)oLnfK RspZlNT4yU5.k-@3*\2X ^NY>ƳzUlhm,~2Ձ[b]x؋w >4ZgC^Zg>##HiPjWj g}e 0Vkɣ 1PoP8ZzFdE= v5bXZa7W՞{[JӜO(fk= -1XōZl%;݄L[VI]3VWj)kXX? 38 &&ﳵ[7쓈E\42. W6Kjo+B=пn[u (./.+wf!My݂  Tײv,"V(-D';bM{ɇNs8r7) - wn֍]^q:l ypEz&mhKe$*hJЩU(3կRļ$ʉ q *dc gOo̶)*16Z/a7 ? >)Z-a4[E .É dc2o6L9Gs~"2,y?@^=yzl:DGיaʗ$Y3 t4x[XPu{HtnsrCOKzoX1K>Yeg]32e_CmթE$3'ˎe5q8d,1ۦ .(?5j]Gst$%5b"o91`_Pu8@]\B_ [c74íIVM b-p5M\w,(oZum]v.AHlzEualϧGq۞́Vqw.{Gpz?/D=;E=(.eZd -ZD7<ssGw(C[AP|K|RyLsޅy|';m%? `CM7ov$N;;;^?-CWϜόE^?:5WVT633ZښJr|Ӟg3˪M}BA|Nb68! KjKܦvZA6d\j5r} q"~uJ&RBMjB(8pC*Ac-AvBYѕ+ )CrzH6#7vPK7C1(-l"nuvola/64x64/mimetypes/kig_doc.pngUT `A6PQux -W 8T?gf̸a1KK(d\blH$-ET%jV7.-3Krn*aBZd.?~<{}s| _vCpL[hڮ>b7cw㟴kҟ?y(z_@gQ6$GYq^`ٰ5m }dAhln646bPϻH8pjn@h2oQawJϚ/1gthАI{{F^/b7=8_R3TSo_?k \}#@!Oh!Gm1`x \K0 K@^9LO322XcN,-..0dar*X 4-8UAAak91 >ttanGEQ#:xN-@CKmS\0>@AfaGLEĝqI"p2`R$~ȥ&Juq՛6Gɬv QbTbT>:\]xr; T %p|2ᎭUP)ʳC䬋=) 0VQf:WGswP:aE&Փ L,юrrC=Sb@M}eur鋩F AG"ZGaj*&Pxr ݇XХD-zѳO_m64~'Q5mhbHy!}7B6Ú)? R@#QN.jeD[=WPH<+ "E<ͷ ܜΡ1H  $?8&A5_Ib`|yǿls=Sqь}o[ЇHX˶: ]V8('V!(ӖA0ctlQo@qW>RV5! _zj#3K57OY;SjƚƊ.h|M:8<տ|4m1W~wE4l*2ĉ*˩'L=A~@\Aޡ JCH?'My&G,!l~]Nb=Bn`b n]M&P:8|aLc<||z>MiAWb{/uG-ZuV p԰_;Bll63g &d!δCl%iގg-HǺҥÔOPrTo6MȽo*w:z}J"mhȥB@mCLQkk[P0rVy~OMjCVUO:BI 5'x5AR OsႷjzd„ߍ`;]L?&ff=)y^#Q_IV@0 91pmd7^O xD]4i\Mfʳ2TF?%/IZYVٌz*OUY}^8l1-Eפ.#4CMƩ1sÀj{a"3&@DIA< inw3 JXɲYRG+\Gb,#&%z7`R!&SqLk I`C~"—0JeyϬRIDS1>q42'aKlUs| q~+?HW.Z+ ]utCF#\B 6yzSxc {3Z Yz13JSYJMmbp p4J`[ MRXr1QVɾE0YՊl>|hƠg@lnb߽@2,m2wտaJU71)s6R/q/MrW4b'YҲ}Y^=Mu{FeBPObP+zUT7z}n(,N XO\0tSڭ4f+J[{KTs&gŜ2Q?n~Rd_P kRnY&) ( xWw "N䡐}>/5fm730Ngx!Az>q-DaVMvBrWGޯzY{9tWZT'F|'yMoSL.hܛ6'' Lѻ+!Uin"s| aлA9ia>DaD8|^quX4X= Od}4E'#tܒN (9\Qହl!ȁzVNoQ˒9摆wIrMp>Dϩhu SҮcj4wW2bDӍf[a;X OE8%b|DlgDO54YB4pAx1ˣ~sWmpc%~D~Gѓ^wEM3s$\qD'B}b dTiqk+x{:7n1mio{Rrܶ#UI\bf5v@sd/^3kuCëvCf`hhh- ']Ar(sF&yVALcdᲙܰ:oW6ݟo1E*= /tI`8.aOTri4-"wx@ƳvAݬR[CQ /ߛ?XP8yYL#=I2pK+C4*ԣ8-ܵp6-ogaJ}2f]+vWWV]:5`n:677?xkǣSlɭȵoa*lŪg_|66T_7?h~?DaC#q4=ʪ+zŒ|&sdhUtK@. -?g̨AnJH(QP kj?F4p|qfkT!ȷ%11l] S 2̅s_F-7h70͉OiL=D9߼;o nh 96r޼+5_-pL`"ND?h W2PK$nuvola/64x64/mimetypes/kivio_flw.pngUT `A5PQux Wy\AQ4AjVԒ-uѮ#K+DV-755C%]v)方?5c>y>fÛ[3K'^9N3hEw '39q;3qO<+19X$@8;24"h{ ,3AHyT]Xlj>aYs6oH:_xtd2f #ccF;^nnC^\9w֧+ߔ3I=KP/j%BW|\o=h>iԨ|3Gр"X˿~׷liKBH6żw`0|Kpg!8ܔFdS ${m;K=?SRr8 0԰p!35FMDw5358;(j[O '6N<-%`r|EZ~ }À$һH+SG$5U9R#J^9W[YC "d{(+ u+rLԵkPkRzo ?Pr.t[V.HO`/Fk~ET'co(Mz$镡:VzX<CPD* .O(WX,(oصpUhMmZ\knS,m$V+)A}7OvH2/̡4f|yUG 'Q:m~a#9-@6¶WFA D ݈v1sU6kGI]>i-#N`ѼlߔAAu\%*C(UؠPp,VOR\_%i+ J8J|w%L%lDP,ڶ|'J Ik]"Ae){64ifvr&h`lNuaEY߆\.nZ{ #e, e]fhev}oKH?ob z1_ |+쳞S[bWhtAnc9x?, _7hTPw䮛=f|^o TE_+:{#=!L,@HUz>WW64;k0xXmv [m2l$z>讚%C]/X {9PHbZYQsveuնHE 4XYpHgE<}ON9E͟(!;*?iEڡӽh5%@W)7]/]ZDcwTۥceν>\}lFְ+lxt\.izn{00>dž2+ڤڳܙҗ}5vF;$F xk/8ޠ@/7h2z *?Iե'-k :_ |Us 4 }_SkOEks؋V䲷ic ehEľUATe:j݅WbmMH eOBOcTz;[-wz #O<03 &=0%7fz&q!n-ͪ&4{a|ȞjF(.{?p].ĥ'Z<ΘqvAOKfF4tʩw݁WDj´|-NՙC=y~mdb |G?*0pHk??7>lTbYoQykN}$`iɆ T:dg ;Re%%,54L}28d/i|q?аNI/0(^mtDǓG>l#Qy!*9 3<{ IS h|\l M9+o<-.s qQ8ޱx]Z%-rp?؉3@ c 6oA-Vפ%>vGGRSHM(T1:NI-w,DGJ p>s 嗶7S(#R;r.ʹZNz*]6[{6^7.z+h3T~l9:L*SHrv0lqbr5闊mwkTMkU eH,LS2 G1o^@-VATAj U K8~&غ[F\J܀:#)b*aQ9jw>Wcr+ hlskkz֎ X+Yz&]]9c=g BƢ>LY%G̷ |\t:~ZCja6쪝3lJ^<ȯ YEvwG<ِ.eN`}Qmx 3^48Az"F)iOg{Q#M H{ OO"U5 d )PoAW.ef(4g)Q -Īr`Auy;Ó=Nݴ˦fmDGbYW|,+r¥2`'kOjOEgJ%yX́^+#?+ ]&ѤUkZA'`TՌS|;Ooj7<@. {<&x T,:]Qw0#ȇ|Uz ?yҖ l'fU?; "O4s9v?%A{Kf\FYŠ&yh2P0q:z'0Kt$쪰 KOo=]Aڋ_L`3|z*yl~s0K$IF3Ҕ;g\ʤ҄u鯆*<͞&XEWT]ONoRϬ<;[ ,WNJW#&b){v;h[?&)qfS٘/»)Z0s%;FRWW?:QQ_ ZzjClz( X;57˕JHF)2fLPM^Yq y,u3YP>qIkx WNd8.Z hOdB=43ieA{M6;\?3=79,͒fu^fEK>[&]":RXݜ>nLr\nŗ|p>'U7L".ސBN߹ytN~6Wg 7Qc1Fs \Q(+NmA[kDx5F0)"$Uk vGf,rpM 6m1|gl?[3dn/>vt/~)d4^jGo@qqubwLqոeiF[q=OMQ)|oj}g&= o?D~ ^VVι\TXwr%N$1)I3)Dupp Ծ4PkbF%k޻_~ՀWWg+y9y94??s+چ R$ʢeMFND~NIPkCԵE㷎Cj e~I°w(ǁL eMj U"Z"[qv,<3nr ]\iJjSE8*΋'Gc]ݐPKC14$nuvola/64x64/mimetypes/kmultiple.pngUT ~`A5PQux -U PSW>7/ / !B(>`QM ,. b1JVVApbPbU ! APEb.žt{s9w;,NJv"Q"8֗Hߋ;]sGyD<>'S\ gKQvHD=& BaT8?aHRhG$ Fo;uvn XT$φ relRt }~ߍ-)~@ƍ` almmo#<8YJyPξŅ?ץn#DrٷuwT<}Q^ge,look9… $6 قRFðo/-pri~0E$肽*4 2+FyԔ]czǸ*"Q4鯜w*<@9ѼFQW;+xyn !݆*e Yxwwstʐ| 0T@x;N&ZoG7.K$= k6`LO8KO TDXx +%L$Yz#wCoǑ ?rC0j{_vq! &kvJrM|_Zbi#OGW틮5-w ?rۻk|W:h|MN7/>B*G ~@k×/s;f땢tժ^?NuApnd2034}y+Vj;:(ctZGW-%[UIQNJGPy3̺'ųƤ:,ܥaEe8\ߎ۸][6) bǑW/Va팔촜SO]"G_,)|or]4'rV:NUQΙ-܆,$-?k0#Ƥnqg"y@?a103*)9I?^ %)y~=b:2K*a|/Pe%a>bǝzl vWL$sʉǍ[)m/So D<L:S{:s}_Ǟfܼuߓ7[ӫ!Ѻ0mcl<)4 E?-Uz3+v)z80*f|ctM,kv]u)~6 Y٠LV!ZrR}+8Q3-b헌ϿatyY{d߸a~luؐ @T0 PKC1h7a"nuvola/64x64/mimetypes/koffice.pngUT x`A4PQux X 8S?م9\ڔuFR 4EHT1FI$gJ}Ť %sP)}u{Ews>ys>_zym 7m\S93б/ F;k'vND,nX`uQNp 7XSmZ:_L`H6Tm-J\.wbEٱ<$ǚn"2+;_@0L^2Q~&WWW@=r\k&d~>n*S0'_q h`Ǜ+B#_މ V1i?1D"j˖-K9)$sT0Pl=e7G=oTA;dzW|Ky)6IĖ@>+]o8&+1Yhbv$qXǚ)j+cAi l4gFi2iN㕅ꉱUbgxN2>:|P0 n+DP0:'S@ kKr0Z6 h2=lzTҢU:)5 uld1ʌ =KB%C Ⱦ?z7{krHVX7=T04?;^XNh| ww[r8oﮁPg/a65lSlmmKB-i9@ `eveC&dF/EsQ>zS w?MBSGEF k?ϬL`yyW༼Tog44;['1b- }Kp$SofjR N[:!vjρN^ T)ĕu_Ym~֭81>ψҭxNԊn3i{5zD'V.pOOҩc(p%B&,Y)AXV9~Aa_J`".:hd|(3 +Wtiͣ+pNO=5E>6o~Į8e+ʯ``6#u2ԉp# kI*O~FFg##'\B )"<뼁GE4p=@5C}.E: dXb/, CWn>;eKotbO\ZZBEMGw4M 9 BLNYJo:g'+ǧORz7㜝w srEIR Y[{Y<X|*Z(+ˁl:_G[Z]xAJܾ}B*_X7 733r+)8LVk,ƈ'k؞iOIwNlS&j [!8% ~mĒO_1";ڪНȮq_rkTWz7C]̨C]gj)2cߔ] u? _nȃ;;O׈Ƨ Ǭ< \zjoy0\~ &t q  %%HS`? SxTy.M|N3\/yfGjt4u!׼mm_>&hFROd4V k¶z?W .^oFB]pA~;3S X\zhhRsAZq4d7c`'xD]8WD35Jy[w{Nթ>xLꋱ9Vu.)-(wo\tΕaj3GAkQ!k;vIC/hQ_RG*WkDMoL}z4) VظΛSIFȣ9؀z4hX~ :U3=nע!524u:J=&pXQ ۳Oq9X»|ி&Ff gYhhCjK+2nV*"C(6ǏF+U(sV?$L!4i"R5DCiA+|+HWBR;G/}#%Uڧ*|ɝLb8v \K @Lcؖ4)Z%uATc,)3c:67_5tߌG俾[ RSCA(r2Q,g)ԑeÇw%[1nEe5KXM# $l)|3T%dDV y䔿Pp>"NX+Jsg+Vg$۰/ +yanL0G/OבבvZ /$p#&i$ZU.Z߀Aɟ-~\m\+&Si;2VyO r+N.0sWa;0__ PWD$E-h_!hH־F9QsOȯ6RP Oo 7oߢ#'ç%Fʭ*\@um%qh(nU&Hr60lF$G u#|§fiKCQvpWٱ —X%]vm]QxE75&S0BoBPNV`EZdPLgӔ&AbÖyCCN-O4~3hQX$ևoֿc~]+wk 瀀 PSBl5.;EI7 +QݪJIglt(YღVII*6F T (OvJ݄IIT6jE(;n^#Gl3P[ k}vV2-zp3!08,үj*az h1sH\0i*u*FE -e$Np}UoBCB/NrG13--y*괃 ')Zv]µj{oA7n4CRE׊{h?qV!k j[KI[,'6R-LPjHob ͠'u\17j}цb :߽#[+'X?aE|Kt߳Z_⋼U{pA|]j[+sA+,OL!T+e1nF.|],)r匫1Q6>l=жW Q |I7՜@imn&&`015i#IY gdƒr8 E#뤦R^lRP)6`u ܯod1^ד#bXjMЁ4ui::um޻/I_ /LmAtmö)[Ejց&zA ܦ5=eXD%+VNY J@\[?tLW\WZ/DTi5&iH-ZSrRxQ{ .s0qI9 ,HrH@h!*Y,^lpD9NWwxEУf?0v>4_ux&ByUl{ "M|k7^Y)"h5*&`UIx71<3?=o í6]btF{G_rcK8V Ȫ'`a8s,S񬩙FOox/ega=7JRiDdfݻL'Ŭ紴q^ va7]4 |yC,g&-8X BV yyN`s+`c> U>oZKٿ{MQAJ̸ LsE91y1- 7D s~Pߵ8 [2g0(rs`Zu~Kז̧7%Y 4P٢{(J6ŘY7W\,wa0@&P"ĺGvcm\qPKC1O"*nuvola/64x64/mimetypes/kpovmodeler_doc.pngUT p`A6PQux %W 8?CLlVmRUGoSӳ)/%ی [^NR9LSR sĊ:uI1~>mܰʌ@luhHg4[cfg@\'|tC#|uǧ>Q[@su{s+``*CAcbbOOO6 ;Y e_;?o.rW0-)b!(>~G<ljjzqc܉Ќo5;15eQ? iYKD,:W`r>4!3://x߻VͿC]ybج ;+wQO<&Iy[:>|km$ ;~(Hg2"}__JXE x%T$8S)b ]ubSl pFhӀ’ }6=b58?u.&$kYXE:քr:E#WR_ ·9'NkH`` (V.E%Dnb PN t~1Η|DUYd,X\( drIFZB=pR &ҎL-elk{!{\9>Z~lbpCx,P"5*jWO1kn~޿;N6"Z\> $3pd-qpH@"J_14΄K Jͯ.rI$Jvɔ*O,c9՜2ʆO5gvdq;k졟,c*18Q]&7'PE)MO?ʪLQ:) :dTgD6'CNP"++Ǟō1q,.Ǯ6qs36@ba}H2!"*zCW]g9{-.hp̲moݷQ*}~ 4H]ȓDSf6 ޭ]ޖ_u|C[$"/yK ݻdZ?[ 78Smus{,H3ss)H@N.J5YS`?̤&F/JjmJHTTXWSXxQHtq|V9r-A톻pPIsS1 ?$&Dl{||>|;WmK-'CDuIWm"֠ヾC s]]]Zp.dhӺ8OeP֗Ĝfّ]|̈́ A}=g\LҤef3Kd?]?[a\. +iJ-qm^~Sk~ Sgԝma`")>CJYɺS7Hy/98H76?R +GU9؍y} 0‡R3_oc:Ru`PN1ĵj}F6GYiF֒=@4-rg[Xa|dS~98O=:lsٙ~ Yܔ! (#լ+AJpw91 J5J&.H )'JOX/6컌d$8MQ"X;!F)TG5K;-,$#{e/]^ƞz*_1ҵi-Z'X ARu~`rQԚ\?Arwܨ8jOX?Z(PF@G)`EXпP,Vq]@3=FEL>Ń[q-,Y %؂bYzݠS7St0\N @u[YL*( TG3t ƪ~QN)BPfs@އZiLQ%b*^Yrj B_Aw,[6]h+9U6bzFD{=XAƮD*c=ؕA9 2-7ݜ%>g7Hݩ3uMZ'@-m\cP `I`.= noƄ?qW"|.x,@<+}'ɿ =?<|[Ծ.fh(u!F hBǩ|q{^sBW5@.$f r<~hk $eW-3plIj~'o[Ypw-Ғslj7f39ݼkpZMX*wC, JtgۿƈAp0$}k]ԛ#eg |Ԏ,9nd] D"|hz*919p#νT2'I6ɀoIO"}8$5.R|;挓U)fM@C E Â{XLOKڅU" ]EYzAct- Z$m"]~~YMJ̱e=瞧 5T%#|aQ)R] p1/ӄBt$>5@Ҿ"b]^mh穧6m-indwb]!{T3o[MH`| 1=ש6D q[(fu؀V]x3iwVM*aLϥupt}!*/Lv PeŐHotb#E8h'!qf`6g5s@ceejIet<(zA]%Y`ԩe)=f=~}/{*&KRl+"kHo@[6N7kJu@dq14RKr@D;R+\kZTT`BSf ]%uZp(ˠ{vAysK%WS^Xu) C< !;'T웭M%GRwP߮Qu8ga [[ X' ddpBdXNLX`_:B Pk.YړË2((<[ckqx~7'A^ϓgS'x(qW/?%f -[H)T(v{PusZ*\bwSͷ6=]/ ?W&.O;wHqtebIƱw"r=QDFGpc}4,9>1aj$W2m_-,W@ h}K ?s; ֆn^wp_^ ~׺Lfy<|0綛ȱ`7GKuz]- f4~=Jv&@1 ЎHƱT)[끗.;ʧ)JTDl|V QVNcHqQy ʚ7(O@u?XbQA͘;q7,gqGyփPF50a!TTP^{*25繝Ȩ&OyP-4X1M'[b4kg y7>T_-0=( ÞڮzO$?W _3AmOgݿZ1w Ў}Q+8/oUǑ+EPV7 3 ߴzh@@`_+f|4^K=Țי+F k<ȡ+fozbeID7bw!v 3ݷCBWQjtt,#0(AM'$Z>` {mOb-MZT@ E-޴E@kuU>;*iD2$0}|U^!V0PK C1Vq)nuvola/64x64/mimetypes/kpresenter_kpr.pngUT j`A4PQux W 8~a^٢|o&R|F9җT;HNGmhQJJ'JthөNÿR_置}}5&F &A#M7D})%!xO1>:xOH}6gh# T[yfqqq5-|vkq>1Qgwy?ْ=gĘHlZ(1m !N'Rp/z09a,zL;wG0&{ kjM>ʹvmXqr ᝝HZ{9ׂƒ^:FDԺu|cͬ3?^>I8{,jϳKhL(\AˏŒ+[%Ěk2/Gv_H@fCrheVAG~1&bb/E]N^ = QAr 2}:Zddct 3CtR9(&֬CQ]@aE8=Ҿ,៻nC|RkjAJFe駧.UðUGqӘ*Wkpnz}j{&Ó$ YG[XO[F*[.' opM8N3@<‚yeUNcnKK]H\,U2Y~CAI2y Rt-*7+D%&?@ZGzA_C51+f'yTc`)HZFߺGQjOM|q-Iޚټ9'z B(K9,\xrR+=$;5w+wVZ-R l.Cf۳)v~a ΍ N],1UM7!7nz<1F,(֟y @18b9pؓԄ2[\n >G>r *@M;ebJϴJ~]za,cd;y1 ٛfPևlf#E;7wLT.Z_P7AXYZ)tKR߫D;~QP3 :c6.4nqb=13FٹwUiG5@3r'Fr ClϾ|JJ5 ʖ䰙'Sc˅[&-d[MϣxDžV {*-ES'rH%GϸH2݌\51 v%KҮo~Ie1Rl&_sW ?~}@Y3\pWHBm$E,Dߪ+8rL_oɽT)^*-e?t:{7do\[sn4BW"Y #%lk'DI;Ӄi'TB N͍Y)bGF`XW#sl-i?lsE?).qH KWQGlAB*ɧK1=K=_H@Ҙ.q[|܎JUa0ĸ$&TG;h|+oO@.悵ȁ٢{7E1t#WfF|1Ki6AY1oRRGPyWz|=Pud,EoJHaLk!ύ8*(^sS5έ01Iţ =z3><TۻdޥU8',O~! ZL>ذ, 0#zp'H6> qm1ڄՍ=7ym>3r,s yB]vR) Rb!XB BAEGgƞEcG}Iksу=}0IE6a1Ħb ^,%XهM^;]!vi@ՃnGa(GwKG ;b˜GSj #.pSbeEroHA˾v8;@cOdQZ<5,m7W+g0J_=AQ6AQɟt*eOwvhGZȥ,߅Q )n,UaEGjkD;r3"NyhE p%-2xIcm &|еkBr)Hq7N31+9/d5N,j[?Xu ZO€7fHn =4j)4yv+!JDMGofZ"Sy?I*k*r9H&ifupI+S,>r0.E?Xk@ޞ:QmwOJA}vqѢjV8 7kfO 5l$ %_M(- z7I*b:7I&8ao%&З#=¯Ƹ7# Isad9&oOwni[gɂYJc >:d'U^v~nB՟%(c ZI;YPHNX/VKᘾ☄+fh4·NQS0{{c0qWyG3f&<'OoTg__Ԓ *P 7/ہGr8X#*FCwx\daf _Z=XyDx=B]jf-[Pv~ch;+))Gr7_,sIOcf)Z]6gt肆/ D맶Y444)T }u˖B{;pu(ƞ^*LxB3=]XVa<7ʰMܢ.}w vi3oWxK_GSΐ~xJɭChRoJJʃJAMmmEk0SpTEf&6(c/\{f0֢ҽB6q+J c-IE0-F`y|y}_MGH;53 Gk&l8g;*;q_5ߔ}N:v"&X( 9J|(0YSvj%,=3p-hKPLmڲEVhK|qԳ?ۄJGHPh@FOEj5X+]H]Mr 6?jƶQso 䊡& Cu/yu6Ny^:q!ڐ(jd]+i5MG]E=/&e#9Sm=+ǜ$rXJUgHn* \&nGOX. !VOf8tOMꞃ:YIA$Ӵv酳ҏй )jKU5$? jx3W $XMǪ58sIW08 ^=sQ 9$I$ |j(1Ol+Qab|uvrn< =ƹl z\&# l")ҹi|٣pxcrj׼-(3dVjL5.ڛ?bCc0N Ce6&LV`fׇ\Pbf/IVKSla'SWݳYvek,O3kس7++u8jߥeN{P&6m|"nA/qHP2ZDD a '׷T& T\$y>0vN˻ٺPet"I=3dEdW+k(fHovWgx"#hZ" F }D`'jm-.-5%k(*L^ހN@o$J5B--7Mbܑ`ة,GZBy]bww?'GO6QmnLLDӤoJ4e`XprǼa,feCGXIJ PKsnɛIu&HXhWTQ% IsǂNdH<ų$-O"ytsO}Y1$t0VV7$ʘ\⩟*>z|cn:UhlNjZuÖHAhFZ@zwG\%:olٿ?.`m&<|@r Y!cQ,.ZS|~×ޫA-CHΔ-[pv6FG7]i?Pd";zF!kRƒga-Q_DpRR:XPw.D!!X:OoQdsTAy?vК(³tPuBl-0}8&&p 1h+n<9qmo4=;9w-z8Z(4_OOg'n3G1t/*-wTnGu X(̆BsΣ2v.ШFנtjۇsX* |Xu ЅzY]4h3]|F/~ =d0 Pl њLDiz Uf\ ߬=4B ̠"My.7eGjK!#\QObK,#dGy t;'(oJ}ƙ`ڀ}KX UA2[tCEWSiJ -'~˅Kܦ,~)W=57 qjoAZYz=$[r0bykq{ 6xiӧb޸WFະxWyjw\ooP@ }(QzSS?Dq zXz T`fe$;aku)T,]\Sۤˆ# BK,Z/a4.{YYQ \lÍ=+@'E_L35'?nκ*su”-Ryz8(F8 ֑@f<_+m)]>(tEU%N:w<˿e "(2$Wk{N`0-)!ݣmb&ʳQ{Nx> cq {^yBNi KPce`휌%,^B( &L_)MhyxD\ב^bv&D_UB&],550m8 ~yZ_ l/]BӥX/9j(͈15v Z()M/SO+#?tqS*uR/}vv6ֱ\'X?J%:r'\-m FhXɕȷ3| @xa=*/ި;/}EՋ{|]Zٔ Pq%vQJ6)tbCTuP^H˭b]6Wds@:dY(?ې*rNY]t%sorvzp$5BLmB>)3ia`D(tHtcXaƫGڡӥ ñ18_N2(Ԅ[Fw>c8 9^PDlK aАcU0](哾rkobb㝃Ts%"bw?uyfѨ^QgICWΫҠ9vuW37LIh Y=9Lj< HzbI|>> ;ϴ$/}L`޽;c$WYvAb)X ֛:v=taALɬq gȌOxm ̃%#q"VcA3PC|:$ ߀INrs:;6v6$4_jD/Bϓ4Z`V g(9CBDžãT [!۫h<" E>9!> d% bD%LtGx,|DhWpʃ+-߅brƭn9Ґ6Կ? . %?(5pٿ!ĵ۪bƼK}&:]N{f`V )ۈu,%ՄVIҼ,>oh߽#]ӵwDe_nJw-fN|Z %LEY֭L, hi}ih|m_~70pejJW, cmm-}>vh'RzCXGו/F6|u@kB#zz2v|FZmӴVʺ=Z߻wdyLbkoR }B}$^2e9~{9;˔ܵ[W,7=/'978lJSd㈷7q@~̻^^^333e> і}Iz^kUIfQֶl@ pP-<X&pgvA,1ކl|1J%]` Sa9;Q/tXG|;IE-Š/"VpM:nA|&[ h=\+6 PKC1J.Bi 'nuvola/64x64/mimetypes/krec_filerec.pngUT X`A7PQux Vy<?3;;fA(IkR$Yƒ}hc,WrIgL\)PSI$- #EMQST4{8y<|Xޘ:39|M1?bpBiP<9n[cogZZRhkk[I #3qYA235:3yۆd #iP;. w73P,,YYYEA?3&Fa D1O|&B7  ϵCR[hDTMww"_ kI*>)~Y5 XKY/f5PAQjpeSv܎h 49 "p 9`S7Nl-:s=TM# .oQsݽ1La//QkRvy4?dp=/znXpݕ10wk2B\$PL\*r({4U\|J@mQ3 1N U©ZPNbjr2&QL~[O dOGfB*Y1XPUd! I mU1IQGģ) f\ .ZsROIAtՇ@2ui4)uF9t I?VSdy7/>ʛ;Co6TH3R&DFJ 5Z8Z 6Mn$zԺ&"5YGo&,="A].K|YMVovOvu0N7/k^F+J9r(tYuɍBB__}0][|rqUi͖U'6J0"' à]cPn}4qXgp|f'F!hyF12yǏ74"ٛjmJ>D ٗ麧}XIݻo55S0#򊯝xV$)noJF?['*wˍ>mCOj{x-i33u"+ 9gtc(k1'o.7=jՇ|o"PW1&kZh\ @e2jq_SN@JwtY^+xO;n-?Gb2R\< #EXO:ٛ!>U7=>޸{rq%{Z}d|}>^ZfWe^0h@/Mlf&s.ӬpX-V*W`](=}˷@Ugyu`:ۡ0_-->2fY%i(bjǷ՜,mm|BRv:}7haV"GYljïC~.h mlcj,>4∩Sl]ǼM (~7f!3:bB0ji=cxա5;RzXv(;# h}̸֗Ÿ1tPVI!9=;a'2}c;`k@U訡iǷ+(6ߙwDSہ:!g^zqK!eP*"fxy!jnng毸ҏ~&KCbg3n`;W<]Q|1w2Ekށ[2anֆȆR=clI-Y уA+8?\ʣwK> ACB\e"OH3#J< kE#5Yo {@e~ꔔ a^{׮pؗҦϟ. <L t]/A/?W]"4(kvlMkI* ҬvC Mk@zA%v #JHإ\Ypn~Q aGo6+,$[W-Nl;? p 7/eG6 S1 8N6%Ԣdn T0&d9h7 d8]r<$C8SwU6 ct%QzٰvbA&?uL{`kk!"l8\_[ #Cubrf"a׮1TvròB, ?j#{*]u%ATAYׂ&KhEiA6NE܆16A?zp2}M9u-狗0f2 fǢd&&FY';{c6XfA+x ,wzY udj|kf JgP4Cl x"OLp'&R$|rDE)h/iZƪ9$T9Wyj%ҵP+wYZZ&Dc'P*#!cyḃ 8IcxoY$UY% `2#=̟?r#zhr'WnяN+PcA<ۛ 9}Rc,»)))*ݭikhAmI^Hu;:@ja%E#x=Eo852\*"z \MC4\zՙ?PKC1l$nuvola/64x64/mimetypes/krita_kra.pngUT H`A6PQux %w \L3-OͤԌ m4Z4J,WnD*(GZ.*EC|35}-R(m99y>kl8 5~+7fwM(^TwnM9*X>QD686!fķ\V)!L]Æ!f28U{W5>\dA\8ga|A~7i;SԆcV_U.W3ojjZRS#㕪(`BKRM~~4M%% g6_>sEQ7%)Iߺ*D"vyrC/\# AKl2q#k]Pmfrwa)pavzU|Oui*G1So¤/z bݡƇAK-XaɄ;19WZKfoxX}"x3KᐂӧZRߴb)靔 J~?O̐'F6y PGԖ& n !nvB"͐$cF$w 8r`k*:힕r@8Sȏ%Zpq<9rB>)0i^&x<:́N|t>:“<߷] |NRΞ#_E {dچ\Q\=$D/βbЪif2h$Տ2dN1t Hf蛇^էk Osެ7l2E߰TMNWۀ?R"~v(}|?|IqlO g{ӝ <;^ZMtz̛F623볤wk2i̲Wgtm + 7$ʝkO$Y}ќFoNX_qօqҶWb eXn3P+dLt3JWY^M)X,mJX C`H 3ex=MSWv%.ؗ>n1聯TKњCdUs[FgݢmL9 ^af[l×Z"ZToo~H>q D\*iTbvӿ}W[$J=H"zhc.:4:#RqЉ0snnso9כ,LkL-ϦFYnbX)i۳pH7}n1k_ø|wd,W!/ԔTrJtY]m["oV{ jNH߬iP0yS6hǍJOchEHN-azre༝MrfI[{ tbF7 X.ihi)v'%3C{<ŘQwn #2^sNЂĽ8=-)|9~< Q:N1oG&&*VHՃ)8zӀF[ymeY0kD&׵FV{Chn~mgu} ,m9 \ŦA7ЂLL8\(7(gpj" E61q52"kzFQ#?1e^$Ӫz=ڕ#9_lPz38ҿgZBSԏ,fcp>[))>*EKVnwTU |p^vtNbsR:OѪL8χ* Iz_Sҳj#n0:(a'Pn-A"-?^7R`E*Uj\ {1Ϩl48JAG ($3.!~.3OPbaViaA١ۈa;ff>h°HEϞF,n)?Iӿ874|* vN;b4t"Fy&+Tg[ٿ8rǖkILϥ8OLH=/=~h~l&]?yYꂘ}Ա*"|++4 &1\x;# 7/fDft\B]Ym95唜qf^+8! y ،m&_)>/Vy1čjS|R1X{ ~fAgHmk C5 n,/"NuE[`/RHZ)&~W7CmR̛0XѮ4=፴9nr!ma_2p"4 T'5 `*RmLLr-HmƯp%1U0#8¨*}t%Lf1،Y;:@L˨b7;mN9'd˙ %?(TϓR|fm,r~FRI{:~(aC7/Zm )xofԿN Ozb% g4?n;fWltSڂY6I^ni8B|iR{N. zH!Gx݂%0cɠ<=oȊPDLMXɂ`T,echL"1m-^'_x`z`0f;ᷲp7(L|MO3L$JwM (jdeFlB扖^-/gͨ?lkJ3’>}M~:$6]/o뵘(Ƃqlrc$lS g:{Hm FMbAW^L^uzAXq5.CM:ـIkw?; du,qж-O!_aI6Ma7ikJvZV,ل8}GO^9 ME^U^20J#]^|*r*K2zbR<^_cñ|9#5y"/LD"yqjc9I3JcTmJi&Q#Z|N_o!brxh%`)K9 ! gK#T*/me(ĆDT1U$߁"pTHԩ`KV ?qJ@:)0~\p)߅-[Xw`FfpAibT$)ITߩ(_K%8 jƗUi.-|e<I0@b݈]ZՓ.5^Yy)3h>XL_R̬VM7kՏ'sz-8;S;c8;) i Hjڀ*i;e9N{ӟYc"7g[sXB}`c7NW{bbsx xaށ%$ f1TPNچ{1vm,e:H 2'{X'K(7))ދ |zZݹQ|3LY:Dtee,tlU8'rzפ8e(D%8c XK&5:>ioŒ2$Ҭ:w!/{w޲C=GD@wRiy8WoöDl;IhxJ[yVڥ cwVy+-|p %UrUY1M]cZҶvõԖ[l3,|9ieE6vBj+ѓA+s+-ifT/(Od`hfKb;]ܾv?ַhg=jy#s ~q_>atxrXaA˝0䴜wT@l4TGU%셥Sj_60L :tXoEbu_^AS$-obY^kPj Bjmw>W}6nߢ Y?'ޜS =C^q?UoyK"xZ'I[ēs})cax`U%iio8gƀ8+Nmq#g0ݷg&><djL᧜ĉ"J1тfpdP'^Vc~ \EI)p&Uy4!jA9Bp/x3;]sF[џo>7}c 1aE&i sK]?+T*ZS醆bߴ:UU* e-tY?/ )3D| ,v555?rv4S{E^VRu0I\ X-}ʴ{CMH$|`3pd2v|nNp[{'<˗ PdtŠ̸ {|ђml,#|؃g">2\xYC_J=,(n*,NpGR~ \*D¢l؛e\`IӲ}[MȺ12F48M( &+4.2ތ}pL t>Tu-\WLMP|Xumskl{a%&Kh`r:m!J1-ǹ֑M&#|壑͸[yۜ sLlWZk^NeU&¹8J.g)sm⥿t%P;UxAg47KKqZzpn 3GcTUP<]ٮ'ZkFuUK)f %##[oud{D>KRWzstqZڵ8Cb޾@>Hbh*裼S* *<_ 4i\ܸ=T(,\rk P9_6b%hs\@wwBv eCV}*SX_|p`5ҹdd1 B+r]͇+{r'egm5):i̲ ~T 멜#)i tVjZHo-F11*!C#huM|@jHTCP;3KI24W/]`q' 6 Q̕LY0ʐZJcgeb|@gP#xDJ9TEGLa65E/.18]RmZrnB?T\}(0wBr&*T,=<7\<<_-0b3r33D}S*:/!~:uZ%~ËCtEeoǙ,KFW{owi1A'o]{ǹ:E%hA-Ie*e=̔T& {9#dpAvjK P3LPzzz(u멮 k7?&q6+q[g1vzQhi؋0QVLž#)?a"ЍnA &;€kɪLt4@'UC}|(@^ŵZK_ҷ+ =Wn6n"J{1rI 3%~ +jJ1cQ:v V}<-ݡh^cΓg:KOHK#r:l|1yScx\Ë`}8 #:Sk=4 ].G;sl*"]cQ(,mbk#wh`S4\i~*-OHĈe{Npϯ&] =b'Y=Ë볷v  tb&sS:YHXeqni2h̀,Rii.iӐ({d]T%WSy$$!>TWk]78^P-G<HlKfn\0\rjQqYoХl*ɿ0nMe╏ϠR֭ tu `%όl!j\w!KCz^XS^>z YBŖrFd--ߕzS'O|Sp^AЂȝE[ }|Nv%_ V'H182hNљ:=[ $wCŗN'(c~m.~Q~`o_Rڡ*3ךS_`*ˆ"?-rv)6#We%I}ox&f [0gl ٓJw45%qh}Kɂ9uxKJ,"mD!U6R7-vX7fWMSɤmԀdqǗ+ِ׀#otҚNG+{L0R_7Sma݋]ZKIŗ/-*qP߻Q}-3 ,',S:ޮ]Z+{"CO&_Iҩ Qϒ=49MK>" yzJ3jT b(4(lXI9skk+i3 O_ZDJՃ~$Om`L }OrriPt~Ӥ|ioWyYax;?v |x sJC]?kX>ǿvnE 懾VX %8u'8=%!O\Hڹkb<3ιYNA"qYM{v3Ȥ'dR|oa1Cz=s&TwlDC|%^P$Uh}c6 PHO]Kۣт4{@ax/= +$o6|{'byֿR:n[yw5hy&c7f'[uuW@Kxš5Vߺ/>Z˰Wgk^cb:5ܳ*u!:H.g-Am ^l6|6n\PZh斟:2j/z\Aud'/@zZ1[.˳Nw,))<{u.C,teɋf$lA1DbYLs"m5l16T÷ܸ k^rx 0bTԒB4'tm/ J-1_߄ӻ駽 hPAa^A-veD ^(B@44T^`0]jY'Ӆɪs=0P#jWꌫVc 0ThxXźb$ x( )~Y}yncק-˸Vf[ y}uEoƚx<-{="8QD}0LURUUUlǰwvnk~0ʤW0%ٰz?Յ=nnJBN=͔-){pC&'O@\1k=jԲN v6^<8"㲩cy.N%@4_|eNwjD t 'wإ@}LB;N@bo- fŒ `a-T;*X$ e^%*a:He:x5][iaByľ"^:!<ϋFy"CT ERI'9VtäK 3}D#Lt'+ A!RlMݴ ZswX fPk } n2isC3qnf8#o|9\xpLr=9Pe;S:X!-Q6ٸ^mJz +OJ޿!p ȭm_jk +>[WS\DXM`M 8Yp'Bm7av&*>[ YZř/16_Hԇ-֧$K`]H b^ ¼e!06$5z+$fl [rHHxz?Qgih>8*E2O )FzhVf?NYy42kix~j$E@ߜXئ^2Uɥ-m 3FTV2|Egr!Bwg[̂Grl[Pm2tIۦAlpdhM3~. 9W|&[1?>7TDΔ 5Kzxs&nԊ=|HMĸqT`heUY2djR+c ܉>19)9^_ ڣBaXyqk8} !} 0mI:oZ, S8Q ܳTRYEMtk#-Mmh(xa *5 WؙQvنe;xZ5 B \/1Ѩb )nzAeǨ cuV"#g@8,nlZ {cAaܛMDd[/0Wq3cUy.ǰ. Joe7"4`]J]`Eq(X Mѱqkd#CAAs%*=e)vsZAa-&!(KQZ̹oCCY o(0QSm+JΘb?vŋ KchX$ fg(zt.;ڑu:G׵퍚%CAiN/]cPu}pJ7ko17⾗tqѐ{a6 `NC]ZAh:#N[=3t7c>,Zu6/n`/cg=SpDU);"-HwmzMg\yf)mxo#a= r5;(@j0r5W4A J҈ wv%%Ab/|4,RI aqr㌇W/^}-;YNϳXÚCE>g6>O|OUN`:!_;.mr}kj˯r 5J)*/\Y_mZՐ*T%#uMv/2DFնdR{/lOIJVZ$F$H^ z8 %٥~'M=?Ux?FQ2ɞ7K݂Szh A-"ATA:KI;W^WWYoW܇aqk .y@N }<iϙe[nɗ*l f}w! [yn~O}Q^g/Pf fB/ۢص]YYYCu)d?2YHB_s>5ÂJ X!˛ca[Nʀ%Ȣ sq%+SgDm-13IԇHzXUԣlPX:Va]yh:玟4zvk߉rc:~Vt.#5B @#>":<?/BFW>^ ɨɜïέX 'Ɗձ7^ ӅYicyuY?ՋEJn׼fL.amH HF%6S/OMD%" 8|<\/\-#˃MN.1-ޛCxvbYՌ5T8#"YI@B5 vjN'P BxqK׮dqXc%$]IW֣䤗o|"GCuEJm]eӵxa%fTfeH2G 0HL _@LX3TzN@J{fm61%,P3!NPygO;)99ҹ4q(՛| Fay'њltoգ\V ӟ@W*xZm%|+4ns(U(O݋M ?{hl/Xz(RyDpo)֜t@|x0V]ͣ(U Y0+6֛EtpMUg}Gr G*3T9c}u<-!/Ģ^?EbeKeX$֥MhW7J)2*v Il\;qJRpQ+L $Ŷ`ʻC`Aq\<.-pG7<p-]zFxہt07[ϼ҉ܲ&R 9咛R?Fhķq:Q:*~caE)lnZ3u,$2o 7D w=ÂN\%w,kfPR:m qfu_O#97lHUy^T E}C O՝ {}SE6Βx#as3_K~JOv n!֝S"+pm TV9:<(ɖmX'+ y5Y>-3㋤J&a3&5M< 7Y&OBjIWe a6Frj0?'yyU0cgȽe/. P pU%KZ[R[LfTeai[|_:b$w2B⿒ェß̫9+LB]>ƽGtO n,cJ|!R&fCwO;i-^'ue{,NJ+bXn~cN';IPM 9Nk&dI6/%  W_LϵA@{tinmy{R37&~hSUfhƙ [63f^{}D-ފ}g% Mj2V6ku;"T>R c_kzٚ[yly{9#Ӽ~I/q6E2[Gϑ^OWC{+x J X+o=~?'j] &1}$`ԼJXzQHaXK~ێAF}_DQKga/o7yM5` x#n mMPAZ)9xpǓdP%GoB ET4v1y̖ʷR'zuɘB}ڢj|?AܐN\ߪ,s8¨3zk jDF"C.?vjR%hU2 tNK{G8PKC1J<$nuvola/64x64/mimetypes/kugardata.pngUT `A5PQux W{8T{3{f03Lm]"Aeȑ[L72D\6aNKK)6CtoWDRQ8m?>yֳZ>k}8>;(P<]Г!}+&-z࢝w:@U'[Pa<92.g{X4ϏOxsDu{:+J';`Z[-6PՈ=.i*(榊Huo˳S.ICïnKߔj67ޠ+[/٘1'Ollnw`b!)$1iŏϯm&$LhxxΘ&M~¤#X{Ta=ɼA?oB1>'@@VRq)@WMɱiN"xʜry[a$=/>ȬgKY ҥWzze~'{SLL>$`<,I(ƞ2 ^8z6K aΜsA[a>EFcĨ(TF:-1UBz? ' r۱l;{RQ\cI>{!Y|R= 0BAX2'knu{,!PS%UM,: E❁eϔRpmR'ѻF sڌM(ohpQCDey#=snd4jX;7[r7-o~FLKí>K2ʵNayM|" Roʪ/=P82tyV\i|'ΚQ}nher5ZTebgB.C~XC@rKxYYÙ>Fdf %$T? 2$+n!όhy+l-3^wfӻPkNYpXzR|vȦtzp)ʴz`hKޑp?Ŋ'm` zPݏ w~mBwE+9kxqս񗟃wUTG&]&Z]9B*k/\31ʸPܞ&hLDW'ՁG]Imȭ^}\9w Cc{,O3xg$VuQ A- 850 k "VB$vHxTބ /ӟ &p#ݴ,ky7Q&PһUV5eT˙V0j1&ר)DcQqXu%or\bō);tМ?[BGmtܚdZԂ$ DGǢ##4ǁTQ2YwROJeZЃRDQʒl:6a q.=?+; (`}x sl6&N"_#>u PElgKd;">fhsI`VAr'p^ UԶ- .y',rͭkXFŒ*3(r_qԏ1;K[ȍonf~HJLd 6лyrG$jg)Rfr?!3pϞs9nqz·$Mm 526 pZ7vyY 6>Ý-DN-ᦒK7x:lYƐZ | H*^%q,{!D4` k+⨱ QQ JU#^jč?7;.PK݌C1M$nuvola/64x64/mimetypes/kword_kwd.pngUT `A5PQux %W 8T?sf6#Z֠ Q3JK53Rm53fl-b VL_#U)0eU(#ɘO?sy<ܾ 0_o"^+kgnb@}*oԴuiaIqi)W7$ |J1s\蟥;)gJJJPxY\DC\ V}N f2lhIԪ6'K_* vy](DA<-eJZ닎5ΈTFdқ11:%L"Cׄwݙ6#B."eݖeU @ف0V!E 3t6@ʖ,ΟB^ .BSѝO\~yF F O*:?k^?`VT_v?Ÿ9!1V' Zq衺6  BY(reCt\iJ]7EQ yJ,C|Dk*vV-22,%$1ȧGt]~|^=7˨ퟢ8)&V]:՛Hj8ߧHpuYGώǨ ~v@ܵ.FD"-a^QJ%s` ݬݻl%RD^ھ%l[@1yf(ǬBa.[Bn@dvWI^W4aWwU2ywUL;Z-1d!QLExJ櫏QY|OVn'OFN@d 1=+I^t*MKEJ}z$a6 FV?r ===0k8ֶmMqfUe߰?R[u9؂N@$/M<_ޞ+Nd_i ^;O8A>'ϕN (*K> ~~Zoڴ ˡ%n; <.b%%V`#V4`S V I=Ҥ2]f,:k%^΋, ^ޤZ;!^XcvׅMΊ3Uhsw9MuvJqvk_^,ݸ2 0}r :pӛ@KsѓtG۫B7/a? 'hvAxcb;tnRw7CFPTmV}C5,XT8 7@c{'#:'_[;ZWM檫b('S=rɜ&Y.ݱ? >_;WdŇA?+jI %.-tڰ d,* 0pㆰpE#֍2@|:;r"U wUa<3mrFHᅱS(',y{MT< d_%!_iw80l>)V[8,A ZX&1[N 7 7DN /x!t@S,~#NM>j;҂eccY-y7N-J9"{O.Hnn]_m$z[;%h͛x=P//k c-H`XV j*EH{x4_i=A?Lĥ#vX.^Mh*TSVhlsN94`w/+`YL^yUcV})ip8$o+J? \:'o#yB?Guf3Y[=B1'Dl ӪIZK.ܵB_zB WٷC*䲽<$|B4j2Z⼠|Reֈ_Qၔȅ44V<ٚ8OBl Dƈf7 r4g<1Y+IDp.*6ā?q0**F/=&)&t{҂=iI wv_QZKh( GDmHw~o.(i~H=hOpeƒ+@.oȧ'W/L<5qhw|D^Twn"[G]J݆,@]c]v7CpU'%v=p5 Hp}P .S )Zjc)ql8Mנ'?zo3VeL$Ys.AیvIAuߛ62zak'(GOTK6PWTdP[ wSBROؽF(NɹA2B̑^ϊ?wеiqc =ĸpu&Doq< Uݬ|Hx$ږSZ<=]o )wItG1>>DMZ/;+[ƄFuN_hI=>'@!o,gA^aru@\6@](Fa&e)1cuzej'1../LY :ކCHkɚKSm/ܦNm0sc@@hXYˤg+AeۄqcOGl.;AB9'jDsٽ{{yqm1o6qu]9F╜|@Y(fYTh5$qncѫi@)Bx'چB&j-گ@ }݊k}Ac+ٵTbcPb\M?U`\P&XXa,] ;ihDV3=")#Ֆ@{7mˤhyhOA%8^<^H@D `U/p8\|2Y)lvlvTܺKdw}K3Iw=e60@`_?E$䛋0^ifYU\@x3krrt"^)7U 1 ㊿>U%utH)?_=y#m4ze.| POJ9c wml Cz,'J9}= È&7Z L}]t2]^YƦ]\;+3D֭ףqۦ#f31VZE.ᅕNc!ҒSnY9M*Ϡ*۠AA(OҶm{XSHkX*^`'/BҷlcFG7;nΣ> @gSVFƙth=]Qh8}=c1U@7cw"6iUbyj@bLNLI*] |q:8PKڌC1_R nuvola/64x64/mimetypes/log.pngUT  `A6PQux WyXRY&\7WLsIKlJʭDkؓSmH+3FJ˒[R*5GL&=1BCn99>~NI4ZdDxv-2n ;R*4w'xYY˄Y$YSw6Q:;rk4=.=U+=`yd a_"DPt|"b'n+\0}PG-G*]:s13V;7OQ|ǝGםP@"A˗]]] ﷷVh rd3?>g{si&PiY3g|Mwh}xI lÿOt:UI<*ٱ|IBfJ%c)("H&'V,_r.]S[ҸLbD.2_A2P3 P½6i-[V+rsgXcѓq +IR}!2{Sv}vVK`qB@(`d:p `/%03zQ ]Z 7\Nڒd6StcJ>Aҗ3!SBXe ;*1OCT!,Aϼ1iFBNwW98f?]=R]6~|nEK4OiHHp^|/Z<<nkK5.(S{7yXM`Η'6=s t7NK"#e=_25OYSO]!Qŗn:5eӶ>uXF3XTn; QUkgsMˎ5u;:NN?=-$gl>{.Jj26E)w3A.z_&+Vid\ׄ \K15-({$tёC^m{գs 7D}TC 'Cu!ze-Cla_sgLCwkO7?s ޼gs%E: 'xo||8DHI<084 TYOSQHi ttB WM%}tX7.@[:sssCw|5& 11Ul4|)XEx gN+H;0"J)MR=l~Խ~ ^`ՂflvZ.ʅ D!?\!ݶ ²Kdz66-+?Z䑭j{TO럍p3CJ+` GOĸʋy:cmm/vYWb환`9zg_%_oѮ:RB7hIyX/JYt$L<Af2ё4 QD DL>7! ^ f[WĆh2\M&_ #!>u_IڪN㌬ WHN3aY.P,`1 (@nF\Fb|NኘxZ0Fs OK[Ep;;]9S㎀Sxsf&eD=m?AmFy{ǜؠ췀#jql̢PX\Dz]B,1DjR&Ć7,phS?h;u/t06R.UrOXya^=~dL;"z'L%{kB;;߃8K+]~po:o9곦|z ״ΞuJLH*zF >Md_{zc_d4e+AF9@ht WEU<;TB`/ʌ}: H"v~DE ayv<ӊx0ztBЕ>ɱ,+LD.[~! )?PK֌C1y3nuvola/64x64/mimetypes/make.pngUT `A5PQux {)*e6L]‹"##qZ[[oVsEYdևuou,+Lx@x]>4ljjZHكG?RN}~Y`pz$h[#s gFAT o0"8Jb_,2yD,Z6mZ. .`utpYgNYV(8'Zjwig|7n٢s7.P+!h7] k88.FDf] go$NJ ( N|kB`5 iӧl䮤|,Dny Ԣmxf/5&u_`Iم~*@is0PSi/2b̂8..W!o(l X_7b\kچt)hU# 9uGTaeȯDC5?yk%A#mZ[?LHxX呚+)ν}`,b[f _ra1d *?݈_}swCT /mF~%mW xH!nbWT9>3V#]]/_u|:@1t3MtvśߖU3ac;ېă\RQ~Dqq'߯Bv{•xY(<>@1TY/}f.}[ͽw –9L2Rirt5>Z eB'z:]zΌJ͕O\P W,ŽΓ;:UQ T_ ,n^Qn PXۭpp埠>RQi5^@YTS<٫L b28h1'~h]H5D ww?Djlb/9?Z*3HzI|Xz X<{~=S9?O|]VzA%PKr$z Edp?m}|-Q&t.5M?K/^nh~]'ޓ 70BY$c PiYy$5O]~]/ KF^ H@?XMz ;'©1#Qn=;[\ y9u\(qnj3Tě&:fN vYծ RrM' PWN8p|{ 蹓s1Bvk[s,,XNͣMa&C8Z|ɀQ լ8RN=IJ܎╛P^!JF/y\%~V5[z*~ nգ9pr(KObYLJv5mFv^(omiV.ܕ_1-},eP3c>(XW˚Vx]y^n&)ɸIg9K(@׺# \=AG'V߲ zXG.=J/^Ǯ͠+Xh1C>E)z6B x%{"- o`5KWmX!Ǻ-ڭhюcxRS>OSlUU"m4"C%^B;g B} ܴEZ^` n۵Nړ.p_Pa_ zM?rR{1Zw} B\r_ӆjdHʅ?+Fk4Q#5/YQ| \IϠǍqtQ5bQBT}F^[p(􌠜oDLؘԂ!i/ڬЍhrjKElyu x-_,{l2pן ,.@QUF$n~ё#ߗ.;_c3*-jѤSGkSug, nwv{aay+5ՠ)㊜{u,5jF-㩚]_?2ZIqK"w΅ snh]>բ^-=.r"[smNi-X{H20 k*fEYm˫+-d\`CSjtz #r3Nu'=L$g,nf${+{ f37)To{& п黫[g&djX?;(LWL=ZI7EPQ[T=~c6>Ob-}/Mx$DoԮ0D6yAn"eNziO<a*f ^V!R7*C"տo`uP2"P=:MnAx)u$WğyZK[.H,Og=^F8SǨUi&M^poh?\e/^ϕRdCÇ_ޣ=Y=8M'R,jD0%(2(>^ӿh~۫K]y9y陰 s\]97}.Z<۷lfNM9Wft""m?)z6oիXCAKw^P$dظt&erʨHL14mk {]QAM 9$wWS]qUĻ8'}qt^L1y@w3(tQX4#˼I 4^ekc,fl-id1 ~>#0P#;2~p1|cR 6D5N?!Yr"[D[1C34gv,,pK`ya08py5.I @mbD#a1mi`صgBLSZZc@V)3{yn3YUr{nʹ= XHn=nOpMۇ*EkYޡls&䃡ƢAoo[ (Y0J'Xqv8+ leɰo LĩS&͑ !:4FIާeكY@qg7؂EYZmo ֍JC?-ݵs}M/|A9DXYlU( :]w,O(οIL`%[89ה;Cx _ғ7 ]%I+/Nm x^ϝ?s *dwt M l\apk R#YSó{h߯M)M|[4՝3c/{ʵx~ߞg@f7_75)Zb?LEI X]YqCY$*:9Na}z'cs:v9SPC0>A n]"P ju8󶒇wT5?1aX {o,{!!-W o6'q)*C/Uj{^aL_;zp5/Md.k|5(* OH8;05Z2w5R4-ǚզħ#'C 1tWwcQ5+)Ewq:^ TC¦ydqҳk-lDm):qnf;#XXhu5v4=;v8ߗH!!JGKpCWܡt1K78Ar݅ǰۈVȋc1ΒXcu;Qq$y jSQ&~,&ocڻi 7l!iRҋ'9$ Kvnm,su Qh.]M%ؼ!|PKӌC1 Vnuvola/64x64/mimetypes/man.pngUT `A6PQux %XwXS۽7r)JK H()J EH(AQ (E\VbYAA UQ("=~<3?3w{^wQ@mL1(XqrB3~g@MG7{0B Bv9i  g IA:pxs]^.Ŧkxlfw`iycUk?iԭH:8vGGCgSw '[^8ƇIIߖg^=muY/ƅ0o=p`vdr̍DfAgl!w [e 3"(c>BÐ2=qζ L& lg!q°z$0%u M{RH$9YM8ĒOZt>,d6l F43%Oo[[ߐ9fv+j]ZŦF-bc#"4o(ڥi)H?<@p'BgD@ KICY\ AmI?wuQܴٖ0Kͦvͫmj `jdҰÝ3ҷOyzq2 7_` L bWJ/Ao\Aô@H[̚oéF?ƂcW-$mgF8ހ!Y;}DStj#ؽܔ=`ۮgAUAAsI.ӁSz@n`Tw~x+ȇT*O1ĹCȾ{FjIt2&# aKػz˥:3,/4泦.Bs]sa$ QqշUiiیF]Z@d#$7:rCmv\(z O60\]-ujM?!0&8Wi<׹M^ɑ9sߏ,x$jOP/+) V~H88P3Jf-$v_̹T٭ؾIS#Wxw"-~7m%x<+Jȏ .ܧl6 t8UW <V#[G{{KqP ʅOXRx \4d]^8KSo[K^Ƹj @=zVvqZV'=HԨd񍴔'@NcIޫSǹkf{+x9&ňw7)ߵYkHkO9G㏤HAT K`][ь0=W*2}qe/a2#23J6tDklr-=]'{g'*3K>(Av be/هd_c~" o4spjSc쪽w2OW]B,UwW}k?\E楑b"<6Sz2,ȫY8 &EForcuQk )uWK .!_}?mz^A*W Fv2++pr}ӲfԹv%UBvz&]Wd5.K3Eg8j4l* "c@d4bR6|dHV AO,H'{%+aDz5 >eɗ/ 8|H׆_ 2]0C\~rmߵgؤG\#,G2XM뀮dLd's^A 1Y@v)H?x~,S0s^e\V?fbqaXk+54TiM]I]‚:.BQ4D'rFF"?8?ot= ;S1>0*3Snz+kyهv]Tuhva_@4Zs-.B|lEx{}՗kJ`ʃ@2_YJYF}?`D Ou6"H(~嬣w]*:$_T+iYTW"N&zh@:~nq/Vmu9'u0$\<^E-yQ,{=H0Jo#.&cryqD\Y+{߾e=j]I;Jb6#8>NB^,}g uRx]\o/ SqĔuu&5JPWzd^U YU gJ2(_xߏ6@DM[B\\ 1Y̠`g =ZbAm3<^aUĈK[ހbbbGp"tj;s&٧eOY3n&x/0sAjɑ%fKnfeYр /vv6v%u-pCyz_6 4ÈBnۜ=%t~Zm zfʨ[N _\rliGG" OÑG833,-Ws%/F54ԠY+T2L鿞~;e(plv׿bĻк^n* lez|}}($U vSWQZ#'_hR02,c (hS-#sð1(u4ѷ7LYOMBӄ1$kqwUSxn|e^g}푑PURK춲,%!B_~5Ko\e /?L2%&f Sɿq'U"fvX-Ȳ 7qk1E˟ okzq]5!Bt-g_^Ud❹y֮#r][DF^K@zf&yk PAe<ر` >|}g8}X/Η7*rEiom46ፏݿS}ձWxXҭ]("An}rJw["98@ ;LDl蓁]@Aѣu5K?78EEF6˔Nm/ܠTZQ͓JC cz; XT/)9܅OQcX\]DU"rǩ#c߷\ ]`m.`˗Nu3l~WON,1ԫ((|w)Xw`y՜Lh;U7L1m\<6o'3J#*}j@mYB(M:b/@1ixPrac޵sbNV;o'YXZrʦNOB.vN1(_b.Fs9yZJ>֊bӁs宨*k06x *q}3Wm5yQ^t5bqשּׁ.C&lC2SgŸ[|s'nP̎0ZݙWY[y:>ވϱZuQB_TXGuK! 8gv,yHCzs"w~u_4ӎMᡇs6iNl,8 p7${RK7@&'[7?Bjީ)s.p@:ujfPǨC13@y"nuvola/64x64/mimetypes/message.pngUT `A6PQux %{<{ǿs9lBQ8mn)MnftmƐTt;rC:K~ݎ(̾}o'i#LևFfnэUM8F<;EƟ<)ƱX:Œ%?Ĉeu@֤L Sd!DlDP!K~}Ḱif+– Xx=0Рx׮{iFS#f jkkC*GLU)1E3&7=mjrz~\Ly`PãkWf"KDc_{D533C^X:-?=(\K2vd;o=!;5Z 4Fhg'o`t7tEA ҁ?a| #@W@dzbݥ&̘wSo{ubD,P λ<˛*O<JUVT@َ4XFBOfQ((Zco Gؔ\l7p`F;WM@l,/li鉲514;5o)+:G7>Br?~w2~r6< }&;G03趖:c7y|niJbA,A/`bzO$>*1P1QsLJ 737m$pkb (^ \Jvp`Ʊ춙oԕS|{ԹXJnvYgewn:JT #I}% ;cyA|,ha|[1n.(*ffiRIHt.Y(":=A2 Yl'׿yrv9,PvMY'۰O5h2CN@v [g! Zʅ}e?$w҄kkE o 5-sm"w-jM?sb1;R zbmЯx;;9l:9oH,t 7QE?-Z^lFڡZ7wDYi3/HMm*'_ZAPS$. ]á&՗]= Sf5"Om}":sKQs"{,[ǘ0f/zTeW`iHh6Jc*oHls2,ye ξvA \6Uhp dߋ6}nx{b/a٩BdMwP~&fAf]L孠A7Bl3 ܡ%|6828*_`G yju5nϽ&c^g:ݖZ#PaW?rЍvf?wg*Z12ц2T-_k SX˥Kk]Yf<$c0o7ٽ^"VŜvUy⹪.-o03q^6ŰӠo^"=ւG>^i@YZ ܡRMnɹlNeDvte_s4'鏭Wh0vJ1# c3q|:%&߸pP~8<Ǔd'k>_;^piYB| )')b|Fs@jc4Yxn1,b{Lj~58Yb[Uswy?uke [^RΓm+~Li+(u\ Us_=u8ym^;iS؀G>Ֆ]/ 0=~Kme  o5T;<*9$Q Z ,hzQ<=5#m@ji-,8lS3?_܎+i]хؘ0ݞ"8Zhx8/FOk $X_ [91#AG̐x'NW=B}5OJ&ɟE$qdiDS(,|,䍯hH9 Y48.BjxW)f9M20>ۀ Q[#T惟gbΥ[5:JΟFV7j=  +W 4zzId&jZ˪}Zrfۂp [;`;+IUy~+RFm] -Ӵ][_jjqU̦]6~H \$~ed=3q~rF<sdK׳?$.s-_ M 2n-9[Ϭ*[ĽPRwt$_}8k?~%tNӥW;Rڳ\5&'rttaʾ}aŃ*NNZ..#|gT$"kXn/l5Wp8sΕ7yg(_g$^ANkf(({w%S^P0Pp{]$<WKw#} Jlpέnhhޟn jK>Bi3A] 5Q p W aGhrh+^m=c:`%Mh8%:]J?IZ~vP~-W32]fDȺtNU^ FɞCào)x};x'X-CJ|4R&mO+/fzXY-NvQ)0q/ir#--Ya 2 t?)> BV+8c+0~Ϭ~@}\ kEa`z',;T2RQφρYj) G>GKtRYyqd)^/s (}5UWh{6]VY k2C-bYߣՉ dƫ~ &X),7RM P,Vyv=98O͌9L|wyco9WcO RltIgL̆!T[p) >6ؒ=|JrܱFw;>Kv#RۅG)soŌzzR$iHjS&Oj%eѽc$3W~:'~^y^Qq7ˍiLN韆# P$!pJ\?|dHZ.kKyxZ Dknv:lQZri`i{=D$q'(+eɝL5X i}rVBO=Ǭ)'@.}W~73} ˮtqH$[Y3L=79Rh7O|H2.&Pw,^ubIXrﭥؤ!z}(.+T 7=/M:fL{(w'&̄ (zvlۖl}s]F;i@t+5;K.5Q)yb6<8^6e '+Gǭ0i:MƘBo{7Ʌœ8B)m쵒? + pϴqXUgktm}Ц{PPKЌC1Ǡw#nuvola/64x64/mimetypes/metafont.pngUT `A7PQux X 8T>3cX3( IRRP&-3̌n,)1vKt!dK2H13=9==QCMM0 ]m?.cp>dZeأ k5{7`X.9l;es2wq f*A3 jj4@lpZ/N# <-S>mO\={!TemmmD!蝀~vjdi5c_W}]k@Y\6ٿG}>i&\CQA{~[O`/_*L<_i T;8kIv\K[Y@ [_̓D2Y?i< v<_5څM6djɘ|)9/:tՄn|ԃtk" w@P R,6< 'jbYe>${$&H5? \}r,IFOe.. BYk9& F vm0n@ zM#Hݗv驦h{/(% u?f.6-4|5˭L_Y]j|<4t1nh I+E.şvbAZ;(l9Vdt6/*I£n5|jdWQ˽)$u;d ay^_J8箅6'SRV {5游ɾ2O7k'$wt/ucW/Mi$+/FA7-Ep\CP:!>_qga?69\^ j%3a~)ٍ܁v8$*gպ3ol,1.`` g[Xc򥝨IӌڠTeZ/UOiCܐ%Ɗ򄯟vt(,v} 叻;2p_祠I/5k~zUjΫ6٤fl1ƶ]IäpzR~:!^s?心jEBدJs؄헕J|LgnO;ngU͇9',B'<#6 :$T(j_@6hf!!f8cjxbA~qƒ+1_$x6pD"Y #C%$~Zoô76tO;Y$}C^xvkcX)@}C r-=r.]ASrkw *ʶ'~Nr77*eEI/}^L6_@ݎYSfOi>I zgTʅ5cgE*w|N#50i@sZ(Bϐcƥ KqgN#_줝 --=6[Ŋ iQ;ٹp(N)gVa>@=WzM>BSZAbZ> 0'+(oTk6\LHj&:9g,`깈}&nIu-+799" LN1q&PN䪾BΤmۨ({o8V~偾lp=ERLY|zC,G)=:R . Cض#JGb+Иp%Uٱp9,{== = Ę &KIĺjvgZL`&Gn@iӞC/|m h% RT WApm&Qcvw㺵Tc@Kv T}pE.ٵ>#d5Z~tY/N.,NN|Wl!tO;)Ѳ]<塇bU)m@3N`^@vaVCnM}IVb֦hw!dk09JsXDxid\JI3tz{a~%t |9 rƮtvbEJD{]]"e+7D3De|CM#$(0.j2QsiYFOtf|~YNQ<̝/zxE xv_08 gAIlL*NM*5;XuS]+/[ 0 yGV39LBǂj9|^ŹFMtc$:; >lGgEGϲD?H:6 P]Nj4>"s2V~\+t i<)jݴOP9qo03X&hnll=|7Cuf d15=~nn}UPd?ϩϐc9ʣR}7Wg3Ჽ"˪FeZf3IJzq7@ش9QIZg0|ˊ0=Ʌz`yTU_݂ao m+2 {я%hqSeZ-.h$P(9 U1Z=qԘ&nšހ%{5"YnίYYnmbhܡ+2IX.p0zľfJѦj;p4@kΫb ōBKB=Js>w;M<h[0p 3RNGn;/:{ș4^'gRTX&%W;bϤ%5 إ}`fSl\ Mf;մEH0N&(Ga爍nTRڳVAeai{oq>[+DLJDkk2\N!p\ 6ӳf u=\`UO|.pE{nOe&);yp |mZY?݀=cEİp",1w\j ,^A('ip]^Q֎hR)q'j?+D-4xoqv$K4zyc"G_sO^y&Bޙ_iy c^)rj\~O 7ɕ;׌ #nXH#+\y軠:qwOzoe9_TkIz7ƀഗ:ER Mْn G*ƌF2Qs8  2wt0 f`:J)hKF  'elw8-xuJWqN j*bs|9D7,t}| mW^N}E jvGJ QULEa3G]Vw`Mċo$/+)xQ9eRa皒b Z{‘ N]9|qaXr{EvZ20'6z~+/J-\r6 ;OVPLfɫr4-*&o3B3XhD'y^+Z*;0|AUDG xeH`z+C68.:񼤅Nm&a)f4k;Bn7ݧ%>I:WIC fFCdC 5DgFOB휹A#}uf/H};6_@6 :?#HgW2`Eb\r䅻cFVu毀$L;4aTLRnS#6ot|gBTL 1ד1;3̜6p0|f D]E[l/V+wmu>nrYS}7tAy$ SHˆ2@YsPHcJ7z455- sAZOPq=1jb0֬_};PKȌC1 nuvola/64x64/mimetypes/midi.pngUT `A5PQux =ViXFH $*ʖE@mD Jb ! j\"(X*DJ*[+}@ygΜg3YD@ 썆}͉ p7Ow O (*DL:.$1=b&Z8G5V> @ttض!ؠAHD}}}?h˴sx /-õ[XÛ/O6@H41:1TO. &̨WV6Y2^yDs5i?@t񄅻iUUo?v]3X\*[B$Z(0c;l]]]OJn-rXeVX|"Q@?n}u]!-v|XޟFꍃJӧ7"s CwA%!IN'{ +ԁ/apӑ1 mGQwQI|Ӿ3zl0) RK=}@0*~D ­ނi(R۫'?ͤM/mPa~'Dn׾/k،yWy! 4ɗ'yq etyilL7M`x7|УKy#&W>:B7Vz{ Y8[~ǎuJDrQXHyRűHOUk;Ƣ3)MQ ҥ,z05//nfvqs:Uy$@*N1Xzus*T^J+cG>ݜ 244LL c7 ՙh#b3 v`0H$ڸwlmܙt?M/مbʃhϏVJXϹkAl6K;!eoEH%82VĶ,M՗e)Ë69%]{^cei&owIn9͠C+zfc;PGiOu1lpH^|"!5yr\pR۷GAѝ}A#mMQn#6瓘۪('z m˹ΆjOGM,y\c%F+7@6?C==.GSlD&!,B#=AcP}׸󛲭LhlbsԶM(9.fTFe3-S2qAbDM4^) V(y'7XŔ&C5h-R遧{*vhK"[5 vRfmxI"fI|*{=eJ'H쑏MPfeE"췊9]7tjc>]J IxckVjnߊ{j٠4hQHsZXtt4&4#VkߪFX4\Ρ??d^cȬаhW ϸRRQ5Z[Bzb#?zز0\+%u(ƞ^*LxB3=]XVa<7ʰMܢ.}w vi3oWxK_GSΐ~xJɭChRoJJʃJAMmmEk%Nl9#޲{+Dy~H"%oH/u_ Sv[Iyi&_̊Lϑ6!:yq a;6Z$qa4dj >;/b%> %:4`92G8]$6©a(_%hvͿCd֯2ا`HzL,=?Pnp~曹hn"U#@*3sENii&'3Di:\W$JZ4hŦ%F:Q7b M95LE9QTZn9[Xý}í$9+$w'qvgYZ]k<г~&E`DWE$Q@U FLj+z3JuӡseCPg癡7 RAye4\Uwjئ,-V=E9D2×аQ^eJ')藌}}h:iW/Γ;N-=6:~2_ {>Z.]ܶv &ūgO1/{"'Pt;?Ld{w+usR1ėcmhp%{]3n2Im˨@ӝ~MaͧL bQۂzrt,0=i $Jpq% *Qiʃ,kV&[hKKn\X Ua@ka J/), -BǍdL?D_`ڽfB+zcnD~Z:IaǢnle14;0Фe) n rBŢb+[M >6I)v T G2ľ%N&ea?ЫOTM"Cw)a^}3| Țp,s!DH={ǒɨ5,Xj:u5x-TrN! *dvΠfܾi _1 =yL;~OQpF?Fl1R-mi5nK[2=cw!~%_Fmq,4ΤFmNJJ&Me-aj/B˕6/sOว ܦ&l]o0`+"O,mZ:*d(lp^ 4ȟ[ᶭ̓wtᏴOz,rt-0sGyB&[f(*76,}.!"u'4UlaȽEY'v{]br[ލn9ęj7m5b,9{v["Ib{BFUi, O%SS˿7WZ["k&ޫ|䶛TV<"_'4qUbL^jlgxNTSvܰK|8ưBIYХKЫWЭ1H0ChMˡoVm*y/=U5fٲn_e٧Y\#5bjRw_ (ʁE 0[UtC=_ w6X, U yil|. _Ҁn+ +6kx7=mbQ:S0O]?@fR0%*Ae.a5v(qoU,֛ &ip+d+V9zĄxWK 2rWH(c""B`Ti#VgmMP;c$܃o/%8ou(~щϸp9_pWRIb>\NXZB"- y[l0. }FXZfctE kv&DsZWq@8OPTwis3tJCS`.n&퀼f Ut[A l u_}A2k:j<@,"9=]PꕠhqT\R%]?KJ'Wp:8s֑gK@K,جCj،AA秉zNS]Ga#pd6aMc"}'&PȶmN\6Q&费q,Bp#E`r6pJcpͦϭy7{֘{3(?~bH!%-Ke߷nGžHG8΁ao&q;x`*gp+K}b?klw=[jr>&\ZJN|$U*.(o]Oʺ+[LXmrԽZWjߪ\2 -4dž/(SEe0;xYUl wG(hBv_Y&ej`}5+\xiX^wz8_ϰb;d}G3ۀR&c]A'ДwoƠ&xU ?}X!˿ּ=XJI}M7q#2R!uGKo"68~Sx(-ZLX ӽ%yd ,ࡦ=QԥgCmfY'a? )*6K Kn^d[by+M.jх{{ u,Vy¾t?fÏߡ&J'[r|SN?zvz)Y(Zwe.a; m*LV{jus &c~SH2)/w%*h`6E%MQ˻,SKڶ&V@():"{ލre7M Ez@kxo.,b kQ_m|l7{˂YoX}=.:HNISM“H͊',_!G:jASS uoVo Sj͖HD4y_m\o(n`${=>E*ol"sÏ,_~5,)=![rvU= }P p|6.9gk|ON!l8KYp|0,Q0/dᎏyqSCD'SQ5,6K.R(1XDi!xldY[6z҅IR\j~2 URceDߟ-{Jl%S28JE#x( !ӃlI;F7,FgC?[օ5U>QM #vq(]h˗l+0nп,m!6܏yCDu:@ *œFTX33uwz^szל- 4|-!{ݰvJlxco8ӭ_XZu0i̘FjztE;n2rAjt3gu^30 RN.Zev{g]`^ (užQif'J7&&& o277)\!Oy7;(3+QNh}vuAP@@KeMoЦ> c0akq)=5Z#,rVRԣ8wSwAS:!8hi$[kC.*S0 rVTFRw* Zjv|' hY%wΦq@[6ئ- %+325]J1T%I%+)>\ߵ'b(8OLjZ= &=5_{e\nE,_WmEAm*zJ=QZHH?;-[G$U~34>8:ڡUsx:M.߶z} $pT_Y|:@[5RP$9Yx bXBi]!Ό-a.2B111(U1WBQo7uN`_I2B|`P-Vo’Z)Q$PSKZ+B.7h0>/)6JlL|=;@(e죸}a5 &QxL8.gn`pyb.8cCt!"-X|8Uw^^!e6EFKz'7-"ML+MpaSy>U]ÙM} zYڹ&6/&VU/(:[ًR4!y :k&:8nVè7 T8s J֡3ɇهE !QTPPnHBLs(lpcn\Xpߌ :YzoM]HF{)W zU}(&yNdBP _y}Km` r?+g@,T*'?N:3Q ; MT^}ט5G "ȑ?RDߛˇ?U0,%}с+ yyy~,4}?-MG @B[{R[Dj}Rf э5IyE}3F`*đ}7x4w9xZD$jԕzMgje 7ʵ@ $G, Tfe'8sA.-[6aI1&ed`DUhTǕ̢<q rNQ4#yy\Nxx8-T֤d2v`A`nY PD TۜUM5Hw"S8ꂮZ'|:$p* %.Y9bX8Z :::"ˡCb#{{0k1knnuq_] ;pe߿$ηfŋ/Ac/GNɖMMM9uͦêqi:(%%](;+W?-Hͩ‹WbɯFbd[ ABIPس0bΝ:[$MkߔeN/}r9cexJf~9Y\Y?;[k!aRB m&b 7=[7JX9N+'"/w# z" Ia.c_:Va'P֮:\)hQJsi_aǔ|$?9ԯ Jڏ]53Y@*:E`VΞ=4RȌ.Dk* \##R[.,'MR^c R&-yΘK;޽ KImbkHӹY]8SڡocǼ0B\*bZǙmU<pnn>kdgnZh%p&Q~RC0a!,)Ҙ z{f"*4].QmZ:m*w?\*#YXloʲ#E rI]YGB^r C6pׅu] oK -!a+E-vDnNSyU!ثg8"t Ok\J_6az~&P,AA`xS,,=8ClP&ܹ?m0L_"ϝ8:{Z3XlП@TZTZ3v] 5YtNyy+O5̱wNsyy؅RgR|BP53/9s9}͹sQ\}vґtג H8]/jlrz=$q^ lAZZIҵ^gʶD6q!"-w<՞0ves?BmdrrHrR&jŲ0s[:um^8canևÿ$Xs]ƭXFxQNˣ#qW'j7o|9<˖'eY5o:vld?[B6%sPVhTݭ "ݹᝤclK_et۸14V[^ "ܼD+(@ e=1}PT3&v6;7BihVȗqIrv:iNqDdžX@.iV?[~fEUQ$wΙCď9֛<n6M!'D:%31a̫(.{7sY~iRA PΘ H4^4p>U]zZ/nZqP whjs!V =`g3ݗs;*74Y (?ݯ!} <>f˫n?.߇ lkD^+]qoF'6^ށ)6?Ny4&l&*[pRY1A?iSIxC65x ;-N"4=mlxDf-y<ߞV*F'W)T˝::j}o;8^.#KeOsd  n1ܓh;z lL`JIMX t$e2Ş_wT_=y ^g;nw`iYESzn@ "9Q-h7_~ տ>OLCxkR~|$;Lhxbl G:./mgaȳ!'FAݖ ^ n(Cw؟kDbs Ȼc\dx tDu6*n_g B舥@ߨ!|TQ,ȸb~i$$*^gN*T]}<h95+N|u7g5Ibd"48g9K^?ԒaHiANGuG8ګk?ň?u Ya2Y;HCFL(Lb 8'˯Ӗ:&:6"ת=iו9J-ةGQ|4v5Qi%W}89$ۤQE';K{-|AEDqND[^Is-)b]wFF~M-2j4G10ݕ4Rڎd7RP,f[<cyWۼOyVx#aF~>IFw?:ˏ1Im&`jJM3W(Xa[gEFi,.;Y~J:O.Jt:=BxIqu/[^?|'E:QE1bS2rLފRVhb/g=%{CyЊy31!Eҭm{ڵ-7F'~ͨ:$ ۀvĪR`Erz}mImRWpn" nܐ uԩ~È_7ojz~NED*bhPc{Hg͂44iLARW <Flkh=QktY1BfeىK!o2N^z6d|jR.XAüc}Ϊ|y}~Nbhy3Bo7b kmgwrfԥLY$ɭ/q0$n+B=at]weCFv=mw&1!T*0_,p ?LŏR`Q1'ۢ׽ Pm-mE[.ZGtWLzWktf}cTlꦝDatq!?;SNBZ-nJKTo5ba`ZQ6;!= ޱ,uc.ƝKِmOc9Ci{`#"l| KY\SNo$E$DGb=4ݎ:Uc4Lֽ.Z˼Bu{hȂkhO朚)3Ch_ [vP㬩šhiGayW RVNSUfgv't>WR F(R`Tuaŭ7r4Zވ^,GnSEHo_Kr /Qۛ"#;CǨNO4^@"U A@?.cLHD Jun4ݲêYIu@oOu]Y'ǻa'}'{f=' >/ȕe ͫ_,Ui>Ipȧ9{ ėDvwOJ ޼y3z⅛p늦5q?At]5AI0>ڀP0X!)D "# V& UG=˘qzj*F)7^ԝGz%z|Ɋ 64\;@m#hw}]NPKC1=x#nuvola/64x64/mimetypes/mime_lyx.pngUT `A4PQux -X 8gc,X'&l3kLvUrZy0(j2]4խe$E$eM$?sy}w;d95 \uH$"s @~GlSM g'ʪiqIEVZvn o{JC^hI:P-@X :7d? o:y5}euPN^m)/rդyxz6[b%ā-*:]ǁ|&Tj0ڊ_^G|{ KC~KJ0k՝^"g>;zߕmɫh4I!C+cjRT:p-?I-ӭOeYdr f:hȅyKTHt%E+t-yvuA0+~wޚY _YUg2@N]"_"t?[2*ʚ_9A`NBJ`%P*ė%+oLhII0oo W @Y1ʶ-jK沘UdYM`g6wSyVثki77#G?C/p3Ƕ-}}}I[R( ~ġ~}"+,! K!m('<R WW8=!yk#aQZ' 2R uVĐe;*(Y{?t ^vWBźّ) *ݡA$(" lw?G(M l>gRm{ѳt]Z1[d{yu:y|?.{Ѫ̽6nM; bI_X?*ÀW^PT&6Y5#MKQ/&Cj櫋ca:N6iNKj : s#Wg r8(Y([ W+/\. ֨d{% ğ>fR}VP(L420'Q^Fv=O!C4B<=SVeˑka'מ_#8*Y C n2/tn 1R P,V'NXsCZ2)dO9Vƈ#A>J{+Vɯja#-ȓ9qdC;hYmIH;kdzJ;Tʾ1rX ȁ̔kD6H[YBDlT'QYժz̷PVapЪ69]5-ƆyO#02Ï̽˹8sojP(@ ăiA'tTdmŝ՞hC"h)#OD̃8F75nOі7`큗]_@["/Ԭ,V SvC;o`rRpu[vt$^I[`܌>ɝ4|: @MN![G.pLh{ Br#R{=?'~Ǫs@S2e>zx!̠J.9UUD]YYѕ]3n$=n~dol턎 F`9jlS?屢-'z/t2Odix@g4AIAY%YD1 =G@ R]i ܁?ca&*`-/Թ c?Nnrr[a zW[}c2n@kڼTCq82=1h;//N_/Fu:SUNihwuo Id ~R&pb<&~(32eKXo#[m-;h K""5*K ONiwֹ]5DߗK!qց$u󄘧pSuA!1`P6=׷IxS\=H,#sI2;@Oh*jVդn+싁IK[eMIB[s*5`h^ܼQN~BG;9;IH 6TYrn`ÎvL R!'Fh?Ǎ'2Ӓk`m-}6bX[O8.ӕ}^JʌNFZҖQpVN?8QuYQo;Yă}R5MY{,\vqVy ke g).wP;{:(ڴ?V%WC[4m)%;y/O|KGܵcV0<~}/2-Uu{N\z;y_woW Z..kxo}wx(BϠ}o1WKlJ^O tELGGm ^ [L+j"E?!We-dxMCN/ec ͹M[\8HPw7lǃ~^ז0U7xgoѽ5?5[l|\9<~0)hcjjy`>]42PI|oA4-#Ip$U.JGX{ !"􀘓-GQ8 *UQ^~fz>SeDb3qP,ܜ(rHb$onZ+7EdB vppb0 z f gE~[Tg'"Kf  ڙsW4g:4Ӗ:?>F<53?eqPB}xBƖJU8ԅG' WFĸ~U yT6nZwpؙqzI؛@Λ[FfDÙʻܷJ=wC[uR lTǓH983WORԓ?Z6iM?jJ8u悩EzE!ADYS%Ėӗ&A_]Hi٘dfg)ZSӒo+,$k)\ڋϳf,L\e! 3K_D6!1FzT֭CL QNw2aՆz֊dsL[فDv4LѭWY։"W}܅ٖ=T{kdcZ 'OģZou3zn#dWMvW#öXnoB, =. (dzdJ=Xay]f764Ul>uzar3O`?b󟼻wqժD*KMfh(zш1s'ٔW(50FcMyc(O<_ MMCG.e)'9#4.&grz- V~HMvmm2wC{)aΚkOHr0V"_OO"U$"aVnuW5ᒑ@;D''X"D 'UUŀ9m,v )^I?g{ KVԚ,dʑ];+eH+aV0OVc`I(N]5K'hVwtwcqexE0I֋o4rA$GJ!k[cDr0wzd֜(Lο2٧ $E9s7g3?x i(|}Cc4QY,?ܰ?o j"c2_ X!P$Pu00N #PLNk(엱_21}>cmEKKN\Rh#,Cw6im/3:o׶S;`I*oϙWg>ʎEa/iCQPC  Xcw2lsǺ ?@,%\އFi~ +yG]A*OWPf 'Q縄_NfJyP*k bofŸ犺C`'1@st?#&w)⩉`X|=V);Qr@`! }֚}PKt91:,2$nuvola/64x64/mimetypes/mime_temp.pngUT gUA4PQux T{TRIHd@%Gjjeڻ[bbg Κ#|=OIAq5"tҶ[dZE6^j%Z?͙}&ezx{qRI"EA 9DNj,t/5gGI[vLS*8skB%-[HT)0qtI [4͈.zʷlmY >1x\+HsCCrXKG5W46MAA&QStk¹Kv<|ռoE<{m^8M9V\\ݣ]ti:tc<*NJJJj ǯSBOb(ef737y=iAurgуM~V51`@,#OMWލ^NmR0I6p4#EQ<##C `jXcz'87A{Ek} S'[vC4ո*Ϟͳ@@mWNfs(Ocd-Y+\o†=.kGdQ+Xslvm"z>CS;%>*)ۗI f:r̩ vګ1m6O '˜Ԡ}a]\ߊ=ȥX$mXTn:k16ď|pkL"# vDgQ~8!y3ݮ},V9IS`^#[ nD$?RtwT/A?.9HdtpjU>ȨBJ$Up+VNw\9[G\v)E:Ʒ/J^MɊ\_]6wNG[dz8D1N;Ujuun$5Wh?i/R \[ ڛdev%BΚ<ΠnB\6\1ޞ1 b%~6nF$,:jZL#?(T:$H .NeBFcCn!B["pADdN`S*,Mz'x9 BZRI׋ p/{YWFh,qP׊Ge2s₩c,%6K^D_9eZ2pz 6 O003@8V4YlT|aتKd<kUsyװ-vXyw^[O,BmeҫAH'0ѝQ7=1tNI*&x+Ojc>n, N/ .؍޷ Bc/x#u(ƞ^*LxB3=]XVa<7ʰMܢ.}w vi3oWxK_GSΐ~xJɭChRoJJʃJAMmmEkMX::dϟ_ 1p3Zud'08qݮd.V)Q̿ B~lah8-; |>tH1լqp'TTTm )H6[ί,K?w.ㄪLpwЏ\;=(Kˇ[8QN.'Brss.\Md($>etUd<àhGwI4'~9 vDgyJ!V37ձ'˗S!=(;2de>$2àFIq鿉1RǶ7J8EБ{h8YxNf3"`ZbPX$ IphDt_3F$p!K? Vo<YLYvٻ|-ѥb D~n1^yV.}m g$4j +__ST׼ DVL&RU#VAqu`a*M3vⓡ,mk(V<(;}Z6uv7O%О*!ɕ  ö%[YJdj^u{]S7%a֯}#) ܮIGH·"vǟ?J_Il4?'hsFאַ"E$*(lMcL=# Ʃ{\$LVZp3b)kj]>=uQ7%MpB} eE,'.6٪u=taI BQ02p cьيWVqc?/SӄFX^5b&؏S^Ùp ;O0?1گA~m{a%Em{Q"`2W脚Y//9,/'2;k%MQhHO z$4I"M(m ճZ[k?Z,ڶ dJc+뿻2/вT#;:.U޹vŻez1wKڒ OR3$qoQ:tV֮<>0F^#oH[LU%"ưbŒ6Fc_k.dv̙8s#GQBv/>]iZԐ~:CDB%St1(m& :hfT^~C=ϔhgi?›өC1W|>]wI)j ޜBU$cKTp&QY3iKQN')#i5aʏuQhnpz0EG),E]lJST#ӹW`j70&),׀-'gz6?Ua3g3$B3H%> e_ տC'xE!Gwޝ?>3@@DLY#V)Áі9eS*0zj} g1qo.Ée.P:@4PhƜ2^AoNh<:= gN% g&a5Ňx:w@ټb<}X=FtVCxbĕu伺Tikd Ah)z%pM Z9A yq cNV"j,v&B)J>(xFGʰNYS_A٣13iAozQ7d 76UW߃ZtEGwmHKٚ>CT 1>7Xp!?j7M%? ,JfJ ލ`w5?f#÷hic6'[ a3ƶ,ubk|.(ҰUr pS  0-?Ů -]mҷm"oKvkFm}o;Lh2&߇]) HR! VS!v*$M1|!ʗ~8Lk,0 c`;ܗ&D]0t`V`@VZNy˅pP$Cc0~n8jmGT}Z|zafjf1+)9i{bS\&6=Z07D3}Bqޟ 9I *ID 6dB DC&h;SyY  |',Mu_:kσ'dlVJ[4SPyѬ`•M1;eݿFF׊]k\@O~U'Mw]EN9Mby`LPڌ  Sk'EX fŸ xzǘU })܌=mL}]]I{jXa/q>7sھV Hd~Ռ~"Y$ iԑh0_PJǓ,6ő'GUm9}!+EKŹUk'6uezΡf5g&*JBOgłFJ ˭VӦ6uEf΋SQE9Zt_B+u.E'+s/YDw:LmэMJj׻c-iga N5Cv Ztu14S%,LnK Mn/}!\e_Y)ܠ{nߤ,Gp))avuWv8:.GfL~]X-4uؚZ2*{xm+7Mpk!В"+~jQ:T fvy:/R҇UIR%9nk ?' f狸ƾMuG.aK! x?l͢Nhma{K]OkPCh.g/͉5嶮ĵ i BSՈ{C;Wm>L;9/V;KW}E,1`^Zv&)ɿ˖> |R g&&f<1/Ɩυ:Zђ_|$,w_ [`dYɩ$M8J%D7,(:7]\Rہ'm xpaTխsh~`[S[uA['akᔚ8%cjωjE76SHj5}aҫ]ՄVՎY-1y X-0><$y!z샩Ӭm)y{t[TN&RP_)<;'8gr٧E#U>Il0'~z71:y}\ 3u 5ibP`9M;kÄ(׎;`2NRoַ+ oefKC ~iʈ{-/OeX"g/z67 lʈ e-a ՜R [kr*IyeQk3C괳;&W{=7V7 9bݿy%{VON a{fٷ~\{"qqMҒUUGD{ǟOU0墋LC`J=̩M^S48{QM^ynp~Sj@̥+@۲?PKC1 >Ҽ 'nuvola/64x64/mimetypes/netscape_doc.pngUT `A4PQux WygcÌ,X TbFTRn3TM]!W*u+3.f!Y.nU ~qs>><ჲ2*2:rԭIƪȸQɄ }r bLɐ'3$,%i)'w0cmsNtfJH aaaޞƌkKX({~-(get~5Fs OM)vtt рlxm )%GI[[[[/ϥ@l~ ߎR}{UʫFY͋ppFzVr.Jr>)Pl1; IRlK>@Y* AIE+B,4{{уY U(0PԌFux0Um<^XT?σ5UcZ]jC`Zmmmb1wǶm#lu)()ӫ\4|!pǠi+Q ƀaMqoa pk䇧4<i\[wD%Ov`hn5o.nӣ8-;ґ^MmNܹ*3c*.aG؇ . rZl-\gC`WAV0`hޤA喦jԋ ;}O ı>>re WXһaGT~\롬K'l^|geyveMS籺l'ݛ ޞDL]qY:_Zdm)H-}K$O룚07q^*J|jnb.޾}n.,8~]UX)0x&2U)((vM2拸̪(Ƌdq!k۷oyyv4FJ8hdT3RgghVԴL&NZCdKT_ѧm gfG B3@$s4ߦrJOZe;DEso0KAԃ'y-?cy*kYf^vpk9(ViwhX*Hq!GܢbaKmܗ J:b21 lkEQ&'?fJSݡ"!a%&HPWGaz|0ևC1s<ÒՑ8jdN/q9̏PqeK|azsHNv=aV>}*YVaI)vIW aTUEU6p*u%?,𢞨9з' ׵-5^}ù[#p_uosKl󰕈}, 'uƷ_* ]|a pT ayȈNӮ\7oA͠56XZ^λ痛WS䲝u>k@CUkzJV[`wMl\L*dWIHT Kp>?n>#th\qS W9r#@rL#TӉZx pu -y0THf+ lжҁu+kt}]IĖsnkhċ4Z_in{DWqAFaURS=l?im-k 0>Y~PD'F'tco ZRU, \& 9ib|7Fxݦz+r5i^?}8ݩUX (,T*e&_ȐJKJI?^ 9,=S|1UiA{Bʬf6;'P I9ԑ nw S$]>-pN'IT "SQP?UqQg >UPe4!Ij\ïȒa8Vk7AgHo_AAӢ08.r*#,PL701%w3:?G_A4Ȃh";+ɲYɦhkb͙c8}^RdOL=N7eCH7ú MF:JHincPdiqfd[ _d%RNu,gQ}篅?4P׼œTޢ. )f4ۥ){AFI| ,-$rxRT b9{dYϬ+AE_BڏUC (WpF+{l˴zp( cXl+Y'V\GJ+]6 u-{3\.c |OD0?8&m2.p^=mO\B*AZgd nơPUG v9㊓Xs)z L)^tF #u[ZEssR>~AY^/&r (zNj\_^)x8 0̙ŵI<8e*õ%~ 9 [V-y3ԏJ8 'c'Q2?h=a.@/^//SW$A8Npe!A:^=uKg+ eZIZ է.!Hx#2e6D*Koׯ¬_iSDӅ%*}pjnCΟg(p|=cTGLv3S@%Z@bi!~u_Pbtv=io׉Җ*96sK316旃1.s3Ns(DovWmb"JM)SAD-[&MdEO&=&IRTByPK/w'PUT([p5`Ϻ_6W*Dՙqg/xbDQy]wuؚ*9#ri|іԫq|u ^ӆGC0< ɗлbvlT}-4}A2 CK˅PQr&4%iTPjP'1fRݡޅݑ7QWWj(XG-ZO+vMe{@u[u_t7 ww(ڌ{Flb5U}5*zq~Q0'7|AZ׸習cצ%D#J'/s-6qʈWg V^%KLjIYN6WAgD/h mk7~QмGǤBv5utq|{!6j^=?*$sWgim$>"ϕR'{}6 Yveڬ;C+xV1%FQ0>5jq滻Dkpї} + lɱ={]l+616kz^iuYEDk<l?Kɿ˕ll]r&]<~]E՗74B_> ]Xc~\~"9tg 76> &l 032n%GK)K"vM˚nP; kg![ܡ2P ~Px؎F[n <_7ʌn={9r&h ;? &7F?YfQ·C;HBwя{ŵv3_ )nI@W$2ve[YZmbo3I~-6Md6;YE ~w@S=_Ƅ >uErЗF3#]ɘ7=4> l8zr/]M h_^ csRt Erʡ,H9J*f椐9ӅnBs:V.ey>>|NRm% Lc?:' i <O9P`ġ(  0Flє.fPWjt [!d6 >>}R;)lxP..j>QP8d, .%XZ`Bŷ+3%O<Fu m\m2!U[b7_LxrnDovҾJsGVnaa!ԩSyJ [Up!|Ӧ:LAQ# 0-jRXT1i]'[a`|3|m<"v6VUˣkEoz ұG5RGz5`{fn[W(w жimߚ._'=L|Btt4>3cG`K d $'@?DbAMzQ}N!Je²K^vR +VO-5~1o\a~4 a [z$y\;|WNGH҉ SC1jqV k|q(Ha-r-k%{KfoݑQ6WW*fEBv`N@ews!#tӡZx[/6pJ3jKáVxι!׉=Ug6\٢[jSZмANk̗Y-qC߆D2nl53zj :5AK&.k-2D_e蚛kkqK mq"̤wF2dOQw=akO8 gb9Qd(Fsvt)5ʪ8@9`פ`3е 굚Uao[^kWtz1{ֳ+S{ji')~i[`Qѭ##:FW[jE`A7ESK BU=냇2dcHM*&qԶdsfkhf̞ bMY7\+WSN[~̧eemǙʂ4:2<>f%2J5 b611v?*{ɶz 'Xׂ! ƛp'>G>Q ƻ[08SC5I4?6@tyh &W70ĄS AZ9@Um==^g?.+<,t)8?h(llu,ÿqA;q;; -F^ X9is90?nllW$ a\Kk۪ލAFT)}\mA.% %Δې$V+NgkNmBC_Z%=;jVϼ=BhɛXۢmۣȼUT2' %0mKũEk˅ a0M;$u\ ѬVGtcډ,`jvvqfJ,![UyH* @{Bo,/qRATYmSW7EpCNT&-/W?TviaiDG|@dkA|x|c;27 5_0 ,nf:Y^י.P=ɳ#;`q}\mXT(T!lB-}Tn=teaۻ3 pRZvl]QbnX-ЏBkjb#Pj+ \fw.ۭ%4&u,HH$\|oBR[wZȑ$#r':>Dl.:8Njїb? IZU7N}d0/hq}M0Ϟ/1SIZxd`,oVr@k-ʋbHgWtݙmQ6O]I2>[ ` U1#;qٱ{.7[SC>w/YDx"O"?l,.|+m~6)Rz`:o2[^,/:ܛee&PKJ$싗b>{ +w4js[6tifJ|(/M 1!b~!f,OTq ,趒kD/G ۆWP6!{AJ{fI-mhYa- I-T6 *WU\[꒧,HxwQ-ODz0=$!iZ\x,{@^LZQl݀zÃpچq`O?J %HEѳܦOw[?2bUyOMz*W$vru;ɱb}xss-KI.K,.+Q5@'E=Zu#Sma=V^z~ɖy o7 vMˬU7}\[&-1=T&̇e_"$ {un)nvXZ(5wk@'Q {;.T9RC?cp80FD|^RҠ7!&Ǩ-LV,lNᩩ>U9#I*WV 3;5u-d[F'_Wg1`̽z:ëD?}[j#c9+N}!1Po\䔬'歾-F}0T(`a3k/Y\O0ˠ+zd (&։h^}vN6~'zV;ߡYa&s6!C…t4-cHج8=tA-ICäeVkz7v)3/[y甎 87ԋ20`滑aEOPq;50W,o֢V$l睏L{@6\ G]5;K:ҙ1aϱǒR2' ևJ\0+u}q7kr}iKwzqX>G#Q&Oq o_vzR oB|[ΐRɯC:vel+XwX YX[g1ȣΒk2g /\:6 } TX)G/O[4f$f3luȀbD5p<4O_`+8pl:O 쯬3I¾>AuiIk/@0=O'pO"7<$_+ hKK`CgԊ'Y ,I8GN$$FP"Ɋ΂Z뵢NX2=Ս+9/\f{3źw?SG=/0DtO 4V @zg B\<޹q@vP`X;|u>]cb[dpYwu z>V$?Q!w%~P5ߦ]dowwUBg(~8+R;J[n/ٔ`QjD/V$A[dh |:a87TW2/-h~OSk#ĂjN&WIn uF~"XYZt'PO#{=ń10hiĢSknnٓ=PȸiHUwFE\eK N&s{L+L_hcpzm3?Q•<$|'ᔽ.U>?1V7G VqзM}*,>p]5Z 8?f$5^}KORU\_3'pFrs`Љ6mRʅ/Cv 5T{6c&.iqD1A~d{~ ZO2!i? a΃Ys[@"lXi^pH %ŋ$A(M+]Kx^O^ÑA2*{9\BS'KA5`x CvX1FfJu)Lޯ BF0⮁@U_!W?ǔYdl)}2%n8Dpv>%[Gx;螴(L Y)4>?@r"[@E@d5fQl F$Ful_PmId|[6OBʶ qjD qw=Qp4⨄< hZP඀[~PKt91A$=i#nuvola/64x64/mimetypes/ooo_draw.pngUT gUA6PQux W 8~gפ3AB̈_+JcRY1Ci/iJaƾʒbJQ04::9y8PW@m:\+C"`C6Lsv?woT `p/p78-7 >% Wl<R)kXY"@T u<_'xOPpxi7!z6EJ  P.8}phڲ32GŢ͵j;^M E @']ýZZ~K1iXhɆ 2!GG-CTUKٴ̭neO߱i1;0@q!tENb2y^fnzs^*S֔ [C^-1(˛hc: fpD [FFF ,WPIB?kaH$x+ /<*ɄK5OiC=$x8mR*&Molْq'%lߴ}Q Wrn(SDĎ^~)-ln5^y|Nvt+̛/>{yVM#>iٚP\8$,G ̻?*G$d|$(aL1dZظ0g^0ͻ*[䐌ìZI͏2-*(VKeQ72:HEz@âU*le4*K?OHOczuTW(ÙSn5NASzۏװ7[5n(#padchɍC`Ge38w\ubegzww 4 3T݊Sz) _ UB [g7] ҡFsT, $ |[gK?Pل,_LDյ;(aϖ4j=6kb([t-(HzI O'! %/f'wɞ^y^01ҩ7s g4ߟ++xơpxhA` %0=l>lA3䝌A -ZɪFo/w ԍ{KJn}O`"\]lU721gS#X.}V ljA &,ag㾀M1~QX\B"ngo^km"nGcO< sXPG-5Y0-*6f#Abu"_K/Mkә .)R'$-ʷM NDٲ |9dU:4ȋXdieMӼmvr?-$7ccе_;.GϮ"mPJqX+&clJX,pHnXp,2p;+ڿ>~+m@RCa?LBg^xCw\ߠ.HOjDZ*@s" :!KEJO֐OIFII`m-(3 ONqo_XΘ!CB( Y/Jȴf ੄ϝO'r@ L#8f=ᤔe 3I)41+ 4McS+G-ؘ3)v&@[/o`K8twK\=3mC4 v'~ ]j\]řY25RpwȮ,f[)*ƒ q7Q+Rx:@ɷbb}Ke|m71u` AYH{fzeSiZ~W?vKhIe/[N fw5A/rN l&rۛa߻6MߘVDQ^uSx",j#^uZ%I`0=88u0c) "V#/$hYK# ̱?~`QWJљ ;vCЁ3_K.ggPj,J\Rwx, =QXPh(:2 yZg JP}?Q)una5.=Fw9ʣW֧3n(1uwWWF]D= 2S[`25 0C"d IwT2ytzt/45!26 e@~.sI<[i]ޤI6o&%&⽦vmmJ#AE-n[#Plcz{1 =l$큵OS؈s?\#Z79nJ JN^aV1.R: _xOL01sbjQsbPEj';\b@:~%^ ˙ 4> hiGOO#y޲99߱&4xkfm A/e_.-:BFAq?bvP4!g ½UKxr^fCWַLHX/>慯Wy@ tqޞf$1J8,xcɷ9YHG*>NWq!Lj[\pLƦ_{ur"Nqg B (K"ѵ%.NгU7#)LYA^יmDKJnmˏ8 sTv`;EzۡT~WN8x,Fk{uQOsUlHAM"'3P6|Bpr2]Ie:[ߞ!xYβy{MioIJِ'pP ʉBFeEum/^>P1%feL@8T;UQv`š6 CHpʙNXk-42A-t5i)UMB/cq>Eqme3ơU!b}`*,qv&%cx&I\̏7x'LIbsy$At.)93k*\b=nKM%xTD>*j5# "c$M5X4ȼn*]7)uMo=U.{nAUGqR+dURQrlq~o+2 AT1DMh]wWjIQ2lP’I*(l2{$õWxn-#y}5mx S5PS|Wd&gL4cyZh&$KxS͂?*Z))ZXoCnŨB8#POс4ͲFݻmBxƋZעgU7N,cU ꓿JS|VJhBR ]e8[OU5}潕L{SOM05 ㆻ2OO&|g&xY)45 ыee?I !{c{NHߒӥU2͵X xt^C̘%,Ye_,e[1@󶊋E`9s{PKC1cF'nuvola/64x64/mimetypes/ooo_draw_tpl.pngUT `A6PQux W 8b~mT%?SeKR [f?b3҅.oK 1颈͆Dx+%)EyQF*ysy}9ڻ}BRO JV+(m lQO't;v4D(@cE3Cc ebB@+c;7~,HQL*`Tb/z{{okMf<ι*Z>ܚb67keLU%*VWWCXٹm<-/h5(yy~f-gf7} = 5UV~Y 鼰BFur:cb‘WoPq8lWێh=he-9`,14NS`i7tuTe>q`l&Wv.3W/gM$}.4jm9gϞVWWe:q+!쬪9_$3e0TGϥ敧h.ށgwݝ\B2kCЕW)H4`HxXpאڒӄƇ=== jIL4>]2BC'O4Z@M7n! i.9^(.' _e;EG7΍A>׊3!ӷ] U2?"Rf^aVq2dɩ=dqGL^5V2ՏA[Eȓ^F6omQʨeL ܺehz`o,Lm =TՉ^ 5r;^mH&/o.sWA:H iʃ𬌼NF򘓗%[_P]z጗:RPxWJЂ *g6gf@&-”1BH$kp:,\{M..ڢ;^Bt]6%z؈W?k p!wC K?~R( Q7`>Tl *G c*GOT3.K{e_)=o/N6E7PӸ.7 \s Hh uzD5톺ma?ɃW5(W ) L޳i䊵 5iuT5f>lZwyaߏ)쬽0*mACB|{r6݌IۏZ3mxuuϟQ}_RQZT^W Lmxx8=50(Y_aޭFfvFg~N ?Vok9&Vi"V|ݻk+*ͩKc5j\JZΟ^_CY ׫+x?_sm}1xS6Ʀq>a2a_Fŧ#QRȸ̀rLkl206We3u|?UH^٪Od0у޼_ 2/6l}ye%3/90P{qAKOE"+zXrRd9-Us)WzhX/r܀Ldo4=|WeЬʭ#yf7Vu1x7 4MA|+ x} 8Gy?[2t{: YV]TשUT_rNa[>JѾ@~xFnexP專C hρGZW~&%gE:zx ٞck$_E MN$6 $Ǟeb8]gVM g-3yn#Ba| K聟+3fRA CHP@HVvj컡9F°|8*x@C EH^J^ɧQF&4EIul6mIP`uhV788H(=.O[IZRTjf4AE3*j 4ggVVcSxj^{RIwjw{ ma@}3_g(;iR-څkp.g( OϨ =H8^X,4x'υSf9MܚBC{mR/<^ e !OvB9̋h2v<9͜PNQ\x0RZ22}lml /B7{u-O QiU`i-_fᩀz7avr-9sI'NA]F|L C]wV%ꈖQxpKaI үUU> sG&C)+ p6k%Kq 琇ߞUOXn0ez0D9񝒌.6N⢈j{GXo;"gwKPBo$ﯤ El;vE$v%ǹ<G ů{e+,x}( #hWTԟ-rL-Cp|qxQЙ24{};STT1]'rw$2 Zm__nj**wL6X{[4VFs5D>tAhpob6 sUC<Nj$ cNqh~NupWUkxspESކ%Bؘ$d#)) ]-$GUR͊b=ݼ!E $c)(NtkNQ)Iv׌כJ _HFmEׅs_M* ajJZ]u~EnO;:ua=!)iqhz(пE"W ϭ[ɞ&?ԏ! *0) eD%n.Yͤe0ްQg_;Ql:q _ZNT=G=cǩ!s1b'CcteMNEN  ?i$4Dեg CA'N1C͎%ƌ m=$B ik~ 3p;5Uf5306[¥æ"QLQɗPI o{cm_DΊ_.~J`-}8ZH&6|UQpG͈xZْ@f҃5!Ew-ഫRZDikVajNda0ʈ L,.jS\ KiOA΋WshZfrD*/Ԍ^8NxSg D1aje(,BΘ-A ꤬LYΰVl4&YG& Qê.]nyӔE('^pN[oxV.<ꈒ1@n7۵D&q]R))ꩌ#nF"w~9J>ցTl 6Җ9eW%R6/V=,Bw .aR5* !4ϹEyǐӪ-]"qw;9-%x(gVJGfPv"4^#_Wtʍ:3`*0:@. bOG~<~nRniszxOƓ٘t u(m ,5Ξ# D\#8,7j˶uhXkrI*+aCh")KLH8BzN>3εYDi]]ĜwMwoc ur?7,[TLn 7F$P) ?-ĎZōUxpiuaY hi? bkoGt O̝xRg]>\խF;R_/_0{ z ؁/\M3cB6m=urITHL^YOV()Ӏ)6]}@Sjc&[h,OL&v UWٛђo-:&̂f[fٷ`rC˓ 4˼UWwkyENFBaf ]8 kL:*Mn| {?q7Efpn>֠T!{ՇnKRC -[ҲW- *N_pR@YFϲpۻv=PKt91^J&nuvola/64x64/mimetypes/ooo_impress.pngUT gUA7PQux %W{<7\҆m1 uJ\r،OTOIR>RKBBkD. Cs~qy8^y^a) E )npQ_~:zH4q^Xh=gu=2yߘ@s t 6tG[G Ъ@ p j< 7>j2]3Xi\Kd!&vn-83Go\.IK444ג6Gȗ%wV@ʦiu rssk_}; 8n~A03=LAR***rrrHik23RR HCE Xh&8[ ӂnO.-cVQl,S2:&ysEUS5DIT-N Ig8x<^o&CeVIW~gTq0U5W?>/uAd_~qZ8 hUx"Faaa nsxE=.AC3H+G) n$7榌N:4_`u4F-Q[;W\~|{aӂi{Y0`zōɍ:?^z5?ŅAH. 1zFSTݯCЋc''1=3fna9y*3[0eh_vTBA/; C ) -}3d{S'T>B?o냳b?1)bHjvyE;iFRs);NUzѮ|~z^~،0Q:uAw޺wu羶tܪD{Ě)qYέeۓWncJ 崬Vь˴v̇ %7MGTBc7?I QЪBuzP-XftCe U! B_ VIi]J4Ԍ[Ĕnq^7.:ÃL cnk9̜; .nS%a:,?I78l[ ŕߓUN$`ݝȞ@Z/1\'!gYE;=Qp +Got ^:їTdU'Kw&7;E)z[鮕!HAA/u>5ߓJBϊdd4).epԤ{?ť.JG'X8Dj}> [Vs?o*Vfyʙ+3(궞M BgggdHx^!gPHO<ڜ5<ـX1ë6Iu q6$9$Xϯصu,P8s`59,N].qLt0<)r K*D%Rart<)PU3uQ]nW!=\]DZ%@pIDvC;)*`6ך8v{EOzu(x9Yz;YYgg"v : MѦ֧3YKcnwF O#xӃW_Z 42!tXz>睜*e?5d{_hCisw dzg{{D9#)Vsy>7lYhȸ# "#"ͽ}+_X&wN?޺:+X=bUx0b/)/qZ[tpF:\Tzі@j@3ˎgs0'S  N>)TD? qYO8hc5K{CF?_&"ۺ0qܚ؁+Ġ3$Y O: FIZ܄ˊmDQFgfS q0^v<&f nJG/Zƾj$Nu5]l\-RH(y50?<I=iF Wb zz\ķ k4Vf />vF,I c}O:$Q0CvwNgS0U42Y#"TG"a|1;>rgsc t;r8ɴLטV!XW"rL`Tb"upj>ޝ`I8ğ42r<k[Q_7>јܜMe{8JJ*WreyB'3Ice\;XyodZ$xo`d BqQc[>$/a5nKts-b G\B!>FĘj+1cΧAߐ/Dod:4aI;^N+!⯉!Oc_@ZZA |$ Y8͸AՎ3!ȵ5Kay܆~Yi2Wߕ5{WKx5=f02)T` D9Iw/(&zo.zgc4 yA%[Oh%$z`&P藑$5xءQ8߸U-c6Ě7VgsC/$Nt: 7AZĵEߢS@Q4ZH+OWrȇp!ٙH.[pk{MSx/p'^I3T="2'AO# 8'q{E;4*7@.wouKb~u: pvu;!OC't=> CUR4a$9EGBMJ뇄ȇ.i/R5@UN@ GE,2w>.TjJ0VMM #-wP֖[ 9”JF5:!2Y(`pRA@+f ji5SݏȀRNeH{R}24ߴT8(s=Ʌfm|Ў˾? o_:eւZ9%jx\qȺbztmy6$68Xviʇ 0LV"G?(ؒ(d̊Y[te o)rT1113È!j0t]Ifcc-/'jp8/"Ҩ۔NzbF?G8d, >~=}_MZ vگR>hx%Ѳ5`rvyлOiJž7l=nn'/ya:u3QL,KаIyD4T p#ϣ@9P}J^NZ87F#4y}wc9y=JG I喥7m<)-J">]&^Ub"+n?@@@ ` {بyM`iBF7 (R\?UYR(ְhv6t`h(t|,IBʔMH@de+Rέ RxcWgqAX@pp%'mT~GIBqKsf}EKsXս^Yo0(nQekG6k99< 2z\Qb,/݃;04OeLB.`ښV_[1&Uk&EK~XJMew{:wJʡ9Yҵ8v!im81mB]mwI6-pʁ,fG4(mE:::J51nc6d9.Ş;o~]+,ft]#jǪd軂f2zRdDP9!ݚ>~l A L+9Q8*O'g2NJ\LbE3#d GeL\fM13GHRaPtY\0Mq}RO i]+{F"I,89mm->DLtt$QAt b`>9&a`M Q֜"F>ĖI_~eX?95O4R*\c _k.KȂ.NJMK^]I[oLE]մ`rri/: bnBA~+ M50]ځ"^k$8ҧ\aI"ҷR ^iвmPV MMQRw! Њ&g#ɁMҘ+C'Guڡ( ͝RW_KF& ){ 1QAlpZ5ʻ){[IBMR |cmRWL|\73?q@V}pZ.pCL#rփpʁ4S˜$r!%{' ǁIuc-@BܗMu^t) h@zv핟Qt=P'p5"rG^{Fl7!uψ]2b߲҅LKry_ʒ,*,<s(Wն]ܱ |c6NG@+:|-|\¤!hM@'VLj\km#7sFdbQ{WVC,P0.}1%0oM:1y$/tJ G՞B²>N*}mrpY[3h܂,5cvw71'oj94Ǡf3̍'#˫/C/ɶKjS5]zF\jeEw2{O&:ϐz}6gɥM2֞q~N~hPLkl f#-#X;Z\!.<-Lm$ԮrkĩHj ,E,4.Х¡`Cz >_ې{Ľ$]`Zn!v_*>27 ψdI9OI I}&Mo`zdDZc^9vuX$Ű8RdQxM}6yNb[2:H*V2:fmExJnL8LθLzO'KJs1#'^qy>$t@`hsz 5F:v3/]>n$6€* WJHaȞBɽlYX`k<+>Y*):ޮ ^5΂!ΚlɃ"/cy&&Pp݆ 4EBDdc@W5W{V6/.קW Ț0 ax{"Tуq]š;ָE=Uk\Yf :LWA!vIhS%˧28)6V&x O9i7w4w\PKC1#:$nuvola/64x64/mimetypes/ooo_setup.pngUT `A4PQux X{<~wBlsW)V-t[BJe!$6\˒bz*en*Q\2ouy?>uys2;᧜; PNT83(SA?uha'BY?,?3LL+V3| |P}Ҋ$F 6^SQVv rPʖNH bl׷ ԝ;n-S0 Sڔˇ/OH[*̖C!0O ܶm[-ⰖYzb?t3 L+J (jkkf}+1UETΦ$[}|wnq.ij=c)*@]p+O͘\޵om3jlh?,4iPTR%)ub/x_֐Tna4>' X %wU c:d_:s{aB}d Xqcǩ{4v/8 {`x\atq>oj VH*73gFK!ݝƮ@3Z@@P8EDXXҝrrAH:<Q:nqL&Q^xq#<ĉ bիv0$ eJxoN}n~y?3jN hK=kd=j,`ãmNۍ/1BCV]Q(? j8r#=$ТԐMmZcOUzڕ/FZ8= т_?fqi)ZxS RßRUM٢'P }T @I~*%w/ .Y\A9xd y޺}is5vc{{^67= ^>逼n0oVV DחKwӵjP!1=C+HD7}A1y#if%ܻǏ<9.;}ll,lh`J -͵jku-bMiHщo"{afTnʎB򝬿p,PX}*(lbkuKQ"̽ |:ڌ=c| gA.';"'n IdW)*pDVc#E.üw2^y{z~@ᡟ k'A٢&sOQ-:GI;cQj&EI8[[-b+[S8LY -9WZN6 ˶3%hc̖VRR֪}5VeXpP!y™+SuOw d]Iޭ$;"Y@D ر("L$S1ci phnF$" Mo=#gn<$5|sM~}yJ*kҚ#kn/"CuEbջ '"4@Z.G}@tT5dֹz %(4 ,K!e3իFLō4#n@Zܽm禶MMiLRM+37 uo\CO^Ca2Z"9RlBGIOit_pOרSc_tTfPGGݽí;c,Sv۠{(2s5ϼ"UzTXxz^AA/5zȻv"A!9ymv5u&S2~[h|kYƿF&X&Jf(J4cG!2'ڨ'uYf6vԾ7^)I+*<~ӦtCV?&:K U!cҞpGҨ -AY v>VP*ʇW@eJSm=bn}3![hedꢠLޙ'FǎfbcX 0u˶W#ZjjQƛGͪ&Hom(5?˩-* EAb(r!y;bg\dLWDQHzIVOv :f|bu1] fL[=p q>ACZ0)Z2D/BHc'S?S9URUL`_]rXS..?Ch@od8͠s)xi|v$QAw~h @}10'sWr%, Cq MmGDx x*nŌ D?jo^ߎLG,RĈ@6m$7XK ؓC&ӒA_5p.gS@{,*ڼD*wy oN%ZQ8˛PpJ>,c&q'ʯ1WdhИP%^ W;T&c&'U=+1A}u;/O D5ȃ楑'5-ܫFj!w ]OVڀDaA,q`$?Rf_4k'崲 *B+RlUkh)yV "eKVmTHf"Q3d_c>~ݢR_ԓ`8ڴĢYJ<$&pr>9򌑿cY_{ mT,̭XiIW[=MQ I22iehV'Ut.T{ŭBP2N tryJOfҏؚvtJLnC,ig6LSx5Yxcrq;tډt%)vkŅ!#cU5'`qGK]v2c}D>޿^_iVL.0?N4oE`hQ:L9 ,cs-PJ*{ϩ~9> =5c5DNKʈ#7I upk՝a5o9M NO&b黖$iEhr`8*:4Iw 3{lШ 4CxX4rN&# -/d86t"LQe@ثdVscKxeTʋdㇸ|BS]9`$\͹"Ѕ"C 17NhvޙXݻMh(Zuxu.LBN=OTv`ysTڰzꌉF-9ĊB }#Ȥ'v!zv}dI ק 0gx#{3|W n W,O9l%+%w-/<\łR1 >#-o6B(gCn?Wda.3vi =P{X%aw+a7><ݜ*,/ʚ=~#߷1#zqAȣaӬo[[Q6c΄j/^K7 R/fI.>wO#2cVʷR*9~Xࡠ!7'rq@:Q475叓ԈXkCQbzfce|EOF RRfQI9-{OZ+*.rZ>Ya;?)2g_ 8_v]jARѐVbZYmI( &n|qc#W`:KH/D= ƒLulw}ئ^^,X}nӂ@+_CH7go ]Y@O8z MRߟb.ekڲE(ɉADӹV@ %!(￀O" ){կoW'8T˒!nr: w6&X}\ׯPxiB2>V`ez>tJ~W(=`?N4 C:F:*,1ˈ-@.BtC]7uD6_( T}9yC޻bg*sG0[s}7FPKC1W03%nuvola/64x64/mimetypes/ooo_writer.pngUT `A7PQux W 8~;>4ePv !].c,.)!c+EQJ" n[1cW~r[--[ ?sJ?CLU=;45:Ჱ $\]^^[#SDd'\zI˫.lpw7|tbN9HL%!x2۰uw}Ti9I̩)f VpJE?R>9:Cm|XGհĤF6*iQi,ꯠ X-@1J*Ogl n'芧)fKݲ -fj\^JKX zff([S:Ncd(1[}aP52::}Ӣiyo֓ @/(1yZzCfWU%13ra?*''ɶ_,rݓXio*~X^va' {3aո39nF..zaRUI*2d~a$[x[p4B. _$%UWohdOHμ{L5 @ ̋".L<[YYqffM~,3hB .1 L=j;Ohp=P+_i C7ʋΕgZݺ %%hw{ulP-0wI8 ŏ-#2LOwrAr`{fazzNrJPm?b9hُ3=~bTɾhט o'HñW)į{.Zs5kC#*!sܟ5Yx-d%%@ 8 eh$r &jǗ7 }YR߇2 !Z( ▸ḿ>~rqٜ5Qn!Xl3 e[0fI@V{K'}K"=]qlu5>"8Rw1 7>|j;b; SA,z `+gwKs8,qNzXjz ā^~kH7YY)-L =|hc!teQ,83 ` qາ9/6μu¹)aL8RL\1xׄtiL?&Y MK*=R_,-YUl*J7w:},߶7x5m=(7=b׎Hm {Gb OZlHZZO@H.ѤEdʓ:3V{gWs1P3D#̿KZPCm`YAϵ1![$!~6nC+>45tr9?m\]ZBJuGǣcI DGu߳imW,嫲a2^7=G"&[ݳs.y5{dn(> 3?* _WὯeBrF!ԶFv8ajԵ[EΤCF]`LԊ=eU8,S1Hv6B)pfMB(9q^bRws"n+Mƒa]1<7h97؁[-N҂[y]9YB<<#žbGݞz5 .]`r>~ox} 8,EJzuTyQhBb )_泚1.v>nն`b'Hy:K2x>fEoM {$?Fc@Eպ>98g ' x5 6ύ be  P rpjDOCuWdwkۘLAWMG="H-o 쾠ZsqM# 0yɚ)}yZȠ4˖5֭CVy|=dj 7:G+*H7N3bW?z3{7ΐ:X;KNf-Fx+֫C9tHa2yG\ -[Z[8 )|-v_ y^&n)} 4'K0aJYXAF]=~9X[g@d< #7sQA܃}Ek » [Nj̲,De &̸nbA:x2 CV~JĹrPhb ɱH;XE-gtvn ME'x`ÑP vıo`Ly=?@;i{` C \[Ժpieq[yoH.Y{zÊ6S3Ae=maNJ‚dSY4MjO˔A$tf !)ZutjSr tt?JerTNޛ%ԉ׽].{%& 'pޯ\$:qQ-*&sZkhJKMPv[!ȋ7x4搥l*fIxX &^emֺ[5 Q(ZW}#sEP R)fCae]¹5>1Fp첃ecCl_imgbJ)pX (9{V{BxZWe܁ sV!m:mlyN/npvc'IpD?ADice#VPME펓.dwWWҠ[i 2?[#xhVq55#jx'1Y>}s;A9}A|.2UtP^z4P\~|]w糳r<*ͤdSVcWs9,vO  _H^f:YpkQГ"fhU@c!\<%nߑM`t|saMa7űuIfHLI]_!6E*SӧT/Jf|/\_A-2@'8g'D5@Z| O'K>,9uDy$q}ذQ{sSWR1d8OmZ[?+뚭>IRf5Z{{fu԰ Îu۶Sz~ 7=1g8% O,l`oK%Hvxp=ҝ-m_hz@hh95Dj3ˌ-d imD5T"u6?LK‰ ).}j+i?$={3T8e~Ovr01][G?HBzfDNh6>LZ& (۞t\ޚϿ(n)줐A 7/E -;2?kUݷ9PSyly- *#=-ipyDB9(U,Y|^p/up WXLG=D"wBԉ+FT\ÜhR~0~Bu*AzAH[ALc!nȴ/Ò&[qM)&4lp dmE\ k:,:mzi]Roia X9N _R\gtC(]`gSO NQu#; 'քX'RX\|l[zѭjZ1wrEԣ?#Ϗu[?hgюC4Ao|w`n12g7>B]HZ!wRТ }A@[Q%w>WͅӚ߭,` ` ܄Ж&1I JcbɌd#.*A:`2mi3 xD¬)-xyt?PKC1EG~)nuvola/64x64/mimetypes/ooo_writer_tpl.pngUT `A4PQux W 4~gcAKY3R63FH !i-{y+-f"ITa?<=y=>~|9=8"זHYq$㖁f3\"]ᘣ߱};08C( :ĉ Y;XlZHd8MOOOicf-L:މVjL@S*}7(rvK$vvvZvD=vvjl*!IKX_YX_63qu+Ia>M.+;҆W`ahX+NMMnFV~vǃ\2TYtz%#"JdxXdMԷ)R--7:&mv89;g$NX~ޫ.j7eq15i/^?,X"mnntjgCn|41 o;qtg g'Ķ^ qGݞDi^5СT2vIA"M⊫GQwx=G.\v0볲&`鳇-ǞK2LkP;'AXYyR'm2uwZ$ ;@:'"[͐7voJiT=Q1:!{9]Ru%{df't|xA2V5_3X6 |zJHe4mffg C РTl𩥯ONΑ?V~3nP( pQhJ"b7UF n *0S\x!p,>,%~#tcfM/sHb+ꝴm|#$TZr,aæ5\54AqGFBJ;T3"5oob+S gou="#ë%1=N7d!sb16G-}+1$Yfl!Iٝb$ g )>WYPYtiik rI XՆgx2e^xӒdkd0kuB$UUU"ʉҡH ]nU|lze:RW$ݙ}l>*D& Q/|'&&,}]]v.r")y<@AʢчOjOTBJ֢PiwEQ쪢MYp ԤC'Q=ʝ-d3lCLd丐Ee:ξ-sς\ʬsY{3pK[wQJ4UOTw F0O4s~X[Ht)ƪ4qo KѻS;ʣ< JUDMO_}qIFDV<$9ri˪**QJR~S$I*u_"|Eh1J4ÇE%%7Ӆѐ*Io>N8Lẩ3J ߓڪ3t8ⵌۓ&A<0ȓNU&~GÓn>@z_k[hۿ՛5JƲywX>ǸhU9 {tZQ7]NQOe14ZeeJ%Çf<ΆC{`8Zmi=k.F~ȼfങ"TN_iHQ 7d?-=E&Ȳ~<-j! tӔryA=D,DXgv 鈐ݝ-ES4o.0(NXx x5B̾يb%) M«I:l?Z Rqc/9>VՐY?_!$^~bі4.;rŨD8r`Ry\FI9غz ԋ` IBW&Y kJ D)N,*o%":7Z[nb Ǹ+ ƫQq$Z?{NdhTȒ3澱 gɷΎ/bW]z%G`'օ7%XYP$?RJpQS 0JMȳ%3Ssrٱ "\_x$[7/gkS sx 3t@,WZ3YRl1o˾KBJM }!۝^#ɣMBU+H8=P$%S=uޭ @]Xl`();5׃4)/z%'^AbIR:%wgxL_Y 3Bڲw|UU(l<|jeM”;'@X"-8'eQ#=/7'ON+bỷnXXGXvA mwf?ێqh| _}w'O2^[H*Й $3, }>Sb#gwwSWl)onx\|G)DS&$Wa6j|xj~Z~Hre!Ϲ*i<4fc)-M=P9\b #8_AjXhtjfy &hJ$l+ Pn'.ę3gYyDT~rMK!dՈ9'hm'm\~6n. OB5;eYc m|y$# 5%ekXbX(Tĝ9Vfڲ|wBpNO DiΤ(hCLґܰnՠt}Fnhqc2\~@gT5SCzzuj 'e1%1PǢc,<43fYB4rCxb_<+˥/c}íǬ:!uF`EB#-A/8&sKwq[bJ#ȾҜ ^mjJϦ mή(>0nϗ @c%hN%v T idT As,ID(N!0BpjU$ܸPqz?grN5uꇢ|}`&68F<'a%7\OQv>q}E*oӸ<:hݢ53̱ړ1MU4ME@!ǖk\K셻J~HV`Z=ʮp&V}S YՐmdq[K}&tDA$Ôy*4$7W"Sׂ@Xl4VOb;= }4;=Fh[8;dGr܀ʝ7D$E&|sEK(,HnHLD}(ZwٷdHS`xr2RjN9|S/3lk"ό_+ E Y2 ŶAyD苣vA?F@H)>⒁׮o#J]Fn'wL2s =zVdBLQ.4'V̗ņUr➟]ɇF,D(:Ǽڿ8wv lP[9KPE&fh-ZJbV VFn,8NGm];M^\{ W@##h#4,=5D@BP*/KS6+Y_WU DHI %K0;񓃪.jD3('#Wa-[:J#WPjwm YІxCy0a{\sv /j4ޏf\ϰB|JRr6l?fNN.Xqxv-镓ΆVQWEM!Ҡ/L'3 EC~Y.{f__gvTE-!` coLҴ䘥0:PKFH6%'Rc_6ىR;:6}}# a¤eM+= ƹ'^El؞RkUUYo',eq^), AHw>UP_qq_76.3@xT`.y*F +|dmd-_JL#]o9N=cTU<Ҝݽj{,s)hcGLI+n2N Tl:%Ol_䟂x~=WOń>,edd]zߤdӻ"y*pA tk䎒嗦=Cekpm'StCp%h-;Crn{}^~|ݲMHZɜ<:l hJ#P p 6JE+c1:رPKC1xL  nuvola/64x64/mimetypes/patch.pngUT `A6PQux %X 8ްk-R,+lBGW.I%H*EmX51IsJG(#Yo}]9BUiIhts6s9#;jhÁ'_ sA@@߀ȧ`Ύ~%lme5P*^x1~TuQcWwxjAVoZ}ZZ842SgMM|؄dH2LgNJfr!EOBy 8yJy>O..h#Dc㲥db/w,^N|{[PT->_iQح]kYYY]]ta[;tX]Ź)gWW]Q&~ȹ'J 叀 _ aI*g \LyO%$Y{nC-9٦{r,]'*$V/o{7 21Sn2^ aGsS,3ӱՆM|G5ϼP|! F5Tڰ3kҨ0g{"ޡ˻ -Ή/iӧw']3"TB,@4fx1Y/Rǯ7!sdCL !~~Ұ&G9ÝHZ}h;FiMH ? p;[-v6UOI Ź##2r6(aʺ[`锕`ʬ}G%pִ4jOn_}\c6 r٬}E:a ZPvP,\f}Dlh"b;FU&y7hAu37c#] >hFNж t1|Xք 6Q0tn}d/T@J& /i*ugBz~cbVpTͺdshr>-.BU]j+k*0aÛQr/&W/H ,[|CPAX˴*ZkeQ,GJ˫i6[7 2gƍ,RN}p%m?彽dlɖ-HdxSLNc-߶H( -CHlvu48338T1ra\Mȣm`"A~_}пgM̷}A1PJɣKۥq;/c}YT>C%a;Ikkk{m4㊒@w`%pDOx^fbsEIA{l.k?\0k!ԶDtuj鴐JE.6]ж9BF~1&w Œ$]"HW9JmCv ?<=R-~# «.'¦t"Doݯ{)n̪`MJJ#\@wp9p/:h:τ,Opo~({/ks٪n(׳ 76K8Tz-yf7?HfjiwGȽ2ũV{9Y:?j&Uy'U"PEg u>hy>yrЮ3&X4i P"sNiV:ȃ lE~zBV O[sU o)Rlz"\*RYQ._/ BPvaH$d-}2xdHO!\ -~d[W sZN~G;z Q! Jt#|_d5xN+y|x1G~}2 UZZ6gm6%A)q4b'<w. (_!"`yk>% 6Io]K|Xsqt>fO97ԕ8s٪E⨁F3\GJJ^c7NVKdԓү 7usʝ1rLݸZZ׆dkGkֺ2 A6ȴK;}ClC(L夑};kT ^A [(>>q'HfTaM=%gm$lϻ=LViMh☽6yH't]ΫIalѯa`]OҤrncх=@M%`/:Od&}IkI!thH|5OP6ͮ3-J#qG#f-ϓ"*Z!Wp0oB[}|v (L"I5(|4cf'@ۜ5!zywA+RhKU=(7lh1nr//E:<} sZFH5$T3+78n-ɍ5>o[Q*9)?+"-uxߐpA5tG:A uع^$hefrn9 '>! paT6]ƞDqҀ2a) FOpd[П5b#UEbN?uVEж|rb'9=f-xH5 *W}&I=pNA@IOExǣ /zz@&tC$kOJ@Dŷય֬b;~R:̌<)Bww JlO =%ݽW{K۪8=5eԿf"~孓[s mmILLD5pϟ/UWrL9C|th/6ޮ& B6L3cJT XP|_O&6V&ayy|%:j` 9{Xt N|0uHwR''{UZpd.<\GIH 2+Z if`d2ʵX^X趦W@iVc8T,τn芏S\f}.>`f{ xHUp|R真bgz,zر`Գ(.Ѣc[ZtпTB2@{='?ț ncxgg~F&̫*2z]Vf~8&\E׻#̌. B/;ze7Z-OgyxU VDޜ [Oc*^sO)mҗ :#g'bc 'zأuJ6F¨{k cF|xUh4A륞;,~7_3CQ7wWsqYy#k=F"rem~{.fWwi&i``Ra/'n#˔v5wb5A+BF33D3'FG̓o!]kGxW30 @ j"[6ce2zaӁ8`ӌݼGxhT|8ZWTg6DS-M }e_~x:-Z鿟K*hm@ S *Nǃ)i>fnzBI/= >x쮖2󦨑 LΓ7O)k3K $T Vdka\EF{G~D@/;TiˆhPKC1ERnuvola/64x64/mimetypes/pdf.pngUT `A4PQux 5W 8۞eYVf?v#IKET:(e-˩t(Dvl: z;%N*a}␲^\y~=<^.$eZ\wlۃS¯/jP`~q{roxӁ'cp8Os= >ȷmgx -`M OjmcXvuV˨̌@OE߇G"U-h0-[&x5o`qcsUD8 dHQC+~l\q.d uJPMtQ|P0acSDv\IP#} ܹwShgGHߏܺq8 - lKM $k*g']ܴ5gsd=D57힠 ̟ jg1x'1ar ՍXRb!- Om'Y'nU@!uoaCF8F~էk\UM,`?OcftOҧ,!9穅^kYu{[B:AJxCb1*;}R@: 4a=% y{ pMIq-AMVY^lږMҁبcZ稻w,RvЄP]ﭦWP(Y8οBUȩ ;< S؉n$APașUI}kR#Gn`=X+u2:[(#NRcuk40P.3onTh`)$24) @#$n*.p>9+yi4C{eS3vô(jY5]!#D3l,ĬgU0}$7{'v"ӄY {G^D& gOY~It˹{7%BHWui@ܘS!f&0(]˝Vr<؂6R&{ NC= AK1.Mh1%N鍂O$Q Q[\e>; 6 ƳQ=uKzhOKRZ0"UY,0ӅN*%8$Ų#LI5!.Q rcS{^O' 9dY#]_{Xw )}&5 ;ٟVʏQȯ6⏒^JagaьM8$WF ֡n@8|o ^\cUTKdڈ .r\퇜p=Z3Uސ4 1Q9:VNFh*(}@y $CclSo.N嘋.]fҫ'O_NƠo^@kK}dݣRTzyyD:|rb`L\+1bC|hcꜪpsOtl~*p`*KӱZ~ԃSr)2jf'.>KZ&`}cQ=`i 2e.萉4'ʡkٜɯy$%yv~*ˉ6mTѫp@;8݁ih?+EngaR6?+J{PTz QbRS)SHH+ОUϩo{1:@/eūٕrKyetd."gB!PoD(>,49ʭ/]oV'+سMD]T\ɠ NN5N3/x TNsSPz[SZZG<2Jضe7+|=Dl 9,yL.aVFq/}. qu_`fDdgzY2d :otXb#z{)`yu],1t/:#p˵,xnhPp w)+MCNP?(1IfDf|vǓwD*ylE-0 Usſg9Rmzx%>! Bkp'slh[>"wLcxˊ˕JCJ%*͹/>x+}V eIP|"͹@樕AwNm;W5 c[%c窪eY>)ź 6lVM* `Iz/TMZ#]PEsW >ț+F0Fj1ÜyMm{/%ehwQ:L*t|,\[U5ʻ]Q7Q#_Ch3J%$GOGg8%0-uɚ@:Pٹ4rD Z}$D\zxuRʄUgd:h ]xN a@/ JWN"& ­#vϙ2LiPp̃?$@AҒܘsIJSߜD3yG;n ~}ƟtӼ=`-3!+8&&fJKF^~`Dz#]ˢfCX#^ZK+!O J?\ =D'_AFLr\1MUDND2d#aTpb>]PjY )@ye`qiڣMOVT9 v>5zzQ%Xi0`}VYr5ܡ4n+bcNVAUy5?Yi~wF 7%2 whB~ƒ"Vx[kZ/{D\b]7."bDfg?VU`FM(x uM',DX_xlmQvh * mcdԒukif4kjL+lldXВUBקIwwD R8{°wieC?a3\eyhUמ.j.@s)kgC.I_־Bw7z嚭>P ˏsO[~lV;뻥c/M6ژcAR10ASʨm8 mߢLQ,C&0QNž_p7PKC1]R:6j%nuvola/64x64/mimetypes/postscript.pngUT `A7PQux WgXiI\Z.bJT@@EЂ"R$("+BAXAQL^ 7癹{9Y-}3}~+Dž *UNSCA:p"GEGm wFQ翁#Uh:~`# H8v3 H$…`xR"~&HM G?^. \<<8j9kAP覢uB%0;q(ђC߮{Ia4EE*L_rAxDIෛL3nnI G| >4-FfH}nfPBֈ h"S%@ @0 n # d)[KЋ"6]3pj56(ka1F1&f'UGјtxO2@ '.%|>?ynݪi]IUi0㚳μC 6>w\kN}L&v;!Ю.znvfBBvC'?B$i eT}4,09᷀zj=hQq Pzϟg! ;J( UsoQ8 ]R'q+MVf~nt2">M8uWG7 ^{*-pA8D. Fq@gAbȕ[3 k;jg<x=LAr\NKxa;ȼGiDGDMCEcϐ[*TJY]дfLD$ώ!mV2L [ l!klwQnnŋ"X+kƓFuH6s~$;nR͝lEd#fIM >iC!ĥbU+M(FŢӧq"k_u~1K`](\ꇞR!+Sqa*qNsυD U F\ߑdM)jCW<4O_?Oݻ/]Ӂ;p,ytNa&=*o j[?,pkyWTHdf3:ZvXV.:_:owD[oci_.R=# }}g2r?!LNG}" iz^`C_wDTB y[Ϫa8%9 jϳ]3߉c?|*Z ,Gv|~p_af;,RtdcO'?D-Vt1$v,ĺXg"vvxbob:8B1ORҕjlv$ gZ"k;i`J竤H[KI-\7ȸY겙tʂF=&N͞]H Y!BR⢨&+t2ᆜ0p?L6'OڴBMB*h p%0UU9RU'tc:uc]8庪\b4=P C'd"jǎ0JTQa<Tq`݊ŧHLU`}\^ht;[-֭+C-. f m˛ȼ<2l8u%%`-RH6!,?)nůdž51[ 0>~0Wj~wx*;ZrO+.nsşH!T-8m[vO"p?a38H(̾cmC惜dxE Aƍ̸1--ɭ`KErD-ZX`"V%=rfM[b/a7vxEYXĪm6nea9 dbrEBsۑ7G ygX'Ae^qe 08艙%c[dÊYaap!{:bqZZry9M\p#:_Q*F3ENHHF7[%M=͑%+W[me_ݦh#Pb` 4}t$FkW/ĜUVbTнJ|L!y>ٓsŪCy>Fk+| '#}c_^#1ʸuu4Oۍ_??Tu{|=)2&2]’kmdعez=h@/8, )ǰ 'rlea^ܡ[Og=G9㋐~K}zb 7oι_h11m@yne0!Q% >.>o_~ɱ pb^4+rr (xE,/U<|%D65bSp1c99l%;Cs!Ѽ^]APePw)̃ ȯٲs zWo Ka {oPK?PKC16$nuvola/64x64/mimetypes/quicktime.pngUT `A5PQux X 8] (3+עRnt:Nf׽)NM%DX%tWZ]tq'V-<3|f~}gnڠD-o-$nՀg[kN|U=#qq[hv(g+*;[QڪKq;+n,JKOJzyK@_36@ 9Qd.33Bh,Xl蜩Imzt+v%K=1 m9ʧt8ʜΐHpeP$:]R AC1} X4?9Ovr*$E ?܉;a9 A'շV`c2B*`uC#!UrL% ]H)P0?ڊ_h/ Bj~r.Fmc?&XѰtjX;P!+z2|E'yN!B-ǹ~ d"}eМbKn%k~t n2^,6%}>o\ d+ƒ?wr#ӣ4 HYԾF˷>vuo_*M㐪DJ̿ˤA #ځ&ZRjXb*&kN9/E)F¿F X*bErٴ;I "\+P^L>4g3D)<_0/%eVF6-j$c)~@ahkxr!y&鐃f<㴞~hvij5x?a}(kH8=Zđ~@S}i[Ѭ\;ɟ"Q RO臈k3l/:V EuWf/:(r6uw®Ԥ !hB )՚W2*CPǸs饏SOy+ |MTyT|ѧx|9Q'I/wmj+Mv3Ju_c"A2Yhj^E*_£udz51i,O$w[Hh^s涃ɓM4NB]᜸MmʩLVw0ci X\\b+v-e;-# *H\1+{5i^Sw'3k=:KE/OafhXR6|V,6%YV4Y7 m/!8^r<4o._hc_k3MUlwxb?%9,Ϥċo8m._,t7 f\S;)5^Zw+جOž8%Z%~l]9_Dj>@0;2;ccǷX 6`lƈ^ԨO趛1]#c(D Ċqn=e׶ 3ȝru{:E*nGM*Y(<)pkf3@Z#mIFTຆBkBN(^ٲ␲95SD5|"85X/0}OTMzIKPd('E5 3L 2J\!dAV[$TDZ54sOﳫR~Q,!yHQڀ h3![rÚtW1{ûlUK Ѡhw/ӊB}O2#$Z䚟[<.Xq'[55hn/~9*~XwTPnM#+I3ec,_ق$mUp*Ku(1M;rY %-V#c,53̤uB$׿@ 4Ε y:kgی@۹[}G녯Lj*uj鸼"~h;1T>W%ᵸڔHx i@ɣqo4>=^14 *C{: .%/'{0yCmp D D]5^!ky(pT.-9.̓Tvg 6Ȟ&2wOdݦT\S ^߁dJ5K1e>5Co]OܢtSJ-z' `+W3*|zKmix3"ST5KI^R֥Aʭ<s>ӠFGC9BPJ*ڍh@aEn9 ,*3nRwjL\` ק]uqW}+e n FwYAW5 L75牾ّ͐4j:ǤNReQQf)հ }vö}5P oo7#| RAwtZ圮iS ZZ6}Ռ5 >p ?M2%*ٵ.Ym 6kT~{P8M<<"Fw|M;UP~ q,~ΒkU]v0~NRHQ)M0\~%n2_Q!Rmf/e׵9 svv1 5#k {_=W(Ve0E<]WsKmjyS'ΣbrD[As$1_-qKXB{J}*P7|抆֊JdS 1:p jjQ]C,}>͜JjP1ӨI_ $[!T>hH#(jisx7 <[àk]/q'Y/Aʶ@Byj +`>sI_ಣzLԥ|(цd$ =)!c#RUXБvݤ+QV\ΰ>̇CyGlRyyFE`Y67BWOC7{%(rz-4,;# }ZH/xr;-^$Vt>{Dqo (P9vu,'# :HTVj܏b |&3UZ0o!.P-_˪X_l~2y*2M_@bJs aS#9)L;oVӒӘ9n$U8)!p"Kӟ_õpH<8,O&#}R_wMArS '_LnO O7*~ҌW1:/'qYTR{v=a>\#.Λ[(pm:qΜ&~ fi<+mN+=bu$~ݱM@ͣhҗ RB_,+=tɉv59הc)8ȭyƛ.QǎOYXf[\E?j[f:3o/1x]CI;r{yrՔ9@B[^SsM74PKC1M7S!nuvola/64x64/mimetypes/readme.pngUT `A5PQux W{<vz<%1dJްHhNRTif^ED*1ux^ފ 9EEu(EQsa[ss_u~+i7kd^XP{[w#89psN]͏ >p¢C©#ƒ5jΖ5 @QSCBRqXXիW7*= ؅n࿊w<2Y0N(/Bjr1lDoICCKBQO ijTkxV ІXhY͛ug4@}X*i"BU"w#?>53+Σ N,DJ!Ђ}w^[VU&i9X`_i;b$H>djk~iEoBC/bĄ 5"S6 HU܌0V0 @.s]A{WLÐ![ZDkFBi51IN`no (y@5쁶Q*q,rF򔹭}}̮Yf@yY%o~4`DꫝrQ" ^2XI_gAO P%G7j[A^9M!)Y#x32b*c}x%{D"ge ݓi *]r4?lE>ڱ=A(t )H(+PN2 9XBcۭKS+{s p"=%bq10zS ^_D%$BYֺ=ԷI>SC%ב,-IC.EU?B&fcu8H#Tl&@ˆuC-D$dfazECJ&-{!h +P&^uoS]}l @^$z,^f/>H^W4[qC17.wzfMׅT㪃YjbI,%sh2BRj8?X4Og8~Q!*5q6 *_x},Bc LFӦ]&J!UehBkVOmlΛҢޘGZ~!ƽhy/UPkM Dm sd4Afbt0&ŋwSzzV(:U,xvB t_;sҬoI(*_l0@1 \ɒ|-yB4YRZB4`gV=#ԯo>j2Ϻh1q-$q{Sq23F&p-A{t$Ob4k6c\G P\؊NsL X Kr h&Isկ]ϘM^2wFE?M zh1J~,wVlk%߅/{-5NԄT8vj%LgP؍V5YbV2` ]{~&H×cyԄI?[ymqv@u :Ƭ EJe-B/%hWeRNr;0Hy;s83kyqDcdƢ=%7F=XXfX+))dQv NT-n'lҗzۦj*G'67Oo^w/o|x'1 8C!ڨԃCZ0**QĕC! =$:;̷izuTW bu5M8&%XOVlE_r^ѪUFZ,& :JVbٲ^_ʨ/ гʰ_ g Z:lDZ?RF~3&f L7?k4}UJ7e0’otg; Db~_OVczc=p0qNpH}Y0;w&Uu,ҋm"icr.9è-$d_B)vtwv*kƲF9עJN|njL){\* 2V yM5P"`Q1%EmbePiȈkSP8B+`11MQݰy$:)r!*G~"d&Ϝx_Y^?S~أ6UʚUB{e?^8yJEF@yRu (K +[ YA'O|Zb.mQS6![ UST64bG(1f꼠|FR~p%Fv5PS`i[HT΅4y++%CS?`P_S.?jfJEMj2iӄܫ| ءw޼qLP]hщQ\ =dCqɌNfٖ!bJ޶FZEsO#i8:a*_|'Y]p5o|Qttc l.?4,1`ҏN)m X*-,Dđ>>:'Z%\'PcRi)ʟ>"_ϛF(\vᕶ|HO讐tj.;A%jYwsfYiEzu> H$.z?B~5_ҟ?f'-UqbGo.eN-{GT^טT>.Zߴ%$laB,ms'ioli$4p/IPݙG~("[) np2KL-r$$3(7=;}YVg8-7[Ѽ1oqϟwN1ꝝ;}:̚^;؅v37D͓]{7A:>WEtADSE1sS|tbtɁ42("$v Ht5^6{x5,UyNڲeWӛ,N/Y|{.mI &]'խzJ6YFY\fC;pYC`lBHnN洶pO2RߡBGRiR@E{='aKՁtQ^v{g>גS{}2UPG1 J;ŀ @]Rg7!/@Thܟ̘ !: aOv8Y2r{X[F04$Ae X_]-NF%/o hI\U1m$rV[ &#q]\3X>NI-~~~Y53ګTW盒]\ ]%}uwȇ`-p$̷7аX,ӳi˙/_.**~wCslH遈Yϒ_9@|i}*5!mgDp zdpҫ:b p:ZNجr?vDMmZDG+#;}yeYd[aDY"C6'v,$rь v0<@`PB`g&7ws:~-ڮ9GJ^n1[ whF VG񽵽^`vo6cV* $bLMH,X=y-l_cřqwJREҁ$zLjLtOLߝ@@F:S+s.w݊s}JJ:xc 1נyW+hhwJuJcɷߨ?a:Zk G PpX-fl2lbk6ڏ"2Zu` 4{[ވ8%//=윂: {^.UW+Yԁ9O- LX옑EuTޤn_֟)꓄T?vV4b}E+۽}E}yY"ϋ\YkpGj:87͇&L@/6?zCc _OHVxf.̬sfI̚; |j㴅Vjyq1R(3<$`vWkc2M ݫ`lpx>;CW E5Ɋ>MyiJɺ`Tz~W`}}%:zʿ PWѫHI|ZӬJ){{}ã+'n|HKy;6L9{[e )zɒm>tU`Ch_}`\7,Q& T'Cg%ɕC /BCgq>Q, l*;~>E\n{^Ԁ`2㪀59CDֲ@HpGs\t.G{rȕ)v&846'-uh9vn+?O%eXr_!xzƋ@zhP1u0_WT7bDlc8Z8վAShxgf߻Jz {[VrqƛTnܕ_JÑmߨio^M>{p4ax8|3i;GW9ez4O_lk~:%ʓAWr}`';aQ[y))Z5M},20d"?0X ͳ+֏K"d:P_='`*R@<6#탢E8q";&UydxTxpa%䛣cD![+[|AWoSL"4U_^6(2mn+8O虜+ $Y p8x`A@o~S=hJik)hڒ$T1}i{? ~Xbmس#i'"{Hb%`fhohsؠk^ W$%qWԲ NHib4ﮋn}$PB M>-VNu9鍥j*)^$pȨrS@,H߭$y{~ju,!Qx/ҕ" O1~᷏XQAׇȕΟm#%$EPZKyNr+gliOz$8nrc C*G}PyD 4rLl[!k'a85oUgԦ?v|ׂu_(RgȊGK$zS(d)ucנ~0aZR\}vH&Grytb\ $PcnB1 v9,*$ iPƺJrz%7i;Z5q0A!llu,kqʋ֎[4pxz_4CtΙ`L󔢫2 u+cNVab;=jޮ_`Ƚ*q݂l Iϸe7u7('cFkI_ψ G5'Q.`3ˎWY~_ CB-X`V0""/*ODsxyYD;H":=BUx[_x 2{|'l;9:t2 _`ah %=~@!r N6!('_jSX2rj q.F!!;WDBCcOa&=4kKjDg^i1F2S;|sIƈ8ݶ=q?jˮn U%he2O yEhmi=6xPʣq%z>8r/Ct}R\0Ȣ ?Wu&/}@[Qd;b7Ytv7#g/`o ;0["v ;Biҝ(7 |c#qR@ +_᜘| ߦ 4XUV zI 6Lk+(2ZWq>u]iC4f@$4"S$)v޶C\~iuUvOQӉ'Uz89bQlO^IOBtFSeyjw_K+skô滼!Υ`3 ڮ RY_& Q@-{x&MmɝClxR# o\X[ZW֯oNkt(_Dv![Kget 6OК!鏇`NaDuw|CRÃ34!7#1OS`5c'cT_ 鏿H 6)8̷`/8ʼn\î4%j'|@SXC²8iBEAkm9_ȊOw]Zizd!OC) M> Wi d*d]3sX@`"@O`t]Y"{u#,rJJK!HQ|ǗD?zuV*QE%meɩ ?ï_Ѐ|[۝SqZᜏ=Y==)޶bZ\/6n?TDsp$>+<0oh W[ӷ> yOȸC2`P vvY̩R=^6y!33_XTazߝwۇaJ4M( M)7gKVu~;*')g#?%(()&~B-݂ C܂+I8N f6܈M$sfڼ4^}2UPG1 J;ŀ @]Rg7!/@Thܟ̘ !: aOv8Y2r{X[F04$Ae X_]-NF%/o hI\U1m$rV[ &#q]\3X>NI-~~~Y53ګTW盒]\ ]%}uwȇ`-p$̷7аX,ӳi˙/_.**~wCslH遈Yϒ_9@|i}*5!mgDp zdpҫ:b p:ZNجr?vDMmZDG+#;}yeYd[aDY"C6'v,$rь v0<@`PB`g&7ws:~-ڮ9GJ^n1[ whF VG񽵽^`vo6cV* $bLMH,X=y-l_cřqwJREҁ$zLjLtOLߝ@@F:S+s.w݊s}JJ:xc 1נyW+hhwJuJcɷߨ?a:Zk G PpX-fl2lbk6ڏ"2Zu` 4{[ވ8%//=윂: {^.UW+Yԁ9O- LX옑EuTޤn_֟)꓄T?vV4b}E+۽}E}yY"ϋ\YkpGj:87͇&L@/6?zCc _OHVxf.̬sfI̚; |j㴅Vjyq1R(3<$`vWkc2M ݫ`lpx>;CW E5Ɋ>MyiJɺ`Tz~W`}}%:zʿ PWѫHI|ZӬJ){{}ã+'n|HKy;6L9{[e )zɒm>tU`Ch_}`\7,Q& T'Cg%ɕC /BCgq>Q, l*;~>E\n{^Ԁ`2㪀59CDֲ@HpGs\t.G{rȕ)v&846'-uh9vn+?O%eXr_!xzƋ@zhP1u0_WT7bDlc8Z8վAShxgf߻Jz {[VrqƛTnܕ_JÑmߨio^M>{p4ax8|3i;GW9ez4O_lk~:%ʓAWr}`';aQ[y))Z5M},20d"?0X ͳ+֏K"d:P_='`*R@<6#탢E8q";&UydxTxpa%䛣cD![+[|AWoSL"4U_^6(2mn+8O虜+ $Y p8x`A@o~S=hJik)hڒ$T1}i{? ~Xbmس#i'"{Hb%`fhohsؠk^ W$%qWԲ NHib4ﮋn}$PB M>-VNu9鍥j*)^$pȨrS@,H߭$y{~ju,!Qx/ҕ" O1~᷏XQAׇȕΟm#%$EPZKyNr+gliOz$8nrc C*G}PyD 4rLl[!k'a85oUgԦ?v|ׂu_(RgȊGK$zS(d)ucנ~0aZR\}vH&Grytb\ $PcnB1 v9,*$ iPƺJrz%7i;Z5q0A!llu,kqʋ֎[4pxz_4CtΙ`L󔢫2 u+cNVab;=jޮ_`Ƚ*q݂l Iϸe7u7('cFkI_ψ G5'Q.`3ˎWY~_ CB-X`V0""/*ODsxyYD;H":=BUx[_x 2{|'l;9:t2 _`ah %=~@!r N6!('_jSX2rj q.F!!;WDBCcOa&=4kKjDg^i1F2S;|sIƈ8ݶ=q?jˮn U%he2O yEhmi=6xPʣq%z>8r/Ct}R\0Ȣ ?Wu&/}@[Qd;b7Ytv7#g/`o ;0["v ;Biҝ(7 |c#qR@ +_᜘| ߦ 4XUV zI 6Lk+(2ZWq>u]iC4f@$4"S$)v޶C\~iuUvOQӉ'Uz89bQlO^IOBtFSeyjw_K+skô滼!Υ`3 ڮ RY_& Q@-{x&MmɝClxR# o\X[ZW֯oNkt(_Dv![Kget 6OК!鏇`NaDuw|CRÃ34!7#1OS`5c'cT_ 鏿H 6)8̷`/8ʼn\î4%j'|@SXC²8iBEAkm9_ȊOw]Zizd!OC) M> Wi d*d]3sX@`"@O`t]Y"{u#,rJJK!HQ|ǗD?zuV*QE%meɩ ?ï_Ѐ|[۝SqZᜏ=Y==)޶bZ\/6n?TDsp$>+<0oh W[ӷ> yOȸC2`P vvY̩R=^6y!33_XTazߝwۇaJ4M( M)7gKVu~;*')g#?%(()&~B-݂ C܂+I8N f6܈M$sfڼ4^Q a A^Ph4'o}o7 A$6vy?  )(/vic5+#nSO)!l8Z"ͣ̐RZbFNQ+BO9 رoL{Ras2 \ryN"O{쭒PETB쟝ƀO:WSl4tPvl yi!-}|ݔ% Zܝ;Kbnͱy-f(ob2:0:dT$*_14Z9#:V;gmF\>\ ZHLkh_\Lc=%:'<ԍMdәRB{bB?dԯqbҜFUp/I\xԂLNWhjلS7gd5KK(l(Z3vA&r zêwvbf;z-b& `^K$th /"CbÌMd咺V6N[ P)iGpMe# 5_ RP|Ts/W"ңg0GcGY2G2u&,h#m!x!6ao B\l@#,s`Хp+?ܡց%Ge)c M51&#[ʞ]mbœ8]KhB>@e{Z?(^VTp"jtEe83a;^h*D_0UqՄ{r٪^q3gKW`ɗsn{6wY%C(0[ݠ -lA;@rL]Ŧ%b|Z[SS[㕴 VlI9(v(DY` |:Llh'%-Ɩ3M/P~EFUhLymlO)gC`()lN˥f]ctJ`sr:(>q=wIpE4I *wjO󊊄D$>C%5o3 W_]l-a$1SGiڑQ5bbؗG>=@t}l*b.embe naF!U[FUDuZt]Ę/^c`6\1C,AO Qҩ~To:s0r[X/c}JUgjJq|s Ƞ}X:`n f[N[Up/وP0-Fc5Rȝ,vU"^bwu4/R_3 uƛ0A!ڄ<LL?5K72Ml{G6z\ȧ Eӹh-lkDS-GlU]UxGDVa{ak^,\WA6_R-BP8V?nx}76Q&NaȦWN p=kzooTO@o }X7&Tʪ.zr^ ) iϑ6,r6uW|N3BLbz=#  /H_v0n)ˡ3$@'7V4šxDSkU5D=L˗%0ˌ@;10 6G fF+f2W'lV@`\hzxe¾J6Gו3۞3"OO, &ëV=>4or/vy:@OvVý]z!<,w s|?ƃ%˯MdnfŭlF2Tb^她Ȃ鰻p%qExid`͔L\DwHU|BM\4 ~LKXY9 7 o<3c+s"-1O<=_,1R7}UK0*t#x c3$a,WA9,kRevxCE1w1jٌ/`=wQnTWA˝7] 1@ GO ^tttէ.ޟ>~pԕ>{!'ԧ,m4:M,D3Ju qNgN#ڴ>z4 f 6)y"sgx|a2 Tu]?xG ǧ@ȊYz8$* 6z%HEqcS2Ñ_}1cfr7"BX" sϗYn(noo';SJb"^Oacڡ'^K9ꦣi[Jk|E3Xd@߿abbb0|>?}uA=Q@֌h@*yL +4($XxKSdTWM䞠ZtI`r߷ؒӘd霴nr:X w. Jw{ ')dzTXibpI֚5֥:X.pT,JnQ/j|p|H [LE͹f}Cխ :N= zZqrB啎1ѭA,JTz.~u3vG:e5{|#,_"*BefM8 !QŐKmkheRqy]HԤMody_HĮŁ4 @׊yGɐ9TPmr>lOi=րULw !yjg'!oh1m m۾ƁŭƶgC-k;ՄOf~Ʈde-HFTkykÒD{[57gpi63^!D}y[e:cn~uE<'7*7D#mT;aOiwVB wElDE_n קB{A8ZcHY\7R.ZB]MTDGGC#@'(QzMꑴ>ܘ: KOxuba.W~x= 1[`k/Ɩ P~b䎿<8ԼG^C&Dq""ًgc1E-Z}-6t*j~ C"9tk+Azņ&8SO b i VL,pazz| V0C3MXl3=M7o\`[:SǍ5hZfvҮu]RFnHnx%=we Z͸6(ax{5!Q+E"MХ -\Ϗj<B5sɓ~C YP;q8MaYS`S{[^(AY 7*o8y9:DMfiÍ< %ٺruL<ψ1~K“nwcz%Jf *O/ c8yH<n'1O2Ì]*ӽYn{ėIuMǭc|[_)t}p63V| 8%0!$>G82D#\`}|%h0f6.H_ek{*G{^'tc~ן>չ2f?4$Z?Q`|YN53`y.A^Fgם|Ww:Z5aVpn @dQѭ'8nZZ&ba7y@lՁ?S!HoD5= d&I9Ÿ g} {T{W:Hyx(J_Y8E+&r[n$(KA=#}N `\e6g>0rΝl]tM:D2LweKj=tݨG\JgL%ۓ.A0I,2Uݨ WTh-=W]{JT'm3Vs!I-79o>5b^-qEH?9RJ>eI#/xt5KCL?J/ rĐim؀%c-`SKVʱA]K ?ajm2RDQ` vs[.J#V Er6n`l洿cSSCG<88I/_CBZ 9)SvgE@0b kʢNx,:څo5c2 U}ž}gx†7tU.4߾.zHq3vx~eÃÀN5T`}o(ES_|XER&2*1$ C@L O &T * n +萈 e D9) wG-~PKC1A`9nuvola/64x64/mimetypes/rpm.pngUT d`A6PQux %X 8T>Z`DHf'4ee6G)af(Cʐ2I+2R0l$ز9~s]yus{ܕPؾO6ShQDWل w֨+gG=x:p %z j'{vqArzXc#F.N&Ym,K};э;LW5"1qH 2pohA>EtBS y̼kI +Q,;Ո'׽57##@qm4y @:$ٸ⶟;+gs!maEUL%+B8+_(kbeh~dZHdfQM9,*ZO9C gYEN'b`k10#VKYzk+pb;AqI%A{ce)!wչIa`=|/@Ql]/C|0l^z\@c%Qdxe-.ƺ(6QQځqI–<\2}M ˖NkJ !V~xn ӋNvi,W hF7؟l7 ]9 r4J*)m:+rgPY9} 0-YSn9 O^_U =ٝ'}F{,e૳ϟ!:!̗tedԙo*!*9|71pcϒѥtX2F"TYs<2$֡wp_J[eJh8nuhm'*ԭ sS'FD**wLj ka}LCޞY|wX6<8ĥv^L/ }>V:Glx J}x@`dw/ Qe;/ċЇ:SNkd0ck ͍&Bc޹iCGy ;(A ^fDy<]ޫ̫8R:g8D?<ŦE<>R2,(gOgcUc M|]<W'(|;T5{4 :f9zAt)m-im?GmCsΑTCC ? 2ןkguIqA2-z=)^B^-,TfR-(>.(4/Ypvc{m#/$e_4 r/>me(74x6]2PۦvLXR歏\n*<}ZGte;ĵ1q[,~]g##[tw38ޚ~րn4T=)i.9Ԇ_Oyʾ%6?dZwj\s֝1ݒHց? Qӭ4X]jS_3|4WtK1`E f,NCGT\ +oE wJy@䞂4kn;i{dO:Hk:Ec`[\ی $OWށŮkwڞt֨ 6 K'"CQunR aetA X2eU/~{kUw="l)0k<@(0jCpuޢ&l YA[ӧir}u|H嘒 "ccё.T楌4 ͞T_bq(u<ѷ۰E{m 赀ldA:ޫBUSlc%;m#g#6"_M7Bt"KߵH;bBox~,`77,dt,.{ߊn ;3okV p] Br21mwP"jvQ<6qupeB[(=R5jw%-5! Hk/Y$ƝQثK<>:Ɯ8A98akIҐ\q4 SG+z$;鹻AGQfRŪEsrD >z) e`K5 Zm rd(U; &{L.?@N&_e _Rἂ>'S+-r EWKo(RhxU#<؈zwtIBxsLOJ\^ sϽeo1Ҝ#ks}:8'UIhnf=+2.t4&fk2O>Q5Dc]50R$tNd)%XhZElYfؘzf (I LQg I51ɵԋ3ٍc<]/{Ic7084-aݥ s$Oo&ᘰ֊W؅ C'g%#O4=2+׫,(QQ$,oޠtg4 dHrPT ]ǐ]*u7{5_H.I*=A19y)CV{!GO>Aʘ~B4n?=l}q$V"`ހu xD/YWRa@鑌͸P.Wq2"]^R=4(7[5́٩MӖ*9N񕧝53Lӵlv풷CY=DZ R+2e)'fA 9+ZcvYCYvH pL(Z֖N-R(dt)S+M^mߙyn]໻T-|G85uɕ[b,SfE[f.2ce\ UO&7MvvZ^*b3ͥ̾Ki#Fmڶao+?@H,k'B7LاAyוH2hFU9uS 9 䥨A<YT*dv%8~%^% R=,EŃ yn\6 h*yBU HAqO2x=EV^ NZ?knqߌ΄0My(<$PeoL.?Dhnz؈)т,$U'8nØ A"pQg_/Af9!kfH4}YIl $ ;SOXت!i!qE(RiN`*Tv &:1_lѡ֡,,6\ҊTo^S&ZfÄ*_^8- y~;%lYPYi|k[=~ˇ3MZKMϊ4wVԫ=; ::@ƜpZ~BR=HKƱ;^*(gOUL=9*tj΍( I+©w[j%bMۄF5LYtuPOij[\횝|YWGi;ZV4Ξz޹q#-HwnI~ ̰U,768{d,M'.wEWMpewj/a:㊎ZK<=M=Plpw&T?׸A94f [RaYjJE}xߗD!bZ$RF>fUh(2P8dmeSD>>W_آ$%.I/Rx3&f׿>"%^:Saht)ZxcWW+iZu3=D~n6%z:b'2# M' g~@ (VIe?*:~{-8flKbj&'F^cN`?kN`T|/ǩ714zߍHFsO8f W\|/_5 OO˦\U pc0sDi@Y~ )R"ǕV:%G|R4@ {Abhs zjeJ@UӚu;ܤN EG Y3Ig`aQ'̑Gb,٩(wQ~d+TyԚGŠ(>~RG/ט@L|))& +\>D}W{s(t넒6b_CzG߻ˎzpp Ƭ,HTZ\)vx7랒pQp99ˁs`36rVgn"AMF52 厌rFr HվUU.t)i X7XW~'jP4CBչiёNӥO/`8%hoJO ߣ%c ch'] q;}Zjqhܐhw5Scr8=+h뢀=p?f6PE]L}9܈{7N}wZR 4%]7w,r|c\[IqVC;/ŢmW[+䈩J%QR|H+_v5L2J ޢl_rn7cz F7;M[ߙw'E"씮's[4:D1"Y̲nJ~XD2ad+E/G{+?$&Mm] [{pױ(w(& SPƚϒ ^fi&•&Swj/7HMMWf~9IF~^ר4j2zd^1ccF y70UM8USf於8lhSHܔ= [dH>^0MWR(]BT?A\_FW,"s: D骨/#k?J? GV^'GL ƗPE݃;N~NO|4qc 4_aWV׮>`k=!T@2tTls.~W~=!®TF%/K3eR%L>Ɋ& ]^9Z:Gb7,ȍ9J,7W܎Ο炙x8bߪ*_[ Ooyܜ"ϯDׁ:Q:z,zHX;?Wdw\94D*u mL\`# ޗ ;ۊOTGlhnk e{S'%]CӞi,gQr= N yK\;AKY/Ű~T/cR 0HZ`YYJdDv8izQ [w"Hel&a0%X᧣.άpbWٷ5` <," 5(">#?sW L-pn6Ed f?CnzQQ-<8۽0U͇vJvpd0w!y@=L`Ty{cf;oTa{P\Ko̪ IQ$ /JF^|rn'{ʄE#+aY!f,j]#G;ž4_٧fϐg13r{q*$-)<#5u JX"?Ⱦn]F\AJ7:e%F낏rn0\0ofe XtÙS⪊m|*|xsN)]bGCvOFdK{//-\_pHwnjaH9e`n&Ep3޻4z~ҊnqFdO)PKzC1duq &nuvola/64x64/mimetypes/shellscript.pngUT X`A5PQux V{8~9Č(d361$jƶ1ٖr15jJ1*%lb~5ʡӖT.Vtt}뽮~y~'H› xe/|8 s{89\zԴuM~KMna-8QFJg {?'2_83?PG bbHzs%gjx)An"iixլ{ZޘYŨQ;NِN7\}UH}3_ʐXCFf}x9q@(CRq)7z۵yLF<7$'jAO]&޿gAJoReVd4ĉ+pJ]O,Xc~hܗ!!%4+N¤3aDy~ @W1n !/e{\4Gk~w͋N$E@CHaK.#.hu„ !x$ꑒPhbF-!_MgY cZkYop'jj-BdҲ= 7hR9q/1x}0㋶rGxūt˞%sп-CD,V12dK6v>?MX9p##"ExKt>+~Riv-m66[椻xQuf{ NpC QLά$ 1;ji})0֠RȘ+sV7^f88\xaK*X^@ű.].+r`78iN0udhhWWV$K=Ą? ӌ$,?g>Cwy$תvi+Gi79_JfרHp0zEMd.A( I>oe#̪3z |V JqbjD=ٲՈ)B-"Bʈ!)(7Š&<C# xC;wup=5QƋw9v>hu),0<ʋŅIyz-q=u_#,q} (lY{ʢL>(-oGFWT(L[u*oD3u /meXDp,e8oHUTp<}4hEUbg#OQ3 ]QCyc7nmuJ`|*q-?y Lv] aͶΘ%';WTOɕJJRم *[ZJϫ⡁###Ǘ7$1L(6@kpYlrIAAɱ1$Ggx{>=_]VRcn?ձg }O2wN@?ܱ% j5kGʓl߶BAby7i.ńzJJbeAhffXFhE Fn.l]GlQ$wijy.qFpmmSS188[+JZO57kvw37 dS9Ta r 0m9/Fjb ->vQ[utܷuz-p_Z){|+^`pH>3ɬfoAD=ۛw7j˗1ܷ#~˥K^+Ϸe?p%*Q^mLE[RC۹uЯ Ω-ŭ &|BLiO3a #EqUR>B]4Q(l盛ckjkEv; cKD^TQe-OMܖ9 Y mt9bdΫ^QB`>09rҒ8?B!6(.z5[}N-īȕΌ(_8a5Ph;ZqvvarVmcR$bB/-njqOn^~dl/E`pGqIS3& f8cwuzaǜ :O\IcFL|،TAt]2<5EܙLf#7& ݋fe?yZ1Ȱ^Ps[|\ 7d9N9})%)}0Y{ S pV\OMH!7=Vfo.-; 9[ 9YH3\{+Y{I1BG.1gr'ʁbhͨ*O'ai1dso$Ak"&˯1jc˕ ksv.  #WGw; PKwC1@?"nuvola/64x64/mimetypes/soffice.pngUT R`A5PQux %Xy ~斘EfP4D6q+7-YL^E"Y}u 7dM fڔA3}99y|s*xAFiZ_y:7iT⪓E3%nM a%gBTF iGDs3A XOݞT)B56P^PU|󚐣-3=b(q*W_fv͝s>'kbr|o YϿ@"avS 1!{hkRM7bmL!T7Um MS̐˺b9Kv٧A_yՔiaHeM nuvXxh^馈j}|S.`Þc3dQh^0q$RНZZءa44|W ti TGDuhw v9pD׳MZ#_ Hm [)*FsLXƵpNXtvak1<=%khH4K^TtUBՓ<Ƌ/Sre s]Ee XLIĻhs9yT&x2 鵐s %;w_m.T91= CLڣf()YWc@yNp$]ʊ`Mpփ؁vv/]Be%a8^؉t c#]\3Jî%h< ۧMP]7`בZT̤ K:oyb9Л f]Ȭaկ٠˪_9+65uZXYZn4L{F164b@#P&yAXW3  5Wkq)M>?W!<)i|d"(ִxX{/~p`3 ޽ǺEAWQO-?㨗6@kKn= $=xml|cSqhpEtW=ڨaAc8Ga+o>Xvǰqk};Az+^@rნUxwe]*-EY I["IzXe # *=C ƊFopH )ղ"+v-5oUZv7B /wCPIebѮj,Y9T?PDyӢ2R"1tFsL[ʏy6^I2A/eE/!vd9&o\dV] J,P} /ዳbh֩w?ayl!5(Sy9&:tB&^AZ3Yh(w_,9ތCnᪧ(T6<&$ !g%źeXN[I=m] $cpa$t ً a_%_/ OI82Eo٦NsUUDǪp՟\ގk+V7V~P֭ GiAAY/U/"EI &vYKܑBTdd2ݶyL0]v姝%.9IGq*yjdw*źϚ;ioegkFG$ggT:؜[\i~oAu!cF/4&ѻLńE24 RR8v`h΍޼b?R^'8[T,Ec|7s4!~'?b]9S $>g 1jS65MȑQPׁc_S&uߴ غY>2:F2>X$ я+>bIɸMķk:j5Iə;/ {XeUu3Y|j7qgt*^-؁~ "?:;~Y-kHt_22lXMCdqTDb.}U36?E4&'pbQ:}b蟙dtF$jVo97ou~{Tz.># #DϜn0ܺ㪖ر+<< 2_CT~k*rUT~A继jn6'lM M-o] (jWZ [?J{3#/cW$楗q><;Av F }a)<݃&{0VpK\t %Y/[`&ideY$lҳ,GGk싓+[c&9'jaȣ qg#(~V tm~[./o]E4uOLl*uiCK!}|N?H?Iczr|b{1uN+'P5f`YG8%9k*,j*7Y1S"fW}+գbq)Ys1`n3 }?yԠ|ꎰ3yK7%CDT>k?<b,-* ΔCwPzׁ11*20Qڅ.7VM͈3ZfQ(-x+/a]%VP<nF9=r{b[t&+ ɷɧ/X+-nC8к1V]c?n,w;]7sf| Fڏq5Ո]tr#zQB2雕c/O hB]izNd #B~(Bq{NgH􈈈pxėŒsju?)BCF[E`޹"-%+P7輽ySҐ2B3}yppIKJ٩ Q|=>ݣ ڰ$m%+iM*y9[@#G5O{_ucGƖ)NS:n/XH0_v 2"vƹCx/30W`F@]XStmMm9gjJDEwRuj3ؕA>AvBSj/,J>dI󸾘>5l;BX1WDipha0!؊=-A& qK V$zOFeX>ùYrjt{VkX .U~h"oĦ^F~i# .j8}t)|.]u-p g^ f$|OiTzb~u &ZڶTPy'RA ^LfO?2 ;si1ֻTwKqUP?1p^+׮ tsNOz[oTٹe]nCBø$ 14Ի ^J%:JK <'hA8nEA2- O?PKtC13q/ nuvola/64x64/mimetypes/sound.pngUT L`A5PQux Wy<0>&6V}sDY+JJߔm%6WYI-e3$a~se~~o;kV_pe';4=z:x鳴Q%8= (+p3PABry!H[ܥ###{zzn0Uw ?+볶+)>6gߩ-K:s_&,V0%o= IS\1Y!V=ܜk} @z'i7oN#e/B:o!(FCw}}}Ok #s}◿ĔB&4C/2a>śY@ZJm:Qm9&ZGrPqn9XZIu jۍ #zjvd|閚SVxᘦ% {A]qz@N~FmqXS48nr{^0ۏ)jìUuXݒO_oN~fb'7dAh rڍ/\*QdK:p㸄f;׷v2w.G o=*9_c{cG̸Þ>؁L1XB2g@V3hH//6Cο6*xcy"!0cB12,{&bwQ~W{+dj 3EZfulA~T z 9ת 9iDAY r/Db<|0ؚHɋBvi~yE/% ݾmjAc &*RtS;n/cl5I&fZ sO"/<1 g8AmHr3RA,iAv3, 󁻦)~ds-dsm1/<9q`yw6up4󖜼uڑnm:Rh|Kfc!*Z=hqw6`ߓWL Qa9}a<ag*Gϊ4^ q.c{b)4#d ض8x#lM]3Lӛ@]p[gգ;] ].qoαao᫬jQp-|Hvi)^%YNQUXbe܌ VT}kIFSc3^9WP7։&ڃ*"RE$O{ǩ{m[a}4/FQ?J]ƄiL>m0{9Mb"d#.ڡ ۘW\hj/"u -ʜ_^f`P9dvCPk Rbvk:dl~aώM7mHYJ2\裟 j!1EZO!K%$#4 5PPҴVDf~oS7d$UgOc'l;}>qgk[+W@UY?+[Gy7SN\4r/Y1?7aϹi/h;" a`1x>ZH0A@ K}FRC,&j2ѓLF iKwVApmwEbjLθK=9қTLqDITav̖V m4;[c8wa(yC N<Ij^!ED2#Zmf O?RUJ<,g]M䲄rv :r]?t3Y.#'.oD\%fzҩo=QۢMu)RؑE%$T-sr5wUnǸ&˴*+@"Y\.N/IO6N~DHvF?E`*0JL$)BKrp%&@ Q!W m[ݱvRW(Bn ߗEVzY^sS$CfʹR*ğ~Z;tTe*1)4/ɺ%X<  7tb]y_-$S5s^a.T#.\&]Z?҉XQ YdYRAsvdB,E>/Vi , /֧1@cQ4nMR)D8M̍GH$}0/B8/gIڙBb"<@=xkf{d 4ׇQA&jTFY*l߻?ihܥvɥϹU,W<~ 74;#]ZYI$Wm eX _%PAP1.uϖ2ǜ 9hdzg?!?L#)̦ -K44-g2:a[_kb xtl C6WyeOϰ^jQ$c7[gHUJč6rXnO WmBzTL>[<܃KII098}|z)Uzj;U *E~ GUO (t!:ʑpAʔ([17Ur1̣灪DzE@x?{PцOySf\B6iWR h#MdlV1 ڢ!yKHs=V.Cc\S5~AR9Woz^Y1.Tg/MdUұ~* N e^p]ZjzO92j ۡRߎ(oF5(sӰy\mw@:~|90b] 31 $"bߵYvB,Sx`m(۷sC^;%++S#@TD'rhE$>v?rdOpp[e]oЮxcpɩf|ll\ƾ SϲʔSߐmiik[gx*(3?`ۖ^ЅO2}a?[ruQju5dqMPLAFd TX k&6tjPKpC1l,!nuvola/64x64/mimetypes/source.pngUT D`A5PQux -T$LH@PT()BEX 6*"IDtA] kcFpkBSPXW\ X)JHq9g9sΜ~p?bNb"#{ݯa`4/ f]*ڻ.!z(@Y=jmTXdQ`ziWz^b"## EqjG1D>=[jk~~NoH3G yaͷyu/WC^띌K>NF4Nw$'+:\%>E ;4 >NW\yB=bҹnb.((ߑ0hQutP W-uQeQmh7jL\K]W; !6|MnzMO]cL=_1o~<ΐPe{[r X2cL;%5 9hW =Q9dsL.&Z.#37jjj$0UDՍkdF~U!*b€ 襠a[*r{{(!_zZC.-ڒZ Hv|?Xk׮wrG訌QX'4 + Y|&o=jv|jȥ}s_- Zk a^\ kϕ;McN/ZOΡ,VxsDrC;1U"59tg& fgԥa\2 ?ۿL+)4RZ"ECZN=%/;:bz?J|Tw wrE+Nn6zJ-%6`qYYz+ˈ!zo{nl9~SyGlT:oA5El"`cn7CSsݽ3n_;ڿP.{M,s_Z?ai~{Bl,<X$Gtлu:g6U nd V}п&0Nﯯذo``ـ~IK:LοY5jǖVB5A{KX%GKĬz| ]f̉/}L3.R=Z-T  f4AȜ?,UIG.aĤ=.گP4TRo0jj'`q{|̎9~ J!<&.8UjyAO׳g><eYWlt2âga=e_$C+rOP X$g:!oFv֝;YELKl`Z>{8DKk/" ! |}Rߋ%čakUU5kx(;QՐYuly"1q6Q񮇰*kZ9-&#V}Z܅0I7hQ]xmUPebO (+FIWK߬k˃wά+F;kj]>A}2sy0Dǻ#U9{a/a@+`׋d$ [cW_ K9F#,;'5&ʼm|x^4i<*É93$H0uw@4zʂ̞ehOZ!S:fMTwfXTtXr-m!V19c>gO "}X3@$7]0"ϼa^ኘ!nW;d S;?w6$^!v!:f_H^pX$>C?3O812qfKULu ]%+:-auàcfQhQ.H [kzzG7VM焙BS<6mzG/mMmu`?{ܼ 74OzAcǏ,$b'wB|V'yBĐ'ZzBvKJX=2:}=/ۂeu}3<0}X$ppiƈc\ 9DȨƿvT@ܨsc%"9'Ŝ$X+Tȱ$ed 9VX1.ƌ9)2sJ')6&tLe\S\ c,]Nz_J{B臍2X6gujtbmul D+ky|1Tݽ`3O\ubCUɜE m?neҎwvxtAy3 R:Ѥ@/֧&ib^2G"&pJvAΥڧKTK>Yz&O5Y{iXUoWUlI@+޹\:aM8AFĂ2s` YRVE~ |-Uvܷ@s:^@ԗ߇bg*V}qcg|Ώ*/kij6hO:]/fL-2]eeg@G!5J9 OC0qEl$MnŁ31CkY+@-{@ U\Uf+<'C}YxVlwE~i3 zY,aMG`o>ެĥlBwvĈB,b;UA u~{F?'-ɜE^ V7͟e4HQ~&6 GyhSV!_\4> Vmoe$nXG ^.q-cjse 6,86ۗ a \w3]3ՠp*GrȚOֲy*Xzu|-bnIi`ݓD"HlZߝl91Iz{$"@*|_hВ$ϸ_~OXtژ>:Quf#1ScR k.ߛA#gUրXPB* P`Ytx[@?V,]?PKkC1Do#nuvola/64x64/mimetypes/source_c.pngUT :`A7PQux Wy8?>f_cl((K%{,iAL1m*7SMRI-1d)ӥM!~y9y,G|($}ڨߝSv &Ls=mNأUk ﰌ}QqMJ ׋uRLfׄA G#66Yޘl3%mͻ6(HV#:}DNca|xX}cs3x݁_^ 4̦XQJ O\8Z0en*\^TFCi3=F 3o۬K#t+aƂmqh |YG':/ȰOc:9%7 `[UdVh}7\yЗwb bFךC:Q{mB,l^1K{z`FTM`n%`.Tk\W;O]Pq s(3k^J0Q-؎|׹Oy k!CݛOL6C~ v4dyc͎py"sr|H/auOh% VذjȘ<:Zٕ'pL1SX Mw'F%յ'Wi 0z 9 ?.-lgnBAan3XA%S38c:V. vڐw/݁@-Έ2|.{k@ye~ ) ,^A躤LH ;-&9̑,NJ? x?m+uF-64k˺FnU{`nkbYs-]؂* c_ƍ%kƈ"PS:~/}¡ Gό=ʀi#@hFvqq$3SeaEлwЫ/*r֋2^Љ}3*"#~j)s\ރ)>9ـé~c3=n \. -E|}e!PK9Dx=u0 \)FBe݊ >dyF;/9? X~F_-vBdsSK,U m!dxI76C' OcKYԻx+kH4fn:I޴u_a+5SEjO]s۟P hdy[HְаbRtpҽG0b&WK16%A D FCS8HL1Lj2* ba Ԋ!t_Ŀ?JU#>~D ~)l>18Y$zmŋj:]D#`!z}IGn\ E"ex=333hWƝ>b_vu65΃ŔD=y3tǸa Ėm p~}fjC̯Y7E2Y] Οh)Zd 5ME0xR#O^ IUiZ4ԣX(kl^xik|֖qE=uLQĝ$hwY)'k&3J毲 '*?A,ѿIZfx$[ӔҲ(G?qMNՁ:BXRL$Z/ڐY^M=v8spa.} 4'௮eHl609a+Lj瑎_ lQVg0UgMz˭o=&0L5A`^#Q{ E'(uQ9$ۻ}71r)[6o&-)s[J}1]uaGgwav ҖM91QaYՊ/qc˕I\Myҿmꭴb;+Uл4`q_NuQt@C9osZ") 긄=Z~٢Й۱Qv]P z6wZvg]Eyy0i[r/`'FpfQi*3rJҳ> k_66˧m֪UZ%k-E͛( mA .M*SN$ i]#CHQ-eZDAtg@oTv:_B.22"GY[;&U4 Ƅ*fV>'KÖ Vfc.Xh8?s?V7q[gUƙ_UK ][ZR3#jC??`8kUzT#Wғуl? l%af5 [0HmwUgǏ) Ɗo"[$k]{Tb?̂q*xXgv?w] 6f&&-t a?~ЋuW./<ڋ^M @e/JFz,9 j `cKlND:/{TD1Qxs~w 2NoRMPQUQtё O%-= ]#܂I|?49{yu?dͨ-^/*Ry;A((3T7m-&QUUT}v%BNf.|'߃5m>/miyI'1X4þӃ*]8ͽsl^ᓗӈS.Y"99$O8͂e/!U]J8IYfO#~Vϟ_Oirp(v?NH|D` aDdNF.µyj ~Nޏ JannOq޵&55\ϕsJInYRp㶶QhŊ яgcz]3'VNxzC rE`DX2e]hʙ|:.ο\o_Qhv0 Nՠh}9sg&?#҂M?U>꽶)mDaZ)4Q*ưR)ZPҵ31xӁљ9™@a=/;zko{!=h,^Y=LPAAAeobዿF2O8q l"n%qG 0A^$aʀիW㛳*{%KfІ#Q9* @pwuIP2cb+"20<ϊ).ܙB5HUDьNrPI 5ex(@ݧRچ1gZ;lQ˗bxtNr]b+l;yMEcԗfWW 8ʓ^:8P3j\#Y>6*\qYlzw sԨsHlFzH=\squ@am1YJGv4 1D4 1E R̪@K%$R:+b1o֟&㈜E4a!hR%>{W8\CC}i]w>okoe$33.b(>T"IF08pU1b4I,M?*(!!A8,3=M{X(+0qpuXIyPxˊppnFFt]"aRfؽ`?F׿"Wm7&orۘ=-ˁnl,c'WL j8KQVº+(3~l.T5α,fysuWnC$j޼Ay985m>t~Q;9<*`o֗j f^wj~,-^5ZDNxe'cW-c=p e̾ #KGYz)Xv-P&p3L#D-x ԊRJ!y ҡL0p ͯəZր h뛐sLLV ܝ̶R{q tm0&"ѨZ"'nYRimqh{*ta>jsgȶaM9#=zDH'po`{ׅrY#cs-aWԆo`bMV6b5W:ʂ FlTh+.p5)nFd jdcݸ2 Kq.Sq3y;d.$0:^(KG"2&Or9P0cT8pF8, i SNbT GuYۭ͛ 9ag̼!NgQ\l`uvhgmU2: fy{x?9Lm_{۵eKR'݂Wc tدMa{A"w eco۵,.Ia_pg~UO">2nZ% JZ}P-X% У?.W ks&?Y-<8>J?1S%3PT%DJ>d̫* %,NK46˓ C_Z E{$L4K/F) _̘Z>]@+NV%{X԰e.K!E"*d3Ωo_t=b7P@ 0sӥ ]9kF?YX5:l>=yL7NVdli;d`6D/+,$BstD@L] *ϒy&&S|A%.eY4-c?JmK Q#eKR~~{$PkMhWc e< /Y;ONg(ޖ_h/o?- p0X`w)bMFvC'h5T\^:~*b9&҈4CN1A<qZm~(/Z[`){/4?tFv.)eD З@i@\]Ww؟NnҪYyY;+ 9jΊ_E|O,m,1=6oOkWMϺp{uG$약]m6, zȾg/k13qݭYY~)@ 2pdtnhOƏa|e+9.,gVEB^i dEDcz]UgQ]wvZtf7i܈ge֫E*}د(]X7VVVF(|媎[EFg (:n)D̗n2%82A5#|-oEeSlJ.}k 1'?5|\|C Vkw H,dIz$D~'3sq4ۥbNCnmWGQ?qN譾t:$kvEN/B"}||Ec PYglD/;2߱Kf$lMMN0SNO2exH&͓Ӎ U9RÑtu I.M)-UFh3uȗ_O.o$%+NʐAhsٳ]xNvŹDuHEz1DnPnĨҾ264= H 56 FwhnސDF.CߣlOy%NMEo*&Y4!(̆7iXXث"a^ꃳ^߿EZ!ڗ&P֝^Bp"]nMG:) )]|7:~P.<8cC$ zNoУFf֬U)hq@TSd[O%>^$ E=Eku_PKgC1.]k%nuvola/64x64/mimetypes/source_css.pngUT 2`A4PQux %W{<j/[$rMg[O 'ØnHr2RJ8趒Ol6't9.%9"DL~>|~?O55w7g_10h!03A *_kh\dDŽEOr"|#BI'7qwf' +t57S` !Kf#{_xq1Mq_4S_pږPR<02p/UI|k.B1`#ccZRԮS,8:j S|:%E.wlnTW++?]\5T,,(|.Z?,,Gf>axe#'\@Bؘ k[d@Mdw 1Ql1k{\މh>Soy%RnOPb9+jkT^:L-),, [ƌHWW&gw1+0~nIE`Ȧz9⑤Z5xAsPsnu0pH}Ǽ:.A hy\g)\ `:aX㑑hWSRVu@hVx >Iq\Y+xpF׌#K]JE6;[fYGvAsT'Y% S囪?  c(n\Q$m87FgOY]i&}O{Vݪiã}O~27la'Z4.c)[=ff024=嫬"HD`4mlS\^÷+ ;>#.A._xQ4+`yH@ЌT}@@b/#ߠX腥=ճw۸bMDžf BkbNV0VF?\IG_?b)þ_g uCtmk6a|(MOV@ASR #e n%uIg߷B[[@GDlE{I'Y_Vp ʇ~y#5*%ƠDU=ԓt/AzcZX$d/g^K<`q/,Lʟluik>7oo2rTmGBdns s:Ⱥ 7t2%o2a}H))3AExHC$&CZzcS- vLTX* @z1LoQ8yﵧHQڍuUd:7jX ?L~e0o7*6 iSsn!\piCF@GSE:N|Ź$J[+n] Ieg[g_*sr&~|qt5m/!ݏܾ>m NJTѐ@ƥ'cttG>ad5&@+/`K4xAUX섟-+ؕ ]\t_ UMbf@fԘ.zeW>^:9QVW9|N'HԖ ,R!bYG媣ā.z=@DN{íQ٫XkY*jǟHYigw R xUfʲpu[ٵ73Yc=\|VGmPb[(FyYC) ~"+J"ЈEOM$+)%FZ.K"BS2te*"1q%9E9{,ޙ*>~{¨9^AM No{UZ|MoD*ĎaHh_ZpzpN(1SQ;Xٕ*Z*}ߧYԴ Y.1?>}{)8Nq t,9VwggX,^o%-V=g]` sÕWY;|˅HRfH*˶h'>nu&uSjJ6aCa~Fm o&,kVG58.̋[mcgGѷeId)xg7AAVUS!\.$,,9!*܊v,HV0l7X?NbzqmǙSM6an{VexiOG91(: ҕG<:1s&ug*t4A"ؠRAzC+׵`Y8?/Dɔu{!ǒv{4_wW]1w,&Ch8 5*u>^G5be ;]T*3d&#qͯ d+DȁljÁy¬Pn L29n };/kXX)!Dc_06zwDjZqak3 gdk:T{sr:yDmd/Zl4q%7* j؍*:?zt`)4gEw)FlC ޖ`ޖzܸ4=s.b#]@M\ҫub<:3^]Ghs=h5Nyw~ yJ,^?E*xO;tg!0nDg?Y8H%].Jf'&G>mf>&8XԬ $0ЊDhu2dbK1,YF o: +p$]>|LɷF%{^#'J=Xk><=FIpK.|3/+ƍt諃eIŅA2e/he+ +ˬZB_z0I׮!cJ,wOo16Qo;nsͭ)Obx\2#yG{'5Fg...`GGI_ޅN|@5JNo)_ԕ-VqKf:?h|A`bBLDL%C2ac> BՌr + C3ZMiT ׌Yp7o,37"o0qȩx5H"}/1eW x:wdPKIC1MYX#nuvola/64x64/mimetypes/source_f.pngUT `A7PQux -W 8T[^s ~=LHأ!Dq/)ĞK"эIR)NF(JR\jI5Bozֳ~Z}k0x9UR@] эC&[w|<7>W ?-RRCRDXhؐȘ<#+5ϣZOK`Z[]``pMdsM9+_* A9+/.oLܔKj`֣3T2;::<77bjJ=#\ԓco>hܷQSu FM|-9tX#@IZ6//o yJi}NO/nt:XG9s4đ#G0J!..x0U ,Bpfjbʕb[3+܄ ~qڟ j,5p5]"5@GQ3+2.z_<+/a}xT퀓R,f$ل3 6ݻ+ <ޝxpH-5Ďn!5X SwTWiKKb]tohA?dܧA4TCLA 6i7Rhuz2&h)gD?-OVUPs.JBcG5|.d,X\Rrbt"2:!*ίhGb ;[Mi 3o9t\Ĥ. L5BaG>=,3+ȑ.{z5&\*u˖v_?mؘ(78=K}z|!EK +>ˬ:T:)1 J }f j.Vk^ U!.3XaI$4D̓bqU0TbdXP4>Krػ&sOn!`,MXPy=.T"M ZFqlM)z{;f*1&qqq# 3V?8Ĉl<^NsEnKTן/`< 7ߺ*Np,|CSp>9jEl(:niq9 ?7J\iZMJ#cmxqtfMV*D"z$!=MT<ҚX%k+zffVBC¹ ~'x-וoboRer|ti^1ysզ`N~PHdNr,])ydxHDX(1 Wǿ-}#ec.>g`,c.H$x(|IwjǡiZ^"}Tya)XزEUr)d@p+əTgӯiAZ+yk}- ubFP˖0o&wR%Zp .EXȭ[W8 xLoKu}Nök횪f[|sc쟳p4;D{l?VzO>:88 Gˉ.m/2A(@[Lek9SRjO߱_|$4`nA˰ P_OVM]]E{ 1:S4!$ɬAlj'"vfdhU1a7J ̐huӬsɦ "3*z?Ӑp jN58b(|(+dd4a'Ȱ4]H%,o^u6.܅8.Ƶ&3DQq!2+TXA)mysL55Ax&G٘lvEA+B׳ Xp'˝R_9\x$I+ f j1nC\:zӆo=FO,zΏv L ?d&~Υy(qNƮGKʾu!,V1 ̐Wvh=Xk%s-[>=Iqqg`LtvOmPfaHë] bcב;{2YyL4ha%@ (R L퉤_t~UCY暱V|^8D+qPy &zNe֧easO|KCtnxYY *J E&'!@WzVDrl}2KK_⠢ O`M8l"< >'faf2!8÷L(r){½fZz(~`rLp;v:ާ1_PH*%[7PQR$}f+_k!2AUB l$sV1rl4:-A C`V955{M/R"cG49Uh(YTTufsi ŽHy bQt QʌLs C40N?{"պ,(X|ǐV4mZȕosUfrmcEQK|MkjL*irNALb=nDRB^d}ɽG"YBҒ/O hJtR]Jx?R;N JȜ= E-*+[}m_DZ3io-yo_J1k4VSW}$uws3~7FÀKMz0ymfT"FW7W\oK{YGL%@^v"{pVj8zvuLƉQ"i6ɻp:"4ؘXm񪭨Cf꫈yr<>v/ȫlʉ:+qxqR,t` 3ήD.-p0?e罸$uG\uB&L7bBq =XK/511rRQ@7U:<(V}GD#K^WM84 8ϤțֺWxy.5!Ro٦@˦䝇Iر|m@ Dqi-i,^S)1Z77=R@V $PKFC1%C#nuvola/64x64/mimetypes/source_h.pngUT `A7PQux -WwX۽TBE5A h  e] U@DB %V"beTVQQ% (""6PTT${?fs޹yw8l!jIЃE؈z($]96V  8M[dDf/MO qpՉቱ y0De}qz߭@!$!!޽{nM|P u91`sz߲Vd6YJA\~"jM|67Ck=G7-Ofnу׷l&AϦ]>G|A%ϕN>$܀KąKWǛ8>o>,qLlH)(c!sf4e3-Tn5I C+>EVy| =zGϋ?z涙7z\t10@ ˨~E;ۢ* ` eLG>myqC:1~[}|)G;RL(h24mqc& )pOvSb3#ћ=t?x)@% G$Z3Bmm)H֤ \d:)y {2p+`i2E,ŭ^]@tвgΜ މyrbձ6YB}zqL i ֌ ['hu#M}wi.0casebҒ%./t dm< 3[XW#D~tޏ7 [#XK"Q 8~_lhaiʖo`ԳWURTXH'2٪7 $ _efM,t-9+dV#DbSS9{ZUvx):KJ OL岁cv;p" Iujצ:k{qS2р&6Zbnle޻$4+*wHJT'šxz鉪$[N`!QIFQPj 5%j f>s @uzO/@ʢ$^:"*_)l3Y-/m_nӷNNLLLF1~ (w?H+uN<\uҨRC5} @O&w+tOfed}˷>3SosM_?yԣZļu&nԔrnȎ%Y ՛wYd u+Vb[˷#EnQ| <*YjxQ n.iٵ-)3Ha8ؗ%,6mFhO2 se;bĞ !<ҳqL ,$M>cF^TAވeHvoo@"wp~gNLYpx uu${Ee-<|z vDul_gf%>۲hzlJo! |&H% l;/j%v<@g׭ K^eu!'p@giDŽ-$01ֲDPd,N(* ]AyHIoMm&KX&#KE^ 'H"8j$P[.ل&Leay~:B:K(QBq@I1 (X:8Py$ӥwpX#lRJ" '17**{)ѽuwi7W jx)oMʕ* o0Lс""I-;,Xb wtGc,2c+ 54B/_@?2{m̾kΉQUj%|a7-NT p͵IDJh8C5d&Zrr-W8Qj~MV`xm&4Bmq'YJ yAf%b9Z%ޓVg@K2# c%R ܈ӫM/H%3H^D+`go f?v>W&,bk.ڙڟ^魦4tOїfg6#W}"Tl3Zi=.RBEP1Ru_t kF"b>8gݯ]o\zTݳ+%ǸspމUyPYFjps<'[)WңafչIC8꒯n0(΄Kֺ>®v  iYY)Xe; 8䵶ywg2L? z4R g@2t4W*މ17;y]P%S?PP}OѹY^AIE2/&ӊ⸼uF1.,^~MվqoêPTV"O/ώ21cI"CU.Br~QQdZ\k_mŝ l/tKʨB-H5 5XWQ}Uά4Xn,='瓣5xBVG:E]$ݔyW0BMֲٯ5 '䟸C,|P۹7K7_].9tm8d(eYD᝹oM{G3&H5Ha5#M'oNU,f{o!} aAYs['^1/<)!,=~z #ȑ3QAi0R^^N=JƘ{m^ٔ#0He|H*2b =Z.3HPI #r6LlgXȥOkwHq d)Xm"673B ś" c]z]ۍѠ|E)rBz*ޙKu+ȜūQXC*O^}rZej#/sY%\as犒H%x,Ig04-ΤnDVžt0iW!y {#]nzfFZrq[ڭ(sN# hXt"S~8m&m>+^c4I-2zW UW¶`gt>2ݹZ`^P% <ޱȘ 07[ ¬N%vMki˒u=?1ro_3hXr}7|f2xgW+:;Wì_Rpћlp;&'bd՞3 8H0]"YNͳsW/{he7^igL`wδF]?8f9"bQiq򐗙M6k 4$8NK,Q!H=/??iCBwh~\-f=qudl $Gϧ£]B]ˎ3=B4k ,S|47=Y1GwVX/_Һy[{p;=T5zTHH_#ԠAlو,((C&>p=#\Z&:] O=/%w(Ya R!ڎΥ:g,.ԃJׄjRC52lI`٢@mhpgY̖Jʽ{|X$#ƛbT}vE>]@koo-H?Mw>77~]L+i٘) ~Z#|_б? N]a /o؏x-RYIt-Ԗ`T3e>wqh#6|R#_dn3Z+3 0d\jO@gaoN~i&C"etqfҪX7Ï7Ra |ܿEQٳ4U[ZjlsD?JE+]԰{P,/rns:O3s @$JLLLAl #F)`^ [zUKw8Rr!QphQT$SxgmN"W2_,;^¢))J`Z(͋W.qBYnt8Sk1_J]F8Gfnff~Aq^Zwp(@/I4Þn$gt@N$uguYNum|t;r滾@D"v~=G٬ܑ'=MUxh>L4s,,Efז # 9߾ʟ:<:<V`nD^ ۙ Hd^zqNɛ!1a}us_UYÄSE/h*UpR+qbϒt 'x,l SɰDXQSƮ8qbM^=ؤ\8ԅ[,wXZ 1ᙡ%{X͛W8Kdh  /QiW۳vMCc|ly۶q#>?Iv~uy" 7 }Fz~db=a(sLlx$V ,^7&Łzeё%q wwtDfdD&ׂfڜZ5_CpL3ywgu "HۄDgfd(졜 1ʍDŬ8my"k5T~ +d#QRML0y7pQ:{(/hWdԫ ZhRn{]Jvwh)UKTW7ls݃qWJ{zP8Nh[^1+((5jc[n0$Vj2;U7?ߧ&>I?mͿ.,Sbd&,+*R_p텅Ȏ[n-|0+*e*S+K*o%(J;xA&%NIY?3]k8eW`9 f]9)I d|8i]uH@uHS7n%3o A!o{> !fڿII9J 䶥ǮI1r+ootTU3c rl<vQC] W.>Pi1߰)K HjQ#?cY`ٜ'bbe,Pbdn&ۆ &u ᬷ:UVoFr__eH6QҰ2~{__qItnV7d+&߃;UdF(ylk"w@Nv!|¹;It[A*e: 4X Q>'[i7"-=su❕`H/蕧 )ҚyB@=f:(+ ^KQ"?,:5qn@YSr?EKE~ ]t3xD`&Fm]:B>*ok}P`Fj;ʋ[y,YOc,~xc:g:J;k$ =Ws'JYpB͵qۆ7V6Fr3>gݮc޽b^5GAxy+#ٽQT&j3_ 1زnvqʌk^$h[(B ?'I'/`0xD|pq3/MXTsW=4l e#LDތӟI0Gr jhS(P J Ͷ?0ZKEF^w}hPL{$cW/C7EM֛}'~`gd:*UkZ$?ۏY_vtwO}DtSB956(k_^|˭ S@ Y*'{f5K靥/MbK6Ms!鹶+=x)Xvn;y7r 0V)6V֤rSOti* cͅ!Cd1CTnʟ6hu29-rS:b;}[ f&K8[n#q^DGG)~V%-@&}[qԈ-e'o[Їdf!w%hunsWҍk.X&<ඵM1_j~~> OD)j6nfx2`QF f8scРqA@G\mHϵ^+p8IN7$K+Oc“X.x|cg5z&XU$@v .6A\) PKAC1"L-&nuvola/64x64/mimetypes/source_java.pngUT `A6PQux W{+Կ`MMMh׮]{Tu.Cr<22N9;f(=fvzoFS}!#^SGnO4^5T}زqݬ{B#|>0*ZAޱNkPg&c,{Nv%|Qo]]]-iK"t{Q_(X v,k_ba&JxH^BC< ~uឺoO[ݵ5?M N4ҭk^TC'SH_luu펯kJϜ~i-.[USǹӣX*8,*DY.W!Py(FQmF r?ԫ-aN>T4TXRņ׮9㹆(FAy<+6zR(ٸc߿-%Ҕs:srrvL>i Zg1Sߦe|8GJ7_xq_\)4^pº;r`CT^m]]$Xb(UI4xi@D#(W3{Ai,UkuΦ&%'7vI|g]oig@^LBvqqA>zYjtɚU\+Dt8,Pwʒ8 v^.jXDZk7-3rI<_kt8.h36F40q94JePu贙r'&`|$AĘJa>֌y'8pJzly)ø#nѓ7"k㌌x2 NS#~3FEqT[[x*Q2VS:n.⢆Gc te ,f#Gnm ΈjL)ifqg"c|4j5qwM,[PPiwY1ңEFEq?椦Ux,w*_ourrnnnlwڑ>KLL o݊n0_p\yzؐ>]J] OQ.Z8Hg4ׅ;Qݲ -w ]3u$M >ZcHyx`_Fۄi9U qT-M[ T qq_5( =,maJizDcM^Y2= Do LWD3ϾZ^]yЩ*;OEٌk@J/$2k\&ꂠ[pF8#{E&D?o#sTd72j[х3ɡJvj̬1)dr n{&8&_mSELJnZ򳤘IGCy+n饓-LS+Vb3*l"g*RTK͏RQۥ4#wIv8C \ؕ' dv6XT(ol/m`CP-*fRTblEDlEvf@fvav|fqgf֤8Scql§Y3uy !$/2Jh -VRA IRbxi #msa<7io[ZN^j?`ޝ1#KP c Òyx,s9Mh}>f3WWהB̙8@%#N˄1MjȄ5ewn F),TLlm(` C~c %佨:]bTyȪ!7Iu@3=>Vnc h%>c ".:( S~rO(%NbB?m`S‡E7e{+cfw.Z2!@Aۤ ֆ,ao1.b\NDMۺo0#Z&|ꚥKMfWcǬŭU߷Lv,yjoU`_ @Z? f Qi%8)jGv۳Z,SO׶D=~ֆ|"'07XmQ6Vt0"y%?|ʎrGz+ })Q8BPw$m)o5Ejr8gggc/k]Z~e.$GrRpS<& ,!חs[KT77 ÿYU|;B9ɤʾoXQR:M8WկaX3{jߔ%bdVJ*)Łlt`x~4> =mzpqZV5i 7I,2UR[~yÝ+%Fz^s߯Ͱ?a 3Nؑb՝ zv5|HhA*KZ9JQqt{58'EG۴g߳~KF-[y U6܏}! mQ#cZKgIYv!`6k 1d[DmU>;!=fB@ @Q%M B IIL6ҿ]"phui2$RgAz_ p(KLl._mHS{<&1HD? 0ռvk2ެj}GTס{\8woOZtD2LaƲ /Lado݅1i0SO@4b?񱢢"sRTA?Z{ 9==] k?hf8_HykDؚ+&FZe0O"lFf9J:fDкepVt5}Z]# iŸ?E#ڲ4 x)wG;+PKt913:#nuvola/64x64/mimetypes/source_l.pngUT gUA7PQux -W{s Q!rR.gP!2 Iְ&Y؜qDƤRl;5el)҆eKEe*R֦ܢ~yy ֯B x_gMGbr\[ngu]K]b^ΤTP"K Nx(?v91= `::<00P2DE}{Gŋ=v=c[E &8KmEY%z<u3So/~\.֌zQ8> B{``FF qDbk`Dze[(ohh N, 9d&+KJ+53Wv<#Γ J+a97g ەh]dc0/<݀%0@d`.#xrl$CtS|| ~Gʃ5gh^!wIJ-[7m&_p>|~b":麬U4m~6 M'h OX >r1~NNQќ_/m4`\x *ϧUmdIRi>?tqQ1^YjFm* !Q]4i. :`j`m%x%7dAJyPdR!e{nI0{, ϛILBC:׊~zO(xn|N7;a{"<&H89\>|` #S]Onc9g~÷37ȷMla\6<s Z6NZUZjmE>U0GE$-#|OjtNLFg&,ɞBXBZr8YJnALm_#PĘqZȰM3֢:+T[SC' ׁJ]os]яpm62 ܬ%H \"twhYs/jW4%x5% [c7[a3\6 wѧ'8ܶ|/o&ޛ3P܃` ARZ=t Khy聧3C+C)qmmsRz8F #$dP IZ)xt{NX9.YvOcM,`j(WvP!gT.w;c$-pq;@ Ж&VtD/RI=݆coeL8t_.LtMx+{|UP-fTuM\Q0sЃFfc G U s~+gs8 *Yv5륢R8i@E~v>ᝅ7:iD 9/ pď3K3\b:K9}0Dxs@O efIRڃcQQ>:fk5?˿"|'d{I?uU,Nx$*kd5pŽtaL2܊Ө &9a4>[jWB@=-ӿ2I0 l]o~wm~9xU N"+LgGLDX]/Y dry{yR磽D_˚ێ&@tbS2PmMY@GE 8B b?Ʌ{&>VEjHh/r?y1}3!➆kF #ʆ'Sf 9<آ-}JBAtf /lYALZQpXyF1;q'7J6}-ޏ~v:G.׆jar}!1n3xܮNɌ DE*o Pse9k.. *0%o%w8}yMu#yQ2ʲȐ%Sgns}^H>y_^,#!w @f`/~߉;Je~ G4cZ_OW0_޳@DNInTo_yo c`sgPٴ"ZG*;[[*0>x )TcNJ9_gׯ{J՘~i0Y&42 9Lq~* nMB^Jm1*(fW(_;9&neB ZG: ˒S[C/ ށX3|4FwJM0@h{\Z|Oƛ[uD|WWR )Á4_&#KK) K{'沧=(T{i­a!!L)1ޫ"M7NIM;tLo); sٟe8;[e`yj tv!d<3ITRL3~jއ\ݑ&^U=ToRQ4g?YQ<K`OF53'_]}4bP%׮y/x3y^ =^JODvO~ߵ7\W>0BYP>&a+8ޛJj;YoT}+] !?АOjάՕ↳Ph?3{Cp~YT5nwo~}myPiwGx﮷+7mAt]v}c=z:ɨ`Gaeih2Y4sr)RGmn7ZwmeHԡcsU MIJfvI,) *f}y>VVXZ;ۿJãׅ &o0vb-kOd^vILHq&JHQ/ ="P NAΜ*L^ VإߒPɗD*ۗ;?psP%.^C9=i-e*&30N|5upDucY= fn۞C{/Vx 9hcta)Sr2 BdtYus<5Zߥ,ih#a}K}}}er[y ƊBu8//J;cVg1'#"V@5fmzw m@h_Ǜp:w5_YrXڂY/.Zl&2ZdEWcwcV 鱞v;a! E$K eҶ{6 ,аE(}DʵVōt3X/g i%+ ke/bDpN-EKS+WwYΎ"`YN_=U58Ҋl(^,^嚒/y>SL@2JyGP>COm-կr XS K5܁6dT$^kh9VqAFtӐLl\3U3X;iN5$D+-hꦋ.8ATV2elYSH`xj `*XGO1.`†oSNL n(0]ڲ#3p")9 +ۘ=3Ѣ,ٍ~⢭@(ʾpGruMKt^ &sE%T`467'҄4P7g8/th0z\ȺBn@3O5uqt `V9#9^]50qF#*杠ނҖ]ɇ&6X-l .=ɩj}wZѤ-ȲnPpj%pxR!ʟzyY-A^E\b%>&2Uy#zO|*cA{7~vDb:UWG$bbP8Ji 1~Џ4hbE/5F*U Ď;Z8uvfg[%w,VT:)uIG'?XD#k_C{>W &14R( uP~ס[WG1Pf0&-o\ mtCw ftd7U*$#6/|ÛsERyg0AmxqVӉ xv8/ {UT݌5a/ \DL QKפE͌K t#uZT&ri{_fj% `\AGOu@(}# j6|`u>_k1Oׇ·vFMjv8]oa,3!7n܀ gS;EnL*AFEq`s17sa7Y^\W;}7^:m];8jq/K^Y`[ĵ®;m1t9OodWAV[>-] vfne{zBy:xq uޛ6EM#_+icg)h)2U<}'5T.2iv"ckT^p2 ƾ\/3+vYIO_OO⪮ JکhDYdS}eM Hes 4Tb,@b<)Oh!t*Ys)5EK ^7G6O~0RxIa+LC|G4w2job;;F8`2p,F@7>〹#]$Zј4li{TvQ $"`>4Fo52{~Ȅ6<Ot8:j od &յ4`Т9Z9Up*qI{0~Ԫv_fT2U=$Bj"es" M .N~|Oq:h^rI|D/?5%4S>$˭kd/r"2 LиuxRƀ%xi+3Th 9\a׭G*ZH]!#l-DAq}1eYRV_iE=S%6uPk3h@6 nBUȥ8QN_4SI QZvrȤ1WǗ~? ѽ''%Lc;2zT3ѳpOrظ%䮫.{qzQD(ldiPwk6Nй[;{9jn (mZt"#CJ¸B&3d^o;\ޠMc'Earzo Cpl1/c@rQns&HܰanE+ԝ?R7]Wq47+or~ˤ2b̡bqmmVT]PvLRtX]6s.Ϸt{"8l]8oYomz17* 8sCQvK3Vf UP:g6-AHYk V\Tyl޶VsY2Z .b̥/:3Aky`0RҪ~OM֭ޱ/ylxH[/NaJ@w:vEOMvQ%.-!cّ~ p JPOͼ8!DTip[QkҔJF@FOOtoߠovBەGugesAdh@$ [2uRk~M3:fnBD:7@lЍ?PK6C1s<#nuvola/64x64/mimetypes/source_o.pngUT `A7PQux -W 4T?c^xΙ3RܚU)Q饣TH5uӭYT;B&~:绾ku{>{YI" V׋vt7lY9no7d="Rb^tRd jGD\LPLDtOVy"5Zw?@45q! ~ٳ+374S]ϣ._azxW?s[I`OPLE@dI T*魭 >>)Uٝ‘4o_^?֐t48@r٨?#xS!{L~DS{8B P"򉋢Y.t2qĉ%Nhr' (]&f&V^MӔQ& PM?PA҇yR曛"a@G#B=6rSL{B9d"~'ora{HH8!Mw }~m2P8~xf{߿@Z铉 %V8sAfŋiR(Oy9@Nuc,/8o0I% wpH' Ek+yͼ7h|h^F[V1"p9;Et \v*M@QH6Rxu,q5:4g~v*"_Pn8? euHCas<~{bZP Hk.%X>n)]Ʈ[98R%;Ƿ,>9jğ7uZ5~}ӛ`Ov{z =~~Sv¢]t Co$ !K3*7+DE*2Cpf^(E*!ly@VH*! XP[ %\}gD<3\l#}HN( C-V(6//y3/666yYhW ]ŎTGXgዛDAs{墋Oh fR Bq {ؿcח0/|H_`[뾆 KcmحZeVJ&)KsG(;CsF ި%k4s0CΜ?S -BDfgLMsJNnrpFmx 6?uVbXJ`P\{m::x52OMj:/jL bBz9:x6ʏ V;3,,lŮA^lW^i FJ9j ˅,iC(&<24(@U!^ =GwY_10U ڍ % ޑԜ3Ѭ@:普6 Q?-AO(rvJX:Lie ֚rxCg:Vb6$YY;-dq bt->.DFl۶Fz߉oرV˒*,яZ^œȜ;Gغ.#]:}t+q߂M&)"+ő<~s0 ($EvfBKvT^(Zi Ւ7jw= .JVW; CUs7uUOT$VcφPb3gG9'HӃ4;`|.K_Q9TQf`ce l(1x)h6 {w֕w^"މyHCH.`z}[rgf# 2\FCQ|#Mt#Q%1|UmXHX~ש ϙ I/Ge!G J)S.3Yx*ĿʞQXk߱sk{NPVX+/cy2?$nĄ@qkHobHJHe/bŋLm+n铩r,yci&&Nӥ #A W;ROQ4svwqQmA۳hM dz@ijسJH܀e5&d6,DnHx"l dɰ8,~bdv`͝ڈ2?CgkfLa,7Jt#d4UH;@ (Btgl<,jQqbUC6R8Z+Ky,c{KCv(cbq NBRٙaP],xY`tƹF ۲2OYl@Tq,˯;K%4K(.z_[yXەt1 \V:/ SH?]o^Q@|$K?Ў-K55 {Xt9+Af\vin 6Jk9w˹za Vo/zcC]gv0/ 9Cr[4OE6yz꒒|%X;I,{΁@EQ^yN KUX&VKƠkVY,yT.yx@ʄ'SMX(2)kմG(1TCz {hR䉩 #{ XRKXh3Tƛoчt0?)3.]%5GN K  I ,7vކ2xKeSO "uً][CY+:v Ws0IE7p/:jTpús0 1[H{*}7҉D6]9,uKEO2tGyǧKC[" @R4 5L ȹW_s7U'K$Ƕs{ LPLnȜ:d]^HBJGq'^6T&Āխ@_qqF4U9MFԇWaƏO&7µzG} mCX/87>^f@مN.2Q8neNz&ﺸ}0C iDԎVl3EA=DmW\kފ(R\!+[~>Pdڴjin3nٺi?J% fMg&'11>ȟXoyZ#C4VM'q&R391 @ |kҥA+>6zZ3vh<(Y(rٓN x cX^^Opw}9ß]¬T#^25"HNѻ*1x_[n FL :#pk%9*f&$i`S"o3؎R+]mY.6=;ۣ՚၆7|[.xU+59w9ܠl|}ˬAoH[Ph6?Kq6s/o8L䱾BP1]]e}SI\tl=GVߧǓ8~9­9u\CUL6HG{ss)nJI;դkYpT4)&M5Wd1!Hco7q2Fqn#y`i׆o~gMajCuyrw>P5XqYjIa:0!!?:6f [Cvc$XQ8 }~`I1M̧զ6;b.V4Qn<+w71rC9UA?-7 n"A9`CYH G1 D .kl!5e@5X#;=^ZfzNaR Vu¡vhUk7|PK9C1즕W#nuvola/64x64/mimetypes/source_p.pngUT `A7PQux -WiT֭!d01L2AQh8h[<IM(eHF}<%H@ZA"2؊jGݻ9/d=`F![=t'\QĔ׽f3gJ8qQ qqQ9{;@ulh~XrWXߛ 5_?R:f^sgqJn;#jagg--])kJ-#i5N".؁?ގNow~o._NnG~ s&Z-reg'9H$X\*,4Za ^^ IKxBbtBB#aV0M8i0 -hӣ?{GQ11 T_cSd2a P5 ^M7WvNo4),DkMJ $kf_a7oFXuj*-1Q㻥j><$6t JsDb\'{V(|u)'ΝsDk(h 0l@{HdT3̀8 LDa1MM9ppq>>mpYh ٜOf-Rkxy*bP!6^ PˆpꂟA81LI}N/gV~c'Ɗ@qU3 @U3; q|[\ $ʵQ_ZKVLQ 1F ~( fz`$C+X=Xuw åL/VcXJa eJh=1LQ>ԚYd 5֍z&&<{ ˠᅃ,yVm6)[v禌N-ϱubC/ӋSdVg :)J +( gf<0aG#䡮s."+_/ndb/ho*{AaPpRKA[_F4vΌ&C>8X5b\[Y' T07\@ 榬k&[[m5ԃ Swϑ.$* UWe)S&( r[tDtJJ LEi/DxN{+tr#uᷥ(2kϞĘqEC߃ _&Bi1 hb-Kz*2X^2&oy *OW8whH儣לF6 8&@z7~•Hj263ӑ{16wSZpRxU10k=5rBbN0B ӱq260=IU}Nxtk7KS.| !eNw2{+jqw7 p-ʍ֭ |7SKbg[Vo5,l sUq2,x~hi]ui5Wi_"Ig-0k<@}SZ_Xp vibF/׭;l}%dہݸ qrGeOY:jSTaC[JivGOB}f@P *1:~w{.uim%pgnQw?xk lI&FXt-uշW=d@ٟ/S0E Y{ʩ/޺p6Li" |t_޺ ^^$hTgq޵9`QJw'Sϙ Cf { djՒk %_8MM]@&FJֻ6i^<%BQq/I$:e:%`u[ˑq vj8 NHЂ nM.hYܚ&f#3v23//4XQ319n}]`K˞/:z:㳩囩-R!X4[s e42/,vHӲŷl^ɢ6ΗXb7W3h(cbqT[eЀ.SžŻp]B20螪l%r6@%wHB)uzX[8f?|(~UKH3b*ڽ.^Y<@+ֈ~Xe</!Q[_G.O֦Iv뮗OnEb~`NAhӫn r;X]ԣ޳d p A"pxZ23} kŵεrr[V ACk"@^E0QqXS7u7V=,Ao9wm^TWŹB.Ql>WVؗryXVR8RiA XUW-|pRN&{^< .K!<BkC`ED!~~!3a *E$)1jLbaΧ B[R@HYFƑټdg ,IJ]K@ sF,,Oy-`{0/J,ejV?R\a5 MV KJAbKeRxE66 K_#vt]t xY[6afJI)}o#5Ǖl9$K*' iugfzD:X;K::Lh 纽,;j=[Lˀ.+(73"rh0KW6zw59n˥w-mǵ?jїNR@iK7Qob#a'^v™H`g"˄?kub-;[.w1tpt|+!mƴaiݶs KT5FԳ'V8M;= ^ݣD7^ZfItcs(΢ 9Vz=_=&k_-.[;2)%&R_$cVGE}'E}ӴMH97_X;D*Om f:lF=e6`ʀ;6eq/.h\uu%݋O.,tN=4(^B*|STxq1a$] Ggf_K*nEoK]UCcwtȀ`wۂ6a,AЌ 0C_ dUevcAa$ҋVQM1|szڕXN@E,qp _Y@(A]o8P4gDyo-I{ņjulU QZw 6P^OE <+|;5ӵ i3dSN/ ;0y{"D͜æUǂmڔz?E*咦zD'~_,;QEA$[˫hOJ5@{zz;}E@ך/$X7s(ÝTeˇ+ᜏF,IZ;ϣ&&P>03íVE| H@>yERWCyzcR]06c=p҃:jA*B6nt G+Ӭoߺ^=+x\B_G/@ZyqZݵ! {_ ?PK&C1qg%nuvola/64x64/mimetypes/source_php.pngUT `A5PQux % 缞;hƾ>,cѽo<^gpCg]xt=ȣ'B1d!Q"BD|wsGPVK`=,<<\㪘+/;x=vbάO/x@h}>eUT`|\&pZC=}mrLB?kR]t~uu <+0xvV~{ajj l/;YEw $-:8!4׭˕1h2m΀a3^N P<m@;ܴt CTiQlc~  0VfB8= *iiWVٶ|uWVx#{YFk*oj0/0 [171w™٢qNf>YP?w6L5&& / ERS,Azw1Qܐ2o}NRe=KwJl.ἒk"~H]*otʸG%P#nߤH{ Ft b>],*P|nEn+wgӠ7A u?t,$ uǏjdcĵ'wʡX$+{&F7IOEW_NWNa߈oC*J16镓X".8|J4רc'>҅Svpې6TFs]ʺ?j@dD<[eGwXFHkʾ[ )EDڱxB*-꣆IϦ+0+mKk[$ -`= c…~V?!WԶ.+G88/ zjJ;-]6ѹE Y.>)$v`|6P4kxqt`DP49Ծ*f Cp]p(q J5q1W1EH/0',oJ~k<Y3&-Q4? 5˪ts/+;*68p3)I%bp$+:!V1G) }l=n˿lN W2woJaKayEg2XKM]C$]6%Y8ڹͿ ugB` ̈j~;?>9`wVild}'"Hz.*>J7-$I*A7HU¦\3q,$D+@[aՉC8 "T+\4[ڹ/8F n}TvO(4Hy%Dlx*N/%އRJR& .jI%G rO9p ;W܉<$4?Ѳk"! E>GBC!+Ov3VĥN3ěNÔU;BGctMX{$?U^fi)lx)=p:Tˏ)AMrj  UȰHV?KLI*vb+fnSS)p?.,?I%׀[_MB.s?S(}ewA bnؐe?LţK=9 טHc i%CCX/խ8Ir!X ->31y}A)Iscmi/mcdd$ ѷ=S];3w"θwUݑ;67޻-柯g+ZYyεJ3EOg"Tu>57Nk$Gh>ѕ(^W?M~?l9AJgQqnj1TaSMTOrf$n+=MI4d4/_r ߴ"EKg+}WQQNrrYjzA5pó\ ; @_׼6~]h3LC+[e8; &S֢$#rC;cw#k|1 tc "ulʪzE!A렻QLnP~HWr,C(~&m p\̂wP,yBaeg.?̄+e3(»=dYSٙL.xڷV][[ɋejafTE5IPEa GQMKKnJ/_nj*AH{iSynrAm;B~x3*fC=x9MW *[D"dg#+?s= .*d}HhdXFVV"_S5$A":V"cvfIKc ^^?[ (O9qVȬAk$-hg2-w5͛wFF88=fH9,2cc-evZY(s@0o\Su?}&D+&TQԳ#,wR1i1VmEt>Nf&b.VeF}7*|GcZ!6Hl 'Y$4fƽ`;gLF5S'Xc?׆gEQPܸ[t턮i{J| |f5aK11$̊Ʊ@ j^_pUm.[12 QG!$Gd C5s_2nJRa_tI(H%(.v9QK-[\T/B)?jCN3&kT] +Ov6s ׯࠜ~1BƝ]h2 Ͳqڴ:;FNU>L7&q7UX9TJ]|GA*szN诔`mb-К2ͦQxvGh-X aNx`tguz(.T5n6x$ 0Xt'@k IւZabm1xYәDST'WA McUނ|Q$\OhQ$ TY~?($.*MVZ>3wy(b-gXcAzy!!'ի-,G' ^I6A"v TPBɗ̢\TCm]-6I֠l NW Q搬(U5^@D[yb(xvD7EW6:!rQv m9-x/iWh=t̀{ (U0)fzo- j1ڹ=i?H Հ K8)}^> `kѓ4>:ՍO[a3m;eg)t7G3~V)peslʹd;:b~,tIxvr1 #$5| +cMo0m3Hz<a"Q/%&U$(_7"}*O~ea8.DyPjMO*">n#TZ}CIkH'TJDJl7;gIT_. ]NrM3|죅0?K1a< 9bѨO).ZeN%}N ?>d佯ln%s3iMlW_w"($`\r|j smxg,>[oK8$F{ZC_݃CAB,ԭʁOYRᶳWOBZk'T(Ig vENoɳuw%vK*cqhle >i>K y1V+?+_Ir!C$}fƟE^x2ϡUAjȖ>?rKR~(<1+ f`0/0<6W9Wc[>%_xY M$a]@i Or _1sXEJ§Zҫs:.ٴl&`צ r3ԟSYl;!}g&}083RCW٬ ]R ^QdK @PgM 8E3}\ ˏ$=eZֶ k j^zwΒk˗4&>h hVZp;Ϩv@%:ACO&f,ec:|{"{Ӄ5:5pJIGKcx ``ӓl 2?kQxv#pd85O,X ޛ/Jc<Ԃ ra=Ic0SYB9/X 0TQd1z`>`/$PK#C1J$nuvola/64x64/mimetypes/source_pl.pngUT `A5PQux -yXr_4CDM`Xfdu3&e%{dvm6fbZV3+kZ9cyy%CsC(K!~{q^/U||glUDщ1ҭq1!1ѩ[b@{T_xMin 5#::ѣG2tW4cNrA.o.߹a! \ D6G0*ŧQP՚X']3>ߋRXgDE~Gzɨl.;;{Xh]lW7* ,E1]fzȑ#AZ[) .ˆډ%-3ӜV&_$ӀwLI˫&6蕎FF_o|Ss#0')1FG`pfG#ͥ|G[$(t5:!<۷RdX'{0)FF[\jG7A]+Dl`Āku= h\Zoߊ9zgr2« T"-QTTj Z33MVAv^AsnECsXY(&Ge=vy @/2'])|ܯm<).ot$0PQw\UjZwӧgz0kj8۰In췑wk+1I6)=ҧ~YY+ꦣ&Cn^IN ً<;D#ok)Z[x13ӧi凊3z5RؐJwUVlLN u!,w!Qbˍ 1Ba ή=+fq. ||PWf4e`EE|C-þcQȿ93届6 [G?ׁqDG-؎tO؜5O@Z`Vf:Z GQ%-߽r.gSk4gVC1f0!|PO2z+8fnVc3륜6[N3ə&F\\oQ 6]ZkU4Hʢ /̇Ot&Iêǧlk LL,66jĴ$ɚ.W]Il9Bh}fَ-P0ey+1<f"+)+3E򾃐48/¯=^WaGb~˝_JMCo(#l%Mm pׁ\<:b:Srt :سO&!& N@aUƸں ^7Y$n>Mvl3o6s򚜭6I0c"|>%E͛WX3d`uCV,ź}Fkʧ(ܙYX#mxPNK9\bGh>l/`h$/ȴLJNNNVib[K d17%k)k4Ѝw_.ڋTWYOV aiZ:ߎ:b:`?#-o ܁aDinEٳƄT .d0)j Ő\mq2ddڟ~"iL<3R[úM q5 E6 56\Y7%vX6\8 '3@N VKݔ|_MMR_J'Vƿ(,3YtZ[" ffM(qolw9u\`fXb~\mچKRsn%L;xԼBl;LЇ<}\#0u*Lg}mTLb/uF?g<|$T$krbowˊ20̐v"G+ wXc!现fDa@ @1nZثKҥݝEPQQS. Tq~װΨU(N 7Ϳdۗx˕ X^j??7gW+:2PGx6c]ƫ^!.]8iI .O%I.z)(~r<(6vp.%Jg\I13s/Yx/*\4{ RFL+ܾOMRSbTB>٩)i5Ncs^>vm28𽪹`L9SƟkm3IR.irr+ Ip;>ҽ䒱rViB&ꮞ W4N1ob9XndsNWb"mYH@,3{M^F#T*#L~2[|6u?rߜ rdžqV 3;FU"jjϝ htZ02C ;vulyGPkpF|( VxlyaOȒEu:ٗJ ^-NJ=u7g=4ݗƓ3noAyt4dv/)wbjܮuwXt*풮cg܇7J!uo׶ ;ؓx{ȹFfPnCANCo@ a]߮j䇺:E뭵= `ȠLs ec{_qUn듒I,Og:D9鈠(v5)))!vE9ߩn0OUT?rb >%ۥ6aJrrЎiKp2DV-ztt$*\ft|aacQԲ?z#X3\wRF\aU5DQFE0@kF~<.H xM_`vcU,erONqvZN;,a^Yu$NB4MԱYxf74;QB|bϿ[ BOIR]t#xJO&v +'P(s)]Fj7苑fd>'y&~&+I..Ý zLnHU^UW َI;jk)%巃e<7iQѩTңG92\'[ߧSlp߯A+4ľi$G7k:;VEvy^HZZKcl;VNOQ܁/Ln6mMѷ58䦙x&+@G6p1c34ek:ג\n]},`l+6Ȗۻ 6SMl(5VPVDJ=N7{/[ƝqHI_/iG`ɥ)bU=?ݩu \,]ҹG;eCKޢC* ;.Htf=ّQhnu+FζSsvg>Dwe= pwԡabfcۚM8zR&q?X#O loV|%A a?My{J a;R)sL뱟` i&'9Nd++8 s'tfu/a [~:P&c C[3H5Df.*qITF$.Jr'*~wSX3')o10Cʧf'}Cؔ(~+/213-Cp՛1zDt;v(J9~Qnwyy뺞7@YjG4 :nt78txgb#);*1"z0<6:0:<*#;:[?P `GMnTTǏ/W.|!K6ۤ^=7u_kw<$ِDtcr9{6OOP.棰,ˇOFZ%1~&&~+rȇ''9:??#OՊDS)_ނd2ϯkm9yڹ ˵ j9D/ CUnCp->۶EwdVB;yǨ~! Hi%>|@xꠌkzn'" OІq< !%ḝgQ!1FmE)5 PQBh\=xﱁg<_ D)PSss8|vnPκB _m;fvzmS/HuV"W9;p֣;.s q[;`e0zE\ 6je{obp_CKSV *#bcpOý.L[%J&efJy_Zzn1Yxd$?(]fuAJb}K5#nb aٙ7{;::*INqq]Y߿r%9̌c@k 3mNM2nP~p)9U6L40pzO?kKi@" =5Ja1xQ]9Ed6Fq)0LnV95${@x4Ǯ} ѶUβzbC|i|2&&&iRmk);B 05VW喲^fGFIyIbdQ mH c?Z'!}sfH'h5ċB.F#%`'n㬟hbL0 So- c5l6I6~Ox=HI2]$;W=!M ;"~GLg:-;ۧV \ݝB-^u_[R*LT#?CҼ'iA!m;Đ=A*$k+nbXcFr ?>cT/"켨OL?NG%rz˶>e6WLJLJm[ il㔋; n2WӁ$m)a0gh7SDxqAVұ؃\֜~ϡ1+}g"R8>N֢Rݗ=͵wW::O&& BњnR( L /ut V2vBı qYAs*G/*̓u#kNn4'9Qj͆y ,ӂx>}"ƺƦ^m1SiCmcF|8M=kyz4q~QP"Outn\z*eRnpqàS?Y2lYA$n]bX~ܦ=4a44m-1F HCY%^g׾:\5Q[^h3@ ,/򶩜01'۫"ٺ*3 nA\\Yrz b6um+ygmN+mͱ5JwT;j9O V 6l__ ?qgTĎ4AA+ws3H< Tvuxߘ~RV[r;KzF{bJЯ켺-4XZɢi(ʫ\Zz|0enc+p5X_l[ Jjwg׮cv<}hؾy{zm(H{Soʡndi>ˬ?eO2@go!vae9MOI]xjf(u+3 eX~11`QzȷnBÝ 9eKCQ 6ʁ@+F=߂CoihIpxn~3Y9nɡ+<7嚈J 7uIT&NMW}!+:sa'7W,IPx!ݷ6aېnssJ'~lv pcba-1:c9@qW?Rk>~ikc`(&&sM9VRg/rH;V>32pi]Ʀ)Gj9 D#9~sp/)?SvZ5iН=),5Y/Pv?S̏|E'ߢ? c ϡtHn2ժ{H]ȸk2ߛ|xP-6e\dnΓ*oE~QYE9;3 ]1 ʸ>QB6;; Vwgc.ٝ3`c.D8/EpJ@S/ gs %q2&C'RwGccJV㉉[ DY_RZAvk[Ѷ*NgmH`x2ܭ'i -< #VJfBWk$VӺ{fk9Rc n]):sJcXn065CKQ\^.sΘ Uq.Q=~g>odF$-h0P@[/@0xxd;Uz€2PE6 #'sӒ\ {꼐-R3gM}\ގLcspK8h0>f:+pRw\u]Dtasդ$U g%3Y촥+DR$g7x7D:ݝM{O:D5_Um"Q,/TgA#+_++la27#ĆHCxױy?ָW6tmv#0Ot*}S݅--?~zD'k؏ҙM>f G+\ITx uq]~| bפk er'k-k* "ڈpԗRmJmYG&8B™`MmpL+oH.EgQ~gm+Nqx1?~S( X5/`h{/ 'p{+ ͇~Ow/]:ƿX6SiqaijbĜY`!1H ËLn|k_9pv{_a(oP6䂠fRPZ*G9Fv3N]DٰQ"=t5EVՇUT:\nIkLau+s M5cu j^R2(E f*Dv[{\ <"1~]P+iE %p*Э,,d-Q>5s6?]`}c[{s7dif!L+SKIܿew=.Q^ @n E'oi?O3=&P-˧=)¥e eF*vX-Cり[6K|(4 n|] Dn1ڕ|k^#͡4 q^ ەw<{+]]FSjf<_CzCd}[ ۚZV[xb"S3OJ"}yB2+5w䐵tPh|y5''MB@'%azqLTp\okC;d,z PVN9CS@mU "ˑjNѯ(_q+`7AhD5MT $ѷ{$pqr$ _6ݝuAl .KhgKD3y1Ÿ}#B4MГufD 'v=ܬZ%{Pt]tO&C,(m^qB {!̎Bщb`/>FKlB8K*q&@=;]حdxR.jq<׷Ym& T$6_v.V,[uDrsE`N6Jov2,uu{E h,9P\<,g0h<0`b0 /ȑ-+UkR>>;@ }8&^x}lF* 7>9ɳ R==o'34d[x,dwux9B^l"' 2CRR>D4A 8UF6p΄wA1{ ~kOr`7K _&f}1\,Cxf2 "ȑ! g%=mZծWٷ: 'vu1pY fh(}x 1{ .|W*`wõMf߉SOQ_z1r\Q&W5lcPQUVݣz = 'y2ʽ] "g/z4:sõv:4#/^\O=εg}io^iԾ>Pi-Jz̊R19B 4:V`ЭHc?^Ts?E/>bD. TخS~*9خ əSħ8?vYPll{P2ɺ//o=}J hL:r +2p0NcecZ$d'L䄍}̝ sܝV^ Bxoz`|9Q2;uA=px[O|"(X0p+ _wW ?PKC1gx#nuvola/64x64/mimetypes/source_y.pngUT `A6PQux -W 8?3Ƭ2w"&,5("Œ2%YlI6nSQ*-nu3BmekZT o<=y~>߳/lDP}=4=2H!1Ok\i]B(O36s]J"w~LJT,-2>6(62&+-#Ǔ>UJvoWǏkU_VM|.-(Yaq;siSƽo#!j` ݶ6GMMUحTM4OM媨/O|#>tÃ̇huAA2sLTFL#U~&B1Bhׂ3O9r lBp 1/V,{aU+W&_mɮOS'Qau=Q+QԬʐ]IQLC L]DvWяo/lm !ɭj^}vdԝ24$FFՒ$L͉-hsNq,,K5ZY^^;NsL= { a6^KNB >#ݞgi규C0;ڗX'XR D?C:(;K4rfTD'Mw #1pmgM(uWEn:pܳI A?LUBq[!=,5(ʕ,} b .W*SZs~45c#Ω6X³W}wH4+g"X^R76l١4]1[C/ɺ([dVǮeB@H! Dt4H sI8n*f)Rk1 !>V >[-pB0g MNTnhCW\NY.$lGp%4(nn Xak>a.Ѹ&T_ <9G# ?ʘq ǓC.3Vҍ=̼d +%FԁdzWn*WYq1qqy8E\fM)WGh.\40lΨ, u-^"sFr QrN" -5>ndXHvLw=m0=űU@Dol.o-5oU_$˟ M2Rڮ*Nqa# Czm5me BDk1ˠTc`73?ߨZ̍ hgJ 3sG$qS2E:ÃB𡈻9lsxg/8R9'cS#]Hrm+֙k%9@ >3 Kq(sHI%XHg ؀IY-dIfYRun0tthg'o;VilȅW`#QH4Ft̍㷙wlX/k2_=vvakMW*=?F<M߅6z3Cׄg'OJ3LU )]\fMzԶO2M@˱6 ~(^S-7 &pAюzk1DDaVBIq3p>_'پ^ކα" upGK~[Q6-qo { 'dppq;,^w4]LU'K/m.Z}tV;:P$Ӵ8DoJ$]#Y)yOD5-]'k$Owٷ?ݸOL^Zc g;Cb 7qySr3|gpv <ҿӦ4im 7.qF)FMw (\8nT- ʬ1M讐^˝bPA0Ad|c]u*vC!ZfP?n4,AHzԃ*3 K X)̃%RW5׀0Q$I>u3:G͎:~ӇgI@oK6zK/a7磦!ؕ' ]|ӟrgH@FXY%5%.bj@~zG,zI7 *9˦?z>HA]dY$?Vֽ5#"% ^sk{vΎ$4r/Ŧ!jOޜ[I # Nt0;S+)=[䤳M9)iv}FN͕9;;􁾥6A2qn- SzVغWm2ԽB52ɷY YsO`8\_yPdle>+ذn$ݭfϠ۪-V)2kOo- Ig4 E]Օɬ΍U, M8]#1y6Kg̗6#L5: [vZᇒ zn}4rDVYA UK>Gi\ϺΗ +ޜ{\{ iۤ}.1>#k??My\|^ߨDӝuΪg>߇}A Ce beǑXe2vͿ>Ro3Cvq];] +g(զ+6ZCZe>}'Ow]MuMNi09bu ENʷ\,`"2"rRTZ7p 靄A]^Z}RӤD |t l^+Μ j(埑Kya I"|`f#a%c (æ&d ~.- y ]w24^#u5.(€`5H%|GDg70;sk$&IR'Z~f)*N2YyQE}kH6\31V܈ZVZ٪R%p{LTM)Fl8,z]"NRE4fӌ I&Y=cX-X=9J[v0g$qq HlAݢ իHoơ[miUYebSDZ ̚I ÿp_gp0R<x[HCYP(`:N}L+2wwM߿6acgi3V!߿`"dсX3f2F(nv,W@۷}&.`ZY{֊ǭQOϷw:ot;;9Z?ݼջLSVߺEQ#0\la:\N8rs: &QN,le2L+,JMHdg>56)/M2K;IWD㘆%lp ~>V"맬pFF,Iz丵d35>F‹«6B1n#ɰ|<(έCeC6P:/N*D>vUy`'IGsA=#45ncP4="~BMXͫC@ :PO/TRЖVry{fnYU]%'ѩܒbIp:lgmpJD͎Y 6L|\QFygOSʍױ cub*]Gz{1! 9/PKC1Ѣ &nuvola/64x64/mimetypes/spreadsheet.pngUT `A7PQux %Wy\R,5pI%0\E5Ms*iIT,̤rl3FkA!w2r{8y9 F~a0(#  f@C:3ЦC?':09Q1"bb"9c*=ER0pmpO>|X+BjBl[ U1p{ifK%;ǀ)ͺ={?*ARӑ֬Fj!9C.1:N\n!G7@}:ÑWM , ۲eiO\&W9s6f;F܉=&4XBLm1ڹo?m 4#˸P%ڦXhaPn. C ,o 뒎2JpべcR2$-с |`/}1x# R<{z!sU2&8b&!qw᫴hc#ُeڔNPYdk]1%DQk5h~nw=薰XK{D/K$ڶƉ88 Dsf+14CA)VBm' }mq[KK4}4!{a0Ѵ(Q~%R[5̀~Uՙ R#A b&:(>zkw湚y)o OĵՒ3.<\M1*z:ғo:+5#[Ij*m' ` ~*jUQ9B6 !'cC4W3hq(ZNknuo~;RC?CKיܔ;ZXdD>IC0?{gUŠ Ԋ7^5H}GQ=o1FS+ڠ'G5mCD^]-](9Kڅ*nEDpZW1̠]n (*B>T'(, g7􊘩)@V^9!]A D:+WB 9! XzJodDzKtPN(I?' vu,Ů"%f6T^T}-q5z<m{{V>U}G.P y FErmRJ!V6^)5Ҝ IJą,mISfʅK=$Z3h'H BS)zAc|~g8)։|SkX$2SlX S\bݐ0E JuސUSK>[^P#ɚjw٠9}ڂu#j9u?HDo,b" /=_+*ӟ]8i>yX&ZmjW &ă(X)|sYdb}//Dn\pel7Iɩ; 3FQX )(d-=oVÁc,oM>9;޸ I_cAiBΒKTSbq KBnYp$d rm𙧪| 5bu} YtecaǤ͞|He"،qÆ_$EIEB8h+_9mF) STavnW҆Peޝid&nض;1_ɍ7uG|⢖ |!aU =WJWDFdR߿aWSK[ XY}6*S.q=~ԂzI ]䚑-X^@CQfpT55 5 vȓ{"xs3P&o?6 bȎWhߛ A4/~oh4E(@l5xPIp 4^(/"VF2{2"0Q[=BimoCaD4Ђ6sMc}Ҩ6]0|I8 w}zP`](3EEIHI!;#O,{ʸ1/Կش}F:9'օpv?q xd .LW\M\2`.vhP||U"awx^l§n$<\!X?qK܅nTQYql[d.MA6 s)]T++.+cW@41H X};%-*k:UUVT<,(?H~:dj6EJOKM%7Yy~>8 sLtl$9+ypF\\n= fE[+[J\.r^(P.hEsD2 <{K!=ڡRoB ΒW-zC:?܁! b~E&Z5bi+8p H'R'NdH!"Gu#ntrDo˼+6#lvbL0}aCl*'$8($^j 9f9]Y)ۓKes3\ \W~] eF܍mQB#\ڵ+2D<$]jl)V܂wfe9y*uO{vL/d?;Ahb帼4\FZe䇚n2?K{C\~!v`ϙB zE??rSP" ޡ5j_G8g8츘YpOmwm [k81JOL#PT57y$%eU:sabJhtc )lj7cJTpi4a)^+U] O(ċ'|kYU'E \#$B8b=/ uW6^|r+Rsv-$Xs BxRm:~.T7m* x̧BZ!#sp2F ]p~SY>SD );<ؔ< I:M [T,D-K<2Xc gН; AV[bq~ pŒj3GPzQL9Gf 0bQӨju3L^)T\(}׊ ?WBeF8,՗i L4 8i'V?%'`VzvPKC1-_nuvola/64x64/mimetypes/tar.pngUT `A6PQux %X{.%\g~x~|>_׹{ j[}'ύB*w#}:*1cDŜ >衑LD/+84><ƽc@Y --f (va[Uo%鲕v|˧c=xKl s95NJ@ಟHqP P[S դ4 -rZa>\jjpc 7"uaEzk4wm=}6gsϩK:iYEȖ%biV̲QKNt; 8WTpIPO).q~- ]*{ћVEZXY::3:M*f%Il'%)t/ KrB.?eeLvi5H@qff݇ISbE}{~&/+B߸u߄y 7CGF%%$31s%,uLIS+#ȇm;DGn(0b]Gl87{5AU%HQWbmbq7bֆJa A&0&_Bn2:?fܹ#8''m/J&$HO܁jrW!XxontDr4[~ZMD1v #~uAni"qƒD)dYx$fj@ǾOIoDzqgFƏWgnTR1sSǘo:`NAL.a(ANY놌0~P,lGp;v"[ :Na+Π;L=ody9xرS:>w @d,;䔆`ؿ_*"?ڜֲ`$FO˭yd5TۼWWA՗vCN; r/)&o;oW||`9_Lo~{ʖ~)[:ˑy3_T@O"+pfRd3mfPLU#wS߀؇"}"c$6VPveU4N$D/=431|ĞKS?'3@m"Ӱi|3ăށrIq/K݈ݔzvL|W2>|Ì(Rs@?/1!P}?Qlv;YwA9{\zs 6ŌgSvL~\_jv-rV[tÕz^t͍݃́n"2{r7'!;cLٔDz5K+1K_iJ_EMS3g4ftK{d UIv?*; D^sd 3VE61_ifwoQ*nɦA x4XPs;kO`qJouZ>i+p|w7:kJ-N8FZ/C=՝NF N*ؔQpF u%pc]NlҢv6 &97mGюQo#q;i! AIA Fߚ٢_+N*kVՖz0Fq0.6ݸ7Jrd2FmN ld2]KD} 3){RԪBW:x{%uH_c3s5iI=+% Ra5@0,hSajK33_=x! V|nZ^=~!mnNCU=o+&͚}ֲ, ׮5}6K/$'\]8"ϰ.P,ÿ:,$Eު[ (t=kV&& 4jpT4t8p-u," XzWVH/F`ü&%j񹺅R'۶pX0.BQ Ci4MPNm]Xa>/ьs0g;rxMO)ˁ: qjX XRc Q'B8;KEELYRog%E\x-Nsi*C =lwq^({TmtE%|Crr{xޙ"Z"xluh] 䴐[ {/,@ǚTpX]Gaș?mIq!U]b&17B9w>ꓳ*AGu3k`u@qJVXt/.YӋSvvxd `]$XZJ籁<@j2IiH쟈VM´J$*S 2*|'A_*߾~Vha?Fx_d&tqIFst"ǟrြCTkA' I$:$;j(LlBTpcyH)9 LgğڈɩǛלdS:y#C~!nH)5ãiEZOHf2Y_6,[JW4r[]ڤclMfuZS(,jz+;3A5A(O[nxՍYv'_zyr 8G6>hupX5.YeU7c 6txC67 Fڴݙ d/f n1\$ΥP#(8r"Z Csj59|y7 } MSU%~SϾ9.{ UEpC^\tu-1tby$14jt;*!T"wͿ)n Zv͞ ^C5;iw!wᘨ$'ڤgd~@V`ex) UMMvI 6_ .Y"4I:N$?.z:I%v/Ial]072(4v¿9j jM}QD n[~-NlD"ᕇSyƸID#P *M/ɃKZ-9mP2Uu!ԈI~[tعG8׀ ~CQYĮmlr)uMּF97RpQ 0R4nM?Zi}Be<\E9Z"u%ra_V:~]/hk!P2dfx|W#CYJ* ?mBm0TJ-de = e0Ÿb^db/4}ZU[RSjzcgSC BaH[RC,G$[ܞͽԕ\ bpcMnCȍn6s& gV]p`%BQ.l( s=Q9/C\qvG"SG04qkUet5#ٰYvIًd!+ɗZSk-* |5Hg7;3X<(M$Ou袚lMyq6vNWB: b==80o|/A*KO@򬁁8B`{?֥?^Qu%*} Spv+Y^sPLC"gHZ@B^S[I[Q'W *# M?Htk9xDFT(;ro\}S-w 6(soPtF<,}r:م4Bg ꌽees֮+mP MkL?96Zn;%ٙR^[ZoJp a \jYP;}?y?}fwzQS~O I;bI5hB`=jwF봢&9DqC^i[-uZxV̧K:=ZODX.w(4,b,ͰU+謭QGQ3 +i?>ileE]T+.DQdϏrt>?,j}L2,TUFk [O. J]@: T]1pQN) ;cBJL>+#d1qA%p\օS@fA6/ޒDb#2I>@=]^ts("QMʓ(oPGҊ 3]s^-pdoSm(ɑj6W,ajWrn>dPO LgDzmp\9sYo/΂a^A#eg`Tˑ8w|}^Ӽ\rK~1v:7+TRnש\,T;'ϷiM u<xGTbB[x|Wڢ|L˲rk?x K\X>(˾7G9EׂV\mST[oz#!a}1qhX*û5ۚgM-n]jeYͿ6R{_㊇:]5;IOZX_B=O-/S꥖,ViE082WalQԈjh^%myh"7#wDnG99u4r 4(pW/Pi' WI!=?ZVRYxy}ͽszq"{ ԱA z[2Qw$ uu-Mmj"CfC[b/k'^3_̦؍sUL&^iN|`U}!w nbbYCIǵ>zy64ryOf]8'"vaE.{WsfJt:]Viq~&|`uU9~*2dɲy+,#M$f.h?/C1Q)GW c1uu羋b>wN]w \\ӺJՈ \_zV4W  0~$d]-?l|rv`>cNض{k #PKC1M<*nuvola/64x64/mimetypes/template_source.pngUT `A4PQux %W 8T^{܌2ǖhP\vBJTI5{f4"RTӽ$[9H)B0󬽞콾>tbF}Ct3z-;zu>^,z+!?toV' 1 ѱHؐب0 |/5Z-ƟZn57111[ZZ.<ki~d98$(*]W#wn|o5`7@t1RݛU*7@KҌ$:7M3Mӳ{+8V] ŋ&~?4i5I_T'gv9}g0-&.{>(/k~}G֝CX?{CIB[qVo ` 4K#̗ϟV6Z1^&~U-1J iƐGE =_ j8K25䝵 9?)kZ*ȴ ׉ZHTgk4&cTIz<%V~्es <.sk1u` Q]859X93qsF;d70 *ړk ^Xv'V2]]䂹j?jG2z:҃k:t4#5|zfef[9Z/WfxE \^&7 Hlo )uҹ`fwW5ULlHGlm||A#075ޞ|xPzpāA/gΝX9E4{ L<9{pbbBX4|8x"53 -sδϪ fɕy]5MOOi`а,iDl2`O1jM֑r f%j9(9 3 Ր!fd{R݈8o@h]XN*DkvLPLr.R.N RY?,eã+ql ,' RhUMdN{nP ba:Ogw#w$W:)oLtPXFv\=HC$ã$)fQ%&]&߾ͩ Z̰C[hdl R%_.9rTvɾw"џktB^vB>jvFHb-[up@B<l,i$J7|ϜwtB ƿCl8~lp!PY\ׇSGО,{ (ZO?{U#2> ˪)R E@0 a|ו}fiwm댦{/42Fv{*pmu!I4 zl%km7T CTG\w.\ت&G?>ޟ?;¢Ĩ!ZZ65Bd_wt cfRh XC.0[1QxMoˠfpֳym߮s]S %z@`+}W{trtV団Mqvr" gEV0 ke^ײ6E"ϊBu@_TJnack lr`@FG+z9CQ+1{W3j/#_ҠRw+֘*ZTܻ2VCwC߁ܺSc6,>R䟢ܪul0Ӫ]1e)L۰Gbq #& MZWt35$$m2F?fe)PBy 6lΡ7vS}*dMkCOF|qf£lAݚNz`e1OXlT8ԀH'tWo+|y PKC1%v nuvola/64x64/mimetypes/tex.pngUT H`A5PQux W}c.) H$S<9w~}`BX-g>.$zUʏ.$1\Q4GZ榶mݾݺ:Li~ z-|4-6VTDy)`B6161 Տ| /Krx99jK`n#O̊04%9qR|eRjL@!_( #T%JX蛇"3npndc} 1}~b+r23N[+<ӭ%\~D)_{e j<Ғj@LZD/gyV/c='9TQAr񈝶[bxbeq:VBŬ}~"["I7m|mͱ OϭvF_! Sٖ@G~pcZI╻0"e])tV1wG-ߊZ?:\5A(1Nd qYiPq{76J1qxQw"ԡ?8y^\* ,%sds \0_\%b>SHt3Fz!Yw`/&/iΨMH_+Rff(*,E^`NbnA* Dc\^g~mO5}>$. 36LGۅ$PWK|aK^iķtֶs*V(,{pXHd%)_y`!~S B4-?Tj(-W$~OQRvHW( teOi2)=$)ZVv0rbVFjׄX4@H2PZM65ӗ4*H AOP|Me88/vjYJt.I6rt(vjWD<q(ӈSͺafjiIqZ!"Ψ5[$r&DxJ'&uM:g֮ ]MfkF9Ő '7loxGi-tڡ95 Nʝ#Mp(I3٦6le]rRuPZguh+fUng}IiqiwDqrp @OQjeWޅUn'Y7Su),:DCItHk.O肥xeT>Ԧ#AR:tIhaґ4Su$9!\tyuj: q/" j>Y+i5Ρ9욐&Oj-'-s/& xGJskvxpFl>; vF;7(;M=0b*IRh ?!eXo 5,P[UQ5GwJq~dg}߼pnb^^ȱkk5rԷKXwQE혲 0>[LF{˩M6YKVnfe!c b2d ͑, ū^;=T$tUyN"򀐻[X dнdXUUt_-%Svoya\);ޖx&/Z 0>(!mnyf?f㕍.`C Ǎhܸll/ P|dgsg-YO1RҨYr ؽ(lζa=bnFoݦ2 $kNoLC^MQ8zvGx-343ox֙ =\a EA3]9?LW WoU0 NšitHJcc?U'@vNseJ>vnD6HRލ NLp(V=feN|?uQP+PXE^"@!CD={T3Ko*};F!SK >KI*UnpgiZC2 D.VmKP)' V oYQf)c;cvU%UWTI$9mpG"uf!x?ySѨE\_ a"U49 6)|~AKv*`64W:)%C2rIIwJmbw"g^o!'+>M.> )_QZ/V[xf DAtHs^*tx]t ̗uJC 6Tqp Li7>CG5 +-z\HoưP/RmE?J+T|ѷ->RM5w Cwr@'J J{6'eŮDxgC/ç8g ZRԽj뢫%Hu v1yNBP/P2p{kƝ)^W*ύ9ANmH]:xĈrՇq9%Y@,K y_uǷe(Ķxc_%mU H/)y4l`wrS^P2,$m*F7$U_YAǘYd(?QAov:ku;*>pliAlg[{֓|9fG+]Ȅ9Z6_Y6\I3[Oҥ=L3]7?&33WB0|t9Ęg:dǮȮa ld5.O,j7ffF5:7dgedNIwHՎv/֮8>`0 A;v\.$;=1!Ubʪ]@5ħŴuC+KUU9 k԰ÔaoY"ijBMAO"KXqGÀ/ij s Ӓ>0ً*mG|]i"O'԰pglpdoxpXzB]M=6" guw`h 00USS6Wnȩk䣓CmobW2Ek[<-}fXJ,nv-U*.i[J$qlh;Ymj|յB N3рEp/ := d`*qX;p8چB]z:_A;O *?u3ů8 !G$r"ZҕlV9Cܛߊ> f`MkN_2EG@lmHZVvãl)m9߹;sE/۷-T f" kDN6Ā `]p$Qt5D/~dc`իh;ω6qqiY l6c_+ϒg~Um>~dYX2sZ H/1 *oH("f1G xiK|!yA$TbU[w?G=l6A*$LV',ToHڙ}$Azb6-dA)ߡ*dh' PWw[g dΑۈ;׷6 Zo[  j,orc7dxz ,~O*]A{tm=)L_V(DAӑGk _7j3?gOW `QfT&+?Z7NM膨>Ŭ*wϥ| @%6;sy ;VS9GM_(֚BZ <8 ^gҡ%9yԑCO'>11KV&k*k{˾@>e9I ':SSC *?X#ƼcVÓgj*yβ+]e2ӆFIdjb+:VG+Z>Vo-|Q`Q.S'K8 taEU3]*;$mCMS݂F'XBRIhTn#cWAusǘ Y? !!?-j*FҸ*7`~ Uh,O+ )p /9㲳ҞW#ޤvF%D*EmYq|hz}9ɰia,n5 iu%c=%)vu_q%\Vg#493Y隭 >u-|.Z!q;'!my#~|1vspdj#Pn|kC}e}vB$1HYԶpPYz֙Vr6S5N0)\hٓW[0$h=b=ۣ#T0wtΙM`[c@Ӣ1[s[YIsܛQC9;eWl=_j0Tr7]}.f]Cc¾RoN ,M\mp~]}t(g-x:j3j߭A2^ fM=aQ'a{-jPafqF݄l5'7~kΚsշ=OM7 u=j RA\SftlєUqȁ7 Bsgt}*6F .Al)c.Lں3L r Oz.8!r+IDQ} >ӹxL0R]Ze/b+G9"IWuAU@ J&T37ثN2y~/AeC^5!QgnPYY5EoD&q6!ryDVH-xUBoΉ*{]gJ4_H%ZA$=Dte-]Z'VBɌ4F Tn4S[ <]9,izexGpBZHa J*x͑Wl[ZNВv%Dȩ)C.z㢶~i؃aZ]*INqvέ&*e͂яf ƋG/4 { #,2^Fd)GssMuz1&6LI=_}YzYqؚk<#B~LI@mA|F|0* mzu%rf^#S,9jJDK4N?C52Лyϫ>[U-M- d(Ӡж{P,c7kOYԗT/‡L f-r7WCqXl |yU5rԦ~ùڈ|Dw$X]\tt{U ٓĝRkа63hTfQVk5pY7p3cRH— x. 7B$c}9 fs1[t(ߔ's\*q;jdMa進7Jz[=x we | @xsb0|(i#ff-扦n>^8&7IuE9v8a%oBLAƇicJ}|tU`g/+[7 y(;,uw(6 {6lkw֎ ̉4ĥnc&3VXjXN0G)谖CS)Q](}` lIQ_U[ƏՇ6)=WR\)w0@s_z^>e?$vKH мr^B w鄌7:3 :]Ԧ|wTM֖geoω>%ױUu<5ECx'=KC_uX< + yR|-9R!NTW^i Μ<76FY#zS/f<\{yU.KPP7x*u݆^~xY3ns"orW/' L//ob߭pl./}f`8ɂ\R5^% u=gþgOe%M/`p]t zFkcӑ{IbU278[߬Cb30y해&2E uzMiʴTV!Z m8鯼 >#;ַcL½kCT+F&BU+[7b%MP(`88ψXZPZKkc)Hh'@*} ZBXXѕX.EAxN[PGwo>uc_ ӭH$p[ ΂mѠ[ݥ.DV?'wgǧ=e]˰krfNܞ:|!P=d[A.ctz`?O2RѻyO;,;|U"n-`AլAjgL9VA%x̄tuA-`J8D+ܕݦ֪}n (fˀ]=/W/)؜? p]M хS$Wx}6Cxs%cy]{C'9 ݬ"cIZ=Ń.cSNI.CRQKu k{*"* s7|ߜm~  [~ #6W-l3ȵ~0mPB'98p L"M0ߕw MQxyRLNsolyZ&ZpeVԘߌ)EQv"2M,S}eү^u޶?9Vi,RZLKԲR; U]wQ}8RVi̦a^7˭ፉe:$|G1Rg]~aaR_fh۰T@ݙ̍ʪD?| \O5>_5qƗa:]%yXR}.u߫b&d[6sR↢Өsb[QHM4GN豽xQh~AC(*oKޢa[?eؼyjϺǍAD4[_<0ϛ&3ሎ>Nn2oW_ضF}[@zK̠-#SFI lxv*;禗_RH6ܭ줖xJ]wχ7S-LfV@WubYCo"}iL]Gs}&=Is.+"|tNؗqe0VD,[˾/Zn;eZ V{JWZK+KZg.`DNA>! Ď֘}^!j<yXjT)4|_2@~w1TV(,RAE Agޙm:F2L8RTD;4>4?ձ8Hg؇| 1 g!yv! +_ߓzNۗ}X`mE6Ղ"ҪeuM{Ϲ1FmB<sF >(lS*)~H_[96.ljХd}[/( SsDcv#j_ slU_I'u>ltQK^̬ ?^xǓF>ɁV&ܾ=mMg !O-dz?..;Skѿ0=?u[RN(]#{vGg{l>mJbZ5M\`N9,B83OЂBP.=RH<札RJnX*I$Aa|t-Q#uY%%O ؜BSGeC-,nPY) ҍU䶂{QX*=2~ 9J?>&oߦ'{o,b+?o@l٪tjmhd!yCl3Mb}ˡ;"9?ځj/lr v>x:Š0ݻDD0ndyYM;֍g~@ٌ֒o?=g>Ts7볟Xp4BH=m=JS<6G;d9eSëj,WamP!^3d5=6qV_vawn>KݪQ wPTHyƿ}xχ7?O φEQn-e0 2-Z!#j|JY=pAu_YLgaJk <]wpPK֋C17 w nuvola/64x64/mimetypes/txt.pngUT $`A5PQux %yXWo2!,$FB@E,+`JaQQbUY *E+Ԣ,-JPT*A2_gg3;=КUa$=@Yg\ٳk_ڼqrVrm09n])~L!pd8b[bjDA`f!|=TXjia4ؠg)0{zz"~CANYr9x֨q<[-{1QΦ&I HNdjدN{y}$>@aIH/^|Kji"2l(J7d2Y$"ע-f^!_͆V{z Vu^D?HG+4 wKCV^oOPdK6&*ʤaAZ;5!ƙ\0]n%6kGT>>G~'8%x),bԊ"!v{0wG ( Mjiyr_syo^ /#GEWmgΦMb%s#h]*_]"vL  8aN`K4yrxzlž ѣ@D>t,h#%c/]+'ǹƶ~14`SOv f.\/?0jUH"0TPi sZ8&wb |Ac_*'rm@^ J<-kY-Xz!:f{9uL5- 'G98T ŧgW Hkl>h &EjJlb#Xl~uP PPQ7v@PlG2sPJn-ʖ'G݈) 3dhl_ 1oQS2ے -e!c=MĠ3LW1/eOjU6$e!JmJ 4W|. v9{[d%[|AZuo(᠔\;֐?cwWc 9͈mRb~tmodzi]G?~CF]Z2}_C+?َY%90oPm/sxMm`<7eas~Qf.)|O,;[#?ߔSpA@=5EWF Qdo@hL5uBb=@2u7>0`G #uMwl2XyIU>MzQ580 <: joXoh=vKCJ8մrSnRxXrvyn 4k&]>GQTl[-<'YbOCTk$}I\[! {k P!ă~znJO -l]к_ (Ok?fh}cHyZv }E?ػ`kgr)><[QYHD yxM4A`\O'Sl sOQlvzٜe'EY;ܱ漭${f۹#;8ְ)&A:UqFkiuWxGM{&LJbxlW("qdq8@y/ė׃y-nIJsҤSVDb u\tzȷEe:T1߾c`CvEZrj447#cw&aۻS}v9. L]W?#. [ƐzicW3j:Z$kK4v\ư="ψ, =(T1̀-=~N&C󃯤SPViDpL"0iҭyrw!+OKe$|wf!*jZ\h~ ,׊SfY.s5ws2sӎ;@˴HoE :Wəc,JMʟgrֆԎGSA֣j~l&gxvoGu!anتAu!iX/n+Ϭv&fkte#WsbH$yC>s 5Iπ0}?Ϙ{rK2Af:-B=1„De 8s;2W0KH%Q /_s1yK]0Lc^%tF;9CSE:'q&$~a=Ԅ4v7*Zm֭|u/v}{PRW'ZSmA$r'hhՈ{ QD|B, Y4_ s7br}yTˤS v0$.EBy R]W-Zl/:k  ]{Z J"$lF}%n}ám3ǿsyVԌ]W^.FRԥ9 M h[)l@gws0UnRDZyir%K'@Lohq &h2ˏs;iYؘW9.yZIR>-4K TpSݴ$/Hus߳?nvKlԻScsŝ`Gsi8هm3Y -Gx .dt<>ĝ:J(5:%&4>8Pcf.z, -86k16loSp^옂v50sڡc-n[-͎-E-[&qSKmg8i[M٩?8u(ƞ^*LxB3=]XVa<7ʰMܢ.}w vi3oWxK_GSΐ~xJɭChRoJJʃJAMmmEkæ&Joo@MVO`zwؗW/<@US_GMO/.3!grnh$': 18Koo4 Zzu.i0wIsN0 /2;}l9 f& -M.'8^jȁb5p+Y A IȂФز:#wxH1H`~ %\|V~zghjr8q_AB! M"K:m{0^FF1|W; uv (.rİyޞO7x +mb/a>4rV5KogGaotdOz s]  j'uL6/[f^'LƔ(GkRM͌ii$3!!(tci-?3@~ KEh; yPD"1'G~y HeZ^Bqr:rh_^rphS869h.d]BEMMY㏄-",}.u0*żyzswifJ 9X=M0Z:{M\k*rz5e~|`qĒ+-[]i%˟J,{R{ԓd{Hf4H`nD+ZxǹdOu'(KnO?t)dQR nm9co:voMI[9pUPtާ3"༥Jii)%..NqR֗ÉV/l&7b 3]4 /ik\\< W/\cG4C'=mxVݗy3i|׽?n-04oK%"̇y #aa&OMA 04j$ؐccWOx%xwI89'=D){,?&kP~:j<$I1֯qW8i9-vIRބS/J- "q ||gBP==tetZOI8qVDuWҧkDPE _zL5q\H ZertԊCBݸ6jETMEFb)'snSa5C~i02\4~MAl1(B xiW|n-1?),9pmkW6cU^&&zG*Usnj/j|d2mJ@9%$3rݧC Bjʅ4F'сWhnY/eMKb<3Y$G>7(>;G싐42ęФ̚-ħm+?S1s Q! C;]r1U<]ˁn^ia,[],*15@XOrm-~S} (8h[#e)_Skdp(mNZy&) Jሾy'ey3U;trx+as.@+FΫd76/]:Cټ&L-INlw[5ST5`c4jk$CdSȁWB/驌 pDfxyyQvvzTYߋ$!ҭ͘(4ÖGFVMKltjm<~ŌcsU[~"Cq0%Nq顢!ZDD#a,r RPtm+֭[OI#k a0CҜjMԸ" qL4 %ܰ@T_63aiL$#hl`DXp,!^r>>$l6鷻OJdCӀMyOj0Gqr>Qu-'^Jq tz4ćWIJt_ȕw$\3^Wf4ђ{ aқLs &ꌬe)du_;$=.a2^Ƕ;_[;r10vOn"㑊;w\q{(V|Sb|ղ-GTegD/% 3{$QLpjqȅW89J^UfW_=җJ:k>m)[:)el4j;:&P3"uvDc?4JnwF~ Gw7+s>SG_Ub lC@3SU>˥^W[6ʨsl:4&sӧ߿Q=0Nq 0هd][RxcOU:v$ oc)󣤡OvY7Hg&+UJs\$EF]:RIxa:J_W?x"jOg㰇Gj7F&\tn(_qB>FP W+^UMjj37VHra4>YwqVwd_VbJTX]YB. W#2y:>i;n[rzɻ>K pq[TrӺ$'m$˜uEv($ :5KlIKROZD4-77_7c:-WX۰ˮJEH"1O :1M/>o܄'#4a227ktBaY2{8z7STIni*A`=)" 36:'R(:3@]1jPv6] DC/v?uޠTYk)83?ѿ3R'u$7\N*0_{˷Τ?I5۶>ωtZg]i҉I[8EO;sY`Fpa;0JrJ]I#HPrGxugQR[*{yzcejkg8`4@1RBZϳOh8tAKmx[ib^ +x]J;6 P#ћ軮wuq_RMyV1בZ"h8)ѪW Lvf~7a*ą^Hi;(᭲bn4 aFvc`Up{~ gH#[>>^Nmw%-ɋvܭhQ4iΒ;j9)ìѹ7;j,Ÿ}/.} Ocx^U:?}CԜ a3n&؟kzWrΎE}EʳT*wmu7+XݳZ,5aQb }vdmJXژŏ -#ŽX,jִ{CL*Oӏ;a6Cl*Q+u *-.(.|€΍4Zqȑ li\_ߦ٦>@ksw٪ Dbm1' /Y]FvܝKϩ)X4lCU,j6€Ϗ&hq6f,rgݬnr4UrC1`s HJ^woVf߃X3ÖM/ý\0-L31nks׽PKaC1J Mj nuvola/64x64/mimetypes/vcard.pngUT F`A6PQux WyXWןd HHXP$('B"BP^U@ae *RK5@@ Vld*!c۝&X+,&C#˃ۇ_D<&Bk\~$)qGu%w]}h ?yڽE('Nxt!.6eݺJ/Fnt /w  ϟ4Bl1L5lpT?[F1g>Y,Qyq@{m`[QQ1SduAPk>ˡ%:,:ƤL[[[ŋa9O:(VOܰai&+YO"%@ceƌvaڜmAnCu2+H~*`}mV,HFSC m)OEGVn@WM;lσG;k<8X 0 JS{U 1CD  㱒C7w1Ec_ \5+ɡ@m *@)c! !׾s4$d# nOi[d?+cU-+j풥|a:hA~xs(T33"`;}[ʌ|^8U rK,g3,C !#>}6sy5KcPžpz+x:I Vg&Bs/tVʗ[Gޟ-m}eN]ad==<:vm@A?kqT~A,6I<7^_<#m;k@,|s$2GI|ch2uŘ{b5O( ۃW=of3`1ywyOoEy E%5ū;QӾ=nAf|v+ȌY]ah%ϴ$ӫ~"84_K;TA]~;@CӚ3G9shr >&VQx֋n4yy[,LKFc\ ʩ7xDzE/ aE^U\iegDn|b,Dg&/"]ݎ y+kLNa7SR,S؊R^k%"`@h Ƚ.K1djxNM~z8~\Iu~2M ri$13$dgc?K{W/퐅yo+Jo"WXnn%pgpC<U,n~du/ \;NKE?(- ï.ڈw Y\-~\7 PnavZZ"vSc=Ueo`<-(SO"I?M7ߋC@$Ҝʓ>عあlnѐ(B# ٪!p#‚\hkEQczQWk-%Ɠ_[=2w t8 f]C cYe;v9i?)kNf< nC g 3͘hkq+)]Z<ƨwYZ_j}GUιc&lxz^!z c>=rP ai[Yh+⮟9?hF*'Re#؇Q[˗eZ. G)=(+4[B5#-˧{;T f-?j3MLn4%X̧Jd#Y^SDb P3G[]])|uX@=[ԟ7OMKs_}lS5fX~3L쒓͖Y9@]TLX,pr(Kh{sWPSlB$57 ÙEZ!@۫z۷#5(ߐM;ݣhU]G3!慗'̐7gm&.R_QIeߡ`X[مݪY9 AkJii4I$_#^ '3|̸o9qpYo5|൵+Fac$Áh;(٥6ɰjX>hxtD ;'O~Qk?zsIMd'{'?Ab;6fFOZJ]Qr9 mR(vL{]uA3zUriZ{]\)2 oCeأT!(ca';it?/(~Iv4,ծ) TyHl'h:VmN8#M,&jg!u/Rw}U* - 8J#Б-Q $/?Sc$߲8S-^G *3E ۋF_a90C<|=_e1m'xl#|Exa{4ã8eKgVpַ#XX-$52:fGHDǛ qvCݵkO!DJ <\glS̷#p@pSiDSW[:C0>8'V:-#4iMVkѰ:8՗Tq" 4c6dmY+ZN-vf|8k:I F=zw%^.7T*t? 0 -[…Kp^FeDHW3_(t8ZtHOƯtΆ3ͽ_%.zNEO߾+}w6hˣ(鍅R)SŇoθ˳ŭ ͘A0&qF_#Z5n7lҙ=܈wCOhZsC_p}%X<(+5Dc}i>;Z@9|` Ź|n۸^'y CerhE /)o죲*P9%+_cy|Ј>/oɧ*]s&-}cG)e..Yus0^,Xb uG=b'^tb%?};!rsQm-} s2#Se9b6/$C'(:DB΃…@;G/NV-H[Z+Һʘk#c{' jViDD~fh~`p䡃v]f/hF_Z[+b>@SںGvm6?;PKC1g{$nuvola/64x64/mimetypes/vectorgfx.pngUT `A6PQux %WyTS׽y/!$&L %L$AA0R /Pb""Xjh[ASJ"("jT }wݵ:gb@`E&b؆O ܱK gmڕ]lwIiil,S._98D^NH޽{FS`=e'ۃ}n4i=NoB@\KAfvvv(&:nLS~0p;{dQ'(<{vtvGϜq0LrulP(k^\\v3u& 6"~;\r)bU;v 7L,K'xĜ1 h"|\B mɭRFe H0|2-CB^2}Bg"Q%\h\%xN݊TA2XeT8^鹲u &YK|g=`gy橆7x%y3,z\)C]T:{EgŷFFԟ.GK%D&Q?Աשj ^}xޟU gf[kW:SuһU7ѻ\QD멆brjOtg\SD,,**||vcI? &}^, P?e[UjI/UaR3ȿ+[sCWp>_mU8QoLn]- R]3I,CիU1ZNkCݬfC<ͭכ9j|W?W&fm֫Ȧj+Ydl_]oG+2v˗quy}Ίr&(q9'Yڊ.vh-(_ƪ|0㌅5GW+WmT z+W}p*=4mbJjiݜRE`s(([Tqk~h2ǛF(~YN~gq |V䗑A5$m^;h P@̥$*;2b_'jsSCMC>@/4 q6ۜ!iYuWv_<h ĚP΢3Eįyqa@jg?i>Ё(p\:nvi~_1^BUl 7䢾`l A26cޜa|t&6OOn9 0Ctd]beFq*{TW's>CNҘ䠥E^=\ j!!h zP,o,U1Z*VM EVI%Ӻ sPt4(C} EJaVg~'O+ {ĝjʝ!qɏ Tݿ^+v7m3IKANaFʞ]4 i|*Yy #?mSQ3]#xUI.@"R 6i%8?kfhi?% Y>oO#n@rbbG\+×5*4iLbCtJ]2>eYs{s&Y䪕.ۃ;x&sexhe=ͽُT_#FCrӀHY+GYaHxd.kᕶ}mض#`''1O~Ra9 l.)Gqc5M@u;r'R8{Z}#'͌{ B9ky<*YD]Pe\"Ajv,D~܅'^Z5"1/);yإ6jlĚq:RjAādS /JbYZu|}eV+E 1=Y뒜a6"z@YI((4O4iG;C+<x{o^{e˸ l]o c P"lN'*UDD"DWi6BsKFƒycW=*ЇFxz UR$*j=םbmXf g)$y+x8(}nvyi$ú4T>vāLXCVwۥc"'[/5NqAtaI~N>5"{sqPH UcD!׋}PS,[Y?=oXipk?zU)0`|j([I:F/O~NDYm:/9._)!o4.dgp)tpǩȶ^yr|Ǵq7 )i_hЅu ,=̾9|! w$V9*E#c4syOI13"L2z,BwYcLph5.|a)V4@l Ķ7]cXw:v^Jٌ6a/.Y´krv&T/͊V@-R%ˬJ<^Ii~6z屣0OtF ENKmxMΞGchd:S* lC#FwJe#G~.GWF36X*o[oC|ygpsj3|4)0{UޞDZ?Zl:8O)9Cy!z< ,6WVU`*Uie& tAeh[Ԫ}or`Ta(}>8AJ.)cfdp W`c5/#VhZ.X/9.f7gmPScOJ5k̆|795%(5&sBmDgp+q1\˖>i@K<Ǖ}ņw?ыMZrV<d4.wa9H92w?=Ί1Z1V͜ 8`%?IPKNC1a%9 nuvola/64x64/mimetypes/video.pngUT $`A7PQux %WgXY ILA$ ºo OT$WY F,"A$$4EP, Jh 폙g9g;y{O{N$7WJ_p~1Ȃ`dpFQd70  1ͅP*ŮI$FYꡡRvCL1;qavW#s{q4_LS`E:442ֶ]$ng2QtDXUQ7RH& NUIڴ?CZZ0#M+y<=gQ m@=_jjjy3"D}V)y.\F,pߊL+/_Ì}7\;h-Om߶cn$ ?@pGlVҀLJ )M:pI˖>!swت8C8mǙ (Hw8 m͜ %W.t0K`;DT#d͐K͘&NL,aM:ZBTNҷ߂<ᨁ'[omU~pI areE%errRȥe@q2_Т@S8+ JY&.1Hu/,b _gPϹ!K2~B.>cM ӈ89 uлmb J$DoQ|i/{vmxS'8dJbRNWWC5$o[1dgϡ${͚m桑!-y mpg6[96գt޷{%H[h߻G*?|'^O3tL 0ǎ ʫM+4ٶN֥̦}~[fpU <6F-:@rq>1+jpfu_ %ݎ߽ ;kD۷1RW^ $MY&yzqB]fkDwncwڧ1T'k@wì6*ckiQ0kʆGprj#11AP/oP2̩ G$'cF8jKhj^ jD_D]3Hv)ӧ3;.W:91-GĘ(4'`?WH~Jбr[uggfCSw- e۶4UVdk05S$ɗ9˖zԭ ڕW'|Œo|Lu^_',A`K}#iߔx FujϷDqcǺ_,Χ.6U)5%V $^|_9k#;þoUYBY"UHx8RPmmm(E픺bŜt΁DJD{[8oY f5#]*hr߬P{޵՚iH^{J1 #UdOz"{&3ݽÃk#ƶaPc^֖ܿ7T*X$BN2HH>Fdw{6,͎2y["baA$3po(OŝKLMMA_AEYy{\6T~=&7R:0{R?C奎vofwR,X[hKA-l&0δ?^rW 1*":E6>>?f#zԖORdu3 ?LtW]]]AJ {~<{)䖇LV4D#? = 00;vWz/ԊyގJ n~iX E%GU682cQ i!my i=\(h[su>L,+mZ:v\3dCOp `dIg8H)Ou84 {\c+ͬ Ч@Fn޲&_k-tU$ K>nFCni:~t҈8g$L-It#d])&m9if]߽&*lZս:LwL@?OwPC]T:Jj HO"%fn5a{ ˊT`pW!`\Ȃ(ɑ.mG51=;+v/ZzH,PQħdY5>:}wk=al'WK^qZNCMl6BA[лisZ 62)=Xͭ {܏eo>}Zڳ3BX t>3ɡ'K;Y?B&xCowݟ>yo5*2[Ո?EFpkbei% XZcYvԲei/45MiͫlU-y珳s}• @GD4"Ϭ҇4 >GY⬘ͩY;[SGYoR-)CaZ{{^e2r,o-_5zv /JnZüp]c'%+ʠa'U[j7B\m歠;%38=>2":ԐҼ$!txGj LOh7@k-d˒+Z7PSn&g"Daˋ| Yjr11s1D׉.mœ쬦iXLq[)耡$ur yPK!ӂ|&-P=*;b$+6Tķ9^^rX3%`;v6-lKd8/;Hc֨]K`&r\X[[RXX*..nl²dz{#s+pDƁѝ7L]FZ۔9֐w$;vi9<vт4w4 jI4W=o%K%8|=C@PP1 )v9ϺԀ2I]=卅f)O???VY/2ʛRNTKe(6 "f^s>@^Bo!o>dn۶Mӓ wvzp^Ax}\ o2i}O{-͏I Y?@>J󐁀URtsL^+tR;}Dk#u$ { 6,D*BKS_gs?mrft}l֌##ջ?7}x:$kMd-3y p{Dzؼb^)sȖ*w1J|Ch;uh( |wrkB'fa듚"!ڈx`oߡ.%2u8Wf#3ݢ!"#AV\'NxpV۵دL!t1We em"pԌ`0TBCSU q08Жٯ&A>P$#soop bFAxDž;c*+y\IPKC19-M1g?нdy^a{H-K?8`HQ+!~zL+ CpP(PHH Q~mo%31~u7dvП9:x*U檻֮"umwmC_;ꮴ[ʁÏJ>F#) _[:xH8O]P&s{Ĥ!0/l%1 LǃM~i0jXxԯzc vE;6*"c^L/@PI=LacQzFzz:SI<&4Xs8Ztߦ+h́ǝ,FNC3K_Ľm;$Sh6 ##gj~w3 "zT_8Pgn=_:i@ O-እv!痗}@y\y9k _9 v$kȳ4'76 FB[QQp 9SUbDOsi/o!(> 0K(^ud^dIjnnV%BXY^#113 AkrĦӉ~l$%K#7p~¾R>-ėJѧdg{MFvREO;+f]ær|p ZШ׬/o߾xrD;w┵:_\+u kO!)/)**J!㩜8,ա*k|BpHF.,\\xyp:$!Np=bb~`Y`pp0w Hlς$P&._͍-%+b%hX@ .?qE3[e_)Mc'`@sW"rMn1oO)XR;_ Aq— wKCfxx+6>j|hgJ{ڑ.Dƫ ?|uAsbՔd9oT6Я\h;KCHAo*B4٤Q\ހ)bh˝gw<3a1[Z5u˗Rtm^܌g4^zX}8{gς3zG Dm]'ذ|Ԋd!'`.Fj㴺T,~ f&{`cnh1L;sGIv{ J_w"ݮց,v=¸Z-GíZeU,Wӏqtw0SC)w^a]mt"8J 90()27-Jhf%2]+z~CZZ[f*I7]r!Zl ]CqޫKThl|IϹMSBLRK:W\+tRݽ8&xպu|Ž:"֭71J]W"NXm뺦nN>g&ӌy'.o)A>1wK1E UoϡW|bq{`^~\9335v?nf;QBtI-2Q*Z52ƺ]5ʾv{n2\qKt.3PqxߏtP ۻlXJPPAYgBQ  )セ{鋇[wpgs,*~#wN T#n" !g c!QbM9Z%'g?"_ 5\;Fp$}%$$3h90n Ə 6\׬I˴zs<PcqO 1d]<|PA;7FQJ9&m+DpH>=޻ ^~RP֨euƬ`w <xvzo녺,z qƕkW (Εۇa%x^=o<6v"0 Pmd1MoO}=JƇ:4ַ?3Xf &^=%֟(9 ,@qkhQ1kZA͟iXD:vYy\V*5{8uZα䁷 %rqǜ '@VD1|]& ?na^1GWWIP<6Cf$'Y,7DAxTh37]x-5W1w^$>LRƱgr%Lj8S?ְ^$-QS}a JWja`RୄHP" k|sy||הζmxbHe*^Iu#%+&I8bU#wWoϮ6V7$-`Duє㸽mʇWgո=&/GRC/6 d/ ܒ<IbVQ-1_)\n-?:Nj8Jq.qPrͿ&5n΍`z|zR-LPpFemʑq9tStOqK }\1jA;*#e=djE.8 (eO(R{{cyEAǞ`K5s8VYUum/=Z7E[3.mFS&#G_VX ʰoil"c4;B,B@R:l2tcӬ:;Ֆg4n[Vt)4Qwں]4~JJ<e=LSkJn7ώ"XjI@d=BAu<ĹnX=TXv"wcwe2b#A}/G"ŃjQ|aΧamBQE/T)q( w4NTZGVWgYWUaY'zs) %aEp gGJ :xhtYlWl5tND`^ny*#"0Ixjx|ވEY-n|{ _.Wn##8,lB0OrG,@«%w; 7( >'-i`nA{'UXψ}rx #(:!& ڱ~\PKpO1cRG8D nuvola/authorUT 4oA Qux sI,LQLTHq2t3s5<=tPPK tL> nuvola/extra/UT  VMFSux PK tL>nuvola/extra/kmix/UT  VMFSux PK t91=)??nuvola/extra/kmix/mix_audio.pngUT gUA4PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@YY%ff?,߿0/?|-Z ţ.4?@jedȀyyy'+(EJ1|qғw2˼/PgzbB1Ǐo@ׯ@ ߾}e24O?`ff")$. ,"%+ S,bw@oߘ&..6 ~$D%VrQĪ*@LA_a02|I388`>ӧy4?pɩs cc 4C? 81| RR2?` mF7Ą-d(J_II)3ý{AHXD߯/a,!v``0w^ʲ^k?}2 ߏX֒ 2@ ?çϿ+-\ϔ6I)9kЕ<@,pu L <~}g`fb}©u(&@tlf/O;q.3037Ѕ YY [ex=((ˀbߟ_hgĂ,Lb\685!/$ʚa9wCeݻo#]?~dsХ$LAoFp4@ Gy^e``dP);0Op`x&p߀[!\ vׯݾ}H`gރ`_+kG 1|y߿0|d/?E}}-`]Z^tgvv_?s;W?3)_ ,L, ^,0W? =|?+'0ßl mG~>fO>3#C>m}(u #g8dx@ ߿4уb :a_ĹYU~@bGd/^۸m45#IL.~ÇO(kǟ/_ 7O#[g`+#\?xOb߿4 aշN߿ =ݭ_~)a6bJRy؅~ }"`(PTTTi7o^YU~ r3gfUga& H pfmIENDB`PK t91E_nuvola/extra/kmix/mix_cd.pngUT gUA4PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<,IDATxb?-@11 `ddd07_dC$# Lw .y'N}%++:vv_ g8q" b@ VW_fH(2p002?woI_,`;nz_źyffv0 @ ] h+' rÂ10@y@>/×/fκ°l:Υ] @, ?AAκ6QgFAQ_?!00 756k tMNZI8Û7@ Bi W|#CP"C`hR3;<bdÇA_@~!е!r3{#}äVX &H`Vi0.o N20p Í @]-[`20XxZ(؃tq1n_ M/&:s'//dAU3Pgd oO){bq .5^>vaT!P_e k_.]烩{aɔ_AHXQ ,̌ șQ*,޽/ K[z߁ L!j`@ pP|?x!9AI, B ӦU 32aAh??@`?rûor< L!MFhȩ#b zZ̠v8RH ?1}}*@xNJǞ3|%%@J20H30X900j31BPp\# 4\@ iRaOa8g6O,+۱ ,$\ kP f@I9`G@ܹ(J /^,SW=w.N+ *(W<ưmce\YXl p+8ѣ]4}9 ް595- @bSF&utAl<0 8l|;.~ٽ}Vw tl0#83] E#qsa}/I)u#~~a*ݻ/?vKbT 3V)@mfL-IENDB`PK t91ꛭnuvola/extra/kmix/mix_midi.pngUT gUA3PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb?-@11   @ 0faaRQQy񚉉P^122y;;k}x8L @!c[8#eF4901?M "sqwT3{ZcE3R sNbBs  Th(-N25Lf03ȓ>n>~0opDIH70P;= (b0а?~C|WX_ Ll b?|ddb`be$p`d` =EB3/\yl@11!(?Nf`d[V5@Ѭ<  @43 >}E1jIENDB`PK t91:n nuvola/extra/kmix/mix_recmon.pngUT gUA4PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @43 XjP~_FFWvF$b )iJ"? *]Y\£p̙D!*pr9yx$8񈚚20pr20 T X0P!˂+.NH:=hׯ 0D?P1W+# nn h#ص@ 4+Хj""j !?fP@i0*yx|a`x @ 㫵w3g`[Ă9c&*(Xaeeg x0 4չ*l8ـ5ĕ m&&jA⬬T@yB2?xc͚?^r_ |mk d ۃӧ# zY@43 hf0@`*mB!IENDB`PK t91BQ8 nuvola/extra/kmix/mix_record.pngUT gUA4PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<1IDATxb,c@F f@=ܘtXYYŀ20`c`!F2  Ԕ͝a %.4?×^puV;wg?7Gh`.f`b`ض͛?V_zyV800" @̖ INfvEE rr`2 #?Wn!!Cϟuܼia#P`b6@, Xd @ be ?@ 30| t˗ מdd*PXn\JfYg ̰58r 2d@LP}|@,{(51C FJ,` PɥLLVRвd CAd6Ar()B& -P7ۯ_[1 gKA00  1F<Ĉ 7F+ o{1#\ bef@HZs8 z&(\F^aN[~a9+3@ i@|PK'@(lIJpH`F@< Ñ3`˯CYr ?*rVx$fGꊨ30 `/fi5'Đ:ל%">A Q+O __3XBSCXDv0u L̉"ȵ@0+ ~ CF"+0E+UEx~7? bD(` @,Pk>30H?3Ï?~ ZvRfz|T_ @, P~gŠ$c+_khj.h@OGt!@, @RA ܌[OT@&hc`F @?:77gZ 'D L0 #3+  @`!!hp_?IxaeiAy ?*:,,`f1fc;p-bUA@L 4D3f 0vbIENDB`PK t91V nuvola/extra/kmix/mix_video.pngUT gUA3PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1Ph##XC``QQ&5 LMM-^|-{*ʛ+V,5 X SRBB*'kkkɣG2JK0dd0_!55˓'pgBw13+rppZYu&0CC3JUDDʃN{PY ~?@fŬ@\ 7opueeM3={޽۷GUǑ7_]]߾> \X Z= f'6A׮]?|QW3\t n 9ff&BjeUEۻB aLNJ'OU~Z#77062HKK1N8pUONNn 621XXGCrbh1f@!Q$524]<}r1T)7Y̧^CZk0ȠvE_@T!9uDpOpaccc߿AUľs0 _gV1÷o?pYK (u22qr-  3#E?Trğ?`} d `L*A.v @z@a XPm ?@EH6d/X? ZPI?(A@pa0UC(M  'RHϟA]bDJ5|lc0ff~;`Q 4@1Ҫ20 *IENDB`PK t919 nuvola/extra/kmix/mix_volume.pngUT gUA4PQux PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<pIDATxb?-@1`D3f#C/33A@F!A \ya&(fD i9-B SGP,&?4:EI@l*?[j%.6˜3}{9rhN R`(w\qn2 &WUD%Q}N7LfR.0Qs*3{h7nO!fX8eeQ8,HU E}V8v*6)% lf`QaSDJjӨ0]%DzDBv^o?:v/vPËmtH|TlÆzaH%YxX͜PQh;-%'3DJEEm4DH,?#SW;ݯR8CfeHA\O9P]5\ynU4uYPx_LBowWr8?o-?`vMR[''j{of!b?k<9C2k~[U620iuV| 8^6Veu,7Ku%/KҲY'6RlI&BM3؀RtK+8`±Z6'aH;ZԒJāǀU"5\),ŞU"Xr./ Kb!(/IklY=)tS3|țXŋЎIwI=5 MӍ)t.,+ģU[5 eci Yn(Q8YBk($DFai@Y(D5LzbQ, "KØ(BOBno82I4G>rdeI\(`5gnuvola/license.txtUT gUA4Qux ]msTEsdsREK͋,)Uݐȉ3̼HOw )ٹTv-aF_~Y^Noosaz5O.ٹWS;M^Ⱦw}?cϫݾכ֞4km>e﫮\e-M3r96<~wn+).oF]մibo^~?ۉGWټ;Wou+VvIج\U޴uh:ecn"_qvU-+ۑvu^mbjmVՓ[;|Ho7>u.khGOkW7ckg}] t% jKnAQn\t?-킖Cӻ]]`qch-q65NS7͆Ut-ݞ6WuV>Y[1~yL+WؚD*?;^̾~lAi0fVvt"X (9nW0M֙f9ͻWe.[~֮!| >?6﷢DynOZ+ hUgY?_U"OȚhQT]ZnV2J^%d8W",_mH }/6_vEV`Յoo"+y MD+8b/ЎGxF[qu m5hZ~dH%F]wms @e7٣W$r@=U!SI#-m>ٜϵ[tS8pkX%4=cT'U8"rd,d3ܓum<4'jJo*]eUƱLU*Ӻe+Zn*]ځoK9qVX+ ]R2fEIհ$32n.Gf)HJY͈ 4bGyXG>ueуnٜ&tZ{&8~~F:+il샣YxyD46s#󖸿&~^穌+Z͇^T &)`PP>&LD㑬Mv? *y!V5ˈIcJb9 Y @t Ɛl Dt6lA'@dx9s%DėR~{K厉"SinP՟32&8.xGTdTc_ɗ>F0 j ( ŢF~.3bPs]FG˖ƫ//$S8K4+!l`joA ɐ3i9Ş,Н+1^1*@Z}$x}{ȼU;3n`HVdY),Pc+ԃGd\YSqx)O(qMFZcDtI/Sѧ]c?ĜDd %E^#MeϾ<. dA<q!eچ}JsXg,E![^kל:`~vd,#Dv0x-%e=, b32ȿ`oE!>8 #Ak8#kp`M` w|Pj`BY켘x3%JT[bY :QPU6fs]-3/`Ф9sݹjW~]T=`GbつyHh!GRbH'3yoG|T&6N/+yfwFcN ZzSSֻè;oFP7,x'Ҙ1%ʮ&  Ih"Tw _?/;HZ' ab2FpƢ*W ()BsT ڗ*+ Ml B=@Yr 84+"|dVF.Fu[m8KQsԲң[Aff,/O$R\%Ovruaϯ.fw[zN<0ۻ=~?]_'뇱`I/`uFD 6 h!ANj<ǷQ*1qZ2_bCKf{͙kϕ|vFe uT2h6L3FTglt'ۓ L[f$nQbCWjHUf2cT,HJ؍+NB8s*xA+"#Y;cAL-)q z{2THf;}*`VP'{C4)/]-Do>< `z*?yY r]j(Ԅ`t4)+P$:))x# RI &`V*H}?qV$[1ZhvaZ0rXf5&n%9>yInXixSERE![^AzNiN C^l= '!o+:S-@6o{抖N6>& INpxǒtz wsT&^hMjVyGhMìU_{w) 2u!T9WԚhT7խnEo4[Ź UDL"hP@Uh45~3!֗LEEGa8.aI "$vw}F_F, {% ySƾBCk7-d!2$PrlR6Vuuc|zAeRi"W}couwM ܀xqˁq C@LX>^e pu0#3  1FD:_ZESpeQJ(ŞNBdJmSՂF!G :C%:[>;KPhI}?~&2/M_sj԰fş|}s5I")tf=c ;j+5h\=Sj Ȣ\A69H)TSQO6AuxӲ4"Ճl %URBِ''*'ur FӔ&@raZZ5Pcy 4aoZyMz7s ⓴FJ.=z_eF : udVֈb8T pp#}8@)w{dE" w8OØe4O o-gu)S Ed|Ecv\UB,G/yr8<4G.M$O}9ß3XV d*. )Opto["$Q_cȊK=x\iyG.otN lB]"xά@vۡ9o]ƼHFO$] .{$߁E}ò";"*ElOIg^yQ}B;EKmS. F{PXIat^u LhIҴ(( 'O$"8|JXJ!]o(& A ;o%Ǻrbq㠜%uP(߿5?!{V 4 ه)o8-]Z OJrdsyc99,3݈P@~YҘ[ K|JBkOsgKfu w}g1R]Q(Cj841ۼ4!/hL᱓xVpcV0I&`%Ow'1?ۼy56!0RYeq>"Ob00TCY=QM[:h{&VǍ.p rNp'j|x rHI v O=tkVnBe|_, 1f &%g3SiL{H_ג^L4+{I܎7]?q~)dg*(Gv&?6~7m* xF>Am4IhSyYZY!WLHxҊd'. @юU䊄'ɬ:o,ƜeTZ\<DiOT&'Q:7$?*΄K /_۳}ؗ2%l|S θvh$g 60S]f G,΄-rЕ1pB?G<%kP!l\_Th$$ eF44 >t w Dˊ=@6].OayMzC5";i4w֥Zg\ SGN=[ؼLD9RCdAd}[$%omÝ$トЃ?J˂y0#X9RԮFkShMYdQP18 Vz,ݹ^Lŕoehw8hFJT)y !@Zޤ m^J՚WvaNR<ݥ 7z\ly;& K=Ue>B #> %@9DHic{ sN♜i%Y-}䭿UJi(j~rW}YsƕEyE_]8NbRn pRrn{9}C'xO;)(x/ shr$x|T|>zo f0ZH4J5ň4^{d}mdy}&_mHw(p?ib/V$>t>.g]HS?~j Hu?RfA>%IK5կlY W0P!MK1~# uTiL"ڜ6h{9¿MLX@Wä pNΆ5j XƉ+B16V+RK,}]NQ=}Tqԫqp1E9 ŕJt59K&/8?AW|^=|C b@۹ld"Z1tыRʈp߱?փ?2K tmmȗP>zUŔ1W T R['mMfmнM9\z $׊ߏ>*!z|F3nJ«k?u'y Y^jW&a 'hH(&DObCȖWe(rձaU5Xh^C~|GsW 3!ݠ&Ò5Կ+td0EAn[3pA"Ȭ-Ej-VGW o)ּK+:K;..TEi[em;owpхo~J>GZDa8dwhHNAbX-Rʭo 'm XܣE nP1BDR'T'k*>3|um瓫l0۩8w1.tjS6~.~#F]^ٛf{NnnhɻK>ul?_?N5fuFM0~vefWx><1}xg?^_^LNsڛn67_fN&Duv.{\}6]]tM~3;!66DO闳 ~pu}Gh5sX?;?Mľɻ化ě!gwWn"_N~~s};ErI_-@IKs|\9] E0jj/w_ti$-s{ij߷w̠K{5='zt0Lfs˯Jdvy?28H+_ 1%Z Hg#;{on?a>QҰ/3nM)DK^X>X"C~<_xy3Z^B+ "{!LdmT@xxE!P^+86 }̽Us=j+!C?>Ή`1:ˉ1iBXoCg^\3_Oj5!N-<ln]xOrP~zA_Ոxηg|[$HpN~aG%h8#B2u's?RNSuLI8L/p쀬d~ڢn띝/&ߟPKpO1n'0nuvola/thanks.toUT XoA4Qux MKn0 D>@EtM۴DX]Q뜾F|38(dAd7L] $ {L;y$eؕ ]u+)v5A4nuvola/128x128/UTʤVMux PK PL>A}nuvola/128x128/apps/UTȤVMux PKF1/*,&-nuvola/128x128/apps/access.pngUTMdAux PKD1"5&D$F M/nuvola/128x128/apps/acroread.pngUTV^aAux PKF1 )W56큙tnuvola/128x128/apps/agent.pngUTMdAux PKt91ԖGGnuvola/128x128/apps/aktion.pngUTgUAux PKF10O;7=nuvola/128x128/apps/amarok.pngUTMdAux PK-N13k12&nuvola/128x128/apps/amor.pngUT6mAux PKF1*["}4nuvola/128x128/apps/applixware.pngUTMdAux PK4WG1b9:4Jnuvola/128x128/apps/ark.pngUTeAux PK1WG1@*3{4큇nuvola/128x128/apps/arts.pngUTeAux PK-WG1-"OP#nuvola/128x128/apps/artsbuilder.pngUTeAux PK)WG1u]?NGH#vnuvola/128x128/apps/artscontrol.pngUTeAux PKe:1"T156'!Onuvola/128x128/apps/artsmidimanager.pngUTΝVAux PK%WG1%wΝ4 6 큳nuvola/128x128/apps/atlantik.pngUTeAux PK WG1iC&//"nuvola/128x128/apps/background.pngUTeAux PKWG1;nb67}nuvola/128x128/apps/bell.pngUTeAux PKt91Ӑq55 5 nuvola/128x128/apps/bookcase.pngUTgUAux PKfE1M-PRVnuvola/128x128/apps/browser.pngUTZ}bAux PKWG1C.Lb45'nuvola/128x128/apps/bug.pngUTeAux PK"WG1ٰnuvola/128x128/apps/cache.pngUTeAux PKWG1uH=>nuvola/128x128/apps/chat.pngUTeAux PKWG1~uG _!"6nuvola/128x128/apps/clanbomber.pngUTeAux PKWG1k~*QS큈Wnuvola/128x128/apps/clock.pngUTeAux PKkG1AC큽nuvola/128x128/apps/colors.pngUT(eAux PKkG1/#ݺ23nuvola/128x128/apps/cookie.pngUT(eAux PKVG1~uG _!nuvola/128x128/apps/core.pngUTeAux PKkG113?$A큶?nuvola/128x128/apps/date.pngUT(eAux PKkG1k^{01 nuvola/128x128/apps/designer.pngUT|(eAux PKZoG179ưnuvola/128x128/apps/digikam.pngUT|/eAux PKkG15_%$$nuvola/128x128/apps/display.pngUTt(eAux PKkG1jN$%(큐 nuvola/128x128/apps/download_manager.pngUT(eAux PKSoG1\>E1G%2nuvola/128x128/apps/edu_languages.pngUTn/eAux PKMoG1dV%&'xnuvola/128x128/apps/edu_mathematics.pngUTb/eAux PKt91#89)큒nuvola/128x128/apps/edu_miscellaneous.pngUTgUAux PKPoG1Y)78#큉nuvola/128x128/apps/edu_science.pngUTh/eAux PK-G1,j:;fnuvola/128x128/apps/emacs.pngUT|eAux PK(G1i;i}.&0큀Jnuvola/128x128/apps/email.pngUT{eAux PKJoG1WIAoB큉ynuvola/128x128/apps/energy.pngUT\/eAux PKeoG1렔-e/)*nuvola/128x128/apps/enhanced_browsing.pngUT/eAux PKboG1"13Fnuvola/128x128/apps/error.pngUT/eAux PKoG1d(kNO!mnuvola/128x128/apps/evolution.pngUT|eAux PKٛG1-$3jnuvola/128x128/apps/file-manager.pngUTJ}eAux PKuG1啖H?@!8nuvola/128x128/apps/filetypes.pngUT|eAux PK{G1MJ:!nuvola/128x128/apps/flashkard.pngUT|eAux PKG1;03큀nuvola/128x128/apps/fonts.pngUT|eAux PK*N1#` nuvola/128x128/apps/fsview.pngUT0mAux PKG1]+FAB큻& nuvola/128x128/apps/gaim.pngUT|eAux PKG1.V(XWh nuvola/128x128/apps/galeon.pngUT{eAux PKG1 f8CuD큌 nuvola/128x128/apps/gimp.pngUT{eAux PKt91W^$% nuvola/128x128/apps/gimp2.pngUTgUAux PKiG1y Q R"' nuvola/128x128/apps/gnome_apps.pngUTv|eAux PKt918=2?#6y nuvola/128x128/apps/gnome_apps2.pngUTgUAux PKXG1_KL큑 nuvola/128x128/apps/go.pngUTX|eAux PKG1DndGSI" nuvola/128x128/apps/help_index.pngUTBeAux PKG1`L45큢K nuvola/128x128/apps/hwinfo.pngUT>eAux PK֛G1Ƃ8D큗 nuvola/128x128/apps/icons.pngUTD}eAux PKOG1;޸34"& nuvola/128x128/apps/iconthemes.pngUTF|eAux PKTG1_JJ+,!: nuvola/128x128/apps/important.pngUTP|eAux PKG1O'"#  nuvola/128x128/apps/indeximg.pngUT6eAux PKG1Fa68. nuvola/128x128/apps/input_devices_settings.pngUT.eAux PKcN1b=>TW nuvola/128x128/apps/irkick.pngUTmAux PKG1GfQjS- nuvola/128x128/apps/juk.pngUT$eAux PKG1φ`K'~( M nuvola/128x128/apps/kaboodle.pngUTeAux PKG1c+%GI$f nuvola/128x128/apps/kaddressbook.pngUTeAux PKG1CC EV nuvola/128x128/apps/kalarm.pngUTeAux PKG1&M^ABȚ nuvola/128x128/apps/kalzium.pngUTeAux PKG1o#5-7" nuvola/128x128/apps/kappfinder.pngUTeAux PK`N1x|<=inuvola/128x128/apps/karm.pngUTmAux PKG13OJ*[+";Onuvola/128x128/apps/kasteroids.pngUTfeAux PKI^=1OHTP~Rynuvola/128x128/apps/kate.pngUTZZAux PK[N1jk57nuvola/128x128/apps/katomic.pngUTmAux PKG1 <21S|T%inuvola/128x128/apps/kaudiocreator.pngUT^eAux PKpH1-FG#Tnuvola/128x128/apps/kbackgammon.pngUTfAux PKpH1ӺTU*nuvola/128x128/apps/kbackgammon_engine.pngUTfAux PKG1; p!Ynuvola/128x128/apps/kblackbox.pngUTXeAux PKYN1 34큪nuvola/128x128/apps/kbounce.pngUTmAux PKVN108T 큪Bnuvola/128x128/apps/kbrunch.pngUTmAux PKG1i`4L5#Vnuvola/128x128/apps/kcalc.pngUTJeAux PK H1Lw"#ڊnuvola/128x128/apps/kcharselect.pngUTeAux PKt91ZUm%X:;Ynuvola/128x128/apps/kchart.pngUTgUAux PK H1$W_! nuvola/128x128/apps/kcmdevice.pngUTeAux PKt91k"nuvola/128x128/apps/kcmdevices.pngUTgUAux PKGsH187g)*큯nuvola/128x128/apps/kcmdf.pngUTffAux PK H15;<"m:nuvola/128x128/apps/kcmdrkonqi.pngUTeAux PKt91sU6c7#unuvola/128x128/apps/kcmfontinst.pngUTgUAux PKJsH1ӈT8큰nuvola/128x128/apps/kcmkwm.pngUTlfAux PKMsH1ղCT>'@!\nuvola/128x128/apps/kcmmemory.pngUTrfAux PK:sH1Y  nuvola/128x128/apps/kcmmidi.pngUTPfAux PK!sH15:X;%큽nuvola/128x128/apps/kcmpartitions.pngUTfAux PKsH1S"#"Knuvola/128x128/apps/kcmpci.pngUTfAux PKsH1}=S@HB$nnuvola/128x128/apps/kcmprocessor.pngUTfAux PKsH1ak/00nuvola/128x128/apps/kcmscsi.pngUTfAux PKt91--FbG!nuvola/128x128/apps/kcmsystem.pngUTgUAux PKsH1L-5y6큢%nuvola/128x128/apps/kcmx.pngUTfAux PK sH1w?&A%Znuvola/128x128/apps/kcolorchooser.pngUTfAux PKSN1y_GI"nuvola/128x128/apps/kcoloredit.pngUT~mAux PKsH1~=\? 1nuvola/128x128/apps/kcontrol.pngUTfAux PKrH1\HAW!nuvola/128x128/apps/kdat.pngUT܆fAux PKt91 [*+u7nuvola/128x128/apps/kdf.pngUTgUAux PKsH1F2 4%bnuvola/128x128/apps/kdict.pngUTfAux PKt91>=O? ”nuvola/128x128/apps/kdisknav.pngUTgUAux PKrH1AaMN!nuvola/128x128/apps/kdmconfig.pngUTĆfAux PKrH1 2323크 nuvola/128x128/apps/kedit.pngUTfAux PK%sH1+79&6Snuvola/128x128/apps/keditbookmarks.pngUT&fAux PKt91:3G4$큔nuvola/128x128/apps/key_bindings.pngUTgUAux PKrH1$/192#,nuvola/128x128/apps/keybindings.pngUTfAux PKrH1Lw" 큸nuvola/128x128/apps/keyboard.pngUTԆfAux PKrH1I2()'4 nuvola/128x128/apps/keyboard_layout.pngUTfAux PKrH1(:p234nuvola/128x128/apps/kfig.pngUTfAux PK(qH1k)qHI큍gnuvola/128x128/apps/kfind.pngUTlfAux PKrH1325Unuvola/128x128/apps/kfloppy.pngUTfAux PK+qH1eB'(큌nuvola/128x128/apps/kfm.pngUTrfAux PKc N1vz_N7O  nuvola/128x128/apps/kfm_home.pngUTʹmAux PK H1jN$%큆[nuvola/128x128/apps/kget.pngUTeAux PKt914}./"Ànuvola/128x128/apps/kghostview.pngUTgUAux PK%qH1߰$^ST큢nuvola/128x128/apps/kgpg.pngUTffAux PKpH1!>E@ Vnuvola/128x128/apps/khangman.pngUTfAux PKyG1nU<>>#큡Bnuvola/128x128/apps/khelpcenter.pngUTeAux PKPN1v{<!> 큶nuvola/128x128/apps/khexedit.pngUTxmAux PKMN1rj2a"m# 큫nuvola/128x128/apps/khotkeys.pngUTrmAux PKt91Z9=>fnuvola/128x128/apps/kig.pngUTgUAux PKpH1]>Fnuvola/128x128/apps/kiten.pngUTfAux PKt91p)45|7nuvola/128x128/apps/kivio.pngUTgUAux PK[fE1=-d."knuvola/128x128/apps/kjobviewer.pngUT|bAux PKJN1K##nuvola/128x128/apps/kjots.pngUTlmAux PKpH1h Fnuvola/128x128/apps/klettres.pngUTfAux PKt91Fko,nuvola/128x128/apps/klipper.pngUTgUAux PK[fE1=-d.?nuvola/128x128/apps/klpq.pngUT|bAux PKGN1u β;1=lnuvola/128x128/apps/kmag.pngUTfmAux PKpH1%&?' nuvola/128x128/apps/kmahjong.pngUTfAux PKpH1Dq9:enuvola/128x128/apps/kmail.pngUTڂfAux PK`G1_KL- nuvola/128x128/apps/kmenu.pngUTd|eAux PKpH1\3P!Unuvola/128x128/apps/kmenuedit.pngUTƂfAux PKt91\8`.a$inuvola/128x128/apps/kmessedwords.pngUTgUAux PK7sH1U 큭nuvola/128x128/apps/kmid.pngUTJfAux PKpH1{01Xnuvola/128x128/apps/kmines.pngUT΂fAux PKPsH1 >6?Gnuvola/128x128/apps/kmix.pngUTxfAux PKRsH1GY<>큶Enuvola/128x128/apps/kmoon.pngUT|fAux PKCN1156"ׂnuvola/128x128/apps/kmousetool.pngUT^mAux PKVsH1+u dnuvola/128x128/apps/kmplot.pngUTfAux PKt91֝RS#nuvola/128x128/apps/knewsletter.pngUTgUAux PKt91-!DE#+nuvola/128x128/apps/knewsticker.pngUTgUAux PKZsH1cqA4Bqnuvola/128x128/apps/knode.pngUTfAux PKpH1/&](nuvola/128x128/apps/knotes.pngUTnfAux PKfG1.+LM!nuvola/128x128/apps/knotify.pngUTp|eAux PKt91c-}13큥&nuvola/128x128/apps/kolf.pngUTgUAux PK7 N1ԣfCE#xXnuvola/128x128/apps/kolourpaint.pngUTmAux PKt91ԖG/큺nuvola/128x128/apps/konqsidebar_mediaplayer.pngUTgUAux PKFL1IH_`!jnuvola/128x128/apps/konqueror.pngUT4lAux PKL1|3FH rnuvola/128x128/apps/konquest.pngUTlAux PK{L1fQ"*#m`nuvola/128x128/apps/konsole.pngUTlAux PKwL1:CCE$Gnuvola/128x128/apps/kontact.pngUTlAux PKtL1.'67큳nuvola/128x128/apps/kooka.pngUTlAux PK1tH1=(>?큑nuvola/128x128/apps/kopete.pngUTfAux PKt91׀Mokq"= nuvola/128x128/apps/korganizer.pngUTgUAux PKt91׀Mokq' nuvola/128x128/apps/korganizer_todo.pngUTgUAux PKqL1AB!nuvola/128x128/apps/korn.pngUTlAux PKoL1 Fn() `!nuvola/128x128/apps/kpackage.pngUTlAux PKL12P4Ɉ!nuvola/128x128/apps/kpager.pngUT~lAux PKlL1ԣfCE!nuvola/128x128/apps/kpaint.pngUT|lAux PK@N1YGHX!nuvola/128x128/apps/kpdf.pngUTXmAux PKt91`egW]^#51"nuvola/128x128/apps/kpercentage.pngUTgUAux PKhL1(`?*+"nuvola/128x128/apps/kpilot.pngUTtlAux PKeL1R*()#큀"nuvola/128x128/apps/kpovmodeler.pngUTnlAux PKVL1ӳ01"nuvola/128x128/apps/kppp.pngUTTlAux PKt91W!#%"@#nuvola/128x128/apps/kpresenter.pngUTgUAux PKpH1ռ; $$67#nuvola/128x128/apps/krdc.pngUTfAux PKqH1iݚ!큗[#nuvola/128x128/apps/krec.pngUT&fAux PKpH1C0M(2* {#nuvola/128x128/apps/kreversi.pngUTfAux PK:^=1tC*UV#nuvola/128x128/apps/krfb.pngUT@ZAux PKqH17oVIX)#nuvola/128x128/apps/krita.pngUT,fAux PK qH1~!`"#WR$nuvola/128x128/apps/kruler.pngUT2fAux PKqH1voZaFGu$nuvola/128x128/apps/kscd.pngUTBfAux PKqH1a9%%%$ƻ$nuvola/128x128/apps/kscreensaver.pngUTNfAux PKt916gLM!I$nuvola/128x128/apps/kservices.pngUTgUAux PK!qH1%&?'S.%nuvola/128x128/apps/kshisen.pngUT^fAux PK8N1+%U'T%nuvola/128x128/apps/ksig.pngUTLmAux PKqH1X|]L_{%nuvola/128x128/apps/ksim.pngUTVfAux PKWG1yaDNF%nuvola/128x128/apps/ksirc.pngUTeAux PKQL1iv.N/!%&nuvola/128x128/apps/ksnapshot.pngUTJlAux PKL1w#$L&nuvola/128x128/apps/ksplash.pngUTlAux PK L1kL$G%p&nuvola/128x128/apps/ksysv.pngUTlAux PK L1zz26b7 v&nuvola/128x128/apps/kteatime.pngUTlAux PKL1!wW;<!큜&nuvola/128x128/apps/kthememgr.pngUTlAux PKL1 !eH!JN'nuvola/128x128/apps/ktimer.pngUTlAux PKL15h#$큷P'nuvola/128x128/apps/ktip.pngUTlAux PKL10_N(")t'nuvola/128x128/apps/ktouch.pngUTlAux PKNL1HHHIx'nuvola/128x128/apps/kugar.pngUTDlAux PKKL1lFKH!'nuvola/128x128/apps/kuickshow.pngUT>lAux PKL1PzVX,(nuvola/128x128/apps/kuser.pngUTlAux PKL1+  (nuvola/128x128/apps/kverbos.pngUTlAux PK]oG1e%iG>I>(nuvola/128x128/apps/kview.pngUT/eAux PKt91ut/JOL (nuvola/128x128/apps/kweather.pngUTgUAux PKt91 [*+ 6)nuvola/128x128/apps/kwikdisk.pngUTgUAux PKt91<(`)nuvola/128x128/apps/kwin.pngUTgUAux PKt91P^#$ t)nuvola/128x128/apps/kwin4.pngUTgUAux PKt91 fRi:^<D)nuvola/128x128/apps/kword.pngUTgUAux PKwL1̑CD#큘)nuvola/128x128/apps/kworldclock.pngUTlAux PK]=1NOvQ큸*nuvola/128x128/apps/kwrite.pngUTZZAux PKL1Lw"g*nuvola/128x128/apps/kxkb.pngUTlAux PKL1waǡGH&Z*nuvola/128x128/apps/laptop_battery.pngUTlAux PKL1}=rg:;%|*nuvola/128x128/apps/laptop_pcmcia.pngUTlAux PKL1Y^n@BB+nuvola/128x128/apps/licq.pngUTlAux PKL1ȰE!"tG+nuvola/128x128/apps/locale.pngUTlAux PKt91` NO!i+nuvola/128x128/apps/looknfeel.pngUTgUAux PKt91ɭm]_(+nuvola/128x128/apps/mozilla-firebird.pngUTgUAux PKt91hBC+,nuvola/128x128/apps/mozilla-thunderbird.pngUTgUAux PKt91͇ũ80:큳X,nuvola/128x128/apps/mozilla.pngUTgUAux PKL1큵,nuvola/128x128/apps/mplayer.pngUTlAux PKL1Wd GNH"%,nuvola/128x128/apps/multimedia.pngUTlAux PKt91dSKoL"큆,nuvola/128x128/apps/mycomputer.pngUTgUAux PKt91NvL)) @-nuvola/128x128/apps/netscape.pngUTgUAux PKN1C2A\Bpj-nuvola/128x128/apps/network.pngUTڟnAux PKt91Qr !-nuvola/128x128/apps/noatun.pngUTgUAux PK5N1oyNR495!-nuvola/128x128/apps/ooo_gulls.pngUTFmAux PK3N1g56!r.nuvola/128x128/apps/ooo_setup.pngUTBmAux PK8L1e;K=큮7.nuvola/128x128/apps/opera.pngUTlAux PKt91{w&/576s.nuvola/128x128/apps/package.pngUTgUAux PKmD1-*+,թ.nuvola/128x128/apps/package_applications.pngUT]aAux PKtD1a:p<+.nuvola/128x128/apps/package_development.pngUT]aAux PK}D17*P+R']/nuvola/128x128/apps/package_editors.pngUT]aAux PKD19_8c9+Da/nuvola/128x128/apps/package_edutainment.pngUT]aAux PK.sH1D(U*(/nuvola/128x128/apps/package_favorite.pngUT8fAux PKD1]OX<=%B/nuvola/128x128/apps/package_games.pngUT^aAux PKD1(y#$,/nuvola/128x128/apps/package_games_arcade.pngUT^aAux PKD1%wΝ4 6+#0nuvola/128x128/apps/package_games_board.pngUT^aAux PK0N1Mz24.QY0nuvola/128x128/apps/package_games_strategy.pngUT^aAux PKD17YZ$ 2nuvola/128x128/apps/package_toys.pngUTD^aAux PKD1PMPg7<5=)1y2nuvola/128x128/apps/package_utilities.pngUTN^aAux PKjD17 AJJ.˵2nuvola/128x128/apps/package_wordprocessing.pngUT]aAux PKמL1h{-/ L3nuvola/128x128/apps/password.pngUTflAux PKڞL1ijDE f.3nuvola/128x128/apps/personal.pngUTllAux PK[fE1=-d. *s3nuvola/128x128/apps/printmgr.pngUT|bAux PKL1Z'(3nuvola/128x128/apps/randr.pngUTlAux PKL1!%|Z+,"a3nuvola/128x128/apps/realplayer.pngUTlAux PKL1b=>3nuvola/128x128/apps/remote.pngUTlAux PKt91tp“AbB24nuvola/128x128/apps/samba.pngUTgUAux PKݞL1"zv,- t4nuvola/128x128/apps/sodipodi.pngUTrlAux PKʞL1Nt큪4nuvola/128x128/apps/style.pngUTLlAux PKΞL1"#"ӿ4nuvola/128x128/apps/stylesheet.pngUTTlAux PKўL1A3# 4nuvola/128x128/apps/terminal.pngUTZlAux PKԞL1@-t/큍4nuvola/128x128/apps/usb.pngUT`lAux PKL1m]H#큭-5nuvola/128x128/apps/window_list.pngUTxlAux PKS^=1]&T' gC5nuvola/128x128/apps/winprops.pngUTnZAux PKL1L4n6j5nuvola/128x128/apps/x.pngUTlAux PKL1L4n6]5nuvola/128x128/apps/xapp.pngUTlAux PKt91~ [HsI큟5nuvola/128x128/apps/xcalc.pngUTgUAux PK|L1s9^>`Q6nuvola/128x128/apps/xclock.pngUTlAux PKL1L4n6큘|6nuvola/128x128/apps/xconfig.pngUTlAux PKt914?j@ݱ6nuvola/128x128/apps/xemacs.pngUTgUAux PKt91!+@vA6nuvola/128x128/apps/xfmail.pngUTgUAux PK3sH1i f23L27nuvola/128x128/apps/xmag.pngUTBfAux PK PL>Ae7nuvola/128x128/devices/UTȤVMux PK|A1;0|1(Ye7nuvola/128x128/devices/3floppy_mount.pngUT]]Aux PK{A1W }c*7nuvola/128x128/devices/3floppy_unmount.pngUT.\]Aux PK|A1X9Yo+h,(큽7nuvola/128x128/devices/5floppy_mount.pngUT]]Aux PK|A1T*b*큎7nuvola/128x128/devices/5floppy_unmount.pngUT]]Aux PKt91 [*+&T7nuvola/128x128/devices/blockdevice.pngUTgUAux PK}A1 q(l)!8nuvola/128x128/devices/camera.pngUT2^]Aux PK|A1S㑆8G:'pF8nuvola/128x128/devices/camera_mount.pngUT]]Aux PK|A1 q(l))큜8nuvola/128x128/devices/camera_unmount.pngUT]]Aux PKN10TD{E(8nuvola/128x128/devices/cdaudio_mount.pngUTnnAux PK|A15^ŒJK*큻8nuvola/128x128/devices/cdaudio_unmount.pngUT]]Aux PK|A10TD{E&큫79nuvola/128x128/devices/cdrom_mount.pngUT]]Aux PK|A1*23(_|9nuvola/128x128/devices/cdrom_unmount.pngUT]]Aux PK|A110C`=>)큕9nuvola/128x128/devices/cdwriter_mount.pngUT]]Aux PK|A13⎭,{-+X9nuvola/128x128/devices/cdwriter_unmount.pngUT~]]Aux PK|A1]oӃPQ$j:nuvola/128x128/devices/dvd_mount.pngUTz]]Aux PK|A1Mi ?@&큂k:nuvola/128x128/devices/dvd_unmount.pngUTt]]Aux PK|A1if+P`-.$:nuvola/128x128/devices/hdd_mount.pngUTp]]Aux PK|A1$W_&크:nuvola/128x128/devices/hdd_unmount.pngUTj]]Aux PK|A1-+,k:nuvola/128x128/devices/ipod.pngUTb]]Aux PK|A1/^%=`>#;nuvola/128x128/devices/joystick.pngUT\]]Aux PKt91[ߝA(C#cY;nuvola/128x128/devices/ksim_cpu.pngUTgUAux PK|A1ղCT>'@!];nuvola/128x128/devices/memory.pngUTR]]Aux PK|A1 ]OIQ# ;nuvola/128x128/devices/mo_mount.pngUTL]]Aux PK|A1DF%H*<nuvola/128x128/devices/mo_unmount.pngUTH]]Aux PK|A1^8%& 큍o<nuvola/128x128/devices/modem.pngUT@]]Aux PK||A1156 <nuvola/128x128/devices/mouse.pngUT<]]Aux PKy|A1z&34$큪<nuvola/128x128/devices/nfs_mount.pngUT6]]Aux PKw|A1}p&큐<nuvola/128x128/devices/nfs_unmount.pngUT2]]Aux PKt|A1-ච!"m=nuvola/128x128/devices/pda.pngUT,]]Aux PKq|A10(on%`&$e>=nuvola/128x128/devices/pda_black.pngUT&]]Aux PKn|A1|pA{+,#1d=nuvola/128x128/devices/pda_blue.pngUT ]]Aux PKk|A1:9: ;& =nuvola/128x128/devices/print_class.pngUT]]Aux PKh|A1"^Y+j,(큢=nuvola/128x128/devices/print_printer.pngUT]]Aux PKf|A1=-d."큣=nuvola/128x128/devices/printer.pngUT]]Aux PKt91Q-n.#큏$>nuvola/128x128/devices/printer1.pngUTgUAux PKc|A1لN큖R>nuvola/128x128/devices/raid.pngUT ]]Aux PKt91COP&k>nuvola/128x128/devices/samba_mount.pngUTgUAux PK]|A1/&ۣ?r@(>nuvola/128x128/devices/samba_unmount.pngUT]]Aux PKZ|A1.'67">nuvola/128x128/devices/scanner.pngUT\]Aux PKR|A13r7A@C!2?nuvola/128x128/devices/tablet.pngUT\]Aux PK|A15.t?nuvola/128x128/devices/tv.pngUT]]Aux PKqA1i<>,!?nuvola/128x128/devices/usbpendrive_mount.pngUTb]Aux PKlA1*]'h).O?nuvola/128x128/devices/usbpendrive_unmount.pngUTb]Aux PK|A1HA[8@nuvola/128x128/filesystems/UTʤVMux PKt91,'6)%큰8@nuvola/128x128/filesystems/camera.pngUTgUAux PKi=1C*/0)`@nuvola/128x128/filesystems/chardevice.pngUTZAux PKi=1 yK;M&1@nuvola/128x128/filesystems/desktop.pngUTZAux PKi=1f6+f,# @nuvola/128x128/filesystems/exec.pngUTZAux PKh=1+I'(*큝Anuvola/128x128/filesystems/file_broken.pngUTvZAux PK i=1$$$-큖0Anuvola/128x128/filesystems/file_important.pngUTZAux PKt91X» !*UAnuvola/128x128/filesystems/file_locked.pngUTgUAux PKi=1iH8R9-:vAnuvola/128x128/filesystems/file_temporary.pngUTZAux PK.e=1a?0zJ!K%Anuvola/128x128/filesystems/folder.pngUTXZAux PK1B1a?0zJ!K*Anuvola/128x128/filesystems/folder_blue.pngUT.^Aux PK1B16bJ67/큠DBnuvola/128x128/filesystems/folder_blue_open.pngUT.^Aux PK+e=1+QtPQ*S{Bnuvola/128x128/filesystems/folder_cool.pngUTRZAux PK=1L`M*큆Bnuvola/128x128/filesystems/folder_cyan.pngUTZAux PK=1^er<=/Cnuvola/128x128/filesystems/folder_cyan_open.pngUTZAux PK(e=1EQ.KL.큧VCnuvola/128x128/filesystems/folder_download.pngUTLZAux PK%e=1#sMM.Cnuvola/128x128/filesystems/folder_favorite.pngUTFZAux PK"e=1k<@[[*uCnuvola/128x128/filesystems/folder_font.pngUT@ZAux PKe=1{8TU+LDnuvola/128x128/filesystems/folder_games.pngUT8ZAux PK=1bK:L+sDnuvola/128x128/filesystems/folder_green.pngUTZAux PK=1I/6$80uDnuvola/128x128/filesystems/folder_green_open.pngUTZAux PK=1*J+DD*큖$Enuvola/128x128/filesystems/folder_grey.pngUTZAux PK=1 &4F5/%iEnuvola/128x128/filesystems/folder_grey_open.pngUTZAux PKe=1vz_N7O*큒Enuvola/128x128/filesystems/folder_home.pngUTZAux PKe=1WX*UEnuvola/128x128/filesystems/folder_html.pngUT2ZAux PK[e=1 'IJ+gDFnuvola/128x128/filesystems/folder_image.pngUTZAux PKXe=1gZPR/TFnuvola/128x128/filesystems/folder_important.pngUTZAux PKbe=16>KM,큈Fnuvola/128x128/filesystems/folder_locked.pngUTZAux PKOe=1qEEF*+Gnuvola/128x128/filesystems/folder_mail.pngUTZAux PKLe=1P:YZ)큅qGnuvola/128x128/filesystems/folder_man.pngUTZAux PKIe=1Ӊ?H@*큽Gnuvola/128x128/filesystems/folder_midi.pngUTZAux PK=16bJ67*큣 Hnuvola/128x128/filesystems/folder_open.pngUThZAux PK=1cIeJ,QBHnuvola/128x128/filesystems/folder_orange.pngUTZAux PKܘ=1h21|31oHnuvola/128x128/filesystems/folder_orange_open.pngUTZAux PKFe=1.BqJK+˾Hnuvola/128x128/filesystems/folder_photo.pngUTZAux PKCe=1̴TKL+큡 Inuvola/128x128/filesystems/folder_print.pngUT~ZAux PKt91* PQ,ZUInuvola/128x128/filesystems/folder_print2.pngUTgUAux PK =1.HUI)^Inuvola/128x128/filesystems/folder_red.pngUTvZAux PKؘ=1P~P23.bInuvola/128x128/filesystems/folder_red_open.pngUTZAux PK@e=1)XсVW+"Jnuvola/128x128/filesystems/folder_sound.pngUTxZAux PKڕ=15ؼ"MN)yJnuvola/128x128/filesystems/folder_tar.pngUTZAux PK7e=1_WY)큅Jnuvola/128x128/filesystems/folder_txt.pngUTjZAux PK4e=1C}HI+tKnuvola/128x128/filesystems/folder_video.pngUTdZAux PK,=1ҶJLK,큎gKnuvola/128x128/filesystems/folder_violet.pngUTZAux PKԘ=1|)9f891큖Knuvola/128x128/filesystems/folder_violet_open.pngUTZAux PK.=1dgG_H,gKnuvola/128x128/filesystems/folder_yellow.pngUTHZAux PK=1޻0q2143Lnuvola/128x128/filesystems/folder_yellow_open.pngUT^ZAux PKe=1RNT"^dLnuvola/128x128/filesystems/ftp.pngUT,ZAux PKg=1Zw#큟Lnuvola/128x128/filesystems/link.pngUTZAux PKg=1U"*sLnuvola/128x128/filesystems/lockoverlay.pngUTZAux PKԕ=1C2A\B&Lnuvola/128x128/filesystems/network.pngUTZAux PK g=1cmA+ ,큄Mnuvola/128x128/filesystems/network_local.pngUTڔZAux PK g=1-ON !#9Mnuvola/128x128/filesystems/pipe.pngUTԔZAux PKg=19#$%YMnuvola/128x128/filesystems/server.pngUT̔ZAux PKg=1%+a,'6}Mnuvola/128x128/filesystems/services.pngUTĔZAux PKee=1+OK:M%큼Mnuvola/128x128/filesystems/socket.pngUTZAux PK=1-ix,--Mnuvola/128x128/filesystems/trashcan_empty.pngUTZAux PK=1%IJK,!Nnuvola/128x128/filesystems/trashcan_full.pngUTZAux PKUe=1wP R"큈lNnuvola/128x128/filesystems/www.pngUTZAux PKy.*f"큘Nnuvola/128x128/filesystems/zip.pngUT>ux PK RL>ANnuvola/128x128/mimetypes/UT̤VMux PKC1'e(A)(0Nnuvola/128x128/mimetypes/abiword_abi.pngUT`Aux PKC1y w#Nnuvola/128x128/mimetypes/applix.pngUT`Aux PKC1! "Onuvola/128x128/mimetypes/ascii.pngUT`Aux PKt91?,_,d,4Onuvola/128x128/mimetypes/bc.pngUTgUAux PKC1- r#?Onuvola/128x128/mimetypes/binary.pngUT`Aux PKC1K&-.&V]Onuvola/128x128/mimetypes/cdbo_list.pngUT`Aux PKC1 WI12$큱Onuvola/128x128/mimetypes/cdimage.pngUT`Aux PKC1e() ˽Onuvola/128x128/mimetypes/cdr.pngUT`Aux PKC1=q;=$Onuvola/128x128/mimetypes/cdtrack.pngUT`Aux PKC1z/+2,%"Pnuvola/128x128/mimetypes/colorscm.pngUTr`Aux PKC1z/+2,%큋NPnuvola/128x128/mimetypes/colorset.pngUT`Aux PKC1yl!zPnuvola/128x128/mimetypes/core.pngUT`Aux PKC1~s}9: 큓Pnuvola/128x128/mimetypes/deb.pngUT`Aux PKC1^&+,%큥Pnuvola/128x128/mimetypes/document.pngUTx`Aux PKC1C6(( Pnuvola/128x128/mimetypes/dvi.pngUT``Aux PKC1X'(#큅%Qnuvola/128x128/mimetypes/ebuild.pngUTR`Aux PKC1Rf "큜MQnuvola/128x128/mimetypes/empty.pngUTZ`Aux PKC1e +!&WQnuvola/128x128/mimetypes/encrypted.pngUTL`Aux PKC1qT"#&큐xQnuvola/128x128/mimetypes/exec_wine.pngUTD`Aux PKC1: !"4DQnuvola/128x128/mimetypes/file_locked-[Converted].pngUTf`Aux PKt915"~#(큤Qnuvola/128x128/mimetypes/file_locked.pngUTgUAux PKC1^ d:k;+Qnuvola/128x128/mimetypes/file_temporary.pngUTl`Aux PK|C1jd~!큑Rnuvola/128x128/mimetypes/font.pngUT<`Aux PKyC1*܅*(j5Rnuvola/128x128/mimetypes/font_bitmap.pngUT6`Aux PKvC1O#$*IRnuvola/128x128/mimetypes/font_truetype.pngUT0`Aux PKoC1:~oL'*nRnuvola/128x128/mimetypes/font_type1.pngUT"`Aux PKrC1Wn"#$Rnuvola/128x128/mimetypes/gettext.pngUT(`Aux PKkC1{g(=)VRnuvola/128x128/mimetypes/gf.pngUT`Aux PKhC1|45+Rnuvola/128x128/mimetypes/gnome_app_info.pngUT`Aux PKdC1|K|.Y/!. Snuvola/128x128/mimetypes/html.pngUT `Aux PKaC16fI";Snuvola/128x128/mimetypes/image.pngUT`Aux PK[C1uI&'p('WSnuvola/128x128/mimetypes/image_gimp.pngUT`Aux PKTC1I ('(!!Snuvola/128x128/mimetypes/info.pngUT`Aux PKXC14)*$큤Snuvola/128x128/mimetypes/install.pngUT`Aux PKOC1Z DD%6Snuvola/128x128/mimetypes/java_jar.pngUT`Aux PKKC1=NNwE*큠Tnuvola/128x128/mimetypes/karbon_karbon.pngUT`Aux PKHC1z01({1Tnuvola/128x128/mimetypes/kchart_chrt.pngUT`Aux PKDC12# )%&)큕bTnuvola/128x128/mimetypes/kformula_kfo.pngUT`Aux PKAC1=wdE&!Tnuvola/128x128/mimetypes/kget_list.pngUT`Aux PK6C1flu#!"$Tnuvola/128x128/mimetypes/kig_doc.pngUT`Aux PK;C1?e-.&FTnuvola/128x128/mimetypes/kivio_flw.pngUT`Aux PKC1o0=S  &eTnuvola/128x128/mimetypes/kmultiple.pngUT|`Aux PKC1v12$Unuvola/128x128/mimetypes/koffice.pngUTv`Aux PKC1IܺHS%7&,)5Unuvola/128x128/mimetypes/kpovmodeler_doc.pngUTn`Aux PK C1y,&"#+ZUnuvola/128x128/mimetypes/kpresenter_kpr.pngUTj`Aux PKC1Rf +m}Unuvola/128x128/mimetypes/krec_fileempty.pngUT``Aux PKC1 p-.*큥Unuvola/128x128/mimetypes/krec_fileplay.pngUTN`Aux PKC1ok)Unuvola/128x128/mimetypes/krec_filerec.pngUTV`Aux PKC1ۥOBD&GUnuvola/128x128/mimetypes/krita_kra.pngUTF`Aux PKC1{-C.(7Vnuvola/128x128/mimetypes/kspread_ksp.pngUT@`Aux PKC1WP5`6&?Vnuvola/128x128/mimetypes/kugar_kud.pngUT&`Aux PKC1")Bz>&tVnuvola/128x128/mimetypes/kugardata.pngUT`Aux PK܌C1^**&큞Vnuvola/128x128/mimetypes/kword_kwd.pngUT`Aux PKٌC1ۛ Vnuvola/128x128/mimetypes/log.pngUT `Aux PK֌C1%b&!}Vnuvola/128x128/mimetypes/make.pngUT`Aux PKҌC1$_&9: nWnuvola/128x128/mimetypes/man.pngUT`Aux PKˌC1V:;$:Wnuvola/128x128/mimetypes/message.pngUT`Aux PKόC1n=e> @%"vWnuvola/128x128/mimetypes/metafont.pngUT`Aux PKnjC1.u!NWnuvola/128x128/mimetypes/midi.pngUT`Aux PKC1Rf ![Wnuvola/128x128/mimetypes/mime.pngUT:`Aux PKC1X'((큉Wnuvola/128x128/mimetypes/mime_ebuild.pngUT `Aux PKt91Pp  '큥Wnuvola/128x128/mimetypes/mime_empty.pngUTgUAux PKČC1'֜/0)vXnuvola/128x128/mimetypes/mime_koffice.pngUT`Aux PKC1= >%큘6Xnuvola/128x128/mimetypes/mime_lyx.pngUT`Aux PKt91g# &wtXnuvola/128x128/mimetypes/mime_temp.pngUTgUAux PKC1Rf %Xnuvola/128x128/mimetypes/misc_doc.pngUT4`Aux PKt91\j,y-(,Xnuvola/128x128/mimetypes/mozilla_doc.pngUTgUAux PKC1ܰE'p)Xnuvola/128x128/mimetypes/netscape_doc.pngUT`Aux PKC1*..%Xnuvola/128x128/mimetypes/ooo_calc.pngUT`Aux PKC1e1/S0)TYnuvola/128x128/mimetypes/ooo_calc_tpl.pngUT`Aux PKt912*00%[1Ynuvola/128x128/mimetypes/ooo_draw.pngUTgUAux PKC1za00)aYnuvola/128x128/mimetypes/ooo_draw_tpl.pngUT`Aux PKt91Yl"Z#(큨Ynuvola/128x128/mimetypes/ooo_impress.pngUTgUAux PKC13Wr&##,Ynuvola/128x128/mimetypes/ooo_impress_tpl.pngUT`Aux PKC1>T|0!1&Ynuvola/128x128/mimetypes/ooo_setup.pngUT`Aux PKC1A8}488' Znuvola/128x128/mimetypes/ooo_writer.pngUT`Aux PKC1 y/8o8+eCZnuvola/128x128/mimetypes/ooo_writer_tpl.pngUT`Aux PKC1|0,1"{Znuvola/128x128/mimetypes/patch.pngUT`Aux PKC1\"U$>% hZnuvola/128x128/mimetypes/pdf.pngUT`Aux PKC1v \!'Znuvola/128x128/mimetypes/postscript.pngUT`Aux PKC13./&!Znuvola/128x128/mimetypes/quicktime.pngUT`Aux PKC1"(f)#6![nuvola/128x128/mimetypes/readme.pngUT~`Aux PKC1 Z=&%'!,J[nuvola/128x128/mimetypes/real.pngUTx`Aux PKC1 Z=&%'%p[nuvola/128x128/mimetypes/real_doc.pngUTp`Aux PKC1)v?((%`[nuvola/128x128/mimetypes/recycled.pngUTh`Aux PK}C1 },W%[nuvola/128x128/mimetypes/resource.pngUT^`Aux PKC1:: [nuvola/128x128/mimetypes/rpm.pngUTb`Aux PKzC1cj.(큗\nuvola/128x128/mimetypes/shellscript.pngUTX`Aux PKwC1nLRw:;$y(\nuvola/128x128/mimetypes/soffice.pngUTR`Aux PKsC1ϰݨI)=*"Nc\nuvola/128x128/mimetypes/sound.pngUTJ`Aux PKoC16-;O<#\nuvola/128x128/mimetypes/source.pngUTB`Aux PKjC1Nۼ+,%/\nuvola/128x128/mimetypes/source_c.pngUT8`Aux PKbC1--'J\nuvola/128x128/mimetypes/source_cpp.pngUT(`Aux PKfC1q !'"]nuvola/128x128/mimetypes/source_css.pngUT0`Aux PKIC1)''%D]nuvola/128x128/mimetypes/source_f.pngUT`Aux PKFC1@JQ&'%큈k]nuvola/128x128/mimetypes/source_h.pngUT`Aux PKCC15U&')(%큓]nuvola/128x128/mimetypes/source_j.pngUT`Aux PK@C1`")#(ú]nuvola/128x128/mimetypes/source_java.pngUT`Aux PKt91<#(n(%큱]nuvola/128x128/mimetypes/source_l.pngUTgUAux PK;C1k()'+^nuvola/128x128/mimetypes/source_moc.pngUT`Aux PK5C1Wd))%V/^nuvola/128x128/mimetypes/source_o.pngUT`Aux PK8C1}s((%GY^nuvola/128x128/mimetypes/source_p.pngUT`Aux PK%C1+h6A7'6^nuvola/128x128/mimetypes/source_php.pngUT`Aux PK"C1z;G))&^nuvola/128x128/mimetypes/source_pl.pngUT`Aux PKC1l8+U,&^nuvola/128x128/mimetypes/source_py.pngUT`Aux PKAC1͚5[**%9_nuvola/128x128/mimetypes/source_s.pngUT `Aux PKC1((%9_nuvola/128x128/mimetypes/source_y.pngUT`Aux PKC1hu&'(b_nuvola/128x128/mimetypes/spreadsheet.pngUT`Aux PKC1 011 _nuvola/128x128/mimetypes/tar.pngUT`Aux PKC1U'J(,큄_nuvola/128x128/mimetypes/template_source.pngUT`Aux PKC1rZO _nuvola/128x128/mimetypes/tex.pngUTF`Aux PKC1=+;u< 큾_nuvola/128x128/mimetypes/tgz.pngUTz`Aux PKՋC1R_ 큵;`nuvola/128x128/mimetypes/txt.pngUT"`Aux PKC1Rf $R`nuvola/128x128/mimetypes/unknown.pngUT.`Aux PKpC1Z++,&]`nuvola/128x128/mimetypes/vcalendar.pngUTd`Aux PKaC1j&&"`nuvola/128x128/mimetypes/vcard.pngUTF`Aux PKC1ųK &_`nuvola/128x128/mimetypes/vectorgfx.pngUT`Aux PKNC1& "큖`nuvola/128x128/mimetypes/video.pngUT$`Aux PKJC1p' `nuvola/128x128/mimetypes/widget_doc.pngUT`Aux PK݊C1*ר(8)+`nuvola/128x128/mimetypes/wordprocessing.pngUTR`Aux PK tQB A$anuvola/16x16/UT3 Qux PKuQBH <Y$anuvola/16x16/.DS_StoreUTg Qux PK "DA)anuvola/16x16/actions/UTFSux PK ElN1E8 ((#*anuvola/16x16/actions/1downarrow.pngUT2dnAux PK ClN1p  #큊-anuvola/16x16/actions/1leftarrow.pngUT.dnAux PK 4lN1!  $0anuvola/16x16/actions/1rightarrow.pngUTdnAux PK 3lN115  ![4anuvola/16x16/actions/1uparrow.pngUTdnAux PK 1lN1#''#7anuvola/16x16/actions/2downarrow.pngUTdnAux PK 0lN1p`#G@@!큺anuvola/16x16/actions/edit_add.pngUTbcnAux PK kN1{qq$Uanuvola/16x16/actions/edit_remove.pngUT^cnAux PK ]N1!$anuvola/16x16/actions/editcopy.pngUTbnAux PK t91Xfii Yanuvola/16x16/actions/editcut.pngUTgUAux PK ekN19\\#anuvola/16x16/actions/editdelete.pngUTbnAux PK SkN1D"anuvola/16x16/actions/editpaste.pngUTnbnAux PK [N1]"anuvola/16x16/actions/editshred.pngUT^nAux PK jN1Fqq"anuvola/16x16/actions/edittrash.pngUTxnAux PK ckN1"큨anuvola/16x16/actions/encrypted.pngUTbnAux PK mN18ss anuvola/16x16/actions/endturn.pngUTfnAux PK pN1H"큻anuvola/16x16/actions/exit.pngUTnjnAux PK pN1ޙ!"bnuvola/16x16/actions/fileclose.pngUThjnAux PK PkN1'RR#bnuvola/16x16/actions/fileexport.pngUThbnAux PK bkN1^x%%  bnuvola/16x16/actions/filenew.pngUTbnAux PK t91!C bnuvola/16x16/actions/fileopen.pngUTgUAux PK 4b0;"%\bnuvola/16x16/actions/fileopen_red.pngUTDJux PK `kN1bSg"Bbnuvola/16x16/actions/fileprint.pngUTbnAux PK\kN1 9'큚bnuvola/16x16/actions/filequickprint.pngUTbnAux PK NkN1w!|bnuvola/16x16/actions/filesave.pngUTdbnAux PK LkN1 i#Y bnuvola/16x16/actions/filesaveas.pngUT`bnAux PK t91oX9!!큧$bnuvola/16x16/actions/fill.pngUTgUAux PK t91 (bnuvola/16x16/actions/find.pngUTgUAux PK kN1`u:&+bnuvola/16x16/actions/finish.pngUTZcnAux PK t91i;;#G/bnuvola/16x16/actions/folder_new.pngUTgUAux PK kN1 2bnuvola/16x16/actions/forward.pngUTTcnAux PK N1y  #6bnuvola/16x16/actions/frameprint.pngUTnAux PK ZkN1!]ee7:bnuvola/16x16/actions/gohome.pngUT|bnAux PKJkN1N~>bnuvola/16x16/actions/help.pngUT\bnAux PK FkN1VK Cbnuvola/16x16/actions/history.pngUTTbnAux PK DkN1sa &Hbnuvola/16x16/actions/history_clear.pngUTPbnAux PK ņL>'Mbnuvola/16x16/actions/history_resume.pngUT"VMux PK ΪL>Y=3%Rbnuvola/16x16/actions/history_stop.pngUTVMux PK :8&$Vbnuvola/16x16/actions/historymenu.pngUT0CHux PK CkN1Zjj!$Zbnuvola/16x16/actions/identity.pngUTNbnAux PK SlN1HXe//]bnuvola/16x16/actions/irkick.pngUTNdnAux PK kN1 HtTT$qbbnuvola/16x16/actions/irkickflash.pngUT~cnAux PKWlN1\f"#gbnuvola/16x16/actions/irkickoff.pngUTVdnAux PK )kN1B,,%:ibnuvola/16x16/actions/kaboodleloop.pngUTbnAux PK'kN1MJKmbnuvola/16x16/actions/kalarm.pngUTbnAux PK%kN1.(rbnuvola/16x16/actions/kalarm_disabled.pngUTbnAux PK 2kN1E8 ((&큵wbnuvola/16x16/actions/kdevelop_down.pngUT0bnAux PK j:1o!$aa={bnuvola/16x16/actions/kgpg.pngUTVAux PK t91"~bnuvola/16x16/actions/kgpg_edit.pngUTgUAux PK t914>$bnuvola/16x16/actions/kgpg_export.pngUTgUAux PK t91Rސ!bnuvola/16x16/actions/kgpg_gen.pngUTgUAux PK t91$&Kbnuvola/16x16/actions/kgpg_identity.pngUTgUAux PK t919`!$큕bnuvola/16x16/actions/kgpg_import.pngUTgUAux PK t91B"͒bnuvola/16x16/actions/kgpg_info.pngUTgUAux PK t91E[::"/bnuvola/16x16/actions/kgpg_key1.pngUTgUAux PK t91C7JRR"Řbnuvola/16x16/actions/kgpg_key2.pngUTgUAux PK t91>S*"sbnuvola/16x16/actions/kgpg_key3.pngUTgUAux PK t91##큁bnuvola/16x16/actions/kgpg_photo.pngUTgUAux PK t91r"ʣbnuvola/16x16/actions/kgpg_show.pngUTgUAux PK t91@V"bnuvola/16x16/actions/kgpg_sign.pngUTgUAux PK t91qv"bnuvola/16x16/actions/kgpg_term.pngUTgUAux PK t91-n%bnuvola/16x16/actions/klipper_dock.pngUTgUAux PK pN1¥ll#bnuvola/16x16/actions/kmixdocked.pngUTbjnAux PK pN1#<<)ڷbnuvola/16x16/actions/kmixdocked_error.pngUT`jnAux PK pN1Ć(ybnuvola/16x16/actions/kmixdocked_mute.pngUTLjnAux PK t91 $bbnuvola/16x16/actions/krec_record.pngUTgUAux PKpN1Nś&큃bnuvola/16x16/actions/laptop_charge.pngUTHjnAux PK pN1(F55)~bnuvola/16x16/actions/laptop_nobattery.pngUTDjnAux PKpN1guǑhl(bnuvola/16x16/actions/laptop_nocharge.pngUTBjnAux PK pN1q%bnuvola/16x16/actions/laptop_power.pngUT@jnAux PK t918C bnuvola/16x16/actions/ledblue.pngUTgUAux PK |oN1\!bnuvola/16x16/actions/ledgreen.pngUTcnAux PK kN1aBB"mcnuvola/16x16/actions/rotate_cw.pngUT2cnAux PK kN1yh cnuvola/16x16/actions/run.pngUTanAux PK kN15{클#dnuvola/16x16/actions/Thumbs.dbUTfVMux PK e:nY55! enuvola/16x16/actions/timeline.pngUTzIux PK kO1sߺ#큜enuvola/16x16/actions/toggle_log.pngUTLoAux PK kN1%7큳enuvola/16x16/actions/top.pngUT(cnAux PK t91fenuvola/16x16/actions/undo.pngUTgUAux PK kN1bNFenuvola/16x16/actions/up.pngUT"cnAux PK kN1d$"enuvola/16x16/actions/view_bottom.pngUTcnAux PK kN1$&enuvola/16x16/actions/view_choose.pngUTcnAux PK kN1q&-+enuvola/16x16/actions/view_detailed.pngUTcnAux PK kN1m펵(N/enuvola/16x16/actions/view_fullscreen.pngUTcnAux PK kN18"_3enuvola/16x16/actions/view_icon.pngUTcnAux PK kN1sd66(큠7enuvola/16x16/actions/view_left_right.pngUT cnAux PK kN1*b)8;enuvola/16x16/actions/view_multicolumn.pngUTcnAux PK kN1]n*~?enuvola/16x16/actions/view_nofullscreen.pngUTcnAux PK kN1$큧Cenuvola/16x16/actions/view_remove.pngUTcnAux PK kN1O_#Fenuvola/16x16/actions/view_right.pngUTbnAux PK kN1ӏ&Kenuvola/16x16/actions/view_sidetree.pngUTbnAux PK kN1RxS"Nenuvola/16x16/actions/view_text.pngUTbnAux PK kN1ӌΜ(Renuvola/16x16/actions/view_top_bottom.pngUTbnAux PK kN1?q"+Venuvola/16x16/actions/view_tree.pngUTbnAux PK kN1OO!Zenuvola/16x16/actions/viewmag+.pngUTcnAux PK lN1<+>>!큼^enuvola/16x16/actions/viewmag-.pngUTcnAux PK t91SZv-- Uaenuvola/16x16/actions/viewmag.pngUTgUAux PK lN1I<!denuvola/16x16/actions/viewmag1.pngUTcnAux PK @mN1ܰ#genuvola/16x16/actions/viewmagfit.pngUTfnAux PK kN1P@#kenuvola/16x16/actions/window_new.pngUTbnAux PK jN1X?oenuvola/16x16/actions/wizard.pngUTzanAux PK CAsenuvola/16x16/apps/UT Rux PK F1 otenuvola/16x16/apps/access.pngUT$MdAux PK D1+ss큎xenuvola/16x16/apps/acroread.pngUTZ^aAux PK F1,8++Y}enuvola/16x16/apps/agent.pngUTMdAux PK t91RP]فenuvola/16x16/apps/aktion.pngUTgUAux PK F1~D-enuvola/16x16/apps/amarok.pngUTMdAux PK /N13-큓enuvola/16x16/apps/amor.pngUT:mAux PK F1qegg enuvola/16x16/apps/applixware.pngUTMdAux PK 7WG1R=66큃enuvola/16x16/apps/ark.pngUT eAux PK 3WG1Xb@ enuvola/16x16/apps/arts.pngUTeAux PK 0WG1fHM!3enuvola/16x16/apps/artsbuilder.pngUTeAux PK ,WG1 'ys**!큭enuvola/16x16/apps/artscontrol.pngUTeAux PK e:1Dh%2enuvola/16x16/apps/artsmidimanager.pngUTНVAux PK (WG1  Denuvola/16x16/apps/atlantik.pngUTeAux PK WG1 큦enuvola/16x16/apps/background.pngUTeAux PK WG1ֻP  enuvola/16x16/apps/bell.pngUTeAux PK nCKQenuvola/16x16/apps/bookcase.pngUT Rux PK fE1"Kenuvola/16x16/apps/browser.pngUTd}bAux PK WG1$enuvola/16x16/apps/bug.pngUTeAux PK$WG1e}  Venuvola/16x16/apps/cache.pngUTeAux PK WG1׻naa클enuvola/16x16/apps/chat.pngUTeAux PK WG1^1zOff ienuvola/16x16/apps/clanbomber.pngUTeAux PK WG1Dݼ)enuvola/16x16/apps/clock.pngUTeAux PK kG1XXenuvola/16x16/apps/colors.pngUT(eAux PK kG1pUbb클enuvola/16x16/apps/cookie.pngUT(eAux PK VG1^1zOfflenuvola/16x16/apps/core.pngUTeAux PK kG1 fZZ&enuvola/16x16/apps/date.pngUT(eAux PK kG1Cenuvola/16x16/apps/designer.pngUT(eAux PK \oG1Wh##enuvola/16x16/apps/digikam.pngUT/eAux PK kG1xXxx;enuvola/16x16/apps/display.pngUTz(eAux PK kG1& enuvola/16x16/apps/download_manager.pngUT(eAux PK UoG1ͤ,,#Denuvola/16x16/apps/edu_languages.pngUTr/eAux PK OoG1B8N^``%enuvola/16x16/apps/edu_mathematics.pngUTf/eAux PK t91 `'큌enuvola/16x16/apps/edu_miscellaneous.pngUTgUAux PK RoG1*'!큣enuvola/16x16/apps/edu_science.pngUTl/eAux PK /G1 U큈fnuvola/16x16/apps/emacs.pngUT |eAux PK *G1la큽fnuvola/16x16/apps/email.pngUT|eAux PK LoG1}:: fnuvola/16x16/apps/energy.pngUT`/eAux PK hoG1p!'mfnuvola/16x16/apps/enhanced_browsing.pngUT/eAux PK doG1O'~~`fnuvola/16x16/apps/error.pngUT/eAux PK\G1,%KR3fnuvola/16x16/apps/evolution.pngUT@~eAux PK ۛG1sy"fnuvola/16x16/apps/file-manager.pngUTN}eAux PK xG1kP9&& #fnuvola/16x16/apps/filetypes.pngUT|eAux PK }G1Q1vv큊'fnuvola/16x16/apps/flashkard.pngUT|eAux PK G1{||Y+fnuvola/16x16/apps/fonts.pngUT|eAux PK ,N1Ĕ*/fnuvola/16x16/apps/fsview.pngUT4mAux PKG1sP3fnuvola/16x16/apps/gaim.pngUT|eAux PKG1%z큃7fnuvola/16x16/apps/galeon.pngUT{eAux PK G1mGOOSr!gnuvola/16x16/apps/kolourpaint.pngUTmAux PK t91`-Egnuvola/16x16/apps/konqsidebar_mediaplayer.pngUTgUAux PKIL1`,orgnuvola/16x16/apps/konqueror.pngUT:lAux PKL1w|9<:gnuvola/16x16/apps/konquest.pngUTlAux PK }L1"gnuvola/16x16/apps/konsole.pngUTlAux PK yL1E gnuvola/16x16/apps/kontact.pngUTlAux PK vL1~>>Lgnuvola/16x16/apps/kooka.pngUTlAux PK 4tH1A)""gnuvola/16x16/apps/kopete.pngUT$fAux PK t91t@711 Wgnuvola/16x16/apps/korganizer.pngUTgUAux PK t91t@711%gnuvola/16x16/apps/korganizer_todo.pngUTgUAux PKsL1g΀rgnuvola/16x16/apps/korn.pngUTlAux PK qL1GPFhnuvola/16x16/apps/kpackage.pngUTlAux PK L1H]uhnuvola/16x16/apps/kpager.pngUTlAux PK nL1Y>r큊 hnuvola/16x16/apps/kpaint.pngUTlAux PK BN1_ T hnuvola/16x16/apps/kpdf.pngUT\mAux PK t91eYSS!Khnuvola/16x16/apps/kpercentage.pngUTgUAux PK jL1%(y  hnuvola/16x16/apps/kpilot.pngUTxlAux PK gL1oq&!Zhnuvola/16x16/apps/kpovmodeler.pngUTrlAux PK YL1D㘼fhnuvola/16x16/apps/kppp.pngUTZlAux PK t914B} #hnuvola/16x16/apps/kpresenter.pngUTgUAux PK pH1xXxx큩'hnuvola/16x16/apps/krdc.pngUTfAux PK qH1r6)ddu+hnuvola/16x16/apps/krec.pngUT*fAux PK pH1#^XX-/hnuvola/16x16/apps/kreversi.pngUTfAux PK <^=1ܧ[2hnuvola/16x16/apps/krfb.pngUTDZAux PK qH1 G7hnuvola/16x16/apps/krita.pngUT0fAux PK qH1R,88Poinuvola/16x16/apps/reload.pngUTgUAux PK žL1٘@@Atinuvola/16x16/apps/remote.pngUT<lAux PK t91[mxinuvola/16x16/apps/samba.pngUTgUAux PK L1Uq=/--|inuvola/16x16/apps/sodipodi.pngUTvlAux PK t918   minuvola/16x16/apps/spellcheck.pngUTgUAux PK ̞L1ɡS#Єinuvola/16x16/apps/style.pngUTPlAux PK ўL1 $ inuvola/16x16/apps/stylesheet.pngUTZlAux PK ӞL15:==(inuvola/16x16/apps/terminal.pngUT^lAux PK ֞L1F큽inuvola/16x16/apps/usb.pngUTdlAux PK L1 G^! inuvola/16x16/apps/window_list.pngUT|lAux PK U^=1ginuvola/16x16/apps/winprops.pngUTrZAux PK L1f=inuvola/16x16/apps/x.pngUTlAux PK L1fainuvola/16x16/apps/xapp.pngUTlAux PK t912Т큈inuvola/16x16/apps/xcalc.pngUTgUAux PKL1 ̨֡inuvola/16x16/apps/xclock.pngUTlAux PK L1fíinuvola/16x16/apps/xconfig.pngUTlAux PK t91Minuvola/16x16/apps/xemacs.pngUTgUAux PK t91 صinuvola/16x16/apps/xfmail.pngUTgUAux PK 6sH1z, ڹinuvola/16x16/apps/xmag.pngUTHfAux PK VL>Ainuvola/16x16/devices/UTԤVMux PK |A1Fu&einuvola/16x16/devices/3floppy_mount.pngUT]]Aux PK /|A1#E}}(inuvola/16x16/devices/3floppy_unmount.pngUT\]Aux PK |A1i2&큢inuvola/16x16/devices/5floppy_mount.pngUT]]Aux PK |A1l2(inuvola/16x16/devices/5floppy_unmount.pngUT]]Aux PK t91iPP$.inuvola/16x16/devices/blockdevice.pngUTgUAux PK }A1)!einuvola/16x16/devices/camera.pngUT6^]Aux PK |A1E%큻inuvola/16x16/devices/camera_mount.pngUT]]Aux PK |A1)!e'inuvola/16x16/devices/camera_unmount.pngUT]]Aux PK N1 \;&inuvola/16x16/devices/cdaudio_mount.pngUTPnAux PK |A1*Q(inuvola/16x16/devices/cdaudio_unmount.pngUT]]Aux PK |A1 \;$inuvola/16x16/devices/cdrom_mount.pngUT]]Aux PK |A1U7:66&큩inuvola/16x16/devices/cdrom_unmount.pngUT]]Aux PK |A1ժ33'?inuvola/16x16/devices/cdwriter_mount.pngUT]]Aux PK |A14J)inuvola/16x16/devices/cdwriter_unmount.pngUT]]Aux PK |A1n"inuvola/16x16/devices/dvd_mount.pngUT|]]Aux PK |A1 ee$inuvola/16x16/devices/dvd_unmount.pngUTx]]Aux PK |A1"jnuvola/16x16/devices/hdd_mount.pngUTr]]Aux PK |A1)%[33$jnuvola/16x16/devices/hdd_unmount.pngUTn]]Aux PK |A1h XXz jnuvola/16x16/devices/ipod.pngUTf]]Aux PK |A1M ))!)jnuvola/16x16/devices/joystick.pngUT`]]Aux PK |A1t큭jnuvola/16x16/devices/memory.pngUTV]]Aux PK|A1LY!큗jnuvola/16x16/devices/mo_mount.pngUTP]]Aux PK|A1r#큌jnuvola/16x16/devices/mo_unmount.pngUTL]]Aux PK |A1v큄!jnuvola/16x16/devices/modem.pngUTD]]Aux PK |A1x?$jnuvola/16x16/devices/mouse.pngUT@]]Aux PK {|A1lJJ")jnuvola/16x16/devices/nfs_mount.pngUT:]]Aux PK x|A1+$큦-jnuvola/16x16/devices/nfs_unmount.pngUT4]]Aux PK v|A1RVPrr2jnuvola/16x16/devices/pda.pngUT0]]Aux PK s|A1?"5jnuvola/16x16/devices/pda_black.pngUT*]]Aux PK p|A1\!큹9jnuvola/16x16/devices/pda_blue.pngUT$]]Aux PK m|A1bmm$=jnuvola/16x16/devices/print_class.pngUT]]Aux PK j|A1# &큞Bjnuvola/16x16/devices/print_printer.pngUT]]Aux PK h|A1º4!! Fjnuvola/16x16/devices/printer.pngUT]]Aux PK t91;5S!hKjnuvola/16x16/devices/printer1.pngUTgUAux PK e|A1i[큕Ojnuvola/16x16/devices/raid.pngUT]]Aux PK t91>,,$uSjnuvola/16x16/devices/samba_mount.pngUTgUAux PK a|A1Wxx&Wjnuvola/16x16/devices/samba_unmount.pngUT]]Aux PK \|A1~>> \jnuvola/16x16/devices/scanner.pngUT]]Aux PK T|A1M--oajnuvola/16x16/devices/tablet.pngUT\]Aux PK |A1[8*ejnuvola/16x16/devices/tv.pngUT]]Aux PK sA1G*jjnuvola/16x16/devices/usbpendrive_mount.pngUTb]Aux PK oA1[  ,anjnuvola/16x16/devices/usbpendrive_unmount.pngUTb]Aux PK |A1ޛ>>"qjnuvola/16x16/devices/zip_mount.pngUT]]Aux PK |A1$jvjnuvola/16x16/devices/zip_unmount.pngUT]]Aux PK tQBAzjnuvola/16x16/filesystems/UT( Qux PK t91Xͮ++#zjnuvola/16x16/filesystems/camera.pngUTgUAux PK i=1;2Z'd~jnuvola/16x16/filesystems/chardevice.pngUT—ZAux PK i=1jh55$Âjnuvola/16x16/filesystems/desktop.pngUTZAux PK i=1E!Vjnuvola/16x16/filesystems/exec.pngUTZAux PK h=1@(큯jnuvola/16x16/filesystems/file_broken.pngUT|ZAux PK i=1m1oo+jnuvola/16x16/filesystems/file_important.pngUTZAux PK t91(큾jnuvola/16x16/filesystems/file_locked.pngUTgUAux PK i=1ob+0jnuvola/16x16/filesystems/file_temporary.pngUTZAux PK N1픏_..#|jnuvola/16x16/filesystems/folder.pngUT4nAux PK N12(jnuvola/16x16/filesystems/folder_blue.pngUT0nAux PK =@4.{jnuvola/16x16/filesystems/folder_blue_light.pngUT_%Oux PK -=@V]3큿jnuvola/16x16/filesystems/folder_blue_light_open.pngUTF_%Oux PK oN1!ZnWW-Djnuvola/16x16/filesystems/folder_blue_open.pngUTnAux PK N1s!!(jnuvola/16x16/filesystems/folder_cyan.pngUTnAux PK FN12G\kk-큅jnuvola/16x16/filesystems/folder_cyan_open.pngUTnAux PK /N1V{FF,Wjnuvola/16x16/filesystems/folder_download.pngUTnAux PK N1VF%  ,jnuvola/16x16/filesystems/folder_favorite.pngUTnAux PK ]N1DFJJ(tjnuvola/16x16/filesystems/folder_font.pngUT2nAux PK N1 {LL) jnuvola/16x16/filesystems/folder_games.pngUTxnAux PK ԣN1Ԩ(()ϻjnuvola/16x16/filesystems/folder_green.pngUTnAux PK NN1_oo.Zjnuvola/16x16/filesystems/folder_green_open.pngUTnAux PK t91(1jnuvola/16x16/filesystems/folder_grey.pngUTgUAux PK t91,w`..-rjnuvola/16x16/filesystems/folder_grey_open.pngUTgUAux PK e=1e"o''(jnuvola/16x16/filesystems/folder_home.pngUTZAux PK t91=`''(큐jnuvola/16x16/filesystems/folder_html.pngUTgUAux PK N1fqq(jnuvola/16x16/filesystems/folder_http.pngUTnAux PK N1m//)jnuvola/16x16/filesystems/folder_image.pngUT4nAux PK N1d{NN-~jnuvola/16x16/filesystems/folder_important.pngUTZnAux PK t91A )3jnuvola/16x16/filesystems/folder_inbox.pngUTgUAux PK N1*큊jnuvola/16x16/filesystems/folder_locked.pngUTnAux PK TN1WKK( jnuvola/16x16/filesystems/folder_mail.pngUTnAux PK rN1G7`e(큹jnuvola/16x16/filesystems/folder_midi.pngUT8nAux PK 7N1!ZnWW(jnuvola/16x16/filesystems/folder_open.pngUTnAux PK ۣN1`̝*jnuvola/16x16/filesystems/folder_orange.pngUTnAux PK TN1@@/%jnuvola/16x16/filesystems/folder_orange_open.pngUTnAux PK t91뚟*jnuvola/16x16/filesystems/folder_outbox.pngUTgUAux PK N1")jnuvola/16x16/filesystems/folder_photo.pngUTnAux PK N1BSii)rjnuvola/16x16/filesystems/folder_print.pngUTnAux PK N1Ɨ/'>jnuvola/16x16/filesystems/folder_red.pngUTnAux PK ZN1Tnn,큺jnuvola/16x16/filesystems/folder_red_open.pngUTnAux PK t91@$-큎jnuvola/16x16/filesystems/folder_sent_mail.pngUTgUAux PK ɢN1[[)큢jnuvola/16x16/filesystems/folder_sound.pngUTnAux PK N1Aiaa'`knuvola/16x16/filesystems/folder_tar.pngUTnAux PK N1_~BB'"knuvola/16x16/filesystems/folder_txt.pngUTHnAux PK "N14L;;) knuvola/16x16/filesystems/folder_video.pngUTnAux PK N1-++*cknuvola/16x16/filesystems/folder_violet.pngUTnAux PK cN1ll/knuvola/16x16/filesystems/folder_violet_open.pngUTnAux PK N1g6*knuvola/16x16/filesystems/folder_yellow.pngUTnAux PK iN1*ii/@knuvola/16x16/filesystems/folder_yellow_open.pngUTnAux PK e=1 knuvola/16x16/filesystems/ftp.pngUT2ZAux PKg=1+8!knuvola/16x16/filesystems/link.pngUTZAux PKg=1(knuvola/16x16/filesystems/lockoverlay.pngUTZAux PK ؕ=1f#$"knuvola/16x16/filesystems/network.pngUTZAux PK g=1ك*&knuvola/16x16/filesystems/network_local.pngUTޔZAux PK g=1oQ!++knuvola/16x16/filesystems/pipe.pngUTؔZAux PK g=1Ŭ#큊.knuvola/16x16/filesystems/server.pngUTҔZAux PK g=1h{%y2knuvola/16x16/filesystems/services.pngUTʔZAux PKge=1/p#6knuvola/16x16/filesystems/socket.pngUT‘ZAux PK =1yQ~+큫;knuvola/16x16/filesystems/trashcan_empty.pngUTZAux PK=1S+T[*@knuvola/16x16/filesystems/trashcan_full.pngUT ZAux PK We=1Smʂ Dknuvola/16x16/filesystems/www.pngUTZAux PK y.$99 큲Iknuvola/16x16/filesystems/zip.pngUT>ux PK XL>AEKknuvola/16x16/mimetypes/UTؤVMux PK čC1WW&큖Kknuvola/16x16/mimetypes/abiword_abi.pngUT`Aux PK C1Fh0F!MOknuvola/16x16/mimetypes/applix.pngUT`Aux PK C100 큇Rknuvola/16x16/mimetypes/ascii.pngUT`Aux PK t91Uknuvola/16x16/mimetypes/bc.pngUTgUAux PK C13dGG!nXknuvola/16x16/mimetypes/binary.pngUT`Aux PK C1!($\knuvola/16x16/mimetypes/cdbo_list.pngUT`Aux PK C1o"P`knuvola/16x16/mimetypes/cdimage.pngUT`Aux PK C1Fndknuvola/16x16/mimetypes/cdr.pngUT`Aux PK C1U6"큻hknuvola/16x16/mimetypes/cdtrack.pngUT`Aux PK C1#5mknuvola/16x16/mimetypes/colorscm.pngUTx`Aux PK C1#"qknuvola/16x16/mimetypes/colorset.pngUT`Aux PK C1~N11uknuvola/16x16/mimetypes/core.pngUT`Aux PK C141QQ큙xknuvola/16x16/mimetypes/deb.pngUT`Aux PK C1*Ӵ#B}knuvola/16x16/mimetypes/document.pngUT~`Aux PK C1&ՃSknuvola/16x16/mimetypes/dvi.pngUTd`Aux PK C15B!.knuvola/16x16/mimetypes/ebuild.pngUTX`Aux PK C1$ knuvola/16x16/mimetypes/empty.pngUT^`Aux PK C1>Q~~$@knuvola/16x16/mimetypes/encrypted.pngUTP`Aux PK C1nor[$knuvola/16x16/mimetypes/exec_wine.pngUTJ`Aux PK C1y2knuvola/16x16/mimetypes/file_locked-[Converted].pngUTl`Aux PK t91gg&Tknuvola/16x16/mimetypes/file_locked.pngUTgUAux PK C1::)knuvola/16x16/mimetypes/file_temporary.pngUTr`Aux PK C1!Ρ큸knuvola/16x16/mimetypes/font.pngUTB`Aux PK |C1ys3KLL&knuvola/16x16/mimetypes/font_bitmap.pngUT<`Aux PK xC1{aa(큝knuvola/16x16/mimetypes/font_truetype.pngUT4`Aux PK qC1\%`knuvola/16x16/mimetypes/font_type1.pngUT&`Aux PK uC1DNtt"ͬknuvola/16x16/mimetypes/gettext.pngUT.`Aux PK nC1Ÿ3큝knuvola/16x16/mimetypes/gf.pngUT `Aux PK jC1ue)큀knuvola/16x16/mimetypes/gnome_app_info.pngUT`Aux PK gC1'd큲knuvola/16x16/mimetypes/html.pngUT`Aux PK dC188 ¼knuvola/16x16/mimetypes/image.pngUT `Aux PK `C1:iLX%Tknuvola/16x16/mimetypes/image_gimp.pngUT`Aux PK WC1%4knuvola/16x16/mimetypes/info.pngUT`Aux PK ZC1z  "Iknuvola/16x16/mimetypes/install.pngUT`Aux PKSC1"d#큲knuvola/16x16/mimetypes/java_jar.pngUT`Aux PK NC1~ZZ(큗knuvola/16x16/mimetypes/karbon_karbon.pngUT`Aux PK KC1{ c>>&Sknuvola/16x16/mimetypes/kchart_chrt.pngUT`Aux PK GC1]'knuvola/16x16/mimetypes/kformula_kfo.pngUT`Aux PK CC1}$knuvola/16x16/mimetypes/kget_list.pngUT`Aux PK 9C1&D"knuvola/16x16/mimetypes/kig_doc.pngUT`Aux PK @C1YF3}  $3knuvola/16x16/mimetypes/kivio_flw.pngUT`Aux PK C1o$큜knuvola/16x16/mimetypes/kmultiple.pngUT`Aux PK C1H"큠knuvola/16x16/mimetypes/koffice.pngUT|`Aux PK C1`޾*knuvola/16x16/mimetypes/kpovmodeler_doc.pngUTt`Aux PK C1) knuvola/16x16/mimetypes/kpresenter_kpr.pngUTn`Aux PK C1$)sknuvola/16x16/mimetypes/krec_fileempty.pngUTh`Aux PK C1%(큠knuvola/16x16/mimetypes/krec_fileplay.pngUTT`Aux PK C1 2I,,'큺lnuvola/16x16/mimetypes/krec_filerec.pngUT^`Aux PK C1W9p$Glnuvola/16x16/mimetypes/krita_kra.pngUTL`Aux PK C16iq&큸lnuvola/16x16/mimetypes/kspread_ksp.pngUTF`Aux PK C1Y$ lnuvola/16x16/mimetypes/kugar_kud.pngUT,`Aux PK C1>yy$?lnuvola/16x16/mimetypes/kugardata.pngUT`Aux PK C1|Z Z$lnuvola/16x16/mimetypes/kword_kwd.pngUT`Aux PK ܌C1+!44lnuvola/16x16/mimetypes/log.pngUT`Aux PK ،C1wO5큦lnuvola/16x16/mimetypes/make.pngUT`Aux PK ՌC1|û큖 lnuvola/16x16/mimetypes/man.pngUT`Aux PK ΌC17ѹ"큩$lnuvola/16x16/mimetypes/message.pngUT`Aux PK ҌC1hCC#큾(lnuvola/16x16/mimetypes/metafont.pngUT`Aux PK ʌC1  ^-lnuvola/16x16/mimetypes/midi.pngUT`Aux PK C1$0lnuvola/16x16/mimetypes/mime.pngUT>`Aux PK C15B&2lnuvola/16x16/mimetypes/mime_ebuild.pngUT$`Aux PKt91=䯔%6lnuvola/16x16/mimetypes/mime_empty.pngUTgUAux PK njC1/tdww'8lnuvola/16x16/mimetypes/mime_koffice.pngUT`Aux PK ÌC1#큣rr#gmnuvola/22x22/actions/color_line.pngUTbnAux PK okN1m!6mnuvola/22x22/actions/colorize.pngUTbnAux PK t91""$Kmnuvola/22x22/actions/colorpicker.pngUTgUAux PK t916!mnuvola/22x22/actions/compfile.pngUTgUAux PK mkN1#"mnuvola/22x22/actions/configure.pngUTbnAux PK XkN1焒)-mnuvola/22x22/actions/connect_creating.pngUTxbnAux PK VkN1M,]mnuvola/22x22/actions/connect_established.pngUTtbnAux PK TkN1 \kk#Kmnuvola/22x22/actions/connect_no.pngUTpbnAux PK kkN1Mnnuvola/22x22/actions/cut.pngUTbnAux PK jkN1Pܝ") nnuvola/22x22/actions/decrypted.pngUTbnAux PK t91ү nnuvola/22x22/actions/dock.pngUTgUAux PK kN1?YOfnnuvola/22x22/actions/down.pngUTdcnAux PK hkN1#>큏nnuvola/22x22/actions/edit.pngUTbnAux PK kN1in!nnuvola/22x22/actions/edit_add.pngUT`cnAux PK kN1;$큣$nnuvola/22x22/actions/edit_remove.pngUT\cnAux PK ]N1k4!'nnuvola/22x22/actions/editcopy.pngUTbnAux PK t91^,  +nnuvola/22x22/actions/editcut.pngUTgUAux PK ekN1@U#1nnuvola/22x22/actions/editdelete.pngUTbnAux PK SkN1"6nnuvola/22x22/actions/editpaste.pngUTnbnAux PK [N1l%"E[nnuvola/22x22/actions/help.pngUTTUAux PK FkN1GG tnnuvola/22x22/actions/history.pngUTTbnAux PKDkN1#&nnuvola/22x22/actions/history_clear.pngUTPbnAux PK aL>{+u!!''nnuvola/22x22/actions/history_resume.pngUT6VMux PK L>%큩nnuvola/22x22/actions/history_stop.pngUT\VMux PK h8 $큝nnuvola/22x22/actions/historymenu.pngUTCHux PK CkN1F!nnuvola/22x22/actions/identity.pngUTNbnAux PK SlN1Dnnuvola/22x22/actions/irkick.pngUTNdnAux PK kN1 z$nnuvola/22x22/actions/irkickflash.pngUT|cnAux PKWlN1$'"nnuvola/22x22/actions/irkickoff.pngUTVdnAux PK t91-!큎nnuvola/22x22/actions/juk_dock.pngUTgUAux PK )kN1lإ%큑nnuvola/22x22/actions/kaboodleloop.pngUTbnAux PK'kN1ɨ?nnuvola/22x22/actions/kalarm.pngUTbnAux PK %kN1<&(Innuvola/22x22/actions/kalarm_disabled.pngUTbnAux PK 2kN1Xҧ,&:onuvola/22x22/actions/kdevelop_down.pngUT0bnAux PK t91ۨ큟 onuvola/22x22/actions/kgpg.pngUTgUAux PK t91ۨ$큟onuvola/22x22/actions/kgpg_docked.pngUTgUAux PK t91Wx"큦onuvola/22x22/actions/kgpg_edit.pngUTgUAux PK t91e$onuvola/22x22/actions/kgpg_export.pngUTgUAux PK t91G[00!)$onuvola/22x22/actions/kgpg_gen.pngUTgUAux PK t91ۨ&클*onuvola/22x22/actions/kgpg_identity.pngUTgUAux PK t910bKK$큽1onuvola/22x22/actions/kgpg_import.pngUTgUAux PK t91Gqx"f8onuvola/22x22/actions/kgpg_info.pngUTgUAux PK t91{mTT"`=onuvola/22x22/actions/kgpg_key1.pngUTgUAux PK t91fKXX"Aonuvola/22x22/actions/kgpg_key2.pngUTgUAux PK t91`PP"Fonuvola/22x22/actions/kgpg_key3.pngUTgUAux PK t91Xq#pMonuvola/22x22/actions/kgpg_photo.pngUTgUAux PK t91{O,,"Qonuvola/22x22/actions/kgpg_show.pngUTgUAux PK t91l"YVonuvola/22x22/actions/kgpg_sign.pngUTgUAux PK t91'R=aa"f\onuvola/22x22/actions/kgpg_term.pngUTgUAux PK t91 ##bonuvola/22x22/actions/kjobviewer.pngUTgUAux PK t91F1 Jgonuvola/22x22/actions/klipper.pngUTgUAux PK t91 Ulonuvola/22x22/actions/klpq.pngUTgUAux PK t91CfYvqonuvola/22x22/actions/kmail.pngUTgUAux PK t91]::#Zwonuvola/22x22/actions/kmaillight.pngUTgUAux PK pN1Jc#{onuvola/22x22/actions/kmixdocked.pngUTbjnAux PK pN1-Ʉii) onuvola/22x22/actions/kmixdocked_error.pngUT^jnAux PK pN1?(ىonuvola/22x22/actions/kmixdocked_mute.pngUTJjnAux PK t91\x99Conuvola/22x22/actions/kopete.pngUTgUAux PK t919&Քonuvola/22x22/actions/korgac.pngUTgUAux PK t91ٽH**$onuvola/22x22/actions/krec_record.pngUTgUAux PK pN1$&큝onuvola/22x22/actions/laptop_charge.pngUTHjnAux PK pN1.Z)onuvola/22x22/actions/laptop_nobattery.pngUTDjnAux PK pN1[ٔ(onuvola/22x22/actions/laptop_nocharge.pngUTBjnAux PK }oN1 ww%sonuvola/22x22/actions/laptop_power.pngUT>jnAux PK t91U\\ Ionuvola/22x22/actions/ledblue.pngUTgUAux PK |oN1Of55!onuvola/22x22/actions/ledgreen.pngUT"큧onuvola/22x22/actions/mail_find.pngUTcnAux PK BlN1^[xx%큤onuvola/22x22/actions/mail_forward.pngUT,dnAux PK ÍN1܇%{pnuvola/22x22/actions/mail_generic.pngUT>nAux PK 5lN1:!apnuvola/22x22/actions/mail_get.pngUTdnAux PK t91[[!pnuvola/22x22/actions/mail_new.pngUTgUAux PK t91[[%큋pnuvola/22x22/actions/mail_post_to.pngUTgUAux PK 7lN1JqWW#Epnuvola/22x22/actions/mail_reply.pngUTdnAux PK @lN1C&pnuvola/22x22/actions/mail_replyall.pngUT(dnAux PK QlN1[\\"'pnuvola/22x22/actions/mail_send.pngUTJdnAux PK HlN1"[[&-pnuvola/22x22/actions/make_kdevelop.pngUT8dnAux PK$lN1s,큁3pnuvola/22x22/actions/messagebox_critical.pngUTcnAux PK eoN1nJuu(큤9pnuvola/22x22/actions/messagebox_info.pngUTjnAux PK FlN1NLL+{?pnuvola/22x22/actions/messagebox_warning.pngUT4dnAux PK t91rTGG,Epnuvola/22x22/actions/misc.pngUTgUAux PK t91=)??"Kpnuvola/22x22/actions/mix_audio.pngUTgUAux PK t91E_eRpnuvola/22x22/actions/mix_cd.pngUTgUAux PK pN13b!XXpnuvola/22x22/actions/mix_midi.pngUTjknAux PK #kN13L#O\pnuvola/22x22/actions/mix_recmon.pngUTbnAux PK t91BQ8#o_pnuvola/22x22/actions/mix_record.pngUTgUAux PK !kN1`##$kepnuvola/22x22/actions/mix_unknown.pngUTbnAux PK N1 "ipnuvola/22x22/actions/mix_video.pngUTnAux PK kN1?2|#opnuvola/22x22/actions/mix_volume.pngUT bnAux PK i:15Mrpnuvola/22x22/actions/mouse.pngUT@VAux PK پ4/ii 큲wpnuvola/22x22/actions/new_sub.pngUT*eDux PK kN1x u|pnuvola/22x22/actions/newfont.pngUTanAux PK kN196'߁pnuvola/22x22/actions/news_subscribe.pngUTbnAux PK kN1ٸ.)큿pnuvola/22x22/actions/news_unsubscribe.pngUTbnAux PK 5N1M3 "큤pnuvola/22x22/actions/next.pngUTvnAux PK t91PPpnuvola/22x22/actions/no.pngUTgUAux PK یN16#큋pnuvola/22x22/actions/noatunback.pngUTnAux PK ՌN1 BߺJJ&큦pnuvola/22x22/actions/noatunforward.pngUTnAux PK t91*`'Ppnuvola/22x22/actions/noatunloopsong.pngUTgUAux PK N11$Rpnuvola/22x22/actions/noatunpause.pngUTnAux PK ŒN1f##큜pnuvola/22x22/actions/noatunplay.pngUT\nAux PK N1Ļ))'큀pnuvola/22x22/actions/noatunplaylist.pngUTnAux PK N1FdT# pnuvola/22x22/actions/noatunstop.pngUTLnAux PK mN1\ Scpnuvola/22x22/actions/ok.pngUTfnAux PK kN1 7!`pnuvola/22x22/actions/openterm.pngUTanAux PK t91%kWW큧pnuvola/22x22/actions/pencil.pngUTgUAux PK pN1Wpnuvola/22x22/actions/piano.pngUTdknAux PK kN1Ļ))%Opnuvola/22x22/actions/player_eject.pngUTanAux PK kN1 BߺJJ#pnuvola/22x22/actions/player_end.pngUTanAux PK kN1,Ot#~pnuvola/22x22/actions/player_fwd.pngUTbnAux PK kN11%Zpnuvola/22x22/actions/player_pause.pngUTanAux PK 0kN1f#$큥pnuvola/22x22/actions/player_play.pngUT,bnAux PK .kN1k3UU#큊pnuvola/22x22/actions/player_rev.pngUT(bnAux PK t91UU#cnAux PK kN1DӒll"큥Oqnuvola/22x22/actions/rotate_cw.pngUT0cnAux PK kN1lhmIImTqnuvola/22x22/actions/run.pngUTanAux PK kN1:**! Zqnuvola/22x22/actions/save_all.pngUTanAux PK jN1"큑`qnuvola/22x22/actions/signature.pngUTanAux PK wN1k#dqnuvola/22x22/actions/spellcheck.pngUTbnAux PK kN17(!큹hqnuvola/22x22/actions/start.pngUT.cnAux PKkN1smqnuvola/22x22/actions/stop.pngUT*cnAux PK jN1ngg&sqnuvola/22x22/actions/tab_duplicate.pngUTanAux PK jN1.W 큰yqnuvola/22x22/actions/tab_new.pngUTanAux PK jN1C'qnuvola/22x22/actions/tab_new_raised.pngUTanAux PK jN1LS#qnuvola/22x22/actions/tab_remove.pngUTanAux PK jN1s w"[qnuvola/22x22/actions/thumbnail.pngUTanAux PK9L>htCG*큥qnuvola/22x22/actions/Thumbs.dbUTVMux PK kO1۝SS#DOsnuvola/22x22/actions/toggle_log.pngUT@oAux PK t91G'Tsnuvola/22x22/actions/tool_clipboard.pngUTgUAux PK N1FdT#nuvola/22x22/actions/tool_delay.pngUTԝnAux PK t91B$"$t]snuvola/22x22/actions/tool_delete.pngUTgUAux PK t91f7"큉bsnuvola/22x22/actions/tool_dock.pngUTgUAux PK t91ү )큭fsnuvola/22x22/actions/tool_drop_target.pngUTgUAux PKt91t#lsnuvola/22x22/actions/tool_pause.pngUTgUAux PK t912K>>%4nsnuvola/22x22/actions/tool_restart.pngUTgUAux PK t91 |$tsnuvola/22x22/actions/tool_resume.pngUTgUAux PK t91KK#xsnuvola/22x22/actions/tool_timer.pngUTgUAux PK t91Dqq(}snuvola/22x22/actions/tool_uselastdir.pngUTgUAux PK kN1IPsnuvola/22x22/actions/top.pngUT&cnAux PK t91ȏ%%큍snuvola/22x22/actions/undo.pngUTgUAux PK kN1-f7 snuvola/22x22/actions/up.pngUT cnAux PK kN1̗xx$$snuvola/22x22/actions/view_bottom.pngUTcnAux PK N1T~..$snuvola/22x22/actions/view_choose.pngUTnAux PK kN1S$$&큆snuvola/22x22/actions/view_detailed.pngUTcnAux PK kN19h( snuvola/22x22/actions/view_fullscreen.pngUTcnAux PK N1]"zsnuvola/22x22/actions/view_icon.pngUTnAux PK kN1Óp@@(xsnuvola/22x22/actions/view_left_right.pngUT cnAux PK dN1){99)snuvola/22x22/actions/view_multicolumn.pngUTLnAux PK kN1lEE*큶snuvola/22x22/actions/view_nofullscreen.pngUTcnAux PK kN1E$_snuvola/22x22/actions/view_remove.pngUTcnAux PK kN1MՔ||#큃snuvola/22x22/actions/view_right.pngUTbnAux PK N1 $ll&\snuvola/22x22/actions/view_sidetree.pngUTnAux PK kN11"(snuvola/22x22/actions/view_text.pngUTbnAux PK kN1Be//(!snuvola/22x22/actions/view_top_bottom.pngUTbnAux PK 2N1"""큲snuvola/22x22/actions/view_tree.pngUTnAux PK kN1ΣBHH!0snuvola/22x22/actions/viewmag+.pngUTcnAux PK lN1 g!snuvola/22x22/actions/viewmag-.pngUTcnAux PK t91Jo11 Hsnuvola/22x22/actions/viewmag.pngUTgUAux PK lN1]((!snuvola/22x22/actions/viewmag1.pngUTcnAux PK N1l:#Vsnuvola/22x22/actions/viewmagfit.pngUTnAux PK t9198snuvola/22x22/actions/volume.pngUTgUAux PK kN1<E22#osnuvola/22x22/actions/window_new.pngUTbnAux PK jN1ysnuvola/22x22/actions/wizard.pngUTzanAux PK \L>A$snuvola/22x22/apps/UTVMux PK F1^#psnuvola/22x22/apps/access.pngUT$MdAux PKD16"큚snuvola/22x22/apps/acroread.pngUTZ^aAux PK F1?55tnuvola/22x22/apps/agent.pngUTMdAux PK F1wh }}큃 tnuvola/22x22/apps/amarok.pngUTMdAux PK /N1T Vtnuvola/22x22/apps/amor.pngUT:mAux PK F1`vv Htnuvola/22x22/apps/applixware.pngUTMdAux PK 6WG1<c22tnuvola/22x22/apps/ark.pngUTeAux PK 3WG1큝$tnuvola/22x22/apps/arts.pngUTeAux PK /WG1Q!큭*tnuvola/22x22/apps/artsbuilder.pngUTeAux PK ,WG1u!큪1tnuvola/22x22/apps/artscontrol.pngUTeAux PK e:1jϙ%큐8tnuvola/22x22/apps/artsmidimanager.pngUTНVAux PK (WG1&&??큈>tnuvola/22x22/apps/atlantik.pngUTeAux PK WG1 IS Etnuvola/22x22/apps/background.pngUTeAux PK WG1TDE_Ktnuvola/22x22/apps/bell.pngUTeAux PK t91@>>큂Qtnuvola/22x22/apps/bookcase.pngUTgUAux PKfE1q\KUZWtnuvola/22x22/apps/browser.pngUT}bAux PK WG1ȹw^tnuvola/22x22/apps/bug.pngUTeAux PK $WG1oނdtnuvola/22x22/apps/cache.pngUTeAux PK WG1hǠoo큘itnuvola/22x22/apps/chat.pngUTeAux PK WG1nW [ptnuvola/22x22/apps/clanbomber.pngUTeAux PK WG1큄utnuvola/22x22/apps/clock.pngUTeAux PK kG1Bs큗|tnuvola/22x22/apps/colors.pngUT(eAux PK kG1lF큑tnuvola/22x22/apps/cookie.pngUT(eAux PK VG1otnuvola/22x22/apps/core.pngUTeAux PK kG1?ϫ큕tnuvola/22x22/apps/date.pngUT(eAux PK kG1U==큔tnuvola/22x22/apps/designer.pngUT(eAux PK [oG166)tnuvola/22x22/apps/digikam.pngUT~/eAux PK kG1큶tnuvola/22x22/apps/display.pngUTx(eAux PK kG1:F*tt&&tnuvola/22x22/apps/download_manager.pngUT(eAux PK UoG1 NN#tnuvola/22x22/apps/edu_languages.pngUTr/eAux PK OoG1Tw%큥tnuvola/22x22/apps/edu_mathematics.pngUTf/eAux PK t91j]!q  '큺tnuvola/22x22/apps/edu_miscellaneous.pngUTgUAux PK RoG1 S!$tnuvola/22x22/apps/edu_science.pngUTl/eAux PK .G1cZKtnuvola/22x22/apps/emacs.pngUT|eAux PK *G1 155etnuvola/22x22/apps/email.pngUT|eAux PK LoG1atnuvola/22x22/apps/energy.pngUT`/eAux PK goG1Ȃ//'tnuvola/22x22/apps/enhanced_browsing.pngUT/eAux PK doG1ϏrTtnuvola/22x22/apps/error.pngUT/eAux PK RG11tnuvola/22x22/apps/evolution.pngUT,~eAux PK ۛG1+}}"tnuvola/22x22/apps/file-manager.pngUTN}eAux PK wG1=^^tnuvola/22x22/apps/filetypes.pngUT|eAux PK |G1F큮tnuvola/22x22/apps/flashkard.pngUT|eAux PK G1|tnuvola/22x22/apps/fonts.pngUT|eAux PK ,N1ounuvola/22x22/apps/fsview.pngUT4mAux PK G1b0~YYm unuvola/22x22/apps/gaim.pngUT|eAux PK G1Q;vvunuvola/22x22/apps/galeon.pngUT{eAux PK G16unuvola/22x22/apps/gimp.pngUT{eAux PK kG1$/XX unuvola/22x22/apps/gnome_apps.pngUTz|eAux PK t914h]PP!큧&unuvola/22x22/apps/gnome_apps2.pngUTgUAux PK ZG1-)UllR,unuvola/22x22/apps/go.pngUT\|eAux PK G1_ 4unuvola/22x22/apps/help_index.pngUTFeAux PK G1h{{;unuvola/22x22/apps/hwinfo.pngUT@eAux PK ؛G1h=AAAunuvola/22x22/apps/icons.pngUTH}eAux PK QG1<g 큁Funuvola/22x22/apps/iconthemes.pngUTJ|eAux PK UG1 C2큐Lunuvola/22x22/apps/important.pngUTR|eAux PK G1phRunuvola/22x22/apps/indeximg.pngUT:eAux PK G1 g,FWunuvola/22x22/apps/input_devices_settings.pngUT2eAux PK dN1삲/]unuvola/22x22/apps/irkick.pngUTmAux PK G1O<<7dunuvola/22x22/apps/juk.pngUT(eAux PK G1u$$kunuvola/22x22/apps/kaboodle.pngUT eAux PK G1۝SS"Brunuvola/22x22/apps/kaddressbook.pngUTeAux PKG1t)wunuvola/22x22/apps/kalarm.pngUTeAux PK G1_^Zunuvola/22x22/apps/kalzium.pngUT eAux PK G1"MH qunuvola/22x22/apps/kappfinder.pngUTeAux PK bN1}}unuvola/22x22/apps/karm.pngUTmAux PK G1I9n; 큈unuvola/22x22/apps/kasteroids.pngUTheAux PK K^=1unuvola/22x22/apps/kate.pngUT^ZAux PK ]N1 (``۞unuvola/22x22/apps/katomic.pngUTmAux PK G1j)LL#큒unuvola/22x22/apps/kaudiocreator.pngUTbeAux PKpH1}k!;unuvola/22x22/apps/kbackgammon.pngUTfAux PK pH1Ӏ(Punuvola/22x22/apps/kbackgammon_engine.pngUTfAux PK G1B/nN2unuvola/22x22/apps/kblackbox.pngUT\eAux PK ZN1䎌Gunuvola/22x22/apps/kbounce.pngUTmAux PK WN1o A  *unuvola/22x22/apps/kbrunch.pngUTmAux PK G1꽋큋unuvola/22x22/apps/kcalc.pngUTNeAux PK H1aЯ!unuvola/22x22/apps/kcharselect.pngUTeAux PK H1&6gaa!vnuvola/22x22/apps/khelpcenter.pngUTeAux PK RN1l  ̡vnuvola/22x22/apps/khexedit.pngUT|mAux PK ON1U/vnuvola/22x22/apps/khotkeys.pngUTvmAux PK pH1Dvnuvola/22x22/apps/kiten.pngUTfAux PK fE1% cvnuvola/22x22/apps/kjobviewer.pngUT}bAux PK LN1: Ivnuvola/22x22/apps/kjots.pngUTpmAux PK pH1Uj!vnuvola/22x22/apps/klettres.pngUTfAux PK fE1%Lvnuvola/22x22/apps/klpq.pngUT}bAux PK IN1={,vnuvola/22x22/apps/kmag.pngUTjmAux PK pH1<_vnuvola/22x22/apps/kmahjong.pngUTfAux PK pH1܇vnuvola/22x22/apps/kmail.pngUTނfAux PK t91]:: vnuvola/22x22/apps/kmaillight.pngUTgUAux PK dG1-)Ulltvnuvola/22x22/apps/kmenu.pngUTl|eAux PK pH19RWW5vnuvola/22x22/apps/kmenuedit.pngUT̂fAux PK 9sH1O+vnuvola/22x22/apps/kmid.pngUTNfAux PK pH1ݜk88vnuvola/22x22/apps/kmines.pngUT҂fAux PK QsH13_큊vnuvola/22x22/apps/kmix.pngUTzfAux PK TsH10ymvnuvola/22x22/apps/kmoon.pngUTfAux PK DN16ss |wnuvola/22x22/apps/kmousetool.pngUT`mAux PK XsH1$]F55I wnuvola/22x22/apps/kmplot.pngUTfAux PK t911) !wnuvola/22x22/apps/knewsticker.pngUTgUAux PK [sH1ԲCCwnuvola/22x22/apps/knode.pngUTfAux PK pH1N 큷wnuvola/22x22/apps/knotes.pngUTrfAux PK F1է,!wnuvola/22x22/apps/knotify.pngUT*MdAux PK = N1!,&wnuvola/22x22/apps/kolourpaint.pngUTmAux PK t91 -C,wnuvola/22x22/apps/konqsidebar_mediaplayer.pngUTgUAux PK HL1dJg큔0wnuvola/22x22/apps/konqueror.pngUT8lAux PK L1Eoo8wnuvola/22x22/apps/konquest.pngUTlAux PK }L1F?wnuvola/22x22/apps/konsole.pngUTlAux PK xL1[**Ewnuvola/22x22/apps/kontact.pngUTlAux PK vL1w)큞Kwnuvola/22x22/apps/kooka.pngUTlAux PK4tH1Ad49큌Rwnuvola/22x22/apps/kopete.pngUT$fAux PK .tH1.%Ywnuvola/22x22/apps/kopete_all_away.pngUTfAux PK *tH1CC$큋^wnuvola/22x22/apps/kopete_offline.pngUTfAux PK %tH1&,dwnuvola/22x22/apps/kopete_some_away.pngUTfAux PK !tH19iY(/jwnuvola/22x22/apps/kopete_some_online.pngUTfAux PK t919& 큭pwnuvola/22x22/apps/korganizer.pngUTgUAux PK t919&%wwnuvola/22x22/apps/korganizer_todo.pngUTgUAux PK sL1w4wnuvola/22x22/apps/korn.pngUTlAux PK pL1q[iiJwnuvola/22x22/apps/kpackage.pngUTlAux PK L1{jS++ wnuvola/22x22/apps/kpager.pngUTlAux PK mL1큌wnuvola/22x22/apps/kpaint.pngUT~lAux PK BN1yֈ큞wnuvola/22x22/apps/kpdf.pngUT\mAux PK jL1V wnuvola/22x22/apps/kpilot.pngUTxlAux PK gL1<<!wnuvola/22x22/apps/kpovmodeler.pngUTrlAux PK YL1L.  큏wnuvola/22x22/apps/kppp.pngUTZlAux PK pH1 =wnuvola/22x22/apps/krdc.pngUTfAux PK qH15{Twnuvola/22x22/apps/krec.pngUT(fAux PK pH1gKwnuvola/22x22/apps/kreversi.pngUTfAux PK <^=1'Twnuvola/22x22/apps/krfb.pngUTDZAux PK qH1AGPwnuvola/22x22/apps/krita.pngUT0fAux PK qH1}?Fwnuvola/22x22/apps/kruler.pngUT6fAux PK qH1z4!wnuvola/22x22/apps/kscd.pngUTHfAux PK qH1•"(wnuvola/22x22/apps/kscreensaver.pngUTPfAux PK #qH1<_]wnuvola/22x22/apps/kshisen.pngUTbfAux PK 9N1?~lGwnuvola/22x22/apps/ksig.pngUTNmAux PKqH1o!Hwnuvola/22x22/apps/ksim.pngUTZfAux PKWG1v9wnuvola/22x22/apps/ksirc.pngUTeAux PK SL1'wnuvola/22x22/apps/ksnapshot.pngUTNlAux PK L1ouG큁wnuvola/22x22/apps/ksplash.pngUTlAux PK L1yVX??큼xnuvola/22x22/apps/ksysv.pngUTlAux PK L1 Pxnuvola/22x22/apps/kteatime.pngUTlAux PK L1J}**큐 xnuvola/22x22/apps/kthememgr.pngUTlAux PK L1s3suuxnuvola/22x22/apps/ktimer.pngUTlAux PK L1@=xnuvola/22x22/apps/ktip.pngUTlAux PK L1=.!xnuvola/22x22/apps/ktouch.pngUTlAux PK PL1ABB@(xnuvola/22x22/apps/kugar.pngUTHlAux PK ML1*++/xnuvola/22x22/apps/kuickshow.pngUTBlAux PK L1k::[6xnuvola/22x22/apps/kuser.pngUTlAux PK L1M=xnuvola/22x22/apps/kverbos.pngUTlAux PK aoG14355Cxnuvola/22x22/apps/kview.pngUT/eAux PK t91&II`Jxnuvola/22x22/apps/kweather.pngUTgUAux PK t91^TTQxnuvola/22x22/apps/kwin4.pngUTgUAux PK yL1wXk!큪Uxnuvola/22x22/apps/kworldclock.pngUTlAux PK^=1›h큰\xnuvola/22x22/apps/kwrite.pngUTބZAux PK L1aЯncxnuvola/22x22/apps/kxkb.pngUTlAux PK L1]{$큲gxnuvola/22x22/apps/laptop_battery.pngUTlAux PK L1  #nxnuvola/22x22/apps/laptop_pcmcia.pngUTlAux PK L1shuxnuvola/22x22/apps/licq.pngUTlAux PK L1r|xnuvola/22x22/apps/locale.pngUTlAux PK L1 큚xnuvola/22x22/apps/mplayer.pngUTlAux PK L13Z 큰xnuvola/22x22/apps/multimedia.pngUTlAux PK t91O xnuvola/22x22/apps/mycomputer.pngUTgUAux PK t91_{""+xnuvola/22x22/apps/netscape.pngUTgUAux PK N1wu9`큥xnuvola/22x22/apps/network.pngUTʟnAux PK 7N1:Sggxnuvola/22x22/apps/ooo_gulls.pngUTJmAux PK 4N1;D큯xnuvola/22x22/apps/ooo_setup.pngUTDmAux PK ;L1Ah큨xnuvola/22x22/apps/opera.pngUT"lAux PK oD1T=``*큥xnuvola/22x22/apps/package_applications.pngUT]aAux PK wD18{jj)ixnuvola/22x22/apps/package_development.pngUT]aAux PK D1h%6xnuvola/22x22/apps/package_editors.pngUT]aAux PK D1>x5)xnuvola/22x22/apps/package_edutainment.pngUT]aAux PK 0sH1y55&Zxnuvola/22x22/apps/package_favorite.pngUTAynuvola/22x22/devices/UTVMux PK |A1.Λ&۟ynuvola/22x22/devices/3floppy_mount.pngUT]]Aux PK %|A1uP(ynuvola/22x22/devices/3floppy_unmount.pngUT\]Aux PK |A1J644&ުynuvola/22x22/devices/5floppy_mount.pngUT]]Aux PK |A1+,ح(rynuvola/22x22/devices/5floppy_unmount.pngUT]]Aux PK }A1N 00ôynuvola/22x22/devices/camera.pngUT6^]Aux PK |A1N%Lynuvola/22x22/devices/camera_mount.pngUT]]Aux PK |A1N 00'큳ynuvola/22x22/devices/camera_unmount.pngUT]]Aux PK N1#*&Dynuvola/22x22/devices/cdaudio_mount.pngUTJnAux PK |A1(jynuvola/22x22/devices/cdaudio_unmount.pngUT]]Aux PK |A1#*$큦ynuvola/22x22/devices/cdrom_mount.pngUT]]Aux PK |A1Rx""&ynuvola/22x22/devices/cdrom_unmount.pngUT]]Aux PK |A1..'Lynuvola/22x22/devices/cdwriter_mount.pngUT]]Aux PK |A19g)ynuvola/22x22/devices/cdwriter_unmount.pngUT]]Aux PK |A1VHH"ynuvola/22x22/devices/dvd_mount.pngUT|]]Aux PK |A1Oi${ynuvola/22x22/devices/dvd_unmount.pngUTx]]Aux PK |A1G"큄ynuvola/22x22/devices/hdd_mount.pngUTr]]Aux PK |A1 KK$`znuvola/22x22/devices/hdd_unmount.pngUTl]]Aux PK |A1H ' znuvola/22x22/devices/ipod.pngUTd]]Aux PK |A1[o__! znuvola/22x22/devices/joystick.pngUT^]]Aux PK |A1)A큹znuvola/22x22/devices/memory.pngUTT]]Aux PK|A1uOIJ!큾znuvola/22x22/devices/mo_mount.pngUTP]]Aux PK |A1;'1#b!znuvola/22x22/devices/mo_unmount.pngUTJ]]Aux PK |A1(((znuvola/22x22/devices/modem.pngUTD]]Aux PK }|A16ssR-znuvola/22x22/devices/mouse.pngUT>]]Aux PK {|A1i//"3znuvola/22x22/devices/nfs_mount.pngUT:]]Aux PK x|A1Pss$큨9znuvola/22x22/devices/nfs_unmount.pngUT4]]Aux PK u|A1{-y?znuvola/22x22/devices/pda.pngUT.]]Aux PK s|A10"qDznuvola/22x22/devices/pda_black.pngUT*]]Aux PK p|A12%q))!Iznuvola/22x22/devices/pda_blue.pngUT$]]Aux PK m|A1 E$FOznuvola/22x22/devices/print_class.pngUT]]Aux PK j|A1ne'z<<&큦Vznuvola/22x22/devices/print_printer.pngUT]]Aux PK g|A1% B]znuvola/22x22/devices/printer.pngUT]]Aux PK d|A1*  (dznuvola/22x22/devices/raid.pngUT ]]Aux PK t913$큉iznuvola/22x22/devices/samba_mount.pngUTgUAux PK a|A1=&pznuvola/22x22/devices/samba_unmount.pngUT]]Aux PK \|A1w) xznuvola/22x22/devices/scanner.pngUT]]Aux PK S|A1;QQ~znuvola/22x22/devices/tablet.pngUT\]Aux PK |A12/\\큡znuvola/22x22/devices/tv.pngUT]]Aux PK sA1t/wJ*Rznuvola/22x22/devices/usbpendrive_mount.pngUTb]Aux PK nA1pt,큎znuvola/22x22/devices/usbpendrive_unmount.pngUTb]Aux PK |A10"znuvola/22x22/devices/zip_mount.pngUT]]Aux PK |A1H-D$sznuvola/22x22/devices/zip_unmount.pngUT]]Aux PK ]L>Aءznuvola/22x22/filesystems/UTVMux PK i=1[ւ'+znuvola/22x22/filesystems/chardevice.pngUTZAux PKi=1 eq$znuvola/22x22/filesystems/desktop.pngUTZAux PK i=1ײ;B!Ѯznuvola/22x22/filesystems/exec.pngUTZAux PK h=1ȧI(큶znuvola/22x22/filesystems/file_broken.pngUTzZAux PK i=1|8+큥znuvola/22x22/filesystems/file_important.pngUTZAux PK i=1S:((ÿznuvola/22x22/filesystems/file_locked.pngUTZAux PK i=17ץ+znuvola/22x22/filesystems/file_temporary.pngUTZAux PK 0e=1Ѵ  #znuvola/22x22/filesystems/folder.pngUT\ZAux PK LB1Ѵ  (Fznuvola/22x22/filesystems/folder_blue.pngUT`^Aux PK LB1# k-큵znuvola/22x22/filesystems/folder_blue_open.pngUT`^Aux PK -e=1l]](큠znuvola/22x22/filesystems/folder_cool.pngUTVZAux PK =1_%%(_znuvola/22x22/filesystems/folder_cyan.pngUTZAux PK =10D-znuvola/22x22/filesystems/folder_cyan_open.pngUTZAux PK )e=1lXX, znuvola/22x22/filesystems/folder_download.pngUTNZAux PK &e=1,|,znuvola/22x22/filesystems/folder_favorite.pngUTHZAux PK#e=1J,aj(^{nuvola/22x22/filesystems/folder_font.pngUTBZAux PK e=1H#VV)! {nuvola/22x22/filesystems/folder_games.pngUTA:"|nuvola/22x22/mimetypes/UTVMux PK čC1(|ϡ&큋"|nuvola/22x22/mimetypes/abiword_abi.pngUT`Aux PK C1:O!큌'|nuvola/22x22/mimetypes/applix.pngUT`Aux PK C1[i +|nuvola/22x22/mimetypes/ascii.pngUT`Aux PK t91(P@@/|nuvola/22x22/mimetypes/bc.pngUTgUAux PK C1R!큮3|nuvola/22x22/mimetypes/binary.pngUT`Aux PK C1m$큏8|nuvola/22x22/mimetypes/cdbo_list.pngUT`Aux PK C1$p"큈>|nuvola/22x22/mimetypes/cdimage.pngUT`Aux PK C1@,S\))큸D|nuvola/22x22/mimetypes/cdr.pngUT`Aux PK C15|"9J|nuvola/22x22/mimetypes/cdtrack.pngUT`Aux PK C1]#큭P|nuvola/22x22/mimetypes/colorscm.pngUTv`Aux PK C1]#V|nuvola/22x22/mimetypes/colorset.pngUT`Aux PK C1*;BB큉[|nuvola/22x22/mimetypes/core.pngUT`Aux PK C1 α$`|nuvola/22x22/mimetypes/deb.pngUT`Aux PK C1X""#0g|nuvola/22x22/mimetypes/document.pngUT|`Aux PK C1B큯l|nuvola/22x22/mimetypes/dvi.pngUTd`Aux PK C1`4!큘p|nuvola/22x22/mimetypes/ebuild.pngUTV`Aux PK C1Y..  v|nuvola/22x22/mimetypes/empty.pngUT^`Aux PK C1$큑x|nuvola/22x22/mimetypes/encrypted.pngUTP`Aux PK C1_@D$큲}|nuvola/22x22/mimetypes/exec_wine.pngUTH`Aux PK C1uu2큼|nuvola/22x22/mimetypes/file_locked-[Converted].pngUTj`Aux PKC1 )큝|nuvola/22x22/mimetypes/file_temporary.pngUTp`Aux PK C1`|nuvola/22x22/mimetypes/font.pngUTB`Aux PK {C1tRnn&A|nuvola/22x22/mimetypes/font_bitmap.pngUT:`Aux PK xC1z)(|nuvola/22x22/mimetypes/font_truetype.pngUT4`Aux PK qC1ϛ55%;|nuvola/22x22/mimetypes/font_type1.pngUT&`Aux PK tC1i"ϡ|nuvola/22x22/mimetypes/gettext.pngUT,`Aux PK mC1x|nuvola/22x22/mimetypes/gf.pngUT`Aux PK jC1*||)|nuvola/22x22/mimetypes/gnome_app_info.pngUT`Aux PK fC1sO ,,|nuvola/22x22/mimetypes/html.pngUT`Aux PK cC1t)zz f|nuvola/22x22/mimetypes/image.pngUT `Aux PK `C1(%:|nuvola/22x22/mimetypes/image_gimp.pngUT`Aux PK VC1\HH큱|nuvola/22x22/mimetypes/info.pngUT`Aux PK ZC1$"R|nuvola/22x22/mimetypes/install.pngUT`Aux PK RC1\#i|nuvola/22x22/mimetypes/java_jar.pngUT`Aux PK NC1"(|nuvola/22x22/mimetypes/karbon_karbon.pngUT`Aux PK JC1>555&|nuvola/22x22/mimetypes/kchart_chrt.pngUT`Aux PK GC1_&&']|nuvola/22x22/mimetypes/kformula_kfo.pngUT`Aux PK CC1Fa~$|nuvola/22x22/mimetypes/kget_list.pngUT`Aux PK 8C1пfrr"|nuvola/22x22/mimetypes/kig_doc.pngUT`Aux PK =C1\,F$|nuvola/22x22/mimetypes/kivio_flw.pngUT`Aux PK C1(FF$|nuvola/22x22/mimetypes/kmultiple.pngUT`Aux PK C11n{"큑|nuvola/22x22/mimetypes/koffice.pngUTz`Aux PK C1c11''*}nuvola/22x22/mimetypes/kpovmodeler_doc.pngUTt`Aux PK C1]{)L}nuvola/22x22/mimetypes/kpresenter_kpr.pngUTl`Aux PK C1Y..)f }nuvola/22x22/mimetypes/krec_fileempty.pngUTf`Aux PK C13jj(}nuvola/22x22/mimetypes/krec_fileplay.pngUTR`Aux PK C1Z44'}nuvola/22x22/mimetypes/krec_filerec.pngUT\`Aux PK C1_Q=}$X}nuvola/22x22/mimetypes/krita_kra.pngUTJ`Aux PK C1+ZZ&큗}nuvola/22x22/mimetypes/kspread_ksp.pngUTD`Aux PK C1a&$Q%}nuvola/22x22/mimetypes/kugar_kud.pngUT*`Aux PK C1:F$큨+}nuvola/22x22/mimetypes/kugardata.pngUT`Aux PK C1g77$0}nuvola/22x22/mimetypes/kword_kwd.pngUT`Aux PK یC1?AAY6}nuvola/22x22/mimetypes/log.pngUT`Aux PK ،C1Ib##:}nuvola/22x22/mimetypes/make.pngUT`Aux PK ԌC1$ʌ-n@}nuvola/22x22/mimetypes/man.pngUT`Aux PK ΌC1sJss"`F}nuvola/22x22/mimetypes/message.pngUT`Aux PK ьC1M\@@#/L}nuvola/22x22/mimetypes/metafont.pngUT`Aux PK ʌC1`gR}nuvola/22x22/mimetypes/midi.pngUT`Aux PK C1Y..3W}nuvola/22x22/mimetypes/mime.pngUT>`Aux PK C1`4&큺Y}nuvola/22x22/mimetypes/mime_ebuild.pngUT$`Aux PK ƌC1M'0_}nuvola/22x22/mimetypes/mime_koffice.pngUT`Aux PK ÌC1$??#큗d}nuvola/22x22/mimetypes/mime_lyx.pngUT`Aux PK C1Y..#3j}nuvola/22x22/mimetypes/misc_doc.pngUT8`Aux PK C1STJJ'큾l}nuvola/22x22/mimetypes/netscape_doc.pngUT`Aux PK C1#iq}nuvola/22x22/mimetypes/ooo_calc.pngUT`Aux PK C1=='큽w}nuvola/22x22/mimetypes/ooo_calc_tpl.pngUT`Aux PK C1Vt'[~}nuvola/22x22/mimetypes/ooo_draw_tpl.pngUT`Aux PK C1בX*Ԅ}nuvola/22x22/mimetypes/ooo_impress_tpl.pngUT`Aux PK C1#0::$}nuvola/22x22/mimetypes/ooo_setup.pngUT`Aux PK C1/-tt%z}nuvola/22x22/mimetypes/ooo_writer.pngUT`Aux PK C1)M}nuvola/22x22/mimetypes/ooo_writer_tpl.pngUT`Aux PK C1ULL 2}nuvola/22x22/mimetypes/patch.pngUT`Aux PK C13˙?آ}nuvola/22x22/mimetypes/pdf.pngUT`Aux PK C15". pp%큳}nuvola/22x22/mimetypes/postscript.pngUT`Aux PK C1w!!$큂}nuvola/22x22/mimetypes/quicktime.pngUT`Aux PK C17nMM!}nuvola/22x22/mimetypes/readme.pngUT`Aux PK C1U""큩}nuvola/22x22/mimetypes/real.pngUT|`Aux PK C1U""#$}nuvola/22x22/mimetypes/real_doc.pngUTv`Aux PK C1[#큣}nuvola/22x22/mimetypes/recycled.pngUTn`Aux PK C1RX#}nuvola/22x22/mimetypes/resource.pngUT``Aux PK C1úm#}nuvola/22x22/mimetypes/rpm.pngUTf`Aux PK {C1N;$EE&9}nuvola/22x22/mimetypes/shellscript.pngUTZ`Aux PK yC1`y7"}nuvola/22x22/mimetypes/soffice.pngUTV`Aux PK vC1c }nuvola/22x22/mimetypes/sound.pngUTP`Aux PK rC1B !^}nuvola/22x22/mimetypes/source.pngUTH`Aux PK mC1%#\}nuvola/22x22/mimetypes/source_c.pngUT>`Aux PK eC1ɦ%8}nuvola/22x22/mimetypes/source_cpp.pngUT.`Aux PK iC1)%=}nuvola/22x22/mimetypes/source_css.pngUT6`Aux PK JC1=buu#큶}nuvola/22x22/mimetypes/source_f.pngUT`Aux PK HC1&C??#큈}nuvola/22x22/mimetypes/source_h.pngUT`Aux PK EC1\\#$~nuvola/22x22/mimetypes/source_j.pngUT`Aux PK BC1{_||&~nuvola/22x22/mimetypes/source_java.pngUT`Aux PK =C1b%큹 ~nuvola/22x22/mimetypes/source_moc.pngUT`Aux PK 7C1{{#큤~nuvola/22x22/mimetypes/source_o.pngUT`Aux PK :C1Ẓ#|~nuvola/22x22/mimetypes/source_p.pngUT`Aux PK 'C1u;``%Y~nuvola/22x22/mimetypes/source_php.pngUT`Aux PK $C1}Ѽ$ ~nuvola/22x22/mimetypes/source_pl.pngUT`Aux PK !C1p$2%~nuvola/22x22/mimetypes/source_py.pngUT`Aux PK DC1K8{{#e*~nuvola/22x22/mimetypes/source_s.pngUT`Aux PK C10#=/~nuvola/22x22/mimetypes/source_y.pngUT`Aux PK C1ES&4~nuvola/22x22/mimetypes/spreadsheet.pngUT`Aux PK C1BBL:~nuvola/22x22/mimetypes/tar.pngUT`Aux PK C1͆-*@~nuvola/22x22/mimetypes/template_source.pngUT`Aux PK C1V~~F~nuvola/22x22/mimetypes/tex.pngUTJ`Aux PK C1J~nuvola/22x22/mimetypes/tgz.pngUT~`Aux PK ׋C12R~nuvola/22x22/mimetypes/txt.pngUT&`Aux PK C1Y.."큂V~nuvola/22x22/mimetypes/unknown.pngUT2`Aux PK rC1 4,55$ Y~nuvola/22x22/mimetypes/vcalendar.pngUTh`Aux PK cC1@= 큟^~nuvola/22x22/mimetypes/vcard.pngUTJ`Aux PK C1l;Y$c~nuvola/22x22/mimetypes/vectorgfx.pngUT`Aux PK OC1 #)) h~nuvola/22x22/mimetypes/video.pngUT&`Aux PK LC1jj%Lm~nuvola/22x22/mimetypes/widget_doc.pngUT `Aux PK C1 OHѶ)q~nuvola/22x22/mimetypes/wordprocessing.pngUT`Aux PK tQB A.v~nuvola/32x32/UT] Qux PKvQBH <uv~nuvola/32x32/.DS_StoreUT Qux PK NvQBA{~nuvola/32x32/actions/UT$ Qux PK DlN1uN:\\#!|~nuvola/32x32/actions/1downarrow.pngUT0dnAux PK ClN1&33#ڂ~nuvola/32x32/actions/1leftarrow.pngUT.dnAux PK 4lN1%77$j~nuvola/32x32/actions/1rightarrow.pngUTdnAux PK 2lN1{HH!~nuvola/32x32/actions/1uparrow.pngUTdnAux PK0lN1#큢~nuvola/32x32/actions/2downarrow.pngUT dnAux PK /lN1#ʟ~nuvola/32x32/actions/2leftarrow.pngUT dnAux PK -lN16;$~nuvola/32x32/actions/2rightarrow.pngUTdnAux PK ,lN1Æ! ~nuvola/32x32/actions/2uparrow.pngUTdnAux PKt91v "~nuvola/32x32/actions/about_kde.pngUTgUAux PK mN14G~nuvola/32x32/actions/apply.pngUTfnAux PK pB8'c~nuvola/32x32/actions/apply_multiple.pngUTPQux PKt91Z'` )b~nuvola/32x32/actions/artsaudiomanager.pngUTgUAux PK t91|(n~nuvola/32x32/actions/artsenvironment.pngUTgUAux PK t91"9'~nuvola/32x32/actions/artsmediatypes.pngUTgUAux PKkN1bX d (~nuvola/32x32/actions/artsmidimanager.pngUTcnAux PK kN12= 큋~nuvola/32x32/actions/attach.pngUTvcnAux PK kN1Ynuvola/32x32/actions/back.pngUTjcnAux PKkN1~+Enuvola/32x32/actions/blend.pngUTbnAux PK2e=1eߎKN!tnuvola/32x32/actions/bookmark.pngUT`ZAux PKkN1}ُ %nuvola/32x32/actions/bookmark_add.pngUTbnAux PKkN1&  (@#nuvola/32x32/actions/bookmark_folder.pngUTbnAux PK kN1%J )큳,nuvola/32x32/actions/bookmark_toolbar.pngUTbnAux PKkN1Rf> +6nuvola/32x32/actions/bookmarks_list_add.pngUTbnAux PK kN1)""@nuvola/32x32/actions/bottom.pngUThcnAux PK mN14&QInuvola/32x32/actions/button_accept.pngUTfnAux PK kN1 Q &uPnuvola/32x32/actions/button_cancel.pngUTbnAux PK mN14"큃Znuvola/32x32/actions/button_ok.pngUTfnAux PK mN14$큣anuvola/32x32/actions/camera_test.pngUTfnAux PK kN1 Q hnuvola/32x32/actions/cancel.pngUTbnAux PK e:1x  rnuvola/32x32/actions/cd.pngUTVAux PK kN1y_=WW#4|nuvola/32x32/actions/color_fill.pngUTbnAux PK kN1Kd#nuvola/32x32/actions/color_line.pngUTbnAux PKnkN1~& !nuvola/32x32/actions/colorize.pngUTbnAux PK t91̺!nuvola/32x32/actions/compfile.pngUTgUAux PK mkN1Yss"nuvola/32x32/actions/configure.pngUTbnAux PK XkN1:pp)դnuvola/32x32/actions/connect_creating.pngUTxbnAux PKVkN1p_u { ,큨nuvola/32x32/actions/connect_established.pngUTtbnAux PKTkN1j& #큃nuvola/32x32/actions/connect_no.pngUTpbnAux PK t91JCԲ!nuvola/32x32/actions/contents.pngUTgUAux PK kkN19nuvola/32x32/actions/cut.pngUTbnAux PKikN1 _#"nuvola/32x32/actions/decrypted.pngUTbnAux PK kN12Ys3nuvola/32x32/actions/down.pngUTdcnAux PK hkN1 _ss^nuvola/32x32/actions/edit.pngUTbnAux PK kN1墼!(nuvola/32x32/actions/edit_add.pngUT`cnAux PKkN1픞$큁nuvola/32x32/actions/edit_remove.pngUT\cnAux PK \N1(11!}nuvola/32x32/actions/editcopy.pngUT`nAux PK t91|f99  nuvola/32x32/actions/editcut.pngUTgUAux PK dkN1(U  #큜nuvola/32x32/actions/editdelete.pngUTbnAux PKRkN1" nuvola/32x32/actions/editpaste.pngUTlbnAux PK ZN1ISX33"enuvola/32x32/actions/editshred.pngUT\nAux PKjN1:o@J"nuvola/32x32/actions/edittrash.pngUTxnAux PKӍN1gb i 큐nuvola/32x32/actions/email.pngUT^nAux PKckN1&W "J)nuvola/32x32/actions/encrypted.pngUTbnAux PK mN14 큪1nuvola/32x32/actions/endturn.pngUTfnAux PKpN1o׀ 8nuvola/32x32/actions/exit.pngUTljnAux PKpN1("큟Bnuvola/32x32/actions/fileclose.pngUTfjnAux PK OkN1e<<#Knuvola/32x32/actions/fileexport.pngUTfbnAux PK akN1oAA kRnuvola/32x32/actions/filenew.pngUTbnAux PKt91B!Znuvola/32x32/actions/fileopen.pngUTgUAux PK ]kN1- "anuvola/32x32/actions/fileprint.pngUTbnAux PK\kN1?<|F Z '6knuvola/32x32/actions/filequickprint.pngUTbnAux PK MkN1L!wnuvola/32x32/actions/filesave.pngUTbbnAux PKKkN17 # * #nuvola/32x32/actions/filesaveas.pngUT^bnAux PK t91)MUU큅nuvola/32x32/actions/fill.pngUTgUAux PK t911^ 1nuvola/32x32/actions/find.pngUTgUAux PKkN1 )ڛ.nuvola/32x32/actions/finish.pngUTXcnAux PK t91l.#큃nuvola/32x32/actions/folder_new.pngUTgUAux PKkN19 WCD ʧnuvola/32x32/actions/forward.pngUTTcnAux PK [N1ff#gnuvola/32x32/actions/frameprint.pngUTnAux PKYkN1  *nuvola/32x32/actions/gohome.pngUTzbnAux PKIkN1e7\ o 큎nuvola/32x32/actions/help.pngUTZbnAux PKEkN1!' Ànuvola/32x32/actions/history.pngUTRbnAux PKDkN1= ) &wـnuvola/32x32/actions/history_clear.pngUTPbnAux PK L>WE '큻nuvola/32x32/actions/history_resume.pngUTVMux PK .L>;EUT T %nuvola/32x32/actions/history_stop.pngUTVMux PK 8u $큥nuvola/32x32/actions/historymenu.pngUTCHux PKkO1_ 2 E !큜nuvola/32x32/actions/homepage.pngUToAux PKt914 # )nuvola/32x32/actions/hwinfo.pngUTgUAux PKBkN1cHq !큔nuvola/32x32/actions/identity.pngUTLbnAux PKRlN1gΨ 2 &nuvola/32x32/actions/irkick.pngUTLdnAux PKkN1﯋ $U2nuvola/32x32/actions/irkickflash.pngUT|cnAux PKVlN1eA*">>nuvola/32x32/actions/irkickoff.pngUTTdnAux PK (kN1*P%큲Anuvola/32x32/actions/kaboodleloop.pngUTbnAux PK&kN1 5 Jnuvola/32x32/actions/kalarm.pngUTbnAux PK$kN1]" O (@Vnuvola/32x32/actions/kalarm_disabled.pngUTbnAux PK t91ĵecnuvola/32x32/actions/kcmpci.pngUTgUAux PK 1kN1uN:\\&lnuvola/32x32/actions/kdevelop_down.pngUT.bnAux PK t91[V "rnuvola/32x32/actions/kgpg_edit.pngUTgUAux PKt91l $ynuvola/32x32/actions/kgpg_export.pngUTgUAux PKt91Kt ~ !nuvola/32x32/actions/kgpg_gen.pngUTgUAux PKt91l . &쏁nuvola/32x32/actions/kgpg_identity.pngUTgUAux PKt91 $bnuvola/32x32/actions/kgpg_import.pngUTgUAux PKt91M"큏nuvola/32x32/actions/kgpg_info.pngUTgUAux PKt91\V]"큵nuvola/32x32/actions/kgpg_key1.pngUTgUAux PKt91",  "gnuvola/32x32/actions/kgpg_key2.pngUTgUAux PK t91nD "߾nuvola/32x32/actions/kgpg_key3.pngUTgUAux PK t91zz#Ɂnuvola/32x32/actions/kgpg_photo.pngUTgUAux PK t91Bk"Ёnuvola/32x32/actions/kgpg_show.pngUTgUAux PK t916 ""؁nuvola/32x32/actions/kgpg_sign.pngUTgUAux PKt91w"[nuvola/32x32/actions/kgpg_term.pngUTgUAux PKt916^U b %크nuvola/32x32/actions/klipper_dock.pngUTgUAux PKpN1~:M& ) #`nuvola/32x32/actions/kmixdocked.pngUTbjnAux PK pN1#Bф4 4 )nuvola/32x32/actions/kmixdocked_error.pngUT^jnAux PKpN1](f nuvola/32x32/actions/kmixdocked_mute.pngUTJjnAux PK t91LRR$onuvola/32x32/actions/krec_record.pngUTgUAux PKpN1'/8 &nuvola/32x32/actions/laptop_charge.pngUTFjnAux PKpN1/)%'nuvola/32x32/actions/laptop_nobattery.pngUTDjnAux PK pN1J-55(,0nuvola/32x32/actions/laptop_nocharge.pngUT@jnAux PK }oN1& & %4nuvola/32x32/actions/laptop_power.pngUT>jnAux PKt91xF K H>nuvola/32x32/actions/ledblue.pngUTgUAux PK|oN1B/! !Gnuvola/32x32/actions/ledgreen.pngUT !;nuvola/32x32/actions/mail_get.pngUTdnAux PK t911Lj!;ǂnuvola/32x32/actions/mail_new.pngUTgUAux PK t911Lj%΂nuvola/32x32/actions/mail_post_to.pngUTgUAux PK 7lN1X, #Ղnuvola/32x32/actions/mail_reply.pngUTdnAux PK@lN1zi &T߂nuvola/32x32/actions/mail_replyall.pngUT(dnAux PK PlN1  "큿nuvola/32x32/actions/mail_send.pngUTHdnAux PKHlN1=SEP&,nuvola/32x32/actions/make_kdevelop.pngUT8dnAux PK$lN1VIr ,nuvola/32x32/actions/messagebox_critical.pngUTcnAux PKeoN1=  (큩nuvola/32x32/actions/messagebox_info.pngUTjnAux PKElN1RHM+nuvola/32x32/actions/messagebox_warning.pngUT2dnAux PKt911" % 큻nuvola/32x32/actions/misc.pngUTgUAux PK pN1BN!4%nuvola/32x32/actions/mix_midi.pngUThknAux PK "kN1 H7#큀*nuvola/32x32/actions/mix_recmon.pngUTbnAux PK kN1ma$.nuvola/32x32/actions/mix_unknown.pngUT bnAux PK kN1E!XX#5nuvola/32x32/actions/mix_volume.pngUT bnAux PK i:1[69nuvola/32x32/actions/mouse.pngUTFVAux PK 4{_44  Bnuvola/32x32/actions/new_sub.pngUTeDux PK kN1^ 큗Jnuvola/32x32/actions/newfont.pngUTanAux PKkN1/ '큱Rnuvola/32x32/actions/news_subscribe.pngUTbnAux PK kN1ۗ] )]nuvola/32x32/actions/news_unsubscribe.pngUTbnAux PK 0N1%77!inuvola/32x32/actions/next.pngUTlnAux PK t91)>큯onuvola/32x32/actions/no.pngUTgUAux PK t91S ll#wnuvola/32x32/actions/noatunback.pngUTgUAux PK t91uN&큛}nuvola/32x32/actions/noatunforward.pngUTgUAux PK t91!SbD D 'ۃnuvola/32x32/actions/noatunloopsong.pngUTgUAux PKt91« N$큀nuvola/32x32/actions/noatunpause.pngUTgUAux PK t91VV#znuvola/32x32/actions/noatunplay.pngUTgUAux PK t91P;ǿ'-nuvola/32x32/actions/noatunplaylist.pngUTgUAux PKt91r#Mnuvola/32x32/actions/noatunstop.pngUTgUAux PK mN14큮nuvola/32x32/actions/ok.pngUTfnAux PKkN1!Ǥnuvola/32x32/actions/openterm.pngUTanAux PK t91֞N| | 'nuvola/32x32/actions/package_system.pngUTgUAux PK t91bٸnuvola/32x32/actions/pencil.pngUTgUAux PK pN1BNDnuvola/32x32/actions/piano.pngUTdknAux PK kN1ٯ4%큍Ńnuvola/32x32/actions/player_eject.pngUTanAux PK kN1, m#˃nuvola/32x32/actions/player_end.pngUTanAux PK kN1`#IӃnuvola/32x32/actions/player_fwd.pngUTbnAux PK kN1Q%ۃnuvola/32x32/actions/player_pause.pngUTanAux PK 0kN1VrCNN$nuvola/32x32/actions/player_play.pngUT,bnAux PK .kN1- #nuvola/32x32/actions/player_rev.pngUT(bnAux PK t91yk#큨nuvola/32x32/actions/player_rew.pngUTgUAux PK ,kN1L%nuvola/32x32/actions/player_start.pngUT$bnAux PK*kN1u`A+yz$/nuvola/32x32/actions/player_stop.pngUT bnAux PKt91[bnuvola/32x32/actions/power.pngUTgUAux PK 0N1&33!큹 nuvola/32x32/actions/previous.pngUTlnAux PK t91CC%Gnuvola/32x32/actions/project_open.pngUTgUAux PK t91Hnuvola/32x32/actions/queue.pngUTgUAux PK t91rQ+҉[nuvola/32x32/actions/quiz.pngUTgUAux PK kN1ZKU ;#nuvola/32x32/actions/rebuild.pngUTanAux PK t91yOO큗+nuvola/32x32/actions/redo.pngUTgUAux PK kN1r =2nuvola/32x32/actions/reload.pngUTPcnAux PK kN1ξ (~<nuvola/32x32/actions/reload_all_tabs.pngUTLcnAux PK kN1ξ $큧Fnuvola/32x32/actions/reload_page.pngUTDcnAux PK kN1M Pnuvola/32x32/actions/revert.pngUTanAux PK kN1rڂ Znuvola/32x32/actions/roll.pngUTanAux PKkN1H:^d큳dnuvola/32x32/actions/rotate.pngUTBcnAux PKkN1H:^d#jknuvola/32x32/actions/rotate_ccw.pngUT>cnAux PK kN1W##"%rnuvola/32x32/actions/rotate_cw.pngUT0cnAux PK kN1t?!  큤xnuvola/32x32/actions/run.pngUTanAux PKkN1lW\ d !nuvola/32x32/actions/save_all.pngUTanAux PK jN1"큺nuvola/32x32/actions/signature.pngUTanAux PK \oN1ͽ #큹nuvola/32x32/actions/spellcheck.pngUTjnAux PK '+:7FF"nuvola/32x32/actions/squaremap.pngUT*?jIux PK kN1_O큷nuvola/32x32/actions/start.pngUT,cnAux PKkN1VIr 큞nuvola/32x32/actions/stop.pngUT*cnAux PK jN135&gnuvola/32x32/actions/tab_duplicate.pngUTanAux PK jN1H 큻nuvola/32x32/actions/tab_new.pngUTanAux PK jN1??',nuvola/32x32/actions/tab_new_raised.pngUTanAux PK jN1ao]#Ȅnuvola/32x32/actions/tab_remove.pngUTanAux PK jN1sII"*Єnuvola/32x32/actions/thumbnail.pngUTanAux PKL>Ae۷bJׄnuvola/32x32/actions/Thumbs.dbUTVMux PK zkO1z#:nuvola/32x32/actions/toggle_log.pngUT8oAux PKkN10Dnuvola/32x32/actions/top.pngUT&cnAux PK t91 HHKLnuvola/32x32/actions/undo.pngUTgUAux PKkN1889Rnuvola/32x32/actions/up.pngUT cnAux PK kN11А$wZnuvola/32x32/actions/view_bottom.pngUTcnAux PK kN1Sc$xcnuvola/32x32/actions/view_choose.pngUTcnAux PKkN1.V&knuvola/32x32/actions/view_detailed.pngUTcnAux PK kN1}f4ww(snuvola/32x32/actions/view_fullscreen.pngUTcnAux PKkN1#dg"{nuvola/32x32/actions/view_icon.pngUTcnAux PK kN1:BB(큈nuvola/32x32/actions/view_left_right.pngUT cnAux PKkN1 Gek),nuvola/32x32/actions/view_multicolumn.pngUTcnAux PK kN16O*nuvola/32x32/actions/view_nofullscreen.pngUTcnAux PK kN1: mu~~$ nuvola/32x32/actions/view_remove.pngUTcnAux PK kN1.ss#硇nuvola/32x32/actions/view_right.pngUTbnAux PK kN1&nuvola/32x32/actions/view_sidetree.pngUTbnAux PK kN1"߲nuvola/32x32/actions/view_text.pngUTbnAux PK kN1Z(nuvola/32x32/actions/view_top_bottom.pngUTbnAux PK kN1Ojaa"큙nuvola/32x32/actions/view_tree.pngUTbnAux PKjN1 PC U !Vȇnuvola/32x32/actions/viewmag+.pngUTanAux PKjN1Hi  !Ӈnuvola/32x32/actions/viewmag-.pngUTanAux PKjN1b[; Z߇nuvola/32x32/actions/viewmag.pngUTanAux PKjN1mܯ !큚nuvola/32x32/actions/viewmag1.pngUTanAux PKjN1~s^ #큤nuvola/32x32/actions/viewmagfit.pngUTanAux PK kN1_y%%#큘nuvola/32x32/actions/window_new.pngUTbnAux PK jN1 nuvola/32x32/actions/wizard.pngUTxanAux PK ũL>AWnuvola/32x32/apps/UTVMux PKF1)G:$큣nuvola/32x32/apps/access.pngUT"MdAux PKD1%kf nuvola/32x32/apps/acroread.pngUTX^aAux PK F1NCӼs s 큡%nuvola/32x32/apps/agent.pngUTMdAux PK t91;mi/nuvola/32x32/apps/aktion.pngUTgUAux PKF1Kr 큫5nuvola/32x32/apps/amarok.pngUT MdAux PK.N1@nuvola/32x32/apps/amor.pngUT8mAux PKF1L5< 큹Inuvola/32x32/apps/applixware.pngUTMdAux PK6WG1*` HOnuvola/32x32/apps/ark.pngUTeAux PK2WG1B `Ynuvola/32x32/apps/arts.pngUTeAux PK/WG1G5 !큱bnuvola/32x32/apps/artsbuilder.pngUTeAux PK+WG1L S !nnuvola/32x32/apps/artscontrol.pngUTeAux PKe:1I5r %znuvola/32x32/apps/artsmidimanager.pngUTНVAux PK 'WG1xL 큰nuvola/32x32/apps/atlantik.pngUTeAux PK WG1Ÿ9l m Ȏnuvola/32x32/apps/background.pngUTeAux PKWG1K[;B V 큎nuvola/32x32/apps/bell.pngUTeAux PK t91Mt$nuvola/32x32/apps/bookcase.pngUTgUAux PKfE11 E nuvola/32x32/apps/browser.pngUT}bAux PKWG1  큡nuvola/32x32/apps/bug.pngUTeAux PK $WG1Q nuvola/32x32/apps/cache.pngUTeAux PK WG1kzma j Ljnuvola/32x32/apps/chat.pngUTeAux PK WG1oEY\\ 큭҈nuvola/32x32/apps/clanbomber.pngUTeAux PKWG1cN Y cڈnuvola/32x32/apps/clock.pngUTeAux PKkG1J; A nuvola/32x32/apps/colors.pngUT(eAux PKkG1pQt w 큗nuvola/32x32/apps/cookie.pngUT(eAux PK VG1oEY\\anuvola/32x32/apps/core.pngUTeAux PKkG1; nuvola/32x32/apps/date.pngUT(eAux PK kG1>iAWWfnuvola/32x32/apps/designer.pngUT(eAux PK[oG12b e nuvola/32x32/apps/digikam.pngUT~/eAux PK kG19{!nuvola/32x32/apps/display.pngUTx(eAux PK kG1&)nuvola/32x32/apps/download_manager.pngUT(eAux PKUoG1O #92nuvola/32x32/apps/edu_languages.pngUTr/eAux PK NoG1JOO%7=nuvola/32x32/apps/edu_mathematics.pngUTd/eAux PKt91ߎz~ 'Dnuvola/32x32/apps/edu_miscellaneous.pngUTgUAux PKQoG1Χ !Nnuvola/32x32/apps/edu_science.pngUTj/eAux PK .G1)w Ynuvola/32x32/apps/emacs.pngUT|eAux PK *G1Tcnuvola/32x32/apps/email.pngUT|eAux PKLoG1Pż Xlnuvola/32x32/apps/energy.pngUT`/eAux PKgoG1>.mp'jwnuvola/32x32/apps/enhanced_browsing.pngUT/eAux PK doG1x> > 8nuvola/32x32/apps/error.pngUT/eAux PKqG1m# ˊnuvola/32x32/apps/evolution.pngUT|eAux PK ڛG1_Ȁ"nuvola/32x32/apps/file-manager.pngUTL}eAux PKwG1^8 9 ؞nuvola/32x32/apps/filetypes.pngUT|eAux PK|G1Ft#inuvola/32x32/apps/flashkard.pngUT|eAux PK G1xDdnuvola/32x32/apps/fonts.pngUT|eAux PK,N1)#큂nuvola/32x32/apps/fsview.pngUT4mAux PKG1uH R ʿnuvola/32x32/apps/gaim.pngUT|eAux PKG1Z8 I fʉnuvola/32x32/apps/galeon.pngUT{eAux PKG1M~vK  ։nuvola/32x32/apps/gimp.pngUT{eAux PK t91䛢ݹ:nuvola/32x32/apps/gimp2.pngUTgUAux PK t91jHnuvola/32x32/apps/gnome.pngUTgUAux PKjG1 G Z fnuvola/32x32/apps/gnome_apps.pngUTx|eAux PK t91y y !nuvola/32x32/apps/gnome_apps2.pngUTgUAux PK ZG1+(f f  nuvola/32x32/apps/go.pngUT\|eAux PK G1Ќ, 큓nuvola/32x32/apps/help_index.pngUTFeAux PKG1K<R ] !nuvola/32x32/apps/hwinfo.pngUT@eAux PK כG11nn큎,nuvola/32x32/apps/icons.pngUTF}eAux PKQG1!`g h Q3nuvola/32x32/apps/iconthemes.pngUTJ|eAux PKUG1m"ky=nuvola/32x32/apps/important.pngUTR|eAux PK G1WWEnuvola/32x32/apps/indeximg.pngUT:eAux PK G1O'+ ,6Mnuvola/32x32/apps/input_devices_settings.pngUT2eAux PKdN1JoP o 큼Vnuvola/32x32/apps/irkick.pngUTmAux PKG1?  bbnuvola/32x32/apps/juk.pngUT(eAux PK G1A_큸nnuvola/32x32/apps/kaboodle.pngUT eAux PK G1z"xnuvola/32x32/apps/kaddressbook.pngUTeAux PKG1/ןH h *nuvola/32x32/apps/kalarm.pngUTeAux PKG1<% Ȍnuvola/32x32/apps/kalzium.pngUT eAux PKG1f nuvola/32x32/apps/kappfinder.pngUTeAux PKaN1jwb^ d .nuvola/32x32/apps/karm.pngUTmAux PK G1X ઊnuvola/32x32/apps/kasteroids.pngUTheAux PKK^=1; Ȳnuvola/32x32/apps/kate.pngUT^ZAux PK]N1#g6 nuvola/32x32/apps/katomic.pngUTmAux PKG1ʹI5 F #Ȋnuvola/32x32/apps/kaudiocreator.pngUTbeAux PK pH1Od9 !큮Ԋnuvola/32x32/apps/kbackgammon.pngUTfAux PKpH1ռ (ފnuvola/32x32/apps/kbackgammon_engine.pngUTfAux PK G1JtO*nn큦nuvola/32x32/apps/kblackbox.pngUTZeAux PKZN17Pmnuvola/32x32/apps/kbounce.pngUTmAux PK WN1큐nuvola/32x32/apps/kbrunch.pngUTmAux PKG1I 큁nuvola/32x32/apps/kcalc.pngUTNeAux PK H1O{!j nuvola/32x32/apps/kcharselect.pngUTeAux PK H1w 큏nuvola/32x32/apps/kchart.pngUTeAux PK H1V ~nuvola/32x32/apps/kcmdevice.pngUTeAux PK t91ߗKK nuvola/32x32/apps/kcmdevices.pngUTgUAux PK HsH1_큋%nuvola/32x32/apps/kcmdf.pngUThfAux PK H1H -nuvola/32x32/apps/kcmdrkonqi.pngUTeAux PKt91~XKL Z !9nuvola/32x32/apps/kcmfontinst.pngUTgUAux PK KsH1 6큭Bnuvola/32x32/apps/kcmkwm.pngUTnfAux PKNsH1F크Hnuvola/32x32/apps/kcmmemory.pngUTtfAux PK f t Njnuvola/32x32/apps/kdisknav.pngUTgUAux PKrH1  ыnuvola/32x32/apps/kdmconfig.pngUTʆfAux PK rH1zqaa큸݋nuvola/32x32/apps/kedit.pngUTfAux PK&sH1 | $nnuvola/32x32/apps/keditbookmarks.pngUT(fAux PKt91LVjcP U "Hnuvola/32x32/apps/key_bindings.pngUTgUAux PKrH1mA !nuvola/32x32/apps/keybindings.pngUTfAux PK rH1O{nuvola/32x32/apps/keyboard.pngUT؆fAux PKrH1Te j %nuvola/32x32/apps/keyboard_layout.pngUTfAux PKrH1u<  큸nuvola/32x32/apps/kfig.pngUTfAux PK)qH1OH q  nuvola/32x32/apps/kfind.pngUTnfAux PKrH1Z" w(nuvola/32x32/apps/kfloppy.pngUTfAux PK ,qH1 ҥX큑2nuvola/32x32/apps/kfm.pngUTtfAux PKi N14tT t :nuvola/32x32/apps/kfm_home.pngUTֹmAux PK H1wEnuvola/32x32/apps/kget.pngUTeAux PK t91@W՝ Mnuvola/32x32/apps/kghostview.pngUTgUAux PK&qH1mp 큫Unuvola/32x32/apps/kgpg.pngUThfAux PKpH1ͩl+ D 큌bnuvola/32x32/apps/khangman.pngUTfAux PK {G1(%*W W !mnuvola/32x32/apps/khelpcenter.pngUTeAux PKQN1g% : wnuvola/32x32/apps/khexedit.pngUTzmAux PK NN1gnuvola/32x32/apps/khotkeys.pngUTtmAux PKt91"x 큛nuvola/32x32/apps/kig.pngUTgUAux PK pH1ؓnuvola/32x32/apps/kiten.pngUTfAux PK t91/Y  њnuvola/32x32/apps/kivio.pngUTgUAux PKfE1)eS Z +nuvola/32x32/apps/kjobviewer.pngUT }bAux PKKN1Z خnuvola/32x32/apps/kjots.pngUTnmAux PK pH1kc77:nuvola/32x32/apps/klettres.pngUTfAux PK t91v0Ûɼnuvola/32x32/apps/klipper.pngUTgUAux PKfE1)eS Z 큻Čnuvola/32x32/apps/klpq.pngUT }bAux PKHN1Z bόnuvola/32x32/apps/kmag.pngUThmAux PK pH1(<\ٌnuvola/32x32/apps/kmahjong.pngUTfAux PKpH1gb i 크nuvola/32x32/apps/kmail.pngUTނfAux PK cG1+(f f cnuvola/32x32/apps/kmenu.pngUTj|eAux PK pH1K6nuvola/32x32/apps/kmenuedit.pngUTʂfAux PKt91ɥ> ` "bnuvola/32x32/apps/kmessedwords.pngUTgUAux PK 9sH1xG nuvola/32x32/apps/kmid.pngUTNfAux PKpH1EI ;nuvola/32x32/apps/kmines.pngUT҂fAux PK QsH1wZ Z bnuvola/32x32/apps/kmix.pngUTzfAux PK TsH1~ 'nuvola/32x32/apps/kmoon.pngUTfAux PKDN1&dhgh E1nuvola/32x32/apps/kmousetool.pngUT`mAux PK XsH1"o:nuvola/32x32/apps/kmplot.pngUTfAux PK t91y!sBnuvola/32x32/apps/knewsticker.pngUTgUAux PK [sH1b=~~kKnuvola/32x32/apps/knode.pngUTfAux PKpH1-2̓)>Tnuvola/32x32/apps/knotes.pngUTpfAux PKgG13 큱\nuvola/32x32/apps/knotify.pngUTr|eAux PK t91Ca}XQQhnuvola/32x32/apps/kolf.pngUTgUAux PKA N1X} ) 0 !큅qnuvola/32x32/apps/kolourpaint.pngUTmAux PK t91;m- |nuvola/32x32/apps/konqsidebar_mediaplayer.pngUTgUAux PKHL1΃2u \nuvola/32x32/apps/konqueror.pngUT8lAux PK L1{1Wz z *nuvola/32x32/apps/konquest.pngUTlAux PK}L1x9*/nuvola/32x32/apps/konsole.pngUTlAux PKxL1;; R }nuvola/32x32/apps/kontact.pngUTlAux PKuL1w8" ( nuvola/32x32/apps/kooka.pngUTlAux PK3tH1is ) 큆nuvola/32x32/apps/kopete.pngUT"fAux PKt910I e nuvola/32x32/apps/korganizer.pngUTgUAux PKt910I e %큋ύnuvola/32x32/apps/korganizer_todo.pngUTgUAux PK sL1  3܍nuvola/32x32/apps/korn.pngUTlAux PK pL1Eyvv큌nuvola/32x32/apps/kpackage.pngUTlAux PKL1lNZnuvola/32x32/apps/kpager.pngUTlAux PKmL1X} ) 0 Qnuvola/32x32/apps/kpaint.pngUT~lAux PKBN1Īx  nuvola/32x32/apps/kpdf.pngUT\mAux PKt91IY|| !< nuvola/32x32/apps/kpercentage.pngUTgUAux PKjL1D  nuvola/32x32/apps/kpilot.pngUTxlAux PKgL1tKW!k$nuvola/32x32/apps/kpovmodeler.pngUTrlAux PKXL1K4 -nuvola/32x32/apps/kppp.pngUTXlAux PKt91q־9)7  7nuvola/32x32/apps/kpresenter.pngUTgUAux PK pH19{큣?nuvola/32x32/apps/krdc.pngUTfAux PK qH1Ҹ,큤Gnuvola/32x32/apps/krec.pngUT(fAux PK pH1NDƆNnuvola/32x32/apps/kreversi.pngUTfAux PK<^=1]  큯Vnuvola/32x32/apps/krfb.pngUTDZAux PKqH1/m cnuvola/32x32/apps/krita.pngUT0fAux PK qH1  'onuvola/32x32/apps/kruler.pngUT6fAux PKqH1 큈vnuvola/32x32/apps/kscd.pngUTFfAux PK qH1i'"큔nuvola/32x32/apps/kscreensaver.pngUTPfAux PKt911" % 큇nuvola/32x32/apps/kservices.pngUTgUAux PK "qH1(<nuvola/32x32/apps/kshisen.pngUT`fAux PK 9N1wn`Qnuvola/32x32/apps/ksig.pngUTNmAux PKqH1~l! L 큜nuvola/32x32/apps/ksim.pngUTXfAux PKWG1e> nuvola/32x32/apps/ksirc.pngUTeAux PKRL1ɪJ Q 7nuvola/32x32/apps/ksnapshot.pngUTLlAux PKL1mR=(-Ďnuvola/32x32/apps/ksplash.pngUTlAux PKL1pW Y̎nuvola/32x32/apps/ksysv.pngUTlAux PK L1g cӎnuvola/32x32/apps/kteatime.pngUTlAux PKL1n  큝ݎnuvola/32x32/apps/kthememgr.pngUTlAux PK L1Ct nuvola/32x32/apps/ktimer.pngUTlAux PKL1zJ\nuvola/32x32/apps/ktip.pngUTlAux PK L1ޤw w tnuvola/32x32/apps/ktouch.pngUTlAux PKPL1|] v Anuvola/32x32/apps/kugar.pngUTHlAux PKML1n L - nuvola/32x32/apps/kuickshow.pngUTBlAux PKL1ɪbc  `nuvola/32x32/apps/kuser.pngUTlAux PKL1iP+nuvola/32x32/apps/kverbos.pngUTlAux PKaoG1䒂T Y Z3nuvola/32x32/apps/kview.pngUT/eAux PKt91 >nuvola/32x32/apps/kweather.pngUTgUAux PK t915~~1Inuvola/32x32/apps/kwikdisk.pngUTgUAux PK t91y&Qnuvola/32x32/apps/kwin.pngUTgUAux PK t91oVoVnuvola/32x32/apps/kwin4.pngUTgUAux PKt91r큾]nuvola/32x32/apps/kword.pngUTgUAux PKxL1}׎ !fnuvola/32x32/apps/kworldclock.pngUTlAux PK^=1_  1 qnuvola/32x32/apps/kwrite.pngUTЄZAux PK L1O{K}nuvola/32x32/apps/kxkb.pngUTlAux PKL1XEPf | $inuvola/32x32/apps/laptop_battery.pngUTlAux PKL11 #-nuvola/32x32/apps/laptop_pcmcia.pngUTlAux PKL1T  qnuvola/32x32/apps/licq.pngUTlAux PKL1gInuvola/32x32/apps/locale.pngUTlAux PKt91D`} 큖nuvola/32x32/apps/looknfeel.pngUTgUAux PKt91 &큵nuvola/32x32/apps/mozilla-firebird.pngUTgUAux PKt91o" 5 )큯ŏnuvola/32x32/apps/mozilla-thunderbird.pngUTgUAux PKt91^Si 4Џnuvola/32x32/apps/mozilla.pngUTgUAux PK L1垐ُnuvola/32x32/apps/mplayer.pngUTlAux PK L1&M}Q Q 큓nuvola/32x32/apps/multimedia.pngUTlAux PKt91ϯ >nuvola/32x32/apps/mycomputer.pngUTgUAux PK t91 5nuvola/32x32/apps/netscape.pngUTgUAux PKN18  qnuvola/32x32/apps/network.pngUTnAux PK t91" * 0nuvola/32x32/apps/package.pngUTgUAux PK oD1:K  *j:nuvola/32x32/apps/package_applications.pngUT]aAux PK vD1 )Bnuvola/32x32/apps/package_development.pngUT]aAux PKD1I  %Knuvola/32x32/apps/package_editors.pngUT]aAux PKD1 ):Wnuvola/32x32/apps/package_edutainment.pngUT]aAux PK 0sH1"&Ubnuvola/32x32/apps/package_favorite.pngUTmAux PKD1i &nuvola/32x32/apps/package_graphics.pngUT(^aAux PK D1&M}Q Q (nuvola/32x32/apps/package_multimedia.pngUT0^aAux PKD11 E %̥nuvola/32x32/apps/package_network.pngUT4^aAux PKD19^- &\nuvola/32x32/apps/package_settings.pngUT:^aAux PKD1` $큟nuvola/32x32/apps/package_system.pngUT@^aAux PKD1.) ; "큽ːnuvola/32x32/apps/package_toys.pngUTF^aAux PK D1ۢ 'Bِnuvola/32x32/apps/package_utilities.pngUTP^aAux PK lD1VBF\ \ ,큢nuvola/32x32/apps/package_wordprocessing.pngUT]aAux PK ٞL1%%dnuvola/32x32/apps/password.pngUTjlAux PKܞL1Bxs nuvola/32x32/apps/personal.pngUTplAux PKfE1)eS Z nuvola/32x32/apps/printmgr.pngUT }bAux PKL1)*  nuvola/32x32/apps/randr.pngUTlAux PKL1%5 6 큹nuvola/32x32/apps/realplayer.pngUTlAux PKL1JoP o Hnuvola/32x32/apps/remote.pngUTlAux PKt91`Y g *nuvola/32x32/apps/samba.pngUTgUAux PK L19)|G G 큜5nuvola/32x32/apps/sodipodi.pngUTtlAux PK˞L1jS;?nuvola/32x32/apps/style.pngUTNlAux PK ОL1u 큌Gnuvola/32x32/apps/stylesheet.pngUTXlAux PK ӞL1MEOnuvola/32x32/apps/terminal.pngUT^lAux PKΩL>Tdd@Vnuvola/32x32/apps/Thumbs.dbUT$VMux PK ֞L1=vv큃@nuvola/32x32/apps/usb.pngUTdlAux PK L1`0Q]!LHnuvola/32x32/apps/window_list.pngUTzlAux PKT^=1g(?Onuvola/32x32/apps/winprops.pngUTpZAux PK L1rr큳Wnuvola/32x32/apps/x.pngUTlAux PK L1rrv`nuvola/32x32/apps/xapp.pngUTlAux PKt91; < C ASnuvola/32x32/devices/UT@VMux PK|A1-V g &큢nuvola/32x32/devices/3floppy_mount.pngUT]]Aux PK|A1Uk(Xnuvola/32x32/devices/3floppy_unmount.pngUT\]Aux PK |A1- 00&큒nuvola/32x32/devices/5floppy_mount.pngUT]]Aux PK |A1UA("nuvola/32x32/devices/5floppy_unmount.pngUT]]Aux PK t91{=yy$Ɣnuvola/32x32/devices/blockdevice.pngUTgUAux PK }A1n͔nuvola/32x32/devices/camera.pngUT4^]Aux PK|A1WyJ %֔nuvola/32x32/devices/camera_mount.pngUT]]Aux PK |A1n'ߔnuvola/32x32/devices/camera_unmount.pngUT]]Aux PKwN1_D ! &nuvola/32x32/devices/cdaudio_mount.pngUT2nAux PK |A1\22 2 (|nuvola/32x32/devices/cdaudio_unmount.pngUT]]Aux PK|A1_D ! $nuvola/32x32/devices/cdrom_mount.pngUT]]Aux PK |A1d;q &큄 nuvola/32x32/devices/cdrom_unmount.pngUT]]Aux PK|A1€Y  'qnuvola/32x32/devices/cdwriter_mount.pngUT]]Aux PK |A12!H)nuvola/32x32/devices/cdwriter_unmount.pngUT]]Aux PK|A1k룈 "'nuvola/32x32/devices/dvd_mount.pngUT|]]Aux PK|A1 h $큽4nuvola/32x32/devices/dvd_unmount.pngUTv]]Aux PK|A1Q&" @nuvola/32x32/devices/hdd_mount.pngUTr]]Aux PK |A1V $,Inuvola/32x32/devices/hdd_unmount.pngUTl]]Aux PK|A1(V,.큙Onuvola/32x32/devices/ipod.pngUTd]]Aux PK|A1v " !Wnuvola/32x32/devices/joystick.pngUT^]]Aux PK t91&L !큔anuvola/32x32/devices/ksim_cpu.pngUTgUAux PK|A1Fknuvola/32x32/devices/memory.pngUTT]]Aux PK|A1WT2 Z !Btnuvola/32x32/devices/mo_mount.pngUTP]]Aux PK|A1iu8 O #πnuvola/32x32/devices/mo_unmount.pngUTJ]]Aux PK |A1]:aadnuvola/32x32/devices/modem.pngUTD]]Aux PK}|A1&dhghnuvola/32x32/devices/mouse.pngUT>]]Aux PKz|A1[ 8  "ܛnuvola/32x32/devices/nfs_mount.pngUT8]]Aux PKx|A1@#$3nuvola/32x32/devices/nfs_unmount.pngUT4]]Aux PKu|A15:큮nuvola/32x32/devices/pda.pngUT.]]Aux PK s|A1&_"nuvola/32x32/devices/pda_black.pngUT*]]Aux PKp|A1a&"!nuvola/32x32/devices/pda_blue.pngUT$]]Aux PKm|A1HѢ ${ƕnuvola/32x32/devices/print_class.pngUT]]Aux PK j|A1qJ &큠ҕnuvola/32x32/devices/print_printer.pngUT]]Aux PKg|A1)eS Z ܕnuvola/32x32/devices/printer.pngUT]]Aux PK t91P!큋nuvola/32x32/devices/printer1.pngUTgUAux PKd|A1@;nuvola/32x32/devices/raid.pngUT ]]Aux PKt91i\3u $큺nuvola/32x32/devices/samba_mount.pngUTgUAux PK`|A1, f z &큸nuvola/32x32/devices/samba_unmount.pngUT]]Aux PK[|A1w8" ( ~nuvola/32x32/devices/scanner.pngUT\]Aux PKS|A1\# nuvola/32x32/devices/tablet.pngUT\]Aux PKL>y%nuvola/32x32/devices/Thumbs.dbUTFVMux PK|A1*^henuvola/32x32/devices/tv.pngUT]]Aux PK rA19 *Anuvola/32x32/devices/usbpendrive_mount.pngUTb]Aux PK nA1#,)nuvola/32x32/devices/usbpendrive_unmount.pngUTb]Aux PK|A1|~, 9 "$nuvola/32x32/devices/zip_mount.pngUT]]Aux PK |A1/t^$크nuvola/32x32/devices/zip_unmount.pngUT]]Aux PK L>A ɖnuvola/32x32/filesystems/UTVVMux PK t91-2__#^ɖnuvola/32x32/filesystems/camera.pngUTgUAux PK i=1I'іnuvola/32x32/filesystems/chardevice.pngUTZAux PK i=1> $9ږnuvola/32x32/filesystems/desktop.pngUTZAux PKi=1K:sx!Mnuvola/32x32/filesystems/exec.pngUTZAux PKh=1"8~(nuvola/32x32/filesystems/file_broken.pngUTzZAux PK i=1BN+nuvola/32x32/filesystems/file_important.pngUTZAux PK t91΀oo(znuvola/32x32/filesystems/file_locked.pngUTgUAux PKi=1Ѡz+Knuvola/32x32/filesystems/file_temporary.pngUTZAux PK/e=1(A| #큒nuvola/32x32/filesystems/folder.pngUTZZAux PKHB1(A| (vnuvola/32x32/filesystems/folder_blue.pngUTX^Aux PKHB1L7+-_&nuvola/32x32/filesystems/folder_blue_open.pngUTX^Aux PK,e=1 X e (큲/nuvola/32x32/filesystems/folder_cool.pngUTTZAux PK=1  (l<nuvola/32x32/filesystems/folder_cyan.pngUTZAux PK=1_ o -Hnuvola/32x32/filesystems/folder_cyan_open.pngUTZAux PK)e=1J  ,큑Rnuvola/32x32/filesystems/folder_download.pngUTNZAux PK&e=1[_ ( ,_nuvola/32x32/filesystems/folder_favorite.pngUTHZAux PK#e=1] (큁knuvola/32x32/filesystems/folder_font.pngUTBZAux PK e=1Sx6U )큾xnuvola/32x32/filesystems/folder_games.pngUTnuvola/32x32/filesystems/folder_print.pngUTZAux PKt91cuNz *GKnuvola/32x32/filesystems/folder_print2.pngUTgUAux PK =1 '%Wnuvola/32x32/filesystems/folder_red.pngUTzZAux PK٘=1q ,icnuvola/32x32/filesystems/folder_red_open.pngUTZAux PKAe=1U )klnuvola/32x32/filesystems/folder_sound.pngUTzZAux PKܕ=1lR1 R '^ynuvola/32x32/filesystems/folder_tar.pngUTZAux PK8e=1*aT  'nuvola/32x32/filesystems/folder_txt.pngUTlZAux PK5e=1q2 )1nuvola/32x32/filesystems/folder_video.pngUTfZAux PK.=1`  *Enuvola/32x32/filesystems/folder_violet.pngUTZAux PK֘=1tPM ^ /큟nuvola/32x32/filesystems/folder_violet_open.pngUTZAux PK0=11{ *Unuvola/32x32/filesystems/folder_yellow.pngUTLZAux PK=1~D/큦nuvola/32x32/filesystems/folder_yellow_open.pngUT`ZAux PKe=1q 큷ʘnuvola/32x32/filesystems/ftp.pngUT0ZAux PKg=1Mg!큂טnuvola/32x32/filesystems/link.pngUTZAux PKg=1x(*ۘnuvola/32x32/filesystems/lockoverlay.pngUTZAux PK֕=18  $ߘnuvola/32x32/filesystems/network.pngUTZAux PKg=1+*ynuvola/32x32/filesystems/network_local.pngUTܔZAux PK g=1O`XX!큁nuvola/32x32/filesystems/pipe.pngUT֔ZAux PK g=1 #4nuvola/32x32/filesystems/server.pngUTДZAux PK g=1Y,b [[%-nuvola/32x32/filesystems/services.pngUTȔZAux PKfe=15 # nuvola/32x32/filesystems/socket.pngUTZAux PKL>\p"nuvola/32x32/filesystems/Thumbs.dbUT^VMux PK=1]+bnuvola/32x32/filesystems/trashcan_empty.pngUTZAux PK=15,  *unuvola/32x32/filesystems/trashcan_full.pngUT ZAux PKVe=1_ 2 E ƙnuvola/32x32/filesystems/www.pngUTZAux PKy.="= ^әnuvola/32x32/filesystems/zip.pngUT>ux PK L>Aՙnuvola/32x32/mimetypes/UTrVMux PK ÍC1Jj&+֙nuvola/32x32/mimetypes/abiword_abi.pngUT`Aux PK C1ߟ׌!큊ݙnuvola/32x32/mimetypes/applix.pngUT`Aux PK C1F qnuvola/32x32/mimetypes/ascii.pngUT`Aux PK t91.dn큹nuvola/32x32/mimetypes/bc.pngUTgUAux PK C1W[!nuvola/32x32/mimetypes/binary.pngUT`Aux PK C1a6$%nuvola/32x32/mimetypes/cdbo_list.pngUT`Aux PKC1a+HX _ "Jnuvola/32x32/mimetypes/cdimage.pngUT`Aux PK C1,nuvola/32x32/mimetypes/cdr.pngUT`Aux PKC1ps ":nuvola/32x32/mimetypes/cdtrack.pngUT`Aux PKC1:># nuvola/32x32/mimetypes/colorscm.pngUTv`Aux PKC1:>##nuvola/32x32/mimetypes/colorset.pngUT`Aux PK C1<<+nuvola/32x32/mimetypes/core.pngUT`Aux PKC1 b0  큨1nuvola/32x32/mimetypes/deb.pngUT`Aux PKC1M6F#<nuvola/32x32/mimetypes/document.pngUT|`Aux PK C1՝£큄Enuvola/32x32/mimetypes/dvi.pngUTd`Aux PK C1,8!Knuvola/32x32/mimetypes/ebuild.pngUTV`Aux PK C16M [Snuvola/32x32/mimetypes/empty.pngUT\`Aux PK C1dB$Vnuvola/32x32/mimetypes/encrypted.pngUTN`Aux PK C1ꎡ$$^nuvola/32x32/mimetypes/exec_wine.pngUTH`Aux PKC1Q52큂enuvola/32x32/mimetypes/file_locked-[Converted].pngUTj`Aux PKt91aBv{}&mnuvola/32x32/mimetypes/file_locked.pngUTgUAux PKC1p )큮unuvola/32x32/mimetypes/file_temporary.pngUTp`Aux PK C1?^nuvola/32x32/mimetypes/font.pngUT@`Aux PK {C1"ٯ&nuvola/32x32/mimetypes/font_bitmap.pngUT:`Aux PK xC1^  (Rnuvola/32x32/mimetypes/font_truetype.pngUT4`Aux PK qC1Vf̓%nuvola/32x32/mimetypes/font_type1.pngUT&`Aux PK tC1i""5nuvola/32x32/mimetypes/gettext.pngUT,`Aux PK mC1}UC((큤nuvola/32x32/mimetypes/gf.pngUT`Aux PKjC1)#nuvola/32x32/mimetypes/gnome_app_info.pngUT`Aux PKfC1ڪnuvola/32x32/mimetypes/html.pngUT`Aux PK cC1{REE Rnuvola/32x32/mimetypes/image.pngUT `Aux PK ]C1^pp%nuvola/32x32/mimetypes/image_gimp.pngUT`Aux PK VC1sֵȚnuvola/32x32/mimetypes/info.pngUT`Aux PKZC1:o|"Кnuvola/32x32/mimetypes/install.pngUT`Aux PKRC1 ' #ٚnuvola/32x32/mimetypes/java_jar.pngUT`Aux PK NC1ؼv(Anuvola/32x32/mimetypes/karbon_karbon.pngUT`Aux PKJC1V+S Z &9nuvola/32x32/mimetypes/kchart_chrt.pngUT`Aux PK FC1ua'nuvola/32x32/mimetypes/kformula_kfo.pngUT`Aux PK BC1$nuvola/32x32/mimetypes/kget_list.pngUT`Aux PK8C1pNT"nuvola/32x32/mimetypes/kig_doc.pngUT`Aux PK=C1lU+$lnuvola/32x32/mimetypes/kivio_flw.pngUT`Aux PK C1ԯ\\$Ynuvola/32x32/mimetypes/kmultiple.pngUT`Aux PKC14)"nuvola/32x32/mimetypes/koffice.pngUTz`Aux PK C1ty*A%nuvola/32x32/mimetypes/kpovmodeler_doc.pngUTt`Aux PKC1$JW)[-nuvola/32x32/mimetypes/kpresenter_kpr.pngUTl`Aux PK C16M)6nuvola/32x32/mimetypes/krec_fileempty.pngUTd`Aux PK C1HCC(y9nuvola/32x32/mimetypes/krec_fileplay.pngUTR`Aux PK C1-'Bnuvola/32x32/mimetypes/krec_filerec.pngUT\`Aux PK C116 6 $cHnuvola/32x32/mimetypes/krita_kra.pngUTJ`Aux PKC1<&Qnuvola/32x32/mimetypes/kspread_ksp.pngUTD`Aux PKC1A~"= R $Znuvola/32x32/mimetypes/kugar_kud.pngUT*`Aux PK C1Q4$큉dnuvola/32x32/mimetypes/kugardata.pngUT`Aux PKC1?$큩knuvola/32x32/mimetypes/kword_kwd.pngUT`Aux PK یC1 AAsnuvola/32x32/mimetypes/log.pngUT`Aux PK،C1\znuvola/32x32/mimetypes/make.pngUT`Aux PK ԌC1%eRnuvola/32x32/mimetypes/man.pngUT`Aux PK͌C1ӈnlo"큗nuvola/32x32/mimetypes/message.pngUT`Aux PKьC1U/  #_nuvola/32x32/mimetypes/metafont.pngUT`Aux PK ɌC15큲nuvola/32x32/mimetypes/midi.pngUT`Aux PK C16M큱nuvola/32x32/mimetypes/mime.pngUT>`Aux PK C1,8&nuvola/32x32/mimetypes/mime_ebuild.pngUT$`Aux PKt91 %nuvola/32x32/mimetypes/mime_empty.pngUTgUAux PK ƌC1\'0nuvola/32x32/mimetypes/mime_koffice.pngUT`Aux PKÌC1N >#ynuvola/32x32/mimetypes/mime_lyx.pngUT`Aux PK t91Δ~$$[ěnuvola/32x32/mimetypes/mime_temp.pngUTgUAux PK C16M#큪țnuvola/32x32/mimetypes/misc_doc.pngUT8`Aux PKt91o4&̛nuvola/32x32/mimetypes/mozilla_doc.pngUTgUAux PK C1b@bb'ԛnuvola/32x32/mimetypes/netscape_doc.pngUT`Aux PK C14KN#ڛnuvola/32x32/mimetypes/ooo_calc.pngUT`Aux PK C1"٭^ ^ 'nuvola/32x32/mimetypes/ooo_calc_tpl.pngUT`Aux PK t91 *}}#nuvola/32x32/mimetypes/ooo_draw.pngUTgUAux PK C1@. . '큡nuvola/32x32/mimetypes/ooo_draw_tpl.pngUT`Aux PK t91&0nuvola/32x32/mimetypes/ooo_impress.pngUTgUAux PK C1###*큗nuvola/32x32/mimetypes/ooo_impress_tpl.pngUT`Aux PK C1pz $nuvola/32x32/mimetypes/ooo_setup.pngUT`Aux PK C1YvSS%nuvola/32x32/mimetypes/ooo_writer.pngUT`Aux PK C1Woo)큺"nuvola/32x32/mimetypes/ooo_writer_tpl.pngUT`Aux PKC1 _!KL 큌+nuvola/32x32/mimetypes/patch.pngUT`Aux PK C1%14nuvola/32x32/mimetypes/pdf.pngUT`Aux PK C1kt!  !nuvola/32x32/mimetypes/tar.pngUT`Aux PKC1)*j&nuvola/32x32/mimetypes/template_source.pngUT`Aux PK C1tݢ-nuvola/32x32/mimetypes/tex.pngUTJ`Aux PKC10W/ L 4nuvola/32x32/mimetypes/tgz.pngUT~`Aux PKL> T@nuvola/32x32/mimetypes/Thumbs.dbUTzVMux PK׋C1e npwXnuvola/32x32/mimetypes/txt.pngUT&`Aux PK C16M"=_nuvola/32x32/mimetypes/unknown.pngUT0`Aux PK rC1땟  $큧bnuvola/32x32/mimetypes/vcalendar.pngUTh`Aux PK bC1zi knuvola/32x32/mimetypes/vcard.pngUTH`Aux PK C1A$Mrnuvola/32x32/mimetypes/vectorgfx.pngUT`Aux PK OC1KT33 큜ynuvola/32x32/mimetypes/video.pngUT&`Aux PK LC1nѸ%)nuvola/32x32/mimetypes/widget_doc.pngUT `Aux PK C1bBWe)7nuvola/32x32/mimetypes/wordprocessing.pngUT`Aux PK vQB Anuvola/48x48/UT Qux PKvQB>qWn8nuvola/48x48/.DS_StoreUT Qux PK vQBAnuvola/48x48/actions/UT Qux PKDlN10'N #Enuvola/48x48/actions/1downarrow.pngUT0dnAux PKBlN1: #nuvola/48x48/actions/1leftarrow.pngUT,dnAux PK3lN1 $nuvola/48x48/actions/1rightarrow.pngUTdnAux PK2lN1?S Y !(nuvola/48x48/actions/1uparrow.pngUTdnAux PK0lN1q5W#ܶnuvola/48x48/actions/2downarrow.pngUT dnAux PK/lN1Kt-V#nŞnuvola/48x48/actions/2leftarrow.pngUT dnAux PK-lN1.Cq$Ӟnuvola/48x48/actions/2rightarrow.pngUTdnAux PK+lN1Ft< !큙nuvola/48x48/actions/2uparrow.pngUTdnAux PKt91 Ȏ>"nuvola/48x48/actions/about_kde.pngUTgUAux PKmN1[| ' 9nuvola/48x48/actions/apply.pngUTfnAux PK pB]X.pp'nuvola/48x48/actions/apply_multiple.pngUTPQux PKt91u!)S!nuvola/48x48/actions/artsaudiomanager.pngUTgUAux PKt91dgb&(큥4nuvola/48x48/actions/artsenvironment.pngUTgUAux PKt91` { 'Cnuvola/48x48/actions/artsmediatypes.pngUTgUAux PKkN1;(Onuvola/48x48/actions/artsmidimanager.pngUT~cnAux PKkN1oFB-a+큚nuvola/48x48/actions/bookmarks_list_add.pngUTbnAux PKkN1  ,ʟnuvola/48x48/actions/bottom.pngUTfcnAux PKmN1[| ' &큆֟nuvola/48x48/actions/button_accept.pngUTfnAux PKkN16ς3 &nuvola/48x48/actions/button_cancel.pngUTbnAux PKmN11%v ( "4nuvola/48x48/actions/button_ok.pngUTfnAux PKmN1[| ' $~nuvola/48x48/actions/camera_test.pngUTfnAux PKkN1u c8nuvola/48x48/actions/cancel.pngUTbnAux PKe:1 w>Bnuvola/48x48/actions/cd.pngUTVAux PKkN1$  #g%nuvola/48x48/actions/color_fill.pngUTbnAux PKkN1Ϊ$Ӽ #큿2nuvola/48x48/actions/color_line.pngUTbnAux PKnkN1P/["!>nuvola/48x48/actions/colorize.pngUTbnAux PKt91N/XK!Qnuvola/48x48/actions/compfile.pngUTgUAux PKlkN1;Y< Q "Ynuvola/48x48/actions/configure.pngUTbnAux PKWkN1F(E )큒enuvola/48x48/actions/connect_creating.pngUTvbnAux PKVkN1aq7_,:rnuvola/48x48/actions/connect_established.pngUTtbnAux PKTkN1'02N#׃nuvola/48x48/actions/connect_no.pngUTpbnAux PKjkN1C N 큂nuvola/48x48/actions/cut.pngUTbnAux PKikN1ê + "nuvola/48x48/actions/decrypted.pngUTbnAux PKkN1= C 큃nuvola/48x48/actions/down.pngUTbcnAux PKgkN1o_nuvola/48x48/actions/edit.pngUTbnAux PKkN1$ 0 !(ànuvola/48x48/actions/edit_add.pngUT`cnAux PKkN1gkr-$큧̠nuvola/48x48/actions/edit_remove.pngUT\cnAux PK \N1!2Ѡnuvola/48x48/actions/editcopy.pngUT`nAux PKt91KzR W R٠nuvola/48x48/actions/editcut.pngUTgUAux PKdkN1¡? M #nuvola/48x48/actions/editdelete.pngUTbnAux PKRkN1 "큚nuvola/48x48/actions/editpaste.pngUTlbnAux PKZN1S|"ynuvola/48x48/actions/editshred.pngUT\nAux PKiN1rcdf "Qnuvola/48x48/actions/edittrash.pngUTvnAux PKbkN1KO b "nuvola/48x48/actions/encrypted.pngUTbnAux PKmN1[| ' 큾nuvola/48x48/actions/endturn.pngUTfnAux PKpN1*h (nuvola/48x48/actions/exit.pngUTjjnAux PKpN1S:"8nuvola/48x48/actions/fileclose.pngUTfjnAux PKOkN1 5 J #큧Gnuvola/48x48/actions/fileexport.pngUTfbnAux PKakN1v 9Qnuvola/48x48/actions/filenew.pngUTbnAux PKt91&_- ^ !A]nuvola/48x48/actions/fileopen.pngUTgUAux PK N1f) ) "gnuvola/48x48/actions/fileprint.pngUT nAux PK[kN1=Z'Nunuvola/48x48/actions/filequickprint.pngUT~bnAux PKMkN1, C !jnuvola/48x48/actions/filesave.pngUTbbnAux PKKkN12'i"#nuvola/48x48/actions/filesaveas.pngUT^bnAux PKt917u7t nuvola/48x48/actions/fill.pngUTgUAux PKt91ds= K аnuvola/48x48/actions/find.pngUTgUAux PKkN1g dnuvola/48x48/actions/finish.pngUTXcnAux PKt91c #큄ơnuvola/48x48/actions/folder_new.pngUTgUAux PKkN1~. L Dԡnuvola/48x48/actions/forward.pngUTTcnAux PK N1`uA A #ߡnuvola/48x48/actions/frameprint.pngUT nAux PKYkN1lFjnuvola/48x48/actions/gohome.pngUTzbnAux PKIkN1<#6큚nuvola/48x48/actions/help.pngUTZbnAux PKEkN1=e  nuvola/48x48/actions/history.pngUTRbnAux PKCkN1;=&큞#nuvola/48x48/actions/history_clear.pngUTNbnAux PKBkN1;X& !큶<nuvola/48x48/actions/identity.pngUTLbnAux PKRlN1 m큒Hnuvola/48x48/actions/irkick.pngUTLdnAux PKkN1]h$X\nuvola/48x48/actions/irkickflash.pngUT|cnAux PKVlN1w"Jqnuvola/48x48/actions/irkickoff.pngUTTdnAux PK(kN1q / %}vnuvola/48x48/actions/kaboodleloop.pngUTbnAux PK&kN1z^nuvola/48x48/actions/kalarm.pngUTbnAux PK$kN121Cl(ݕnuvola/48x48/actions/kalarm_disabled.pngUTbnAux PK1kN1yJ &Pnuvola/48x48/actions/kdevelop_down.pngUT.bnAux PKt91Y "nuvola/48x48/actions/kgpg_edit.pngUTgUAux PKt91 Ѹ$nuvola/48x48/actions/kgpg_export.pngUTgUAux PKt91T!Ңnuvola/48x48/actions/kgpg_gen.pngUTgUAux PKt91& &;nuvola/48x48/actions/kgpg_identity.pngUTgUAux PKt91MS$;nuvola/48x48/actions/kgpg_import.pngUTgUAux PKt91wi  "큶nuvola/48x48/actions/kgpg_info.pngUTgUAux PKt91# "nuvola/48x48/actions/kgpg_key1.pngUTgUAux PKt91)tg" &nuvola/48x48/actions/kgpg_key2.pngUTgUAux PKt91fU/"큔6nuvola/48x48/actions/kgpg_key3.pngUTgUAux PKt918} #Jnuvola/48x48/actions/kgpg_photo.pngUTgUAux PKt91טv "Vnuvola/48x48/actions/kgpg_show.pngUTgUAux PKt91-}j|"bnuvola/48x48/actions/kgpg_sign.pngUTgUAux PKt914kIs"snuvola/48x48/actions/kgpg_term.pngUTgUAux PKt91;B}%~nuvola/48x48/actions/klipper_dock.pngUTgUAux PKpN1J#nuvola/48x48/actions/kmixdocked.pngUT`jnAux PKpN1&!`)nuvola/48x48/actions/kmixdocked_error.pngUT^jnAux PKpN1,}e (inuvola/48x48/actions/kmixdocked_mute.pngUTJjnAux PKpN1$O&0ǣnuvola/48x48/actions/laptop_charge.pngUTFjnAux PKpN1Oba )클ڣnuvola/48x48/actions/laptop_nobattery.pngUTDjnAux PKpN1I"(nuvola/48x48/actions/laptop_nocharge.pngUT@jnAux PK}oN12M\%~nuvola/48x48/actions/laptop_power.pngUT>jnAux PKt91jJ 큯nuvola/48x48/actions/ledblue.pngUTgUAux PK{oN17!f8!nuvola/48x48/actions/ledgreen.pngUT:jnAux PKzoN1 %1 nuvola/48x48/actions/ledlightblue.pngUT8jnAux PKxoN1^Y&.nuvola/48x48/actions/ledlightgreen.pngUT4jnAux PKwoN1f "L=nuvola/48x48/actions/ledorange.pngUT2jnAux PKqoN1¤ f"gKnuvola/48x48/actions/ledpurple.pngUT&jnAux PKloN1Tyl 큛[nuvola/48x48/actions/ledred.pngUTjnAux PKjoN1\\ x "zhnuvola/48x48/actions/ledyellow.pngUTjnAux PKhoN1vb2unuvola/48x48/actions/lock.pngUTjnAux PKkN1s/<$네nuvola/48x48/actions/mail_delete.pngUTcnAux PKkN1["xnuvola/48x48/actions/mail_find.pngUTcnAux PKAlN1}%inuvola/48x48/actions/mail_forward.pngUT*dnAux PK؍N1F%ùnuvola/48x48/actions/mail_generic.pngUThnAux PK5lN1[!ʤnuvola/48x48/actions/mail_get.pngUTdnAux PKt91Ig & !~ݤnuvola/48x48/actions/mail_new.pngUTgUAux PKt917+  %nuvola/48x48/actions/mail_post_to.pngUTgUAux PK7lN1yJk#nnuvola/48x48/actions/mail_reply.pngUTdnAux PK=lN1F&6nuvola/48x48/actions/mail_replyall.pngUT&dnAux PKPlN1sG4N"큯nuvola/48x48/actions/mail_send.pngUTHdnAux PKHlN1J v &?'nuvola/48x48/actions/make_kdevelop.pngUT8dnAux PK#lN18(Bs,3nuvola/48x48/actions/messagebox_critical.pngUTcnAux PKdoN1ב(큑Bnuvola/48x48/actions/messagebox_info.pngUT jnAux PKElN1ff +큡Qnuvola/48x48/actions/messagebox_warning.pngUT2dnAux PKt918큘^nuvola/48x48/actions/misc.pngUTgUAux PKpN1!큚rnuvola/48x48/actions/mix_midi.pngUThknAux PK"kN1V=8#|ynuvola/48x48/actions/mix_recmon.pngUTbnAux PK kN1Qr$큷~nuvola/48x48/actions/mix_unknown.pngUT bnAux PKkN1ŌWw#fnuvola/48x48/actions/mix_volume.pngUTbnAux PK i:1Up qnuvola/48x48/actions/mouse.pngUTLVAux PK kN1(% 큘nuvola/48x48/actions/newfont.pngUTanAux PKkN1,M'nuvola/48x48/actions/news_subscribe.pngUTbnAux PKkN1[O)gnuvola/48x48/actions/news_unsubscribe.pngUTbnAux PK=N1 ϥnuvola/48x48/actions/next.pngUTnAux PKt91Up> ٥nuvola/48x48/actions/no.pngUTgUAux PKt91+uz'nuvola/48x48/actions/noatunloopsong.pngUTgUAux PKmN1[| ' nuvola/48x48/actions/ok.pngUTfnAux PKkN13 S !?nuvola/48x48/actions/openterm.pngUTanAux PKt91 P  nuvola/48x48/actions/pencil.pngUTgUAux PKpN1|=nuvola/48x48/actions/piano.pngUTdknAux PKkN1Ӊٿ%"nuvola/48x48/actions/player_eject.pngUTanAux PKkN1K ' #5+nuvola/48x48/actions/player_end.pngUTanAux PKkN1# : #큦6nuvola/48x48/actions/player_fwd.pngUTanAux PKkN1?A%Dnuvola/48x48/actions/player_pause.pngUTanAux PK/kN1a3 $&Jnuvola/48x48/actions/player_play.pngUT*bnAux PK.kN1땳 #gTnuvola/48x48/actions/player_rev.pngUT(bnAux PKt91Fk/ S #~anuvola/48x48/actions/player_rew.pngUTgUAux PK+kN1` % mnuvola/48x48/actions/player_start.pngUT"bnAux PK*kN1Ǣ$5xnuvola/48x48/actions/player_stop.pngUT bnAux PKt91^|{nuvola/48x48/actions/power.pngUTgUAux PK=N1: !nnuvola/48x48/actions/previous.pngUTnAux PKt91_ %큏nuvola/48x48/actions/project_open.pngUTgUAux PKt91,2w qnuvola/48x48/actions/queue.pngUTgUAux PK t919zR@nuvola/48x48/actions/quiz.pngUTgUAux PKkN1eX nnuvola/48x48/actions/rebuild.pngUTanAux PKt91 knuvola/48x48/actions/redo.pngUTgUAux PKkN1[A;u큪Ǧnuvola/48x48/actions/reload.pngUTPcnAux PKkN1PIY(xئnuvola/48x48/actions/reload_all_tabs.pngUTLcnAux PKkN1 J?Z$#nuvola/48x48/actions/reload_page.pngUTDcnAux PKkN1 `mnuvola/48x48/actions/revert.pngUTanAux PKkN1a<1Y}큆 nuvola/48x48/actions/roll.pngUTanAux PKkN1! @ 6nuvola/48x48/actions/rotate.pngUTBcnAux PKkN1! @ #큡#nuvola/48x48/actions/rotate_ccw.pngUT>cnAux PKkN1:4 ".nuvola/48x48/actions/rotate_cw.pngUT0cnAux PKkN1GCC c *8nuvola/48x48/actions/run.pngUTanAux PKkN1Mݦ(=!Dnuvola/48x48/actions/save_all.pngUTanAux PK jN1*? ? "FSnuvola/48x48/actions/signature.pngUTanAux PK\oN1 `x #\nuvola/48x48/actions/spellcheck.pngUTjnAux PKkN1$Y" ; 큶hnuvola/48x48/actions/start.pngUT,cnAux PKkN1&v'a0tnuvola/48x48/actions/stop.pngUT*cnAux PKjN1h 2 &큮nuvola/48x48/actions/tab_duplicate.pngUTanAux PKjN1A(ZJ R юnuvola/48x48/actions/tab_new.pngUTanAux PKjN1; 'unuvola/48x48/actions/tab_new_raised.pngUTanAux PKjN1ZӶ #큄nuvola/48x48/actions/tab_remove.pngUTanAux PKjN1" "큗nuvola/48x48/actions/thumbnail.pngUTanAux PKvkO1h6#ᾧnuvola/48x48/actions/toggle_log.pngUT0oAux PKkN1p ϧnuvola/48x48/actions/top.pngUT&cnAux PKt91Z$X ] ڧnuvola/48x48/actions/undo.pngUTgUAux PKkN1ȵ xnuvola/48x48/actions/up.pngUT cnAux PKkN1l_G $큒nuvola/48x48/actions/view_bottom.pngUTcnAux PKkN1M% C $~nuvola/48x48/actions/view_choose.pngUTcnAux PKkN1C & nuvola/48x48/actions/view_detailed.pngUTcnAux PKkN1f5 ( nuvola/48x48/actions/view_fullscreen.pngUTcnAux PKkN1 G3 Q " nuvola/48x48/actions/view_icon.pngUTcnAux PKkN1Sb(큒,nuvola/48x48/actions/view_left_right.pngUTcnAux PKkN1r8 V )G5nuvola/48x48/actions/view_multicolumn.pngUTcnAux PKkN1 *Anuvola/48x48/actions/view_nofullscreen.pngUTcnAux PKkN1ɪ+8$7Mnuvola/48x48/actions/view_remove.pngUTbnAux PKkN1i #Tnuvola/48x48/actions/view_right.pngUTbnAux PKkN12آ &bnuvola/48x48/actions/view_sidetree.pngUTbnAux PKkN12; D "mnuvola/48x48/actions/view_text.pngUTbnAux PKkN1Z((큇wnuvola/48x48/actions/view_top_bottom.pngUTbnAux PKkN1MFL p "nuvola/48x48/actions/view_tree.pngUTbnAux PKjN1 /!큠nuvola/48x48/actions/viewmag+.pngUTanAux PKjN1b!nuvola/48x48/actions/viewmag-.pngUTanAux PKjN1/^[ - Bnuvola/48x48/actions/viewmag.pngUTanAux PKjN1Oa,!큥nuvola/48x48/actions/viewmag1.pngUTanAux PKjN1\b#Ϩnuvola/48x48/actions/viewmagfit.pngUTanAux PKkN1+ #큶nuvola/48x48/actions/window_new.pngUTbnAux PKjN1K nuvola/48x48/actions/wizard.pngUTxanAux PK mL>Anuvola/48x48/apps/UTVMux PKF1d~U Bnuvola/48x48/apps/access.pngUT"MdAux PKD1g*}; nuvola/48x48/apps/acroread.pngUTX^aAux PKF1y큽 nuvola/48x48/apps/agent.pngUTMdAux PK t91#*{ { 큋0nuvola/48x48/apps/aktion.pngUTgUAux PKF1d\:nuvola/48x48/apps/amarok.pngUT MdAux PK.N1$~ HLnuvola/48x48/apps/amor.pngUT8mAux PKF1k' }Znuvola/48x48/apps/applixware.pngUTMdAux PK5WG1' _bnuvola/48x48/apps/ark.pngUTeAux PK2WG1V7큞rnuvola/48x48/apps/arts.pngUTeAux PK.WG12:!Ձnuvola/48x48/apps/artsbuilder.pngUTeAux PK+WG10[!큵nuvola/48x48/apps/artscontrol.pngUTeAux PKe:12_%@nuvola/48x48/apps/artsmidimanager.pngUTΝVAux PK'WG1DhhѺnuvola/48x48/apps/atlantik.pngUTeAux PK WG1C  큑˩nuvola/48x48/apps/background.pngUTeAux PKWG1cS~کnuvola/48x48/apps/bell.pngUTeAux PK t91PIjnuvola/48x48/apps/bookcase.pngUTgUAux PKfE1<큾nuvola/48x48/apps/browser.pngUT}bAux PKWG1ή<큺nuvola/48x48/apps/bug.pngUTeAux PK#WG13<  nuvola/48x48/apps/cache.pngUTeAux PKWG1Bw'*X )nuvola/48x48/apps/chat.pngUTeAux PKWG1 5 큇:nuvola/48x48/apps/clanbomber.pngUTeAux PKWG16J^Enuvola/48x48/apps/clock.pngUTeAux PKkG1*dVuYnuvola/48x48/apps/colors.pngUT(eAux PKkG1y"nknuvola/48x48/apps/cookie.pngUT(eAux PKVG1 5 Oznuvola/48x48/apps/core.pngUTeAux PKkG1MʛEg큎nuvola/48x48/apps/date.pngUT(eAux PKkG1H9 'nuvola/48x48/apps/designer.pngUT~(eAux PK[oG1 ƫ(nuvola/48x48/apps/digikam.pngUT~/eAux PKkG1wK *nuvola/48x48/apps/display.pngUTx(eAux PKkG1 &oªnuvola/48x48/apps/download_manager.pngUT(eAux PKToG1" #Ϊnuvola/48x48/apps/edu_languages.pngUTp/eAux PKNoG1k  %큣nuvola/48x48/apps/edu_mathematics.pngUTd/eAux PKt91#e'mnuvola/48x48/apps/edu_miscellaneous.pngUTgUAux PKQoG1!z\{!3nuvola/48x48/apps/edu_science.pngUTj/eAux PK.G1 MLJ] nuvola/48x48/apps/emacs.pngUT|eAux PK)G1- A 큉nuvola/48x48/apps/email.pngUT{eAux PKKoG122}  ,nuvola/48x48/apps/energy.pngUT^/eAux PKfoG1fz\ '=>nuvola/48x48/apps/enhanced_browsing.pngUT/eAux PKcoG1}]X}Knuvola/48x48/apps/error.pngUT/eAux PKpG1z4큧]nuvola/48x48/apps/evolution.pngUT|eAux PKڛG1l ~ "rnuvola/48x48/apps/file-manager.pngUTL}eAux PKwG1ARb큶Inuvola/48x48/apps/kivio.pngUTgUAux PKfE1܊| ]Ynuvola/48x48/apps/kjobviewer.pngUT.}bAux PKKN17HƲ Einuvola/48x48/apps/kjots.pngUTnmAux PKpH1@Lunuvola/48x48/apps/klettres.pngUTfAux PK t91 ^$ $ &}nuvola/48x48/apps/klipper.pngUTgUAux PKfE1܊|큡nuvola/48x48/apps/klpq.pngUT.}bAux PKHN1*S4Z큃nuvola/48x48/apps/kmag.pngUThmAux PKpH1P y  nuvola/48x48/apps/kmahjong.pngUTfAux PKpH1F큳nuvola/48x48/apps/kmail.pngUT܂fAux PKbG1n큮Ȱnuvola/48x48/apps/kmenu.pngUTh|eAux PKpH1 Hܳqݰnuvola/48x48/apps/kmenuedit.pngUTʂfAux PKt91="큱nuvola/48x48/apps/kmessedwords.pngUTgUAux PK8sH1Jnuvola/48x48/apps/kmid.pngUTLfAux PKpH1=rnuvola/48x48/apps/kmines.pngUT҂fAux PKQsH1 {)nuvola/48x48/apps/kmix.pngUTzfAux PKSsH1ه('nuvola/48x48/apps/kmoon.pngUT~fAux PKDN1lju<M C7nuvola/48x48/apps/kmousetool.pngUT`mAux PKWsH1b 큷Enuvola/48x48/apps/kmplot.pngUTfAux PKt91rc!Qnuvola/48x48/apps/knewsticker.pngUTgUAux PK[sH1dBbnuvola/48x48/apps/knode.pngUTfAux PKpH1h< %rnuvola/48x48/apps/knotes.pngUTpfAux PKgG1p (l!nuvola/48x48/apps/knotify.pngUTr|eAux PKt91W!Wi䒱nuvola/48x48/apps/kolf.pngUTgUAux PKD N1v0!큡nuvola/48x48/apps/kolourpaint.pngUTmAux PK t91#*{ { -nuvola/48x48/apps/konqsidebar_mediaplayer.pngUTgUAux PKGL1@Nټnuvola/48x48/apps/konqueror.pngUT6lAux PKL1'fXH`큀Աnuvola/48x48/apps/konquest.pngUTlAux PK|L10!-X l  nuvola/48x48/apps/konsole.pngUTlAux PKxL1Xnuvola/48x48/apps/kontact.pngUTlAux PKuL1pwRc~nuvola/48x48/apps/kooka.pngUTlAux PK2tH1n$ T%nuvola/48x48/apps/kopete.pngUT fAux PKt91 L 큆'nuvola/48x48/apps/korganizer.pngUTgUAux PKt91 L%@nuvola/48x48/apps/korganizer_todo.pngUTgUAux PKrL1[K < Znuvola/48x48/apps/korn.pngUTlAux PKpL1ᙈ& 7 jmnuvola/48x48/apps/kpackage.pngUTlAux PKL1]"Fd znuvola/48x48/apps/kpager.pngUTlAux PKmL1v0큢nuvola/48x48/apps/kpaint.pngUT~lAux PKAN1s?$anuvola/48x48/apps/kpdf.pngUTZmAux PKt91cpJu!큨nuvola/48x48/apps/kpercentage.pngUTgUAux PKiL1e}7!Mx²nuvola/48x48/apps/kpilot.pngUTvlAux PKfL1 C !вnuvola/48x48/apps/kpovmodeler.pngUTplAux PKXL1\G޲nuvola/48x48/apps/kppp.pngUTXlAux PKt91(7 w fnuvola/48x48/apps/kpresenter.pngUTgUAux PKpH1ѱ nuvola/48x48/apps/krdc.pngUTfAux PKqH1۹ 4nuvola/48x48/apps/krec.pngUT(fAux PKpH1AȮ rnuvola/48x48/apps/kreversi.pngUTfAux PK;^=1-}xnuvola/48x48/apps/krfb.pngUTBZAux PKqH1l큍3nuvola/48x48/apps/krita.pngUT.fAux PK qH1\My 큼Gnuvola/48x48/apps/kruler.pngUT4fAux PKqH1L}_$G큋Rnuvola/48x48/apps/kscd.pngUTFfAux PKqH1.K3 E "enuvola/48x48/apps/kscreensaver.pngUTPfAux PKt91 큒qnuvola/48x48/apps/kservices.pngUTgUAux PK"qH1?֔8L s 큚nuvola/48x48/apps/kshisen.pngUT`fAux PK9N1( =nuvola/48x48/apps/ksig.pngUTNmAux PKqH1-Unuvola/48x48/apps/ksim.pngUTXfAux PKWG1^jynuvola/48x48/apps/ksirc.pngUTeAux PKRL1Hkp8Ƴnuvola/48x48/apps/ksnapshot.pngUTLlAux PKL1`& M ճnuvola/48x48/apps/ksplash.pngUTlAux PKL1Ŵ ~nuvola/48x48/apps/ksysv.pngUTlAux PK L1 '#C큎nuvola/48x48/apps/kteatime.pngUTlAux PKL1dF nuvola/48x48/apps/kthememgr.pngUTlAux PKL1+3f0Tznuvola/48x48/apps/ktimer.pngUTlAux PKL1s@F w !nuvola/48x48/apps/ktip.pngUTlAux PKL1Vr 큚,nuvola/48x48/apps/ktouch.pngUTlAux PKOL15b:nuvola/48x48/apps/kugar.pngUTFlAux PKLL1-8 큢Onuvola/48x48/apps/kuickshow.pngUT@lAux PKL1x'^큾anuvola/48x48/apps/kuser.pngUTlAux PKL1er &wnuvola/48x48/apps/kverbos.pngUTlAux PK`oG1͡#nuvola/48x48/apps/kview.pngUT/eAux PKt9188nuvola/48x48/apps/kweather.pngUTgUAux PKt910_ % nuvola/48x48/apps/kwikdisk.pngUTgUAux PKt91;~]nuvola/48x48/apps/kwin.pngUTgUAux PKt91lC? [ /nuvola/48x48/apps/kwin4.pngUTgUAux PKt91W5^ɴnuvola/48x48/apps/kword.pngUTgUAux PKxL1=!Mٴnuvola/48x48/apps/kworldclock.pngUTlAux PK]=17z_}~nuvola/48x48/apps/kwrite.pngUTZAux PKL1Qnuvola/48x48/apps/kxkb.pngUTlAux PKL1$rnuvola/48x48/apps/laptop_battery.pngUTlAux PKL1ѝyIu#Xnuvola/48x48/apps/laptop_pcmcia.pngUTlAux PKL1/l6,nuvola/48x48/apps/licq.pngUTlAux PKL1Cn  T@nuvola/48x48/apps/locale.pngUTlAux PKt91@@ G큟Lnuvola/48x48/apps/looknfeel.pngUTgUAux PKt91Mmb&`nuvola/48x48/apps/mozilla-firebird.pngUTgUAux PKt91/wP)wnuvola/48x48/apps/mozilla-thunderbird.pngUTgUAux PKt91큻nuvola/48x48/apps/mozilla.pngUTgUAux PKL1ʠ| ęnuvola/48x48/apps/mplayer.pngUTlAux PKL1g 큗nuvola/48x48/apps/multimedia.pngUTlAux PKt91E@ }nuvola/48x48/apps/mycomputer.pngUTgUAux PKt91kh qʵnuvola/48x48/apps/netscape.pngUTgUAux PKN1V}{׵nuvola/48x48/apps/network.pngUTnAux PKt91_V] w (nuvola/48x48/apps/noatun.pngUTgUAux PK6N1xa(nuvola/48x48/apps/ooo_gulls.pngUTHmAux PK3N15w#@5nuvola/48x48/apps/ooo_setup.pngUTBmAux PK9L1E큱nuvola/48x48/apps/opera.pngUTlAux PKt91yph@x(nuvola/48x48/apps/package.pngUTgUAux PKnD1+0 7 *큫7nuvola/48x48/apps/package_applications.pngUT]aAux PKvD1W9O)?Enuvola/48x48/apps/package_development.pngUT]aAux PKD1ᒕV%Tnuvola/48x48/apps/package_editors.pngUT]aAux PKD1?Rw)큐hnuvola/48x48/apps/package_edutainment.pngUT]aAux PK/sH1AZ8 &Eznuvola/48x48/apps/package_favorite.pngUT:fAux PKD1<'M#큃nuvola/48x48/apps/package_games.pngUT^aAux PKD1$H *nuvola/48x48/apps/package_games_arcade.pngUT^aAux PKD1\})nuvola/48x48/apps/package_games_board.pngUT ^aAux PK1N1/,큱nuvola/48x48/apps/package_games_strategy.pngUT>mAux PKD1Wd<e&큝önuvola/48x48/apps/package_graphics.pngUT(^aAux PKD1E#(9ֶnuvola/48x48/apps/package_multimedia.pngUT.^aAux PKD1<%4nuvola/48x48/apps/package_network.pngUT4^aAux PKD1*:3j&8nuvola/48x48/apps/package_settings.pngUT:^aAux PKD1\$nuvola/48x48/apps/package_system.pngUT@^aAux PKD1=l.Hs"*nuvola/48x48/apps/package_toys.pngUTD^aAux PKD1Fmy'Anuvola/48x48/apps/package_utilities.pngUTP^aAux PKkD1gg% ,큖Rnuvola/48x48/apps/package_wordprocessing.pngUT]aAux PK؞L1X % dnuvola/48x48/apps/password.pngUThlAux PK۞L1hLYrnuvola/48x48/apps/personal.pngUTnlAux PKfE1܊|ńnuvola/48x48/apps/printmgr.pngUT.}bAux PKL1 = 큫nuvola/48x48/apps/randr.pngUTlAux PKL17b ܡnuvola/48x48/apps/realplayer.pngUTlAux PKL1Tenuvola/48x48/apps/remote.pngUTlAux PKt91x(큶ķnuvola/48x48/apps/samba.pngUTgUAux PKL1?) ַnuvola/48x48/apps/sodipodi.pngUTtlAux PK˞L1 LB h nuvola/48x48/apps/style.pngUTNlAux PKОL1vF) N dnuvola/48x48/apps/stylesheet.pngUTXlAux PKҞL1M nuvola/48x48/apps/terminal.pngUT\lAux PK՞L1w  ' nuvola/48x48/apps/usb.pngUTblAux PKL1Oy 4 !nuvola/48x48/apps/window_list.pngUTzlAux PKT^=1 큕nuvola/48x48/apps/winprops.pngUTpZAux PKL14m )nuvola/48x48/apps/x.pngUTlAux PKL14m 7nuvola/48x48/apps/xapp.pngUTlAux PK }91w-aXFnuvola/48x48/apps/xcalc.pngUTLvUAux PK}L1HonYWnuvola/48x48/apps/xclock.pngUTlAux PKL14m nnuvola/48x48/apps/xconfig.pngUTlAux PKt91ʰ"J큎|nuvola/48x48/apps/xemacs.pngUTgUAux PKt91Ř4͍nuvola/48x48/apps/xfmail.pngUTgUAux PK4sH1[Znuvola/48x48/apps/xmag.pngUTDfAux PK mL>A쭸nuvola/48x48/devices/UTVMux PK t91A@!!;nuvola/48x48/devices/.directoryUTgUAux PK|A1ż2&큵nuvola/48x48/devices/3floppy_mount.pngUT]]Aux PK |A1Dl (nuvola/48x48/devices/3floppy_unmount.pngUTb\]Aux PK|A1i &ȸnuvola/48x48/devices/5floppy_mount.pngUT]]Aux PK|A1&ps(큲ָnuvola/48x48/devices/5floppy_unmount.pngUT]]Aux PKt910_ % $큄߸nuvola/48x48/devices/blockdevice.pngUTgUAux PK}A11e]  nuvola/48x48/devices/camera.pngUT4^]Aux PK|A1+\Ϙ%nuvola/48x48/devices/camera_mount.pngUT]]Aux PK|A1  ' nuvola/48x48/devices/camera_unmount.pngUT]]Aux PKN1~&Tnuvola/48x48/devices/cdaudio_mount.pngUT^nAux PK|A1$;o(2)nuvola/48x48/devices/cdaudio_unmount.pngUT]]Aux PK|A1~$=nuvola/48x48/devices/cdrom_mount.pngUT]]Aux PK|A1E0&큫Qnuvola/48x48/devices/cdrom_unmount.pngUT]]Aux PK|A1~'anuvola/48x48/devices/cdwriter_mount.pngUT]]Aux PK|A1>s#0)큾snuvola/48x48/devices/cdwriter_unmount.pngUT]]Aux PK|A1A ["Dnuvola/48x48/devices/dvd_mount.pngUT|]]Aux PK|A1$n$nuvola/48x48/devices/dvd_unmount.pngUTv]]Aux PK|A1do 5"ѫnuvola/48x48/devices/hdd_mount.pngUTr]]Aux PK|A1x&٣$)nuvola/48x48/devices/hdd_unmount.pngUTl]]Aux PK|A1pY6 Kùnuvola/48x48/devices/ipod.pngUTd]]Aux PK|A1pv!&Ϲnuvola/48x48/devices/joystick.pngUT^]]Aux PKt911!k߹nuvola/48x48/devices/ksim_cpu.pngUTgUAux PK|A1Ynuvola/48x48/devices/memory.pngUTT]]Aux PK|A1`9!*nuvola/48x48/devices/mo_mount.pngUTN]]Aux PK|A1/Y#knuvola/48x48/devices/mo_unmount.pngUTJ]]Aux PK|A1eZ 3 !)nuvola/48x48/devices/modem.pngUTB]]Aux PK}|A1vWJIt3nuvola/48x48/devices/mouse.pngUT>]]Aux PKz|A1JZ*L"Anuvola/48x48/devices/nfs_mount.pngUT8]]Aux PKw|A1` $fRnuvola/48x48/devices/nfs_unmount.pngUT2]]Aux PKu|A1ˣ6 큃^nuvola/48x48/devices/pda.pngUT.]]Aux PKr|A14e "zinuvola/48x48/devices/pda_black.pngUT(]]Aux PKo|A1hQ+A & !funuvola/48x48/devices/pda_blue.pngUT"]]Aux PKl|A1LI[~$큽nuvola/48x48/devices/print_class.pngUT]]Aux PKi|A1N^p&vnuvola/48x48/devices/print_printer.pngUT]]Aux PKg|A1܊| 4nuvola/48x48/devices/printer.pngUT]]Aux PKt91,j!nuvola/48x48/devices/printer1.pngUTgUAux PKd|A1~ Yúnuvola/48x48/devices/raid.pngUT ]]Aux PKt91)$.Ϻnuvola/48x48/devices/samba_mount.pngUTgUAux PK`|A1CQ&?nuvola/48x48/devices/samba_unmount.pngUT]]Aux PK[|A19QY 큾nuvola/48x48/devices/scanner.pngUT\]Aux PKS|A1inuvola/48x48/devices/tablet.pngUT\]Aux PK|A1i9_ 큉nuvola/48x48/devices/tv.pngUT]]Aux PKrA1%#*=#nuvola/48x48/devices/usbpendrive_mount.pngUTb]Aux PKmA1 ,]3nuvola/48x48/devices/usbpendrive_unmount.pngUTb]Aux PK|A1p8`"i>nuvola/48x48/devices/zip_mount.pngUT]]Aux PK|A17ϼ 0 $Lnuvola/48x48/devices/zip_unmount.pngUT]]Aux PK nL>AkWnuvola/48x48/filesystems/UTVMux PKt91~ #큾Wnuvola/48x48/filesystems/camera.pngUTgUAux PKi=1x#L_'큙cnuvola/48x48/filesystems/chardevice.pngUTZAux PKi=1PPF$Frnuvola/48x48/filesystems/desktop.pngUTZAux PKi=1>j] !}nuvola/48x48/filesystems/exec.pngUTZAux PKh=1QJB _ (5nuvola/48x48/filesystems/file_broken.pngUTxZAux PK i=1jsjs +٠nuvola/48x48/filesystems/file_important.pngUTZAux PKt91-d (큱nuvola/48x48/filesystems/file_locked.pngUTgUAux PKi=1To+䶻nuvola/48x48/filesystems/file_temporary.pngUTZAux PK/e=1 /#Żnuvola/48x48/filesystems/folder.pngUTZZAux PK=B1 /(큼ػnuvola/48x48/filesystems/folder_blue.pngUTF^Aux PK=B1,-큝nuvola/48x48/filesystems/folder_blue_open.pngUTF^Aux PK,e=1n(큔nuvola/48x48/filesystems/folder_cool.pngUTTZAux PK=1 >t(dnuvola/48x48/filesystems/folder_cyan.pngUT ZAux PK=1A-:#nuvola/48x48/filesystems/folder_cyan_open.pngUTZAux PK)e=1Z=,u3nuvola/48x48/filesystems/folder_download.pngUTNZAux PK&e=1nX,zGnuvola/48x48/filesystems/folder_favorite.pngUTHZAux PK#e=1/0u(c[nuvola/48x48/filesystems/folder_font.pngUTBZAux PKe=1():qnuvola/48x48/filesystems/folder_games.pngUT:ZAux PK=1B  )큉nuvola/48x48/filesystems/folder_green.pngUTZAux PK=114.֚nuvola/48x48/filesystems/folder_green_open.pngUTZAux PK=1w{P(Ѫnuvola/48x48/filesystems/folder_grey.pngUTZAux PK=1җ B-뼼nuvola/48x48/filesystems/folder_grey_open.pngUTZAux PKe=1'w(L˼nuvola/48x48/filesystems/folder_home.pngUTZAux PKe=1y+7g(%߼nuvola/48x48/filesystems/folder_html.pngUT4ZAux PK\e=1_q)큾nuvola/48x48/filesystems/folder_image.pngUTZAux PKYe=14`c-큒nuvola/48x48/filesystems/folder_important.pngUTZAux PKce=1^베*\nuvola/48x48/filesystems/folder_locked.pngUTZAux PKPe=1eK}(`1nuvola/48x48/filesystems/folder_mail.pngUTZAux PKMe=1+OI' Dnuvola/48x48/filesystems/folder_man.pngUTZAux PKJe=1<;(큷Ynuvola/48x48/filesystems/folder_midi.pngUTZAux PK=1,(/lnuvola/48x48/filesystems/folder_open.pngUTjZAux PK=1% 9*!{nuvola/48x48/filesystems/folder_orange.pngUTZAux PKܘ=1ʁ $/큑nuvola/48x48/filesystems/folder_orange_open.pngUTZAux PKGe=1)^)̜nuvola/48x48/filesystems/folder_photo.pngUTZAux PKDe=1ҝ F)Xnuvola/48x48/filesystems/folder_print.pngUTZAux PKt91׊*Ľnuvola/48x48/filesystems/folder_print2.pngUTgUAux PK =1R'ڽnuvola/48x48/filesystems/folder_red.pngUTzZAux PK٘=1eR,y,@nuvola/48x48/filesystems/folder_red_open.pngUTZAux PKAe=1Հ$o)nuvola/48x48/filesystems/folder_sound.pngUTzZAux PKە=1Pӈ'Ynuvola/48x48/filesystems/folder_tar.pngUTZAux PK8e=1JH'큣&nuvola/48x48/filesystems/folder_txt.pngUTlZAux PK5e=1a  )L<nuvola/48x48/filesystems/folder_video.pngUTfZAux PK-=1ecY*큘Onuvola/48x48/filesystems/folder_violet.pngUTZAux PK՘=1>Cr5/Ucnuvola/48x48/filesystems/folder_violet_open.pngUTZAux PK/=1fxDk5^*Nsnuvola/48x48/filesystems/folder_yellow.pngUTJZAux PK=1A&o/熾nuvola/48x48/filesystems/folder_yellow_open.pngUT`ZAux PKe=1{CC vnuvola/48x48/filesystems/ftp.pngUT0ZAux PKg=1YL}U!큼nuvola/48x48/filesystems/link.pngUTZAux PKg=1"W1(nuvola/48x48/filesystems/lockoverlay.pngUTZAux PK֕=1V}$큖nuvola/48x48/filesystems/network.pngUTZAux PKg=1>& < *Jɾnuvola/48x48/filesystems/network_local.pngUTܔZAux PK g=1lo !վnuvola/48x48/filesystems/pipe.pngUT֔ZAux PKg=1x #큿߾nuvola/48x48/filesystems/server.pngUTДZAux PKg=1 5 %큼nuvola/48x48/filesystems/services.pngUTƔZAux PKfe=1N#*nuvola/48x48/filesystems/socket.pngUTZAux PK=12 +[nuvola/48x48/filesystems/trashcan_empty.pngUTZAux PK=1 KD*snuvola/48x48/filesystems/trashcan_full.pngUTZAux PKVe=1\ux PK oL>ABInuvola/48x48/mimetypes/UTVMux PKÍC1_; @ &큓Inuvola/48x48/mimetypes/abiword_abi.pngUT`Aux PKC1(|!.Unuvola/48x48/mimetypes/applix.pngUT`Aux PK C1%O ^nuvola/48x48/mimetypes/ascii.pngUT`Aux PK t91m _dnuvola/48x48/mimetypes/bc.pngUTgUAux PKC1>  !Lpnuvola/48x48/mimetypes/binary.pngUT`Aux PKC1 :Q$L{nuvola/48x48/mimetypes/cdbo_list.pngUT`Aux PKC18e"䉿nuvola/48x48/mimetypes/cdimage.pngUT`Aux PKC1x nuvola/48x48/mimetypes/cdr.pngUT`Aux PKC1u'b "祿nuvola/48x48/mimetypes/cdtrack.pngUT`Aux PKC1KySP a #-nuvola/48x48/mimetypes/colorscm.pngUTv`Aux PKC1KySP a #¿nuvola/48x48/mimetypes/colorset.pngUT`Aux PK C1T} 큇Ͽnuvola/48x48/mimetypes/core.pngUT`Aux PKC1;=Uiٿnuvola/48x48/mimetypes/deb.pngUT`Aux PKC1:  #큒nuvola/48x48/mimetypes/document.pngUT|`Aux PKC1m. , nuvola/48x48/mimetypes/dvi.pngUTb`Aux PKC1;T !0nuvola/48x48/mimetypes/ebuild.pngUTV`Aux PK C1˼ff knuvola/48x48/mimetypes/empty.pngUT\`Aux PKC1X $+nuvola/48x48/mimetypes/encrypted.pngUTN`Aux PKC1 $hnuvola/48x48/mimetypes/exec_wine.pngUTF`Aux PKC1C 2N*nuvola/48x48/mimetypes/file_locked-[Converted].pngUTh`Aux PKt91 &j6nuvola/48x48/mimetypes/file_locked.pngUTgUAux PKC1e]u)rAnuvola/48x48/mimetypes/file_temporary.pngUTn`Aux PKC1}qQnuvola/48x48/mimetypes/font.pngUT@`Aux PKzC1&Znuvola/48x48/mimetypes/font_bitmap.pngUT8`Aux PKwC1mNL V (큱cnuvola/48x48/mimetypes/font_truetype.pngUT2`Aux PKpC1Še k %_onuvola/48x48/mimetypes/font_type1.pngUT$`Aux PKtC1v'@ F "#ynuvola/48x48/mimetypes/gettext.pngUT,`Aux PKmC1z 큿nuvola/48x48/mimetypes/gf.pngUT`Aux PKiC1 @P1P)큐nuvola/48x48/mimetypes/gnome_app_info.pngUT`Aux PKfC14?— 6 $nuvola/48x48/mimetypes/html.pngUT`Aux PKbC10Z 큛nuvola/48x48/mimetypes/image.pngUT`Aux PK]C19-! %큿nuvola/48x48/mimetypes/image_gimp.pngUT`Aux PKUC18TX\ t nuvola/48x48/mimetypes/info.pngUT`Aux PKYC1$j9 Q "nuvola/48x48/mimetypes/install.pngUT`Aux PKQC16!#[nuvola/48x48/mimetypes/java_jar.pngUT`Aux PK MC1 (큗nuvola/48x48/mimetypes/karbon_karbon.pngUT`Aux PKIC1m &nuvola/48x48/mimetypes/kchart_chrt.pngUT`Aux PKFC1U0 $ '" nuvola/48x48/mimetypes/kformula_kfo.pngUT`Aux PKBC1J-* 3 $큗nuvola/48x48/mimetypes/kget_list.pngUT`Aux PK7C1y# ""nuvola/48x48/mimetypes/kig_doc.pngUT`Aux PK *&Qnuvola/48x48/mimetypes/kpovmodeler_doc.pngUTr`Aux PKC1pQp )큲]nuvola/48x48/mimetypes/kpresenter_kpr.pngUTl`Aux PK C1hh)jnuvola/48x48/mimetypes/krec_fileempty.pngUTb`Aux PKC1J+ ? (큏onuvola/48x48/mimetypes/krec_fileplay.pngUTR`Aux PKC1LX'}nuvola/48x48/mimetypes/krec_filerec.pngUTZ`Aux PKC1d$?nuvola/48x48/mimetypes/krita_kra.pngUTJ`Aux PKC1 &큃nuvola/48x48/mimetypes/kspread_ksp.pngUTB`Aux PKC1&RY}$mnuvola/48x48/mimetypes/kugar_kud.pngUT*`Aux PKC1z9y $$nuvola/48x48/mimetypes/kugardata.pngUT`Aux PKC1,KĈ $2nuvola/48x48/mimetypes/kword_kwd.pngUT`Aux PKڌC1e nuvola/48x48/mimetypes/log.pngUT `Aux PK׌C1lw~  nuvola/48x48/mimetypes/make.pngUT`Aux PKԌC1oKnuvola/48x48/mimetypes/man.pngUT`Aux PK͌C1-F"Nnuvola/48x48/mimetypes/message.pngUT`Aux PKЌC1r#|nuvola/48x48/mimetypes/metafont.pngUT`Aux PK ɌC1}큮nuvola/48x48/mimetypes/midi.pngUT`Aux PK C1˼ff nuvola/48x48/mimetypes/mime.pngUT<`Aux PKC1h^ &nuvola/48x48/mimetypes/mime_ebuild.pngUT"`Aux PKt91~0% +nuvola/48x48/mimetypes/mime_empty.pngUTgUAux PKƌC1DlZ b '.nuvola/48x48/mimetypes/mime_koffice.pngUT`Aux PKŒC1r_.Q#큧<nuvola/48x48/mimetypes/mime_lyx.pngUT`Aux PKt91\|}$2Lnuvola/48x48/mimetypes/mime_temp.pngUTgUAux PK C1˼ff# Rnuvola/48x48/mimetypes/misc_doc.pngUT6`Aux PKt91>}*4 g &Vnuvola/48x48/mimetypes/mozilla_doc.pngUTgUAux PK C1 'ccnuvola/48x48/mimetypes/netscape_doc.pngUT`Aux PKC1A7U#큍mnuvola/48x48/mimetypes/ooo_calc.pngUT`Aux PKC1o'{nuvola/48x48/mimetypes/ooo_calc_tpl.pngUT`Aux PKt91f/Yv #nuvola/48x48/mimetypes/ooo_draw.pngUTgUAux PKC1t 3'nuvola/48x48/mimetypes/ooo_draw_tpl.pngUT`Aux PKt91`sx &nuvola/48x48/mimetypes/ooo_impress.pngUTgUAux PKC1ue0 *nuvola/48x48/mimetypes/ooo_impress_tpl.pngUT`Aux PKC1k|Zp$ڿnuvola/48x48/mimetypes/ooo_setup.pngUT`Aux PKC16xPa%큒nuvola/48x48/mimetypes/ooo_writer.pngUT`Aux PKC1$%)Anuvola/48x48/mimetypes/ooo_writer_tpl.pngUT`Aux PKC1 fL &nuvola/48x48/mimetypes/patch.pngUT`Aux PKC1E񩓮 nuvola/48x48/mimetypes/pdf.pngUT`Aux PKC16  %"nuvola/48x48/mimetypes/postscript.pngUT`Aux PKC1y $큅nuvola/48x48/mimetypes/quicktime.pngUT`Aux PKC1QB !nuvola/48x48/mimetypes/readme.pngUT`Aux PKC1tJ[ l +nuvola/48x48/mimetypes/real.pngUTz`Aux PKC1tJ[ l #큌8nuvola/48x48/mimetypes/real_doc.pngUTt`Aux PKC1`onuvola/48x48/mimetypes/tar.pngUT`Aux PKC1m&< b *$nuvola/48x48/mimetypes/template_source.pngUT`Aux PKC1(4  Ċnuvola/48x48/mimetypes/tex.pngUTH`Aux PKC1H nuvola/48x48/mimetypes/tgz.pngUT~`Aux PK׋C1x- nuvola/48x48/mimetypes/txt.pngUT&`Aux PK C1˼ff"nuvola/48x48/mimetypes/unknown.pngUT0`Aux PKrC1'n9 ! $önuvola/48x48/mimetypes/vcalendar.pngUTh`Aux PKbC1 !_$ - !nuvola/48x48/mimetypes/vcard.pngUTH`Aux PKC1jȇ $큟nuvola/48x48/mimetypes/vectorgfx.pngUT`Aux PKOC1!|T 큄nuvola/48x48/mimetypes/video.pngUT&`Aux PK KC1k%onuvola/48x48/mimetypes/widget_doc.pngUT`Aux PKC1r M . )qnuvola/48x48/mimetypes/wordprocessing.pngUT`Aux PK vQB Anuvola/64x64/UT Qux PKvQBpTl8nuvola/64x64/.DS_StoreUT Qux PK rL>Anuvola/64x64/apps/UTVMux PKF1$u@nuvola/64x64/apps/access.pngUT MdAux PKD1&~ nuvola/64x64/apps/acroread.pngUTX^aAux PKF1\4Ns)nuvola/64x64/apps/agent.pngUTMdAux PKt91yor 큨@nuvola/64x64/apps/aktion.pngUTgUAux PKF1h큼Mnuvola/64x64/apps/amarok.pngUT MdAux PK.N1'\2T!gnuvola/64x64/apps/amor.pngUT8mAux PKF16껑 j{nuvola/64x64/apps/applixware.pngUTMdAux PK5WG1ޕh.Unuvola/64x64/apps/ark.pngUTeAux PK1WG1nZ0xnuvola/64x64/apps/arts.pngUTeAux PK.WG11b!nuvola/64x64/apps/artsbuilder.pngUTeAux PK*WG1 LC!4nuvola/64x64/apps/artscontrol.pngUTeAux PKe:10*w%큖nuvola/64x64/apps/artsmidimanager.pngUTΝVAux PK&WG18B2nuvola/64x64/apps/atlantik.pngUTeAux PK WG1yC e 큩nuvola/64x64/apps/background.pngUTeAux PKWG1:AH#&#2nuvola/64x64/apps/bell.pngUTeAux PK t919f큝Hnuvola/64x64/apps/bookcase.pngUTgUAux PKfE1"a 큹^nuvola/64x64/apps/browser.pngUT}bAux PKWG1^ nuvola/64x64/apps/bug.pngUTeAux PK"WG1:n| \ 5nuvola/64x64/apps/cache.pngUTeAux PKWG11WIL큢nuvola/64x64/apps/chat.pngUTeAux PKWG1$r ׻nuvola/64x64/apps/clanbomber.pngUTeAux PKWG1u"nuvola/64x64/apps/clock.pngUTeAux PKkG1,[FMnuvola/64x64/apps/colors.pngUT(eAux PKkG1&$큒nuvola/64x64/apps/cookie.pngUT(eAux PKVG1$r큖nuvola/64x64/apps/core.pngUTeAux PKkG1.큤%nuvola/64x64/apps/date.pngUT(eAux PKkG1 s&@nuvola/64x64/apps/designer.pngUT~(eAux PKZoG1vx MSnuvola/64x64/apps/digikam.pngUT|/eAux PKkG1@MNknuvola/64x64/apps/display.pngUTv(eAux PKkG1&5&X|nuvola/64x64/apps/download_manager.pngUT(eAux PKToG1}O l#Jnuvola/64x64/apps/edu_languages.pngUTp/eAux PKNoG1J8%큟nuvola/64x64/apps/edu_mathematics.pngUTd/eAux PKt91E8'nuvola/64x64/apps/edu_miscellaneous.pngUTgUAux PKQoG1R \!#nuvola/64x64/apps/edu_science.pngUTj/eAux PK-G1/k9큊nuvola/64x64/apps/emacs.pngUT|eAux PK)G1uy/nuvola/64x64/apps/email.pngUT{eAux PKKoG1Jknuvola/64x64/apps/energy.pngUT^/eAux PKfoG1='J/nuvola/64x64/apps/enhanced_browsing.pngUT/eAux PKcoG1*2Bnuvola/64x64/apps/error.pngUT/eAux PKpG1z^oZnuvola/64x64/apps/evolution.pngUT|eAux PKٛG1n "큲ynuvola/64x64/apps/file-manager.pngUTJ}eAux PKvG1Z7؇nuvola/64x64/apps/filetypes.pngUT|eAux PK{G1-Fd7 _ hnuvola/64x64/apps/flashkard.pngUT|eAux PKG1b3Mnuvola/64x64/apps/fonts.pngUT|eAux PK+N1s90( 큚nuvola/64x64/apps/fsview.pngUT2mAux PKG1m]?nuvola/64x64/apps/gaim.pngUT|eAux PKG1<[f!!큫nuvola/64x64/apps/galeon.pngUT{eAux PKG1ao3nuvola/64x64/apps/gimp.pngUT{eAux PKt91Ukx6#nuvola/64x64/apps/gimp2.pngUTgUAux PKiG1E+_ ! 5nuvola/64x64/apps/gnome_apps.pngUTv|eAux PKt91"!Vnuvola/64x64/apps/gnome_apps2.pngUTgUAux PKYG1(yeonuvola/64x64/apps/go.pngUTZ|eAux PKG1ʓh lnuvola/64x64/apps/help_index.pngUTDeAux PKG1ssh큼nuvola/64x64/apps/hwinfo.pngUT>eAux PK֛G1Y( d znuvola/64x64/apps/icons.pngUTD}eAux PKPG14U@ nuvola/64x64/apps/iconthemes.pngUTH|eAux PKTG1#~4nuvola/64x64/apps/important.pngUTP|eAux PKG1C\큫nuvola/64x64/apps/indeximg.pngUT8eAux PKG1P,_nuvola/64x64/apps/input_devices_settings.pngUT0eAux PKcN1_nuvola/64x64/apps/irkick.pngUTmAux PKG1{( 8nuvola/64x64/apps/juk.pngUT&eAux PKG1?ˑ클Xnuvola/64x64/apps/kaboodle.pngUTeAux PKG1Zg"큰knuvola/64x64/apps/kaddressbook.pngUTeAux PKG1IM큠nuvola/64x64/apps/kalarm.pngUTeAux PKG1nzMCnuvola/64x64/apps/kalzium.pngUTeAux PKG1Z 큕nuvola/64x64/apps/kappfinder.pngUTeAux PK`N1K:&큐nuvola/64x64/apps/karm.pngUTmAux PKG1e8Q 큼nuvola/64x64/apps/kasteroids.pngUTfeAux PKJ^=1ʮT큦nuvola/64x64/apps/kate.pngUT\ZAux PK\N1C7Nnuvola/64x64/apps/katomic.pngUTmAux PKG1! G #.nuvola/64x64/apps/kaudiocreator.pngUT`eAux PKpH1Qv!큀Onuvola/64x64/apps/kbackgammon.pngUTfAux PKpH1 B(rinuvola/64x64/apps/kbackgammon_engine.pngUTfAux PKG1_x[큰nuvola/64x64/apps/kblackbox.pngUTXeAux PKYN1n0dnuvola/64x64/apps/kbounce.pngUTmAux PKVN1+v nuvola/64x64/apps/kbrunch.pngUTmAux PKG1sĴl큸nuvola/64x64/apps/kcalc.pngUTJeAux PK H1g !'nuvola/64x64/apps/kcharselect.pngUTeAux PKt91l7-g}nuvola/64x64/apps/kchart.pngUTgUAux PK H1O> 3 nuvola/64x64/apps/kcmdevice.pngUTeAux PKt91;jF(  "nuvola/64x64/apps/kcmdevices.pngUTgUAux PKGsH1$a큤 nuvola/64x64/apps/kcmdf.pngUTffAux PK H1š@ Znuvola/64x64/apps/kcmdrkonqi.pngUTeAux PKt91d!5nuvola/64x64/apps/kcmfontinst.pngUTgUAux PKJsH1rM# Mnuvola/64x64/apps/kcmkwm.pngUTlfAux PKMsH1uNtXnuvola/64x64/apps/kcmmemory.pngUTrfAux PK;sH1>#%rnuvola/64x64/apps/kcmmidi.pngUTRfAux PK"sH1Z.7#B{nuvola/64x64/apps/kcmpartitions.pngUT fAux PKsH1*}nuvola/64x64/apps/kcmpci.pngUTfAux PKsH1žg"큕nuvola/64x64/apps/kcmprocessor.pngUT fAux PKsH1DXnuvola/64x64/apps/kcmscsi.pngUTfAux PKt91C͈nuvola/64x64/apps/kcmsystem.pngUTgUAux PKsH1T81Vnuvola/64x64/apps/kcmx.pngUTfAux PK sH1?q#Ynuvola/64x64/apps/kcolorchooser.pngUTfAux PKSN1j 'nuvola/64x64/apps/kcoloredit.pngUT~mAux PKsH1}B/|6nuvola/64x64/apps/kcontrol.pngUTfAux PKrH1ac . Pnuvola/64x64/apps/kdat.pngUT܆fAux PKt91X;"\nuvola/64x64/apps/kdf.pngUTgUAux PKsH1N2 k큰nnuvola/64x64/apps/kdict.pngUTfAux PKt91;{9Vnuvola/64x64/apps/kdisknav.pngUTgUAux PKrH1^RQnuvola/64x64/apps/kdmconfig.pngUTƆfAux PKrH1*r큈nuvola/64x64/apps/kedit.pngUTfAux PK%sH1@H$nuvola/64x64/apps/keditbookmarks.pngUT&fAux PKrH1;:!Hnuvola/64x64/apps/keybindings.pngUTfAux PKrH1g "nuvola/64x64/apps/keyboard.pngUTֆfAux PKrH1Pok%nuvola/64x64/apps/keyboard_layout.pngUTfAux PKrH1+6N3nuvola/64x64/apps/kfig.pngUTfAux PK(qH1t/nuvola/64x64/apps/kfind.pngUTlfAux PKrH1}UHLnuvola/64x64/apps/kfloppy.pngUTfAux PK+qH1y]d큏bnuvola/64x64/apps/kfm.pngUTrfAux PKe N16:Ftnuvola/64x64/apps/kfm_home.pngUTιmAux PK H1!0큺nuvola/64x64/apps/kget.pngUTeAux PKt91|Xq nuvola/64x64/apps/kghostview.pngUTgUAux PK%qH1O]Xr` !dnuvola/64x64/apps/kgpg.pngUTffAux PKpH1nuvola/64x64/apps/khangman.pngUTfAux PKzG1tCw%!nuvola/64x64/apps/khelpcenter.pngUTeAux PKQN1䞮 nuvola/64x64/apps/khexedit.pngUTzmAux PKNN1c nuvola/64x64/apps/khotkeys.pngUTtmAux PKt91_IB/nuvola/64x64/apps/kig.pngUTgUAux PKpH1വ {Hnuvola/64x64/apps/kiten.pngUTfAux PKt91bJ큳Unuvola/64x64/apps/kivio.pngUTgUAux PKfE1x]E 큜knuvola/64x64/apps/kjobviewer.pngUT@}bAux PKKN1PP1!ínuvola/64x64/apps/kjots.pngUTnmAux PKpH1KY! Bnuvola/64x64/apps/klettres.pngUTfAux PK t91F nUU큻nuvola/64x64/apps/klipper.pngUTgUAux PKfE1x]Egnuvola/64x64/apps/klpq.pngUT@}bAux PKHN1Ct 큑nuvola/64x64/apps/kmag.pngUThmAux PKpH1;i;lnuvola/64x64/apps/kmahjong.pngUTfAux PKpH1:anuvola/64x64/apps/kmail.pngUT܂fAux PKbG1gnuvola/64x64/apps/kmenu.pngUTh|eAux PKpH1l-  ~$nuvola/64x64/apps/kmenuedit.pngUTȂfAux PKt91y+| %%"큺.nuvola/64x64/apps/kmessedwords.pngUTgUAux PK8sH1>#%#Tnuvola/64x64/apps/kmid.pngUTLfAux PKpH1o-?큜\nuvola/64x64/apps/kmines.pngUTЂfAux PKPsH1bIl~1rnuvola/64x64/apps/kmix.pngUTxfAux PKSsH1_B[nuvola/64x64/apps/kmoon.pngUT~fAux PKCN1⃪½ 큳nuvola/64x64/apps/kmousetool.pngUT^mAux PKWsH1xʸnuvola/64x64/apps/kmplot.pngUTfAux PKt91@J!큘nuvola/64x64/apps/knewsletter.pngUTgUAux PKt91 Ɏ!=nuvola/64x64/apps/knewsticker.pngUTgUAux PKZsH1a-nuvola/64x64/apps/knode.pngUTfAux PKpH1C)nuvola/64x64/apps/knotes.pngUTnfAux PKfG1,Sd "nuvola/64x64/apps/knotify.pngUTp|eAux PKt91X@nuvola/64x64/apps/kolf.pngUTgUAux PKG N1tcx!zVnuvola/64x64/apps/kolourpaint.pngUTmAux PKt91da} -onuvola/64x64/apps/konqsidebar_mediaplayer.pngUTgUAux PKGL1_{e#u$}nuvola/64x64/apps/konqueror.pngUT6lAux PKL1"YѧUnuvola/64x64/apps/konquest.pngUTlAux PK|L1Y;Tnuvola/64x64/apps/konsole.pngUTlAux PKwL1yzlnuvola/64x64/apps/kontact.pngUTlAux PKuL1Dn=nuvola/64x64/apps/kooka.pngUTlAux PK1tH1 O inuvola/64x64/apps/kopete.pngUTfAux PKt912N'' Znuvola/64x64/apps/korganizer.pngUTgUAux PKt912N''%큵Anuvola/64x64/apps/korganizer_todo.pngUTgUAux PKrL1JYinuvola/64x64/apps/korn.pngUTlAux PKoL17? Fnuvola/64x64/apps/kpackage.pngUTlAux PKL1(4\unuvola/64x64/apps/kpager.pngUTlAux PKlL1tcxbnuvola/64x64/apps/kpaint.pngUT|lAux PKAN1Hl RȾnuvola/64x64/apps/kpdf.pngUTZmAux PKt91$}%!nnuvola/64x64/apps/kpercentage.pngUTgUAux PKiL1w3큦nuvola/64x64/apps/kpilot.pngUTvlAux PKeL1*ih!큗nuvola/64x64/apps/kpovmodeler.pngUTnlAux PKWL1E9#nuvola/64x64/apps/kppp.pngUTVlAux PKt91d+s 8nuvola/64x64/apps/kpresenter.pngUTgUAux PKpH1@M큜Inuvola/64x64/apps/krdc.pngUTfAux PKqH1Ρv.@큣Znuvola/64x64/apps/krec.pngUT&fAux PKpH1t2/inuvola/64x64/apps/kreversi.pngUTfAux PK;^=1%s {nuvola/64x64/apps/krfb.pngUTBZAux PKqH1 X(ʛnuvola/64x64/apps/krita.pngUT.fAux PK qH1q4PGnuvola/64x64/apps/kruler.pngUT4fAux PKqH1hԂ[큵nuvola/64x64/apps/kscd.pngUTDfAux PKqH1conuvola/64x64/apps/network.pngUT֟nAux PKt91p jnuvola/64x64/apps/noatun.pngUTgUAux PK6N1c(יnuvola/64x64/apps/ooo_gulls.pngUTHmAux PK3N1#gF nuvola/64x64/apps/ooo_setup.pngUTBmAux PK9L1&?9M nuvola/64x64/apps/opera.pngUTlAux PKt91ij큭nuvola/64x64/apps/package.pngUTgUAux PKmD1P+*nnuvola/64x64/apps/package_applications.pngUT]aAux PKuD1)xӏ)큁 nuvola/64x64/apps/package_development.pngUT]aAux PK}D1kU%s!nuvola/64x64/apps/package_editors.pngUT]aAux PKD1jl)'?nuvola/64x64/apps/package_edutainment.pngUT]aAux PK/sH1 M&큨Wnuvola/64x64/apps/package_favorite.pngUT:fAux PKD1<k#큫jnuvola/64x64/apps/package_games.pngUT^aAux PKD1rEi*%nuvola/64x64/apps/package_games_arcade.pngUT^aAux PKD1e7)큎nuvola/64x64/apps/package_games_board.pngUT^aAux PK0N1dJ,(nuvola/64x64/apps/package_games_strategy.pngUT^aAux PKD1 h^"7""![nuvola/64x64/apps/package_toys.pngUTD^aAux PKD1cפ'큄}nuvola/64x64/apps/package_utilities.pngUTN^aAux PKkD1o,큉nuvola/64x64/apps/package_wordprocessing.pngUT]aAux PK؞L1la[!X크nuvola/64x64/apps/password.pngUThlAux PK۞L1"1%nuvola/64x64/apps/personal.pngUTnlAux PKfE1x]E큮nuvola/64x64/apps/printmgr.pngUT@}bAux PKL1cQP 1nuvola/64x64/apps/randr.pngUTlAux PKL1؆ % >nuvola/64x64/apps/realplayer.pngUTlAux PKL1Znuvola/64x64/apps/remote.pngUTlAux PKt91K8nuvola/64x64/apps/samba.pngUTgUAux PKݞL1CQmSnuvola/64x64/apps/sodipodi.pngUTrlAux PK˞L1?Q|]rfnuvola/64x64/apps/style.pngUTNlAux PKϞL1Xz(Q 큍wnuvola/64x64/apps/stylesheet.pngUTVlAux PKҞL1d\'& f وnuvola/64x64/apps/terminal.pngUT\lAux PK՞L1:wSWnuvola/64x64/apps/usb.pngUTblAux PKL1ak˘  !큗nuvola/64x64/apps/window_list.pngUTxlAux PKS^=1jف>Cͳnuvola/64x64/apps/winprops.pngUTnZAux PKL1wy3]hnuvola/64x64/apps/x.pngUTlAux PKL1m-9'Unuvola/64x64/apps/xapp.pngUTlAux PKt91d/gnuvola/64x64/apps/xcalc.pngUTgUAux PK}L1c""큟 nuvola/64x64/apps/xclock.pngUTlAux PKL1wy3].nuvola/64x64/apps/xconfig.pngUTlAux PKt91/cX]큑Cnuvola/64x64/apps/xemacs.pngUTgUAux PKt91 \nuvola/64x64/apps/xfmail.pngUTgUAux PK3sH1"46vnuvola/64x64/apps/xmag.pngUTBfAux PK rL>Anuvola/64x64/devices/UTVMux PK|A1{Y&nuvola/64x64/devices/3floppy_mount.pngUT]]Aux PK{A18_n(2nuvola/64x64/devices/3floppy_unmount.pngUTB\]Aux PK|A1OD&nuvola/64x64/devices/5floppy_mount.pngUT]]Aux PK|A1e (inuvola/64x64/devices/5floppy_unmount.pngUT]]Aux PKt91X;$큅nuvola/64x64/devices/blockdevice.pngUTgUAux PK}A1 %nuvola/64x64/devices/camera.pngUT4^]Aux PK|A1bK=%^nuvola/64x64/devices/camera_mount.pngUT]]Aux PK|A1 %'큦nuvola/64x64/devices/camera_unmount.pngUT]]Aux PKN1 &nuvola/64x64/devices/cdaudio_mount.pngUTdnAux PK|A1J(6nuvola/64x64/devices/cdaudio_unmount.pngUT]]Aux PK|A1 $hUnuvola/64x64/devices/cdrom_mount.pngUT]]Aux PK|A1|9E&brnuvola/64x64/devices/cdrom_unmount.pngUT]]Aux PK|A1l9'큽nuvola/64x64/devices/cdwriter_mount.pngUT]]Aux PK|A1{g1&Z)Wnuvola/64x64/devices/cdwriter_unmount.pngUT]]Aux PK|A1"x !"nuvola/64x64/devices/dvd_mount.pngUTz]]Aux PK|A1Ⱥ!$nuvola/64x64/devices/dvd_unmount.pngUTv]]Aux PK|A1H"nuvola/64x64/devices/hdd_mount.pngUTp]]Aux PK|A1O> 3 $nuvola/64x64/devices/hdd_unmount.pngUTj]]Aux PK|A1Zd[/Nnuvola/64x64/devices/ipod.pngUTb]]Aux PK|A1F;-!w%nuvola/64x64/devices/joystick.pngUT\]]Aux PKt91r!큥=nuvola/64x64/devices/ksim_cpu.pngUTgUAux PK|A11PEVnuvola/64x64/devices/memory.pngUTR]]Aux PK|A1mA.!큙pnuvola/64x64/devices/mo_mount.pngUTN]]Aux PK|A19V#"nuvola/64x64/devices/mo_unmount.pngUTH]]Aux PK|A1 @znuvola/64x64/devices/modem.pngUTB]]Aux PK||A1<+nuvola/64x64/devices/mouse.pngUT<]]Aux PKz|A1+4#'" nuvola/64x64/devices/nfs_mount.pngUT8]]Aux PKw|A1`$5nuvola/64x64/devices/nfs_unmount.pngUT2]]Aux PKt|A1"ٗfAnuvola/64x64/devices/pda.pngUT,]]Aux PKr|A1pR"큛nuvola/64x64/devices/pda_black.pngUT(]]Aux PKo|A1ڲ̐E!큺nuvola/64x64/devices/pda_blue.pngUT"]]Aux PKl|A1 $Z*nuvola/64x64/devices/print_class.pngUT]]Aux PKi|A1s77&큀Dnuvola/64x64/devices/print_printer.pngUT]]Aux PKf|A1x]E Xnuvola/64x64/devices/printer.pngUT]]Aux PKt91$:_!onuvola/64x64/devices/printer1.pngUTgUAux PKc|A1v) D 큻nuvola/64x64/devices/raid.pngUT ]]Aux PKt915I,2$nuvola/64x64/devices/samba_mount.pngUTgUAux PK]|A1¨*&크nuvola/64x64/devices/samba_unmount.pngUT]]Aux PK[|A1Dn nuvola/64x64/devices/scanner.pngUT\]Aux PKR|A1뾄y큋nuvola/64x64/devices/tablet.pngUT\]Aux PK|A1(]nuvola/64x64/devices/tv.pngUT]]Aux PKqA12i* nuvola/64x64/devices/usbpendrive_mount.pngUTb]Aux PKmA1cNh,큧#nuvola/64x64/devices/usbpendrive_unmount.pngUTb]Aux PK|A1bI~"u3nuvola/64x64/devices/zip_mount.pngUT]]Aux PK|A1e. ` $OGnuvola/64x64/devices/zip_unmount.pngUT]]Aux PK sL>ATnuvola/64x64/filesystems/UT VMux PKt91wX[#Tnuvola/64x64/filesystems/camera.pngUTgUAux PKi=1m洆Z'큎enuvola/64x64/filesystems/chardevice.pngUTZAux PKi=1C$znuvola/64x64/filesystems/desktop.pngUTZAux PKi=1`<!큦nuvola/64x64/filesystems/exec.pngUTZAux PKh=1.?(nuvola/64x64/filesystems/file_broken.pngUTxZAux PK i=1kG+anuvola/64x64/filesystems/file_important.pngUTZAux PKt91륪 (~nuvola/64x64/filesystems/file_locked.pngUTgUAux PKi=1 552+큊nuvola/64x64/filesystems/file_temporary.pngUTZAux PK.e=1D7#큞nuvola/64x64/filesystems/folder.pngUTXZAux PKB1D7(2nuvola/64x64/filesystems/folder_blue.pngUT^Aux PK"B1bP-*nuvola/64x64/filesystems/folder_blue_open.pngUT^Aux PK+e=11(Anuvola/64x64/filesystems/folder_cool.pngUTRZAux PK=1W!tI B( `nuvola/64x64/filesystems/folder_cyan.pngUT ZAux PK=182-x}nuvola/64x64/filesystems/folder_cyan_open.pngUTZAux PK(e=1q@,큵nuvola/64x64/filesystems/folder_download.pngUTLZAux PK%e=1 c,,nuvola/64x64/filesystems/folder_favorite.pngUTFZAux PK"e=19a*!!(nuvola/64x64/filesystems/folder_font.pngUT@ZAux PKe=1of*)큁nuvola/64x64/filesystems/folder_games.pngUT:ZAux PK=1nz h)tnuvola/64x64/filesystems/folder_green.pngUTZAux PK=1 9/X.?0nuvola/64x64/filesystems/folder_green_open.pngUTZAux PK=1KSE(큯Gnuvola/64x64/filesystems/folder_grey.pngUTZAux PK=1\X+-bnuvola/64x64/filesystems/folder_grey_open.pngUTZAux PKe=16:(큫wnuvola/64x64/filesystems/folder_home.pngUTZAux PKe=1Pr ()nuvola/64x64/filesystems/folder_html.pngUT4ZAux PK[e=1)nuvola/64x64/filesystems/folder_image.pngUTZAux PKXe=1{#T- nuvola/64x64/filesystems/folder_important.pngUTZAux PKbe=1|x*nuvola/64x64/filesystems/folder_locked.pngUTZAux PKOe=1](nuvola/64x64/filesystems/folder_mail.pngUTZAux PKLe=1r '큁*nuvola/64x64/filesystems/folder_man.pngUTZAux PKIe=1ə|c(TKnuvola/64x64/filesystems/folder_midi.pngUTZAux PK=1bP(큽enuvola/64x64/filesystems/folder_open.pngUThZAux PK=1g򲰄*|nuvola/64x64/filesystems/folder_orange.pngUTZAux PKܘ=1No/nuvola/64x64/filesystems/folder_orange_open.pngUTZAux PKGe=1 -)nuvola/64x64/filesystems/folder_photo.pngUTZAux PKDe=14-)nuvola/64x64/filesystems/folder_print.pngUTZAux PKt91EwhT1 *Lnuvola/64x64/filesystems/folder_print2.pngUTgUAux PK =10Vm' nuvola/64x64/filesystems/folder_red.pngUTxZAux PK٘=1`w,큯&nuvola/64x64/filesystems/folder_red_open.pngUTZAux PK@e=1%o ),<nuvola/64x64/filesystems/folder_sound.pngUTxZAux PKڕ=1~kl`'S\nuvola/64x64/filesystems/folder_tar.pngUTZAux PK7e=1>G '큍znuvola/64x64/filesystems/folder_txt.pngUTjZAux PK4e=13nZT)5nuvola/64x64/filesystems/folder_video.pngUTdZAux PK-=1i5x*nuvola/64x64/filesystems/folder_violet.pngUTZAux PK՘=1a/[nuvola/64x64/filesystems/folder_violet_open.pngUTZAux PK/=134*큼nuvola/64x64/filesystems/folder_yellow.pngUTJZAux PK=1Jy/nuvola/64x64/filesystems/folder_yellow_open.pngUT^ZAux PKe=1)VKNv nuvola/64x64/filesystems/ftp.pngUT.ZAux PKg=1Odۥ>!큯=nuvola/64x64/filesystems/link.pngUTZAux PKg=1[42(큯Dnuvola/64x64/filesystems/lockoverlay.pngUTZAux PKՕ=1)5$큠Lnuvola/64x64/filesystems/network.pngUTZAux PK g=1%.*큀gnuvola/64x64/filesystems/network_local.pngUTڔZAux PK g=1m!wnuvola/64x64/filesystems/pipe.pngUTԔZAux PKg=1=+#큽nuvola/64x64/filesystems/server.pngUTΔZAux PKg=1mY4%큾nuvola/64x64/filesystems/services.pngUTĔZAux PKee=1OQ#ةnuvola/64x64/filesystems/socket.pngUTZAux PK3i=1^7|( nuvola/64x64/filesystems/trash_empty.pngUTZAux PK/i=1kx'큅nuvola/64x64/filesystems/trash_full.pngUTZAux PK=1vC\Ft+^nuvola/64x64/filesystems/trashcan_empty.pngUTZAux PK=1:.X&o*nuvola/64x64/filesystems/trashcan_full.pngUTZAux PKUe=1}t ,,nuvola/64x64/filesystems/www.pngUTZAux PKy.^U]L ~Lnuvola/64x64/filesystems/zip.pngUT>ux PK tL>A$Pnuvola/64x64/mimetypes/UT VMux PKC1uBr&uPnuvola/64x64/mimetypes/abiword_abi.pngUT`Aux PKC18 b !anuvola/64x64/mimetypes/applix.pngUT`Aux PKC1 { 큪lnuvola/64x64/mimetypes/ascii.pngUT`Aux PK t91`tnuvola/64x64/mimetypes/bc.pngUTgUAux PKC18bw!Vnuvola/64x64/mimetypes/binary.pngUT`Aux PKC13GC$nuvola/64x64/mimetypes/cdbo_list.pngUT`Aux PKC1\ r"xnuvola/64x64/mimetypes/cdimage.pngUT`Aux PKC1ɋnuvola/64x64/mimetypes/cdr.pngUT`Aux PKC1Ҕ"nuvola/64x64/mimetypes/cdtrack.pngUT`Aux PKC1>9#큿nuvola/64x64/mimetypes/colorscm.pngUTt`Aux PKC1>9#nuvola/64x64/mimetypes/colorset.pngUT`Aux PKC16n  nuvola/64x64/mimetypes/core.pngUT`Aux PKC1VL nuvola/64x64/mimetypes/deb.pngUT`Aux PKC1G$#%4nuvola/64x64/mimetypes/document.pngUTz`Aux PKC1oLDCGnuvola/64x64/mimetypes/dvi.pngUTb`Aux PKC1y#ە!큉Vnuvola/64x64/mimetypes/ebuild.pngUTT`Aux PKC17h  ygnuvola/64x64/mimetypes/empty.pngUTZ`Aux PKC1V$lnuvola/64x64/mimetypes/encrypted.pngUTL`Aux PKC1f@r$큯{nuvola/64x64/mimetypes/exec_wine.pngUTF`Aux PKC1&S 2Mnuvola/64x64/mimetypes/file_locked-[Converted].pngUTh`Aux PKt91'$X&큊nuvola/64x64/mimetypes/file_locked.pngUTgUAux PKC1vӫe))nuvola/64x64/mimetypes/file_temporary.pngUTn`Aux PK}C1Q|ȭ 1nuvola/64x64/mimetypes/font.pngUT>`Aux PKzC1+ &7nuvola/64x64/mimetypes/font_bitmap.pngUT8`Aux PKvC1J(&nuvola/64x64/mimetypes/font_truetype.pngUT0`Aux PKoC1x %Inuvola/64x64/mimetypes/font_type1.pngUT"`Aux PKsC1T"pnuvola/64x64/mimetypes/gettext.pngUT*`Aux PKlC1r_:o nuvola/64x64/mimetypes/gf.pngUT`Aux PKhC1{ A)큱nuvola/64x64/mimetypes/gnome_app_info.pngUT`Aux PKeC1.*,nuvola/64x64/mimetypes/html.pngUT`Aux PKbC1@S I ^?nuvola/64x64/mimetypes/image.pngUT`Aux PK\C1kD%Lnuvola/64x64/mimetypes/image_gimp.pngUT`Aux PKUC1J~a,R]nuvola/64x64/mimetypes/info.pngUT`Aux PKXC11"^onuvola/64x64/mimetypes/install.pngUT`Aux PKPC1GNA#Unuvola/64x64/mimetypes/java_jar.pngUT`Aux PKLC1NgA m (Qnuvola/64x64/mimetypes/karbon_karbon.pngUT`Aux PKIC1..&nuvola/64x64/mimetypes/kchart_chrt.pngUT`Aux PKEC1ߴ'2nuvola/64x64/mimetypes/kformula_kfo.pngUT`Aux PKAC1ߓ $Gnuvola/64x64/mimetypes/kget_list.pngUT`Aux PK7C1(-l"inuvola/64x64/mimetypes/kig_doc.pngUT`Aux PK$nuvola/64x64/mimetypes/kivio_flw.pngUT`Aux PKC14$큎nuvola/64x64/mimetypes/kmultiple.pngUT~`Aux PKC1h7a" nuvola/64x64/mimetypes/koffice.pngUTx`Aux PKC1O"*큭!nuvola/64x64/mimetypes/kpovmodeler_doc.pngUTp`Aux PK C1Vq)2nuvola/64x64/mimetypes/kpresenter_kpr.pngUTj`Aux PK C17h )큹Cnuvola/64x64/mimetypes/krec_fileempty.pngUTb`Aux PKC1'pc(Inuvola/64x64/mimetypes/krec_fileplay.pngUTP`Aux PKC1J.Bi '큐\nuvola/64x64/mimetypes/krec_filerec.pngUTX`Aux PKC1l$Zhnuvola/64x64/mimetypes/krita_kra.pngUTH`Aux PKC19 &$nuvola/64x64/mimetypes/kspread_ksp.pngUTB`Aux PKC1jb[$Inuvola/64x64/mimetypes/kugar_kud.pngUT(`Aux PKC1J<$nuvola/64x64/mimetypes/kugardata.pngUT`Aux PK݌C1M$onuvola/64x64/mimetypes/kword_kwd.pngUT`Aux PKڌC1_R qnuvola/64x64/mimetypes/log.pngUT `Aux PK֌C1y3큐nuvola/64x64/mimetypes/make.pngUT`Aux PKӌC1 V}nuvola/64x64/mimetypes/man.pngUT`Aux PǨC13@y"큆nuvola/64x64/mimetypes/message.pngUT`Aux PKЌC1Ǡw#[nuvola/64x64/mimetypes/metafont.pngUT`Aux PKȌC1 큻0nuvola/64x64/mimetypes/midi.pngUT`Aux PKC17h 큲:nuvola/64x64/mimetypes/mime.pngUT<`Aux PKC1y#ە&@nuvola/64x64/mimetypes/mime_ebuild.pngUT `Aux PKt91Zτ%Pnuvola/64x64/mimetypes/mime_empty.pngUTgUAux PKŌC1@s'9Vnuvola/64x64/mimetypes/mime_koffice.pngUT`Aux PKC1=x# jnuvola/64x64/mimetypes/mime_lyx.pngUT`Aux PKt91:,2$nuvola/64x64/mimetypes/mime_temp.pngUTgUAux PKC17h #Hnuvola/64x64/mimetypes/misc_doc.pngUT6`Aux PKt91&큜nuvola/64x64/mimetypes/mozilla_doc.pngUTgUAux PKC1 >Ҽ '큕nuvola/64x64/mimetypes/netscape_doc.pngUT`Aux PKC1l#큲nuvola/64x64/mimetypes/ooo_calc.pngUT`Aux PKC1=C'nuvola/64x64/mimetypes/ooo_calc_tpl.pngUT`Aux PKt91A$=i#nuvola/64x64/mimetypes/ooo_draw.pngUTgUAux PKC1cF'큡nuvola/64x64/mimetypes/ooo_draw_tpl.pngUT`Aux PKt91^J&nuvola/64x64/mimetypes/ooo_impress.pngUTgUAux PKC14)* nuvola/64x64/mimetypes/ooo_impress_tpl.pngUT`Aux PKC1#:$Gnuvola/64x64/mimetypes/ooo_setup.pngUT`Aux PKC1W03%65nuvola/64x64/mimetypes/ooo_writer.pngUT`Aux PKC1EG~)큆Jnuvola/64x64/mimetypes/ooo_writer_tpl.pngUT`Aux PKC1xL  0`nuvola/64x64/mimetypes/patch.pngUT`Aux PKC1ERMtnuvola/64x64/mimetypes/pdf.pngUT`Aux PKC1]R:6j%큳nuvola/64x64/mimetypes/postscript.pngUT`Aux PKC16$Hnuvola/64x64/mimetypes/quicktime.pngUT`Aux PKC1M7S!*nuvola/64x64/mimetypes/readme.pngUT`Aux PKC1_Ź)طnuvola/64x64/mimetypes/real.pngUTz`Aux PKC1_Ź)#!nuvola/64x64/mimetypes/real_doc.pngUTr`Aux PKC1`"X#nnuvola/64x64/mimetypes/recycled.pngUTj`Aux PK}C1b  #nuvola/64x64/mimetypes/resource.pngUT^`Aux PKC1A`9Jnuvola/64x64/mimetypes/rpm.pngUTd`Aux PKzC1duq &큍nuvola/64x64/mimetypes/shellscript.pngUTX`Aux PKwC1@?"^nuvola/64x64/mimetypes/soffice.pngUTR`Aux PKtC13q/ 큰1nuvola/64x64/mimetypes/sound.pngUTL`Aux PKpC1l,!Cnuvola/64x64/mimetypes/source.pngUTD`Aux PKkC1Do#Znuvola/64x64/mimetypes/source_c.pngUT:`Aux PKcC1-9a R%큥knuvola/64x64/mimetypes/source_cpp.pngUT*`Aux PKgC1.]k% ~nuvola/64x64/mimetypes/source_css.pngUT2`Aux PKIC1MYX#׍nuvola/64x64/mimetypes/source_f.pngUT`Aux PKFC1%C#Dnuvola/64x64/mimetypes/source_h.pngUT`Aux PKCC1U#G&#Lnuvola/64x64/mimetypes/source_j.pngUT`Aux PKAC1"L-&큊nuvola/64x64/mimetypes/source_java.pngUT`Aux PKt913:#nuvola/64x64/mimetypes/source_l.pngUTgUAux PK A;nuvola/extra/UT VMux PK tL>A;nuvola/extra/kmix/UT VMux PK t91=)??<nuvola/extra/kmix/mix_audio.pngUTgUAux PK t91E_크Bnuvola/extra/kmix/mix_cd.pngUTgUAux PK t91ꛭ큜Hnuvola/extra/kmix/mix_midi.pngUTgUAux PK t91:n 큡Lnuvola/extra/kmix/mix_recmon.pngUTgUAux PK t91BQ8 zOnuvola/extra/kmix/mix_record.pngUTgUAux PK t91gd!sUnuvola/extra/kmix/mix_unknown.pngUTgUAux PK t91V 큚Ynuvola/extra/kmix/mix_video.pngUTgUAux PK t919 ]nuvola/extra/kmix/mix_volume.pngUTgUAux PKM1;`}&anuvola/index.themeUT4mAux PKt912$>g큇fnuvola/license.txtUTgUAux PKpO1w anuvola/readme.txtUT"oAux PKpO1n'0dnuvola/thanks.toUTXoAux PK t91C߈4ޑnuvola/thanks.to~UTgUAux PKDJM+nuvola/16x16/actions/grip.pngUTFSux PKmtaskcoach-1.4.3/icons.in/splash.png000066400000000000000000000175761265347643000172310ustar00rootroot00000000000000PNG  IHDR:sRGBPLTE bX,I)4DfŘMR Yqъ҇ɬ g,|\֧%cɖsW>(i=EJ jj4eQbL\zh]ƽ(<0J4)y&%\V-żne67Ihɉ%Nrl0sPxԘ|itvGDAک)zCWZꆩ.Aٱ':dHUnf+ y*>w,0̧jx/h4I3uܖLO*XTss9UUy0D2D,<:H oqvdj-HTcqoOέ_%eux"vyxtv_@Is,:lfTșYd˵輗)n8H{ WĠ\?wI6 8 PRXtt XotxftEB.fX+i,J\rT:pxstbmFs|h3~\0>XΙ2H`MgܺpBH6Odk$U:#HE*Wzq,4X䕨.yYo->ӽrT|Ƶy\d6K9vTۙWi 9<ԾbKGDH pHYs  tIME  îEIDATx |SS@Ɲ\Z*/J8i0 LH!u 6b{uCܨCC JP_UAEq b]RjWBA}h #,/Kp;mG8ήy_%J\U!`N/ryMM/92/wBٲe/2^?ztYY'?8̜rDE&hw9ߏ0&M&, U.! L.0̠_'aH I]4Imt^8I4mq 6/Oʌ L#^ Awnint?> w-T'irFMmƨ q(:d ؈M %M[bFuQmD ~Lܮw0᛬_(J,~-Q]Ϸ';pl #%fGa(Ȯ(q˖v^-8(*:Əԩ7&$R.oW1zqfΕ_Y奩-} DDj52vgϞ9r{CpEnt]&JgjR9<M3b!7EQQ`Cr닑c ㅞrkM,ps ?:F~5XSjuj*2]Ѽ6fՉ.(jд.pPw4&|5%W݂5fZxyӠ‰wtqTg5%oR+Pv 9E%fEƠႎOQv}O?I+ӠPTRiZL+>,,\\bK󪱙͠\ 5z{GϚ5QNGg}Qrgeeq,.MUFT kl.َJnرcAss-ݠ f_7sl2&ǩOsJtꋈMXsgٕ eG  7ՓAe7?PP2@3c92UZg :::vlP1se5 =䊪休 b!9/rq,˥IсO=ާ* =a,Zvw㸬yQ5D bw؀nGѡcufc8eHVVJѲ6.egLDrZoCxc0T&fu[ :vgVgqQZVq1R,*3*9JnGiNܾ)qXoNޱdC9'F+"$A}Kx , vL>)^Pu㈸_i&]~Yhٛ_ɱ(̱@i\a{EM:'зBQԙQf4jg,_QmDnc3| q'0ɡ55cR(cңb[dO W5 P*#crUhV\I5-:Q8cAtpm8rQZ`WI&C`QQ-Z^3&g"":?Z9-qn@vߣc XW ;08gLd`B_3Xۼ Fͭj\h\:?Ѕ#55!7 GDaX2vdj$(d+882yz\ÇZ&L :wÆ:e`!8ci߿~3casJ6ts^qeĕ$7Ggfy83/3eq4c/]X܏U:}UJӞW ;®d%ITCJcCj]:Dw@Tg<ʹe.PX'Y@{7ycJ++i~~SV$v$\BM|'E.:v 6Ux,ޜϖ욐Œ?1;ǕTCK^= R2&VGa]N nDtt:msPpXA[*'U,ܘ .)!嘡%qKiSAarE]w'IoaCdgs+PccJ~G*l\zlm0-KI!_QX]7xXc1 һ/C>{5]JS#nhRYz 9ɕw̚Fgw8FtSMdf }L=x(/!)GJHe-(=dG6tCE(:Wve=ZPNd@w cPryH.%=ɪv/OFc&9@OQKߔiiSy%w`t(]6l v Աdhe`ߘ-/BM3ZKM!W9¤aZrbbrf:t,j,:HGYڱPi$USyCHvJ;8'!oAv8W<ʘǯeh'taU,y=Y.)ysG-\P_3,xn9#2bM [DhcнPvl\[;fj"8vC Pc\>c+'ueӯeAa ӧ8o]L# sh5ewCcd8X>>z~9uN ƒ a#o! Ĭݍ3c5 t:y:y=:n_ka47/96M`[Pw`:j0j4Xck B+ŇsY:PَRCn< ófвEn&88w鷳6h Mb[5r@nɂ'nXdzhٟF4\x\'΄ ,&e2MQ%H-%ro=7Ay0͑.fȮۄѨǎ![iwA@UheB!6>G-EwU|>,:8w:2p\WN Wl&8qhncURY^Fvju$ۃ+XX8F aD(2+~3M- )R(&.L(8w,n8q,) sbzMk<8rrfvFjG}t]?S!6i M*;jّ! 6aFjAt߃cNh6:G|Yn~b<5ʬP}Q- N?rR둹UUcv(Hp^70jv5^<ћ _~*ZBeإ7+Vlw}Zq4}1cdc#}'ЅR]ML-F؉ `[Y utU Sqhn#C n(@%k=bXx_~J`ittπwƸ+HvSתf}O_ہabW #y՟IAX#,VX-$XJ.58t+nOw:SxA.O8b8aLa-\ ބ+g0Nz:X3=9!ssѡcQwu{+Z?8,p+,3R~&&tk!;plAwX8V.TP @j/(/"5zナC>0s6.3ˁzjڜu!s~)?4T]2uz@(AOjE/x*TnڛN q6)m PX;:5pt6(zMX&6vvv6d9)S*dc rQFFcZ42\Qy AJϋo";!tl?Nvdt+BP{zLr`A8=3ɞovRDxl2:wL * RbZ\̦P,nʔ:=ʝ$R ` x)U ܛPŋQv{ŒN&UAئє/x]p-wtˋ.8VcvZNci6s4r\J۔JOjb^v9k72Ft(G ;cQ[Sa%McY uh{-4+Dm,In:'z/]hGܜMο.ȉXcdW EXp]4l]mpEiݑ6NΓ'{H~`o2v~\0+&'8MvZzcbl8V"&Ŧ4 0C+q1?ڕf-_^GeuzOWKK4ıZ3q,H)3 )6z^| Q]&(tm(zk5,[d1D>8|wͦ3栜r?>y{|'vh ɯ_/tXcy2,6˾: |NhqNxO=B-L%^ˎGtX}qۅV*АCiV'F/J۹Xܶ f~z` %KEM]#;]#gLz/^c*@T }܇vz ܚG7q1[l}/kBp7wvK%NȎH.^ .brŎpChx55k9bj,&hBvW] b[H<2G|[^EVHR:FFb"j #h("4PZDD/v >pBCjZ@_Q,vaL|ݯP{-\z=*<K4GfGG6x::?~-&&Th?LK~Ujj-vH(ŨЊC"H& h\cEG/Cg_#QG.(t?9φ$ Ltt>Ns46}r폜s#+Sҁ':=x^ʄ# w1{tkvcORVii7ޞ V:`t"˭$q- sF!%~t+ :.C%w^r椿$>Љ\ѹ=:Q<>YN4B'1} DU ՌpՌpՌpՌpՌpՌp   4@.: b{'1 Oc%8F Xor6D=M _wl{ GY CT.: b{'1 _wi CT.: b{'1f [rk.9 ]u _wk ՌpՌpՌpՌpՌpՌp   &/ Qe Qf(2 c|/;}9G ^v d~f ]u Qe Qf9Gf ]u Qe Qf 9G ՌpՌpՌpՌpՌpՌp    I[.:|t AR L_x.:| L_x.:|>N ՌpՌpՌpՌpՌpՌp   clf5C&/#+,8f#,.9f&0#, ՌpՌpՌpՌpՌpՌp   CWz J] s J] r)4 q Pdv7E EVn ՌpՌpՌpՌpՌpՌp   "/s>N  I[N  I[ _w Wn N  I[ ^v o ]ut ]t _wYp  ՌpՌpՌpՌpՌpՌp  G` Nbq b{ L_ Wn"*$0<9Gq b{9Gq b{' )4:Gr ՌpՌpՌpՌpՌpՌp  )<y=M Oc7E Wn'1 Nb#,z2? f'=M Oc!*{"*=M Ocs ^v$-@P#+'1 ՌpՌpՌpՌpՌpՌp   i ^v/; ՌpՌpՌpՌpՌpՌp    GX f [r ՌpՌpՌpՌpՌpՌp #+=L ՌpՌpՌpՌpՌpՌp  ՌpՌpՌpՌpՌpՌp  ՌpՌpՌpՌpՌpՌp  ՌpՌpՌpՌpՌpՌp  ՌpՌpՌpՌpՌpՌp  ՌpՌpՌpՌpՌpՌp % ՌpՌpՌpՌpՌpՌp   ՌpՌpՌpՌpՌpՌp #  ՌpՌpՌpՌpՌpՌp $4A  ՌpՌpՌpՌpՌpՌp %"x Oc#+$-&,8&"#v I[ &  Yp3@ (  ՌpՌpՌpՌpՌpՌp  CT#+8F DUz Qe DU BS'1} CT(2 PdGvGvGvGvGvGvGvGvGvGvGvGvGvGv ՌpՌpՌpՌpՌpՌp     $GvGvGvGvGvGvGvFu >gGvGvGvGvGvGv % &GvGvGvGvGvGv=f5YGvGvGvGvGvGv`4 GvGvGvGvGvGvGv=fGvGvGvGvGvGv1GvGvGvGvGvGvGvGvGvGvGvGvGvGv ՌpՌpՌpՌpՌpՌp    #d8GvGvGvGvGvGvGv2TDqGvGvGvGvGvGv  GvGvGvGvGvGvDq_4GvGvGvGvGvGvFu(zC, GvGvGvGvGvGvGvDqGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv ՌpՌpՌpՌpՌpՌp    2RGvGvGvGvGvGvGv[1FuGvGvGvGvGvGvGvGvGvGvGvGvFu >hGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvFuGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGv"a6 GvGvGvGvGvGvEr ՌpՌpՌpՌpՌpՌp    EtGvGvGvGvGvGvGv!c8GvGvGvGvGvGv8]8^GvGvGvGvGvGv b5GvGvGvGvGvGv>g`4GvGvGvGvGvGvBo GvGvGvGvGvGvGvhR,#l;BnGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv#c7DrGvGvGvGvGvGvGv@j0 ՌpՌpՌpՌpՌpՌp    F(GvGvGvGvGvGvGvGv#l; 0PR,-J:`AmEsEtBn:a-LT.0"i91Qh6[*FT. GvGvGvGvGvGvGv #e88\@kEs@j5W#^5   ՌpՌpՌpՌpՌpՌp    6YGvGvGvGvGvGvGvGv)E  !e7BnGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp      AlGvGvGvGvGvGvGvGv@k%q>3  "P+-KCpGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp       ,CoGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp        '>hGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp       ,JFuGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp        )-LErGvGvGvGvGvGvGvGvGvGvGvGvCp+I.GvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp     F&'yB4W=eCoEtDrAl;c0P$n<7GvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp       ՌpՌpՌpՌpՌpՌp         ՌpՌpՌpՌpՌpՌp            ՌpՌpՌpՌpՌpՌp          ՌpՌpՌpՌpՌpՌp        ՌpՌpՌpՌpՌpՌp          ՌpՌpՌpՌpՌpՌp             ՌpՌpՌpՌpՌpՌp    $       ՌpՌpՌpՌpՌpՌp     ##    ՌpՌpՌpՌpՌpՌp        !       ՌpՌpՌpՌpՌpՌp        ՌpՌpՌpՌpՌpՌp        ՌpՌpՌpՌpՌpՌp        ՌpՌpՌpՌpՌpՌp       ՌpՌpՌpՌpՌpՌp          ՌpՌpՌpՌpՌpՌp        ՌpՌpՌpՌpՌpՌp        ՌpՌpՌpՌpՌpՌp          ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv!d76ZBnFuCp;b*E,GvGvGvGvGvGvGv #X0+I7\?iErFuEsAm;b0P c6 "GvGvGvGvGvGvGv  =eGvGvGvGvGvGvGv&o>   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGvB$AmGvGvGvGvGvGvGvGv+HGvGvGvGvGvGvGv ('wA>gGvGvGvGvGvGvGvGvGvGvGvGvGv5X )GvGvGvGvGvGvGv ;aGvGvGvGvGvGvGv(uA   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGvF&FuGvGvGvGvGvGvGvGvGvGv5XGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvEsE%GvGvGvGvGvGvGv 7\GvGvGvGvGvGvGv*{D   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv CoGvGvGvGvGvGvGvGvGvGvGvGv,JGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvDq GvGvGvGvGvGvGv 4VGvGvGvGvGvGvGv,G   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv#m;GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv*EGvGvGvGvGvGvGv0NGvGvGvGvGvGvGv-J   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv9^GvGvGvGvGvGvCoV/  #(zCFuGvGvGvGvGvGvGvGvGvGvFu7\&t?J( *  U.>hGvGvGvGvGv=fGvGvGvGvGvGvGv+GGvGvGvGvGvGvGv/M   ՌpՌpՌpՌpՌpՌp      GvGvGvGvGvGvGvGvCpGvGvGvGvGvGvL)M*GvGvGvGvGvGvGvGv8]W/ %GvGvGvGvGvEsGvGvGvGvGvGvGv%o>GvGvGvGvGvGvGv1P   ՌpՌpՌpՌpՌpՌp   GvGvGvGvGvGvGvGvFuGvGvGvGvGvGv .LGvGvGvGvGvGvGvGvGvGvGvGvCpGvGvGvGvGvGvGv`4GvGvGvGvGvGvGv2R   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGvAmGvGvGvGvGvGv 4GvGvGvGvGvGvGv=!6ZGvGvGvGvGvgGvGvGvGvGvGvGvGvGvGvGvGvGvEt !GvGvGvGvGvGvGvGvGvGvGvGvGv7Z    ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv >hGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv-AlGvGvGvGvGvGvGvGvGvGvGvGvGvGvEtN+GvGvGvGvGvGvGvGvGvGvGvGv9]    ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv (AlGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv AmGvGvGvGvGvGvGvGvGvGvGvGvGvDr.L &GvGvGvGvGvGvGvGvGvGvGvGv@j$   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv -LFtGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvFu%r>GvGvGvGvGvGvGvGvGvErh!f74 GvGvGvGvGvGvGv!^5GvGvGvGvGvGvBn0   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGvGvGvGvGvGvGv>gCoGvGvGvGvGv GvGvGvGvGvGvGv"`6GvGvGvGvGvGvCp6    ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGv3U0R,GvGvGvGvGvGv2SFtGvGvGvGvGv  [19^GvGvGvGvGvGvGv#d8GvGvGvGvGvGvDq=#   ՌpՌpՌpՌpՌpՌp    GvGvGvGvGvGvGvGvGvGv;b%p=?"   8*EEtGvGvGvGvGvGv`4?iGvGvGvGvGv;bH'   $F&%s>7]FuGvGvGvGvGvGvGvGvGv$f9GvGvGvGvGvGvEsE'   ՌpՌpՌpՌpՌpՌp   GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvDr .MGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv%j;GvGvGvGvGvGvEtM,   ՌpՌpՌpՌpՌpՌp  GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv"i90FuGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv&m=GvGvGvGvGvGvFuU0   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv-J"h8GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv&o>GvGvGvGvGvGvFu!_5   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGv *)EBnGvGvGvGvGvGvGvGvGvGvGvGv>hR,H'>hGvGvGvGvGvGvGvGvGvGvGvGv?i'xA (GvGvGvGvGvGvGv'r?GvGvGvGvGvGvGv$h:   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGv0"i91QgCpFtEr@k9^-J_4 (GvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp GvGvGvGvGvGvGv   ՌpՌpՌpՌpՌpՌp    ՌpՌpՌpՌpՌpՌp       ՌpՌpՌpՌpՌpՌp   $)1#     ՌpՌpՌpՌpՌpՌp     -'         ՌpՌpՌpՌpՌpՌp           ՌpՌpՌpՌpՌpՌp               ՌpՌpՌpՌpՌpՌp                         ՌpՌpՌpՌpՌpՌp                                 ՌpՌpՌpՌpՌpՌp                           ՌpՌpՌpՌpՌpՌp                                ՌpՌpՌpՌpՌpՌp                         ՌpՌpՌpՌpՌpՌp                       ՌpՌpՌpՌpՌpՌp        ՌpՌpՌpՌpՌpՌp                    ՌpՌpՌpՌpՌpՌp             ՌpՌpՌpՌpՌpՌp                    ՌpՌpՌpՌpՌpՌp                             ՌpՌpՌpՌpՌpՌp                               ՌpՌpՌpՌpՌpՌp                         ՌpՌpՌpՌpՌpՌp         % "      ՌpՌpՌpՌpՌpՌp    $& 2B ?7-)&$%           ՌpՌpՌpՌpՌpՌp  %*4 E JH"R[a#c$c[P A6 ? 5+!              ՌpՌpՌpՌpՌpՌp  ,4 F$^ ,gND"ZUY XXZ]_a ] Z WUS M H?-$#!               ՌpՌpՌpՌpՌpՌp   * ?"^` OW6rS aA5fK3z!i`]__bfihb YN F D B ? :0''#     ՌpՌpՌpՌpՌpՌp  % 7 L$i kgSD^\SZcg`M=2 YH1y lhjpqni f ccb\ U O J C=50-#    ՌpՌpՌpՌpՌpՌp  / Bd U g&w`ZA;?@MRSRPT_cc\H+z S6&|tnllg c`]YW T R QI 1 '!    ՌpՌpՌpՌpՌpՌp   <\pcXVE5/0/(KMFA$1:FGKU\en_TA,x\?%wfnifhjicZ [ X V S MG?:83+'#                  ՌpՌpՌpՌpՌpՌp     'Hdif/T4%)'#+K?:C$4?<8;<@FMKMRY]`cD0rM.plop rh` _e iif T O J E =5+!                 ՌpՌpՌpՌpՌpՌp     -P bg/|]R1.5-0%/+-99;></)(**$               ՌpՌpՌpՌpՌpՌp     9 X cj d]B4=B>E9ANJ;:OPYULE5%%479;?BDEHC><<@@E]ZOD7+iO>%x sjdaaac c jnokb \ UG?8/+)((64. %              ՌpՌpՌpՌpՌpՌp      "HdhkON<;EO`k|rfo{qR9CEFLD67.1010///015685001;DMPQUXUL:$dL8(wwoebgkmk fe fed ]TLOH @7/%         ՌpՌpՌpՌpՌpՌp      /Qhj+}eJBEJ`l3RO:_]@noBy~FNL@ASTRMC:3.1/,*,-/359<82-16,-27=?BB=93* &2WUFP[zx_ZE0t2. 0@y8 y9:0-45t8 pA+uP:eT~psjcRIAA=8232('&$"#'+39?BFHIL<1"rYB0#n%v%h C 7      ՌpՌpՌpՌpՌpՌp     A\ sjg]LMTjnOawW4&8/ Q)SS)8, .3/<E I|IzJ {R1_GjZug]RKC>85.'"%&"&(+,+*,8=BGHB93}*pZ1jk%$n5     ՌpՌpՌpՌpՌpՌp      ,WY|"xD_CS[{gY<\gq{X(&;.+ьkܼ㧊uWT2CkAsPW Nx=x6AM&C$P7iWw|iZI<4//2:94.(#   )3786;7.}Z' b-   ՌpՌpՌpՌpՌpՌp      6dcrCZWGRgXQIWB2Cm,.4,t1ʭ߰_6sZpIQWM?K?9AO)a;}Vx}n^SMEED@>:94&  #$*...-BM0b$ :  ՌpՌpՌpՌpՌpՌp     ?h uipXNTT|nSQb}Q.02v$ZDÖ`a3LIEBEQUON OU;aTpbzk{³ycO?5;0&$,12/%"":Q<#' J#   ՌpՌpՌpՌpՌpՌp    #H g{=MJ\cZKKgmVez06/&r! Ϯ⮉~Ti9QB @H U`%GJ$N*P,zT1{b@vXlzoaRG=5-'*)-255.&#!S6iZ.  ՌpՌpՌpՌpՌpՌp     ' ThBPFITzW>GjV615)2<թ׻Үϫ_h?Hv4Z UTX!W$P"R)Z8eKhW{oevuqsz{lPC?;:6.'$!BC 3t%e ;"  ՌpՌpՌpՌpՌpՌp     *]j{!lRCJKy\=QkE3t&:[5Ծ׻㬯Ʃܫt:`PSSKLU+}G$P4[E|bQrdXpjcswrsmrwcM;2+,:HMy*v G+    ՌpՌpՌpՌpՌpՌp         !Idg$P.DGmgUTtbp^^8 j+v=ͣٶ߱ŕy|㳲ۺnm=`0qGrFV'U)T(T)U*Y/_5c@jV|sf~uwmefemqtj[[@t  f<   ՌpՌpՌpՌpՌpՌp        )K ` kHF/>MzbS_WPo9cDإxvϠӧѪ}Ti8[+X%X"~X~[^b#e-i8kDmN}ju}slh`Z\[UZcdflux=b | T,    ՌpՌpՌpՌpՌpՌp        K Xe,O:B9coUW{zul\3s=r<Ɲ}ӽ»߿ǜo}Lg+f$b `_ ^!ZU"Q%yV4vgMv{lpd\QMQ]``]XQVY]kx!! b4    ՌpՌpՌpՌpՌpՌp          &S [k HV2FAv}`QcfJ?v=#r7|H$ڹͫϪˬІ˖spI\/W$Z"^#s6i+_#^$yb*vj4xwEo[]{Ygnrtj\ER?E[ap ),!q ?    ՌpՌpՌpՌpՌpՌp         7R Z!x!mJ1ISkVSq]/=!o2nLʲȰӠu}dm䰪ڸ޿߸bvAUTXbimo q+mi8emOhpflvpy{rSW62HDPu ( -!q>  ՌpՌpՌpՌpՌpՌp          *F T _7=85Kh]UZzutm.6w=կᪧjxhtɩǨֺδ׹ֱٸZm0[V ]hhm#j/e<}n[eL+$.>KH 'j7 ՌpՌpՌpՌpՌpՌp         /O]kMO. ,+lbigN>k5}>Q,О}糽ٿͳŪäƨ˭ӷĢӱݾټά{՗nqlm)xwrD:5ZJ&} N,  ՌpՌpՌpՌpՌpՌp     1 Mf hxD6)3g`ra:$D r:^˓ִţҶ˯ƭƭǧаܽ߻ĢɬjVƧp#qtr1uql@6?P$f !g 6   ՌpՌpՌpՌpՌpՌp     9 Zir-W' #O|gcyyo;HrEá該z䪵۽׹ƮǯưʵҼͮݼ⺡ϤzlGiyn2wjwqH6I.: F  ՌpՌpՌpՌpՌpՌp       ? _f{&TW!!$mtlj^HC@= _3ŷؼӹސ}˱йĭչĥԲȫ׵hRпεw|\ya+xu`pzY?E d 1o(    ՌpՌpՌpՌpՌpՌp      $ IeiGzG&.qptQ/)G ~9jᾱҰŨԪݒfu̿Żó¯γ«ӺhўZ%`4vhQvjR2A"~0F   ՌpՌpՌpՌpՌpՌp       .Vor*P15#Coszy{V,N#?Ϫ㚢iwۋ⫮Ĭδȴմʣǜۭźڹδ{^ݿe8jD]E~yz|jVm.-&l0   ՌpՌpՌpՌpՌpՌp     2 \m|$\@&2*~mihY9xJF^9Ŋ͒׹ʷϵ̳ǮʯѸɴѾ֩șywX?˴uP_/!/HxfxfM~Nr>Ƙy٩{ڬʶڿպԹƬѷȰٿ绞{}cpa:\?iblf#p'4 h >"    ՌpՌpՌpՌpՌpՌp     '&Tn l/U)#)eriw~igHTpCҶ̶ʵϺǮӼָ從cBܽ^*c9eWia9#/ I,    ՌpՌpՌpՌpՌpՌp    #.W sy%]K)'+{rs^Wsv_H(RrDĩ֮ݯǦnmKAF&GP/TZ;`_CqñбȪnGy.l,cBcbv%:x*4:K%    ՌpՌpՌpՌpՌpՌp      +'#je h8P.06\zq{jE|ItHa(3 7O';U-0D!\gFlhK~eĠʦԵ˽׽չtO֮Pl&f=_N[N>4:-/    ՌpՌpՌpՌpՌpՌp      %D !qpwd@/4>}uozbPvEIuDȷ˯׸̨x֬IR';U'^WGsD'M#@Y3cfFfǨIJʻй¨θδujzj#f8dFE5!DP3r*P"    ՌpՌpՌpՌpՌpՌp     4[gw%A,36Evr`8}AT ҫٵnvàܽԻѼrrD9NZMQTLTLQ.U'L[5nfHgȧ׿йϾƩĤxY޲֭ޜk(j8oE8Z9HX.W!    ՌpՌpՌpՌpՌpՌp   ! A` n wC778cvvrwG%LMӬýӽλʽй:FFf/RMcldtKYC{Fg)MFdk_té]vTgNUGx@9V%AM#bfCo㹭ȝ|ifJ~]gvٻطܦol0m:xO(0"     ՌpՌpՌpՌpՌpՌp    $< j}?M)!&n}qkDQQ#ڱдǼgmD.QKAKMft^v`_~\vP`Y_Cv<-PDX-juOt÷溭ܴݼѴngfgfʳ“םm,b)c57+     ՌpՌpՌpՌpՌpՌp      / Rx }9lA1*3yc9zNwFYƕ}ɨQ`41d&QSISl}eԀ\|Y{Y{^|VjENB|AGm;AX,]hBxĭĦǦƥҽҴүЯgby}sDzv0j0g:2!      ՌpՌpՌpՌpՌpՌp       6`{})N1x4,FlMWyMཕʽȔϝq2H7w5MYTcsۈs]~X~TzW|WvOeGQ>s:6V%HY-iqLpپϹʺìϬֶȷƲ{Hdy?uY0)      ՌpՌpՌpՌpՌpՌp       <hu JI1x4*c|wQY g)ʼȯѬwО̧jrIIg2J+'     ՌpՌpՌpՌpՌpՌp   7 s Q%$.|nJ"`z2īſϺóżʿ̽.Q=yZD^lexxxޖ}ݡ~pژhՐmܒuiJY::=x';bGe4j|_˽ҶϹ_FsQb@8    ՌpՌpՌpՌpՌpՌp  # K#2u 7q^IvN$pDĘ[ƩķLdA4e'A-RLmنt~ݠޣ~sܝkؔsߖ~kz^cTI>w,1_$?`4`qVr~Zxx"ttK$R"k?[JV0|4JYpҌ~ݪ{zzxy{ޖݔm}Yc@D5w/5e#Gd,wTѻzh3}f9gL*$      ՌpՌpՌpՌpՌpՌp    T|"/k:}y7lLPJy߹ϮNj)a6/OYfɃxݥztwۙ{o؇Xd@A7y'6eLi*tN͹jtb-xN2&       ՌpՌpՌpՌpՌpՌp  (qA/t0z%WyT(QS ޿ӵhոɲrS*p6.OOؤv|ɽsV,l C+XQgy|ߗtې~~xv}xܲzk}JS36./$d"Cq=ody¥kc][aR36          ՌpՌpՌpՌpՌpՌp   $ ?g 3(u"y'%r^vQ%Ye*ҩݷÙǹɾBn)+q B-a^aqL^Xkdxz|{vg߀G\,=r(-m17_/}fͬ~_CVclD`;1       ՌpՌpՌpՌpՌpՌp  *b{U"vvr7~}oDY|HЪ|h3hE1UIqtaj=0c 7W6H?C&=0@ +     ՌpՌpՌpՌpՌpՌp  Z Wqkr7qI['{NѠzĞѸóƻFx8#kCH^qbt]f;=\Av3wuBq2&^8x6JQYgh}{{v|vh؊BXBP(q-Y,\(/       ՌpՌpՌpՌpՌpՌp  *&o 1,h tnpNhATSٲަϓ½Ž˿˽˼ɺzZ)|'EQp֏{ЌFWSfՅg}OXWU'Z >d2r߹cVW%jG;THaRx~puwoxrok[@Z1=3|41d& /       ՌpՌpՌpՌpՌpՌp     0$*-li%w$vFsiQMJຐΝƚ\S(n(3APhwazUeEG$]8^*|ݼһú˽Шyi:p*/oA,R7VP}}ajq|ndkqc~GU435w&>p0      ՌpՌpՌpՌpՌpՌp      J%E)ld(x%tpɼbN/Q"\*ő߭"]-|-CMKb}SrJ^1; c Bu;ˠݽѤtF{8[ /|?16OVÅ{wevutwzr\MdB>&l6o2    ՌpՌpՌpՌpՌpՌp      !'h%![gl#q6zrU0Y)ZgɪͽqddDBgo~cـB\8He!7s3̗x)e0w /8=W;]qxx~wrqihޗ6FCAk+n).        ՌpՌpՌpՌpՌpՌp    -%+v% 6&fe*{"oZwa>\,|NƜєןºŽ4o%jA>VZI^8P+? ]9z<՝՛N=T@BN(8q%*m/Ǒyk+^)p@7;BJcnwzo]]pXځ?Q##q4*(          ՌpՌpՌpՌpՌpՌp     -c#!Vhg$v=zY%O]֝ܖSA,nK06s#(q-roѨӲîҘQ}*`/$098YQ}vycX_epGn.<2+x*r +       ՌpՌpՌpՌpՌpՌp      8&}9_ot rUnPQṂ՗Nw=6r$[McYUN98j::ӝ¾^0`x"B'UKwo|o^[Y[dSv4<( s4t,     ՌpՌpՌpՌpՌpՌp     Q"%W*paj(wɼ\7Vd)՗l\0f!_PVKB9XICɕԿxYj*PN,vLrFJ!L4YUytqZg^fq`8F#!+ ,k#/        ՌpՌpՌpՌpՌpՌp     '%r% Z#lflDyCLВ\ȴȦsØKv=,b!]@|6ZOΛ|u,;&Sfr t3 & BOluhk|w[|FM-+b2     ՌpՌpՌpՌpՌpՌp     %T"5S#mj(r3yǸ]7_.n@ܦܠ߽̽ڳϑUf'yXP21>T'KL$@>JXKjqoq}Vn85-$h7       ՌpՌpՌpՌpՌpՌp   #3t%'`qk.uMy~Q%PʙqٛɾǽϷpLYvO(&IC14H9.{/$r/2!E r:   ((w'*6_XݔktaqAA1("qT    ՌpՌpՌpՌpՌpՌp      +6z27&f&n5spUY&{bܜ٬ؤk\Ad21X$5_(3c)+^"$X*]#.a(3c/6c2 #  ()k*:>x *8IAZNjvgE`E^*(s)N/     ՌpՌpՌpՌpՌpՌp      E!1 !X*nZouJPz۶ĖTtC/S1h'i%i"lnqy%m nmibV MFM C>"@ ,M zϿbnJi|cOy94L24          -/=@3;#/=JDSjv]cDH&**.?#     ՌpՌpՌpՌpՌpՌp     >(,*khhfCB)((&0/  ~ j S*ptKvepVr,[?,@ a%        ,j6,z3%) z ;785OQFI././5!      ՌpՌpՌpՌpՌpՌp     2'.'1,/EĥpwST=q#{6v9h3o?h:a.j(fo?r){  ,mpgfXV@?//*)((#"" ! "%+$3)5"6$% '12l9ab0ѷ_a3;lE3S'9A       6!k5.$41@@232}1'       ՌpՌpՌpՌpՌpՌp      ! N(0 /Xl߻ƋFc<{/)%/3vwZ[@A33346596972//,/,0+0+1*2*5+2!8%9,6+ @+7t,J17ZN$q^=rRapqQzUWSQTbsrʏyt/QB@1P R(          46s)B/&y*#8497P   ՌpՌpՌpՌpՌpՌp     A 'w!5-'UpwIs&,s)AEyz]\LL>@>>?>==:975=;;8;69472505.7.@3I>2*?:GB(! ~)m#L2Df~~{]VJB~B~I~R|zR{RVeI~JC#@ >         " 97m'4t,9v45b1:     ՌpՌpՌpՌpՌpՌp     $H2 *,4 1>toSt;Au'%r.*$ryuu[]QROPSSUVRROMLIJGGEHCDAB=An>nLv`ʺ&V"9y-/+47GPXU``VXVVUWUVSTSRUUQPQNPMOLOLOJOJIIEJ?HHPFO5A3@,= X+VYG&J 7/           ՌpՌpՌpՌpՌpՌp      " F7?AH($:,2$3* ) 7 ==C21A:O"[@t5lo+jB7@7@0:u܁vhnlcebbac_a\^^^ba\[ZYZYXXXWXWXWSUIQ=INWXbS^>Oc,)3tdM_FK2P'8               ՌpՌpՌpՌpՌpՌp          &(+H,;'A6$8"!7148';EC<==5616 @TUZ-sJ3?5C:J~t{xtopqrvwvwqrmnnniiffffbca``_]^Z\FLRYY]]cdl(v95UG`(eJGB&N3`         ՌpՌpՌpՌpՌpՌp           >AZ9!F;9A%B;"22:9A*61(@"=+I*Oq'UI4r<>>4<`n|z{tsmnnostvxprkmhipqnpmollikhiehcd[\rq{vgbONK =+u~Z&U#I>[6K,>@M V+           ՌpՌpՌpՌpՌpՌp        ", /??9?DCD >=T154>EU9Rb3YCPNbZ@A߂}~xzz|}z}tysxtyrxrvsvsuttssspslpiZ]Q(&@OoKvoYbi;i%N*L.G(=DWVL5           ՌpՌpՌpՌpՌpՌp       #$->:UrYLtJ^X`\}ޅtZbL.#)6]1S:\#I"LCHHD&P$Q(c)h4m@v>p,[C 4$J?0IBS2<j@'       ՌpՌpՌpՌpՌpՌp           &5I2Da@PwJXRۙهe[Q&/'Bb?^ 9CG=/-;$K3#=;Q5DR"/          ՌpՌpՌpՌpՌpՌp      J`D?^9;c3c[ՔlW0a#% )(8OoPbJZ:K6I=T6P7T1O'E0M-F2G/D'>!9%@-J+H$A*Er>0,        ՌpՌpՌpՌpՌpՌp     F\?PoH1V(Mi2DGU@I9?-70<@PGX'9iN7*      ՌpՌpՌpՌpՌpՌp      ;U17W.Ci9OxE{:w518 '  $()'1/85,77FOJ>;=0)      ՌpՌpՌpՌpՌpՌp        @Y7-I%9\0ZRkdϕws@s:#UK? % % &)'&         ՌpՌpՌpՌpՌpՌp       6N0>CBi<4^.ItAFu=NFPH@r83d.+Y%#O !F"F"6                   ՌpՌpՌpՌpՌpՌp       "8R4%C :\4'J(M E+O#2V,7X3!@!                    ՌpՌpՌpՌpՌpՌp                        ՌpՌpՌpՌpՌpՌp                 ՌpՌpՌpՌpՌpՌp                                  ՌpՌpՌpՌpՌpՌp                                                                       ՌpՌpՌpՌpՌpՌp                                                                 ՌpՌpՌpՌpՌpՌp                                  ՌpՌpՌpՌpՌpՌp                   ՌpՌpՌpՌpՌpՌp                                                ՌpՌpՌpՌpՌpՌp                                  ՌpՌpՌpՌpՌpՌp     ՌpՌpՌpՌpՌpՌp                                                                                                                                 ՌpՌpՌpՌpՌpՌp                                                                             ՌpՌpՌpՌpՌpՌp                                                                                                                           ՌpՌpՌpՌpՌpՌp    ՌpՌpՌpՌpՌpՌp      ՌpՌpՌpՌpՌpՌp            ՌpՌpՌpՌpՌpՌp                                 ՌpՌpՌpՌpՌpՌp                                                           ՌpՌpՌpՌpՌpՌp                                                                                                                                       ՌpՌpՌpՌpՌpՌp                                                      ՌpՌpՌpՌpՌpՌp                                                                                                 ՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌpՌptaskcoach-1.4.3/icons.in/taskcoach.icns000066400000000000000000001360011265347643000200300ustar00rootroot00000000000000icnsics#H??????ics8߈{ou339++{+$2ѧ:,*veOuPuv*uuQQ:,O**uQuz+e U***OzN*V****U*N*:3O******yW V*NNUUV3 ^ VyW3:;^.4__is32LNly ݼZxaV-r!.:5봳ؤRc*~}{' uwE l˰|v|G ՟Ipf ;ɞÁ wu &嵾{[8XbDô .Y[⇕].ơz$?oſ^y<Ŷp g l߳ p C伛ь צt ֦V YƮa &{Y{fJ- X}j $>BSs^.lq7,a}3;P#2z[= [Wn`TK /zbN㳁 m4ʂ I *nf Svc- EtV>,4 s8mk1q1rEN*mov(=h3\sѯ_;1`<ICN#|x???`|x???`icl8ꬦuJJJ{ݏ߳ޠJuuuu^ @:2u+9+yOO{嚠V***O,y{*:v++N3vLVN0+zUdvKA,yP{zKK*0v{{vKKAU0{Qu{VQ'Ke,*&u|KKK **0*{u&KQQNAU*****OQQQ+ye3*0*{vv+**NN *0*****U+*yNN*; U**0*$$$*U**ON$Ne3*0*******$***UNe **T***$***NNN*N*yX;; y$*T**NNN***$$*y- 3$NUN***$$**UyW :5 N*N*$**UyW3  d_ y$*Oy2 ; 3W- ;;e5 W^4 5;_eݳ_ 45_eݳeݳil32 J[J 8tb! rLpmjkB&hI?=:5½zN:$ Ώׂ4mY  qҗꞀ!/s6^뿰 Q@v'z@g-Ys<@WJmTOc?n{M?@n]CqS@LazQ^yAOԲ,qѡ@@GtUUĿPb{?DŴ,yKɖ8>Cz9\|θM:ÚѯJ8K͸»ɷ|jEúfyRzyx3$3@ӯ̴[BLKg?ʹc@?bNxj׽mC6Nj '%H/P& ?W0ST) :?VP:gZ,  n w_WW6Vw]08)it32f% '0/-% !L˿c& 'cx"  M: (! -iD )#"$1F |/!$%,2ѷ~}|{zyxwvttxB { =%%)#рy!xwvutsrqpomlkjihggi4 /Ƽֵ'"$`kmlkjihgeedcba`_^]\[\X$ ˀ$4! ,Ο]a`_^]\[ZYXWVVUTSRQPOR;€ ZcRUTSRQPONNMLKJIHGFEDCCAﲫ2ƑHIHGFEDCCA@??>=<<;:;  ª #0nd;??>=<;:9987665433213GBwN144332110//..-,,+'UqeMNH420(&&!"V̞"$I++,,+*)((''& "  !''+34ANNbr[49SE54/&$$ rV/%$#$#""Zn%''s$&*44@RW+9]]E1($"  G (- ,I< bY!   * %2v92 |   eу ]b, *E>%+ y k * $2iñ<&il  "M÷&% )CӯA& 'H +  %LsaT #0eӱA' ŀ,'L *8HRj+)@δI' ـ'keĽ $#.^ɵI) ہ#dJ(=ǽO( Ł-ž,y".YźR* cY<ž!(9üT) ہ!¼hE!,SûZ*(!ļ9-Uـ.j'7wZ*eO¹ ! 4!+Nd+ց 3%+%ür( &5ob+)6 .L1ɾ +Hk,gC$)ms-m%2hj-¹@!=n-M*Ep-!1*ƽ*ok-"%1^q/!g<G#@i-U)?t."¹0+sf- Ļp$$0Zv2"%9%DѪe.!¬ҾO);vu1#b76.t٦d.#h.$.S{4#7û)%HԢc.#g(9nx4%&tŽ20vΟb-#1#-M}5%'܁Nc0ʶ&&Lʝa.#u'6g{8%'mɗ*t 2yƚ`.##,H}|7& }'h+'Q_.$'4_|;&597e(ۇ/e!4{ɼ^-&*Du{;(3{t9Ѿ}(T÷\8W|>'0or4 #_9ǻQ#7{y>(/g5>Ѐ!]"µ+)Y{B(DZyv8~}̺+C$9zxC)(Uywdz~~#Z𛒑++[wC( )b71&?}yȁ_!;%=yvF) %_-|}y% ,\tF)!%[{uzz $P9ʳ(&?wrI*""Z~9xzs a9վz!.]pH+"#U{DZ vysF̸'&BsnK*##Yӹwwvz߁"EĚ߀+m#/]}mJ+$ D\q<uvoZڨ߅,$(Cm~}|xjK+%2Ot¸ͦrupڟވ,]$0[v{yxwugL,% HqȾvk'hqrsف!<ļބ݇/ (DhusrpdK+& IqúnW;8?Hipqk\ι݂܂ހ0Ͼ9&2YknlaL.&FpڹjR85:Gfmpmּ݂ۀ;DZɛ")Eag_J-' Dlڸ?05A_a fmnnӁ!4؁Ŷͺ܀+E&4UZL.'!BlЬ$53lmg#]ռŮׁ+$)GK.'! >hӯ3\ͱ _@hli|$u˹p|ֆ,;(20'# >gŬys/ťj \ijh"0ʘրՉ,%)'$"=hɪe>νkzIgjcZ̙ԷՄԊ,E$#"0HVlӲ8|ۻ?4fgfu iԻՂӈϟ2 '->^ЀȦ~/#dFUfgb )ρŭ҆Ȼ{{lqсτѸLWdf_Xҁα҂ʽyтΆ̨/}#计;ddbl \́ѻʾ|{π΁͈ţb8L7̝Ude^ #́Ȯyy͈̆˽j^*|&V5de`Y™z||x̋˄ Źzw-{ǚadciTÜzyvt̎ʁ&±wxεQQ4de]‘ɮ̀ʎ,ɽuzƤ.X,—zde`\ʲɍŹ|t|ƄȺl8-F럚,[dcgہ LŁɾȊvsʼn Ŧ;vjxde] łŨȆȽrtĊ½/۠皘$dea|RǴĺ{pvāÈoX^%n]dԁEĿupxąn 8瘕#ce] ÁƬqp}„ ϣe3WЀfceaxTúoflqƒܯu; *ڀᔕ Uddb:վvpqmt久H& 'Kmce]࿿œU+  :_}󛎑 aebrVsǺΡc3 ,Qoތ_dda1ոحv;  !>d Ude^޼%คG%/Ut!`dbnNkƶU*$Fi مy3dd`)Ե͠c15\|Oce^޹ժu; 'Nn򓁋_dckPcŮ޶G# =`tde_ %濏S) /Ut{Kde`ʝc/%Gj~_dciRWҨs87]|{]de^ ~G!(Np ˮuypde` =d̴vpqs|gcdcfh -Vxɱ}qklmnrw{}~k9de^< DjɱykegghlpvwxwoaNC!cea{ sA* ce^˱vf_`cfjkkjcXF<+ aebvͲvh^_bgkjdYH=* \cdb̲̊wi_`bfjkdYF=, de_γwh_ bfjkkjdYH>, `dea϶wh_bfjke[I>, ced`ϵxj_bfjkeZH=- Lcje_gyi_bfjkd[H>0L?gke`_bfjke[K>.Cakf\J>00880?MLHGIIODOLIM_oyqfSE>?3?NLOj۰sB33OMQu o3*LONk;$ #%OMY?# !!#""$%%&%$QNhG"!$ #"  "%&&$% SMkG !$,5>GUeS:$#&&%$ ENtހ݁E'P`qծl2#&&% !Ob݀܀ۀڀ מ<& |1%&$% EX׀؀׀ՀԀҀ,.d$"&%"!*4?QP}ԀрЀπ΀ ˟kR߀ 1 &%%/8EVjIfπ΀̀ˀʀ ʣ@9!' %c[QȀɀȀǀĀ ěhT'$' ]HjĀw'1y{ uqqtb']CӰRS~κ}u)$?anprzzf'#&k" 諆}pqmedcZYYRRMMa~Ժz{c: `Y& D2CFLMUZ\egmvu\Miz˼|wxy}s4[ ~h$## ˜[ EE"LOl~|yv}|yxvuuvwyzi5- f}X% ɛ%YKFp܀IPexzxvsrs uuvwwseG)'rу `!"$ y˯| )WgENo}IMZksvvusrrsqmg^L9* 4v fN$ ~|˲3AZzEBaSJPW]ce-ba[RJA8/+'(9aɿgy !"x}|}β@U[\KFe evVOPQPO,NJ@:5/+/B\w_I$z|yε@)_[SeDJ$mmQJIISUWY[Z[_ecv d ozxyѴI8=_[VuDA˕Iÿ gtF$yxvѹ~I# ?_[ZYJE`i|_ fwuvԷ}L  +_[[SeDFƄa¸b>#vus{ӹzQU][WnB@` Ż+hqϑHvrrӹyQ  @_[ZVHD[m ^< 2vpxԷwY  &_[[S`CC!Z¸̐`>loӷsW, R][WjA?O^ ijqe|hpFQquֶq_   <_[[UGDVaԃ igqľc{xm~Զo^ !^[[T`BB^,wuʹfoqelֵn`  O^[Xd@?zxnxnڵektezյka 8`[[TFCQ[b״cl afִkaA ][[T_A?fĿerԲbj s\sմhc* L^[Xb?>t»dF\Ѱ_h ^bֲ݀ga 2`[[SDCLZ#]tЯ^drYm ׳fd Z[[U}ZA=rn[ϭ^aµȋ[]ֲeb H_[Y^=>oZWuͮ^VxWi ٲdc! -`[[SBAI a'ºn\ˬ]a\Xzְc`% Y\[VwZ?;3dĻRxʪZYtQc گc^&  D_[Y[N<>gԑHzi[ɨXYZTsװa]3 )`[[R߳B@EΣ\_NzȧXVQ]ٮbVB(! Y^\XqZ>9]^\ǦWnװaU_;A; Cd^][;=_]/K}ƣ֮cR]u[h1 %fa`Wް@@C|aǿQ_ëׯbQ[nٮd]Zeb^qU>9WŻJծbQ\keJ0 Bkdc_}9=WlrɿN_ ׯeOJJ`jf0  "kgf^ޭ>?>kBuHկbLU\}a`! \khdrU=7񧡡ţV GaծgJTheL  @qjic~8=RudkH԰eHQejh) olkd ݭ>><V Bd߀ ӯiGPd`a  ^qnktU;6dqUJԁ݀ӲhFMddMWvƫxkow`gH{~zڦ8:4ib;ó۲9MDzq?=Utƨhbl|Zi0[~M64eU͸`5nĴpA:TsḘX]f 0{v17>^t+2Pq>8PqUl__+ |٦672γYB}+S5rrA6Op`^bN %WK43_ծN+-Mym?6NrȴݴuXe;!)s/69ӯecY0<83?Qe©fYe: ! }מ45/UB.6:Hlߴfn[a^TF31WYsӺx}̬s_\]wM  #o-55oZջ亟dU]_y 5}מ14,Tֿ۱tU\`V  OD00Oaf¯ؿkWpX\c  o*32pEv ԹƮh_Y[iS  &|ʿ՞/1*{ܵyD^%Ͳ̫zSZ[q !JؽC..F۬m\,ĬṡgRY`|K  "뿾o(0.SջԭxtTXj zʼԙ,/)s\bе p^VXuF  Eڹ>+->xTȮ۲oQWY± g&.+StٺOV^΁C vʸӖ*-'ldXպǑ`ZVUd׽ >۷=*,9UβÚu_QSTVSl̲: +f$,'ߤEK߀$̤|_NKMPSSRT`{ս %sʶӘ(+%a٫WF߇#ҮdNIJMPPORV]hpyǽ "8ܶ<(*5٪TtށضgQFGJNMSYcmt{ " 񼶶f"+$_X%oTEDGKMKLNT\dksx o̲і')$XۂQ܅ȡtXDACGJIMR[chpw? 1വȽ6&)/܂Uc߀ہѪ|\F>@DH JNT[biq|Ʉ  󼴵_ )"ۀChLյaI<=@DFEEFJPX_ekuҾZ hķ̰А$'"Nقܦ޾fK;:=AC'FKRY`hp°4 (ⲲƼ5$'*ـ&ŜnP:79=AA@@AELU]eqƲ ,ü^' ͥtQ:359>?= @GQ]ixȷa H`˾ϰ͏"$!HӮ|V;/048::99Y踯# @jB*!$',--++.;Lezs\;,Ǵ.$""&))('(1AZsľ&ycE*q!$%%$)7Kg||eH,5RS !-#`éi=#:˭jC%!K`_K' #! ,41.#1+!%Iȼ^% 75+(Wp ?@:%;0 !GF9 S6 KJ4~~9 SP6ʵ~~}|{yxwvutsrqopr3 '3& ?R. Ѐt(srqponmlkjhgfedcbcb$ %2?M`pzn9 A O; O{fhgfedcb`_]\\[YYXVVUVO){F 6@H ˛V[YYXVVUTSRQPONMLKJIGK/ ,3  /!BM z\KNMLKJIHGFEDCBA@?>=<;: @ \ &4CVh{I- %č@A"@?>=<;:87665432101 $ct AuÀBQ@ g_166542100/.-,**))('') !Ai >nC F%**)(''&&%$$% '!6ô.  BG: C"#$%&'! 2ҽm  Ƿl<'mS.$$%&'&  = Ω'   ( $ȶK9 2VVB0(&$! [ Ȕc"1,  #Ԁ 54   - Ͼ&  (>G+  伱DŽ /0%rу Ψ~\ !.KM,  lư )-   3v ʐ}   ':UO+  'ְ/"#  0\ ϾX  !-F[O,   纬 V'  )Em Ωx}  &9R[O,   aǫ"g=)!#4H^p ̐{N  ,EWXQ0  !׭˷ ο|v  %5QXWQ/   鸧 ΫzI  +DWVWS1   Vǥ ̑k %5NWUVQ2"  ک ~C !*ATUSTR3#   춠 Ϋj&3KTRRSQ6$   Kǟ ;-U͕8 #+>QSQPQP6%  ܦ  #x '2GTVROPP9&  9 !' d#+;NWYUQNO9( >ț %)2*E(1DT]]WSOM;( घ,&<=)!$,9K[c_ZVQL;) Z"/I<* U (1@Rcga\YSK<*! 4˕)fʾ ށnpw{}$K3617kmkihfdb_]ZZO11574=eϛ  ~inqzw9075-Piedb`^\ZWWM10677>b^  5mkkww-F6806``]\ZXVTTK//688>d: giqxz"495,J[WVTRPPI0.79;?]}ͬ% scgjvtE;9.4SQONLLF/-8:=?Z{ ̿ .hefrt8<6*DMIHHD.,8>5(:?<+)8>CC]ϒ )d^_mq.CB<+-9*)9>EE[}aX[fqsmA?4%''8>FF\|Ҽ3 `WY]nmCE<(&8@HIZyսڈ& $aWXhm}fF@57@IK\xѿ͛ RV`npEH?ALM[x˅r  VQTWkjoHMNNXnM  ^PQbjznOSYk3 JOYjm㪊Ʊ$  JLMPfg ̍ ]IJ]gw˄ ׿j' BHRgi Ϳ E&!  BGFIad ý(&( !\ACWdsԁ ǝ!&&! !~"&&'  5?9:X^ؼśOyc$%&&' \46J^nŅPz~:"&&'  l15<[` kZz~`$%&&'  /:13Q[|$Je}}~:#&&' ^,0CZj'ùv\HRllcW:$&&"' ! b+/5W\!ĹĹbK:87421+$" ; +9+-KXy"źÿdG/%!!##""  #/>S _&*;Wg3Ǽd?' "- d?dhCgDjGUF&H} #t< p0i{e'n9`=$O>`BA =76+3w-"'h}&x[ tMY vv+?c4O4E.2c=%M7}D/(b=#L7pD. [>#qJ6cuO9-dN:3ҵgMC64Uӹq\MHA>73-ҷs^NHB<99642-'ӹt]MHB<:9643.(# Iֻs_NHB=:9642-)#  Ժt`OIC=99743.)$ ּv`NIC=:9743.)$ 2׿uaOJC=:9743.)$ ׾wbPJD=:9743.)%  xbOJD=:9743/)$  wcPJD=::743/)% lweQJD=:9743/*% 1ayfQID>:9843/*% /:?BA>;9843/*% #(**($ taskcoach-1.4.3/icons.in/taskcoach.ico000066400000000000000000003025361265347643000176560ustar00rootroot00000000000000 (V@@ (B~00 %J  Np h( #(**($ ]~/:?BA>;9843/*% x1a*ENNE*yfQID>:9843/*% |x$lZy~taUE'weQJD=:9743/*% 3||x W~|wvvvvvy}}tbUD#wcPJD=::743/)% B|| {|v~ /^sr^ 7!vvvvy}|s_UE$xbOJD=:9743/)$ 4||||{wL",--,,+'#|V 4vvvvy}}r_TC$wbPJD=:9743.)% m||2||xs,,+***))**+**)%!{O 2vvvvy}}s`U@#uaOJC=:9743.)$ 5||||v D,**)))))(((((''(()(('#uP2vvvvy}|q_TA$v `NIC=:9743.)$ U|| |{y,)))((((('''''&&&&&%%&&&&&%!o L.vvvwy}|q^S@"t`OIC=99743.)$  {|||I|y')(((('''''&&&&&%%%%%$$$$$$#$$$$$#m H,uvvvy~|q_S>s _NHB=:9642-)# 5||||u\*(('''%  $%%$%%%$$$$#####"""""!"""""!i H,}vvvwz}{p]R? t ]MHB<:9643.(# U|||{{)'''$(HVUTF, "$###"""""!!!!!  d C)~vvvwz~~q_T?!s ^NHB<99642-' {|||U|x!&&&' )uvbSe]NMkl7}) !"!!! b >&~wxyz~wcX?!q \MHA>73-7||||ue(&% 5hK.024@ P(jUu}_J7,!{ ^ ?'|~~yfZ4gMC64W|||z}&%##o{(3678767<K`8{g~rdTC6(w Z<&O dN:3|||c|w*$%$Qb+(A164/049<<;:;EV"nLvfN<'u W:&uO9-I||||ul&$":!-4W152U$ث~UW%=36:?AA??BPa1y_nO8" oM! qJ6m|| |z$# *S#+G_sd-7/Ɍf˴֢tCU=9<AEFEDEKZmDoiI5! `  u[>#|||p|w0#""X+*/XdG477ƯĪәrn7R??BGJKIIKU d+yW|fF2  m  .D.K||||vs#! {"*=_t473]+㼝Џak.PCDHMOONNQZe;nsh_`tfF1 @ bL7n||(|z !!-E(+Mbrb0:2ΖrݸᴑψSf%OHJNSTRRRU["ieNIpu9|7RuaC.  s  b=#|||}|u 8! `*+0\gI6:=κ߼߻߻ϵެςEeOLNRVVUUVZ`2Uib0px/Mt\@+  1D/L|||{wz!s$+Acw6:4c1ҹɬۢq{7`PORVXXXX[`xfDHmp%s{ -DZx]?'EgM7 o||2|y 1D-/Sfs`2<4ѝz۾|a ؙbv-^QRUY[ZZ[_d+glX>r~x~$7J^{}X)l c=% ||||u Bj/29bkJ9<CjxԽ㸒ՏRq&[SUY]]]]_ch7գѿtmļ˭ݥqЃ9iZY\`babcip5xxcZ~?1,+,*('$"##):Lc c4=||||t Js5:AgmP;=I Ʀۼi∮àڞb|-f[\_cccchnwHvr^KHFB?<4+(('$#H, !v+\|| |{yo6;Rj|;>8vF~l~[伓ؖSy%c^_beeegkr-|\oZd}}thH*--'/+ "v~|||M|x:H=?akzf7@:٭Zaw{նպⳃՏCtc`behhhit2\wG)--/!Y=||||t P }ݶh㈴̮~Ħ۽֜~ߧdkdks)at+,--/U >||||t W CHSptR?AS䋶iﰿҶퟀֹ鿬ެу3Ϭfln hL(--/%8x]|||z~mHJar@C<ʇZqwٽ¥Ҷ˲䵣ӄD纃s kmy}`/,--/X &|||h|w# IQNPmqn<DB좿h隼ǫ̰軨۝{֌?Ԉ/im~V3)--.'@}?||||t ] JO[twX"BB[ؾぼqϴ賂ŪŰⰟ|2Ѯdgnt6+--/] '^||"|zmPRguCE>͎b¨荆Ysֻ׼տ湪Ս^ݟ]ƚhop&'-.( J$|||w|w* QVUXruk>GFɵ愨Z犌慠좆𢡊ʱŪ종ж鼨ߧ}1tnp7|".0f  -R}|||u b QWbxzY DDd%vz͵좇죇ζʱynl/軉Ԅ"mqXvj.(" K r~}|+|y"nYZnxEH@іkiʲ줉Һ辰ؒqՈ@ߡVjq~tF/i  3%}|}v2Z\]`wxiAIJμ僿oǯ룈ƴᯠy5Ю꾊jrs(&* RT}~~y g Z_j{~[GEl.nƮ뤉鷠~溮чYޠdطtqr 1` 6u7} %o`as{HJC֠xj¬VAc@-gI5mM=\Opֳۤ{4ӂpvDqy  \'z9gadg|{kCKNιyxmV\B+aO1bK0bF/lS@eZyhђ|ͷͽ㷫{A븉ޚFnzaMF =W  j bfq`&IGt7ﱚ쨐릎ꚩcY?&\a1R2T1`S1aI/obN{ʷҽﱘ짍«ҼՔtՉGܹxmzO(  `zB+rghy~KLFکnW琌쫐ѼzgLZH*S1F2c4h5YJ7Q0ZT-ZM+phTĸۨm$ƚܕ9r{E1F`~O 3uop~MOI߲}wμ먒쫕ǴοWL*Va-N1:R;oIv8m7WK6Q0YR,YP,oiVᶫڥ}Kw7р=ُJlĖհmo~vE>KF znrvmGOY kȵkHQM&Q/G;5gKzP}M{9p8YJ6Q/WS*WQ*qkX㹮⸭⹱߲ڤ՘yы`Aу<֋BޛQr̞ܺѩu|^$m o qs}c#NJ΂FoҿVS*S`+M0OC|eۑcۏaێ`ڍ^ڌ^ًWه=y=XJ2M.PW'SV)nUBjaó}zvv ~<"q o xzf%OKъQme쨡믚뮛뮛IŴ~GML|,G7:k\܏mߘiݕhݔfܓdܒbېbܐ[ی?|>WI2L}-NV%RZ+qgVvo嫘쮚ųܛBxmɮfv i= n$ ~B~||RRN㽞qƵ찞뮛뮛ò˼Ze4I\$J-@NFقrroߛnߙlߘjޗhޖfݔfݔ]܎>}?XH0K},KX#Q^/xylþƴﺦ쯛뭙ﴠ˻t{Q/9bv,Q N{zrLQdoɺꭚ뮛철ɺBPJy*G5;kbߖ{wvtrpnlߚiߘiߘ_ݒ@@UH1J|+JX"Q`/vuhſ˼°꬘~tD c|u 'p}j(PKԓ]x̾ĵﺨ䮚_i4E^!H,AKGۆ}}{zxvtqollaߕ@ځAVG0I{*GZ Pa.yxmۚ>yd h3 { )~}vLSSQũk?UGw(F3=jf~{ywtroo`BڃARF/G|)F[Qd2zxnû翈uw+eJT  R|{upMRgxh~J@\F+CHH܈}zwurqbBۅBRF/Fx(D\Oe1|yrƾ }W=? z 0 n}zvj&RLךh춨밠갟ôϾkū=[Cu%E1>ih}zwtsaC܆COE-Dz'A^Rh6}{uۙ;za@~zҾۘ8z^O 7  4xsricUUXvĺ˧>e;sA-@bgV@jAA@eLy|xw`FދCIA+=u!7eSo?yr+Jt r  UvpomvPRt*rv/_>&B*6u2jRUb9 & v VqmkmtQS|6]鍯뿯鵪鶫鶪쿴ǽH|0/o=*@Yc]Co@3;(0l3m3n,h8"=*@>EvV~{ws^IފA@<)4t6q%E8/U knmh+o*TP߭xǿ鷫鶫鶫깮ù'f 6"?5F݅_Cp?29'.n0mտS>$e 1v:'>1BYKk~zvr[K@=:)2v1r89F8 =rmmezWV^vƼ뻲鷬췮乬O4*p:(AT_`Cq>28&+q/tx-p(l5!<+@AG}Y}yup\J݇?;9(1v1t6 jG ZqmkprRSЃ?o$k 2=2E݃aDr>27&*r+jy׿J:"k .|8'>2C`Pm|wto[Lߊ?:8&/w0w2 gD3d #lmmg6o(VR㶏WG#o 7'@NdfDs=25$&r+t¸긮긮긮뽳Ǿ|_'o%q3!:+@DIޅ^}~zvrl[K݄>66&-x,v. hC CrmmeYXa oҷ$q-;.J݁ukDt<12"#r .wA-m+6&<4EgSn|xtpk[Lޅ=73$+y*x,d?"^pmj txTS҈EǾ뺮y[꣬ŷǾdVp4%AIVXHw;11!!s 0{įse r "u 0!9+@HMay{vrnh[L݂;23$)z'u %d> r(ommfAt0VT忛zĺ빯캯븮빮쾴Ǿ%x'8,L}[Ky:0/ u /}Ʊ̨:)p(4&;6FlWn|ztplg[L;30"&{%w $b; Irmmf[Xfpǽ빯뺰nNu0"?EYL|90- v /ȴh\ty . 7+AOPctxrmjd\L~9//"$~"u`: ,apmjvwUTԍM=+5+L{M8/,x ,~~żˤ0#x '2%;7Iv\ltpkgb]Kx8/-"~ u`6.pmmfMu.WWŤs4&81BW95*y,ɴƽ쾵뻱콳콴úXx ,!6,ARTennhd`^Ky7-* t]4Mqmmg\YkvK?|/&5-)z+̷켲콳쾵~xx. &#1&::K}_hjfb__Ip6,( r ]25domi|uVTח[ȿ챲dsɾϤ|} x2&}ӄXeF* 5,BYXegc`a`Iq4,% s Z/4qmme[u,XXǧoĻĻկME>6hdݕ-uF* S  !0&:=NbdbabaFg3*# l Z- Qqmlh]Ypù￶þĽǼtsP{M$,HB  ( 4-C_\eccdbFg2*  n  Y*[ gomisWU۟fuǾŽ޿}̅R$+*$O <{  {  .'9>QefdecC`0( f|W(:qmmegy3Y[дvĻݕ*w|O%/ >|   :  ' 3/Ee_hfgbB]/)f |U$Pqmlk_Zu }ptVY&,+ .W A|     -&:DUhghd@Z-& auS$Nqmh({YVާs^ô¸¸ȿԷíúžݻ|ˈ!X%0 /     ? & 2/Ejbihb>R-' ]vR 8qmerz2Y_׾{]Pe+:^0],],g'i#k%m'o"2n)Fo8\sHryZwd|ĭ͹ݓ'y_),-.X      -';HVhib?S+$  ]qOG"gmn`[z'yjY8j")c&d"eee d cccb]S MGA&<:A YU2p^éӯĻĺĺ¹Ǿmtb$[%0 #g   I   % 42Irck`;I+% TqOSl1yZWzvAg"2^3d(kq v x xxxxutnf^TK A"<$8)9BL pu_ƾĻܹ|ʌ#i,-/ 9`"      .'a-n~z q` L*;,0*.EG~ݒ%{Ļ(`&1!# i    R % 54Jvf`:C(# Ge/1! k`[҄7A]Bd xx[-:.+68 xhuqm-.0 Ah#    .(=N\^;E&"9,mrZZݡfDZH`Gc!     |&H0+??۶{ʐ*1j'2#$ k   X &!65NX9?64Ā0V©X[abjoqz!|$Ӂ+֊:։:ٔI^Ϡd_p8La##|BBijiiTN@57'5 5552/+&  'F-(ooYݑ"}t1/1 Aj$  /+@S;C1"10¹ĘaĐQÄ=ą;Á5z'y$x"onn ggaOa*7t fb>22!2 3 3!3 3 34 45565- v/,PM%eu}2k'3%$nd %!&%\Sp[f-Mg& %%US/*0*2,3,3+3*3)3)3(3'3&3%3%3$3#4$6#. *:E4Svق ؄ن܎ ܎ ݒ'46HXWn~f{ɗ9~5/3Pt%#YNpW\#/}XX33888877665554434231303/3/2.2-3,3+3+5+.%+8ICe˷ʰs̤XͥZ̢RΗ8Ζ6Ε3ώ$Ў!Ҏ!Ӊυ υ Έc:t(4&%pY\ ˜3Qveo>Se&z|qqAAGGFFEEDDBBAA@@??>>==<<;;9:89887766555476{1)ThZz404Zlq  ͘ (3?%I2WCiT|hz]]'>y# 3:QQSSSSRRQQPPOONNMMLLKKIIHHGGFFEEDDCCBBAA@@AA S5/vI-4* &r I X!!!!!! .9D*QUeoad%'ݐoo]]``__^^]]\\[[ZZYYXXWWVVUUTTSSQQPPOONNMMLLKK ~-*SfSm @,33(2s !"B"Ӏ"Է""####$$$$%$"! SYE\l*! $1iimmllkkjjiihhggffeeddccbbaa``__^^]]\\[[YY]]?C '>>@@v0.332J*'&ssss&3 !"""## ##%#5$B$Z%r%ی%ۢ%ܼ%&&$/cc3Nv+&bnxxzzyyxxwwvvuuttrrqqppoonnmmllkkjjiihhgghhac$!O:7 V@)2333=3*3""!"""#####$$%%%%&&&$)S[R|fb0?., $~~}}||zzyyxxwwvvuuttuttu2< X0-7/b@rO^qH~B)/333333,4#$$$#####$$%%%%&&&$hh,=eb0H~/19CMZ/0-,(''(('0:EO&Y2gAw0eK0*/3333Z3335 4%%%%%&&''''&&&$cf1af0^_c.F{.$9JR [ +3..00011111/.,+*++.23333f3 3335& 5 6 6 6 6(((&cf1`f0\f.=[b+Lm).6ewGPR(4Q,0'051E1]1v122223333333333F333335& 7 8 8 :cf1`f0[f.Wf,Td(Mb$5~(M[@FN#5 8,0011112233 33+3:3J3^3D3/3 3333355&hk3ek2[f.Wf,Qf(Mf&JIb"/# Kc|ndr 4 <" ~tj]K9'hO<-" ?||2y B&++)$] ;}sh[I7%dM:,! p||y',))())))'$ wR 3|rfYG3"{aJ8*  #}|| uQ+( #$%%%%$# l J-zqeVE1 x^F6) L|||Kw(SzG5' !!! c C&{sgYH2tZE3%o||y$wV-'/E`Gp}YF7+!w Z<#|oWt;+|||tT#.+S&S!_.;/3D\,z_p]E, m R876U|||SxhFcJ'ݴ٫}OV>8AUpCy\:" -d u~||x w&d< G˳ءyw=V EDN_(uZwR3  D#+|||tU1>:}(|Q߻ٿ¤ؘgq+VJKSwb?WvuLYyoL,(s=T||{\yl(ShM-ߺ룯䎧㸒ՏRlWPS\#^iV6z#)BeyUf t~||xx2kC M߀ҹՆ?h XV] h:\wp8#&8LkI4|||t X3HI-DžZԵv۾ɪݣkՀ-f\^ixRgLRH+#U-f \||{e{p8^pR2剢葚šƦѳ濗ܚW{hct8{<,Ry~||w!}CsG U~׺ʬħг؝n}g|h(/S/3||| t X4SW2ˌa捷ھͱ¥ħϲ㰖a~:+& e[~|{n| tHixY8ȵӹ剸еŪĨͲڿθڙhitj"0[ 7z~|w$SyN\ѵmϴӺȭ¦èγվܟ}Ơ{ q9!) p={|&t X5_d7Дjֿ˳Ŭêȯѹ㣍ڕe;j(h !Ad{wxWr{[>νԾ˳ĭŬѹıŴڜvӳrk3' yz' bSd˪eG.bE2na޶ӼⲜ|ΤuBEl*K>.{ Y7jp=՜r̷˳러veII-Su.cN8yɸɳư̶쾭ؕmٵ޻߁e?F i }f{bDнʶdzɶнųQ\$;O:QSp*aR:֒um)T'^, pYj#ͻʷ̺}mMD.?mCy>OQn'`U;ݫטsښmv깊ͤ߿fd,K6X:v{BڣxϿM^!@NSنZ؇I~@NNn%_Y=߱ܦܣwᰅEw΢^]Zt  {tfJyξa?&JviޖdܐbܐNۅAMKn#]S5ȸ̼{ _<|+ko@& / }`o&ο̽ονLe%@JgvplߙjߙR݊AJGn!`cFͽ̼I{Bw _ >V=Fܨ}^: Q{|wsoTގAIDlagJʒ` ~ sukNMo*=Du}xsUAF@lcjNՃ,wJ 1| zbu+3|S||vV@B=mceHChC= ESsAJ߮Pv.8<~_ސPzwV?>:lgmSƼ͍f*\   kirQ-{Qxb841AWkwU=:8pnuUg,0 3p sg{2}V=00g54:vdN1z55W~uU;7:o /6@UM RkFMⳊ)~Psp35-tŦ=}&*Ffq}rT;3)m   jgtU^E,'z15)xbB# 7A]zoS;.*n 7pvjҀ7'Hnb48'z.(KurwkR7,$l~TVjMQ幑jV)&T5>!yRA ;PaxshQ4'i  v kgzZ6#:F7B w&1'QmndP0"f  n<pyn#Ԇ=[U ʨ^vZr<'B]ahbP+cfqYiTT潗xʭПǘ1" 3J&    4@\lKxUP'd\XVn71`%bgi!e<`(X^9|q\ԣĕ4 @&    \ "M|iIu PHjWe~g$c t{{zyuj ZF.:`\Bؒ$K% >T&      9M`Go J;Sr!ց0ji  wDLH%SGX   m$'QA[ qê">àp6Ƀ8˅8͇:ϊ:ؐ>E2maaNG7)331-% C{fҞĕ9X(H_6  -1: PNabo7RQ1-4.4/3-3,4*5)6(%^sU#ԣR֢MסKڢLܤLݧPݩVΞCO   y z ̔"DKp]o;rvuDDJJGHEFCDAB??==;<=< IP,g[ 6 !Vв% .6LWu%8Gbbeeccaa__\\ZZXXVVVVJO~`rQD{-1'h%~ !"###!$0$G#\"r"8P\Gێ{{~~{{yywwuussqqporu:*#;'f\F)23+-)^! !"###$%%%li)bf-.,TI=#)*+19DQ T;).3?33* 9 L #####$%%%fe3^d/Wb)vF6|ՂYV5 '/3/0D1Z0p/--0{343333,"""%&&&fe3^d/Te*H` -:gUKЌ΅>7B /4123333333334L''(`abfe3^d/Te*Gf#=d1]3&a2u$<23,u[ J*E/412333333333q???(0` ||LS>( #,||5`_|zfR?-sU<' 1|zP%$~Y 7{gS@.tV<( i||tx.'!#'('$ vS 4zgS@-tV<' }|z'#!2YM+!"!n M/{gTA/tW<' C||vy :R1 >qdS]H7+!f H-r_Im)m||u!u<5 `2vHH 8@\-kraJ3 y a< 1#||z3 G$r,ȱƭ՛qm3NFTsCjI,   _?M||u Aq8eKP濠ؖcn%SKXtZvfE'&xp||v!C\;Αk뤯纓ܑSmWRv^2Rvq@E[| KY)||y?K6}6нִѳ㈨ֽ糅ލDm]^xmHS93DPtg/V||t FvKjJ]!托̭ͩԶѲvފ7q d\T" v~|| wQkAԞ{電ӶˮȪˮӶ佥ݎLۂEsD6ZX3òఖߪ⭅踎Э3{CgN- O}uEԃE銷Js)Jofޔ`ݐKzC5WW.漚tyRa ' p#Ud::kwpjPف@2V]3C=>w y)zb] ;Fu$UyyrS܅>0Tc7Ƅh9w  NzxC؍Qw43wUމ;-Rc4h-/~  2f&YɮD~&WzLkcݎyV8)Qf6ؙO"RN.jke-*E]5|3 JiyV6-WcB/Y.2 MqzCܖ\D-^}D]3ǴǬ>)2c.^ ϶+(~Ic/gE&Mu}tU7%:) 5jwmK9Eq@d/ҿÜ3 2Eh|pT2$7%Ss~CߠgȬ$7O.^?+SpkS. 4!Y e8d ;.8*۩Y+ky"?SbhS( 2<ju"o/*5h*+SjU"0R wCu֮^2y|q ?`hV->Cjl9h!fkl)dH\,riPئI{79K} - (.ZT*o%|(`Fo|r^!CqlWiǩ;}  w DnMzx˄<Ԟb֡eڥjޭq}L{IH4+*)% H֥j : @Q   3*8!&.ș4R$p$DB6272606.6,5*esMԺ}ѵxյwֶuҳuIJvE$ wv ͞":$H2YClS~dh{ mlSSUUQROOLMIIKM'$1bc5@wT  ! 5K_x܎):d=:Fwvyyvvssppmmoodd&pXw~2h,0Q2pt2 !"##$%%mf,Ti(SV=& (./7ANI/*230Cb-!!"##$%%hc3[d,Lb#\N@֍Ռٌ7x) C(21 1/+.=.723330<rrX~!"##$%%hc3Ye,Md&?]1dnF8aX[V65^yC)22333333330??????( @  !%" ""qXC3,&! Sux^ :rQ4 kT@2+&  jk&+%u Q0oN2 iQ>1* |w}vg]^QL:.$ d E(qQ5L$ `%;C]Rڕoh5X"d:un[I5" s6'5lt zmRzgW۞xѽ趐ٍWp.h,{Su`E,{T OV(վǿҳ·Jm.k>&  T6<ؗ]1OJ}iA@kh5;=$ RuŢָhVʜ/`}-Vd/7;" $ qČO 8?ga*58E¼ߤl{&oq r*g]iB„2q+l^&6R#.}# ~u¤ߦhȟħp %%V̼̎( "1DZ;|,X\QO>:=8;4.,}Ҭ̩̥;}Ci W.fц%ן -3SLIklklggikMI>t_:v* U^&(YKϘ|#I$'6 >H4%JE]Cx.tlۇŃ`_![???(  :D=4+" #,)a3i;r]NE=4%@N0 hB#]7T8``{[⩄q|_C/#ac\1j䴋ֽܶȝ泄Ġx|Y a Qպ޿ݿѮѠb'&K#^rȠ}Űɬث(M3ws9Ĥç:K`W߻˴ΠG($ixj\ۍ`ZsY?s<Zضи[uirfτ][W J#IξijdkҹnxSj0Z?:ιҶ Q0An!y5M$Rǒ_RV@7&p2!4h E6WٲKfWyQLSQF@"2SqO ,e`&4D`$CHVVF.miu[ 9 L6&`昌eoT-ߟ XإDYx؄XBD.|`a軼I&7 | @O0'@ObV&`e-` * L?3?#m& {OYzݫ.@LxPL @eo]c(3!om(_W.%?3? ?!3Ʊ asvCyõ?>FC{{o ɳ1S0X`0C;G̼ww`J gPaef.`p&pHq!-p( &` `W Ì`Pd`ffb`eaa`0cpdraޏ9 : ?cx/`&1o %L}d"M86 ,YPuTo-GL>}=a=##k?0"?ؘ'Y[&[Sbdh 40 3ry ˉ ?23!p(QC[" N.fxx1#*`b`xT!D3!זAJcC" Ñ f4b({M zxf+O2dwD@`ː,$ d\@03Ddho z2\ X8_a^F?C*uW71|߁u ?Tx-,16X8Ͽ0HJ0: XL{FW_38(Ï?? 1̈,<A@M6/ f)1I_c8⥭&j!"_34n=2A@AQFϞ0kh- s?4~0mpAo0y*V.L38#3A➁чG {cEI *R78&= 4Xg/33fx`. rl ;߼dqu ~U ` &h a ޼rĄ~1I}fXr(+4+1+{f9 IQa&P J1.=x%) kfx٫ oaOû/w}lf ,Hb X8zп6O7?:  Xn}Կ2O\a|×^+?p/G~3<݇? ߾c7!Ou%n>7'! _ePfzAa +0LepU ǀ!?e}'Sws115qޜİ`rn F/o ?~`8|3/3, 3FEyE`̰0cD\`"ư3h-;O)M KfxGv72b!Pc , _ξ0ucG3s}!Eq^ ?2zAM  `l 2 ḛ{O?mE~3Jg8M.y j\/uOW38XPb(Q0 Xb= ҙA[~2~dì-ױ7 _@ hFdCr9Ykg`p d`!Cw /I3|~`y_31p3[@E aceT eXrb -CA"0V0ldq@U.??k3,IE/܌ԑ@GO}鸳lপg/_>0AUA^AV9# `b,Q~O=p+YO?6!Iˇ!8@!/Ȁ!RՍ_+24Ԁ,oY8TdIį`C >~b^<\ _l?1,>ܜ7C .`u^POR_!Pٗaɻ w_b`ʠ+`?PaX)9)Ltku^́0V??aی\q8m>2_f3$ wFEv9i6) 6afp?w7?k?0 }fm/I2T220 ^BzT_P5KF뺇 (Xրr^jbP:C_`> ه? 2 . O?ex!>ͷ|ǰv[  N f'y`1V okJ`; ,pX?H;R+Z}Ĭ "|>2,>\߸z ‰ص`fgeacbq`&u`xMЬ3| 5>dز3ß 6`mjaC,3GhT`F ]T$BȐ"ur`)O 1]&?d L:JP~AX!An`ej`X 4X_3ߟ2Uga `d}a d|áǿEՀS+#c`do{(Н/=;`T>6T<` Tcgx 2<f;A`rz ?~g. o 0`OK1$1xS( ֝x*&̠#`o&e*Π!l]P22@`:!P?<=zfk]i! I⃯=1`Zt /9U`1)I`egflq1VN`G\Aۜb>/\ 4Mfw|gf0VwYH`dK`'_Q&%L @ĵ Xq<03s_`6|p;G2(J*< oK Vpu/H2zg1qbbPpebF@ ^8l _o30p[Lo^3\ƃO ‚ j "~3K"^~Vp!`H?28v9X$$@yLÉ.U\~(C27#$⁻@i ^}.?E8#7 L}lqp ˝ (VJ@:kP'XcBF;l \&J_DVp2-Ym`bav`dȀ P< %#P&W>TF\5?2,7~vKcP/]$ QP$ l;u bqqn9 ;a /0d)p;qo3q30 =v!VP~1309 qi?EԃW6ΰws{uD2f`AKWA,< A ,Yi&֮ o3@Ao߽̠-} tX3;FMX@c2 ~fd`&]`X Ge8pV6͟z!6-x; vj Xd$X4xe#320  660LQ;~ys =Q@C73D?e:Ew v& g#` rKTCW`/0f ߁5^ a`7;̍CAc6 s0õt zOb⭓ U03pz3.3e8 t?? :2ҍ3ة|a0 /4쯗'@]I` 16s/n?B+R/`w+gaoN>@1: qJ-+"@30H4 )ůge`3ثaPx͠&XG| i KfCW>cH`C=zۧ@6}?{ lE}hV r;@40@Chu6vەX䁼߂PJ|a};3"F"kf`/`+>o^ex7} ď0sc`N%XMr;@t flHl*0A,[g`_F,ypkA7C@]gQj|ĂK'8ꙟYc v 13|ֲo| T/CCC!(T?! b _e j Z ղ쌲QsC?@G} i8W A@ n40؁f7pبq/!V  )lfJIENDB`taskcoach-1.4.3/nuke.py000077500000000000000000000023631265347643000150140ustar00rootroot00000000000000#!/usr/bin/python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, shutil def nuke(): sin, sout = os.popen4('svn st --no-ignore') for line in sout: if line.startswith('?') or line.startswith('I'): filename = line[7:].strip() if filename != '.buildbot-sourcedata': if os.path.isdir(filename): shutil.rmtree(filename) else: os.remove(filename) print 'Removed', filename sout.close() sin.close() if __name__ == '__main__': nuke() taskcoach-1.4.3/pymake.py000066400000000000000000000267041265347643000153420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from buildlib import clean, bdist_rpm_fedora, bdist_rpm_opensuse, bdist_deb, \ bdist_winpenpack, bdist_portableapps from setup import setupOptions from taskcoachlib import meta import sys import os import glob import wx setupOptions['cmdclass'] = dict(clean=clean, bdist_rpm_fedora=bdist_rpm_fedora, bdist_rpm_opensuse=bdist_rpm_opensuse, bdist_deb=bdist_deb, bdist_winpenpack=bdist_winpenpack, bdist_portableapps=bdist_portableapps) distdir = 'dist' builddir = 'build' manifest = """ %s """ % meta.name doubleline = '================================================================\n' header = doubleline + '%(name)s - %(description)s\n' % meta.metaDict + doubleline aboutText = header + ''' Version %(version)s, %(date)s By %(author)s <%(author_email)s> %(url)s %(copyright)s %(license)s ''' % meta.metaDict + doubleline installText = header + ''' --- Prerequisites ---------------------------------------------- You need Python version %(pythonversion)s or higher, wxPython version %(wxpythonversion)s or higher, and Twisted version %(twistedversionnumber)s or higher. --- Testing ---------------------------------------------------- Before installing, you may want to run the unittests included. Issue the following command: cd tests; python test.py If all goes well, you should see a number of dots appearing and the message 'Ran X tests in Y seconds. OK'. If not, you'll get one or more failed tests. In that case, please run the tests again, redirecting the output to a textfile, like this: python test.py 2> errors.txt Please mail me the errors.txt file and your platform information (operating system version, Python version and wxPython version). --- Installation ----------------------------------------------- There are two options to install %(name)s: First, you can simply move this directory to some suitable location and run taskcoach.py (or taskcoach.pyw if you are on the Windows platform) from there. Alternatively, you can use the Python distutils setup script to let Python install %(name)s for you. In that case run the following command: python setup.py install If you have a previous version of %(name)s installed, you may need to force old files to be overwritten, like this: python setup.py install --force ''' % meta.metaDict + doubleline buildText = header + ''' --- Building --------------------------------------------------- To be done. ''' % meta.metaDict + doubleline def writeFile(filename, text, directory='.'): # pylint: disable=W0621 if not os.path.exists(directory): os.mkdir(directory) with file(os.path.join(directory, filename), 'w') as textFile: textFile.write(text) def createDocumentation(): writeFile('README.txt', aboutText) writeFile('INSTALL.txt', installText) writeFile('LICENSE.txt', meta.licenseText) def createInnoSetupScript(): script = file('build.in/windows/taskcoach.iss').read() writeFile('taskcoach.iss', script % meta.metaDict, builddir) def createDebianChangelog(): changelog = file('build.in/debian/changelog').read() writeFile('changelog', changelog % meta.metaDict, os.path.join(builddir, 'debian')) if sys.argv[1] == 'py2exe': from distutils.core import setup import py2exe # pylint: disable=F0401 import shutil shutil.copyfile('taskcoach.pyw', 'taskcoach_console.py') py2exeDistdir = '%s-%s-win32exe' % (meta.filename, meta.version) # Get .mo files for wxWidgets: locale_dir = os.path.join(os.path.dirname(wx.__file__), 'locale') mo_path = os.path.join('LC_MESSAGES', 'wxstd.mo') mo_files = [] for language_dir in os.listdir(locale_dir): mo_abs_filename = os.path.join(locale_dir, language_dir, mo_path) mo_rel_dir = os.path.join('locale', language_dir, 'LC_MESSAGES') mo_files.append((mo_rel_dir, [mo_abs_filename])) # DLL's we redistribute so people don't have to download them: dll_files = [('', ['dist.in/gdiplus.dll']), ('Microsoft.VC90.CRT', ['dist.in/msvcp90.dll', 'dist.in/msvcr90.dll', 'dist.in/Microsoft.VC90.CRT.manifest'])] setupOptions.update({ 'windows': [{'script': 'taskcoach.pyw', 'other_resources': [(24, 1, manifest)], 'icon_resources': [(1, 'icons.in/taskcoach.ico')]}], 'console': [{'script': 'taskcoach_console.py', 'other_resources': [(24, 1, manifest)]}], 'options': {'py2exe': { 'compressed': 1, 'optimize': 2, # We need to explicitly include these packages because they # are imported implicitly: 'packages': ['taskcoachlib.i18n', 'taskcoachlib.thirdparty.keyring', 'taskcoachlib.thirdparty.pubsub', 'taskcoachlib.thirdparty.pubsub.core', 'taskcoachlib.thirdparty.pubsub.core.kwargs', 'taskcoachlib.thirdparty._weakrefset'], 'dist_dir': os.path.join(builddir, py2exeDistdir), 'dll_excludes': ['MSVCR80.dll', 'UxTheme.dll']}}, 'data_files': dll_files + mo_files}) os.environ['PATH'] = 'dist.in;' + os.environ['PATH'] elif sys.argv[1] == 'py2app': from setuptools import setup # pylint: disable=W0404 setupOptions.update(dict(app=['taskcoach.py'], setup_requires=['py2app'], options=dict(py2app=dict(argv_emulation=True, compressed=True, dist_dir=os.path.join(builddir, 'Task Coach'), optimize=2, iconfile='icons.in/taskcoach.icns', # We need to explicitly include i18n modules because they # are imported implicitly via __import__: includes=[filename[:-3].replace('/', '.') for filename \ in glob.glob('taskcoachlib/i18n/*.py') + \ glob.glob('taskcoachlib/thirdparty/pubsub/*.py') + \ glob.glob('taskcoachlib/thirdparty/pubsub/core/*.py') + \ glob.glob('taskcoachlib/thirdparty/pubsub/core/kwargs/*.py')], plist=dict(CFBundleIconFile='taskcoach.icns', CFBundleDocumentTypes=[dict(CFBundleTypeExtensions=['tsk'], CFBundleTypeIconFile='taskcoach.icns', CFBundleTypeName='%s task file' % meta.name, CFBundleTypeRole='Editor')]))))) elif sys.argv[1] == 'bdist_rpm_fedora': from distutils.core import setup spec_file = file('build.in/fedora/taskcoach.spec').read() % meta.metaDict spec_file = spec_file.split('\n') setupOptions.update(dict(options=dict(bdist_rpm_fedora=dict(\ spec_file=spec_file, icon='icons.in/taskcoach.png', desktop_file='build.in/linux_common/taskcoach.desktop')))) # On Fedora, to keep the rpm build process going when it finds # unpackaged files you need to create a ~/.rpmmacros file # containing the line '%_unpackaged_files_terminate_build 0'. elif sys.argv[1] == 'bdist_rpm_opensuse': from distutils.core import setup spec_file = file('build.in/opensuse/taskcoach.spec').read() % meta.metaDict spec_file = spec_file.split('\n') setupOptions.update(dict(options=dict(bdist_rpm_opensuse=dict(\ spec_file=spec_file, icon='icons.in/taskcoach.png', desktop_file='build.in/linux_common/taskcoach.desktop')))) elif sys.argv[1] in ['bdist_deb', 'bdist_ubuntu']: from distutils.core import setup bdist_deb = dict(\ package=meta.data.filename_lower, title=meta.data.name, description=meta.data.description, long_description=meta.data.long_description, version=meta.data.version, author=meta.data.author, author_email=meta.data.author_email, copyright=meta.data.copyright, license=meta.data.license_title_and_version, license_abbrev=meta.data.license_title_and_version_abbrev, license_path='/usr/share/common-licenses/GPL-3', license_summary=meta.data.license_notice, wxpythonversion=meta.data.wxpythonversionnumber, twistedversion=meta.data.twistedversionnumber, subsection='Office', url=meta.data.url, command='/usr/bin/taskcoach.py', changelog_content=file('changelog_content', 'rb').read().rstrip(), sdist_exclude='buildlib') if sys.argv[1] == 'bdist_ubuntu': bdist_deb['distribution'] = sys.argv[2] bdist_deb['version'] = '%s-0ubuntu%s~%s' % (meta.version, sys.argv[3], sys.argv[2]) bdist_deb['section'] = 'editors' sys.argv[1] = 'bdist_deb' del sys.argv[2] del sys.argv[2] setupOptions.update(dict(options=dict(bdist_deb=bdist_deb))) elif sys.argv[1] == 'bdist_winpenpack': from distutils.core import setup setupOptions.update(dict(options=dict(bdist_winpenpack=dict(\ version=meta.data.version, license=meta.data.license_title, url=meta.data.url, filename=meta.data.filename, date=meta.data.date)))) elif sys.argv[1] == 'bdist_portableapps': from distutils.core import setup setupOptions.update(dict(options=dict(bdist_portableapps=dict(\ name=meta.data.name, version=meta.data.version, license=meta.data.license_title, url=meta.data.url, filename=meta.data.filename, date=meta.data.date)))) else: from distutils.core import setup if __name__ == '__main__': for directory in builddir, distdir: if not os.path.exists(directory): os.mkdir(directory) createDocumentation() setup(**setupOptions) # pylint: disable=W0142 if sys.argv[1] == 'py2exe': createInnoSetupScript() taskcoach-1.4.3/release.py000066400000000000000000000744461265347643000155020ustar00rootroot00000000000000#!/usr/bin/env python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # Sanity check import sys PYTHONEXE = 'python' if sys.platform == 'darwin': import struct, os, subprocess if len(struct.pack('L', 0)) == 8: print 'Running 64-bits Python on Darwin; relaunching with 32-bits Python.' sys.exit(os.system('python-32 %s' % ' '.join(sys.argv))) output = subprocess.check_output(['getconf', 'LONG_BIT']).strip() if output == '64': PYTHONEXE = 'python-32' import struct if sys.platform == 'darwin' and len(struct.pack('L', 0)) == 8: raise RuntimeError('Please use python-32 to run this script') HELP_TEXT = ''' Release steps: - Get latest translations from Launchpad: * Go to https://translations.launchpad.net/taskcoach//+export * Wait for the confirmation email from Launchpad and copy the URL * Run 'cd i18n.in && python make.py ' to update the translations * Run 'make languagetests' to test the translations * When all tests pass, run 'svn commit -m "Updated translations"' - Run 'make reallyclean' to remove old packages. - Run 'make alltests'. - Run 'python release.py release' to build the distributions, upload and download them to/from Sourceforge, generate MD5 digests, generate the website, upload the website to the Dreamhost and Hostland websites, announce the release on Twitter, Identi.ca, Freecode and PyPI (Python Package Index), mark the bug reports on SourceForge fixed-and-released, send the announcement email, mark .dmg and .exe files as default downloads for their platforms, and to tag the release in Subversion. - Create branch if feature release. - Merge recent changes to the trunk. - Add release to Sourceforge bug tracker and support request groups. - Mark feature requests on Uservoice completed. - If new release branch, update the buildbot masters configuration. ''' import ftplib import smtplib import httplib import urllib import urllib2 import cookielib import os import glob import sys import getpass import hashlib import base64 import ConfigParser import codecs import optparse import taskcoachlib.meta import oauth2 as oauth import time import shutil import zipfile import subprocess try: import simplejson as json except ImportError: import json # pylint: disable=W0621,W0613 def progress(func): ''' Decorator to print out a message when a release step starts and print a message when the release step is finished. ''' def inner(*args, **kwargs): step = func.__name__.replace('_', ' ') print step[0].upper() + step[1:] + '...' func(*args, **kwargs) print 'Done %s.' % step return inner class Settings(ConfigParser.SafeConfigParser, object): def __init__(self): super(Settings, self).__init__() self.set_defaults() self.filename = os.path.expanduser('~/.tcreleaserc') self.read(self.filename) def set_defaults(self): defaults = dict(sourceforge=['username', 'password', 'consumer_key', 'consumer_secret', 'oauth_token', 'oauth_token_secret', 'api_key'], smtp=['hostname', 'port', 'username', 'password', 'sender_name', 'sender_email_address'], dreamhost=['hostname', 'username', 'password', 'folder'], hostland=['hostname', 'username', 'password', 'folder'], pypi=['username', 'password'], twitter=['consumer_key', 'consumer_secret', 'oauth_token', 'oauth_token_secret'], identica=['username', 'password'], freecode=['auth_code'], buildbot=['username', 'password', 'host']) for section in defaults: self.add_section(section) for option in defaults[section]: self.set(section, option, 'ask') def get(self, section, option): # pylint: disable=W0221 value = super(Settings, self).get(section, option) if value == 'ask': get_input = getpass.getpass if option == 'password' else raw_input value = get_input('%s %s: ' % (section, option)).strip() self.set(section, option, value) self.write(file(self.filename, 'w')) return value class HelpFormatter(optparse.IndentedHelpFormatter): ''' Don't mess up the help text formatting. ''' def format_epilog(self, epilog): return epilog class SFAPIError(Exception): pass class SourceforgeAPI(object): def __init__(self, settings, options): consumer_key = settings.get('sourceforge', 'consumer_key') consumer_secret = settings.get('sourceforge', 'consumer_secret') consumer = oauth.Consumer(key=consumer_key, secret=consumer_secret) oauth_token = settings.get('sourceforge', 'oauth_token') oauth_token_secret = settings.get('sourceforge', 'oauth_token_secret') token = oauth.Token(key=oauth_token, secret=oauth_token_secret) self.client = oauth.Client(consumer, token) self.verbose = options.verbose self.dry_run = options.dry_run def __apply(self, func, data=None): url = 'https://sourceforge.net/rest/p/taskcoach/' + func if data is None: response, content = self.client.request(url) ok = 200 else: response, content = self.client.request(url, method='POST', body=urllib.urlencode(data)) ok = 302 if response.status != ok: raise SFAPIError(response.status) if data is None: return json.loads(content) def fix(self, id_): if self.dry_run: print 'Skipping marking #%s fixed' % id_ else: ticketData = self.__apply('bugs/%s' % id_)['ticket'] # Status: fixed; priority: 1 data = [('ticket_form.status', 'fixed')] for name, value in ticketData.get('custom_fields', dict()).items(): if name == '_priority': value = '1' if name == '_milestone': # WTF? data.append(('ticket_form._milestone', value)) else: data.append(('ticket_form.custom_fields.%s' % name, value)) self.__apply('bugs/%s/save' % id_, data=data) # Canned response self.__apply('bugs/_discuss/thread/%s/new' % ticketData['discussion_thread']['_id'], data=[('text', '''A fix was made and checked into the source code repository of Task Coach. The fix will be part of the next release. You will get another notification when that release is available with the request to install the new release and confirm that your issue has indeed been fixed. If you like, you can download a recent build from http://www.fraca7.net/TaskCoach-packages/latest_bugfixes.py to test the fix. Because a fix has been made for this bug report, the priority of this report has been lowered to 1 and its resolution has been set to 'Fixed'. Thanks, Task Coach development team''')]) if self.verbose: print 'Bug #%s fixed.' % id_ def release(self, id_): if self.dry_run: print 'Skipping marking #%s released.' % id_ else: try: ticketData = self.__apply('bugs/%s' % id_)['ticket'] self.__apply('bugs/%s/save' % id_, data=[('ticket_form.status', 'fixed-and-released')]) self.__apply('bugs/_discuss/thread/%s/new' % ticketData['discussion_thread']['_id'], data=[('text', '''This bug should be fixed in the latest release of Task Coach. Can you please install the latest release of Task Coach and confirm that this bug has indeed been fixed? Thanks, Task Coach development team''')]) except SFAPIError: print 'Warning: could not marking fix #%s released.' % id_ def sourceforge_location(settings): metadata = taskcoachlib.meta.data.metaDict project = metadata['filename_lower'] project_first_two_letters = project[:2] project_first_letter = project[0] username = '%s,%s' % (settings.get('sourceforge', 'username'), project) folder = '/home/frs/project/%(p)s/%(pr)s/%(project)s/%(project)s/' \ 'Release-%(version)s/' % dict(project=project, pr=project_first_two_letters, p=project_first_letter, version=metadata['version']) return '%s@frs.sourceforge.net:%s' % (username, folder) def rsync(settings, options, rsync_command): location = sourceforge_location(settings) rsync_command = rsync_command % location if options.dry_run: print 'Skipping %s.' % rsync_command else: os.system(rsync_command) @progress def building_packages(settings, options): host = settings.get('buildbot', 'host') metadata = taskcoachlib.meta.data.metaDict branch = 'branches/Release%s_Branch' % '_'.join(metadata['version'].split('.')[:2]) if options.dry_run: print 'Skipping force build on branch "%s"' % branch else: status = json.load(urllib.urlopen('http://%s:8010/json/builders/Release' % host)) if status['state'] != 'idle': raise RuntimeError('Builder Release is not idle.') cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) for i in xrange(3): # Retry in case of 500 try: opener.open('http://%s:8010/login' % host, urllib.urlencode([('username', settings.get('buildbot', 'username')), ('passwd', settings.get('buildbot', 'password'))])) opener.open('http://%s:8010/builders/Release/force' % host, urllib.urlencode([('forcescheduler', 'Force'), ('branch', branch), ('username', 'release'), ('reason', 'release')])) except urllib2.HTTPError as e: print 'Failed to force (%s), retrying' % e time.sleep(5) else: break else: raise RuntimeError('Could not force build') if options.verbose: print 'Build forced.' if options.verbose: print 'Waiting for completion.' while True: time.sleep(60) status = json.load(urllib.urlopen('http://%s:8010/json/builders/Release' % host)) if status['state'] == 'idle': break if options.verbose: print 'Build finished.' print 'Downloading release.zip' buildno = status['cachedBuilds'][-1] status = json.load(urllib.urlopen('http://%s:8010/json/builders/Release/builds/%d' % (host, buildno))) try: zipurl = status['steps'][-1]['urls']['Download release'] except: raise RuntimeError('release.zip URL not found. Build failed.') if os.path.exists('dist'): shutil.rmtree('dist') os.mkdir('dist') shutil.copyfileobj(urllib.urlopen(zipurl), file(os.path.join('dist', 'release.zip'), 'wb')) try: zipFile = zipfile.ZipFile(os.path.join('dist', 'release.zip'), 'r') try: for info in zipFile.infolist(): if options.verbose: print 'Extracting "%s"' % info.filename shutil.copyfileobj(zipFile.open(info, 'r'), file(os.path.join('dist', info.filename), 'wb')) finally: zipFile.close() finally: os.remove(os.path.join('dist', 'release.zip')) @progress def uploading_distributions_to_SourceForge(settings, options): rsync(settings, options, 'rsync -avP -e ssh dist/* %s') @progress def marking_default_downloads(settings, options): defaults = list() for name in os.listdir('dist'): if name.endswith('.dmg'): defaults.append(('mac', name)) elif name.endswith('-win32.exe'): defaults.append(('windows', name)) for platform, name in defaults: if options.dry_run: print 'Skipping marking "%s" as default for %s' % (name, platform) else: # httplib does not seem to handle PUT very well # See http://stackoverflow.com/questions/111945/is-there-any-way-to-do-http-put-in-python opener = urllib2.build_opener(urllib2.HTTPSHandler) url = 'https://sourceforge.net/projects/taskcoach/files/taskcoach/Release-%s/%s' % (taskcoachlib.meta.version, name) req = urllib2.Request(url, data=urllib.urlencode(dict(default=platform, api_key=settings.get('sourceforge', 'api_key')))) req.add_header('Content-Type', 'application/x-www-form-urlencoded') req.get_method = lambda: 'PUT' try: opener.open(req) except urllib2.HTTPError as e: print 'Warning: could not mark "%s" as default download for %s (%s)' % (name, platform, e) else: if options.verbose: print 'Marked "%s" as default download for %s' % (name, platform) @progress def marking_bug_fixed(settings, options, *bugIds): api = SourceforgeAPI(settings, options) for bugId in bugIds: api.fix(bugId) @progress def marking_bug_released(settings, options, *bugIds): api = SourceforgeAPI(settings, options) for bugId in bugIds: api.release(bugId) @progress def downloading_distributions_from_SourceForge(settings, options): rsync(settings, options, 'rsync -avP -e ssh %s dist/') @progress def generating_MD5_digests(settings, options): contents = '''md5digests = {\n''' for filename in glob.glob(os.path.join('dist', '*')): md5digest = hashlib.md5(file(filename, 'rb').read()) # pylint: disable=E1101 filename = os.path.basename(filename) hexdigest = md5digest.hexdigest() contents += ''' "%s": "%s",\n''' % (filename, hexdigest) if options.verbose: print '%40s -> %s' % (filename, hexdigest) contents += '}\n' md5digests_file = file(os.path.join('website.in', 'md5digests.py'), 'w') md5digests_file.write(contents) md5digests_file.close() @progress def generating_website(settings, options): os.system('make changes') os.chdir('website.in') os.system('"%s" make.py' % PYTHONEXE) os.chdir('..') class SimpleFTP(ftplib.FTP, object): def __init__(self, hostname, username, password, folder='.'): super(SimpleFTP, self).__init__(hostname, username, password) self.ensure_folder(folder) self.remote_root = folder def ensure_folder(self, folder): try: self.cwd(folder) except ftplib.error_perm: self.mkd(folder) self.cwd(folder) def put(self, folder, *filename_whitelist): for root, subfolders, filenames in os.walk(folder): if root != folder: print 'Change into %s' % root for part in root.split(os.sep): self.cwd(part) for subfolder in subfolders: print 'Create %s' % os.path.join(root, subfolder) try: self.mkd(subfolder) except ftplib.error_perm, info: print info for filename in filenames: if filename_whitelist and filename not in filename_whitelist: print 'Skipping %s' % os.path.join(root, filename) continue print 'Store %s' % os.path.join(root, filename) try: self.storbinary('STOR %s' % filename, file(os.path.join(root, filename), 'rb')) except ftplib.error_perm, info: if str(info).endswith('Overwrite permission denied'): self.delete(filename) self.storbinary('STOR %s' % filename, file(os.path.join(root, filename), 'rb')) else: raise self.cwd(self.remote_root) def get(self, filename): print 'Retrieve %s' % filename self.retrbinary('RETR %s' % filename, open(filename, 'wb').write) def uploading_website_to_website_host(settings, options, website_host, *filename_whitelist): settings_section = website_host.lower() hostname = settings.get(settings_section, 'hostname') username = settings.get(settings_section, 'username') password = settings.get(settings_section, 'password') folder = settings.get(settings_section, 'folder') if hostname and username and password and folder: ftp = SimpleFTP(hostname, username, password, folder) os.chdir('website.out') if options.dry_run: print 'Skipping ftp.put(website.out).' else: ftp.put('.', *filename_whitelist) ftp.quit() os.chdir('..') else: print 'Warning: cannot upload website to %s; missing credentials' % \ website_host @progress def uploading_website_to_Dreamhost(settings, options, *args): uploading_website_to_website_host(settings, options, 'Dreamhost', *args) @progress def uploading_website_to_Hostland(settings, options, *args): uploading_website_to_website_host(settings, options, 'Hostland', *args) @progress def registering_with_PyPI(settings, options): username = settings.get('pypi', 'username') password = settings.get('pypi', 'password') pypirc = file('.pypirc', 'w') pypirc.write('[server-login]\nusername = %s\npassword = %s\n' % \ (username, password)) pypirc.close() # pylint: disable=W0404 from setup import setupOptions languages_pypi_does_not_know = ['Basque', 'Belarusian', 'Breton', 'Estonian', 'Galician', 'Lithuanian', 'Norwegian (Bokmal)', 'Norwegian (Nynorsk)', 'Occitan', 'Papiamento', 'Slovene', 'German (Low)', 'Mongolian', 'English (AU)', 'English (CA)', 'English (GB)', 'English (US)'] for language in languages_pypi_does_not_know: try: setupOptions['classifiers'].remove('Natural Language :: %s' % language) except ValueError: pass from distutils.core import setup del sys.argv[1:] os.environ['HOME'] = '.' sys.argv.append('register') if options.dry_run: print 'Skipping PyPI registration.' else: setup(**setupOptions) # pylint: disable=W0142 os.remove('.pypirc') def postRequest(connection, api_call, body, contentType, ok=200, **headers): headers['Content-Type'] = contentType connection.request('POST', api_call, body, headers) response = connection.getresponse() if response.status != ok: print 'Request failed: %d %s' % (response.status, response.reason) return False return True def httpPostRequest(host, api_call, body, contentType, ok=200, port=80, **headers): connection = httplib.HTTPConnection(host, port) return postRequest(connection, api_call, body, contentType, ok, **headers) def httpsPostRequest(host, api_call, body, contentType, ok=200, **headers): connection = httplib.HTTPSConnection(host) return postRequest(connection, api_call, body, contentType, ok, **headers) @progress def announcing_on_Freecode(settings, options): auth_code = settings.get('freecode', 'auth_code') metadata = taskcoachlib.meta.data.metaDict version = '%(version)s' % metadata changelog = latest_release(metadata, summary_only=True) tag = 'Feature enhancements' if version.endswith('.0') else 'Bug fixes' release = dict(version=version, changelog=changelog, tag_list=tag) body = codecs.encode(json.dumps(dict(auth_code=auth_code, release=release))) path = '/projects/taskcoach/releases.json' host = 'freecode.com' if options.dry_run: print 'Skipping announcing "%s" on %s.' % (release, host) else: httpsPostRequest(host, path, body, 'application/json', ok=201) def status_message(): ''' Return a brief status message for e.g. Twitter. ''' metadata = taskcoachlib.meta.data.metaDict return "Release %(version)s of %(name)s is available from %(url)s. " \ "See what's new at %(url)schanges.html." % metadata def announcing_via_Basic_Auth_Api(settings, options, section, host, api_prefix=''): credentials = ':'.join(settings.get(section, credential) \ for credential in ('username', 'password')) basic_auth = base64.encodestring(credentials)[:-1] status = status_message() api_call = api_prefix + '/statuses/update.json' body = '='.join((urllib.quote(body_part.encode('utf-8')) \ for body_part in ('status', status))) if options.dry_run: print 'Skipping announcing "%s" on %s.' % (status, host) else: httpPostRequest(host, api_call, body, 'application/x-www-form-urlencoded; charset=utf-8', Authorization='Basic %s' % basic_auth) def announcing_via_OAuth_Api(settings, options, section, host): consumer_key = settings.get(section, 'consumer_key') consumer_secret = settings.get(section, 'consumer_secret') consumer = oauth.Consumer(key=consumer_key, secret=consumer_secret) oauth_token = settings.get(section, 'oauth_token') oauth_token_secret = settings.get(section, 'oauth_token_secret') token = oauth.Token(key=oauth_token, secret=oauth_token_secret) client = oauth.Client(consumer, token) status = status_message() if options.dry_run: print 'Skipping announcing "%s" on %s.' % (status, host) else: response, dummy_content = client.request( \ 'http://api.%s/1.1/statuses/update.json' % host, method='POST', body='status=%s' % status, headers=None) if response.status != 200: print 'Request failed: %d %s' % (response.status, response.reason) @progress def announcing_on_Twitter(settings, options): announcing_via_OAuth_Api(settings, options, 'twitter', 'twitter.com') @progress def announcing_on_Identica(settings, options): announcing_via_Basic_Auth_Api(settings, options, 'identica', 'identi.ca', '/api') def uploading_website(settings, options, *args): ''' Upload the website contents to the website(s). If args is present only the files specified in args are uploaded. ''' #uploading_website_to_Dreamhost(settings, options, *args) uploading_website_to_Hostland(settings, options, *args) def announcing(settings, options): registering_with_PyPI(settings, options) announcing_on_Twitter(settings, options) announcing_on_Identica(settings, options) announcing_on_Freecode(settings, options) mailing_announcement(settings, options) def updating_Sourceforge_trackers(settings, options): sys.path.insert(0, 'changes.in') import changes, changetypes for release in changes.releases: if release.number == taskcoachlib.meta.version: break else: raise RuntimeError('Could not find version "%s" in changelog' % taskcoachlib.meta.version) alreadyDone = set() for bugFixed in release.bugsFixed: if isinstance(bugFixed, changetypes.Bugv2): for id_ in bugFixed.changeIds: if id_ not in alreadyDone: alreadyDone.add(id_) if options.dry_run: print 'Skipping mark bug #%s released' % id_ else: api = SourceforgeAPI(settings, options) api.release(id_) def releasing(settings, options): building_packages(settings, options) uploading_distributions_to_SourceForge(settings, options) downloading_distributions_from_SourceForge(settings, options) generating_MD5_digests(settings, options) generating_website(settings, options) uploading_website(settings, options) announcing(settings, options) updating_Sourceforge_trackers(settings, options) tagging_release_in_subversion(settings, options) marking_default_downloads(settings, options) def latest_release(metadata, summary_only=False): sys.path.insert(0, 'changes.in') # pylint: disable=F0401 import changes import converter del sys.path[0] greeting = 'release %(version)s of %(name)s.' % metadata if summary_only: greeting = greeting[0].upper() + greeting[1:] else: greeting = "We're happy to announce " + greeting text_converter = converter.ReleaseToTextConverter() convert = text_converter.summary if summary_only else text_converter.convert return convert(changes.releases[0], greeting) @progress def mailing_announcement(settings, options): metadata = taskcoachlib.meta.data.metaDict for sender_info in 'sender_name', 'sender_email_address': metadata[sender_info] = settings.get('smtp', sender_info) metadata['release'] = latest_release(metadata) msg = '''To: %(announcement_addresses)s BCC: %(bcc_announcement_addresses)s From: %(sender_name)s <%(sender_email_address)s> Reply-To: %(author_email)s Subject: [ANN] Release %(version)s of %(name)s Hi, %(release)s What is %(name)s? %(name)s is a simple task manager that allows for hierarchical tasks, i.e. tasks in tasks. %(name)s is open source (%(license_abbrev)s) and is developed using Python and wxPython. You can download %(name)s from: %(url)s In addition to the source distribution, packaged distributions are available for Windows, Mac OS X, Linux, and BSD. Note that although we consider %(name)s to be %(release_status)s software, and we do our best to prevent bugs, it is always wise to back up your task file regularly, and especially when upgrading to a new release. Regards, %(author)s Task Coach development team ''' % metadata recipients = metadata['announcement_addresses'] server = settings.get('smtp', 'hostname') port = settings.get('smtp', 'port') username = settings.get('smtp', 'username') password = settings.get('smtp', 'password') session = smtplib.SMTP(server, port) if options.verbose: session.set_debuglevel(1) session.helo() session.ehlo() if password: session.starttls() session.esmtp_features["auth"] = "LOGIN" # Needed for Gmail SMTP. session.login(username, password) if options.dry_run: print 'Skipping sending mail.' smtpresult = None else: smtpresult = session.sendmail(username, recipients, msg) if smtpresult: errstr = "" for recip in smtpresult.keys(): errstr = """Could not deliver mail to: %s Server said: %s %s %s""" % (recip, smtpresult[recip][0], smtpresult[recip][1], errstr) raise smtplib.SMTPException, errstr @progress def tagging_release_in_subversion(settings, options): metadata = taskcoachlib.meta.data.metaDict version = metadata['version'] username = settings.get('sourceforge', 'username') release_tag = 'Release' + version.replace('.', '_') output = subprocess.check_output(['svn', 'info']) for line in output.split('\n'): if line.startswith('URL: '): source_url = line[5:].strip() break else: raise RuntimeError('Could not find source URL') if source_url.startswith('https://'): tag_url = 'https://svn.code.sf.net/p/taskcoach/code/tags/' else: tag_url = 'svn+ssh://%s@svn.code.sf.net/p/taskcoach/code/tags/' % username target_url = tag_url + release_tag commit_message = 'Tag for release %s.' % version svn_copy = 'svn copy -m "%s" %s %s' % (commit_message, source_url, target_url) if options.dry_run: print 'Skipping %s.' % svn_copy else: os.system(svn_copy) COMMANDS = dict(release=releasing, build=building_packages, upload=uploading_distributions_to_SourceForge, download=downloading_distributions_from_SourceForge, md5=generating_MD5_digests, websitegen=generating_website, website=uploading_website, websiteDH=uploading_website_to_Dreamhost, websiteHL=uploading_website_to_Hostland, twitter=announcing_on_Twitter, identica=announcing_on_Identica, freecode=announcing_on_Freecode, pypi=registering_with_PyPI, mail=mailing_announcement, announce=announcing, update=updating_Sourceforge_trackers, tag=tagging_release_in_subversion, markdefault=marking_default_downloads, markfixed=marking_bug_fixed, markreleased=marking_bug_released) USAGE = 'Usage: %%prog [options] [%s]' % '|'.join(sorted(COMMANDS.keys())) SETTINGS = Settings() parser = optparse.OptionParser(usage=USAGE, epilog=HELP_TEXT, formatter=HelpFormatter()) parser.add_option('-n', '--dry-run', action='store_true', dest='dry_run', help="don't make permanent changes") parser.add_option('-v', '--verbose', action='store_true', dest='verbose', help='provide more detailed progress information') options, args = parser.parse_args() try: if len(args) > 1: COMMANDS[args[0]](SETTINGS, options, *args[1:]) # pylint: disable=W0142 else: COMMANDS[args[0]](SETTINGS, options) except (KeyError, IndexError): parser.print_help() taskcoach-1.4.3/setup.py000066400000000000000000000114041265347643000152030ustar00rootroot00000000000000#!/usr/bin/env python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from distutils.core import setup from taskcoachlib import meta import platform import os import sys def findPackages(base): if not os.path.exists(base): return list() result = [base.replace('/', '.')] for name in os.listdir(base): fname = os.path.join(base, name) if os.path.isdir(fname) and \ os.path.exists(os.path.join(fname, '__init__.py')): result.extend(findPackages(fname)) return result def majorAndMinorPythonVersion(): info = sys.version_info try: return info.major, info.minor except AttributeError: return info[0], info[1] setupOptions = { 'name': meta.filename, 'author': meta.author, 'author_email': meta.author_email, 'description': meta.description, 'long_description': meta.long_description, 'version': meta.version, 'url': meta.url, 'license': meta.license, 'download_url': meta.download, 'packages': findPackages('taskcoachlib') + findPackages('buildlib'), 'scripts': ['taskcoach.py'], 'classifiers': [\ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: End Users/Desktop', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Topic :: Office/Business']} # Add available translations: languages = sorted([name for name, (code, enabled) in meta.data.languages.items() if enabled]) for language in languages: setupOptions['classifiers'].append('Natural Language :: %s' % 'English' if languages == 'English (US)' else 'Natural Language :: %s' % language) system = platform.system() if system == 'Linux': # Add data files for Debian-based systems: current_dist = [dist.lower() for dist in platform.dist()] if 'debian' in current_dist or 'ubuntu' in current_dist: setupOptions['data_files'] = [('share/applications', ['build.in/linux_common/taskcoach.desktop']), ('share/pixmaps', ['icons.in/taskcoach.png'])] if 'ubuntu' in current_dist: setupOptions['data_files'].append(('share/appdata', ['build.in/debian/taskcoach.appdata.xml'])) elif system == 'Windows': setupOptions['scripts'].append('taskcoach.pyw') major, minor = majorAndMinorPythonVersion() sys.path.insert(0, os.path.join('taskcoachlib', 'bin.in', 'windows', 'py%d%d' % (major, minor))) import _pysyncml # ... # ModuleFinder can't handle runtime changes to __path__, but win32com uses them try: # py2exe 0.6.4 introduced a replacement modulefinder. # This means we have to add package paths there, not to the built-in # one. If this new modulefinder gets integrated into Python, then # we might be able to revert this some day. # if this doesn't work, try import modulefinder try: import py2exe.mf as modulefinder except ImportError: import modulefinder import win32com, sys for p in win32com.__path__[1:]: modulefinder.AddPackagePath("win32com", p) for extra in ["win32com.shell"]: #,"win32com.mapi" __import__(extra) m = sys.modules[extra] for p in m.__path__[1:]: modulefinder.AddPackagePath(extra, p) except ImportError: # no build path setup, no worries. pass elif system == 'Darwin': # When packaging for MacOS, choose the right binary depending on # the platform word size. Actually, we're always packaging on 32 # bits. import struct wordSize = '32' if struct.calcsize('L') == 4 else '64' sys.path.insert(0, os.path.join('taskcoachlib', 'bin.in', 'macos', 'IA%s' % wordSize)) sys.path.insert(0, os.path.join('extension', 'macos', 'bin-ia32')) # pylint: disable=F0401,W0611 import _powermgt import _idle if __name__ == '__main__': setup(**setupOptions) # pylint: disable=W0142 taskcoach-1.4.3/taskcoach.py000077500000000000000000000046371265347643000160200ustar00rootroot00000000000000#!/usr/bin/env python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import sys # Workaround for a bug in Ubuntu 10.10 os.environ['XLIB_SKIP_ARGB_VISUALS'] = '1' # This prevents a message printed to the console when wx.lib.masked # is imported from taskcoachlib.widgets on Ubuntu 12.04 64 bits... try: from mx import DateTime except ImportError: pass if not hasattr(sys, "frozen"): # These checks are only necessary in a non-frozen environment, i.e. we # skip these checks when run from a py2exe-fied application import wxversion wxversion.select(["2.8-unicode", "3.0"], optionsRequired=True) try: import taskcoachlib # pylint: disable=W0611 except ImportError: # On Ubuntu 12.04, taskcoachlib is installed in /usr/share/pyshared, # but that folder is not on the python path. Don't understand why. # We'll add it manually so the application can find it. sys.path.insert(0, '/usr/share/pyshared') try: import taskcoachlib # pylint: disable=W0611 except ImportError: sys.stderr.write('''ERROR: cannot import the library 'taskcoachlib'. Please see https://answers.launchpad.net/taskcoach/+faq/1063 for more information and possible resolutions. ''') sys.exit(1) def start(): ''' Process command line options and start the application. ''' # pylint: disable=W0404 from taskcoachlib import config, application options, args = config.ApplicationOptionParser().parse_args() app = application.Application(options, args) if options.profile: import cProfile cProfile.runctx('app.start()', globals(), locals(), filename='.profile') else: app.start() if __name__ == '__main__': start() taskcoach-1.4.3/taskcoach.pyw000066400000000000000000000014361265347643000161760ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import taskcoach if __name__ == '__main__': taskcoach.start() taskcoach-1.4.3/taskcoachlib/000077500000000000000000000000001265347643000161205ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/__init__.py000066400000000000000000000020201265347643000202230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # taskcoachlib contains all taskcoach packages # When thirdparty packages are imported, they may import submodules # from the system-wide installation. Doing this in workaround/__init__.py is too late. import os, sys sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), 'thirdparty'))) taskcoach-1.4.3/taskcoachlib/application/000077500000000000000000000000001265347643000204235ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/application/__init__.py000077500000000000000000000013771265347643000225470ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from application import Application taskcoach-1.4.3/taskcoachlib/application/application.py000066400000000000000000000366161265347643000233140ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # This module works around bugs in third party modules, mostly by # monkey-patching so import it first from taskcoachlib import workarounds # pylint: disable=W0611 from taskcoachlib import patterns, operating_system from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.config import Settings import locale import os import sys import time import wx import calendar import re import threading class RedirectedOutput(object): _rx_ignore = [ re.compile('RuntimeWarning: PyOS_InputHook'), ] def __init__(self): self.__handle = None self.__path = os.path.join(Settings.pathToDocumentsDir(), 'taskcoachlog.txt') def write(self, bf): for rx in self._rx_ignore: if rx.search(bf): return if self.__handle is None: self.__handle = file(self.__path, 'a+') self.__handle.write('============= %s\n' % time.ctime()) self.__handle.write(bf) def flush(self): pass def close(self): if self.__handle is not None: self.__handle.close() self.__handle = None def summary(self): if self.__handle is not None: self.close() if operating_system.isWindows(): wx.MessageBox(_('Errors have occured. Please see "taskcoachlog.txt" in your "My Documents" folder.'), _('Error'), wx.OK) else: wx.MessageBox(_('Errors have occured. Please see "%s"') % self.__path, _('Error'), wx.OK) # pylint: disable=W0404 class wxApp(wx.App): def __init__(self, sessionCallback, reopenCallback, *args, **kwargs): self.sessionCallback = sessionCallback self.reopenCallback = reopenCallback self.__shutdownInProgress = False super(wxApp, self).__init__(*args, **kwargs) def MacReopenApp(self): self.reopenCallback() def OnInit(self): if operating_system.isWindows(): self.Bind(wx.EVT_QUERY_END_SESSION, self.onQueryEndSession) try: isatty = sys.stdout.isatty() except AttributeError: isatty = False if (operating_system.isWindows() and hasattr(sys, 'frozen') and not isatty) or not isatty: sys.stdout = sys.stderr = RedirectedOutput() return True def onQueryEndSession(self, event=None): if not self.__shutdownInProgress: self.__shutdownInProgress = True self.sessionCallback() if event is not None: event.Skip() class Application(object): __metaclass__ = patterns.Singleton def __init__(self, options=None, args=None, **kwargs): self._options = options self._args = args self.initTwisted() self.__wx_app = wxApp(self.on_end_session, self.on_reopen_app, redirect=False) self.registerApp() self.init(**kwargs) if operating_system.isGTK(): if self.settings.getboolean('feature', 'usesm2'): from taskcoachlib.powermgt import xsm class LinuxSessionMonitor(xsm.SessionMonitor): def __init__(self, callback): super(LinuxSessionMonitor, self).__init__() self._callback = callback self.setProperty(xsm.SmCloneCommand, sys.argv) self.setProperty(xsm.SmRestartCommand, sys.argv) self.setProperty(xsm.SmCurrentDirectory, os.getcwd()) self.setProperty(xsm.SmProgram, sys.argv[0]) self.setProperty(xsm.SmRestartStyleHint, xsm.SmRestartNever) def saveYourself(self, saveType, shutdown, interactStyle, fast): # pylint: disable=W0613 if shutdown: wx.CallAfter(self._callback) self.saveYourselfDone(True) def die(self): pass def saveComplete(self): pass def shutdownCancelled(self): pass self.sessionMonitor = LinuxSessionMonitor(self.on_end_session) # pylint: disable=W0201 else: self.sessionMonitor = None calendar.setfirstweekday(dict(monday=0, sunday=6)[self.settings.get('view', 'weekstart')]) def initTwisted(self): from twisted.internet import wxreactor wxreactor.install() # Monkey-patching older versions because of https://twistedmatrix.com/trac/ticket/3948 import twisted if map(int, twisted.__version__.split('.')) < (11,): from twisted.internet import reactor if wxreactor.WxReactor.callFromThread is not None: oldStop = wxreactor.WxReactor.stop def stopFromThread(self): self.callFromThread(oldStop, self) wxreactor.WxReactor.stop = stopFromThread def stopTwisted(self): from twisted.internet import reactor, error try: reactor.stop() except error.ReactorNotRunning: # Happens on Fedora 14 when running unit tests. Old Twisted ? pass def registerApp(self): from twisted.internet import reactor reactor.registerWxApp(self.__wx_app) def start(self): ''' Call this to start the Application. ''' # pylint: disable=W0201 from taskcoachlib import meta if self.settings.getboolean('version', 'notify'): self.__version_checker = meta.VersionChecker(self.settings) self.__version_checker.start() if self.settings.getboolean('view', 'developermessages'): self.__message_checker = meta.DeveloperMessageChecker(self.settings) self.__message_checker.start() self.__copy_default_templates() self.mainwindow.Show() from twisted.internet import reactor reactor.run() def __copy_default_templates(self): ''' Copy default templates that don't exist yet in the user's template directory. ''' from taskcoachlib.persistence import getDefaultTemplates template_dir = self.settings.pathToTemplatesDir() if len([name for name in os.listdir(template_dir) if name.endswith('.tsktmpl')]) == 0: for name, template in getDefaultTemplates(): filename = os.path.join(template_dir, name + '.tsktmpl') if not os.path.exists(filename): file(filename, 'wb').write(template) def init(self, loadSettings=True, loadTaskFile=True): ''' Initialize the application. Needs to be called before Application.start(). ''' self.__init_config(loadSettings) self.__init_language() self.__init_domain_objects() self.__init_application() from taskcoachlib import gui, persistence gui.init() show_splash_screen = self.settings.getboolean('window', 'splash') splash = gui.SplashScreen() if show_splash_screen else None # pylint: disable=W0201 self.taskFile = persistence.LockedTaskFile(poll=not self.settings.getboolean('file', 'nopoll')) self.__auto_saver = persistence.AutoSaver(self.settings) self.__auto_exporter = persistence.AutoImporterExporter(self.settings) self.__auto_backup = persistence.AutoBackup(self.settings) self.iocontroller = gui.IOController(self.taskFile, self.displayMessage, self.settings, splash) self.mainwindow = gui.MainWindow(self.iocontroller, self.taskFile, self.settings, splash=splash) self.__wx_app.SetTopWindow(self.mainwindow) self.__init_spell_checking() if not self.settings.getboolean('file', 'inifileloaded'): self.__close_splash(splash) self.__warn_user_that_ini_file_was_not_loaded() if loadTaskFile: self.iocontroller.openAfterStart(self._args) self.__register_signal_handlers() self.__create_mutex() self.__create_task_bar_icon() wx.CallAfter(self.__close_splash, splash) wx.CallAfter(self.__show_tips) def __init_config(self, load_settings): from taskcoachlib import config ini_file = self._options.inifile if self._options else None # pylint: disable=W0201 self.settings = config.Settings(load_settings, ini_file) def __init_language(self): ''' Initialize the current translation. ''' from taskcoachlib import i18n i18n.Translator(self.determine_language(self._options, self.settings)) @staticmethod def determine_language(options, settings, locale=locale): # pylint: disable=W0621 language = None if options: # User specified language or .po file on command line language = options.pofile or options.language if not language: # Get language as set by the user via the preferences dialog language = settings.get('view', 'language_set_by_user') if not language: # Get language as set by the user or externally (e.g. PortableApps) language = settings.get('view', 'language') if not language: # Use the user's locale language = locale.getdefaultlocale()[0] if language == 'C': language = None if not language: # Fall back on what the majority of our users use language = 'en_US' return language def __init_domain_objects(self): ''' Provide relevant domain objects with access to the settings. ''' from taskcoachlib.domain import task, attachment task.Task.settings = self.settings attachment.Attachment.settings = self.settings def __init_application(self): from taskcoachlib import meta self.__wx_app.SetAppName(meta.name) self.__wx_app.SetVendorName(meta.author) def __init_spell_checking(self): self.on_spell_checking(self.settings.getboolean('editor', 'maccheckspelling')) pub.subscribe(self.on_spell_checking, 'settings.editor.maccheckspelling') def on_spell_checking(self, value): if operating_system.isMac() and not operating_system.isMacOsXMountainLion_OrNewer(): wx.SystemOptions.SetOptionInt("mac.textcontrol-use-spell-checker", value) def __register_signal_handlers(self): if operating_system.isWindows(): import win32api # pylint: disable=F0401 def quit_adapter(*args): # The handler is called from something that is not the main thread, so we can't do # much wx-related event = threading.Event() def quit(): try: self.quitApplication() finally: event.set() wx.CallAfter(quit) event.wait() return True win32api.SetConsoleCtrlHandler(quit_adapter, True) else: import signal def quit_adapter(*args): return self.quitApplication() signal.signal(signal.SIGTERM, quit_adapter) if hasattr(signal, 'SIGHUP'): forced_quit = lambda *args: self.quitApplication(force=True) signal.signal(signal.SIGHUP, forced_quit) # pylint: disable=E1101 @staticmethod def __create_mutex(): ''' On Windows, create a mutex so that InnoSetup can check whether the application is running. ''' if operating_system.isWindows(): import ctypes from taskcoachlib import meta ctypes.windll.kernel32.CreateMutexA(None, False, meta.filename) def __create_task_bar_icon(self): if self.__can_create_task_bar_icon(): from taskcoachlib.gui import taskbaricon, menu self.taskBarIcon = taskbaricon.TaskBarIcon(self.mainwindow, # pylint: disable=W0201 self.taskFile.tasks(), self.settings) self.taskBarIcon.setPopupMenu(menu.TaskBarMenu(self.taskBarIcon, self.settings, self.taskFile, self.mainwindow.viewer)) def __can_create_task_bar_icon(self): try: from taskcoachlib.gui import taskbaricon # pylint: disable=W0612 return True except: return False # pylint: disable=W0702 @staticmethod def __close_splash(splash): if splash: splash.Destroy() def __show_tips(self): if self.settings.getboolean('window', 'tips'): from taskcoachlib import help # pylint: disable=W0622 help.showTips(self.mainwindow, self.settings) def __warn_user_that_ini_file_was_not_loaded(self): from taskcoachlib import meta reason = self.settings.get('file', 'inifileloaderror') wx.MessageBox(\ _("Couldn't load settings from TaskCoach.ini:\n%s") % reason, _('%s file error') % meta.name, style=wx.OK | wx.ICON_ERROR) self.settings.setboolean('file', 'inifileloaded', True) # Reset def displayMessage(self, message): self.mainwindow.displayMessage(message) def on_end_session(self): self.mainwindow.setShutdownInProgress() self.quitApplication(force=True) def on_reopen_app(self): self.taskBarIcon.onTaskbarClick(None) def quitApplication(self, force=False): if not self.iocontroller.close(force=force): return False # Remember what the user was working on: self.settings.set('file', 'lastfile', self.taskFile.lastFilename()) self.mainwindow.save_settings() self.settings.save() if hasattr(self, 'taskBarIcon'): self.taskBarIcon.RemoveIcon() if self.mainwindow.bonjourRegister is not None: self.mainwindow.bonjourRegister.stop() from taskcoachlib.domain import date date.Scheduler().shutdown() self.__wx_app.ProcessIdle() # For PowerStateMixin self.mainwindow.OnQuit() if operating_system.isGTK() and self.sessionMonitor is not None: self.sessionMonitor.stop() if isinstance(sys.stdout, RedirectedOutput): sys.stdout.summary() self.stopTwisted() return True taskcoach-1.4.3/taskcoachlib/changes/000077500000000000000000000000001265347643000175305ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/changes/__init__.py000066400000000000000000000014341265347643000216430ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from monitor import ChangeMonitor from sync import ChangeSynchronizer taskcoach-1.4.3/taskcoachlib/changes/monitor.py000066400000000000000000000274221265347643000216000ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.patterns import Observer, ObservableComposite from taskcoachlib.domain.categorizable import CategorizableCompositeObject from taskcoachlib.domain.note import NoteOwner from taskcoachlib.domain.task import Task from taskcoachlib.domain.effort import Effort from taskcoachlib.domain.attachment import AttachmentOwner from taskcoachlib.thirdparty import guid from taskcoachlib.thirdparty.pubsub import pub class ChangeMonitor(Observer): """ This class monitors change to object on a per-attribute basis. """ def __init__(self, id_=None): super(ChangeMonitor, self).__init__() self.__guid = id_ or guid.generate() self.__frozen = False self.__collections = [] self.reset() def freeze(self): self.__frozen = True def thaw(self): self.__frozen = False def guid(self): return self.__guid def reset(self): self._changes = dict() self._classes = set() def monitorClass(self, klass): if klass not in self._classes: for name in klass.monitoredAttributes(): eventType = getattr(klass, '%sChangedEventType' % name)() if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: self.registerObserver(self.onAttributeChanged_Deprecated, eventType) self._classes.add(klass) if issubclass(klass, ObservableComposite): self.registerObserver(self.onChildAdded, klass.addChildEventType()) self.registerObserver(self.onChildRemoved, klass.removeChildEventType()) if issubclass(klass, CategorizableCompositeObject): self.registerObserver(self.onCategoryAdded, klass.categoryAddedEventType()) self.registerObserver(self.onCategoryRemoved, klass.categoryRemovedEventType()) if issubclass(klass, Task): pub.subscribe(self.onEffortAddedOrRemoved, Task.effortsChangedEventType()) pub.subscribe(self.onPrerequisitesChanged, Task.prerequisitesChangedEventType()) if issubclass(klass, NoteOwner): self.registerObserver(self.onOtherObjectAdded, klass.noteAddedEventType()) self.registerObserver(self.onOtherObjectRemoved, klass.noteRemovedEventType()) if issubclass(klass, AttachmentOwner): self.registerObserver(self.onOtherObjectAdded, klass.attachmentAddedEventType()) self.registerObserver(self.onOtherObjectRemoved, klass.attachmentRemovedEventType()) if issubclass(klass, Effort): pub.subscribe(self.onEffortTaskChanged, Effort.taskChangedEventType()) def unmonitorClass(self, klass): if klass in self._classes: for name in klass.monitoredAttributes(): eventType = getattr(klass, '%sChangedEventType' % name)() if eventType.startswith('pubsub'): pub.unsubscribe(self.onAttributeChanged, eventType) else: self.removeObserver(self.onAttributeChanged_Deprecated, eventType) if issubclass(klass, ObservableComposite): self.removeObserver(self.onChildAdded, klass.addChildEventType()) self.removeObserver(self.onChildRemoved, klass.removeChildEventType()) if issubclass(klass, CategorizableCompositeObject): self.removeObserver(self.onCategoryAdded, klass.categoryAddedEventType()) self.removeObserver(self.onCategoryRemoved, klass.categoryRemovedEventType()) if issubclass(klass, Task): pub.unsubscribe(self.onEffortAddedOrRemoved, Task.effortsChangedEventType()) pub.unsubscribe(self.onPrerequisitesChanged, Task.prerequisitesChangedEventType()) if issubclass(klass, NoteOwner): self.removeObserver(self.onOtherObjectAdded, klass.noteAddedEventType()) self.removeObserver(self.onOtherObjectRemoved, klass.noteRemovedEventType()) if issubclass(klass, AttachmentOwner): self.removeObserver(self.onOtherObjectAdded, klass.attachmentAddedEventType()) self.removeObserver(self.onOtherObjectRemoved, klass.attachmentRemovedEventType()) if issubclass(klass, Effort): pub.unsubscribe(self.onEffortTaskChanged, Effort.taskChangedEventType()) self._classes.remove(klass) def monitorCollection(self, collection): self.__collections.append(collection) self.registerObserver(self.onObjectAdded, collection.addItemEventType(), eventSource=collection) self.registerObserver(self.onObjectRemoved, collection.removeItemEventType(), eventSource=collection) def unmonitorCollection(self, collection): self.__collections.remove(collection) self.removeObserver(self.onObjectAdded, collection.addItemEventType(), eventSource=collection) self.removeObserver(self.onObjectRemoved, collection.removeItemEventType(), eventSource=collection) def onAttributeChanged(self, newValue, sender, topic=pub.AUTO_TOPIC): if self.__frozen: return for name in sender.monitoredAttributes(): if name in topic.getNameTuple(): if sender.id() in self._changes and self._changes[sender.id()] is not None: self._changes[sender.id()].add(name) def onAttributeChanged_Deprecated(self, event): if self.__frozen: return for type_, valBySource in event.sourcesAndValuesByType().items(): for obj in valBySource.keys(): for name in obj.monitoredAttributes(): if type_ == getattr(obj, '%sChangedEventType' % name)(): if obj.id() in self._changes and self._changes[obj.id()] is not None: self._changes[obj.id()].add(name) def _objectAdded(self, obj): if obj.id() in self._changes: if self._changes[obj.id()] is not None and \ '__del__' in self._changes[obj.id()]: self._changes[obj.id()].remove('__del__') else: self._changes[obj.id()] = None def _objectsAdded(self, event): for obj in event.values(): self._objectAdded(obj) def _objectRemoved(self, obj): if obj.id() in self._changes: if self._changes[obj.id()] is None: del self._changes[obj.id()] else: self._changes[obj.id()].add('__del__') def _objectsRemoved(self, event): for obj in event.values(): self._objectRemoved(obj) def onChildAdded(self, event): if self.__frozen: return self._objectsAdded(event) for obj in event.values(): if self._changes[obj.id()] is not None: self._changes[obj.id()].add('__parent__') def onChildRemoved(self, event): if self.__frozen: return self._objectsRemoved(event) for obj in event.values(): if obj in self._changes and self._changes[obj.id()] is not None: self._changes[obj.id()].add('__parent__') def onObjectAdded(self, event): if self.__frozen: return self._objectsAdded(event) def onObjectRemoved(self, event): if self.__frozen: return self._objectsRemoved(event) def onOtherObjectAdded(self, event): if self.__frozen: return self._objectsAdded(event) def onOtherObjectRemoved(self, event): if self.__frozen: return self._objectsRemoved(event) def onEffortAddedOrRemoved(self, newValue, sender): efforts, oldValue = newValue effortsToAdd = [effort for effort in efforts if effort not in oldValue] effortsToRemove = [effort for effort in oldValue if effort not in efforts] for effort in effortsToAdd: self._objectAdded(effort) for effort in effortsToRemove: self._objectRemoved(effort) def onEffortTaskChanged(self, newValue, sender): changes = self._changes.get(sender.id(), None) if changes is not None: changes.add('__task__') def onCategoryAdded(self, event): if self.__frozen: return for obj in event.sources(): if obj.id() in self._changes and self._changes[obj.id()] is not None: for theCategory in event.values(source=obj): name = '_category:%s' % theCategory.id() if '__del' + name in self._changes[obj.id()]: self._changes[obj.id()].remove('__del' + name) else: self._changes[obj.id()].add('__add' + name) def onCategoryRemoved(self, event): if self.__frozen: return for obj in event.sources(): if obj.id() in self._changes and self._changes[obj.id()] is not None: for theCategory in event.values(source=obj): name = '_category:%s' % theCategory.id() if '__add' + name in self._changes[obj.id()]: self._changes[obj.id()].remove('__add' + name) else: self._changes[obj.id()].add('__del' + name) def onPrerequisitesChanged(self, newValue, sender): # pylint: disable-msg=W0613 # Need to check whether the sender is actually in one of the collections we monitor # Is this really the best way? for collection in self.__collections: if sender in collection: break else: return if sender.id() in self._changes and self._changes[sender.id()] is not None: self._changes[sender.id()].add('__prerequisites__') def allChanges(self): return self._changes def getChanges(self, obj): return self._changes.get(obj.id(), None) def setChanges(self, id_, changes): if changes is None: del self._changes[id_] else: self._changes[id_] = changes def isRemoved(self, obj): return obj.id() in self._changes and \ self._changes[obj.id()] is not None and \ '__del__' in self._changes[obj.id()] def resetChanges(self, obj): self._changes[obj.id()] = set() def addChange(self, obj, name): changes = self._changes.get(obj.id(), set()) changes.add(name) self._changes[obj.id()] = changes def resetAllChanges(self): for id_, changes in self._changes.items(): if changes is not None and '__del__' in changes: del self._changes[id_] else: self._changes[id_] = set() def empty(self): self._changes = dict() def merge(self, monitor): for id_, changes in self._changes.items(): theirChanges = monitor._changes.get(id_, None) if theirChanges is not None: changes.update(theirChanges) taskcoach-1.4.3/taskcoachlib/changes/sync.py000066400000000000000000000551711265347643000210670ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx # For ArtProvider from taskcoachlib.changes import ChangeMonitor from taskcoachlib.domain.note import NoteOwner from taskcoachlib.domain.attachment import AttachmentOwner from taskcoachlib.domain.base import CompositeObject from taskcoachlib.domain.task import Task from taskcoachlib.domain.note import Note from taskcoachlib.domain.category import Category from taskcoachlib.notify import AbstractNotifier from taskcoachlib.i18n import _ class ChangeSynchronizer(object): def __init__(self, monitor, allChanges): self._monitor = monitor self._allChanges = allChanges @staticmethod def allObjects(theList): result = list() for obj in theList: result.append(obj) if isinstance(obj, CompositeObject): result.extend(ChangeSynchronizer.allObjects(obj.children())) if isinstance(obj, NoteOwner): result.extend(ChangeSynchronizer.allObjects(obj.notes())) if isinstance(obj, AttachmentOwner): result.extend(ChangeSynchronizer.allObjects(obj.attachments())) if isinstance(obj, Task): result.extend(obj.efforts()) return result def sync(self, lists): self.diskChanges = ChangeMonitor() self.conflictChanges = ChangeMonitor() self.notifier = AbstractNotifier.getSimple() self.memMap = dict() self.memOwnerMap = dict() self.diskMap = dict() self.diskOwnerMap = dict() for devGUID, changes in self._allChanges.items(): if devGUID == self._monitor.guid(): self.diskChanges = changes break self._allChanges[self._monitor.guid()] = self._monitor for memList, diskList in lists: self.mergeObjects(memList, diskList) # Cleanup monitor self._monitor.empty() for memList, diskList in lists: for obj in self.allObjects(memList.rootItems()): self._monitor.resetChanges(obj) # Merge conflict changes for devGUID, changes in self._allChanges.items(): if devGUID != self._monitor.guid(): changes.merge(self.conflictChanges) def notify(self, message): self.notifier.notify(_('Task Coach'), message, wx.ArtProvider.GetBitmap('taskcoach', size=wx.Size(32, 32))) def mergeObjects(self, memList, diskList): # Map id to object def addIds(objects, idMap, ownerMap, owner=None): for obj in objects: idMap[obj.id()] = obj if owner is not None: ownerMap[obj.id()] = owner if isinstance(obj, CompositeObject): addIds(obj.children(), idMap, ownerMap) if isinstance(obj, NoteOwner): addIds(obj.notes(), idMap, ownerMap, obj) if isinstance(obj, AttachmentOwner): addIds(obj.attachments(), idMap, ownerMap, obj) if isinstance(obj, Task): addIds(obj.efforts(), idMap, ownerMap) addIds(memList, self.memMap, self.memOwnerMap) addIds(diskList, self.diskMap, self.diskOwnerMap) self.mergeCompositeObjects(memList, diskList) self.mergeOwnedObjectsFromDisk(diskList) self.reparentObjects(memList, diskList) self.deletedObjects(memList) self.deletedOwnedObjects(memList) self.applyChanges(memList) def mergeCompositeObjects(self, memList, diskList): # First pass: new composite objects on disk. Don't handle # other (notes belonging to object, attachments, efforts) yet # because they may belong to a category. This assumes that # categories are the first domain class handled. for diskObject in diskList.allItemsSorted(): memChanges = self._monitor.getChanges(diskObject) deleted = memChanges is not None and '__del__' in memChanges diskChanges = self.diskChanges.getChanges(diskObject) if deleted and diskChanges is not None and '__del__' not in diskChanges and len(diskChanges) > 0: # "undelete" it memChanges.remove('__del__') deleted = False if diskObject.id() not in self.memMap and not deleted: if isinstance(diskObject, CompositeObject): # New children will be handled later. This assumes # that the parent() is not changed when removing a # child. for child in diskObject.children(): diskObject.removeChild(child) parent = diskObject.parent() if parent is not None and parent.id() in self.memMap: parent = self.memMap[parent.id()] parent.addChild(diskObject) diskObject.setParent(parent) elif parent is not None: # Parent deleted from memory; the task will be # top-level. diskObject.setParent(None) self.conflictChanges.addChange(diskObject, '__parent__') self.notify(_('"%s" became top-level because its parent was locally deleted.') % diskObject.subject()) memList.append(diskObject) self.memMap[diskObject.id()] = diskObject def mergeOwnedObjectsFromDisk(self, diskList): # Second pass: 'owned' objects (notes and attachments # currently) new on disk, and efforts. for obj in diskList.allItemsSorted(): if isinstance(obj, NoteOwner): self._handleNewOwnedObjectsOnDisk(obj.notes()) if isinstance(obj, AttachmentOwner): self._handleNewOwnedObjectsOnDisk(obj.attachments()) if isinstance(obj, Task): self._handleNewEffortsOnDisk(obj.efforts()) def _handleNewOwnedObjectsOnDisk(self, diskObjects): for diskObject in diskObjects: className = diskObject.__class__.__name__ if className.endswith('Attachment'): className = 'Attachment' if isinstance(diskObject, CompositeObject): children = diskObject.children()[:] memChanges = self._monitor.getChanges(diskObject) deleted = memChanges is not None and '__del__' in memChanges if diskObject.id() not in self.memMap and not deleted: addObject = True if isinstance(diskObject, CompositeObject): for child in diskObject.children(): diskObject.removeChild(child) parent = diskObject.parent() if parent is not None and parent.id() in self.memMap: parent = self.memMap[parent.id()] parent.addChild(diskObject) diskObject.setParent(parent) elif parent is not None: # Parent deleted from memory; the object # becomes top-level but its owner stays # the same. diskObject.setParent(None) while parent.parent() is not None: parent = parent.parent() diskOwner = self.diskOwnerMap[parent.id()] if diskOwner.id() in self.memMap: memOwner = self.memMap[diskOwner.id()] getattr(memOwner, 'add%s' % className)(diskObject) self.conflictChanges.addChange(diskObject, '__owner__') self.memOwnerMap[diskObject.id()] = memOwner self.notify(_('"%s" became top-level because its parent was locally deleted.') % diskObject.subject()) else: diskOwner = self.diskOwnerMap[diskObject.id()] if diskOwner.id() in self.memMap: memOwner = self.memMap[diskOwner.id()] getattr(memOwner, 'add%s' % className)(diskObject) self.memOwnerMap[diskObject.id()] = memOwner else: # Owner deleted. Just forget it. self.conflictChanges.addChange(diskObject, '__del__') addObject = False else: diskOwner = self.diskOwnerMap[diskObject.id()] if diskOwner.id() in self.memMap: memOwner = self.memMap[diskOwner.id()] getattr(memOwner, 'add%s' % className)(diskObject) self.memOwnerMap[diskObject.id()] = memOwner else: # Forget it again... self.conflictChanges.addChange(diskObject, '__del__') addObject = False if addObject: self.memMap[diskObject.id()] = diskObject if diskObject.id() in self.memMap: if isinstance(diskObject, CompositeObject): self._handleNewOwnedObjectsOnDisk(children) if isinstance(diskObject, NoteOwner): self._handleNewOwnedObjectsOnDisk(diskObject.notes()) if isinstance(diskObject, AttachmentOwner): self._handleNewOwnedObjectsOnDisk(diskObject.attachments()) def _handleNewEffortsOnDisk(self, diskEfforts): for diskEffort in diskEfforts: memChanges = self._monitor.getChanges(diskEffort) deleted = memChanges is not None and '__del__' in memChanges if diskEffort.id() not in self.memMap and not deleted: diskTask = diskEffort.parent() if diskTask.id() in self.memMap: memTask = self.memMap[diskTask.id()] diskEffort.setTask(memTask) self.memMap[diskEffort.id()] = diskEffort else: # Task deleted; forget it. self.conflictChanges.addChange(diskEffort, '__del__') def reparentObjects(self, memList, diskList): # Third pass: objects reparented on disk. for diskObject in self.allObjects(diskList): diskChanges = self.diskChanges.getChanges(diskObject) if diskChanges is not None and '__parent__' in diskChanges: memChanges = self._monitor.getChanges(diskObject) memObject = self.memMap[diskObject.id()] memList.remove(memObject) # Note: no conflict resolution for this one, # it would be a bit tricky... Instead, the # disk version wins. def sameParents(a, b): if a is None and b is None: return True elif a is None or b is None: return False return a.id() == b.id() parentConflict = False if memChanges is not None and '__parent__' in memChanges: if not sameParents(memObject.parent(), diskObject.parent()): parentConflict = True if memObject.parent() is not None: memObject.parent().removeChild(memObject) if parentConflict: diskParent = diskObject.parent() if diskParent is None: memObject.setParent(None) else: if diskParent.id() in self.memMap: memParent = self.memMap[diskParent.id()] memParent.addChild(memObject) memObject.setParent(memParent) else: # New parent deleted from memory... memObject.setParent(None) self.conflictChanges.addChange(memObject, '__parent__') else: diskParent = diskObject.parent() if diskParent is None: memObject.setParent(None) else: if diskParent.id() in self.memMap: memParent = self.memMap[diskParent.id()] memParent.addChild(memObject) memObject.setParent(memParent) else: memObject.setParent(None) self.conflictChanges.addChange(memObject, '__parent__') memList.append(memObject) def deletedObjects(self, memList): # Fourth pass: objects deleted from disk for memObject in memList.allItemsSorted(): diskChanges = self.diskChanges.getChanges(memObject) memChanges = self._monitor.getChanges(memObject) if diskChanges is not None and '__del__' in diskChanges: if (memChanges is None or '__del__' in memChanges or len(memChanges) == 0): memList.remove(memObject) del self.memMap[memObject.id()] if memObject.id() in self.memOwnerMap: del self.memOwnerMap[memObject.id()] else: # If there are local changes they win over deletion. self.diskMap[memObject.id()] = memObject self.diskChanges.resetChanges(memObject) def deletedOwnedObjects(self, memList): for obj in memList.allItemsSorted(): if isinstance(obj, NoteOwner): self._handleOwnedObjectsRemovedFromDisk(obj.notes()) if isinstance(obj, AttachmentOwner): self._handleOwnedObjectsRemovedFromDisk(obj.attachments()) if isinstance(obj, Task): self._handleEffortsRemovedFromDisk(obj.efforts()) def _handleOwnedObjectsRemovedFromDisk(self, memObjects): for memObject in memObjects: className = memObject.__class__.__name__ if className.endswith('Attachment'): className = 'Attachment' if isinstance(memObject, CompositeObject): self._handleOwnedObjectsRemovedFromDisk(memObject.children()) if isinstance(memObject, NoteOwner): self._handleOwnedObjectsRemovedFromDisk(memObject.notes()) if isinstance(memObject, AttachmentOwner): self._handleOwnedObjectsRemovedFromDisk(memObject.attachments()) diskChanges = self.diskChanges.getChanges(memObject) if diskChanges is not None and '__del__' in diskChanges: # Same remark as above if isinstance(memObject, CompositeObject): if memObject.parent() is None: getattr(self.memOwnerMap[memObject.id()], 'remove%s' % className)(memObject) else: self.memMap[memObject.parent().id()].removeChild(memObject) else: getattr(self.memOwnerMap[memObject.id()], 'remove%s' % className)(memObject) del self.memMap[memObject.id()] def _handleEffortsRemovedFromDisk(self, memEfforts): for memEffort in memEfforts: diskChanges = self.diskChanges.getChanges(memEffort) if diskChanges is not None and '__del__' in diskChanges: # Same remark as above self.memMap[memEffort.parent().id()].removeEffort(memEffort) del self.memMap[memEffort.id()] def applyChanges(self, memList): # Final: apply disk changes for memObject in self.allObjects(memList.rootItems()): diskChanges = self.diskChanges.getChanges(memObject) if diskChanges: memChanges = self._monitor.getChanges(memObject) diskObject = self.diskMap[memObject.id()] conflicts = [] for changeName in diskChanges: if changeName == '__parent__': pass # Already handled elif changeName.startswith('__add_category:'): categoryId = changeName[15:] if categoryId not in self.memMap: # Mmmh, deleted... conflicts.append(changeName) self.conflictChanges.addChange(memObject, '__del' + changeName[5:]) else: if memChanges is not None and \ '__del' + changeName[5:] in memChanges: conflicts.append(changeName) self.conflictChanges.addChange(memObject, '__del' + changeName[5:]) else: # Aaaaah finally theCategory = self.memMap[categoryId] memObject.addCategory(theCategory) theCategory.addCategorizable(memObject) elif changeName.startswith('__del_category:'): categoryId = changeName[15:] if categoryId in self.memMap: if memChanges is not None and \ '__add' + changeName[5:] in memChanges: conflicts.append(changeName) self.conflictChanges.addChange(memObject, '__add' + changeName[5:]) else: theCategory = self.memMap[categoryId] memObject.removeCategory(theCategory) theCategory.removeCategorizable(memObject) elif changeName == '__prerequisites__': diskPrereqs = set([self.memMap[obj.id()] for obj in diskObject.prerequisites()]) memPrereqs = set(memObject.prerequisites()) if memChanges is not None and \ '__prerequisites__' in memChanges and \ memPrereqs != diskPrereqs: conflicts.append('__prerequisites__') self.conflictChanges.addChange(memObject, '__prerequisites__') else: memObject.setPrerequisites(diskPrereqs) elif changeName == '__task__': # Effort changed task if memChanges is not None and \ '__task__' in memChanges and \ memObject.parent().id() != diskObject.parent().id(): conflicts.append('__task__') self.conflictChanges.addChange(memObject, '__task__') else: memObject.setTask(self.memMap[diskObject.parent().id()]) elif changeName == '__owner__': # This happens after a conflict if memChanges is not None and \ '__owner__' in memChanges and \ self.memOwnerMap[memObject.id()].id() != self.diskOwnerMap[diskObject.id()].id(): # Yet another conflict... Memory wins conflicts.append('__owner__') self.conflictChanges.addChange(memObject, '__owner__') else: className = memObject.__class__.__name__ if className.endsWith('Attachment'): className = 'Attachment' oldOwner = self.memOwnerMap[memObject.id()] newOwner = self.memOwnerMap[diskObject.id()] getattr(oldOwner, 'remove%s' % className)(memObject) getattr(newOwner, 'add%s' % className)(memObject) elif changeName == 'appearance': attrNames = ['foregroundColor', 'backgroundColor', 'font', 'icon', 'selectedIcon'] if memChanges is not None and \ 'appearance' in memChanges: for attrName in attrNames: if getattr(memObject, attrName)() != getattr(diskObject, attrName)(): conflicts.append(attrName) self.conflictChanges.addChange(memObject, 'appearance') else: for attrName in attrNames: getattr(memObject, 'set' + attrName[0].upper() + attrName[1:])(getattr(diskObject, attrName)()) elif changeName == 'expandedContexts': # Note: no conflict resolution for this one. memObject.expand(diskObject.isExpanded()) else: if changeName in ['start', 'stop']: getterName = 'get' + changeName[0].upper() + changeName[1:] else: getterName = changeName if memChanges is not None and \ changeName in memChanges and \ getattr(memObject, getterName)() != getattr(diskObject, getterName)(): conflicts.append(changeName) self.conflictChanges.addChange(memObject, changeName) else: getattr(memObject, 'set' + changeName[0].upper() + changeName[1:])(getattr(diskObject, getterName)()) if conflicts: self.notify(_('Conflicts detected for "%s".\nThe local version was used.') % memObject.subject()) taskcoach-1.4.3/taskcoachlib/command/000077500000000000000000000000001265347643000175365ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/command/__init__.py000066400000000000000000000025601265347643000216520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskCommands import * from effortCommands import NewEffortCommand, DeleteEffortCommand, \ EditTaskCommand, EditEffortStartDateTimeCommand, \ EditEffortStopDateTimeCommand from categoryCommands import * from categorizableCommands import * from noteCommands import * from attachmentCommands import * from base import CopyCommand, DeleteCommand, CutCommand, PasteCommand, \ PasteAsSubItemCommand, EditSubjectCommand, \ EditDescriptionCommand, EditIconCommand, EditFontCommand, \ EditForegroundColorCommand, EditBackgroundColorCommand, \ PasteAsSubItemCommand, EditSubjectCommand, EditDescriptionCommand from clipboard import Clipboard taskcoach-1.4.3/taskcoachlib/command/attachmentCommands.py000066400000000000000000000116351265347643000237300ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.i18n import _ from taskcoachlib.domain import attachment import base, noteCommands class EditAttachmentLocationCommand(base.BaseCommand): plural_name = _('Edit location of attachments') singular_name = _('Edit attachment "%s" location') def __init__(self, *args, **kwargs): self.__newLocation = kwargs.pop('newValue') super(EditAttachmentLocationCommand, self).__init__(*args, **kwargs) self.__oldLocations = [item.location() for item in self.items] @patterns.eventSource def do_command(self, event=None): super(EditAttachmentLocationCommand, self).do_command() for item in self.items: item.setLocation(self.__newLocation) @patterns.eventSource def undo_command(self, event=None): super(EditAttachmentLocationCommand, self).undo_command() for item, oldLocation in zip(self.items, self.__oldLocations): item.setLocation(oldLocation) def redo_command(self): self.do_command() class AddAttachmentCommand(base.BaseCommand): plural_name = _('Add attachment') singular_name = _('Add attachment to "%s"') def __init__(self, *args, **kwargs): self.owners = [] self.__attachments = kwargs.get('attachments', [attachment.FileAttachment('', subject=_('New attachment'))]) super(AddAttachmentCommand, self).__init__(*args, **kwargs) self.owners = self.items self.items = self.__attachments self.save_modification_datetimes() def modified_items(self): return self.owners @patterns.eventSource def addAttachments(self, event=None): kwargs = dict(event=event) for owner in self.owners: owner.addAttachments(*self.__attachments, **kwargs) # pylint: disable=W0142 @patterns.eventSource def removeAttachments(self, event=None): kwargs = dict(event=event) for owner in self.owners: owner.removeAttachments(*self.__attachments, **kwargs) # pylint: disable=W0142 def do_command(self): super(AddAttachmentCommand, self).do_command() self.addAttachments() def undo_command(self): super(AddAttachmentCommand, self).undo_command() self.removeAttachments() def redo_command(self): super(AddAttachmentCommand, self).redo_command() self.addAttachments() class RemoveAttachmentCommand(base.BaseCommand): plural_name = _('Remove attachment') singular_name = _('Remove attachment to "%s"') def __init__(self, *args, **kwargs): self._attachments = kwargs.pop('attachments') super(RemoveAttachmentCommand, self).__init__(*args, **kwargs) @patterns.eventSource def addAttachments(self, event=None): kwargs = dict(event=event) for item in self.items: item.addAttachments(*self._attachments, **kwargs) # pylint: disable=W0142 @patterns.eventSource def removeAttachments(self, event=None): kwargs = dict(event=event) for item in self.items: item.removeAttachments(*self._attachments, **kwargs) # pylint: disable=W0142 def do_command(self): super(RemoveAttachmentCommand, self).do_command() self.removeAttachments() def undo_command(self): super(RemoveAttachmentCommand, self).undo_command() self.addAttachments() def redo_command(self): super(RemoveAttachmentCommand, self).redo_command() self.removeAttachments() class CutAttachmentCommand(base.CutCommandMixin, RemoveAttachmentCommand): def itemsToCut(self): return self._attachments def sourceOfItemsToCut(self): class Wrapper(object): def __init__(self, items): self.__items = items def extend(self, attachments): for item in self.__items: item.addAttachments(*attachments) def removeItems(self, attachments): for item in self.__items: item.removeAttachments(*attachments) return Wrapper(self.items) taskcoach-1.4.3/taskcoachlib/command/base.py000066400000000000000000000513421265347643000210270ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import date from taskcoachlib.i18n import _ from clipboard import Clipboard class BaseCommand(patterns.Command): def __init__(self, list=None, items=None, *args, **kwargs): # pylint: disable=W0622 super(BaseCommand, self).__init__(*args, **kwargs) self.list = list self.items = [item for item in items] if items else [] self.save_modification_datetimes() def save_modification_datetimes(self): self.__old_modification_datetimes = [(item, item.modificationDateTime()) for item in self.modified_items() if item] self.__now = date.Now() def __str__(self): return self.name() singular_name = 'Do something with %s' # Override in subclass plural_name = 'Do something' # Override in subclass def name(self): return self.singular_name%self.name_subject(self.items[0]) if len(self.items) == 1 else self.plural_name def name_subject(self, item): subject = item.subject() return subject if len(subject) < 60 else subject[:57] + '...' def items_are_new(self): return False def getItems(self): ''' The items this command operates on. ''' return self.items def modified_items(self): ''' Return the items that are modified by this command. ''' return self.items def canDo(self): return bool(self.items) def do(self): if self.canDo(): super(BaseCommand, self).do() self.do_command() def undo(self): super(BaseCommand, self).undo() self.undo_command() def redo(self): super(BaseCommand, self).redo() self.redo_command() def __tryInvokeMethodOnSuper(self, methodName, *args, **kwargs): try: method = getattr(super(BaseCommand, self), methodName) except AttributeError: return # no 'method' in any super class return method(*args, **kwargs) def do_command(self): self.__tryInvokeMethodOnSuper('do_command') for item in self.modified_items(): item.setModificationDateTime(self.__now) def undo_command(self): self.__tryInvokeMethodOnSuper('undo_command') for item, old_modification_datetime in self.__old_modification_datetimes: item.setModificationDateTime(old_modification_datetime) def redo_command(self): self.__tryInvokeMethodOnSuper('redo_command') for item in self.modified_items(): item.setModificationDateTime(self.__now) class SaveStateMixin(object): ''' Mixin class for commands that need to keep the states of objects. Objects should provide __getstate__ and __setstate__ methods. ''' # pylint: disable=W0201 def saveStates(self, objects): self.objectsToBeSaved = objects self.oldStates = self.__getStates() @patterns.eventSource def undoStates(self, event=None): self.newStates = self.__getStates() self.__setStates(self.oldStates, event=event) @patterns.eventSource def redoStates(self, event=None): self.__setStates(self.newStates, event=event) def __getStates(self): return [objectToBeSaved.__getstate__() for objectToBeSaved in self.objectsToBeSaved] @patterns.eventSource def __setStates(self, states, event=None): for objectToBeSaved, state in zip(self.objectsToBeSaved, states): objectToBeSaved.__setstate__(state, event=event) class CompositeMixin(object): ''' Mixin class for commands that deal with composites. ''' def getAncestors(self, composites): ancestors = [] for composite in composites: ancestors.extend(composite.ancestors()) return ancestors def getAllChildren(self, composites): allChildren = [] for composite in composites: allChildren.extend(composite.children(recursive=True)) return allChildren def getAllParents(self, composites): return [composite.parent() for composite in composites \ if composite.parent() != None] class NewItemCommand(BaseCommand): def name(self): # Override to always return the singular name without a subject. The # subject would be something like "New task", so not very interesting. return self.singular_name def items_are_new(self): return True def modified_items(self): return [] @patterns.eventSource def do_command(self, event=None): super(NewItemCommand, self).do_command() self.list.extend(self.items) # Don't use the event to force this change to be notified first event.addSource(self, type='newitem', *self.items) @patterns.eventSource def undo_command(self, event=None): super(NewItemCommand, self).undo_command() self.list.removeItems(self.items, event=event) @patterns.eventSource def redo_command(self, event=None): super(NewItemCommand, self).redo_command() self.list.extend(self.items) # Don't use the event to force this change to be notified first event.addSource(self, type='newitem', *self.items) class NewSubItemCommand(NewItemCommand): def name_subject(self, subitem): # Override to use the subject of the parent of the new subitem instead # of the subject of the new subitem itself, which wouldn't be very # interesting because it's something like 'New subitem'. return subitem.parent().subject() def modified_items(self): return [item.parent() for item in self.items] class CopyCommand(BaseCommand): plular_name = _('Copy') singular_name = _('Copy "%s"') def do_command(self): self.__copies = [item.copy() for item in self.items] # pylint: disable=W0201 Clipboard().put(self.__copies, self.list) def undo_command(self): Clipboard().clear() def redo_command(self): Clipboard().put(self.__copies, self.list) class DeleteCommand(BaseCommand, SaveStateMixin): plural_name = _('Delete') singular_name = _('Delete "%s"') def __init__(self, *args, **kwargs): self.__shadow = kwargs.pop('shadow', False) super(DeleteCommand, self).__init__(*args, **kwargs) def modified_items(self): return [item.parent() for item in self.items if item.parent()] def do_command(self): super(DeleteCommand, self).do_command() if self.__shadow: self.saveStates(self.items) for item in self.items: item.markDeleted() else: self.list.removeItems(self.items) def undo_command(self): super(DeleteCommand, self).undo_command() if self.__shadow: self.undoStates() else: self.list.extend(self.items) def redo_command(self): super(DeleteCommand, self).redo_command() if self.__shadow: self.redoStates() else: self.list.removeItems(self.items) class CutCommandMixin(object): plural_name = _('Cut') singular_name = _('Cut "%s"') def __putItemsOnClipboard(self): cb = Clipboard() self.__previousClipboardContents = cb.get() # pylint: disable=W0201 cb.put(self.itemsToCut(), self.sourceOfItemsToCut()) def __removeItemsFromClipboard(self): cb = Clipboard() cb.put(*self.__previousClipboardContents) def do_command(self): self.__putItemsOnClipboard() super(CutCommandMixin, self).do_command() def undo_command(self): self.__removeItemsFromClipboard() super(CutCommandMixin, self).undo_command() def redo_command(self): self.__putItemsOnClipboard() super(CutCommandMixin, self).redo_command() class CutCommand(CutCommandMixin, DeleteCommand): def itemsToCut(self): return self.items def sourceOfItemsToCut(self): return self.list class PasteCommand(BaseCommand, SaveStateMixin): plural_name = _('Paste') singular_name = _('Paste "%s"') def __init__(self, *args, **kwargs): super(PasteCommand, self).__init__(*args, **kwargs) self.__itemsToPaste, self.__sourceOfItemsToPaste = self.getItemsToPaste() self.saveStates(self.getItemsToSave()) def getItemsToSave(self): return self.__itemsToPaste def canDo(self): return bool(self.__itemsToPaste) def do_command(self): self.setParentOfPastedItems() self.__sourceOfItemsToPaste.extend(self.__itemsToPaste) def undo_command(self): self.__sourceOfItemsToPaste.removeItems(self.__itemsToPaste) self.undoStates() def redo_command(self): self.redoStates() self.__sourceOfItemsToPaste.extend(self.__itemsToPaste) def setParentOfPastedItems(self, newParent=None): for item in self.__itemsToPaste: item.setParent(newParent) def getItemsToPaste(self): items, source = Clipboard().get() return [item.copy() for item in items], source class PasteAsSubItemCommand(PasteCommand, CompositeMixin): plural_name = _('Paste as subitem') singular_name = _('Paste as subitem of "%s"') def setParentOfPastedItems(self): # pylint: disable=W0221 newParent = self.items[0] super(PasteAsSubItemCommand, self).setParentOfPastedItems(newParent) def getItemsToSave(self): return self.getAncestors([self.items[0]]) + \ super(PasteAsSubItemCommand, self).getItemsToSave() class DragAndDropCommand(BaseCommand, SaveStateMixin, CompositeMixin): plural_name = _('Drag and drop') singular_name = _('Drag and drop "%s"') def __init__(self, *args, **kwargs): dropTargets = kwargs.pop('drop') self._itemToDropOn = dropTargets[0] if dropTargets else None super(DragAndDropCommand, self).__init__(*args, **kwargs) self.saveStates(self.getItemsToSave()) def getItemsToSave(self): toSave = self.items[:] if self._itemToDropOn is not None: toSave.insert(0, self._itemToDropOn) return toSave def modified_items(self): return [item.parent() for item in self.items if item.parent()] + \ [self._itemToDropOn] if self._itemToDropOn else [] def canDo(self): return self._itemToDropOn not in (self.items + \ self.getAllChildren(self.items) + self.getAllParents(self.items)) def do_command(self): super(DragAndDropCommand, self).do_command() self.list.removeItems(self.items) for item in self.items: item.setParent(self._itemToDropOn) self.list.extend(self.items) def undo_command(self): super(DragAndDropCommand, self).undo_command() self.list.removeItems(self.items) self.undoStates() self.list.extend(self.items) def redo_command(self): super(DragAndDropCommand, self).redo_command() self.list.removeItems(self.items) self.redoStates() self.list.extend(self.items) class OrderingDragAndDropCommand(DragAndDropCommand): def __init__(self, *args, **kwargs): self.column = kwargs.pop('column', None) self.isTreeMode = kwargs.pop('isTree', True) self.part = kwargs.pop('part', 0) super(OrderingDragAndDropCommand, self).__init__(*args, **kwargs) def isOrdering(self): return self.column is not None and self.column.name() == 'ordering' def getSiblings(self): siblings = [] for item in self.list: if item.parent() == self._itemToDropOn.parent() and item not in self.items: siblings.append(item) return siblings def getOrderingSiblings(self): if self.isTreeMode: return self.getSiblings() # Everything, almost return [item for item in self.list if item not in self.items] def getItemsToSave(self): items = super(OrderingDragAndDropCommand, self).getItemsToSave() if self.isOrdering(): items.extend(self.getOrderingSiblings()) return items def canDo(self): if self.isOrdering(): return True # Already checked when drag and droppin return super(OrderingDragAndDropCommand, self).canDo() def do_command(self): if self.isOrdering(): siblings = self.getOrderingSiblings() orderings = [item.ordering() for item in self.items] minOrdering = min(orderings) maxOrdering = max(orderings) insertIndex = siblings.index(self._itemToDropOn) + (self.part + 1) // 2 # Simple special cases if insertIndex == 0: minOrderingOfSiblings = min([item.ordering() for item in siblings]) for item in self.items: item.setOrdering(item.ordering() - maxOrdering + minOrderingOfSiblings - 1) elif insertIndex == len(siblings): maxOrderingOfSiblings = max([item.ordering() for item in siblings]) for item in self.items: item.setOrdering(item.ordering() - minOrdering + maxOrderingOfSiblings + 1) else: maxOrderingOfPreviousSiblings = max([item.ordering() for idx, item in enumerate(siblings) if idx < insertIndex]) minOrderingOfPreviousSiblings = min([item.ordering() for idx, item in enumerate(siblings) if idx < insertIndex]) maxOrderingOfNextSiblings = max([item.ordering() for idx, item in enumerate(siblings) if idx >= insertIndex]) minOrderingOfNextSiblings = min([item.ordering() for idx, item in enumerate(siblings) if idx >= insertIndex]) if insertIndex < len(siblings) // 2: for item in self.items: item.setOrdering(item.ordering() - maxOrdering - 1 + minOrderingOfNextSiblings) for item in siblings[:insertIndex]: item.setOrdering(item.ordering() - maxOrderingOfPreviousSiblings - 1 + minOrdering - maxOrdering - 1 + minOrderingOfNextSiblings) else: for item in self.items: item.setOrdering(item.ordering() - minOrdering + 1 + maxOrderingOfPreviousSiblings) for item in siblings[insertIndex:]: item.setOrdering(item.ordering() - minOrderingOfNextSiblings + 1 + maxOrdering - minOrdering + 1 + maxOrderingOfPreviousSiblings) else: super(OrderingDragAndDropCommand, self).do_command() class EditSubjectCommand(BaseCommand): plural_name = _('Edit subjects') singular_name = _('Edit subject "%s"') def __init__(self, *args, **kwargs): self.__newSubject = kwargs.pop('newValue') super(EditSubjectCommand, self).__init__(*args, **kwargs) self.__old_subjects = [(item, item.subject()) for item in self.items] @patterns.eventSource def do_command(self, event=None): super(EditSubjectCommand, self).do_command() for item in self.items: item.setSubject(self.__newSubject, event=event) @patterns.eventSource def undo_command(self, event=None): super(EditSubjectCommand, self).undo_command() for item, old_subject in self.__old_subjects: item.setSubject(old_subject, event=event) def redo_command(self): self.do_command() class EditDescriptionCommand(BaseCommand): plural_name = _('Edit descriptions') singular_name = _('Edit description "%s"') def __init__(self, *args, **kwargs): self.__new_description = kwargs.pop('newValue') super(EditDescriptionCommand, self).__init__(*args, **kwargs) self.__old_descriptions = [item.description() for item in self.items] @patterns.eventSource def do_command(self, event=None): super(EditDescriptionCommand, self).do_command() for item in self.items: item.setDescription(self.__new_description, event=event) @patterns.eventSource def undo_command(self, event=None): super(EditDescriptionCommand, self).undo_command() for item, old_description in zip(self.items, self.__old_descriptions): item.setDescription(old_description, event=event) def redo_command(self): self.do_command() class EditIconCommand(BaseCommand): plural_name = _('Change icons') singular_name = _('Change icon "%s"') def __init__(self, *args, **kwargs): self.__newIcon = icon = kwargs.pop('newValue') self.__newSelectedIcon = icon[:-len('_icon')] + '_open_icon' \ if (icon.startswith('folder') and icon.count('_') == 2) \ else icon super(EditIconCommand, self).__init__(*args, **kwargs) self.__oldIcons = [(item.icon(), item.selectedIcon()) for item in self.items] @patterns.eventSource def do_command(self, event=None): super(EditIconCommand, self).do_command() for item in self.items: item.setIcon(self.__newIcon, event=event) item.setSelectedIcon(self.__newSelectedIcon, event=event) @patterns.eventSource def undo_command(self, event=None): super(EditIconCommand, self).undo_command() for item, (oldIcon, oldSelectedIcon) in zip(self.items, self.__oldIcons): item.setIcon(oldIcon, event=event) item.setSelectedIcon(oldSelectedIcon, event=event) def redo_command(self): self.do_command() class EditFontCommand(BaseCommand): plural_name = _('Change fonts') singular_name = _('Change font "%s"') def __init__(self, *args, **kwargs): self.__newFont = kwargs.pop('newValue') super(EditFontCommand, self).__init__(*args, **kwargs) self.__oldFonts = [item.font() for item in self.items] @patterns.eventSource def do_command(self, event=None): super(EditFontCommand, self).do_command() for item in self.items: item.setFont(self.__newFont, event=event) @patterns.eventSource def undo_command(self, event=None): super(EditFontCommand, self).undo_command() for item, oldFont in zip(self.items, self.__oldFonts): item.setFont(oldFont, event=event) def redo_command(self): self.do_command() class EditColorCommand(BaseCommand): def __init__(self, *args, **kwargs): self.__newColor = kwargs.pop('newValue') super(EditColorCommand, self).__init__(*args, **kwargs) self.__oldColors = [self.getItemColor(item) for item in self.items] @staticmethod def getItemColor(item): raise NotImplementedError @staticmethod def setItemColor(item, color, event): raise NotImplementedError @patterns.eventSource def do_command(self, event=None): super(EditColorCommand, self).do_command() for item in self.items: self.setItemColor(item, self.__newColor, event) @patterns.eventSource def undo_command(self, event=None): super(EditColorCommand, self).undo_command() for item, oldColor in zip(self.items, self.__oldColors): self.setItemColor(item, oldColor, event) def redo_command(self): self.do_command() class EditForegroundColorCommand(EditColorCommand): plural_name = _('Change foreground colors') singular_name = _('Change foreground color "%s"') @staticmethod def getItemColor(item): return item.foregroundColor() @staticmethod def setItemColor(item, color, event): item.setForegroundColor(color, event=event) class EditBackgroundColorCommand(EditColorCommand): plural_name = _('Change background colors') singular_name = _('Change background color "%s"') @staticmethod def getItemColor(item): return item.backgroundColor() @staticmethod def setItemColor(item, color, event): item.setBackgroundColor(color, event=event) taskcoach-1.4.3/taskcoachlib/command/categorizableCommands.py000066400000000000000000000113551265347643000244120ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.i18n import _ from taskcoachlib import patterns import base class ToggleCategoryCommand(base.BaseCommand): plural_name = _('Toggle category') singular_name = _('Toggle category of "%s"') def __init__(self, *args, **kwargs): self.category = kwargs.pop('category') super(ToggleCategoryCommand, self).__init__(*args, **kwargs) # Keep track of previous category per categorizable in case of mutual # exclusive categories: self.__previous_categories = dict() # When some items are in the category and some are not, only toggle # the items that are not in the category. items_not_in_category = [item for item in self.items \ if self.category not in item.categories()] if 0 < len(items_not_in_category) < len(self.items): self.items = items_not_in_category def do_command(self): super(ToggleCategoryCommand, self).do_command() self.toggle_category() def undo_command(self): super(ToggleCategoryCommand, self).undo_command() self.toggle_category() redo_command = do_command @patterns.eventSource def toggle_category(self, event=None): for categorizable in self.items: if self.category in categorizable.categories(): self.unlink_category(self.category, categorizable, event) self.relink_previous_categories(categorizable, event) else: self.link_category(self.category, categorizable, event) self.unlink_previous_categories(categorizable, event) def unlink_previous_categories(self, categorizable, event): ''' Remove categorizable from any mutually exclusive categories it might belong to. ''' if self.category.isMutualExclusive(): parent = self.category.parent() if parent in categorizable.categories() and not parent.isMutualExclusive(): self.unlink_previous_category(parent, categorizable, event) else: self.unlink_previous_mutual_exclusive_category(self.category.siblings(recursive=True), categorizable, event) if self.category.hasExclusiveSubcategories(): self.unlink_previous_mutual_exclusive_category(self.category.children(), categorizable, event) def unlink_previous_mutual_exclusive_category(self, categories, categorizable, event): ''' Look for the category that categorizable belongs to and remove categorizable from it. ''' for category in categories: if categorizable in category.categorizables(): self.unlink_previous_category(category, categorizable, event) def unlink_previous_category(self, category, categorizable, event): ''' Remove categorizable from category, but remember the category so it can be restored later. ''' self.unlink_category(category, categorizable, event) self.__previous_categories.setdefault(categorizable, []).append(category) def relink_previous_categories(self, categorizable, event): ''' Re-add categorizable to its previous categories. ''' if categorizable in self.__previous_categories: for previous_category in self.__previous_categories[categorizable]: self.link_category(previous_category, categorizable, event) def link_category(self, category, categorizable, event): ''' Make categorizable belong to category. ''' category.addCategorizable(categorizable, event=event) categorizable.addCategory(category, event=event) def unlink_category(self, category, categorizable, event): ''' Make categorizable no longer belong to category. ''' category.removeCategorizable(categorizable, event=event) categorizable.removeCategory(category, event=event) taskcoach-1.4.3/taskcoachlib/command/categoryCommands.py000077500000000000000000000065711265347643000234230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.i18n import _ from taskcoachlib.domain import category import base class NewCategoryCommand(base.NewItemCommand): singular_name = _('New category') def __init__(self, *args, **kwargs): subject = kwargs.pop('subject', _('New category')) description = kwargs.pop('description', '') attachments = kwargs.pop('attachments', []) super(NewCategoryCommand, self).__init__(*args, **kwargs) self.items = self.createNewCategories(subject=subject, description=description, attachments=attachments) def createNewCategories(self, **kwargs): return [category.Category(**kwargs)] class NewSubCategoryCommand(base.NewSubItemCommand): plural_name = _('New subcategories') singular_name = _('New subcategory of "%s"') def __init__(self, *args, **kwargs): subject = kwargs.pop('subject', _('New subcategory')) description = kwargs.pop('description', '') attachments = kwargs.pop('attachments', []) super(NewSubCategoryCommand, self).__init__(*args, **kwargs) self.items = self.createNewCategories(subject=subject, description=description, attachments=attachments) self.save_modification_datetimes() def createNewCategories(self, **kwargs): return [parent.newChild(**kwargs) for parent in self.items] class EditExclusiveSubcategoriesCommand(base.BaseCommand): plural_name = _('Edit exclusive subcategories') singular_name = _('Edit exclusive subcategories of "%s"') def __init__(self, *args, **kwargs): self.__newExclusivity = kwargs.pop('newValue') super(EditExclusiveSubcategoriesCommand, self).__init__(*args, **kwargs) self.__oldExclusivities = [item.hasExclusiveSubcategories() for item in self.items] @patterns.eventSource def do_command(self, event=None): super(EditExclusiveSubcategoriesCommand, self).do_command() for item in self.items: item.makeSubcategoriesExclusive(self.__newExclusivity, event=event) @patterns.eventSource def undo_command(self, event=None): super(EditExclusiveSubcategoriesCommand, self).undo_command() for item, oldExclusivity in zip(self.items, self.__oldExclusivities): item.makeSubcategoriesExclusive(oldExclusivity, event=event) def redo_command(self): self.do_command() class DeleteCategoryCommand(base.DeleteCommand): plural_name = _('Delete categories') singular_name = _('Delete category "%s"') class DragAndDropCategoryCommand(base.OrderingDragAndDropCommand): plural_name = _('Drag and drop categories') taskcoach-1.4.3/taskcoachlib/command/clipboard.py000066400000000000000000000024721265347643000220540ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns class Clipboard: __metaclass__ = patterns.Singleton def __init__(self): self.clear() def put(self, items, source): # pylint: disable=W0201 self._contents = items self._source = source def get(self): currentContents = self._contents currentSource = self._source return currentContents, currentSource def peek(self): return self._contents def clear(self): self._contents = [] self._source = None def __nonzero__(self): return len(self._contents) taskcoach-1.4.3/taskcoachlib/command/effortCommands.py000066400000000000000000000135321265347643000230630ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import effort, date from taskcoachlib.i18n import _ import base class NewEffortCommand(base.BaseCommand): plural_name = _('New efforts') singular_name = _('New effort of "%s"') def __init__(self, *args, **kwargs): self.__tasks = [] super(NewEffortCommand, self).__init__(*args, **kwargs) self.__tasks = self.items self.items = self.efforts = [effort.Effort(task) for task in self.items] self.__oldActualStartDateTimes = {} self.save_modification_datetimes() def modified_items(self): return self.__tasks def name_subject(self, effort): # pylint: disable=W0621 return effort.task().subject() def do_command(self): super(NewEffortCommand, self).do_command() for effort in self.efforts: # pylint: disable=W0621 task = effort.task() if task not in self.__oldActualStartDateTimes and effort.getStart() < task.actualStartDateTime(): self.__oldActualStartDateTimes[task] = task.actualStartDateTime() task.setActualStartDateTime(effort.getStart()) task.addEffort(effort) def undo_command(self): super(NewEffortCommand, self).undo_command() for effort in self.efforts: # pylint: disable=W0621 task = effort.task() task.removeEffort(effort) if task in self.__oldActualStartDateTimes: task.setActualStartDateTime(self.__oldActualStartDateTimes[task]) del self.__oldActualStartDateTimes[task] redo_command = do_command class DeleteEffortCommand(base.DeleteCommand): plural_name = _('Delete efforts') singular_name = _('Delete effort "%s"') def modified_items(self): return [item.task() for item in self.items] class EditTaskCommand(base.BaseCommand): plural_name = _('Change task of effort') singular_name = _('Change task of "%s" effort') def __init__(self, *args, **kwargs): self.__task = kwargs.pop('newValue') self.__oldTasks = [] super(EditTaskCommand, self).__init__(*args, **kwargs) self.__oldTasks = [item.task() for item in self.items] self.save_modification_datetimes() def modified_items(self): return [self.__task] + self.__oldTasks def do_command(self): super(EditTaskCommand, self).do_command() for item in self.items: item.setTask(self.__task) def undo_command(self): super(EditTaskCommand, self).undo_command() for item, oldTask in zip(self.items, self.__oldTasks): item.setTask(oldTask) def redo_command(self): self.do_command() class EditEffortStartDateTimeCommand(base.BaseCommand): plural_name = _('Change effort start date and time') singular_name = _('Change effort start date and time of "%s"') def __init__(self, *args, **kwargs): self.__datetime = kwargs.pop('newValue') super(EditEffortStartDateTimeCommand, self).__init__(*args, **kwargs) self.__oldDateTimes = [item.getStart() for item in self.items] self.__oldActualStartDateTimes = {} def canDo(self): maxDateTime = date.DateTime() return super(EditEffortStartDateTimeCommand, self).canDo() and \ all(self.__datetime < (item.getStop() or maxDateTime) for item in self.items) def do_command(self): for item in self.items: item.setStart(self.__datetime) task = item.task() if task not in self.__oldActualStartDateTimes and self.__datetime < task.actualStartDateTime(): self.__oldActualStartDateTimes[task] = task.actualStartDateTime() task.setActualStartDateTime(self.__datetime) def undo_command(self): for item, oldDateTime in zip(self.items, self.__oldDateTimes): item.setStart(oldDateTime) task = item.task() if task in self.__oldActualStartDateTimes: task.setActualStartDateTime(self.__oldActualStartDateTimes[task]) del self.__oldActualStartDateTimes[task] def redo_command(self): self.do_command() class EditEffortStopDateTimeCommand(base.BaseCommand): plural_name = _('Change effort stop date and time') singular_name = _('Change effort stop date and time of "%s"') def __init__(self, *args, **kwargs): self.__datetime = kwargs.pop('newValue') super(EditEffortStopDateTimeCommand, self).__init__(*args, **kwargs) self.__oldDateTimes = [item.getStop() for item in self.items] def canDo(self): return super(EditEffortStopDateTimeCommand, self).canDo() and \ all(self.__datetime > item.getStart() for item in self.items) def do_command(self): for item in self.items: item.setStop(self.__datetime) def undo_command(self): for item, oldDateTime in zip(self.items, self.__oldDateTimes): item.setStop(oldDateTime) def redo_command(self): self.do_command() taskcoach-1.4.3/taskcoachlib/command/noteCommands.py000066400000000000000000000151111265347643000225360ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.i18n import _ from taskcoachlib.domain import note import base class NewNoteCommand(base.NewItemCommand): singular_name = _('New note') def __init__(self, *args, **kwargs): subject = kwargs.pop('subject', _('New note')) description = kwargs.pop('description', '') attachments = kwargs.pop('attachments', []) categories = kwargs.get('categories', None) super(NewNoteCommand, self).__init__(*args, **kwargs) self.items = self.notes = [note.Note(subject=subject, description=description, categories=categories, attachments=attachments)] class NewSubNoteCommand(base.NewSubItemCommand): plural_name = _('New subnotes') singular_name = _('New subnote of "%s"') def __init__(self, *args, **kwargs): subject = kwargs.pop('subject', _('New subnote')) description = kwargs.pop('description', '') attachments = kwargs.pop('attachments', []) categories = kwargs.get('categories', None) super(NewSubNoteCommand, self).__init__(*args, **kwargs) self.items = self.notes = [parent.newChild(subject=subject, description=description, categories=categories, attachments=attachments) for parent in self.items] self.save_modification_datetimes() class DeleteNoteCommand(base.DeleteCommand): plural_name = _('Delete notes') singular_name = _('Delete note "%s"') class DragAndDropNoteCommand(base.OrderingDragAndDropCommand): plural_name = _('Drag and drop notes') singular_name = _('Drag and drop note "%s"') class AddNoteCommand(base.BaseCommand): plural_name = _('Add note') singular_name = _('Add note to "%s"') def __init__(self, *args, **kwargs): self.owners = [] super(AddNoteCommand, self).__init__(*args, **kwargs) self.owners = self.items self.items = self.__notes = [note.Note(subject=_('New note')) \ for dummy in self.items] self.save_modification_datetimes() def modified_items(self): return self.owners def name_subject(self, newNote): # pylint: disable=W0613 # Override to use the subject of the owner of the new note instead # of the subject of the new note itself, which wouldn't be very # interesting because it's something like 'New note'. return self.owners[0].subject() @patterns.eventSource def addNotes(self, event=None): for owner, note in zip(self.owners, self.__notes): # pylint: disable=W0621 owner.addNote(note, event=event) @patterns.eventSource def removeNotes(self, event=None): for owner, note in zip(self.owners, self.__notes): # pylint: disable=W0621 owner.removeNote(note, event=event) def do_command(self): super(AddNoteCommand, self).do_command() self.addNotes() def undo_command(self): super(AddNoteCommand, self).undo_command() self.removeNotes() def redo_command(self): super(AddNoteCommand, self).redo_command() self.addNotes() class AddSubNoteCommand(base.BaseCommand): plural_name = _('Add subnote') singular_name = _('Add subnote to "%s"') def __init__(self, *args, **kwargs): self.__owner = kwargs.pop('owner') self.__parents = [] super(AddSubNoteCommand, self).__init__(*args, **kwargs) self.__parents = self.items self.__notes = kwargs.get('notes', [note.Note(subject=_('New subnote'), parent=parent) \ for parent in self.__parents]) self.items = self.__notes self.save_modification_datetimes() def modified_items(self): return self.__parents + [self.__owner] @patterns.eventSource def addNotes(self, event=None): for parent, subnote in zip(self.__parents, self.__notes): parent.addChild(subnote, event=event) self.__owner.addNote(subnote, event=event) @patterns.eventSource def removeNotes(self, event=None): for parent, subnote in zip(self.__parents, self.__notes): parent.removeChild(subnote, event=event) self.__owner.removeNote(subnote, event=event) def do_command(self): super(AddSubNoteCommand, self).do_command() self.addNotes() def undo_command(self): super(AddSubNoteCommand, self).undo_command() self.removeNotes() def redo_command(self): super(AddSubNoteCommand, self).redo_command() self.addNotes() class RemoveNoteCommand(base.BaseCommand): plural_name = _('Remove note') singular_name = _('Remove note from "%s"') def __init__(self, *args, **kwargs): self.__notes = kwargs.pop('notes') super(RemoveNoteCommand, self).__init__(*args, **kwargs) @patterns.eventSource def addNotes(self, event=None): kwargs = dict(event=event) for item in self.items: item.addNotes(*self.__notes, **kwargs) # pylint: disable=W0142 @patterns.eventSource def removeNotes(self, event=None): # pylint: disable=W0142 kwargs = dict(event=event) for item in self.items: for eachNote in self.__notes: if eachNote.parent(): eachNote.parent().removeChild(eachNote, **kwargs) item.removeNotes(*self.__notes, **kwargs) def do_command(self): super(RemoveNoteCommand, self).do_command() self.removeNotes() def undo_command(self): super(RemoveNoteCommand, self).undo_command() self.addNotes() def redo_command(self): super(RemoveNoteCommand, self).redo_command() self.removeNotes() taskcoach-1.4.3/taskcoachlib/command/taskCommands.py000066400000000000000000000717161265347643000225500ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import task, effort, date from taskcoachlib.i18n import _ import base import noteCommands class SaveTaskStateMixin(base.SaveStateMixin, base.CompositeMixin): pass class EffortCommand(base.BaseCommand): # pylint: disable=W0223 def stopTracking(self): self.stoppedEfforts = [] # pylint: disable=W0201 for taskToStop in self.tasksToStopTracking(): self.stoppedEfforts.extend(taskToStop.activeEfforts()) taskToStop.stopTracking() def startTracking(self): for stoppedEffort in self.stoppedEfforts: stoppedEffort.setStop(date.DateTime.max) def tasksToStopTracking(self): return self.list def do_command(self): super(EffortCommand, self).do_command() self.stopTracking() def undo_command(self): super(EffortCommand, self).undo_command() self.startTracking() def redo_command(self): super(EffortCommand, self).redo_command() self.stopTracking() class DragAndDropTaskCommand(base.OrderingDragAndDropCommand): plural_name = _('Drag and drop tasks') def getItemsToSave(self): toSave = super(DragAndDropTaskCommand, self).getItemsToSave() if self.part != 0: toSave.extend(self.getSiblings()) return list(set(toSave)) # Because parent may have added siblings as well def do_command(self): if self.part == 0 or self.isOrdering(): super(DragAndDropTaskCommand, self).do_command() else: if self.part == -1: # Up part. Add dropped items as prerequisites of dropped on item. self._itemToDropOn.addPrerequisites(self.items) self._itemToDropOn.addTaskAsDependencyOf(self.items) else: # Down. Add dropped on item as prerequisite of dropped items. for item in self.items: item.addPrerequisites([self._itemToDropOn]) item.addTaskAsDependencyOf([self._itemToDropOn]) def undo_command(self): if self.part == 0 or self.isOrdering(): super(DragAndDropTaskCommand, self).undo_command() elif self.part == -1: self._itemToDropOn.removePrerequisites(self.items) self._itemToDropOn.removeTaskAsDependencyOf(self.items) else: for item in self.items: item.removePrerequisites([self._itemToDropOn]) item.removeTaskAsDependencyOf([self._itemToDropOn]) def redo_command(self): if self.part == 0 or self.isOrdering(): super(DragAndDropTaskCommand, self).redo_command() elif self.part == -1: self._itemToDropOn.addPrerequisites(self.items) self._itemToDropOn.addTaskAsDependencyOf(self.items) else: for item in self.items: item.addPrerequisites([self._itemToDropOn]) item.addTaskAsDependencyOf([self._itemToDropOn]) class DeleteTaskCommand(base.DeleteCommand, EffortCommand): plural_name = _('Delete tasks') singular_name = _('Delete task "%s"') def tasksToStopTracking(self): return self.items def do_command(self): super(DeleteTaskCommand, self).do_command() self.stopTracking() self.__removePrerequisites() def undo_command(self): super(DeleteTaskCommand, self).undo_command() self.startTracking() self.__restorePrerequisites() def redo_command(self): super(DeleteTaskCommand, self).redo_command() self.stopTracking() self.__removePrerequisites() def __removePrerequisites(self): self.__relationsToRestore = dict() # pylint: disable=W0201 for eachTask in self.items: prerequisites, dependencies = eachTask.prerequisites(), eachTask.dependencies() self.__relationsToRestore[eachTask] = prerequisites, dependencies eachTask.removeTaskAsDependencyOf(prerequisites) eachTask.removeTaskAsPrerequisiteOf(dependencies) eachTask.setPrerequisites([]) eachTask.setDependencies([]) def __restorePrerequisites(self): for eachTask, (prerequisites, dependencies) in self.__relationsToRestore.items(): eachTask.addTaskAsDependencyOf(prerequisites) eachTask.addTaskAsPrerequisiteOf(dependencies) eachTask.setPrerequisites(prerequisites) eachTask.setDependencies(dependencies) class NewTaskCommand(base.NewItemCommand): singular_name = _('New task') def __init__(self, *args, **kwargs): subject = kwargs.pop('subject', _('New task')) super(NewTaskCommand, self).__init__(*args, **kwargs) self.items = [task.Task(subject=subject, **kwargs)] @patterns.eventSource def do_command(self, event=None): super(NewTaskCommand, self).do_command(event=event) self.addDependenciesAndPrerequisites() @patterns.eventSource def undo_command(self, event=None): super(NewTaskCommand, self).undo_command(event=event) self.removeDependenciesAndPrerequisites() @patterns.eventSource def redo_command(self, event=None): super(NewTaskCommand, self).redo_command(event=event) self.addDependenciesAndPrerequisites() def addDependenciesAndPrerequisites(self): for eachTask in self.items: for prerequisite in eachTask.prerequisites(): prerequisite.addDependencies([eachTask]) for dependency in eachTask.dependencies(): dependency.addPrerequisites([eachTask]) def removeDependenciesAndPrerequisites(self): for eachTask in self.items: for prerequisite in eachTask.prerequisites(): prerequisite.removeDependencies([eachTask]) for dependency in eachTask.dependencies(): dependency.removePrerequisites([eachTask]) class NewSubTaskCommand(base.NewSubItemCommand, SaveTaskStateMixin): plural_name = _('New subtasks') singular_name = _('New subtask of "%s"') # pylint: disable=E1101 def __init__(self, *args, **kwargs): subject = kwargs.pop('subject', _('New subtask')) plannedStartDateTime = kwargs.pop('plannedStartDateTime', date.DateTime()) dueDateTime = kwargs.pop('dueDateTime', date.DateTime()) super(NewSubTaskCommand, self).__init__(*args, **kwargs) self.items = [parent.newChild(subject=subject, plannedStartDateTime=max([parent.plannedStartDateTime(), plannedStartDateTime]), dueDateTime=min([parent.dueDateTime(), dueDateTime]), **kwargs) for parent in self.items] self.saveStates(self.getTasksToSave()) self.save_modification_datetimes() def getTasksToSave(self): # FIXME: can be simplified to: return self.getAncestors(self.items) ? parents = [item.parent() for item in self.items if item.parent()] return parents + self.getAncestors(parents) @patterns.eventSource def undo_command(self, event=None): super(NewSubTaskCommand, self).undo_command(event=event) self.undoStates(event=event) @patterns.eventSource def redo_command(self, event=None): super(NewSubTaskCommand, self).redo_command(event=event) self.redoStates(event=event) class MarkCompletedCommand(base.SaveStateMixin, EffortCommand): plural_name = _('Mark tasks completed') singular_name = _('Mark "%s" completed') def __init__(self, *args, **kwargs): super(MarkCompletedCommand, self).__init__(*args, **kwargs) self.items = [item for item in self.items if item.completionDateTime() > date.Now()] itemsToSave = set([relative for item in self.items for relative in item.family()]) self.saveStates(itemsToSave) def do_command(self): super(MarkCompletedCommand, self).do_command() for item in self.items: item.setCompletionDateTime(task.Task.suggestedCompletionDateTime()) def undo_command(self): self.undoStates() super(MarkCompletedCommand, self).undo_command() def redo_command(self): self.redoStates() super(MarkCompletedCommand, self).redo_command() def tasksToStopTracking(self): return self.items class MarkActiveCommand(base.SaveStateMixin, base.BaseCommand): plural_name = _('Mark task active') singular_name = _('Mark "%s" active') def __init__(self, *args, **kwargs): super(MarkActiveCommand, self).__init__(*args, **kwargs) self.items = [item for item in self.items if item.actualStartDateTime() > date.Now() or item.completionDateTime() != date.DateTime()] itemsToSave = set([relative for item in self.items for relative in item.family()]) self.saveStates(itemsToSave) def do_command(self): super(MarkActiveCommand, self).do_command() for item in self.items: item.setActualStartDateTime(task.Task.suggestedActualStartDateTime()) item.setCompletionDateTime(date.DateTime()) def undo_command(self): self.undoStates() super(MarkActiveCommand, self).undo_command() def redo_command(self): self.redoStates() super(MarkActiveCommand, self).redo_command() class MarkInactiveCommand(base.SaveStateMixin, base.BaseCommand): plural_name = _('Mark task inactive') singular_name = _('Mark "%s" inactive') def __init__(self, *args, **kwargs): super(MarkInactiveCommand, self).__init__(*args, **kwargs) self.items = [item for item in self.items if item.actualStartDateTime() != date.DateTime() or item.completionDateTime() != date.DateTime()] itemsToSave = set([relative for item in self.items for relative in item.family()]) self.saveStates(itemsToSave) def do_command(self): super(MarkInactiveCommand, self).do_command() for item in self.items: item.setActualStartDateTime(date.DateTime()) item.setCompletionDateTime(date.DateTime()) def undo_command(self): self.undoStates() super(MarkInactiveCommand, self).undo_command() def redo_command(self): self.redoStates() super(MarkInactiveCommand, self).redo_command() class StartEffortCommand(EffortCommand): plural_name = _('Start tracking') singular_name = _('Start tracking "%s"') def __init__(self, *args, **kwargs): super(StartEffortCommand, self).__init__(*args, **kwargs) start = date.DateTime.now() self.efforts = [effort.Effort(item, start) for item in self.items] self.actualStartDateTimes = [(item.actualStartDateTime() if start < item.actualStartDateTime() else None) for item in self.items] def do_command(self): super(StartEffortCommand, self).do_command() self.addEfforts() def undo_command(self): self.removeEfforts() super(StartEffortCommand, self).undo_command() def redo_command(self): super(StartEffortCommand, self).redo_command() self.addEfforts() def addEfforts(self): for item, newEffort, currentActualStartDateTime in zip(self.items, self.efforts, self.actualStartDateTimes): item.addEffort(newEffort) if currentActualStartDateTime: item.setActualStartDateTime(newEffort.getStart()) def removeEfforts(self): for item, newEffort, previousActualStartDateTime in zip(self.items, self.efforts, self.actualStartDateTimes): item.removeEffort(newEffort) if previousActualStartDateTime: item.setActualStartDateTime(previousActualStartDateTime) class StopEffortCommand(EffortCommand): plural_name = _('Stop tracking') singular_name = _('Stop tracking "%s"') def canDo(self): return True # No selected items needed. def tasksToStopTracking(self): stoppable = lambda effort: effort.isBeingTracked() and not effort.isTotal() return set([effort.task() for effort in (self.items if self.items else self.list) if stoppable(effort)]) # pylint: disable=W0621 class ExtremePriorityCommand(base.BaseCommand): # pylint: disable=W0223 delta = 'Subclass responsibility' def __init__(self, *args, **kwargs): super(ExtremePriorityCommand, self).__init__(*args, **kwargs) self.oldPriorities = [item.priority() for item in self.items] self.oldExtremePriority = self.getOldExtremePriority() def getOldExtremePriority(self): raise NotImplementedError # pragma: no cover def setNewExtremePriority(self): newExtremePriority = self.oldExtremePriority + self.delta for item in self.items: item.setPriority(newExtremePriority) def restorePriorities(self): for item, oldPriority in zip(self.items, self.oldPriorities): item.setPriority(oldPriority) def do_command(self): super(ExtremePriorityCommand, self).do_command() self.setNewExtremePriority() def undo_command(self): self.restorePriorities() super(ExtremePriorityCommand, self).undo_command() def redo_command(self): super(ExtremePriorityCommand, self).redo_command() self.setNewExtremePriority() class MaxPriorityCommand(ExtremePriorityCommand): plural_name = _('Maximize priority') singular_name = _('Maximize priority of "%s"') delta = +1 def getOldExtremePriority(self): return self.list.maxPriority() class MinPriorityCommand(ExtremePriorityCommand): plural_name = _('Minimize priority') singular_name = _('Minimize priority of "%s"') delta = -1 def getOldExtremePriority(self): return self.list.minPriority() class ChangePriorityCommand(base.BaseCommand): # pylint: disable=W0223 delta = 'Subclass responsibility' def changePriorities(self, delta): for item in self.items: item.setPriority(item.priority() + delta) def do_command(self): super(ChangePriorityCommand, self).do_command() self.changePriorities(self.delta) def undo_command(self): self.changePriorities(-self.delta) super(ChangePriorityCommand, self).undo_command() def redo_command(self): super(ChangePriorityCommand, self).redo_command() self.changePriorities(self.delta) class IncPriorityCommand(ChangePriorityCommand): plural_name = _('Increase priority') singular_name = _('Increase priority of "%s"') delta = +1 class DecPriorityCommand(ChangePriorityCommand): plural_name = _('Decrease priority') singular_name = _('Decrease priority of "%s"') delta = -1 class EditPriorityCommand(base.BaseCommand): plural_name = _('Change priority') singular_name = _('Change priority of "%s"') def __init__(self, *args, **kwargs): self.__newPriority = kwargs.pop('newValue') super(EditPriorityCommand, self).__init__(*args, **kwargs) self.__oldPriorities = [item.priority() for item in self.items] def do_command(self): super(EditPriorityCommand, self).do_command() for item in self.items: item.setPriority(self.__newPriority) def undo_command(self): super(EditPriorityCommand, self).undo_command() for item, oldPriority in zip(self.items, self.__oldPriorities): item.setPriority(oldPriority) def redo_command(self): self.do_command() class AddTaskNoteCommand(noteCommands.AddNoteCommand): plural_name = _('Add note to tasks') class EditDateTimeCommand(base.BaseCommand): def __init__(self, *args, **kwargs): self._newDateTime = kwargs.pop('newValue') super(EditDateTimeCommand, self).__init__(*args, **kwargs) self.__oldDateTimes = [self.getDateTime(item) for item in self.items] familyMembers = set() for item in self.items: for familyMember in item.family(): if familyMember not in self.items: familyMembers.add(familyMember) self.__oldFamilyMemberDateTimes = [(familyMember, self.getDateTime(familyMember)) for familyMember in familyMembers] @staticmethod def getDateTime(item): raise NotImplementedError # pragma: no cover @staticmethod def setDateTime(item, newDateTime): raise NotImplementedError # pragma: no cover def do_command(self): super(EditDateTimeCommand, self).do_command() for item in self.items: self.setDateTime(item, self._newDateTime) def undo_command(self): super(EditDateTimeCommand, self).undo_command() for item, oldDateTime in zip(self.items, self.__oldDateTimes): self.setDateTime(item, oldDateTime) for familyMember, oldDateTime in self.__oldFamilyMemberDateTimes: self.setDateTime(familyMember, oldDateTime) def redo_command(self): self.do_command() class EditPeriodDateTimeCommand(EditDateTimeCommand): ''' Base for date/time commands that also may have to adjust the other end of the period. E.g., where changing the planned start date should also change the due date to keep the period the same length. ''' def __init__(self, *args, **kwargs): self.__keep_delta = kwargs.pop('keep_delta', False) super(EditPeriodDateTimeCommand, self).__init__(*args, **kwargs) def do_command(self): self.__adjustOtherDateTime(direction=1) super(EditPeriodDateTimeCommand, self).do_command() def undo_command(self): super(EditPeriodDateTimeCommand, self).undo_command() self.__adjustOtherDateTime(direction=-1) def __adjustOtherDateTime(self, direction): for item in self.items: if self.__shouldAdjustItem(item): delta = direction * (self._newDateTime - self.getDateTime(item)) newOtherDateTime = self.getOtherDateTime(item) + delta self.setOtherDateTime(item, newOtherDateTime) def __shouldAdjustItem(self, item): ''' Determine whether the other date/time of the item should be adjusted. ''' return self.__keep_delta and date.DateTime() not in (self._newDateTime, item.plannedStartDateTime(), item.dueDateTime()) @staticmethod def getOtherDateTime(item): ''' Gets the date/time that represents the other end of the period. ''' raise NotImplementedError # pragma: no cover @staticmethod def setOtherDateTime(item, newDateTime): ''' Set the date/time that represents the other end of the period. ''' raise NotImplementedError # pragma: no cover class EditPlannedStartDateTimeCommand(EditPeriodDateTimeCommand): plural_name = _('Change planned start date') singular_name = _('Change planned start date of "%s"') @staticmethod def getDateTime(item): return item.plannedStartDateTime() @staticmethod def setDateTime(item, dateTime): item.setPlannedStartDateTime(dateTime) @staticmethod def getOtherDateTime(item): return item.dueDateTime() @staticmethod def setOtherDateTime(item, dateTime): item.setDueDateTime(dateTime) class EditDueDateTimeCommand(EditPeriodDateTimeCommand): plural_name = _('Change due date') singular_name = _('Change due date of "%s"') @staticmethod def getDateTime(item): return item.dueDateTime() @staticmethod def setDateTime(item, dateTime): item.setDueDateTime(dateTime) @staticmethod def getOtherDateTime(item): return item.plannedStartDateTime() @staticmethod def setOtherDateTime(item, dateTime): item.setPlannedStartDateTime(dateTime) class EditActualStartDateTimeCommand(EditPeriodDateTimeCommand): plural_name = _('Change actual start date') singular_name = _('Change actual start date of "%s"') @staticmethod def getDateTime(item): return item.actualStartDateTime() @staticmethod def setDateTime(item, dateTime): item.setActualStartDateTime(dateTime) @staticmethod def getOtherDateTime(item): return item.completionDateTime() @staticmethod def setOtherDateTime(item, dateTime): item.setCompletionDateTime(dateTime) class EditCompletionDateTimeCommand(EditDateTimeCommand, EffortCommand): plural_name = _('Change completion date') singular_name = _('Change completion date of "%s"') @staticmethod def getDateTime(item): return item.completionDateTime() @staticmethod def setDateTime(item, dateTime): item.setCompletionDateTime(dateTime) @staticmethod def getOtherDateTime(item): return item.actualStartDateTime() @staticmethod def setOtherDateTime(item, dateTime): item.setActualStartDateTime(dateTime) def tasksToStopTracking(self): return self.items class EditReminderDateTimeCommand(EditDateTimeCommand): plural_name = _('Change reminder dates/times') singular_name = _('Change reminder date/time of "%s"') @staticmethod def getDateTime(item): return item.reminder() @staticmethod def setDateTime(item, dateTime): item.setReminder(dateTime) class EditRecurrenceCommand(base.BaseCommand): plural_name = _('Change recurrences') singular_name = _('Change recurrence of "%s"') def __init__(self, *args, **kwargs): self.__newRecurrence = kwargs.pop('newValue') super(EditRecurrenceCommand, self).__init__(*args, **kwargs) self.__oldRecurrences = [item.recurrence() for item in self.items] def do_command(self): super(EditRecurrenceCommand, self).do_command() for item in self.items: item.setRecurrence(self.__newRecurrence) def undo_command(self): super(EditRecurrenceCommand, self).undo_command() for item, oldRecurrence in zip(self.items, self.__oldRecurrences): item.setRecurrence(oldRecurrence) def redo_command(self): self.do_command() class EditPercentageCompleteCommand(base.SaveStateMixin, EffortCommand): plurar_name = ('Change percentages complete') singular_name = _('Change percentage complete of "%s"') def __init__(self, *args, **kwargs): self.__newPercentage = kwargs.pop('newValue') super(EditPercentageCompleteCommand, self).__init__(*args, **kwargs) itemsToSave = set([relative for item in self.items for relative in item.family()]) self.saveStates(itemsToSave) def do_command(self): super(EditPercentageCompleteCommand, self).do_command() for item in self.items: item.setPercentageComplete(self.__newPercentage) def undo_command(self): self.undoStates() super(EditPercentageCompleteCommand, self).undo_command() def redo_command(self): self.redoStates() super(EditPercentageCompleteCommand, self).redo_command() def tasksToStopTracking(self): return self.items if self.__newPercentage == 100 else [] class EditShouldMarkCompletedCommand(base.BaseCommand): plural_name = _('Change when tasks are marked completed') singular_name = _('Change when "%s" is marked completed') def __init__(self, *args, **kwargs): self.__newShouldMarkCompleted = kwargs.pop('newValue') super(EditShouldMarkCompletedCommand, self).__init__(*args, **kwargs) self.__oldShouldMarkCompleted = [item.shouldMarkCompletedWhenAllChildrenCompleted() for item in self.items] def do_command(self): super(EditShouldMarkCompletedCommand, self).do_command() for item in self.items: item.setShouldMarkCompletedWhenAllChildrenCompleted(self.__newShouldMarkCompleted) def undo_command(self): super(EditShouldMarkCompletedCommand, self).undo_command() for item, oldShouldMarkCompleted in zip(self.items, self.__oldShouldMarkCompleted): item.setShouldMarkCompletedWhenAllChildrenCompleted(oldShouldMarkCompleted) def redo_command(self): self.do_command() class EditBudgetCommand(base.BaseCommand): plural_name = _('Change budgets') singular_name = _('Change budget of "%s"') def __init__(self, *args, **kwargs): self.__newBudget = kwargs.pop('newValue') super(EditBudgetCommand, self).__init__(*args, **kwargs) self.__oldBudgets = [item.budget() for item in self.items] def do_command(self): super(EditBudgetCommand, self).do_command() for item in self.items: item.setBudget(self.__newBudget) def undo_command(self): super(EditBudgetCommand, self).undo_command() for item, oldBudget in zip(self.items, self.__oldBudgets): item.setBudget(oldBudget) def redo_command(self): self.do_command() class EditHourlyFeeCommand(base.BaseCommand): plural_name = _('Change hourly fees') singular_name = _('Change hourly fee of "%s"') def __init__(self, *args, **kwargs): self.__newHourlyFee = kwargs.pop('newValue') super(EditHourlyFeeCommand, self).__init__(*args, **kwargs) self.__oldHourlyFees = [item.hourlyFee() for item in self.items] def do_command(self): super(EditHourlyFeeCommand, self).do_command() for item in self.items: item.setHourlyFee(self.__newHourlyFee) def undo_command(self): super(EditHourlyFeeCommand, self).undo_command() for item, oldHourlyFee in zip(self.items, self.__oldHourlyFees): item.setHourlyFee(oldHourlyFee) def redo_command(self): self.do_command() class EditFixedFeeCommand(base.BaseCommand): plural_name = _('Change fixed fees') singular_name = _('Change fixed fee of "%s"') def __init__(self, *args, **kwargs): self.__newFixedFee = kwargs.pop('newValue') super(EditFixedFeeCommand, self).__init__(*args, **kwargs) self.__oldFixedFees = [item.fixedFee() for item in self.items] def do_command(self): super(EditFixedFeeCommand, self).do_command() for item in self.items: item.setFixedFee(self.__newFixedFee) def undo_command(self): super(EditFixedFeeCommand, self).undo_command() for item, oldFixedFee in zip(self.items, self.__oldFixedFees): item.setFixedFee(oldFixedFee) def redo_command(self): self.do_command() class TogglePrerequisiteCommand(base.BaseCommand): plural_name = _('Toggle prerequisite') singular_name = _('Toggle prerequisite of "%s"') def __init__(self, *args, **kwargs): self.__checkedPrerequisites = set(kwargs.pop('checkedPrerequisites')) self.__uncheckedPrerequisites = set(kwargs.pop('uncheckedPrerequisites')) super(TogglePrerequisiteCommand, self).__init__(*args, **kwargs) def do_command(self): super(TogglePrerequisiteCommand, self).do_command() for item in self.items: item.addPrerequisites(self.__checkedPrerequisites) item.addTaskAsDependencyOf(self.__checkedPrerequisites) item.removePrerequisites(self.__uncheckedPrerequisites) item.removeTaskAsDependencyOf(self.__uncheckedPrerequisites) def undo_command(self): super(TogglePrerequisiteCommand, self).undo_command() for item in self.items: item.removePrerequisites(self.__checkedPrerequisites) item.removeTaskAsDependencyOf(self.__checkedPrerequisites) item.addPrerequisites(self.__uncheckedPrerequisites) item.addTaskAsDependencyOf(self.__uncheckedPrerequisites) def redo_command(self): self.do_command() taskcoach-1.4.3/taskcoachlib/config/000077500000000000000000000000001265347643000173655ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/config/__init__.py000066400000000000000000000015001265347643000214720ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from settings import Settings from options import OptionParser, ApplicationOptionParser, OptionGroup taskcoach-1.4.3/taskcoachlib/config/defaults.py000066400000000000000000000564541265347643000215640ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2012 Nicola Chiapolini Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import meta defaults = { 'balloontips': { 'customizabletoolbars': 'True', 'customizabletoolbars_dnd': 'True', 'filtershiftclick': 'True', 'autosavehint': 'True', 'manualordering': 'True', 'treemanualordering': 'True', 'treechildrenmanualordering': 'True', }, 'view': { 'statusbar': 'True', 'toolbar': '(22, 22)', 'toolbarperspective': 'FileOpen,Print,Separator,EditUndo,EditRedo,Separator,EffortStartButton,EffortStop', # Index of the active effort viewer in task editor: 'effortviewerintaskeditor': '0', 'taskviewercount': '1', # Number of task viewers in main window 'categoryviewercount': '1', # Number of category viewers in main window 'noteviewercount': '0', # Number of note viewers in main window 'effortviewercount': '0', # Number of effort viewers in main window 'effortviewerforselectedtaskscount': '0', 'squaretaskviewercount': '0', 'timelineviewercount': '0', 'calendarviewercount': '0', 'hierarchicalcalendarviewercount': '0', 'taskstatsviewercount': '0', # Language and locale, maybe set externally (e.g. by PortableApps): 'language': '', # Language and locale as set by user via preferences, overrides language: 'language_set_by_user': '', 'categoryfiltermatchall': 'False', 'weekstart': 'monday', # Start of work week, 'monday' or 'sunday' # The next three options are used in the effort dialog to populate the # drop down menu with start and stop times. 'efforthourstart': '8', # Earliest time, i.e. start of working day 'efforthourend': '18', # Last time, i.e. end of working day 'effortminuteinterval': '15', # Generate times with this interval 'snoozetimes': "[5, 10, 15, 30, 60, 120, 1440]", 'defaultsnoozetime': '5', # Default snooze time 'replacedefaultsnoozetime': 'True', # Make chosen snooze time the default? 'perspective': '', # The layout of the viewers in the main window # What to do when changing the planned start date or due date: 'datestied': '', # Default date and times to offer in the task dialog, see preferences for # possible values: 'defaultplannedstartdatetime': 'propose_today_currenttime', 'defaultduedatetime': 'propose_tomorrow_endofworkingday', 'defaultactualstartdatetime': 'propose_today_currenttime', 'defaultcompletiondatetime': 'propose_today_currenttime', 'defaultreminderdatetime': 'propose_tomorrow_startofworkingday', # Show messages from the developers downloaded from the website: 'developermessages': 'True', 'lastdevelopermessage': '', 'descriptionpopups': 'True', }, 'taskviewer': { 'title': '', # User supplied viewer title 'toolbarperspective': 'TaskNew,NewSubItem,TaskNewFromTemplateButton,Separator,Edit,Delete,Separator,TaskMarkInactive,TaskMarkActive,TaskMarkCompleted,Separator,EffortStart,EffortStop,Separator,Spacer,ViewerHideTasks_completed,ViewerHideTasks_inactive,ResetFilter,TaskViewerTreeOrListChoice,Search', 'treemode': 'True', # True = tree mode, False = list mode 'sortby': '["dueDateTime"]', 'sortbystatusfirst': 'True', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "['plannedStartDateTime', 'dueDateTime']", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'attachments': 28, 'notes': 28, 'ordering': 28}", 'columnautoresizing': 'True', 'hideinactivetasks': 'False', 'hidelatetasks': 'False', 'hideactivetasks': 'False', 'hideduesoontasks': 'False', 'hideoverduetasks': 'False', 'hidecompletedtasks': 'False', 'hidecompositetasks': 'False', }, 'taskstatsviewer': { 'title': '', 'toolbarperspective': 'TaskNew,TaskNewFromTemplateButton,Separator,ViewerPieChartAngle,Spacer,ViewerHideTasks_completed,ViewerHideTasks_inactive,ResetFilter,Search', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'hideinactivetasks': 'False', 'hidelatetasks': 'False', 'hideactivetasks': 'False', 'hideduesoontasks': 'False', 'hideoverduetasks': 'False', 'hidecompletedtasks': 'False', 'hidecompositetasks': 'False', 'piechartangle': '30', }, 'prerequisiteviewerintaskeditor': { 'title': '', # User supplied viewer title 'toolbarperspective': 'TaskNew,NewSubItem,TaskNewFromTemplateButton,Separator,Edit,Delete,Separator,TaskMarkInactive,TaskMarkActive,TaskMarkCompleted,Separator,EffortStart,EffortStop,Spacer,ViewerHideTasks_completed,ViewerHideTasks_inactive,ResetFilter,Search', 'treemode': 'True', # True = tree mode, False = list mode 'sortby': '["subject"]', 'sortbystatusfirst': 'True', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "['prerequisites', 'dependencies', 'plannedStartDateTime', " "'dueDateTime']", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'attachments': 28, 'notes': 28}", 'columnautoresizing': 'True', 'hideinactivetasks': 'False', 'hidelatetasks': 'False', 'hideduesoontasks': 'False', 'hideoverduetasks': 'False', 'hidecompletedtasks': 'False', 'hideactivetasks': 'False', 'hidecompositetasks': 'False' }, 'squaretaskviewer': { 'title': '', 'toolbarperspective': 'TaskNew,NewSubItem,TaskNewFromTemplateButton,Separator,Edit,Delete,Separator,TaskMarkInactive,TaskMarkActive,TaskMarkCompleted,Separator,EffortStart,EffortStop,Separator,SquareTaskViewerOrderChoice,Spacer,ViewerHideTasks_completed,ViewerHideTasks_inactive,ResetFilter,Search', 'sortby': '["budget"]', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'hideinactivetasks': 'False', 'hidelatetasks': 'False', 'hideactivetasks': 'False', 'hideduesoontasks': 'False', 'hideoverduetasks': 'False', 'hidecompletedtasks': 'False', 'hidecompositetasks': 'False' }, 'timelineviewer': { 'title': '', 'toolbarperspective': 'TaskNew,NewSubItem,TaskNewFromTemplateButton,Separator,Edit,Delete,Separator,TaskMarkInactive,TaskMarkActive,TaskMarkCompleted,Separator,EffortStart,EffortStop,Spacer,ViewerHideTasks_completed,ViewerHideTasks_inactive,ResetFilter,Search', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'hideinactivetasks': 'False', 'hidelatetasks': 'False', 'hideduesoontasks': 'False', 'hideoverduetasks': 'False', 'hideactivetasks': 'False', 'hidecompletedtasks': 'False', 'hidecompositetasks': 'False' }, 'hierarchicalcalendarviewer': { 'title': '', 'calendarformat': '0', 'headerformat': '1', 'drawnow': 'True', 'todaycolor': '0, 0, 200', 'toolbarperspective': 'TaskNew,NewSubItem,TaskNewFromTemplateButton,Separator,Edit,Delete,Separator,TaskMarkInactive,TaskMarkActive,TaskMarkCompleted,Separator,EffortStart,EffortStop,Separator,HierarchicalCalendarViewerConfigure,HierarchicalCalendarViewerPreviousPeriod,HierarchicalCalendarViewerToday,HierarchicalCalendarViewerNextPeriod,Spacer,ViewerHideTasks_completed,ViewerHideTasks_inactive,ResetFilter,Search', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'hideinactivetasks': 'False', 'hidelatetasks': 'False', 'hideactivetasks': 'False', 'hideduesoontasks': 'False', 'hideoverduetasks': 'False', 'hidecompletedtasks': 'False', 'hidecompositetasks': 'False', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'sortbystatusfirst': 'True', }, 'calendarviewer': { 'title': '', 'toolbarperspective': 'TaskNew,NewSubItem,TaskNewFromTemplateButton,Separator,Edit,Delete,Separator,TaskMarkInactive,TaskMarkActive,TaskMarkCompleted,Separator,EffortStart,EffortStop,Separator,CalendarViewerConfigure,CalendarViewerPreviousPeriod,CalendarViewerToday,CalendarViewerNextPeriod,Spacer,ViewerHideTasks_completed,ViewerHideTasks_inactive,ResetFilter,Search', 'viewtype': '1', 'periodcount': '1', 'periodwidth': '150', 'vieworientation': '1', 'viewdate': '', 'gradient': 'False', 'shownostart': 'False', 'shownodue': 'False', 'showunplanned': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'hideinactivetasks': 'False', 'hidelatetasks': 'False', 'hideactivetasks': 'False', 'hideduesoontasks': 'False', 'hideoverduetasks': 'False', 'hidecompletedtasks': 'False', 'hidecompositetasks': 'False', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'sortbystatusfirst': 'True', 'highlightcolor': '', 'shownow': 'True' }, 'categoryviewer': { 'title': '', 'toolbarperspective': 'CategoryNew,NewSubItem,Separator,Edit,Delete,Spacer,ResetFilter,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "[]", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'attachments': 28, 'notes': 28, 'ordering': 28}", 'columnautoresizing': 'True' }, 'categoryviewerintaskeditor': { 'title': '', 'toolbarperspective': 'CategoryNew,NewSubItem,Separator,Edit,Delete,Spacer,ResetFilter,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "[]", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'attachments': 28, 'notes': 28, 'ordering': 28}", 'columnautoresizing': 'True' }, 'categoryviewerinnoteeditor': { 'title': '', 'toolbarperspective': 'CategoryNew,NewSubItem,Separator,Edit,Delete,Spacer,ResetFilter,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "[]", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'attachments': 28, 'notes': 28, 'ordering': 28}", 'columnautoresizing': 'True' }, 'noteviewer': { 'title': '', 'toolbarperspective': 'NoteNew,NewSubItem,Separator,Edit,Delete,Spacer,ResetFilter,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "['attachments', 'description', 'creationDateTime', \ 'modificationDateTime']", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'attachments': 28, 'description': 200, 'ordering': 28}", 'columnautoresizing': 'True' }, 'noteviewerintaskeditor': { 'toolbarperspective': 'NoteNew,NewSubItem,Separator,Edit,Delete,Spacer,ResetFilter,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'columns': "['attachments', 'description', 'creationDateTime', \ 'modificationDateTime']", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'attachments': 28, 'description': 200, 'ordering': 28}", 'columnautoresizing': 'True', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', }, 'noteviewerincategoryeditor': { 'toolbarperspective': 'NoteNew,NewSubItem,Separator,Edit,Delete,Spacer,ResetFilter,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'columns': "['subject']", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'ordering': 28}", 'columnautoresizing': 'True', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', }, 'noteviewerinattachmenteditor': { 'toolbarperspective': 'NoteNew,NewSubItem,Separator,Edit,Delete,Spacer,ResetFilter,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'columns': "['subject']", 'columnsalwaysvisible': "['subject']", 'columnwidths': "{'ordering': 28}", 'columnautoresizing': 'True', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', }, 'effortviewer': { 'title': '', 'toolbarperspective': 'EffortNew,Separator,Edit,Delete,Separator,EffortStartForEffort,EffortStop,Separator,EffortViewerAggregationChoice,Spacer,ResetFilter,Search', 'aggregation': 'details', # 'details' (default), 'day', 'week', or 'month' 'sortby': '["-period"]', 'sortcasesensitive': 'False', 'columns': "['description', 'timeSpent']", 'columnsalwaysvisible': "['period', 'task']", 'columnwidths': "{'period': 160, 'monday': 70, 'tuesday': 70, " "'wednesday': 70, 'thursday': 70, 'friday': 70, " "'saturday': 70, 'sunday': 70, 'description': 200}", 'columnautoresizing': 'True', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'round': '0', # round effort to this number of seconds, 0 = no rounding 'alwaysroundup': 'False', }, 'effortviewerforselectedtasks': { 'title': '', 'toolbarperspective': 'EffortNew,Separator,Edit,Delete,Separator,EffortStartForEffort,EffortStop,Separator,EffortViewerAggregationChoice,Spacer,ResetFilter,Search', 'aggregation': 'details', # 'details' (default), 'day', 'week', or 'month' 'sortby': '["-period"]', 'sortcasesensitive': 'False', 'columns': "['description', 'timeSpent']", 'columnsalwaysvisible': "['period', 'task']", 'columnwidths': "{'period': 160, 'monday': 70, 'tuesday': 70, " "'wednesday': 70, 'thursday': 70, 'friday': 70, " "'saturday': 70, 'sunday': 70, 'description': 200}", 'columnautoresizing': 'True', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'round': '0', # round effort to this number of seconds, 0 = no rounding 'alwaysroundup': 'False', }, 'effortviewerintaskeditor': { 'toolbarperspective': 'EffortNew,Separator,Edit,Delete,Separator,EffortStartForEffort,EffortStop,Separator,EffortViewerAggregationChoice,Spacer,ResetFilter,Search', 'aggregation': 'details', # 'details' (default), 'day', 'week', or 'month' 'sortby': '["-period"]', 'sortcasesensitive': 'False', 'columns': "['description', 'timeSpent']", 'columnsalwaysvisible': "['period', 'task']", 'columnwidths': "{'period': 160, 'monday': 70, 'tuesday': 70, " "'wednesday': 70, 'thursday': 70, 'friday': 70, " "'saturday': 70, 'sunday': 70, 'description': 200}", 'columnautoresizing': 'True', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'round': '0', # round effort to this number of seconds, 0 = no rounding 'alwaysroundup': 'False', }, 'attachmentviewer': { 'title': '', 'toolbarperspective': 'AttachmentNew,Separator,Edit,Delete,Separator,AttachmentOpen,Spacer,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "[]", 'columnsalwaysvisible': "['type', 'subject']", 'columnwidths': "{'notes': 28, 'type': 28}", 'columnautoresizing': 'True' }, 'attachmentviewerintaskeditor': { 'title': '', 'toolbarperspective': 'AttachmentNew,Separator,Edit,Delete,Separator,AttachmentOpen,Spacer,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "[]", 'columnsalwaysvisible': "['type', 'subject']", 'columnwidths': "{'notes': 28, 'type': 28}", 'columnautoresizing': 'True' }, 'attachmentviewerinnoteeditor': { 'title': '', 'toolbarperspective': 'AttachmentNew,Separator,Edit,Delete,Separator,AttachmentOpen,Spacer,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "[]", 'columnsalwaysvisible': "['type', 'subject']", 'columnwidths': "{'notes': 28, 'type': 28}", 'columnautoresizing': 'True' }, 'attachmentviewerincategoryeditor': { 'title': '', 'toolbarperspective': 'AttachmentNew,Separator,Edit,Delete,Separator,AttachmentOpen,Spacer,Search', 'sortby': '["subject"]', 'sortcasesensitive': 'False', 'searchfilterstring': '', 'searchfiltermatchcase': 'False', 'searchfilterincludesubitems': 'False', 'searchdescription': 'False', 'regularexpression': 'False', 'columns': "[]", 'columnsalwaysvisible': "['type', 'subject']", 'columnwidths': "{'notes': 28, 'type': 28}", 'columnautoresizing': 'True' }, 'window': { 'size': '(900, 500)', # Default size of the main window 'position': '(-1, -1)', # Position of the main window, undefined by default 'iconized': 'False', # Don't start up iconized by default 'maximized': 'False', # Don't start up maximized by default # Possible strticonized values: 'Never', 'Always', 'WhenClosedIconized' 'starticonized': 'WhenClosedIconized', 'splash': 'True', # Show a splash screen while starting up 'hidewheniconized': 'False', # Don't hide the window from the task bar 'hidewhenclosed': 'False', # Close window quits the application 'tips': 'True', # Show tips after starting up 'tipsindex': '0', # Start at the first tip 'blinktaskbariconwhentrackingeffort': 'True' }, 'effortdialog': { 'size': '(-1, -1)', # Size of the dialogs, calculated by default 'position': '(-1, -1)', # Position of the dialog, undefined by default 'maximized': 'False' # Don't open the dialog maximized by default }, 'file': { 'recentfiles': '[]', 'maxrecentfiles': '9', 'lastfile': '', 'autosave': 'True', 'autoload': 'False', # Formats to automatically import from, only "Todo.txt" supported at this # time: 'autoimport': '[]', # Formats to automatically export to, only "Todo.txt" supported at this # time: 'autoexport': '[]', 'nopoll': 'False', 'saveinifileinprogramdir': 'False', 'attachmentbase': '', 'lastattachmentpath': '', 'inifileloaded': 'True', 'inifileloaderror': '' }, 'fgcolor': { 'activetasks': '(0, 0, 0, 255)', 'latetasks': '(160, 32, 240, 255)', 'completedtasks': '(0, 255, 0, 255)', 'overduetasks': '(255, 0, 0, 255)', 'inactivetasks': '(192, 192, 192, 255)', 'duesoontasks': '(255, 128, 0, 255)' }, 'bgcolor': { 'activetasks': '(255, 255, 255, 255)', 'latetasks': '(255, 255, 255, 255)', 'completedtasks': '(255, 255, 255, 255)', 'overduetasks': '(255, 255, 255, 255)', 'inactivetasks': '(255, 255, 255, 255)', 'duesoontasks': '(255, 255, 255, 255)' }, 'font': { 'activetasks': '', 'latetasks': '', 'completedtasks': '', 'overduetasks': '', 'inactivetasks': '', 'duesoontasks': '' }, 'icon': { 'activetasks': 'led_blue_icon', 'latetasks': 'led_purple_icon', 'completedtasks': 'checkmark_green_icon', 'overduetasks': 'led_red_icon', 'inactivetasks': 'led_grey_icon', 'duesoontasks': 'led_orange_icon' }, 'editor': { 'descriptionfont': '', # Font to use in the desciption field of editors 'maccheckspelling': 'True' }, 'os_darwin': { 'getmailsubject': 'False' }, 'os_linux': { 'focustextentry': 'True' }, 'version': { 'python': '', # Filled in by the Settings class when saving the settings 'wxpython': '', # Idem 'pythonfrozen': '', # Idem 'current': meta.data.version, 'notified': meta.data.version, 'notify': 'True' }, 'behavior': { 'markparentcompletedwhenallchildrencompleted': 'False', 'duesoonhours': '24' # When a task is considered to be "due soon" }, 'feature': { 'syncml': 'False', 'iphone': 'False', 'notifier': 'Task Coach', 'minidletime': '0', 'usesm2': 'False', 'showsmwarning': 'True', 'sayreminder': 'False', 'sdtcspans': '60,120,1440,2880', 'sdtcspans_effort': '60,120,180,240', 'decimaltime' : 'False' }, 'syncml': { 'url': '', 'username': '', 'preferredsyncmode': 'TWO_WAY', 'verbose': 'True', 'taskdbname': 'task', 'notedbname': 'note', 'synctasks': 'True', 'syncnotes': 'True', 'showwarning': 'True' }, 'iphone': { 'password': '', 'service': '', 'synccompleted': 'True', 'showlog': 'False' }, 'printer': { 'margin_left': '0', 'margin_top': '0', 'margin_bottom': '0', 'margin_right': '0', 'paper_id': '0', 'orientation': str(wx.PORTRAIT) }, 'export': { 'html_selectiononly': 'False', 'html_separatecss': 'False', 'csv_selectiononly': 'False', 'csv_separatedateandtimecolumns': 'False', 'ical_selectiononly': 'False', 'todotxt_selectiononly': 'False' } } minimum = { 'view': { 'taskviewercount': '1' } } taskcoach-1.4.3/taskcoachlib/config/options.py000077500000000000000000000054641265347643000214460ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import optparse from taskcoachlib import meta class OptionParser(optparse.OptionParser, object): def __init__(self, *args, **kwargs): super(OptionParser, self).__init__(*args, **kwargs) self.__addOptionGroups() self.__addOptions() def __addOptionGroups(self): self.__getAndAddOptions('OptionGroup', self.add_option_group) def __addOptions(self): self.__getAndAddOptions('Option', self.add_option) def __getAndAddOptions(self, suffix, addOption): for getOption in self.__methodsEndingWith(suffix): addOption(getOption(self)) def __methodsEndingWith(self, suffix): return [method for name, method in vars(self.__class__).items() if name.endswith(suffix)] class OptionGroup(optparse.OptionGroup, object): pass class ApplicationOptionParser(OptionParser): def __init__(self, *args, **kwargs): kwargs['usage'] = 'usage: %prog [options] [.tsk file]' kwargs['version'] = '%s %s'%(meta.data.name, meta.data.version) super(ApplicationOptionParser, self).__init__(*args, **kwargs) def profileOption(self): return optparse.Option('--profile', default=False, action='store_true', help=optparse.SUPPRESS_HELP) def profile_skipstartOption(self): return optparse.Option('-s', '--skipstart', default=False, action='store_true', help=optparse.SUPPRESS_HELP) def iniOption(self): return optparse.Option('-i', '--ini', dest='inifile', help='use the specified INIFILE for storing settings') def languageOption(self): return optparse.Option('-l', '--language', dest='language', type='choice', choices=sorted([lang for (lang, enabled) in \ meta.data.languages.values() if lang is not None] + ['en']), help='use the specified LANGUAGE for the GUI (e.g. "nl" or "fr"') def poOption(self): return optparse.Option('-p', '--po', dest='pofile', help='use the specified POFILE for translation of the GUI') taskcoach-1.4.3/taskcoachlib/config/settings.py000066400000000000000000000522531265347643000216060ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta, patterns, operating_system from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.workarounds import ExceptionAsUnicode import ConfigParser import os import sys import wx import shutil import defaults class UnicodeAwareConfigParser(ConfigParser.RawConfigParser): def set(self, section, setting, value): # pylint: disable=W0222 if type(value) == type(u''): value = value.encode('utf-8') ConfigParser.RawConfigParser.set(self, section, setting, value) def get(self, section, setting): # pylint: disable=W0221 value = ConfigParser.RawConfigParser.get(self, section, setting) return value.decode('utf-8') # pylint: disable=E1103 class CachingConfigParser(UnicodeAwareConfigParser): ''' ConfigParser is rather slow, so cache its values. ''' def __init__(self, *args, **kwargs): self.__cachedValues = dict() UnicodeAwareConfigParser.__init__(self, *args, **kwargs) def read(self, *args, **kwargs): self.__cachedValues = dict() return UnicodeAwareConfigParser.read(self, *args, **kwargs) def set(self, section, setting, value): self.__cachedValues[(section, setting)] = value UnicodeAwareConfigParser.set(self, section, setting, value) def get(self, section, setting): cache, key = self.__cachedValues, (section, setting) if key not in cache: cache[key] = UnicodeAwareConfigParser.get(self, *key) # pylint: disable=W0142 return cache[key] class Settings(object, CachingConfigParser): def __init__(self, load=True, iniFile=None, *args, **kwargs): # Sigh, ConfigParser.SafeConfigParser is an old-style class, so we # have to call the superclass __init__ explicitly: CachingConfigParser.__init__(self, *args, **kwargs) self.initializeWithDefaults() self.__loadAndSave = load self.__iniFileSpecifiedOnCommandLine = iniFile self.migrateConfigurationFiles() if load: # First, try to load the settings file from the program directory, # if that fails, load the settings file from the settings directory try: if not self.read(self.filename(forceProgramDir=True)): self.read(self.filename()) errorMessage = '' except ConfigParser.ParsingError, errorMessage: # Ignore exceptions and simply use default values. # Also record the failure in the settings: self.initializeWithDefaults() self.setLoadStatus(ExceptionAsUnicode(errorMessage)) else: # Assume that if the settings are not to be loaded, we also # should be quiet (i.e. we are probably in test mode): self.__beQuiet() pub.subscribe(self.onSettingsFileLocationChanged, 'settings.file.saveinifileinprogramdir') def onSettingsFileLocationChanged(self, value): saveIniFileInProgramDir = value if not saveIniFileInProgramDir: try: os.remove(self.generatedIniFilename(forceProgramDir=True)) except: return # pylint: disable=W0702 def initializeWithDefaults(self): for section in self.sections(): self.remove_section(section) for section, settings in defaults.defaults.items(): self.add_section(section) for key, value in settings.items(): # Don't notify observers while we are initializing super(Settings, self).set(section, key, value) def setLoadStatus(self, message): self.set('file', 'inifileloaded', 'False' if message else 'True') self.set('file', 'inifileloaderror', message) def __beQuiet(self): noisySettings = [('window', 'splash', 'False'), ('window', 'tips', 'False'), ('window', 'starticonized', 'Always')] for section, setting, value in noisySettings: self.set(section, setting, value) def add_section(self, section, copyFromSection=None): # pylint: disable=W0221 result = super(Settings, self).add_section(section) if copyFromSection: for name, value in self.items(copyFromSection): super(Settings, self).set(section, name, value) return result def getRawValue(self, section, option): return super(Settings, self).get(section, option) def init(self, section, option, value): return super(Settings, self).set(section, option, value) def get(self, section, option): try: result = super(Settings, self).get(section, option) except (ConfigParser.NoOptionError, ConfigParser.NoSectionError): return self.getDefault(section, option) result = self._fixValuesFromOldIniFiles(section, option, result) result = self._ensureMinimum(section, option, result) return result def getDefault(self, section, option): defaultSectionKey = section.strip('0123456789') try: defaultSection = defaults.defaults[defaultSectionKey] except KeyError: raise ConfigParser.NoSectionError, defaultSectionKey try: return defaultSection[option] except KeyError: raise ConfigParser.NoOptionError, (option, defaultSection) def _ensureMinimum(self, section, option, result): # Some settings may have a minimum value, make sure we return at # least that minimum value: if section in defaults.minimum and option in defaults.minimum[section]: result = max(result, defaults.minimum[section][option]) return result def _fixValuesFromOldIniFiles(self, section, option, result): ''' Try to fix settings from old TaskCoach.ini files that are no longer valid. ''' original = result # Starting with release 1.1.0, the date properties of tasks (startDate, # dueDate and completionDate) are datetimes: taskDateColumns = ('startDate', 'dueDate', 'completionDate') orderingViewers = ['taskviewer', 'categoryviewer', 'noteviewer', 'noteviewerintaskeditor', 'noteviewerincategoryeditor', 'noteviewerinattachmenteditor', 'categoryviewerintaskeditor', 'categoryviewerinnoteeditor'] if option == 'sortby': if result in taskDateColumns: result += 'Time' try: eval(result) except: sortKeys = [result] try: ascending = self.getboolean(section, 'sortascending') except: ascending = True result = '["%s%s"]' % (('' if ascending else '-'), result) elif option == 'columns': columns = [(col + 'Time' if col in taskDateColumns else col) for col in eval(result)] result = str(columns) elif option == 'columnwidths': widths = dict() try: columnWidthMap = eval(result) except SyntaxError: columnWidthMap = dict() for column, width in columnWidthMap.items(): if column in taskDateColumns: column += 'Time' widths[column] = width if section in orderingViewers and 'ordering' not in widths: widths['ordering'] = 28 result = str(widths) elif section == 'feature' and option == 'notifier' and result == 'Native': result = 'Task Coach' elif section == 'editor' and option == 'preferencespages': result = result.replace('colors', 'appearance') elif section in orderingViewers and option == 'columnsalwaysvisible': # XXX: remove 'ordering' from always visible columns. This wasn't in any official release # but I need it so that people can test without resetting their .ini file... # Remove this after the 1.3.38 release. try: columns = eval(result) except SyntaxError: columns = ['ordering'] else: if 'ordering' in columns: columns.remove('ordering') result = str(columns) if result != original: super(Settings, self).set(section, option, result) return result def set(self, section, option, value, new=False): # pylint: disable=W0221 if new: currentValue = 'a new option, so use something as current value'\ ' that is unlikely to be equal to the new value' else: currentValue = self.get(section, option) if value != currentValue: super(Settings, self).set(section, option, value) patterns.Event('%s.%s' % (section, option), self, value).send() return True else: return False def setboolean(self, section, option, value): if self.set(section, option, str(value)): pub.sendMessage('settings.%s.%s' % (section, option), value=value) setvalue = settuple = setlist = setdict = setint = setboolean def settext(self, section, option, value): if self.set(section, option, value): pub.sendMessage('settings.%s.%s' % (section, option), value=value) def getlist(self, section, option): return self.getEvaluatedValue(section, option, eval) getvalue = gettuple = getdict = getlist def getint(self, section, option): return self.getEvaluatedValue(section, option, int) def getboolean(self, section, option): return self.getEvaluatedValue(section, option, self.evalBoolean) def gettext(self, section, option): return self.get(section, option) @staticmethod def evalBoolean(stringValue): if stringValue in ('True', 'False'): return 'True' == stringValue else: raise ValueError("invalid literal for Boolean value: '%s'" % stringValue) def getEvaluatedValue(self, section, option, evaluate=eval, showerror=wx.MessageBox): stringValue = self.get(section, option) try: return evaluate(stringValue) except Exception, exceptionMessage: # pylint: disable=W0703 message = '\n'.join([ \ _('Error while reading the %s-%s setting from %s.ini.') % (section, option, meta.filename), _('The value is: %s') % stringValue, _('The error is: %s') % exceptionMessage, _('%s will use the default value for the setting and should proceed normally.') % meta.name]) showerror(message, caption=_('Settings error'), style=wx.ICON_ERROR) defaultValue = self.getDefault(section, option) self.set(section, option, defaultValue, new=True) # Ignore current value return evaluate(defaultValue) def save(self, showerror=wx.MessageBox, file=file): # pylint: disable=W0622 self.set('version', 'python', sys.version) self.set('version', 'wxpython', '%s-%s @ %s' % (wx.VERSION_STRING, wx.PlatformInfo[2], wx.PlatformInfo[1])) self.set('version', 'pythonfrozen', str(hasattr(sys, 'frozen'))) self.set('version', 'current', meta.data.version) if not self.__loadAndSave: return try: path = self.path() if not os.path.exists(path): os.mkdir(path) tmpFile = file(self.filename() + '.tmp', 'w') self.write(tmpFile) tmpFile.close() if os.path.exists(self.filename()): os.remove(self.filename()) os.rename(self.filename() + '.tmp', self.filename()) except Exception, message: # pylint: disable=W0703 showerror(_('Error while saving %s.ini:\n%s\n') % \ (meta.filename, message), caption=_('Save error'), style=wx.ICON_ERROR) def filename(self, forceProgramDir=False): if self.__iniFileSpecifiedOnCommandLine: return self.__iniFileSpecifiedOnCommandLine else: return self.generatedIniFilename(forceProgramDir) def path(self, forceProgramDir=False, environ=os.environ): # pylint: disable=W0102 if self.__iniFileSpecifiedOnCommandLine: return self.pathToIniFileSpecifiedOnCommandLine() elif forceProgramDir or self.getboolean('file', 'saveinifileinprogramdir'): return self.pathToProgramDir() else: return self.pathToConfigDir(environ) @staticmethod def pathToDocumentsDir(): if operating_system.isWindows(): from win32com.shell import shell, shellcon try: return shell.SHGetSpecialFolderPath(None, shellcon.CSIDL_PERSONAL) except: # Yes, one of the documented ways to get this sometimes fail with "Unspecified error". Not sure # this will work either. # Update: There are cases when it doesn't work either; see support request #410... try: return shell.SHGetFolderPath(None, shellcon.CSIDL_PERSONAL, None, 0) # SHGFP_TYPE_CURRENT not in shellcon except: return os.getcwd() # Fuck this elif operating_system.isMac(): import Carbon.Folder, Carbon.Folders, Carbon.File pathRef = Carbon.Folder.FSFindFolder(Carbon.Folders.kUserDomain, Carbon.Folders.kDocumentsFolderType, True) return Carbon.File.pathname(pathRef) elif operating_system.isGTK(): try: from PyKDE4.kdeui import KGlobalSettings except ImportError: pass else: return unicode(KGlobalSettings.documentPath()) # Assuming Unix-like return os.path.expanduser('~') def pathToProgramDir(self): path = sys.argv[0] if not os.path.isdir(path): path = os.path.dirname(path) return path def pathToConfigDir(self, environ): try: if operating_system.isGTK(): from taskcoachlib.thirdparty.xdg import BaseDirectory path = BaseDirectory.save_config_path(meta.name) elif operating_system.isMac(): import Carbon.Folder, Carbon.Folders, Carbon.File pathRef = Carbon.Folder.FSFindFolder(Carbon.Folders.kUserDomain, Carbon.Folders.kPreferencesFolderType, True) path = Carbon.File.pathname(pathRef) # XXXFIXME: should we release pathRef ? Doesn't seem so since I get a SIGSEGV if I try. elif operating_system.isWindows(): from win32com.shell import shell, shellcon path = os.path.join(shell.SHGetSpecialFolderPath(None, shellcon.CSIDL_APPDATA, True), meta.name) else: path = self.pathToConfigDir_deprecated(environ=environ) except: # Fallback to old dir path = self.pathToConfigDir_deprecated(environ=environ) return path def _pathToDataDir(self, *args, **kwargs): forceGlobal = kwargs.pop('forceGlobal', False) if operating_system.isGTK(): from taskcoachlib.thirdparty.xdg import BaseDirectory path = BaseDirectory.save_data_path(meta.name) elif operating_system.isMac(): import Carbon.Folder, Carbon.Folders, Carbon.File pathRef = Carbon.Folder.FSFindFolder(Carbon.Folders.kUserDomain, Carbon.Folders.kApplicationSupportFolderType, True) path = Carbon.File.pathname(pathRef) # XXXFIXME: should we release pathRef ? Doesn't seem so since I get a SIGSEGV if I try. path = os.path.join(path, meta.name) elif operating_system.isWindows(): if self.__iniFileSpecifiedOnCommandLine and not forceGlobal: path = self.pathToIniFileSpecifiedOnCommandLine() else: from win32com.shell import shell, shellcon path = os.path.join(shell.SHGetSpecialFolderPath(None, shellcon.CSIDL_APPDATA, True), meta.name) else: # Errr... path = self.path() if operating_system.isWindows(): # Follow shortcuts. from win32com.client import Dispatch shell = Dispatch('WScript.Shell') for component in args: path = os.path.join(path, component) if os.path.exists(path + '.lnk'): shortcut = shell.CreateShortcut(path + '.lnk') path = shortcut.TargetPath else: path = os.path.join(path, *args) exists = os.path.exists(path) if not exists: os.makedirs(path) return path, exists def pathToDataDir(self, *args, **kwargs): return self._pathToDataDir(*args, **kwargs)[0] def _pathToTemplatesDir(self): try: return self._pathToDataDir('templates') except: pass # Fallback on old path return self.pathToTemplatesDir_deprecated(), True def pathToTemplatesDir(self): return self._pathToTemplatesDir()[0] def pathToBackupsDir(self): return self._pathToDataDir('backups')[0] def pathToConfigDir_deprecated(self, environ): try: path = os.path.join(environ['APPDATA'], meta.filename) except Exception: path = os.path.expanduser("~") # pylint: disable=W0702 if path == "~": # path not expanded: apparently, there is no home dir path = os.getcwd() path = os.path.join(path, '.%s' % meta.filename) return operating_system.decodeSystemString(path) def pathToTemplatesDir_deprecated(self, doCreate=True): path = os.path.join(self.path(), 'taskcoach-templates') if operating_system.isWindows(): # Under Windows, check for a shortcut and follow it if it # exists. if os.path.exists(path + '.lnk'): from win32com.client import Dispatch # pylint: disable=F0401 shell = Dispatch('WScript.Shell') shortcut = shell.CreateShortcut(path + '.lnk') return shortcut.TargetPath if doCreate: try: os.makedirs(path) except OSError: pass return operating_system.decodeSystemString(path) def pathToIniFileSpecifiedOnCommandLine(self): return os.path.dirname(self.__iniFileSpecifiedOnCommandLine) or '.' def generatedIniFilename(self, forceProgramDir): return os.path.join(self.path(forceProgramDir), '%s.ini' % meta.filename) def migrateConfigurationFiles(self): # Templates. Extra care for Windows shortcut. oldPath = self.pathToTemplatesDir_deprecated(doCreate=False) newPath, exists = self._pathToTemplatesDir() if self.__iniFileSpecifiedOnCommandLine: globalPath = os.path.join(self.pathToDataDir(forceGlobal=True), 'templates') if os.path.exists(globalPath) and not os.path.exists(oldPath): # Upgrade from fresh installation of 1.3.24 Portable oldPath = globalPath if exists and not os.path.exists(newPath + '-old'): # WTF? os.rename(newPath, newPath + '-old') exists = False if exists: return if oldPath != newPath: if operating_system.isWindows() and os.path.exists(oldPath + '.lnk'): shutil.move(oldPath + '.lnk', newPath + '.lnk') elif os.path.exists(oldPath): # pathToTemplatesDir() has created the directory try: os.rmdir(newPath) except: pass shutil.move(oldPath, newPath) # Ini file oldPath = os.path.join(self.pathToConfigDir_deprecated(environ=os.environ), '%s.ini' % meta.filename) newPath = os.path.join(self.pathToConfigDir(environ=os.environ), '%s.ini' % meta.filename) if newPath != oldPath and os.path.exists(oldPath): shutil.move(oldPath, newPath) # Cleanup try: os.rmdir(self.pathToConfigDir_deprecated(environ=os.environ)) except: pass taskcoach-1.4.3/taskcoachlib/domain/000077500000000000000000000000001265347643000173675ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/__init__.py000066400000000000000000000014771265347643000215110ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # This is the domain package. It contains classes for domain objects, # such as tasks, effort, etc. taskcoach-1.4.3/taskcoachlib/domain/attachment/000077500000000000000000000000001265347643000215175ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/attachment/__init__.py000066400000000000000000000015561265347643000236370ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from attachment import * from attachmentowner import AttachmentOwner from attachmentlist import AttachmentList from sorter import AttachmentSorter taskcoach-1.4.3/taskcoachlib/domain/attachment/attachment.py000066400000000000000000000154111265347643000242230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import urlparse from taskcoachlib import patterns, mailer from taskcoachlib.domain import base from taskcoachlib.tools import openfile from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.domain.note.noteowner import NoteOwner def getRelativePath(path, basePath=os.getcwd()): """Tries to guess the relative version of 'path' from 'basePath'. If not possible, return absolute 'path'. Both 'path' and 'basePath' must be absolute.""" path = os.path.realpath(os.path.normpath(path)) basePath = os.path.realpath(os.path.normpath(basePath)) drive1, path1 = os.path.splitdrive(path) drive2, path2 = os.path.splitdrive(basePath) # No relative path is possible if the two are on different drives. if drive1 != drive2: return path if path1.startswith(path2): if path1 == path2: return '' if path2 == os.path.sep: return path1[1:].replace('\\', '/') return path1[len(path2) + 1:].replace('\\', '/') path1 = path1.split(os.path.sep) path2 = path2.split(os.path.sep) while path1 and path2 and path1[0] == path2[0]: path1.pop(0) path2.pop(0) while path2: path1.insert(0, '..') path2.pop(0) return os.path.join(*path1).replace('\\', '/') # pylint: disable=W0142 class Attachment(base.Object, NoteOwner): ''' Abstract base class for attachments. ''' type_ = 'unknown' def __init__(self, location, *args, **kwargs): if 'subject' not in kwargs: kwargs['subject'] = location super(Attachment, self).__init__(*args, **kwargs) self.__location = location def data(self): return None def setParent(self, parent): # FIXME: We shouldn't assume that pasted items are composite # in PasteCommand. pass def location(self): return self.__location def setLocation(self, location): if location != self.__location: self.__location = location self.markDirty() pub.sendMessage(self.locationChangedEventType(), newValue=location, sender=self) @classmethod def locationChangedEventType(class_): return 'pubsub.attachment.location' @classmethod def monitoredAttributes(class_): return base.Object.monitoredAttributes() + ['location'] def open(self, workingDir=None): raise NotImplementedError def __cmp__(self, other): try: return cmp(self.location(), other.location()) except AttributeError: return 1 def __getstate__(self): try: state = super(Attachment, self).__getstate__() except AttributeError: state = dict() state.update(dict(location=self.location())) return state @patterns.eventSource def __setstate__(self, state, event=None): try: super(Attachment, self).__setstate__(state, event=event) except AttributeError: pass self.setLocation(state['location']) def __getcopystate__(self): return self.__getstate__() def __unicode__(self): return self.subject() @classmethod def modificationEventTypes(class_): eventTypes = super(Attachment, class_).modificationEventTypes() return eventTypes + [class_.locationChangedEventType()] class FileAttachment(Attachment): type_ = 'file' def open(self, workingDir=None, openAttachment=openfile.openFile): # pylint: disable=W0221 return openAttachment(self.normalizedLocation(workingDir)) def normalizedLocation(self, workingDir=None): location = self.location() if self.isLocalFile(): if workingDir and not os.path.isabs(location): location = os.path.join(workingDir, location) location = os.path.normpath(location) return location def isLocalFile(self): return urlparse.urlparse(self.location())[0] == '' class URIAttachment(Attachment): type_ = 'uri' def __init__(self, location, *args, **kwargs): if location.startswith('message:') and 'subject' not in kwargs: if self.settings.getboolean('os_darwin', 'getmailsubject'): subject = mailer.getSubjectOfMail(location[8:]) if subject: kwargs['subject'] = subject else: kwargs['subject'] = _('Mail.app message') super(URIAttachment, self).__init__(location, *args, **kwargs) def open(self, workingDir=None): return openfile.openFile(self.location()) class MailAttachment(Attachment): type_ = 'mail' def __init__(self, location, *args, **kwargs): self._readMail = kwargs.pop('readMail', mailer.readMail) subject, content = self._readMail(location) kwargs.setdefault('subject', subject) kwargs.setdefault('description', content) super(MailAttachment, self).__init__(location, *args, **kwargs) def open(self, workingDir=None): return mailer.openMail(self.location()) def read(self): return self._readMail(self.location()) def data(self): try: return file(self.location(), 'rb').read() except IOError: return None def AttachmentFactory(location, type_=None, *args, **kwargs): if type_ is None: if location.startswith('URI:'): return URIAttachment(location[4:], subject=location[4:], description=location[4:]) elif location.startswith('FILE:'): return FileAttachment(location[5:], subject=location[5:], description=location[5:]) elif location.startswith('MAIL:'): return MailAttachment(location[5:], subject=location[5:], description=location[5:]) return FileAttachment(location, subject=location, description=location) try: return {'file': FileAttachment, 'uri': URIAttachment, 'mail': MailAttachment}[type_](location, *args, **kwargs) except KeyError: raise TypeError('Unknown attachment type: %s' % type_) taskcoach-1.4.3/taskcoachlib/domain/attachment/attachmentlist.py000066400000000000000000000020331265347643000251130ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.patterns import ObservableList from taskcoachlib.i18n import _ class AttachmentList(ObservableList): newItemMenuText = _('New attachment...') newItemHelpText = _('Insert a new attachment') openItemMenuText = _('Open attachment') openItemHelpText = _('Open the selected attachments') taskcoach-1.4.3/taskcoachlib/domain/attachment/attachmentowner.py000066400000000000000000000017001265347643000252720ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base class AttachmentOwner(object): """Mixin class for other domain objects that may have attachments""" __metaclass__ = base.DomainObjectOwnerMetaclass __ownedType__ = 'Attachment' taskcoach-1.4.3/taskcoachlib/domain/attachment/sorter.py000066400000000000000000000016121265347643000234070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base import attachment class AttachmentSorter(base.Sorter): DomainObjectClass = attachment.Attachment EventTypePrefix = 'attachment' taskcoach-1.4.3/taskcoachlib/domain/attribute/000077500000000000000000000000001265347643000213725ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/attribute/__init__.py000066400000000000000000000013551265347643000235070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/taskcoachlib/domain/attribute/color/000077500000000000000000000000001265347643000225105ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/attribute/color/__init__.py000066400000000000000000000014151265347643000246220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from mixer import ColorMixer taskcoach-1.4.3/taskcoachlib/domain/attribute/color/mixer.py000066400000000000000000000025111265347643000242050ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' class ColorMixer(object): @staticmethod def mix(colors): colorSums, colorCount = [0, 0, 0, 0], 0 for color in colors: if color: try: color = color.Get(includeAlpha=True) except AttributeError: pass # color is already a tuple for colorIndex in range(len(color)): colorSums[colorIndex] += color[colorIndex] colorCount += 1 return tuple(colorSum/colorCount for colorSum in colorSums) if colorCount else None taskcoach-1.4.3/taskcoachlib/domain/attribute/font/000077500000000000000000000000001265347643000223405ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/attribute/font/__init__.py000066400000000000000000000014141265347643000244510ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from mixer import FontMixer taskcoach-1.4.3/taskcoachlib/domain/attribute/font/mixer.py000066400000000000000000000060461265347643000240440ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx class FontMixer(object): @classmethod def mix(class_, *fonts): fonts = [font for font in fonts if font] if not fonts: return None elif len(fonts) == 1: return fonts[0] pointSize = class_.mixFontSizes(*fonts) family = class_.mixFontFamilies(*fonts) weight = class_.mixFontWeights(*fonts) style = class_.mixFontStyles(*fonts) underlined = class_.mixFontUnderlining(*fonts) return wx.Font(pointSize, family, style, weight, underline=underlined) @staticmethod def mixFontSizes(*fonts): size = 0 for font in fonts: size += font.GetPointSize() return size/len(fonts) allFamilies = (wx.FONTFAMILY_SWISS, wx.FONTFAMILY_DECORATIVE, wx.FONTFAMILY_ROMAN, wx.FONTFAMILY_SCRIPT, wx.FONTFAMILY_MODERN, wx.FONTFAMILY_TELETYPE) @classmethod def mixFontFamilies(class_, *fonts): families = [font.GetFamily() for font in fonts] counts = dict() for family in class_.allFamilies: counts[family] = families.count(family) for family in class_.allFamilies: countsCopy = counts.copy() familyCount = countsCopy.pop(family) if familyCount > max(countsCopy.values()): return family return wx.FONTFAMILY_DEFAULT @staticmethod def mixFontWeights(*fonts): weights = [font.GetWeight() for font in fonts] countLight = weights.count(wx.FONTWEIGHT_LIGHT) countBold = weights.count(wx.FONTWEIGHT_BOLD) if countBold > countLight: return wx.FONTWEIGHT_BOLD if countLight > countBold: return wx.FONTWEIGHT_LIGHT return wx.FONTWEIGHT_NORMAL @staticmethod def mixFontStyles(*fonts): ''' If any of the fonts is italic, return italic else normal. We ignore slant style since a font created with the wx.FONTSTYLE_SLANT style returns wx.FONTSTYLE_ITALIC as its style. ''' anyItalic = wx.FONTSTYLE_ITALIC in [font.GetStyle() for font in fonts] return wx.FONTSTYLE_ITALIC if anyItalic else wx.FONTSTYLE_NORMAL @staticmethod def mixFontUnderlining(*fonts): return any(font.GetUnderlined() for font in fonts) taskcoach-1.4.3/taskcoachlib/domain/attribute/icon/000077500000000000000000000000001265347643000223225ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/attribute/icon/__init__.py000066400000000000000000000037431265347643000244420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' itemImagePlural = dict(book_icon='books_icon', cogwheel_icon='cogwheels_icon', envelope_icon='envelopes_icon', heart_icon='hearts_icon', key_icon='keys_icon', led_blue_icon='folder_blue_icon', led_blue_light_icon='folder_blue_light_icon', led_grey_icon='folder_grey_icon', led_green_icon='folder_green_icon', led_orange_icon='folder_orange_icon', led_purple_icon='folder_purple_icon', led_red_icon='folder_red_icon', led_yellow_icon='folder_yellow_icon', checkmark_green_icon='checkmark_green_icon_multiple', person_icon='persons_icon') itemImageOpen = dict() for _color in ['blue', 'grey', 'green', 'orange', 'purple', 'red', 'yellow']: itemImageOpen['folder_%s_icon' % _color] = 'folder_%s_open_icon' % _color def getImageOpen(name): return itemImageOpen.get(name, name) itemImageSingular = dict() for key, value in itemImagePlural.iteritems(): itemImageSingular[value] = key def getImagePlural(name): return itemImagePlural.get(name, name) taskcoach-1.4.3/taskcoachlib/domain/base/000077500000000000000000000000001265347643000203015ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/base/__init__.py000077500000000000000000000020111265347643000224070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from object import Object, CompositeObject, SynchronizedObject from attribute import Attribute, SetAttribute from collection import Collection from filter import Filter, SearchFilter, SelectedItemsFilter, DeletedFilter from sorter import Sorter, TreeSorter from owner import DomainObjectOwnerMetaclass taskcoach-1.4.3/taskcoachlib/domain/base/attribute.py000066400000000000000000000075121265347643000226630ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns import weakref from taskcoachlib.thirdparty._weakrefset import WeakSet class Attribute(object): __slots__ = ('__value', '__owner', '__setEvent') def __init__(self, value, owner, setEvent): super(Attribute, self).__init__() self.__value = value self.__owner = weakref.ref(owner) self.__setEvent = setEvent.im_func def get(self): return self.__value @patterns.eventSource def set(self, value, event=None): owner = self.__owner() if owner is not None: if value == self.__value: return False self.__value = value self.__setEvent(owner, event) return True class SetAttribute(object): __slots__ = ('__set', '__owner', '__addEvent', '__removeEvent', '__changeEvent', '__setClass') def __init__(self, values, owner, addEvent=None, removeEvent=None, changeEvent=None, weak=False): self.__setClass = WeakSet if weak else set self.__set = self.__setClass(values) if values else self.__setClass() self.__owner = weakref.ref(owner) self.__addEvent = (addEvent or self.__nullEvent).im_func self.__removeEvent = (removeEvent or self.__nullEvent).im_func self.__changeEvent = (changeEvent or self.__nullEvent).im_func def get(self): return set(self.__set) @patterns.eventSource def set(self, values, event=None): owner = self.__owner() if owner is not None: if values == set(self.__set): return False added = values - set(self.__set) removed = set(self.__set) - values self.__set = self.__setClass(values) if added: self.__addEvent(owner, event, *added) # pylint: disable=W0142 if removed: self.__removeEvent(owner, event, *removed) # pylint: disable=W0142 if added or removed: self.__changeEvent(owner, event, *set(self.__set)) return True @patterns.eventSource def add(self, values, event=None): owner = self.__owner() if owner is not None: if values <= set(self.__set): return False self.__set = self.__setClass(set(self.__set) | values) self.__addEvent(owner, event, *values) # pylint: disable=W0142 self.__changeEvent(owner, event, *set(self.__set)) return True @patterns.eventSource def remove(self, values, event=None): owner = self.__owner() if owner is not None: if values & set(self.__set) == set(): return False self.__set = self.__setClass(set(self.__set) - values) self.__removeEvent(owner, event, *values) # pylint: disable=W0142 self.__changeEvent(owner, event, *set(self.__set)) return True def __nullEvent(self, *args, **kwargs): pass taskcoach-1.4.3/taskcoachlib/domain/base/collection.py000066400000000000000000000020031265347643000230010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns class Collection(patterns.CompositeSet): def getObjectById(self, domainObjectId): for domainObject in self: if domainObjectId == domainObject.id(): return domainObject raise IndexError taskcoach-1.4.3/taskcoachlib/domain/base/filter.py000066400000000000000000000160351265347643000221450ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import re import sre_constants from taskcoachlib import patterns from taskcoachlib.domain.base import object as domainobject class Filter(patterns.SetDecorator): def __init__(self, *args, **kwargs): self.__treeMode = kwargs.pop('treeMode', False) super(Filter, self).__init__(*args, **kwargs) self.reset() def thaw(self): super(Filter, self).thaw() if not self.isFrozen(): self.reset() def setTreeMode(self, treeMode): self.__treeMode = treeMode try: self.observable().setTreeMode(treeMode) except AttributeError: pass self.reset() def treeMode(self): return self.__treeMode @patterns.eventSource def reset(self, event=None): if self.isFrozen(): return filteredItems = set(self.filterItems(self.observable())) if self.treeMode(): for item in filteredItems.copy(): filteredItems.update(set(item.ancestors())) self.removeItemsFromSelf([item for item in self if item not in filteredItems], event=event) self.extendSelf([item for item in filteredItems if item not in self], event=event) def filterItems(self, items): ''' filter returns the items that pass the filter. ''' raise NotImplementedError # pragma: no cover def rootItems(self): return [item for item in self if item.parent() is None] def onAddItem(self, event): self.reset() def onRemoveItem(self, event): self.reset() class SelectedItemsFilter(Filter): def __init__(self, *args, **kwargs): self.__selectedItems = set(kwargs.pop('selectedItems', [])) self.__includeSubItems = kwargs.pop('includeSubItems', True) super(SelectedItemsFilter, self).__init__(*args, **kwargs) @patterns.eventSource def removeItemsFromSelf(self, items, event=None): super(SelectedItemsFilter, self).removeItemsFromSelf(items, event) self.__selectedItems.difference_update(set(items)) if not self.__selectedItems: self.extendSelf(self.observable(), event) def filterItems(self, items): if self.__selectedItems: result = [item for item in items if self.itemOrAncestorInSelectedItems(item)] if self.__includeSubItems: for item in result[:]: result.extend(item.children(recursive=True)) return result else: return [item for item in items if item not in self] def itemOrAncestorInSelectedItems(self, item): if item in self.__selectedItems: return True elif item.parent(): return self.itemOrAncestorInSelectedItems(item.parent()) else: return False class SearchFilter(Filter): def __init__(self, *args, **kwargs): searchString = kwargs.pop('searchString', u'') matchCase = kwargs.pop('matchCase', False) includeSubItems = kwargs.pop('includeSubItems', False) searchDescription = kwargs.pop('searchDescription', False) regularExpression = kwargs.pop('regularExpression', False) self.setSearchFilter(searchString, matchCase=matchCase, includeSubItems=includeSubItems, searchDescription=searchDescription, regularExpression=regularExpression, doReset=False) super(SearchFilter, self).__init__(*args, **kwargs) def setSearchFilter(self, searchString, matchCase=False, includeSubItems=False, searchDescription=False, regularExpression=False, doReset=True): # pylint: disable=W0201 self.__includeSubItems = includeSubItems self.__searchDescription = searchDescription self.__regularExpression = regularExpression self.__searchPredicate = self.__compileSearchPredicate(searchString, matchCase, regularExpression) if doReset: self.reset() @staticmethod def __compileSearchPredicate(searchString, matchCase, regularExpression): if not searchString: return '' flag = 0 if matchCase else re.IGNORECASE | re.UNICODE if regularExpression: try: rx = re.compile(searchString, flag) except sre_constants.error: if matchCase: return lambda x: x.find(searchString) != -1 else: return lambda x: x.lower().find(searchString.lower()) != -1 else: return rx.search elif matchCase: return lambda x: x.find(searchString) != -1 else: return lambda x: x.lower().find(searchString.lower()) != -1 def filterItems(self, items): return [item for item in items if \ self.__searchPredicate(self.__itemText(item))] \ if self.__searchPredicate else items def __itemText(self, item): text = self.__itemOwnText(item) if self.__includeSubItems: parent = item.parent() while parent: text += self.__itemOwnText(parent) parent = parent.parent() if self.treeMode(): text += ' '.join([self.__itemOwnText(child) for child in \ item.children(recursive=True) if child in self.observable()]) return text def __itemOwnText(self, item): text = item.subject() if self.__searchDescription: text += item.description() return text class DeletedFilter(Filter): def __init__(self, *args, **kwargs): super(DeletedFilter, self).__init__(*args, **kwargs) for eventType in [domainobject.Object.markDeletedEventType(), domainobject.Object.markNotDeletedEventType()]: patterns.Publisher().registerObserver(self.onObjectMarkedDeletedOrNot, eventType=eventType) def detach(self): patterns.Publisher().removeObserver(self.onObjectMarkedDeletedOrNot) super(DeletedFilter, self).detach() def onObjectMarkedDeletedOrNot(self, event): # pylint: disable=W0613 self.reset() def filterItems(self, items): return [item for item in items if not item.isDeleted()] taskcoach-1.4.3/taskcoachlib/domain/base/object.py000066400000000000000000000511641265347643000221300ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain.attribute import icon from taskcoachlib.domain.date import DateTime, Now from taskcoachlib.thirdparty.pubsub import pub import attribute import functools import uuid import re class SynchronizedObject(object): STATUS_NONE = 0 STATUS_NEW = 1 STATUS_CHANGED = 2 STATUS_DELETED = 3 def __init__(self, *args, **kwargs): self.__status = kwargs.pop('status', self.STATUS_NEW) super(SynchronizedObject, self).__init__(*args, **kwargs) @classmethod def markDeletedEventType(class_): return 'object.markdeleted' @classmethod def markNotDeletedEventType(class_): return 'object.marknotdeleted' def __getstate__(self): try: state = super(SynchronizedObject, self).__getstate__() except AttributeError: state = dict() state['status'] = self.__status return state @patterns.eventSource def __setstate__(self, state, event=None): try: super(SynchronizedObject, self).__setstate__(state, event=event) except AttributeError: pass if state['status'] != self.__status: if state['status'] == self.STATUS_CHANGED: self.markDirty(event=event) elif state['status'] == self.STATUS_DELETED: self.markDeleted(event=event) elif state['status'] == self.STATUS_NEW: self.markNew(event=event) elif state['status'] == self.STATUS_NONE: self.cleanDirty(event=event) def getStatus(self): return self.__status @patterns.eventSource def markDirty(self, force=False, event=None): if not self.setStatusDirty(force): return event.addSource(self, self.__status, type=self.markNotDeletedEventType()) def setStatusDirty(self, force=False): oldStatus = self.__status if self.__status == self.STATUS_NONE or force: self.__status = self.STATUS_CHANGED return oldStatus == self.STATUS_DELETED else: return False @patterns.eventSource def markNew(self, event=None): if not self.setStatusNew(): return event.addSource(self, self.__status, type=self.markNotDeletedEventType()) def setStatusNew(self): oldStatus = self.__status self.__status = self.STATUS_NEW return oldStatus == self.STATUS_DELETED @patterns.eventSource def markDeleted(self, event=None): self.setStatusDeleted() event.addSource(self, self.__status, type=self.markDeletedEventType()) def setStatusDeleted(self): self.__status = self.STATUS_DELETED @patterns.eventSource def cleanDirty(self, event=None): if not self.setStatusNone(): return event.addSource(self, self.__status, type=self.markNotDeletedEventType()) def setStatusNone(self): oldStatus = self.__status self.__status = self.STATUS_NONE return oldStatus == self.STATUS_DELETED def isNew(self): return self.__status == self.STATUS_NEW def isModified(self): return self.__status == self.STATUS_CHANGED def isDeleted(self): return self.__status == self.STATUS_DELETED class Object(SynchronizedObject): rx_attributes = re.compile(r'\[(\w+):(.+)\]') def __init__(self, *args, **kwargs): Attribute = attribute.Attribute self.__creationDateTime = kwargs.pop('creationDateTime', None) or Now() self.__modificationDateTime = kwargs.pop('modificationDateTime', DateTime.min) self.__subject = Attribute(kwargs.pop('subject', ''), self, self.subjectChangedEvent) self.__description = Attribute(kwargs.pop('description', ''), self, self.descriptionChangedEvent) self.__fgColor = Attribute(kwargs.pop('fgColor', None), self, self.appearanceChangedEvent) self.__bgColor = Attribute(kwargs.pop('bgColor', None), self, self.appearanceChangedEvent) self.__font = Attribute(kwargs.pop('font', None), self, self.appearanceChangedEvent) self.__icon = Attribute(kwargs.pop('icon', ''), self, self.appearanceChangedEvent) self.__selectedIcon = Attribute(kwargs.pop('selectedIcon', ''), self, self.appearanceChangedEvent) self.__ordering = Attribute(kwargs.pop('ordering', 0L), self, self.orderingChangedEvent) self.__id = kwargs.pop('id', None) or str(uuid.uuid1()) super(Object, self).__init__(*args, **kwargs) def __repr__(self): return self.subject() def __getstate__(self): try: state = super(Object, self).__getstate__() except AttributeError: state = dict() state.update(dict(id=self.__id, creationDateTime=self.__creationDateTime, modificationDateTime=self.__modificationDateTime, subject=self.__subject.get(), description=self.__description.get(), fgColor=self.__fgColor.get(), bgColor=self.__bgColor.get(), font=self.__font.get(), icon=self.__icon.get(), ordering=self.__ordering.get(), selectedIcon=self.__selectedIcon.get())) return state @patterns.eventSource def __setstate__(self, state, event=None): try: super(Object, self).__setstate__(state, event=event) except AttributeError: pass self.__id = state['id'] self.setSubject(state['subject'], event=event) self.setDescription(state['description'], event=event) self.setForegroundColor(state['fgColor'], event=event) self.setBackgroundColor(state['bgColor'], event=event) self.setFont(state['font'], event=event) self.setIcon(state['icon'], event=event) self.setSelectedIcon(state['selectedIcon'], event=event) self.setOrdering(state['ordering'], event=event) self.__creationDateTime = state['creationDateTime'] # Set modification date/time last to overwrite changes made by the # setters above self.__modificationDateTime = state['modificationDateTime'] def __getcopystate__(self): ''' Return a dictionary that can be passed to __init__ when creating a copy of the object. E.g. copy = obj.__class__(**original.__getcopystate__()) ''' try: state = super(Object, self).__getcopystate__() except AttributeError: state = dict() # Note that we don't put the id and the creation date/time in the state # dict, because a copy should get a new id and a new creation date/time state.update(dict(\ subject=self.__subject.get(), description=self.__description.get(), fgColor=self.__fgColor.get(), bgColor=self.__bgColor.get(), font=self.__font.get(), icon=self.__icon.get(), selectedIcon=self.__selectedIcon.get(), ordering=self.__ordering.get())) return state def copy(self): return self.__class__(**self.__getcopystate__()) @classmethod def monitoredAttributes(class_): return ['ordering', 'subject', 'description', 'appearance'] # Id: def id(self): return self.__id # Custom attributes def customAttributes(self, sectionName): attributes = set() for line in self.description().split('\n'): match = self.rx_attributes.match(line.strip()) if match and match.group(1) == sectionName: attributes.add(match.group(2)) return attributes # Editing date/time: def creationDateTime(self): return self.__creationDateTime def modificationDateTime(self): return self.__modificationDateTime def setModificationDateTime(self, dateTime): self.__modificationDateTime = dateTime @staticmethod def modificationDateTimeSortFunction(**kwargs): return lambda item: item.modificationDateTime() @staticmethod def creationDateTimeSortFunction(**kwargs): return lambda item: item.creationDateTime() # Subject: def subject(self): return self.__subject.get() def setSubject(self, subject, event=None): self.__subject.set(subject, event=event) def subjectChangedEvent(self, event): event.addSource(self, self.subject(), type=self.subjectChangedEventType()) @classmethod def subjectChangedEventType(class_): return '%s.subject' % class_ @staticmethod def subjectSortFunction(**kwargs): ''' Function to pass to list.sort when sorting by subject. ''' if kwargs.get('sortCaseSensitive', False): return lambda item: item.subject() else: return lambda item: item.subject().lower() @classmethod def subjectSortEventTypes(class_): ''' The event types that influence the subject sort order. ''' return (class_.subjectChangedEventType(),) # Ordering: def ordering(self): return self.__ordering.get() def setOrdering(self, ordering, event=None): self.__ordering.set(ordering, event=event) def orderingChangedEvent(self, event): event.addSource(self, self.ordering(), type=self.orderingChangedEventType()) @classmethod def orderingChangedEventType(class_): return '%s.ordering'%class_ @staticmethod def orderingSortFunction(**kwargs): return lambda item: item.ordering() @classmethod def orderingSortEventTypes(class_): return (class_.orderingChangedEventType(),) # Description: def description(self): return self.__description.get() def setDescription(self, description, event=None): self.__description.set(description, event=event) def descriptionChangedEvent(self, event): event.addSource(self, self.description(), type=self.descriptionChangedEventType()) @classmethod def descriptionChangedEventType(class_): return '%s.description'%class_ @staticmethod def descriptionSortFunction(**kwargs): ''' Function to pass to list.sort when sorting by description. ''' if kwargs.get('sortCaseSensitive', False): return lambda item: item.description() else: return lambda item: item.description().lower() @classmethod def descriptionSortEventTypes(class_): ''' The event types that influence the description sort order. ''' return (class_.descriptionChangedEventType(),) # Color: def setForegroundColor(self, color, event=None): self.__fgColor.set(color, event=event) def foregroundColor(self, recursive=False): # pylint: disable=W0613 # The 'recursive' argument isn't actually used here, but some # code assumes composite objects where there aren't. This is # the simplest workaround. return self.__fgColor.get() def setBackgroundColor(self, color, event=None): self.__bgColor.set(color, event=event) def backgroundColor(self, recursive=False): # pylint: disable=W0613 # The 'recursive' argument isn't actually used here, but some # code assumes composite objects where there aren't. This is # the simplest workaround. return self.__bgColor.get() # Font: def font(self, recursive=False): # pylint: disable=W0613 # The 'recursive' argument isn't actually used here, but some # code assumes composite objects where there aren't. This is # the simplest workaround. return self.__font.get() def setFont(self, font, event=None): self.__font.set(font, event=event) # Icons: def icon(self): return self.__icon.get() def setIcon(self, icon, event=None): self.__icon.set(icon, event=event) def selectedIcon(self): return self.__selectedIcon.get() def setSelectedIcon(self, selectedIcon, event=None): self.__selectedIcon.set(selectedIcon, event=event) # Event types: @classmethod def appearanceChangedEventType(class_): return '%s.appearance'%class_ def appearanceChangedEvent(self, event): event.addSource(self, type=self.appearanceChangedEventType()) @classmethod def modificationEventTypes(class_): try: eventTypes = super(Object, class_).modificationEventTypes() except AttributeError: eventTypes = [] return eventTypes + [class_.subjectChangedEventType(), class_.descriptionChangedEventType(), class_.appearanceChangedEventType(), class_.orderingChangedEventType()] class CompositeObject(Object, patterns.ObservableComposite): def __init__(self, *args, **kwargs): self.__expandedContexts = set(kwargs.pop('expandedContexts', [])) super(CompositeObject, self).__init__(*args, **kwargs) def __getcopystate__(self): state = super(CompositeObject, self).__getcopystate__() state.update(dict(expandedContexts=self.expandedContexts())) return state @classmethod def monitoredAttributes(class_): return Object.monitoredAttributes() + ['expandedContexts'] # Subject: def subject(self, recursive=False): # pylint: disable=W0221 subject = super(CompositeObject, self).subject() if recursive and self.parent(): subject = u'%s -> %s'%(self.parent().subject(recursive=True), subject) return subject def subjectChangedEvent(self, event): super(CompositeObject, self).subjectChangedEvent(event) for child in self.children(): child.subjectChangedEvent(event) @staticmethod def subjectSortFunction(**kwargs): ''' Function to pass to list.sort when sorting by subject. ''' recursive = kwargs.get('treeMode', False) if kwargs.get('sortCaseSensitive', False): return lambda item: item.subject(recursive=recursive) else: return lambda item: item.subject(recursive=recursive).lower() # Description: def description(self, recursive=False): # pylint: disable=W0221,W0613 # Allow for the recursive flag, but ignore it return super(CompositeObject, self).description() # Expansion state: # Note: expansion state is stored by context. A context is a simple string # identifier (without comma's) to distinguish between different contexts, # i.e. viewers. A composite object may be expanded in one context and # collapsed in another. def isExpanded(self, context='None'): ''' Returns a boolean indicating whether the composite object is expanded in the specified context. ''' return context in self.__expandedContexts def expandedContexts(self): ''' Returns a list of contexts where this composite object is expanded. ''' return list(self.__expandedContexts) def expand(self, expand=True, context='None', notify=True): ''' Expands (or collapses) the composite object in the specified context. ''' if expand == self.isExpanded(context): return if expand: self.__expandedContexts.add(context) else: self.__expandedContexts.discard(context) if notify: pub.sendMessage(self.expansionChangedEventType(), newValue=expand, sender=self) @classmethod def expansionChangedEventType(cls): ''' The event type used for notifying changes in the expansion state of a composite object. ''' return 'pubsub.%s.expandedContexts' % cls.__name__.lower() def expansionChangedEvent(self, event): event.addSource(self, type=self.expansionChangedEventType()) # The ChangeMonitor expects this... @classmethod def expandedContextsChangedEventType(class_): return class_.expansionChangedEventType() # Appearance: def appearanceChangedEvent(self, event): super(CompositeObject, self).appearanceChangedEvent(event) # Assume that most of the times our children change appearance too for child in self.children(): child.appearanceChangedEvent(event) def foregroundColor(self, recursive=False): myFgColor = super(CompositeObject, self).foregroundColor() if not myFgColor and recursive and self.parent(): return self.parent().foregroundColor(recursive=True) else: return myFgColor def backgroundColor(self, recursive=False): myBgColor = super(CompositeObject, self).backgroundColor() if not myBgColor and recursive and self.parent(): return self.parent().backgroundColor(recursive=True) else: return myBgColor def font(self, recursive=False): myFont = super(CompositeObject, self).font() if not myFont and recursive and self.parent(): return self.parent().font(recursive=True) else: return myFont def icon(self, recursive=False): myIcon = super(CompositeObject, self).icon() if not recursive: return myIcon if not myIcon and self.parent(): myIcon = self.parent().icon(recursive=True) return self.pluralOrSingularIcon(myIcon, native=super(CompositeObject, self).icon() == '') def selectedIcon(self, recursive=False): myIcon = super(CompositeObject, self).selectedIcon() if not recursive: return myIcon if not myIcon and self.parent(): myIcon = self.parent().selectedIcon(recursive=True) return self.pluralOrSingularIcon(myIcon, native=super(CompositeObject, self).selectedIcon() == '') def pluralOrSingularIcon(self, myIcon, native=True): hasChildren = any(child for child in self.children() if not child.isDeleted()) mapping = icon.itemImagePlural if hasChildren else icon.itemImageSingular # If the icon comes from the user settings, only pluralize it; this is probably # the Way of the Least Astonishment if native or hasChildren: return mapping.get(myIcon, myIcon) return myIcon # Event types: @classmethod def modificationEventTypes(class_): return super(CompositeObject, class_).modificationEventTypes() + \ [class_.expansionChangedEventType()] # Override SynchronizedObject methods to also mark child objects @patterns.eventSource def markDeleted(self, event=None): super(CompositeObject, self).markDeleted(event=event) for child in self.children(): child.markDeleted(event=event) @patterns.eventSource def markNew(self, event=None): super(CompositeObject, self).markNew(event=event) for child in self.children(): child.markNew(event=event) @patterns.eventSource def markDirty(self, force=False, event=None): super(CompositeObject, self).markDirty(force, event=event) for child in self.children(): child.markDirty(force, event=event) @patterns.eventSource def cleanDirty(self, event=None): super(CompositeObject, self).cleanDirty(event=event) for child in self.children(): child.cleanDirty(event=event) taskcoach-1.4.3/taskcoachlib/domain/base/owner.py000066400000000000000000000161201265347643000220050ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns def DomainObjectOwnerMetaclass(name, bases, ns): """This metaclass makes a class an owner for some domain objects. The __ownedType__ attribute of the class must be a string. For each type, the following methods will be added to the class (here assuming a type of 'Foo'): - __init__, __getstate__, __setstate__, __getcopystate__, __setcopystate__ - addFoo, removeFoo, addFoos, removeFoos - setFoos, foos - foosChangedEventType - fooAddedEventType - fooRemovedEventType - modificationEventTypes - __notifyObservers""" # This metaclass is a function instead of a subclass of type # because as we're replacing __init__, we don't want the metaclass # to be inherited by children. klass = type(name, bases, ns) def constructor(instance, *args, **kwargs): # NB: we use a simple list here. Maybe we should use a container type. setattr(instance,'_%s__%ss' % (name, klass.__ownedType__.lower()), kwargs.pop(klass.__ownedType__.lower() + 's', [])) super(klass, instance).__init__(*args, **kwargs) klass.__init__ = constructor def changedEventType(class_): return '%s.%ss' % (class_, klass.__ownedType__.lower()) setattr(klass, '%ssChangedEventType' % klass.__ownedType__.lower(), classmethod(changedEventType)) def addedEventType(class_): return '%s.%s.added' % (class_, klass.__ownedType__.lower()) setattr(klass, '%sAddedEventType' % klass.__ownedType__.lower(), classmethod(addedEventType)) def removedEventType(class_): return '%s.%s.removed' % (class_, klass.__ownedType__.lower()) setattr(klass, '%sRemovedEventType' % klass.__ownedType__.lower(), classmethod(removedEventType)) def modificationEventTypes(class_): try: eventTypes = super(klass, class_).modificationEventTypes() except AttributeError: eventTypes = [] return eventTypes + [changedEventType(class_)] klass.modificationEventTypes = classmethod(modificationEventTypes) def objects(instance, recursive=False): ownedObjects = getattr(instance, '_%s__%ss' % (name, klass.__ownedType__.lower())) result = [ownedObject for ownedObject in ownedObjects \ if not ownedObject.isDeleted()] if recursive: for ownedObject in result[:]: result.extend(ownedObject.children(recursive=True)) return result setattr(klass, '%ss' % klass.__ownedType__.lower(), objects) @patterns.eventSource def setObjects(instance, newObjects, event=None): if newObjects == objects(instance): return setattr(instance, '_%s__%ss' % (name, klass.__ownedType__.lower()), newObjects) changedEvent(instance, event, *newObjects) # pylint: disable=W0142 setattr(klass, 'set%ss' % klass.__ownedType__, setObjects) def changedEvent(instance, event, *objects): event.addSource(instance, *objects, **dict(type=changedEventType(instance.__class__))) setattr(klass, '%ssChangedEvent' % klass.__ownedType__.lower(), changedEvent) def addedEvent(instance, event, *objects): event.addSource(instance, *objects, **dict(type=addedEventType(instance.__class__))) setattr(klass, '%sAddedEvent' % klass.__ownedType__.lower(), addedEvent) def removedEvent(instance, event, *objects): event.addSource(instance, *objects, **dict(type=removedEventType(instance.__class__))) setattr(klass, '%sRemovedEvent' % klass.__ownedType__.lower(), removedEvent) @patterns.eventSource def addObject(instance, ownedObject, event=None): getattr(instance, '_%s__%ss' % (name, klass.__ownedType__.lower())).append(ownedObject) changedEvent(instance, event, ownedObject) addedEvent(instance, event, ownedObject) setattr(klass, 'add%s' % klass.__ownedType__, addObject) @patterns.eventSource def addObjects(instance, *ownedObjects, **kwargs): if not ownedObjects: return getattr(instance, '_%s__%ss' % (name, klass.__ownedType__.lower())).extend(ownedObjects) event = kwargs.pop('event', None) changedEvent(instance, event, *ownedObjects) addedEvent(instance, event, *ownedObjects) setattr(klass, 'add%ss' % klass.__ownedType__, addObjects) @patterns.eventSource def removeObject(instance, ownedObject, event=None): getattr(instance, '_%s__%ss' % (name, klass.__ownedType__.lower())).remove(ownedObject) changedEvent(instance, event, ownedObject) removedEvent(instance, event, ownedObject) setattr(klass, 'remove%s' % klass.__ownedType__, removeObject) @patterns.eventSource def removeObjects(instance, *ownedObjects, **kwargs): if not ownedObjects: return for ownedObject in ownedObjects: try: getattr(instance, '_%s__%ss' % (name, klass.__ownedType__.lower())).remove(ownedObject) except ValueError: pass event = kwargs.pop('event', None) changedEvent(instance, event, *ownedObjects) removedEvent(instance, event, *ownedObjects) setattr(klass, 'remove%ss' % klass.__ownedType__, removeObjects) def getstate(instance): try: state = super(klass, instance).__getstate__() except AttributeError: state = dict() state[klass.__ownedType__.lower() + 's'] = getattr(instance, '_%s__%ss' % (name, klass.__ownedType__.lower()))[:] return state klass.__getstate__ = getstate @patterns.eventSource def setstate(instance, state, event=None): try: super(klass, instance).__setstate__(state, event=event) except AttributeError: pass setObjects(instance, state[klass.__ownedType__.lower() + 's'], event=event) klass.__setstate__ = setstate def getcopystate(instance): try: state = super(klass, instance).__getcopystate__() except AttributeError: state = dict() state['%ss' % klass.__ownedType__.lower()] = \ [ownedObject.copy() for ownedObject in objects(instance)] return state klass.__getcopystate__ = getcopystate return klass taskcoach-1.4.3/taskcoachlib/domain/base/sorter.py000066400000000000000000000175041265347643000222000ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.thirdparty.pubsub import pub class Sorter(patterns.ListDecorator): ''' This class decorates a list and sorts its contents. ''' def __init__(self, *args, **kwargs): self._sortKeys = kwargs.pop('sortBy', ['subject']) self._sortCaseSensitive = kwargs.pop('sortCaseSensitive', True) super(Sorter, self).__init__(*args, **kwargs) for sortKey in self._sortKeys: self._registerObserverForAttribute(sortKey.lstrip('-')) self.reset() def thaw(self): super(Sorter, self).thaw() if not self.isFrozen(): self.reset() def detach(self): super(Sorter, self).detach() for sortKey in self._sortKeys: self._removeObserverForAttribute(sortKey.lstrip('-')) @classmethod def sortEventType(cls): return 'pubsub.%s.sorted' % cls.__name__ @patterns.eventSource def extendSelf(self, items, event=None): super(Sorter, self).extendSelf(items, event) self.reset() def isAscending(self): if self._sortKeys: return not self._sortKeys[0].startswith('-') return True def sortKeys(self): return self._sortKeys # We don't implement removeItemsFromSelf() because there is no need # to resort when items are removed since after removing items the # remaining items are still in the right order. def sortBy(self, sortKey): if self._sortKeys and self._sortKeys[0] == sortKey: if sortKey == 'ordering': return self._sortKeys[0] = '-' + sortKey elif self._sortKeys and self._sortKeys[0] == '-' + sortKey: self._sortKeys[0] = sortKey elif self._sortKeys and sortKey in self._sortKeys: self._sortKeys.remove(sortKey) self._sortKeys.insert(0, sortKey) elif self._sortKeys and ('-' + sortKey) in self._sortKeys: self._sortKeys.remove('-' + sortKey) self._sortKeys.insert(0, sortKey) else: self._sortKeys.insert(0, sortKey) self._registerObserverForAttribute(sortKey) self.reset() def sortCaseSensitive(self, sortCaseSensitive): self._sortCaseSensitive = sortCaseSensitive self.reset() def sortAscending(self, ascending=True): if self._sortKeys: if (ascending and self._sortKeys[0].startswith('-')) or \ (not ascending and not self._sortKeys[0].startswith('-')): self.sortBy(self._sortKeys[0].lstrip('-')) def reset(self, forceEvent=False): ''' reset does the actual sorting. If the order of the list changes, observers are notified by means of the list-sorted event. ''' if self.isFrozen(): return oldSelf = self[:] # XXXTODO: create only one function with all keys ? Reversing may # be problematic. for sortKey in reversed(self._sortKeys): self.sort(key=self.createSortKeyFunction(sortKey.lstrip('-')), reverse=sortKey.startswith('-')) if forceEvent or self != oldSelf: pub.sendMessage(self.sortEventType(), sender=self) def createSortKeyFunction(self, sortKey): ''' createSortKeyFunction returns a function that is passed to the builtin list.sort method to extract the sort key from each element in the list. We expect the domain object class to provide a SortFunction(sortCaseSensitive) method that returns the sortKeyFunction for the sortKey. ''' return self._getSortKeyFunction(sortKey)(sortCaseSensitive=self._sortCaseSensitive) def _getSortKeyFunction(self, sortKey): try: return getattr(self.DomainObjectClass, '%sSortFunction' % sortKey) except AttributeError: return self._getSortKeyFunction('subject') def _registerObserverForAttribute(self, attribute): for eventType in self._getSortEventTypes(attribute): if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: patterns.Publisher().registerObserver(self.onAttributeChanged_Deprecated, eventType=eventType) def _removeObserverForAttribute(self, attribute): for eventType in self._getSortEventTypes(attribute): if eventType.startswith('pubsub'): pub.unsubscribe(self.onAttributeChanged, eventType) else: patterns.Publisher().removeObserver(self.onAttributeChanged_Deprecated, eventType=eventType) def onAttributeChanged(self, newValue, sender): # pylint: disable=W0613 self.reset() def onAttributeChanged_Deprecated(self, event): # pylint: disable=W0613 self.reset() def _getSortEventTypes(self, attribute): try: return getattr(self.DomainObjectClass, '%sSortEventTypes' % attribute)() except AttributeError: return [] class TreeSorter(Sorter): def __init__(self, *args, **kwargs): self.__rootItems = None # Cached root items super(TreeSorter, self).__init__(*args, **kwargs) def treeMode(self): return True def createSortKeyFunction(self, key): ''' createSortKeyFunction returns a function that is passed to the builtin list.sort method to extract the sort key from each element in the list. We expect the domain object class to provide a SortFunction(sortCaseSensitive, treeMode) method that returns the sortKeyFunction for the sortKey. ''' return self._getSortKeyFunction(key)(sortCaseSensitive=self._sortCaseSensitive, treeMode=self.treeMode()) def reset(self, *args, **kwargs): # pylint: disable=W0221 self.__invalidateRootItemCache() return super(TreeSorter, self).reset(*args, **kwargs) @patterns.eventSource def extendSelf(self, items, event=None): self.__invalidateRootItemCache() return super(TreeSorter, self).extendSelf(items, event=event) @patterns.eventSource def removeItemsFromSelf(self, itemsToRemove, event=None): self.__invalidateRootItemCache() # FIXME: Why is it necessary to remove all children explicitly? itemsToRemove = set(itemsToRemove) if self.treeMode(): for item in itemsToRemove.copy(): itemsToRemove.update(item.children(recursive=True)) itemsToRemove = [item for item in itemsToRemove if item in self] return super(TreeSorter, self).removeItemsFromSelf(itemsToRemove, event=event) def rootItems(self): ''' Return the root items, i.e. items without a parent. ''' if self.__rootItems is None: self.__rootItems = [item for item in self if item.parent() is None] return self.__rootItems def __invalidateRootItemCache(self): self.__rootItems = None taskcoach-1.4.3/taskcoachlib/domain/categorizable/000077500000000000000000000000001265347643000222025ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/categorizable/__init__.py000066400000000000000000000015151265347643000243150ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from categorizable import CategorizableCompositeObject from categorizablecontainer import CategorizableContainer taskcoach-1.4.3/taskcoachlib/domain/categorizable/categorizable.py000066400000000000000000000267051265347643000254010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import base from taskcoachlib.domain.attribute import font, color class CategorizableCompositeObject(base.CompositeObject): ''' CategorizableCompositeObjects are composite objects that can be categorized by adding them to one or more categories. Examples of categorizable composite objects are tasks and notes. ''' def __init__(self, *args, **kwargs): self.__categories = base.SetAttribute(kwargs.pop('categories', set()), self, self.addCategoryEvent, self.removeCategoryEvent) super(CategorizableCompositeObject, self).__init__(*args, **kwargs) def __getstate__(self): state = super(CategorizableCompositeObject, self).__getstate__() state.update(dict(categories=self.categories())) return state @patterns.eventSource def __setstate__(self, state, event=None): super(CategorizableCompositeObject, self).__setstate__(state, event=event) self.setCategories(state['categories'], event=event) def __getcopystate__(self): state = super(CategorizableCompositeObject, self).__getcopystate__() state.update(dict(categories=self.categories())) return state def categories(self, recursive=False, upwards=False): result = self.__categories.get() if recursive and upwards and self.parent() is not None: result |= self.parent().categories(recursive=True, upwards=True) elif recursive and not upwards: for child in self.children(recursive=True): result |= child.categories() return result @classmethod def categoryAddedEventType(class_): return 'categorizable.category.add' def addCategory(self, *categories, **kwargs): return self.__categories.add(set(categories), event=kwargs.pop('event', None)) def addCategoryEvent(self, event, *categories): event.addSource(self, *categories, **dict(type=self.categoryAddedEventType())) for child in self.children(recursive=True): event.addSource(child, *categories, **dict(type=child.categoryAddedEventType())) if self.categoriesChangeAppearance(categories): self.appearanceChangedEvent(event) def categoriesChangeAppearance(self, categories): return self.categoriesChangeFgColor(categories) or \ self.categoriesChangeBgColor(categories) or \ self.categoriesChangeFont(categories) or \ self.categoriesChangeIcon(categories) def categoriesChangeFgColor(self, categories): return not self.foregroundColor() and any(category.foregroundColor(recursive=True) for category in categories) def categoriesChangeBgColor(self, categories): return not self.backgroundColor() and any(category.backgroundColor(recursive=True) for category in categories) def categoriesChangeFont(self, categories): return not self.font() and any(category.font(recursive=True) for category in categories) def categoriesChangeIcon(self, categories): return not self.icon() and any(category.icon(recursive=True) for category in categories) @classmethod def categoryRemovedEventType(class_): return 'categorizable.category.remove' def removeCategory(self, *categories, **kwargs): return self.__categories.remove(set(categories), event=kwargs.pop('event', None)) def removeCategoryEvent(self, event, *categories): event.addSource(self, *categories, **dict(type=self.categoryRemovedEventType())) for child in self.children(recursive=True): event.addSource(child, *categories, **dict(type=child.categoryRemovedEventType())) if self.categoriesChangeAppearance(categories): self.appearanceChangedEvent(event) def setCategories(self, categories, event=None): return self.__categories.set(set(categories), event=event) @staticmethod def categoriesSortFunction(**kwargs): ''' Return a sort key for sorting by categories. Since a categorizable can have multiple categories we first sort the categories by their subjects. If the sorter is in tree mode, we also take the categories of the children of the categorizable into account, after the categories of the categorizable itself. If the sorter is in list mode we also take the categories of the parent (recursively) into account, again after the categories of the categorizable itself. ''' def sortKeyFunction(categorizable): def sortedSubjects(items): return sorted([item.subject(recursive=True) for item in items]) categories = categorizable.categories() sortedCategorySubjects = sortedSubjects(categories) isListMode = not kwargs.get('treeMode', False) childCategories = categorizable.categories(recursive=True, upwards=isListMode) - categories sortedCategorySubjects.extend(sortedSubjects(childCategories)) return sortedCategorySubjects return sortKeyFunction @classmethod def categoriesSortEventTypes(class_): ''' The event types that influence the categories sort order. ''' return (class_.categoryAddedEventType(), class_.categoryRemovedEventType()) def foregroundColor(self, recursive=False): myOwnFgColor = super(CategorizableCompositeObject, self).foregroundColor() if myOwnFgColor or not recursive: return myOwnFgColor categoryBasedFgColor = self._categoryForegroundColor() if categoryBasedFgColor: return categoryBasedFgColor else: return super(CategorizableCompositeObject, self).foregroundColor(recursive=True) def backgroundColor(self, recursive=False): myOwnBgColor = super(CategorizableCompositeObject, self).backgroundColor() if myOwnBgColor or not recursive: return myOwnBgColor categoryBasedBgColor = self._categoryBackgroundColor() if categoryBasedBgColor: return categoryBasedBgColor else: return super(CategorizableCompositeObject, self).backgroundColor(recursive=True) def _categoryForegroundColor(self): ''' If a categorizable object belongs to a category that has a foreground color associated with it, the categorizable object is colored accordingly. When a categorizable object belongs to multiple categories, the color is mixed. If a categorizable composite object has no foreground color of its own, it uses its parent's foreground color. ''' colors = [category.foregroundColor(recursive=True) \ for category in self.categories()] if not colors and self.parent(): return self.parent()._categoryForegroundColor() else: return color.ColorMixer.mix(colors) def _categoryBackgroundColor(self): ''' If a categorizable object belongs to a category that has a background color associated with it, the categorizable object is colored accordingly. When a categorizable object belongs to multiple categories, the color is mixed. If a categorizable composite object has no background color of its own, it uses its parent's background color. ''' colors = [category.backgroundColor(recursive=True) \ for category in self.categories()] if not colors and self.parent(): return self.parent()._categoryBackgroundColor() else: return color.ColorMixer.mix(colors) def font(self, recursive=False): myFont = super(CategorizableCompositeObject, self).font() if myFont or not recursive: return myFont categoryBasedFont = self._categoryFont() if categoryBasedFont: return categoryBasedFont else: return super(CategorizableCompositeObject, self).font(recursive=True) def _categoryFont(self): ''' If a categorizable object belongs to a category that has a font associated with it, the categorizable object uses that font. When a categorizable object belongs to multiple categories, the font is mixed. If a categorizable composite object has no font of its own, it uses its parent's font. ''' fonts = [category.font(recursive=True) \ for category in self.categories()] if not fonts and self.parent(): return self.parent()._categoryFont() else: return font.FontMixer.mix(*fonts) # pylint: disable=W0142 def icon(self, recursive=False): icon = super(CategorizableCompositeObject, self).icon() if not icon and recursive: icon = self.categoryIcon() or super(CategorizableCompositeObject, self).icon(recursive=True) return icon def categoryIcon(self): icon = '' for category in self.categories(): icon = category.icon(recursive=True) if icon: return icon if self.parent(): return self.parent().categoryIcon() else: return '' def selectedIcon(self, recursive=False): icon = super(CategorizableCompositeObject, self).selectedIcon() if not icon and recursive: icon = self.categorySelectedIcon() or super(CategorizableCompositeObject, self).selectedIcon(recursive=True) return icon def categorySelectedIcon(self): icon = '' for category in self.categories(): icon = category.selectedIcon(recursive=True) if icon: return icon if self.parent(): return self.parent().categorySelectedIcon() else: return '' @classmethod def categorySubjectChangedEventType(class_): return 'categorizable.category.subject' def categorySubjectChangedEvent(self, event, subject): for categorizable in [self] + self.children(recursive=True): event.addSource(categorizable, subject, type=categorizable.categorySubjectChangedEventType()) @classmethod def modificationEventTypes(class_): eventTypes = super(CategorizableCompositeObject, class_).modificationEventTypes() return eventTypes + [class_.categoryAddedEventType(), class_.categoryRemovedEventType()] taskcoach-1.4.3/taskcoachlib/domain/categorizable/categorizablecontainer.py000066400000000000000000000027671265347643000273060ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base from taskcoachlib import patterns class CategorizableContainer(base.Collection): @patterns.eventSource def extend(self, items, event=None): super(CategorizableContainer, self).extend(items, event=event) for item in self._compositesAndAllChildren(items): for category in item.categories(): category.addCategorizable(item, event=event) @patterns.eventSource def removeItems(self, items, event=None): super(CategorizableContainer, self).removeItems(items, event=event) for item in self._compositesAndAllChildren(items): for category in item.categories(): category.removeCategorizable(item, event=event) taskcoach-1.4.3/taskcoachlib/domain/category/000077500000000000000000000000001265347643000212045ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/category/__init__.py000066400000000000000000000015251265347643000233200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from category import Category from categorycontainer import CategoryList from sorter import CategorySorter import filter taskcoach-1.4.3/taskcoachlib/domain/category/category.py000066400000000000000000000166061265347643000234040ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import base, note, attachment class Category(attachment.AttachmentOwner, note.NoteOwner, base.CompositeObject): def __init__(self, subject, categorizables=None, children=None, filtered=False, parent=None, description='', exclusiveSubcategories=False, *args, **kwargs): super(Category, self).__init__(subject=subject, children=children or [], parent=parent, description=description, *args, **kwargs) self.__categorizables = base.SetAttribute(set(categorizables or []), self, self.categorizableAddedEvent, self.categorizableRemovedEvent, weak=True) self.__filtered = filtered self.__exclusiveSubcategories = exclusiveSubcategories @classmethod def monitoredAttributes(class_): return base.CompositeObject.monitoredAttributes() + ['exclusiveSubcategories'] @classmethod def filterChangedEventType(class_): ''' Event type to notify observers that categorizables belonging to this category are filtered or not. ''' return 'category.filter' @classmethod def categorizableAddedEventType(class_): ''' Event type to notify observers that categorizables have been added to this category. ''' return 'category.categorizable.added' @classmethod def categorizableRemovedEventType(class_): ''' Event type to notify observers that categorizables have been removed from this category. ''' return 'category.categorizable.removed' @classmethod def exclusiveSubcategoriesChangedEventType(class_): ''' Event type to notify observers that subcategories have become exclusive (or vice versa). ''' return 'category.exclusiveSubcategories' @classmethod def modificationEventTypes(class_): eventTypes = super(Category, class_).modificationEventTypes() return eventTypes + [class_.filterChangedEventType(), class_.categorizableAddedEventType(), class_.categorizableRemovedEventType(), class_.exclusiveSubcategoriesChangedEventType()] def __getstate__(self): state = super(Category, self).__getstate__() state.update(dict(categorizables=self.__categorizables.get(), filtered=self.__filtered), exclusiveSubcategories=self.__exclusiveSubcategories) return state @patterns.eventSource def __setstate__(self, state, event=None): super(Category, self).__setstate__(state, event=event) self.setCategorizables(state['categorizables'], event=event) self.setFiltered(state['filtered'], event=event) self.makeSubcategoriesExclusive(state['exclusiveSubcategories'], event=event) def __getcopystate__(self): state = super(Category, self).__getcopystate__() state.update(dict(categorizables=self.__categorizables.get(), filtered=self.__filtered)) return state def subjectChangedEvent(self, event): super(Category, self).subjectChangedEvent(event) self.categorySubjectChangedEvent(event) def categorySubjectChangedEvent(self, event): subject = self.subject() for eachCategorizable in self.categorizables(recursive=True): eachCategorizable.categorySubjectChangedEvent(event, subject) def categorizables(self, recursive=False): result = self.__categorizables.get() if recursive: for child in self.children(): result |= child.categorizables(recursive) return result def addCategorizable(self, *categorizables, **kwargs): self.__categorizables.add(set(categorizables), event=kwargs.pop('event', None)) def categorizableAddedEvent(self, event, *categorizables): event.addSource(self, *categorizables, **dict(type=self.categorizableAddedEventType())) def removeCategorizable(self, *categorizables, **kwargs): self.__categorizables.remove(set(categorizables), event=kwargs.pop('event', None)) def categorizableRemovedEvent(self, event, *categorizables): event.addSource(self, *categorizables, **dict(type=self.categorizableRemovedEventType())) def setCategorizables(self, categorizables, event=None): self.__categorizables.set(set(categorizables), event=event) def isFiltered(self): return self.__filtered @patterns.eventSource def setFiltered(self, filtered=True, event=None): if filtered == self.__filtered: return self.__filtered = filtered self.filterChangedEvent(event) def filterChangedEvent(self, event): event.addSource(self, self.isFiltered(), type=self.filterChangedEventType()) def appearanceChangedEvent(self, event): ''' Override to include all categorizables in the event that belong to this category since their appearance (may) have changed too. ''' super(Category, self).appearanceChangedEvent(event) for categorizable in self.categorizables(): categorizable.appearanceChangedEvent(event) def hasExclusiveSubcategories(self): return self.__exclusiveSubcategories def isMutualExclusive(self): parent = self.parent() return parent and parent.hasExclusiveSubcategories() @patterns.eventSource def makeSubcategoriesExclusive(self, exclusive=True, event=None): if exclusive == self.hasExclusiveSubcategories(): return self.__exclusiveSubcategories = exclusive self.exclusiveSubcategoriesEvent(event) for child in self.children(): child.setFiltered(False, event=event) # "Conventional" naming for the monitor def exclusiveSubcategories(self): return self.hasExclusiveSubcategories() @patterns.eventSource def setExclusiveSubcategories(self, exclusive=True, event=None): self.makeSubcategoriesExclusive(exclusive=exclusive, event=event) def exclusiveSubcategoriesEvent(self, event): event.addSource(self, self.hasExclusiveSubcategories(), type=self.exclusiveSubcategoriesChangedEventType()) taskcoach-1.4.3/taskcoachlib/domain/category/categorycontainer.py000077500000000000000000000040061265347643000253010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base from taskcoachlib import patterns class CategoryList(base.Collection): @patterns.eventSource def extend(self, categories, event=None): super(CategoryList, self).extend(categories, event=event) for category in self._compositesAndAllChildren(categories): for categorizable in category.categorizables(): categorizable.addCategory(category, event=event, modify=False) @patterns.eventSource def removeItems(self, categories, event=None): super(CategoryList, self).removeItems(categories, event=event) for category in self._compositesAndAllChildren(categories): for categorizable in category.categorizables(): categorizable.removeCategory(category, event=event) def findCategoryByName(self, name): for category in self: recursive = ' -> ' in name if category.subject(recursive=recursive) == name: return category return None def filteredCategories(self): return [category for category in self if category.isFiltered()] @patterns.eventSource def resetAllFilteredCategories(self, event=None): for category in self: category.setFiltered(False, event=event) taskcoach-1.4.3/taskcoachlib/domain/category/filter.py000066400000000000000000000064641265347643000230550ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import base from taskcoachlib.thirdparty.pubsub import pub from category import Category class CategoryFilter(base.Filter): def __init__(self, *args, **kwargs): self.__categories = kwargs.pop('categories') self.__filterOnlyWhenAllCategoriesMatch = \ kwargs.pop('filterOnlyWhenAllCategoriesMatch', False) for eventType in (self.__categories.addItemEventType(), self.__categories.removeItemEventType()): patterns.Publisher().registerObserver(self.onCategoryChanged, eventType=eventType, eventSource=self.__categories) eventTypes = (Category.categorizableAddedEventType(), Category.categorizableRemovedEventType(), Category.filterChangedEventType()) for eventType in eventTypes: patterns.Publisher().registerObserver(self.onCategoryChanged, eventType=eventType) pub.subscribe(self.onFilterMatchingChanged, 'settings.view.categoryfiltermatchall') super(CategoryFilter, self).__init__(*args, **kwargs) def detach(self): super(CategoryFilter, self).detach() self.removeObserver(self.onCategoryChanged) def filterItems(self, categorizables): filteredCategories = self.__categories.filteredCategories() if not filteredCategories: return categorizables if self.__filterOnlyWhenAllCategoriesMatch: filteredCategorizables = set(categorizables) for category in filteredCategories: filteredCategorizables &= self.__categorizablesBelongingToCategory(category) else: filteredCategorizables = set() for category in filteredCategories: filteredCategorizables |= self.__categorizablesBelongingToCategory(category) filteredCategorizables &= self.observable() return filteredCategorizables @staticmethod def __categorizablesBelongingToCategory(category): categorizables = category.categorizables(recursive=True) for categorizable in categorizables.copy(): categorizables |= set(categorizable.children(recursive=True)) return categorizables def onFilterMatchingChanged(self, value): self.__filterOnlyWhenAllCategoriesMatch = value self.reset() def onCategoryChanged(self, event): # pylint: disable=W0613 self.reset() taskcoach-1.4.3/taskcoachlib/domain/category/sorter.py000077500000000000000000000015451265347643000231040ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base import category class CategorySorter(base.TreeSorter): DomainObjectClass = category.Category taskcoach-1.4.3/taskcoachlib/domain/date/000077500000000000000000000000001265347643000203045ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/date/__init__.py000066400000000000000000000021511265347643000224140ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from date import Date, parseDate from dateandtime import DateTime, Now, Today, Yesterday, Tomorrow, \ LastDayOfCurrentMonth, parseDateTime from timedelta import TimeDelta, ONE_SECOND, ONE_MINUTE, ONE_HOUR, TWO_HOURS, \ ONE_DAY, ONE_WEEK, ONE_YEAR, parseTimeDelta from timeclass import Time from scheduler import Scheduler from recurrence import Recurrence from snooze import snoozeChoices taskcoach-1.4.3/taskcoachlib/domain/date/date.py000066400000000000000000000051511265347643000215750ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import time, string, datetime, re, timedelta # pylint: disable=W0402 from taskcoachlib import patterns from .fix import StrftimeFix infinite = datetime.date.max class RealDate(StrftimeFix, datetime.date): def __add__(self, delta): newdate = super(RealDate, self).__add__(delta) return RealDate(newdate.year, newdate.month, newdate.day) def __sub__(self, other): newdate = super(RealDate, self).__sub__(other) if isinstance(newdate, datetime.timedelta): return timedelta.TimeDelta(newdate.days, newdate.seconds, newdate.microseconds) else: return RealDate(newdate.year, newdate.month, newdate.day) class InfiniteDate(datetime.date): __metaclass__ = patterns.Singleton def __new__(self): return super(InfiniteDate, self).__new__(InfiniteDate, infinite.year, infinite.month, infinite.day) def _getyear(self): return None year = property(_getyear) def _getmonth(self): return None month = property(_getmonth) def _getday(self): return None day = property(_getday) def __str__(self): return '' def __sub__(self, other): if isinstance(other, InfiniteDate): return timedelta.TimeDelta() else: return timedelta.TimeDelta.max def __add__(self, delta): # Whatever is added to InfiniteDate, we're still infinite: return self # factories: def parseDate(dateString, default=None): try: return Date(*[string.atoi(part) for part in dateString.split('-')]) except ValueError: if default: return default else: return Date() def Date(year=infinite.year, month=infinite.month, day=infinite.day): if (year, month, day) == (infinite.year, infinite.month, infinite.day): return InfiniteDate() else: return RealDate(year, month, day) taskcoach-1.4.3/taskcoachlib/domain/date/dateandtime.py000066400000000000000000000134161265347643000231420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import datetime, timedelta, re, time from .date import Date from .fix import StrftimeFix class DateTime(StrftimeFix, datetime.datetime): secondsPerMinute = 60 minutesPerHour = 60 hoursPerDay = 24 secondsPerHour = minutesPerHour * secondsPerMinute secondsPerDay = hoursPerDay * secondsPerHour def __new__(class_, *args, **kwargs): if not args and not kwargs: max = datetime.datetime.max # pylint: disable=W0622 args = (max.year, max.month, max.day, max.hour, max.minute, max.second, max.microsecond) return datetime.datetime.__new__(class_, *args, **kwargs) @staticmethod def fromDateTime(dateTime): return DateTime(year=dateTime.year, month=dateTime.month, day=dateTime.day, hour=dateTime.hour, minute=dateTime.minute, second=dateTime.second, microsecond=dateTime.microsecond) def date(self): return Date(self.year, self.month, self.day) def weeknumber(self): return self.isocalendar()[1] def weekday(self): return self.isoweekday() # Sunday = 7, Monday = 1, etc. def toordinal(self): ''' Return the ordinal number of the day, plus a fraction between 0 and 1 for parts of the day. ''' ordinal = super(DateTime, self).toordinal() seconds = self.hour * self.secondsPerHour + \ self.minute * self.secondsPerMinute + \ self.second return ordinal + (seconds / float(self.secondsPerDay)) def startOfDay(self): return self.replace(hour=0, minute=0, second=0, microsecond=0) def endOfDay(self): return self.replace(hour=23, minute=59, second=59, microsecond=999999) def startOfWeek(self): days = self.weekday() monday = self - timedelta.TimeDelta(days=days-1) return DateTime(monday.year, monday.month, monday.day) def endOfWeek(self): days = self.weekday() sunday = self + timedelta.TimeDelta(days=7-days) return DateTime(sunday.year, sunday.month, sunday.day).endOfDay() def startOfWorkWeek(self): days = self.weekday() monday = self - timedelta.TimeDelta(days=days-1) return DateTime(monday.year, monday.month, monday.day) def endOfWorkWeek(self): days = 5 - self.weekday() if days < 0: days += 7 friday = self + timedelta.TimeDelta(days=days) return DateTime(friday.year, friday.month, friday.day).endOfDay() def startOfMonth(self): return DateTime(self.year, self.month, 1) def endOfMonth(self): for lastday in [31,30,29,28]: try: return DateTime(self.year, self.month, lastday).endOfDay() except ValueError: pass def startOfYear(self): return DateTime(self.year, 1, 1).startOfDay() def endOfYear(self): return DateTime(self.year, 12, 31).endOfDay() def __sub__(self, other): ''' Make sure substraction returns instances of the right classes. ''' if self == DateTime() and isinstance(other, datetime.datetime): max = timedelta.TimeDelta.max # pylint: disable=W0622 return timedelta.TimeDelta(max.days, max.seconds, max.microseconds) result = super(DateTime, self).__sub__(other) if isinstance(result, datetime.timedelta): result = timedelta.TimeDelta(result.days, result.seconds, result.microseconds) elif isinstance(result, datetime.datetime): result = self.__class__(result.year, result.month, result.day, result.hour, result.minute, result.second, result.microsecond) return result def __add__(self, other): result = super(DateTime, self).__add__(other) return self.__class__(result.year, result.month, result.day, result.hour, result.minute, result.second, result.microsecond) DateTime.max = DateTime(datetime.datetime.max.year, 12, 31).endOfDay() DateTime.min = DateTime(datetime.datetime.min.year, 1, 1).startOfDay() def parseDateTime(string, *timeDefaults): if string in ('', 'None'): return None else: args = [int(arg) for arg in re.split('[-:. ]', string)] if len(args) == 3: # We parsed a date, no time args.extend(timeDefaults) return DateTime(*args) # pylint: disable=W0142 def Now(): return DateTime.now() def Today(): # For backwards compatibility: "Today()" may be used in templates return Now().replace(hour=0, minute=0, second=0, microsecond=0) def Tomorrow(): return Now() + timedelta.ONE_DAY def Yesterday(): return Now() - timedelta.ONE_DAY def LastDayOfCurrentMonth(localtime=time.localtime): now = localtime() year, nextMonth = now[0], now[1]+1 if nextMonth > 12: nextMonth = 1 year += 1 return DateTime(year, nextMonth, 1) - timedelta.ONE_DAY taskcoach-1.4.3/taskcoachlib/domain/date/fix.py000066400000000000000000000022321265347643000214430ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2014 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system import re class StrftimeFix(object): """Mixin class to fix strftime() so that it works with years < 1900""" def strftime(self, *args): if self.year >= 1900: return operating_system.decodeSystemString(super(StrftimeFix, self).strftime(*args)) result = self.replace(year=self.year + 1900).strftime(*args) return re.sub(str(self.year + 1900), str(self.year), result) taskcoach-1.4.3/taskcoachlib/domain/date/recurrence.py000066400000000000000000000142421265347643000230160ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import calendar import timedelta import dateandtime as date class Recurrence(object): ''' Class representing a recurring date. ''' units = ('daily', 'weekly', 'monthly', 'yearly', '') def __init__(self, unit='', amount=1, sameWeekday=False, maximum=0, count=0, stop_datetime=None, recurBasedOnCompletion=False): assert unit in self.units assert amount >= 1 self.unit = unit self.amount = amount self.stop_datetime = stop_datetime or date.DateTime() self.sameWeekday = sameWeekday # Maximum number of recurrences we give out, 0 == infinite: self.max = maximum self.count = count # Actual number of recurrences given out so far self.recurBasedOnCompletion = recurBasedOnCompletion def __call__(self, *dateTimes, **kwargs): result = [self._nextDateTime(dateTime) for dateTime in dateTimes] if kwargs.get('next', True): # By default we expect our clients to call us once, but we allow # the client to tell us to expect more calls self.count += 1 if self.__finished_recurring(): self.unit = '' # We're done with recurring return if len(result) > 1: return tuple(result) elif len(result) == 1: return result[0] else: return def __finished_recurring(self): ''' Return whether this recurrence is finished, either because the maximum number of recurrences has happened or because the end date for the reccurences has passed. ''' return self.max != 0 and self.count >= self.max or \ date.Now() > self.stop_datetime def _nextDateTime(self, dateTime, amount=0): if date.DateTime() == dateTime or not self.unit: return dateTime amount = amount or self.amount if amount > 1: dateTime = self._nextDateTime(dateTime, amount - 1) if self.unit == 'yearly': return self._addYear(dateTime) elif self.unit == 'monthly': return self._addMonth(dateTime) else: return self._addDays(dateTime) def _addDays(self, dateTime): nrOfDays = dict(daily=1, weekly=7)[self.unit] return dateTime + timedelta.TimeDelta(days=nrOfDays) def _addMonth(self, dateTime): year, month, day = dateTime.year, dateTime.month, dateTime.day details = dateTime.hour, dateTime.minute, dateTime.second, dateTime.microsecond if month == 12: # If December, move to January next year year += 1 month = 1 else: month += 1 if self.sameWeekday: weekday = dateTime.weekday() weekNr = min(3, (day - 1) / 7) # In what week of the month falls aDate, allowable range 0-3 day = weekNr * 7 + 1 # The earliest possible day that is on the same weekday as aDate result = date.DateTime(year, month, day, *details) while result.weekday() != weekday: day += 1 result = date.DateTime(year, month, day, *details) return result else: while True: # Find a valid date in the next month try: return date.DateTime(year, month, day, *details) except ValueError: day -= 1 def _addYear(self, dateTime): if (calendar.isleap(dateTime.year) and dateTime.month <= 2 and dateTime.day <= 28) or \ (calendar.isleap(dateTime.year + 1) and dateTime.month >= 3): days = 366 else: days = 365 newDateTime = dateTime + timedelta.TimeDelta(days=days) if self.sameWeekday: # Find the nearest date in newDate's year that is on the right # weekday: weekday, year = dateTime.weekday(), newDateTime.year newEarlierDateTime = newLaterDateTime = newDateTime while newEarlierDateTime.weekday() != weekday: newEarlierDateTime = newEarlierDateTime - timedelta.ONE_DAY while newLaterDateTime.weekday() != weekday: newLaterDateTime = newLaterDateTime + timedelta.ONE_DAY if newEarlierDateTime.year != year: newDateTime = newLaterDateTime else: newDateTime = newEarlierDateTime return newDateTime def copy(self): return self.__class__(self.unit, self.amount, self.sameWeekday, self.max, stop_datetime=self.stop_datetime, recurBasedOnCompletion=self.recurBasedOnCompletion) def __eq__(self, other): try: return self.unit == other.unit and self.amount == other.amount and \ self.sameWeekday == other.sameWeekday and \ self.max == other.max and \ self.stop_datetime == other.stop_datetime and \ self.recurBasedOnCompletion == other.recurBasedOnCompletion except AttributeError: return False def __lt__(self, other): try: return self.units.index(self.unit) < self.units.index(other.unit) or \ (self.units.index(self.unit) == self.units.index(other.unit) and \ self.amount < other.amount) except AttributeError: return True def __nonzero__(self): return bool(self.unit) taskcoach-1.4.3/taskcoachlib/domain/date/scheduler.py000066400000000000000000000122031265347643000226320ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns import dateandtime, timedelta import logging import timedelta import weakref import bisect class ScheduledMethod(object): def __init__(self, method): self.__func = method.im_func self.__self = weakref.ref(method.im_self) def __eq__(self, other): return self.__func is other.__func and self.__self() is other.__self() def __hash__(self): return hash(self.__dict__['_ScheduledMethod__func']) def __call__(self, *args, **kwargs): obj = self.__self() if obj is None: Scheduler().unschedule(self) else: self.__func(obj, *args, **kwargs) class TwistedScheduler(object): """ A class to schedule jobs at specified date/time. Unlike apscheduler, this uses Twisted instead of threading, in order to avoid busy waits. """ def __init__(self): super(TwistedScheduler, self).__init__() self.__jobs = [] self.__nextCall = None self.__firing = False def __schedule(self, job, dateTime, interval): if self.__nextCall is not None: self.__nextCall.cancel() self.__nextCall = None bisect.insort_right(self.__jobs, (dateTime, job, interval)) if not self.__firing: self.__fire() def scheduleDate(self, job, dateTime): """ Schedules 'job' to be called at 'dateTime'. This assumes the caller is the main loop thread. """ self.__schedule(job, dateTime, None) def scheduleInterval(self, job, interval, startDateTime=None): self.__schedule(job, startDateTime or dateandtime.Now() + interval, interval) def unschedule(self, theJob): for idx, (ts, job, interval) in enumerate(self.__jobs): if job == theJob: del self.__jobs[idx] break def isScheduled(self, theJob): for ts, job, interval in self.__jobs: if job == theJob: return True return False def shutdown(self): if self.__nextCall is not None: self.__nextCall.cancel() self.__nextCall = None self.__jobs = [] def jobs(self): return [job for ts, job, interval in self.__jobs] def __fire(self): self.__firing = True try: while self.__jobs and self.__jobs[0][0] <= dateandtime.Now(): ts, job, interval = self.__jobs.pop(0) try: job() except: # Hum. import traceback traceback.print_exc() if interval is not None: self.__schedule(job, ts + interval, interval) finally: self.__firing = False if self.__jobs and self.__nextCall is None: dt = self.__jobs[0][0] - dateandtime.Now() nextDuration = int((dt.microseconds + (dt.seconds + dt.days * 24 * 3600) * 10**6) / 10**3) nextDuration = max(nextDuration, 1) nextDuration = min(nextDuration, 2**31-1) from twisted.internet import reactor self.__nextCall = reactor.callLater(1.0 * nextDuration / 1000, self.__callback) def __callback(self): self.__nextCall = None self.__fire() class Scheduler(object): __metaclass__ = patterns.Singleton def __init__(self, *args, **kwargs): super(Scheduler, self).__init__(*args, **kwargs) self.__scheduler = TwistedScheduler() def shutdown(self): self.__scheduler.shutdown() def schedule(self, function, dateTime): job = ScheduledMethod(function) self.__scheduler.scheduleDate(job, dateTime) return job def schedule_interval(self, function, days=0, minutes=0, seconds=0): job = ScheduledMethod(function) if not self.__scheduler.isScheduled(job): startDate = dateandtime.Now().endOfDay() if days > 0 else None self.__scheduler.scheduleInterval(job, timedelta.TimeDelta(days=days, minutes=minutes, seconds=seconds), startDateTime=startDate) return job def unschedule(self, function): job = function if isinstance(function, ScheduledMethod) else ScheduledMethod(function) self.__scheduler.unschedule(job) def is_scheduled(self, function): return self.__scheduler.isScheduled(ScheduledMethod(function)) def get_jobs(self): return self.__scheduler.jobs() taskcoach-1.4.3/taskcoachlib/domain/date/snooze.py000066400000000000000000000025711265347643000222000ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.i18n import _ snoozeChoices = [(0, _("Don't snooze")), (5, _('5 minutes')), (10, _('10 minutes')), (15, _('15 minutes')), (20, _('20 minutes')), (30, _('30 minutes')), (45, _('45 minutes')), (60, _('1 hour')), (90, _('1.5 hour')), (120, _('2 hours')), (3*60, _('3 hours')), (4*60, _('4 hours')), (6*60, _('6 hours')), (8*60, _('8 hours')), (12*60, _('12 hours')), (18*60, _('18 hours')), (24*60, _('24 hours')), (48*60, _('48 hours')), (72*60, _('72 hours')), (7*24*60, _('1 week')), (2*7*24*60, _('2 weeks'))] taskcoach-1.4.3/taskcoachlib/domain/date/timeclass.py000066400000000000000000000014221265347643000226410ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import datetime class Time(datetime.time): pass taskcoach-1.4.3/taskcoachlib/domain/date/timedelta.py000066400000000000000000000102071265347643000226260ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import datetime, math class TimeDelta(datetime.timedelta): millisecondsPerSecond = 1000 millisecondsPerDay = 24 * 60 * 60 * millisecondsPerSecond millisecondsPerMicroSecond = 1/1000. def hoursMinutesSeconds(self): ''' Return a tuple (hours, minutes, seconds). Note that the caller is responsible for checking whether the TimeDelta instance is positive or negative. ''' if self < TimeDelta(): seconds = 3600*24 - self.seconds days = abs(self.days) - 1 else: seconds = self.seconds days = self.days hours, seconds = seconds/3600, seconds%3600 minutes, seconds = seconds/60, seconds%60 hours += days*24 return hours, minutes, seconds def sign(self): return -1 if self < TimeDelta() else 1 def hours(self): ''' Timedelta expressed in number of hours. ''' hours, minutes, seconds = self.hoursMinutesSeconds() return self.sign() * (hours + (minutes / 60.) + (seconds / 3600.)) def minutes(self): ''' Timedelta expressed in number of minutes. ''' hours, minutes, seconds = self.hoursMinutesSeconds() return self.sign() * (hours * 60 + minutes + (seconds / 60.)) def totalSeconds(self): ''' Timedelta expressed in number of seconds. ''' hours, minutes, seconds = self.hoursMinutesSeconds() return self.sign() * (hours * 3600 + minutes * 60 + seconds) def milliseconds(self): ''' Timedelta expressed in number of milliseconds. ''' # No need to use self.sign() since self.days is negative for negative values return int(round((self.days * self.millisecondsPerDay) + \ (self.seconds * self.millisecondsPerSecond) + \ (self.microseconds * self.millisecondsPerMicroSecond))) def round(self, hours=0, minutes=0, seconds=0, alwaysUp=False): ''' Round the timedelta to the nearest x units. ''' assert [hours, minutes, seconds].count(0) >= 2 roundingUnit = hours * 3600 + minutes * 60 + seconds if roundingUnit: round_ = math.ceil if alwaysUp else round roundedSeconds = round_(self.totalSeconds() / float(roundingUnit)) * roundingUnit return self.__class__(0, roundedSeconds) else: return self def __add__(self, other): ''' Make sure we return a TimeDelta instance and not a datetime.timedelta instance ''' timeDelta = super(TimeDelta, self).__add__(other) return self.__class__(timeDelta.days, timeDelta.seconds, timeDelta.microseconds) def __sub__(self, other): timeDelta = super(TimeDelta, self).__sub__(other) return self.__class__(timeDelta.days, timeDelta.seconds, timeDelta.microseconds) ONE_SECOND = TimeDelta(seconds=1) ONE_MINUTE = TimeDelta(minutes=1) ONE_HOUR = TimeDelta(hours=1) TWO_HOURS = TimeDelta(hours=2) ONE_DAY = TimeDelta(days=1) ONE_WEEK = TimeDelta(days=7) ONE_YEAR = TimeDelta(days=365) def parseTimeDelta(string): try: hours, minutes, seconds = [int(x) for x in string.split(':')] except ValueError: hours, minutes, seconds = 0, 0, 0 return TimeDelta(hours=hours, minutes=minutes, seconds=seconds) taskcoach-1.4.3/taskcoachlib/domain/effort/000077500000000000000000000000001265347643000206545ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/effort/__init__.py000066400000000000000000000017051265347643000227700ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from effort import Effort from composite import CompositeEffort, CompositeEffortPerPeriod, BaseCompositeEffort from effortlist import EffortList, EffortListTracker from sorter import EffortSorter from reducer import EffortAggregator taskcoach-1.4.3/taskcoachlib/domain/effort/base.py000066400000000000000000000057551265347643000221540ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' from taskcoachlib.thirdparty.pubsub import pub import weakref class BaseEffort(object): def __init__(self, task, start, stop, *args, **kwargs): self._task = None if task is None else weakref.ref(task) self._start = start self._stop = stop super(BaseEffort, self).__init__(*args, **kwargs) def task(self): return None if self._task is None else self._task() def parent(self): # Efforts don't have real parents since they are not composite. # However, we pretend the parent of an effort is its task for the # benefit of the search filter. return self.task() def getStart(self): return self._start def getStop(self): return self._stop def subject(self, *args, **kwargs): return self.task().subject(*args, **kwargs) def categories(self, *args, **kwargs): return self.task().categories(*args, **kwargs) def foregroundColor(self, recursive=False): return self.task().foregroundColor(recursive) def backgroundColor(self, recursive=False): return self.task().backgroundColor(recursive) def font(self, recursive=False): return self.task().font(recursive) def duration(self, recursive=False): raise NotImplementedError # pragma: no cover def revenue(self, recursive=False): raise NotImplementedError # pragma: no cover def isTotal(self): return False # Are we a detail effort or a total effort? For sorting. @classmethod def trackingChangedEventType(class_): return 'pubsub.effort.track' def sendDurationChangedMessage(self): pub.sendMessage(self.durationChangedEventType(), newValue=self.duration(), sender=self) @classmethod def durationChangedEventType(class_): return 'pubsub.effort.duration' def sendRevenueChangedMessage(self): pub.sendMessage(self.revenueChangedEventType(), newValue=self.revenue(), sender=self) @classmethod def revenueChangedEventType(class_): return 'pubsub.effort.revenue' taskcoach-1.4.3/taskcoachlib/domain/effort/composite.py000066400000000000000000000245721265347643000232420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import render from taskcoachlib.domain import date from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub import base class BaseCompositeEffort(base.BaseEffort): # pylint: disable=W0223 def parent(self): # Composite efforts don't have a parent. return None def _inPeriod(self, effort): return self.getStart() <= effort.getStart() <= self.getStop() def mayContain(self, effort): ''' Return whether effort would be contained in this composite effort if it existed. ''' return self._inPeriod(effort) def __contains__(self, effort): return effort in self._getEfforts() def __getitem__(self, index): return self._getEfforts()[index] def __len__(self): return len(self._getEfforts()) def _getEfforts(self): raise NotImplementedError def markDirty(self): pass # CompositeEfforts cannot be dirty def __doRound(self, duration, rounding, roundUp): if rounding: return duration.round(seconds=rounding, alwaysUp=roundUp) return duration def duration(self, recursive=False, rounding=0, roundUp=False): return sum((self.__doRound(effort.duration(), rounding, roundUp) for effort in \ self._getEfforts(recursive)), date.TimeDelta()) def isBeingTracked(self, recursive=False): # pylint: disable=W0613 return any(effort.isBeingTracked() for effort in self._getEfforts()) def durationDay(self, dayOffset, rounding=0, roundUp=False): ''' Return the duration of this composite effort on a specific day. ''' startOfDay = self.getStart() + date.TimeDelta(days=dayOffset) endOfDay = self.getStart() + date.TimeDelta(days=dayOffset + 1) return sum((self.__doRound(effort.duration(), rounding, roundUp) for effort in \ self._getEfforts(recursive=False) \ if startOfDay <= effort.getStart() <= endOfDay), date.TimeDelta()) def notifyObserversOfDurationOrEmpty(self): if self._getEfforts(): self.sendDurationChangedMessage() else: pub.sendMessage(self.compositeEmptyEventType(), sender=self) @classmethod def compositeEmptyEventType(class_): return 'pubsub.effort.composite.empty' @classmethod def modificationEventTypes(class_): return [] # A composite effort cannot be 'dirty' since its contents # are determined by the contained efforts. def onTimeSpentChanged(self, newValue, sender): # pylint: disable=W0613 if self._refreshCache(): # Only need to notify if our time spent actually changed self.notifyObserversOfDurationOrEmpty() def onRevenueChanged(self, newValue, sender): # pylint: disable=W0613 self.sendRevenueChangedMessage() def revenue(self, recursive=False): raise NotImplementedError # pragma: no cover def _invalidateCache(self): ''' Empty the cache so that it will be filled when accessed. ''' raise NotImplementedError # pragma: no cover def _refreshCache(self): ''' Refresh the cache right away and return whether the cache was actually changed. ''' raise NotImplementedError # pragma: no cover class CompositeEffort(BaseCompositeEffort): ''' CompositeEffort is a lazy list (but cached) of efforts for one task (and its children) and within a certain time period. The task, start of time period and end of time period need to be provided when initializing the CompositeEffort and cannot be changed afterwards. ''' def __init__(self, task, start, stop): # pylint: disable=W0621 super(CompositeEffort, self).__init__(task, start, stop) self.__hash_value = hash((task, start)) # Effort cache: {True: [efforts recursively], False: [efforts]} self.__effort_cache = dict() ''' FIMXE! CompositeEffort does not derive from base.Object patterns.Publisher().registerObserver(self.onAppearanceChanged, eventType=task.appearanceChangedEventType(), eventSource=task) ''' def __hash__(self): return self.__hash_value def __repr__(self): return 'CompositeEffort(task=%s, start=%s, stop=%s, efforts=%s)' % \ (self.task(), self.getStart(), self.getStop(), str([e for e in self._getEfforts()])) def addEffort(self, anEffort): assert self._inPeriod(anEffort) self.__effort_cache.setdefault(True, set()).add(anEffort) if anEffort.task() == self.task(): self.__effort_cache.setdefault(False, set()).add(anEffort) def revenue(self, recursive=False): return sum(effort.revenue() for effort in self._getEfforts(recursive)) def _invalidateCache(self): self.__effort_cache = dict() def _refreshCache(self, recursive=None): recursive_values = (False, True) if recursive is None else (recursive,) previous_cache = self.__effort_cache.copy() cache_changed = False for recursive in recursive_values: cache = self.__effort_cache[recursive] = \ set([effort for effort in \ self.task().efforts(recursive=recursive) if \ self._inPeriod(effort)]) if cache != previous_cache.get(recursive, set()): cache_changed = True return cache_changed def _getEfforts(self, recursive=True): # pylint: disable=W0221 if recursive not in self.__effort_cache: self._refreshCache(recursive=recursive) return list(self.__effort_cache[recursive]) def mayContain(self, effort): ''' Return whether effort would be contained in this composite effort if it existed. ''' return effort.task() == self.task() and \ super(CompositeEffort, self).mayContain(effort) def description(self): if len(set(effort.description() for effort in self._getEfforts(False))) == 1: return self._getEfforts(False)[0].description() effortDescriptions = [effort.description() for effort in \ sorted(self._getEfforts(False), key=lambda effort: effort.getStart()) if effort.description()] return '\n'.join(effortDescriptions) def onAppearanceChanged(self, event): return # FIXME: CompositeEffort does not derive from base.Object #patterns.Event(self.appearanceChangedEventType(), self, event.value()).send() class CompositeEffortPerPeriod(BaseCompositeEffort): class Total(object): # pylint: disable=W0613 def subject(self, *args, **kwargs): return _('Total') def foregroundColor(self, *args, **kwargs): return None def backgroundColor(self, *args, **kwargs): return None def font(self, *args, **kwargs): return None total = Total() def __init__(self, start, stop, taskList, initialEffort=None): self.taskList = taskList super(CompositeEffortPerPeriod, self).__init__(None, start, stop) if initialEffort: assert self._inPeriod(initialEffort) self.__effort_cache = [initialEffort] else: self._invalidateCache() def addEffort(self, anEffort): assert self._inPeriod(anEffort) if anEffort not in self.__effort_cache: self.__effort_cache.append(anEffort) @classmethod def task(cls): return cls.total def isTotal(self): return True def description(self, *args, **kwargs): # pylint: disable=W0613 return _('Total for %s') % render.dateTimePeriod(self.getStart(), self.getStop()) def revenue(self, recursive=False): # pylint: disable=W0613 return sum(effort.revenue() for effort in self._getEfforts()) def categories(self, *args, **kwargs): return [] def tasks(self): ''' Return the tasks that have effort in this period. ''' return set([effort.task() for effort in self._getEfforts()]) def __repr__(self): return 'CompositeEffortPerPeriod(start=%s, stop=%s, efforts=%s)' % \ (self.getStart(), self.getStop(), str([e for e in self._getEfforts()])) # Cache handling: def _getEfforts(self, recursive=False): # pylint: disable=W0613,W0221 if self.__effort_cache is None: self._refreshCache() return self.__effort_cache def _invalidateCache(self): self.__effort_cache = None def _refreshCache(self): previous_cache = [] if self.__effort_cache is None else self.__effort_cache[:] self.__effort_cache = [] self.__add_task_effort_to_cache(self.taskList) return previous_cache != self.__effort_cache def __add_task_effort_to_cache(self, tasks): ''' Add the effort of the tasks to the cache. ''' for task in tasks: effort_in_period = [effort for effort in task.efforts() if \ self._inPeriod(effort)] self.__effort_cache.extend(effort_in_period) taskcoach-1.4.3/taskcoachlib/domain/effort/effort.py000066400000000000000000000143071265347643000225200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import date, base, task from taskcoachlib.thirdparty.pubsub import pub import base as baseeffort import weakref class Effort(baseeffort.BaseEffort, base.Object): def __init__(self, task=None, start=None, stop=None, *args, **kwargs): super(Effort, self).__init__(task, start or date.DateTime.now(), stop, *args, **kwargs) self.__updateDurationCache() def setTask(self, task): if self._task is None: # We haven't been fully initialised yet, so allow setting of the # task, without notifying observers. Also, don't call addEffort() # on the new task, because we assume setTask was invoked by the # new task itself. self._task = None if task is None else weakref.ref(task) return if task in (self.task(), None): # command.PasteCommand may try to set the parent to None return event = patterns.Event() # Change monitor needs one event to detect task change self._task().removeEffort(self) self._task = weakref.ref(task) self._task().addEffort(self) event.send() pub.sendMessage(self.taskChangedEventType(), newValue=task, sender=self) setParent = setTask # FIXME: should we create a common superclass for Effort and Task? @classmethod def monitoredAttributes(class_): return base.Object.monitoredAttributes() + ['start', 'stop'] def task(self): return None if self._task is None else self._task() @classmethod def taskChangedEventType(class_): return 'pubsub.effort.task' def __str__(self): return 'Effort(%s, %s, %s)' % (self.task(), self._start, self._stop) __repr__ = __str__ def __getstate__(self): state = super(Effort, self).__getstate__() state.update(dict(task=self.task(), start=self._start, stop=self._stop)) return state @patterns.eventSource def __setstate__(self, state, event=None): super(Effort, self).__setstate__(state, event=event) self.setTask(state['task']) self.setStart(state['start']) self.setStop(state['stop']) def __getcopystate__(self): state = super(Effort, self).__getcopystate__() state.update(dict(task=self.task(), start=self._start, stop=self._stop)) return state def duration(self, now=date.DateTime.now): return now() - self._start if self.__cachedDuration is None else self.__cachedDuration def setStart(self, startDateTime): if startDateTime == self._start: return self._start = startDateTime self.__updateDurationCache() pub.sendMessage(self.startChangedEventType(), newValue=startDateTime, sender=self) self.task().sendTimeSpentChangedMessage() self.sendDurationChangedMessage() if self.task().hourlyFee(): self.sendRevenueChangedMessage() @classmethod def startChangedEventType(class_): return 'pubsub.effort.start' def setStop(self, newStop=None): if newStop is None: newStop = date.DateTime.now() elif newStop == date.DateTime.max: newStop = None if newStop == self._stop: return previousStop = self._stop self._stop = newStop self.__updateDurationCache() if newStop == None: pub.sendMessage(self.trackingChangedEventType(), newValue=True, sender=self) self.task().sendTrackingChangedMessage(tracking=True) elif previousStop == None: pub.sendMessage(self.trackingChangedEventType(), newValue=False, sender=self) self.task().sendTrackingChangedMessage(tracking=False) self.task().sendTimeSpentChangedMessage() pub.sendMessage(self.stopChangedEventType(), newValue=self._stop, sender=self) self.sendDurationChangedMessage() if self.task().hourlyFee(): self.sendRevenueChangedMessage() @classmethod def stopChangedEventType(class_): return 'pubsub.effort.stop' def __updateDurationCache(self): self.__cachedDuration = self._stop - self._start if self._stop else None def isBeingTracked(self, recursive=False): # pylint: disable=W0613 return self._stop is None def revenue(self): return self.duration().hours() * self.task().hourlyFee() @staticmethod def periodSortFunction(**kwargs): # Sort by start of effort first, then make sure the Total entry comes # first and finally sort by task subject: return lambda effort: (effort.getStart(), effort.isTotal(), effort.task().subject(recursive=True)) @classmethod def periodSortEventTypes(class_): ''' The event types that influence the effort sort order. ''' return (class_.startChangedEventType(), class_.taskChangedEventType(), task.Task.subjectChangedEventType()) @classmethod def modificationEventTypes(class_): eventTypes = super(Effort, class_).modificationEventTypes() return eventTypes + [class_.taskChangedEventType(), class_.startChangedEventType(), class_.stopChangedEventType()] taskcoach-1.4.3/taskcoachlib/domain/effort/effortlist.py000066400000000000000000000177661265347643000234300ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.i18n import _ from taskcoachlib import help from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.thirdparty.pubsub.core import Publisher from taskcoachlib.domain import task from . import effort class MaxDateTimeMixin(object): def maxDateTime(self): stopTimes = [effort.getStop() for effort in self if effort.getStop() is not None] return max(stopTimes) if stopTimes else None class EffortUICommandNamesMixin(object): newItemMenuText = _('&New effort...\tCtrl+E') newItemHelpText = help.effortNew class EffortList(patterns.SetDecorator, MaxDateTimeMixin, EffortUICommandNamesMixin): ''' EffortList observes a TaskList and contains all effort records of all tasks in the underlying TaskList. ''' def __init__(self, *args, **kwargs): super(EffortList, self).__init__(*args, **kwargs) pub.subscribe(self.onAddEffortToOrRemoveEffortFromTask, task.Task.effortsChangedEventType()) def extendSelf(self, tasks, event=None): ''' This method is called when a task is added to the observed list. It overrides ObservableListObserver.extendSelf whose default behaviour is to add the item that is added to the observed list to the observing list (this list) unchanged. But we want to add the efforts of the tasks, rather than the tasks themselves. ''' effortsToAdd = [] for task in tasks: effortsToAdd.extend(task.efforts()) super(EffortList, self).extendSelf(effortsToAdd, event) for effort in effortsToAdd: if effort.getStop() is None: pub.sendMessage(effort.trackingChangedEventType(), newValue=True, sender=effort) def removeItemsFromSelf(self, tasks, event=None): ''' This method is called when a task is removed from the observed list. It overrides ObservableListObserver.removeItemsFromSelf whose default behaviour is to remove the item that was removed from the observed list from the observing list (this list) unchanged. But we want to remove the efforts of the tasks, rather than the tasks themselves. ''' effortsToRemove = [] for task in tasks: effortsToRemove.extend(task.efforts()) for effort in effortsToRemove: if effort.getStop() is None: pub.sendMessage(effort.trackingChangedEventType(), newValue=False, sender=effort) super(EffortList, self).removeItemsFromSelf(effortsToRemove, event) def onAddEffortToOrRemoveEffortFromTask(self, newValue, sender): if sender not in self.observable(): return newValue, oldValue = newValue effortsToAdd = [effort for effort in newValue if not effort in oldValue] effortsToRemove = [effort for effort in oldValue if not effort in newValue] super(EffortList, self).extendSelf(effortsToAdd) super(EffortList, self).removeItemsFromSelf(effortsToRemove) for effort in effortsToAdd + effortsToRemove: if effort.getStop() is None: pub.sendMessage(effort.trackingChangedEventType(), newValue=effort in effortsToAdd, sender=effort) def originalLength(self): ''' Do not delegate originalLength to the underlying TaskList because that would return a number of tasks, and not the number of effort records.''' return len(self) def removeItems(self, efforts): # pylint: disable=W0221 ''' We override ObservableListObserver.removeItems because the default implementation is to remove the arguments from the original list, which in this case would mean removing efforts from a task list. Since that wouldn't work we remove the efforts from the tasks by hand. ''' for effort in efforts: effort.task().removeEffort(effort) def extend(self, efforts): # pylint: disable=W0221 ''' We override ObservableListObserver.extend because the default implementation is to add the arguments to the original list, which in this case would mean adding efforts to a task list. Since that wouldn't work we add the efforts to the tasks by hand. ''' for effort in efforts: effort.task().addEffort(effort) @classmethod def sortEventType(class_): return 'this event type is not used' class EffortListTracker(patterns.Observer, Publisher): ''' EffortListTracker observes an EffortList and keeps track of currently tracked efforts. ''' def __init__(self, effortList, includeComposites=False): '''@param effortList: The effort list to observe. @param includeComposites: if False, composite efforts will be ignored.''' super(EffortListTracker, self).__init__() Publisher.__init__(self) self.__effortList = effortList self.__includeComposites = includeComposites # __trackedEfforts is a list and not a set because when an effort is # moved from one task to another task we might get the event that the # effort is (re)added to the effortList before the event that the effort # was removed from the effortList. If we would use a set, the effort # would be missing from the set after the removal event. self.__trackedEfforts = self.__filterTrackedEfforts(self.__effortList) self.registerObserver(self.onEffortAdded, eventType=self.__effortList.addItemEventType(), eventSource=self.__effortList) self.registerObserver(self.onEffortRemoved, eventType=self.__effortList.removeItemEventType(), eventSource=self.__effortList) pub.subscribe(self.onTrackingChanged, effort.Effort.trackingChangedEventType()) def trackedEfforts(self): return self.__trackedEfforts def onEffortAdded(self, event): self.__trackedEfforts.extend(self.__filterTrackedEfforts(event.values())) self.sendMessage('effortlisttracker.changed.added', efforts=self.__trackedEfforts) def onEffortRemoved(self, event): for effort in event.values(): if effort in self.__trackedEfforts: self.__trackedEfforts.remove(effort) self.sendMessage('effortlisttracker.changed.removed', efforts=self.__trackedEfforts) def onTrackingChanged(self, newValue, sender): if sender.parent() is None and not self.__includeComposites: return if sender not in self.__effortList: return if newValue: if sender not in self.__trackedEfforts: self.__trackedEfforts.extend([sender]) else: if sender in self.__trackedEfforts: self.__trackedEfforts.remove(sender) self.sendMessage('effortlisttracker.changed', efforts=self.__trackedEfforts) @staticmethod def __filterTrackedEfforts(efforts): return [effort for effort in efforts if effort.isBeingTracked()] taskcoach-1.4.3/taskcoachlib/domain/effort/reducer.py000066400000000000000000000316651265347643000226720ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import date, task from taskcoachlib.thirdparty.pubsub import pub import composite import effortlist import effort class EffortAggregator(patterns.SetDecorator, effortlist.EffortUICommandNamesMixin): ''' This class observes an TaskList and aggregates the individual effort records to CompositeEfforts, e.g. per day or per week. Whenever a CompositeEffort becomes empty, for example because effort is deleted, it sends an 'empty' event so that the aggregator can remove the (now empty) CompositeEffort from itself. ''' def __init__(self, *args, **kwargs): self.__composites = {} self.__trackedComposites = set() aggregation = kwargs.pop('aggregation') assert aggregation in ('day', 'week', 'month') aggregation = aggregation.capitalize() self.__start_of_period = getattr(date.DateTime, 'startOf%s' % aggregation) self.__end_of_period = getattr(date.DateTime, 'endOf%s' % aggregation) super(EffortAggregator, self).__init__(*args, **kwargs) pub.subscribe(self.onCompositeEmpty, composite.CompositeEffort.compositeEmptyEventType()) pub.subscribe(self.onTaskEffortChanged, task.Task.effortsChangedEventType()) patterns.Publisher().registerObserver(self.onChildAddedToTask, eventType=task.Task.addChildEventType()) patterns.Publisher().registerObserver(self.onChildRemovedFromTask, eventType=task.Task.removeChildEventType()) patterns.Publisher().registerObserver(self.onTaskRemoved, self.observable().removeItemEventType(), eventSource=self.observable()) pub.subscribe(self.onEffortStartChanged, effort.Effort.startChangedEventType()) pub.subscribe(self.onRevenueChanged, task.Task.hourlyFeeChangedEventType()) def detach(self): super(EffortAggregator, self).detach() patterns.Publisher().removeObserver(self.onChildAddedToTask) patterns.Publisher().removeObserver(self.onChildRemovedFromTask) patterns.Publisher().removeObserver(self.onTaskRemoved) def extend(self, efforts): # pylint: disable=W0221 for effort in efforts: effort.task().addEffort(effort) def removeItems(self, efforts): # pylint: disable=W0221 for effort in efforts: effort.task().removeEffort(effort) @patterns.eventSource def extendSelf(self, tasks, event=None): ''' extendSelf is called when an item is added to the observed list. The default behavior of extendSelf is to add the item to the observing list (i.e. this list) unchanged. We override the default behavior to first get the efforts from the task and then group the efforts by time period. ''' new_composites = [] for task in tasks: # pylint: disable=W0621 new_composites.extend(self.__create_composites(task, task.efforts())) self.__extend_self_with_composites(new_composites, event=event) @patterns.eventSource def __extend_self_with_composites(self, new_composites, event=None): ''' Add composites to the aggregator. ''' super(EffortAggregator, self).extendSelf(new_composites, event=event) for new_composite in new_composites: if new_composite.isBeingTracked(): self.__trackedComposites.add(new_composite) pub.sendMessage(effort.Effort.trackingChangedEventType(), newValue=True, sender=new_composite) @patterns.eventSource def removeItemsFromSelf(self, tasks, event=None): ''' removeItemsFromSelf is called when an item is removed from the observed list. The default behavior of removeItemsFromSelf is to remove the item from the observing list (i.e. this list) unchanged. We override the default behavior to remove the tasks' efforts from the CompositeEfforts they are part of. ''' composites_to_remove = [] for task in tasks: # pylint: disable=W0621 composites_to_remove.extend(self.__composites_to_remove(task)) self.__remove_composites_from_self(composites_to_remove, event=event) @patterns.eventSource def __remove_composites_from_self(self, composites_to_remove, event=None): ''' Remove composites from the aggregator. ''' self.__trackedComposites.difference_update(set(composites_to_remove)) super(EffortAggregator, self).removeItemsFromSelf(composites_to_remove, event=event) def onTaskRemoved(self, event): ''' Whenever tasks are removed, find the composites that (did) contain effort of those tasks and update them. ''' affected_composites = self.__get_composites_for_tasks(event.values()) for affected_composite in affected_composites: affected_composite._invalidateCache() affected_composite.notifyObserversOfDurationOrEmpty() def onTaskEffortChanged(self, newValue, sender): if sender not in self.observable(): return new_composites = [] newValue, oldValue = newValue efforts_added = [effort for effort in newValue if effort not in oldValue] efforts_removed = [effort for effort in oldValue if effort not in newValue] new_composites.extend(self.__create_composites(sender, efforts_added)) self.__extend_self_with_composites(new_composites) for affected_composite in self.__get_composites_for_efforts(efforts_added + efforts_removed): is_tracked = affected_composite.isBeingTracked() was_tracked = affected_composite in self.__trackedComposites if is_tracked and not was_tracked: self.__trackedComposites.add(affected_composite) elif not is_tracked and was_tracked: self.__trackedComposites.remove(affected_composite) affected_composite.onTimeSpentChanged(newValue, sender) def onChildAddedToTask(self, event): new_composites = [] for task in event.sources(): # pylint: disable=W0621 if task in self.observable(): child = event.value(task) new_composites.extend(self.__create_composites(task, child.efforts(recursive=True))) self.__extend_self_with_composites(new_composites) def onChildRemovedFromTask(self, event): affected_composites = self.__get_composites_for_tasks(event.sources() | set(event.values())) for affected_composite in affected_composites: affected_composite._invalidateCache() affected_composite.notifyObserversOfDurationOrEmpty() def onCompositeEmpty(self, sender): # pylint: disable=W0621 if sender not in self: return key = self.__key_for_composite(sender) if key in self.__composites: # A composite may already have been removed, e.g. when a # parent and child task have effort in the same period del self.__composites[key] self.__remove_composites_from_self([sender]) def onEffortStartChanged(self, newValue, sender): # pylint: disable=W0613 new_composites = [] key = self.__key_for_effort(sender) task = sender.task() # pylint: disable=W0621 if (task in self.observable()) and (key not in self.__composites): new_composites.extend(self.__create_composites(task, [sender])) self.__extend_self_with_composites(new_composites) for affected_composite in self.__get_composites_for_efforts([sender]): is_tracked = affected_composite.isBeingTracked() was_tracked = affected_composite in self.__trackedComposites if is_tracked and not was_tracked: self.__trackedComposites.add(affected_composite) elif not is_tracked and was_tracked: self.__trackedComposites.remove(affected_composite) affected_composite.onTimeSpentChanged(newValue, sender) def onRevenueChanged(self, newValue, sender): for affected_composite in self.__get_composites_for_tasks([sender]): affected_composite.onRevenueChanged(newValue, sender) def __get_composites_for_tasks(self, tasks): tasks = set(tasks) return [each_composite for each_composite in self \ if each_composite.task() in tasks or \ (each_composite.task().__class__.__name__ == 'Total' and \ tasks & each_composite.tasks())] def __get_composites_for_efforts(self, efforts): efforts = set(efforts) return [each_composite for each_composite in self \ if set(each_composite._getEfforts()) & efforts] def __create_composites(self, task, efforts): # pylint: disable=W0621 new_composites = [] for effort in efforts: new_composites.extend(self.__create_composites_for_task(effort, task)) new_composites.extend(self.__create_composite_for_period(effort)) return new_composites def __create_composites_for_task(self, an_effort, task): # pylint: disable=W0621 new_composites = [] for each_task in [task] + task.ancestors(): key = self.__key_for_effort(an_effort, each_task) if key in self.__composites: self.__composites[key].addEffort(an_effort) continue new_composite = composite.CompositeEffort(*key) # pylint: disable=W0142 new_composite.addEffort(an_effort) self.__composites[key] = new_composite new_composites.append(new_composite) return new_composites def __create_composite_for_period(self, an_effort): key = self.__key_for_period(an_effort) if key in self.__composites: self.__composites[key].addEffort(an_effort) return [] new_composite_per_period = composite.CompositeEffortPerPeriod(key[0], key[1], self.observable(), an_effort) self.__composites[key] = new_composite_per_period return [new_composite_per_period] def __composites_to_remove(self, task): # pylint: disable=W0621 efforts = task.efforts() task_and_ancestors = [task] + task.ancestors() composites_to_remove = [] for effort in efforts: for task in task_and_ancestors: composites_to_remove.extend(self.__composite_to_remove(effort, task)) return composites_to_remove def __composite_to_remove(self, an_effort, task): # pylint: disable=W0613,W0621 key = self.__key_for_effort(an_effort, task) # A composite may already have been removed, e.g. when a # parent and child task have effort in the same period return [self.__composites.pop(key)] if key in self.__composites else [] def maxDateTime(self): stop_times = [effort.getStop() for composite_effort in self for effort in composite_effort if effort.getStop() is not None] return max(stop_times) if stop_times else None @staticmethod def __key_for_composite(composite_effort): if composite_effort.task().__class__.__name__ == 'Total': return (composite_effort.getStart(), composite_effort.getStop()) else: return (composite_effort.task(), composite_effort.getStart(), composite_effort.getStop()) def __key_for_effort(self, effort, task=None): # pylint: disable=W0621 task = task or effort.task() effort_start = effort.getStart() return (task, self.__start_of_period(effort_start), self.__end_of_period(effort_start)) def __key_for_period(self, effort): key = self.__key_for_effort(effort) return key[1], key[2] @classmethod def sortEventType(class_): return 'this event type is not used' # pragma: no cover taskcoach-1.4.3/taskcoachlib/domain/effort/sorter.py000066400000000000000000000017441265347643000225520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base import effort class EffortSorter(base.Sorter): DomainObjectClass = effort.Effort def __init__(self, *args, **kwargs): kwargs['sortBy'] = ['-period'] super(EffortSorter, self).__init__(*args, **kwargs) taskcoach-1.4.3/taskcoachlib/domain/note/000077500000000000000000000000001265347643000203345ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/note/__init__.py000066400000000000000000000015271265347643000224520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from note import Note from noteowner import NoteOwner from notecontainer import NoteContainer from sorter import NoteSorter taskcoach-1.4.3/taskcoachlib/domain/note/note.py000066400000000000000000000020761265347643000216600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import categorizable from taskcoachlib.domain import attachment class Note(attachment.AttachmentOwner, categorizable.CategorizableCompositeObject): ''' This class represents notes. Notes consist of a subject, description, and attachments. In addition, a note may be assigned to categories. ''' pass taskcoach-1.4.3/taskcoachlib/domain/note/notecontainer.py000066400000000000000000000015171265347643000235620ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import categorizable class NoteContainer(categorizable.CategorizableContainer): pass taskcoach-1.4.3/taskcoachlib/domain/note/noteowner.py000066400000000000000000000016661265347643000227370ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base class NoteOwner(object): ''' Mixin class for (other) domain objects that may contain notes. ''' __metaclass__ = base.DomainObjectOwnerMetaclass __ownedType__ = 'Note' taskcoach-1.4.3/taskcoachlib/domain/note/sorter.py000066400000000000000000000015231265347643000222250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base import note class NoteSorter(base.TreeSorter): DomainObjectClass = note.Note taskcoach-1.4.3/taskcoachlib/domain/task/000077500000000000000000000000001265347643000203315ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/domain/task/__init__.py000066400000000000000000000015311265347643000224420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from task import Task from tasklist import TaskList from status import * import filter # pylint: disable=W0622 import sorter taskcoach-1.4.3/taskcoachlib/domain/task/filter.py000066400000000000000000000070751265347643000222010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import base, date from taskcoachlib.thirdparty.pubsub import pub import task import tasklist class ViewFilter(tasklist.TaskListQueryMixin, base.Filter): def __init__(self, *args, **kwargs): self.__statusesToHide = set(kwargs.pop('statusesToHide', [])) self.__hideCompositeTasks = kwargs.pop('hideCompositeTasks', False) self.registerObservers() super(ViewFilter, self).__init__(*args, **kwargs) def registerObservers(self): registerObserver = patterns.Publisher().registerObserver for eventType in (task.Task.plannedStartDateTimeChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.actualStartDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType(), task.Task.prerequisitesChangedEventType(), task.Task.appearanceChangedEventType(), # Proxy for status changes task.Task.addChildEventType(), task.Task.removeChildEventType()): if eventType.startswith('pubsub'): pub.subscribe(self.onTaskStatusChange, eventType) else: registerObserver(self.onTaskStatusChange_Deprecated, eventType=eventType) date.Scheduler().schedule_interval(self.atMidnight, days=1) def detach(self): super(ViewFilter, self).detach() patterns.Publisher().removeObserver(self.onTaskStatusChange_Deprecated) def atMidnight(self): ''' Whether tasks are included in the filter or not may change at midnight. ''' self.reset() def onTaskStatusChange(self, newValue, sender): # pylint: disable=W0613 self.reset() def onTaskStatusChange_Deprecated(self, event=None): # pylint: disable=W0613 self.reset() def hideTaskStatus(self, status, hide=True): if hide: self.__statusesToHide.add(status) else: self.__statusesToHide.discard(status) self.reset() def hideCompositeTasks(self, hide=True): self.__hideCompositeTasks = hide self.reset() def filterItems(self, tasks): return [task for task in tasks if self.filterTask(task)] # pylint: disable=W0621 def filterTask(self, task): # pylint: disable=W0621 result = True if task.status() in self.__statusesToHide: result = False elif self.__hideCompositeTasks and not self.treeMode() and task.children(): result = False # Hide composite task return result def hasFilter(self): return len(self.__statusesToHide) != 0 or (self.__hideCompositeTasks and not self.treeMode()) taskcoach-1.4.3/taskcoachlib/domain/task/sorter.py000066400000000000000000000071061265347643000222250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import base from taskcoachlib.thirdparty.pubsub import pub import task class Sorter(base.TreeSorter): DomainObjectClass = task.Task # What are we sorting TaskStatusAttributes = ('prerequisites', 'dueDateTime', 'plannedStartDateTime', 'actualStartDateTime', 'completionDateTime') def __init__(self, *args, **kwargs): self.__treeMode = kwargs.pop('treeMode', False) self.__sortByTaskStatusFirst = kwargs.pop('sortByTaskStatusFirst', True) super(Sorter, self).__init__(*args, **kwargs) for eventType in (task.Task.prerequisitesChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.plannedStartDateTimeChangedEventType(), task.Task.actualStartDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType()): pub.subscribe(self.onAttributeChanged, eventType) def setTreeMode(self, treeMode=True): self.__treeMode = treeMode try: self.observable().setTreeMode(treeMode) except AttributeError: pass self.reset(forceEvent=True) def treeMode(self): return self.__treeMode def sortByTaskStatusFirst(self, sortByTaskStatusFirst): self.__sortByTaskStatusFirst = sortByTaskStatusFirst # We don't need to invoke self.reset() here since when this property is # changed, the sort order also changes which in turn will cause # self.reset() to be called. def createSortKeyFunction(self, sortKey): statusSortKey = self.__createStatusSortKey() regularSortKey = super(Sorter, self).createSortKeyFunction(sortKey) return lambda task: statusSortKey(task) + [regularSortKey(task)] def __createStatusSortKey(self): if self.__sortByTaskStatusFirst: if self.isAscending(): return lambda task: [task.completed(), task.inactive()] else: return lambda task: [not task.completed(), not task.inactive()] else: return lambda task: [] def _registerObserverForAttribute(self, attribute): # Sorter is always observing task dates and prerequisites because # sorting by status depends on those attributes. Hence we don't need # to subscribe to these attributes when they become the sort key. if attribute not in self.TaskStatusAttributes: super(Sorter, self)._registerObserverForAttribute(attribute) def _removeObserverForAttribute(self, attribute): # See comment at _registerObserverForAttribute. if attribute not in self.TaskStatusAttributes: super(Sorter, self)._removeObserverForAttribute(attribute) taskcoach-1.4.3/taskcoachlib/domain/task/status.py000066400000000000000000000064341265347643000222350ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.i18n import _ from taskcoachlib.config import defaults class TaskStatus(object): def __init__(self, statusString, pluralLabel, countLabel, hideMenuText, hideHelpText): self.statusString = statusString self.pluralLabel = pluralLabel self.countLabel = countLabel self.hideMenuText = hideMenuText self.hideHelpText = hideHelpText # This is only used by uicommands so use default if the user configured 'no bitmap', because we # need one for the toolbar... def getBitmap(self, settings): if settings.get('icon', '%stasks' % self.statusString): return settings.get('icon', '%stasks' % self.statusString) return defaults.defaults['icon']['%stasks' % self.statusString] def getHideBitmap(self, settings): if settings.get('icon', '%stasks' % self.statusString): return '%s+cross_red_icon' % settings.get('icon', '%stasks' % self.statusString) return '%s+cross_red_icon' % defaults.defaults['icon']['%stasks' % self.statusString] def __repr__(self): return '%s(%s)' % (self.__class__.__name__, self.statusString) def __str__(self): return self.statusString def __eq__(self, other): return self.statusString == other.statusString def __neq__(self, other): return self.statusString != other.statusString def __nonzero__(self): return True inactive = TaskStatus('inactive', _('Inactive tasks'), _('Inactive tasks: %d (%d%%)'), _('Hide &inactive tasks'), _('Show/hide inactive tasks (incomplete tasks without actual start date)')) late = TaskStatus('late', _('Late tasks'), _('Late tasks: %d (%d%%)'), _('Hide &late tasks'), _('Show/hide late tasks (inactive tasks with a planned start in the past)')) active = TaskStatus('active', _('Active tasks'), _('Active tasks: %d (%d%%)'), _('Hide &active tasks'), _('Show/hide active tasks (incomplete tasks with an actual start date in the past)')) duesoon = TaskStatus('duesoon', _('Due soon tasks'), _('Due soon tasks: %d (%d%%)'), _('Hide &due soon tasks'), _('Show/hide due soon tasks (incomplete tasks with a due date in the near future)')) overdue = TaskStatus('overdue', _('Overdue tasks'), _('Overdue tasks: %d (%d%%)'), _('Hide &over due tasks'), _('Show/hide over due tasks (incomplete tasks with a due date in the past)')) completed = TaskStatus('completed', _('Completed tasks'), _('Completed tasks: %d (%d%%)'), _('Hide &completed tasks'), _('Show/hide completed tasks')) taskcoach-1.4.3/taskcoachlib/domain/task/task.py000066400000000000000000001763401265347643000216600ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2010 Svetoslav Trochev Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.domain import date, categorizable, note, attachment, base from taskcoachlib.domain.attribute.icon import getImageOpen from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.thirdparty._weakrefset import WeakSet import status import weakref import wx class Task(note.NoteOwner, attachment.AttachmentOwner, categorizable.CategorizableCompositeObject): maxDateTime = date.DateTime() def __init__(self, subject='', description='', dueDateTime=None, plannedStartDateTime=None, actualStartDateTime=None, completionDateTime=None, budget=None, priority=0, id=None, hourlyFee=0, # pylint: disable=W0622 fixedFee=0, reminder=None, reminderBeforeSnooze=None, categories=None, efforts=None, shouldMarkCompletedWhenAllChildrenCompleted=None, recurrence=None, percentageComplete=0, prerequisites=None, dependencies=None, *args, **kwargs): kwargs['id'] = id kwargs['subject'] = subject kwargs['description'] = description kwargs['categories'] = categories super(Task, self).__init__(*args, **kwargs) self.__status = None # status cache self.__dueSoonHours = self.settings.getint('behavior', 'duesoonhours') # pylint: disable=E1101 maxDateTime = self.maxDateTime self.__dueDateTime = dueDateTime or maxDateTime self.__plannedStartDateTime = plannedStartDateTime or maxDateTime self.__actualStartDateTime = actualStartDateTime or maxDateTime if completionDateTime is None and percentageComplete == 100: completionDateTime = date.Now() self.__completionDateTime = completionDateTime or maxDateTime percentageComplete = 100 if self.__completionDateTime != maxDateTime else percentageComplete self.__percentageComplete = percentageComplete self.__budget = budget or date.TimeDelta() self._efforts = efforts or [] self.__priority = priority self.__hourlyFee = hourlyFee self.__fixedFee = fixedFee self.__reminder = reminder or maxDateTime self.__reminderBeforeSnooze = reminderBeforeSnooze or self.__reminder self.__recurrence = date.Recurrence() if recurrence is None else recurrence self.__prerequisites = WeakSet(prerequisites or []) self.__dependencies = WeakSet(dependencies or []) self.__shouldMarkCompletedWhenAllChildrenCompleted = \ shouldMarkCompletedWhenAllChildrenCompleted for effort in self._efforts: effort.setTask(self) pub.subscribe(self.__computeRecursiveForegroundColor, 'settings.fgcolor') pub.subscribe(self.__computeRecursiveBackgroundColor, 'settings.bgcolor') pub.subscribe(self.__computeRecursiveIcon, 'settings.icon') pub.subscribe(self.__computeRecursiveSelectedIcon, 'settings.icon') pub.subscribe(self.onDueSoonHoursChanged, 'settings.behavior.duesoonhours') pub.subscribe(self.onMarkParentCompletedWhenAllChildrenCompletedChanged, 'settings.behavior.markparentcompletedwhenallchildrencompleted') now = date.Now() if now < self.__dueDateTime < maxDateTime: date.Scheduler().schedule(self.onOverDue, self.__dueDateTime + date.ONE_SECOND) if self.__dueSoonHours: dueSoonDateTime = self.__dueDateTime + date.ONE_SECOND - date.TimeDelta(hours=self.__dueSoonHours) if dueSoonDateTime > date.Now(): date.Scheduler().schedule(self.onDueSoon, dueSoonDateTime) if now < self.__plannedStartDateTime < maxDateTime: date.Scheduler().schedule(self.onTimeToStart, self.__plannedStartDateTime + date.ONE_SECOND) @patterns.eventSource def __setstate__(self, state, event=None): super(Task, self).__setstate__(state, event=event) self.setPlannedStartDateTime(state['plannedStartDateTime']) self.setActualStartDateTime(state['actualStartDateTime']) self.setDueDateTime(state['dueDateTime']) self.setCompletionDateTime(state['completionDateTime']) self.setPercentageComplete(state['percentageComplete']) self.setRecurrence(state['recurrence']) self.setReminder(state['reminder']) self.setEfforts(state['efforts']) self.setBudget(state['budget']) self.setPriority(state['priority']) self.setHourlyFee(state['hourlyFee']) self.setFixedFee(state['fixedFee']) self.setPrerequisites(state['prerequisites']) self.setDependencies(state['dependencies']) self.setShouldMarkCompletedWhenAllChildrenCompleted( \ state['shouldMarkCompletedWhenAllChildrenCompleted']) def __getstate__(self): state = super(Task, self).__getstate__() state.update(dict(dueDateTime=self.__dueDateTime, plannedStartDateTime=self.__plannedStartDateTime, actualStartDateTime=self.__actualStartDateTime, completionDateTime=self.__completionDateTime, percentageComplete=self.__percentageComplete, children=self.children(), parent=self.parent(), efforts=self._efforts, budget=self.__budget, priority=self.__priority, hourlyFee=self.__hourlyFee, fixedFee=self.__fixedFee, recurrence=self.__recurrence.copy(), reminder=self.__reminder, prerequisites=set(self.__prerequisites), dependencies=set(self.__dependencies), shouldMarkCompletedWhenAllChildrenCompleted=self.__shouldMarkCompletedWhenAllChildrenCompleted)) return state def __getcopystate__(self): state = super(Task, self).__getcopystate__() state.update(dict(plannedStartDateTime=self.__plannedStartDateTime, dueDateTime=self.__dueDateTime, actualStartDateTime=self.__actualStartDateTime, completionDateTime=self.__completionDateTime, percentageComplete=self.__percentageComplete, efforts=[effort.copy() for effort in self._efforts], budget=self.__budget, priority=self.__priority, hourlyFee=self.__hourlyFee, fixedFee=self.__fixedFee, recurrence=self.__recurrence.copy(), reminder=self.__reminder, shouldMarkCompletedWhenAllChildrenCompleted=self.__shouldMarkCompletedWhenAllChildrenCompleted)) return state @classmethod def monitoredAttributes(class_): return categorizable.CategorizableCompositeObject.monitoredAttributes() + \ ['plannedStartDateTime', 'dueDateTime', 'completionDateTime', 'percentageComplete', 'recurrence', 'reminder', 'budget', 'priority', 'hourlyFee', 'fixedFee', 'shouldMarkCompletedWhenAllChildrenCompleted'] @patterns.eventSource def addCategory(self, *categories, **kwargs): if super(Task, self).addCategory(*categories, **kwargs): self.recomputeAppearance(True, event=kwargs.pop('event')) @patterns.eventSource def removeCategory(self, *categories, **kwargs): if super(Task, self).removeCategory(*categories, **kwargs): self.recomputeAppearance(True, event=kwargs.pop('event')) @patterns.eventSource def setCategories(self, *categories, **kwargs): if super(Task, self).setCategories(*categories, **kwargs): self.recomputeAppearance(True, event=kwargs.pop('event')) def allChildrenCompleted(self): ''' Return whether all children (non-recursively) are completed. ''' children = self.children() return all(child.completed() for child in children) if children \ else False @patterns.eventSource def addChild(self, child, event=None): if child in self.children(): return wasTracking = self.isBeingTracked(recursive=True) super(Task, self).addChild(child, event=event) self.childChangeEvent(child, wasTracking, event) if self.shouldBeMarkedCompleted(): self.setCompletionDateTime(child.completionDateTime()) elif self.completed() and not child.completed(): self.setCompletionDateTime(self.maxDateTime) self.recomputeAppearance(recursive=False, event=event) child.recomputeAppearance(recursive=True, event=event) @patterns.eventSource def removeChild(self, child, event=None): if child not in self.children(): return wasTracking = self.isBeingTracked(recursive=True) super(Task, self).removeChild(child, event=event) self.childChangeEvent(child, wasTracking, event) if self.shouldBeMarkedCompleted(): # The removed child was the last uncompleted child self.setCompletionDateTime(date.Now()) self.recomputeAppearance(recursive=False, event=event) child.recomputeAppearance(recursive=True, event=event) def childChangeEvent(self, child, wasTracking, event): childHasTimeSpent = child.timeSpent(recursive=True) childHasBudget = child.budget(recursive=True) childHasBudgetLeft = child.budgetLeft(recursive=True) childHasRevenue = child.revenue(recursive=True) childPriority = child.priority(recursive=True) # Determine what changes due to the child being added or removed: if childHasTimeSpent: self.sendTimeSpentChangedMessage() if childHasRevenue: self.sendRevenueChangedMessage() if childHasBudget: self.sendBudgetChangedMessage() if childHasBudgetLeft or (childHasTimeSpent and \ (childHasBudget or self.budget())): self.sendBudgetLeftChangedMessage() if childPriority > self.priority(): self.sendPriorityChangedMessage() isTracking = self.isBeingTracked(recursive=True) if wasTracking and not isTracking: self.sendTrackingChangedMessage(tracking=False) elif not wasTracking and isTracking: self.sendTrackingChangedMessage(tracking=True) @patterns.eventSource def setSubject(self, subject, event=None): super(Task, self).setSubject(subject, event=event) # The subject of a dependency of our prerequisites has changed, notify: for prerequisite in self.prerequisites(): pub.sendMessage(prerequisite.dependenciesChangedEventType(), newValue=prerequisite.dependencies(), sender=prerequisite) # The subject of a prerequisite of our dependencies has changed, notify: for dependency in self.dependencies(): pub.sendMessage(dependency.prerequisitesChangedEventType(), newValue=dependency.prerequisites(), sender=dependency) # Due date def dueDateTime(self, recursive=False): if recursive: childrenDueDateTimes = [child.dueDateTime(recursive=True) for child in \ self.children() if not child.completed()] return min(childrenDueDateTimes + [self.__dueDateTime]) else: return self.__dueDateTime def setDueDateTime(self, dueDateTime): if dueDateTime == self.__dueDateTime: return self.__dueDateTime = dueDateTime date.Scheduler().unschedule(self.onOverDue) date.Scheduler().unschedule(self.onDueSoon) if date.Now() <= dueDateTime < self.maxDateTime: date.Scheduler().schedule(self.onOverDue, dueDateTime + date.ONE_SECOND) if self.__dueSoonHours > 0: dueSoonDateTime = dueDateTime + date.ONE_SECOND - \ date.TimeDelta(hours=self.__dueSoonHours) if dueSoonDateTime > date.Now(): date.Scheduler().schedule(self.onDueSoon, dueSoonDateTime) self.markDirty() self.recomputeAppearance() pub.sendMessage(self.dueDateTimeChangedEventType(), newValue=dueDateTime, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.dueDateTimeChangedEventType(), newValue=dueDateTime, sender=ancestor) @classmethod def dueDateTimeChangedEventType(class_): return 'pubsub.task.dueDateTime' def onOverDue(self): self.recomputeAppearance() def onDueSoon(self): self.recomputeAppearance() @staticmethod def dueDateTimeSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.dueDateTime(recursive=recursive) @classmethod def dueDateTimeSortEventTypes(class_): ''' The event types that influence the due date time sort order. ''' return (class_.dueDateTimeChangedEventType(),) # Planned start date def plannedStartDateTime(self, recursive=False): if recursive: childrenPlannedStartDateTimes = [child.plannedStartDateTime(recursive=True) for child in \ self.children() if not child.completed()] return min(childrenPlannedStartDateTimes + [self.__plannedStartDateTime]) else: return self.__plannedStartDateTime def setPlannedStartDateTime(self, plannedStartDateTime): if plannedStartDateTime == self.__plannedStartDateTime: return self.__plannedStartDateTime = plannedStartDateTime date.Scheduler().unschedule(self.onTimeToStart) self.markDirty() self.recomputeAppearance() if plannedStartDateTime < self.maxDateTime: date.Scheduler().schedule(self.onTimeToStart, plannedStartDateTime + date.ONE_SECOND) pub.sendMessage(self.plannedStartDateTimeChangedEventType(), newValue=plannedStartDateTime, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.plannedStartDateTimeChangedEventType(), newValue=plannedStartDateTime, sender=ancestor) @classmethod def plannedStartDateTimeChangedEventType(class_): return 'pubsub.task.plannedStartDateTime' def onTimeToStart(self): self.recomputeAppearance() @staticmethod def plannedStartDateTimeSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.plannedStartDateTime(recursive=recursive) @classmethod def plannedStartDateTimeSortEventTypes(class_): ''' The event types that influence the planned start date time sort order. ''' return (class_.plannedStartDateTimeChangedEventType(),) def timeLeft(self, recursive=False): return self.dueDateTime(recursive) - date.Now() @staticmethod def timeLeftSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.timeLeft(recursive=recursive) @classmethod def timeLeftSortEventTypes(class_): ''' The event types that influence the time left sort order. ''' return (class_.dueDateTimeChangedEventType(),) # Actual start date def actualStartDateTime(self, recursive=False): if recursive: childrenActualStartDateTimes = [child.actualStartDateTime(recursive=True) for child in \ self.children() if not child.completed()] return min(childrenActualStartDateTimes + [self.__actualStartDateTime]) else: return self.__actualStartDateTime def setActualStartDateTime(self, actualStartDateTime, recursive=False): if actualStartDateTime == self.__actualStartDateTime: return self.__actualStartDateTime = actualStartDateTime if recursive: for child in self.children(recursive=True): child.setActualStartDateTime(actualStartDateTime) self.markDirty() self.recomputeAppearance() pub.sendMessage(self.actualStartDateTimeChangedEventType(), newValue=actualStartDateTime, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.actualStartDateTimeChangedEventType(), newValue=actualStartDateTime, sender=ancestor) @classmethod def actualStartDateTimeChangedEventType(class_): return 'pubsub.task.actualStartDateTime' @staticmethod def actualStartDateTimeSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.actualStartDateTime(recursive=recursive) @classmethod def actualStartDateTimeSortEventTypes(class_): ''' The event types that influence the actual start date time sort order. ''' return (class_.actualStartDateTimeChangedEventType(),) # Completion date def completionDateTime(self, recursive=False): if recursive: childrenCompletionDateTimes = [child.completionDateTime(recursive=True) \ for child in self.children() if child.completed()] return max(childrenCompletionDateTimes + [self.__completionDateTime]) else: return self.__completionDateTime def setCompletionDateTime(self, completionDateTime=None): completionDateTime = completionDateTime or date.Now() if completionDateTime == self.__completionDateTime: return if completionDateTime != self.maxDateTime and self.recurrence(): self.recur(completionDateTime) else: parent = self.parent() if parent: oldParentPriority = parent.priority(recursive=True) self.__status = None self.__completionDateTime = completionDateTime if parent and parent.priority(recursive=True) != oldParentPriority: parent.sendPriorityChangedMessage() if completionDateTime != self.maxDateTime: self.setReminder(None) self.setPercentageComplete(100) elif self.percentageComplete() == 100: self.setPercentageComplete(0) if parent: if self.completed(): if parent.shouldBeMarkedCompleted(): parent.setCompletionDateTime(completionDateTime) else: if parent.completed(): parent.setCompletionDateTime(self.maxDateTime) if self.completed(): for child in self.children(): if not child.completed(): child.setRecurrence() child.setCompletionDateTime(completionDateTime) if self.isBeingTracked(): self.stopTracking() self.recomputeAppearance() for dependency in self.dependencies(): dependency.recomputeAppearance(recursive=True) pub.sendMessage(self.completionDateTimeChangedEventType(), newValue=completionDateTime, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.completionDateTimeChangedEventType(), newValue=completionDateTime, sender=ancestor) @classmethod def completionDateTimeChangedEventType(class_): return 'pubsub.task.completionDateTime' def shouldBeMarkedCompleted(self): ''' Return whether this task should be marked completed. It should be marked completed when 1) it's not completed, 2) all of its children are completed, 3) its setting says it should be completed when all of its children are completed. ''' shouldMarkCompletedAccordingToSetting = \ self.settings.getboolean('behavior', # pylint: disable=E1101 'markparentcompletedwhenallchildrencompleted') shouldMarkCompletedAccordingToTask = \ self.shouldMarkCompletedWhenAllChildrenCompleted() return ((shouldMarkCompletedAccordingToTask == True) or \ ((shouldMarkCompletedAccordingToTask == None) and \ shouldMarkCompletedAccordingToSetting)) and \ (not self.completed()) and self.allChildrenCompleted() @staticmethod def completionDateTimeSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.completionDateTime(recursive=recursive) @classmethod def completionDateTimeSortEventTypes(class_): ''' The event types that influence the completion date time sort order. ''' return (class_.completionDateTimeChangedEventType(),) def onMarkParentCompletedWhenAllChildrenCompletedChanged(self, value): ''' When the global setting changes, send a percentage completed changed if necessary. ''' if self.shouldMarkCompletedWhenAllChildrenCompleted() is None and \ any([child.percentageComplete(True) for child in self.children()]): pub.sendMessage(self.percentageCompleteChangedEventType(), newValue=self.percentageComplete(), sender=self) # Task state def completed(self): ''' A task is completed if it has a completion date/time. ''' return self.status() == status.completed def overdue(self): ''' A task is over due if its due date/time is in the past and it is not completed. Note that an over due task is also either active or inactive. ''' return self.status() == status.overdue def inactive(self): ''' A task is inactive if it is not completed and either has no planned start date/time or a planned start date/time in the future, and/or its prerequisites are not completed. ''' return self.status() == status.inactive def active(self): ''' A task is active if it has a planned start date/time in the past and it is not completed. Note that over due and due soon tasks are also considered to be active. So the statuses active, inactive and completed are disjunct, but the statuses active, due soon and over due are not. ''' return self.status() == status.active def dueSoon(self): ''' A task is due soon if it is not completed and there is still time left (i.e. it is not over due). ''' return self.status() == status.duesoon def late(self): ''' A task is late if it is not active and its planned start date time is in the past. ''' return self.status() == status.late @classmethod def possibleStatuses(class_): return (status.inactive, status.late, status.active, status.duesoon, status.overdue, status.completed) def status(self): if self.__status: return self.__status if self.completionDateTime() != self.maxDateTime: self.__status = status.completed else: now = date.Now() if self.dueDateTime() < now: self.__status = status.overdue elif 0 <= self.timeLeft().hours() < self.__dueSoonHours: self.__status = status.duesoon elif self.actualStartDateTime() <= now: self.__status = status.active # Don't call prerequisite.completed() because it will lead to infinite # recursion in the case of circular dependencies: elif any([prerequisite.completionDateTime() == self.maxDateTime \ for prerequisite in self.prerequisites(recursive=True, upwards=True)]): self.__status = status.inactive elif self.plannedStartDateTime() < now: self.__status = status.late else: self.__status = status.inactive return self.__status def onDueSoonHoursChanged(self, value): date.Scheduler().unschedule(self.onDueSoon) self.__dueSoonHours = value dueDateTime = self.dueDateTime() if dueDateTime < self.maxDateTime: newDueSoonDateTime = dueDateTime + date.ONE_SECOND - date.TimeDelta(hours=self.__dueSoonHours) date.Scheduler().schedule(self.onDueSoon, newDueSoonDateTime) self.recomputeAppearance() # effort related methods: def efforts(self, recursive=False): childEfforts = [] if recursive: for child in self.children(): childEfforts.extend(child.efforts(recursive=True)) return self._efforts + childEfforts def isBeingTracked(self, recursive=False): return self.activeEfforts(recursive) def activeEfforts(self, recursive=False): return [effort for effort in self.efforts(recursive) \ if effort.isBeingTracked()] def addEffort(self, effort): if effort in self._efforts: return wasTracking = self.isBeingTracked() oldValue = self._efforts[:] self._efforts.append(effort) if effort.getStart() < self.actualStartDateTime(): self.setActualStartDateTime(effort.getStart()) pub.sendMessage(self.effortsChangedEventType(), newValue=(self._efforts, oldValue), sender=self) if effort.isBeingTracked() and not wasTracking: self.sendTrackingChangedMessage(tracking=True) self.sendTimeSpentChangedMessage() @classmethod def effortsChangedEventType(class_): return 'pubsub.task.efforts' def sendTrackingChangedMessage(self, tracking): self.recomputeAppearance() pub.sendMessage(self.trackingChangedEventType(), newValue=tracking, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.trackingChangedEventType(), newValue=tracking, sender=ancestor) def removeEffort(self, effort): if effort not in self._efforts: return oldValue = self._efforts[:] self._efforts.remove(effort) pub.sendMessage(self.effortsChangedEventType(), newValue=(self._efforts, oldValue), sender=self) if effort.isBeingTracked() and not self.isBeingTracked(): self.sendTrackingChangedMessage(tracking=False) self.sendTimeSpentChangedMessage() def stopTracking(self): for effort in self.activeEfforts(): effort.setStop() def setEfforts(self, efforts): if efforts == self._efforts: return oldValue = self._efforts[:] self._efforts = efforts pub.sendMessage(self.effortsChangedEventType(), newValue=(self._efforts, oldValue), sender=self) self.sendTimeSpentChangedMessage() @classmethod def trackingChangedEventType(class_): return 'pubsub.task.track' # Time spent def timeSpent(self, recursive=False): return sum((effort.duration() for effort in self.efforts(recursive)), date.TimeDelta()) def sendTimeSpentChangedMessage(self): pub.sendMessage(self.timeSpentChangedEventType(), newValue=self.timeSpent(), sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.timeSpentChangedEventType(), newValue=ancestor.timeSpent(), sender=ancestor) if self.budget(recursive=True): self.sendBudgetLeftChangedMessage() if self.hourlyFee() > 0: self.sendRevenueChangedMessage() @classmethod def timeSpentChangedEventType(class_): return 'pubsub.task.timeSpent' @staticmethod def timeSpentSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.timeSpent(recursive=recursive) @classmethod def timeSpentSortEventTypes(class_): ''' The event types that influence the time spent sort order. ''' return (class_.timeSpentChangedEventType(),) # Budget def budget(self, recursive=False): result = self.__budget if recursive: for task in self.children(): result += task.budget(recursive) return result def setBudget(self, budget): if budget == self.__budget: return self.__budget = budget self.sendBudgetChangedMessage() self.sendBudgetLeftChangedMessage() def sendBudgetChangedMessage(self): pub.sendMessage(self.budgetChangedEventType(), newValue=self.budget(), sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.budgetChangedEventType(), newValue=ancestor.budget(recursive=True), sender=ancestor) @classmethod def budgetChangedEventType(class_): return 'pubsub.task.budget' @staticmethod def budgetSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.budget(recursive=recursive) @classmethod def budgetSortEventTypes(class_): ''' The event types that influence the budget sort order. ''' return (class_.budgetChangedEventType(),) # Budget left def budgetLeft(self, recursive=False): budget = self.budget(recursive) return budget - self.timeSpent(recursive) if budget else budget def sendBudgetLeftChangedMessage(self): pub.sendMessage(self.budgetLeftChangedEventType(), newValue=self.budgetLeft(), sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.budgetLeftChangedEventType(), newValue=ancestor.budgetLeft(recursive=True), sender=ancestor) @classmethod def budgetLeftChangedEventType(class_): return 'pubsub.task.budgetLeft' @staticmethod def budgetLeftSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.budgetLeft(recursive=recursive) @classmethod def budgetLeftSortEventTypes(class_): ''' The event types that influence the budget left sort order. ''' return (class_.budgetLeftChangedEventType(),) # Foreground color def setForegroundColor(self, *args, **kwargs): super(Task, self).setForegroundColor(*args, **kwargs) self.__computeRecursiveForegroundColor() def foregroundColor(self, recursive=False): if not recursive: return super(Task, self).foregroundColor(recursive) try: return self.__recursiveForegroundColor except AttributeError: return self.__computeRecursiveForegroundColor() def __computeRecursiveForegroundColor(self, value=None): # pylint: disable=W0613 ownColor = super(Task, self).foregroundColor(False) if ownColor: recursiveColor = ownColor else: categoryColor = self._categoryForegroundColor() if categoryColor: recursiveColor = categoryColor else: recursiveColor = self.statusFgColor() self.__recursiveForegroundColor = recursiveColor # pylint: disable=W0201 return recursiveColor def statusFgColor(self): ''' Return the current color of task, based on its status (completed, overdue, duesoon, inactive, or active). ''' return self.fgColorForStatus(self.status()) @classmethod def fgColorForStatus(class_, taskStatus): return wx.Colour(*eval(class_.settings.get('fgcolor', '%stasks' % taskStatus))) # pylint: disable=E1101 def appearanceChangedEvent(self, event): self.__computeRecursiveForegroundColor() self.__computeRecursiveBackgroundColor() self.__computeRecursiveIcon() self.__computeRecursiveSelectedIcon() super(Task, self).appearanceChangedEvent(event) for eachEffort in self.efforts(): eachEffort.appearanceChangedEvent(event) # Background color def setBackgroundColor(self, *args, **kwargs): super(Task, self).setBackgroundColor(*args, **kwargs) self.__computeRecursiveBackgroundColor() def backgroundColor(self, recursive=False): if not recursive: return super(Task, self).backgroundColor(recursive) try: return self.__recursiveBackgroundColor except AttributeError: return self.__computeRecursiveBackgroundColor() def __computeRecursiveBackgroundColor(self, *args, **kwargs): # pylint: disable=W0613 ownColor = super(Task, self).backgroundColor(recursive=False) if ownColor: recursiveColor = ownColor else: categoryColor = self._categoryBackgroundColor() if categoryColor: recursiveColor = categoryColor else: statusColor = self.statusBgColor() if statusColor: recursiveColor = statusColor elif self.parent(): recursiveColor = self.parent().backgroundColor(recursive=True) else: recursiveColor = None self.__recursiveBackgroundColor = recursiveColor # pylint: disable=W0201 return recursiveColor def statusBgColor(self): ''' Return the current color of task, based on its status (completed, overdue, duesoon, inactive, or active). ''' color = self.bgColorForStatus(self.status()) return None if color == wx.WHITE else color @classmethod def bgColorForStatus(class_, taskStatus): return wx.Colour(*eval(class_.settings.get('bgcolor', '%stasks' % taskStatus))) # pylint: disable=E1101 # Font def font(self, recursive=False): ownFont = super(Task, self).font(recursive=False) if ownFont or not recursive: return ownFont else: categoryFont = self._categoryFont() if categoryFont: return categoryFont else: return self.statusFont() def statusFont(self): ''' Return the current font of task, based on its status (completed, overdue, duesoon, inactive, or active). ''' return self.fontForStatus(self.status()) @classmethod def fontForStatus(class_, taskStatus): nativeInfoString = class_.settings.get('font', '%stasks' % taskStatus) # pylint: disable=E1101 return wx.FontFromNativeInfoString(nativeInfoString) if nativeInfoString else None # Icon def icon(self, recursive=False): if recursive and self.isBeingTracked(): return 'clock_icon' myIcon = super(Task, self).icon() if recursive and not myIcon: try: myIcon = self.__recursiveIcon except AttributeError: myIcon = self.__computeRecursiveIcon() return self.pluralOrSingularIcon(myIcon, native=super(Task, self).icon() == '') def __computeRecursiveIcon(self, *args, **kwargs): # pylint: disable=W0613 # pylint: disable=W0201 self.__recursiveIcon = self.categoryIcon() or self.statusIcon() return self.__recursiveIcon def selectedIcon(self, recursive=False): if recursive and self.isBeingTracked(): return 'clock_icon' myIcon = super(Task, self).selectedIcon() if recursive and not myIcon: try: myIcon = self.__recursiveSelectedIcon except AttributeError: myIcon = self.__computeRecursiveSelectedIcon() return self.pluralOrSingularIcon(myIcon, native=super(Task, self).selectedIcon == '') def __computeRecursiveSelectedIcon(self, *args, **kwargs): # pylint: disable=W0613 # pylint: disable=W0201 self.__recursiveSelectedIcon = self.categorySelectedIcon() or self.statusIcon(selected=True) return self.__recursiveSelectedIcon def statusIcon(self, selected=False): ''' Return the current icon of the task, based on its status. ''' return self.iconForStatus(self.status(), selected) def iconForStatus(self, taskStatus, selected=False): iconName = self.settings.get('icon', '%stasks' % taskStatus) # pylint: disable=E1101 iconName = self.pluralOrSingularIcon(iconName) if selected and iconName.startswith('folder'): iconName = getImageOpen(iconName) return iconName @patterns.eventSource def recomputeAppearance(self, recursive=False, event=None): self.__status = None # Need to prepare for AttributeError because the cached recursive values # are not set in __init__ for performance reasons try: previousForegroundColor = self.__recursiveForegroundColor previousBackgroundColor = self.__recursiveBackgroundColor previousRecursiveIcon = self.__recursiveIcon previousRecursiveSelectedIcon = self.__recursiveSelectedIcon except AttributeError: previousForegroundColor = None previousBackgroundColor = None previousRecursiveIcon = None previousRecursiveSelectedIcon = None self.__computeRecursiveForegroundColor() self.__computeRecursiveBackgroundColor() self.__computeRecursiveIcon() self.__computeRecursiveSelectedIcon() if self.__recursiveForegroundColor != previousForegroundColor or \ self.__recursiveBackgroundColor != previousBackgroundColor or \ self.__recursiveIcon != previousRecursiveIcon or \ self.__recursiveSelectedIcon != previousRecursiveSelectedIcon: event.addSource(self, type=self.appearanceChangedEventType()) if recursive: for child in self.children(): child.recomputeAppearance(recursive=True, event=event) # percentage Complete def percentageComplete(self, recursive=False): if recursive: if self.shouldMarkCompletedWhenAllChildrenCompleted() is None: # pylint: disable=E1101 ignore_me = self.settings.getboolean('behavior', 'markparentcompletedwhenallchildrencompleted') else: ignore_me = self.shouldMarkCompletedWhenAllChildrenCompleted() percentages = [] if self.__percentageComplete > 0 or not ignore_me: percentages.append(self.__percentageComplete) percentages.extend([child.percentageComplete(recursive) for child in self.children()]) return sum(percentages) / len(percentages) if percentages else 0 else: return self.__percentageComplete def setPercentageComplete(self, percentage): if percentage == self.__percentageComplete: return oldPercentage = self.__percentageComplete self.__percentageComplete = percentage if percentage == 100 and oldPercentage != 100 and self.completionDateTime() == self.maxDateTime: self.setCompletionDateTime(date.Now()) elif oldPercentage == 100 and percentage != 100 and self.completionDateTime() != self.maxDateTime: self.setCompletionDateTime(self.maxDateTime) if 0 < percentage < 100 and self.actualStartDateTime() == date.DateTime(): self.setActualStartDateTime(date.Now()) pub.sendMessage(self.percentageCompleteChangedEventType(), newValue=percentage, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.percentageCompleteChangedEventType(), newValue=ancestor.percentageComplete(recursive=True), sender=ancestor) @staticmethod def percentageCompleteSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.percentageComplete(recursive=recursive) @classmethod def percentageCompleteSortEventTypes(class_): ''' The event types that influence the percentage complete sort order. ''' return (class_.percentageCompleteChangedEventType(),) @classmethod def percentageCompleteChangedEventType(class_): return 'pubsub.task.percentageComplete' # priority def priority(self, recursive=False): if recursive: childPriorities = [child.priority(recursive=True) \ for child in self.children() \ if not child.completed()] return max(childPriorities + [self.__priority]) else: return self.__priority def setPriority(self, priority): if priority == self.__priority: return self.__priority = priority self.sendPriorityChangedMessage() def sendPriorityChangedMessage(self): pub.sendMessage(self.priorityChangedEventType(), newValue=self.priority(), sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.priorityChangedEventType(), newValue=ancestor.priority(), sender=ancestor) @classmethod def priorityChangedEventType(class_): return 'pubsub.task.priority' @staticmethod def prioritySortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.priority(recursive=recursive) @classmethod def prioritySortEventTypes(class_): ''' The event types that influence the priority sort order. ''' return (class_.priorityChangedEventType(),) # Hourly fee def hourlyFee(self, recursive=False): # pylint: disable=W0613 return self.__hourlyFee def setHourlyFee(self, hourlyFee): if hourlyFee == self.__hourlyFee: return self.__hourlyFee = hourlyFee pub.sendMessage(self.hourlyFeeChangedEventType(), newValue=hourlyFee, sender=self) if self.timeSpent() > date.TimeDelta(): self.sendRevenueChangedMessage() for effort in self.efforts(): effort.sendRevenueChangedMessage() @classmethod def hourlyFeeChangedEventType(class_): return 'pubsub.task.hourlyFee' @staticmethod # pylint: disable=W0613 def hourlyFeeSortFunction(**kwargs): return lambda task: task.hourlyFee() @classmethod def hourlyFeeSortEventTypes(class_): ''' The event types that influence the hourly fee sort order. ''' return (class_.hourlyFeeChangedEventType(),) # Fixed fee def fixedFee(self, recursive=False): childFixedFees = sum(child.fixedFee(recursive) for child in self.children()) if recursive else 0 return self.__fixedFee + childFixedFees def setFixedFee(self, fixedFee): if fixedFee == self.__fixedFee: return self.__fixedFee = fixedFee pub.sendMessage(self.fixedFeeChangedEventType(), newValue=fixedFee, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.fixedFeeChangedEventType(), newValue=ancestor.fixedFee(recursive=True), sender=ancestor) self.sendRevenueChangedMessage() @classmethod def fixedFeeChangedEventType(class_): return 'pubsub.task.fixedFee' @staticmethod def fixedFeeSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.fixedFee(recursive=recursive) @classmethod def fixedFeeSortEventTypes(class_): ''' The event types that influence the fixed fee sort order. ''' return (class_.fixedFeeChangedEventType(),) # Revenue def revenue(self, recursive=False): childRevenues = sum(child.revenue(recursive) for child in self.children()) if recursive else 0 return self.timeSpent().hours() * self.hourlyFee() + self.fixedFee() + \ childRevenues def sendRevenueChangedMessage(self): pub.sendMessage(self.revenueChangedEventType(), newValue=self.revenue(), sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.revenueChangedEventType(), newValue=ancestor.revenue(recursive=True), sender=ancestor) @classmethod def revenueChangedEventType(class_): return 'pubsub.task.revenue' @staticmethod def revenueSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.revenue(recursive=recursive) @classmethod def revenueSortEventTypes(class_): ''' The event types that influence the revenue sort order. ''' return (class_.revenueChangedEventType(),) # reminder def reminder(self, recursive=False, includeSnooze=True): # pylint: disable=W0613 if recursive: reminders = [child.reminder(recursive=True) for child in \ self.children()] + [self.__reminder] reminders = [reminder for reminder in reminders if reminder] return min(reminders) if reminders else None else: return self.__reminder if includeSnooze else self.__reminderBeforeSnooze def setReminder(self, reminderDateTime=None): if reminderDateTime == self.maxDateTime: reminderDateTime = None if reminderDateTime == self.__reminder: return self.__reminder = reminderDateTime self.__reminderBeforeSnooze = reminderDateTime pub.sendMessage(self.reminderChangedEventType(), newValue=reminderDateTime, sender=self) for ancestor in self.ancestors(): pub.sendMessage(ancestor.reminderChangedEventType(), newValue=reminderDateTime, sender=ancestor) def snoozeReminder(self, timeDelta, now=date.Now): if timeDelta: self.__reminder = now() + timeDelta pub.sendMessage(self.reminderChangedEventType(), newValue=self.__reminder, sender=self) else: if self.recurrence(): self.__reminder = None pub.sendMessage(self.reminderChangedEventType(), newValue=self.__reminder, sender=self) else: self.setReminder() @classmethod def reminderChangedEventType(class_): return 'pubsub.task.reminder' @staticmethod def reminderSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) maxDateTime = date.DateTime() return lambda task: task.reminder(recursive=recursive) or maxDateTime @classmethod def reminderSortEventTypes(class_): ''' The event types that influence the reminder sort order. ''' return (class_.reminderChangedEventType(),) # Recurrence def recurrence(self, recursive=False, upwards=False): if not self.__recurrence and recursive and upwards and self.parent(): return self.parent().recurrence(recursive, upwards) elif recursive and not upwards: recurrences = [child.recurrence() for child in self.children(recursive)] recurrences.append(self.__recurrence) recurrences = [r for r in recurrences if r] return min(recurrences) if recurrences else self.__recurrence else: return self.__recurrence def setRecurrence(self, recurrence=None): recurrence = recurrence or date.Recurrence() if recurrence == self.__recurrence: return self.__recurrence = recurrence pub.sendMessage(self.recurrenceChangedEventType(), newValue=recurrence, sender=self) @classmethod def recurrenceChangedEventType(class_): return 'pubsub.task.recurrence' @patterns.eventSource def recur(self, completionDateTime=None, event=None): completionDateTime = completionDateTime or date.Now() self.setCompletionDateTime(self.maxDateTime) recur = self.recurrence(recursive=True, upwards=True) currentDueDateTime = self.dueDateTime() if currentDueDateTime != date.DateTime(): basisForRecurrence = completionDateTime if recur.recurBasedOnCompletion else currentDueDateTime nextDueDateTime = recur(basisForRecurrence, next=False) nextDueDateTime = nextDueDateTime.replace(hour=currentDueDateTime.hour, minute=currentDueDateTime.minute, second=currentDueDateTime.second, microsecond=currentDueDateTime.microsecond) self.setDueDateTime(nextDueDateTime) currentPlannedStartDateTime = self.plannedStartDateTime() if currentPlannedStartDateTime != date.DateTime(): if date.DateTime() not in (currentPlannedStartDateTime, currentDueDateTime): taskDuration = currentDueDateTime - currentPlannedStartDateTime nextPlannedStartDateTime = nextDueDateTime - taskDuration else: basisForRecurrence = completionDateTime if recur.recurBasedOnCompletion else currentPlannedStartDateTime nextPlannedStartDateTime = recur(basisForRecurrence, next=False) nextPlannedStartDateTime = nextPlannedStartDateTime.replace(hour=currentPlannedStartDateTime.hour, minute=currentPlannedStartDateTime.minute, second=currentPlannedStartDateTime.second, microsecond=currentPlannedStartDateTime.microsecond) self.setPlannedStartDateTime(nextPlannedStartDateTime) self.setActualStartDateTime(date.DateTime()) self.setPercentageComplete(0) if self.reminder(includeSnooze=False): nextReminder = recur(self.reminder(includeSnooze=False), next=False) self.setReminder(nextReminder) for child in self.children(): if not child.recurrence(): child.recur(completionDateTime, event=event) self.recurrence()(next=True) @staticmethod def recurrenceSortFunction(**kwargs): recursive = kwargs.get('treeMode', False) return lambda task: task.recurrence(recursive=recursive) @classmethod def recurrenceSortEventTypes(class_): ''' The event types that influence the recurrence sort order. ''' return (class_.recurrenceChangedEventType(),) # Prerequisites def prerequisites(self, recursive=False, upwards=False): prerequisites = set(self.__prerequisites) if recursive and upwards and self.parent() is not None: prerequisites |= self.parent().prerequisites(recursive=True, upwards=True) elif recursive and not upwards: for child in self.children(recursive=True): prerequisites |= child.prerequisites() return prerequisites def setPrerequisites(self, prerequisites): prerequisites = set(prerequisites) if prerequisites == self.prerequisites(): return self.__prerequisites = WeakSet(prerequisites) self.setActualStartDateTime(self.maxDateTime, recursive=True) self.recomputeAppearance(recursive=True) pub.sendMessage(self.prerequisitesChangedEventType(), newValue=self.prerequisites(), sender=self) def addPrerequisites(self, prerequisites): prerequisites = set(prerequisites) if prerequisites <= self.prerequisites(): return self.__prerequisites = WeakSet(prerequisites | self.prerequisites()) self.setActualStartDateTime(self.maxDateTime, recursive=True) self.recomputeAppearance(recursive=True) pub.sendMessage(self.prerequisitesChangedEventType(), newValue=self.prerequisites(), sender=self) def removePrerequisites(self, prerequisites): prerequisites = set(prerequisites) if self.prerequisites().isdisjoint(prerequisites): return self.__prerequisites = WeakSet(self.prerequisites() - prerequisites) self.recomputeAppearance(recursive=True) pub.sendMessage(self.prerequisitesChangedEventType(), newValue=self.prerequisites(), sender=self) def addTaskAsDependencyOf(self, prerequisites): for prerequisite in prerequisites: prerequisite.addDependencies([self]) def removeTaskAsDependencyOf(self, prerequisites): for prerequisite in prerequisites: prerequisite.removeDependencies([self]) @classmethod def prerequisitesChangedEventType(class_): return 'pubsub.task.prerequisites' @staticmethod def prerequisitesSortFunction(**kwargs): ''' Return a sort key for sorting by prerequisites. Since a task can have multiple prerequisites we first sort the prerequisites by their subjects. If the sorter is in tree mode, we also take the prerequisites of the children of the task into account, after the prerequisites of the task itself. If the sorter is in list mode we also take the prerequisites of the parent (recursively) into account, again after the prerequisites of the categorizable itself.''' def sortKeyFunction(task): def sortedSubjects(items): return sorted([item.subject(recursive=True) for item in items]) prerequisites = task.prerequisites() sortedPrerequisiteSubjects = sortedSubjects(prerequisites) isListMode = not kwargs.get('treeMode', False) childPrerequisites = task.prerequisites(recursive=True, upwards=isListMode) - prerequisites sortedPrerequisiteSubjects.extend(sortedSubjects(childPrerequisites)) return sortedPrerequisiteSubjects return sortKeyFunction @classmethod def prerequisitesSortEventTypes(class_): ''' The event types that influence the prerequisites sort order. ''' return (class_.prerequisitesChangedEventType(),) # Dependencies def dependencies(self, recursive=False, upwards=False): dependencies = set(self.__dependencies) if recursive and upwards and self.parent() is not None: dependencies |= self.parent().dependencies(recursive=True, upwards=True) elif recursive and not upwards: for child in self.children(recursive=True): dependencies |= child.dependencies() return dependencies def setDependencies(self, dependencies): dependencies = set(dependencies) if dependencies == self.dependencies(): return self.__dependencies = WeakSet(dependencies) pub.sendMessage(self.dependenciesChangedEventType(), newValue=self.dependencies(), sender=self) def addDependencies(self, dependencies): dependencies = set(dependencies) if dependencies <= self.dependencies(): return self.__dependencies = WeakSet(self.dependencies() | dependencies) pub.sendMessage(self.dependenciesChangedEventType(), newValue=self.dependencies(), sender=self) def removeDependencies(self, dependencies): dependencies = set(dependencies) if self.dependencies().isdisjoint(dependencies): return self.__dependencies = WeakSet(self.dependencies() - dependencies) pub.sendMessage(self.dependenciesChangedEventType(), newValue=self.dependencies(), sender=self) def addTaskAsPrerequisiteOf(self, dependencies): for dependency in dependencies: dependency.addPrerequisites([self]) def removeTaskAsPrerequisiteOf(self, dependencies): for dependency in dependencies: dependency.removePrerequisites([self]) @classmethod def dependenciesChangedEventType(class_): return 'pubsub.task.dependencies' @staticmethod def dependenciesSortFunction(**kwargs): ''' Return a sort key for sorting by dependencies. Since a task can have multiple dependencies we first sort the dependencies by their subjects. If the sorter is in tree mode, we also take the dependencies of the children of the task into account, after the dependencies of the task itself. If the sorter is in list mode we also take the dependencies of the parent (recursively) into account, again after the dependencies of the categorizable itself.''' def sortKeyFunction(task): def sortedSubjects(items): return sorted([item.subject(recursive=True) for item in items]) dependencies = task.dependencies() sortedDependencySubjects = sortedSubjects(dependencies) isListMode = not kwargs.get('treeMode', False) childDependencies = task.dependencies(recursive=True, upwards=isListMode) - dependencies sortedDependencySubjects.extend(sortedSubjects(childDependencies)) return sortedDependencySubjects return sortKeyFunction @classmethod def dependenciesSortEventTypes(class_): ''' The event types that influence the dependencies sort order. ''' return (class_.dependenciesChangedEventType(),) # behavior def setShouldMarkCompletedWhenAllChildrenCompleted(self, newValue): if newValue == self.__shouldMarkCompletedWhenAllChildrenCompleted: return self.__shouldMarkCompletedWhenAllChildrenCompleted = newValue pub.sendMessage(self.shouldMarkCompletedWhenAllChildrenCompletedChangedEventType(), newValue=newValue, sender=self) pub.sendMessage(self.percentageCompleteChangedEventType(), newValue=self.percentageComplete(), sender=self) @classmethod def shouldMarkCompletedWhenAllChildrenCompletedChangedEventType(class_): return 'pubsub.task.shouldMarkCompletedWhenAllChildrenCompleted' def shouldMarkCompletedWhenAllChildrenCompleted(self): return self.__shouldMarkCompletedWhenAllChildrenCompleted @classmethod def suggestedPlannedStartDateTime(cls, now=date.Now): return cls.suggestedDateTime('defaultplannedstartdatetime', now) @classmethod def suggestedActualStartDateTime(cls, now=date.Now): return cls.suggestedDateTime('defaultactualstartdatetime', now) @classmethod def suggestedDueDateTime(cls, now=date.Now): return cls.suggestedDateTime('defaultduedatetime', now) @classmethod def suggestedCompletionDateTime(cls, now=date.Now): return cls.suggestedDateTime('defaultcompletiondatetime', now) @classmethod def suggestedReminderDateTime(cls, now=date.Now): return cls.suggestedDateTime('defaultreminderdatetime', now) @classmethod def suggestedDateTime(cls, defaultDateTimeSetting, now=date.Now): # pylint: disable=E1101,W0142 defaultDateTime = cls.settings.get('view', defaultDateTimeSetting) dummy_prefix, defaultDate, defaultTime = defaultDateTime.split('_') dateTime = now() currentTime = dict(hour=dateTime.hour, minute=dateTime.minute, second=dateTime.second, microsecond=dateTime.microsecond) if defaultDate == 'tomorrow': dateTime += date.ONE_DAY elif defaultDate == 'dayaftertomorrow': dateTime += (date.ONE_DAY + date.ONE_DAY) elif defaultDate == 'nextfriday': dateTime = (dateTime + date.ONE_DAY).endOfWorkWeek().replace(**currentTime) elif defaultDate == 'nextmonday': dateTime = (dateTime + date.ONE_WEEK).startOfWorkWeek().replace(**currentTime) if defaultTime == 'startofday': return dateTime.startOfDay() elif defaultTime == 'startofworkingday': startHour = cls.settings.getint('view', 'efforthourstart') return dateTime.replace(hour=startHour, minute=0, second=0, microsecond=0) elif defaultTime == 'currenttime': return dateTime elif defaultTime == 'endofworkingday': endHour = cls.settings.getint('view', 'efforthourend') if endHour >= 24: endHour, minute, second = 23, 59, 59 else: minute, second = 0, 0 return dateTime.replace(hour=endHour, minute=minute, second=second, microsecond=0) elif defaultTime == 'endofday': return dateTime.endOfDay() @classmethod def modificationEventTypes(class_): eventTypes = super(Task, class_).modificationEventTypes() return eventTypes + [class_.plannedStartDateTimeChangedEventType(), class_.dueDateTimeChangedEventType(), class_.actualStartDateTimeChangedEventType(), class_.completionDateTimeChangedEventType(), class_.effortsChangedEventType(), class_.budgetChangedEventType(), class_.percentageCompleteChangedEventType(), class_.priorityChangedEventType(), class_.hourlyFeeChangedEventType(), class_.fixedFeeChangedEventType(), class_.reminderChangedEventType(), class_.recurrenceChangedEventType(), class_.prerequisitesChangedEventType(), class_.dependenciesChangedEventType(), class_.shouldMarkCompletedWhenAllChildrenCompletedChangedEventType()] taskcoach-1.4.3/taskcoachlib/domain/task/tasklist.py000066400000000000000000000045621265347643000225500ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 João Alexandre de Toledo Task Coach 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. Task Coach 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 . ''' from taskcoachlib.i18n import _ from taskcoachlib.domain import categorizable from taskcoachlib import help, operating_system # pylint: disable=W0622 import task class TaskListQueryMixin(object): def nrOfTasksPerStatus(self): statuses = [eachTask.status() for eachTask in self if not eachTask.isDeleted()] count = dict() for status in task.Task.possibleStatuses(): count[status] = statuses.count(status) return count class TaskList(TaskListQueryMixin, categorizable.CategorizableContainer): # FIXME: TaskList should be called TaskCollection or TaskSet newItemMenuText = _('&New task...') + ('\tINSERT' if not operating_system.isMac() else '\tCtrl+N') newItemHelpText = help.taskNew def nrBeingTracked(self): return len(self.tasksBeingTracked()) def tasksBeingTracked(self): return [eachTask for eachTask in self if eachTask.isBeingTracked()] def efforts(self): result = [] for task in self: # pylint: disable=W0621 result.extend(task.efforts()) return result def originalLength(self): ''' Provide a way for bypassing the __len__ method of decorators. ''' return len([t for t in self if not t.isDeleted()]) def minPriority(self): return min(self.__allPriorities()) def maxPriority(self): return max(self.__allPriorities()) def __allPriorities(self): return [task.priority() for task in self if not task.isDeleted()] or (0,) # pylint: disable=W0621 taskcoach-1.4.3/taskcoachlib/filesystem/000077500000000000000000000000001265347643000203045ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/filesystem/__init__.py000066400000000000000000000020111265347643000224070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import platform from fs_poller import * _system = platform.system() if _system == 'Linux': from fs_inotify import * elif _system == 'Windows': from fs_win32 import * elif _system == 'Darwin': from fs_darwin import * else: class FilesystemNotifier(FilesystemPollerNotifier): pass taskcoach-1.4.3/taskcoachlib/filesystem/base.py000066400000000000000000000034461265347643000215770ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, atexit class NotifierBase(object): def __init__(self): super(NotifierBase, self).__init__() self._filename = None self._path = None self._name = None self.stamp = None atexit.register(self._stop) def _stop(self): self.stop() def stop(self): pass # Should be overloaded if needed def _check(self, filename): return self.stamp is None or \ (filename and \ os.path.exists(filename) and \ os.stat(filename).st_mtime > self.stamp) def setFilename(self, filename): self._filename = filename self.stamp = None if filename: self._path, self._name = os.path.split(filename) if os.path.exists(filename): self.stamp = os.stat(filename).st_mtime else: self._path, self._name = None, None def saved(self): if self._filename and os.path.exists(self._filename): self.stamp = os.stat(self._filename).st_mtime else: self.stamp = None taskcoach-1.4.3/taskcoachlib/filesystem/fs_darwin.py000066400000000000000000000162751265347643000226450ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from ctypes import * import os, tempfile, threading from taskcoachlib.filesystem import base _libc = CDLL('libc.dylib') # Constants O_EVTONLY = 0x8000 EVFILT_VNODE = -4 EV_ADD = 0x0001 EV_ENABLE = 0x0004 EV_ONESHOT = 0x0010 NOTE_DELETE = 0x00000001 NOTE_EXTEND = 0x00000004 NOTE_WRITE = 0x00000002 NOTE_ATTRIB = 0x00000008 NOTE_LINK = 0x00000010 NOTE_RENAME = 0x00000020 NOTE_REVOKE = 0x00000040 # Structures class keventstruct(Structure): _fields_ = [('ident', c_ulong), ('filter', c_int16), ('flags', c_uint16), ('fflags', c_uint32), ('data', c_long), ('udata', c_void_p)] # Functions opendir = CFUNCTYPE(c_void_p, c_char_p)(('opendir', _libc)) closedir = CFUNCTYPE(c_int, c_void_p)(('closedir', _libc)) open_ = CFUNCTYPE(c_int, c_char_p, c_int)(('open', _libc)) close = CFUNCTYPE(c_int, c_int)(('close', _libc)) # dirfd seems to be defined as a macro. Let's assume the fd field is # the first one in the structure. def dirfd(p): return cast(p, POINTER(c_int)).contents.value kqueue = CFUNCTYPE(c_int)(('kqueue', _libc)) kevent = CFUNCTYPE(c_int, c_int, POINTER(keventstruct), c_int, POINTER(keventstruct), c_int, c_void_p)(('kevent', _libc)) # Macros def EV_SET(kev, ident, filter_, flags, fflags, data, udata): kev.ident = ident kev.filter = filter_ kev.flags = flags kev.fflags = fflags kev.data = data kev.udata = udata def traceEvents(fflags): names = ['NOTE_WRITE', 'NOTE_EXTEND', 'NOTE_DELETE', 'NOTE_ATTRIB', 'NOTE_LINK', 'NOTE_RENAME', 'NOTE_REVOKE'] return ', '.join([name for name in names if fflags & globals()[name]]) # Higher-evel API class FileMonitor(object): def __init__(self, filename, callback): super(FileMonitor, self).__init__() self.callback = callback if isinstance(filename, unicode): filename = filename.encode('UTF-8') # Not sure... self._filename = filename path, name = os.path.split(filename) self.fd = None if os.path.exists(filename): self.fd = open_(filename, O_EVTONLY) if self.fd < 0: raise OSError('Could not open "%s"' % filename) self.state = 2 else: self.state = 1 self.dir = opendir(path) if self.dir is None: close(self.fd) self.fd = None raise OSError('Could not open "%s"' % path) self.dirfd = dirfd(self.dir) self.cancelled = False def loop(self): kq = kqueue() try: event = keventstruct() changes = (keventstruct * 2)() EV_SET(changes[0], self.dirfd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_ONESHOT, NOTE_WRITE | NOTE_EXTEND, 0, 0) if self.fd is not None: EV_SET(changes[1], self.fd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_ONESHOT, NOTE_WRITE | NOTE_EXTEND | NOTE_DELETE | NOTE_ATTRIB | \ NOTE_LINK | NOTE_RENAME | NOTE_REVOKE, 0, 0) while True: if kevent(kq, changes, self.state, byref(event), 1, None) > 0: if self.cancelled: break if self.state == 2: if event.ident == self.fd and event.fflags & (NOTE_DELETE | NOTE_RENAME): # File deleted. close(self.fd) self.fd = None self.state = 1 elif event.ident == self.fd: self.onFileChanged() elif self.state == 1: # The event can only concern the directory anyway. if os.path.exists(self._filename): # File was re-created self.fd = open_(self._filename, O_EVTONLY) if self.fd < 0: raise OSError('Could not open "%s"' % self._filename) EV_SET(changes[1], self.fd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_ONESHOT, NOTE_WRITE | NOTE_EXTEND | NOTE_DELETE | NOTE_ATTRIB | \ NOTE_LINK | NOTE_RENAME | NOTE_REVOKE, 0, 0) self.state = 2 self.onFileChanged() finally: close(kq) def stop(self): self.cancelled = True # To break the kevent() call tempfile.TemporaryFile(dir=os.path.split(self._filename)[0]) def close(self): if self.fd is not None: close(self.fd) self.fd = None if self.dir is not None: closedir(self.dir) self.dir = None def __del__(self): self.close() def onFileChanged(self): self.callback(self._filename) class FilesystemNotifier(base.NotifierBase): def __init__(self): super(FilesystemNotifier, self).__init__() self.monitor = None self.thread = None self.lock = threading.Lock() def setFilename(self, filename): self.lock.acquire() try: if self.monitor is not None: self.monitor.stop() self.thread.join() self.monitor.close() self.monitor = None self.thread = None super(FilesystemNotifier, self).setFilename(filename) if self._filename: self.monitor = FileMonitor(self._filename, self._onFileChanged) self.thread = threading.Thread(target=self._run) self.thread.setDaemon(True) self.thread.start() finally: self.lock.release() def stop(self): self.lock.acquire() try: if self.monitor is not None: self.monitor.stop() self.thread.join() self.monitor.close() self.monitor = None self.thread = None finally: self.lock.release() def _onFileChanged(self, filename): if self._check(filename): self.stamp = os.stat(filename).st_mtime self.onFileChanged() def saved(self): with self.lock: super(FilesystemNotifier, self).saved() def onFileChanged(self): raise NotImplementedError def _run(self): self.monitor.loop() taskcoach-1.4.3/taskcoachlib/filesystem/fs_inotify.py000066400000000000000000000040351265347643000230310ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' # inotify wrapper from this recipe: http://code.activestate.com/recipes/576375-low-level-inotify-wrapper/ # Slightly modified to handle timeout and use select(); cleanup error handling from twisted.internet.inotify import INotify from twisted.python.filepath import FilePath from taskcoachlib.filesystem import base import os class FilesystemNotifier(base.NotifierBase): def __init__(self): super(FilesystemNotifier, self).__init__() self.notifier = INotify() self.notifier.startReading() def setFilename(self, filename): if self._path is not None: self.notifier.ignore(FilePath(self._path)) super(FilesystemNotifier, self).setFilename(filename) if self._path is not None: self.notifier.watch(FilePath(self._path), callbacks=[self.__notify]) def stop(self): if self.notifier is not None: self.notifier.stopReading() self.notifier = None def __notify(self, handle, filepath, mask): myName = self._filename if myName is not None: if filepath.basename() == os.path.split(myName)[-1]: if self._check(myName) and myName: self.stamp = os.stat(myName).st_mtime self.onFileChanged() def onFileChanged(self): raise NotImplementedError taskcoach-1.4.3/taskcoachlib/filesystem/fs_poller.py000066400000000000000000000041061265347643000226440ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, time, threading from taskcoachlib.filesystem import base class FilesystemPollerNotifier(base.NotifierBase, threading.Thread): def __init__(self): super(FilesystemPollerNotifier, self).__init__() self.lock = threading.RLock() self.cancelled = False self.evt = threading.Event() self.setDaemon(True) self.start() def setFilename(self, filename): self.lock.acquire() try: super(FilesystemPollerNotifier, self).setFilename(filename) finally: self.lock.release() def run(self): try: while not self.cancelled: self.lock.acquire() try: if self._filename and os.path.exists(self._filename): stamp = os.stat(self._filename).st_mtime if stamp > self.stamp: self.stamp = stamp self.onFileChanged() finally: self.lock.release() self.evt.wait(10) except TypeError: pass def stop(self): self.cancelled = True self.evt.set() self.join() def saved(self): with self.lock: super(FilesystemPollerNotifier, self).saved() def onFileChanged(self): raise NotImplementedError taskcoach-1.4.3/taskcoachlib/filesystem/fs_win32.py000066400000000000000000000106311265347643000223110ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from win32file import * from win32con import * from win32event import * import os, threading from taskcoachlib.filesystem import base class DirectoryWatcher(object): ADDED = 1 REMOVED = 2 MODIFIED = 3 RENAMED_OLD = 4 RENAMED_NEW = 5 def __init__(self, path): super(DirectoryWatcher, self).__init__() self.dirHandle = CreateFile(path, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_DELETE|FILE_SHARE_WRITE, None, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_OVERLAPPED, 0) self.buffer = AllocateReadBuffer(8192) self.overlapped = OVERLAPPED() self.overlapped.hEvent = CreateEvent(None, False, False, None) def wait(self, recurse=False, timeout=INFINITE): ReadDirectoryChangesW(self.dirHandle, self.buffer, recurse, FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME | \ FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_SIZE | \ FILE_NOTIFY_CHANGE_LAST_WRITE, self.overlapped) rc = WaitForSingleObject(self.overlapped.hEvent, timeout) if rc == WAIT_OBJECT_0: try: size = GetOverlappedResult(self.dirHandle, self.overlapped, True) except Exception, e: if e.args[0] == 995: return None raise if size == 0: return None else: return FILE_NOTIFY_INFORMATION(self.buffer, size) def stop(self): CloseHandle(self.dirHandle) class FilesystemNotifier(base.NotifierBase): def __init__(self): super(FilesystemNotifier, self).__init__() self.watcher = None self.thread = None self.lock = threading.Lock() def setFilename(self, filename): self.lock.acquire() try: if self.watcher is not None: self.watcher.stop() self.thread.join() self.watcher = None self.thread = None super(FilesystemNotifier, self).setFilename(filename) if self._filename: self.watcher = DirectoryWatcher(self._path) self.thread = threading.Thread(target=self._run) self.thread.setDaemon(True) self.thread.start() finally: self.lock.release() def stop(self): self.lock.acquire() try: if self.watcher is not None: self.watcher.stop() self.thread.join() self.watcher = None self.thread = None finally: self.lock.release() def saved(self): with self.lock: super(FilesystemNotifier, self).saved() def onFileChanged(self): raise NotImplementedError def _run(self): while True: self.lock.acquire() try: watcher, myname = self.watcher, self._filename finally: self.lock.release() if watcher is not None: changes = watcher.wait() if changes is None: return for change, name in changes: if name == os.path.split(myname)[-1]: if self._check(myname) and myname: self.stamp = os.stat(myname).st_mtime self.onFileChanged() break taskcoach-1.4.3/taskcoachlib/gui/000077500000000000000000000000001265347643000167045ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/gui/__init__.py000066400000000000000000000020601265347643000210130ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from splash import SplashScreen from mainwindow import MainWindow from dialog.editor import TaskEditor, EffortEditor, CategoryEditor from dialog.preferences import Preferences from iocontroller import IOController from remindercontroller import ReminderController from artprovider import init, itemImages from taskbaricon import TaskBarIcon taskcoach-1.4.3/taskcoachlib/gui/artprovider.py000066400000000000000000000213211265347643000216160ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, operating_system from taskcoachlib.i18n import _ import wx import icons class ArtProvider(wx.ArtProvider): def CreateBitmap(self, artId, artClient, size): if '+' in artId: w, h = size main, overlay = artId.split('+') overlayImage = self._CreateBitmap(overlay, artClient, size).ConvertToImage() overlayImage.Rescale(int(w / 2), int(h / 2), wx.IMAGE_QUALITY_HIGH) overlayAlpha = overlayImage.GetAlphaData() overlayBitmap = overlayImage.ConvertToBitmap() mainImage = self._CreateBitmap(main, artClient, size).ConvertToImage() mainAlpha = mainImage.GetAlphaData() mainImage.SetAlphaData(chr(255) * len(mainAlpha)) mainBitmap = mainImage.ConvertToBitmap() dstDC = wx.MemoryDC() dstDC.SelectObject(mainBitmap) try: dstDC.DrawBitmap(overlayBitmap, w - int(w / 2), h - int(h / 2), True) finally: dstDC.SelectObject(wx.NullBitmap) mainImage = mainBitmap.ConvertToImage() # Just drawing works fine on OS X but clips to the destination bitmap on # other platforms. There doesn't seem to be anything better than this. resultAlpha = list() for y in xrange(h): for x in xrange(w): alpha = mainAlpha[y * w + x] if x >= w / 2 and y >= h / 2: alpha = max(alpha, overlayAlpha[(y - h / 2) * w / 2 + x - w / 2]) resultAlpha.append(alpha) mainImage.SetAlphaData(''.join(resultAlpha)) return mainImage.ConvertToBitmap() else: return self._CreateBitmap(artId, artClient, size) def _CreateBitmap(self, artId, artClient, size): if not artId: return wx.EmptyBitmap(*size) catalogKey = '%s%dx%d' % (artId, size[0], size[1]) if catalogKey in icons.catalog.keys(): bitmap = icons.catalog[catalogKey].getBitmap() if artClient == wx.ART_FRAME_ICON: bitmap = self.convertAlphaToMask(bitmap) return bitmap else: return wx.NullBitmap @staticmethod def convertAlphaToMask(bitmap): image = wx.ImageFromBitmap(bitmap) image.ConvertAlphaToMask() return wx.BitmapFromImage(image) class IconProvider(object): __metaclass__ = patterns.Singleton def __init__(self): self.__iconCache = dict() if operating_system.isMac(): self.__iconSizeOnCurrentPlatform = 128 elif operating_system.isGTK(): self.__iconSizeOnCurrentPlatform = 48 else: self.__iconSizeOnCurrentPlatform = 16 def getIcon(self, iconTitle): ''' Return the icon. Use a cache to prevent leakage of GDI object count. ''' try: return self.__iconCache[iconTitle] except KeyError: icon = self.getIconFromArtProvider(iconTitle) self.__iconCache[iconTitle] = icon return icon def iconBundle(self, iconTitle): ''' Create an icon bundle with icons of different sizes. ''' bundle = wx.IconBundle() for size in (16, 22, 32, 48, 64, 128): bundle.AddIcon(self.getIconFromArtProvider(iconTitle, size)) return bundle def getIconFromArtProvider(self, iconTitle, iconSize=None): size = iconSize or self.__iconSizeOnCurrentPlatform # I just spent two hours trying to get rid of garbage in the icon # background on KDE. I give up. if operating_system.isGTK(): return wx.ArtProvider_GetIcon(iconTitle, wx.ART_FRAME_ICON, (size, size)) # wx.ArtProvider_GetIcon doesn't convert alpha to mask, so we do it # ourselves: bitmap = wx.ArtProvider_GetBitmap(iconTitle, wx.ART_FRAME_ICON, (size, size)) bitmap = ArtProvider.convertAlphaToMask(bitmap) return wx.IconFromBitmap(bitmap) def iconBundle(iconTitle): return IconProvider().iconBundle(iconTitle) def getIcon(iconTitle): return IconProvider().getIcon(iconTitle) def init(): if operating_system.isWindows() and wx.DisplayDepth() >= 32: wx.SystemOptions_SetOption("msw.remap", "0") # pragma: no cover try: wx.ArtProvider_PushProvider(ArtProvider()) # pylint: disable=E1101 except AttributeError: wx.ArtProvider.Push(ArtProvider()) chooseableItemImages = dict( \ arrow_down_icon=_('Arrow down'), arrow_down_with_status_icon=_('Arrow down with status'), arrows_looped_blue_icon=_('Blue arrows looped'), arrows_looped_green_icon=_('Green arrows looped'), arrow_up_icon=_('Arrow up'), arrow_up_with_status_icon=_('Arrow up with status'), bomb_icon=_('Bomb'), book_icon=_('Book'), books_icon=_('Books'), box_icon=_('Box'), bug_icon=_('Ladybug'), cake_icon=_('Cake'), calculator_icon=_('Calculator'), calendar_icon=_('Calendar'), cat_icon=_('Cat'), cd_icon=_('Compact disc (CD)'), charts_icon=_('Charts'), chat_icon=_('Chatting'), checkmark_green_icon=_('Check mark'), checkmark_green_icon_multiple=_('Check marks'), clock_icon=_('Clock'), clock_alarm_icon=_('Alarm clock'), clock_stopwatch_icon=_('Stopwatch'), cogwheel_icon=_('Cogwheel'), cogwheels_icon=_('Cogwheels'), computer_desktop_icon=_('Desktop computer'), computer_laptop_icon=_('Laptop computer'), computer_handheld_icon=_('Handheld computer'), cross_red_icon=_('Red cross'), die_icon=_('Die'), document_icon=_('Document'), earth_blue_icon=_('Blue earth'), earth_green_icon=_('Green earth'), envelope_icon=_('Envelope'), envelopes_icon=_('Envelopes'), folder_blue_icon=_('Blue folder'), folder_blue_light_icon=_('Light blue folder'), folder_green_icon=_('Green folder'), folder_grey_icon=_('Grey folder'), folder_orange_icon=_('Orange folder'), folder_purple_icon=_('Purple folder'), folder_red_icon=_('Red folder'), folder_yellow_icon=_('Yellow folder'), folder_blue_arrow_icon=_('Blue folder with arrow'), heart_icon=_('Heart'), hearts_icon=_('Hearts'), house_green_icon=_('Green house'), house_red_icon=_('Red house'), key_icon=_('Key'), keys_icon=_('Keys'), lamp_icon=_('Lamp'), led_blue_questionmark_icon=_('Question mark'), led_blue_information_icon=_('Information'), led_blue_icon=_('Blue led'), led_blue_light_icon=_('Light blue led'), led_grey_icon=_('Grey led'), led_green_icon=_('Green led'), led_green_light_icon=_('Light green led'), led_orange_icon=_('Orange led'), led_purple_icon=_('Purple led'), led_red_icon=_('Red led'), led_yellow_icon=_('Yellow led'), life_ring_icon=_('Life ring'), lock_locked_icon=_('Locked lock'), lock_unlocked_icon=_('Unlocked lock'), magnifier_glass_icon=_('Magnifier glass'), music_piano_icon=_('Piano'), music_note_icon=_('Music note'), note_icon=_('Note'), palette_icon=_('Palette'), paperclip_icon=_('Paperclip'), pencil_icon=_('Pencil'), person_icon=_('Person'), persons_icon=_('People'), person_id_icon=_('Identification'), person_talking_icon=_('Person talking'), sign_warning_icon=_('Warning sign'), symbol_minus_icon=_('Minus'), symbol_plus_icon=_('Plus'), star_red_icon=_('Red star'), star_yellow_icon=_('Yellow star'), trafficlight_icon=_('Traffic light'), trashcan_icon=_('Trashcan'), weather_lightning_icon=_('Lightning'), weather_umbrella_icon=_('Umbrella'), weather_sunny_icon=_('Partly sunny'), wrench_icon=_('Wrench')) itemImages = chooseableItemImages.keys() + ['folder_blue_open_icon', 'folder_green_open_icon', 'folder_grey_open_icon', 'folder_orange_open_icon', 'folder_red_open_icon', 'folder_purple_open_icon', 'folder_yellow_open_icon', 'folder_blue_light_open_icon'] chooseableItemImages[''] = _('No icon') taskcoach-1.4.3/taskcoachlib/gui/dialog/000077500000000000000000000000001265347643000201435ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/gui/dialog/__init__.py000077500000000000000000000015711265347643000222630ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import developer_message import entry import export import preferences import syncpreferences import templates from backupmanager import BackupManagerDialog taskcoach-1.4.3/taskcoachlib/gui/dialog/attributesync.py000066400000000000000000000110001265347643000234050ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.i18n import _ import wx class AttributeSync(object): ''' Class used for keeping an attribute of a domain object synchronized with a control in a dialog. If the user edits the value using the control, the domain object is changed, using the appropriate command. If the attribute of the domain object is changed (e.g. in another dialog) the value of the control is updated. ''' def __init__(self, attributeGetterName, entry, currentValue, items, commandClass, editedEventType, changedEventType, callback=None, **kwargs): self._getter = attributeGetterName self._entry = entry self._currentValue = currentValue self._items = items self._commandClass = commandClass self.__commandKwArgs = kwargs self.__changedEventType = changedEventType self.__callback = callback entry.Bind(editedEventType, self.onAttributeEdited) if len(items) == 1: self.__start_observing_attribute(changedEventType, items[0]) def onAttributeEdited(self, event): event.Skip() new_value = self.getValue() if new_value != self._currentValue: self._currentValue = new_value commandKwArgs = self.commandKwArgs(new_value) self._commandClass(None, self._items, **commandKwArgs).do() # pylint: disable=W0142 self.__invokeCallback(new_value) def onAttributeChanged_Deprecated(self, event): # pylint: disable=W0613 if self._entry: new_value = getattr(self._items[0], self._getter)() if new_value != self._currentValue: self._currentValue = new_value self.setValue(new_value) self.__invokeCallback(new_value) else: self.__stop_observing_attribute() def onAttributeChanged(self, newValue, sender): if sender in self._items: if self._entry: if newValue != self._currentValue: self._currentValue = newValue self.setValue(newValue) self.__invokeCallback(newValue) else: self.__stop_observing_attribute() def commandKwArgs(self, new_value): self.__commandKwArgs['newValue'] = new_value return self.__commandKwArgs def setValue(self, new_value): self._entry.SetValue(new_value) def getValue(self): return self._entry.GetValue() def __invokeCallback(self, value): if self.__callback is not None: try: self.__callback(value) except Exception, e: wx.MessageBox(unicode(e), _('Error'), wx.OK) def __start_observing_attribute(self, eventType, eventSource): if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: patterns.Publisher().registerObserver(self.onAttributeChanged_Deprecated, eventType=eventType, eventSource=eventSource) def __stop_observing_attribute(self): try: pub.unsubscribe(self.onAttributeChanged, self.__changedEventType) except pub.TopicNameError: pass patterns.Publisher().removeObserver(self.onAttributeChanged_Deprecated) class FontColorSync(AttributeSync): def setValue(self, newValue): self._entry.SetColor(newValue) def getValue(self): return self._entry.GetColor() taskcoach-1.4.3/taskcoachlib/gui/dialog/backupmanager.py000066400000000000000000000120641265347643000233200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, os from taskcoachlib.persistence import BackupManifest from taskcoachlib.i18n import _ from taskcoachlib import render class BackupManagerDialog(wx.Dialog): def __init__(self, parent, settings, selectedFile=None): super(BackupManagerDialog, self).__init__(parent, wx.ID_ANY, style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER) container = wx.Panel(self) self.__files = wx.ListCtrl(container, wx.ID_ANY, style=wx.LC_REPORT|wx.LC_SINGLE_SEL) self.__files.InsertColumn(0, _('File')) self.__files.InsertColumn(1, _('Full path')) self.__backups = wx.ListCtrl(container, wx.ID_ANY, style=wx.LC_REPORT|wx.LC_SINGLE_SEL) self.__backups.InsertColumn(0, _('Date')) self.__backups.Enable(False) self.__btnRestore = wx.Button(container, wx.ID_ANY, _('Restore')) self.__btnRestore.Enable(False) self.__filename = selectedFile self.__selection = (None, None) vsz = wx.BoxSizer(wx.VERTICAL) hsz = wx.BoxSizer(wx.HORIZONTAL) hsz.Add(self.__files, 1, wx.EXPAND|wx.ALL, 3) hsz.Add(self.__backups, 1, wx.EXPAND|wx.ALL, 3) hsz.Add(self.__btnRestore, 0, wx.ALIGN_TOP|wx.ALL, 3) vsz.Add(hsz, 1, wx.EXPAND) container.SetSizer(vsz) vsz = wx.BoxSizer(wx.VERTICAL) vsz.Add(container, 1, wx.EXPAND) btn = wx.Button(self, wx.ID_ANY, _('Close')) vsz.Add(btn, 0, wx.ALL|wx.ALIGN_RIGHT, 3) self.SetSizer(vsz) self.__manifest = BackupManifest(settings) self.__filenames = self.__manifest.listFiles() selection = None for filename in self.__filenames: item = self.__files.InsertStringItem(self.__files.GetItemCount(), os.path.split(filename)[-1]) self.__files.SetStringItem(item, 1, filename) if filename == selectedFile: selection = item self.SetSize(wx.Size(600, 400)) self.CentreOnParent() wx.EVT_BUTTON(btn, wx.ID_ANY, self.DoClose) wx.EVT_LIST_ITEM_SELECTED(self.__files, wx.ID_ANY, self._OnSelectFile) wx.EVT_LIST_ITEM_DESELECTED(self.__files, wx.ID_ANY, self._OnDeselectFile) wx.EVT_LIST_ITEM_SELECTED(self.__backups, wx.ID_ANY, self._OnSelectBackup) wx.EVT_LIST_ITEM_DESELECTED(self.__backups, wx.ID_ANY, self._OnDeselectBackup) wx.EVT_BUTTON(self.__btnRestore, wx.ID_ANY, self._OnRestore) if selection is not None: self.__files.SetItemState(selection, wx.LIST_STATE_FOCUSED|wx.LIST_STATE_SELECTED, wx.LIST_STATE_FOCUSED|wx.LIST_STATE_SELECTED) self.__files.SetColumnWidth(0, -1) self.__files.SetColumnWidth(1, -1) def restoredFilename(self): return self.__filename def DoClose(self, event): self.EndModal(wx.ID_CANCEL) def _OnSelectFile(self, event): self.__backups.DeleteAllItems() for index, dateTime in enumerate(self.__manifest.listBackups(self.__filenames[event.GetIndex()])): self.__backups.InsertStringItem(index, render.dateTime(dateTime, humanReadable=True)) self.__backups.SetColumnWidth(0, -1) self.__backups.Enable(True) self.__selection = (self.__filenames[event.GetIndex()], None) def _OnDeselectFile(self, event): self.__btnRestore.Enable(False) self.__backups.DeleteAllItems() self.__backups.Enable(False) self.__selection = (None, None) def _OnSelectBackup(self, event): self.__btnRestore.Enable(True) filename = self.__selection[0] self.__selection = (filename, self.__manifest.listBackups(filename)[event.GetIndex()]) def _OnDeselectBackup(self, event): self.__btnRestore.Enable(False) self.__selection = (self.__selection[0], None) def _OnRestore(self, event): filename, dateTime = self.__selection dlg = wx.FileDialog(self, _('Choose the restoration destination'), defaultDir=os.path.dirname(filename), defaultFile=os.path.split(filename)[-1], wildcard='*.tsk', style=wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) try: if dlg.ShowModal() == wx.ID_OK: self.__filename = dlg.GetPath() self.__manifest.restoreFile(filename, dateTime, self.__filename) self.EndModal(wx.ID_OK) finally: dlg.Destroy() taskcoach-1.4.3/taskcoachlib/gui/dialog/developer_message.py000066400000000000000000000052331265347643000242110ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from wx.lib import hyperlink from taskcoachlib import meta from taskcoachlib.i18n import _ from wx.lib import sized_controls class MessageDialog(sized_controls.SizedDialog): # pylint: disable=R0904,R0901 ''' Dialog for showing messages from the developers. ''' def __init__(self, *args, **kwargs): self.__settings = kwargs.pop('settings') self.__message = kwargs.pop('message') self.__url = kwargs.pop('url') super(MessageDialog, self).__init__(title=_('Message from the %s ' 'developers') % meta.data.name, *args, **kwargs) pane = self.GetContentsPane() pane.SetSizerType("vertical") self.__create_message(pane) button_sizer = self.CreateStdDialogButtonSizer(wx.OK) self.SetButtonSizer(button_sizer) self.Fit() self.CentreOnParent() button_sizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.on_close) self.Bind(wx.EVT_CLOSE, self.on_close) def __create_message(self, pane): ''' Create the interior parts of the dialog, i.e. the message for the user. ''' message = wx.StaticText(pane, label=self.__message) message.Wrap(500) url_panel = sized_controls.SizedPanel(pane) url_panel.SetSizerType('horizontal') wx.StaticText(url_panel, label=_('See:')) hyperlink.HyperLinkCtrl(url_panel, label=self.__url) def current_message(self): ''' Return the currently displayed message. ''' return self.__message def current_url(self): ''' Return the currently displayed url. ''' return self.__url def on_close(self, event): ''' When the user closes the dialog, remember what the last displayed message was. ''' event.Skip() self.__settings.settext('view', 'lastdevelopermessage', self.__message) taskcoach-1.4.3/taskcoachlib/gui/dialog/editor.py000066400000000000000000002017361265347643000220140ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2012 Nicola Chiapolini Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Carl Zmola Task Coach 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. Task Coach 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 . ''' from taskcoachlib import widgets, patterns, command, operating_system, render from taskcoachlib.domain import task, date, note, attachment from taskcoachlib.gui import viewer, uicommand, windowdimensionstracker from taskcoachlib.gui.dialog import entry, attributesync from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.thirdparty import smartdatetimectrl as sdtc from taskcoachlib.help.balloontips import BalloonTipManager import os.path import wx class Page(patterns.Observer, widgets.BookPage): columns = 2 def __init__(self, items, *args, **kwargs): self.items = items self.__observers = [] super(Page, self).__init__(columns=self.columns, *args, **kwargs) self.addEntries() self.fit() def selected(self): pass def addEntries(self): raise NotImplementedError def entries(self): ''' A mapping of names of columns to entries on this editor page. ''' return dict() def setFocusOnEntry(self, column_name): try: the_entry = self.entries()[column_name] except KeyError: the_entry = self.entries()['firstEntry'] self.__set_selection_and_focus(the_entry) def __set_selection_and_focus(self, the_entry): ''' If the entry has selectable text, select the text so that the user can start typing over it immediately, except on Linux because it overwrites the X clipboard. ''' if self.focusTextControl(): the_entry.SetFocus() try: if operating_system.isWindows() and \ isinstance(the_entry, wx.TextCtrl): # XXXFIXME: See SR #325. Disable this for now. # This ensures that if the TextCtrl value is more than can # be displayed, it will display the start instead of the # end: """from taskcoachlib.thirdparty import SendKeys # pylint: disable=W0404 SendKeys.SendKeys('{END}+{HOME}')""" # Scrol to left... the_entry.SetInsertionPoint(0) the_entry.SetSelection(-1, -1) # Select all text except (AttributeError, TypeError): pass # Not a TextCtrl def focusTextControl(self): return True def close(self): self.removeInstance() for entry in self.entries().values(): if isinstance(entry, widgets.DateTimeCtrl): entry.Cleanup() class SubjectPage(Page): pageName = 'subject' pageTitle = _('Description') pageIcon = 'pencil_icon' def __init__(self, items, parent, settings, *args, **kwargs): self._settings = settings super(SubjectPage, self).__init__(items, parent, *args, **kwargs) def SetFocus(self): # Skip this on GTK because it selects the control's text, which # overrides the X selection. Simply commenting out the SetFocus() in # __load_perspective is not enough because the aui notebook calls this # when the user selects a tab. if self.focusTextControl(): super(SubjectPage, self).SetFocus() def focusTextControl(self): return self._settings.getboolean('os_linux', 'focustextentry') def addEntries(self): self.addSubjectEntry() self.addDescriptionEntry() self.addCreationDateTimeEntry() self.addModificationDateTimeEntry() def addSubjectEntry(self): # pylint: disable=W0201 current_subject = self.items[0].subject() if len(self.items) == 1 \ else _('Edit to change all subjects') self._subjectEntry = widgets.SingleLineTextCtrl(self, current_subject) self._subjectSync = attributesync.AttributeSync('subject', self._subjectEntry, current_subject, self.items, command.EditSubjectCommand, wx.EVT_KILL_FOCUS, self.items[0].subjectChangedEventType()) self.addEntry(_('Subject'), self._subjectEntry) def addDescriptionEntry(self): # pylint: disable=W0201 def combined_description(items): return u'[%s]\n\n' % _('Edit to change all descriptions') + \ '\n\n'.join(item.description() for item in items) current_description = self.items[0].description() \ if len(self.items) == 1 else combined_description(self.items) self._descriptionEntry = widgets.MultiLineTextCtrl(self, current_description) native_info_string = self._settings.get('editor', 'descriptionfont') font = wx.FontFromNativeInfoString(native_info_string) \ if native_info_string else None if font: self._descriptionEntry.SetFont(font) self._descriptionSync = attributesync.AttributeSync('description', self._descriptionEntry, current_description, self.items, command.EditDescriptionCommand, wx.EVT_KILL_FOCUS, self.items[0].descriptionChangedEventType()) self.addEntry(_('Description'), self._descriptionEntry, growable=True) def addCreationDateTimeEntry(self): creation_datetimes = [item.creationDateTime() for item in self.items] min_creation_datetime = min(creation_datetimes) max_creation_datetime = max(creation_datetimes) creation_text = render.dateTime(min_creation_datetime, humanReadable=True) if max_creation_datetime - min_creation_datetime > date.ONE_MINUTE: creation_text += ' - %s' % render.dateTime(max_creation_datetime, humanReadable=True) self.addEntry(_('Creation date'), creation_text) def addModificationDateTimeEntry(self): self._modificationTextEntry = wx.StaticText(self, label=self.__modification_text()) self.addEntry(_('Modification date'), self._modificationTextEntry) for eventType in self.items[0].modificationEventTypes(): if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: patterns.Publisher().registerObserver(self.onAttributeChanged_Deprecated, eventType=eventType, eventSource=self.items[0]) def __modification_text(self): modification_datetimes = [item.modificationDateTime() for item in self.items] min_modification_datetime = min(modification_datetimes) max_modification_datetime = max(modification_datetimes) modification_text = render.dateTime(min_modification_datetime, humanReadable=True) if max_modification_datetime - min_modification_datetime > date.ONE_MINUTE: modification_text += ' - %s' % render.dateTime(max_modification_datetime, humanReadable=True) return modification_text def onAttributeChanged(self, newValue, sender): self._modificationTextEntry.SetLabel(self.__modification_text()) def onAttributeChanged_Deprecated(self, *args, **kwargs): self._modificationTextEntry.SetLabel(self.__modification_text()) def close(self): super(SubjectPage, self).close() for eventType in self.items[0].modificationEventTypes(): try: pub.unsubscribe(self.onAttributeChanged, eventType) except pub.TopicNameError: pass patterns.Publisher().removeObserver(self.onAttributeChanged_Deprecated) def entries(self): return dict(firstEntry=self._subjectEntry, subject=self._subjectEntry, description=self._descriptionEntry, creationDateTime=self._subjectEntry, modificationDateTime=self._subjectEntry) class TaskSubjectPage(SubjectPage): def addEntries(self): # Override to insert a priority entry between the description and the # creation date/time entry self.addSubjectEntry() self.addDescriptionEntry() self.addPriorityEntry() self.addCreationDateTimeEntry() self.addModificationDateTimeEntry() def addPriorityEntry(self): # pylint: disable=W0201 current_priority = self.items[0].priority() if len(self.items) == 1 else 0 self._priorityEntry = widgets.SpinCtrl(self, size=(100, -1), value=current_priority) self._prioritySync = attributesync.AttributeSync('priority', self._priorityEntry, current_priority, self.items, command.EditPriorityCommand, wx.EVT_SPINCTRL, self.items[0].priorityChangedEventType()) self.addEntry(_('Priority'), self._priorityEntry, flags=[None, wx.ALL]) def entries(self): entries = super(TaskSubjectPage, self).entries() entries['priority'] = self._priorityEntry return entries class CategorySubjectPage(SubjectPage): def addEntries(self): # Override to insert an exclusive subcategories entry # between the description and the creation date/time entry self.addSubjectEntry() self.addDescriptionEntry() self.addExclusiveSubcategoriesEntry() self.addCreationDateTimeEntry() self.addModificationDateTimeEntry() def addExclusiveSubcategoriesEntry(self): # pylint: disable=W0201 currentExclusivity = self.items[0].hasExclusiveSubcategories() if len(self.items) == 1 else False self._exclusiveSubcategoriesCheckBox = wx.CheckBox(self, label=_('Mutually exclusive')) self._exclusiveSubcategoriesCheckBox.SetValue(currentExclusivity) self._exclusiveSubcategoriesSync = attributesync.AttributeSync( \ 'hasExclusiveSubcategories', self._exclusiveSubcategoriesCheckBox, currentExclusivity, self.items, command.EditExclusiveSubcategoriesCommand, wx.EVT_CHECKBOX, self.items[0].exclusiveSubcategoriesChangedEventType()) self.addEntry(_('Subcategories'), self._exclusiveSubcategoriesCheckBox, flags=[None, wx.ALL]) class AttachmentSubjectPage(SubjectPage): def addEntries(self): # Override to insert a location entry between the subject and # description entry self.addSubjectEntry() self.addLocationEntry() self.addDescriptionEntry() self.addCreationDateTimeEntry() self.addModificationDateTimeEntry() def addLocationEntry(self): panel = wx.Panel(self) sizer = wx.BoxSizer(wx.HORIZONTAL) # pylint: disable=W0201 current_location = self.items[0].location() if len(self.items) == 1 else _('Edit to change location of all attachments') self._locationEntry = widgets.SingleLineTextCtrl(panel, current_location) self._locationSync = attributesync.AttributeSync('location', self._locationEntry, current_location, self.items, command.EditAttachmentLocationCommand, wx.EVT_KILL_FOCUS, self.items[0].locationChangedEventType()) sizer.Add(self._locationEntry, 1, wx.ALL, 3) if all(item.type_ == 'file' for item in self.items): button = wx.Button(panel, wx.ID_ANY, _('Browse')) sizer.Add(button, 0, wx.ALL, 3) wx.EVT_BUTTON(button, wx.ID_ANY, self.onSelectLocation) panel.SetSizer(sizer) self.addEntry(_('Location'), panel, flags=[None, wx.ALL | wx.EXPAND]) def onSelectLocation(self, event): # pylint: disable=W0613 base_path = self._settings.get('file', 'lastattachmentpath') if not base_path: base_path = os.getcwd() filename = widgets.AttachmentSelector(default_path=base_path) if filename: self._settings.set('file', 'lastattachmentpath', os.path.abspath(os.path.split(filename)[0])) if self._settings.get('file', 'attachmentbase'): filename = attachment.getRelativePath(filename, self._settings.get('file', 'attachmentbase')) self._subjectEntry.SetValue(os.path.split(filename)[-1]) self._locationEntry.SetValue(filename) self._subjectSync.onAttributeEdited(event) self._locationSync.onAttributeEdited(event) class TaskAppearancePage(Page): pageName = 'appearance' pageTitle = _('Appearance') pageIcon = 'palette_icon' columns = 5 def addEntries(self): self.addColorEntries() self.addFontEntry() self.addIconEntry() def addColorEntries(self): self.addColorEntry(_('Foreground color'), 'foreground', wx.BLACK) self.addColorEntry(_('Background color'), 'background', wx.WHITE) def addColorEntry(self, labelText, colorType, defaultColor): currentColor = getattr(self.items[0], '%sColor' % colorType)(recursive=False) if len(self.items) == 1 else None colorEntry = entry.ColorEntry(self, currentColor, defaultColor) setattr(self, '_%sColorEntry' % colorType, colorEntry) commandClass = getattr(command, 'Edit%sColorCommand' % colorType.capitalize()) colorSync = attributesync.AttributeSync('%sColor' % colorType, colorEntry, currentColor, self.items, commandClass, entry.EVT_COLORENTRY, self.items[0].appearanceChangedEventType()) setattr(self, '_%sColorSync' % colorType, colorSync) self.addEntry(labelText, colorEntry, flags=[None, wx.ALL]) def addFontEntry(self): # pylint: disable=W0201,E1101 currentFont = self.items[0].font() if len(self.items) == 1 else None currentColor = self._foregroundColorEntry.GetValue() self._fontEntry = entry.FontEntry(self, currentFont, currentColor) self._fontSync = attributesync.AttributeSync('font', self._fontEntry, currentFont, self.items, command.EditFontCommand, entry.EVT_FONTENTRY, self.items[0].appearanceChangedEventType()) self._fontColorSync = attributesync.FontColorSync('foregroundColor', self._fontEntry, currentColor, self.items, command.EditForegroundColorCommand, entry.EVT_FONTENTRY, self.items[0].appearanceChangedEventType()) self.addEntry(_('Font'), self._fontEntry, flags=[None, wx.ALL]) def addIconEntry(self): # pylint: disable=W0201,E1101 currentIcon = self.items[0].icon() if len(self.items) == 1 else '' self._iconEntry = entry.IconEntry(self, currentIcon) self._iconSync = attributesync.AttributeSync('icon', self._iconEntry, currentIcon, self.items, command.EditIconCommand, entry.EVT_ICONENTRY, self.items[0].appearanceChangedEventType()) self.addEntry(_('Icon'), self._iconEntry, flags=[None, wx.ALL]) def entries(self): return dict(firstEntry=self._foregroundColorEntry) # pylint: disable=E1101 class DatesPage(Page): pageName = 'dates' pageTitle = _('Dates') pageIcon = 'calendar_icon' def __init__(self, theTask, parent, settings, items_are_new, *args, **kwargs): self.__settings = settings self._duration = None self.__items_are_new = items_are_new super(DatesPage, self).__init__(theTask, parent, *args, **kwargs) pub.subscribe(self.__onChoicesConfigChanged, 'settings.feature.sdtcspans') def __onChoicesConfigChanged(self, value=''): self._dueDateTimeEntry.LoadChoices(value) def __onTimeChoicesChange(self, event): self.__settings.settext('feature', 'sdtcspans', event.GetValue()) def __onPlannedStartDateTimeChanged(self, value): self._dueDateTimeEntry.SetRelativeChoicesStart(None if value == date.DateTime() else value) def addEntries(self): self.addDateEntries() self.addLine() self.addReminderEntry() self.addLine() self.addRecurrenceEntry() def addDateEntries(self): self.addDateEntry(_('Planned start date'), 'plannedStartDateTime') self.addDateEntry(_('Due date'), 'dueDateTime') self.addLine() self.addDateEntry(_('Actual start date'), 'actualStartDateTime') self.addDateEntry(_('Completion date'), 'completionDateTime') start = self._plannedStartDateTimeEntry.GetValue() self._dueDateTimeEntry.SetRelativeChoicesStart(start=None if start == date.DateTime() else start) self._dueDateTimeEntry.LoadChoices(self.__settings.get('feature', 'sdtcspans')) sdtc.EVT_TIME_CHOICES_CHANGE(self._dueDateTimeEntry, self.__onTimeChoicesChange) def addDateEntry(self, label, taskMethodName): TaskMethodName = taskMethodName[0].capitalize() + taskMethodName[1:] dateTime = getattr(self.items[0], taskMethodName)() if len(self.items) == 1 else date.DateTime() setattr(self, '_current%s' % TaskMethodName, dateTime) suggestedDateTimeMethodName = 'suggested' + TaskMethodName suggestedDateTime = getattr(self.items[0], suggestedDateTimeMethodName)() dateTimeEntry = entry.DateTimeEntry(self, self.__settings, dateTime, suggestedDateTime=suggestedDateTime, showRelative=taskMethodName == 'dueDateTime', adjustEndOfDay=taskMethodName == 'dueDateTime') setattr(self, '_%sEntry' % taskMethodName, dateTimeEntry) commandClass = getattr(command, 'Edit%sCommand' % TaskMethodName) eventType = getattr(self.items[0], '%sChangedEventType' % taskMethodName)() keep_delta = self.__keep_delta(taskMethodName) datetimeSync = attributesync.AttributeSync(taskMethodName, dateTimeEntry, dateTime, self.items, commandClass, entry.EVT_DATETIMEENTRY, eventType, keep_delta=keep_delta, callback=self.__onPlannedStartDateTimeChanged if taskMethodName == 'plannedStartDateTime' else None) setattr(self, '_%sSync' % taskMethodName, datetimeSync) self.addEntry(label, dateTimeEntry) def __keep_delta(self, taskMethodName): datesTied = self.__settings.get('view', 'datestied') return (datesTied == 'startdue' and taskMethodName == 'plannedStartDateTime') or \ (datesTied == 'duestart' and taskMethodName == 'dueDateTime') def addReminderEntry(self): # pylint: disable=W0201 reminderDateTime = self.items[0].reminder() if len(self.items) == 1 else date.DateTime() suggestedDateTime = self.items[0].suggestedReminderDateTime() self._reminderDateTimeEntry = entry.DateTimeEntry(self, self.__settings, reminderDateTime, suggestedDateTime=suggestedDateTime) self._reminderDateTimeSync = attributesync.AttributeSync('reminder', self._reminderDateTimeEntry, reminderDateTime, self.items, command.EditReminderDateTimeCommand, entry.EVT_DATETIMEENTRY, self.items[0].reminderChangedEventType()) self.addEntry(_('Reminder'), self._reminderDateTimeEntry) def addRecurrenceEntry(self): # pylint: disable=W0201 currentRecurrence = self.items[0].recurrence() if len(self.items) == 1 else date.Recurrence() self._recurrenceEntry = entry.RecurrenceEntry(self, currentRecurrence, self.__settings) self._recurrenceSync = attributesync.AttributeSync('recurrence', self._recurrenceEntry, currentRecurrence, self.items, command.EditRecurrenceCommand, entry.EVT_RECURRENCEENTRY, self.items[0].recurrenceChangedEventType()) self.addEntry(_('Recurrence'), self._recurrenceEntry) def entries(self): # pylint: disable=E1101 return dict(firstEntry=self._plannedStartDateTimeEntry, plannedStartDateTime=self._plannedStartDateTimeEntry, dueDateTime=self._dueDateTimeEntry, actualStartDateTime=self._actualStartDateTimeEntry, completionDateTime=self._completionDateTimeEntry, timeLeft=self._dueDateTimeEntry, reminder=self._reminderDateTimeEntry, recurrence=self._recurrenceEntry) class ProgressPage(Page): pageName = 'progress' pageTitle = _('Progress') pageIcon = 'progress' def addEntries(self): self.addProgressEntry() self.addBehaviorEntry() def addProgressEntry(self): # pylint: disable=W0201 currentPercentageComplete = self.items[0].percentageComplete() if len(self.items) == 1 else self.averagePercentageComplete(self.items) self._percentageCompleteEntry = entry.PercentageEntry(self, currentPercentageComplete) self._percentageCompleteSync = attributesync.AttributeSync( \ 'percentageComplete', self._percentageCompleteEntry, currentPercentageComplete, self.items, command.EditPercentageCompleteCommand, entry.EVT_PERCENTAGEENTRY, self.items[0].percentageCompleteChangedEventType()) self.addEntry(_('Percentage complete'), self._percentageCompleteEntry) @staticmethod def averagePercentageComplete(items): return sum([item.percentageComplete() for item in items]) \ / float(len(items)) if items else 0 def addBehaviorEntry(self): # pylint: disable=W0201 choices = [(None, _('Use application-wide setting')), (False, _('No')), (True, _('Yes'))] currentChoice = self.items[0].shouldMarkCompletedWhenAllChildrenCompleted() \ if len(self.items) == 1 else None self._shouldMarkCompletedEntry = entry.ChoiceEntry(self, choices, currentChoice) self._shouldMarkCompletedSync = attributesync.AttributeSync( \ 'shouldMarkCompletedWhenAllChildrenCompleted', self._shouldMarkCompletedEntry, currentChoice, self.items, command.EditShouldMarkCompletedCommand, entry.EVT_CHOICEENTRY, task.Task.shouldMarkCompletedWhenAllChildrenCompletedChangedEventType()) self.addEntry(_('Mark task completed when all children are completed?'), self._shouldMarkCompletedEntry, flags=[None, wx.ALL]) def entries(self): return dict(firstEntry=self._percentageCompleteEntry, percentageComplete=self._percentageCompleteEntry) class BudgetPage(Page): pageName = 'budget' pageTitle = _('Budget') pageIcon = 'calculator_icon' def NavigateBook(self, forward): self.GetParent().NavigateBook(forward) def addEntries(self): self.addBudgetEntries() self.addLine() self.addRevenueEntries() self.observeTracking() def addBudgetEntries(self): self.addBudgetEntry() if len(self.items) == 1: self.addTimeSpentEntry() self.addBudgetLeftEntry() def addBudgetEntry(self): # pylint: disable=W0201,W0212 currentBudget = self.items[0].budget() if len(self.items) == 1 else date.TimeDelta() self._budgetEntry = entry.TimeDeltaEntry(self, currentBudget) self._budgetSync = attributesync.AttributeSync('budget', self._budgetEntry, currentBudget, self.items, command.EditBudgetCommand, wx.EVT_KILL_FOCUS, self.items[0].budgetChangedEventType()) self.addEntry(_('Budget'), self._budgetEntry, flags=[None, wx.ALL]) def addTimeSpentEntry(self): assert len(self.items) == 1 # pylint: disable=W0201 self._timeSpentEntry = entry.TimeDeltaEntry(self, self.items[0].timeSpent(), readonly=True) self.addEntry(_('Time spent'), self._timeSpentEntry, flags=[None, wx.ALL]) pub.subscribe(self.onTimeSpentChanged, self.items[0].timeSpentChangedEventType()) def onTimeSpentChanged(self, newValue, sender): if sender == self.items[0]: time_spent = sender.timeSpent() if time_spent != self._timeSpentEntry.GetValue(): self._timeSpentEntry.SetValue(time_spent) def addBudgetLeftEntry(self): assert len(self.items) == 1 # pylint: disable=W0201 self._budgetLeftEntry = entry.TimeDeltaEntry(self, self.items[0].budgetLeft(), readonly=True) self.addEntry(_('Budget left'), self._budgetLeftEntry, flags=[None, wx.ALL]) pub.subscribe(self.onBudgetLeftChanged, self.items[0].budgetLeftChangedEventType()) def onBudgetLeftChanged(self, newValue, sender): # pylint: disable=W0613 if sender == self.items[0]: budget_left = sender.budgetLeft() if budget_left != self._budgetLeftEntry.GetValue(): self._budgetLeftEntry.SetValue(budget_left) def addRevenueEntries(self): self.addHourlyFeeEntry() self.addFixedFeeEntry() if len(self.items) == 1: self.addRevenueEntry() def addHourlyFeeEntry(self): # pylint: disable=W0201,W0212 currentHourlyFee = self.items[0].hourlyFee() if len(self.items) == 1 else 0 self._hourlyFeeEntry = entry.AmountEntry(self, currentHourlyFee) self._hourlyFeeSync = attributesync.AttributeSync('hourlyFee', self._hourlyFeeEntry, currentHourlyFee, self.items, command.EditHourlyFeeCommand, wx.EVT_KILL_FOCUS, self.items[0].hourlyFeeChangedEventType()) self.addEntry(_('Hourly fee'), self._hourlyFeeEntry, flags=[None, wx.ALL]) def addFixedFeeEntry(self): # pylint: disable=W0201,W0212 currentFixedFee = self.items[0].fixedFee() if len(self.items) == 1 else 0 self._fixedFeeEntry = entry.AmountEntry(self, currentFixedFee) self._fixedFeeSync = attributesync.AttributeSync('fixedFee', self._fixedFeeEntry, currentFixedFee, self.items, command.EditFixedFeeCommand, wx.EVT_KILL_FOCUS, self.items[0].fixedFeeChangedEventType()) self.addEntry(_('Fixed fee'), self._fixedFeeEntry, flags=[None, wx.ALL]) def addRevenueEntry(self): assert len(self.items) == 1 revenue = self.items[0].revenue() self._revenueEntry = entry.AmountEntry(self, revenue, readonly=True) # pylint: disable=W0201 self.addEntry(_('Revenue'), self._revenueEntry, flags=[None, wx.ALL]) pub.subscribe(self.onRevenueChanged, self.items[0].revenueChangedEventType()) def onRevenueChanged(self, newValue, sender): if sender == self.items[0]: if newValue != self._revenueEntry.GetValue(): self._revenueEntry.SetValue(newValue) def observeTracking(self): if len(self.items) != 1: return item = self.items[0] pub.subscribe(self.onTrackingChanged, item.trackingChangedEventType()) if item.isBeingTracked(): self.onTrackingChanged(True, item) def onTrackingChanged(self, newValue, sender): if newValue: if sender in self.items: date.Scheduler().schedule_interval(self.onEverySecond, seconds=1) else: # We might need to keep tracking the clock if the user was tracking this # task with multiple effort records simultaneously if not self.items[0].isBeingTracked(): date.Scheduler().unschedule(self.onEverySecond) def onEverySecond(self): taskDisplayed = self.items[0] self.onTimeSpentChanged(taskDisplayed.timeSpent(), taskDisplayed) self.onBudgetLeftChanged(taskDisplayed.budgetLeft(), taskDisplayed) self.onRevenueChanged(taskDisplayed.revenue(), taskDisplayed) def close(self): date.Scheduler().unschedule(self.onEverySecond) super(BudgetPage, self).close() def entries(self): return dict(firstEntry=self._budgetEntry, budget=self._budgetEntry, budgetLeft=self._budgetEntry, hourlyFee=self._hourlyFeeEntry, fixedFee=self._fixedFeeEntry, revenue=self._hourlyFeeEntry) class PageWithViewer(Page): columns = 1 def __init__(self, items, parent, taskFile, settings, settingsSection, *args, **kwargs): self.__taskFile = taskFile self.__settings = settings self.__settingsSection = settingsSection super(PageWithViewer, self).__init__(items, parent, *args, **kwargs) def addEntries(self): # pylint: disable=W0201 self.viewer = self.createViewer(self.__taskFile, self.__settings, self.__settingsSection) self.addEntry(self.viewer, growable=True) def createViewer(self, taskFile, settings, settingsSection): raise NotImplementedError def close(self): # I guess this happens because of CallAfter in context of #1437... if hasattr(self, 'viewer'): self.viewer.detach() # Don't notify the viewer about any changes anymore, it's about # to be deleted, but don't delete it too soon. wx.CallAfter(self.deleteViewer) super(PageWithViewer, self).close() def deleteViewer(self): if hasattr(self, 'viewer'): del self.viewer class EffortPage(PageWithViewer): pageName = 'effort' pageTitle = _('Effort') pageIcon = 'clock_icon' def createViewer(self, taskFile, settings, settingsSection): return viewer.EffortViewer(self, taskFile, settings, settingsSection=settingsSection, use_separate_settings_section=False, tasksToShowEffortFor=task.TaskList(self.items)) def entries(self): return dict(firstEntry=self.viewer, timeSpent=self.viewer) class LocalCategoryViewer(viewer.BaseCategoryViewer): # pylint: disable=W0223 def __init__(self, items, *args, **kwargs): self.__items = items super(LocalCategoryViewer, self).__init__(*args, **kwargs) for item in self.domainObjectsToView(): item.expand(context=self.settingsSection(), notify=False) def getIsItemChecked(self, category): # pylint: disable=W0621 for item in self.__items: if category in item.categories(): return True return False def onCheck(self, event, final): ''' Here we keep track of the items checked by the user so that these items remain checked when refreshing the viewer. ''' if final: category = self.widget.GetItemPyData(event.GetItem()) command.ToggleCategoryCommand(None, self.__items, category=category).do() def createCategoryPopupMenu(self): # pylint: disable=W0221 return super(LocalCategoryViewer, self).createCategoryPopupMenu(True) class CategoriesPage(PageWithViewer): pageName = 'categories' pageTitle = _('Categories') pageIcon = 'folder_blue_arrow_icon' def __init__(self, *args, **kwargs): self.__realized = False super(CategoriesPage, self).__init__(*args, **kwargs) def addEntries(self): pass def selected(self): if not self.__realized: self.__realized = True super(CategoriesPage, self).addEntries() self.fit() def createViewer(self, taskFile, settings, settingsSection): assert len(self.items) == 1 item = self.items[0] for eventType in (item.categoryAddedEventType(), item.categoryRemovedEventType()): self.registerObserver(self.onCategoryChanged, eventType=eventType, eventSource=item) return LocalCategoryViewer(self.items, self, taskFile, settings, settingsSection=settingsSection, use_separate_settings_section=False) def onCategoryChanged(self, event): self.viewer.refreshItems(*event.values()) def entries(self): if self.__realized: return dict(firstEntry=self.viewer, categories=self.viewer) return dict() class LocalAttachmentViewer(viewer.AttachmentViewer): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.attachmentOwner = kwargs.pop('owner') attachments = attachment.AttachmentList(self.attachmentOwner.attachments()) super(LocalAttachmentViewer, self).__init__(attachmentsToShow=attachments, *args, **kwargs) def newItemCommand(self, *args, **kwargs): return command.AddAttachmentCommand(None, [self.attachmentOwner], *args, **kwargs) def deleteItemCommand(self): return command.RemoveAttachmentCommand(None, [self.attachmentOwner], attachments=self.curselection()) def cutItemCommand(self): return command.CutAttachmentCommand(None, [self.attachmentOwner], attachments=self.curselection()) class AttachmentsPage(PageWithViewer): pageName = 'attachments' pageTitle = _('Attachments') pageIcon = 'paperclip_icon' def createViewer(self, taskFile, settings, settingsSection): assert len(self.items) == 1 item = self.items[0] self.registerObserver(self.onAttachmentsChanged, eventType=item.attachmentsChangedEventType(), eventSource=item) return LocalAttachmentViewer(self, taskFile, settings, settingsSection=settingsSection, use_separate_settings_section=False, owner=item) def onAttachmentsChanged(self, event): # pylint: disable=W0613 self.viewer.domainObjectsToView().clear() self.viewer.domainObjectsToView().extend(self.items[0].attachments()) def entries(self): return dict(firstEntry=self.viewer, attachments=self.viewer) class LocalNoteViewer(viewer.BaseNoteViewer): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.__note_owner = kwargs.pop('owner') notes = note.NoteContainer(self.__note_owner.notes()) super(LocalNoteViewer, self).__init__(notesToShow=notes, *args, **kwargs) def newItemCommand(self, *args, **kwargs): return command.AddNoteCommand(None, [self.__note_owner]) def newSubItemCommand(self): return command.AddSubNoteCommand(None, self.curselection(), owner=self.__note_owner) def deleteItemCommand(self): return command.RemoveNoteCommand(None, [self.__note_owner], notes=self.curselection()) class NotesPage(PageWithViewer): pageName = 'notes' pageTitle = _('Notes') pageIcon = 'note_icon' def createViewer(self, taskFile, settings, settingsSection): assert len(self.items) == 1 item = self.items[0] self.registerObserver(self.onNotesChanged, eventType=item.notesChangedEventType(), eventSource=item) return LocalNoteViewer(self, taskFile, settings, settingsSection=settingsSection, use_separate_settings_section=False, owner=item) def onNotesChanged(self, event): # pylint: disable=W0613 self.viewer.domainObjectsToView().clear() self.viewer.domainObjectsToView().extend(self.items[0].notes()) def entries(self): return dict(firstEntry=self.viewer, notes=self.viewer) class LocalPrerequisiteViewer(viewer.CheckableTaskViewer): # pylint: disable=W0223 def __init__(self, items, *args, **kwargs): self.__items = items super(LocalPrerequisiteViewer, self).__init__(*args, **kwargs) def getIsItemChecked(self, item): return item in self.__items[0].prerequisites() def getIsItemCheckable(self, item): return item not in self.__items def onCheck(self, event, final): item = self.widget.GetItemPyData(event.GetItem()) is_checked = event.GetItem().IsChecked() if is_checked != self.getIsItemChecked(item): checked, unchecked = ([item], []) if is_checked else ([], [item]) command.TogglePrerequisiteCommand(None, self.__items, checkedPrerequisites=checked, uncheckedPrerequisites=unchecked).do() class PrerequisitesPage(PageWithViewer): pageName = 'prerequisites' pageTitle = _('Prerequisites') pageIcon = 'trafficlight_icon' def __init__(self, *args, **kwargs): self.__realized = False super(PrerequisitesPage, self).__init__(*args, **kwargs) def addEntries(self): pass def selected(self): if not self.__realized: self.__realized = True super(PrerequisitesPage, self).addEntries() self.fit() def createViewer(self, taskFile, settings, settingsSection): assert len(self.items) == 1 pub.subscribe(self.onPrerequisitesChanged, self.items[0].prerequisitesChangedEventType()) return LocalPrerequisiteViewer(self.items, self, taskFile, settings, settingsSection=settingsSection, use_separate_settings_section=False) def onPrerequisitesChanged(self, newValue, sender): if sender == self.items[0]: self.viewer.refreshItems(*newValue) def entries(self): if self.__realized: return dict(firstEntry=self.viewer, prerequisites=self.viewer, dependencies=self.viewer) return dict() class EditBook(widgets.Notebook): allPageNames = ['subclass responsibility'] domainObject = 'subclass responsibility' def __init__(self, parent, items, taskFile, settings, items_are_new): self.items = items self.settings = settings super(EditBook, self).__init__(parent) self.addPages(taskFile, items_are_new) self.__load_perspective(items_are_new) def NavigateBook(self, forward): curSel = self.GetSelection() curSel = curSel + 1 if forward else curSel - 1 if curSel >= 0 and curSel < self.GetPageCount(): self.SetSelection(curSel) def addPages(self, task_file, items_are_new): page_names = self.settings.getlist(self.settings_section(), 'pages') for page_name in page_names: page = self.createPage(page_name, task_file, items_are_new) self.AddPage(page, page.pageTitle, page.pageIcon) width, height = self.__get_minimum_page_size() self.SetMinSize((width, self.GetHeightForPageHeight(height))) def onPageChanged(self, event): self.GetPage(event.Selection).selected() event.Skip() if operating_system.isMac(): # The dialog loses focus sometimes... wx.GetTopLevelParent(self).Raise() def getPage(self, page_name): index = self.getPageIndex(page_name) if index is not None: return self[index] return None def getPageIndex(self, page_name): for index in xrange(self.GetPageCount()): if page_name == self[index].pageName: return index return None def __get_minimum_page_size(self): min_widths, min_heights = [], [] for page in self: min_width, min_height = page.GetMinSize() min_widths.append(min_width) min_heights.append(min_height) return max(min_widths), max(min_heights) def __pages_to_create(self): return [page_name for page_name in self.allPageNames \ if self.__should_create_page(page_name)] def __should_create_page(self, page_name): return self.__page_supports_mass_editing(page_name) if len(self.items) > 1 else True @staticmethod def __page_supports_mass_editing(page_name): ''' Return whether the_module page supports editing multiple items at once. ''' return page_name in ('subject', 'dates', 'progress', 'budget', 'appearance') def createPage(self, page_name, task_file, items_are_new): if page_name == 'subject': return self.create_subject_page() elif page_name == 'dates': return DatesPage(self.items, self, self.settings, items_are_new) elif page_name == 'prerequisites': return PrerequisitesPage(self.items, self, task_file, self.settings, settingsSection='prerequisiteviewerin%seditor' % self.domainObject) elif page_name == 'progress': return ProgressPage(self.items, self) elif page_name == 'categories': return CategoriesPage(self.items, self, task_file, self.settings, settingsSection='categoryviewerin%seditor' % self.domainObject) elif page_name == 'budget': return BudgetPage(self.items, self) elif page_name == 'effort': return EffortPage(self.items, self, task_file, self.settings, settingsSection='effortviewerin%seditor' % self.domainObject) elif page_name == 'notes': return NotesPage(self.items, self, task_file, self.settings, settingsSection='noteviewerin%seditor' % self.domainObject) elif page_name == 'attachments': return AttachmentsPage(self.items, self, task_file, self.settings, settingsSection='attachmentviewerin%seditor' % self.domainObject) elif page_name == 'appearance': return TaskAppearancePage(self.items, self) def create_subject_page(self): return SubjectPage(self.items, self, self.settings) def setFocus(self, columnName): ''' Select the correct page of the editor and correct control on a page based on the column that the user double clicked. ''' page = 0 for page_index in range(self.GetPageCount()): if columnName in self[page_index].entries(): page = page_index break self.SetSelection(page) self[page].setFocusOnEntry(columnName) def isDisplayingItemOrChildOfItem(self, targetItem): ancestors = [] for item in self.items: ancestors.extend(item.ancestors()) return targetItem in self.items + ancestors def perspective(self): ''' Return the perspective for the notebook. ''' return self.settings.gettext(self.settings_section(), 'perspective') def __load_perspective(self, items_are_new=False): ''' Load the perspective (layout) for the current combination of visible pages from the settings. ''' perspective = self.perspective() if perspective: try: self.LoadPerspective(perspective) except: # pylint: disable=W0702 pass if items_are_new: current_page = self.getPageIndex('subject') or 0 # For new items, start at the subject page. else: # Although the active/current page is written in the perspective # string (a + before the number of the active page), the current # page is not set when restoring the perspective. This does it by # hand: try: current_page = int(perspective.split('@')[0].split('+')[1].split(',')[0]) except (IndexError, ValueError): current_page = 0 self.SetSelection(current_page) self.GetPage(current_page).SetFocus() for idx in xrange(self.GetPageCount()): page = self.GetPage(idx) if page.IsShown(): page.selected() def __save_perspective(self): ''' Save the current perspective of the editor in the settings. Multiple perspectives are supported, for each set of visible pages. This allows different perspectives for e.g. single item editors and multi-item editors. ''' page_names = [self[index].pageName for index in \ range(self.GetPageCount())] section = self.settings_section() self.settings.settext(section, 'perspective', self.SavePerspective()) self.settings.setlist(section, 'pages', page_names) def settings_section(self): ''' Create the settings section for this dialog if necessary and return it. ''' section = self.__settings_section_name() if not self.settings.has_section(section): self.__create_settings_section(section) return section def __settings_section_name(self): ''' Return the section name of this notebook. The name of the section depends on the visible pages so that different variants of the notebook store their settings in different sections. ''' page_names = self.__pages_to_create() sorted_page_names = '_'.join(sorted(page_names)) return '%sdialog_with_%s' % (self.domainObject, sorted_page_names) def __create_settings_section(self, section): ''' Create the section and initialize the options in the section. ''' self.settings.add_section(section) for option, value in dict(perspective='', pages=str(self.__pages_to_create()), size='(-1, -1)', position='(-1, -1)', maximized='False').items(): self.settings.init(section, option, value) def close_edit_book(self): ''' Close all pages in the edit book and save the current layout in the settings. ''' for page in self: page.close() self.__save_perspective() class TaskEditBook(EditBook): allPageNames = ['subject', 'dates', 'prerequisites', 'progress', 'categories', 'budget', 'effort', 'notes', 'attachments', 'appearance'] domainObject = 'task' def create_subject_page(self): return TaskSubjectPage(self.items, self, self.settings) class CategoryEditBook(EditBook): allPageNames = ['subject', 'notes', 'attachments', 'appearance'] domainObject = 'category' def create_subject_page(self): return CategorySubjectPage(self.items, self, self.settings) class NoteEditBook(EditBook): allPageNames = ['subject', 'categories', 'attachments', 'appearance'] domainObject = 'note' class AttachmentEditBook(EditBook): allPageNames = ['subject', 'notes', 'appearance'] domainObject = 'attachment' def create_subject_page(self): return AttachmentSubjectPage(self.items, self, self.settings) def isDisplayingItemOrChildOfItem(self, targetItem): return targetItem in self.items class EffortEditBook(Page): domainObject = 'effort' columns = 3 def __init__(self, parent, efforts, taskFile, settings, items_are_new, *args, **kwargs): # pylint: disable=W0613 self._effortList = taskFile.efforts() task_list = taskFile.tasks() self._taskList = task.TaskList(task_list) self._taskList.extend([effort.task() for effort in efforts if effort.task() not in task_list]) self._settings = settings self._taskFile = taskFile super(EffortEditBook, self).__init__(efforts, parent, *args, **kwargs) pub.subscribe(self.__onChoicesConfigChanged, 'settings.feature.sdtcspans_effort') def __onChoicesConfigChanged(self, value=''): self._stopDateTimeEntry.LoadChoices(value) def getPage(self, pageName): # pylint: disable=W0613 return None # An EffortEditBook is not really a notebook... def settings_section(self): ''' Return the settings section for the effort dialog. ''' # Since the effort dialog has no tabs, the settings section does not # depend on the visible tabs. return 'effortdialog' def perspective(self): ''' Return the perspective for the effort dialog. ''' # Since the effort dialog has no tabs, the perspective is always the # same and the value does not matter. return 'effort dialog perspective' def addEntries(self): self.__add_task_entry() self.__add_start_and_stop_entries() self.addDescriptionEntry() def __add_task_entry(self): ''' Add an entry for changing the task that this effort record belongs to. ''' # pylint: disable=W0201,W0212 panel = wx.Panel(self) current_task = self.items[0].task() self._taskEntry = entry.TaskEntry(panel, rootTasks=self._taskList.rootItems(), selectedTask=current_task) self._taskSync = attributesync.AttributeSync('task', self._taskEntry, current_task, self.items, command.EditTaskCommand, entry.EVT_TASKENTRY, self.items[0].taskChangedEventType()) edit_task_button = wx.Button(panel, label=_('Edit task')) edit_task_button.Bind(wx.EVT_BUTTON, self.onEditTask) panel_sizer = wx.BoxSizer(wx.HORIZONTAL) panel_sizer.Add(self._taskEntry, proportion=1, flag=wx.EXPAND | wx.ALIGN_CENTER_VERTICAL) panel_sizer.Add((3, -1)) panel_sizer.Add(edit_task_button, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL) panel.SetSizerAndFit(panel_sizer) self.addEntry(_('Task'), panel, flags=[None, wx.ALL | wx.EXPAND]) def __onStartDateTimeChanged(self, value): self._stopDateTimeEntry.SetRelativeChoicesStart(start=value) def __onChoicesChanged(self, event): self._settings.settext('feature', 'sdtcspans_effort', event.GetValue()) def __add_start_and_stop_entries(self): # pylint: disable=W0201,W0142 date_time_entry_kw_args = dict(showSeconds=True) flags = [None, wx.ALIGN_RIGHT | wx.ALL, wx.ALIGN_LEFT | wx.ALL | wx.ALIGN_CENTER_VERTICAL, None] current_start_date_time = self.items[0].getStart() self._startDateTimeEntry = entry.DateTimeEntry(self, self._settings, current_start_date_time, noneAllowed=False, showRelative=True, **date_time_entry_kw_args) wx.CallAfter(self._startDateTimeEntry.HideRelativeButton) self._startDateTimeSync = attributesync.AttributeSync('getStart', self._startDateTimeEntry, current_start_date_time, self.items, command.EditEffortStartDateTimeCommand, entry.EVT_DATETIMEENTRY, self.items[0].startChangedEventType(), callback=self.__onStartDateTimeChanged) self._startDateTimeEntry.Bind(entry.EVT_DATETIMEENTRY, self.onDateTimeChanged) start_from_last_effort_button = self.__create_start_from_last_effort_button() self.addEntry(_('Start'), self._startDateTimeEntry, start_from_last_effort_button, flags=flags) current_stop_date_time = self.items[0].getStop() self._stopDateTimeEntry = entry.DateTimeEntry(self, self._settings, current_stop_date_time, noneAllowed=True, showRelative=True, units=[(_('Minute(s)'), 60), (_('Hour(s)'), 3600), (_('Day(s)'), 24 * 3600), (_('Week(s)'), 7*24*3600)], **date_time_entry_kw_args) self._stopDateTimeSync = attributesync.AttributeSync('getStop', self._stopDateTimeEntry, current_stop_date_time, self.items, command.EditEffortStopDateTimeCommand, entry.EVT_DATETIMEENTRY, self.items[0].stopChangedEventType(), callback=self.__onStopDateTimeChanged) self._stopDateTimeEntry.Bind(entry.EVT_DATETIMEENTRY, self.onStopDateTimeChanged) stop_now_button = self.__create_stop_now_button() self._invalidPeriodMessage = self.__create_invalid_period_message() self.addEntry(_('Stop'), self._stopDateTimeEntry, stop_now_button, flags=flags) self.__onStartDateTimeChanged(current_start_date_time) self._stopDateTimeEntry.LoadChoices(self._settings.get('feature', 'sdtcspans_effort')) sdtc.EVT_TIME_CHOICES_CHANGE(self._stopDateTimeEntry, self.__onChoicesChanged) self.addEntry('', self._invalidPeriodMessage) def __create_start_from_last_effort_button(self): button = wx.Button(self, label=_('Start tracking from last stop time')) self.Bind(wx.EVT_BUTTON, self.onStartFromLastEffort, button) if self._effortList.maxDateTime() is None: button.Disable() return button def __create_stop_now_button(self): button = wx.Button(self, label=_('Stop tracking now')) self.Bind(wx.EVT_BUTTON, self.onStopNow, button) return button def __create_invalid_period_message(self): text = wx.StaticText(self, label='') font = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) font.SetWeight(wx.FONTWEIGHT_BOLD) text.SetFont(font) return text def onStartFromLastEffort(self, event): # pylint: disable=W0613 maxDateTime = self._effortList.maxDateTime() if self._startDateTimeEntry.GetValue() != maxDateTime: self._startDateTimeEntry.SetValue(self._effortList.maxDateTime()) self._startDateTimeSync.onAttributeEdited(event) self.onDateTimeChanged(event) def onStopNow(self, event): command.StopEffortCommand(self._effortList, self.items).do() def onStopDateTimeChanged(self, *args, **kwargs): self.onDateTimeChanged(*args, **kwargs) def __onStopDateTimeChanged(self, new_value): # The actual start date/time was not changed (the command class checks that) if # if was greater than the stop date/time then, so make sure it is if everything is # OK now. command.EditEffortStartDateTimeCommand(None, self.items, newValue=self._startDateTimeEntry.GetValue()).do() def onDateTimeChanged(self, event): event.Skip() self.__update_invalid_period_message() def __update_invalid_period_message(self): message = '' if self.__is_period_valid() else \ _('Warning: start must be earlier than stop') self._invalidPeriodMessage.SetLabel(message) def __is_period_valid(self): ''' Return whether the current period is valid, i.e. the start date and time is earlier than the stop date and time. ''' try: return self._startDateTimeEntry.GetValue() < \ self._stopDateTimeEntry.GetValue() except AttributeError: return True # Entries not created yet def onEditTask(self, event): # pylint: disable=W0613 task_to_edit = self._taskEntry.GetValue() TaskEditor(None, [task_to_edit], self._settings, self._taskFile.tasks(), self._taskFile).Show() def addDescriptionEntry(self): # pylint: disable=W0201 def combined_description(items): distinctDescriptions = set(item.description() for item in items) if len(distinctDescriptions) == 1 and distinctDescriptions.pop(): return items[0].description() lines = [u'[%s]' % _('Edit to change all descriptions')] lines.extend(item.description() for item in items if item.description()) return u'\n\n'.join(lines) current_description = self.items[0].description() if len(self.items) == 1 else combined_description(self.items) self._descriptionEntry = widgets.MultiLineTextCtrl(self, current_description) native_info_string = self._settings.get('editor', 'descriptionfont') font = wx.FontFromNativeInfoString(native_info_string) if native_info_string else None if font: self._descriptionEntry.SetFont(font) self._descriptionEntry.SetSizeHints(300, 150) self._descriptionSync = attributesync.AttributeSync('description', self._descriptionEntry, current_description, self.items, command.EditDescriptionCommand, wx.EVT_KILL_FOCUS, self.items[0].descriptionChangedEventType()) self.addEntry(_('Description'), self._descriptionEntry, growable=True) def setFocus(self, column_name): self.setFocusOnEntry(column_name) def isDisplayingItemOrChildOfItem(self, item): if hasattr(item, 'setTask'): return self.items[0] == item # Regular effort else: return item.mayContain(self.items[0]) # Composite effort def entries(self): return dict(firstEntry=self._startDateTimeEntry, task=self._taskEntry, period=self._stopDateTimeEntry, description=self._descriptionEntry, timeSpent=self._stopDateTimeEntry, revenue=self._taskEntry) def close_edit_book(self): pass class Editor(BalloonTipManager, widgets.Dialog): EditBookClass = lambda *args: 'Subclass responsibility' singular_title = 'Subclass responsibility %s' plural_title = 'Subclass responsibility' def __init__(self, parent, items, settings, container, task_file, *args, **kwargs): self._items = items self._settings = settings self._taskFile = task_file self.__items_are_new = kwargs.pop('items_are_new', False) column_name = kwargs.pop('columnName', '') self.__call_after = kwargs.get('call_after', wx.CallAfter) super(Editor, self).__init__(parent, self.__title(), buttonTypes=wx.ID_CLOSE, *args, **kwargs) if not column_name: if self._interior.perspective() and hasattr(self._interior, 'GetSelection'): column_name = self._interior[self._interior.GetSelection()].pageName else: column_name = 'subject' if column_name: self._interior.setFocus(column_name) patterns.Publisher().registerObserver(self.on_item_removed, eventType=container.removeItemEventType(), eventSource=container) if len(self._items) == 1: patterns.Publisher().registerObserver(self.on_subject_changed, eventType=self._items[0].subjectChangedEventType(), eventSource=self._items[0]) self.Bind(wx.EVT_CLOSE, self.on_close_editor) if operating_system.isMac(): # Sigh. On OS X, if you open an editor, switch back to the main window, open # another editor, then hit Escape twice, the second editor disappears without any # notification (EVT_CLOSE, EVT_ACTIVATE), so poll for this, because there might # be pending changes... id_ = wx.NewId() self.__timer = wx.Timer(self, id_) wx.EVT_TIMER(self, id_, self.__on_timer) self.__timer.Start(1000, False) # On Mac OS X, the frame opens by default in the top-left # corner of the first display. This gets annoying on a # 2560x1440 27" + 1920x1200 24" dual screen... # On Windows, for some reason, the Python 2.5 and 2.6 versions # of wxPython 2.8.11.0 behave differently; on Python 2.5 the # frame opens centered on its parent but on 2.6 it opens on # the first display! # On Linux this is not needed but doesn't do any harm. self.CentreOnParent() self.__create_ui_commands() self.__dimensions_tracker = windowdimensionstracker.WindowSizeAndPositionTracker( self, settings, self._interior.settings_section()) def __on_timer(self, event): if not self.IsShown(): self.Close() def __create_ui_commands(self): # FIXME: keyboard shortcuts are hardcoded here, but they can be # changed in the translations # FIXME: there are more keyboard shortcuts that don't work in dialogs # at the moment, like DELETE new_effort_id = wx.NewId() table = wx.AcceleratorTable([(wx.ACCEL_CMD, ord('Z'), wx.ID_UNDO), (wx.ACCEL_CMD, ord('Y'), wx.ID_REDO), (wx.ACCEL_CMD, ord('E'), new_effort_id)]) self._interior.SetAcceleratorTable(table) # pylint: disable=W0201 self.__undo_command = uicommand.EditUndo() self.__redo_command = uicommand.EditRedo() effort_page = self._interior.getPage('effort') effort_viewer = effort_page.viewer if effort_page else None self.__new_effort_command = uicommand.EffortNew(viewer=effort_viewer, taskList=self._taskFile.tasks(), effortList=self._taskFile.efforts(), settings=self._settings) self.__undo_command.bind(self._interior, wx.ID_UNDO) self.__redo_command.bind(self._interior, wx.ID_REDO) self.__new_effort_command.bind(self._interior, new_effort_id) def createInterior(self): return self.EditBookClass(self._panel, self._items, self._taskFile, self._settings, self.__items_are_new) def on_close_editor(self, event): event.Skip() self._interior.close_edit_book() patterns.Publisher().removeObserver(self.on_item_removed) patterns.Publisher().removeObserver(self.on_subject_changed) # On Mac OS X, the text control does not lose focus when # destroyed... if operating_system.isMac(): self._interior.SetFocusIgnoringChildren() self.Destroy() def on_activate(self, event): print 'XXX' event.Skip() def on_item_removed(self, event): ''' The item we're editing or one of its ancestors has been removed or is hidden by a filter. If the item is really removed, close the tab of the item involved and close the whole editor if there are no tabs left. ''' if self: # Prevent _wxPyDeadObject TypeError self.__call_after(self.__close_if_item_is_deleted, event.values()) def __close_if_item_is_deleted(self, items): for item in items: if self._interior.isDisplayingItemOrChildOfItem(item) and \ not item in self._taskFile: self.Close() break def on_subject_changed(self, event): # pylint: disable=W0613 self.SetTitle(self.__title()) def __title(self): return self.plural_title if len(self._items) > 1 else \ self.singular_title % self._items[0].subject() class TaskEditor(Editor): plural_title = _('Multiple tasks') singular_title = _('%s (task)') EditBookClass = TaskEditBook class CategoryEditor(Editor): plural_title = _('Multiple categories') singular_title = _('%s (category)') EditBookClass = CategoryEditBook class NoteEditor(Editor): plural_title = _('Multiple notes') singular_title = _('%s (note)') EditBookClass = NoteEditBook class AttachmentEditor(Editor): plural_title = _('Multiple attachments') singular_title = _('%s (attachment)') EditBookClass = AttachmentEditBook class EffortEditor(Editor): plural_title = _('Multiple efforts') singular_title = _('%s (effort)') EditBookClass = EffortEditBook taskcoach-1.4.3/taskcoachlib/gui/dialog/entry.py000066400000000000000000000617441265347643000216720ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Carl Zmola Task Coach 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. Task Coach 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 . ''' from taskcoachlib import widgets, operating_system from taskcoachlib.domain import date from taskcoachlib.gui import artprovider from taskcoachlib.i18n import _ from taskcoachlib.thirdparty import combotreebox import datetime from wx.lib import newevent import wx import wx.combo DateTimeEntryEvent, EVT_DATETIMEENTRY = newevent.NewEvent() class DateTimeEntry(widgets.DateTimeCtrl): defaultDateTime = date.DateTime() def __init__(self, parent, settings, initialDateTime=defaultDateTime, readonly=False, noneAllowed=True, showSeconds=False, suggestedDateTime=None, showRelative=False, adjustEndOfDay=False, units=None, *args, **kwargs): starthour = settings.getint('view', 'efforthourstart') endhour = settings.getint('view', 'efforthourend') interval = settings.getint('view', 'effortminuteinterval') super(DateTimeEntry, self).__init__(parent, noneAllowed=noneAllowed, starthour=starthour, endhour=endhour, interval=interval, showSeconds=showSeconds, showRelative=showRelative, adjustEndOfDay=adjustEndOfDay, units=units) if readonly: self.Disable() # First set the initial value and then set the callback so that the # callback is not triggered for the initial value if initialDateTime == date.DateTime() and suggestedDateTime: self.setSuggested(suggestedDateTime) else: self.SetValue(initialDateTime) self.setCallback(self.onDateTimeCtrlEdited) def SetValue(self, newValue=None): super(DateTimeEntry, self).SetValue(newValue or self.defaultDateTime) def setSuggested(self, suggestedDateTime): super(DateTimeEntry, self).SetValue(suggestedDateTime) super(DateTimeEntry, self).SetNone() def onDateTimeCtrlEdited(self, *args, **kwargs): # pylint: disable=W0613 wx.PostEvent(self, DateTimeEntryEvent()) class TimeDeltaEntry(widgets.PanelWithBoxSizer): # We can't inherit from widgets.masked.TextCtrl because that class expects # GetValue to return a string and we want to return a TimeDelta. defaultTimeDelta = date.TimeDelta() def __init__(self, parent, timeDelta=defaultTimeDelta, readonly=False, *args, **kwargs): super(TimeDeltaEntry, self).__init__(parent, *args, **kwargs) hours, minutes, seconds = timeDelta.hoursMinutesSeconds() self._entry = widgets.masked.TimeDeltaCtrl(self, hours, minutes, seconds, readonly, timeDelta < self.defaultTimeDelta) if readonly: self._entry.Disable() self.add(self._entry, flag=wx.EXPAND | wx.ALL, proportion=1) self.fit() def NavigateBook(self, event): self.GetParent().NavigateBook(not event.ShiftDown()) return True def GetValue(self): return date.parseTimeDelta(self._entry.GetValue()) def SetValue(self, newTimeDelta): hours, minutes, seconds = newTimeDelta.hoursMinutesSeconds() negative = newTimeDelta < self.defaultTimeDelta self._entry.set_value(hours, minutes, seconds, negative) def Bind(self, *args, **kwargs): # pylint: disable=W0221 self._entry.Bind(*args, **kwargs) class AmountEntry(widgets.PanelWithBoxSizer): def __init__(self, parent, amount=0.0, readonly=False, *args, **kwargs): super(AmountEntry, self).__init__(parent, *args, **kwargs) self._entry = self.createEntry(amount) if readonly: self._entry.Disable() self.add(self._entry) self.fit() def createEntry(self, amount): return widgets.masked.AmountCtrl(self, amount) def NavigateBook(self, event): self.GetParent().NavigateBook(not event.ShiftDown()) return True def GetValue(self): return self._entry.GetValue() def SetValue(self, value): self._entry.SetValue(value) def Bind(self, *args, **kwargs): # pylint: disable=W0221 self._entry.Bind(*args, **kwargs) PercentageEntryEvent, EVT_PERCENTAGEENTRY = newevent.NewEvent() class PercentageEntry(widgets.PanelWithBoxSizer): def __init__(self, parent, percentage=0, *args, **kwargs): kwargs['orientation'] = wx.HORIZONTAL super(PercentageEntry, self).__init__(parent, *args, **kwargs) self._entry = self._createSpinCtrl(percentage) self._slider = self._createSlider(percentage) self.add(self._entry, flag=wx.ALL, proportion=0) self.add((5, -1), flag=wx.ALL, proportion=0) self.add(self._slider, flag=wx.ALL, proportion=1) self.fit() def _createSlider(self, percentage): slider = wx.Slider(self, value=percentage, style=wx.SL_AUTOTICKS, minValue=0, maxValue=100, size=(150, -1)) slider.SetTickFreq(25) slider.Bind(wx.EVT_SCROLL, self.onSliderScroll) return slider def _createSpinCtrl(self, percentage): entry = widgets.SpinCtrl(self, value=percentage, min=0, max=100, size=(60 if operating_system.isMac() else 50, -1)) for eventType in wx.EVT_SPINCTRL, wx.EVT_KILL_FOCUS: entry.Bind(eventType, self.onSpin) return entry def GetValue(self): return self._entry.GetValue() def SetValue(self, value): self._entry.SetValue(value) self._slider.SetValue(value) def onSliderScroll(self, event): # pylint: disable=W0613 self.syncControl(self._entry, self._slider) def onSpin(self, event): # pylint: disable=W0613 self.syncControl(self._slider, self._entry) def syncControl(self, controlToWrite, controlToRead): value = controlToRead.GetValue() # Prevent potential endless loop by checking that we really need to set # the value: if controlToWrite.GetValue() != value: controlToWrite.SetValue(value) wx.PostEvent(self, PercentageEntryEvent()) FontEntryEvent, EVT_FONTENTRY = newevent.NewEvent() class FontEntry(widgets.PanelWithBoxSizer): def __init__(self, parent, currentFont, currentColor, *args, **kwargs): kwargs['orientation'] = wx.HORIZONTAL super(FontEntry, self).__init__(parent, *args, **kwargs) self._fontCheckBox = self._createCheckBox(currentFont) self._fontPicker = self._createFontPicker(currentFont, currentColor) self.add(self._fontCheckBox, flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, proportion=0) self.add(self._fontPicker, flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, proportion=1) self.fit() def _createCheckBox(self, currentFont): checkBox = wx.CheckBox(self, label=_('Use font:')) checkBox.SetValue(currentFont is not None) checkBox.Bind(wx.EVT_CHECKBOX, self.onChecked) return checkBox def _createFontPicker(self, currentFont, currentColor): defaultFont = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) picker = widgets.FontPickerCtrl(self, font=currentFont or defaultFont, colour=currentColor) picker.Bind(wx.EVT_FONTPICKER_CHANGED, self.onFontPicked) return picker def onChecked(self, event): event.Skip() wx.PostEvent(self, FontEntryEvent()) def onFontPicked(self, event): event.Skip() self._fontCheckBox.SetValue(True) wx.PostEvent(self, FontEntryEvent()) def GetValue(self): return self._fontPicker.GetSelectedFont() if \ self._fontCheckBox.IsChecked() else None def SetValue(self, newFont): checked = newFont is not None self._fontCheckBox.SetValue(checked) if checked: self._fontPicker.SetSelectedFont(newFont) def GetColor(self): return self._fontPicker.GetSelectedColour() def SetColor(self, newColor): self._fontPicker.SetSelectedColour(newColor) ColorEntryEvent, EVT_COLORENTRY = newevent.NewEvent() class ColorEntry(widgets.PanelWithBoxSizer): def __init__(self, parent, currentColor, defaultColor, *args, **kwargs): kwargs['orientation'] = wx.HORIZONTAL super(ColorEntry, self).__init__(parent, *args, **kwargs) self._colorCheckBox = self._createCheckBox(currentColor) self._colorPicker = self._createColorPicker(currentColor, defaultColor) self.add(self._colorCheckBox, flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, proportion=0) self.add(self._colorPicker, flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, proportion=1) self.fit() def _createCheckBox(self, currentColor): checkBox = wx.CheckBox(self, label=_('Use color:')) checkBox.SetValue(currentColor is not None) checkBox.Bind(wx.EVT_CHECKBOX, self.onChecked) return checkBox def _createColorPicker(self, currentColor, defaultColor): # wx.ColourPickerCtrl on Mac OS X expects a wx.Colour and fails on tuples # so convert the tuples to a wx.Colour: currentColor = wx.Colour(*currentColor) if currentColor else defaultColor # pylint: disable=W0142 picker = wx.ColourPickerCtrl(self, col=currentColor) picker.Bind(wx.EVT_COLOURPICKER_CHANGED, self.onColorPicked) return picker def onChecked(self, event): event.Skip() wx.PostEvent(self, ColorEntryEvent()) def onColorPicked(self, event): event.Skip() self._colorCheckBox.SetValue(True) wx.PostEvent(self, ColorEntryEvent()) def GetValue(self): return self._colorPicker.GetColour() if self._colorCheckBox.IsChecked() \ else None def SetValue(self, newColor): checked = newColor is not None self._colorCheckBox.SetValue(checked) if checked: self._colorPicker.SetColour(newColor) IconEntryEvent, EVT_ICONENTRY = newevent.NewEvent() class IconEntry(wx.combo.BitmapComboBox): def __init__(self, parent, currentIcon, *args, **kwargs): kwargs['style'] = wx.CB_READONLY super(IconEntry, self).__init__(parent, *args, **kwargs) imageNames = sorted(artprovider.chooseableItemImages.keys()) size = (16, 16) for imageName in imageNames: label = artprovider.chooseableItemImages[imageName] bitmap = wx.ArtProvider_GetBitmap(imageName, wx.ART_MENU, size) item = self.Append(label, bitmap) self.SetClientData(item, imageName) self.SetSelection(imageNames.index(currentIcon)) self.Bind(wx.EVT_COMBOBOX, self.onIconPicked) def onIconPicked(self, event): event.Skip() wx.PostEvent(self, IconEntryEvent()) def GetValue(self): return self.GetClientData(self.GetSelection()) def SetValue(self, newValue): for index in range(self.GetCount()): if newValue == self.GetClientData(index): self.SetSelection(index) break ChoiceEntryEvent, EVT_CHOICEENTRY = newevent.NewEvent() class ChoiceEntry(wx.Choice): def __init__(self, parent, choices, currentChoiceValue, *args, **kwargs): super(ChoiceEntry, self).__init__(parent, *args, **kwargs) for choiceValue, choiceText in choices: self.Append(choiceText, choiceValue) if choiceValue == currentChoiceValue: self.SetSelection(self.GetCount() - 1) if self.GetSelection() == wx.NOT_FOUND: # Force a selection if necessary: self.SetSelection(0) self.Bind(wx.EVT_CHOICE, self.onChoice) def onChoice(self, event): event.Skip() wx.PostEvent(self, ChoiceEntryEvent()) def GetValue(self): return self.GetClientData(self.GetSelection()) def SetValue(self, newValue): for index in range(self.GetCount()): if newValue == self.GetClientData(index): self.SetSelection(index) break TaskEntryEvent, EVT_TASKENTRY = newevent.NewEvent() class TaskEntry(wx.Panel): ''' A ComboTreeBox with tasks. This class does not inherit from the ComboTreeBox widget, because that widget is created using a factory function. ''' def __init__(self, parent, rootTasks, selectedTask): ''' Initialize the ComboTreeBox, add the root tasks recursively and set the selection. ''' super(TaskEntry, self).__init__(parent) self._createInterior() self._addTasksRecursively(rootTasks) self.SetValue(selectedTask) def __getattr__(self, attr): ''' Delegate unknown attributes to the ComboTreeBox. This is needed since we cannot inherit from ComboTreeBox, but have to use delegation. ''' return getattr(self._comboTreeBox, attr) def _createInterior(self): ''' Create the ComboTreebox widget. ''' # pylint: disable=W0201 self._comboTreeBox = combotreebox.ComboTreeBox(self, style=wx.CB_READONLY | wx.CB_SORT | wx.TAB_TRAVERSAL) self._comboTreeBox.Bind(wx.EVT_COMBOBOX, self.onTaskSelected) boxSizer = wx.BoxSizer() boxSizer.Add(self._comboTreeBox, flag=wx.EXPAND, proportion=1) self.SetSizerAndFit(boxSizer) def _addTasksRecursively(self, tasks, parentItem=None): ''' Add tasks to the ComboTreeBox and then recursively add their subtasks. ''' for task in tasks: self._addTaskRecursively(task, parentItem) def _addTaskRecursively(self, task, parentItem=None): ''' Add a task to the ComboTreeBox and then recursively add its subtasks. ''' if not task.isDeleted(): item = self._comboTreeBox.Append(task.subject(), parent=parentItem) self._comboTreeBox.SetClientData(item, task) self._addTasksRecursively(task.children(), item) def onTaskSelected(self, event): # pylint: disable=W0613 wx.PostEvent(self, TaskEntryEvent()) def SetValue(self, task): ''' Select the given task. ''' self._comboTreeBox.SetClientDataSelection(task) def GetValue(self): ''' Return the selected task. ''' selection = self._comboTreeBox.GetSelection() return self._comboTreeBox.GetClientData(selection) RecurrenceEntryEvent, EVT_RECURRENCEENTRY = newevent.NewEvent() class RecurrenceEntry(wx.Panel): horizontalSpace = (3, -1) verticalSpace = (-1, 3) def __init__(self, parent, recurrence, settings, *args, **kwargs): super(RecurrenceEntry, self).__init__(parent, *args, **kwargs) recurrenceFrequencyPanel = wx.Panel(self) self._recurrencePeriodEntry = wx.Choice(recurrenceFrequencyPanel, choices=[_('None'), _('Daily'), _('Weekly'), _('Monthly'), _('Yearly')]) self._recurrencePeriodEntry.Bind(wx.EVT_CHOICE, self.onRecurrencePeriodEdited) self._recurrenceFrequencyEntry = widgets.SpinCtrl(recurrenceFrequencyPanel, size=(50, -1), value=1, min=1) self._recurrenceFrequencyEntry.Bind(wx.EVT_SPINCTRL, self.onRecurrenceEdited) self._recurrenceStaticText = wx.StaticText(recurrenceFrequencyPanel, label='reserve some space') self._recurrenceSameWeekdayCheckBox = wx.CheckBox(recurrenceFrequencyPanel, label=_('keeping dates on the same weekday')) self._recurrenceSameWeekdayCheckBox.Bind(wx.EVT_CHECKBOX, self.onRecurrenceEdited) panelSizer = wx.BoxSizer(wx.HORIZONTAL) panelSizer.Add(self._recurrencePeriodEntry, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(wx.StaticText(recurrenceFrequencyPanel, label=_(', every')), flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(self._recurrenceFrequencyEntry, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(self._recurrenceStaticText, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(self._recurrenceSameWeekdayCheckBox, proportion=1, flag=wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) recurrenceFrequencyPanel.SetSizerAndFit(panelSizer) self._recurrenceSizer = panelSizer maxPanel = wx.Panel(self) panelSizer = wx.BoxSizer(wx.HORIZONTAL) self._maxRecurrenceCheckBox = wx.CheckBox(maxPanel) self._maxRecurrenceCheckBox.Bind(wx.EVT_CHECKBOX, self.onMaxRecurrenceChecked) self._maxRecurrenceCountEntry = widgets.SpinCtrl(maxPanel, size=(50, -1), value=1, min=1) self._maxRecurrenceCountEntry.Bind(wx.EVT_SPINCTRL, self.onRecurrenceEdited) panelSizer.Add(self._maxRecurrenceCheckBox, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(wx.StaticText(maxPanel, label=_('Stop after')), flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(self._maxRecurrenceCountEntry, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(wx.StaticText(maxPanel, label=_('recurrences')), flag=wx.ALIGN_CENTER_VERTICAL) maxPanel.SetSizerAndFit(panelSizer) schedulePanel = wx.Panel(self) panelSizer = wx.BoxSizer(wx.HORIZONTAL) label = wx.StaticText(schedulePanel, label=_('Schedule each next recurrence based on')) panelSizer.Add(label, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add((3, -1)) self._scheduleChoice = wx.Choice(schedulePanel, choices=[_('previous planned start and/or due date'), _('last completion date')]) self._scheduleChoice.Bind(wx.EVT_CHOICE, self.onRecurrenceEdited) if operating_system.isMac(): # On Mac OS X, the wx.Choice gets too little vertical space by # default size = self._scheduleChoice.GetSizeTuple() self._scheduleChoice.SetMinSize((size[0], size[1] + 1)) panelSizer.Add(self._scheduleChoice, flag=wx.ALIGN_CENTER_VERTICAL) schedulePanel.SetSizerAndFit(panelSizer) stopPanel = wx.Panel(self) panelSizer = wx.BoxSizer(wx.HORIZONTAL) self._stopDateTimeCheckBox = wx.CheckBox(stopPanel) self._stopDateTimeCheckBox.Bind(wx.EVT_CHECKBOX, self.onRecurrenceStopDateTimeChecked) # Since None is not allowed, we need an initial value... self._recurrenceStopDateTimeEntry = DateTimeEntry(stopPanel, settings, noneAllowed=False, initialDateTime=datetime.datetime.combine(date.LastDayOfCurrentMonth(), datetime.time(0, 0, 0))) self._recurrenceStopDateTimeEntry.Bind(EVT_DATETIMEENTRY, self.onRecurrenceEdited) panelSizer.Add(self._stopDateTimeCheckBox, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(wx.StaticText(stopPanel, label=_('Stop after')), flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) panelSizer.Add(self._recurrenceStopDateTimeEntry, flag=wx.ALIGN_CENTER_VERTICAL) panelSizer.Add(self.horizontalSpace) stopPanel.SetSizerAndFit(panelSizer) panelSizer = wx.BoxSizer(wx.VERTICAL) panelSizer.Add(recurrenceFrequencyPanel) panelSizer.Add(self.verticalSpace) panelSizer.Add(schedulePanel) panelSizer.Add(self.verticalSpace) panelSizer.Add(maxPanel) panelSizer.Add(stopPanel) self.SetSizerAndFit(panelSizer) self.SetValue(recurrence) def updateRecurrenceLabel(self): recurrenceDict = {0: _('period,'), 1: _('day(s),'), 2: _('week(s),'), 3: _('month(s),'), 4: _('year(s),')} recurrenceLabel = recurrenceDict[self._recurrencePeriodEntry.Selection] self._recurrenceStaticText.SetLabel(recurrenceLabel) self._recurrenceSameWeekdayCheckBox.Enable(self._recurrencePeriodEntry.Selection in (3, 4)) self._recurrenceSizer.Layout() def onRecurrencePeriodEdited(self, event): recurrenceOn = event.String != _('None') self._maxRecurrenceCheckBox.Enable(recurrenceOn) self._stopDateTimeCheckBox.Enable(recurrenceOn) self._recurrenceFrequencyEntry.Enable(recurrenceOn) self._scheduleChoice.Enable(recurrenceOn) self._maxRecurrenceCountEntry.Enable(recurrenceOn and \ self._maxRecurrenceCheckBox.IsChecked()) self._recurrenceStopDateTimeEntry.Enable(recurrenceOn and \ self._stopDateTimeCheckBox.IsChecked()) self.updateRecurrenceLabel() self.onRecurrenceEdited() def onMaxRecurrenceChecked(self, event): maxRecurrenceOn = event.IsChecked() self._maxRecurrenceCountEntry.Enable(maxRecurrenceOn) self.onRecurrenceEdited() def onRecurrenceStopDateTimeChecked(self, event): stopRecurrenceOn = event.IsChecked() self._recurrenceStopDateTimeEntry.Enable(stopRecurrenceOn) self.onRecurrenceEdited() def onRecurrenceEdited(self, event=None): # pylint: disable=W0613 wx.PostEvent(self, RecurrenceEntryEvent()) def SetValue(self, recurrence): index = {'': 0, 'daily': 1, 'weekly': 2, 'monthly': 3, 'yearly': 4}[recurrence.unit] self._recurrencePeriodEntry.Selection = index self._maxRecurrenceCheckBox.Enable(bool(recurrence)) self._maxRecurrenceCheckBox.SetValue(recurrence.max > 0) self._maxRecurrenceCountEntry.Enable(recurrence.max > 0) if recurrence.max > 0: self._maxRecurrenceCountEntry.Value = recurrence.max self._recurrenceFrequencyEntry.Enable(bool(recurrence)) self._recurrenceFrequencyEntry.Value = recurrence.amount self._recurrenceSameWeekdayCheckBox.Value = recurrence.sameWeekday \ if recurrence.unit in ('monthly', 'yearly') else False self._scheduleChoice.Selection = 1 if recurrence.recurBasedOnCompletion else 0 self._scheduleChoice.Enable(bool(recurrence)) self._stopDateTimeCheckBox.Enable(bool(recurrence)) has_stop_datetime = recurrence.stop_datetime != date.DateTime() self._stopDateTimeCheckBox.SetValue(has_stop_datetime) self._recurrenceStopDateTimeEntry.Enable(has_stop_datetime) if has_stop_datetime: self._recurrenceStopDateTimeEntry.SetValue(recurrence.stop_datetime) self.updateRecurrenceLabel() def GetValue(self): recurrenceDict = {0: '', 1: 'daily', 2: 'weekly', 3: 'monthly', 4: 'yearly'} kwargs = dict(unit=recurrenceDict[self._recurrencePeriodEntry.Selection]) if self._maxRecurrenceCheckBox.IsChecked(): kwargs['maximum'] = self._maxRecurrenceCountEntry.Value kwargs['amount'] = self._recurrenceFrequencyEntry.Value kwargs['sameWeekday'] = self._recurrenceSameWeekdayCheckBox.IsChecked() kwargs['recurBasedOnCompletion'] = bool(self._scheduleChoice.Selection) if self._stopDateTimeCheckBox.IsChecked(): kwargs['stop_datetime'] = self._recurrenceStopDateTimeEntry.GetValue() return date.Recurrence(**kwargs) # pylint: disable=W0142 taskcoach-1.4.3/taskcoachlib/gui/dialog/export.py000066400000000000000000000306641265347643000220470ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.i18n import _ from wx.lib import sized_controls from taskcoachlib import meta, widgets class ExportDialog(sized_controls.SizedDialog): ''' Base class for all export dialogs. Use control classes below to add features. ''' title = 'Override in subclass' section = 'export' def __init__(self, *args, **kwargs): self.window = args[0] self.settings = kwargs.pop('settings') super(ExportDialog, self).__init__(title=self.title, *args, **kwargs) pane = self.GetContentsPane() pane.SetSizerType('vertical') self.components = self.createInterior(pane) buttonSizer = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL) self.SetButtonSizer(buttonSizer) buttonSizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.onOk) self.Fit() self.CentreOnParent() def createInterior(self, pane): raise NotImplementedError def exportableViewers(self): return self.window.viewer def activeViewer(self): return self.window.viewer.activeViewer() def options(self): result = dict() for component in self.components: result.update(component.options()) return result def onOk(self, event): event.Skip() for component in self.components: component.saveSettings() # Controls for adding behavior to the base export dialog: ViewerPickedEvent, EVT_VIEWERPICKED = wx.lib.newevent.NewEvent() class ViewerPicker(sized_controls.SizedPanel): ''' Control for adding a viewer chooser widget to the export dialog. ''' def __init__(self, parent, viewers, activeViewer): super(ViewerPicker, self).__init__(parent) self.SetSizerType('horizontal') self.createPicker() self.populatePicker(viewers) self.selectActiveViewer(viewers, activeViewer) def createPicker(self): label = wx.StaticText(self, label=_('Export items from:')) label.SetSizerProps(valign='center') self.viewerComboBox = wx.ComboBox(self, style=wx.CB_READONLY | wx.CB_SORT) # pylint: disable=W0201 self.viewerComboBox.Bind(wx.EVT_COMBOBOX, self.onViewerChanged) def populatePicker(self, viewers): self.titleToViewer = dict() # pylint: disable=W0201 for viewer in viewers: self.viewerComboBox.Append(viewer.title()) # pylint: disable=E1101 # Would like to user client data in the combobox, but that # doesn't work on all platforms self.titleToViewer[viewer.title()] = viewer def selectActiveViewer(self, viewers, activeViewer): selectedViewer = activeViewer if activeViewer in viewers else viewers[0] self.viewerComboBox.SetValue(selectedViewer.title()) def selectedViewer(self): return self.titleToViewer[self.viewerComboBox.GetValue()] def options(self): return dict(selectedViewer=self.selectedViewer()) def onViewerChanged(self, event): event.Skip() wx.PostEvent(self, ViewerPickedEvent(viewer=self.selectedViewer())) def saveSettings(self): pass # No settings to remember class SelectionOnlyCheckBox(wx.CheckBox): ''' Control for adding a widget to the export dialog that lets the user choose between exporting all items or just the selected items. ''' def __init__(self, parent, settings, section, setting): super(SelectionOnlyCheckBox, self).__init__(parent, label=_('Export only the selected items')) self.settings = settings self.section = section self.setting = setting self.initializeCheckBox() def initializeCheckBox(self): selectionOnly = self.settings.getboolean(self.section, self.setting) self.SetValue(selectionOnly) def options(self): return dict(selectionOnly=self.GetValue()) def saveSettings(self): self.settings.set(self.section, self.setting, # pylint: disable=E1101 str(self.GetValue())) class ColumnPicker(sized_controls.SizedPanel): ''' Control that lets the user select which columns should be used for exporting. ''' def __init__(self, parent, viewer): super(ColumnPicker, self).__init__(parent) self.SetSizerType('horizontal') self.SetSizerProps(expand=True, proportion=1) self.createColumnPicker() self.populateColumnPicker(viewer) def createColumnPicker(self): label = wx.StaticText(self, label=_('Columns to export:')) label.SetSizerProps(valign='top') self.columnPicker = widgets.CheckListBox(self) # pylint: disable=W0201 self.columnPicker.SetSizerProps(expand=True, proportion=1) def populateColumnPicker(self, viewer): self.columnPicker.Clear() self.fillColumnPicker(viewer) def fillColumnPicker(self, viewer): if not viewer.hasHideableColumns(): return visibleColumns = viewer.visibleColumns() for column in viewer.selectableColumns(): if column.header(): index = self.columnPicker.Append(column.header(), clientData=column) self.columnPicker.Check(index, column in visibleColumns) def selectedColumns(self): indices = [index for index in range(self.columnPicker.GetCount()) if self.columnPicker.IsChecked(index)] return [self.columnPicker.GetClientData(index) for index in indices] def options(self): return dict(columns=self.selectedColumns()) def saveSettings(self): pass # No settings to save class SeparateDateAndTimeColumnsCheckBox(wx.CheckBox): ''' Control that lets the user decide whether dates and times should be separated or kept together. ''' def __init__(self, parent, settings, section, setting): super(SeparateDateAndTimeColumnsCheckBox, self).__init__(parent, label=_('Put task dates and times in separate columns')) self.settings = settings self.section = section self.setting = setting self.initializeCheckBox() def initializeCheckBox(self): separateDateAndTimeColumns = self.settings.getboolean(self.section, self.setting) self.SetValue(separateDateAndTimeColumns) def options(self): return dict(separateDateAndTimeColumns=self.GetValue()) def saveSettings(self): self.settings.setboolean(self.section, self.setting, self.GetValue()) class SeparateCSSCheckBox(sized_controls.SizedPanel): ''' Control to let the user write CSS style information to a separate file instead of including it into the HTML file. ''' def __init__(self, parent, settings, section, setting): super(SeparateCSSCheckBox, self).__init__(parent) self.settings = settings self.section = section self.setting = setting self.createCheckBox() self.createHelpInformation(parent) def createCheckBox(self): self.separateCSSCheckBox = wx.CheckBox(self, # pylint: disable=W0201 label=_('Write style information to a separate CSS file')) separateCSS = self.settings.getboolean(self.section, self.setting) self.separateCSSCheckBox.SetValue(separateCSS) def createHelpInformation(self, parent): width = max([child.GetSize()[0] for child in [self.separateCSSCheckBox] + list(parent.GetChildren())]) info = wx.StaticText(self, label=_('If a CSS file exists for the exported file, %(name)s will not overwrite it. ' \ 'This allows you to change the style information without losing your changes on the next export.') % meta.metaDict) info.Wrap(width) def options(self): return dict(separateCSS=self.separateCSSCheckBox.GetValue()) def saveSettings(self): self.settings.set(self.section, self.setting, str(self.separateCSSCheckBox.GetValue())) # Export dialogs for different file types: class ExportAsCSVDialog(ExportDialog): title = _('Export as CSV') def createInterior(self, pane): viewerPicker = ViewerPicker(pane, self.exportableViewers(), self.activeViewer()) viewerPicker.Bind(EVT_VIEWERPICKED, self.onViewerChanged) # pylint: disable=W0201 self.columnPicker = ColumnPicker(pane, viewerPicker.selectedViewer()) selectionOnlyCheckBox = SelectionOnlyCheckBox(pane, self.settings, self.section, 'csv_selectiononly') self.separateDateAndTimeColumnsCheckBox = \ SeparateDateAndTimeColumnsCheckBox(pane, self.settings, self.section, 'csv_separatedateandtimecolumns') self.__check(viewerPicker.selectedViewer()) return viewerPicker, self.columnPicker, selectionOnlyCheckBox, self.separateDateAndTimeColumnsCheckBox def onViewerChanged(self, event): event.Skip() self.columnPicker.populateColumnPicker(event.viewer) self.__check(event.viewer) def __check(self, viewer): self.separateDateAndTimeColumnsCheckBox.Enable(viewer.isShowingTasks() or viewer.isShowingEffort()) class ExportAsICalendarDialog(ExportDialog): title = _('Export as iCalendar') def createInterior(self, pane): viewerPicker = ViewerPicker(pane, self.exportableViewers(), self.activeViewer()) selectionOnlyCheckBox = SelectionOnlyCheckBox(pane, self.settings, self.section, 'ical_selectiononly') return viewerPicker, selectionOnlyCheckBox def exportableViewers(self): viewers = super(ExportAsICalendarDialog, self).exportableViewers() return [viewer for viewer in viewers if viewer.isShowingTasks() or (viewer.isShowingEffort() and not viewer.isShowingAggregatedEffort())] class ExportAsHTMLDialog(ExportDialog): title = _('Export as HTML') def createInterior(self, pane): viewerPicker = ViewerPicker(pane, self.exportableViewers(), self.activeViewer()) viewerPicker.Bind(EVT_VIEWERPICKED, self.onViewerChanged) self.columnPicker = ColumnPicker(pane, viewerPicker.selectedViewer()) # pylint: disable=W0201 selectionOnlyCheckBox = SelectionOnlyCheckBox(pane, self.settings, self.section, 'html_selectiononly') separateCSSChooser = SeparateCSSCheckBox(pane, self.settings, self.section, 'html_separatecss') return viewerPicker, self.columnPicker, selectionOnlyCheckBox, separateCSSChooser def onViewerChanged(self, event): event.Skip() self.columnPicker.populateColumnPicker(event.viewer) class ExportAsTodoTxtDialog(ExportDialog): title = _('Export as Todo.txt') def createInterior(self, pane): viewerPicker = ViewerPicker(pane, self.exportableViewers(), self.activeViewer()) selectionOnlyCheckBox = SelectionOnlyCheckBox(pane, self.settings, self.section, 'todotxt_selectiononly') return viewerPicker, selectionOnlyCheckBox def exportableViewers(self): viewers = super(ExportAsTodoTxtDialog, self).exportableViewers() return [viewer for viewer in viewers if viewer.isShowingTasks()] taskcoach-1.4.3/taskcoachlib/gui/dialog/iphone.py000066400000000000000000000107561265347643000220100ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import wx.lib.hyperlink as hl from taskcoachlib.i18n import _ from taskcoachlib import operating_system class IPhoneSyncTypeDialog(wx.Dialog): def __init__(self, *args, **kwargs): super(IPhoneSyncTypeDialog, self).__init__(*args, **kwargs) vsz = wx.BoxSizer(wx.VERTICAL) vsz.Add(wx.StaticText(self, wx.ID_ANY, _('''An iPhone or iPod Touch device is trying to synchronize with this task file for the first time. What kind of synchronization would you like to use?''')), 1, wx.EXPAND|wx.ALL, 5) hsz = wx.BoxSizer(wx.HORIZONTAL) btn = wx.Button(self, wx.ID_ANY, _('Refresh from desktop')) hsz.Add(btn, 0, wx.ALL, 3) wx.EVT_BUTTON(btn, wx.ID_ANY, self.OnType1) btn = wx.Button(self, wx.ID_ANY, _('Refresh from device')) hsz.Add(btn, 0, wx.ALL, 3) wx.EVT_BUTTON(btn, wx.ID_ANY, self.OnType2) btn = wx.Button(self, wx.ID_ANY, _('Cancel')) hsz.Add(btn, 0, wx.ALL, 3) wx.EVT_BUTTON(btn, wx.ID_ANY, self.OnCancel) vsz.Add(hsz, 0, wx.ALIGN_RIGHT) self.SetSizer(vsz) self.Fit() self.CentreOnScreen() self.RequestUserAttention() self.value = 3 # cancel def OnType1(self, evt): self.value = 1 self.EndModal(wx.ID_OK) def OnType2(self, evt): self.value = 2 self.EndModal(wx.ID_OK) def OnCancel(self, evt): self.EndModal(wx.ID_CANCEL) class IPhoneBonjourDialog(wx.Dialog): def __init__(self, *args, **kwargs): super(IPhoneBonjourDialog, self).__init__(*args, **kwargs) vsizer = wx.BoxSizer(wx.VERTICAL) vsizer.Add(wx.StaticText(self, wx.ID_ANY, _('You have enabled the iPhone synchronization feature, which\n' 'needs Bonjour. Bonjour does not seem to be installed on\n' 'your system.')), 0, wx.ALL, 3) if operating_system.isWindows(): # pragma: no cover vsizer.Add(wx.StaticText(self, wx.ID_ANY, _('Please download and install Bonjour for Windows from\n')), 0, wx.ALL, 3) vsizer.Add(hl.HyperLinkCtrl(self, wx.ID_ANY, _('Apple\'s web site'), URL='http://support.apple.com/downloads/Bonjour_for_Windows'), 0, wx.ALL, 3) else: # pragma: no cover # MacOS does support Bonjour in all cases, so we're probably running Linux. vsizer.Add(wx.StaticText(self, wx.ID_ANY, _('Bonjour support for Linux is generally provided by\n' 'Avahi.')), 0, wx.ALL, 3) vsizer.Add(hl.HyperLinkCtrl(self, wx.ID_ANY, _('You may find details for your distribution here'), URL='http://avahi.org/wiki/AboutAvahi#Distributions'), 0, wx.ALL, 3) vsizer.Add(wx.StaticText(self, wx.ID_ANY, _('Note that under some systems (Fedora), you may have to\n' 'install the avahi-compat-libdns_sd package as well as Avahi in order\n' 'for this to work.')), 0, wx.ALL, 3) vsizer.Add(wx.StaticText(self, wx.ID_ANY, _('In addition, if you have a firewall, check that ports 4096-4100 are open.'))) btnOK = wx.Button(self, wx.ID_ANY, _('OK')) vsizer.Add(btnOK, 0, wx.ALIGN_CENTRE|wx.ALL, 3) self.SetSizer(vsizer) self.Fit() self.CentreOnScreen() wx.EVT_BUTTON(btnOK, wx.ID_ANY, self.OnDismiss) def OnDismiss(self, evt): self.EndModal(wx.ID_OK) taskcoach-1.4.3/taskcoachlib/gui/dialog/preferences.py000077500000000000000000001130131265347643000230200ustar00rootroot00000000000000# -*- coding: UTF-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2012 Nicola Chiapolini Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta, widgets, notify, operating_system, render from taskcoachlib.domain import date, task from taskcoachlib.gui import artprovider from taskcoachlib.meta import data from taskcoachlib.i18n import _ import wx, calendar class FontColorSyncer(object): ''' The font color can be changed via the font color buttons and via the font button. The FontColorSyncer updates the one when the font color is changed via the other and vice versa. ''' def __init__(self, fgColorButton, bgColorButton, fontButton): self._fgColorButton = fgColorButton self._bgColorButton = bgColorButton self._fontButton = fontButton fgColorButton.Bind(wx.EVT_COLOURPICKER_CHANGED, self.onFgColorPicked) bgColorButton.Bind(wx.EVT_COLOURPICKER_CHANGED, self.onBgColorPicked) fontButton.Bind(wx.EVT_FONTPICKER_CHANGED, self.onFontPicked) def onFgColorPicked(self, event): # pylint: disable=W0613 self._fontButton.SetSelectedColour(self._fgColorButton.GetColour()) def onBgColorPicked(self, event): # pylint: disable=W0613 self._fontButton.SetBackgroundColour(self._bgColorButton.GetColour()) def onFontPicked(self, event): # pylint: disable=W0613 fontColor = self._fontButton.GetSelectedColour() if fontColor != self._fgColorButton.GetColour() and fontColor != wx.BLACK: self._fgColorButton.SetColour(self._fontButton.GetSelectedColour()) else: self._fontButton.SetSelectedColour(self._fgColorButton.GetColour()) class SettingsPageBase(widgets.BookPage): def __init__(self, *args, **kwargs): super(SettingsPageBase, self).__init__(*args, **kwargs) self._booleanSettings = [] self._choiceSettings = [] self._multipleChoiceSettings = [] self._integerSettings = [] self._timeSettings = [] self._colorSettings = [] self._fontSettings = [] self._iconSettings = [] self._pathSettings = [] self._textSettings = [] self._syncers = [] def addBooleanSetting(self, section, setting, text, helpText='', **kwargs): checkBox = wx.CheckBox(self, -1) checkBox.SetValue(self.getboolean(section, setting)) self.addEntry(text, checkBox, helpText=helpText, **kwargs) self._booleanSettings.append((section, setting, checkBox)) return checkBox def addChoiceSetting(self, section, setting, text, helpText, *listsOfChoices, **kwargs): choiceCtrls = [] currentValue = self.gettext(section, setting) sep = kwargs.pop('sep', '_') for choices, currentValuePart in zip(listsOfChoices, currentValue.split(sep)): choiceCtrl = wx.Choice(self) choiceCtrls.append(choiceCtrl) for choiceValue, choiceText in choices: choiceCtrl.Append(choiceText, choiceValue) if choiceValue == currentValuePart: choiceCtrl.SetSelection(choiceCtrl.GetCount() - 1) # Force a selection if necessary: if choiceCtrl.GetSelection() == wx.NOT_FOUND: choiceCtrl.SetSelection(0) # pylint: disable=W0142 self.addEntry(text, *choiceCtrls, helpText=helpText, flags=kwargs.get('flags', None)) self._choiceSettings.append((section, setting, choiceCtrls)) return choiceCtrls def enableChoiceSetting(self, section, setting, enabled): for theSection, theSetting, ctrls in self._choiceSettings: if theSection == section and theSetting == setting: for ctrl in ctrls: ctrl.Enable(enabled) break def addMultipleChoiceSettings(self, section, setting, text, choices, helpText='', **kwargs): # choices is a list of (number, text) tuples. multipleChoice = wx.CheckListBox(self, choices=[choice[1] for choice in choices]) checkedNumbers = self.getlist(section, setting) for index, choice in enumerate(choices): multipleChoice.Check(index, choice[0] in checkedNumbers) self.addEntry(text, multipleChoice, helpText=helpText, growable=True, flags=kwargs.get('flags', None)) self._multipleChoiceSettings.append((section, setting, multipleChoice, [choice[0] for choice in choices])) def addIntegerSetting(self, section, setting, text, minimum=0, maximum=100, helpText='', flags=None): intValue = self.getint(section, setting) spin = widgets.SpinCtrl(self, min=minimum, max=maximum, size=(65, -1), value=intValue) self.addEntry(text, spin, helpText=helpText, flags=flags) self._integerSettings.append((section, setting, spin)) def addTimeSetting(self, section, setting, text, helpText='', disabledMessage=None, disabledValue=None, defaultValue=0): hourValue = self.getint(section, setting) timeCtrl = widgets.TimeEntry(self, hourValue, defaultValue=defaultValue, disabledValue=disabledValue, disabledMessage=disabledMessage) self.addEntry(text, timeCtrl, helpText=helpText, flags=(wx.ALL|wx.ALIGN_CENTER_VERTICAL, wx.ALL|wx.ALIGN_CENTER_VERTICAL, wx.ALL|wx.ALIGN_CENTER_VERTICAL)) self._timeSettings.append((section, setting, timeCtrl)) def addFontSetting(self, section, setting, text): default_font = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) native_info_string = self.gettext(section, setting) current_font = wx.FontFromNativeInfoString(native_info_string) \ if native_info_string else None font_button = widgets.FontPickerCtrl(self, font=current_font or default_font, colour=(0, 0, 0, 255)) font_button.SetBackgroundColour((255, 255, 255, 255)) self.addEntry(text, font_button, flags=(wx.ALL | wx.ALIGN_CENTER_VERTICAL, wx.ALL | wx.ALIGN_CENTER_VERTICAL # wx.EXPAND causes the button to be top aligned on Mac OS X )) self._fontSettings.append((section, setting, font_button)) def addAppearanceHeader(self): self.addEntry('', _('Foreground color'), _('Background color'), _('Font'), _('Icon'), flags=[wx.ALL | wx.ALIGN_CENTER] * 5) def addAppearanceSetting(self, fgColorSection, fgColorSetting, bgColorSection, bgColorSetting, fontSection, fontSetting, iconSection, iconSetting, text): currentFgColor = self.getvalue(fgColorSection, fgColorSetting) fgColorButton = wx.ColourPickerCtrl(self, col=currentFgColor) currentBgColor = self.getvalue(bgColorSection, bgColorSetting) bgColorButton = wx.ColourPickerCtrl(self, col=currentBgColor) defaultFont = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) nativeInfoString = self.gettext(fontSection, fontSetting) currentFont = wx.FontFromNativeInfoString(nativeInfoString) if nativeInfoString else None fontButton = widgets.FontPickerCtrl(self, font=currentFont or defaultFont, colour=currentFgColor) fontButton.SetBackgroundColour(currentBgColor) iconEntry = wx.combo.BitmapComboBox(self, style=wx.CB_READONLY) imageNames = sorted(artprovider.chooseableItemImages.keys()) for imageName in imageNames: label = artprovider.chooseableItemImages[imageName] bitmap = wx.ArtProvider_GetBitmap(imageName, wx.ART_MENU, (16, 16)) item = iconEntry.Append(label, bitmap) iconEntry.SetClientData(item, imageName) currentIcon = self.gettext(iconSection, iconSetting) currentSelectionIndex = imageNames.index(currentIcon) iconEntry.SetSelection(currentSelectionIndex) # pylint: disable=E1101 self.addEntry(text, fgColorButton, bgColorButton, fontButton, iconEntry, flags=(wx.ALL | wx.ALIGN_CENTER_VERTICAL, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, wx.ALL | wx.ALIGN_CENTER_VERTICAL, # wx.EXPAND causes the button to be top aligned on Mac OS X wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL)) self._colorSettings.append((fgColorSection, fgColorSetting, fgColorButton)) self._colorSettings.append((bgColorSection, bgColorSetting, bgColorButton)) self._iconSettings.append((iconSection, iconSetting, iconEntry)) self._fontSettings.append((fontSection, fontSetting, fontButton)) self._syncers.append(FontColorSyncer(fgColorButton, bgColorButton, fontButton)) def addPathSetting(self, section, setting, text, helpText=''): pathChooser = widgets.DirectoryChooser(self, wx.ID_ANY) pathChooser.SetPath(self.gettext(section, setting)) self.addEntry(text, pathChooser, helpText=helpText) self._pathSettings.append((section, setting, pathChooser)) def addTextSetting(self, section, setting, text, helpText=''): textChooser = wx.TextCtrl(self, wx.ID_ANY, self.gettext(section, setting)) self.addEntry(text, textChooser, helpText=helpText) self._textSettings.append((section, setting, textChooser)) def setTextSetting(self, section, setting, value): for theSection, theSetting, textChooser in self._textSettings: if theSection == section and theSetting == setting: textChooser.SetValue(value) def enableTextSetting(self, section, setting, enabled): for theSection, theSetting, textChooser in self._textSettings: if theSection == section and theSetting == setting: textChooser.Enable(enabled) break def addText(self, label, text): self.addEntry(label, text) def ok(self): for section, setting, checkBox in self._booleanSettings: self.setboolean(section, setting, checkBox.IsChecked()) for section, setting, choiceCtrls in self._choiceSettings: value = '_'.join([choice.GetClientData(choice.GetSelection()) for choice in choiceCtrls]) self.settext(section, setting, value) for section, setting, multipleChoice, choices in self._multipleChoiceSettings: self.setlist(section, setting, [choices[index] for index in range(len(choices)) if multipleChoice.IsChecked(index)]) for section, setting, spin in self._integerSettings: self.setint(section, setting, spin.GetValue()) for section, setting, timeCtrl in self._timeSettings: self.setint(section, setting, timeCtrl.GetValue()) for section, setting, colorButton in self._colorSettings: self.setvalue(section, setting, colorButton.GetColour()) for section, setting, fontButton in self._fontSettings: selectedFont = fontButton.GetSelectedFont() defaultFont = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) fontInfoDesc = '' if selectedFont == defaultFont else selectedFont.GetNativeFontInfoDesc() self.settext(section, setting, fontInfoDesc) for section, setting, iconEntry in self._iconSettings: iconName = iconEntry.GetClientData(iconEntry.GetSelection()) self.settext(section, setting, iconName) for section, setting, btn in self._pathSettings: self.settext(section, setting, btn.GetPath()) for section, setting, txt in self._textSettings: self.settext(section, setting, txt.GetValue()) def get(self, section, name): raise NotImplementedError def set(self, section, name, value): raise NotImplementedError def getint(self, section, name): return int(self.get(section, name)) def setint(self, section, name, value): self.set(section, name, str(value)) def setboolean(self, section, name, value): self.set(section, name, str(value)) def getboolean(self, section, name): return self.get(section, name) == 'True' def settext(self, section, name, value): self.set(section, name, value) def gettext(self, section, name): return self.get(section, name) def getlist(self, section, name): return eval(self.get(section, name)) def setlist(self, section, name, value): self.set(section, name, str(value)) def getvalue(self, section, name): return eval(self.get(section, name)) def setvalue(self, section, name, value): self.set(section, name, str(value)) class SettingsPage(SettingsPageBase): def __init__(self, settings=None, *args, **kwargs): self.settings = settings super(SettingsPage, self).__init__(*args, **kwargs) def addEntry(self, text, *controls, **kwargs): # pylint: disable=W0221 helpText = kwargs.pop('helpText', '') if helpText == 'restart': helpText = _('This setting will take effect after you restart %s') % meta.name elif helpText == 'override': helpText = _('This setting can be overridden for individual tasks\n' 'in the task edit dialog.') if helpText: controls = controls + (helpText,) super(SettingsPage, self).addEntry(text, *controls, **kwargs) def get(self, section, name): return self.settings.get(section, name) def set(self, section, name, value): if section is not None: self.settings.set(section, name, value) def getint(self, section, name): return self.settings.getint(section, name) def setint(self, section, name, value): self.settings.setint(section, name, value) def getboolean(self, section, name): return self.settings.getboolean(section, name) def setboolean(self, section, name, value): if section is not None: self.settings.setboolean(section, name, value) def settext(self, section, name, value): self.settings.settext(section, name, value) def gettext(self, section, name): return self.settings.gettext(section, name) def setvalue(self, section, name, value): self.settings.setvalue(section, name, value) def getvalue(self, section, name): return self.settings.getvalue(section, name) def setlist(self, section, name, value): self.settings.setlist(section, name, value) def getlist(self, section, name): return self.settings.getlist(section, name) class SavePage(SettingsPage): pageName = 'save' pageTitle = _('Files') pageIcon = 'save' def __init__(self, *args, **kwargs): super(SavePage, self).__init__(columns=3, *args, **kwargs) self.addBooleanSetting('file', 'autosave', _('Auto save after every change')) self.addBooleanSetting('file', 'autoload', _('Auto load when the file changes on disk')) self.addBooleanSetting('file', 'nopoll', _('Smart filesystem monitoring'), _('Try to detect changes to the task file in real time.\nDo not check this if your task file is on a network share.\nYou must restart %s after changing this.') % meta.name) self.addBooleanSetting('file', 'saveinifileinprogramdir', _('Save settings (%s.ini) in the same\n' 'directory as the program') % meta.filename, _('For running %s from a removable medium') % meta.name) self.addPathSetting('file', 'attachmentbase', _('Attachment base directory'), _('When adding an attachment, try to make\n' 'its path relative to this one.')) self.addMultipleChoiceSettings('file', 'autoimport', _('Before saving, automatically import from'), [('Todo.txt', _('Todo.txt format'))], helpText=_('Before saving, %s automatically imports tasks\n' 'from a Todo.txt file with the same name as the task file,\n' 'but with extension .txt') % meta.name) self.addMultipleChoiceSettings('file', 'autoexport', _('When saving, automatically export to'), [('Todo.txt', _('Todo.txt format'))], helpText=_('When saving, %s automatically exports tasks\n' 'to a Todo.txt file with the same name as the task file,\n' 'but with extension .txt') % meta.name) self.fit() class WindowBehaviorPage(SettingsPage): pageName = 'window' pageTitle = _('Window behavior') pageIcon = 'windows' def __init__(self, *args, **kwargs): super(WindowBehaviorPage, self).__init__(columns=2, growableColumn=-1, *args, **kwargs) self.addBooleanSetting('window', 'splash', _('Show splash screen on startup')) self.addBooleanSetting('window', 'tips', _('Show tips window on startup')) self.addChoiceSetting('window', 'starticonized', _('Start with the main window iconized'), '', [('Never', _('Never')), ('Always', _('Always')), ('WhenClosedIconized', _('If it was iconized last session'))]) self.addBooleanSetting('version', 'notify', _('Check for new version ' 'of %(name)s on startup') % meta.data.metaDict) self.addBooleanSetting('view', 'developermessages', _('Check for ' 'messages from the %(name)s developers on startup') % \ meta.data.metaDict) self.addBooleanSetting('window', 'hidewheniconized', _('Hide main window when iconized')) self.addBooleanSetting('window', 'hidewhenclosed', _('Minimize main window when closed')) if not operating_system.isMacOsXMavericks_OrNewer(): self.addBooleanSetting('window', 'blinktaskbariconwhentrackingeffort', _('Make clock in the task bar tick when tracking effort')) self.fit() class LanguagePage(SettingsPage): pageName = 'language' pageTitle = _('Language') pageIcon = 'person_talking_icon' def __init__(self, *args, **kwargs): super(LanguagePage, self).__init__(columns=3, *args, **kwargs) languages = \ [('ar', u'الْعَرَبيّة (Arabic)'), ('eu_ES', 'Euskal Herria (Basque)'), ('be_BY', u'беларуская мова (Belarusian)'), ('bs_BA', u'босански (Bosnian)'), ('pt_BR', u'Português brasileiro (Brazilian Portuguese)'), ('br_FR', 'Brezhoneg (Breton)'), ('bg_BG', u'български (Bulgarian)'), ('ca_ES', u'Català (Catalan)'), ('zh_CN', u'简体中文 (Simplified Chinese)'), ('zh_TW', u'正體字 (Traditional Chinese)'), ('cs_CS', u'Čeština (Czech)'), ('da_DA', 'Dansk (Danish)'), ('nl_NL', 'Nederlands (Dutch)'), ('en_AU', 'English (Australia)'), ('en_CA', 'English (Canada)'), ('en_GB', 'English (UK)'), ('en_US', 'English (US)'), ('eo', 'Esperanto'), ('et_EE', 'Eesti keel (Estonian)'), ('fi_FI', 'Suomi (Finnish)'), ('fr_FR', u'Français (French)'), ('gl_ES', 'Galego (Galician)'), ('de_DE', 'Deutsch (German)'), ('nds_DE', 'Niederdeutsche Sprache (Low German)'), ('el_GR', u'ελληνικά (Greek)'), ('he_IL', u'עברית (Hebrew)'), ('hi_IN', u'हिन्दी, हिंदी (Hindi)'), ('hu_HU', 'Magyar (Hungarian)'), ('id_ID', 'Bahasa Indonesia (Indonesian)'), ('it_IT', 'Italiano (Italian)'), ('ja_JP', u'日本語 (Japanese)'), ('ko_KO', u'한국어/조선말 (Korean)'), ('lv_LV', u'Latviešu (Latvian)'), ('lt_LT', u'Lietuvių kalba (Lithuanian)'), ('mr_IN', u'मराठी Marāṭhī (Marathi)'), ('mn_CN', u'Монгол бичиг (Mongolian)'), ('nb_NO', u'Bokmål (Norwegian Bokmal)'), ('nn_NO', u'Nynorsk (Norwegian Nynorsk)'), ('oc_FR', u"Lenga d'òc (Occitan)"), ('pap', 'Papiamentu (Papiamento)'), ('fa_IR', u'فارسی (Persian)'), ('pl_PL', u'Język polski (Polish)'), ('pt_PT', u'Português (Portuguese)'), ('ro_RO', u'Română (Romanian)'), ('ru_RU', u'Русский (Russian)'), ('sk_SK', u'Slovenčina (Slovak)'), ('sl_SI', u'Slovenski jezik (Slovene)'), ('es_ES', u'Español (Spanish)'), ('sv_SE', 'Svenska (Swedish)'), ('te_IN', u'తెలుగు (Telugu)'), ('th_TH', u'ภาษาไทย (Thai)'), ('tr_TR', u'Türkçe (Turkish)'), ('uk_UA', u'украї́нська мо́ва (Ukranian)'), ('vi_VI', u'tiếng Việt (Vietnamese)')] choices = [('', _('Let the system determine the language'))] allLanguages = dict(data.languages.values()) for code, label in languages: if code == 'en_US': label = 'English (US)' enabled = True elif code in allLanguages: enabled = allLanguages[code] elif '_' in code: enabled = allLanguages.get(code.split('_')[0], False) else: enabled = False if enabled: choices.append((code, label)) # Don't use '_' as separator since we don't have different choice # controls for language and country (but maybe we should?) self.addChoiceSetting('view', 'language_set_by_user', _('Language'), 'restart', choices, flags=(None, wx.ALL | wx.ALIGN_CENTER_VERTICAL, wx.ALL | wx.ALIGN_CENTER_VERTICAL), sep='-') panel = wx.Panel(self) sizer = wx.BoxSizer(wx.VERTICAL) text = wx.StaticText(panel, label=_('If your language is not ' 'available, or the translation needs improving, please consider ' 'helping. See:')) sizer.Add(text) url = meta.i18n_url urlCtrl = wx.HyperlinkCtrl(panel, -1, label=url, url=url) sizer.Add(urlCtrl) panel.SetSizerAndFit(sizer) self.addText(_('Language not found?'), panel) self.fit() def ok(self): super(LanguagePage, self).ok() self.set('view', 'language', self.get('view', 'language_set_by_user')) class TaskAppearancePage(SettingsPage): pageName = 'appearance' pageTitle = _('Task appearance') pageIcon = 'palette_icon' def __init__(self, *args, **kwargs): super(TaskAppearancePage, self).__init__(columns=9, growableColumn=-1, *args, **kwargs) self.addAppearanceHeader() for status in task.Task.possibleStatuses(): setting = '%stasks' % status self.addAppearanceSetting('fgcolor', setting, 'bgcolor', setting, 'font', setting, 'icon', setting, status.pluralLabel) self.addText('', _('These appearance settings can be overridden ' 'for individual tasks in the task edit dialog.')) self.fit() class FeaturesPage(SettingsPage): pageName = 'features' pageTitle = _('Features') pageIcon = 'cogwheel_icon' def __init__(self, *args, **kwargs): super(FeaturesPage, self).__init__(columns=3, growableColumn=-1, *args, **kwargs) self.addEntry(_('All settings on this tab require a restart of %s ' \ 'to take effect') % meta.name) try: import taskcoachlib.syncml.core # pylint: disable=W0404,W0612 except ImportError: pass else: self.addBooleanSetting('feature', 'syncml', _('Enable SyncML')) self.addBooleanSetting('feature', 'iphone', _('Enable iPhone synchronization')) if operating_system.isGTK(): self.addBooleanSetting('feature', 'usesm2', _('Use X11 session management')) self.addChoiceSetting('view', 'weekstart', _('Start of work week'), ' ', [('monday', _('Monday')), ('sunday', _('Sunday'))]) self.addTimeSetting('view', 'efforthourstart', _('Hour of start of work day'), helpText=' ') self.addTimeSetting('view', 'efforthourend', _('Hour of end of work day'), helpText=' ', disabledMessage=_('End of day'), disabledValue=24, defaultValue=23) self.addBooleanSetting('calendarviewer', 'gradient', _('Use gradients in calendar views.\n' 'This may slow down Task Coach.')) self.addChoiceSetting('view', 'effortminuteinterval', _('Minutes between suggested times'), _('In popup-menus for time selection (e.g. for setting the start \n' 'time of an effort) %(name)s will suggest times using this \n' 'setting. The smaller the number of minutes, the more times \n' 'are suggested. Of course, you can also enter any time you \n' 'want beside the suggested times.') % meta.data.metaDict, [(minutes, minutes) for minutes in ('5', '6', '10', '15', '20', '30')], flags=(None, wx.ALL | wx.ALIGN_CENTER_VERTICAL, wx.ALL | wx.ALIGN_CENTER_VERTICAL)) self.addIntegerSetting('feature', 'minidletime', _('Idle time notice'), helpText=_('If there is no user input for this amount of time\n' '(in minutes), %(name)s will ask what to do about current ' 'efforts.') % meta.data.metaDict) self.addBooleanSetting('feature', 'decimaltime', _('Use decimal times for effort entries.'), _('Display one hour, fifteen minutes as 1.25 instead of 1:15\n' 'This is useful when creating invoices.')) self.addBooleanSetting('view', 'descriptionpopups', _('Show a popup with the description of an item\n' 'when hovering over it')) self.fit() def ok(self): super(FeaturesPage, self).ok() calendar.setfirstweekday(dict(monday=0, sunday=6)[self.get('view', 'weekstart')]) class TaskDatesPage(SettingsPage): pageName = 'task' pageTitle = _('Task dates') pageIcon = 'calendar_icon' def __init__(self, *args, **kwargs): super(TaskDatesPage, self).__init__(columns=4, growableColumn=-1, *args, **kwargs) self.addBooleanSetting('behavior', 'markparentcompletedwhenallchildrencompleted', _('Mark parent task completed when all children are completed'), helpText='override') self.addIntegerSetting('behavior', 'duesoonhours', _("Number of hours that tasks are considered to be 'due soon'"), minimum=0, maximum=9999, flags=(None, wx.ALL | wx.ALIGN_LEFT)) choices = [('', _('Nothing')), ('startdue', _('Changing the planned start date changes the due date')), ('duestart', _('Changing the due date changes the planned start date'))] self.addChoiceSetting('view', 'datestied', _('What to do with planned start and due date if the other one is changed'), '', choices, flags=(None, wx.ALL | wx.ALIGN_LEFT)) check_choices = [('preset', _('Preset')), ('propose', _('Propose'))] day_choices = [('today', _('Today')), ('tomorrow', _('Tomorrow')), ('dayaftertomorrow', _('Day after tomorrow')), ('nextfriday', _('Next Friday')), ('nextmonday', _('Next Monday'))] time_choices = [('startofday', _('Start of day')), ('startofworkingday', _('Start of working day')), ('currenttime', _('Current time')), ('endofworkingday', _('End of working day')), ('endofday', _('End of day'))] self.addChoiceSetting('view', 'defaultplannedstartdatetime', _('Default planned start date and time'), '', check_choices, day_choices, time_choices) self.addChoiceSetting('view', 'defaultduedatetime', _('Default due date and time'), '', check_choices, day_choices, time_choices) self.addChoiceSetting('view', 'defaultactualstartdatetime', _('Default actual start date and time'), '', check_choices, day_choices, time_choices) self.addChoiceSetting('view', 'defaultcompletiondatetime', _('Default completion date and time'), '', [check_choices[1]], day_choices, time_choices) self.addChoiceSetting('view', 'defaultreminderdatetime', _('Default reminder date and time'), '', check_choices, day_choices, time_choices) self.__add_help_text() self.fit() def __add_help_text(self): ''' Add help text for the default date and time settings. ''' help_text = wx.StaticText(self, label=_('''New tasks start with "Preset" dates and times filled in and checked. "Proposed" dates and times are filled in, but not checked. "Start of day" is midnight and "End of day" is just before midnight. When using these, task viewers hide the time and show only the date. "Start of working day" and "End of working day" use the working day as set in the Features tab of this preferences dialog.''') % meta.data.metaDict) help_text.Wrap(460) self.addText('', help_text) class TaskReminderPage(SettingsPage): pageName = 'reminder' pageTitle = _('Task reminders') pageIcon = 'clock_alarm_icon' def __init__(self, *args, **kwargs): super(TaskReminderPage, self).__init__(columns=3, growableColumn=-1, *args, **kwargs) names = [] # There's at least one, the universal one for name in notify.AbstractNotifier.names(): names.append((name, name)) self.addChoiceSetting('feature', 'notifier', _('Notification system to use for reminders'), '', names, flags=(None, wx.ALL | wx.ALIGN_LEFT)) if operating_system.isMac() or operating_system.isGTK(): self.addBooleanSetting('feature', 'sayreminder', _('Let the computer say the reminder'), _('(Needs espeak)') if operating_system.isGTK() else '', flags=(None, wx.ALL | wx.ALIGN_LEFT, wx.ALL | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL)) snoozeChoices = [(str(choice[0]), choice[1]) for choice in date.snoozeChoices] self.addChoiceSetting('view', 'defaultsnoozetime', _('Default snooze time to use after reminder'), '', snoozeChoices, flags=(None, wx.ALL | wx.ALIGN_LEFT)) self.addMultipleChoiceSettings('view', 'snoozetimes', _('Snooze times to offer in task reminder dialog'), date.snoozeChoices[1:], flags=(wx.ALIGN_TOP | wx.ALL, None)) # Don't offer "Don't snooze" as a choice self.fit() class IPhonePage(SettingsPage): pageName = 'iphone' pageTitle = _('iPhone') pageIcon = 'computer_handheld_icon' def __init__(self, *args, **kwargs): super(IPhonePage, self).__init__(columns=3, *args, **kwargs) self.addTextSetting('iphone', 'password', _('Password for synchronization with iPhone'), helpText=_('When synchronizing, enter this password on the iPhone to authorize it')) self.addTextSetting('iphone', 'service', _('Bonjour service name'), helpText='restart') self.addBooleanSetting('iphone', 'synccompleted', _('Upload completed tasks to device')) self.addBooleanSetting('iphone', 'showlog', _('Show the synchronization log')) self.fit() class EditorPage(SettingsPage): pageName = 'editor' pageTitle = _('Editor') pageIcon = 'edit' def __init__(self, *args, **kwargs): super(EditorPage, self).__init__(columns=2, *args, **kwargs) if operating_system.isMac() and \ not operating_system.isMacOsXMountainLion_OrNewer(): self.addBooleanSetting('editor', 'maccheckspelling', _('Check spelling in editors')) self.addFontSetting('editor', 'descriptionfont', _('Font to use in the description field of edit dialogs')) self.fit() def ok(self): super(EditorPage, self).ok() widgets.MultiLineTextCtrl.CheckSpelling = \ self.settings.getboolean('editor', 'maccheckspelling') class OSXPage(SettingsPage): pageName = 'os_darwin' pageTitle = _('OS X') pageIcon = 'mac' def __init__(self, *args, **kwargs): super(OSXPage, self).__init__(columns=3, *args, **kwargs) self.addBooleanSetting('os_darwin', 'getmailsubject', _('Get e-mail subject from Mail.app'), helpText=_('When dropping an e-mail from Mail.app, try to get its subject.\nThis takes up to 20 seconds.')) self.fit() class LinuxPage(SettingsPage): pageName = 'os_linux' pageTitle = _('Linux') pageIcon = 'linux' def __init__(self, *args, **kwargs): super(LinuxPage, self).__init__(columns=3, *args, **kwargs) self.addBooleanSetting('os_linux', 'focustextentry', _('Focus task subject in task editor'), helpText=_('When opening the task editor, select the task subject and focus it.\nThis overwrites the X selection.')) self.fit() class Preferences(widgets.NotebookDialog): allPageNames = ['window', 'save', 'language', 'task', 'reminder', 'appearance', 'features', 'iphone', 'editor', 'os_darwin', 'os_linux'] pages = dict(window=WindowBehaviorPage, task=TaskDatesPage, reminder=TaskReminderPage, save=SavePage, language=LanguagePage, appearance=TaskAppearancePage, features=FeaturesPage, iphone=IPhonePage, editor=EditorPage, os_darwin=OSXPage, os_linux=LinuxPage) def __init__(self, settings=None, *args, **kwargs): self.settings = settings super(Preferences, self).__init__(bitmap='wrench_icon', *args, **kwargs) if operating_system.isMac(): self.CentreOnParent() def addPages(self): self._interior.SetMinSize((950, 550)) for page_name in self.allPageNames: if self.__should_create_page(page_name): page = self.createPage(page_name) self._interior.AddPage(page, page.pageTitle, page.pageIcon) def __should_create_page(self, page_name): if page_name == 'iphone': return self.settings.getboolean('feature', 'iphone') elif page_name == 'os_darwin': return operating_system.isMac() elif page_name == 'os_linux': return operating_system.isGTK() else: return True def createPage(self, pageName): return self.pages[pageName](parent=self._interior, settings=self.settings) taskcoach-1.4.3/taskcoachlib/gui/dialog/reminder.py000066400000000000000000000156541265347643000223350ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta, patterns, command, render, operating_system, \ speak from taskcoachlib.domain import date from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub from wx.lib import sized_controls import subprocess import wx class ReminderDialog(patterns.Observer, sized_controls.SizedDialog): def __init__(self, task, taskList, effortList, settings, *args, **kwargs): kwargs['title'] = _('%(name)s reminder - %(task)s') % \ dict(name=meta.name, task=task.subject(recursive=True)) super(ReminderDialog, self).__init__(*args, **kwargs) self.SetIcon(wx.ArtProvider_GetIcon('taskcoach', wx.ART_FRAME_ICON, (16, 16))) self.task = task self.taskList = taskList self.effortList = effortList self.settings = settings self.registerObserver(self.onTaskRemoved, eventType=self.taskList.removeItemEventType(), eventSource=self.taskList) pub.subscribe(self.onTaskCompletionDateChanged, task.completionDateTimeChangedEventType()) pub.subscribe(self.onTrackingChanged, task.trackingChangedEventType()) self.openTaskAfterClose = self.ignoreSnoozeOption = False pane = self.GetContentsPane() pane.SetSizerType("form") wx.StaticText(pane, label=_('Task') + ':') panel = wx.Panel(pane) sizer = wx.BoxSizer(wx.HORIZONTAL) self.openTask = wx.Button(panel, label=self.task.subject(recursive=True)) self.openTask.Bind(wx.EVT_BUTTON, self.onOpenTask) sizer.Add(self.openTask, flag=wx.ALIGN_CENTER_VERTICAL) self.startTracking = wx.BitmapButton(panel) self.setTrackingIcon() self.startTracking.Bind(wx.EVT_BUTTON, self.onStartOrStopTracking) sizer.Add((3, -1), flag=wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.startTracking, flag=wx.ALIGN_CENTER_VERTICAL) panel.SetSizerAndFit(sizer) for label in _('Reminder date/time') + ':', \ render.dateTime(self.task.reminder()), _('Snooze') + ':': wx.StaticText(pane, label=label) self.snoozeOptions = wx.ComboBox(pane, style=wx.CB_READONLY) sizer.Add(self.snoozeOptions, flag=wx.ALIGN_CENTER_VERTICAL) snoozeTimesUserWantsToSee = [0] + self.settings.getlist('view', 'snoozetimes') defaultSnoozeTime = self.settings.getint('view', 'defaultsnoozetime') # Use the 1st non-zero option if we don't find the last snooze time: selectionIndex = 1 # pylint: disable=E1101 for minutes, label in date.snoozeChoices: if minutes in snoozeTimesUserWantsToSee: self.snoozeOptions.Append(label, date.TimeDelta(minutes=minutes)) if minutes == defaultSnoozeTime: selectionIndex = self.snoozeOptions.Count - 1 self.snoozeOptions.SetSelection(min(selectionIndex, self.snoozeOptions.Count - 1)) wx.StaticText(pane, label='') self.replaceDefaultSnoozeTime = wx.CheckBox(pane, label=_('Also make this the default snooze time for future ' 'reminders')) self.replaceDefaultSnoozeTime.SetValue(self.settings.getboolean('view', 'replacedefaultsnoozetime')) buttonSizer = self.CreateStdDialogButtonSizer(wx.OK) self.markCompleted = wx.Button(self, label=_('Mark task completed')) self.markCompleted.Bind(wx.EVT_BUTTON, self.onMarkTaskCompleted) if self.task.completed(): self.markCompleted.Disable() buttonSizer.Add(self.markCompleted, flag=wx.ALIGN_CENTER_VERTICAL) self.SetButtonSizer(buttonSizer) self.Bind(wx.EVT_CLOSE, self.onClose) self.Bind(wx.EVT_BUTTON, self.onOK, id=self.GetAffirmativeId()) self.Fit() self.RequestUserAttention() if self.settings.getboolean('feature', 'sayreminder'): speak.Speaker().say('"%s: %s"' % (_('Reminder'), task.subject())) def onOpenTask(self, event): # pylint: disable=W0613 self.openTaskAfterClose = True self.Close() def onStartOrStopTracking(self, event): # pylint: disable=W0613 if self.task.isBeingTracked(): command.StopEffortCommand(self.effortList).do() else: command.StartEffortCommand(self.taskList, [self.task]).do() self.setTrackingIcon() def onTrackingChanged(self, newValue, sender): # pylint: disable=W0613 self.setTrackingIcon() def setTrackingIcon(self): icon = 'clock_stop_icon' if self.task.isBeingTracked() else 'clock_icon' self.startTracking.SetBitmapLabel(wx.ArtProvider_GetBitmap(icon, wx.ART_TOOLBAR, (16, 16))) def onMarkTaskCompleted(self, event): # pylint: disable=W0613 self.ignoreSnoozeOption = True self.Close() command.MarkCompletedCommand(self.taskList, [self.task]).do() def onTaskRemoved(self, event): if self.task in event.values(): self.Close() def onTaskCompletionDateChanged(self, newValue, sender): # pylint: disable=W0613 if sender == self.task: if self.task.completed(): self.Close() else: self.markCompleted.Enable() def onClose(self, event): event.Skip() replace_default_snooze_time = self.replaceDefaultSnoozeTime.GetValue() if replace_default_snooze_time: # pylint: disable=E1101 selection = self.snoozeOptions.Selection minutes = self.snoozeOptions.GetClientData(selection).minutes() self.settings.set('view', 'defaultsnoozetime', str(int(minutes))) self.settings.setboolean('view', 'replacedefaultsnoozetime', replace_default_snooze_time) self.removeInstance() def onOK(self, event): event.Skip() self.Close() taskcoach-1.4.3/taskcoachlib/gui/dialog/syncpreferences.py000066400000000000000000000156751265347643000237310ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.gui.dialog.preferences import SettingsPageBase from taskcoachlib import widgets, operating_system from taskcoachlib.i18n import _ class SyncMLBasePage(SettingsPageBase): def __init__(self, iocontroller=None, *args, **kwargs): super(SyncMLBasePage, self).__init__(*args, **kwargs) self.iocontroller = iocontroller self.config = iocontroller.syncMLConfig() def get(self, section, name): if section == 'access': if name in [ 'syncUrl' ]: return str(self.config.children()[0]['spds']['syncml']['Conn'].get(name)) elif name in [ 'username' ]: return str(self.config.children()[0]['spds']['syncml']['Auth'].get(name)) elif section == 'task': for child in self.config.children()[0]['spds']['sources'].children(): if child.name.endswith('Tasks'): return child.get(name) elif section == 'note': for child in self.config.children()[0]['spds']['sources'].children(): if child.name.endswith('Notes'): return child.get(name) return '' def set(self, section, name, value): if section == 'access': if name in [ 'syncUrl' ]: self.config.children()[0]['spds']['syncml']['Conn'].set(name, value) elif name in [ 'username' ]: self.config.children()[0]['spds']['syncml']['Auth'].set(name, value) elif section == 'task': for child in self.config.children()[0]['spds']['sources'].children(): if child.name.endswith('Tasks'): child.set(name, value) break elif section == 'note': for child in self.config.children()[0]['spds']['sources'].children(): if child.name.endswith('Notes'): child.set(name, value) break def ok(self): super(SyncMLBasePage, self).ok() self.iocontroller.setSyncMLConfig(self.config) class SyncMLAccessPage(SyncMLBasePage): def __init__(self, *args, **kwargs): super(SyncMLAccessPage, self).__init__(*args, **kwargs) choice = self.addChoiceSetting(None, 'preset', _('SyncML server'), '', [('0', _('Custom')), ('1', _('MemoToo (http://www.memotoo.com/)')), ('2', _('Horde-based'))])[0] wx.EVT_CHOICE(choice, wx.ID_ANY, self.OnPresetChanged) self.addTextSetting('access', 'syncUrl', _('SyncML server URL')) self.addTextSetting('access', 'username', _('User name/ID')) checkBox = self.addBooleanSetting('task', 'dosync', _('Enable tasks synchronization')) wx.EVT_CHECKBOX(checkBox, wx.ID_ANY, self.OnSyncTaskChanged) self.addTextSetting('task', 'uri', _('Tasks database name')) self.addChoiceSetting('task', 'preferredsyncmode', _('Preferred synchronization mode'), '', [('TWO_WAY', _('Two way')), ('SLOW', _('Slow')), ('ONE_WAY_FROM_CLIENT', _('One way from client')), ('REFRESH_FROM_CLIENT', _('Refresh from client')), ('ONE_WAY_FROM_SERVER', _('One way from server')), ('REFRESH_FROM_SERVER', _('Refresh from server'))]) self.enableTextSetting('task', 'uri', self.getboolean('task', 'dosync')) self.enableChoiceSetting('task', 'preferredsyncmode', self.getboolean('task', 'dosync')) checkBox = self.addBooleanSetting('note', 'dosync', _('Enable notes synchronization')) wx.EVT_CHECKBOX(checkBox, wx.ID_ANY, self.OnSyncNoteChanged) self.addTextSetting('note', 'uri', _('Notes database name')) self.addChoiceSetting('note', 'preferredsyncmode', _('Preferred synchronization mode'), '', [('TWO_WAY', _('Two way')), ('SLOW', _('Slow')), ('ONE_WAY_FROM_CLIENT', _('One way from client')), ('REFRESH_FROM_CLIENT', _('Refresh from client')), ('ONE_WAY_FROM_SERVER', _('One way from server')), ('REFRESH_FROM_SERVER', _('Refresh from server'))]) self.enableTextSetting('note', 'uri', self.getboolean('note', 'dosync')) self.enableChoiceSetting('note', 'preferredsyncmode', self.getboolean('note', 'dosync')) self.fit() def OnPresetChanged(self, event): if event.GetInt() == 1: self.setTextSetting('access', 'syncUrl', 'http://sync.memotoo.com/syncml') self.setTextSetting('task', 'uri', 'task') self.setTextSetting('note', 'uri', 'note') elif event.GetInt() == 2: self.setTextSetting('access', 'syncUrl', 'http:///rpc.php') self.setTextSetting('task', 'uri', 'tasks') self.setTextSetting('note', 'uri', 'notes') def OnSyncTaskChanged(self, event): self.enableTextSetting('task', 'uri', event.IsChecked()) self.enableChoiceSetting('task', 'preferredsyncmode', event.IsChecked()) def OnSyncNoteChanged(self, event): self.enableTextSetting('note', 'uri', event.IsChecked()) self.enableChoiceSetting('note', 'preferredsyncmode', event.IsChecked()) class SyncMLPreferences(widgets.NotebookDialog): def __init__(self, iocontroller=None, *args, **kwargs): self.iocontroller = iocontroller super(SyncMLPreferences, self).__init__(bitmap='wrench_icon', *args, **kwargs) self.SetSize((700, -1)) if operating_system.isMac(): self.CentreOnParent() def addPages(self): self._interior.SetMinSize((550, 400)) kwargs = dict(parent=self._interior, columns=3, iocontroller=self.iocontroller) # pylint: disable=W0142 pages = [(SyncMLAccessPage(growableColumn=1, **kwargs), _('Access'), 'earth_blue_icon')] for page, title, bitmap in pages: self._interior.AddPage(page, title, bitmap=bitmap) taskcoach-1.4.3/taskcoachlib/gui/dialog/templates.py000066400000000000000000000247421265347643000225240ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.domain.task import Task from taskcoachlib import persistence, operating_system from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.deltaTime import nlTimeExpression from wx.lib import sized_controls class TimeExpressionEntry(wx.TextCtrl): def __init__(self, *args, **kwargs): super(TimeExpressionEntry, self).__init__(*args, **kwargs) self.__defaultColor = self.GetBackgroundColour() self.__invalidColor = wx.Colour(255, 128, 128) wx.EVT_TEXT(self, wx.ID_ANY, self._onTextChanged) @staticmethod def isValid(value): if value: try: res = nlTimeExpression.parseString(value) except: return False # pylint: disable=W0702 return 'calculatedTime' in res return True # Empty is valid. def _onTextChanged(self, event): event.Skip() self.SetBackgroundColour(self.__defaultColor if self.isValid(self.GetValue()) else self.__invalidColor) class TemplatesDialog(sized_controls.SizedDialog): def __init__(self, settings, *args, **kwargs): self.settings = settings self._changing = False super(TemplatesDialog, self).__init__(style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER, *args, **kwargs) pane = self.GetContentsPane() pane.SetSizerType('vertical') self.createInterior(pane) self._buttonSizer = self.CreateStdDialogButtonSizer(wx.OK|wx.CANCEL) self.SetButtonSizer(self._buttonSizer) self.Fit() self.SetMinSize(self.GetSize()) # Current size is min size self._buttonSizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.ok) self.CentreOnParent() def createInterior(self, pane): self.createTemplateList(pane) self.createTemplateEntries(pane) def createTemplateList(self, pane): panel = sized_controls.SizedPanel(pane) panel.SetSizerType('horizontal') panel.SetSizerProps(expand=True, proportion=1) self._templateList = wx.TreeCtrl(panel, style=wx.TR_HAS_BUTTONS|wx.TR_HIDE_ROOT|wx.TR_SINGLE) self._templateList.SetMinSize((300, 200)) self._templateList.SetSizerProps(expand=True, proportion=1) self._templateList.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelectionChanged) self._templates = persistence.TemplateList(self.settings.pathToTemplatesDir()) self._root = self._templateList.AddRoot('Root') for task in self._templates.tasks(): item = self.appendTemplate(self._root, task) if operating_system.isMac(): # See http://trac.wxwidgets.org/ticket/10085 self._templateList.SetItemText(item, task.subject()) self.createTemplateListButtons(panel) panel.Fit() def createTemplateListButtons(self, pane): panel = sized_controls.SizedPanel(pane) panel.SetSizerType('vertical') self._btnDelete = self.createButton(panel, 'cross_red_icon', self.OnDelete, enable=False) self._btnUp = self.createButton(panel, 'arrow_up_icon', self.OnUp, enable=False) self._btnDown = self.createButton(panel, 'arrow_down_icon', self.OnDown, enable=False) self._btnAdd = self.createButton(panel, 'symbol_plus_icon', self.OnAdd) panel.Fit() def createButton(self, parent, bitmapName, handler, enable=True): bitmap = wx.ArtProvider_GetBitmap(bitmapName, size=(32, 32)) button = wx.BitmapButton(parent, bitmap=bitmap) button.Bind(wx.EVT_BUTTON, handler) button.Enable(enable) return button def createTemplateEntries(self, pane): panel = self._editPanel = sized_controls.SizedPanel(pane) panel.SetSizerType('form') panel.SetSizerProps(expand=True) label = wx.StaticText(panel, label=_('Subject')) label.SetSizerProps(valign='center') self._subjectCtrl = wx.TextCtrl(panel) label = wx.StaticText(panel, label=_('Planned start date')) label.SetSizerProps(valign='center') self._plannedStartDateTimeCtrl = TimeExpressionEntry(panel) label = wx.StaticText(panel, label=_('Due date')) label.SetSizerProps(valign='center') self._dueDateTimeCtrl = TimeExpressionEntry(panel) label = wx.StaticText(panel, label=_('Completion date')) label.SetSizerProps(valign='center') self._completionDateTimeCtrl = TimeExpressionEntry(panel) label = wx.StaticText(panel, label=_('Reminder')) label.SetSizerProps(valign='center') self._reminderDateTimeCtrl = TimeExpressionEntry(panel) self._taskControls = (self._subjectCtrl, self._plannedStartDateTimeCtrl, self._dueDateTimeCtrl, self._completionDateTimeCtrl, self._reminderDateTimeCtrl) for ctrl in self._taskControls: ctrl.SetSizerProps(valign='center', expand=True) ctrl.Bind(wx.EVT_TEXT, self.onValueChanged) self.enableEditPanel(False) panel.Fit() def enableEditPanel(self, enable=True): for ctrl in self._taskControls: ctrl.Enable(enable) def appendTemplate(self, parentItem, task): item = self._templateList.AppendItem(parentItem, task.subject(), data=wx.TreeItemData(task)) for child in task.children(): self.appendTemplate(item, child) return item def onValueChanged(self, event): event.Skip() if self._GetSelection().IsOk() and not self._changing: task = self._templateList.GetItemData(self._GetSelection()).GetData() task.setSubject(self._subjectCtrl.GetValue()) for ctrl, name in [(self._plannedStartDateTimeCtrl, 'plannedstartdatetmpl'), (self._dueDateTimeCtrl, 'duedatetmpl'), (self._completionDateTimeCtrl, 'completiondatetmpl'), (self._reminderDateTimeCtrl, 'remindertmpl')]: if TimeExpressionEntry.isValid(ctrl.GetValue()): setattr(task, name, ctrl.GetValue() or None) def _GetSelection(self): return self._templateList.GetSelection() def OnSelectionChanged(self, event): # pylint: disable=W0613 self._changing = True try: selection = self._GetSelection() selectionOK = selection.IsOk() and selection != self._root selectionAtRoot = False if selectionOK: selectionAtRoot = (self._templateList.GetItemParent(selection) == self._root) self._btnDelete.Enable(selectionAtRoot) self._btnUp.Enable(selectionAtRoot and self._templateList.GetPrevSibling(selection).IsOk()) self._btnDown.Enable(selectionAtRoot and self._templateList.GetNextSibling(selection).IsOk()) self.enableEditPanel(selectionOK) if selectionOK: task = self._templateList.GetItemData(selection).GetData() if task is None: for ctrl in self._taskControls: ctrl.SetValue(u'') else: self._subjectCtrl.SetValue(task.subject()) self._plannedStartDateTimeCtrl.SetValue(task.plannedstartdatetmpl or u'') self._dueDateTimeCtrl.SetValue(task.duedatetmpl or u'') self._completionDateTimeCtrl.SetValue(task.completiondatetmpl or u'') self._reminderDateTimeCtrl.SetValue(task.remindertmpl or u'') else: for ctrl in self._taskControls: ctrl.SetValue(u'') finally: self._changing = False def OnDelete(self, event): # pylint: disable=W0613 task = self._templateList.GetItemData(self._GetSelection()).GetData() index = self._templates.tasks().index(task) self._templates.deleteTemplate(index) self._templateList.Delete(self._GetSelection()) def OnUp(self, event): # pylint: disable=W0613 selection = self._GetSelection() prev = self._templateList.GetPrevSibling(selection) prev = self._templateList.GetPrevSibling(prev) task = self._templateList.GetItemData(selection).GetData() self._templateList.Delete(selection) if prev.IsOk(): item = self._templateList.InsertItem(self._root, prev, task.subject(), data=wx.TreeItemData(task)) else: item = self._templateList.PrependItem(self._root, task.subject(), data=wx.TreeItemData(task)) for child in task.children(): self.appendTemplate(item, child) index = self._templates.tasks().index(task) self._templates.swapTemplates(index - 1, index) self._templateList.SelectItem(item) def OnDown(self, event): # pylint: disable=W0613 selection = self._GetSelection() next = self._templateList.GetNextSibling(selection) task = self._templateList.GetItemData(selection).GetData() self._templateList.Delete(selection) item = self._templateList.InsertItem(self._root, next, task.subject(), data=wx.TreeItemData(task)) for child in task.children(): self.appendTemplate(item, child) index = self._templates.tasks().index(task) self._templates.swapTemplates(index, index + 1) self._templateList.SelectItem(item) def OnAdd(self, event): # pylint: disable=W0613 template = Task(subject=_('New task template')) for name in ('plannedstartdatetmpl', 'duedatetmpl', 'completiondatetmpl', 'remindertmpl'): setattr(template, name, None) theTask = self._templates.addTemplate(template) self.appendTemplate(self._root, theTask) def ok(self, event): self._templates.save() event.Skip() taskcoach-1.4.3/taskcoachlib/gui/dialog/toolbar.py000066400000000000000000000336521265347643000221700ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import widgets from taskcoachlib.help.balloontips import BalloonTipManager from taskcoachlib.gui import uicommand from taskcoachlib.i18n import _ from taskcoachlib.thirdparty import hypertreelist as htl import wx class _AutoWidthTree(widgets.autowidth.AutoColumnWidthMixin, htl.HyperTreeList): def __init__(self, *args, **kwargs): super(_AutoWidthTree, self).__init__(*args, **kwargs) self.ToggleAutoResizing(True) def _get_MainWindow(self): return self.GetMainWindow() MainWindow = property(_get_MainWindow) class _ToolBarEditorInterior(wx.Panel): def __init__(self, toolbar, settings, parent): self.__toolbar = toolbar self.__visible = toolbar.visibleUICommands() super(_ToolBarEditorInterior, self).__init__(parent) vsizer = wx.BoxSizer(wx.VERTICAL) # Toolbar preview sb = wx.StaticBox(self, wx.ID_ANY, _('Preview')) from taskcoachlib.gui.toolbar import ToolBar self.__preview = ToolBar(self, settings, self.__toolbar.GetToolBitmapSize()) sbsz = wx.StaticBoxSizer(sb) sbsz.Add(self.__preview, 1) vsizer.Add(sbsz, 0, wx.EXPAND|wx.ALL, 3) self.__HackPreview() hsizer = wx.BoxSizer(wx.HORIZONTAL) self.__imgList = wx.ImageList(16, 16) self.__imgListIndex = dict() empty = wx.EmptyImage(16, 16) empty.Replace(0, 0, 0, 255, 255, 255) self.__imgListIndex['nobitmap'] = self.__imgList.Add(empty.ConvertToBitmap()) for uiCommand in toolbar.uiCommands(): if uiCommand is not None and not isinstance(uiCommand, int) and uiCommand.bitmap != 'nobitmap': self.__imgListIndex[uiCommand.bitmap] = self.__imgList.Add(wx.ArtProvider.GetBitmap(uiCommand.bitmap, wx.ART_MENU, (16, 16))) # Remaining commands list sb = wx.StaticBox(self, wx.ID_ANY, _('Available tools')) self.__remainingCommands = _AutoWidthTree(self, agwStyle=htl.TR_NO_BUTTONS|htl.TR_SINGLE|htl.TR_NO_LINES|htl.TR_HIDE_ROOT|htl.TR_NO_HEADER|htl.TR_FULL_ROW_HIGHLIGHT) self.__remainingCommands.AddColumn('Command') self.__remainingCommands.SetImageList(self.__imgList) sbsz = wx.StaticBoxSizer(sb) sbsz.Add(self.__remainingCommands, 1, wx.EXPAND) hsizer.Add(sbsz, 1, wx.EXPAND|wx.ALL, 3) self.__PopulateRemainingCommands() # Show/hide buttons btnSizer = wx.BoxSizer(wx.VERTICAL) self.__showButton = wx.BitmapButton(self, wx.ID_ANY, wx.ArtProvider.GetBitmap('next', wx.ART_BUTTON, (16, 16))) self.__showButton.Enable(False) self.__showButton.SetToolTip(wx.ToolTip(_('Make this tool visible in the toolbar'))) btnSizer.Add(self.__showButton, wx.ALL, 3) self.__hideButton = wx.BitmapButton(self, wx.ID_ANY, wx.ArtProvider.GetBitmap('prev', wx.ART_BUTTON, (16, 16))) self.__hideButton.Enable(False) self.__hideButton.SetToolTip(wx.ToolTip(_('Hide this tool from the toolbar'))) btnSizer.Add(self.__hideButton, wx.ALL, 3) hsizer.Add(btnSizer, 0, wx.ALIGN_CENTRE) # Visible commands list sb = wx.StaticBox(self, wx.ID_ANY, _('Tools')) self.__visibleCommands = _AutoWidthTree(self, agwStyle=htl.TR_NO_BUTTONS|htl.TR_SINGLE|htl.TR_NO_LINES|htl.TR_HIDE_ROOT|htl.TR_NO_HEADER|htl.TR_FULL_ROW_HIGHLIGHT) self.__visibleCommands.AddColumn('Command') self.__visibleCommands.SetImageList(self.__imgList) sbsz = wx.StaticBoxSizer(sb) sbsz.Add(self.__visibleCommands, 1, wx.EXPAND) hsizer.Add(sbsz, 1, wx.EXPAND|wx.ALL, 3) # Move buttons btnSizer = wx.BoxSizer(wx.VERTICAL) self.__moveUpButton = wx.BitmapButton(self, wx.ID_ANY, wx.ArtProvider.GetBitmap('up', wx.ART_BUTTON, (16, 16))) self.__moveUpButton.Enable(False) self.__moveUpButton.SetToolTip(wx.ToolTip(_('Move the tool up (to the left of the toolbar)'))) btnSizer.Add(self.__moveUpButton, wx.ALL, 3) self.__moveDownButton = wx.BitmapButton(self, wx.ID_ANY, wx.ArtProvider.GetBitmap('down', wx.ART_BUTTON, (16, 16))) self.__moveDownButton.Enable(False) self.__moveDownButton.SetToolTip(wx.ToolTip(_('Move the tool down (to the right of the toolbar)'))) btnSizer.Add(self.__moveDownButton, wx.ALL, 3) hsizer.Add(btnSizer, 0, wx.ALIGN_CENTRE) self.__PopulateVisibleCommands() vsizer.Add(hsizer, 1, wx.EXPAND|wx.ALL, 3) self.SetSizer(vsizer) self.__remainingSelection = None self.__visibleSelection = None self.__draggedItem = None self.__draggingFromAvailable = False wx.EVT_TREE_SEL_CHANGED(self.__remainingCommands, wx.ID_ANY, self.__OnRemainingSelectionChanged) wx.EVT_TREE_SEL_CHANGED(self.__visibleCommands, wx.ID_ANY, self.__OnVisibleSelectionChanged) wx.EVT_BUTTON(self.__hideButton, wx.ID_ANY, self.__OnHide) wx.EVT_BUTTON(self.__showButton, wx.ID_ANY, self.__OnShow) wx.EVT_BUTTON(self.__moveUpButton, wx.ID_ANY, self.__OnMoveUp) wx.EVT_BUTTON(self.__moveDownButton, wx.ID_ANY, self.__OnMoveDown) wx.EVT_TREE_BEGIN_DRAG(self.__visibleCommands, wx.ID_ANY, self.__OnBeginDrag) wx.EVT_TREE_END_DRAG(self.__visibleCommands, wx.ID_ANY, self.__OnEndDrag) wx.EVT_TREE_BEGIN_DRAG(self.__remainingCommands, wx.ID_ANY, self.__OnBeginDrag2) wx.CallAfter(wx.GetTopLevelParent(self).AddBalloonTip, settings, 'customizabletoolbars_dnd', self.__visibleCommands, title=_('Drag and drop'), message=_('''Reorder toolbar buttons by drag and dropping them in this list.''')) def __OnRemainingSelectionChanged(self, event): self.__remainingSelection = event.GetItem() self.__showButton.Enable(self.__remainingSelection is not None) event.Skip() def __OnVisibleSelectionChanged(self, event): self.__visibleSelection = event.GetItem() self.__hideButton.Enable(self.__visibleSelection is not None) items = self.__visibleCommands.GetRootItem().GetChildren() idx = items.index(event.GetItem()) self.__moveUpButton.Enable(idx != 0) self.__moveDownButton.Enable(idx != len(items) - 1) event.Skip() def __OnHide(self, event): idx = self.__visibleCommands.GetRootItem().GetChildren().index(self.__visibleSelection) uiCommand = self.__visibleCommands.GetItemPyData(self.__visibleSelection) self.__visibleCommands.Delete(self.__visibleSelection) self.__visibleSelection = None self.__hideButton.Enable(False) del self.__visible[idx] if isinstance(uiCommand, uicommand.UICommand): for child in self.__remainingCommands.GetRootItem().GetChildren()[2:]: if self.__remainingCommands.GetItemPyData(child) == uiCommand: self.__remainingCommands.EnableItem(child, True) break self.__HackPreview() def __OnShow(self, event): uiCommand = self.__remainingCommands.GetItemPyData(self.__remainingSelection) if uiCommand is None: item = self.__visibleCommands.AppendItem(self.__visibleCommands.GetRootItem(), _('Separator')) elif isinstance(uiCommand, int): item = self.__visibleCommands.AppendItem(self.__visibleCommands.GetRootItem(), _('Spacer')) else: item = self.__visibleCommands.AppendItem(self.__visibleCommands.GetRootItem(), uiCommand.getHelpText()) self.__visibleCommands.SetItemImage(item, self.__imgListIndex.get(uiCommand.bitmap, -1)) self.__visibleCommands.SetItemPyData(item, uiCommand) self.__visible.append(uiCommand) if isinstance(uiCommand, uicommand.UICommand): self.__remainingCommands.EnableItem(self.__remainingSelection, False) self.__remainingSelection = None self.__showButton.Enable(False) self.__HackPreview() def __Swap(self, delta): items = self.__visibleCommands.GetRootItem().GetChildren() index = items.index(self.__visibleSelection) text = self.__visibleSelection.GetText() data = self.__visibleSelection.GetData() self.__visibleCommands.Delete(self.__visibleSelection) item = self.__visibleCommands.InsertItem(self.__visibleCommands.GetRootItem(), index + delta, text) self.__visibleCommands.SetItemPyData(item, data) if isinstance(data, uicommand.UICommand): self.__visibleCommands.SetItemImage(item, self.__imgListIndex.get(data.bitmap, -1)) self.__visibleCommands.SelectItem(item) self.__visible[index], self.__visible[index + delta] = self.__visible[index + delta], self.__visible[index] self.__HackPreview() def __OnMoveUp(self, event): self.__Swap(-1) def __OnMoveDown(self, event): self.__Swap(1) def __OnBeginDrag2(self, event): self.__draggingFromAvailable = True event.Veto() def __OnBeginDrag(self, event): if self.__draggingFromAvailable or event.GetItem() == self.__visibleCommands.GetRootItem(): event.Veto() else: self.__draggedItem = event.GetItem() event.Allow() self.__draggingFromAvailable = False def __OnEndDrag(self, event): if event.GetItem() is not None and event.GetItem() != self.__draggedItem: targetItem = event.GetItem() sourceIndex = self.__visibleCommands.GetRootItem().GetChildren().index(self.__draggedItem) uiCommand = self.__visible[sourceIndex] self.__visibleCommands.Delete(self.__draggedItem) del self.__visible[sourceIndex] targetIndex = self.__visibleCommands.GetRootItem().GetChildren().index(targetItem) + 1 if targetItem.PartialHilight() & wx.wx.TREE_HITTEST_ONITEMUPPERPART: targetIndex -= 1 self.__visible.insert(targetIndex, uiCommand) if uiCommand is None: text = _('Separator') img = -1 elif isinstance(uiCommand, int): text = _('Spacer') img = -1 else: text = uiCommand.getHelpText() img = self.__imgListIndex.get(uiCommand.bitmap, -1) item = self.__visibleCommands.InsertItem(self.__visibleCommands.GetRootItem(), targetIndex, text) self.__visibleCommands.SetItemPyData(item, uiCommand) self.__visibleCommands.SetItemImage(item, img) self.__HackPreview() self.__draggedItem = None def __HackPreview(self): self.__preview.loadPerspective(self.getToolBarPerspective(), customizable=False) for uiCommand in self.__preview.visibleUICommands(): if uiCommand is not None and not isinstance(uiCommand, int): uiCommand.unbind(self.__preview, uiCommand.id) self.__preview.EnableTool(uiCommand.id, True) def __Populate(self, tree, uiCommands, enableCallback): tree.Freeze() try: tree.DeleteAllItems() root = tree.AddRoot('Root') for uiCommand in uiCommands: if uiCommand is None: text = _('Separator') elif isinstance(uiCommand, int): text = _('Spacer') else: text = uiCommand.getHelpText() item = tree.AppendItem(root, text) if uiCommand is not None and not isinstance(uiCommand, int): tree.SetItemImage(item, self.__imgListIndex.get(uiCommand.bitmap, -1)) tree.EnableItem(item, enableCallback(uiCommand)) tree.SetItemPyData(item, uiCommand) finally: tree.Thaw() def __PopulateRemainingCommands(self): def enableCallback(uiCommand): if isinstance(uiCommand, uicommand.UICommand): return uiCommand not in self.__visible return True self.__Populate(self.__remainingCommands, [None, 1] + [uiCommand for uiCommand in self.createToolBarUICommands() if isinstance(uiCommand, uicommand.UICommand)], enableCallback) def __PopulateVisibleCommands(self): self.__Populate(self.__visibleCommands, self.__visible, lambda x: True) def getToolBarPerspective(self): names = list() for uiCommand in self.__visible: if uiCommand is None: names.append('Separator') elif isinstance(uiCommand, int): names.append('Spacer') else: names.append(uiCommand.uniqueName()) return ','.join(names) def createToolBarUICommands(self): return self.__toolbar.uiCommands(cache=False) class ToolBarEditor(BalloonTipManager, widgets.Dialog): def __init__(self, toolbar, settings, *args, **kwargs): self.__toolbar = toolbar self.__settings = settings super(ToolBarEditor, self).__init__(*args, **kwargs) self.SetClientSize(wx.Size(900, 700)) self.CentreOnParent() def createInterior(self): return _ToolBarEditorInterior(self.__toolbar, self.__settings, self._panel) def ok(self, event=None): self.__toolbar.savePerspective(self._interior.getToolBarPerspective()) super(ToolBarEditor, self).ok(event=event) taskcoach-1.4.3/taskcoachlib/gui/dialog/version.py000066400000000000000000000077741265347643000222210ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from wx.lib import hyperlink from taskcoachlib import meta from taskcoachlib.i18n import _ from wx.lib import sized_controls class VersionDialog(sized_controls.SizedDialog): # pylint: disable=R0904,R0901 ''' Base class for dialogs that announce a new version (and variants thereof). ''' title = '' def __init__(self, *args, **kwargs): self.settings = kwargs.pop('settings') self.message = kwargs.pop('message') version = kwargs.pop('version') super(VersionDialog, self).__init__(title=self.title, *args, **kwargs) pane = self.GetContentsPane() pane.SetSizerType("vertical") self.messageInfo = dict(version=version, name=meta.data.name, currentVersion=meta.data.version) self.createInterior(pane) self.check = wx.CheckBox(pane, label=_('Notify me of new versions.')) self.check.SetValue(self.settings.getboolean('version', 'notify')) buttonSizer = self.CreateStdDialogButtonSizer(wx.OK) self.SetButtonSizer(buttonSizer) self.Fit() buttonSizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.onClose) self.Bind(wx.EVT_CLOSE, self.onClose) def createInterior(self, pane): ''' Create the interior parts of the dialog, i.e. the message for the user. ''' raise NotImplementedError def onClose(self, event): ''' When the user closes the dialog, remember whether (s)he wants to be notified of new versions. ''' event.Skip() self.settings.set('version', 'notify', str(self.check.GetValue())) class NewVersionDialog(VersionDialog): title = _('New version of %(name)s available') % dict(name=meta.data.name) def createInterior(self, panel): wx.StaticText(panel, label=_('You are using %(name)s version %(currentVersion)s.') % \ self.messageInfo) urlPanel = sized_controls.SizedPanel(panel) urlPanel.SetSizerType('horizontal') wx.StaticText(urlPanel, label=_('Version %(version)s of %(name)s is available from') % \ self.messageInfo) hyperlink.HyperLinkCtrl(urlPanel, label=meta.data.url) class VersionUpToDateDialog(VersionDialog): title = _('%(name)s is up to date') % dict(name=meta.data.name) def createInterior(self, panel): wx.StaticText(panel, label=_('%(name)s is up to date at version %(version)s.') % \ self.messageInfo) class NoVersionDialog(VersionDialog): title = _("Couldn't find out latest version") def createInterior(self, panel): wx.StaticText(panel, label=_("Couldn't find out what the latest " "version of %(name)s is.") % self.messageInfo) wx.StaticText(panel, label=self.message) class PrereleaseVersionDialog(VersionDialog): title = _("Prerelease version") def createInterior(self, panel): wx.StaticText(panel, label=_('You are using %(name)s prerelease ' 'version %(currentVersion)s.') % self.messageInfo) wx.StaticText(panel, label=_('The latest released version of ' '%(name)s is %(version)s.') % self.messageInfo) taskcoach-1.4.3/taskcoachlib/gui/dialog/xfce4warning.py000066400000000000000000000035711265347643000231220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2012 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.i18n import _ from taskcoachlib.widgets import dialog class XFCE4WarningDialog(dialog.Dialog): def __init__(self, parent, settings): self.__settings = settings super(XFCE4WarningDialog, self).__init__(parent, _('Warning'), buttonTypes=wx.OK) def createInterior(self): return wx.Panel(self._panel) def fillInterior(self): sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(wx.StaticText(self._interior, label=_('Task Coach has known issues with XFCE4 session management.\n') + \ _('If you experience random freeze at startup, please uncheck\nthe "Use X11 session management" in the Features tab of the preferences.\n'))) self._checkbox = wx.CheckBox(self._interior, label=_('Do not show this dialog at startup')) # pylint: disable=W0201 self._checkbox.SetValue(True) sizer.Add(self._checkbox) self._interior.SetSizer(sizer) def ok(self, event=None): self.__settings.setboolean('feature', 'showsmwarning', not self._checkbox.GetValue()) super(XFCE4WarningDialog, self).ok(event) taskcoach-1.4.3/taskcoachlib/gui/idlecontroller.py000066400000000000000000000105001265347643000222730ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.command import NewEffortCommand, EditEffortStopDateTimeCommand from taskcoachlib.domain import effort, date from taskcoachlib.i18n import _ from taskcoachlib.notify import NotificationFrameBase, NotificationCenter from taskcoachlib.patterns import Observer from taskcoachlib.powermgt import IdleNotifier from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib import render import wx class WakeFromIdleFrame(NotificationFrameBase): def __init__(self, idleTime, effort, displayedEfforts, *args, **kwargs): self._idleTime = idleTime self._effort = effort self._displayed = displayedEfforts self._lastActivity = 0 super(WakeFromIdleFrame, self).__init__(*args, **kwargs) def AddInnerContent(self, sizer, panel): idleTimeFormatted = render.dateTime(self._idleTime) sizer.Add(wx.StaticText(panel, wx.ID_ANY, _('No user input since %s. The following task was\nbeing tracked:') % \ idleTimeFormatted)) sizer.Add(wx.StaticText(panel, wx.ID_ANY, self._effort.task().subject())) btnNothing = wx.Button(panel, wx.ID_ANY, _('Do nothing')) btnStopAt = wx.Button(panel, wx.ID_ANY, _('Stop it at %s') % idleTimeFormatted) btnStopResume = wx.Button(panel, wx.ID_ANY, _('Stop it at %s and resume now') % idleTimeFormatted) sizer.Add(btnNothing, 0, wx.EXPAND | wx.ALL, 1) sizer.Add(btnStopAt, 0, wx.EXPAND | wx.ALL, 1) sizer.Add(btnStopResume, 0, wx.EXPAND | wx.ALL, 1) wx.EVT_BUTTON(btnNothing, wx.ID_ANY, self.DoNothing) wx.EVT_BUTTON(btnStopAt, wx.ID_ANY, self.DoStopAt) wx.EVT_BUTTON(btnStopResume, wx.ID_ANY, self.DoStopResume) def CloseButton(self, panel): return None def DoNothing(self, event): self._displayed.remove(self._effort) self.DoClose() def DoStopAt(self, event): self._displayed.remove(self._effort) EditEffortStopDateTimeCommand(newValue=self._idleTime, items=[self._effort]).do() self.DoClose() def DoStopResume(self, event): self._displayed.remove(self._effort) EditEffortStopDateTimeCommand(newValue=self._idleTime, items=[self._effort]).do() NewEffortCommand(items=[self._effort.task()]).do() self.DoClose() class IdleController(Observer, IdleNotifier): def __init__(self, mainWindow, settings, effortList): self._mainWindow = mainWindow self._settings = settings self._effortList = effortList self._displayed = set() super(IdleController, self).__init__() self.__tracker = effort.EffortListTracker(self._effortList) self.__tracker.subscribe(self.__onTrackedChanged, 'effortlisttracker') pub.subscribe(self.poweroff, 'powermgt.off') pub.subscribe(self.poweron, 'powermgt.on') def __onTrackedChanged(self, efforts): if len(efforts): self.resume() else: self.pause() def getMinIdleTime(self): return self._settings.getint('feature', 'minidletime') * 60 def wake(self, timestamp): self._lastActivity = timestamp self.OnWake() def OnWake(self): for effort in self.__tracker.trackedEfforts(): if effort not in self._displayed: self._displayed.add(effort) frm = WakeFromIdleFrame(date.DateTime.fromtimestamp(self._lastActivity), effort, self._displayed, _('Notification'), icon=wx.ArtProvider.GetBitmap('taskcoach', wx.ART_FRAME_ICON, (16, 16))) NotificationCenter().NotifyFrame(frm) taskcoach-1.4.3/taskcoachlib/gui/iocontroller.py000066400000000000000000000557621265347643000220100ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta, persistence, patterns, operating_system from taskcoachlib.i18n import _ from taskcoachlib.thirdparty import lockfile from taskcoachlib.widgets import GetPassword from taskcoachlib.workarounds import ExceptionAsUnicode from taskcoachlib.gui.dialog import BackupManagerDialog import wx import os import gc import sys import codecs import traceback try: from taskcoachlib.syncml import sync except ImportError: # pragma: no cover # Unsupported platform. pass class IOController(object): ''' IOController is responsible for opening, closing, loading, saving, and exporting files. It also presents the necessary dialogs to let the user specify what file to load/save/etc. ''' def __init__(self, taskFile, messageCallback, settings, splash=None): super(IOController, self).__init__() self.__taskFile = taskFile self.__messageCallback = messageCallback self.__settings = settings self.__splash = splash defaultPath = os.path.expanduser('~') self.__tskFileSaveDialogOpts = {'default_path': defaultPath, 'default_extension': 'tsk', 'wildcard': _('%s files (*.tsk)|*.tsk|All files (*.*)|*') % meta.name} self.__tskFileOpenDialogOpts = {'default_path': defaultPath, 'default_extension': 'tsk', 'wildcard': _('%s files (*.tsk)|*.tsk|Backup files (*.tsk.bak)|*.tsk.bak|' 'All files (*.*)|*') % meta.name} self.__icsFileDialogOpts = {'default_path': defaultPath, 'default_extension': 'ics', 'wildcard': _('iCalendar files (*.ics)|*.ics|All files (*.*)|*')} self.__htmlFileDialogOpts = {'default_path': defaultPath, 'default_extension': 'html', 'wildcard': _('HTML files (*.html)|*.html|All files (*.*)|*')} self.__csvFileDialogOpts = {'default_path': defaultPath, 'default_extension': 'csv', 'wildcard': _('CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|' 'All files (*.*)|*')} self.__todotxtFileDialogOpts = {'default_path': defaultPath, 'default_extension': 'txt', 'wildcard': _('Todo.txt files (*.txt)|*.txt|All files (*.*)|*')} self.__errorMessageOptions = dict(caption=_('%s file error') % \ meta.name, style=wx.ICON_ERROR) def syncMLConfig(self): return self.__taskFile.syncMLConfig() def setSyncMLConfig(self, config): self.__taskFile.setSyncMLConfig(config) def needSave(self): return self.__taskFile.needSave() def changedOnDisk(self): return self.__taskFile.changedOnDisk() def hasDeletedItems(self): return bool([task for task in self.__taskFile.tasks() if task.isDeleted()] + \ [note for note in self.__taskFile.notes() if note.isDeleted()]) def purgeDeletedItems(self): self.__taskFile.tasks().removeItems([task for task in self.__taskFile.tasks() if task.isDeleted()]) self.__taskFile.notes().removeItems([note for note in self.__taskFile.notes() if note.isDeleted()]) def openAfterStart(self, commandLineArgs): ''' Open either the file specified on the command line, or the file the user was working on previously, or none at all. ''' if commandLineArgs: filename = commandLineArgs[0].decode(sys.getfilesystemencoding()) else: filename = self.__settings.get('file', 'lastfile') if filename: # Use CallAfter so that the main window is opened first and any # error messages are shown on top of it wx.CallAfter(self.open, filename) def open(self, filename=None, showerror=wx.MessageBox, fileExists=os.path.exists, breakLock=False, lock=True): if self.__taskFile.needSave(): if not self.__saveUnsavedChanges(): return if not filename: filename = self.__askUserForFile(_('Open'), self.__tskFileOpenDialogOpts) if not filename: return self.__updateDefaultPath(filename) if fileExists(filename): self.__closeUnconditionally() self.__addRecentFile(filename) try: try: self.__taskFile.load(filename, lock=lock, breakLock=breakLock) except: # Need to destroy splash screen first because it may # interfere with dialogs we show later on Mac OS X if self.__splash: self.__splash.Destroy() raise except lockfile.LockTimeout: if breakLock: if self.__askOpenUnlocked(filename): self.open(filename, showerror, lock=False) elif self.__askBreakLock(filename): self.open(filename, showerror, breakLock=True) else: return except lockfile.LockFailed: if self.__askOpenUnlocked(filename): self.open(filename, showerror, lock=False) else: return except persistence.xml.reader.XMLReaderTooNewException: self.__showTooNewErrorMessage(filename, showerror) return except Exception: self.__showGenericErrorMessage(filename, showerror, showBackups=True) return self.__messageCallback(_('Loaded %(nrtasks)d tasks from ' '%(filename)s') % dict(nrtasks=len(self.__taskFile.tasks()), filename=self.__taskFile.filename())) else: errorMessage = _("Cannot open %s because it doesn't exist") % filename # Use CallAfter on Mac OS X because otherwise the app will hang: if operating_system.isMac(): wx.CallAfter(showerror, errorMessage, **self.__errorMessageOptions) else: showerror(errorMessage, **self.__errorMessageOptions) self.__removeRecentFile(filename) def merge(self, filename=None, showerror=wx.MessageBox): if not filename: filename = self.__askUserForFile(_('Merge'), self.__tskFileOpenDialogOpts) if filename: try: self.__taskFile.merge(filename) except lockfile.LockTimeout: showerror(_('Cannot open %(filename)s\nbecause it is locked.') % \ dict(filename=filename), **self.__errorMessageOptions) return except persistence.xml.reader.XMLReaderTooNewException: self.__showTooNewErrorMessage(filename, showerror) return except Exception: self.__showGenericErrorMessage(filename, showerror) return self.__messageCallback(_('Merged %(filename)s') % \ dict(filename=filename)) self.__addRecentFile(filename) def save(self, showerror=wx.MessageBox): if self.__taskFile.filename(): if self._saveSave(self.__taskFile, showerror): return True else: return self.saveas(showerror=showerror) elif not self.__taskFile.isEmpty(): return self.saveas(showerror=showerror) # Ask for filename else: return False def mergeDiskChanges(self): self.__taskFile.mergeDiskChanges() def saveas(self, filename=None, showerror=wx.MessageBox, fileExists=os.path.exists): if not filename: filename = self.__askUserForFile(_('Save as'), self.__tskFileSaveDialogOpts, flag=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT, fileExists=fileExists) if not filename: return False # User didn't enter a filename, cancel save if self._saveSave(self.__taskFile, showerror, filename): return True else: return self.saveas(showerror=showerror) # Try again def saveselection(self, tasks, filename=None, showerror=wx.MessageBox, TaskFileClass=persistence.TaskFile, fileExists=os.path.exists): if not filename: filename = self.__askUserForFile(_('Save selection'), self.__tskFileSaveDialogOpts, flag=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT, fileExists=fileExists) if not filename: return False # User didn't enter a filename, cancel save selectionFile = self._createSelectionFile(tasks, TaskFileClass) if self._saveSave(selectionFile, showerror, filename): return True else: return self.saveselection(tasks, showerror=showerror, TaskFileClass=TaskFileClass) # Try again def _createSelectionFile(self, tasks, TaskFileClass): selectionFile = TaskFileClass() # Add the selected tasks: selectionFile.tasks().extend(tasks) # Include categories used by the selected tasks: allCategories = set() for task in tasks: allCategories.update(task.categories()) # Also include parents of used categories, recursively: for category in allCategories.copy(): allCategories.update(category.ancestors()) selectionFile.categories().extend(allCategories) return selectionFile def _saveSave(self, taskFile, showerror, filename=None): ''' Save the file and show an error message if saving fails. ''' try: if filename: taskFile.saveas(filename) else: filename = taskFile.filename() taskFile.save() self.__showSaveMessage(taskFile) self.__addRecentFile(filename) return True except lockfile.LockTimeout: errorMessage = _('Cannot save %s\nIt is locked by another instance ' 'of %s.\n') % (filename, meta.name) showerror(errorMessage, **self.__errorMessageOptions) return False except (OSError, IOError, lockfile.LockFailed), reason: errorMessage = _('Cannot save %s\n%s') % (filename, ExceptionAsUnicode(reason)) showerror(errorMessage, **self.__errorMessageOptions) return False def saveastemplate(self, task): templates = persistence.TemplateList(self.__settings.pathToTemplatesDir()) templates.addTemplate(task) templates.save() def importTemplate(self, showerror=wx.MessageBox): filename = self.__askUserForFile(_('Import template'), fileDialogOpts={'default_extension': 'tsktmpl', 'wildcard': _('%s template files (*.tsktmpl)|' '*.tsktmpl') % meta.name}) if filename: templates = persistence.TemplateList(self.__settings.pathToTemplatesDir()) try: templates.copyTemplate(filename) except Exception, reason: # pylint: disable=W0703 errorMessage = _('Cannot import template %s\n%s') % (filename, ExceptionAsUnicode(reason)) showerror(errorMessage, **self.__errorMessageOptions) def close(self, force=False): if self.__taskFile.needSave(): if force: # No user interaction, since we're forced to close right now. if self.__taskFile.filename(): self._saveSave(self.__taskFile, lambda *args, **kwargs: None) else: pass # No filename, we cannot ask, give up... else: if not self.__saveUnsavedChanges(): return False self.__closeUnconditionally() return True def export(self, title, fileDialogOpts, writerClass, viewer, selectionOnly, openfile=codecs.open, showerror=wx.MessageBox, filename=None, fileExists=os.path.exists, **kwargs): filename = filename or self.__askUserForFile(title, fileDialogOpts, flag=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT, fileExists=fileExists) if filename: fd = self.__openFileForWriting(filename, openfile, showerror) if fd is None: return False count = writerClass(fd, filename).write(viewer, self.__settings, selectionOnly, **kwargs) fd.close() self.__messageCallback(_('Exported %(count)d items to ' '%(filename)s') % dict(count=count, filename=filename)) return True else: return False def exportAsHTML(self, viewer, selectionOnly=False, separateCSS=False, columns=None, openfile=codecs.open, showerror=wx.MessageBox, filename=None, fileExists=os.path.exists): return self.export(_('Export as HTML'), self.__htmlFileDialogOpts, persistence.HTMLWriter, viewer, selectionOnly, openfile, showerror, filename, fileExists, separateCSS=separateCSS, columns=columns) def exportAsCSV(self, viewer, selectionOnly=False, separateDateAndTimeColumns=False, columns=None, fileExists=os.path.exists): return self.export(_('Export as CSV'), self.__csvFileDialogOpts, persistence.CSVWriter, viewer, selectionOnly, separateDateAndTimeColumns=separateDateAndTimeColumns, columns=columns, fileExists=fileExists) def exportAsICalendar(self, viewer, selectionOnly=False, fileExists=os.path.exists): return self.export(_('Export as iCalendar'), self.__icsFileDialogOpts, persistence.iCalendarWriter, viewer, selectionOnly, fileExists=fileExists) def exportAsTodoTxt(self, viewer, selectionOnly=False, fileExists=os.path.exists): return self.export(_('Export as Todo.txt'), self.__todotxtFileDialogOpts, persistence.TodoTxtWriter, viewer, selectionOnly, fileExists=fileExists) def importCSV(self, **kwargs): persistence.CSVReader(self.__taskFile.tasks(), self.__taskFile.categories()).read(**kwargs) def importTodoTxt(self, filename): persistence.TodoTxtReader(self.__taskFile.tasks(), self.__taskFile.categories()).read(filename) def synchronize(self): doReset = False while True: password = GetPassword('Task Coach', 'SyncML', reset=doReset) if not password: break synchronizer = sync.Synchronizer(self.__syncReport, self.__taskFile, password) try: synchronizer.synchronize() except sync.AuthenticationFailure: doReset = True else: self.__messageCallback(_('Finished synchronization')) break finally: synchronizer.Destroy() def filename(self): return self.__taskFile.filename() def __syncReport(self, msg): wx.MessageBox(msg, _('Synchronization status'), style=wx.OK | wx.ICON_ERROR) def __openFileForWriting(self, filename, openfile, showerror, mode='w', encoding='utf-8'): try: return openfile(filename, mode, encoding) except IOError, reason: errorMessage = _('Cannot open %s\n%s') % (filename, ExceptionAsUnicode(reason)) showerror(errorMessage, **self.__errorMessageOptions) return None def __addRecentFile(self, fileName): recentFiles = self.__settings.getlist('file', 'recentfiles') if fileName in recentFiles: recentFiles.remove(fileName) recentFiles.insert(0, fileName) maximumNumberOfRecentFiles = self.__settings.getint('file', 'maxrecentfiles') recentFiles = recentFiles[:maximumNumberOfRecentFiles] self.__settings.setlist('file', 'recentfiles', recentFiles) def __removeRecentFile(self, fileName): recentFiles = self.__settings.getlist('file', 'recentfiles') if fileName in recentFiles: recentFiles.remove(fileName) self.__settings.setlist('file', 'recentfiles', recentFiles) def __askUserForFile(self, title, fileDialogOpts, flag=wx.FD_OPEN, fileExists=os.path.exists): filename = wx.FileSelector(title, flags=flag, **fileDialogOpts) # pylint: disable=W0142 if filename and (flag & wx.FD_SAVE): # On Ubuntu, the default extension is not added automatically to # a filename typed by the user. Add the extension if necessary. extension = os.path.extsep + fileDialogOpts['default_extension'] if not filename.endswith(extension): filename += extension if fileExists(filename): return self.__askUserForOverwriteConfirmation(filename, title, fileDialogOpts) return filename def __askUserForOverwriteConfirmation(self, filename, title, fileDialogOpts): result = wx.MessageBox(_('A file named %s already exists.\n' 'Do you want to replace it?') % filename, title, style=wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION | wx.NO_DEFAULT) if result == wx.YES: extensions = { 'Todo.txt': '.txt' } for auto in set(self.__settings.getlist('file', 'autoimport') + self.__settings.getlist('file', 'autoexport')): autoName = os.path.splitext(filename)[0] + extensions[auto] if os.path.exists(autoName): os.remove(autoName) if os.path.exists(autoName + '-meta'): os.remove(autoName + '-meta') return filename elif result == wx.NO: return self.__askUserForFile(title, fileDialogOpts, flag=wx.FD_SAVE | \ wx.FD_OVERWRITE_PROMPT) else: return None def __saveUnsavedChanges(self): result = wx.MessageBox(_('You have unsaved changes.\n' 'Save before closing?'), _('%s: save changes?') % meta.name, style=wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION | wx.YES_DEFAULT) if result == wx.YES: if not self.save(): return False elif result == wx.CANCEL: return False return True def __askBreakLock(self, filename): result = wx.MessageBox(_('''Cannot open %s because it is locked. This means either that another instance of TaskCoach is running and has this file opened, or that a previous instance of Task Coach crashed. If no other instance is running, you can safely break the lock. Break the lock?''') % filename, _('%s: file locked') % meta.name, style=wx.YES_NO | wx.ICON_QUESTION | wx.NO_DEFAULT) return result == wx.YES def __askOpenUnlocked(self, filename): result = wx.MessageBox(_('Cannot acquire a lock because locking is not ' 'supported\non the location of %s.\n' 'Open %s unlocked?') % (filename, filename), _('%s: file locked') % meta.name, style=wx.YES_NO | wx.ICON_QUESTION | wx.NO_DEFAULT) return result == wx.YES def __closeUnconditionally(self): self.__messageCallback(_('Closed %s') % self.__taskFile.filename()) self.__taskFile.close() patterns.CommandHistory().clear() gc.collect() def __showSaveMessage(self, savedFile): self.__messageCallback(_('Saved %(nrtasks)d tasks to %(filename)s') % \ {'nrtasks': len(savedFile.tasks()), 'filename': savedFile.filename()}) def __showTooNewErrorMessage(self, filename, showerror): showerror(_('Cannot open %(filename)s\n' 'because it was created by a newer version of %(name)s.\n' 'Please upgrade %(name)s.') % \ dict(filename=filename, name=meta.name), **self.__errorMessageOptions) def __showGenericErrorMessage(self, filename, showerror, showBackups=False): sys.stderr.write(''.join(traceback.format_exception(*sys.exc_info()))) limitedException = ''.join(traceback.format_exception(*sys.exc_info(), limit=10)) message = _('Error while reading %s:\n') % filename + \ limitedException man = persistence.BackupManifest(self.__settings) if showBackups and man.hasBackups(filename): message += u'\n' + _('The backup manager will now open to allow you to restore\nan older version of this file.') showerror(message, **self.__errorMessageOptions) if showBackups and man.hasBackups(filename): dlg = BackupManagerDialog(None, self.__settings, filename) try: if dlg.ShowModal() == wx.ID_OK: wx.CallAfter(self.open, dlg.restoredFilename()) finally: dlg.Destroy() def __updateDefaultPath(self, filename): for options in [self.__tskFileOpenDialogOpts, self.__tskFileSaveDialogOpts, self.__csvFileDialogOpts, self.__icsFileDialogOpts, self.__htmlFileDialogOpts]: options['default_path'] = os.path.dirname(filename) taskcoach-1.4.3/taskcoachlib/gui/iphone.py000066400000000000000000000046311265347643000205440ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.notify import NotificationFrameBase, NotificationCenter from taskcoachlib.i18n import _ import wx class IPhoneSyncFrame(NotificationFrameBase): def __init__(self, settings, *args, **kwargs): self.settings = settings super(IPhoneSyncFrame, self).__init__(*args, **kwargs) def AddInnerContent(self, sizer, panel): self.text = wx.StaticText(panel, wx.ID_ANY, _('Synchronizing...')) sizer.Add(self.text, 0, wx.ALL, 3) self.gauge = wx.Gauge(panel, wx.ID_ANY) self.gauge.SetRange(100) sizer.Add(self.gauge, 0, wx.EXPAND|wx.ALL, 3) if self.settings.getboolean('iphone', 'showlog'): self.log = wx.TextCtrl(panel, wx.ID_ANY, u'', style=wx.TE_MULTILINE|wx.TE_READONLY) sizer.Add(self.log, 1, wx.EXPAND|wx.ALL, 3) self.btn = wx.Button(panel, wx.ID_ANY, _('OK')) sizer.Add(self.btn, 0, wx.ALIGN_CENTRE|wx.ALL, 3) self.btn.Enable(False) wx.EVT_BUTTON(self.btn, wx.ID_ANY, self.OnOK) def CloseButton(self, panel): return None def SetDeviceName(self, name): self.text.SetLabel(_('Synchronizing with %s...') % name) def SetProgress(self, value, total): self.gauge.SetValue(int(100 * value / total)) def AddLogLine(self, line): if self.settings.getboolean('iphone', 'showlog'): self.log.AppendText(line + u'\n') def Started(self): NotificationCenter().NotifyFrame(self) def Finished(self): if self.settings.getboolean('iphone', 'showlog'): self.btn.Enable(True) else: self.DoClose() def OnOK(self, event): self.DoClose() taskcoach-1.4.3/taskcoachlib/gui/mainwindow.py000066400000000000000000000445141265347643000214420ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import application, meta, widgets, \ operating_system # pylint: disable=W0622 from taskcoachlib.gui import viewer, toolbar, uicommand, remindercontroller, \ artprovider, windowdimensionstracker, idlecontroller from taskcoachlib.gui.dialog.iphone import IPhoneSyncTypeDialog from taskcoachlib.gui.dialog.xfce4warning import XFCE4WarningDialog from taskcoachlib.gui.dialog.editor import Editor from taskcoachlib.gui.iphone import IPhoneSyncFrame from taskcoachlib.i18n import _ from taskcoachlib.powermgt import PowerStateMixin from taskcoachlib.help.balloontips import BalloonTipManager from taskcoachlib.thirdparty.pubsub import pub import taskcoachlib.thirdparty.aui as aui import wx, ctypes def turn_on_double_buffering_on_windows(window): # This has actually an adverse effect when Aero is enabled... from ctypes import wintypes dll = ctypes.WinDLL('dwmapi.dll') ret = wintypes.BOOL() if dll.DwmIsCompositionEnabled(ctypes.pointer(ret)) == 0 and ret.value: return import win32gui, win32con # pylint: disable=F0401 exstyle = win32gui.GetWindowLong(window.GetHandle(), win32con.GWL_EXSTYLE) exstyle |= win32con.WS_EX_COMPOSITED win32gui.SetWindowLong(window.GetHandle(), win32con.GWL_EXSTYLE, exstyle) class MainWindow(PowerStateMixin, BalloonTipManager, widgets.AuiManagedFrameWithDynamicCenterPane): def __init__(self, iocontroller, taskFile, settings, *args, **kwargs): self.__splash = kwargs.pop('splash', None) super(MainWindow, self).__init__(None, -1, '', *args, **kwargs) # This prevents the viewers from flickering on Windows 7 when refreshed: if operating_system.isWindows7_OrNewer(): turn_on_double_buffering_on_windows(self) self.__dimensions_tracker = windowdimensionstracker.WindowDimensionsTracker(self, settings) self.iocontroller = iocontroller self.taskFile = taskFile self.settings = settings self.__filename = None self.__dirty = False self.__shutdown = False self.Bind(wx.EVT_CLOSE, self.onClose) self.Bind(wx.EVT_ICONIZE, self.onIconify) self.Bind(wx.EVT_SIZE, self.onResize) self._create_window_components() # Not private for test purposes self.__init_window_components() self.__init_window() self.__register_for_window_component_changes() if settings.getboolean('feature', 'syncml'): try: import taskcoachlib.syncml.core # pylint: disable=W0612,W0404 except ImportError: if settings.getboolean('syncml', 'showwarning'): dlg = widgets.SyncMLWarningDialog(self) try: if dlg.ShowModal() == wx.ID_OK: settings.setboolean('syncml', 'showwarning', False) finally: dlg.Destroy() self.bonjourRegister = None self.bonjourAcceptor = None self._registerBonjour() pub.subscribe(self._registerBonjour, 'settings.feature.iphone') self._idleController = idlecontroller.IdleController(self, self.settings, self.taskFile.efforts()) wx.CallAfter(self.checkXFCE4) def _registerBonjour(self, value=True): if self.bonjourRegister is not None: self.bonjourRegister.stop() self.bonjourAcceptor.close() self.bonjourRegister = self.bonjourAcceptor = None if self.settings.getboolean('feature', 'iphone'): # pylint: disable=W0612,W0404,W0702 try: from taskcoachlib.thirdparty import pybonjour from taskcoachlib.iphone import IPhoneAcceptor, BonjourServiceRegister acceptor = IPhoneAcceptor(self, self.settings, self.iocontroller) def success(reader): self.bonjourRegister = reader self.bonjourAcceptor = acceptor def error(reason): acceptor.close() wx.MessageBox(reason.getErrorMessage(), _('Error'), wx.OK) BonjourServiceRegister(self.settings, acceptor.port).addCallbacks(success, error) except: from taskcoachlib.gui.dialog.iphone import IPhoneBonjourDialog dlg = IPhoneBonjourDialog(self, wx.ID_ANY, _('Warning')) try: dlg.ShowModal() finally: dlg.Destroy() def checkXFCE4(self): if operating_system.isGTK(): mon = application.Application().sessionMonitor if mon is not None and \ self.settings.getboolean('feature', 'usesm2') and \ self.settings.getboolean('feature', 'showsmwarning') and \ mon.vendor == 'xfce4-session': dlg = XFCE4WarningDialog(self, self.settings) dlg.Show() def setShutdownInProgress(self): self.__shutdown = True def _create_window_components(self): # Not private for test purposes self._create_viewer_container() viewer.addViewers(self.viewer, self.taskFile, self.settings) self._create_status_bar() self.__create_menu_bar() self.__create_reminder_controller() wx.CallAfter(self.viewer.componentsCreated) def _create_viewer_container(self): # Not private for test purposes # pylint: disable=W0201 self.viewer = viewer.ViewerContainer(self, self.settings) def _create_status_bar(self): from taskcoachlib.gui import status # pylint: disable=W0404 self.SetStatusBar(status.StatusBar(self, self.viewer)) def __create_menu_bar(self): from taskcoachlib.gui import menu # pylint: disable=W0404 self.SetMenuBar(menu.MainMenu(self, self.settings, self.iocontroller, self.viewer, self.taskFile)) def __create_reminder_controller(self): # pylint: disable=W0201 self.reminderController = \ remindercontroller.ReminderController(self, self.taskFile.tasks(), self.taskFile.efforts(), self.settings) def addPane(self, page, caption, floating=False): # pylint: disable=W0221 name = page.settingsSection() super(MainWindow, self).addPane(page, caption, name, floating=floating) def __init_window(self): self.__filename = self.taskFile.filename() self.__setTitle() self.SetIcons(artprovider.iconBundle('taskcoach')) self.displayMessage(_('Welcome to %(name)s version %(version)s') % \ {'name': meta.name, 'version': meta.version}, pane=1) def __init_window_components(self): self.showToolBar(self.settings.getvalue('view', 'toolbar')) # We use CallAfter because otherwise the statusbar will appear at the # top of the window when it is initially hidden and later shown. wx.CallAfter(self.showStatusBar, self.settings.getboolean('view', 'statusbar')) self.__restore_perspective() def __restore_perspective(self): perspective = self.settings.get('view', 'perspective') for viewer_type in viewer.viewerTypes(): if self.__perspective_and_settings_viewer_count_differ(viewer_type): # Different viewer counts may happen when the name of a viewer # is changed between versions perspective = '' break try: self.manager.LoadPerspective(perspective) except ValueError, reason: # This has been reported to happen. Don't know why. Keep going # if it does. if self.__splash: self.__splash.Destroy() wx.MessageBox(_('''Couldn't restore the pane layout from TaskCoach.ini: %s The default pane layout will be used. If this happens again, please make a copy of your TaskCoach.ini file ''' '''before closing the program, open a bug report, and attach the ''' '''copied TaskCoach.ini file to the bug report.''') % reason, _('%s settings error') % meta.name, style=wx.OK | wx.ICON_ERROR) self.manager.LoadPerspective('') for pane in self.manager.GetAllPanes(): # Prevent zombie panes by making sure all panes are visible if not pane.IsShown(): pane.Show() # Ignore the titles that are saved in the perspective, they may be # incorrect when the user changes translation: if hasattr(pane.window, 'title'): pane.Caption(pane.window.title()) self.manager.Update() def __perspective_and_settings_viewer_count_differ(self, viewer_type): perspective = self.settings.get('view', 'perspective') perspective_viewer_count = perspective.count('name=%s' % viewer_type) settings_viewer_count = self.settings.getint('view', '%scount' % viewer_type) return perspective_viewer_count != settings_viewer_count def __register_for_window_component_changes(self): pub.subscribe(self.__onFilenameChanged, 'taskfile.filenameChanged') pub.subscribe(self.__onDirtyChanged, 'taskfile.dirty') pub.subscribe(self.__onDirtyChanged, 'taskfile.clean') pub.subscribe(self.showStatusBar, 'settings.view.statusbar') pub.subscribe(self.showToolBar, 'settings.view.toolbar') self.Bind(aui.EVT_AUI_PANE_CLOSE, self.onCloseToolBar) def __onFilenameChanged(self, filename): self.__filename = filename self.__setTitle() def __onDirtyChanged(self, taskFile): self.__dirty = taskFile.isDirty() self.__setTitle() def __setTitle(self): title = meta.name if self.__filename: title += ' - %s' % self.__filename if self.__dirty: title += ' *' self.SetTitle(title) def displayMessage(self, message, pane=0): self.GetStatusBar().SetStatusText(message, pane) def save_settings(self): self.__save_viewer_counts() self.__save_perspective() self.__save_position() def __save_viewer_counts(self): ''' Save the number of viewers for each viewer type. ''' for viewer_type in viewer.viewerTypes(): count = len([v for v in self.viewer if v.__class__.__name__.lower() == viewer_type]) self.settings.set('view', viewer_type + 'count', str(count)) def __save_perspective(self): perspective = self.manager.SavePerspective() self.settings.set('view', 'perspective', perspective) def __save_position(self): self.__dimensions_tracker.save_position() def closeEditors(self): for child in self.GetChildren(): if isinstance(child, Editor): child.Close() def onClose(self, event): self.closeEditors() if self.__shutdown: event.Skip() return if event.CanVeto() and self.settings.getboolean('window', 'hidewhenclosed'): event.Veto() self.Iconize() else: if application.Application().quitApplication(): event.Skip() self.taskFile.stop() self._idleController.stop() def restore(self, event): # pylint: disable=W0613 if self.settings.getboolean('window', 'maximized'): self.Maximize() self.Iconize(False) self.Show() self.Raise() self.Refresh() def onIconify(self, event): if event.Iconized() and self.settings.getboolean('window', 'hidewheniconized'): self.Hide() else: event.Skip() def onResize(self, event): currentToolbar = self.manager.GetPane('toolbar') if currentToolbar.IsOk(): currentToolbar.window.SetSize((event.GetSize().GetWidth(), -1)) currentToolbar.window.SetMinSize((event.GetSize().GetWidth(), 42)) event.Skip() def showStatusBar(self, value=True): # FIXME: First hiding the statusbar, then hiding the toolbar, then # showing the statusbar puts it in the wrong place (only on Linux?) self.GetStatusBar().Show(value) self.SendSizeEvent() def createToolBarUICommands(self): ''' UI commands to put on the toolbar of this window. ''' uiCommands = [ uicommand.FileOpen(iocontroller=self.iocontroller), uicommand.FileSave(iocontroller=self.iocontroller), uicommand.FileMergeDiskChanges(iocontroller=self.iocontroller), uicommand.Print(viewer=self.viewer, settings=self.settings), None, uicommand.EditUndo(), uicommand.EditRedo()] uiCommands.extend([ None, uicommand.EffortStartButton(taskList=self.taskFile.tasks()), uicommand.EffortStop(viewer=self.viewer, effortList=self.taskFile.efforts(), taskList=self.taskFile.tasks())]) return uiCommands def getToolBarPerspective(self): return self.settings.get('view', 'toolbarperspective') def saveToolBarPerspective(self, perspective): self.settings.set('view', 'toolbarperspective', perspective) def showToolBar(self, value): currentToolbar = self.manager.GetPane('toolbar') if currentToolbar.IsOk(): self.manager.DetachPane(currentToolbar.window) currentToolbar.window.Destroy() if value: bar = toolbar.MainToolBar(self, self.settings, size=value) self.manager.AddPane(bar, aui.AuiPaneInfo().Name('toolbar'). Caption('Toolbar').ToolbarPane().Top().DestroyOnClose(). LeftDockable(False).RightDockable(False)) # Using .Gripper(False) does not work here wx.CallAfter(bar.SetGripperVisible, False) self.manager.Update() def onCloseToolBar(self, event): if event.GetPane().IsToolbar(): self.settings.setvalue('view', 'toolbar', None) event.Skip() # Viewers def advanceSelection(self, forward): self.viewer.advanceSelection(forward) def viewerCount(self): return len(self.viewer) # Power management def OnPowerState(self, state): pub.sendMessage('powermgt.%s' % {self.POWERON: 'on', self.POWEROFF: 'off'}[state]) # iPhone-related methods. def createIPhoneProgressFrame(self): return IPhoneSyncFrame(self.settings, _('iPhone/iPod'), icon=wx.ArtProvider.GetBitmap('taskcoach', wx.ART_FRAME_ICON, (16, 16)), parent=self) def getIPhoneSyncType(self, guid): if guid == self.taskFile.guid(): return 0 # two-way dlg = IPhoneSyncTypeDialog(self, wx.ID_ANY, _('Synchronization type')) try: dlg.ShowModal() return dlg.value finally: dlg.Destroy() def notifyIPhoneProtocolFailed(self): # This should actually never happen. wx.MessageBox(_('''An iPhone or iPod Touch device tried to synchronize with this\n''' '''task file, but the protocol negotiation failed. Please file a\n''' '''bug report.'''), _('Error'), wx.OK) def clearTasks(self): self.taskFile.clear(False) def restoreTasks(self, categories, tasks): self.taskFile.clear(False) self.taskFile.categories().extend(categories) self.taskFile.tasks().extend(tasks) def addIPhoneCategory(self, category): self.taskFile.categories().append(category) def removeIPhoneCategory(self, category): self.taskFile.categories().remove(category) def modifyIPhoneCategory(self, category, name): category.setSubject(name) def addIPhoneTask(self, task, categories): self.taskFile.tasks().append(task) for category in categories: task.addCategory(category) category.addCategorizable(task) def removeIPhoneTask(self, task): self.taskFile.tasks().remove(task) def addIPhoneEffort(self, task, effort): if task is not None: task.addEffort(effort) def modifyIPhoneEffort(self, effort, subject, started, ended): effort.setSubject(subject) effort.setStart(started) effort.setStop(ended) def modifyIPhoneTask(self, task, subject, description, plannedStartDateTime, dueDateTime, completionDateTime, reminderDateTime, recurrence, priority, categories): task.setSubject(subject) task.setDescription(description) task.setPlannedStartDateTime(plannedStartDateTime) task.setDueDateTime(dueDateTime) task.setCompletionDateTime(completionDateTime) task.setReminder(reminderDateTime) task.setRecurrence(recurrence) task.setPriority(priority) if categories is not None: # Protocol v2 for toRemove in task.categories() - categories: task.removeCategory(toRemove) toRemove.removeCategorizable(task) for toAdd in categories - task.categories(): task.addCategory(toAdd) toAdd.addCategorizable(task) taskcoach-1.4.3/taskcoachlib/gui/menu.py000066400000000000000000001231251265347643000202260ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, persistence, help # pylint: disable=W0622 from taskcoachlib.domain import task, base, category from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub import uicommand import viewer import wx import os class Menu(wx.Menu, uicommand.UICommandContainerMixin): def __init__(self, window): super(Menu, self).__init__() self._window = window self._accels = list() self._observers = list() def __len__(self): return self.GetMenuItemCount() def DestroyItem(self, menuItem): if menuItem.GetSubMenu(): menuItem.GetSubMenu().clearMenu() self._window.Unbind(wx.EVT_MENU, id=menuItem.GetId()) self._window.Unbind(wx.EVT_UPDATE_UI, id=menuItem.GetId()) super(Menu, self).DestroyItem(menuItem) def clearMenu(self): ''' Remove all menu items. ''' for menuItem in self.MenuItems: self.DestroyItem(menuItem) for observer in self._observers: observer.removeInstance() self._observers = list() def accelerators(self): return self._accels def appendUICommand(self, uiCommand): cmd = uiCommand.addToMenu(self, self._window) self._accels.extend(uiCommand.accelerators()) if isinstance(uiCommand, patterns.Observer): self._observers.append(uiCommand) return cmd def appendMenu(self, text, subMenu, bitmap=None): subMenuItem = wx.MenuItem(self, id=wx.NewId(), text=text, subMenu=subMenu) if bitmap: subMenuItem.SetBitmap(wx.ArtProvider_GetBitmap(bitmap, wx.ART_MENU, (16, 16))) self._accels.extend(subMenu.accelerators()) self.AppendItem(subMenuItem) def invokeMenuItem(self, menuItem): ''' Programmatically invoke the menuItem. This is mainly for testing purposes. ''' self._window.ProcessEvent(wx.CommandEvent( \ wx.wxEVT_COMMAND_MENU_SELECTED, winid=menuItem.GetId())) def openMenu(self): ''' Programmatically open the menu. This is mainly for testing purposes. ''' # On Mac OSX, an explicit UpdateWindowUI is needed to ensure that # menu items are updated before the menu is opened. This is not needed # on other platforms, but it doesn't hurt either. self._window.UpdateWindowUI() self._window.ProcessEvent(wx.MenuEvent(wx.wxEVT_MENU_OPEN, menu=self)) class DynamicMenu(Menu): ''' A menu that registers for events and then updates itself whenever the event is fired. ''' def __init__(self, window, parentMenu=None, labelInParentMenu=''): ''' Initialize the menu. labelInParentMenu is needed to be able to find this menu in its parentMenu. ''' super(DynamicMenu, self).__init__(window) self._parentMenu = parentMenu self._labelInParentMenu = self.__GetLabelText(labelInParentMenu) self.registerForMenuUpdate() self.updateMenu() def registerForMenuUpdate(self): ''' Subclasses are responsible for binding an event to onUpdateMenu so that the menu gets a chance to update itself at the right time. ''' raise NotImplementedError def onUpdateMenu(self, newValue, sender): ''' This event handler should be called at the right times so that the menu has a chance to update itself. ''' try: # Prepare for menu or window to be destroyed self.updateMenu() except wx.PyDeadObjectError: pass def onUpdateMenu_Deprecated(self, event=None): ''' This event handler should be called at the right times so that the menu has a chance to update itself. ''' # If this is called by wx, 'skip' the event so that other event # handlers get a chance too: if event and hasattr(event, 'Skip'): event.Skip() if event.GetMenu() != self._parentMenu: return try: # Prepare for menu or window to be destroyed self.updateMenu() except wx.PyDeadObjectError: pass def updateMenu(self): ''' Updating the menu consists of two steps: updating the menu item of this menu in its parent menu, e.g. to enable or disable it, and updating the menu items of this menu. ''' self.updateMenuItemInParentMenu() self.updateMenuItems() def updateMenuItemInParentMenu(self): ''' Enable or disable the menu item in the parent menu, depending on what enabled() returns. ''' if self._parentMenu: myId = self.myId() if myId != wx.NOT_FOUND: self._parentMenu.Enable(myId, self.enabled()) def myId(self): ''' Return the id of our menu item in the parent menu. ''' # I'd rather use wx.Menu.FindItem, but it seems that that # method currently does not work for menu items with accelerators # (wxPython 2.8.6 on Ubuntu). When that is fixed replace the 7 # lines below with this one: # myId = self._parentMenu.FindItem(self._labelInParentMenu) for item in self._parentMenu.MenuItems: if self.__GetLabelText(item.GetText()) == self._labelInParentMenu: return item.Id return wx.NOT_FOUND def updateMenuItems(self): ''' Update the menu items of this menu. ''' pass def enabled(self): ''' Return a boolean indicating whether this menu should be enabled in its parent menu. This method is called by updateMenuItemInParentMenu(). It returns True by default. Override in a subclass as needed.''' return True @staticmethod def __GetLabelText(menuText): ''' Remove accelerators from the menuText. This is necessary because on some platforms '&' is changed into '_' so menuTexts would compare different even though they are really the same. ''' return menuText.replace('&', '').replace('_', '') class DynamicMenuThatGetsUICommandsFromViewer(DynamicMenu): def __init__(self, viewer, parentMenu=None, labelInParentMenu=''): # pylint: disable=W0621 self._uiCommands = None super(DynamicMenuThatGetsUICommandsFromViewer, self).__init__(\ viewer, parentMenu, labelInParentMenu) def registerForMenuUpdate(self): # Refill the menu whenever the menu is opened, because the menu might # depend on the status of the viewer: self._window.Bind(wx.EVT_MENU_OPEN, self.onUpdateMenu_Deprecated) def updateMenuItems(self): newCommands = self.getUICommands() try: if newCommands == self._uiCommands: return except wx._core.PyDeadObjectError: # pylint: disable=W0212 pass # Old viewer was closed self.clearMenu() self.fillMenu(newCommands) self._uiCommands = newCommands def fillMenu(self, uiCommands): self.appendUICommands(*uiCommands) # pylint: disable=W0142 def getUICommands(self): raise NotImplementedError class MainMenu(wx.MenuBar): def __init__(self, mainwindow, settings, iocontroller, viewerContainer, taskFile): super(MainMenu, self).__init__() accels = list() for menu, text in [ (FileMenu(mainwindow, settings, iocontroller, viewerContainer), _('&File')), (EditMenu(mainwindow, settings, iocontroller, viewerContainer), _('&Edit')), (ViewMenu(mainwindow, settings, viewerContainer, taskFile), _('&View')), (NewMenu(mainwindow, settings, taskFile, viewerContainer), _('&New')), (ActionMenu(mainwindow, settings, taskFile, viewerContainer), _('&Actions')), (HelpMenu(mainwindow, settings, iocontroller), _('&Help')) ]: self.Append(menu, text) accels.extend(menu.accelerators()) mainwindow.SetAcceleratorTable(wx.AcceleratorTable(accels)) class FileMenu(Menu): def __init__(self, mainwindow, settings, iocontroller, viewerContainer): super(FileMenu, self).__init__(mainwindow) self.__settings = settings self.__iocontroller = iocontroller self.__recentFileUICommands = [] self.__separator = None self.appendUICommands( uicommand.FileOpen(iocontroller=iocontroller), uicommand.FileMerge(iocontroller=iocontroller), uicommand.FileClose(iocontroller=iocontroller), None, uicommand.FileSave(iocontroller=iocontroller), uicommand.FileMergeDiskChanges(iocontroller=iocontroller), uicommand.FileSaveAs(iocontroller=iocontroller), uicommand.FileSaveSelection(iocontroller=iocontroller, viewer=viewerContainer)) if not settings.getboolean('feature', 'syncml'): self.appendUICommands(uicommand.FilePurgeDeletedItems(iocontroller=iocontroller)) self.appendUICommands( None, uicommand.FileSaveSelectedTaskAsTemplate(iocontroller=iocontroller, viewer=viewerContainer), uicommand.FileImportTemplate(iocontroller=iocontroller), uicommand.FileEditTemplates(settings=settings), None, uicommand.PrintPageSetup(settings=settings), uicommand.PrintPreview(viewer=viewerContainer, settings=settings), uicommand.Print(viewer=viewerContainer, settings=settings), None) self.appendMenu(_('&Import'), ImportMenu(mainwindow, iocontroller)) self.appendMenu(_('&Export'), ExportMenu(mainwindow, iocontroller, settings), 'export') self.appendUICommands( None, uicommand.FileManageBackups(iocontroller=iocontroller, settings=settings) ) if settings.getboolean('feature', 'syncml'): try: import taskcoachlib.syncml.core # pylint: disable=W0612,W0404 except ImportError: pass else: self.appendUICommands(uicommand.FileSynchronize(iocontroller=iocontroller, settings=settings)) self.__recentFilesStartPosition = len(self) self.appendUICommands(None, uicommand.FileQuit()) self._window.Bind(wx.EVT_MENU_OPEN, self.onOpenMenu) def onOpenMenu(self, event): if event.GetMenu() == self: self.__removeRecentFileMenuItems() self.__insertRecentFileMenuItems() event.Skip() def __insertRecentFileMenuItems(self): recentFiles = self.__settings.getlist('file', 'recentfiles') if not recentFiles: return maximumNumberOfRecentFiles = self.__settings.getint('file', 'maxrecentfiles') recentFiles = recentFiles[:maximumNumberOfRecentFiles] self.__separator = self.InsertSeparator(self.__recentFilesStartPosition) for index, recentFile in enumerate(recentFiles): recentFileNumber = index + 1 # Only computer nerds start counting at 0 :-) recentFileMenuPosition = self.__recentFilesStartPosition + 1 + index recentFileOpenUICommand = uicommand.RecentFileOpen(filename=recentFile, index=recentFileNumber, iocontroller=self.__iocontroller) recentFileOpenUICommand.addToMenu(self, self._window, recentFileMenuPosition) self.__recentFileUICommands.append(recentFileOpenUICommand) def __removeRecentFileMenuItems(self): for recentFileUICommand in self.__recentFileUICommands: recentFileUICommand.removeFromMenu(self, self._window) self.__recentFileUICommands = [] if self.__separator: self.RemoveItem(self.__separator) self.__separator = None class ExportMenu(Menu): def __init__(self, mainwindow, iocontroller, settings): super(ExportMenu, self).__init__(mainwindow) kwargs = dict(iocontroller=iocontroller, settings=settings) # pylint: disable=W0142 self.appendUICommands( uicommand.FileExportAsHTML(**kwargs), uicommand.FileExportAsCSV(**kwargs), uicommand.FileExportAsICalendar(**kwargs), uicommand.FileExportAsTodoTxt(**kwargs)) class ImportMenu(Menu): def __init__(self, mainwindow, iocontroller): super(ImportMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.FileImportCSV(iocontroller=iocontroller), uicommand.FileImportTodoTxt(iocontroller=iocontroller)) class TaskTemplateMenu(DynamicMenu): def __init__(self, mainwindow, taskList, settings): self.settings = settings self.taskList = taskList super(TaskTemplateMenu, self).__init__(mainwindow) def registerForMenuUpdate(self): pub.subscribe(self.onTemplatesSaved, 'templates.saved') def onTemplatesSaved(self): self.onUpdateMenu(None, None) def updateMenuItems(self): self.clearMenu() self.fillMenu(self.getUICommands()) def fillMenu(self, uiCommands): self.appendUICommands(*uiCommands) # pylint: disable=W0142 def getUICommands(self): path = self.settings.pathToTemplatesDir() commands = [uicommand.TaskNewFromTemplate(os.path.join(path, name), taskList=self.taskList, settings=self.settings) for name in persistence.TemplateList(path).names()] return commands class EditMenu(Menu): def __init__(self, mainwindow, settings, iocontroller, viewerContainer): super(EditMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.EditUndo(), uicommand.EditRedo(), None, uicommand.EditCut(viewer=viewerContainer, id=wx.ID_CUT), uicommand.EditCopy(viewer=viewerContainer, id=wx.ID_COPY), uicommand.EditPaste(), uicommand.EditPasteAsSubItem(viewer=viewerContainer), None, uicommand.Edit(viewer=viewerContainer, id=wx.ID_EDIT), uicommand.Delete(viewer=viewerContainer, id=wx.ID_DELETE), None) # Leave sufficient room for command names in the Undo and Redo menu # items: self.appendMenu(_('&Select') + ' ' * 50, SelectMenu(mainwindow, viewerContainer)) self.appendUICommands(None, uicommand.EditPreferences(settings)) if settings.getboolean('feature', 'syncml'): try: import taskcoachlib.syncml.core # pylint: disable=W0612,W0404 except ImportError: pass else: self.appendUICommands(uicommand.EditSyncPreferences(mainwindow=mainwindow, iocontroller=iocontroller)) class SelectMenu(Menu): def __init__(self, mainwindow, viewerContainer): super(SelectMenu, self).__init__(mainwindow) kwargs = dict(viewer=viewerContainer) # pylint: disable=W0142 self.appendUICommands(uicommand.SelectAll(**kwargs), uicommand.ClearSelection(**kwargs)) activateNextViewerId = wx.NewId() activatePreviousViewerId = wx.NewId() class ViewMenu(Menu): def __init__(self, mainwindow, settings, viewerContainer, taskFile): super(ViewMenu, self).__init__(mainwindow) self.appendMenu(_('&New viewer'), ViewViewerMenu(mainwindow, settings, viewerContainer, taskFile), 'viewnewviewer') activateNextViewer = uicommand.ActivateViewer(viewer=viewerContainer, menuText=_('&Activate next viewer\tCtrl+PgDn'), helpText=help.viewNextViewer, forward=True, bitmap='activatenextviewer', id=activateNextViewerId) activatePreviousViewer = uicommand.ActivateViewer(viewer=viewerContainer, menuText=_('Activate &previous viewer\tCtrl+PgUp'), helpText=help.viewPreviousViewer, forward=False, bitmap='activatepreviousviewer', id=activatePreviousViewerId) self.appendUICommands( activateNextViewer, activatePreviousViewer, uicommand.RenameViewer(viewer=viewerContainer), None) self.appendMenu(_('&Mode'), ModeMenu(mainwindow, self, _('&Mode'))) self.appendMenu(_('&Filter'), FilterMenu(mainwindow, self, _('&Filter'))) self.appendMenu(_('&Sort'), SortMenu(mainwindow, self, _('&Sort'))) self.appendMenu(_('&Columns'), ColumnMenu(mainwindow, self, _('&Columns'))) self.appendMenu(_('&Rounding'), RoundingMenu(mainwindow, self, _('&Rounding'))) self.appendUICommands(None) self.appendMenu(_('&Tree options'), ViewTreeOptionsMenu(mainwindow, viewerContainer), 'treeview') self.appendUICommands(None) self.appendMenu(_('T&oolbar'), ToolBarMenu(mainwindow, settings)) self.appendUICommands(uicommand.UICheckCommand(settings=settings, menuText=_('Status&bar'), helpText=_('Show/hide status bar'), setting='statusbar')) class ViewViewerMenu(Menu): def __init__(self, mainwindow, settings, viewerContainer, taskFile): super(ViewViewerMenu, self).__init__(mainwindow) ViewViewer = uicommand.ViewViewer kwargs = dict(viewer=viewerContainer, taskFile=taskFile, settings=settings) # pylint: disable=W0142 viewViewerCommands = [\ ViewViewer(menuText=_('&Task'), helpText=_('Open a new tab with a viewer that displays tasks'), viewerClass=viewer.TaskViewer, **kwargs), ViewViewer(menuText=_('Task &statistics'), helpText=_('Open a new tab with a viewer that displays task statistics'), viewerClass=viewer.TaskStatsViewer, **kwargs), ViewViewer(menuText=_('Task &square map'), helpText=_('Open a new tab with a viewer that displays tasks in a square map'), viewerClass=viewer.SquareTaskViewer, **kwargs), ViewViewer(menuText=_('T&imeline'), helpText=_('Open a new tab with a viewer that displays a timeline of tasks and effort'), viewerClass=viewer.TimelineViewer, **kwargs), ViewViewer(menuText=_('&Calendar'), helpText=_('Open a new tab with a viewer that displays tasks in a calendar'), viewerClass=viewer.CalendarViewer, **kwargs), ViewViewer(menuText=_('&Hierarchical calendar'), helpText=_('Open a new tab with a viewer that displays task hierarchy in a calendar'), viewerClass=viewer.HierarchicalCalendarViewer, **kwargs), ViewViewer(menuText=_('&Category'), helpText=_('Open a new tab with a viewer that displays categories'), viewerClass=viewer.CategoryViewer, **kwargs), ViewViewer(menuText=_('&Effort'), helpText=_('Open a new tab with a viewer that displays efforts'), viewerClass=viewer.EffortViewer, **kwargs), uicommand.ViewEffortViewerForSelectedTask(menuText=_('Eff&ort for selected task(s)'), helpText=_('Open a new tab with a viewer that displays efforts for the selected task'), viewerClass=viewer.EffortViewer, **kwargs), ViewViewer(menuText=_('&Note'), helpText=_('Open a new tab with a viewer that displays notes'), viewerClass=viewer.NoteViewer, **kwargs)] self.appendUICommands(*viewViewerCommands) class ViewTreeOptionsMenu(Menu): def __init__(self, mainwindow, viewerContainer): super(ViewTreeOptionsMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.ViewExpandAll(viewer=viewerContainer), uicommand.ViewCollapseAll(viewer=viewerContainer)) class ModeMenu(DynamicMenuThatGetsUICommandsFromViewer): def enabled(self): return self._window.viewer.hasModes() and \ bool(self._window.viewer.getModeUICommands()) def getUICommands(self): return self._window.viewer.getModeUICommands() class FilterMenu(DynamicMenuThatGetsUICommandsFromViewer): def enabled(self): return self._window.viewer.isFilterable() and \ bool(self._window.viewer.getFilterUICommands()) def getUICommands(self): return self._window.viewer.getFilterUICommands() class ColumnMenu(DynamicMenuThatGetsUICommandsFromViewer): def enabled(self): return self._window.viewer.hasHideableColumns() def getUICommands(self): return self._window.viewer.getColumnUICommands() class SortMenu(DynamicMenuThatGetsUICommandsFromViewer): def enabled(self): return self._window.viewer.isSortable() def getUICommands(self): return self._window.viewer.getSortUICommands() class RoundingMenu(DynamicMenuThatGetsUICommandsFromViewer): def enabled(self): return self._window.viewer.supportsRounding() def getUICommands(self): return self._window.viewer.getRoundingUICommands() class ToolBarMenu(Menu): def __init__(self, mainwindow, settings): super(ToolBarMenu, self).__init__(mainwindow) toolbarCommands = [] for value, menuText, helpText in \ [(None, _('&Hide'), _('Hide the toolbar')), ((16, 16), _('&Small images'), _('Small images (16x16) on the toolbar')), ((22, 22), _('&Medium-sized images'), _('Medium-sized images (22x22) on the toolbar')), ((32, 32), _('&Large images'), _('Large images (32x32) on the toolbar'))]: toolbarCommands.append(uicommand.UIRadioCommand(settings=settings, setting='toolbar', value=value, menuText=menuText, helpText=helpText)) # pylint: disable=W0142 self.appendUICommands(*toolbarCommands) class NewMenu(Menu): def __init__(self, mainwindow, settings, taskFile, viewerContainer): super(NewMenu, self).__init__(mainwindow) tasks = taskFile.tasks() self.appendUICommands( uicommand.TaskNew(taskList=tasks, settings=settings), uicommand.NewTaskWithSelectedTasksAsPrerequisites(taskList=tasks, viewer=viewerContainer, settings=settings), uicommand.NewTaskWithSelectedTasksAsDependencies(taskList=tasks, viewer=viewerContainer, settings=settings)) self.appendMenu(_('New task from &template'), TaskTemplateMenu(mainwindow, taskList=tasks, settings=settings), 'newtmpl') self.appendUICommands( None, uicommand.EffortNew(viewer=viewerContainer, effortList=taskFile.efforts(), taskList=tasks, settings=settings), uicommand.CategoryNew(categories=taskFile.categories(), settings=settings), uicommand.NoteNew(notes=taskFile.notes(), settings=settings), None, uicommand.NewSubItem(viewer=viewerContainer)) class ActionMenu(Menu): def __init__(self, mainwindow, settings, taskFile, viewerContainer): super(ActionMenu, self).__init__(mainwindow) tasks = taskFile.tasks() efforts = taskFile.efforts() categories = taskFile.categories() # Generic actions, applicable to all/most domain objects: self.appendUICommands( uicommand.AddAttachment(viewer=viewerContainer, settings=settings), uicommand.OpenAllAttachments(viewer=viewerContainer, settings=settings), None, uicommand.AddNote(viewer=viewerContainer, settings=settings), uicommand.OpenAllNotes(viewer=viewerContainer, settings=settings), None, uicommand.Mail(viewer=viewerContainer), None) self.appendMenu(_('&Toggle category'), ToggleCategoryMenu(mainwindow, categories=categories, viewer=viewerContainer), 'folder_blue_arrow_icon') # Start of task specific actions: self.appendUICommands( None, uicommand.TaskMarkInactive(settings=settings, viewer=viewerContainer), uicommand.TaskMarkActive(settings=settings, viewer=viewerContainer), uicommand.TaskMarkCompleted(settings=settings, viewer=viewerContainer), None) self.appendMenu(_('Change task &priority'), TaskPriorityMenu(mainwindow, tasks, viewerContainer), 'incpriority') self.appendUICommands( None, uicommand.EffortStart(viewer=viewerContainer, taskList=tasks), uicommand.EffortStop(viewer=viewerContainer, effortList=efforts, taskList=tasks), uicommand.EditTrackedTasks(taskList=tasks, settings=settings)) class TaskPriorityMenu(Menu): def __init__(self, mainwindow, taskList, viewerContainer): super(TaskPriorityMenu, self).__init__(mainwindow) kwargs = dict(taskList=taskList, viewer=viewerContainer) # pylint: disable=W0142 self.appendUICommands( uicommand.TaskIncPriority(**kwargs), uicommand.TaskDecPriority(**kwargs), uicommand.TaskMaxPriority(**kwargs), uicommand.TaskMinPriority(**kwargs)) class HelpMenu(Menu): def __init__(self, mainwindow, settings, iocontroller): super(HelpMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.Help(), uicommand.FAQ(), uicommand.Tips(settings=settings), uicommand.Anonymize(iocontroller=iocontroller), None, uicommand.RequestSupport(), uicommand.ReportBug(), uicommand.RequestFeature(), None, uicommand.HelpTranslate(), uicommand.Donate(), None, uicommand.HelpAbout(), uicommand.CheckForUpdate(settings=settings), uicommand.HelpLicense()) class TaskBarMenu(Menu): def __init__(self, taskBarIcon, settings, taskFile, viewer): super(TaskBarMenu, self).__init__(taskBarIcon) tasks = taskFile.tasks() efforts = taskFile.efforts() self.appendUICommands( uicommand.TaskNew(taskList=tasks, settings=settings)) self.appendMenu(_('New task from &template'), TaskTemplateMenu(taskBarIcon, taskList=tasks, settings=settings), 'newtmpl') self.appendUICommands(None) # Separator self.appendUICommands( uicommand.EffortNew(effortList=efforts, taskList=tasks, settings=settings), uicommand.CategoryNew(categories=taskFile.categories(), settings=settings), uicommand.NoteNew(notes=taskFile.notes(), settings=settings)) self.appendUICommands(None) # Separator label = _('&Start tracking effort') self.appendMenu(label, StartEffortForTaskMenu(taskBarIcon, base.filter.DeletedFilter(tasks), self, label), 'clock_icon') self.appendUICommands(uicommand.EffortStop(viewer=viewer, effortList=efforts, taskList=tasks)) self.appendUICommands( None, uicommand.MainWindowRestore(), uicommand.FileQuit()) class ToggleCategoryMenu(DynamicMenu): def __init__(self, mainwindow, categories, viewer): # pylint: disable=W0621 self.categories = categories self.viewer = viewer super(ToggleCategoryMenu, self).__init__(mainwindow) def registerForMenuUpdate(self): for eventType in (self.categories.addItemEventType(), self.categories.removeItemEventType()): patterns.Publisher().registerObserver(self.onUpdateMenu_Deprecated, eventType=eventType, eventSource=self.categories) patterns.Publisher().registerObserver(self.onUpdateMenu_Deprecated, eventType=category.Category.subjectChangedEventType()) def updateMenuItems(self): self.clearMenu() self.addMenuItemsForCategories(self.categories.rootItems(), self) def addMenuItemsForCategories(self, categories, menu): # pylint: disable=W0621 categories = categories[:] categories.sort(key=lambda category: category.subject().lower()) for category in categories: uiCommand = uicommand.ToggleCategory(category=category, viewer=self.viewer) uiCommand.addToMenu(menu, self._window) categoriesWithChildren = [category for category in categories if category.children()] if categoriesWithChildren: menu.AppendSeparator() for category in categoriesWithChildren: subMenu = Menu(self._window) self.addMenuItemsForCategories(category.children(), subMenu) menu.AppendSubMenu(subMenu, self.subMenuLabel(category)) @staticmethod def subMenuLabel(category): # pylint: disable=W0621 return _('%s (subcategories)') % category.subject() def enabled(self): return bool(self.categories) class StartEffortForTaskMenu(DynamicMenu): def __init__(self, taskBarIcon, tasks, parentMenu=None, labelInParentMenu=''): self.tasks = tasks super(StartEffortForTaskMenu, self).__init__(taskBarIcon, parentMenu, labelInParentMenu) def registerForMenuUpdate(self): for eventType in (self.tasks.addItemEventType(), self.tasks.removeItemEventType()): patterns.Publisher().registerObserver(self.onUpdateMenu_Deprecated, eventType=eventType, eventSource=self.tasks) for eventType in (task.Task.subjectChangedEventType(), task.Task.trackingChangedEventType(), task.Task.plannedStartDateTimeChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.actualStartDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType()): if eventType.startswith('pubsub'): pub.subscribe(self.onUpdateMenu, eventType) else: patterns.Publisher().registerObserver(self.onUpdateMenu_Deprecated, eventType) def updateMenuItems(self): self.clearMenu() trackableRootTasks = self._trackableRootTasks() trackableRootTasks.sort(key=lambda task: task.subject()) for trackableRootTask in trackableRootTasks: self.addMenuItemForTask(trackableRootTask, self) def addMenuItemForTask(self, task, menu): # pylint: disable=W0621 uiCommand = uicommand.EffortStartForTask(task=task, taskList=self.tasks) uiCommand.addToMenu(menu, self._window) trackableChildren = [child for child in task.children() if \ child in self.tasks and not child.completed()] if trackableChildren: trackableChildren.sort(key=lambda child: child.subject()) subMenu = Menu(self._window) for child in trackableChildren: self.addMenuItemForTask(child, subMenu) menu.AppendSubMenu(subMenu, _('%s (subtasks)') % task.subject()) def enabled(self): return bool(self._trackableRootTasks()) def _trackableRootTasks(self): return [rootTask for rootTask in self.tasks.rootItems() \ if not rootTask.completed()] class TaskPopupMenu(Menu): def __init__(self, mainwindow, settings, tasks, efforts, categories, taskViewer): super(TaskPopupMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.EditCut(viewer=taskViewer), uicommand.EditCopy(viewer=taskViewer), uicommand.EditPaste(), uicommand.EditPasteAsSubItem(viewer=taskViewer), None, uicommand.Edit(viewer=taskViewer), uicommand.Delete(viewer=taskViewer), None, uicommand.AddAttachment(viewer=taskViewer, settings=settings), uicommand.OpenAllAttachments(viewer=taskViewer, settings=settings), None, uicommand.AddNote(viewer=taskViewer, settings=settings), uicommand.OpenAllNotes(viewer=taskViewer, settings=settings), None, uicommand.Mail(viewer=taskViewer), None) self.appendMenu(_('&Toggle category'), ToggleCategoryMenu(mainwindow, categories=categories, viewer=taskViewer), 'folder_blue_arrow_icon') self.appendUICommands( None, uicommand.TaskMarkInactive(settings=settings, viewer=taskViewer), uicommand.TaskMarkActive(settings=settings, viewer=taskViewer), uicommand.TaskMarkCompleted(settings=settings, viewer=taskViewer), None) self.appendMenu(_('&Priority'), TaskPriorityMenu(mainwindow, tasks, taskViewer), 'incpriority') self.appendUICommands( None, uicommand.EffortNew(viewer=taskViewer, effortList=efforts, taskList=tasks, settings=settings), uicommand.EffortStart(viewer=taskViewer, taskList=tasks), uicommand.EffortStop(viewer=taskViewer, effortList=efforts, taskList=tasks), None, uicommand.NewSubItem(viewer=taskViewer)) class EffortPopupMenu(Menu): def __init__(self, mainwindow, tasks, efforts, settings, effortViewer): super(EffortPopupMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.EditCut(viewer=effortViewer), uicommand.EditCopy(viewer=effortViewer), uicommand.EditPaste(), None, uicommand.Edit(viewer=effortViewer), uicommand.Delete(viewer=effortViewer), None, uicommand.EffortNew(viewer=effortViewer, effortList=efforts, taskList=tasks, settings=settings), uicommand.EffortStartForEffort(viewer=effortViewer, taskList=tasks), uicommand.EffortStop(viewer=effortViewer, effortList=efforts, taskList=tasks)) class CategoryPopupMenu(Menu): def __init__(self, mainwindow, settings, taskFile, categoryViewer, localOnly=False): super(CategoryPopupMenu, self).__init__(mainwindow) categories = categoryViewer.presentation() tasks = taskFile.tasks() notes = taskFile.notes() self.appendUICommands( uicommand.EditCut(viewer=categoryViewer), uicommand.EditCopy(viewer=categoryViewer), uicommand.EditPaste(), uicommand.EditPasteAsSubItem(viewer=categoryViewer), None, uicommand.Edit(viewer=categoryViewer), uicommand.Delete(viewer=categoryViewer), None, uicommand.AddAttachment(viewer=categoryViewer, settings=settings), uicommand.OpenAllAttachments(viewer=categoryViewer, settings=settings), None, uicommand.AddNote(viewer=categoryViewer, settings=settings), uicommand.OpenAllNotes(viewer=categoryViewer, settings=settings), None, uicommand.Mail(viewer=categoryViewer)) if not localOnly: self.appendUICommands( None, uicommand.NewTaskWithSelectedCategories(taskList=tasks, settings=settings, categories=categories, viewer=categoryViewer), uicommand.NewNoteWithSelectedCategories(notes=notes, settings=settings, categories=categories, viewer=categoryViewer)) self.appendUICommands( None, uicommand.NewSubItem(viewer=categoryViewer)) class NotePopupMenu(Menu): def __init__(self, mainwindow, settings, categories, noteViewer): super(NotePopupMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.EditCut(viewer=noteViewer), uicommand.EditCopy(viewer=noteViewer), uicommand.EditPaste(), uicommand.EditPasteAsSubItem(viewer=noteViewer), None, uicommand.Edit(viewer=noteViewer), uicommand.Delete(viewer=noteViewer), None, uicommand.AddAttachment(viewer=noteViewer, settings=settings), uicommand.OpenAllAttachments(viewer=noteViewer, settings=settings), None, uicommand.Mail(viewer=noteViewer), None) self.appendMenu(_('&Toggle category'), ToggleCategoryMenu(mainwindow, categories=categories, viewer=noteViewer), 'folder_blue_arrow_icon') self.appendUICommands( None, uicommand.NewSubItem(viewer=noteViewer)) class ColumnPopupMenuMixin(object): ''' Mixin class for column header popup menu's. These menu's get the column index property set by the control popping up the menu to indicate which column the user clicked. See widgets._CtrlWithColumnPopupMenuMixin. ''' def __setColumn(self, columnIndex): self.__columnIndex = columnIndex # pylint: disable=W0201 def __getColumn(self): return self.__columnIndex columnIndex = property(__getColumn, __setColumn) def getUICommands(self): if not self._window: # Prevent PyDeadObject exception when running tests return [] return [uicommand.HideCurrentColumn(viewer=self._window), None] + \ self._window.getColumnUICommands() class ColumnPopupMenu(ColumnPopupMenuMixin, Menu): ''' Column header popup menu. ''' def __init__(self, window): super(ColumnPopupMenu, self).__init__(window) wx.CallAfter(self.appendUICommands, *self.getUICommands()) def appendUICommands(self, *args, **kwargs): # Prepare for PyDeadObjectError since we're called from wx.CallAfter try: super(ColumnPopupMenu, self).appendUICommands(*args, **kwargs) except wx.PyDeadObjectError: pass class EffortViewerColumnPopupMenu(ColumnPopupMenuMixin, DynamicMenuThatGetsUICommandsFromViewer): ''' Column header popup menu. ''' def registerForMenuUpdate(self): pub.subscribe(self.onChangeAggregation, 'effortviewer.aggregation') def onChangeAggregation(self): self.onUpdateMenu(None, None) class AttachmentPopupMenu(Menu): def __init__(self, mainwindow, settings, attachments, attachmentViewer): super(AttachmentPopupMenu, self).__init__(mainwindow) self.appendUICommands( uicommand.EditCut(viewer=attachmentViewer), uicommand.EditCopy(viewer=attachmentViewer), uicommand.EditPaste(), None, uicommand.Edit(viewer=attachmentViewer), uicommand.Delete(viewer=attachmentViewer), None, uicommand.AddNote(viewer=attachmentViewer, settings=settings), uicommand.OpenAllNotes(viewer=attachmentViewer, settings=settings), None, uicommand.AttachmentOpen(viewer=attachmentViewer, attachments=attachments, settings=settings)) taskcoach-1.4.3/taskcoachlib/gui/printer.py000066400000000000000000000113211265347643000207370ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import persistence, patterns, operating_system from taskcoachlib.i18n import _ import wx # Prepare for printing. On Jolicloud, printing crashes unless we do this: if operating_system.isGTK(): try: import gtk # pylint: disable=F0401 gtk.remove_log_handlers() except ImportError: pass class PrinterSettings(object): __metaclass__ = patterns.Singleton edges = ('top', 'left', 'bottom', 'right') def __init__(self, settings): self.settings = settings self.printData = wx.PrintData() self.pageSetupData = wx.PageSetupDialogData(self.printData) self.__initialize_from_settings() def updatePageSetupData(self, data): self.pageSetupData = wx.PageSetupDialogData(data) self.__update_print_data(data.GetPrintData()) self.__save_to_settings() def __update_print_data(self, printData): self.printData = wx.PrintData(printData) self.pageSetupData.SetPrintData(self.printData) def __getattr__(self, attr): try: return getattr(self.pageSetupData, attr) except AttributeError: return getattr(self.printData, attr) def __initialize_from_settings(self): ''' Load the printer settings from the user settings. ''' margin = dict() for edge in self.edges: margin[edge] = self.__get_setting('margin_' + edge) top_left = wx.Point(margin['left'], margin['top']) bottom_right = wx.Point(margin['right'], margin['bottom']) self.SetMarginTopLeft(top_left) self.SetMarginBottomRight(bottom_right) self.SetPaperId(self.__get_setting('paper_id')) self.SetOrientation(self.__get_setting('orientation')) def __save_to_settings(self): ''' Save the printer settings to the user settings. ''' margin = dict() margin['left'], margin['top'] = self.GetMarginTopLeft() margin['right'], margin['bottom'] = self.GetMarginBottomRight() for edge in self.edges: self.__set_setting('margin_'+edge, margin[edge]) self.__set_setting('paper_id', self.GetPaperId()) self.__set_setting('orientation', self.GetOrientation()) def __get_setting(self, option): return self.settings.getint('printer', option) def __set_setting(self, option, value): self.settings.set('printer', option, str(value)) class HTMLPrintout(wx.html.HtmlPrintout): def __init__(self, html_text, settings): super(HTMLPrintout, self).__init__() self.SetHtmlText(html_text) self.SetFooter(_('Page') + ' @PAGENUM@/@PAGESCNT@', wx.html.PAGE_ALL) self.SetFonts('Arial', 'Courier') printer_settings = PrinterSettings(settings) left, top = printer_settings.pageSetupData.GetMarginTopLeft() right, bottom = printer_settings.pageSetupData.GetMarginBottomRight() self.SetMargins(top, bottom, left, right) class DCPrintout(wx.Printout): def __init__(self, widget): self.widget = widget super(DCPrintout, self).__init__() def OnPrintPage(self, page): # pylint: disable=W0613 self.widget.Draw(self.GetDC()) def GetPageInfo(self): # pylint: disable=W0221 return (1, 1, 1, 1) def Printout(viewer, settings, printSelectionOnly=False, twoPrintouts=False): widget = viewer.getWidget() if hasattr(widget, 'GetPrintout'): _printout = widget.GetPrintout elif hasattr(widget, 'Draw'): def _printout(settings): return DCPrintout(widget) else: html_text = persistence.viewer2html(viewer, settings, selectionOnly=printSelectionOnly)[0] def _printout(settings): return HTMLPrintout(html_text, settings) result = _printout(PrinterSettings(settings)) if twoPrintouts: result = (result, _printout(PrinterSettings(settings))) return result taskcoach-1.4.3/taskcoachlib/gui/remindercontroller.py000077500000000000000000000160261265347643000231770ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, meta, notify from taskcoachlib.domain import date, task from taskcoachlib.gui.dialog import reminder, editor from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub import wx class ReminderController(object): def __init__(self, mainWindow, taskList, effortList, settings): super(ReminderController, self).__init__() pub.subscribe(self.onSetReminder, task.Task.reminderChangedEventType()) patterns.Publisher().registerObserver(self.onAddTask, eventType=taskList.addItemEventType(), eventSource=taskList) patterns.Publisher().registerObserver(self.onRemoveTask, eventType=taskList.removeItemEventType(), eventSource=taskList) self.__tasksWithReminders = {} # {task: reminderDateTime} self.__mainWindow = mainWindow self.__mainWindowWasHidden = False self.__registerRemindersForTasks(taskList) self.settings = settings self.taskList = taskList self.effortList = effortList def onAddTask(self, event): self.__registerRemindersForTasks(event.values()) def onRemoveTask(self, event): self.__removeRemindersForTasks(event.values()) def onSetReminder(self, newValue, sender): # pylint: disable=W0613 self.__removeRemindersForTasks([sender]) self.__registerRemindersForTasks([sender]) def onReminder(self): self.showReminderMessages(date.DateTime.now()) def showReminderMessages(self, now): now += date.TimeDelta(seconds=5) # Be sure not to miss reminders requestUserAttention = False for taskWithReminder in self.__tasksWithReminders.copy(): if taskWithReminder.reminder() <= now: requestUserAttention = True self.showReminderMessage(taskWithReminder) if requestUserAttention: self.requestUserAttention() def showReminderMessage(self, taskWithReminder, ReminderDialog=reminder.ReminderDialog): if self.__useOwnReminderDialog(): self.__showReminderDialog(taskWithReminder, ReminderDialog) self.__removeReminder(taskWithReminder) else: self.__showReminderViaNotifier(taskWithReminder) self.__removeReminder(taskWithReminder) self.__snooze(taskWithReminder) def __useOwnReminderDialog(self): notifier = self.settings.get('feature', 'notifier') return notifier == 'Task Coach' or notify.AbstractNotifier.get(notifier) is None def __showReminderDialog(self, taskWithReminder, ReminderDialog): # If the dialog has self.__mainWindow as parent, it steals the focus when # returning to Task Coach through Alt+Tab; we don't want that for # reminders. reminderDialog = ReminderDialog(taskWithReminder, self.taskList, self.effortList, self.settings, None) reminderDialog.Bind(wx.EVT_CLOSE, self.onCloseReminderDialog) reminderDialog.Show() def __showReminderViaNotifier(self, taskWithReminder): notifier = notify.AbstractNotifier.get(self.settings.get('feature', 'notifier')) notifier.notify(_('%s Reminder') % meta.name, taskWithReminder.subject(), wx.ArtProvider.GetBitmap('taskcoach', size=wx.Size(32, 32)), windowId=self.__mainWindow.GetHandle()) def __snooze(self, taskWithReminder): minutesToSnooze = self.settings.getint('view', 'defaultsnoozetime') taskWithReminder.snoozeReminder(date.TimeDelta(minutes=minutesToSnooze)) def onCloseReminderDialog(self, event, show=True): event.Skip() dialog = event.EventObject taskWithReminder = dialog.task if not dialog.ignoreSnoozeOption: snoozeOptions = dialog.snoozeOptions snoozeTimeDelta = snoozeOptions.GetClientData(snoozeOptions.Selection) taskWithReminder.snoozeReminder(snoozeTimeDelta) # Note that this is not undoable # Undoing the snoozing makes little sense, because it would set the # reminder back to its original date-time, which is now in the past. if dialog.openTaskAfterClose: editTask = editor.TaskEditor(self.__mainWindow, [taskWithReminder], self.settings, self.taskList, self.__mainWindow.taskFile, bitmap='edit') editTask.Show(show) else: editTask = None dialog.Destroy() if self.__mainWindowWasHidden: self.__mainWindow.Hide() return editTask # For unit testing purposes def requestUserAttention(self): notifier = self.settings.get('feature', 'notifier') if notifier != 'Task Coach' and notify.AbstractNotifier.get(notifier) is not None: # When using Growl/Snarl, this is not necessary. Even when not using Growl, it's # annoying as hell. Anyway. return self.__mainWindowWasHidden = not self.__mainWindow.IsShown() if self.__mainWindowWasHidden: self.__mainWindow.Show() if not self.__mainWindow.IsActive(): self.__mainWindow.RequestUserAttention() def __registerRemindersForTasks(self, tasks): for eachTask in tasks: if eachTask.reminder() and eachTask.reminder() < date.DateTime(): self.__registerReminder(eachTask) def __removeRemindersForTasks(self, tasks): for eachTask in tasks: if eachTask in self.__tasksWithReminders: self.__removeReminder(eachTask) def __registerReminder(self, taskWithReminder): reminderDateTime = taskWithReminder.reminder() now = date.DateTime.now() if reminderDateTime < now: reminderDateTime = now + date.TimeDelta(seconds=10) self.__tasksWithReminders[taskWithReminder] = date.Scheduler().schedule(self.onReminder, reminderDateTime) def __removeReminder(self, taskWithReminder): job = self.__tasksWithReminders[taskWithReminder] date.Scheduler().unschedule(job) del self.__tasksWithReminders[taskWithReminder] taskcoach-1.4.3/taskcoachlib/gui/splash.py000066400000000000000000000032311265347643000205470ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import i18n try: import icons except ImportError: # pragma: no cover print "ERROR: couldn't import icons.py." print 'You need to generate the icons file.' print 'Run "make prepare" in the Task Coach root folder.' import sys sys.exit(1) class SplashScreen(wx.SplashScreen): def __init__(self): splash = icons.catalog['splash'] if i18n.currentLanguageIsRightToLeft(): # RTL languages cause the bitmap to be mirrored too, but because # the splash image is not internationalized, we have to mirror it # (back). Unfortunately using SetLayoutDirection() on the # SplashWindow doesn't work. bitmap = wx.BitmapFromImage(splash.getImage().Mirror()) else: bitmap = splash.getBitmap() super(SplashScreen, self).__init__(bitmap, wx.SPLASH_CENTRE_ON_SCREEN|wx.SPLASH_TIMEOUT, 4000, None, -1) taskcoach-1.4.3/taskcoachlib/gui/status.py000066400000000000000000000061621265347643000206060ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.thirdparty.pubsub import pub class StatusBar(wx.StatusBar): def __init__(self, parent, viewer): super(StatusBar, self).__init__(parent) self.SetFieldsCount(2) self.parent = parent self.viewer = viewer self.__timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.onUpdateStatus, self.__timer) pub.subscribe(self.onViewerStatusChanged, 'viewer.status') self.scheduledStatusDisplay = None self.onViewerStatusChanged() self.wxEventTypes = (wx.EVT_MENU_HIGHLIGHT_ALL, wx.EVT_TOOL_ENTER) for eventType in self.wxEventTypes: parent.Bind(eventType, self.resetStatusBar) def resetStatusBar(self, event): ''' Unfortunately, the menu's and toolbar don't restore the previous statusbar text after they have displayed their help text, so we have to do it by hand. ''' try: toolOrMenuId = event.GetSelection() # for CommandEvent from the Toolbar except AttributeError: toolOrMenuId = event.GetMenuId() # for MenuEvent if toolOrMenuId == -1: self._displayStatus() event.Skip() def onViewerStatusChanged(self): # Give viewer a chance to update first and only update when the viewer # hasn't changed status for 0.5 seconds. self.__timer.Start(500, oneShot=True) def onUpdateStatus(self, event): # pylint: disable=W0613 if self.__timer: self.__timer.Stop() self._displayStatus() def _displayStatus(self): try: status1, status2 = self.viewer.statusMessages() except AttributeError: return # Viewer container contains no viewers super(StatusBar, self).SetStatusText(status1, 0) super(StatusBar, self).SetStatusText(status2, 1) def SetStatusText(self, message, pane=0, delay=3000): # pylint: disable=W0221 if self.scheduledStatusDisplay: self.scheduledStatusDisplay.Stop() super(StatusBar, self).SetStatusText(message, pane) self.scheduledStatusDisplay = wx.FutureCall(delay, self._displayStatus) def Destroy(self): # pylint: disable=W0221 for eventType in self.wxEventTypes: self.parent.Unbind(eventType) if self.scheduledStatusDisplay: self.scheduledStatusDisplay.Stop() super(StatusBar, self).Destroy() taskcoach-1.4.3/taskcoachlib/gui/taskbaricon.py000066400000000000000000000177751265347643000215770ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 João Alexandre de Toledo Task Coach 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. Task Coach 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 . ''' import wx import os from taskcoachlib import meta, patterns, operating_system from taskcoachlib.i18n import _ from taskcoachlib.domain import date, task from taskcoachlib.thirdparty.pubsub import pub import artprovider class TaskBarIcon(patterns.Observer, wx.TaskBarIcon): def __init__(self, mainwindow, taskList, settings, defaultBitmap='taskcoach', tickBitmap='clock_icon', tackBitmap='clock_stopwatch_icon', *args, **kwargs): super(TaskBarIcon, self).__init__(*args, **kwargs) self.__window = mainwindow self.__taskList = taskList self.__settings = settings self.__bitmap = self.__defaultBitmap = defaultBitmap self.__currentBitmap = self.__bitmap self.__tooltipText = '' self.__currentText = self.__tooltipText self.__tickBitmap = tickBitmap self.__tackBitmap = tackBitmap self.registerObserver(self.onTaskListChanged, eventType=taskList.addItemEventType(), eventSource=taskList) self.registerObserver(self.onTaskListChanged, eventType=taskList.removeItemEventType(), eventSource=taskList) pub.subscribe(self.onTrackingChanged, task.Task.trackingChangedEventType()) pub.subscribe(self.onChangeDueDateTime, task.Task.dueDateTimeChangedEventType()) # When the user chances the due soon hours preferences it may cause # a task to change appearance. That also means the number of due soon # tasks has changed, so we need to change the tool tip text. # Note that directly subscribing to the setting (behavior.duesoonhours) # is not reliable. The TaskBarIcon may get the event before the tasks # do. When that happens the tasks haven't changed their status yet and # we would use the wrong status count. self.registerObserver(self.onChangeDueDateTime_Deprecated, eventType=task.Task.appearanceChangedEventType()) if operating_system.isGTK(): events = [wx.EVT_TASKBAR_LEFT_DOWN] elif operating_system.isWindows(): # See http://msdn.microsoft.com/en-us/library/windows/desktop/aa511448.aspx#interaction events = [wx.EVT_TASKBAR_LEFT_DOWN, wx.EVT_TASKBAR_LEFT_DCLICK] else: events = [wx.EVT_TASKBAR_LEFT_DCLICK] for event in events: self.Bind(event, self.onTaskbarClick) self.__setTooltipText() mainwindow.Bind(wx.EVT_IDLE, self.onIdle) # Event handlers: def onIdle(self, event): if self.__currentText != self.__tooltipText or self.__currentBitmap != self.__bitmap: self.__currentText = self.__tooltipText self.__currentBitmap = self.__bitmap self.__setIcon() if event is not None: # Unit tests event.Skip() def onTaskListChanged(self, event): # pylint: disable=W0613 self.__setTooltipText() self.__startOrStopTicking() def onTrackingChanged(self, newValue, sender): if newValue: self.registerObserver(self.onChangeSubject, eventType=sender.subjectChangedEventType(), eventSource=sender) else: self.removeObserver(self.onChangeSubject, eventType=sender.subjectChangedEventType()) self.__setTooltipText() if newValue: self.__startTicking() else: self.__stopTicking() def onChangeSubject(self, event): # pylint: disable=W0613 self.__setTooltipText() def onChangeDueDateTime(self, newValue, sender): # pylint: disable=W0613 self.__setTooltipText() def onChangeDueDateTime_Deprecated(self, event): self.__setTooltipText() def onEverySecond(self): if self.__settings.getboolean('window', 'blinktaskbariconwhentrackingeffort') and \ not operating_system.isMacOsXMavericks_OrNewer(): self.__toggleTrackingBitmap() self.__setIcon() def onTaskbarClick(self, event): if self.__window.IsIconized() or not self.__window.IsShown(): self.__window.restore(event) else: if operating_system.isMac(): self.__window.Raise() else: self.__window.Iconize() # Menu: def setPopupMenu(self, menu): self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.popupTaskBarMenu) self.popupmenu = menu # pylint: disable=W0201 def popupTaskBarMenu(self, event): # pylint: disable=W0613 self.PopupMenu(self.popupmenu) # Getters: def tooltip(self): return self.__tooltipText def bitmap(self): return self.__bitmap def defaultBitmap(self): return self.__defaultBitmap # Private methods: def __startOrStopTicking(self): self.__startTicking() self.__stopTicking() def __startTicking(self): if self.__taskList.nrBeingTracked() > 0: self.startClock() self.__toggleTrackingBitmap() self.__setIcon() def startClock(self): date.Scheduler().schedule_interval(self.onEverySecond, seconds=1) def __stopTicking(self): if self.__taskList.nrBeingTracked() == 0: self.stopClock() self.__setDefaultBitmap() self.__setIcon() def stopClock(self): date.Scheduler().unschedule(self.onEverySecond) toolTipMessages = \ [(task.status.overdue, _('one task overdue'), _('%d tasks overdue')), (task.status.duesoon, _('one task due soon'), _('%d tasks due soon'))] def __setTooltipText(self): ''' Note that Windows XP and Vista limit the text shown in the tool tip to 64 characters, so we cannot show everything we would like to and have to make choices. ''' textParts = [] trackedTasks = self.__taskList.tasksBeingTracked() if trackedTasks: count = len(trackedTasks) if count == 1: tracking = _('tracking "%s"') % trackedTasks[0].subject() else: tracking = _('tracking effort for %d tasks') % count textParts.append(tracking) else: counts = self.__taskList.nrOfTasksPerStatus() for status, singular, plural in self.toolTipMessages: count = counts[status] if count == 1: textParts.append(singular) elif count > 1: textParts.append(plural % count) textPart = ', '.join(textParts) filename = os.path.basename(self.__window.taskFile.filename()) namePart = u'%s - %s' % (meta.name, filename) if filename else meta.name text = u'%s\n%s' % (namePart, textPart) if textPart else namePart if text != self.__tooltipText: self.__tooltipText = text def __setDefaultBitmap(self): self.__bitmap = self.__defaultBitmap def __toggleTrackingBitmap(self): tick, tack = self.__tickBitmap, self.__tackBitmap self.__bitmap = tack if self.__bitmap == tick else tick def __setIcon(self): icon = artprovider.getIcon(self.__bitmap) self.SetIcon(icon, self.__tooltipText) taskcoach-1.4.3/taskcoachlib/gui/toolbar.py000066400000000000000000000154661265347643000207340ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system from taskcoachlib.thirdparty import aui import wx import uicommand class _Toolbar(aui.AuiToolBar): def __init__(self, parent, style): super(_Toolbar, self).__init__(parent, agwStyle=aui.AUI_TB_NO_AUTORESIZE) def AddLabelTool(self, id, label, bitmap1, bitmap2, kind, **kwargs): long_help_string = kwargs.pop('longHelp', '') short_help_string = kwargs.pop('shortHelp', '') bitmap2 = self.MakeDisabledBitmap(bitmap1) super(_Toolbar, self).AddTool(id, label, bitmap1, bitmap2, kind, short_help_string, long_help_string, None, None) def GetToolState(self, toolid): return self.GetToolToggled(toolid) def SetToolBitmapSize(self, size): self.__size = size def GetToolBitmapSize(self): return self.__size def GetToolSize(self): return self.__size def SetMargins(self, *args): if len(args) == 2: super(_Toolbar, self).SetMarginsXY(args[0], args[1]) else: super(_Toolbar, self).SetMargins(*args) def MakeDisabledBitmap(self, bitmap): return bitmap.ConvertToImage().ConvertToGreyscale().ConvertToBitmap() class ToolBar(_Toolbar, uicommand.UICommandContainerMixin): def __init__(self, window, settings, size=(32, 32)): self.__window = window self.__settings = settings self.__visibleUICommands = list() self.__cache = None super(ToolBar, self).__init__(window, style=wx.TB_FLAT|wx.TB_NODIVIDER) self.SetToolBitmapSize(size) if operating_system.isMac(): # Extra margin needed because the search control is too high self.SetMargins(0, 7) self.loadPerspective(window.getToolBarPerspective()) def Clear(self): """The regular Clear method does not remove controls.""" if self.__visibleUICommands: # May be None for uiCommand in self.__visibleUICommands: if uiCommand is not None and not isinstance(uiCommand, int): uiCommand.unbind(self, uiCommand.id) idx = 0 while idx < self.GetToolCount(): item = self.FindToolByIndex(idx) if item is not None and item.GetKind() == aui.ITEM_CONTROL: item.window.Destroy() self.DeleteToolByPos(idx) else: idx += 1 super(ToolBar, self).Clear() def detach(self): self.Clear() self.__visibleUICommands = self.__cache = None def getToolIdByCommand(self, commandName): if commandName == 'EditToolBarPerspective': return self.__customizeId for uiCommand in self.__visibleUICommands: if isinstance(uiCommand, uicommand.UICommand) and uiCommand.uniqueName() == commandName: return uiCommand.id return wx.ID_ANY def _filterCommands(self, perspective, cache=True): commands = list() if perspective: index = dict([(command.uniqueName(), command) for command in self.uiCommands(cache=cache) if command is not None and not isinstance(command, int)]) index['Separator'] = None index['Spacer'] = 1 for className in perspective.split(','): if className in index: commands.append(index[className]) else: commands = list(self.uiCommands(cache=cache)) return commands def loadPerspective(self, perspective, customizable=True, cache=True): self.Clear() commands = self._filterCommands(perspective, cache=cache) self.__visibleUICommands = commands[:] if customizable: if 1 not in commands: commands.append(1) from taskcoachlib.gui.dialog.toolbar import ToolBarEditor uiCommand = uicommand.EditToolBarPerspective(self, ToolBarEditor, settings=self.__settings) commands.append(uiCommand) self.__customizeId = uiCommand.id if operating_system.isMac(): commands.append(None) # Errr... self.appendUICommands(*commands) self.Realize() def perspective(self): names = list() for uiCommand in self.__visibleUICommands: if uiCommand is None: names.append('Separator') elif isinstance(uiCommand, int): names.append('Spacer') else: names.append(uiCommand.uniqueName()) return ','.join(names) def savePerspective(self, perspective): self.loadPerspective(perspective) self.__window.saveToolBarPerspective(perspective) def uiCommands(self, cache=True): if self.__cache is None or not cache: self.__cache = self.__window.createToolBarUICommands() return self.__cache def visibleUICommands(self): return self.__visibleUICommands[:] def AppendSeparator(self): ''' This little adapter is needed for uicommand.UICommandContainerMixin.appendUICommands''' self.AddSeparator() def AppendStretchSpacer(self, proportion): self.AddStretchSpacer(proportion) def appendUICommand(self, uiCommand): return uiCommand.appendToToolBar(self) class MainToolBar(ToolBar): def __init__(self, *args, **kwargs): super(MainToolBar, self).__init__(*args, **kwargs) self.Bind(wx.EVT_SIZE, self._OnSize) def _OnSize(self, event): event.Skip() # On Windows XP, the sizes are off by 1 pixel. I fear that this value depends # on the user's config so let's take some margin. if abs(event.GetSize()[0] - self.GetParent().GetClientSize()[0]) >= 10: wx.CallAfter(self.GetParent().SendSizeEvent) def Realize(self): self._agwStyle &= ~aui.AUI_TB_NO_AUTORESIZE super(MainToolBar, self).Realize() self._agwStyle |= aui.AUI_TB_NO_AUTORESIZE wx.CallAfter(self.GetParent().SendSizeEvent) w, h = self.GetParent().GetClientSizeTuple() wx.CallAfter(self.SetMinSize, (w, -1)) taskcoach-1.4.3/taskcoachlib/gui/uicommand/000077500000000000000000000000001265347643000206605ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/gui/uicommand/__init__.py000066400000000000000000000016151265347643000227740ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from base_uicommand import UICommand from settings_uicommand import UIRadioCommand, UICheckCommand from uicommand import * from uicommandcontainer import UICommandContainerMixin taskcoach-1.4.3/taskcoachlib/gui/uicommand/base_uicommand.py000066400000000000000000000166731265347643000242150ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import operating_system ''' User interface commands (subclasses of UICommand) are actions that can be invoked by the user via the user interface (menu's, toolbar, etc.). See the Taskmaster pattern described here: http://www.objectmentor.com/resources/articles/taskmast.pdf ''' # pylint: disable=W0105 class UICommand(object): ''' Base user interface command. An UICommand is some action that can be associated with menu's and/or toolbars. It contains the menutext and helptext to be displayed, code to deal with wx.EVT_UPDATE_UI and methods to attach the command to a menu or toolbar. Subclasses should implement doCommand() and optionally override enabled(). ''' def __init__(self, menuText='', helpText='', bitmap='nobitmap', kind=wx.ITEM_NORMAL, id=None, bitmap2=None, *args, **kwargs): # pylint: disable=W0622 super(UICommand, self).__init__() menuText = menuText or '<%s>' % _('None') self.menuText = menuText if '&' in menuText else '&' + menuText self.helpText = helpText self.bitmap = bitmap self.bitmap2 = bitmap2 self.kind = kind self.id = id or wx.NewId() self.toolbar = None self.menuItems = [] # uiCommands can be used in multiple menu's def __eq__(self, other): return self is other def uniqueName(self): return self.__class__.__name__ def accelerators(self): # The ENTER and NUMPAD_ENTER keys are treated differently between platforms... if '\t' in self.menuText and ('ENTER' in self.menuText or 'RETURN' in self.menuText): flags = wx.ACCEL_NORMAL for key in self.menuText.split('\t')[1].split('+'): if key == 'Ctrl': flags |= wx.ACCEL_CMD if operating_system.isMac() else wx.ACCEL_CTRL elif key in ['Shift', 'Alt']: flags |= dict(Shift=wx.ACCEL_SHIFT, Alt=wx.ACCEL_ALT)[key] else: assert key in ['ENTER', 'RETURN'], key return [(flags, wx.WXK_NUMPAD_ENTER, self.id)] return [] def addToMenu(self, menu, window, position=None): menuItem = wx.MenuItem(menu, self.id, self.menuText, self.helpText, self.kind) self.menuItems.append(menuItem) self.addBitmapToMenuItem(menuItem) if position is None: menu.AppendItem(menuItem) else: menu.InsertItem(position, menuItem) self.bind(window, self.id) return self.id def addBitmapToMenuItem(self, menuItem): if self.bitmap2 and self.kind == wx.ITEM_CHECK and not operating_system.isGTK(): bitmap1 = self.__getBitmap(self.bitmap) bitmap2 = self.__getBitmap(self.bitmap2) menuItem.SetBitmaps(bitmap1, bitmap2) elif self.bitmap and self.kind == wx.ITEM_NORMAL: menuItem.SetBitmap(self.__getBitmap(self.bitmap)) def removeFromMenu(self, menu, window): for menuItem in self.menuItems: if menuItem.GetMenu() == menu: self.menuItems.remove(menuItem) menuId = menuItem.GetId() menu.Remove(menuId) break self.unbind(window, menuId) def appendToToolBar(self, toolbar): self.toolbar = toolbar bitmap = self.__getBitmap(self.bitmap, wx.ART_TOOLBAR, toolbar.GetToolBitmapSize()) toolbar.AddLabelTool(self.id, '', bitmap, wx.NullBitmap, self.kind, shortHelp=wx.MenuItem.GetLabelFromText(self.menuText), longHelp=self.helpText) self.bind(toolbar, self.id) return self.id def bind(self, window, itemId): window.Bind(wx.EVT_MENU, self.onCommandActivate, id=itemId) window.Bind(wx.EVT_UPDATE_UI, self.onUpdateUI, id=itemId) def unbind(self, window, itemId): for eventType in [wx.EVT_MENU, wx.EVT_UPDATE_UI]: window.Unbind(eventType, id=itemId) def onCommandActivate(self, event, *args, **kwargs): ''' For Menu's and ToolBars, activating the command is not possible when not enabled, because menu items and toolbar buttons are disabled through onUpdateUI. For other controls such as the ListCtrl and the TreeCtrl the EVT_UPDATE_UI event is not sent, so we need an explicit check here. Otherwise hitting return on an empty selection in the ListCtrl would bring up the TaskEditor. ''' if self.enabled(event): return self.doCommand(event, *args, **kwargs) def __call__(self, *args, **kwargs): return self.onCommandActivate(*args, **kwargs) def doCommand(self, event): raise NotImplementedError # pragma: no cover def onUpdateUI(self, event): event.Enable(bool(self.enabled(event))) if self.toolbar and (not self.helpText or self.menuText == '?'): self.updateToolHelp() def enabled(self, event): # pylint: disable=W0613 ''' Can be overridden in a subclass. ''' return True def updateToolHelp(self): if not self.toolbar: return # Not attached to a toolbar or it's hidden shortHelp = wx.MenuItem.GetLabelFromText(self.getMenuText()) if shortHelp != self.toolbar.GetToolShortHelp(self.id): self.toolbar.SetToolShortHelp(self.id, shortHelp) longHelp = self.getHelpText() if longHelp != self.toolbar.GetToolLongHelp(self.id): self.toolbar.SetToolLongHelp(self.id, longHelp) def updateMenuText(self, menuText): self.menuText = menuText if operating_system.isWindows(): for menuItem in self.menuItems[:]: menu = menuItem.GetMenu() pos = menu.GetMenuItems().index(menuItem) newMenuItem = wx.MenuItem(menu, self.id, menuText, self.helpText, self.kind) self.addBitmapToMenuItem(newMenuItem) menu.DeleteItem(menuItem) self.menuItems.remove(menuItem) self.menuItems.append(newMenuItem) menu.InsertItem(pos, newMenuItem) else: for menuItem in self.menuItems: menuItem.SetItemLabel(menuText) def mainWindow(self): return wx.GetApp().TopWindow def getMenuText(self): return self.menuText def getHelpText(self): return self.helpText def __getBitmap(self, bitmapName, bitmapType=wx.ART_MENU, bitmapSize=(16, 16)): return wx.ArtProvider_GetBitmap(bitmapName, bitmapType, bitmapSize) taskcoach-1.4.3/taskcoachlib/gui/uicommand/mixin_uicommand.py000066400000000000000000000172361265347643000244230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import task, note, category, effort, attachment import wx class NeedsSelectionMixin(object): ''' Mixin class for UI commands that need at least one selected item. ''' def enabled(self, event): return super(NeedsSelectionMixin, self).enabled(event) and \ self.viewer.curselection() class NeedsSelectedCategorizableMixin(NeedsSelectionMixin): ''' Mixin class for UI commands that need at least one selected categorizable. ''' def enabled(self, event): return super(NeedsSelectedCategorizableMixin, self).enabled(event) and \ (self.viewer.curselectionIsInstanceOf(task.Task) or \ self.viewer.curselectionIsInstanceOf(note.Note)) class NeedsOneSelectedItemMixin(object): ''' Mixin class for UI commands that need exactly one selected item. ''' def enabled(self, event): return super(NeedsOneSelectedItemMixin, self).enabled(event) and \ len(self.viewer.curselection()) == 1 class NeedsSelectedCompositeMixin(NeedsSelectionMixin): ''' Mixin class for UI commands that need at least one selected composite item. ''' def enabled(self, event): return super(NeedsSelectedCompositeMixin, self).enabled(event) and \ (self.viewer.curselectionIsInstanceOf(task.Task) or \ self.viewer.curselectionIsInstanceOf(note.Note) or \ self.viewer.curselectionIsInstanceOf(category.Category)) class NeedsOneSelectedCompositeItemMixin(NeedsOneSelectedItemMixin, NeedsSelectedCompositeMixin): ''' Mixin class for UI commands that need exactly one selected composite item. ''' pass class NeedsAttachmentViewerMixin(object): ''' Mixin class for UI commands that need a viewer that is showing attachments. ''' def enabled(self, event): return super(NeedsAttachmentViewerMixin, self).enabled(event) and \ self.viewer.isShowingAttachments() class NeedsSelectedTasksMixin(NeedsSelectionMixin): ''' Mixin class for UI commands that need one or more selected tasks. ''' def enabled(self, event): return super(NeedsSelectedTasksMixin, self).enabled(event) and \ self.viewer.curselectionIsInstanceOf(task.Task) class NeedsSelectedNoteOwnersMixin(NeedsSelectionMixin): ''' Mixin class for UI commands that need at least one selected note owner. ''' def enabled(self, event): return super(NeedsSelectedNoteOwnersMixin, self).enabled(event) and \ (self.viewer.curselectionIsInstanceOf(task.Task) or \ self.viewer.curselectionIsInstanceOf(category.Category) or \ self.viewer.curselectionIsInstanceOf(attachment.Attachment)) class NeedsSelectedNoteOwnersMixinWithNotes(NeedsSelectedNoteOwnersMixin): ''' Mixin class for UI commands that need at least one selected note owner with notes. ''' def enabled(self, event): # pylint: disable=E1101 return super(NeedsSelectedNoteOwnersMixinWithNotes, self).enabled(event) and \ any([item.notes() for item in self.viewer.curselection()]) class NeedsSelectedAttachmentOwnersMixin(NeedsSelectionMixin): ''' Mixin class for UI commands that need at least one selected attachment owner. ''' def enabled(self, event): return super(NeedsSelectedAttachmentOwnersMixin, self).enabled(event) and \ (self.viewer.curselectionIsInstanceOf(task.Task) or \ self.viewer.curselectionIsInstanceOf(category.Category) or \ self.viewer.curselectionIsInstanceOf(note.Note)) class NeedsOneSelectedTaskMixin(NeedsSelectedTasksMixin, NeedsOneSelectedItemMixin): ''' Mixin class for UI commands that need at least one selected tasks. ''' pass class NeedsSelectionWithAttachmentsMixin(NeedsSelectionMixin): ''' Mixin class for UI commands that need at least one selected item with one or more attachments. ''' def enabled(self, event): return super(NeedsSelectionWithAttachmentsMixin, self).enabled(event) and \ any(item.attachments() for item in self.viewer.curselection() if not isinstance(item, effort.Effort)) class NeedsSelectedEffortMixin(NeedsSelectionMixin): ''' Mixin class for UI commands that need at least one selected effort. ''' def enabled(self, event): return super(NeedsSelectedEffortMixin, self).enabled(event) and \ self.viewer.curselectionIsInstanceOf(effort.Effort) class NeedsSelectedAttachmentsMixin(NeedsAttachmentViewerMixin, NeedsSelectionMixin): ''' Mixin class for UI commands that need at least one selected attachment. ''' pass class NeedsAtLeastOneTaskMixin(object): ''' Mixin class for UI commands that need at least one task created. ''' def enabled(self, event): # pylint: disable=W0613 return len(self.taskList) > 0 class NeedsAtLeastOneCategoryMixin(object): ''' Mixin class for UI commands that need at least one category created. ''' def enabled(self, event): # pylint: disable=W0613 return len(self.categories) > 0 class NeedsItemsMixin(object): ''' Mixin class for UI commands that need at least one item in their viewer. ''' def enabled(self, event): # pylint: disable=W0613 return self.viewer.size() class NeedsTreeViewerMixin(object): ''' Mixin class for UI commands that need a tree viewer. ''' def enabled(self, event): return super(NeedsTreeViewerMixin, self).enabled(event) and \ self.viewer.isTreeViewer() class NeedsDeletedItemsMixin(object): ''' Mixin class for UI commands that need deleted items to be present. ''' def enabled(self, event): return super(NeedsDeletedItemsMixin, self).enabled(event) and \ self.iocontroller.hasDeletedItems() class PopupButtonMixin(object): ''' Mix this with a UICommand for a toolbar pop-up menu. ''' def doCommand(self, event): # pylint: disable=W0613 try: args = [self.__menu] except AttributeError: self.__menu = self.createPopupMenu() # pylint: disable=W0201 args = [self.__menu] if self.toolbar: args.append(self.menuXY()) self.mainWindow().PopupMenu(*args) # pylint: disable=W0142 def menuXY(self): ''' Location to pop up the menu. ''' return self.mainWindow().ScreenToClient((self.menuX(), self.menuY())) def menuX(self): buttonWidth = self.toolbar.GetToolSize()[0] mouseX = wx.GetMousePosition()[0] return mouseX - 0.5 * buttonWidth def menuY(self): toolbarY = self.toolbar.GetScreenPosition()[1] toolbarHeight = self.toolbar.GetSize()[1] return toolbarY + toolbarHeight def createPopupMenu(self): raise NotImplementedError # pragma: no cover taskcoach-1.4.3/taskcoachlib/gui/uicommand/settings_uicommand.py000066400000000000000000000103301265347643000251230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' import base_uicommand import wx class SettingsCommand(base_uicommand.UICommand): # pylint: disable=W0223 ''' SettingsCommands are saved in the settings (a ConfigParser). ''' def __init__(self, settings=None, setting=None, section='view', *args, **kwargs): self.settings = settings self.section = section self.setting = setting super(SettingsCommand, self).__init__(*args, **kwargs) class BooleanSettingsCommand(SettingsCommand): # pylint: disable=W0223 ''' Bae class for commands that change a boolean setting. Whenever the setting is changed, the user interface representation is changed as well. E.g. a menu gets a checkmark. ''' def __init__(self, value=None, *args, **kwargs): self.value = value super(BooleanSettingsCommand, self).__init__(*args, **kwargs) def onUpdateUI(self, event): event.Check(self.isSettingChecked()) super(BooleanSettingsCommand, self).onUpdateUI(event) def addToMenu(self, menu, window, position=None): menuId = super(BooleanSettingsCommand, self).addToMenu(menu, window, position) menuItem = menu.FindItemById(menuId) menuItem.Check(self.isSettingChecked()) def isSettingChecked(self): raise NotImplementedError # pragma: no cover class UICheckCommand(BooleanSettingsCommand): def __init__(self, *args, **kwargs): kwargs['bitmap'] = kwargs.get('bitmap', self.getBitmap()) super(UICheckCommand, self).__init__(kind=wx.ITEM_CHECK, *args, **kwargs) def isSettingChecked(self): return self.settings.getboolean(self.section, self.setting) def _isMenuItemChecked(self, event): # There's a bug in wxPython 2.8.3 on Windows XP that causes # event.IsChecked() to return the wrong value in the context menu. # The menu on the main window works fine. So we first try to access the # context menu to get the checked state from the menu item itself. # This will fail if the event is coming from the window, but in that # case we can event.IsChecked() expect to work so we use that. try: return event.GetEventObject().FindItemById(event.GetId()).IsChecked() except AttributeError: return event.IsChecked() def doCommand(self, event): self.settings.setboolean(self.section, self.setting, self._isMenuItemChecked(event)) def getBitmap(self): # Using our own bitmap for checkable menu items does not work on # all platforms, most notably Gtk where providing our own bitmap causes # "(python:8569): Gtk-CRITICAL **: gtk_check_menu_item_set_active: # assertion `GTK_IS_CHECK_MENU_ITEM (check_menu_item)' failed" return 'nobitmap' class UIRadioCommand(BooleanSettingsCommand): def __init__(self, *args, **kwargs): super(UIRadioCommand, self).__init__(kind=wx.ITEM_RADIO, bitmap='', *args, **kwargs) def onUpdateUI(self, event): if self.isSettingChecked(): super(UIRadioCommand, self).onUpdateUI(event) def isSettingChecked(self): return self.settings.get(self.section, self.setting) == str(self.value) def doCommand(self, event): self.settings.setvalue(self.section, self.setting, self.value) taskcoach-1.4.3/taskcoachlib/gui/uicommand/uicommand.py000066400000000000000000003221431265347643000232130ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, meta, command, help, widgets, persistence, \ thirdparty, render, operating_system # pylint: disable=W0622 from taskcoachlib.domain import base, task, note, category, attachment, \ effort, date from taskcoachlib.gui import dialog, printer from taskcoachlib.gui.wizard import CSVImportWizard from taskcoachlib.i18n import _ from taskcoachlib.mailer import sendMail from taskcoachlib.thirdparty import hypertreelist from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.thirdparty.wxScheduler import wxSCHEDULER_NEXT, \ wxSCHEDULER_PREV, wxSCHEDULER_TODAY from taskcoachlib.tools import anonymize, openfile from taskcoachlib.workarounds import ExceptionAsUnicode import wx, re, operator import base_uicommand import mixin_uicommand import settings_uicommand class IOCommand(base_uicommand.UICommand): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.iocontroller = kwargs.pop('iocontroller', None) super(IOCommand, self).__init__(*args, **kwargs) class TaskListCommand(base_uicommand.UICommand): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.taskList = kwargs.pop('taskList', None) super(TaskListCommand, self).__init__(*args, **kwargs) class EffortListCommand(base_uicommand.UICommand): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.effortList = kwargs.pop('effortList', None) super(EffortListCommand, self).__init__(*args, **kwargs) class CategoriesCommand(base_uicommand.UICommand): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.categories = kwargs.pop('categories', None) super(CategoriesCommand, self).__init__(*args, **kwargs) class NotesCommand(base_uicommand.UICommand): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.notes = kwargs.pop('notes', None) super(NotesCommand, self).__init__(*args, **kwargs) class AttachmentsCommand(base_uicommand.UICommand): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.attachments = kwargs.pop('attachments', None) super(AttachmentsCommand, self).__init__(*args, **kwargs) class ViewerCommand(base_uicommand.UICommand): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.viewer = kwargs.pop('viewer', None) super(ViewerCommand, self).__init__(*args, **kwargs) def __eq__(self, other): return super(ViewerCommand, self).__eq__(other) and \ self.viewer.settingsSection() == other.viewer.settingsSection() # Commands: class FileOpen(IOCommand): def __init__(self, *args, **kwargs): super(FileOpen, self).__init__(menuText=_('&Open...\tCtrl+O'), helpText=help.fileOpen, bitmap='fileopen', id=wx.ID_OPEN, *args, **kwargs) def doCommand(self, event): self.iocontroller.open() class RecentFileOpen(IOCommand): def __init__(self, *args, **kwargs): self.__filename = kwargs.pop('filename') index = kwargs.pop('index') super(RecentFileOpen, self).__init__( \ menuText='%d %s' % (index, self.__filename), helpText=_('Open %s') % self.__filename, *args, **kwargs) def doCommand(self, event): self.iocontroller.open(self.__filename) class FileMerge(IOCommand): def __init__(self, *args, **kwargs): super(FileMerge, self).__init__(menuText=_('&Merge...'), helpText=_('Merge tasks from another file with the current file'), bitmap='merge', *args, **kwargs) def doCommand(self, event): self.iocontroller.merge() class FileClose(IOCommand): def __init__(self, *args, **kwargs): super(FileClose, self).__init__(menuText=_('&Close\tCtrl+W'), helpText=help.fileClose, bitmap='close', id=wx.ID_CLOSE, *args, **kwargs) def doCommand(self, event): self.mainWindow().closeEditors() self.iocontroller.close() class FileSave(IOCommand): def __init__(self, *args, **kwargs): super(FileSave, self).__init__(menuText=_('&Save\tCtrl+S'), helpText=help.fileSave, bitmap='save', id=wx.ID_SAVE, *args, **kwargs) def doCommand(self, event): self.iocontroller.save() def enabled(self, event): return self.iocontroller.needSave() class FileMergeDiskChanges(IOCommand): def __init__(self, *args, **kwargs): super(FileMergeDiskChanges, self).__init__(menuText=_('Merge &disk changes\tShift-Ctrl-M'), helpText=help.fileMergeDiskChanges, bitmap='mergedisk', *args, **kwargs) def doCommand(self, event): self.iocontroller.mergeDiskChanges() def enabled(self, event): return self.iocontroller.changedOnDisk() class FileSaveAs(IOCommand): def __init__(self, *args, **kwargs): super(FileSaveAs, self).__init__( \ menuText=_('S&ave as...\tShift+Ctrl+S'), helpText=help.fileSaveAs, bitmap='saveas', id=wx.ID_SAVEAS, *args, **kwargs) def doCommand(self, event): self.iocontroller.saveas() class FileSaveSelection(mixin_uicommand.NeedsSelectedTasksMixin, IOCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(FileSaveSelection, self).__init__( \ menuText=_('Sa&ve selected tasks to new taskfile...'), helpText=_('Save the selected tasks to a separate taskfile'), bitmap='saveselection', *args, **kwargs) def doCommand(self, event): self.iocontroller.saveselection(self.viewer.curselection()) class FileSaveSelectedTaskAsTemplate(mixin_uicommand.NeedsOneSelectedTaskMixin, IOCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(FileSaveSelectedTaskAsTemplate, self).__init__(\ menuText=_('Save selected task as &template'), helpText=_('Save the selected task as a task template'), bitmap='saveselection', *args, **kwargs) def doCommand(self, event): self.iocontroller.saveastemplate(self.viewer.curselection()[0]) class FileImportTemplate(IOCommand): def __init__(self, *args, **kwargs): super(FileImportTemplate, self).__init__(\ menuText=_('&Import template...'), helpText=_('Import a new template from a template file'), bitmap='fileopen', *args, **kwargs) def doCommand(self, event): self.iocontroller.importTemplate() class FileEditTemplates(settings_uicommand.SettingsCommand, base_uicommand.UICommand): def __init__(self, *args, **kwargs): super(FileEditTemplates, self).__init__(\ menuText=_('Edit templates...'), helpText=_('Edit existing templates'), *args, **kwargs) def doCommand(self, event): templateDialog = dialog.templates.TemplatesDialog(self.settings, self.mainWindow(), title=_('Edit templates')) templateDialog.Show() class FilePurgeDeletedItems(mixin_uicommand.NeedsDeletedItemsMixin, IOCommand): def __init__(self, *args, **kwargs): super(FilePurgeDeletedItems, self).__init__(\ menuText=_('&Purge deleted items'), helpText=_('Actually delete deleted tasks and notes ' '(see the SyncML chapter in Help)'), bitmap='delete', *args, **kwargs) def doCommand(self, event): if (wx.MessageBox(_('''Purging deleted items is undoable. If you're planning on enabling the SyncML feature again with the same server you used previously, these items will probably come back. Do you still want to purge?'''), _('Warning'), wx.YES_NO) == wx.YES): self.iocontroller.purgeDeletedItems() class PrintPageSetup(settings_uicommand.SettingsCommand, base_uicommand.UICommand): ''' Action for changing page settings. The page settings are saved in the application wide settings. ''' def __init__(self, *args, **kwargs): super(PrintPageSetup, self).__init__(\ menuText=_('&Page setup...\tShift+Ctrl+P'), helpText=help.printPageSetup, bitmap='pagesetup', id=wx.ID_PRINT_SETUP, *args, **kwargs) def doCommand(self, event): printerSettings = printer.PrinterSettings(self.settings) pageSetupDialog = wx.PageSetupDialog(self.mainWindow(), printerSettings.pageSetupData) result = pageSetupDialog.ShowModal() if result == wx.ID_OK: pageSetupData = pageSetupDialog.GetPageSetupData() printerSettings.updatePageSetupData(pageSetupData) pageSetupDialog.Destroy() class PrintPreview(ViewerCommand, settings_uicommand.SettingsCommand): ''' Action for previewing a print of the current viewer. ''' def __init__(self, *args, **kwargs): super(PrintPreview, self).__init__(\ menuText=_('&Print preview...'), helpText=_('Show a preview of what the print will look like'), bitmap='printpreview', id=wx.ID_PREVIEW, *args, **kwargs) def doCommand(self, event): printout, printout2 = printer.Printout(self.viewer, self.settings, twoPrintouts=True) printerSettings = printer.PrinterSettings(self.settings) preview = wx.PrintPreview(printout, printout2, printerSettings.printData) previewFrame = wx.PreviewFrame(preview, self.mainWindow(), _('Print preview'), size=(750, 700)) previewFrame.Initialize() previewFrame.Show() class Print(ViewerCommand, settings_uicommand.SettingsCommand): ''' Action for printing the contents of the current viewer. ''' def __init__(self, *args, **kwargs): super(Print, self).__init__(menuText=_('&Print...\tCtrl+P'), helpText=help.print_, bitmap='print', id=wx.ID_PRINT, *args, **kwargs) def doCommand(self, event): printerSettings = printer.PrinterSettings(self.settings) printDialogData = wx.PrintDialogData(printerSettings.printData) printDialogData.EnableSelection(True) wxPrinter = wx.Printer(printDialogData) if not wxPrinter.PrintDialog(self.mainWindow()): return printout = printer.Printout(self.viewer, self.settings, printSelectionOnly=wxPrinter.PrintDialogData.Selection) # If the user checks the selection radio button, the ToPage property # gets set to 1. Looks like a bug to me. The simple work-around is to # reset the ToPage property to the MaxPage value if necessary: if wxPrinter.PrintDialogData.Selection: wxPrinter.PrintDialogData.ToPage = wxPrinter.PrintDialogData.MaxPage wxPrinter.Print(self.mainWindow(), printout, prompt=False) class FileExportCommand(IOCommand, settings_uicommand.SettingsCommand): ''' Base class for export actions. ''' def doCommand(self, event): exportDialog = self.getExportDialogClass()(self.mainWindow(), settings=self.settings) # pylint: disable=E1101 if wx.ID_OK == exportDialog.ShowModal(): exportOptions = exportDialog.options() selectedViewer = exportOptions.pop('selectedViewer') # pylint: disable=W0142 self.exportFunction()(selectedViewer, **exportOptions) exportDialog.Destroy() @staticmethod def getExportDialogClass(): ''' Return the class to be used for the export dialog. ''' raise NotImplementedError def exportFunction(self): ''' Return a function that does the actual export. The function should take the selected viewer as the first parameter and possibly a number of keyword arguments for export options. ''' raise NotImplementedError # pragma: no cover class FileManageBackups(IOCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(FileManageBackups, self).__init__(\ menuText=_('Manage backups...'), helpText=_('Manage all task file backups'), *args, **kwargs) def doCommand(self, event): dlg = dialog.BackupManagerDialog(self.mainWindow(), self.settings, self.iocontroller.filename()) try: if dlg.ShowModal() == wx.ID_OK: self.iocontroller.open(dlg.restoredFilename()) finally: dlg.Destroy() class FileExportAsHTML(FileExportCommand): ''' Action for exporting the contents of a viewer to HTML. ''' def __init__(self, *args, **kwargs): super(FileExportAsHTML, self).__init__( \ menuText=_('Export as &HTML...'), helpText=_('Export items from a viewer in HTML format'), bitmap='exportashtml', *args, **kwargs) @staticmethod def getExportDialogClass(): return dialog.export.ExportAsHTMLDialog def exportFunction(self): return self.iocontroller.exportAsHTML class FileExportAsCSV(FileExportCommand): ''' Action for exporting the contents of a viewer to CSV. ''' def __init__(self, *args, **kwargs): super(FileExportAsCSV, self).__init__(menuText=_('Export as &CSV...'), helpText=_('Export items from a viewer in Comma Separated Values ' '(CSV) format'), bitmap='exportascsv', *args, **kwargs) @staticmethod def getExportDialogClass(): return dialog.export.ExportAsCSVDialog def exportFunction(self): return self.iocontroller.exportAsCSV class FileExportAsICalendar(FileExportCommand): ''' Action for exporting the contents of a viewer to iCalendar format. ''' def __init__(self, *args, **kwargs): super(FileExportAsICalendar, self).__init__( \ menuText=_('Export as &iCalendar...'), helpText=_('Export items from a viewer in iCalendar format'), bitmap='exportasvcal', *args, **kwargs) def exportFunction(self): return self.iocontroller.exportAsICalendar def enabled(self, event): return any(self.exportableViewer(viewer) for viewer in \ self.mainWindow().viewer) @staticmethod def getExportDialogClass(): return dialog.export.ExportAsICalendarDialog @staticmethod def exportableViewer(aViewer): ''' Return whether the viewer can be exported to iCalendar format. ''' return aViewer.isShowingTasks() or (aViewer.isShowingEffort() and \ not aViewer.isShowingAggregatedEffort()) class FileExportAsTodoTxt(FileExportCommand): ''' Action for exporting the contents of a viewer to Todo.txt format. ''' def __init__(self, *args, **kwargs): super(FileExportAsTodoTxt, self).__init__( \ menuText=_('Export as &Todo.txt...'), helpText=_('Export items from a viewer in Todo.txt format ' '(see todotxt.com)'), bitmap='exportascsv', *args, **kwargs) def exportFunction(self): return self.iocontroller.exportAsTodoTxt def enabled(self, event): return any(self.exportableViewer(viewer) for viewer in \ self.mainWindow().viewer) @staticmethod def getExportDialogClass(): return dialog.export.ExportAsTodoTxtDialog @staticmethod def exportableViewer(aViewer): ''' Return whether the viewer can be exported to Todo.txt format. ''' return aViewer.isShowingTasks() class FileImportCSV(IOCommand): ''' Action for importing data from a CSV file into the current task file. ''' def __init__(self, *args, **kwargs): super(FileImportCSV, self).__init__(menuText=_('&Import CSV...'), helpText=_('Import tasks from a Comma Separated Values (CSV) file'), bitmap='exportascsv', *args, **kwargs) def doCommand(self, event): while True: filename = wx.FileSelector(_('Import CSV'), wildcard='*.csv') if filename: if len(file(filename, 'rb').read()) == 0: wx.MessageBox(_('The selected file is empty. ' 'Please select a different file.'), _('Import CSV')) continue wizard = CSVImportWizard(filename, None, wx.ID_ANY, _('Import CSV')) if wizard.RunWizard(): self.iocontroller.importCSV(**wizard.GetOptions()) break else: break class FileImportTodoTxt(IOCommand): ''' Action for importing data from a Todo.txt file into the current task file. ''' def __init__(self, *args, **kwargs): super(FileImportTodoTxt, self).__init__( \ menuText=_('&Import Todo.txt...'), helpText=_('Import tasks from a Todo.txt (see todotxt.com) file'), bitmap='exportascsv', *args, **kwargs) def doCommand(self, event): filename = wx.FileSelector(_('Import Todo.txt'), wildcard='*.txt') if filename: self.iocontroller.importTodoTxt(filename) class FileSynchronize(IOCommand, settings_uicommand.SettingsCommand): ''' Action for synchronizing the current task file with a SyncML server. ''' def __init__(self, *args, **kwargs): super(FileSynchronize, self).__init__( \ menuText=_('S&yncML synchronization...'), helpText=_('Synchronize with a SyncML server'), bitmap='arrows_looped_icon', *args, **kwargs) def doCommand(self, event): self.iocontroller.synchronize() class FileQuit(base_uicommand.UICommand): ''' Action for quitting the application. ''' def __init__(self, *args, **kwargs): super(FileQuit, self).__init__(menuText=_('&Quit\tCtrl+Q'), helpText=help.fileQuit, bitmap='exit', id=wx.ID_EXIT, *args, **kwargs) def doCommand(self, event): self.mainWindow().Close(force=True) class EditUndo(base_uicommand.UICommand): ''' Action for undoing the previous user action. ''' def __init__(self, *args, **kwargs): super(EditUndo, self).__init__(menuText=self.getUndoMenuText(), helpText=help.editUndo, bitmap='undo', id=wx.ID_UNDO, *args, **kwargs) @staticmethod def getUndoMenuText(): ''' Return the menu text for the undo command, including a text describing the previous user action. ''' return '%s\tCtrl+Z' % patterns.CommandHistory().undostr(_('&Undo')) def doCommand(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): windowWithFocus.Undo() else: patterns.CommandHistory().undo() def onUpdateUI(self, event): self.updateMenuText(self.getUndoMenuText()) super(EditUndo, self).onUpdateUI(event) def enabled(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): return windowWithFocus.CanUndo() else: return patterns.CommandHistory().hasHistory() and \ super(EditUndo, self).enabled(event) class EditRedo(base_uicommand.UICommand): ''' Action for redoing the last undone user action. ''' def __init__(self, *args, **kwargs): super(EditRedo, self).__init__(menuText=self.getRedoMenuText(), helpText=help.editRedo, bitmap='redo', id=wx.ID_REDO, *args, **kwargs) @staticmethod def getRedoMenuText(): ''' Return the menu text for the redo command, including a text describing the next user action. ''' return '%s\tCtrl+Y' % patterns.CommandHistory().redostr(_('&Redo')) def doCommand(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): windowWithFocus.Redo() else: patterns.CommandHistory().redo() def onUpdateUI(self, event): self.updateMenuText(self.getRedoMenuText()) super(EditRedo, self).onUpdateUI(event) def enabled(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): return windowWithFocus.CanRedo() else: return patterns.CommandHistory().hasFuture() and \ super(EditRedo, self).enabled(event) class EditCut(mixin_uicommand.NeedsSelectionMixin, ViewerCommand): ''' Action for cutting the currently selected item(s) to the clipboard. ''' def __init__(self, *args, **kwargs): super(EditCut, self).__init__(menuText=_('Cu&t\tCtrl+X'), helpText=help.editCut, bitmap='cut', *args, **kwargs) def doCommand(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): windowWithFocus.Cut() else: cutCommand = self.viewer.cutItemCommand() cutCommand.do() def enabled(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): return windowWithFocus.CanCut() else: return super(EditCut, self).enabled(event) class EditCopy(mixin_uicommand.NeedsSelectionMixin, ViewerCommand): ''' Action for copying the currently selected item(s) to the clipboard. ''' def __init__(self, *args, **kwargs): super(EditCopy, self).__init__(menuText=_('&Copy\tCtrl+C'), helpText=help.editCopy, bitmap='copy', *args, **kwargs) def doCommand(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): windowWithFocus.Copy() else: copyCommand = command.CopyCommand(self.viewer.presentation(), self.viewer.curselection()) copyCommand.do() def enabled(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): return windowWithFocus.CanCopy() else: return super(EditCopy, self).enabled(event) class EditPaste(base_uicommand.UICommand): ''' Action for pasting the item(s) in the clipboard into the current taskfile. ''' def __init__(self, *args, **kwargs): super(EditPaste, self).__init__(menuText=_('&Paste\tCtrl+V'), helpText=help.editPaste, bitmap='paste', id=wx.ID_PASTE, *args, **kwargs) def doCommand(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): windowWithFocus.Paste() else: pasteCommand = command.PasteCommand() pasteCommand.do() def enabled(self, event): windowWithFocus = wx.Window.FindFocus() if isinstance(windowWithFocus, wx.TextCtrl): return windowWithFocus.CanPaste() else: return command.Clipboard() and super(EditPaste, self).enabled(event) class EditPasteAsSubItem(mixin_uicommand.NeedsSelectedCompositeMixin, ViewerCommand): ''' Action for pasting the item(s) in the clipboard into the current taskfile, as a subitem of the currently selected item. ''' def __init__(self, *args, **kwargs): super(EditPasteAsSubItem, self).__init__( menuText=_('P&aste as subitem\tShift+Ctrl+V'), helpText=help.editPasteAsSubitem, bitmap='pasteintotask', *args, **kwargs) def doCommand(self, event): pasteCommand = command.PasteAsSubItemCommand( items=self.viewer.curselection()) pasteCommand.do() def enabled(self, event): if not (super(EditPasteAsSubItem, self).enabled(event) and \ command.Clipboard()): return False targetClass = self.viewer.curselection()[0].__class__ pastedClasses = [item.__class__ for item in command.Clipboard().peek()] return self.__targetAndPastedAreEqual(targetClass, pastedClasses) or \ self.__targetIsTaskAndPastedIsEffort(targetClass, pastedClasses) @classmethod def __targetIsTaskAndPastedIsEffort(cls, targetClass, pastedClasses): ''' Return whether the target class is a task and the pasted classes are all effort. ''' if targetClass != task.Task: return False return cls.__targetAndPastedAreEqual(effort.Effort, pastedClasses) @staticmethod def __targetAndPastedAreEqual(targetClass, pastedClasses): ''' Return whether the targetClass and pastedClasses are all equal. ''' for pastedClass in pastedClasses: if pastedClass != targetClass: return False return True class EditPreferences(settings_uicommand.SettingsCommand): ''' Action for bringing up the preferences dialog. ''' def __init__(self, *args, **kwargs): super(EditPreferences, self).__init__( \ menuText=_('&Preferences...\tAlt+P'), helpText=help.editPreferences, bitmap='wrench_icon', id=wx.ID_PREFERENCES, *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 editor = dialog.preferences.Preferences(parent=self.mainWindow(), title=_('Preferences'), settings=self.settings) editor.Show(show=show) class EditSyncPreferences(IOCommand): ''' Action for bringing up the synchronization preferences dialog. ''' def __init__(self, *args, **kwargs): super(EditSyncPreferences, self).__init__( \ menuText=_('&SyncML preferences...'), helpText=_('Edit SyncML preferences'), bitmap='arrows_looped_icon', *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 editor = dialog.syncpreferences.SyncMLPreferences( \ parent=self.mainWindow(), iocontroller=self.iocontroller, title=_('SyncML preferences')) editor.Show(show=show) class EditToolBarPerspective(settings_uicommand.SettingsCommand): ''' Action for editing a customizable toolbar ''' def __init__(self, toolbar, editorClass, *args, **kwargs): self.__toolbar = toolbar self.__editorClass = editorClass super(EditToolBarPerspective, self).__init__( \ helpText=_('Customize toolbar'), bitmap='cogwheel_icon', menuText=_('Customize'), *args, **kwargs) def doCommand(self, event): self.__editorClass(self.__toolbar, self.settings, self.mainWindow(), _('Customize toolbar')).ShowModal() class SelectAll(mixin_uicommand.NeedsItemsMixin, ViewerCommand): ''' Action for selecting all items in a viewer. ''' def __init__(self, *args, **kwargs): super(SelectAll, self).__init__(menuText=_('&All\tCtrl+A'), helpText=help.editSelectAll, bitmap='selectall', id=wx.ID_SELECTALL, *args, **kwargs) def doCommand(self, event): windowWithFocus = wx.Window.FindFocus() if self.windowIsTextCtrl(windowWithFocus): windowWithFocus.SetSelection(-1, -1) # Select all text else: self.viewer.select_all() @staticmethod def windowIsTextCtrl(window): ''' Return whether the window is a text control. ''' return isinstance(window, wx.TextCtrl) or \ isinstance(window, hypertreelist.EditCtrl) class ClearSelection(mixin_uicommand.NeedsSelectionMixin, ViewerCommand): ''' Action for unselecting all items in a viewer. ''' def __init__(self, *args, **kwargs): super(ClearSelection, self).__init__(menuText=_('&Clear selection'), helpText=_('Unselect all items'), *args, **kwargs) def doCommand(self, event): self.viewer.clear_selection() class ResetFilter(ViewerCommand): ''' Action for resetting all filters so that all items in all viewers become visible. ''' def __init__(self, *args, **kwargs): super(ResetFilter, self).__init__( \ menuText=_('&Clear all filters\tShift-Ctrl-R'), helpText=help.resetFilter, bitmap='viewalltasks', *args, **kwargs) def doCommand(self, event): self.viewer.resetFilter() def enabled(self, event): return self.viewer.hasFilter() class ResetCategoryFilter(mixin_uicommand.NeedsAtLeastOneCategoryMixin, CategoriesCommand): ''' Action for resetting all category filters so that items are no longer hidden if the don't belong to a certain category. ''' def __init__(self, *args, **kwargs): super(ResetCategoryFilter, self).__init__( \ menuText=_('&Reset all categories\tCtrl-R'), helpText=help.resetCategoryFilter, *args, **kwargs) def doCommand(self, event): self.categories.resetAllFilteredCategories() class ToggleCategoryFilter(base_uicommand.UICommand): ''' Action for toggling filtering on a specific category. ''' def __init__(self, *args, **kwargs): self.category = kwargs.pop('category') subject = self.category.subject() # Would like to use wx.ITEM_RADIO for mutually exclusive categories, but # a menu with radio items always has to have at least of the items # checked, while we allow none of the mutually exclusive categories to # be checked. Dynamically changing between wx.ITEM_CHECK and # wx.ITEM_RADIO would be a work-around in theory, using wx.ITEM_CHECK # when none of the mutually exclusive categories is checked and # wx.ITEM_RADIO otherwise, but dynamically changing the type of menu # items isn't possible. Hence, we use wx.ITEM_CHECK, even for mutual # exclusive categories. kind = wx.ITEM_CHECK super(ToggleCategoryFilter, self).__init__( \ menuText='&' + subject.replace('&', '&&'), helpText=_('Show/hide items belonging to %s') % subject, kind=kind, *args, **kwargs) def doCommand(self, event): self.category.setFiltered(event.IsChecked()) class ViewViewer(settings_uicommand.SettingsCommand, ViewerCommand): ''' Action for opening a new viewer of a specific class. ''' def __init__(self, *args, **kwargs): self.taskFile = kwargs.pop('taskFile') self.viewerClass = kwargs.pop('viewerClass') kwargs.setdefault('bitmap', self.viewerClass.defaultBitmap) super(ViewViewer, self).__init__(*args, **kwargs) def doCommand(self, event): from taskcoachlib.gui import viewer viewer.addOneViewer(self.viewer, self.taskFile, self.settings, self.viewerClass) self.increaseViewerCount() def increaseViewerCount(self): ''' Increase the viewer count for the viewer class this command is opening and store the viewer count in the settings. ''' setting = self.viewerClass.__name__.lower() + 'count' viewerCount = self.settings.getint('view', setting) self.settings.set('view', setting, str(viewerCount + 1)) class ViewEffortViewerForSelectedTask(settings_uicommand.SettingsCommand, ViewerCommand): def __init__(self, *args, **kwargs): from taskcoachlib.gui import viewer self.viewerClass = viewer.EffortViewerForSelectedTasks self.taskFile = kwargs.pop('taskFile') kwargs['bitmap'] = viewer.EffortViewer.defaultBitmap super(ViewEffortViewerForSelectedTask, self).__init__(*args, **kwargs) def doCommand(self, event): from taskcoachlib.gui import viewer viewer.addOneViewer(self.viewer, self.taskFile, self.settings, self.viewerClass) class RenameViewer(ViewerCommand): def __init__(self, *args, **kwargs): super(RenameViewer, self).__init__(menuText=_('&Rename viewer...'), helpText=_('Rename the selected viewer'), *args, **kwargs) def doCommand(self, event): activeViewer = self.viewer.activeViewer() viewerNameDialog = wx.TextEntryDialog(self.mainWindow(), _('New title for the viewer:'), _('Rename viewer'), activeViewer.title()) if viewerNameDialog.ShowModal() == wx.ID_OK: activeViewer.setTitle(viewerNameDialog.GetValue()) viewerNameDialog.Destroy() def enabled(self, event): return bool(self.viewer.activeViewer()) class ActivateViewer(ViewerCommand): def __init__(self, *args, **kwargs): self.direction = kwargs.pop('forward') super(ActivateViewer, self).__init__(*args, **kwargs) def doCommand(self, event): self.viewer.containerWidget.advanceSelection(self.direction) def enabled(self, event): return self.viewer.containerWidget.viewerCount() > 1 class HideCurrentColumn(ViewerCommand): def __init__(self, *args, **kwargs): super(HideCurrentColumn, self).__init__(menuText=_('&Hide this column'), helpText=_('Hide the selected column'), *args, **kwargs) def doCommand(self, event): columnPopupMenu = event.GetEventObject() self.viewer.hideColumn(columnPopupMenu.columnIndex) def enabled(self, event): # Unfortunately the event (an UpdateUIEvent) does not give us any # information to determine the current column, so we have to find # the column ourselves. We use the current mouse position to do so. widget = self.viewer.getWidget() # Must use method to make sure viewer dispatch works! x, y = widget.ScreenToClient(wx.GetMousePosition()) # Use wx.Point because CustomTreeCtrl assumes a wx.Point instance: columnIndex = widget.HitTest(wx.Point(x, y))[2] # The TreeListCtrl returns -1 for the first column sometimes, # don't understand why. Work around as follows: if columnIndex == -1: columnIndex = 0 return self.viewer.isHideableColumn(columnIndex) class ViewColumn(ViewerCommand, settings_uicommand.UICheckCommand): def isSettingChecked(self): return self.viewer.isVisibleColumnByName(self.setting) def doCommand(self, event): self.viewer.showColumnByName(self.setting, self._isMenuItemChecked(event)) class ViewColumns(ViewerCommand, settings_uicommand.UICheckCommand): def isSettingChecked(self): for columnName in self.setting: if not self.viewer.isVisibleColumnByName(columnName): return False return True def doCommand(self, event): show = self._isMenuItemChecked(event) for columnName in self.setting: self.viewer.showColumnByName(columnName, show) class ViewExpandAll(mixin_uicommand.NeedsTreeViewerMixin, ViewerCommand): def __init__(self, *args, **kwargs): super(ViewExpandAll, self).__init__( \ menuText=_('&Expand all items\tShift+Ctrl+E'), helpText=help.viewExpandAll, *args, **kwargs) def enabled(self, event): return super(ViewExpandAll, self).enabled(event) and \ self.viewer.isAnyItemExpandable() def doCommand(self, event): self.viewer.expandAll() class ViewCollapseAll(mixin_uicommand.NeedsTreeViewerMixin, ViewerCommand): def __init__(self, *args, **kwargs): super(ViewCollapseAll, self).__init__( \ menuText=_('&Collapse all items\tShift+Ctrl+C'), helpText=help.viewCollapseAll, *args, **kwargs) def enabled(self, event): return super(ViewCollapseAll, self).enabled(event) and \ self.viewer.isAnyItemCollapsable() def doCommand(self, event): self.viewer.collapseAll() class ViewerSortByCommand(ViewerCommand, settings_uicommand.UIRadioCommand): def isSettingChecked(self): return self.viewer.isSortedBy(self.value) def doCommand(self, event): self.viewer.sortBy(self.value) class ViewerSortOrderCommand(ViewerCommand, settings_uicommand.UICheckCommand): def __init__(self, *args, **kwargs): super(ViewerSortOrderCommand, self).__init__(menuText=_('&Ascending'), helpText=_('Sort ascending (checked) or descending (unchecked)'), *args, **kwargs) def isSettingChecked(self): return self.viewer.isSortOrderAscending() def doCommand(self, event): self.viewer.setSortOrderAscending(self._isMenuItemChecked(event)) class ViewerSortCaseSensitive(ViewerCommand, settings_uicommand.UICheckCommand): def __init__(self, *args, **kwargs): super(ViewerSortCaseSensitive, self).__init__(\ menuText=_('Sort &case sensitive'), helpText=_('When comparing text, sorting is case sensitive ' '(checked) or insensitive (unchecked)'), *args, **kwargs) def isSettingChecked(self): return self.viewer.isSortCaseSensitive() def doCommand(self, event): self.viewer.setSortCaseSensitive(self._isMenuItemChecked(event)) class ViewerSortByTaskStatusFirst(ViewerCommand, settings_uicommand.UICheckCommand): def __init__(self, *args, **kwargs): super(ViewerSortByTaskStatusFirst, self).__init__(\ menuText=_('Sort by status &first'), helpText=_('Sort tasks by status (active/inactive/completed) ' 'first'), *args, **kwargs) def isSettingChecked(self): return self.viewer.isSortByTaskStatusFirst() def doCommand(self, event): self.viewer.setSortByTaskStatusFirst(self._isMenuItemChecked(event)) class ViewerHideTasks(ViewerCommand, settings_uicommand.UICheckCommand): def __init__(self, taskStatus, *args, **kwargs): self.__taskStatus = taskStatus super(ViewerHideTasks, self).__init__(menuText=taskStatus.hideMenuText, helpText=taskStatus.hideHelpText, bitmap=taskStatus.getHideBitmap(kwargs['settings']), *args, **kwargs) def uniqueName(self): return super(ViewerHideTasks, self).uniqueName() + '_' + unicode(self.__taskStatus) def isSettingChecked(self): return self.viewer.isHidingTaskStatus(self.__taskStatus) def doCommand(self, event): if wx.GetKeyState(wx.WXK_SHIFT): self.viewer.showOnlyTaskStatus(self.__taskStatus) else: self.viewer.hideTaskStatus(self.__taskStatus, self._isMenuItemChecked(event)) class ViewerHideCompositeTasks(ViewerCommand, settings_uicommand.UICheckCommand): def __init__(self, *args, **kwargs): super(ViewerHideCompositeTasks, self).__init__( \ menuText=_('Hide c&omposite tasks'), helpText=_('Show/hide tasks with subtasks in list mode'), *args, **kwargs) def isSettingChecked(self): return self.viewer.isHidingCompositeTasks() def doCommand(self, event): self.viewer.hideCompositeTasks(self._isMenuItemChecked(event)) def enabled(self, event): return not self.viewer.isTreeViewer() class Edit(mixin_uicommand.NeedsSelectionMixin, ViewerCommand): def __init__(self, *args, **kwargs): super(Edit, self).__init__(menuText=_('&Edit...\tRETURN'), helpText=_('Edit the selected item(s)'), bitmap='edit', *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 windowWithFocus = wx.Window.FindFocus() editCtrl = self.findEditCtrl(windowWithFocus) if editCtrl: editCtrl.AcceptChanges() if editCtrl: editCtrl.Finish() return try: columnName = event.columnName except AttributeError: columnName = '' editor = self.viewer.editItemDialog(self.viewer.curselection(), self.bitmap, columnName) editor.Show(show) def enabled(self, event): windowWithFocus = wx.Window.FindFocus() if self.findEditCtrl(windowWithFocus): return True elif operating_system.isMac() and isinstance(windowWithFocus, wx.TextCtrl): return False else: return super(Edit, self).enabled(event) def findEditCtrl(self, windowWithFocus): while windowWithFocus: if isinstance(windowWithFocus, thirdparty.hypertreelist.EditCtrl): break windowWithFocus = windowWithFocus.GetParent() return windowWithFocus class EditTrackedTasks(TaskListCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(EditTrackedTasks, self).__init__( \ menuText=_('Edit &tracked task...\tShift-Alt-T'), helpText=_('Edit the currently tracked task(s)'), bitmap='edit', *args, **kwargs) def doCommand(self, event, show=True): editTaskDialog = dialog.editor.TaskEditor(self.mainWindow(), self.taskList.tasksBeingTracked(), self.settings, self.taskList, self.mainWindow().taskFile, bitmap=self.bitmap) editTaskDialog.Show(show) return editTaskDialog # for testing purposes def enabled(self, event): return any(self.taskList.tasksBeingTracked()) class Delete(mixin_uicommand.NeedsSelectionMixin, ViewerCommand): def __init__(self, *args, **kwargs): super(Delete, self).__init__(menuText=_('&Delete\tCtrl+DEL'), helpText=_('Delete the selected item(s)'), bitmap='delete', *args, **kwargs) def doCommand(self, event): windowWithFocus = wx.Window.FindFocus() if self.windowIsTextCtrl(windowWithFocus): # Simulate Delete key press fromIndex, toIndex = windowWithFocus.GetSelection() if fromIndex == toIndex: pos = windowWithFocus.GetInsertionPoint() fromIndex, toIndex = pos, pos + 1 windowWithFocus.Remove(fromIndex, toIndex) else: deleteCommand = self.viewer.deleteItemCommand() deleteCommand.do() def enabled(self, event): windowWithFocus = wx.Window.FindFocus() if self.windowIsTextCtrl(windowWithFocus): return True else: return super(Delete, self).enabled(event) @staticmethod def windowIsTextCtrl(window): return isinstance(window, wx.TextCtrl) or \ isinstance(window, hypertreelist.EditCtrl) class TaskNew(TaskListCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): self.taskKeywords = kwargs.pop('taskKeywords', dict()) taskList = kwargs['taskList'] if 'menuText' not in kwargs: # Provide for subclassing kwargs['menuText'] = taskList.newItemMenuText kwargs['helpText'] = taskList.newItemHelpText super(TaskNew, self).__init__(bitmap='new', *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 kwargs = self.taskKeywords.copy() if self.__shouldPresetPlannedStartDateTime(): kwargs['plannedStartDateTime'] = task.Task.suggestedPlannedStartDateTime() if self.__shouldPresetDueDateTime(): kwargs['dueDateTime'] = task.Task.suggestedDueDateTime() if self.__shouldPresetActualStartDateTime(): kwargs['actualStartDateTime'] = task.Task.suggestedActualStartDateTime() if self.__shouldPresetCompletionDateTime(): kwargs['completionDateTime'] = task.Task.suggestedCompletionDateTime() if self.__shouldPresetReminderDateTime(): kwargs['reminder'] = task.Task.suggestedReminderDateTime() newTaskCommand = command.NewTaskCommand(self.taskList, categories=self.categoriesForTheNewTask(), prerequisites=self.prerequisitesForTheNewTask(), dependencies=self.dependenciesForTheNewTask(), **kwargs) newTaskCommand.do() newTaskDialog = dialog.editor.TaskEditor(self.mainWindow(), newTaskCommand.items, self.settings, self.taskList, self.mainWindow().taskFile, bitmap=self.bitmap, items_are_new=True) newTaskDialog.Show(show) return newTaskDialog # for testing purposes def categoriesForTheNewTask(self): return self.mainWindow().taskFile.categories().filteredCategories() def prerequisitesForTheNewTask(self): return [] def dependenciesForTheNewTask(self): return [] def __shouldPresetPlannedStartDateTime(self): return 'plannedStartDateTime' not in self.taskKeywords and \ self.settings.get('view', 'defaultplannedstartdatetime').startswith('preset') def __shouldPresetDueDateTime(self): return 'dueDateTime' not in self.taskKeywords and \ self.settings.get('view', 'defaultduedatetime').startswith('preset') def __shouldPresetActualStartDateTime(self): return 'actualStartDateTime' not in self.taskKeywords and \ self.settings.get('view', 'defaultactualstartdatetime').startswith('preset') def __shouldPresetCompletionDateTime(self): return 'completionDateTime' not in self.taskKeywords and \ self.settings.get('view', 'defaultcompletiondatetime').startswith('preset') def __shouldPresetReminderDateTime(self): return 'reminder' not in self.taskKeywords and \ self.settings.get('view', 'defaultreminderdatetime').startswith('preset') class TaskNewFromTemplate(TaskNew): def __init__(self, filename, *args, **kwargs): super(TaskNewFromTemplate, self).__init__(*args, **kwargs) self.__filename = filename templateTask = self.__readTemplate() self.menuText = '&' + templateTask.subject().replace('&', '&&') # pylint: disable=E1103 def __readTemplate(self): return persistence.TemplateXMLReader(file(self.__filename, 'rU')).read() def doCommand(self, event, show=True): # pylint: disable=W0221 # The task template is read every time because it's the # TemplateXMLReader that evaluates dynamic values (Now() # should be evaluated at task creation for instance). templateTask = self.__readTemplate() kwargs = templateTask.__getcopystate__() # pylint: disable=E1103 kwargs['categories'] = self.categoriesForTheNewTask() newTaskCommand = command.NewTaskCommand(self.taskList, **kwargs) newTaskCommand.do() # pylint: disable=W0142 newTaskDialog = dialog.editor.TaskEditor(self.mainWindow(), newTaskCommand.items, self.settings, self.taskList, self.mainWindow().taskFile, bitmap=self.bitmap, items_are_new=True) newTaskDialog.Show(show) return newTaskDialog # for testing purposes class TaskNewFromTemplateButton(mixin_uicommand.PopupButtonMixin, TaskListCommand, settings_uicommand.SettingsCommand): def createPopupMenu(self): from taskcoachlib.gui import menu return menu.TaskTemplateMenu(self.mainWindow(), self.taskList, self.settings) def getMenuText(self): return _('New task from &template') def getHelpText(self): return _('Create a new task from a template') class NewTaskWithSelectedCategories(TaskNew, ViewerCommand): def __init__(self, *args, **kwargs): super(NewTaskWithSelectedCategories, self).__init__(\ menuText=_('New task with selected &categories...'), helpText=_('Insert a new task with the selected categories checked'), *args, **kwargs) def categoriesForTheNewTask(self): return self.viewer.curselection() class NewTaskWithSelectedTasksAsPrerequisites( \ mixin_uicommand.NeedsSelectedTasksMixin, TaskNew, ViewerCommand): def __init__(self, *args, **kwargs): super(NewTaskWithSelectedTasksAsPrerequisites, self).__init__( menuText=_('New task with selected tasks as &prerequisites...'), helpText=_('Insert a new task with the selected tasks as prerequisite tasks'), *args, **kwargs) def prerequisitesForTheNewTask(self): return self.viewer.curselection() class NewTaskWithSelectedTasksAsDependencies( \ mixin_uicommand.NeedsSelectedTasksMixin, TaskNew, ViewerCommand): def __init__(self, *args, **kwargs): super(NewTaskWithSelectedTasksAsDependencies, self).__init__( menuText=_('New task with selected tasks as &dependents...'), helpText=_('Insert a new task with the selected tasks as dependent tasks'), *args, **kwargs) def dependenciesForTheNewTask(self): return self.viewer.curselection() class NewSubItem(mixin_uicommand.NeedsOneSelectedCompositeItemMixin, ViewerCommand): shortcut = ('\tCtrl+INS' if operating_system.isWindows() else '\tShift+Ctrl+N') defaultMenuText = _('New &subitem...') + shortcut labels = {task.Task: _('New &subtask...'), note.Note: _('New &subnote...'), category.Category: _('New &subcategory...')} def __init__(self, *args, **kwargs): super(NewSubItem, self).__init__(menuText=self.defaultMenuText, helpText=_('Insert a new subitem of the selected item'), bitmap='newsub', *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 self.viewer.newSubItemDialog(bitmap=self.bitmap).Show(show) def onUpdateUI(self, event): super(NewSubItem, self).onUpdateUI(event) self.updateMenuText(self.__menuText()) def __menuText(self): for class_ in self.labels: if self.viewer.curselectionIsInstanceOf(class_): return self.labels[class_] + self.shortcut return self.defaultMenuText class TaskMarkActive(mixin_uicommand.NeedsSelectedTasksMixin, settings_uicommand.SettingsCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(TaskMarkActive, self).__init__(bitmap=task.active.getBitmap(kwargs['settings']), menuText=_('Mark task &active\tAlt+RETURN'), helpText=_('Mark the selected task(s) active'), *args, **kwargs) def doCommand(self, event): command.MarkActiveCommand(self.viewer.presentation(), self.viewer.curselection()).do() def enabled(self, event): def canBeMarkedActive(aTask): return aTask.actualStartDateTime() > date.Now() or aTask.completed() return super(TaskMarkActive, self).enabled(event) and \ any([canBeMarkedActive(task) for task in self.viewer.curselection()]) class TaskMarkInactive(mixin_uicommand.NeedsSelectedTasksMixin, settings_uicommand.SettingsCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(TaskMarkInactive, self).__init__(bitmap=task.inactive.getBitmap(kwargs['settings']), menuText=_('Mark task &inactive\tCtrl+Alt+RETURN'), helpText=_('Mark the selected task(s) inactive'), *args, **kwargs) def doCommand(self, event): command.MarkInactiveCommand(self.viewer.presentation(), self.viewer.curselection()).do() def enabled(self, event): def canBeMarkedInactive(aTask): return not aTask.inactive() and not aTask.late() return super(TaskMarkInactive, self).enabled(event) and \ any([canBeMarkedInactive(task) for task in self.viewer.curselection()]) class TaskMarkCompleted(mixin_uicommand.NeedsSelectedTasksMixin, settings_uicommand.SettingsCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(TaskMarkCompleted, self).__init__(bitmap=task.completed.getBitmap(kwargs['settings']), menuText=_('Mark task &completed\tCtrl+RETURN'), helpText=_('Mark the selected task(s) completed'), *args, **kwargs) def doCommand(self, event): markCompletedCommand = command.MarkCompletedCommand( \ self.viewer.presentation(), self.viewer.curselection()) markCompletedCommand.do() def enabled(self, event): def canBeMarkedCompleted(task): return not task.completed() return super(TaskMarkCompleted, self).enabled(event) and \ any([canBeMarkedCompleted(task) for task in self.viewer.curselection()]) class TaskMaxPriority(mixin_uicommand.NeedsSelectedTasksMixin, TaskListCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(TaskMaxPriority, self).__init__( menuText=_('&Maximize priority\tShift+Ctrl+I'), helpText=help.taskMaxPriority, bitmap='maxpriority', *args, **kwargs) def doCommand(self, event): maxPriority = command.MaxPriorityCommand(self.taskList, self.viewer.curselection()) maxPriority.do() class TaskMinPriority(mixin_uicommand.NeedsSelectedTasksMixin, TaskListCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(TaskMinPriority, self).__init__( menuText=_('&Minimize priority\tShift+Ctrl+D'), helpText=help.taskMinPriority, bitmap='minpriority', *args, **kwargs) def doCommand(self, event): minPriority = command.MinPriorityCommand(self.taskList, self.viewer.curselection()) minPriority.do() class TaskIncPriority(mixin_uicommand.NeedsSelectedTasksMixin, TaskListCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(TaskIncPriority, self).__init__( menuText=_('&Increase priority\tCtrl+I'), helpText=help.taskIncreasePriority, bitmap='incpriority', *args, **kwargs) def doCommand(self, event): incPriority = command.IncPriorityCommand(self.taskList, self.viewer.curselection()) incPriority.do() class TaskDecPriority(mixin_uicommand.NeedsSelectedTasksMixin, TaskListCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(TaskDecPriority, self).__init__( menuText=_('&Decrease priority\tCtrl+D'), helpText=help.taskDecreasePriority, bitmap='decpriority', *args, **kwargs) def doCommand(self, event): decPriority = command.DecPriorityCommand(self.taskList, self.viewer.curselection()) decPriority.do() class DragAndDropCommand(ViewerCommand): def onCommandActivate(self, dropItem, dragItems, part, column): # pylint: disable=W0221 ''' Override onCommandActivate to be able to accept two items instead of one event. ''' self.doCommand(dropItem, dragItems, part, None if column == -1 else self.viewer.visibleColumns()[column]) def doCommand(self, dropItem, dragItems, part, column): # pylint: disable=W0221 dragAndDropCommand = self.createCommand(dropItem=dropItem, dragItems=dragItems, part=part, column=column, isTree=self.viewer.isTreeViewer()) if dragAndDropCommand.canDo(): dragAndDropCommand.do() return dragAndDropCommand def createCommand(self, dropItem, dragItems, part, isTree): raise NotImplementedError # pragma: no cover class OrderingDragAndDropCommand(DragAndDropCommand): def doCommand(self, dropItem, dragItems, part, column): command = super(OrderingDragAndDropCommand, self).doCommand(dropItem, dragItems, part, column) if command is not None and command.isOrdering(): sortCommand = ViewerSortByCommand(viewer=self.viewer, value='ordering') sortCommand.doCommand(None) class TaskDragAndDrop(OrderingDragAndDropCommand, TaskListCommand): def createCommand(self, dropItem, dragItems, part, column, isTree): return command.DragAndDropTaskCommand(self.taskList, dragItems, drop=[dropItem], part=part, column=column, isTree=isTree) class ToggleCategory(mixin_uicommand.NeedsSelectedCategorizableMixin, ViewerCommand): def __init__(self, *args, **kwargs): self.category = kwargs.pop('category') subject = self.category.subject() # Would like to use wx.ITEM_RADIO for mutually exclusive categories, but # a menu with radio items always has to have at least of the items # checked, while we allow none of the mutually exclusive categories to # be checked. Dynamically changing between wx.ITEM_CHECK and # wx.ITEM_RADIO would be a work-around in theory, using wx.ITEM_CHECK # when none of the mutually exclusive categories is checked and # wx.ITEM_RADIO otherwise, but dynamically changing the type of menu # items isn't possible. Hence, we use wx.ITEM_CHECK, even for mutual # exclusive categories. kind = wx.ITEM_CHECK super(ToggleCategory, self).__init__(menuText='&' + subject.replace('&', '&&'), helpText=_('Toggle %s') % subject, kind=kind, *args, **kwargs) def doCommand(self, event): check = command.ToggleCategoryCommand(category=self.category, items=self.viewer.curselection()) check.do() def onUpdateUI(self, event): super(ToggleCategory, self).onUpdateUI(event) if self.enabled(event): check = self.__all_selected_items_are_in_category() for menuItem in self.menuItems: menuItem.Check(check) def __all_selected_items_are_in_category(self): selected_items_in_category = [item for item in self.viewer.curselection() \ if self.category in item.categories()] return selected_items_in_category == self.viewer.curselection() def enabled(self, event): viewerHasSelection = super(ToggleCategory, self).enabled(event) if not viewerHasSelection or self.viewer.isShowingCategories(): return False mutual_exclusive_ancestors = [ancestor for ancestor in self.category.ancestors() \ if ancestor.isMutualExclusive()] for categorizable in self.viewer.curselection(): for ancestor in mutual_exclusive_ancestors: if ancestor not in categorizable.categories(): return False # Not all mutually exclusive ancestors are checked return True # All mutually exclusive ancestors are checked class Mail(mixin_uicommand.NeedsSelectionMixin, ViewerCommand): rx_attr = re.compile(r'(cc|to)=(.*)') def __init__(self, *args, **kwargs): menuText = _('&Mail...\tShift-Ctrl-M') if operating_system.isMac() else _('&Mail...\tCtrl-M') super(Mail, self).__init__(menuText=menuText, helpText=help.mailItem, bitmap='envelope_icon', *args, **kwargs) def doCommand(self, event, mail=sendMail, showerror=wx.MessageBox): # pylint: disable=W0221 items = self.viewer.curselection() subject = self.subject(items) body = self.body(items) to = self.to(items) cc = self.cc(items) self.mail(to, cc, subject, body, mail, showerror) def subject(self, items): assert items if len(items) > 2: return _('Several things') elif len(items) == 2: subjects = [item.subject(recursive=True) for item in items] return ' '.join([subjects[0], _('and'), subjects[1]]) else: return items[0].subject(recursive=True) def body(self, items): if len(items) > 1: bodyLines = [] for item in items: bodyLines.extend(self.itemToLines(item)) else: bodyLines = items[0].description().splitlines() return '\r\n'.join(bodyLines) def to(self, items): return self._mailAttr('to', items) def cc(self, items): return self._mailAttr('cc', items) def _mailAttr(self, name, items): sets = [] for item in items: sets.append(set([value[len(name)+1:] for value in item.customAttributes('mailto') if value.startswith('%s=' % name)])) return reduce(operator.or_, sets) def itemToLines(self, item): lines = [] subject = item.subject(recursive=True) lines.append(subject) if item.description(): lines.extend(item.description().splitlines()) lines.extend('\r\n') return lines def mail(self, to, cc, subject, body, mail, showerror): try: mail(to, subject, body, cc=cc) except: # Try again with a dummy recipient: try: mail('recipient@domain.com', subject, body) except Exception, reason: # pylint: disable=W0703 showerror(_('Cannot send email:\n%s') % ExceptionAsUnicode(reason), caption=_('%s mail error') % meta.name, style=wx.ICON_ERROR) class AddNote(mixin_uicommand.NeedsSelectedNoteOwnersMixin, ViewerCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(AddNote, self).__init__(menuText=_('Add ¬e...\tCtrl+B'), helpText=help.addNote, bitmap='note_icon', *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 addNoteCommand = command.AddNoteCommand(self.viewer.presentation(), self.viewer.curselection()) addNoteCommand.do() editDialog = dialog.editor.NoteEditor(self.mainWindow(), addNoteCommand.items, self.settings, self.viewer.presentation(), self.mainWindow().taskFile, bitmap=self.bitmap) editDialog.Show(show) return editDialog # for testing purposes class OpenAllNotes(mixin_uicommand.NeedsSelectedNoteOwnersMixinWithNotes, ViewerCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(OpenAllNotes, self).__init__(menuText=_('Open all notes...\tShift+Ctrl+B'), helpText=help.openAllNotes, bitmap='edit', *args, **kwargs) def doCommand(self, event): for item in self.viewer.curselection(): for note in item.notes(): editDialog = dialog.editor.NoteEditor(self.mainWindow(), [note], self.settings, self.viewer.presentation(), self.mainWindow().taskFile, bitmap=self.bitmap) editDialog.Show() class EffortNew(mixin_uicommand.NeedsAtLeastOneTaskMixin, ViewerCommand, EffortListCommand, TaskListCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): effortList = kwargs['effortList'] super(EffortNew, self).__init__(bitmap='new', menuText=effortList.newItemMenuText, helpText=effortList.newItemHelpText, *args, **kwargs) def doCommand(self, event, show=True): if self.viewer and self.viewer.isShowingTasks() and self.viewer.curselection(): selectedTasks = self.viewer.curselection() elif self.viewer and self.viewer.isShowingEffort(): selectedEfforts = self.viewer.curselection() if selectedEfforts: selectedTasks = [selectedEfforts[0].task()] else: selectedTasks = [self.firstTask(self.viewer.domainObjectsToView())] else: selectedTasks = [self.firstTask(self.taskList)] newEffortCommand = command.NewEffortCommand(self.effortList, selectedTasks) newEffortCommand.do() newEffortDialog = dialog.editor.EffortEditor(self.mainWindow(), newEffortCommand.items, self.settings, self.effortList, self.mainWindow().taskFile, bitmap=self.bitmap) if show: newEffortDialog.Show() return newEffortDialog @staticmethod def firstTask(tasks): subjectDecoratedTasks = [(eachTask.subject(recursive=True), eachTask) for eachTask in tasks] subjectDecoratedTasks.sort() return subjectDecoratedTasks[0][1] class EffortStart(mixin_uicommand.NeedsSelectedTasksMixin, ViewerCommand, TaskListCommand): ''' UICommand to start tracking effort for the selected task(s). ''' def __init__(self, *args, **kwargs): super(EffortStart, self).__init__(bitmap='clock_icon', menuText=_('&Start tracking effort\tCtrl-T'), helpText=help.effortStart, *args, **kwargs) def doCommand(self, event): start = command.StartEffortCommand(self.taskList, self.viewer.curselection()) start.do() def enabled(self, event): return super(EffortStart, self).enabled(event) and \ any(not task.completed() and not task.isBeingTracked() \ for task in self.viewer.curselection()) class EffortStartForEffort(mixin_uicommand.NeedsSelectedEffortMixin, ViewerCommand, TaskListCommand): ''' UICommand to start tracking for the task(s) of selected effort(s). ''' def __init__(self, *args, **kwargs): super(EffortStartForEffort, self).__init__(bitmap='clock_icon', menuText=_('&Start tracking effort'), helpText=_('Start tracking effort for the task(s) of the selected effort(s)'), *args, **kwargs) def doCommand(self, event): start = command.StartEffortCommand(self.taskList, self.trackableTasks()) start.do() def enabled(self, event): return super(EffortStartForEffort, self).enabled(event) and \ self.trackableTasks() def trackableTasks(self): tasks = set([effort.task() for effort in self.viewer.curselection()]) return [task for task in tasks if not task.completed() \ and not task.isBeingTracked()] class EffortStartForTask(TaskListCommand): ''' UICommand to start tracking for a specific task. This command can be used to build a menu with separate menu items for all tasks. See gui.menu.StartEffortForTaskMenu. ''' def __init__(self, *args, **kwargs): self.task = kwargs.pop('task') subject = self.task.subject() or _('(No subject)') super(EffortStartForTask, self).__init__( \ bitmap=self.task.icon(recursive=True), menuText='&' + subject.replace('&', '&&'), helpText=_('Start tracking effort for %s') % subject, *args, **kwargs) def doCommand(self, event): start = command.StartEffortCommand(self.taskList, [self.task]) start.do() def enabled(self, event): return not self.task.isBeingTracked() and not self.task.completed() class EffortStartButton(mixin_uicommand.PopupButtonMixin, TaskListCommand): def __init__(self, *args, **kwargs): kwargs['taskList'] = base.filter.DeletedFilter(kwargs['taskList']) super(EffortStartButton, self).__init__(bitmap='clock_menu_icon', menuText=_('&Start tracking effort'), helpText=_('Select a task via the menu and start tracking effort for it'), *args, **kwargs) def createPopupMenu(self): from taskcoachlib.gui import menu return menu.StartEffortForTaskMenu(self.mainWindow(), self.taskList) def enabled(self, event): return any(not task.completed() for task in self.taskList) class EffortStop(EffortListCommand, TaskListCommand, ViewerCommand): defaultMenuText = _('Stop tracking or resume tracking effort\tShift+Ctrl+T') defaultHelpText = help.effortStopOrResume stopMenuText = _('St&op tracking %s\tShift+Ctrl+T') stopHelpText = _('Stop tracking effort for the active task(s)') resumeMenuText = _('&Resume tracking %s\tShift+Ctrl+T') resumeHelpText = _('Resume tracking effort for the last tracked task') def __init__(self, *args, **kwargs): super(EffortStop, self).__init__(bitmap='clock_resume_icon', bitmap2='clock_stop_icon', menuText=self.defaultMenuText, helpText=self.defaultHelpText, kind=wx.ITEM_CHECK, *args, **kwargs) self.__tracker = effort.EffortListTracker(self.effortList) for subtype in ['', '.added', '.removed']: self.__tracker.subscribe(self.__onEffortsChanged, 'effortlisttracker%s' % subtype) self.__currentBitmap = None # Don't know yet what our bitmap is def __onEffortsChanged(self, efforts): self.updateUI() def efforts(self): selectedEfforts = set() for item in self.viewer.curselection(): if isinstance(item, task.Task): selectedEfforts |= set(item.efforts()) elif isinstance(item, effort.Effort): selectedEfforts.add(item) selectedEfforts &= set(self.__tracker.trackedEfforts()) return selectedEfforts if selectedEfforts else self.__tracker.trackedEfforts() def doCommand(self, event=None): efforts = self.efforts() if efforts: # Stop the tracked effort(s) effortCommand = command.StopEffortCommand(self.effortList, efforts) else: # Resume tracking the last task effortCommand = command.StartEffortCommand(self.taskList, [self.mostRecentTrackedTask()]) effortCommand.do() def enabled(self, event=None): # If there are tracked efforts this command will stop them. If there are # untracked efforts this command will resume them. Otherwise this # command is disabled. return self.anyTrackedEfforts() or self.anyStoppedEfforts() def onUpdateUI(self, event): super(EffortStop, self).onUpdateUI(event) self.updateUI() def updateUI(self): paused = self.anyStoppedEfforts() and not self.anyTrackedEfforts() self.updateToolState(not paused) bitmapName = self.bitmap if paused else self.bitmap2 menuText = self.getMenuText(paused) if (bitmapName != self.__currentBitmap) or bool([item for item in self.menuItems if item.GetItemLabel() != menuText]): self.__currentBitmap = bitmapName self.updateToolBitmap(bitmapName) self.updateToolHelp() self.updateMenuItems(paused) def updateToolState(self, paused): if not self.toolbar: return # Toolbar is hidden if paused != self.toolbar.GetToolState(self.id): self.toolbar.ToggleTool(self.id, paused) def updateToolBitmap(self, bitmapName): if not self.toolbar: return # Toolbar is hidden bitmap = wx.ArtProvider_GetBitmap(bitmapName, wx.ART_TOOLBAR, self.toolbar.GetToolBitmapSize()) # On wxGTK, changing the bitmap doesn't work when the tool is # disabled, so we first enable it if necessary: disable = False if not self.toolbar.GetToolEnabled(self.id): self.toolbar.EnableTool(self.id, True) disable = True self.toolbar.SetToolNormalBitmap(self.id, bitmap) if disable: self.toolbar.EnableTool(self.id, False) self.toolbar.Realize() def updateMenuItems(self, paused): menuText = self.getMenuText(paused) helpText = self.getHelpText(paused) for menuItem in self.menuItems: menuItem.Check(paused) menuItem.SetItemLabel(menuText) menuItem.SetHelp(helpText) def getMenuText(self, paused=None): # pylint: disable=W0221 if self.anyTrackedEfforts(): trackedEfforts = list(self.efforts()) subject = _('multiple tasks') if len(trackedEfforts) > 1 \ else trackedEfforts[0].task().subject() return self.stopMenuText % self.trimmedSubject(subject) if paused is None: paused = self.anyStoppedEfforts() if paused: return self.resumeMenuText % \ self.trimmedSubject(self.mostRecentTrackedTask().subject()) else: return self.defaultMenuText def getHelpText(self, paused=None): # pylint: disable=W0221 if self.anyTrackedEfforts(): return self.stopHelpText if paused is None: paused = self.anyStoppedEfforts() return self.resumeHelpText if paused else self.defaultHelpText def anyStoppedEfforts(self): return bool(self.effortList.maxDateTime()) def anyTrackedEfforts(self): return bool(self.efforts()) def mostRecentTrackedTask(self): stopTimes = [(effort.getStop(), effort) for effort in self.effortList if effort.getStop() is not None] return max(stopTimes)[1].task() @staticmethod def trimmedSubject(subject, maxLength=35, postFix='...'): trim = len(subject) > maxLength return subject[:maxLength - len(postFix)] + postFix if trim else subject class CategoryNew(CategoriesCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(CategoryNew, self).__init__(bitmap='new', menuText=_('New category...\tCtrl-G'), helpText=help.categoryNew, *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 newCategoryCommand = command.NewCategoryCommand(self.categories) newCategoryCommand.do() taskFile = self.mainWindow().taskFile newCategoryDialog = dialog.editor.CategoryEditor(self.mainWindow(), newCategoryCommand.items, self.settings, taskFile.categories(), taskFile, bitmap=self.bitmap) newCategoryDialog.Show(show) class CategoryDragAndDrop(OrderingDragAndDropCommand, CategoriesCommand): def createCommand(self, dropItem, dragItems, part, column, isTree): return command.DragAndDropCategoryCommand(self.categories, dragItems, drop=[dropItem], part=part, column=column, isTree=isTree) class NoteNew(NotesCommand, settings_uicommand.SettingsCommand, ViewerCommand): menuText = _('New note...\tCtrl-J') helpText = help.noteNew def __init__(self, *args, **kwargs): super(NoteNew, self).__init__(menuText=self.menuText, helpText=self.helpText, bitmap='new', *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 if self.viewer and self.viewer.isShowingNotes(): noteDialog = self.viewer.newItemDialog(bitmap=self.bitmap) else: newNoteCommand = command.NewNoteCommand(self.notes, categories=self.categoriesForTheNewNote()) newNoteCommand.do() noteDialog = dialog.editor.NoteEditor(self.mainWindow(), newNoteCommand.items, self.settings, self.notes, self.mainWindow().taskFile, bitmap=self.bitmap) noteDialog.Show(show) return noteDialog # for testing purposes def categoriesForTheNewNote(self): return self.mainWindow().taskFile.categories().filteredCategories() class NewNoteWithSelectedCategories(NoteNew, ViewerCommand): menuText = _('New ¬e with selected categories...') helpText = _('Insert a new note with the selected categories checked') def categoriesForTheNewNote(self): return self.viewer.curselection() class NoteDragAndDrop(OrderingDragAndDropCommand, NotesCommand): def createCommand(self, dropItem, dragItems, part, column, isTree): return command.DragAndDropNoteCommand(self.notes, dragItems, drop=[dropItem], part=part, column=column, isTree=isTree) class AttachmentNew(AttachmentsCommand, ViewerCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): attachments = kwargs['attachments'] if 'menuText' not in kwargs: kwargs['menuText'] = attachments.newItemMenuText kwargs['helpText'] = attachments.newItemHelpText super(AttachmentNew, self).__init__(bitmap='new', *args, **kwargs) def doCommand(self, event, show=True): # pylint: disable=W0221 attachmentDialog = self.viewer.newItemDialog(bitmap=self.bitmap) attachmentDialog.Show(show) return attachmentDialog # for testing purposes class AddAttachment(mixin_uicommand.NeedsSelectedAttachmentOwnersMixin, ViewerCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(AddAttachment, self).__init__( \ menuText=_('&Add attachment...\tShift-Ctrl-A'), helpText=help.addAttachment, bitmap='paperclip_icon', *args, **kwargs) def doCommand(self, event): filename = widgets.AttachmentSelector() if not filename: return attachmentBase = self.settings.get('file', 'attachmentbase') if attachmentBase: filename = attachment.getRelativePath(filename, attachmentBase) addAttachmentCommand = command.AddAttachmentCommand( \ self.viewer.presentation(), self.viewer.curselection(), attachments=[attachment.FileAttachment(filename)]) addAttachmentCommand.do() def openAttachments(attachments, settings, showerror): attachmentBase = settings.get('file', 'attachmentbase') for eachAttachment in attachments: try: eachAttachment.open(attachmentBase) except Exception, instance: # pylint: disable=W0703 showerror(render.exception(Exception, instance), caption=_('Error opening attachment'), style=wx.ICON_ERROR) class AttachmentOpen(mixin_uicommand.NeedsSelectedAttachmentsMixin, ViewerCommand, AttachmentsCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): attachments = kwargs['attachments'] super(AttachmentOpen, self).__init__(bitmap='fileopen', menuText=attachments.openItemMenuText, helpText=attachments.openItemHelpText, *args, **kwargs) def doCommand(self, event, showerror=wx.MessageBox): # pylint: disable=W0221 openAttachments(self.viewer.curselection(), self.settings, showerror) class OpenAllAttachments(mixin_uicommand.NeedsSelectionWithAttachmentsMixin, ViewerCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(OpenAllAttachments, self).__init__(\ menuText=_('&Open all attachments...\tShift+Ctrl+O'), helpText=help.openAllAttachments, bitmap='paperclip_icon', *args, **kwargs) def doCommand(self, event, showerror=wx.MessageBox): # pylint: disable=W0221 allAttachments = [] for item in self.viewer.curselection(): allAttachments.extend(item.attachments()) openAttachments(allAttachments, self.settings, showerror) class DialogCommand(base_uicommand.UICommand): def __init__(self, *args, **kwargs): self._dialogTitle = kwargs.pop('dialogTitle') self._dialogText = kwargs.pop('dialogText') self._direction = kwargs.pop('direction', None) self.closed = True super(DialogCommand, self).__init__(*args, **kwargs) def doCommand(self, event): self.closed = False # pylint: disable=W0201 self.dialog = widgets.HTMLDialog(self._dialogTitle, self._dialogText, bitmap=self.bitmap, direction=self._direction) for event in wx.EVT_CLOSE, wx.EVT_BUTTON: self.dialog.Bind(event, self.onClose) self.dialog.Show() def onClose(self, event): self.closed = True self.dialog.Destroy() event.Skip() def enabled(self, event): return self.closed class Help(DialogCommand): def __init__(self, *args, **kwargs): if operating_system.isMac(): # Use default keyboard shortcut for Mac OS X: menuText = _('&Help contents\tCtrl+?') else: # Use a letter, because 'Ctrl-?' doesn't work on Windows: menuText = _('&Help contents\tCtrl+H') super(Help, self).__init__(menuText=menuText, helpText=help.help, bitmap='led_blue_questionmark_icon', dialogTitle=_('Help'), dialogText=help.helpHTML, id=wx.ID_HELP, *args, **kwargs) class Tips(settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(Tips, self).__init__(menuText=_('&Tips'), helpText=_('Tips about the program'), bitmap='lamp_icon', *args, **kwargs) def doCommand(self, event): help.showTips(self.mainWindow(), self.settings) class Anonymize(IOCommand): def __init__(self, *args, **kwargs): super(Anonymize, self).__init__(menuText=_('Anonymize'), helpText=_('Anonymize a task file to attach it to a bug report'), *args, **kwargs) def doCommand(self, event): anonymized_filename = anonymize(self.iocontroller.filename()) wx.MessageBox(_('Your task file has been anonymized and saved to:') \ + '\n' + anonymized_filename, _('Finished'), wx.OK) def enabled(self, event): return bool(self.iocontroller.filename()) class HelpAbout(DialogCommand): def __init__(self, *args, **kwargs): super(HelpAbout, self).__init__(menuText=_('&About %s') % meta.name, helpText=_('Version and contact information about %s') % meta.name, dialogTitle=_('About %s') % meta.name, dialogText=help.aboutHTML, id=wx.ID_ABOUT, bitmap='led_blue_information_icon', *args, **kwargs) class HelpLicense(DialogCommand): def __init__(self, *args, **kwargs): super(HelpLicense, self).__init__(menuText=_('&License'), helpText=_('%s license') % meta.name, dialogTitle=_('%s license') % meta.name, dialogText=meta.licenseHTML, direction=wx.Layout_LeftToRight, bitmap='document_icon', *args, **kwargs) class CheckForUpdate(settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): super(CheckForUpdate, self).__init__(menuText=_('Check for update'), helpText=_('Check for the availability of a new version of %s') % meta.name, bitmap='box_icon', *args, **kwargs) def doCommand(self, event): meta.VersionChecker(self.settings, verbose=True).start() class URLCommand(base_uicommand.UICommand): def __init__(self, *args, **kwargs): self.url = kwargs.pop('url') super(URLCommand, self).__init__(*args, **kwargs) def doCommand(self, event): try: openfile.openFile(self.url) except Exception, reason: wx.MessageBox(_('Cannot open URL:\n%s') % ExceptionAsUnicode(reason), caption=_('%s URL error') % meta.name, style=wx.ICON_ERROR) class FAQ(URLCommand): def __init__(self, *args, **kwargs): super(FAQ, self).__init__(menuText=_('&Frequently asked questions'), helpText=_('Browse the frequently asked questions and answers'), bitmap='led_blue_questionmark_icon', url=meta.faq_url, *args, **kwargs) class ReportBug(URLCommand): def __init__(self, *args, **kwargs): super(ReportBug, self).__init__(menuText=_('Report a &bug...'), helpText=_('Report a bug or browse known bugs'), bitmap='bug_icon', url=meta.known_bugs_url, *args, **kwargs) class RequestFeature(URLCommand): def __init__(self, *args, **kwargs): super(RequestFeature, self).__init__( \ menuText=_('Request a &feature...'), helpText=_('Request a new feature or vote for existing requests'), bitmap='cogwheel_icon', url=meta.feature_request_url, *args, **kwargs) class RequestSupport(URLCommand): def __init__(self, *args, **kwargs): super(RequestSupport, self).__init__(menuText=_('Request &support...'), helpText=_('Request user support from the developers'), bitmap='life_ring_icon', url=meta.support_request_url, *args, **kwargs) class HelpTranslate(URLCommand): def __init__(self, *args, **kwargs): super(HelpTranslate, self).__init__( \ menuText=_('Help improve &translations...'), helpText=_('Help improve the translations of %s') % meta.name, bitmap='person_talking_icon', url=meta.translations_url, *args, **kwargs) class Donate(URLCommand): def __init__(self, *args, **kwargs): super(Donate, self).__init__(menuText=_('&Donate...'), helpText=_('Donate to support the development of %s') % meta.name, bitmap='heart_icon', url=meta.donate_url, *args, **kwargs) class MainWindowRestore(base_uicommand.UICommand): def __init__(self, *args, **kwargs): super(MainWindowRestore, self).__init__(menuText=_('&Restore'), helpText=_('Restore the window to its previous state'), bitmap='restore', *args, **kwargs) def doCommand(self, event): self.mainWindow().restore(event) class Search(ViewerCommand, settings_uicommand.SettingsCommand): # Search can only be attached to a real viewer, not to a viewercontainer def __init__(self, *args, **kwargs): self.__bound = False super(Search, self).__init__(*args, helpText=_('Search'), **kwargs) assert self.viewer.isSearchable() def onFind(self, searchString, matchCase, includeSubItems, searchDescription, regularExpression): if self.__bound: self.viewer.setSearchFilter(searchString, matchCase, includeSubItems, searchDescription, regularExpression) def appendToToolBar(self, toolbar): self.__bound = True searchString, matchCase, includeSubItems, searchDescription, regularExpression = \ self.viewer.getSearchFilter() # pylint: disable=W0201 self.searchControl = widgets.SearchCtrl(toolbar, value=searchString, style=wx.TE_PROCESS_ENTER, matchCase=matchCase, includeSubItems=includeSubItems, searchDescription=searchDescription, regularExpression=regularExpression, callback=self.onFind) toolbar.AddControl(self.searchControl) self.bindKeyDownInViewer() self.bindKeyDownInSearchCtrl() def bindKeyDownInViewer(self): ''' Bind wx.EVT_KEY_DOWN to self.onViewerKeyDown so we can catch Ctrl-F. ''' widget = self.viewer.getWidget() try: window = widget.GetMainWindow() except AttributeError: window = widget window.Bind(wx.EVT_KEY_DOWN, self.onViewerKeyDown) def bindKeyDownInSearchCtrl(self): ''' Bind wx.EVT_KEY_DOWN to self.onSearchCtrlKeyDown so we can catch the Escape key and drop down the menu on Ctrl-Down. ''' self.searchControl.getTextCtrl().Bind(wx.EVT_KEY_DOWN, self.onSearchCtrlKeyDown) def unbind(self, window, id_): self.__bound = False super(Search, self).unbind(window, id_) def onViewerKeyDown(self, event): ''' On Ctrl-F, move focus to the search control. ''' if event.KeyCode == ord('F') and event.CmdDown() and \ not event.AltDown(): self.searchControl.SetFocus() else: event.Skip() def onSearchCtrlKeyDown(self, event): ''' On Escape, move focus to the viewer, on Ctrl-Down popup the menu. ''' if event.KeyCode == wx.WXK_ESCAPE: self.viewer.SetFocus() elif event.KeyCode == wx.WXK_DOWN and event.AltDown(): self.searchControl.PopupMenu() else: event.Skip() def doCommand(self, event): pass # Not used class ToolbarChoiceCommandMixin(object): def __init__(self, *args, **kwargs): self.choiceCtrl = None super(ToolbarChoiceCommandMixin, self).__init__(*args, **kwargs) def appendToToolBar(self, toolbar): ''' Add our choice control to the toolbar. ''' # pylint: disable=W0201 self.choiceCtrl = wx.Choice(toolbar, choices=self.choiceLabels) self.currentChoice = self.choiceCtrl.Selection self.choiceCtrl.Bind(wx.EVT_CHOICE, self.onChoice) toolbar.AddControl(self.choiceCtrl) def unbind(self, window, id_): if self.choiceCtrl is not None: self.choiceCtrl.Unbind(wx.EVT_CHOICE) self.choiceCtrl = None super(ToolbarChoiceCommandMixin, self).unbind(window, id_) def onChoice(self, event): ''' The user selected a choice from the choice control. ''' choiceIndex = event.GetInt() if choiceIndex == self.currentChoice: return self.currentChoice = choiceIndex self.doChoice(self.choiceData[choiceIndex]) def doChoice(self, choice): raise NotImplementedError # pragma: no cover def doCommand(self, event): pass # Not used def setChoice(self, choice): ''' Programmatically set the current choice in the choice control. ''' if self.choiceCtrl is not None: index = self.choiceData.index(choice) self.choiceCtrl.Selection = index self.currentChoice = index def enable(self, enable=True): if self.choiceCtrl is not None: self.choiceCtrl.Enable(enable) class EffortViewerAggregationChoice(ToolbarChoiceCommandMixin, settings_uicommand.SettingsCommand, ViewerCommand): choiceLabels = [_('Effort details'), _('Effort per day'), _('Effort per week'), _('Effort per month')] choiceData = ['details', 'day', 'week', 'month'] def __init__(self, **kwargs): super(EffortViewerAggregationChoice, self).__init__(helpText=_('Aggregation mode'), **kwargs) def appendToToolBar(self, *args, **kwargs): super(EffortViewerAggregationChoice, self).appendToToolBar(*args, **kwargs) self.setChoice(self.settings.gettext(self.viewer.settingsSection(), 'aggregation')) pub.subscribe(self.on_setting_changed, 'settings.%s.aggregation' % self.viewer.settingsSection()) def doChoice(self, choice): self.settings.settext(self.viewer.settingsSection(), 'aggregation', choice) def on_setting_changed(self, value): self.setChoice(value) class EffortViewerAggregationOption(settings_uicommand.UIRadioCommand, ViewerCommand): def isSettingChecked(self): return self.settings.gettext(self.viewer.settingsSection(), 'aggregation') == self.value def doCommand(self, event): self.settings.settext(self.viewer.settingsSection(), 'aggregation', self.value) class TaskViewerTreeOrListChoice(ToolbarChoiceCommandMixin, settings_uicommand.UICheckCommand, ViewerCommand): choiceLabels = [_('Tree'), _('List')] choiceData = [True, False] def __init__(self, *args, **kwargs): super(TaskViewerTreeOrListChoice, self).__init__( \ menuText=self.choiceLabels[0], helpText=_('When checked, show tasks as tree, ' 'otherwise show tasks as list'), *args, **kwargs) def appendToToolBar(self, *args, **kwargs): super(TaskViewerTreeOrListChoice, self).appendToToolBar(*args, **kwargs) self.setChoice(self.settings.getboolean(self.viewer.settingsSection(), 'treemode')) pub.subscribe(self.on_setting_changed, 'settings.%s.treemode' % self.viewer.settingsSection()) def doChoice(self, choice): self.settings.setboolean(self.viewer.settingsSection(), 'treemode', choice) def on_setting_changed(self, value): self.setChoice(value) class TaskViewerTreeOrListOption(settings_uicommand.UIRadioCommand, ViewerCommand): def isSettingChecked(self): return self.settings.getboolean(self.viewer.settingsSection(), 'treemode') == self.value def doCommand(self, event): self.settings.setboolean(self.viewer.settingsSection(), 'treemode', self.value) class CategoryViewerFilterChoice(ToolbarChoiceCommandMixin, settings_uicommand.UICheckCommand): choiceLabels = [_('Filter on all checked categories'), _('Filter on any checked category')] choiceData = [True, False] def __init__(self, *args, **kwargs): super(CategoryViewerFilterChoice, self).__init__( \ menuText=self.choiceLabels[0], helpText=_('When checked, filter on all checked categories, ' 'otherwise on any checked category'), *args, **kwargs) def appendToToolBar(self, *args, **kwargs): super(CategoryViewerFilterChoice, self).appendToToolBar(*args, **kwargs) pub.subscribe(self.on_setting_changed, 'settings.view.categoryfiltermatchall') def isSettingChecked(self): return self.settings.getboolean('view', 'categoryfiltermatchall') def doChoice(self, choice): self.settings.setboolean('view', 'categoryfiltermatchall', choice) def doCommand(self, event): self.settings.setboolean('view', 'categoryfiltermatchall', self._isMenuItemChecked(event)) def on_setting_changed(self, value): self.setChoice(value) class SquareTaskViewerOrderChoice(ToolbarChoiceCommandMixin, settings_uicommand.SettingsCommand, ViewerCommand): choiceLabels = [_('Budget'), _('Time spent'), _('Fixed fee'), _('Revenue'), _('Priority')] choiceData = ['budget', 'timeSpent', 'fixedFee', 'revenue', 'priority'] def __init__(self, **kwargs): super(SquareTaskViewerOrderChoice, self).__init__(helpText=_('Order choice'), **kwargs) def appendToToolBar(self, *args, **kwargs): super(SquareTaskViewerOrderChoice, self).appendToToolBar(*args, **kwargs) pub.subscribe(self.on_setting_changed, 'settings.%s.sortby' % self.viewer.settingsSection()) def doChoice(self, choice): self.settings.settext(self.viewer.settingsSection(), 'sortby', choice) def on_setting_changed(self, value): self.setChoice(value) class SquareTaskViewerOrderByOption(settings_uicommand.UIRadioCommand, ViewerCommand): def isSettingChecked(self): return self.settings.gettext(self.viewer.settingsSection(), 'sortby') == self.value def doCommand(self, event): self.settings.settext(self.viewer.settingsSection(), 'sortby', self.value) class CalendarViewerConfigure(ViewerCommand): menuText = _('&Configure') helpText = _('Configure the calendar viewer') bitmap = 'wrench_icon' def __init__(self, *args, **kwargs): super(CalendarViewerConfigure, self).__init__( \ menuText=self.menuText, helpText=self.helpText, bitmap=self.bitmap, *args, **kwargs) def doCommand(self, event): self.viewer.configure() class HierarchicalCalendarViewerConfigure(CalendarViewerConfigure): helpText = _('Configure the hierarchical calendar viewer') class CalendarViewerNavigationCommand(ViewerCommand): def __init__(self, *args, **kwargs): super(CalendarViewerNavigationCommand, self).__init__( \ menuText=self.menuText, helpText=self.helpText, bitmap=self.bitmap, *args, **kwargs) def doCommand(self, event): self.viewer.freeze() try: self.viewer.SetViewType(self.calendarViewType) # pylint: disable=E1101 finally: self.viewer.thaw() class CalendarViewerNextPeriod(CalendarViewerNavigationCommand): menuText = _('&Next period') helpText = _('Show next period') bitmap = 'next' calendarViewType = wxSCHEDULER_NEXT class HierarchicalCalendarViewerNextPeriod(ViewerCommand): menuText = _('&Next period') helpText = _('Show next period') bitmap = 'next' def __init__(self, *args, **kwargs): super(HierarchicalCalendarViewerNextPeriod, self).__init__( \ menuText=self.menuText, helpText=self.helpText, bitmap=self.bitmap, *args, **kwargs) def doCommand(self, event): self.viewer.widget.Next() class CalendarViewerPreviousPeriod(CalendarViewerNavigationCommand): menuText = _('&Previous period') helpText = _('Show previous period') bitmap = 'prev' calendarViewType = wxSCHEDULER_PREV class HierarchicalCalendarViewerPreviousPeriod(ViewerCommand): menuText = _('&Previous period') helpText = _('Show previous period') bitmap = 'prev' def __init__(self, *args, **kwargs): super(HierarchicalCalendarViewerPreviousPeriod, self).__init__( \ menuText=self.menuText, helpText=self.helpText, bitmap=self.bitmap, *args, **kwargs) def doCommand(self, event): self.viewer.widget.Prev() class CalendarViewerToday(CalendarViewerNavigationCommand): menuText = _('&Today') helpText = _('Show today') bitmap = 'calendar_icon' calendarViewType = wxSCHEDULER_TODAY class HierarchicalCalendarViewerToday(ViewerCommand): menuText = _('&Today') helpText = _('Show today') bitmap = 'calendar_icon' def __init__(self, *args, **kwargs): super(HierarchicalCalendarViewerToday, self).__init__( \ menuText=self.menuText, helpText=self.helpText, bitmap=self.bitmap, *args, **kwargs) def doCommand(self, event): self.viewer.widget.Today() class ToggleAutoColumnResizing(settings_uicommand.UICheckCommand, ViewerCommand): def __init__(self, *args, **kwargs): super(ToggleAutoColumnResizing, self).__init__(\ menuText=_('&Automatic column resizing'), helpText=_('When checked, automatically resize columns to fill' ' available space'), *args, **kwargs) wx.CallAfter(self.updateWidget) def updateWidget(self): self.viewer.getWidget().ToggleAutoResizing(self.isSettingChecked()) def isSettingChecked(self): return self.settings.getboolean(self.viewer.settingsSection(), 'columnautoresizing') def doCommand(self, event): self.settings.set(self.viewer.settingsSection(), 'columnautoresizing', str(self._isMenuItemChecked(event))) self.updateWidget() class ViewerPieChartAngle(ViewerCommand, settings_uicommand.SettingsCommand): def __init__(self, *args, **kwargs): self.sliderCtrl = None super(ViewerPieChartAngle, self).__init__( \ helpText=_('Set pie chart angle'), *args, **kwargs) def appendToToolBar(self, toolbar): ''' Add our slider control to the toolbar. ''' # pylint: disable=W0201 self.sliderCtrl = wx.Slider(toolbar, minValue=0, maxValue=90, value=self.getCurrentAngle(), size=(120, -1)) self.sliderCtrl.Bind(wx.EVT_SLIDER, self.onSlider) toolbar.AddControl(self.sliderCtrl) def unbind(self, window, itemId): if self.sliderCtrl is not None: self.sliderCtrl.Unbind(wx.EVT_SLIDER) self.sliderCtrl = None super(ViewerPieChartAngle, self).unbind(window, itemId) def onSlider(self, event): ''' The user picked a new angle. ''' event.Skip() self.setCurrentAngle() def doCommand(self, event): pass # Not used def getCurrentAngle(self): return self.settings.getint(self.viewer.settingsSection(), 'piechartangle') def setCurrentAngle(self): if self.sliderCtrl is not None: self.settings.setint(self.viewer.settingsSection(), 'piechartangle', self.sliderCtrl.GetValue()) class RoundingPrecision(ToolbarChoiceCommandMixin, ViewerCommand, settings_uicommand.SettingsCommand): roundingChoices = (0, 1, 3, 5, 6, 10, 15, 20, 30, 60) # Minutes choiceData = [minutes * 60 for minutes in roundingChoices] # Seconds choiceLabels = [_('No rounding'), _('1 minute')] + \ [_('%d minutes') % minutes for minutes in roundingChoices[2:]] def __init__(self, **kwargs): super(RoundingPrecision, self).__init__(helpText=_('Rounding precision'), **kwargs) def doChoice(self, choice): self.settings.setint(self.viewer.settingsSection(), 'round', choice) class RoundBy(settings_uicommand.UIRadioCommand, ViewerCommand): def isSettingChecked(self): return self.settings.getint(self.viewer.settingsSection(), 'round') == self.value def doCommand(self, event): self.settings.setint(self.viewer.settingsSection(), 'round', self.value) class AlwaysRoundUp(settings_uicommand.UICheckCommand, ViewerCommand): def __init__(self, *args, **kwargs): self.checkboxCtrl = None super(AlwaysRoundUp, self).__init__(\ menuText=_('&Always round up'), helpText=_('Always round up to the next rounding increment'), *args, **kwargs) def appendToToolBar(self, toolbar): ''' Add a checkbox control to the toolbar. ''' # pylint: disable=W0201 self.checkboxCtrl = wx.CheckBox(toolbar, label=self.menuText) self.checkboxCtrl.Bind(wx.EVT_CHECKBOX, self.onCheck) toolbar.AddControl(self.checkboxCtrl) def unbind(self, window, itemId): if self.checkboxCtrl is not None: self.checkboxCtrl.Unbind(wx.EVT_CHECKBOX) self.checkboxCtrl = None super(AlwaysRoundUp, self).unbind(window, itemId) def isSettingChecked(self): return self.settings.getboolean(self.viewer.settingsSection(), 'alwaysroundup') def onCheck(self, event): self.setSetting(event.IsChecked()) def doCommand(self, event): self.setSetting(self._isMenuItemChecked(event)) def setSetting(self, alwaysRoundUp): self.settings.setboolean(self.viewer.settingsSection(), 'alwaysroundup', alwaysRoundUp) def setValue(self, value): if self.checkboxCtrl is not None: self.checkboxCtrl.SetValue(value) def enable(self, enable=True): if self.checkboxCtrl is not None: self.checkboxCtrl.Enable(enable) taskcoach-1.4.3/taskcoachlib/gui/uicommand/uicommandcontainer.py000066400000000000000000000037571265347643000251250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' import wx class UICommandContainerMixin(object): ''' Mixin with wx.Menu or wx.ToolBar (sub)class. ''' def appendUICommands(self, *uiCommands): for uiCommand in uiCommands: if uiCommand is None: self.AppendSeparator() elif isinstance(uiCommand, int): # Toolbars only self.AppendStretchSpacer(uiCommand) elif isinstance(uiCommand, (str, unicode)): label = wx.MenuItem(self, wx.NewId(), uiCommand) #must append item before disable to insure #that internal object exists self.AppendItem(label) label.Enable(False) elif type(uiCommand) == type(()): # This only works for menu's menuTitle, menuUICommands = uiCommand[0], uiCommand[1:] self.appendSubMenuWithUICommands(menuTitle, menuUICommands) else: self.appendUICommand(uiCommand) def appendSubMenuWithUICommands(self, menuTitle, uiCommands): from taskcoachlib.gui import menu subMenu = menu.Menu(self._window) self.appendMenu(menuTitle, subMenu) subMenu.appendUICommands(*uiCommands) # pylint: disable=W0142 taskcoach-1.4.3/taskcoachlib/gui/viewer/000077500000000000000000000000001265347643000202055ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/gui/viewer/__init__.py000077500000000000000000000022331265347643000223210ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from task import TaskViewer, TaskStatsViewer, CheckableTaskViewer, \ SquareTaskViewer, TimelineViewer, CalendarViewer, HierarchicalCalendarViewer from category import CategoryViewer, BaseCategoryViewer from effort import EffortViewer, EffortViewerForSelectedTasks from note import NoteViewer, BaseNoteViewer from attachment import AttachmentViewer from container import ViewerContainer from factory import viewerTypes, addViewers, addOneViewer taskcoach-1.4.3/taskcoachlib/gui/viewer/attachment.py000066400000000000000000000231111265347643000227050ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' import os, wx from taskcoachlib import command, widgets from taskcoachlib.domain import attachment from taskcoachlib.i18n import _ from taskcoachlib.gui import uicommand, menu, dialog import base, mixin class AttachmentViewer(mixin.AttachmentDropTargetMixin, # pylint: disable=W0223 base.SortableViewerWithColumns, mixin.SortableViewerForAttachmentsMixin, mixin.SearchableViewerMixin, mixin.NoteColumnMixin, base.ListViewer): SorterClass = attachment.AttachmentSorter viewerImages = base.ListViewer.viewerImages + ['fileopen', 'fileopen_red'] def __init__(self, *args, **kwargs): self.attachments = kwargs.pop('attachmentsToShow') kwargs.setdefault('settingssection', 'attachmentviewer') super(AttachmentViewer, self).__init__(*args, **kwargs) def _addAttachments(self, attachments, item, **itemDialogKwargs): # Don't try to add attachments to attachments. super(AttachmentViewer, self)._addAttachments(attachments, None, **itemDialogKwargs) def domainObjectsToView(self): return self.attachments def isShowingAttachments(self): return True def curselectionIsInstanceOf(self, class_): return class_ == attachment.Attachment def createWidget(self): imageList = self.createImageList() itemPopupMenu = menu.AttachmentPopupMenu(self.parent, self.settings, self.presentation(), self) columnPopupMenu = menu.ColumnPopupMenu(self) self._popupMenus.extend([itemPopupMenu, columnPopupMenu]) self._columns = self._createColumns() widget = widgets.VirtualListCtrl(self, self.columns(), self.onSelect, uicommand.Edit(viewer=self), itemPopupMenu, columnPopupMenu, resizeableColumn=1, **self.widgetCreationKeywordArguments()) widget.SetColumnWidth(0, 150) widget.AssignImageList(imageList, wx.IMAGE_LIST_SMALL) return widget def _createColumns(self): return [widgets.Column('type', _('Type'), '', width=self.getColumnWidth('type'), imageIndicesCallback=self.typeImageIndices, renderCallback=lambda item: '', resizeCallback=self.onResizeColumn), widgets.Column('subject', _('Subject'), attachment.FileAttachment.subjectChangedEventType(), attachment.URIAttachment.subjectChangedEventType(), attachment.MailAttachment.subjectChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='subject', menuText=_('Sub&ject'), helpText=_('Sort by subject')), width=self.getColumnWidth('subject'), renderCallback=lambda item: item.subject(), resizeCallback=self.onResizeColumn), widgets.Column('description', _('Description'), attachment.FileAttachment.descriptionChangedEventType(), attachment.URIAttachment.descriptionChangedEventType(), attachment.MailAttachment.descriptionChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='description', menuText=_('&Description'), helpText=_('Sort by description')), width=self.getColumnWidth('description'), renderCallback=lambda item: item.description(), resizeCallback=self.onResizeColumn), widgets.Column('notes', '', attachment.FileAttachment.notesChangedEventType(), # pylint: disable=E1101 attachment.URIAttachment.notesChangedEventType(), # pylint: disable=E1101 attachment.MailAttachment.notesChangedEventType(), # pylint: disable=E1101 width=self.getColumnWidth('notes'), alignment=wx.LIST_FORMAT_LEFT, imageIndicesCallback=self.noteImageIndices, # pylint: disable=E1101 headerImageIndex=self.imageIndex['note_icon'], renderCallback=lambda item: '', resizeCallback=self.onResizeColumn), widgets.Column('creationDateTime', _('Creation date'), width=self.getColumnWidth('creationDateTime'), renderCallback=self.renderCreationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='creationDateTime', menuText=_('&Creation date'), helpText=_('Sort by creation date')), resizeCallback=self.onResizeColumn), widgets.Column('modificationDateTime', _('Modification date'), width=self.getColumnWidth('modificationDateTime'), renderCallback=self.renderModificationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='modificationDateTime', menuText=_('&Modification date'), helpText=_('Sort by last modification date')), resizeCallback=self.onResizeColumn, *attachment.Attachment.modificationEventTypes()) ] def createColumnUICommands(self): return [\ uicommand.ToggleAutoColumnResizing(viewer=self, settings=self.settings), None, uicommand.ViewColumn(menuText=_('&Description'), helpText=_('Show/hide description column'), setting='description', viewer=self), uicommand.ViewColumn(menuText=_('&Notes'), helpText=_('Show/hide notes column'), setting='notes', viewer=self), uicommand.ViewColumn(menuText=_('&Creation date'), helpText=_('Show/hide creation date column'), setting='creationDateTime', viewer=self), uicommand.ViewColumn(menuText=_('&Modification date'), helpText=_('Show/hide last modification date column'), setting='modificationDateTime', viewer=self)] def createCreationToolBarUICommands(self): return (uicommand.AttachmentNew(attachments=self.presentation(), settings=self.settings, viewer=self),) + \ super(AttachmentViewer, self).createCreationToolBarUICommands() def createActionToolBarUICommands(self): return (uicommand.AttachmentOpen(attachments=attachment.AttachmentList(), viewer=self, settings=self.settings),) + \ super(AttachmentViewer, self).createActionToolBarUICommands() def typeImageIndices(self, anAttachment, exists=os.path.exists): # pylint: disable=W0613 if anAttachment.type_ == 'file': attachmentBase = self.settings.get('file', 'attachmentbase') if exists(anAttachment.normalizedLocation(attachmentBase)): index = self.imageIndex['fileopen'] else: index = self.imageIndex['fileopen_red'] else: try: index = self.imageIndex[{'uri': 'earth_blue_icon', 'mail': 'envelope_icon'}[anAttachment.type_]] except KeyError: index = -1 return {wx.TreeItemIcon_Normal: index} def itemEditorClass(self): return dialog.editor.AttachmentEditor def newItemCommandClass(self): raise NotImplementedError # pragma: no cover def newSubItemCommandClass(self): return None def deleteItemCommandClass(self): raise NotImplementedError # pragma: no cover def cutItemCommandClass(self): raise NotImplementedError # pragma: no cover taskcoach-1.4.3/taskcoachlib/gui/viewer/base.py000066400000000000000000001130161265347643000214730ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import patterns, widgets, command, render from taskcoachlib.i18n import _ from taskcoachlib.gui import uicommand, toolbar, artprovider from taskcoachlib.thirdparty import hypertreelist from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.widgets import ToolTipMixin import mixin class Viewer(patterns.Observer, wx.Panel): ''' A Viewer shows domain objects (e.g. tasks or efforts) by means of a widget (e.g. a ListCtrl or a TreeListCtrl).''' __metaclass__ = patterns.NumberedInstances defaultTitle = 'Subclass responsibility' defaultBitmap = 'Subclass responsibility' viewerImages = artprovider.itemImages def __init__(self, parent, taskFile, settings, *args, **kwargs): super(Viewer, self).__init__(parent, -1) self.parent = parent self.taskFile = taskFile self.settings = settings self.__settingsSection = kwargs.pop('settingsSection') self.__freezeCount = 0 # The how maniest of this viewer type are we? Used for settings self.__instanceNumber = kwargs.pop('instanceNumber') self.__use_separate_settings_section = kwargs.pop('use_separate_settings_section', True) # Selection cache: self.__curselection = [] # Flag so that we don't notify observers while we're selecting all items self.__selectingAllItems = False # Popup menus we have to destroy before closing the viewer to prevent # memory leakage: self._popupMenus = [] # What are we presenting: self.__presentation = self.createSorter(self.createFilter(self.domainObjectsToView())) # The widget used to present the presentation: self.widget = self.createWidget() self.widget.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) self.toolbar = toolbar.ToolBar(self, settings, (16, 16)) self.initLayout() self.registerPresentationObservers() self.refresh() pub.subscribe(self.onBeginIO, 'taskfile.aboutToRead') pub.subscribe(self.onBeginIO, 'taskfile.aboutToClear') pub.subscribe(self.onBeginIO, 'taskfile.aboutToSave') pub.subscribe(self.onEndIO, 'taskfile.justRead') pub.subscribe(self.onEndIO, 'taskfile.justCleared') pub.subscribe(self.onEndIO, 'taskfile.justSaved') if isinstance(self.widget, ToolTipMixin): pub.subscribe(self.onShowTooltipsChanged, 'settings.view.descriptionpopups') self.widget.SetToolTipsEnabled(settings.getboolean('view', 'descriptionpopups')) wx.CallAfter(self.__DisplayBalloon) def __DisplayBalloon(self): # AuiFloatingFrame is instantiated from framemanager, we can't derive it from BalloonTipManager if self.toolbar.IsShownOnScreen() and hasattr(wx.GetTopLevelParent(self), 'AddBalloonTip'): wx.GetTopLevelParent(self).AddBalloonTip(self.settings, 'customizabletoolbars', self.toolbar, title=_('Toolbars are customizable'), getRect=lambda: self.toolbar.GetToolRect(self.toolbar.getToolIdByCommand('EditToolBarPerspective')), message=_('''Click on the gear icon on the right to add buttons and rearrange them.''')) def onShowTooltipsChanged(self, value): self.widget.SetToolTipsEnabled(value) def onBeginIO(self, taskFile): self.__freezeCount += 1 self.__presentation.freeze() def onEndIO(self, taskFile): self.__freezeCount -= 1 self.__presentation.thaw() if self.__freezeCount == 0: self.refresh() def activate(self): pass def domainObjectsToView(self): ''' Return the domain objects that this viewer should display. For global viewers this will be part of the task file, e.g. self.taskFile.tasks(), for local viewers this will be a list of objects passed to the viewer constructor. ''' raise NotImplementedError def registerPresentationObservers(self): self.removeObserver(self.onPresentationChanged) self.registerObserver(self.onPresentationChanged, eventType=self.presentation().addItemEventType(), eventSource=self.presentation()) self.registerObserver(self.onPresentationChanged, eventType=self.presentation().removeItemEventType(), eventSource=self.presentation()) self.registerObserver(self.onNewItem, eventType='newitem') def detach(self): ''' Should be called by viewer.container before closing the viewer ''' observers = [self, self.presentation()] observable = self.presentation() while True: try: observable = observable.observable() except AttributeError: break else: observers.append(observable) for observer in observers: try: observer.removeInstance() except AttributeError: pass # Ignore observables that are not an observer themselves for popupMenu in self._popupMenus: try: popupMenu.clearMenu() popupMenu.Destroy() except wx.PyDeadObjectError: pass pub.unsubscribe(self.onBeginIO, 'taskfile.aboutToRead') pub.unsubscribe(self.onBeginIO, 'taskfile.aboutToClear') pub.unsubscribe(self.onBeginIO, 'taskfile.aboutToSave') pub.unsubscribe(self.onEndIO, 'taskfile.justRead') pub.unsubscribe(self.onEndIO, 'taskfile.justCleared') pub.unsubscribe(self.onEndIO, 'taskfile.justSaved') self.presentation().detach() self.toolbar.detach() def viewerStatusEventType(self): return 'viewer%s.status' % id(self) def sendViewerStatusEvent(self): pub.sendMessage(self.viewerStatusEventType(), viewer=self) def statusMessages(self): return '', '' def title(self): return self.settings.get(self.settingsSection(), 'title') or self.defaultTitle def setTitle(self, title): titleToSaveInSettings = '' if title == self.defaultTitle else title self.settings.set(self.settingsSection(), 'title', titleToSaveInSettings) self.parent.setPaneTitle(self, title) self.parent.manager.Update() def initLayout(self): self._sizer = wx.BoxSizer(wx.VERTICAL) # pylint: disable=W0201 self._sizer.Add(self.toolbar, flag=wx.EXPAND) self._sizer.Add(self.widget, proportion=1, flag=wx.EXPAND) self.SetSizerAndFit(self._sizer) def createWidget(self, *args): raise NotImplementedError def createImageList(self): size = (16, 16) imageList = wx.ImageList(*size) # pylint: disable=W0142 self.imageIndex = {} # pylint: disable=W0201 for index, image in enumerate(self.viewerImages): try: imageList.Add(wx.ArtProvider_GetBitmap(image, wx.ART_MENU, size)) except: print image raise self.imageIndex[image] = index return imageList def getWidget(self): return self.widget def SetFocus(self, *args, **kwargs): try: self.widget.SetFocus(*args, **kwargs) except wx.PyDeadObjectError: pass def createSorter(self, collection): ''' This method can be overridden to decorate the presentation with a sorter. ''' return collection def createFilter(self, collection): ''' This method can be overridden to decorate the presentation with a filter. ''' return collection def onAttributeChanged(self, newValue, sender): # pylint: disable=W0613 if self: self.refreshItems(sender) def onAttributeChanged_Deprecated(self, event): self.refreshItems(*event.sources()) def onNewItem(self, event): self.select([item for item in event.values() if item in self.presentation()]) def onPresentationChanged(self, event): # pylint: disable=W0613 ''' Whenever our presentation is changed (items added, items removed) the viewer refreshes itself. ''' def itemsRemoved(): return event.type() == self.presentation().removeItemEventType() def allItemsAreSelected(): return set(self.__curselection).issubset(set(event.values())) self.refresh() if itemsRemoved() and allItemsAreSelected(): self.selectNextItemsAfterRemoval(event.values()) self.updateSelection(sendViewerStatusEvent=False) self.sendViewerStatusEvent() def selectNextItemsAfterRemoval(self, removedItems): raise NotImplementedError def onSelect(self, event=None): # pylint: disable=W0613 ''' The selection of items in the widget has been changed. Notify our observers. ''' if self.IsBeingDeleted() or self.__selectingAllItems: # Some widgets change the selection and send selection events when # deleting all items as part of the Destroy process. Ignore. return # Be sure all wx events are handled before we update our selection # cache and notify our observers: wx.CallAfter(self.updateSelection) def updateSelection(self, sendViewerStatusEvent=True): newSelection = self.widget.curselection() if newSelection != self.__curselection: self.__curselection = newSelection if sendViewerStatusEvent: self.sendViewerStatusEvent() def freeze(self): self.widget.Freeze() def thaw(self): self.widget.Thaw() def refresh(self): if self and not self.__freezeCount: self.widget.RefreshAllItems(len(self.presentation())) def refreshItems(self, *items): if not self.__freezeCount: items = [item for item in items if item in self.presentation()] self.widget.RefreshItems(*items) # pylint: disable=W0142 def select(self, items): self.__curselection = items self.widget.select(items) def curselection(self): ''' Return a list of items (domain objects) currently selected in our widget. ''' return self.__curselection def curselectionIsInstanceOf(self, class_): ''' Return whether all items in the current selection are instances of class_. Can be overridden in subclasses that show only one type of items to simply check the class. ''' return all(isinstance(item, class_) for item in self.curselection()) def isselected(self, item): ''' Returns True if the given item is selected. See L{EffortViewer} for an explanation of why this may be different than 'if item in viewer.curselection()'. ''' return item in self.curselection() def select_all(self): ''' Select all items in the presentation. Since some of the widgets we use may send events for each individual item (!) we stop processing selection events while we select all items. ''' self.__selectingAllItems = True self.widget.select_all() # Use CallAfter to make sure we start processing selection events # after all selection events have been fired (and ignored): wx.CallAfter(self.endOfSelectAll) def endOfSelectAll(self): self.__curselection = self.presentation() self.__selectingAllItems = False # Pretend we received one selection event for the select_all() call: self.onSelect() def clear_selection(self): self.__curselection = [] self.widget.clear_selection() def size(self): return self.widget.GetItemCount() def presentation(self): ''' Return the domain objects that this viewer is currently displaying. ''' return self.__presentation def setPresentation(self, presentation): ''' Change the presentation of the viewer. ''' self.__presentation = presentation def widgetCreationKeywordArguments(self): return {} def isViewerContainer(self): return False def isShowingTasks(self): return False def isShowingEffort(self): return False def isShowingCategories(self): return False def isShowingNotes(self): return False def isShowingAttachments(self): return False def visibleColumns(self): return [widgets.Column('subject', _('Subject'))] def bitmap(self): ''' Return the bitmap that represents this viewer. Used for the 'Viewer->New viewer' menu item, for example. ''' return self.defaultBitmap # Class attribute of concrete viewers def settingsSection(self): ''' Return the settings section of this viewer. ''' section = self.__settingsSection if self.__use_separate_settings_section and self.__instanceNumber > 0: # We're not the first viewer of our class, so we need a different # settings section than the default one. section += str(self.__instanceNumber) if not self.settings.has_section(section): # Our section does not exist yet. Create it and copy the # settings from the previous section as starting point. We're # copying from the previous section instead of the default # section so that when the user closes a viewer and then opens # a new one, the settings of that closed viewer are reused. self.settings.add_section(section, copyFromSection=self.previousSettingsSection()) return section def previousSettingsSection(self): ''' Return the settings section of the previous viewer of this class. ''' previousSectionNumber = self.__instanceNumber - 1 while previousSectionNumber > 0: previousSection = self.__settingsSection + str(previousSectionNumber) if self.settings.has_section(previousSection): return previousSection previousSectionNumber -= 1 return self.__settingsSection def hasModes(self): return False def getModeUICommands(self): return [] def isSortable(self): return False def getSortUICommands(self): return [] def isSearchable(self): return False def hasHideableColumns(self): return False def getColumnUICommands(self): return [] def isFilterable(self): return False def getFilterUICommands(self): return [] def supportsRounding(self): return False def getRoundingUICommands(self): return [] def createToolBarUICommands(self): ''' UI commands to put on the toolbar of this viewer. ''' table = wx.AcceleratorTable([(wx.ACCEL_CMD, ord('X'), wx.ID_CUT), (wx.ACCEL_CMD, ord('C'), wx.ID_COPY), (wx.ACCEL_CMD, ord('V'), wx.ID_PASTE), (wx.ACCEL_NORMAL, wx.WXK_RETURN, wx.ID_EDIT), (wx.ACCEL_CTRL, wx.WXK_DELETE, wx.ID_DELETE)]) self.SetAcceleratorTable(table) clipboardToolBarUICommands = self.createClipboardToolBarUICommands() creationToolBarUICommands = self.createCreationToolBarUICommands() editToolBarUICommands = self.createEditToolBarUICommands() actionToolBarUICommands = self.createActionToolBarUICommands() modeToolBarUICommands = self.createModeToolBarUICommands() def separator(uiCommands, *otherUICommands): return (None,) if (uiCommands and any(otherUICommands)) else () clipboardSeparator = separator(clipboardToolBarUICommands, creationToolBarUICommands, editToolBarUICommands, actionToolBarUICommands, modeToolBarUICommands) creationSeparator = separator(creationToolBarUICommands, editToolBarUICommands, actionToolBarUICommands, modeToolBarUICommands) editSeparator = separator(editToolBarUICommands, actionToolBarUICommands, modeToolBarUICommands) actionSeparator = separator(actionToolBarUICommands, modeToolBarUICommands) return clipboardToolBarUICommands + clipboardSeparator + \ creationToolBarUICommands + creationSeparator + \ editToolBarUICommands + editSeparator + \ actionToolBarUICommands + actionSeparator + \ modeToolBarUICommands def getToolBarPerspective(self): return self.settings.get(self.settingsSection(), 'toolbarperspective') def saveToolBarPerspective(self, perspective): self.settings.set(self.settingsSection(), 'toolbarperspective', perspective) def createClipboardToolBarUICommands(self): ''' UI commands for manipulating the clipboard (cut, copy, paste). ''' cutCommand = uicommand.EditCut(viewer=self) copyCommand = uicommand.EditCopy(viewer=self) pasteCommand = uicommand.EditPaste() cutCommand.bind(self, wx.ID_CUT) copyCommand.bind(self, wx.ID_COPY) pasteCommand.bind(self, wx.ID_PASTE) return cutCommand, copyCommand, pasteCommand def createCreationToolBarUICommands(self): ''' UI commands for creating new items. ''' return () def createEditToolBarUICommands(self): ''' UI commands for editing items. ''' editCommand = uicommand.Edit(viewer=self) self.deleteUICommand = uicommand.Delete(viewer=self) # For unittests pylint: disable=W0201 editCommand.bind(self, wx.ID_EDIT) self.deleteUICommand.bind(self, wx.ID_DELETE) return editCommand, self.deleteUICommand def createActionToolBarUICommands(self): ''' UI commands for actions. ''' return () def createModeToolBarUICommands(self): ''' UI commands for mode switches (e.g. list versus tree mode). ''' return () def newItemDialog(self, *args, **kwargs): bitmap = kwargs.pop('bitmap') newItemCommand = self.newItemCommand(*args, **kwargs) newItemCommand.do() return self.editItemDialog(newItemCommand.items, bitmap, items_are_new=True) def newSubItemDialog(self, bitmap): newSubItemCommand = self.newSubItemCommand() newSubItemCommand.do() return self.editItemDialog(newSubItemCommand.items, bitmap, items_are_new=True) def editItemDialog(self, items, bitmap, columnName='', items_are_new=False): Editor = self.itemEditorClass() return Editor(wx.GetTopLevelParent(self), items, self.settings, self.presentation(), self.taskFile, bitmap=bitmap, columnName=columnName, items_are_new=items_are_new) def itemEditorClass(self): raise NotImplementedError def newItemCommand(self, *args, **kwargs): return self.newItemCommandClass()(self.presentation(), *args, **kwargs) def newItemCommandClass(self): raise NotImplementedError def newSubItemCommand(self): return self.newSubItemCommandClass()(self.presentation(), self.curselection()) def newSubItemCommandClass(self): raise NotImplementedError def deleteItemCommand(self): return self.deleteItemCommandClass()(self.presentation(), self.curselection()) def deleteItemCommandClass(self): return command.DeleteCommand def cutItemCommand(self): return self.cutItemCommandClass()(self.presentation(), self.curselection()) def cutItemCommandClass(self): return command.CutCommand def onEditSubject(self, item, newValue): command.EditSubjectCommand(items=[item], newValue=newValue).do() def onEditDescription(self, item, newValue): command.EditDescriptionCommand(items=[item], newValue=newValue).do() def getItemTooltipData(self, item): lines = [line.rstrip('\r') for line in item.description().split('\n')] return [(None, lines)] if lines and lines != [''] else [] class CategorizableViewerMixin(object): def getItemTooltipData(self, item): return [('folder_blue_arrow_icon', [u', '.join(sorted([cat.subject() for cat in item.categories()]))] if item.categories() else [])] + \ super(CategorizableViewerMixin, self).getItemTooltipData(item) class WithAttachmentsViewerMixin(object): def getItemTooltipData(self, item): return [('paperclip_icon', sorted([unicode(attachment) for attachment in item.attachments()]))] + \ super(WithAttachmentsViewerMixin, self).getItemTooltipData(item) class ListViewer(Viewer): # pylint: disable=W0223 def isTreeViewer(self): return False def visibleItems(self): ''' Iterate over the items in the presentation. ''' for item in self.presentation(): yield item def getItemWithIndex(self, index): return self.presentation()[index] def getIndexOfItem(self, item): return self.presentation().index(item) def selectNextItemsAfterRemoval(self, removedItems): pass # Done automatically by list controls class TreeViewer(Viewer): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.__selectionIndex = 0 super(TreeViewer, self).__init__(*args, **kwargs) self.widget.Bind(wx.EVT_TREE_ITEM_EXPANDED, self.onItemExpanded) self.widget.Bind(wx.EVT_TREE_ITEM_COLLAPSED, self.onItemCollapsed) def onItemExpanded(self, event): self.__handleExpandedOrCollapsedItem(event, expanded=True) def onItemCollapsed(self, event): self.__handleExpandedOrCollapsedItem(event, expanded=False) def __handleExpandedOrCollapsedItem(self, event, expanded): event.Skip() treeItem = event.GetItem() # If we get an expanded or collapsed event for the root item, ignore it if treeItem == self.widget.GetRootItem(): return item = self.widget.GetItemPyData(treeItem) item.expand(expanded, context=self.settingsSection()) def expandAll(self): ''' Expand all items, recursively. ''' # Since the widget does not send EVT_TREE_ITEM_EXPANDED when expanding # all items, we have to do the bookkeeping ourselves: for item in self.visibleItems(): item.expand(True, context=self.settingsSection(), notify=False) self.refresh() def collapseAll(self): ''' Collapse all items, recursively. ''' # Since the widget does not send EVT_TREE_ITEM_COLLAPSED when collapsing # all items, we have to do the bookkeeping ourselves: for item in self.visibleItems(): item.expand(False, context=self.settingsSection(), notify=False) self.refresh() def isAnyItemExpandable(self): return self.widget.isAnyItemExpandable() def isAnyItemCollapsable(self): return self.widget.isAnyItemCollapsable() def isTreeViewer(self): return True def select(self, items): for item in items: self.__expandItemRecursively(item) self.refresh() super(TreeViewer, self).select(items) def __expandItemRecursively(self, item): parent = self.getItemParent(item) if parent: parent.expand(True, context=self.settingsSection(), notify=False) self.__expandItemRecursively(parent) def selectNextItemsAfterRemoval(self, removedItems): parents = [self.getItemParent(item) for item in removedItems] parents = [parent for parent in parents if parent in self.presentation()] parent = parents[0] if parents else None siblings = self.children(parent) newSelection = siblings[min(len(siblings) - 1, self.__selectionIndex)] if siblings else parent if newSelection: self.select([newSelection]) def updateSelection(self, *args, **kwargs): super(TreeViewer, self).updateSelection(*args, **kwargs) curselection = self.curselection() if curselection: siblings = self.children(self.getItemParent(curselection[0])) self.__selectionIndex = siblings.index(curselection[0]) if curselection[0] in siblings else 0 else: self.__selectionIndex = 0 def visibleItems(self): ''' Iterate over the items in the presentation. ''' def yieldItemsAndChildren(items): sortedItems = [item for item in self.presentation() if item in items] for item in sortedItems: yield item children = self.children(item) if children: for child in yieldItemsAndChildren(children): yield child for item in yieldItemsAndChildren(self.getRootItems()): yield item def getRootItems(self): ''' Allow for overriding what the rootItems are. ''' return self.presentation().rootItems() def getItemParent(self, item): ''' Allow for overriding what the parent of an item is. ''' return item.parent() def getItemExpanded(self, item): return item.isExpanded(context=self.settingsSection()) def children(self, parent=None): if parent: children = parent.children() if children: return [child for child in self.presentation() if child in children] else: return [] else: return self.getRootItems() def getItemText(self, item): return item.subject() class ViewerWithColumns(Viewer): # pylint: disable=W0223 def __init__(self, *args, **kwargs): self.__initDone = False self._columns = [] self.__visibleColumns = [] self.__columnUICommands = [] super(ViewerWithColumns, self).__init__(*args, **kwargs) self.initColumns() self.__initDone = True self.refresh() def hasHideableColumns(self): return True def hasOrderingColumn(self): for column in self.__visibleColumns: if column.name() == 'ordering': return True return False def getColumnUICommands(self): if not self.__columnUICommands: self.__columnUICommands = self.createColumnUICommands() return self.__columnUICommands def createColumnUICommands(self): raise NotImplementedError def refresh(self, *args, **kwargs): if self and self.__initDone: super(ViewerWithColumns, self).refresh(*args, **kwargs) def initColumns(self): for column in self.columns(): self.initColumn(column) if self.hasOrderingColumn(): self.widget.SetResizeColumn(1) self.widget.SetMainColumn(1) def initColumn(self, column): if column.name() in self.settings.getlist(self.settingsSection(), 'columnsalwaysvisible'): show = True else: show = column.name() in self.settings.getlist(self.settingsSection(), 'columns') self.widget.showColumn(column, show=show) if show: self.__visibleColumns.append(column) self.__startObserving(column.eventTypes()) def showColumnByName(self, columnName, show=True): for column in self.hideableColumns(): if columnName == column.name(): isVisibleColumn = self.isVisibleColumn(column) if (show and not isVisibleColumn) or \ (not show and isVisibleColumn): self.showColumn(column, show) break def showColumn(self, column, show=True, refresh=True): if column.name() == 'ordering': self.widget.SetResizeColumn(1 if show else 0) self.widget.SetMainColumn(1 if show else 0) if show: self.__visibleColumns.append(column) # Make sure we keep the columns in the right order: self.__visibleColumns = [c for c in self.columns() if \ c in self.__visibleColumns] self.__startObserving(column.eventTypes()) else: self.__visibleColumns.remove(column) self.__stopObserving(column.eventTypes()) self.widget.showColumn(column, show) self.settings.set(self.settingsSection(), 'columns', str([column.name() for column in self.__visibleColumns])) if refresh: self.widget.RefreshAllItems(len(self.presentation())) def hideColumn(self, visibleColumnIndex): column = self.visibleColumns()[visibleColumnIndex] self.showColumn(column, show=False) def columns(self): return self._columns def selectableColumns(self): return self._columns def isVisibleColumnByName(self, columnName): return columnName in [column.name() for column in self.__visibleColumns] def isVisibleColumn(self, column): return column in self.__visibleColumns def visibleColumns(self): return self.__visibleColumns def hideableColumns(self): return [column for column in self._columns if column.name() not in \ self.settings.getlist(self.settingsSection(), 'columnsalwaysvisible')] def isHideableColumn(self, visibleColumnIndex): column = self.visibleColumns()[visibleColumnIndex] unhideableColumns = self.settings.getlist(self.settingsSection(), 'columnsalwaysvisible') return column.name() not in unhideableColumns def getColumnWidth(self, columnName): columnWidths = self.settings.getdict(self.settingsSection(), 'columnwidths') defaultWidth = 28 if columnName == 'ordering' else hypertreelist._DEFAULT_COL_WIDTH # pylint: disable=W0212 return columnWidths.get(columnName, defaultWidth) def onResizeColumn(self, column, width): columnWidths = self.settings.getdict(self.settingsSection(), 'columnwidths') columnWidths[column.name()] = width self.settings.setdict(self.settingsSection(), 'columnwidths', columnWidths) def validateDrag(self, dropItem, dragItems, columnIndex): if columnIndex == -1 or self.visibleColumns()[columnIndex].name() != 'ordering': return None # Normal behavior # Ordering if not self.isTreeViewer(): return True # Tree mode. Only allow drag if all selected items are siblings. if len(set([item.parent() for item in dragItems])) >= 2: wx.GetTopLevelParent(self).AddBalloonTip(self.settings, 'treemanualordering', self, title=_('Reordering in tree mode'), getRect=lambda: wx.Rect(0, 0, 28, 16), message=_('''When in tree mode, manual ordering is only possible when all selected items are siblings.''')) return False # If they are, only allow drag at the same level if dragItems[0].parent() != (None if dropItem is None else dropItem.parent()): wx.GetTopLevelParent(self).AddBalloonTip(self.settings, 'treechildrenmanualordering', self, title=_('Reordering in tree mode'), getRect=lambda: wx.Rect(0, 0, 28, 16), message=_('''When in tree mode, you can only put objects at the same level (parent).''')) return False return True def getItemText(self, item, column=None): if column is None: column = 1 if self.hasOrderingColumn() else 0 column = self.visibleColumns()[column] return column.render(item) def getItemImages(self, item, column=0): column = self.visibleColumns()[column] return column.imageIndices(item) def hasColumnImages(self, column): return self.visibleColumns()[column].hasImages() def subjectImageIndices(self, item): normalIcon = item.icon(recursive=True) selectedIcon = item.selectedIcon(recursive=True) or normalIcon normalImageIndex = self.imageIndex[normalIcon] if normalIcon else -1 selectedImageIndex = self.imageIndex[selectedIcon] if selectedIcon else -1 return {wx.TreeItemIcon_Normal: normalImageIndex, wx.TreeItemIcon_Expanded: selectedImageIndex} def __startObserving(self, eventTypes): for eventType in eventTypes: if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: self.registerObserver(self.onAttributeChanged_Deprecated, eventType=eventType) def __stopObserving(self, eventTypes): # Collect the event types that the currently visible columns are # interested in and make sure we don't stop observing those event types. eventTypesOfVisibleColumns = [] for column in self.visibleColumns(): eventTypesOfVisibleColumns.extend(column.eventTypes()) for eventType in eventTypes: if eventType not in eventTypesOfVisibleColumns: if eventType.startswith('pubsub'): pub.unsubscribe(self.onAttributeChanged, eventType) else: self.removeObserver(self.onAttributeChanged_Deprecated, eventType=eventType) def renderCategories(self, item): return self.renderSubjectsOfRelatedItems(item, item.categories) def renderSubjectsOfRelatedItems(self, item, getItems): subjects = [] ownItems = getItems(recursive=False) if ownItems: subjects.append(self.renderSubjects(ownItems)) isListViewer = not self.isTreeViewer() # pylint: disable=E1101 if isListViewer or self.isItemCollapsed(item): childItems = [theItem for theItem in getItems(recursive=True, upwards=isListViewer) if theItem not in ownItems] if childItems: subjects.append('(%s)' % self.renderSubjects(childItems)) return ' '.join(subjects) @staticmethod def renderSubjects(items): subjects = [item.subject(recursive=True) for item in items] return ', '.join(sorted(subjects)) @staticmethod def renderCreationDateTime(item, humanReadable=True): return render.dateTime(item.creationDateTime(), humanReadable=humanReadable) @staticmethod def renderModificationDateTime(item, humanReadable=True): return render.dateTime(item.modificationDateTime(), humanReadable=humanReadable) def isItemCollapsed(self, item): # pylint: disable=E1101 # pylint: disable=E1101 return not self.getItemExpanded(item) \ if self.isTreeViewer() and item.children() else False class SortableViewerWithColumns(mixin.SortableViewerMixin, ViewerWithColumns): # pylint: disable=W0223 def initColumn(self, column): super(SortableViewerWithColumns, self).initColumn(column) if self.isSortedBy(column.name()): self.widget.showSortColumn(column) self.showSortOrder() def setSortOrderAscending(self, *args, **kwargs): # pylint: disable=W0221 super(SortableViewerWithColumns, self).setSortOrderAscending(*args, **kwargs) self.showSortOrder() def sortBy(self, *args, **kwargs): # pylint: disable=W0221 super(SortableViewerWithColumns, self).sortBy(*args, **kwargs) self.showSortColumn() self.showSortOrder() def showSortColumn(self): for column in self.columns(): if self.isSortedBy(column.name()): self.widget.showSortColumn(column) break def showSortOrder(self): self.widget.showSortOrder(self.imageIndex[self.getSortOrderImage()]) def getSortOrderImage(self): return 'arrow_up_icon' if self.isSortOrderAscending() else 'arrow_down_icon' taskcoach-1.4.3/taskcoachlib/gui/viewer/category.py000066400000000000000000000257421265347643000224060ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import command, widgets from taskcoachlib.domain import category from taskcoachlib.i18n import _ from taskcoachlib.gui import uicommand, menu, dialog import base import mixin import inplace_editor class BaseCategoryViewer(mixin.AttachmentDropTargetMixin, # pylint: disable=W0223 mixin.FilterableViewerMixin, mixin.SortableViewerForCategoriesMixin, mixin.SearchableViewerMixin, base.WithAttachmentsViewerMixin, mixin.NoteColumnMixin, mixin.AttachmentColumnMixin, base.SortableViewerWithColumns, base.TreeViewer): SorterClass = category.CategorySorter defaultTitle = _('Categories') defaultBitmap = 'folder_blue_arrow_icon' def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'categoryviewer') super(BaseCategoryViewer, self).__init__(*args, **kwargs) for eventType in [category.Category.subjectChangedEventType(), category.Category.appearanceChangedEventType(), category.Category.exclusiveSubcategoriesChangedEventType(), category.Category.filterChangedEventType()]: self.registerObserver(self.onAttributeChanged_Deprecated, eventType) def domainObjectsToView(self): return self.taskFile.categories() def curselectionIsInstanceOf(self, class_): return class_ == category.Category def createWidget(self): imageList = self.createImageList() # Has side-effects self._columns = self._createColumns() itemPopupMenu = self.createCategoryPopupMenu() columnPopupMenu = menu.ColumnPopupMenu(self) self._popupMenus.extend([itemPopupMenu, columnPopupMenu]) widget = widgets.CheckTreeCtrl(self, self._columns, self.onSelect, self.onCheck, uicommand.Edit(viewer=self), uicommand.CategoryDragAndDrop(viewer=self, categories=self.presentation()), itemPopupMenu, columnPopupMenu, resizeableColumn=1 if self.hasOrderingColumn() else 0, validateDrag=self.validateDrag, **self.widgetCreationKeywordArguments()) if self.hasOrderingColumn(): widget.SetMainColumn(1) widget.AssignImageList(imageList) # pylint: disable=E1101 return widget def createCategoryPopupMenu(self, localOnly=False): return menu.CategoryPopupMenu(self.parent, self.settings, self.taskFile, self, localOnly) def _createColumns(self): # pylint: disable=W0142,E1101 kwargs = dict(resizeCallback=self.onResizeColumn) columns = [widgets.Column('ordering', u'', category.Category.orderingChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='ordering'), imageIndicesCallback=self.orderingImageIndices, renderCallback=lambda category: '', width=self.getColumnWidth('ordering')), widgets.Column('subject', _('Subject'), category.Category.subjectChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='subject'), imageIndicesCallback=self.subjectImageIndices, width=self.getColumnWidth('subject'), editCallback=self.onEditSubject, editControl=inplace_editor.SubjectCtrl, **kwargs), widgets.Column('description', _('Description'), category.Category.descriptionChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='description'), renderCallback=lambda category: category.description(), width=self.getColumnWidth('description'), editCallback=self.onEditDescription, editControl=inplace_editor.DescriptionCtrl, **kwargs), widgets.Column('attachments', '', category.Category.attachmentsChangedEventType(), # pylint: disable=E1101 width=self.getColumnWidth('attachments'), alignment=wx.LIST_FORMAT_LEFT, imageIndicesCallback=self.attachmentImageIndices, headerImageIndex=self.imageIndex['paperclip_icon'], renderCallback=lambda category: '', **kwargs)] columns.append(widgets.Column('notes', '', category.Category.notesChangedEventType(), # pylint: disable=E1101 width=self.getColumnWidth('notes'), alignment=wx.LIST_FORMAT_LEFT, imageIndicesCallback=self.noteImageIndices, headerImageIndex=self.imageIndex['note_icon'], renderCallback=lambda category: '', **kwargs)) columns.append(widgets.Column('creationDateTime', _('Creation date'), width=self.getColumnWidth('creationDateTime'), renderCallback=self.renderCreationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='creationDateTime'), **kwargs)) columns.append(widgets.Column('modificationDateTime', _('Modification date'), width=self.getColumnWidth('modificationDateTime'), renderCallback=self.renderModificationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='modificationDateTime'), *category.Category.modificationEventTypes(), **kwargs)) return columns def createCreationToolBarUICommands(self): return (uicommand.CategoryNew(categories=self.presentation(), settings=self.settings), uicommand.NewSubItem(viewer=self)) def createColumnUICommands(self): commands = [\ uicommand.ToggleAutoColumnResizing(viewer=self, settings=self.settings), None, uicommand.ViewColumn(menuText=_('&Manual ordering'), helpText=_('Show/hide the manual ordering column'), setting='ordering', viewer=self), uicommand.ViewColumn(menuText=_('&Description'), helpText=_('Show/hide description column'), setting='description', viewer=self), uicommand.ViewColumn(menuText=_('&Attachments'), helpText=_('Show/hide attachments column'), setting='attachments', viewer=self)] commands.append(uicommand.ViewColumn(menuText=_('&Notes'), helpText=_('Show/hide notes column'), setting='notes', viewer=self)) commands.append(uicommand.ViewColumn(menuText=_('&Creation date'), helpText=_('Show/hide creation date column'), setting='creationDateTime', viewer=self)) commands.append(uicommand.ViewColumn(menuText=_('&Modification date'), helpText=_('Show/hide last modification date column'), setting='modificationDateTime', viewer=self)) return commands def onAttributeChanged(self, newValue, sender): super(BaseCategoryViewer, self).onAttributeChanged(newValue, sender) def onAttributeChanged_Deprecated(self, event): if category.Category.exclusiveSubcategoriesChangedEventType() in event.types(): # We need to refresh the children of the changed item as well # because they have to use radio buttons instead of checkboxes, or # vice versa: items = event.sources() for item in items.copy(): items |= set(item.children()) self.widget.RefreshItems(*items) # pylint: disable=W0142 else: super(BaseCategoryViewer, self).onAttributeChanged_Deprecated(event) def onCheck(self, event, final): categoryToFilter = self.widget.GetItemPyData(event.GetItem()) categoryToFilter.setFiltered(event.GetItem().IsChecked()) self.sendViewerStatusEvent() # Notify status observers like the status bar def getIsItemChecked(self, item): if isinstance(item, category.Category): return item.isFiltered() return False def getItemParentHasExclusiveChildren(self, item): parent = item.parent() return parent and parent.hasExclusiveSubcategories() def isShowingCategories(self): return True def statusMessages(self): status1 = _('Categories: %d selected, %d total') % \ (len(self.curselection()), len(self.presentation())) filteredCategories = self.presentation().filteredCategories() status2 = _('Status: %d filtered') % len(filteredCategories) return status1, status2 def itemEditorClass(self): return dialog.editor.CategoryEditor def newItemCommandClass(self): return command.NewCategoryCommand def newSubItemCommandClass(self): return command.NewSubCategoryCommand def deleteItemCommandClass(self): return command.DeleteCategoryCommand class CategoryViewer(BaseCategoryViewer): # pylint: disable=W0223 def __init__(self, *args, **kwargs): super(CategoryViewer, self).__init__(*args, **kwargs) self.filterUICommand.setChoice(self.settings.getboolean('view', 'categoryfiltermatchall')) def createModeToolBarUICommands(self): # pylint: disable=W0201 self.filterUICommand = \ uicommand.CategoryViewerFilterChoice(settings=self.settings) return super(CategoryViewer, self).createModeToolBarUICommands() + \ (self.filterUICommand,) taskcoach-1.4.3/taskcoachlib/gui/viewer/container.py000066400000000000000000000176101265347643000225460ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system from taskcoachlib.gui import menu from taskcoachlib.thirdparty.pubsub import pub import taskcoachlib.thirdparty.aui as aui import wx class ViewerContainer(object): ''' ViewerContainer is a container of viewers. It has a containerWidget that displays the viewers. The containerWidget is assumed to be an AUI managed frame. The ViewerContainer knows which of its viewers is active and dispatches method calls to the active viewer or to the first viewer that can handle the method. This allows other GUI components, e.g. menu's, to talk to the ViewerContainer as were it a regular viewer. ''' def __init__(self, containerWidget, settings, *args, **kwargs): self.containerWidget = containerWidget self._notifyActiveViewer = False self.__bind_event_handlers() self._settings = settings self.viewers = [] super(ViewerContainer, self).__init__(*args, **kwargs) def componentsCreated(self): self._notifyActiveViewer = True def advanceSelection(self, forward): ''' Activate the next viewer if forward is true else the previous viewer. ''' if len(self.viewers) <= 1: return # Not enough viewers to advance selection active_viewer = self.activeViewer() current_index = self.viewers.index(active_viewer) if active_viewer else 0 minimum_index, maximum_index = 0, len(self.viewers) - 1 if forward: new_index = current_index + 1 if minimum_index <= current_index < maximum_index else minimum_index else: new_index = current_index - 1 if minimum_index < current_index <= maximum_index else maximum_index self.activateViewer(self.viewers[new_index]) def isViewerContainer(self): ''' Return whether this is a viewer container or an actual viewer. ''' return True def __bind_event_handlers(self): ''' Register for pane closing, activating and floating events. ''' self.containerWidget.Bind(aui.EVT_AUI_PANE_CLOSE, self.onPageClosed) self.containerWidget.Bind(aui.EVT_AUI_PANE_ACTIVATED, self.onPageChanged) self.containerWidget.Bind(aui.EVT_AUI_PANE_FLOATED, self.onPageFloated) def __getitem__(self, index): return self.viewers[index] def __len__(self): return len(self.viewers) def addViewer(self, viewer, floating=False): ''' Add a new pane with the specified viewer. ''' self.containerWidget.addPane(viewer, viewer.title(), floating=floating) self.viewers.append(viewer) if len(self.viewers) == 1: self.activateViewer(viewer) pub.subscribe(self.onStatusChanged, viewer.viewerStatusEventType()) def closeViewer(self, viewer): ''' Close the specified viewer. ''' if viewer == self.activeViewer(): self.advanceSelection(False) pane = self.containerWidget.manager.GetPane(viewer) self.containerWidget.manager.ClosePane(pane) def __getattr__(self, attribute): ''' Forward unknown attributes to the active viewer or the first viewer if there is no active viewer. ''' return getattr(self.activeViewer() or self.viewers[0], attribute) def activeViewer(self): ''' Return the active (selected) viewer. ''' all_panes = self.containerWidget.manager.GetAllPanes() for pane in all_panes: if pane.IsToolbar(): continue if pane.HasFlag(pane.optionActive): if pane.IsNotebookControl(): notebook = aui.GetNotebookRoot(all_panes, pane.notebook_id) return notebook.window.GetCurrentPage() else: return pane.window return None def activateViewer(self, viewer_to_activate): ''' Activate (select) the specified viewer. ''' self.containerWidget.manager.ActivatePane(viewer_to_activate) paneInfo = self.containerWidget.manager.GetPane(viewer_to_activate) if paneInfo.IsNotebookPage(): self.containerWidget.manager.ShowPane(viewer_to_activate, True) self.sendViewerStatusEvent() def __del__(self): pass # Don't forward del to one of the viewers. def onStatusChanged(self, viewer): if self.activeViewer() == viewer: self.sendViewerStatusEvent() pub.sendMessage('all.viewer.status', viewer=viewer) def onPageChanged(self, event): self.__ensure_active_viewer_has_focus() self.sendViewerStatusEvent() if self._notifyActiveViewer and self.activeViewer() is not None: self.activeViewer().activate() event.Skip() def sendViewerStatusEvent(self): pub.sendMessage('viewer.status') def __ensure_active_viewer_has_focus(self): if not self.activeViewer(): return window = wx.Window.FindFocus() if operating_system.isMacOsXTiger_OrOlder() and window is None: # If the SearchCtrl has focus on Mac OS X Tiger, # wx.Window.FindFocus returns None. If we would continue, # the focus would be set to the active viewer right away, # making it impossible for the user to type in the search # control. return while window: if window == self.activeViewer(): break window = window.GetParent() else: wx.CallAfter(self.activeViewer().SetFocus) def onPageClosed(self, event): if event.GetPane().IsToolbar(): return window = event.GetPane().window if hasattr(window, 'GetPage'): # Window is a notebook, close each of its pages for pageIndex in range(window.GetPageCount()): self.__close_viewer(window.GetPage(pageIndex)) else: # Window is a viewer, close it self.__close_viewer(window) # Make sure we have an active viewer if not self.activeViewer(): self.activateViewer(self.viewers[0]) event.Skip() def __close_viewer(self, viewer): ''' Close the specified viewer and unsubscribe all its event handlers. ''' # When closing an AUI managed frame, we get two close events, # be prepared: if viewer in self.viewers: self.viewers.remove(viewer) viewer.detach() @staticmethod def onPageFloated(event): ''' Give floating pane accelerator keys for activating next and previous viewer. ''' viewer = event.GetPane().window table = wx.AcceleratorTable([(wx.ACCEL_CTRL, wx.WXK_PAGEDOWN, menu.activateNextViewerId), (wx.ACCEL_CTRL, wx.WXK_PAGEUP, menu.activatePreviousViewerId)]) viewer.SetAcceleratorTable(table) taskcoach-1.4.3/taskcoachlib/gui/viewer/effort.py000066400000000000000000000661221265347643000220530ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import command, widgets, domain, render from taskcoachlib.domain import effort, date from taskcoachlib.domain.base import filter # pylint: disable=W0622 from taskcoachlib.gui import uicommand, menu, dialog from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub import base import mixin import refresher import wx class EffortViewer(base.ListViewer, mixin.FilterableViewerForCategorizablesMixin, mixin.SortableViewerForEffortMixin, mixin.SearchableViewerMixin, base.SortableViewerWithColumns): defaultTitle = _('Effort') defaultBitmap = 'clock_icon' SorterClass = effort.EffortSorter def __init__(self, parent, taskFile, settings, *args, **kwargs): kwargs.setdefault('settingsSection', 'effortviewer') self.__tasksToShowEffortFor = kwargs.pop('tasksToShowEffortFor', []) self.aggregation = 'details' # Temporary value, will be properly set below self.__hiddenWeekdayColumns = [] self.__hiddenTotalColumns = [] self.__columnUICommands = None self.__domainObjectsToView = None super(EffortViewer, self).__init__(parent, taskFile, settings, *args, **kwargs) self.secondRefresher = refresher.SecondRefresher(self, effort.Effort.trackingChangedEventType()) self.aggregation = settings.get(self.settingsSection(), 'aggregation') self.__initModeToolBarUICommands() self.registerObserver(self.onAttributeChanged_Deprecated, eventType=effort.Effort.appearanceChangedEventType()) pub.subscribe(self.onRoundingChanged, 'settings.%s.round' % self.settingsSection()) pub.subscribe(self.onRoundingChanged, 'settings.%s.alwaysroundup' % self.settingsSection()) pub.subscribe(self.on_aggregation_changed, 'settings.%s.aggregation' % self.settingsSection()) pub.subscribe(self.onHourDisplayChanged, 'settings.feature.decimaltime') def selectableColumns(self): columns = list() for column in self.columns(): if column.name().startswith('total') and self.aggregation == 'details': continue if column.name() in ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'] and self.aggregation != 'week': continue columns.append(column) return columns def tasksToShowEffortFor(self): return self.__tasksToShowEffortFor def onRoundingChanged(self, value): # pylint: disable=W0613 self.__initRoundingToolBarUICommands() self.refresh() def onHourDisplayChanged(self, value): self.refresh() def __initModeToolBarUICommands(self): self.aggregationUICommand.setChoice(self.aggregation) self.__initRoundingToolBarUICommands() def __initRoundingToolBarUICommands(self): aggregated = self.isShowingAggregatedEffort() rounding = self.__round_precision() if aggregated else 0 self.roundingUICommand.setChoice(rounding) self.roundingUICommand.enable(aggregated) self.alwaysRoundUpUICommand.setValue(self.__always_round_up()) self.alwaysRoundUpUICommand.enable(aggregated and rounding != 0) def domainObjectsToView(self): if self.__domainObjectsToView is None: if self.__displayingNewTasks(): tasks = self.tasksToShowEffortFor() else: tasks = domain.base.SelectedItemsFilter(self.taskFile.tasks(), selectedItems=self.tasksToShowEffortFor()) self.__domainObjectsToView = tasks return self.__domainObjectsToView def __displayingNewTasks(self): return any([task not in self.taskFile.tasks() for task in self.tasksToShowEffortFor()]) def detach(self): super(EffortViewer, self).detach() self.secondRefresher.removeInstance() def isShowingEffort(self): return True def curselectionIsInstanceOf(self, class_): return class_ == effort.Effort def on_aggregation_changed(self, value): self.__show_effort_aggregation(value) def __show_effort_aggregation(self, aggregation): ''' Change the aggregation mode. Can be one of 'details', 'day', 'week' and 'month'. ''' assert aggregation in ('details', 'day', 'week', 'month') self.aggregation = aggregation self._refresh() def _refresh(self, clear=False): if clear: self.__domainObjectsToView = None self.setPresentation(self.createSorter(self.createFilter(\ self.domainObjectsToView()))) self.secondRefresher.updatePresentation() self.registerPresentationObservers() # Invalidate the UICommands used for the column popup menu: self.__columnUICommands = None # Clear the selection to remove the cached selection self.clear_selection() # If the widget is auto-resizing columns, turn it off temporarily to # make removing/adding columns faster autoResizing = self.widget.IsAutoResizing() if autoResizing: self.widget.ToggleAutoResizing(False) # Refresh first so that the list control doesn't think there are more # efforts than there really are when switching from aggregate mode to # detail mode. self.refresh() self._showWeekdayColumns(show=self.aggregation == 'week') self._showTotalColumns(show=self.aggregation != 'details') if autoResizing: self.widget.ToggleAutoResizing(True) self.__initRoundingToolBarUICommands() pub.sendMessage('effortviewer.aggregation') def isShowingAggregatedEffort(self): return self.aggregation != 'details' def createFilter(self, taskList): ''' Return a class that filters the original list. In this case we create an effort aggregator that aggregates the effort records in the taskList, either individually (i.e. no aggregation), per day, per week, or per month. ''' aggregation = self.settings.get(self.settingsSection(), 'aggregation') deletedFilter = filter.DeletedFilter(taskList) categoryFilter = super(EffortViewer, self).createFilter(deletedFilter) searchFilter = filter.SearchFilter(self.createAggregator(categoryFilter, aggregation)) return searchFilter def createAggregator(self, taskList, aggregation): ''' Return an instance of a class that aggregates the effort records in the taskList, either: - individually (aggregation == 'details'), - per day (aggregation == 'day'), - per week ('week'), or - per month ('month'). ''' if aggregation == 'details': aggregator = effort.EffortList(taskList) else: aggregator = effort.EffortAggregator(taskList, aggregation=aggregation) return aggregator def createWidget(self): imageList = self.createImageList() # Has side-effects self._columns = self._createColumns() # pylint: disable=W0201 itemPopupMenu = menu.EffortPopupMenu(self.parent, self.taskFile.tasks(), self.taskFile.efforts(), self.settings, self) columnPopupMenu = menu.EffortViewerColumnPopupMenu(self) self._popupMenus.extend([itemPopupMenu, columnPopupMenu]) widget = widgets.VirtualListCtrl(self, self.columns(), self.onSelect, uicommand.Edit(viewer=self), itemPopupMenu, columnPopupMenu, resizeableColumn=1, **self.widgetCreationKeywordArguments()) widget.AssignImageList(imageList, wx.IMAGE_LIST_SMALL) # pylint: disable=E1101 return widget def _createColumns(self): # pylint: disable=W0142 kwargs = dict(resizeCallback=self.onResizeColumn) return [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, sortCallback=sortCallback, width=self.getColumnWidth(name), **kwargs) \ for name, columnHeader, eventType, renderCallback, sortCallback in \ ('period', _('Period'), effort.Effort.durationChangedEventType(), self.__renderPeriod, uicommand.ViewerSortByCommand(viewer=self, value='period')), ('task', _('Task'), effort.Effort.taskChangedEventType(), lambda effort: effort.task().subject(recursive=True), None), ('description', _('Description'), effort.Effort.descriptionChangedEventType(), lambda effort: effort.description(), None)] + \ [widgets.Column('categories', _('Categories'), width=self.getColumnWidth('categories'), renderCallback=self.renderCategories, **kwargs)] + \ [widgets.Column(name, columnHeader, eventType, width=self.getColumnWidth(name), renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, **kwargs) \ for name, columnHeader, eventType, renderCallback in \ ('timeSpent', _('Time spent'), effort.Effort.durationChangedEventType(), self.__renderTimeSpent), ('totalTimeSpent', _('Total time spent'), effort.Effort.durationChangedEventType(), self.__renderTotalTimeSpent), ('revenue', _('Revenue'), effort.Effort.revenueChangedEventType(), self.__renderRevenue), ('totalRevenue', _('Total revenue'), effort.Effort.revenueChangedEventType(), self.__renderTotalRevenue)] + \ [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, width=self.getColumnWidth(name), **kwargs) \ for name, columnHeader, eventType, renderCallback in \ ('monday', _('Monday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 0)), ('tuesday', _('Tuesday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 1)), ('wednesday', _('Wednesday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 2)), ('thursday', _('Thursday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 3)), ('friday', _('Friday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 4)), ('saturday', _('Saturday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 5)), ('sunday', _('Sunday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 6)) ] def _showWeekdayColumns(self, show=True): if show: columnsToShow = self.__hiddenWeekdayColumns[:] self.__hiddenWeekdayColumns = [] else: self.__hiddenWeekdayColumns = columnsToShow = \ [column for column in self.visibleColumns() \ if column.name() in ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']] for column in columnsToShow: self.showColumn(column, show, refresh=False) def _showTotalColumns(self, show=True): if show: columnsToShow = self.__hiddenTotalColumns[:] self.__hiddenTotalColumns = [] else: self.__hiddenTotalColumns = columnsToShow = \ [column for column in self.visibleColumns() \ if column.name().startswith('total')] for column in columnsToShow: self.showColumn(column, show, refresh=False) def getColumnUICommands(self): # Create new UI commands every time since the UI commands depend on the # aggregation mode columnUICommands = \ [uicommand.ToggleAutoColumnResizing(viewer=self, settings=self.settings), None, uicommand.ViewColumn(menuText=_('&Description'), helpText=_('Show/hide description column'), setting='description', viewer=self), uicommand.ViewColumn(menuText=_('&Categories'), helpText=_('Show/hide categories column'), setting='categories', viewer=self), uicommand.ViewColumn(menuText=_('&Time spent'), helpText=_('Show/hide time spent column'), setting='timeSpent', viewer=self), uicommand.ViewColumn(menuText=_('&Revenue'), helpText=_('Show/hide revenue column'), setting='revenue', viewer=self),] if self.aggregation != 'details': columnUICommands.insert(5, uicommand.ViewColumn(menuText=_('&Total time spent'), helpText=_('Show/hide total time spent column'), setting='totalTimeSpent', viewer=self)) columnUICommands.insert(7, uicommand.ViewColumn(menuText=_('&Total revenue'), helpText=_('Show/hide total revenue column'), setting='totalRevenue', viewer=self)) if self.aggregation == 'week': columnUICommands.append(\ uicommand.ViewColumns(menuText=_('Effort per weekday'), helpText=_('Show/hide time spent per weekday columns'), setting=['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'], viewer=self)) return columnUICommands def createCreationToolBarUICommands(self): return (uicommand.EffortNew(viewer=self, effortList=self.presentation(), taskList=self.taskFile.tasks(), settings=self.settings),) def createActionToolBarUICommands(self): tasks = self.taskFile.tasks() return (uicommand.EffortStartForEffort(viewer=self, taskList=tasks), uicommand.EffortStop(viewer=self, effortList=self.taskFile.efforts(), taskList=tasks)) def createModeToolBarUICommands(self): # These are instance variables so that the choice can be changed # programmatically # pylint: disable=W0201 self.aggregationUICommand = \ uicommand.EffortViewerAggregationChoice(viewer=self, settings=self.settings) self.roundingUICommand = uicommand.RoundingPrecision(viewer=self, settings=self.settings) self.alwaysRoundUpUICommand = uicommand.AlwaysRoundUp(viewer=self, settings=self.settings) return (self.aggregationUICommand, self.roundingUICommand, self.alwaysRoundUpUICommand) def supportsRounding(self): return True def getRoundingUICommands(self): return [uicommand.AlwaysRoundUp(viewer=self, settings=self.settings), None] + \ [uicommand.RoundBy(menuText=menuText, value=value, viewer=self, settings=self.settings) \ for (menuText, value) in zip(uicommand.RoundingPrecision.choiceLabels, uicommand.RoundingPrecision.choiceData)] def hasModes(self): return True def getModeUICommands(self): return [_('Effort aggregation'), None] + \ [uicommand.EffortViewerAggregationOption(menuText=menuText, value=value, viewer=self, settings=self.settings) for (menuText, value) in zip(uicommand.EffortViewerAggregationChoice.choiceLabels, uicommand.EffortViewerAggregationChoice.choiceData)] def getItemImages(self, index, column=0): # pylint: disable=W0613 return {wx.TreeItemIcon_Normal: -1} def curselection(self): selection = super(EffortViewer, self).curselection() if self.aggregation != 'details': selection = [anEffort for compositeEffort in selection \ for anEffort in compositeEffort] return selection def isselected(self, item): ''' When this viewer is in aggregation mode, L{curselection} returns the actual underlying L{Effort} objects instead of aggregates. This is a problem e.g. when exporting only a selection, since items we're iterating over (aggregates) are never in curselection(). This method is used instead. It just ignores the overridden version of curselection. ''' return item in super(EffortViewer, self).curselection() def __sumTimeSpent(self, efforts): td = date.TimeDelta() for effort in efforts: td = td + effort.duration() sumTimeSpent = render.timeSpent(td, showSeconds=self.__show_seconds(), decimal=self.settings.getboolean('feature', 'decimaltime')) if sumTimeSpent == '': if self.settings.getboolean('feature', 'decimaltime'): sumTimeSpent = '0.0' elif self.__show_seconds(): sumTimeSpent = '0:00:00' else: sumTimeSpent = '0:00' return sumTimeSpent def statusMessages(self): status1 = _('Effort: %d selected, %d visible, %d total. Time spent: %s selected, %s visible, %s total') % \ (len(self.curselection()), len(self.presentation()), len(self.taskFile.efforts()), self.__sumTimeSpent(self.curselection()), self.__sumTimeSpent(self.presentation()), self.__sumTimeSpent(self.taskFile.efforts())) status2 = _('Status: %d tracking') % \ self.presentation().nrBeingTracked() return status1, status2 def newItemDialog(self, *args, **kwargs): selectedTasks = kwargs.get('selectedTasks', []) bitmap = kwargs.get('bitmap', 'new') if not selectedTasks: subjectDecoratedTaskList = [(task.subject(recursive=True), task) \ for task in self.tasksToShowEffortFor()] subjectDecoratedTaskList.sort() # Sort by subject selectedTasks = [subjectDecoratedTaskList[0][1]] return super(EffortViewer, self).newItemDialog(selectedTasks, bitmap=bitmap) def itemEditorClass(self): return dialog.editor.EffortEditor def newItemCommandClass(self): return command.NewEffortCommand def newSubItemCommandClass(self): pass # efforts are not composite. def deleteItemCommandClass(self): return command.DeleteEffortCommand # Rendering periodRenderers = dict( \ details=lambda anEffort, humanReadable=True: render.dateTimePeriod(anEffort.getStart(), anEffort.getStop(), humanReadable=humanReadable), day=lambda anEffort, humanReadable=True: render.date(anEffort.getStart(), humanReadable=humanReadable), week=lambda anEffort, humanReadable=True: render.weekNumber(anEffort.getStart()), month=lambda anEffort, humanReadable=True: render.month(anEffort.getStart())) def __renderPeriod(self, anEffort, humanReadable=True): ''' Return the period the effort belongs to. This depends on the current aggregation. If this period is the same as the previous period, an empty string is returned. ''' return '' if self.__hasRepeatedPeriod(anEffort) else \ self.periodRenderers[self.aggregation](anEffort, humanReadable=humanReadable) def __hasRepeatedPeriod(self, anEffort): ''' Return whether the effort has the same period as the previous effort record. ''' index = self.presentation().index(anEffort) previousEffort = index > 0 and self.presentation()[index-1] or None if not previousEffort: return False if anEffort.getStart() != previousEffort.getStart(): # Starts are not equal, so period cannot be repeated return False if self.isShowingAggregatedEffort(): # Starts and length of period are equal, so period is repeated return True # If we get here, we are in details mode and the starts are equal # Period can only be repeated when the stop times are also equal return anEffort.getStop() == previousEffort.getStop() def __renderTimeSpent(self, anEffort): ''' Return a rendered version of the effort duration. ''' kwargs = dict() if isinstance(anEffort, effort.BaseCompositeEffort): kwargs['rounding'] = self.__round_precision() kwargs['roundUp'] = self.__always_round_up() duration = anEffort.duration(**kwargs) # Check for aggregation because we never round in details mode if self.isShowingAggregatedEffort(): duration = self.__round_duration(duration) showSeconds = self.__show_seconds() else: showSeconds = True return render.timeSpent(duration, showSeconds=showSeconds, decimal=self.settings.getboolean('feature', 'decimaltime')) def __renderTotalTimeSpent(self, anEffort): ''' Return a rendered version of the effort total duration (of composite efforts). ''' # No need to check for aggregation because this method is only used # in aggregated mode total_duration = anEffort.duration(recursive=True, rounding=self.__round_precision(), roundUp=self.__always_round_up()) return render.timeSpent(total_duration, showSeconds=self.__show_seconds(), decimal=self.settings.getboolean('feature', 'decimaltime')) def __renderTimeSpentOnDay(self, anEffort, dayOffset): ''' Return a rendered version of the duration of the effort on a specific day. ''' kwargs = dict() if isinstance(anEffort, effort.BaseCompositeEffort): kwargs['rounding'] = self.__round_precision() kwargs['roundUp'] = self.__always_round_up() duration = anEffort.durationDay(dayOffset, **kwargs) \ if self.aggregation == 'week' else date.TimeDelta() return render.timeSpent(self.__round_duration(duration), showSeconds=self.__show_seconds(), decimal=self.settings.getboolean('feature', 'decimaltime')) def getItemTooltipData(self, item): result = super(EffortViewer, self).getItemTooltipData(item) if isinstance(item, effort.CompositeEffort) and len(item): details = [_('Details:')] for theEffort in item: details.append(u'%s (%s)' % (render.dateTimePeriod(theEffort.getStart(), theEffort.getStop(), humanReadable=True), self.__renderTimeSpent(theEffort))) result.append((None, details)) return result @staticmethod def __renderRevenue(anEffort): ''' Return the revenue of the effort as a monetary value. ''' return render.monetaryAmount(anEffort.revenue()) @staticmethod def __renderTotalRevenue(anEffort): ''' Return the total revenue of the effort as a monetary value. ''' return render.monetaryAmount(anEffort.revenue(recursive=True)) def __round_duration(self, duration): ''' Round a duration with the current precision and direction (i.e. always up or not). ''' return duration.round(seconds=self.__round_precision(), alwaysUp=self.__always_round_up()) def __show_seconds(self): ''' Return whether the viewer is showing seconds as part of durations. ''' return self.__round_precision() == 0 def __round_precision(self): ''' Return with what precision the viewer is rounding durations. ''' return self.settings.getint(self.settingsSection(), 'round') def __always_round_up(self): ''' Return whether durations are always rounded up or not. ''' return self.settings.getboolean(self.settingsSection(), 'alwaysroundup') class EffortViewerForSelectedTasks(EffortViewer): defaultTitle = _('Effort for selected task(s)') def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'effortviewerforselectedtasks') self.__viewerContainer = kwargs.pop('viewerContainer') self.__currentTaskViewer = self.__viewerContainer.activeViewer() if self.__viewerContainer.activeViewer().isShowingTasks() else None pub.subscribe(self.onTaskSelectionChanged, 'all.viewer.status') super(EffortViewerForSelectedTasks, self).__init__(*args, **kwargs) def tasksToShowEffortFor(self): if self.__currentTaskViewer is not None: return domain.task.TaskList(self.__currentTaskViewer.curselection()) return [] def onTaskSelectionChanged(self, viewer): if viewer.isShowingTasks(): self.__currentTaskViewer = viewer self._refresh(clear=True) taskcoach-1.4.3/taskcoachlib/gui/viewer/factory.py000066400000000000000000000105521265347643000222310ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import effort import task import category import note def viewerTypes(): ''' Return the available viewer types, using the names as used in the settings. ''' return ('timelineviewer', 'squaretaskviewer', 'taskviewer', 'taskstatsviewer', 'noteviewer', 'categoryviewer', 'effortviewer', 'calendarviewer', 'hierarchicalcalendarviewer', 'effortviewerforselectedtasks') class addViewers(object): # pylint: disable=C0103, R0903 ''' addViewers is a class masquerading as a method. It's a class because that makes it easier to split the work over different methods that use the same instance variables. ''' floating = False # Start viewers floating? Not when restoring layout def __init__(self, viewer_container, task_file, settings): self.__viewer_container = viewer_container self.__settings = settings self.__viewer_init_args = (viewer_container.containerWidget, task_file, settings) self.__add_all_viewers() def __add_all_viewers(self): ''' Open viewers as saved previously in the settings. ''' self.__add_viewers(task.TaskViewer) self.__add_viewers(task.TaskStatsViewer) self.__add_viewers(task.SquareTaskViewer) self.__add_viewers(task.TimelineViewer) self.__add_viewers(task.CalendarViewer) self.__add_viewers(task.HierarchicalCalendarViewer) self.__add_viewers(effort.EffortViewer) self.__add_viewers(effort.EffortViewerForSelectedTasks) self.__add_viewers(category.CategoryViewer) self.__add_viewers(note.NoteViewer) def __add_viewers(self, viewer_class): ''' Open viewers of the specified viewer class as saved previously in the settings. ''' number_of_viewers_to_add = self._number_of_viewers_to_add(viewer_class) for _ in range(number_of_viewers_to_add): viewer_instance = viewer_class(*self.__viewer_init_args, **self._viewer_kwargs(viewer_class)) self.__viewer_container.addViewer(viewer_instance, floating=self.floating) def _number_of_viewers_to_add(self, viewer_class): ''' Return the number of viewers of the specified viewer class the user has opened previously. ''' return self.__settings.getint('view', viewer_class.__name__.lower() + 'count') def _viewer_kwargs(self, viewer_class): # pylint: disable=R0201 ''' Return the keyword arguments to be passed to the viewer initializer. ''' return dict(viewerContainer=self.__viewer_container) if issubclass(viewer_class, effort.EffortViewerForSelectedTasks) else dict() class addOneViewer(addViewers): # pylint: disable=C0103, R0903 ''' addOneViewer is a class masquerading as a method to add one viewer of a specified viewer class. ''' floating = True # Start viewer floating? Yes when opening a new viewer def __init__(self, viewer_container, task_file, settings, viewer_class, **kwargs): self.__viewer_class = viewer_class self.__kwargs = kwargs super(addOneViewer, self).__init__(viewer_container, task_file, settings) def _number_of_viewers_to_add(self, viewer_class): return 1 if viewer_class == self.__viewer_class else 0 def _viewer_kwargs(self, viewer_class): kwargs = super(addOneViewer, self)._viewer_kwargs(viewer_class) kwargs.update(self.__kwargs) return kwargs taskcoach-1.4.3/taskcoachlib/gui/viewer/inplace_editor.py000066400000000000000000000157721265347643000235540ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' ''' In place editors for viewers. ''' # pylint: disable=W0105 import wx from taskcoachlib.thirdparty import hypertreelist from taskcoachlib import widgets from taskcoachlib.domain import date class KillFocusAcceptsEditsMixin(object): ''' Mixin class to let in place editors accept changes whenever the user clicks outside the edit control instead of cancelling the changes. ''' def StopEditing(self): try: if self.__has_focus(): # User hit Escape super(KillFocusAcceptsEditsMixin, self).StopEditing() else: # User clicked outside edit window self.AcceptChanges() self.Finish() except wx.PyDeadObjectError: pass def __has_focus(self): ''' Return whether this control has the focus. ''' def window_and_all_children(window): window_and_children = [window] for child in window.GetChildren(): window_and_children.extend(window_and_all_children(child)) return window_and_children return wx.Window.FindFocus() in window_and_all_children(self) class SubjectCtrl(KillFocusAcceptsEditsMixin, hypertreelist.EditTextCtrl): ''' Single line inline control for editing item subjects. ''' pass class DescriptionCtrl(KillFocusAcceptsEditsMixin, hypertreelist.EditTextCtrl): ''' Multiline inline text control for editing item descriptions. ''' def __init__(self, *args, **kwargs): kwargs['style'] = kwargs.get('style', 0) | wx.TE_MULTILINE super(DescriptionCtrl, self).__init__(*args, **kwargs) class EscapeKeyMixin(object): ''' Mixin class for text(like) controls to properly handle the Escape key. The inheriting class needs to bind to the event handler. For example: self._spinCtrl.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) ''' def OnKeyDown(self, event): keyCode = event.GetKeyCode() if keyCode == wx.WXK_ESCAPE: self.StopEditing() elif keyCode in (wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER) and not event.ShiftDown(): # Notify the owner about the changes self.AcceptChanges() # Even if vetoed, close the control (consistent with MSW) wx.CallAfter(self.Finish) else: event.Skip() class _SpinCtrl(EscapeKeyMixin, KillFocusAcceptsEditsMixin, hypertreelist.EditCtrl, widgets.SpinCtrl): ''' Base spin control class. ''' def __init__(self, parent, wxId, item, column, owner, value, *args, **kwargs): super(_SpinCtrl, self).__init__(parent, wxId, item, column, owner, str(value), *args, **kwargs) self._textCtrl.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) class PriorityCtrl(_SpinCtrl): ''' Spin control for priority. Since priorities can be any negative or positive integer we don't need to set an allowed range. ''' pass class PercentageCtrl(_SpinCtrl): ''' Spin control for percentages. ''' def __init__(self, *args, **kwargs): super(PercentageCtrl, self).__init__(min=0, max=100, *args, **kwargs) class Panel(wx.Panel): ''' Panel class for inline controls that need to be put into a panel. ''' def __init__(self, parent, wxId, value, *args, **kwargs): # pylint: disable=W0613 # Don't pass the value argument to the wx.Panel since it doesn't take # a value argument super(Panel, self).__init__(parent, wxId, *args, **kwargs) def makeSizer(self, control): sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add(control, flag=wx.EXPAND) self.SetSizerAndFit(sizer) class BudgetCtrl(EscapeKeyMixin, KillFocusAcceptsEditsMixin, hypertreelist.EditCtrl, Panel): ''' Masked inline text control for editing budgets: ::. ''' def __init__(self, parent, wxId, item, column, owner, value): super(BudgetCtrl, self).__init__(parent, wxId, item, column, owner) hours, minutes, seconds = value.hoursMinutesSeconds() # Can't inherit from TimeDeltaCtrl because we need to override GetValue, # so we use composition instead self.__timeDeltaCtrl = widgets.masked.TimeDeltaCtrl(self, hours, minutes, seconds) self.__timeDeltaCtrl.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) self.makeSizer(self.__timeDeltaCtrl) def GetValue(self): return date.parseTimeDelta(self.__timeDeltaCtrl.GetValue()) class AmountCtrl(EscapeKeyMixin, KillFocusAcceptsEditsMixin, hypertreelist.EditCtrl, Panel): ''' Masked inline text control for editing amounts (floats >= 0). ''' def __init__(self, parent, wxId, item, column, owner, value): super(AmountCtrl, self).__init__(parent, wxId, item, column, owner) self.__floatCtrl = widgets.masked.AmountCtrl(self, value) self.__floatCtrl.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) self.makeSizer(self.__floatCtrl) def GetValue(self): return self.__floatCtrl.GetValue() class DateTimeCtrl(KillFocusAcceptsEditsMixin, hypertreelist.EditCtrl, Panel): ''' Inline date and time picker control. ''' def __init__(self, parent, wxId, item, column, owner, value, **kwargs): relative = kwargs.pop('relative', False) if relative: start = kwargs.pop('startDateTime', date.Now()) super(DateTimeCtrl, self).__init__(parent, wxId, item, column, owner) settings = kwargs['settings'] starthour = settings.getint('view', 'efforthourstart') endhour = settings.getint('view', 'efforthourend') interval = settings.getint('view', 'effortminuteinterval') self._dateTimeCtrl = widgets.DateTimeCtrl(self, starthour=starthour, endhour=endhour, interval=interval, showRelative=relative) self._dateTimeCtrl.SetValue(value) if relative: self._dateTimeCtrl.SetRelativeChoicesStart(start=None if start == date.DateTime() else start) self.makeSizer(self._dateTimeCtrl) def GetValue(self): return self._dateTimeCtrl.GetValue() taskcoach-1.4.3/taskcoachlib/gui/viewer/mixin.py000066400000000000000000000574271265347643000217220ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import command from taskcoachlib.domain import base, task, category, attachment from taskcoachlib.gui import uicommand from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub import wx class SearchableViewerMixin(object): ''' A viewer that is searchable. This is a mixin class. ''' def isSearchable(self): return True def createFilter(self, presentation): presentation = super(SearchableViewerMixin, self).createFilter(presentation) return base.SearchFilter(presentation, **self.searchOptions()) def searchOptions(self): searchString, matchCase, includeSubItems, searchDescription, regularExpression = self.getSearchFilter() return dict(searchString=searchString, matchCase=matchCase, includeSubItems=includeSubItems, searchDescription=searchDescription, regularExpression=regularExpression, treeMode=self.isTreeViewer()) def setSearchFilter(self, searchString, matchCase=False, includeSubItems=False, searchDescription=False, regularExpression=False): section = self.settingsSection() self.settings.set(section, 'searchfilterstring', searchString) self.settings.set(section, 'searchfiltermatchcase', str(matchCase)) self.settings.set(section, 'searchfilterincludesubitems', str(includeSubItems)) self.settings.set(section, 'searchdescription', str(searchDescription)) self.settings.set(section, 'regularexpression', str(regularExpression)) self.presentation().setSearchFilter(searchString, matchCase=matchCase, includeSubItems=includeSubItems, searchDescription=searchDescription, regularExpression=regularExpression) def getSearchFilter(self): section = self.settingsSection() searchString = self.settings.get(section, 'searchfilterstring') matchCase = self.settings.getboolean(section, 'searchfiltermatchcase') includeSubItems = self.settings.getboolean(section, 'searchfilterincludesubitems') searchDescription = self.settings.getboolean(section, 'searchdescription') regularExpression = self.settings.getboolean(section, 'regularexpression') return searchString, matchCase, includeSubItems, searchDescription, regularExpression def createToolBarUICommands(self): ''' UI commands to put on the toolbar of this viewer. ''' searchUICommand = uicommand.Search(viewer=self, settings=self.settings) return super(SearchableViewerMixin, self).createToolBarUICommands() + \ (1, searchUICommand) class FilterableViewerMixin(object): ''' A viewer that is filterable. This is a mixin class. ''' def __init__(self, *args, **kwargs): self.__filterUICommands = None super(FilterableViewerMixin, self).__init__(*args, **kwargs) def isFilterable(self): return True def getFilterUICommands(self): if not self.__filterUICommands: self.__filterUICommands = self.createFilterUICommands() # Recreate the category filter commands every time because the category # filter menu depends on what categories there are return self.__filterUICommands[:2] + self.createCategoryFilterCommands() + self.__filterUICommands[2:] def createFilterUICommands(self): return [uicommand.ResetFilter(viewer=self), uicommand.CategoryViewerFilterChoice(settings=self.settings), None] def createToolBarUICommands(self): clearUICommand = uicommand.ResetFilter(viewer=self) return super(FilterableViewerMixin, self).createToolBarUICommands() + \ (clearUICommand,) def resetFilter(self): self.taskFile.categories().resetAllFilteredCategories() def hasFilter(self): return bool(self.taskFile.categories().filteredCategories()) def createCategoryFilterCommands(self): categories = self.taskFile.categories() commands = [_('&Categories'), uicommand.ResetCategoryFilter(categories=categories)] if categories: commands.append(None) commands.extend(self.createToggleCategoryFilterCommands(categories.rootItems())) return [tuple(commands)] def createToggleCategoryFilterCommands(self, categories): categories = list(categories) categories.sort(key=lambda category: category.subject()) commands = [uicommand.ToggleCategoryFilter(category=eachCategory) for eachCategory in categories] categoriesWithChildren = [eachCategory for eachCategory in categories if eachCategory.children()] if categoriesWithChildren: commands.append(None) for eachCategory in categoriesWithChildren: subCommands = [_('%s (subcategories)') % eachCategory.subject()] subCommands.extend(self.createToggleCategoryFilterCommands(eachCategory.children())) commands.append(tuple(subCommands)) return commands class FilterableViewerForCategorizablesMixin(FilterableViewerMixin): def createFilter(self, items): items = super(FilterableViewerForCategorizablesMixin, self).createFilter(items) filterOnlyWhenAllCategoriesMatch = self.settings.getboolean('view', 'categoryfiltermatchall') return category.filter.CategoryFilter(items, categories=self.taskFile.categories(), treeMode=self.isTreeViewer(), filterOnlyWhenAllCategoriesMatch=filterOnlyWhenAllCategoriesMatch) class FilterableViewerForTasksMixin(FilterableViewerForCategorizablesMixin): def createFilter(self, taskList): taskList = super(FilterableViewerForTasksMixin, self).createFilter(taskList) return task.filter.ViewFilter(taskList, treeMode=self.isTreeViewer(), **self.viewFilterOptions()) def viewFilterOptions(self): return dict(hideCompositeTasks=self.isHidingCompositeTasks(), statusesToHide=self.hiddenTaskStatuses()) def hideTaskStatus(self, status, hide=True): self.__setBooleanSetting('hide%stasks' % status, hide) self.presentation().hideTaskStatus(status, hide) def showOnlyTaskStatus(self, status): for taskStatus in task.Task.possibleStatuses(): self.hideTaskStatus(taskStatus, hide=status != taskStatus) def isHidingTaskStatus(self, status): return self.__getBooleanSetting('hide%stasks' % status) def hiddenTaskStatuses(self): return [status for status in task.Task.possibleStatuses() if self.isHidingTaskStatus(status)] def hideCompositeTasks(self, hide=True): self.__setBooleanSetting('hidecompositetasks', hide) self.presentation().hideCompositeTasks(hide) def isHidingCompositeTasks(self): return self.__getBooleanSetting('hidecompositetasks') def resetFilter(self): super(FilterableViewerForTasksMixin, self).resetFilter() for status in task.Task.possibleStatuses(): self.hideTaskStatus(status, False) if not self.isTreeViewer(): # Only reset this filter when in list mode, since it only applies # to list mode self.hideCompositeTasks(False) def hasFilter(self): return super(FilterableViewerForTasksMixin, self).hasFilter() or \ self.presentation().hasFilter() def createFilterUICommands(self): return super(FilterableViewerForTasksMixin, self).createFilterUICommands() + \ [uicommand.ViewerHideTasks(taskStatus, viewer=self, settings=self.settings) for taskStatus in task.Task.possibleStatuses()] + \ [uicommand.ViewerHideCompositeTasks(viewer=self)] def __getBooleanSetting(self, setting): return self.settings.getboolean(self.settingsSection(), setting) def __setBooleanSetting(self, setting, booleanValue): self.settings.setboolean(self.settingsSection(), setting, booleanValue) class SortableViewerMixin(object): ''' A viewer that is sortable. This is a mixin class. ''' def __init__(self, *args, **kwargs): self._sortUICommands = [] super(SortableViewerMixin, self).__init__(*args, **kwargs) def isSortable(self): return True def registerPresentationObservers(self): super(SortableViewerMixin, self).registerPresentationObservers() pub.subscribe(self.onSortOrderChanged, self.presentation().sortEventType()) def detach(self): super(SortableViewerMixin, self).detach() pub.unsubscribe(self.onSortOrderChanged, self.presentation().sortEventType()) def onSortOrderChanged(self, sender): if sender == self.presentation(): self.refresh() self.updateSelection(sendViewerStatusEvent=False) self.sendViewerStatusEvent() def createSorter(self, presentation): return self.SorterClass(presentation, **self.sorterOptions()) def sorterOptions(self): return dict(sortBy=self.sortKey(), sortCaseSensitive=self.isSortCaseSensitive()) def sortBy(self, sortKey): self.presentation().sortBy(sortKey) self.settings.set(self.settingsSection(), 'sortby', str(self.presentation().sortKeys())) def isSortedBy(self, sortKey): sortKeys = self.presentation().sortKeys() return sortKeys and (sortKeys[0] == sortKey or sortKeys[0] == '-' + sortKey) def sortKey(self): return eval(self.settings.get(self.settingsSection(), 'sortby')) def isSortOrderAscending(self): sortKeys = self.presentation().sortKeys() return sortKeys and not sortKeys[0].startswith('-') def setSortOrderAscending(self, ascending=True): self.presentation().sortAscending(ascending) self.settings.set(self.settingsSection(), 'sortby', str(self.presentation().sortKeys())) def isSortCaseSensitive(self): return self.settings.getboolean(self.settingsSection(), 'sortcasesensitive') def setSortCaseSensitive(self, sortCaseSensitive=True): self.settings.set(self.settingsSection(), 'sortcasesensitive', str(sortCaseSensitive)) self.presentation().sortCaseSensitive(sortCaseSensitive) def getSortUICommands(self): if not self._sortUICommands: self.createSortUICommands() return self._sortUICommands def createSortUICommands(self): ''' (Re)Create the UICommands for sorting. These UICommands are put in the View->Sort menu and are used when the user clicks a column header. ''' self._sortUICommands = self.createSortOrderUICommands() sortByCommands = self.createSortByUICommands() if sortByCommands: self._sortUICommands.append(None) # Separator self._sortUICommands.extend(sortByCommands) def createSortOrderUICommands(self): ''' Create the UICommands for changing sort order, like ascending/ descending, and match case. ''' return [uicommand.ViewerSortOrderCommand(viewer=self), uicommand.ViewerSortCaseSensitive(viewer=self)] def createSortByUICommands(self): ''' Create the UICommands for changing what the items are sorted by, i.e. the columns. ''' return [uicommand.ViewerSortByCommand(viewer=self, value='subject', menuText=_('Sub&ject'), helpText=self.sortBySubjectHelpText), uicommand.ViewerSortByCommand(viewer=self, value='description', menuText=_('&Description'), helpText=self.sortByDescriptionHelpText), uicommand.ViewerSortByCommand(viewer=self, value='creationDateTime', menuText=_('&Creation date'), helpText=self.sortByCreationDateTimeHelpText), uicommand.ViewerSortByCommand(viewer=self, value='modificationDateTime', menuText=_('&Modification date'), helpText=self.sortByModificationDateTimeHelpText)] class SortableViewerForEffortMixin(SortableViewerMixin): def createSortOrderUICommands(self): ''' Create the UICommands for changing sort order. The only option for efforts is ascending/descending at the moment. ''' return [uicommand.ViewerSortOrderCommand(viewer=self)] def createSortByUICommands(self): ''' Create the UICommands for changing what the items are sorted by, i.e. the columns. Currently, effort is always sorted by period. ''' return [] def sortKey(self): ''' Efforts are always sorted by period at the moment. ''' return ['-period'] class ManualOrderingMixin(object): def __init__(self, *args, **kwargs): if 'sort' not in self.viewerImages: self.viewerImages = self.viewerImages + ['sort'] super(ManualOrderingMixin, self).__init__(*args, **kwargs) def createSortByUICommands(self): return [uicommand.ViewerSortByCommand(viewer=self, value='ordering', menuText=_('&Manual ordering'), helpText=self.sortByOrderingHelpText)] + super(ManualOrderingMixin, self).createSortByUICommands() def orderingImageIndices(self, item): index = self.imageIndex['sort'] return {wx.TreeItemIcon_Normal: index, wx.TreeItemIcon_Expanded: index} class SortableViewerForCategoriesMixin(ManualOrderingMixin, SortableViewerMixin): sortBySubjectHelpText = _('Sort categories by subject') sortByDescriptionHelpText = _('Sort categories by description') sortByCreationDateTimeHelpText = _('Sort categories by creation date') sortByModificationDateTimeHelpText = _('Sort categories by last modification date') sortByOrderingHelpText = _('Sort categories manually') class SortableViewerForCategorizablesMixin(SortableViewerMixin): ''' Mixin class to create uiCommands for sorting categorizables. ''' def createSortByUICommands(self): commands = super(SortableViewerForCategorizablesMixin, self).createSortByUICommands() commands.append(uicommand.ViewerSortByCommand(viewer=self, value='categories', menuText=_('&Category'), helpText=self.sortByCategoryHelpText)) return commands class SortableViewerForAttachmentsMixin(SortableViewerForCategorizablesMixin): sortBySubjectHelpText = _('Sort attachments by subject') sortByDescriptionHelpText = _('Sort attachments by description') sortByCategoryHelpText = _('Sort attachments by category') sortByCreationDateTimeHelpText = _('Sort attachments by creation date') sortByModificationDateTimeHelpText = _('Sort attachments by last modification date') class SortableViewerForNotesMixin(ManualOrderingMixin, SortableViewerForCategorizablesMixin): sortBySubjectHelpText = _('Sort notes by subject') sortByDescriptionHelpText = _('Sort notes by description') sortByCategoryHelpText = _('Sort notes by category') sortByCreationDateTimeHelpText = _('Sort notes by creation date') sortByModificationDateTimeHelpText = _('Sort notes by last modification date') sortByOrderingHelpText = _('Sort notes manually') class SortableViewerForTasksMixin(ManualOrderingMixin, SortableViewerForCategorizablesMixin): SorterClass = task.sorter.Sorter sortBySubjectHelpText = _('Sort tasks by subject') sortByDescriptionHelpText = _('Sort tasks by description') sortByCategoryHelpText = _('Sort tasks by category') sortByCreationDateTimeHelpText = _('Sort tasks by creation date') sortByModificationDateTimeHelpText = _('Sort tasks by last modification date') sortByOrderingHelpText = _('Sort tasks manually') def __init__(self, *args, **kwargs): self.__sortKeyUnchangedCount = 0 super(SortableViewerForTasksMixin, self).__init__(*args, **kwargs) def sortBy(self, sortKey): # If the user clicks the same column for the third time, toggle # the SortyByTaskStatusFirst setting: if self.isSortedBy(sortKey): self.__sortKeyUnchangedCount += 1 else: self.__sortKeyUnchangedCount = 0 if self.__sortKeyUnchangedCount > 1: self.setSortByTaskStatusFirst(not self.isSortByTaskStatusFirst()) self.__sortKeyUnchangedCount = 0 super(SortableViewerForTasksMixin, self).sortBy(sortKey) def isSortByTaskStatusFirst(self): return self.settings.getboolean(self.settingsSection(), 'sortbystatusfirst') def setSortByTaskStatusFirst(self, sortByTaskStatusFirst): self.settings.set(self.settingsSection(), 'sortbystatusfirst', str(sortByTaskStatusFirst)) self.presentation().sortByTaskStatusFirst(sortByTaskStatusFirst) def sorterOptions(self): options = super(SortableViewerForTasksMixin, self).sorterOptions() options.update(treeMode=self.isTreeViewer(), sortByTaskStatusFirst=self.isSortByTaskStatusFirst()) return options def createSortOrderUICommands(self): commands = super(SortableViewerForTasksMixin, self).createSortOrderUICommands() commands.append(uicommand.ViewerSortByTaskStatusFirst(viewer=self)) return commands def createSortByUICommands(self): commands = super(SortableViewerForTasksMixin, self).createSortByUICommands() dependsOnEffortFeature = ['budget', 'timeSpent', 'budgetLeft', 'hourlyFee', 'fixedFee', 'revenue'] for menuText, helpText, value in [\ (_('&Planned start date'), _('Sort tasks by planned start date'), 'plannedStartDateTime'), (_('&Due date'), _('Sort tasks by due date'), 'dueDateTime'), (_('&Completion date'), _('Sort tasks by completion date'), 'completionDateTime'), (_('&Prerequisites'), _('Sort tasks by prerequisite tasks'), 'prerequisites'), (_('&Dependents'), _('Sort tasks by dependent tasks'), 'dependencies'), (_('&Time left'), _('Sort tasks by time left'), 'timeLeft'), (_('&Percentage complete'), _('Sort tasks by percentage complete'), 'percentageComplete'), (_('&Recurrence'), _('Sort tasks by recurrence'), 'recurrence'), (_('&Budget'), _('Sort tasks by budget'), 'budget'), (_('&Time spent'), _('Sort tasks by time spent'), 'timeSpent'), (_('Budget &left'), _('Sort tasks by budget left'), 'budgetLeft'), (_('&Priority'), _('Sort tasks by priority'), 'priority'), (_('&Hourly fee'), _('Sort tasks by hourly fee'), 'hourlyFee'), (_('&Fixed fee'), _('Sort tasks by fixed fee'), 'fixedFee'), (_('&Revenue'), _('Sort tasks by revenue'), 'revenue'), (_('&Reminder'), _('Sort tasks by reminder date and time'), 'reminder')]: if value not in dependsOnEffortFeature or (value in dependsOnEffortFeature): commands.append(uicommand.ViewerSortByCommand(\ viewer=self, value=value, menuText=menuText, helpText=helpText)) return commands class AttachmentDropTargetMixin(object): ''' Mixin class for viewers that are drop targets for attachments. ''' def widgetCreationKeywordArguments(self): kwargs = super(AttachmentDropTargetMixin, self).widgetCreationKeywordArguments() kwargs['onDropURL'] = self.onDropURL kwargs['onDropFiles'] = self.onDropFiles kwargs['onDropMail'] = self.onDropMail return kwargs def _addAttachments(self, attachments, item, **itemDialogKwargs): ''' Add attachments. If item refers to an existing domain object, add the attachments to that object. If item is None, use the newItemDialog to create a new domain object and add the attachments to that new object. ''' if item is None: itemDialogKwargs['subject'] = attachments[0].subject() if self.settings.get('view', 'defaultplannedstartdatetime').startswith('preset'): itemDialogKwargs['plannedStartDateTime'] = task.Task.suggestedPlannedStartDateTime() if self.settings.get('view', 'defaultduedatetime').startswith('preset'): itemDialogKwargs['dueDateTime'] = task.Task.suggestedDueDateTime() if self.settings.get('view', 'defaultactualstartdatetime').startswith('preset'): itemDialogKwargs['actualStartDateTime'] = task.Task.suggestedActualStartDateTime() if self.settings.get('view', 'defaultcompletiondatetime').startswith('preset'): itemDialogKwargs['completionDateTime'] = task.Task.suggestedCompletionDateTime() if self.settings.get('view', 'defaultreminderdatetime').startswith('preset'): itemDialogKwargs['reminder'] = task.Task.suggestedReminderDateTime() newItemDialog = self.newItemDialog(bitmap='new', attachments=attachments, **itemDialogKwargs) newItemDialog.Show() else: addAttachment = command.AddAttachmentCommand(self.presentation(), [item], attachments=attachments) addAttachment.do() def onDropURL(self, item, url, **kwargs): ''' This method is called by the widget when a URL is dropped on an item. ''' attachments = [attachment.URIAttachment(url)] self._addAttachments(attachments, item, **kwargs) def onDropFiles(self, item, filenames, **kwargs): ''' This method is called by the widget when one or more files are dropped on an item. ''' attachmentBase = self.settings.get('file', 'attachmentbase') if attachmentBase: filenames = [attachment.getRelativePath(filename, attachmentBase) \ for filename in filenames] attachments = [attachment.FileAttachment(filename) for filename in filenames] self._addAttachments(attachments, item, **kwargs) def onDropMail(self, item, mail, **kwargs): ''' This method is called by the widget when a mail message is dropped on an item. ''' att = attachment.MailAttachment(mail) subject, content = att.read() self._addAttachments([att], item, subject=subject, description=content, **kwargs) class NoteColumnMixin(object): def noteImageIndices(self, item): index = self.imageIndex['note_icon'] if item.notes() else -1 return {wx.TreeItemIcon_Normal: index} class AttachmentColumnMixin(object): def attachmentImageIndices(self, item): # pylint: disable=W0613 index = self.imageIndex['paperclip_icon'] if item.attachments() else -1 return {wx.TreeItemIcon_Normal: index} taskcoach-1.4.3/taskcoachlib/gui/viewer/note.py000066400000000000000000000233341265347643000215310ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' from taskcoachlib import command, widgets, domain from taskcoachlib.domain import note from taskcoachlib.gui import uicommand, menu, dialog from taskcoachlib.i18n import _ import base import mixin import inplace_editor import wx class BaseNoteViewer(mixin.AttachmentDropTargetMixin, # pylint: disable=W0223 mixin.SearchableViewerMixin, mixin.SortableViewerForNotesMixin, mixin.AttachmentColumnMixin, base.CategorizableViewerMixin, base.WithAttachmentsViewerMixin, base.SortableViewerWithColumns, base.TreeViewer): SorterClass = note.NoteSorter defaultTitle = _('Notes') defaultBitmap = 'note_icon' def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'noteviewer') self.notesToShow = kwargs.get('notesToShow', None) super(BaseNoteViewer, self).__init__(*args, **kwargs) for eventType in (note.Note.appearanceChangedEventType(), note.Note.subjectChangedEventType()): self.registerObserver(self.onAttributeChanged_Deprecated, eventType) def domainObjectsToView(self): return self.taskFile.notes() if self.notesToShow is None else self.notesToShow def curselectionIsInstanceOf(self, class_): return class_ == note.Note def createWidget(self): imageList = self.createImageList() # Has side-effects self._columns = self._createColumns() itemPopupMenu = menu.NotePopupMenu(self.parent, self.settings, self.taskFile.categories(), self) columnPopupMenu = menu.ColumnPopupMenu(self) self._popupMenus.extend([itemPopupMenu, columnPopupMenu]) widget = widgets.TreeListCtrl(self, self.columns(), self.onSelect, uicommand.Edit(viewer=self), uicommand.NoteDragAndDrop(viewer=self, notes=self.presentation()), itemPopupMenu, columnPopupMenu, resizeableColumn=1 if self.hasOrderingColumn() else 0, validateDrag=self.validateDrag, **self.widgetCreationKeywordArguments()) if self.hasOrderingColumn(): widget.SetMainColumn(1) widget.AssignImageList(imageList) # pylint: disable=E1101 return widget def createFilter(self, notes): notes = super(BaseNoteViewer, self).createFilter(notes) return domain.base.DeletedFilter(notes) def createCreationToolBarUICommands(self): return (uicommand.NoteNew(notes=self.presentation(), settings=self.settings, viewer=self), uicommand.NewSubItem(viewer=self),) + \ super(BaseNoteViewer, self).createCreationToolBarUICommands() def createColumnUICommands(self): return [\ uicommand.ToggleAutoColumnResizing(viewer=self, settings=self.settings), None, uicommand.ViewColumn(menuText=_('&Manual ordering'), helpText=_('Show/hide the manual ordering column'), setting='ordering', viewer=self), uicommand.ViewColumn(menuText=_('&Description'), helpText=_('Show/hide description column'), setting='description', viewer=self), uicommand.ViewColumn(menuText=_('&Attachments'), helpText=_('Show/hide attachments column'), setting='attachments', viewer=self), uicommand.ViewColumn(menuText=_('&Categories'), helpText=_('Show/hide categories column'), setting='categories', viewer=self), uicommand.ViewColumn(menuText=_('&Creation date'), helpText=_('Show/hide creation date column'), setting='creationDateTime', viewer=self), uicommand.ViewColumn(menuText=_('&Modification date'), helpText=_('Show/hide last modification date column'), setting='modificationDateTime', viewer=self)] def _createColumns(self): orderingColumn = widgets.Column('ordering', u'', width=self.getColumnWidth('ordering'), resizeCallback=self.onResizeColumn, renderCallback=lambda note: '', imageIndicesCallback=self.orderingImageIndices, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='ordering', menuText=_('&Manual ordering'), helpText=_('Sort notes manually'))) # XXXCHECK editCallback & co subjectColumn = widgets.Column('subject', _('Subject'), width=self.getColumnWidth('subject'), resizeCallback=self.onResizeColumn, renderCallback=lambda note: note.subject(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='subject', menuText=_('&Subject'), helpText=_('Sort notes by subject')), imageIndicesCallback=self.subjectImageIndices, editCallback=self.onEditSubject, editControl=inplace_editor.SubjectCtrl) descriptionColumn = widgets.Column('description', _('Description'), note.Note.descriptionChangedEventType(), width=self.getColumnWidth('description'), resizeCallback=self.onResizeColumn, renderCallback=lambda note: note.description(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='description', menuText=_('&Description'), helpText=_('Sort notes by description')), editCallback=self.onEditDescription, editControl=inplace_editor.DescriptionCtrl) attachmentsColumn = widgets.Column('attachments', '', note.Note.attachmentsChangedEventType(), # pylint: disable=E1101 width=self.getColumnWidth('attachments'), alignment=wx.LIST_FORMAT_LEFT, imageIndicesCallback=self.attachmentImageIndices, # pylint: disable=E1101 headerImageIndex=self.imageIndex['paperclip_icon'], renderCallback=lambda note: '') categoriesColumn = widgets.Column('categories', _('Categories'), note.Note.categoryAddedEventType(), note.Note.categoryRemovedEventType(), note.Note.categorySubjectChangedEventType(), note.Note.expansionChangedEventType(), width=self.getColumnWidth('categories'), resizeCallback=self.onResizeColumn, renderCallback=self.renderCategories, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='categories', menuText=_('&Categories'), helpText=_('Sort notes by categories'))) creationDateTimeColumn = widgets.Column('creationDateTime', _('Creation date'), width=self.getColumnWidth('creationDateTime'), resizeCallback=self.onResizeColumn, renderCallback=self.renderCreationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='creationDateTime', menuText=_('&Creation date'), helpText=_('Sort notes by creation date'))) modificationDateTimeColumn = widgets.Column('modificationDateTime', _('Modification date'), width=self.getColumnWidth('modificationDateTime'), resizeCallback=self.onResizeColumn, renderCallback=self.renderModificationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='modificationDateTime', menuText=_('&Modification date'), helpText=_('Sort notes by last modification date')), *note.Note.modificationEventTypes()) return [orderingColumn, subjectColumn, descriptionColumn, attachmentsColumn, categoriesColumn, creationDateTimeColumn, modificationDateTimeColumn] def isShowingNotes(self): return True def statusMessages(self): status1 = _('Notes: %d selected, %d total') % \ (len(self.curselection()), len(self.presentation())) status2 = _('Status: n/a') return status1, status2 def newItemDialog(self, *args, **kwargs): kwargs['categories'] = self.taskFile.categories().filteredCategories() return super(BaseNoteViewer, self).newItemDialog(*args, **kwargs) def deleteItemCommand(self): return command.DeleteNoteCommand(self.presentation(), self.curselection(), shadow=self.settings.getboolean('feature', 'syncml')) def itemEditorClass(self): return dialog.editor.NoteEditor def newItemCommandClass(self): return command.NewNoteCommand def newSubItemCommandClass(self): return command.NewSubNoteCommand class NoteViewer(mixin.FilterableViewerForCategorizablesMixin, BaseNoteViewer): # pylint: disable=W0223 pass taskcoach-1.4.3/taskcoachlib/gui/viewer/refresher.py000066400000000000000000000116621265347643000225520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' ''' This module provides classes that implement refreshing strategies for viewers. ''' # pylint: disable=W0105 from taskcoachlib import patterns from taskcoachlib.domain import date from taskcoachlib.thirdparty.pubsub import pub import wx class MinuteRefresher(object): ''' This class can be used by viewers to refresh themselves every minute to refresh attributes like time left. The user of this class is responsible for calling refresher.startClock() and stopClock(). ''' def __init__(self, viewer): self.__viewer = viewer def startClock(self): date.Scheduler().schedule_interval(self.onEveryMinute, minutes=1) def stopClock(self): date.Scheduler().unschedule(self.onEveryMinute) def onEveryMinute(self): if self.__viewer: self.__viewer.refresh() else: self.stopClock() class SecondRefresher(patterns.Observer, wx.EvtHandler): ''' This class can be used by viewers to refresh themselves every second whenever items (tasks, efforts) are being tracked. ''' # APScheduler seems to take a lot of resources in this setup, so we use a wx.Timer def __init__(self, viewer, trackingChangedEventType): super(SecondRefresher, self).__init__() self.__viewer = viewer self.__presentation = viewer.presentation() self.__trackedItems = set() id_ = wx.NewId() self.__timer = wx.Timer(self, id_) wx.EVT_TIMER(self, id_, self.onEverySecond) pub.subscribe(self.onTrackingChanged, trackingChangedEventType) self.registerObserver(self.onItemAdded, eventType=self.__presentation.addItemEventType(), eventSource=self.__presentation) self.registerObserver(self.onItemRemoved, eventType=self.__presentation.removeItemEventType(), eventSource=self.__presentation) self.setTrackedItems(self.trackedItems(self.__presentation)) def onItemAdded(self, event): self.addTrackedItems(self.trackedItems(event.values())) def onItemRemoved(self, event): self.removeTrackedItems(self.trackedItems(event.values())) def onTrackingChanged(self, newValue, sender): if sender not in self.__presentation: self.setTrackedItems(self.trackedItems(self.__presentation)) return if newValue: self.addTrackedItems([sender]) else: self.removeTrackedItems([sender]) self.refreshItems([sender]) def onEverySecond(self, event=None): self.refreshItems(self.__trackedItems) def refreshItems(self, items): if self.__viewer: self.__viewer.refreshItems(*items) # pylint: disable=W0142 else: self.stopClock() def setTrackedItems(self, items): self.__trackedItems = set(items) self.startOrStopClock() def updatePresentation(self): self.__presentation = self.__viewer.presentation() self.setTrackedItems(self.trackedItems(self.__presentation)) def addTrackedItems(self, items): if items: self.__trackedItems.update(items) self.startOrStopClock() def removeTrackedItems(self, items): if items: self.__trackedItems.difference_update(items) self.startOrStopClock() def startOrStopClock(self): if self.__trackedItems: self.startClock() else: self.stopClock() def startClock(self): self.__timer.Start(1000, False) def stopClock(self): self.__timer.Stop() def isClockStarted(self): # Unit tests return self.__timer.IsRunning() def currentlyTrackedItems(self): return list(self.__trackedItems) @staticmethod def trackedItems(items): return [item for item in items if item.isBeingTracked(recursive=True)] taskcoach-1.4.3/taskcoachlib/gui/viewer/task.py000066400000000000000000002110061265347643000215210ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Thomas Sonne Olesen Task Coach 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. Task Coach 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 . ''' import math import wx.lib.agw.piectrl from taskcoachlib import command, widgets, domain, render from taskcoachlib.domain import task, date from taskcoachlib.gui import uicommand, menu, dialog from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.pubsub import pub from taskcoachlib.thirdparty.wxScheduler import wxSCHEDULER_TODAY, wxFancyDrawer from taskcoachlib.thirdparty import smartdatetimectrl as sdtc from taskcoachlib.widgets import CalendarConfigDialog, HierarchicalCalendarConfigDialog import base import inplace_editor import mixin import refresher class DueDateTimeCtrl(inplace_editor.DateTimeCtrl): def __init__(self, parent, wxId, item, column, owner, value, **kwargs): kwargs['relative'] = True kwargs['startDateTime'] = item.GetData().plannedStartDateTime() super(DueDateTimeCtrl, self).__init__(parent, wxId, item, column, owner, value, **kwargs) sdtc.EVT_TIME_CHOICES_CHANGE(self._dateTimeCtrl, self.OnChoicesChange) self._dateTimeCtrl.LoadChoices(item.GetData().settings.get('feature', 'sdtcspans')) def OnChoicesChange(self, event): self.item().GetData().settings.settext('feature', 'sdtcspans', event.GetValue()) class TaskViewerStatusMessages(object): template1 = _('Tasks: %d selected, %d visible, %d total') template2 = _('Status: %d overdue, %d late, %d inactive, %d completed') def __init__(self, viewer): super(TaskViewerStatusMessages, self).__init__() self.__viewer = viewer self.__presentation = viewer.presentation() def __call__(self): count = self.__presentation.observable(recursive=True).nrOfTasksPerStatus() return self.template1 % (len(self.__viewer.curselection()), self.__viewer.nrOfVisibleTasks(), self.__presentation.originalLength()), \ self.template2 % (count[task.status.overdue], count[task.status.late], count[task.status.inactive], count[task.status.completed]) class BaseTaskViewer(mixin.SearchableViewerMixin, # pylint: disable=W0223 mixin.FilterableViewerForTasksMixin, base.CategorizableViewerMixin, base.WithAttachmentsViewerMixin, base.TreeViewer): def __init__(self, *args, **kwargs): super(BaseTaskViewer, self).__init__(*args, **kwargs) self.statusMessages = TaskViewerStatusMessages(self) self.__registerForAppearanceChanges() wx.CallAfter(self.__DisplayBalloon) def __DisplayBalloon(self): if self.toolbar.getToolIdByCommand('ViewerHideTasks_completed') != wx.ID_ANY and self.toolbar.IsShownOnScreen() and \ hasattr(wx.GetTopLevelParent(self), 'AddBalloonTip'): wx.GetTopLevelParent(self).AddBalloonTip(self.settings, 'filtershiftclick', self.toolbar, getRect=lambda: self.toolbar.GetToolRect(self.toolbar.getToolIdByCommand('ViewerHideTasks_completed')), message=_('''Shift-click on a filter tool to see only tasks belonging to the corresponding status''')) def __registerForAppearanceChanges(self): for appearance in ('font', 'fgcolor', 'bgcolor', 'icon'): appearanceSettings = ['settings.%s.%s' % (appearance, setting) for setting in 'activetasks',\ 'inactivetasks', 'completedtasks', 'duesoontasks', 'overduetasks', 'latetasks'] for appearanceSetting in appearanceSettings: pub.subscribe(self.onAppearanceSettingChange, appearanceSetting) self.registerObserver(self.onAttributeChanged_Deprecated, eventType=task.Task.appearanceChangedEventType()) pub.subscribe(self.onAttributeChanged, task.Task.prerequisitesChangedEventType()) pub.subscribe(self.refresh, 'powermgt.on') def detach(self): super(BaseTaskViewer, self).detach() self.statusMessages = None # Break cycle def _renderTimeSpent(self, *args, **kwargs): if self.settings.getboolean('feature', 'decimaltime'): return render.timeSpentDecimal(*args, **kwargs) return render.timeSpent(*args, **kwargs) def onAppearanceSettingChange(self, value): # pylint: disable=W0613 if self: wx.CallAfter(self.refresh) # Let domain objects update appearance first # Show/hide status in toolbar may change too self.toolbar.loadPerspective(self.toolbar.perspective(), cache=False) def domainObjectsToView(self): return self.taskFile.tasks() def isShowingTasks(self): return True def createFilter(self, taskList): tasks = domain.base.DeletedFilter(taskList) return super(BaseTaskViewer, self).createFilter(tasks) def nrOfVisibleTasks(self): # Make this overridable for viewers where the widget does not show all # items in the presentation, i.e. the widget does filtering on its own. return len(self.presentation()) class BaseTaskTreeViewer(BaseTaskViewer): # pylint: disable=W0223 defaultTitle = _('Tasks') defaultBitmap = 'led_blue_icon' def __init__(self, *args, **kwargs): super(BaseTaskTreeViewer, self).__init__(*args, **kwargs) if kwargs.get('doRefresh', True): self.secondRefresher = refresher.SecondRefresher(self, task.Task.trackingChangedEventType()) self.minuteRefresher = refresher.MinuteRefresher(self) else: self.secondRefresher = self.minuteRefresher = None def detach(self): super(BaseTaskTreeViewer, self).detach() if hasattr(self, "secondRefresher") and self.secondRefresher: self.secondRefresher.stopClock() self.secondRefresher.removeInstance() del self.secondRefresher if hasattr(self, "minuteRefresher") and self.minuteRefresher: self.minuteRefresher.stopClock() del self.minuteRefresher def newItemDialog(self, *args, **kwargs): kwargs['categories'] = self.taskFile.categories().filteredCategories() return super(BaseTaskTreeViewer, self).newItemDialog(*args, **kwargs) def editItemDialog(self, items, bitmap, columnName='', items_are_new=False): if isinstance(items[0], task.Task): return super(BaseTaskTreeViewer, self).editItemDialog(items, bitmap, columnName=columnName, items_are_new=items_are_new) else: return dialog.editor.EffortEditor(wx.GetTopLevelParent(self), items, self.settings, self.taskFile.efforts(), self.taskFile, bitmap=bitmap, items_are_new=items_are_new) def itemEditorClass(self): return dialog.editor.TaskEditor def newItemCommandClass(self): return command.NewTaskCommand def newSubItemCommandClass(self): return command.NewSubTaskCommand def newSubItemCommand(self): kwargs = dict() if self.__shouldPresetPlannedStartDateTime(): kwargs['plannedStartDateTime'] = task.Task.suggestedPlannedStartDateTime() if self.__shouldPresetDueDateTime(): kwargs['dueDateTime'] = task.Task.suggestedDueDateTime() if self.__shouldPresetActualStartDateTime(): kwargs['actualStartDateTime'] = task.Task.suggestedActualStartDateTime() if self.__shouldPresetCompletionDateTime(): kwargs['completionDateTime'] = task.Task.suggestedCompletionDateTime() if self.__shouldPresetReminderDateTime(): kwargs['reminder'] = task.Task.suggestedReminderDateTime() # pylint: disable=W0142 return self.newSubItemCommandClass()(self.presentation(), self.curselection(), **kwargs) def __shouldPresetPlannedStartDateTime(self): return self.settings.get('view', 'defaultplannedstartdatetime').startswith('preset') def __shouldPresetDueDateTime(self): return self.settings.get('view', 'defaultduedatetime').startswith('preset') def __shouldPresetActualStartDateTime(self): return self.settings.get('view', 'defaultactualstartdatetime').startswith('preset') def __shouldPresetCompletionDateTime(self): return self.settings.get('view', 'defaultcompletiondatetime').startswith('preset') def __shouldPresetReminderDateTime(self): return self.settings.get('view', 'defaultreminderdatetime').startswith('preset') def deleteItemCommand(self): return command.DeleteTaskCommand(self.presentation(), self.curselection(), shadow=self.settings.getboolean('feature', 'syncml')) def createTaskPopupMenu(self): return menu.TaskPopupMenu(self.parent, self.settings, self.presentation(), self.taskFile.efforts(), self.taskFile.categories(), self) def createCreationToolBarUICommands(self): return (uicommand.TaskNew(taskList=self.presentation(), settings=self.settings), uicommand.NewSubItem(viewer=self), uicommand.TaskNewFromTemplateButton(taskList=self.presentation(), settings=self.settings, bitmap='newtmpl')) + \ super(BaseTaskTreeViewer, self).createCreationToolBarUICommands() def createActionToolBarUICommands(self): uiCommands = (uicommand.AddNote(settings=self.settings, viewer=self), uicommand.TaskMarkInactive(settings=self.settings, viewer=self), uicommand.TaskMarkActive(settings=self.settings, viewer=self), uicommand.TaskMarkCompleted(settings=self.settings, viewer=self)) uiCommands += ( # EffortStart needs a reference to the original (task) list to # be able to stop tracking effort for tasks that are already # being tracked, but that might be filtered in the viewer's # presentation. None, uicommand.EffortStart(viewer=self, taskList=self.taskFile.tasks()), uicommand.EffortStop(viewer=self, effortList=self.taskFile.efforts(), taskList=self.taskFile.tasks())) return uiCommands + super(BaseTaskTreeViewer, self).createActionToolBarUICommands() def createModeToolBarUICommands(self): hideUICommands = tuple([uicommand.ViewerHideTasks(taskStatus=status, settings=self.settings, viewer=self) \ for status in task.Task.possibleStatuses()]) otherModeUICommands = super(BaseTaskTreeViewer, self).createModeToolBarUICommands() separator = (None,) if otherModeUICommands else () return hideUICommands + separator + otherModeUICommands def iconName(self, item, isSelected): return item.selectedIcon(recursive=True) if isSelected else item.icon(recursive=True) def getItemTooltipData(self, task): # pylint: disable=W0621 result = [(self.iconName(task, task in self.curselection()), [self.getItemText(task)])] if task.notes(): result.append(('note_icon', sorted([note.subject() for note in task.notes()]))) if task.attachments(): result.append(('paperclip_icon', sorted([unicode(attachment) for attachment in task.attachments()]))) return result + super(BaseTaskTreeViewer, self).getItemTooltipData(task) def label(self, task): # pylint: disable=W0621 return self.getItemText(task) class RootNode(object): def __init__(self, tasks): self.tasks = tasks def subject(self): return '' def children(self, recursive=False): if recursive: return self.tasks[:] else: return self.tasks.rootItems() # pylint: disable=W0613 def foregroundColor(self, *args, **kwargs): return None def backgroundColor(self, *args, **kwargs): return None def font(self, *args, **kwargs): return None def completed(self, *args, **kwargs): return False late = dueSoon = inactive = overdue = isBeingTracked = completed class SquareMapRootNode(RootNode): def __getattr__(self, attr): def getTaskAttribute(recursive=True): if recursive: return max(sum((getattr(task, attr)(recursive=True) for task in self.children()), self.__zero), self.__zero) else: return self.__zero self.__zero = date.TimeDelta() if attr in ('budget', 'budgetLeft', 'timeSpent') else 0 # pylint: disable=W0201 return getTaskAttribute class TimelineRootNode(RootNode): def children(self, recursive=False): children = super(TimelineRootNode, self).children(recursive) children.sort(key=lambda task: task.plannedStartDateTime()) return children def parallel_children(self, recursive=False): return self.children(recursive) def sequential_children(self): return [] def plannedStartDateTime(self, recursive=False): # pylint: disable=W0613 plannedStartDateTimes = [item.plannedStartDateTime(recursive=True) for item in self.parallel_children()] plannedStartDateTimes = [dt for dt in plannedStartDateTimes if dt != date.DateTime()] if not plannedStartDateTimes: plannedStartDateTimes.append(date.Now()) return min(plannedStartDateTimes) def dueDateTime(self, recursive=False): # pylint: disable=W0613 dueDateTimes = [item.dueDateTime(recursive=True) for item in self.parallel_children()] dueDateTimes = [dt for dt in dueDateTimes if dt != date.DateTime()] if not dueDateTimes: dueDateTimes.append(date.Tomorrow()) return max(dueDateTimes) class TimelineViewer(BaseTaskTreeViewer): defaultTitle = _('Timeline') defaultBitmap = 'timelineviewer' def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'timelineviewer') super(TimelineViewer, self).__init__(*args, **kwargs) for eventType in (task.Task.subjectChangedEventType(), task.Task.plannedStartDateTimeChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType()): if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: self.registerObserver(self.onAttributeChanged_Deprecated, eventType) def createWidget(self): self.rootNode = TimelineRootNode(self.presentation()) # pylint: disable=W0201 itemPopupMenu = self.createTaskPopupMenu() self._popupMenus.append(itemPopupMenu) return widgets.Timeline(self, self.rootNode, self.onSelect, self.onEdit, itemPopupMenu) def onEdit(self, item): edit = uicommand.Edit(viewer=self) edit(item) def curselection(self): # Override curselection, because there is no need to translate indices # back to domain objects. Our widget already returns the selected domain # object itself. return self.widget.curselection() def bounds(self, item): times = [self.start(item), self.stop(item)] for child in self.parallel_children(item) + self.sequential_children(item): times.extend(self.bounds(child)) times = [time for time in times if time is not None] return (min(times), max(times)) if times else [] def start(self, item, recursive=False): try: start = item.plannedStartDateTime(recursive=recursive) if start == date.DateTime(): return None except AttributeError: start = item.getStart() return start.toordinal() def stop(self, item, recursive=False): try: if item.completed(): stop = item.completionDateTime(recursive=recursive) else: stop = item.dueDateTime(recursive=recursive) if stop == date.DateTime(): return None else: stop += date.ONE_DAY except AttributeError: stop = item.getStop() if not stop: return None return stop.toordinal() def sequential_children(self, item): try: return item.efforts() except AttributeError: return [] def parallel_children(self, item, recursive=False): try: children = [child for child in item.children(recursive=recursive) \ if child in self.presentation()] children.sort(key=lambda task: task.plannedStartDateTime()) return children except AttributeError: return [] def foreground_color(self, item, depth=0): # pylint: disable=W0613 return item.foregroundColor(recursive=True) def background_color(self, item, depth=0): # pylint: disable=W0613 return item.backgroundColor(recursive=True) def font(self, item, depth=0): # pylint: disable=W0613 return item.font(recursive=True) def icon(self, item, isSelected=False): bitmap = self.iconName(item, isSelected) return wx.ArtProvider_GetIcon(bitmap, wx.ART_MENU, (16, 16)) def now(self): return date.Now().toordinal() def nowlabel(self): return _('Now') def getItemTooltipData(self, item): if isinstance(item, task.Task): result = super(TimelineViewer, self).getItemTooltipData(item) else: result = [(None, [render.dateTimePeriod(item.getStart(), item.getStop(), humanReadable=True)])] if item.description(): result.append((None, [line.rstrip('\n') for line in item.description().split('\n')])) return result class SquareTaskViewer(BaseTaskTreeViewer): defaultTitle = _('Task square map') defaultBitmap = 'squaremapviewer' def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'squaretaskviewer') self.__orderBy = 'revenue' self.__transformTaskAttribute = lambda x: x self.__zero = 0 self.renderer = dict(budget=render.budget, timeSpent=self._renderTimeSpent, fixedFee=render.monetaryAmount, revenue=render.monetaryAmount, priority=render.priority) super(SquareTaskViewer, self).__init__(*args, **kwargs) sortKeys = eval(self.settings.get(self.settingsSection(), 'sortby')) orderBy = sortKeys[0] if sortKeys else 'budget' self.orderBy(sortKeys[0] if sortKeys else 'budget') pub.subscribe(self.on_order_by_changed, 'settings.%s.sortby' % self.settingsSection()) self.orderUICommand.setChoice(self.__orderBy) for eventType in (task.Task.subjectChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.plannedStartDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType()): if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: self.registerObserver(self.onAttributeChanged_Deprecated, eventType) def curselectionIsInstanceOf(self, class_): return class_ == task.Task def createWidget(self): itemPopupMenu = self.createTaskPopupMenu() self._popupMenus.append(itemPopupMenu) return widgets.SquareMap(self, SquareMapRootNode(self.presentation()), self.onSelect, uicommand.Edit(viewer=self), itemPopupMenu) def createModeToolBarUICommands(self): self.orderUICommand = uicommand.SquareTaskViewerOrderChoice(viewer=self, settings=self.settings) # pylint: disable=W0201 return super(SquareTaskViewer, self).createModeToolBarUICommands() + \ (self.orderUICommand,) def hasModes(self): return True def getModeUICommands(self): return [_('Lay out tasks by'), None] + \ [uicommand.SquareTaskViewerOrderByOption(menuText=menuText, value=value, viewer=self, settings=self.settings) for (menuText, value) in zip(uicommand.SquareTaskViewerOrderChoice.choiceLabels, uicommand.SquareTaskViewerOrderChoice.choiceData)] def on_order_by_changed(self, value): self.orderBy(value) def orderBy(self, choice): if choice == self.__orderBy: return oldChoice = self.__orderBy self.__orderBy = choice try: oldEventType = getattr(task.Task, '%sChangedEventType' % oldChoice)() except AttributeError: oldEventType = 'task.%s' % oldChoice if oldEventType.startswith('pubsub'): try: pub.unsubscribe(self.onAttributeChanged, oldEventType) except pub.TopicNameError: pass # Can happen on first call to orderBy else: self.removeObserver(self.onAttributeChanged_Deprecated, oldEventType) try: newEventType = getattr(task.Task, '%sChangedEventType' % choice)() except AttributeError: newEventType = 'task.%s' % choice if newEventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, newEventType) else: self.registerObserver(self.onAttributeChanged_Deprecated, newEventType) if choice in ('budget', 'timeSpent'): self.__transformTaskAttribute = lambda timeSpent: timeSpent.milliseconds() / 1000 self.__zero = date.TimeDelta() else: self.__transformTaskAttribute = lambda x: x self.__zero = 0 self.refresh() def curselection(self): # Override curselection, because there is no need to translate indices # back to domain objects. Our widget already returns the selected domain # object itself. return self.widget.curselection() def nrOfVisibleTasks(self): return len([eachTask for eachTask in self.presentation() \ if getattr(eachTask, self.__orderBy)(recursive=True) > self.__zero]) # SquareMap adapter methods: # pylint: disable=W0621 def overall(self, task): return self.__transformTaskAttribute(max(getattr(task, self.__orderBy)(recursive=True), self.__zero)) def children_sum(self, children, parent): # pylint: disable=W0613 children_sum = sum((max(getattr(child, self.__orderBy)(recursive=True), self.__zero) for child in children \ if child in self.presentation()), self.__zero) return self.__transformTaskAttribute(max(children_sum, self.__zero)) def empty(self, task): overall = self.overall(task) if overall: children_sum = self.children_sum(self.children(task), task) return max(self.__transformTaskAttribute(self.__zero), (overall - children_sum)) / float(overall) return 0 def getItemText(self, task): text = super(SquareTaskViewer, self).getItemText(task) value = self.render(getattr(task, self.__orderBy)(recursive=False)) return '%s (%s)' % (text, value) if value else text def value(self, task, parent=None): # pylint: disable=W0613 return self.overall(task) def foreground_color(self, task, depth): # pylint: disable=W0613 return task.foregroundColor(recursive=True) def background_color(self, task, depth): # pylint: disable=W0613 red = blue = 255 - (depth * 3) % 100 green = 255 - (depth * 2) % 100 color = wx.Colour(red, green, blue) return task.backgroundColor(recursive=True) or color def font(self, task, depth): # pylint: disable=W0613 return task.font(recursive=True) def icon(self, task, isSelected): bitmap = self.iconName(task, isSelected) or 'led_blue_icon' return wx.ArtProvider_GetIcon(bitmap, wx.ART_MENU, (16, 16)) # Helper methods def render(self, value): return self.renderer[self.__orderBy](value) class HierarchicalCalendarViewer(mixin.AttachmentDropTargetMixin, mixin.SortableViewerForTasksMixin, BaseTaskTreeViewer): defaultTitle = _('Hierarchical calendar') defaultBitmap = 'calendar_icon' def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'hierarchicalcalendarviewer') super(HierarchicalCalendarViewer, self).__init__(*args, **kwargs) # pylint: disable=E1101 for eventType in (task.Task.subjectChangedEventType(), task.Task.attachmentsChangedEventType(), task.Task.notesChangedEventType(), task.Task.trackingChangedEventType(), task.Task.percentageCompleteChangedEventType()): if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: self.registerObserver(self.onAttributeChanged_Deprecated, eventType) # Dates are treated separately because the layout may change (_Invalidate) # pylint: disable=E1101 for eventType in (task.Task.plannedStartDateTimeChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType()): if eventType.startswith('pubsub'): pub.subscribe(self.onLayoutAttributeChanged, eventType) else: self.registerObserver(self.onLayoutAttributeChanged_Deprecated, eventType) self.reconfig() date.Scheduler().schedule_interval(self.atMidnight, days=1) def reconfig(self): self.widget.SetCalendarFormat(self.settings.getint(self.settingsSection(), 'calendarformat')) self.widget.SetHeaderFormat(self.settings.getint(self.settingsSection(), 'headerformat')) self.widget.SetDrawNow(self.settings.getboolean(self.settingsSection(), 'drawnow')) self.widget.SetTodayColor(map(int, self.settings.get(self.settingsSection(), 'todaycolor').split(','))) def configure(self): dialog = HierarchicalCalendarConfigDialog(self.settings, self.settingsSection(), self, title=_('Hierarchical calendar viewer configuration')) dialog.CentreOnParent() if dialog.ShowModal() == wx.ID_OK: self.reconfig() def createModeToolBarUICommands(self): return super(HierarchicalCalendarViewer, self).createModeToolBarUICommands() + \ (None, uicommand.HierarchicalCalendarViewerConfigure(viewer=self), uicommand.HierarchicalCalendarViewerPreviousPeriod(viewer=self), uicommand.HierarchicalCalendarViewerToday(viewer=self), uicommand.HierarchicalCalendarViewerNextPeriod(viewer=self)) def detach(self): super(HierarchicalCalendarViewer, self).detach() date.Scheduler().unschedule(self.atMidnight) def atMidnight(self): self.widget.SetCalendarFormat(self.widget.CalendarFormat()) def onLayoutAttributeChanged(self, newValue, sender): self.refresh() def onLayoutAttributeChanged_Deprecated(self, event): self.refresh() def isTreeViewer(self): return True def onEverySecond(self, event): # pylint: disable=W0221,W0613 pass def createWidget(self): itemPopupMenu = self.createTaskPopupMenu() self._popupMenus.append(itemPopupMenu) widget = widgets.HierarchicalCalendar(self, self.presentation(), self.onSelect, self.onEdit, self.onCreate, itemPopupMenu, **self.widgetCreationKeywordArguments()) return widget def onEdit(self, item): edit = uicommand.Edit(viewer=self) edit(item) def onCreate(self, dateTime, show=True): plannedStartDateTime = dateTime dueDateTime = dateTime.endOfDay() if dateTime == dateTime.startOfDay() else dateTime create = uicommand.TaskNew(taskList=self.presentation(), settings=self.settings, taskKeywords=dict(plannedStartDateTime=plannedStartDateTime, dueDateTime=dueDateTime)) return create(event=None, show=show) def isAnyItemExpandable(self): return False def isAnyItemCollapsable(self): return False def GetPrintout(self, settings): return self.widget.GetPrintout(settings) class CalendarViewer(mixin.AttachmentDropTargetMixin, mixin.SortableViewerForTasksMixin, BaseTaskTreeViewer): defaultTitle = _('Calendar') defaultBitmap = 'calendar_icon' def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'calendarviewer') kwargs['doRefresh'] = False super(CalendarViewer, self).__init__(*args, **kwargs) start = self.settings.get(self.settingsSection(), 'viewdate') if start: dt = wx.DateTime.Now() dt.ParseDateTime(start) self.widget.SetDate(dt) self.onWeekStartChanged(self.settings.gettext('view', 'weekstart')) self.onWorkingHourChanged() self.reconfig() self.widget.SetPeriodWidth(self.settings.getint(self.settingsSection(), 'periodwidth')) for eventType in ('start', 'end'): pub.subscribe(self.onWorkingHourChanged, 'settings.view.efforthour%s' % eventType) pub.subscribe(self.onWeekStartChanged, 'settings.view.weekstartmonday') # pylint: disable=E1101 for eventType in (task.Task.subjectChangedEventType(), task.Task.plannedStartDateTimeChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType(), task.Task.attachmentsChangedEventType(), task.Task.notesChangedEventType(), task.Task.trackingChangedEventType(), task.Task.percentageCompleteChangedEventType()): if eventType.startswith('pubsub'): pub.subscribe(self.onAttributeChanged, eventType) else: self.registerObserver(self.onAttributeChanged_Deprecated, eventType) date.Scheduler().schedule_interval(self.atMidnight, days=1) def detach(self): super(CalendarViewer, self).detach() date.Scheduler().unschedule(self.atMidnight) def isTreeViewer(self): return False def onEverySecond(self, event): # pylint: disable=W0221,W0613 pass # Too expensive def atMidnight(self): if not self.settings.get(self.settingsSection(), 'viewdate'): # User has selected the "current" date/time; it may have # changed now self.SetViewType(wxSCHEDULER_TODAY) def onWorkingHourChanged(self, value=None): # pylint: disable=W0613 self.widget.SetWorkHours(self.settings.getint('view', 'efforthourstart'), self.settings.getint('view', 'efforthourend')) def onWeekStartChanged(self, value): assert value in ('monday', 'sunday') if value == 'monday': self.widget.SetWeekStartMonday() else: self.widget.SetWeekStartSunday() def createWidget(self): itemPopupMenu = self.createTaskPopupMenu() self._popupMenus.append(itemPopupMenu) widget = widgets.Calendar(self, self.presentation(), self.iconName, self.onSelect, self.onEdit, self.onCreate, self.onChangeConfig, itemPopupMenu, **self.widgetCreationKeywordArguments()) if self.settings.getboolean('calendarviewer', 'gradient'): # If called directly, we crash with a Cairo assert failing... wx.CallAfter(widget.SetDrawer, wxFancyDrawer) return widget def onChangeConfig(self): self.settings.set(self.settingsSection(), 'periodwidth', str(self.widget.GetPeriodWidth())) def onEdit(self, item): edit = uicommand.Edit(viewer=self) edit(item) def onCreate(self, dateTime, show=True): plannedStartDateTime = dateTime dueDateTime = dateTime.endOfDay() if dateTime == dateTime.startOfDay() else dateTime create = uicommand.TaskNew(taskList=self.presentation(), settings=self.settings, taskKeywords=dict(plannedStartDateTime=plannedStartDateTime, dueDateTime=dueDateTime)) return create(event=None, show=show) def createModeToolBarUICommands(self): return super(CalendarViewer, self).createModeToolBarUICommands() + \ (None, uicommand.CalendarViewerConfigure(viewer=self), uicommand.CalendarViewerPreviousPeriod(viewer=self), uicommand.CalendarViewerToday(viewer=self), uicommand.CalendarViewerNextPeriod(viewer=self)) def SetViewType(self, type_): self.widget.SetViewType(type_) dt = self.widget.GetDate() now = wx.DateTime.Today() if (dt.GetYear(), dt.GetMonth(), dt.GetDay()) == (now.GetYear(), now.GetMonth(), now.GetDay()): toSave = '' else: toSave = dt.Format() self.settings.set(self.settingsSection(), 'viewdate', toSave) # We need to override these because BaseTaskTreeViewer is a tree viewer, but # CalendarViewer is not. There is probably a better solution... def isAnyItemExpandable(self): return False def isAnyItemCollapsable(self): return False def reconfig(self): self.widget.Freeze() try: self.widget.SetPeriodCount(self.settings.getint(self.settingsSection(), 'periodcount')) self.widget.SetViewType(self.settings.getint(self.settingsSection(), 'viewtype')) self.widget.SetStyle(self.settings.getint(self.settingsSection(), 'vieworientation')) self.widget.SetShowNoStartDate(self.settings.getboolean(self.settingsSection(), 'shownostart')) self.widget.SetShowNoDueDate(self.settings.getboolean(self.settingsSection(), 'shownodue')) self.widget.SetShowUnplanned(self.settings.getboolean(self.settingsSection(), 'showunplanned')) self.widget.SetShowNow(self.settings.getboolean(self.settingsSection(), 'shownow')) hcolor = self.settings.get(self.settingsSection(), 'highlightcolor') if hcolor: highlightColor = wx.Colour(*tuple([int(c) for c in hcolor.split(',')])) self.widget.SetHighlightColor(highlightColor) self.widget.RefreshAllItems(0) finally: self.widget.Thaw() def configure(self): dialog = CalendarConfigDialog(self.settings, self.settingsSection(), self, title=_('Calendar viewer configuration')) dialog.CentreOnParent() if dialog.ShowModal() == wx.ID_OK: self.reconfig() def GetPrintout(self, settings): return self.widget.GetPrintout(settings) class TaskViewer(mixin.AttachmentDropTargetMixin, # pylint: disable=W0223 mixin.SortableViewerForTasksMixin, mixin.NoteColumnMixin, mixin.AttachmentColumnMixin, base.SortableViewerWithColumns, BaseTaskTreeViewer): def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'taskviewer') super(TaskViewer, self).__init__(*args, **kwargs) if self.isVisibleColumnByName('timeLeft'): self.minuteRefresher.startClock() pub.subscribe(self.onTreeListModeChanged, 'settings.%s.treemode' % self.settingsSection()) def activate(self): if hasattr(wx.GetTopLevelParent(self), 'AddBalloonTip'): wx.GetTopLevelParent(self).AddBalloonTip(self.settings, 'manualordering', self.widget, title=_('Manual ordering'), getRect=lambda: wx.Rect(0, 0, 28, 16), message=_('''Show the "Manual ordering" column, then drag and drop items from this column to sort them arbitrarily.''')) def isTreeViewer(self): # We first ask our presentation what the mode is because # ConfigParser.getboolean is a relatively expensive method. However, # when initializing, the presentation might not be created yet. So in # that case we get an AttributeError and we use the settings. try: return self.presentation().treeMode() except AttributeError: return self.settings.getboolean(self.settingsSection(), 'treemode') def showColumn(self, column, show=True, *args, **kwargs): if column.name() == 'timeLeft': if show: self.minuteRefresher.startClock() else: self.minuteRefresher.stopClock() super(TaskViewer, self).showColumn(column, show, *args, **kwargs) def curselectionIsInstanceOf(self, class_): return class_ == task.Task def createWidget(self): imageList = self.createImageList() # Has side-effects self._columns = self._createColumns() itemPopupMenu = self.createTaskPopupMenu() columnPopupMenu = self.createColumnPopupMenu() self._popupMenus.extend([itemPopupMenu, columnPopupMenu]) widget = widgets.TreeListCtrl(self, self.columns(), self.onSelect, uicommand.Edit(viewer=self), uicommand.TaskDragAndDrop(taskList=self.presentation(), viewer=self), itemPopupMenu, columnPopupMenu, resizeableColumn=1 if self.hasOrderingColumn() else 0, validateDrag=self.validateDrag, **self.widgetCreationKeywordArguments()) if self.hasOrderingColumn(): widget.SetMainColumn(1) widget.AssignImageList(imageList) # pylint: disable=E1101 widget.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.onBeginEdit) widget.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.onEndEdit) return widget def onBeginEdit(self, event): ''' Make sure only the non-recursive part of the subject can be edited inline. ''' event.Skip() if not self.isTreeViewer(): # Make sure the text control only shows the non-recursive subject # by temporarily changing the item text into the non-recursive # subject. When the editing ends, we change the item text back into # the recursive subject. See onEndEdit. treeItem = event.GetItem() editedTask = self.widget.GetItemPyData(treeItem) self.widget.SetItemText(treeItem, editedTask.subject()) def onEndEdit(self, event): ''' Make sure only the non-recursive part of the subject can be edited inline. ''' event.Skip() if not self.isTreeViewer(): # Restore the recursive subject. Here we don't care whether users # actually changed the subject. If they did, the subject will # be updated via the regular notification mechanism. treeItem = event.GetItem() editedTask = self.widget.GetItemPyData(treeItem) self.widget.SetItemText(treeItem, editedTask.subject(recursive=True)) def _createColumns(self): kwargs = dict(resizeCallback=self.onResizeColumn) # pylint: disable=E1101,W0142 columns = [ widgets.Column('ordering', u'', task.Task.orderingChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='ordering'), renderCallback=lambda task: '', imageIndicesCallback=self.orderingImageIndices, width=self.getColumnWidth('ordering')), widgets.Column('subject', _('Subject'), task.Task.subjectChangedEventType(), task.Task.completionDateTimeChangedEventType(), task.Task.actualStartDateTimeChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.plannedStartDateTimeChangedEventType(), task.Task.trackingChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='subject'), width=self.getColumnWidth('subject'), imageIndicesCallback=self.subjectImageIndices, renderCallback=self.renderSubject, editCallback=self.onEditSubject, editControl=inplace_editor.SubjectCtrl, **kwargs)] + \ [widgets.Column('description', _('Description'), task.Task.descriptionChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='description'), renderCallback=lambda task: task.description(), width=self.getColumnWidth('description'), editCallback=self.onEditDescription, editControl=inplace_editor.DescriptionCtrl, **kwargs)] + \ [widgets.Column('attachments', _('Attachments'), task.Task.attachmentsChangedEventType(), width=self.getColumnWidth('attachments'), alignment=wx.LIST_FORMAT_LEFT, imageIndicesCallback=self.attachmentImageIndices, headerImageIndex=self.imageIndex['paperclip_icon'], renderCallback=lambda task: '', **kwargs)] columns.append(widgets.Column('notes', _('Notes'), task.Task.notesChangedEventType(), width=self.getColumnWidth('notes'), alignment=wx.LIST_FORMAT_LEFT, imageIndicesCallback=self.noteImageIndices, headerImageIndex=self.imageIndex['note_icon'], renderCallback=lambda task: '', **kwargs)) columns.extend( [widgets.Column('categories', _('Categories'), task.Task.categoryAddedEventType(), task.Task.categoryRemovedEventType(), task.Task.categorySubjectChangedEventType(), task.Task.expansionChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='categories'), width=self.getColumnWidth('categories'), renderCallback=self.renderCategories, **kwargs), widgets.Column('prerequisites', _('Prerequisites'), task.Task.prerequisitesChangedEventType(), task.Task.expansionChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='prerequisites'), renderCallback=self.renderPrerequisites, width=self.getColumnWidth('prerequisites'), **kwargs), widgets.Column('dependencies', _('Dependents'), task.Task.dependenciesChangedEventType(), task.Task.expansionChangedEventType(), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='dependencies'), renderCallback=self.renderDependencies, width=self.getColumnWidth('dependencies'), **kwargs)]) for name, columnHeader, editCtrl, editCallback, eventTypes in [ ('plannedStartDateTime', _('Planned start date'), inplace_editor.DateTimeCtrl, self.onEditPlannedStartDateTime, []), ('dueDateTime', _('Due date'), DueDateTimeCtrl, self.onEditDueDateTime, [task.Task.expansionChangedEventType()]), ('actualStartDateTime', _('Actual start date'), inplace_editor.DateTimeCtrl, self.onEditActualStartDateTime, [task.Task.expansionChangedEventType()]), ('completionDateTime', _('Completion date'), inplace_editor.DateTimeCtrl, self.onEditCompletionDateTime, [task.Task.expansionChangedEventType()])]: renderCallback = getattr(self, 'render%s' % \ (name[0].capitalize() + name[1:])) columns.append(widgets.Column(name, columnHeader, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value=name), renderCallback=renderCallback, width=self.getColumnWidth(name), alignment=wx.LIST_FORMAT_RIGHT, editControl=editCtrl, editCallback=editCallback, settings=self.settings, *eventTypes, **kwargs)) dependsOnEffortFeature = ['budget', 'timeSpent', 'budgetLeft', 'hourlyFee', 'fixedFee', 'revenue'] for name, columnHeader, editCtrl, editCallback, eventTypes in [ ('percentageComplete', _('% complete'), inplace_editor.PercentageCtrl, self.onEditPercentageComplete, [task.Task.expansionChangedEventType(), task.Task.percentageCompleteChangedEventType()]), ('timeLeft', _('Time left'), None, None, [task.Task.expansionChangedEventType(), 'task.timeLeft']), ('recurrence', _('Recurrence'), None, None, [task.Task.expansionChangedEventType(), task.Task.recurrenceChangedEventType()]), ('budget', _('Budget'), inplace_editor.BudgetCtrl, self.onEditBudget, [task.Task.expansionChangedEventType(), task.Task.budgetChangedEventType()]), ('timeSpent', _('Time spent'), None, None, [task.Task.expansionChangedEventType(), task.Task.timeSpentChangedEventType()]), ('budgetLeft', _('Budget left'), None, None, [task.Task.expansionChangedEventType(), task.Task.budgetLeftChangedEventType()]), ('priority', _('Priority'), inplace_editor.PriorityCtrl, self.onEditPriority, [task.Task.expansionChangedEventType(), task.Task.priorityChangedEventType()]), ('hourlyFee', _('Hourly fee'), inplace_editor.AmountCtrl, self.onEditHourlyFee, [task.Task.hourlyFeeChangedEventType()]), ('fixedFee', _('Fixed fee'), inplace_editor.AmountCtrl, self.onEditFixedFee, [task.Task.expansionChangedEventType(), task.Task.fixedFeeChangedEventType()]), ('revenue', _('Revenue'), None, None, [task.Task.expansionChangedEventType(), task.Task.revenueChangedEventType()])]: if (name in dependsOnEffortFeature) or name not in dependsOnEffortFeature: renderCallback = getattr(self, 'render%s' % \ (name[0].capitalize() + name[1:])) columns.append(widgets.Column(name, columnHeader, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value=name), renderCallback=renderCallback, width=self.getColumnWidth(name), alignment=wx.LIST_FORMAT_RIGHT, editControl=editCtrl, editCallback=editCallback, *eventTypes, **kwargs)) columns.append(widgets.Column('reminder', _('Reminder'), sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='reminder'), renderCallback=self.renderReminder, width=self.getColumnWidth('reminder'), alignment=wx.LIST_FORMAT_RIGHT, editControl=inplace_editor.DateTimeCtrl, editCallback=self.onEditReminderDateTime, settings=self.settings, *[task.Task.expansionChangedEventType(), task.Task.reminderChangedEventType()], **kwargs)) columns.append(widgets.Column('creationDateTime', _('Creation date'), width=self.getColumnWidth('creationDateTime'), renderCallback=self.renderCreationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='creationDateTime'), **kwargs)) columns.append(widgets.Column('modificationDateTime', _('Modification date'), width=self.getColumnWidth('modificationDateTime'), renderCallback=self.renderModificationDateTime, sortCallback=uicommand.ViewerSortByCommand(viewer=self, value='modificationDateTime'), *task.Task.modificationEventTypes(), **kwargs)) return columns def createColumnUICommands(self): commands = [ uicommand.ToggleAutoColumnResizing(viewer=self, settings=self.settings), None, (_('&Dates'), uicommand.ViewColumns(menuText=_('&All date columns'), helpText=_('Show/hide all date-related columns'), setting=['plannedStartDateTime', 'dueDateTime', 'timeLeft', 'actualStartDateTime', 'completionDateTime', 'recurrence'], viewer=self), None, uicommand.ViewColumn(menuText=_('&Planned start date'), helpText=_('Show/hide planned start date column'), setting='plannedStartDateTime', viewer=self), uicommand.ViewColumn(menuText=_('&Due date'), helpText=_('Show/hide due date column'), setting='dueDateTime', viewer=self), uicommand.ViewColumn(menuText=_('&Actual start date'), helpText=_('Show/hide actual start date column'), setting='actualStartDateTime', viewer=self), uicommand.ViewColumn(menuText=_('&Completion date'), helpText=_('Show/hide completion date column'), setting='completionDateTime', viewer=self), uicommand.ViewColumn(menuText=_('&Time left'), helpText=_('Show/hide time left column'), setting='timeLeft', viewer=self), uicommand.ViewColumn(menuText=_('&Recurrence'), helpText=_('Show/hide recurrence column'), setting='recurrence', viewer=self))] commands.extend([ (_('&Budget'), uicommand.ViewColumns(menuText=_('&All budget columns'), helpText=_('Show/hide all budget-related columns'), setting=['budget', 'timeSpent', 'budgetLeft'], viewer=self), None, uicommand.ViewColumn(menuText=_('&Budget'), helpText=_('Show/hide budget column'), setting='budget', viewer=self), uicommand.ViewColumn(menuText=_('&Time spent'), helpText=_('Show/hide time spent column'), setting='timeSpent', viewer=self), uicommand.ViewColumn(menuText=_('&Budget left'), helpText=_('Show/hide budget left column'), setting='budgetLeft', viewer=self), ), (_('&Financial'), uicommand.ViewColumns(menuText=_('&All financial columns'), helpText=_('Show/hide all finance-related columns'), setting=['hourlyFee', 'fixedFee', 'revenue'], viewer=self), None, uicommand.ViewColumn(menuText=_('&Hourly fee'), helpText=_('Show/hide hourly fee column'), setting='hourlyFee', viewer=self), uicommand.ViewColumn(menuText=_('&Fixed fee'), helpText=_('Show/hide fixed fee column'), setting='fixedFee', viewer=self), uicommand.ViewColumn(menuText=_('&Revenue'), helpText=_('Show/hide revenue column'), setting='revenue', viewer=self))]) commands.extend([ uicommand.ViewColumn(menuText=_('&Manual ordering'), helpText=_('Show/hide the manual ordering column'), setting='ordering', viewer=self), uicommand.ViewColumn(menuText=_('&Description'), helpText=_('Show/hide description column'), setting='description', viewer=self), uicommand.ViewColumn(menuText=_('&Prerequisites'), helpText=_('Show/hide prerequisites column'), setting='prerequisites', viewer=self), uicommand.ViewColumn(menuText=_('&Dependents'), helpText=_('Show/hide dependents column'), setting='dependencies', viewer=self), uicommand.ViewColumn(menuText=_('&Percentage complete'), helpText=_('Show/hide percentage complete column'), setting='percentageComplete', viewer=self), uicommand.ViewColumn(menuText=_('&Attachments'), helpText=_('Show/hide attachment column'), setting='attachments', viewer=self)]) commands.append( uicommand.ViewColumn(menuText=_('&Notes'), helpText=_('Show/hide notes column'), setting='notes', viewer=self)) commands.extend([ uicommand.ViewColumn(menuText=_('&Categories'), helpText=_('Show/hide categories column'), setting='categories', viewer=self), uicommand.ViewColumn(menuText=_('&Priority'), helpText=_('Show/hide priority column'), setting='priority', viewer=self), uicommand.ViewColumn(menuText=_('&Reminder'), helpText=_('Show/hide reminder column'), setting='reminder', viewer=self), uicommand.ViewColumn(menuText=_('&Creation date'), helpText=_('Show/hide creation date column'), setting='creationDateTime', viewer=self), uicommand.ViewColumn(menuText=_('&Modification date'), helpText=_('Show/hide last modification date column'), setting='modificationDateTime', viewer=self)]) return commands def createModeToolBarUICommands(self): treeOrListUICommand = uicommand.TaskViewerTreeOrListChoice(viewer=self, settings=self.settings) # pylint: disable=W0201 return super(TaskViewer, self).createModeToolBarUICommands() + \ (treeOrListUICommand,) def hasModes(self): return True def getModeUICommands(self): return [_('Show tasks as'), None] + \ [uicommand.TaskViewerTreeOrListOption(menuText=menuText, value=value, viewer=self, settings=self.settings) for (menuText, value) in zip(uicommand.TaskViewerTreeOrListChoice.choiceLabels, uicommand.TaskViewerTreeOrListChoice.choiceData)] def createColumnPopupMenu(self): return menu.ColumnPopupMenu(self) def setSortByTaskStatusFirst(self, *args, **kwargs): # pylint: disable=W0221 super(TaskViewer, self).setSortByTaskStatusFirst(*args, **kwargs) self.showSortOrder() def getSortOrderImage(self): sortOrderImage = super(TaskViewer, self).getSortOrderImage() if self.isSortByTaskStatusFirst(): # pylint: disable=E1101 sortOrderImage = sortOrderImage.rstrip('icon') + 'with_status_icon' return sortOrderImage def setSearchFilter(self, searchString, *args, **kwargs): # pylint: disable=W0221 super(TaskViewer, self).setSearchFilter(searchString, *args, **kwargs) if searchString: self.expandAll() # pylint: disable=E1101 def onTreeListModeChanged(self, value): self.presentation().setTreeMode(value) # pylint: disable=W0621 def renderSubject(self, task): return task.subject(recursive=not self.isTreeViewer()) def renderPlannedStartDateTime(self, task, humanReadable=True): return self.renderedValue(task, task.plannedStartDateTime, lambda x: render.dateTime(x, humanReadable=humanReadable)) def renderDueDateTime(self, task, humanReadable=True): return self.renderedValue(task, task.dueDateTime, lambda x: render.dateTime(x, humanReadable=humanReadable)) def renderActualStartDateTime(self, task, humanReadable=True): return self.renderedValue(task, task.actualStartDateTime, lambda x: render.dateTime(x, humanReadable=humanReadable)) def renderCompletionDateTime(self, task, humanReadable=True): return self.renderedValue(task, task.completionDateTime, lambda x: render.dateTime(x, humanReadable=humanReadable)) def renderRecurrence(self, task): return self.renderedValue(task, task.recurrence, render.recurrence) def renderPrerequisites(self, task): return self.renderSubjectsOfRelatedItems(task, task.prerequisites) def renderDependencies(self, task): return self.renderSubjectsOfRelatedItems(task, task.dependencies) def renderTimeLeft(self, task): return self.renderedValue(task, task.timeLeft, render.timeLeft, task.completed()) def renderTimeSpent(self, task): return self.renderedValue(task, task.timeSpent, self._renderTimeSpent) def renderBudget(self, task): return self.renderedValue(task, task.budget, render.budget) def renderBudgetLeft(self, task): return self.renderedValue(task, task.budgetLeft, render.budget) def renderRevenue(self, task): return self.renderedValue(task, task.revenue, render.monetaryAmount) def renderHourlyFee(self, task): # hourlyFee has no recursive value return render.monetaryAmount(task.hourlyFee()) def renderFixedFee(self, task): return self.renderedValue(task, task.fixedFee, render.monetaryAmount) def renderPercentageComplete(self, task): return self.renderedValue(task, task.percentageComplete, render.percentage) def renderPriority(self, task): return self.renderedValue(task, task.priority, render.priority) + ' ' def renderReminder(self, task, humanReadable=True): return self.renderedValue(task, task.reminder, lambda x: render.dateTime(x, humanReadable=humanReadable)) def renderedValue(self, item, getValue, renderValue, *extraRenderArgs): value = getValue(recursive=False) template = '%s' if self.isItemCollapsed(item): recursiveValue = getValue(recursive=True) if value != recursiveValue: value = recursiveValue template = '(%s)' return template % renderValue(value, *extraRenderArgs) def onEditPlannedStartDateTime(self, item, newValue): keep_delta = self.settings.get('view', 'datestied') == 'startdue' command.EditPlannedStartDateTimeCommand(items=[item], newValue=newValue, keep_delta=keep_delta).do() def onEditDueDateTime(self, item, newValue): keep_delta = self.settings.get('view', 'datestied') == 'duestart' command.EditDueDateTimeCommand(items=[item], newValue=newValue, keep_delta=keep_delta).do() def onEditActualStartDateTime(self, item, newValue): command.EditActualStartDateTimeCommand(items=[item], newValue=newValue).do() def onEditCompletionDateTime(self, item, newValue): command.EditCompletionDateTimeCommand(items=[item], newValue=newValue).do() def onEditPercentageComplete(self, item, newValue): command.EditPercentageCompleteCommand(items=[item], newValue=newValue).do() # pylint: disable=E1101 def onEditBudget(self, item, newValue): command.EditBudgetCommand(items=[item], newValue=newValue).do() def onEditPriority(self, item, newValue): command.EditPriorityCommand(items=[item], newValue=newValue).do() def onEditReminderDateTime(self, item, newValue): command.EditReminderDateTimeCommand(items=[item], newValue=newValue).do() def onEditHourlyFee(self, item, newValue): command.EditHourlyFeeCommand(items=[item], newValue=newValue).do() def onEditFixedFee(self, item, newValue): command.EditFixedFeeCommand(items=[item], newValue=newValue).do() def onEverySecond(self, event): # Only update when a column is visible that changes every second if any([self.isVisibleColumnByName(column) for column in 'timeSpent', 'budgetLeft', 'revenue']): super(TaskViewer, self).onEverySecond(event) def getRootItems(self): ''' If the viewer is in tree mode, return the real root items. If the viewer is in list mode, return all items. ''' return super(TaskViewer, self).getRootItems() if \ self.isTreeViewer() else self.presentation() def getItemParent(self, item): return super(TaskViewer, self).getItemParent(item) if \ self.isTreeViewer() else None def children(self, item=None): return super(TaskViewer, self).children(item) if \ (self.isTreeViewer() or item is None) else [] class CheckableTaskViewer(TaskViewer): # pylint: disable=W0223 def createWidget(self): imageList = self.createImageList() # Has side-effects self._columns = self._createColumns() itemPopupMenu = self.createTaskPopupMenu() columnPopupMenu = self.createColumnPopupMenu() self._popupMenus.extend([itemPopupMenu, columnPopupMenu]) widget = widgets.CheckTreeCtrl(self, self.columns(), self.onSelect, self.onCheck, uicommand.Edit(viewer=self), uicommand.TaskDragAndDrop(taskList=self.presentation(), viewer=self), itemPopupMenu, columnPopupMenu, **self.widgetCreationKeywordArguments()) widget.AssignImageList(imageList) # pylint: disable=E1101 return widget def onCheck(self, event, final): pass def getIsItemChecked(self, task): # pylint: disable=W0613,W0621 return False def getItemParentHasExclusiveChildren(self, task): # pylint: disable=W0613,W0621 return False class TaskStatsViewer(BaseTaskViewer): # pylint: disable=W0223 defaultTitle = _('Task statistics') defaultBitmap = 'charts_icon' def __init__(self, *args, **kwargs): kwargs.setdefault('settingsSection', 'taskstatsviewer') super(TaskStatsViewer, self).__init__(*args, **kwargs) pub.subscribe(self.onPieChartAngleChanged, 'settings.%s.piechartangle' % self.settingsSection()) def createWidget(self): widget = wx.lib.agw.piectrl.PieCtrl(self) widget.SetShowEdges(False) widget.SetHeight(20) self.initLegend(widget) for dummy in task.Task.possibleStatuses(): widget._series.append(wx.lib.agw.piectrl.PiePart(1)) # pylint: disable=W0212 return widget def createClipboardToolBarUICommands(self): return () def createEditToolBarUICommands(self): return () def createCreationToolBarUICommands(self): return (uicommand.TaskNew(taskList=self.presentation(), settings=self.settings), uicommand.TaskNewFromTemplateButton(taskList=self.presentation(), settings=self.settings, bitmap='newtmpl')) def createActionToolBarUICommands(self): return tuple([uicommand.ViewerHideTasks(taskStatus=status, settings=self.settings, viewer=self) \ for status in task.Task.possibleStatuses()]) + \ (uicommand.ViewerPieChartAngle(viewer=self, settings=self.settings),) def initLegend(self, widget): legend = widget.GetLegend() legend.SetTransparent(False) legend.SetBackColour(wx.WHITE) legend.SetLabelFont(wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT)) legend.Show() def refresh(self): self.widget.SetAngle(self.settings.getint(self.settingsSection(), 'piechartangle') / 180. * math.pi) self.refreshParts() self.widget.Refresh() def refreshParts(self): series = self.widget._series # pylint: disable=W0212 tasks = self.presentation() total = len(tasks) counts = tasks.nrOfTasksPerStatus() for part, status in zip(series, task.Task.possibleStatuses()): nrTasks = counts[status] percentage = round(100. * nrTasks / total) if total else 0 part.SetLabel(status.countLabel % (nrTasks, percentage)) part.SetValue(nrTasks) part.SetColour(self.getFgColor(status)) # PietCtrl can't handle empty pie charts: if total == 0: series[0].SetValue(1) def getFgColor(self, status): color = wx.Colour(*eval(self.settings.get('fgcolor', '%stasks' % status))) if status == task.status.active and color == wx.BLACK: color = wx.BLUE return color def refreshItems(self, *args, **kwargs): # pylint: disable=W0613 self.refresh() def select(self, *args): pass def updateSelection(self, *args, **kwargs): pass def isTreeViewer(self): return False def onPieChartAngleChanged(self, value): # pylint: disable=W0613 self.refresh() taskcoach-1.4.3/taskcoachlib/gui/windowdimensionstracker.py000066400000000000000000000144731265347643000242430ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import operating_system class _Tracker(object): ''' Utility methods for setting and getting values from/to the settings. ''' def __init__(self, settings, section): super(_Tracker, self).__init__() self.__settings = settings self.__section = section def set_setting(self, setting, value): ''' Store the value for the setting in the settings. ''' self.__settings.setvalue(self.__section, setting, value) def get_setting(self, setting): ''' Get the value for the setting from the settings and return it. ''' return self.__settings.getvalue(self.__section, setting) class WindowSizeAndPositionTracker(_Tracker): ''' Track the size and position of a window in the settings. ''' def __init__(self, window, settings, section): super(WindowSizeAndPositionTracker, self).__init__(settings, section) self._window = window self.__set_dimensions() self._window.Bind(wx.EVT_SIZE, self.on_change_size) self._window.Bind(wx.EVT_MOVE, self.on_change_position) self._window.Bind(wx.EVT_MAXIMIZE, self.on_maximize) def on_change_size(self, event): ''' Handle a size event by saving the new size of the window in the settings. ''' # Ignore the EVT_SIZE when the window is maximized or iconized. # Note how this depends on the EVT_MAXIMIZE being sent before the # EVT_SIZE. maximized = self._window.IsMaximized() if not maximized and not self._window.IsIconized(): self.set_setting('size', self._window.GetClientSize() \ if operating_system.isMac() else event.GetSize()) # Jerome, 2008/07/12: On my system (KDE 3.5.7), EVT_MAXIMIZE # is not triggered, so set 'maximized' to True here as well as in # onMaximize: self.set_setting('maximized', maximized) event.Skip() def on_change_position(self, event): ''' Handle a move event by saving the new position of the window in the settings. ''' if not self._window.IsMaximized(): self.set_setting('maximized', False) if not self._window.IsIconized(): # Only save position when the window is not maximized # *and* not minimized self.set_setting('position', event.GetPosition()) event.Skip() def on_maximize(self, event): ''' Handle a maximize event by saving the window maximization state in the settings. ''' self.set_setting('maximized', True) event.Skip() def __set_dimensions(self): ''' Set the window position and size based on the settings. ''' x, y = self.get_setting('position') # pylint: disable=C0103 width, height = self.get_setting('size') if operating_system.isMac(): # Under MacOS 10.5 and 10.4, when setting the size, the actual # window height is increased by 40 pixels. Dunno why, but it's # highly annoying. This doesn't hold for dialogs though. Sigh. if not isinstance(self._window, wx.Dialog): height += 18 self._window.SetDimensions(x, y, width, height) if operating_system.isMac(): self._window.SetClientSize((width, height)) if self.get_setting('maximized'): self._window.Maximize() # Check that the window is on a valid display and move if necessary: if wx.Display.GetFromWindow(self._window) == wx.NOT_FOUND: # Not (0, 0) because on OSX this hides the window bar... self._window.SetDimensions(50, 50, width, height) if operating_system.isMac(): self._window.SetClientSize((width, height)) class WindowDimensionsTracker(WindowSizeAndPositionTracker): ''' Track the dimensions of a window in the settings. ''' def __init__(self, window, settings): super(WindowDimensionsTracker, self).__init__(window, settings, 'window') self.__settings = settings if self.__start_iconized(): if operating_system.isMac() or operating_system.isGTK(): # Need to show the window on Mac OS X first, otherwise it # won't be properly minimized. On wxGTK we need to show the # window first, otherwise clicking the task bar icon won't # show it. self._window.Show() self._window.Iconize(True) if not operating_system.isMac() and \ self.get_setting('hidewheniconized'): # Seems like hiding the window after it's been # iconized actually closes it on Mac OS... wx.CallAfter(self._window.Hide) def __start_iconized(self): ''' Return whether the window should be opened iconized. ''' start_iconized = self.__settings.get('window', 'starticonized') if start_iconized == 'Always': return True if start_iconized == 'Never': return False return self.get_setting('iconized') def save_position(self): ''' Save the position of the window in the settings. ''' iconized = self._window.IsIconized() self.set_setting('iconized', iconized) if not iconized: self.set_setting('position', self._window.GetPosition()) taskcoach-1.4.3/taskcoachlib/gui/wizard/000077500000000000000000000000001265347643000202045ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/gui/wizard/__init__.py000066400000000000000000000013741265347643000223220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from csvimport import CSVImportWizard taskcoach-1.4.3/taskcoachlib/gui/wizard/csvimport.py000066400000000000000000000331141265347643000226060ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta from taskcoachlib.i18n import _ from taskcoachlib.thirdparty import chardet import wx import csv import tempfile import wx.grid as gridlib import wx.wizard as wiz class CSVDialect(csv.Dialect): def __init__(self, delimiter=',', quotechar='"', doublequote=True, escapechar=''): self.delimiter = delimiter self.quotechar = quotechar self.quoting = csv.QUOTE_MINIMAL self.lineterminator = '\r\n' self.doublequote = doublequote self.escapechar = escapechar csv.Dialect.__init__(self) class CSVImportOptionsPage(wiz.WizardPageSimple): def __init__(self, filename, *args, **kwargs): super(CSVImportOptionsPage, self).__init__(*args, **kwargs) self.delimiter = wx.Choice(self, wx.ID_ANY) self.delimiter.Append(_('Comma')) self.delimiter.Append(_('Tab')) self.delimiter.Append(_('Space')) self.delimiter.Append(_('Colon')) self.delimiter.Append(_('Semicolon')) self.delimiter.Append(_('Pipe')) self.delimiter.SetSelection(0) self.date = wx.Choice(self) self.date.Append(_('DD/MM (day first)')) self.date.Append(_('MM/DD (month first)')) self.date.SetSelection(0) self.quoteChar = wx.Choice(self, wx.ID_ANY) self.quoteChar.Append(_('Simple quote')) self.quoteChar.Append(_('Double quote')) self.quoteChar.SetSelection(1) self.quotePanel = wx.Panel(self, wx.ID_ANY) self.doubleQuote = wx.RadioButton(self.quotePanel, wx.ID_ANY, _('Double it')) self.doubleQuote.SetValue(True) self.escapeQuote = wx.RadioButton(self.quotePanel, wx.ID_ANY, _('Escape with')) self.escapeChar = wx.TextCtrl(self.quotePanel, wx.ID_ANY, '\\', size=(50, -1)) self.escapeChar.Enable(False) self.escapeChar.SetMaxLength(1) hsizer = wx.BoxSizer(wx.HORIZONTAL) hsizer.Add(self.doubleQuote, 1, wx.ALL, 3) hsizer.Add(self.escapeQuote, 1, wx.ALL, 3) hsizer.Add(self.escapeChar, 1, wx.ALL, 3) self.quotePanel.SetSizer(hsizer) self.importSelectedRowsOnly = wx.CheckBox(self, wx.ID_ANY, _('Import only the selected rows')) self.importSelectedRowsOnly.SetValue(False) self.hasHeaders = wx.CheckBox(self, wx.ID_ANY, _('First line describes fields')) self.hasHeaders.SetValue(True) self.grid = gridlib.Grid(self) self.grid.SetRowLabelSize(0) self.grid.SetColLabelSize(0) self.grid.CreateGrid(0, 0) self.grid.EnableEditing(False) self.grid.SetSelectionMode(self.grid.wxGridSelectRows) vsizer = wx.BoxSizer(wx.VERTICAL) gridSizer = wx.FlexGridSizer(0, 2) gridSizer.Add(wx.StaticText(self, wx.ID_ANY, _('Delimiter')), 0, wx.ALIGN_CENTRE_VERTICAL | wx.ALL, 3) gridSizer.Add(self.delimiter, 0, wx.ALL, 3) gridSizer.Add(wx.StaticText(self, wx.ID_ANY, _('Date format')), 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 3) gridSizer.Add(self.date, 0, wx.ALL, 3) gridSizer.Add(wx.StaticText(self, wx.ID_ANY, _('Quote character')), 0, wx.ALIGN_CENTRE_VERTICAL | wx.ALL, 3) gridSizer.Add(self.quoteChar, 0, wx.ALL, 3) gridSizer.Add(wx.StaticText(self, wx.ID_ANY, _('Escape quote')), 0, wx.ALIGN_CENTRE_VERTICAL | wx.ALL, 3) gridSizer.Add(self.quotePanel, 0, wx.ALL, 3) gridSizer.Add(self.importSelectedRowsOnly, 0, wx.ALL, 3) gridSizer.Add((0, 0)) gridSizer.Add(self.hasHeaders, 0, wx.ALL, 3) gridSizer.Add((0, 0)) gridSizer.AddGrowableCol(1) vsizer.Add(gridSizer, 0, wx.EXPAND | wx.ALL, 3) vsizer.Add(self.grid, 1, wx.EXPAND | wx.ALL, 3) self.SetSizer(vsizer) self.headers = None self.filename = filename self.encoding = chardet.detect(file(filename, 'rb').read())['encoding'] self.OnOptionChanged(None) wx.EVT_CHOICE(self.delimiter, wx.ID_ANY, self.OnOptionChanged) wx.EVT_CHOICE(self.quoteChar, wx.ID_ANY, self.OnOptionChanged) wx.EVT_CHECKBOX(self.importSelectedRowsOnly, wx.ID_ANY, self.OnOptionChanged) wx.EVT_CHECKBOX(self.hasHeaders, wx.ID_ANY, self.OnOptionChanged) wx.EVT_RADIOBUTTON(self.doubleQuote, wx.ID_ANY, self.OnOptionChanged) wx.EVT_RADIOBUTTON(self.escapeQuote, wx.ID_ANY, self.OnOptionChanged) wx.EVT_TEXT(self.escapeChar, wx.ID_ANY, self.OnOptionChanged) def OnOptionChanged(self, event): # pylint: disable=W0613 self.escapeChar.Enable(self.escapeQuote.GetValue()) if self.filename is None: self.grid.SetRowLabelSize(0) self.grid.SetColLabelSize(0) if self.grid.GetNumberCols(): self.grid.DeleteRows(0, self.grid.GetNumberRows()) self.grid.DeleteCols(0, self.grid.GetNumberCols()) else: if self.doubleQuote.GetValue(): doublequote = True escapechar = '' else: doublequote = False escapechar = self.escapeChar.GetValue().encode('UTF-8') self.dialect = CSVDialect(delimiter={0: ',', 1: '\t', 2: ' ', 3: ':', 4: ';', 5: '|'}[self.delimiter.GetSelection()], quotechar={0: "'", 1: '"'}[self.quoteChar.GetSelection()], doublequote=doublequote, escapechar=escapechar) fp = tempfile.TemporaryFile() try: fp.write(file(self.filename, 'rU').read().decode(self.encoding).encode('UTF-8')) fp.seek(0) reader = csv.reader(fp, dialect=self.dialect) if self.hasHeaders.GetValue(): self.headers = [header.decode('UTF-8') for header in reader.next()] else: # In some cases, empty fields are omitted if they're at the end... hsize = 0 for line in reader: hsize = max(hsize, len(line)) self.headers = [_('Field #%d') % idx for idx in xrange(hsize)] fp.seek(0) reader = csv.reader(fp, dialect=self.dialect) if self.grid.GetNumberCols(): self.grid.DeleteRows(0, self.grid.GetNumberRows()) self.grid.DeleteCols(0, self.grid.GetNumberCols()) self.grid.InsertCols(0, len(self.headers)) self.grid.SetColLabelSize(20) for idx, header in enumerate(self.headers): self.grid.SetColLabelValue(idx, header) lineno = 0 for line in reader: self.grid.InsertRows(lineno, 1) for idx, value in enumerate(line): if idx < self.grid.GetNumberCols(): self.grid.SetCellValue(lineno, idx, value.decode('UTF-8')) lineno += 1 finally: fp.close() def GetOptions(self): return dict(dialect=self.dialect, dayfirst=self.date.GetSelection() == 0, importSelectedRowsOnly=self.importSelectedRowsOnly.GetValue(), selectedRows=self.GetSelectedRows(), hasHeaders=self.hasHeaders.GetValue(), filename=self.filename, encoding=self.encoding, fields=self.headers) def GetSelectedRows(self): startRows = [row for row, dummy_column in self.grid.GetSelectionBlockTopLeft()] stopRows = [row for row, dummy_column in self.grid.GetSelectionBlockBottomRight()] selectedRows = [] for startRow, stopRow in zip(startRows, stopRows): selectedRows.extend(range(startRow, stopRow + 1)) return selectedRows def CanGoNext(self): if self.filename is not None: self.GetNext().SetOptions(self.GetOptions()) return True, None return False, _('Please select a file.') class CSVImportMappingPage(wiz.WizardPageSimple): def __init__(self, *args, **kwargs): super(CSVImportMappingPage, self).__init__(*args, **kwargs) # (field name, multiple values allowed) self.fields = [ (_('None'), True), (_('ID'), False), (_('Subject'), False), (_('Description'), True), (_('Category'), True), (_('Priority'), False), (_('Planned start date'), False), (_('Due date'), False), (_('Actual start date'), False), (_('Completion date'), False), (_('Reminder date'), False), (_('Budget'), False), (_('Fixed fee'), False), (_('Hourly fee'), False), (_('Percent complete'), False), ] self.choices = [] self.interior = wx.ScrolledWindow(self) self.interior.EnableScrolling(False, True) self.interior.SetScrollRate(10, 10) sizer = wx.BoxSizer() sizer.Add(self.interior, 1, wx.EXPAND) self.SetSizer(sizer) def SetOptions(self, options): self.options = options if self.interior.GetSizer(): self.interior.GetSizer().Clear(True) for child in self.interior.GetChildren(): self.interior.RemoveChild(child) self.choices = [] gsz = wx.FlexGridSizer(0, 2, 4, 2) gsz.Add(wx.StaticText(self.interior, wx.ID_ANY, _('Column header in CSV file'))) gsz.Add(wx.StaticText(self.interior, wx.ID_ANY, _('%s attribute') % meta.name)) gsz.AddSpacer((3, 3)) gsz.AddSpacer((3, 3)) tcFieldNames = [field[0] for field in self.fields] for fieldName in options['fields']: gsz.Add(wx.StaticText(self.interior, wx.ID_ANY, fieldName), flag=wx.ALIGN_CENTER_VERTICAL) choice = wx.Choice(self.interior, wx.ID_ANY) for tcFieldName in tcFieldNames: choice.Append(tcFieldName) choice.SetSelection(self.findFieldName(fieldName, tcFieldNames)) self.choices.append(choice) gsz.Add(choice, flag=wx.ALIGN_CENTER_VERTICAL) gsz.AddGrowableCol(1) self.interior.SetSizer(gsz) gsz.Layout() def findFieldName(self, fieldName, fieldNames): def fieldNameIndex(fieldName, fieldNames): return fieldNames.index(fieldName) if fieldName in fieldNames else 0 index = fieldNameIndex(fieldName, fieldNames) return index if index else fieldNameIndex(fieldName[:6], [fieldName[:6] for fieldName in fieldNames]) def CanGoNext(self): wrongFields = [] countNotNone = 0 for index, (fieldName, canMultiple) in enumerate(self.fields): count = 0 for choice in self.choices: if choice.GetSelection() == index: count += 1 if choice.GetSelection() != 0: countNotNone += 1 if count > 1 and not canMultiple: wrongFields.append(fieldName) if countNotNone == 0: return False, _('No field mapping.') if len(wrongFields) == 1: return False, _('The "%s" field cannot be selected several times.') % wrongFields[0] if len(wrongFields): return False, _('The fields %s cannot be selected several times.') % ', '.join(['"%s"' % fieldName for fieldName in wrongFields]) return True, None def GetOptions(self): options = dict(self.options) options['mappings'] = [self.fields[choice.GetSelection()][0] for choice in self.choices] return options class CSVImportWizard(wiz.Wizard): def __init__(self, filename, *args, **kwargs): kwargs['style'] = wx.RESIZE_BORDER | wx.DEFAULT_DIALOG_STYLE super(CSVImportWizard, self).__init__(*args, **kwargs) self.optionsPage = CSVImportOptionsPage(filename, self) self.mappingPage = CSVImportMappingPage(self) self.optionsPage.SetNext(self.mappingPage) self.mappingPage.SetPrev(self.optionsPage) self.SetPageSize((600, -1)) # I know this is obsolete but it's the only one that works... wiz.EVT_WIZARD_PAGE_CHANGING(self, wx.ID_ANY, self.OnPageChanging) wiz.EVT_WIZARD_PAGE_CHANGED(self, wx.ID_ANY, self.OnPageChanged) def OnPageChanging(self, event): if event.GetDirection(): can, msg = event.GetPage().CanGoNext() if not can: wx.MessageBox(msg, _('Information'), wx.OK) event.Veto() def OnPageChanged(self, event): if event.GetPage() == self.optionsPage: pass # XXXTODO def RunWizard(self): return super(CSVImportWizard, self).RunWizard(self.optionsPage) def GetOptions(self): return self.mappingPage.GetOptions() taskcoach-1.4.3/taskcoachlib/help/000077500000000000000000000000001265347643000170505ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/help/__init__.py000066400000000000000000001153521265347643000211700ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta from taskcoachlib.i18n import _ from tips import showTips from uicommand import * _MSURL = "https://www.microsoft.com/en-us/download/details.aspx?id=5638" def sequence(*text): return ''.join(text) def a_href(text, name): return '%s' % (name, text) def a_name(text, name): return '%s' % (name, text) def h(level, text): return '%s' % (level, text, level) def h3(text): return h(3, text) def h4(text): return h(4, text) def h5(text): return h(5, text) def p(*text): return '

        %s

        ' % '\n'.join(text) def ul(*li): # pylint: disable=W0621 return '
          %s
        ' % '\n'.join(li) def li(*text): return '
      1. %s
      2. ' % '\n'.join(text) def table(*tr): # pylint: disable=W0621 return '%s
        ' % '\n'.join(tr) def tr(*td): td = '\n'.join(['%s' % td for td in td]) return '%s\n' % td _TOC = sequence( h3(_('Table of contents')), ul( li( a_href(_('Tasks'), 'tasks'), ul( li(a_href(_('About tasks'), 'abouttasks')), li(a_href(_('Task properties'), 'taskproperties')), li(a_href(_('Task states'), 'taskstates')), li(a_href(_('Task colors'), 'taskcolor')), li(a_href(_('Reminders'), 'reminders')))), li( a_href(_('Effort'), 'effort'), ul( li(a_href(_('About effort'), 'abouteffort')), li(a_href(_('Effort properties'), 'effortproperties')))), li( a_href(_('Categories'), 'categories'), ul( li(a_href(_('About categories'), 'aboutcategories')), li(a_href(_('Category properties'), 'categoryproperties')))), li( a_href(_('Notes'), 'notes'), ul( li(a_href(_('About notes'), 'aboutnotes')), li(a_href(_('Note properties'), 'noteproperties')))), li( a_href(_('Printing and exporting'), 'printingandexporting'), ul( li(a_href(_('About printing and exporting'), 'aboutprintingandexporting')), li(a_href(_('Printing'), 'printing')), li(a_href(_('Exporting'), 'exporting')))), li( a_href(_('Multi-user usage'), 'multiuser'), ul( li(a_href(_('About multi-user'), 'aboutmultiuser')), li(a_href(_('Storage options'), 'storage')))), li( a_href(_('E-mailing tasks'), 'emailtasks'), ul( li(a_href(_('Custom attributes for e-mailing'), 'emailcustom')))), li( a_href(_('E-mail integration'), 'email'), ul( li(a_href(_('About e-mail integration'), 'aboutemail')), li(a_href(_('Attaching an e-mail to a task'), 'emailattach')), li(a_href(_('Creating a task from an e-mail'), 'emailcreate')))), li( a_href(_('SyncML support'), 'syncml'), ul( li(a_href(_('What is SyncML'), 'aboutsyncml')), li(a_href(_('Setup'), 'syncmlsetup')), li(a_href(_('Limitations'), 'syncmllimits')), li(a_href(_('Troubleshooting'), 'syncmltrouble')), li(a_href(_('Purging deleted items'), 'syncmlpurge')))), li( a_href(_('iPhone and iPod Touch'), 'iphone'), ul( li(a_href(_('%(name)s on the iPhone') % meta.metaDict, 'taskcoachiphone')), li(a_href(_('Configuration'), 'iphoneconf')), li(a_href(_('Troubleshooting'), 'iphonetrouble')))), li( a_href(_('Android'), 'android'), ul( li(a_href(_('%(name)s on Android?') % meta.metaDict, 'taskcoachandroid')), li(a_href(_('Todo.txt and Todo.txt Touch'), 'todotxt')), li(a_href(_('Importing todo.txt'), 'todotxtimporting')), li(a_href(_('Exporting todo.txt'), 'todotxtexporting')))), li( a_href(_('Task templates'), 'templates'), ul( li(a_href(_('About templates'), 'abouttemplates')), li(a_href(_('Using templates'), 'usingtemplates')))), li( a_href(_('Graphical user interface'), 'gui')), li( a_href(_('Keyboard shortcuts'), 'shortcuts')))) _taskSection = sequence( h3( a_name(_('Tasks'), 'tasks')), h4( a_name(_('About tasks'), 'abouttasks')), p( _('''Tasks are the basic objects that you manipulate. Tasks can represent anything from a single little thing you have to do to a complete project consisting of different phases and numerous activities.''')), h4( a_name(_('Task properties'), 'taskproperties')), p( _('Tasks have the following properties you can change:'), ul( li(_('Subject: a single line that summarizes the task.')), li(_('Description: a multi-line description of the task.')), li(_('''Planned start date: the first date on which the task can be started. The planned start date defaults to the date the task is created. It can also be 'None' indicating that you don't really want to start this task. This can be convenient for e.g. registering sick leave.''')), li(_('''Due date: the date the task should be finished. This can be 'None' indicating that this task has no fixed due date.''')), li(_('''Actual start date: the date the task was actually started. The actual start date can be edited directly, but it is also set when you track effort for the task or when you set the percentage completed of a task to a value between 0% and 100%.''')), li(_('''Completion date: this date is 'None' as long as the task has not been completed. It is set to the current date when you mark the task as completed. The completion date can also be entered manually.''')), li(_('''Prerequisites: other tasks that need to be completed before a task can be started. The task remains inactive until the last prerequisite task is completed. Note that if the task has a specific planned start date set, that date has to be in the past and all prerequisite tasks need to be completed before the task becomes late.''')), li(_('Budget: amount of hours available for the task.')), li(_('Hourly fee: the amount of money earned with the task per hour.')), li(_('''Fixed fee: the amount of money earned with the task regardless of the time spent.''')))), p( _('The following properties are calculated from the properties above:'), ul( li(_('Days left: the number of days left until the due date.')), li(_('''Dependents: other tasks that can be started when the prerequisite task has been completed.''')), li(_('Time spent: effort spent on the task.')), li(_('Budget left: task budget minus time spent on the task.')), li(_('Revenue: hourly fee times hours spent plus fixed fee.')))), h4( a_name(_('Task states'), 'taskstates')), p( _('Tasks always have exactly one of the following states:'), ul( li(_('Active: the actual start date is in the past;')), li(_('''Inactive: the task has not been started and/or not all prerequisite tasks have been completed;''')), li(_('Completed: the task has been completed.')))), p( _('In addition, tasks can be referenced as:'), ul( li(_('Overdue: the due date is in the past;')), li(_('''Due soon: the due date is soon (what 'soon' is, can be changed in the preferences);''')), li(_('''Late: the planned start is in the past and the task has not been started;''')), li(_('Over budget: no budget left;')), li(_('Under budget: still budget left;')), li(_('No budget: the task has no budget.')))), h4( a_name(_('Task colors'), 'taskcolors')), p( _('The text of tasks is colored according to the following rules:'), ul( li(_('Overdue tasks are red;')), li(_('Tasks due soon are orange;')), li(_('Active tasks are black text with a blue icon;')), li(_('Late tasks are purple;')), li(_('Future tasks are gray, and')), li(_('Completed tasks are green.'))), _('''This all assumes you have not changed the text colors through the preferences dialog, of course.''')), p( _('''The background color of tasks is determined by the categories the task belongs to. See the section about category properties below.''')), h4( a_name(_('Reminders'), 'reminders')), p( _('''You can set a reminder for a specific date and time. %(name)s will show a reminder message at that date and time. From the reminder dialog you can open the task, start tracking effort for the task, or mark the task completed. It is also possible to snooze the reminder.''') % meta.metaDict), p( _('''If you have Growl or Snarl installed, you can instruct %(name)s to use these for reminders in the preferences dialog.''') % meta.metaDict)) _effortSection = sequence( h3( a_name(_('Effort'), 'effort')), h4( a_name(_('About effort'), 'abouteffort')), p( _('''Whenever you spent time on tasks, you can record the amount of time spent by tracking effort. Select a task and invoke 'Start tracking effort' in the Effort menu or context menu or via the 'Start tracking effort' toolbar button.''')), h4( a_name(_('Effort properties'), 'effortproperties')), p( _('Effort records have the following properties you can change:'), ul( li(_('Task: the task the effort belongs to.')), li(_('Start date/time: start date and time of the effort.')), li(_('''Stop date/time: stop date and time of the effort. This can be 'None' as long as you are still working on the task.''')), li(_('Description: a multi-line description of the effort.')))), p( _('The following properties are calculated from the properties above:'), ul( li(_('Time spent: how much time you have spent working on the task.')), li(_('Revenue: money earned with the time spent.'))))) _categorySection = sequence( h3( a_name(_('Categories'), 'categories')), h4( a_name(_('About categories'), 'aboutcategories')), p( _('''Tasks and notes may belong to one or more categories. First, you need to create the category that you want to use via the 'Category' menu. Then, you can add items to one or more categories by editing the item and checking the relevant categories for that item in the category pane of the edit dialog.''')), p( _('''You can limit the items shown in the task and notes viewers to one or more categories by checking a category in the category viewer. For example, if you have a category 'phone calls' and you check that category, the task viewers will only show tasks belonging to that category; in other words the phone calls you need to make.''')), h4( a_name(_('Category properties'), 'categoryproperties')), p( _('Categories have the following properties you can change:'), ul( li(_('Subject: a single line that summarizes the category.')), li(_('Description: a multi-line description of the category.')), li(_('''Mutually exclusive subcategories: a check box indicating whether the subcategories of the category are mutually exclusive. If they are, items can only belong to one of the subcategories. When filtering, you can only filter by one of the subcategories at a time.''')), li(_('''Appearance properties such as icon, font and colors: the appearance properties are used to render the category, but also the items that belong to that category. If a category has no color, font or icon of its own, but it has a parent category with such a property, the parent's property will be used. If an item belongs to multiple categories that each have a color associated with it, a mixture of those colors will be used to render that item.'''))))) _noteSection = sequence( h3( a_name(_('Notes'), 'notes')), h4( a_name(_('About notes'), 'aboutnotes')), p( _('''Notes can be used to capture random information that you want to keep in your task file. Notes can be stand-alone or be part of other items, such as tasks and categories. Stand-alone notes are displayed in the notes viewer. Notes that are part of other items are not displayed in the notes viewer.''')), h4( a_name(_('Note properties'), 'noteproperties')), p( _('Notes have the following properties you can change:'), ul( li(_('Subject: a single line that summarizes the note.')), li(_('Description: a multi-line description of the note.')), li(_('Appearance properties such as icon, font and colors.'))))) _printingAndExportingSection = sequence( h3( a_name(_('Printing and exporting'), 'printingandexporting')), h4( a_name(_('About printing and exporting'), 'aboutprintingandexporting')), p( _('''Both printing and exporting work in the same way: when you print or export data, the data from the active viewer is printed or exported. Moreover, the data is printed or exported in the same way as the viewer is displaying it. The data is printed or exported in the same order as the viewer is displaying it. The columns that are visible determine what details get printed or exported. When you filter items, for example hide completed tasks, those items don't get printed or exported.''')), h4( a_name(_('Printing'), 'printing')), p( _('''Prepare the contents of a viewer, by putting the items in the right order, show or hide the appropriate columns and apply the relevant filters.''')), p( _('''You can preview how the print will look using the File -> Print preview menu item. You can edit the page settings using File -> Page setup. When printing and the platform supports it, you can choose to print all visible items in the active viewer, or just the selected items.''')), h4( a_name(_('Exporting'), 'exporting')), p( _('''Prepare the contents of a viewer, by putting the items in the right order, show or hide the appropriate columns and apply the relevant filters.''')), p( _('''Next, choose the format you want to export to and whether you want to export all visible items or just the selected ones. Available formats to export to include CSV (comma separated format), HTML and iCalendar. When you export to HTML, a CSS file is created that you can edit to change the appearance of the HTML.'''))) _emailTasksSection = sequence( h3( a_name(_('E-mailing tasks'), 'emailtasks')), h4( a_name(_('Custom attributes for e-mailing tasks'), 'emailcustom')), p( _('''You can alter the behaviour of the e-mail command using custom attributes in a task description. Those attributes must be on a line by themselves. Supported attributes are 'cc' and 'to'. Examples:''') % meta.metaDict), p(_('[email:to=foo@spam.com]')), p(_('[email:cc=bar@spam.com]')), ) _multiuserSection = sequence( h3( a_name(_('Multi-user usage'), 'multiuser')), h4( a_name(_('About multi-user'), 'aboutmultiuser')), p( _('''A task file may be opened by several instances of %(name)s, either running on the same computer or on different ones, on a network share for instance. When you save, %(name)s will actually merge your work with whatever has been saved on disk since the last time you did. Conflicts are automatically resolved, usually by you winning the conflict. This serves two use cases:''') % meta.metaDict), ul( li(_('''A single user, opening the task file on several computers (work, home, laptop).''')), li(_('''Several users working on the same task file.'''))), p( _('''The first case is the most common and the most secure. The second case may be dangerous. Most network disk sharing protocols do not support the kind of file locking that would make this 100% secure. A list of common protocols and their behaviour follows.''')), h4( a_name(_('Storage options'), 'storage')), p( _('''None of the sharing options discussed here work fully. If two users save their changes within a few hundreds of milliseconds time frame, data will be lost.''')), h5( _('SMB/CIFS')), p( _('''This is the most common protocol: Windows shares and their lookalikes (Samba). If the server and client don't support certain extensions, Task Coach will not be able to detect automatically when the file has been modified by someone else.''')), h5( _('NFS')), p( _('Not tested yet.')), h5( _('DropBox')), p( _('''A popular way to access files from several computers (also see SpiderOak for a more secure alternative). Changes to the task file are correctly detected by %(name)s when it's updated.''') % meta.metaDict)) _emailSection = sequence( h3( a_name(_('E-mail integration'), 'email')), h4( a_name(_('About e-mail integration'), 'aboutemail')), p( _('''%(name)s integrates with several mail user agents, through drag and drop. This has some limitations; e-mails are copied in a directory next to the %(name)s file, as .eml files and are later opened using whatever program is associated with this file type on your system. On the other hand, this allows you to open these e-mail attachments on a system which is different from the one you created it first.''')%meta.metaDict), p( _('''Mail user agents supported include:'''), ul( li(_('Mozilla Thunderbird')), li(_('Microsoft Outlook')), li(_('Claws Mail')), li(_('Apple Mail')))), p( _('''Due to a Thunderbird limitation, you can't drag and drop several e-mails from Thunderbird. This does not apply to Outlook.''')), h4( a_name(_('Attaching an e-mail to a task'), 'emailattach')), p( _('''There are two ways to attach an e-mail to a task; you can:'''), ul( li(_('Drop it on a task either in the task tree or the task list.')), li(_('Drop it in the attachment pane in the task editor.')))), h4( a_name(_('Creating a task from an e-mail'), 'emailcreate')), p( _('''Dropping an e-mail on an empty part of the task tree or task list creates a new task. Its subject is the subject of the mail, its description is its content. Additionally, the mail is automatically attached to the newly created task.'''))) _syncmlSection = sequence( h3( a_name(_('SyncML support'), 'syncml')), h4( a_name(_('What is SyncML'), 'aboutsyncml')), p( _('''SyncML is an XML protocol designed to synchronize several applications with a server. A popular open-source server is Funambol. Synchronization clients are available for many devices and applications (Outlook, Pocket PC, iPod, iPhone, Evolution, etc...), as well as so-called "connectors" which allow the server to synchronize with Exchange, Google Calendar, etc.''')), p( _('''%(name)s has built-in SyncML client support on Windows and Mac OS X (provided that you use the supplied binaries). This means you can setup %(name)s to synchronize with the same SyncML server you synchronize Outlook with and have all Outlook tasks and notes in your %(name)s file, as well as %(name)s tasks and notes in Outlook. Or your Pocket PC.''')%meta.metaDict), p( _('''On Linux, you must install the SyncML client binding for Python yourself. A 64 bits Debian package for Python 2.7 is available on taskcoach.org, at the end of the Linux downloads section.''')), h4( a_name(_('Setup'), 'syncmlsetup')), p( _('''This feature is optional and off by default. In order to turn it on, go to the preferences dialog and check it on the Features page.''')), p( _('''To setup SyncML, edit the SyncML preferences in Edit/SyncML preferences. Fill in the synchronization URL, your ID on the server and choose which items to synchronize (tasks and/or notes). The URL depends on the server you choose; some examples are:'''), ul( li('''The Horde project'''), li('''MemoToo: http://sync.memotoo.com/syncml''')), _('''The database names are pretty standard; the default values should work.''')), p( _('''Each task file has its own client ID, so that two different task files will be considered different "devices" by the server.''')), h4( a_name(_('Limitations'), 'syncmllimits')), p( _('''Some limitations are due to the fact that, the underlying data type being vcalendar, some %(name)s features cannot be presented to the server.''')%meta.metaDict, ul( li(_('Task and category hierarchy are lost to the server.')), li(_('Recurrence and reminders are not supported yet.')), li(_('Note categories are lost to the server.')), li(_('''The conflict detection/resolution system is a workaround for a Funambol limitation. It should work in most cases, but if many applications synchronize with the same server at the same time, problems may arise.''')), li(_('Probably some others...')))), h4( a_name(_('Troubleshooting'), 'syncmltrouble')), p( _('''The SyncML menu items are only present if your platform is supported. Currently supported platforms are:'''), ul( li(_('Windows, 32 bits (see below)')), li(_('Linux, 32 bits')), li(_('Mac OS 10.3 and later, both Intel and PPC'))), _('''You may experience problems under Windows if you don't have the Microsoft Visual 8 runtime installed. You can download it on the Microsoft download site.''')% _MSURL), h4( a_name(_('Purging deleted items'), 'syncmlpurge')), p( _('''When SyncML is enabled, deleting a task or a note does not actually delete it, but rather mark it as deleted. The deleted task or note is actually removed from the task or note list on the next synchronization. For this reason, if you happen to use the SyncML feature, then disable it without having done a sync, there may be some deleted notes or tasks in your task file. This is not a problem, but takes a little more disk space.''')), p( _('''In this case, the "Purge deleted items" menu item in the File menu can be used to actually delete these tasks. It is only enabled when you need it, that is when there are items to purge. Be aware that after doing this, if you re-enable SyncML and make a sync with the same server you used previously, all those items will reappear, as the server doesn't know they're deleted.'''))) _iPhoneSection = sequence( h3( a_name(_('iPhone, iPod Touch and iPad'), 'iphone')), h4( a_name(_('%(name)s on the iPhone/iPod Touch/iPad')%meta.metaDict, 'taskcoachiphone')), p( _('''There is an iPhone/iPod Touch/iPad companion app for %(name)s, available on Apple's AppStore. (If you don't have iTunes installed on your computer, you'll be presented a page where you can download iTunes). It supports the following features:''')%meta.metaDict, ul( li(_('''Basic task attributes: subject, description, dates (with recurrence)...''')), li(_('Hierarchical tasks and categories')), li(_('Time tracking')), li(_('Multiple task files')), li(_('Two-way synchronization with %(name)s on the desktop')%meta.metaDict)), p( _('''The application is universal and has a custom iPad UI.''')), h4( a_name(_('Configuration'), 'iphoneconf')), h5( _('Configuration on the iPhone/iPod Touch/iPad')), p( _('''There are some settings for the iPhone/iPod Touch/iPad app in the Settings application:'''), ul( li(_('Show completed: whether to show completed tasks.')), li(_('''Show inactive: whether to show inactive tasks (planned start date in the future).''')), li(_('''Icon position: the LED icon may show up either on the left side or the right side of the screen.''')), li(_('''Compact mode: if this is enabled, the task list has smaller LEDs and doesn't show categories or dates.''')), li(_('''Confirm complete: if enabled, a message box will pop up for confirmation when you mark a task complete by tapping its LED.''')), li(_('''# days due soon: How many days in the future is considered "soon".''')))), h5( _('Configuration on the desktop, all platforms')), p( _('''Before synchronizing, you must also configure %(name)s on the desktop; in the preferences, in the "Features" tab, check "Enable iPhone synchronization". Restart %(name)s. Now, in the preferences, choose the "iPhone" tab and fill in at least the password.''')%meta.metaDict), p( _('''When you tap the "Sync" button in the category view, %(name)s will automatically detect running instances of %(name)s on your desktop and ask you to select one (you may have several instances running on different computers on your network, or several instances on the same computer). The name displayed is, by default, some string identifying the computer it's running on. To customize this, you may change the "Bonjour service name" in the configuration.''')%meta.metaDict), p( _('''%(name)s will remember the chosen instance and try it next time you synchronize; if it's not running, it will prompt you again.''')%meta.metaDict), p( _('''Note that this synchronization happens through the network; there is no need for the device to be connected through USB nor for iTunes to be running.''')), h5( _('Configuration on Windows')), p( _('''On Windows, you must install Bonjour for Windows and unblock it when asked by the firewall.''')), h5( _('Configuration on Linux')), p( _('''On Linux, you must have the Avahi daemon installed and running. Most modern distributions already have it. You must also install the dnscompat package; its name depends on your distribution (libavahi-compat-libdnssd1 on Ubuntu for instance).''')), h4( a_name(_('Troubleshooting'), 'iphonetrouble')), h5( _('''I can't seem to find the iPhone/iPod Touch app on Apple's website''')), p( _('''You need to have iTunes installed on your computer to browse Apple's App Store. Get iTunes.''')), h5( _('''My computer doesn't appear in the list when trying to sync''')), p( _('''Check that your iPhone/iPod Touch is connected to the same network your computer is through WiFi.''')), h5( _("The iPhone can't connect to my computer")), p( _('If you have a firewall, check that ports 4096-4100 are open.')))) _androidSection = sequence( h3( a_name(_('Android'), 'android')), h4( a_name(_('%(name)s on Android?')%meta.metaDict, 'taskcoachandroid')), p( _('''No, %(name)s is not available for the Android platform. But, Todo.txt Touch is. You can export your tasks from %(name)s to the Todo.txt format and then edit your tasks on your Android device.''')%meta.metaDict), h4( a_name(_('Todo.txt and Todo.txt Touch'), 'todotxt')), p( _('''Todo.txt is an open source todo list manager, created by Gina Trapani, that works with plain text files. Todo.txt has a command-line interface. However, since the file format is plain text, you can also edit your tasks with any text editor. Todo.txt Touch is a version of Todo.txt for the Android platform. Todo.txt Touch uses a todo.txt file that lives in your Dropbox folder. %(name)s can import from and export to that todo.txt file.''')%meta.metaDict), p( _('''When exporting to Todo.txt, %(name)s creates another file alongside the target one, suffixed with "-meta". Don't delete this file; %(name)s uses it to keep track of external changed to the tasks. When a conflict arises (a task is modified both by Task Coach and by an external application when importing), the Todo.txt file wins the conflict.''') % meta.metaDict), p( _('''Tip: if you save your task file in the todo folder that Todo.txt Touch creates in your Dropbox folder, and you turn on automatic importing and exporting of Todo.txt, %(name)s will keep the task file and the todo.txt file in sync. Please note that another file, named after the .txt file with '-meta' appended, is also generated. This is used internally by %(name)s in order to keep track of what has been modified in the .txt file; don't modify or delete it.''')%meta.metaDict), h4( a_name(_('Importing todo.txt'), 'todotxtimporting')), p( _('''%(name)s imports task subjects, planned start date, due date, completion date, priority, contexts and projects. Contexts and projects are both transformed into categories in %(name)s. Projects cannot be transformed into parent tasks because Todo.txt allows tasks to belong to multiple projects, while %(name)s only allows one parent task per task.''')%meta.metaDict), p( _('''When importing, %(name)s tries to find matching tasks and categories and update those instead of creating new ones. It does the matching by looking at the subject of the task (or project, or context) and the parent item if any.''')%meta.metaDict), h4( a_name(_('Exporting todo.txt'), 'todotxtexporting')), p( _('''%(name)s exports task subjects, planned start date, due date, completion date, priority and categories to the Todo.txt format. Other attributes are not exported.''')%meta.metaDict), p( _('''%(name)s supports dates and times, but Todo.txt only supports dates, so the time part of start, due, and completion date/times is not exported.''')%meta.metaDict), p( _('''The default Todo.txt format only supports planned start dates and completion dates, but no due dates. Therefore, %(name)s uses an extension to export the due date of tasks. Due dates are shown as "due:YYYY-MM-DD" in the todo.txt file.''')%meta.metaDict), p( _('''Todo.txt has priorities in the form of a letter ('A'-'Z'). %(name)s has numerical priorities. %(name)s priority 1 is transformed into 'A', 2 becomes 'B', etc., and 26 is 'Z'. %(name)s priorities below 1 and above 26 are not exported.''')%meta.metaDict), p( _('''Categories whose subject starts with a '+' are exported as projects. Categories whose subject starts with an '@'-sign are exported as context. Categories whose subject doesn't start with '+' or '@' are not exported. Subcategories are exported if their parent category is.''')%meta.metaDict)) _templatesSection = sequence( h3( a_name(_('Task templates'), 'templates')), h4( a_name(_('About templates'), 'abouttemplates')), p( _('''Templates are blueprints for new tasks. Right now, the only task properties that can be "parameterized" are the dates. When instantiating a template, the created task has its dates replaced with dates relative to the current date.''')), h4( a_name(_('Using templates'), 'usingtemplates')), p( _('''One can create a template by selecting a task (only one) and click on the "Save task as template" item in the File menu. All subtasks, notes and attachments are part of the template. Only categories are not saved.''')), p( _('''You can also create a new template from a pre-made template file (.tsktmpl); just select "Import template" in the File menu and select the file. Template files are stored in a subdirectory of the directory where TaskCoach.ini is.''')), p( _('''In order to instantiate a task template, use the "New task from template" menu in the Task menu, or the equivalent toolbar button. When the task is created, the due, start and completion dates, if applicable, are reevaluated relatively to the current date. That means that if you create a template from a task starting today and due tomorrow, every time the template is instantiated, the planned start date will be replaced by the current date and the due date by the current date plus one day.''')), p( _('''You can also add templates from the template editor (File/Edit templates), as well as edit the template's basic properties (dates and subject). Dates are provided in a human-readable format; the date editor will become red if %(name)s cannot figure out what it means. Example dates:''')%meta.metaDict), ul( li('3 pm tomorrow'), li('next saturday'), li('noon') ), p( _('''Please note that this system is not localized; you must enter the dates in english.'''))) _guiSection = sequence( h3( a_name(_('Graphical user interface'), 'gui')), p( _('''You can drag and drop viewers to create almost any user interface layout you want. When you start dragging a viewer, drop hints will appear to show where you can drop the viewer. Viewers can also be dropped onto each other to create notebooks.''')), p( _('''In the edit dialogs, you can drag and drop tabs to rearrange the order or to create a whole different user interface layout by placing tabs next to eachother.''')), p( _('''Subjects and descriptions of tasks, notes and categories can be edited without opening an edit dialog. Select the item whose subject or description you want to change and click the item again, either in the subject column or in the description column. A text control will appear that lets you change the subject or description. Hit return to confirm your changes. Hit escape to cancel your changes. F2 is a keyboard shortcut for editing the subject.''')) ) _shortcutSection = sequence( h3( a_name(_('Keyboard shortcuts'), 'shortcuts')), p( _('''%(name)s has several keyboard shortcuts, listed below. Keyboard shortcuts are not configurable at the moment.''')%meta.metaDict), p( table( tr(_('Ctrl-A'), editSelectAll), tr(_('Shift-Ctrl-A'), addAttachment), tr(_('Ctrl-B'), addNote), tr(_('Shift-Ctrl-B'), openAllNotes), tr(_('Ctrl-C'), editCopy), tr(_('Shift-Ctrl-C'), viewCollapseAll), tr(_('Ctrl-D'), taskDecreasePriority), tr(_('Shift-Ctrl-D'), taskMinPriority), tr(_('Ctrl-E'), effortNew), tr(_('Shift-Ctrl-E'), viewExpandAll), tr(_('Ctrl-F'), search), tr(_('Ctrl-G'), categoryNew), tr(_('Ctrl-H'), help), tr(_('Ctrl-I'), taskIncreasePriority), tr(_('Shift-Ctrl-I'), taskMaxPriority), tr(_('Ctrl-J'), noteNew), tr(_('Ctrl-M (Linux and Windows)'), mailItem), tr(_('Shift-Ctrl-M (Mac OS X)'), mailItem), tr(_('Shift-Ctrl-M'), fileMergeDiskChanges), tr(_('Ctrl-N (Linux and Mac OS X)'), taskNew), tr(_('Shift-Ctrl-N (Linux and Mac OS X)'), _('Insert a new subitem')), tr(_('Ctrl-O'), fileOpen), tr(_('Shift-Ctrl-O'), openAllAttachments), tr(_('Alt-P'), editPreferences), tr(_('Ctrl-P'), print_), tr(_('Shift-Ctrl-P'), printPageSetup), tr(_('Ctrl-Q'), fileQuit), tr(_('Ctrl-R'), resetCategoryFilter), tr(_('Shift-Ctrl-R'), resetFilter), tr(_('Ctrl-S'), fileSave), tr(_('Shift-Ctrl-S'), fileSaveAs), tr(_('Ctrl-T'), effortStart), tr(_('Shift-Ctrl-T'), effortStopOrResume), tr(_('Ctrl-V'), editPaste), tr(_('Shift-Ctrl-V'), editPasteAsSubitem), tr(_('Ctrl-W'), fileClose), tr(_('Ctrl-X'), editCut), tr(_('Ctrl-Y'), editRedo), tr(_('Ctrl-Z'), editUndo), tr(_('Enter'), _('Edit the selected item(s) or close a dialog')), tr(_('Ctrl-Enter'), _('Mark the selected task(s) (un)completed')), tr(_('Escape'), _('Cancel a dialog or move keyboard focus from search control back to viewer')), tr(_('Tab'), _('Move keyboard focus to the next field in the dialog')), tr(_('Shift-Tab'), _('Move keyboard focus to the previous field in the dialog')), tr(_('Ctrl-Tab'), _('Move keyboard focus to the next tab in a notebook control')), tr(_('Shift-Ctrl-Tab'), _('Move keyboard focus to the previous tab in a notebook control')), tr(_('DELETE'), _('Delete the selected item(s)')), tr(_('INSERT (Windows)'), taskNew), tr(_('Shift-INSERT (Windows)'), _('Insert a new subitem')), tr(_('Ctrl-PgDn'), viewNextViewer), tr(_('Ctrl-PgUp'), viewPreviousViewer), tr(_('Alt-Down'), _('Pop up menu or drop down box')), tr(_('F2'), _('Edit the subject of the selected item in a viewer'))))) helpHTML = _TOC + _taskSection + _effortSection + _categorySection + \ _noteSection + _printingAndExportingSection + _multiuserSection + _emailTasksSection + _emailSection + \ _syncmlSection + _iPhoneSection + _androidSection + _templatesSection + \ _guiSection + _shortcutSection aboutHTML = _('''

        %(name)s - %(description)s

        Version %(version)s, %(date)s

        By %(author)s <%(author_email)s>

        %(url)s

        %(copyright)s

        %(license_notice_html)s

        ''')%meta.metaDict taskcoach-1.4.3/taskcoachlib/help/balloontips.py000066400000000000000000000025151265347643000217530ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2012 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.widgets import balloontip import wx class BalloonTipManager(balloontip.BalloonTipManager): def AddBalloonTip(self, settings, name, target, message=None, title=None, getRect=None): if settings.getboolean('balloontips', name): super(BalloonTipManager, self).AddBalloonTip(target, message=message, title=title, bitmap=wx.ArtProvider.GetBitmap('lamp_icon', wx.ART_MENU, (16, 16)), getRect=getRect, name=name, settings=settings) def OnBalloonTipShow(self, name=None, settings=None): settings.setboolean('balloontips', name, False) taskcoach-1.4.3/taskcoachlib/help/tips.py000077500000000000000000000142161265347643000204100ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta from taskcoachlib.i18n import _ from wx.lib import sized_controls import wx tips = [ _('''%(name)s is actively developed. Although the %(name)s developers try hard to prevent them, bugs do happen. So, backing up your work on a regular basis is strongly advised.''') % meta.metaDict, _('''%(name)s has a mailing list where you can discuss usage of %(name)s with fellow users, discuss and request features and complain about bugs. Go to %(url)s and join today!''') % meta.metaDict, _('''%(name)s has unlimited undo and redo. Any change that you make, be it editing a task description, or deleting an effort record, is undoable. Select 'Edit' -> 'Undo' and 'Edit' -> 'Redo' to go backwards and forwards through your edit history.''') % meta.metaDict, _('''%(name)s is available in a number of different languages. Select 'Edit' -> 'Preferences' to see whether your language is one of them. If your language is not available or the translation needs improvement, please consider helping with the translation of %(name)s. Visit %(url)s for more information about how you can help.''') % meta.metaDict, _('''If you enter a URL (e.g. %(url)s) in a task or effort description, it becomes a link. Clicking on the link will open the URL in your default web browser.''') % meta.metaDict, _('''You can drag and drop tasks in the tree view to rearrange parent-child relationships between tasks. The same goes for categories.'''), _('''You can drag files from a file browser onto a task to create attachments. Dragging the files over a tab will raise the appropriate page, dragging the files over a collapsed task (the boxed + sign) in the tree view will expand the task to show its subtasks.'''), _('''You can create any viewer layout you want by dragging and dropping the tabs. The layout is saved and reused in the next session.'''), _('''What is actually printed when you select 'File' -> 'Print' depends on the current view. If the current view shows the task list, a list of tasks will be printed, if the current view shows effort grouped by month, that will be printed. The same goes for visible columns, sort order, filtered tasks, etc.'''), _('''Left-click a column header to sort by that column. Click the column header again to change the sort order from ascending to descending and back again. Right-click a column header to hide that column or make additional columns visible.'''), _('''You can create a template from a task in order to reduce typing when repetitive patterns emerge.'''), _('''Ctrl-Tab switches between tabs in edit dialogs.''') ] class TipProvider(object): def __init__(self, tip_index): self.__tip_index = tip_index def GetTip(self): tip = tips[self.__tip_index % len(tips)] self.__tip_index += 1 if self.__tip_index >= len(tips): self.__tip_index = 0 return tip def GetCurrentTip(self): return self.__tip_index class TipDialog(sized_controls.SizedDialog): ''' Create a dialog for showing the tip of the day to the user. We don't use the builtin tip dialog of wxPython because that's a modal dialog. ''' def __init__(self, *args, **kwargs): self.__tip_provider = kwargs.pop('tip_provider') self.__settings = kwargs.pop('settings') super(TipDialog, self).__init__(title=_('Tip of the day'), *args, **kwargs) pane = self.GetContentsPane() pane.SetSizerType('horizontal') wx.StaticBitmap(pane, bitmap=wx.ArtProvider_GetBitmap('lamp_icon', wx.ART_MENU, (32, 32))) tip_pane = sized_controls.SizedPanel(pane) self.__tip = wx.StaticText(tip_pane) self.__show_tip() next_tip_button = wx.Button(tip_pane, id=wx.ID_FORWARD, label=_('Next tip')) next_tip_button.Bind(wx.EVT_BUTTON, self.on_next_tip) self.__check = self.__create_checkbox(tip_pane) button_sizer = self.CreateStdDialogButtonSizer(wx.OK) self.SetButtonSizer(button_sizer) self.Fit() self.CentreOnParent() button_sizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.on_close) self.Bind(wx.EVT_CLOSE, self.on_close) def __show_tip(self): ''' Show the next tip. ''' self.__tip.SetLabel(self.__tip_provider.GetTip()) self.__tip.Wrap(500) def __create_checkbox(self, pane): ''' Create a check box for users to indicate whether they want to see tips on startup. ''' checkbox = wx.CheckBox(pane, label=_('Show tips on startup')) checkbox.SetValue(self.__settings.getboolean('window', 'tips')) return checkbox def on_next_tip(self, event): ''' Show the next tip. ''' self.__show_tip() self.Fit() event.Skip(False) def on_close(self, event): ''' When users close the dialog, remember whether they want to see tips and what the last displayed tip was. ''' event.Skip() self.__settings.setboolean('window', 'tips', self.__check.GetValue()) self.__settings.setint('window', 'tipsindex', self.__tip_provider.GetCurrentTip()) def showTips(parent, settings): tip_provider = TipProvider(settings.getint('window', 'tipsindex')) TipDialog(parent, tip_provider=tip_provider, settings=settings).Show() taskcoach-1.4.3/taskcoachlib/help/uicommand.py000066400000000000000000000063551265347643000214070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.i18n import _ from taskcoachlib import meta # Help texts for menu items and toolbar buttons (so called uicommands). # At the moment this lists mostly the uicommands that have a keyboard shortcut # because we need to be able to reuse the help text in the help dialog. addAttachment = _('Browse for files to add as attachment to the selected item(s)') addNote = _('Add a note to the selected item(s)') categoryNew = _('Insert a new category') editCut = _('Cut the selected item(s) to the clipboard') editCopy = _('Copy the selected item(s) to the clipboard') editPaste = _('Paste item(s) from the clipboard') editPasteAsSubitem = _('Paste item(s) from the clipboard as subitem of the selected item') editPreferences = _('Edit preferences') editRedo = _('Redo the last command that was undone') editSelectAll = _('Select all items in the current view') editUndo = _('Undo the last command') effortNew = _('Add an effort period to the selected task(s)') effortStart = _('Start tracking effort for the selected task(s)') effortStopOrResume = _('Stop tracking effort or resume tracking effort') fileClose = _('Close the current file') fileQuit = _('Exit %s')%meta.name fileOpen = _('Open a %s file')%meta.name fileSave = _('Save the current file') fileMergeDiskChanges = _('Load what has changed on disk') fileSaveAs = _('Save the current file under a new name') help = _('Help about the program') # pylint: disable=W0622 mailItem = _('Mail the selected item(s), using your default mailer') noteNew = _('Insert a new note') openAllAttachments = _('Open all attachments of the selected item(s)') openAllNotes = _('Open all notes of the selected item(s)') print_ = _('Print the current file') printPageSetup = _('Setup the characteristics of the printer page') resetFilter = _('Show all items (reset all filters)') resetCategoryFilter = _('Show all items regardless of category') search = _('Move keyboard focus from viewer to search control') taskDecreasePriority = _('Decrease the priority of the selected task(s)') taskIncreasePriority = _('Increase the priority of the selected task(s)') taskMaxPriority = _('Make the selected task(s) the highest priority task(s)') taskMinPriority = _('Make the selected task(s) the lowest priority task(s)') taskNew = _('Insert a new task') viewCollapseAll = _('Collapse all items with subitems') viewExpandAll = _('Expand all items with subitems') viewNextViewer = _('Activate the next open viewer') viewPreviousViewer = _('Activate the previous open viewer') taskcoach-1.4.3/taskcoachlib/i18n/000077500000000000000000000000001265347643000166775ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/i18n/__init__.py000077500000000000000000000136011265347643000210140ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, os, sys, imp, tempfile, locale, gettext from taskcoachlib import patterns, operating_system import po2dict class Translator: __metaclass__ = patterns.Singleton def __init__(self, language): load = self._loadPoFile if language.endswith('.po') else self._loadModule module, language = load(language) self._installModule(module) self._setLocale(language) def _loadPoFile(self, poFilename): ''' Load the translation from a .po file by creating a python module with po2dict and them importing that module. ''' language = self._languageFromPoFilename(poFilename) pyFilename = self._tmpPyFilename() po2dict.make(poFilename, pyFilename) module = imp.load_source(language, pyFilename) os.remove(pyFilename) return module, language def _tmpPyFilename(self): ''' Return a filename of a (closed) temporary .py file. ''' tmpFile = tempfile.NamedTemporaryFile(suffix='.py') pyFilename = tmpFile.name tmpFile.close() return pyFilename def _loadModule(self, language): ''' Load the translation from a python module that has been created from a .po file with po2dict before. ''' for moduleName in self._localeStrings(language): try: module = __import__(moduleName, globals()) break except ImportError: module = None return module, language def _installModule(self, module): ''' Make the module's translation dictionary and encoding available. ''' # pylint: disable=W0201 if module: self.__language = module.dict self.__encoding = module.encoding def _setLocale(self, language): ''' Try to set the locale, trying possibly multiple localeStrings. ''' if not operating_system.isGTK(): locale.setlocale(locale.LC_ALL, '') # Set the wxPython locale: for localeString in self._localeStrings(language): languageInfo = wx.Locale.FindLanguageInfo(localeString) if languageInfo: self.__locale = wx.Locale(languageInfo.Language) # pylint: disable=W0201 # Add the wxWidgets message catalog. This is really only for # py2exe'ified versions, but it doesn't seem to hurt on other # platforms... localeDir = os.path.join(wx.StandardPaths_Get().GetResourcesDir(), 'locale') self.__locale.AddCatalogLookupPathPrefix(localeDir) self.__locale.AddCatalog('wxstd') break if operating_system.isGTK(): try: locale.setlocale(locale.LC_ALL, '') except locale.Error: # Mmmh. wx will display a message box later, so don't do anything. pass self._fixBrokenLocales() def _fixBrokenLocales(self): current_language = locale.getlocale(locale.LC_TIME)[0] if current_language and '_NO' in current_language: # nb_BO and ny_NO cause crashes in the wx.DatePicker. Set the # time part of the locale to some other locale. Since we don't # know which ones are available we try a few. First we try the # default locale of the user (''). It's probably *_NO, but it # might be some other language so we try just in case. Then we try # English (GB) so the user at least gets a European date and time # format if that works. If all else fails we use the default # 'C' locale. for lang in ['', 'en_GB.utf8', 'C']: try: locale.setlocale(locale.LC_TIME, lang) except locale.Error: continue current_language = locale.getlocale(locale.LC_TIME)[0] if current_language and '_NO' in current_language: continue else: break def _localeStrings(self, language): ''' Extract language and language_country from language if possible. ''' localeStrings = [] if language: localeStrings.append(language) if '_' in language: localeStrings.append(language.split('_')[0]) return localeStrings def _languageFromPoFilename(self, poFilename): return os.path.splitext(os.path.basename(poFilename))[0] def translate(self, string): ''' Look up string in the current language dictionary. Return the passed string if no language dictionary is available or if the dictionary doesn't contain the string. ''' try: return self.__language[string].decode(self.__encoding) except (AttributeError, KeyError): return string def currentLanguageIsRightToLeft(): return wx.GetApp().GetLayoutDirection() == wx.Layout_RightToLeft def translate(string): return Translator().translate(string) _ = translate # This prevents a warning from pygettext.py # Inject into builtins for 3rdparty packages import __builtin__ __builtin__.__dict__['_'] = _ taskcoach-1.4.3/taskcoachlib/i18n/po2dict.py000066400000000000000000000056271265347643000206270ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- """Generate python dictionaries catalog from textual translation description. This program converts a textual Uniforum-style message catalog (.po file) into a python dictionary Based on msgfmt.py by Martin v. Lwis """ import sys, re, os MESSAGES = {} STRINGS = set() # pylint: disable=W0602,W0603 def add(id_, string, fuzzy): "Add a non-fuzzy translation to the dictionary." global MESSAGES if not fuzzy and string: MESSAGES[id_] = string STRINGS.add(id_) def generateDict(): "Return the generated dictionary" global MESSAGES metadata = MESSAGES[''] del MESSAGES[''] encoding = re.search(r'charset=(\S*)\n', metadata).group(1) return "# -*- coding: %s -*-\n#This is generated code - do not edit\nencoding = '%s'\ndict = %s"%(encoding, encoding, MESSAGES) def make(filename, outfile=None): ID = 1 STR = 2 global MESSAGES MESSAGES = {} # Compute .py name from .po name and arguments if filename.endswith('.po'): infile = filename else: infile = filename + '.po' if outfile is None: outfile = os.path.splitext(infile)[0] + '.py' try: lines = open(infile).readlines() except IOError, msg: print >> sys.stderr, msg sys.exit(1) section = None fuzzy = 0 # Parse the catalog lno = 0 for l in lines: lno += 1 # If we get a comment line after a msgstr, this is a new entry if l[0] == '#' and section == STR: add(msgid, msgstr, fuzzy) # pylint: disable=E0601 section = None fuzzy = 0 # Record a fuzzy mark if l[:2] == '#,' and l.find('fuzzy'): fuzzy = 1 # Skip comments if l[0] == '#': continue # Now we are in a msgid section, output previous section if l.startswith('msgid'): if section == STR: add(msgid, msgstr, fuzzy) section = ID l = l[5:] msgid = msgstr = '' # Now we are in a msgstr section elif l.startswith('msgstr'): section = STR l = l[6:] # Skip empty lines l = l.strip() if not l: continue # XXX: Does this always follow Python escape semantics? # pylint: disable=W0511 l = eval(l) if section == ID: msgid += l elif section == STR: msgstr += l else: print >> sys.stderr, 'Syntax error on %s:%d' % (infile, lno), \ 'before:' print >> sys.stderr, l sys.exit(1) # Add last entry if section == STR: add(msgid, msgstr, fuzzy) # Compute output output = generateDict() try: open(outfile,"wb").write(output) except IOError,msg: print >> sys.stderr, msg return outfile taskcoach-1.4.3/taskcoachlib/iphone/000077500000000000000000000000001265347643000174025ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/iphone/__init__.py000066400000000000000000000014521265347643000215150ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from protocol import IPhoneAcceptor from bonjour import BonjourServiceRegister taskcoach-1.4.3/taskcoachlib/iphone/bonjour.py000066400000000000000000000052251265347643000214360ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.thirdparty import pybonjour from twisted.internet.interfaces import IReadDescriptor from twisted.internet.defer import Deferred, AlreadyCalledError from twisted.python.failure import Failure from zope import interface class BonjourServiceDescriptor(object): interface.implements(IReadDescriptor) def __init__(self): self.__fd = None def start(self, fd): from twisted.internet import reactor self.__fd = fd reactor.addReader(self) def stop(self): if self.__fd is not None: from twisted.internet import reactor reactor.removeReader(self) self.__fd.close() self.__fd = None def doRead(self): if self.__fd is not None: pybonjour.DNSServiceProcessResult(self.__fd) def fileno(self): return None if self.__fd is None else self.__fd.fileno() def logPrefix(self): return 'bonjour' def connectionLost(self, reason): if self.__fd is not None: self.__fd.close() def BonjourServiceRegister(settings, port): from twisted.internet import reactor d = Deferred() reader = BonjourServiceDescriptor() def registerCallback(sdRef, flags, errorCode, name, regtype, domain): try: if errorCode == pybonjour.kDNSServiceErr_NoError: d.callback(reader) else: reader.stop() d.errback(Failure(RuntimeError('Could not register with Bonjour: %d' % errorCode))) except AlreadyCalledError: pass # This ID is registered, see http://www.dns-sd.org/ServiceTypes.html sdRef = pybonjour.DNSServiceRegister(name=settings.get('iphone', 'service') or None, regtype='_taskcoachsync._tcp', port=port, callBack=registerCallback) reader.start(sdRef) return d taskcoach-1.4.3/taskcoachlib/iphone/protocol.py000066400000000000000000001275621265347643000216320ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # pylint: disable=W0201,E1101 from taskcoachlib.domain.date import Date, parseDate, DateTime, parseDateTime, Recurrence from taskcoachlib.domain.category import Category from taskcoachlib.domain.task import Task from taskcoachlib.domain.effort import Effort from taskcoachlib.i18n import _ from twisted.internet.protocol import Protocol, ServerFactory from twisted.internet.error import CannotListenError import wx, struct, \ random, time, hashlib, cStringIO, socket, os # Default port is 8001. # # Integers are sent as 32 bits signed, network byte order. # Strings are sent as their length (as integer), then data (UTF-8 # encoded). The length is computed after encoding. # Dates are sent as strings, formatted YYYY-MM-DD. # # The exact workflow for both desktop and device is documented as Dia # diagrams, in the "Design" subdirectory of the iPhone sources. ############################################################################### #{ Support classes: object serialisation & packing class BaseItem(object): """This is the base class of the network packet system. Each subclass maps to a particular type of data. @ivar state: convenience instance variable which starts as 0, used in subclasses to implement simple FSA.""" def __init__(self): super(BaseItem, self).__init__() self.start() def start(self): """This method should reinitialize the instance.""" self.state = 0 self.value = None def expect(self): """This should return the number of bytes that are needed next. When this much bytes are finally available, they'll be passed to L{feed}. Return None if you're finished.""" raise NotImplementedError def feed(self, data): """The bytes requested from L{expect} are available ('data' parameter).""" raise NotImplementedError def pack(self, value): """Unserialization. This should return a byte buffer representing 'value'.""" raise NotImplementedError class IntegerItem(BaseItem): """Integers. Packed as 32-bits, signed, big endian. Underlying type: int.""" def expect(self): if self.state == 0: return 4 else: return None def feed(self, data): self.value, = struct.unpack('!i', data) self.state = 1 def pack(self, value): return struct.pack('!i', value) class DataItem(BaseItem): """A bunch of bytes, the count being well known""" def __init__(self, count): super(DataItem, self).__init__() self.__count = count def expect(self): return self.__count if self.state == 0 else None def feed(self, data): if self.state == 0: self.value = data self.state = 1 def pack(self, value): return value class StringItem(BaseItem): """Strings. Encoded in UTF-8. Packed as their length (encoded), then the data. Underlying type: unicode.""" def expect(self): if self.state == 0: return 4 elif self.state == 1: return self.length else: return None def feed(self, data): if self.state == 0: self.length, = struct.unpack('!i', data) if self.length: self.state = 1 else: self.value = u'' self.state = 2 elif self.state == 1: self.value = data.decode('UTF-8') self.state = 2 def pack(self, value): v = value.encode('UTF-8') return struct.pack('!i', len(v)) + v class FixedSizeStringItem(StringItem): """Same as L{StringItem}, but cannot be empty. Underlying type: unicode or NoneType.""" def feed(self, data): super(FixedSizeStringItem, self).feed(data) if self.state == 2: if not self.value: self.value = None def pack(self, value): if value is None: return struct.pack('!i', 0) return super(FixedSizeStringItem, self).pack(value) class DateItem(FixedSizeStringItem): """Date, in YYYY-MM-DD format. Underlying type: taskcoachlib.domain.date.Date.""" def feed(self, data): super(DateItem, self).feed(data) if self.state == 2: self.value = Date() if self.value is None else parseDate(self.value) def pack(self, value): if isinstance(value, DateTime): value = Date(value.year, value.month, value.day) value = None if value == Date() else value.isoformat() return super(DateItem, self).pack(value) class DateTimeItem(FixedSizeStringItem): """Date and time, YYYY-MM-DD HH:MM:SS""" def feed(self, data): super(DateTimeItem, self).feed(data) if self.state == 2: if self.value is not None: self.value = parseDateTime(self.value) def pack(self, value): if value is not None: value = value.replace(microsecond=0, tzinfo=None).isoformat(sep=' ') return super(DateTimeItem, self).pack(value) class InfiniteDateTimeItem(FixedSizeStringItem): """Same as L{DateTimeItem}, but 'no date' is a DateTime() value instead of None.""" def feed(self, data): super(InfiniteDateTimeItem, self).feed(data) if self.state == 2: if self.value is None: self.value = DateTime() else: self.value = parseDateTime(self.value) def pack(self, value): if value == DateTime(): value = None if value is not None: value = value.replace(microsecond=0, tzinfo=None).isoformat(sep=' ') return super(InfiniteDateTimeItem, self).pack(value) class CompositeItem(BaseItem): """A succession of several types. Underlying type: tuple. An exception is made if there is only 1 child, the type is then the same as it.""" def __init__(self, items, *args, **kwargs): self._items = items super(CompositeItem, self).__init__(*args, **kwargs) def append(self, item): self._items.append(item) def start(self): super(CompositeItem, self).start() self.value = [] for item in self._items: item.start() def expect(self): if self.state < len(self._items): expect = self._items[self.state].expect() if expect is None: self.value.append(self._items[self.state].value) self.state += 1 return self.expect() return expect else: self.value = self.value[0] if len(self._items) == 1 else tuple(self.value) return None def feed(self, data): self._items[self.state].feed(data) def pack(self, *values): if len(self._items) == 1: return self._items[0].pack(values[0]) else: return ''.join([self._items[idx].pack(v) \ for idx, v in enumerate(values)]) def __str__(self): return 'CompositeItem([%s])' % ', '.join(map(str, self._items)) # pylint: disable=W0141 class ListItem(BaseItem): """A list of items. Underlying type: list.""" def __init__(self, item, *args, **kwargs): self._item = item super(ListItem, self).__init__(*args, **kwargs) def start(self): super(ListItem, self).start() self.value = [] self._item.start() def append(self, item): self._item.append(item) def expect(self): if self.state == 0: return 4 elif self.state == 1: expect = self._item.expect() if expect is None: self.value.append(self._item.value) self.__count -= 1 if self.__count == 0: return None self._item.start() return self.expect() else: return expect elif self.state == 2: return None def feed(self, data): if self.state == 0: self.__count, = struct.unpack('!i', data) if self.__count: self._item.start() self.state = 1 else: self.state = 2 elif self.state == 1: self._item.feed(data) def pack(self, value): return struct.pack('!i', len(value)) + \ ''.join([self._item.pack(v) for v in value]) def __str__(self): return 'ListItem(%s)' % str(self._item) class ItemParser(object): """Utility to avoid instantiating the Item classes by hand. parse('is[zi]') will hold a CompositeItem([IntegerItem(), StringItem(), ListItem(CompositeItem([FixedSizeStringItem(), IntegerITem()]))]).""" # Special case for DataItem. formatMap = { 'i': IntegerItem, 's': StringItem, 'z': FixedSizeStringItem, 'd': DateItem, 't': DateTimeItem, 'f': InfiniteDateTimeItem } def __init__(self): super(ItemParser, self).__init__() @classmethod def registerItemType(klass, character, itemClass): """Register a new type of item. 'character' must be a single-character string, not already associated with an item. 'itemClass' should be a L{BaseItem} subclass. Its constructor must not take any parameter.""" if len(character) != 1: raise ValueError('character must be a single character, not "%s".' % character) if character in klass.formatMap: raise ValueError('"%s" is already registered.' % character) klass.formatMap[character] = itemClass def parse(self, format): # pylint: disable=W0622 if format.startswith('['): return ListItem(self.parse(format[1:-1])) current = CompositeItem([]) stack = [] count = None for character in format: if character == '[': item = ListItem(CompositeItem([])) stack.append(current) current.append(item) current = item elif character == ']': current = stack.pop() elif character == 'b': if count is None: raise ValueError('Wrong format string: %s' % format) current.append(DataItem(count)) count = None elif character.isdigit(): if count is None: count = int(character) else: count *= 10 count += int(character) else: current.append(self.formatMap[character]()) assert len(stack) == 0 return current class State(object): def __init__(self, disp): super(State, self).__init__() self.__disp = disp def init(self, format, count): # pylint: disable=W0622 self.__format = format self.__count = count self.__data = cStringIO.StringIO() if format is None: self.__item = None else: self.__item = ItemParser().parse(format) if self.__count == 0: self.finished() else: self.__disp.set_terminator(self.__item.expect()) def setState(self, klass, *args, **kwargs): self.__class__ = klass self.init(*args, **kwargs) def data(self): return self.__data.getvalue() def disp(self): return self.__disp def collect_incoming_data(self, data): if self.__format is not None: self.__data.write(data) def found_terminator(self): if self.__format is not None: self.__item.feed(self.__data.getvalue()) self.__data = cStringIO.StringIO() length = self.__item.expect() if length is None: value = self.__item.value self.__count -= 1 if self.__count: self.__item.start() self.__disp.set_terminator(self.__item.expect()) self.handleNewObject(value) if not self.__count: self.finished() else: self.__disp.set_terminator(length) def pack(self, format, *values): # pylint: disable=W0622 """Send a value.""" self.__disp.push(ItemParser().parse(format).pack(*values)) def handleClose(self): pass def handleNewObject(self, obj): raise NotImplementedError def finished(self): raise NotImplementedError ############################################################################### # Actual protocol _PROTOVERSION = 5 class IPhoneHandler(Protocol): def __init__(self): self.state = None self.__buffer = '' self.__expecting = None random.seed(time.time()) def connectionMade(self): self.transport.socket.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) self.state = BaseState(self) self.state.setState(InitialState, _PROTOVERSION) def log(self, msg, *args): if self.state.ui is not None: self.state.ui.AddLogLine(msg % args) def _flush(self): while self.__expecting is not None and len(self.__buffer) >= self.__expecting: data = self.__buffer[:self.__expecting] self.__buffer = self.__buffer[self.__expecting:] self.state.collect_incoming_data(data) self.state.found_terminator() def set_terminator(self, terminator): self.__expecting = terminator self._flush() def close_when_done(self): # XXX: without this delay, the other side sometimes doesn't "notice" the socket has been # closed... I should take a look with Wireshark... from twisted.internet import reactor reactor.callLater(0.5, self.transport.loseConnection) def dataReceived(self, data): self.__buffer += data self._flush() def connectionLost(self, reason): self.state.handleClose() def push(self, data): self.transport.write(data) class IPhoneAcceptor(ServerFactory): protocol = IPhoneHandler def __init__(self, window, settings, iocontroller): from twisted.internet import reactor self.window = window self.settings = settings self.iocontroller = iocontroller for port in xrange(4096, 8192): try: self.__listening = reactor.listenTCP(port, self, backlog=5) except CannotListenError: pass else: break else: raise RuntimeError('Could not find a port to bind to.') self.port = port def buildProtocol(self, addr): password = self.settings.get('iphone', 'password') if password: protocol = ServerFactory.buildProtocol(self, addr) protocol.window = self.window protocol.settings = self.settings protocol.iocontroller = self.iocontroller return protocol wx.MessageBox(_('''An iPhone or iPod Touch tried to connect to Task Coach,\n''' '''but no password is set. Please set a password in the\n''' '''iPhone section of the configuration and try again.'''), _('Error'), wx.OK) return None def close(self): self.__listening.stopListening() self.__listening = None class BaseState(State): # pylint: disable=W0223 def __init__(self, disp, *args, **kwargs): self.oldTasks = disp.window.taskFile.tasks().copy() self.oldCategories = disp.window.taskFile.categories().copy() self.ui = None self.syncCompleted = disp.settings.getboolean('iphone', 'synccompleted') super(BaseState, self).__init__(disp, *args, **kwargs) def isTaskEligible(self, task): """Returns True if a task should be considered when syncing with an iPhone/iPod Touch device. Right now, a task is eligible if * It's a leaf task (no children) * Or it has a reminder * Or it's overdue * Or it belongs to a category named 'iPhone' This will probably be more configurable in the future.""" if task.completed() and not self.syncCompleted: return False if task.isDeleted(): return False if len(task.children()) == 0: return True if task.reminder() is not None: return True if task.overdue(): return True for category in task.categories(): if category.subject() == 'iPhone': return True return False def handleClose(self): if self.ui is not None: self.ui.Finished() # Rollback self.disp().window.restoreTasks(self.oldCategories, self.oldTasks) class InitialState(BaseState): def init(self, version): self.version = version super(InitialState, self).init('i', 1) if self.version == _PROTOVERSION: self.ui = self.disp().window.createIPhoneProgressFrame() self.ui.Started() self.pack('i', version) def handleNewObject(self, accepted): if accepted: self.disp().log(_('Protocol version: %d'), self.version) self.setState(PasswordState) else: if self.version == 1: # Do not close the connection because it causes an error on the # device. It will do it itself. self.disp().window.notifyIPhoneProtocolFailed() else: self.disp().log(_('Rejected protocol version %d'), self.version) self.setState(InitialState, self.version - 1) def finished(self): pass class PasswordState(BaseState): def init(self): super(PasswordState, self).init('20b', 1) self.hashData = ''.join([struct.pack('B', random.randint(0, 255)) for dummy in xrange(512)]) self.pack('20b', self.hashData) def handleNewObject(self, hash): # pylint: disable=W0622 local = hashlib.sha1() local.update(self.hashData + self.disp().settings.get('iphone', 'password').encode('UTF-8')) if hash == local.digest(): self.disp().log(_('Hash OK.')) self.pack('i', 1) self.setState(DeviceNameState) else: self.disp().log(_('Hash KO.')) self.pack('i', 0) self.setState(PasswordState) def finished(self): pass class DeviceNameState(BaseState): def init(self): super(DeviceNameState, self).init('s', 1) def handleNewObject(self, name): self.disp().log(_('Device name: %s'), name) self.deviceName = name self.ui.SetDeviceName(name) self.setState(GUIDState) class GUIDState(BaseState): def init(self): if self.version >= 4: super(GUIDState, self).init('i', 1) self.pack('s', self.disp().window.taskFile.guid()) else: super(GUIDState, self).init('z', 1) def handleNewObject(self, guid): self.disp().log(_('GUID: %s'), guid) if self.version >= 4: self.setState(TaskFileNameState) else: type_ = self.disp().window.getIPhoneSyncType(guid) self.pack('i', type_) if type_ == 0: self.setState(TwoWayState) elif type_ == 1: self.setState(FullFromDesktopState) elif type_ == 2: self.setState(FullFromDeviceState) # On cancel, the other end will close the connection def finished(self): pass class TaskFileNameState(BaseState): def init(self): super(TaskFileNameState, self).init('i', 1) filename = self.disp().iocontroller.filename() if filename: filename = os.path.splitext(os.path.split(filename)[1])[0] self.disp().log(_('Sending file name: %s'), filename) self.pack('z', filename) def handleNewObject(self, response): # pylint: disable=W0613 self.setState(TwoWayState if self.version < 5 else DayHoursState) def finished(self): pass class DayHoursState(BaseState): def init(self): super(DayHoursState, self).init('i', 1) self.pack('ii', self.disp().settings.getint('view', 'efforthourstart'), self.disp().settings.getint('view', 'efforthourend')) def handleNewObject(self, response): # pylint: disable=W0613 self.setState(TwoWayState) def finished(self): pass class FullFromDesktopState(BaseState): def init(self): self.disp().log(_('Full from desktop.')) if self.version >= 4: allEfforts = self.disp().window.taskFile.efforts() if self.syncCompleted: self.tasks = list([task for task in self.disp().window.taskFile.tasks().allItemsSorted() if not task.isDeleted()]) self.efforts = list([effort for effort in allEfforts \ if effort.task() is None or not effort.task().isDeleted()]) else: self.tasks = list([task for task in self.disp().window.taskFile.tasks().allItemsSorted() if not (task.isDeleted() or task.completed())]) self.efforts = list([effort for effort in allEfforts \ if effort.task() is None or not (effort.task().isDeleted() or effort.task().completed())]) else: self.tasks = filter(self.isTaskEligible, self.disp().window.taskFile.tasks()) # pylint: disable=W0141 self.categories = list([cat for cat in self.disp().window.taskFile.categories().allItemsSorted() if not cat.isDeleted()]) if self.version >= 4: self.pack('iii', len(self.categories), len(self.tasks), len(self.efforts)) self.total = len(self.categories) + len(self.tasks) + len(self.efforts) else: self.pack('ii', len(self.categories), len(self.tasks)) self.total = len(self.categories) + len(self.tasks) self.count = 0 self.setState(FullFromDesktopCategoryState) class FullFromDesktopCategoryState(BaseState): def init(self): super(FullFromDesktopCategoryState, self).init('i', len(self.categories)) self.disp().log(_('%d categories'), len(self.categories)) if self.categories: self.sendObject() def sendObject(self): if self.categories: category = self.categories.pop(0) self.disp().log(_('Send category %s'), category.id()) self.pack('ssz', category.subject(), category.id(), None if category.parent() is None else category.parent().id()) def handleNewObject(self, code): self.disp().log(_('Response: %d'), code) self.count += 1 self.ui.SetProgress(self.count, self.total) self.sendObject() def finished(self): self.setState(FullFromDesktopTaskState) class FullFromDesktopTaskState(BaseState): def init(self): super(FullFromDesktopTaskState, self).init('i', len(self.tasks)) self.disp().log(_('%d tasks'), len(self.tasks)) if self.tasks: self.sendObject() def sendObject(self): if self.tasks: task = self.tasks.pop(0) self.disp().log(_('Send task %s'), task.id()) if self.version < 4: self.pack('sssddd[s]', task.subject(), task.id(), task.description(), task.plannedStartDateTime().date(), task.dueDateTime().date(), task.completionDateTime().date(), [category.id() for category in task.categories()]) elif self.version < 5: self.pack('sssdddz[s]', task.subject(), task.id(), task.description(), task.plannedStartDateTime().date(), task.dueDateTime().date(), task.completionDateTime().date(), task.parent().id() if task.parent() is not None else None, [category.id() for category in task.categories()]) else: hasRecurrence = task.recurrence() is not None and task.recurrence().unit != '' if hasRecurrence: recPeriod = {'daily': 0, 'weekly': 1, 'monthly': 2, 'yearly': 3}[task.recurrence().unit] recRepeat = task.recurrence().amount recSameWeekday = task.recurrence().sameWeekday else: recPeriod = 0 recRepeat = 0 recSameWeekday = 0 self.pack('sssffffziiiii[s]', task.subject(), task.id(), task.description(), task.plannedStartDateTime(), task.dueDateTime(), task.completionDateTime(), task.reminder(), task.parent().id() if task.parent() is not None else None, task.priority(), hasRecurrence, recPeriod, recRepeat, recSameWeekday, [category.id() for category in task.categories()]) def handleNewObject(self, code): self.disp().log(_('Response: %d'), code) self.count += 1 self.ui.SetProgress(self.count, self.total) self.sendObject() def finished(self): if self.version >= 4: self.setState(FullFromDesktopEffortState) else: self.setState(SendGUIDState) class FullFromDesktopEffortState(BaseState): def init(self): super(FullFromDesktopEffortState, self).init('i', len(self.efforts)) self.disp().log(_('%d efforts'), len(self.efforts)) if self.efforts: self.sendObject() def sendObject(self): if self.efforts: effort = self.efforts.pop(0) self.disp().log(_('Send effort %s'), effort.id()) self.pack('ssztt', effort.id(), effort.subject(), effort.task().id() if effort.task() is not None else None, effort.getStart(), effort.getStop()) def handleNewObject(self, code): # pylint: disable=W0613 self.count += 1 self.ui.SetProgress(self.count, self.total) self.sendObject() def finished(self): if self.version < 5: self.setState(SendGUIDState) else: self.disp().log(_('Finished.')) self.disp().close_when_done() self.ui.Finished() def handleClose(self): if self.version < 5: super(FullFromDesktopEffortState, self).handleClose() class FullFromDeviceState(BaseState): def init(self): self.disp().window.clearTasks() super(FullFromDeviceState, self).init('ii', 1) def handleNewObject(self, (categoryCount, taskCount)): self.categoryCount = categoryCount self.taskCount = taskCount self.total = categoryCount + taskCount self.count = 0 self.setState(FullFromDeviceCategoryState) def finished(self): pass class FullFromDeviceCategoryState(BaseState): def init(self): self.categoryMap = {} super(FullFromDeviceCategoryState, self).init('s' if self.version < 3 else 'sz', self.categoryCount) def handleNewObject(self, args): if self.version < 3: name = args parentId = None else: name, parentId = args if parentId is None: category = Category(name) else: category = self.categoryMap[parentId].newChild(name) self.disp().window.addIPhoneCategory(category) self.pack('s', category.id()) self.categoryMap[category.id()] = category self.count += 1 self.ui.SetProgress(self.count, self.total) def finished(self): self.setState(FullFromDeviceTaskState) class FullFromDeviceTaskState(BaseState): def init(self): super(FullFromDeviceTaskState, self).init('ssddd[s]', self.taskCount) def handleNewObject(self, (subject, description, startDate, dueDate, completionDate, categories)): task = Task(subject=subject, description=description, plannedStartDateTime=DateTime(startDate.year, startDate.month, startDate.day), dueDateTime=DateTime(dueDate.year, dueDate.month, dueDate.day), completionDateTime=DateTime(completionDate.year, completionDate.month, completionDate.day)) self.disp().window.addIPhoneTask(task, [self.categoryMap[id_] for id_ in categories]) self.count += 1 self.ui.SetProgress(self.count, self.total) self.pack('s', task.id()) def finished(self): self.setState(SendGUIDState) class TwoWayState(BaseState): def init(self): self.categoryMap = dict([(category.id(), category) for category in self.disp().window.taskFile.categories()]) self.taskMap = dict([(task.id(), task) for task in self.disp().window.taskFile.tasks()]) self.effortMap = dict([(effort.id(), effort) for effort in self.disp().window.taskFile.efforts()]) if self.version < 3: super(TwoWayState, self).init('iiii', 1) elif self.version < 4: super(TwoWayState, self).init('iiiiii', 1) else: super(TwoWayState, self).init('iiiiiiiii', 1) def handleNewObject(self, args): if self.version < 3: (self.newCategoriesCount, self.newTasksCount, self.deletedTasksCount, self.modifiedTasksCount) = args elif self.version < 4: (self.newCategoriesCount, self.newTasksCount, self.deletedTasksCount, self.modifiedTasksCount, self.deletedCategoriesCount, self.modifiedCategoriesCount) = args else: (self.newCategoriesCount, self.newTasksCount, self.deletedTasksCount, self.modifiedTasksCount, self.deletedCategoriesCount, self.modifiedCategoriesCount, self.newEffortsCount, self.modifiedEffortsCount, self.deletedEffortsCount) = args self.disp().log(_('%d new categories'), self.newCategoriesCount) self.disp().log(_('%d new tasks'), self.newTasksCount) self.disp().log(_('%d new efforts'), self.newEffortsCount) self.disp().log(_('%d modified categories'), self.modifiedCategoriesCount) self.disp().log(_('%d modified tasks'), self.modifiedTasksCount) self.disp().log(_('%d modified efforts'), self.modifiedEffortsCount) self.disp().log(_('%d deleted categories'), self.deletedCategoriesCount) self.disp().log(_('%d deleted tasks'), self.deletedTasksCount) self.disp().log(_('%d deleted efforts'), self.deletedEffortsCount) self.setState(TwoWayNewCategoriesState) class TwoWayNewCategoriesState(BaseState): def init(self): super(TwoWayNewCategoriesState, self).init(('s' if self.version < 3 else 'sz'), self.newCategoriesCount) def handleNewObject(self, args): if self.version < 3: name = args parentId = None else: name, parentId = args self.disp().log(_('New category (parent: %s)'), parentId) if parentId is None or not self.categoryMap.has_key(parentId): category = Category(name) else: category = self.categoryMap[parentId].newChild(name) self.disp().window.addIPhoneCategory(category) self.categoryMap[category.id()] = category self.pack('s', category.id()) def finished(self): if self.version < 3: self.setState(TwoWayNewTasksState) else: self.setState(TwoWayDeletedCategoriesState) class TwoWayDeletedCategoriesState(BaseState): def init(self): super(TwoWayDeletedCategoriesState, self).init('s', self.deletedCategoriesCount) def handleNewObject(self, catId): try: category = self.categoryMap.pop(catId) except KeyError: # Deleted on desktop if self.version >= 5: self.pack('s', '') else: self.disp().log(_('Delete category %s'), category.id()) if self.version >= 5: self.pack('s', category.id()) self.disp().window.removeIPhoneCategory(category) def finished(self): self.setState(TwoWayModifiedCategoriesState) class TwoWayModifiedCategoriesState(BaseState): def init(self): super(TwoWayModifiedCategoriesState, self).init('ss', self.modifiedCategoriesCount) def handleNewObject(self, (name, catId)): try: category = self.categoryMap[catId] except KeyError: if self.version >= 5: self.pack('s', '') else: self.disp().log(_('Modify category %s'), category.id()) self.disp().window.modifyIPhoneCategory(category, name) if self.version >= 5: self.pack('s', category.id()) def finished(self): if self.version < 4: self.setState(TwoWayNewTasksState) elif self.version < 5: self.setState(TwoWayNewTasksState4) else: self.setState(TwoWayNewTasksState5) class TwoWayNewTasksState(BaseState): def init(self): super(TwoWayNewTasksState, self).init('ssddd[s]', self.newTasksCount) def handleNewObject(self, (subject, description, startDate, dueDate, completionDate, categories)): task = Task(subject=subject, description=description, plannedStartDateTime=DateTime(startDate.year, startDate.month, startDate.day), dueDateTime=DateTime(dueDate.year, dueDate.month, dueDate.day), completionDateTime=DateTime(completionDate.year, completionDate.month, completionDate.day)) self.disp().window.addIPhoneTask(task, [self.categoryMap[catId] for catId in categories \ if self.categoryMap.has_key(catId)]) self.disp().log(_('New task %s'), task.id()) self.taskMap[task.id()] = task self.pack('s', task.id()) def finished(self): self.setState(TwoWayDeletedTasksState) class TwoWayNewTasksState4(BaseState): def init(self): super(TwoWayNewTasksState4, self).init('ssddfz[s]', self.newTasksCount) def handleNewObject(self, (subject, description, plannedStartDate, dueDate, completionDateTime, parentId, categories)): parent = self.taskMap[parentId] if parentId and self.taskMap.has_key(parentId) else None if self.version < 5: plannedStartDateTime = DateTime() if plannedStartDate == Date() else \ DateTime(year=plannedStartDate.year, month=plannedStartDate.month, day=plannedStartDate.day, hour=self.disp().settings.getint('view', 'efforthourstart')) dueDateTime = DateTime() if dueDate == Date() else \ DateTime(year=dueDate.year, month=dueDate.month, day=dueDate.day, hour=self.disp().settings.getint('view', 'efforthourend')) task = Task(subject=subject, description=description, plannedStartDateTime=plannedStartDateTime, dueDateTime=dueDateTime, completionDateTime=completionDateTime, parent=parent) self.disp().window.addIPhoneTask(task, [self.categoryMap[catId] for catId in categories \ if self.categoryMap.has_key(catId)]) self.disp().log(_('New task %s'), task.id()) self.taskMap[task.id()] = task self.pack('s', task.id()) def finished(self): self.setState(TwoWayDeletedTasksState) class TwoWayNewTasksState5(BaseState): def init(self): super(TwoWayNewTasksState5, self).init('ssffffiiiiiz[s]', self.newTasksCount) def handleNewObject(self, (subject, description, plannedStartDateTime, dueDateTime, completionDateTime, reminderDateTime, priority, hasRecurrence, recPeriod, recRepeat, recSameWeekday, parentId, categories)): parent = self.taskMap[parentId] if parentId else None recurrence = None if hasRecurrence: recurrence = Recurrence(unit={0: 'daily', 1: 'weekly', 2: 'monthly', 3: 'yearly'}[recPeriod], amount=recRepeat, sameWeekday=recSameWeekday) task = Task(subject=subject, description=description, plannedStartDateTime=plannedStartDateTime, dueDateTime=dueDateTime, completionDateTime=completionDateTime, parent=parent, recurrence=recurrence, priority=priority) # Don't start a timer from this thread... wx.CallAfter(task.setReminder, reminderDateTime) self.disp().window.addIPhoneTask(task, [self.categoryMap[catId] for catId in categories \ if self.categoryMap.has_key(catId)]) self.disp().log(_('New task %s'), task.id()) self.taskMap[task.id()] = task self.pack('s', task.id()) def finished(self): self.setState(TwoWayDeletedTasksState) class TwoWayDeletedTasksState(BaseState): def init(self): super(TwoWayDeletedTasksState, self).init('s', self.deletedTasksCount) def handleNewObject(self, taskId): try: task = self.taskMap.pop(taskId) except KeyError: if self.version >= 5: self.pack('s', '') else: self.disp().log(_('Delete task %s'), task.id()) if self.version >= 5: self.pack('s', task.id()) self.disp().window.removeIPhoneTask(task) def finished(self): self.setState(TwoWayModifiedTasks) class TwoWayModifiedTasks(BaseState): def init(self): if self.version < 2: super(TwoWayModifiedTasks, self).init('sssddd', self.modifiedTasksCount) elif self.version < 5: super(TwoWayModifiedTasks, self).init('sssddd[s]', self.modifiedTasksCount) else: super(TwoWayModifiedTasks, self).init('sssffffiiiii[s]', self.modifiedTasksCount) def handleNewObject(self, args): reminderDateTime = None recurrence = None priority = 0 if self.version < 2: subject, taskId, description, plannedStartDate, dueDate, completionDate = args categories = None elif self.version < 5: subject, taskId, description, plannedStartDate, dueDate, completionDate, categories = args categories = set([self.categoryMap[catId] for catId in categories]) else: (subject, taskId, description, plannedStartDate, dueDate, completionDate, reminderDateTime, priority, hasRecurrence, recPeriod, recRepeat, recSameWeekday, categories) = args categories = set([self.categoryMap[catId] for catId in categories if catId in self.categoryMap]) if hasRecurrence: recurrence = Recurrence(unit={0: 'daily', 1: 'weekly', 2: 'monthly', 3: 'yearly'}[recPeriod], amount=recRepeat, sameWeekday=recSameWeekday) if self.version < 5: plannedStartDateTime = DateTime(plannedStartDate.year, plannedStartDate.month, plannedStartDate.day, self.disp().settings.getint('view', 'efforthourstart')) if plannedStartDate != Date() else DateTime() dueDateTime = DateTime(dueDate.year, dueDate.month, dueDate.day, self.disp().settings.getint('view', 'efforthourend')) if dueDate != Date() else DateTime() completionDateTime = DateTime(completionDate.year, completionDate.month, completionDate.day) if completionDate != Date() else DateTime() else: plannedStartDateTime = plannedStartDate dueDateTime = dueDate completionDateTime = completionDate try: task = self.taskMap[taskId] except KeyError: if self.version >= 5: self.pack('s', '') else: self.disp().log(_('Modify task %s'), task.id()) self.disp().window.modifyIPhoneTask(task, subject, description, plannedStartDateTime, dueDateTime, completionDateTime, reminderDateTime, recurrence, priority, categories) if self.version >= 5: self.pack('s', task.id()) def finished(self): self.disp().log(_('End of task synchronization.')) if self.version < 4: self.setState(FullFromDesktopState) else: self.setState(TwoWayNewEffortsState) class TwoWayNewEffortsState(BaseState): def init(self): super(TwoWayNewEffortsState, self).init('sztt', self.newEffortsCount) def handleNewObject(self, (subject, taskId, started, ended)): task = None if taskId is not None: try: task = self.taskMap[taskId] except KeyError: self.disp().log(_('Could not find task %s for effort.'), taskId) effort = Effort(task, started, ended, subject=subject) self.disp().log(_('New effort %s'), effort.id()) self.disp().window.addIPhoneEffort(task, effort) self.pack('s', effort.id()) self.effortMap[effort.id()] = effort def finished(self): self.setState(TwoWayModifiedEffortsState) class TwoWayModifiedEffortsState(BaseState): def init(self): super(TwoWayModifiedEffortsState, self).init('sstt', self.modifiedEffortsCount) def handleNewObject(self, (id_, subject, started, ended)): # Actually, the taskId cannot be modified on the device, which saves # us some headaches. try: effort = self.effortMap[id_] except KeyError: if self.version >= 5: self.pack('s', '') else: self.disp().log(_('Modify effort %s'), effort.id()) self.disp().window.modifyIPhoneEffort(effort, subject, started, ended) if self.version >= 5: self.pack('s', effort.id()) def finished(self): # Efforts cannot be deleted on the iPhone yet. self.setState(FullFromDesktopState) class SendGUIDState(BaseState): def init(self): super(SendGUIDState, self).init('i', 1) self.disp().log(_('Sending GUID: %s'), self.disp().window.taskFile.guid()) self.pack('s', self.disp().window.taskFile.guid()) def handleNewObject(self, code): pass def finished(self): self.disp().log(_('Finished.')) self.disp().close_when_done() self.ui.Finished() def handleClose(self): pass taskcoach-1.4.3/taskcoachlib/mailer/000077500000000000000000000000001265347643000173715ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/mailer/__init__.py000066400000000000000000000115561265347643000215120ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, os, re, tempfile, urllib, email, email.header from taskcoachlib.thirdparty import chardet from taskcoachlib.tools import openfile from taskcoachlib.mailer.macmail import getSubjectOfMail from taskcoachlib.i18n import _ from taskcoachlib import operating_system def readMail(filename, readContent=True): with file(filename, 'r') as fd: message = email.message_from_file(fd) subject = getSubject(message) content = getContent(message) if readContent else '' return subject, content charset_re = re.compile('charset="?([-0-9a-zA-Z]+)"?') def getSubject(message): subject = message['subject'] try: return u' '.join((part[0].decode(part[1]) if part[1] else part[0]) for part in email.header.decode_header(subject)) except UnicodeDecodeError: encoding = message.get_content_charset() if encoding is None: encoding = message.get('Content-Transfer-Encoding') if encoding is None: encoding = 'utf-8' try: return subject.decode(encoding) except: return repr(subject) def getContent(message): if message.is_multipart(): content = [] for submessage in message.get_payload(): content.append(getContent(submessage)) return u'\n'.join(content) elif message.get_content_type() in ('text/plain', 'message/rfc822'): content = message.get_payload() transfer_encoding = message['content-transfer-encoding'] if transfer_encoding: try: content = content.decode(transfer_encoding) except LookupError: pass # 8bit transfer encoding gives LookupError, ignore content_type = message['content-type'] if content_type: match = charset_re.search(message['content-type']) encoding = match.group(1) if match else '' if encoding: content = content.decode(encoding) return content else: return '' def openMailWithOutlook(filename): id_ = None for line in file(filename, 'r'): if line.startswith('X-Outlook-ID:'): id_ = line[13:].strip() break elif line.strip() == '': break if id_ is None: return False from win32com.client import GetActiveObject # pylint: disable=F0401 app = GetActiveObject('Outlook.Application') app.ActiveExplorer().Session.GetItemFromID(id_).Display() return True def openMail(filename): if os.name == 'nt': # Find out if Outlook is the so-called 'default' mailer. import _winreg # pylint: disable=F0401 key = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, r'mailto\shell\open\command') try: value, type_ = _winreg.QueryValueEx(key, '') if type_ in [_winreg.REG_SZ, _winreg.REG_EXPAND_SZ]: if 'outlook.exe' in value.lower(): try: if openMailWithOutlook(filename): return except: pass finally: _winreg.CloseKey(key) openfile.openFile(filename) def sendMail(to, subject, body, cc=None, openURL=openfile.openFile): def unicode_quote(s): # This is like urllib.quote but leaves out Unicode characters, # which urllib.quote does not support. chars = [c if ord(c) >= 128 else urllib.quote(c) for c in s] return ''.join(chars) cc = cc or [] if isinstance(to, (str, unicode)): to = [to] # FIXME: Very strange things happen on MacOS X. If there is one # non-ASCII character in the body, it works. If there is more than # one, it fails. Maybe we should use Mail.app directly ? What if # the user uses something else ? if not operating_system.isMac(): body = unicode_quote(body) # Otherwise newlines disappear cc = map(unicode_quote, cc) to = map(unicode_quote, to) components = ['subject=%s' % subject, 'body=%s' % body] if cc: components.append('cc=%s' % ','.join(cc)) openURL(u'mailto:%s?%s' % (','.join(to), '&'.join(components))) taskcoach-1.4.3/taskcoachlib/mailer/macmail.py000066400000000000000000000045561265347643000213600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.i18n import _ from taskcoachlib import operating_system import wx, subprocess, threading, time class MailAppInfoLoader(wx.ProgressDialog): def __init__(self, parent): super(MailAppInfoLoader, self).__init__(_('Reading mail info...'), _('Reading mail information. Please wait.'), parent=parent, style=wx.PD_SMOOTH|wx.PD_ELAPSED_TIME|wx.PD_CAN_SKIP) self.__title = None thread = threading.Thread(target=self.__run) thread.start() def __run(self): script = ''' tell application "Mail" set theMessages to selection subject of beginning of theMessages end tell ''' try: sp = subprocess.Popen('osascript', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) out, err = sp.communicate(script) if not sp.returncode: self.__title = operating_system.decodeSystemString(out.strip()) return except: pass self.__title = _('Mail.app message') def title(self): return self.__title def getSubjectOfMail(messageId): # pylint: disable=W0613 """This should return the subject of the mail having the specified message-id. Unfortunately, until I find an Applescript guru, it will only return the subject of the currently selected mail in Mail.app.""" dlg = MailAppInfoLoader(None) dlg.ShowModal() try: while dlg.title() is None: time.sleep(0.2) unused, skip = dlg.Pulse() if skip: return _('Mail.app message') return dlg.title() finally: dlg.Destroy() taskcoach-1.4.3/taskcoachlib/mailer/outlook.py000066400000000000000000000037351265347643000214470ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, stat, codecs from taskcoachlib import persistence if os.name == 'nt': from win32com.client import GetActiveObject # pylint: disable=F0401 def getCurrentSelection(): selection = GetActiveObject('Outlook.Application').ActiveExplorer().Selection filenames = [] for n in xrange(1, selection.Count + 1): filename = persistence.get_temp_file(suffix='.eml') saveItem(selection.Item(n), filename) filenames.append(filename) return filenames def saveItem(item, filename): body = item.Body encoding = 'iso-8859-1' try: codecs.encode(body, encoding) except UnicodeEncodeError: encoding = 'utf-8' mailFile = codecs.open(filename, 'wb', encoding) try: mailFile.write(emailHeaders(item, encoding) + body) finally: mailFile.close() os.chmod(filename, stat.S_IREAD) def emailHeaders(item, encoding, lineSep=u'\r\n'): headers = [] headers.append(u'subject: %s'%item.Subject) headers.append(u'X-Outlook-ID: %s'%item.EntryID) headers.append(u'Content-Transfer-Encoding: %s'%encoding) headers.append(lineSep) return lineSep.join(headers) taskcoach-1.4.3/taskcoachlib/mailer/thunderbird.py000066400000000000000000000350471265347643000222660ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import persistence, operating_system from taskcoachlib.thirdparty.ntlm import IMAPNtlmAuthHandler from taskcoachlib.widgets.password import GetPassword from taskcoachlib.i18n import _ import os import stat import re import imaplib import ConfigParser import wx import socket import mailbox _RX_MAILBOX_MESSAGE = re.compile(r'mailbox-message://(.*)@(.*)/(.*)#((?:-)?\d+)') _RX_IMAP_MESSAGE = re.compile(r'imap-message://([^@]+)@([^/]+)/(.*)#(\d+)') _RX_IMAP = re.compile(r'imap://([^@]+)@([^/]+)/fetch%3EUID%3E(?:/|\.)(.*)%3E(\d+)') _RX_MAILBOX = re.compile(r'mailbox://([^?]+)\?number=(\d+)') class ThunderbirdError(Exception): pass class ThunderbirdCancelled(ThunderbirdError): pass def unquote(s): """Converts %nn sequences into corresponding characters. I couldn't find anything in the standard library to do this, but I probably didn't search hard enough.""" rx = re.compile('%([0-9a-fA-F][0-9a-fA-F])') mt = rx.search(s) while mt: s = s[:mt.start(1) - 1] + chr(int(mt.group(1), 16)) + s[mt.end(1):] mt = rx.search(s) return s def loadPreferences(): """Reads Thunderbird's prefs.js file and return a dictionary of configuration options.""" config = {} def user_pref(key, value): config[key] = value for line in file(os.path.join(getDefaultProfileDir(), 'prefs.js'), 'r'): if line.startswith('user_pref('): # pylint: disable=W0122 exec line in {'user_pref': user_pref, 'true': True, 'false': False} return config def getThunderbirdDir(): path = None if operating_system.isMac(): path = os.path.join(os.environ['HOME'], 'Library', 'Thunderbird') elif os.name == 'posix': path = os.path.join(os.environ['HOME'], '.thunderbird') if not os.path.exists(path): path = os.path.join(os.environ['HOME'], '.mozilla-thunderbird') elif os.name == 'nt': if os.environ.has_key('APPDATA'): path = os.path.join(os.environ['APPDATA'], 'Thunderbird') elif os.environ.has_key('USERPROFILE'): path = os.path.join(os.environ['USERPROFILE'], 'Application Data', 'Thunderbird') else: raise EnvironmentError('Unsupported platform: %s' % os.name) if path is None: raise ThunderbirdError(_('Could not find Thunderbird data dir')) return path _PORTABLECACHE = None def getDefaultProfileDir(): """Returns Thunderbird's default profile directory""" global _PORTABLECACHE # pylint: disable=W0603 path = getThunderbirdDir() # Thunderbird Portable does not have a profiles.ini file, only one # profile. And there's only one way to know where it # is... Hackish. if os.name == 'nt' and not os.path.exists(os.path.join(path, 'profiles.ini')): if _PORTABLECACHE is not None: return _PORTABLECACHE from taskcoachlib.thirdparty import wmi # pylint: disable=W0404 for process in wmi.WMI().Win32_Process(): if process.ExecutablePath and process.ExecutablePath.lower().endswith('thunderbirdportable.exe'): _PORTABLECACHE = os.path.join(os.path.split(process.ExecutablePath)[0], 'Data', 'profile') break else: raise ThunderbirdError(_('Could not find Thunderbird profile.')) return _PORTABLECACHE parser = ConfigParser.RawConfigParser() parser.read([os.path.join(path, 'profiles.ini')]) for section in parser.sections(): if parser.has_option(section, 'Default') and int(parser.get(section, 'Default')): if int(parser.get(section, 'IsRelative')): return os.path.join(path, parser.get(section, 'Path')) return parser.get(section, 'Path') for section in parser.sections(): if parser.has_option(section, 'Name') and parser.get(section, 'Name') == 'default': if int(parser.get(section, 'IsRelative')): return os.path.join(path, parser.get(section, 'Path')) return parser.get(section, 'Path') raise ThunderbirdError(_('No default section in profiles.ini')) class ThunderbirdMailboxReader(object): """Extracts an e-mail from a Thunderbird file. Behaves like a stream object to read this e-mail.""" def __init__(self, url): """url is the internal reference to the mail, as collected through drag-n-drop.""" mt = _RX_MAILBOX_MESSAGE.search(url) if mt is None: raise ThunderbirdError(_('Malformed Thunderbird internal ID:\n%s. Please file a bug report.') % url) self.url = url # The url has the form # mailbox-message://@//#. Or # so I hope. config = loadPreferences() self.user = unquote(mt.group(1)) self.server = unquote(mt.group(2)) self.path = unquote(mt.group(3)).split('/') self.offset = long(mt.group(4)) for i in xrange(200): base = 'mail.server.server%d' % i if config.has_key('%s.userName' % base): if config['%s.userName' % base] == self.user and config['%s.hostname' % base] == self.server: # First try the relative path. if config.has_key('%s.directory-rel' % base): path = config['%s.directory-rel' % base] if path.startswith('[ProfD]'): path = os.path.join(getDefaultProfileDir(), path[7:]) self.filename = os.path.join(path, *tuple(self.path)) if os.path.exists(self.filename): break else: self.filename = os.path.join(config['%s.directory' % base], *tuple(self.path)) if os.path.exists(self.filename): break else: raise ThunderbirdError(_('Could not find directory for ID\n%s.\nPlease file a bug report.') % url) self.fp = file(self.filename, 'rb') if self.offset >= 0: self.fp.seek(self.offset) else: self.fp.seek(self.offset, os.SEEK_END) self.done = False def read(self): """Buffer-like read() method""" if self.done: return '' lines = [] # In theory, the message ends with a single dot. As always, in # theory, theory is like practice but in practice... starting = True for line in self.fp: if not starting: if line.startswith('From '): break lines.append(line) starting = False self.done = True return ''.join(lines) def __iter__(self): class Iterator(object): def __init__(self, fp): self.fp = fp def __iter__(self): return self def next(self): line = self.fp.readline() if line.strip() == '.': raise StopIteration return line return Iterator(self.fp) def saveToFile(self, fp): fp.write(self.read()) class ThunderbirdImapReader(object): def __init__(self, url): mt = _RX_IMAP.search(url) if mt is None: mt = _RX_IMAP_MESSAGE.search(url) if mt is None: raise ThunderbirdError(_('Unrecognized URL scheme: "%s"') % url) self.url = url self.user = unquote(mt.group(1)) self.server = mt.group(2) port = None if ':' in self.server: self.server, port = self.server.split(':') port = int(port) self.box = mt.group(3) self.uid = int(mt.group(4)) config = loadPreferences() stype = None # We iterate over a maximum of 100 mailservers. You'd think that # mailservers would be numbered consecutively, but apparently # that is not always the case, so we cannot assume that because # serverX does not exist, serverX+1 won't either. for serverIndex in range(100): name = 'mail.server.server%d' % serverIndex if config.has_key(name + '.hostname') and \ self.__equal_servers(config[name + '.hostname'], self.server) \ and config[name + '.type'] == 'imap': if config.has_key(name + '.port'): port = int(config[name + '.port']) if config.has_key(name + '.socketType'): stype = config[name + '.socketType'] break self.ssl = (stype == 3) if self.server in ('imap.google.com', 'imap.googlemail.com'): # When dragging mail from Thunderbird that uses Gmail via IMAP the # server reported is imap.google.com, but for a direct connection we # need to connect with imap.gmail.com: self.server = 'imap.gmail.com' elif config.has_key(name + '.realhostname'): self.server = config[name + '.realhostname'] self.port = port or {True: 993, False: 143}[self.ssl] @staticmethod def __equal_servers(server1, server2): ''' Return whether the servers are the same. ''' gmail_servers = ('imap.gmail.com', 'imap.google.com', 'imap.googlemail.com') if server1 in gmail_servers and server2 in gmail_servers: return True else: return server1 == server2 def _getMail(self): ''' Retrieve the email message from the IMAP server as specified by the dropped URL. ''' imap_class = imaplib.IMAP4_SSL if self.ssl else imaplib.IMAP4 try: imap = imap_class(self.server, self.port) except socket.gaierror, reason: error_message = _('Could not open an IMAP connection to ' '%(server)s:%(port)s\nto retrieve Thunderbird ' 'email message:\n%(reason)s') % \ dict(server=self.server, port=self.port, reason=reason) raise ThunderbirdError(error_message) password_domain = '%s:%d' % (self.server, self.port) pwd = GetPassword(password_domain, self.user) if pwd is None: raise ThunderbirdCancelled('User canceled') while True: try: if 'AUTH=CRAM-MD5' in imap.capabilities: response, dummy = imap.login_cram_md5(str(self.user), str(pwd)) elif 'AUTH=NTLM' in imap.capabilities: domain = wx.GetTextFromUser( \ _('Please enter the domain for user %s') % self.user) domain_username = '\\'.join([domain.upper(), str(self.user)]) response, dummy_parameters = imap.authenticate('NTLM', IMAPNtlmAuthHandler.IMAPNtlmAuthHandler( \ domain_username, str(pwd))) else: response, dummy_parameters = imap.login(self.user, pwd) except imap.error, reason: response = 'KO' error_message, = reason.args if response == 'OK': break pwd = GetPassword(password_domain, self.user, reset=True) if pwd is None: raise ThunderbirdCancelled('User canceled') # Two possibilities for separator... response, dummy_parameters = imap.select(self.box) if response != 'OK': response, dummy_parameters = imap.select(self.box.replace('/', '.')) if response != 'OK': raise ThunderbirdError(_('Could not select inbox "%s"\n(%s)') \ % (self.box, response)) response, parameters = imap.uid('FETCH', str(self.uid), '(RFC822)') if response != 'OK': raise ThunderbirdError(_('No such mail: %d') % self.uid) return parameters[0][1] def saveToFile(self, fp): fp.write(self._getMail()) class ThunderbirdLocalMailboxReader(object): ''' Reads email from a local Thunderbird mailbox. ''' def __init__(self, url): self.url = url def _getMail(self): match = _RX_MAILBOX.match(self.url) if match is None: raise ThunderbirdError(_('Unrecognized URL scheme: "%s"') % self.url) path = unquote(match.group(1)) # Note that the number= part of the URL is not the message key, but # rather an offset in the mbox file. offset = int(match.group(2)) # So we skip the first offset bytes before reading the contents: with file(path, 'rb') as mbox: mbox.seek(offset) contents = mbox.read(4 * 1024 * 1024) # Assume message size <= 4MB # Then we get a filename for a temporary file... filename = persistence.get_temp_file() # And save the remaining contents of the original mbox file: with file(filename, 'wb') as tmpmbox: tmpmbox.write(contents) # Now we can open the temporary mbox file... mb = mailbox.mbox(filename) # And the message we look for should be the first one: return mb.get_string(0) def saveToFile(self, fp): fp.write(self._getMail()) def getMail(id_): if id_.startswith('mailbox-message://'): reader = ThunderbirdMailboxReader(id_) elif id_.startswith('imap'): reader = ThunderbirdImapReader(id_) elif id_.startswith('mailbox:'): reader = ThunderbirdLocalMailboxReader(id_) else: raise TypeError('Not supported: %s' % id_) filename = persistence.get_temp_file(suffix='.eml') reader.saveToFile(file(filename, 'wb')) if os.name == 'nt': os.chmod(filename, stat.S_IREAD) return filename taskcoach-1.4.3/taskcoachlib/meta/000077500000000000000000000000001265347643000170465ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/meta/__init__.py000066400000000000000000000016611265347643000211630ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from data import * from debug import log_call, time_call, profile_call from developermessagechecker import DeveloperMessageChecker from gpl import licenseText, licenseHTML from versionchecker import VersionChecker taskcoach-1.4.3/taskcoachlib/meta/data.py000066400000000000000000000200501265347643000203260ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # pylint: disable=C0103 # Edit these for every release: version = '1.4.3' # Current version number of the application tskversion = 37 # Current version number of the task file format, changed to 37 for release 1.3.23. release_day = '31' # Day number of the release, 1-31, as string release_month = 'January' # Month of the release in plain English release_year = '2016' # Year of the release as string release_status = 'stable' # One of 'alpha', 'beta', 'stable' # No editing needed below this line for doing a release. import re, datetime try: from taskcoachlib.meta.revision import revision # pylint: disable=F0401,W0611 except ImportError: revision = None months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] if revision: # Buildbot sets revision # Decrement version because this version isn't released yet. This # assumes that version components are < 100; 99 will actually mean # pre-major release # pylint: disable=W0141 major, inter, minor = map(int, version.split('.')) numversion = major * 10000 + inter * 100 + minor numversion -= 1 major = numversion // 10000 inter = (numversion // 100) % 100 minor = numversion % 100 version = '.'.join(map(str, [major, inter, minor])) now = datetime.datetime.today() release_day = str(now.day) release_month = months[now.month-1] release_year = str(now.year) release_status = 'beta' version += '.' + revision assert release_month in months # Try to prevent typo's release_month_nr = '%02d' % (months.index(release_month) + 1) release_day_nr = '%02d' % int(release_day) date = release_month + ' ' + release_day + ', ' + release_year name = 'Task Coach' description = 'Your friendly task manager' long_description = '%(name)s is a free open source todo manager. It grew ' \ 'out of frustration about other programs not handling composite tasks well. ' \ 'In addition to flexible composite tasks, %(name)s has grown to include ' \ 'prerequisites, prioritizing, effort tracking, category tags, budgets, ' \ 'notes, and many other features. However, users are not forced to use all ' \ 'these features; %(name)s can be as simple or complex as you need it to be. ' \ '%(name)s is available for Windows, Mac OS X, and GNU/Linux; and there is a ' \ 'companion iOS app.' % dict(name=name) keywords = 'task manager, todo list, pim, time registration, track effort' author_first, author_last = 'Frank', 'Niessink' # Needed for PAD file author = '%s %s, Jerome Laheurte, and Aaron Wolf' % (author_first, author_last) author_unicode = u'%s %s, Jérôme Laheurte, and Aaron Wolf' % (author_first, author_last) author_email = 'developers@taskcoach.org' filename = name.replace(' ', '') filename_lower = filename.lower() url = 'http://taskcoach.org/' # Don't remove the trailing slash, other code is assuming it will be there screenshot = url + 'screenshots/Windows/0.71.2-Windows_XP-Tasks_categories_and_effort.png' icon = url + 'taskcoach.png' pad = url + 'pad.xml' version_url = url + 'version.txt' message_url = url + 'messages.txt' download = url + 'download.html' dist_download_prefix = 'http://downloads.sourceforge.net/%s' % filename_lower faq_url = 'https://answers.launchpad.net/taskcoach/+faqs' sf_tracker_url = 'https://sourceforge.net/tracker/' bug_report_url = sf_tracker_url + '?func=add&group_id=130831&atid=719134' known_bugs_url = sf_tracker_url + '?group_id=130831&atid=719134&status=1' support_request_url = sf_tracker_url + '?group_id=130831&atid=719135' feature_request_url = 'http://taskcoach.uservoice.com' translations_url = 'https://translations.launchpad.net/taskcoach' donate_url = url + 'givesupport.html' i18n_url = url + 'i18n.html' announcement_addresses = 'taskcoach@yahoogroups.com, python-announce-list@python.org' bcc_announcement_addresses = 'johnhaller@portableapps.com' copyright = 'Copyright (C) 2004-%s %s'%(release_year, author) # pylint: disable=W0622 license_title = 'GNU General Public License' license_version = '3' license_title_and_version = '%s version %s'%(license_title, license_version) license = '%s or any later version'%license_title_and_version # pylint: disable=W0622 license_title_and_version_abbrev = 'GPLv%s'%license_version license_abbrev = '%s+'%license_title_and_version_abbrev license_notice = '''%(name)s 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. %(name)s 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 .''' % dict(name=name) license_notice_html = '

        %s

        '%license_notice.replace('\n\n', '

        ') license_notice_html = re.sub(r']*)>', r'http\1', license_notice_html) platform = 'Any' pythonversion = '2.6' wxpythonversionnumber = '2.8.9.2' wxpythonversion = '%s-unicode' % wxpythonversionnumber twistedversionnumber = '10.0' languages = { 'English (US)': (None, True), 'English (AU)': ('en_AU', True), 'English (CA)': ('en_CA', True), 'English (GB)': ('en_GB', True), 'Arabic': ('ar', False), 'Basque': ('eu', False), 'Belarusian': ('be', False), 'Bosnian': ('bs', False), 'Breton': ('br', False), 'Bulgarian': ('bg', False), 'Catalan': ('ca', False), 'Chinese (Simplified)': ('zh_CN', False), 'Chinese (Traditional)': ('zh_TW', False), 'Czech': ('cs', True), 'Danish': ('da', False), 'Dutch': ('nl', True), 'Esperanto': ('eo', False), 'Estonian': ('et', False), 'Finnish': ('fi', True), 'French': ('fr', True), 'Galician': ('gl', False), 'German': ('de', True), 'German (Low)': ('nds', False), 'Greek': ('el', False), 'Hebrew': ('he', False), 'Hindi': ('hi', False), 'Hungarian': ('hu', False), 'Indonesian': ('id', False), 'Italian': ('it', True), 'Japanese': ('ja', False), 'Korean': ('ko', False), 'Latvian': ('lv', False), 'Lithuanian': ('lt', False), 'Marathi': ('mr', False), 'Mongolian': ('mn', False), 'Norwegian (Bokmal)': ('nb', False), 'Norwegian (Nynorsk)': ('nn', False), 'Occitan': ('oc', False), 'Papiamento': ('pap', False), 'Persian': ('fa', False), 'Polish': ('pl', True), 'Portuguese': ('pt', True), 'Portuguese (Brazilian)': ('pt_BR', True), 'Romanian': ('ro', True), 'Russian': ('ru', True), 'Slovak': ('sk', True), 'Slovene': ('sl', False), 'Spanish': ('es', True), 'Swedish': ('sv', False), 'Telugu': ('te', False), 'Thai': ('th', False), 'Turkish': ('tr', True), 'Ukranian': ('uk', False), 'Vietnamese': ('vi', False)} languages_list = ','.join(languages.keys()) def __createDict(localsDict): ''' Provide the local variables as a dictionary for use in string formatting. ''' metaDict = {} # pylint: disable=W0621 for key in localsDict: if not key.startswith('__'): metaDict[key] = localsDict[key] return metaDict metaDict = __createDict(locals()) taskcoach-1.4.3/taskcoachlib/meta/debug.py000066400000000000000000000056351265347643000205170ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import sys def log_call(traceback_depth): ''' Decorator for function calls that prints the function name, arguments and result to stdout. Usage: @log_call(traceback_depth) def function(arg): ... ''' # Import here instead of at the module level to prevent unnecessary # inclusion of the inspect module when packaging the application: import inspect def outer(func): def inner(*args, **kwargs): result = func(*args, **kwargs) write = sys.stdout.write for frame in inspect.stack(context=2)[traceback_depth:0:-1]: write(format_traceback(frame)) write('%s\n'%signature(func, args, kwargs, result)) write('===\n') return result return inner return outer def time_call(func): ''' Decorator for function calls that times the call. ''' import time def inner(*args, **kwargs): start = time.time() result = func(*args, **kwargs) stop = time.time() sys.stdout.write('%s took %f seconds\n'%\ (signature(func, args, kwargs, result), stop-start)) return result return inner def profile_call(func): ''' Docorator for profiling a specific function. I'm not sure what happens if you decorate a recursive function... ''' import hotshot def inner(*args, **kwargs): profiler = hotshot.Profile('.profile') return profiler.runcall(func, *args, **kwargs) return inner def signature(func, args, kwargs, result): func = func.__name__ result = unicode(result) try: return '%s(%s, %s) -> %s'%(func, unicode(args), unicode(kwargs), result) except: return '%s(...) -> %s'%(func, result) # pylint: disable=W0702 def format_traceback(frame): result = [] filename, lineno, caller, context = frame[1:5] result.append(' File "%s", line %s, in %s'%(filename, lineno, caller)) for line in context: result.append(line[:-1]) return '\n'.join(result) + '\n' taskcoach-1.4.3/taskcoachlib/meta/developermessagechecker.py000066400000000000000000000074211265347643000243030ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import data import threading import urllib2 class DeveloperMessageChecker(threading.Thread): ''' Check for messages from the developers on the website. ''' def __init__(self, settings, urlopen=urllib2.urlopen, call_after=None): self.__settings = settings self.__urlopen = urlopen self.__call_after = call_after or self.__wx_call_after super(DeveloperMessageChecker, self).__init__() def _set_daemon(self): return True # Don't block application exit def run(self, show=True): # pylint: disable=W0221 try: message, url = self.__get_message() except: # pylint: disable=W0702 return # Whatever goes wrong, ignore it. if self.__message_is_new(message): return self.__notify_user(message, url, show) def __message_is_new(self, message): ''' Return whether this message has been displayed before. Note that we only remember the last message displayed, not the complete history of messages. ''' last_message = self.__settings.gettext('view', 'lastdevelopermessage') return message != last_message def __get_message(self): ''' Retrieve and parse the message file. ''' return self.__parse_message_file(self.__retrieve_message_file()) def __notify_user(self, message, url, show=True): ''' Notify the user about the message. ''' # Must use CallAfter because this is a non-GUI thread. return self.__call_after(self.__show_dialog, message, url, show) @staticmethod def __wx_call_after(function, *args, **kwargs): ''' Use this method for calling GUI methods from a non-GUI thread. ''' # Import wx here so it isn't a build dependency. import wx wx.CallAfter(function, *args, **kwargs) def __show_dialog(self, message, url, show=True): ''' Show the message dialog. ''' dialog = self.__create_dialog(message, url) dialog.Show(show) return dialog def __create_dialog(self, message, url): ''' Create the message dialog. ''' import wx from taskcoachlib.gui.dialog import developer_message return developer_message.MessageDialog(wx.GetApp().GetTopWindow(), message=message, url=url, settings=self.__settings) @staticmethod def __parse_message_file(message_file): ''' Return a (message, url) tuple parsed from the message file. Catching parsing exceptions is a caller responsibility. ''' lines = message_file.readlines() lines_without_comments = [line for line in lines if \ not line.startswith('#')] return lines_without_comments[0].strip().split('|') def __retrieve_message_file(self): ''' Retrieve the message file from the website. Catching exceptions is a caller responsibility. ''' return self.__urlopen(data.message_url) taskcoach-1.4.3/taskcoachlib/meta/gpl.py000066400000000000000000002167161265347643000202170ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' licenseHTML = ''' GNU General Public License - GNU Project - Free Software Foundation (FSF)

        GNU GENERAL PUBLIC LICENSE

        Version 3, 29 June 2007

        Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>

        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.

            <one line to give the program's name and a brief idea of what it does.>
            Copyright (C) <year>  <name of author>
        
            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 <http://www.gnu.org/licenses/>.
        

        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:

            <program>  Copyright (C) <year>  <name of author>
        
            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 <http://www.gnu.org/licenses/>.

        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 <http://www.gnu.org/philosophy/why-not-lgpl.html>.

        ''' licenseText=''' 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 . ''' taskcoach-1.4.3/taskcoachlib/meta/versionchecker.py000066400000000000000000000067201265347643000224370ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import data import threading import urllib2 import sys import traceback class VersionChecker(threading.Thread): def __init__(self, settings, verbose=False): self.settings = settings self.verbose = verbose super(VersionChecker, self).__init__() def _set_daemon(self): return True # Don't block application exit def run(self): from taskcoachlib.gui.dialog import version try: latestVersionString = self.getLatestVersion() latestVersion = self.tupleVersion(latestVersionString) lastVersionNotified = self.tupleVersion(self.getLastVersionNotified()) currentVersion = self.tupleVersion(data.version) except: if self.verbose: self.notifyUser(version.NoVersionDialog, message=''.join(traceback.format_exception_only(sys.exc_type, sys.exc_value))) else: if latestVersion < currentVersion and self.verbose: self.notifyUser(version.PrereleaseVersionDialog, latestVersionString) elif latestVersion == currentVersion and self.verbose: self.notifyUser(version.VersionUpToDateDialog, latestVersionString) elif latestVersion > currentVersion and (self.verbose or latestVersion > lastVersionNotified): self.setLastVersionNotified(latestVersionString) self.notifyUser(version.NewVersionDialog, latestVersionString) def getLatestVersion(self): versionText = self.parseVersionFile(self.retrieveVersionFile()) return versionText.strip() def notifyUser(self, dialog, latestVersion='', message=''): # Must use CallAfter because this is a non-GUI thread # Import wx here so it isn't a build dependency import wx wx.CallAfter(self.showDialog, dialog, latestVersion, message) def showDialog(self, VersionDialog, latestVersion, message=''): import wx dialog = VersionDialog(wx.GetApp().GetTopWindow(), version=latestVersion, message=message, settings=self.settings) dialog.Show() return dialog def getLastVersionNotified(self): return self.settings.get('version', 'notified') def setLastVersionNotified(self, lastVersionNotifiedString): self.settings.set('version', 'notified', lastVersionNotifiedString) @staticmethod def parseVersionFile(versionFile): return versionFile.readline() @staticmethod def retrieveVersionFile(): return urllib2.urlopen(data.version_url) @staticmethod def tupleVersion(versionString): return tuple(int(i) for i in versionString.split('.')) taskcoach-1.4.3/taskcoachlib/notify/000077500000000000000000000000001265347643000174305ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/notify/__init__.py000066400000000000000000000020211265347643000215340ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system if operating_system.isWindows(): from notifier_windows import * from notifier_growl import * elif operating_system.isMac(): from notifier_growl import * else: from notifier_libnotify import * from notifier_universal import * from notifier import * taskcoach-1.4.3/taskcoachlib/notify/notifier.py000066400000000000000000000047121265347643000216250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system class AbstractNotifier(object): """ Abstract base class for interfacing with notification systems (Growl, Snarl...). """ notifiers = {} _enabled = True def getName(self): raise NotImplementedError def isAvailable(self): raise NotImplementedError def notify(self, title, summary, bitmap, **kwargs): raise NotImplementedError @classmethod def register(klass, notifier): if notifier.isAvailable(): klass.notifiers[notifier.getName()] = notifier @classmethod def get(klass, name): return klass.notifiers.get(name, None) @classmethod def getSimple(klass): """ Returns a notifier suitable for simple notifications. This defaults to Growl/Snarl/libnotify depending on their availability. """ if klass._enabled: if operating_system.isMac(): return klass.get('Growl') or klass.get('Task Coach') elif operating_system.isWindows(): return klass.get('Snarl') or klass.get('Task Coach') else: return klass.get('libnotify') or klass.get('Task Coach') else: class DummyNotifier(AbstractNotifier): def getName(self): return u'Dummy' def isAvailable(self): return True def notify(self, title, summary, bitmap, **kwargs): pass return DummyNotifier() @classmethod def disableNotifications(klass): klass._enabled = False @classmethod def names(klass): names = klass.notifiers.keys() names.sort() return names taskcoach-1.4.3/taskcoachlib/notify/notifier_growl.py000066400000000000000000000036321265347643000230370ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import struct import sys import tempfile import wx import taskcoachlib.thirdparty.gntp.notifier as Growl from taskcoachlib import meta from notifier import AbstractNotifier class GrowlNotifier(AbstractNotifier): def __init__(self): super(GrowlNotifier, self).__init__() try: # pylint: disable=E1101 self._notifier = Growl.GrowlNotifier(applicationName=meta.name, notifications=[u'Reminder']) self._notifier.register() except: self._available = False # pylint: disable=W0702 else: self._available = True def getName(self): return 'Growl' def isAvailable(self): return self._available def notify(self, title, summary, bitmap, **kwargs): # Not really efficient... fd, filename = tempfile.mkstemp('.png') os.close(fd) try: bitmap.SaveFile(filename, wx.BITMAP_TYPE_PNG) self._notifier.notify(noteType=u'Reminder', icon=file(filename, 'rb').read(), title=title, description=summary, sticky=True) finally: os.remove(filename) AbstractNotifier.register(GrowlNotifier()) taskcoach-1.4.3/taskcoachlib/notify/notifier_knotify.py000066400000000000000000000033231265347643000233650ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from notifier import AbstractNotifier class KNotifyNotifier(AbstractNotifier): def __init__(self): super(KNotifyNotifier, self).__init__() self.__factory = None try: import pcop import pydcop except ImportError: pass else: if pydcop.anyAppCalled('knotify') is not None: self.__factory = pydcop.anyAppCalled def getName(self): return u'KNotify' def isAvailable(self): return self.__factory is not None def notify(self, title, summary, bitmap, **kwargs): # KNotify does not support icons coding = wx.Locale_GetSystemEncodingName() kn = self.__factory('knotify') kn.default.notify('reminder', title.encode(coding), summary.encode(coding), '', '', 16, 0, kwargs.get('windowId', 0)) AbstractNotifier.register(KNotifyNotifier()) taskcoach-1.4.3/taskcoachlib/notify/notifier_libnotify.py000066400000000000000000000034221265347643000237010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import tempfile, wx, os from notifier import AbstractNotifier from taskcoachlib.meta import data class LibnotifyNotifier(AbstractNotifier): def __init__(self): super(LibnotifyNotifier, self).__init__() try: import pynotify except ImportError: self.__notify = None else: self.__notify = pynotify self.__notify.init(data.name) def getName(self): return u'libnotify' def isAvailable(self): return self.__notify is not None def notify(self, title, summary, bitmap, **kwargs): # Libnotify needs a file, like Snarl. fd, filename = tempfile.mkstemp('.png') os.close(fd) bitmap.SaveFile(filename, wx.BITMAP_TYPE_PNG) try: n = self.__notify.Notification(title.encode('UTF-8'), summary.encode('UTF-8'), filename) n.show() finally: os.remove(filename) AbstractNotifier.register(LibnotifyNotifier()) taskcoach-1.4.3/taskcoachlib/notify/notifier_universal.py000066400000000000000000000342001265347643000237100ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from notifier import AbstractNotifier from taskcoachlib import operating_system #============================================================================== # Utils class AnimatedShow(wx.Timer): """ Utility class to show a frame with an animation """ def __init__(self, frame, show=True): super(AnimatedShow, self).__init__() if frame.CanSetTransparent(): self.__frame = frame self.__step = 0 self.__show = show id_ = wx.NewId() self.SetOwner(self, id_) wx.EVT_TIMER(self, id_, self.__OnTick) self.Start(100) wx.EVT_CLOSE(frame, self.__OnClose) frame.SetTransparent(0) if show: frame.Show() else: frame.Show(show) def __OnTick(self, event): # pylint: disable=W0613 self.__step += 1 if self.__show: alpha = int(255.0 * self.__step / 10) else: alpha = int(255.0 * (10 - (self.__step - 1)) / 10) self.__frame.SetTransparent(alpha) if self.__step == 10: self.Stop() if not self.__show: self.__frame.Close() def __OnClose(self, event): self.Stop() event.Skip() class AnimatedMove(wx.Timer): """ Utility class to move a frame with an animation """ def __init__(self, frame, destination): super(AnimatedMove, self).__init__() self.__frame = frame self.__origin = frame.GetPositionTuple() self.__destination = destination self.__step = 0 id_ = wx.NewId() self.SetOwner(self, id_) wx.EVT_TIMER(self, id_, self.__OnTick) self.Start(100) wx.EVT_CLOSE(frame, self.__OnClose) def __OnTick(self, event): # pylint: disable=W0613 x0, y0 = self.__origin x1, y1 = self.__destination self.__step += 1 curX = int(x0 + (x1 - x0) * 1.0 * self.__step / 10) curY = int(y0 + (y1 - y0) * 1.0 * self.__step / 10) self.__frame.SetPosition(wx.Point(curX, curY)) if self.__step == 10: self.Stop() def __OnClose(self, event): self.Stop() event.Skip() #============================================================================== # Notifications if operating_system.isWindows(): class _NotifyBase(wx.MiniFrame): pass elif operating_system.isGTK(): class _NotifyBase(wx.PopupWindow): def __init__(self, parent, id_, title, style=0): # pylint: disable=W0613,E1003 super(_NotifyBase, self).__init__(parent, id_) # No style def Close(self): # pylint: disable=W0221,E1003 # Strange... super(_NotifyBase, self).Close() self.Destroy() else: class _NotifyBase(wx.Frame): """FIXME: steals focus...""" class NotificationFrameBase(_NotifyBase): """ Base class for a notification frame. @ivar title: The notification title @type title: unicode @ivar icon: An optional icon @type icon: NoneType or wx.Bitmap """ def __init__(self, title, icon=None, parent=None): self.title = title self.icon = icon style = self.Style() | (wx.STAY_ON_TOP if parent is None else wx.FRAME_FLOAT_ON_PARENT) super(NotificationFrameBase, self).__init__(parent, wx.ID_ANY, u'', style=style) self.Populate() def Populate(self): panel = wx.Panel(self, wx.ID_ANY) vsz = wx.BoxSizer(wx.VERTICAL) hsz = wx.BoxSizer(wx.HORIZONTAL) if self.icon is not None: hsz.Add(wx.StaticBitmap(panel, wx.ID_ANY, self.icon), 0, wx.ALL|wx.ALIGN_CENTRE, 2) # Seems that font copy-on-write does not work sometimes... font = wx.FontFromNativeInfoString(wx.NORMAL_FONT.GetNativeFontInfoDesc()) font.SetPointSize(8) font.SetWeight(wx.FONTWEIGHT_BOLD) titleCtrl = wx.StaticText(panel, wx.ID_ANY, self.title) titleCtrl.SetFont(font) hsz.Add(titleCtrl, 1, wx.ALL|wx.ALIGN_CENTRE, 2) btn = self.CloseButton(panel) if btn is not None: hsz.Add(btn, 0, wx.ALL, 2) wx.EVT_BUTTON(btn, wx.ID_ANY, self.DoClose) vsz.Add(hsz, 0, wx.ALL|wx.EXPAND, 2) self.AddInnerContent(vsz, panel) panel.SetSizer(vsz) sz = wx.BoxSizer() sz.Add(panel, 1, wx.EXPAND) self.SetSizer(sz) self.Fit() def Unpopulate(self): self.DestroyChildren() self.SetSizer(None) def CloseButton(self, panel): """ Override this to return a button instance if you want to customize the close button. You may also return None but if you do so, please provide another way for the user to dismiss the notification. """ return wx.BitmapButton(panel, wx.ID_ANY, wx.ArtProvider.GetBitmap('cross_red_icon', wx.ART_FRAME_ICON, (16, 16))) def AddInnerContent(self, sizer, panel): """ Use this to customize the content of the frame. @param sizer: A vertical sizer to which you should add your UI elements. @param panel: Your parent panel. """ def Style(self): """Return the frame's style""" style = wx.FRAME_NO_TASKBAR|wx.TAB_TRAVERSAL if operating_system.isMac(): # style |= wx.NO_BORDER|wx.POPUP_WINDOW # XXXFIXME: without the POPUP_WINDOW style, the frame # steals the focus. But with it, when the frame is created # while the user is on another Space that the main # window's, it cannot receive user events any more, so # cannot be dismissed... style |= wx.NO_BORDER return style def DoClose(self, event=None): # pylint: disable=W0613 """Use this method instead of Close. Never use Close directly.""" NotificationCenter().HideFrame(self) # pylint: disable=E1101 class NotificationFrame(NotificationFrameBase): """ A simple (and ugly) notification frame that displays a message. @ivar message: Message to display @type message: unicode """ def __init__(self, message, *args, **kwargs): self.message = message super(NotificationFrame, self).__init__(*args, **kwargs) def AddInnerContent(self, sizer, panel): sizer.Add(wx.StaticText(panel, wx.ID_ANY, self.message), 1, wx.ALL|wx.EXPAND, 5) class _NotificationCenter(wx.EvtHandler): """ The class that handles notification frames. """ framePool = [] def __init__(self): super(_NotificationCenter, self).__init__() self.displayedFrames = [] self.waitingFrames = [] self.notificationWidth = 300 self.notificationMargin = 5 self.__tmr = wx.Timer() id_ = wx.NewId() self.__tmr.SetOwner(self, id_) wx.EVT_TIMER(self, id_, self.__OnTick) self.__tmr.Start(1000) def NotifyFrame(self, frm, timeout=None): """ Present a new notification frame. @param frm: The frame to show @param timeout: Time to display the frame before automatically hiding it; in seconds. """ if frm.GetParent(): dx, dy = frm.GetParent().GetPosition() dw, dh = frm.GetParent().GetSizeTuple() else: dx, dy, dw, dh = self.GetDisplayRect() w, h = frm.GetSizeTuple() w = w if w > self.notificationWidth else self.notificationWidth bottom = dy + dh - self.notificationMargin for otherFrame, height, tmo in self.displayedFrames: bottom -= height + self.notificationMargin if bottom - h < 0: self.waitingFrames.append((frm, timeout)) return if frm.GetParent(): x = min(self.GetDisplayRect()[2] - self.notificationMargin - w, dx + dw + self.notificationMargin) else: x = dx + dw - w - self.notificationMargin frm.SetDimensions(x, bottom - h - self.notificationMargin, w, h) self.displayedFrames.append((frm, h, timeout)) frm.Layout() AnimatedShow(frm) def CheckWaiting(self): waiting = self.waitingFrames self.waitingFrames = [] for frm, tmo in waiting: self.NotifyFrame(frm, timeout=tmo) def Notify(self, title, msg, icon=None, timeout=None): """ Present a new simple notification frame. @param title: Notification title @param msg: Notification message @param timeout: See L{NotifyFrame}. """ frm = NotificationFrame(msg, title, icon=icon) self.NotifyFrame(frm, timeout=timeout) def HideFrame(self, frm): """ Hide a notification frame. """ for idx, (frame, height, tmo) in enumerate(self.displayedFrames): if frame == frm: self.displayedFrames[idx] = (frame, height, 1) break self.CheckWaiting() def HideAll(self): """ Hide all notification frames. Call this when you want to close your main frame, or else the wx loop won't exit. """ for idx, (frame, height, tmo) in enumerate(self.displayedFrames): self.displayedFrames[idx] = (frame, height, 1) for frame, timeout in self.waitingFrames: frame.Close() self.waitingFrames = [] def GetDisplayRect(self): """ Returns the geometry of the main application frame's display """ dpyIndex = wx.Display.GetFromWindow(wx.GetApp().GetTopWindow()) if dpyIndex == wx.NOT_FOUND: return wx.ClientDisplayRect() return wx.Display(dpyIndex).GetClientArea() def __OnTick(self, event): # pylint: disable=W0613 s = 0 newList = [] for frame, height, tmo in self.displayedFrames: if frame.GetParent(): dx, dy = frame.GetParent().GetPosition() dw, dh = frame.GetParent().GetSizeTuple() else: dx, dy, dw, dh = self.GetDisplayRect() bottom = dy + dh - self.notificationMargin if s == 0: if tmo == 1: frame.Close() s = 1 continue newList.append((frame, height, tmo - 1 if tmo is not None else None)) bottom -= height + self.notificationMargin else: if tmo == 1: frame.Close() else: newList.append((frame, height, tmo - 1 if tmo is not None else None)) x, y = frame.GetPositionTuple() AnimatedMove(frame, (x, bottom - height - self.notificationMargin)) bottom -= height + self.notificationMargin self.displayedFrames = newList self.CheckWaiting() class NotificationCenter(object): _instance = None def __new__(self): if NotificationCenter._instance is None: NotificationCenter._instance = _NotificationCenter() return NotificationCenter._instance class UniversalNotifier(AbstractNotifier): def getName(self): return 'Task Coach' def isAvailable(self): return True def notify(self, title, summary, bitmap, **kwargs): NotificationCenter().Notify(title, summary, icon=bitmap) # pylint: disable=E1101 AbstractNotifier.register(UniversalNotifier()) if __name__ == '__main__': class TestNotificationFrame(NotificationFrameBase): def AddInnerContent(self, sizer, panel): choice = wx.Choice(panel, wx.ID_ANY) choice.Append('One') choice.Append('Two') choice.Append('Three') sizer.Add(choice, 0, wx.ALL|wx.EXPAND, 5) hsz = wx.BoxSizer(wx.HORIZONTAL) hsz.Add(wx.Button(panel, wx.ID_ANY, u'OK'), 1, wx.ALL, 2) hsz.Add(wx.Button(panel, wx.ID_ANY, u'Cancel'), 1, wx.ALL, 2) sizer.Add(hsz, 0, wx.EXPAND|wx.ALL, 5) def CloseButton(self, panel): return None class TestFrame(wx.Frame): def __init__(self): super(TestFrame, self).__init__(None, wx.ID_ANY, 'Test frame') # pylint: disable=E1101 NotificationCenter().Notify('Sample title', 'Sample content', timeout=3) NotificationCenter().Notify('Other sample', 'Multi-line sample content\nfor example\nDont try this at home', timeout=3, icon=wx.ArtProvider.GetBitmap('taskcoach', wx.ART_FRAME_ICON, (16, 16))) NotificationCenter().Notify('Before last sample', 'Spam!') NotificationCenter().NotifyFrame(TestNotificationFrame('Test custom', icon=wx.ArtProvider.GetBitmap('taskcoach', wx.ART_FRAME_ICON, (16, 16)))) NotificationCenter().Notify('Last sample', 'Foobar!') wx.EVT_CLOSE(self, self.OnClose) def OnClose(self, evt): NotificationCenter().HideAll() # pylint: disable=E1101 evt.Skip() class App(wx.App): def OnInit(self): from taskcoachlib.gui import artprovider artprovider.init() TestFrame().Show() return True App(0).MainLoop() taskcoach-1.4.3/taskcoachlib/notify/notifier_windows.py000066400000000000000000000027001265347643000233720ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from notifier import AbstractNotifier import tempfile, os, wx from taskcoachlib.thirdparty import snarl class SnarlNotifier(AbstractNotifier): def getName(self): return u'Snarl' def isAvailable(self): try: return bool(snarl.snGetVersion()) except: return False def notify(self, title, summary, bitmap, **kwargs): # Hum. Snarl needs a file. fd, filename = tempfile.mkstemp('.png') os.close(fd) bitmap.SaveFile(filename, wx.BITMAP_TYPE_PNG) try: snarl.snShowMessage(title.encode('UTF-8'), summary.encode('UTF-8'), iconPath=filename) finally: os.remove(filename) AbstractNotifier.register(SnarlNotifier()) taskcoach-1.4.3/taskcoachlib/operating_system.py000066400000000000000000000051511265347643000220700ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, sys, platform # This module is meant to be imported like this: # from taskcoachlib import operating_system # so that the function calls read: # operating_system.isWindows(), operating_system.isMac(), etc. def isMac(): return isPlatform('MAC') def isWindows(): return isPlatform('MSW') def isGTK(): return isPlatform('GTK') def isPlatform(threeLetterPlatformAbbreviation, wxPlatform=wx.Platform): return '__WX%s__'%threeLetterPlatformAbbreviation == wxPlatform def isWindows7_OrNewer(): # pragma: no cover if isWindows(): major, minor = sys.getwindowsversion()[:2] # pylint: disable=E1101 return (major, minor) >= (6, 1) else: return False def _platformVersion(): return tuple(map(int, platform.release().split('.'))) def isMacOsXLion_OrNewer(): # pragma: no cover if isMac(): return _platformVersion() >= (11, 1) else: return False def isMacOsXTiger_OrOlder(): # pragma no cover if isMac(): return _platformVersion() <= (8, 11, 1) # Darwin release number for Tiger else: return False def isMacOsXMountainLion_OrNewer(): # pragma no cover if isMac(): return _platformVersion() >= (12,) else: return False def isMacOsXMavericks_OrNewer(): # pragma no cover if isMac(): return _platformVersion() >= (13,) else: return False def defaultEncodingName(): return wx.Locale.GetSystemEncodingName() or 'utf-8' def decodeSystemString(s): if isinstance(s, unicode): return s encoding = defaultEncodingName() # Python does not define the windows_XXX aliases for every code page... if encoding.startswith('windows-'): encoding = 'cp' + encoding[8:] if not encoding: encoding = 'utf-8' return s.decode(encoding, 'ignore') taskcoach-1.4.3/taskcoachlib/patterns/000077500000000000000000000000001265347643000177605ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/patterns/__init__.py000066400000000000000000000016441265347643000220760ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from singleton import * from observer import * from command import * from composite import (Composite, ObservableComposite, CompositeList, CompositeSet) from metaclass import * taskcoach-1.4.3/taskcoachlib/patterns/command.py000066400000000000000000000044631265347643000217570ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import singleton as patterns class Command(object): def __init__(self, *args, **kwargs): super(Command, self).__init__() # object.__init__ takes no arguments def do(self): CommandHistory().append(self) def undo(self): pass def redo(self): pass def __str__(self): return 'command' class CommandHistory(object): __metaclass__ = patterns.Singleton def __init__(self): self.__history = [] self.__future = [] def append(self, command): self.__history.append(command) del self.__future[:] def undo(self): if self.__history: command = self.__history.pop() command.undo() self.__future.append(command) def redo(self): if self.__future: command = self.__future.pop() command.redo() self.__history.append(command) def clear(self): del self.__history[:] del self.__future[:] def hasHistory(self): return self.__history def getHistory(self): return self.__history def hasFuture(self): return self.__future def getFuture(self): return self.__future def _extendLabel(self, label, commandList): if commandList: commandName = u' %s'%commandList[-1] label += commandName.lower() return label def undostr(self, label='Undo'): return self._extendLabel(label, self.__history) def redostr(self, label='Redo'): return self._extendLabel(label, self.__future) taskcoach-1.4.3/taskcoachlib/patterns/composite.py000077500000000000000000000201161265347643000223370ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import observer import weakref class Composite(object): def __init__(self, children=None, parent=None): super(Composite, self).__init__() self.__parent = parent if parent is None else weakref.ref(parent) self.__children = children or [] for child in self.__children: child.setParent(self) def __getstate__(self): return dict(children=self.__children[:], parent=self.parent()) def __setstate__(self, state): self.__parent = None if state['parent'] is None else weakref.ref(state['parent']) self.__children = state['children'] def __getcopystate__(self): ''' Return the information needed to create a copy as a dict. ''' try: state = super(Composite, self).__getcopystate__() except AttributeError: state = dict() state.update(dict(children=[child.copy() for child in self.__children], parent=self.parent())) return state def parent(self): return None if self.__parent is None else self.__parent() def ancestors(self): ''' Return the parent, and its parent, etc., as a list. ''' parent = self.parent() return parent.ancestors() + [parent] if parent else [] def family(self): ''' Return this object, its ancestors and all of its children (recursively). ''' return self.ancestors() + [self] + self.children(recursive=True) def setParent(self, parent): self.__parent = None if parent is None else weakref.ref(parent) def children(self, recursive=False): # Warning: this must satisfy the same condition as # allItemsSorted() below. if recursive: result = self.__children[:] for child in self.__children: result.extend(child.children(recursive=True)) return result else: return self.__children def siblings(self, recursive=False): parent = self.parent() if parent: result = [child for child in parent.children() if child != self] if recursive: for child in result[:]: result.extend(child.children(recursive=True)) return result else: return [] def copy(self, *args, **kwargs): kwargs['parent'] = self.parent() kwargs['children'] = [child.copy() for child in self.children()] return self.__class__(*args, **kwargs) def newChild(self, *args, **kwargs): kwargs['parent'] = self return self.__class__(*args, **kwargs) def addChild(self, child): self.__children.append(child) child.setParent(self) def removeChild(self, child): self.__children.remove(child) # We don't reset the parent of the child, because that makes restoring # the parent-child relationship easier. class ObservableComposite(Composite): @observer.eventSource def __setstate__(self, state, event=None): # pylint: disable=W0221 oldChildren = set(self.children()) super(ObservableComposite, self).__setstate__(state) newChildren = set(self.children()) childrenRemoved = oldChildren - newChildren # pylint: disable=W0142 if childrenRemoved: self.removeChildEvent(event, *childrenRemoved) childrenAdded = newChildren - oldChildren if childrenAdded: self.addChildEvent(event, *childrenAdded) @observer.eventSource def addChild(self, child, event=None): # pylint: disable=W0221 super(ObservableComposite, self).addChild(child) self.addChildEvent(event, child) def addChildEvent(self, event, *children): event.addSource(self, *children, **dict(type=self.addChildEventType())) @classmethod def addChildEventType(class_): return 'composite(%s).child.add'%class_ @observer.eventSource def removeChild(self, child, event=None): # pylint: disable=W0221 super(ObservableComposite, self).removeChild(child) self.removeChildEvent(event, child) def removeChildEvent(self, event, *children): event.addSource(self, *children, **dict(type=self.removeChildEventType())) @classmethod def removeChildEventType(class_): return 'composite(%s).child.remove'%class_ @classmethod def modificationEventTypes(class_): try: eventTypes = super(ObservableComposite, class_).modificationEventTypes() except AttributeError: eventTypes = [] return eventTypes + [class_.addChildEventType(), class_.removeChildEventType()] class CompositeCollection(object): def __init__(self, initList=None, *args, **kwargs): super(CompositeCollection, self).__init__(*args, **kwargs) self.extend(initList or []) def append(self, composite, event=None): return self.extend([composite], event=event) @observer.eventSource def extend(self, composites, event=None): if not composites: return compositesAndAllChildren = self._compositesAndAllChildren(composites) super(CompositeCollection, self).extend(compositesAndAllChildren, event=event) self._addCompositesToParent(composites, event) def _compositesAndAllChildren(self, composites): compositesAndAllChildren = set(composites) for composite in composites: compositesAndAllChildren |= set(composite.children(recursive=True)) return list(compositesAndAllChildren) def _addCompositesToParent(self, composites, event): for composite in composites: parent = composite.parent() if parent and parent in self and composite not in parent.children(): parent.addChild(composite, event=event) def remove(self, composite, event=None): return self.removeItems([composite], event=event) if composite in self else event @observer.eventSource def removeItems(self, composites, event=None): if not composites: return compositesAndAllChildren = self._compositesAndAllChildren(composites) super(CompositeCollection, self).removeItems(compositesAndAllChildren, event=event) self._removeCompositesFromParent(composites, event) def _removeCompositesFromParent(self, composites, event): for composite in composites: parent = composite.parent() if parent: parent.removeChild(composite, event=event) def rootItems(self): return [composite for composite in self if composite.parent() is None or \ composite.parent() not in self] def allItemsSorted(self): """Returns a list of items and their children, so that if B is a child, direct or not, of A, then A will come first in the list.""" result = [] for item in self.rootItems(): result.append(item) result.extend(item.children(recursive=True)) return result class CompositeSet(CompositeCollection, observer.ObservableSet): pass class CompositeList(CompositeCollection, observer.ObservableList): pass taskcoach-1.4.3/taskcoachlib/patterns/metaclass.py000066400000000000000000000035401265347643000223100ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # Module for metaclasses that are not widely recognized patterns. import weakref class NumberedInstances(type): ''' A metaclass that numbers class instances. Use by defining the metaclass of a class NumberedInstances, e.g.: class Numbered: __metaclass__ = NumberedInstances Each instance of class Numbered will have an attribute instanceNumber that is unique. ''' count = dict() def __call__(cls, *args, **kwargs): if cls not in NumberedInstances.count: NumberedInstances.count[cls] = weakref.WeakKeyDictionary() instanceNumber = NumberedInstances.lowestUnusedNumber(cls) kwargs['instanceNumber'] = instanceNumber instance = super(NumberedInstances, cls).__call__(*args, **kwargs) NumberedInstances.count[cls][instance] = instanceNumber return instance def lowestUnusedNumber(cls): usedNumbers = sorted(NumberedInstances.count[cls].values()) for index, usedNumber in enumerate(usedNumbers): if usedNumber != index: return index return len(usedNumbers) taskcoach-1.4.3/taskcoachlib/patterns/observer.py000066400000000000000000000536131265347643000221710ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import singleton import functools from taskcoachlib.thirdparty.pubsub import pub # Ignore these pylint messages: # - W0142: * or ** magic # - W0622: Redefining builtin types # pylint: disable=W0142,W0622 class List(list): def __eq__(self, other): ''' Subclasses of List are always considered to be unequal, even when their contents are the same. This is because List subclasses are used as Collections of domain objects. When compared to other types, the contents are compared. ''' if isinstance(other, List): return self is other else: return list(self) == other def removeItems(self, items): ''' List.removeItems is the opposite of list.extend. Useful for ObservableList to be able to generate just one notification when removing multiple items. ''' for item in items: # No super() to prevent overridden remove method from being invoked list.remove(self, item) class Set(set): ''' The builtin set type does not like keyword arguments, so to keep it happy we don't pass these on. ''' def __new__(class_, iterable=None, *args, **kwargs): return set.__new__(class_, iterable) def __cmp__(self, other): # If set.__cmp__ is called we get a TypeError in Python 2.5, so # call set.__eq__ instead if self == other: return 0 else: return -1 class Event(object): ''' Event represents notification events. Events can notify about a single event type for a single source or for multiple event types and multiple sources at the same time. The Event methods try to make both uses easy. This creates an event for one type, one source and one value >>> event = Event('event type', 'event source', 'new value') To add more event sources with their own value: >>> event.addSource('another source', 'another value') To add a source with a different event type: >>> event.addSource('yet another source', 'its value', type='another type') ''' def __init__(self, type=None, source=None, *values): self.__sourcesAndValuesByType = {} if type is None else \ {type: {} if source is None else {source: values}} def __repr__(self): # pragma: no cover return 'Event(%s)'%(self.__sourcesAndValuesByType) def __eq__(self, other): ''' Events compare equal when all their data is equal. ''' return self.sourcesAndValuesByType() == other.sourcesAndValuesByType() def addSource(self, source, *values, **kwargs): ''' Add a source with optional values to the event. Optionally specify the type as keyword argument. If no type is specified, the source and values are added for a random type, i.e. only omit the type if the event has only one type. ''' eventType = kwargs.pop('type', self.type()) currentValues = set(self.__sourcesAndValuesByType.setdefault(eventType, {}).setdefault(source, tuple())) currentValues |= set(values) self.__sourcesAndValuesByType.setdefault(eventType, {})[source] = tuple(currentValues) def type(self): ''' Return the event type. If there are multiple event types, this method returns an arbitrary event type. This method is useful if the caller is sure this event instance has exactly one event type. ''' return list(self.types())[0] if self.types() else None def types(self): ''' Return the set of event types that this event is notifying. ''' return set(self.__sourcesAndValuesByType.keys()) def sources(self, *types): ''' Return the set of all sources of this event instance, or the sources for specific event types. ''' types = types or self.types() sources = set() for type in types: sources |= set(self.__sourcesAndValuesByType.get(type, dict()).keys()) return sources def sourcesAndValuesByType(self): ''' Return all data {type: {source: values}}. ''' return self.__sourcesAndValuesByType def value(self, source=None, type=None): ''' Return the value that belongs to source. If there are multiple values, this method returns only the first one. So this method is useful if the caller is sure there is only one value associated with source. If source is None return the value of an arbitrary source. This latter option is useful if the caller is sure there is only one source. ''' return self.values(source, type)[0] def values(self, source=None, type=None): ''' Return the values that belong to source. If source is None return the values of an arbitrary source. This latter option is useful if the caller is sure there is only one source. ''' type = type or self.type() source = source or self.__sourcesAndValuesByType[type].keys()[0] return self.__sourcesAndValuesByType.get(type, {}).get(source, []) def subEvent(self, *typesAndSources): ''' Create a new event that contains a subset of the data of this event. ''' subEvent = self.__class__() for type, source in typesAndSources: sourcesToAdd = self.sources(type) if source is not None: # Make sure source is actually in self.sources(type): sourcesToAdd &= set([source]) kwargs = dict(type=type) # Python doesn't allow type=type after *values for eachSource in sourcesToAdd: subEvent.addSource(eachSource, *self.values(eachSource, type), **kwargs) # pylint: disable=W0142 return subEvent def send(self): ''' Send this event to observers of the type(s) of this event. ''' Publisher().notifyObservers(self) def eventSource(f): ''' Decorate methods that send events with code to optionally create the event and optionally send it. This allows for sending just one event for chains of multiple methods that each need to send an event. ''' @functools.wraps(f) def decorator(*args, **kwargs): event = kwargs.pop('event', None) notify = event is None # We only notify if we're the event creator kwargs['event'] = event = event if event else Event() result = f(*args, **kwargs) if notify: event.send() return result return decorator class MethodProxy(object): ''' Wrap methods in a class that allows for comparing methods. Comparison if instance methods was changed in python 2.5. In python 2.5, instance methods are equal when their instances compare equal, which is not the behaviour we need for callbacks. So we wrap callbacks in this class to get back the old (correct, imho) behaviour. ''' def __init__(self, method): self.method = method def __repr__(self): return 'MethodProxy(%s)'%self.method # pragma: no cover def __call__(self, *args, **kwargs): return self.method(*args, **kwargs) def __eq__(self, other): return self.method.im_class is other.method.im_class and \ self.method.im_self is other.method.im_self and \ self.method.im_func is other.method.im_func def __ne__(self, other): return not (self == other) def __hash__(self): # Can't use self.method.im_self for the hash, it might be mutable return hash((self.method.im_class, id(self.method.im_self), self.method.im_func)) def get_im_self(self): return self.method.im_self im_self = property(get_im_self) def wrapObserver(decoratedMethod): ''' Wrap the observer argument (assumed to be the first after self) in a MethodProxy class. ''' def decorator(self, observer, *args, **kwargs): assert hasattr(observer, 'im_self') observer = MethodProxy(observer) return decoratedMethod(self, observer, *args, **kwargs) return decorator def unwrapObservers(decoratedMethod): ''' Unwrap the returned observers from their MethodProxy class. ''' def decorator(*args, **kwargs): observers = decoratedMethod(*args, **kwargs) return [proxy.method for proxy in observers] return decorator class Publisher(object): ''' Publisher is used to register for event notifications. It supports the publisher/subscribe pattern, also known as the observer pattern. Objects (Observers) interested in change notifications register a callback method via Publisher.registerObserver. The callback should expect one argument; an instance of the Event class. Observers can register their interest in specific event types (topics), and optionally specific event sources, when registering. Implementation note: - Publisher is a Singleton class since all observables and all observers have to use exactly one registry to be sure that all observables can reach all observers. ''' __metaclass__ = singleton.Singleton def __init__(self, *args, **kwargs): super(Publisher, self).__init__(*args, **kwargs) self.clear() def clear(self): ''' Clear the registry of observers. Mainly for testing purposes. ''' # observers = {(eventType, eventSource): set(callbacks)} self.__observers = {} # pylint: disable=W0201 @wrapObserver def registerObserver(self, observer, eventType, eventSource=None): ''' Register an observer for an event type. The observer is a callback method that should expect one argument, an instance of Event. The eventType can be anything hashable, typically a string. When passing a specific eventSource, the observer is only called when the event originates from the specified eventSource. ''' observers = self.__observers.setdefault((eventType, eventSource), set()) observers.add(observer) @wrapObserver def removeObserver(self, observer, eventType=None, eventSource=None): ''' Remove an observer. If no event type is specified, the observer is removed for all event types. If an event type is specified the observer is removed for that event type only. If no event source is specified, the observer is removed for all event sources. If an event source is specified, the observer is removed for that event source only. If both an event type and an event source are specified, the observer is removed for the combination of that specific event type and event source only. ''' # pylint: disable=W0613 # First, create a match function that will select the combination of # event source and event type we're looking for: if eventType and eventSource: def match(type, source): return type == eventType and source == eventSource elif eventType: def match(type, source): return type == eventType elif eventSource: def match(type, source): return source == eventSource else: def match(type, source): return True # Next, remove observers that are registered for the event source and # event type we're looking for, i.e. that match: matchingKeys = [key for key in self.__observers if match(*key)] for key in matchingKeys: self.__observers[key].discard(observer) if not self.__observers[key]: del self.__observers[key] def notifyObservers(self, event): ''' Notify observers of the event. The event type and sources are extracted from the event. ''' if not event.sources(): return # Collect observers *and* the types and sources they are registered for observers = dict() # {observer: set([(type, source), ...])} types = event.types() # Include observers not registered for a specific event source: sources = event.sources() | set([None]) eventTypesAndSources = [(type, source) for source in sources for type in types] for eventTypeAndSource in eventTypesAndSources: for observer in self.__observers.get(eventTypeAndSource, set()): observers.setdefault(observer, set()).add(eventTypeAndSource) for observer, eventTypesAndSources in observers.iteritems(): subEvent = event.subEvent(*eventTypesAndSources) if subEvent.types(): observer(subEvent) @unwrapObservers def observers(self, eventType=None): ''' Get the currently registered observers. Optionally specify a specific event type to get observers for that event type only. ''' if eventType: return self.__observers.get((eventType, None), set()) else: result = set() for observers in self.__observers.values(): result |= observers return result class Observer(object): def __init__(self, *args, **kwargs): self.__observers = set() super(Observer, self).__init__(*args, **kwargs) def registerObserver(self, observer, *args, **kwargs): self.__observers.add(observer) Publisher().registerObserver(observer, *args, **kwargs) def removeObserver(self, observer, *args, **kwargs): self.__observers.discard(observer) Publisher().removeObserver(observer, *args, **kwargs) def removeInstance(self): for observer in self.__observers.copy(): self.removeObserver(observer) pub.unsubAll(listenerFilter=lambda listener: hasattr(listener.getCallable(), 'im_self') and \ listener.getCallable().im_self is self) class Decorator(Observer): def __init__(self, observable, *args, **kwargs): self.__observable = observable super(Decorator, self).__init__(*args, **kwargs) def observable(self, recursive=False): if recursive: try: return self.__observable.observable(recursive=True) except AttributeError: pass return self.__observable def __getattr__(self, attribute): return getattr(self.observable(), attribute) class ObservableCollection(object): def __hash__(self): ''' Make ObservableCollections suitable as keys in dictionaries. ''' return hash(id(self)) def detach(self): ''' Break cycles ''' @classmethod def addItemEventType(class_): ''' The event type used to notify observers that one or more items have been added to the collection. ''' return '%s.add'%class_ @classmethod def removeItemEventType(class_): ''' The event type used to notify observers that one or more items have been removed from the collection. ''' return '%s.remove'%class_ @classmethod def modificationEventTypes(class_): try: eventTypes = super(ObservableCollection, class_).modificationEventTypes() except AttributeError: eventTypes = [] return eventTypes + [class_.addItemEventType(), class_.removeItemEventType()] class ObservableSet(ObservableCollection, Set): def __eq__(self, other): if isinstance(other, self.__class__): result = self is other else: result = list(self) == other return result @eventSource def append(self, item, event=None): self.add(item) event.addSource(self, item, type=self.addItemEventType()) @eventSource def extend(self, items, event=None): if not items: return self.update(items) event.addSource(self, *items, **dict(type=self.addItemEventType())) @eventSource def remove(self, item, event=None): super(ObservableSet, self).remove(item) event.addSource(self, item, type=self.removeItemEventType()) @eventSource def removeItems(self, items, event=None): if not items: return self.difference_update(items) event.addSource(self, *items, **dict(type=self.removeItemEventType())) @eventSource def clear(self, event=None): if not self: return items = tuple(self) super(ObservableSet, self).clear() event.addSource(self, *items, **dict(type=self.removeItemEventType())) class ObservableList(ObservableCollection, List): ''' ObservableList is a list that notifies observers when items are added to or removed from the list. ''' @eventSource def append(self, item, event=None): super(ObservableList, self).append(item) event.addSource(self, item, type=self.addItemEventType()) @eventSource def extend(self, items, event=None): if not items: return super(ObservableList, self).extend(items) event.addSource(self, *items, **dict(type=self.addItemEventType())) @eventSource def remove(self, item, event=None): super(ObservableList, self).remove(item) event.addSource(self, item, type=self.removeItemEventType()) @eventSource def removeItems(self, items, event=None): # pylint: disable=W0221 if not items: return super(ObservableList, self).removeItems(items) event.addSource(self, *items, **dict(type=self.removeItemEventType())) @eventSource def clear(self, event=None): if not self: return items = tuple(self) del self[:] event.addSource(self, *items, **dict(type=self.removeItemEventType())) class CollectionDecorator(Decorator, ObservableCollection): ''' CollectionDecorator observes an ObservableCollection and is an ObservableCollection itself too. Its purpose is to decorate another collection and add some behaviour, such as sorting or filtering. Users of this class shouldn't see a difference between using the original collection or a decorated version. ''' def __init__(self, observedCollection, *args, **kwargs): super(CollectionDecorator, self).__init__(observedCollection, *args, **kwargs) self.__freezeCount = 0 observable = self.observable() self.registerObserver(self.onAddItem, eventType=observable.addItemEventType(), eventSource=observable) self.registerObserver(self.onRemoveItem, eventType=observable.removeItemEventType(), eventSource=observable) self.extendSelf(observable) def __repr__(self): # pragma: no cover return '%s(%s)'%(self.__class__, super(CollectionDecorator, self).__repr__()) def freeze(self): if isinstance(self.observable(), CollectionDecorator): self.observable().freeze() self.__freezeCount += 1 def thaw(self): self.__freezeCount -= 1 if isinstance(self.observable(), CollectionDecorator): self.observable().thaw() def isFrozen(self): return self.__freezeCount != 0 def detach(self): self.removeObserver(self.onAddItem) self.removeObserver(self.onRemoveItem) self.observable().detach() super(CollectionDecorator, self).detach() def onAddItem(self, event): ''' The default behaviour is to simply add the items that are added to the original collection to this collection too. Extend to add behaviour. ''' self.extendSelf(event.values()) def onRemoveItem(self, event): ''' The default behaviour is to simply remove the items that are removed from the original collection from this collection too. Extend to add behaviour. ''' self.removeItemsFromSelf(event.values()) def extendSelf(self, items, event=None): ''' Provide a method to extend this collection without delegating to the observed collection. ''' return super(CollectionDecorator, self).extend(items, event=event) def removeItemsFromSelf(self, items, event=None): ''' Provide a method to remove items from this collection without delegating to the observed collection. ''' return super(CollectionDecorator, self).removeItems(items, event=event) # Delegate changes to the observed collection def append(self, *args, **kwargs): return self.observable().append(*args, **kwargs) def extend(self, *args, **kwargs): return self.observable().extend(*args, **kwargs) def remove(self, *args, **kwargs): return self.observable().remove(*args, **kwargs) def removeItems(self, *args, **kwargs): return self.observable().removeItems(*args, **kwargs) class ListDecorator(CollectionDecorator, ObservableList): pass class SetDecorator(CollectionDecorator, ObservableSet): pass taskcoach-1.4.3/taskcoachlib/patterns/singleton.py000066400000000000000000000030001265347643000223250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' class Singleton(type): ''' Singleton metaclass. Use by defining the metaclass of a class Singleton, e.g.: class ThereCanBeOnlyOne: __metaclass__ = Singleton ''' def __call__(class_, *args, **kwargs): if not class_.hasInstance(): # pylint: disable=W0201 class_.instance = super(Singleton, class_).__call__(*args, **kwargs) return class_.instance def deleteInstance(class_): ''' Delete the (only) instance. This method is mainly for unittests so they can start with a clean slate. ''' if class_.hasInstance(): del class_.instance def hasInstance(class_): ''' Has the (only) instance been created already? ''' return 'instance' in class_.__dict__ taskcoach-1.4.3/taskcoachlib/persistence/000077500000000000000000000000001265347643000204445ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/persistence/__init__.py000066400000000000000000000031551265347643000225610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # This is the persistence package. It contains classes for reading and # writing domain objects in different formats such as XML, HTML, iCalendar, ... from xml.writer import XMLWriter, TemplateXMLWriter, ChangesXMLWriter from xml.reader import XMLReader, TemplateXMLReader, ChangesXMLReader from xml.templates import getDefaultTemplates from html.writer import HTMLWriter from html.generator import viewer2html from csv.generator import viewer2csv from csv.writer import CSVWriter from csv.reader import CSVReader from todotxt import TodoTxtReader, TodoTxtWriter from icalendar.writer import iCalendarWriter from icalendar.ical import VCalendarParser from taskfile import TaskFile, LockedTaskFile from autosaver import AutoSaver from autoimporterexporter import AutoImporterExporter from autobackup import AutoBackup, BackupManifest from sessiontempfile import get_temp_file from templatelist import TemplateList taskcoach-1.4.3/taskcoachlib/persistence/autobackup.py000066400000000000000000000217171265347643000231640ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from __future__ import absolute_import # For xml... import os, shutil, glob, math, re from taskcoachlib.domain import date from taskcoachlib.thirdparty.pubsub import pub import bz2, hashlib # Hack: indirect from xml.etree import ElementTree as ET def SHA(filename): return hashlib.sha1(filename.encode('UTF-8')).hexdigest() def compressFile(srcName, dstName): with file(srcName, 'rb') as src: dst = bz2.BZ2File(dstName, 'w') try: shutil.copyfileobj(src, dst) finally: dst.close() class BackupManifest(object): def __init__(self, settings): self.__settings = settings xmlName = os.path.join(settings.pathToBackupsDir(), 'backups.xml') if os.path.exists(xmlName): with file(xmlName, 'rb') as fp: root = ET.parse(fp).getroot() self.__files = dict([(node.attrib['sha'], node.text) for node in root.findall('file')]) else: self.__files = dict() def save(self): root = ET.Element('backupfiles') for sha, filename in self.__files.items(): node = ET.SubElement(root, 'file') node.attrib['sha'] = sha node.text = filename with file(os.path.join(self.__settings.pathToBackupsDir(), 'backups.xml'), 'wb') as fp: ET.ElementTree(root).write(fp) def listFiles(self): return sorted(self.__files.values()) def listBackups(self, filename): backups = list() for name in os.listdir(self.backupPath(filename)): try: comp = map(int, [name[0:4], name[4:6], name[6:8], name[8:10], name[10:12], name[12:14]]) except: continue backups.append(date.DateTime(*tuple(comp))) return list(reversed(sorted(backups))) def hasBackups(self, filename): return len(self.listBackups(filename)) != 0 def backupPath(self, filename): path = os.path.join(self.__settings.pathToBackupsDir(), SHA(filename)) if not os.path.exists(path): os.makedirs(path) return path def addFile(self, filename): self.__files[SHA(filename)] = filename def removeFile(self, filename): sha = SHA(filename) if sha in self.__files: del self.__files[sha] def restoreFile(self, filename, dateTime, dstName): if os.path.exists(dstName): os.remove(dstName) sha = SHA(filename) src = bz2.BZ2File(os.path.join(self.__settings.pathToBackupsDir(), sha, dateTime.strftime('%Y%m%d%H%M%S.bak')), 'r') try: with file(dstName, 'wb') as dst: shutil.copyfileobj(src, dst) finally: src.close() class AutoBackup(object): ''' AutoBackup creates a backup copy of the task file before it is overwritten. To prevent the number of backups growing indefinitely, AutoBackup removes older backups. ''' minNrOfBackupFiles = 3 # Keep at least three backup files. maxNrOfBackupFilesToRemoveAtOnce = 3 # Slowly reduce the number of backups def __init__(self, settings, copyfile=compressFile): super(AutoBackup, self).__init__() self.__settings = settings self.__copyfile = copyfile pub.subscribe(self.onTaskFileAboutToSave, 'taskfile.aboutToSave') pub.subscribe(self.onTaskFileRead, 'taskfile.justRead') def onTaskFileRead(self, taskFile): ''' Copies old-style backups (in the same dictory as the task file) to the user-specific backup directory. The backup directory layout is as follows: /backups.xml List of backups //.bak Backup for . is the SHA-1 hash of the task file name. backups.xml maps the SHA to actual file names, for enumeration in the GUI. ''' if not taskFile.filename(): return # First add the file to the XML manifest. man = BackupManifest(self.__settings) man.addFile(taskFile.filename()) man.save() # Then copy existing backups rx = re.compile(r'\.(\d{8})-(\d{6})\.tsk\.bak$') for name in os.listdir(os.path.split(taskFile.filename())[0] or '.'): try: srcName = os.path.join(os.path.split(taskFile.filename())[0], name) except UnicodeDecodeError: # See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764763 continue mt = rx.search(name) if mt: dstName = os.path.join(man.backupPath(taskFile.filename()), '%s%s.bak' % (mt.group(1), mt.group(2))) if os.path.exists(dstName): os.remove(dstName) with file(srcName, 'rb') as src: dst = bz2.BZ2File(dstName, 'w') try: shutil.copyfileobj(src, dst) finally: dst.close() os.remove(srcName) def onTaskFileAboutToSave(self, taskFile): ''' Just before a task file is about to be saved, and backups are on, create a backup and remove extraneous backup files. ''' if taskFile.exists(): self.createBackup(taskFile) self.removeExtraneousBackupFiles(taskFile) def createBackup(self, taskFile): filename = self.backupFilename(taskFile) path = os.path.dirname(filename) if not os.path.exists(path): os.makedirs(path) self.__copyfile(taskFile.filename(), filename) def removeExtraneousBackupFiles(self, taskFile, remove=os.remove, glob=glob.glob): # pylint: disable=W0621 backupFiles = self.backupFiles(taskFile, glob) for _ in range(min(self.maxNrOfBackupFilesToRemoveAtOnce, self.numberOfExtraneousBackupFiles(backupFiles))): try: remove(self.leastUniqueBackupFile(backupFiles)) except OSError: pass # Ignore errors def numberOfExtraneousBackupFiles(self, backupFiles): return max(0, len(backupFiles) - self.maxNrOfBackupFiles(backupFiles)) def maxNrOfBackupFiles(self, backupFiles): ''' The maximum number of backup files we keep depends on the age of the oldest backup file. The older the oldest backup file (that is never removed), the more backup files we keep. ''' if not backupFiles: return 0 age = date.DateTime.now() - self.backupDateTime(backupFiles[0]) ageInMinutes = age.hours() * 60 # We keep log(ageInMinutes) backups, but at least minNrOfBackupFiles: return max(self.minNrOfBackupFiles, int(math.log(max(1, ageInMinutes)))) def leastUniqueBackupFile(self, backupFiles): ''' Find the backupFile that is closest (in time) to its neighbors, i.e. that is the least unique. Ignore the oldest and newest backups. ''' assert len(backupFiles) > self.minNrOfBackupFiles deltas = [] for index in range(1, len(backupFiles)-1): delta = self.backupDateTime(backupFiles[index+1]) - \ self.backupDateTime(backupFiles[index-1]) deltas.append((delta, backupFiles[index])) deltas.sort() return deltas[0][1] def backupFiles(self, taskFile, glob=glob.glob): # pylint: disable=W0621 sha = SHA(taskFile.filename()) root = os.path.join(self.__settings.pathToBackupsDir(), sha) return sorted(glob('%s.bak' % os.path.join(root, '[0-9]' * 14))) def backupFilename(self, taskFile, now=date.DateTime.now): ''' Generate a backup filename for the specified date/time. ''' sha = SHA(taskFile.filename()) return os.path.join(self.__settings.pathToBackupsDir(), sha, now().strftime('%Y%m%d%H%M%S.bak')) @staticmethod def backupDateTime(backupFilename): ''' Parse the date and time from the filename and return a DateTime instance. ''' dt = os.path.split(backupFilename)[-1][:-4] parts = (int(part) for part in (dt[0:4], dt[4:6], dt[6:8], dt[8:10], dt[10:12], dt[12:14])) return date.DateTime(*parts) # pylint: disable=W0142 taskcoach-1.4.3/taskcoachlib/persistence/autoimporterexporter.py000066400000000000000000000056071265347643000253510ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import codecs, os from taskcoachlib.thirdparty.pubsub import pub import todotxt class AutoImporterExporter(object): ''' AutoImporterExporter observes task files. If a task file is saved, either by the user or automatically (when autosave is on) and auto import and/or export is on, AutoImporterExporter imports and/or exports the task file. ''' def __init__(self, settings): super(AutoImporterExporter, self).__init__() self.__settings = settings pub.subscribe(self.onTaskFileAboutToBeSaved, 'taskfile.aboutToSave') pub.subscribe(self.onTaskFileJustRead, 'taskfile.justRead') def onTaskFileJustRead(self, taskFile): ''' After a task file has been read and if auto import is on, import it. ''' self.importFiles(taskFile) def onTaskFileAboutToBeSaved(self, taskFile): ''' When a task file is about to be saved and auto import and/or export is on, import and/or export it. ''' self.importFiles(taskFile) self.exportFiles(taskFile) def importFiles(self, taskFile): importFormats = self.__settings.getlist('file', 'autoimport') for importFormat in importFormats: if importFormat == 'Todo.txt': self.importTodoTxt(taskFile) def exportFiles(self, taskFile): exportFormats = self.__settings.getlist('file', 'autoexport') for exportFormat in exportFormats: if exportFormat == 'Todo.txt': self.exportTodoTxt(taskFile) @classmethod def importTodoTxt(cls, taskFile): filename = cls.todoTxtFilename(taskFile) if os.path.exists(filename): todotxt.TodoTxtReader(taskFile.tasks(), taskFile.categories()).read(filename) @classmethod def exportTodoTxt(cls, taskFile): filename = cls.todoTxtFilename(taskFile) with codecs.open(filename, 'w', 'utf-8') as todoFile: todotxt.TodoTxtWriter(todoFile, filename).writeTasks(taskFile.tasks()) @staticmethod def todoTxtFilename(taskFile): return taskFile.filename()[:-len('tsk')] + 'txt' taskcoach-1.4.3/taskcoachlib/persistence/autosaver.py000066400000000000000000000044471265347643000230400ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.thirdparty.pubsub import pub import wx class AutoSaver(object): ''' AutoSaver observes task files. If a task file is changed by the user (gets 'dirty') and auto save is on, AutoSaver saves the task file. ''' def __init__(self, settings, *args, **kwargs): super(AutoSaver, self).__init__(*args, **kwargs) self.__settings = settings self.__task_files = set() self.__bound = False pub.subscribe(self.onTaskFileDirty, 'taskfile.dirty') def onTaskFileDirty(self, taskFile): ''' When a task file gets dirty and auto save is on, note it so it can be saved during idle time. ''' if self._needSave(taskFile): self.__task_files.add(taskFile) if not self.__bound: self.__bound = True wx.GetApp().Bind(wx.EVT_IDLE, self.on_idle) def _needSave(self, task_file): ''' Return whether the task file needs to be saved. ''' return task_file.filename() and task_file.needSave() and \ self.__settings.getboolean('file', 'autosave') def _needLoad(self, taskFile): return taskFile.changedOnDisk() and \ self.__settings.getboolean('file', 'autoload') def on_idle(self, event): ''' Actually save the dirty files during idle time. ''' event.Skip() wx.GetApp().Unbind(wx.EVT_IDLE, handler=self.on_idle) self.__bound = False while self.__task_files: task_file = self.__task_files.pop() if self._needSave(task_file): task_file.save() taskcoach-1.4.3/taskcoachlib/persistence/csv/000077500000000000000000000000001265347643000212375ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/persistence/csv/__init__.py000077500000000000000000000016641265347643000233620ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # This is the csv package. This package contains classes to generate # comma separated values (cvs) format for exporting Task Coach data to csv # files. from generator import viewer2csv from writer import CSVWriter taskcoach-1.4.3/taskcoachlib/persistence/csv/generator.py000077500000000000000000000117641265347643000236130ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.i18n import _ from taskcoachlib import render from taskcoachlib.domain import date import StringIO def extendedWithAncestors(selection): extendedSelection = selection[:] for item in selection: for ancestor in item.ancestors(): if ancestor not in extendedSelection: extendedSelection.append(ancestor) return extendedSelection class RowBuilder(object): dateAndTimeColumnHeaders = dict(actualStartDateTime=[_('Actual start date'), _('Actual start time')], plannedStartDateTime=[_('Planned start date'), _('Planned start time')], dueDateTime=[_('Due date'), _('Due time')], completionDateTime=[_('Completion date'), _('Completion time')], reminder=[_('Reminder date'), _('Reminder time')], creationDateTime=[_('Creation date'), _('Creation time')], period=[_('Period start date'), _('Period start time'), _('Period end date'), _('Period end time')]) def __init__(self, columns, isTree, separateDateAndTimeColumns): self.__columns = columns self.__separateDateAndTimeColumns = separateDateAndTimeColumns if isTree: self.indent = lambda item: ' ' * len(item.ancestors()) else: self.indent = lambda item: '' def headerRow(self): headers = [] for column in self.__columns: if self.shouldSplitDateAndTime(column): headers.extend(self.dateAndTimeColumnHeaders[column.name()]) else: headers.append(column.header()) return headers def itemRow(self, item): row = [] for column in self.__columns: if self.shouldSplitDateAndTime(column): row.extend(self.splitDateAndTime(column, item)) elif column.name() == 'notes': def renderNotes(notes, indent=0): bf = StringIO.StringIO() spaces = ' ' * indent for note in sorted(notes, key=lambda note: note.subject()): bf.write('%s%s\n%s%s\n' % (spaces, note.subject(), spaces, note.description())) bf.write(renderNotes(note.children(), indent + 1)) return bf.getvalue() row.append(renderNotes(item.notes())) elif column.name() == 'attachments': row.append(u'\n'.join(sorted([attachment.subject() for attachment in item.attachments()]))) else: row.append(column.render(item, humanReadable=False)) row[0] = self.indent(item) + row[0] return row def shouldSplitDateAndTime(self, column): return self.__separateDateAndTimeColumns and column.name() in self.dateAndTimeColumnHeaders def splitDateAndTime(self, column, item): if column.name() == 'period': return self.__splitDateAndTime(item.getStart()) + self.__splitDateAndTime(item.getStop()) return self.__splitDateAndTime(getattr(item, column.name())()) def __splitDateAndTime(self, dateTime): if dateTime == date.DateTime() or dateTime is None: return '', '' return render.date(dateTime), render.time(dateTime) def itemRows(self, items): return [self.itemRow(item) for item in items] def rows(self, items): return [self.headerRow()] + self.itemRows(items) def viewer2csv(viewer, selectionOnly=False, separateDateAndTimeColumns=False, columns=None): ''' Convert the items displayed by a viewer into a list of rows, where each row consists of a list of values. If the viewer is in tree mode, indent the first value (typically the subject of the item) to indicate the depth of the item in the tree. ''' isTree = viewer.isTreeViewer() columns = columns or viewer.visibleColumns() rowBuilder = RowBuilder(columns, isTree, separateDateAndTimeColumns) items = viewer.visibleItems() if selectionOnly: items = [item for item in items if viewer.isselected(item)] if isTree: items = extendedWithAncestors(items) return rowBuilder.rows(items) taskcoach-1.4.3/taskcoachlib/persistence/csv/reader.py000066400000000000000000000212471265347643000230610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain.category import Category from taskcoachlib.domain.date import DateTime, TimeDelta from taskcoachlib.domain.task import Task from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.dateutil import parser as dparser import csv import tempfile import StringIO import re import math class CSVReader(object): def __init__(self, taskList, categoryList): self.taskList = taskList self.categoryList = categoryList def createReader(self, fp, dialect, hasHeaders): reader = csv.reader(fp, dialect=dialect) if hasHeaders: reader.next() return reader def read(self, **kwargs): fp = tempfile.TemporaryFile() fp.write(file(kwargs['filename'], 'rU').read().decode(kwargs['encoding']).encode('UTF-8')) fp.seek(0) rx1 = re.compile(r'^(\d+):(\d+)$') rx2 = re.compile(r'^(\d+):(\d+):(\d+)$') reader = self.createReader(fp, kwargs['dialect'], kwargs['hasHeaders']) dayfirst = kwargs['dayfirst'] tasksById = dict() tasks = [] for index, line in enumerate(reader): if kwargs['importSelectedRowsOnly'] and index not in kwargs['selectedRows']: continue subject = _('No subject') id_ = None description = StringIO.StringIO() categories = [] priority = 0 actualStartDateTime = None plannedStartDateTime = None dueDateTime = None completionDateTime = None reminderDateTime = None budget = TimeDelta() fixedFee = 0.0 hourlyFee = 0.0 percentComplete = 0 for idx, fieldValue in enumerate(line): if kwargs['mappings'][idx] == _('ID'): id_ = fieldValue.decode('UTF-8') elif kwargs['mappings'][idx] == _('Subject'): subject = fieldValue.decode('UTF-8') elif kwargs['mappings'][idx] == _('Description'): description.write(fieldValue.decode('UTF-8')) description.write(u'\n') elif kwargs['mappings'][idx] == _('Category') and fieldValue: name = fieldValue.decode('UTF-8') if name.startswith('(') and name.endswith(')'): continue # Skip categories of subitems cat = self.categoryList.findCategoryByName(name) if not cat: cat = self.createCategory(name) categories.append(cat) elif kwargs['mappings'][idx] == _('Priority'): try: priority = int(fieldValue) except ValueError: pass elif kwargs['mappings'][idx] == _('Actual start date'): actualStartDateTime = self.parseDateTime(fieldValue, dayfirst=dayfirst) elif kwargs['mappings'][idx] == _('Planned start date'): plannedStartDateTime = self.parseDateTime(fieldValue, dayfirst=dayfirst) elif kwargs['mappings'][idx] == _('Due date'): dueDateTime = self.parseDateTime(fieldValue, 23, 59, 59, dayfirst=dayfirst) elif kwargs['mappings'][idx] == _('Completion date'): completionDateTime = self.parseDateTime(fieldValue, 12, 0, 0, dayfirst=dayfirst) elif kwargs['mappings'][idx] == _('Reminder date'): reminderDateTime = self.parseDateTime(fieldValue, dayfirst=dayfirst) elif kwargs['mappings'][idx] == _('Budget'): try: value = float(fieldValue) hours = int(math.floor(value)) minutes = int(60 * (value - hours)) budget = TimeDelta(hours=hours, minutes=minutes, seconds=0) except ValueError: mt = rx1.search(fieldValue) if mt: budget = TimeDelta(hours=int(mt.group(1)), minutes=int(mt.group(2)), seconds=0) else: mt = rx2.search(fieldValue) if mt: budget = TimeDelta(hours=int(mt.group(1)), minutes=int(mt.group(2)), seconds=int(mt.group(3))) elif kwargs['mappings'][idx] == _('Fixed fee'): try: fixedFee = float(fieldValue) except ValueError: pass elif kwargs['mappings'][idx] == _('Hourly fee'): try: hourlyFee = float(fieldValue) except ValueError: pass elif kwargs['mappings'][idx] == _('Percent complete'): try: percentComplete = max(0, min(100, int(fieldValue))) except ValueError: pass task = Task(subject=subject, description=description.getvalue(), priority=priority, actualStartDateTime=actualStartDateTime, plannedStartDateTime=plannedStartDateTime, dueDateTime=dueDateTime, completionDateTime=completionDateTime, reminder=reminderDateTime, budget=budget, fixedFee=fixedFee, hourlyFee=hourlyFee, percentageComplete=percentComplete) if id_ is not None: tasksById[id_] = task for category in categories: category.addCategorizable(task) task.addCategory(category) tasks.append(task) # OmniFocus uses the task's ID to keep track of hierarchy: 1 => 1.1 and 1.2, etc... if tasksById: ids = [] for id_, task in tasksById.items(): try: ids.append(tuple(map(int, id_.split('.')))) except ValueError: self.taskList.append(task) ids.sort() ids.reverse() for id_ in ids: sid = '.'.join(map(str, id_)) if len(id_) >= 2: pid = '.'.join(map(str, id_[:-1])) if pid in tasksById: tasksById[pid].addChild(tasksById[sid]) else: self.taskList.append(tasksById[sid]) else: self.taskList.extend(tasks) def createCategory(self, name): if ' -> ' in name: parentName, childName = name.rsplit(' -> ', 1) parent = self.categoryList.findCategoryByName(parentName) if not parent: parent = self.createCategory(parentName) newCategory = Category(subject=childName) parent.addChild(newCategory) newCategory.setParent(parent) else: newCategory = Category(subject=name) self.categoryList.append(newCategory) return newCategory def parseDateTime(self, fieldValue, defaultHour=0, defaultMinute=0, defaultSecond=0, dayfirst=False): if not fieldValue: return None try: dateTime = dparser.parse(fieldValue.decode('UTF-8'), dayfirst=dayfirst, fuzzy=True).replace(tzinfo=None) hour, minute, second = dateTime.hour, dateTime.minute, dateTime.second if 0 == hour == minute == second: hour = defaultHour minute = defaultMinute second = defaultSecond return DateTime(dateTime.year, dateTime.month, dateTime.day, hour, minute, second) except: # pylint: disable=W0702 return None taskcoach-1.4.3/taskcoachlib/persistence/csv/writer.py000077500000000000000000000037131265347643000231340ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import generator, csv, cStringIO class UnicodeCSVWriter: ''' A CSV writer that writes rows to a CSV file encoded in utf-8. Based on http://docs.python.org/lib/csv-examples.html. ''' def __init__(self, fd, *args, **kwargs): # Redirect output to a queue self.queue = cStringIO.StringIO() self.writer = csv.writer(self.queue, *args, **kwargs) self.fd = fd def writerow(self, row): self.writer.writerow([cell.encode('utf-8') for cell in row]) # Fetch UTF-8 output from the queue data = self.queue.getvalue() data = data.decode('utf-8') self.fd.write(data) self.queue.truncate(0) def writerows(self, rows): for row in rows: self.writerow(row) class CSVWriter(object): def __init__(self, fd, filename=None): self.__fd = fd def write(self, viewer, settings, selectionOnly=False, separateDateAndTimeColumns=False, columns=None): # pylint: disable=W0613 csvRows = generator.viewer2csv(viewer, selectionOnly, separateDateAndTimeColumns, columns) UnicodeCSVWriter(self.__fd).writerows(csvRows) return len(csvRows) - 1 # Don't count header row taskcoach-1.4.3/taskcoachlib/persistence/html/000077500000000000000000000000001265347643000214105ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/persistence/html/__init__.py000066400000000000000000000016471265347643000235310ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # This is the html package. This package contains classes to generate # html for printing and for exporting Task Coach data to html files. from generator import viewer2html from writer import HTMLWriter taskcoach-1.4.3/taskcoachlib/persistence/html/generator.py000066400000000000000000000321761265347643000237610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, cgi, StringIO from taskcoachlib.domain import task # pylint: disable=W0142 css = ''' body { color: #333; background-color: white; font: 11px verdana, arial, helvetica, sans-serif; } /* Styles for the title and table caption */ h1, caption { text-align: center; font-size: 18px; font-weight: 900; color: #778; } /* Styles for the whole table */ #table { border-collapse: collapse; border: 2px solid #ebedff; margin: 10px; padding: 0; } /* Styles for the header row */ .header { font: bold 12px/14px verdana, arial, helvetica, sans-serif; color: #07a; background-color: #ebedff; } /* Mark the column that is sorted on */ #sorted { text-decoration: underline; } /* Styles for a specific column */ .subject { font-weight: bold; } /* Styles for regular table cells */ td { padding: 5px; border: 2px solid #ebedff; } /* Styles for table header cells */ th { padding: 5px; border: 2px solid #ebedff; } ''' def viewer2html(viewer, settings, cssFilename=None, selectionOnly=False, columns=None): converter = Viewer2HTMLConverter(viewer, settings) columns = columns or viewer.visibleColumns() return converter(cssFilename, columns, selectionOnly) class Viewer2HTMLConverter(object): ''' Class to convert the visible contents of a viewer into HTML.''' docType = '' metaTag = '' cssLink = '' def __init__(self, viewer, settings): super(Viewer2HTMLConverter, self).__init__() self.viewer = viewer self.settings = settings self.count = 0 def __call__(self, cssFilename, columns, selectionOnly): ''' Create an HTML document. ''' lines = [self.docType] + self.html(cssFilename, columns, selectionOnly) + [''] return '\n'.join(lines), self.count def html(self, cssFilename, columns, selectionOnly, level=0): ''' Returns all HTML, consisting of header and body. ''' printing = not cssFilename htmlContent = self.htmlHeader(cssFilename, level+1) + \ self.htmlBody(columns, selectionOnly, printing, level+1) return self.wrap(htmlContent, 'html', level) def htmlHeader(self, cssFilename, level): ''' Return the HTML header . ''' htmlHeaderContent = self.htmlHeaderContent(cssFilename, level+1) return self.wrap(htmlHeaderContent, 'head', level) def htmlHeaderContent(self, cssFilename, level): ''' Returns the HTML header section, containing meta tag, title, and optional link to a CSS stylesheet. ''' htmlHeaderContent = [self.indent(self.metaTag, level), self.wrap(self.viewer.title(), 'title', level, oneLine=True)] + \ self.style(level, not cssFilename) if cssFilename: htmlHeaderContent.append(self.indent(self.cssLink%cssFilename, level)) return htmlHeaderContent def style(self, level, includeAllCSS): ''' Add a style section that contains the alignment for the columns. If there is no external CSS file, we include all CSS style information in a HTML style section. ''' visibleColumns = self.viewer.visibleColumns() columnAlignments = [{wx.LIST_FORMAT_LEFT: 'left', wx.LIST_FORMAT_CENTRE: 'center', wx.LIST_FORMAT_RIGHT: 'right'}[column.alignment()] for column in visibleColumns] styleContent = [] for column, alignment in zip(visibleColumns, columnAlignments): columnStyle = self.indent('.%s {text-align: %s}'%(column.name(), alignment), level+1) styleContent.append(columnStyle) if self.viewer.isShowingTasks(): for status in task.Task.possibleStatuses(): statusColor = task.Task.fgColorForStatus(status) statusColor = self.cssColorSyntax(statusColor) statusStyle = '.%s {color: %s}'%(status, statusColor) styleContent.append(self.indent(statusStyle, level+1)) if includeAllCSS: styleContent.extend([self.indent(line, level+1) for line in css.split('\n')]) return self.wrap(styleContent, 'style', level, type='text/css') def htmlBody(self, columns, selectionOnly, printing, level): ''' Returns the HTML body section, containing one table with all visible data. ''' htmlBodyContent = [] if printing: htmlBodyContent.append(self.wrap(self.viewer.title(), 'h1', level, oneLine=True)) htmlBodyContent.extend(self.table(columns, selectionOnly, printing, level+1)) return self.wrap(htmlBodyContent, 'body', level) def table(self, columns, selectionOnly, printing, level): ''' Returns the table, consisting of caption, table header and table body. ''' tableContent = [] if printing else [self.tableCaption(level+1)] tableContent.extend(self.tableHeader(columns, printing, level+1) + \ self.tableBody(columns, selectionOnly, printing, level+1)) attributes = dict(id='table') if printing: attributes['border'] = '1' return self.wrap(tableContent, 'table', level, **attributes) def tableCaption(self, level): ''' Returns the table caption, based on the viewer title. ''' return self.wrap(self.viewer.title(), 'caption', level, oneLine=True) def tableHeader(self, columns, printing, level): ''' Returns the table header section containing the header row with the column headers. ''' tableHeaderContent = self.headerRow(columns, printing, level+1) return self.wrap(tableHeaderContent, 'thead', level) def headerRow(self, columns, printing, level): ''' Returns the header row for the table. ''' headerRowContent = [] for column in columns: headerRowContent.append(self.headerCell(column, printing, level+1)) return self.wrap(headerRowContent, 'tr', level, **{'class': 'header'}) def headerCell(self, column, printing, level): ''' Returns a table header for the specific column. ''' header = column.header() or ' ' name = column.name() attributes = {'scope': 'col', 'class': name} if self.viewer.isSortable() and self.viewer.isSortedBy(name): attributes['id'] = 'sorted' if printing: header = self.wrap(header, 'u', level+1, oneLine=True) return self.wrap(header, 'th', level, oneLine=True, **attributes) def tableBody(self, columns, selectionOnly, printing, level): ''' Returns the table body . ''' tree = self.viewer.isTreeViewer() self.count = 0 tableBodyContent = [] for item in self.viewer.visibleItems(): if selectionOnly and not self.viewer.isselected(item): continue self.count += 1 tableBodyContent.extend(self.bodyRow(item, columns, tree, printing, level+1)) return self.wrap(tableBodyContent, 'tbody', level) def bodyRow(self, item, columns, tree, printing, level): ''' Returns a containing the values of item for the visibleColumns. ''' bodyRowContent = [] attributes = dict() for column in columns: renderedItem = self.render(item, column, indent=not bodyRowContent and tree) if printing: itemColor = item.foregroundColor(recursive=True) if itemColor: itemColor = self.cssColorSyntax(itemColor) renderedItem = self.wrap(renderedItem, 'font', level+1, color=itemColor, oneLine=True) bodyRowContent.append(self.bodyCell(renderedItem, column, printing, level+1)) attributes.update(self.bodyRowBgColor(item, printing)) if not printing: attributes.update(self.bodyRowFgColor(item)) return self.wrap(bodyRowContent, 'tr', level, **attributes) def bodyRowBgColor(self, item, printing): ''' Determine the background color for the item. Returns a CSS style specification or a HTML style specification when printing. ''' bgColor = item.backgroundColor(recursive=True) if bgColor and bgColor != wx.WHITE: bgColor = self.cssColorSyntax(bgColor) else: return dict() return dict(bgcolor=bgColor) if printing else \ dict(style='background: %s'%bgColor) def bodyRowFgColor(self, item): ''' Determine the foreground color for the item. Returns a CSS style specification. ''' if self.viewer.isShowingTasks(): return {'class': item.status().statusString} else: return dict() def bodyCell(self, item, column, printing, level): ''' Return a for the item/column combination. ''' attributes = {'class': column.name()} if printing and column.alignment() == wx.LIST_FORMAT_RIGHT: attributes['align'] = 'right' return self.wrap(item, 'td', level, oneLine=True, **attributes) @classmethod def wrap(class_, lines, tagName, level, oneLine=False, **attributes): ''' Wrap one or more lines with and . ''' if attributes: attributes = ' ' + ' '.join(sorted('%s="%s"'%(key, value) for key, value in attributes.iteritems())) else: attributes = '' openTag = '<%s%s>'%(tagName, attributes) closeTag = ''%tagName if oneLine: return class_.indent(openTag + lines + closeTag, level) else: return [class_.indent(openTag, level)] + \ lines + \ [class_.indent(closeTag, level)] @staticmethod def indent(htmlText, level=0): ''' Indent the htmlText with spaces according to the level, so that the resulting HTML looks nicely indented. ''' return ' ' * level + htmlText @classmethod def cssColorSyntax(class_, wxColor): ''' Translate the wx-color, either a wx.Colour instance or a tuple, into CSS syntax. ''' try: return wxColor.GetAsString(wx.C2S_HTML_SYNTAX) except AttributeError: # color is a tuple return class_.cssColorSyntax(wx.Colour(*wxColor)) @staticmethod def render(item, column, indent=False): ''' Render the item based on the column, escape HTML and indent the item with non-breaking spaces, if indent == True. ''' # Escape the rendered item and then replace newlines with
        . if column.name() == 'notes': def renderNotes(notes): bf = StringIO.StringIO() for note in sorted(notes, key=lambda note: note.subject()): bf.write('

        \n') bf.write(cgi.escape(note.subject())) bf.write(u'
        \n') bf.write(cgi.escape(note.description())) bf.write('

        \n') if note.children(): bf.write(u'
        \n') bf.write(renderNotes(note.children())) bf.write(u'
        \n') return bf.getvalue() return renderNotes(item.notes()) elif column.name() == 'attachments': return u'
        '.join(map(cgi.escape, sorted([attachment.subject() for attachment in item.attachments()]))) renderedItem = cgi.escape(column.render(item, humanReadable=False)).replace('\n', '
        ') if indent: # Indent the subject with whitespace renderedItem = ' ' * len(item.ancestors()) * 3 + renderedItem if not renderedItem: # Make sure the empty cell is drawn renderedItem = ' ' return renderedItem taskcoach-1.4.3/taskcoachlib/persistence/html/writer.py000066400000000000000000000045601265347643000233030ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import generator, os from taskcoachlib import meta css = '''/* CSS file generated by %(name)s %(version)s for: %%s. You can edit this file, it will not be overwritten by %(name)s. */ '''%meta.data.metaDict + generator.css + ''' /* Other possibilities to tune the layout include: Change the styles for a header of a specific column, in this case the subject column. Note how this style overrides the default style in the HTML file: th.subject { text-align: center; } If the exported HTML file contains tasks it is possible to change the color of completed (or overdue, duesoon, late, inactive, active) tasks like this: .completed { color: red; } */ ''' class HTMLWriter(object): def __init__(self, fd, filename=None): self.__fd = fd self.__filename = filename self.__cssFilename = os.path.splitext(filename)[0] + '.css' if filename else '' def write(self, viewer, settings, selectionOnly=False, separateCSS=False, columns=None): cssFilename = os.path.basename(self.__cssFilename) if separateCSS else '' htmlText, count = generator.viewer2html(viewer, settings, cssFilename, selectionOnly, columns) self.__fd.write(htmlText) if separateCSS: self._writeCSS() return count def _writeCSS(self, open=open): # pylint: disable=W0622 if not self.__cssFilename or os.path.exists(self.__cssFilename): return try: fd = open(self.__cssFilename, 'wb') fd.write(css%self.__filename) fd.close() except IOError: pass taskcoach-1.4.3/taskcoachlib/persistence/icalendar/000077500000000000000000000000001265347643000223665ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/persistence/icalendar/__init__.py000066400000000000000000000014671265347643000245070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # iCalendar/vCalendar format (2.0) persistence. # See http://www.ietf.org/rfc/rfc2445.txt. taskcoach-1.4.3/taskcoachlib/persistence/icalendar/ical.py000066400000000000000000000351341265347643000236560ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' ''' This module defines classes and functions to handle the VCalendar format. ''' # pylint: disable=W0105 from taskcoachlib.domain.base import Object from taskcoachlib.domain import date from taskcoachlib.i18n import _ import time, calendar, datetime #{ Utility functions def parseDateTime(fulldate): ''' Parses a datetime as seen in iCalendar files into a L{taskcoachlib.domain.date.DateTime} object. ''' try: dt, tm = fulldate.split('T') year, month, day = int(dt[:4]), int(dt[4:6]), int(dt[6:8]) hour, minute, second = int(tm[:2]), int(tm[2:4]), int(tm[4:6]) if fulldate.endswith('Z'): # GMT. Convert this to local time. localTime = time.localtime(calendar.timegm((year, month, day, hour, minute, second, 0, 0, -1))) year, month, day, hour, minute, second = localTime[:6] except Exception, e: raise ValueError('Malformed date: %s (%s)' % (fulldate, str(e))) return date.DateTime(year, month, day, hour, minute, second) def fmtDateTime(dt): ''' Formats a L{taskcoachlib.domain.date.DateTime} object to a string suitable for inclusion in an iCalendar file. ''' dt = dt.utcfromtimestamp(time.mktime(dt.timetuple())) return '%04d%02d%02dT%02d%02d%02dZ' % (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) def quoteString(s): ''' The 'quoted-printable' codec doesn't encode \n, but tries to fold lines with \n instead of CRLF and generally does strange things that ScheduleWorld does not understand (me neither, to an extent). Same thing with \r. This function works around this. ''' s = s.encode('UTF-8').encode('quoted-printable') s = s.replace('=\r', '') s = s.replace('=\n', '') s = s.replace('\r', '=0D') s = s.replace('\n', '=0A') return s #} #{ Parsing iCalendar files class VCalendarParser(object): ''' Base parser class for iCalendar files. This uses the State pattern (in its Python incarnation, replacing the class of an object at runtime) in order to parse different objects in the VCALENDAR. Other states are - VTodoParser: parses VTODO objects. @ivar kwargs: While parsing, the keyword arguments for the domain object creation for the current (parsed) object. @ivar tasks: A list of dictionaries suitable to use as keyword arguments for task creation, representing all VTODO object in the parsed file. ''' # pylint: disable=W0511 def __init__(self, *args, **kwargs): super(VCalendarParser, self).__init__(*args, **kwargs) self.stateMap = { 'VCALENDAR': VCalendarParser, 'VTODO': VTodoParser, 'VNOTE': VNoteParser } self.tasks = [] self.notes = [] self.init() def init(self): ''' Called after a state change. ''' self.kwargs = {} # pylint: disable=W0201 def setState(self, state): ''' Sets the state (class) of the parser object. ''' self.__class__ = state self.init() def parse(self, lines): ''' Actually parses the file. @param lines: A list of lines. ''' # TODO: avoid using indexes here, just iterate. This way the # method can accept a file object as argument. currentLine = lines[0] for line in lines[1:]: if line.startswith(' ') or line.startswith('\t'): currentLine += line[1:] else: if self.handleLine(currentLine): return currentLine = line self.handleLine(currentLine) def handleLine(self, line): ''' Called by L{parse} for each line to parse. L{parse} is supposed to have handled the unfolding. ''' if line.startswith('BEGIN:'): try: self.setState(self.stateMap[line[6:]]) except KeyError: raise TypeError, 'Unrecognized vcal type: %s' % line[6:] elif line.startswith('END:'): if line[4:] == 'VCALENDAR': return True else: self.onFinish() self.setState(VCalendarParser) else: try: idx = line.index(':') except ValueError: raise RuntimeError, 'Malformed vcal line: %s' % line details, value = line[:idx].split(';'), line[idx + 1:] name, specs = details[0], details[1:] specs = dict([tuple(v.split('=')) for v in specs]) if specs.has_key('ENCODING'): value = value.decode(specs['ENCODING'].lower()) if specs.has_key('CHARSET'): value = value.decode(specs['CHARSET'].lower()) else: # Some servers only specify CHARSET when there are # non-ASCII characters :) # More, Horde encodes in UTF-8 without specifying the charset. value = value.decode('UTF-8') # If an item name ends with 'TMPL', it's part of the # template system and has to be eval()ed. if name.endswith('TMPL'): name = name[:-4] context = dict() context.update(datetime.__dict__) context.update(date.__dict__) context['_'] = _ value = eval(value, context) if isinstance(value, datetime.datetime): value = fmtDateTime(value) self.acceptItem(name, value) return False def onFinish(self): ''' This method is called when the current object ends. ''' raise NotImplementedError def acceptItem(self, name, value): ''' Called on each new 'item', i.e. key/value pair. Default behaviour is to store the pair in the 'kwargs' instance variable (which is emptied in L{init}). ''' if name in ('CREATED', 'DCREATED'): self.kwargs['creationDateTime'] = parseDateTime(value) elif name == 'LAST-MODIFIED': self.kwargs['modificationDateTime'] = parseDateTime(value) elif name == 'SUMMARY': self.kwargs['subject'] = value elif name == 'CATEGORIES': # Horde escapes the comma, even though it's an actual separator. # I didn't found any way to include an actual comma in a Horde # "tag". self.kwargs['categories'] = map(lambda x: x.rstrip('\\').lstrip(), value.split(',')) elif name == 'DESCRIPTION': self.kwargs['description'] = value.replace('\\n', '\n') else: self.kwargs[name.lower()] = value class VTodoParser(VCalendarParser): ''' This is the state responsible for parsing VTODO objects. ''' # pylint: disable=W0511 def onFinish(self): if not self.kwargs.has_key('plannedStartDateTime'): # This means no planned start date, but the task constructor will # take today by default, so force. self.kwargs['plannedStartDateTime'] = date.DateTime() if self.kwargs.has_key('vcardStatus'): if self.kwargs['vcardStatus'] == 'COMPLETED' and \ not self.kwargs.has_key('completionDateTime'): # Some servers only give the status, and not the date (SW) if self.kwargs.has_key('last-modified'): self.kwargs['completionDateTime'] = parseDateTime(self.kwargs['last-modified']) else: self.kwargs['completionDateTime'] = date.Now() self.kwargs['status'] = Object.STATUS_NONE self.tasks.append(self.kwargs) def acceptItem(self, name, value): if name == 'DTSTART': self.kwargs['plannedStartDateTime'] = parseDateTime(value) elif name == 'DUE': self.kwargs['dueDateTime'] = parseDateTime(value) elif name == 'COMPLETED': self.kwargs['completionDateTime'] = parseDateTime(value) elif name == 'PERCENT-COMPLETE': self.kwargs['percentageComplete'] = int(value) elif name == 'UID': self.kwargs['id'] = value.decode('UTF-8') elif name == 'PRIORITY': # Okay. Seems that in vcal, the priority ranges from 1 to # 3, but what it means depends on the other client... self.kwargs['priority'] = int(value) - 1 elif name == 'STATUS': self.kwargs['vcardStatus'] = value else: super(VTodoParser, self).acceptItem(name, value) class VNoteParser(VCalendarParser): '''Parse VNote objects.''' def onFinish(self): # Summary is not mandatory. if not self.kwargs.has_key('subject'): if 'description' in self.kwargs: self.kwargs['subject'] = self.kwargs['description'].split('\n')[0] else: self.kwargs['subject'] = '' self.kwargs['status'] = Object.STATUS_NONE self.notes.append(self.kwargs) def acceptItem(self, name, value): if name == 'X-IRMC-LUID': self.kwargs['id'] = value.decode('UTF-8') elif name == 'BODY': self.kwargs['description'] = value.replace('\\n', '\n') elif name == 'CLASS': pass else: super(VNoteParser, self).acceptItem(name, value) #} #============================================================================== #{ Generating iCalendar files. def VCalFromTask(task, encoding=True, doFold=True): ''' This function returns a string representing the task in iCalendar format. ''' encoding = ';ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8' if encoding else '' quote = quoteString if encoding else lambda s: s components = [] components.append('BEGIN:VTODO') # pylint: disable=W0511 components.append('UID:%s' % task.id().encode('UTF-8')) if task.creationDateTime() > date.DateTime.min: components.append('CREATED:%s' % fmtDateTime(task.creationDateTime())) if task.modificationDateTime() > date.DateTime.min: components.append('LAST-MODIFIED:%s' % fmtDateTime(task.modificationDateTime())) if task.plannedStartDateTime() != date.DateTime(): components.append('DTSTART:%s' % fmtDateTime(task.plannedStartDateTime())) if task.dueDateTime() != date.DateTime(): components.append('DUE:%s' % fmtDateTime(task.dueDateTime())) if task.completionDateTime() != date.DateTime(): components.append('COMPLETED:%s' % fmtDateTime(task.completionDateTime())) if task.categories(recursive=True, upwards=True): categories = ','.join([quote(unicode(c)) for c in task.categories(recursive=True, upwards=True)]) components.append('CATEGORIES%s:%s' % (encoding, categories)) if task.completed(): components.append('STATUS:COMPLETED') elif task.active(): components.append('STATUS:NEEDS-ACTION') else: components.append('STATUS:CANCELLED') # Hum... components.append('DESCRIPTION%s:%s' % (encoding, quote(task.description()))) components.append('PRIORITY:%d' % min(3, task.priority() + 1)) components.append('PERCENT-COMPLETE:%d' % task.percentageComplete()) components.append('SUMMARY%s:%s' % (encoding, quote(task.subject()))) components.append('END:VTODO') # pylint: disable=W0511 if doFold: return fold(components) return '\r\n'.join(components) + '\r\n' def VCalFromEffort(effort, encoding=True, doFold=True): encoding = ';ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8' if encoding else '' quote = quoteString if encoding else lambda s: s components = [] components.append('BEGIN:VEVENT') components.append('UID:%s' % effort.id().encode('UTF-8')) components.append('SUMMARY%s:%s'%(encoding, quote(effort.subject()))) components.append('DESCRIPTION%s:%s'%(encoding, quote(effort.description()))) components.append('DTSTART:%s'%fmtDateTime(effort.getStart())) if effort.getStop(): components.append('DTEND:%s'%fmtDateTime(effort.getStop())) components.append('END:VEVENT') if doFold: return fold(components) return '\r\n'.join(components) + '\r\n' def VNoteFromNote(note, encoding=True, doFold=True): encoding = ';ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8' if encoding else '' quote = quoteString if encoding else lambda s: s components = [] components.append('BEGIN:VNOTE') components.append('X-IRMC-LUID: %s' % note.id().encode('UTF-8')) components.append('SUMMARY%s: %s' % (encoding, quote(note.subject()))) components.append('BODY%s:%s' % (encoding, quote(note.description()))) components.append('END:VNOTE') if note.categories(recursive=True, upwards=True): categories = ','.join([quote(unicode(c)) for c in note.categories(recursive=True, upwards=True)]) components.append('CATEGORIES%s:%s'%(encoding, categories)) if doFold: return fold(components) return '\r\n'.join(components) + '\r\n' #} def fold(components, linewidth=75, eol='\r\n', indent=' '): lines = [] # The iCalendar standard doesn't clearly state whether the maximum line # width includes the indentation or not. We keep on the safe side: indentedlinewidth = linewidth - len(indent) for component in components: componentLines = component.split('\n') firstLine = componentLines[0] firstLine, remainderFirstLine = firstLine[:linewidth], firstLine[linewidth:] lines.append(firstLine) while remainderFirstLine: nextLine, remainderFirstLine = remainderFirstLine[:indentedlinewidth], remainderFirstLine[indentedlinewidth:] lines.append(indent + nextLine) for line in componentLines[1:]: nextLine, remainder = line[:linewidth], line[linewidth:] lines.append(indent + nextLine) while remainder: nextLine, remainder = remainder[:indentedlinewidth], remainder[indentedlinewidth:] lines.append(indent + nextLine) return eol.join(lines) + eol if lines else '' taskcoach-1.4.3/taskcoachlib/persistence/icalendar/writer.py000066400000000000000000000045231265347643000242600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.persistence.icalendar import ical from taskcoachlib.domain import task from taskcoachlib import meta def extendedWithAncestors(selection): extendedSelection = selection[:] for item in selection: for ancestor in item.ancestors(): if ancestor not in extendedSelection: extendedSelection.append(ancestor) return extendedSelection class iCalendarWriter(object): def __init__(self, fd, filename=None): self.__fd = fd def write(self, viewer, settings, selectionOnly=False): # pylint: disable=W0613 items = viewer.visibleItems() if selectionOnly: selection = viewer.curselection() if viewer.isTreeViewer(): selection = extendedWithAncestors(selection) items = [item for item in items if item in selection] return self.writeItems(items) def writeItems(self, items): self.__fd.write('BEGIN:VCALENDAR\r\n') self._writeMetaData() count = 0 for item in items: transform = ical.VCalFromTask if isinstance(item, task.Task) else ical.VCalFromEffort self.__fd.write(transform(item, encoding=False)) count += 1 self.__fd.write('END:VCALENDAR\r\n') return count def _writeMetaData(self): self.__fd.write('VERSION:2.0\r\n') domain = meta.url[len('http://'):].strip('/') self.__fd.write('PRODID:-//%s//NONSGML %s V%s//EN\r\n'%(domain, meta.name, meta.version)) taskcoach-1.4.3/taskcoachlib/persistence/sessiontempfile.py000066400000000000000000000031571265347643000242350ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, stat, atexit, tempfile from taskcoachlib import patterns class TempFiles(object): __metaclass__ = patterns.Singleton def __init__(self): self.__tempFiles = [] atexit.register(self.cleanup) def register(self, filename): self.__tempFiles.append(filename) def cleanup(self): for name in self.__tempFiles: try: if os.name == 'nt': os.chmod(name, stat.S_IREAD|stat.S_IWRITE) os.remove(name) except: pass # pylint: disable=W0702 def get_temp_file(**kwargs): ''' Return the name of a temporary file. This file will be registered for deletion at process termination. ''' fd, filename = tempfile.mkstemp(**kwargs) os.close(fd) TempFiles().register(filename) return filename taskcoach-1.4.3/taskcoachlib/persistence/taskfile.py000066400000000000000000000626441265347643000226340ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import xml from taskcoachlib import patterns, operating_system from taskcoachlib.domain import base, task, category, note, effort, attachment from taskcoachlib.syncml.config import createDefaultSyncConfig from taskcoachlib.thirdparty.guid import generate from taskcoachlib.thirdparty import lockfile from taskcoachlib.changes import ChangeMonitor, ChangeSynchronizer from taskcoachlib.filesystem import FilesystemNotifier, FilesystemPollerNotifier from taskcoachlib.thirdparty.pubsub import pub def _isCloud(path): path = os.path.abspath(path) while True: for name in ['.dropbox.cache', '.csync_journal.db']: if os.path.exists(os.path.join(path, name)): return True path, name = os.path.split(path) if name == '': return False class TaskCoachFilesystemNotifier(FilesystemNotifier): def __init__(self, taskFile): self.__taskFile = taskFile super(TaskCoachFilesystemNotifier, self).__init__() def onFileChanged(self): self.__taskFile.onFileChanged() class TaskCoachFilesystemPollerNotifier(FilesystemPollerNotifier): def __init__(self, taskFile): self.__taskFile = taskFile super(TaskCoachFilesystemPollerNotifier, self).__init__() def onFileChanged(self): self.__taskFile.onFileChanged() class SafeWriteFile(object): def __init__(self, filename): self.__filename = filename if self._isCloud(): # Ideally we should create a temporary file on the same filesystem (so that # os.rename works) but outside the Dropbox folder... self.__fd = file(self.__filename, 'w') else: self.__tempFilename = self._getTemporaryFileName(os.path.dirname(filename)) self.__fd = file(self.__tempFilename, 'w') def write(self, bf): self.__fd.write(bf) def close(self): self.__fd.close() if not self._isCloud(): if os.path.exists(self.__filename): os.remove(self.__filename) if self.__filename is not None: if os.path.exists(self.__filename): # WTF ? self.__moveFileOutOfTheWay(self.__filename) os.rename(self.__tempFilename, self.__filename) def __moveFileOutOfTheWay(self, filename): index = 1 while True: name, ext = os.path.splitext(filename) newName = '%s (%d)%s' % (name, index, ext) if not os.path.exists(newName): os.rename(filename, newName) break index += 1 def _getTemporaryFileName(self, path): """All functions/classes in the standard library that can generate a temporary file, visible on the file system, without deleting it when closed are deprecated (there is tempfile.NamedTemporaryFile but its 'delete' argument is new in Python 2.6). This is not secure, not thread-safe, but it works.""" idx = 0 while True: name = os.path.join(path, 'tmp-%d' % idx) if not os.path.exists(name): return name idx += 1 def _isCloud(self): return _isCloud(os.path.dirname(self.__filename)) class TaskFile(patterns.Observer): def __init__(self, *args, **kwargs): self.__filename = self.__lastFilename = '' self.__needSave = self.__loading = False self.__tasks = task.TaskList() self.__categories = category.CategoryList() self.__notes = note.NoteContainer() self.__efforts = effort.EffortList(self.tasks()) self.__guid = generate() self.__syncMLConfig = createDefaultSyncConfig(self.__guid) self.__monitor = ChangeMonitor() self.__changes = dict() self.__changes[self.__monitor.guid()] = self.__monitor self.__changedOnDisk = False if kwargs.pop('poll', True): self.__notifier = TaskCoachFilesystemPollerNotifier(self) else: self.__notifier = TaskCoachFilesystemNotifier(self) self.__saving = False for collection in [self.__tasks, self.__categories, self.__notes]: self.__monitor.monitorCollection(collection) for domainClass in [task.Task, category.Category, note.Note, effort.Effort, attachment.FileAttachment, attachment.URIAttachment, attachment.MailAttachment]: self.__monitor.monitorClass(domainClass) super(TaskFile, self).__init__(*args, **kwargs) # Register for tasks, categories, efforts and notes being changed so we # can monitor when the task file needs saving (i.e. is 'dirty'): for container in self.tasks(), self.categories(), self.notes(): for eventType in container.modificationEventTypes(): self.registerObserver(self.onDomainObjectAddedOrRemoved, eventType, eventSource=container) for eventType in (base.Object.markDeletedEventType(), base.Object.markNotDeletedEventType()): self.registerObserver(self.onDomainObjectAddedOrRemoved, eventType) for eventType in task.Task.modificationEventTypes(): if not eventType.startswith('pubsub'): self.registerObserver(self.onTaskChanged_Deprecated, eventType) pub.subscribe(self.onTaskChanged, 'pubsub.task') for eventType in effort.Effort.modificationEventTypes(): self.registerObserver(self.onEffortChanged, eventType) for eventType in note.Note.modificationEventTypes(): if not eventType.startswith('pubsub'): self.registerObserver(self.onNoteChanged_Deprecated, eventType) pub.subscribe(self.onNoteChanged, 'pubsub.note') for eventType in category.Category.modificationEventTypes(): if not eventType.startswith('pubsub'): self.registerObserver(self.onCategoryChanged_Deprecated, eventType) pub.subscribe(self.onCategoryChanged, 'pubsub.category') for eventType in attachment.FileAttachment.modificationEventTypes() + \ attachment.URIAttachment.modificationEventTypes() + \ attachment.MailAttachment.modificationEventTypes(): if not eventType.startswith('pubsub'): self.registerObserver(self.onAttachmentChanged_Deprecated, eventType) pub.subscribe(self.onAttachmentChanged, 'pubsub.attachment') def __str__(self): return self.filename() def __contains__(self, item): return item in self.tasks() or item in self.notes() or \ item in self.categories() or item in self.efforts() def monitor(self): return self.__monitor def categories(self): return self.__categories def notes(self): return self.__notes def tasks(self): return self.__tasks def efforts(self): return self.__efforts def syncMLConfig(self): return self.__syncMLConfig def guid(self): return self.__guid def changes(self): return self.__changes def setSyncMLConfig(self, config): self.__syncMLConfig = config self.markDirty() def isEmpty(self): return 0 == len(self.categories()) == len(self.tasks()) == len(self.notes()) def onDomainObjectAddedOrRemoved(self, event): # pylint: disable=W0613 if self.__loading or self.__saving: return self.markDirty() def onTaskChanged(self, newValue, sender): if self.__loading or self.__saving: return if sender in self.tasks(): self.markDirty() def onTaskChanged_Deprecated(self, event): if self.__loading: return changedTasks = [changedTask for changedTask in event.sources() \ if changedTask in self.tasks()] if changedTasks: self.markDirty() for changedTask in changedTasks: changedTask.markDirty() def onEffortChanged(self, event): if self.__loading or self.__saving: return changedEfforts = [changedEffort for changedEffort in event.sources() if \ changedEffort.task() in self.tasks()] if changedEfforts: self.markDirty() for changedEffort in changedEfforts: changedEffort.markDirty() def onCategoryChanged_Deprecated(self, event): if self.__loading or self.__saving: return changedCategories = [changedCategory for changedCategory in event.sources() if \ changedCategory in self.categories()] if changedCategories: self.markDirty() # Mark all categorizables belonging to the changed category dirty; # this is needed because in SyncML/vcard world, categories are not # first-class objects. Instead, each task/contact/etc has a # categories property which is a comma-separated list of category # names. So, when a category name changes, every associated # categorizable changes. for changedCategory in changedCategories: for categorizable in changedCategory.categorizables(): categorizable.markDirty() def onCategoryChanged(self, newValue, sender): if self.__loading or self.__saving: return changedCategories = [changedCategory for changedCategory in [sender] if \ changedCategory in self.categories()] if changedCategories: self.markDirty() # Mark all categorizables belonging to the changed category dirty; # this is needed because in SyncML/vcard world, categories are not # first-class objects. Instead, each task/contact/etc has a # categories property which is a comma-separated list of category # names. So, when a category name changes, every associated # categorizable changes. for changedCategory in changedCategories: for categorizable in changedCategory.categorizables(): categorizable.markDirty() def onNoteChanged_Deprecated(self, event): if self.__loading: return # A note may be in self.notes() or it may be a note of another # domain object. self.markDirty() for changedNote in event.sources(): changedNote.markDirty() def onNoteChanged(self, newValue, sender): if self.__loading: return # A note may be in self.notes() or it may be a note of another # domain object. self.markDirty() sender.markDirty() def onAttachmentChanged(self, newValue, sender): if self.__loading or self.__saving: return # Attachments don't know their owner, so we can't check whether the # attachment is actually in the task file. Assume it is. self.markDirty() def onAttachmentChanged_Deprecated(self, event): if self.__loading: return # Attachments don't know their owner, so we can't check whether the # attachment is actually in the task file. Assume it is. self.markDirty() for changedAttachment in event.sources(): changedAttachment.markDirty() def setFilename(self, filename): if filename == self.__filename: return self.__lastFilename = filename or self.__filename self.__filename = filename self.__notifier.setFilename(filename) pub.sendMessage('taskfile.filenameChanged', filename=filename) def filename(self): return self.__filename def lastFilename(self): return self.__lastFilename def isDirty(self): return self.__needSave def markDirty(self, force=False): if force or not self.__needSave: self.__needSave = True pub.sendMessage('taskfile.dirty', taskFile=self) def markClean(self): if self.__needSave: self.__needSave = False pub.sendMessage('taskfile.clean', taskFile=self) def onFileChanged(self): if not self.__saving: import wx # Not really clean but we're in another thread... self.__changedOnDisk = True wx.CallAfter(pub.sendMessage, 'taskfile.changed', taskFile=self) @patterns.eventSource def clear(self, regenerate=True, event=None): pub.sendMessage('taskfile.aboutToClear', taskFile=self) try: self.tasks().clear(event=event) self.categories().clear(event=event) self.notes().clear(event=event) if regenerate: self.__guid = generate() self.__syncMLConfig = createDefaultSyncConfig(self.__guid) finally: pub.sendMessage('taskfile.justCleared', taskFile=self) def close(self): if os.path.exists(self.filename()): changes = xml.ChangesXMLReader(self.filename() + '.delta').read() del changes[self.__monitor.guid()] xml.ChangesXMLWriter(file(self.filename() + '.delta', 'wb')).write(changes) self.setFilename('') self.__guid = generate() self.clear() self.__monitor.reset() self.markClean() self.__changedOnDisk = False def stop(self): self.__notifier.stop() def _read(self, fd): return xml.XMLReader(fd).read() def exists(self): return os.path.isfile(self.__filename) def _openForWrite(self, suffix=''): return SafeWriteFile(self.__filename + suffix) def _openForRead(self): return file(self.__filename, 'rU') def load(self, filename=None): pub.sendMessage('taskfile.aboutToRead', taskFile=self) self.__loading = True if filename: self.setFilename(filename) try: if self.exists(): fd = self._openForRead() try: tasks, categories, notes, syncMLConfig, changes, guid = self._read(fd) finally: fd.close() else: tasks = [] categories = [] notes = [] changes = dict() guid = generate() syncMLConfig = createDefaultSyncConfig(guid) self.clear() self.__monitor.reset() self.__changes = changes self.__changes[self.__monitor.guid()] = self.__monitor self.categories().extend(categories) self.tasks().extend(tasks) self.notes().extend(notes) def registerOtherObjects(objects): for obj in objects: if isinstance(obj, base.CompositeObject): registerOtherObjects(obj.children()) if isinstance(obj, note.NoteOwner): registerOtherObjects(obj.notes()) if isinstance(obj, attachment.AttachmentOwner): registerOtherObjects(obj.attachments()) if isinstance(obj, task.Task): registerOtherObjects(obj.efforts()) if isinstance(obj, note.Note) or \ isinstance(obj, attachment.Attachment) or \ isinstance(obj, effort.Effort): self.__monitor.setChanges(obj.id(), set()) registerOtherObjects(self.categories().rootItems()) registerOtherObjects(self.tasks().rootItems()) registerOtherObjects(self.notes().rootItems()) self.__monitor.resetAllChanges() self.__syncMLConfig = syncMLConfig self.__guid = guid if os.path.exists(self.filename()): # We need to reset the changes on disk because we're up to date. xml.ChangesXMLWriter(file(self.filename() + '.delta', 'wb')).write(self.__changes) except: self.setFilename('') raise finally: self.__loading = False self.markClean() self.__changedOnDisk = False pub.sendMessage('taskfile.justRead', taskFile=self) def save(self): try: pub.sendMessage('taskfile.aboutToSave', taskFile=self) except: pass # When encountering a problem while saving (disk full, # computer on fire), if we were writing directly to the file, # it's lost. So write to a temporary file and rename it if # everything went OK. self.__saving = True try: self.mergeDiskChanges() if self.__needSave or not os.path.exists(self.__filename): fd = self._openForWrite() try: xml.XMLWriter(fd).write(self.tasks(), self.categories(), self.notes(), self.syncMLConfig(), self.guid()) finally: fd.close() self.markClean() finally: self.__saving = False self.__notifier.saved() try: pub.sendMessage('taskfile.justSaved', taskFile=self) except: pass def mergeDiskChanges(self): self.__loading = True try: if os.path.exists(self.__filename): # Not using self.exists() because DummyFile.exists returns True # Instead of writing the content of memory, merge changes # with the on-disk version and save the result. self.__monitor.freeze() try: fd = self._openForRead() tasks, categories, notes, syncMLConfig, allChanges, guid = self._read(fd) fd.close() self.__changes = allChanges if self.__saving: for devGUID, changes in self.__changes.items(): if devGUID != self.__monitor.guid(): changes.merge(self.__monitor) sync = ChangeSynchronizer(self.__monitor, allChanges) sync.sync( [(self.categories(), category.CategoryList(categories)), (self.tasks(), task.TaskList(tasks)), (self.notes(), note.NoteContainer(notes))] ) self.__changes[self.__monitor.guid()] = self.__monitor finally: self.__monitor.thaw() else: self.__changes = {self.__monitor.guid(): self.__monitor} self.__monitor.resetAllChanges() fd = self._openForWrite('.delta') try: xml.ChangesXMLWriter(fd).write(self.changes()) finally: fd.close() self.__changedOnDisk = False finally: self.__loading = False def saveas(self, filename): if os.path.exists(filename): os.remove(filename) if os.path.exists(filename + '.delta'): os.remove(filename + '.delta') self.setFilename(filename) self.save() def merge(self, filename): mergeFile = self.__class__() mergeFile.load(filename) self.__loading = True categoryMap = dict() self.tasks().removeItems(self.objectsToOverwrite(self.tasks(), mergeFile.tasks())) self.rememberCategoryLinks(categoryMap, self.tasks()) self.tasks().extend(mergeFile.tasks().rootItems()) self.notes().removeItems(self.objectsToOverwrite(self.notes(), mergeFile.notes())) self.rememberCategoryLinks(categoryMap, self.notes()) self.notes().extend(mergeFile.notes().rootItems()) self.categories().removeItems(self.objectsToOverwrite(self.categories(), mergeFile.categories())) self.categories().extend(mergeFile.categories().rootItems()) self.restoreCategoryLinks(categoryMap) mergeFile.close() self.__loading = False self.markDirty(force=True) def objectsToOverwrite(self, originalObjects, objectsToMerge): objectsToOverwrite = [] for domainObject in objectsToMerge: try: objectsToOverwrite.append(originalObjects.getObjectById(domainObject.id())) except IndexError: pass return objectsToOverwrite def rememberCategoryLinks(self, categoryMap, categorizables): for categorizable in categorizables: for categoryToLinkLater in categorizable.categories(): categoryMap.setdefault(categoryToLinkLater.id(), []).append(categorizable) def restoreCategoryLinks(self, categoryMap): categories = self.categories() for categoryId, categorizables in categoryMap.iteritems(): try: categoryToLink = categories.getObjectById(categoryId) except IndexError: continue # Subcategory was removed by the merge for categorizable in categorizables: categorizable.addCategory(categoryToLink) categoryToLink.addCategorizable(categorizable) def needSave(self): return not self.__loading and self.__needSave def changedOnDisk(self): return self.__changedOnDisk def beginSync(self): self.__loading = True def endSync(self): self.__loading = False self.markDirty() class DummyLockFile(object): def acquire(self, timeout=None): pass def release(self): pass def is_locked(self): return True def i_am_locking(self): return True def break_lock(self): pass class LockedTaskFile(TaskFile): ''' LockedTaskFile adds cooperative locking to the TaskFile. ''' def __init__(self, *args, **kwargs): super(LockedTaskFile, self).__init__(*args, **kwargs) self.__lock = None def __isFuse(self, path): if operating_system.isGTK() and os.path.exists('/proc/mounts'): for line in file('/proc/mounts', 'rb'): try: location, mountPoint, fsType, options, a, b = line.strip().split() except: pass if os.path.abspath(path).startswith(mountPoint) and fsType.startswith('fuse.'): return True return False def __isCloud(self, filename): return _isCloud(os.path.dirname(filename)) def __createLockFile(self, filename): if operating_system.isWindows() and self.__isCloud(filename): return DummyLockFile() if self.__isFuse(filename): return lockfile.MkdirFileLock(filename) return lockfile.FileLock(filename) def is_locked(self): return self.__lock and self.__lock.is_locked() def is_locked_by_me(self): return self.is_locked() and self.__lock.i_am_locking() def release_lock(self): if self.is_locked_by_me(): self.__lock.release() def acquire_lock(self, filename): if not self.is_locked_by_me(): self.__lock = self.__createLockFile(filename) self.__lock.acquire(5) def break_lock(self, filename): self.__lock = self.__createLockFile(filename) self.__lock.break_lock() def close(self): if self.filename() and os.path.exists(self.filename()): self.acquire_lock(self.filename()) try: super(LockedTaskFile, self).close() finally: self.release_lock() def load(self, filename=None, lock=True, breakLock=False): # pylint: disable=W0221 ''' Lock the file before we load, if not already locked. ''' filename = filename or self.filename() try: if lock and filename: if breakLock: self.break_lock(filename) self.acquire_lock(filename) return super(LockedTaskFile, self).load(filename) finally: self.release_lock() def save(self, **kwargs): ''' Lock the file before we save, if not already locked. ''' self.acquire_lock(self.filename()) try: return super(LockedTaskFile, self).save(**kwargs) finally: self.release_lock() def mergeDiskChanges(self): self.acquire_lock(self.filename()) try: super(LockedTaskFile, self).mergeDiskChanges() finally: self.release_lock() taskcoach-1.4.3/taskcoachlib/persistence/templatelist.py000066400000000000000000000074571265347643000235420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, pickle, tempfile, shutil from taskcoachlib.thirdparty.pubsub import pub from xml import TemplateXMLWriter, TemplateXMLReader class TemplateList(object): def __init__(self, path, TemplateReader=TemplateXMLReader, openFile=file): self._path = path self._templates = self._readTemplates(TemplateReader, openFile) self._toDelete = [] def _readTemplates(self, TemplateReader, openFile): templates = [] for filename in self._templateFilenames(): template = self._readTemplate(filename, TemplateReader, openFile) if template: templates.append((template, filename)) return templates def _readTemplate(self, filename, TemplateReader, openFile): try: fd = openFile(os.path.join(self._path, filename), 'rU') except IOError: return try: return TemplateReader(fd).read() except: pass finally: fd.close() def _templateFilenames(self): if not os.path.exists(self._path): return [] filenames = [name for name in os.listdir(self._path) if \ name.endswith('.tsktmpl') and os.path.exists(os.path.join(self._path, name))] listName = os.path.join(self._path, 'list.pickle') if os.path.exists(listName): try: filenames = pickle.load(file(listName, 'rb')) except: pass return filenames def save(self): pickle.dump([name for task, name in self._templates], file(os.path.join(self._path, 'list.pickle'), 'wb')) for task, name in self._templates: templateFile = file(os.path.join(self._path, name), 'w') writer = TemplateXMLWriter(templateFile) writer.write(task) templateFile.close() for task, name in self._toDelete: os.remove(os.path.join(self._path, name)) self._toDelete = [] pub.sendMessage('templates.saved') def addTemplate(self, task): handle, filename = tempfile.mkstemp('.tsktmpl', dir=self._path) os.close(handle) templateFile = file(filename, 'w') writer = TemplateXMLWriter(templateFile) writer.write(task.copy()) templateFile.close() theTask = TemplateXMLReader(file(filename, 'rU')).read() self._templates.append((theTask, os.path.split(filename)[-1])) return theTask def deleteTemplate(self, idx): self._toDelete.append(self._templates[idx]) del self._templates[idx] def copyTemplate(self, filename): shutil.copyfile(filename, os.path.join(self._path, os.path.split(filename)[-1])) pub.sendMessage('templates.saved') def swapTemplates(self, i, j): self._templates[i], self._templates[j] = self._templates[j], self._templates[i] def __len__(self): return len(self._templates) def tasks(self): return [task for task, _ in self._templates] def names(self): return [name for _, name in self._templates] taskcoach-1.4.3/taskcoachlib/persistence/todotxt/000077500000000000000000000000001265347643000221515ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/persistence/todotxt/__init__.py000066400000000000000000000014361265347643000242660ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from reader import TodoTxtReader from writer import TodoTxtWriter taskcoach-1.4.3/taskcoachlib/persistence/todotxt/reader.py000066400000000000000000000233421265347643000237710ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import re, os, codecs from taskcoachlib.domain import task, category, date from taskcoachlib import patterns class TodoTxtReader(object): def __init__(self, taskList, categoryList): self.__taskList = taskList self.__tasksBySubject = self.__createSubjectCache(taskList) self.__tasksById = self.__createIdCache(taskList) self.__deletedTasks = set() self.__categoryList = categoryList self.__categoriesBySubject = self.__createSubjectCache(categoryList) self.__version = 0 def read(self, filename): metaName = filename + '-meta' metaLines = dict() if os.path.exists(metaName): todoTxtRE = self.compileTodoTxtRE() keyValueRE = self.compileKeyValueRE() with codecs.open(metaName, 'r', 'utf-8') as fp: match = re.match(r'VERSION: (\d+)', fp.readline().strip()) if match: self.__version = int(match.group(1)) else: fp.seek(0) for line in fp: line = line.strip() try: taskId, subjects, priority, plannedStartDateTime, completionDateTime, dueDateTime, categories = \ self.__processLine(line, todoTxtRE, keyValueRE, date.Now, None) self.__deletedTasks.add(taskId) except: pass # Err metaLines['->'.join(subjects) if self.__version == 0 else taskId] = line with codecs.open(filename, 'r', 'utf-8') as fp: self.readFile(fp, metaLines=metaLines) @patterns.eventSource def readFile(self, fp, now=date.Now, event=None, metaLines=None): todoTxtRE = self.compileTodoTxtRE() keyValueRE = self.compileKeyValueRE() for line in fp: line = line.strip() if line: self.processLine(line, todoTxtRE, keyValueRE, now, event, metaLines) if self.__version >= 1: for deletedTaskId in self.__deletedTasks: self.__taskList.remove(self.__tasksById[deletedTaskId]) def __processLine(self, line, todoTxtRE, keyValueRE, now, event): # First, process all key:value pairs. These are additional metadata not # defined by the todo.txt format at # https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format dueDateTime = date.DateTime() taskId = None for key, value in re.findall(keyValueRE, line): if key == 'due': dueDateTime = self.dateTime(value) elif key == 'tcid': taskId = value line = re.sub(keyValueRE, '', line) # Remove all key:value pairs # Now, process the "official" todo.txt format using a RE that should # match the line completely. match = todoTxtRE.match(line) priority = self.priority(match) completionDateTime = self.completionDateTime(match, now) plannedStartDateTime = self.plannedStartDateTime(match) categories = self.categories(match, event) recursiveSubject = match.group('subject') subjects = recursiveSubject.split('->') return taskId, subjects, priority, plannedStartDateTime, completionDateTime, dueDateTime, categories def processLine(self, line, todoTxtRE, keyValueRE, now, event, metaLines): taskId, subjects, priority, plannedStartDateTime, completionDateTime, dueDateTime, categories = \ self.__processLine(line, todoTxtRE, keyValueRE, now, event) if taskId is not None and taskId in self.__deletedTasks: self.__deletedTasks.remove(taskId) if (self.__version == 0 and metaLines and metaLines.get('->'.join(subjects), None) == line) or \ (self.__version == 1 and metaLines and taskId and metaLines.get(taskId, None) == line): # Not modified. Don't read it or we'll overwrite local changes # in case we're importing just before saving... return if taskId is not None and taskId not in self.__tasksById: return # Deleted on desktop, changed on device. Keep deleted. if self.__version == 0: newTask = None for subject in subjects: newTask = self.findOrCreateTask(subject.strip(), newTask, event) else: newTask = None if taskId is None else self.__tasksById.get(taskId, None) if newTask is None: newTask = task.Task(subject=subjects[-1]) self.__taskList.append(newTask) else: newTask.setSubject(subjects[-1]) newTask.setPriority(priority) newTask.setPlannedStartDateTime(plannedStartDateTime) newTask.setCompletionDateTime(completionDateTime) newTask.setDueDateTime(dueDateTime) for eachCategory in categories: newTask.addCategory(eachCategory, event=event) eachCategory.addCategorizable(newTask, event=event) @staticmethod def priority(match): priorityText = match.group('priority') return ord(priorityText) + 1 - ord('A') if priorityText else 0 @classmethod def completionDateTime(cls, match, now): if match.group('completed'): completionDateText = match.group('completionDate') return cls.dateTime(completionDateText) if completionDateText else now() else: return date.DateTime() @classmethod def plannedStartDateTime(cls, match): startDateText = match.group('startDate') return cls.dateTime(startDateText) if startDateText else date.DateTime() @staticmethod def dateTime(dateText): year, month, day = dateText.split('-') return date.DateTime(int(year), int(month), int(day), 0, 0, 0) def categories(self, match, event): ''' Transform both projects and contexts into categories. Since Todo.txt allows multiple projects for one task, but Task Coach does not allow for tasks to have more than one parent task, we cannot transform projects into parent tasks. ''' categories = [] contextsAndProjects = match.group('contexts_and_projects_pre') + \ match.group('contexts_and_projects_post') contextsAndProjects = contextsAndProjects.strip() if contextsAndProjects: for contextOrProject in contextsAndProjects.split(' '): recursiveSubject = contextOrProject.strip() categoryForTask = None for subject in recursiveSubject.split('->'): categoryForTask = self.findOrCreateCategory(subject, categoryForTask, event) categories.append(categoryForTask) return categories def findOrCreateCategory(self, subject, parent, event): return self.findOrCreateCompositeItem(subject, parent, self.__categoriesBySubject, self.__categoryList, category.Category, event) def findOrCreateTask(self, subject, parent, event): return self.findOrCreateCompositeItem(subject, parent, self.__tasksBySubject, self.__taskList, task.Task, event) def findOrCreateCompositeItem(self, subject, parent, subjectCache, itemContainer, itemClass, event): if (subject, parent) in subjectCache: return subjectCache[(subject, parent)] newItem = itemClass(subject=subject) if parent: newItem.setParent(parent) parent.addChild(newItem, event=event) itemContainer.append(newItem, event=event) subjectCache[(subject, parent)] = newItem return newItem @staticmethod def compileTodoTxtRE(): priorityRE = r'(?:\((?P[A-Z])\) )?' completedRe = r'(?P[Xx] )?' completionDateRE = r'(?:(?<=[xX] )(?P\d{4}-\d{1,2}-\d{1,2}) )?' startDateRE = r'(?:(?P\d{4}-\d{1,2}-\d{1,2}) )?' contextsAndProjectsPreRE = r'(?P(?: ?[@+][^\s]+)*)' subjectRE = r'(?P.*?)' contextsAndProjectsPostRE = r'(?P(?: [@+][^\s]+)*)' return re.compile('^' + priorityRE + completedRe + completionDateRE + \ startDateRE + contextsAndProjectsPreRE + subjectRE + \ contextsAndProjectsPostRE + '$') @staticmethod def compileKeyValueRE(): # The key is non-greedy because IDs may contain ':' return re.compile(' (?P\S+?):(?P\S+)') @staticmethod def __createSubjectCache(itemContainer): cache = dict() for item in itemContainer: cache[(item.subject(), item.parent())] = item return cache @staticmethod def __createIdCache(itemContainer): cache = dict() for item in itemContainer: cache[item.id()] = item return cache taskcoach-1.4.3/taskcoachlib/persistence/todotxt/writer.py000066400000000000000000000072171265347643000240460ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import re, shutil, os from taskcoachlib.domain import date class TodoTxtWriter(object): VERSION = 1 def __init__(self, fd, filename): self.__fd = fd self.__filename = filename self.__maxDateTime = date.DateTime() def write(self, viewer, settings, selectionOnly, **kwargs): tasks = viewer.visibleItems() if selectionOnly: tasks = [task for task in tasks if viewer.isselected(task)] return self.writeTasks(tasks) def writeTasks(self, tasks): count = 0 for task in tasks: count += 1 self.__fd.write(self.priority(task.priority()) + \ self.completionDate(task.completionDateTime()) + \ self.startDate(task.plannedStartDateTime()) + \ task.subject(recursive=True) + \ self.contextsAndProjects(task) + \ self.dueDate(task.dueDateTime()) + \ self.id(task.id()) + '\n') metaName = self.__filename + '-meta' if os.path.exists(metaName): os.remove(metaName) if os.path.exists(self.__filename): # Unit tests self.__fd.close() with file(metaName, 'wb') as dst: dst.write('VERSION: %d\n' % self.VERSION) with file(self.__filename, 'rb') as src: shutil.copyfileobj(src, dst) return count @staticmethod def priority(priorityNumber): return '(%s) '%chr(ord('A') + priorityNumber - 1) if 1 <= priorityNumber <= 26 else '' @classmethod def startDate(cls, plannedStartDateTime): return '%s '%cls.dateTime(plannedStartDateTime) if cls.isActualDateTime(plannedStartDateTime) else '' @classmethod def dueDate(cls, dueDateTime): return ' due:%s'%cls.dateTime(dueDateTime) if cls.isActualDateTime(dueDateTime) else '' @classmethod def id(cls, id_): return ' tcid:%s' % id_ @classmethod def completionDate(cls, completionDateTime): return 'X ' + '%s '%cls.dateTime(completionDateTime) if cls.isActualDateTime(completionDateTime) else '' @staticmethod def dateTime(dateTime): ''' Todo.txt doesn't support time, just dates, so ignore the time part. ''' return dateTime.date().strftime('%Y-%m-%d') @staticmethod def isActualDateTime(dateTime, maxDateTime=date.DateTime()): return dateTime != maxDateTime @classmethod def contextsAndProjects(cls, task): subjects = [] for category in task.categories(): subject = category.subject(recursive=True).strip() if subject and subject[0] in ('@', '+'): subject = re.sub(r' -> ', '->', subject) subject = re.sub(r'\s+', '_', subject) subjects.append(subject) return ' ' + ' '.join(sorted(subjects)) if subjects else '' taskcoach-1.4.3/taskcoachlib/persistence/xml/000077500000000000000000000000001265347643000212445ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/persistence/xml/__init__.py000066400000000000000000000017511265347643000233610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # This is the xml package. This package contains classes to read and # write xml (.tsk) files. from reader import XMLReader, TemplateXMLReader, ChangesXMLReader from writer import XMLWriter, TemplateXMLWriter, ChangesXMLWriter from templates import getDefaultTemplates taskcoach-1.4.3/taskcoachlib/persistence/xml/reader.py000066400000000000000000000737601265347643000230750ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from .. import sessiontempfile # pylint: disable=F0401 from taskcoachlib import meta, patterns from taskcoachlib.changes import ChangeMonitor from taskcoachlib.domain import base, date, effort, task, category, categorizable, note, attachment from taskcoachlib.i18n import translate from taskcoachlib.syncml.config import SyncMLConfigNode, createDefaultSyncConfig from taskcoachlib.thirdparty.deltaTime import nlTimeExpression from taskcoachlib.thirdparty.guid import generate import StringIO import os import re import stat import wx import xml.etree.ElementTree as ET def parseAndAdjustDateTime(string, *timeDefaults): dateTime = date.parseDateTime(string, *timeDefaults) if dateTime != date.DateTime() and dateTime is not None and \ dateTime.time() == date.Time(23, 59, 0, 0): dateTime = date.DateTime(year=dateTime.year, month=dateTime.month, day=dateTime.day, hour=23, minute=59, second=59, microsecond=999999) return dateTime class PIParser(ET.XMLTreeBuilder): """See http://effbot.org/zone/element-pi.htm""" def __init__(self): ET.XMLTreeBuilder.__init__(self) self._parser.ProcessingInstructionHandler = self.handle_pi self.tskversion = meta.data.tskversion def handle_pi(self, target, data): if target == 'taskcoach': match_object = re.search('tskversion="(\d+)"', data) self.tskversion = int(match_object.group(1)) class XMLReaderTooNewException(Exception): pass class XMLReader(object): ''' Class for reading task files in the default XML task file format. ''' defaultStartTime = (0, 0, 0, 0) defaultEndTime = (23, 59, 59, 999999) def __init__(self, fd): self.__fd = fd self.__default_font_size = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT).GetPointSize() self.__modification_datetimes = {} self.__prerequisites = {} self.__categorizables = {} def tskversion(self): ''' Return the version of the current task file. Note that this is not the version of the application. The task file has its own version numbering (a number that is increasing on every change). ''' return self.__tskversion def read(self): ''' Read the task file and return the tasks, categories, notes, SyncML configuration and GUID. ''' if self.__has_broken_lines(): self.__fix_broken_lines() parser = PIParser() tree = ET.parse(self.__fd, parser) root = tree.getroot() self.__tskversion = parser.tskversion # pylint: disable=W0201 if self.__tskversion > meta.data.tskversion: # Version number of task file is too high raise XMLReaderTooNewException tasks = self.__parse_task_nodes(root) self.__resolve_prerequisites_and_dependencies(tasks) notes = self.__parse_note_nodes(root) if self.__tskversion <= 13: categories = self.__parse_category_nodes_from_task_nodes(root) else: categories = self.__parse_category_nodes(root) self.__resolve_categories(categories, tasks, notes) guid = self.__parse_guid_node(root.find('guid')) syncml_config = self.__parse_syncml_node(root, guid) for object, modification_datetime in self.__modification_datetimes.iteritems(): object.setModificationDateTime(modification_datetime) changesName = self.__fd.name + '.delta' if os.path.exists(changesName): changes = ChangesXMLReader(file(self.__fd.name + '.delta', 'rU')).read() else: changes = dict() return tasks, categories, notes, syncml_config, changes, guid def __has_broken_lines(self): ''' tskversion 24 may contain newlines in element tags. ''' has_broken_lines = '> 20: kwargs['attachments'] = self.__parse_attachments(category_node) theCategory = category.Category(**kwargs) # pylint: disable=W0142 self.__categorizables.setdefault(theCategory.id(), list()).extend(categorizable_ids.split(' ')) return self.__save_modification_datetime(theCategory) def __parse_category_nodes_from_task_nodes(self, root): ''' In tskversion <=13 category nodes were subnodes of task nodes. ''' task_nodes = root.findall('.//task') category_mapping = \ self.__parse_category_nodes_within_task_nodes(task_nodes) subject_category_mapping = {} for task_id, categories in category_mapping.items(): for subject in categories: if subject in subject_category_mapping: cat = subject_category_mapping[subject] else: cat = category.Category(subject) subject_category_mapping[subject] = cat self.__categorizables.setdefault(cat.id(), list()).append(task_id) return subject_category_mapping.values() def __parse_category_nodes_within_task_nodes(self, task_nodes): ''' In tskversion <=13 category nodes were subnodes of task nodes. ''' category_mapping = {} for node in task_nodes: task_id = node.attrib['id'] categories = [child.text for child in node.findall('category')] category_mapping.setdefault(task_id, []).extend(categories) return category_mapping def _parse_task_node(self, task_node): '''Recursively parse the node and return a task instance. ''' planned_start_datetime_attribute_name = 'startdate' if self.tskversion() <= 33 else 'plannedstartdate' kwargs = self.__parse_base_composite_attributes(task_node, self.__parse_task_nodes) kwargs.update(dict( plannedStartDateTime=date.parseDateTime(task_node.attrib.get(planned_start_datetime_attribute_name, ''), *self.defaultStartTime), dueDateTime=parseAndAdjustDateTime(task_node.attrib.get('duedate', ''), *self.defaultEndTime), actualStartDateTime=date.parseDateTime(task_node.attrib.get('actualstartdate', ''), *self.defaultStartTime), completionDateTime=date.parseDateTime(task_node.attrib.get('completiondate', ''), *self.defaultEndTime), percentageComplete=self.__parse_int_attribute(task_node, 'percentageComplete'), budget=date.parseTimeDelta(task_node.attrib.get('budget', '')), priority=self.__parse_int_attribute(task_node, 'priority'), hourlyFee=float(task_node.attrib.get('hourlyFee', '0')), fixedFee=float(task_node.attrib.get('fixedFee', '0')), reminder=self.__parse_datetime(task_node.attrib.get('reminder', '')), reminderBeforeSnooze=self.__parse_datetime(task_node.attrib.get('reminderBeforeSnooze', '')), # Ignore prerequisites for now, they'll be resolved later prerequisites=[], shouldMarkCompletedWhenAllChildrenCompleted=self.__parse_boolean(task_node.attrib.get('shouldMarkCompletedWhenAllChildrenCompleted', '')), efforts=self.__parse_effort_nodes(task_node), notes=self.__parse_note_nodes(task_node), recurrence=self.__parse_recurrence(task_node))) self.__prerequisites[kwargs['id']] = [id_ for id_ in task_node.attrib.get('prerequisites', '').split(' ') if id_] if self.__tskversion > 20: kwargs['attachments'] = self.__parse_attachments(task_node) return self.__save_modification_datetime(task.Task(**kwargs)) # pylint: disable=W0142 def __parse_recurrence(self, task_node): ''' Parse the recurrence from the node and return a recurrence instance. ''' if self.__tskversion <= 19: parse_kwargs = self.__parse_recurrence_attributes_from_task_node else: parse_kwargs = self.__parse_recurrence_node return date.Recurrence(**parse_kwargs(task_node)) def __parse_recurrence_node(self, task_node): ''' Since tskversion >= 20, recurrence information is stored in a separate node. ''' kwargs = dict(unit='', amount=1, count=0, maximum=0, stop_datetime=None, sameWeekday=False) node = task_node.find('recurrence') if node is not None: kwargs = dict(unit=node.attrib.get('unit', ''), amount=int(node.attrib.get('amount', '1')), count=int(node.attrib.get('count', '0')), maximum=int(node.attrib.get('max', '0')), stop_datetime=self.__parse_datetime(node.attrib.get('stop_datetime', '')), sameWeekday=self.__parse_boolean(node.attrib.get('sameWeekday', 'False')), recurBasedOnCompletion=self.__parse_boolean(node.attrib.get('recurBasedOnCompletion', 'False'))) return kwargs @staticmethod def __parse_recurrence_attributes_from_task_node(task_node): ''' In tskversion <= 19 recurrence information was stored as attributes of task nodes. ''' return dict(unit=task_node.attrib.get('recurrence', ''), count=int(task_node.attrib.get('recurrenceCount', '0')), amount=int(task_node.attrib.get('recurrenceFrequency', '1')), maximum=int(task_node.attrib.get('maxRecurrenceCount', '0'))) def __parse_note_node(self, note_node): ''' Parse the attributes and child notes from the noteNode. ''' kwargs = self.__parse_base_composite_attributes(note_node, self.__parse_note_nodes) if self.__tskversion > 20: kwargs['attachments'] = self.__parse_attachments(note_node) return self.__save_modification_datetime(note.Note(**kwargs)) # pylint: disable=W0142 def __parse_base_attributes(self, node): ''' Parse the attributes all composite domain objects share, such as id, subject, description, and return them as a keyword arguments dictionary that can be passed to the domain object constructor. ''' bg_color_attribute = 'color' if self.__tskversion <= 27 else 'bgColor' attributes = dict(id=node.attrib.get('id', ''), creationDateTime=self.__parse_datetime(node.attrib.get('creationDateTime', '1-1-1 0:0')), modificationDateTime=self.__parse_datetime(node.attrib.get('modificationDateTime', '1-1-1 0:0')), subject=node.attrib.get('subject', ''), description=self.__parse_description(node), fgColor=self.__parse_tuple(node.attrib.get('fgColor', ''), None), bgColor=self.__parse_tuple(node.attrib.get(bg_color_attribute, ''), None), font=self.__parse_font_description(node.attrib.get('font', '')), icon=self.__parse_icon(node.attrib.get('icon', '')), selectedIcon=self.__parse_icon(node.attrib.get('selectedIcon', '')), ordering=long(node.attrib.get('ordering', '0L'))) if self.__tskversion <= 20: attributes['attachments'] = \ self.__parse_attachments_before_version21(node) if self.__tskversion >= 22: attributes['status'] = int(node.attrib.get('status', '1')) return attributes def __parse_base_composite_attributes(self, node, parse_children, *parse_children_args): ''' Same as __parse_base_attributes, but also parse children and expandedContexts. ''' kwargs = self.__parse_base_attributes(node) kwargs['children'] = parse_children(node, *parse_children_args) expanded_contexts = node.attrib.get('expandedContexts', '') kwargs['expandedContexts'] = self.__parse_tuple(expanded_contexts, []) return kwargs def __parse_attachments_before_version21(self, parent): ''' Parse the attachments from the node and return the attachment instances. ''' path, name = os.path.split(os.path.abspath(self.__fd.name)) # pylint: disable=E1103 name = os.path.splitext(name)[0] attdir = os.path.normpath(os.path.join(path, name + '_attachments')) attachments = [] for node in parent.findall('attachment'): if self.__tskversion <= 16: args = (node.text,) kwargs = dict() else: args = (os.path.join(attdir, node.find('data').text), node.attrib['type']) description = self.__parse_description(node) kwargs = dict(subject=description, description=description) try: # pylint: disable=W0142 attachments.append(attachment.AttachmentFactory(*args, **kwargs)) except IOError: # Mail attachment, file doesn't exist. Ignore this. pass return attachments def __parse_effort_nodes(self, node): ''' Parse all effort records from the node. ''' return [self.__parse_effort_node(effort_node) \ for effort_node in node.findall('effort')] def __parse_effort_node(self, node): ''' Parse an effort record from the node. ''' kwargs = {} if self.__tskversion >= 22: kwargs['status'] = int(node.attrib.get('status', '1')) if self.__tskversion >= 29: kwargs['id'] = node.attrib['id'] start = node.attrib.get('start', '') stop = node.attrib.get('stop', '') description = self.__parse_description(node) # task=None because it is set when the effort is actually added to the # task by the task itself. This way no events are sent for changing the # effort owner, which is good. # pylint: disable=W0142 return effort.Effort(task=None, start=date.parseDateTime(start), stop=date.parseDateTime(stop), description=description, **kwargs) def __parse_syncml_node(self, nodes, guid): ''' Parse the SyncML node from the nodes. ''' syncml_config = createDefaultSyncConfig(guid) node_name = 'syncmlconfig' if self.__tskversion < 25: node_name = 'syncml' for node in nodes.findall(node_name): self.__parse_syncml_nodes(node, syncml_config) return syncml_config def __parse_syncml_nodes(self, node, config_node): ''' Parse the SyncML nodes from the node. ''' for child_node in node: if child_node.tag == 'property': config_node.set(child_node.attrib['name'], self.__parse_text(child_node)) else: for child_config_node in config_node.children(): if child_config_node.name == child_node.tag: break else: tag = child_node.tag child_config_node = SyncMLConfigNode(tag) config_node.addChild(child_config_node) self.__parse_syncml_nodes(child_node, child_config_node) def __parse_guid_node(self, node): ''' Parse the GUID from the node. ''' guid = self.__parse_text(node).strip() return guid if guid else generate() def __parse_attachments(self, node): ''' Parse the attachments from the node. ''' attachments = [] for child_node in node.findall('attachment'): try: attachments.append(self.__parse_attachment(child_node)) except IOError: pass return attachments def __parse_attachment(self, node): ''' Parse the attachment from the node. ''' kwargs = self.__parse_base_attributes(node) kwargs['notes'] = self.__parse_note_nodes(node) if self.__tskversion <= 22: path, name = os.path.split(os.path.abspath(\ self.__fd.name)) # pylint: disable=E1103 name, ext = os.path.splitext(name) attdir = os.path.normpath(os.path.join(path, name + '_attachments')) location = os.path.join(attdir, node.attrib['location']) else: if 'location' in node.attrib: location = node.attrib['location'] else: data_node = node.find('data') if data_node is None: raise ValueError('Neither location or data are defined ' 'for this attachment.') data = self.__parse_text(data_node) ext = data_node.attrib['extension'] location = sessiontempfile.get_temp_file(suffix=ext) file(location, 'wb').write(data.decode('base64')) if os.name == 'nt': os.chmod(location, stat.S_IREAD) return self.__save_modification_datetime(attachment.AttachmentFactory(location, # pylint: disable=W0142 node.attrib['type'], **kwargs)) def __parse_description(self, node): ''' Parse the description from the node. ''' if self.__tskversion <= 6: description = node.attrib.get('description', '') else: description = self.__parse_text(node.find('description')) return description def __parse_text(self, node): ''' Parse the text from a node. ''' text = u'' if node is None else node.text or u'' if self.__tskversion >= 24: # Strip newlines if text.startswith('\n'): text = text[1:] if text.endswith('\n'): text = text[:-1] return text @classmethod def __parse_int_attribute(cls, node, attribute_name, default_value=0): ''' Parse the integer attribute with the specified name from the node. In case of failure, return the default value. ''' text = node.attrib.get(attribute_name, '0') return cls.__parse(text, int, default_value) @classmethod def __parse_datetime(cls, text): ''' Parse a datetime from the text. ''' return cls.__parse(text, date.parseDateTime, None) def __parse_font_description(self, text, default_value=None): ''' Parse a font from the text. In case of failure, return the default value. ''' if text: font = wx.FontFromNativeInfoString(text) if font and font.IsOk(): if font.GetPointSize() < 4: font.SetPointSize(self.__default_font_size) return font return default_value @staticmethod def __parse_icon(text): ''' Parse an icon name from the text. ''' # Parse is a big word, we just need to fix one particular icon return 'clock_alarm_icon' if text == 'clock_alarm' else text @classmethod def __parse_boolean(cls, text, default_value=None): ''' Parse a boolean from the text. In case of failure, return the default value. ''' def text_to_boolean(text): ''' Transform 'True' to True and 'False' to False, raise a ValueError for any other text. ''' if text in ('True', 'False'): return text == 'True' else: raise ValueError("Expected 'True' or 'False', got '%s'" % text) return cls.__parse(text, text_to_boolean, default_value) @classmethod def __parse_tuple(cls, text, default_value=None): ''' Parse a tuple from the text. In case of failure, return the default value. ''' if text.startswith('(') and text.endswith(')'): return cls.__parse(text, eval, default_value) else: return default_value @staticmethod def __parse(text, parse_function, default_value): ''' Parse the text using the parse function. In case of failure, return the default value. ''' try: return parse_function(text) except ValueError: return default_value def __save_modification_datetime(self, item): ''' Save the modification date time of the item for later restore. ''' self.__modification_datetimes[item] = item.modificationDateTime() return item class ChangesXMLReader(object): def __init__(self, fd): self.__fd = fd def read(self): allChanges = dict() tree = ET.parse(self.__fd) for devNode in tree.getroot().findall('device'): id_ = devNode.attrib['guid'] mon = ChangeMonitor(id_) for objNode in devNode.findall('obj'): if objNode.text: changes = set(objNode.text.split(',')) else: changes = set() mon.setChanges(objNode.attrib['id'], changes) allChanges[id_] = mon return allChanges class TemplateXMLReader(XMLReader): def read(self): return super(TemplateXMLReader, self).read()[0][0] def _parse_task_node(self, task_node): attrs = dict() attribute_renames = dict(startdate='plannedstartdate') for name in ['startdate', 'plannedstartdate', 'duedate', 'completiondate', 'reminder']: new_name = attribute_renames.get(name, name) template_name = name + 'tmpl' if template_name in task_node.attrib: if self.tskversion() < 32: value = TemplateXMLReader.convert_old_format(task_node.attrib[template_name]) else: value = task_node.attrib[template_name] attrs[new_name] = value task_node.attrib[new_name] = str(nlTimeExpression.parseString(value).calculatedTime) elif new_name not in attrs: attrs[new_name] = None if 'subject' in task_node.attrib: task_node.attrib['subject'] = translate(task_node.attrib['subject']) parsed_task = super(TemplateXMLReader, self)._parse_task_node(task_node) for name, value in attrs.items(): setattr(parsed_task, name + 'tmpl', value) return parsed_task @staticmethod def convert_old_format(expr, now=date.Now): # Built-in templates: built_in_templates = {'Now()': 'now', 'Now().endOfDay()': '11:59 PM today', 'Now().endOfDay() + oneDay': '11:59 PM tomorrow', 'Today()': '00:00 AM today', 'Tomorrow()': '11:59 PM tomorrow'} if expr in built_in_templates: return built_in_templates[expr] # Not a built in template: new_datetime = eval(expr, date.__dict__) if isinstance(new_datetime, date.date.RealDate): new_datetime = date.DateTime(new_datetime.year, new_datetime.month, new_datetime.day) delta = new_datetime - now() minutes = delta.minutes() if minutes < 0: return '%d minutes ago' % (-minutes) else: return '%d minutes from now' % minutes taskcoach-1.4.3/taskcoachlib/persistence/xml/writer.py000066400000000000000000000360251265347643000231400ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from xml.etree import ElementTree as ET from taskcoachlib import meta from taskcoachlib.domain import date, task, note, category from xml.etree import ElementTree as ET import os import sys def flatten(elem): if len(elem) and not elem.text: elem.text = '\n' elif elem.text: elem.text = u'\n%s\n' % elem.text elem.tail = '\n' for child in elem: flatten(child) class PIElementTree(ET.ElementTree): def __init__(self, pi, *args, **kwargs): self.__pi = pi ET.ElementTree.__init__(self, *args, **kwargs) def _write(self, file, node, encoding, namespaces): if node == self._root: # WTF? ElementTree does not write the encoding if it's ASCII or UTF-8... if encoding in ['us-ascii', 'utf-8']: file.write('\n' % encoding) file.write(self.__pi.encode(encoding) + '\n') ET.ElementTree._write(self, file, node, encoding, namespaces) # pylint: disable=E1101 def write(self, file, encoding, *args, **kwargs): if encoding is None: encoding = 'utf-8' if sys.version_info >= (2, 7): file.write('\n' % encoding) file.write(self.__pi.encode(encoding) + '\n') kwargs['xml_declaration'] = False ET.ElementTree.write(self, file, encoding, *args, **kwargs) def sortedById(objects): s = [(obj.id(), obj) for obj in objects] s.sort() return [obj for dummy_id, obj in s] class XMLWriter(object): maxDateTime = date.DateTime() def __init__(self, fd, versionnr=meta.data.tskversion): self.__fd = fd self.__versionnr = versionnr def write(self, taskList, categoryContainer, noteContainer, syncMLConfig, guid): root = ET.Element('tasks') for rootTask in sortedById(taskList.rootItems()): self.taskNode(root, rootTask) ownedNotes = self.notesOwnedByNoteOwners(taskList, categoryContainer) for rootCategory in sortedById(categoryContainer.rootItems()): self.categoryNode(root, rootCategory, taskList, noteContainer, ownedNotes) for rootNote in sortedById(noteContainer.rootItems()): self.noteNode(root, rootNote) if syncMLConfig: self.syncMLNode(root, syncMLConfig) if guid: ET.SubElement(root, 'guid').text = guid flatten(root) PIElementTree('\n' % (meta.data.version, self.__versionnr), root).write(self.__fd, 'utf-8') def notesOwnedByNoteOwners(self, *collectionOfNoteOwners): notes = [] for noteOwners in collectionOfNoteOwners: for noteOwner in noteOwners: notes.extend(noteOwner.notes(recursive=True)) return notes def taskNode(self, parentNode, task): # pylint: disable=W0621 maxDateTime = self.maxDateTime node = self.baseCompositeNode(parentNode, task, 'task', self.taskNode) node.attrib['status'] = str(task.getStatus()) if task.plannedStartDateTime() != maxDateTime: node.attrib['plannedstartdate'] = str(task.plannedStartDateTime()) if task.dueDateTime() != maxDateTime: node.attrib['duedate'] = str(task.dueDateTime()) if task.actualStartDateTime() != maxDateTime: node.attrib['actualstartdate'] = str(task.actualStartDateTime()) if task.completionDateTime() != maxDateTime: node.attrib['completiondate'] = str(task.completionDateTime()) if task.percentageComplete(): node.attrib['percentageComplete'] = str(task.percentageComplete()) if task.recurrence(): self.recurrenceNode(node, task.recurrence()) if task.budget() != date.TimeDelta(): node.attrib['budget'] = self.budgetAsAttribute(task.budget()) if task.priority(): node.attrib['priority'] = str(task.priority()) if task.hourlyFee(): node.attrib['hourlyFee'] = str(task.hourlyFee()) if task.fixedFee(): node.attrib['fixedFee'] = str(task.fixedFee()) reminder = task.reminder() if reminder != maxDateTime and reminder != None: node.attrib['reminder'] = str(reminder) reminderBeforeSnooze = task.reminder(includeSnooze=False) if reminderBeforeSnooze != None and reminderBeforeSnooze < task.reminder(): node.attrib['reminderBeforeSnooze'] = str(reminderBeforeSnooze) prerequisiteIds = ' '.join([prerequisite.id() for prerequisite in \ sortedById(task.prerequisites())]) if prerequisiteIds: node.attrib['prerequisites'] = prerequisiteIds if task.shouldMarkCompletedWhenAllChildrenCompleted() != None: node.attrib['shouldMarkCompletedWhenAllChildrenCompleted'] = \ str(task.shouldMarkCompletedWhenAllChildrenCompleted()) for effort in sortedById(task.efforts()): self.effortNode(node, effort) for eachNote in sortedById(task.notes()): self.noteNode(node, eachNote) for attachment in sortedById(task.attachments()): self.attachmentNode(node, attachment) return node def recurrenceNode(self, parentNode, recurrence): attrs = dict(unit=recurrence.unit) if recurrence.amount > 1: attrs['amount'] = str(recurrence.amount) if recurrence.count > 0: attrs['count'] = str(recurrence.count) if recurrence.max > 0: attrs['max'] = str(recurrence.max) if recurrence.stop_datetime != self.maxDateTime: attrs['stop_datetime'] = str(recurrence.stop_datetime) if recurrence.sameWeekday: attrs['sameWeekday'] = 'True' if recurrence.recurBasedOnCompletion: attrs['recurBasedOnCompletion'] = 'True' return ET.SubElement(parentNode, 'recurrence', attrs) def effortNode(self, parentNode, effort): formattedStart = self.formatDateTime(effort.getStart()) attrs = dict(id=effort.id(), status=str(effort.getStatus()), start=formattedStart) stop = effort.getStop() if stop != None: formattedStop = self.formatDateTime(stop) if formattedStop == formattedStart: # Make sure the effort duration is at least one second formattedStop = self.formatDateTime(stop + date.ONE_SECOND) attrs['stop'] = formattedStop node = ET.SubElement(parentNode, 'effort', attrs) if effort.description(): ET.SubElement(node, 'description').text = effort.description() return node def categoryNode(self, parentNode, category, *categorizableContainers): # pylint: disable=W0621 def inCategorizableContainer(categorizable): for container in categorizableContainers: if categorizable in container: return True return False node = self.baseCompositeNode(parentNode, category, 'category', self.categoryNode, categorizableContainers) if category.isFiltered(): node.attrib['filtered'] = str(category.isFiltered()) if category.hasExclusiveSubcategories(): node.attrib['exclusiveSubcategories'] = str(category.hasExclusiveSubcategories()) for eachNote in sortedById(category.notes()): self.noteNode(node, eachNote) for attachment in sortedById(category.attachments()): self.attachmentNode(node, attachment) # Make sure the categorizables referenced are actually in the # categorizableContainer, i.e. they are not deleted categorizableIds = ' '.join([categorizable.id() for categorizable in \ sortedById(category.categorizables()) if inCategorizableContainer(categorizable)]) if categorizableIds: node.attrib['categorizables'] = categorizableIds return node def noteNode(self, parentNode, note): # pylint: disable=W0621 node = self.baseCompositeNode(parentNode, note, 'note', self.noteNode) for attachment in sortedById(note.attachments()): self.attachmentNode(node, attachment) return node def __baseNode(self, parentNode, item, nodeName): node = ET.SubElement(parentNode, nodeName, dict(id=item.id(), status=str(item.getStatus()))) if item.creationDateTime() > date.DateTime.min: node.attrib['creationDateTime'] = str(item.creationDateTime()) if item.modificationDateTime() > date.DateTime.min: node.attrib['modificationDateTime'] = str(item.modificationDateTime()) if item.subject(): node.attrib['subject'] = item.subject() if item.description(): ET.SubElement(node, 'description').text = item.description() return node def baseNode(self, parentNode, item, nodeName): ''' Create a node and add the attributes that all domain objects share, such as id, subject, description. ''' node = self.__baseNode(parentNode, item, nodeName) if item.foregroundColor(): node.attrib['fgColor'] = str(item.foregroundColor()) if item.backgroundColor(): node.attrib['bgColor'] = str(item.backgroundColor()) if item.font(): node.attrib['font'] = unicode(item.font().GetNativeFontInfoDesc()) if item.icon(): node.attrib['icon'] = str(item.icon()) if item.selectedIcon(): node.attrib['selectedIcon'] = str(item.selectedIcon()) if item.ordering(): node.attrib['ordering'] = str(item.ordering()) return node def baseCompositeNode(self, parentNode, item, nodeName, childNodeFactory, childNodeFactoryArgs=()): ''' Same as baseNode, but also create child nodes by means of the childNodeFactory. ''' node = self.__baseNode(parentNode, item, nodeName) if item.foregroundColor(): node.attrib['fgColor'] = str(item.foregroundColor()) if item.backgroundColor(): node.attrib['bgColor'] = str(item.backgroundColor()) if item.font(): node.attrib['font'] = unicode(item.font().GetNativeFontInfoDesc()) if item.icon(): node.attrib['icon'] = str(item.icon()) if item.selectedIcon(): node.attrib['selectedIcon'] = str(item.selectedIcon()) if item.ordering(): node.attrib['ordering'] = str(item.ordering()) if item.expandedContexts(): node.attrib['expandedContexts'] = \ str(tuple(sorted(item.expandedContexts()))) for child in sortedById(item.children()): childNodeFactory(node, child, *childNodeFactoryArgs) # pylint: disable=W0142 return node def attachmentNode(self, parentNode, attachment): node = self.baseNode(parentNode, attachment, 'attachment') node.attrib['type'] = attachment.type_ data = attachment.data() if data is None: node.attrib['location'] = attachment.location() else: ET.SubElement(node, 'data', dict(extension=os.path.splitext(attachment.location())[-1])).text = \ data.encode('base64') for eachNote in sortedById(attachment.notes()): self.noteNode(node, eachNote) return node def syncMLNode(self, parentNode, syncMLConfig): node = ET.SubElement(parentNode, 'syncmlconfig') self.__syncMLNode(syncMLConfig, node) return node def __syncMLNode(self, cfg, node): for name, value in cfg.properties(): ET.SubElement(node, 'property', dict(name=name)).text = value for childCfg in cfg.children(): child = ET.SubElement(node, childCfg.name) self.__syncMLNode(childCfg, child) def budgetAsAttribute(self, budget): return '%d:%02d:%02d' % budget.hoursMinutesSeconds() def formatDateTime(self, dateTime): return dateTime.strftime('%Y-%m-%d %H:%M:%S') class ChangesXMLWriter(object): def __init__(self, fd): self.__fd = fd def write(self, allChanges): root = ET.Element('changes') if allChanges: for devName, monitor in allChanges.items(): devNode = ET.SubElement(root, 'device') devNode.attrib['guid'] = monitor.guid() for id_, changes in monitor.allChanges().items(): objNode = ET.SubElement(devNode, 'obj') objNode.attrib['id'] = id_ if changes: objNode.text = ','.join(list(changes)) tree = ET.ElementTree(root) tree.write(self.__fd) class TemplateXMLWriter(XMLWriter): def write(self, tsk): # pylint: disable=W0221 super(TemplateXMLWriter, self).write(task.TaskList([tsk]), category.CategoryList(), note.NoteContainer(), None, None) def taskNode(self, parentNode, task): # pylint: disable=W0621 node = super(TemplateXMLWriter, self).taskNode(parentNode, task) for name, getter in [('plannedstartdate', 'plannedStartDateTime'), ('duedate', 'dueDateTime'), ('completiondate', 'completionDateTime'), ('reminder', 'reminder')]: if hasattr(task, name + 'tmpl'): value = getattr(task, name + 'tmpl') or None else: dateTime = getattr(task, getter)() if dateTime not in (None, date.DateTime()): delta = dateTime - date.Now() minutes = delta.days * 24 * 60 + round(delta.seconds / 60.) if minutes < 0: value = '%d minutes ago' % -minutes else: value = '%d minutes from now' % minutes else: value = None if value is None: if name in node.attrib: del node.attrib[name] else: node.attrib[name + 'tmpl'] = value return node taskcoach-1.4.3/taskcoachlib/powermgt/000077500000000000000000000000001265347643000177645ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/powermgt/__init__.py000066400000000000000000000021001265347643000220660ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import sys if sys.platform == 'win32': from taskcoachlib.powermgt.win32 import PowerStateMixin elif sys.platform == 'darwin': from taskcoachlib.powermgt.macos import PowerStateMixin else: # No way to know yet from taskcoachlib.powermgt.base import PowerStateMixinBase as PowerStateMixin from taskcoachlib.powermgt.idle import IdleNotifier taskcoach-1.4.3/taskcoachlib/powermgt/base.py000066400000000000000000000021711265347643000212510ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' class PowerStateMixinBase(object): """ This is a mixin intended to be used on a wx.Frame/wx.Window. It calls the OnPowerState method when the computer's power state changes. @cvar POWEROFF: The system is going off @cvar POWERON: The system has gone on """ POWEROFF = 1 POWERON = 2 def OnPowerState(self, type_): pass def OnQuit(self): pass taskcoach-1.4.3/taskcoachlib/powermgt/idle.py000066400000000000000000000133661265347643000212640ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import sys, time, wx from taskcoachlib import operating_system from ctypes import * #============================================================================== # Linux/BSD if operating_system.isGTK(): class XScreenSaverInfo(Structure): _fields_ = [('window', c_ulong), ('state', c_int), ('kind', c_int), ('til_or_since', c_ulong), ('idle', c_ulong), ('event_mask', c_ulong)] class LinuxIdleQuery(object): def __init__(self): _x11 = CDLL('libX11.so.6') self.XOpenDisplay = CFUNCTYPE(c_ulong, c_char_p)(('XOpenDisplay', _x11)) self.XCloseDisplay = CFUNCTYPE(c_int, c_ulong)(('XCloseDisplay', _x11)) self.XRootWindow = CFUNCTYPE(c_ulong, c_ulong, c_int)(('XRootWindow', _x11)) self.dpy = self.XOpenDisplay(None) _xss = CDLL('libXss.so.1') self.XScreenSaverAllocInfo = CFUNCTYPE(POINTER(XScreenSaverInfo))(('XScreenSaverAllocInfo', _xss)) self.XScreenSaverQueryInfo = CFUNCTYPE(c_int, c_ulong, c_ulong, POINTER(XScreenSaverInfo))(('XScreenSaverQueryInfo', _xss)) self.info = self.XScreenSaverAllocInfo() def __del__(self): self.XCloseDisplay(self.dpy) def getIdleSeconds(self): self.XScreenSaverQueryInfo(self.dpy, self.XRootWindow(self.dpy, 0), self.info) return 1.0 * self.info.contents.idle / 1000 IdleQuery = LinuxIdleQuery elif operating_system.isWindows(): class LASTINPUTINFO(Structure): _fields_ = [('cbSize', c_uint), ('dwTime', c_uint)] class WindowsIdleQuery(object): def __init__(self): self.GetTickCount = windll.kernel32.GetTickCount self.GetLastInputInfo = windll.user32.GetLastInputInfo self.lastInputInfo = LASTINPUTINFO() self.lastInputInfo.cbSize = sizeof(self.lastInputInfo) def getIdleSeconds(self): self.GetLastInputInfo(byref(self.lastInputInfo)) return (1.0 * self.GetTickCount() - self.lastInputInfo.dwTime) / 1000 IdleQuery = WindowsIdleQuery elif operating_system.isMac(): # When running from source, select the right binary... if not hasattr(sys, 'frozen'): import struct, os if struct.calcsize('L') == 8: _subdir = 'ia64' else: _subdir = 'ia32' sys.path.insert(0, os.path.join(os.path.split(__file__)[0], '..', '..', 'extension', 'macos', 'bin-%s' % _subdir)) import _idle class MacIdleQuery(_idle.Idle): def getIdleSeconds(self): return self.get() IdleQuery = MacIdleQuery #============================================================================== # class IdleNotifier(wx.EvtHandler, IdleQuery): STATE_SLEEPING = 0 STATE_AWAKE = 1 def __init__(self): wx.EvtHandler.__init__(self) IdleQuery.__init__(self) self.state = self.STATE_AWAKE self.lastActivity = time.time() self.goneToSleep = None self._bound = True wx.GetApp().Bind(wx.EVT_IDLE, self._OnIdle) def stop(self): self.pause() def pause(self): if self._bound: wx.GetApp().Unbind(wx.EVT_IDLE, handler=self._OnIdle) self._bound = False def resume(self): self.state = self.STATE_AWAKE self.lastActivity = time.time() if not self._bound: wx.GetApp().Bind(wx.EVT_IDLE, self._OnIdle) def _check(self): if self.state == self.STATE_AWAKE and time.time() - self.lastActivity >= self.getMinIdleTime(): self.goneToSleep = self.lastActivity self.state = self.STATE_SLEEPING self.sleep() elif self.state == self.STATE_SLEEPING and time.time() - self.lastActivity < self.getMinIdleTime(): self.state = self.STATE_AWAKE self.wake(self.goneToSleep) def _OnIdle(self, event): self._check() self.lastActivity = time.time() - self.getIdleSeconds() self._check() event.Skip() def poweroff(self): """ Call this when the computer goes to sleep. """ if self._bound: wx.GetApp().Unbind(wx.EVT_IDLE, handler=self._OnIdle) self._bound = False def poweron(self): """ Call this when the computer resumes from sleep. """ if not self._bound: wx.GetApp().Bind(wx.EVT_IDLE, self._OnIdle) self._bound = True self._check() self.lastActivity = time.time() - self.getIdleSeconds() self._check() def getMinIdleTime(self): """ Should return the minimum time in seconds before going idle. """ raise NotImplementedError def sleep(self): """ Called when the min idle time has elapsed without any user input. """ def wake(self, timestamp): """ Called when the computer is not idle any more. """ taskcoach-1.4.3/taskcoachlib/powermgt/macos.py000066400000000000000000000040071265347643000214410ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # When running from source, select the right binary... import sys if not hasattr(sys, 'frozen'): import struct, os _subdir = 'ia64' if struct.calcsize('L') == 8 else 'ia32' sys.path.insert(0, os.path.join(os.path.split(__file__)[0], '..', '..', 'extension', 'macos', 'bin-%s' % _subdir)) import _powermgt # pylint: disable=F0401 import threading import wx from taskcoachlib.powermgt.base import PowerStateMixinBase class PowerStateMixin(PowerStateMixinBase): POWERON = _powermgt.POWERON POWEROFF = _powermgt.POWEROFF def __init__(self, *args, **kwargs): super(PowerStateMixin, self).__init__(*args, **kwargs) class Observer(_powermgt.PowerObserver): def __init__(self, cb): super(Observer, self).__init__() self.__callback = cb def PowerNotification(self, state): wx.CallAfter(self.__callback, state) self.__observer = Observer(self.__OnPowerState) self.__thread = threading.Thread(target=self.__observer.run) # pylint: disable=E1101 self.__thread.start() def __OnPowerState(self, state): self.OnPowerState(state) def OnQuit(self): self.__observer.stop() # pylint: disable=E1101 self.__thread.join() taskcoach-1.4.3/taskcoachlib/powermgt/win32.py000066400000000000000000000035261265347643000213060ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.powermgt.base import PowerStateMixinBase # pylint: disable=F0401 import win32api import win32gui import win32con import wx class PowerStateMixin(PowerStateMixinBase): def __init__(self, *args, **kwargs): super(PowerStateMixin, self).__init__(*args, **kwargs) self.__oldProc = win32gui.SetWindowLong(self.GetHandle(), win32con.GWL_WNDPROC, self.__WndProc) def __WndProc(self, hWnd, msg, wParam, lParam): if msg == win32con.WM_DESTROY: win32api.SetWindowLong(self.GetHandle(), win32con.GWL_WNDPROC, self.__oldProc) if msg == win32con.WM_POWERBROADCAST: if wParam == win32con.PBT_APMSUSPEND: wx.CallAfter(self.OnPowerState, self.POWEROFF) elif wParam == win32con.PBT_APMRESUMESUSPEND: wx.CallAfter(self.OnPowerState, self.POWERON) return win32gui.CallWindowProc(self.__oldProc, hWnd, msg, wParam, lParam) taskcoach-1.4.3/taskcoachlib/powermgt/xsm.py000077500000000000000000000337141265347643000211600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, select, time, threading from ctypes import * _libSM = CDLL('libSM.so.6') _libICE = CDLL('libICE.so.6') #============================================================================== # ICE stuff... Bool = c_int Status = c_int class _IceConn(Structure): pass IceConn = POINTER(_IceConn) IceWatchProc = CFUNCTYPE(None, IceConn, c_void_p, Bool, POINTER(c_void_p)) IceInitThreads = CFUNCTYPE(Status)(('IceInitThreads', _libICE)) IceAddConnectionWatch = CFUNCTYPE(Status, IceWatchProc, c_void_p)(('IceAddConnectionWatch', _libICE)) IceRemoveConnectionWatch = CFUNCTYPE(None, IceWatchProc, c_void_p)(('IceRemoveConnectionWatch', _libICE)) IceConnectionNumber = CFUNCTYPE(c_int, IceConn)(('IceConnectionNumber', _libICE)) IceProcessMessages = CFUNCTYPE(c_int, IceConn, c_void_p, c_void_p)(('IceProcessMessages', _libICE)) IceCloseConnection = CFUNCTYPE(c_int, IceConn)(('IceCloseConnection', _libICE)) IceIOErrorHandler = CFUNCTYPE(None, IceConn) IceSetIOErrorHandler = CFUNCTYPE(IceIOErrorHandler, IceIOErrorHandler)(('IceSetIOErrorHandler', _libICE)) #============================================================================== # Constants # Callback masks SmcSaveYourselfProcMask = (1 << 0) SmcDieProcMask = (1 << 1) SmcSaveCompleteProcMask = (1 << 2) SmcShutdownCancelledProcMask = (1 << 3) # Status SmcClosedNow = 0 SmcClosedASAP = 1 SmcConnectionInUse = 2 # Interaction types SmInteractStyleNone = 0 SmInteractStyleErrors = 1 SmInteractStyleAny = 2 # Save types SmSaveGlobal = 0 SmSaveLocal = 1 SmSaveBoth = 2 # Restart hints SmRestartIfRunning = 0 SmRestartAnyway = 1 SmRestartImmediately = 2 SmRestartNever = 3 # Property types SmCARD8 = "CARD8" # Single character SmARRAY8 = "ARRAY8" # String SmLISTofARRAY8 = "LISTofARRAY8" # List of strings # Property names SmCloneCommand = "CloneCommand" SmCurrentDirectory = "CurrentDirectory" SmDiscardCommand = "DiscardCommand" SmEnvironment = "Environment" SmProcessID = "ProcessID" SmProgram = "Program" SmRestartCommand = "RestartCommand" SmResignCommand = "ResignCommand" SmRestartStyleHint = "RestartStyleHint" SmShutdownCommand = "ShutdownCommand" SmUserID = "UserID" #============================================================================== # Types and structures class _SmcConn(Structure): pass SmcConn = POINTER(_SmcConn) SmcSaveYourselfProc = CFUNCTYPE(None, SmcConn, c_void_p, c_int, Bool, c_int, Bool) SmcDieProc = CFUNCTYPE(None, SmcConn, c_void_p) SmcSaveCompleteProc = CFUNCTYPE(None, SmcConn, c_void_p) SmcShutdownCancelledProc = CFUNCTYPE(None, SmcConn, c_void_p) class SmcSaveYourselfCallback(Structure): _fields_ = [('callback', SmcSaveYourselfProc), ('client_data', c_void_p)] class SmcDieCallback(Structure): _fields_ = [('callback', SmcDieProc), ('client_data', c_void_p)] class SmcSaveCompleteCallback(Structure): _fields_ = [('callback', SmcSaveCompleteProc), ('client_data', c_void_p)] class SmcShutdownCancelledCallback(Structure): _fields_ = [('callback', SmcShutdownCancelledProc), ('client_data', c_void_p)] class SmcCallbacks(Structure): _fields_ = [('save_yourself', SmcSaveYourselfCallback), ('die', SmcDieCallback), ('save_complete', SmcSaveCompleteCallback), ('shutdown_cancelled', SmcShutdownCancelledCallback)] class SmPropValue(Structure): _fields_ = [('length', c_int), ('value', c_void_p)] class SmProp(Structure): _fields_ = [('name', c_char_p), ('type', c_char_p), ('num_vals', c_int), ('values', POINTER(SmPropValue))] #============================================================================== # Functions SmcOpenConnection = CFUNCTYPE(SmcConn, c_char_p, c_void_p, c_int, c_int, c_ulong, POINTER(SmcCallbacks), c_char_p, POINTER(c_char_p), c_int, c_char_p)(('SmcOpenConnection', _libSM)) SmcCloseConnection = CFUNCTYPE(c_int, SmcConn, c_int, POINTER(c_char_p))(('SmcCloseConnection', _libSM)) SmcModifyCallbacks = CFUNCTYPE(None, SmcConn, c_ulong, POINTER(SmcCallbacks))(('SmcModifyCallbacks', _libSM)) SmcSaveYourselfDone = CFUNCTYPE(None, SmcConn, Bool)(('SmcSaveYourselfDone', _libSM)) SmcProtocolVersion = CFUNCTYPE(c_int, SmcConn)(('SmcProtocolVersion', _libSM)) SmcProtocolRevision = CFUNCTYPE(c_int, SmcConn)(('SmcProtocolRevision', _libSM)) SmcVendor = CFUNCTYPE(c_char_p, SmcConn)(('SmcVendor', _libSM)) SmcRelease = CFUNCTYPE(c_char_p, SmcConn)(('SmcRelease', _libSM)) SmcSetProperties = CFUNCTYPE(None, SmcConn, c_int, POINTER(POINTER(SmProp)))(('SmcSetProperties', _libSM)) #============================================================================== # Higher-level stuff class ICELoop(threading.Thread): """ This class manages ICE connections tracking and select()ing them before calling IceProcessMessages. """ def __init__(self): # Don't track all connections. It seems to cause SIGSEGV when ProcessMessages # is called on another one self.connection = None self.cancelled = False self.watchProc = IceWatchProc(self._onWatch) IceAddConnectionWatch(self.watchProc, None) super(ICELoop, self).__init__() self.start() def stop(self): """ Stop the main loop. Don't forget to join() this afterwards. """ IceRemoveConnectionWatch(self.watchProc, None) self.cancelled = True def _onWatch(self, conn, client_data, opening, watchdata): if opening and self.connection is None: self.connection = (conn, IceConnectionNumber(conn)) def run(self): class DummyDescriptor(object): def __init__(self, fd): self.fd = fd def fileno(self): return self.fd while not self.cancelled: if self.connection is not None: fds = [DummyDescriptor(self.connection[1])] ready, _, _ = select.select(fds, [], [], 1.0) if ready: IceProcessMessages(self.connection[0], None, None) else: time.sleep(1.0) class SessionMonitor(ICELoop): """ Higher-level class to monitor session management event. Subclass this and overload the saveYourself, die, saveComplete and shutdownCancelled methods to do actual work. """ def __init__(self): super(SessionMonitor, self).__init__() self.callbacks = SmcCallbacks(SmcSaveYourselfCallback(SmcSaveYourselfProc(self._saveYourself), None), SmcDieCallback(SmcDieProc(self._die), None), SmcSaveCompleteCallback(SmcSaveCompleteProc(self._saveComplete), None), SmcShutdownCancelledCallback(SmcShutdownCancelledProc(self._shutdownCancelled), None)) id_ret = c_char_p() try: # Some distros seem to not define this env variable. Strange. os.environ['SESSION_MANAGER'] except KeyError: self.conn = None else: self.conn = SmcOpenConnection(os.environ['SESSION_MANAGER'], None, 1, 0, SmcSaveYourselfProcMask|SmcDieProcMask|SmcSaveCompleteProcMask|SmcShutdownCancelledProcMask, byref(self.callbacks), None, byref(id_ret), 0, None) self.clientID = id_ret.value IceSetIOErrorHandler(IceIOErrorHandler(self._onIceError)) def isValid(self): return self.conn is not None and self.connection is not None def _onIceError(self, conn): if self.isValid(): IceCloseConnection(conn) # XXXTODO: retry ? How ? def stop(self): super(SessionMonitor, self).stop() self.join() if self.isValid(): SmcCloseConnection(self.conn, 0, None) def setProperty(self, name, value): if self.isValid(): if isinstance(value, unicode): value = value.encode('UTF-8') if isinstance(value, str): propval = SmPropValue(len(value), cast(c_char_p(value), c_void_p)) prop = SmProp(name, c_char_p(SmARRAY8), 1, pointer(propval)) SmcSetProperties(self.conn, 1, pointer(pointer(prop))) elif isinstance(value, int): value = chr(value) propval = SmPropValue(1, cast(c_char_p(value), c_void_p)) prop = SmProp(name, c_char_p(SmCARD8), 1, pointer(propval)) SmcSetProperties(self.conn, 1, pointer(pointer(prop))) elif isinstance(value, list): values = (SmPropValue * len(value))() for idx, val in enumerate(value): if isinstance(val, unicode): val = val.encode('UTF-8') values[idx].length = len(val) values[idx].value = cast(c_char_p(val), c_void_p) prop = SmProp(name, c_char_p(SmLISTofARRAY8), len(value), values) SmcSetProperties(self.conn, 1, pointer(pointer(prop))) else: raise TypeError('Unsupported property type: %s' % str(type(value))) def saveYourselfDone(self, status=True): """ Call this after a save yourself. """ if self.isValid(): SmcSaveYourselfDone(self.conn, int(status)) def _saveYourself(self, conn, client_data, save_type, shutdown, interact_style, fast): if self.isValid(): self.saveYourself(save_type, shutdown, interact_style, fast) def saveYourself(self, save_type, shutdown, interact_style, fast): """ Save yourself request. @param save_type: Type of save; see the SmSave* constants. @param shutdown: True if a shutdown is in progress. @param interact_style: Types of user interactions allowed. See the smInteractStyle* constants. @param fast: Dunno. """ raise NotImplementedError def _die(self, conn, client_data): self.die() def die(self): """ Die request. A competent session manager should have sent a save yourself request before this. """ raise NotImplementedError def _saveComplete(self, conn, client_data): self.saveComplete() def saveComplete(self): """ A save has completed. """ raise NotImplementedError def _shutdownCancelled(self, conn, client_data): self.shutdownCancelled() def shutdownCancelled(self): """ Shutdown cancelled by the user. """ raise NotImplementedError # Properties @property def version(self): return SmcProtocolVersion(self.conn) if self.isValid() else None @property def revision(self): return SmcProtocolRevision(self.conn) if self.isValid() else None @property def vendor(self): return SmcVendor(self.conn) if self.isValid() else None # Leak @property def release(self): return SmcRelease(self.conn) if self.isValid() else None # Leak #============================================================================== # Testing if __name__ == '__main__': class TestMonitor(SessionMonitor): def __init__(self): super(TestMonitor, self).__init__() print 'Version:', self.version print 'Revision:', self.revision print 'Vendor:', self.vendor print 'Release:', self.release print 'Client ID:', self.clientID def log(self, msg): file('session.txt', 'a+').write('==== %s\n' % msg) print msg def saveYourself(self, save_type, shutdown, interact_style, fast): self.log('Save yourself %d %d %d %d' % (save_type, shutdown, interact_style, fast)) self.saveYourselfDone(True) def die(self): self.log('Die') def saveComplete(self): self.log('Save complete') def shutdownCancelled(self): self.log('Shutdown cancelled') monitor = TestMonitor() raw_input('') monitor.stop() monitor.join() taskcoach-1.4.3/taskcoachlib/render.py000066400000000000000000000320141265347643000177510ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' ''' render.py - functions to render various objects, like date, time, etc. ''' # pylint: disable=W0105 from taskcoachlib.domain import date as datemodule from taskcoachlib.thirdparty import desktop from taskcoachlib.i18n import _ from taskcoachlib import operating_system import datetime import codecs import locale import re # pylint: disable=W0621 def priority(priority): ''' Render an (integer) priority ''' return str(priority) def timeLeft(time_left, completed_task): ''' Render time left as a text string. Returns an empty string for completed tasks and for tasks without planned due date. Otherwise it returns the number of days, hours, and minutes left. ''' if completed_task or time_left == datemodule.TimeDelta.max: return '' sign = '-' if time_left.days < 0 else '' time_left = abs(time_left) if time_left.days > 0: days = _('%d days') % time_left.days if time_left.days > 1 else \ _('1 day') days += ', ' else: days = '' hours_and_minutes = ':'.join(str(time_left).split(':')[:-1]).split(', ')[-1] return sign + days + hours_and_minutes def timeSpent(timeSpent, showSeconds=True, decimal=False): ''' Render time spent (of type date.TimeDelta) as "::" or ":" ''' if decimal: return timeSpentDecimal(timeSpent) zero = datemodule.TimeDelta() if timeSpent == zero: return '' else: sign = '-' if timeSpent < zero else '' hours, minutes, seconds = timeSpent.hoursMinutesSeconds() return sign + '%d:%02d' % (hours, minutes) + \ (':%02d' % seconds if showSeconds else '') def timeSpentDecimal(timeSpent): ''' Render time spent (of type date.TimeDelta) as ". ''' zero = datemodule.TimeDelta() if timeSpent == zero: return '' else: sign = '-' if timeSpent < zero else '' hours, minutes, seconds = timeSpent.hoursMinutesSeconds() decimalHours = hours + minutes/60.0 + seconds/3600.0 return sign + '%.2f' % (decimalHours) def recurrence(recurrence): ''' Render the recurrence as a short string describing the frequency of the recurrence. ''' if not recurrence: return '' if recurrence.amount > 2: labels = [_('Every %(frequency)d days'), _('Every %(frequency)d weeks'), _('Every %(frequency)d months'), _('Every %(frequency)d years')] elif recurrence.amount == 2: labels = [_('Every other day'), _('Every other week'), _('Every other month'), _('Every other year')] else: labels = [_('Daily'), _('Weekly'), _('Monthly'), _('Yearly')] mapping = dict(zip(['daily', 'weekly', 'monthly', 'yearly'], labels)) return mapping.get(recurrence.unit) % dict(frequency=recurrence.amount) def budget(aBudget): ''' Render budget (of type date.TimeDelta) as "::". ''' return timeSpent(aBudget) # Default time formatting language_and_country = locale.getlocale(locale.LC_TIME)[0] if language_and_country and ('_US' in language_and_country or '_United States' in language_and_country): timeFormat = '%I %p' timeWithMinutesFormat = '%I:%M %p' timeWithSecondsFormat = '%I:%M:%S %p' else: timeFormat = '%H' timeWithMinutesFormat = '%H:%M' # %X includes seconds (see http://stackoverflow.com/questions/2507726) timeWithSecondsFormat = '%X' def rawTimeFunc(dt, minutes=True, seconds=False): if seconds: fmt = timeWithSecondsFormat else: if minutes: fmt = timeWithMinutesFormat else: fmt = timeFormat return datemodule.DateTime.strftime(dt, fmt) dateFormat = '%x' def rawDateFunc(dt=None): return operating_system.decodeSystemString(datetime.datetime.strftime(dt, dateFormat)) def dateFunc(dt=None, humanReadable=False): if humanReadable: theDate = dt.date() if theDate == datemodule.Now().date(): return _('Today') elif theDate == datemodule.Yesterday().date(): return _('Yesterday') elif theDate == datemodule.Tomorrow().date(): return _('Tomorrow') return rawDateFunc(dt) # OS-specific time formatting if operating_system.isWindows(): import pywintypes, win32api def rawTimeFunc(dt, minutes=True, seconds=False): if seconds: # You can't include seconds without minutes flags = 0x0 else: if minutes: flags = 0x2 else: flags = 0x1 return operating_system.decodeSystemString(win32api.GetTimeFormat(0x400, flags, None if dt is None else pywintypes.Time(dt), None)) def rawDateFunc(dt): return operating_system.decodeSystemString(win32api.GetDateFormat(0x400, 0, None if dt is None else pywintypes.Time(dt), None)) elif operating_system.isMac(): import Cocoa, calendar # We don't actually respect the 'seconds' parameter; this assumes that the short time format does # not include them, but the medium format does. _shortFormatter = Cocoa.NSDateFormatter.alloc().init() _shortFormatter.setFormatterBehavior_(Cocoa.NSDateFormatterBehavior10_4) _shortFormatter.setTimeStyle_(Cocoa.NSDateFormatterShortStyle) _shortFormatter.setDateStyle_(Cocoa.NSDateFormatterNoStyle) _shortFormatter.setTimeZone_(Cocoa.NSTimeZone.timeZoneForSecondsFromGMT_(0)) _mediumFormatter = Cocoa.NSDateFormatter.alloc().init() _mediumFormatter.setFormatterBehavior_(Cocoa.NSDateFormatterBehavior10_4) _mediumFormatter.setTimeStyle_(Cocoa.NSDateFormatterMediumStyle) _mediumFormatter.setDateStyle_(Cocoa.NSDateFormatterNoStyle) _mediumFormatter.setTimeZone_(Cocoa.NSTimeZone.timeZoneForSecondsFromGMT_(0)) # Special case for hour without minutes or seconds. I don't know if it is possible to get the AM/PM # setting alone, so parse the format string instead. # See http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns _state = 0 _hourFormat = u'' _ampmFormat = u'' for c in _mediumFormatter.dateFormat(): if _state == 0: if c == u"'": _state = 1 # After single quote elif c in [u'h', u'H', u'k', u'K', u'j']: _hourFormat += c elif c == 'a': _ampmFormat = c elif _state == 1: if c == u"'": _state = 0 else: _state = 2 # Escaped string elif _state == 2: if c == u"'": _state = 0 _hourFormatter = Cocoa.NSDateFormatter.alloc().init() _hourFormatter.setFormatterBehavior_(Cocoa.NSDateFormatterBehavior10_4) _hourFormatter.setDateFormat_(_hourFormat + (' %s' % _ampmFormat if _ampmFormat else '')) _hourFormatter.setTimeZone_(Cocoa.NSTimeZone.timeZoneForSecondsFromGMT_(0)) _dateFormatter = Cocoa.NSDateFormatter.alloc().init() _dateFormatter.setFormatterBehavior_(Cocoa.NSDateFormatterBehavior10_4) _dateFormatter.setDateStyle_(Cocoa.NSDateFormatterShortStyle) _dateFormatter.setTimeStyle_(Cocoa.NSDateFormatterNoStyle) _dateFormatter.setTimeZone_(Cocoa.NSTimeZone.timeZoneForSecondsFromGMT_(0)) def _applyFormatter(dt, fmt): dt_native = Cocoa.NSDate.dateWithTimeIntervalSince1970_((dt - datetime.datetime(1970, 1, 1, 0, 0, 0, 0)).total_seconds()) return fmt.stringFromDate_(dt_native) def rawTimeFunc(dt, minutes=True, seconds=False): if minutes: if seconds: return _applyFormatter(dt, _mediumFormatter) return _applyFormatter(dt, _shortFormatter) return _applyFormatter(dt, _hourFormatter) def rawDateFunc(dt): return _applyFormatter(datetime.datetime.combine(dt, datetime.time(0, 0, 0, 0)), _dateFormatter) elif desktop.get_desktop() == 'KDE4': try: # Import gtk first because when it's imported indirectly it generates a RuntimeWarning. import gtk from PyKDE4.kdecore import KGlobal, KLocale from PyQt4.QtCore import QTime, QDate except ImportError: pass else: _localeCopy = KLocale(KGlobal.locale()) if '%p' in KGlobal.locale().timeFormat(): _localeCopy.setTimeFormat('%I %p') else: _localeCopy.setTimeFormat('%H') def rawTimeFunc(dt, minutes=True, seconds=False): qtdt = QTime(dt.hour, dt.minute, dt.second) if minutes: return unicode(KGlobal.locale().formatTime(qtdt, seconds)) return unicode(_localeCopy.formatTime(qtdt)) def rawDateFunc(dt): qtdt = QDate(dt.year, dt.month, dt.day) return unicode(KGlobal.locale().formatDate(qtdt, 0)) timeFunc = lambda dt, minutes=True, seconds=False: operating_system.decodeSystemString(rawTimeFunc(dt, minutes=minutes, seconds=seconds)) dateTimeFunc = lambda dt=None, humanReadable=False: u'%s %s' % (dateFunc(dt, humanReadable=humanReadable), timeFunc(dt)) def date(aDateTime, humanReadable=False): ''' Render a date/time as date. ''' if str(aDateTime) == '': return '' year = aDateTime.year if year >= 1900: return dateFunc(aDateTime, humanReadable=humanReadable) else: result = date(datemodule.DateTime(year + 1900, aDateTime.month, aDateTime.day), humanReadable=humanReadable) return re.sub(str(year + 1900), str(year), result) def dateTime(aDateTime, humanReadable=False): if not aDateTime or aDateTime == datemodule.DateTime() or aDateTime == datemodule.DateTime.min: return '' timeIsMidnight = (aDateTime.hour, aDateTime.minute) in ((0, 0), (23, 59)) year = aDateTime.year if year >= 1900: return dateFunc(aDateTime, humanReadable=humanReadable) if timeIsMidnight else \ dateTimeFunc(aDateTime, humanReadable=humanReadable) else: result = dateTime(aDateTime.replace(year=year + 1900), humanReadable=humanReadable) return re.sub(str(year + 1900), str(year), result) def dateTimePeriod(start, stop, humanReadable=False): if stop is None: return '%s - %s' % (dateTime(start, humanReadable=humanReadable), _('now')) elif start.date() == stop.date(): return '%s %s - %s' % (date(start, humanReadable=humanReadable), time(start), time(stop)) else: return '%s - %s' % (dateTime(start, humanReadable=humanReadable), dateTime(stop, humanReadable=humanReadable)) def time(dateTime, seconds=False, minutes=True): try: # strftime doesn't handle years before 1900, be prepared: dateTime = dateTime.replace(year=2000) except TypeError: # We got a time instead of a dateTime dateTime = datemodule.Now().replace(hour=dateTime.hour, minute=dateTime.minute, second=dateTime.second) return timeFunc(dateTime, minutes=minutes, seconds=seconds) def month(dateTime): return dateTime.strftime('%Y %B') def weekNumber(dateTime): # Would have liked to use dateTime.strftime('%Y-%U'), but the week number # is one off in 2004 return '%d-%d' % (dateTime.year, dateTime.weeknumber()) def monetaryAmount(aFloat): ''' Render a monetary amount, using the user's locale. ''' return '' if round(aFloat, 2) == 0 else \ locale.format('%.2f', aFloat, monetary=True) def percentage(aFloat): ''' Render a percentage. ''' return '' if round(aFloat, 0) == 0 else '%.0f%%' % aFloat def exception(exception, instance): ''' Safely render an exception, being prepared for new exceptions. ''' try: # In this order. Python 2.6 fixed the unicode exception problem. try: return unicode(instance) except UnicodeDecodeError: # On Windows, some exceptions raised by win32all lead to this # Hack around it result = [] for val in instance.args: if isinstance(val, unicode): result.append(val.encode('UTF-8')) else: result.append(val) return unicode(result) except UnicodeEncodeError: return '' % str(exception) taskcoach-1.4.3/taskcoachlib/speak/000077500000000000000000000000001265347643000172235ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/speak/__init__.py000066400000000000000000000013661265347643000213420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from speaker import Speakertaskcoach-1.4.3/taskcoachlib/speak/speaker.py000066400000000000000000000051061265347643000212310ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system, patterns import subprocess import wx if operating_system.isWindows(): class Speaker(object): ''' No-op class since we don't support speech on Windows yet. ''' def say(self, text): ''' Simply ignore the method call. ''' pass else: class Speaker(object): ''' Class for letting the computer speak texts. Currently 'say' is supported on Mac OS X and 'espeak' on Linux. ''' # Since speech is just one output channel, make this class a singleton. __metaclass__ = patterns.Singleton def __init__(self): if operating_system.isMac(): self.__binary = 'say' elif operating_system.isGTK(): self.__binary = 'espeak' self.__texts_to_say = [] self.__current_speech_process = None def say(self, text): ''' Schedule the text for speaking. ''' self.__texts_to_say.append(text) self.__say_next_text() def __say_next_text(self): ''' Say the next text if there is no speech process currently running. If there is, try again in one second. ''' if self.__is_speaking(): wx.CallLater(1000, self.__say_next_text) return if not self.__texts_to_say: return text = self.__texts_to_say.pop() self.__current_speech_process = subprocess.Popen((self.__binary, text)) def __is_speaking(self): ''' Return whether the computer is currently speaking. ''' process = self.__current_speech_process return process and process.poll() is None taskcoach-1.4.3/taskcoachlib/syncml/000077500000000000000000000000001265347643000174255ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/syncml/__init__.py000066400000000000000000000016761265347643000215500ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' """ Classes for synchronization with a SyncML server (tested with Funambol). This makes use of a Python wrapper for the Funambol C++ API that I wrote, which is currently available at svn://www.fraca7.net/fraca7/pysyncml. """ taskcoach-1.4.3/taskcoachlib/syncml/basesource.py000066400000000000000000000154041265347643000221360ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.syncml.core import * from taskcoachlib.i18n import _ class BaseSource(SyncSource): def __init__(self, callback, objectList, *args, **kwargs): super(BaseSource, self).__init__(*args, **kwargs) self.callback = callback self.objectList = objectList self.allObjectsList = [obj for obj in objectList] self.newObjectsList = [obj for obj in objectList if obj.isNew()] self.changedObjectsList = [obj for obj in objectList if obj.isModified()] self.deletedObjectsList = [obj for obj in objectList if obj.isDeleted()] def beginSync(self): if self.syncMode in [REFRESH_FROM_SERVER, REFRESH_FROM_SERVER_BY_SERVER]: if self.objectList: if wx.MessageBox(_('The synchronization for source %s') % self.name + \ _('will be a refresh from server. All local items will\n' \ 'be deleted. Do you wish to continue?'), _('Refresh from server'), wx.YES_NO) != wx.YES: return 514 # Not sure of this self.objectList.clear() self.allObjectsList = [] self.newObjectsList = [] self.changedObjectsList = [] self.deletedObjectsList = [] elif self.syncMode in [REFRESH_FROM_CLIENT, REFRESH_FROM_CLIENT_BY_SERVER]: if wx.MessageBox(_('The synchronization for source %s') % self.name + \ _('will be a refresh from client. All remote items will\n' \ 'be deleted. Do you wish to continue?'), _('Refresh from server'), wx.YES_NO) != wx.YES: return 514 # Not sure of this def endSync(self): pass def _getObject(self, key): """Returns the domain object with local ID 'key', or raise KeyError if not found.""" for obj in self.allObjectsList: if obj.id() == key: return obj raise KeyError, 'No such object: %s' % key def _getItem(self, ls): """Returns a SyncItem instance representing the first domain object in the 'ls' sequence.""" try: obj = ls.pop(0) except IndexError: return None item = SyncItem(obj.id()) if obj.getStatus() == obj.STATUS_NONE: item.state = STATE_NONE elif obj.getStatus() == obj.STATUS_NEW: item.state = STATE_NEW elif obj.getStatus() == obj.STATUS_CHANGED: item.state = STATE_UPDATED elif obj.getStatus() == obj.STATUS_DELETED: item.state = STATE_DELETED self.updateItemProperties(item, obj) return item def updateItemProperties(self, item, obj): """Set item properties (data, dataType...) according to the domain object 'obj'. You must overload this in subclasses.""" raise NotImplementedError def _parseObject(self, item): """Must return a new domain object from a SyncItem instance.""" raise NotImplementedError # These two methods seem to be obsolete. def getFirstItemKey(self): return None def getNextItemKey(self): return None def getFirstItem(self): self.callback.pulse() self.allObjectsListCopy = self.allObjectsList[:] return self._getItem(self.allObjectsListCopy) def getNextItem(self): self.callback.pulse() return self._getItem(self.allObjectsListCopy) def getFirstNewItem(self): self.callback.pulse() self.newObjectsListCopy = self.newObjectsList[:] return self._getItem(self.newObjectsListCopy) def getNextNewItem(self): self.callback.pulse() return self._getItem(self.newObjectsListCopy) def getFirstUpdatedItem(self): self.callback.pulse() self.changedObjectsListCopy = self.changedObjectsList[:] return self._getItem(self.changedObjectsListCopy) def getNextUpdatedItem(self): self.callback.pulse() return self._getItem(self.changedObjectsListCopy) def getFirstDeletedItem(self): self.callback.pulse() self.deletedObjectsListCopy = self.deletedObjectsList[:] return self._getItem(self.deletedObjectsListCopy) def getNextDeletedItem(self): self.callback.pulse() return self._getItem(self.deletedObjectsListCopy) def addItem(self, item): self.callback.onAddItem() obj = self._parseObject(item) obj.cleanDirty() self.objectList.append(obj) item.key = obj.id().encode('UTF-8') return self.doAddItem(obj) def doAddItem(self, obj): """Called after a domain object has been added; use this to set up the object if it needs to.""" return 201 def updateItem(self, item): self.callback.onUpdateItem() obj = self._parseObject(item) try: local = self._getObject(item.key) except KeyError: return 404 return self.doUpdateItem(obj, local) def doUpdateItem(self, obj, local): """Must update the 'local' domain object according to 'obj' (which is a 'temporary' domain object)""" local.cleanDirty() def deleteItem(self, item): self.callback.onDeleteItem() try: obj = self._getObject(item.key) except KeyError: return 211 self.objectList.remove(obj) return 200 def setItemStatus(self, key, status): self.callback.pulse() obj = self._getObject(key) if status in [200, 201, 211, 418]: # 200: Generic OK # 201: Added. # 211: Item not deleted (not found) # 418: Already exists. if obj.isDeleted(): self.objectList.remove(obj) else: obj.cleanDirty() return 200 print 'UNHANDLED ITEM STATUS %s %d' % (key, status) return 501 taskcoach-1.4.3/taskcoachlib/syncml/config.py000066400000000000000000000041401265347643000212430ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' """ Classes for storing Funambol client configuration """ class SyncMLConfigNode(object): def __init__(self, name): super(SyncMLConfigNode, self).__init__() self.name = name self.__children = [] self.__properties = {} def children(self): return self.__children def properties(self): return self.__properties.items() def addChild(self, child): self.__children.append(child) def get(self, name): return self.__properties.get(name, '') def set(self, name, value): self.__properties[name] = value def __getitem__(self, name): for child in self.__children: if child.name == name: return child raise KeyError, name def createDefaultSyncConfig(uid): cfg = SyncMLConfigNode('root') root = SyncMLConfigNode('TaskCoach-%s' % uid) cfg.addChild(root) spds = SyncMLConfigNode('spds') root.addChild(spds) sources = SyncMLConfigNode('sources') spds.addChild(sources) syncml = SyncMLConfigNode('syncml') spds.addChild(syncml) tasks = SyncMLConfigNode('TaskCoach-%s.Tasks' % uid) sources.addChild(tasks) notes = SyncMLConfigNode('TaskCoach-%s.Notes' % uid) sources.addChild(notes) auth = SyncMLConfigNode('Auth') syncml.addChild(auth) conn = SyncMLConfigNode('Conn') syncml.addChild(conn) return cfg taskcoach-1.4.3/taskcoachlib/syncml/core.py000066400000000000000000000023051265347643000207270ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import sys, os, struct _BINBASE = os.path.join(os.path.split(__file__)[0], '..', 'bin.in') if len(struct.pack('L', 0)) == 8: arch = 'IA64' else: arch = 'IA32' if sys.platform == 'linux2': # The user should install the binary packages pass elif sys.platform == 'darwin': sys.path.insert(0, os.path.join(_BINBASE, 'macos', arch)) else: sys.path.insert(0, os.path.join(_BINBASE, 'windows', 'py%s' % ''.join(map(str, sys.version_info[:2])))) from _pysyncml import * taskcoach-1.4.3/taskcoachlib/syncml/notesource.py000066400000000000000000000057561265347643000222020ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain.note import Note from taskcoachlib.domain.category import Category from taskcoachlib.syncml.basesource import BaseSource from taskcoachlib.persistence.icalendar import ical from taskcoachlib.i18n import _ import wx, inspect class NoteSource(BaseSource): def __init__(self, callback, noteList, categoryList, dataType, *args, **kwargs): super(NoteSource, self).__init__(callback, noteList, *args, **kwargs) self.categoryList = categoryList self._dataType = dataType def updateItemProperties(self, item, note): item.dataType = self._dataType if self._dataType == 'text/x-vnote': item.data = ical.VNoteFromNote(note, doFold=False).encode('UTF-8') else: item.data = (u'%s\n%s' % (note.subject(), note.description())).encode('UTF-8') def _parseObject(self, item): # Horde doesn't seem to give a fuck about the supported types we send it. if item.dataType == 'text/plain': lines = map(lambda x: x.rstrip('\r'), item.data.split('\n')) kwargs = dict(subject=lines[0], description='\n'.join(lines[1:])) if lines else dict() categories = list() else: parser = ical.VCalendarParser() parser.parse(map(lambda x: x.rstrip('\r'), item.data.strip().split('\n'))) categories = parser.notes[0].pop('categories', []) kwargs = dict([(k, v) for k, v in parser.notes[0].items() if k in ['subject', 'description', 'id']]) note = Note(**kwargs) for category in categories: categoryObject = self.categoryList.findCategoryByName(category) if categoryObject is None: categoryObject = Category(category) self.categoryList.extend([categoryObject]) note.addCategory(categoryObject) return note def doUpdateItem(self, note, local): local.setSubject(note.subject()) local.setDescription(note.description()) for category in local.categories(): category.removeCategorizable(local) local.setCategories(note.categories()) for category in local.categories(): category.addCategorizable(local) super(NoteSource, self).doUpdateItem(note, local) return 200 taskcoach-1.4.3/taskcoachlib/syncml/sync.py000066400000000000000000000207201265347643000207540ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.syncml.tasksource import TaskSource from taskcoachlib.syncml.notesource import NoteSource from taskcoachlib.syncml.config import SyncMLConfigNode from taskcoachlib.syncml.core import * from taskcoachlib.i18n import _ from taskcoachlib.meta import data import sys, wx class AuthenticationFailure(Exception): pass class TaskCoachManagementNode(ManagementNode): def __init__(self, syncMLConfig, *args, **kwargs): super(TaskCoachManagementNode, self).__init__(*args, **kwargs) self.__cfg = self.__getConfig(syncMLConfig) def __getConfig(self, cfg): for name in self.fullName.split('/'): for child in cfg.children(): if child.name == name: cfg = child break else: child = SyncMLConfigNode(name) cfg.addChild(child) cfg = child return cfg def getChildrenMaxCount(self): return len(self.__cfg.children()) def getChildrenNames(self): return [child.name for child in self.__cfg.children()] def readPropertyValue(self, name): return self.__cfg.get(name.decode('UTF-8')).encode('UTF-8') def setPropertyValue(self, name, value): self.__cfg.set(name.decode('UTF-8'), value.decode('UTF-8')) def clone(self): return self class TaskCoachDMTree(DMTree): def __init__(self, syncMLConfig, *args, **kwargs): super(TaskCoachDMTree, self).__init__(*args, **kwargs) self.__syncMLConfig = syncMLConfig def isLeaf(self, node): return TaskCoachManagementNode(self.__syncMLConfig, node).getMaxChildrenCount() == 0 def readManagementNode(self, nodeName): node = TaskCoachManagementNode(self.__syncMLConfig, nodeName) for name in node.getChildrenNames(): node.addChild(TaskCoachManagementNode(self.__syncMLConfig, nodeName, name)) return node class TaskCoachDMTClientConfig(DMTClientConfig): def __init__(self, syncMLConfig, *args, **kwargs): super(TaskCoachDMTClientConfig, self).__init__(*args, **kwargs) self.__syncMLConfig = syncMLConfig def syncMLConfig(self): return self.__syncMLConfig def createDMTree(self, rootContext): return TaskCoachDMTree(self.__syncMLConfig, rootContext) class Synchronizer(wx.ProgressDialog): def __init__(self, reportCallback, taskFile, password): super(Synchronizer, self).__init__(_('Synchronization'), _('Synchronizing. Please wait.\n\n\n')) self.clientName = 'TaskCoach-%s' % taskFile.guid().encode('UTF-8') self.reportCallback = reportCallback self.taskFile = taskFile cfg = taskFile.syncMLConfig() self.username = cfg[self.clientName]['spds']['syncml']['Auth'].get('username').encode('UTF-8') # Hum... self.password = password.encode('UTF-8') self.url = cfg[self.clientName]['spds']['syncml']['Conn'].get('syncUrl').encode('UTF-8') self.synctasks = cfg[self.clientName]['spds']['sources']['%s.Tasks' % self.clientName].get('dosync') == 'True' self.syncnotes = cfg[self.clientName]['spds']['sources']['%s.Notes' % self.clientName].get('dosync') == 'True' self.taskdbname = cfg[self.clientName]['spds']['sources']['%s.Tasks' % self.clientName].get('uri').encode('UTF-8') self.notedbname = cfg[self.clientName]['spds']['sources']['%s.Notes' % self.clientName].get('uri').encode('UTF-8') self.taskmode = cfg[self.clientName]['spds']['sources']['%s.Tasks' % self.clientName].get('preferredsyncmode') self.notemode = cfg[self.clientName]['spds']['sources']['%s.Notes' % self.clientName].get('preferredsyncmode') def init(self): self.dmt = TaskCoachDMTClientConfig(self.taskFile.syncMLConfig(), self.clientName) if not (self.dmt.read() and \ self.dmt.deviceConfig.devID == self.clientName): self.dmt.setClientDefaults() ac = self.dmt.accessConfig ac.username = self.username ac.password = self.password ac.useProxy = 0 ac.syncURL = self.url self.dmt.accessConfig = ac dc = self.dmt.deviceConfig dc.devID = self.clientName dc.devType = 'workstation' dc.manufacturerName = 'Task Coach developers' dc.modelName = sys.platform dc.firmwareVersion = '0.0' dc.softwareVersion = data.version self.dmt.deviceConfig = dc # Tasks source configuration self.sources = [] if self.synctasks: try: cfg = self.dmt.getSyncSourceConfig('%s.Tasks' % self.clientName) except ValueError: cfg = SyncSourceConfig('%s.Tasks' % self.clientName) cfg.URI = self.taskdbname cfg.syncModes = 'two-way' cfg.supportedTypes = 'text/calendar' cfg.version = '1.0' self.dmt.setSyncSourceConfig(cfg) src = TaskSource(self, self.taskFile.tasks(), self.taskFile.categories(), '%s.Tasks' % self.clientName, cfg) src.preferredSyncMode = globals()[self.taskmode] self.sources.append(src) if self.syncnotes: try: cfg = self.dmt.getSyncSourceConfig('%s.Notes' % self.clientName) except ValueError: cfg = SyncSourceConfig('%s.Notes' % self.clientName) cfg.URI = self.notedbname cfg.syncModes = 'two-way' cfg.supportedTypes = 'text/x-vnote:1.1' cfg.version = '1.0' self.dmt.setSyncSourceConfig(cfg) src = NoteSource(self, self.taskFile.notes(), self.taskFile.categories(), # This is ugly and doesn't work for every configuration but well... 'text/plain' if self.url.endswith('rpc.php') else 'text/x-vnote', '%s.Notes' % self.clientName, cfg) src.preferredSyncMode = globals()[self.notemode] self.sources.append(src) def onAddItem(self): self.added += 1 self.pulse() def onUpdateItem(self): self.updated += 1 self.pulse() def onDeleteItem(self): self.deleted += 1 self.pulse() def pulse(self): msg = _('%d items added.\n%d items updated.\n%d items deleted.') % (self.added, self.updated, self.deleted) self.Pulse(msg) def error(self, code, msg): self.reportCallback(_('An error occurred in the synchronization.\nError code: %d; message: %s') \ % (code, msg)) def synchronize(self): if not self.username: self.reportCallback(_('You must first edit your SyncML Settings, in Edit/SyncML preferences.')) return False self.Centre() self.Show() self.added = 0 self.updated = 0 self.deleted = 0 self.taskFile.beginSync() try: self.init() client = SyncClient() client.sync(self.dmt, self.sources) code = client.report.lastErrorCode if code: if code == 401: raise AuthenticationFailure() self.error(code, client.report.lastErrorMsg) # TODO: undo local modifications ? return False self.dmt.save() finally: self.taskFile.setSyncMLConfig(self.dmt.syncMLConfig()) self.taskFile.endSync() return True taskcoach-1.4.3/taskcoachlib/syncml/tasksource.py000066400000000000000000000055611265347643000221710ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import inspect from taskcoachlib.syncml import basesource from taskcoachlib.domain.task import Task from taskcoachlib.domain.category import Category from taskcoachlib.persistence.icalendar import ical class TaskSource(basesource.BaseSource): def __init__(self, callback, taskList, categoryList, *args, **kwargs): super(TaskSource, self).__init__(callback, taskList, *args, **kwargs) self.categoryList = categoryList def updateItemProperties(self, item, task): item.data = 'BEGIN:VCALENDAR\r\nVERSION: 1.0\r\n' + \ ical.VCalFromTask(task, doFold=False).encode('UTF-8') + \ 'END:VCALENDAR' item.dataType = 'text/calendar' def _parseObject(self, item): parser = ical.VCalendarParser() parser.parse(map(lambda x: x.rstrip('\r'), item.data.split('\n'))) categories = parser.tasks[0].pop('categories', []) kwargs = dict([(k, v) for k, v in parser.tasks[0].items() if k in inspect.getargspec(Task.__init__)[0]]) task = Task(**kwargs) for category in categories: categoryObject = self.categoryList.findCategoryByName(category) if categoryObject is None: categoryObject = Category(category) self.categoryList.extend([categoryObject]) task.addCategory(categoryObject) return task def doAddItem(self, task): for category in task.categories(): category.addCategorizable(task) return 201 def doUpdateItem(self, task, local): local.setPlannedStartDateTime(task.plannedStartDateTime()) local.setDueDateTime(task.dueDateTime()) local.setDescription(task.description()) local.setSubject(task.subject()) local.setPriority(task.priority()) local.setCompletionDateTime(task.completionDateTime()) for category in local.categories(): category.removeCategorizable(local) local.setCategories(task.categories()) for category in local.categories(): category.addCategorizable(local) super(TaskSource, self).doUpdateItem(task, local) return 200 # FIXME taskcoach-1.4.3/taskcoachlib/thirdparty/000077500000000000000000000000001265347643000203125ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/thirdparty/README.txt000066400000000000000000000007551265347643000220170ustar00rootroot00000000000000Component: guid.py Name: GUID Author: Conan C. Albrecht Version: 2.6 Date: 2012-10-14 License: MIT Source: http://code.activestate.com/recipes/163604-guid/ Copied on: 2012-10-14 Changes for Task Coach: none Component: smartdatetimectrl.py Name: SmartDateTimeCtrl Author: Jerome Laheurte , Frank Niessink Version: 1.0 Date: 2012-11-03 License: GPL v3 Source: https://bitbucket.org/fraca7/smartdatetimectrl Copied on 2012-11-03 Changes for Task Coach: none taskcoach-1.4.3/taskcoachlib/thirdparty/__init__.py000066400000000000000000000013521265347643000224240ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import desktop taskcoach-1.4.3/taskcoachlib/thirdparty/_weakrefset.py000066400000000000000000000143651265347643000231740ustar00rootroot00000000000000# Access WeakSet through the weakref module. # This code is separated-out because it is needed # by abc.py to load everything else at startup. from _weakref import ref __all__ = ['WeakSet'] class _IterationGuard(object): # This context manager registers itself in the current iterators of the # weak container, such as to delay all removals until the context manager # exits. # This technique should be relatively thread-safe (since sets are). def __init__(self, weakcontainer): # Don't create cycles self.weakcontainer = ref(weakcontainer) def __enter__(self): w = self.weakcontainer() if w is not None: w._iterating.add(self) return self def __exit__(self, e, t, b): w = self.weakcontainer() if w is not None: s = w._iterating s.remove(self) if not s: w._commit_removals() class WeakSet(object): def __init__(self, data=None): self.data = set() def _remove(item, selfref=ref(self)): self = selfref() if self is not None: if self._iterating: self._pending_removals.append(item) else: self.data.discard(item) self._remove = _remove # A list of keys to be removed self._pending_removals = [] self._iterating = set() if data is not None: self.update(data) def _commit_removals(self): l = self._pending_removals discard = self.data.discard while l: discard(l.pop()) def __iter__(self): with _IterationGuard(self): for itemref in self.data: item = itemref() if item is not None: yield item def __len__(self): return sum(x() is not None for x in self.data) def __contains__(self, item): try: wr = ref(item) except TypeError: return False return wr in self.data def __reduce__(self): return (self.__class__, (list(self),), getattr(self, '__dict__', None)) __hash__ = None def add(self, item): if self._pending_removals: self._commit_removals() self.data.add(ref(item, self._remove)) def clear(self): if self._pending_removals: self._commit_removals() self.data.clear() def copy(self): return self.__class__(self) def pop(self): if self._pending_removals: self._commit_removals() while True: try: itemref = self.data.pop() except KeyError: raise KeyError('pop from empty WeakSet') item = itemref() if item is not None: return item def remove(self, item): if self._pending_removals: self._commit_removals() self.data.remove(ref(item)) def discard(self, item): if self._pending_removals: self._commit_removals() self.data.discard(ref(item)) def update(self, other): if self._pending_removals: self._commit_removals() if isinstance(other, self.__class__): self.data.update(other.data) else: for element in other: self.add(element) def __ior__(self, other): self.update(other) return self # Helper functions for simple delegating methods. def _apply(self, other, method): if not isinstance(other, self.__class__): other = self.__class__(other) newdata = method(other.data) newset = self.__class__() newset.data = newdata return newset def difference(self, other): return self._apply(other, self.data.difference) __sub__ = difference def difference_update(self, other): if self._pending_removals: self._commit_removals() if self is other: self.data.clear() else: self.data.difference_update(ref(item) for item in other) def __isub__(self, other): if self._pending_removals: self._commit_removals() if self is other: self.data.clear() else: self.data.difference_update(ref(item) for item in other) return self def intersection(self, other): return self._apply(other, self.data.intersection) __and__ = intersection def intersection_update(self, other): if self._pending_removals: self._commit_removals() self.data.intersection_update(ref(item) for item in other) def __iand__(self, other): if self._pending_removals: self._commit_removals() self.data.intersection_update(ref(item) for item in other) return self def issubset(self, other): return self.data.issubset(ref(item) for item in other) __lt__ = issubset def __le__(self, other): return self.data <= set(ref(item) for item in other) def issuperset(self, other): return self.data.issuperset(ref(item) for item in other) __gt__ = issuperset def __ge__(self, other): return self.data >= set(ref(item) for item in other) def __eq__(self, other): if not isinstance(other, self.__class__): return NotImplemented return self.data == set(ref(item) for item in other) def symmetric_difference(self, other): return self._apply(other, self.data.symmetric_difference) __xor__ = symmetric_difference def symmetric_difference_update(self, other): if self._pending_removals: self._commit_removals() if self is other: self.data.clear() else: self.data.symmetric_difference_update(ref(item) for item in other) def __ixor__(self, other): if self._pending_removals: self._commit_removals() if self is other: self.data.clear() else: self.data.symmetric_difference_update(ref(item) for item in other) return self def union(self, other): return self._apply(other, self.data.union) __or__ = union def isdisjoint(self, other): return len(self.intersection(other)) == 0 taskcoach-1.4.3/taskcoachlib/thirdparty/deltaTime.py000066400000000000000000000156431265347643000226050ustar00rootroot00000000000000# deltaTime.py # # Parser to convert a conversational time reference such as "in a minute" or # "noon tomorrow" and convert it to a Python datetime. The returned # ParseResults object contains the results name "timeOffset" containing # the timedelta, and "calculatedTime" containing the computed time relative # to datetime.now(). # # Copyright 2010, by Paul McGuire # from datetime import datetime, timedelta from pyparsing import * import calendar __all__ = ["nlTimeExpression"] daynames = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'] # string conversion parse actions def convertToTimedelta(toks): unit = toks.timeunit.lower().rstrip("s") td = { 'week' : timedelta(7), 'day' : timedelta(1), 'hour' : timedelta(0,0,0,0,0,1), 'minute' : timedelta(0,0,0,0,1), 'second' : timedelta(0,1), }[unit] if toks.qty: td *= int(toks.qty) if toks.dir: td *= toks.dir toks["timeOffset"] = td def convertToDay(toks): now = datetime.now() if "wkdayRef" in toks: todaynum = now.weekday() nameddaynum = daynames.index(toks.wkdayRef.day.lower()) if toks.wkdayRef.dir > 0: daydiff = (nameddaynum + 7 - todaynum) % 7 else: daydiff = -((todaynum + 7 - nameddaynum) % 7) toks["absTime"] = datetime(now.year, now.month, now.day)+timedelta(daydiff) else: name = toks.name.lower() toks["absTime"] = { "now" : now, "today" : datetime(now.year, now.month, now.day), "yesterday" : datetime(now.year, now.month, now.day)+timedelta(-1), "tomorrow" : datetime(now.year, now.month, now.day)+timedelta(+1), }[name] def convertToAbsTime(toks): now = datetime.now() if "dayRef" in toks: day = toks.dayRef.absTime day = datetime(day.year, day.month, day.day) else: day = datetime(now.year, now.month, now.day) if "timeOfDay" in toks: if isinstance(toks.timeOfDay,basestring): timeOfDay = { "now" : timedelta(0, (now.hour*60+now.minute)*60+now.second, now.microsecond), "noon" : timedelta(0,0,0,0,0,12), "midnight" : timedelta(), }[toks.timeOfDay] else: hhmmss = toks.timeparts if hhmmss.miltime: hh,mm = hhmmss.miltime ss = 0 else: hh,mm,ss = (hhmmss.HH % 12), hhmmss.MM, hhmmss.SS if not mm: mm = 0 if not ss: ss = 0 if toks.timeOfDay.ampm == 'pm': hh += 12 timeOfDay = timedelta(0, (hh*60+mm)*60+ss, 0) else: timeOfDay = timedelta(0, (now.hour*60+now.minute)*60+now.second, now.microsecond) toks["absTime"] = day + timeOfDay def calculateTime(toks): if toks.absTime: absTime = toks.absTime else: absTime = datetime.now() if toks.timeOffset: absTime += toks.timeOffset toks["calculatedTime"] = absTime # grammar definitions CL = CaselessLiteral today, tomorrow, yesterday, noon, midnight, now = map( CL, "today tomorrow yesterday noon midnight now".split()) plural = lambda s : Combine(CL(s) + Optional(CL("s"))) week, day, hour, minute, second = map( plural, "week day hour minute second".split()) am = CL("am") pm = CL("pm") COLON = Suppress(':') # are these actually operators? in_ = CL("in").setParseAction(replaceWith(1)) from_ = CL("from").setParseAction(replaceWith(1)) before = CL("before").setParseAction(replaceWith(-1)) after = CL("after").setParseAction(replaceWith(1)) ago = CL("ago").setParseAction(replaceWith(-1)) next_ = CL("next").setParseAction(replaceWith(1)) last_ = CL("last").setParseAction(replaceWith(-1)) at_ = CL("at") couple = (Optional(CL("a")) + CL("couple") + Optional(CL("of"))).setParseAction(replaceWith(2)) a_qty = CL("a").setParseAction(replaceWith(1)) integer = Word(nums).setParseAction(lambda t:int(t[0])) int4 = Group(Word(nums,exact=4).setParseAction(lambda t: [int(t[0][:2]),int(t[0][2:])] )) qty = integer | couple | a_qty dayName = oneOf( daynames ) dayOffset = (qty("qty") + (week | day)("timeunit")) dayFwdBack = (from_ + now.suppress() | ago)("dir") weekdayRef = (Optional(next_ | last_,1)("dir") + dayName("day")) dayRef = Optional( (dayOffset + (before | after | from_)("dir") ).setParseAction(convertToTimedelta) ) + \ ((yesterday | today | tomorrow)("name")| weekdayRef("wkdayRef")).setParseAction(convertToDay) todayRef = (dayOffset + dayFwdBack).setParseAction(convertToTimedelta) | \ (in_("dir") + qty("qty") + day("timeunit")).setParseAction(convertToTimedelta) dayTimeSpec = dayRef | todayRef dayTimeSpec.setParseAction(calculateTime) hourMinuteOrSecond = (hour | minute | second) timespec = Group(int4("miltime") | integer("HH") + Optional(COLON + integer("MM")) + Optional(COLON + integer("SS")) + (am | pm)("ampm") ) absTimeSpec = ((noon | midnight | now | timespec("timeparts"))("timeOfDay") + Optional(dayRef)("dayRef") | dayRef("dayRef") + at_ + (noon | midnight | now | timespec("timeparts"))("timeOfDay")) absTimeSpec.setParseAction(convertToAbsTime,calculateTime) relTimeSpec = qty("qty") + hourMinuteOrSecond("timeunit") + \ (from_ | before | after)("dir") + \ absTimeSpec("absTime") | \ qty("qty") + hourMinuteOrSecond("timeunit") + ago("dir") | \ in_ + qty("qty") + hourMinuteOrSecond("timeunit") relTimeSpec.setParseAction(convertToTimedelta,calculateTime) nlTimeExpression = (absTimeSpec | dayTimeSpec | relTimeSpec) if __name__ == '__main__': # test grammar tests = """\ today tomorrow yesterday in a couple of days a couple of days from now a couple of days from today in a day 3 days ago 3 days from now a day ago now 10 minutes ago 10 minutes from now in 10 minutes in a minute in a couple of minutes 20 seconds ago in 30 seconds 20 seconds before noon 20 seconds before noon tomorrow noon midnight noon tomorrow 6am tomorrow 0800 yesterday 12:15 AM today 3pm 2 days from today a week from today a week from now 3 weeks ago noon next Sunday noon Sunday noon last Sunday 2pm next Sunday next Sunday at 2pm""".splitlines() for t in tests: print t, "(relative to %s)" % datetime.now() res = nlTimeExpression.parseString(t) if "calculatedTime" in res: print res.calculatedTime else: print "???" print taskcoach-1.4.3/taskcoachlib/thirdparty/guid.py000066400000000000000000000167221265347643000216240ustar00rootroot00000000000000#!/usr/bin/env python # GUID.py # Version 2.6 # # Copyright (c) 2006 Conan C. Albrecht # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is furnished # to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR # PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE # FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. ################################################################################################## ### A globally-unique identifier made up of time and ip and 8 digits for a counter: ### each GUID is 40 characters wide ### ### A globally unique identifier that combines ip, time, and a counter. Since the ### time is listed first, you can sort records by guid. You can also extract the time ### and ip if needed. ### ### Since the counter has eight hex characters, you can create up to ### 0xffffffff (4294967295) GUIDs every millisecond. If your processor ### is somehow fast enough to create more than that in a millisecond (looking ### toward the future, of course), the function will wait until the next ### millisecond to return. ### ### GUIDs make wonderful database keys. They require no access to the ### database (to get the max index number), they are extremely unique, and they sort ### automatically by time. GUIDs prevent key clashes when merging ### two databases together, combining data, or generating keys in distributed ### systems. ### ### There is an Internet Draft for UUIDs, but this module does not implement it. ### If the draft catches on, perhaps I'll conform the module to it. ### # Changelog # Sometime, 1997 Created the Java version of GUID # Went through many versions in Java # Sometime, 2002 Created the Python version of GUID, mirroring the Java version # November 24, 2003 Changed Python version to be more pythonic, took out object and made just a module # December 2, 2003 Fixed duplicating GUIDs. Sometimes they duplicate if multiples are created # in the same millisecond (it checks the last 100 GUIDs now and has a larger random part) # December 9, 2003 Fixed MAX_RANDOM, which was going over sys.maxint # June 12, 2004 Allowed a custom IP address to be sent in rather than always using the # local IP address. # November 4, 2005 Changed the random part to a counter variable. Now GUIDs are totally # unique and more efficient, as long as they are created by only # on runtime on a given machine. The counter part is after the time # part so it sorts correctly. # November 8, 2005 The counter variable now starts at a random long now and cycles # around. This is in case two guids are created on the same # machine at the same millisecond (by different processes). Even though # it is possible the GUID can be created, this makes it highly unlikely # since the counter will likely be different. # November 11, 2005 Fixed a bug in the new IP getting algorithm. Also, use IPv6 range # for IP when we make it up (when it's no accessible) # November 21, 2005 Added better IP-finding code. It finds IP address better now. # January 5, 2006 Fixed a small bug caused in old versions of python (random module use) import math import socket import random import sys import time import threading ############################# ### global module variables #Makes a hex IP from a decimal dot-separated ip (eg: 127.0.0.1) make_hexip = lambda ip: ''.join(["%04x" % long(i) for i in ip.split('.')]) # leave space for ip v6 (65K in each sub) MAX_COUNTER = 0xfffffffe counter = 0L firstcounter = MAX_COUNTER lasttime = 0 ip = '' lock = threading.RLock() try: # only need to get the IP addresss once ip = socket.getaddrinfo(socket.gethostname(),0)[-1][-1][0] hexip = make_hexip(ip) except: # if we don't have an ip, default to someting in the 10.x.x.x private range ip = '10' rand = random.Random() for i in range(3): ip += '.' + str(rand.randrange(1, 0xffff)) # might as well use IPv6 range if we're making it up hexip = make_hexip(ip) ################################# ### Public module functions def generate(ip=None): '''Generates a new guid. A guid is unique in space and time because it combines the machine IP with the current time in milliseconds. Be careful about sending in a specified IP address because the ip makes it unique in space. You could send in the same IP address that is created on another machine. ''' global counter, firstcounter, lasttime lock.acquire() # can't generate two guids at the same time try: parts = [] # do we need to wait for the next millisecond (are we out of counters?) now = long(time.time() * 1000) while lasttime == now and counter == firstcounter: time.sleep(.01) now = long(time.time() * 1000) # time part parts.append("%016x" % now) # counter part if lasttime != now: # time to start counter over since we have a different millisecond firstcounter = long(random.uniform(1, MAX_COUNTER)) # start at random position counter = firstcounter counter += 1 if counter > MAX_COUNTER: counter = 0 lasttime = now parts.append("%08x" % (counter)) # ip part parts.append(hexip) # put them all together return ''.join(parts) finally: lock.release() def extract_time(guid): '''Extracts the time portion out of the guid and returns the number of seconds since the epoch as a float''' return float(long(guid[0:16], 16)) / 1000.0 def extract_counter(guid): '''Extracts the counter from the guid (returns the bits in decimal)''' return int(guid[16:24], 16) def extract_ip(guid): '''Extracts the ip portion out of the guid and returns it as a string like 10.10.10.10''' # there's probably a more elegant way to do this thisip = [] for index in range(24, 40, 4): thisip.append(str(int(guid[index: index + 4], 16))) return '.'.join(thisip) ### TESTING OF GUID CLASS ### if __name__ == "__main__": guids = [] for i in range(10): # calculate very fast so people can see the counter in action guid = generate() guids.append(guid) for guid in guids: print "GUID:", guid guidtime = extract_time(guid) print "\tTime: ", time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime(guidtime)), '(millis: ' + str(round(guidtime - long(guidtime), 3)) + ')' print "\tIP: ", extract_ip(guid) print "\tCounter:", extract_counter(guid) taskcoach-1.4.3/taskcoachlib/thirdparty/smartdatetimectrl.py000066400000000000000000002505541265347643000244270ustar00rootroot00000000000000#!/usr/bin/env python # This file is part of smartdatetimectrl. # smartdatetimectrl 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. # smartdatetimectrl 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 smartdatetimectrl. If not, see . import wx, math, time, re, datetime, calendar, StringIO, platform import wx.lib.platebtn as pbtn # We expect the user application to inject _ into __builtins__ try: _ except NameError: _ = lambda x: x # On Windows, using wx.NewId() in __Populate leads to errors after some time # (only 2^16 possible values). Keep a cache of them and reuse them. No clash # because they're used in a popup, so there should only be one instance of it # at a time. _POPUPIDCACHE = list() def defaultEncodingName(): return wx.Locale.GetSystemEncodingName() or 'utf-8' def decodeSystemString(s): if isinstance(s, unicode): return s encoding = defaultEncodingName() # Python does not define the windows_XXX aliases for every code page... if encoding.startswith('windows-'): encoding = 'cp' + encoding[8:] if not encoding: encoding = 'utf-8' return s.decode(encoding, 'ignore') def monthcalendarex(year, month, weeks=0): weekDay, monthLength = calendar.monthrange(year, month) startDate = datetime.date(year, month, 1) endDate = datetime.date(year, month, monthLength) # To start of week startDate -= datetime.timedelta(days=(startDate.weekday() - calendar.firstweekday()) % 7) endDate += datetime.timedelta(days=(7 + calendar.firstweekday() - endDate.weekday()) % 7) startDate -= datetime.timedelta(weeks=weeks) endDate += datetime.timedelta(weeks=weeks) monthCal = list() while startDate < endDate: week = list() for dayNumber in xrange(7): theDate = startDate + datetime.timedelta(days=dayNumber) week.append((theDate.year, theDate.month, theDate.day)) monthCal.append(week) startDate += datetime.timedelta(weeks=1) return monthCal def drawFocusRect(dc, x, y, w, h): color = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT) if platform.system() == 'Windows' and platform.win32_ver()[0] == 'XP': # Default is too ugly. r, g, b = color.Red(), color.Green(), color.Blue() color = wx.Colour((r + 255) // 2, (g + 255) // 2, (b + 255) // 2) dc.SetPen(wx.Pen(color)) dc.SetBrush(wx.Brush(color)) dc.DrawRoundedRectangle(x, y, w, h, 3) class _CheckBox(wx.Panel): """ Checkbox that can get keyboard focus on OS X and draws a better hint when it has, on all platforms. """ def __init__(self, parent, label=None): super(_CheckBox, self).__init__(parent) self.__value = False self.__label = label self.Bind(wx.EVT_PAINT, self.OnPaint) self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp) self.Bind(wx.EVT_SET_FOCUS, self.OnFocusChange) self.Bind(wx.EVT_KILL_FOCUS, self.OnFocusChange) self.Bind(wx.EVT_CHAR, self.OnChar) w, h = 18, 16 if self.__label: dc = wx.WindowDC(self) dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) tw, th = dc.GetTextExtent(self.__label) w = w + tw + 4 h = max(h, th) self.SetMinSize((w + 4, h + 4)) self.SetClientSize((w + 4, h + 4)) def GetValue(self): return self.__value def SetValue(self, value): self.__value = value self.Refresh() def OnLeftUp(self, event): self.__value = not self.__value self.Refresh() event = wx.PyCommandEvent(wx.wxEVT_COMMAND_CHECKBOX_CLICKED) event.SetEventObject(self) event.SetInt(self.__value) self.ProcessEvent(event) def OnChar(self, event): if event.GetKeyCode() == wx.WXK_SPACE: self.__value = not self.__value self.Refresh() event = wx.PyCommandEvent(wx.wxEVT_COMMAND_CHECKBOX_CLICKED) event.SetEventObject(self) event.SetInt(self.__value) self.ProcessEvent(event) else: event.Skip() def OnFocusChange(self, event): self.Refresh() event.Skip() def OnPaint(self, event): w, h = self.GetClientSize() if platform.system() == 'Windows' and platform.win32_ver()[0] == 'XP': cbw, cbh = 16, 16 else: cbw, cbh = 16, 16 dc = wx.PaintDC(self) dc.SetTextForeground(wx.BLACK) if self.FindFocus() == self: # wxPen.SetDashes does not work; draw a solid rectangle instead drawFocusRect(dc, 0, 0, w, h) dc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) x = (20 - cbw) // 2 y = (h - cbh) // 2 wx.RendererNative.Get().DrawCheckBox(self, dc, (x, y, cbw, cbh), wx.CONTROL_CHECKED if self.__value else 0) if platform.system() == 'Windows' and platform.win32_ver()[0] == 'XP': # Draw the 3D box ourselves... cbw, cbh = 15, 15 dc.SetPen(wx.Pen(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNSHADOW))) dc.DrawLine(x, y, x + cbw, y) dc.DrawLine(x, y, x, y + cbh) dc.SetPen(wx.BLACK_PEN) dc.DrawLine(x + 1, y + 1, x + cbw - 1, y + 1) dc.DrawLine(x + 1, y + 1, x + 1, y + cbh - 1) dc.SetPen(wx.Pen(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNFACE))) dc.DrawLine(x + cbw - 1, y + 1, x + cbw - 1, y + cbh - 1) dc.DrawLine(x + cbw - 1, y + cbh - 1, x + 1, y + cbh - 1) dc.SetPen(wx.WHITE_PEN) dc.DrawLine(x + cbw, y, x + cbw, y + cbh + 1) dc.DrawLine(x, y + cbh, x + cbw, y + cbh) if not self.__value: # Geeez dc.SetBrush(wx.WHITE_BRUSH) dc.DrawRectangle(x + 2, y + 2, cbw - 3, cbh - 3) if self.__label: dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) tw, th = dc.GetTextExtent(self.__label) dc.DrawText(self.__label, 22, (h - th) // 2) class NullField(object): def __getattr__(self, name): return self def __call__(self, *args, **kwargs): return self def GetValue(self): return 0 NullField = NullField() class FormatCharacter(object): valueName = None def __init__(self, c): pass @classmethod def matches(self, c): raise NotImplementedError @classmethod def keywordArgs(klass, kwargs): if klass.valueName is not None: return dict(value=kwargs.pop(klass.valueName)) try: return dict(value=kwargs['values'].pop(0)) except KeyError: return KeyError('No values defined for unnamed field %s' % klass) def append(self, c): raise NotImplementedError def createField(self, *args, **kwargs): raise NotImplementedError class SingleFormatCharacter(FormatCharacter): character = None @classmethod def matches(self, c): return c == self.character def append(self, c): pass class AnyFormatCharacter(FormatCharacter): def __init__(self, c): self.__value = c @classmethod def matches(self, c): return True def append(self, c): self.__value += c @classmethod def keywordArgs(klass, kwargs): return dict() def createField(self, *args, **kwargs): return self.__value class Field(object): def __init__(self, *args, **kwargs): self.__value = kwargs.pop('value') self.__observer = kwargs.pop('observer') self.__choices = kwargs.pop('choices', None) # 2-tuples [(label, value)] super(Field, self).__init__(*args, **kwargs) def Observer(self): return self.__observer def GetValue(self): return self.__value def SetValue(self, value, notify=False): if notify: value = self.Observer().ValidateChange(self, value) if value is None: return self.__value = value self.Observer().Refresh() def GetChoices(self): return self.__choices def SetChoices(self, choices): self.__choices = choices def GetCurrentChoice(self): for idx, (label, value) in enumerate(self.__choices): if value == self.GetValue(): return value return self.__choices[0][1] # Methods to override def GetExtent(self, dc): raise NotImplementedError def PaintValue(self, dc, x, y, w, h): raise NotImplementedError def ResetState(self): pass def HandleKey(self, key): raise NotImplementedError def OnClick(self): pass class FieldValueChangeEvent(wx.PyCommandEvent): type_ = None def __init__(self, owner, newValue, *args, **kwargs): super(FieldValueChangeEvent, self).__init__(self.type_) self.__newValue = newValue self.__vetoed = False self.SetEventObject(owner) def Clone(self): event = self.__class__(self.GetEventObject(), self.__newValue) event.__vetoed = self.__vetoed return event def GetValue(self): return self.__newValue def Veto(self): self.__vetoed = True def IsVetoed(self): return self.__vetoed wxEVT_ENTRY_CHOICE_SELECTED = wx.NewEventType() EVT_ENTRY_CHOICE_SELECTED = wx.PyEventBinder(wxEVT_ENTRY_CHOICE_SELECTED) class EntryChoiceSelectedEvent(FieldValueChangeEvent): type_ = wxEVT_ENTRY_CHOICE_SELECTED def __init__(self, owner, value, field=None, **kwargs): super(EntryChoiceSelectedEvent, self).__init__(owner, value, **kwargs) self.__field = field def GetField(self): return self.__field class Entry(wx.Panel): MARGIN = 3 formats = [AnyFormatCharacter] _rx_paste = re.compile(r'(?i)\d+|am|pm') def __init__(self, *args, **kwargs): fmt = kwargs.pop('format') format = list() state = None for c in fmt: for klass in self.formats: if klass.matches(c): break if state is not None and state.__class__ is klass: state.append(c) elif state is None: state = klass(c) else: format.append((state, state.keywordArgs(kwargs))) state = klass(c) format.append((state, state.keywordArgs(kwargs))) kwargs.pop('values', None) for aFormat in self.formats: if aFormat.valueName is not None: kwargs.pop(aFormat.valueName, 0) if '__WXMSW__' in wx.PlatformInfo: kwargs['style'] = wx.WANTS_CHARS super(Entry, self).__init__(*args, **kwargs) self.__focus = None self.__forceFocus = False self.__fields = list() self.__widgets = list() self.__namedFields = dict() self.__popup = None self.__focusStamp = time.time() self.__minW = 0 self.__minH = 0 self.__curX = self.MARGIN for state, keywords in format: field = state.createField(observer=self, **keywords) self.AddField(state.valueName, field) self.__SetFocus(self.__widgets[0][0]) timerId = wx.NewId() self.__timer = wx.Timer(self, timerId) wx.EVT_TIMER(self, timerId, self.OnTimer) wx.EVT_PAINT(self, self.OnPaint) wx.EVT_CHAR(self, self.OnChar) wx.EVT_LEFT_UP(self, self.OnLeftUp) wx.EVT_KILL_FOCUS(self, self.OnKillFocus) wx.EVT_SET_FOCUS(self, self.OnSetFocus) def AddField(self, name, field): dc = wx.ClientDC(self) dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) if name is not None: self.__namedFields[name] = field self.__fields.append(field) if isinstance(field, (str, unicode)): tw, th = dc.GetTextExtent(field) self.__widgets.append((field, self.__curX, self.MARGIN, tw, th)) self.__minW += tw self.__minH = max(self.__minH, th) self.__curX += tw + self.MARGIN else: w, h = field.GetExtent(dc) self.__widgets.append((field, self.__curX, self.MARGIN, w, h)) self.__minW += w self.__minH = max(self.__minH, h) self.__curX += w + self.MARGIN self.SetMinSize(wx.Size(self.__minW + (len(self.__widgets) + 1) * self.MARGIN, self.__minH + 2 * self.MARGIN)) def Cleanup(self): # It's complicated. try: self.DismissPopup() except wx.PyDeadObjectError: pass def Format(self): bf = StringIO.StringIO() for field, x, margin, w, h in self.__widgets: if isinstace(field, (str, unicode)): bf.write(field) else: bf.write('%s' % field.GetValue()) return bf.getvalue() def ForceFocus(self, force=True): self.__forceFocus = force self.Refresh() def OnTimer(self, event): if self.__focus is not None: self.__focus.ResetState() def StartTimer(self): self.__timer.Start(2000, True) def __SetFocus(self, field): if self.__popup is not None: self.__popup[0].Dismiss() if self.__focus is not None: self.__timer.Stop() self.__focus.ResetState() self.__focus = field self.Refresh() def DismissPopup(self): if self.__popup is not None: self.__popup[0].Dismiss() def OnPopupDismiss(self, event): self.__popup = None self.ForceFocus(False) event.Skip() def OnKillFocus(self, event): self.Refresh() event.Skip() def OnSetFocus(self, event): self.__focusStamp = time.time() self.Refresh() event.Skip() @classmethod def addFormat(klass, format): klass.formats.insert(0, format) def Fields(self): return [field for field in self.__fields if isinstance(field, Field)] def Field(self, name): return self.__namedFields.get(name, NullField) def FieldName(self, field): for name, theField in self.__namedFields.items(): if theField == field: return name return None def Position(self, field): for widget, x, y, w, h in self.__widgets: if widget == field: return x, y, w, h def GetValue(self): value = list() for field in self.Fields(): value.append(field.GetValue()) return tuple(value) def SetValue(self, value): value = list(value) for index, field in enumerate(self.Fields()): field.SetValue(value[index]) def ValidateChange(self, field, value): return value def ValidateIncrement(self, field, value): return value def ValidateDecrement(self, field, value): return value def OnPaint(self, event): dc = wx.PaintDC(self) dc.SetBackground(wx.WHITE_BRUSH) dc.Clear() dc.SetBrush(wx.TRANSPARENT_BRUSH) w, h = self.GetClientSizeTuple() dc.SetPen(wx.Pen(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNFACE), width=3)) dc.DrawLine(0, 0, w, 0) dc.DrawLine(0, 0, 0, h) dc.SetPen(wx.Pen(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNSHADOW), width=3)) dc.DrawLine(w, 0, w, h) dc.DrawLine(0, h, w, h) dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) if self.IsEnabled(): for widget, x, y, w, h in self.__widgets: if isinstance(widget, (str, unicode)): dc.SetTextForeground(wx.BLACK) dc.DrawText(widget, x, y) else: if widget == self.__focus and (self.FindFocus() == self or self.__forceFocus): drawFocusRect(dc, x, y, w, h) dc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) else: dc.SetTextForeground(wx.BLACK) widget.PaintValue(dc, x, y, w, h) else: text = u'N/A' tw, th = dc.GetTextExtent(text) dc.SetTextForeground(wx.LIGHT_GREY) dc.DrawText(text, (w - tw) / 2, (h - th) / 2) def FocusNext(self): if self.__focus is not None: self.__SetFocus(self.Fields()[(self.Fields().index(self.__focus) + 1) % len(self.Fields())]) def OnChar(self, event): if event.GetKeyCode() == wx.WXK_TAB: if event.GetModifiers() & ~wx.MOD_SHIFT: event.Skip() return self.DismissPopup() self.Navigate(not event.ShiftDown()) return # Windows has remains of the old DOS ways it seems. But why Linux ? Why ? isPaste = event.GetKeyCode() in [ord('v'), ord('V')] if '__WXMSW__' in wx.PlatformInfo or '__WXGTK__' in wx.PlatformInfo: isPaste = event.GetKeyCode() == 22 if isPaste and event.CmdDown(): if wx.TheClipboard.Open(): try: data = wx.TextDataObject() wx.TheClipboard.GetData(data) values = list() for idx, mt in enumerate(self._rx_paste.finditer(data.GetText())): values.append((mt.group(0), self.Fields()[idx] if idx < len(self.Fields()) else NullField)) self.OnPaste(values) finally: wx.TheClipboard.Close() isCopy = event.GetKeyCode() in [ord('c'), ord('C')] if '__WXMSW__' in wx.PlatformInfo or '__WXGTK__' in wx.PlatformInfo: isCopy = event.GetKeyCode() == 3 if isCopy and event.CmdDown(): if wx.TheClipboard.Open(): try: wx.TheClipboard.SetData(wx.TextDataObject(self.Format())) finally: wx.TheClipboard.Close() if event.GetKeyCode() in [wx.WXK_RIGHT, wx.WXK_DECIMAL, wx.WXK_NUMPAD_DECIMAL, ord('.'), ord(',')]: self.FocusNext() elif event.GetKeyCode() == wx.WXK_LEFT: if self.__focus is not None: self.__SetFocus(self.Fields()[(self.Fields().index(self.__focus) + len(self.Fields()) - 1) % len(self.Fields())]) elif event.GetKeyCode() == wx.WXK_ESCAPE and self.__popup is not None: self.__popup[0].Dismiss() elif event.GetKeyCode() == wx.WXK_RETURN and self.__popup is None and \ self.__focus is not None: self.PopupChoices(self.__focus) self.ForceFocus() else: if self.__focus is not None and self.__focus.HandleKey(event): self.StartTimer() return if not hasattr(self.GetParent(), 'HandleKey') or not self.GetParent().HandleKey(event): event.Skip() def OnPaste(self, values): raise NotImplementedError def OnLeftUp(self, event): for widget, x, y, w, h in self.__widgets: if event.GetX() >= x and event.GetX() < x + w and event.GetY() >= y and event.GetY() < y + h: if not isinstance(widget, (str, unicode)): oldFocus = self.__focus self.__SetFocus(widget) # the __focusStamp stuff is there so that choices don't show when clicking to set focus to # the whole control if oldFocus == widget and time.time() - self.__focusStamp >= 0.05: self.PopupChoices(widget) self.ForceFocus() widget.OnClick() break else: self.__SetFocus(None) self.Refresh() def PopupChoices(self, widget): if widget.GetChoices() is not None: x, y, w, h = self.Position(widget) self.__popup = (_MultipleChoicesPopup(widget.GetChoices(), widget.GetCurrentChoice(), self), widget) self.__popup[0].Popup(self.ClientToScreen(wx.Point(x, y + h))) EVT_POPUP_DISMISS(self.__popup[0], self.OnPopupDismiss) EVT_ENTRY_CHOICE_SELECTED(self.__popup[0], self.__OnChoiceSelected) def __OnChoiceSelected(self, event): if self.__popup is not None: # How can this happen ? It does. popup, field = self.__popup evt = EntryChoiceSelectedEvent(self, event.GetValue(), field=field) self.ProcessEvent(evt) if not evt.IsVetoed(): field.SetValue(evt.GetValue(), notify=True) popup.Dismiss() class NumericField(Field): class NumericFormatCharacter(FormatCharacter): def __init__(self, c): self.__width = 1 @classmethod def matches(self, c): return c == '#' def append(self, c): self.__width += 1 def createField(self, *args, **kwargs): kwargs['width'] = self.__width return NumericField(*args, **kwargs) Entry.addFormat(NumericFormatCharacter) def __init__(self, *args, **kwargs): self.__width = kwargs.pop('width', 0) self.__state = 0 super(NumericField, self).__init__(*args, **kwargs) def GetExtent(self, dc): dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) return dc.GetTextExtent('0' * max(self.__width, 1)) def SetValue(self, value, notify=False): super(NumericField, self).SetValue(int(value), notify=notify) def PaintValue(self, dc, x, y, w, h): dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) txt = ('%%0%dd' % max(self.__width, 1)) % self.GetValue() tw, th = dc.GetTextExtent(txt) dc.DrawText(txt, x + int((w - tw) / 2), y + int((h - th) / 2)) dc.DrawText(('%%0%dd' % max(self.__width, 1)) % self.GetValue(), x, y) def ResetState(self): self.__state = 0 def HandleKey(self, event): if event.GetKeyCode() == wx.WXK_UP: value = self.Observer().ValidateIncrement(self, self.GetValue() + 1) if value is None: return False self.SetValue(value) return True if event.GetKeyCode() == wx.WXK_DOWN: value = self.Observer().ValidateDecrement(self, self.GetValue() - 1) if value is None: return False self.SetValue(value) return True if event.GetKeyCode() >= wx.WXK_NUMPAD0 and event.GetKeyCode() <= wx.WXK_NUMPAD9: number = event.GetKeyCode() - wx.WXK_NUMPAD0 else: number = event.GetKeyCode() - ord('0') if number >= 0 and number <= 9: if self.__state == 0: self.__state = 1 self.SetValue(number, notify=True) elif self.__state == 1: self.SetValue((self.GetValue() * 10 + number) % int(math.pow(10, self.__width)), notify=True) return True if event.GetKeyCode() in [wx.WXK_BACK, wx.WXK_DELETE, wx.WXK_NUMPAD_DELETE]: self.SetValue(int(self.GetValue() / 10), notify=True) return True return False class EnumerationField(NumericField): def __init__(self, *args, **kwargs): self.__enablePopup = kwargs.pop('enablePopup', True) super(EnumerationField, self).__init__(*args, **kwargs) def PopupChoices(self, widget): if self.__enablePopup: super(EnumerationField, self).PopupChoices(widget) def GetExtent(self, dc): dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) maxW = maxH = 0 for label, value in self.GetChoices(): tw, th = dc.GetTextExtent(label) maxW = max(maxW, tw) maxH = max(maxH, th) return maxW, maxH def PaintValue(self, dc, x, y, w, h): dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) for label, value in self.GetChoices(): if value == self.GetValue(): tw, th = dc.GetTextExtent(label) dc.DrawText(label, x + int((w - tw) / 2), y + int((h - th) / 2)) def __index(self): for idx, (label, value) in enumerate(self.GetChoices()): if value == self.GetValue(): return idx return 0 def HandleKey(self, event): if event.GetKeyCode() == wx.WXK_UP: self.SetValue(self.GetChoices()[(self.__index() + len(self.GetChoices()) - 1) % len(self.GetChoices())][1], notify=True) return True if event.GetKeyCode() == wx.WXK_DOWN: self.SetValue(self.GetChoices()[(self.__index() + 1) % len(self.GetChoices())][1], notify=True) return True return super(EnumerationField, self).HandleKey(event) #======================================= #{ Time def Convert24To12(hour): if hour == 0: value = (12, 0) elif hour < 12: value = (hour, 0) elif hour == 12: value = (hour, 1) else: value = (hour - 12, 1) return value def Convert12To24(hour, ampm): if hour == 12: if ampm: value = 12 else: value = 0 else: value = hour + ampm * 12 return value class AMPMField(EnumerationField): class AMPMFormatCharacter(SingleFormatCharacter): character = 'p' valueName = 'ampm' def createField(self, *args, **kwargs): kwargs['choices'] = [('AM', 0), ('PM', 1)] return AMPMField(*args, **kwargs) Entry.addFormat(AMPMFormatCharacter) def HandleKey(self, event): if event.GetKeyCode() in [ord('a'), ord('A')]: self.SetValue(0, notify=True) return True elif event.GetKeyCode() in [ord('p'), ord('P')]: self.SetValue(1, notify=True) return True return super(AMPMField, self).HandleKey(event) class HourField(NumericField): pass class MinuteField(NumericField): pass class SecondField(NumericField): pass wxEVT_TIME_CHANGE = wx.NewEventType() EVT_TIME_CHANGE = wx.PyEventBinder(wxEVT_TIME_CHANGE) wxEVT_TIME_NEXT_DAY = wx.NewEventType() EVT_TIME_NEXT_DAY = wx.PyEventBinder(wxEVT_TIME_NEXT_DAY) wxEVT_TIME_PREV_DAY = wx.NewEventType() EVT_TIME_PREV_DAY = wx.PyEventBinder(wxEVT_TIME_PREV_DAY) wxEVT_TIME_CHOICES_CHANGE = wx.NewEventType() EVT_TIME_CHOICES_CHANGE = wx.PyEventBinder(wxEVT_TIME_CHOICES_CHANGE) class TimeChangeEvent(FieldValueChangeEvent): type_ = wxEVT_TIME_CHANGE class TimeNextDayEvent(FieldValueChangeEvent): type_ = wxEVT_TIME_NEXT_DAY class TimePrevDayEvent(FieldValueChangeEvent): type_ = wxEVT_TIME_PREV_DAY class TimeChoicesChangedEvent(FieldValueChangeEvent): type_ = wxEVT_TIME_CHOICES_CHANGE class TimeEntry(Entry): class HourFormatCharacter(SingleFormatCharacter): character = 'H' valueName = 'hour' def createField(self, *args, **kwargs): kwargs['width'] = 2 return HourField(*args, **kwargs) class MinuteFormatCharacter(SingleFormatCharacter): character = 'M' valueName = 'minute' def createField(self, *args, **kwargs): kwargs['width'] = 2 return MinuteField(*args, **kwargs) class SecondFormatCharacter(SingleFormatCharacter): character = 'S' valueName = 'second' def createField(self, *args, **kwargs): kwargs['width'] = 2 return SecondField(*args, **kwargs) Entry.addFormat(HourFormatCharacter) Entry.addFormat(MinuteFormatCharacter) Entry.addFormat(SecondFormatCharacter) def __init__(self, *args, **kwargs): fmt = kwargs.pop('format', lambda x: decodeSystemString(x.strftime('%H:%M:%S'))) self.__formatter = fmt pattern = decodeSystemString(fmt(datetime.time(hour=11, minute=33, second=44))) debugInfo = dict(original=pattern) pattern = re.sub('3+', 'M', pattern) pattern = re.sub('1+', 'H', pattern) pattern = re.sub('4+', 'S', pattern) ampm = False # wx initializes the locale itself (at least under GTK) so %p may end up swallowed. amStrings = ['am', 'a.m.'] amLitLocal = decodeSystemString(datetime.time(hour=1).strftime('%p')) if amLitLocal: amStrings.append(amLitLocal) if platform.system() == 'Darwin': try: import Cocoa except ImportError: pass else: osxFormatter = Cocoa.NSDateFormatter.alloc().init() osxFormatter.setFormatterBehavior_(Cocoa.NSDateFormatterBehavior10_4) osxFormatter.setDateFormat_('a') amStrings.append(osxFormatter.stringFromDate_(Cocoa.NSDate.dateWithTimeIntervalSinceNow_((datetime.datetime(year=2013, month=3, day=3, hour=11, minute=33, second=0) - datetime.datetime.now()).total_seconds()))) elif platform.system() == 'Linux': try: # Without this gtk import there's a warning if you try to import wx.lib.masked import gtk from PyKDE4.kdecore import KLocale, KGlobal from PyQt4.QtCore import QTime except ImportError: pass else: if KGlobal.locale() is not None: localeCopy = KLocale(KGlobal.locale()) localeCopy.setTimeFormat('%p') amStrings.append(unicode(localeCopy.formatTime(QTime(11, 0, 0)))) debugInfo['amlit'] = amStrings for amLit in amStrings: idx = pattern.lower().find(amLit.lower()) if idx != -1: break ampm = idx != -1 if ampm: pattern = pattern[:idx] + u'p' + pattern[idx + len(amLit):] self.__value = datetime.time(hour=kwargs.get('hour', 0), minute=kwargs.get('minute', 0), second=kwargs.get('second', 0)) self.__minuteDelta = kwargs.pop('minuteDelta', 10) self.__secondDelta = kwargs.pop('secondDelta', 10) self.__startHour = kwargs.pop('startHour', 0) self.__endHour = kwargs.pop('endHour', 24) self.__units = kwargs.pop('units', None) self.__relChoices = '60,120,180' self.__choiceStart = None self.__choicePopup = None if ampm: kwargs['hour'], kwargs['ampm'] = Convert24To12(kwargs['hour']) kwargs['format'] = pattern debugInfo['format'] = pattern try: super(TimeEntry, self).__init__(*args, **kwargs) except KeyError as e: raise ValueError('Invalid format "%s" (original exception: "%s")' % (debugInfo, e)) EVT_ENTRY_CHOICE_SELECTED(self, self.__OnHourSelected) def Format(self): return self.__formatter(self.GetTime()) def OnChar(self, event): if event.GetKeyCode() == ord(':'): self.FocusNext() event.Skip() else: return super(TimeEntry, self).OnChar(event) def DismissPopup(self): super(TimeEntry, self).DismissPopup() if self.__choicePopup is not None: self.__choicePopup.Dismiss() def EnableChoices(self, enabled=True): if enabled: if self.Field('ampm') is NullField: hours = [('%d' % hour, hour) for hour in xrange(self.__startHour, min(self.__endHour + 1, 24))] else: hours = list() for hour in xrange(self.__startHour, min(self.__endHour + 1, 24)): hr, ampm = Convert24To12(hour) hours.append(('%02d %s' % (hr, ['AM', 'PM'][ampm]), hour)) self.Field('hour').SetChoices(hours) self.Field('minute').SetChoices([('%d' % minute, minute) for minute in xrange(0, 60, self.__minuteDelta)]) self.Field('second').SetChoices([('%d' % second, second) for second in xrange(0, 60, self.__secondDelta)]) else: self.Field('hour').SetChoices(None) self.Field('minute').SetChoices(None) self.Field('second').SetChoices(None) self.DismissPopup() def __OnHourSelected(self, event): if self.Field('ampm') is not NullField and event.GetField() is self.Field('hour'): event.Veto() evt = TimeChangeEvent(self, self.__NewValue(hour=event.GetValue())) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetTime(evt.GetValue()) def LoadChoices(self, choices): self.__relChoices = choices def SetRelativeChoicesStart(self, start=None): self.__choiceStart = start def GetRelativeChoicesStart(self): return self.__choiceStart def PopupRelativeChoices(self): self.__choicePopup = _RelativeChoicePopup(self.__choiceStart, self, wx.ID_ANY, choices=self.__relChoices, units=self.__units) w, h = self.GetClientSizeTuple() self.__choicePopup.Popup(self.ClientToScreen(wx.Point(0, h))) EVT_POPUP_DISMISS(self.__choicePopup, self.OnRelativePopupDismiss) def OnRelativePopupDismiss(self, event): self.__choicePopup = None event.Skip() def OnChoicesChanged(self, sender): self.__relChoices = sender.SaveChoices() self.ProcessEvent(TimeChoicesChangedEvent(self, self.__relChoices)) def SetDateTime(self, dateTime, notify=False): self.GetParent().SetDateTime(dateTime, notify=notify) def GetTime(self): hour = self.Field('hour').GetValue() minute = self.Field('minute').GetValue() second = self.Field('second').GetValue() if self.Field('ampm') is not NullField: hour = Convert12To24(hour, self.Field('ampm').GetValue()) return datetime.time(hour=hour, minute=minute, second=second) def SetTime(self, value, notify=False): if notify: evt = TimeChangeEvent(self, value) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() return hour = value.hour if self.Field('ampm') is not NullField: hour, ampm = Convert24To12(value.hour) self.Field('ampm').SetValue(ampm) self.Field('hour').SetValue(hour) self.Field('minute').SetValue(value.minute) self.Field('second').SetValue(value.second) def __NewValue(self, **kwargs): keywords = dict(hour=self.Field('hour').GetValue(), minute=self.Field('minute').GetValue(), second=self.Field('second').GetValue()) if self.Field('ampm') is not NullField: keywords['hour'] = Convert12To24(keywords['hour'], kwargs.pop('ampm', self.Field('ampm').GetValue())) keywords.update(kwargs) return datetime.time(**keywords) def ValidateChange(self, field, value): if field == self.Field('hour'): return self.ValidateHourChange(value) elif field == self.Field('minute'): return self.ValidateMinuteChange(value) elif field == self.Field('second'): return self.ValidateSecondChange(value) elif field == self.Field('ampm'): return self.ValidateAMPMChange(value) return None def ValidateIncrement(self, field, value): if field == self.Field('hour'): return self.ValidateHourIncrement(value) elif field == self.Field('minute'): return self.ValidateMinuteIncrement(value) elif field == self.Field('second'): return self.ValidateSecondIncrement(value) elif field == self.Field('ampm'): return self.ValidateAMPMChange(value) return None def ValidateDecrement(self, field, value): if field == self.Field('hour'): return self.ValidateHourDecrement(value) elif field == self.Field('minute'): return self.ValidateMinuteDecrement(value) elif field == self.Field('second'): return self.ValidateSecondDecrement(value) elif field == self.Field('ampm'): return self.ValidateAMPMChange(value) return None def ValidateHourChange(self, value): if self.Field('ampm') is NullField: if value < 0 or value > 23: wx.Bell() return None else: if value < 1 or value > 12: wx.Bell() return None value = Convert12To24(value, self.Field('ampm').GetValue()) evt = TimeChangeEvent(self, self.__NewValue(hour=value)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetTime(evt.GetValue()) return None def __ValidateIncrementDecrement(self, delta, evtClass): oldTime = self.GetTime() oldDate = datetime.date(2012, 10, 10) # Dummy newDateTime = datetime.datetime.combine(oldDate, oldTime) + delta if oldDate != newDateTime.date(): evt = evtClass(self, newDateTime.time()) else: evt = TimeChangeEvent(self, newDateTime.time()) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetTime(evt.GetValue()) def ValidateHourIncrement(self, value): self.__ValidateIncrementDecrement(datetime.timedelta(hours=1), TimeNextDayEvent) def ValidateHourDecrement(self, value): self.__ValidateIncrementDecrement(-datetime.timedelta(hours=1), TimePrevDayEvent) def ValidateMinuteChange(self, value): if value < 0 or value > 59: wx.Bell() return None evt = TimeChangeEvent(self, self.__NewValue(minute=value)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetTime(evt.GetValue()) return None def ValidateMinuteIncrement(self, value): self.__ValidateIncrementDecrement(datetime.timedelta(minutes=1), TimeNextDayEvent) def ValidateMinuteDecrement(self, value): self.__ValidateIncrementDecrement(-datetime.timedelta(minutes=1), TimePrevDayEvent) def ValidateSecondChange(self, value): if value < 0 or value > 59: wx.Bell() return None evt = TimeChangeEvent(self, self.__NewValue(second=value)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetTime(evt.GetValue()) return None def ValidateSecondIncrement(self, value): self.__ValidateIncrementDecrement(datetime.timedelta(seconds=1), TimeNextDayEvent) def ValidateSecondDecrement(self, value): self.__ValidateIncrementDecrement(-datetime.timedelta(seconds=1), TimePrevDayEvent) def ValidateAMPMChange(self, value): if value not in [0, 1]: return None evt = TimeChangeEvent(self, self.__NewValue(ampm=value)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetTime(evt.GetValue()) return None def OnPaste(self, values): kwargs = dict(hour=self.Field('hour').GetValue(), minute=self.Field('minute').GetValue()) for value, field in values: try: if value.lower() in ['am', 'pm'] and (field == self.Field('ampm') or self.Field('ampm') is NullField): kwargs['ampm'] = value else: kwargs[self.FieldName(field)] = int(value) except ValueError: wx.Bell() return if kwargs.has_key('ampm'): kwargs['hour'] = Convert12To24(kwargs['hour'], dict(am=0, pm=1)[kwargs['ampm'].lower()]) del kwargs['ampm'] try: dt = datetime.time(**kwargs) except: wx.Bell() return self.SetTime(dt, notify=True) #} #======================================= #{ Date def MaxDayOfMonth(year, month): return calendar.monthrange(year, month)[1] wxEVT_DATE_CHANGE = wx.NewEventType() EVT_DATE_CHANGE = wx.PyEventBinder(wxEVT_DATE_CHANGE) class DateChangeEvent(FieldValueChangeEvent): type_ = wxEVT_DATE_CHANGE class YearField(NumericField): pass class MonthField(NumericField): pass class AbbreviatedMonthField(EnumerationField): def __init__(self, **kwargs): kwargs['choices'] = list(reversed([(decodeSystemString(datetime.date(year=2012, month=month, day=1).strftime('%b')), month) for month in xrange(1, 13)])) kwargs['enablePopup'] = False kwargs['width'] = 2 super(AbbreviatedMonthField, self).__init__(**kwargs) class FullMonthField(EnumerationField): def __init__(self, **kwargs): kwargs['choices'] = list(reversed([(decodeSystemString(datetime.date(year=2012, month=month, day=1).strftime('%B')), month) for month in xrange(1, 13)])) kwargs['enablePopup'] = False kwargs['width'] = 2 super(FullMonthField, self).__init__(**kwargs) class DayField(NumericField): pass class DateEntry(Entry): class YearFormatCharacter(SingleFormatCharacter): character = 'y' valueName = 'year' def createField(self, *args, **kwargs): kwargs['width'] = 4 # No support for 2-digits year return YearField(*args, **kwargs) class MonthFormatCharacter(SingleFormatCharacter): character = 'm' valueName = 'month' def createField(self, *args, **kwargs): kwargs['width'] = 2 return MonthField(*args, **kwargs) class AbbreviatedMonthFormatCharacter(SingleFormatCharacter): character = 'b' valueName = 'month' def createField(self, *args, **kwargs): return AbbreviatedMonthField(*args, **kwargs) class FullMonthFormatCharacter(SingleFormatCharacter): character = 'B' valueName = 'month' def createField(self, *args, **kwargs): return FullMonthField(*args, **kwargs) class DayFormatCharacter(SingleFormatCharacter): character = 'd' valueName = 'day' def createField(self, *args, **kwargs): kwargs['width'] = 2 return DayField(*args, **kwargs) Entry.addFormat(YearFormatCharacter) Entry.addFormat(MonthFormatCharacter) Entry.addFormat(AbbreviatedMonthFormatCharacter) Entry.addFormat(FullMonthFormatCharacter) Entry.addFormat(DayFormatCharacter) def __init__(self, *args, **kwargs): fmt = kwargs.pop('format', lambda x: decodeSystemString(x.strftime('%x'))) self.__formatter = fmt fmt = decodeSystemString(fmt(datetime.date(year=3333, day=22, month=11))) debugInfo = dict(original=fmt) months = list() for fmtChar in ['B', 'b']: substring = decodeSystemString(datetime.date(year=3333, day=22, month=11).strftime('%%%s' % fmtChar)) debugInfo['month%s' % fmtChar] = substring months.append((fmtChar, substring + '.')) months.append((fmtChar, substring)) for fmtChar, substring in months: idx = fmt.lower().find(substring.lower()) if idx != -1: fmt = fmt[:idx] + fmtChar + fmt[idx + len(substring):] break # Some people have the week day in their "short" date format. for weekChar in ['A', 'a']: weekday = decodeSystemString(datetime.date(year=3333, day=22, month=11).strftime('%%%s' % weekChar)) fmt = re.sub(ur'%s\s*' % weekday, '', fmt) fmt = re.sub('1+', 'm', fmt) fmt = re.sub('2+', 'd', fmt) fmt = re.sub('3+', 'y', fmt) kwargs['format'] = fmt debugInfo['numeric'] = fmt try: self.__value = datetime.date(year=kwargs['year'], month=kwargs['month'], day=kwargs['day']) super(DateEntry, self).__init__(*args, **kwargs) except KeyError as e: raise ValueError('Invalid format "%s" (original exception: "%s")' % (debugInfo, e)) self.__calendar = None wx.EVT_LEFT_UP(self, self.__OnLeftUp) if '__WXMAC__' in wx.PlatformInfo: wx.EVT_KILL_FOCUS(self, self.__OnKillFocus) if self.Field('day') is NullField: self.AddField(None, ' ') self.AddField('day', DayField(value=self.__value.day, observer=self, width=2)) if self.Field('month') is NullField: self.AddField(None, ' ') self.AddField('month', AbbreviatedMonthField(value=self.__value.month, observer=self)) if self.Field('year') is NullField: self.AddField(None, ' ') self.AddField('year', YearField(value=self.__value.year, observer=self, width=4)) def Format(self): return self.__formatter(self.GetDate()) def DismissPopup(self): super(DateEntry, self).DismissPopup() if self.__calendar is not None: self.__calendar.Dismiss() def __OnKillFocus(self, event): self.DismissPopup() event.Skip() def OnChar(self, event): if event.GetKeyCode() == ord('/'): self.FocusNext() event.Skip() elif event.GetKeyCode() == wx.WXK_ESCAPE and self.__calendar is not None: self.DismissPopup() else: return super(DateEntry, self).OnChar(event) def GetDate(self): return datetime.date(year=self.Field('year').GetValue(), month=self.Field('month').GetValue(), day=self.Field('day').GetValue()) def SetDate(self, dt, notify=False): if notify: evt = DateChangeEvent(self, dt) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() return self.Field('year').SetValue(dt.year) self.Field('month').SetValue(dt.month) self.Field('day').SetValue(dt.day) if self.__calendar is not None: self.__calendar.SetSelection(self.GetDate()) def __NewValue(self, **kwargs): keywords = dict(year=self.Field('year').GetValue(), month=self.Field('month').GetValue(), day=self.Field('day').GetValue()) keywords.update(kwargs) return datetime.date(**keywords) def ValidateChange(self, field, value): if field == self.Field('year'): return self.ValidateYearChange(value) elif field == self.Field('month'): return self.ValidateMonthChange(value) elif field == self.Field('day'): return self.ValidateDayChange(value) return None def ValidateYearChange(self, value): if value < 1 or value > 9999: # This should let us breath. wx.Bell() return None evt = DateChangeEvent(self, self.__NewValue(year=value, month=self.Field('month').GetValue(), day=min(MaxDayOfMonth(value, self.Field('month').GetValue()), self.Field('day').GetValue()))) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetDate(evt.GetValue()) return None def ValidateIncrement(self, field, value): if field == self.Field('year'): return self.ValidateYearChange(value) elif field == self.Field('month'): return self.ValidateMonthIncrement(value) elif field == self.Field('day'): return self.ValidateDayIncrement(value) return None def ValidateDecrement(self, field, value): if field == self.Field('year'): return self.ValidateYearChange(value) elif field == self.Field('month'): return self.ValidateMonthDecrement(value) elif field == self.Field('day'): return self.ValidateDayDecrement(value) def ValidateMonthChange(self, value): if value < 1 or value > 12: wx.Bell() return None evt = DateChangeEvent(self, self.__NewValue(month=value, day=min(MaxDayOfMonth(self.Field('year').GetValue(), value), self.Field('day').GetValue()))) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetDate(evt.GetValue()) return None def ValidateMonthIncrement(self, value): if value == 13: if self.Field('year').GetValue() == 9999: wx.Bell() return None evt = DateChangeEvent(self, self.__NewValue(year=self.Field('year').GetValue() + 1, month=1, day=min(MaxDayOfMonth(self.Field('year').GetValue() + 1, 1), self.Field('day').GetValue()))) else: evt = DateChangeEvent(self, self.__NewValue(month=value, day=min(MaxDayOfMonth(self.Field('year').GetValue(), value), self.Field('day').GetValue()))) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetDate(evt.GetValue()) return None def ValidateMonthDecrement(self, value): if value == 0: if self.Field('year').GetValue() == 1: wx.Bell() return None evt = DateChangeEvent(self, self.__NewValue(year=self.Field('year').GetValue() - 1, month=12, day=min(MaxDayOfMonth(self.Field('year').GetValue() - 1, 12), self.Field('day').GetValue()))) else: evt = DateChangeEvent(self, self.__NewValue(month=value, day=min(MaxDayOfMonth(self.Field('year').GetValue(), value), self.Field('day').GetValue()))) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetDate(evt.GetValue()) return None def ValidateDayChange(self, value): if value < 1 or value > MaxDayOfMonth(self.Field('year').GetValue(), self.Field('month').GetValue()): wx.Bell() return None evt = DateChangeEvent(self, self.__NewValue(day=value)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetDate(evt.GetValue()) return None def ValidateDayIncrement(self, value): if value > MaxDayOfMonth(self.Field('year').GetValue(), self.Field('month').GetValue()): if self.Field('month').GetValue() == 12: if self.Field('year').GetValue() == 9999: wx.Bell() return None evt = DateChangeEvent(self, self.__NewValue(year=self.Field('year').GetValue() + 1, month=1, day=1)) else: evt = DateChangeEvent(self, self.__NewValue(month=self.Field('month').GetValue() + 1, day=1)) else: evt = DateChangeEvent(self, self.__NewValue(day=value)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetDate(evt.GetValue()) return None def ValidateDayDecrement(self, value): if value == 0: if self.Field('month').GetValue() == 1: if self.Field('year').GetValue() == 1: wx.Bell() return None evt = DateChangeEvent(self, self.__NewValue(year=self.Field('year').GetValue() - 1, month=12, day=MaxDayOfMonth(self.Field('year').GetValue() - 1, 12))) else: evt = DateChangeEvent(self, self.__NewValue(month=self.Field('month').GetValue() - 1, day=MaxDayOfMonth(self.Field('year').GetValue(), self.Field('month').GetValue() - 1))) else: evt = DateChangeEvent(self, self.__NewValue(day=value)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() else: self.SetDate(evt.GetValue()) return None def __OnLeftUp(self, event): if self.__calendar is None: w, h = self.GetClientSizeTuple() x, y = self.GetPositionTuple() self.__calendar = _CalendarPopup(self, selection=self.GetDate()) self.__calendar.Popup(self.GetParent().ClientToScreen(wx.Point(x, y + h))) EVT_POPUP_DISMISS(self.__calendar, self.OnCalendarDismissed) self.ForceFocus() else: self.__calendar.Dismiss() event.Skip() def OnCalendarDismissed(self, event): self.__calendar = None self.ForceFocus(False) event.Skip() def OnPaste(self, values): kwargs = dict(year=self.Field('year').GetValue(), month=self.Field('month').GetValue(), day=self.Field('day').GetValue()) for value, field in values: try: kwargs[self.FieldName(field)] = int(value) except ValueError: wx.Bell() return try: dt = datetime.date(**kwargs) except: wx.Bell() return self.SetDate(dt, notify=True) #} #======================================= #{ Popup window wxEVT_POPUP_DISMISS = wx.NewEventType() EVT_POPUP_DISMISS = wx.PyEventBinder(wxEVT_POPUP_DISMISS) class PopupDismissEvent(wx.PyCommandEvent): def __init__(self, owner): super(PopupDismissEvent, self).__init__(wxEVT_POPUP_DISMISS) self.SetEventObject(owner) class _PopupWindow(wx.Dialog): """wx.PopupWindow does not exist on Mac and doesn't work well on other plaforms.""" def __init__(self, *args, **kwargs): kwargs['style'] = wx.FRAME_NO_TASKBAR|wx.NO_BORDER|wx.FRAME_FLOAT_ON_PARENT if '__WXMSW__' in wx.PlatformInfo: kwargs['style'] |= wx.WANTS_CHARS super(_PopupWindow, self).__init__(*args, **kwargs) self.__interior = wx.Panel(self, style=wx.WANTS_CHARS if '__WXMSW__' in wx.PlatformInfo else 0) wx.EVT_ACTIVATE(self, self.OnActivate) if '__WXMAC__' in wx.PlatformInfo: wx.EVT_CHAR(self, self.OnChar) else: wx.EVT_CHAR(self.__interior, self.OnChar) self.Fill(self.__interior) sizer = wx.BoxSizer() sizer.Add(self.__interior, 1, wx.EXPAND) self.SetSizer(sizer) def interior(self): return self.__interior def Popup(self, position): self.Move(position) self.Show() if '__WXGTK__' in wx.PlatformInfo: self.SetFocus() def Dismiss(self): self.ProcessEvent(PopupDismissEvent(self)) self.Destroy() def OnChar(self, event): if not self.HandleKey(event): self.GetParent().OnChar(event) def HandleKey(self, event): return False def OnActivate(self, event): if event.GetActive(): event.Skip() else: self.Dismiss() #} class _RelativeChoicePopup(_PopupWindow): def __init__(self, start, *args, **kwargs): self.__start = start self.__editing = False self.__comboState = 0 self.__units = [ (_('Week(s)'), 7 * 24 * 3600), (_('Day(s)'), 24 * 3600), (_('Hour(s)'), 3600), (_('Minute(s)'), 60), ] if 'units' in kwargs: units = kwargs.pop('units') if units: self.__units = units self.LoadChoices(kwargs.pop('choices', '60,120,180')) super(_RelativeChoicePopup, self).__init__(*args, **kwargs) def Fill(self, interior): sizer = wx.FlexGridSizer(0, 2) sizer.AddGrowableCol(0) interior.SetSizer(sizer) self.__sizer = sizer self.__interior = interior self.__Populate() self.SetEditing(False) def SaveChoices(self): def total_seconds(dt): return dt.seconds + dt.days * 24 * 3600 return ','.join(map(lambda x: str(int(total_seconds(x) / 60)), self.__choices)) def LoadChoices(self, choices): self.__choices = [datetime.timedelta(minutes=m) for m in map(int, choices.split(','))] def __OnComboLeftDown(self, event): self.__comboState = 1 event.Skip() def __OnComboFocus(self, event): if self.__comboState == 1: # Focus after click => popup self.__comboState = 2 else: # Popup dismissed self.__comboState = 0 def OnActivate(self, event): if self.__comboState != 0 and not event.GetActive(): event.Skip() else: super(_RelativeChoicePopup, self).OnActivate(event) def __Populate(self): hsizer = wx.BoxSizer(wx.HORIZONTAL) self.__btnEdit = wx.Button(self.__interior, wx.ID_ANY, _('Edit')) wx.EVT_BUTTON(self.__btnEdit, wx.ID_ANY, self.OnEdit) hsizer.Add(self.__btnEdit, 0, wx.ALL|wx.ALIGN_CENTRE, 2) self.__amountCtrl = wx.SpinCtrl(self.__interior, wx.ID_ANY, '1', min=1) hsizer.Add(self.__amountCtrl, 0, wx.ALL, 2) self.__unitCtrl = wx.Choice(self.__interior, wx.ID_ANY) for name, duration in self.__units: idx = self.__unitCtrl.Append(name) self.__unitCtrl.SetClientData(idx, duration) self.__unitCtrl.SetSelection(0) hsizer.Add(self.__unitCtrl, 1, wx.ALL|wx.ALIGN_CENTRE, 2) if '__WXGTK__' in wx.PlatformInfo: wx.EVT_SET_FOCUS(self.__unitCtrl, self.__OnComboFocus) wx.EVT_LEFT_DOWN(self.__unitCtrl, self.__OnComboLeftDown) self.__sizer.Add(hsizer, flag=wx.EXPAND) self.__btnAdd = wx.BitmapButton(self.__interior, wx.ID_ANY, wx.ArtProvider.GetBitmap(wx.ART_ADD_BOOKMARK, wx.ART_BUTTON, (16, 16))) self.__sizer.Add(self.__btnAdd, 0, wx.ALL|wx.ALIGN_CENTRE, 3) wx.EVT_BUTTON(self.__btnAdd, wx.ID_ANY, self.OnAdd) self.__lines = list() for line, delta in enumerate(self.__choices): if line >= len(_POPUPIDCACHE): _POPUPIDCACHE.append((wx.NewId(), wx.NewId())) idSpan, idDel = _POPUPIDCACHE[line] btn = pbtn.PlateButton(self.__interior, idSpan, self.DeltaRepr(delta), style=pbtn.PB_STYLE_SQUARE) self.__sizer.Add(btn, 0, wx.EXPAND) wx.EVT_BUTTON(btn, idSpan, self.OnChoose) btn = wx.BitmapButton(self.__interior, idDel, wx.ArtProvider.GetBitmap(wx.ART_DEL_BOOKMARK, wx.ART_BUTTON, (16, 16))) self.__sizer.Add(btn, 0, wx.ALL|wx.ALIGN_CENTRE, 3) btn.Show(False) wx.EVT_BUTTON(btn, idDel, self.OnDel) self.__lines.append((delta, idSpan, idDel, btn)) def Popup(self, position): self.Fit() super(_RelativeChoicePopup, self).Popup(position) def DeltaRepr(self, delta): values = list() days = delta.days if days // 7: if days // 7 == 1: values.append(_('1 week')) else: values.append(_('%d weeks') % (days // 7)) if days % 7: if days % 7 == 1: values.append(_('1 day')) else: values.append(_('%d days') % (days % 7)) minutes = delta.seconds // 60 if minutes // 60: if minutes // 60 == 1: values.append(_('1 hour')) else: values.append(_('%d hours') % (minutes // 60)) if minutes % 60: if minutes % 60 == 1: values.append(_('1 minute')) else: values.append(_('%d minutes') % (minutes % 60)) return u', '.join(values) + decodeSystemString((self.__start + delta).strftime(' (%c)')) def __Empty(self): while len(self.__sizer.GetChildren()): self.__sizer.Remove(0) self.__interior.DestroyChildren() def OnChoose(self, event): for delta, idSpan, idDel, btn in self.__lines: if idSpan == event.GetId(): self.GetParent().SetDateTime(self.__start + delta, notify=True) self.Dismiss() break def OnEdit(self, event): if self.__editing: self.GetParent().OnChoicesChanged(self) self.SetEditing(not self.__editing) def OnDel(self, event): for idx, (delta, idSpan, idDel, btn) in enumerate(self.__lines): if idDel == event.GetId(): del self.__choices[idx] self.__Empty() self.__Populate() self.SetEditing(self.__editing) break def OnAdd(self, event): amount = self.__amountCtrl.GetValue() self.__choices.append(datetime.timedelta(seconds=amount * self.__unitCtrl.GetClientData(self.__unitCtrl.GetSelection()))) self.__choices.sort() self.__Empty() self.__Populate() self.SetEditing(self.__editing) def SetEditing(self, editing): self.__editing = editing self.__btnEdit.SetLabel(_('Done') if self.__editing else _('Edit')) self.__amountCtrl.Show(self.__editing) self.__unitCtrl.Show(self.__editing) self.__btnAdd.Show(self.__editing) for delta, idSpan, idDel, btn in self.__lines: btn.Show(self.__editing) wx.CallAfter(self.Fit) wx.CallAfter(self.Refresh) #======================================= #{ Calendar popup class _CalendarPopup(_PopupWindow): def __init__(self, *args, **kwargs): self.__selection = kwargs.pop('selection') self.__year = self.__selection.year self.__month = self.__selection.month self.__minDate = kwargs.pop('minDate', None) self.__maxDate = kwargs.pop('maxDate', None) self.__maxDim = None super(_CalendarPopup, self).__init__(*args, **kwargs) def Fill(self, interior): wx.EVT_PAINT(interior, self.OnPaint) wx.EVT_LEFT_UP(interior, self.OnLeftUp) self.SetClientSize(self.GetExtent(wx.ClientDC(interior))) def GetExtent(self, dc): dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) W, H = 0, 0 for month in xrange(1, 13): header = decodeSystemString(datetime.date(year=self.__year, month=month, day=11).strftime('%B %Y')) tw, th = dc.GetTextExtent(header) W = max(W, tw) H = max(H, th) header = decodeSystemString(datetime.date(year=self.__year, month=self.__month, day=1).strftime('%B %Y')) lines = monthcalendarex(self.__year, self.__month, weeks=1) self.__maxDim = 0 for line in lines: for year, month, day in line: tw, th = dc.GetTextExtent('%d' % day) self.__maxDim = max(self.__maxDim, tw, th) for header in decodeSystemString(calendar.weekheader(2)).split(): tw, th = dc.GetTextExtent(header) self.__maxDim = max(self.__maxDim, tw, th) if '__WXMSW__' in wx.PlatformInfo: # WTF ? self.__maxDim += 10 else: self.__maxDim += 4 return wx.Size(max(W + 48 + 4, self.__maxDim * len(lines[0])), H + 2 + self.__maxDim * (len(lines) + 1)) def SetSelection(self, selection): self.__selection = selection self.Refresh() def OnPaint(self, event): dc = wx.PaintDC(event.GetEventObject()) dc.SetBackground(wx.WHITE_BRUSH) dc.Clear() dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) w, h = self.GetClientSizeTuple() # Header: current month/year dc.SetPen(wx.BLACK_PEN) dc.SetBrush(wx.BLACK_BRUSH) header = decodeSystemString(datetime.date(year=self.__year, month=self.__month, day=1).strftime('%B %Y')) tw, th = dc.GetTextExtent(header) dc.DrawText(header, (w - 48 - tw) / 2, 1) buttonDim = min(th, 10) cx = w - 24 cy = th / 2 + 1 gc = wx.GraphicsContext.Create(dc) gc.SetPen(wx.BLACK_PEN) gc.SetBrush(wx.BLACK_BRUSH) # Prev month if self.__month != 1 or self.__year != 1: gp = gc.CreatePath() xinf = w - 48 + 16 - buttonDim xsup = w - 48 + 16 yinf = th / 2 + 1 - buttonDim / 2 ysup = th / 2 + 1 + buttonDim / 2 gp.MoveToPoint(xinf, th / 2 + 1) gp.AddArc(cx, cy, math.sqrt((xsup - cx) * (xsup - cx) + (yinf - cy) * (yinf - cy)), math.pi * 3 / 4, math.pi * 5 / 4, True) gc.DrawPath(gp) # Next month if self.__month != 12 or self.__year != 9999: gp = gc.CreatePath() xinf = w - 16 xsup = w - 16 + buttonDim yinf = th / 2 + 1 - buttonDim / 2 ysup = th / 2 + 1 + buttonDim / 2 gp.MoveToPoint(xsup, th / 2 + 1) gp.AddArc(cx, cy, math.sqrt((xinf - cx) * (xinf - cx) + (yinf - cy) * (yinf - cy)), math.pi / 4, -math.pi / 4, False) gc.DrawPath(gp) # Today gp = gc.CreatePath() gp.AddArc(cx, cy, buttonDim * 3 / 4, 0, math.pi * 2, True) gc.DrawPath(gp) y = th + 2 # Weekday first letters dc.SetPen(wx.LIGHT_GREY_PEN) dc.SetBrush(wx.LIGHT_GREY_BRUSH) dc.DrawRectangle(0, y, self.__maxDim * 7, self.__maxDim) dc.SetTextForeground(wx.BLUE) for idx, header in enumerate(decodeSystemString(calendar.weekheader(2)).split()): tw, th = dc.GetTextExtent(header) dc.DrawText(header, self.__maxDim * idx + int((self.__maxDim - tw) / 2), y + int((self.__maxDim - th) / 2)) y += self.__maxDim # Days self.__days = list() for line in monthcalendarex(self.__year, self.__month, weeks=1): x = 0 for dayIndex, (year, month, day) in enumerate(line): dt = datetime.date(year=year, month=month, day=day) active = (self.__minDate is None or dt >= self.__minDate) and (self.__maxDate is None or dt <= self.__maxDate) thisMonth = year == self.__year and month == self.__month dc.SetPen(wx.BLACK_PEN) dc.SetTextForeground(wx.RED if (dayIndex + calendar.firstweekday()) % 7 in [5, 6] else wx.BLACK) if dt == self.__selection: drawFocusRect(dc, x, y, self.__maxDim, self.__maxDim) dc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) if not active: dc.SetPen(wx.LIGHT_GREY_PEN) dc.SetBrush(wx.LIGHT_GREY_BRUSH) dc.DrawRectangle(x, y, self.__maxDim, self.__maxDim) elif not thisMonth: # Very light grey... color = wx.Colour(230, 230, 230) dc.SetPen(wx.Pen(color)) dc.SetBrush(wx.Brush(color)) dc.DrawRectangle(x, y, self.__maxDim, self.__maxDim) now = datetime.datetime.now() if (dt.year, dt.month, dt.day) == (now.year, now.month, now.day): dc.SetPen(wx.RED_PEN) dc.SetBrush(wx.TRANSPARENT_BRUSH) dc.DrawRectangle(x, y, self.__maxDim, self.__maxDim) label = '%d' % day tw, th = dc.GetTextExtent(label) dc.DrawText(label, x + (self.__maxDim - tw) / 2, y + (self.__maxDim - th) / 2) if active: self.__days.append((x, y, (year, month, day))) x += self.__maxDim y += self.__maxDim def OnLeftUp(self, event): w, h = self.GetClientSizeTuple() # Buttons if event.GetY() < 16 and event.GetX() > w - 48: if event.GetX() < w - 48 + 16 and (self.__month != 1 or self.__year != 1): if self.__month == 1: self.__year -= 1 self.__month = 12 else: self.__month -= 1 elif event.GetX() < w - 48 + 32: today = datetime.datetime.now() self.__year = today.year self.__month = today.month elif self.__month != 12 or self.__year != 9999: if self.__month == 12: self.__year += 1 self.__month = 1 else: self.__month += 1 self.SetClientSize(self.GetExtent(wx.ClientDC(self.interior()))) self.Refresh() return for x, y, (year, month, day) in self.__days: if event.GetX() >= x and event.GetX() < x + self.__maxDim and \ event.GetY() >= y and event.GetY() < y + self.__maxDim: self.GetParent().SetDate(datetime.date(year=year, month=month, day=day), notify=True) self.Dismiss() break #} #======================================= #{ Multiple choices popup class _MultipleChoicesPopup(_PopupWindow): def __init__(self, choices, value, *args, **kwargs): self.__choices = choices self.__value = value super(_MultipleChoicesPopup, self).__init__(*args, **kwargs) def Fill(self, interior): wx.EVT_PAINT(interior, self.OnPaint) wx.EVT_LEFT_UP(interior, self.OnLeftUp) self.SetClientSize(self.GetExtent(wx.ClientDC(interior))) def GetExtent(self, dc): maxW = 0 totH = 0 dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) for label, value in self.__choices: tw, th = dc.GetTextExtent(unicode(label)) maxW = max(tw, maxW) totH += th return wx.Size(maxW + 4, totH + 4 + 2 * (len(self.__choices) + 1)) def OnPaint(self, event): dc = wx.PaintDC(event.GetEventObject()) dc.SetBackground(wx.WHITE_BRUSH) dc.Clear() dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) y = 2 w, h = self.GetClientSize() for label, value in self.__choices: tw, th = dc.GetTextExtent(label) if value == self.__value: drawFocusRect(dc, 1, y, w - 2, th) dc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) else: dc.SetTextForeground(wx.BLACK) dc.DrawText(label, 2 + (w - 4 - tw) // 2, y) y += th + 2 def __index(self): for idx, (label, value) in enumerate(self.__choices): if value == self.__value: return idx return 0 def HandleKey(self, event): if event.GetKeyCode() == wx.WXK_UP: self.__value = self.__choices[(self.__index() + len(self.__choices) - 1) % len(self.__choices)][1] self.Refresh() return True if event.GetKeyCode() == wx.WXK_DOWN: self.__value = self.__choices[(self.__index() + 1) % len(self.__choices)][1] self.Refresh() return True if event.GetKeyCode() == wx.WXK_RETURN: evt = EntryChoiceSelectedEvent(self, self.__value) self.ProcessEvent(evt) return True return False def OnLeftUp(self, event): y = 2 dc = wx.ClientDC(event.GetEventObject()) dc.SetFont(wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)) for label, value in self.__choices: tw, th = dc.GetTextExtent(label) if event.GetY() >= y and event.GetY() < y + th: evt = EntryChoiceSelectedEvent(self, value) self.ProcessEvent(evt) break y += th + 2 #} #======================================= #{ Date/time control wxEVT_DATETIME_CHANGE = wx.NewEventType() EVT_DATETIME_CHANGE = wx.PyEventBinder(wxEVT_DATETIME_CHANGE) class DateTimeChangeEvent(FieldValueChangeEvent): type_ = wxEVT_DATETIME_CHANGE class SmartDateTimeCtrl(wx.Panel): def __init__(self, *args, **kwargs): value = kwargs.pop('value', None) label = kwargs.pop('label', u'') self.__enableNone = kwargs.pop('enableNone', False) dateFormat = kwargs.pop('dateFormat', lambda x: decodeSystemString(x.strftime('%x'))) timeFormat = kwargs.pop('timeFormat', lambda x: decodeSystemString(x.strftime('%H:%M:%S'))) startHour = kwargs.pop('startHour', 0) endHour = kwargs.pop('endHour', 24) minuteDelta = kwargs.pop('minuteDelta', 10) secondDelta = kwargs.pop('secondDelta', 10) showRelative = kwargs.pop('showRelative', False) units = kwargs.pop('units', None) super(SmartDateTimeCtrl, self).__init__(*args, **kwargs) sizer = wx.BoxSizer(wx.HORIZONTAL) self.__label = None if self.__enableNone: self.__checkbox = _CheckBox(self, label) wx.EVT_CHECKBOX(self.__checkbox, wx.ID_ANY, self.OnToggleNone) sizer.Add(self.__checkbox, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTRE, 3) self.__label = self.__checkbox elif label: self.__label = wx.StaticText(self, wx.ID_ANY, label) sizer.Add(self.__label, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTRE, 3) dateTime = value or datetime.datetime.now() self.__dateCtrl = DateEntry(self, year=dateTime.year, month=dateTime.month, day=dateTime.day, format=dateFormat) sizer.Add(self.__dateCtrl, 0, wx.ALL|wx.ALIGN_CENTRE, 3) self.__timeCtrl = TimeEntry(self, hour=dateTime.hour, minute=dateTime.minute, second=dateTime.second, format=timeFormat, startHour=startHour, endHour=endHour, minuteDelta=minuteDelta, secondDelta=secondDelta, units=units) sizer.Add(self.__timeCtrl, 0, wx.ALL|wx.ALIGN_CENTRE, 3) if showRelative: self.__relButton = wx.BitmapButton(self, wx.ID_ANY, wx.ArtProvider.GetBitmap(wx.ART_LIST_VIEW, wx.ART_BUTTON, (16, 16))) wx.EVT_BUTTON(self.__relButton, wx.ID_ANY, self.__OnPopupRelativeChoices) sizer.Add(self.__relButton, 0, wx.ALL|wx.ALIGN_CENTRE, 1) self.__relButton.Enable(False) else: self.__relButton = None self.SetSizer(sizer) if self.__enableNone and value is None: self.Enable(False) EVT_DATE_CHANGE(self, self.OnDateChange) EVT_TIME_CHANGE(self, self.OnTimeChange) EVT_TIME_CHOICES_CHANGE(self.__timeCtrl, self.__OnChoicesChange) EVT_TIME_NEXT_DAY(self, self.OnNextDay) EVT_TIME_PREV_DAY(self, self.OnPrevDay) def __OnPopupRelativeChoices(self, event): self.__timeCtrl.PopupRelativeChoices() def HideRelativeButton(self): # For alignment purposes... self.__relButton.Hide() def HandleKey(self, event): if self.GetDateTime() is not None: if event.GetKeyCode() in [ord('t'), ord('T')]: # Today, same time self.SetDateTime(datetime.datetime.combine(datetime.datetime.now().date(), self.GetDateTime().time()), notify=True) return True elif event.GetKeyCode() in [ord('n'), ord('N')]: # Now self.SetDateTime(datetime.datetime.now(), notify=True) return True return False def Cleanup(self): self.__dateCtrl.Cleanup() self.__timeCtrl.Cleanup() def GetLabelWidth(self): if self.__label is not None: return self.__label.GetSizeTuple()[0] def SetLabelWidth(self, width): if self.__label is not None: self.__label.SetMinSize(wx.Size(width, -1)) def EnableChoices(self, enabled=True): self.__timeCtrl.EnableChoices(enabled=enabled) def SetRelativeChoicesStart(self, start=None): self.__timeCtrl.SetRelativeChoicesStart(start) if self.__relButton is not None: self.__relButton.Enable(self.__timeCtrl.IsEnabled() and start is not None) def LoadChoices(self, choices): self.__timeCtrl.LoadChoices(choices) def GetDateTime(self): if self.__dateCtrl.IsEnabled(): return datetime.datetime.combine(self.__dateCtrl.GetDate(), self.__timeCtrl.GetTime()) return None def SetDateTime(self, value, notify=False): event = DateTimeChangeEvent(self, value) if notify: self.ProcessEvent(event) if not event.IsVetoed(): if value is None: if self.__enableNone: self.__checkbox.SetValue(False) self.Enable(False) else: raise ValueError('This control does not support the None value') else: self.Enable(True) if self.__enableNone: self.__checkbox.SetValue(True) self.__dateCtrl.SetDate(datetime.date(year=value.year, month=value.month, day=value.day)) self.__timeCtrl.SetTime(datetime.time(hour=value.hour, minute=value.minute, second=value.second)) self.Enable(True) def Enable(self, enabled=True): self.__dateCtrl.Enable(enabled) self.__timeCtrl.Enable(enabled) if self.__relButton is not None: self.__relButton.Enable(enabled and self.__timeCtrl.GetRelativeChoicesStart() is not None) def OnToggleNone(self, event): if event.IsChecked(): evt = DateTimeChangeEvent(self, datetime.datetime.combine(self.__dateCtrl.GetDate(), self.__timeCtrl.GetTime())) else: evt = DateTimeChangeEvent(self, None) self.ProcessEvent(evt) self.Enable(event.IsChecked()) self.Refresh() if event.IsChecked(): self.__dateCtrl.SetFocus() def OnDateChange(self, event): newValue = datetime.datetime.combine(event.GetValue(), self.__timeCtrl.GetTime()) evt = DateTimeChangeEvent(self, newValue) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() event.Veto() else: self.SetDateTime(evt.GetValue()) def OnTimeChange(self, event): newValue = datetime.datetime.combine(self.__dateCtrl.GetDate(), event.GetValue()) evt = DateTimeChangeEvent(self, newValue) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() event.Veto() else: self.SetDateTime(evt.GetValue()) def OnNextDay(self, event): evt = DateTimeChangeEvent(self, datetime.datetime.combine(self.GetDateTime().date(), event.GetValue()) + datetime.timedelta(days=1)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() event.Veto() else: self.SetDateTime(evt.GetValue()) def OnPrevDay(self, event): evt = DateTimeChangeEvent(self, datetime.datetime.combine(self.GetDateTime().date(), event.GetValue()) - datetime.timedelta(days=1)) self.ProcessEvent(evt) if evt.IsVetoed(): wx.Bell() event.Veto() else: self.SetDateTime(evt.GetValue()) def __OnChoicesChange(self, event): self.ProcessEvent(TimeChoicesChangedEvent(self, event.GetValue())) #} #======================================= #{ Date/time span wxEVT_DATETIMESPAN_CHANGE = wx.NewEventType() EVT_DATETIMESPAN_CHANGE = wx.PyEventBinder(wxEVT_DATETIMESPAN_CHANGE) class DateTimeSpanChangeEvent(FieldValueChangeEvent): type_ = wxEVT_DATETIMESPAN_CHANGE class DateTimeSpanCtrl(wx.EvtHandler): def __init__(self, ctrlStart, ctrlEnd, minSpan=None): super(DateTimeSpanCtrl, self).__init__() self.__ctrlStart = ctrlStart self.__ctrlEnd = ctrlEnd self.__minSpan = minSpan self.__ctrlStart.EnableChoices() self.__ctrlEnd.EnableChoices() self.__ctrlEnd.SetRelativeChoicesStart(self.__ctrlStart.GetDateTime()) EVT_DATETIME_CHANGE(self.__ctrlStart, self.OnStartChange) EVT_DATETIME_CHANGE(self.__ctrlEnd, self.OnEndChange) w1 = self.__ctrlStart.GetLabelWidth() w2 = self.__ctrlEnd.GetLabelWidth() self.__ctrlStart.SetLabelWidth(max(w1, w2)) self.__ctrlEnd.SetLabelWidth(max(w1, w2)) def OnStartChange(self, event): if event.GetValue() is None: if self.__ctrlStart.GetDateTime() is None: raise RuntimeError('WTF?') # Start control disabled. Nothing to do. self.__ctrlEnd.SetRelativeChoicesStart(None) else: if self.__minSpan is not None: if self.__ctrlStart.GetDateTime() is None: # Start enabled; ensure min span if self.__ctrlEnd.GetDateTime() is not None and event.GetValue() + self.__minSpan > self.__ctrlEnd.GetDateTime(): self.__ctrlStart.SetDateTime(self.__ctrlEnd.GetDateTime() - self.__minSpan) event.Veto() else: # Start changed => keep difference if self.__ctrlEnd.GetDateTime() is not None: self.__ctrlEnd.SetDateTime(self.__ctrlEnd.GetDateTime() + (event.GetValue() - self.__ctrlStart.GetDateTime())) self.__ctrlEnd.SetRelativeChoicesStart(event.GetValue()) self.ProcessEvent(DateTimeSpanChangeEvent(self, (event.GetValue(), self.__ctrlEnd.GetDateTime()))) def OnEndChange(self, event): if event.GetValue() is None: if self.__ctrlEnd.GetDateTime() is None: raise RuntimeError('WTF?') # Nothing to do value = None else: value = event.GetValue() if self.__minSpan is not None: # End control enabled or changed; ensure min span, without changing start value if self.__ctrlStart.GetDateTime() is not None and \ self.__ctrlStart.GetDateTime() + self.__minSpan > event.GetValue(): value = self.__ctrlStart.GetDateTime() + self.__minSpan self.__ctrlEnd.SetDateTime(value) event.Veto() self.ProcessEvent(DateTimeSpanChangeEvent(self, (self.__ctrlStart.GetDateTime(), value))) #} if __name__ == '__main__': class Dialog(wx.Dialog): def __init__(self): super(Dialog, self).__init__(None, wx.ID_ANY, 'Test', style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER) sz = wx.BoxSizer(wx.VERTICAL) pnl1 = SmartDateTimeCtrl(self, label='Start', enableNone=True, timeFormat=lambda x: decodeSystemString(x.strftime('%I:%M %p')), dateFormat=lambda x: decodeSystemString(x.strftime('%a %Y %b %d')), startHour=8, endHour=18) pnl1.EnableChoices() sz.Add(pnl1, 0, wx.ALL|wx.ALIGN_LEFT, 3) pnl2 = SmartDateTimeCtrl(self, label='End', enableNone=True, timeFormat=lambda x: decodeSystemString(x.strftime('%H:%M:%S')), showRelative=True) pnl2.EnableChoices() sz.Add(pnl2, 0, wx.ALL|wx.ALIGN_LEFT, 3) sz.Add(wx.TextCtrl(self, wx.ID_ANY, ''), 1, wx.ALL|wx.EXPAND, 3) sz.Add(wx.TextCtrl(self, wx.ID_ANY, ''), 1, wx.ALL|wx.EXPAND, 3) self.SetSizer(sz) spanCtrl = DateTimeSpanCtrl(pnl1, pnl2, minSpan=datetime.timedelta(hours=1)) EVT_DATETIMESPAN_CHANGE(spanCtrl, self.OnChange) cfg = wx.Config('SmartDateTimeCtrlSample') if cfg.HasEntry('Choices'): pnl2.LoadChoices(cfg.Read('Choices')) EVT_TIME_CHOICES_CHANGE(pnl2, self.OnChoicesChanged) wx.EVT_CLOSE(self, self.OnClose) self.Fit() self.CentreOnScreen() self.Show() def OnChoicesChanged(self, event): wx.Config('SmartDateTimeCtrlSample').Write('Choices', event.GetValue()) def OnChange(self, event): print event.GetValue() def OnClose(self, event): self.Destroy() class App(wx.App): def OnInit(self): Dialog() return True App(0).MainLoop() taskcoach-1.4.3/taskcoachlib/thirdparty/snarl.py000066400000000000000000000155501265347643000220110ustar00rootroot00000000000000#Python Snarl bindings version 0.2a #Hacked together by Alexander Lash in the wee hours of 2/27. #Contact him at alexander.lash@gmail.com #0.1a: Initial release #0.2a: Added basic command line functions #LARGELY UNTESTED REFERENCE IMPLEMENTATION import win32gui, win32api, win32con import struct, array from ctypes import cast, POINTER, c_byte class SNARL_COMMANDS: SNARL_SHOW = 1 SNARL_HIDE = 2 SNARL_UPDATE = 3 SNARL_IS_VISIBLE = 4 SNARL_GET_VERSION = 5 SNARL_REGISTER_CONFIG_WINDOW = 6 SNARL_REVOKE_CONFIG_WINDOW = 7 SNARL_REGISTER_ALERT = 8 SNARL_REVOKE_ALERT = 9 SNARL_REGISTER_CONFIG_WINDOW_2 = 0xA SNARL_EX_SHOW = 0x20 @staticmethod def sendCommand(command, id=0, timeout=0, longdata=0, title="", text="", icon="", extra=None, extra2=None, reserved1=None, reserved2=None): if extra is None and extra2 is None and reserved1 is None and reserved2 is None: command = struct.pack("ILLL1024s1024s1024s", command, id, timeout, longdata, #LngData2 array.array('B', title).tostring(), array.array('B', text).tostring(), array.array('B', icon).tostring()) else: if reserved1 is None: reserved1 = 0 if reserved2 is None: reserved2 = 0 if extra is None: extra = "" if extra2 is None: extra2 = "" command = struct.pack("ILLL1024s1024s1024s1024s1024sLL", command, id, timeout, longdata, #LngData2 array.array('B', title).tostring(), array.array('B', text).tostring(), array.array('B', icon).tostring(), array.array('B', extra).tostring(), array.array('B', extra2).tostring(), reserved1, reserved2) command_pack = array.array("B", command) command_info = command_pack.buffer_info() cd = struct.pack("LLP", 2, command_info[1], command_info[0]) cd_pack = array.array("B", cd) cd_info = cd_pack.buffer_info() hwnd = win32gui.FindWindow(None, 'Snarl') if hwnd: return win32api.SendMessage(hwnd, win32con.WM_COPYDATA, 0, cd_info[0]) else: return False #deviation from spec: Python doesn't do references. def snGetVersion(): hr = SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_GET_VERSION) if hr: ver = cast(hr, POINTER(c_byte)) return (ver[0], ver[1]) return False #deviation from spec: sound is an optional parameter. def snShowMessage(title, text, timeout=0, iconPath="", reply=0, reply_msg=0, sound=None): if title is None or text is None: return False if sound is None: return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_SHOW, reply, timeout, reply_msg, title,text,iconPath) return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_SHOW, reply, timeout, reply_msg, title,text,iconPath,sound) def snUpdateMessage(id, title, text): if id is None or title is None or text is None: return False return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_UPDATE, id=id, title=title, text=text) == -1 def snHideMessage(id): id = int(id) if id is None: return False return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_HIDE, id=id) == -1 #For some reason this ALWAYS returns -1 for all messages that were once displayed. def snIsMessageVisible(id): return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_IS_VISIBLE, id=id) == -1 #Untested def snRegisterConfig(hwnd, appname, reply_msg, icon=None): if icon is None: return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_REGISTER_CONFIG_WINDOW, longdata=hwnd, title=appname, id = reply_msg) return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_REGISTER_CONFIG_WINDOW, longdata=hwnd, title=appname, id = reply_msg, icon=icon) #Untested def snRevokeConfig(hwnd): return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_REVOKE_CONFIG_WINDOW, longdata=hwnd) #Reference implementation - seems to do nothing? def snRegisterAlert(title, text): return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_REGISTER_ALERT, title=title, text=text) #Reference implementation - seems to do nothing? def snRevokeAlert(): return SNARL_COMMANDS.sendCommand(SNARL_COMMANDS.SNARL_REVOKE_ALERT) if __name__=='__main__': import sys, inspect from optparse import OptionParser parser = OptionParser() parser.add_option("-s", "--show", action="store_const", dest="cmd", const=snShowMessage, help="Show a message with the given parameters.") parser.add_option("-u", "--update", action="store_const", dest="cmd", const=snUpdateMessage, help="Update a message with the given parameters.") parser.add_option("-c", "--hide", action="store_const", dest="cmd", const=snHideMessage, help="Hide a message with the given ID.") parser.add_option("-i", "--id", dest="id", help="ID to use for the update/hide.") parser.add_option("-t", "--title", dest="title", help="Title to use for the show/update.") parser.add_option("-x", "--text", dest="text", help="Text to use for the show/update.") parser.add_option("-T", "--timeout", dest="timeout", help="Timeout to use for the show.") parser.add_option("-I", "--icon", dest="iconPath", help="Icon to use for the show.") parser.add_option("-S", "--sound", dest="sound", help="Sound to use for the show.") if snGetVersion == False: print "Snarl not running!" sys.exit(1) (options, args) = parser.parse_args(sys.argv[1:]) if options.cmd is None: parser.parse_args(['-h']) d = options.__dict__.copy() cmd = options.cmd for key in options.__dict__: if key not in inspect.getargspec(cmd)[0]: del d[key] elif d[key] is None: del d[key] print cmd(**d) sys.exit(0)taskcoach-1.4.3/taskcoachlib/thirdparty/timeline/000077500000000000000000000000001265347643000221205ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/thirdparty/timeline/__init__.py000066400000000000000000000000461265347643000242310ustar00rootroot00000000000000''' Timeline widget for wxPython ''' taskcoach-1.4.3/taskcoachlib/thirdparty/timeline/license.txt000066400000000000000000000020501265347643000243000ustar00rootroot00000000000000License Statement: © 2009, Copyright by The Contributors (Listed Below); All Rights Reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee or royalty is hereby granted, provided that the above copyright notice appear in all copies and that both the copyright notice and this permission notice appear in supporting documentation or portions thereof, including modifications, that you make. THE AUTHOR "THE CONTRIBUTORS" (LISTED BELOW) DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE! THE CONTRIBUTORS: Frank Niessink Mike C. Fletcher taskcoach-1.4.3/taskcoachlib/thirdparty/timeline/timeline.py000077500000000000000000000403051265347643000243050ustar00rootroot00000000000000#! /usr/bin/env python import wx, wx.lib TimeLineSelectionEvent, EVT_TIMELINE_SELECTED = wx.lib.newevent.NewEvent() TimeLineActivationEvent, EVT_TIMELINE_ACTIVATED = wx.lib.newevent.NewEvent() class HotMap(object): ''' Keep track of which node is where. ''' def __init__(self, parent=None): self.parent = parent self.nodes = [] self.rects = {} self.children = {} super(HotMap, self).__init__() def append(self, node, rect): self.nodes.append(node) self.rects[node] = rect self.children[node] = HotMap(node) def __getitem__(self, node): return self.children[node] def findNodeAtPosition(self, position, parent=None): ''' Retrieve the node at the given position. ''' for node, rect in self.rects.items(): if rect.Contains(position): return self[node].findNodeAtPosition(position, node) return parent def firstNode(self): return self.nodes[0] if self.nodes else None def lastNode(self, parent=None): if self.nodes: last = self.nodes[-1] return self[last].lastNode(last) else: return parent def findNode(self, target): if target in self.nodes: return self for node in self.nodes: result = self[node].findNode(target) if result: return result return None def nextChild(self, target): index = self.nodes.index(target) index = min(index+1, len(self.nodes)-1) return self.nodes[index] def previousChild(self, target): index = self.nodes.index(target) index = max(index-1, 0) return self.nodes[index] def firstChild(self, target): children = self[target].nodes if children: return children[0] else: return target class TimeLine(wx.Panel): def __init__(self, *args, **kwargs): self.model = kwargs.pop('model', []) self.padding = kwargs.pop('padding', 3) self.adapter = kwargs.pop('adapter', DefaultAdapter()) self.selectedNode = None self.backgroundColour = wx.WHITE self._buffer = wx.EmptyBitmap(20, 20) # Have a default buffer ready self.DEFAULT_PEN = wx.Pen(wx.BLACK, 1, wx.SOLID) self.SELECTED_PEN = wx.Pen(wx.WHITE, 2, wx.SOLID) kwargs['style'] = wx.TAB_TRAVERSAL|wx.NO_BORDER|wx.FULL_REPAINT_ON_RESIZE|wx.WANTS_CHARS super(TimeLine, self).__init__(*args, **kwargs) self.Bind(wx.EVT_PAINT, self.OnPaint) self.Bind(wx.EVT_SIZE, self.OnSize ) self.Bind(wx.EVT_LEFT_UP, self.OnClickRelease) self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick) self.Bind(wx.EVT_KEY_UP, self.OnKeyUp) self.OnSize(None) def SetBackgroundColour(self, colour): self.backgroundColour = colour def Refresh(self): self.UpdateDrawing() def OnPaint(self, event): dc = wx.BufferedPaintDC(self, self._buffer) def OnSize(self, event): # The buffer is initialized in here, so that the buffer is always # the same size as the Window. width, height = self.GetClientSizeTuple() if width <= 0 or height <= 0: return # Make new off-screen bitmap: this bitmap will always have the # current drawing in it, so it can be used to save the image to # a file, or whatever. self._buffer = wx.EmptyBitmap(width, height) self.UpdateDrawing() def OnClickRelease(self, event): event.Skip() self.SetFocus() point = event.GetPosition() node = self.hot_map.findNodeAtPosition(point) self.SetSelected(node, point) def OnDoubleClick(self, event): point = event.GetPosition() node = self.hot_map.findNodeAtPosition(point) if node: wx.PostEvent(self, TimeLineActivationEvent(node=node, point=point)) def OnKeyUp(self, event): event.Skip() if not self.hot_map: return if event.KeyCode == wx.WXK_HOME: self.SetSelected(self.hot_map.firstNode()) return elif event.KeyCode == wx.WXK_END: self.SetSelected(self.hot_map.lastNode()) return if not self.selectedNode: return if event.KeyCode == wx.WXK_RETURN: wx.PostEvent(self, TimeLineActivationEvent(node=self.selectedNode)) return hot_map = self.hot_map.findNode(self.selectedNode) if hot_map is None: newSelection = self.hot_map.firstNode() elif event.KeyCode == wx.WXK_DOWN: newSelection = hot_map.nextChild(self.selectedNode) elif event.KeyCode == wx.WXK_UP: newSelection = hot_map.previousChild(self.selectedNode) elif event.KeyCode == wx.WXK_RIGHT: newSelection = hot_map.firstChild(self.selectedNode) elif event.KeyCode == wx.WXK_LEFT and hot_map.parent: newSelection = hot_map.parent else: newSelection = self.selectedNode self.SetSelected(newSelection) def GetSelected(self): return self.selectedNode def SetSelected(self, node, point=None): ''' Set the given node selected in the timeline widget ''' if node == self.selectedNode: return self.selectedNode = node self.Refresh() if node: wx.PostEvent(self, TimeLineSelectionEvent(node=node, point=point)) def UpdateDrawing(self): dc = wx.BufferedDC(wx.ClientDC(self), self._buffer) self.Draw(dc) def Draw(self, dc): ''' Draw the timeline on the device context. ''' self.hot_map = HotMap() dc.BeginDrawing() brush = wx.Brush(self.backgroundColour) dc.SetBackground(brush) dc.Clear() dc.SetFont(self.FontForLabels(dc)) if self.model: bounds = self.adapter.bounds(self.model) self.min_start = float(min(bounds)) self.max_stop = float(max(bounds)) if self.max_stop - self.min_start < 100: self.max_stop += 100 self.length = self.max_stop - self.min_start self.width, self.height = dc.GetSize() labelHeight = dc.GetTextExtent('ABC')[1] + 2 # Leave room for time labels self.DrawParallelChildren(dc, self.model, labelHeight, self.height-labelHeight, self.hot_map) self.DrawNow(dc) dc.EndDrawing() def FontForLabels(self, dc): ''' Return the default GUI font, scaled for printing if necessary. ''' font = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) scale = dc.GetPPI()[0] / wx.ScreenDC().GetPPI()[0] font.SetPointSize(scale*font.GetPointSize()) return font def DrawBox(self, dc, node, y, h, hot_map, isSequentialNode=False, depth=0): if h < self.padding: return start, stop = self.adapter.start(node), self.adapter.stop(node) if start is None: start = self.min_start - 10 if stop is None: stop = self.max_stop + 10 start, stop = min(start, stop), max(start, stop) # Sanitize input x = self.scaleX(start) + 2*depth w = self.scaleWidth(stop - start) - 4*depth hot_map.append(node, (wx.Rect(int(x), int(y), int(w), int(h)))) self.DrawRectangle(dc, node, x, y, w, h, isSequentialNode, depth) if not isSequentialNode: self.DrawIconAndLabel(dc, node, x, y, w, h, depth) seqHeight = min(dc.GetTextExtent('ABC')[1] + 2, h) self.DrawSequentialChildren(dc, node, y+2, seqHeight-4, hot_map[node], depth+1) self.DrawParallelChildren(dc, node, y+seqHeight, h-seqHeight, hot_map[node], depth+1) def DrawRectangle(self, dc, node, x, y, w, h, isSequentialNode, depth): dc = wx.GCDC(dc) if isSequentialNode else dc dc.SetClippingRegion(x, y, w, h) dc.SetBrush(self.brushForNode(node, isSequentialNode, depth)) dc.SetPen(self.penForNode(node, isSequentialNode, depth)) rounding = 0 if isSequentialNode and (h < self.padding * 4 or w < self.padding * 4) else self.padding * 2 dc.DrawRoundedRectangle(x, y, w, h, rounding) dc.DestroyClippingRegion() def DrawIconAndLabel(self, dc, node, x, y, w, h, depth): ''' Draw the icon, if any, and the label, if any, of the node. ''' # Make sure the Icon and Label are visible: if x < 0: w -= abs(x) x = 0 dc.SetClippingRegion(x+1, y+1, w-2, h-2) # Don't draw outside the box icon = self.adapter.icon(node, node==self.selectedNode) if icon and h >= icon.GetHeight() and w >= icon.GetWidth(): iconWidth = icon.GetWidth() + 2 dc.DrawIcon(icon, x+2, y+2) else: iconWidth = 0 if h >= dc.GetTextExtent('ABC')[1]: dc.SetFont(self.fontForNode(dc, node, depth)) dc.SetTextForeground(self.textForegroundForNode(node, depth)) dc.DrawText(self.adapter.label(node), x + iconWidth + 2, y+2) dc.DestroyClippingRegion() def DrawParallelChildren(self, dc, parent, y, h, hot_map, depth=0): children = self.adapter.parallel_children(parent) if not children: return childY = y h -= len(children) # vertical space between children recursiveChildrenList = [self.adapter.parallel_children(child, recursive=True) \ for child in children] recursiveChildrenCounts = [len(recursiveChildren) for recursiveChildren in recursiveChildrenList] recursiveChildHeight = h / float(len(children) + sum(recursiveChildrenCounts)) for child, numberOfRecursiveChildren in zip(children, recursiveChildrenCounts): childHeight = recursiveChildHeight * (numberOfRecursiveChildren + 1) if childHeight >= self.padding: self.DrawBox(dc, child, childY, childHeight, hot_map, depth=depth) childY += childHeight + 1 def DrawSequentialChildren(self, dc, parent, y, h, hot_map, depth=0): for child in self.adapter.sequential_children(parent): self.DrawBox(dc, child, y, h, hot_map, isSequentialNode=True, depth=depth) def DrawNow(self, dc): alpha_dc = wx.GCDC(dc) alpha_dc.SetPen(wx.Pen(wx.Colour(128, 200, 128, 128), width=3)) now = self.scaleX(self.adapter.now()) alpha_dc.DrawLine(now, 0, now, self.height) label = self.adapter.nowlabel() textWidth = alpha_dc.GetTextExtent(label)[0] alpha_dc.DrawText(label, now - (textWidth / 2), 0) def scaleX(self, x): return self.scaleWidth(x - self.min_start) def scaleWidth(self, width): return (width / self.length) * self.width def textForegroundForNode(self, node, depth=0): ''' Determine the text foreground color to use to display the label of the given node ''' if node == self.selectedNode: fg_color = wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT) else: fg_color = self.adapter.foreground_color(node, depth) if not fg_color: fg_color = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOWTEXT) return fg_color def fontForNode(self, dc, node, depth=0): ''' Determine the font to use to display the label of the given node, scaled for printing if necessary. ''' font = self.adapter.font(node, depth) font = font if font else wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) scale = dc.GetPPI()[0] / wx.ScreenDC().GetPPI()[0] font.SetPointSize(scale*font.GetPointSize()) return font def brushForNode(self, node, isSequentialNode=False, depth=0): ''' Create brush to use to display the given node ''' if node == self.selectedNode: color = wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT) else: color = self.adapter.background_color(node) if color: # The adapter returns a 3-tuple color = wx.Colour(*color) else: red = (depth * 10)%255 green = 255-((depth * 10)%255) blue = 200 color = wx.Colour(red, green, blue) if isSequentialNode: color.Set(color.Red(), color.Green(), color.Blue(), 128) return wx.Brush(color) def penForNode(self, node, isSequentialNode=False, depth=0): ''' Determine the pen to use to display the given node ''' pen = self.SELECTED_PEN if node == self.selectedNode else self.DEFAULT_PEN #style = wx.DOT if isSequentialNode else wx.SOLID #pen.SetStyle(style) return pen class DefaultAdapter(object): def parallel_children(self, node, recursive=False): children = node.parallel_children[:] if recursive: for child in node.parallel_children: children.extend(self.parallel_children(child, True)) return children def sequential_children(self, node): return node.sequential_children def children(self, node): return self.parallel_children(node) + self.sequential_children(node) def bounds(self, node): times = [node.start, node.stop] for child in self.children(node): times.extend(self.bounds(child)) return min(times), max(times) def start(self, node, recursive=False): starts = [node.start] if recursive: starts.extend([self.start(child, True) \ for child in self.children(node)]) return float(min(starts)) def stop(self, node, recursive=False): stops = [node.stop] if recursive: stops.extend([self.stop(child, True) \ for child in self.children(node)]) return float(max(stops)) def label(self, node): return node.path def background_color(self, node): return None def foreground_color(self, node, depth): return None def icon(self, node): return None def now(self): return 0 def nowlabel(self): return 'Now' class TestApp(wx.App): ''' Basic application for holding the viewing Frame ''' def __init__(self, size): self.size = size super(TestApp, self).__init__(0) def OnInit(self): ''' Initialise the application. ''' wx.InitAllImageHandlers() self.frame = wx.Frame(None) self.frame.CreateStatusBar() model = self.get_model(self.size) self.timeline = TimeLine(self.frame, model=model) self.frame.Show(True) return True def get_model(self, size): parallel_children, sequential_children = [], [] if size > 0: parallel_children = [self.get_model(size-1) for i in range(size)] sequential_children = [Node('Seq 1', 30+10*size, 40+10*size, [], []), Node('Seq 2', 80-10*size, 90-10*size, [], [])] return Node('Node %d'%size, 0+5*size, 100-5*size, parallel_children, sequential_children) class Node(object): def __init__(self, path, start, stop, subnodes, events): self.path = path self.start = start self.stop = stop self.parallel_children = subnodes self.sequential_children = events def __repr__(self): return '%s(%r, %r, %r, %r, %r)'%(self.__class__.__name__, self.path, self.start, self.stop, self.parallel_children, self.sequential_children) usage = 'timeline.py [size]' def main(): """Mainloop for the application""" import sys size = 3 if len(sys.argv) > 1: if sys.argv[1] in ('-h', '--help'): print usage else: try: size = int(sys.argv[1]) except ValueError: print usage else: app = TestApp(size) app.MainLoop() if __name__ == "__main__": main() taskcoach-1.4.3/taskcoachlib/tools/000077500000000000000000000000001265347643000172605ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/tools/__init__.py000066400000000000000000000013661265347643000213770ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from anonymize import anonymize taskcoach-1.4.3/taskcoachlib/tools/anonymize.py000077500000000000000000000046141265347643000216530ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from xml.etree import ElementTree as ET import os def anonymize(filename): ''' Anonymize the file specified by the filename by reading its contents, replacing the contents with X's and saving the anonymized contents to a copy of the file. ''' def anonymize_string(string): ''' Return an anonymized version of the string. ''' return u'X' * len(string) def anonymize_text(text): ''' Return an anonymized version of the text, keeping the line breaks. ''' return '\n'.join([anonymize_string(line) for line in text.split('\n')]) def anonymize_node(node): ''' Recursively anonymize the node and all of its child nodes. ''' for child in node: anonymize_node(child) if 'subject' in node.attrib: node.attrib['subject'] = anonymize_string(node.attrib['subject']) if node.tag in ('description', 'data') and node.text: node.text = anonymize_text(node.text) if node.tag == 'data': node.attrib['extension'] = \ anonymize_string(node.attrib['extension']) if node.tag == 'property' and 'name' in node.attrib and \ node.attrib['name'] == 'username': node.text = 'XXX' # pylint: disable=W0511 if node.tag == 'attachment' and 'location' in node.attrib: node.attrib['location'] = anonymize_string(node.attrib['location']) tree = ET.parse(file(filename, 'rb')) anonymize_node(tree.getroot()) name, ext = os.path.splitext(filename) anonymized_filename = name + '.anonymized' + ext tree.write(anonymized_filename) return anonymized_filename taskcoach-1.4.3/taskcoachlib/tools/openfile.py000066400000000000000000000020331265347643000214310ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.thirdparty import desktop import platform def openFile(filename): try: desktop.open(filename) except OSError: if platform.system() == 'Linux': if os.system('xdg-open "%s"' % filename): raise OSError('Unable to open "%s"') else: raise taskcoach-1.4.3/taskcoachlib/widgets/000077500000000000000000000000001265347643000175665ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/widgets/__init__.py000066400000000000000000000034351265347643000217040ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from notebook import Notebook, BookPage from frame import AuiManagedFrameWithDynamicCenterPane from dialog import Dialog, NotebookDialog, HTMLDialog, AttachmentSelector from itemctrl import Column from listctrl import VirtualListCtrl from checklistbox import CheckListBox from treectrl import CheckTreeCtrl, TreeListCtrl from squaremap import SquareMap from timeline import Timeline from datectrl import DateTimeCtrl, TimeEntry from textctrl import SingleLineTextCtrl, MultiLineTextCtrl, StaticTextWithToolTip from panel import PanelWithBoxSizer, BoxWithFlexGridSizer, BoxWithBoxSizer from searchctrl import SearchCtrl from spinctrl import SpinCtrl from tooltip import ToolTipMixin, SimpleToolTip from dirchooser import DirectoryChooser from fontpicker import FontPickerCtrl from syncmlwarning import SyncMLWarningDialog from calendarwidget import Calendar from calendarconfig import CalendarConfigDialog from password import GetPassword from hcalendar import HierarchicalCalendar from hcalendarconfig import HierarchicalCalendarConfigDialog import masked from wx.lib import sized_controls taskcoach-1.4.3/taskcoachlib/widgets/autowidth.py000077500000000000000000000166231265347643000221630ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.thirdparty import hypertreelist from taskcoachlib import operating_system class AutoColumnWidthMixin(object): """ A mix-in class that automatically resizes one column to take up the remaining width of a control with columns (i.e. ListCtrl, TreeListCtrl). This causes the control to automatically take up the full width available, without either a horizontal scroll bar (unless absolutely necessary) or empty space to the right of the last column. NOTE: When using this mixin with a ListCtrl, make sure the ListCtrl is in report mode. WARNING: If you override the EVT_SIZE event in your control, make sure you call event.Skip() to ensure that the mixin's OnResize method is called. """ def __init__(self, *args, **kwargs): self.__is_auto_resizing = False self.ResizeColumn = kwargs.pop('resizeableColumn', -1) self.ResizeColumnMinWidth = kwargs.pop('resizeableColumnMinWidth', 50) super(AutoColumnWidthMixin, self).__init__(*args, **kwargs) def SetResizeColumn(self, column): self.ResizeColumn = column def ToggleAutoResizing(self, on): if on == self.__is_auto_resizing: return self.__is_auto_resizing = on if on: self.Bind(wx.EVT_SIZE, self.OnResize) self.Bind(wx.EVT_LIST_COL_BEGIN_DRAG, self.OnBeginColumnDrag) self.Bind(wx.EVT_LIST_COL_END_DRAG, self.OnEndColumnDrag) self.DoResize() else: self.Unbind(wx.EVT_SIZE) self.Unbind(wx.EVT_LIST_COL_BEGIN_DRAG) self.Unbind(wx.EVT_LIST_COL_END_DRAG) def IsAutoResizing(self): return self.__is_auto_resizing def OnBeginColumnDrag(self, event): # pylint: disable=W0201 if event.Column == self.ResizeColumn: self.__oldResizeColumnWidth = self.GetColumnWidth(self.ResizeColumn) # Temporarily unbind the EVT_SIZE to prevent resizing during dragging self.Unbind(wx.EVT_SIZE) if operating_system.isWindows(): event.Skip() def OnEndColumnDrag(self, event): if event.Column == self.ResizeColumn and self.GetColumnCount() > 1: extra_width = self.__oldResizeColumnWidth - \ self.GetColumnWidth(self.ResizeColumn) self.DistributeWidthAcrossColumns(extra_width) self.Bind(wx.EVT_SIZE, self.OnResize) wx.CallAfter(self.DoResize) event.Skip() def OnResize(self, event): event.Skip() if operating_system.isWindows(): wx.CallAfter(self.DoResize) else: self.DoResize() def DoResize(self): if not self: return # Avoid a potential PyDeadObject error if not self.IsAutoResizing(): return if self.GetSize().height < 32: return # Avoid an endless update bug when the height is small. if self.GetColumnCount() <= self.ResizeColumn: return # Nothing to resize. unused_width = max(self.AvailableWidth - self.NecessaryWidth, 0) resize_column_width = self.ResizeColumnMinWidth + unused_width self.SetColumnWidth(self.ResizeColumn, resize_column_width) def DistributeWidthAcrossColumns(self, extra_width): # When the user resizes the ResizeColumn distribute the extra available # space across the other columns, or get the extra needed space from # the other columns. The other columns are resized proportionally to # their previous width. other_columns = [index for index in range(self.GetColumnCount()) if index != self.ResizeColumn] total_width = float(sum(self.GetColumnWidth(index) for index in other_columns)) for column_index in other_columns: this_column_width = self.GetColumnWidth(column_index) this_column_width += this_column_width / total_width * extra_width self.SetColumnWidth(column_index, this_column_width) def GetResizeColumn(self): if self.__resize_column == -1: return self.GetColumnCount() - 1 else: return self.__resize_column def SetResizeColumn(self, column_index): self.__resize_column = column_index # pylint: disable=W0201 ResizeColumn = property(GetResizeColumn, SetResizeColumn) def GetAvailableWidth(self): available_width = self.GetClientSize().width if self.__is_scrollbar_visible() and self.__is_scrollbar_included_in_client_size(): scrollbar_width = wx.SystemSettings_GetMetric(wx.SYS_VSCROLL_X) available_width -= scrollbar_width return available_width AvailableWidth = property(GetAvailableWidth) def GetNecessaryWidth(self): necessary_width = 0 for column_index in range(self.GetColumnCount()): if column_index == self.ResizeColumn: necessary_width += self.ResizeColumnMinWidth else: necessary_width += self.GetColumnWidth(column_index) return necessary_width NecessaryWidth = property(GetNecessaryWidth) # Override all methods that manipulate columns to be able to resize the # columns after any additions or removals. def InsertColumn(self, *args, **kwargs): ''' Insert the new column and then resize. ''' result = super(AutoColumnWidthMixin, self).InsertColumn(*args, **kwargs) self.DoResize() return result def DeleteColumn(self, *args, **kwargs): ''' Delete the column and then resize. ''' result = super(AutoColumnWidthMixin, self).DeleteColumn(*args, **kwargs) self.DoResize() return result def RemoveColumn(self, *args, **kwargs): ''' Remove the column and then resize. ''' result = super(AutoColumnWidthMixin, self).RemoveColumn(*args, **kwargs) self.DoResize() return result def AddColumn(self, *args, **kwargs): ''' Add the column and then resize. ''' result = super(AutoColumnWidthMixin, self).AddColumn(*args, **kwargs) self.DoResize() return result # Private helper methods: def __is_scrollbar_visible(self): return self.MainWindow.HasScrollbar(wx.VERTICAL) def __is_scrollbar_included_in_client_size(self): # NOTE: on GTK, the scrollbar is included in the client size, but on # Windows it is not included if operating_system.isWindows(): return isinstance(self, hypertreelist.HyperTreeList) else: return True taskcoach-1.4.3/taskcoachlib/widgets/balloontip.py000066400000000000000000000210601265347643000223020ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2012 Task Coach developers Task Coach 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. Task Coach 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 . ''' # Not using agw.balloontip because it doesn't position properly and # lacks events import wx from wx.lib.embeddedimage import PyEmbeddedImage class BalloonTip(wx.Frame): ARROWSIZE = 16 MAXWIDTH = 300 def __init__(self, parent, target, message=None, title=None, bitmap=None, getRect=None): """Baloon tip.""" super(BalloonTip, self).__init__(parent, style=wx.NO_BORDER|wx.FRAME_FLOAT_ON_PARENT|wx.FRAME_NO_TASKBAR|wx.FRAME_SHAPED|wx.POPUP_WINDOW) wheat = wx.ColourDatabase().Find('WHEAT') self.SetBackgroundColour(wheat) self._target = target self._getRect = getRect self._interior = wx.Panel(self) self._interior.Bind(wx.EVT_LEFT_DOWN, self.DoClose) self._interior.SetBackgroundColour(wheat) vsizer = wx.BoxSizer(wx.VERTICAL) hsizer = wx.BoxSizer(wx.HORIZONTAL) if bitmap is not None: hsizer.Add(wx.StaticBitmap(self._interior, wx.ID_ANY, bitmap), 0, wx.ALIGN_CENTRE|wx.ALL, 3) if title is not None: titleCtrl = wx.StaticText(self._interior, wx.ID_ANY, title) hsizer.Add(titleCtrl, 1, wx.ALL|wx.ALIGN_CENTRE, 3) titleCtrl.Bind(wx.EVT_LEFT_DOWN, self.DoClose) vsizer.Add(hsizer, 0, wx.EXPAND) if message is not None: msg = wx.StaticText(self._interior, wx.ID_ANY, message) msg.Wrap(self.MAXWIDTH) vsizer.Add(msg, 1, wx.EXPAND|wx.ALL, 3) msg.Bind(wx.EVT_LEFT_DOWN, self.DoClose) self._interior.SetSizer(vsizer) self._interior.Fit() class Sizer(wx.PySizer): def __init__(self, interior, direction, offset): self._interior = interior self._direction = direction self._offset = offset super(Sizer, self).__init__() def SetDirection(self, direction): self._direction = direction def CalcMin(self): w, h = self._interior.GetClientSize() return wx.Size(w, h + self._offset) def RecalcSizes(self): if self._direction == 'bottom': self._interior.SetPosition((0, 0)) else: self._interior.SetPosition((0, self._offset)) self._sizer = Sizer(self._interior, 'bottom', self.ARROWSIZE) self.SetSizer(self._sizer) self.Position() self.Show() wx.GetTopLevelParent(target).Bind(wx.EVT_SIZE, self._OnDim) wx.GetTopLevelParent(target).Bind(wx.EVT_MOVE, self._OnDim) def _Unbind(self): wx.GetTopLevelParent(self._target).Unbind(wx.EVT_SIZE) wx.GetTopLevelParent(self._target).Unbind(wx.EVT_MOVE) def _OnDim(self, event): wx.CallAfter(self.Position) event.Skip() def DoClose(self, event, unbind=True): if unbind: self._Unbind() self.Close() def Position(self): w, h = self._interior.GetClientSizeTuple() h += self.ARROWSIZE if self._getRect is None: tw, th = self._target.GetSizeTuple() tx, ty = 0, 0 else: tx, ty, tw, th = self._getRect() tx, ty = self._target.ClientToScreen(wx.Point(tx, ty)) dpyIndex = max(0, wx.Display.GetFromPoint(wx.Point(tx, ty)) or 0) rect = wx.Display(dpyIndex).GetClientArea() x = max(rect.GetLeft(), min(rect.GetRight() - w, int(tx + tw / 2 - w / 2))) y = ty - h direction = 'bottom' if y < rect.GetTop(): y = ty + th direction = 'top' mask = wx.EmptyBitmap(w, h) memDC = wx.MemoryDC() memDC.SelectObject(mask) try: memDC.SetBrush(wx.BLACK_BRUSH) memDC.SetPen(wx.BLACK_PEN) memDC.DrawRectangle(0, 0, w, h) memDC.SetBrush(wx.WHITE_BRUSH) memDC.SetPen(wx.WHITE_PEN) if direction == 'bottom': memDC.DrawPolygon([(0, 0), (w, 0), (w, h - self.ARROWSIZE), (tx + int(tw / 2) - x + int(self.ARROWSIZE / 2), h - self.ARROWSIZE), (tx + int(tw / 2) - x, h), (tx + int(tw / 2) - x - int(self.ARROWSIZE / 2), h - self.ARROWSIZE), (0, h - self.ARROWSIZE)]) else: memDC.DrawPolygon([(0, self.ARROWSIZE), (tx + int(tw / 2) - x - int(self.ARROWSIZE / 2), self.ARROWSIZE), (tx + int(tw / 2) - x, 0), (tx + int(tw / 2) - x + int(self.ARROWSIZE / 2), self.ARROWSIZE), (w, self.ARROWSIZE), (w, h), (0, h)]) self._sizer.SetDirection(direction) finally: memDC.SelectObject(wx.NullBitmap) self.SetDimensions(x, y, w, h) self.SetShape(wx.RegionFromBitmapColour(mask, wx.Colour(0, 0, 0))) self.Layout() class BalloonTipManager(object): """ Use this as a mixin in the top-level window that hosts balloon tip targets, to avoid them appearing all at once. """ def __init__(self, *args, **kwargs): self.__tips = list() self.__displaying = None self.__kwargs = dict() self.__shutdown = False super(BalloonTipManager, self).__init__(*args, **kwargs) self.Bind(wx.EVT_CLOSE, self.__OnClose) def AddBalloonTip(self, target, message=None, title=None, bitmap=None, getRect=None, **kwargs): """Schedules a tip. Extra keyword arguments will be passed to L{OnBalloonTipShow} and L{OnBalloonTipClosed}.""" for eTarget, eMessage, eTitle, eBitmap, eGetRect, eArgs in self.__tips: if (eTitle, eMessage) == (title, message): return self.__tips.append((target, message, title, bitmap, getRect, kwargs)) self.__Try() def __Try(self): if self.__tips and not self.__shutdown and self.__displaying is None: target, message, title, bitmap, getRect, kwargs = self.__tips.pop(0) tip = BalloonTip(self, target, message=message, title=title, bitmap=bitmap, getRect=getRect) self.__displaying = tip self.OnBalloonTipShow(**kwargs) self.__kwargs = kwargs tip.Bind(wx.EVT_CLOSE, self.__OnCloseTip) def __OnClose(self, event): self.__shutdown = True event.Skip() def __OnCloseTip(self, event): event.Skip() self.__displaying = None self.OnBalloonTipClosed(**self.__kwargs) self.__Try() def OnBalloonTipShow(self, **kwargs): pass def OnBalloonTipClosed(self, **kwargs): pass if __name__ == '__main__': class Frame(wx.Frame): def __init__(self): super(Frame, self).__init__(None, wx.ID_ANY, 'Test') self.btn = wx.Button(self, wx.ID_ANY, 'Show balloon') wx.EVT_BUTTON(self.btn, wx.ID_ANY, self.OnClick) s = wx.BoxSizer() s.Add(self.btn, 1, wx.EXPAND) self.SetSizer(s) self.Fit() def OnClick(self, event): BalloonTip(self, self.btn, '''Your bones don't break, mine do. That's clear. Your cells react to bacteria and viruses differently than mine. You don't get sick, I do. That's also clear. But for some reason, you and I react the exact same way to water. We swallow it too fast, we choke. We get some in our lungs, we drown. However unreal it may seem, we are connected, you and I. We're on the same curve, just on opposite ends.''', title='Title', bitmap=wx.ArtProvider.GetBitmap(wx.ART_TIP, wx.ART_MENU, (16, 16))) class App(wx.App): def OnInit(self): Frame().Show() return True App(0).MainLoop() taskcoach-1.4.3/taskcoachlib/widgets/calendarconfig.py000066400000000000000000000163241265347643000231050ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011-2012 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import wx.lib.colourselect as csel from wx.lib import sized_controls from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.wxScheduler import wxSCHEDULER_DAILY, \ wxSCHEDULER_WEEKLY, wxSCHEDULER_MONTHLY, wxSCHEDULER_HORIZONTAL, \ wxSCHEDULER_VERTICAL class CalendarConfigDialog(sized_controls.SizedDialog): VIEWTYPES = [wxSCHEDULER_DAILY, wxSCHEDULER_WEEKLY, wxSCHEDULER_MONTHLY] VIEWORIENTATIONS = [wxSCHEDULER_HORIZONTAL, wxSCHEDULER_VERTICAL] VIEWFILTERS = [(False, False, False), (False, True, False), (True, False, False), (True, True, False), (True, True, True)] def __init__(self, settings, settingsSection, *args, **kwargs): self._settings = settings self._settingsSection = settingsSection super(CalendarConfigDialog, self).__init__(*args, **kwargs) pane = self.GetContentsPane() pane.SetSizerType('form') self.createInterior(pane) buttonSizer = self.CreateStdDialogButtonSizer(wx.OK|wx.CANCEL) self.SetButtonSizer(buttonSizer) self.Fit() buttonSizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.ok) def createInterior(self, pane): self.createPeriodEntry(pane) self.createOrientationEntry(pane) self.createDisplayEntry(pane) self.createLineEntry(pane) self.createColorEntry(pane) def createPeriodEntry(self, pane): label = wx.StaticText(pane, label=_('Kind of period displayed and its count')) label.SetSizerProps(valign='center') panel = sized_controls.SizedPanel(pane) panel.SetSizerType('horizontal') self._spanCount = wx.SpinCtrl(panel, value='1', min=1) # pylint: disable=W0201 self._spanCount.SetSizerProps(valign='center') periods = (_('Day(s)'), _('Week(s)'), _('Month')) self._spanType = wx.Choice(panel, choices=periods) # pylint: disable=W0201 self._spanType.SetSizerProps(valign='center') self._spanCount.SetValue(self._settings.getint(self._settingsSection, 'periodcount')) selection = self.VIEWTYPES.index(self._settings.getint(self._settingsSection, 'viewtype')) self._spanType.SetSelection(selection) panel.SetSizerProps(valign='center') panel.Fit() self._spanType.Bind(wx.EVT_CHOICE, self.onChangeViewType) def createOrientationEntry(self, pane): label = wx.StaticText(pane, label=_('Calendar orientation')) label.SetSizerProps(valign='center') orientations = (_('Horizontal'), _('Vertical')) self._orientation = wx.Choice(pane, choices=orientations) # pylint: disable=W0201 self._orientation.SetSizerProps(valign='center') selection = self.VIEWORIENTATIONS.index(self._settings.getint(self._settingsSection, 'vieworientation')) self._orientation.SetSelection(selection) def createDisplayEntry(self, pane): label = wx.StaticText(pane, label=_('Which tasks to display')) label.SetSizerProps(valign='center') choices = (_('Tasks with a planned start date and a due date'), _('Tasks with a planned start date'), _('Tasks with a due date'), _('All tasks, except unplanned tasks'), _('All tasks')) self._display = wx.Choice(pane, choices=choices) # pylint: disable=W0201 self._display.SetSizerProps(valign='center') selection = self.VIEWFILTERS.index((self._settings.getboolean(self._settingsSection, 'shownostart'), self._settings.getboolean(self._settingsSection, 'shownodue'), self._settings.getboolean(self._settingsSection, 'showunplanned'))) self._display.SetSelection(selection) def createLineEntry(self, pane): label = wx.StaticText(pane, label=_('Draw a line showing the current time')) label.SetSizerProps(valign='center') self._shownow = wx.CheckBox(pane) # pylint: disable=W0201 self._shownow.SetSizerProps(valign='center') self._shownow.SetValue(self._settings.getboolean(self._settingsSection, 'shownow')) def createColorEntry(self, pane): label = wx.StaticText(pane, label=_('Color used to highlight the current day')) label.SetSizerProps(valign='center') hcolor = self._settings.get(self._settingsSection, 'highlightcolor') if not hcolor: # The highlight color is too dark color = wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) color = wx.Colour(int((color.Red() + 255) / 2), int((color.Green() + 255) / 2), int((color.Blue() + 255) / 2)) else: color = wx.Colour(*tuple(map(int, hcolor.split(',')))) # pylint: disable=W0141 self._highlight = csel.ColourSelect(pane, size=(100, 20)) # pylint: disable=W0201 label.SetSizerProps(valign='center') self._highlight.SetColour(color) def onChangeViewType(self, event): # pylint: disable=W0613 if self.VIEWTYPES[self._spanType.GetSelection()] == wxSCHEDULER_MONTHLY: self._spanCount.SetValue(1) self._spanCount.Enable(False) else: self._spanCount.Enable(True) def ok(self, event=None): # pylint: disable=W0613 settings, section = self._settings, self._settingsSection settings.set(section, 'periodcount', str(self._spanCount.GetValue())) settings.set(section, 'viewtype', str(self.VIEWTYPES[self._spanType.GetSelection()])) settings.set(section, 'vieworientation', str(self.VIEWORIENTATIONS[self._orientation.GetSelection()])) shownostart, shownodue, showunplanned = self.VIEWFILTERS[self._display.GetSelection()] settings.set(section, 'shownostart', str(shownostart)) settings.set(section, 'shownodue', str(shownodue)) settings.set(section, 'showunplanned', str(showunplanned)) settings.set(section, 'shownow', str(self._shownow.GetValue())) color = self._highlight.GetColour() settings.set(section, 'highlightcolor', '%d,%d,%d' % (color.Red(), color.Green(), color.Blue())) self.EndModal(wx.ID_OK) taskcoach-1.4.3/taskcoachlib/widgets/calendarwidget.py000066400000000000000000000412641265347643000231240ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.thirdparty.wxScheduler import wxScheduler, wxSchedule, \ EVT_SCHEDULE_ACTIVATED, EVT_SCHEDULE_RIGHT_CLICK, \ EVT_SCHEDULE_DCLICK, EVT_PERIODWIDTH_CHANGED, wxReportScheduler, wxTimeFormat from taskcoachlib.thirdparty.wxScheduler.wxSchedulerConstants import wxSCHEDULER_WEEKSTART_MONDAY,\ wxSCHEDULER_WEEKSTART_SUNDAY from taskcoachlib.domain import date from taskcoachlib.widgets import draganddrop from taskcoachlib import command, render import tooltip class _CalendarContent(tooltip.ToolTipMixin, wxScheduler): def __init__(self, parent, taskList, iconProvider, onSelect, onEdit, onCreate, onChangeConfig, popupMenu, *args, **kwargs): self.getItemTooltipData = parent.getItemTooltipData self.__onDropURLCallback = kwargs.pop('onDropURL', None) self.__onDropFilesCallback = kwargs.pop('onDropFiles', None) self.__onDropMailCallback = kwargs.pop('onDropMail', None) self.dropTarget = draganddrop.DropTarget(self.OnDropURL, self.OnDropFiles, self.OnDropMail) super(_CalendarContent, self).__init__(parent, wx.ID_ANY, *args, **kwargs) self.SetDropTarget(self.dropTarget) self.selectCommand = onSelect self.iconProvider = iconProvider self.editCommand = onEdit self.createCommand = onCreate self.changeConfigCb = onChangeConfig self.popupMenu = popupMenu self.__tip = tooltip.SimpleToolTip(self) self.__selection = [] self.__showNoPlannedStartDate = False self.__showNoDueDate = False self.__showUnplanned = False self.SetShowWorkHour(False) self.SetResizable(True) self.taskList = taskList self.RefreshAllItems(0) EVT_SCHEDULE_ACTIVATED(self, self.OnActivation) EVT_SCHEDULE_RIGHT_CLICK(self, self.OnPopup) EVT_SCHEDULE_DCLICK(self, self.OnEdit) EVT_PERIODWIDTH_CHANGED(self, self.OnChangeConfig) wxTimeFormat.SetFormatFunction(self.__formatTime) @staticmethod def __formatTime(dateTime, includeMinutes=False): return render.time(TaskSchedule.tcDateTime(dateTime), minutes=includeMinutes) def _handleDrop(self, x, y, droppedObject, cb): if cb is not None: _, _, item = self._findSchedule(wx.Point(x, y)) if item is not None: if isinstance(item, TaskSchedule): cb(item.task, droppedObject) else: datetime = date.DateTime(item.GetYear(), item.GetMonth() + 1, item.GetDay()) cb(None, droppedObject, plannedStartDateTime=datetime, dueDateTime=datetime.endOfDay()) def GetPrintout(self, settings): return wxReportScheduler(self.GetViewType(), self.GetStyle(), self.GetDrawer(), self.GetDate(), self.GetWeekStart(), self.GetPeriodCount(), self.GetSchedules()) def OnDropURL(self, x, y, url): self._handleDrop(x, y, url, self.__onDropURLCallback) def OnDropFiles(self, x, y, filenames): self._handleDrop(x, y, filenames, self.__onDropFilesCallback) def OnDropMail(self, x, y, mail): self._handleDrop(x, y, mail, self.__onDropMailCallback) def SetShowNoStartDate(self, doShow): self.__showNoPlannedStartDate = doShow self.RefreshAllItems(0) def SetShowNoDueDate(self, doShow): self.__showNoDueDate = doShow self.RefreshAllItems(0) def SetShowUnplanned(self, doShow): self.__showUnplanned = doShow self.RefreshAllItems(0) def OnChangeConfig(self, event): # pylint: disable=W0613 self.changeConfigCb() def Select(self, schedule=None): if self.__selection: self.taskMap[self.__selection[0].id()].SetSelected(False) if schedule is None: self.__selection = [] else: self.__selection = [schedule.task] schedule.SetSelected(True) wx.CallAfter(self.selectCommand) def SelectTask(self, task): if task.id() in self.taskMap: self.Select(self.taskMap[task.id()]) def OnActivation(self, event): self.SetFocus() self.Select(event.schedule) def OnPopup(self, event): self.OnActivation(event) wx.CallAfter(self.PopupMenu, self.popupMenu) def OnEdit(self, event): if event.schedule is None: if event.date is not None: self.createCommand(date.DateTime(event.date.GetYear(), event.date.GetMonth() + 1, event.date.GetDay(), event.date.GetHour(), event.date.GetMinute(), event.date.GetSecond())) else: self.editCommand(event.schedule.task) def RefreshAllItems(self, count): # pylint: disable=W0613 x, y = self.GetViewStart() selectionId = None if self.__selection: selectionId = self.__selection[0].id() self.__selection = [] self.DeleteAll() schedules = [] self.taskMap = {} # pylint: disable=W0201 maxDateTime = date.DateTime() for task in self.taskList: if not task.isDeleted(): if task.plannedStartDateTime() == maxDateTime or not task.completed(): if task.plannedStartDateTime() == maxDateTime and not self.__showNoPlannedStartDate: continue if task.dueDateTime() == maxDateTime and not self.__showNoDueDate: continue if not self.__showUnplanned: if task.plannedStartDateTime() == maxDateTime and task.dueDateTime() == maxDateTime: continue schedule = TaskSchedule(task, self.iconProvider) schedules.append(schedule) self.taskMap[task.id()] = schedule if task.id() == selectionId: self.__selection = [task] schedule.SetSelected(True) self.Add(schedules) wx.CallAfter(self.selectCommand) self.Scroll(x, y) def RefreshItems(self, *args): selectionId = None if self.__selection: selectionId = self.__selection[0].id() self.__selection = [] for task in args: doShow = True if task.plannedStartDateTime() == date.DateTime() and task.dueDateTime() == date.DateTime() and not self.__showUnplanned: doShow = False if task.plannedStartDateTime() == date.DateTime() and not self.__showNoPlannedStartDate: doShow = False if task.dueDateTime() == date.DateTime() and not self.__showNoDueDate: doShow = False # Special case if task.isDeleted(): doShow = False elif task.plannedStartDateTime() != date.DateTime() and task.completed(): doShow = True if doShow: if self.taskMap.has_key(task.id()): schedule = self.taskMap[task.id()] schedule.update() else: schedule = TaskSchedule(task, self.iconProvider) self.taskMap[task.id()] = schedule self.Add([schedule]) if task.id() == selectionId: self.__selection = [task] schedule.SetSelected(True) else: if self.taskMap.has_key(task.id()): self.Delete(self.taskMap[task.id()]) del self.taskMap[task.id()] if self.__selection and self.__selection[0].id() == task.id(): self.__selection = [] wx.CallAfter(self.selectCommand) def GetItemCount(self): return len(self.GetSchedules()) def OnBeforeShowToolTip(self, x, y): originX, originY = self.GetViewStart() unitX, unitY = self.GetScrollPixelsPerUnit() try: _, _, schedule = self._findSchedule(wx.Point(x + originX * unitX, y + originY * unitY)) except TypeError: return if schedule and isinstance(schedule, TaskSchedule): item = schedule.task tooltipData = self.getItemTooltipData(item) doShow = any(data[1] for data in tooltipData) if doShow: self.__tip.SetData(tooltipData) return self.__tip else: return None def GetMainWindow(self): return self MainWindow = property(GetMainWindow) def curselection(self): return self.__selection class Calendar(wx.Panel): def __init__(self, parent, taskList, iconProvider, onSelect, onEdit, onCreate, popupMenu, *args, **kwargs): self.getItemTooltipData = parent.getItemTooltipData super(Calendar, self).__init__(parent) self._headers = wx.Panel(self) self._content = _CalendarContent(self, taskList, iconProvider, onSelect, onEdit, onCreate, popupMenu, *args, **kwargs) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self._headers, 0, wx.EXPAND) sizer.Add(self._content, 1, wx.EXPAND) self.SetSizer(sizer) # Must wx.CallAfter because SetDrawerClass is called this way. wx.CallAfter(self._content.SetHeaderPanel, self._headers) def Draw(self, dc): self._content.Draw(dc) def SetShowNoStartDate(self, doShow): self._content.SetShowNoStartDate(doShow) def SetShowNoDueDate(self, doShow): self._content.SetShowNoDueDate(doShow) def SetShowUnplanned(self, doShow): self._content.SetShowUnplanned(doShow) def SetWeekStartMonday(self): self._content.SetWeekStart(wxSCHEDULER_WEEKSTART_MONDAY) def SetWeekStartSunday(self): self._content.SetWeekStart(wxSCHEDULER_WEEKSTART_SUNDAY) def RefreshAllItems(self, count): self._content.RefreshAllItems(count) def RefreshItems(self, *args): self._content.RefreshItems(*args) def GetItemCount(self): return self._content.GetItemCount() def curselection(self): return self._content.curselection() def isAnyItemCollapsable(self): return False def select(self, tasks): if len(tasks) == 1: self._content.SelectTask(tasks[0]) else: self._content.Select(None) def __getattr__(self, name): return getattr(self._content, name) class TaskSchedule(wxSchedule): def __init__(self, task, iconProvider): super(TaskSchedule, self).__init__() self.__selected = False self.clientdata = task self.iconProvider = iconProvider self.update() def SetSelected(self, selected): self.Freeze() try: self.__selected = selected if selected: self.color = wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT) # On MS Windows, the selection background is very dark. If # the foreground color is too dark, invert it. color = self.task.foregroundColor(True) or (0, 0, 0) if len(color) == 3: r, g, b = color else: r, g, b, a = color if r + g + b < 128 * 3: self.foreground = wx.Colour(255 - r, 255 - g, 255 - b) else: self.color = wx.Colour(*(self.task.backgroundColor(True) or (255, 255, 255))) self.foreground = wx.Colour(*(self.task.foregroundColor(True) or (0, 0, 0))) finally: self.Thaw() def SetStart(self, start): command.EditPlannedStartDateTimeCommand(items=[self.task], newValue=self.tcDateTime(start)).do() def SetEnd(self, end): if self.task.completed(): command.EditCompletionDateTimeCommand(items=[self.task], newValue=self.tcDateTime(end)).do() else: command.EditDueDateTimeCommand(items=[self.task], newValue=self.tcDateTime(end)).do() def Offset(self, ts): kwargs = dict() if self.task.plannedStartDateTime() != date.DateTime(): start = self.GetStart() start.AddTS(ts) command.EditPlannedStartDateTimeCommand(items=[self.task], newValue=self.tcDateTime(start)).do() if self.task.completed(): end = self.GetEnd() end.AddTS(ts) command.EditCompletionDateTimeCommand(items=[self.task], newValue=self.tcDateTime(end)).do() elif self.task.dueDateTime() != date.DateTime(): end = self.GetEnd() end.AddTS(ts) command.EditDueDateTimeCommand(items=[self.task], newValue=self.tcDateTime(end)).do() @property def task(self): return self.clientdata def update(self): self.Freeze() try: self.description = self.task.subject() self.start = self.wxDateTime(self.task.plannedStartDateTime(), self.tupleFromDateTime(date.Now().startOfDay())) end = self.task.completionDateTime() if self.task.completed() else self.task.dueDateTime() self.end = self.wxDateTime(end, self.tupleFromDateTime(date.Now().endOfDay())) if self.task.completed(): self.done = True self.color = wx.Colour(*(self.task.backgroundColor(True) or (255, 255, 255))) self.foreground = wx.Colour(*(self.task.foregroundColor(True) or (0, 0, 0))) self.font = self.task.font(True) self.icons = [self.iconProvider(self.task, False)] if self.task.attachments(): self.icons.append('paperclip_icon') if self.task.notes(): self.icons.append('note_icon') if self.task.percentageComplete(recursive=True): # If 0, just let the default None value so the progress bar isn't drawn # at all self.complete = 1.0 * self.task.percentageComplete(recursive=True) / 100 else: self.complete = None finally: self.Thaw() @staticmethod def tupleFromDateTime(dateTime): return (dateTime.day, dateTime.month - 1, dateTime.year, dateTime.hour, dateTime.minute, dateTime.second) @staticmethod def wxDateTime(dateTime, default): args = default if dateTime == date.DateTime() else \ (dateTime.day, dateTime.month - 1, dateTime.year, dateTime.hour, dateTime.minute, dateTime.second) return wx.DateTimeFromDMY(*args) # pylint: disable=W0142 @staticmethod def tcDateTime(dateTime): return date.DateTime(dateTime.GetYear(), dateTime.GetMonth() + 1, dateTime.GetDay(), dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond()) taskcoach-1.4.3/taskcoachlib/widgets/checklistbox.py000066400000000000000000000033701265347643000226250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx class CheckListBox(wx.CheckListBox): ''' The wx.CheckListBox does not support client data on all platforms, so we do it ourselves. ''' def __init__(self, *args, **kwargs): super(CheckListBox, self).__init__(*args, **kwargs) self.__clientData = dict() def Append(self, item, clientData=None): index = super(CheckListBox, self).Append(item) if clientData: self.__clientData[index] = clientData return index def Insert(self, item, position, clientData=None): ''' We don't need this at the moment. ''' def GetClientData(self, index): return self.__clientData[index] if index in self.__clientData else None def Clear(self, *args, **kwargs): super(CheckListBox, self).Clear(*args, **kwargs) self.__clientData.clear() def Delete(self, *args, **kwargs): ''' We don't need this at the moment. ''' raise NotImplementedError taskcoach-1.4.3/taskcoachlib/widgets/datectrl.py000066400000000000000000000142211265347643000217420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Task Coach 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. Task Coach 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 . ''' import taskcoachlib.i18n from taskcoachlib.thirdparty import smartdatetimectrl as sdtc from taskcoachlib.domain import date from taskcoachlib import render, operating_system import wx, datetime class _SmartDateTimeCtrl(sdtc.SmartDateTimeCtrl): def __init__(self, *args, **kwargs): self.__interval = (kwargs.get('startHour', 8), kwargs.get('endHour', 18)) super(_SmartDateTimeCtrl, self).__init__(*args, **kwargs) def __shiftDown(self, event): if operating_system.isGTK(): return ord('A') <= event.GetKeyCode() <= ord('Z') return event.ShiftDown() def HandleKey(self, event): if not super(_SmartDateTimeCtrl, self).HandleKey(event) and self.GetDateTime() is not None: startHour, endHour = self.__interval if event.GetKeyCode() in [ord('s'), ord('S')]: hour = datetime.time(startHour, 0, 0, 0) if self.__shiftDown(event) else datetime.time(0, 0, 0, 0) self.SetDateTime(datetime.datetime.combine(self.GetDateTime().date(), hour), notify=True) return True elif event.GetKeyCode() in [ord('e'), ord('E')]: hour = datetime.time(endHour, 0, 0, 0) if self.__shiftDown(event) else datetime.time(23, 59, 0, 0) self.SetDateTime(datetime.datetime.combine(self.GetDateTime().date(), hour), notify=True) return True return False class DateTimeCtrl(wx.Panel): def __init__(self, parent, callback=None, noneAllowed=True, starthour=8, endhour=18, interval=15, showSeconds=False, showRelative=False, adjustEndOfDay=False, units=None, **kwargs): super(DateTimeCtrl, self).__init__(parent, **kwargs) self.__adjust = adjustEndOfDay self.__callback = callback self.__ctrl = _SmartDateTimeCtrl(self, enableNone=noneAllowed, dateFormat=render.date, timeFormat=lambda x: render.time(x, seconds=showSeconds), startHour=starthour, endHour=endhour, minuteDelta=interval, secondDelta=interval, showRelative=showRelative, units=units) self.__ctrl.EnableChoices() # When the widget fires its event, its value has not changed yet (because it can be vetoed). # We need to store the new value so that GetValue() returns the right thing when called from event processing. self.__value = self.__ctrl.GetDateTime() sizer = wx.BoxSizer() sizer.Add(self.__ctrl, 1, wx.EXPAND) self.SetSizer(sizer) sdtc.EVT_DATETIME_CHANGE(self.__ctrl, self.__OnChange) def __OnChange(self, event): self.__value = event.GetValue() if self.__callback is not None: self.__callback() def EnableChoices(self, enabled=True): self.__ctrl.EnableChoices(enabled=enabled) def SetRelativeChoicesStart(self, start=None): self.__ctrl.SetRelativeChoicesStart(start=start) def HideRelativeButton(self): self.__ctrl.HideRelativeButton() def LoadChoices(self, choices): self.__ctrl.LoadChoices(choices) def GetValue(self): if self.__value is not None and self.__value.time() == date.Time(23, 59, 0, 0) and self.__adjust: return date.DateTime.fromDateTime(date.DateTime.combine(self.__value.date(), date.Time(23, 59, 59, 999999))) return date.DateTime() if self.__value is None else date.DateTime.fromDateTime(self.__value) def SetValue(self, dateTime): if dateTime == date.DateTime(): dateTime = None self.__ctrl.SetDateTime(dateTime) self.__value = self.__ctrl.GetDateTime() def SetNone(self): self.__value = None self.__ctrl.SetDateTime(None) def setCallback(self, callback): self.__callback = callback def Cleanup(self): self.__ctrl.Cleanup() class TimeEntry(wx.Panel): def __init__(self, parent, value, defaultValue=0, disabledValue=None, disabledMessage=None): super(TimeEntry, self).__init__(parent) self.__disabledValue = disabledValue sizer = wx.BoxSizer(wx.HORIZONTAL) self.__entry = sdtc.TimeEntry(self, format=lambda x: render.time(x, minutes=False), hour=defaultValue, minute=0, second=0) self.__entry.EnableChoices() sizer.Add(self.__entry, 0, wx.ALL, 3) if disabledMessage is not None: self.__checkbox = wx.CheckBox(self, wx.ID_ANY, disabledMessage) self.Bind(wx.EVT_CHECKBOX, self.OnCheck) if value == disabledValue: self.__entry.SetTime(date.Time(hour=defaultValue, minute=0, second=0)) self.__checkbox.SetValue(True) self.__entry.Enable(False) else: self.__entry.SetTime(date.Time(hour=value, minute=0, second=0)) sizer.Add(self.__checkbox, 1, wx.ALL, 3) else: self.__entry.SetTime(date.Time(hour=value, minute=0, second=0)) self.__checkbox = None self.SetSizer(sizer) def OnCheck(self, event): self.__entry.Enable(not event.IsChecked()) def GetValue(self): if self.__checkbox is not None and self.__checkbox.GetValue(): return self.__disabledValue return self.__entry.GetTime().hour taskcoach-1.4.3/taskcoachlib/widgets/dialog.py000066400000000000000000000142231265347643000214010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system from taskcoachlib.i18n import _ from taskcoachlib.thirdparty import aui import notebook import wx import wx.html from wx.lib import sized_controls import os class Dialog(sized_controls.SizedDialog): def __init__(self, parent, title, bitmap='edit', direction=None, *args, **kwargs): self._buttonTypes = kwargs.get('buttonTypes', wx.OK | wx.CANCEL) super(Dialog, self).__init__(parent, -1, title, style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX) self.SetIcon(wx.ArtProvider_GetIcon(bitmap, wx.ART_FRAME_ICON, (16, 16))) if operating_system.isWindows7_OrNewer(): # Without this the window has no taskbar icon on Windows, and the focus comes back to the main # window instead of this one when returning to Task Coach through Alt+Tab. Which is probably not # what we want. import win32gui, win32con exStyle = win32gui.GetWindowLong(self.GetHandle(), win32con.GWL_EXSTYLE) win32gui.SetWindowLong(self.GetHandle(), win32con.GWL_EXSTYLE, exStyle|win32con.WS_EX_APPWINDOW) self._panel = self.GetContentsPane() self._panel.SetSizerType('vertical') self._panel.SetSizerProps(expand=True, proportion=1) self._direction = direction self._interior = self.createInterior() self._interior.SetSizerProps(expand=True, proportion=1) self.fillInterior() self._buttons = self.createButtons() self._panel.Fit() self.Fit() self.CentreOnParent() if not operating_system.isGTK(): wx.CallAfter(self.Raise) wx.CallAfter(self._panel.SetFocus) def SetExtraStyle(self, exstyle): # SizedDialog's constructor calls this to set WS_EX_VALIDATE_RECURSIVELY. We don't need # it, it makes the dialog appear in about 7 seconds, and it makes switching focus # between two controls take up to 5 seconds. pass def createInterior(self): raise NotImplementedError def fillInterior(self): pass def createButtons(self): buttonTypes = wx.OK if self._buttonTypes == wx.ID_CLOSE else self._buttonTypes buttonSizer = self.CreateStdDialogButtonSizer(buttonTypes) if self._buttonTypes & wx.OK or self._buttonTypes & wx.ID_CLOSE: buttonSizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.ok) if self._buttonTypes & wx.CANCEL: buttonSizer.GetCancelButton().Bind(wx.EVT_BUTTON, self.cancel) if self._buttonTypes == wx.ID_CLOSE: buttonSizer.GetAffirmativeButton().SetLabel(_('Close')) self.SetButtonSizer(buttonSizer) return buttonSizer def ok(self, event=None): if event: event.Skip() self.Close(True) self.Destroy() def cancel(self, event=None): if event: event.Skip() self.Close(True) self.Destroy() def disableOK(self): self._buttons.GetAffirmativeButton().Disable() def enableOK(self): self._buttons.GetAffirmativeButton().Enable() class NotebookDialog(Dialog): def createInterior(self): return notebook.Notebook(self._panel, agwStyle=aui.AUI_NB_DEFAULT_STYLE & ~aui.AUI_NB_TAB_SPLIT & \ ~aui.AUI_NB_TAB_MOVE & ~aui.AUI_NB_DRAW_DND_TAB) def fillInterior(self): self.addPages() def __getitem__(self, index): return self._interior[index] def ok(self, *args, **kwargs): self.okPages() super(NotebookDialog, self).ok(*args, **kwargs) def okPages(self, *args, **kwargs): for page in self._interior: page.ok(*args, **kwargs) def addPages(self): raise NotImplementedError class HtmlWindowThatUsesWebBrowserForExternalLinks(wx.html.HtmlWindow): def OnLinkClicked(self, linkInfo): # pylint: disable=W0221 openedLinkInExternalBrowser = False if linkInfo.GetTarget() == '_blank': import webbrowser # pylint: disable=W0404 try: webbrowser.open(linkInfo.GetHref()) openedLinkInExternalBrowser = True except webbrowser.Error: pass if not openedLinkInExternalBrowser: super(HtmlWindowThatUsesWebBrowserForExternalLinks, self).OnLinkClicked(linkInfo) class HTMLDialog(Dialog): def __init__(self, title, htmlText, *args, **kwargs): self._htmlText = htmlText super(HTMLDialog, self).__init__(None, title, buttonTypes=wx.ID_CLOSE, *args, **kwargs) def createInterior(self): interior = HtmlWindowThatUsesWebBrowserForExternalLinks(self._panel, -1, size=(550, 400)) if self._direction: interior.SetLayoutDirection(self._direction) return interior def fillInterior(self): self._interior.AppendToPage(self._htmlText) def OnLinkClicked(self, linkInfo): pass def AttachmentSelector(**callerKeywordArguments): kwargs = {'message': _('Add attachment'), 'default_path': os.getcwd(), 'wildcard': _('All files (*.*)|*'), 'flags': wx.FD_OPEN} kwargs.update(callerKeywordArguments) return wx.FileSelector(**kwargs) # pylint: disable=W0142 taskcoach-1.4.3/taskcoachlib/widgets/dirchooser.py000066400000000000000000000034341265347643000223050ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.i18n import _ class DirectoryChooser(wx.Panel): def __init__(self, *args, **kwargs): super(DirectoryChooser, self).__init__(*args, **kwargs) self.chooser = wx.DirPickerCtrl(self, wx.ID_ANY, u'') self.checkbx = wx.CheckBox(self, wx.ID_ANY, _('None')) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(self.chooser, 1, wx.EXPAND) sz.Add(self.checkbx, 1) self.SetSizer(sz) self.Fit() wx.EVT_CHECKBOX(self.checkbx, wx.ID_ANY, self.OnCheck) def SetPath(self, pth): if pth: self.checkbx.SetValue(False) self.chooser.Enable(True) self.chooser.SetPath(pth) else: self.checkbx.SetValue(True) self.chooser.SetPath(u'') self.chooser.Enable(False) def GetPath(self): if not self.checkbx.GetValue(): return self.chooser.GetPath() return u'' def OnCheck(self, evt): self.chooser.Enable(not evt.IsChecked()) self.chooser.SetPath('/') # Workaround for a wx bug taskcoach-1.4.3/taskcoachlib/widgets/draganddrop.py000077500000000000000000000353401265347643000224350ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2011 Tobias Gradl Task Coach 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. Task Coach 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 . ''' import wx import urllib from taskcoachlib.mailer import thunderbird, outlook from taskcoachlib.i18n import _ class FileDropTarget(wx.FileDropTarget): def __init__(self, onDropCallback=None, onDragOverCallback=None): wx.FileDropTarget.__init__(self) self.__onDropCallback = onDropCallback self.__onDragOverCallback = onDragOverCallback or self.__defaultDragOverCallback def OnDropFiles(self, x, y, filenames): # pylint: disable=W0221 if self.__onDropCallback: self.__onDropCallback(x, y, filenames) return True else: return False def OnDragOver(self, x, y, defaultResult): # pylint: disable=W0221 return self.__onDragOverCallback(x, y, defaultResult) def __defaultDragOverCallback(self, x, y, defaultResult): # pylint: disable=W0613 return defaultResult class TextDropTarget(wx.TextDropTarget): def __init__(self, onDropCallback): wx.TextDropTarget.__init__(self) self.__onDropCallback = onDropCallback def OnDropText(self, x, y, text): # pylint: disable=W0613,W0221 self.__onDropCallback(text) class DropTarget(wx.DropTarget): def __init__(self, onDropURLCallback, onDropFileCallback, onDropMailCallback, onDragOverCallback=None): super(DropTarget, self).__init__() self.__onDropURLCallback = onDropURLCallback self.__onDropFileCallback = onDropFileCallback self.__onDropMailCallback = onDropMailCallback self.__onDragOverCallback = onDragOverCallback self.reinit() def reinit(self): # pylint: disable=W0201 self.__compositeDataObject = wx.DataObjectComposite() self.__urlDataObject = wx.TextDataObject() self.__fileDataObject = wx.FileDataObject() self.__thunderbirdMailDataObject = wx.CustomDataObject('text/x-moz-message') self.__urilistDataObject = wx.CustomDataObject('text/uri-list') self.__outlookDataObject = wx.CustomDataObject('Object Descriptor') # Starting with Snow Leopard, mail.app supports the message: protocol self.__macMailObject = wx.CustomDataObject('public.url') for dataObject in (self.__thunderbirdMailDataObject, self.__urilistDataObject, self.__macMailObject, self.__outlookDataObject, self.__urlDataObject, self.__fileDataObject): # Note: The first data object added is the preferred data object. # We add urlData after outlookData so that Outlook messages are not # interpreted as text objects. self.__compositeDataObject.Add(dataObject) self.SetDataObject(self.__compositeDataObject) def OnDragOver(self, x, y, result): # pylint: disable=W0221 if self.__onDragOverCallback is None: return result self.__onDragOverCallback(x, y, result) return wx.DragCopy def OnDrop(self, x, y): # pylint: disable=W0613,W0221 return True def OnData(self, x, y, result): # pylint: disable=W0613 self.GetData() formatType, formatId = self.getReceivedFormatTypeAndId() if formatId == 'text/x-moz-message': self.onThunderbirdDrop(x, y) elif formatId == 'text/uri-list' and formatType == wx.DF_FILENAME: urls = self.__urilistDataObject.GetData().strip().split('\n') for url in urls: url = url.strip() if url.startswith('#'): continue if self.__tmp_mail_file_url(url) and self.__onDropMailCallback: filename = urllib.unquote(url[len('file://'):]) self.__onDropMailCallback(x, y, filename) elif self.__onDropURLCallback: if url.startswith('file://'): url = urllib.url2pathname(url[7:]) self.__onDropURLCallback(x, y, url) elif formatId == 'Object Descriptor': self.onOutlookDrop(x, y) elif formatId == 'public.url': url = self.__macMailObject.GetData() if (url.startswith('imap:') or url.startswith('mailbox:')) and self.__onDropMailCallback: try: self.__onDropMailCallback(x, y, thunderbird.getMail(url)) except thunderbird.ThunderbirdCancelled: pass except thunderbird.ThunderbirdError, e: wx.MessageBox(unicode(e), _('Error'), wx.OK) elif self.__onDropURLCallback: self.__onDropURLCallback(x, y, url) elif formatType in (wx.DF_TEXT, wx.DF_UNICODETEXT): self.onUrlDrop(x, y) elif formatType == wx.DF_FILENAME: self.onFileDrop(x, y) self.reinit() return wx.DragCopy def getReceivedFormatTypeAndId(self): receivedFormat = self.__compositeDataObject.GetReceivedFormat() formatType = receivedFormat.GetType() try: formatId = receivedFormat.GetId() except: formatId = None # pylint: disable=W0702 return formatType, formatId @staticmethod def __tmp_mail_file_url(url): ''' Return whether the url is a dropped mail message. ''' return url.startswith('file:') and \ ('/.cache/evolution/tmp/drag-n-drop' in url or \ '/.claws-mail/tmp/' in url) def onThunderbirdDrop(self, x, y): if self.__onDropMailCallback: data = self.__thunderbirdMailDataObject.GetData() # We expect the data to be encoded with 'unicode_internal', # but on Fedora it can also be 'utf-16', be prepared: try: data = data.decode('unicode_internal') except UnicodeDecodeError: data = data.decode('utf-16') try: email = thunderbird.getMail(data) except thunderbird.ThunderbirdCancelled: pass except thunderbird.ThunderbirdError, e: wx.MessageBox(e.args[0], _('Error'), wx.OK | wx.ICON_ERROR) else: self.__onDropMailCallback(x, y, email) def onClawsDrop(self, x, y): if self.__onDropMailCallback: for filename in self.__fileDataObject.GetFilenames(): self.__onDropMailCallback(x, y, filename) def onOutlookDrop(self, x, y): if self.__onDropMailCallback: for mail in outlook.getCurrentSelection(): self.__onDropMailCallback(x, y, mail) def onUrlDrop(self, x, y): if self.__onDropURLCallback: url = self.__urlDataObject.GetText() if ':' not in url: # No protocol; assume http url = 'http://' + url self.__onDropURLCallback(x, y, url) def onFileDrop(self, x, y): if self.__onDropFileCallback: self.__onDropFileCallback(x, y, self.__fileDataObject.GetFilenames()) class TreeHelperMixin(object): """ This class provides methods that are not part of the API of any tree control, but are convenient to have available. """ def GetItemChildren(self, item=None, recursively=False): """ Return the children of item as a list. """ if not item: item = self.GetRootItem() if not item: return [] children = [] child, cookie = self.GetFirstChild(item) while child: children.append(child) if recursively: children.extend(self.GetItemChildren(child, True)) child, cookie = self.GetNextChild(item, cookie) return children class TreeCtrlDragAndDropMixin(TreeHelperMixin): """ This is a mixin class that can be used to easily implement dragging and dropping of tree items. It can be mixed in with wx.TreeCtrl, wx.gizmos.TreeListCtrl, or wx.lib.customtree.CustomTreeCtrl. To use it derive a new class from this class and one of the tree controls, e.g.: class MyTree(TreeCtrlDragAndDropMixin, wx.TreeCtrl): ... You *must* implement OnDrop. OnDrop is called when the user has dropped an item on top of another item. It's up to you to decide how to handle the drop. If you are using this mixin together with the VirtualTree mixin, it makes sense to rearrange your underlying data and then call RefreshItems to let the virtual tree refresh itself. """ def __init__(self, *args, **kwargs): kwargs['style'] = kwargs.get('style', wx.TR_DEFAULT_STYLE) | \ wx.TR_HIDE_ROOT self._validateDragCallback = kwargs.pop('validateDrag', None) super(TreeCtrlDragAndDropMixin, self).__init__(*args, **kwargs) self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnBeginDrag) self._dragStartPos = None self.GetMainWindow().Bind(wx.EVT_LEFT_DOWN, self._OnLeftDown) self._dragItems = [] def OnDrop(self, dropItem, dragItems, part, column): ''' This function must be overloaded in the derived class. dragItems are the items being dragged by the user. dropItem is the item the dragItems are dropped on. If the user doesn't drop the dragItems on another item, dropItem equals the (hidden) root item of the tree control. `part` is 0 if the items were dropped on the middle third of the dropItem, -1 if they were dropped on the upper third and 1 for the lower third.''' raise NotImplementedError def OnBeginDrag(self, event): ''' This method is called when the drag starts. It either allows the drag and starts it or it vetoes the drag when the the root item is one of the dragged items. ''' column = self._ColumnHitTest(self._dragStartPos) selections = self.GetSelections() self._dragItems = selections[:] if selections else [event.GetItem()] if event.GetItem() else [] self._dragColumn = column if self._dragItems and (self.GetRootItem() not in self._dragItems): self.StartDragging() event.Allow() else: event.Veto() def _OnLeftDown(self, event): # event.GetPoint() in OnBeginDrag is totally off. self._dragStartPos = wx.Point(event.GetX(), event.GetY()) event.Skip() def _ColumnHitTest(self, point): # Aaaand HitTest() returns -1 too often... hwin = self.GetHeaderWindow() x = 0 for j in xrange(self.GetColumnCount()): if not hwin.IsColumnShown(j): continue w = hwin.GetColumnWidth(j) if point.x >= x and point.x < x+w: return j x += w return -1 def OnEndDrag(self, event): self.StopDragging() dropTarget = event.GetItem() if not dropTarget: dropTarget = self.GetRootItem() if self.IsValidDropTarget(dropTarget): self.UnselectAll() if dropTarget != self.GetRootItem(): self.SelectItem(dropTarget) dummy_item, flags, dummy_column = self.HitTest(event.GetPoint()) part = 0 if flags & wx.TREE_HITTEST_ONITEMUPPERPART: part = -1 elif flags & wx.TREE_HITTEST_ONITEMLOWERPART: part = 1 self.OnDrop(dropTarget, self._dragItems, part, self._dragColumn) else: # Work around an issue with HyperTreeList. HyperTreeList will # restore the selection to the last item highlighted by the drag, # after we have processed the end drag event. That's not what we # want, so use wx.CallAfter to clear the selection after # HyperTreeList did its (wrong) thing and reselect the previously # dragged item. wx.CallAfter(self.select, self._dragItems) self._dragItems = [] def selectDraggedItems(self): self.select(reversed(self._dragItems)) def OnDragging(self, event): if not event.Dragging(): self.StopDragging() return item, flags = self.HitTest(wx.Point(event.GetX(), event.GetY()))[:2] if not item: item = self.GetRootItem() if self.IsValidDropTarget(item): self.SetCursorToDragging() else: self.SetCursorToDroppingImpossible() if flags & wx.TREE_HITTEST_ONITEMBUTTON: self.Expand(item) if self.GetSelections() != [item]: self.UnselectAll() if item != self.GetRootItem(): self.SelectItem(item) event.Skip() def StartDragging(self): self.GetMainWindow().Bind(wx.EVT_MOTION, self.OnDragging) self.Bind(wx.EVT_TREE_END_DRAG, self.OnEndDrag) self.SetCursorToDragging() def StopDragging(self): self.GetMainWindow().Unbind(wx.EVT_MOTION) self.Unbind(wx.EVT_TREE_END_DRAG) self.ResetCursor() self.selectDraggedItems() def SetCursorToDragging(self): self.GetMainWindow().SetCursor(wx.StockCursor(wx.CURSOR_HAND)) def SetCursorToDroppingImpossible(self): self.GetMainWindow().SetCursor(wx.StockCursor(wx.CURSOR_NO_ENTRY)) def ResetCursor(self): self.GetMainWindow().SetCursor(wx.NullCursor) def IsValidDropTarget(self, dropTarget): if self._validateDragCallback is not None: isValid = self._validateDragCallback(self.GetItemPyData(dropTarget), [self.GetItemPyData(item) for item in self._dragItems], self._dragColumn) if isValid is not None: return isValid if dropTarget: invalidDropTargets = set(self._dragItems) invalidDropTargets |= set(self.GetItemParent(item) for item in self._dragItems) for item in self._dragItems: invalidDropTargets |= set(self.GetItemChildren(item, recursively=True)) return dropTarget not in invalidDropTargets else: return True taskcoach-1.4.3/taskcoachlib/widgets/fontpicker.py000066400000000000000000000043621265347643000223110ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx class FontPickerCtrl(wx.Button): def __init__(self, *args, **kwargs): self.__font = kwargs.pop('font') self.__colour = kwargs.pop('colour') super(FontPickerCtrl, self).__init__(*args, **kwargs) self.__updateButton() self.Bind(wx.EVT_BUTTON, self.onClick) def GetSelectedFont(self): return self.__font def SetSelectedFont(self, font): self.__font = font self.__updateButton() def GetSelectedColour(self): return self.__colour def SetSelectedColour(self, colour): self.__colour = colour self.__updateButton() def onClick(self, event): event.Skip(False) dialog = wx.FontDialog(self, self.__newFontData()) if wx.ID_OK == dialog.ShowModal(): self.__readFontData(dialog.GetFontData()) self.__updateButton() self.__sendPickerEvent() def __newFontData(self): fontData = wx.FontData() fontData.SetInitialFont(self.__font) fontData.SetColour(self.__colour) return fontData def __readFontData(self, fontData): self.__font = fontData.GetChosenFont() self.__colour = fontData.GetColour() def __updateButton(self): self.SetLabel(self.__font.GetNativeFontInfoUserDesc()) self.SetFont(self.__font) self.SetForegroundColour(self.__colour) def __sendPickerEvent(self): event = wx.FontPickerEvent(self, self.GetId(), self.__font) self.GetEventHandler().ProcessEvent(event) taskcoach-1.4.3/taskcoachlib/widgets/frame.py000066400000000000000000000067531265347643000212450ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import taskcoachlib.thirdparty.aui as aui from taskcoachlib import operating_system class AuiManagedFrameWithDynamicCenterPane(wx.Frame): def __init__(self, *args, **kwargs): super(AuiManagedFrameWithDynamicCenterPane, self).__init__(*args, **kwargs) agwStyle = aui.AUI_MGR_DEFAULT | aui.AUI_MGR_ALLOW_ACTIVE_PANE if not operating_system.isWindows(): # With this style on Windows, you can't dock back floating frames agwStyle |= aui.AUI_MGR_USE_NATIVE_MINIFRAMES self.manager = aui.AuiManager(self, agwStyle) self.manager.SetAutoNotebookStyle(aui.AUI_NB_TOP | \ aui.AUI_NB_CLOSE_BUTTON | \ aui.AUI_NB_SUB_NOTEBOOK | \ aui.AUI_NB_SCROLL_BUTTONS) self.bindEvents() def bindEvents(self): for eventType in aui.EVT_AUI_PANE_CLOSE, aui.EVT_AUI_PANE_FLOATING: self.manager.Bind(eventType, self.onPaneClosingOrFloating) def onPaneClosingOrFloating(self, event): pane = event.GetPane() dockedPanes = self.dockedPanes() if self.isCenterPane(pane) and len(dockedPanes) == 1: event.Veto() else: event.Skip() if self.isCenterPane(pane): if pane in dockedPanes: dockedPanes.remove(pane) dockedPanes[0].Center() def addPane(self, window, caption, name, floating=False): x, y = window.GetPositionTuple() x, y = window.ClientToScreenXY(x, y) paneInfo = aui.AuiPaneInfo() paneInfo = paneInfo.CloseButton(True).Floatable(True).\ Name(name).Caption(caption).Right().\ FloatingSize((300, 200)).BestSize((200, 200)).\ FloatingPosition((x + 30, y + 30)).\ CaptionVisible().MaximizeButton().DestroyOnClose() if floating: paneInfo.Float() if not self.dockedPanes(): paneInfo = paneInfo.Center() self.manager.AddPane(window, paneInfo) self.manager.Update() def setPaneTitle(self, window, title): self.manager.GetPane(window).Caption(title) def dockedPanes(self): return [pane for pane in self.manager.GetAllPanes() \ if not pane.IsToolbar() and not pane.IsFloating() \ and not pane.IsNotebookPage()] def float(self, window): self.manager.GetPane(window).Float() @staticmethod def isCenterPane(pane): return pane.dock_direction_get() == aui.AUI_DOCK_CENTER taskcoach-1.4.3/taskcoachlib/widgets/hcalendar.py000066400000000000000000000230531265347643000220640ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2014 Task Coach developers Task Coach 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. Task Coach 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 . ''' from wxevents import CalendarCanvas, CalendarPrintout, EVT_EVENT_SELECTION_CHANGED, EVT_EVENT_DATES_CHANGED from taskcoachlib.domain import date from taskcoachlib.widgets import draganddrop from taskcoachlib import command, render import tooltip import wx, datetime class HierarchicalCalendar(tooltip.ToolTipMixin, CalendarCanvas): # Header formats (bitmask) HDR_WEEKNUMBER = 1 HDR_DATE = 2 # Calendar formats CAL_WEEKLY = 0 CAL_WORKWEEKLY = 1 CAL_MONTHLY = 2 def __init__(self, parent, tasks, onSelect, onEdit, onCreate, popupMenu, **kwargs): self.__onDropURLCallback = kwargs.pop('onDropURL', None) self.__onDropFilesCallback = kwargs.pop('onDropFiles', None) self.__onDropMailCallback = kwargs.pop('onDropMail', None) self.__taskList = tasks self.__onSelect = onSelect self.__onEdit = onEdit self.__onCreate = onCreate self.__popupMenu = popupMenu self.__calFormat = self.CAL_WEEKLY self.__hdrFormat = self.HDR_DATE self.__drawNow = True self.__adapter = parent self.getItemTooltipData = parent.getItemTooltipData super(HierarchicalCalendar, self).__init__(parent, **kwargs) self.SetCalendarFormat(self.__calFormat) # This calls _Invalidate() so no need to call SetHeaderFormat self.__tip = tooltip.SimpleToolTip(self) self.__dropTarget = draganddrop.DropTarget(self.OnDropURL, self.OnDropFiles, self.OnDropMail) self.SetDropTarget(self.__dropTarget) EVT_EVENT_SELECTION_CHANGED(self, self._OnSelectionChanged) EVT_EVENT_DATES_CHANGED(self, self._OnDatesChanged) wx.EVT_LEFT_DCLICK(self, self._OnLeftDClick) wx.EVT_RIGHT_UP(self, self._OnRightUp) def _OnSelectionChanged(self, event): self.__onSelect() def _OnDatesChanged(self, event): if event.start is None or event.end is None: return task = event.event start = date.DateTime.fromDateTime(event.start) end = date.DateTime.fromDateTime(event.end) if task.plannedStartDateTime() != start: command.EditPlannedStartDateTimeCommand(items=[task], newValue=start).do() if task.dueDateTime() != end: command.EditDueDateTimeCommand(items=[task], newValue=end).do() def _OnLeftDClick(self, event): hit = self.HitTest(event.GetX(), event.GetY()) if hit.event is None: self.__onCreate(date.DateTime.fromDateTime(hit.dateTime)) else: self.__onEdit(hit.event) def _OnRightUp(self, event): self.PopupMenu(self.__popupMenu) def OnBeforeShowToolTip(self, x, y): hit = self.HitTest(x, y) if hit is None or hit.event is None: return None tooltipData = self.getItemTooltipData(hit.event) doShow = any(data[1] for data in tooltipData) if doShow: self.__tip.SetData(tooltipData) return self.__tip else: return None def GetMainWindow(self): return self def GetItemCount(self): return len(self._coords) def RefreshAllItems(self, count): self._Invalidate() self.Refresh() def RefreshItems(self, *items): self.Refresh() def curselection(self): return list(self.Selection()) def clear_selection(self): self.Select([]) def select(self, items): self.Select(items) def select_all(self): items = list() for task in self.__taskList: items.append(task) items.extend(task.children(recursive=True)) self.select(items) # Configuration def SetCalendarFormat(self, fmt): self.__calFormat = fmt if self.__calFormat == self.CAL_WORKWEEKLY: self._start = date.Now().startOfWorkWeek() self._end = date.Now().endOfWorkWeek() elif self.__calFormat == self.CAL_WEEKLY: self._start = date.Now().startOfWeek() self._end = date.Now().endOfWeek() elif self.__calFormat == self.CAL_MONTHLY: self._start = date.Now().startOfMonth() self._end = date.Now().endOfMonth() self._Invalidate() self.Refresh() def CalendarFormat(self): return self.__calFormat def SetHeaderFormat(self, fmt): self.__hdrFormat = fmt self._Invalidate() self.Refresh() def HeaderFormat(self): return self.__hdrFormat def SetDrawNow(self, drawNow): self.__drawNow = drawNow self.Refresh() def DrawNow(self): return self.__drawNow def SetTodayColor(self, (r, g, b)): super(HierarchicalCalendar, self).SetTodayColor(wx.Colour(r, g, b)) def TodayColor(self): color = super(HierarchicalCalendar, self).TodayColor() return color.Red(), color.Green(), color.Blue() # Navigation def Next(self): start, end = self.ViewSpan() if self.__calFormat in [self.CAL_WEEKLY, self.CAL_WORKWEEKLY]: ts = datetime.timedelta(days=7) start += ts end += ts elif self.__calFormat == self.CAL_MONTHLY: start = date.DateTime.fromDateTime(start.endOfMonth()).startOfDay() + date.TimeDelta(days=1) end = start.endOfMonth() self.SetViewSpan(start, end) def Prev(self): start, end = self.ViewSpan() if self.__calFormat in [self.CAL_WEEKLY, self.CAL_WORKWEEKLY]: ts = datetime.timedelta(days=7) start -= ts end -= ts elif self.__calFormat == self.CAL_MONTHLY: start = (date.DateTime.fromDateTime(start) - date.TimeDelta(days=1)).startOfMonth() end = start.endOfMonth() self.SetViewSpan(start, end) def Today(self): now = date.Now() if self.__calFormat == self.CAL_WEEKLY: start = now.startOfWeek() end = now.endOfWeek() elif self.__calFormat == self.CAL_WORKWEEKLY: start = now.startOfWorkWeek() end = now.endOfWorkWeek() else: start = now.startOfMonth() end = now.endOfMonth() self.SetViewSpan(start, end) # Overriden def FormatDateTime(self, dateTime): dateTime = date.DateTime.fromDateTime(dateTime) components = [] if self.__hdrFormat & self.HDR_WEEKNUMBER: components.append(render.weekNumber(dateTime)) if self.__hdrFormat & self.HDR_DATE: components.append(render.date(dateTime, humanReadable=True)) return u' - '.join(components) def _DrawNow(self, gc, h): if self.__drawNow: super(HierarchicalCalendar, self)._DrawNow(gc, h) def GetRootEvents(self): return self.__adapter.getRootItems() def GetChildren(self, task): return self.__adapter.children(task) def GetStart(self, task): dt = task.plannedStartDateTime() return None if dt == date.DateTime() else dt def GetEnd(self, task): dt = task.dueDateTime() return None if dt == date.DateTime() else dt def GetText(self, task): return self.__adapter.getItemText(task) def GetBackgroundColor(self, task): color = task.backgroundColor(True) return wx.Colour(*color) if color else wx.WHITE def GetForegroundColor(self, task): color = task.foregroundColor(True) return wx.Colour(*color) if color else wx.BLACK def GetProgress(self, task): p = task.percentageComplete(recursive=True) if p: return 1.0 * p / 100 return None def GetIcons(self, task): icons = [task.icon(recursive=True)] if task.attachments(): icons.append('paperclip_icon') if task.notes(): icons.append('note_icon') return [wx.ArtProvider.GetIcon(name, wx.ART_FRAME_ICON, (16, 16)) for name in icons] def GetFont(self, task): return task.font(recursive=True) or wx.NORMAL_FONT def OnDropURL(self, x, y, url): self.__Drop(x, y, url, self.__onDropURLCallback) def OnDropFiles(self, x, y, filenames): self.__Drop(x, y, filenames, self.__onDropFilesCallback) def OnDropMail(self, x, y, mail): self.__Drop(x, y, filenames, self.__onDropMailCallback) def __Drop(self, x, y, objects, callback): if callback is not None: hit = self.HitTest(x, y) if hit.event is not None: callback(hit.event, objects) else: callback(None, objects, plannedStartDateTime=date.DateTime.fromDateTime(hit.dateTime).startOfDay(), dueDateTime=date.DateTime.fromDateTime(hit.dateTime).endOfDay()) def GetPrintout(self, settings): return CalendarPrintout(self, settings, _('Tasks')) taskcoach-1.4.3/taskcoachlib/widgets/hcalendarconfig.py000066400000000000000000000115431265347643000232530ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2014 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import wx.lib.colourselect as csel from wx.lib import sized_controls from taskcoachlib.i18n import _ from taskcoachlib.thirdparty.wxScheduler import wxSCHEDULER_DAILY, \ wxSCHEDULER_WEEKLY, wxSCHEDULER_MONTHLY, wxSCHEDULER_HORIZONTAL, \ wxSCHEDULER_VERTICAL class HierarchicalCalendarConfigDialog(sized_controls.SizedDialog): def __init__(self, settings, settingsSection, *args, **kwargs): self._settings = settings self._settingsSection = settingsSection super(HierarchicalCalendarConfigDialog, self).__init__(*args, **kwargs) pane = self.GetContentsPane() pane.SetSizerType('form') self.createInterior(pane) buttonSizer = self.CreateStdDialogButtonSizer(wx.OK|wx.CANCEL) self.SetButtonSizer(buttonSizer) self.Fit() buttonSizer.GetAffirmativeButton().Bind(wx.EVT_BUTTON, self.ok) def createInterior(self, pane): self.createHeaderEntry(pane) self.createPeriodEntry(pane) self.createLineEntry(pane) self.createColorEntry(pane) def createHeaderEntry(self, pane): label = wx.StaticText(pane, label=_('Headers')) label.SetSizerProps(valign='center') hdr = self._settings.getint(self._settingsSection, 'headerformat') panel = sized_controls.SizedPanel(pane) panel.SetSizerType('vertical') self._weekNumber = wx.CheckBox(panel, label=_('Week number')) self._weekNumber.SetValue(hdr & 1) self._weekNumber.SetSizerProps(valign='center') self._dates = wx.CheckBox(panel, label=_('Date')) self._dates.SetValue(hdr & 2) self._dates.SetSizerProps(valign='center') panel.SetSizerProps(valign='center') panel.Fit() def createPeriodEntry(self, pane): label = wx.StaticText(pane, label=_('Calendar span')) label.SetSizerProps(valign='center') periods = (_('Week'), _('Work week'), _('Month')) self._spanType = wx.Choice(pane, choices=periods) # pylint: disable=W0201 self._spanType.SetSizerProps(valign='center') self._spanType.SetSelection(self._settings.getint(self._settingsSection, 'calendarformat')) def createLineEntry(self, pane): label = wx.StaticText(pane, label=_('Draw a line showing the current time')) label.SetSizerProps(valign='center') self._shownow = wx.CheckBox(pane) # pylint: disable=W0201 self._shownow.SetSizerProps(valign='center') self._shownow.SetValue(self._settings.getboolean(self._settingsSection, 'drawnow')) def createColorEntry(self, pane): label = wx.StaticText(pane, label=_('Color used to highlight the current day')) label.SetSizerProps(valign='center') hcolor = self._settings.get(self._settingsSection, 'todaycolor') if not hcolor: # The highlight color is too dark color = wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) color = wx.Colour(int((color.Red() + 255) / 2), int((color.Green() + 255) / 2), int((color.Blue() + 255) / 2)) else: color = wx.Colour(*tuple(map(int, hcolor.split(',')))) # pylint: disable=W0141 self._highlight = csel.ColourSelect(pane, size=(100, 20)) # pylint: disable=W0201 label.SetSizerProps(valign='center') self._highlight.SetColour(color) def ok(self, event=None): # pylint: disable=W0613 settings, section = self._settings, self._settingsSection settings.set(section, 'calendarformat', str(self._spanType.GetSelection())) settings.set(section, 'drawnow', str(self._shownow.GetValue())) color = self._highlight.GetColour() settings.set(section, 'todaycolor', '%d,%d,%d' % (color.Red(), color.Green(), color.Blue())) hdr = 0 if self._weekNumber.GetValue(): hdr |= 1 if self._dates.GetValue(): hdr |= 2 settings.set(section, 'headerformat', str(hdr)) self.EndModal(wx.ID_OK) taskcoach-1.4.3/taskcoachlib/widgets/itemctrl.py000077500000000000000000000455071265347643000220010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' ''' Base classes for controls with items, such as ListCtrl, TreeCtrl, and TreeListCtrl. ''' # pylint: disable=W0105 import wx, draganddrop, autowidth, tooltip, inspect from taskcoachlib.thirdparty import hypertreelist class _CtrlWithItemsMixin(object): ''' Base class for controls with items, such as ListCtrl, TreeCtrl, TreeListCtrl, etc. ''' def _itemIsOk(self, item): try: return item.IsOk() # for Tree(List)Ctrl except AttributeError: return item != wx.NOT_FOUND # for ListCtrl def _objectBelongingTo(self, item): if not self._itemIsOk(item): return None try: return self.GetItemPyData(item) # TreeListCtrl except AttributeError: return self.getItemWithIndex(item) # ListCtrl def SelectItem(self, item, *args, **kwargs): try: # Tree(List)Ctrl: super(_CtrlWithItemsMixin, self).SelectItem(item, *args, **kwargs) except AttributeError: # ListCtrl: select = kwargs.get('select', True) newState = wx.LIST_STATE_SELECTED if not select: newState = ~newState self.SetItemState(item, newState, wx.LIST_STATE_SELECTED) class _CtrlWithPopupMenuMixin(_CtrlWithItemsMixin): ''' Base class for controls with popupmenu's. ''' @staticmethod def _attachPopupMenu(eventSource, eventTypes, eventHandler): for eventType in eventTypes: eventSource.Bind(eventType, eventHandler) class _CtrlWithItemPopupMenuMixin(_CtrlWithPopupMenuMixin): ''' Popupmenu's on items. ''' def __init__(self, *args, **kwargs): self.__popupMenu = kwargs.pop('itemPopupMenu') super(_CtrlWithItemPopupMenuMixin, self).__init__(*args, **kwargs) if self.__popupMenu is not None: self._attachPopupMenu(self, (wx.EVT_TREE_ITEM_RIGHT_CLICK, wx.EVT_CONTEXT_MENU), self.onItemPopupMenu) def onItemPopupMenu(self, event): # Make sure the window this control is in has focus: try: window = event.GetEventObject().MainWindow except AttributeError: window = event.GetEventObject() window.SetFocus() if hasattr(event, 'GetPoint'): # Make sure the item under the mouse is selected because that # is what users expect and what is most user-friendly. Not all # widgets do this by default, e.g. the TreeListCtrl does not. item = self.HitTest(event.GetPoint())[0] if not self._itemIsOk(item): return if not self.IsSelected(item): self.UnselectAll() self.SelectItem(item) self.PopupMenu(self.__popupMenu) class _CtrlWithColumnPopupMenuMixin(_CtrlWithPopupMenuMixin): ''' This class enables a right-click popup menu on column headers. The popup menu should expect a public property columnIndex to be set so that the control can tell the menu which column the user clicked to popup the menu. ''' def __init__(self, *args, **kwargs): self.__popupMenu = kwargs.pop('columnPopupMenu') super(_CtrlWithColumnPopupMenuMixin, self).__init__(*args, **kwargs) if self.__popupMenu is not None: self._attachPopupMenu(self, [wx.EVT_LIST_COL_RIGHT_CLICK], self.onColumnPopupMenu) def onColumnPopupMenu(self, event): # We store the columnIndex in the menu, because it's near to # impossible for commands in the menu to determine on what column the # menu was popped up. columnIndex = event.GetColumn() self.__popupMenu.columnIndex = columnIndex # Because right-clicking on column headers does not automatically give # focus to the control, we force the focus: try: window = event.GetEventObject().GetMainWindow() except AttributeError: window = event.GetEventObject() window.SetFocus() self.PopupMenuXY(self.__popupMenu, *event.GetPosition()) event.Skip(False) class _CtrlWithDropTargetMixin(_CtrlWithItemsMixin): ''' Control that accepts files, e-mails or URLs being dropped onto items. ''' def __init__(self, *args, **kwargs): self.__onDropURLCallback = kwargs.pop('onDropURL', None) self.__onDropFilesCallback = kwargs.pop('onDropFiles', None) self.__onDropMailCallback = kwargs.pop('onDropMail', None) super(_CtrlWithDropTargetMixin, self).__init__(*args, **kwargs) if self.__onDropURLCallback or self.__onDropFilesCallback or self.__onDropMailCallback: dropTarget = draganddrop.DropTarget(self.onDropURL, self.onDropFiles, self.onDropMail, self.onDragOver) self.GetMainWindow().SetDropTarget(dropTarget) def onDropURL(self, x, y, url): item = self.HitTest((x, y))[0] if self.__onDropURLCallback: self.__onDropURLCallback(self._objectBelongingTo(item), url) def onDropFiles(self, x, y, filenames): item = self.HitTest((x, y))[0] if self.__onDropFilesCallback: self.__onDropFilesCallback(self._objectBelongingTo(item), filenames) def onDropMail(self, x, y, mail): item = self.HitTest((x, y))[0] if self.__onDropMailCallback: self.__onDropMailCallback(self._objectBelongingTo(item), mail) def onDragOver(self, x, y, defaultResult): item, flags = self.HitTest((x, y))[:2] if self._itemIsOk(item): if flags & wx.TREE_HITTEST_ONITEMBUTTON: self.Expand(item) return defaultResult def GetMainWindow(self): try: return super(_CtrlWithDropTargetMixin, self).GetMainWindow() except AttributeError: return self class CtrlWithToolTipMixin(_CtrlWithItemsMixin, tooltip.ToolTipMixin): ''' Control that has a different tooltip for each item ''' def __init__(self, *args, **kwargs): super(CtrlWithToolTipMixin, self).__init__(*args, **kwargs) self.__tip = tooltip.SimpleToolTip(self) def OnBeforeShowToolTip(self, x, y): item, _, column = self.HitTest(wx.Point(x, y)) domainObject = self._objectBelongingTo(item) if domainObject: tooltipData = self.getItemTooltipData(domainObject) doShow = any([data[1] for data in tooltipData]) if doShow: self.__tip.SetData(tooltipData) return self.__tip return None class CtrlWithItemsMixin(_CtrlWithItemPopupMenuMixin, _CtrlWithDropTargetMixin): pass class Column(object): def __init__(self, name, columnHeader, *eventTypes, **kwargs): self.__name = name self.__columnHeader = columnHeader self.width = kwargs.pop('width', hypertreelist._DEFAULT_COL_WIDTH) # pylint: disable=W0212 # The event types to use for registering an observer that is # interested in changes that affect this column: self.__eventTypes = eventTypes self.__sortCallback = kwargs.pop('sortCallback', None) self.__renderCallback = kwargs.pop('renderCallback', self.defaultRenderer) self.__resizeCallback = kwargs.pop('resizeCallback', None) self.__alignment = kwargs.pop('alignment', wx.LIST_FORMAT_LEFT) self.__hasImages = 'imageIndicesCallback' in kwargs self.__imageIndicesCallback = kwargs.pop('imageIndicesCallback', self.defaultImageIndices) or self.defaultImageIndices # NB: because the header image is needed for sorting a fixed header # image cannot be combined with a sortable column self.__headerImageIndex = kwargs.pop('headerImageIndex', -1) self.__editCallback = kwargs.get('editCallback', None) self.__editControlClass = kwargs.get('editControl', None) self.__parse = kwargs.get('parse', lambda value: value) self.__settings = kwargs.get('settings', None) # FIXME: Column shouldn't need to know about settings def name(self): return self.__name def header(self): return self.__columnHeader def headerImageIndex(self): return self.__headerImageIndex def eventTypes(self): return self.__eventTypes def setWidth(self, width): self.width = width if self.__resizeCallback: self.__resizeCallback(self, width) def sort(self, *args, **kwargs): if self.__sortCallback: self.__sortCallback(*args, **kwargs) def __filterArgs(self, func, kwargs): actualKwargs = dict() argNames = inspect.getargspec(func).args return dict([(name, value) for name, value in kwargs.items() if name in argNames]) def render(self, *args, **kwargs): return self.__renderCallback(*args, **self.__filterArgs(self.__renderCallback, kwargs)) def defaultRenderer(self, *args, **kwargs): # pylint: disable=W0613 return unicode(args[0]) def alignment(self): return self.__alignment def defaultImageIndices(self, *args, **kwargs): # pylint: disable=W0613 return {wx.TreeItemIcon_Normal: -1} def imageIndices(self, *args, **kwargs): return self.__imageIndicesCallback(*args, **kwargs) def hasImages(self): return self.__hasImages def isEditable(self): return self.__editControlClass != None and self.__editCallback != None def onEndEdit(self, item, newValue): self.__editCallback(item, newValue) def editControl(self, parent, item, columnIndex, domainObject): value = self.value(domainObject) kwargs = dict(settings=self.__settings) if self.__settings else dict() # pylint: disable=W0142 return self.__editControlClass(parent, wx.ID_ANY, item, columnIndex, parent, value, **kwargs) def parse(self, value): return self.__parse(value) def value(self, domainObject): return getattr(domainObject, self.name())() def __eq__(self, other): return self.name() == other.name() class _BaseCtrlWithColumnsMixin(object): ''' A base class for all controls with columns. Note that this class and its subclasses do not support addition or deletion of columns after the initial setting of columns. ''' def __init__(self, *args, **kwargs): self.__allColumns = kwargs.pop('columns') super(_BaseCtrlWithColumnsMixin, self).__init__(*args, **kwargs) # This is used to keep track of which column has which # index. The only other way would be (and was) find a column # using its header, which causes problems when several columns # have the same header. It's a list of (index, column) tuples. self.__indexMap = [] self._setColumns() def _setColumns(self): for columnIndex, column in enumerate(self.__allColumns): self._insertColumn(columnIndex, column) def _insertColumn(self, columnIndex, column): newMap = [] for colIndex, col in self.__indexMap: if colIndex >= columnIndex: newMap.append((colIndex + 1, col)) else: newMap.append((colIndex, col)) newMap.append((columnIndex, column)) self.__indexMap = newMap self.InsertColumn(columnIndex, column.header() if column.headerImageIndex() == -1 else u'', format=column.alignment(), width=column.width) columnInfo = self.GetColumn(columnIndex) columnInfo.SetImage(column.headerImageIndex()) self.SetColumn(columnIndex, columnInfo) def _deleteColumn(self, columnIndex): newMap = [] for colIndex, col in self.__indexMap: if colIndex > columnIndex: newMap.append((colIndex - 1, col)) elif colIndex < columnIndex: newMap.append((colIndex, col)) self.__indexMap = newMap self.DeleteColumn(columnIndex) def _allColumns(self): return self.__allColumns def _getColumn(self, columnIndex): for colIndex, col in self.__indexMap: if colIndex == columnIndex: return col raise IndexError def _getColumnHeader(self, columnIndex): ''' The currently displayed column header in the column with index columnIndex. ''' return self.GetColumn(columnIndex).GetText() def _getColumnIndex(self, column): ''' The current column index of the column 'column'. ''' try: return self.__allColumns.index(column) # Uses overriden __eq__ except ValueError: raise ValueError, '%s: unknown column' % column.name() class _CtrlWithHideableColumnsMixin(_BaseCtrlWithColumnsMixin): ''' This class supports hiding columns. ''' def showColumn(self, column, show=True): ''' showColumn shows or hides the column for column. The column is actually removed or inserted into the control because although TreeListCtrl supports hiding columns, ListCtrl does not. ''' columnIndex = self._getColumnIndex(column) if show and not self.isColumnVisible(column): self._insertColumn(columnIndex, column) elif not show and self.isColumnVisible(column): self._deleteColumn(columnIndex) def isColumnVisible(self, column): return column in self._visibleColumns() def _getColumnIndex(self, column): ''' _getColumnIndex returns the actual columnIndex of the column if it is visible, or the position it would have if it were visible. ''' columnIndexWhenAllColumnsVisible = super(_CtrlWithHideableColumnsMixin, self)._getColumnIndex(column) for columnIndex, visibleColumn in enumerate(self._visibleColumns()): if super(_CtrlWithHideableColumnsMixin, self)._getColumnIndex(visibleColumn) >= columnIndexWhenAllColumnsVisible: return columnIndex return self.GetColumnCount() # Column header not found def _visibleColumns(self): return [self._getColumn(columnIndex) for columnIndex in range(self.GetColumnCount())] class _CtrlWithSortableColumnsMixin(_BaseCtrlWithColumnsMixin): ''' This class adds sort indicators and clickable column headers that trigger callbacks to (re)sort the contents of the control. ''' def __init__(self, *args, **kwargs): super(_CtrlWithSortableColumnsMixin, self).__init__(*args, **kwargs) self.Bind(wx.EVT_LIST_COL_CLICK, self.onColumnClick) self.__currentSortColumn = self._getColumn(0) self.__currentSortImageIndex = -1 def onColumnClick(self, event): event.Skip(False) # Make sure the window this control is in has focus: try: window = event.GetEventObject().GetMainWindow() except AttributeError: window = event.GetEventObject() window.SetFocus() columnIndex = event.GetColumn() if 0 <= columnIndex < self.GetColumnCount(): column = self._getColumn(columnIndex) # Use CallAfter to make sure the window this control is in is # activated before we process the column click: wx.CallAfter(column.sort, event) def showSortColumn(self, column): if column != self.__currentSortColumn: self._clearSortImage() self.__currentSortColumn = column self._showSortImage() def showSortOrder(self, imageIndex): self.__currentSortImageIndex = imageIndex self._showSortImage() def _clearSortImage(self): self.__setSortColumnImage(-1) def _showSortImage(self): self.__setSortColumnImage(self.__currentSortImageIndex) def _currentSortColumn(self): return self.__currentSortColumn def __setSortColumnImage(self, imageIndex): columnIndex = self._getColumnIndex(self.__currentSortColumn) columnInfo = self.GetColumn(columnIndex) if columnInfo.GetImage() == imageIndex: pass # The column is already showing the right image, so we're done else: columnInfo.SetImage(imageIndex) self.SetColumn(columnIndex, columnInfo) class _CtrlWithAutoResizedColumnsMixin(autowidth.AutoColumnWidthMixin): def __init__(self, *args, **kwargs): super(_CtrlWithAutoResizedColumnsMixin, self).__init__(*args, **kwargs) self.Bind(wx.EVT_LIST_COL_END_DRAG, self.onEndColumnResize) def onEndColumnResize(self, event): ''' Save the column widths after the user did a resize. ''' for index, column in enumerate(self._visibleColumns()): column.setWidth(self.GetColumnWidth(index)) event.Skip() class CtrlWithColumnsMixin(_CtrlWithAutoResizedColumnsMixin, _CtrlWithHideableColumnsMixin, _CtrlWithSortableColumnsMixin, _CtrlWithColumnPopupMenuMixin): ''' CtrlWithColumnsMixin combines the functionality of its four parent classes: automatic resizing of columns, hideable columns, columns with sort indicators, and column popup menu's. ''' def showColumn(self, column, show=True): super(CtrlWithColumnsMixin, self).showColumn(column, show) # Show sort indicator if the column that was just made visible is being sorted on if show and column == self._currentSortColumn(): self._showSortImage() def _clearSortImage(self): # Only clear the sort image if the column in question is visible if self.isColumnVisible(self._currentSortColumn()): super(CtrlWithColumnsMixin, self)._clearSortImage() def _showSortImage(self): # Only show the sort image if the column in question is visible if self.isColumnVisible(self._currentSortColumn()): super(CtrlWithColumnsMixin, self)._showSortImage() taskcoach-1.4.3/taskcoachlib/widgets/listctrl.py000066400000000000000000000162721265347643000220100ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system from taskcoachlib.widgets import itemctrl import wx.lib.mixins.listctrl class VirtualListCtrl(itemctrl.CtrlWithItemsMixin, itemctrl.CtrlWithColumnsMixin, itemctrl.CtrlWithToolTipMixin, wx.ListCtrl): def __init__(self, parent, columns, selectCommand=None, editCommand=None, itemPopupMenu=None, columnPopupMenu=None, resizeableColumn=0, *args, **kwargs): super(VirtualListCtrl, self).__init__(parent, style=wx.LC_REPORT | wx.LC_VIRTUAL, columns=columns, resizeableColumn=resizeableColumn, itemPopupMenu=itemPopupMenu, columnPopupMenu=columnPopupMenu, *args, **kwargs) self.__parent = parent self.bindEventHandlers(selectCommand, editCommand) def bindEventHandlers(self, selectCommand, editCommand): # pylint: disable=W0201 if selectCommand: self.selectCommand = selectCommand self.Bind(wx.EVT_LIST_ITEM_FOCUSED, self.onSelect) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.onSelect) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.onSelect) if editCommand: self.editCommand = editCommand self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onItemActivated) self.Bind(wx.EVT_SET_FOCUS, self.onSetFocus) def onSetFocus(self, event): # pylint: disable=W0613 # Send a child focus event to let the AuiManager know we received focus # so it will activate our pane wx.PostEvent(self, wx.ChildFocusEvent(self)) event.Skip() def getItemWithIndex(self, rowIndex): return self.__parent.getItemWithIndex(rowIndex) def getItemText(self, domainObject, columnIndex): return self.__parent.getItemText(domainObject, columnIndex) def getItemTooltipData(self, domainObject): return self.__parent.getItemTooltipData(domainObject) def getItemImage(self, domainObject, columnIndex=0): return self.__parent.getItemImages(domainObject, columnIndex)[wx.TreeItemIcon_Normal] def OnGetItemText(self, rowIndex, columnIndex): item = self.getItemWithIndex(rowIndex) return self.getItemText(item, columnIndex) def OnGetItemTooltipData(self, rowIndex, columnIndex): item = self.getItemWithIndex(rowIndex) return self.getItemTooltipData(item) def OnGetItemImage(self, rowIndex): item = self.getItemWithIndex(rowIndex) return self.getItemImage(item) def OnGetItemColumnImage(self, rowIndex, columnIndex): item = self.getItemWithIndex(rowIndex) return self.getItemImage(item, columnIndex) def OnGetItemAttr(self, rowIndex): item = self.getItemWithIndex(rowIndex) foreground_color = item.foregroundColor(recursive=True) background_color = item.backgroundColor(recursive=True) item_attribute_arguments = [foreground_color, background_color] font = item.font(recursive=True) if font: item_attribute_arguments.append(font) # We need to keep a reference to the item attribute to prevent it # from being garbage collected too soon: self.__item_attribute = wx.ListItemAttr(*item_attribute_arguments) # pylint: disable=W0142,W0201 return self.__item_attribute def onSelect(self, event): event.Skip() self.selectCommand(event) def onItemActivated(self, event): ''' Override default behavior to attach the column clicked on to the event so we can use it elsewhere. ''' window = self.GetMainWindow() if operating_system.isMac(): window = window.GetChildren()[0] mouse_position = window.ScreenToClient(wx.GetMousePosition()) index, dummy_flags, column = self.HitTest(mouse_position) if index >= 0: # Only get the column name if the hittest returned an item, # otherwise the item was activated from the menu or by double # clicking on a portion of the tree view not containing an item. column = max(0, column) # FIXME: Why can the column be -1? event.columnName = self._getColumn(column).name() # pylint: disable=E1101 self.editCommand(event) def RefreshAllItems(self, count): self.SetItemCount(count) if count == 0: self.DeleteAllItems() else: # The VirtualListCtrl makes sure only visible items are updated super(VirtualListCtrl, self).RefreshItems(0, count - 1) self.selectCommand() def RefreshItems(self, *items): ''' Refresh specific items. ''' if len(items) <= 7: for item in items: self.RefreshItem(self.__parent.getIndexOfItem(item)) else: self.RefreshAllItems(self.GetItemCount()) def HitTest(self, (x, y), *args, **kwargs): ''' Always return a three-tuple (item, flag, column). ''' index, flags = super(VirtualListCtrl, self).HitTest((x, y), *args, **kwargs) column = 0 if self.InReportView(): # Determine the column in which the user clicked cumulative_column_width = 0 for column_index in range(self.GetColumnCount()): cumulative_column_width += self.GetColumnWidth(column_index) if x <= cumulative_column_width: column = column_index break return index, flags, column def curselection(self): return [self.getItemWithIndex(index) \ for index in self.__curselection_indices()] def select(self, items): indices = [self.__parent.getIndexOfItem(item) for item in items] for index in range(self.GetItemCount()): self.Select(index, index in indices) if self.curselection(): self.Focus(self.GetFirstSelected()) def clear_selection(self): ''' Unselect all selected items. ''' for index in self.__curselection_indices(): self.Select(index, False) def select_all(self): ''' Select all items. ''' for index in range(self.GetItemCount()): self.Select(index) def __curselection_indices(self): ''' Return the indices of the currently selected items. ''' return wx.lib.mixins.listctrl.getListCtrlSelection(self) taskcoach-1.4.3/taskcoachlib/widgets/masked.py000077500000000000000000000113051265347643000214070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system from wx.lib import masked import wx import locale class FixOverwriteSelectionMixin(object): def _SetSelection(self, start, end): if operating_system.isGTK(): # pragma: no cover # By exchanging the start and end parameters we make sure that the # cursor is at the start of the field so that typing overwrites the # current field instead of moving to the next field: start, end = end, start super(FixOverwriteSelectionMixin, self)._SetSelection(start, end) def _OnKeyDown(self, event): # Allow keyboard navigation in notebook. Just skipping the event does not work; # propagate it all the way up... if event.GetKeyCode() == wx.WXK_TAB and event.GetModifiers() and hasattr(self.GetParent(), 'NavigateBook'): if self.GetParent().NavigateBook(event): return super(FixOverwriteSelectionMixin, self)._OnKeyDown(event) class TextCtrl(FixOverwriteSelectionMixin, masked.TextCtrl): pass class AmountCtrl(FixOverwriteSelectionMixin, masked.NumCtrl): def __init__(self, parent, value=0, locale_conventions=None): locale_conventions = locale_conventions or locale.localeconv() decimalChar = locale_conventions['decimal_point'] or '.' groupChar = locale_conventions['thousands_sep'] or ',' groupDigits = len(locale_conventions['grouping']) > 1 # The thousands separator may come up as ISO-8859-1 character # 0xa0, which looks like a space but isn't ASCII, which # confuses NumCtrl... Play it safe and avoid any non-ASCII # character here, or groupChars that consist of multiple characters. if len(groupChar) > 1 or ord(groupChar) >= 128: groupChar = ',' # Prevent decimalChar and groupChar from being the same: if groupChar == decimalChar: groupChar = '.' if decimalChar == ',' else ',' super(AmountCtrl, self).__init__(parent, value=value, allowNegative=False, fractionWidth=2, selectOnEntry=True, decimalChar=decimalChar, groupChar=groupChar, groupDigits=groupDigits) class TimeDeltaCtrl(TextCtrl): ''' Masked edit control for entering or displaying time deltas of the form ::. Entering negative time deltas is not allowed, displaying negative time deltas is allowed if the control is read only. ''' def __init__(self, parent, hours, minutes, seconds, readonly=False, negative_value=False, *args, **kwargs): # If the control is read only (meaning it could potentially have to # show negative values) or if the value is actually negative, allow # the minus sign in the mask. Otherwise only allow for numbers. mask = 'X{9}:##:##' if negative_value or readonly else '#{9}:##:##' hours = self.__hour_string(hours, negative_value) super(TimeDeltaCtrl, self).__init__(parent, mask=mask, formatcodes='FS', fields=[masked.Field(formatcodes='Rr', defaultValue=hours), masked.Field(defaultValue='%02d' % minutes), masked.Field(defaultValue='%02d' % seconds)], *args, **kwargs) def set_value(self, hours, minutes, seconds, negative_value=False): hours = self.__hour_string(hours, negative_value) self.SetCtrlParameters(formatcodes='FS', fields=[masked.Field(formatcodes='Rr', defaultValue=hours), masked.Field(defaultValue='%02d' % minutes), masked.Field(defaultValue='%02d' % seconds)]) self.Refresh() @staticmethod def __hour_string(hours, negative_value): ''' If the value is negative (e.g. over budget), place a minus sign before the hours number and make sure the field has the appropriate width. ''' return '%9s' % ('-' + '%d' % hours) if negative_value else \ '%9d' % hours taskcoach-1.4.3/taskcoachlib/widgets/notebook.py000066400000000000000000000162401265347643000217630ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import taskcoachlib.thirdparty.aui as aui import wx class GridCursor: ''' Utility class to help when adding controls to a GridBagSizer. ''' def __init__(self, columns): self.__columns = columns self.__nextPosition = (0, 0) def __updatePosition(self, colspan): ''' Update the position of the cursor, taking colspan into account. ''' row, column = self.__nextPosition if column == self.__columns - colspan: row += 1 column = 0 else: column += colspan self.__nextPosition = (row, column) def next(self, colspan=1): row, column = self.__nextPosition self.__updatePosition(colspan) return row, column def maxRow(self): row, column = self.__nextPosition return max(0, row - 1) if column == 0 else row class BookPage(wx.Panel): ''' A page in a notebook. ''' def __init__(self, parent, columns, growableColumn=None, *args, **kwargs): super(BookPage, self).__init__(parent, style=wx.TAB_TRAVERSAL, *args, **kwargs) self._sizer = wx.GridBagSizer(vgap=5, hgap=5) self._columns = columns self._position = GridCursor(columns) if growableColumn is None: self._growableColumn = columns - 1 else: self._growableColumn = growableColumn self._borderWidth = 5 def fit(self): self.SetSizerAndFit(self._sizer) def __defaultFlags(self, controls): ''' Return the default flags for placing a list of controls. ''' labelInFirstColumn = type(controls[0]) in [type(''), type(u'')] flags = [] for columnIndex in range(len(controls)): flag = wx.ALL | wx.ALIGN_CENTER_VERTICAL if columnIndex == 0 and labelInFirstColumn: flag |= wx.ALIGN_LEFT else: flag |= wx.ALIGN_RIGHT | wx.EXPAND flags.append(flag) return flags def __determineFlags(self, controls, flagsPassed): ''' Return a merged list of flags by overriding the default flags with flags passed by the caller. ''' flagsPassed = flagsPassed or [None] * len(controls) defaultFlags = self.__defaultFlags(controls) return [defaultFlag if flagPassed is None else flagPassed for flagPassed, defaultFlag in zip(flagsPassed, defaultFlags)] def addEntry(self, *controls, **kwargs): ''' Add a number of controls to the page. All controls are placed on one row, and together they form one entry. E.g. a label, a text field and an explanatory label. The default flags for placing the controls can be overridden by providing a keyword parameter 'flags'. flags should be a list of flags (wx.ALIGN_LEFT and the like). The list may contain None for controls that should be placed using the default flag. If the flags list is shorter than the number of controls it is extended with as much 'None's as needed. So, addEntry(aLabel, aTextCtrl, flags=[None, wx.ALIGN_LEFT]) will place the label with the default flag and will place the textCtrl left aligned. ''' flags = self.__determineFlags(controls, kwargs.get('flags', None)) controls = [self.__createStaticTextControlIfNeeded(control) \ for control in controls if control is not None] lastColumnIndex = len(controls) - 1 for columnIndex, control in enumerate(controls): self.__addControl(columnIndex, control, flags[columnIndex], lastColumn=columnIndex == lastColumnIndex) if columnIndex > 0: control.MoveAfterInTabOrder(controls[columnIndex - 1]) if kwargs.get('growable', False): self._sizer.AddGrowableRow(self._position.maxRow()) # Move growable column definition here # There are asserts to fail if the column is already # marked growable or if there is no column yet created if self._growableColumn > -1 and \ self._growableColumn >= lastColumnIndex: self._sizer.AddGrowableCol(self._growableColumn) self._growableColumn = -1 def addLine(self): line = wx.StaticLine(self) self.__addControl(0, line, flag=wx.GROW | wx.ALIGN_CENTER_VERTICAL, lastColumn=True) def __addControl(self, columnIndex, control, flag, lastColumn): colspan = max(self._columns - columnIndex, 1) if lastColumn else 1 self._sizer.Add(control, self._position.next(colspan), span=(1, colspan), flag=flag, border=self._borderWidth) def __createStaticTextControlIfNeeded(self, control): if type(control) in [type(''), type(u'')]: control = wx.StaticText(self, label=control) return control class BookMixin(object): ''' Mixin class for *book ''' _bitmapSize = (16, 16) pageChangedEvent = 'Subclass responsibility' def __init__(self, parent, *args, **kwargs): super(BookMixin, self).__init__(parent, -1, *args, **kwargs) self.Bind(self.pageChangedEvent, self.onPageChanged) def __getitem__(self, index): ''' More pythonic way to get a specific page, also useful for iterating over all pages, e.g: for page in notebook: ... ''' if index < self.GetPageCount(): return self.GetPage(index) else: raise IndexError def onPageChanged(self, event): ''' Can be overridden in a subclass to do something useful. ''' event.Skip() def AddPage(self, page, name, bitmap=None): ''' Override AddPage to allow for simply specifying the bitmap name. ''' bitmap = wx.ArtProvider_GetBitmap(bitmap, wx.ART_MENU, self._bitmapSize) super(BookMixin, self).AddPage(page, name, bitmap=bitmap) def ok(self, *args, **kwargs): for page in self: page.ok(*args, **kwargs) class Notebook(BookMixin, aui.AuiNotebook): pageChangedEvent = aui.EVT_AUINOTEBOOK_PAGE_CHANGED def __init__(self, *args, **kwargs): defaultStyle = kwargs.get('agwStyle', aui.AUI_NB_DEFAULT_STYLE) kwargs['agwStyle'] = defaultStyle & ~aui.AUI_NB_CLOSE_ON_ACTIVE_TAB & \ ~aui.AUI_NB_MIDDLE_CLICK_CLOSE super(Notebook, self).__init__(*args, **kwargs) taskcoach-1.4.3/taskcoachlib/widgets/panel.py000077500000000000000000000070031265347643000212420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx class PanelWithBoxSizer(wx.Panel): def __init__(self, *args, **kwargs): orientation = kwargs.pop('orientation', wx.VERTICAL) super(PanelWithBoxSizer, self).__init__(*args, **kwargs) self.__panelSizer = wx.BoxSizer(orientation) def fit(self): ''' Call this method after all controls have been added (via add()). ''' self.SetSizerAndFit(self.__panelSizer) def add(self, *args, **kwargs): defaultKwArgs = dict(flag=wx.EXPAND|wx.ALL, proportion=1) defaultKwArgs.update(kwargs) self.__panelSizer.Add(*args, **defaultKwArgs) class BoxWithFlexGridSizer(wx.Panel): ''' A panel that is boxed and has a FlexGridSizer inside it. ''' def __init__(self, parent, label, cols, gap=10, vgap=0, hgap=0, growableRow=-1, growableCol=-1, *args, **kwargs): super(BoxWithFlexGridSizer, self).__init__(parent, *args, **kwargs) box = wx.StaticBox(self, label=label) self.__boxSizer = wx.StaticBoxSizer(box, wx.HORIZONTAL) self.__entriesSizer = wx.FlexGridSizer(cols=cols, vgap=gap or vgap, hgap=gap or hgap) if growableRow > -1: self.__entriesSizer.AddGrowableRow(growableRow, proportion=1) if growableCol > -1: self.__entriesSizer.AddGrowableCol(growableCol, proportion=1) self.__boxSizer.Add(self.__entriesSizer, proportion=1, flag=wx.EXPAND|wx.ALL, border=10) def fit(self): ''' Call this method after all controls have been added (via add()). ''' self.SetSizerAndFit(self.__boxSizer) def add(self, control, *args, **kwargs): ''' Add controls to the FlexGridSizer. ''' if type(control) in (type(''), type(u'')): control = wx.StaticText(self, label=control) if 'flag' not in kwargs: kwargs['flag'] = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL self.__entriesSizer.Add(control, *args, **kwargs) class BoxWithBoxSizer(wx.Panel): ''' A panel that is boxed and has a BoxSizer inside it. ''' def __init__(self, parent, label, orientation=wx.VERTICAL, *args, **kwargs): super(BoxWithBoxSizer, self).__init__(parent, *args, **kwargs) box = wx.StaticBox(self, label=label) self.__boxSizer = wx.StaticBoxSizer(box, wx.HORIZONTAL) self.__innerBoxSizer = wx.BoxSizer(orientation) self.__boxSizer.Add(self.__innerBoxSizer, proportion=1, flag=wx.EXPAND|wx.ALL, border=10) def fit(self): ''' Call this method after all controls have been added (via add()). ''' self.SetSizerAndFit(self.__boxSizer) def add(self, control, *args, **kwargs): ''' Add controls to the BoxSizer. ''' self.__innerBoxSizer.Add(control, *args, **kwargs) taskcoach-1.4.3/taskcoachlib/widgets/password.py000066400000000000000000000111341265347643000220020ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.i18n import _ class KeychainPasswordWidget(wx.Dialog): def __init__(self, domain, username, *args, **kwargs): super(KeychainPasswordWidget, self).__init__(*args, **kwargs) self.domain = domain.encode('UTF-8') self.username = username.encode('UTF-8') pnl = wx.Panel(self, wx.ID_ANY) hsz = wx.BoxSizer(wx.HORIZONTAL) hsz.Add(wx.StaticText(pnl, wx.ID_ANY, _('Password:')), 0, wx.ALL, 3) from taskcoachlib.thirdparty.keyring import get_password password = get_password(self.domain, self.username) self.password = (password or '').decode('UTF-8') self.passwordField = wx.TextCtrl(pnl, wx.ID_ANY, self.password, style=wx.TE_PASSWORD) hsz.Add(self.passwordField, 1, wx.ALL, 3) vsz = wx.BoxSizer(wx.VERTICAL) vsz.Add(hsz, 0, wx.ALL|wx.EXPAND, 3) self.keepInKeychain = wx.CheckBox(pnl, wx.ID_ANY, _('Store in keychain')) self.keepInKeychain.SetValue(bool(password)) vsz.Add(self.keepInKeychain, 0, wx.ALL|wx.EXPAND, 3) hsz = wx.BoxSizer(wx.HORIZONTAL) btnOK = wx.Button(pnl, wx.ID_ANY, _('OK')) hsz.Add(btnOK, 0, wx.ALL, 3) btnCancel = wx.Button(pnl, wx.ID_ANY, _('Cancel')) hsz.Add(btnCancel, 0, wx.ALL, 3) vsz.Add(hsz, 0, wx.ALL|wx.ALIGN_CENTRE, 3) pnl.SetSizer(vsz) sz = wx.BoxSizer(wx.HORIZONTAL) sz.Add(pnl, 1, wx.EXPAND|wx.ALL, 3) self.SetSizer(sz) self.Fit() wx.EVT_BUTTON(btnOK, wx.ID_ANY, self.OnOK) wx.EVT_BUTTON(btnCancel, wx.ID_ANY, self.OnCancel) self.SetDefaultItem(btnOK) wx.CallAfter(self.RequestUserAttention) def OnOK(self, event): self.password = self.passwordField.GetValue() from taskcoachlib.thirdparty.keyring import set_password if self.keepInKeychain.GetValue(): set_password(self.domain, self.username, self.password.encode('UTF-8')) else: set_password(self.domain, self.username, '') self.EndModal(wx.ID_OK) def OnCancel(self, event): self.EndModal(wx.ID_CANCEL) _PASSWORDCACHE = None def _GetCachedPassword(domain, username, reset): global _PASSWORDCACHE if _PASSWORDCACHE is None: import StringIO, traceback bf = StringIO.StringIO() traceback.print_exc(file=bf) wx.MessageBox(_('There was a problem trying to find out your system\'s keychain.\nPlease file a bug report (see the Help menu) and attach a screenshot of this message.\nError was:\n\n%s') % bf.getvalue(), _('Error'), wx.OK) _PASSWORDCACHE = dict() if (domain, username) in _PASSWORDCACHE and reset: del _PASSWORDCACHE[(domain, username)] if (domain, username) not in _PASSWORDCACHE: pwd = wx.GetPasswordFromUser(_('Please enter your password.'), domain) if not pwd: return None _PASSWORDCACHE[(domain, username)] = pwd return _PASSWORDCACHE[(domain, username)] def GetPassword(domain, username, reset=False): try: from taskcoachlib.thirdparty.keyring import set_password, get_password except: # Keychain unavailable. return _GetCachedPassword(domain, username, reset) try: if reset: set_password(domain.encode('UTF-8'), username.encode('UTF-8'), '') else: pwd = get_password(domain.encode('UTF-8'), username.encode('UTF-8')) if pwd: return pwd.decode('UTF-8') except ImportError: # Bug seen on Ubuntu 13.10: secretstorage cannot import ._gi return _GetCachedPassword(domain, username, reset) dlg = KeychainPasswordWidget(domain, username, None, wx.ID_ANY, _('Please enter your password'), style=wx.DEFAULT_DIALOG_STYLE|wx.STAY_ON_TOP) try: dlg.CentreOnScreen() if dlg.ShowModal() == wx.ID_OK: return dlg.password finally: dlg.Destroy() taskcoach-1.4.3/taskcoachlib/widgets/searchctrl.py000077500000000000000000000241021265347643000222740ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, re, sre_constants from taskcoachlib.widgets import tooltip from taskcoachlib.i18n import _ class SearchCtrl(tooltip.ToolTipMixin, wx.SearchCtrl): def __init__(self, *args, **kwargs): self.__callback = kwargs.pop('callback') self.__matchCase = kwargs.pop('matchCase', False) self.__includeSubItems = kwargs.pop('includeSubItems', False) self.__searchDescription = kwargs.pop('searchDescription', False) self.__regularExpression = kwargs.pop('regularExpression', False) self.__bitmapSize = kwargs.pop('size', (16, 16)) value = kwargs.pop('value', u'') super(SearchCtrl, self).__init__(*args, **kwargs) self.SetSearchMenuBitmap(self.getBitmap('magnifier_glass_dropdown_icon')) self.SetSearchBitmap(self.getBitmap('magnifier_glass_icon')) self.SetCancelBitmap(self.getBitmap('cross_red_icon')) self.__timer = wx.Timer(self) self.__recentSearches = [] self.__maxRecentSearches = 5 self.__tooltip = tooltip.SimpleToolTip(self) self.createMenu() self.bindEventHandlers() self.SetValue(value) def GetMainWindow(self): return self def getTextCtrl(self): textCtrl = [child for child in self.GetChildren() if isinstance(child, wx.TextCtrl)] return textCtrl[0] if textCtrl else self def getBitmap(self, bitmap): return wx.ArtProvider_GetBitmap(bitmap, wx.ART_TOOLBAR, self.__bitmapSize) def createMenu(self): # pylint: disable=W0201 menu = wx.Menu() self.__matchCaseMenuItem = menu.AppendCheckItem(wx.ID_ANY, _('&Match case'), _('Match case when filtering')) self.__matchCaseMenuItem.Check(self.__matchCase) self.__includeSubItemsMenuItem = menu.AppendCheckItem(wx.ID_ANY, _('&Include sub items'), _('Include sub items of matching items in the search results')) self.__includeSubItemsMenuItem.Check(self.__includeSubItems) self.__searchDescriptionMenuItem = menu.AppendCheckItem(wx.ID_ANY, _('&Search description too'), _('Search both subject and description')) self.__searchDescriptionMenuItem.Check(self.__searchDescription) self.__regularExpressionMenuItem = menu.AppendCheckItem(wx.ID_ANY, _('&Regular Expression'), _('Consider search text as a regular expression')) self.__regularExpressionMenuItem.Check(self.__regularExpression) self.SetMenu(menu) def PopupMenu(self): # pylint: disable=W0221 rect = self.GetClientRect() x, y = rect[0], rect[1] + rect[3] + 3 self.PopupMenuXY(self.GetMenu(), x, y) def bindEventHandlers(self): # pylint: disable=W0142,W0612,W0201 for args in [(wx.EVT_TIMER, self.onFind, self.__timer), (wx.EVT_TEXT_ENTER, self.onFind), (wx.EVT_TEXT, self.onFindLater), (wx.EVT_SEARCHCTRL_CANCEL_BTN, self.onCancel), (wx.EVT_MENU, self.onMatchCaseMenuItem, self.__matchCaseMenuItem), (wx.EVT_MENU, self.onIncludeSubItemsMenuItem, self.__includeSubItemsMenuItem), (wx.EVT_MENU, self.onSearchDescriptionMenuItem, self.__searchDescriptionMenuItem), (wx.EVT_MENU, self.onRegularExpressionMenuItem, self.__regularExpressionMenuItem)]: self.Bind(*args) # Precreate menu item ids for the recent searches and bind the event # handler for those menu item ids. It's no problem that the actual menu # items don't exist yet. self.__recentSearchMenuItemIds = \ [wx.NewId() for dummy in range(self.__maxRecentSearches)] self.Bind(wx.EVT_MENU_RANGE, self.onRecentSearchMenuItem, id=self.__recentSearchMenuItemIds[0], id2=self.__recentSearchMenuItemIds[-1]) def setMatchCase(self, matchCase): self.__matchCase = matchCase self.__matchCaseMenuItem.Check(matchCase) def setIncludeSubItems(self, includeSubItems): self.__includeSubItems = includeSubItems self.__includeSubItemsMenuItem.Check(includeSubItems) def setSearchDescription(self, searchDescription): self.__searchDescription = searchDescription self.__searchDescriptionMenuItem.Check(searchDescription) def setRegularExpression(self, regularExpression): self.__regularExpression = regularExpression self.__regularExpressionMenuItem.Check(regularExpression) def isValid(self): if self.__regularExpression: try: re.compile(self.GetValue()) except sre_constants.error: return False return True def onFindLater(self, event): # pylint: disable=W0613 # Start the timer so that the actual filtering will be done # only when the user pauses typing (at least 0.5 second) self.__timer.Start(500, oneShot=True) def onFind(self, event): # pylint: disable=W0613 if self.__timer.IsRunning(): self.__timer.Stop() if not self.IsEnabled(): return if not self.isValid(): self.__tooltip.SetData([(None, [_('This is an invalid regular expression.'), _('Defaulting to substring search.')])]) x, y = self.GetParent().ClientToScreenXY(*self.GetPosition()) height = self.GetClientSizeTuple()[1] self.DoShowTip(x + 3, y + height + 4, self.__tooltip) else: self.HideTip() searchString = self.GetValue() if searchString: self.rememberSearchString(searchString) self.ShowCancelButton(bool(searchString)) self.__callback(searchString, self.__matchCase, self.__includeSubItems, self.__searchDescription, self.__regularExpression) def onCancel(self, event): self.SetValue('') self.onFind(event) event.Skip() def onMatchCaseMenuItem(self, event): self.__matchCase = self._isMenuItemChecked(event) self.onFind(event) # XXXFIXME: when skipping on OS X, we receive several events with different # IsChecked(), the last one being False. I can't reproduce this in a unit # test. Not skipping the event doesn't harm on other platforms (tested by # hand) def onIncludeSubItemsMenuItem(self, event): self.__includeSubItems = self._isMenuItemChecked(event) self.onFind(event) def onSearchDescriptionMenuItem(self, event): self.__searchDescription = self._isMenuItemChecked(event) self.onFind(event) def onRegularExpressionMenuItem(self, event): self.__regularExpression = self._isMenuItemChecked(event) self.onFind(event) def onRecentSearchMenuItem(self, event): self.SetValue(self.__recentSearches[event.GetId()-self.__recentSearchMenuItemIds[0]]) self.onFind(event) # Don't call event.Skip(). It will result in this event handler being # called again with the next menu item since wxPython thinks the # event has not been dealt with (on Mac OS X at least). def rememberSearchString(self, searchString): if searchString in self.__recentSearches: self.__recentSearches.remove(searchString) self.__recentSearches.insert(0, searchString) if len(self.__recentSearches) > self.__maxRecentSearches: self.__recentSearches.pop() self.updateRecentSearches() def updateRecentSearches(self): menu = self.GetMenu() self.removeRecentSearches(menu) self.addRecentSearches(menu) def removeRecentSearches(self, menu): while menu.GetMenuItemCount() > 4: item = menu.FindItemByPosition(4) menu.DestroyItem(item) def addRecentSearches(self, menu): menu.AppendSeparator() item = menu.Append(wx.ID_ANY, _('Recent searches')) item.Enable(False) for index, searchString in enumerate(self.__recentSearches): menu.Append(self.__recentSearchMenuItemIds[index], searchString) def Enable(self, enable=True): # pylint: disable=W0221 ''' When wx.SearchCtrl is disabled it doesn't grey out the buttons, so we remove those. ''' self.SetValue('' if enable else _('Viewer not searchable')) super(SearchCtrl, self).Enable(enable) self.ShowCancelButton(enable and bool(self.GetValue())) self.ShowSearchButton(enable) def _isMenuItemChecked(self, event): # There's a bug in wxPython 2.8.3 on Windows XP that causes # event.IsChecked() to return the wrong value in the context menu. # The menu on the main window works fine. So we first try to access the # context menu to get the checked state from the menu item itself. # This will fail if the event is coming from the window, but in that # case we can event.IsChecked() expect to work so we use that. try: return event.GetEventObject().FindItemById(event.GetId()).IsChecked() except AttributeError: return event.IsChecked() def OnBeforeShowToolTip(self, x, y): return None taskcoach-1.4.3/taskcoachlib/widgets/spinctrl.py000066400000000000000000000100271265347643000217760ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Copyright (C) 2008 Rob McMullen Copyright (C) 2008 Carl Zmola Task Coach 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. Task Coach 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 . ''' import wx # The native SpinCtrl on Windows has no TextCtrl API which means we cannot make # the Delete key work (see uicommand.py::Delete). Our own SpinCtrl below # doesn't have this disadvantage. class SpinCtrl(wx.Panel): maxRange = 2147483647 # 2^31 def __init__(self, parent, wxId=wx.ID_ANY, value=0, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, name='wx.SpinCtrl', **kwargs): # pylint: disable=W0613 super(SpinCtrl, self).__init__(parent, wxId, pos=pos, size=size, name=name) minValue = kwargs['min'] if 'min' in kwargs else -self.maxRange maxValue = kwargs['max'] if 'max' in kwargs else self.maxRange value = min(maxValue, max(int(value), minValue)) self._textCtrl = wx.TextCtrl(self, value=str(value)) self._spinButton = wx.SpinButton(self, size=(-1, self._textCtrl.GetSize()[1]), style=wx.SP_VERTICAL|wx.SP_ARROW_KEYS) self._spinButton.SetRange(minValue, maxValue) self._spinButton.SetValue(value) self._textCtrl.SetMinSize((size[0]-self._spinButton.GetSize()[0], -1)) sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddMany([self._textCtrl, self._spinButton]) self.SetSizerAndFit(sizer) self._textCtrl.Bind(wx.EVT_TEXT, self.onText) self._textCtrl.Bind(wx.EVT_KEY_DOWN, self.onKey) self._textCtrl.Bind(wx.EVT_SET_FOCUS, self.onSetFocus) self._spinButton.Bind(wx.EVT_SPIN, self.onSpin) def onText(self, event): event.Skip() try: newValue = int(event.GetString()) if newValue != self._spinButton.GetValue(): self._spinButton.SetValue(newValue) self.__postEvent() except (ValueError, OverflowError): self._textCtrl.SetValue(str(self._spinButton.GetValue())) def onKey(self, event): deltaByKeyCode = {wx.WXK_UP: 1, wx.WXK_NUMPAD_UP: 1, wx.WXK_DOWN: -1, wx.WXK_NUMPAD_DOWN: -1, wx.WXK_PAGEUP: 10, wx.WXK_NUMPAD_PAGEUP: 10, wx.WXK_PAGEDOWN: -10, wx.WXK_NUMPAD_PAGEDOWN: -10} delta = 0 if event.HasModifiers() else deltaByKeyCode.get(event.GetKeyCode(), 0) if delta: self.SetValue(self.GetValue() + delta) self.__postEvent() else: event.Skip() def onSetFocus(self, event): self._textCtrl.SelectAll() event.Skip() def onSpin(self, event): # pylint: disable=W0613 self._textCtrl.SetValue(str(self._spinButton.GetValue())) self.__postEvent() def GetValue(self): return self._spinButton.GetValue() def SetValue(self, value): self._spinButton.SetValue(value) # Get the value from the spinButton because it is guaranteed to be # within the min/max range. self._textCtrl.SetValue(str(self.GetValue())) Value = property(GetValue, SetValue) def GetMax(self): return self._spinButton.GetMax() def GetMin(self): return self._spinButton.GetMin() def __postEvent(self): wx.PostEvent(self, wx.SpinEvent(wx.wxEVT_COMMAND_SPINCTRL_UPDATED, self.GetId())) taskcoach-1.4.3/taskcoachlib/widgets/squaremap.py000066400000000000000000000060351265347643000221420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, operator from taskcoachlib.thirdparty.squaremap import squaremap import tooltip class SquareMap(tooltip.ToolTipMixin, squaremap.SquareMap): def __init__(self, parent, rootNode, onSelect, onEdit, popupMenu): self.__selection = [] self.getItemTooltipData = parent.getItemTooltipData super(SquareMap, self).__init__(parent, model=rootNode, adapter=parent, highlight=False) self.__tip = tooltip.SimpleToolTip(self) self.selectCommand = onSelect self.Bind(squaremap.EVT_SQUARE_SELECTED, self.onSelect) self.editCommand = onEdit self.Bind(squaremap.EVT_SQUARE_ACTIVATED, self.onEdit) self.popupMenu = popupMenu self.Bind(wx.EVT_RIGHT_DOWN, self.onPopup) def RefreshAllItems(self, count): # pylint: disable=W0613 self.UpdateDrawing() def RefreshItems(self, *args): # pylint: disable=W0613 self.UpdateDrawing() def onSelect(self, event): if event.node == self.model: self.__selection = [] else: self.__selection = [event.node] wx.CallAfter(self.selectCommand) event.Skip() def select(self, items): pass def onEdit(self, event): self.editCommand(event) event.Skip() def OnBeforeShowToolTip(self, x, y): item = squaremap.HotMapNavigator.findNodeAtPosition(self.hot_map, (x,y)) if item is None or item == self.model: return None tooltipData = self.getItemTooltipData(item) doShow = reduce(operator.__or__, map(bool, [data[1] for data in tooltipData]), False) if doShow: self.__tip.SetData(tooltipData) return self.__tip else: return None def onPopup(self, event): self.OnClickRelease(event) # Make sure the node is selected self.SetFocus() self.PopupMenu(self.popupMenu) def curselection(self): return self.__selection def GetItemCount(self): return 0 def isAnyItemExpandable(self): return False isAnyItemCollapsable = isAnyItemExpandable def GetMainWindow(self): return self MainWindow = property(GetMainWindow) taskcoach-1.4.3/taskcoachlib/widgets/syncmlwarning.py000066400000000000000000000041301265347643000230310ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib.i18n import _ class SyncMLWarningDialog(wx.Dialog): def __init__(self, parent): super(SyncMLWarningDialog, self).__init__(parent, wx.ID_ANY, _('Compatibility warning')) textWidget = wx.StaticText(self, wx.ID_ANY, _('The SyncML feature is disabled, because the module\n' 'could not be loaded. This may be because your platform\n' 'is not supported, or under Windows, you may be missing\n' 'some mandatory DLLs. Please see the SyncML section of\n' 'the online help for details (under "Troubleshooting").')) self.checkbox = wx.CheckBox(self, wx.ID_ANY, _('Never show this dialog again')) self.checkbox.SetValue(True) button = wx.Button(self, wx.ID_ANY, _('OK')) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(textWidget, 0, wx.ALL, 10) sizer.Add(self.checkbox, 0, wx.ALL, 3) sizer.Add(button, 0, wx.ALL|wx.ALIGN_CENTRE, 3) self.SetSizer(sizer) wx.EVT_BUTTON(button, wx.ID_ANY, self.OnOK) wx.EVT_CLOSE(self, self.OnOK) self.Fit() def OnOK(self, event): if self.checkbox.IsChecked(): self.EndModal(wx.ID_OK) else: self.EndModal(wx.ID_CANCEL) taskcoach-1.4.3/taskcoachlib/widgets/textctrl.py000077500000000000000000000142271265347643000220220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import i18n, operating_system import wx import webbrowser UNICODE_CONTROL_CHARACTERS_TO_WEED = {} for ordinal in range(0x20): if chr(ordinal) not in '\t\r\n': UNICODE_CONTROL_CHARACTERS_TO_WEED[ordinal] = None class BaseTextCtrl(wx.TextCtrl): def __init__(self, parent, *args, **kwargs): super(BaseTextCtrl, self).__init__(parent, -1, *args, **kwargs) self.__data = None if operating_system.isGTK() or operating_system.isMac(): if operating_system.isGTK(): self.Bind(wx.EVT_KEY_DOWN, self.__on_key_down) self.Bind(wx.EVT_KILL_FOCUS, self.__on_kill_focus) self.__initial_value = self.GetValue() self.__undone_value = None def GetValue(self, *args, **kwargs): value = super(BaseTextCtrl, self).GetValue(*args, **kwargs) # Don't allow unicode control characters: return value.translate(UNICODE_CONTROL_CHARACTERS_TO_WEED) def SetValue(self, *args, **kwargs): super(BaseTextCtrl, self).SetValue(*args, **kwargs) if operating_system.isGTK() or operating_system.isMac(): self.__initial_value = self.GetValue() def AppendText(self, *args, **kwargs): super(BaseTextCtrl, self).AppendText(*args, **kwargs) if operating_system.isGTK() or operating_system.isMac(): self.__initial_value = self.GetValue() def SetData(self, data): self.__data = data def GetData(self): return self.__data def CanUndo(self): if operating_system.isMac(): return self.__can_undo() return super(BaseTextCtrl, self).CanUndo() def Undo(self): if operating_system.isMac(): self.__undo() else: super(BaseTextCtrl, self).Undo() def CanRedo(self): if operating_system.isMac(): return self.__can_redo() return super(BaseTextCtrl, self).CanRedo() def Redo(self): if operating_system.isMac(): self.__redo() else: super(BaseTextCtrl, self).Redo() def __on_key_down(self, event): ''' Check whether the user pressed Ctrl-Z (or Ctrl-Y) and if so, undo (or redo) the editing. ''' if self.__ctrl_z_pressed(event) and self.__can_undo(): self.__undo() elif self.__ctrl_y_pressed(event) and self.__can_redo(): self.__redo() else: event.Skip() @staticmethod def __ctrl_z_pressed(event): ''' Did the user press Ctrl-Z (for undo)? ''' return event.GetKeyCode() == ord('Z') and event.ControlDown() def __can_undo(self): ''' Is there a change to be undone? ''' return self.GetValue() != self.__initial_value def __undo(self): ''' Undo the last change. ''' insertion_point = self.GetInsertionPoint() self.__undone_value = self.GetValue() super(BaseTextCtrl, self).SetValue(self.__initial_value) insertion_point = min(insertion_point, self.GetLastPosition()) self.SetInsertionPoint(insertion_point) @staticmethod def __ctrl_y_pressed(event): ''' Did the user press Ctrl-Y (for redo)? ''' return event.GetKeyCode() == ord('Y') and event.ControlDown() def __can_redo(self): ''' Is there an undone change to be redone? ''' return self.__undone_value not in (self.GetValue(), None) def __redo(self): ''' Redo the last undone change. ''' insertion_point = self.GetInsertionPoint() super(BaseTextCtrl, self).SetValue(self.__undone_value) self.__undone_value = None insertion_point = min(insertion_point, self.GetLastPosition()) self.SetInsertionPoint(insertion_point) def __on_kill_focus(self, event): ''' Reset the edit history. ''' self.__initial_value = self.GetValue() self.__undone_value = None class SingleLineTextCtrl(BaseTextCtrl): pass class MultiLineTextCtrl(BaseTextCtrl): CheckSpelling = True def __init__(self, parent, text='', *args, **kwargs): kwargs['style'] = kwargs.get('style', 0) | wx.TE_MULTILINE if not i18n.currentLanguageIsRightToLeft(): # Using wx.TE_RICH will remove the RTL specific menu items # from the right-click menu in the TextCtrl, so we don't use # wx.TE_RICH if the language is RTL. kwargs['style'] |= wx.TE_RICH | wx.TE_AUTO_URL super(MultiLineTextCtrl, self).__init__(parent, *args, **kwargs) self.__initializeText(text) self.Bind(wx.EVT_TEXT_URL, self.onURLClicked) try: self.__webbrowser = webbrowser.get() except: self.__webbrowser = None self.MacCheckSpelling(self.CheckSpelling) def onURLClicked(self, event): mouseEvent = event.GetMouseEvent() if mouseEvent.ButtonDown() and self.__webbrowser: url = self.GetRange(event.GetURLStart(), event.GetURLEnd()) try: self.__webbrowser.open(url) except Exception, message: wx.MessageBox(unicode(message), i18n._('Error opening URL')) def __initializeText(self, text): self.AppendText(text) self.SetInsertionPoint(0) class StaticTextWithToolTip(wx.StaticText): def __init__(self, *args, **kwargs): super(StaticTextWithToolTip, self).__init__(*args, **kwargs) label = kwargs['label'] self.SetToolTip(wx.ToolTip(label)) taskcoach-1.4.3/taskcoachlib/widgets/timeline.py000066400000000000000000000057021265347643000217520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, operator from taskcoachlib.thirdparty.timeline import timeline import tooltip class Timeline(tooltip.ToolTipMixin, timeline.TimeLine): def __init__(self, parent, rootNode, onSelect, onEdit, popupMenu): self.__selection = [] self.getItemTooltipData = parent.getItemTooltipData super(Timeline, self).__init__(parent, model=rootNode, adapter=parent) self.__tip = tooltip.SimpleToolTip(self) self.selectCommand = onSelect self.Bind(timeline.EVT_TIMELINE_SELECTED, self.onSelect) self.editCommand = onEdit self.Bind(timeline.EVT_TIMELINE_ACTIVATED, self.onEdit) self.popupMenu = popupMenu self.Bind(wx.EVT_RIGHT_DOWN, self.onPopup) def RefreshAllItems(self, count): self.Refresh() def RefreshItems(self, *args): self.Refresh() def onSelect(self, event): if event.node == self.model: self.__selection = [] else: self.__selection = [event.node] wx.CallAfter(self.selectCommand) event.Skip() def select(self, items): pass def onEdit(self, event): self.editCommand(event.node) event.Skip() def OnBeforeShowToolTip(self, x, y): item = self.hot_map.findNodeAtPosition((x,y)) if item is None or item == self.model: return None tooltipData = self.getItemTooltipData(item) doShow = reduce(operator.__or__, map(bool, [data[1] for data in tooltipData]), False) if doShow: self.__tip.SetData(tooltipData) return self.__tip else: return None def onPopup(self, event): self.OnClickRelease(event) # Make sure the node is selected self.SetFocus() wx.CallAfter(self.PopupMenu, self.popupMenu) # Make sure the select event has been processed def curselection(self): return self.__selection def GetItemCount(self): return 0 def isAnyItemExpandable(self): return False isAnyItemCollapsable = isAnyItemExpandable def GetMainWindow(self): return self MainWindow = property(GetMainWindow) taskcoach-1.4.3/taskcoachlib/widgets/tooltip.py000066400000000000000000000237311265347643000216400ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system import wx import textwrap class ToolTipMixin(object): """Subclass this and override OnBeforeShowToolTip to provide dynamic tooltip over a control.""" def __init__(self, *args, **kwargs): self.__enabled = kwargs.pop('tooltipsEnabled', True) super(ToolTipMixin, self).__init__(*args, **kwargs) self.__timer = wx.Timer(self, wx.NewId()) self.__tip = None self.__position = (0, 0) self.__text = None self.__frozen = True self.GetMainWindow().Bind(wx.EVT_MOTION, self.__OnMotion) self.GetMainWindow().Bind(wx.EVT_LEAVE_WINDOW, self.__OnLeave) self.Bind(wx.EVT_TIMER, self.__OnTimer, id=self.__timer.GetId()) def SetToolTipsEnabled(self, enabled): self.__enabled = enabled def PopupMenu(self, menu): self.__frozen = False super(ToolTipMixin, self).PopupMenu(menu) self.__frozen = True def ShowTip(self, x, y): # Ensure we're not too big (in the Y direction anyway) for the # desktop display area. This doesn't work on Linux because # ClientDisplayRect() returns the whole display size, not # taking the taskbar into account... if self.__frozen: theDisplay = wx.Display(wx.Display.GetFromPoint(wx.Point(x, y))) displayX, displayY, displayWidth, displayHeight = theDisplay.GetClientArea() tipWidth, tipHeight = self.__tip.GetSizeTuple() if tipHeight > displayHeight: # Too big. Take as much space as possible. y = 5 tipHeight = displayHeight - 10 elif y + tipHeight > displayY + displayHeight: # Adjust y so that the whole tip is visible. y = displayY + displayHeight - tipHeight - 5 if tipWidth > displayWidth: x = 5 elif x + tipWidth > displayX + displayWidth: x = displayX + displayWidth - tipWidth - 5 self.__tip.Show(x, y, tipWidth, tipHeight) def DoShowTip(self, x, y, tip): self.__tip = tip self.ShowTip(x, y) def HideTip(self): if self.__tip: self.__tip.Hide() def OnBeforeShowToolTip(self, x, y): """Should return a wx.Frame instance that will be displayed as the tooltip, or None.""" raise NotImplementedError # pragma: no cover def __OnMotion(self, event): x, y = event.GetPosition() self.__timer.Stop() if self.__tip is not None: self.HideTip() self.__tip = None if self.__enabled: newTip = self.OnBeforeShowToolTip(x, y) if newTip is not None: self.__tip = newTip self.__tip.Bind(wx.EVT_MOTION, self.__OnTipMotion) self.__position = (x + 20, y + 10) self.__timer.Start(200, True) event.Skip() def __OnTipMotion(self, event): # pylint: disable=W0613 self.HideTip() def __OnLeave(self, event): self.__timer.Stop() if self.__tip is not None: self.HideTip() self.__tip = None event.Skip() def __OnTimer(self, event): # pylint: disable=W0613 self.ShowTip(*self.GetMainWindow().ClientToScreenXY(*self.__position)) if operating_system.isWindows(): class ToolTipBase(wx.MiniFrame): def __init__(self, parent): style = wx.FRAME_NO_TASKBAR | wx.FRAME_FLOAT_ON_PARENT | wx.NO_BORDER super(ToolTipBase, self).__init__(parent, wx.ID_ANY, 'Tooltip', style=style) def Show(self, x, y, w, h): # pylint: disable=W0221 self.SetDimensions(x, y, w, h) super(ToolTipBase, self).Show() elif operating_system.isMac(): class ToolTipBase(wx.Frame): def __init__(self, parent): # pylint: disable=E1003 style = wx.FRAME_NO_TASKBAR | wx.FRAME_FLOAT_ON_PARENT | wx.NO_BORDER super(ToolTipBase, self).__init__(parent, wx.ID_ANY, 'ToolTip', style=style) # There are some subtleties on Mac regarding multi-monitor # displays... self.__maxWidth, self.__maxHeight = 0, 0 for index in xrange(wx.Display.GetCount()): x, y, width, height = wx.Display(index).GetGeometry() self.__maxWidth = max(self.__maxWidth, x + width) self.__maxHeight = max(self.__maxHeight, y + height) self.MoveXY(self.__maxWidth, self.__maxHeight) super(ToolTipBase, self).Show() def Show(self, x, y, width, height): # pylint: disable=W0221 self.SetDimensions(x, y, width, height) def Hide(self): # pylint: disable=W0221 self.MoveXY(self.__maxWidth, self.__maxHeight) else: class ToolTipBase(wx.PopupWindow): def Show(self, x, y, width, height): # pylint: disable=E1003,W0221 self.SetDimensions(x, y, width, height) super(ToolTipBase, self).Show() class SimpleToolTip(ToolTipBase): def __init__(self, parent): super(SimpleToolTip, self).__init__(parent) self.data = [] self.Bind(wx.EVT_PAINT, self.OnPaint) def SetData(self, data): self.data = self._wrapLongLines(data) self.SetSize(self._calculateSize()) self.Refresh() # Needed on Mac OS X def _wrapLongLines(self, data): wrappedData = [] wrapper = textwrap.TextWrapper(width=78) for icon, lines in data: wrappedLines = [] for line in lines: wrappedLines.extend(wrapper.fill(line).split('\n')) wrappedData.append((icon, wrappedLines)) return wrappedData def _calculateSize(self): dc = wx.ClientDC(self) self._setFontBrushAndPen(dc) width, height = 0, 0 for sectionIndex in range(len(self.data)): sectionWidth, sectionHeight = self._calculateSectionSize(dc, sectionIndex) width = max(width, sectionWidth) height += sectionHeight return wx.Size(width + 6, height + 6) def _calculateSectionSize(self, dc, sectionIndex): icon, lines = self.data[sectionIndex] sectionWidth, sectionHeight = 0, 0 for line in lines: lineWidth, lineHeight = self._calculateLineSize(dc, line) sectionHeight += lineHeight + 1 sectionWidth = max(sectionWidth, lineWidth) if 0 < sectionIndex < len(self.data) - 1: sectionHeight += 3 # Horizontal space between sections if icon: sectionWidth += 24 # Reserve width for icon(s) return sectionWidth, sectionHeight def _calculateLineSize(self, dc, line): return dc.GetTextExtent(line) def OnPaint(self, event): # pylint: disable=W0613 dc = wx.PaintDC(self) dc.BeginDrawing() try: self._setFontBrushAndPen(dc) self._drawBorder(dc) self._drawSections(dc) finally: dc.EndDrawing() def _setFontBrushAndPen(self, dc): font = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) textColour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOTEXT) backgroundColour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOBK) dc.SetFont(font) dc.SetTextForeground(textColour) dc.SetBrush(wx.Brush(backgroundColour)) dc.SetPen(wx.Pen(textColour)) def _drawBorder(self, dc): width, height = self.GetClientSizeTuple() dc.DrawRectangle(0, 0, width, height) def _drawSections(self, dc): y = 3 for sectionIndex in range(len(self.data)): y = self._drawSection(dc, y, sectionIndex) def _drawSection(self, dc, y, sectionIndex): icon, lines = self.data[sectionIndex] if not lines: return y x = 3 if sectionIndex != 0: y = self._drawSectionSeparator(dc, x, y) if icon: x = self._drawIcon(dc, icon, x, y) topOfSection = y bottomOfSection = self._drawTextLines(dc, lines, x, y) if icon: self._drawIconSeparator(dc, x - 2, topOfSection, bottomOfSection) return bottomOfSection def _drawSectionSeparator(self, dc, x, y): y += 1 width = self.GetClientSizeTuple()[0] dc.DrawLine(x, y, width - x, y) return y + 2 def _drawIcon(self, dc, icon, x, y): bitmap = wx.ArtProvider.GetBitmap(icon, wx.ART_FRAME_ICON, (16, 16)) dc.DrawBitmap(bitmap, x, y, True) return 23 # New x def _drawTextLines(self, dc, textLines, x, y): for textLine in textLines: y = self._drawTextLine(dc, textLine, x, y) return y def _drawTextLine(self, dc, textLine, x, y): try: dc.DrawText(textLine, x, y) except: raise RuntimeError('Could not draw text %s' % repr(textLine)) textHeight = dc.GetTextExtent(textLine)[1] return y + textHeight + 1 def _drawIconSeparator(self, dc, x, top, bottom): ''' Draw a vertical line between the icon and the text. ''' dc.DrawLine(x, top, x, bottom) taskcoach-1.4.3/taskcoachlib/widgets/treectrl.py000066400000000000000000000602361265347643000217730ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import operating_system from taskcoachlib.thirdparty import customtreectrl as customtree, hypertreelist from taskcoachlib.widgets import itemctrl, draganddrop import wx # pylint: disable=E1101,E1103 class HyperTreeList(draganddrop.TreeCtrlDragAndDropMixin, hypertreelist.HyperTreeList): # pylint: disable=W0223 def __init__(self, *args, **kwargs): super(HyperTreeList, self).__init__(*args, **kwargs) if operating_system.isGTK(): self.Bind(wx.EVT_TREE_ITEM_COLLAPSED, self.__on_item_collapsed) def __on_item_collapsed(self, event): event.Skip() # On Ubuntu, when the user has scrolled to the bottom of the tree # and collapses an item, the tree is not redrawn correctly. Refreshing # solves this. See http://trac.wxwidgets.org/ticket/11704 wx.CallAfter(self.MainWindow.Refresh) def GetSelections(self): # pylint: disable=C0103 ''' If the root item is hidden, it should never be selected. Unfortunately, CustomTreeCtrl and HyperTreeList allow it to be selected. Override GetSelections to fix that. ''' selections = super(HyperTreeList, self).GetSelections() if self.HasFlag(wx.TR_HIDE_ROOT): root_item = self.GetRootItem() if root_item and root_item in selections: selections.remove(root_item) return selections def GetMainWindow(self, *args, **kwargs): # pylint: disable=C0103 ''' Have a local GetMainWindow so we can create a MainWindow property. ''' return super(HyperTreeList, self).GetMainWindow(*args, **kwargs) MainWindow = property(fget=GetMainWindow) def HitTest(self, point): # pylint: disable=W0221, C0103 ''' Always return a three-tuple (item, flags, column). ''' if type(point) == type(()): point = wx.Point(point[0], point[1]) hit_test_result = super(HyperTreeList, self).HitTest(point) if len(hit_test_result) == 2: hit_test_result += (0,) if hit_test_result[0] is None: hit_test_result = (wx.TreeItemId(),) + hit_test_result[1:] return hit_test_result def isClickablePartOfNodeClicked(self, event): ''' Return whether the user double clicked some part of the node that can also receive regular mouse clicks. ''' return self.__is_collapse_expand_button_clicked(event) def __is_collapse_expand_button_clicked(self, event): flags = self.HitTest(event.GetPosition())[1] return flags & wx.TREE_HITTEST_ONITEMBUTTON def select(self, selection): for item in self.GetItemChildren(recursively=True): self.SelectItem(item, self.GetItemPyData(item) in selection) def clear_selection(self): self.UnselectAll() self.selectCommand() def select_all(self): if self.GetItemCount() > 0: self.SelectAll() self.selectCommand() def isAnyItemCollapsable(self): for item in self.GetItemChildren(): if self.__is_item_collapsable(item): return True return False def isAnyItemExpandable(self): for item in self.GetItemChildren(): if self.__is_item_expandable(item): return True return False def __is_item_expandable(self, item): return self.ItemHasChildren(item) and not self.IsExpanded(item) def __is_item_collapsable(self, item): return self.ItemHasChildren(item) and self.IsExpanded(item) def IsLabelBeingEdited(self): return bool(self.GetLabelTextCtrl()) def StopEditing(self): if self.IsLabelBeingEdited(): self.GetLabelTextCtrl().StopEditing() def GetLabelTextCtrl(self): return self.GetMainWindow()._editCtrl # pylint: disable=W0212 def GetItemCount(self): root_item = self.GetRootItem() return self.GetChildrenCount(root_item, recursively=True) \ if root_item else 0 class TreeListCtrl(itemctrl.CtrlWithItemsMixin, itemctrl.CtrlWithColumnsMixin, itemctrl.CtrlWithToolTipMixin, HyperTreeList): # TreeListCtrl uses ALIGN_LEFT, ..., ListCtrl uses LIST_FORMAT_LEFT, ... for # specifying alignment of columns. This dictionary allows us to map from the # ListCtrl constants to the TreeListCtrl constants: alignmentMap = {wx.LIST_FORMAT_LEFT: wx.ALIGN_LEFT, wx.LIST_FORMAT_CENTRE: wx.ALIGN_CENTRE, wx.LIST_FORMAT_CENTER: wx.ALIGN_CENTER, wx.LIST_FORMAT_RIGHT: wx.ALIGN_RIGHT} ct_type = 0 def __init__(self, parent, columns, selectCommand, editCommand, dragAndDropCommand, itemPopupMenu=None, columnPopupMenu=None, *args, **kwargs): self.__adapter = parent self.__selection = [] self.__user_double_clicked = False self.__columns_with_images = [] self.__default_font = wx.NORMAL_FONT kwargs.setdefault('resizeableColumn', 0) super(TreeListCtrl, self).__init__(parent, style=self.__get_style(), agwStyle=self.__get_agw_style(), columns=columns, itemPopupMenu=itemPopupMenu, columnPopupMenu=columnPopupMenu, *args, **kwargs) self.bindEventHandlers(selectCommand, editCommand, dragAndDropCommand) def bindEventHandlers(self, selectCommand, editCommand, dragAndDropCommand): # pylint: disable=W0201 self.selectCommand = selectCommand self.editCommand = editCommand self.dragAndDropCommand = dragAndDropCommand self.Bind(wx.EVT_TREE_SEL_CHANGED, self.onSelect) self.Bind(wx.EVT_TREE_KEY_DOWN, self.onKeyDown) self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.onItemActivated) # We deal with double clicks ourselves, to prevent the default behaviour # of collapsing or expanding nodes on double click. self.GetMainWindow().Bind(wx.EVT_LEFT_DCLICK, self.onDoubleClick) self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.onBeginEdit) self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.onEndEdit) self.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.onItemExpanding) self.Bind(wx.EVT_SET_FOCUS, self.onSetFocus) def onSetFocus(self, event): # pylint: disable=W0613 # Send a child focus event to let the AuiManager know we received focus # so it will activate our pane wx.PostEvent(self._main_win, wx.ChildFocusEvent(self._main_win)) self.SetFocus() def getItemTooltipData(self, item): return self.__adapter.getItemTooltipData(item) def getItemCTType(self, item): # pylint: disable=W0613 return self.ct_type def curselection(self): return [self.GetItemPyData(item) for item in self.GetSelections()] def RefreshAllItems(self, count=0): # pylint: disable=W0613 self.Freeze() self.StopEditing() self.__selection = self.curselection() self.DeleteAllItems() self.__columns_with_images = [index for index in range(self.GetColumnCount()) if self.__adapter.hasColumnImages(index)] root_item = self.GetRootItem() if not root_item: root_item = self.AddRoot('Hidden root') self._addObjectRecursively(root_item) selections = self.GetSelections() if selections: self.GetMainWindow()._current = self.GetMainWindow()._key_current = selections[0] self.ScrollTo(selections[0]) self.Thaw() def RefreshItems(self, *objects): self.__selection = self.curselection() self._refreshTargetObjects(self.GetRootItem(), *objects) def _refreshTargetObjects(self, parent_item, *target_objects): child_item, cookie = self.GetFirstChild(parent_item) while child_item: item_object = self.GetItemPyData(child_item) if item_object in target_objects: self._refreshObjectCompletely(child_item, item_object) self._refreshTargetObjects(child_item, *target_objects) child_item, cookie = self.GetNextChild(parent_item, cookie) def _refreshObjectCompletely(self, item, *args): self.__refresh_aspects(('ItemType', 'Columns', 'Font', 'Colors', 'Selection'), item, check=True, *args) self.GetMainWindow().RefreshLine(item) def _addObjectRecursively(self, parent_item, parent_object=None): for child_object in self.__adapter.children(parent_object): child_item = self.AppendItem(parent_item, '', self.getItemCTType(child_object), data=child_object) self._refreshObjectMinimally(child_item, child_object) expanded = self.__adapter.getItemExpanded(child_object) if expanded: self._addObjectRecursively(child_item, child_object) # Call Expand on the item instead of on the tree # (self.Expand(childItem)) to prevent lots of events # (EVT_TREE_ITEM_EXPANDING/EXPANDED) being sent child_item.Expand() else: self.SetItemHasChildren(child_item, self.__adapter.children(child_object)) def _refreshObjectMinimally(self, *args, **kwargs): self.__refresh_aspects(('Columns', 'Colors', 'Font', 'Selection'), *args, **kwargs) def __refresh_aspects(self, aspects, *args, **kwargs): for aspect in aspects: refresh_aspect = getattr(self, '_refresh%s' % aspect) refresh_aspect(*args, **kwargs) def _refreshItemType(self, item, domain_object, check=False): ct_type = self.getItemCTType(domain_object) if not check or (check and ct_type != self.GetItemType(item)): self.SetItemType(item, ct_type) def _refreshColumns(self, item, domain_object, check=False): for column_index in range(self.GetColumnCount()): self._refreshColumn(item, domain_object, column_index, check=check) def _refreshColumn(self, item, domain_object, column_index, check=False): aspects = ('Text', 'Image') if column_index in self.__columns_with_images else ('Text',) self.__refresh_aspects(aspects, item, domain_object, column_index, check=check) def _refreshText(self, item, domain_object, column_index, check=False): text = self.__adapter.getItemText(domain_object, column_index) if text.count('\n') > 3: text = '\n'.join(text.split('\n')[:4]) + u' ...' if not check or (check and text != item.GetText(column_index)): item.SetText(column_index, text) def _refreshImage(self, item, domain_object, column_index, check=False): images = self.__adapter.getItemImages(domain_object, column_index) for which, image in images.items(): image = image if image >= 0 else -1 if not check or (check and image != item.GetImage(which, column_index)): item.SetImage(column_index, image, which) def _refreshColors(self, item, domain_object, check=False): bg_color = domain_object.backgroundColor(recursive=True) or wx.NullColour if not check or (check and bg_color != self.GetItemBackgroundColour(item)): self.SetItemBackgroundColour(item, bg_color) fg_color = domain_object.foregroundColor(recursive=True) or wx.NullColour if not check or (check and fg_color != self.GetItemTextColour(item)): self.SetItemTextColour(item, fg_color) def _refreshFont(self, item, domain_object, check=False): font = domain_object.font(recursive=True) or self.__default_font if not check or (check and font != self.GetItemFont(item)): self.SetItemFont(item, font) def _refreshSelection(self, item, domain_object, check=False): select = domain_object in self.__selection if not check or (check and select != item.IsSelected()): item.SetHilight(select) # Event handlers def onSelect(self, event): # Use CallAfter to prevent handling the select while items are # being deleted: wx.CallAfter(self.selectCommand) event.Skip() def onKeyDown(self, event): if event.GetKeyCode() == wx.WXK_RETURN: self.editCommand(event) elif event.GetKeyCode() == wx.WXK_F2 and self.GetSelections(): self.EditLabel(self.GetSelections()[0], column=0) else: event.Skip() def OnDrop(self, drop_item, drag_items, part, column): drop_item = None if drop_item == self.GetRootItem() else \ self.GetItemPyData(drop_item) drag_items = list(self.GetItemPyData(drag_item) for drag_item in drag_items) wx.CallAfter(self.dragAndDropCommand, drop_item, drag_items, part, column) def onItemExpanding(self, event): event.Skip() item = event.GetItem() if self.GetChildrenCount(item, recursively=False) == 0: domain_object = self.GetItemPyData(item) self._addObjectRecursively(item, domain_object) def onDoubleClick(self, event): self.__user_double_clicked = True if self.isClickablePartOfNodeClicked(event): event.Skip(False) else: self.onItemActivated(event) def onItemActivated(self, event): ''' Attach the column clicked on to the event so we can use it elsewhere. ''' column_index = self.__column_under_mouse() if column_index >= 0: event.columnName = self._getColumn(column_index).name() self.editCommand(event) event.Skip(False) def __column_under_mouse(self): mouse_position = self.GetMainWindow().ScreenToClient(wx.GetMousePosition()) item, _, column = self.HitTest(mouse_position) if item: # Only get the column name if the hittest returned an item, # otherwise the item was activated from the menu or by double # clicking on a portion of the tree view not containing an item. return max(0, column) # FIXME: Why can the column be -1? else: return -1 # Inline editing def onBeginEdit(self, event): if self.__user_double_clicked: event.Veto() self.__user_double_clicked = False elif self.IsLabelBeingEdited(): # Don't start editing another label when the user is still editing # a label. This prevents left-over text controls in the tree. event.Veto() else: event.Skip() def onEndEdit(self, event): if event._editCancelled: # pylint: disable=W0212 event.Skip() return event.Veto() # Let us update the tree domain_object = self.GetItemPyData(event.GetItem()) new_value = event.GetLabel() column = self._getColumn(event.GetInt()) column.onEndEdit(domain_object, new_value) def CreateEditCtrl(self, item, column_index): column = self._getColumn(column_index) domain_object = self.GetItemPyData(item) return column.editControl(self.GetMainWindow(), item, column_index, domain_object) # Override CtrlWithColumnsMixin with TreeListCtrl specific behaviour: def _setColumns(self, *args, **kwargs): super(TreeListCtrl, self)._setColumns(*args, **kwargs) self.SetMainColumn(0) for column_index in range(self.GetColumnCount()): self.SetColumnEditable(column_index, self._getColumn(column_index).isEditable()) # Extend TreeMixin with TreeListCtrl specific behaviour: @staticmethod def __get_style(): return wx.WANTS_CHARS @staticmethod def __get_agw_style(): agw_style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_MULTIPLE \ | wx.TR_EDIT_LABELS | wx.TR_HAS_BUTTONS | wx.TR_FULL_ROW_HIGHLIGHT \ | customtree.TR_HAS_VARIABLE_ROW_HEIGHT if operating_system.isMac(): agw_style |= wx.TR_NO_LINES agw_style &= ~hypertreelist.TR_NO_HEADER return agw_style # pylint: disable=W0221 def DeleteColumn(self, column_index): self.RemoveColumn(column_index) def InsertColumn(self, column_index, column_header, *args, **kwargs): alignment = self.alignmentMap[kwargs.pop('format', wx.LIST_FORMAT_LEFT)] if column_index == self.GetColumnCount(): self.AddColumn(column_header, *args, **kwargs) else: super(TreeListCtrl, self).InsertColumn(column_index, column_header, *args, **kwargs) self.SetColumnAlignment(column_index, alignment) self.SetColumnEditable(column_index, self._getColumn(column_index).isEditable()) def showColumn(self, *args, **kwargs): ''' Stop editing before we hide or show a column to prevent problems redrawing the tree list control contents. ''' self.StopEditing() super(TreeListCtrl, self).showColumn(*args, **kwargs) class CheckTreeCtrl(TreeListCtrl): def __init__(self, parent, columns, selectCommand, checkCommand, editCommand, dragAndDropCommand, itemPopupMenu=None, *args, **kwargs): self.__checking = False super(CheckTreeCtrl, self).__init__(parent, columns, selectCommand, editCommand, dragAndDropCommand, itemPopupMenu, *args, **kwargs) self.checkCommand = checkCommand self.Bind(customtree.EVT_TREE_ITEM_CHECKED, self.onItemChecked) self.GetMainWindow().Bind(wx.EVT_LEFT_DOWN, self.onMouseLeftDown) self.getIsItemCheckable = parent.getIsItemCheckable if hasattr(parent, 'getIsItemCheckable') else lambda item: True self.getIsItemChecked = parent.getIsItemChecked self.getItemParentHasExclusiveChildren = parent.getItemParentHasExclusiveChildren def getItemCTType(self, domain_object): ''' Use radio buttons (ct_type == 2) when the object has "exclusive" children, meaning that only one child can be checked at a time. Use check boxes (ct_type == 1) otherwise. ''' if self.getIsItemCheckable(domain_object): return 2 if self.getItemParentHasExclusiveChildren(domain_object) else 1 else: return 0 def CheckItem(self, item, checked=True): if self.GetItemType(item) == 2: # Use UnCheckRadioParent because CheckItem always keeps at least # one item selected, which we don't want to enforce self.UnCheckRadioParent(item, checked) else: super(CheckTreeCtrl, self).CheckItem(item, checked) def onMouseLeftDown(self, event): ''' By default, the HyperTreeList widget doesn't allow for unchecking a radio item. Since we do want to support unchecking a radio item, we look for mouse left down and uncheck the item and all of its children if the user clicks on an already selected radio item. ''' position = self.GetMainWindow().CalcUnscrolledPosition(event.GetPosition()) item, flags, dummy_column = self.HitTest(position) if item and item.GetType() == 2 and \ (flags & customtree.TREE_HITTEST_ONITEMCHECKICON) and \ self.IsItemChecked(item): self.__uncheck_item_recursively(item) else: event.Skip() def __uncheck_item_recursively(self, item, parent_is_expanded=True, disable_item=False): if item.GetType(): self.__uncheck_item(item, torefresh=parent_is_expanded) if disable_item: self.EnableItem(item, False, torefresh=parent_is_expanded) parent_is_expanded = item.IsExpanded() child, cookie = self.GetFirstChild(item) while child: self.__uncheck_item_recursively(child, parent_is_expanded, disable_item=True) child, cookie = self.GetNextChild(item, cookie) def __uncheck_item(self, item, torefresh): self.GetMainWindow().CheckItem2(item, checked=False, torefresh=torefresh) event = customtree.TreeEvent(customtree.wxEVT_TREE_ITEM_CHECKED, self.GetId()) event.SetItem(item) event.SetEventObject(self) self.GetEventHandler().ProcessEvent(event) def _refreshObjectCompletely(self, item, domain_object): super(CheckTreeCtrl, self)._refreshObjectCompletely(item, domain_object) self._refreshCheckState(item, domain_object) def _refreshObjectMinimally(self, item, domain_object): super(CheckTreeCtrl, self)._refreshObjectMinimally(item, domain_object) self._refreshCheckState(item, domain_object) def _refreshCheckState(self, item, domain_object): # Use CheckItem2 so no events get sent: self.CheckItem2(item, self.getIsItemChecked(domain_object)) parent = item.GetParent() while parent: if self.GetItemType(parent) == 2: self.EnableItem(item, self.IsItemChecked(parent)) break parent = parent.GetParent() def onItemChecked(self, event): if self.__checking: # Ignore checked events while we're making the tree consistent, # only invoke the callback: self.checkCommand(event, final=False) return self.__checking = True item = event.GetItem() # Uncheck mutually exclusive children: for child in self.GetItemChildren(item): if self.GetItemType(child) == 2: self.CheckItem(child, False) # Recursively uncheck children of mutually exclusive children: for grandchild in self.GetItemChildren(child, recursively=True): self.CheckItem(grandchild, False) # If this item is mutually exclusive, recursively uncheck siblings # and parent: parent = item.GetParent() if parent and self.GetItemType(item) == 2: for child in self.GetItemChildren(parent): if child == item: continue self.CheckItem(child, False) for grandchild in self.GetItemChildren(child, recursively=True): self.CheckItem(grandchild, False) if self.GetItemType(parent) != 2: self.CheckItem(parent, False) self.__checking = False self.checkCommand(event, final=True) def onItemActivated(self, event): if self.__is_double_clicked(event): # Invoke super.onItemActivated to edit the item super(CheckTreeCtrl, self).onItemActivated(event) else: # Item is activated, let another event handler deal with the event event.Skip() @staticmethod def __is_double_clicked(event): return hasattr(event, 'LeftDClick') and event.LeftDClick() taskcoach-1.4.3/taskcoachlib/widgets/wxevents.py000066400000000000000000001047111265347643000220270ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2014 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import datetime import math wxEVT_EVENT_SELECTION_CHANGED = wx.NewEventType() EVT_EVENT_SELECTION_CHANGED = wx.PyEventBinder(wxEVT_EVENT_SELECTION_CHANGED) wxEVT_EVENT_DATES_CHANGED = wx.NewEventType() EVT_EVENT_DATES_CHANGED = wx.PyEventBinder(wxEVT_EVENT_DATES_CHANGED) class _HitResult(object): HIT_START = 0 HIT_IN = 1 HIT_END = 2 def __init__(self, x, y, event, dateTime): self.x, self.y = x, y self.event = event self.dateTime = dateTime self.position = self.HIT_IN class _Watermark(object): def __init__(self): self.__values = [] def height(self, start, end): r = 0 for (ints, inte, h) in self.__values: if not (end < ints or start >= inte): r = max(r, h) return r def totalHeight(self): return max([h for ints, inte, h in self.__values]) if self.__values else 0 def add(self, start, end, h): self.__values.append((start, end, h)) def total_seconds(td): # Method new in 2.7 return (1.0 * td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6 def shortenText(gc, text, maxW): shortText = text idx = len(text) // 2 while True: w, h = gc.GetTextExtent(shortText) if w <= maxW: return shortText idx -= 1 if idx == 0: return u'\u2026' shortText = text[:idx] + u'\u2026' + text[-idx:] class CalendarCanvas(wx.Panel): _gradVal = 0.2 MS_IDLE = 0 MS_HOVER_LEFT = 1 MS_HOVER_RIGHT = 2 MS_DRAG_LEFT = 3 MS_DRAG_RIGHT = 4 MS_DRAG_START = 5 MS_DRAGGING = 6 def __init__(self, parent, start=None, end=None): self._start = start or datetime.datetime.combine(datetime.datetime.now().date(), datetime.time(0, 0, 0)) self._end = end or self._start + datetime.timedelta(days=7) super(CalendarCanvas, self).__init__(parent, wx.ID_ANY, style=wx.FULL_REPAINT_ON_RESIZE) self._coords = dict() # Event => (startIdx, endIdx, startIdxRecursive, endIdxRecursive, yMin, yMax) self._maxIndex = 0 self._minSize = (0, 0) # Drawing attributes self._precision = 1 # Minutes self._gridSize = 15 # Minutes self._eventHeight = 32.0 self._eventWidthMin = 0.1 self._eventWidth = 0.1 self._margin = 5.0 self._marginTop = 22.0 self._outlineColorDark = wx.Colour(180, 180, 180) self._outlineColorLight = wx.Colour(210, 210, 210) self._headerSpans = [] self._daySpans = [] self._selection = set() self._mouseState = self.MS_IDLE self._mouseOrigin = None self._mouseDragPos = None self._todayColor = wx.Colour(0, 0, 128) self._hScroll = wx.ScrollBar(self, wx.ID_ANY, style=wx.SB_HORIZONTAL) self._vScroll = wx.ScrollBar(self, wx.ID_ANY, style=wx.SB_VERTICAL) self._hScroll.Hide() self._vScroll.Hide() wx.EVT_SCROLL(self._hScroll, self._OnScroll) wx.EVT_SCROLL(self._vScroll, self._OnScroll) wx.EVT_PAINT(self, self._OnPaint) wx.EVT_SIZE(self, self._OnResize) wx.EVT_LEFT_DOWN(self, self._OnLeftDown) wx.EVT_LEFT_UP(self, self._OnLeftUp) wx.EVT_RIGHT_DOWN(self, self._OnRightDown) wx.EVT_MOTION(self, self._OnMotion) self._Invalidate() # Methods to override def IsWorked(self, date): return not date.isoweekday() in [6, 7] def FormatDateTime(self, dateTime): return dateTime.strftime('%A') def GetRootEvents(self): return list() def GetStart(self, event): raise NotImplementedError def GetEnd(self, event): raise NotImplementedError def GetText(self, event): raise NotImplementedError def GetChildren(self, event): raise NotImplementedError def GetBackgroundColor(self, event): raise NotImplementedError def GetForegroundColor(self, event): raise NotImplementedError def GetProgress(self, event): raise NotImplementedError def GetIcons(self, event): raise NotImplementedError def GetFont(self, event): raise NotImplementedError # Get/Set def GetPrecision(self): return self._precision def SetPrecision(self, precision): self._precision = precision self._Invalidate() self.Refresh() def GetEventHeight(self): return self._eventHeight def SetEventHeight(self, height): self._eventHeight = 1.0 * height self._Invalidate() self.Refresh() def GetEventWidth(self): return self._eventWidthMin def SetEventWidth(self, width): self._eventWidthMin = width self._Invalidate() self.Refresh() def GetMargin(self): return self._margin def SetMargin(self, margin): self._margin = 1.0 * margin self._Invalidate() self.Refresh() def OutlineColorDark(self): return self._outlineColorDark def SetOutlineColorDark(self, color): self._outlineColorDark = color self.Refresh() def OutlineColorLight(self): return self._outlineColorLight def SetOutlineColorLight(self, color): self._outlineColorLight = color self.Refresh() def TodayColor(self): return self._todayColor def SetTodayColor(self, color): self._todayColor = color self.Refresh() def ViewSpan(self): return (self._start, self._end) def SetViewSpan(self, start, end): self._start = start self._end = end self._Invalidate() self.Refresh() def Selection(self): return self._selection def Select(self, events): self._selection = set(events) & set(self._coords.keys()) e = wx.PyCommandEvent(wxEVT_EVENT_SELECTION_CHANGED) e.selection = set(self._selection) e.SetEventObject(self) self.ProcessEvent(e) self.Refresh() def HitTest(self, x, y): w, h = self.GetClientSizeTuple() if y <= self._marginTop: return None if self._hScroll.IsShown(): h -= self._hScroll.GetClientSizeTuple()[1] if y >= h: return None if self._vScroll.IsShown(): w -= self._vScroll.GetClientSizeTuple()[0] if x >= w: return None if self._hScroll.IsShown(): x += self._hScroll.GetThumbPosition() if self._vScroll.IsShown(): y += self._vScroll.GetThumbPosition() xIndex = int(x / self._eventWidth) yIndex = int((y - self._marginTop) / (self._eventHeight + self._margin)) dateTime = self._start + datetime.timedelta(minutes=self._precision * xIndex) for event, (startIndex, endIndex, startIndexRecursive, endIndexRecursive, yMin, yMax) in self._coords.items(): if xIndex >= startIndexRecursive and xIndex < endIndexRecursive and yIndex >= yMin and yIndex < yMax: # May be a child children = [] self._Flatten(event, children) for candidate in reversed(children): if candidate in self._coords: si, ei, sir, eir, ymin, ymax = self._coords[candidate] if si is not None and abs(x - si * self._eventWidth) <= self._margin and yIndex >= ymin and yIndex < ymax: result = _HitResult(x, y, candidate, dateTime) result.position = result.HIT_START return result if ei is not None and abs(x - ei * self._eventWidth) <= self._margin and yIndex >= ymin and yIndex < ymax: result = _HitResult(x, y, candidate, dateTime) result.position = result.HIT_END return result if xIndex >= sir and xIndex < eir and yIndex >= ymin and yIndex < ymax: result = _HitResult(x, y, candidate, dateTime) result.position = result.HIT_IN return result # Since the list contains at least 'event'... assert 0 # We didn't hit any event. result = _HitResult(x, y, None, dateTime) return result def _Flatten(self, event, result): result.append(event) for child in self.GetChildren(event): self._Flatten(child, result) def _DrawEvent(self, gc, event): if event in self._coords: startIndex, endIndex, startIndexRecursive, endIndexRecursive, yMin, yMax = self._coords[event] if self.GetChildren(event): self._DrawParent(gc, startIndex, endIndex, startIndexRecursive, endIndexRecursive, yMin, yMax, event, self._eventWidth) else: self._DrawLeaf(gc, startIndex, endIndex, yMin, yMax, event, self._eventWidth) for child in self.GetChildren(event): self._DrawEvent(gc, child) def _OnPaint(self, event): w, h = self.GetClientSizeTuple() vw = max(w, self._minSize[0]) vh = max(h, self._minSize[1]) dx = dy = 0 if self._hScroll.IsShown(): vh -= self._hScroll.GetClientSizeTuple()[1] dx = self._hScroll.GetThumbPosition() if self._vScroll.IsShown(): vw -= self._vScroll.GetClientSizeTuple()[0] dy = self._vScroll.GetThumbPosition() bmp = wx.EmptyBitmap(vw, vh) memDC = wx.MemoryDC() memDC.SelectObject(bmp) try: memDC.SetBackground(wx.WHITE_BRUSH) memDC.Clear() gc = wx.GraphicsContext.Create(memDC) self._Draw(gc, vw, vh, dx, dy) dc = wx.PaintDC(self) dc.Blit(0, 0, vw, vh, memDC, 0, 0) finally: memDC.SelectObject(wx.NullBitmap) def _Draw(self, gc, vw, vh, dx, dy): gc.PushState() try: gc.Translate(-dx, 0.0) self._DrawHeader(gc, vw, vh) finally: gc.PopState() gc.PushState() try: gc.Translate(-dx, -dy) gc.Clip(0, self._marginTop + dy, vw, vh) for event in self.GetRootEvents(): self._DrawEvent(gc, event) self._DrawNow(gc, vh + dy) self._DrawDragImage(gc) finally: gc.PopState() def _DrawHeader(self, gc, w, h): gc.SetPen(wx.Pen(self._outlineColorDark)) for startIndex, endIndex in self._daySpans: date = (self._start + datetime.timedelta(minutes=self._precision * startIndex)).date() x0 = startIndex * self._eventWidth x1 = endIndex * self._eventWidth if date == datetime.datetime.now().date(): gc.SetBrush(self._Gradient(gc, self._todayColor, x0, self._marginTop, x1 - x0, h)) elif self.IsWorked(date): gc.SetBrush(wx.WHITE_BRUSH) else: gc.SetBrush(self._Gradient(gc, self._outlineColorDark, x0, self._marginTop, x1 - x0, h)) gc.DrawRectangle(x0, self._marginTop, x1 - x0, h) gc.SetFont(wx.NORMAL_FONT, wx.BLACK) gc.SetPen(wx.Pen(self._outlineColorDark)) for startIndex, endIndex in self._headerSpans: x0 = startIndex * self._eventWidth x1 = endIndex * self._eventWidth gc.SetBrush(self._Gradient(gc, self._outlineColorLight, x0, 0, x1 - x0, self._marginTop - 2.0)) gc.DrawRectangle(x0, 0, x1 - x0, self._marginTop - 2.0) text = shortenText(gc, self.FormatDateTime(self._start + datetime.timedelta(minutes=self._precision * startIndex)), x1 - x0) tw, th = gc.GetTextExtent(text) gc.DrawText(text, x0 + (x1 - x0 - tw) / 2, (self._marginTop - 2.0 - th) / 2) def _DrawNow(self, gc, h): now = datetime.datetime.now() x = int((now - self._start).total_seconds() / 60.0 / self._precision * self._eventWidth) - 0.5 gc.SetPen(wx.Pen(wx.Colour(0, 128, 0))) gc.SetBrush(wx.Brush(wx.Colour(0, 128, 0))) path = gc.CreatePath() path.MoveToPoint(x - 4.0, self._marginTop) path.AddLineToPoint(x + 4.0, self._marginTop) path.AddLineToPoint(x, self._marginTop + 4.0) path.AddLineToPoint(x, h + self._marginTop) path.AddLineToPoint(x, self._marginTop + 4.0) path.CloseSubpath() gc.DrawPath(path) def _DrawDragImage(self, gc): if self._mouseDragPos is not None: if self._mouseState in [self.MS_DRAG_LEFT, self.MS_DRAG_RIGHT]: d1 = self._mouseDragPos d2 = self.GetEnd(self._mouseOrigin.event) if self._mouseState == self.MS_DRAG_LEFT else self.GetStart(self._mouseOrigin.event) d1, d2 = min(d1, d2), max(d1, d2) x0 = int(total_seconds(d1 - self._start) / 60 / self._precision) * self._eventWidth x1 = int(total_seconds(d2 - self._start) / 60 / self._precision) * self._eventWidth y0 = self._coords[self._mouseOrigin.event][4] * (self._eventHeight + self._margin) + self._marginTop y1 = self._coords[self._mouseOrigin.event][5] * (self._eventHeight + self._margin) + self._marginTop - self._margin gc.SetBrush(wx.Brush(wx.Colour(0, 0, 128, 128))) gc.DrawRoundedRectangle(x0, y0, x1 - x0, y1 - y0, 5.0) gc.SetFont(wx.NORMAL_FONT, wx.RED) text = self._mouseDragPos.strftime('%c') tw, th = gc.GetTextExtent(text) if self._mouseState == self.MS_DRAG_LEFT: tx = x0 + self._margin elif self._mouseState == self.MS_DRAG_RIGHT: tx = x1 - self._margin - tw ty = y0 + (y1 - y0 - th) / 2 gc.DrawText(text, tx, ty) elif self._mouseState == self.MS_DRAGGING: x0 = int(total_seconds(self._mouseDragPos - self._start) / 60 / self._precision) * self._eventWidth x1 = int(total_seconds(self._mouseDragPos + (self.GetEnd(self._mouseOrigin.event) - self.GetStart(self._mouseOrigin.event)) - self._start) / 60 / self._precision) * self._eventWidth y0 = self._coords[self._mouseOrigin.event][4] * (self._eventHeight + self._margin) + self._marginTop y1 = self._coords[self._mouseOrigin.event][5] * (self._eventHeight + self._margin) + self._marginTop - self._margin gc.SetBrush(wx.Brush(wx.Colour(0, 0, 128, 128))) gc.DrawRoundedRectangle(x0, y0, x1 - x0, y1 - y0, 5.0) gc.SetFont(wx.NORMAL_FONT, wx.RED) text = u'%s -> %s' % (self._mouseDragPos.strftime('%c'), (self._mouseDragPos + (self.GetEnd(self._mouseOrigin.event) - self.GetStart(self._mouseOrigin.event))).strftime('%c')) tw, th = gc.GetTextExtent(text) gc.DrawText(text, x0 + (x1 - x0 - tw) / 2, y0 + (y1 - y0 - th) / 2) def _GetCursorDate(self): x, y = self.ScreenToClientXY(*wx.GetMousePosition()) if self._hScroll.IsShown(): x += self._hScroll.GetThumbPosition() return self._start + datetime.timedelta(minutes=int(self._precision * x / self._eventWidth)) def _OnResize(self, event=None): if event is None: w, h = self.GetClientSizeTuple() else: w, h = event.GetSize() _, hh = self._hScroll.GetClientSizeTuple() vw, _ = self._vScroll.GetClientSizeTuple() self._hScroll.SetDimensions(0, h - hh, w - vw, hh) self._vScroll.SetDimensions(w - vw, self._marginTop, vw, h - hh - self._marginTop) minW, minH = self._minSize # Not perfect, but it will do. if w - vw < minW: self._hScroll.SetScrollbar(self._hScroll.GetThumbPosition(), w - vw, minW, w - vw, True) self._hScroll.Show() h -= hh else: self._hScroll.Hide() if h - hh - self._marginTop < minH: self._vScroll.SetScrollbar(self._vScroll.GetThumbPosition(), h - hh - self._marginTop, minH, h - hh - self._marginTop, True) self._vScroll.Show() w -= vw else: self._vScroll.Hide() self._eventWidth = max(self._eventWidthMin, 1.0 * max(w, minW) / self._maxIndex) if event is not None: event.Skip() def _OnLeftDown(self, event): result = self.HitTest(event.GetX(), event.GetY()) if result is None: return if self._mouseState == self.MS_IDLE: changed = False if result.event is None: if self._selection: changed = True self._selection = set() self.Refresh() else: if event.ShiftDown(): events = [] self._Flatten(result.event, events) else: events = [result.event] events = set(events) & set(self._coords.keys()) if event.CmdDown(): for e in events: if e in self._selection: self._selection.remove(e) changed = True else: self._selection.add(e) changed = True else: if self._selection != events: changed = True self._selection = events if result.position == result.HIT_IN: self._mouseOrigin = result self._mouseState = self.MS_DRAG_START self.Refresh() if changed: e = wx.PyCommandEvent(wxEVT_EVENT_SELECTION_CHANGED) e.selection = set(self._selection) e.SetEventObject(self) self.ProcessEvent(e) elif self._mouseState in [self.MS_HOVER_LEFT, self.MS_HOVER_RIGHT]: self.CaptureMouse() self._mouseState += self.MS_DRAG_LEFT - self.MS_HOVER_LEFT def _OnLeftUp(self, event): if self._mouseState in [self.MS_DRAG_LEFT, self.MS_DRAG_RIGHT]: self.ReleaseMouse() wx.SetCursor(wx.NullCursor) e = wx.PyCommandEvent(wxEVT_EVENT_DATES_CHANGED) e.event = self._mouseOrigin.event e.start = self._mouseDragPos if self._mouseState == self.MS_DRAG_LEFT else self.GetStart(self._mouseOrigin.event) e.end = self._mouseDragPos if self._mouseState == self.MS_DRAG_RIGHT else self.GetEnd(self._mouseOrigin.event) e.SetEventObject(self) self.ProcessEvent(e) elif self._mouseState == self.MS_DRAGGING: self.ReleaseMouse() wx.SetCursor(wx.NullCursor) e = wx.PyCommandEvent(wxEVT_EVENT_DATES_CHANGED) e.event = self._mouseOrigin.event e.start = self._mouseDragPos e.end = e.start + (self.GetEnd(self._mouseOrigin.event) - self.GetStart(self._mouseOrigin.event)) e.SetEventObject(self) self.ProcessEvent(e) self._mouseState = self.MS_IDLE self._mouseOrigin = None self._mouseDragPos = None self.Refresh() def _OnRightDown(self, event): result = self.HitTest(event.GetX(), event.GetY()) if result is None: return changed = False if result.event is None: if self._selection: self._selection = set() changed = True self.Refresh() else: if result.event not in self._selection: self._selection = set([result.event]) changed = True self.Refresh() if changed: e = wx.PyCommandEvent(wxEVT_EVENT_SELECTION_CHANGED) e.selection = set(self._selection) e.SetEventObject(self) self.ProcessEvent(e) def _OnMotion(self, event): result = self.HitTest(event.GetX(), event.GetY()) if result is not None: if self._mouseState == self.MS_IDLE: if result.event is not None and result.position in [result.HIT_START, result.HIT_END]: self._mouseOrigin = result self._mouseState = self.MS_HOVER_LEFT if result.position == result.HIT_START else self.MS_HOVER_RIGHT wx.SetCursor(wx.StockCursor(wx.CURSOR_SIZEWE)) elif self._mouseState in [self.MS_HOVER_LEFT, self.MS_HOVER_RIGHT]: if result.event is None or result.position not in [result.HIT_START, result.HIT_END]: self._mouseOrigin = None self._mouseDragPos = None self._mouseState = self.MS_IDLE wx.SetCursor(wx.NullCursor) if self._mouseState in [self.MS_DRAG_LEFT, self.MS_DRAG_RIGHT]: dateTime = self._GetCursorDate() precision = self._gridSize if event.ShiftDown() else self._precision if self._mouseState == self.MS_DRAG_LEFT: dateTime = self._start + datetime.timedelta(seconds=math.floor(total_seconds(dateTime - self._start) / 60 / precision) * precision * 60) dateTime = min(self.GetEnd(self._mouseOrigin.event) - datetime.timedelta(minutes=precision), dateTime) if self._mouseState == self.MS_DRAG_RIGHT: dateTime = self._start + datetime.timedelta(seconds=math.ceil(total_seconds(dateTime - self._start) / 60 / precision) * precision * 60) dateTime = max(self.GetStart(self._mouseOrigin.event) + datetime.timedelta(minutes=precision), dateTime) self._mouseDragPos = dateTime self.Refresh() elif self._mouseState == self.MS_DRAG_START: if self.GetStart(self._mouseOrigin.event) is not None and self.GetEnd(self._mouseOrigin.event) is not None: dx = abs(event.GetX() - self._mouseOrigin.x) dy = abs(event.GetY() - self._mouseOrigin.y) if dx > wx.SystemSettings.GetMetric(wx.SYS_DRAG_X) / 2 or dy > wx.SystemSettings.GetMetric(wx.SYS_DRAG_Y) / 2: self.CaptureMouse() wx.SetCursor(wx.StockCursor(wx.CURSOR_HAND)) self._mouseState = self.MS_DRAGGING self.Refresh() elif self._mouseState == self.MS_DRAGGING: dx = event.GetX() - self._mouseOrigin.x precision = self._gridSize if event.ShiftDown() else self._precision delta = datetime.timedelta(minutes=math.floor(dx / self._eventWidth * self._precision / precision) * precision) self._mouseDragPos = self.GetStart(self._mouseOrigin.event) + delta self.Refresh() def _OnScroll(self, event): self.Refresh() event.Skip() def _Gradient(self, gc, color, x, y, w, h): r = color.Red() g = color.Green() b = color.Blue() return gc.CreateLinearGradientBrush(x, y, x + w, y + h, color, wx.Colour(int(self._gradVal * r + (1.0 - self._gradVal) * 255), int(self._gradVal * g + (1.0 - self._gradVal) * 255), int(self._gradVal * b + (1.0 - self._gradVal) * 255))) def _DrawParent(self, gc, startIndex, endIndex, startIndexRecursive, endIndexRecursive, y, yMax, event, w): x0 = startIndexRecursive * w x1 = endIndexRecursive * w - 1.0 y0 = y * (self._eventHeight + self._margin) + self._marginTop y1 = y0 + self._eventHeight y2 = yMax * (self._eventHeight + self._margin) + self._marginTop - self._margin color = self.GetBackgroundColor(event) # Overall box self._DrawBox(gc, event, x0 - self._margin / 3, y0 - self._margin / 3, x1 + self._margin / 3, y2 + self._margin / 3, wx.Colour(int((color.Red() + self._outlineColorLight[0]) / 2), int((color.Green() + self._outlineColorLight[1]) / 2), int((color.Blue() + self._outlineColorLight[2]) / 2))) if startIndex is not None: x0 = startIndex * w if endIndex is not None: x1 = endIndex * w - 1.0 # Span path = gc.CreatePath() delta = self._eventHeight / 4 path.MoveToPoint(x0, y0) path.AddLineToPoint(x1, y0) path.AddLineToPoint(x1, y1 - delta) path.AddLineToPoint(x1 - delta, y1) path.AddLineToPoint(x1 - 2 * delta, y1 - delta) path.AddLineToPoint(x0 + 2 * delta, y1 - delta) path.AddLineToPoint(x0 + delta, y1) path.AddLineToPoint(x0, y1 - delta) path.CloseSubpath() gc.SetBrush(self._Gradient(gc, color, x0, y0, x1 - x0, y1 - y0)) gc.FillPath(path) gc.SetPen(wx.Pen(wx.Colour(*self._outlineColorDark))) gc.DrawPath(path) x0 = max(0.0, x0) x1 = min(self._maxIndex * self._eventWidth, x1) # Progress x0, y0, x1, y1 = self._DrawProgress(gc, event, x0, y0, x1, y1) y1 -= delta # Text & icons x0, y0, x1, y1 = self._DrawIcons(gc, event, x0, y0, x1, y1) self._DrawText(gc, event, x0, y0, x1, y1) def _DrawLeaf(self, gc, startIndex, endIndex, yMin, yMax, event, w): x0 = startIndex * w x1 = endIndex * w - 1.0 y0 = yMin * (self._eventHeight + self._margin) + self._marginTop y1 = yMax * (self._eventHeight + self._margin) + self._marginTop - self._margin # Box self._DrawBox(gc, event, x0, y0, x1, y1, self.GetBackgroundColor(event)) x0 = max(0.0, x0) x1 = min(self._maxIndex * self._eventWidth, x1) # Progress x0, y0, x1, y1 = self._DrawProgress(gc, event, x0, y0, x1, y1) # Text & icons x0, y0, x1, y1 = self._DrawIcons(gc, event, x0, y0, x1, y1) self._DrawText(gc, event, x0, y0, x1, y1) def _DrawBox(self, gc, event, x0, y0, x1, y1, color): outline = wx.Colour(*self._outlineColorLight) if event in self._selection: outline = wx.BLUE color = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT) path = gc.CreatePath() path.AddRoundedRectangle(x0, y0, x1 - x0, y1 - y0, 5.0) gc.SetBrush(self._Gradient(gc, color, x0, y0, x1, y1)) gc.FillPath(path) gc.SetPen(wx.Pen(outline)) gc.DrawPath(path) def _DrawProgress(self, gc, event, x0, y0, x1, y1): p = self.GetProgress(event) if p is not None: px0 = x0 + self._eventHeight / 2 px1 = x1 - self._eventHeight / 2 py0 = y0 + (self._eventHeight / 4 - self._eventHeight / 8) / 2 py1 = py0 + self._eventHeight / 8 gc.SetBrush(wx.Brush(self._outlineColorDark)) gc.DrawRectangle(px0, py0, px1 - px0, py1 - py0) gc.SetBrush(self._Gradient(gc, wx.BLUE, px0, py0, px0 + (px1 - px0) * p, py1)) gc.DrawRectangle(px0, py0, (px1 - px0) * p, py1 - py0) y0 = py1 return x0, y0, x1, y1 def _DrawText(self, gc, event, x0, y0, x1, y1): gc.SetFont(self.GetFont(event), wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT) if event in self._selection else self.GetForegroundColor(event)) text = shortenText(gc, self.GetText(event), x1 - x0 - self._margin * 2) w, h = gc.GetTextExtent(text) gc.DrawText(text, x0 + self._margin, y0 + self._eventHeight / 3 + (y1 - y0 - h - 2 * self._eventHeight / 3) / 2) def _DrawIcons(self, gc, event, x0, y0, x1, y1): cx = x0 icons = self.GetIcons(event) if icons: cx += self._margin for icon in icons: w = icon.GetWidth() h = icon.GetHeight() gc.DrawIcon(icon, cx, y0 + (y1 - y0 - h) / 2, w, h) cx += w + self._margin return cx, y0, x1, y1 def _GetStartRecursive(self, event): dt = self.GetStart(event) ls = [] if dt is None else [dt] for child in self.GetChildren(event): dt = self._GetStartRecursive(child) if dt is not None: ls.append(dt) return min(ls) if ls else None def _GetEndRecursive(self, event): dt = self.GetEnd(event) ls = [] if dt is None else [dt] for child in self.GetChildren(event): dt = self._GetEndRecursive(child) if dt is not None: ls.append(dt) return max(ls) if ls else None def _Invalidate(self): self._coords = dict() watermark = _Watermark() self._maxIndex = int(total_seconds(self._end - self._start) / self._precision / 60) def computeEvent(event): eventStart = self.GetStart(event) eventEnd = self.GetEnd(event) eventRStart = self._GetStartRecursive(event) eventREnd = self._GetEndRecursive(event) if eventRStart is not None and eventREnd is not None and not (eventRStart >= self._end or eventREnd < self._start): rstart = int(math.floor(total_seconds(eventRStart - self._start) / self._precision / 60)) start = None if eventStart is None else int(math.floor(total_seconds(eventStart - self._start) / self._precision / 60)) rend = int(math.floor(total_seconds(eventREnd - self._start) / self._precision / 60)) end = None if eventEnd is None else int(math.floor(total_seconds(eventEnd - self._start) / self._precision / 60)) if rend > rstart: y = watermark.height(rstart, rend) watermark.add(rstart, rend, y + 1) yMax = y + 1 for child in self.GetChildren(event): yMax = max(yMax, computeEvent(child)) self._coords[event] = (start, end, rstart, rend, y, yMax) return yMax for rootEvent in self.GetRootEvents(): computeEvent(rootEvent) bmp = wx.EmptyBitmap(10, 10) # Don't care memDC = wx.MemoryDC() memDC.SelectObject(bmp) try: gc = wx.GraphicsContext.Create(memDC) gc.SetFont(wx.NORMAL_FONT, wx.BLACK) self._headerSpans = [] self._daySpans = [] startIdxHeader = 0 startIdxDay = 0 currentFmt = self.FormatDateTime(self._start) currentDay = self._start.date() headerWidth = gc.GetTextExtent(currentFmt)[0] for idx in xrange(1, self._maxIndex): dateTime = self._start + datetime.timedelta(minutes=self._precision * idx) fmt = self.FormatDateTime(dateTime) if fmt != currentFmt: headerWidth += gc.GetTextExtent(fmt)[0] self._headerSpans.append((startIdxHeader, idx)) startIdxHeader = idx currentFmt = fmt if dateTime.date() != currentDay: self._daySpans.append((startIdxDay, idx)) startIdxDay = idx currentDay = dateTime.date() self._headerSpans.append((startIdxHeader, self._maxIndex)) self._daySpans.append((startIdxDay, self._maxIndex)) headerWidth += self._margin * 2 * len(self._headerSpans) self._minSize = (int(max(headerWidth, self._eventWidthMin * self._maxIndex)), self._marginTop + (watermark.totalHeight() - 1) * (self._eventHeight + self._margin)) self._OnResize() finally: memDC.SelectObject(wx.NullBitmap) class CalendarPrintout(wx.Printout): def __init__(self, calendar, settings, *args, **kwargs): super(CalendarPrintout, self).__init__(*args, **kwargs) self._calendar = calendar self._settings = settings self._count = None def _PageCount(self): if self._count is None: minW, minH = self._calendar._minSize dc = self.GetDC() dcw, dch = dc.GetSizeTuple() cw = minW ch = minW * dch / dcw cells = int(math.ceil(1.0 * (ch - self._calendar._marginTop) / (self._calendar._eventHeight + self._calendar._margin))) total = int(math.ceil(1.0 * (minH - self._calendar._marginTop) / (self._calendar._eventHeight + self._calendar._margin))) + 1 self._count = int(math.ceil(1.0 * total / cells)) return self._count def GetPageInfo(self): return 1, self._PageCount(), 1, 1 def HasPage(self, page): return page <= self._PageCount() def OnPrintPage(self, page): # Cannot print with a GraphicsContext... minW, minH = self._calendar._minSize dc = self.GetDC() dcw, dch = dc.GetSizeTuple() cw = minW ch = minW * dch / dcw cells = int(math.ceil(1.0 * (ch - self._calendar._marginTop) / (self._calendar._eventHeight + self._calendar._margin))) dy = 1.0 * cells * (self._calendar._eventHeight + self._calendar._margin) * (page - 1) bmp = wx.EmptyBitmap(cw, ch) memDC = wx.MemoryDC() memDC.SelectObject(bmp) try: memDC.SetBackground(wx.WHITE_BRUSH) memDC.Clear() oldWidth = self._calendar._eventWidth self._calendar._eventWidth = self._calendar._eventWidthMin try: gc = wx.GraphicsContext.Create(memDC) self._calendar._Draw(gc, cw, ch, 0, dy) finally: self._calendar._eventWidth = oldWidth dc.SetUserScale(1.0 * dcw / cw, 1.0 * dch / ch) dc.Blit(0, 0, cw, ch, memDC, 0, 0) finally: memDC.SelectObject(wx.NullBitmap) taskcoach-1.4.3/taskcoachlib/workarounds/000077500000000000000000000000001265347643000204765ustar00rootroot00000000000000taskcoach-1.4.3/taskcoachlib/workarounds/__init__.py000066400000000000000000000014471265347643000226150ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' from . import display, font, encodings from .exception import ExceptionAsUnicode taskcoach-1.4.3/taskcoachlib/workarounds/display.py000066400000000000000000000054111265347643000225160ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import operating_system if operating_system.isWindows(): import win32api # pylint: disable=F0401 class Display(object): """ This class replaces wx.Display on MSW; the original only enumerates the displays at app initialization so when people start unplugging/replugging monitors things go wrong. Not all methods are implemented. """ @staticmethod def GetCount(): return len(win32api.EnumDisplayMonitors(None, None)) @staticmethod def GetFromPoint(p): for idx, (_, _, (x1, y1, x2, y2)) in enumerate(win32api.EnumDisplayMonitors(None, None)): if p.x >= x1 and p.x < x2 and p.y >= y1 and p.y < y2: return idx return wx.NOT_FOUND @staticmethod def GetFromWindow(window): if window.GetWindowStyle() & wx.RESIZE_BORDER: margin = wx.SystemSettings.GetMetric(wx.SYS_FRAMESIZE_X) else: margin = 0 x, y = window.GetPositionTuple() return Display.GetFromPoint(wx.Point(x + margin, y + margin)) def __init__(self, index): self.hMonitor, _, (self.x, self.y, x2, y2) = win32api.EnumDisplayMonitors(None, None)[index] self.w = x2 - self.x self.h = y2 - self.y def GetClientArea(self): ns = win32api.GetMonitorInfo(self.hMonitor) x1, y1, x2, y2 = ns['Work'] return wx.Rect(x1, y1, x2 - x1, y2 - y1) def GetGeometry(self): ns = win32api.GetMonitorInfo(self.hMonitor) x1, y1, x2, y2 = ns['Monitor'] return wx.Rect(x1, y1, x2 - x1, y2 - y1) def GetName(self): ns = win32api.GetMonitorInfo(self.hMonitor) return ns['Device'] def IsPrimary(self): ns = win32api.GetMonitorInfo(self.hMonitor) return bool(ns['Flags'] & 1) # Monkey-patching so the workaround applies to third party code as # well wx.Display = Display taskcoach-1.4.3/taskcoachlib/workarounds/encodings.py000066400000000000000000000025051265347643000230230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2015 Task Coach developers Task Coach 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. Task Coach 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 . ''' import codecs def encalias(oldname, newname): old = codecs.lookup(oldname) new = codecs.CodecInfo(old.encode, old.decode, streamreader=old.streamreader, streamwriter=old.streamwriter, incrementalencoder=old.incrementalencoder, incrementaldecoder=old.incrementaldecoder, name=newname) def searcher(aname): if aname == newname: return new else: return None codecs.register(searcher) encalias('mac_roman', 'western-(mac-os-roman)') taskcoach-1.4.3/taskcoachlib/workarounds/exception.py000066400000000000000000000026031265347643000230470ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2012 Task Coach developers Task Coach 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. Task Coach 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 . ''' # No way to monkey-patch this unfortunately... def ExceptionAsUnicode(e): try: return unicode(e) except UnicodeDecodeError: components = list() for arg in e.args: if isinstance(arg, str): try: components.append(arg.decode('utf-8')) except UnicodeDecodeError: try: components.append(arg.decode('iso-8859-15')) except UnicodeDecodeError: components.append(repr(arg)) else: components.append(str(arg)) return '%s: %s' % (e.__class__.__name__, ' - '.join(components)) taskcoach-1.4.3/taskcoachlib/workarounds/font.py000066400000000000000000000024571265347643000220260ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx wxFontFromNativeInfoString = wx.FontFromNativeInfoString def FontFromNativeInfoString(nativeInfoString): ''' wx.FontFromNativeInfoString may throw an wx.PyAssertionError when the PointSize is zero. This may happen when fonts are set on one platform and then used on another platform. Catch the exception and return None instead. ''' if nativeInfoString: try: return wxFontFromNativeInfoString(nativeInfoString) except wx.PyAssertionError: pass return None wx.FontFromNativeInfoString = FontFromNativeInfoString taskcoach-1.4.3/templates.in/000077500000000000000000000000001265347643000160745ustar00rootroot00000000000000taskcoach-1.4.3/templates.in/dueToday.tsktmpl000066400000000000000000000002671265347643000212770ustar00rootroot00000000000000 taskcoach-1.4.3/templates.in/dueTomorrow.tsktmpl000066400000000000000000000003031265347643000220360ustar00rootroot00000000000000 taskcoach-1.4.3/templates.in/make.py000066400000000000000000000033771265347643000173750ustar00rootroot00000000000000#!/usr/bin/env python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import xml.etree.ElementTree as ET def dumpTemplate(filename, fd): path, name = os.path.split(filename) name, ext = os.path.splitext(name) if ext == '.tsktmpl': fd.write(' templates.append((%s, %s))\n' % (repr(name), repr(file(filename, 'rb').read()))) tree = ET.parse(file(filename, 'rb')) root = tree.getroot() subject = root.find('task').attrib['subject'] fd.write(' _(%s)\n' % repr(subject.encode('UTF-8'))) def dumpDirectory(path): fd = file(os.path.join('..', 'taskcoachlib', 'persistence', 'xml', 'templates.py'), 'wb') fd.write('#-*- coding: UTF-8\n\n') fd.write('from taskcoachlib.i18n import _\n\n') fd.write('def getDefaultTemplates():\n') fd.write(' templates = []\n') for name in os.listdir(path): dumpTemplate(os.path.join(path, name), fd) fd.write('\n return templates\n') if __name__ == '__main__': dumpDirectory('.') taskcoach-1.4.3/tests/000077500000000000000000000000001265347643000146335ustar00rootroot00000000000000taskcoach-1.4.3/tests/__init__.py000066400000000000000000000013531265347643000167460ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/disttests/000077500000000000000000000000001265347643000166615ustar00rootroot00000000000000taskcoach-1.4.3/tests/disttests/__init__.py000077500000000000000000000013511265347643000207750ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . '''taskcoach-1.4.3/tests/disttests/win32/000077500000000000000000000000001265347643000176235ustar00rootroot00000000000000taskcoach-1.4.3/tests/disttests/win32/BaseTest.py000077500000000000000000000056241265347643000217210ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, time, base class TestLaunch(base.Win32TestCase): def test_launch(self): window = self.findWindow(r'^Task Coach$') self.failIf(window is None, 'Cannot find main window') class TestWithTaskFile(base.Win32TestCase): def setUp(self): self.args = ['"%s"'%os.path.join(self.basepath, 'testfile.tsk')] super(TestWithTaskFile, self).setUp() def test_launch(self): self.failUnless(self.findWindow(r'^Task Coach file error$') is None, 'Error dialog appeared') window = self.findWindow(r'^Task Coach', tries=20) self.failIf(window is None, 'Cannot find main window') self.failUnless(window.title.endswith('testfile.tsk'), 'Wrong window title') def test_save(self): filename = self.args[0][1:-1] # Remove "'s timestamp = os.stat(filename).st_mtime mainwindow = self.findWindow(r'^Task Coach', tries=20) w = mainwindow.findChildren('wxWindowClassNR', 'HyperTreeList') # Double-click the first task to open the task edit dialog: for _ in range(2): w[1].clickAt(5, 30) time.sleep(0.1) editor = self.findWindow(r'\(task\)$') self.failIf(editor is None, 'Task editor not found') editor.waitFocus() # Change subject so the task is "dirty": editor.sendText(u'New subject') # Close the task edit dialog: editor.close() mainwindow.waitFocus() mainwindow.clickAt(58, 15) # Save button # Give some time to write the file... time.sleep(15) if os.path.exists(self.logfilename): self.fail('Exception occurred while saving:\n' + \ file(self.logfilename, 'rb').read()) # This fails for a yet unknown reason when launched through the buildbot. Seems # to work fine by hand... ## self.failUnless(os.stat(filename).st_mtime > timestamp, ## 'File was not written') ## self.assertNotEqual(os.path.getsize(filename), 0) taskcoach-1.4.3/tests/disttests/win32/__init__.py000077500000000000000000000013511265347643000217370ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . '''taskcoach-1.4.3/tests/disttests/win32/base.py000066400000000000000000000166711265347643000211220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' ''' These tests actually assume a fresh configuration (new .ini file, nothing changed). ''' # pylint: disable=W0105 import sys, os, time, re, shutil, unittest import win32process, win32event, win32gui, win32con sys.path.insert(0, os.path.join(os.path.split(__file__)[0], 'sendinput')) import sendinput as si class Window(object): def __init__(self, hwnd): self.hwnd = hwnd def _get_title(self): return win32gui.GetWindowText(self.hwnd) def _set_title(self, title): win32gui.SetWindowText(self.hwnd, title) title = property(_get_title, _set_title, doc="The window title/text") def _get_klass(self): return win32gui.GetClassName(self.hwnd) klass = property(_get_klass, doc="The window class name") def _get_children(self): result = [] def cb(hwnd, lparam): # pylint: disable=W0613 result.append(Window(hwnd)) return True try: win32gui.EnumChildWindows(self.hwnd, cb, None) except: result = [] # pylint: disable=W0702 return result children = property(_get_children, doc="The window direct children") def _get_isForeground(self): return win32gui.GetForegroundWindow() == self.hwnd isForeground = property(_get_isForeground, doc="Whether the window is the foreground") def waitFocus(self): for _ in xrange(10): time.sleep(1) if self.isForeground: return True return False def clickAt(self, dx, dy): """ Simulates a click at a given position (relative to the window) """ # Posting WM_LBUTTON[DOWN/UP] does not work it seems. Use # SendInput instead. We must find the absolute coordinates # first, and normalize them for SendInput. x, y = win32gui.ClientToScreen(self.hwnd, (0, 0)) x += dx y += dy desktop = win32gui.GetDesktopWindow() left, top, right, bottom = win32gui.GetClientRect(desktop) x = int(1.0 * x * 65535 / (right - left)) y = int(1.0 * y * 65535 / (bottom - top)) si.SendInput((si.INPUT_MOUSE, (x, y, 0, si.MOUSEEVENTF_ABSOLUTE|si.MOUSEEVENTF_MOVE, 0)), (si.INPUT_MOUSE, (0, 0, 0, si.MOUSEEVENTF_LEFTDOWN, 0)), (si.INPUT_MOUSE, (0, 0, 0, si.MOUSEEVENTF_LEFTUP, 0))) def sendText(self, text): inputs = [] for char in text: inputs.append((si.INPUT_KEYBOARD, (char, 0))) inputs.append((si.INPUT_KEYBOARD, (char, si.KEYEVENTF_KEYUP))) si.SendInput(*tuple(inputs)) def close(self): """ Closes the window. """ win32gui.SendMessage(self.hwnd, win32con.WM_CLOSE, 0, 0) def findChildren(self, klass, title): """ Find all children, recursively, matching a class and a title. """ result = [] for child in self.children: if child.klass == klass and child.title == title: result.append(child) result.extend(child.findChildren(klass, title)) return result def dump(self, level=0): """ Dumps the window and its children, recursively, to stdout. """ print (' ' * level) + str(self) for child in self.children: child.dump(level + 1) def __str__(self): return '%s("%s")' % (self.klass, self.title) class Win32TestCase(unittest.TestCase): args = [] basepath = os.path.split(__file__)[0] def setUp(self): self.processHandle = None shutil.copyfile(os.path.join(self.basepath, 'test.tsk'), os.path.join(self.basepath, 'testfile.tsk')) path = os.path.join('..', 'build') for name in os.listdir(path): dirname = os.path.join(path, name) filename = os.path.join(dirname, 'taskcoach.exe') if os.path.isdir(dirname) and os.path.exists(filename): break else: self.fail('Could not find Task Coach executable.') self.logfilename = filename + '.log' cmd = [filename, '-i', 'test.ini', '-l', 'en'] + self.args sinfo = win32process.STARTUPINFO() sinfo.dwFlags = 0 hProcess = win32process.CreateProcess(None, ' '.join(cmd), None, None, False, 0, None, os.getcwd(), sinfo)[0] self.processHandle = hProcess if win32event.WaitForInputIdle(hProcess, 120000) == win32event.WAIT_TIMEOUT: self.fail('Could not launch Task Coach.') window = self.findWindow(r'^Errors occurred', tries=3) if window is not None: window.close() self.fail("Errors occurred. The log content was:\n" + file(self.logfilename, 'rb').read()) window = self.findWindow(r'^Tip of the day$') if window is None: self.fail("Tip window didn't appear") window.close() window = self.findWindow(r'^New version of Task Coach available$', tries=3) if window: window.close() def tearDown(self): if self.processHandle is not None: win32process.TerminateProcess(self.processHandle, 0) win32event.WaitForSingleObject(self.processHandle, win32event.INFINITE) os.remove(os.path.join(self.basepath, 'testfile.tsk')) lockdir = os.path.join(self.basepath, 'testfile.tsk.lock') if os.path.exists(lockdir): shutil.rmtree(os.path.join(self.basepath, 'testfile.tsk.lock')) if os.path.exists(self.logfilename): os.remove(self.logfilename) def findWindow(self, title, tries=5): """ Waits for a window to appear, and return a Window instance, or None if not found. @param title: Criterion for the window's title (regular expression string) @param tries: Max number of scans to perform. Scans are one second apart. """ titleRegex = re.compile(title) for _ in xrange(tries): windows = [] def enumCb(hwnd, lparam): # pylint: disable=W0613 try: if titleRegex.search(win32gui.GetWindowText(hwnd)): windows.append(hwnd) except: pass # pylint: disable=W0702 return True win32gui.EnumWindows(enumCb, None) if windows: return Window(windows[0]) time.sleep(1) return None taskcoach-1.4.3/tests/disttests/win32/sendinput/000077500000000000000000000000001265347643000216345ustar00rootroot00000000000000taskcoach-1.4.3/tests/disttests/win32/sendinput/sendinput.c000077500000000000000000000116721265347643000240230ustar00rootroot00000000000000/* Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . */ #include #include /* win32all does not seem to include a binding for SendInput, so do it by hand. */ static PyObject* PySendInput(PyObject *self, PyObject *args) { INPUT *pInputs; int i; pInputs = (INPUT*)malloc(sizeof(INPUT) * PyTuple_Size(args)); ZeroMemory(pInputs, sizeof(INPUT) * PyTuple_Size(args)); for (i = 0; i < PyTuple_Size(args); ++i) { PyObject *type; PyObject *tpl = PyTuple_GetItem(args, i); if (!PyTuple_Check(tpl)) { PyErr_SetString(PyExc_TypeError, "Arguments must be tuples."); goto err; } if (PyTuple_Size(tpl) != 2) { PyErr_SetString(PyExc_TypeError, "Arguments must be 2-tuples."); goto err; } type = PyTuple_GetItem(tpl, 0); if (!PyInt_Check(type)) { PyErr_SetString(PyExc_TypeError, "Struct type must be int."); goto err; } switch (PyInt_AsLong(type)) { case INPUT_MOUSE: { int dx, dy, mouseData, flags, time; PyObject *minput; minput = PyTuple_GetItem(tpl, 1); if (!PyTuple_Check(minput)) { PyErr_SetString(PyExc_TypeError, "Structure must be a tuple"); goto err; } if (!PyArg_ParseTuple(minput, "iiiii", &dx, &dy, &mouseData, &flags, &time)) goto err; pInputs[i].type = INPUT_MOUSE; pInputs[i].mi.dx = dx; pInputs[i].mi.dy = dy; pInputs[i].mi.mouseData = mouseData; pInputs[i].mi.dwFlags = flags; pInputs[i].mi.time = time; break; } case INPUT_KEYBOARD: { HKL layout = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)); PyObject *kinput = PyTuple_GetItem(tpl, 1); if (!PyTuple_Check(kinput)) { PyErr_SetString(PyExc_TypeError, "Structure must be a tuple"); goto err; } PyObject *theChar; int type; if (!PyArg_ParseTuple(kinput, "Oi", &theChar, &type)) goto err; if (!PyUnicode_Check(theChar)) { PyErr_SetString(PyExc_TypeError, "Text must be a Unicode character"); goto err; } WCHAR szChar; PyUnicode_AsWideChar((PyUnicodeObject *)theChar, &szChar, 1); pInputs[i].type = INPUT_KEYBOARD; pInputs[i].ki.wVk = 0; pInputs[i].ki.wScan = MapVirtualKeyEx(VkKeyScan(szChar), 0, layout); pInputs[i].ki.dwFlags = KEYEVENTF_SCANCODE | type; pInputs[i].ki.time = 0; pInputs[i].ki.dwExtraInfo = 0; break; } default: PyErr_SetString(PyExc_ValueError, "Unknown input type."); goto err; } } if (SendInput(PyTuple_Size(args), pInputs, sizeof(INPUT)) != PyTuple_Size(args)) { PyErr_SetString(PyExc_RuntimeError, "SendInput failed."); goto err; } free(pInputs); Py_INCREF(Py_None); return Py_None; err: free(pInputs); return NULL; } static PyMethodDef functions[] = { { "SendInput", (PyCFunction)PySendInput, METH_VARARGS, "SendInput wrapper" }, { NULL } }; __declspec(dllexport) void initsendinput(void) { PyObject *mdl; if (!(mdl = Py_InitModule3("sendinput", functions, "SendInput module"))) return; #define ADDCST(name) PyModule_AddIntConstant(mdl, #name, name) ADDCST(INPUT_MOUSE); ADDCST(INPUT_KEYBOARD); ADDCST(MOUSEEVENTF_ABSOLUTE); ADDCST(MOUSEEVENTF_MOVE); ADDCST(MOUSEEVENTF_LEFTDOWN); ADDCST(MOUSEEVENTF_LEFTUP); ADDCST(MOUSEEVENTF_RIGHTDOWN); ADDCST(MOUSEEVENTF_RIGHTUP); ADDCST(MOUSEEVENTF_MIDDLEDOWN); ADDCST(MOUSEEVENTF_MIDDLEUP); //ADDCST(MOUSEEVENTF_VIRTUALDESK); ADDCST(MOUSEEVENTF_WHEEL); ADDCST(MOUSEEVENTF_XDOWN); ADDCST(MOUSEEVENTF_XUP); ADDCST(KEYEVENTF_KEYUP); } taskcoach-1.4.3/tests/disttests/win32/sendinput/setup.py000077500000000000000000000016771265347643000233640ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from distutils.core import setup, Extension setup(name='sendinput', ext_modules=[Extension('sendinput', ['sendinput.c'], define_macros=[('_WIN32_WINNT', '0x0502')])]) taskcoach-1.4.3/tests/disttests/win32/test.ini000077500000000000000000000141561265347643000213150ustar00rootroot00000000000000[effortviewer] title = searchfilterincludesubitems = False searchfiltermatchcase = False aggregation = details columnsalwaysvisible = ['period', 'task'] columnautoresizing = True searchfilterstring = columnwidths = {'monday': 70, 'tuesday': 70, 'wednesday': 70, 'thursday': 70, 'friday': 70, 'saturday': 70, 'sunday': 70} columns = ['timeSpent', 'revenue'] [categoryviewerinnoteeditor] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False sortby = subject searchfilterstring = sortascending = True [file] maxrecentfiles = 4 backup = False inifileloaderror = autosave = False attachmentbase = lastfile = saveinifileinprogramdir = False recentfiles = [] inifileloaded = True [effortviewerintaskeditor] searchfilterincludesubitems = False searchfiltermatchcase = False aggregation = details columnsalwaysvisible = ['period', 'task'] columnautoresizing = True searchfilterstring = columnwidths = {} columns = ['timeSpent', 'revenue'] [attachmentviewerintaskeditor] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False columnsalwaysvisible = ['type', 'subject'] columnautoresizing = True sortby = subject searchfilterstring = columnwidths = {'notes': 28, 'type': 28} sortascending = True columns = [] [taskviewer] hideinactivetasks = False hidecompositetasks = False sortascending = True tasksdue = Unlimited hidecompletedtasks = False searchfilterincludesubitems = False searchfiltermatchcase = False hideoverduetasks = False columnsalwaysvisible = ['subject'] treemode = True sortbystatusfirst = True columnautoresizing = True sortby = dueDate sortcasesensitive = True title = searchfilterstring = columnwidths = {'plannedStartDate': 100, 'totalBudget': 100, 'attachments': 28, 'revenue': 100, 'totalRevenue': 100, 'timeSpent': 100, 'hourlyFee': 100, 'dueDate': 100, 'budgetLeft': 100, 'subject': 259, 'completionDate': 100, 'priority': 100, 'totalBudgetLeft': 100, 'recurrence': 100, 'fixedFee': 100, 'reminder': 100, 'timeLeft': 100, 'description': 100, 'totalPriority': 100, 'totalTimeSpent': 100, 'categories': 100, 'totalCategories': 100, 'notes': 28, 'budget': 100, 'totalFixedFee': 100} hideactivetasks = False hideoverbudgettasks = False columns = ['plannedStartDate', 'dueDate'] [syncml] username = syncnotes = False taskdbname = task verbose = True url = preferredsyncmode = TWO_WAY showwarning = True synctasks = False notedbname = note [noteviewerintaskeditor] sortascending = True sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False columnsalwaysvisible = ['subject'] columnautoresizing = True sortby = subject searchfilterstring = columnwidths = {} columns = ['subject'] [attachmentviewer] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False columnsalwaysvisible = ['type', 'subject'] columnautoresizing = True sortby = subject searchfilterstring = columnwidths = {'notes': 28, 'type': 28} sortascending = True columns = [] [categoryviewer] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False sortby = subject searchfilterstring = sortascending = True [window] tipsindex = 2 hidewheniconized = False blinktaskbariconwhentrackingeffort = True starticonized = WhenClosedIconized splash = True iconized = False hidewhenclosed = False maximized = False position = (220, 220) tips = True size = (700, 500) [version] python = 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] current = 0.71.3 notified = 0.71.3 wxpython = 2.8.8.1-unicode @ wxMSW pythonfrozen = False notify = False [view] categoryviewercount = 1 effortminuteinterval = 15 efforthourend = 18 language = en_US statusbar = True noteviewercount = 0 toolbar = (22, 22) effortviewerintaskeditor = 0 tabbedmainwindow = False mainviewer = 0 effortviewercount = 0 taskviewercount = 1 efforthourstart = 8 categoryfiltermatchall = False descriptionpopups = True perspective = layout2|name=taskviewer;caption=Tasks;state=4212732;dir=5;layer=0;row=0;pos=0;prop=100000;bestw=513;besth=223;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=300;floath=200|name=categoryviewer;caption=Categories;state=6293500;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=490;besth=103;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=300;floath=200|name=toolbar;caption=Toolbar;state=2112240;dir=1;layer=10;row=0;pos=0;prop=100000;bestw=219;besth=29;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|dock_size(5,0,0)=207|dock_size(4,0,0)=207|dock_size(1,10,0)=31| [editor] maccheckspelling = True [behavior] markparentcompletedwhenallchildrencompleted = True [attachmentviewerinnoteeditor] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False columnsalwaysvisible = ['type', 'subject'] columnautoresizing = True sortby = subject searchfilterstring = columnwidths = {'notes': 28, 'type': 28} sortascending = True columns = [] [noteviewer] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False columnsalwaysvisible = ['subject'] columnautoresizing = True sortby = subject searchfilterstring = columnwidths = {'attachments': 28} sortascending = True columns = [] [feature] syncml = False notes = True effort = True [attachmentviewerincategoryeditor] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False columnsalwaysvisible = ['type', 'subject'] columnautoresizing = True sortby = subject searchfilterstring = columnwidths = {'notes': 28, 'type': 28} sortascending = True columns = [] [color] overduetasks = (255, 0, 0) duetodaytasks = (255, 128, 0) completedtasks = (0, 255, 0) inactivetasks = (192, 192, 192) activetasks = (0, 0, 0) [categoryviewerintaskeditor] title = sortcasesensitive = True searchfilterincludesubitems = False searchfiltermatchcase = False sortby = subject searchfilterstring = sortascending = True taskcoach-1.4.3/tests/disttests/win32/test.tsk000066400000000000000000000010201265347643000213160ustar00rootroot000000000000000000011d57c1949a97266f5c003f00d000c40068taskcoach-1.4.3/tests/integrationtests/000077500000000000000000000000001265347643000202415ustar00rootroot00000000000000taskcoach-1.4.3/tests/integrationtests/LeakTest.py000066400000000000000000000024201265347643000223250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2013 Task Coach developers Task Coach 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. Task Coach 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 . ''' import weakref import test, mock, os class LeakTest(test.TestCase): def setUp(self): self.mockApp = mock.App() self.mockApp.addTask() def tearDown(self): self.mockApp.iocontroller.saveas('Test.tsk') os.remove('Test.tsk') self.mockApp.quitApplication() mock.App.deleteInstance() super(LeakTest, self).tearDown() def testClear(self): """taskRef = weakref.ref(self.mockApp.task) del self.mockApp.task self.mockApp.taskFile.clear() self.failUnless(taskRef() is None)""" taskcoach-1.4.3/tests/integrationtests/LoadTest.py000066400000000000000000000045541265347643000223420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, wx import test, mock class LoadTest(test.TestCase): def setUp(self): self.filename = 'LoadTest.tsk' taskfile = file(self.filename, 'w') taskfile.writelines(['Line 1\n', 'Line 2\n']) taskfile.close() self.errorDialogCalled = False self.mockApp = mock.App() # On MacOS, wx.Yield doesn't seem to be enough, so while # running the tests, just short-circuit this: self.oldCallAfter = wx.CallAfter # pylint: disable=W0142 wx.CallAfter = lambda func, *args, **kwargs: func(*args, **kwargs) def tearDown(self): wx.CallAfter = self.oldCallAfter self.mockApp.quitApplication() if os.path.isfile(self.filename): os.remove(self.filename) mock.App.deleteInstance() super(LoadTest, self).tearDown() def mockErrorDialog(self, *args, **kwargs): # pylint: disable=W0613 self.errorDialogCalled = True def testLoadInvalidFileDoesNotAffectFile(self): self.mockApp.iocontroller.open(self.filename, showerror=self.mockErrorDialog) lines = file(self.filename, 'r').readlines() self.failUnless(self.errorDialogCalled) self.assertEqual(2, len(lines)) self.assertEqual('Line 1\n', lines[0]) self.assertEqual('Line 2\n', lines[1]) def testLoadNonExistingFileGivesErrorMessage(self): self.mockApp.iocontroller.open("I don't exist.tsk", showerror=self.mockErrorDialog, fileExists=lambda filename: False) wx.GetApp().Yield() # io.open uses wx.CallAfter self.failUnless(self.errorDialogCalled) taskcoach-1.4.3/tests/integrationtests/ModelAndViewerTest.py000077500000000000000000000044551265347643000243330ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, mock from taskcoachlib.domain import task, category class TaskViewerAndCategoryFilterIntegrationTestFixture(test.wxTestCase): def setUp(self): super(TaskViewerAndCategoryFilterIntegrationTestFixture, self).setUp() self.app = mock.App() parent = task.Task('parent') child = task.Task('child') parent.addChild(child) self.category = category.Category('category') self.app.mainwindow.taskFile.categories().append(self.category) self.app.mainwindow.taskFile.tasks().extend([parent, child]) self.category.addCategorizable(child) self.category.setFiltered() self.taskViewer = self.app.mainwindow.viewer[0] def tearDown(self): mock.App.deleteInstance() super(TaskViewerAndCategoryFilterIntegrationTestFixture, self).tearDown() class TaskListViewerAndCategoryFilterIntegrationTest( \ TaskViewerAndCategoryFilterIntegrationTestFixture): def testFilterOnCategoryChildDoesHideParent(self): self.taskViewer.settings.setboolean(self.taskViewer.settingsSection(), 'treemode', False) self.assertEqual(1, self.taskViewer.widget.GetItemCount()) class TaskTreeViewerAndCategoryFilterIntegrationTest( \ TaskViewerAndCategoryFilterIntegrationTestFixture): def testFilterOnCategoryChildDoesNotHideParent(self): self.taskViewer.settings.setboolean(self.taskViewer.settingsSection(), 'treemode', True) self.taskViewer.expandAll() self.assertEqual(2, self.taskViewer.widget.GetItemCount()) taskcoach-1.4.3/tests/integrationtests/PerformanceTest.py000066400000000000000000000036571265347643000237270ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import time, os import test, mock from taskcoachlib import persistence, config from taskcoachlib.domain import task, category, note from taskcoachlib.syncml.config import createDefaultSyncConfig class PerformanceTest(test.TestCase): def createTestFile(self): task.Task.settings = config.Settings(load=False) taskList = task.TaskList([task.Task('test') for _ in range(self.nrTasks)]) taskfile = file(self.taskfilename, 'w') taskWriter = persistence.XMLWriter(taskfile) taskWriter.write(taskList, category.CategoryList(), note.NoteContainer(), createDefaultSyncConfig('fake'), 'fake') taskfile.close() def setUp(self): self.nrTasks = 100 self.taskfilename = 'performanceTest.tsk' self.createTestFile() def tearDown(self): os.remove(self.taskfilename) super(PerformanceTest, self).tearDown() def testRead(self): mockApp = mock.App() start = time.time() mockApp.iocontroller.open(self.taskfilename) end = time.time() self.assertEqual(self.nrTasks, len(mockApp.taskFile.tasks())) self.failUnless(end-start < self.nrTasks/10) mockApp.quitApplication() taskcoach-1.4.3/tests/integrationtests/SaveTest.py000066400000000000000000000047441265347643000223620ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import test, mock class SaveTest(test.TestCase): def setUp(self): self.filename = 'SaveTest.tsk' self.filename2 = 'SaveTest2.tsk' self.mockApp = mock.App() self.mockApp.addTasks() def tearDown(self): self.mockApp.iocontroller.save() self.mockApp.quitApplication() for filename in [self.filename, self.filename2]: if os.path.isfile(filename): os.remove(filename) mock.App.deleteInstance() super(SaveTest, self).tearDown() def assertTasksLoaded(self, nrTasks): self.assertEqual(nrTasks, len(self.mockApp.taskFile.tasks())) def testSave(self): self.mockApp.iocontroller.saveas(self.filename) self.mockApp.iocontroller.open(self.filename) self.assertTasksLoaded(2) def testSaveSelection_Child(self): self.mockApp.iocontroller.saveas(self.filename) self.mockApp.iocontroller.saveselection([self.mockApp.child], self.filename2) self.mockApp.iocontroller.close() self.mockApp.iocontroller.open(self.filename2) self.assertTasksLoaded(1) def testSaveSelection_Parent(self): self.mockApp.iocontroller.saveas(self.filename) self.mockApp.iocontroller.saveselection([self.mockApp.parent], self.filename2) self.mockApp.iocontroller.close() self.mockApp.iocontroller.open(self.filename2) self.assertTasksLoaded(2) def testSaveAndMerge(self): mockApp2 = mock.App() mockApp2.addTasks() mockApp2.iocontroller.saveas(self.filename2) self.mockApp.iocontroller.merge(self.filename2) self.assertTasksLoaded(4) self.mockApp.iocontroller.saveas(self.filename) mockApp2.quitApplication() taskcoach-1.4.3/tests/integrationtests/__init__.py000066400000000000000000000013331265347643000223520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/integrationtests/mock.py000066400000000000000000000037511265347643000215520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import application from taskcoachlib.domain import task class MockWxApp(object): def SetAppName(self, *args, **kwargs): pass def SetVendorName(self, *args, **kwargs): pass def ProcessIdle(self): pass def ExitMainLoop(self): pass def SetTopWindow(self, *args): pass def onQuit(self): pass class App(application.Application): def __init__(self, args=None): # pylint: disable=W0231 self._options = None self._args = args or [] self._Application__wx_app = MockWxApp() self.init() self.sessionMonitor = None application.Application.instance = self def initTwisted(self): pass def stopTwisted(self): pass def registerApp(self): pass def init(self): # pylint: disable=W0221 super(App, self).init(loadSettings=False, loadTaskFile=False) def addTask(self): self.task = task.Task('Task') self.taskFile.tasks().extend([self.task]) def addTasks(self): # pylint: disable=W0201 self.parent = task.Task('Parent') self.child = task.Task('Child') self.parent.addChild(self.child) self.taskFile.tasks().extend([self.parent]) taskcoach-1.4.3/tests/languagetests/000077500000000000000000000000001265347643000175015ustar00rootroot00000000000000taskcoach-1.4.3/tests/languagetests/TranslationIntegrityTest.py000066400000000000000000000222671265347643000251210ustar00rootroot00000000000000# -*- coding: UTF-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta import string # pylint: disable=W0402 import re import test import shutil, os class TranslationIntegrityTestsMixin(object): ''' Unittests for translations. This class is subclassed below for each translated string in each language. ''' conversionSpecificationRE = re.compile('%\(\w+\)[sd]') @staticmethod def findMatches(regex, search_string): matches = set() for match in re.findall(regex, search_string): matches.add(match) return matches def testMatchingConversionSpecifications(self): regex = self.conversionSpecificationRE matches_english = self.findMatches(regex, self.englishString) matches_translation = self.findMatches(regex, self.translatedString) self.assertEqual(matches_english, matches_translation, self.englishString) def testMatchingNonLiterals(self): for symbol in '\t', '|', '%s', '%d', '%.2f': self.assertEqual(self.englishString.count(symbol), self.translatedString.count(symbol), "Symbol ('%s') doesn't match for '%s' and '%s'" % (symbol, self.englishString, self.translatedString)) def testMatchingAmpersands(self): # If the original string contains zero or one ampersands, it may be # an accelerator. In that case, we don't require the translated string # to have an accelerator as well, because many translators don't use # it and it doesn't break the application. However, if the original # string contains more than one ampersand it's probably HTML. In that # case we do require the number of ampersands to match exactly in the # original and translated string. translatedString = self.removeUmlauts(self.translatedString) nrEnglishAmpersand = self.englishString.count('&') nrTranslatedAmpersand = translatedString.count('&') if nrEnglishAmpersand <= 1 and not '\n' in self.englishString: self.failUnless(nrTranslatedAmpersand in [0, 1], "'%s' has more than one '&'" % self.translatedString) else: self.assertEqual(nrEnglishAmpersand, nrTranslatedAmpersand, "'%s' has more or less '&'s than '%s'" % (self.translatedString, self.englishString)) usedShortcuts = dict() # Some keyboard shortcuts are used more than once, list those here: maxShortcuts = {'Ctrl-RETURN': 2, 'Shift+Ctrl+T': 3} def testUniqueShortCut(self): if '\t' in self.translatedString: shortcut = self.translatedString.split('\t')[1] shortcutKey = shortcut, self.language timesUsed = self.usedShortcuts.get(shortcutKey, 0) timesAllowed = self.maxShortcuts.get(shortcut, 1) self.failIf(timesUsed > timesAllowed, "Shortcut ('%s') used more " "than once in language %s." % shortcutKey) self.usedShortcuts[shortcutKey] = timesUsed + 1 def testMatchingShortCut(self): for shortcutPrefix in ('Ctrl+', 'Ctrl-', 'Shift+', 'Shift-', 'Alt+', 'Alt-', 'Shift+Ctrl+', 'Shift-Ctrl-', 'Shift+Alt+', 'Shift-Alt-'): self.assertEqual(self.englishString.count('\t' + shortcutPrefix), self.translatedString.count('\t' + shortcutPrefix), "Shortcut prefix ('%s') doesn't match for '%s' " "and '%s'" % (shortcutPrefix, self.englishString, self.translatedString)) def testShortCutIsAscii(self): ''' Test that the translated short cut key is using ASCII only. ''' if '\t' in self.translatedString: shortcut = set(self.translatedString.split('\t')[1]) self.failUnless(shortcut & set(string.ascii_letters + string.digits)) @staticmethod def ellipsisCount(text): return text.count('...') + text.count('…') def testMatchingEllipses(self): self.assertEqual(self.ellipsisCount(self.englishString), self.ellipsisCount(self.translatedString), "Ellipses ('...') don't match for '%s' and '%s'" % \ (self.englishString, self.translatedString)) umlautRE = re.compile(r'&[A-Za-z]uml;') @classmethod def removeUmlauts(cls, text): return re.sub(cls.umlautRE, '', text) class TranslationCoverageTestsMixin(object): def testNotComplete(self): if self.enabled: percentDone = 100.0 * len(self.translation) / len(self.strings) self.assertGreaterEqual(percentDone, 90.0, 'Translation for %s is only %.2f%% complete' % (self.language, percentDone)) def testComplete(self): if not self.enabled: percentDone = 100.0 * len(self.translation) / len(self.strings) self.assertLess(percentDone, 90.0, 'Translation for %s is %.2f%% complete but disabled' % (self.language, percentDone)) def installAllTestCaseClasses(): shutil.copyfile(os.path.join(os.path.dirname(__file__), '../../i18n.in/messages.pot'), 'messages.po') from taskcoachlib.i18n import po2dict po2dict.make('messages') allStrings = set(po2dict.STRINGS) for language, enabled in getLanguages(): installTestCaseClasses(language, enabled, allStrings) def getLanguages(): return [(language, enabled) for language, enabled in meta.data.languages.values() \ if language is not None] def installTestCaseClasses(language, enabled, allStrings): translation = __import__('taskcoachlib.i18n.%s' % language, fromlist=['dict']) for englishString, translatedString in translation.dict.iteritems(): installTranslationTestCaseClass(language, englishString, translatedString) installLanguageTestCaseClass(language, enabled, translation, allStrings) def installTranslationTestCaseClass(language, englishString, translatedString): testCaseClassName = translationTestCaseClassName(language, englishString) testCaseClass = translationTestCaseClass(testCaseClassName, language, englishString, translatedString) globals()[testCaseClassName] = testCaseClass def installLanguageTestCaseClass(language, enabled, translation, allStrings): testCaseClassName = languageTestCaseClassName(language) testCaseClass = languageTestCaseClass(testCaseClassName, language, enabled, translation, allStrings) globals()[testCaseClassName] = testCaseClass def translationTestCaseClassName(language, englishString, prefix='TranslationIntegrityTest'): ''' Generate a class name for the test case class based on the language and the English string. ''' # Make sure we only use characters allowed in Python identifiers: englishString = englishString.replace(' ', '_') allowableCharacters = string.ascii_letters + string.digits + '_' englishString = ''.join([char for char in englishString \ if char in allowableCharacters]) className = '%s_%s_%s' % (prefix, language, englishString) count = 0 while className in globals(): # Make sure className is unique count += 1 className = '%s_%s_%s_%d' % (prefix, language, englishString, count) return className def languageTestCaseClassName(language, prefix='TranslationCoverageTests'): className = '%s_%s' % (prefix, language) count = 0 while className in globals(): count += 1 className = '%s_%s_%s' % (prefix, language, count) return className def translationTestCaseClass(className, language, englishString, translatedString): class_ = type(className, (TranslationIntegrityTestsMixin, test.TestCase), {}) class_.language = language class_.englishString = englishString class_.translatedString = translatedString return class_ def languageTestCaseClass(className, language, enabled, translation, allStrings): class_ = type(className, (TranslationCoverageTestsMixin, test.TestCase), dict()) class_.translation = translation.dict class_.enabled = enabled class_.strings = allStrings class_.language = language return class_ # Create all test cases and install them in the global name space: installAllTestCaseClasses() taskcoach-1.4.3/tests/languagetests/__init__.py000066400000000000000000000013331265347643000216120ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/releasetests/000077500000000000000000000000001265347643000173365ustar00rootroot00000000000000taskcoach-1.4.3/tests/releasetests/ChangeHistoryTest.py000066400000000000000000000040701265347643000233200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import sys, os import test from taskcoachlib import meta sys.path.append(os.path.join(test.projectRoot, 'changes.in')) import changes # pylint: disable=F0401 class ChangeHistoryTestCase(test.TestCase): def setUp(self): self.latestRelease = changes.releases[0] def testLatestReleaseNumberEqualsMetaDataReleaseNumber(self): self.assertEqual(self.latestRelease.number, meta.data.version) def testLatestReleaseDateEqualsMetaDataReleaseDate(self): self.assertEqual(self.latestRelease.date, meta.data.date) def testLatestReleaseHasDate(self): self.failIf('?' in self.latestRelease.date) def testLatestReleaseHasBugsFixedOrFeaturesAdded(self): self.failUnless(self.latestRelease.bugsFixed or \ self.latestRelease.featuresAdded) def testLatestReleaseNumberIsHigherThanPreviousReleaseNumber(self): def major_minor_patch(release_number): return tuple([int(number) for number in release_number.split('.')]) latestRelease = major_minor_patch(self.latestRelease.number) latestButOneRelease = major_minor_patch(changes.releases[1].number) self.failUnless(latestRelease > latestButOneRelease) def testLatestReleaseSummaryLength(self): self.failUnless(10 <= len(self.latestRelease.summary) < 600) taskcoach-1.4.3/tests/releasetests/DateTest.py000066400000000000000000000021721265347643000214270ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test class DateTest(test.TestCase): def testNoQuestionMarkInMetaDataDate(self): from taskcoachlib import meta self.failIf('?' in meta.date) def testNoQuestionMarkInChangeLog(self): import sys, os.path sys.path.insert(0, os.path.join(test.projectRoot, 'changes.in')) import changes # pylint: disable=F0401 self.failIf('?' in changes.releases[0].date) taskcoach-1.4.3/tests/releasetests/EmptyFileTest.py000066400000000000000000000037201265347643000224500ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import test # Tests are run with ./tests as current dir, but setup.py expects the project # root folder to be the current dir. Work around that by changing # the current dir while importing setup.py: cwd = os.path.realpath(os.path.curdir) os.chdir('..') import setup os.chdir(cwd) class EmptFileTest(test.TestCase): def emptyPyFiles(self, *folders): empty = [] for root, dirs, files in os.walk(os.path.join(test.projectRoot, *folders)): pyfiles = [os.path.join(root, filename) for filename in files if filename.endswith('.py')] for filename in pyfiles: if os.stat(filename).st_size == 0: empty.append(filename) return empty def testNoSourcePyFilesAreEmpty(self): self.assertEqual([], self.emptyPyFiles('taskcoachlib')) ''' def testAllUnittestPyFilesAreInManifest(self): self.assertEqual([], self.missingPyFiles('tests', 'unittests')) def testAllReleasetestPyFilesAreInManifest(self): self.assertEqual([], self.missingPyFiles('tests', 'releasetests')) def testAllIntegrationtestPyFilesAreInManifest(self): self.assertEqual([], self.missingPyFiles('tests', 'integrationtests')) ''' taskcoach-1.4.3/tests/releasetests/LineEndingsTest.py000066400000000000000000000027471265347643000227610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, test # Tests are run with ./tests as current dir, but setup.py expects the project # root folder to be the current dir. Work around that by changing # the current dir while importing setup.py: cwd = os.path.realpath(os.path.curdir) os.chdir('..') import setup os.chdir(cwd) class LineEndingsTest(test.TestCase): def testNoDOSLineEndingsInPythonScripts(self): ''' On Linux, scripts won't work if they have DOS line endings. ''' scripts = [os.path.join(test.projectRoot, script) \ for script in setup.setupOptions['scripts'] \ if script.endswith('.py')] for script in scripts: self.failIf('\r\n' in file(script, 'rb').read(), '%s contains DOS line endings'%script) taskcoach-1.4.3/tests/releasetests/MSDownloadTest.py000066400000000000000000000024741265347643000225660ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, urllib2, re from taskcoachlib import help # pylint: disable=W0622 class MSDownloadTest(test.TestCase): def testExeInPage(self): req = urllib2.Request(help._MSURL) req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36') try: content = urllib2.build_opener().open(req).read() except Exception, message: # pylint: disable=W0703 self.fail('Could not download page: %s' % str(message)) self.failUnless(re.search('vcredist[a-zA-Z0-9_-]*\.exe', content)) taskcoach-1.4.3/tests/releasetests/ManifestTest.py000066400000000000000000000046271265347643000223270ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import test class ManifestTest(test.TestCase): def setUp(self): manifestFile = file(os.path.join(test.projectRoot, 'MANIFEST')) manifestLines = manifestFile.readlines() manifestFile.close() self.manifest = [os.path.join(test.projectRoot, filename[:-1]) for filename in manifestLines] def missingPyFiles(self, *folders): missing = [] for root, dirs, files in os.walk(os.path.join(test.projectRoot, *folders)): pyfiles = [os.path.join(root, filename) for filename in files if filename.endswith('.py')] for filename in pyfiles: if filename not in self.manifest: missing.append(filename) return missing def testAllSourcePyFilesAreInManifest(self): missing_files = self.missingPyFiles('taskcoachlib') # The pubsub2 folder in the pubsub package has no __init__.py file # so it doesn't get included in the Manifest. Since we're using v3 # of the pubsub protocol, that's no problem and we ignore the missing # pubsub2 files. for filename in missing_files[:]: if 'pubsub/pubsub2' in filename: missing_files.remove(filename) self.assertEqual([], missing_files) def testAllUnittestPyFilesAreInManifest(self): self.assertEqual([], self.missingPyFiles('tests', 'unittests')) def testAllReleasetestPyFilesAreInManifest(self): self.assertEqual([], self.missingPyFiles('tests', 'releasetests')) def testAllIntegrationtestPyFilesAreInManifest(self): self.assertEqual([], self.missingPyFiles('tests', 'integrationtests')) taskcoach-1.4.3/tests/releasetests/ProtocolVersionTest.py000066400000000000000000000020331265347643000237150ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test class ProtocolVersionTest(test.TestCase): def test_version(self): # The protocol version should be bumped to 5 only when v2.1 of # the iPhone app is actually available on the AppStore. from taskcoachlib.iphone.protocol import _PROTOVERSION self.failIf(_PROTOVERSION > 5) taskcoach-1.4.3/tests/releasetests/__init__.py000066400000000000000000000013331265347643000214470ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/test.py000066400000000000000000000335601265347643000161730ustar00rootroot00000000000000#!/usr/bin/env python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wxversion wxversion.select(["2.8-unicode", "3.0"], optionsRequired=True) import sys, unittest, os, time, wx, logging projectRoot = os.path.abspath('..') if projectRoot not in sys.path: sys.path.insert(0, projectRoot) from taskcoachlib.notify import AbstractNotifier def skipOnPlatform(*platforms): ''' Decorator for unit tests that are to be skipped on specific platforms. ''' def wrapper(func): if wx.Platform in platforms: return lambda self, *args, **kwargs: self.skipTest('platform is %s' % wx.Platform) return func return wrapper def skipOnTwistedVersions(*versions): ''' Decorator for unit tests that are to be skipped on specific versions of Twisted. Versions are strings. The test is skipped if the current Twisted version string is prefixed by any of the specified ones. ''' def wrapper(func): import twisted if any([twisted.version.short().startswith(version) for version in versions]): return lambda self, *args, **kwargs: self.skipTest('Twisted version is %s' % twisted.version.short()) return func return wrapper class TestCase(unittest.TestCase, object): def assertEqualLists(self, expectedList, actualList): self.assertEqual(len(expectedList), len(actualList)) for item in expectedList: self.failUnless(item in actualList) def registerObserver(self, eventType, eventSource=None): if not hasattr(self, 'events'): self.events = [] # pylint: disable=W0201 from taskcoachlib import patterns # pylint: disable=W0404 patterns.Publisher().registerObserver(self.onEvent, eventType=eventType, eventSource=eventSource) def onEvent(self, event): self.events.append(event) def setUp(self): AbstractNotifier.disableNotifications() def tearDown(self): # pylint: disable=W0404 # Prevent processing of pending events after the test has finished: wx.GetApp().Disconnect(wx.ID_ANY) from taskcoachlib import patterns patterns.Publisher().clear() patterns.CommandHistory().clear() patterns.NumberedInstances.count = dict() from taskcoachlib.domain import date date.Scheduler().shutdown() date.Scheduler.deleteInstance() if hasattr(self, 'events'): del self.events from taskcoachlib.thirdparty.pubsub import pub pub.unsubAll() super(TestCase, self).tearDown() class TestCaseFrame(wx.Frame): def __init__(self): super(TestCaseFrame, self).__init__(None, wx.ID_ANY, 'Frame') self.toolbarPerspective = '' def getToolBarPerspective(self): return self.toolbarPerspective def AddBalloonTip(self, *args, **kwargs): pass class wxTestCase(TestCase): # pylint: disable=W0404 app = wx.App(0) frame = TestCaseFrame() from taskcoachlib import i18n i18n.Translator('en_US') from taskcoachlib import gui gui.init() def tearDown(self): super(wxTestCase, self).tearDown() self.frame.DestroyChildren() # Clean up GDI objects on Windows class TestResultWithTimings(unittest._TextTestResult): # pylint: disable=W0212 def __init__(self, *args, **kwargs): super(TestResultWithTimings, self).__init__(*args, **kwargs) self._timings = {} def startTest(self, test): super(TestResultWithTimings, self).startTest(test) self._timings[test] = time.time() def stopTest(self, test): super(TestResultWithTimings, self).stopTest(test) self._timings[test] = time.time() - self._timings[test] class TextTestRunnerWithTimings(unittest.TextTestRunner): def __init__(self, nrTestsToReport, timeTests=False, *args, **kwargs): super(TextTestRunnerWithTimings, self).__init__(*args, **kwargs) self._timeTests = timeTests self._nrTestsToReport = nrTestsToReport def _makeResult(self): return TestResultWithTimings(self.stream, self.descriptions, self.verbosity) def run(self, *args, **kwargs): # pylint: disable=W0221 result = super(TextTestRunnerWithTimings, self).run(*args, **kwargs) if self._timeTests: sortableTimings = [(timing, test) for test, timing in result._timings.items()] # pylint: disable=W0212 sortableTimings.sort(reverse=True) print '\n%d slowest tests:'%self._nrTestsToReport for timing, test in sortableTimings[:self._nrTestsToReport]: print '%s (%.2f)'%(test, timing) return result class AllTests(unittest.TestSuite): def __init__(self, options, testFiles=None): super(AllTests, self).__init__() self._options = options self.loadAllTests(testFiles or []) def filenameToModuleName(self, filename): if filename == os.path.abspath(filename): # Strip current working directory to get the relative path: filename = filename[len(os.getcwd() + os.sep):] module = filename.replace(os.sep, '.') module = module.replace('/', '.') return module[:-3] # strip '.py' def loadAllTests(self, testFiles): testloader = unittest.TestLoader() if not testFiles: if self._options.unittests: testFiles.extend(self.getTestFilesFromDir('unittests')) if self._options.integrationtests: testFiles.extend(self.getTestFilesFromDir('integrationtests')) if self._options.languagetests: testFiles.extend(self.getTestFilesFromDir('languagetests')) if self._options.releasetests: testFiles.extend(self.getTestFilesFromDir('releasetests')) if self._options.disttests: path = os.path.join('disttests', sys.platform) if os.path.exists(path): testFiles.extend(self.getTestFilesFromDir(path)) else: print 'WARNING: no disttest for your platform (%s)' % sys.platform for filename in testFiles: moduleName = self.filenameToModuleName(filename) # Importing the module is not strictly necessary because # loadTestsFromName will do that too as a side effect. But if the # test module contains errors our import will raise an exception # while loadTestsFromName ignores exceptions when importing from # modules. __import__(moduleName) suite = testloader.loadTestsFromName(moduleName) self.addTests(suite._tests) # pylint: disable=W0212 def runTests(self): testrunner = TextTestRunnerWithTimings( verbosity=self._options.verbosity, timeTests=self._options.time, nrTestsToReport=self._options.time_reports) return testrunner.run(self) @staticmethod def getPyFilesFromDir(directory): return AllTests.getFilesFromDir(directory, '.py') @staticmethod def getTestFilesFromDir(directory): return AllTests.getFilesFromDir(directory, 'Test.py') @staticmethod def getFilesFromDir(directory, extension): result = [] for root, dirs, filenames in os.walk(directory): # pylint: disable=W0612 result.extend([os.path.join(root, filename) for filename in filenames \ if filename.endswith(extension)]) return result from taskcoachlib import config class TestOptionParser(config.OptionParser): def __init__(self): super(TestOptionParser, self).__init__(usage='usage: %prog [options] [testfiles]') def testoutputOptionGroup(self): testoutput = config.OptionGroup(self, 'Test output', 'Options to determine the amount of output while running the ' 'tests.') testoutput.add_option('-q', '--quiet', action='store_const', default=1, const=0, dest='verbosity', help='show only the final test result') testoutput.add_option('--progress', action='store_const', const=1, dest='verbosity', help='show progress [default]') testoutput.add_option('-v', '--verbose', action='store_const', const=2, dest='verbosity', help='show all tests') testoutput.add_option('-t', '--time', default=False, action='store_true', help='time the tests and report the slowest tests') testoutput.add_option('--time-reports', default=10, type='int', help='the number of slow tests to report [%default]') return testoutput def profileOptionGroup(self): profile = config.OptionGroup(self, 'Profiling', 'Options to profile the tests to see what test code or production ' 'code is taking the most time.') profile.add_option('-p', '--profile', default=False, action='store_true', help='profile the running of all the tests') profile.add_option('-r', '--report-only', dest='profile_report_only', action='store_true', default=False, help="don't make a new profile, report only on the last profile") profile.add_option('-s', '--sort', dest='profile_sort', action='append', default=[], help="sort key to be used for reporting the profile data. " "Possible sort keys are: 'calls', 'cumulative' [default], " "'file', 'line', 'module', 'name', 'nfl', 'pcalls', 'stdname', " "and 'time'. This option may be repeated") profile.add_option('--callers', dest='profile_callers', default=False, action='store_true', help='print callers') profile.add_option('--callees', dest='profile_callees', default=False, action='store_true', help='print callees') profile.add_option('-l', '--limit', dest='profile_limit', default=50, type="int", help="limit the number of calls to show in the " "profile reports [%default]") profile.add_option('--regex', dest='profile_regex', help='Regular expression to limit the functions shown in the ' 'profile reports') return profile def testselectionOptionGroup(self): testselection = config.OptionGroup(self, 'Test selection', 'Options to determine which tests to run.') description = dict(dist='the platform-specific package', all='all') def helpText(selection): return 'run %s tests'%description.get(selection, 'the %s'%selection) + \ (' [default]' if selection == 'unit' else '') for selection in 'unit', 'integration', 'language', 'release', 'dist', 'all': testselection.add_option('--%stests'%selection, default=False, action='store_true', help=helpText(selection)) return testselection def parse_args(self): # pylint: disable=W0221 options, args = super(TestOptionParser, self).parse_args() if options.profile_report_only: options.profile = True if not options.profile_sort: options.profile_sort.append('cumulative') if not (options.unittests or options.integrationtests or \ options.languagetests or options.releasetests or \ options.disttests or options.alltests): options.unittests = True # the default option if options.alltests: options.unittests = True options.integrationtests = True options.languagetests = True options.releasetests = True options.disttests = True return options, args class TestProfiler: def __init__(self, options, logfile='.profile'): self._logfile = logfile self._options = options def reportLastRun(self): import pstats # pylint: disable=W0404 stats = pstats.Stats(self._logfile) stats.strip_dirs() for sortKey in self._options.profile_sort: stats.sort_stats(sortKey) stats.print_stats(self._options.profile_regex, self._options.profile_limit) if self._options.profile_callers: stats.print_callers() if self._options.profile_callees: stats.print_callees() def run(self, tests, command='runTests'): if self._options.profile_report_only or self.profile(tests, command): self.reportLastRun() def profile(self, tests, command): # pylint: disable=W0613 import cProfile # pylint: disable=W0404 _locals = dict(locals()) cProfile.runctx('result = tests.%s()'%command, globals(), _locals, filename=self._logfile) result = _locals['result'] if not result.wasSuccessful(): self.cleanup() return result.wasSuccessful() def cleanup(self): os.remove(self._logfile) if __name__ == '__main__': logging.basicConfig() theOptions, theTestFiles = TestOptionParser().parse_args() allTests = AllTests(theOptions, theTestFiles) if theOptions.profile: TestProfiler(theOptions).run(allTests) else: theResult = allTests.runTests() if not theResult.wasSuccessful(): sys.exit(1) taskcoach-1.4.3/tests/unittests/000077500000000000000000000000001265347643000166755ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/AppTest.py000066400000000000000000000070041265347643000206300ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test import wx from taskcoachlib import meta, application, config class DummyOptions(object): pofile = None language = None class DummyLocale(object): def __init__(self, language='C'): self.language = language def getdefaultlocale(self): return self.language, None class AppTests(test.TestCase): def setUp(self): super(AppTests, self).setUp() self.settings = config.Settings(load=False) self.options = DummyOptions() def testAppProperties(self): import locale if locale.getdefaultlocale()[0] != 'en_US': # Somehow wx displays an error dialog box if en_US is not installed, when # quitApplication() calls ProcessIdle and I don't know how to get rid of it. # I don't know how to find out if en_US is installed either, so skip if # it's not the default. self.skipTest('Locale is not en_US') else: # Normally I prefer one assert per test, but creating the app is # expensive, so we do all the queries in one test method. app = application.Application(loadSettings=False, loadTaskFile=False) wxApp = wx.GetApp() self.assertEqual(meta.name, wxApp.GetAppName()) self.assertEqual(meta.author, wxApp.GetVendorName()) app.mainwindow._idleController.stop() app.quitApplication() app.mainwindow.Destroy() application.Application.deleteInstance() def assertLanguage(self, expectedLanguage, locale=None): args = [self.options, self.settings] if locale: args.append(locale) self.assertEqual(expectedLanguage, application.Application.determine_language(*args)) # pylint: disable=W0142 def testLanguageViaCommandLineOption(self): self.options.language = 'fi_FI' self.assertLanguage('fi_FI') def testLanguageViaCommandLinePoFile(self): self.options.pofile = 'nl_NL' self.assertLanguage('nl_NL') def testLanguageViaExternallySetLanguage(self): self.settings.set('view', 'language', 'de_DE') self.assertLanguage('de_DE') def testLanguageSetByUser(self): self.settings.set('view', 'language_set_by_user', 'de_DE') self.assertLanguage('de_DE') def testLanguageSetByUser_OverridesExternallySetLanguage(self): self.settings.set('view', 'language', 'nl_NL') self.settings.set('view', 'language_set_by_user', 'de_DE') self.assertLanguage('de_DE') def testLanguageViaLocale(self): self.assertLanguage('en_GB', DummyLocale('en_GB')) def testLanguageViaCLocale(self): self.assertLanguage('en_US', DummyLocale()) taskcoach-1.4.3/tests/unittests/ConfigTest.py000066400000000000000000000313331265347643000213170ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, sys, os, ConfigParser, StringIO from taskcoachlib import config, meta from taskcoachlib.thirdparty.pubsub import pub class SettingsTestCase(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) def tearDown(self): super(SettingsTestCase, self).tearDown() del self.settings class SettingsTest(SettingsTestCase): def testDefaults(self): self.failUnless(self.settings.has_section('view')) self.assertEqual(True, self.settings.getboolean('view', 'statusbar')) def testSet(self): self.settings.setvalue('view', 'toolbar', (16, 16)) self.assertEqual((16, 16), self.settings.gettuple('view', 'toolbar')) def testGetList_EmptyByDefault(self): self.assertEqual([], self.settings.getlist('file', 'recentfiles')) def testSetList_Empty(self): self.settings.setlist('file', 'recentfiles', []) self.assertEqual([], self.settings.getlist('file', 'recentfiles')) def testSetList_SimpleStrings(self): recentfiles = ['abc', 'C:\Documents And Settings\Whatever'] self.settings.setlist('file', 'recentfiles', recentfiles) self.assertEqual(recentfiles, self.settings.getlist('file', 'recentfiles')) def testSetList_UnicodeStrings(self): recentfiles = ['√ɬºmlaut', '√鬣√鬸√鬺√é¬∑ √è‚İ√èÔøΩ√鬵√鬵√é¬∫'] self.settings.setlist('file', 'recentfiles', recentfiles) self.assertEqual(recentfiles, self.settings.getlist('file', 'recentfiles')) def testGetNonExistingSettingFromSection1ReturnsDefault(self): self.settings.add_section('effortviewer1') self.settings.set('effortviewer', 'columnwidths', 'dict(subject=10)') self.assertEqual(eval(config.defaults.defaults['effortviewer']['columnwidths']), self.settings.getdict('effortviewer1', 'columnwidths')) def testGetNonExistingSettingFromSection2ReturnsDefault(self): self.settings.add_section('effortviewer1') self.settings.add_section('effortviewer2') self.settings.set('effortviewer1', 'columnwidths', 'dict(subject=10)') self.assertEqual(eval(config.defaults.defaults['effortviewer']['columnwidths']), self.settings.getdict('effortviewer2', 'columnwidths')) def testGetNonExistingSettingFromSection2RaisesException(self): self.settings.add_section('effortviewer1') self.settings.add_section('effortviewer2') self.assertRaises(ConfigParser.NoOptionError, self.settings.get, 'effortviewer2', 'nonexisting') def testGetNonExistingSectionRaisesException(self): self.assertRaises(ConfigParser.NoSectionError, self.settings.get, 'bla', 'bla') def testAddSectionAndSkipOne(self): self.settings.set('effortviewer', 'columnwidths', 'dict(subject=10)') self.settings.add_section('effortviewer2', copyFromSection='effortviewer') self.assertEqual(dict(subject=10), self.settings.getdict('effortviewer2', 'columnwidths')) def testSinglePercentage(self): # Prevent ValueError: invalid interpolation syntax in '%' at position 0: self.settings.set('effortviewer', 'searchfilterstring', '%') self.assertEqual('%', self.settings.get('effortviewer', 'searchfilterstring')) def testEmbeddedPercentage(self): # Prevent ValueError: invalid interpolation syntax in '%' at position 0 self.settings.set('effortviewer', 'searchfilterstring', 'Bla%Bla') self.assertEqual('Bla%Bla', self.settings.get('effortviewer', 'searchfilterstring')) def testDoublePercentage(self): # Prevent ValueError: invalid interpolation syntax in '%' at position 0 self.settings.set('effortviewer', 'searchfilterstring', '%%') self.assertEqual('%%', self.settings.get('effortviewer', 'searchfilterstring')) def testFixInvalidValuesFromOldIniFile(self): self.settings.set('feature', 'notifier', 'Native') self.assertEqual('Task Coach', self.settings.get('feature', 'notifier')) self.assertEqual('Task Coach', self.settings.getRawValue('feature', 'notifier')) class SettingsIOTest(SettingsTestCase): def setUp(self): super(SettingsIOTest, self).setUp() self.fakeFile = StringIO.StringIO() def testSave(self): self.settings.write(self.fakeFile) self.fakeFile.seek(0) self.assertEqual('[%s]\n'%self.settings.sections()[0], self.fakeFile.readline()) def testRead(self): self.fakeFile.write('[testing]\n') self.fakeFile.seek(0) self.settings.readfp(self.fakeFile) self.failUnless(self.settings.has_section('testing')) def testIOErrorWhileSaving(self): def file_that_raises_ioerror(*args): # pylint: disable=W0613,W0622 raise IOError def showerror(*args, **kwargs): # pylint: disable=W0613 self.showerror_args = args # pylint: disable=W0201 settings = config.Settings() settings.save(showerror=showerror, file=file_that_raises_ioerror) self.failUnless(self.showerror_args) def testIOErrorWhileReading(self): class SettingsThatThrowsParsingError(config.Settings): def read(self, *args, **kwargs): # pylint: disable=W0613 self.remove_section('file') raise ConfigParser.ParsingError, 'Testing' self.failIf(SettingsThatThrowsParsingError().getboolean('file', 'inifileloaded')) def testFixOldColumnValues(self): section = 'prerequisiteviewerintaskeditor1' self.fakeFile.write("[%s]\ncolumns = ['dueDate']\ncolumnwidths = {'dueDate': 40}\n" % section) self.fakeFile.seek(0) self.settings.readfp(self.fakeFile) self.failUnless(['dueDateTime'], self.settings.getlist(section, 'columns')) self.assertEqual(dict(dueDateTime=40), self.settings.getdict(section, 'columnwidths')) class SettingsObservableTest(SettingsTestCase): def setUp(self): super(SettingsObservableTest, self).setUp() self.events = [] pub.subscribe(self.onEvent, 'settings.view.toolbar') def tearDown(self): pub.clearNotificationHandlers() def onEvent(self, value): self.events.append(value) def testChangingTheSettingCausesNotification(self): self.settings.settuple('view', 'toolbar', (16, 16)) self.assertEqual((16, 16), self.events[0]) def testChangingAnotherSettingDoesNotCauseANotification(self): self.settings.set('view', 'statusbar', 'True') self.failIf(self.events) class UnicodeAwareConfigParserTest(test.TestCase): ''' The default Python ConfigParser does not deal with unicode. So we build a wrapper around ConfigParser that does. These are the unittests for UnicodeAwareConfigParser. ''' def setUp(self): self.parser = config.settings.UnicodeAwareConfigParser() self.parser.add_section('section') self.iniFile = StringIO.StringIO() self.asciiValue = 'ascii' self.unicodeValue = u'√ÉÔøΩ√¢‚Ǩ¬¶√É≈Ω√ǬΩ√É≈Ω√Ǭπ√É≈Ω√Ǭ≥√É≈Ω√Ǭø√É≈Ω√Ǭ¥√É≈Ω√Ǭ∑' def testWriteAsciiValue(self): self.parser.set('section', 'setting', self.asciiValue) self.parser.write(self.iniFile) fileContents = self.iniFile.getvalue() self.assertEqual('[section]\nsetting = %s\n\n'%self.asciiValue, fileContents) def testWriteUnicodeValue(self): self.parser.set('section', 'setting', self.unicodeValue) self.parser.write(self.iniFile) fileContents = self.iniFile.getvalue() self.assertEqual('[section]\nsetting = %s\n\n' \ %self.unicodeValue.encode('utf-8'), fileContents) def testReadAsciiValue(self): iniFileContents = '[section]\nsetting = %s\n\n'%self.asciiValue self.iniFile.write(iniFileContents) self.iniFile.seek(0) self.parser.readfp(self.iniFile) self.assertEqual(self.asciiValue, self.parser.get('section', 'setting')) def testReadUnicodeValue(self): iniFileContents = '[section]\nsetting = %s\n\n' \ %self.unicodeValue.encode('utf-8') self.iniFile.write(iniFileContents) self.iniFile.seek(0) self.parser.readfp(self.iniFile) self.assertEqual(self.unicodeValue, self.parser.get('section', 'setting')) class SpecificSettingsTest(SettingsTestCase): def testDefaultWindowPosition(self): self.assertEqual('(-1, -1)', self.settings.get('window', 'position')) def testSetCurrentVersionAtSave(self): self.settings.set('version', 'current', '0.0') self.settings.save() self.assertEqual(meta.data.version, self.settings.get('version', 'current')) class SettingsFileLocationTest(SettingsTestCase): def testDefaultSetting(self): self.assertEqual(False, self.settings.getboolean('file', 'saveinifileinprogramdir')) def testPathWhenNotSavingIniFileInProgramDir(self): self.assertNotEqual(sys.argv[0], self.settings.path()) def testPathWhenSavingIniFileInProgramDir(self): self.settings.setboolean('file', 'saveinifileinprogramdir', True) self.assertEqual(os.path.dirname(sys.argv[0]), self.settings.path()) def testPathWhenSavingIniFileInProgramDirAndRunFromZipFile(self): self.settings.setboolean('file', 'saveinifileinprogramdir', True) sys.argv.insert(0, os.path.join('d:', 'TaskCoach', 'library.zip')) self.assertEqual(os.path.join('d:', 'TaskCoach'), self.settings.path()) del sys.argv[0] def testSettingSaveIniFileInProgramDirToFalseRemovesIniFile(self): class SettingsUnderTest(config.Settings): def onSettingsFileLocationChanged(self, value): self.onSettingsFileLocationChangedCalled = value # pylint: disable=W0201 settings = SettingsUnderTest(load=False) settings.setboolean('file', 'saveinifileinprogramdir', True) settings.setboolean('file', 'saveinifileinprogramdir', False) self.failIf(settings.onSettingsFileLocationChangedCalled) class MinimumSettingsTest(SettingsTestCase): def testAtLeastOneTaskTreeListViewer(self): self.assertEqual(1, self.settings.getint('view', 'taskviewercount')) def testTwoTaskTreeListViewers(self): self.settings.set('view', 'taskviewercount', u'2') self.assertEqual(2, self.settings.getint('view', 'taskviewercount')) def testAtLeastOneTaskTreeListViewer_EvenWhenSetToZero(self): self.settings.set('view', 'taskviewercount', u'0') self.assertEqual(1, self.settings.getint('view', 'taskviewercount')) class ApplicationOptionsTest(test.TestCase): def setUp(self): super(ApplicationOptionsTest, self).setUp() self.parser = config.ApplicationOptionParser() def parse(self, *args): return self.parser.parse_args(list(args))[0] def testUsage(self): self.assertEqual('%prog [options] [.tsk file]', self.parser.usage) def testLanguage(self): options = self.parse('-l', 'nl') self.assertEqual('nl', options.language) def testLanguageWhenNotChanged(self): options = self.parse() self.assertEqual(None, options.language) def testPoFile(self): options = self.parse('-p', 'test.po') self.assertEqual('test.po', options.pofile) def testIniFile(self): options = self.parse('-i', 'test.ini') self.assertEqual('test.ini', options.inifile) def testProfile(self): options = self.parse('--profile') self.failUnless(options.profile) taskcoach-1.4.3/tests/unittests/MailerTest.py000066400000000000000000000021461265347643000213230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test import taskcoachlib.mailer class TestMailer(test.TestCase): def testWriteMail(self): def openURL(mailtoString): self.mailtoString = mailtoString # pylint: disable=W0201 taskcoachlib.mailer.sendMail('to', 'subject', 'body', openURL=openURL) self.failUnless(self.mailtoString.startswith('mailto:')) taskcoach-1.4.3/tests/unittests/RenderTest.py000066400000000000000000000233741265347643000213370ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import render from taskcoachlib.i18n import _ from taskcoachlib.domain import date class RenderDateTime(test.TestCase): def assertRenderedDateTime(self, expectedDateTime, *dateTimeArgs): renderedDateTime = render.dateTime(date.DateTime(*dateTimeArgs)) if expectedDateTime: renderedParts = renderedDateTime.split(' ', 1) if len(renderedParts) > 1: renderedDate, renderedTime = renderedParts expectedDate, expectedTime = expectedDateTime.split(' ', 1) self.assertEqual(expectedTime, renderedTime) else: expectedDate, renderedDate = expectedDateTime, renderedDateTime self.assertEqual(expectedDate, renderedDate) else: self.assertEqual(expectedDateTime, renderedDateTime) @staticmethod def expectedDateTime(*dateTimeArgs): return render.dateTimeFunc(date.DateTime(*dateTimeArgs)) @staticmethod def expectedDate(*dateTimeArgs): return render.dateFunc(date.DateTime(*dateTimeArgs)) def testSomeRandomDateTime(self): expectedDateTime = self.expectedDateTime(2010, 4, 5, 12, 54) self.assertRenderedDateTime(expectedDateTime, 2010, 4, 5, 12, 54, 42) def testInfiniteDateTime(self): self.assertRenderedDateTime('') def testStartOfDay(self): expectedDateTime = self.expectedDate(2010, 4, 5) self.assertRenderedDateTime(expectedDateTime, 2010, 4, 5) def testEndOfDay(self): expectedDateTime = self.expectedDate(2010, 4, 5) self.assertRenderedDateTime(expectedDateTime, 2010, 4, 5, 23, 59, 59) def testEndOfDayWithoutSeconds(self): expectedDateTime = self.expectedDate(2010, 4, 5) self.assertRenderedDateTime(expectedDateTime, 2010, 4, 5, 23, 59) def testAlmostStartOfDay(self): expectedDateTime = self.expectedDateTime(2010, 4, 5, 0, 1) self.assertRenderedDateTime(expectedDateTime, 2010, 4, 5, 0, 1, 0) def testAlmostEndOfDay(self): expectedDateTime = self.expectedDateTime(2010, 4, 5, 23, 58) self.assertRenderedDateTime(expectedDateTime, 2010, 4, 5, 23, 58, 59) def testElevenOClock(self): expectedDateTime = self.expectedDateTime(2010, 4, 5, 23, 0) self.assertRenderedDateTime(expectedDateTime, 2010, 4, 5, 23, 0, 0) def testDateBefore1900(self): # Don't check for '1801' since the year may be formatted on only 2 # digits. result = render.dateTime(date.DateTime(1801, 4, 5, 23, 0, 0)) self.failUnless('01' in result, result) class RenderDate(test.TestCase): def testRenderDateWithDateTime(self): self.assertEqual(render.date(date.DateTime(2000, 1, 1)), render.date(date.DateTime(2000, 1, 1, 10, 11, 12))) class RenderTimeLeftTest(test.TestCase): def testNoTimeLeftWhenActive(self): timeLeft = date.TimeDelta() self.assertEqual('0:00', render.timeLeft(timeLeft, False)) def testNoTimeLeftWhenCompleted(self): self.assertEqual('', render.timeLeft(date.TimeDelta(), True)) def testNoTimeLeftWhenNoDueDate(self): self.assertEqual('', render.timeLeft(date.TimeDelta.max, False)) def testInfiniteTimeLeftWhenCompleted(self): self.assertEqual('', render.timeLeft(date.TimeDelta.max, True)) def testOneDayLeftWhenActive(self): timeLeft = date.TimeDelta(days=1) self.assertEqual('1 day, 0:00', render.timeLeft(timeLeft, False)) def testOneDayLeftWhenCompleted(self): timeLeft = date.TimeDelta(days=1) self.assertEqual('', render.timeLeft(timeLeft, True)) def testTwoDaysLeftWhenActive(self): timeLeft = date.TimeDelta(days=2) self.assertEqual('2 days, 0:00', render.timeLeft(timeLeft, False)) def testTwoDaysLeftWhenCompleted(self): timeLeft = date.TimeDelta(days=2) self.assertEqual('', render.timeLeft(timeLeft, True)) def testOneDayLateWhenActive(self): timeLeft = date.TimeDelta(days=-1) self.assertEqual('-1 day, 0:00', render.timeLeft(timeLeft, False)) def testOneDayLateWhenCompleted(self): timeLeft = date.TimeDelta(days=-1) self.assertEqual('', render.timeLeft(timeLeft, True)) def testOneHourLateWhenActive(self): timeLeft = -date.ONE_HOUR self.assertEqual('-1:00', render.timeLeft(timeLeft, False)) def testOneDayHourWhenCompleted(self): timeLeft = -date.ONE_HOUR self.assertEqual('', render.timeLeft(timeLeft, True)) class RenderTimeSpentTest(test.TestCase): def testZeroTime(self): self.assertEqual('', render.timeSpent(date.TimeDelta())) def testOneSecond(self): self.assertEqual('0:00:01', render.timeSpent(date.ONE_SECOND)) def testTenHours(self): self.assertEqual('10:00:00', render.timeSpent(date.TimeDelta(hours=10))) def testNegativeHours(self): self.assertEqual('-1:00:00', render.timeSpent(date.TimeDelta(hours=-1))) def testNegativeSeconds(self): self.assertEqual('-0:00:01', render.timeSpent(date.TimeDelta(seconds=-1))) def testDecimalNegative(self): self.assertEqual('-1.25', render.timeSpent(date.TimeDelta(hours=-1, minutes=-15), decimal=True)) def testDecimalNul(self): self.assertEqual('', render.timeSpent(date.TimeDelta(hours=0), decimal=True)) def testDecimal(self): self.assertEqual('0.50', render.timeSpent(date.TimeDelta(minutes=30), decimal=True)) class RenderWeekNumberTest(test.TestCase): def testWeek1(self): self.assertEqual('2005-1', render.weekNumber(date.DateTime(2005, 1, 3))) def testWeek53(self): self.assertEqual('2004-53', render.weekNumber(date.DateTime(2004, 12, 31))) class RenderRecurrenceTest(test.TestCase): def testNoRecurrence(self): self.assertEqual('', render.recurrence(date.Recurrence())) def testDailyRecurrence(self): self.assertEqual(_('Daily'), render.recurrence(date.Recurrence('daily'))) def testWeeklyRecurrence(self): self.assertEqual(_('Weekly'), render.recurrence(date.Recurrence('weekly'))) def testMonthlyRecurrence(self): self.assertEqual(_('Monthly'), render.recurrence(date.Recurrence('monthly'))) def testYearlyRecurrence(self): self.assertEqual(_('Yearly'), render.recurrence(date.Recurrence('yearly'))) def testEveryOtherDay(self): self.assertEqual(_('Every other day'), render.recurrence(date.Recurrence('daily', amount=2))) def testEveryOtherWeek(self): self.assertEqual(_('Every other week'), render.recurrence(date.Recurrence('weekly', amount=2))) def testEveryOtherMonth(self): self.assertEqual(_('Every other month'), render.recurrence(date.Recurrence('monthly', amount=2))) def testEveryOtherYear(self): self.assertEqual(_('Every other year'), render.recurrence(date.Recurrence('yearly', amount=2))) def testThreeDaily(self): self.assertEqual('Every 3 days', render.recurrence(date.Recurrence('daily', amount=3))) def testThreeWeekly(self): self.assertEqual('Every 3 weeks', render.recurrence(date.Recurrence('weekly', amount=3))) def testThreeMonthly(self): self.assertEqual('Every 3 months', render.recurrence(date.Recurrence('monthly', 3))) def testThreeYearly(self): self.assertEqual('Every 3 years', render.recurrence(date.Recurrence('yearly', 3))) class RenderException(test.TestCase): def testRenderException(self): instance = Exception() self.assertEqual(unicode(instance), render.exception(Exception, instance)) def testRenderUnicodeDecodeError(self): try: 'abc'.encode('utf-16').decode('utf-8') except UnicodeDecodeError, instance: self.assertEqual(unicode(instance), render.exception(UnicodeDecodeError, instance)) def testExceptionThatCannotBePrinted(self): """win32all exceptions may contain localized error messages. But Exception.__str__ does not handle non-ASCII characters in the args instance variable; calling unicode(instance) is just like calling str(instance) and raises an UnicodeEncodeError.""" e = Exception(u'é') try: render.exception(Exception, e) except UnicodeEncodeError: # pragma: no cover self.fail() taskcoach-1.4.3/tests/unittests/__init__.py000066400000000000000000000013331265347643000210060ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/asserts.py000066400000000000000000000113061265347643000207340ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' class TaskListAssertsMixin(object): def assertTaskList(self, expected): self.assertEqualLists(expected, self.taskList) self.assertAllChildrenInTaskList() def assertAllChildrenInTaskList(self): for task in self.taskList: for child in task.children(): self.failUnless(child in self.taskList) def assertEmptyTaskList(self): self.failIf(self.taskList) class EffortListAssertsMixin(object): def assertEffortList(self, expected): self.assertEqualLists(expected, self.effortList) class NoteContainerAssertsMixin(object): def assertNoteContainer(self, expected): for note in expected: self.failUnless(note in self.noteContainer) for note in self.noteContainer: self.failUnless(note in expected) class EffortAssertsMixin(object): def assertEqualEfforts(self, effort1, effort2): self.assertEqual(effort1.task(), effort2.task()) self.assertEqual(effort1.getStart(), effort2.getStart()) self.assertEqual(effort1.getStop(), effort2.getStop()) self.assertEqual(effort1.description(), effort2.description()) class TaskAssertsMixin(object): def failUnlessParentAndChild(self, parent, child): self.failUnless(child in parent.children()) self.failUnless(child.parent() == parent) def assertTaskCopy(self, orig, copy): self.failIf(orig == copy) self.assertEqual(orig.subject(), copy.subject()) self.assertEqual(orig.description(), copy.description()) self.assertEqual(orig.plannedStartDateTime(), copy.plannedStartDateTime()) self.assertEqual(orig.dueDateTime(), copy.dueDateTime()) self.assertEqual(orig.actualStartDateTime(), copy.actualStartDateTime()) self.assertEqual(orig.completionDateTime(), copy.completionDateTime()) self.assertEqual(orig.recurrence(), copy.recurrence()) self.assertEqual(orig.budget(), copy.budget()) if orig.parent(): self.failIf(copy in orig.parent().children()) self.failIf(orig.id() == copy.id()) self.assertEqual(orig.categories(), copy.categories()) self.assertEqual(orig.priority(), copy.priority()) self.assertEqual(orig.fixedFee(), copy.fixedFee()) self.assertEqual(orig.hourlyFee(), copy.hourlyFee()) self.assertEqual(orig.attachments(), copy.attachments()) self.assertEqual(orig.reminder(), copy.reminder()) self.assertEqual(orig.shouldMarkCompletedWhenAllChildrenCompleted(), copy.shouldMarkCompletedWhenAllChildrenCompleted()) self.assertEqual(len(orig.children()), len(copy.children())) for origChild, copyChild in zip(orig.children(), copy.children()): self.assertTaskCopy(origChild, copyChild) for origEffort, copyEffort in zip(orig.efforts(), copy.efforts()): self.assertEffortCopy(origEffort, copyEffort) def assertEffortCopy(self, orig, copy): self.failIf(orig.id() == copy.id()) self.failIf(orig.task() == copy.task()) self.assertEqual(orig.getStart(), copy.getStart()) self.assertEqual(orig.getStop(), copy.getStop()) self.assertEqual(orig.description(), copy.description()) class CommandAssertsMixin(object): def assertHistoryAndFuture(self, expectedHistory, expectedFuture): from taskcoachlib import patterns commands = patterns.CommandHistory() self.assertEqual(expectedHistory, commands.getHistory()) self.assertEqual(expectedFuture, commands.getFuture()) def assertDoUndoRedo(self, assertDone, assertUndone=None): if not assertUndone: assertUndone = assertDone assertDone() self.undo() assertUndone() self.redo() assertDone() class Mixin(CommandAssertsMixin, TaskAssertsMixin, EffortAssertsMixin, TaskListAssertsMixin, EffortListAssertsMixin, NoteContainerAssertsMixin): pass taskcoach-1.4.3/tests/unittests/commandTests/000077500000000000000000000000001265347643000213365ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/commandTests/AttachmentCommandsTest.py000066400000000000000000000052551265347643000263310ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import command from taskcoachlib.domain import attachment, task, note, category from CommandTestCase import CommandTestCase class AddAttachmentTestsMixin(object): def addAttachment(self, selectedItems=None): self.attachment = attachment.FileAttachment('attachment') # pylint: disable=W0201 addAttachmentCommand = command.AddAttachmentCommand(self.container, selectedItems or [], attachments=[self.attachment]) addAttachmentCommand.do() def testAddOneAttachmentToOneItem(self): self.addAttachment([self.item1]) self.assertDoUndoRedo(lambda: self.assertEqual([self.attachment], self.item1.attachments()), lambda: self.assertEqual([], self.item1.attachments())) def testAddOneAttachmentToTwoItems(self): self.addAttachment([self.item1, self.item2]) self.assertDoUndoRedo(lambda: self.failUnless([self.attachment] == \ self.item1.attachments() == self.item2.attachments()), lambda: self.failUnless([] == self.item1.attachments() == \ self.item2.attachments())) class AddAttachmentTestCase(CommandTestCase): ItemClass = ContainerClass = lambda subject: 'Subclass responsibility' def setUp(self): super(AddAttachmentTestCase, self).setUp() self.item1 = self.ItemClass(subject='item1') self.item2 = self.ItemClass(subject='item2') self.container = self.ContainerClass([self.item1, self.item2]) class AddAttachmentCommandWithTasksTest(AddAttachmentTestCase, AddAttachmentTestsMixin): ItemClass = task.Task ContainerClass = task.TaskList class AddAttachmentCommandWithNotesTest(AddAttachmentTestCase, AddAttachmentTestsMixin): ItemClass = note.Note ContainerClass = note.NoteContainer class AddAttachmentCommandWithCategoriesTest(AddAttachmentTestCase, AddAttachmentTestsMixin): ItemClass = category.Category ContainerClass = category.CategoryList taskcoach-1.4.3/tests/unittests/commandTests/BaseCommandsTest.py000077500000000000000000000122761265347643000251170ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, command from taskcoachlib.domain import task, date from CommandTestCase import CommandTestCase class DeleteCommandTest(CommandTestCase): def setUp(self): super(DeleteCommandTest, self).setUp() self.item = task.Task() self.items = patterns.List([self.item]) def deleteItem(self, items=None): delete = command.DeleteCommand(self.items, items or []) delete.do() def testDeleteItem_WithoutSelection(self): self.deleteItem() self.assertDoUndoRedo(lambda: self.assertEqual([self.item], self.items)) def testDeleteItem_WithSelection(self): self.deleteItem([self.item]) self.assertDoUndoRedo(lambda: self.assertEqual([], self.items), lambda: self.assertEqual([self.item], self.items)) def testItemsAreNotNew(self): self.failIf(command.DeleteCommand(self.items, []).items_are_new()) class EditSubjectTestCase(CommandTestCase): ItemClass = task.Task ContainerClass = task.TaskList def setUp(self): super(EditSubjectTestCase, self).setUp() self.item1 = self.ItemClass(subject='item1') self.item2 = self.ItemClass(subject='item2') self.container = self.ContainerClass([self.item1, self.item2]) def editSubject(self, newSubject, *items): editSubjectCommand = command.EditSubjectCommand(self.container, items, newValue=newSubject) editSubjectCommand.do() def testEditSubject(self): self.editSubject('new', self.item1) self.assertDoUndoRedo(lambda: self.assertEqual('new', self.item1.subject()), lambda: self.assertEqual('item1', self.item1.subject())) def testEditMultipleSubjects(self): self.editSubject('new', self.item1, self.item2) self.assertDoUndoRedo(lambda: self.assertEqual('newnew', self.item1.subject() + self.item2.subject()), lambda: self.assertEqual('item1item2', self.item1.subject() + self.item2.subject())) def testItemsAreNotNew(self): self.failIf(command.EditSubjectCommand(self.container, [], newValue='New subject').items_are_new()) def testModificationDateTime(self): self.editSubject('new', self.item1) self.assertDoUndoRedo(lambda: self.failUnless(self.item1.modificationDateTime() > date.DateTime.min), lambda: self.assertEqual(date.DateTime.min, self.item1.modificationDateTime())) class EditDescriptionTestCase(CommandTestCase): ItemClass = task.Task ContainerClass = task.TaskList def setUp(self): super(EditDescriptionTestCase, self).setUp() self.item1 = self.ItemClass(description='item1') self.item2 = self.ItemClass(description='item2') self.container = self.ContainerClass([self.item1, self.item2]) def edit_description(self, new_description, *items): edit_subject = command.EditDescriptionCommand(self.container, items, newValue=new_description) edit_subject.do() def testEditSubject(self): self.edit_description('new', self.item1) self.assertDoUndoRedo(lambda: self.assertEqual('new', self.item1.description()), lambda: self.assertEqual('item1', self.item1.description())) def testEditMultipleDescriptions(self): self.edit_description('new', self.item1, self.item2) self.assertDoUndoRedo(lambda: self.assertEqual('newnew', self.item1.description() + self.item2.description()), lambda: self.assertEqual('item1item2', self.item1.description() + self.item2.description())) def testItemsAreNotNew(self): self.failIf(command.EditDescriptionCommand(self.container, [], newValue='New description').items_are_new()) def testModificationDateTime(self): self.edit_description('new', self.item1) self.assertDoUndoRedo(lambda: self.failUnless(self.item1.modificationDateTime() > date.DateTime.min), lambda: self.assertEqual(date.DateTime.min, self.item1.modificationDateTime())) taskcoach-1.4.3/tests/unittests/commandTests/CategorizableCommandsTest.py000066400000000000000000000167431265347643000270200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import command from taskcoachlib.domain import category, categorizable from CommandTestCase import CommandTestCase class ToggleCategoryCommandTestCase(CommandTestCase): def setUp(self): super(ToggleCategoryCommandTestCase, self).setUp() self.category = category.Category('Cat') self.categorizable = categorizable.CategorizableCompositeObject(subject='Categorizable') def toggleItem(self, items=None, category=None): check = command.ToggleCategoryCommand(category=category or self.category, items=items or []) check.do() class ToggleCategory(ToggleCategoryCommandTestCase): def testToggleCategory_AffectsCategorizable(self): self.toggleItem([self.categorizable]) self.assertDoUndoRedo(\ lambda: self.assertEqual(set([self.category]), self.categorizable.categories()), lambda: self.assertEqual(set(), self.categorizable.categories())) def testToggleCategory_AffectsCategory(self): self.toggleItem([self.categorizable]) self.assertDoUndoRedo(\ lambda: self.assertEqual(set([self.categorizable]), self.category.categorizables()), lambda: self.assertEqual(set(), self.category.categorizables())) def testToggleCategory_AffectsCategorizableThatIsInCategory(self): self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.toggleItem([self.categorizable]) self.assertDoUndoRedo(\ lambda: self.assertEqual(set(), self.categorizable.categories()), lambda: self.assertEqual(set([self.category]), self.categorizable.categories())) def testToggleCategory_AffectsCategoryThatAlreadyContainsCategorizable(self): self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.toggleItem([self.categorizable]) self.assertDoUndoRedo(\ lambda: self.assertEqual(set(), self.category.categorizables()), lambda: self.assertEqual(set([self.categorizable]), self.category.categorizables())) def testToggleCategory_WhenSomeCategorizablesAreInCategory(self): ''' If some of the selected categorizables are in the category and some are not, toggle category puts all categorizables in the category, rather than toggling all categorizables. ''' categorizable2 = categorizable.CategorizableCompositeObject(subject='Categorizable2') categorizable2.addCategory(self.category) self.category.addCategorizable(categorizable2) self.toggleItem([self.categorizable, categorizable2]) self.assertDoUndoRedo(\ lambda: self.assertEqual(set([self.categorizable, categorizable2]), self.category.categorizables()), lambda: self.assertEqual(set([categorizable2]), self.category.categorizables())) class ToggleMutualExclusiveCategories(ToggleCategoryCommandTestCase): def setUp(self): super(ToggleMutualExclusiveCategories, self).setUp() self.subCategory1, self.subCategory2 = self.addMutualExclusiveSubcategories(self.category) def addMutualExclusiveSubcategories(self, parentCategory): subCategory1 = category.Category('subCategory1') subCategory2 = category.Category('subCategory2') parentCategory.addChild(subCategory1) parentCategory.addChild(subCategory2) parentCategory.makeSubcategoriesExclusive() return subCategory1, subCategory2 def testToggleMutualExclusiveSubcategory(self): self.categorizable.addCategory(self.subCategory1) self.subCategory1.addCategorizable(self.categorizable) self.toggleItem([self.categorizable], self.subCategory2) self.assertDoUndoRedo( lambda: self.assertEqual(set([self.subCategory2]), self.categorizable.categories()), lambda: self.assertEqual(set([self.subCategory1]), self.categorizable.categories())) def testToggleMutualExclusiveSubcategoryThatIsAlreadyChecked(self): self.categorizable.addCategory(self.subCategory1) self.subCategory1.addCategorizable(self.categorizable) self.toggleItem([self.categorizable], self.subCategory1) self.assertDoUndoRedo( lambda: self.assertEqual(set(), self.categorizable.categories()), lambda: self.assertEqual(set([self.subCategory1]), self.categorizable.categories())) def testToggleMutualExclusiveSubcategoryUnchecksParent(self): self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.toggleItem([self.categorizable], self.subCategory1) self.assertDoUndoRedo( lambda: self.assertEqual(set(), self.category.categorizables()), lambda: self.assertEqual(set([self.categorizable]), self.category.categorizables())) def testToggleMutualExclusiveCategoryUnchecksCheckedChild(self): self.categorizable.addCategory(self.subCategory1) self.subCategory1.addCategorizable(self.categorizable) self.toggleItem([self.categorizable], self.category) self.assertDoUndoRedo( lambda: self.assertEqual(set(), self.subCategory1.categorizables()), lambda: self.assertEqual(set([self.categorizable]), self.subCategory1.categorizables())) def testToggleMutualExclusiveSubcategoryDoesNotUncheckMutualExclusiveParent(self): subCategory1_1, subCategory1_2 = self.addMutualExclusiveSubcategories(self.subCategory1) self.categorizable.addCategory(self.subCategory1) self.subCategory1.addCategorizable(self.categorizable) self.categorizable.addCategory(subCategory1_1) subCategory1_1.addCategorizable(self.categorizable) self.toggleItem([self.categorizable], subCategory1_2) self.assertDoUndoRedo( lambda: self.assertEqual(set([self.categorizable]), self.subCategory1.categorizables())) def testToggleMutualExclusiveSubcategoryRecursivelyUnchecksCheckedChildren(self): subCategory1_1 = self.addMutualExclusiveSubcategories(self.subCategory1)[0] self.categorizable.addCategory(self.subCategory1) self.subCategory1.addCategorizable(self.categorizable) self.categorizable.addCategory(subCategory1_1) subCategory1_1.addCategorizable(self.categorizable) self.toggleItem([self.categorizable], self.subCategory2) self.assertDoUndoRedo( lambda: self.assertEqual(set(), subCategory1_1.categorizables()), lambda: self.assertEqual(set([self.categorizable]), subCategory1_1.categorizables())) taskcoach-1.4.3/tests/unittests/commandTests/CategoryCommandsTest.py000077500000000000000000000152611265347643000260170ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from unittests import asserts from CommandTestCase import CommandTestCase from taskcoachlib import patterns, command, config from taskcoachlib.domain import category, task class CategoryCommandTestCase(CommandTestCase, asserts.CommandAssertsMixin): def setUp(self): task.Task.settings = config.Settings(load=False) self.categories = category.CategoryList() class NewCategoryCommandTest(CategoryCommandTestCase): def new(self): newCategoryCommand = command.NewCategoryCommand(self.categories) newCategory = newCategoryCommand.items[0] newCategoryCommand.do() return newCategory def testNewCategory(self): newCategory = self.new() self.assertDoUndoRedo( lambda: self.assertEqual([newCategory], self.categories), lambda: self.assertEqual([], self.categories)) class NewSubCategoryCommandTest(CategoryCommandTestCase): def setUp(self): super(NewSubCategoryCommandTest, self).setUp() self.category = category.Category('category') self.categories.append(self.category) def newSubCategory(self, categories=None): newSubCategory = command.NewSubCategoryCommand(self.categories, categories or []) newSubCategory.do() def testNewSubCategory_WithoutSelection(self): self.newSubCategory() self.assertDoUndoRedo(lambda: self.assertEqual([self.category], self.categories)) def testNewSubCategory(self): self.newSubCategory([self.category]) newSubCategory = self.category.children()[0] self.assertDoUndoRedo(lambda: self.assertEqual([newSubCategory], self.category.children()), lambda: self.assertEqual([self.category], self.categories)) class DragAndDropCategoryCommandTest(CategoryCommandTestCase): def setUp(self): super(DragAndDropCategoryCommandTest, self).setUp() self.parent = category.Category('parent') self.child = category.Category('child') self.grandchild = category.Category('grandchild') self.parent.addChild(self.child) self.child.addChild(self.grandchild) self.categories.extend([self.parent, self.child]) def dragAndDrop(self, dropTarget, categories=None): command.DragAndDropCategoryCommand(self.categories, categories or [], drop=dropTarget).do() def testCannotDropOnParent(self): self.dragAndDrop([self.parent], [self.child]) self.failIf(patterns.CommandHistory().hasHistory()) def testCannotDropOnChild(self): self.dragAndDrop([self.child], [self.parent]) self.failIf(patterns.CommandHistory().hasHistory()) def testCannotDropOnGrandchild(self): self.dragAndDrop([self.grandchild], [self.parent]) self.failIf(patterns.CommandHistory().hasHistory()) def testDropAsRootTask(self): self.dragAndDrop([], [self.grandchild]) self.assertDoUndoRedo(lambda: self.assertEqual(None, self.grandchild.parent()), lambda: self.assertEqual(self.child, self.grandchild.parent())) class CopyAndPasteCommandTest(CategoryCommandTestCase): def setUp(self): super(CopyAndPasteCommandTest, self).setUp() self.original = category.Category('original') self.categories.append(self.original) self.task = task.Task() def copy(self, categoriesToCopy): command.CopyCommand(self.categories, categoriesToCopy).do() def paste(self): command.PasteCommand(self.categories).do() def testPasteOneCategory(self): self.copy([self.original]) self.paste() self.assertDoUndoRedo( lambda: self.assertEqual(2, len(self.categories)), lambda: self.assertEqual([self.original], self.categories)) def testCopyOneCategoryWithTasks(self): self.original.addCategorizable(self.task) self.task.addCategory(self.original) self.copy([self.original]) self.assertDoUndoRedo( lambda: self.assertEqual(set([self.original]), self.task.categories())) def testPasteOneCategoryWithTasks(self): self.original.addCategorizable(self.task) self.task.addCategory(self.original) self.copy([self.original]) self.paste() self.assertDoUndoRedo( lambda: self.assertEqual(2, len(self.task.categories())), lambda: self.assertEqual(set([self.original]), self.task.categories())) def testPasteCategoryWithSubCategory(self): childCat = category.Category('child') self.categories.append(childCat) self.original.addChild(childCat) self.task.addCategory(childCat) childCat.addCategorizable(self.task) self.copy([self.original]) self.paste() self.assertDoUndoRedo( lambda: self.assertEqual(2, len(self.task.categories())), lambda: self.assertEqual(set([childCat]), self.task.categories())) class EditExclusiveSubcategoriesCommandTest(CategoryCommandTestCase): def setUp(self): super(EditExclusiveSubcategoriesCommandTest, self).setUp() self.category = category.Category('category') def testEdit(self): self.categories.append(self.category) edit = command.EditExclusiveSubcategoriesCommand(self.categories, [self.category], newValue=True) edit.do() self.assertDoUndoRedo( lambda: self.failUnless(self.category.hasExclusiveSubcategories()), lambda: self.failIf(self.category.hasExclusiveSubcategories())) taskcoach-1.4.3/tests/unittests/commandTests/CommandTestCase.py000077500000000000000000000030071265347643000247250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from unittests import asserts from taskcoachlib import patterns, command, config from taskcoachlib.domain import task class CommandTestCase(test.wxTestCase, asserts.CommandAssertsMixin): list = [] def setUp(self): super(CommandTestCase, self).setUp() task.Task.settings = config.Settings(load=False) def tearDown(self): super(CommandTestCase, self).tearDown() patterns.CommandHistory().clear() def undo(self): patterns.CommandHistory().undo() def redo(self): patterns.CommandHistory().redo() def cut(self, items=None): if items == 'all': items = list(self.list) command.CutCommand(self.list, items or []).do() def paste(self): command.PasteCommand(self.list).do() taskcoach-1.4.3/tests/unittests/commandTests/CutCopyPasteTest.py000066400000000000000000000346751265347643000251520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from unittests import asserts from CommandTestCase import CommandTestCase from TaskCommandsTest import TaskCommandTestCase, CommandWithChildrenTestCase, \ CommandWithEffortTestCase from taskcoachlib import command from taskcoachlib.domain import note class CutCommandWithTasksTest(TaskCommandTestCase): def testCutTasks_WithoutSelection(self): self.cut() self.assertDoUndoRedo(lambda: self.assertTaskList([self.task1])) def testCutTasks_SpecificTask(self): self.taskList.append(self.task2) self.cut([self.task1]) self.assertDoUndoRedo(lambda: (self.assertTaskList([self.task2]), self.assertEqual([self.task1], command.Clipboard().get()[0])), lambda: (self.assertTaskList([self.task1, self.task2]), self.failIf(command.Clipboard()))) def testCutTasks_All(self): self.cut('all') self.assertDoUndoRedo(self.assertEmptyTaskList, lambda: self.assertTaskList(self.originalList)) def testCutTaskThatBelongsToCategory(self): self.category.addCategorizable(self.task1) self.task1.addCategory(self.category) self.cut('all') self.assertDoUndoRedo(lambda: self.failIf(self.category.categorizables()), lambda: self.assertEqual(set([self.task1]), self.category.categorizables())) class CutCommandWithTasksWithChildrenTest(CommandWithChildrenTestCase): def testCutParent(self): self.cut([self.parent]) self.assertDoUndoRedo(lambda: self.assertTaskList([self.task1]), lambda: self.assertTaskList(self.originalList)) def testCutChild(self): self.cut([self.child]) self.assertDoUndoRedo( lambda: (self.assertTaskList([self.task1, self.child2, self.parent]), self.assertEqual([self.child2], self.parent.children())), lambda: (self.assertTaskList(self.originalList), self.failUnlessParentAndChild(self.parent, self.child))) def testCutParentAndChild(self): self.cut([self.child, self.parent]) self.assertDoUndoRedo(lambda: self.assertTaskList([self.task1]), lambda: self.assertTaskList(self.originalList)) class CutCommandWithEffortTest(CommandWithEffortTestCase): def testCutEfforts_WithoutSelection(self): self.cut() self.assertDoUndoRedo(lambda: self.assertEffortList(self.originalEffortList)) def testCutEfforts_Selection(self): self.cut([self.effort1]) self.assertDoUndoRedo(lambda: self.assertEffortList([self.effort2]), lambda: self.assertEffortList(self.originalEffortList)) def testCutEfforts_All(self): self.cut('all') self.assertDoUndoRedo(lambda: self.assertEffortList([]), lambda: self.assertEffortList(self.originalEffortList)) class NoteCommandTestCase(CommandTestCase, asserts.Mixin): def setUp(self): super(NoteCommandTestCase, self).setUp() self.note1 = note.Note() self.note2 = note.Note() self.list = self.noteContainer = note.NoteContainer([self.note1, self.note2]) self.original = note.NoteContainer([self.note1, self.note2]) class CutCommandWithNotes(NoteCommandTestCase): def testCutNotes_WithoutSelection(self): self.cut() self.assertDoUndoRedo(lambda: self.assertNoteContainer(self.original)) def testCutNotes_Selection(self): self.cut([self.note1]) self.assertDoUndoRedo(lambda: self.assertNoteContainer(note.NoteContainer([self.note2])), lambda: self.assertNoteContainer(self.original)) def testCutNotes_All(self): self.cut('all') self.assertDoUndoRedo(lambda: self.assertNoteContainer(note.NoteContainer()), lambda: self.assertNoteContainer(self.original)) class PasteCommandWithTasksTest(TaskCommandTestCase): def testPasteWithoutPreviousCut(self): self.paste() self.assertDoUndoRedo(lambda: self.assertTaskList(self.originalList)) def testPaste(self): self.cut([self.task1]) self.paste() self.assertDoUndoRedo(lambda: self.assertEqual(1, len(self.taskList)), self.assertEmptyTaskList) def testClipboardIsNotEmptyAfterPaste(self): self.cut([self.task1]) self.paste() # pylint: disable=W0212 self.assertDoUndoRedo( lambda: self.assertEqual(1, len(command.Clipboard()._contents))) class PasteCommandWithNotesTest(NoteCommandTestCase): def testPasteWithoutPreviousCut(self): self.paste() self.assertDoUndoRedo(lambda: self.assertNoteContainer(self.original)) def testPaste(self): self.cut([self.note1]) self.paste() self.assertDoUndoRedo(lambda: self.assertEqual(2, len(self.original)), lambda: self.assertNoteContainer([self.note2])) class PasteCommandWithEffortTest(CommandWithEffortTestCase): def testPasteWithoutPreviousCut(self): self.paste() self.assertDoUndoRedo(lambda: self.assertEffortList(self.originalEffortList)) def testPaste(self): self.cut([self.effort1]) self.paste() self.assertDoUndoRedo(lambda: self.assertEqual(2, len(self.originalEffortList)), lambda: self.assertEqualLists([self.effort2], self.effortList)) def testClipboardIsNotEmptyAfterPaste(self): self.cut([self.effort1]) self.paste() # pylint: disable=W0212 self.assertDoUndoRedo( lambda: self.assertEqual([self.effort1], command.Clipboard()._contents)) class PasteCommandWithTasksWithChildrenTest(CommandWithChildrenTestCase): def testCutAndPasteChild(self): self.cut([self.child]) self.paste() self.assertDoUndoRedo(lambda: self.assertEqual(5, len(self.taskList)), lambda: self.assertTaskList([self.task1, self.parent, self.child2])) def testCutAndPasteParentAndChild(self): self.cut([self.parent, self.child]) self.paste() self.assertDoUndoRedo(lambda: self.assertEqual(5, len(self.taskList)), lambda: self.assertTaskList([self.task1])) def testCutAndPasteParentAndGrandChild(self): self.cut([self.parent, self.grandchild]) self.paste() self.assertDoUndoRedo(lambda: (self.assertEqual(5, len(self.taskList)), self.failUnlessParentAndChild(self.parent, self.child)), lambda: self.assertTaskList([self.task1])) class PasteIntoTaskCommandTest(CommandWithChildrenTestCase): def testPasteChild(self): self.cut([self.child]) self.paste([self.task1]) self.assertDoUndoRedo( lambda: (self.assertEqual(5, len(self.taskList)), self.assertEqual(1, len(self.task1.children())), self.failUnlessParentAndChild(self.child, self.grandchild)), lambda: (self.assertEqual(1, len(self.parent.children())), self.assertEqual([], self.task1.children()))) def testPasteExtraChild(self): self.cut([self.task1]) self.paste([self.parent]) self.assertDoUndoRedo( lambda: self.assertEqual(3, len(self.parent.children())), lambda: (self.assertEqual(2, len(self.parent.children())), self.assertTaskList([self.parent, self.child, self.child2, self.grandchild]))) def testPasteChild_MarksNewParentAsNotCompleted(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.markCompleted([self.parent]) self.cut([self.task1]) self.paste([self.parent]) self.assertDoUndoRedo( lambda: self.failIf(self.parent.completed()), lambda: self.failUnless(self.parent.completed())) def testPasteCompletedChild_DoesNotMarkParentAsNotCompleted(self): self.markCompleted([self.task1, self.parent]) self.cut([self.task1]) self.paste([self.parent]) self.assertDoUndoRedo( lambda: self.failUnless(self.parent.completed()), lambda: self.failUnless(self.parent.completed())) class PasteIntoTaskCommandWithEffortTest(CommandWithEffortTestCase): def testPaste(self): self.cut([self.effort1]) self.paste([self.task2]) self.assertDoUndoRedo( lambda: self.assertEqual(2, len(self.task2.efforts())), lambda: self.assertEqual(1, len(self.task1.efforts()))) class CutAndPasteTasksIntegrationTest(TaskCommandTestCase): def testUndoCutAndPaste(self): self.cut([self.task1]) self.paste() self.undo() self.undo() self.assertTaskList(self.originalList) class CutAndPasteWithChildrenIntegrationTest(CommandWithChildrenTestCase): def assertTaskListUnchanged(self): self.assertTaskList(self.originalList) self.failUnlessParentAndChild(self.parent, self.child) self.failUnlessParentAndChild(self.child, self.grandchild) def testUndoCutAndPaste(self): self.cut([self.child]) self.paste() self.undo() self.undo() self.assertTaskListUnchanged() def testUndoCutAndPasteAsSubtask(self): self.cut([self.child]) self.paste([self.child2]) self.undo() self.undo() self.assertTaskListUnchanged() def testUndoCutAndPasteParentAndGrandChild(self): self.cut([self.parent, self.grandchild]) self.paste() self.undo() self.undo() self.assertTaskListUnchanged() def testRedoCutAndPasteParentAndGrandChild(self): self.cut([self.parent, self.grandchild]) self.paste() self.undo() self.undo() self.redo() self.redo() self.assertEqual(5, len(self.taskList)) self.failIf(self.child.children()) class CopyCommandWithTasksTest(TaskCommandTestCase): def testCopyTaskWithoutSelection(self): self.copy([]) self.assertDoUndoRedo( lambda: self.assertEqual([], command.Clipboard().get()[0]), self.assertTaskList(self.originalList)) def testCopyTask(self): self.copy([self.task1]) copiedTask = command.Clipboard().get()[0][0] self.assertDoUndoRedo(lambda: (self.assertTaskCopy(self.task1, copiedTask), self.assertTaskList(self.originalList)), lambda: (self.assertTaskList(self.originalList), self.failIf(command.Clipboard()))) class CopyCommandWithTasksWithChildrenTest(CommandWithChildrenTestCase): def testCopy(self): self.copy([self.parent]) copiedTask = command.Clipboard().get()[0][0] self.assertDoUndoRedo( lambda: self.assertTaskCopy(self.parent, copiedTask), lambda: (self.assertTaskList(self.originalList), self.failIf(command.Clipboard()))) class CopyCommandWithEffortTest(CommandWithEffortTestCase): def testCopyEffortWithoutSelection(self): self.copy([]) self.assertDoUndoRedo( lambda: self.assertEqual([], command.Clipboard().get()[0]), self.assertEffortList(self.originalEffortList)) def testCopyEffort(self): self.copy([self.effort1]) copiedEffort = command.Clipboard().get()[0][0] self.assertDoUndoRedo( lambda: self.assertEqualEfforts(self.effort1, copiedEffort), lambda: (self.assertEffortList(self.originalEffortList), self.failIf(command.Clipboard()))) def testCopyMultipleEfforts(self): self.copy([self.effort1, self.effort2]) copiedEfforts = command.Clipboard().get()[0] self.assertDoUndoRedo( lambda: (self.assertEqualEfforts(self.effort1, copiedEfforts[0]), self.assertEqualEfforts(self.effort2, copiedEfforts[1])), lambda: (self.assertEffortList(self.originalEffortList), self.failIf(command.Clipboard()))) class DragAndDropWithTasksTest(CommandWithChildrenTestCase): def dragAndDrop(self, draggedItems, dropItem): # pylint: disable=W0222 command.DragAndDropTaskCommand(self.taskList, draggedItems, drop=[dropItem]).do() def testDragAndDropRootTask(self): self.taskList.append(self.task2) self.dragAndDrop([self.task2], self.task1) self.assertDoUndoRedo( lambda: self.failUnless(self.task2 in self.task1.children()), lambda: self.failIf(self.task2 in self.task1.children())) def testDontAllowDropOnSelf(self): self.dragAndDrop([self.task1], self.task1) self.assertDoUndoRedo(lambda: self.failIf(self.task1 in self.task1.children())) def testDragChildTaskAndDropOnOtherRootTask(self): self.dragAndDrop([self.child2], self.task1) self.assertDoUndoRedo( lambda: (self.failUnless(self.child2 in self.task1.children()), self.failIf(self.child2 in self.parent.children())), lambda: (self.failIf(self.child2 in self.task1.children()), self.failUnless(self.child2 in self.parent.children()))) def testDragChildAndDropOnOwnParent(self): self.dragAndDrop([self.child2], self.parent) self.assertDoUndoRedo( lambda: self.failUnless(self.child2 in self.parent.children())) def testDragParentAndDropOnOwnChild(self): self.dragAndDrop([self.parent], self.child2) self.assertDoUndoRedo( lambda: (self.failUnless(self.child2 in self.parent.children()), self.failIf(self.parent in self.child2.children()))) taskcoach-1.4.3/tests/unittests/commandTests/EffortCommandsTest.py000066400000000000000000000155001265347643000254600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from unittests import asserts from CommandTestCase import CommandTestCase from taskcoachlib import command, config from taskcoachlib.domain import task, effort, date class EffortCommandTestCase(CommandTestCase, asserts.CommandAssertsMixin): def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() self.effortList = effort.EffortList(self.taskList) self.originalTask = task.Task() self.taskList.append(self.originalTask) self.originalStop = date.DateTime.now() self.originalStart = self.originalStop - date.ONE_HOUR self.effort = effort.Effort(self.originalTask, self.originalStart, self.originalStop) self.originalTask.addEffort(self.effort) class NewEffortCommandTest(EffortCommandTestCase): def testNewEffort(self): newEffortCommand = command.NewEffortCommand(self.effortList, [self.originalTask]) newEffortCommand.do() newEffort = newEffortCommand.efforts[0] self.assertDoUndoRedo( lambda: self.failUnless(newEffort in self.originalTask.efforts()), lambda: self.assertEqual([self.effort], self.originalTask.efforts())) def testAddingNewEffortSetsActualStartDateTimeOfTask(self): newTask = task.Task() self.taskList.append(newTask) newEffortCommand = command.NewEffortCommand(self.effortList, [newTask]) newEffortCommand.do() newEffort = newEffortCommand.efforts[0] self.assertDoUndoRedo( lambda: self.assertEqual(newEffort.getStart(), newTask.actualStartDateTime()), lambda: self.assertEqual(date.DateTime(), newTask.actualStartDateTime())) def testNewEffortWhenUserEditsTask(self): secondTask = task.Task() self.taskList.append(secondTask) newEffortCommand = command.NewEffortCommand(self.effortList, [self.originalTask]) newEffort = newEffortCommand.efforts[0] newEffort.setTask(secondTask) newEffortCommand.do() self.assertDoUndoRedo( lambda: self.failUnless(newEffort in secondTask.efforts() and \ newEffort not in self.originalTask.efforts()), lambda: self.failUnless(newEffort not in secondTask.efforts() and \ newEffort not in self.originalTask.efforts())) class StartAndStopEffortCommandTest(EffortCommandTestCase): def setUp(self): super(StartAndStopEffortCommandTest, self).setUp() self.start = command.StartEffortCommand(self.taskList, [self.originalTask]) self.start.do() self.task2 = task.Task() def testStart(self): self.assertDoUndoRedo( lambda: self.failUnless(self.originalTask.isBeingTracked()), lambda: self.failIf(self.originalTask.isBeingTracked())) def testStop(self): stop = command.StopEffortCommand(self.effortList) stop.do() self.assertDoUndoRedo( lambda: self.failIf(self.originalTask.isBeingTracked()), lambda: self.failUnless(self.originalTask.isBeingTracked())) def testStartStopsPreviousStart(self): start = command.StartEffortCommand(self.taskList, [self.task2]) start.do() self.assertDoUndoRedo( lambda: self.failIf(self.originalTask.isBeingTracked()), lambda: self.failUnless(self.originalTask.isBeingTracked())) def testStartTrackingInactiveTaskSetsActualStartDate(self): start = command.StartEffortCommand(self.taskList, [self.task2]) start.do() now = date.Now() self.assertDoUndoRedo( lambda: self.failUnless(now - date.ONE_SECOND < self.task2.actualStartDateTime() < now + date.ONE_SECOND), lambda: self.assertEqual(date.DateTime(), self.task2.actualStartDateTime())) def testStartTrackingInactiveTaskWithFutureActualStartDate(self): futureStartDateTime = date.Tomorrow() self.task2.setActualStartDateTime(futureStartDateTime) start = command.StartEffortCommand(self.taskList, [self.task2]) start.do() now = date.Now() self.assertDoUndoRedo( lambda: self.failUnless(now - date.ONE_SECOND < self.task2.actualStartDateTime() < now + date.ONE_SECOND), lambda: self.assertEqual(futureStartDateTime, self.task2.actualStartDateTime())) class EditEffortStartDateTimeCommandTest(EffortCommandTestCase): def testNewStartDateTime(self): oldStart = self.effort.getStart() newStart = date.DateTime(2000, 1, 1) edit = command.EditEffortStartDateTimeCommand(self.effortList, [self.effort], newValue=newStart) edit.do() self.assertDoUndoRedo( lambda: self.assertEqual(newStart, self.effort.getStart()), lambda: self.assertEqual(oldStart, self.effort.getStart())) def testNewStartDateTimeSetsActualStartOfTask(self): oldStart = self.effort.task().actualStartDateTime() newStart = date.DateTime(2000, 1, 1) edit = command.EditEffortStartDateTimeCommand(self.effortList, [self.effort], newValue=newStart) edit.do() self.assertDoUndoRedo( lambda: self.assertEqual(newStart, self.effort.task().actualStartDateTime()), lambda: self.assertEqual(oldStart, self.effort.task().actualStartDateTime())) class EditEffortStopDateTimeCommandTest(EffortCommandTestCase): def testNewStopDateTime(self): oldStop = self.effort.getStop() newStop = oldStop + date.ONE_HOUR edit = command.EditEffortStopDateTimeCommand(self.effortList, [self.effort], newValue=newStop) edit.do() self.assertDoUndoRedo( lambda: self.assertEqual(newStop, self.effort.getStop()), lambda: self.assertEqual(oldStop, self.effort.getStop())) taskcoach-1.4.3/tests/unittests/commandTests/NoteCommandTest.py000066400000000000000000000106171265347643000247610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from unittests import asserts from CommandTestCase import CommandTestCase from taskcoachlib import command, patterns from taskcoachlib.domain import base, note, category, task class NoteOwnerUnderTest(note.NoteOwner, base.Object): pass class NoteCommandTestCase(CommandTestCase, asserts.CommandAssertsMixin): def setUp(self): self.notes = note.NoteContainer() self.taskList = task.TaskList() class NewNoteCommandTest(NoteCommandTestCase): def new(self, categories=None): newNoteCommand = command.NewNoteCommand(self.notes, categories=categories or []) newNote = newNoteCommand.items[0] newNoteCommand.do() return newNote def testNewNote(self): newNote = self.new() self.assertDoUndoRedo( lambda: self.assertEqual([newNote], self.notes), lambda: self.assertEqual([], self.notes)) def testNewNoteWithCategory(self): cat = category.Category('cat') newNote = self.new(categories=[cat]) self.assertDoUndoRedo( lambda: self.assertEqual(set([cat]), newNote.categories()), lambda: self.assertEqual([], self.notes)) class AddNoteCommandTest(NoteCommandTestCase): def testAddedNoteIsRootItem(self): owner = NoteOwnerUnderTest() command.AddNoteCommand([owner], [owner]).do() self.failUnless(owner.notes()[0].parent() is None) # pylint: disable=E1101 class NewSubNoteCommandTest(NoteCommandTestCase): def setUp(self): super(NewSubNoteCommandTest, self).setUp() self.note = note.Note(subject='Note') self.notes.append(self.note) def newSubNote(self, notes=None): newSubNote = command.NewSubNoteCommand(self.notes, notes or []) newSubNote.do() def testNewSubNote_WithoutSelection(self): self.newSubNote() self.assertDoUndoRedo(lambda: self.assertEqual([self.note], self.notes)) def testNewSubNote(self): self.newSubNote([self.note]) newSubNote = self.note.children()[0] self.assertDoUndoRedo(lambda: self.assertEqual([newSubNote], self.note.children()), lambda: self.assertEqual([self.note], self.notes)) class DragAndDropNoteCommand(NoteCommandTestCase): def setUp(self): super(DragAndDropNoteCommand, self).setUp() self.parent = note.Note(subject='parent') self.child = note.Note(subject='child') self.grandchild = note.Note(subject='grandchild') self.parent.addChild(self.child) self.child.addChild(self.grandchild) self.notes.extend([self.parent]) def dragAndDrop(self, dropTarget, notes=None): command.DragAndDropNoteCommand(self.notes, notes or [], drop=dropTarget).do() def testCannotDropOnParent(self): self.dragAndDrop([self.parent], [self.child]) self.failIf(patterns.CommandHistory().hasHistory()) def testCannotDropOnChild(self): self.dragAndDrop([self.child], [self.parent]) self.failIf(patterns.CommandHistory().hasHistory()) def testCannotDropOnGrandchild(self): self.dragAndDrop([self.grandchild], [self.parent]) self.failIf(patterns.CommandHistory().hasHistory()) def testDropAsRootTask(self): self.dragAndDrop([], [self.grandchild]) self.assertDoUndoRedo(lambda: self.assertEqual(None, self.grandchild.parent()), lambda: self.assertEqual(self.child, self.grandchild.parent())) taskcoach-1.4.3/tests/unittests/commandTests/TaskCommandsTest.py000066400000000000000000001104371265347643000251420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from unittests import asserts from CommandTestCase import CommandTestCase from taskcoachlib import command, patterns, config from taskcoachlib.domain import task, effort, date, category, attachment class TaskCommandTestCase(CommandTestCase, asserts.Mixin): def setUp(self): super(TaskCommandTestCase, self).setUp() self.settings = task.Task.settings = config.Settings(load=False) self.list = self.taskList = task.TaskList() self.categories = category.CategoryList() self.category = category.Category('cat') self.categories.append(self.category) self.task1 = task.Task('task1', plannedStartDateTime=date.Now(), dueDateTime=date.Now() + date.ONE_HOUR) self.task2 = task.Task('task2', plannedStartDateTime=date.Now()) self.taskList.append(self.task1) self.originalList = [self.task1] def tearDown(self): super(TaskCommandTestCase, self).tearDown() command.Clipboard().clear() def delete(self, items=None, shadow=False): if items == 'all': items = list(self.list) command.DeleteTaskCommand(self.list, items or [], shadow=shadow).do() def paste(self, items=None): # pylint: disable=W0221 if items: command.PasteAsSubItemCommand(self.taskList, items).do() else: super(TaskCommandTestCase, self).paste() def copy(self, items=None): command.CopyCommand(self.list, items or []).do() def markCompleted(self, tasks=None): command.MarkCompletedCommand(self.taskList, tasks or []).do() def editPercentageComplete(self, tasks=None, percentage=50): command.EditPercentageCompleteCommand(self.taskList, tasks or [], newValue=percentage).do() def markActive(self, tasks=None): command.MarkActiveCommand(self.taskList, tasks or []).do() def markInactive(self, tasks=None): command.MarkInactiveCommand(self.taskList, tasks or []).do() def newSubTask(self, tasks=None, markCompleted=False): tasks = tasks or [] newSubTask = command.NewSubTaskCommand(self.taskList, tasks) if markCompleted: for subtask in newSubTask.items: subtask.setCompletionDateTime() newSubTask.do() def dragAndDrop(self, dropTarget, tasks=None): command.DragAndDropTaskCommand(self.taskList, tasks or [], drop=dropTarget).do() def editPlannedStart(self, newPlannedStartDateTime, tasks=None, keep_delta=False): command.EditPlannedStartDateTimeCommand(self.taskList, tasks or [], newValue=newPlannedStartDateTime, keep_delta=keep_delta).do() def editDue(self, newDueDateTime, tasks=None, keep_delta=False): command.EditDueDateTimeCommand(self.taskList, tasks or [], newValue=newDueDateTime, keep_delta=keep_delta).do() class CommandWithChildrenTestCase(TaskCommandTestCase): def setUp(self): super(CommandWithChildrenTestCase, self).setUp() self.parent = task.Task('parent') self.child = task.Task('child') self.parent.addChild(self.child) self.child2 = task.Task('child2') self.parent.addChild(self.child2) self.grandchild = task.Task('grandchild') self.child.addChild(self.grandchild) self.originalList.extend([self.parent, self.child, self.child2, self.grandchild]) self.taskList.append(self.parent) class CommandWithEffortTestCase(TaskCommandTestCase): def setUp(self): super(CommandWithEffortTestCase, self).setUp() self.list = self.effortList = effort.EffortList(self.taskList) self.effort1 = effort.Effort(self.task1) self.task1.addEffort(self.effort1) self.effort2 = effort.Effort(self.task2, date.DateTime(2004, 1, 1), date.DateTime(2004, 1, 2)) self.task2.addEffort(self.effort2) self.taskList.append(self.task2) self.originalEffortList = [self.effort1, self.effort2] class DeleteCommandWithTasksTest(TaskCommandTestCase): def testDeleteAllTasks(self): self.taskList.append(self.task2) self.delete('all') self.assertDoUndoRedo(self.assertEmptyTaskList, lambda: self.assertTaskList([self.task1, self.task2])) def testDeleteOneTask(self): self.taskList.append(self.task2) self.delete([self.task1]) self.assertDoUndoRedo(lambda: self.assertTaskList([self.task2]), lambda: self.assertTaskList([self.task1, self.task2])) def testDeleteEmptyList(self): self.taskList.remove(self.task1) self.delete('all') self.assertDoUndoRedo(self.assertEmptyTaskList) def testDeleteEmptyList_NoCommandHistory(self): self.taskList.remove(self.task1) self.delete('all') self.assertDoUndoRedo(lambda: self.assertHistoryAndFuture([], [])) def testDelete(self): self.delete('all') self.assertDoUndoRedo(self.assertEmptyTaskList, lambda: self.assertTaskList(self.originalList)) def testDeleteTaskWithCategory(self): self.category.addCategorizable(self.task1) self.task1.addCategory(self.category) self.delete('all') self.assertDoUndoRedo(lambda: self.failIf(self.category.categorizables()), lambda: self.assertEqual(set([self.task1]), self.category.categorizables())) def testDeleteTaskWithTwoCategories(self): cat1 = category.Category('category 1') cat2 = category.Category('category 2') self.categories.extend([cat1, cat2]) for cat in cat1, cat2: cat.addCategorizable(self.task1) self.task1.addCategory(cat) self.delete('all') self.assertDoUndoRedo(lambda: self.failIf(cat1.categorizables() or cat2.categorizables()), lambda: self.failUnless(set([self.task1]) == cat1.categorizables() == cat2.categorizables())) def testDeleteTaskThatIsPrerequisite(self): self.task2.addPrerequisites([self.task1]) self.task1.addDependencies([self.task2]) self.taskList.append(self.task2) self.delete([self.task1]) self.assertDoUndoRedo(lambda: self.failIf(self.task2.prerequisites()), lambda: self.failUnless(self.task2.prerequisites())) def testDeleteTaskThatIsDependency(self): self.task2.addPrerequisites([self.task1]) self.taskList.append(self.task2) self.delete([self.task2]) self.assertDoUndoRedo(lambda: self.failIf(self.task1.dependencies()), lambda: self.failUnless(self.task1.dependencies())) class DeleteCommandWithTasksWithChildrenTest(CommandWithChildrenTestCase): def assertDeleteWorks(self): self.assertDoUndoRedo(self.assertParentAndAllChildrenDeleted, self.assertTaskListUnchanged) def assertParentAndAllChildrenDeleted(self): self.assertTaskList([self.task1]) def assertTaskListUnchanged(self): self.assertTaskList(self.originalList) self.failUnlessParentAndChild(self.parent, self.child) self.failUnlessParentAndChild(self.child, self.grandchild) def assertShadowed(self, *shadowedTasks): for shadowedTask in shadowedTasks: self.failUnless(shadowedTask.isDeleted()) def testDeleteParent(self): self.delete([self.parent]) self.assertDeleteWorks() def testDeleteParentWhileShadowing(self): self.delete([self.parent], shadow=True) self.assertShadowed(self.parent, *self.parent.children()) def testDeleteParentAndChild(self): self.delete([self.parent, self.child]) self.assertDeleteWorks() def testDeleteParentAndGrandchild(self): self.delete([self.parent, self.grandchild]) self.assertDeleteWorks() def testDeleteLastNotCompletedChildMarksParentAsCompleted(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.markCompleted([self.child2]) self.delete([self.child]) self.assertDoUndoRedo( lambda: self.failUnless(self.parent.completed()), lambda: self.failIf(self.parent.completed())) def testDeleteParentAndChildWhenChildBelongsToCategory(self): self.category.addCategorizable(self.child) self.child.addCategory(self.category) self.delete([self.parent]) self.assertDoUndoRedo(lambda: self.failIf(self.category.categorizables()), lambda: self.assertEqual(set([self.child]), self.category.categorizables())) def testDeleteParentAndChildWhenParentAndChildBelongToDifferentCategories(self): cat1 = category.Category('category 1') cat2 = category.Category('category 2') self.categories.extend([cat1, cat2]) cat1.addCategorizable(self.child) self.child.addCategory(cat1) cat2.addCategorizable(self.parent) self.parent.addCategory(cat2) self.delete([self.parent]) self.assertDoUndoRedo(lambda: self.failIf(cat1.categorizables() or cat2.categorizables()), lambda: self.failUnless(set([self.child]) == cat1.categorizables() and \ set([self.parent]) == cat2.categorizables())) def testDeleteParentAndChildWhenParentAndChildBelongToSameCategory(self): for eachTask in self.parent, self.child: self.category.addCategorizable(eachTask) eachTask.addCategory(self.category) self.delete([self.parent]) self.assertDoUndoRedo( \ lambda: self.failIf(self.category.categorizables()), lambda: self.assertEqualLists([self.parent, self.child], self.category.categorizables())) class DeleteCommandWithTasksWithEffortTest(CommandWithEffortTestCase): def testDeleteActiveTask(self): self.list = self.taskList self.delete([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(1, len(self.effortList)), lambda: self.assertEqual(2, len(self.effortList))) class NewTaskCommandTest(TaskCommandTestCase): def new(self, **kwargs): newTaskCommand = command.NewTaskCommand(self.taskList, **kwargs) newTask = newTaskCommand.items[0] newTaskCommand.do() return newTask def testNewTask(self): newTask = self.new() self.assertDoUndoRedo( lambda: self.assertTaskList([self.task1, newTask]), lambda: self.assertTaskList(self.originalList)) def testNewTaskWithCategory(self): cat = category.Category('cat') newTask = self.new(categories=[cat]) self.assertDoUndoRedo( lambda: self.assertEqual(set([cat]), newTask.categories()), lambda: self.assertTaskList(self.originalList)) def testNewTaskWithCategory_AddsTaskToCategory(self): cat = category.Category('cat') newTask = self.new(categories=[cat]) self.assertDoUndoRedo( lambda: self.assertEqual(set([newTask]), cat.categorizables()), lambda: self.failIf(cat.categorizables())) def testNewTaskWithPrerequisite(self): newTask = self.new(prerequisites=[self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(set([self.task1]), newTask.prerequisites()), lambda: self.assertTaskList(self.originalList)) def testNewTaskWithPrerequisite_AddsDependency(self): newTask = self.new(prerequisites=[self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(set([newTask]), self.task1.dependencies()), lambda: self.failIf(self.task1.dependencies())) def testNewTaskWithDependency(self): newTask = self.new(dependencies=[self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(set([self.task1]), newTask.dependencies()), lambda: self.assertTaskList(self.originalList)) def testNewTaskWithDependency_AddsPrerequisite(self): newTask = self.new(dependencies=[self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(set([newTask]), self.task1.prerequisites()), lambda: self.failIf(self.task1.prerequisites())) def testNewTaskWithAttachment(self): att = attachment.FileAttachment('filename') newTask = self.new(attachments=[att]) self.assertDoUndoRedo( lambda: self.assertEqual([att], newTask.attachments()), lambda: self.assertTaskList(self.originalList)) def testNewTaskWithKeywords(self): dateTime = date.DateTime(2042, 2, 3) newTask = self.new(plannedStartDateTime=dateTime) self.assertEqual(dateTime, newTask.plannedStartDateTime()) def testItemsAreNew(self): self.failUnless(command.NewTaskCommand(self.taskList).items_are_new()) class NewSubTaskCommandTest(TaskCommandTestCase): def testNewSubTask_WithoutSelection(self): self.newSubTask() self.assertDoUndoRedo(lambda: self.assertTaskList(self.originalList)) def testNewSubTask(self): self.newSubTask([self.task1]) newSubTask = self.task1.children()[0] self.assertDoUndoRedo(lambda: self.assertNewSubTask(newSubTask), lambda: self.assertTaskList(self.originalList)) def assertNewSubTask(self, newSubTask): self.assertEqual(len(self.originalList) + 1, len(self.taskList)) self.assertEqualLists([newSubTask], self.task1.children()) def testNewSubTask_MarksParentAsNotCompleted(self): self.markCompleted([self.task1]) self.newSubTask([self.task1]) self.assertDoUndoRedo(lambda: self.failIf(self.task1.completed()), lambda: self.failUnless(self.task1.completed())) def testNewSubTask_MarksGrandParentAsNotCompleted(self): self.newSubTask([self.task1]) self.markCompleted([self.task1]) self.newSubTask([self.task1.children()[0]]) self.assertDoUndoRedo(lambda: self.failIf(self.task1.completed()), lambda: self.failUnless(self.task1.completed())) def testNewCompletedSubTask(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.newSubTask([self.task1], markCompleted=True) self.assertDoUndoRedo(lambda: self.failUnless(self.task1.completed()), lambda: self.failIf(self.task1.completed())) def testNewSubTaskWithoutDueDateDoesntResetParentsDueDate(self): dueDateTime = date.Now() + date.TWO_HOURS self.task1.setDueDateTime(dueDateTime) self.newSubTask([self.task1]) self.assertDoUndoRedo(lambda: self.assertEqual(dueDateTime, self.task1.dueDateTime())) def testItemsAreNew(self): self.failUnless(command.NewSubTaskCommand(self.taskList, []).items_are_new()) class MarkCompletedCommandTest(CommandWithChildrenTestCase): def testMarkCompleted(self): self.markCompleted([self.task1]) self.assertDoUndoRedo( lambda: self.failUnless(self.task1.completed()), lambda: self.failIf(self.task1.completed())) def testMarkCompleted_TaskAlreadyCompleted(self): self.task1.setCompletionDateTime() self.markCompleted([self.task1]) self.assertDoUndoRedo( lambda: self.failUnless(self.task1.completed())) def testMarkCompletedParent(self): self.markCompleted([self.parent]) self.assertDoUndoRedo(lambda: self.failUnless(self.child.completed() and self.child2.completed() and self.grandchild.completed()), lambda: self.failIf(self.child.completed() or self.child2.completed() or self.grandchild.completed())) def testMarkCompletedParent_WhenChildAlreadyCompleted(self): self.markCompleted([self.child]) self.markCompleted([self.parent]) self.assertDoUndoRedo(lambda: self.failUnless(self.child.completed())) def testMarkCompletedGrandChild(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.markCompleted([self.grandchild]) self.assertDoUndoRedo( lambda: self.failUnless(self.child.completed() and not self.parent.completed()), lambda: self.failIf(self.child.completed() or self.parent.completed())) def testMarkCompletedStopsEffortTracking(self): self.task1.addEffort(effort.Effort(self.task1)) self.markCompleted([self.task1]) self.assertDoUndoRedo(lambda: self.failIf(self.task1.isBeingTracked()), lambda: self.failUnless(self.task1.isBeingTracked())) def testMarkCompletedChildDoesNotStopEffortTrackingOfParent(self): self.parent.addEffort(effort.Effort(self.parent)) self.markCompleted([self.child]) self.assertDoUndoRedo(lambda: self.failUnless(self.parent.isBeingTracked())) def testMarkRecurringTaskCompleted_CompletionDateIsNotSet(self): self.task1.setRecurrence(date.Recurrence('weekly')) self.markCompleted([self.task1]) self.assertDoUndoRedo(lambda: self.failIf(self.task1.completed())) def testMarkRecurringTaskCompleted_PlannedStartDateIsIncreased(self): self.task1.setRecurrence(date.Recurrence('weekly')) plannedStartDateTime = self.task1.plannedStartDateTime() newPlannedStartDateTime = plannedStartDateTime + date.TimeDelta(days=7) self.markCompleted([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(newPlannedStartDateTime, self.task1.plannedStartDateTime()), lambda: self.assertEqual(plannedStartDateTime, self.task1.plannedStartDateTime())) def testMarkRecurringTaskCompleted_DueDateIsIncreased(self): self.task1.setRecurrence(date.Recurrence('weekly')) tomorrow = date.Tomorrow() self.task1.setDueDateTime(tomorrow) newDueDate = tomorrow + date.ONE_WEEK self.markCompleted([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(newDueDate, self.task1.dueDateTime()), lambda: self.assertEqual(tomorrow, self.task1.dueDateTime())) def testMarkRecurringTaskCompleted_ActualStartDateIsReset(self): self.task1.setRecurrence(date.Recurrence('weekly')) now = date.Now() self.task1.setActualStartDateTime(now) self.markCompleted([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(date.DateTime(), self.task1.actualStartDateTime()), lambda: self.assertEqual(now, self.task1.actualStartDateTime())) def testMarkParentWithRecurringChildCompleted_RemovesChildRecurrence(self): self.child.setRecurrence(date.Recurrence('daily')) self.markCompleted([self.parent]) self.assertDoUndoRedo( lambda: self.failIf(self.child.recurrence()), lambda: self.assertEqual(date.Recurrence('daily'), self.child.recurrence())) def testMarkParentWithRecurringChildCompleted_MakesChildCompleted(self): self.child.setRecurrence(date.Recurrence('daily')) self.markCompleted([self.parent]) self.assertDoUndoRedo( lambda: self.failUnless(self.child.completed()), lambda: self.failIf(self.child.completed())) class EditPercentageCompleteTest(TaskCommandTestCase): def testEditPercentageComplete(self): self.editPercentageComplete([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(50, self.task1.percentageComplete()), lambda: self.assertEqual(0, self.task1.percentageComplete())) def testTaskIsStartedAfterEditingPercentageComplete(self): self.editPercentageComplete([self.task1]) self.assertDoUndoRedo( lambda: self.assertNotEqual(date.DateTime(), self.task1.actualStartDateTime()), lambda: self.assertEqual(date.DateTime(), self.task1.actualStartDateTime())) class MarkActiveCommandTest(TaskCommandTestCase): def testMarkInactiveTaskActive(self): self.markActive([self.task1]) self.assertDoUndoRedo( lambda: self.assertNotEqual(date.DateTime(), self.task1.actualStartDateTime()), lambda: self.assertEqual(date.DateTime(), self.task1.actualStartDateTime())) def testMarkCompletedTaskActive(self): now = date.Now() self.task1.setCompletionDateTime(now) self.markActive([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(date.DateTime(), self.task1.completionDateTime()), lambda: self.assertEqual(now, self.task1.completionDateTime())) def testIgnoreTaskThatIsAlreadyActive(self): now = date.Now() self.task1.setActualStartDateTime(now) self.markActive([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(now, self.task1.actualStartDateTime())) def testTaskWithFutureActualStartDateTime(self): tomorrow = date.Tomorrow() self.task1.setActualStartDateTime(tomorrow) self.markActive([self.task1]) self.assertDoUndoRedo( lambda: self.assertAlmostEqual(date.Now().toordinal(), self.task1.actualStartDateTime().toordinal(), places=2), lambda: self.assertEqual(tomorrow, self.task1.actualStartDateTime())) class MarkInactiveCommandTest(TaskCommandTestCase): def testMarkActiveTaskInactive(self): now = date.Now() self.task1.setActualStartDateTime(now) self.markInactive([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(date.DateTime(), self.task1.actualStartDateTime()), lambda: self.assertEqual(now, self.task1.actualStartDateTime())) def testMarkCompletedTaskInactive(self): now = date.Now() self.task1.setCompletionDateTime(now) self.markInactive([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(date.DateTime(), self.task1.completionDateTime()), lambda: self.assertEqual(now, self.task1.completionDateTime())) def testIgnoreTaskThatIsAlreadyInactive(self): self.markInactive([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(date.DateTime(), self.task1.actualStartDateTime())) def testTaskWithFutureActualStartDateTime(self): tomorrow = date.Tomorrow() self.task1.setActualStartDateTime(tomorrow) self.markInactive([self.task1]) self.assertDoUndoRedo( lambda: self.assertEqual(date.DateTime(), self.task1.actualStartDateTime()), lambda: self.assertEqual(tomorrow, self.task1.actualStartDateTime())) class DragAndDropTaskCommandTest(CommandWithChildrenTestCase): def testCannotDropOnParent(self): self.dragAndDrop([self.parent], [self.child]) self.failIf(patterns.CommandHistory().hasHistory()) def testCannotDropOnChild(self): self.dragAndDrop([self.child], [self.parent]) self.failIf(patterns.CommandHistory().hasHistory()) def testCannotDropOnGrandchild(self): self.dragAndDrop([self.grandchild], [self.parent]) self.failIf(patterns.CommandHistory().hasHistory()) def testDropAsRootTask(self): self.dragAndDrop([], [self.grandchild]) self.assertDoUndoRedo(lambda: self.assertEqual(None, self.grandchild.parent()), lambda: self.assertEqual(self.child, self.grandchild.parent())) class PriorityCommandTestCase(TaskCommandTestCase): def setUp(self): super(PriorityCommandTestCase, self).setUp() self.taskList.append(self.task2) def assertDoUndoRedo(self, priority1do, priority2do, priority1undo, priority2undo): # pylint: disable=W0221 super(PriorityCommandTestCase, self).assertDoUndoRedo( lambda: self.failUnless(priority1do == self.task1.priority() and priority2do == self.task2.priority()), lambda: self.failUnless(priority1undo == self.task1.priority() and priority2undo == self.task2.priority())) class MaxPriorityCommandTest(PriorityCommandTestCase): def maxPriority(self, tasks=None): command.MaxPriorityCommand(self.taskList, tasks or []).do() def testEmptySelection(self): self.maxPriority() self.assertDoUndoRedo(0, 0, 0, 0) def testOneTaskWhenBothTasksHaveSamePriority(self): self.maxPriority([self.task1]) self.assertDoUndoRedo(1, 0, 0, 0) def testBothTasksWhenBothTasksHaveSamePriority(self): self.maxPriority([self.task1, self.task2]) self.assertDoUndoRedo(1, 1, 0, 0) def testMakeLowestPriorityTheMaxPriority(self): self.task2.setPriority(2) self.maxPriority([self.task1]) self.assertDoUndoRedo(3, 2, 0, 2) class MinPriorityCommandTest(PriorityCommandTestCase): def minPriority(self, tasks=None): command.MinPriorityCommand(self.taskList, tasks or []).do() def testEmptySelection(self): self.minPriority() self.assertDoUndoRedo(0, 0, 0, 0) def testOneTaskWhenBothTasksHaveSamePriority(self): self.minPriority([self.task1]) self.assertDoUndoRedo(-1, 0, 0, 0) def testBothTasksWhenBothTasksHaveSamePriority(self): self.minPriority([self.task1, self.task2]) self.assertDoUndoRedo(-1, -1, 0, 0) def testMakeLowestPriorityTheMaxPriority(self): self.task2.setPriority(-2) self.minPriority([self.task1]) self.assertDoUndoRedo(-3, -2, 0, -2) class IncreasePriorityCommandTest(PriorityCommandTestCase): def incPriority(self, tasks=None): command.IncPriorityCommand(self.taskList, tasks or []).do() def testEmptySelection(self): self.incPriority() self.assertDoUndoRedo(0, 0, 0, 0) def testOneTaskWhenBothTasksHaveSamePriority(self): self.incPriority([self.task1]) self.assertDoUndoRedo(1, 0, 0, 0) def testBothTasksWhenBothTasksHaveSamePriority(self): self.incPriority([self.task1, self.task2]) self.assertDoUndoRedo(1, 1, 0, 0) def testIncLowestPriority(self): self.task2.setPriority(-2) self.incPriority([self.task2]) self.assertDoUndoRedo(0, -1, 0, -2) class DecreasePriorityCommandTest(PriorityCommandTestCase): def decPriority(self, tasks=None): command.DecPriorityCommand(self.taskList, tasks or []).do() def testEmptySelection(self): self.decPriority() self.assertDoUndoRedo(0, 0, 0, 0) def testOneTaskWhenBothTasksHaveSamePriority(self): self.decPriority([self.task1]) self.assertDoUndoRedo(-1, 0, 0, 0) def testBothTasksWhenBothTasksHaveSamePriority(self): self.decPriority([self.task1, self.task2]) self.assertDoUndoRedo(-1, -1, 0, 0) def testDecLowestPriority(self): self.task2.setPriority(-2) self.decPriority([self.task2]) self.assertDoUndoRedo(0, -3, 0, -2) class EditReminderCommandTest(TaskCommandTestCase): def editReminder(self, tasks=None): command.EditReminderDateTimeCommand(self.taskList, tasks or [], newValue=date.Now() + date.ONE_HOUR).do() def testEditReminder(self): self.editReminder([self.task1]) self.assertDoUndoRedo(lambda: self.failUnless(self.task1.reminder()), lambda: self.failIf(self.task1.reminder())) class AddNoteCommandTest(TaskCommandTestCase): def addNote(self, tasks=None): command.AddNoteCommand(self.taskList, tasks or []).do() # pylint: disable=E1101 def testEmptySelection(self): self.addNote() self.assertDoUndoRedo(lambda: self.failIf(self.task1.notes())) def testAddNote(self): self.addNote([self.task1]) self.assertDoUndoRedo(lambda: self.failUnless(self.task1.notes()), lambda: self.failIf(self.task1.notes())) def testAddNoteToMultipleTasksAtOnce(self): self.addNote([self.task1, self.task2]) self.assertDoUndoRedo(\ lambda: self.failIf(self.task1.notes()[0] == self.task2.notes()[0]), lambda: self.failIf(self.task1.notes() or self.task2.notes())) class EditDuePlannedStartDateCommandTest(TaskCommandTestCase): def testSetPlannedStartDateToTomorrow(self): previousStart = self.task1.plannedStartDateTime() newStart = date.Now() + date.ONE_HOUR self.editPlannedStart(newStart, [self.task1]) self.assertDoUndoRedo(\ lambda: self.assertEqual(newStart, self.task1.plannedStartDateTime()), lambda: self.assertEqual(previousStart, self.task1.plannedStartDateTime())) def testSetDueDateToTomorrow(self): previousDue = self.task1.dueDateTime() newDue = date.Now() + date.ONE_HOUR self.editDue(newDue, [self.task1]) self.assertDoUndoRedo(\ lambda: self.assertEqual(newDue, self.task1.dueDateTime()), lambda: self.assertEqual(previousDue, self.task1.dueDateTime())) def testPushingBackPlannedStartDatePushesBackDueDate(self): self.task1.setDueDateTime(date.Now() + date.TWO_HOURS) previousPlannedStart = self.task1.plannedStartDateTime() previousDue = self.task1.dueDateTime() pushBack = date.ONE_HOUR newPlannedStart = previousPlannedStart + pushBack expectedDue = previousDue + pushBack self.editPlannedStart(newPlannedStart, [self.task1], keep_delta=True) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedDue, self.task1.dueDateTime()), lambda: self.assertEqual(previousDue, self.task1.dueDateTime())) def testPushingBackDueDatePushesBackPlannedStartDate(self): self.task1.setDueDateTime(date.Now() + date.TWO_HOURS) previousPlannedStart = self.task1.plannedStartDateTime() previousDue = self.task1.dueDateTime() pushBack = date.ONE_HOUR newDue = previousDue + pushBack expectedPlannedStart = previousPlannedStart + pushBack self.editDue(newDue, [self.task1], keep_delta=True) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedPlannedStart, self.task1.plannedStartDateTime()), lambda: self.assertEqual(previousPlannedStart, self.task1.plannedStartDateTime())) def testPushingBackPlannedStartDateDoesNotPushBackDueDate(self): self.task1.setDueDateTime(date.Now() + date.TWO_HOURS) previousPlannedStart = self.task1.plannedStartDateTime() previousDue = self.task1.dueDateTime() pushBack = date.ONE_HOUR newPlannedStart = previousPlannedStart + pushBack expectedDue = previousDue self.editPlannedStart(newPlannedStart, [self.task1]) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedDue, self.task1.dueDateTime()), lambda: self.assertEqual(previousDue, self.task1.dueDateTime())) def testPushingBackDueDateDoesNotPushBackPlannedStartDate(self): self.task1.setDueDateTime(date.Now() + date.TWO_HOURS) previousPlannedStart = self.task1.plannedStartDateTime() previousDue = self.task1.dueDateTime() pushBack = date.ONE_HOUR newDue = previousDue + pushBack expectedPlannedStart = previousPlannedStart self.editDue(newDue, [self.task1]) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedPlannedStart, self.task1.plannedStartDateTime()), lambda: self.assertEqual(previousPlannedStart, self.task1.plannedStartDateTime())) def testMissingDueDateIsNotPushedBack(self): previousPlannedStart = self.task1.plannedStartDateTime() pushBack = date.ONE_HOUR newPlannedStart = previousPlannedStart + pushBack expectedDue = date.DateTime() self.task1.setDueDateTime(expectedDue) self.editPlannedStart(newPlannedStart, [self.task1], keep_delta=True) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedDue, self.task1.dueDateTime())) def testMissingPlannedStartDateIsNotPushedBack(self): self.task1.setPlannedStartDateTime(date.DateTime()) self.task1.setDueDateTime(date.Now() + date.TWO_HOURS) previousDue = self.task1.dueDateTime() pushBack = date.ONE_HOUR newDue = previousDue + pushBack expectedStart = date.DateTime() self.editDue(newDue, [self.task1], keep_delta=True) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedStart, self.task1.plannedStartDateTime())) def testDueDateIsNotPushedBackWhenPlannedStartDateIsMissing(self): self.task1.setPlannedStartDateTime(date.DateTime()) self.task1.setDueDateTime(date.Now() + date.TWO_HOURS) pushBack = date.ONE_HOUR newStart = date.Now() + pushBack expectedDue = self.task1.dueDateTime() self.editPlannedStart(newStart, [self.task1], keep_delta=True) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedDue, self.task1.dueDateTime())) def testPlannedStartDateIsNotPushedBackWhenDueDateIsMissing(self): pushBack = date.ONE_HOUR newDue = date.Now() + pushBack expectedStart = self.task1.plannedStartDateTime() self.task1.setDueDateTime(date.DateTime()) self.editDue(newDue, [self.task1], keep_delta=True) self.assertDoUndoRedo(\ lambda: self.assertEqual(expectedStart, self.task1.plannedStartDateTime())) def testSetInfinitePlannedStartDate(self): newPlannedStartDateTime = date.DateTime() originalPlannedStartDateTime = self.task1.plannedStartDateTime() self.editPlannedStart(newPlannedStartDateTime, [self.task1]) self.assertDoUndoRedo(lambda: self.assertEqual(newPlannedStartDateTime, self.task1.plannedStartDateTime()), lambda: self.assertEqual(originalPlannedStartDateTime, self.task1.plannedStartDateTime())) def testSetInfinitePlannedStartDateDoesNotChangeDueDate(self): newPlannedStartDateTime = date.DateTime() originalDueDateTime = self.task1.dueDateTime() self.editPlannedStart(newPlannedStartDateTime, [self.task1], keep_delta=True) self.assertDoUndoRedo(lambda: self.assertEqual(originalDueDateTime, self.task1.dueDateTime())) def testSetInfiniteDueDate(self): newDueDateTime = date.DateTime() originalDueDateTime = self.task1.dueDateTime() self.editDue(newDueDateTime, [self.task1]) self.assertDoUndoRedo(lambda: self.assertEqual(newDueDateTime, self.task1.dueDateTime()), lambda: self.assertEqual(originalDueDateTime, self.task1.dueDateTime())) def testSetInfiniteDueDateDoesNotChangePlannedStartDate(self): newDueDateTime = date.DateTime() originalPlannedStartDateTime = self.task1.plannedStartDateTime() self.editDue(newDueDateTime, [self.task1], keep_delta=True) self.assertDoUndoRedo(lambda: self.assertEqual(originalPlannedStartDateTime, self.task1.plannedStartDateTime())) taskcoach-1.4.3/tests/unittests/commandTests/__init__.py000066400000000000000000000013331265347643000234470ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/domainTests/000077500000000000000000000000001265347643000211675ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/domainTests/AttachmentTest.py000066400000000000000000000074101265347643000244730ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os import test from taskcoachlib.domain import attachment from taskcoachlib.thirdparty.pubsub import pub class GetRelativePathTest(test.TestCase): def testBaseAndPathEqual(self): self.assertEqual('', attachment.getRelativePath('/test', '/test')) def testPathIsSubDirOfBase(self): self.assertEqual('subdir', attachment.getRelativePath('/test/subdir', '/test')) def testBaseIsSubDirOfPath(self): self.assertEqual('..', attachment.getRelativePath('/test', '/test/subdir')) def testBaseAndPathAreDifferent(self): self.assertEqual(os.path.join('..', 'bar'), attachment.getRelativePath('/bar', '/foo')) class FileAttachmentTest(test.TestCase): def setUp(self): self.filename = '' self.attachment = attachment.FileAttachment('filename') self.events = [] def onEvent(self, newValue, sender): # pylint: disable=W0221 self.events.append((newValue, sender)) def openAttachment(self, filename): self.filename = filename def testCreateFileAttachment(self): self.assertEqual('filename', self.attachment.location()) def testOpenFileAttachmentWithRelativeFilename(self): self.attachment.open(openAttachment=self.openAttachment) self.assertEqual('filename', self.filename) def testOpenFileAttachmentWithRelativeFilenameAndWorkingDir(self): self.attachment.open('/home', openAttachment=self.openAttachment) self.assertEqual(os.path.normpath(os.path.join('/home', 'filename')), self.filename) def testOpenFileAttachmentWithAbsoluteFilenameAndWorkingDir(self): att = attachment.FileAttachment('/home/frank/attachment.txt') att.open('/home/jerome', openAttachment=self.openAttachment) self.assertEqual(os.path.normpath(os.path.join('/home/frank/attachment.txt')), self.filename) def testCopy(self): copy = self.attachment.copy() self.assertEqual(copy.location(), self.attachment.location()) self.attachment.setDescription('new') self.assertEqual(copy.location(), self.attachment.location()) def testLocationNotification(self): pub.subscribe(self.onEvent, self.attachment.locationChangedEventType()) self.attachment.setLocation('new location') self.assertEqual([('new location', self.attachment)], self.events) def testModificationEventTypes(self): Attachment = attachment.Attachment # pylint: disable=E1101 self.assertEqual([Attachment.notesChangedEventType(), Attachment.subjectChangedEventType(), Attachment.descriptionChangedEventType(), Attachment.appearanceChangedEventType(), Attachment.orderingChangedEventType(), Attachment.locationChangedEventType()], Attachment.modificationEventTypes()) taskcoach-1.4.3/tests/unittests/domainTests/BaseTest.py000066400000000000000000000714661265347643000232710ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test import weakref from taskcoachlib import patterns from taskcoachlib.domain import base, date class SynchronizedObjectTest(test.TestCase): def setUp(self): self.object = base.SynchronizedObject() self.events = [] def onEvent(self, event): self.events.append(event) def registerObserver(self, eventType): # pylint: disable=W0221 patterns.Publisher().registerObserver(self.onEvent, eventType) def assertObjectStatus(self, expectedStatus): self.assertEqual(expectedStatus, self.object.getStatus()) def assertOneEventReceived(self, eventSource, eventType, *values): self.assertEqual([patterns.Event(eventType, eventSource, *values)], self.events) def testInitialStatus(self): self.assertObjectStatus(base.SynchronizedObject.STATUS_NEW) def testMarkDeleted(self): self.object.markDeleted() self.assertObjectStatus(base.SynchronizedObject.STATUS_DELETED) def testMarkDeletedNotification(self): self.registerObserver(self.object.markDeletedEventType()) self.object.markDeleted() self.assertOneEventReceived(self.object, self.object.markDeletedEventType(), self.object.getStatus()) def testMarkNewObjectAsNotDeleted(self): self.object.cleanDirty() self.assertObjectStatus(base.SynchronizedObject.STATUS_NONE) def testMarkDeletedObjectAsUndeleted(self): self.object.markDeleted() self.object.cleanDirty() self.assertObjectStatus(base.SynchronizedObject.STATUS_NONE) def testMarkNotDeletedNotification(self): self.object.markDeleted() self.registerObserver(self.object.markNotDeletedEventType()) self.object.cleanDirty() self.assertOneEventReceived(self.object, self.object.markNotDeletedEventType(), self.object.getStatus()) def testSetStateToDeletedCausesNotification(self): self.object.markDeleted() state = self.object.__getstate__() self.object.cleanDirty() self.registerObserver(self.object.markDeletedEventType()) self.object.__setstate__(state) self.assertOneEventReceived(self.object, self.object.markDeletedEventType(), self.object.STATUS_DELETED) def testSetStateToNotDeletedCausesNotification(self): state = self.object.__getstate__() self.object.markDeleted() self.registerObserver(self.object.markNotDeletedEventType()) self.object.__setstate__(state) self.assertOneEventReceived(self.object, self.object.markNotDeletedEventType(), self.object.STATUS_NEW) class ObjectSubclass(base.Object): pass class ObjectTest(test.TestCase): def setUp(self): self.object = base.Object() self.subclassObject = ObjectSubclass() self.eventsReceived = [] for eventType in (self.object.subjectChangedEventType(), self.object.descriptionChangedEventType(), self.object.appearanceChangedEventType()): patterns.Publisher().registerObserver(self.onEvent, eventType) def onEvent(self, event): self.eventsReceived.append(event) # Basic tests: def testCyclicReference(self): domainObject = base.Object() weak = weakref.ref(domainObject) del domainObject # Assuming CPython self.failUnless(weak() is None) # Custom attributes tests: def testCustomAttributes(self): self.object.setDescription('\n[mailto:cc=foo@bar.com]\n[mailto:cc=baz@spam.com]\n') self.assertEqual(self.object.customAttributes('mailto'), set(['cc=foo@bar.com', 'cc=baz@spam.com'])) # Id tests: def testSetIdOnCreation(self): domainObject = base.Object(id='123') self.assertEqual('123', domainObject.id()) def testIdIsAString(self): self.assertEqual(type(''), type(self.object.id())) def testDifferentObjectsHaveDifferentIds(self): self.assertNotEqual(base.Object().id(), self.object.id()) def testCopyHasDifferentId(self): objectId = self.object.id() # Force generation of id copy = self.object.copy() self.assertNotEqual(copy.id(), objectId) # Creation date/time tests: def testSetCreationDateTimeOnCreation(self): creation_datetime = date.DateTime(2012, 12, 12, 10, 0, 0) domain_object = base.Object(creationDateTime=creation_datetime) self.assertEqual(creation_datetime, domain_object.creationDateTime()) def testCreationDateTimeIsSetWhenNotPassed(self): now = date.Now() creation_datetime = self.object.creationDateTime() minute = date.TimeDelta(seconds=60) self.failUnless(now - minute < creation_datetime < now + minute) # Modification date/time tests: def testSetModificationDateTimeOnCreation(self): modification_datetime = date.DateTime(2012, 12, 12, 10, 0, 0) domain_object = base.Object(modificationDateTime=modification_datetime) self.assertEqual(modification_datetime, domain_object.modificationDateTime()) def testModificationDateTimeIsNotSetWhenNotPassed(self): self.assertEqual(date.DateTime.min, self.object.modificationDateTime()) # Subject tests: def testSubjectIsEmptyByDefault(self): self.assertEqual('', self.object.subject()) def testSetSubjectOnCreation(self): domainObject = base.Object(subject='Hi') self.assertEqual('Hi', domainObject.subject()) def testSetSubject(self): self.object.setSubject('New subject') self.assertEqual('New subject', self.object.subject()) def testSetSubjectCausesNotification(self): self.object.setSubject('New subject') self.assertEqual(patterns.Event( \ self.object.subjectChangedEventType(), self.object, 'New subject'), self.eventsReceived[0]) def testSetSubjectUnchangedDoesNotCauseNotification(self): self.object.setSubject('') self.failIf(self.eventsReceived) def testSubjectChangedNotificationIsDifferentForSubclass(self): self.subclassObject.setSubject('New') self.failIf(self.eventsReceived) # Description tests: def testDescriptionIsEmptyByDefault(self): self.failIf(self.object.description()) def testSetDescriptionOnCreation(self): domainObject = base.Object(description='Hi') self.assertEqual('Hi', domainObject.description()) def testSetDescription(self): self.object.setDescription('New description') self.assertEqual('New description', self.object.description()) def testSetDescriptionCausesNotification(self): self.object.setDescription('New description') self.assertEqual(patterns.Event( \ self.object.descriptionChangedEventType(), self.object, 'New description'), self.eventsReceived[0]) def testSetDescriptionUnchangedDoesNotCauseNotification(self): self.object.setDescription('') self.failIf(self.eventsReceived) def testDescriptionChangedNotificationIsDifferentForSubclass(self): self.subclassObject.setDescription('New') self.failIf(self.eventsReceived) # State tests: def testGetState(self): self.assertEqual(dict(subject='', description='', id=self.object.id(), status=self.object.getStatus(), fgColor=None, bgColor=None, font=None, icon='', selectedIcon='', creationDateTime=self.object.creationDateTime(), modificationDateTime=self.object.modificationDateTime(), ordering=self.object.ordering()), self.object.__getstate__()) def testSetState(self): newState = dict(subject='New', description='New', id=None, status=self.object.STATUS_DELETED, fgColor=wx.GREEN, bgColor=wx.RED, font=wx.SWISS_FONT, icon='icon', selectedIcon='selectedIcon', creationDateTime=date.DateTime(2012, 12, 12, 12, 0, 0), modificationDateTime=date.DateTime(2012, 12, 12, 12, 1, 0), ordering=42L) self.object.__setstate__(newState) self.assertEqual(newState, self.object.__getstate__()) def testSetState_SendsOneNotification(self): newState = dict(subject='New', description='New', id=None, status=self.object.STATUS_DELETED, fgColor=wx.GREEN, bgColor=wx.RED, font=wx.SWISS_FONT, icon='icon', selectedIcon='selectedIcon', creationDateTime=date.DateTime(2013, 1, 1, 0, 0, 0), modificationDateTime=date.DateTime(2013, 1, 1, 1, 0, 0), ordering=42L) self.object.__setstate__(newState) self.assertEqual(1, len(self.eventsReceived)) # Copy tests: def testCopy_IdIsNotCopied(self): copy = self.object.copy() self.assertNotEqual(copy.id(), self.object.id()) def testCopy_CreationDateTimeIsNotCopied(self): copy = self.object.copy() # Use >= to prevent failures on fast computers with low time granularity self.failUnless(copy.creationDateTime() >= self.object.creationDateTime()) def testCopy_ModificationDateTimeIsNotCopied(self): self.object.setModificationDateTime(date.DateTime(2013, 1, 1, 1, 0, 0)) copy = self.object.copy() self.assertEqual(date.DateTime.min, copy.modificationDateTime()) def testCopy_SubjectIsCopied(self): self.object.setSubject('New subject') copy = self.object.copy() self.assertEqual(copy.subject(), self.object.subject()) def testCopy_DescriptionIsCopied(self): self.object.setDescription('New description') copy = self.object.copy() self.assertEqual(copy.description(), self.object.description()) def testCopy_ForegroundColorIsCopied(self): self.object.setForegroundColor(wx.RED) copy = self.object.copy() self.assertEqual(copy.foregroundColor(), self.object.foregroundColor()) def testCopy_BackgroundColorIsCopied(self): self.object.setBackgroundColor(wx.RED) copy = self.object.copy() self.assertEqual(copy.backgroundColor(), self.object.backgroundColor()) def testCopy_FontIsCopied(self): self.object.setFont(wx.SWISS_FONT) copy = self.object.copy() self.assertEqual(copy.font(), self.object.font()) def testCopy_IconIsCopied(self): self.object.setIcon('icon') copy = self.object.copy() self.assertEqual(copy.icon(), self.object.icon()) def testCopy_ShouldUseSubclassForCopy(self): copy = self.subclassObject.copy() self.assertEqual(copy.__class__, self.subclassObject.__class__) # Color tests def testDefaultForegroundColor(self): self.assertEqual(None, self.object.foregroundColor()) def testSetForegroundColor(self): self.object.setForegroundColor(wx.GREEN) self.assertEqual(wx.GREEN, self.object.foregroundColor()) def testSetForegroundColorWithTupleColor(self): self.object.setForegroundColor((255, 0, 0, 255)) self.assertEqual(wx.RED, self.object.foregroundColor()) def testSetForegroundColorOnCreation(self): domainObject = base.Object(fgColor=wx.GREEN) self.assertEqual(wx.GREEN, domainObject.foregroundColor()) def testForegroundColorChangedNotification(self): self.object.setForegroundColor(wx.BLACK) self.assertEqual(1, len(self.eventsReceived)) def testDefaultBackgroundColor(self): self.assertEqual(None, self.object.backgroundColor()) def testSetBackgroundColor(self): self.object.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.object.backgroundColor()) def testSetBackgroundColorWithTupleColor(self): self.object.setBackgroundColor((255, 0, 0, 255)) self.assertEqual(wx.RED, self.object.backgroundColor()) def testSetBackgroundColorOnCreation(self): domainObject = base.Object(bgColor=wx.GREEN) self.assertEqual(wx.GREEN, domainObject.backgroundColor()) def testBackgroundColorChangedNotification(self): self.object.setBackgroundColor(wx.BLACK) self.assertEqual(1, len(self.eventsReceived)) # Font tests: def testDefaultFont(self): self.assertEqual(None, self.object.font()) def testSetFont(self): self.object.setFont(wx.SWISS_FONT) self.assertEqual(wx.SWISS_FONT, self.object.font()) def testSetFontOnCreation(self): domainObject = base.Object(font=wx.SWISS_FONT) self.assertEqual(wx.SWISS_FONT, domainObject.font()) def testFontChangedNotification(self): self.object.setFont(wx.SWISS_FONT) self.assertEqual(1, len(self.eventsReceived)) # Icon tests: def testDefaultIcon(self): self.assertEqual('', self.object.icon()) def testSetIcon(self): self.object.setIcon('icon') self.assertEqual('icon', self.object.icon()) def testSetIconOnCreation(self): domainObject = base.Object(icon='icon') self.assertEqual('icon', domainObject.icon()) def testIconChangedNotification(self): self.object.setIcon('icon') self.assertEqual(1, len(self.eventsReceived)) def testDefaultSelectedIcon(self): self.assertEqual('', self.object.selectedIcon()) def testSetSelectedIcon(self): self.object.setSelectedIcon('selected') self.assertEqual('selected', self.object.selectedIcon()) def testSelectedIconAfterSettingRegularIconOnly(self): self.object.setIcon('icon') self.assertEqual('', self.object.selectedIcon()) def testSetSelectedIconOnCreation(self): domainObject = base.Object(selectedIcon='icon') self.assertEqual('icon', domainObject.selectedIcon()) def testSelectedIconChangedNotification(self): self.object.setSelectedIcon('icon') self.assertEqual(1, len(self.eventsReceived)) # Event types: def testModificationEventTypes(self): self.assertEqual([self.object.subjectChangedEventType(), self.object.descriptionChangedEventType(), self.object.appearanceChangedEventType(), self.object.orderingChangedEventType()], self.object.modificationEventTypes()) class CompositeObjectTest(test.TestCase): def setUp(self): self.compositeObject = base.CompositeObject() self.child = None self.eventsReceived = [] def onEvent(self, event): self.eventsReceived.append(event) def addChild(self, **kwargs): self.child = base.CompositeObject(**kwargs) self.compositeObject.addChild(self.child) self.child.setParent(self.compositeObject) def removeChild(self): self.compositeObject.removeChild(self.child) def testIsExpanded(self): self.failIf(self.compositeObject.isExpanded()) def testExpand(self): self.compositeObject.expand() self.failUnless(self.compositeObject.isExpanded()) def testCollapse(self): self.compositeObject.expand() self.compositeObject.expand(False) self.failIf(self.compositeObject.isExpanded()) def testSetExpansionStateViaConstructor(self): compositeObject = base.CompositeObject(expandedContexts=['None']) self.failUnless(compositeObject.isExpanded()) def testSetExpansionStatesViaConstructor(self): compositeObject = base.CompositeObject(expandedContexts=['context1', 'context2']) self.assertEqual(['context1', 'context2'], sorted(compositeObject.expandedContexts())) def testExpandInContext_DoesNotChangeExpansionStateInDefaultContext(self): self.compositeObject.expand(context='some_viewer') self.failIf(self.compositeObject.isExpanded()) def testExpandInContext_DoesChangeExpansionStateInGivenContext(self): self.compositeObject.expand(context='some_viewer') self.failUnless(self.compositeObject.isExpanded(context='some_viewer')) def testIsExpandedInUnknownContext_ReturnsFalse(self): self.failIf(self.compositeObject.isExpanded(context='whatever')) def testGetContextsWhereExpanded(self): self.assertEqual([], self.compositeObject.expandedContexts()) def testRecursiveSubject(self): self.compositeObject.setSubject('parent') self.addChild(subject='child') self.assertEqual(u'parent -> child', self.child.subject(recursive=True)) def testSubjectNotification(self): self.addChild(subject='child') patterns.Publisher().registerObserver(self.onEvent, eventType=self.compositeObject.subjectChangedEventType(), eventSource=self.child) self.compositeObject.setSubject('parent') self.assertEqual([patterns.Event(self.compositeObject.subjectChangedEventType(), self.child, 'child')], self.eventsReceived) def testSubItemUsesParentForegroundColor(self): self.addChild() self.compositeObject.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.child.foregroundColor(recursive=True)) def testSubItemDoesNotUseParentForegroundColorIfItHasItsOwnForegroundColor(self): self.addChild(fgColor=wx.RED) self.compositeObject.setForegroundColor(wx.BLUE) self.assertEqual(wx.RED, self.child.foregroundColor(recursive=True)) def testApperanceChangedNotificationWhenForegroundColorChanges(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.appearanceChangedEventType(), eventSource=self.child) self.compositeObject.setForegroundColor(wx.RED) self.assertEqual(1, len(self.eventsReceived)) def testSubItemUsesParentBackgroundColor(self): self.addChild() self.compositeObject.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.child.backgroundColor(recursive=True)) def testSubItemDoesNotUseParentBackgroundColorIfItHasItsOwnBackgroundColor(self): self.addChild(bgColor=wx.RED) self.compositeObject.setBackgroundColor(wx.BLUE) self.assertEqual(wx.RED, self.child.backgroundColor(recursive=True)) def testBackgroundColorChangedNotification(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.appearanceChangedEventType(), eventSource=self.child) self.compositeObject.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.eventsReceived)) def testSubItemUsesParentFont(self): self.addChild() self.compositeObject.setFont(wx.ITALIC_FONT) self.assertEqual(wx.ITALIC_FONT, self.child.font(recursive=True)) def testSubItemDoesNotUseParentFontIfItHasItsOwnFont(self): self.addChild(font=wx.SWISS_FONT) self.compositeObject.setFont(wx.ITALIC_FONT) self.assertEqual(wx.SWISS_FONT, self.child.font(recursive=True)) def testFontChangedNotification(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.appearanceChangedEventType(), eventSource=self.child) self.compositeObject.setFont(wx.SWISS_FONT) self.assertEqual(1, len(self.eventsReceived)) def testSubItemUsesParentIcon(self): self.addChild() self.compositeObject.setIcon('icon') self.assertEqual('icon', self.child.icon(recursive=True)) def testSubItemDoesNotUseParentIconIfItHasItsOwnIcon(self): self.addChild(icon='childIcon') self.compositeObject.setIcon('icon') self.assertEqual('childIcon', self.child.icon(recursive=True)) def testIconChangedNotification(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.appearanceChangedEventType(), eventSource=self.child) self.compositeObject.setIcon('icon') self.assertEqual(1, len(self.eventsReceived)) def testSubItemUsesParentSelectedIcon(self): self.addChild() self.compositeObject.setSelectedIcon('icon') self.assertEqual('icon', self.child.selectedIcon(recursive=True)) def testSubItemDoesNotUseParentSelectedIconIfItHasItsOwnSelectedIcon(self): self.addChild(selectedIcon='childIcon') self.compositeObject.setSelectedIcon('icon') self.assertEqual('childIcon', self.child.selectedIcon(recursive=True)) def testSubItemUsesParentSelectedIconEvenIfItHasItsOwnIcon(self): self.addChild(icon='childIcon') self.compositeObject.setSelectedIcon('icon') self.assertEqual('icon', self.child.selectedIcon(recursive=True)) def testSelectedIconChangedNotification(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.appearanceChangedEventType(), eventSource=self.child) self.compositeObject.setSelectedIcon('icon') self.assertEqual(1, len(self.eventsReceived)) def testCompositeWithChildrenUsesPluralIconIfAvailable(self): self.compositeObject.setIcon('book_icon') self.assertEqual('book_icon', self.compositeObject.icon(recursive=True)) self.addChild() self.assertEqual('books_icon', self.compositeObject.icon(recursive=True)) self.assertEqual('book_icon', self.compositeObject.icon(recursive=False)) def testCompositeWithChildrenUsesPluralSelectedIconIfAvailable(self): self.compositeObject.setSelectedIcon('book_icon') self.assertEqual('book_icon', self.compositeObject.selectedIcon(recursive=True)) self.addChild() self.assertEqual('books_icon', self.compositeObject.selectedIcon(recursive=True)) self.assertEqual('book_icon', self.compositeObject.selectedIcon(recursive=False)) def testCompositeWithoutChildrenDoesNotUseSingularIconIfAvailable(self): self.compositeObject.setIcon('books_icon') self.assertEqual('books_icon', self.compositeObject.icon(recursive=False)) self.assertEqual('books_icon', self.compositeObject.icon(recursive=True)) def testCompositeWithoutChildrenDoesNotUseSingularSelectedIconIfAvailable(self): self.compositeObject.setSelectedIcon('books_icon') self.assertEqual('books_icon', self.compositeObject.selectedIcon(recursive=False)) self.assertEqual('books_icon', self.compositeObject.selectedIcon(recursive=True)) def testChildOfCompositeUsesSingularIconIfAvailable(self): self.compositeObject.setIcon('books_icon') self.addChild() self.assertEqual('book_icon', self.child.icon(recursive=True)) def testChildOfCompositeUsesSingularSelectedIconIfAvailable(self): self.compositeObject.setSelectedIcon('books_icon') self.addChild() self.assertEqual('book_icon', self.child.selectedIcon(recursive=True)) def testParentUsesSingularIconAfterChildRemoved(self): self.compositeObject.setIcon('book_icon') self.addChild() self.assertEqual('books_icon', self.compositeObject.icon(recursive=True)) self.removeChild() self.assertEqual('book_icon', self.compositeObject.icon(recursive=True)) def testParentUsesSingularSelectedIconAfterChildRemoved(self): self.compositeObject.setSelectedIcon('book_icon') self.addChild() self.assertEqual('books_icon', self.compositeObject.selectedIcon(recursive=True)) self.removeChild() self.assertEqual('book_icon', self.compositeObject.selectedIcon(recursive=True)) def testCopy(self): self.compositeObject.expand(context='some_viewer') copy = self.compositeObject.copy() # pylint: disable=E1101 self.assertEqual(copy.expandedContexts(), self.compositeObject.expandedContexts()) self.compositeObject.expand(context='another_viewer') self.failIf('another_viewer' in copy.expandedContexts()) def testMarkDeleted(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.markDeletedEventType()) self.compositeObject.markDeleted() expectedEvent = patterns.Event(base.CompositeObject.markDeletedEventType(), self.compositeObject, base.CompositeObject.STATUS_DELETED) expectedEvent.addSource(self.child, base.CompositeObject.STATUS_DELETED) self.assertEqual([expectedEvent], self.eventsReceived) def testMarkDirty(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.markNotDeletedEventType()) self.compositeObject.markDeleted() self.compositeObject.markDirty(force=True) expectedEvent = patterns.Event(base.CompositeObject.markNotDeletedEventType(), self.compositeObject, base.CompositeObject.STATUS_CHANGED) expectedEvent.addSource(self.child, base.CompositeObject.STATUS_CHANGED) self.assertEqual([expectedEvent], self.eventsReceived) def testMarkNew(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.markNotDeletedEventType()) self.compositeObject.markDeleted() self.compositeObject.markNew() expectedEvent = patterns.Event(base.CompositeObject.markNotDeletedEventType(), self.compositeObject, base.CompositeObject.STATUS_NEW) expectedEvent.addSource(self.child, base.CompositeObject.STATUS_NEW) self.assertEqual([expectedEvent], self.eventsReceived) def testCleanDirty(self): self.addChild() patterns.Publisher().registerObserver(self.onEvent, eventType=base.CompositeObject.markNotDeletedEventType()) self.compositeObject.markDeleted() self.compositeObject.cleanDirty() expectedEvent = patterns.Event(base.CompositeObject.markNotDeletedEventType(), self.compositeObject, base.CompositeObject.STATUS_NONE) expectedEvent.addSource(self.child, base.CompositeObject.STATUS_NONE) self.assertEqual([expectedEvent], self.eventsReceived) def testModificationEventTypes(self): self.assertEqual([self.compositeObject.addChildEventType(), self.compositeObject.removeChildEventType(), self.compositeObject.subjectChangedEventType(), self.compositeObject.descriptionChangedEventType(), self.compositeObject.appearanceChangedEventType(), self.compositeObject.orderingChangedEventType(), self.compositeObject.expansionChangedEventType()], self.compositeObject.modificationEventTypes()) class BaseCollectionTest(test.TestCase): def setUp(self): self.collection = base.Collection() def testLookupByIdWhenCollectionIsEmptyRaisesIndexError(self): self.assertRaises(IndexError, self.collection.getObjectById, 'id') def testLookupIdWhenObjectIsInCollection(self): domainObject = base.CompositeObject() self.collection.append(domainObject) self.assertEqual(domainObject, self.collection.getObjectById(domainObject.id())) taskcoach-1.4.3/tests/unittests/domainTests/CategorizableTest.py000066400000000000000000001044701265347643000251620ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib import patterns from taskcoachlib.domain import category, categorizable, date class CategorizableCompositeObjectTest(test.TestCase): def setUp(self): self.categorizable = categorizable.CategorizableCompositeObject(subject='categorizable') self.category = category.Category('category') categoryAddedEventType = categorizable.CategorizableCompositeObject.categoryAddedEventType() categoryRemovedEventType = categorizable.CategorizableCompositeObject.categoryRemovedEventType() categorySubjectChangedEventType = categorizable.CategorizableCompositeObject.categorySubjectChangedEventType() appearanceChangedEventType = categorizable.CategorizableCompositeObject.appearanceChangedEventType() def assertEvent(self, *expectedEventArgs): expectedEvent = patterns.Event(*expectedEventArgs) self.assertEqual([expectedEvent], self.events) def testCategorizableDoesNotBelongToAnyCategoryByDefault(self): for recursive in False, True: for upwards in False, True: self.failIf(self.categorizable.categories(recursive=recursive, upwards=upwards)) def testCategorizableHasNoForegroundColorByDefault(self): self.assertEqual(None, self.categorizable.foregroundColor()) def testCategorizableHasNoBackgroundColorByDefault(self): self.assertEqual(None, self.categorizable.backgroundColor()) def testCategorizableHasNoFontByDefault(self): self.assertEqual(None, self.categorizable.font()) def testAddCategory(self): self.categorizable.addCategory(self.category) self.assertEqual(set([self.category]), self.categorizable.categories()) def testAddCategoryNotification(self): self.registerObserver(self.categoryAddedEventType) self.categorizable.addCategory(self.category) self.assertEvent(self.categoryAddedEventType, self.categorizable, self.category) def testAddSecondCategory(self): self.categorizable.addCategory(self.category) cat2 = category.Category('category 2') self.categorizable.addCategory(cat2) self.assertEqual(set([self.category, cat2]), self.categorizable.categories()) def testAddSameCategoryTwice(self): self.categorizable.addCategory(self.category) self.categorizable.addCategory(self.category) self.assertEqual(set([self.category]), self.categorizable.categories()) def testAddSameCategoryTwiceCausesNoNotification(self): self.categorizable.addCategory(self.category) self.registerObserver(self.categoryAddedEventType) self.categorizable.addCategory(self.category) self.failIf(self.events) def testAddCategoryViaConstructor(self): categorizableObject = categorizable.CategorizableCompositeObject(categories=[self.category]) self.assertEqual(set([self.category]), categorizableObject.categories()) def testAddCategoriesViaConstructor(self): anotherCategory = category.Category('Another category') categories = [self.category, anotherCategory] categorizableObject = categorizable.CategorizableCompositeObject(categories= \ categories) self.assertEqual(set(categories), categorizableObject.categories()) def testAddCategoryDoesNotAddCategorizableToCategory(self): self.categorizable.addCategory(self.category) self.assertEqual(set([]), self.category.categorizables()) def testAddParentToCategory(self): child = categorizable.CategorizableCompositeObject(subject='child') self.registerObserver(self.categoryAddedEventType, eventSource=child) self.categorizable.addChild(child) child.setParent(self.categorizable) cat = category.Category(subject='Parent category') self.categorizable.addCategory(cat) self.assertEvent(self.categoryAddedEventType, child, cat) def testRemoveCategory(self): self.categorizable.addCategory(self.category) self.categorizable.removeCategory(self.category) self.assertEqual(set(), self.categorizable.categories()) def testRemoveCategoryNotification(self): self.categorizable.addCategory(self.category) self.registerObserver(self.categoryRemovedEventType) self.categorizable.removeCategory(self.category) self.assertEvent(self.categoryRemovedEventType, self.categorizable, self.category) def testRemoveCategoryTwice(self): self.categorizable.addCategory(self.category) self.categorizable.removeCategory(self.category) self.categorizable.removeCategory(self.category) self.assertEqual(set(), self.categorizable.categories()) def testRemoveCategoryTwiceNotification(self): self.categorizable.addCategory(self.category) self.registerObserver(self.categoryRemovedEventType) self.categorizable.removeCategory(self.category) self.categorizable.removeCategory(self.category) self.assertEqual(1, len(self.events)) def testCategorySubjectChanged(self): self.registerObserver(self.categorySubjectChangedEventType) self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.category.setSubject('New subject') self.assertEvent(self.categorySubjectChangedEventType, self.categorizable, 'New subject') def testCategorySubjectChanged_NotifySubItemsToo(self): childCategorizable = categorizable.CategorizableCompositeObject(subject='Child categorizable') self.registerObserver(self.categorySubjectChangedEventType, eventSource=childCategorizable) self.categorizable.addChild(childCategorizable) self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.category.setSubject('New subject') self.assertEvent(self.categorySubjectChangedEventType, childCategorizable, 'New subject') def testForegroundColor(self): self.categorizable.addCategory(self.category) self.category.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.categorizable.foregroundColor(recursive=True)) def testBackgroundColor(self): self.categorizable.addCategory(self.category) self.category.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.categorizable.backgroundColor(recursive=True)) def testFont(self): self.categorizable.addCategory(self.category) self.category.setFont(wx.SWISS_FONT) self.assertEqual(wx.SWISS_FONT, self.categorizable.font(recursive=True)) def testCategorizableOwnForegroundColorOverridesCategoryForegroundColor(self): self.categorizable.addCategory(self.category) self.category.setForegroundColor(wx.RED) self.categorizable.setForegroundColor(wx.GREEN) self.assertEqual(wx.GREEN, self.categorizable.foregroundColor(recursive=True)) def testCategorizableOwnBackgroundColorOverridesCategoryBackgroundColor(self): self.categorizable.addCategory(self.category) self.category.setBackgroundColor(wx.RED) self.categorizable.setBackgroundColor(wx.GREEN) self.assertEqual(wx.GREEN, self.categorizable.backgroundColor(recursive=True)) def testCategorizableOwnFontOverridesCategoryFont(self): self.categorizable.addCategory(self.category) self.category.setFont(wx.SWISS_FONT) self.categorizable.setFont(wx.NORMAL_FONT) self.assertEqual(wx.NORMAL_FONT, self.categorizable.font()) def testForegroundColorWithTupleColor(self): self.categorizable.addCategory(self.category) self.category.setForegroundColor((255, 0, 0, 255)) self.assertEqual(wx.RED, self.categorizable.foregroundColor(recursive=True)) def testBackgroundColorWithTupleColor(self): self.categorizable.addCategory(self.category) self.category.setBackgroundColor((255, 0, 0, 255)) self.assertEqual(wx.RED, self.categorizable.backgroundColor(recursive=True)) def testSubItemUsesParentForegroundColor(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) child.setParent(self.categorizable) self.category.setForegroundColor(wx.RED) self.assertEqual(wx.RED, child.foregroundColor(recursive=True)) def testSubItemUsesParentBackgroundColor(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) child.setParent(self.categorizable) self.category.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, child.backgroundColor(recursive=True)) def testSubItemUsesParentFont(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) child.setParent(self.categorizable) self.category.setFont(wx.SWISS_FONT) self.assertEqual(wx.SWISS_FONT, child.font(recursive=True)) def testSubItemDoesNotUseParentForegroundColorWhenItHasItsOwnForegroundColor(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) child.setParent(self.categorizable) child.addCategory(self.category) self.categorizable.setForegroundColor(wx.RED) self.category.setForegroundColor(wx.BLUE) self.assertEqual(wx.BLUE, child.foregroundColor(recursive=True)) def testSubItemDoesNotUseParentBackgroundColorWhenItHasItsOwnBackgroundColor(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) child.setParent(self.categorizable) child.addCategory(self.category) self.categorizable.setBackgroundColor(wx.RED) self.category.setBackgroundColor(wx.BLUE) self.assertEqual(wx.BLUE, child.backgroundColor(recursive=True)) def testSubItemDoesNotUseParentFontWhenItHasItsOwnFont(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) child.setParent(self.categorizable) child.addCategory(self.category) self.categorizable.setFont(wx.Font(10, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)) categoryFont = wx.Font(11, wx.FONTFAMILY_ROMAN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL) self.category.setFont(categoryFont) self.assertEqual(categoryFont, child.font(recursive=True)) def testForegroundColorChanged(self): self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.registerObserver(self.appearanceChangedEventType) self.category.setForegroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testBackgroundColorChanged(self): self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.registerObserver(self.appearanceChangedEventType) self.category.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testFontChanged(self): self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.registerObserver(self.appearanceChangedEventType) self.category.setFont(wx.SWISS_FONT) self.assertEqual(1, len(self.events)) def testIconChanged(self): self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.registerObserver(self.appearanceChangedEventType) self.category.setIcon('icon') self.assertEqual(1, len(self.events)) def testForegroundColorChanged_NotifySubItemsToo(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) self.registerObserver(self.appearanceChangedEventType, eventSource=child) self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.category.setForegroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testBackgroundColorChanged_NotifySubItemsToo(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) self.registerObserver(self.appearanceChangedEventType, eventSource=child) self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.category.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testFontChanged_NotifySubItemsToo(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) self.registerObserver(self.appearanceChangedEventType, eventSource=child) self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.category.setFont(wx.SWISS_FONT) self.assertEqual(1, len(self.events)) def testIconChanged_NotifySubItemsToo(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) self.registerObserver(self.appearanceChangedEventType, eventSource=child) self.categorizable.addCategory(self.category) self.category.addCategorizable(self.categorizable) self.category.setIcon('icon') self.assertEqual(1, len(self.events)) def testCategorizableDoesNotNotifyWhenItHasItsOwnForegroundColor(self): self.categorizable.addCategory(self.category) self.categorizable.setForegroundColor(wx.RED) self.registerObserver(self.categorizable.appearanceChangedEventType()) self.category.setForegroundColor(wx.GREEN) self.failIf(self.events) def testCategorizableDoesNotNotifyWhenItHasItsOwnBackgroundColor(self): self.categorizable.addCategory(self.category) self.categorizable.setBackgroundColor(wx.RED) self.registerObserver(self.categorizable.appearanceChangedEventType()) self.category.setBackgroundColor(wx.GREEN) self.failIf(self.events) def testCategorizableDoesNotNotifyWhenItHasItsOwnFont(self): self.categorizable.addCategory(self.category) self.categorizable.setFont(wx.SWISS_FONT) self.registerObserver(self.categorizable.appearanceChangedEventType()) self.category.setFont(wx.NORMAL_FONT) self.failIf(self.events) def testCategorizableDoesNotNotifyWhenItHasItsOwnIcon(self): self.categorizable.addCategory(self.category) self.categorizable.setIcon('icon') self.registerObserver(self.categorizable.appearanceChangedEventType()) self.category.setIcon('another icon') self.failIf(self.events) def testParentForegroundColorChanged(self): self.registerObserver(self.appearanceChangedEventType) subCategory = category.Category('Subcategory') self.category.addChild(subCategory) subCategory.setParent(self.category) self.categorizable.addCategory(subCategory) subCategory.addCategorizable(self.categorizable) self.category.setForegroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testParentBackgroundColorChanged(self): self.registerObserver(self.appearanceChangedEventType) subCategory = category.Category('Subcategory') self.category.addChild(subCategory) subCategory.setParent(self.category) self.categorizable.addCategory(subCategory) subCategory.addCategorizable(self.categorizable) self.category.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testParentFontChanged(self): self.registerObserver(self.appearanceChangedEventType) subCategory = category.Category('Subcategory') self.category.addChild(subCategory) subCategory.setParent(self.category) self.categorizable.addCategory(subCategory) subCategory.addCategorizable(self.categorizable) self.category.setFont(wx.SWISS_FONT) self.assertEqual(1, len(self.events)) def testParentIconChanged(self): self.registerObserver(self.appearanceChangedEventType) subCategory = category.Category('Subcategory') self.category.addChild(subCategory) subCategory.setParent(self.category) self.categorizable.addCategory(subCategory) subCategory.addCategorizable(self.categorizable) self.category.setIcon('icon') self.assertEqual(1, len(self.events)) def testAddCategoryWithForegroundColor(self): self.registerObserver(self.appearanceChangedEventType) newCategory = category.Category('New category') newCategory.setForegroundColor(wx.RED) self.categorizable.addCategory(newCategory) self.assertEqual(1, len(self.events)) def testAddCategoryWithBackgroundColor(self): self.registerObserver(self.appearanceChangedEventType) newCategory = category.Category('New category') newCategory.setBackgroundColor(wx.RED) self.categorizable.addCategory(newCategory) self.assertEqual(1, len(self.events)) def testAddCategoryWithFont(self): self.registerObserver(self.appearanceChangedEventType) newCategory = category.Category('New category') newCategory.setFont(wx.SWISS_FONT) self.categorizable.addCategory(newCategory) self.assertEqual(1, len(self.events)) def testAddCategoryWithIcon(self): self.registerObserver(self.appearanceChangedEventType) newCategory = category.Category('New category') newCategory.setIcon('icon') self.categorizable.addCategory(newCategory) self.assertEqual(1, len(self.events)) def testAddCategoryWithParentWithForegroundColor(self): self.registerObserver(self.appearanceChangedEventType) parentCategory = category.Category('Parent') parentCategory.setForegroundColor(wx.RED) childCategory = category.Category('Child') parentCategory.addChild(childCategory) childCategory.setParent(parentCategory) self.categorizable.addCategory(childCategory) self.assertEqual(1, len(self.events)) def testAddCategoryWithParentWithBackgroundColor(self): self.registerObserver(self.appearanceChangedEventType) parentCategory = category.Category('Parent') parentCategory.setBackgroundColor(wx.RED) childCategory = category.Category('Child') parentCategory.addChild(childCategory) childCategory.setParent(parentCategory) self.categorizable.addCategory(childCategory) self.assertEqual(1, len(self.events)) def testAddCategoryWithParentWithFont(self): self.registerObserver(self.appearanceChangedEventType) parentCategory = category.Category('Parent') parentCategory.setFont(wx.SWISS_FONT) childCategory = category.Category('Child') parentCategory.addChild(childCategory) childCategory.setParent(parentCategory) self.categorizable.addCategory(childCategory) self.assertEqual(1, len(self.events)) def testAddCategoryWithParentWithIcon(self): self.registerObserver(self.appearanceChangedEventType) parentCategory = category.Category('Parent') parentCategory.setIcon('icon') childCategory = category.Category('Child') parentCategory.addChild(childCategory) childCategory.setParent(parentCategory) self.categorizable.addCategory(childCategory) self.assertEqual(1, len(self.events)) def testRemoveCategoryWithForegroundColor(self): self.categorizable.addCategory(self.category) self.category.setForegroundColor(wx.RED) self.registerObserver(self.appearanceChangedEventType) self.categorizable.removeCategory(self.category) self.assertEqual(1, len(self.events)) def testRemoveCategoryWithBackgroundColor(self): self.categorizable.addCategory(self.category) self.category.setBackgroundColor(wx.RED) self.registerObserver(self.appearanceChangedEventType) self.categorizable.removeCategory(self.category) self.assertEqual(1, len(self.events)) def testRemoveCategoryWithFont(self): self.categorizable.addCategory(self.category) self.category.setFont(wx.SWISS_FONT) self.registerObserver(self.appearanceChangedEventType) self.categorizable.removeCategory(self.category) self.assertEqual(1, len(self.events)) def testRemoveCategoryWithIcon(self): self.categorizable.addCategory(self.category) self.category.setIcon('icon') self.registerObserver(self.appearanceChangedEventType) self.categorizable.removeCategory(self.category) self.assertEqual(1, len(self.events)) def testForegroundColorWhenOneOutOfTwoCategoriesHasForegroundColor(self): self.categorizable.addCategory(self.category) self.categorizable.addCategory(category.Category('Another category')) self.category.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.categorizable.foregroundColor(recursive=True)) def testBackgroundColorWhenOneOutOfTwoCategoriesHasBackgroundColor(self): self.categorizable.addCategory(self.category) self.categorizable.addCategory(category.Category('Another category')) self.category.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.categorizable.backgroundColor(recursive=True)) def testFontWhenOneOutOfTwoCategoriesHasFont(self): self.categorizable.addCategory(self.category) self.categorizable.addCategory(category.Category('Another category')) self.category.setFont(wx.SWISS_FONT) self.assertEqual(wx.SWISS_FONT, self.categorizable.font(recursive=True)) def testIconWhenOneOutOfTwoCategoriesHasIcon(self): self.categorizable.addCategory(self.category) self.categorizable.addCategory(category.Category('Another category')) self.category.setIcon('icon') self.assertEqual('icon', self.categorizable.icon(recursive=True)) def testForegroundColorWhenBothCategoriesHaveSameForegroundColor(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) for cat in [self.category, anotherCategory]: cat.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.categorizable.foregroundColor(recursive=True)) def testBackgroundColorWhenBothCategoriesHaveSameBackgroundColor(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) for cat in [self.category, anotherCategory]: cat.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.categorizable.backgroundColor(recursive=True)) def testFontWhenBothCategoriesHaveSameFont(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) for cat in [self.category, anotherCategory]: cat.setFont(wx.SWISS_FONT) self.assertEqual(wx.SWISS_FONT, self.categorizable.font(recursive=True)) def testIconWhenBothCategoriesHaveSameIcon(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) for cat in [self.category, anotherCategory]: cat.setIcon('icon') self.assertEqual('icon', self.categorizable.icon(recursive=True)) def testForegroundColorWhenBothCategoriesHaveDifferentForegroundColors(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) self.category.setForegroundColor(wx.RED) anotherCategory.setForegroundColor(wx.BLUE) expectedColor = wx.Colour(127, 0, 127, 255) self.assertEqual(expectedColor, self.categorizable.foregroundColor(recursive=True)) def testBackgroundColorWhenBothCategoriesHaveDifferentBackgroundColors(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) self.category.setBackgroundColor(wx.RED) anotherCategory.setBackgroundColor(wx.BLUE) expectedColor = wx.Colour(127, 0, 127, 255) self.assertEqual(expectedColor, self.categorizable.backgroundColor(recursive=True)) def testFontWhenBothCategoriesHaveDifferentFontSizes(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) font = wx.SWISS_FONT self.category.setFont(font) biggerFont = wx.Font(font.GetPointSize() + 2, font.GetFamily(), font.GetStyle(), font.GetWeight()) anotherCategory.setFont(biggerFont) expectedFontSize = (biggerFont.GetPointSize() + font.GetPointSize()) / 2 self.assertEqual(expectedFontSize, self.categorizable.font(recursive=True).GetPointSize()) def testIconWhenBothCategoriesHaveDifferentIcons(self): self.categorizable.addCategory(self.category) anotherCategory = category.Category('Another category') self.categorizable.addCategory(anotherCategory) self.category.setIcon('icon') anotherCategory.setIcon('another_icon') self.failUnless(self.categorizable.icon(recursive=True) in ['icon', 'another_icon']) def testUseCategoryIcon(self): self.category.setIcon('categoryIcon') self.categorizable.addCategory(self.category) self.assertEqual('categoryIcon', self.categorizable.icon(recursive=True)) def testDontUseCategoryIconWhenCategorizableHasItsOwnIcon(self): self.category.setIcon('categoryIcon') self.categorizable.setIcon('icon') self.categorizable.addCategory(self.category) self.assertEqual('icon', self.categorizable.icon(recursive=True)) def testDontUseCategoryIconWhenNotRecursive(self): self.category.setIcon('categoryIcon') self.categorizable.addCategory(self.category) self.failIf(self.categorizable.icon(recursive=False)) def testUseCategoryIconEvenWhenCategorizableHasARecursiveIcon(self): child = categorizable.CategorizableCompositeObject(subject='child') self.categorizable.addChild(child) self.categorizable.setIcon('icon') self.category.setIcon('categoryIcon') child.addCategory(self.category) self.assertEqual('categoryIcon', child.icon(recursive=True)) def testUseCategorySelectedIcon(self): self.category.setSelectedIcon('categoryIcon') self.categorizable.addCategory(self.category) self.assertEqual('categoryIcon', self.categorizable.selectedIcon(recursive=True)) def testDontUseCategorySelectedIconWhenCategorizableHasItsOwnSelectedIcon(self): self.category.setSelectedIcon('categoryIcon') self.categorizable.setSelectedIcon('icon') self.categorizable.addCategory(self.category) self.assertEqual('icon', self.categorizable.selectedIcon(recursive=True)) def testDontUseCategorySelectedIconWhenNotRecursive(self): self.category.setSelectedIcon('categoryIcon') self.categorizable.addCategory(self.category) self.failIf(self.categorizable.selectedIcon(recursive=False)) def testUseCategorySelectedIconEvenWhenCategorizableHasARecursiveSelectedIcon(self): child = categorizable.CategorizableCompositeObject(subject='child') self.categorizable.addChild(child) self.categorizable.setSelectedIcon('icon') self.category.setSelectedIcon('categoryIcon') child.addCategory(self.category) self.assertEqual('categoryIcon', child.selectedIcon(recursive=True)) def testParentCategoryIncludedInChildUpwardRecursiveCategories(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) self.assertEqual(set([self.category]), child.categories(recursive=True, upwards=True)) def testChildCategoryIncludedInParentDownwardRecursiveCategories(self): child = categorizable.CategorizableCompositeObject() child.addCategory(self.category) self.categorizable.addChild(child) self.assertEqual(set([self.category]), self.categorizable.categories(recursive=True, upwards=False)) def testParentCategoriesNotIncludedInNonRecursiveCategories(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) self.assertEqual(set(), child.categories(recursive=False)) def testChildCategoriesNotIncludedInNonRecursiveCategories(self): child = categorizable.CategorizableCompositeObject() child.addCategory(self.category) self.categorizable.addChild(child) self.assertEqual(set(), self.categorizable.categories(recursive=False)) def testGrandParentCategoryIncludedInGrandChildUpwardRecursiveCategories(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) grandchild = categorizable.CategorizableCompositeObject() child.addChild(grandchild) self.assertEqual(set([self.category]), grandchild.categories(recursive=True, upwards=True)) def testGrandChildCategoryIncludedInGrandParentDownwardRecursiveCategories(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) grandchild = categorizable.CategorizableCompositeObject() child.addChild(grandchild) grandchild.addCategory(self.category) self.assertEqual(set([self.category]), self.categorizable.categories(recursive=True)) def testGrandParentAndParentCategoriesIncludedInGrandChildUpwardRecursiveCategories(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) grandchild = categorizable.CategorizableCompositeObject() child.addChild(grandchild) childCategory = category.Category('Child category') child.addCategory(childCategory) self.assertEqual(set([self.category, childCategory]), grandchild.categories(recursive=True, upwards=True)) def testGrandChildAndChildCategoriesIncludedInGrandParentDownwardRecursiveCategories(self): child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) grandchild = categorizable.CategorizableCompositeObject() child.addChild(grandchild) childCategory = category.Category('Child category') child.addCategory(childCategory) grandchild.addCategory(self.category) self.assertEqual(set([self.category, childCategory]), self.categorizable.categories(recursive=True)) def testRemoveCategoryCausesChildNotification(self): self.categorizable.addCategory(self.category) child = categorizable.CategorizableCompositeObject() self.categorizable.addChild(child) self.registerObserver(self.categoryRemovedEventType, eventSource=child) self.categorizable.removeCategory(self.category) self.assertEvent(self.categoryRemovedEventType, child, self.category) def testCopy(self): self.categorizable.addCategory(self.category) copy = self.categorizable.copy() self.assertEqual(copy.categories(), self.categorizable.categories()) # pylint: disable=E1101 def testModificationEventTypes(self): # pylint: disable=E1003 self.assertEqual(super(categorizable.CategorizableCompositeObject, self.categorizable).modificationEventTypes() + \ [self.categoryAddedEventType, self.categoryRemovedEventType], self.categorizable.modificationEventTypes()) taskcoach-1.4.3/tests/unittests/domainTests/CategoryContainerTest.py000077500000000000000000000102051265347643000260220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import config from taskcoachlib.domain import category, task class CategoryContainerTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.categories = category.CategoryList() self.category = category.Category('Unfiltered category') self.filteredCategory = category.Category('Filtered category', filtered=True) def testAddExistingCategory_WithoutTasks(self): self.categories.append(self.category) self.categories.append(category.Category(self.category.subject())) self.assertEqual(2, len(self.categories)) def testAddCategoryWithCategorizable(self): aTask = task.Task() self.category.addCategorizable(aTask) self.categories.append(self.category) self.assertEqual(set([self.category]), aTask.categories()) def testRemoveCategoryWithTask(self): aTask = task.Task() self.categories.append(self.category) self.category.addCategorizable(aTask) aTask.addCategory(self.category) self.categories.removeItems([self.category]) self.failIf(aTask.categories()) def testFilteredCategoriesWhenCategoriesIsEmpty(self): self.failIf(self.categories.filteredCategories()) def testFilteredCategoriesAfterAddingOneUnfilteredCategory(self): self.categories.append(self.category) self.failIf(self.categories.filteredCategories()) def testFilteredCategoriesAfterAddingOneFilteredCategory(self): self.categories.append(self.filteredCategory) self.assertEqual([self.filteredCategory], self.categories.filteredCategories()) def testFilteredCategoriesAfterAddingOneUnfilteredCategoryAndMakingItFilter(self): self.categories.append(self.category) self.category.setFiltered(True) self.assertEqual([self.category], self.categories.filteredCategories()) def testFilteredCategoriesAfterRemovingOneUnfilteredCategory(self): self.categories.append(self.category) self.categories.remove(self.category) self.failIf(self.categories.filteredCategories()) def testFilteredCategoriesAfterRemovingOneFilteredCategory(self): self.categories.append(self.filteredCategory) self.categories.remove(self.filteredCategory) self.failIf(self.categories.filteredCategories()) def testFilteredCategoriesAfterAddingOneFilteredAndOneUnfilteredCategory(self): self.categories.extend([self.category, self.filteredCategory]) self.assertEqual([self.filteredCategory], self.categories.filteredCategories()) def testFilteredCategoriesAfterAddingOneFilteredAndOneUnfilteredCategoryAndMakingBothFiltered(self): self.categories.extend([self.category, self.filteredCategory]) self.category.setFiltered(True) self.assertEqual(2, len(self.categories.filteredCategories())) def testFilteredCategoriesAfterAddingOneFilteredAndOneUnfilteredCategoryAndMakingNoneFiltered(self): self.categories.extend([self.category, self.filteredCategory]) self.filteredCategory.setFiltered(False) self.failIf(self.categories.filteredCategories()) def testResetAllFilteredCategories(self): self.categories.extend([self.category, self.filteredCategory]) self.categories.resetAllFilteredCategories() self.failIf(self.filteredCategory.isFiltered()) taskcoach-1.4.3/tests/unittests/domainTests/CategoryFilterTest.py000066400000000000000000000743271265347643000253410ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import config from taskcoachlib.domain import task, category # pylint: disable=W0201,E1101 ''' The tests below test the category filter. Different fixtures are defined for different combinations of tasks and categories. Each fixture is than subclassed by a InListMode and a InTreeMode class since we want to run the tests in both list and tree mode. ''' # pylint: disable=W0105 class CategoryFilterHelpersMixin(object): def setFilterOnAnyCategory(self): self.settings.setboolean('view', 'categoryfiltermatchall', False) def setFilterOnAllCategories(self): self.settings.setboolean('view', 'categoryfiltermatchall', True) def link(self, category, categorizable): # pylint: disable=W0621 category.addCategorizable(categorizable) categorizable.addCategory(category) def assertChildTaskIsFiltered(self): self.assertEqual(set([self.childTask, self.parentTask] if self.treeMode else [self.childTask]), set(self.filter)) def assertFilterHidesNothing(self): self.assertEqual(set(self.tasks), set(self.filter)) def assertFilterHidesEverything(self): self.failIf(self.filter) class Fixture(CategoryFilterHelpersMixin): treeMode = False def setUp(self): self.settings = task.Task.settings = config.Settings(load=False) self.categories = category.CategoryList(self.createCategories()) self.tasks = task.TaskList(self.createTasks()) self.categorize() self.filter = category.filter.CategoryFilter(self.tasks, categories=self.categories, treeMode=self.treeMode) def createTasks(self): return [] def createCategories(self): return [] # pragma: no cover def categorize(self): pass # Common tests that should pass for all fixtures def testThatFilterContainsAllItemsWhenNotFiltering(self): self.assertEqual(self.filter.originalLength(), len(self.filter)) def testThatFilterOriginalLengthAlwaysEqualsNumberOfTasksWhenNotFiltering(self): self.assertEqual(self.filter.originalLength(), len(self.tasks)) def testThatFilterContainsNoItemsWhenRemovingOriginalItems(self): self.tasks.clear() self.assertEqual(0, self.filter.originalLength()) def testThatFilterLengthIsSmallerOrEqualThanOriginalLength(self): self.failUnless(len(self.filter) <= self.filter.originalLength()) def testThatFilterIsEmptyWhenFilteringOnACategoryWithoutCategorizables(self): emptyCategory = category.Category('empty') self.categories.append(emptyCategory) emptyCategory.setFiltered() self.failIf(self.filter) def testThatFilterContainsAllItemsAfterRemovingFilteredEmptyCategory(self): emptyCategory = category.Category('empty') self.categories.append(emptyCategory) emptyCategory.setFiltered() self.categories.remove(emptyCategory) self.assertFilterHidesNothing() def testThatFilterContainsAllItemsAfterFilteringAndUnfiltering(self): aCategory = list(self.categories)[0] aCategory.setFiltered() aCategory.setFiltered(False) self.assertFilterHidesNothing() def testThatFilterContainsAllItemsAfterUnfilteringACategoryThatWasNotFiltered(self): aCategory = list(self.categories)[0] aCategory.setFiltered(False) self.assertFilterHidesNothing() def testThatFilterContainsAllItemsWhenFilteringOnAnyCategoryWithoutAnyCategoryFiltered(self): self.setFilterOnAnyCategory() self.assertFilterHidesNothing() def testThatFilterContainsAllItemsWhenFilteringOnAllCategoriesWithoutAnyCategoryFiltered(self): self.setFilterOnAllCategories() self.assertFilterHidesNothing() def testThatFilterContainsNewlyAddedTaskThatBelongsToTheFilteredCategory(self): aCategory = list(self.categories)[0] aCategory.setFiltered() newTask = task.Task() newTask.addCategory(aCategory) self.tasks.append(newTask) self.failUnless(newTask in self.filter) def testThatFilterDoesContainNewlyAddedTaskThatBelongsToTheFilteredCategoryAfterRemoval(self): aCategory = list(self.categories)[0] aCategory.setFiltered() newTask = task.Task() newTask.addCategory(aCategory) self.tasks.append(newTask) self.tasks.remove(newTask) self.failIf(newTask in self.filter) def testThatFilterContainsNoTasksWhenFilteringAllCategoriesIncludingAnEmptyCategory(self): emptyCategory = category.Category('empty') self.categories.append(emptyCategory) for eachCategory in self.categories: eachCategory.setFiltered() self.setFilterOnAllCategories() self.assertFilterHidesEverything() class OneCategoryFixture(Fixture): def createCategories(self): self.category = category.Category('category') return [self.category] def testThatFilterIsEmptyWhenNoCategoriesAreFiltered(self): self.assertEqual(0, len(self.filter)) def testThatFilterIsEmptyWhenCategoryIsFiltered(self): self.category.setFiltered() self.assertEqual(0, len(self.filter)) class OneCategoryFilterInListModeTest(OneCategoryFixture, test.TestCase): treeMode = False class OneCategoryFilterInTreeModeTest(OneCategoryFixture, test.TestCase): treeMode = True class OneCategoryAndOneTaskFixture(Fixture): def createCategories(self): self.category = category.Category('category') return [self.category] def createTasks(self): self.task = task.Task('task') return [self.task] def testThatFilterContainsUncategorizedTaskWhenNoCategoriesAreFiltered(self): self.assertFilterHidesNothing() def testThatFilterDoesNotContainUncategorizedTaskWhenCategoryIsFiltered(self): self.category.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsCategorizedTaskWhenCategoryIsFiltered(self): self.link(self.category, self.task) self.category.setFiltered() self.assertFilterHidesNothing() class OneCategoryAndOneTaskInListModeTest(OneCategoryAndOneTaskFixture, test.TestCase): treeMode = False class OneCategoryAndOneTaskInTreeModeTest(OneCategoryAndOneTaskFixture, test.TestCase): treeMode = True class OneCategoryAndTwoTasksFixture(Fixture): def createCategories(self): self.category = category.Category('category') return [self.category] def createTasks(self): self.task1 = task.Task('task1') self.task2 = task.Task('task2') return [self.task1, self.task2] def testThatFilterContainsAllUncategorizedTaskWhenCategoryIsNotFiltered(self): self.assertFilterHidesNothing() def testThatFilterContainsNoUncategorizedTasksWhenCategoryIsFiltered(self): self.category.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsCategorizedTaskWhenCategoryIsFiltered(self): self.category.setFiltered() self.link(self.category, self.task1) self.assertEqual([self.task1], list(self.filter)) def testThatFilterContainsCategorizedTasksWhenCategoryIsFiltered(self): self.category.setFiltered() self.link(self.category, self.task1) self.link(self.category, self.task2) self.assertFilterHidesNothing() class OneCategoryAndTwoTasksInListModeTest(OneCategoryAndTwoTasksFixture, test.TestCase): treeMode = False class OneCategoryAndTwoTasksInTreeModeTest(OneCategoryAndTwoTasksFixture, test.TestCase): treeMode = True class TwoCategoriesAndOneTaskFixture(Fixture): def createCategories(self): self.category1 = category.Category('category1') self.category2 = category.Category('category2') return [self.category1, self.category2] def createTasks(self): self.task = task.Task('task') return [self.task] def categorize(self): self.link(self.category1, self.task) def testThatFilterContainsTaskWhenFilteringOnAnyCategoryAndBothAreFiltered(self): self.setFilterOnAnyCategory() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesNothing() def testThatFilterDoesNotContainTaskWhenFilteringOnAllCategoriesAndBothAreFiltered(self): self.setFilterOnAllCategories() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesEverything() class TwoCategoriesAndOneTaskInListModeTest(TwoCategoriesAndOneTaskFixture, test.TestCase): treeMode = False class TwoCategoriesAndOneTaskInTreeModeTest(TwoCategoriesAndOneTaskFixture, test.TestCase): treeMode = True class TwoCategoriesAndTwoTasksFixture(Fixture): def createCategories(self): self.category1 = category.Category('category1') self.category2 = category.Category('category2') return [self.category1, self.category2] def createTasks(self): self.task1 = task.Task('task1') self.task2 = task.Task('task2') return [self.task1, self.task2] def testThatFilterContainsAllUncategorizedTaskWhenCategoryIsNotFiltered(self): self.assertFilterHidesNothing() def testThatFilterContainsNoUncategorizedTasksWhenCategoryIsFiltered(self): self.category1.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsNoUncategorizedTasksWhenAnyCategoryIsFiltered(self): self.setFilterOnAnyCategory() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsNoUncategorizedTasksWhenAllCategoriesAreFiltered(self): self.setFilterOnAllCategories() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsCategorizedTaskWhenAnyCategoryIsFiltered(self): self.link(self.category1, self.task1) self.setFilterOnAnyCategory() self.category1.setFiltered() self.category2.setFiltered() self.assertEqual([self.task1], list(self.filter)) def testThatFilterDoesNotContainCategorizedTaskWhenAllCategoriesAreFiltered(self): self.link(self.category1, self.task1) self.setFilterOnAllCategories() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsCategorizedTaskWhenFilteringByThatCategory(self): self.link(self.category1, self.task1) self.category1.setFiltered() self.assertEqual([self.task1], list(self.filter)) def testThatFilterDoesNotContainCategorizedTaskWhenFilteringByAnotherCategory(self): self.link(self.category1, self.task1) self.category2.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsCategorizedTasksWhenFilteringByThatCategory(self): self.category1.setFiltered() self.link(self.category1, self.task1) self.link(self.category1, self.task2) self.assertFilterHidesNothing() def testThatFilterContainsCategorizedTasksWhenFilteringByAnyCategory(self): self.setFilterOnAnyCategory() self.category1.setFiltered() self.category2.setFiltered() self.link(self.category1, self.task1) self.link(self.category1, self.task2) self.assertFilterHidesNothing() def testThatFilterDoesNotContainCategorizedTasksWhenFilteringByAllCategories(self): self.setFilterOnAllCategories() self.category1.setFiltered() self.category2.setFiltered() self.link(self.category1, self.task1) self.link(self.category1, self.task2) self.assertFilterHidesEverything() class TwoCategoriesAndTwoTasksInListModeTest(TwoCategoriesAndTwoTasksFixture, test.TestCase): treeMode = False class TwoCategoriesAndTwoTasksInTreeModeTest(TwoCategoriesAndTwoTasksFixture, test.TestCase): treeMode = True class OneCategoryAndParentAndChildTaskFixture(Fixture): def createCategories(self): self.category = category.Category('category') return [self.category] def createTasks(self): self.parentTask = task.Task('parent') self.childTask = task.Task('child') self.parentTask.addChild(self.childTask) self.childTask.setParent(self.parentTask) return [self.parentTask, self.childTask] def testThatFilterContainsChildWhenParentIsCategorizedAndFiltered(self): self.link(self.category, self.parentTask) self.category.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsParentWhenChildIsCategorizedAndFilteredButOnlyInTreeMode(self): self.link(self.category, self.childTask) self.category.setFiltered() self.assertEqual(2 if self.treeMode else 1, len(self.filter)) class OneCategoryAndParentAndChildTaskInListModeTest(OneCategoryAndParentAndChildTaskFixture, test.TestCase): treeMode = False class OneCategoryAndParentAndChildTaskInTreeModeTest(OneCategoryAndParentAndChildTaskFixture, test.TestCase): treeMode = True class TwoCategoriesAndParentAndChildTaskFixture(Fixture): def createCategories(self): self.category1 = category.Category('category1') self.category2 = category.Category('category2') return [self.category1, self.category2] def createTasks(self): self.parentTask = task.Task('parent') self.childTask = task.Task('child') self.parentTask.addChild(self.childTask) self.childTask.setParent(self.parentTask) return [self.parentTask, self.childTask] def categorize(self): self.link(self.category1, self.parentTask) self.link(self.category2, self.childTask) def testThatFilterContainsBothParentAndChildTaskWhenFilteringOnAnyCategoryAndBothCategories(self): self.setFilterOnAnyCategory() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsBothParentAndChildTaskWhenFilteringOnAllCategoriesAndBothCategories(self): self.setFilterOnAllCategories() self.category1.setFiltered() self.category2.setFiltered() self.assertChildTaskIsFiltered() class TwoCategoriesAndParentAndChildTaskInListModeTest(TwoCategoriesAndParentAndChildTaskFixture, test.TestCase): treeMode = False class TwoCategoriesAndParentAndChildTaskInTreeModeTest(TwoCategoriesAndParentAndChildTaskFixture, test.TestCase): treeMode = True class ParentAndChildCategoryAndParentAndChildTaskFixture(Fixture): def createCategories(self): self.parentCategory = category.Category('parent') self.childCategory = category.Category('child') self.parentCategory.addChild(self.childCategory) self.childCategory.setParent(self.parentCategory) return [self.parentCategory, self.childCategory] def createTasks(self): self.parentTask = task.Task('parent') self.childTask = task.Task('child') self.parentTask.addChild(self.childTask) self.childTask.setParent(self.parentTask) return [self.parentTask, self.childTask] def testThatFilterContainsBothTasksWhenParentTaskIsInParentCategoryAndFilteringParentCategory(self): self.link(self.parentCategory, self.parentTask) self.parentCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsNoTasksWhenParentTaskIsInParentCategoryAndFilteringChildCategory(self): self.link(self.parentCategory, self.parentTask) self.childCategory.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsBothTasksWhenParentTaskIsInChildCategoryAndFilteringParentCategory(self): self.link(self.childCategory, self.parentTask) self.parentCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsBothTasksWhenParentTaskIsInChildCategoryAndFilteringChildCategory(self): self.link(self.childCategory, self.parentTask) self.childCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsChildTaskWhenChildTaskIsInParentCategoryAndFilteringParentCategory(self): self.link(self.parentCategory, self.childTask) self.parentCategory.setFiltered() self.assertChildTaskIsFiltered() def testThatFilterContainsNoTasksWhenChildTaskIsInParentCategoryAndFilteringChildCategory(self): self.link(self.parentCategory, self.childTask) self.childCategory.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsChildTaskWhenChildTaskIsInChildCategoryAndFilteringParentCategory(self): self.link(self.childCategory, self.childTask) self.parentCategory.setFiltered() self.assertChildTaskIsFiltered() def testThatFilterContainsChildTaskWhenChildTaskIsInChildCategoryAndFilteringChildCategory(self): self.link(self.childCategory, self.childTask) self.childCategory.setFiltered() self.assertChildTaskIsFiltered() def testThatFilterContainsBothTasksWhenParentTaskIsInChildCategoryAndFilteringBothCategories(self): self.setFilterOnAllCategories() self.link(self.childCategory, self.parentTask) self.parentCategory.setFiltered() self.childCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsChildTaskWhenChildTaskIsInChildCategoryAndFilteringBothCategories(self): self.setFilterOnAllCategories() self.link(self.childCategory, self.childTask) self.parentCategory.setFiltered() self.childCategory.setFiltered() self.assertChildTaskIsFiltered() class ParentAndChildCategoryAndParentAndChildTaskInListModeTest(ParentAndChildCategoryAndParentAndChildTaskFixture, test.TestCase): treeMode = False class ParentAndChildCategoryAndParentAndChildTaskInTreeModeTest(ParentAndChildCategoryAndParentAndChildTaskFixture, test.TestCase): treeMode = True class ParentAndChildCategoryAndParentAndGrandChildTaskFixture(Fixture): def createCategories(self): self.parentCategory = category.Category('parent') self.childCategory = category.Category('child') self.parentCategory.addChild(self.childCategory) self.childCategory.setParent(self.parentCategory) return [self.parentCategory, self.childCategory] def createTasks(self): self.parentTask = task.Task('parent') self.childTask = task.Task('child') self.grandChildTask = task.Task('grandchild') self.parentTask.addChild(self.childTask) self.childTask.setParent(self.parentTask) self.childTask.addChild(self.grandChildTask) self.grandChildTask.setParent(self.childTask) return [self.parentTask, self.childTask, self.grandChildTask] def testThatFilterContainsAllTasksWhenParentTaskIsInChildCategoryAndFiltered(self): self.link(self.childCategory, self.parentTask) self.parentCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsAllTasksWhenParentTaskIsInChildCategoryAndAllCategoriesAreFiltered(self): self.setFilterOnAllCategories() self.link(self.childCategory, self.parentTask) self.parentCategory.setFiltered() self.childCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsGrandChildTaskWhenChildTaskIsInChildCategoryAndParentCategoryIsFiltered(self): self.link(self.childCategory, self.childTask) self.parentCategory.setFiltered() self.failUnless(self.grandChildTask in self.filter) def testThatFilterContainsGrandChildTaskWhenChildTaskIsInChildCategoryAndAllCategoriesAreFiltered(self): self.setFilterOnAllCategories() self.link(self.childCategory, self.childTask) self.parentCategory.setFiltered() self.childCategory.setFiltered() self.failUnless(self.grandChildTask in self.filter) def testThatFilterContainsGrandParentWhenGrandChildIsInChildCategoryAndParentCategoryIsFiltered(self): self.link(self.childCategory, self.grandChildTask) self.parentCategory.setFiltered() self.assertEqual(set(self.tasks) if self.treeMode else set([self.grandChildTask]), set(self.filter)) class ParentAndChildCategoryAndParentAndGrandChildTaskInListModeTest(ParentAndChildCategoryAndParentAndGrandChildTaskFixture, test.TestCase): treeMode = False class ParentAndChildCategoryAndParentAndGrandChildTaskInTreeModeTest(ParentAndChildCategoryAndParentAndGrandChildTaskFixture, test.TestCase): treeMode = True class TwoCategoriesAndParentAndGrandChildTaskFixture(Fixture): def createCategories(self): self.category1 = category.Category('category1') self.category2 = category.Category('category2') return [self.category1, self.category2] def createTasks(self): self.parentTask = task.Task('parent') self.childTask = task.Task('child') self.grandChildTask = task.Task('grandchild') self.parentTask.addChild(self.childTask) self.childTask.setParent(self.parentTask) self.childTask.addChild(self.grandChildTask) self.grandChildTask.setParent(self.childTask) return [self.parentTask, self.childTask, self.grandChildTask] def categorize(self): self.link(self.category1, self.parentTask) self.link(self.category2, self.grandChildTask) def testThatFilterContainsGrandChildWhenFilteringOnAllCategories(self): self.setFilterOnAllCategories() self.category1.setFiltered() self.category2.setFiltered() self.assertEqual(set(self.tasks) if self.treeMode else set([self.grandChildTask]), set(self.filter)) def testThatFilterContainsGrandChildWhenFilteringOnAnyCategory(self): self.setFilterOnAnyCategory() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesNothing() class TwoCategoriesAndParentAndGrandChildTaskInListModeTest(TwoCategoriesAndParentAndGrandChildTaskFixture, test.TestCase): treeMode = False class TwoCategoriesAndParentAndGrandChildTaskInTreeModeTest(TwoCategoriesAndParentAndGrandChildTaskFixture, test.TestCase): treeMode = True class TwoCategoriesAndParentWithTwoChildTasksFixture(Fixture): def createCategories(self): self.category1 = category.Category('category1') self.category2 = category.Category('category2') return [self.category1, self.category2] def createTasks(self): self.parentTask = task.Task('parent') self.child1Task = task.Task('child1') self.child2Task = task.Task('child2') self.parentTask.addChild(self.child1Task) self.parentTask.addChild(self.child2Task) self.child1Task.setParent(self.parentTask) self.child2Task.setParent(self.parentTask) return [self.parentTask, self.child1Task, self.child2Task] def categorize(self): self.link(self.category1, self.child1Task) self.link(self.category2, self.child2Task) def testThatFilterIsEmptyWhenFilteringOnAllCategoriesAndChildTasksHaveTwoDifferentCategories(self): self.setFilterOnAllCategories() self.category1.setFiltered() self.category2.setFiltered() self.assertFilterHidesEverything() def testThatFilterContainsAllTasksWhenFilteringOnAnyCategoryAndChildTasksHaveTwoDifferentCategories(self): self.setFilterOnAnyCategory() self.category1.setFiltered() self.category2.setFiltered() self.assertEqual(3 if self.treeMode else 2, len(self.filter)) def testThatFilterHidesUnfilteredChild(self): self.category1.setFiltered() self.failIf(self.child2Task in self.filter) class TwoCategoriesAndParentWithTwoChildTasksInListModeTest(TwoCategoriesAndParentWithTwoChildTasksFixture, test.TestCase): treeMode = False class TwoCategoriesAndParentWithTwoChildTasksInTreeModeTest(TwoCategoriesAndParentWithTwoChildTasksFixture, test.TestCase): treeMode = True class ParentAndChildCategoryAndOneTaskFixture(Fixture): def createCategories(self): self.parentCategory = category.Category('parent') self.childCategory = category.Category('child') self.parentCategory.addChild(self.childCategory) self.childCategory.setParent(self.parentCategory) return [self.parentCategory, self.childCategory] def createTasks(self): self.task = task.Task('task') return [self.task] def testThatFilterDoesNotContainTaskIfTaskHasChildCategoryAndParentIsFiltered(self): self.link(self.parentCategory, self.task) self.childCategory.setFiltered() self.failIf(self.filter) def testThatFilterContainsTaskIfTaskIfTaskHasParentCategoryAndChildIsFiltered(self): self.link(self.childCategory, self.task) self.parentCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsTaskIfTaskHasParentAndChildCategoryAndAnyCategoryIsFiltered(self): self.setFilterOnAnyCategory() self.link(self.parentCategory, self.task) self.link(self.childCategory, self.task) self.parentCategory.setFiltered() self.childCategory.setFiltered() self.assertFilterHidesNothing() def testThatFilterContainsTaskIfTaskHasParentAndChildCategoryAndAllCategoriesAreFiltered(self): self.setFilterOnAllCategories() self.link(self.parentCategory, self.task) self.link(self.childCategory, self.task) self.parentCategory.setFiltered() self.childCategory.setFiltered() self.assertFilterHidesNothing() class ParentAndChildCategoryAndTaskInListModeTest(ParentAndChildCategoryAndOneTaskFixture, test.TestCase): treeMode = False class ParentAndChildCategoryAndTaskInTreeModeTest(ParentAndChildCategoryAndOneTaskFixture, test.TestCase): treeMode = True class CategoryFilterAndViewFilterFixtureAndCommonTestsMixin(CategoryFilterHelpersMixin): def setUp(self): task.Task.settings = config.Settings(load=False) self.parent = task.Task('parent task') self.parent.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.child = task.Task('child task') self.child.setCompletionDateTime() self.childCategory = category.Category('child category') self.childCategory.addCategorizable(self.child) self.parent.addChild(self.child) self.tasks = task.TaskList([self.parent, self.child]) self.categories = category.CategoryList([self.childCategory]) self.viewFilter = task.filter.ViewFilter(self.tasks, treeMode=self.treeMode) self.categoryFilter = category.filter.CategoryFilter(self.viewFilter, categories=self.categories, treeMode=self.treeMode) def testThatParentIsHiddenWhenHiddenCompletedChildIsFiltered(self): self.viewFilter.hideTaskStatus(task.status.completed) self.assertEqual(1, len(self.viewFilter)) self.childCategory.setFiltered(True) self.assertEqual(0, len(self.categoryFilter)) def testThatParentIsShownWhenHiddenCompletedChildIsUnfiltered(self): self.viewFilter.hideTaskStatus(task.status.completed) self.childCategory.setFiltered(True) self.assertEqual(0, len(self.categoryFilter)) self.childCategory.setFiltered(False) self.assertEqual(1, len(self.categoryFilter)) def testThatParentIsHiddenWhenFilteredCompletedChildIsHidden(self): self.childCategory.setFiltered(True) self.assertEqual(2, len(self.viewFilter)) self.viewFilter.hideTaskStatus(task.status.completed) self.assertEqual(0, len(self.categoryFilter)) def testThatParentIsShownWhenFilteredCompletedChildIsUnhidden(self): self.childCategory.setFiltered(True) self.viewFilter.hideTaskStatus(task.status.completed) self.assertEqual(0, len(self.categoryFilter)) self.viewFilter.hideTaskStatus(task.status.completed, False) self.assertEqual(2 if self.treeMode else 1, len(self.categoryFilter)) class CategoryFilterAndViewFilterInListModeTest(CategoryFilterAndViewFilterFixtureAndCommonTestsMixin, test.TestCase): treeMode = False class CategoryFilterAndViewFilterInTreeModeTest(CategoryFilterAndViewFilterFixtureAndCommonTestsMixin, test.TestCase): treeMode = True taskcoach-1.4.3/tests/unittests/domainTests/CategoryTest.py000066400000000000000000000411111265347643000241540ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib import patterns from taskcoachlib.domain import category, categorizable, note, date class CategoryTest(test.TestCase): def setUp(self): self.category = category.Category(subject='category') self.subCategory = category.Category(subject='subcategory') self.categorizable = categorizable.CategorizableCompositeObject(subject='parent') self.child = categorizable.CategorizableCompositeObject(subject='child') # State: def testGetState_Subject(self): self.assertEqual('category', self.category.__getstate__()['subject']) def testGetState_Description(self): self.assertEqual('', self.category.__getstate__()['description']) def testGetState_ForegroundColor(self): self.assertEqual(None, self.category.__getstate__()['fgColor']) def testGetState_BackgroundColor(self): self.assertEqual(None, self.category.__getstate__()['bgColor']) def testGetState_ExclusiveSubcategories(self): self.assertEqual(False, self.category.__getstate__()['exclusiveSubcategories']) def testSetState_ExclusiveSubcategories(self): state = self.category.__getstate__() self.category.makeSubcategoriesExclusive() self.category.__setstate__(state) self.failIf(self.category.hasExclusiveSubcategories()) def testSetState_OneNotification(self): newState = dict(subject='New subject', description='New description', fgColor=wx.WHITE, bgColor=wx.RED, font=wx.SWISS_FONT, status=self.category.STATUS_DELETED, parent=None, children=[self.subCategory], id=self.category.id(), categorizables=[self.categorizable], notes=[], attachments=[], filtered=True, exclusiveSubcategories=True, icon='icon', selectedIcon='selected', creationDateTime=date.Now(), modificationDateTime=date.Now(), ordering=42L) for eventType in self.category.modificationEventTypes(): self.registerObserver(eventType) self.category.__setstate__(newState) self.assertEqual(1, len(self.events)) # Subject: def testCreateWithSubject(self): self.assertEqual('category', self.category.subject()) def testSetSubject(self): self.category.setSubject('New') self.assertEqual('New', self.category.subject()) def testSetSubjectNotification(self): eventType = category.Category.subjectChangedEventType() self.registerObserver(eventType) self.category.setSubject('New') self.assertEqual([patterns.Event(eventType, self.category, 'New')], self.events) def testSetSubjectCausesNoNotificationWhenNewSubjectEqualsOldSubject(self): eventType = category.Category.subjectChangedEventType() self.registerObserver(eventType) self.category.setSubject(self.category.subject()) self.failIf(self.events) # Description: def testCreateWithDescription(self): aCategory = category.Category('subject', description='Description') self.assertEqual('Description', aCategory.description()) # Categorizables: def testNoCategorizablesAfterCreation(self): self.assertEqual(set(), self.category.categorizables()) def testAddCategorizable(self): self.category.addCategorizable(self.categorizable) self.assertEqual(set([self.categorizable]), self.category.categorizables()) def testAddCategorizableDoesNotAddCategoryToCategorizable(self): self.category.addCategorizable(self.categorizable) self.assertEqual(set([]), self.categorizable.categories()) def testAddCategorizableTwice(self): self.category.addCategorizable(self.categorizable) self.category.addCategorizable(self.categorizable) self.assertEqual(set([self.categorizable]), self.category.categorizables()) def testRemoveCategorizable(self): self.category.addCategorizable(self.categorizable) self.category.removeCategorizable(self.categorizable) self.failIf(self.category.categorizables()) self.failIf(self.categorizable.categories()) def testRemovecategorizableThatsNotInThisCategory(self): self.category.removeCategorizable(self.categorizable) self.failIf(self.category.categorizables()) self.failIf(self.categorizable.categories()) def testCreateWithCategorizable(self): cat = category.Category('category', [self.categorizable]) self.assertEqual(set([self.categorizable]), cat.categorizables()) def testCreateWithCategorizableDoesNotSetCategorizableCategories(self): category.Category('category', [self.categorizable]) self.assertEqual(set([]), self.categorizable.categories()) def testAddCategorizableToSubCategory(self): self.category.addChild(self.subCategory) self.subCategory.addCategorizable(self.categorizable) self.assertEqual(set([self.categorizable]), self.category.categorizables(recursive=True)) # Subcategories: def testAddSubCategory(self): self.category.addChild(self.subCategory) self.assertEqual([self.subCategory], self.category.children()) def testCreateWithSubCategories(self): cat = category.Category('category', children=[self.subCategory]) self.assertEqual([self.subCategory], cat.children()) def testParentOfSubCategory(self): self.category.addChild(self.subCategory) self.assertEqual(self.category, self.subCategory.parent()) def testParentOfRootCategory(self): self.assertEqual(None, self.category.parent()) # Equality: def testEquality_SameSubjectAndNoParents(self): self.assertNotEqual(category.Category(self.category.subject()), self.category) self.assertNotEqual(self.category, category.Category(self.category.subject())) def testEquality_SameSubjectDifferentParents(self): self.category.addChild(self.subCategory) self.assertNotEqual(category.Category(self.subCategory.subject()), self.subCategory) # Filter: def testNotFilteredByDefault(self): self.failIf(self.category.isFiltered()) def testSetFilteredOn(self): self.category.setFiltered() self.failUnless(self.category.isFiltered()) def testSetFilteredOff(self): self.category.setFiltered(False) self.failIf(self.category.isFiltered()) def testSetFilteredViaConstructor(self): filteredCategory = category.Category('test', filtered=True) self.failUnless(filteredCategory.isFiltered()) # Copy: def testCopy_SubjectIsCopied(self): self.category.setSubject('New subject') copy = self.category.copy() self.assertEqual(copy.subject(), self.category.subject()) def testCopy_IdIsDifferent(self): copy = self.category.copy() self.assertNotEqual(copy.id(), self.category.id()) def testCopy_StatusIsNew(self): self.category.markDeleted() copy = self.category.copy() self.assertEqual(copy.getStatus(), copy.STATUS_NEW) # pylint: disable=E1101 def testCopy_SubjectIsDifferentFromOriginalSubject(self): self.subCategory.setSubject('New subject') self.category.addChild(self.subCategory) copy = self.category.copy() self.subCategory.setSubject('Other subject') self.assertEqual('New subject', copy.children()[0].subject()) def testCopy_FilteredStatusIsCopied(self): self.category.setFiltered() copy = self.category.copy() self.assertEqual(copy.isFiltered(), self.category.isFiltered()) def testCopy_CategorizablesAreCopied(self): self.category.addCategorizable(self.categorizable) copy = self.category.copy() self.assertEqual(copy.categorizables(), self.category.categorizables()) def testCopy_CategorizablesAreCopiedIntoADifferentList(self): copy = self.category.copy() self.category.addCategorizable(self.categorizable) self.failIf(self.categorizable in copy.categorizables()) def testCopy_ChildrenAreCopied(self): self.category.addChild(self.subCategory) copy = self.category.copy() self.assertEqual(self.subCategory.subject(), copy.children()[0].subject()) # Notifications: def testAddTaskNotification(self): eventType = category.Category.categorizableAddedEventType() self.registerObserver(eventType) self.category.addCategorizable(self.categorizable) self.assertEqual(1, len(self.events)) def testRemoveTaskNotification(self): eventType = category.Category.categorizableRemovedEventType() self.registerObserver(eventType) self.category.addCategorizable(self.categorizable) self.category.removeCategorizable(self.categorizable) self.assertEqual(1, len(self.events)) # Color: def testGetDefaultForegroundColor(self): self.assertEqual(None, self.category.foregroundColor()) def testGetDefaultBackgroundColor(self): self.assertEqual(None, self.category.backgroundColor()) def testSetForegroundColor(self): self.category.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.category.foregroundColor()) def testSetBackgroundColor(self): self.category.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.category.backgroundColor()) def testCopy_ForegroundColorIsCopied(self): self.category.setForegroundColor(wx.RED) copy = self.category.copy() self.assertEqual(wx.RED, copy.foregroundColor()) def testCopy_BackgroundColorIsCopied(self): self.category.setBackgroundColor(wx.RED) copy = self.category.copy() self.assertEqual(wx.RED, copy.backgroundColor()) def testForegroundColorChangeNotification(self): eventType = category.Category.appearanceChangedEventType() self.registerObserver(eventType) self.category.setForegroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testBackgroundColorChangeNotification(self): eventType = category.Category.appearanceChangedEventType() self.registerObserver(eventType) self.category.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testSubCategoryWithoutForegroundColorHasParentForegroundColor(self): self.category.addChild(self.subCategory) self.category.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.subCategory.foregroundColor(recursive=True)) def testSubCategoryWithoutBackgroundColorHasParentBackgroundColor(self): self.category.addChild(self.subCategory) self.category.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.subCategory.backgroundColor(recursive=True)) def testSubCategoryWithoutForegroundColorHasNoOwnForegroundColor(self): self.category.addChild(self.subCategory) self.category.setForegroundColor(wx.RED) self.assertEqual(None, self.subCategory.foregroundColor()) def testSubCategoryWithoutBackgroundColorHasNoOwnBackgroundColor(self): self.category.addChild(self.subCategory) self.category.setBackgroundColor(wx.RED) self.assertEqual(None, self.subCategory.backgroundColor()) def testParentForegroundColorChangeNotification(self): eventType = category.Category.appearanceChangedEventType() self.registerObserver(eventType) self.category.addChild(self.subCategory) self.category.setForegroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testParentBackgroundColorChangeNotification(self): eventType = category.Category.appearanceChangedEventType() self.registerObserver(eventType) self.category.addChild(self.subCategory) self.category.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.events)) # Icon: def testIconChangedNotification(self): eventType = categorizable.CategorizableCompositeObject.appearanceChangedEventType() self.registerObserver(eventType) self.category.addCategorizable(self.categorizable) self.category.setIcon('icon') self.assertEqual([patterns.Event(eventType, self.categorizable)], self.events) def testSelectedIconChangedNotification(self): eventType = categorizable.CategorizableCompositeObject.appearanceChangedEventType() self.registerObserver(eventType) self.category.addCategorizable(self.categorizable) self.category.setSelectedIcon('icon') self.assertEqual([patterns.Event(eventType, self.categorizable)], self.events) # Notes: def testAddNote(self): aNote = note.Note(subject='Note') self.category.addNote(aNote) self.assertEqual([aNote], self.category.notes()) # Exclusive subcategories: def testSubcategoriesAreNotExclusiveByDefault(self): self.failIf(self.category.hasExclusiveSubcategories()) def testMakeSubcategoriesExclusive(self): self.category.makeSubcategoriesExclusive() self.failUnless(self.category.hasExclusiveSubcategories()) def testMakeSubcategoriesNotExclusive(self): self.category.makeSubcategoriesExclusive() self.category.makeSubcategoriesExclusive(False) self.failIf(self.category.hasExclusiveSubcategories()) def testCreateWithExclusiveSubcategories(self): aCategory = category.Category('subject', exclusiveSubcategories=True) self.failUnless(aCategory.hasExclusiveSubcategories()) def testExclusiveSubcategoriesNotification(self): eventType = category.Category.exclusiveSubcategoriesChangedEventType() self.registerObserver(eventType) self.category.makeSubcategoriesExclusive() self.assertEqual([patterns.Event(eventType, self.category, True)], self.events) def testNoExclusiveSubcategoriesNotificationWhenNotChanged(self): eventType = category.Category.exclusiveSubcategoriesChangedEventType() self.registerObserver(eventType) self.category.makeSubcategoriesExclusive(False) self.failIf(self.events) def testMakeSubcategoriesExclusiveUnchecksAllSubcategories(self): self.subCategory.setFiltered(True) self.category.addChild(self.subCategory) self.category.makeSubcategoriesExclusive(True) self.failIf(self.subCategory.isFiltered()) def testMakeSubcategoriesNonExclusiveUnchecksAllSubcategories(self): self.category.makeSubcategoriesExclusive(True) self.subCategory.setFiltered(True) self.category.addChild(self.subCategory) self.category.makeSubcategoriesExclusive(False) self.failIf(self.subCategory.isFiltered()) # Event types: def testModificationEventTypes(self): # pylint: disable=E1003 self.assertEqual(super(category.Category, self.category).modificationEventTypes() + \ [self.category.filterChangedEventType(), self.category.categorizableAddedEventType(), self.category.categorizableRemovedEventType(), self.category.exclusiveSubcategoriesChangedEventType()], self.category.modificationEventTypes()) taskcoach-1.4.3/tests/unittests/domainTests/DateTest.py000066400000000000000000000103111265347643000232520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, time, datetime from taskcoachlib.domain import date class DateTest(test.TestCase): def testCreateNormalDate(self): adate = date.Date(2003, 1, 1) self.assertEqual(2003, adate.year) self.assertEqual(1, adate.month) self.assertEqual(1, adate.day) self.assertEqual('2003-01-01', str(adate)) def testCreateInvalidDate(self): self.assertRaises(ValueError, date.Date, 2003, 2, 31) self.assertRaises(ValueError, date.Date, 2003, 12, 32) self.assertRaises(ValueError, date.Date, 2003, 13, 1) self.assertRaises(ValueError, date.Date, 2003, 2, -1) self.assertRaises(ValueError, date.Date, 2003, 2, 0) def testCreateInfiniteDate(self): adate = date.Date() self.assertEqual(None, adate.year) self.assertEqual(None, adate.month) self.assertEqual(None, adate.day) self.assertEqual('', str(adate)) def testCreateInfiniteDateWithMaxValues(self): maxDate = datetime.date.max infinite = date.Date(maxDate.year, maxDate.month, maxDate.day) self.failUnless(infinite is date.Date()) def testInfiniteDateIsSingleton(self): self.failUnless(date.Date() is date.Date()) def testAddTimeDeltaToInfiniteDate(self): self.assertEqual(date.Date(), date.Date() + date.TimeDelta(days=2)) def testCompare_TwoInfiniteDates(self): date1 = date.Date() date2 = date.Date() self.assertEquals(date1, date2) def testCompare_TwoNormalDates(self): date1 = date.Date(2003,1,1) date2 = date.Date(2003,4,5) self.failUnless(date1 < date2) self.failUnless(date2 > date1) self.failIf(date1 == date2) def testCompare_OneNormalDate(self): date1 = date.Date(2003,1,1) date2 = date.Date(2003,1,1) self.assertEquals(date1, date2) def testCompare_NormalDateWithInfiniteDate(self): date1 = date.Date() date2 = date.Date(2003,1,1) self.failUnless(date2 < date1) self.failUnless(date1 > date2) def testAddManyDays(self): self.assertEqual(date.Date(2003,1,1), date.Date(2002,1,1) + date.ONE_YEAR) def testSubstractTwoDates_ZeroDifference(self): self.assertEqual(date.TimeDelta(), date.Date(2004, 2, 29) - date.Date(2004, 2, 29)) def testSubstractTwoDates_YearDifference(self): self.assertEqual(date.TimeDelta(days=365), date.Date(2004, 2, 29) + date.ONE_YEAR - date.Date(2004, 2, 29)) def testSubstractTwoDates_Infinite(self): self.assertEqual(date.TimeDelta.max, date.Date() - date.Date(2004, 2, 29)) def testSubstractTwoDates_BothInfinite(self): self.assertEqual(date.TimeDelta(), date.Date() - date.Date()) def testFormat1900(self): self.assertEqual(date.DateTime(2, 5, 19, 0, 0, 0).strftime('%Y%m%d'), '20519') class FactoriesTest(test.TestCase): def testParseDate(self): parsed = date.parseDate("2004-1-1") self.assertEqual(date.Date(2004, 1, 1), parsed) def testParseDate_WithNone(self): parsed = date.parseDate("None") self.assertEqual(date.Date(), parsed) def testParseDate_WithNonsense(self): parsed = date.parseDate("Yoyo-Yo") self.assertEqual(date.Date(), parsed) def testParseDate_WithDifferentDefaultDate(self): parsed = date.parseDate("Yoyo-Yo", date.Date(2004, 2, 29)) self.assertEqual(date.Date(2004, 2, 29), parsed) taskcoach-1.4.3/tests/unittests/domainTests/DateTimeTest.py000066400000000000000000000070101265347643000240730ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, datetime from taskcoachlib.domain import date class PyDateTimeTest(test.TestCase): def testReplaceCannotBeEasilyUsedToFindTheLastDayofTheMonth(self): testDate = datetime.date(2004, 4, 1) # April 1st, 2004 try: lastDayOfApril = testDate.replace(day=31) self.fail('Surprise! datetime.date.replace works as we want!') # pragma: no cover self.assertEqual(datetime.date(2004, 4, 30), lastDayOfApril) # pragma: no cover except ValueError: pass class DateTimeTest(test.TestCase): def testWeekNumber(self): self.assertEqual(53, date.DateTime(2005,1,1).weeknumber()) self.assertEqual(1, date.DateTime(2005,1,3).weeknumber()) def testStartOfDay(self): startOfDay = date.DateTime(2005,1,1,0,0,0,0) noonish = date.DateTime(2005,1,1,12,30,15,400) self.assertEqual(startOfDay, noonish.startOfDay()) def testEndOfDay(self): endOfDay = date.DateTime(2005,1,1,23,59,59,999999) noonish = date.DateTime(2005,1,1,12,30,15,400) self.assertEqual(endOfDay, noonish.endOfDay()) def testStartOfWorkWeekOnWednesday(self): startOfWorkWeek = date.DateTime(2011,7,25,0,0,0,0) wednesday = date.DateTime(2011,7,27,8,39,10) self.assertEqual(startOfWorkWeek, wednesday.startOfWorkWeek()) def testStartOfWorkWeekOnMonday(self): startOfWorkWeek = date.DateTime(2011,7,25,0,0,0,0) monday = date.DateTime(2011,7,25,8,39,10) self.assertEqual(startOfWorkWeek, monday.startOfWorkWeek()) def testStartOfWorkWeekOnSunday(self): startOfWorkWeek = date.DateTime(2011,7,18,0,0,0,0) sunday = date.DateTime(2011,7,24,8,39,10) self.assertEqual(startOfWorkWeek, sunday.startOfWorkWeek()) def testEndOfWorkWeek(self): endOfWorkWeek = date.DateTime(2010,5,7,23,59,59,999999) midweek = date.DateTime(2010,5,5,12,30,15,200000) self.assertEqual(endOfWorkWeek, midweek.endOfWorkWeek()) def testEndOfWorkWeek_OnSaturday(self): endOfWorkWeek = date.DateTime(2010,5,7,23,59,59,999999) midweek = date.DateTime(2010,5,1,12,30,15,200000) self.assertEqual(endOfWorkWeek, midweek.endOfWorkWeek()) def testLastDayOfCurrentMonth_InFebruary2004(self): expected = date.DateTime(2004, 2, 29) actual = date.LastDayOfCurrentMonth(localtime=lambda: (2004, 2, 1)) self.assertEqual(expected, actual) def testLastDayOfCurrentMonth_InDecember(self): expected = date.DateTime(2003, 12, 31) actual = date.LastDayOfCurrentMonth(localtime=lambda: (2003, 12, 1)) self.assertEqual(expected, actual) def testFormat1900(self): self.assertEqual(date.DateTime(2, 5, 19, 0, 0, 0).strftime('%Y%m%d'), '20519') taskcoach-1.4.3/tests/unittests/domainTests/DomainObjectOwnerMetaclassTest.py000066400000000000000000000022611265347643000276100ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.domain import base class OwnerUnderTest(object): __metaclass__ = base.DomainObjectOwnerMetaclass __ownedType__ = 'foo' class DomainObjectOwnerMetaclassTest(test.TestCase): def testModificationEventTypes(self): owner = OwnerUnderTest() # pylint: disable=E1101 self.failUnless(owner.foosChangedEventType() in \ owner.modificationEventTypes()) taskcoach-1.4.3/tests/unittests/domainTests/EffortAggregatorTest.py000077500000000000000000000357571265347643000256550ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, config from taskcoachlib.domain import task, effort, date import test class EffortAggregatorTestCase(test.TestCase): aggregation = 'One of: day, week, or month (override in subclass)' def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() self.effortAggregator = effort.EffortAggregator(self.taskList, aggregation=self.aggregation) patterns.Publisher().registerObserver(self.onEvent, eventType=self.effortAggregator.addItemEventType(), eventSource=self.effortAggregator) patterns.Publisher().registerObserver(self.onEvent, eventType=self.effortAggregator.removeItemEventType(), eventSource=self.effortAggregator) self.task1 = task.Task(subject='task 1') self.task2 = task.Task(subject='task 2') self.task3 = task.Task(subject='child') self.task1.addChild(self.task3) self.task3.setParent(self.task1) self.effort1period1a = effort.Effort(self.task1, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.effort2period1a = effort.Effort(self.task2, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.effort1period1b = effort.Effort(self.task1, date.DateTime(2004, 1, 1, 13, 0, 0), date.DateTime(2004, 1, 1, 14, 0, 0)) self.effort2period1b = effort.Effort(self.task2, date.DateTime(2004, 1, 1, 13, 0, 0), date.DateTime(2004, 1, 1, 14, 0, 0)) self.effort1period2 = effort.Effort(self.task1, date.DateTime(2004, 2, 2, 13, 0, 0), date.DateTime(2004, 2, 2, 14, 0, 0)) self.effort1period3 = effort.Effort(self.task1, date.DateTime(2004, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 10, 0, 0)) self.effort3period1a = effort.Effort(self.task3, date.DateTime(2004, 1, 1, 14, 0, 0), date.DateTime(2004, 1, 1, 15, 0, 0)) self.events = [] def onEvent(self, event): self.events.append(event) class CommonTestsMixin(object): def testEmptyTaskList(self): self.assertEqual(0, len(self.effortAggregator)) def testAddTaskWithoutEffort(self): self.taskList.append(self.task1) self.assertEqual(0, len(self.effortAggregator)) def testAddTaskWithEffort(self): self.task1.addEffort(self.effort1period1a) self.taskList.append(self.task1) self.assertEqual(2, len(self.effortAggregator)) def testAddEffort(self): self.taskList.append(self.task1) self.task1.addEffort(effort.Effort(self.task1)) self.assertEqual(2, len(self.effortAggregator)) def testAddTwoEffortsOnSameDay(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1b) self.assertEqual(2, len(self.effortAggregator)) def testAddTaskWithTwoEffortsOnSameDay(self): self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1b) self.taskList.append(self.task1) self.assertEqual(2, len(self.effortAggregator)) def testAddTaskWithTwoEffortsOnSameDayAndCheckTotalEffort(self): self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1b) self.taskList.append(self.task1) expectedDuration = self.effort1period1a.duration() + \ self.effort1period1b.duration() self.assertEqual(expectedDuration, list(self.effortAggregator)[0].duration()) def testAddTwoEffortsInDifferentPeriods(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period2) self.assertEqual(4, len(self.effortAggregator)) def testAddTwoEffortsOnTheSameDayToTwoDifferentTasks(self): self.taskList.extend([self.task1, self.task2]) self.task1.addEffort(self.effort1period1a) self.task2.addEffort(self.effort2period1a) self.assertEqual(3, len(self.effortAggregator)) def testAddEffortToChild(self): self.taskList.extend([self.task1, self.task2]) self.task1.addChild(self.task2) self.task2.addEffort(self.effort2period1a) self.assertEqual(3, len(self.effortAggregator)) def testAddChildWithEffort(self): self.taskList.extend([self.task1, self.task2]) self.task2.addEffort(self.effort2period1a) self.task1.addChild(self.task2) self.assertEqual(3, len(self.effortAggregator)) def testAddParentAndChildWithEffortToTaskList(self): self.task3.addEffort(self.effort3period1a) self.taskList.append(self.task1) self.assertEqual(3, len(self.effortAggregator)) def testAddEffortToGrandChild(self): self.taskList.extend([self.task1, self.task2]) self.task3.addChild(self.task2) self.task2.addEffort(self.effort2period1a) self.assertEqual(4, len(self.effortAggregator)) def testAddGrandChildWithEffort(self): self.taskList.extend([self.task1, self.task2]) self.task2.addEffort(self.effort2period1a) self.task3.addChild(self.task2) self.assertEqual(4, len(self.effortAggregator)) def testRemoveChildWithEffortFromParent(self): self.taskList.extend([self.task1, self.task2]) self.task1.addChild(self.task2) self.task2.addEffort(self.effort2period1a) self.task2.setParent(None) self.task1.removeChild(self.task2) self.assertEqual(2, len(self.effortAggregator)) def testRemoveEffort(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.removeEffort(self.effort1period1a) self.assertEqual(0, len(self.effortAggregator)) def testRemoveOneOfTwoEfforts(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1b) self.task1.removeEffort(self.effort1period1a) self.assertEqual(2, len(self.effortAggregator)) def testRemoveOneOfTwoEffortsOfDifferentTasks(self): self.taskList.extend([self.task1, self.task2]) self.task1.addEffort(self.effort1period1a) self.task2.addEffort(self.effort2period1a) self.task1.removeEffort(self.effort1period1a) self.assertEqual(2, len(self.effortAggregator)) def testRemoveTwoOfTwoEfforts(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1b) self.task1.removeEffort(self.effort1period1a) self.task1.removeEffort(self.effort1period1b) self.assertEqual(0, len(self.effortAggregator)) def testRemoveEffortFromChild(self): self.taskList.extend([self.task1, self.task2]) self.task2.addEffort(self.effort2period1a) self.task1.addChild(self.task2) self.task2.removeEffort(self.effort2period1a) self.assertEqual(0, len(self.effortAggregator)) def testRemoveTasks(self): self.taskList.extend([self.task1, self.task3]) self.task3.addEffort(self.effort3period1a) self.taskList.removeItems([self.task1, self.task3]) self.assertEqual(0, len(self.effortAggregator)) def testRemoveTasksWithOverlappingEffort(self): self.taskList.extend([self.task1, self.task3]) self.task3.addEffort(self.effort3period1a) self.task1.addEffort(self.effort1period1a) self.taskList.removeItems([self.task1, self.task3]) self.assertEqual(0, len(self.effortAggregator)) def testRemoveAllTasks(self): self.taskList.extend([self.task1, self.task2, self.task3]) self.task3.addEffort(self.effort3period1a) self.taskList.removeItems([self.task1, self.task2, self.task3]) self.assertEqual(0, len(self.effortAggregator)) def testRemoveChildTask(self): self.taskList.extend([self.task1]) self.task3.addEffort(self.effort3period1a) self.taskList.removeItems([self.task3]) self.assertEqual(0, len(self.effortAggregator)) def testChangeStart(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.effort1period1a.setStart(date.DateTime.now()) self.assertEqual(2, len(self.effortAggregator)) def testChangeStartOfOneOfTwoEfforts(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1b) self.effort1period1a.setStart(date.DateTime.now()) self.assertEqual(4, len(self.effortAggregator)) def testChangeStart_WithinPeriod(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.effort1period1a.setStart(self.effort1period1a.getStart() + \ date.ONE_SECOND) self.assertEqual(2, len(self.effortAggregator)) def testChangeStopDoesNotAffectPeriod(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) composite = list(self.effortAggregator)[0] start = composite.getStart() self.effort1period1a.setStop(date.DateTime.now()) self.assertEqual(start, composite.getStart()) def testChangeStartOfOneOfTwoEffortsToOneYearLater(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1b) self.effort1period1a.setStart(date.DateTime(2005, 1, 1, 11, 0, 0)) self.assertEqual(4, len(self.effortAggregator)) def testNotification_Add(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.assertEqual(1, len(self.events)) self.failUnless(self.events[0].value() in self.effortAggregator) def testNotification_Remove(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.removeEffort(self.effort1period1a) self.assertEqual(3, len(self.events)) def testCreateWithInitialEffort(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) aggregator = effort.EffortAggregator(self.taskList, aggregation=self.aggregation) self.assertEqual(2, len(aggregator)) def testLongEffortIsStillOneCompositeEffort(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period3) self.assertEqual(2, len(self.effortAggregator)) def testChangeTask(self): self.taskList.extend([self.task1, self.task2]) self.task1.addEffort(self.effort1period1a) self.effort1period1a.setTask(self.task2) self.assertEqual(2, len(self.effortAggregator)) self.failUnless(self.task2 in [item.task() for item in self.effortAggregator]) def testChangeTaskOfChildEffort(self): self.taskList.extend([self.task1, self.task2]) self.task3.addEffort(self.effort3period1a) self.effort3period1a.setTask(self.task2) self.assertEqual(2, len(self.effortAggregator)) self.failUnless(self.task2 in [item.task() for item in self.effortAggregator]) def testRemoveTaskAfterChangeTaskOfEffort(self): self.taskList.extend([self.task1, self.task2]) self.task1.addEffort(self.effort1period1a) self.effort1period1a.setTask(self.task2) self.taskList.remove(self.task1) self.assertEqual(2, len(self.effortAggregator)) self.failUnless(self.task2 in [item.task() for item in self.effortAggregator]) def testRemoveAndAddEffortToSamePeriod(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.task1.removeEffort(self.effort1period1a) self.task1.addEffort(self.effort1period1a) self.assertEqual(2, len(self.effortAggregator)) self.assertEqual(self.effort1period1a, list(self.effortAggregator)[0][0]) def testMaxDateTime(self): self.assertEqual(None, self.effortAggregator.maxDateTime()) def testMaxDateTime_OneEffort(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) self.assertEqual(self.effort1period1a.getStop(), self.effortAggregator.maxDateTime()) def testMaxDateTime_OneTrackingEffort(self): self.taskList.append(self.task1) self.task1.addEffort(effort.Effort(self.task1)) self.assertEqual(None, self.effortAggregator.maxDateTime()) def testMaxDateTime_TwoEfforts(self): self.taskList.append(self.task1) self.task1.addEffort(self.effort1period1a) now = date.DateTime.now() self.task1.addEffort(effort.Effort(self.task1, self.effort1period1a.getStart(), now)) self.assertEqual(now, self.effortAggregator.maxDateTime()) def testNrTracking(self): self.assertEqual(0, self.effortAggregator.nrBeingTracked()) def testOriginalLength(self): self.assertEqual(0, self.effortAggregator.originalLength()) class EffortPerDayTest(EffortAggregatorTestCase, CommonTestsMixin): aggregation = 'day' class EffortPerWeekTest(EffortAggregatorTestCase, CommonTestsMixin): aggregation = 'week' class EffortPerMonthTest(EffortAggregatorTestCase, CommonTestsMixin): aggregation = 'month' class MultipleAggregatorsTest(test.TestCase): def setUp(self): self.taskList = task.TaskList() self.effortPerDay = effort.EffortSorter(effort.EffortAggregator(self.taskList, aggregation='day')) self.effortPerWeek = effort.EffortSorter(effort.EffortAggregator(self.taskList, aggregation='week')) def testDeleteEffort_StartOfBothPeriods(self): aTask = task.Task() self.taskList.append(aTask) # Make sure the start of the day and week are the same, # in other words, use a Monday anEffort = effort.Effort(aTask, date.DateTime(2006, 8, 28), date.DateTime(2006, 8, 29)) aTask.addEffort(anEffort) aTask.removeEffort(anEffort) self.failIf(self.effortPerDay) taskcoach-1.4.3/tests/unittests/domainTests/EffortCompositePerPeriodTest.py000066400000000000000000000116021265347643000273230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import config from taskcoachlib.domain import task, effort, date from taskcoachlib.thirdparty.pubsub import pub import EffortCompositeTest import test class CompositeEffortPerPeriodTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() self.effortList = effort.EffortList(self.taskList) self.task = task.Task(subject='task') self.taskList.append(self.task) self.effort1 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.effort2 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 13, 0, 0), date.DateTime(2004, 1, 1, 14, 0, 0)) self.effort3 = effort.Effort(self.task, date.DateTime(2004, 1, 11, 13, 0, 0), date.DateTime(2004, 1, 11, 14, 0, 0)) self.trackedEffort = effort.Effort(self.task, date.DateTime(2004, 1, 1, 9, 0, 0)) self.composite = effort.CompositeEffortPerPeriod(\ date.DateTime(2004, 1, 1, 0, 0, 0), date.DateTime(2004, 1, 1, 23, 59, 59), self.taskList) self.reducer = EffortCompositeTest.FakeEffortAggregator(self.composite) def testInitialLength(self): self.assertEqual(0, len(self.composite)) def testInitialDuration(self): self.assertEqual(date.TimeDelta(), self.composite.duration()) def testInitialTrackingState(self): self.failIf(self.composite.isBeingTracked()) def testInitialTrackingStateWhenTaskIsTracked(self): self.task.addEffort(self.trackedEffort) composite = effort.CompositeEffortPerPeriod( self.composite.getStart(), self.composite.getStop(), self.taskList, self.trackedEffort) self.failUnless(composite.isBeingTracked()) def testDurationForSingleEffort(self): self.task.addEffort(self.effort1) self.assertEqual(self.effort1.duration(), self.composite.duration()) def testAddEffortOutsidePeriodToTask(self): effortOutsidePeriod = effort.Effort(self.task, date.DateTime(2004, 1, 11, 13, 0, 0), date.DateTime(2004, 1, 11, 14, 0, 0)) self.task.addEffort(effortOutsidePeriod) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testAddEffortWithStartTimeEqualToStartOfPeriodToTask(self): effortSameStartTime = effort.Effort(self.task, date.DateTime(2004, 1, 1, 0, 0, 0), date.DateTime(2004, 1, 1, 14, 0, 0)) self.task.addEffort(effortSameStartTime) self.assertEqual(effortSameStartTime.duration(), self.composite.duration()) def testAddEffortWithStartTimeEqualToEndOfPeriodToTask(self): effortSameStopTime = effort.Effort(self.task, date.DateTime(2004, 1, 1, 23, 59, 59), date.DateTime(2004, 1, 2, 1, 0, 0)) self.task.addEffort(effortSameStopTime) self.assertEqual(effortSameStopTime.duration(), self.composite.duration()) def testRemoveEffortFromTask(self): self.task.addEffort(self.effort1) self.task.removeEffort(self.effort1) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testRemoveMultipleEffortsFromSamePeriodFromTask(self): events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.task.setEfforts([]) self.failUnless(events) def testRemoveMultipleEffortsFromDifferentPeriodsFromTask(self): events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.task.addEffort(self.effort3) self.task.addEffort(self.effort1) self.task.setEfforts([]) self.failUnless(events) taskcoach-1.4.3/tests/unittests/domainTests/EffortCompositeTest.py000066400000000000000000000550661265347643000255250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import config from taskcoachlib.domain import task, effort, date from taskcoachlib.thirdparty.pubsub import pub import test class FakeEffortAggregator(object): def __init__(self, composite): self.composite = composite pub.subscribe(self.onTimeSpentChanged, task.Task.timeSpentChangedEventType()) pub.subscribe(self.onRevenueChanged, task.Task.hourlyFeeChangedEventType()) def onTimeSpentChanged(self, newValue, sender): self.composite.onTimeSpentChanged(newValue, sender) def onTrackingChanged(self, newValue, sender): self.composite.onTrackingChanged(newValue, sender) def onRevenueChanged(self, newValue, sender): self.composite.onRevenueChanged(newValue, sender) class CompositeEffortWithRoundingTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.task = task.Task(subject='task') self.effort1 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 11, 0, 45)) self.effort2 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 12, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 45)) self.effort3 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 13, 0, 0), date.DateTime(2004, 1, 1, 13, 0, 45)) self.effort4 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 13, 0, 0), date.DateTime(2004, 1, 1, 13, 0, 10)) self.composite = effort.CompositeEffort(self.task, date.DateTime(2004, 1, 1, 0, 0, 0), date.DateTime(2004, 1, 1, 23, 59, 59)) self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.task.addEffort(self.effort3) self.task.addEffort(self.effort4) def test_round_total(self): self.assertEqual(self.composite.duration(recursive=True, rounding=60), date.TimeDelta(seconds=3*60)) def test_round_total_up(self): self.assertEqual(self.composite.duration(recursive=True, rounding=60, roundUp=True), date.TimeDelta(seconds=4*60)) class CompositeEffortTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.task = task.Task(subject='task') self.effort1 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.effort2 = effort.Effort(self.task, date.DateTime(2004, 1, 1, 13, 0, 0), date.DateTime(2004, 1, 1, 14, 0, 0)) self.effort3 = effort.Effort(self.task, date.DateTime(2004, 1, 11, 13, 0, 0), date.DateTime(2004, 1, 11, 14, 0, 0)) self.trackedEffort = effort.Effort(self.task, date.DateTime(2004, 1, 1, 9, 0, 0)) self.composite = effort.CompositeEffort(self.task, date.DateTime(2004, 1, 1, 0, 0, 0), date.DateTime(2004, 1, 1, 23, 59, 59)) self.fakeAggregator = FakeEffortAggregator(self.composite) def testInitialLength(self): self.assertEqual(0, len(self.composite)) def testInitialDuration(self): self.assertEqual(date.TimeDelta(), self.composite.duration()) def testInitialTrackingState(self): self.failIf(self.composite.isBeingTracked()) def testInitialTrackingStateWhenTaskIsTracked(self): self.task.addEffort(self.trackedEffort) composite = effort.CompositeEffort(self.task, self.composite.getStart(), self.composite.getStop()) self.failUnless(composite.isBeingTracked()) def testDurationForSingleEffort(self): self.task.addEffort(self.effort1) self.assertEqual(self.effort1.duration(), self.composite.duration()) def testAddEffortOutsidePeriodToTask(self): effortOutsidePeriod = effort.Effort(self.task, date.DateTime(2004, 1, 11, 13, 0, 0), date.DateTime(2004, 1, 11, 14, 0, 0)) self.task.addEffort(effortOutsidePeriod) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testAddEffortWithStartTimeEqualToStartOfPeriodToTask(self): effortSameStartTime = effort.Effort(self.task, date.DateTime(2004, 1, 1, 0, 0, 0), date.DateTime(2004, 1, 1, 14, 0, 0)) self.task.addEffort(effortSameStartTime) self.assertEqual(effortSameStartTime.duration(), self.composite.duration()) def testAddEffortWithStartTimeEqualToEndOfPeriodToTask(self): effortSameStopTime = effort.Effort(self.task, date.DateTime(2004, 1, 1, 23, 59, 59), date.DateTime(2004, 1, 2, 1, 0, 0)) self.task.addEffort(effortSameStopTime) self.assertEqual(effortSameStopTime.duration(), self.composite.duration()) def testAddTrackedEffortToTaskDoesNotCauseListEmptyNotification(self): events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.task.addEffort(effort.Effort(self.task, self.composite.getStart())) self.failIf(events) def testAddEffortNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.durationChangedEventType()) self.task.addEffort(self.effort1) self.assertEqual([(self.composite.duration(), self.composite)], events) def testRemoveEffortFromTask(self): self.task.addEffort(self.effort1) self.task.removeEffort(self.effort1) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testRemoveEffortNotification(self): self.task.addEffort(self.effort1) events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.task.removeEffort(self.effort1) self.assertEqual([self.composite], events) def testDuration(self): self.task.addEffort(self.effort1) self.assertEqual(self.effort1.duration(), self.composite.duration()) def testDurationTwoEfforts(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.assertEqual(self.effort1.duration() + self.effort2.duration(), self.composite.duration()) def testRevenue(self): self.task.setHourlyFee(100) self.task.addEffort(self.effort1) self.assertEqual(100, self.composite.revenue()) def testRevenueTwoEfforts(self): self.task.setHourlyFee(100) self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.assertEqual(200, self.composite.revenue()) def testThatAnHourlyFeeChangeCausesARevenueNotification(self): self.task.addEffort(self.effort1) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.revenueChangedEventType()) self.task.setHourlyFee(100) self.failUnless((100.0, self.composite) in events) def testIsBeingTracked(self): self.task.addEffort(self.effort1) self.effort1.setStop(date.DateTime()) self.failUnless(self.composite.isBeingTracked()) def testChangeStartTimeOfEffort_KeepWithinPeriod(self): self.task.addEffort(self.effort1) self.effort1.setStart(self.effort1.getStart() + date.ONE_HOUR) self.assertEqual(self.effort1.duration(), self.composite.duration()) def testChangeStartTimeOfEffort_KeepWithinPeriod_NoNotification(self): self.task.addEffort(self.effort1) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.durationChangedEventType()) self.effort1.setStart(self.effort1.getStart() + date.ONE_HOUR) self.failIf((self.composite.duration(), self.composite) in events) def testChangeStartTimeOfEffort_MoveOutsidePeriode(self): self.task.addEffort(self.effort1) self.effort1.setStart(self.effort1.getStart() + date.TimeDelta(days=2)) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testChangeStopTimeOfEffort_KeepWithinPeriod(self): self.task.addEffort(self.effort1) self.effort1.setStop(self.effort1.getStop() + date.ONE_HOUR) self.assertEqual(self.effort1.duration(), self.composite.duration()) def testChangeStopTimeOfEffort_MoveOutsidePeriod(self): self.task.addEffort(self.effort1) self.effort1.setStop(self.effort1.getStop() + date.TimeDelta(days=2)) self.assertEqual(self.effort1.duration(), self.composite.duration()) def testChangeStopTimeOfEffort_MoveOutsidePeriod_Notification(self): self.task.addEffort(self.effort1) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.durationChangedEventType()) self.effort1.setStop(self.effort1.getStop() + date.TimeDelta(days=2)) self.failIf((self.composite.duration(), self.composite) in events) def testChangeStopTimeOfEffort_NoNotification(self): self.task.addEffort(self.effort1) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.durationChangedEventType()) self.effort1.setStop(self.effort1.getStop() + date.ONE_HOUR) self.failIf((self.composite.duration(), self.composite) in events) def testChangeStartTimeOfEffort_MoveInsidePeriod(self): self.task.addEffort(self.effort3) self.effort3.setStart(self.composite.getStart()) self.assertEqual(self.effort3.duration(), self.composite.duration()) def testEmptyNotification(self): events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.task.addEffort(self.effort1) self.task.removeEffort(self.effort1) self.assertEqual([self.composite], events) def testChangeTask(self): self.task.addEffort(self.effort1) self.effort1.setTask(task.Task()) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testChangeTask_EmptyNotification(self): events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.task.addEffort(self.effort1) self.effort1.setTask(task.Task()) self.assertEqual([self.composite], events) def testGetDescription_ZeroEfforts(self): self.assertEqual('', self.composite.description()) def testGetDescription_OneEffort(self): self.task.addEffort(self.effort1) for description in ('', 'Description'): self.effort1.setDescription(description) self.assertEqual(description, self.composite.description()) def testGetDescription_TwoEfforts(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) for description1, description2 in (('', ''), ('descripion1', ''), ('', 'description2'), ('description1', 'description2')): self.effort1.setDescription(description1) self.effort2.setDescription(description2) if description1 and description2: seperator = '\n' else: seperator = '' expectedDescription = description1 + seperator + description2 self.assertEqual(expectedDescription, self.composite.description()) class CompositeEffortWithSubTasksTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.task = task.Task(subject='task') self.child = task.Task(subject='child') self.child2 = task.Task(subject='child2') self.task.addChild(self.child) self.taskEffort = effort.Effort(self.task, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.childEffort = effort.Effort(self.child, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.child2Effort = effort.Effort(self.child2, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.trackedEffort = effort.Effort(self.child, date.DateTime(2004, 1, 1, 9, 0, 0)) self.composite = effort.CompositeEffort(self.task, date.DateTime(2004, 1, 1, 0, 0, 0), date.DateTime(2004, 1, 1, 23, 59, 59)) self.fakeAggregator = FakeEffortAggregator(self.composite) def testAddEffortToChildTaskNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.durationChangedEventType()) self.child.addEffort(self.childEffort) self.failUnless((self.composite.duration(), self.composite) in events) def testRemoveEffortFromChildTask(self): self.child.addEffort(self.childEffort) self.child.removeEffort(self.childEffort) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testRemoveEffortFromChildNotification(self): self.child.addEffort(self.childEffort) events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.child.removeEffort(self.childEffort) self.assertEqual([self.composite], events) def testDuration(self): self.child.addEffort(self.childEffort) self.assertEqual(date.TimeDelta(), self.composite.duration()) def testRecursiveDuration(self): self.child.addEffort(self.childEffort) self.assertEqual(self.childEffort.duration(), self.composite.duration(recursive=True)) def testDurationWithTaskAndChildEffort(self): self.task.addEffort(self.taskEffort) self.child.addEffort(self.childEffort) self.assertEqual(self.taskEffort.duration() + \ self.childEffort.duration(), self.composite.duration(recursive=True)) def testAddEffortToNewChild(self): self.task.addChild(self.child2) self.child2.addEffort(self.child2Effort) self.assertEqual(self.child2Effort.duration(), self.composite.duration(recursive=True)) def testAddChildWithEffort(self): self.child2.addEffort(self.child2Effort) self.task.addChild(self.child2) self.assertEqual(self.child2Effort.duration(), self.composite.duration(recursive=True)) def testAddEffortToGrandChild(self): self.task.addChild(self.child2) grandChild = task.Task(subject='grandchild') self.child2.addChild(grandChild) grandChildEffort = effort.Effort(grandChild, self.composite.getStart(), self.composite.getStart() + date.ONE_HOUR) grandChild.addEffort(grandChildEffort) self.assertEqual(grandChildEffort.duration(), self.composite.duration(recursive=True)) def testAddGrandChildWithEffort(self): self.task.addChild(self.child2) grandChild = task.Task(subject='grandchild') grandChildEffort = effort.Effort(grandChild, self.composite.getStart(), self.composite.getStart() + date.ONE_HOUR) grandChild.addEffort(grandChildEffort) self.child2.addChild(grandChild) self.assertEqual(grandChildEffort.duration(), self.composite.duration(recursive=True)) def testRemoveEffortFromAddedChild(self): self.task.addChild(self.child2) self.child2.addEffort(self.child2Effort) self.child2.removeEffort(self.child2Effort) self.assertEqual(date.TimeDelta(), self.composite.duration(recursive=True)) def testRemoveChildWithEffort(self): self.child.addEffort(self.childEffort) self.task.removeChild(self.child) self.assertEqual(date.TimeDelta(), self.composite.duration(recursive=True)) def testRemoveChildWithEffortCausesEmptyNotification(self): events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.child.addEffort(self.childEffort) self.task.removeChild(self.child) self.assertEqual([self.composite], events) def testChangeStartTimeOfChildEffort_MoveInsidePeriod(self): childEffort = effort.Effort(self.child) self.child.addEffort(childEffort) childEffort.setStart(self.composite.getStart()) # Make sure the next assertEqual cannot fail due to duration() being # called twice: childEffort.setStop() self.assertEqual(childEffort.duration(), self.composite.duration(recursive=True)) def testChangeTask(self): self.child.addEffort(self.childEffort) self.childEffort.setTask(task.Task()) self.assertEqual(date.TimeDelta(), self.composite.duration(recursive=True)) class CompositeEffortWithSubTasksRevenueTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.task = task.Task(subject='task') self.child = task.Task(subject='child') self.task.addChild(self.child) self.taskEffort = effort.Effort(self.task, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.childEffort = effort.Effort(self.child, date.DateTime(2004, 1, 1, 11, 0, 0), date.DateTime(2004, 1, 1, 12, 0, 0)) self.composite = effort.CompositeEffort(self.task, date.DateTime(2004, 1, 1, 0, 0, 0), date.DateTime(2004, 1, 1, 23, 59, 59)) self.fakeAggregator = FakeEffortAggregator(self.composite) self.task.addEffort(self.taskEffort) self.child.addEffort(self.childEffort) def testRevenueWhenParentHasHourlyFee(self): self.task.setHourlyFee(100) self.assertEqual(self.taskEffort.duration().hours() * 100, self.composite.revenue()) def testRecursiveRevenueWhenParentHasHourlyFee(self): self.task.setHourlyFee(100) self.assertEqual(self.taskEffort.duration().hours() * 100, self.composite.revenue(recursive=True)) def testRevenueWhenChildHasHourlyFee(self): self.child.setHourlyFee(100) self.assertEqual(0, self.composite.revenue()) def testRecursiveRevenueWhenChildHasHourlyFee(self): self.child.setHourlyFee(100) self.assertEqual(self.childEffort.duration().hours() * 100, self.composite.revenue(recursive=True)) def testRevenueWhenChildAndParentHaveHourlyFees(self): self.child.setHourlyFee(100) self.task.setHourlyFee(200) self.assertEqual(self.taskEffort.duration().hours() * 200, self.composite.revenue()) def testRecursiveRevenueWhenChildAndParentHaveHourlyFees(self): self.child.setHourlyFee(100) self.task.setHourlyFee(200) self.assertEqual(self.taskEffort.duration().hours() * 200 + \ self.childEffort.duration().hours() * 100, self.composite.revenue(recursive=True)) def testRevenueWhenParentHasFixedFee(self): self.task.setFixedFee(1000) self.assertEqual(0, self.composite.revenue()) def testRecursiveRevenueWhenParentHasFixedFee(self): self.task.setFixedFee(1000) self.assertEqual(0, self.composite.revenue(recursive=True)) def testRevenueWhenChildHasFixedFee(self): self.child.setFixedFee(1000) self.assertEqual(0, self.composite.revenue()) def testRecursiveRevenueWhenChildHasFixedFee(self): self.child.setFixedFee(1000) self.assertEqual(0, self.composite.revenue(recursive=True)) def testRevenueWhenParentHasFixedFeeAndMultipleEfforts(self): self.task.setFixedFee(1000) self.task.addEffort(effort.Effort(self.task, date.DateTime(2005, 12, 12, 10, 0, 0), date.DateTime(2005, 12, 12, 12, 0, 0))) self.assertEqual(0, self.composite.revenue()) def testRevenueWhenChildHasFixedFeeAndMultipleEfforts(self): self.child.setFixedFee(1000) self.child.addEffort(effort.Effort(self.child, date.DateTime(2005, 12, 12, 10, 0, 0), date.DateTime(2005, 12, 12, 12, 0, 0))) self.assertEqual(0, self.composite.revenue()) def testRecursiveRevenueWhenChildHasFixedFeeAndMultipleEfforts(self): self.child.setFixedFee(1000) self.child.addEffort(effort.Effort(self.child, date.DateTime(2005, 12, 12, 10, 0, 0), date.DateTime(2005, 12, 12, 12, 0, 0))) self.assertEqual(0, self.composite.revenue(recursive=True)) def testRevenueWithMixture(self): self.child.setFixedFee(100) self.task.setHourlyFee(1000) self.assertEqual(1000, self.composite.revenue(recursive=True)) def testThatAnHourlyFeeChangeCausesARevenueNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.revenueChangedEventType()) self.child.setHourlyFee(100) self.failUnless((0.0, self.composite) in events) taskcoach-1.4.3/tests/unittests/domainTests/EffortListTest.py000066400000000000000000000134041265347643000244640ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import patterns, config from taskcoachlib.domain import task, effort, date class EffortListTest(test.TestCase): def setUp(self): self.events = [] task.Task.settings = config.Settings(load=False) self.task = task.Task() self.taskList = task.TaskList() self.effortList = effort.EffortList(self.taskList) self.taskList.append(self.task) patterns.Publisher().registerObserver(self.onEvent, eventType=self.effortList.addItemEventType(), eventSource=self.effortList) patterns.Publisher().registerObserver(self.onEvent, eventType=self.effortList.removeItemEventType(), eventSource=self.effortList) self.effort = effort.Effort(self.task, date.DateTime(2004, 1, 1), date.DateTime(2004, 1, 2)) def testCreate(self): self.assertEqual(0, len(self.effortList)) def onEvent(self, event): self.events.append(event) def testNotificationAfterAppend(self): self.task.addEffort(self.effort) self.assertEqual(self.effort, self.events[0].value()) def testAppend(self): self.task.addEffort(self.effort) self.assertEqual(1, len(self.effortList)) self.failUnless(self.effort in self.effortList) def testNotificationAfterRemove(self): self.task.addEffort(self.effort) self.task.removeEffort(self.effort) self.assertEqual(self.effort, self.events[0].value()) def testRemove(self): self.task.addEffort(self.effort) self.task.removeEffort(self.effort) self.assertEqual(0, len(self.effortList)) def testAppendTaskWithEffort(self): newTask = task.Task() newTask.addEffort(effort.Effort(newTask)) self.taskList.append(newTask) self.assertEqual(1, len(self.effortList)) def testCreateWhenTaskListIsFilled(self): self.task.addEffort(self.effort) effortList = effort.EffortList(task.TaskList([self.task])) self.assertEqual(1, len(effortList)) def testAddEffortToChild(self): child = task.Task(parent=self.task) self.taskList.append(child) child.addEffort(effort.Effort(child)) self.assertEqual(1, len(self.effortList)) def testMaxDateTime(self): self.assertEqual(None, self.effortList.maxDateTime()) def testMaxDateTime_OneEffort(self): self.task.addEffort(self.effort) self.assertEqual(self.effort.getStop(), self.effortList.maxDateTime()) def testMaxDateTime_OneTrackingEffort(self): self.task.addEffort(effort.Effort(self.task)) self.assertEqual(None, self.effortList.maxDateTime()) def testMaxDateTime_TwoEfforts(self): self.task.addEffort(self.effort) now = date.DateTime.now() self.task.addEffort(effort.Effort(self.task, None, now)) self.assertEqual(now, self.effortList.maxDateTime()) def testNrTracking(self): self.assertEqual(0, self.effortList.nrBeingTracked()) def testOriginalLength(self): self.assertEqual(0, self.effortList.originalLength()) def testRemoveItems(self): self.task.addEffort(self.effort) self.effortList.removeItems([self.effort]) self.assertEqual(0, len(self.effortList)) self.assertEqual(0, len(self.task.efforts())) def testRemoveAllItems(self): self.task.addEffort(self.effort) effort2 = effort.Effort(self.task, date.DateTime(2005, 1, 1), date.DateTime(2005, 1, 2)) self.task.addEffort(effort2) self.effortList.removeItems([effort2, self.effort]) self.assertEqual(0, len(self.effortList)) self.assertEqual(0, len(self.task.efforts())) def testExtend(self): self.effortList.extend([self.effort]) self.assertEqual(1, len(self.effortList)) self.failUnless(self.effort in self.effortList) self.assertEqual(1, len(self.task.efforts())) self.assertEqual(self.effort, self.task.efforts()[0]) def testRemoveTaskWithEffort(self): self.task.addEffort(self.effort) anotherTask = task.Task('Another task without effort') self.taskList.append(anotherTask) self.assertEqual(1, len(self.effortList)) self.taskList.remove(self.task) self.assertEqual(0, len(self.effortList)) def testRemoveTaskWithoutEffort(self): self.task.addEffort(self.effort) anotherTask = task.Task('Another task without effort') self.taskList.append(anotherTask) self.assertEqual(1, len(self.effortList)) self.taskList.remove(anotherTask) self.assertEqual(1, len(self.effortList)) def testChangeTask(self): self.task.addEffort(self.effort) anotherTask = task.Task('Another task without effort') self.taskList.append(anotherTask) self.assertEqual(1, len(self.effortList)) self.effort.setTask(anotherTask) self.assertEqual(1, len(self.effortList)) taskcoach-1.4.3/tests/unittests/domainTests/EffortTest.py000066400000000000000000000301231265347643000236250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, config from taskcoachlib.domain import task, effort, date, category from taskcoachlib.thirdparty.pubsub import pub from unittests import asserts import test import wx class EffortTest(test.TestCase, asserts.Mixin): def setUp(self): task.Task.settings = config.Settings(load=False) self.task = task.Task() self.effort = effort.Effort(self.task, start=date.DateTime(2004, 1, 1), stop=date.DateTime(2004, 1, 2)) self.task.addEffort(self.effort) self.events = [] def onEvent(self, event): self.events.append(event) def testId(self): self.assert_(self.effort.id() is not None) def testStatus(self): self.assertEqual(self.effort.getStatus(), self.effort.STATUS_NEW) def testCreate(self): self.assertEqual(self.task, self.effort.task()) self.assertEqual('', self.effort.description()) def testStr(self): self.assertEqual('Effort(%s, %s, %s)' % (self.effort.task(), self.effort.getStart(), self.effort.getStop()), str(self.effort)) def testDuration(self): self.assertEqual(date.TimeDelta(days=1), self.effort.duration()) def testForegroundColor(self): self.task.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.effort.foregroundColor()) def testBackgroundColor(self): self.task.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.effort.backgroundColor()) def testFont(self): self.task.setFont(wx.SWISS_FONT) self.assertEqual(wx.SWISS_FONT, self.effort.font()) def testNotificationForSetStart(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.startChangedEventType()) start = date.DateTime.now() self.effort.setStart(start) self.assertEqual([(start, self.effort)], events) def testNotificationForSetStop(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.stopChangedEventType()) stop = date.DateTime.now() self.effort.setStop(stop) self.assertEqual([(stop, self.effort)], events) def testNoNotificationForSetStopWhenNewStopEqualsOldStop(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.stopChangedEventType()) self.effort.setStop(self.effort.getStop()) self.failIf(events) def testDurationNotificationForSetStart(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.durationChangedEventType()) start = date.DateTime.now() self.effort.setStart(start) self.assertEqual([(self.effort.duration(), self.effort)], events) def testDurationNotificationForSetStop(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.durationChangedEventType()) self.effort.setStop(date.DateTime.now()) self.assertEqual([(self.effort.duration(), self.effort)], events) def testNotificationForSetDescription(self): patterns.Publisher().registerObserver(self.onEvent, eventType=effort.Effort.descriptionChangedEventType()) self.effort.setDescription('description') self.assertEqual('description', self.events[0].value()) def testNotificationForSetTask(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.taskChangedEventType()) task2 = task.Task() self.effort.setTask(task2) self.assertEqual([(task2, self.effort)], events) def testNotificationForStartTracking(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.effort.trackingChangedEventType()) self.effort.setStop(date.DateTime()) self.assertEqual([(True, self.effort)], events) def testNotificationForStopTracking(self): self.effort.setStop(date.DateTime()) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.effort.trackingChangedEventType()) self.effort.setStop(date.DateTime.now()) self.assertEqual([(False, self.effort)], events) def testRevenueNotificationForTaskHourlyFeeChange(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.revenueChangedEventType()) self.task.setHourlyFee(100) self.assertEqual([(2400.0, self.effort)], events) def testRevenueNotificationForEffortDurationChange_ChangeStop(self): self.task.setHourlyFee(100) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.revenueChangedEventType()) self.effort.setStop(date.DateTime(2004, 1, 3)) self.assertEqual([(4800.0, self.effort)], events) def testRevenueNotificationForEffortDurationChange_ChangeStart(self): self.task.setHourlyFee(100) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.revenueChangedEventType()) self.effort.setStart(date.DateTime(2004, 1, 1, 12, 0, 0)) self.assertEqual([(1200.0, self.effort)], events) def testDefaultStartAndStop(self): effortPeriod = effort.Effort(self.task) currentTime = date.DateTime.now() now = lambda: currentTime self.assertEqual(now() - effortPeriod.getStart(), effortPeriod.duration(now=now)) def testState(self): state = self.effort.__getstate__() theTask = task.Task() newEffort = effort.Effort(theTask) newEffort.__setstate__(state) self.assertEqualEfforts(newEffort, self.effort) def testCopy(self): copyEffort = self.effort.copy() self.assertEqualEfforts(copyEffort, self.effort) self.assertEqual(copyEffort.description(), self.effort.description()) def testCopyHasDifferentId(self): copyEffort = self.effort.copy() self.assertNotEqual(copyEffort.id(), self.effort.id()) def testCopyHasStatusNew(self): self.effort.markDeleted() copyEffort = self.effort.copy() self.assertEqual(copyEffort.getStatus(), copyEffort.STATUS_NEW) def testDescription(self): self.effort.setDescription('description') self.assertEqual('description', self.effort.description()) def testDescription_Constructor(self): newEffort = effort.Effort(self.task, description='description') self.assertEqual('description', newEffort.description()) def testSetStop_None(self): self.effort.setStop() now = date.Now() self.failUnless(now - date.ONE_SECOND < self.effort.getStop() < now + date.ONE_SECOND) def testSetStop_Infinite(self): self.effort.setStop(date.DateTime.max) self.assertEqual(None, self.effort.getStop()) def testSetStop_SpecificDateTime(self): self.effort.setStop(date.DateTime(2005, 1, 1)) self.assertEqual(date.DateTime(2005, 1, 1), self.effort.getStop()) def testIsNotBeingTracked_(self): self.failIf(self.effort.isBeingTracked()) def testIsBeingTracked(self): self.effort.setStop(date.DateTime.max) self.failUnless(self.effort.isBeingTracked()) def testSetTaskToNewTaskWillAddItToNewTask(self): task2 = task.Task() self.effort.setTask(task2) self.assertEqual([self.effort], task2.efforts()) def testSetTaskToNewTaskWillRemoveItFromOldTask(self): self.task.addEffort(self.effort) task2 = task.Task() self.effort.setTask(task2) self.assertEqual([self.effort], task2.efforts()) self.failIf(self.effort in self.task.efforts()) def testSetTaskToOldTaskTwice(self): self.task.addEffort(self.effort) self.effort.setTask(self.task) self.assertEqual([self.effort], self.task.efforts()) def testRevenueWithoutFee(self): self.task.addEffort(self.effort) self.assertEqual(0, self.effort.revenue()) def testRevenue_HourlyFee(self): self.task.setHourlyFee(100) self.task.addEffort(self.effort) self.assertEqual(self.effort.duration().hours() * 100, self.effort.revenue()) def testRevenue_FixedFee_OneEffort(self): self.task.setFixedFee(1000) self.task.addEffort(self.effort) self.assertEqual(0, self.effort.revenue()) def testRevenue_FixedFee_OneSmallEffort(self): self.task.setFixedFee(1000) self.effort.setStop(self.effort.getStart()) self.assertEqual(0, self.effort.revenue()) def testRevenue_FixedFee_TwoEfforts(self): self.task.setFixedFee(1000) self.task.addEffort(self.effort) self.task.addEffort(effort.Effort(self.task, date.DateTime(2005, 1, 1, 10, 0), date.DateTime(2005, 1, 1, 22, 0))) self.assertEqual(0, self.effort.revenue()) def testSubject(self): self.assertEqual(self.task.subject(), self.effort.subject()) def testNoCategories(self): self.assertEqual(self.task.categories(), self.effort.categories()) def testCategories(self): self.task.addCategory(category.Category('C')) self.assertEqual(self.task.categories(), self.effort.categories()) def testModificationEventTypes(self): # pylint: disable=E1003 self.assertEqual(super(effort.Effort, self.effort).modificationEventTypes() + \ [self.effort.taskChangedEventType(), self.effort.startChangedEventType(), self.effort.stopChangedEventType()], self.effort.modificationEventTypes()) class EffortWithoutTaskTest(test.TestCase): def setUp(self): self.effort = effort.Effort(None, start=date.DateTime(2005, 1, 1)) self.task = task.Task() self.events = [] def onEvent(self, event): self.events.append(event) # pragma: no cover def testCreatingAnEffortWithoutTask(self): self.assertEqual(None, self.effort.task()) def testSettingTask(self): self.effort.setTask(self.task) self.assertEqual(self.task, self.effort.task()) def testSettingTask_CausesNoNotification(self): patterns.Publisher().registerObserver(self.onEvent, self.effort.taskChangedEventType()) self.effort.setTask(self.task) self.failIf(self.events) taskcoach-1.4.3/tests/unittests/domainTests/FilterTest.py000066400000000000000000000217261265347643000236360ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, weakref from taskcoachlib import patterns, config from taskcoachlib.domain import task, base class TestFilter(base.Filter): def filterItems(self, items): return [item for item in items if item > 'b'] class FilterTestsMixin(object): def setUp(self): self.observable = self.collectionClass(['a', 'b', 'c', 'd']) self.filter = TestFilter(self.observable) def testLength(self): self.assertEqual(2, len(self.filter)) def testContents(self): self.failUnless('c' in self.filter and 'd' in self.filter) def testRemoveItem(self): self.filter.remove('c') self.assertEqual(1, len(self.filter)) self.failUnless('d' in self.filter) self.assertEqual(['a', 'b', 'd'], self.observable) def testNotification(self): self.observable.append('e') self.assertEqual(3, len(self.filter)) self.failUnless('e' in self.filter) class FilterListTest(FilterTestsMixin, test.TestCase): collectionClass = patterns.ObservableList class FilterSetTest(FilterTestsMixin, test.TestCase): collectionClass = patterns.ObservableSet class DummyFilter(base.Filter): def filterItems(self, items): return items def test(self): self.testcalled = 1 # pylint: disable=W0201 class DummyItem(str): def ancestors(self): return [] class StackedFilterTest(test.TestCase): def setUp(self): self.list = patterns.ObservableList([DummyItem('a'), DummyItem('b'), DummyItem('c'), DummyItem('d')]) self.filter1 = DummyFilter(self.list) self.filter2 = TestFilter(self.filter1) def testDelegation(self): self.filter2.test() self.assertEqual(1, self.filter1.testcalled) def testSetTreeMode_True(self): self.filter2.setTreeMode(True) self.failUnless(self.filter1.treeMode()) def testSetTreeMode_False(self): self.filter2.setTreeMode(False) self.failIf(self.filter1.treeMode()) def testFiltersAreCollected(self): filterRef = weakref.ref(self.filter1) self.filter2.detach() del self.filter1 del self.filter2 self.failUnless(filterRef() is None) class SearchFilterTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.parent = task.Task(subject='*ABC$D', description='Parent description') self.child = task.Task(subject='DEF', description='Child description') self.parent.addChild(self.child) self.list = task.TaskList([self.parent, self.child]) self.filter = base.SearchFilter(self.list) def setSearchString(self, searchString, matchCase=False, includeSubItems=False, searchDescription=False, regularExpression=True): self.filter.setSearchFilter(searchString, matchCase=matchCase, includeSubItems=includeSubItems, searchDescription=searchDescription, regularExpression=regularExpression) def testNoMatch(self): self.setSearchString('XYZ') self.assertEqual(0, len(self.filter)) def testMatch(self): self.setSearchString('AB') self.assertEqual(1, len(self.filter)) def testMatchIsCaseInSensitiveByDefault(self): self.setSearchString('abc') self.assertEqual(1, len(self.filter)) def testMatchCaseInsensitive(self): self.setSearchString('abc', True) self.assertEqual(0, len(self.filter)) def testMatchWithRE(self): self.setSearchString('a.c') self.assertEqual(1, len(self.filter)) def testMatchWithoutRE(self): self.setSearchString('$D', regularExpression=False) self.assertEqual(1, len(self.filter)) def testMatchWithEmptyString(self): self.setSearchString('') self.assertEqual(2, len(self.filter)) def testMatchChildDoesNotSelectParentWhenNotInTreeMode(self): self.setSearchString('DEF') self.assertEqual(1, len(self.filter)) def testMatchChildAlsoSelectsParentWhenInTreeMode(self): self.filter.setTreeMode(True) self.setSearchString('DEF') self.assertEqual(2, len(self.filter)) def testMatchChildDoesNotSelectParentWhenChildNotInList(self): self.list.remove(self.child) self.parent.addChild(self.child) # simulate a child that has been filtered self.setSearchString('DEF') self.assertEqual(0, len(self.filter)) def testAddTask(self): self.setSearchString('XYZ') taskXYZ = task.Task(subject='subject with XYZ') self.list.append(taskXYZ) self.assertEqual([taskXYZ], list(self.filter)) def testRemoveTask(self): self.setSearchString('DEF') self.list.remove(self.child) self.failIf(self.filter) def testIncludeSubItems(self): self.setSearchString('ABC', includeSubItems=True) self.assertEqual(2, len(self.filter)) def testInvalidRegex(self): self.setSearchString('*') self.assertEqual(1, len(self.filter)) def testInvalidRegex_WhileMatchCase(self): self.setSearchString('*', matchCase=True) self.assertEqual(1, len(self.filter)) def testSearchDescription(self): self.setSearchString('parent description', searchDescription=True) self.assertEqual(1, len(self.filter)) def testSearchDescription_TurnedOff(self): self.setSearchString('parent description') self.assertEqual(0, len(self.filter)) def testSearchDescriptionWithSubItemsIncluded(self): self.setSearchString('parent description', includeSubItems=True, searchDescription=True) self.assertEqual(2, len(self.filter)) def testSearchDescription_MatchChildDoesNotSelectParentWhenNotInTreeMode(self): self.setSearchString('child description', searchDescription=True) self.assertEqual(1, len(self.filter)) def testSearchDescription_MatchChildAlsoSelectsParentWhenInTreeMode(self): self.filter.setTreeMode(True) self.setSearchString('child description', searchDescription=True) self.assertEqual(2, len(self.filter)) class DeletedFilterTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.list = task.TaskList() self.filter = base.DeletedFilter(self.list) self.task = task.Task() def testAddItem(self): self.list.append(self.task) self.assertEqual(1, len(self.filter)) def testDeleteItem(self): self.list.append(self.task) self.list.remove(self.task) self.assertEqual(0, len(self.filter)) def testMarkDeleted(self): self.list.append(self.task) self.task.markDeleted() self.assertEqual(0, len(self.filter)) def testMarkNotDeleted(self): self.list.append(self.task) self.task.markDeleted() self.task.cleanDirty() self.assertEqual(1, len(self.filter)) class SelectedItemsFilterTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.task = task.Task() self.child = task.Task(parent=self.task) self.list = task.TaskList([self.task]) self.filter = base.SelectedItemsFilter(self.list, selectedItems=[self.task]) def testInitialContent(self): self.assertEqual([self.task], list(self.filter)) def testAddChild(self): self.list.append(self.child) self.failUnless(self.child in self.filter) def testAddChildWithGrandchild(self): grandchild = task.Task(parent=self.child) self.child.addChild(grandchild) self.list.append(self.child) self.failUnless(grandchild in self.filter) def testRemoveSelectedItem(self): self.list.remove(self.task) self.failIf(self.filter) def testSelectedItemsFilterShowsAllTasksWhenSelectedItemsRemoved(self): otherTask = task.Task() self.list.append(otherTask) self.list.remove(self.task) self.assertEqual([otherTask], list(self.filter)) taskcoach-1.4.3/tests/unittests/domainTests/FontTest.py000066400000000000000000000133631265347643000233150ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib.domain.attribute import font class MixFontsTest(test.TestCase): def setUp(self): super(MixFontsTest, self).setUp() self.mixFonts = font.FontMixer.mix self.font = wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL) self.lightFont = wx.Font(self.font.GetPointSize(), self.font.GetFamily(), self.font.GetStyle(), wx.FONTWEIGHT_LIGHT) self.boldFont = wx.Font(self.font.GetPointSize(), self.font.GetFamily(), self.font.GetStyle(), wx.FONTWEIGHT_BOLD) self.italicFont = wx.Font(self.font.GetPointSize(), self.font.GetFamily(), wx.FONTSTYLE_ITALIC, self.font.GetWeight()) self.underlinedFont = wx.Font(self.font.GetPointSize(), self.font.GetFamily(), self.font.GetStyle(), self.font.GetWeight(), underline=True) self.swissFont = wx.Font(self.font.GetPointSize(), wx.FONTFAMILY_SWISS, self.font.GetStyle(), self.font.GetWeight()) self.decorativeFont = wx.Font(self.font.GetPointSize(), wx.FONTFAMILY_DECORATIVE, self.font.GetStyle(), self.font.GetWeight()) self.romanFont = wx.Font(self.font.GetPointSize(), wx.FONTFAMILY_ROMAN, self.font.GetStyle(), self.font.GetWeight()) self.scriptFont = wx.Font(self.font.GetPointSize(), wx.FONTFAMILY_SCRIPT, self.font.GetStyle(), self.font.GetWeight()) self.modernFont = wx.Font(self.font.GetPointSize(), wx.FONTFAMILY_MODERN, self.font.GetStyle(), self.font.GetWeight()) self.teletypeFont = wx.Font(self.font.GetPointSize(), wx.FONTFAMILY_TELETYPE, self.font.GetStyle(), self.font.GetWeight()) def testOneFont(self): self.assertEqual(self.font, self.mixFonts(self.font)) def testFontSize(self): biggerFont = wx.Font(self.font.GetPointSize() + 2, self.font.GetFamily(), self.font.GetStyle(), self.font.GetWeight()) expectedFontSize = (biggerFont.GetPointSize() + self.font.GetPointSize()) / 2 self.assertEqual(expectedFontSize, self.mixFonts(self.font, biggerFont).GetPointSize()) def testFontWeight_NormalAndBold(self): self.assertEqual(wx.FONTWEIGHT_BOLD, self.mixFonts(self.font, self.boldFont).GetWeight()) def testFontWeight_NormalAndLight(self): self.assertEqual(wx.FONTWEIGHT_LIGHT, self.mixFonts(self.font, self.lightFont).GetWeight()) def testFontWeight_LightAndBold(self): self.assertEqual(wx.FONTWEIGHT_NORMAL, self.mixFonts(self.boldFont, self.lightFont).GetWeight()) def testFontWeight_TwoLightAndOneBold(self): self.assertEqual(wx.FONTWEIGHT_LIGHT, self.mixFonts(self.boldFont, self.lightFont, self.lightFont).GetWeight()) def testFontStyle_NormalAndItalic(self): self.assertEqual(wx.FONTSTYLE_ITALIC, self.mixFonts(self.font, self.italicFont).GetStyle()) def testFontUnderline_NormalAndUnderlined(self): self.failUnless(self.mixFonts(self.font, self.underlinedFont).GetUnderlined()) def testFontFamily_DefaultAndSwiss(self): self.assertEqual(wx.FONTFAMILY_SWISS, self.mixFonts(self.font, self.swissFont).GetFamily()) @test.skipOnPlatform('__WXGTK__') def testFontFamily_DefaultAndDecorative(self): self.assertEqual(wx.FONTFAMILY_DECORATIVE, self.mixFonts(self.font, self.decorativeFont).GetFamily()) def testFontFamily_DefaultAndRoman(self): self.assertEqual(wx.FONTFAMILY_ROMAN, self.mixFonts(self.font, self.romanFont, self.romanFont).GetFamily()) @test.skipOnPlatform('__WXGTK__') def testFontFamily_DefaultAndScript(self): self.assertEqual(wx.FONTFAMILY_SCRIPT, self.mixFonts(self.font, self.scriptFont).GetFamily()) @test.skipOnPlatform('__WXGTK__') def testFontFamily_DefaultAndModern(self): self.assertEqual(wx.FONTFAMILY_MODERN, self.mixFonts(self.font, self.modernFont).GetFamily()) def testFontFamily_DefaultAndTeletype(self): self.assertEqual(wx.FONTFAMILY_TELETYPE, self.mixFonts(self.font, self.teletypeFont, self.teletypeFont).GetFamily()) def testFontFamily_RomandAndSwissAndTwoTeletype(self): self.assertEqual(wx.FONTFAMILY_TELETYPE, self.mixFonts(self.romanFont, self.teletypeFont, self.swissFont, self.teletypeFont).GetFamily()) taskcoach-1.4.3/tests/unittests/domainTests/NoteContainerTest.py000066400000000000000000000030121265347643000251450ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.domain import note, category class NoteContainerTest(test.TestCase): def setUp(self): self.container = note.NoteContainer() self.note = note.Note() def testAddNote(self): self.container.append(self.note) self.assertEqual([self.note], self.container) def testAddNoteWithCategory(self): cat = category.Category(subject='Cat') self.note.addCategory(cat) self.container.append(self.note) self.failUnless(self.note in cat.categorizables()) def testRemoveNoteWithCategory(self): cat = category.Category(subject='Cat') self.note.addCategory(cat) self.container.append(self.note) self.container.remove(self.note) self.failIf(self.note in cat.categorizables()) taskcoach-1.4.3/tests/unittests/domainTests/NoteTest.py000066400000000000000000000176651265347643000233250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib import patterns from taskcoachlib.domain import note, date, base class NoteTest(test.TestCase): def setUp(self): self.note = note.Note() self.child = note.Note() self.events = [] def onEvent(self, event): self.events.append(event) def testDefaultSubject(self): self.assertEqual('', self.note.subject()) def testGivenSubject(self): aNote = note.Note(subject='Note') self.assertEqual('Note', aNote.subject()) def testSetSubject(self): self.note.setSubject('Note') self.assertEqual('Note', self.note.subject()) def testSubjectChangeNotification(self): patterns.Publisher().registerObserver(self.onEvent, self.note.subjectChangedEventType()) self.note.setSubject('Note') self.assertEqual(patterns.Event(self.note.subjectChangedEventType(), self.note, 'Note'), self.events[0]) def testDefaultDescription(self): self.assertEqual('', self.note.description()) def testGivenDescription(self): aNote = note.Note(description='Description') self.assertEqual('Description', aNote.description()) def testSetDescription(self): self.note.setDescription('Description') self.assertEqual('Description', self.note.description()) def testDescriptionChangeNotification(self): patterns.Publisher().registerObserver(self.onEvent, self.note.descriptionChangedEventType()) self.note.setDescription('Description') self.assertEqual(patterns.Event(self.note.descriptionChangedEventType(), self.note, 'Description'), self.events[0]) def testAddChild(self): self.note.addChild(self.child) self.assertEqual([self.child], self.note.children()) def testRemoveChild(self): self.note.addChild(self.child) self.note.removeChild(self.child) self.assertEqual([], self.note.children()) def testAddChildNotification(self): patterns.Publisher().registerObserver(self.onEvent, note.Note.addChildEventType()) self.note.addChild(self.child) self.assertEqual(patterns.Event(note.Note.addChildEventType(), self.note, self.child), self.events[0]) def testRemoveChildNotification(self): patterns.Publisher().registerObserver(self.onEvent, note.Note.removeChildEventType()) self.note.addChild(self.child) self.note.removeChild(self.child) self.assertEqual(patterns.Event(note.Note.removeChildEventType(), self.note, self.child), self.events[0]) def testNewChild(self): child = self.note.newChild(subject='child') self.assertEqual('child', child.subject()) # pylint: disable=E1101 def testGetState(self): self.assertEqual(dict(id=self.note.id(), subject='', description='', parent=None, categories=set(), attachments=[], children=self.note.children(), status=self.note.getStatus(), fgColor=None, bgColor=None, font=None, icon='', selectedIcon='', creationDateTime=self.note.creationDateTime(), modificationDateTime=self.note.modificationDateTime(), ordering=self.note.ordering()), self.note.__getstate__()) def testSetState(self): self.note.__setstate__(dict(id='id', subject='new', description='new', parent=None, children=[], status=42, attachments=[], categories=[], fgColor=(1, 1, 1, 1), bgColor=(0, 0, 0, 255), font=wx.SWISS_FONT, icon='icon', selectedIcon='selected', creationDateTime=date.Now(), modificationDateTime=date.Now(), ordering=42L)) self.assertEqual('new', self.note.description()) class NoteOwnerUnderTest(note.NoteOwner, base.Object): pass class NoteOwnerTest(test.TestCase): def setUp(self): self.note = note.Note(subject='Note') self.noteOwner = NoteOwnerUnderTest() self.events = [] def onEvent(self, event): self.events.append(event) # pylint: disable=E1101 def registerObserver(self): # pylint: disable=W0221 patterns.Publisher().registerObserver(self.onEvent, NoteOwnerUnderTest.notesChangedEventType()) def testAddNote(self): self.noteOwner.addNote(self.note) self.assertEqual([self.note], self.noteOwner.notes()) def testAddNotes(self): self.noteOwner.addNotes(self.note) self.assertEqual([self.note], self.noteOwner.notes()) def testAddNoteNotification(self): self.registerObserver() self.noteOwner.addNote(self.note) self.assertEqual(patterns.Event( \ NoteOwnerUnderTest.notesChangedEventType(), self.noteOwner, self.note), self.events[0]) def testRemoveNote(self): self.noteOwner.addNote(self.note) self.noteOwner.removeNote(self.note) self.failIf(self.noteOwner.notes()) def testRemoveNotes(self): self.noteOwner.addNote(self.note) self.noteOwner.removeNotes(self.note) self.failIf(self.noteOwner.notes()) def testRemoveNoteNotification(self): self.noteOwner.addNote(self.note) self.registerObserver() self.noteOwner.removeNote(self.note) self.assertEqual([patterns.Event( \ NoteOwnerUnderTest.notesChangedEventType(), self.noteOwner, self.note)], self.events) def testGetState(self): self.noteOwner.addNote(self.note) self.assertEqual([self.note], self.noteOwner.__getstate__()['notes']) def testSetState(self): self.noteOwner.addNote(self.note) state = self.noteOwner.__getstate__() self.noteOwner.removeNote(self.note) self.noteOwner.__setstate__(state) self.assertEqual([self.note], self.noteOwner.notes()) def testSetState_CausesNotification(self): self.noteOwner.addNote(self.note) state = self.noteOwner.__getstate__() self.noteOwner.removeNote(self.note) self.registerObserver() self.noteOwner.__setstate__(state) self.assertEqual(patterns.Event( \ NoteOwnerUnderTest.notesChangedEventType(), self.noteOwner, self.note), self.events[0]) def testInitializeNotesViaConstructor(self): noteOwner = NoteOwnerUnderTest(notes=[self.note]) self.assertEqual([self.note], noteOwner.notes()) def testCopy(self): self.noteOwner.addNote(self.note) copy = NoteOwnerUnderTest(**self.noteOwner.__getcopystate__()) self.assertNotEqual(copy.notes()[0].id(), self.note.id()) self.assertEqual(copy.notes()[0].subject(), self.note.subject()) def testCopy_NoteOwnerWithNoteWithSubNote(self): child = note.Note(subject='child') self.note.addChild(child) self.noteOwner.addNote(self.note) copy = NoteOwnerUnderTest(**self.noteOwner.__getcopystate__()) childCopy = copy.notes()[0].children()[0] self.assertNotEqual(childCopy.id(), child.id()) self.assertEqual(childCopy.subject(), child.subject()) taskcoach-1.4.3/tests/unittests/domainTests/OwnerTest.py000066400000000000000000000033731265347643000235010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.domain import base from taskcoachlib import patterns class OwnerUnderTest(base.Object): __metaclass__ = base.DomainObjectOwnerMetaclass __ownedType__ = 'Foo' class Foo(object): pass class OwnerTest(test.TestCase): def setUp(self): self.owner = OwnerUnderTest() self.events = [] def onEvent(self, event): self.events.append(event) # pylint: disable=E1101 def testSetObjects_NoNotificationWhenUnchanged(self): patterns.Publisher().registerObserver(self.onEvent, self.owner.foosChangedEventType()) self.owner.setFoos([]) self.failIf(self.events) def testSetObjects_NotificationWhenCanged(self): patterns.Publisher().registerObserver(self.onEvent, self.owner.foosChangedEventType()) self.owner.setFoos([Foo()]) self.assertEqual(1, len(self.events)) def testRemoveNoObjects(self): self.owner.removeFoos() self.failIf(self.owner.foos()) taskcoach-1.4.3/tests/unittests/domainTests/RecurrenceTest.py000066400000000000000000000344511265347643000245050ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.domain import date import test class CommonRecurrenceTestsMixin(object): def testNextDateWithInfiniteDate(self): self.assertEqual(date.DateTime(), self.recur(date.DateTime())) def testCopy(self): copy = self.recur.copy() self.assertEqual(copy, self.recur) def testNotEqualToNone(self): self.assertNotEqual(None, self.recur) def testSetMaxRecurrenceCount(self): self.recur.max = 1 self.recur(date.Now()) self.failIf(self.recur) def testSetMaxRecurrenceCount_GetMultipleDates(self): self.recur.max = 1 self.recur(date.Now(), next=False) self.failUnless(self.recur) def testSetStopDateTime(self): self.recur.stop_datetime = date.Yesterday() self.recur(date.Now()) self.failIf(self.recur) def testCount(self): self.assertEqual(0, self.recur.count) class DailyRecurrenceCompareTestsMixin(object): def testCompareWithNone(self): self.failUnless(self.recur < None) def testCompareWithNoRecurrence(self): self.failUnless(self.recur < date.Recurrence()) def testCompareWithWeeklyRecurrence(self): self.failUnless(self.recur < date.Recurrence('weekly')) def testCompareWithMonthlyRecurrence(self): self.failUnless(self.recur < date.Recurrence('monthly')) def testCompareWithYearlyRecurrence(self): self.failUnless(self.recur < date.Recurrence('yearly')) class WeeklyRecurrenceCompareTestsMixin(object): def testCompareWithNone(self): self.failUnless(self.recur < None) def testCompareWithNoRecurrence(self): self.failUnless(self.recur < date.Recurrence()) def testCompareWithDailyRecurrence(self): self.failUnless(self.recur > date.Recurrence('daily')) def testCompareWithMonthlyRecurrence(self): self.failUnless(self.recur < date.Recurrence('monthly')) def testCompareWithYearlyRecurrence(self): self.failUnless(self.recur < date.Recurrence('yearly')) class MonthlyRecurrenceCompareTestsMixin(object): def testCompareWithNone(self): self.failUnless(self.recur < None) def testCompareWithNoRecurrence(self): self.failUnless(self.recur < date.Recurrence()) def testCompareWithDailyRecurrence(self): self.failUnless(self.recur > date.Recurrence('daily')) def testCompareWithWeeklyRecurrence(self): self.failUnless(self.recur > date.Recurrence('weekly')) def testCompareWithYearlyRecurrence(self): self.failUnless(self.recur < date.Recurrence('yearly')) class YearlyRecurrenceCompareTestsMixin(object): def testCompareWithNone(self): self.failUnless(self.recur < None) def testCompareWithNoRecurrence(self): self.failUnless(self.recur < date.Recurrence()) def testCompareWithDailyRecurrence(self): self.failUnless(self.recur > date.Recurrence('daily')) def testCompareWithWeeklyRecurrence(self): self.failUnless(self.recur > date.Recurrence('weekly')) def testCompareWithMonthlyRecurrence(self): self.failUnless(self.recur > date.Recurrence('monthly')) class NoRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin): def setUp(self): self.recur = date.Recurrence() def testNextDate(self): now = date.Now() self.assertEqual(now, self.recur(now)) def testBool(self): self.failIf(self.recur) def testSetMaxRecurrenceCount_GetMultipleDates(self): pass class DailyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, DailyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('daily') self.now = date.Now() def testNextDate(self): self.assertEqual(self.now + date.ONE_DAY, self.recur(self.now)) def testMultipleNextDates(self): self.assertEqual((self.now + date.ONE_DAY, self.now), self.recur(self.now, self.now - date.ONE_DAY)) def testNextDateTwice(self): now = self.recur(self.now - date.ONE_DAY) self.assertEqual(self.now + date.ONE_DAY, self.recur(now)) def testCompareWithBiDailyRecurrence(self): self.failUnless(self.recur < date.Recurrence('daily', amount=2)) class BiDailyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, DailyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('daily', amount=2) self.now = date.Now() def testEveryOtherDay(self): self.assertEqual(self.now + date.ONE_DAY, self.recur(self.now - date.ONE_DAY)) class TriDailyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, DailyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('daily', amount=3) def testEveryThirdDay(self): self.assertEqual(date.DateTime(2000, 1, 4), self.recur(date.DateTime(2000, 1, 1))) class WeeklyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, WeeklyRecurrenceCompareTestsMixin): def setUp(self): self.January1 = date.DateTime(2000, 1, 1) self.January8 = date.DateTime(2000, 1, 8) self.January15 = date.DateTime(2000, 1, 15) self.recur = date.Recurrence('weekly') def testNextDate(self): self.assertEqual(self.January8, self.recur(self.January1)) def testNextDateTwice(self): January8 = self.recur(self.January1) self.assertEqual(self.January15, self.recur(January8)) def testCompareWithBiWeeklyRecurrence(self): self.failUnless(self.recur < date.Recurrence('weekly', amount=2)) class BiWeeklyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, WeeklyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('weekly', amount=2) def testEveryOtherWeek(self): self.assertEqual(date.DateTime(2000, 1, 15, 12, 0, 0), self.recur(date.DateTime(2000, 1, 1, 12, 0, 0))) class MonthlyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, MonthlyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('monthly') def testFirstDayOf31DayMonth(self): self.assertEqual(date.DateTime(2000, 2, 1), self.recur(date.DateTime(2000, 1, 1))) def testFirstDayOf30DayMonth(self): self.assertEqual(date.DateTime(2000, 5, 1), self.recur(date.DateTime(2000, 4, 1))) def testFirstDayOfDecember(self): self.assertEqual(date.DateTime(2001, 1, 1), self.recur(date.DateTime(2000, 12, 1))) def testLastDayOf31DayMonth(self): self.assertEqual(date.DateTime(2000, 4, 30), self.recur(date.DateTime(2000, 3, 31))) def testLastDayOf30DayMonth(self): self.assertEqual(date.DateTime(2000, 5, 30), self.recur(date.DateTime(2000, 4, 30))) class BiMontlyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, MonthlyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('monthly', amount=2) def testEveryOtherMonth(self): self.assertEqual(date.DateTime(2000, 3, 1), self.recur(date.DateTime(2000, 1, 1))) class MonthlySameWeekDayRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, MonthlyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('monthly', sameWeekday=True) def testFirstSaturdayOfTheMonth(self): self.assertEqual(date.DateTime(2008, 7, 5), self.recur(date.DateTime(2008, 6, 7))) def testSecondSaturdayOfTheMonth(self): self.assertEqual(date.DateTime(2008, 7, 12), self.recur(date.DateTime(2008, 6, 14))) def testThirdSaturdayOfTheMonth(self): self.assertEqual(date.DateTime(2008, 7, 19), self.recur(date.DateTime(2008, 6, 21))) def testFourthSaturdayOfTheMonth(self): self.assertEqual(date.DateTime(2008, 7, 26), self.recur(date.DateTime(2008, 6, 28))) def testFifthSaturdayOfTheMonth_ResultsInFourthSaterdayOfTheNextMonth(self): self.assertEqual(date.DateTime(2008, 6, 28), self.recur(date.DateTime(2008, 5, 31))) class BiMonthlySameWeekDayRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, MonthlyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('monthly', amount=2, sameWeekday=True) def testFourthSaturdayOfTheMonth(self): self.assertEqual(date.DateTime(2008, 8, 23), self.recur(date.DateTime(2008, 6, 28))) class YearlyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, YearlyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('yearly') def testJanuary1(self): self.assertEqual(date.DateTime(2002,1,1), self.recur(date.DateTime(2001,1,1))) def testJanuary1_LeapYear(self): self.assertEqual(date.DateTime(2001,1,1), self.recur(date.DateTime(2000,1,1))) def testMarch1_LeapYear(self): self.assertEqual(date.DateTime(2001,3,1), self.recur(date.DateTime(2000,3,1))) def testMarch1_YearBeforeLeapYear(self): self.assertEqual(date.DateTime(2004,3,1), self.recur(date.DateTime(2003,3,1))) def testFebruary1_YearBeforeLeapYear(self): self.assertEqual(date.DateTime(2004,2,1), self.recur(date.DateTime(2003,2,1))) def testFebruary28(self): self.assertEqual(date.DateTime(2003,2,28), self.recur(date.DateTime(2002,2,28))) def testFebruary28_LeapYear(self): self.assertEqual(date.DateTime(2005,2,28), self.recur(date.DateTime(2004,2,28))) def testFebruary28_YearBeforeLeapYear(self): self.assertEqual(date.DateTime(2004,2,28), self.recur(date.DateTime(2003,2,28))) def testFebruary29(self): self.assertEqual(date.DateTime(2005,2,28), self.recur(date.DateTime(2004,2,29))) class BiYearlyRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, YearlyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('yearly', amount=2) def testEveryOtherYear(self): self.assertEqual(date.DateTime(2004,3,1), self.recur(date.DateTime(2002,3,1))) class YearlySameWeekDayRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin, YearlyRecurrenceCompareTestsMixin): def setUp(self): self.recur = date.Recurrence('yearly', sameWeekday=True) def testFirstTuesdayOfTheYear(self): self.assertEqual(date.DateTime(2009,1,6), self.recur(date.DateTime(2008,1,1))) def testFirstWednesdayOfTheYear(self): self.assertEqual(date.DateTime(2009,1,7), self.recur(date.DateTime(2008,1,2))) def testFirstThursdayOfTheYear(self): self.assertEqual(date.DateTime(2009,1,1), self.recur(date.DateTime(2008,1,3))) def testFirstFridayOfTheYear(self): self.assertEqual(date.DateTime(2009,1,2), self.recur(date.DateTime(2008,1,4))) def testLastWednesdayOfTheYear(self): self.assertEqual(date.DateTime(2009,12,30), self.recur(date.DateTime(2008,12,31))) def testLastTuesdayOfTheYear(self): self.assertEqual(date.DateTime(2009,12,29), self.recur(date.DateTime(2008,12,30))) def testLastMondayOfTheYear(self): self.assertEqual(date.DateTime(2009,12,28), self.recur(date.DateTime(2008,12,29))) def testLastSundayOfTheYear(self): self.assertEqual(date.DateTime(2009,12,27), self.recur(date.DateTime(2008,12,28))) def testLastSaturdayOfTheYear(self): self.assertEqual(date.DateTime(2009,12,26), self.recur(date.DateTime(2008,12,27))) def testLastFridayOfTheYear(self): self.assertEqual(date.DateTime(2009,12,25), self.recur(date.DateTime(2008,12,26))) def testLastThursdayOfTheYear(self): self.assertEqual(date.DateTime(2009,12,24), self.recur(date.DateTime(2008,12,25))) class MaxRecurrenceTest(test.TestCase, CommonRecurrenceTestsMixin): def setUp(self): self.recur = date.Recurrence('daily', maximum=4) def testFirst(self): self.assertEqual(date.DateTime(2000,1,2), self.recur(date.DateTime(2000,1,1), next=True)) def testCountAfterFirst(self): self.recur(date.DateTime(2000,1,1), next=True) self.assertEqual(1, self.recur.count) def testLast(self): self.recur.count = 4 self.assertEqual(None, self.recur(date.DateTime(2000,1,1), next=True)) taskcoach-1.4.3/tests/unittests/domainTests/SchedulerTest.py000066400000000000000000000054751265347643000243320ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, time from taskcoachlib.domain import date class SchedulerTest(test.TestCase): def setUp(self): super(SchedulerTest, self).setUp() self.scheduler = date.Scheduler() self.callCount = 0 def callback(self): self.callCount += 1 @test.skipOnTwistedVersions('12.') def testScheduleAtDateTime(self): futureDate = date.Now() + date.TimeDelta(seconds=1) self.scheduler.schedule(self.callback, futureDate) self.failUnless(self.scheduler.is_scheduled(self.callback)) t0 = time.time() from twisted.internet import reactor while time.time() - t0 < 2.1: reactor.iterate() self.failIf(self.scheduler.is_scheduled(self.callback)) self.assertEqual(self.callCount, 1) @test.skipOnTwistedVersions('12.') def testUnschedule(self): futureDate = date.Now() + date.TimeDelta(seconds=1) self.scheduler.schedule(self.callback, futureDate) self.scheduler.unschedule(self.callback) self.failIf(self.scheduler.is_scheduled(self.callback)) t0 = time.time() from twisted.internet import reactor while time.time() - t0 < 1.2: reactor.iterate() self.assertEqual(self.callCount, 0) @test.skipOnTwistedVersions('12.') def testScheduleAtPastDateTime(self): pastDate = date.Now() - date.TimeDelta(seconds=1) self.scheduler.schedule(self.callback, pastDate) self.failIf(self.scheduler.is_scheduled(self.callback)) from twisted.internet import reactor reactor.iterate() self.failIf(self.scheduler.is_scheduled(self.callback)) self.assertEqual(self.callCount, 1) @test.skipOnTwistedVersions('12.') def testScheduleInterval(self): self.scheduler.schedule_interval(self.callback, seconds=1) try: t0 = time.time() from twisted.internet import reactor while time.time() - t0 < 2.1: reactor.iterate() self.assertEqual(self.callCount, 2) finally: self.scheduler.unschedule(self.callback) taskcoach-1.4.3/tests/unittests/domainTests/SorterTest.py000066400000000000000000000447151265347643000236720ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import config from taskcoachlib.domain import task, effort, date, category class DummyTaskList(task.TaskList): def __init__(self, *args, **kwargs): self.treeMode = 'not set' super(DummyTaskList, self).__init__(*args, **kwargs) def setTreeMode(self, treeMode): self.treeMode = treeMode class TaskSorterTest(test.TestCase): def setUp(self): a = self.a = task.Task('a') b = self.b = task.Task('b') c = self.c = task.Task('c') d = self.d = task.Task('d') self.list = task.TaskList([d, b, c, a]) self.sorter = task.sorter.Sorter(self.list) def testInitiallyEmpty(self): sorter = task.sorter.Sorter(task.TaskList()) self.assertEqual(0, len(sorter)) def testLength(self): self.assertEqual(4, len(self.sorter)) def testGetItem(self): self.assertEqual(self.a, self.sorter[0]) def testOrder(self): self.assertEqual([self.a, self.b, self.c, self.d], list(self.sorter)) def testRemoveItem(self): self.sorter.remove(self.c) self.assertEqual([self.a, self.b, self.d], list(self.sorter)) self.assertEqual(3, len(self.list)) def testAppend(self): e = task.Task('e') self.list.append(e) self.assertEqual(5, len(self.sorter)) self.assertEqual(e, self.sorter[-1]) def testChange(self): self.a.setSubject('z') self.assertEqual([self.b, self.c, self.d, self.a], list(self.sorter)) class TaskSorterSettingsTest(test.TestCase): def setUp(self): self.taskList = task.TaskList() self.sorter = task.sorter.Sorter(self.taskList) self.task1 = task.Task(subject='A') self.task2 = task.Task(subject='B') self.taskList.extend([self.task1, self.task2]) def testSortBySubject(self): self.sorter.sortBy('subject') self.sorter.sortAscending() self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortBySubjectDescending(self): self.sorter.sortBy('subject') self.sorter.sortAscending(False) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortDueDateTime(self): self.task2.setDueDateTime(date.Now() + date.ONE_WEEK) self.sorter.sortBy('dueDateTime') self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortBySubject_TurnOff(self): self.task2.setDueDateTime(date.Now() + date.ONE_WEEK) self.sorter.sortBy('subject') self.sorter.sortBy('dueDateTime') self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByCompletionStatus(self): self.task1.setCompletionDateTime(date.Now()) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByInactiveStatus(self): self.task2.setActualStartDateTime(date.Now()) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByPlannedStartDateTime(self): self.sorter.sortBy('plannedStartDateTime') self.task2.setPlannedStartDateTime(date.Tomorrow()) self.task1.setPlannedStartDateTime(date.Now() + date.ONE_WEEK) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByActualStartDateTime(self): self.sorter.sortBy('actualStartDateTime') self.task1.setActualStartDateTime(date.Yesterday()) self.task2.setActualStartDateTime(date.Now() - date.ONE_WEEK) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByActualStartDateTimeKeepsSortingWhenChangingActualStartDateTime(self): self.sorter.sortBy('actualStartDateTime') self.task1.setActualStartDateTime(date.Yesterday()) self.task2.setActualStartDateTime(date.Now() - date.ONE_WEEK) self.task1.setActualStartDateTime(date.Now() - date.ONE_YEAR) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortByDueDateTimeDescending(self): self.task1.setDueDateTime(date.Now() + date.ONE_YEAR) self.task2.setDueDateTime(date.Now() + date.ONE_WEEK) self.sorter.sortBy('dueDateTime') self.sorter.sortAscending(False) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testByDueDateWithoutFirstSortingByStatus(self): self.task1.setDueDateTime(date.Now() + date.ONE_YEAR) self.task2.setDueDateTime(date.Now() + date.ONE_WEEK) self.sorter.sortBy('dueDateTime') self.sorter.sortByTaskStatusFirst(False) self.task2.setCompletionDateTime(date.Now()) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByReminderAscending(self): self.sorter.sortBy('reminder') self.sorter.sortAscending(True) self.task2.setReminder(date.Now()) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByReminderDescending(self): self.sorter.sortBy('reminder') self.sorter.sortAscending(False) self.task2.setReminder(date.Now()) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortBySubjectWithFirstSortingByStatus(self): self.sorter.sortByTaskStatusFirst(True) self.sorter.sortBy('subject') self.task1.setCompletionDateTime(date.Now()) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortBySubjectWithoutFirstSortingByStatus(self): self.sorter.sortByTaskStatusFirst(False) self.sorter.sortBy('subject') self.sorter.sortAscending() self.task1.setCompletionDateTime(date.Now()) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortCaseSensitive(self): self.sorter.sortByTaskStatusFirst(False) self.sorter.sortCaseSensitive(True) self.sorter.sortBy('subject') self.sorter.sortAscending() task3 = task.Task('a') self.taskList.append(task3) self.assertEqual([self.task1, self.task2, task3], list(self.sorter)) def testSortCaseInsensitive(self): self.sorter.sortByTaskStatusFirst(False) self.sorter.sortCaseSensitive(False) self.sorter.sortBy('subject') self.sorter.sortAscending() task3 = task.Task('a') self.taskList.append(task3) self.assertEqual([self.task1, task3, self.task2], list(self.sorter)) def testSortByTimeLeftAscending(self): self.task1.setDueDateTime(date.Now() + date.ONE_YEAR) self.task2.setDueDateTime(date.Now() + date.ONE_WEEK) self.sorter.sortAscending(True) self.sorter.sortBy('timeLeft') self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByTimeLeftDescending(self): self.task1.setDueDateTime(date.Now() + date.ONE_YEAR) self.task2.setDueDateTime(date.Now() + date.ONE_WEEK) self.sorter.sortBy('timeLeft') self.sorter.sortAscending(False) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortByBudgetAscending(self): self.sorter.sortAscending(True) self.sorter.sortBy('budget') self.task1.setBudget(date.TimeDelta(100)) self.task2.setBudget(date.TimeDelta(10)) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByBudgetDescending(self): self.sorter.sortBy('budget') self.sorter.sortAscending(False) self.task1.setBudget(date.TimeDelta(100)) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortByTimeSpentAscending(self): self.sorter.sortBy('timeSpent') self.task2.addEffort(effort.Effort(self.task2, date.DateTime(2005,1,1), date.DateTime(2006,1,1))) self.task1.addEffort(effort.Effort(self.task1, date.DateTime(2005,1,1), date.DateTime(2007,1,1))) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByTimeSpentDescending(self): self.sorter.sortAscending(False) self.sorter.sortBy('timeSpent') self.task1.addEffort(effort.Effort(self.task1, date.DateTime(2005,1,1,10,0,0), date.DateTime(2005,1,1,11,0,0))) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortByHourlyFeeAscending(self): self.sorter.sortAscending(True) self.sorter.sortBy('hourlyFee') self.task1.setHourlyFee(100) self.task2.setHourlyFee(200) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortByHourlyFeeDescending(self): self.sorter.sortBy('hourlyFee') self.sorter.sortAscending(False) self.task1.setHourlyFee(100) self.task2.setHourlyFee(200) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByPrerequisiteAscending(self): self.sorter.sortAscending(True) self.sorter.sortBy('prerequisites') self.task1.addPrerequisites([self.task2]) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByPrerequisiteDescending(self): self.sorter.sortBy('prerequisites') self.sorter.sortAscending(False) self.task2.addPrerequisites([self.task1]) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByRecursivePrerequisiteAscending(self): self.sorter.sortAscending(True) self.sorter.sortBy('prerequisites') child1 = task.Task(subject='Child 1') self.task1.addChild(child1) self.taskList.append(child1) child1.addPrerequisites([self.task2]) self.task2.addPrerequisites([self.task1]) self.assertEqual([self.task1, self.task2, child1], list(self.sorter)) def testSortByDependencyAscending(self): self.sorter.sortAscending(True) self.sorter.sortBy('dependencies') self.task1.addDependencies([self.task2]) self.task2.addDependencies([self.task1]) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByDependencyDescending(self): self.sorter.sortBy('dependencies') self.sorter.sortAscending(False) self.task1.addDependencies([self.task2]) self.task2.addDependencies([self.task1]) self.assertEqual([self.task1, self.task2], list(self.sorter)) def testSortByRecursiveDependencyAscending(self): self.sorter.sortAscending(True) self.sorter.sortBy('dependencies') child1 = task.Task(subject='Child 1') self.task1.addChild(child1) self.taskList.append(child1) child1.addDependencies([self.task2]) self.task2.addDependencies([self.task1]) self.assertEqual([self.task1, self.task2, child1], list(self.sorter)) def testAlwaysKeepSubscriptionToCompletionDateTime(self): ''' TaskSorter should keep a subscription to task.completionDateTime even when the completion date is not the sort key, because sorting on task status (active, completed, etc.) depends on the completion date. ''' self.sorter.sortBy('subject') self.sorter.sortAscending() self.assertEqual([self.task1, self.task2], list(self.sorter)) self.task1.setCompletionDateTime(date.Now()) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testAlwaysKeepSubscriptionToPlannedStartDateTime(self): ''' TaskSorter should keep a subscription to task.plannedStartDateTime even when the planned start date is not the sort key, because sorting on task status (active, completed, etc.) depends on the planned start date. ''' self.sorter.sortBy('subject') self.sorter.sortAscending() self.assertEqual([self.task1, self.task2], list(self.sorter)) self.task2.setPlannedStartDateTime(date.Now() - date.ONE_SECOND) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testAlwaysKeepSubscriptionToActualStartDateTime(self): ''' TaskSorter should keep a subscription to task.actualStartDateTime even when the actual start date is not the sort key, because sorting on task status (active, completed, etc.) depends on the actual start date. ''' self.sorter.sortBy('subject') self.sorter.sortAscending() self.assertEqual([self.task1, self.task2], list(self.sorter)) self.task2.setActualStartDateTime(date.Now()) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByCategories(self): self.sorter.sortBy('categories') self.task1.addCategory(category.Category('Category 2')) self.task2.addCategory(category.Category('Category 1')) self.assertEqual([self.task2, self.task1], list(self.sorter)) def testSortByInvalidSortKey(self): self.sorter.sortBy('invalidKey') self.assertEqual([self.task1, self.task2], list(self.sorter)) class TaskSorterTreeModeTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = DummyTaskList() self.sorter = task.sorter.Sorter(self.taskList, treeMode=True) self.parent1 = task.Task(subject='parent 1') self.child1 = task.Task(subject='child 1') self.parent1.addChild(self.child1) self.parent2 = task.Task(subject='parent 2') self.child2 = task.Task(subject='child 2') self.parent2.addChild(self.child2) self.taskList.extend([self.parent1, self.parent2]) def testDefaultSortOrder(self): self.assertEqual([self.parent1, self.child1, self.parent2, self.child2], list(self.sorter)) def testSortByDueDateTime(self): self.sorter.sortBy('dueDateTime') self.child2.setDueDateTime(date.Now().endOfDay()) self.failUnless(list(self.sorter).index(self.parent2) < \ list(self.sorter).index(self.parent1)) def testSortByPriority(self): self.sorter.sortBy('priority') self.sorter.sortAscending(False) self.parent1.setPriority(5) self.child2.setPriority(10) self.failUnless(list(self.sorter).index(self.parent2) < \ list(self.sorter).index(self.parent1)) def testSortByCategories_WhenParentsHaveNoCategories(self): self.child1.addCategory(category.Category('Category 2')) self.child2.addCategory(category.Category('Category 1')) self.sorter.sortBy('categories') self.failUnless(list(self.sorter).index(self.parent2) < \ list(self.sorter).index(self.parent1)) def testSortByCategories_WhenParentCategoryEqualsChildCategoryOfAnotherParent(self): category1 = category.Category('Category 1') category2 = category.Category('Category 2') category3 = category.Category('Category 3') self.child1.addCategory(category1) self.parent1.addCategory(category3) self.parent2.addCategory(category2) self.sorter.sortBy('categories') self.failUnless(list(self.sorter).index(self.parent2) < \ list(self.sorter).index(self.parent1)) def testSetSorterToListMode(self): self.sorter.setTreeMode(False) self.assertEqual([self.child1, self.child2, self.parent1, self.parent2], list(self.sorter)) def testTreeModeDelegation_True(self): self.sorter.setTreeMode(True) self.assertEqual(True, self.taskList.treeMode) def testTreeModeDelegation_False(self): self.sorter.setTreeMode(False) self.assertEqual(False, self.taskList.treeMode) def testSortByInvalidSortKey(self): self.sorter.sortBy('invalidKey') self.assertEqual([self.parent1, self.child1, self.parent2, self.child2], list(self.sorter)) class EffortSorterTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() self.effortList = effort.EffortList(self.taskList) self.sorter = effort.EffortSorter(self.effortList) self.task = task.Task('Task') self.oldestEffort = effort.Effort(self.task, date.DateTime(2004,1,1), date.DateTime(2004,1,2)) self.newestEffort = effort.Effort(self.task, date.DateTime(2004,2,1), date.DateTime(2004,2,2)) self.task.addEffort(self.oldestEffort) self.task.addEffort(self.newestEffort) self.taskList.append(self.task) def testDescending(self): self.assertEqual([self.newestEffort, self.oldestEffort], self.sorter) def testResort(self): self.oldestEffort.setStart(date.DateTime(2004,3,1)) self.assertEqual([self.oldestEffort, self.newestEffort], self.sorter) def testCreateWhenEffortListIsFilled(self): sorter = effort.EffortSorter(self.effortList) self.assertEqual([self.newestEffort, self.oldestEffort], sorter) def testAddEffort(self): evenNewerEffort = effort.Effort(self.task, date.DateTime(2005,1,1), date.DateTime(2005,1,2)) self.task.addEffort(evenNewerEffort) self.assertEqual([evenNewerEffort, self.newestEffort, self.oldestEffort], self.sorter) def testTaskEffortComesBeforeChildEffort(self): child = task.Task('Child') child.setParent(self.task) self.task.addChild(child) self.taskList.append(child) childEffort = effort.Effort(child, date.DateTime(2004,1,1), date.DateTime(2008,1,2)) child.addEffort(childEffort) self.assertEqual([self.newestEffort, childEffort, self.oldestEffort], self.sorter) taskcoach-1.4.3/tests/unittests/domainTests/TaskFilterTest.py000066400000000000000000000242061265347643000244550ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import config from taskcoachlib.domain import task, date class ViewFilterTestCase(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.list = task.TaskList() self.filter = task.filter.ViewFilter(self.list, treeMode=self.treeMode) # pylint: disable=E1101 self.task = task.Task(subject='task') self.dueToday = task.Task(subject='due today', dueDateTime=date.Now().endOfDay()) self.dueTomorrow = task.Task(subject='due tomorrow', dueDateTime=date.Tomorrow().endOfDay()) self.dueYesterday = task.Task(subject='due yesterday', dueDateTime=date.Yesterday().endOfDay()) self.child = task.Task(subject='child') def assertFilterShows(self, *tasks): self.assertEqual(len(tasks), len(self.filter)) for eachTask in tasks: self.failUnless(eachTask in self.filter) def assertFilterIsEmpty(self): self.failIf(self.filter) class ViewFilterTestsMixin(object): def testCreate(self): self.assertFilterIsEmpty() def testAddTask(self): self.filter.append(self.task) self.assertFilterShows(self.task) def testFilterCompletedTask(self): self.task.setCompletionDateTime() self.filter.append(self.task) self.assertFilterShows(self.task) self.filter.hideTaskStatus(task.status.completed) self.assertFilterIsEmpty() def testNrOfTasksPerStatusIsAffectedByFiltering(self): self.task.setCompletionDateTime() self.filter.append(self.task) self.filter.hideTaskStatus(task.status.completed) self.assertEqual(0, self.filter.nrOfTasksPerStatus()[task.status.completed]) def testFilterCompletedTask_RootTasks(self): self.task.setCompletionDateTime() self.filter.append(self.task) self.filter.hideTaskStatus(task.status.completed) self.failIf(self.filter.rootItems()) def testMarkTaskCompleted(self): self.filter.hideTaskStatus(task.status.completed) self.list.append(self.task) self.task.setCompletionDateTime() self.assertFilterIsEmpty() def testMarkTaskUncompleted(self): self.filter.hideTaskStatus(task.status.completed) self.task.setCompletionDateTime() self.list.append(self.task) self.task.setCompletionDateTime(date.DateTime()) self.assertFilterShows(self.task) def testChangeCompletionDateOfAlreadyCompletedTask(self): self.filter.hideTaskStatus(task.status.completed) self.task.setCompletionDateTime() self.list.append(self.task) self.task.setCompletionDateTime(date.Tomorrow()) self.assertFilterIsEmpty() def testFilterInactiveTask(self): self.task.setPlannedStartDateTime(date.Tomorrow()) self.list.append(self.task) self.filter.hideTaskStatus(task.status.inactive) self.assertFilterIsEmpty() def testFilterInactiveTask_ChangePlannedStartDateTime(self): self.task.setPlannedStartDateTime(date.Tomorrow()) self.list.append(self.task) self.filter.hideTaskStatus(task.status.inactive) self.task.setPlannedStartDateTime(date.Now() - date.ONE_SECOND) self.assertFilterShows(self.task) def testFilterInactiveTask_WhenPlannedStartDateTimePasses(self): plannedStart = date.Tomorrow() self.task.setPlannedStartDateTime(plannedStart) self.list.append(self.task) self.filter.hideTaskStatus(task.status.inactive) oldNow = date.Now now = plannedStart + date.ONE_SECOND date.Now = lambda: now self.task.onTimeToStart() self.assertFilterShows(self.task) date.Now = oldNow def testMarkPrerequisiteCompletedWhileFilteringInactiveTasks(self): self.task.addPrerequisites([self.dueToday]) self.dueToday.addDependencies([self.task]) self.task.setPlannedStartDateTime(date.Now() - date.ONE_SECOND) self.dueToday.setPlannedStartDateTime(date.Now()) self.filter.extend([self.dueToday, self.task]) self.filter.hideTaskStatus(task.status.inactive) self.filter.hideTaskStatus(task.status.completed) self.assertFilterShows(self.dueToday) self.dueToday.setCompletionDateTime() self.assertFilterShows(self.task) def testAddPrerequisiteToActiveTaskWhileFilteringInactiveTasksShouldHideTask(self): for eachTask in (self.task, self.dueToday): eachTask.setPlannedStartDateTime(date.Now()) self.filter.extend([self.dueToday, self.task]) self.filter.hideTaskStatus(task.status.inactive) self.task.addPrerequisites([self.dueToday]) self.assertFilterShows(self.dueToday) def testFilterLateTask(self): self.task.setPlannedStartDateTime(date.Yesterday()) self.list.append(self.task) self.filter.hideTaskStatus(task.status.late) self.assertFilterIsEmpty() def testFilterDueSoonTask(self): self.task.setDueDateTime(date.Now() + date.ONE_HOUR) self.list.append(self.task) self.filter.hideTaskStatus(task.status.duesoon) self.assertFilterIsEmpty() def testFilterOverDueTask(self): self.task.setDueDateTime(date.Now() - date.ONE_HOUR) self.list.append(self.task) self.filter.hideTaskStatus(task.status.overdue) self.assertFilterIsEmpty() def testFilterOverDueTaskWithActiveChild(self): self.child.setActualStartDateTime(date.Now()) self.task.setDueDateTime(date.Now() - date.ONE_HOUR) self.task.addChild(self.child) self.list.append(self.task) self.filter.hideTaskStatus(task.status.overdue) if self.treeMode: self.assertFilterShows(self.task, self.child) else: self.assertFilterShows(self.child) class ViewFilterInListModeTest(ViewFilterTestsMixin, ViewFilterTestCase): treeMode = False class ViewFilterInTreeModeTest(ViewFilterTestsMixin, ViewFilterTestCase): treeMode = True def testFilterCompletedTasks(self): self.filter.hideTaskStatus(task.status.completed) child = task.Task() self.task.addChild(child) child.setParent(self.task) self.list.append(self.task) self.task.setCompletionDateTime() self.assertFilterIsEmpty() class HideCompositeTasksTestCase(ViewFilterTestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.list = task.TaskList() self.filter = task.filter.ViewFilter(self.list, treeMode=self.treeMode) # pylint: disable=E1101 self.task = task.Task(subject='task') self.child = task.Task(subject='child') self.task.addChild(self.child) self.filter.append(self.task) def _addTwoGrandChildren(self): # pylint: disable=W0201 self.grandChild1 = task.Task(subject='grandchild 1') self.grandChild2 = task.Task(subject='grandchild 2') self.child.addChild(self.grandChild1) self.child.addChild(self.grandChild2) self.list.extend([self.grandChild1, self.grandChild2]) class HideCompositeTasksTestsMixin(object): def testTurnOn(self): self.filter.hideCompositeTasks() expectedTasks = (self.task, self.child) if self.filter.treeMode() else (self.child,) self.assertFilterShows(*expectedTasks) # pylint: disable=W0142 def testTurnOff(self): self.filter.hideCompositeTasks() self.filter.hideCompositeTasks(False) self.assertFilterShows(self.task, self.child) def testAddChild(self): self.filter.hideCompositeTasks() grandChild = task.Task(subject='grandchild') self.list.append(grandChild) self.child.addChild(grandChild) expectedTasks = (self.task, self.child, grandChild) if self.filter.treeMode() else (grandChild,) self.assertFilterShows(*expectedTasks) # pylint: disable=W0142 def testRemoveChild(self): self.filter.hideCompositeTasks() self.list.remove(self.child) self.assertFilterShows(self.task) def testAddTwoChildren(self): self.filter.hideCompositeTasks() self._addTwoGrandChildren() expectedTasks = (self.task, self.child, self.grandChild1, self.grandChild2) if self.filter.treeMode() else \ (self.grandChild1, self.grandChild2) self.assertFilterShows(*expectedTasks) # pylint: disable=W0142 def testRemoveTwoChildren(self): self._addTwoGrandChildren() self.filter.hideCompositeTasks() self.list.removeItems([self.grandChild1, self.grandChild2]) expectedTasks = (self.task, self.child) if self.filter.treeMode() else (self.child,) self.assertFilterShows(*expectedTasks) # pylint: disable=W0142 class HideCompositeTasksInListModeTest(HideCompositeTasksTestsMixin, HideCompositeTasksTestCase): treeMode = False class HideCompositeTasksInTreeModeTest(HideCompositeTasksTestsMixin, HideCompositeTasksTestCase): treeMode = True taskcoach-1.4.3/tests/unittests/domainTests/TaskListTest.py000066400000000000000000000100061265347643000241340ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import config from taskcoachlib.domain import task, effort, date class TaskListTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() year = date.Now().year self.task1 = task.Task(dueDateTime=date.DateTime(year+1,1,1)) self.task2 = task.Task(dueDateTime=date.DateTime(year+2,1,1)) self.task3 = task.Task() def nrStatus(self, status): return self.taskList.nrOfTasksPerStatus()[status] def testNrOfTasksPerStatusOfAnEmptyTaskList(self): counts = self.taskList.nrOfTasksPerStatus() for status in task.Task.possibleStatuses(): self.assertEqual(0, counts[status]) def testNrCompleted(self): self.assertEqual(0, self.nrStatus(task.status.completed)) self.taskList.append(self.task1) self.assertEqual(0, self.nrStatus(task.status.completed)) self.task1.setCompletionDateTime() self.assertEqual(1, self.nrStatus(task.status.completed)) def testNrOverdue(self): self.assertEqual(0, self.nrStatus(task.status.overdue)) self.taskList.append(self.task1) self.assertEqual(0, self.nrStatus(task.status.overdue)) self.task1.setDueDateTime(date.DateTime(1990, 1, 1)) self.assertEqual(1, self.nrStatus(task.status.overdue)) def testNrDueSoon(self): self.assertEqual(0, self.nrStatus(task.status.duesoon)) self.taskList.append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.assertEqual(1, self.nrStatus(task.status.duesoon)) def testNrBeingTracked(self): self.assertEqual(0, self.taskList.nrBeingTracked()) activeTask = task.Task() activeTask.addEffort(effort.Effort(activeTask)) self.taskList.append(activeTask) self.assertEqual(1, self.taskList.nrBeingTracked()) def testOriginalLength(self): self.assertEqual(0, self.taskList.originalLength()) def testMinPriority_EmptyTaskList(self): self.assertEqual(0, self.taskList.minPriority()) def testMinPriority_OneTaskWithDefaultPriority(self): self.taskList.append(self.task1) self.assertEqual(self.task1.priority(), self.taskList.minPriority()) def testMinPriority_OneTaskWithNonDefaultPriority(self): self.taskList.append(task.Task(priority=-5)) self.assertEqual(-5, self.taskList.minPriority()) def testMinPriority_TwoTasks(self): self.taskList.extend([task.Task(priority=3), task.Task(priority=5)]) self.assertEqual(3, self.taskList.minPriority()) def testMaxPriority_EmptyTaskList(self): self.assertEqual(0, self.taskList.maxPriority()) def testMaxPriority_OneTaskWithDefaultPriority(self): self.taskList.append(self.task1) self.assertEqual(self.task1.priority(), self.taskList.maxPriority()) def testMaxPriority_OneTaskWithNonDefaultPriority(self): self.taskList.append(task.Task(priority=-5)) self.assertEqual(-5, self.taskList.maxPriority()) def testMaxPriority_TwoTasks(self): self.taskList.extend([task.Task(priority=3), task.Task(priority=5)]) self.assertEqual(5, self.taskList.maxPriority()) taskcoach-1.4.3/tests/unittests/domainTests/TaskRecurrenceTest.py000066400000000000000000000335221265347643000253260ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import config from taskcoachlib.domain import task, date class RecurringTaskTestCase(test.TestCase): def setUp(self): self.settings = task.Task.settings = config.Settings(load=False) self.now = date.Now() self.yesterday = self.now - date.ONE_DAY self.tomorrow = self.now + date.ONE_DAY kwargs_list = self.taskCreationKeywordArguments() self.tasks = [task.Task(**kwargs) for kwargs in kwargs_list] # pylint: disable=W0142 self.task = self.tasks[0] for index, eachTask in enumerate(self.tasks): taskLabel = 'task%d'%(index+1) setattr(self, taskLabel, eachTask) def taskCreationKeywordArguments(self): return [dict(recurrence=self.createRecurrence())] def createRecurrence(self): raise NotImplementedError # pragma: no cover class RecurringTaskWithChildTestCase(RecurringTaskTestCase): def taskCreationKeywordArguments(self): kwargs_list = super(RecurringTaskWithChildTestCase, self).taskCreationKeywordArguments() kwargs_list[0]['children'] = [task.Task(subject='child')] return kwargs_list def createRecurrence(self): raise NotImplementedError # pragma: no cover class RecurringTaskWithRecurringChildTestCase(RecurringTaskTestCase): def taskCreationKeywordArguments(self): kwargs_list = super(RecurringTaskWithRecurringChildTestCase, self).taskCreationKeywordArguments() kwargs_list[0]['children'] = [task.Task(subject='child', recurrence=self.createRecurrence())] return kwargs_list def createRecurrence(self): raise NotImplementedError # pragma: no cover class CommonRecurrenceTestsMixin(object): def testSetRecurrenceViaConstructor(self): self.assertEqual(self.createRecurrence(), self.task.recurrence()) def testMarkCompletedSetsNewPlannedStartDateIfItWasSetPreviously(self): plannedStartDateTime = self.task.plannedStartDateTime() self.task.setCompletionDateTime() self.assertEqual(self.createRecurrence()(plannedStartDateTime), self.task.plannedStartDateTime()) def testNoActualStartDateAfterRecurrence(self): self.task.setCompletionDateTime() self.assertEqual(date.DateTime(), self.task.actualStartDateTime()) def testMarkCompletedResetsActualStartDateIfItWasSetPreviously(self): self.task.setActualStartDateTime(date.Now()) self.task.setCompletionDateTime() self.assertEqual(date.DateTime(), self.task.actualStartDateTime()) def testMarkCompletedSetsNewDueDateIfItWasSetPreviously(self): self.task.setDueDateTime(self.tomorrow) self.task.setCompletionDateTime(self.tomorrow) self.assertEqual(self.createRecurrence()(self.tomorrow), self.task.dueDateTime()) def testMarkCompletedDoesNotSetPlannedStartDateIfItWasNotSetPreviously(self): self.task.setPlannedStartDateTime(date.DateTime()) self.task.setCompletionDateTime() self.assertEqual(date.DateTime(), self.task.plannedStartDateTime()) def testMarkCompletedDoesNotSetDueDateIfItWasNotSetPreviously(self): self.task.setCompletionDateTime() self.assertEqual(date.DateTime(), self.task.dueDateTime()) def testRecurringTaskIsNotCompletedWhenMarkedCompleted(self): self.task.setCompletionDateTime() self.failIf(self.task.completed()) def testMarkCompletedDoesNotSetReminderIfItWasNotSetPreviously(self): self.task.setCompletionDateTime() self.assertEqual(None, self.task.reminder()) def testMarkCompletedSetsNewReminderIfItWasSetPreviously(self): reminder = self.now + date.TimeDelta(seconds=10) self.task.setReminder(reminder) self.task.setCompletionDateTime() self.assertEqual(self.createRecurrence()(reminder), self.task.reminder()) def testMarkCompletedIgnoresSnoozeWhenSettingNewReminder(self): reminder = self.now + date.TimeDelta(seconds=10) self.task.setReminder(reminder) self.task.snoozeReminder(date.TimeDelta(seconds=30), now=lambda: self.now) self.task.setCompletionDateTime() self.assertEqual(self.createRecurrence()(reminder), self.task.reminder()) def testMarkCompletedResetPercentageComplete(self): self.task.setPercentageComplete(50) self.task.setCompletionDateTime() self.assertEqual(0, self.task.percentageComplete()) def testCopyRecurrence(self): self.assertEqual(self.task.copy().recurrence(), self.task.recurrence()) class TaskWithWeeklyRecurrenceFixture(RecurringTaskTestCase, CommonRecurrenceTestsMixin): def createRecurrence(self): return date.Recurrence('weekly') class TaskWithDailyRecurrenceFixture(RecurringTaskTestCase, CommonRecurrenceTestsMixin): def createRecurrence(self): return date.Recurrence('daily') class TaskWithMonthlyRecurrenceFixture(RecurringTaskTestCase, CommonRecurrenceTestsMixin): def createRecurrence(self): return date.Recurrence('monthly') class TaskWithYearlyRecurrenceFixture(RecurringTaskTestCase, CommonRecurrenceTestsMixin): def createRecurrence(self): return date.Recurrence('yearly') class TaskWithDailyRecurrenceThatHasRecurredFixture( \ RecurringTaskTestCase, CommonRecurrenceTestsMixin): initialRecurrenceCount = 3 def createRecurrence(self): return date.Recurrence('daily', count=self.initialRecurrenceCount) class TaskWithDailyRecurrenceThatHasMaxRecurrenceCountFixture( \ RecurringTaskTestCase, CommonRecurrenceTestsMixin): maxRecurrenceCount = 2 def createRecurrence(self): return date.Recurrence('daily', maximum=self.maxRecurrenceCount) def testRecurLessThanMaxRecurrenceCount(self): for _ in range(self.maxRecurrenceCount): self.task.setCompletionDateTime() self.failIf(self.task.completed()) def testRecurExactlyMaxRecurrenceCount(self): for _ in range(self.maxRecurrenceCount + 1): self.task.setCompletionDateTime() self.failUnless(self.task.completed()) class TaskWithDailyRecurrenceBasedOnCompletionFixture(RecurringTaskTestCase, CommonRecurrenceTestsMixin): def createRecurrence(self): return date.Recurrence('daily', recurBasedOnCompletion=True) def testNoDates(self): self.task.setCompletionDateTime() self.assertEqual(date.DateTime(), self.task.plannedStartDateTime()) self.assertEqual(date.DateTime(), self.task.dueDateTime()) self.assertEqual(date.DateTime(), self.task.completionDateTime()) def testPlannedStartDateDayBeforeYesterday(self): self.task.setPlannedStartDateTime(self.now - date.TimeDelta(hours=48)) self.task.setCompletionDateTime(self.now) self.assertEqual(self.now + date.ONE_DAY, self.task.plannedStartDateTime()) def testPlannedStartDateToday(self): self.task.setPlannedStartDateTime(self.now.startOfDay()) self.task.setCompletionDateTime(self.now) self.assertEqual(self.tomorrow.startOfDay(), self.task.plannedStartDateTime()) def testPlannedStartDateTomorrow(self): self.task.setPlannedStartDateTime(self.tomorrow.startOfDay()) self.task.setCompletionDateTime(self.now) self.assertEqual(self.tomorrow.startOfDay(), self.task.plannedStartDateTime()) def testDueDateToday(self): self.task.setDueDateTime(self.now.endOfDay()) self.task.setCompletionDateTime(self.now) self.assertEqual(self.tomorrow.endOfDay(), self.task.dueDateTime()) def testDueDateYesterday(self): self.task.setDueDateTime(self.yesterday) self.task.setCompletionDateTime(self.now) self.assertEqual(self.tomorrow, self.task.dueDateTime()) def testDueDateTomorrow(self): self.task.setDueDateTime(self.tomorrow) self.task.setCompletionDateTime(self.now) self.assertEqual(self.tomorrow, self.task.dueDateTime()) def testPlannedStartAndDueToday(self): self.task.setPlannedStartDateTime(self.now.startOfDay()) self.task.setDueDateTime(self.now.endOfDay()) self.task.setCompletionDateTime(self.now) self.assertEqual(self.tomorrow.startOfDay(), self.task.plannedStartDateTime()) self.assertEqual(self.tomorrow.endOfDay(), self.task.dueDateTime()) def testPlannedStartAndDueDateInThePast(self): self.task.setPlannedStartDateTime(self.now - date.TimeDelta(hours=48)) self.task.setDueDateTime(self.yesterday) self.task.setCompletionDateTime(self.now) self.assertEqual(self.now, self.task.plannedStartDateTime()) self.assertEqual(self.tomorrow, self.task.dueDateTime()) def testPlannedStartInThePastAndDueInTheFuture(self): self.task.setPlannedStartDateTime(self.yesterday) self.task.setDueDateTime(self.tomorrow) self.task.setCompletionDateTime(self.now) self.assertEqual(self.yesterday, self.task.plannedStartDateTime()) self.assertEqual(self.tomorrow, self.task.dueDateTime()) def testPlannedStartAndDueInTheFuture(self): self.task.setPlannedStartDateTime(self.tomorrow) self.task.setDueDateTime(self.tomorrow + date.ONE_DAY) self.task.setCompletionDateTime(self.now) self.assertEqual(self.now, self.task.plannedStartDateTime()) self.assertEqual(self.tomorrow, self.task.dueDateTime()) class CommonRecurrenceTestsMixinWithChild(CommonRecurrenceTestsMixin): # pylint: disable=E1101 def testChildPlannedStartDateRecursToo(self): self.task.setCompletionDateTime() self.assertAlmostEqual(self.task.plannedStartDateTime().toordinal(), self.task.children()[0].plannedStartDateTime().toordinal()) def testChildDueDateRecursToo_ParentAndChildHaveNoDueDate(self): self.task.setCompletionDateTime() self.assertAlmostEqual(self.task.dueDateTime().toordinal(), self.task.children()[0].dueDateTime().toordinal()) def testChildDueDateRecursToo_ParentAndChildHaveSameDueDate(self): child = self.task.children()[0] self.task.setDueDateTime(self.tomorrow) child.setDueDateTime(self.tomorrow) self.task.setCompletionDateTime() self.assertAlmostEqual(self.task.dueDateTime().toordinal(), self.task.children()[0].dueDateTime().toordinal()) def testChildDueDateRecursToo_ChildHasEarlierDueDate(self): child = self.task.children()[0] self.task.setDueDateTime(self.tomorrow) child.setDueDateTime(self.now) self.task.setCompletionDateTime() self.assertEqual(self.createRecurrence()(self.now), self.task.children()[0].dueDateTime()) class CommonRecurrenceTestsMixinWithRecurringChild(CommonRecurrenceTestsMixin): # pylint: disable=E1101 def testChildDoesNotRecurWhenParentDoes(self): origPlannedStartDateTime = self.task.children()[0].plannedStartDateTime() self.task.setCompletionDateTime() self.assertEqual(origPlannedStartDateTime, self.task.children()[0].plannedStartDateTime()) def testDownwardsRecursiveRecurrence(self): expectedRecurrence = min([self.task.recurrence(), self.task.children()[0].recurrence()]) self.assertEqual(expectedRecurrence, self.task.recurrence(recursive=True, upwards=False)) class TaskWithWeeklyRecurrenceWithChildFixture(RecurringTaskWithChildTestCase, CommonRecurrenceTestsMixinWithChild): def createRecurrence(self): return date.Recurrence('weekly') class TaskWithDailyRecurrenceWithChildFixture(RecurringTaskWithChildTestCase, CommonRecurrenceTestsMixinWithChild): def createRecurrence(self): return date.Recurrence('daily') class TaskWithWeeklyRecurrenceWithRecurringChildFixture(\ RecurringTaskWithRecurringChildTestCase, CommonRecurrenceTestsMixinWithRecurringChild): def createRecurrence(self): return date.Recurrence('weekly') class TaskWithDailyRecurrenceWithRecurringChildFixture(\ RecurringTaskWithRecurringChildTestCase, CommonRecurrenceTestsMixinWithRecurringChild): def createRecurrence(self): return date.Recurrence('daily') taskcoach-1.4.3/tests/unittests/domainTests/TaskRelationsTest.py000077500000000000000000000300141265347643000251650ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import config from taskcoachlib.domain import task, date, effort import test class CommonTaskRelationshipManagerTestsMixin(object): def setUp(self): task.Task.settings = settings = config.Settings(load=False) now = self.now = date.Now() self.yesterday = now - date.ONE_DAY self.tomorrow = now + date.ONE_DAY self.parent = task.Task('parent') self.child = task.Task('child') self.parent.addChild(self.child) self.child.setParent(self.parent) self.child2 = task.Task('child2', plannedStartDateTime=now) self.grandchild = task.Task('grandchild', plannedStartDateTime=now) settings.set('behavior', 'markparentcompletedwhenallchildrencompleted', str(self.markParentCompletedWhenAllChildrenCompleted)) self.taskList = task.TaskList([self.parent, self.child2, self.grandchild]) # completion date def testMarkingOneOfTwoChildsCompletedNeverResultsInACompletedParent(self): self.parent.addChild(self.child2) self.child.setCompletionDateTime() self.failIf(self.parent.completed()) def testMarkParentWithOneChildCompleted(self): self.parent.setCompletionDateTime() self.failUnless(self.child.completed()) def testMarkParentWithTwoChildrenCompleted(self): self.parent.addChild(self.child2) self.parent.setCompletionDateTime() self.failUnless(self.child.completed()) self.failUnless(self.child2.completed()) def testMarkParentNotCompleted(self): self.parent.setCompletionDateTime() self.failUnless(self.child.completed()) self.parent.setCompletionDateTime(date.DateTime()) self.failUnless(self.child.completed()) def testMarkParentCompletedDoesNotChangeChildCompletionDate(self): self.parent.addChild(self.child2) self.child.setCompletionDateTime(self.yesterday) self.parent.setCompletionDateTime() self.assertEqual(self.yesterday, self.child.completionDateTime()) def testMarkChildNotCompleted(self): self.child.setCompletionDateTime() self.child.setCompletionDateTime(date.DateTime()) self.failIf(self.parent.completed()) def testAddCompletedChild(self): self.child2.setCompletionDateTime() self.parent.addChild(self.child2) self.failIf(self.parent.completed()) def testAddUncompletedChild(self): self.child.setCompletionDateTime() self.parent.addChild(self.child2) self.failIf(self.parent.completed()) def testAddUncompletedGrandchild(self): self.parent.setCompletionDateTime() self.child.addChild(self.grandchild) self.failIf(self.parent.completed()) def testMarkParentCompletedYesterday(self): self.parent.setCompletionDateTime(self.yesterday) self.assertEqual(self.yesterday, self.child.completionDateTime()) def testMarkTaskCompletedStopsEffortTracking(self): self.child.addEffort(effort.Effort(self.child)) self.child.setCompletionDateTime() self.failIf(self.child.isBeingTracked()) # recurrence def testMarkParentCompletedStopsChildRecurrence(self): self.child.setRecurrence(date.Recurrence('daily')) self.parent.setCompletionDateTime() self.failIf(self.child.recurrence()) def testRecurringChildIsCompletedWhenParentIsCompleted(self): self.child.setRecurrence(date.Recurrence('daily')) self.parent.setCompletionDateTime() self.failUnless(self.child.completed()) def shouldMarkCompletedWhenAllChildrenCompleted(self, parent): return parent.shouldMarkCompletedWhenAllChildrenCompleted() == True or \ (parent.shouldMarkCompletedWhenAllChildrenCompleted() == None and \ self.markParentCompletedWhenAllChildrenCompleted == True) def testMarkLastChildCompletedMakesParentRecur(self): self.parent.setPlannedStartDateTime(self.now) self.parent.setRecurrence(date.Recurrence('weekly')) self.child.setCompletionDateTime(self.now) expectedPlannedStartDateTime = self.now if self.shouldMarkCompletedWhenAllChildrenCompleted(self.parent): expectedPlannedStartDateTime += date.TimeDelta(days=7) self.assertAlmostEqual(expectedPlannedStartDateTime.toordinal(), self.parent.plannedStartDateTime().toordinal()) def testMarkLastChildCompletedMakesParentRecur_AndThusChildToo(self): self.child.setPlannedStartDateTime(self.now) self.parent.setRecurrence(date.Recurrence('weekly')) self.parent.setPlannedStartDateTime(self.now) self.child.setCompletionDateTime(self.now) expectedPlannedStartDateTime = self.now if self.shouldMarkCompletedWhenAllChildrenCompleted(self.parent): expectedPlannedStartDateTime += date.TimeDelta(days=7) self.assertAlmostEqual(expectedPlannedStartDateTime.toordinal(), self.child.plannedStartDateTime().toordinal()) def testMarkLastChildCompletedMakesParentRecur_AndThusChildIsNotCompleted(self): self.parent.setRecurrence(date.Recurrence('weekly')) self.child.setCompletionDateTime() if self.shouldMarkCompletedWhenAllChildrenCompleted(self.parent): self.failIf(self.child.completed()) else: self.failUnless(self.child.completed()) def testMarkLastGrandChildCompletedMakesParentRecur(self): self.parent.setRecurrence(date.Recurrence('weekly')) self.parent.setPlannedStartDateTime(self.now) self.child.addChild(self.grandchild) self.grandchild.setParent(self.child) self.grandchild.setCompletionDateTime(self.now) expectedPlannedStartDateTime = self.now if self.shouldMarkCompletedWhenAllChildrenCompleted(self.parent): expectedPlannedStartDateTime += date.TimeDelta(days=7) self.assertAlmostEqual(expectedPlannedStartDateTime.toordinal(), self.parent.plannedStartDateTime().toordinal()) def testMarkLastGrandChildCompletedMakesParentRecur_AndThusGrandChildToo(self): self.parent.setRecurrence(date.Recurrence('weekly')) self.child.addChild(self.grandchild) self.grandchild.setParent(self.child) self.grandchild.setCompletionDateTime(self.now) expectedPlannedStartDateTime = self.now if self.shouldMarkCompletedWhenAllChildrenCompleted(self.parent): expectedPlannedStartDateTime += date.TimeDelta(days=7) self.assertAlmostEqual(expectedPlannedStartDateTime.toordinal(), self.grandchild.plannedStartDateTime().toordinal()) def testMarkLastChildCompletedMakesParentRecur_AndThusGrandChildIsNotCompleted(self): self.parent.setRecurrence(date.Recurrence('weekly')) self.child.addChild(self.grandchild) self.grandchild.setParent(self.child) self.grandchild.setCompletionDateTime() if self.shouldMarkCompletedWhenAllChildrenCompleted(self.parent): self.failIf(self.grandchild.completed()) else: self.failUnless(self.grandchild.completed()) class MarkParentTaskCompletedTestsMixin(object): ''' Tests where we expect to parent task to be marked completed, based on the fact that all children are completed. This happens when the global setting is on and task is indifferent or the task specific setting is on. ''' def testMarkOnlyChildCompleted(self): self.child.setCompletionDateTime() self.failUnless(self.parent.completed()) def testMarkOnlyGrandchildCompleted(self): self.child.addChild(self.grandchild) self.grandchild.setCompletionDateTime() self.failUnless(self.parent.completed()) def testAddCompletedChildAsOnlyChild(self): self.grandchild.setCompletionDateTime() self.child.addChild(self.grandchild) self.failUnless(self.child.completed()) def testMarkChildCompletedYesterday(self): self.child.setCompletionDateTime(self.yesterday) self.assertEqual(self.yesterday, self.parent.completionDateTime()) def testRemoveLastUncompletedChild(self): self.parent.addChild(self.child2) self.child.setCompletionDateTime() self.parent.removeChild(self.child2) self.failUnless(self.parent.completed()) class DontMarkParentTaskCompletedTestsMixin(object): ''' Tests where we expect the parent task not to be marked completed when all children are completed. This should be the case when the global setting is off and task is indifferent or when the task specific setting is off. ''' def testMarkOnlyChildCompletedDoesNotMarkParentCompleted(self): self.child.setCompletionDateTime() self.failIf(self.parent.completed()) def testMarkOnlyGrandchildCompletedDoesNotMarkParentCompleted(self): self.child.addChild(self.grandchild) self.grandchild.setCompletionDateTime() self.failIf(self.parent.completed()) def testAddCompletedChildAsOnlyChildDoesNotMarkParentCompleted(self): self.grandchild.setCompletionDateTime() self.child.addChild(self.grandchild) self.failIf(self.child.completed()) def testMarkChildCompletedYesterdayDoesNotAffectParentCompletionDate(self): self.child.setCompletionDateTime(self.yesterday) self.assertEqual(date.DateTime(), self.parent.completionDateTime()) def testRemoveLastUncompletedChildDoesNotMarkParentCompleted(self): self.parent.addChild(self.child2) self.child.setCompletionDateTime() self.parent.removeChild(self.child2) self.failIf(self.parent.completed()) class MarkParentCompletedAutomaticallyIsOn(CommonTaskRelationshipManagerTestsMixin, MarkParentTaskCompletedTestsMixin, test.TestCase): markParentCompletedWhenAllChildrenCompleted = True class MarkParentCompletedAutomaticallyIsOff(CommonTaskRelationshipManagerTestsMixin, DontMarkParentTaskCompletedTestsMixin, test.TestCase): markParentCompletedWhenAllChildrenCompleted = False class MarkParentCompletedAutomaticallyIsOnButTaskSettingIsOff( \ CommonTaskRelationshipManagerTestsMixin, test.TestCase, DontMarkParentTaskCompletedTestsMixin): markParentCompletedWhenAllChildrenCompleted = True def setUp(self): super(MarkParentCompletedAutomaticallyIsOnButTaskSettingIsOff, self).setUp() for eachTask in self.parent, self.child: eachTask.setShouldMarkCompletedWhenAllChildrenCompleted(False) class MarkParentCompletedAutomaticallyIsOffButTaskSettingIsOn( \ CommonTaskRelationshipManagerTestsMixin, test.TestCase, MarkParentTaskCompletedTestsMixin): markParentCompletedWhenAllChildrenCompleted = False def setUp(self): super(MarkParentCompletedAutomaticallyIsOffButTaskSettingIsOn, self).setUp() for eachTask in self.parent, self.child: eachTask.setShouldMarkCompletedWhenAllChildrenCompleted(True) taskcoach-1.4.3/tests/unittests/domainTests/TaskStatusTest.py000066400000000000000000000331411265347643000245110ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.domain import task, date from taskcoachlib import config class TaskStatusTest(test.TestCase): def setUp(self): self.settings = task.Task.settings = config.Settings(load=False) self.now = date.Now() self.yesterday = self.now - date.ONE_DAY self.nearFuture = self.now + date.ONE_DAY - date.ONE_HOUR self.dates = (self.yesterday, self.nearFuture) self.farFuture = self.now + date.ONE_DAY + date.ONE_DAY def assertTaskStatus(self, status, **taskKwArgs): self.assertEqual(status, task.Task(**taskKwArgs).status()) # No dates/times def testDefaultTaskIsInactive(self): self.assertTaskStatus(task.status.inactive) # One date/time def testTaskWithCompletionInThePastIsCompleted(self): self.assertTaskStatus(task.status.completed, completionDateTime=self.yesterday) def testTaskWithCompletionInTheFutureIsCompleted(self): # Maybe keep the task inactive until the completion date passes? # That would be more consistent with the other date/times self.assertTaskStatus(task.status.completed, completionDateTime=self.nearFuture) def testTaskWithPlannedStartInThePastIsLate(self): self.assertTaskStatus(task.status.late, plannedStartDateTime=self.yesterday) def testTaskWithPlannedStartInTheFutureIsInactive(self): self.assertTaskStatus(task.status.inactive, plannedStartDateTime=self.nearFuture) def testTaskWithActualStartInThePastIsActive(self): self.assertTaskStatus(task.status.active, actualStartDateTime=self.yesterday) def testTaskWithActualStartInTheFutureIsInactive(self): self.assertTaskStatus(task.status.inactive, actualStartDateTime=self.nearFuture) def testTaskWithDueInThePastIsOverdue(self): self.assertTaskStatus(task.status.overdue, dueDateTime=self.yesterday) def testTaskWithDueInTheFutureIsInactive(self): self.assertTaskStatus(task.status.inactive, dueDateTime=self.farFuture) def testTaskWithDueInTheNearFutureIsDueSoon(self): self.assertTaskStatus(task.status.duesoon, dueDateTime=self.nearFuture) # Two dates/times # planned start date/time and actual start date/time def testTaskWithPlannedAndActualStartInThePastIsActive(self): self.assertTaskStatus(task.status.active, plannedStartDateTime=self.yesterday, actualStartDateTime=self.yesterday) def testTaskWithPlannedStartInThePastAndActualStartInTheFutureIsLate(self): self.assertTaskStatus(task.status.late, plannedStartDateTime=self.yesterday, actualStartDateTime=self.nearFuture) def testTaskWithPlannedStartInTheFutureAndActualStartInThePastIsActive(self): self.assertTaskStatus(task.status.active, plannedStartDateTime=self.nearFuture, actualStartDateTime=self.yesterday) def testTaskWithPlannedAndActualStartInTheFutureIsInactive(self): self.assertTaskStatus(task.status.inactive, plannedStartDateTime=self.nearFuture, actualStartDateTime=self.nearFuture) # planned start date/time and due date/time def testTaskWithPlannedStartAndDueInThePastIsOverdue(self): self.assertTaskStatus(task.status.overdue, plannedStartDateTime=self.yesterday, dueDateTime=self.yesterday) def testTaskWithPlannedStartInThePastAndDueInTheFutureIsLate(self): self.assertTaskStatus(task.status.late, plannedStartDateTime=self.yesterday, dueDateTime=self.farFuture) def testTaskWithPlannedStartInThePastAndDueInTheNearFutureIsDueSoon(self): self.assertTaskStatus(task.status.duesoon, plannedStartDateTime=self.yesterday, dueDateTime=self.nearFuture) def testTaskWithPlannedStartInTheFutureAndDueInThePastIsOverdue(self): self.assertTaskStatus(task.status.overdue, plannedStartDateTime=self.nearFuture, dueDateTime=self.yesterday) def testTaskWithPlannedStartInTheFutureAndDueInTheFutureIsLate(self): self.assertTaskStatus(task.status.inactive, plannedStartDateTime=self.nearFuture, dueDateTime=self.farFuture) def testTaskWithPlannedStartInTheFutureAndDueInTheNearFutureIsDueSoon(self): self.assertTaskStatus(task.status.duesoon, plannedStartDateTime=self.nearFuture, dueDateTime=self.nearFuture) # planned start date/time and completion date/time def testTaskWithPlannedStartAndCompletionInThePastIsCompleted(self): self.assertTaskStatus(task.status.completed, plannedStartDateTime=self.yesterday, completionDateTime=self.yesterday) def testTaskWithPlannedStartInThePastAndCompletionInTheFutureIsCompleted(self): self.assertTaskStatus(task.status.completed, plannedStartDateTime=self.yesterday, completionDateTime=self.nearFuture) def testTaskWithPlannedStartInTheFutureAndCompletionInThePastIsCompleted(self): self.assertTaskStatus(task.status.completed, plannedStartDateTime=self.nearFuture, completionDateTime=self.yesterday) def testTaskWithPlannedStartInTheFutureAndCompletionInTheFutureIsComplete(self): self.assertTaskStatus(task.status.completed, plannedStartDateTime=self.nearFuture, completionDateTime=self.nearFuture) # actual start date/time and due date/time def testTaskWithActualStartAndDueInThePastIsOverdue(self): self.assertTaskStatus(task.status.overdue, actualStartDateTime=self.yesterday, dueDateTime=self.yesterday) def testTaskWithActualStartInThePastAndDueInTheFutureIsActive(self): self.assertTaskStatus(task.status.active, actualStartDateTime=self.yesterday, dueDateTime=self.farFuture) def testTaskWithActualStartInThePastAndDueInTheNearFutureIsDueSoon(self): self.assertTaskStatus(task.status.duesoon, actualStartDateTime=self.yesterday, dueDateTime=self.nearFuture) def testTaskWithActualStartInTheFutureAndDueInThePastIsOverdue(self): self.assertTaskStatus(task.status.overdue, actualStartDateTime=self.nearFuture, dueDateTime=self.yesterday) def testTaskWithActualStartInTheFutureAndDueInTheFutureIsActive(self): self.assertTaskStatus(task.status.inactive, actualStartDateTime=self.nearFuture, dueDateTime=self.farFuture) def testTaskWithActualStartInTheFutureAndDueInTheNearFutureIsDueSoon(self): self.assertTaskStatus(task.status.duesoon, actualStartDateTime=self.nearFuture, dueDateTime=self.nearFuture) # actual start date/time and completion date/time def testTaskWithActualStartAndCompletionInThePastIsCompleted(self): self.assertTaskStatus(task.status.completed, actualStartDateTime=self.yesterday, completionDateTime=self.yesterday) def testTaskWithActualStartInThePastAndCompletionInTheFutureIsCompleted(self): self.assertTaskStatus(task.status.completed, actualStartDateTime=self.yesterday, completionDateTime=self.nearFuture) def testTaskWithActualStartInTheFutureAndCompletionInThePastIsCompleted(self): self.assertTaskStatus(task.status.completed, actualStartDateTime=self.nearFuture, completionDateTime=self.yesterday) def testTaskWithActualStartInTheFutureAndCompletionInTheFutureIsComplete(self): self.assertTaskStatus(task.status.completed, actualStartDateTime=self.nearFuture, completionDateTime=self.nearFuture) # due date/time and completion date/time def testTaskWithDueAndCompletionInThePastIsCompleted(self): self.assertTaskStatus(task.status.completed, dueDateTime=self.yesterday, completionDateTime=self.yesterday) def testTaskWithDueInThePastAndCompletionInTheFutureIsCompleted(self): self.assertTaskStatus(task.status.completed, dueDateTime=self.yesterday, completionDateTime=self.nearFuture) def testTaskWithDueInTheFutureAndCompletionInThePastIsCompleted(self): self.assertTaskStatus(task.status.completed, dueDateTime=self.nearFuture, completionDateTime=self.yesterday) def testTaskWithDueInTheFutureAndCompletionInTheFutureIsComplete(self): self.assertTaskStatus(task.status.completed, dueDateTime=self.nearFuture, completionDateTime=self.nearFuture) # Three dates/times # planned start date/time, actual start date/time and due date/time # (Other combinations are not interesting since they are always completed) def testTaskIsOverdueWheneverDueIsInThePast(self): for planned in self.dates: for actual in self.dates: self.assertTaskStatus(task.status.overdue, plannedStartDateTime=planned, actualStartDateTime=actual, dueDateTime=self.yesterday) def testTaskIsDuesoonWheneverDueIsInTheNearFuture(self): for planned in self.dates: for actual in self.dates: self.assertTaskStatus(task.status.duesoon, plannedStartDateTime=planned, actualStartDateTime=actual, dueDateTime=self.nearFuture) def testTaskIsOverdueWheneverDueIsInTheFuture(self): for planned in self.dates: expectedStatusBasedOnPlannedStart = task.status.late if planned < self.now else task.status.inactive for actual in self.dates: expectedStatus = task.status.active if actual < self.now else expectedStatusBasedOnPlannedStart self.assertTaskStatus(expectedStatus, plannedStartDateTime=planned, actualStartDateTime=actual, dueDateTime=self.farFuture) # Four date/times (always completed) def testTaskWithCompletionDateTimeIsAlwaysCompleted(self): for planned in self.dates: for actual in self.dates: for due in self.dates + (self.farFuture,): for completion in self.dates: self.assertTaskStatus(task.status.completed, plannedStartDateTime=planned, actualStartDateTime=actual, dueDateTime=due, completionDateTime=completion) # Prerequisites def testTaskWithUncompletedPrerequisiteIsNeverLate(self): prerequisite = task.Task() for planned in self.dates: self.assertTaskStatus(task.status.inactive, plannedStartDateTime=planned, prerequisites=[prerequisite]) def testTaskWithCompletedPrerequisiteIsLateWhenPlannedStartIsInThePast(self): prerequisite = task.Task(completionDateTime=self.yesterday) for planned in self.dates: expectedStatus = task.status.late if planned < self.now else task.status.inactive self.assertTaskStatus(expectedStatus, plannedStartDateTime=planned, prerequisites=[prerequisite]) def testMutualPrerequisites(self): taskA = task.Task() taskB = task.Task(prerequisites=[taskA]) taskA.addPrerequisites([taskB]) for eachTask in (taskA, taskB): self.assertEqual(task.status.inactive, eachTask.status()) taskcoach-1.4.3/tests/unittests/domainTests/TaskTest.py000066400000000000000000004055571265347643000233230ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import patterns, config from taskcoachlib.domain import task, effort, date, attachment, note, category from taskcoachlib.domain.attribute.icon import getImagePlural, getImageOpen from taskcoachlib.thirdparty.pubsub import pub from unittests import asserts import test import wx # pylint: disable=C0103,C0111 class TaskTestCase(test.TestCase): eventTypes = [] def labelTaskChildrenAndEffort(self, parentTask, taskLabel): for childIndex, child in enumerate(parentTask.children()): childLabel = '%s_%d' % (taskLabel, childIndex + 1) setattr(self, childLabel, child) self.labelTaskChildrenAndEffort(child, childLabel) self.labelEfforts(child, childLabel) def labelEfforts(self, parentTask, taskLabel): for effortIndex, eachEffort in enumerate(parentTask.efforts()): effortLabel = '%seffort%d' % (taskLabel, effortIndex + 1) setattr(self, effortLabel, eachEffort) def setUp(self, settings=None): self.settings = task.Task.settings = config.Settings(load=False) if settings is not None: for section, name, value in settings: # XXXTODO: other types ? Not needed right now self.settings.setint(section, name, value) self.yesterday = date.Yesterday() self.tomorrow = date.Tomorrow() self.tasks = self.createTasks() self.task = self.tasks[0] for index, eachTask in enumerate(self.tasks): taskLabel = 'task%d' % (index + 1) setattr(self, taskLabel, eachTask) self.labelTaskChildrenAndEffort(eachTask, taskLabel) self.labelEfforts(eachTask, taskLabel) for eventType in self.eventTypes: self.registerObserver(eventType) # pylint: disable=W0201 def createTasks(self): def createAttachments(kwargs): if 'attachments' in kwargs: kwargs['attachments'] = [attachment.FileAttachment(filename) \ for filename in kwargs['attachments']] return kwargs return [task.Task(**createAttachments(kwargs)) for kwargs in \ self.taskCreationKeywordArguments()] def taskCreationKeywordArguments(self): # pylint: disable=R0201 return [dict(subject='Task')] def addEffort(self, hours, taskToAddEffortTo=None): taskToAddEffortTo = taskToAddEffortTo or self.task start = date.DateTime(2005, 1, 1) taskToAddEffortTo.addEffort(effort.Effort(taskToAddEffortTo, start, start + hours)) def assertReminder(self, expectedReminder, taskWithReminder=None, recursive=False): taskWithReminder = taskWithReminder or self.task self.assertEqual(expectedReminder, taskWithReminder.reminder(recursive=recursive)) def assertEvent(self, *expectedEventArgs): self.assertEqual([patterns.Event(*expectedEventArgs)], self.events) class CommonTaskTestsMixin(asserts.TaskAssertsMixin): ''' These tests should succeed for all tasks, regardless of state. ''' def testCopy(self): copy = self.task.copy() self.assertTaskCopy(copy, self.task) def testCopy_IdIsDifferent(self): copy = self.task.copy() self.assertNotEqual(copy.id(), self.task.id()) def testCopy_statusIsNew(self): self.task.markDeleted() copy = self.task.copy() self.assertEqual(copy.getStatus(), copy.STATUS_NEW) class NoBudgetTestsMixin(object): ''' These tests should succeed for all tasks without budget. ''' def testTaskHasNoBudget(self): self.assertEqual(date.TimeDelta(), self.task.budget()) def testTaskHasNoRecursiveBudget(self): self.assertEqual(date.TimeDelta(), self.task.budget(recursive=True)) def testTaskHasNoBudgetLeft(self): self.assertEqual(date.TimeDelta(), self.task.budgetLeft()) def testTaskHasNoRecursiveBudgetLeft(self): self.assertEqual(date.TimeDelta(), self.task.budgetLeft(recursive=True)) class DefaultTaskStateTest(TaskTestCase, CommonTaskTestsMixin, NoBudgetTestsMixin): # Getters def testTaskHasNoDueDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.dueDateTime()) def testTaskHasNoRecursiveDueDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.dueDateTime(recursive=True)) def testTaskHasNoPlannedStartDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.plannedStartDateTime()) def testTaskHasNoRecursivePlannedStartDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.plannedStartDateTime(recursive=True)) def testTaskHasNoActualStartDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.actualStartDateTime()) def testTaskHasNoRecursiveActualStartDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.actualStartDateTime(recursive=True)) def testTaskHasNoCompletionDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.completionDateTime()) def testTaskHasNoRecursiveCompletionDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.task.completionDateTime(recursive=True)) def testTaskIsNotCompletedByDefault(self): self.failIf(self.task.completed()) def testTaskIsNotActiveByDefault(self): self.failIf(self.task.active()) def testTaskIsInactiveByDefault(self): self.failUnless(self.task.inactive()) def testTaskIsNotDueSoonByDefault(self): self.failIf(self.task.dueSoon()) def testTaskHasNoDescriptionByDefault(self): self.assertEqual('', self.task.description()) def testTaskHasNoChildrenByDefaultSoNotAllChildrenAreCompleted(self): self.failIf(self.task.allChildrenCompleted()) def testTaskHasNoEffortByDefault(self): zero = date.TimeDelta() for recursive in False, True: self.assertEqual(zero, self.task.timeSpent(recursive=recursive)) def testTaskPriorityIsZeroByDefault(self): for recursive in False, True: self.assertEqual(0, self.task.priority(recursive=recursive)) def testTaskHasNoReminderSetByDefault(self): self.assertReminder(date.DateTime()) def testTaskHasNoRecursiveReminderByDefault(self): self.assertReminder(date.DateTime(), recursive=True) def testShouldMarkTaskCompletedIsUndecidedByDefault(self): self.assertEqual(None, self.task.shouldMarkCompletedWhenAllChildrenCompleted()) def testTaskHasNoAttachmentsByDefault(self): self.assertEqual([], self.task.attachments()) def testTaskHasNoFixedFeeByDefault(self): for recursive in False, True: self.assertEqual(0, self.task.fixedFee(recursive=recursive)) def testTaskHasNoRevenueByDefault(self): for recursive in False, True: self.assertEqual(0, self.task.revenue(recursive=recursive)) def testTaskHasNoHourlyFeeByDefault(self): for recursive in False, True: self.assertEqual(0, self.task.hourlyFee(recursive=recursive)) def testTaskDoesNotRecurByDefault(self): self.failIf(self.task.recurrence()) def testTaskDoesNotHaveNotesByDefault(self): self.failIf(self.task.notes()) def testPercentageCompleteIsZeroByDefault(self): self.assertEqual(0, self.task.percentageComplete()) def testDefaultColor(self): self.assertEqual(None, self.task.foregroundColor()) def testDefaultOwnIcon(self): self.assertEqual('', self.task.icon(recursive=False)) def testDefaultRecursiveIcon(self): self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testDefaultOwnSelectedIcon(self): self.assertEqual('', self.task.selectedIcon(recursive=False)) def testDefaultRecursiveSelectedIcon(self): self.assertEqual(task.inactive.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testDefaultPrerequisites(self): self.failIf(self.task.prerequisites()) def testDefaultRecursivePrerequisites(self): self.failIf(self.task.prerequisites(recursive=True)) def testDefaultDependencies(self): self.failIf(self.task.dependencies()) def testDefaultRecursiveDependencies(self): self.failIf(self.task.dependencies(recursive=True)) # Setters def testSetPlannedStartDateTime(self): self.task.setPlannedStartDateTime(self.yesterday) for recursive in (False, True): self.assertEqual(self.yesterday, self.task.plannedStartDateTime(recursive=recursive)) def testSetPlannedStartDateTimeNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.plannedStartDateTimeChangedEventType()) self.task.setPlannedStartDateTime(self.yesterday) self.assertEqual((self.yesterday, self.task), events[0]) def testSetPlannedStartDateTimeUnchangedCausesNoNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.plannedStartDateTimeChangedEventType()) self.task.setPlannedStartDateTime(self.task.plannedStartDateTime()) self.failIf(events) def testSetFuturePlannedStartDateTimeChangesIcon(self): self.task.setPlannedStartDateTime(self.tomorrow) self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testIconChangedAfterSetPlannedStartDateTimeHasPassed(self): self.task.setPlannedStartDateTime(self.tomorrow) now = self.tomorrow + date.ONE_SECOND oldNow = date.Now date.Now = lambda: now self.task.onTimeToStart() self.assertEqual(task.late.getBitmap(self.settings), self.task.icon(recursive=True)) date.Now = oldNow def testSetActualStartDateTime(self): self.task.setActualStartDateTime(self.yesterday) for recursive in (False, True): self.assertEqual(self.yesterday, self.task.actualStartDateTime(recursive=recursive)) def testSetActualStartDateTimeNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.actualStartDateTimeChangedEventType()) self.task.setActualStartDateTime(self.yesterday) self.assertEqual((self.yesterday, self.task), events[0]) def testSetActualStartDateTimeUnchangedCausesNoNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.actualStartDateTimeChangedEventType()) self.task.setActualStartDateTime(self.task.actualStartDateTime()) self.failIf(events) def testSetDueDateTime(self): self.task.setDueDateTime(self.tomorrow) for recursive in (False, True): self.assertEqual(self.tomorrow, self.task.dueDateTime(recursive=recursive)) def testSetDueDateTimeNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.dueDateTimeChangedEventType()) self.task.setDueDateTime(self.tomorrow) self.assertEqual((self.tomorrow, self.task), events[0]) def testSetDueDateTimeUnchangedCausesNoNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.dueDateTimeChangedEventType()) self.task.setDueDateTime(self.task.dueDateTime()) self.failIf(events) def testIconChangedAfterSetDueDateTimeHasPassed(self): self.task.setDueDateTime(self.tomorrow) now = self.tomorrow + date.ONE_SECOND oldNow = date.Now date.Now = lambda: now self.task.onOverDue() self.assertEqual(task.overdue.getBitmap(self.settings), self.task.icon(recursive=True)) date.Now = oldNow def testIconChangedAfterTaskHasBecomeDueSoon(self): self.settings.setint('behavior', 'duesoonhours', 1) self.task.setDueDateTime(self.tomorrow) now = self.tomorrow + date.ONE_SECOND - date.ONE_HOUR oldNow = date.Now date.Now = lambda: now self.task.onDueSoon() self.assertEqual(task.duesoon.getBitmap(self.settings), self.task.icon(recursive=True)) date.Now = oldNow def testIconChangedAfterTaskHasBecomeDueSoonAccordingToNewDueSoonSetting(self): self.task.setDueDateTime(self.tomorrow) self.settings.setint('behavior', 'duesoonhours', 1) now = self.tomorrow + date.ONE_SECOND - date.ONE_HOUR oldNow = date.Now date.Now = lambda: now self.task.onDueSoon() self.assertEqual(task.duesoon.getBitmap(self.settings), self.task.icon(recursive=True)) date.Now = oldNow def testSetCompletionDateTime(self): now = date.Now() self.task.setCompletionDateTime(now) for recursive in (False, True): self.assertEqual(now, self.task.completionDateTime(recursive=recursive)) def testSetCompletionDateTimeNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.completionDateTimeChangedEventType()) now = date.Now() self.task.setCompletionDateTime(now) self.assertEqual([(now, self.task)], events) def testSetCompletionDateTimeUnchangedCausesNoNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.completionDateTimeChangedEventType()) self.task.setCompletionDateTime(date.DateTime()) self.failIf(events) def testSetCompletionDateTimeMakesTaskCompleted(self): self.task.setCompletionDateTime() self.failUnless(self.task.completed()) def testSetCompletionDateTimeDefaultsToNow(self): self.task.setCompletionDateTime() self.assertAlmostEqual(date.Now().toordinal(), self.task.completionDateTime().toordinal()) def testSetPercentageComplete(self): self.task.setPercentageComplete(50) self.assertEqual(50, self.task.percentageComplete()) def testSetPercentageCompleteWhenMarkCompletedWhenAllChildrenCompletedIsTrue(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(True) self.task.setPercentageComplete(50) self.assertEqual(50, self.task.percentageComplete()) def testSet100PercentComplete(self): self.task.setPercentageComplete(100) self.failUnless(self.task.completed()) def testPercentageCompleteNotificationViaCompletionDateTime(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.percentageCompleteChangedEventType()) self.task.setCompletionDateTime() self.assertEqual([(100, self.task)], events) def testSetPercentageCompleteSetsActualStartDateTime(self): self.task.setPercentageComplete(50) self.assertNotEqual(date.DateTime(), self.task.actualStartDateTime()) def testSetPercentageCompleteToZeroDoesNotSetActualStartDateTime(self): self.task.setPercentageComplete(50) self.task.setActualStartDateTime(date.DateTime()) self.task.setPercentageComplete(0) self.assertEqual(date.DateTime(), self.task.actualStartDateTime()) def testSetDescription(self): self.task.setDescription('A new description') self.assertEqual('A new description', self.task.description()) def testSetDescriptionNotification(self): self.registerObserver(task.Task.descriptionChangedEventType()) self.task.setDescription('A new description') self.failUnless('A new description', self.events[0].value()) def testSetDescriptionUnchangedCausesNoNotification(self): self.registerObserver(task.Task.descriptionChangedEventType()) self.task.setDescription(self.task.description()) self.failIf(self.events) def testSetBudget(self): budget = date.ONE_HOUR self.task.setBudget(budget) self.assertEqual(budget, self.task.budget()) def testSetBudgetNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) budget = date.ONE_HOUR self.task.setBudget(budget) self.assertEqual([(budget, self.task)], events) def testSetBudgetUnchangedCausesNoNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) self.task.setBudget(self.task.budget()) self.failIf(events) def testSetPriority(self): self.task.setPriority(10) self.assertEqual(10, self.task.priority()) def testSetPriorityCausesNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task.setPriority(10) self.assertEqual((10, self.task), events[0]) def testSetPriorityUnchangedCausesNoNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task.setPriority(self.task.priority()) self.failIf(events) def testNegativePriority(self): self.task.setPriority(-1) self.assertEqual(-1, self.task.priority()) def testSetFixedFee(self): self.task.setFixedFee(1000) self.assertEqual(1000, self.task.fixedFee()) def testSetFixedFeeUnchangedCausesNoNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.fixedFeeChangedEventType()) self.task.setFixedFee(self.task.fixedFee()) self.failIf(events) def testSetFixedFeeCausesNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.fixedFeeChangedEventType()) self.task.setFixedFee(1000) self.assertEqual([(1000, self.task)], events) def testSetFixedFeeCausesRevenueChangeNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) self.task.setFixedFee(1000) self.assertEqual([(1000, self.task)], events) def testSetHourlyFeeViaSetter(self): self.task.setHourlyFee(100) self.assertEqual(100, self.task.hourlyFee()) def testSetHourlyFeeCausesNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.hourlyFeeChangedEventType()) self.task.setHourlyFee(100) self.assertEqual([(100, self.task)], events) def testSetRecurrence(self): self.task.setRecurrence(date.Recurrence('weekly')) self.assertEqual(date.Recurrence('weekly'), self.task.recurrence()) def testSetRecurrenceCausesNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.recurrenceChangedEventType()) self.task.setRecurrence(date.Recurrence('weekly')) self.assertEqual([(date.Recurrence('weekly'), self.task)], events) # Add child def testAddChildNotification(self): self.registerObserver(task.Task.addChildEventType()) child = task.Task() self.task.addChild(child) self.assertEqual(child, self.events[0].value()) def testAddCompletedChildAsOnlyChildMakesParentCompleted(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) child = task.Task(completionDateTime=self.yesterday) self.task.addChild(child) self.failUnless(self.task.completed()) def testAddActiveChildMakesParentActive(self): self.task.setCompletionDateTime() child = task.Task() self.task.addChild(child) self.failIf(self.task.completed()) def testAddChildWithLaterDueDateTimeDoesNotChangeParentDueDateTime(self): self.task.setDueDateTime(self.tomorrow) child = task.Task(dueDateTime=date.Now() + date.ONE_HOUR) self.task.addChild(child) self.assertEqual(self.tomorrow, self.task.dueDateTime()) self.assertEqual(child.dueDateTime(), self.task.dueDateTime(recursive=True)) def testAddChildWithoutDueDateTimeDoesNotResetParentDueDateTime(self): dueDateTime = date.Now() + date.ONE_HOUR self.task.setDueDateTime(dueDateTime) child = task.Task() self.task.addChild(child) self.assertEqual(dueDateTime, self.task.dueDateTime()) def testAddChildWithEarlierPlannedStartDateTimeDoesNotChangeParentsPlannedStartDateTime(self): originalPlannedStartDateTime = self.task.plannedStartDateTime() child = task.Task(plannedStartDateTime=self.yesterday) self.task.addChild(child) self.assertEqual(originalPlannedStartDateTime, self.task.plannedStartDateTime()) self.assertEqual(self.yesterday, self.task.plannedStartDateTime(recursive=True)) self.assertEqual(self.yesterday, child.plannedStartDateTime()) def testAddChildWithEarlierActualStartDateTimeDoesNotChangeParentActualStartDateTime(self): originalActualStartDateTime = self.task.actualStartDateTime() child = task.Task(actualStartDateTime=self.yesterday) self.task.addChild(child) self.assertEqual(originalActualStartDateTime, self.task.actualStartDateTime()) self.assertEqual(self.yesterday, self.task.actualStartDateTime(recursive=True)) self.assertEqual(self.yesterday, child.actualStartDateTime()) def testAddActiveRecurringChildWithEarlierPlannedStartDateTimeDoesNotChangeParentsPlannedStartDateTime(self): originalPlannedStartDateTime = self.task.plannedStartDateTime() child = task.Task(plannedStartDateTime=self.yesterday) child.setRecurrence(date.Recurrence('monthly')) self.task.addChild(child) self.assertEqual(originalPlannedStartDateTime, self.task.plannedStartDateTime()) self.assertEqual(self.yesterday, self.task.plannedStartDateTime(recursive=True)) self.assertEqual(self.yesterday, child.plannedStartDateTime()) def testAddActiveRecurringChildWithEarlierActualStartDateTimeDoesNotChangeParentActualStartDateTime(self): originalActualStartDateTime = self.task.actualStartDateTime() child = task.Task(actualStartDateTime=self.yesterday) child.setRecurrence(date.Recurrence('monthly')) self.task.addChild(child) self.assertEqual(originalActualStartDateTime, self.task.actualStartDateTime()) self.assertEqual(self.yesterday, self.task.actualStartDateTime(recursive=True)) self.assertEqual(self.yesterday, child.actualStartDateTime()) def testAddChildWithBudgetCausesBudgetNotification(self): child = task.Task() child.setBudget(date.TimeDelta(100)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) self.task.addChild(child) self.assertEqual([(date.TimeDelta(), self.task)], events) def testAddChildWithoutBudgetCausesNoBudgetNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) child = task.Task() self.task.addChild(child) self.failIf(events) def testAddChildWithEffortCausesBudgetLeftNotification(self): self.task.setBudget(date.TimeDelta(hours=100)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) child = task.Task() child.addEffort(effort.Effort(child, date.DateTime(2000, 1, 1, 10, 0, 0), date.DateTime(2000, 1, 1, 11, 0, 0))) self.task.addChild(child) self.failUnless((date.TimeDelta(hours=100), self.task) in events) def testAddChildWithoutEffortCausesNoBudgetLeftNotification(self): self.task.setBudget(date.TimeDelta(hours=100)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task.addChild(task.Task()) self.failIf(events) def testAddChildWithEffortToTaskWithoutBudgetCausesNoBudgetLeftNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) child = task.Task() child.addEffort(effort.Effort(child, date.DateTime(2000, 1, 1, 10, 0, 0), date.DateTime(2000, 1, 1, 11, 0, 0))) self.task.addChild(child) self.failIf(events) def testAddChildWithBudgetCausesBudgetLeftNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task.addChild(task.Task(budget=date.TimeDelta(hours=100))) self.assertEqual([(date.TimeDelta(), self.task)], events) def testAddChildWithEffortCausesTimeSpentNotification(self): child = task.Task() childEffort = effort.Effort(child, date.DateTime(2000, 1, 1, 10, 0, 0), date.DateTime(2000, 1, 1, 11, 0, 0)) child.addEffort(childEffort) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.timeSpentChangedEventType()) self.task.addChild(child) self.assertEqual([(self.task.timeSpent(), self.task)], events) def testAddChildWithoutEffortCausesNoTimeSpentNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.timeSpentChangedEventType()) self.task.addChild(task.Task()) self.failIf(events) def testAddChildWithHigherPriorityCausesPriorityNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) child = task.Task(priority=10) self.task.addChild(child) self.assertEqual([(0, self.task)], events) def testAddChildWithLowerPriorityCausesNoPriorityNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task.addChild(task.Task(priority=-10)) self.failIf(events) def testAddChildWithRevenueCausesRevenueNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) self.task.addChild(task.Task(fixedFee=1000)) self.assertEqual([(0, self.task)], events) def testAddChildWithoutRevenueCausesNoRevenueNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) self.task.addChild(task.Task()) self.failIf(events) def testAddTrackedChildCausesStartTrackingNotification(self): child = task.Task() child.addEffort(effort.Effort(child)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task.trackingChangedEventType()) self.task.addChild(child) self.assertEqual([(True, self.task)], events) def testAddChildWithTwoTrackedEffortsCausesStartTrackingNotification(self): child = task.Task() child.addEffort(effort.Effort(child)) child.addEffort(effort.Effort(child)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task.trackingChangedEventType()) self.task.addChild(child) self.assertEqual([(True, self.task)], events) # Constructor def testNewChild_WithSubject(self): child = self.task.newChild(subject='Test') self.assertEqual('Test', child.subject()) # Add effort def testAddEffortCausesNoBudgetLeftNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task.addEffort(effort.Effort(self.task)) self.failIf(events) def testAddActiveEffortCausesStartTrackingNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task.trackingChangedEventType()) activeEffort = effort.Effort(self.task) self.task.addEffort(activeEffort) self.assertEqual([(True, self.task)], events) def testAddEffortSetActualStartDateTime(self): now = date.Now() self.task.addEffort(effort.Effort(self.task, now)) self.assertEqual(now, self.task.actualStartDateTime()) # Notes: def testAddNote(self): aNote = note.Note() self.task.addNote(aNote) self.assertEqual([aNote], self.task.notes()) def testAddNoteCausesNotification(self): eventType = task.Task.notesChangedEventType() # pylint: disable=E1101 self.registerObserver(eventType) aNote = note.Note() self.task.addNote(aNote) self.assertEvent(eventType, self.task, aNote) # Prerequisites def testAddOnePrerequisite(self): prerequisites = set([task.Task()]) self.task.addPrerequisites(prerequisites) self.assertEqual(prerequisites, self.task.prerequisites()) def testAddTwoPrerequisites(self): prerequisites = set([task.Task(), task.Task()]) self.task.addPrerequisites(prerequisites) self.assertEqual(prerequisites, self.task.prerequisites()) def testAddPrerequisiteCausesNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.prerequisitesChangedEventType()) prerequisite = task.Task() self.task.addPrerequisites([prerequisite]) self.assertEqual([(set([prerequisite]), self.task)], events) def testRemovePrerequisiteThatHasNotBeenAdded(self): prerequisite = task.Task() self.task.removePrerequisites([prerequisite]) self.failIf(self.task.prerequisites()) def testAddPrerequisiteKeepsTaskInactive(self): prerequisites = set([task.Task()]) self.task.addPrerequisites(prerequisites) self.failUnless(self.task.inactive()) def testAddPrerequisiteResetsActualStartDateTime(self): self.task.setActualStartDateTime(date.Now()) self.task.addPrerequisites([task.Task()]) self.assertEqual(date.DateTime(), self.task.actualStartDateTime()) # Dependencies def testAddOneDependency(self): dependencies = set([task.Task()]) self.task.addDependencies(dependencies) self.assertEqual(dependencies, self.task.dependencies()) def testAddTwoDependencies(self): dependencies = set([task.Task(), task.Task()]) self.task.addDependencies(dependencies) self.assertEqual(dependencies, self.task.dependencies()) def testAddDependencyCausesNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.dependenciesChangedEventType()) dependency = task.Task() self.task.addDependencies([dependency]) self.assertEqual([(set([dependency]), self.task)], events) def testRemoveDependencyThatHasNotBeenAdded(self): dependency = task.Task() self.task.removeDependencies([dependency]) self.failIf(self.task.dependencies()) # State (FIXME: need to test other attributes too) def testTaskStateIncludesPriority(self): state = self.task.__getstate__() self.task.setPriority(10) self.task.__setstate__(state) self.assertEqual(0, self.task.priority()) def testTaskStateIncludesRecurrence(self): state = self.task.__getstate__() self.task.setRecurrence(date.Recurrence('weekly')) self.task.__setstate__(state) self.failIf(self.task.recurrence()) def testTaskStateIncludesNotes(self): state = self.task.__getstate__() self.task.addNote(note.Note()) self.task.__setstate__(state) self.failIf(self.task.notes()) def testTaskStateIncludesReminder(self): state = self.task.__getstate__() self.task.setReminder(date.DateTime.now() + date.TimeDelta(seconds=10)) self.task.__setstate__(state) self.failIf(self.task.reminder()) def testTaskStateIncludesPlannedStartDateTime(self): previousPlannedStartDateTime = self.task.plannedStartDateTime() state = self.task.__getstate__() self.task.setPlannedStartDateTime(self.yesterday) self.task.__setstate__(state) self.assertEqual(previousPlannedStartDateTime, self.task.plannedStartDateTime()) def testTaskStateIncludesActualStartDateTime(self): previousActualStartDateTime = self.task.actualStartDateTime() state = self.task.__getstate__() self.task.setActualStartDateTime(self.yesterday) self.task.__setstate__(state) self.assertEqual(previousActualStartDateTime, self.task.actualStartDateTime()) def testTaskStateIncludesDueDateTime(self): previousDueDateTime = self.task.dueDateTime() state = self.task.__getstate__() self.task.setDueDateTime(self.yesterday) self.task.__setstate__(state) self.assertEqual(previousDueDateTime, self.task.dueDateTime()) def testTaskStateIncludesCompletionDateTime(self): previousCompletionDateTime = self.task.completionDateTime() state = self.task.__getstate__() self.task.setCompletionDateTime(self.yesterday) self.task.__setstate__(state) self.assertEqual(previousCompletionDateTime, self.task.completionDateTime()) def testTaskStateIncludesPrerequisites(self): self.task.addPrerequisites([task.Task(subject='prerequisite1')]) previousPrerequisites = self.task.prerequisites() state = self.task.__getstate__() self.task.addPrerequisites([task.Task(subject='prerequisite2')]) self.task.__setstate__(state) self.assertEqual(previousPrerequisites, self.task.prerequisites()) def testTaskStateIncludesDependencies(self): self.task.addDependencies([task.Task(subject='dependency1')]) previousDependencies = self.task.dependencies() state = self.task.__getstate__() self.task.addDependencies([task.Task(subject='dependency2')]) self.task.__setstate__(state) self.assertEqual(previousDependencies, self.task.dependencies()) def testModificationEventTypes(self): # pylint: disable=E1003 self.assertEqual(super(task.Task, self.task).modificationEventTypes() +\ [task.Task.plannedStartDateTimeChangedEventType(), task.Task.dueDateTimeChangedEventType(), task.Task.actualStartDateTimeChangedEventType(), task.Task.completionDateTimeChangedEventType(), task.Task.effortsChangedEventType(), task.Task.budgetChangedEventType(), task.Task.percentageCompleteChangedEventType(), task.Task.priorityChangedEventType(), task.Task.hourlyFeeChangedEventType(), task.Task.fixedFeeChangedEventType(), task.Task.reminderChangedEventType(), task.Task.recurrenceChangedEventType(), task.Task.prerequisitesChangedEventType(), task.Task.dependenciesChangedEventType(), task.Task.shouldMarkCompletedWhenAllChildrenCompletedChangedEventType()], self.task.modificationEventTypes()) class TaskDueTodayTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): self.dueDateTime = date.Now() + date.ONE_HOUR # pylint: disable=W0201 return [{'dueDateTime': self.dueDateTime}] def testIsDueSoon(self): self.failUnless(self.task.dueSoon()) def testDaysLeft(self): self.assertEqual(0, self.task.timeLeft().days) def testDueDateTime(self): self.assertAlmostEqual(self.dueDateTime.toordinal(), self.task.dueDateTime().toordinal()) def testDefaultDueSoonColor(self): expectedColor = wx.Colour(*eval(self.settings.get('fgcolor', 'duesoontasks'))) self.assertEqual(expectedColor, self.task.foregroundColor(recursive=True)) def testColorWhenTaskHasOwnColor(self): color = wx.Colour(191, 128, 64, 255) self.task.setForegroundColor(color) self.assertEqual(color, self.task.foregroundColor(recursive=True)) def testIcon(self): self.assertEqual(task.duesoon.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(task.duesoon.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testIconAfterChangingDueSoonHours(self): self.settings.setint('behavior', 'duesoonhours', 0) self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testAppearanceNotificationAfterChangingDueSoonHours(self): self.registerObserver(self.task.appearanceChangedEventType()) self.settings.setint('behavior', 'duesoonhours', 0) self.assertEvent(self.task.appearanceChangedEventType(), self.task) def testIconAfterDueDateTimeHasPassed(self): now = self.task.dueDateTime() + date.ONE_SECOND oldNow = date.Now date.Now = lambda: now self.task.onOverDue() self.assertEqual(task.overdue.getBitmap(self.settings), self.task.icon(recursive=True)) date.Now = oldNow def testAppearanceNotificationAfterDueDateTimeHasPassed(self): self.registerObserver(self.task.appearanceChangedEventType()) now = self.task.dueDateTime() + date.ONE_SECOND oldNow = date.Now date.Now = lambda: now self.task.onOverDue() self.assertEvent(self.task.appearanceChangedEventType(), self.task) date.Now = oldNow class TaskDueTomorrowTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'dueDateTime': self.tomorrow.endOfDay()}] def testDaysLeft(self): self.assertEqual(1, self.task.timeLeft().days) def testDueDateTime(self): self.assertAlmostEqual(self.taskCreationKeywordArguments()[0]['dueDateTime'].toordinal(), self.task.dueDateTime().toordinal()) def testDueSoon(self): self.failIf(self.task.dueSoon()) def testDueSoon_2days(self): self.settings.setint('behavior', 'duesoonhours', 48) self.failUnless(self.task.dueSoon()) def testIconNotDueSoon(self): self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testselectedIconNotDueSoon(self): self.assertEqual(task.inactive.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testIconDueSoon(self): self.settings.setint('behavior', 'duesoonhours', 48) self.assertEqual(task.duesoon.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIconDueSoon(self): self.settings.setint('behavior', 'duesoonhours', 48) self.assertEqual(task.duesoon.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testAppearanceNotificationAfterChangingDueSoonHours(self): self.registerObserver(self.task.appearanceChangedEventType()) self.settings.setint('behavior', 'duesoonhours', 48) self.assertEvent(self.task.appearanceChangedEventType(), self.task) class OverdueTaskTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'dueDateTime': self.yesterday}] def testIsOverdue(self): self.failUnless(self.task.overdue()) def testCompletedOverdueTaskIsNoLongerOverdue(self): self.task.setCompletionDateTime() self.failIf(self.task.overdue()) def testDueDateTime(self): self.assertAlmostEqual(\ self.taskCreationKeywordArguments()[0]['dueDateTime'].toordinal(), self.task.dueDateTime().toordinal()) def testDefaultOverdueColor(self): expectedColor = wx.Colour(*eval(self.settings.get('fgcolor', 'overduetasks'))) self.assertEqual(expectedColor, self.task.foregroundColor(recursive=True)) def testColorWhenTaskHasOwnColor(self): color = wx.Colour(191, 64, 64, 255) self.task.setForegroundColor(color) self.assertEqual(color, self.task.foregroundColor(recursive=True)) def testIcon(self): self.assertEqual(task.overdue.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(task.overdue.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testIconAfterChangingDueDateTime(self): self.task.setDueDateTime(date.Now() + date.TimeDelta(hours=72)) self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIconAfterChangingDueDateTime(self): self.task.setDueDateTime(date.Now() + date.TimeDelta(hours=72)) self.assertEqual(task.inactive.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testAppearanceNotificationAfterChangingDueDateTime(self): self.registerObserver(self.task.appearanceChangedEventType()) self.task.setDueDateTime(date.Now() + date.TimeDelta(hours=72)) self.assertEvent(self.task.appearanceChangedEventType(), self.task) def testIconAfterMarkingComplete(self): self.task.setCompletionDateTime() self.assertEqual(task.completed.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIconAfterMarkingComplete(self): self.task.setCompletionDateTime() self.assertEqual(task.completed.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testAppearanceNotificationAfterMarkingComplete(self): self.registerObserver(self.task.appearanceChangedEventType()) self.task.setCompletionDateTime() self.assertEvent(self.task.appearanceChangedEventType(), self.task) class CompletedTaskTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'completionDateTime': date.Now()}] def testATaskWithACompletionDateIsCompleted(self): self.failUnless(self.task.completed()) def testSettingTheCompletionDateTimeToInfiniteMakesTheTaskUncompleted(self): self.task.setCompletionDateTime(date.DateTime()) self.failIf(self.task.completed()) self.assertEqual(0, self.task.percentageComplete()) def testSettingTheCompletionDateTimeToAnotherDateTimeLeavesTheTaskCompleted(self): self.task.setCompletionDateTime(self.yesterday) self.failUnless(self.task.completed()) def testCompletedTaskIsHundredProcentComplete(self): self.assertEqual(100, self.task.percentageComplete()) def testSetPercentageCompleteToLessThan100MakesTaskUncompleted(self): self.task.setPercentageComplete(99) self.assertEqual(date.DateTime(), self.task.completionDateTime()) self.assertEqual(99, self.task.percentageComplete()) def testPercentageCompleteNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.percentageCompleteChangedEventType()) self.task.setCompletionDateTime(date.DateTime.max) self.assertEqual([(0, self.task)], events) def testDefaultCompletedColor(self): expectedColor = wx.Colour(*eval(self.settings.get('fgcolor', 'completedtasks'))) self.assertEqual(expectedColor, self.task.foregroundColor(recursive=True)) def testColorWhenTaskHasOwnColor(self): color = wx.Colour(64, 191, 64, 255) self.task.setForegroundColor(color) self.assertEqual(color, self.task.foregroundColor(recursive=True)) def testIcon(self): self.assertEqual(task.completed.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(task.completed.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testIconAfterMarkingUncomplete(self): self.task.setCompletionDateTime(date.DateTime.max) self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIconAfterMarkingUncomplete(self): self.task.setCompletionDateTime(date.DateTime.max) self.assertEqual(task.inactive.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testAppearanceNotificationAfterMarkingUncomplete(self): self.registerObserver(self.task.appearanceChangedEventType()) self.task.setCompletionDateTime(date.DateTime.max) self.assertEvent(self.task.appearanceChangedEventType(), self.task) class HundredProcentCompletedTaskTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'percentageComplete': 100}] def testAHundredProcentCompleteTaskIsCompleted(self): self.failUnless(self.task.completed()) class TaskCompletedInTheFutureTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'completionDateTime': self.tomorrow}] def testATaskWithAFutureCompletionDateIsCompleted(self): self.failUnless(self.task.completed()) class TaskWithPlannedStartDateInTheFutureTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'plannedStartDateTime': self.tomorrow}, {'subject': 'prerequisite'}] def testTaskWithStartDateInTheFutureIsInactive(self): self.failUnless(self.task.inactive()) def testTaskWithPlannedStartDateInTheFutureIsInactiveEvenWhenAllPrerequisitesAreCompleted(self): # pylint: disable=E1101 self.task.addPrerequisites([self.task2]) self.task2.addDependencies([self.task]) self.task2.setCompletionDateTime() self.failUnless(self.task.inactive()) def testACompletedTaskWithPlannedStartDateTimeInTheFutureIsNotInactive(self): self.task.setCompletionDateTime() self.failIf(self.task.inactive()) def testPlannedStartDateTime(self): self.assertEqual(self.tomorrow, self.task.plannedStartDateTime()) def testSetActualStartDateTimeToTodayMakesTaskActive(self): self.task.setActualStartDateTime(date.Now()) self.failUnless(self.task.active()) def testDefaultInactiveColor(self): expectedColor = wx.Colour(*eval(self.settings.get('fgcolor', 'inactivetasks'))) self.assertEqual(expectedColor, self.task.foregroundColor(recursive=True)) def testColorWhenTaskHasOwnColor(self): color = wx.Colour(160, 160, 160, 255) self.task.setForegroundColor(color) self.assertEqual(color, self.task.foregroundColor(recursive=True)) def testIcon(self): self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(task.inactive.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testIconAfterPlannedStartDateTimeHasPassed(self): now = self.task.plannedStartDateTime() + date.ONE_SECOND oldNow = date.Now date.Now = lambda: now wx.Yield() self.assertEqual(task.late.getBitmap(self.settings), self.task.icon(recursive=True)) date.Now = oldNow def testAppearanceNotificationAfterPlannedStartDateTimeHasPassed(self): self.registerObserver(self.task.appearanceChangedEventType()) now = self.task.plannedStartDateTime() + date.ONE_SECOND oldNow = date.Now date.Now = lambda: now self.task.onTimeToStart() self.assertEvent(self.task.appearanceChangedEventType(), self.task) date.Now = oldNow def testIconAfterMarkingComplete(self): self.task.setCompletionDateTime() self.assertEqual(task.completed.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIconAfterMarkingComplete(self): self.task.setCompletionDateTime() self.assertEqual(task.completed.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testAppearanceNotificationAfterMarkingComplete(self): self.registerObserver(self.task.appearanceChangedEventType()) self.task.setCompletionDateTime() self.assertEvent(self.task.appearanceChangedEventType(), self.task) def testIconAfterChangingPlannedStartDateTime(self): self.task.setPlannedStartDateTime(date.Now() - date.TimeDelta(hours=72)) self.assertEqual(task.late.getBitmap(self.settings), self.task.icon(recursive=True)) def testSelectedIconAfterChangingPlannedStartDateTime(self): self.task.setPlannedStartDateTime(date.Now() - date.TimeDelta(hours=72)) self.assertEqual(task.late.getBitmap(self.settings), self.task.selectedIcon(recursive=True)) def testAppearanceNotificationAfterChangingPlannedStartDateTime(self): self.registerObserver(self.task.appearanceChangedEventType()) self.task.setPlannedStartDateTime(date.Now() - date.TimeDelta(hours=72)) self.assertEvent(self.task.appearanceChangedEventType(), self.task) class TaskWithPlannedStartDateInThePastTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'plannedStartDateTime': date.DateTime(2000, 1, 1)}, {'subject': 'prerequisite'}] def testTaskWithPlannedStartDateTimeInThePastIsActive(self): self.failIf(self.task.inactive()) def testTaskBecomesInactiveWhenAddingAnUncompletedPrerequisite(self): # pylint: disable=E1101 self.task.addPrerequisites([self.task2]) self.task2.addDependencies([self.task]) self.failUnless(self.task.inactive()) def testAppearanceNotificationWhenAddingAnUncompletedPrerequisite(self): # pylint: disable=E1101 self.registerObserver(self.task.appearanceChangedEventType()) self.task.addPrerequisites([self.task2]) self.task2.addDependencies([self.task]) self.assertEvent(self.task.appearanceChangedEventType(), self.task) def testTaskBecomesActiveWhenUncompletedPrerequisiteIsCompleted(self): # pylint: disable=E1101 self.task.addPrerequisites([self.task2]) self.task2.addDependencies([self.task]) self.task2.setCompletionDateTime() self.failIf(self.task.inactive()) def testAppearanceNotificationWhenUncompletedPrerequisiteIsCompleted(self): # pylint: disable=E1101 self.task.addPrerequisites([self.task2]) self.task2.addDependencies([self.task]) self.registerObserver(self.task.appearanceChangedEventType(), eventSource=self.task) self.task2.setCompletionDateTime() self.assertEvent(self.task.appearanceChangedEventType(), self.task) class TaskWithoutPlannedStartDateTimeTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'plannedStartDateTime': date.DateTime()}, {'subject': 'prerequisite'}] def testTaskWithoutPlannedStartDateTimeIsInactive(self): self.failUnless(self.task.inactive()) def testTaskStaysInactiveWhenUncompletedPrerequisiteIsCompleted(self): # pylint: disable=E1101 self.task.addPrerequisites([self.task2]) self.task2.addDependencies([self.task]) self.task2.setCompletionDateTime() self.failUnless(self.task.inactive()) self.assertEqual(task.inactive.getBitmap(self.settings), self.task.icon(recursive=True)) def testNoAppearanceNotificationWhenUncompletedPrerequisiteIsCompleted(self): # pylint: disable=E1101 self.task.addPrerequisites([self.task2]) self.task2.addDependencies([self.task]) self.registerObserver(self.task.appearanceChangedEventType(), eventSource=self.task) self.task2.setCompletionDateTime() self.failIf(self.events) class InactiveTaskWithChildTest(TaskTestCase): def taskCreationKeywordArguments(self): return [{'plannedStartDateTime': self.tomorrow, 'children': [task.Task(subject='child')]}] def testIcon(self): self.assertEqual(getImagePlural(task.inactive.getBitmap(self.settings)), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(getImageOpen(getImagePlural(task.inactive.getBitmap(self.settings))), self.task.selectedIcon(recursive=True)) def testPlannedStartDateTime(self): for recursive in (False, True): self.assertEqual(self.tomorrow, self.task.plannedStartDateTime(recursive=recursive)) class TaskWithSubject(TaskTestCase, CommonTaskTestsMixin): eventTypes = [task.Task.subjectChangedEventType()] def taskCreationKeywordArguments(self): return [{'subject': 'Subject'}] def testSubject(self): self.assertEqual('Subject', self.task.subject()) def testSetSubject(self): self.task.setSubject('Done') self.assertEqual('Done', self.task.subject()) def testSetSubjectNotification(self): self.task.setSubject('Done') self.assertEvent(task.Task.subjectChangedEventType(), self.task, 'Done') def testSetSubjectUnchangedDoesNotTriggerNotification(self): self.task.setSubject(self.task.subject()) self.failIf(self.events) def testRepresentationEqualsSubject(self): self.assertEqual(self.task.subject(), repr(self.task)) class TaskWithDescriptionTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'description': 'Description'}] def testDescription(self): self.assertEqual('Description', self.task.description()) def testSetDescription(self): self.task.setDescription('New description') self.assertEqual('New description', self.task.description()) # pylint: disable=E1101 class TwoTasksTest(TaskTestCase): def taskCreationKeywordArguments(self): return [{}, {}] def testTwoDefaultTasksAreNotEqual(self): self.assertNotEqual(self.task1, self.task2) def testEqualStatesDoesNotImplyEqualTasks(self): state = self.task1.__getstate__() self.task2.__setstate__(state) self.assertNotEqual(self.task1, self.task2) class NewChildTest(TaskTestCase): def setUp(self): super(NewChildTest, self).setUp() self.child = self.task.newChild() def testNewChildHasNoDueDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.child.dueDateTime()) def testNewChildHasNoPlannedStartDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.child.plannedStartDateTime()) def testNewChildHasNoActualStartDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.child.actualStartDateTime()) def testNewChildHasNoCompletionDateTimeByDefault(self): self.assertEqual(date.DateTime(), self.child.completionDateTime()) def testNewChildHasNoReminderByDefault(self): self.assertEqual(date.DateTime(), self.child.reminder()) class TaskWithChildTest(TaskTestCase, CommonTaskTestsMixin, NoBudgetTestsMixin): def taskCreationKeywordArguments(self): now = date.Now() - date.ONE_SECOND return [{'plannedStartDateTime': now, 'actualStartDateTime': now, 'children': [task.Task(subject='child', actualStartDateTime=now, plannedStartDateTime=now)]}] def testRemoveChildNotification(self): self.registerObserver(task.Task.removeChildEventType()) self.task1.removeChild(self.task1_1) self.assertEvent(task.Task.removeChildEventType(), self.task1, self.task1_1) def testRemoveNonExistingChildCausesNoNotification(self): self.registerObserver(task.Task.removeChildEventType()) self.task1.removeChild('Not a child') self.failIf(self.events) def testRemoveChildWithBudgetCausesBudgetNotification(self): self.task1_1.setBudget(date.TimeDelta(hours=100)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) self.task1.removeChild(self.task1_1) self.assertEqual([(date.TimeDelta(), self.task1)], events) def testRemoveChildWithBudgetAndEffortCausesBudgetNotification(self): self.task1_1.setBudget(date.TimeDelta(hours=10)) self.task1_1.addEffort(effort.Effort(self.task1_1, date.DateTime(2009, 1, 1, 1, 0, 0), date.DateTime(2009, 1, 1, 11, 0, 0))) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) self.task1.removeChild(self.task1_1) self.assertEqual([(date.TimeDelta(), self.task1)], events) def testRemoveChildWithoutBudgetCausesNoBudgetNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) self.task1.removeChild(self.task1_1) self.failIf(events) def testRemoveChildWithEffortFromTaskWithBudgetCausesBudgetLeftNotification(self): self.task1.setBudget(date.TimeDelta(hours=100)) self.task1_1.addEffort(effort.Effort(self.task1_1, date.DateTime(2005, 1, 1, 11, 0, 0), date.DateTime(2005, 1, 1, 12, 0, 0))) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task1.removeChild(self.task1_1) self.failUnless((date.TimeDelta(hours=100), self.task1) in events) def testRemoveChildWithEffortFromTaskWithoutBudgetCausesNoBudgetLeftNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task1_1.addEffort(effort.Effort(self.task1_1, date.DateTime(2005, 1, 1, 11, 0, 0), date.DateTime(2005, 1, 1, 12, 0, 0))) self.task1.removeChild(self.task1_1) self.failIf(events) def testRemoveChildWithEffortCausesTimeSpentNotification(self): childEffort = effort.Effort(self.task1_1, date.DateTime(2005, 1, 1, 11, 0, 0), date.DateTime(2005, 1, 1, 12, 0, 0)) self.task1_1.addEffort(childEffort) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.timeSpentChangedEventType()) self.task1.removeChild(self.task1_1) self.assertEqual([(self.task1.timeSpent(recursive=True), self.task1)], events) def testRemoveChildWithoutEffortCausesNoTimeSpentNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.timeSpentChangedEventType()) self.task1.removeChild(self.task1_1) self.failIf(events) def testRemoveChildWithHighPriorityCausesPriorityNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) self.task1_1.setPriority(10) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task1.removeChild(self.task1_1) self.assertEqual([(0, self.task1)], events) def testRemoveChildWithLowPriorityCausesNoTotalPriorityNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) self.task1_1.setPriority(-10) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task1.removeChild(self.task1_1) self.failIf(events) def testRemoveChildWithRevenueCausesTotalRevenueNotification(self): self.task1_1.setFixedFee(1000) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) self.task1.removeChild(self.task1_1) self.assertEqual([(0, self.task1)], events) def testRemoveChildWithoutRevenueCausesNoRevenueNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) self.task1.removeChild(self.task1_1) self.failIf(events) def testRemoveTrackedChildCausesStopTrackingNotification(self): self.task1_1.addEffort(effort.Effort(self.task1_1)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.trackingChangedEventType()) self.task1.removeChild(self.task1_1) self.assertEqual([(False, self.task1)], events) def testRemoveTrackedChildWhenParentIsTrackedTooCausesNoStopTrackingNotification(self): self.task1.addEffort(effort.Effort(self.task1)) self.task1_1.addEffort(effort.Effort(self.task1_1)) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.trackingChangedEventType()) self.task1.removeChild(self.task1_1) self.failIf(events) def testSettingParentDueDateTimeEarlierThanChildDueDateTimeDoesNotChangeChildDueDateTime(self): childDueDateTime = date.Now() + date.TWO_HOURS self.task1_1.setDueDateTime(childDueDateTime) parentDueDateTime = date.Now() + date.ONE_HOUR self.task1.setDueDateTime(parentDueDateTime) self.assertEqual(childDueDateTime, self.task1_1.dueDateTime()) def testSettingChildDueDateTimeLaterThanParentDueDateTimeDoesNotChangeParentDueDateTime(self): parentDueDateTime = date.Now() + date.ONE_HOUR self.task1.setDueDateTime(parentDueDateTime) childDueDateTime = date.Now() + date.TWO_HOURS self.task1_1.setDueDateTime(childDueDateTime) self.assertEqual(parentDueDateTime, self.task1.dueDateTime()) def testRecursiveDueDateTime(self): self.assertEqual(date.DateTime(), self.task1.dueDateTime(recursive=True)) def testRecursiveDueDateTimeWhenChildDueToday(self): now = date.Now() self.task1_1.setDueDateTime(now) self.assertEqual(now, self.task1.dueDateTime(recursive=True)) def testNotificationWhenRecursiveDueDateTimeChanges(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.dueDateTimeChangedEventType()) now = date.Now() self.task1_1.setDueDateTime(now) self.assertEqual(set([(now, self.task1), (now, self.task1_1)]), set(events)) def testRecursiveDueDateTimeWhenChildDueTodayAndCompleted(self): self.task1_1.setDueDateTime(date.Now()) self.task1_1.setCompletionDateTime(date.Now()) self.assertEqual(date.DateTime(), self.task1.dueDateTime(recursive=True)) def testSettingPlannedStartDateTimeLaterThanChildPlannedStartDateTime(self): childPlannedStartDateTime = self.task1_1.plannedStartDateTime() self.task1.setPlannedStartDateTime(self.tomorrow) self.assertEqual(self.tomorrow, self.task1.plannedStartDateTime()) self.assertEqual(childPlannedStartDateTime, self.task1.plannedStartDateTime(recursive=True)) self.assertEqual(childPlannedStartDateTime, self.task1_1.plannedStartDateTime()) def testSettingPlannedStartDateTimeEarlierThanParentPlannedStartDateTime(self): parentPlannedStartDateTime = self.task1.plannedStartDateTime() self.task1_1.setPlannedStartDateTime(self.yesterday) self.assertEqual(self.yesterday, self.task1_1.plannedStartDateTime()) self.assertEqual(self.yesterday, self.task1.plannedStartDateTime(recursive=True)) self.assertEqual(parentPlannedStartDateTime, self.task1.plannedStartDateTime()) def testRecursivePlannedStartDateTime(self): self.assertAlmostEqual(date.Now().toordinal(), self.task1.plannedStartDateTime(recursive=True).toordinal(), places=2) def testNotificationWhenRecursivePlannedStartDateTimeChanges(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.plannedStartDateTimeChangedEventType()) now = date.Now() self.task1_1.setPlannedStartDateTime(now) self.assertEqual(set([(now, self.task1), (now, self.task1_1)]), set(events)) def testRecursivePlannedStartDateTimeWhenChildStartsYesterday(self): self.task1_1.setPlannedStartDateTime(self.yesterday) self.assertEqual(self.yesterday, self.task1.plannedStartDateTime(recursive=True)) def testRecursiveActualStartDateTime(self): self.assertAlmostEqual(date.Now().toordinal(), self.task1.actualStartDateTime(recursive=True).toordinal(), places=2) def testNotificationWhenRecursiveActualStartDateTimeChanges(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.actualStartDateTimeChangedEventType()) now = date.Now() self.task1_1.setActualStartDateTime(now) self.assertEqual(set([(now, self.task1), (now, self.task1_1)]), set(events)) def testRecursiveActualStartDateTimeWhenChildStartsYesterday(self): self.task1_1.setActualStartDateTime(self.yesterday) self.assertEqual(self.yesterday, self.task1.actualStartDateTime(recursive=True)) def testRecursiveCompletionDateTime(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.task1_1.setCompletionDateTime(self.tomorrow) self.assertEqual(self.tomorrow, self.task1.completionDateTime(recursive=True)) def testNotificationWhenRecursiveCompletionDateTimeChanges(self): self.task1_1.setCompletionDateTime(self.yesterday) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.completionDateTimeChangedEventType()) now = date.Now() self.task1_1.setCompletionDateTime(now) self.assertEqual(set([(now, self.task1), (now, self.task1_1)]), set(events)) def testRecursiveCompletionDateTimeWhenChildIsCompletedYesterday(self): self.task1_1.setCompletionDateTime(self.yesterday) now = date.Now() self.task1.setCompletionDateTime(now) self.assertEqual(now, self.task1.completionDateTime(recursive=True)) def testNotificationWhenRecursiveReminderDateTimeChanges(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.reminderChangedEventType()) now = date.Now() self.task1_1.setReminder(now) self.assertEqual(set([(now, self.task1), (now, self.task1_1)]), set(events)) def testNotAllChildrenAreCompleted(self): self.failIf(self.task1.allChildrenCompleted()) def testAllChildrenAreCompletedAfterMarkingTheOnlyChildAsCompleted(self): self.task1_1.setCompletionDateTime() self.failUnless(self.task1.allChildrenCompleted()) def testTimeLeftRecursivelyIsInfinite(self): self.assertEqual(date.TimeDelta.max, self.task1.timeLeft(recursive=True)) def testTimeSpentRecursivelyIsZero(self): self.assertEqual(date.TimeDelta(), self.task.timeSpent(recursive=True)) def testRecursiveBudgetWhenParentHasNoBudgetWhileChildDoes(self): self.task1_1.setBudget(date.ONE_HOUR) self.assertEqual(date.ONE_HOUR, self.task.budget(recursive=True)) def testRecursiveBudgetLeftWhenParentHasNoBudgetWhileChildDoes(self): self.task1_1.setBudget(date.ONE_HOUR) self.assertEqual(date.ONE_HOUR, self.task.budgetLeft(recursive=True)) def testRecursiveBudgetWhenBothHaveBudget(self): self.task1_1.setBudget(date.ONE_HOUR) self.task.setBudget(date.ONE_HOUR) self.assertEqual(date.TWO_HOURS, self.task.budget(recursive=True)) def testRecursiveBudgetLeftWhenBothHaveBudget(self): self.task1_1.setBudget(date.ONE_HOUR) self.task.setBudget(date.ONE_HOUR) self.assertEqual(date.TWO_HOURS, self.task.budgetLeft(recursive=True)) def testRecursiveBudgetLeftWhenChildBudgetIsAllSpent(self): self.task1_1.setBudget(date.ONE_HOUR) self.addEffort(date.ONE_HOUR, self.task1_1) self.assertEqual(date.TimeDelta(), self.task.budgetLeft(recursive=True)) def testBudgetNotification_WhenChildBudgetChanges(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) self.task1_1.setBudget(date.ONE_HOUR) self.failUnless((date.ONE_HOUR, self.task1) in events) def testBudgetNotification_WhenRemovingChildWithBudget(self): self.task1_1.setBudget(date.ONE_HOUR) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetChangedEventType()) self.task.removeChild(self.task1_1) self.failUnless((date.TimeDelta(0), self.task1) in events) def testBudgetLeftNotification_WhenChildBudgetChanges(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task1_1.setBudget(date.ONE_HOUR) self.failUnless((date.ONE_HOUR, self.task1) in events) def testBudgetLeftNotification_WhenChildTimeSpentChanges(self): self.task1_1.setBudget(date.TWO_HOURS) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task1_1.addEffort(effort.Effort(self.task1_1, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 11, 0, 0))) self.failUnless((date.ONE_HOUR, self.task1) in events) def testBudgetLeftNotification_WhenParentHasNoBudget(self): self.task1_1.setBudget(date.TWO_HOURS) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task1.addEffort(effort.Effort(self.task1, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 11, 0, 0))) self.failUnless((date.TimeDelta(), self.task1) in events) def testNoBudgetLeftNotification_WhenChildTimeSpentChangesButNoBudget(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.task1_1.addEffort(effort.Effort(self.task1_1, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 11, 0, 0))) self.failIf(events) def testTimeSpentNotification_WhenChildTimeSpentChanges(self): childEffort = effort.Effort(self.task1_1, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 11, 0, 0)) self.task1_1.addEffort(childEffort) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.timeSpentChangedEventType()) childEffort.setStop(date.DateTime(2005, 1, 1, 12, 0, 0)) self.failUnless((self.task1.timeSpent(), self.task1) in events) def testRecursivePriorityNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task1_1.setPriority(10) self.assertEqual([(10, self.task1_1), (0, self.task1)], events) def testPriorityNotification_WithLowerChildPriority(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task1_1.setPriority(-1) self.assertEqual([(-1, self.task1_1), (0, self.task1)], events) def testRevenueNotificationWhenChildHasEffortAdded(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) self.task1_1.setHourlyFee(100) self.task1_1.addEffort(effort.Effort(self.task1_1, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 12, 0, 0))) self.failUnless((200, self.task1) in events) def testIsBeingTrackedRecursiveWhenChildIsNotTracked(self): self.failIf(self.task1.isBeingTracked(recursive=True)) def testIsBeingTrackedRecursiveWhenChildIsTracked(self): self.failIf(self.task1.isBeingTracked(recursive=True)) self.task1_1.addEffort(effort.Effort(self.task1_1)) self.failUnless(self.task1.isBeingTracked(recursive=True)) def testNotificationWhenChildIsBeingTracked(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task1.trackingChangedEventType()) activeEffort = effort.Effort(self.task1_1) self.task1_1.addEffort(activeEffort) self.assertEqual(set([(True, self.task1), (True, self.task1_1)]), set(events)) def testNotificationWhenChildTrackingStops(self): activeEffort = effort.Effort(self.task1_1) self.task1_1.addEffort(activeEffort) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.trackingChangedEventType()) activeEffort.setStop() self.assertEqual(set([(False, self.task), (False, self.task1_1)]), set(events)) def testSetFixedFeeOfChild(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.fixedFeeChangedEventType()) self.task1_1.setFixedFee(1000) self.failUnless((1000, self.task1) in events) def testGetFixedFeeRecursive(self): self.task.setFixedFee(2000) self.task1_1.setFixedFee(1000) self.assertEqual(3000, self.task.fixedFee(recursive=True)) def testRecursiveRevenueFromFixedFee(self): self.task.setFixedFee(2000) self.task1_1.setFixedFee(1000) self.assertEqual(3000, self.task.revenue(recursive=True)) def testForegroundColorChangeNotificationOfEfforts(self): self.registerObserver(effort.Effort.appearanceChangedEventType()) self.task.addEffort(effort.Effort(self.task)) self.task1_1.addEffort(effort.Effort(self.task1_1)) self.task.setForegroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testBackgroundColorChangeNotificationOfEfforts(self): self.registerObserver(effort.Effort.appearanceChangedEventType()) self.task.addEffort(effort.Effort(self.task)) self.task1_1.addEffort(effort.Effort(self.task1_1)) self.task.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testForegroundColorChangeNotificationOfEfforts_ViaCategory(self): self.registerObserver(effort.Effort.appearanceChangedEventType()) self.task.addEffort(effort.Effort(self.task)) self.task1_1.addEffort(effort.Effort(self.task1_1)) cat = category.Category('Cat') cat.addCategorizable(self.task) self.task.addCategory(cat) cat.setForegroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testBackgroundColorChangeNotificationOfEfforts_ViaCategory(self): self.registerObserver(effort.Effort.appearanceChangedEventType()) self.task.addEffort(effort.Effort(self.task)) self.task1_1.addEffort(effort.Effort(self.task1_1)) cat = category.Category('Cat') cat.addCategorizable(self.task) self.task.addCategory(cat) cat.setBackgroundColor(wx.RED) self.assertEqual(1, len(self.events)) def testChildUsesForegroundColorOfParentsCategory(self): cat = category.Category('Cat', fgColor=wx.RED) cat.addCategorizable(self.task) self.task.addCategory(cat) self.assertEqual(wx.RED, self.task1_1.foregroundColor(recursive=True)) def testPercentageCompleted(self): self.assertEqual(0, self.task.percentageComplete(recursive=True)) def testPercentageCompletedWhenChildIs50ProcentComplete(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.task1_1.setPercentageComplete(50) self.assertEqual(50, self.task.percentageComplete(recursive=True)) def testPercentageCompletedWhenChildIs50ProcentCompleteAndMarkCompletedWhenChildrenAreCompletedIsTurnedOff(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.task1_1.setPercentageComplete(50) self.assertEqual(25, self.task.percentageComplete(recursive=True)) def testPercentageCompletedWhenChildIs50ProcentCompleteAndGlobalMarkCompletedWhenChildrenAreCompletedIsTurnedOff(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', False) self.task1_1.setPercentageComplete(50) self.assertEqual(25, self.task.percentageComplete(recursive=True)) def testPercentageCompletedNotificationWhenChildPercentageChanges(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.percentageCompleteChangedEventType()) self.task1_1.setPercentageComplete(50) self.assertEqual([(50, self.task1_1), (50, self.task)], events) def testPercentageCompletedNotificationWhenMarkCompletedSettingChanges(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) self.task1_1.setPercentageComplete(50) pub.subscribe(onEvent, task.Task.percentageCompleteChangedEventType()) self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', False) self.assertEqual([(0, self.task)], events) def testIcon(self): self.assertEqual(getImagePlural(task.active.getBitmap(self.settings)), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(getImageOpen(getImagePlural(task.active.getBitmap(self.settings))), self.task.selectedIcon(recursive=True)) def testChildIcon(self): self.assertEqual(task.active.getBitmap(self.settings), self.task1_1.icon(recursive=True)) def testChildSelectedIcon(self): self.assertEqual(task.active.getBitmap(self.settings), self.task1_1.selectedIcon(recursive=True)) def testIconWithPluralVersion(self): self.task.setIcon('books_icon') self.assertEqual('books_icon', self.task.icon(recursive=True)) def testIconWithSingularVersion(self): self.task.setIcon('book_icon') self.assertEqual('books_icon', self.task.icon(recursive=True)) def testChildIsInactiveWhenParentHasPrerequisite(self): prerequisite = task.Task() self.task.addPrerequisites([prerequisite]) self.failUnless(self.task1_1.inactive()) def testChildIsNotActiveWhenParentHasPrerequisite(self): prerequisite = task.Task() self.task.addPrerequisites([prerequisite]) self.failIf(self.task1_1.active()) def testAddingPrerequisiteToParentRecomputesChildAppearance(self): # First make sure the icon is cached: self.assertEqual(task.active.getBitmap(self.settings), self.task1_1.icon(recursive=True)) prerequisite = task.Task() self.task.addPrerequisites([prerequisite]) self.assertEqual(task.inactive.getBitmap(self.settings), self.task1_1.icon(recursive=True)) def testSettingPrerequisitesOfParentRecomputesChildAppearance(self): # First make sure the icon is cached: self.assertEqual(task.active.getBitmap(self.settings), self.task1_1.icon(recursive=True)) prerequisite = task.Task() self.task.setPrerequisites([prerequisite]) self.assertEqual(task.inactive.getBitmap(self.settings), self.task1_1.icon(recursive=True)) def testRemovingPrerequisiteFromParentRecomputesChildAppearance(self): prerequisite = task.Task() self.task.addPrerequisites([prerequisite]) # First make sure the icon is cached: self.assertEqual(task.inactive.getBitmap(self.settings), self.task1_1.icon(recursive=True)) self.task.removePrerequisites([prerequisite]) self.assertEqual(task.late.getBitmap(self.settings), self.task1_1.icon(recursive=True)) def testCompletingPrerequisiteOfParentRecomputesChildAppearance(self): prerequisite = task.Task() self.task.addPrerequisites([prerequisite]) prerequisite.addDependencies([self.task]) # First make sure the icon is cached: self.assertEqual(task.inactive.getBitmap(self.settings), self.task1_1.icon(recursive=True)) prerequisite.setCompletionDateTime(date.Now()) self.assertEqual(task.late.getBitmap(self.settings), self.task1_1.icon(recursive=True)) class TaskWithTwoChildrenTest(TaskTestCase, CommonTaskTestsMixin, NoBudgetTestsMixin): def taskCreationKeywordArguments(self): return [{'children': [task.Task(subject='child1'), task.Task(subject='child2')]}] def testRemoveLastActiveChildCompletesParent(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(True) self.task1_1.setCompletionDateTime() self.task.removeChild(self.task1_2) self.failUnless(self.task.completed()) def testPercentageCompletedWhenOneChildIs50ProcentComplete(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.task1_1.setPercentageComplete(50) self.assertEqual(25, self.task.percentageComplete(recursive=True)) def testPercentageCompletedWhenOneChildIs50ProcentCompleteAndMarkCompletedWhenChildrenAreCompletedIsTurnedOff(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.task1_1.setPercentageComplete(50) self.assertEqual(int(100 / 6.), self.task.percentageComplete(recursive=True)) def testPercentageCompletedWhenOneChildIsComplete(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.task1_1.setPercentageComplete(100) self.assertEqual(50, self.task.percentageComplete(recursive=True)) def testPercentageCompletedWhenOneChildCompleteAndMarkCompletedWhenChildrenAreCompletedIsTurnedOff(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.task1_1.setPercentageComplete(100) self.assertEqual(33, self.task.percentageComplete(recursive=True)) class CompletedTaskWithChildTest(TaskTestCase): def taskCreationKeywordArguments(self): return [{'completionDateTime': date.Now(), 'children': [task.Task(subject='child')]}] def testIcon(self): self.assertEqual(getImagePlural(task.completed.getBitmap(self.settings)), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(getImagePlural(task.completed.getBitmap(self.settings)), self.task.selectedIcon(recursive=True)) class OverdueTaskWithChildTest(TaskTestCase): def taskCreationKeywordArguments(self): return [{'dueDateTime': self.yesterday, 'children': [task.Task(subject='child')]}] def testIcon(self): self.assertEqual(getImagePlural(task.overdue.getBitmap(self.settings)), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(getImageOpen(getImagePlural(task.overdue.getBitmap(self.settings))), self.task.selectedIcon(recursive=True)) def testDueDateTime(self): for recursive in (False, True): self.assertEqual(self.yesterday, self.task.dueDateTime(recursive=recursive)) class DuesoonTaskWithChildTest(TaskTestCase): def taskCreationKeywordArguments(self): return [{'dueDateTime': date.Now() + date.ONE_HOUR, 'children': [task.Task(subject='child')]}] def testIcon(self): self.assertEqual(getImagePlural(task.duesoon.getBitmap(self.settings)), self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual(getImageOpen(getImagePlural(task.duesoon.getBitmap(self.settings))), self.task.selectedIcon(recursive=True)) class TaskWithGrandChildTest(TaskTestCase, CommonTaskTestsMixin, NoBudgetTestsMixin): def taskCreationKeywordArguments(self): return [{}, {}, {}] def setUp(self): super(TaskWithGrandChildTest, self).setUp() self.task1.addChild(self.task2) self.task2.addChild(self.task3) def testTimeSpentRecursivelyIsZero(self): self.assertEqual(date.TimeDelta(), self.task.timeSpent(recursive=True)) class TaskWithOneEffortTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'efforts': [effort.Effort(None, date.DateTime(2005, 1, 1), date.DateTime(2005, 1, 2))]}] def testTimeSpentOnTaskEqualsEffortDuration(self): self.assertEqual(self.task1effort1.duration(), self.task.timeSpent()) def testTimeSpentRecursivelyOnTaskEqualsEffortDuration(self): self.assertEqual(self.task1effort1.duration(), self.task.timeSpent(recursive=True)) def testTimeSpentOnTaskIsZeroAfterRemovalOfEffort(self): self.task.removeEffort(self.task1effort1) self.assertEqual(date.TimeDelta(), self.task.timeSpent()) def testTaskEffortListContainsTheOneEffortAdded(self): self.assertEqual([self.task1effort1], self.task.efforts()) def testStartTrackingEffort(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task.trackingChangedEventType()) self.task1effort1.setStop(date.DateTime.max) self.assertEqual([(True, self.task)], events) def testStopTrackingEffort(self): self.task1effort1.setStop(date.DateTime.max) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task.trackingChangedEventType()) self.task1effort1.setStop() self.assertEqual([(False, self.task)], events) def testRevenueWithEffortButWithZeroFee(self): self.assertEqual(0, self.task.revenue()) def testNotifyEffortOfBackgroundColorChange(self): self.registerObserver(effort.Effort.appearanceChangedEventType()) self.task.setBackgroundColor(wx.RED) self.assertEvent(effort.Effort.appearanceChangedEventType(), self.task1effort1) class TaskWithTwoEffortsTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'efforts': [effort.Effort(None, date.DateTime(2005, 1, 1), date.DateTime(2005, 1, 2)), effort.Effort(None, date.DateTime(2005, 2, 1), date.DateTime(2005, 2, 2))]}] def setUp(self): super(TaskWithTwoEffortsTest, self).setUp() self.totalDuration = self.task1effort1.duration() + \ self.task1effort2.duration() def testTimeSpentOnTaskEqualsEffortDuration(self): self.assertEqual(self.totalDuration, self.task.timeSpent()) def testTimeSpentRecursivelyOnTaskEqualsEffortDuration(self): self.assertEqual(self.totalDuration, self.task.timeSpent(recursive=True)) class TaskWithActiveEffort(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'efforts': [effort.Effort(None, date.DateTime.now())], 'icon': 'bomb_icon'}] def testTaskIsBeingTracked(self): self.failUnless(self.task.isBeingTracked()) def testStopTracking(self): self.task.stopTracking() self.failIf(self.task.isBeingTracked()) def testNoStartTrackingEventBecauseActiveEffortWasAddedViaConstructor(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.trackingChangedEventType()) task.Task(efforts=[effort.Effort(None)]) self.failIf(events) def testNoStartTrackingEventAfterAddingASecondActiveEffort(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.trackingChangedEventType()) self.task.addEffort(effort.Effort(self.task)) self.failIf(events) def testNoStopTrackingEventAfterRemovingFirstOfTwoActiveEfforts(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.trackingChangedEventType()) secondEffort = effort.Effort(self.task) self.task.addEffort(secondEffort) self.task.removeEffort(secondEffort) self.failIf(events) def testRemoveActiveEffortShouldCauseStopTrackingEvent(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task.trackingChangedEventType()) self.task.removeEffort(self.task1effort1) self.assertEqual([(False, self.task)], events) def testStopTrackingEvent(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, self.task.trackingChangedEventType()) self.task.stopTracking() self.assertEqual([(False, self.task)], events) def testIcon(self): self.assertEqual('clock_icon', self.task.icon(recursive=True)) def testSelectedIcon(self): self.assertEqual('clock_icon', self.task.selectedIcon(recursive=True)) def testIconAfterStopTracking(self): self.task.stopTracking() self.assertNotEqual('clock_icon', self.task.icon(recursive=True)) def testSelectedIconAfterStopTracking(self): self.task.stopTracking() self.assertNotEqual('clock_icon', self.task.selectedIcon(recursive=True)) class TaskWithChildAndEffortTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'children': [task.Task(efforts=[effort.Effort(None, date.DateTime(2005, 2, 1), date.DateTime(2005, 2, 2))])], 'efforts': [effort.Effort(None, date.DateTime(2005, 1, 1), date.DateTime(2005, 1, 2))]}] def testTimeSpentOnTaskEqualsEffortDuration(self): self.assertEqual(self.task1effort1.duration(), self.task1.timeSpent()) def testTimeSpentRecursivelyOnTaskEqualsTotalEffortDuration(self): self.assertEqual(self.task1effort1.duration() + \ self.task1_1effort1.duration(), self.task1.timeSpent(recursive=True)) def testEffortsRecursive(self): self.assertEqual([self.task1effort1, self.task1_1effort1], self.task1.efforts(recursive=True)) def testRecursiveRevenue(self): self.task.setHourlyFee(100) self.task1_1.setHourlyFee(100) self.assertEqual(4800, self.task.revenue(recursive=True)) def testChildEffortBackgroundColorNotification(self): eventType = self.task1_1effort1.appearanceChangedEventType() self.registerObserver(eventType, self.task1_1effort1) self.task.setBackgroundColor(wx.RED) self.assertEvent(eventType, self.task1_1effort1) class TaskWithGrandChildAndEffortTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'children': [task.Task(children=[task.Task( \ efforts=[effort.Effort(None, date.DateTime(2005, 3, 1), date.DateTime(2005, 3, 2))])], efforts=[effort.Effort(None, date.DateTime(2005, 2, 1), date.DateTime(2005, 2, 2))])], 'efforts': [effort.Effort(None, date.DateTime(2005, 1, 1), date.DateTime(2005, 1, 2))]}] def testTimeSpentRecursivelyOnTaskEqualsTotalEffortDuration(self): self.assertEqual(self.task1effort1.duration() + \ self.task1_1effort1.duration() + \ self.task1_1_1effort1.duration(), self.task1.timeSpent(recursive=True)) def testEffortsRecursive(self): self.assertEqual([self.task1effort1, self.task1_1effort1, self.task1_1_1effort1], self.task1.efforts(recursive=True)) class TaskWithBudgetTest(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'budget': date.TWO_HOURS}] def setUp(self): super(TaskWithBudgetTest, self).setUp() self.oneHourEffort = effort.Effort(self.task, date.DateTime(2005, 1, 1, 13, 0), date.DateTime(2005, 1, 1, 14, 0)) def expectedBudget(self): return self.taskCreationKeywordArguments()[0]['budget'] def testBudget(self): self.assertEqual(self.expectedBudget(), self.task.budget()) def testBudgetLeft(self): self.assertEqual(self.expectedBudget(), self.task.budgetLeft()) def testBudgetLeftAfterHalfSpent(self): self.addEffort(date.ONE_HOUR) self.assertEqual(date.ONE_HOUR, self.task.budgetLeft()) def testBudgetLeftNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.budgetLeftChangedEventType()) self.addEffort(date.ONE_HOUR) self.assertEqual([(date.ONE_HOUR, self.task)], events) def testBudgetLeftAfterAllSpent(self): self.addEffort(date.TWO_HOURS) self.assertEqual(date.TimeDelta(), self.task.budgetLeft()) def testBudgetLeftWhenOverBudget(self): self.addEffort(date.TimeDelta(hours=3)) self.assertEqual(-date.ONE_HOUR, self.task.budgetLeft()) def testRecursiveBudget(self): self.assertEqual(self.expectedBudget(), self.task.budget(recursive=True)) def testRecursiveBudgetWithChildWithoutBudget(self): self.task.addChild(task.Task()) self.assertEqual(self.expectedBudget(), self.task.budget(recursive=True)) def testBudgetIsCopiedWhenTaskIsCopied(self): copy = self.task.copy() self.assertEqual(copy.budget(), self.task.budget()) self.task.setBudget(date.ONE_HOUR) self.assertEqual(date.TWO_HOURS, copy.budget()) class TaskReminderTestCase(TaskTestCase, CommonTaskTestsMixin): eventTypes = [task.Task.reminderChangedEventType()] def taskCreationKeywordArguments(self): return [{'reminder': date.DateTime(2005, 1, 1)}] def initialReminder(self): return self.taskCreationKeywordArguments()[0]['reminder'] def testReminder(self): self.assertReminder(self.initialReminder()) def testSetReminder(self): someOtherTime = date.DateTime(2005, 1, 2) self.task.setReminder(someOtherTime) for recursive in (False, True): self.assertReminder(someOtherTime, recursive=recursive) def testCancelReminder(self): self.task.setReminder() self.assertReminder(None) def testSnoozeReminder(self): snoozePeriod = date.ONE_HOUR now = date.Now() self.task.snoozeReminder(snoozePeriod, now=lambda: now) self.assertReminder(now + snoozePeriod) def testSnoozeReminderTwice(self): snoozePeriod = date.ONE_HOUR now = date.Now() self.task.snoozeReminder(snoozePeriod, now=lambda: now) self.task.snoozeReminder(snoozePeriod, now=lambda: now + snoozePeriod) self.assertReminder(now + 2 * snoozePeriod) def testSnoozeWhenReminderNotSet(self): self.task.setReminder() snoozePeriod = date.ONE_HOUR now = date.Now() self.task.snoozeReminder(snoozePeriod, now=lambda: now) self.assertReminder(now + snoozePeriod) def testSnoozeWithZeroTimeDelta(self): self.task.snoozeReminder(date.TimeDelta()) self.assertReminder(None) self.assertEqual(None, self.task.reminder(includeSnooze=False)) def testOriginalReminder(self): self.assertEqual(self.initialReminder(), self.task.reminder(includeSnooze=False)) def testOriginalReminderAfterSnooze(self): self.task.snoozeReminder(date.ONE_HOUR) self.assertEqual(self.initialReminder(), self.task.reminder(includeSnooze=False)) def testOriginalReminderAfterTwoSnoozes(self): self.task.snoozeReminder(date.ONE_HOUR) self.task.snoozeReminder(date.ONE_HOUR) self.assertEqual(self.initialReminder(), self.task.reminder(includeSnooze=False)) def testOriginalReminderAfterCancel(self): self.task.setReminder(None) self.assertEqual(None, self.task.reminder(includeSnooze=False)) def testCancelReminderWithMaxDateTime(self): self.task.setReminder(date.DateTime.max) self.assertReminder(None) def testTaskNotifiesObserverOfNewReminder(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.reminderChangedEventType()) newReminder = self.initialReminder() + date.ONE_SECOND self.task.setReminder(newReminder) self.assertEqual([(newReminder, self.task)], events) def testNewReminderCancelsPreviousReminder(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.reminderChangedEventType()) self.task.setReminder() self.assertEqual([(None, self.task)], events) def testMarkCompletedCancelsReminder(self): self.task.setCompletionDateTime() self.assertReminder(None) def testRecursiveReminder(self): self.assertEqual(self.initialReminder(), self.task.reminder(recursive=True)) def testRecursiveReminderWithChildWithoutReminder(self): self.task.addChild(task.Task()) self.assertEqual(self.initialReminder(), self.task.reminder(recursive=True)) def testRecursiveReminderWithChildWithLaterReminder(self): self.task.addChild(task.Task(reminder=date.DateTime(3000, 1, 1))) self.assertEqual(self.initialReminder(), self.task.reminder(recursive=True)) def testRecursiveReminderWithChildWithEarlierReminder(self): self.task.addChild(task.Task(reminder=date.DateTime(2000, 1, 1))) self.assertEqual(date.DateTime(2000, 1, 1), self.task.reminder(recursive=True)) class TaskSettingTestCase(TaskTestCase, CommonTaskTestsMixin): eventTypes = [task.Task.shouldMarkCompletedWhenAllChildrenCompletedChangedEventType(), task.Task.percentageCompleteChangedEventType()] class MarkTaskCompletedWhenAllChildrenCompletedSettingIsTrueFixture(TaskSettingTestCase): def taskCreationKeywordArguments(self): return [{'shouldMarkCompletedWhenAllChildrenCompleted': True}] def testSetting(self): self.assertEqual(True, self.task.shouldMarkCompletedWhenAllChildrenCompleted()) def testSetSetting(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.assertEqual(False, self.task.shouldMarkCompletedWhenAllChildrenCompleted()) def testSetSettingCausesNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.shouldMarkCompletedWhenAllChildrenCompletedChangedEventType()) self.task.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.assertEqual([(False, self.task)], events) def testSetSettingCausesPercentageCompleteNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.percentageCompleteChangedEventType()) # The calculation of the total percentage complete depends on whether # a task is marked completed when all its children are completed self.task.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.assertEqual([(0, self.task)], events) class MarkTaskCompletedWhenAllChildrenCompletedSettingIsFalseFixture(TaskTestCase): def taskCreationKeywordArguments(self): return [{'shouldMarkCompletedWhenAllChildrenCompleted': False}] def testSetting(self): self.assertEqual(False, self.task.shouldMarkCompletedWhenAllChildrenCompleted()) def testSetSetting(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(True) self.assertEqual(True, self.task.shouldMarkCompletedWhenAllChildrenCompleted()) class AttachmentTestCase(TaskTestCase, CommonTaskTestsMixin): eventTypes = [task.Task.attachmentsChangedEventType()] class TaskWithoutAttachmentFixture(AttachmentTestCase): def testRemoveNonExistingAttachmentRaisesNoException(self): self.task.removeAttachments('Non-existing attachment') def testAddEmptyListOfAttachments(self): self.task.addAttachments() self.failIf(self.events, self.events) class TaskWithAttachmentFixture(AttachmentTestCase): def taskCreationKeywordArguments(self): return [{'attachments': ['/home/frank/attachment.txt']}] def testAttachments(self): for index, name in enumerate(self.taskCreationKeywordArguments()[0]['attachments']): self.assertEqual(attachment.FileAttachment(name), self.task.attachments()[index]) def testRemoveNonExistingAttachment(self): self.task.removeAttachments('Non-existing attachment') for index, name in enumerate(self.taskCreationKeywordArguments()[0]['attachments']): self.assertEqual(attachment.FileAttachment(name), self.task.attachments()[index]) def testCopy_CreatesNewListOfAttachments(self): copy = self.task.copy() self.assertEqual(copy.attachments(), self.task.attachments()) self.task.removeAttachments(self.task.attachments()[0]) self.assertNotEqual(copy.attachments(), self.task.attachments()) def testCopy_CopiesIndividualAttachments(self): copy = self.task.copy() self.assertEqual(copy.attachments()[0].location(), self.task.attachments()[0].location()) self.task.attachments()[0].setDescription('new') # The location of a copy is actually the same; it's a filename # or URI. self.assertEqual(copy.attachments()[0].location(), self.task.attachments()[0].location()) class TaskWithAttachmentAddedTestCase(AttachmentTestCase): def setUp(self): super(TaskWithAttachmentAddedTestCase, self).setUp() self.attachment = attachment.FileAttachment('./test.txt') self.task.addAttachments(self.attachment) class TaskWithAttachmentAddedFixture(TaskWithAttachmentAddedTestCase): def testAddAttachment(self): self.failUnless(self.attachment in self.task.attachments()) def testNotification(self): self.failUnless(self.events) class TaskWithAttachmentRemovedFixture(TaskWithAttachmentAddedTestCase): def setUp(self): super(TaskWithAttachmentRemovedFixture, self).setUp() self.task.removeAttachments(self.attachment) def testRemoveAttachment(self): self.failIf(self.attachment in self.task.attachments()) def testNotification(self): self.assertEqual(2, len(self.events)) class RecursivePriorityFixture(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'priority': 1, 'children': [task.Task(priority=2)]}] def testPriority_RecursiveWhenChildHasLowestPriority(self): self.task1_1.setPriority(0) self.assertEqual(1, self.task1.priority(recursive=True)) def testPriority_RecursiveWhenParentHasLowestPriority(self): self.assertEqual(2, self.task1.priority(recursive=True)) def testPriority_RecursiveWhenChildHasHighestPriorityAndIsCompleted(self): self.task1_1.setCompletionDateTime() self.assertEqual(1, self.task1.priority(recursive=True)) def testPriorityNotificationWhenMarkingChildCompleted(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task1_1.setCompletionDateTime() self.assertEqual((1, self.task1), events[0]) def testPriorityNotificationWhenMarkingChildUncompleted(self): self.task1_1.setCompletionDateTime() events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.priorityChangedEventType()) self.task1_1.setCompletionDateTime(date.DateTime()) self.assertEqual((1, self.task1), events[0]) class TaskWithFixedFeeFixture(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'fixedFee': 1000}] def testSetFixedFeeViaContructor(self): self.assertEqual(1000, self.task.fixedFee()) def testRevenueFromFixedFee(self): self.assertEqual(1000, self.task.revenue()) class TaskWithHourlyFeeFixture(TaskTestCase, CommonTaskTestsMixin): def taskCreationKeywordArguments(self): return [{'subject': 'Task', 'hourlyFee': 100}] def setUp(self): super(TaskWithHourlyFeeFixture, self).setUp() self.effort = effort.Effort(self.task, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 11, 0, 0)) def testSetHourlyFeeViaConstructor(self): self.assertEqual(100, self.task.hourlyFee()) def testRevenue_WithoutEffort(self): self.assertEqual(0, self.task.revenue()) def testRevenue_WithOneHourEffort(self): self.task.addEffort(effort.Effort(self.task, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 11, 0, 0))) self.assertEqual(100, self.task.revenue()) def testRevenue_Notification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) self.task.addEffort(self.effort) self.assertEqual([(100, self.task)], events) def testRecursiveRevenue_Notification(self): child = task.Task('child', hourlyFee=100) self.task.addChild(child) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.revenueChangedEventType()) child.addEffort(effort.Effort(child, date.DateTime(2005, 1, 1, 10, 0, 0), date.DateTime(2005, 1, 1, 11, 0, 0))) self.failUnless((100, self.task) in events) def testAddingEffortDoesNotTriggerRevenueNotificationForEffort(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.revenueChangedEventType()) self.task.addEffort(self.effort) self.failIf(events) def testTaskNotifiesEffortObserversOfRevenueChange(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.revenueChangedEventType()) self.task.addEffort(self.effort) self.task.setHourlyFee(200) self.assertEqual([(200, self.effort)], events) class TaskWithCategoryTestCase(TaskTestCase): def taskCreationKeywordArguments(self): self.category = category.Category('category') # pylint: disable=W0201 return [dict(categories=set([self.category]))] def setUp(self): super(TaskWithCategoryTestCase, self).setUp() self.category.addCategorizable(self.task) def testCategory(self): self.assertEqual(set([self.category]), self.task.categories()) def testCategoryIcon(self): self.category.setIcon('icon') self.assertEqual('icon', self.task.icon(recursive=True)) def testCategorySelectedIcon(self): self.category.setSelectedIcon('icon') self.assertEqual('icon', self.task.selectedIcon(recursive=True)) class TaskColorTest(test.TestCase): def setUp(self): super(TaskColorTest, self).setUp() self.settings = task.Task.settings = config.Settings(load=False) self.yesterday = date.Yesterday() self.tomorrow = date.Tomorrow() def testDefaultTask(self): self.assertEqual(wx.Colour(192, 192, 192), task.Task().statusFgColor()) def testCompletedTask(self): completed = task.Task() completed.setCompletionDateTime() self.assertEqual(wx.GREEN, completed.statusFgColor()) def testOverDueTask(self): overdue = task.Task(dueDateTime=self.yesterday) self.assertEqual(wx.RED, overdue.statusFgColor()) def testDueTodayTask(self): duetoday = task.Task(dueDateTime=date.Now() + date.ONE_HOUR) self.assertEqual(wx.Colour(255, 128, 0), duetoday.statusFgColor()) def testDueTomorrow(self): duetomorrow = task.Task(dueDateTime=self.tomorrow + date.ONE_HOUR) self.assertEqual(wx.Colour(192, 192, 192), duetomorrow.statusFgColor()) def testActive(self): active = task.Task(actualStartDateTime=date.Now()) self.assertEqual(wx.Colour(*eval(self.settings.get('fgcolor', 'activetasks'))), active.statusFgColor()) def testActiveTaskWithCategory(self): activeTask = task.Task(actualStartDateTime=date.Now()) redCategory = category.Category(subject='Red category', fgColor=wx.RED) activeTask.addCategory(redCategory) redCategory.addCategorizable(activeTask) self.assertEqual(wx.RED, activeTask.foregroundColor(recursive=True)) class TaskWithPrerequisite(TaskTestCase): def taskCreationKeywordArguments(self): self.prerequisite = task.Task(subject='prerequisite') # pylint: disable=W0201 return [dict(subject='task', prerequisites=[self.prerequisite])] def testTaskHasPrerequisite(self): self.failUnless(self.prerequisite in self.task.prerequisites()) def testDependencyHasNotBeenSetAutomatically(self): self.failIf(self.task in self.prerequisite.dependencies()) def testRemovePrerequisite(self): self.task.removePrerequisites([self.prerequisite]) self.failIf(self.task.prerequisites()) def testRemovePrerequisiteNotInPrerequisites(self): self.task.removePrerequisites([task.Task()]) self.failUnless(self.prerequisite in self.task.prerequisites()) def testRemovePrerequisiteNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.prerequisitesChangedEventType()) self.task.removePrerequisites([self.prerequisite]) self.assertEqual([(set([]), self.task)], events) def testSetPrerequisitesRemovesOldPrerequisites(self): newPrerequisites = set([task.Task()]) self.task.setPrerequisites(newPrerequisites) self.assertEqual(newPrerequisites, self.task.prerequisites()) def testDontCopyPrerequisites(self): self.failIf(self.prerequisite in self.task.copy().prerequisites()) def testPrerequisiteSubjectChangedNotification(self): self.prerequisite.addDependencies([self.task]) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.prerequisitesChangedEventType()) self.prerequisite.setSubject('New subject') self.assertEqual([(set([self.prerequisite]), self.task)], events) def testAppearanceNotificationAfterMarkingPrerequisiteCompleted(self): self.prerequisite.addDependencies([self.task]) eventType = self.task.appearanceChangedEventType() self.registerObserver(eventType, eventSource=self.task) self.prerequisite.setCompletionDateTime(date.Now()) self.assertEvent(eventType, self.task) class TaskWithDependency(TaskTestCase): def taskCreationKeywordArguments(self): self.dependency = task.Task(subject='dependency') # pylint: disable=W0201 return [dict(subject='task', dependencies=[self.dependency])] def testTaskHasDependency(self): self.failUnless(self.dependency in self.task.dependencies()) def testPrerequisiteHasNotBeenSetAutomatically(self): self.failIf(self.task in self.dependency.prerequisites()) def testRemoveDependency(self): self.task.removeDependencies([self.dependency]) self.failIf(self.task.dependencies()) def testRemoveDependencyNotInDependencies(self): self.task.removeDependencies([task.Task()]) self.failUnless(self.dependency in self.task.dependencies()) def testRemoveDependencyNotification(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.dependenciesChangedEventType()) self.task.removeDependencies([self.dependency]) self.assertEqual([(set(), self.task)], events) def testSetDependenciesRemovesOldDependencies(self): newDependencies = set([task.Task()]) self.task.setDependencies(newDependencies) self.assertEqual(newDependencies, self.task.dependencies()) def testDontCopyDependencies(self): self.failIf(self.dependency in self.task.copy().dependencies()) def testDependencySubjectChangedNotification(self): self.dependency.addPrerequisites([self.task]) events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, task.Task.dependenciesChangedEventType()) self.dependency.setSubject('New subject') self.assertEqual([(set([self.dependency]), self.task)], events) class TaskSuggestedDateTimeBaseSetupAndTests(object): def setUp(self): # pylint: disable=W0142 self.settings = task.Task.settings = config.Settings(load=False) self.changeSettings() self.now = now = date.Now() tomorrow = now + date.ONE_DAY dayAfterTomorrow = tomorrow + date.ONE_DAY currentTimeKwArgs = dict(hour=now.hour, minute=now.minute, second=now.second, microsecond=now.microsecond) nextFriday = tomorrow.endOfWorkWeek().replace(**currentTimeKwArgs) nextMonday = (now + date.ONE_WEEK).startOfWorkWeek().replace(**currentTimeKwArgs) startOfWorkingDayHour = self.settings.getint('view', 'efforthourstart') startOfWorkingDayKwArgs = dict(hour=startOfWorkingDayHour, minute=0, second=0, microsecond=0) endOfWorkingDayHour = self.settings.getint('view', 'efforthourend') if endOfWorkingDayHour == 24: endOfWorkingDayHour = 23 minute = 59 second = 59 else: minute = 0 second = 0 endOfWorkingDayKwArgs = dict(hour=endOfWorkingDayHour, minute=minute, second=second, microsecond=0) startOfWorkingDay = now.replace(**startOfWorkingDayKwArgs) endOfWorkingDay = now.replace(**endOfWorkingDayKwArgs) startOfWorkingTomorrow = tomorrow.replace(**startOfWorkingDayKwArgs) endOfWorkingTomorrow = tomorrow.replace(**endOfWorkingDayKwArgs) startOfWorkingDayAfterTomorrow = dayAfterTomorrow.replace(**startOfWorkingDayKwArgs) endOfWorkingDayAfterTomorrow = dayAfterTomorrow.replace(**endOfWorkingDayKwArgs) startOfWorkingNextFriday = nextFriday.replace(**startOfWorkingDayKwArgs) endOfWorkingNextFriday = nextFriday.replace(**endOfWorkingDayKwArgs) startOfWorkingNextMonday = nextMonday.replace(**startOfWorkingDayKwArgs) endOfWorkingNextMonday = nextMonday.replace(**endOfWorkingDayKwArgs) self.times = dict(today_startofday=now.startOfDay(), today_startofworkingday=startOfWorkingDay, today_currenttime=now, today_endofworkingday=endOfWorkingDay, today_endofday=now.endOfDay(), tomorrow_startofday=tomorrow.startOfDay(), tomorrow_startofworkingday=startOfWorkingTomorrow, tomorrow_currenttime=tomorrow, tomorrow_endofworkingday=endOfWorkingTomorrow, tomorrow_endofday=tomorrow.endOfDay(), dayaftertomorrow_startofday=dayAfterTomorrow.startOfDay(), dayaftertomorrow_startofworkingday=startOfWorkingDayAfterTomorrow, dayaftertomorrow_currenttime=dayAfterTomorrow, dayaftertomorrow_endofworkingday=endOfWorkingDayAfterTomorrow, dayaftertomorrow_endofday=dayAfterTomorrow.endOfDay(), nextfriday_startofday=nextFriday.startOfDay(), nextfriday_startofworkingday=startOfWorkingNextFriday, nextfriday_currenttime=nextFriday, nextfriday_endofworkingday=endOfWorkingNextFriday, nextfriday_endofday=nextFriday.endOfDay(), nextmonday_startofday=nextMonday.startOfDay(), nextmonday_startofworkingday=startOfWorkingNextMonday, nextmonday_currenttime=nextMonday, nextmonday_endofworkingday=endOfWorkingNextMonday, nextmonday_endofday=nextMonday.endOfDay()) def changeSettings(self): pass def testSuggestedPlannedStartDateTime(self): for timeValue, expectedDateTime in self.times.items(): self.settings.set('view', 'defaultplannedstartdatetime', 'preset_' + timeValue) self.assertEqual(expectedDateTime, task.Task.suggestedPlannedStartDateTime(lambda: self.now)) def testSuggestedActualStartDateTime(self): for timeValue, expectedDateTime in self.times.items(): self.settings.set('view', 'defaultactualstartdatetime', 'preset_' + timeValue) self.assertEqual(expectedDateTime, task.Task.suggestedActualStartDateTime(lambda: self.now)) def testSuggestedDueDateTime(self): for timeValue, expectedDateTime in self.times.items(): self.settings.set('view', 'defaultduedatetime', 'propose_' + timeValue) self.assertEqual(expectedDateTime, task.Task.suggestedDueDateTime(lambda: self.now)) def testSuggestedCompletionDateTime(self): for timeValue, expectedDateTime in self.times.items(): self.settings.set('view', 'defaultcompletiondatetime', 'preset_' + timeValue) self.assertEqual(expectedDateTime, task.Task.suggestedCompletionDateTime(lambda: self.now), 'Expected %s, but got %s, with default completion date time ' 'set to %s' % (expectedDateTime, task.Task.suggestedCompletionDateTime(lambda: self.now), 'preset_' + timeValue)) def testSuggestedReminderDateTime(self): for timeValue, expectedDateTime in self.times.items(): self.settings.set('view', 'defaultreminderdatetime', 'propose_' + timeValue) self.assertEqual(expectedDateTime, task.Task.suggestedReminderDateTime(lambda: self.now)) class TaskSuggestedDateTimeTestWithDefaultStartAndEndOfWorkingDay( \ TaskSuggestedDateTimeBaseSetupAndTests, test.TestCase): pass class TaskSuggestedDateTimeTestWithStartAndEndOfWorkingDayEqualToDay( \ TaskSuggestedDateTimeBaseSetupAndTests, test.TestCase): def changeSettings(self): self.settings.setint('view', 'efforthourstart', 0) self.settings.setint('view', 'efforthourend', 24) class TaskConstructionTest(test.TestCase): def testActualStartDateTimeIsNotDeterminedByEffortsWhenMissing(self): newTask = task.Task(efforts=[effort.Effort(None, date.DateTime(2000, 1, 1))]) self.assertEqual(date.DateTime(), newTask.actualStartDateTime()) def testActualStartDateTimeIsNotDeterminedByEffortsWhenPassingAnActualStartDateTime(self): newTask = task.Task(actualStartDateTime=date.DateTime(2010, 1, 1), efforts=[effort.Effort(None, date.DateTime(2000, 1, 1))]) self.assertEqual(date.DateTime(2010, 1, 1), newTask.actualStartDateTime()) class TaskScheduledTest(TaskTestCase): def setUp(self): super(TaskScheduledTest, self).setUp([('behavior', 'duesoonhours', 1)]) def taskCreationKeywordArguments(self): return [{'dueDateTime': date.Now() + date.TWO_HOURS, 'plannedStartDateTime': date.Now() + date.ONE_HOUR}] def testOverDueIsScheduled(self): self.failUnless(date.Scheduler().is_scheduled(self.task.onOverDue)) def testStartedIsScheduled(self): self.failUnless(date.Scheduler().is_scheduled(self.task.onTimeToStart)) def testDueSoonIsScheduled(self): self.failUnless(date.Scheduler().is_scheduled(self.task.onDueSoon)) class TaskNotScheduledTest(TaskTestCase): def setUp(self): super(TaskNotScheduledTest, self).setUp([('behavior', 'duesoonhours', 1)]) def taskCreationKeywordArguments(self): return [{'subject': 'Task'}, {'dueDateTime': date.Now() - date.ONE_HOUR}] def testOverDueIsNotScheduled(self): self.failIf(date.Scheduler().is_scheduled(self.task.onOverDue)) def testOverdueIsNotScheduledBecauseTooLate(self): self.failIf(date.Scheduler().is_scheduled(self.tasks[1].onOverDue)) def testStartedIsNotScheduled(self): self.failIf(date.Scheduler().is_scheduled(self.task.onTimeToStart)) def testDueSoonIsNotScheduled(self): self.failIf(date.Scheduler().is_scheduled(self.task.onDueSoon)) taskcoach-1.4.3/tests/unittests/domainTests/TimeDeltaTest.py000066400000000000000000000121771265347643000242610ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.domain import date class TimeDeltaTest(test.TestCase): def testHours(self): timedelta = date.TimeDelta(hours=2, minutes=15) self.assertEqual(2.25, timedelta.hours()) def testMillisecondsInOneSecond(self): timedelta = date.TimeDelta(seconds=1) self.assertEqual(1000, timedelta.milliseconds()) def testMillisecondsInOneHour(self): timedelta = date.TimeDelta(hours=1) self.assertEqual(60*60*1000, timedelta.milliseconds()) def testMillisecondsInOneDay(self): timedelta = date.TimeDelta(days=1) self.assertEqual(24*60*60*1000, timedelta.milliseconds()) def testMillisecondsInOneMicrosecond(self): timedelta = date.TimeDelta(microseconds=1) self.assertEqual(0, timedelta.milliseconds()) def testMillisecondsIn500Microseconds(self): timedelta = date.TimeDelta(microseconds=500) self.assertEqual(1, timedelta.milliseconds()) def testRoundTo5Seconds_Down(self): timedelta = date.TimeDelta(seconds=1, milliseconds=400) self.assertEqual(date.TimeDelta(seconds=0), timedelta.round(seconds=5)) def testRoundTo5Seconds_Up(self): timedelta = date.TimeDelta(seconds=3, milliseconds=500) self.assertEqual(date.TimeDelta(seconds=5), timedelta.round(seconds=5)) def testRoundTo5Seconds_AlwaysUp(self): timedelta = date.TimeDelta(seconds=1, milliseconds=100) self.assertEqual(date.TimeDelta(seconds=5), timedelta.round(seconds=5, alwaysUp=True)) def testRoundTo10Seconds_Down(self): timedelta = date.TimeDelta(seconds=4, milliseconds=400) self.assertEqual(date.TimeDelta(seconds=0), timedelta.round(seconds=10)) def testRoundTo10Seconds_Up(self): timedelta = date.TimeDelta(seconds=16, milliseconds=400) self.assertEqual(date.TimeDelta(seconds=20), timedelta.round(seconds=10)) def testRoundTo10Seconds_AlwaysUp(self): timedelta = date.TimeDelta(seconds=11) self.assertEqual(date.TimeDelta(seconds=20), timedelta.round(seconds=10, alwaysUp=True)) def testRoundTo5Minutes_Down(self): timedelta = date.TimeDelta(minutes=10, seconds=30) self.assertEqual(date.TimeDelta(minutes=10), timedelta.round(minutes=5)) def testRoundTo5Minutes_Up(self): timedelta = date.TimeDelta(minutes=8, seconds=30) self.assertEqual(date.TimeDelta(minutes=10), timedelta.round(minutes=5)) def testRoundTo5Minutes_AlwaysUp(self): timedelta = date.TimeDelta(minutes=6, seconds=30) self.assertEqual(date.TimeDelta(minutes=10), timedelta.round(minutes=5, alwaysUp=True)) def testRoundTo5Minutes_Big(self): timedelta = date.TimeDelta(days=10, minutes=10, seconds=30) self.assertEqual(date.TimeDelta(days=10, minutes=10), timedelta.round(minutes=5)) def testRoundTo15Minutes_Down(self): timedelta = date.TimeDelta(days=1, hours=10, minutes=7) self.assertEqual(date.TimeDelta(days=1, hours=10), timedelta.round(minutes=15)) def testRoundTo15Minutes_AlwaysUp(self): timedelta = date.TimeDelta(days=1, hours=10, minutes=7) self.assertEqual(date.TimeDelta(days=1, hours=10, minutes=15), timedelta.round(minutes=15, alwaysUp=True)) def testRoundTo30Minutes_Up(self): timedelta = date.TimeDelta(days=1, hours=10, minutes=15) self.assertEqual(date.TimeDelta(days=1, hours=10, minutes=30), timedelta.round(minutes=30)) def testRoundTo30Minutes_AlwaysUp(self): timedelta = date.TimeDelta(days=1, hours=10, minutes=14) self.assertEqual(date.TimeDelta(days=1, hours=10, minutes=30), timedelta.round(minutes=30, alwaysUp=True)) def testRoundTo1Hour_Down(self): timedelta = date.TimeDelta(days=1, hours=10, minutes=7) self.assertEqual(date.TimeDelta(days=1, hours=10), timedelta.round(hours=1)) def testRoundTo1Hour_Up(self): timedelta = date.TimeDelta(days=1, hours=10, minutes=30) self.assertEqual(date.TimeDelta(days=1, hours=11), timedelta.round(hours=1)) def testRoundTo1Hour_AlwaysUp(self): timedelta = date.TimeDelta(days=1, hours=10, minutes=1) self.assertEqual(date.TimeDelta(days=1, hours=11), timedelta.round(hours=1, alwaysUp=True)) taskcoach-1.4.3/tests/unittests/domainTests/__init__.py000066400000000000000000000013331265347643000233000ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/dummy.py000066400000000000000000000046331265347643000204100ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx from taskcoachlib import persistence, gui class Event(object): def Skip(self): pass class DummyWidget(wx.Frame): def __init__(self, viewer): super(DummyWidget, self).__init__(viewer) self.viewer = viewer def RefreshItems(self, *items): pass def curselection(self): return [] def select(self, *args): pass def clear_selection(self): pass def GetItemCount(self): return len(self.viewer.presentation()) def RefreshAllItems(self, *args, **kwargs): pass def IsAutoResizing(self): return False def GetMainWindow(self): return self def Bind(self, *args, **kwargs): pass class DummyUICommand(gui.uicommand.UICommand): # pylint: disable=W0223 bitmap = 'undo' section = 'view' setting = 'setting' def onCommandActivate(self, event): self.activated = True # pylint: disable=W0201 class ViewerWithDummyWidget(gui.viewer.base.Viewer): # pylint: disable=W0223 defaultTitle = 'ViewerWithDummyWidget' defaultBitmap = '' def domainObjectsToView(self): return self.taskFile.tasks() def createWidget(self): self._columns = self._createColumns() # pylint: disable=W0201 return DummyWidget(self) def _createColumns(self): return [] class TaskFile(persistence.TaskFile): raiseError = None def load(self, *args, **kwargs): # pylint: disable=W0613 if self.raiseError: raise self.raiseError # pylint: disable=E0702 merge = save = saveas = load class MainWindow: # pylint: disable=W0232 showFindDialog = None taskcoach-1.4.3/tests/unittests/guiTests/000077500000000000000000000000001265347643000205045ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/guiTests/AmountEntryTest.py000066400000000000000000000022441265347643000242050ustar00rootroot00000000000000# -*- coding: UTF-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.gui.dialog import entry class AmountEntryTest(test.wxTestCase): def setUp(self): super(AmountEntryTest, self).setUp() self.amountEntry = entry.AmountEntry(self.frame) def testCreate(self): self.assertEqual(0.0, self.amountEntry.GetValue()) def testSetValue(self): self.amountEntry.SetValue(1.0) self.assertEqual(1.0, self.amountEntry.GetValue()) taskcoach-1.4.3/tests/unittests/guiTests/AttachmentEditorTest.py000066400000000000000000000057061265347643000251650ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import gui, config, persistence, operating_system from taskcoachlib.domain import attachment class DummyEvent(object): def Skip(self): # pragma: no cover pass class AttachmentEditorTest(test.wxTestCase): def setUp(self): super(AttachmentEditorTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.attachment = attachment.FileAttachment('Attachment') self.attachments = attachment.AttachmentList() self.attachments.append(self.attachment) self.editor = gui.dialog.editor.AttachmentEditor(self.frame, self.attachments, self.settings, self.attachments, self.taskFile) def tearDown(self): super(AttachmentEditorTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def setSubject(self, newSubject): page = self.editor._interior[0] page._subjectEntry.SetFocus() page._subjectEntry.SetValue(newSubject) if operating_system.isGTK(): # pragma: no cover page._subjectSync.onAttributeEdited(DummyEvent()) else: # pragma: no cover page._descriptionEntry.SetFocus() def setDescription(self, newDescription): page = self.editor._interior[0] page._descriptionEntry.SetFocus() page._descriptionEntry.SetValue(newDescription) if operating_system.isGTK(): # pragma: no cover page._descriptionSync.onAttributeEdited(DummyEvent()) else: # pragma: no cover page._subjectEntry.SetFocus() def testCreate(self): # pylint: disable=W0212 self.assertEqual('Attachment', self.editor._interior[0]._subjectEntry.GetValue()) def testEditSubject(self): self.setSubject('Done') self.assertEqual('Done', self.attachment.subject()) def testEditDescription(self): self.setDescription('Description') self.assertEqual('Description', self.attachment.description()) def testAddNote(self): viewer = self.editor._interior[1].viewer viewer.newItemCommand(viewer.presentation()).do() self.assertEqual(1, len(self.attachment.notes())) # pylint: disable=E1101 taskcoach-1.4.3/tests/unittests/guiTests/AttachmentViewerTest.py000066400000000000000000000045751265347643000252030ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib import gui, config, persistence from taskcoachlib.domain import attachment class AttachmentViewerTest(test.wxTestCase): def setUp(self): settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() attachments = attachment.AttachmentList() self.viewer = gui.viewer.AttachmentViewer(self.frame, self.taskFile, settings, attachmentsToShow=attachments, settingsSection='attachmentviewer') def tearDown(self): super(AttachmentViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def assertIcon(self, expectedIcon, anAttachment, **kwargs): self.assertEqual(self.viewer.imageIndex[expectedIcon], self.viewer.typeImageIndices(anAttachment, **kwargs)[wx.TreeItemIcon_Normal]) def testTypeImageIndex_WhenFileDoesNotExist(self): fileAttachment = attachment.FileAttachment('whatever') self.assertIcon('fileopen_red', fileAttachment) def testTypeImageIndex_WhenFileDoesExist(self): fileAttachment = attachment.FileAttachment('whatever') self.assertIcon('fileopen', fileAttachment, exists=lambda filename: True) def testTypeImageIndex_UriAttachment(self): uriAttachment = attachment.URIAttachment('http://whatever.we') self.assertIcon('earth_blue_icon', uriAttachment) def testTypeImgeIndex_MailAttachment(self): mailAttachment = attachment.MailAttachment('', readMail=lambda location: ('', '')) self.assertIcon('envelope_icon', mailAttachment) taskcoach-1.4.3/tests/unittests/guiTests/CategoryEditorTest.py000077500000000000000000000103651265347643000246520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from taskcoachlib import gui, config, persistence, operating_system from taskcoachlib.domain import category, attachment class DummyEvent(object): def Skip(self): # pragma: no cover pass class CategoryEditorTest(test.wxTestCase): def setUp(self): super(CategoryEditorTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.categories = self.taskFile.categories() self.categories.extend(self.createCategories()) self.editor = gui.dialog.editor.CategoryEditor(self.frame, list(self.categories), self.settings, self.categories, self.taskFile) def tearDown(self): # CategoryEditor uses CallAfter for setting the focus, make sure those # calls are dealt with, otherwise they'll turn up in other tests if operating_system.isGTK(): wx.Yield() # pragma: no cover super(CategoryEditorTest, self).tearDown() self.taskFile.close() self.taskFile.stop() # pylint: disable=E1101,E1103,W0212 def createCategories(self): # pylint: disable=W0201 self.category = category.Category('Category to edit') self.attachment = attachment.FileAttachment('some attachment') self.category.addAttachments(self.attachment) return [self.category] def setSubject(self, newSubject): page = self.editor._interior[0] page._subjectEntry.SetFocus() page._subjectEntry.SetValue(newSubject) if operating_system.isGTK(): # pragma: no cover page._subjectSync.onAttributeEdited(DummyEvent()) else: # pragma: no cover page._descriptionEntry.SetFocus() def setDescription(self, newDescription): page = self.editor._interior[0] page._descriptionEntry.SetFocus() page._descriptionEntry.SetValue(newDescription) if operating_system.isGTK(): # pragma: no cover page._descriptionSync.onAttributeEdited(DummyEvent()) else: # pragma: no cover page._subjectEntry.SetFocus() def testCreate(self): self.assertEqual('Category to edit', self.editor._interior[0]._subjectEntry.GetValue()) def testEditSubject(self): self.setSubject('Done') self.assertEqual('Done', self.category.subject()) def testEditDescription(self): self.setDescription('Description') self.assertEqual('Description', self.category.description()) def testAddAttachment(self): self.editor._interior[2].viewer.onDropFiles(self.category, ['filename']) self.failUnless('filename' in [att.location() for att in self.category.attachments()]) self.failUnless('filename' in [att.subject() for att in self.category.attachments()]) def testRemoveAttachment(self): self.editor._interior[2].viewer.select(self.category.attachments()) self.editor._interior[2].viewer.deleteItemCommand().do() self.assertEqual([], self.category.attachments()) def testEditMutualExclusiveSubcategories(self): self.editor._interior[0]._exclusiveSubcategoriesCheckBox.SetValue(True) self.editor._interior[0]._exclusiveSubcategoriesSync.onAttributeEdited(DummyEvent()) self.failUnless(self.category.hasExclusiveSubcategories()) def testAddNote(self): viewer = self.editor._interior[1].viewer viewer.newItemCommand(viewer.presentation()).do() self.assertEqual(1, len(self.category.notes())) taskcoach-1.4.3/tests/unittests/guiTests/CategoryViewerTest.py000077500000000000000000000053401265347643000246620ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib import gui, config, persistence from taskcoachlib.domain import category class CategoryViewerTest(test.wxTestCase): def setUp(self): super(CategoryViewerTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.categories = self.taskFile.categories() self.viewer = gui.viewer.CategoryViewer(self.frame, self.taskFile, self.settings) def tearDown(self): super(CategoryViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def addTwoCategories(self): cat1 = category.Category('1') cat2 = category.Category('2') self.categories.extend([cat2, cat1]) return cat1, cat2 def testInitialSize(self): self.assertEqual(0, self.viewer.size()) def testCopyCategoryWithChildren(self): parent, child = self.addTwoCategories() parent.addChild(child) copy = parent.copy() self.categories.append(copy) self.viewer.expandAll() self.assertEqual(4, self.viewer.size()) def testSortInWidget(self): self.addTwoCategories() widget = self.viewer.widget for item, cat in zip(widget.GetItemChildren(), self.viewer.presentation()): self.assertEqual(cat.subject(), widget.GetItemText(item)) def testSelectAll(self): self.addTwoCategories() self.viewer.widget.select_all() self.viewer.updateSelection() self.assertEqual(2, len(self.viewer.curselection())) def testFilterOnAllCheckedCategoriesSetsSetting(self): self.viewer.filterUICommand.doChoice(True) self.failUnless(self.settings.getboolean('view', 'categoryfiltermatchall')) def testFilterOnAnyCheckedCategoriesSetsSetting(self): self.viewer.filterUICommand.doChoice(False) self.failIf(self.settings.getboolean('view', 'categoryfiltermatchall')) taskcoach-1.4.3/tests/unittests/guiTests/DateTimeEntryTest.py000066400000000000000000000073131265347643000244400ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.gui.dialog import entry from taskcoachlib.domain import date from taskcoachlib import config class DateTimeEntryTest(test.wxTestCase): def setUp(self): super(DateTimeEntryTest, self).setUp() self.dateTimeEntry = entry.DateTimeEntry(self.frame, config.Settings(load=False)) self.dateTime = date.DateTime(2004, 1, 1) def testCreate(self): self.assertEqual(date.DateTime(), self.dateTimeEntry.GetValue()) def testSet(self): now = date.Now() self.dateTimeEntry.SetValue(now) self.assertAlmostEqual(now.toordinal(), self.dateTimeEntry.GetValue().toordinal(), places=2) def testReset(self): self.dateTimeEntry.SetValue() self.assertEqual(date.DateTime(), self.dateTimeEntry.GetValue()) def testValidDateTime(self): self.dateTimeEntry.SetValue(self.dateTime) self.assertEqual(self.dateTime, self.dateTimeEntry.GetValue()) class DateEntryConstructorTest(test.wxTestCase): def testCreateWithDate(self): tomorrow = date.Tomorrow() dateTimeEntry = entry.DateTimeEntry(self.frame, config.Settings(load=False), tomorrow) self.assertAlmostEqual(tomorrow.toordinal(), dateTimeEntry.GetValue().toordinal(), places=2) class TimeDeltaEntryTest(test.wxTestCase): def setUp(self): super(TimeDeltaEntryTest, self).setUp() self.timeDeltaEntry = entry.TimeDeltaEntry(self.frame) def testDefaultValue(self): self.assertEqual(date.TimeDelta(), self.timeDeltaEntry.GetValue()) def testDefaultDisplayedValue(self): self.assertEqual(' 0:00:00', self.timeDeltaEntry._entry.GetValue()) def testSetValue(self): self.timeDeltaEntry.SetValue(date.TimeDelta(hours=10, seconds=5)) self.assertEqual(' 10:00:05', self.timeDeltaEntry._entry.GetValue()) def testOverflow(self): self.timeDeltaEntry.SetValue(date.TimeDelta(hours=12345678912)) self.assertEqual('123456789:00:00', self.timeDeltaEntry._entry.GetValue()) class ReadOnlyTimeDeltaEntryTest(test.wxTestCase): def setUp(self): super(ReadOnlyTimeDeltaEntryTest, self).setUp() self.timeDeltaEntry = entry.TimeDeltaEntry(self.frame, readonly=True) def testSetNegativeValue(self): self.timeDeltaEntry.SetValue(date.TimeDelta(hours=-10, minutes=-20)) self.assertEqual(' -10:20:00', self.timeDeltaEntry._entry.GetValue()) def testSetSmallNegativeValue(self): self.timeDeltaEntry.SetValue(date.TimeDelta(seconds=-4)) self.assertEqual(' -0:00:04', self.timeDeltaEntry._entry.GetValue()) taskcoach-1.4.3/tests/unittests/guiTests/DeveloperMessageDialogTest.py000066400000000000000000000027551265347643000263010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import config from taskcoachlib.gui.dialog import developer_message import test class DeveloperMessageDialogTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) self.dialog = developer_message.MessageDialog(None, message='Message', url='http://a.b', settings=self.settings) def testDialogContainsMessage(self): self.assertEqual('Message', self.dialog.GetChildren()[0].GetChildren()[0].GetLabel()) def testDialogContainsURL(self): self.assertEqual('http://a.b', self.dialog.GetChildren()[0]. \ GetChildren()[1].GetChildren()[1].GetURL()) taskcoach-1.4.3/tests/unittests/guiTests/EditorTest.py000066400000000000000000000146251265347643000231540ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from taskcoachlib import gui, config, persistence from taskcoachlib.domain import note, base from unittests import dummy class EditorUnderTest(gui.dialog.editor.NoteEditor): def __init__(self, *args, **kwargs): kwargs['call_after'] = lambda f, *args, **kwargs: f(*args, **kwargs) super(EditorUnderTest, self).__init__(*args, **kwargs) self.editorClosed = False def on_close_editor(self, event): self.editorClosed = True super(EditorUnderTest, self).on_close_editor(event) class EditorTestCase(test.wxTestCase): def setUp(self): super(EditorTestCase, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.items = base.filter.SearchFilter(self.taskFile.notes()) self.item = note.Note(subject='item') self.items.append(self.item) self.editor = EditorUnderTest(self.frame, [self.item], self.settings, self.items, self.taskFile) self.appearance = self.editor._interior[-1] def tearDown(self): super(EditorTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() def testCloseEditorWhenItemIsDeleted(self): self.items.remove(self.item) self.failUnless(self.editor.editorClosed) def testDontCloseEditorWhenItemIsFiltered(self): self.items.setSearchFilter('abc') self.failIf(self.editor.editorClosed) def testVeryLongSubject(self): longSubject = 'Subject' * 1000 self.item.setSubject(longSubject) self.assertEqual(longSubject, self.editor._interior[0]._subjectEntry.GetValue()) def testThatPickingAForegroundColorChangesTheItemForegroundColor(self): self.appearance._foregroundColorEntry.SetValue(wx.RED) self.appearance._foregroundColorSync.onAttributeEdited(dummy.Event()) self.assertEqual(wx.RED, self.item.foregroundColor()) def testThatChangingTheItemForegroundColorAffectsTheForegroundColorButton(self): self.item.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.appearance._foregroundColorEntry.GetValue()) def testThatPickingABackgroundColorChangesTheItemBackgroundColor(self): self.appearance._backgroundColorEntry.SetValue(wx.RED) self.appearance._backgroundColorSync.onAttributeEdited(dummy.Event()) self.assertEqual(wx.RED, self.item.backgroundColor()) def testThatChangingTheItemBackgroundColorAffectsTheBackgroundColorButton(self): self.item.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.appearance._backgroundColorEntry.GetValue()) def testThatPickingAFontChangesTheItemFont(self): font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) font.SetPointSize(font.GetPointSize() + 1) self.appearance._fontEntry.SetValue(font) self.appearance._fontSync.onAttributeEdited(dummy.Event()) self.assertEqual(font, self.item.font()) def testThatChangingTheItemFontAffectsTheFontButton(self): font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) font.SetPointSize(font.GetPointSize() + 1) self.item.setFont(font) self.assertEqual(font, self.appearance._fontEntry.GetValue()) def testThatPickingAColoredFontChangesTheItemColor(self): self.appearance._fontEntry.SetColor(wx.RED) self.appearance._fontColorSync.onAttributeEdited(dummy.Event()) self.assertEqual(wx.RED, self.item.foregroundColor()) def testThatChangingTheItemColorAffectsTheFontButton(self): self.item.setForegroundColor(wx.RED) self.assertEqual(wx.RED, self.appearance._fontEntry.GetColor()) def testThatPickingAColoredFontChangesTheColorButton(self): self.appearance._fontEntry.SetColor(wx.RED) self.appearance._fontColorSync.onAttributeEdited(dummy.Event()) self.assertEqual(wx.RED, self.appearance._foregroundColorEntry.GetValue()) def testThatPickingAColorChangesTheFontButtonColor(self): self.appearance._foregroundColorEntry.SetValue(wx.RED) self.appearance._foregroundColorSync.onAttributeEdited(dummy.Event()) self.assertEqual(wx.RED, self.appearance._fontEntry.GetColor()) def testThatPickingAnIconChangesTheItemIcon(self): self.appearance._iconEntry.SetValue('bomb_icon') self.appearance._iconSync.onAttributeEdited(dummy.Event()) self.assertEqual('bomb_icon', self.item.icon()) def testThatChangingTheItemIconAffectsTheIconEntry(self): imageNames = sorted(gui.artprovider.chooseableItemImages.keys()) self.item.setIcon(imageNames[10]) self.assertEqual(10, self.appearance._iconEntry.GetSelection()) def testDefaultDescriptionFont(self): default_font = wx.TextCtrl(self.frame).GetFont() self.assertEqual(default_font, self.editor._interior[0]._descriptionEntry.GetFont()) def testSetDescriptionFont(self): font = wx.TextCtrl(self.frame).GetFont() font.SetPointSize(font.GetPointSize() + 1) self.settings.settext('editor', 'descriptionfont', font.GetNativeFontInfoDesc()) editor = EditorUnderTest(self.frame, [self.item], self.settings, self.items, self.taskFile) self.assertEqual(font, editor._interior[0]._descriptionEntry.GetFont()) taskcoach-1.4.3/tests/unittests/guiTests/EffortEditorTest.py000066400000000000000000000067621265347643000243250ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import gui, config, persistence from taskcoachlib.domain import task, effort, date from unittests import dummy class EditorUnderTest(gui.dialog.editor.EffortEditor): def __init__(self, *args, **kwargs): super(EditorUnderTest, self).__init__(*args, **kwargs) self.editorClosed = False def onClose(self, event): # pragma: no cover self.editorClosed = True super(EditorUnderTest, self).onClose(event) class EffortEditorTest(test.wxTestCase): def setUp(self): super(EffortEditorTest, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.taskList = self.taskFile.tasks() self.effortList = self.taskFile.efforts() self.task = task.Task('task') self.effort = effort.Effort(self.task) self.task.addEffort(self.effort) self.task2 = task.Task('task2') self.taskFile.tasks().extend([self.task, self.task2]) self.editor = EditorUnderTest(self.frame, list(self.effortList), self.settings, self.taskFile.efforts(), self.taskFile, raiseDialog=False) def tearDown(self): super(EffortEditorTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def createEditor(self): return EditorUnderTest(self.frame, list(self.taskFile.efforts()), self.settings, self.taskFile.efforts(), self.taskFile) # pylint: disable=W0201,W0212 def testCreate(self): self.assertEqual(self.task, self.editor._interior._taskEntry.GetValue()) self.assertEqual(self.effort.getStart().date(), self.editor._interior._startDateTimeEntry.GetValue().date()) self.assertEqual(self.effort.task(), self.editor._interior._taskEntry.GetValue()) def testInvalidEffort(self): self.editor._interior._stopDateTimeEntry.SetValue(date.DateTime(1900, 1, 1)) self.editor._interior.onDateTimeChanged(dummy.Event()) self.failUnless(self.editor._interior._invalidPeriodMessage.GetLabel()) def testChangeTask(self): self.editor._interior._taskEntry.SetValue(self.task2) self.editor._interior._taskSync.onAttributeEdited(dummy.Event()) self.assertEqual(self.task2, self.effort.task()) self.failIf(self.effort in self.task.efforts()) def testChangeTaskDoesNotCloseEditor(self): self.editor._interior._taskEntry.SetValue(self.task2) self.editor._interior._taskSync.onAttributeEdited(dummy.Event()) self.failIf(self.editor.editorClosed) taskcoach-1.4.3/tests/unittests/guiTests/EffortViewerTest.py000077500000000000000000000571671265347643000243500ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import gui, config, persistence, render from taskcoachlib.domain import task, effort, date from unittests import dummy import test import wx class EffortViewerUnderTest(gui.viewer.EffortViewer): # pylint: disable=W0223 def createWidget(self): return dummy.DummyWidget(self) def columns(self): return [] class EffortViewerForSpecificTasksTest(test.wxTestCase): def setUp(self): super(EffortViewerForSpecificTasksTest, self).setUp() self.settings = config.Settings(load=False) task.Task.settings = self.settings self.taskFile = persistence.TaskFile() self.task1 = task.Task('Task 1') self.task2 = task.Task('Task 2') self.taskFile.tasks().extend([self.task1, self.task2]) self.effort1 = effort.Effort(self.task1, date.DateTime(2006, 1, 1), date.DateTime(2006, 1, 2)) self.task1.addEffort(self.effort1) self.effort2 = effort.Effort(self.task2, date.DateTime(2006, 1, 2), date.DateTime(2006, 1, 3)) self.task2.addEffort(self.effort2) self.viewer = EffortViewerUnderTest(self.frame, self.taskFile, self.settings, tasksToShowEffortFor=task.TaskList([self.task1])) def tearDown(self): super(EffortViewerForSpecificTasksTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def testViewerShowsOnlyEffortForSpecifiedTask(self): self.assertEqual([self.effort1], self.viewer.presentation()) def testEffortEditorDoesUseAllTasks(self): dialog = self.viewer.newItemDialog() self.assertEqual(2, len(dialog._taskFile.tasks())) # pylint: disable=W0212 def testViewerKeepsShowingOnlyEffortForSpecifiedTasksWhenSwitchingAggregation(self): self.settings.settext(self.viewer.settingsSection(), 'aggregation', 'week') self.assertEqual(2, len(self.viewer.presentation())) class EffortViewerStatusMessageTest(test.wxTestCase): def setUp(self): super(EffortViewerStatusMessageTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.task = task.Task() self.taskFile.tasks().append(self.task) self.effort1 = effort.Effort(self.task, date.DateTime(2006, 1, 1), date.DateTime(2006, 1, 2)) self.effort2 = effort.Effort(self.task, date.DateTime(2006, 1, 2), date.DateTime(2006, 1, 3)) self.viewer = EffortViewerUnderTest(self.frame, self.taskFile, self.settings) def tearDown(self): super(EffortViewerStatusMessageTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def assertStatusMessages(self, message1, message2): self.assertEqual((message1, message2), self.viewer.statusMessages()) def testStatusMessage_EmptyTaskList(self): self.taskFile.tasks().clear() self.assertStatusMessages('Effort: 0 selected, 0 visible, 0 total. Time spent: 0:00:00 selected, 0:00:00 visible, 0:00:00 total', 'Status: 0 tracking') def testStatusMessage_OneTaskNoEffort(self): self.assertStatusMessages('Effort: 0 selected, 0 visible, 0 total. Time spent: 0:00:00 selected, 0:00:00 visible, 0:00:00 total', 'Status: 0 tracking') def testStatusMessage_OneTaskOneEffort(self): self.task.addEffort(self.effort1) self.assertStatusMessages('Effort: 0 selected, 1 visible, 1 total. Time spent: 0:00:00 selected, 24:00:00 visible, 24:00:00 total', 'Status: 0 tracking') def testStatusMessage_OneTaskTwoEfforts(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.assertStatusMessages('Effort: 0 selected, 2 visible, 2 total. Time spent: 0:00:00 selected, 48:00:00 visible, 48:00:00 total', 'Status: 0 tracking') def testStatusMessage_OneTaskOneActiveEffort(self): self.task.addEffort(effort.Effort(self.task)) self.assertStatusMessages('Effort: 0 selected, 1 visible, 1 total. Time spent: 0:00:00 selected, 0:00:00 visible, 0:00:00 total', 'Status: 1 tracking') def testStatusMessageInAggregatedMode_OneTaskNoEffort(self): self.settings.settext(self.viewer.settingsSection(), 'aggregation', 'day') self.assertStatusMessages('Effort: 0 selected, 0 visible, 0 total. Time spent: 0:00:00 selected, 0:00:00 visible, 0:00:00 total', 'Status: 0 tracking') def testStatusMessageInAggregateMode_OneTaskOneEffort(self): self.settings.settext(self.viewer.settingsSection(), 'aggregation', 'day') self.task.addEffort(self.effort1) self.assertStatusMessages('Effort: 0 selected, 2 visible, 1 total. Time spent: 0:00:00 selected, 48:00:00 visible, 24:00:00 total', 'Status: 0 tracking') def testStatusMessageInAggregateMode_OneTaskTwoEfforts(self): self.settings.settext(self.viewer.settingsSection(), 'aggregation', 'day') self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.assertStatusMessages('Effort: 0 selected, 4 visible, 2 total. Time spent: 0:00:00 selected, 96:00:00 visible, 48:00:00 total', 'Status: 0 tracking') class EffortViewerTest(test.wxTestCase): def setUp(self): super(EffortViewerTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.task = task.Task('task') self.taskFile.tasks().append(self.task) self.effort1 = effort.Effort(self.task, date.DateTime(2006, 1, 1), date.DateTime(2006, 1, 2)) self.effort2 = effort.Effort(self.task, date.DateTime(2006, 1, 2), date.DateTime(2006, 1, 3)) self.viewer = gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) def tearDown(self): super(EffortViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() @test.skipOnPlatform('__WXMSW__') # GetItemBackgroundColour doesn't work on Windows def testEffortBackgroundColor(self): # pragma: no cover self.task.setBackgroundColor(wx.RED) self.task.addEffort(self.effort1) self.assertEqual(wx.RED, self.viewer.widget.GetItemBackgroundColour(0)) @test.skipOnPlatform('__WXMSW__') # GetItemBackgroundColour doesn't work on Windows def testUpdateEffortBackgroundColor(self): # pragma: no cover self.task.addEffort(self.effort1) self.task.setBackgroundColor(wx.RED) self.assertEqual(wx.RED, self.viewer.widget.GetItemBackgroundColour(0)) def testSearch(self): self.task.addEffort(self.effort1) self.viewer.presentation().setSearchFilter('no such task') self.assertEqual(0, len(self.viewer.presentation())) self.viewer.presentation().setSearchFilter(self.task.subject()) self.assertEqual(1, len(self.viewer.presentation())) def testSearchIncludeSubitems(self): self.task.addEffort(self.effort1) child = task.Task('child') self.task.addChild(child) child.setParent(self.task) self.taskFile.tasks().append(child) child.addEffort(effort.Effort(child)) self.assertEqual(2, len(self.viewer.presentation())) self.viewer.presentation().setSearchFilter(self.task.subject()) self.assertEqual(1, len(self.viewer.presentation())) self.viewer.presentation().setSearchFilter(self.task.subject(), includeSubItems=True) self.assertEqual(2, len(self.viewer.presentation())) def testAscendingSortOrder(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.viewer.setSortOrderAscending(True) self.assertEqual([self.effort1, self.effort2], list(self.viewer.presentation())) def testDescendingSortOrder(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.viewer.setSortOrderAscending(False) self.assertEqual([self.effort2, self.effort1], list(self.viewer.presentation())) class EffortViewerAggregationTestCase(test.wxTestCase): aggregation = 'Subclass responsibility' def createViewer(self): return gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) def setUp(self): super(EffortViewerAggregationTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.settings.set('effortviewer', 'aggregation', self.aggregation) self.taskFile = persistence.TaskFile() self.viewer = self.createViewer() self.task = task.Task('Task') self.task2 = task.Task('Task2') self.taskFile.tasks().extend([self.task, self.task2]) self.task.addEffort(effort.Effort(self.task, date.DateTime(2008, 7, 16, 10, 0, 0), date.DateTime(2008, 7, 16, 11, 0, 0))) self.task.addEffort(effort.Effort(self.task, date.DateTime(2008, 7, 16, 12, 0, 0), date.DateTime(2008, 7, 16, 13, 0, 0))) self.task.addEffort(effort.Effort(self.task, date.DateTime(2008, 7, 17, 1, 0, 0), date.DateTime(2008, 7, 17, 2, 0, 0))) mostRecentPeriod = (date.DateTime(2008, 7, 23, 1, 0, 0), date.DateTime(2008, 7, 23, 2, 0, 0)) # pylint: disable=W0142 self.task.addEffort(effort.Effort(self.task, *mostRecentPeriod)) self.task2.addEffort(effort.Effort(self.task2, *mostRecentPeriod)) def tearDown(self): super(EffortViewerAggregationTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() def switchAggregation(self): aggregations = ['details', 'day', 'week', 'month'] aggregations.remove(self.aggregation) self.settings.settext(self.viewer.settingsSection(), 'aggregation', aggregations[0]) class EffortViewerAggregationRoundingTestCase(test.wxTestCase): aggregation = 'Subclass responsibility' roundingValue = None alwaysRoundUp = None def createViewer(self): return gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) def setUp(self): super(EffortViewerAggregationRoundingTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.settings.set('effortviewer', 'aggregation', self.aggregation) self.settings.setint('effortviewer', 'round', self.roundingValue) self.settings.setboolean('effortviewer', 'alwaysroundup', self.alwaysRoundUp) self.taskFile = persistence.TaskFile() self.viewer = self.createViewer() self.task = task.Task('Task') self.taskFile.tasks().extend([self.task]) self.task.addEffort(effort.Effort(self.task, date.DateTime(2013, 7, 6, 1, 0, 0), date.DateTime(2013, 7, 6, 1, 0, 45))) self.task.addEffort(effort.Effort(self.task, date.DateTime(2013, 7, 6, 2, 0, 0), date.DateTime(2013, 7, 6, 2, 0, 45))) self.task.addEffort(effort.Effort(self.task, date.DateTime(2013, 7, 6, 3, 0, 0), date.DateTime(2013, 7, 6, 3, 0, 45))) self.task.addEffort(effort.Effort(self.task, date.DateTime(2013, 7, 6, 4, 0, 0), date.DateTime(2013, 7, 6, 4, 0, 10))) class RoundingTestsMixin(object): def testRenderDuration(self): self.assertEqual(self.expectedPeriodRendering, self.viewer.widget.getItemText(self.viewer.widget.getItemWithIndex(0), 3)) class EffortViewerAggregationRoundingDayTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'day' roundingValue = 60 alwaysRoundUp = False expectedPeriodRendering = '0:03' class EffortViewerAggregationRoundingDayUpTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'day' roundingValue = 60 alwaysRoundUp = True expectedPeriodRendering = '0:04' class EffortViewerAggregationRoundingWeekTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'week' roundingValue = 60 alwaysRoundUp = False expectedPeriodRendering = '0:03' class EffortViewerAggregationRoundingWeekUpTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'week' roundingValue = 60 alwaysRoundUp = True expectedPeriodRendering = '0:04' class EffortViewerAggregationRoundingMonthTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'month' roundingValue = 60 alwaysRoundUp = False expectedPeriodRendering = '0:03' class EffortViewerAggregationRoundingMonthUpTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'month' roundingValue = 60 alwaysRoundUp = True expectedPeriodRendering = '0:04' class EffortViewerAggregationNoRoundingTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'details' roundingValue = 60 alwaysRoundUp = False expectedPeriodRendering = '0:00:10' class EffortViewerAggregationNoRoundingUpTest(EffortViewerAggregationRoundingTestCase, RoundingTestsMixin): aggregation = 'details' roundingValue = 60 alwaysRoundUp = True expectedPeriodRendering = '0:00:10' class CommonTestsMixin(object): def testNumberOfItems(self): self.assertEqual(self.expectedNumberOfItems, self.viewer.size()) def testRenderPeriod(self): self.assertEqual(self.expectedPeriodRendering, self.viewer.widget.GetItemText(0)) def testRenderRepeatedPeriod(self): self.assertEqual('', self.viewer.widget.GetItemText(1)) def testSwitchAggregation(self): self.switchAggregation() self.settings.settext(self.viewer.settingsSection(), 'aggregation', self.aggregation) self.assertEqual(self.expectedNumberOfItems, self.viewer.size()) def testAggregationIsSavedInSettings(self): self.assertEqual(self.aggregation, self.settings.get(self.viewer.settingsSection(), 'aggregation')) def testToolbarChoiceCtrlShowsAggegrationMode(self): aggregationUICommand = self.viewer.aggregationUICommand index = aggregationUICommand.choiceData.index(self.aggregation) expectedLabel = aggregationUICommand.choiceLabels[index] actualLabel = aggregationUICommand.choiceCtrl.GetStringSelection() self.assertEqual(expectedLabel, actualLabel) def testSearch(self): self.viewer.setSearchFilter('Task2') self.assertEqual(1, self.viewer.size()) def testSearchDescription(self): self.task.efforts()[0].setDescription('Description') self.viewer.setSearchFilter('Description', searchDescription=True) self.assertEqual(1, self.viewer.size()) def testSearchWithIncludeSubitems(self): self.viewer.setSearchFilter('Task2', includeSubItems=True) self.assertEqual(1, self.viewer.size()) def testDelete(self): self.viewer.widget.Select(0) self.viewer.updateSelection() self.viewer.deleteUICommand.doCommand(None) expectedNumberOfItems = self.expectedNumberOfItems - (1 if self.aggregation == 'details' else 3) self.assertEqual(expectedNumberOfItems, self.viewer.size()) def testDeleteTask(self): self.taskFile.tasks().remove(self.task2) expectedNumberOfItems = self.expectedNumberOfItems - 1 self.assertEqual(expectedNumberOfItems, self.viewer.size()) def testNewEffortUsesSameTaskAsSelectedEffort(self): dialog = self.viewer.newItemDialog(selectedTasks=[self.task2], bitmap='new') for newEffort in dialog._items: # pylint: disable=W0212 self.assertEqual(self.task2, newEffort.task()) def testColumnUICommands(self): expectedLength = dict(details=6, day=8, week=9, month=8)[self.aggregation] self.assertEqual(expectedLength, len(self.viewer.getColumnUICommands())) def testTotalTimeSpentColumnNotInDetailsMode(self): columns = [command.setting for command in self.viewer.getColumnUICommands() if command] self.assertEqual(self.aggregation != 'details', 'totalTimeSpent' in columns) def testTotalRevenueColumnNotInDetailsMode(self): columns = [command.setting for command in self.viewer.getColumnUICommands() if command] self.assertEqual(self.aggregation != 'details', 'totalRevenue' in columns) def testDefaultNrOfColumns(self): self.assertEqual(4, self.viewer.widget.GetColumnCount()) def testHideTimeSpentColumn(self): self.viewer.showColumnByName('timeSpent', False) self.assertEqual(3, self.viewer.widget.GetColumnCount()) def testHideRevenueColumn(self): self.viewer.showColumnByName('revenue', False) self.assertEqual(4, self.viewer.widget.GetColumnCount()) def testShowTotalTimeSpentColumn(self): self.viewer.showColumnByName('totalTimeSpent', True) self.assertEqual(5, self.viewer.widget.GetColumnCount()) def testShowTotalRevenueColumn(self): self.viewer.showColumnByName('totalRevenue', True) self.assertEqual(5, self.viewer.widget.GetColumnCount()) def testTotalTimeSpentColumnIsHiddenWhenSwitchingToDetails(self): self.viewer.showColumnByName('totalTimeSpent', True) self.switchAggregation() self.assertEqual(self.viewer.isShowingAggregatedEffort(), self.viewer.isVisibleColumnByName('totalTimeSpent')) def testTotalRevenueColumnIsHiddenWhenSwitchingToDetails(self): self.viewer.showColumnByName('totalRevenue', True) self.switchAggregation() self.assertEqual(self.viewer.isShowingAggregatedEffort(), self.viewer.isVisibleColumnByName('totalRevenue')) def testActiveEffort(self): self.task2.efforts()[0].setStop(date.DateTime.max) # Make active self.viewer.secondRefresher.onEverySecond() # Simulate clock firing expectedNrOfTrackedItems = 1 if self.aggregation == 'details' else 2 self.assertEqual(expectedNrOfTrackedItems, len(self.viewer.secondRefresher.currentlyTrackedItems())) def testActiveEffortAfterSwitch(self): self.task2.efforts()[0].setStop(date.DateTime.max) # Make active self.switchAggregation() self.viewer.secondRefresher.onEverySecond() # Simulate clock firing expectedNrOfTrackedItems = 2 if self.aggregation == 'details' else 1 self.assertEqual(expectedNrOfTrackedItems, len(self.viewer.secondRefresher.currentlyTrackedItems())) def testIsShowingAggregatedEffort(self): isAggregating = self.aggregation != 'details' self.assertEqual(isAggregating, self.viewer.isShowingAggregatedEffort()) def testStopEffortTracking(self): self.task.addEffort(effort.Effort(self.task)) stopUICommand = gui.uicommand.EffortStop(viewer=self.viewer, effortList=self.taskFile.efforts(), taskList=self.taskFile.tasks()) stopUICommand.doCommand() self.failIf(self.task.isBeingTracked()) class EffortViewerWithoutAggregationTest(CommonTestsMixin, EffortViewerAggregationTestCase): aggregation = 'details' expectedNumberOfItems = 5 expectedPeriodRendering = render.dateTimePeriod(\ date.DateTime(2008, 7, 23, 1, 0), date.DateTime(2008, 7, 23, 2, 0)) class EffortViewerWithAggregationPerDayTest(CommonTestsMixin, EffortViewerAggregationTestCase): aggregation = 'day' expectedNumberOfItems = 7 # 4 day/task combinations on 3 days (== 3 total rows) expectedPeriodRendering = render.date(date.DateTime(2008, 7, 23)) class EffortViewerWithAggregationPerWeekTest(CommonTestsMixin, EffortViewerAggregationTestCase): aggregation = 'week' expectedNumberOfItems = 5 # 3 week/task combinations in 2 weeks (== 2 total rows) expectedPeriodRendering = '2008-30' class EffortViewerWithAggregationPerMonthTest(CommonTestsMixin, EffortViewerAggregationTestCase): aggregation = 'month' expectedNumberOfItems = 3 # 2 month/task combinations in 1 month (== 1 total row) expectedPeriodRendering = render.month(date.DateTime(2008, 07, 01)) class EffortViewerRenderTestMixin(object): aggregation = 'Subclass responsibility' def createViewer(self): return gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) def setUp(self): super(EffortViewerRenderTestMixin, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.settings.set('effortviewer', 'aggregation', self.aggregation) self.taskFile = persistence.TaskFile() self.task = task.Task('task') self.taskFile.tasks().append(self.task) self.midnight = date.Now().startOfDay() self.viewer = self.createViewer() def testToday(self): theEffort = effort.Effort(self.task, self.midnight, self.midnight + date.TWO_HOURS) self.task.addEffort(theEffort) text = self.viewer.widget.GetItemText(0) self.failUnless(text.startswith('Today'), '"Today" not in %s' % text) def testTomorrow(self): theEffort = effort.Effort(self.task, self.midnight + date.ONE_DAY, self.midnight + date.TimeDelta(hours=2, days=1)) self.task.addEffort(theEffort) text = self.viewer.widget.GetItemText(0) self.failUnless(text.startswith('Tomorrow'), '"Tomorrow" not in %s' % text) def testYesterday(self): theEffort = effort.Effort(self.task, self.midnight - date.TimeDelta(days=1), self.midnight - date.TimeDelta(hours=22)) self.task.addEffort(theEffort) text = self.viewer.widget.GetItemText(0) self.failUnless(text.startswith('Yesterday'), '"Yesterday" not in %s' % text) class EffortViewerRenderDetailsTest(EffortViewerRenderTestMixin, test.wxTestCase): aggregation = 'details' class EffortViewerRenderPerDayTest(EffortViewerRenderTestMixin, test.wxTestCase): aggregation = 'day' taskcoach-1.4.3/tests/unittests/guiTests/ExportDialogTest.py000066400000000000000000000047111265347643000243220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.gui import dialog from taskcoachlib import config from wx.lib import sized_controls class DummyColumn(object): def __init__(self, name): self.__name = name def name(self): return self.__name def header(self): return 'dummy column "%s"' % self.__name class DummyViewer(object): def __init__(self): self.col1 = DummyColumn('one') self.col2 = DummyColumn('two') def title(self): return 'viewer' def hasHideableColumns(self): return True def visibleColumns(self): return [] def columns(self): return [self.col1, self.col2] def selectableColumns(self): return [self.col2] class DummyViewerContainer(object): def activeViewer(self): return 1 def __getitem__(self, index): if index == 0: return DummyViewer() else: raise IndexError class ExportDialogTest(test.wxTestCase): def testCreate(self): self.frame.viewer = DummyViewerContainer() settings = config.Settings(load=False) dialog.export.ExportAsHTMLDialog(self.frame, settings=settings) class ColumnPickerTest(test.wxTestCase): def testCreate(self): panel = sized_controls.SizedPanel(self.frame) dialog.export.ColumnPicker(panel, DummyViewer()) def testOnlySelectableColumns(self): panel = sized_controls.SizedPanel(self.frame) dlg = dialog.export.ColumnPicker(panel, DummyViewer()) self.assertEqual(dlg.columnPicker.GetCount(), 1) self.assertEqual(dlg.columnPicker.GetClientData(0).name(), 'two') taskcoach-1.4.3/tests/unittests/guiTests/IOControllerTest.py000077500000000000000000000337031265347643000243020ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import gui, config, persistence from taskcoachlib.domain import task, note, category from taskcoachlib.thirdparty import lockfile from unittests import dummy import os import shutil import wx import test class IOControllerTest(test.TestCase): def setUp(self): task.Task.settings = self.settings = config.Settings(load=False) self.taskFile = dummy.TaskFile() self.iocontroller = gui.IOController(self.taskFile, lambda *args: None, self.settings) self.filename1 = 'whatever.tsk' self.filename2 = 'another.tsk' def tearDown(self): self.taskFile.close() self.taskFile.stop() for filename in self.filename1, self.filename2: if os.path.exists(filename): os.remove(filename) if os.path.exists(filename + '.lock'): shutil.rmtree(filename + '.lock') # pragma: no cover if os.path.exists(filename + '.delta'): os.remove(filename + '.delta') super(IOControllerTest, self).tearDown() def doIOAndCheckRecentFiles(self, open=None, saveas=None, # pylint: disable=W0622 saveselection=None, merge=None, expectedFilenames=None): open = open or [] saveas = saveas or [] saveselection = saveselection or [] merge = merge or [] self.doIO(open, saveas, saveselection, merge) self.checkRecentFiles(expectedFilenames or \ open + saveas + saveselection + merge) def doIO(self, open, saveas, saveselection, merge): # pylint: disable=W0622 for filename in open: self.iocontroller.open(filename, fileExists=lambda filename: True) for filename in saveas: self.iocontroller.saveas(filename) for filename in saveselection: self.iocontroller.saveselection([], filename) for filename in merge: self.iocontroller.merge(filename) def checkRecentFiles(self, expectedFilenames): expectedFilenames.reverse() expectedFilenames = str(expectedFilenames) self.assertEqual(expectedFilenames, self.settings.get('file', 'recentfiles')) def testOpenFileAddsItToRecentFiles(self): self.doIOAndCheckRecentFiles(open=[self.filename1]) def testOpenTwoFilesAddBothToRecentFiles(self): self.doIOAndCheckRecentFiles(open=[self.filename1, self.filename2]) def testOpenTheSameFileTwiceAddsItToRecentFilesOnce(self): self.doIOAndCheckRecentFiles(open=[self.filename1] * 2, expectedFilenames=[self.filename1]) def testSaveFileAsAddsItToRecentFiles(self): self.doIOAndCheckRecentFiles(saveas=[self.filename1]) def testMergeFileAddsItToRecentFiles(self): self.doIOAndCheckRecentFiles(open=[self.filename1], merge=[self.filename2]) def testSaveSelectionAddsItToRecentFiles(self): self.doIOAndCheckRecentFiles(saveselection=[self.filename1]) def testMaximumNumberOfRecentFiles(self): maximumNumberOfRecentFiles = self.settings.getint('file', 'maxrecentfiles') filenames = ['filename %d' % index for index in \ range(maximumNumberOfRecentFiles + 1)] self.doIOAndCheckRecentFiles(filenames, expectedFilenames=filenames[1:]) def testSaveTaskFileWithoutTasksButWithNotes(self): self.taskFile.notes().append(note.Note(subject='Note')) def saveasReplacement(*args, **kwargs): # pylint: disable=W0613 self.saveAsCalled = True # pylint: disable=W0201 originalSaveAs = self.iocontroller.__class__.saveas self.iocontroller.__class__.saveas = saveasReplacement self.iocontroller.save() self.failUnless(self.saveAsCalled) self.iocontroller.__class__.saveas = originalSaveAs def testIOErrorOnSave(self): self.taskFile.setFilename(self.filename1) def saveasReplacement(*args, **kwargs): # pylint: disable=W0613 self.saveAsCalled = True originalSaveAs = self.iocontroller.__class__.saveas self.iocontroller.__class__.saveas = saveasReplacement self.taskFile.raiseError = IOError def showerror(*args, **kwargs): # pylint: disable=W0613 self.showerrorCalled = True # pylint: disable=W0201 self.iocontroller.save(showerror=showerror) self.failUnless(self.showerrorCalled and self.saveAsCalled) self.iocontroller.__class__.saveas = originalSaveAs def testIOErrorOnSaveAs(self): self.taskFile.raiseError = IOError def saveasReplacement(*args, **kwargs): # pylint: disable=W0613 self.saveAsCalled = True originalSaveAs = self.iocontroller.__class__.saveas def showerror(*args, **kwargs): # pylint: disable=W0613 self.showerrorCalled = True # Prevent the recursive call of saveas: self.iocontroller.__class__.saveas = saveasReplacement self.iocontroller.saveas(filename=self.filename1, showerror=showerror) self.failUnless(self.showerrorCalled and self.saveAsCalled) self.iocontroller.__class__.saveas = originalSaveAs def testSaveSelectionAddsCategories(self): task1 = task.Task() task2 = task.Task() self.taskFile.tasks().extend([task1, task2]) aCategory = category.Category('A Category') self.taskFile.categories().append(aCategory) for eachTask in self.taskFile.tasks(): eachTask.addCategory(aCategory) aCategory.addCategorizable(eachTask) self.iocontroller.saveselection(tasks=self.taskFile.tasks(), filename=self.filename1) taskFile = persistence.TaskFile() taskFile.setFilename(self.filename1) taskFile.load() try: self.assertEqual(1, len(taskFile.categories())) finally: taskFile.close() taskFile.stop() def testSaveSelectionAddsParentCategoriesWhenSubcategoriesAreUsed(self): task1 = task.Task() self.taskFile.tasks().extend([task1]) aCategory = category.Category('A category') aSubCategory = category.Category('A subcategory') aCategory.addChild(aSubCategory) self.taskFile.categories().append(aCategory) task1.addCategory(aSubCategory) aSubCategory.addCategorizable(task1) self.iocontroller.saveselection(tasks=self.taskFile.tasks(), filename=self.filename1) taskFile = persistence.TaskFile() taskFile.setFilename(self.filename1) taskFile.load() self.assertEqual(2, len(taskFile.categories())) def testIOErrorOnSaveSave(self): self.taskFile.raiseError = IOError self.taskFile.setFilename(self.filename1) def showerror(*args, **kwargs): # pylint: disable=W0613 self.showerrorCalled = True self.taskFile.tasks().append(task.Task()) self.iocontroller._saveSave(self.taskFile, showerror) # pylint: disable=W0212 self.failUnless(self.showerrorCalled) def testIOErrorOnExport(self): self.taskFile.setFilename(self.filename1) self.taskFile.tasks().append(task.Task()) def showerror(*args, **kwargs): # pylint: disable=W0613 self.showerrorCalled = True def openfile(*args, **kwargs): # pylint: disable=W0613 raise IOError self.iocontroller.exportAsHTML(None, filename="Don't ask", openfile=openfile, showerror=showerror) self.failUnless(self.showerrorCalled) def testNothingDeleted(self): self.taskFile.tasks().append(task.Task(subject='Task')) self.taskFile.notes().append(note.Note(subject='Note')) self.failIf(self.iocontroller.hasDeletedItems()) def testNoteDeleted(self): self.taskFile.tasks().append(task.Task(subject='Task')) myNote = note.Note(subject='Note') myNote.markDeleted() self.taskFile.notes().append(myNote) self.failUnless(self.iocontroller.hasDeletedItems()) def testTaskDeleted(self): myTask = task.Task(subject='Task') myTask.markDeleted() self.taskFile.tasks().append(myTask) self.taskFile.notes().append(note.Note(subject='Note')) self.failUnless(self.iocontroller.hasDeletedItems()) def testPurgeNothing(self): myTask = task.Task(subject='Task') myNote = note.Note(subject='Note') self.taskFile.tasks().append(myTask) self.taskFile.notes().append(myNote) self.iocontroller.purgeDeletedItems() self.assertEqual(self.taskFile.tasks(), [myTask]) self.assertEqual(self.taskFile.notes(), [myNote]) def testPurgeNote(self): myTask = task.Task(subject='Task') myNote = note.Note(subject='Note') self.taskFile.tasks().append(myTask) self.taskFile.notes().append(myNote) myNote.markDeleted() self.iocontroller.purgeDeletedItems() self.assertEqual(self.taskFile.tasks(), [myTask]) self.assertEqual(self.taskFile.notes(), []) def testPurgeTask(self): myTask = task.Task(subject='Task') myNote = note.Note(subject='Note') self.taskFile.tasks().append(myTask) self.taskFile.notes().append(myNote) myTask.markDeleted() self.iocontroller.purgeDeletedItems() self.assertEqual(self.taskFile.tasks(), []) self.assertEqual(self.taskFile.notes(), [myNote]) def testMerge(self): mergeFile = persistence.TaskFile() mergeFile.setFilename(self.filename2) mergeFile.tasks().append(task.Task(subject='Task to merge')) mergeFile.save() mergeFile.close() targetFile = persistence.TaskFile() iocontroller = gui.IOController(targetFile, lambda *args: None, self.settings) iocontroller.merge(self.filename2) try: self.assertEqual('Task to merge', list(targetFile.tasks())[0].subject()) finally: mergeFile.close() mergeFile.stop() targetFile.close() targetFile.stop() def testOpenWhenLockFailed(self): self.taskFile.raiseError = lockfile.LockFailed def askOpenUnlocked(*args, **kwargs): # pylint: disable=W0613 self.askOpenUnlockedCalled = True self.iocontroller._IOController__askOpenUnlocked = askOpenUnlocked self.iocontroller.open(self.filename1, fileExists=lambda filename: True) self.failUnless(self.askOpenUnlockedCalled) def testOpenWhenAlreadyLocked(self): self.taskFile.raiseError = lockfile.LockTimeout def askBreakLock(*args, **kwargs): # pylint: disable=W0613 self.askBreakLockCalled = True self.iocontroller._IOController__askBreakLock = askBreakLock self.iocontroller.open(self.filename1, fileExists=lambda filename: True) self.failUnless(self.askBreakLockCalled) class IOControllerOverwriteExistingFileTest(test.TestCase): def setUp(self): super(IOControllerOverwriteExistingFileTest, self).setUp() self.originalFileSelector = wx.FileSelector wx.FileSelector = lambda *args, **kwargs: 'filename without extension to trigger our own overwrite warning' self.originalMessageBox = wx.MessageBox def messageBox(*args, **kwargs): # pylint: disable=W0613 self.userWarned = True return wx.CANCEL wx.MessageBox = messageBox task.Task.settings = self.settings = config.Settings(load=False) self.taskFile = dummy.TaskFile() self.iocontroller = gui.IOController(self.taskFile, lambda *args: None, self.settings) def tearDown(self): self.taskFile.close() self.taskFile.stop() wx.FileSelector = self.originalFileSelector wx.MessageBox = self.originalMessageBox super(IOControllerOverwriteExistingFileTest, self).tearDown() def testCancelSaveAsExistingFile(self): self.iocontroller.saveas(fileExists=lambda filename: True) self.failUnless(self.userWarned) def testCancelSaveSelectionToExistingFile(self): self.iocontroller.saveselection([], fileExists=lambda filename: True) self.failUnless(self.userWarned) def testCancelExportAsHTMLToExistingFile(self): self.iocontroller.exportAsHTML(None, fileExists=lambda filename: True) self.failUnless(self.userWarned) def testCancelExportAsCSVToExistingFile(self): self.iocontroller.exportAsCSV(None, fileExists=lambda filename: True) self.failUnless(self.userWarned) def testCancelExportAsICalendarToExistingFile(self): self.iocontroller.exportAsICalendar(None, fileExists=lambda filename: True) self.failUnless(self.userWarned) taskcoach-1.4.3/tests/unittests/guiTests/IPhoneDialogTest.py000066400000000000000000000021121265347643000242140ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.gui.dialog import iphone from taskcoachlib import config import test class IPhoneSyncTypeDialogTest(test.TestCase): def testCreate(self): iphone.IPhoneSyncTypeDialog(None) class IPhoneBonjourDialogTest(test.TestCase): def testCreate(self): iphone.IPhoneBonjourDialog(None) taskcoach-1.4.3/tests/unittests/guiTests/MainWindowTest.py000066400000000000000000000142751265347643000240030ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, test from taskcoachlib import gui, config, persistence, meta, operating_system from taskcoachlib.domain import task class MockViewer(wx.Frame): def title(self): return '' def settingsSection(self): return 'taskviewer' def viewerStatusEventType(self): return 'mockviewer.status' def curselection(self): return [] class MainWindowUnderTest(gui.MainWindow): def _create_window_components(self): # Create only the window components we really need for the tests self._create_viewer_container() self.viewer.addViewer(MockViewer(None)) self._create_status_bar() class DummyIOController(object): def needSave(self, *args, **kwargs): # pylint: disable=W0613 return False # pragma: no cover def changedOnDisk(self): return False # pragme: no cover class MainWindowTestCase(test.wxTestCase): def setUp(self): super(MainWindowTestCase, self).setUp() self.settings = config.Settings(load=False) self.setSettings() task.Task.settings = self.settings self.taskFile = persistence.TaskFile() self.mainwindow = MainWindowUnderTest(DummyIOController(), self.taskFile, self.settings) def setSettings(self): pass def tearDown(self): if operating_system.isMac(): self.mainwindow.OnQuit() # Stop power monitoring thread # Also stop idle time thread self.mainwindow._idleController.stop() self.mainwindow.Destroy() wx.Yield() del self.mainwindow super(MainWindowTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() class MainWindowTest(MainWindowTestCase): def testStatusBar_Show(self): self.settings.setboolean('view', 'statusbar', True) self.failUnless(self.mainwindow.GetStatusBar().IsShown()) def testStatusBar_Hide(self): self.settings.setboolean('view', 'statusbar', False) self.failIf(self.mainwindow.GetStatusBar().IsShown()) def testTitle_Default(self): self.assertEqual(meta.name, self.mainwindow.GetTitle()) def testTitle_AfterFilenameChange(self): self.taskFile.setFilename('New filename') self.assertEqual('%s - %s'%(meta.name, self.taskFile.filename()), self.mainwindow.GetTitle()) def testTitle_AfterChange(self): self.taskFile.setFilename('New filename') self.taskFile.tasks().extend([task.Task()]) self.assertEqual('%s - %s *' % (meta.name, self.taskFile.filename()), self.mainwindow.GetTitle()) def testTitle_AfterSave(self): self.taskFile.setFilename('New filename') self.taskFile.tasks().extend([task.Task()]) self.taskFile.save() self.assertEqual('%s - %s' % (meta.name, self.taskFile.filename()), self.mainwindow.GetTitle()) class MainWindowMaximizeTestCase(MainWindowTestCase): maximized = 'Subclass responsibility' def setUp(self): super(MainWindowMaximizeTestCase, self).setUp() if not operating_system.isMac(): self.mainwindow.Show() # Or IsMaximized() returns always False... def setSettings(self): self.settings.setboolean('window', 'maximized', self.maximized) class MainWindowNotMaximizedTest(MainWindowMaximizeTestCase): maximized = False def testCreate(self): self.failIf(self.mainwindow.IsMaximized()) @test.skipOnPlatform('__WXGTK__') def testMaximize(self): # pragma: no cover # Skipping this test under wxGTK. I don't know how it managed # to pass before but according to # http://trac.wxwidgets.org/ticket/9167 and to my own tests, # EVT_MAXIMIZE is a noop under this platform. self.mainwindow.Maximize() if operating_system.isWindows(): wx.Yield() self.failUnless(self.settings.getboolean('window', 'maximized')) class MainWindowMaximizedTest(MainWindowMaximizeTestCase): maximized = True @test.skipOnPlatform('__WXMAC__') def testCreate(self): self.failUnless(self.mainwindow.IsMaximized()) # pragma: no cover class MainWindowIconizedTest(MainWindowTestCase): def setUp(self): super(MainWindowIconizedTest, self).setUp() if operating_system.isGTK(): wx.SafeYield() # pragma: no cover def setSettings(self): self.settings.set('window', 'starticonized', 'Always') def expectedHeight(self): height = 500 if operating_system.isMac(): height += 18 # pragma: no cover return height @test.skipOnPlatform('__WXGTK__') # Test fails on Fedora, don't know why nor how to fix it def testIsIconized(self): self.failUnless(self.mainwindow.IsIconized()) # pragma: no cover def testWindowSize(self): self.assertEqual((900, self.expectedHeight()), eval(self.settings.get('window', 'size'))) def testWindowSizeShouldnotChangeWhenReceivingChangeSizeEvent(self): event = wx.SizeEvent((100, 20)) process = self.mainwindow.ProcessEvent if operating_system.isWindows(): process(event) # pragma: no cover else: wx.CallAfter(process, event) # pragma: no cover self.assertEqual((900, self.expectedHeight()), eval(self.settings.get('window', 'size'))) taskcoach-1.4.3/tests/unittests/guiTests/MenuTest.py000066400000000000000000000354311265347643000226300ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from taskcoachlib import gui, config from taskcoachlib.gui import uicommand from taskcoachlib.domain import task, category, date from taskcoachlib.thirdparty.pubsub import pub class MockViewerContainer(object): def __init__(self): self.__sortBy = 'subject' self.__ascending = True self.selection = [] self.showingCategories = False def settingsSection(self): return 'section' def curselection(self): return self.selection # pragma: no cover def isShowingCategories(self): return self.showingCategories # pragma: no cover def isSortable(self): return True def sortBy(self, sortKey): self.__sortBy = sortKey def isSortedBy(self, sortKey): return sortKey == self.__sortBy def isSortOrderAscending(self, *args, **kwargs): # pylint: disable=W0613 return self.__ascending def setSortOrderAscending(self, ascending=True): self.__ascending = ascending def isSortByTaskStatusFirst(self): return True def isSortCaseSensitive(self): return True def getSortUICommands(self): return [uicommand.ViewerSortOrderCommand(viewer=self), uicommand.ViewerSortCaseSensitive(viewer=self), uicommand.ViewerSortByTaskStatusFirst(viewer=self), None, uicommand.ViewerSortByCommand(viewer=self, value='subject', menuText='Sub&ject', helpText='help'), uicommand.ViewerSortByCommand(viewer=self, value='description', menuText='&Description', helpText='help')] class MenuTestCase(test.wxTestCase): def setUp(self): super(MenuTestCase, self).setUp() self.frame.viewer = MockViewerContainer() self.menu = gui.menu.Menu(self.frame) menuBar = wx.MenuBar() menuBar.Append(self.menu, 'menu') self.frame.SetMenuBar(menuBar) class MenuTest(MenuTestCase): def testLenEmptyMenu(self): self.assertEqual(0, len(self.menu)) def testLenNonEmptyMenu(self): self.menu.AppendSeparator() self.assertEqual(1, len(self.menu)) class MenuWithBooleanMenuItemsTestCase(MenuTestCase): def setUp(self): super(MenuWithBooleanMenuItemsTestCase, self).setUp() self.settings = config.Settings(load=False) self.commands = self.createCommands() def createCommands(self): raise NotImplementedError # pragma: no cover def assertMenuItemsChecked(self, *expectedStates): for command in self.commands: self.menu.appendUICommand(command) self.menu.openMenu() for index, shouldBeChecked in enumerate(expectedStates): isChecked = self.menu.FindItemByPosition(index).IsChecked() if shouldBeChecked: self.failUnless(isChecked) else: self.failIf(isChecked) class MenuWithCheckItemsTest(MenuWithBooleanMenuItemsTestCase): def createCommands(self): return [uicommand.UICheckCommand(settings=self.settings, section='view', setting='statusbar')] def testCheckedItem(self): self.settings.set('view', 'statusbar', 'True') self.assertMenuItemsChecked(True) def testUncheckedItem(self): self.settings.set('view', 'statusbar', 'False') self.assertMenuItemsChecked(False) class MenuWithRadioItemsTest(MenuWithBooleanMenuItemsTestCase): def createCommands(self): return [uicommand.UIRadioCommand(settings=self.settings, section='view', setting='toolbar', value=value) \ for value in [None, (16, 16)]] def testRadioItem_FirstChecked(self): self.settings.setvalue('view', 'toolbar', None) self.assertMenuItemsChecked(True, False) def testRadioItem_SecondChecked(self): self.settings.setvalue('view', 'toolbar', (16, 16)) self.assertMenuItemsChecked(False, True) class MockIOController: def __init__(self): self.openCalled = False def open(self, *args, **kwargs): # pylint: disable=W0613 self.openCalled = True class RecentFilesMenuTest(test.wxTestCase): def setUp(self): super(RecentFilesMenuTest, self).setUp() self.ioController = MockIOController() self.settings = config.Settings(load=False) self.initialFileMenuLength = len(self.createFileMenu()) self.filename1 = 'c:/Program Files/TaskCoach/test.tsk' self.filename2 = 'c:/two.tsk' self.filenames = [] def createFileMenu(self): return gui.menu.FileMenu(self.frame, self.settings, self.ioController, None) def setRecentFilesAndCreateMenu(self, *filenames): self.addRecentFiles(*filenames) self.menu = self.createFileMenu() # pylint: disable=W0201 def addRecentFiles(self, *filenames): self.filenames.extend(filenames) self.settings.set('file', 'recentfiles', str(list(self.filenames))) def assertRecentFileMenuItems(self, *expectedFilenames): expectedFilenames = expectedFilenames or self.filenames self.openMenu() numberOfMenuItemsAdded = len(expectedFilenames) if numberOfMenuItemsAdded > 0: numberOfMenuItemsAdded += 1 # the extra separator self.assertEqual(self.initialFileMenuLength + numberOfMenuItemsAdded, len(self.menu)) for index, expectedFilename in enumerate(expectedFilenames): menuItem = self.menu.FindItemByPosition(self.initialFileMenuLength-1 + index) # Apparently the '&' can also be a '_' (seen on Ubuntu) expectedLabel = u'&%d %s' % (index + 1, expectedFilename) self.assertEqual(expectedLabel[1:], menuItem.GetText()[1:]) def openMenu(self): self.menu.onOpenMenu(wx.MenuEvent(menu=self.menu)) def testNoRecentFiles(self): self.setRecentFilesAndCreateMenu() self.assertRecentFileMenuItems() def testOneRecentFileWhenCreatingMenu(self): self.setRecentFilesAndCreateMenu(self.filename1) self.assertRecentFileMenuItems() def testTwoRecentFilesWhenCreatingMenu(self): self.setRecentFilesAndCreateMenu(self.filename1, self.filename2) self.assertRecentFileMenuItems() def testAddRecentFileAfterCreatingMenu(self): self.setRecentFilesAndCreateMenu() self.addRecentFiles(self.filename1) self.assertRecentFileMenuItems() def testOneRecentFileWhenCreatingMenuAndAddOneRecentFileAfterCreatingMenu(self): self.setRecentFilesAndCreateMenu(self.filename1) self.addRecentFiles(self.filename2) self.assertRecentFileMenuItems() def testOpenARecentFile(self): self.setRecentFilesAndCreateMenu(self.filename1) self.openMenu() menuItem = self.menu.FindItemByPosition(self.initialFileMenuLength - 1) self.menu.invokeMenuItem(menuItem) self.failUnless(self.ioController.openCalled) def testNeverShowMoreThanTheMaximumNumberAllowed(self): self.setRecentFilesAndCreateMenu(self.filename1, self.filename2) self.settings.set('file', 'maxrecentfiles', '1') self.assertRecentFileMenuItems(self.filename1) class ViewMenuTestCase(test.wxTestCase): def setUp(self): super(ViewMenuTestCase, self).setUp() self.settings = config.Settings(load=False) self.viewerContainer = MockViewerContainer() self.menuBar = wx.MenuBar() self.parentMenu = wx.Menu() self.menuBar.Append(self.parentMenu, 'parentMenu') self.menu = self.createMenu() self.parentMenu.AppendSubMenu(self.menu, 'menu') self.frame.SetMenuBar(self.menuBar) def createMenu(self): self.frame.viewer = self.viewerContainer menu = gui.menu.SortMenu(self.frame, self.parentMenu, 'menu') menu.updateMenu() return menu def testSortOrderAscending(self): self.viewerContainer.setSortOrderAscending(True) self.menu.UpdateUI() self.menu.openMenu() self.failUnless(self.menu.FindItemByPosition(0).IsChecked()) def testSortOrderDescending(self): self.viewerContainer.setSortOrderAscending(False) self.menu.UpdateUI() self.menu.openMenu() self.failIf(self.menu.FindItemByPosition(0).IsChecked()) def testSortBySubject(self): self.viewerContainer.sortBy('subject') self.menu.UpdateUI() self.menu.openMenu() self.failUnless(self.menu.FindItemByPosition(4).IsChecked()) self.failIf(self.menu.FindItemByPosition(5).IsChecked()) def testSortByDescription(self): self.viewerContainer.sortBy('description') self.menu.UpdateUI() self.menu.openMenu() self.failIf(self.menu.FindItemByPosition(4).IsChecked()) self.failUnless(self.menu.FindItemByPosition(5).IsChecked()) class StartEffortForTaskMenuTest(test.wxTestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.tasks = task.TaskList() self.menu = gui.menu.StartEffortForTaskMenu(self.frame, self.tasks) def addTask(self, subject='Subject'): newTask = task.Task(subject=subject, plannedStartDateTime=date.Now()) self.tasks.append(newTask) return newTask def addParentAndChild(self, parentSubject='Subject', childSubject='Subject'): parent = self.addTask(parentSubject) child = self.addTask(childSubject) parent.addChild(child) return parent, child def testMenuIsEmptyInitially(self): self.assertEqual(0, len(self.menu)) def testNewTasksAreAdded(self): self.addTask() self.assertEqual(1, len(self.menu)) def testDeletedTasksAreRemoved(self): newTask = self.addTask() self.tasks.remove(newTask) self.assertEqual(0, len(self.menu)) def testNewChildTasksAreAdded(self): self.addParentAndChild() self.assertEqual(2, len(self.menu)) def testDeletedChildTasksAreRemoved(self): child = self.addParentAndChild()[1] self.tasks.remove(child) self.assertEqual(1, len(self.menu)) def testTaskWithNonAsciiSubject(self): self.addParentAndChild(u'Jérôme', u'Jîrôme') self.menu.updateMenuItems() self.assertEqual(2, len(self.menu)) class ToggleCategoryMenuTest(test.wxTestCase): def setUp(self): self.categories = category.CategoryList() self.category1 = category.Category('Category 1') self.category2 = category.Category('Category 2') self.viewerContainer = MockViewerContainer() self.menu = gui.menu.ToggleCategoryMenu(self.frame, self.categories, self.viewerContainer) def setUpSubcategories(self): self.category1.addChild(self.category2) self.categories.append(self.category1) def testMenuInitiallyEmpty(self): self.assertEqual(0, len(self.menu)) def testOneCategory(self): self.categories.append(self.category1) self.assertEqual(1, len(self.menu)) def testTwoCategories(self): self.categories.extend([self.category1, self.category2]) self.assertEqual(2, len(self.menu)) def testSubcategory(self): self.setUpSubcategories() self.assertEqual(3, len(self.menu)) def testSubcategorySubmenuLabel(self): self.setUpSubcategories() self.assertEqual(gui.menu.ToggleCategoryMenu.subMenuLabel(self.category1), self.menu.GetMenuItems()[2].GetLabel()) def testSubcategorySubmenuItemLabel(self): self.setUpSubcategories() subMenu = self.menu.GetMenuItems()[2].GetSubMenu() label = subMenu.GetMenuItems()[0].GetLabel() self.assertEqual(self.category2.subject(), label) def testMutualExclusiveSubcategories_AreCheckItems(self): self.category1.makeSubcategoriesExclusive() self.setUpSubcategories() category3 = category.Category('Category 3') self.category1.addChild(category3) subMenu = self.menu.GetMenuItems()[2].GetSubMenu() for subMenuItem in subMenu.GetMenuItems(): self.assertEqual(wx.ITEM_CHECK, subMenuItem.GetKind()) def testMutualExclusiveSubcategories_NoneChecked(self): self.category1.makeSubcategoriesExclusive() self.setUpSubcategories() category3 = category.Category('Category 3') self.category1.addChild(category3) subMenuItems = self.menu.GetMenuItems()[2].GetSubMenu().GetMenuItems() checkedItems = [item for item in subMenuItems if item.IsChecked()] self.failIf(checkedItems) def testMutualExclusiveSubcategoriesWithSubcategories(self): self.category1.makeSubcategoriesExclusive() self.setUpSubcategories() category3 = category.Category('Category 3') self.category1.addChild(category3) category4 = category.Category('Category 4') category3.addChild(category4) subMenuItems = self.menu.GetMenuItems()[2].GetSubMenu().GetMenuItems() checkedItems = [item for item in subMenuItems if item.IsChecked()] self.failIf(checkedItems) class TaskTemplateMenuTest(test.wxTestCase): def testMenuIsUpdatedWhenTemplatesAreSaved(self): uicommands = [None] # Just a separator for testing purposes class TaskTemplateMenu(gui.menu.TaskTemplateMenu): def getUICommands(self): return uicommands settings = config.Settings(load=False) taskList = task.TaskList() menu = TaskTemplateMenu(self.frame, taskList, settings) self.assertEqual(1, len(menu)) uicommands.append(None) # Add another separator pub.sendMessage('templates.saved') self.assertEqual(2, len(menu)) taskcoach-1.4.3/tests/unittests/guiTests/NoteViewerTest.py000066400000000000000000000077531265347643000240210ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import gui, config, persistence from taskcoachlib.domain import note, attachment, category class NoteViewerTest(test.wxTestCase): def setUp(self): super(NoteViewerTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.note = note.Note() self.taskFile.notes().append(self.note) self.viewer = gui.viewer.NoteViewer(self.frame, self.taskFile, self.settings, notesToShow=self.taskFile.notes()) def tearDown(self): super(NoteViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def firstItem(self): widget = self.viewer.widget return widget.GetFirstChild(widget.GetRootItem())[0] def firstItemText(self, column=0): return self.viewer.widget.GetItemText(self.firstItem(), column) def firstItemIcon(self, column=0): return self.viewer.widget.GetItemImage(self.firstItem(), column=column) def testLocalNoteViewerForItemWithoutNotes(self): localViewer = gui.viewer.NoteViewer(self.frame, self.taskFile, self.settings, notesToShow=note.NoteContainer()) self.failIf(localViewer.presentation()) def testShowDescriptionColumn(self): self.note.setDescription('Description') self.viewer.showColumnByName('description') self.assertEqual('Description', self.firstItemText(column=1)) def testShowCategoriesColumn(self): newCategory = category.Category('Category') self.taskFile.categories().append(newCategory) self.note.addCategory(newCategory) newCategory.addCategorizable(self.note) self.viewer.showColumnByName('categories') self.assertEqual('Category', self.firstItemText(column=3)) def testShowAttachmentColumn(self): self.note.addAttachments(attachment.FileAttachment('whatever')) self.assertEqual(self.viewer.imageIndex['paperclip_icon'], self.firstItemIcon(column=2)) def testFilterOnAllCategories(self): cat1 = category.Category('category 1') cat2 = category.Category('category 2') self.note.addCategory(cat1) cat1.addCategorizable(self.note) self.taskFile.categories().extend([cat1, cat2]) cat1.setFiltered(True) cat2.setFiltered(True) self.assertEqual(1, self.viewer.size()) self.settings.setboolean('view', 'categoryfiltermatchall', True) self.assertEqual(0, self.viewer.size()) def testFilterOnAnyCategory(self): cat1 = category.Category('category 1') cat2 = category.Category('category 2') self.note.addCategory(cat1) cat1.addCategorizable(self.note) self.taskFile.categories().extend([cat1, cat2]) cat1.setFiltered(True) cat2.setFiltered(True) self.assertEqual(1, self.viewer.size()) self.settings.setboolean('view', 'categoryfiltermatchall', False) self.assertEqual(1, self.viewer.size()) taskcoach-1.4.3/tests/unittests/guiTests/PreferencesTest.py000077500000000000000000000040441265347643000241640ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import gui, config, persistence class PreferencesTest(test.wxTestCase): def setUp(self): super(PreferencesTest, self).setUp() self.settings = config.Settings(load=False) self.preferences = gui.Preferences(parent=self.frame, title='Test', settings=self.settings) self.originalColor = self.settings.get('fgcolor', 'activetasks') self.newColor = (1, 2, 29) # pylint: disable=W0212 def testCancel(self): self.preferences[5]._colorSettings[4][2].SetColour(self.newColor) self.preferences.cancel() self.assertEqual(self.originalColor, self.settings.get('fgcolor', 'activetasks')) def testOk(self): self.preferences[5]._colorSettings[4][2].SetColour(self.newColor) self.preferences.ok() self.assertEqual(self.newColor, eval(self.settings.get('fgcolor', 'activetasks'))[:3]) class SyncMLPreferencesTest(test.TestCase): def testCreate(self): taskFile = persistence.TaskFile() try: gui.dialog.syncpreferences.SyncMLPreferences(parent=None, iocontroller=gui.IOController(taskFile, None, None), title='Edit SyncML preferences') finally: taskFile.close() taskFile.stop() taskcoach-1.4.3/tests/unittests/guiTests/PrinterTest.py000066400000000000000000000122331265347643000233420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from taskcoachlib import gui, config class PrinterTest(test.TestCase): def setUp(self): super(PrinterTest, self).setUp() self.settings = config.Settings(load=False) self.margins = dict(top=1, left=2, bottom=3, right=4) self.printerSettings = gui.printer.PrinterSettings(self.settings) self.pageSetupData = wx.PageSetupDialogData() def tearDown(self): super(PrinterTest, self).tearDown() self.resetPrinterSettings() def resetPrinterSettings(self): gui.printer.PrinterSettings.deleteInstance() # pylint: disable=E1101 def testInitialSettings(self): printerSettings = self.printerSettings self.assertEqual(wx.Point(0, 0), printerSettings.GetMarginTopLeft()) self.assertEqual(0, printerSettings.GetPaperId()) self.assertEqual(wx.PORTRAIT, printerSettings.GetOrientation()) def testSetMargin(self): self.pageSetupData.SetMarginTopLeft(wx.Point(10, 1)) self.printerSettings.updatePageSetupData(self.pageSetupData) self.assertEqual(wx.Point(10, 1), self.printerSettings.GetMarginTopLeft()) def testDefaultMarginsFromSettings(self): settings = self.settings for margin in self.margins: self.assertEqual(0, settings.getint('printer', 'margin_'+margin)) def testSetPaperId(self): self.pageSetupData.SetPaperId(1) self.printerSettings.updatePageSetupData(self.pageSetupData) self.assertEqual(1, self.printerSettings.GetPaperId()) def testDefaultPaperIdFromSettings(self): self.assertEqual(0, self.settings.getint('printer', 'paper_id')) def testSetOrientation(self): self.pageSetupData.GetPrintData().SetOrientation(wx.LANDSCAPE) self.printerSettings.updatePageSetupData(self.pageSetupData) self.assertEqual(wx.LANDSCAPE, self.printerSettings.GetOrientation()) def testDefaultOrientationFromSettings(self): self.assertEqual(wx.PORTRAIT, self.settings.getint('printer', 'orientation')) def testUpdateMarginsInPageSetupDataUpdatesSettings(self): self.pageSetupData.SetMarginTopLeft(wx.Point(self.margins['left'], self.margins['top'])) self.pageSetupData.SetMarginBottomRight(wx.Point(self.margins['right'], self.margins['bottom'])) self.printerSettings.updatePageSetupData(self.pageSetupData) for margin in self.margins: self.assertEqual(self.margins[margin], self.settings.getint('printer', 'margin_'+margin)) def testUpdatePaperIdInPageSetupDataUpdatesSettings(self): self.pageSetupData.SetPaperId(1) self.printerSettings.updatePageSetupData(self.pageSetupData) self.assertEqual(1, self.settings.getint('printer', 'paper_id')) def testUpdateOrientationInPageSetupDataUpdatesSettings(self): self.pageSetupData.GetPrintData().SetOrientation(wx.LANDSCAPE) self.printerSettings.updatePageSetupData(self.pageSetupData) self.assertEqual(wx.LANDSCAPE, self.settings.getint('printer', 'orientation')) def testMarginsInPageSetupDataAreUpdatedFromSettings(self): self.resetPrinterSettings() for margin in self.margins: self.settings.set('printer', 'margin_'+margin, str(self.margins[margin])) printerSettings = gui.printer.PrinterSettings(self.settings) self.assertEqual(wx.Point(2, 1), printerSettings.GetMarginTopLeft()) self.assertEqual(wx.Point(4, 3), printerSettings.GetMarginBottomRight()) def testPaperIdInPageSetupDataIsUpdatedFromSettings(self): self.resetPrinterSettings() self.settings.set('printer', 'paper_id', '1') printerSettings = gui.printer.PrinterSettings(self.settings) self.assertEqual(1, printerSettings.GetPaperId()) def testOrientationInPageSetupDataIsUpdatedFromSettings(self): self.resetPrinterSettings() self.settings.set('printer', 'orientation', str(wx.LANDSCAPE)) printerSettings = gui.printer.PrinterSettings(self.settings) self.assertEqual(wx.LANDSCAPE, printerSettings.GetOrientation()) class HTMLPrintoutTest(test.TestCase): def testCreate(self): gui.printer.HTMLPrintout('', config.Settings(load=False)) taskcoach-1.4.3/tests/unittests/guiTests/ReminderControllerTest.py000066400000000000000000000141431265347643000255320ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx, time from taskcoachlib import gui, config, persistence from taskcoachlib.domain import task, date, effort class ReminderControllerUnderTest(gui.ReminderController): def __init__(self, *args, **kwargs): self.messages = [] self.userAttentionRequested = False super(ReminderControllerUnderTest, self).__init__(*args, **kwargs) def showReminderMessage(self, message): # pylint: disable=W0221 class DummyDialog(object): def __init__(self, *args, **kwargs): pass def Bind(self, *args, **kwargs): pass def Show(self): pass super(ReminderControllerUnderTest, self).showReminderMessage(message, DummyDialog) self.messages.append(message) def requestUserAttention(self): self.userAttentionRequested = True class DummyWindow(wx.Frame): def __init__(self): super(DummyWindow, self).__init__(None) self.taskFile = persistence.TaskFile() class ReminderControllerTestCase(test.TestCase): def setUp(self): task.Task.settings = settings = config.Settings(load=False) self.taskList = task.TaskList() self.effortList = effort.EffortList(self.taskList) self.dummyWindow = DummyWindow() self.reminderController = ReminderControllerUnderTest(self.dummyWindow, self.taskList, self.effortList, settings) self.nowDateTime = date.DateTime.now() self.reminderDateTime = self.nowDateTime + date.ONE_HOUR def tearDown(self): super(ReminderControllerTestCase, self).tearDown() self.dummyWindow.taskFile.close() self.dummyWindow.taskFile.stop() class ReminderControllerTest(ReminderControllerTestCase): def setUp(self): super(ReminderControllerTest, self).setUp() self.task = task.Task('Task') self.taskList.append(self.task) def testSetTaskReminderSchedulesJob(self): self.task.setReminder(self.reminderDateTime) self.failUnless(date.Scheduler().get_jobs()) @test.skipOnTwistedVersions('12.') def testAfterReminderJobIsRemovedFromScheduler(self): self.task.setReminder(date.Now() + date.TimeDelta(seconds=1)) self.failUnless(date.Scheduler().get_jobs()) t0 = time.time() from twisted.internet import reactor while time.time() - t0 < 1.1: reactor.iterate() self.failIf(date.Scheduler().get_jobs()) def testAddTaskWithReminderSchedulesJob(self): taskWithReminder = task.Task('Task with reminder', reminder=self.reminderDateTime) self.taskList.append(taskWithReminder) self.failUnless(date.Scheduler().get_jobs()) def testRemoveTaskWithReminderRemovesClockEventFromPublisher(self): self.task.setReminder(self.reminderDateTime) job = date.Scheduler().get_jobs()[0] self.taskList.remove(self.task) self.failIf(job in date.Scheduler().get_jobs()) def testChangeReminderRemovesOldReminder(self): self.task.setReminder(self.reminderDateTime) job = date.Scheduler().get_jobs()[0] self.task.setReminder(self.reminderDateTime + date.ONE_HOUR) jobs = date.Scheduler().get_jobs() self.assertEqual(len(jobs), 1) self.failIf(job is jobs[0]) def testMarkTaskCompletedRemovesReminder(self): self.task.setReminder(self.reminderDateTime) self.failUnless(date.Scheduler().get_jobs()) self.task.setCompletionDateTime(date.Now()) self.failIf(date.Scheduler().get_jobs()) def dummyCloseEvent(self, snoozeTimeDelta=None, openAfterClose=False): class DummySnoozeOptions(object): Selection = 0 def GetClientData(self, *args): # pylint: disable=W0613 return snoozeTimeDelta class DummyDialog(object): task = self.task openTaskAfterClose = openAfterClose ignoreSnoozeOption = False snoozeOptions = DummySnoozeOptions() def Destroy(self): pass class DummyEvent(object): EventObject = DummyDialog() def Skip(self): pass return DummyEvent() def testOnCloseReminderResetsReminder(self): self.task.setReminder(self.reminderDateTime) self.reminderController.onCloseReminderDialog(self.dummyCloseEvent(), show=False) self.assertEqual(None, self.task.reminder()) def testOnCloseReminderSetsReminder(self): self.task.setReminder(self.reminderDateTime) self.reminderController.onCloseReminderDialog(\ self.dummyCloseEvent(date.ONE_HOUR), show=False) self.failUnless(abs(self.nowDateTime + date.ONE_HOUR - self.task.reminder()) \ < date.TimeDelta(seconds=5)) def testOnCloseMayOpenTask(self): self.task.setReminder(self.reminderDateTime) frame = self.reminderController.onCloseReminderDialog(\ self.dummyCloseEvent(openAfterClose=True), show=False) self.failUnless(frame) def testOnWakeDoesNotRequestUserAttentionWhenThereAreNoReminders(self): self.reminderController.onReminder() self.failIf(self.reminderController.userAttentionRequested) taskcoach-1.4.3/tests/unittests/guiTests/ReminderDialogTest.py000066400000000000000000000063251265347643000246110ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.gui import dialog from taskcoachlib import config from taskcoachlib.domain import task, effort class DummyEvent(object): def Skip(self): pass class ReminderDialogTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) task.Task.settings = self.settings self.aTask = task.Task('subject') self.taskList = task.TaskList([self.aTask]) self.effortList = effort.EffortList(self.taskList) def createReminderDialog(self): return dialog.reminder.ReminderDialog(self.aTask, self.taskList, self.effortList, self.settings, None) def testRememberZeroSnoozeTime(self): reminderDialog = self.createReminderDialog() reminderDialog.snoozeOptions.SetSelection(0) reminderDialog.onClose(DummyEvent()) self.assertEqual(0, self.settings.getint('view', 'defaultsnoozetime')) def testRememberSnoozeTime(self): reminderDialog = self.createReminderDialog() reminderDialog.snoozeOptions.SetSelection(2) reminderDialog.onClose(DummyEvent()) self.assertEqual(10, self.settings.getint('view', 'defaultsnoozetime')) def testUseDefaultSnoozeTime(self): self.settings.set('view', 'defaultsnoozetime', '15') reminderDialog = self.createReminderDialog() self.assertEqual('15 minutes', reminderDialog.snoozeOptions.GetStringSelection()) def testDontUseDefaultSnoozeTimeWhenItsNotInTheListOfOptions(self): self.settings.set('view', 'defaultsnoozetime', '17') reminderDialog = self.createReminderDialog() self.assertEqual('5 minutes', reminderDialog.snoozeOptions.GetStringSelection()) def testRememberReminderReplaceDefaultSnoozeTime(self): reminderDialog = self.createReminderDialog() reminderDialog.replaceDefaultSnoozeTime.SetValue(False) reminderDialog.onClose(DummyEvent()) self.assertEqual(False, self.settings.getboolean('view', 'replacedefaultsnoozetime')) def testUseReminderReplaceDefaultSnoozeTime(self): self.settings.setboolean('view', 'replacedefaultsnoozetime', False) reminderDialog = self.createReminderDialog() self.assertEqual(False, reminderDialog.replaceDefaultSnoozeTime.GetValue()) taskcoach-1.4.3/tests/unittests/guiTests/SplashScreenTest.py000066400000000000000000000033661265347643000243200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib.gui import splash, icons class SplashTest(test.wxTestCase): def setUp(self): super(SplashTest, self).setUp() self.splashScreen = splash.SplashScreen() self.splashScreen.Hide() def tearDown(self): self.splashScreen.Destroy() super(SplashTest, self).tearDown() def assertCorrectBitmap(self): expectedBitmap = icons.catalog['splash'].getBitmap() actualBitmap = self.splashScreen.GetSplashWindow().GetBitmap() bitmapData = lambda bitmap: bitmap.ConvertToImage().GetData() self.assertEqual(bitmapData(expectedBitmap), bitmapData(actualBitmap)) def testTimeout(self): self.assertEqual(4000, self.splashScreen.GetTimeout()) def testBitmap(self): self.assertCorrectBitmap() def testMirrorBitmapBackWhenLanguageIsRTL(self): class FakeModule(object): def currentLanguageIsRightToLeft(self): return True splash.i18n = FakeModule() self.assertCorrectBitmap()taskcoach-1.4.3/tests/unittests/guiTests/TaskBarIconTest.py000066400000000000000000000134131265347643000240600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import meta, config, gui, operating_system from taskcoachlib.domain import task, effort, date import test class TaskFileMock(object): def filename(self): return 'filename' class MainWindowMock(object): taskFile = TaskFileMock() def __init__(self): self.__cb = None def restore(self): pass # pragma: no cover def Bind(self, evt, cb): self.__cb = cb def ProcessIdle(self): if self.__cb is not None: self.__cb(None) class TaskBarIconTestCase(test.TestCase): def setUp(self): self.taskList = task.TaskList() self.settings = task.Task.settings = config.Settings(load=False) self.window = MainWindowMock() self.icon = gui.TaskBarIcon(self.window, self.taskList, self.settings) def tearDown(self): # pragma: no cover if operating_system.isWindows(): self.icon.Destroy() else: self.icon.RemoveIcon() super(TaskBarIconTestCase, self).tearDown() class TaskBarIconTest(TaskBarIconTestCase): def testIcon_NoTasks(self): self.window.ProcessIdle() self.failUnless(self.icon.IsIconInstalled()) def testStartTracking(self): activeTask = task.Task() self.taskList.append(activeTask) activeTask.addEffort(effort.Effort(activeTask)) self.assertEqual('clock_icon', self.icon.bitmap()) def testStopTracking(self): activeTask = task.Task() self.taskList.append(activeTask) activeEffort = effort.Effort(activeTask) activeTask.addEffort(activeEffort) activeTask.removeEffort(activeEffort) self.assertEqual(self.icon.defaultBitmap(), self.icon.bitmap()) class TaskBarIconTooltipTestCase(TaskBarIconTestCase): def assertTooltip(self, text): expectedTooltip = '%s - %s' % (meta.name, TaskFileMock().filename()) if text: expectedTooltip += '\n%s' % text self.assertEqual(expectedTooltip, self.icon.tooltip()) class TaskBarIconTooltipTest(TaskBarIconTooltipTestCase): def testNoTasks(self): self.assertTooltip('') def testOneTaskNoDueDateTime(self): self.taskList.append(task.Task()) self.assertTooltip('') def testOneTaskDueSoon(self): self.taskList.append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.assertTooltip('one task due soon') def testOneTaskNoLongerDueSoonAfterChangingDueSoonSetting(self): self.taskList.append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.settings.setint('behavior', 'duesoonhours', 0) self.assertTooltip('') def testTwoTasksDueSoon(self): self.taskList.append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.taskList.append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.assertTooltip('2 tasks due soon') def testOneTasksOverdue(self): self.taskList.append(task.Task(dueDateTime=date.Yesterday())) self.assertTooltip('one task overdue') def testTwoTasksOverdue(self): self.taskList.append(task.Task(dueDateTime=date.Yesterday())) self.taskList.append(task.Task(dueDateTime=date.Yesterday())) self.assertTooltip('2 tasks overdue') def testOneTaskDueSoonAndOneTaskOverdue(self): self.taskList.append(task.Task(dueDateTime=date.Yesterday())) self.taskList.append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.assertTooltip('one task overdue, one task due soon') def testRemoveTask(self): newTask = task.Task() self.taskList.append(newTask) self.taskList.remove(newTask) self.assertTooltip('') def testRemoveOverdueTask(self): overdueTask = task.Task(dueDateTime=date.Yesterday()) self.taskList.append(overdueTask) self.taskList.remove(overdueTask) self.assertTooltip('') class TaskBarIconTooltipWithTrackedTaskTest(TaskBarIconTooltipTestCase): def setUp(self): super(TaskBarIconTooltipWithTrackedTaskTest, self).setUp() self.task = task.Task(subject='Subject') self.taskList.append(self.task) self.task.addEffort(effort.Effort(self.task)) def testStartTracking(self): self.assertTooltip('tracking "Subject"') def testStopTracking(self): self.task.efforts()[0].setStop(date.DateTime(2000, 1, 1, 10, 0, 0)) self.assertTooltip('') def testTrackingTwoTasks(self): activeTask = task.Task() self.taskList.append(activeTask) activeTask.addEffort(effort.Effort(activeTask)) self.assertTooltip('tracking effort for 2 tasks') def testChangingSubjectOfTrackedTask(self): self.task.setSubject('New subject') self.assertTooltip('tracking "New subject"') def testChangingSubjectOfTaskThatIsNotTrackedAnymore(self): self.task.efforts()[0].setStop(date.DateTime(2000, 1, 1, 10, 0, 0)) self.task.setSubject('New subject') self.assertTooltip('') taskcoach-1.4.3/tests/unittests/guiTests/TaskEditorTest.py000066400000000000000000000447461265347643000240060ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import gui, config, persistence, operating_system from taskcoachlib.domain import task, effort, date, note, attachment from taskcoachlib.gui import uicommand from unittests import dummy import test import wx class TaskEditorSetterMixin(object): def setSubject(self, newSubject): page = self.editor._interior[0] page._subjectEntry.SetFocus() page._subjectEntry.SetValue(newSubject) return page def setDescription(self, newDescription): page = self.editor._interior[0] page._descriptionEntry.SetFocus() page._descriptionEntry.SetValue(newDescription) return page def setPlannedStartDateTime(self, dateTime): self.setDateTime(self.editor._interior[1]._plannedStartDateTimeEntry, dateTime) def setDueDateTime(self, dateTime): self.setDateTime(self.editor._interior[1]._dueDateTimeEntry, dateTime) def setActualStartDateTime(self, dateTime): self.setDateTime(self.editor._interior[1]._actualStartDateTimeEntry, dateTime) def setCompletionDateTime(self, dateTime): self.setDateTime(self.editor._interior[1]._completionDateTimeEntry, dateTime) def setReminder(self, dateTime): self.setDateTime(self.editor._interior[1]._reminderDateTimeEntry, dateTime) def setDateTime(self, entry, dateTime): entry.SetValue(dateTime) entry.onDateTimeCtrlEdited() wx.YieldIfNeeded() def setRecurrence(self, newRecurrence): recurrenceEntry = self.editor._interior[1]._recurrenceEntry recurrenceEntry.SetValue(newRecurrence) recurrenceEntry.onRecurrenceEdited() wx.YieldIfNeeded() class TaskEditorBySettingFocusMixin(TaskEditorSetterMixin): def setSubject(self, newSubject): page = super(TaskEditorBySettingFocusMixin, self).setSubject(newSubject) if operating_system.isGTK(): page._subjectSync.onAttributeEdited(dummy.Event()) # pragma: no cover else: page._descriptionEntry.SetFocus() # pragma: no cover def setDescription(self, newDescription): page = super(TaskEditorBySettingFocusMixin, self).setDescription(newDescription) if operating_system.isGTK(): page._descriptionSync.onAttributeEdited(dummy.Event()) # pragma: no cover else: page._subjectEntry.SetFocus() # pragma: no cover class TaskEditBookWithPerspective(gui.dialog.editor.TaskEditBook): testPerspective = '503e3c7d0000018300000002=+0,1,2,3,4,5,6,7,8,9@layout2|name=dummy;caption=;state=67372030;dir=3;layer=0;row=0;pos=0;prop=100000;bestw=381;besth=173;minw=381;minh=173;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1;notebookid=-1;transparent=255|name=503e3c7d0000018300000002;caption=;state=67372028;dir=5;layer=0;row=0;pos=0;prop=100000;bestw=200;besth=200;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1;notebookid=-1;transparent=255|dock_size(5,0,0)=202|' def perspective(self): return self.testPerspective class TaskEditorWithPerspective(gui.dialog.editor.TaskEditor): EditBookClass = TaskEditBookWithPerspective class TaskEditorTestCase(test.wxTestCase): extraSettings = list() editorClass = gui.dialog.editor.TaskEditor def setUp(self): super(TaskEditorTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) for section, name, value in self.extraSettings: self.settings.set(section, name, value) self.today = date.Now() self.tomorrow = self.today + date.ONE_DAY self.yesterday = self.today - date.ONE_DAY self.twodaysago = self.yesterday - date.ONE_DAY self.taskFile = persistence.TaskFile() self.taskList = self.taskFile.tasks() self.taskList.extend(self.createTasks()) self.editor = self.editorClass(self.frame, self.getItems(), self.settings, self.taskList, self.taskFile) def tearDown(self): # TaskEditor uses CallAfter for setting the focus, make sure those # calls are dealt with, otherwise they'll turn up in other tests if operating_system.isGTK(): wx.Yield() # pragma: no cover super(TaskEditorTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() def createTasks(self): raise NotImplementedError # pragma: no cover def getItems(self): raise NotImplementedError # pragma: no cover class EditorDisplayTest(TaskEditorTestCase): ''' Does the editor display the task data correctly when opened? ''' def getItems(self): return [self.task] def createTasks(self): # pylint: disable=W0201 self.task = task.Task('Task to edit') self.stop_datetime = date.DateTime(2012, 12, 12, 12, 12) self.task.setRecurrence( \ date.Recurrence('daily', amount=1, stop_datetime=self.stop_datetime)) return [self.task] def testSubject(self): self.assertEqual('Task to edit', self.editor._interior[0]._subjectEntry.GetValue()) def testDueDateTime(self): self.assertEqual(date.DateTime(), self.editor._interior[1]._dueDateTimeEntry.GetValue()) def testActualStartDateTime(self): self.assertEqual(date.DateTime(), self.editor._interior[1]._actualStartDateTimeEntry.GetValue()) def testRecurrenceUnit(self): choice = self.editor._interior[1]._recurrenceEntry._recurrencePeriodEntry self.assertEqual('Daily', choice.GetString(choice.GetSelection())) def testRecurrenceFrequency(self): freq = self.editor._interior[1]._recurrenceEntry._recurrenceFrequencyEntry self.assertEqual(1, freq.GetValue()) def testRecurrenceStopDateTime(self): stop = self.editor._interior[1]._recurrenceEntry._recurrenceStopDateTimeEntry self.assertEqual(self.stop_datetime, stop.GetValue()) class EditTaskTestMixin(object): def getItems(self): return [self.task] def createTasks(self): # pylint: disable=W0201 self.task = task.Task('Task to edit') self.attachment = attachment.FileAttachment('some attachment') self.task.addAttachments(self.attachment) # pylint: disable=E1101 return [self.task] def testEditSubject(self): self.setSubject('Done') self.assertEqual('Done', self.task.subject()) def testEditDescription(self): self.setDescription('Description') self.assertEqual('Description', self.task.description()) # pylint: disable=W0212 def testSetPlannedStartDateTime(self): self.setPlannedStartDateTime(self.tomorrow) self.assertAlmostEqual(self.tomorrow.toordinal(), self.task.plannedStartDateTime().toordinal(), places=2) def testSetDueDateTime(self): self.setDueDateTime(self.tomorrow) self.assertAlmostEqual(self.tomorrow.toordinal(), self.task.dueDateTime().toordinal(), places=2) def testSetActualStartDateTime(self): self.setActualStartDateTime(self.tomorrow) self.assertAlmostEqual(self.tomorrow.toordinal(), self.task.actualStartDateTime().toordinal(), places=2) def testSetCompletionDateTime(self): self.setCompletionDateTime(self.tomorrow) self.assertAlmostEqual(self.tomorrow.toordinal(), self.task.completionDateTime().toordinal(), places=2) def testSetUncompleted(self): self.setCompletionDateTime(date.Now()) self.setCompletionDateTime(date.DateTime()) self.assertEqual(date.DateTime(), self.task.completionDateTime()) def testSetReminder(self): reminderDateTime = date.DateTime(2005,1,1) self.setReminder(reminderDateTime) self.assertEqual(reminderDateTime, self.task.reminder()) def testSetRecurrence(self): self.setRecurrence(date.Recurrence('weekly')) self.assertEqual('weekly', self.task.recurrence().unit) def testSetDailyRecurrence(self): self.setRecurrence(date.Recurrence('daily', amount=1)) self.assertEqual('daily', self.task.recurrence().unit) self.assertEqual(1, self.task.recurrence().amount) def testSetYearlyRecurrence(self): self.setRecurrence(date.Recurrence('yearly')) self.assertEqual('yearly', self.task.recurrence().unit) def testSetMaxRecurrence(self): self.setRecurrence(date.Recurrence('weekly', maximum=10)) self.assertEqual(10, self.task.recurrence().max) def testSetRecurrenceStopDateTime(self): stop = date.DateTime(2012, 3, 4, 10, 0) self.setRecurrence(date.Recurrence('weekly', stop_datetime=stop)) self.assertEqual(stop, self.task.recurrence().stop_datetime) def testSetRecurrenceFrequency(self): self.setRecurrence(date.Recurrence('weekly', amount=3)) self.assertEqual(3, self.task.recurrence().amount) def testSetRecurrenceSameWeekday(self): self.setRecurrence(date.Recurrence('monthly', sameWeekday=True)) self.failUnless(self.task.recurrence().sameWeekday) def testPriority(self): self.editor._interior[0]._priorityEntry.SetValue(45) self.assertEqual(45, self.editor._interior[0]._priorityEntry.GetValue()) def testSetNegativePriority(self): self.editor._interior[0]._priorityEntry.SetValue(-1) self.editor._interior[0]._prioritySync.onAttributeEdited(dummy.Event()) self.assertEqual(-1, self.task.priority()) def testSetHourlyFee(self): self.editor._interior[5]._hourlyFeeEntry.SetValue(100) self.editor._interior[5]._hourlyFeeSync.onAttributeEdited(dummy.Event()) self.assertEqual(100, self.task.hourlyFee()) def testSetFixedFee(self): self.editor._interior[5]._fixedFeeEntry.SetValue(100.5) self.editor._interior[5]._fixedFeeSync.onAttributeEdited(dummy.Event()) self.assertEqual(100.5, self.task.fixedFee()) def testBehaviorMarkCompleted(self): page = self.editor._interior[3] page._shouldMarkCompletedEntry.SetStringSelection('Yes') page._shouldMarkCompletedSync.onAttributeEdited(dummy.Event()) self.assertEqual(True, self.task.shouldMarkCompletedWhenAllChildrenCompleted()) def testAddAttachment(self): self.editor._interior[8].viewer.onDropFiles(self.task, ['filename']) # pylint: disable=E1101 self.failUnless('filename' in [att.location() for att in self.task.attachments()]) self.failUnless('filename' in [att.subject() for att in self.task.attachments()]) def testRemoveAttachment(self): self.editor._interior[8].viewer.select(self.task.attachments()) self.editor._interior[8].viewer.deleteItemCommand().do() self.assertEqual([], self.task.attachments()) # pylint: disable=E1101 def testOpenAttachmentWithNonAsciiFileName(self): self.errorMessage = '' # pylint: disable=W0201 def onError(*args, **kwargs): # pylint: disable=W0613 self.errorMessage = args[0] # pragma: no cover att = attachment.FileAttachment(u'tést.é') openAttachment = uicommand.AttachmentOpen(\ viewer=self.editor._interior[6].viewer, attachments=attachment.AttachmentList([att]), settings=self.settings) openAttachment.doCommand(None, showerror=onError) self.failIf(self.errorMessage) def testAddNote(self): viewer = self.editor._interior[7].viewer viewer.newItemCommand(viewer.presentation()).do() self.assertEqual(1, len(self.task.notes())) def testAddNoteWithSubnote(self): parent = note.Note(subject='New note') child = note.Note(subject='Child') parent.addChild(child) child.setParent(parent) viewer = self.editor._interior[7].viewer viewer.newItemCommand(viewer.presentation()).do() viewer.newSubItemCommandClass()(list=viewer.presentation(), items=viewer.presentation()).do() # Only the parent note should be added to the notes list: self.assertEqual(1, len(self.task.notes())) def testNewNote(self): viewer = self.editor._interior[7].viewer wx.GetApp().TopWindow.taskFile = self.taskFile command = gui.uicommand.NoteNew(notes=viewer.presentation(), settings=self.settings, viewer=viewer) dialog = command.doCommand(None, show=False) dialog.ok() self.assertEqual(1, len(self.task.notes())) class EditTaskTestBySettingFocus(TaskEditorBySettingFocusMixin, EditTaskTestMixin, TaskEditorTestCase): pass class EditTaskWithChildrenMixin(object): def getItems(self): return [self.parent] def createTasks(self): # pylint: disable=W0201 self.parent = task.Task('Parent', plannedStartDateTime=date.Now()) self.child = task.Task('Child', plannedStartDateTime=date.Now()) self.parent.addChild(self.child) return [self.parent] # self.child is added to tasklist automatically def testEditSubject(self): self.setSubject('New Parent Subject') self.assertEqual('New Parent Subject', self.parent.subject()) class EditTaskWithChildrenTestBySettingFocus(TaskEditorBySettingFocusMixin, EditTaskWithChildrenMixin, TaskEditorTestCase): pass class EditTaskWithEffortTest(TaskEditorTestCase): def getItems(self): return [self.task] def createTasks(self): self.task = task.Task('task') # pylint: disable=W0201 self.task.addEffort(effort.Effort(self.task)) return [self.task] def testEffortIsShown(self): self.assertEqual(1, self.editor._interior[6].viewer.widget.GetItemCount()) class FocusTest(TaskEditorTestCase): def createTasks(self): self.task = task.Task('Task to edit') return [self.task] def getItems(self): return [self.task] def testFocus(self): # pylint: disable=W0212 self.assertEqual(self.editor._interior[0]._subjectEntry, wx.Window_FindFocus()) def testSelection(self): # pylint: disable=W0212 self.assertEqual(self.editor._interior[0]._subjectEntry.GetStringSelection(), self.editor._interior[0]._subjectEntry.GetValue()) class FocusTestWithGTKSetting(TaskEditorTestCase): extraSettings = [('os_linux', 'focustextentry', 'False')] def createTasks(self): self.task = task.Task('Task to edit') return [self.task] def getItems(self): return [self.task] def testFocus(self): # pylint: disable=W0212 self.assertNotEqual(self.editor._interior[0]._subjectEntry, wx.Window_FindFocus()) def testSelection(self): # pylint: disable=W0212 self.assertEqual(self.editor._interior[0]._subjectEntry.GetStringSelection(), u'') class FocusTestWithPerspective(FocusTest): editorClass = TaskEditorWithPerspective class FocusTestWithPerspectiveAndGTKSetting(FocusTestWithGTKSetting): editorClass = TaskEditorWithPerspective class DatesTestBase(TaskEditorSetterMixin, TaskEditorTestCase): def createTasks(self): # pylint: disable=W0201 self.task = task.Task('Task to edit') return [self.task] def getItems(self): return [self.task] class DatesStartDueTest(DatesTestBase): extraSettings = [('view', 'datestied', 'startdue')] def testChangePlannedStartDateChangesDueDate(self): self.setPlannedStartDateTime(self.yesterday) self.setDueDateTime(self.today) self.setPlannedStartDateTime(self.today) self.assertAlmostEqual(self.editor._interior[1]._dueDateTimeEntry.GetValue().toordinal(), self.tomorrow.toordinal(), places=2) class DatesDueStartBase(DatesTestBase): extraSettings = [('view', 'datestied', 'duestart')] def testChangeDueDateChangesPlannedStartDate(self): self.setPlannedStartDateTime(self.yesterday) self.setDueDateTime(self.today) self.setDueDateTime(self.yesterday) self.assertAlmostEqual(self.editor._interior[1]._plannedStartDateTimeEntry.GetValue().toordinal(), self.twodaysago.toordinal(), places=2) class DatesTest(DatesTestBase): def testChangePlannedStartDateDoesNotChangeDueDate(self): self.setPlannedStartDateTime(self.yesterday) self.setDueDateTime(self.today) self.setPlannedStartDateTime(self.today) self.assertAlmostEqual(self.editor._interior[1]._dueDateTimeEntry.GetValue().toordinal(), self.today.toordinal(), places=2) def testChangeDueDateDoesNotChangePlannedStartDate(self): self.setPlannedStartDateTime(self.yesterday) self.setDueDateTime(self.today) self.setDueDateTime(self.yesterday) self.assertAlmostEqual(self.editor._interior[1]._plannedStartDateTimeEntry.GetValue().toordinal(), self.yesterday.toordinal(), places=2) taskcoach-1.4.3/tests/unittests/guiTests/TaskViewerStatusMessagesTest.py000066400000000000000000000171071265347643000267040ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import gui, config from taskcoachlib.domain import task, date class DummyViewer(object): def __init__(self, presentation): self._presentation = presentation self._selection = [] def presentation(self): return self._presentation def curselection(self): return self._selection def nrOfVisibleTasks(self): return len(self._presentation) class TaskViewerStatusMessagesTest(test.TestCase): def setUp(self): super(TaskViewerStatusMessagesTest, self).setUp() task.Task.settings = config.Settings(load=False) self.taskList = task.filter.ViewFilter(task.TaskList()) self.task = task.Task('Task') self.viewer = DummyViewer(self.taskList) self.status = gui.viewer.task.TaskViewerStatusMessages(self.viewer) self.template1 = 'Tasks: %d selected, %d visible, %d total' self.template2 = 'Status: %d overdue, %d late, %d inactive, %d completed' # Helper methods def assertMessages(self, selected=0, visible=0, total=0, overdue=0, late=0, inactive=0, completed=0): message1 = self.template1%(selected, visible, total) message2 = self.template2%(overdue, late, inactive, completed) self.assertEqual((message1, message2), self.status()) def addActiveTask(self): self.task.setActualStartDateTime(date.Now()) self.taskList.append(self.task) def addOverdueTask(self): self.task.setDueDateTime(date.Now() - date.ONE_HOUR) self.taskList.append(self.task) def addInactiveTask(self): self.taskList.append(self.task) def addCompletedTask(self): self.task.setCompletionDateTime(date.Now()) self.taskList.append(self.task) def addLateTask(self): self.task.setPlannedStartDateTime(date.Yesterday()) self.taskList.append(self.task) def removeTask(self): self.taskList.remove(self.task) def markTaskCompleted(self): self.task.setCompletionDateTime(date.Now()) def markTaskUncompleted(self): self.task.setCompletionDateTime(date.DateTime()) def makeTaskActive(self): self.task.setActualStartDateTime(date.Now()) def makeTaskInactive(self): self.task.setActualStartDateTime(date.DateTime()) def selectTask(self): self.viewer._selection = [self.task] def hideCompletedTasks(self): self.taskList.hideTaskStatus(task.status.completed) def showCompletedTasks(self): self.taskList.hideTaskStatus(task.status.completed, False) # Tests def testDefaultMessages(self): self.assertMessages() def testAddActiveTask(self): self.addActiveTask() self.assertMessages(visible=1, total=1) def testAddInactiveTask(self): self.addInactiveTask() self.assertMessages(visible=1, total=1, inactive=1) def testAddOverdueTask(self): self.addOverdueTask() self.assertMessages(visible=1, total=1, inactive=0, overdue=1) def testAddCompletedTask(self): self.addCompletedTask() self.assertMessages(visible=1, total=1, completed=1) def testAddLateTask(self): self.addLateTask() self.assertMessages(visible=1, late=1, total=1) def testRemoveActiveTask(self): self.addActiveTask() self.removeTask() self.assertMessages() def testRemoveInactiveTask(self): self.addInactiveTask() self.removeTask() self.assertMessages() def testRemoveOverdueTask(self): self.addOverdueTask() self.removeTask() self.assertMessages() def testRemoveCompletedTask(self): self.addCompletedTask() self.removeTask() self.assertMessages() def testMarkInactiveTaskCompleted(self): self.addInactiveTask() self.markTaskCompleted() self.assertMessages(visible=1, total=1, completed=1) def testMarkActiveTaskCompleted(self): self.addCompletedTask() self.markTaskCompleted() self.assertMessages(visible=1, total=1, completed=1) def testMarkCompletedTaskUncompleted(self): self.addCompletedTask() self.markTaskUncompleted() self.assertMessages(visible=1, total=1, inactive=1) def testMakeInactiveTaskActive(self): self.addInactiveTask() self.makeTaskActive() self.assertMessages(visible=1, total=1) def testMakeActiveTaskInactive(self): self.addActiveTask() self.makeTaskInactive() self.assertMessages(visible=1, total=1, inactive=1) def testMakeCompletedTaskInactive(self): self.addActiveTask() self.markTaskCompleted() self.makeTaskInactive() # Completed tasks are never considered to be inactive: self.assertMessages(visible=1, total=1, completed=1) def testMakeCompletedTaskActive(self): self.addInactiveTask() self.markTaskCompleted() self.makeTaskActive() # Completed tasks are never considered to be inactive: self.assertMessages(visible=1, total=1, completed=1) def testTotalWhenHidingCompletedTasks(self): self.addCompletedTask() self.hideCompletedTasks() self.assertMessages(total=1, completed=1) def testTotalWhenShowingCompletedTasks(self): self.hideCompletedTasks() self.addCompletedTask() self.showCompletedTasks() self.assertMessages(visible=1, total=1, completed=1) def testTotalWhenHidingCompletedTasksWithActiveTask(self): self.taskList.append(task.Task(actualStartDateTime=date.Now())) self.addCompletedTask() self.hideCompletedTasks() self.assertMessages(visible=1, total=2, completed=1) def testSelectedActiveTask(self): self.addActiveTask() self.selectTask() self.assertMessages(selected=1, visible=1, total=1) def testSelectedInactiveTask(self): self.addInactiveTask() self.selectTask() self.assertMessages(selected=1, visible=1, total=1, inactive=1) def testSelectedCompletedTask(self): self.addCompletedTask() self.selectTask() self.assertMessages(selected=1, visible=1, total=1, completed=1) def testSelectedOverdueTask(self): self.addOverdueTask() self.selectTask() self.assertMessages(selected=1, visible=1, total=1, overdue=1, inactive=0) taskcoach-1.4.3/tests/unittests/guiTests/TaskViewerTest.py000077500000000000000000001400321265347643000240050ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import gui, config, persistence, command, patterns, render, \ operating_system from taskcoachlib.domain import task, date, effort, category, attachment from taskcoachlib.i18n import _ import locale import os import test import wx import weakref class TaskViewerUnderTest(gui.viewer.task.TaskViewer): # pylint: disable=W0223 def __init__(self, *args, **kwargs): super(TaskViewerUnderTest, self).__init__(*args, **kwargs) self.events = [] self.events_deprecated = [] def onAttributeChanged(self, newValue, sender): super(TaskViewerUnderTest, self).onAttributeChanged(newValue, sender) self.events.append((newValue, sender)) def onAttributeChanged_Deprecated(self, event): super(TaskViewerUnderTest, self).onAttributeChanged_Deprecated(event) self.events_deprecated.append(event) class TaskViewerTestCase(test.wxTestCase): treeMode = 'Subclass responsibility' def setUp(self): super(TaskViewerTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.task = task.Task(subject='task', plannedStartDateTime=date.Now()) self.child = task.Task(subject='child', plannedStartDateTime=date.Now()) self.child.setParent(self.task) self.taskFile = persistence.TaskFile() self.taskList = self.taskFile.tasks() self.parentFrame = wx.Frame(self.frame, wx.ID_ANY, '') self.viewer = TaskViewerUnderTest(self.parentFrame, self.taskFile, self.settings) self.viewer.sortBy('subject') self.viewer.setSortOrderAscending() self.viewer.setSortByTaskStatusFirst(True) self.settings.setboolean(self.viewer.settingsSection(), 'treemode', self.treeMode) self.newColor = (100, 200, 100, 255) attachment.Attachment.attdir = os.getcwd() if not operating_system.isGTK(): self.originalLocale = locale.getlocale(locale.LC_ALL) tmpLocale = os.environ['LC_ALL'] if 'LC_ALL' in os.environ else ('en_US' if operating_system.isMac() else '') locale.setlocale(locale.LC_ALL, tmpLocale) def tearDown(self): super(TaskViewerTestCase, self).tearDown() if not operating_system.isGTK(): locale.setlocale(locale.LC_ALL, self.originalLocale) attachment.Attachment.attdir = None self.taskFile.close() self.taskFile.stop() for name in os.listdir('.'): if os.path.isdir(name) and name.endswith('_attachments'): os.rmdir(name) # pragma: no cover if os.path.isfile('test.mail'): os.remove('test.mail') if self.viewer: self.viewer.detach() self.viewer = None if self.parentFrame: self.parentFrame.Close() wx.Yield() def assertItems(self, *tasks): self.viewer.expandAll() # pylint: disable=E1101 self.assertEqual(self.viewer.size(), len(tasks)) for index, eachTask in enumerate(tasks): self.assertItem(index, eachTask) def assertItem(self, index, aTask): if type(aTask) == type((), ): aTask, nrChildren = aTask else: nrChildren = 0 subject = aTask.subject(recursive=not self.viewer.isTreeViewer()) treeItem = self.viewer.widget.GetItemChildren(recursively=True)[index] self.assertEqual(subject, self.viewer.widget.GetItemText(treeItem)) self.assertEqual(nrChildren, self.viewer.widget.GetChildrenCount(treeItem, recursively=False)) def firstItem(self): widget = self.viewer.widget return widget.GetFirstChild(widget.GetRootItem())[0] def getItemText(self, row, column): assert row == 0 return self.viewer.widget.GetItemText(self.firstItem(), column) def getFirstItemTextColor(self): return self.viewer.widget.GetItemTextColour(self.firstItem()) def getFirstItemBackgroundColor(self): return self.viewer.widget.GetItemBackgroundColour(self.firstItem()) def getFirstItemFont(self): return self.viewer.widget.GetItemFont(self.firstItem()) def getFirstItemIcon(self, column=0): return self.viewer.widget.GetItemImage(self.firstItem(), column=column) def showColumn(self, columnName, show=True): self.viewer.showColumnByName(columnName, show) def setColor(self, setting): self.settings.settuple('fgcolor', setting, self.newColor) def assertColor(self, expectedColor=None): expectedColor = expectedColor or wx.Colour(*self.newColor) self.assertEqual(expectedColor, self.getFirstItemTextColor()) def assertBackgroundColor(self): self.assertEqual(wx.Colour(*self.newColor), self.getFirstItemBackgroundColor()) def assertIcon(self, icon, column=0): self.assertEqual(self.viewer.imageIndex[icon], self.getFirstItemIcon(column)) class CommonTestsMixin(object): def testCreate(self): self.assertItems() ## def testCollected(self): ## filterRef = weakref.ref(self.viewer.presentation()) ## self.viewer.detach() ## self.viewer = None ## self.parentFrame.Close() ## wx.Yield() ## self.parentFrame = None ## ## import gc ## ## def printRef(obj, indent=0): ## ## if indent == 3: ## ## return ## ## if obj.__class__.__name__ in ['frame']: ## ## return ## ## print (' ' * indent), obj.__class__.__name__ ## ## for ref in gc.get_referrers(obj): ## ## printRef(ref, indent + 1) ## ## print ## ## printRef(filterRef()) ## ## print '===', len(gc.get_referrers(filterRef())) ## self.failUnless(filterRef() is None) def testAddTask(self): self.taskList.append(self.task) self.assertItems(self.task) def testRemoveTask(self): self.taskList.append(self.task) self.taskList.remove(self.task) self.assertItems() def testUndoRemoveTaskWithSubtask(self): self.task.addChild(self.child) self.taskList.append(self.task) self.viewer.select([self.task]) self.viewer.updateSelection() deleteItem = self.viewer.deleteItemCommand() deleteItem.do() deleteItem.undo() if self.viewer.isTreeViewer(): self.assertItems((self.task, 1), self.child) else: self.assertItems(self.child, self.task) def testDeleteSelectedTask(self): self.taskList.append(self.task) self.viewer.widget.select_all() self.viewer.updateSelection() self.taskList.removeItems(self.viewer.curselection()) self.assertItems() def testSelectedTaskStaysSelectedWhenStartingEffortTracking(self): self.taskList.append(self.task) self.viewer.select([self.task]) self.assertEqual([self.task], self.viewer.curselection()) self.task.addEffort(effort.Effort(self.task)) self.assertEqual([self.task], self.viewer.curselection()) def testChildOrder(self): child1 = task.Task(subject='1', plannedStartDateTime=date.Now() - date.ONE_SECOND) self.task.addChild(child1) child2 = task.Task(subject='2', plannedStartDateTime=date.Now() - date.ONE_SECOND) self.task.addChild(child2) self.taskList.append(self.task) if self.viewer.isTreeViewer(): self.assertItems((self.task, 2), child1, child2) else: self.assertItems(child1, child2, self.task) def testChildSubjectRendering(self): self.task.addChild(self.child) self.taskList.append(self.task) if self.viewer.isTreeViewer(): self.assertItems((self.task, 1), self.child) else: self.assertItems(self.child, self.task) def testSortOrder(self): self.task.addChild(self.child) task2 = task.Task(subject='zzz') self.taskList.extend([self.task, task2]) if self.viewer.isTreeViewer(): self.assertItems((self.task, 1), self.child, task2) else: self.assertItems(self.child, self.task, task2) def testMarkCompleted(self): task2 = task.Task(subject='task2') self.taskList.extend([self.task, task2]) self.assertItems(self.task, task2) self.task.setCompletionDateTime() self.assertItems(task2, self.task) def testMakeInactive(self): task2 = task.Task(subject='task2', plannedStartDateTime=date.Now() - date.ONE_SECOND) self.taskList.extend([self.task, task2]) self.assertItems(self.task, task2) self.task.setPlannedStartDateTime(date.Tomorrow()) self.assertItems(task2, self.task) def testFilterCompletedTasks(self): self.viewer.hideTaskStatus(task.status.completed) completedChild = task.Task(completionDateTime=date.Now() - date.ONE_HOUR) notCompletedChild = task.Task(plannedStartDateTime=date.Now() - date.ONE_SECOND) self.task.addChild(notCompletedChild) self.task.addChild(completedChild) self.taskList.append(self.task) if self.viewer.isTreeViewer(): self.assertItems((self.task, 1), notCompletedChild) else: self.assertItems(notCompletedChild, self.task) def testUndoMarkCompletedWhenFilteringCompletedTasks(self): self.settings.setboolean('behavior', 'markparentcompletedwhenallchildrencompleted', True) self.viewer.hideTaskStatus(task.status.completed) child1 = task.Task('child1') child2 = task.Task('child2') grandChild = task.Task('grandChild') self.task.addChild(child1) self.task.addChild(child2) child2.addChild(grandChild) self.taskList.append(self.task) self.viewer.expandAll() self.assertEqual(4, self.viewer.size()) markCompletedCommand = command.MarkCompletedCommand(self.taskList, [grandChild]) markCompletedCommand.do() self.assertEqual(2, self.viewer.size()) patterns.CommandHistory().undo() self.assertEqual(4, self.viewer.size()) def testFilterOnAllCategories(self): self.settings.setboolean('view', 'categoryfiltermatchall', False) self.taskList.append(self.task) cat1 = category.Category('category 1') cat2 = category.Category('category 2') self.task.addCategory(cat1) cat1.addCategorizable(self.task) self.taskFile.categories().extend([cat1, cat2]) cat1.setFiltered(True) cat2.setFiltered(True) self.assertEqual(1, self.viewer.size()) self.settings.setboolean('view', 'categoryfiltermatchall', True) self.assertEqual(0, self.viewer.size()) def testFilterOnAnyCategory(self): self.settings.setboolean('view', 'categoryfiltermatchall', True) self.taskList.append(self.task) cat1 = category.Category('category 1') cat2 = category.Category('category 2') self.task.addCategory(cat1) cat1.addCategorizable(self.task) self.taskFile.categories().extend([cat1, cat2]) cat1.setFiltered(True) cat2.setFiltered(True) self.assertEqual(0, self.viewer.size()) self.settings.setboolean('view', 'categoryfiltermatchall', False) self.assertEqual(1, self.viewer.size()) def testDefaultVisibleColumns(self): self.assertEqual(_('Subject'), self.viewer.widget.GetColumn(0).GetText()) self.assertEqual(_('Planned start date'), self.viewer.widget.GetColumn(1).GetText()) self.assertEqual(_('Due date'), self.viewer.widget.GetColumn(2).GetText()) self.assertEqual(3, self.viewer.widget.GetColumnCount()) def testTurnOffPlannedStartDateColumn(self): self.showColumn('plannedStartDateTime', False) self.assertEqual(_('Due date'), self.viewer.widget.GetColumn(1).GetText()) self.assertEqual(2, self.viewer.widget.GetColumnCount()) def testShowSort_Subject(self): self.assertNotEqual(-1, self.viewer.widget.GetColumn(0).GetImage()) self.assertEqual(-1, self.viewer.widget.GetColumn(1).GetImage()) def testForegroundColorWhenTaskIsCompleted(self): self.taskList.append(self.task) self.task.setCompletionDateTime() newColor = self.task.statusFgColor() newColor = wx.Colour(newColor.Red(), newColor.Green(), newColor.Blue()) self.assertColor(newColor) def testTurnColumnsOnAndOff(self): columns = dict(actualStartDateTime=(3, _('Actual start date')), hourlyFee=(3, _('Hourly fee')), fixedFee=(3, _('Fixed fee')), revenue=(3, _('Revenue')), priority=(3, _('Priority')), prerequisites=(1, _('Prerequisites')), dependencies=(1, _('Dependents')), categories=(1, _('Categories')), percentageComplete=(3, _('% complete')), recurrence=(3, _('Recurrence')), notes=(1, ''), attachments=(1, '')) for column in columns: columnIndex, expectedHeader = columns[column] self.showColumn(column) actualHeader = self.viewer.widget.GetColumn(columnIndex).GetText() self.assertEqual(expectedHeader, actualHeader) self.showColumn(column, False) self.assertEqual(3, self.viewer.widget.GetColumnCount()) def testRenderFixedFee(self): taskWithFixedFee = task.Task(fixedFee=100) self.taskList.append(taskWithFixedFee) self.showColumn('fixedFee') self.assertEqual(locale.currency(100, False), self.getItemText(0, 3)) self.assertEqual(_('Fixed fee'), self.viewer.widget.GetColumn(3).GetText()) def testRenderPercentageComplete_0(self): uncompletedTask = task.Task() self.taskList.append(uncompletedTask) self.showColumn('percentageComplete') self.assertEqual('', self.getItemText(0, 3)) def testRenderPercentageComplete_100(self): completedTask = task.Task(completionDateTime=date.Now() - date.ONE_HOUR) self.taskList.append(completedTask) self.showColumn('percentageComplete') self.assertEqual('100%', self.getItemText(0, 3)) def testRenderSingleCategory(self): cat = category.Category(subject='Category') self.task.addCategory(cat) cat.addCategorizable(self.task) self.assertEqual('Category', self.viewer.renderCategories(self.task)) def testRenderMultipleCategories(self): for index in range(1, 3): cat = category.Category(subject='Category %d' % index) self.task.addCategory(cat) cat.addCategorizable(self.task) self.assertEqual('Category 1, Category 2', self.viewer.renderCategories(self.task)) def testRenderSingleChildCategory(self): self.task.addChild(self.child) self.taskList.append(self.task) cat = category.Category(subject='Category') self.child.addCategory(cat) cat.addCategorizable(self.child) expectedCategory = '(Category)' if self.viewer.isTreeViewer() else '' self.assertEqual(expectedCategory, self.viewer.renderCategories(self.task)) def testRenderMultipleChildCategories(self): self.task.addChild(self.child) self.taskList.append(self.task) for index in range(1, 3): cat = category.Category(subject='Category %d' % index) self.child.addCategory(cat) cat.addCategorizable(self.child) expectedCategory = '(Category 1, Category 2)' if self.viewer.isTreeViewer() else '' self.assertEqual(expectedCategory, self.viewer.renderCategories(self.task)) def testRenderDifferentParentAndChildCategories(self): self.task.addChild(self.child) self.taskList.append(self.task) for index, eachTask in enumerate([self.task, self.child]): cat = category.Category(subject='Category %d' % index) eachTask.addCategory(cat) cat.addCategorizable(eachTask) expectedCategory = 'Category 0 (Category 1)' if self.viewer.isTreeViewer() else 'Category 0' self.assertEqual(expectedCategory, self.viewer.renderCategories(self.task)) def testRenderSameParentAndChildCategory(self): self.task.addChild(self.child) self.taskList.append(self.task) cat = category.Category(subject='Category') for eachTask in (self.task, self.child): eachTask.addCategory(cat) cat.addCategorizable(eachTask) expectedCategory = 'Category' self.assertEqual(expectedCategory, self.viewer.renderCategories(self.task)) def testRenderRecurrence(self): taskWithRecurrence = task.Task(recurrence=date.Recurrence('weekly', amount=2)) self.showColumn('recurrence') self.taskList.append(taskWithRecurrence) self.assertEqual('Every other week', self.getItemText(0, 3)) def testRenderAttachment(self): att = attachment.FileAttachment('whatever') self.task.addAttachment(att) self.taskList.append(self.task) self.showColumn('attachments') self.assertIcon('paperclip_icon', column=1) def testOneDayLeft(self): self.showColumn('timeLeft') timeLeft = date.TimeDelta(hours=25, seconds=30) self.taskList.append(self.task) self.task.setDueDateTime(date.Now() + timeLeft) self.assertEqual(render.timeLeft(timeLeft, False), self.getItemText(0, 3)) def testReverseSortOrderWithGrandchildren(self): self.task.addChild(self.child) grandchild = task.Task(subject='grandchild', plannedStartDateTime=date.Now() - date.ONE_SECOND) self.child.addChild(grandchild) task2 = task.Task(subject='zzz', plannedStartDateTime=date.Now() - date.ONE_SECOND) self.taskList.extend([self.task, task2]) self.viewer.setSortOrderAscending(False) if self.viewer.isTreeViewer(): self.assertItems(task2, (self.task, 1), (self.child, 1), grandchild) else: self.assertItems(task2, self.task, grandchild, self.child) def testReverseSortOrder(self): self.task.addChild(self.child) task2 = task.Task(subject='zzz', plannedStartDateTime=date.Now() - date.ONE_SECOND) self.taskList.extend([self.task, task2]) self.viewer.setSortOrderAscending(False) if self.viewer.isTreeViewer(): self.assertItems(task2, (self.task, 1), self.child) else: self.assertItems(task2, self.task, self.child) def testSortByDueDate(self): self.task.addChild(self.child) task2 = task.Task(subject='zzz', plannedStartDateTime=date.Now() - date.ONE_SECOND) child2 = task.Task(subject='child 2', plannedStartDateTime=date.Now() - date.ONE_SECOND) task2.addChild(child2) child2.setParent(task2) self.taskList.extend([self.task, task2]) if self.viewer.isTreeViewer(): self.assertItems((self.task, 1), self.child, (task2, 1), child2) else: self.assertItems(self.child, child2, self.task, task2) child2.setDueDateTime(date.Now().endOfDay()) self.viewer.sortBy('dueDateTime') if self.viewer.isTreeViewer(): self.assertItems((task2, 1), child2, (self.task, 1), self.child) else: self.assertItems(child2, self.child, self.task, task2) def testSortByPrerequisite_OnePrerequisite(self): self.viewer.sortBy('prerequisites') prerequisite = task.Task() self.task.addPrerequisites([prerequisite]) self.taskList.extend([prerequisite, self.task]) self.assertItems(prerequisite, self.task) def testSortByPrerequisite_TwoPrerequisites(self): self.viewer.sortBy('prerequisites') prerequisite1 = task.Task(subject='1') prerequisite2 = task.Task(subject='2') self.task.addPrerequisites([prerequisite1, prerequisite2]) self.taskList.extend([prerequisite1, prerequisite2, self.task]) try: self.assertItems(prerequisite1, prerequisite2, self.task) except AssertionError: # pragma: no cover self.assertItems(prerequisite2, prerequisite1, self.task) def testSortByPrerequisite_ChainedPrerequisites(self): self.viewer.sortBy('prerequisites') task0 = task.Task(subject='0') task1 = task.Task(subject='1') task2 = task.Task(subject='2') task2.addPrerequisites([task1]) task1.addPrerequisites([task0]) self.taskList.extend([task0, task1, task2]) self.assertItems(task0, task1, task2) # Prerequisites = '', '0', '1' self.viewer.setSortOrderAscending(False) self.assertItems(task2, task1, task0) # Prerequisites = '1', '0', '' def testSortBySubject_AddPrerequisite(self): task0 = task.Task(subject='0', plannedStartDateTime=date.DateTime(2000, 1, 1)) task1 = task.Task(subject='1', plannedStartDateTime=date.DateTime(2000, 1, 1)) self.taskList.extend([task0, task1]) self.assertItems(task0, task1) task0.addPrerequisites([task1]) self.assertItems(task1, task0) def testSortByCategories(self): cat0 = category.Category(subject='Category 0') cat1 = category.Category(subject='Category 1') task0 = task.Task(subject='0') task1 = task.Task(subject='1') task0.addCategory(cat1) cat1.addCategorizable(task0) task1.addCategory(cat0) cat0.addCategorizable(task1) self.taskList.extend([task0, task1]) self.assertItems(task0, task1) self.viewer.sortBy('categories') self.assertItems(task1, task0) def testSortByChildCategories(self): cat0 = category.Category(subject='Category 0') cat1 = category.Category(subject='Category 1') task0 = task.Task(subject='0') task1 = task.Task(subject='1') task1_1 = task.Task(subject='1.1') task1.addChild(task1_1) task0.addCategory(cat1) cat1.addCategorizable(task0) task1_1.addCategory(cat0) cat0.addCategorizable(task1_1) self.taskList.extend([task0, task1]) if self.viewer.isTreeViewer(): self.assertItems(task0, (task1, 1), task1_1) else: self.assertItems(task0, task1, task1_1) self.viewer.sortBy('categories') if self.viewer.isTreeViewer(): self.assertItems((task1, 1), task1_1, task0) else: self.assertItems(task1, task1_1, task0) def testChangeActiveTaskForegroundColor(self): self.setColor('activetasks') self.taskList.append(task.Task(subject='test', actualStartDateTime=date.Now())) self.assertColor() def testChangeInactiveTaskForegroundColor(self): self.setColor('inactivetasks') self.taskList.append(task.Task()) self.assertColor() def testChangeCompletedTaskForegroundColor(self): self.setColor('completedtasks') self.taskList.append(task.Task(completionDateTime=date.Now())) self.assertColor() def testChangeDueSoonTaskForegroundColor(self): self.setColor('duesoontasks') self.taskList.append(task.Task(dueDateTime=date.Now().endOfDay())) self.assertColor() def testChangeOverDueTaskForegroundColor(self): self.setColor('overduetasks') self.taskList.append(task.Task(dueDateTime=date.Yesterday())) self.assertColor() def testStatusMessage_EmptyTaskList(self): self.assertEqual(('Tasks: 0 selected, 0 visible, 0 total', 'Status: 0 overdue, 0 late, 0 inactive, 0 completed'), self.viewer.statusMessages()) def testOnDropFiles(self): aTask = task.Task() self.taskList.append(aTask) self.viewer.onDropFiles(aTask, ['filename']) self.assertEqual([attachment.FileAttachment('filename')], self.viewer.presentation()[0].attachments()) def testOnDropURL(self): aTask = task.Task() self.taskList.append(aTask) self.viewer.onDropURL(aTask, 'http://www.example.com/') self.assertEqual([attachment.URIAttachment('http://www.example.com/')], self.viewer.presentation()[0].attachments()) def testOnDropMail(self): file('test.mail', 'wb').write('Subject: foo\r\n\r\nBody\r\n') aTask = task.Task() self.taskList.append(aTask) self.viewer.onDropMail(aTask, 'test.mail') self.assertEqual([attachment.MailAttachment('test.mail')], self.viewer.presentation()[0].attachments()) def testCategoryBackgroundColor(self): cat = category.Category('category with background color', bgColor=self.newColor) cat.addCategorizable(self.task) self.task.addCategory(cat) self.taskList.append(self.task) self.assertBackgroundColor() def testNewItem(self): self.taskFile.categories().append(category.Category('cat', filtered=True)) dialog = self.viewer.newItemDialog(bitmap='new') dialog._interior[4].selected() tree = dialog._interior[4].viewer.widget # pylint: disable=W0212 firstChild = tree.GetFirstChild(tree.GetRootItem())[0] self.failUnless(firstChild.IsChecked()) def testFont(self): self.taskList.append(task.Task(font=wx.SWISS_FONT)) self.assertEqual(wx.SWISS_FONT, self.getFirstItemFont()) def testIconUpdatesWhenPlannedStartDateTimeChanges(self): self.taskList.append(self.task) self.task.setPlannedStartDateTime(date.Now() + date.ONE_DAY) self.assertIcon(task.inactive.getBitmap(self.settings)) def testIconUpdatesWhenDueDateTimeChanges(self): self.taskList.append(self.task) self.task.setDueDateTime(date.Now() + date.ONE_HOUR) self.assertIcon(task.duesoon.getBitmap(self.settings)) def testIconUpdatesWhenCompletionDateTimeChanges(self): self.taskList.append(self.task) self.task.setCompletionDateTime(date.Now()) self.assertIcon(task.completed.getBitmap(self.settings)) def testIconUpdatesWhenPrerequisiteIsAdded(self): prerequisite = task.Task('zzz') self.taskList.extend([prerequisite, self.task]) self.task.addPrerequisites([prerequisite]) prerequisite.addDependencies([self.task]) self.assertIcon(task.inactive.getBitmap(self.settings)) def testIconUpdatesWhenPrerequisiteIsCompleted(self): prerequisite = task.Task(subject='zzz') self.taskList.extend([prerequisite, self.task]) self.task.addPrerequisites([prerequisite]) prerequisite.addDependencies([self.task]) prerequisite.setCompletionDateTime(date.Now()) self.assertIcon(task.late.getBitmap(self.settings)) def testIconUpdatesWhenEffortTrackingStarts(self): self.taskList.append(self.task) self.task.addEffort(effort.Effort(self.task)) self.assertIcon('clock_icon') def testIconUpdatesWhenEffortTrackingStops(self): self.taskList.append(self.task) self.task.addEffort(effort.Effort(self.task)) self.task.stopTracking() self.assertIcon(task.active.getBitmap(self.settings)) def testIconUpdatesWhenTaskBecomesOverdue(self): dueDateTime = date.Now() + date.TimeDelta(seconds=10) dueDateTime = dueDateTime.replace(microsecond=0) self.task.setDueDateTime(dueDateTime) self.taskList.append(self.task) self.assertIcon(task.duesoon.getBitmap(self.settings)) now = dueDateTime + date.ONE_SECOND oldNow = date.Now date.Now = lambda: now self.task.onOverDue() self.assertIcon(task.overdue.getBitmap(self.settings)) date.Now = oldNow def testModeIsSavedInSettings(self): self.assertEqual(self.treeMode, self.settings.getboolean(self.viewer.settingsSection(), 'treemode')) def testRenderSubject(self): self.task.addChild(self.child) expectedSubject = 'child' if self.treeMode else 'task -> child' self.assertEqual(expectedSubject, self.viewer.renderSubject(self.child)) def testItemOrder(self): self.task.addChild(self.child) self.taskList.append(self.task) if self.treeMode: self.assertItems((self.task, 1), self.child) else: self.assertItems(self.child, self.task) def testItemOrderAfterSwitch(self): self.task.addChild(self.child) self.taskList.append(self.task) self.settings.setboolean(self.viewer.settingsSection(), 'treemode', not self.treeMode) if self.treeMode: self.assertItems(self.child, self.task) else: self.assertItems((self.task, 1), self.child) def testItemOrderAfterSwitchWhenOrderDoesNotChange(self): self.task.addChild(self.child) self.taskList.append(self.task) self.task.setSubject('a') # task comes before child self.settings.setboolean(self.viewer.settingsSection(), 'treemode', not self.treeMode) if self.treeMode: self.assertItems(self.task, self.child) else: self.assertItems((self.task, 1), self.child) def assertEventFired_Deprecated(self, type_): types = [] for event in self.viewer.events_deprecated: types.extend(event.types()) self.failUnless(type_ in types, '"%s" not in %s' % (type_, self.viewer.events_deprecated)) def assertEventFired(self, newValue, sender): self.failUnless((newValue, sender) in self.viewer.events) def testGetTimeSpent(self): self.taskList.append(self.task) self.task.addEffort(effort.Effort(self.task, date.DateTime(2000, 1, 1), date.DateTime(2000, 1, 2))) self.showColumn('timeSpent') timeSpent = self.getItemText(0, 3) self.assertEqual("24:00:00", timeSpent) def testGetTotalTimeSpent(self): self.task.addChild(self.child) self.taskList.append(self.task) self.task.expand(False, context=self.viewer.settingsSection()) self.task.addEffort(effort.Effort(self.task, date.DateTime(2000, 1, 1), date.DateTime(2000, 1, 2))) self.child.addEffort(effort.Effort(self.child, date.DateTime(2000, 1, 1), date.DateTime(2000, 1, 2))) self.showColumn('timeSpent') timeSpent = self.getItemText(0, 3) expectedTimeSpent = "(48:00:00)" if self.treeMode else "24:00:00" self.assertEqual(expectedTimeSpent, timeSpent) def testGetSelection(self): taskA = task.Task('a') taskB = task.Task('b') self.viewer.presentation().extend([taskA, taskB]) self.viewer.select([taskA]) self.viewer.updateSelection() self.assertEqual([taskA], self.viewer.curselection()) def testGetSelection_AfterResort(self): taskA = task.Task('a') taskB = task.Task('b') self.viewer.presentation().extend([taskA, taskB]) self.viewer.widget.select([taskA]) self.viewer.updateSelection() self.viewer.setSortOrderAscending(False) self.assertEqual([taskA], self.viewer.curselection()) def testChangeSubject(self): self.taskList.append(self.task) self.task.setSubject('New subject') self.assertEqual(task.Task.subjectChangedEventType(), self.viewer.events_deprecated[0].type()) def testChangePlannedStartDateTimeWhileColumnShown(self): self.taskList.append(self.task) newValue = date.Now() - date.ONE_DAY self.task.setPlannedStartDateTime(newValue) self.assertEqual((newValue, self.task), self.viewer.events[0]) def testStartTracking(self): self.taskList.append(self.task) self.task.addEffort(effort.Effort(self.task)) self.failUnless((True, self.task) in self.viewer.events) def testChangePlannedStartDateTimeWhileColumnNotShown(self): self.taskList.append(self.task) self.showColumn('plannedStartDate', False) self.task.setPlannedStartDateTime(date.Yesterday()) self.assertEqual(1, len(self.viewer.events)) def testChangeDueDate(self): self.taskList.append(self.task) newValue = date.Now().endOfDay() self.task.setDueDateTime(newValue) self.failUnless((newValue, self.task) in self.viewer.events) def testChangeCompletionDateWhileColumnNotShown(self): self.taskList.append(self.task) now = date.Now() self.task.setCompletionDateTime(now) # We still get an event for the subject column: self.failUnless((now, self.task) in self.viewer.events) def testChangeCompletionDateWhileColumnShown(self): self.taskList.append(self.task) self.showColumn('completionDate') now = date.Now() self.task.setCompletionDateTime(now) self.failUnless((now, self.task) in self.viewer.events) def testChangePercentageCompleteWhileColumnNotShown(self): self.taskList.append(self.task) self.task.setPercentageComplete(50) self.failIf((50, self.task) in self.viewer.events) def testChangePercentageCompleteWhileColumnShown(self): self.taskList.append(self.task) self.showColumn('percentageComplete') self.task.setPercentageComplete(50) self.failUnless((50, self.task) in self.viewer.events) def testChangePriorityWhileColumnNotShown(self): self.taskList.append(self.task) self.task.setPriority(10) self.failIf(self.viewer.events) def testChangePriorityWhileColumnShown(self): self.taskList.append(self.task) self.showColumn('priority') self.task.setPriority(10) self.assertEventFired(10, self.task) def testChangePriorityOfSubtask(self): self.showColumn('priority') self.task.addChild(self.child) self.taskList.append(self.task) self.child.setPriority(10) self.assertEventFired(self.task.priority(), self.task) def testChangeHourlyFeeWhileColumnShown(self): self.showColumn('hourlyFee') self.taskList.append(self.task) self.task.setHourlyFee(100) self.assertEqual(render.monetaryAmount(100.), self.getItemText(0, 3)) def testChangeFixedFeeWhileColumnShown(self): self.showColumn('fixedFee') self.taskList.append(self.task) self.task.setFixedFee(200) self.assertEqual(render.monetaryAmount(200.), self.getItemText(0, 3)) def testCollapsedCompositeTaskShowsRecursiveFixedFee(self): self.showColumn('fixedFee') self.taskList.extend([self.task, self.child]) self.task.addChild(self.child) self.task.setFixedFee(100) self.child.setFixedFee(200) self.viewer.setSortOrderAscending(False) expectedAmount = "(%s)" % locale.currency(300, False) if self.treeMode else locale.currency(100, False) self.task.expand(False, context=self.viewer.settingsSection()) self.assertEqual(expectedAmount, self.getItemText(0, 3)) def testCollapsedCompositeTaskShowsRecursivePlannedStartDateTime(self): self.taskList.extend([self.task, self.child]) self.task.addChild(self.child) now = date.Now() self.child.setPlannedStartDateTime(now) self.task.setPlannedStartDateTime(date.DateTime()) self.viewer.setSortByTaskStatusFirst(False) self.viewer.setSortOrderAscending(False) expectedDateTime = "(%s)" % render.dateTime(now, humanReadable=True) if self.treeMode else '' self.task.expand(False, context=self.viewer.settingsSection()) self.assertEqual(expectedDateTime, self.getItemText(0, 1)) def testChangePrerequisiteSubject(self): self.showColumn('prerequisites') self.viewer.setSortOrderAscending(False) prerequisite = task.Task(subject='prerequisite') self.taskList.extend([self.task, prerequisite]) self.task.addPrerequisites([prerequisite]) prerequisite.addDependencies([self.task]) self.assertEqual('prerequisite', self.getItemText(0, 1)) prerequisite.setSubject('new') self.assertEqual('new', self.getItemText(0, 1)) def testChangeDependencySubject(self): self.showColumn('dependencies') self.viewer.setSortOrderAscending(False) dependency = task.Task(subject='dependency') self.taskList.extend([self.task, dependency]) dependency.addPrerequisites([self.task]) self.task.addDependencies([dependency]) self.assertEqual('dependency', self.getItemText(0, 1)) dependency.setSubject('new') self.assertEqual('new', self.getItemText(0, 1)) def testPlannedStartDateTimeToday(self): today = date.Now() self.task.setPlannedStartDateTime(today) self.taskList.append(self.task) self.showColumn('plannedStartDateTime') self.assertEqual(_('Today %s') % render.time(today.time()), self.getItemText(0, 1)) def testPlannedStartDateTimeYesterday(self): yesterday = date.Yesterday() self.task.setPlannedStartDateTime(yesterday) self.taskList.append(self.task) self.showColumn('plannedStartDateTime') self.assertEqual(_('Yesterday %s') % render.time(yesterday.time()), self.getItemText(0, 1)) def testPlannedStartDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.task.setPlannedStartDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('plannedStartDateTime') self.assertEqual(_('Tomorrow %s') % render.time(tomorrow.time()), self.getItemText(0, 1)) def testPlannedStartDateToday(self): today = date.Now().startOfDay() self.task.setPlannedStartDateTime(today) self.taskList.append(self.task) self.showColumn('plannedStartDateTime') self.assertEqual(_('Today'), self.getItemText(0, 1)) def testPlannedStartDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.task.setPlannedStartDateTime(yesterday) self.taskList.append(self.task) self.showColumn('plannedStartDateTime') self.assertEqual(_('Yesterday'), self.getItemText(0, 1)) def testPlannedStartDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.task.setPlannedStartDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('plannedStartDateTime') self.assertEqual(_('Tomorrow'), self.getItemText(0, 1)) def testDueDateTimeToday(self): today = date.Now() self.task.setDueDateTime(today) self.taskList.append(self.task) self.showColumn('dueDateTime') self.assertEqual(_('Today %s') % render.time(today.time()), self.getItemText(0, 2)) def testDueDateTimeYesterday(self): yesterday = date.Yesterday() self.task.setDueDateTime(yesterday) self.taskList.append(self.task) self.showColumn('dueDateTime') self.assertEqual(_('Yesterday %s') % render.time(yesterday.time()), self.getItemText(0, 2)) def testDueDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.task.setDueDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('dueDateTime') self.assertEqual(_('Tomorrow %s') % render.time(tomorrow.time()), self.getItemText(0, 2)) def testDueDateToday(self): today = date.Now().startOfDay() self.task.setDueDateTime(today) self.taskList.append(self.task) self.showColumn('dueDateTime') self.assertEqual(_('Today'), self.getItemText(0, 2)) def testDueDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.task.setDueDateTime(yesterday) self.taskList.append(self.task) self.showColumn('dueDateTime') self.assertEqual(_('Yesterday'), self.getItemText(0, 2)) def testDueDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.task.setDueDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('dueDateTime') self.assertEqual(_('Tomorrow'), self.getItemText(0, 2)) def testActualStartDateTimeToday(self): today = date.Now() self.task.setActualStartDateTime(today) self.taskList.append(self.task) self.showColumn('actualStartDateTime') self.assertEqual(_('Today %s') % render.time(today.time()), self.getItemText(0, 3)) def testActualStartDateTimeYesterday(self): yesterday = date.Yesterday() self.task.setActualStartDateTime(yesterday) self.taskList.append(self.task) self.showColumn('actualStartDateTime') self.assertEqual(_('Yesterday %s') % render.time(yesterday.time()), self.getItemText(0, 3)) def testActualStartDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.task.setActualStartDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('actualStartDateTime') self.assertEqual(_('Tomorrow %s') % render.time(tomorrow.time()), self.getItemText(0, 3)) def testActualStartDateToday(self): today = date.Now().startOfDay() self.task.setActualStartDateTime(today) self.taskList.append(self.task) self.showColumn('actualStartDateTime') self.assertEqual(_('Today'), self.getItemText(0, 3)) def testActualStartDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.task.setActualStartDateTime(yesterday) self.taskList.append(self.task) self.showColumn('actualStartDateTime') self.assertEqual(_('Yesterday'), self.getItemText(0, 3)) def testActualStartDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.task.setActualStartDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('actualStartDateTime') self.assertEqual(_('Tomorrow'), self.getItemText(0, 3)) def testCompletionDateTimeToday(self): today = date.Now() self.task.setCompletionDateTime(today) self.taskList.append(self.task) self.showColumn('completionDateTime') self.assertEqual(_('Today %s') % render.time(today.time()), self.getItemText(0, 3)) def testCompletionDateTimeYesterday(self): yesterday = date.Yesterday() self.task.setCompletionDateTime(yesterday) self.taskList.append(self.task) self.showColumn('completionDateTime') self.assertEqual(_('Yesterday %s') % render.time(yesterday.time()), self.getItemText(0, 3)) def testCompletionDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.task.setCompletionDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('completionDateTime') self.assertEqual(_('Tomorrow %s') % render.time(tomorrow.time()), self.getItemText(0, 3)) def testCompletionDateToday(self): today = date.Now().startOfDay() self.task.setCompletionDateTime(today) self.taskList.append(self.task) self.showColumn('completionDateTime') self.assertEqual(_('Today'), self.getItemText(0, 3)) def testCompletionDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.task.setCompletionDateTime(yesterday) self.taskList.append(self.task) self.showColumn('completionDateTime') self.assertEqual(_('Yesterday'), self.getItemText(0, 3)) def testCompletionDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.task.setCompletionDateTime(tomorrow) self.taskList.append(self.task) self.showColumn('completionDateTime') self.assertEqual(_('Tomorrow'), self.getItemText(0, 3)) # Test all attributes... class TaskViewerInTreeModeTest(CommonTestsMixin, TaskViewerTestCase): treeMode = True class TaskViewerInListModeTest(CommonTestsMixin, TaskViewerTestCase): treeMode = False class TaskCalendarViewerTest(test.wxTestCase): def setUp(self): super(TaskCalendarViewerTest, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.frame.taskFile = self.taskFile self.viewer = gui.viewer.task.CalendarViewer(self.frame, self.taskFile, self.settings) self.originalTopWindow = wx.GetApp().TopWindow wx.GetApp().TopWindow = self.frame # uiCommands use TopWindow to get the main window def tearDown(self): super(TaskCalendarViewerTest, self).tearDown() wx.GetApp().TopWindow = self.originalTopWindow self.taskFile.close() self.taskFile.stop() def openDialogAndAssertDateTimes(self, dateTime, expectedPlannedStartDateTime, expectedDueDateTime): self.viewer.onCreate(dateTime, show=False) newTask = list(self.taskFile.tasks())[0] self.assertEqual(expectedPlannedStartDateTime, newTask.plannedStartDateTime()) self.assertEqual(expectedDueDateTime, newTask.dueDateTime()) def testOnCreateSetsPlannedStartAndDueDateTime(self): dateTime = date.DateTime(2010, 10, 10, 16, 0, 0) self.openDialogAndAssertDateTimes(dateTime, dateTime, dateTime) def testOnCreateKeepsPlannedStartDateTimeAndMakesDueDateTimeEndOfDayWhenDateTimeIsStartOfDay(self): dateTime = date.DateTime(2010, 10, 1, 0, 0, 0) self.openDialogAndAssertDateTimes(dateTime, dateTime, dateTime.endOfDay()) class TaskSquareMapViewerTest(test.wxTestCase): def testCreate(self): task.Task.settings = settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() gui.viewer.task.SquareTaskViewer(self.frame, self.taskFile, settings) def tearDown(self): super(TaskSquareMapViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() class TaskTimelineViewerTest(test.wxTestCase): def testCreate(self): # pylint: disable-msg=W0201 task.Task.settings = settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() gui.viewer.task.TimelineViewer(self.frame, self.taskFile, settings) def tearDown(self): super(TaskTimelineViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() class TaskStatisticsViewerTest(test.wxTestCase): def testCreate(self): task.Task.settings = settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() gui.viewer.task.TaskStatsViewer(self.frame, self.taskFile, settings) def tearDown(self): super(TaskStatisticsViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() taskcoach-1.4.3/tests/unittests/guiTests/TemplatesDialogTest.py000066400000000000000000000033351265347643000250000ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, os, shutil from taskcoachlib import gui, config class TemplatesDialogTestCase(test.wxTestCase): def setUp(self): super(TemplatesDialogTestCase, self).setUp() self.settings = config.Settings(load=False) # Monkey-patching self.path = os.path.join(os.path.split(__file__)[0], 'tmpl') self.safelyRemove(self.path) os.mkdir(self.path) self.settings.pathToTemplatesDir = lambda: self.path self.editor = gui.dialog.templates.TemplatesDialog(self.settings, self.frame, title='title') def tearDown(self): super(TemplatesDialogTestCase, self).tearDown() self.safelyRemove(self.path) def safelyRemove(self, path): try: shutil.rmtree(path) except OSError: # pragma: no cover pass def testTwoDefaultTemplates(self): self.assertEqual(0, len(self.editor._templates.tasks())) # pylint: disable=W0212 taskcoach-1.4.3/tests/unittests/guiTests/ToolBarTest.py000066400000000000000000000063041265347643000232630ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from unittests import dummy from taskcoachlib import gui, config class ToolBar(gui.toolbar.ToolBar): def uiCommands(self, cache=True): return [] class ToolBarTest(test.wxTestCase): def testAppendUICommand(self): gui.init() settings = config.Settings(load=False) toolbar = ToolBar(self.frame, settings) uiCommand = dummy.DummyUICommand(menuText='undo', bitmap='undo') toolId = toolbar.appendUICommand(uiCommand) self.assertNotEqual(wx.NOT_FOUND, toolbar.GetToolPos(toolId)) class ToolBarSizeTest(test.wxTestCase): def testSizeDefault(self): self.createToolBarAndTestSize(None, (32, 32)) def testSizeSmall(self): self.createToolBarAndTestSize((16, 16)) def testSizeMedium(self): self.createToolBarAndTestSize((22, 22)) def testSizeBig(self): self.createToolBarAndTestSize((32, 32)) def createToolBarAndTestSize(self, size, expectedSize=None): settings = config.Settings(load=False) toolbarArgs = [self.frame, settings] if size: toolbarArgs.append(size) toolbar = ToolBar(*toolbarArgs) if not expectedSize: expectedSize = size self.assertEqual(wx.Size(*expectedSize), toolbar.GetToolBitmapSize()) class ToolBarPerspectiveTest(test.wxTestCase): def setUp(self): class NoBitmapUICommand(dummy.DummyUICommand): def appendToToolBar(self, toolbar): pass class TestFrame(test.TestCaseFrame): def createToolBarUICommands(self): class Test1(NoBitmapUICommand): pass class Test2(NoBitmapUICommand): pass return [Test1(), None, Test2(), 1] self.tbFrame = TestFrame() self.settings = config.Settings(load=False) def tearDown(self): self.tbFrame.Close() def test_empty(self): bar = gui.toolbar.ToolBar(self.tbFrame, self.settings) self.assertEqual(bar.perspective(), 'Test1,Separator,Test2,Spacer') def test_restrict(self): self.tbFrame.toolbarPerspective = 'Test1,Spacer' bar = gui.toolbar.ToolBar(self.tbFrame, self.settings) self.assertEqual(bar.perspective(), 'Test1,Spacer') def test_does_not_exist(self): self.tbFrame.toolbarPerspective = 'Test1,Spacer,Test3' bar = gui.toolbar.ToolBar(self.tbFrame, self.settings) self.assertEqual(bar.perspective(), 'Test1,Spacer') taskcoach-1.4.3/tests/unittests/guiTests/TreeViewerTest.py000066400000000000000000000046611265347643000240060ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import gui, config, persistence from taskcoachlib.domain import task class TreeViewerTest(test.wxTestCase): def setUp(self): super(TreeViewerTest, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.viewer = gui.viewer.TaskViewer(self.frame, self.taskFile, self.settings) self.expansionContext = self.viewer.settingsSection() self.parent = task.Task('parent') self.child = task.Task('child') self.parent.addChild(self.child) self.child.setParent(self.parent) self.taskFile.tasks().extend([self.parent, self.child]) self.viewer.refresh() self.widget = self.viewer.widget def tearDown(self): super(TreeViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def firstItem(self): root = self.widget.GetRootItem() return self.widget.GetFirstChild(root)[0] def testWidgetDoesNotDisplayChildItemBeforeItsParentIsExpanded(self): self.assertEqual(1, self.viewer.widget.GetItemCount()) def testExpand(self): self.widget.Expand(self.firstItem()) self.failUnless(self.parent.isExpanded(context=self.expansionContext)) def testCollapse(self): firstVisibleItem = self.firstItem() self.widget.Expand(firstVisibleItem) self.widget.Collapse(firstVisibleItem) self.failIf(self.parent.isExpanded(context=self.expansionContext)) def testExpandall(self): self.viewer.expandAll() self.failUnless(self.parent.isExpanded(context=self.expansionContext)) taskcoach-1.4.3/tests/unittests/guiTests/UICommandTest.py000066400000000000000000000642721265347643000235450ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from unittests import dummy from taskcoachlib import gui, config, persistence from taskcoachlib.domain import task, category, date, attachment, effort from taskcoachlib.thirdparty import desktop from taskcoachlib.gui.dialog.editor import NoteEditor, TaskEditor if desktop.get_desktop() in ('KDE', 'GNOME'): # pragma: no cover # On a KDE desktop, kfmclient insists on showing an error message for # non-existing files, even when passing --noninteractive, so we make sure # kfmclient is not invoked at all. # On a GNOME desktop, this launch replacement prevents an error message # to stderr when the file doesn't exist. import os os.environ['DESKTOP_LAUNCH'] = 'python -c "import sys, os; sys.exit(0 if os.path.exists(sys.argv[1]) else 1)"' class UICommandTest(test.wxTestCase): def setUp(self): super(UICommandTest, self).setUp() self.uicommand = dummy.DummyUICommand(menuText='undo', bitmap='undo') self.menu = wx.Menu() self.frame = wx.Frame(None) self.frame.Show(False) self.frame.SetMenuBar(wx.MenuBar()) self.frame.CreateToolBar() def activate(self, window, windowId): window.ProcessEvent(wx.CommandEvent(wx.wxEVT_COMMAND_MENU_SELECTED, windowId)) def testAppendToMenu(self): menuId = self.uicommand.addToMenu(self.menu, self.frame) self.assertEqual(menuId, self.menu.FindItem(self.uicommand.menuText)) def testAppendToToolBar(self): toolId = self.uicommand.appendToToolBar(self.frame.GetToolBar()) self.assertEqual(0, self.frame.GetToolBar().GetToolPos(toolId)) def testActivationFromMenu(self): menuId = self.uicommand.addToMenu(self.menu, self.frame) self.activate(self.frame, menuId) self.failUnless(self.uicommand.activated) def testActivationFromToolBar(self): menuId = self.uicommand.appendToToolBar(self.frame.GetToolBar()) self.activate(self.frame.GetToolBar(), menuId) self.failUnless(self.uicommand.activated) class wxTestCaseWithFrameAsTopLevelWindow(test.wxTestCase): def setUp(self): task.Task.settings = self.settings = config.Settings(load=False) wx.GetApp().SetTopWindow(self.frame) self.taskFile = self.frame.taskFile = persistence.TaskFile() def tearDown(self): super(wxTestCaseWithFrameAsTopLevelWindow, self).tearDown() self.taskFile.close() self.taskFile.stop() class NewTaskWithSelectedCategoryTest(wxTestCaseWithFrameAsTopLevelWindow): def setUp(self): super(NewTaskWithSelectedCategoryTest, self).setUp() self.categories = self.taskFile.categories() self.categories.append(category.Category('cat')) self.viewer = gui.viewer.CategoryViewer(self.frame, self.taskFile, self.settings) def createNewTask(self): taskNew = gui.uicommand.NewTaskWithSelectedCategories( \ taskList=self.taskFile.tasks(), viewer=self.viewer, categories=self.categories, settings=self.settings) dialog = taskNew.doCommand(None, show=False) self.failUnless(isinstance(dialog, TaskEditor), dialog) dialog._interior[4].selected() tree = dialog._interior[4].viewer.widget return tree.GetFirstChild(tree.GetRootItem())[0] def selectFirstCategory(self): self.viewer.select([list(self.categories)[0]]) def testNewTaskWithSelectedCategory(self): self.selectFirstCategory() firstCategoryInTaskDialog = self.createNewTask() self.failUnless(firstCategoryInTaskDialog.IsChecked()) def testNewTaskWithoutSelectedCategory(self): firstCategoryInTaskDialog = self.createNewTask() self.failIf(firstCategoryInTaskDialog.IsChecked()) class NewNoteWithSelectedCategoryTest(wxTestCaseWithFrameAsTopLevelWindow): def setUp(self): super(NewNoteWithSelectedCategoryTest, self).setUp() self.categories = self.taskFile.categories() self.categories.append(category.Category('cat')) self.viewer = gui.viewer.CategoryViewer(self.frame, self.taskFile, self.settings) def createNewNote(self): noteNew = gui.uicommand.NewNoteWithSelectedCategories( \ notes=self.taskFile.notes(), viewer=self.viewer, categories=self.categories, settings=self.settings) dialog = noteNew.doCommand(None, show=False) self.failUnless(isinstance(dialog, NoteEditor), dialog) dialog._interior[1].selected() tree = dialog._interior[1].viewer.widget return tree.GetFirstChild(tree.GetRootItem())[0] def selectFirstCategory(self): self.viewer.select([list(self.categories)[0]]) def testNewNoteWithSelectedCategory(self): self.selectFirstCategory() firstCategoryInNoteDialog = self.createNewNote() self.failUnless(firstCategoryInNoteDialog.IsChecked()) def testNewNoteWithoutSelectedCategory(self): firstCategoryInNoteDialog = self.createNewNote() self.failIf(firstCategoryInNoteDialog.IsChecked()) class DummyTask(object): def subject(self, *args, **kwargs): # pylint: disable=W0613 return 'subject' def customAttributes(self, sectionName): return set() def description(self): return 'description' class DummyViewer(object): def __init__(self, selection=None, showingEffort=False, domainObjectsToView=None): self.selection = selection or [] self.showingEffort = showingEffort self.domainObjects = domainObjectsToView def curselection(self): return self.selection def curselectionIsInstanceOf(self, class_): return self.selection and isinstance(self.selection[0], class_) def isShowingCategories(self): return self.selection and isinstance(self.selection[0], category.Category) def isShowingTasks(self): return False def isShowingEffort(self): return self.showingEffort class MailTaskTest(test.TestCase): def testException(self): def mail(*args): # pylint: disable=W0613 raise RuntimeError, 'message' def showerror(*args, **kwargs): # pylint: disable=W0613 self.showerror = args # pylint: disable=W0201 mailTask = gui.uicommand.Mail(viewer=DummyViewer([DummyTask()])) mailTask.doCommand(None, mail=mail, showerror=showerror) self.assertEqual('Cannot send email:\nmessage', self.showerror[0]) def testBodyFormatting(self): aTask = task.Task('subject', description='line1\nline2\n') self.assertEqual('line1\r\nline2', gui.uicommand.Mail(viewer=DummyViewer()).body([aTask])) class MarkActiveTest(test.TestCase): def assertMarkActiveIsEnabled(self, selection, shouldBeEnabled=True): viewer = DummyViewer(selection) markActive = gui.uicommand.TaskMarkActive(viewer=viewer, settings=config.Settings(load=False)) isEnabled = markActive.enabled(None) if shouldBeEnabled: self.failUnless(isEnabled) else: self.failIf(isEnabled) def testNotEnabledWhenSelectionIsEmpty(self): self.assertMarkActiveIsEnabled(selection=[], shouldBeEnabled=False) def testEnabledWhenSelectedTaskIsNotActive(self): self.assertMarkActiveIsEnabled(selection=[task.Task()]) def testEnabledWhenSelectedTaskIsActive(self): self.assertMarkActiveIsEnabled( selection=[task.Task(actualStartDateTime=date.Now())], shouldBeEnabled=False) def testEnabledWhenSelectedTasksAreBothActiveAndInactive(self): self.assertMarkActiveIsEnabled( selection=[task.Task(actualStartDateTime=date.Now()), task.Task()]) class MarkInactiveTest(test.TestCase): def assertMarkInactiveIsEnabled(self, selection, shouldBeEnabled=True): viewer = DummyViewer(selection) markInactive = gui.uicommand.TaskMarkInactive(viewer=viewer, settings=config.Settings(load=False)) isEnabled = markInactive.enabled(None) if shouldBeEnabled: self.failUnless(isEnabled) else: self.failIf(isEnabled) def testNotEnabledWhenSelectionIsEmpty(self): self.assertMarkInactiveIsEnabled(selection=[], shouldBeEnabled=False) def testEnabledWhenSelectedTaskIsNotInactive(self): self.assertMarkInactiveIsEnabled( \ selection=[task.Task(actualStartDateTime=date.Now())]) def testEnabledWhenSelectedTaskIsInactive(self): self.assertMarkInactiveIsEnabled(selection=[task.Task()], shouldBeEnabled=False) def testEnabledWhenSelectedTasksAreBothActiveAndInactive(self): self.assertMarkInactiveIsEnabled( selection=[task.Task(actualStartDateTime=date.Now()), task.Task()]) class MarkCompletedTest(test.TestCase): def assertMarkCompletedIsEnabled(self, selection, shouldBeEnabled=True): viewer = DummyViewer(selection) markCompleted = gui.uicommand.TaskMarkCompleted(viewer=viewer, settings=config.Settings(load=False)) isEnabled = markCompleted.enabled(None) if shouldBeEnabled: self.failUnless(isEnabled) else: self.failIf(isEnabled) def testNotEnabledWhenSelectionIsEmpty(self): self.assertMarkCompletedIsEnabled(selection=[], shouldBeEnabled=False) def testEnabledWhenSelectedTaskIsNotCompleted(self): self.assertMarkCompletedIsEnabled(selection=[task.Task()]) def testEnabledWhenSelectedTaskIsCompleted(self): self.assertMarkCompletedIsEnabled( selection=[task.Task(completionDateTime=date.Now())], shouldBeEnabled=False) def testEnabledWhenSelectedTasksAreBothCompletedAndUncompleted(self): self.assertMarkCompletedIsEnabled( selection=[task.Task(completionDateTime=date.Now()), task.Task()]) class TaskNewTest(wxTestCaseWithFrameAsTopLevelWindow): def testNewTaskWithCategories(self): cat = category.Category('cat', filtered=True) self.taskFile.categories().append(cat) taskNew = gui.uicommand.TaskNew(taskList=self.taskFile.tasks(), settings=self.settings) dialog = taskNew.doCommand(None, show=False) dialog._interior[4].selected() tree = dialog._interior[4].viewer.widget firstChild = tree.GetFirstChild(tree.GetRootItem())[0] self.failUnless(firstChild.IsChecked()) def testNewTaskWithPresetPlannedStartDateTime(self): self.settings.set('view', 'defaultplannedstartdatetime', 'preset_tomorrow_endofworkingday') taskNew = gui.uicommand.TaskNew(taskList=self.taskFile.tasks(), settings=self.settings) taskNew.doCommand(None, show=False) self.failIf(date.DateTime() == list(self.taskFile.tasks())[0].plannedStartDateTime()) def testNewTaskWithProposedPlannedStartDateTime(self): self.settings.set('view', 'defaultplannedstartdatetime', 'propose_tomorrow_endofworkingday') taskNew = gui.uicommand.TaskNew(taskList=self.taskFile.tasks(), settings=self.settings) taskNew.doCommand(None, show=False) self.assertEqual(date.DateTime(), list(self.taskFile.tasks())[0].plannedStartDateTime()) def testNewTaskWithPresetDueDateTime(self): self.settings.set('view', 'defaultduedatetime', 'preset_tomorrow_endofworkingday') taskNew = gui.uicommand.TaskNew(taskList=self.taskFile.tasks(), settings=self.settings) taskNew.doCommand(None, show=False) self.failIf(date.DateTime() == list(self.taskFile.tasks())[0].dueDateTime()) def testNewTaskWithPresetCompletionDateTime(self): self.settings.set('view', 'defaultcompletiondatetime', 'preset_tomorrow_endofworkingday') taskNew = gui.uicommand.TaskNew(taskList=self.taskFile.tasks(), settings=self.settings) taskNew.doCommand(None, show=False) self.failIf(date.DateTime() == list(self.taskFile.tasks())[0].completionDateTime()) def testNewTaskWithPresetReminderDateTime(self): self.settings.set('view', 'defaultreminderdatetime', 'preset_tomorrow_endofworkingday') taskNew = gui.uicommand.TaskNew(taskList=self.taskFile.tasks(), settings=self.settings) taskNew.doCommand(None, show=False) self.failIf(date.DateTime() == list(self.taskFile.tasks())[0].reminder()) class NoteNewTest(wxTestCaseWithFrameAsTopLevelWindow): def testNewNoteWithCategories(self): cat = category.Category('cat', filtered=True) self.taskFile.categories().append(cat) noteNew = gui.uicommand.NoteNew(notes=self.taskFile.notes(), settings=self.settings) dialog = noteNew.doCommand(None, show=False) dialog._interior[1].selected() tree = dialog._interior[1].viewer.widget firstChild = tree.GetFirstChild(tree.GetRootItem())[0] self.failUnless(firstChild.IsChecked()) class EffortNewTest(wxTestCaseWithFrameAsTopLevelWindow): def testNewEffortUsesTaskOfSelectedEffort(self): task1 = task.Task('task 1') task2 = task.Task('task 2') effort_task2 = effort.Effort(task2) task2.addEffort(effort_task2) self.taskFile.tasks().extend([task1, task2]) viewer = DummyViewer(task2.efforts(), showingEffort=True, domainObjectsToView=self.taskFile.tasks()) effortNew = gui.uicommand.EffortNew(effortList=self.taskFile.efforts(), taskList=self.taskFile.tasks(), viewer=viewer, settings=self.settings) dialog = effortNew.doCommand(None, show=False) for eachEffort in dialog._items: self.assertEqual(task2, eachEffort.task()) class EditPreferencesTest(test.TestCase): def testEditPreferences(self): settings = config.Settings(load=False) editPreferences = gui.uicommand.EditPreferences(settings=settings) editPreferences.doCommand(None, show=False) # No assert, just checking whether it works without exceptions class EffortViewerAggregationChoiceTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) self.choice = gui.uicommand.EffortViewerAggregationChoice(viewer=self, settings=self.settings) self.choice.currentChoice = 0 class DummyEvent(object): def __init__(self, selection): self.selection = selection def GetInt(self): return self.selection self.DummyEvent = DummyEvent def settingsSection(self): return 'effortviewer' def testUserPicksEffortPerDay(self): self.choice.onChoice(self.DummyEvent(1)) self.assertEqual('day', self.settings.gettext(self.settingsSection(), 'aggregation')) def testUserPicksEffortPerWeek(self): self.choice.onChoice(self.DummyEvent(2)) self.assertEqual('week', self.settings.gettext(self.settingsSection(), 'aggregation')) def testUserPicksEffortPerMonth(self): self.choice.onChoice(self.DummyEvent(3)) self.assertEqual('month', self.settings.gettext(self.settingsSection(), 'aggregation')) def testSetChoice(self): class DummyToolBar(wx.Frame): def AddControl(self, *args, **kwargs): pass self.choice.appendToToolBar(DummyToolBar(None)) self.choice.setChoice('week') self.assertEqual('Effort per week', self.choice.choiceCtrl.GetStringSelection()) self.assertEqual(2, self.choice.currentChoice) class OpenAllAttachmentsTest(test.TestCase): def setUp(self): settings = config.Settings(load=False) self.viewer = DummyViewer([task.Task('Task')]) self.openAll = gui.uicommand.OpenAllAttachments(settings=settings, viewer=self.viewer) self.errorArgs = self.errorKwargs = None def showerror(self, *args, **kwargs): # pragma: no cover self.errorArgs = args self.errorKwargs = kwargs def testNoAttachments(self): self.openAll.doCommand(None) @test.skipOnPlatform('__WXMAC__') def testNonexistingAttachment(self): # pragma: no cover self.viewer.selection[0].addAttachment(attachment.FileAttachment('Attachment')) result = self.openAll.doCommand(None, showerror=self.showerror) # Don't test the error message itself, it differs per platform if self.errorKwargs: self.assertEqual(dict(caption='Error opening attachment', style=wx.ICON_ERROR), self.errorKwargs) else: self.assertNotEqual(0, result) def testMultipleAttachments(self): class DummyAttachment(object): def __init__(self): self.openCalled = False def open(self, attachmentBase): # pylint: disable=W0613 self.openCalled = True def isDeleted(self): return False dummyAttachment1 = DummyAttachment() dummyAttachment2 = DummyAttachment() self.viewer.selection[0].addAttachment(dummyAttachment1) self.viewer.selection[0].addAttachment(dummyAttachment2) self.openAll.doCommand(None) self.failUnless(dummyAttachment1.openCalled and dummyAttachment2.openCalled) class ToggleCategoryTest(test.TestCase): def setUp(self): self.category = category.Category('Category') def testEnableWhenViewerIsShowingCategorizables(self): viewer = DummyViewer(selection=[task.Task('Task')]) uiCommand = gui.uicommand.ToggleCategory(viewer=viewer, category=self.category) self.failUnless(uiCommand.enabled(None)) def testDisableWhenViewerIsShowingCategories(self): viewer = DummyViewer(selection=[self.category]) uiCommand = gui.uicommand.ToggleCategory(viewer=viewer, category=self.category) self.failIf(uiCommand.enabled(None)) def testDisableWhenSelectionIsEmpty(self): viewer = DummyViewer(selection=[]) uiCommand = gui.uicommand.ToggleCategory(viewer=viewer, category=self.category) self.failIf(uiCommand.enabled(None)) def testDisableWhenCategoryHasMutualExclusiveAncestorThatIsNotChecked(self): parent_category = category.Category('Parent of mutual exclusive categories', exclusiveSubcategories=True) child_category = category.Category('Mutual exclusive category') parent_category.addChild(child_category) child_category.setParent(parent_category) child_category.addChild(self.category) self.category.setParent(child_category) task_with_category = task.Task('Task') task_with_category.addCategory(self.category) self.category.addCategorizable(task_with_category) viewer = DummyViewer(selection=[task_with_category]) uiCommand = gui.uicommand.ToggleCategory(viewer=viewer, category=self.category) self.failIf(uiCommand.enabled(None)) class EffortStopTest(test.TestCase): def setUp(self): super(EffortStopTest, self).setUp() task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() self.task = task.Task('Task') self.task2 = task.Task('Task 2') self.effort1 = effort.Effort(self.task) self.effort2 = effort.Effort(self.task) self.taskList.append(self.task) self.effortList = effort.EffortList(self.taskList) self.viewer = DummyViewer() self.effortStop = gui.uicommand.EffortStop(viewer=self.viewer, effortList=self.effortList, taskList=self.taskList) # Tests of EffortStop.enabled() def testStopIsNotEnabledByDefault(self): self.failIf(self.effortStop.enabled()) def testStopIsEnabledWhenEffortIsTracked(self): self.task.addEffort(self.effort1) self.failUnless(self.effortStop.enabled()) def testStopResumeIsEnabledWhenEffortIsTracked(self): self.task.addEffort(self.effort1) self.effort1.setStop(date.Now()) self.failUnless(self.effortStop.enabled()) def testStopIsDisabledWhenEffortsIsDeleted(self): self.task.addEffort(self.effort1) self.task.removeEffort(self.effort1) self.failIf(self.effortStop.enabled()) def testStopIsEnabledWhenTwoEffortsAreTracked(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.failUnless(self.effortStop.enabled()) def testStopIsEnabledWhenOneOfTwoEffortsIsStopped(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.effort1.setStop(date.Now()) self.failUnless(self.effortStop.enabled()) def testStopIsEnabledWhenOneOfTwoEffortsIsDeleted(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.task.removeEffort(self.effort1) self.failUnless(self.effortStop.enabled()) def testPauseIsEnabledWhenBothEffortsAreStopped(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.effort1.setStop(date.Now()) self.effort2.setStop(date.Now()) self.failUnless(self.effortStop.enabled()) def testStopIsDisabledWhenBothEffortsAreDeleted(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.task.removeEffort(self.effort1) self.task.removeEffort(self.effort2) self.failIf(self.effortStop.enabled()) def testStopIsDisabledWhenTaskIsDeleted(self): self.task.addEffort(self.effort1) self.taskList.remove(self.task) self.failIf(self.effortStop.enabled()) def testStopIsEnabledWhenOneOfTwoTasksWithTrackedEffortIsDeleted(self): self.task.addEffort(self.effort1) self.task2.addEffort(effort.Effort(self.task2)) self.taskList.append(self.task2) self.taskList.remove(self.task) self.failUnless(self.effortStop.enabled()) def testStopIsEnabledWhenATaskWithTrackedEffortIsAdded(self): self.task2.addEffort(effort.Effort(self.task2)) self.taskList.append(self.task2) self.failUnless(self.effortStop.enabled()) def testStopIsEnabledWhenATrackedEffortIsMoved(self): self.task.addEffort(self.effort1) self.taskList.append(self.task2) self.effort1.setTask(self.task2) self.failUnless(self.effortStop.enabled()) def testIgnoreCompositeEfforts(self): effort.reducer.EffortAggregator(self.taskList, aggregation='day') self.task.addEffort(self.effort1) self.failIf('multiple tasks' in self.effortStop.getMenuText()) # Tests of EffortStop.doCommand() def testDoCommandStopsTrackedEffort(self): self.task.addEffort(self.effort1) self.effortStop.doCommand() self.failIf(self.effort1.isBeingTracked()) def testDoCommandStopsAllTrackedEffort(self): self.task.addEffort(self.effort1) self.task.addEffort(self.effort2) self.effortStop.doCommand() self.failIf(self.task.isBeingTracked()) class AttachmentTest(test.wxTestCase): def setUp(self): super(AttachmentTest, self).setUp() task.Task.settings = config.Settings(load=False) taskFile = persistence.TaskFile() self.task = task.Task() taskFile.tasks().extend([self.task]) self.attachment = attachment.FileAttachment('Test') self.task.addAttachment(self.attachment) self.viewer = gui.dialog.editor.LocalAttachmentViewer(self.frame, taskFile, task.Task.settings, owner=self.task, settingsSection='attachmentviewer') def select(self): self.viewer.widget.select_all() self.viewer.updateSelection() # Without this tests fail on Fedora 14 self.viewer.SetFocus() def test_delete(self): self.select() cmd = gui.uicommand.Delete(viewer=self.viewer) cmd.doCommand(None) self.assertEqual(self.task.attachments(), []) def test_cut(self): self.select() cmd = gui.uicommand.EditCut(viewer=self.viewer) cmd.doCommand(None) self.assertEqual(self.task.attachments(), []) def test_cutpaste(self): self.test_cut() cmd = gui.uicommand.EditPaste(viewer=self.viewer) cmd.doCommand(None) self.assertEqual(self.task.attachments(), [self.attachment]) taskcoach-1.4.3/tests/unittests/guiTests/UpdatePerSecondViewerTest.py000066400000000000000000000121361265347643000261300ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import gui, config, persistence from taskcoachlib.domain import base, task, effort, category, date import test class MockWidget(object): def __init__(self): self.refreshedItems = set() def RefreshItems(self, *items): self.refreshedItems.update(set(items)) def ToggleAutoResizing(self, *args, **kwargs): pass def curselection(self): return [] class UpdatePerSecondViewerTestsMixin(object): def setUp(self): super(UpdatePerSecondViewerTestsMixin, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.settings.set('taskviewer', 'columns', "['timeSpent']") self.taskFile = persistence.TaskFile() self.taskList = task.sorter.Sorter(self.taskFile.tasks(), sortBy='dueDateTime') self.updateViewer = self.createUpdateViewer() self.trackedTask = task.Task(subject='tracked') self.trackedEffort = effort.Effort(self.trackedTask) self.trackedTask.addEffort(self.trackedEffort) self.taskList.append(self.trackedTask) def tearDown(self): super(UpdatePerSecondViewerTestsMixin, self).tearDown() self.taskFile.close() self.taskFile.stop() def createUpdateViewer(self): return self.ListViewerClass(self.frame, self.taskFile, self.settings) def testClockNotificationResultsInRefreshedItem(self): self.updateViewer.widget = MockWidget() self.updateViewer.secondRefresher.refreshItems(self.updateViewer.secondRefresher.currentlyTrackedItems()) usingTaskViewer = self.ListViewerClass != gui.viewer.EffortViewer expected = self.trackedTask if usingTaskViewer else self.trackedEffort self.assertEqual(set([expected]), self.updateViewer.widget.refreshedItems) def testClockNotificationResultsInRefreshedItem_OnlyForTrackedItems(self): self.taskList.append(task.Task('not tracked')) self.updateViewer.widget = MockWidget() self.updateViewer.secondRefresher.refreshItems(self.updateViewer.secondRefresher.currentlyTrackedItems()) self.assertEqual(1, len(self.updateViewer.widget.refreshedItems)) def testStopTrackingRemovesViewerFromClockObservers(self): self.trackedTask.stopTracking() self.failIf(date.Scheduler().is_scheduled(self.updateViewer.secondRefresher.onEverySecond)) def testStopTrackingRefreshesTrackedItems(self): self.updateViewer.widget = MockWidget() self.trackedTask.stopTracking() self.assertEqual(1, len(self.updateViewer.widget.refreshedItems)) def testRemoveTrackedChildAndParentRemovesViewerFromClockObservers(self): parent = task.Task() self.taskList.append(parent) parent.addChild(self.trackedTask) self.taskList.remove(parent) self.failIf(date.Scheduler().is_scheduled(self.updateViewer.secondRefresher.onEverySecond)) def testCreateViewerWithTrackedItemsStartsTheClock(self): self.createUpdateViewer() self.failUnless(self.updateViewer.secondRefresher.isClockStarted()) def testViewerDoesNotReactToAddEventsFromOtherContainers(self): categories = base.filter.SearchFilter(category.CategoryList()) try: categories.append(category.Category('Test')) except AttributeError: # pragma: no cover self.fail("Adding a category shouldn't affect the UpdatePerSecondViewer.") def testViewerDoesNotReactToRemoveEventsFromOtherContainers(self): categories = base.filter.SearchFilter(category.CategoryList()) categories.append(category.Category('Test')) try: categories.clear() except AttributeError: # pragma: no cover self.fail("Removing a category shouldn't affect the UpdatePerSecondViewer.") class TaskListViewerUpdatePerSecondViewerTest(UpdatePerSecondViewerTestsMixin, test.wxTestCase): ListViewerClass = gui.viewer.TaskViewer class SquareTaskViewerUpdatePerSecondViewerTest(UpdatePerSecondViewerTestsMixin, test.wxTestCase): ListViewerClass = gui.viewer.SquareTaskViewer class EffortListViewerUpdatePerSecondTest(UpdatePerSecondViewerTestsMixin, test.wxTestCase): ListViewerClass = gui.viewer.EffortViewer taskcoach-1.4.3/tests/unittests/guiTests/VersionDialogTest.py000066400000000000000000000050341265347643000244650ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import config from taskcoachlib.gui.dialog import version import test class DummyEvent(object): def Skip(self): pass class CommonTestsMixin(object): def testCreateAndClose(self): self.dialog.onClose(DummyEvent()) self.failUnless(self.settings.getboolean('version', 'notify')) def testNoMoreNotifications(self): self.dialog.check.SetValue(False) self.dialog.onClose(DummyEvent()) self.failIf(self.settings.getboolean('version', 'notify')) class VersionDialogTestCase(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) self.dialog = self.createDialog() def createDialog(self): raise NotImplementedError # pragma: no cover class NewVersionDialogTest(CommonTestsMixin, VersionDialogTestCase): def createDialog(self): return version.NewVersionDialog(None, version='0.0', message='', settings=self.settings) class VersionUpToDateDialogTest(CommonTestsMixin, VersionDialogTestCase): def createDialog(self): return version.VersionUpToDateDialog(None, version='0.0', message='', settings=self.settings) class NoVersionDialogTest(CommonTestsMixin, VersionDialogTestCase): def createDialog(self): return version.NoVersionDialog(None, version='0.0', message='', settings=self.settings) class PrereleaseVersionDialogTest(CommonTestsMixin, VersionDialogTestCase): def createDialog(self): return version.PrereleaseVersionDialog(None, version='0.0', message='', settings=self.settings) taskcoach-1.4.3/tests/unittests/guiTests/ViewerContainerTest.py000066400000000000000000000107111265347643000250220ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from unittests import dummy from taskcoachlib import gui, config, persistence, widgets from taskcoachlib.domain import task from taskcoachlib.thirdparty.pubsub import pub class DummyMainWindow(widgets.AuiManagedFrameWithDynamicCenterPane): count = 0 def __init__(self): super(DummyMainWindow, self).__init__(None) def addPane(self, window, caption, floating=False): self.count += 1 super(DummyMainWindow, self).addPane(window, caption, str('name%d'%self.count)) def AddBalloonTip(self, *args, **kwargs): pass class DummyPane(object): optionActive = False def __init__(self, window): self.window = window def IsToolbar(self): return False def IsNotebookPage(self): return True def IsNotebookControl(self): return False def HasFlag(self, flag): return True class DummyEvent(object): def __init__(self, pane): self._pane = pane def Skip(self): pass def GetPane(self): return self._pane class DummyChangeEvent(DummyEvent): pass class DummyCloseEvent(DummyEvent): def __init__(self, window): super(DummyCloseEvent, self).__init__(DummyPane(window)) class ViewerContainerTest(test.wxTestCase): def setUp(self): super(ViewerContainerTest, self).setUp() self.events = 0 task.Task.settings = self.settings = config.Settings(load=False) self.settings.set('view', 'viewerwithdummywidgetcount', '2', new=True) self.taskFile = persistence.TaskFile() self.mainWindow = DummyMainWindow() self.container = gui.viewer.ViewerContainer(self.mainWindow, self.settings) self.viewer1 = self.createViewer('taskviewer1') self.container.addViewer(self.viewer1) self.viewer2 = self.createViewer('taskviewer2') self.container.addViewer(self.viewer2) def createViewer(self, settingsSection): self.settings.add_section(settingsSection) return dummy.ViewerWithDummyWidget(self.mainWindow, self.taskFile, self.settings, settingsSection=settingsSection) def onEvent(self): self.events += 1 def testCreate(self): self.assertEqual(0, self.container.size()) def testAddTask(self): self.taskFile.tasks().append(task.Task()) self.assertEqual(1, self.container.size()) def testDefaultActiveViewer(self): self.assertEqual(self.viewer1, self.container.activeViewer()) def testChangePage_ChangesActiveViewer(self): self.container.activateViewer(self.viewer2) self.assertEqual(self.viewer2, self.container.activeViewer()) def testChangePage_NotifiesObserversAboutNewActiveViewer(self): pub.subscribe(self.onEvent, 'viewer.status') self.container.onPageChanged(DummyChangeEvent(self.viewer2)) self.failUnless(self.events > 0) def testCloseViewer_RemovesViewerFromContainer(self): self.container.onPageClosed(DummyCloseEvent(self.viewer1)) self.assertEqual([self.viewer2], self.container.viewers) def testCloseViewer_ChangesActiveViewer(self): self.container.onPageChanged(DummyChangeEvent(self.viewer2)) self.container.onPageClosed(DummyCloseEvent(self.viewer2)) self.assertEqual(self.viewer1, self.container.activeViewer()) def testCloseViewer_NotifiesObserversAboutNewActiveViewer(self): self.container.activateViewer(self.viewer2) pub.subscribe(self.onEvent, 'viewer.status') self.container.closeViewer(self.viewer2) self.failUnless(self.events > 0) taskcoach-1.4.3/tests/unittests/guiTests/ViewerTest.py000066400000000000000000000600521265347643000231620ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import gui, config, widgets, persistence from taskcoachlib.domain import task, date from taskcoachlib.thirdparty import hypertreelist class AuiManagedFrameWithDynamicCenterPane(widgets.AuiManagedFrameWithDynamicCenterPane): def AddBalloonTip(self, *args, **kwargs): pass class Window(AuiManagedFrameWithDynamicCenterPane): def addPane(self, viewer, title, name='name', floating=False): super(Window, self).addPane(viewer, title, name, floating) class ViewerTest(test.wxTestCase): def setUp(self): super(ViewerTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.task = task.Task('task') self.taskFile.tasks().append(self.task) self.window = Window(self.frame) self.viewerContainer = gui.viewer.ViewerContainer(self.window, self.settings) self.viewer = self.createViewer() self.viewerContainer.addViewer(self.viewer) def tearDown(self): super(ViewerTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def createViewer(self): return gui.viewer.TaskViewer(self.window, self.taskFile, self.settings) def testSelectAllViaWidget(self): self.viewer.widget.select_all() self.viewer.updateSelection() self.assertEqual([self.task], self.viewer.curselection()) def testSelectAllViaWidgetWithMultipleItems(self): self.taskFile.tasks().append(task.Task('second')) self.viewer.widget.select_all() self.viewer.updateSelection() self.assertEqual(2, len(self.viewer.curselection())) def testSelectAll(self): self.viewer.select_all() self.viewer.endOfSelectAll() self.assertEqual([self.task], self.viewer.curselection()) def testSelectAllWithMultipleItems(self): self.taskFile.tasks().append(task.Task('second')) self.viewer.select_all() self.viewer.endOfSelectAll() self.assertEqual(2, len(self.viewer.curselection())) def testSelectNextItemAfterDeletingSelection(self): secondTask = task.Task('second') self.taskFile.tasks().append(secondTask) self.viewer.select([self.task]) self.taskFile.tasks().remove(self.task) self.assertEqual([secondTask], self.viewer.curselection()) def testSelectParentAfterDeletingSelectedChild(self): secondTask = task.Task('second') self.taskFile.tasks().append(secondTask) child = task.Task('child') self.task.addChild(child) child.setParent(self.task) self.taskFile.tasks().append(child) self.viewer.select([child]) self.taskFile.tasks().remove(child) self.assertEqual([self.task], self.viewer.curselection()) def testDontChangeSelectionAfterDeletingAnItemThatIsNotSelected(self): secondTask = task.Task('second') self.taskFile.tasks().append(secondTask) child = task.Task('child') self.task.addChild(child) child.setParent(self.task) self.taskFile.tasks().append(child) self.viewer.select([secondTask]) self.taskFile.tasks().remove(child) self.assertEqual([secondTask], self.viewer.curselection()) def testFirstViewerInstanceSettingsSection(self): self.assertEqual(self.viewer.__class__.__name__.lower(), self.viewer.settingsSection()) def testSecondViewerInstanceHasAnotherSettingsSection(self): viewer2 = self.createViewer() self.assertEqual(self.viewer.settingsSection() + '1', viewer2.settingsSection()) def testTitle(self): self.assertEqual(self.viewer.defaultTitle, self.viewer.title()) def testSetTitle(self): self.viewer.setTitle('New title') self.assertEqual('New title', self.viewer.title()) def testSetTitleSavesTitleInSettings(self): self.viewer.setTitle('New title') self.assertEqual('New title', self.settings.get(self.viewer.settingsSection(), 'title')) def testSetTitleDoesNotSaveTitleInSettingsWhenTitleIsDefaultTitle(self): self.viewer.setTitle(self.viewer.defaultTitle) self.assertEqual('', self.settings.get(self.viewer.settingsSection(), 'title')) def testSetTitleChangesTabTitle(self): self.viewer.setTitle('New title') self.assertEqual('New title', self.window.manager.GetPane(self.viewer).caption) def testGetItemTooltipData(self): self.task.setDescription('Description') expectedData = [('led_grey_icon', ['task']), ('folder_blue_arrow_icon', []), ('paperclip_icon', []), (None, ['Description'])] self.assertEqual(expectedData, self.viewer.getItemTooltipData(self.task)) class SortableViewerTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) self.viewer = self.createViewer() def createViewer(self): viewer = gui.viewer.mixin.SortableViewerMixin() viewer.settings = self.settings viewer.settingsSection = lambda: 'taskviewer' viewer.SorterClass = task.sorter.Sorter presentation = viewer.createSorter(task.TaskList()) viewer.presentation = lambda: presentation return viewer def testIsSortable(self): self.failUnless(self.viewer.isSortable()) def testSortBy(self): self.viewer.sortBy('subject') self.assertEqual('subject', eval(self.settings.get(self.viewer.settingsSection(), 'sortby'))[0]) def testSortByTwiceFlipsSortOrder(self): self.viewer.sortBy('subject') self.viewer.setSortOrderAscending(True) self.viewer.sortBy('subject') self.failIf(self.viewer.isSortOrderAscending()) def testIsSortedBy(self): self.viewer.sortBy('description') self.failUnless(self.viewer.isSortedBy('description')) def testSortOrderAscending(self): self.viewer.setSortOrderAscending(True) self.failUnless(self.viewer.isSortOrderAscending()) def testSortOrderDescending(self): self.viewer.setSortOrderAscending(False) self.failIf(self.viewer.isSortOrderAscending()) def testSetSortCaseSensitive(self): self.viewer.setSortCaseSensitive(True) self.failUnless(self.viewer.isSortCaseSensitive()) def testSetSortCaseInsensitive(self): self.viewer.setSortCaseSensitive(False) self.failIf(self.viewer.isSortCaseSensitive()) def testApplySettingsWhenCreatingViewer(self): self.settings.set(self.viewer.settingsSection(), 'sortby', '["description"]') anotherViewer = self.createViewer() anotherViewer.presentation().extend([task.Task(description='B'), task.Task(description='A')]) self.assertEqual(['A', 'B'], [t.description() for t in anotherViewer.presentation()]) class SortableViewerForTasksTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) class ViewerUnderTest(gui.viewer.mixin.SortableViewerForTasksMixin): viewerImages = [] self.viewer = ViewerUnderTest() self.viewer.settings = self.settings self.viewer.settingsSection = lambda: 'taskviewer' self.viewer.presentation = lambda: task.sorter.Sorter(task.TaskList()) def testSetSortByTaskStatusFirst(self): self.viewer.setSortByTaskStatusFirst(True) self.failUnless(self.viewer.isSortByTaskStatusFirst()) def testSetNoSortByTaskStatusFirst(self): self.viewer.setSortByTaskStatusFirst(False) self.failIf(self.viewer.isSortByTaskStatusFirst()) class DummyViewer(object): def isTreeViewer(self): return False def createFilter(self, presentation): return presentation class SearchableViewerUnderTest(gui.viewer.mixin.SearchableViewerMixin, DummyViewer): pass class SearchableViewerTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) self.viewer = self.createViewer() def createViewer(self): viewer = SearchableViewerUnderTest() # pylint: disable=W0201 viewer.settings = self.settings viewer.settingsSection = lambda: 'taskviewer' presentation = viewer.createFilter(task.TaskList()) viewer.presentation = lambda: presentation return viewer def testIsSearchable(self): self.failUnless(self.viewer.isSearchable()) def testDefaultSearchFilter(self): self.assertEqual(('', False, False, False, False), self.viewer.getSearchFilter()) def testSetSearchFilterString(self): self.viewer.setSearchFilter('bla', matchCase=True) self.assertEqual('bla', self.settings.get(self.viewer.settingsSection(), 'searchfilterstring')) def testSetSearchFilterString_AffectsPresentation(self): self.viewer.presentation().append(task.Task()) self.viewer.setSearchFilter('bla') self.failIf(self.viewer.presentation()) def testSearchMatchCase(self): self.viewer.setSearchFilter('bla', matchCase=True) self.assertEqual(True, self.settings.getboolean(self.viewer.settingsSection(), 'searchfiltermatchcase')) def testSearchMatchCase_AffectsPresenation(self): self.viewer.presentation().append(task.Task('BLA')) self.viewer.setSearchFilter('bla', matchCase=True) self.failIf(self.viewer.presentation()) def testSearchIncludesSubItems(self): self.viewer.setSearchFilter('bla', includeSubItems=True) self.assertEqual(True, self.settings.getboolean(self.viewer.settingsSection(), 'searchfilterincludesubitems')) def testSearchIncludesSubItems_AffectsPresentation(self): parent = task.Task('parent') child = task.Task('child') parent.addChild(child) self.viewer.presentation().append(parent) self.viewer.setSearchFilter('parent', includeSubItems=True) self.assertEqual(2, len(self.viewer.presentation())) def testSearchDescription(self): self.viewer.setSearchFilter('bla', searchDescription=True) self.assertEqual(True, self.settings.getboolean(self.viewer.settingsSection(), 'searchdescription')) def testSearchDescription_AffectsPresentation(self): self.viewer.presentation().append(task.Task('subject', description='description')) self.viewer.setSearchFilter('descr', searchDescription=True) self.assertEqual(1, len(self.viewer.presentation())) def testApplySettingsWhenCreatingViewer(self): self.settings.set(self.viewer.settingsSection(), 'searchfilterstring', 'whatever') anotherViewer = self.createViewer() anotherViewer.presentation().append(task.Task()) self.failIf(anotherViewer.presentation()) class FilterableViewerTest(test.TestCase): def setUp(self): self.viewer = gui.viewer.mixin.FilterableViewerMixin() def testIsFilterable(self): self.failUnless(self.viewer.isFilterable()) class FilterableViewerForTasksUnderTest(gui.viewer.mixin.FilterableViewerForTasksMixin, DummyViewer): pass class FilterableViewerForTasks(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) task.Task.settings = self.settings self.viewer = self.createViewer() def tearDown(self): super(FilterableViewerForTasks, self).tearDown() self.viewer.taskFile.close() self.viewer.taskFile.stop() def createViewer(self): viewer = FilterableViewerForTasksUnderTest() # pylint: disable=W0201 viewer.taskFile = persistence.TaskFile() viewer.settings = self.settings viewer.settingsSection = lambda: 'taskviewer' presentation = viewer.createFilter(viewer.taskFile.tasks()) viewer.presentation = lambda: presentation return viewer def testIsNotHidingInactiveTasksByDefault(self): self.failIf(self.viewer.isHidingTaskStatus(task.status.inactive)) def testHideInactiveTasks(self): self.viewer.hideTaskStatus(task.status.inactive) self.failUnless(self.viewer.isHidingTaskStatus(task.status.inactive)) def testHideInactiveTasks_SetsSetting(self): self.viewer.hideTaskStatus(task.status.inactive) self.failUnless(self.settings.getboolean(self.viewer.settingsSection(), 'hideinactivetasks')) def testHideInactiveTasks_AffectsPresentation(self): self.viewer.presentation().append(task.Task(plannedStartDateTime=date.Tomorrow())) self.viewer.hideTaskStatus(task.status.inactive) self.failIf(self.viewer.presentation()) def testUnhideInactiveTasks(self): self.viewer.presentation().append(task.Task(plannedStartDateTime=date.Tomorrow())) self.viewer.hideTaskStatus(task.status.inactive) self.viewer.hideTaskStatus(task.status.inactive, False) self.failUnless(self.viewer.presentation()) def testIsNotHidingLateTasksByDefault(self): self.failIf(self.viewer.isHidingTaskStatus(task.status.late)) def testHideLateTasks(self): self.viewer.hideTaskStatus(task.status.late) self.failUnless(self.viewer.isHidingTaskStatus(task.status.late)) def testHideLateTasks_SetsSetting(self): self.viewer.hideTaskStatus(task.status.late) self.failUnless(self.settings.getboolean(self.viewer.settingsSection(), 'hidelatetasks')) def testHideLateTasks_AffectsPresentation(self): self.viewer.presentation().append(task.Task(plannedStartDateTime=date.Yesterday())) self.viewer.hideTaskStatus(task.status.late) self.failIf(self.viewer.presentation()) def testUnhideLateTasks(self): self.viewer.presentation().append(task.Task(plannedStartDateTime=date.Yesterday())) self.viewer.hideTaskStatus(task.status.late) self.viewer.hideTaskStatus(task.status.late, False) self.failUnless(self.viewer.presentation()) def testIsNotHidingDueSoonTasksByDefault(self): self.failIf(self.viewer.isHidingTaskStatus(task.status.duesoon)) def testHideDueSoonTasks(self): self.viewer.hideTaskStatus(task.status.duesoon) self.failUnless(self.viewer.isHidingTaskStatus(task.status.duesoon)) def testHideDueSoonTasks_SetsSetting(self): self.viewer.hideTaskStatus(task.status.duesoon) self.failUnless(self.settings.getboolean(self.viewer.settingsSection(), 'hideduesoontasks')) def testHideDueSoonTasks_AffectsPresentation(self): self.viewer.presentation().append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.viewer.hideTaskStatus(task.status.duesoon) self.failIf(self.viewer.presentation()) def testUnhideDueSoonTasks(self): self.viewer.presentation().append(task.Task(dueDateTime=date.Now() + date.ONE_HOUR)) self.viewer.hideTaskStatus(task.status.duesoon) self.viewer.hideTaskStatus(task.status.duesoon, False) self.failUnless(self.viewer.presentation()) def testIsNotHidingOverDueTasksByDefault(self): self.failIf(self.viewer.isHidingTaskStatus(task.status.overdue)) def testHideOverDueTasks(self): self.viewer.hideTaskStatus(task.status.overdue) self.failUnless(self.viewer.isHidingTaskStatus(task.status.overdue)) def testHideOverDueTasks_SetsSetting(self): self.viewer.hideTaskStatus(task.status.overdue) self.failUnless(self.settings.getboolean(self.viewer.settingsSection(), 'hideoverduetasks')) def testHideOverDueTasks_AffectsPresentation(self): self.viewer.presentation().append(task.Task(dueDateTime=date.Yesterday())) self.viewer.hideTaskStatus(task.status.overdue) self.failIf(self.viewer.presentation()) def testUnhideOverDueTasks(self): self.viewer.presentation().append(task.Task(dueDateTime=date.Yesterday())) self.viewer.hideTaskStatus(task.status.overdue) self.viewer.hideTaskStatus(task.status.overdue, False) self.failUnless(self.viewer.presentation()) def testIsNotHidingCompletedTasksByDefault(self): self.failIf(self.viewer.isHidingTaskStatus(task.status.completed)) def testHideCompletedTasks(self): self.viewer.hideTaskStatus(task.status.completed) self.failUnless(self.viewer.isHidingTaskStatus(task.status.completed)) def testHideCompletedTasks_SetsSetting(self): self.viewer.hideTaskStatus(task.status.completed) self.failUnless(self.settings.getboolean(self.viewer.settingsSection(), 'hidecompletedtasks')) def testHideCompletedTasks_AffectsPresentation(self): self.viewer.presentation().append(task.Task(completionDateTime=date.Now())) self.viewer.hideTaskStatus(task.status.completed) self.failIf(self.viewer.presentation()) def testUnhideCompletedTasks(self): self.viewer.presentation().append(task.Task(completionDateTime=date.Now())) self.viewer.hideTaskStatus(task.status.completed) self.viewer.hideTaskStatus(task.status.completed, False) self.failUnless(self.viewer.presentation()) def testIsNotHidingCompositeTasksByDefault(self): self.failIf(self.viewer.isHidingCompositeTasks()) def testHideCompositeTasks(self): self.viewer.hideCompositeTasks() self.failUnless(self.viewer.isHidingCompositeTasks()) def testHideCompositeTasks_SetsSettings(self): self.viewer.hideCompositeTasks() self.failUnless(self.settings.getboolean(self.viewer.settingsSection(), 'hidecompositetasks')) def testHideCompositeTasks_AffectsPresentation(self): self.viewer.hideCompositeTasks() parent = task.Task() child = task.Task() parent.addChild(child) self.viewer.presentation().append(parent) self.assertEqual([child], self.viewer.presentation()) def testUnhideCompositeTasks(self): self.viewer.hideCompositeTasks() parent = task.Task() child = task.Task() parent.addChild(child) self.viewer.presentation().append(parent) self.viewer.hideCompositeTasks(False) self.assertEqual(2, len(self.viewer.presentation())) def testClearAllFilters(self): self.viewer.hideCompositeTasks() for status in task.Task.possibleStatuses(): self.viewer.hideTaskStatus(status) self.viewer.resetFilter() self.failIf(self.viewer.isHidingCompositeTasks()) for status in task.Task.possibleStatuses(): self.failIf(self.viewer.isHidingTaskStatus(status)) def testApplySettingsWhenCreatingViewer(self): self.settings.set(self.viewer.settingsSection(), 'hidecompletedtasks', 'True') anotherViewer = self.createViewer() anotherViewer.presentation().append(task.Task(completionDateTime=date.Now())) self.failIf(anotherViewer.presentation()) class ViewerBaseClassTest(test.wxTestCase): def testNotImplementedError(self): taskFile = persistence.TaskFile() try: try: gui.viewer.base.Viewer(self.frame, taskFile, None, settingsSection='bla') self.fail('Expected NotImplementedError') # pragma: no cover except NotImplementedError: pass finally: taskFile.close() taskFile.stop() class ViewerIteratorTestCase(test.wxTestCase): treeMode = 'Subclass responsibility' def createViewer(self): return gui.viewer.TaskViewer(self.window, self.taskFile, self.settings) def setUp(self): super(ViewerIteratorTestCase, self).setUp() self.settings = config.Settings(load=False) task.Task.settings = self.settings self.taskFile = persistence.TaskFile() self.taskList = self.taskFile.tasks() self.window = AuiManagedFrameWithDynamicCenterPane(self.frame) self.viewer = self.createViewer() self.settings.setboolean(self.viewer.settingsSection(), 'treemode', self.treeMode == 'True') self.viewer.sortBy('subject') def tearDown(self): super(ViewerIteratorTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() def getItemsFromIterator(self): return list(self.viewer.visibleItems()) # pylint: disable=E1101 class ViewerIteratorTestsMixin(object): def testEmptyPresentation(self): self.assertEqual([], self.getItemsFromIterator()) def testOneItem(self): self.taskList.append(task.Task()) self.assertEqual(self.taskList, self.getItemsFromIterator()) def testOneParentAndOneChild(self): parent = task.Task('Z') child = task.Task('A', parent=parent) parent.addChild(child) self.taskList.append(parent) if self.treeMode == 'True': expectedParentAndChildOrder = [parent, child] else: expectedParentAndChildOrder = [child, parent] self.assertEqual(expectedParentAndChildOrder, self.getItemsFromIterator()) def testOneParentOneChildAndOneGrandChild(self): parent = task.Task('a-parent') child = task.Task('b-child', parent=parent) grandChild = task.Task('c-grandchild', parent=child) parent.addChild(child) child.addChild(grandChild) self.taskList.append(parent) self.assertEqual([parent, child, grandChild], self.getItemsFromIterator()) def testThatTasksNotInPresentationAreExcluded(self): parent = task.Task('parent') child = task.Task('child') parent.addChild(child) self.taskList.append(parent) self.viewer.setSearchFilter('parent', matchCase=True) self.assertEqual([parent], self.getItemsFromIterator()) class TreeViewerIteratorTest(ViewerIteratorTestCase, ViewerIteratorTestsMixin): treeMode = 'True' class ListViewerIteratorTest(ViewerIteratorTestCase, ViewerIteratorTestsMixin): treeMode = 'False' class ViewerWithColumnsTest(test.wxTestCase): def setUp(self): self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.viewer = gui.viewer.TaskViewer(self.frame, self.taskFile, self.settings) def tearDown(self): super(ViewerWithColumnsTest, self).tearDown() self.taskFile.close() self.taskFile.stop() def testDefaultColumnWidth(self): expectedWidth = hypertreelist._DEFAULT_COL_WIDTH # pylint: disable=W0212 self.assertEqual(expectedWidth, self.viewer.getColumnWidth('subject')) taskcoach-1.4.3/tests/unittests/guiTests/__init__.py000066400000000000000000000013331265347643000226150ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/metaTests/000077500000000000000000000000001265347643000206465ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/metaTests/DeveloperMessageCheckerTest.py000066400000000000000000000060661265347643000266070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import config, meta from unittests import dummy import StringIO import test class DeveloperMessageCheckerUnderTest(meta.DeveloperMessageChecker): def __init__(self, *args, **kwargs): self.message_file_contents = 'Message|http://a.b\n' kwargs['urlopen'] = self.urlopen kwargs['call_after'] = self.call_after super(DeveloperMessageCheckerUnderTest, self).__init__(*args, **kwargs) @staticmethod def call_after(function, *args, **kwargs): # Don't use wx.CallAfter in the tests return function(*args, **kwargs) def urlopen(self, url): # pylint: disable=W0613 return StringIO.StringIO(self.message_file_contents) class DeveloperMessageCheckerTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) self.checker = DeveloperMessageCheckerUnderTest(self.settings) def testDialogContainsMessage(self): dialog = self.checker.run(show=False) self.assertEqual('Message', dialog.current_message()) def testDialogContainsURL(self): dialog = self.checker.run(show=False) self.assertEqual('http://a.b', dialog.current_url()) def testNoMessage(self): self.checker.message_file_contents = '' self.assertEqual(None, self.checker.run(show=False)) def testOnlyCommentInMessageFile(self): self.checker.message_file_contents = '# This is a comment | even ' \ 'with a pipe symbol in it' self.assertEqual(None, self.checker.run(show=False)) def testCommentFollowedByEmptyLineInMessageFile(self): self.checker.message_file_contents = '# This is a comment\n\n' self.assertEqual(None, self.checker.run(show=False)) def testCommentFollowedWithMessage(self): self.checker.message_file_contents = '# This is a comment\n' \ 'This is the message|url\n' dialog = self.checker.run(show=False) self.assertEqual('This is the message', dialog.current_message()) def testDontShowSameMessageTwice(self): dialog = self.checker.run(show=False) self.assertEqual('Message', dialog.current_message()) dialog.on_close(dummy.Event()) self.assertEqual(None, self.checker.run(show=False)) taskcoach-1.4.3/tests/unittests/metaTests/MetaDataTest.py000066400000000000000000000032071265347643000235420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, datetime from taskcoachlib import meta class VersionNumberTest(test.TestCase): def testVersionHasMajorMinorAndPatchLevel(self): expectedParts = 4 if meta.data.revision else 3 self.assertEqual(expectedParts, len(meta.data.version.split('.'))) def testVersionComponentsAreIntegers(self): for component in meta.data.version.split('.'): self.assertEqual(component, str(int(component))) def testTskVersionIsInteger(self): self.assertEqual(int, type(meta.data.tskversion)) def testReleaseStatus(self): self.failUnless(meta.data.release_status in ['alpha', 'beta', 'stable']) def testReleaseDate(self): datetime.date(int(meta.data.release_year), meta.data.months.index(meta.data.release_month)+1, int(meta.data.release_day)) taskcoach-1.4.3/tests/unittests/metaTests/VersionCheckerTest.py000066400000000000000000000103121265347643000247670ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import config, meta class VersionCheckerUnderTest(meta.VersionChecker): def __init__(self, *args, **kwargs): self.version = kwargs.pop('version') self.retrievalException = kwargs.pop('retrievalException', None) self.parseException = kwargs.pop('parseException', None) self.userNotified = False super(VersionCheckerUnderTest, self).__init__(*args, **kwargs) def retrieveVersionFile(self): # pylint: disable=W0221 if self.retrievalException: raise self.retrievalException else: import StringIO return StringIO.StringIO('%s\n' % self.version) def parseVersionFile(self, versionFile): # pylint: disable=W0221 if self.parseException: raise self.parseException else: return super(VersionCheckerUnderTest, self).parseVersionFile(versionFile) def notifyUser(self, *args, **kwargs): # pylint: disable=W0221,W0613 self.userNotified = True class VersionCheckerTest(test.TestCase): def setUp(self): self.settings = config.Settings(load=False) def checkVersion(self, version, retrievalException=None, parseException=None): checker = VersionCheckerUnderTest(self.settings, version=version, retrievalException=retrievalException, parseException=parseException) checker.run() return checker def assertLastVersionNotified(self, version, retrievalException=None, parseException=None): self.checkVersion(version, retrievalException, parseException) self.assertEqual(version, self.settings.get('version', 'notified')) def testLatestVersionIsNewerThanLastVersionNotified(self): self.assertLastVersionNotified('99.99.99') def testLatestVersionEqualsLastVersionNotified(self): self.assertLastVersionNotified(meta.data.version) def testErrorWhileGettingPadFile(self): import urllib2 retrievalException = urllib2.HTTPError(None, None, None, None, None) self.assertLastVersionNotified(meta.data.version, retrievalException) def testExpatParsingError(self): import xml.parsers.expat as expat exception = expat.error self.assertLastVersionNotified(meta.data.version, parseException=exception) def testDontNotifyWhenCurrentVersionIsNewerThanLastVersionNotified(self): self.settings.set('version', 'notified', '0.0') checker = self.checkVersion(meta.data.version) self.failIf(checker.userNotified) def test9IsNotNewerThan10(self): currentVersion = meta.data.version meta.data.version = '0.72.10' self.settings.set('version', 'notified', '0.72.8') checker = self.checkVersion('0.72.9') self.failIf(checker.userNotified) meta.data.version = currentVersion def testShowDialog(self): class DummyDialog(object): def __init__(self, *args, **kwargs): # pylint: disable=W0613 self.shown = False def Show(self): self.shown = True checker = meta.VersionChecker(self.settings) dialog = checker.showDialog(DummyDialog, '1.0') self.failUnless(dialog.shown) taskcoach-1.4.3/tests/unittests/metaTests/__init__.py000066400000000000000000000013331265347643000227570ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/monitorTests/000077500000000000000000000000001265347643000214075ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/monitorTests/MonitorBaseTest.py000066400000000000000000000135771265347643000250600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib.changes import ChangeMonitor from taskcoachlib.domain.base import Object, CompositeObject from taskcoachlib.patterns import ObservableList class MonitorBaseTest(test.TestCase): klass = Object listClass = ObservableList def setUp(self): self.monitor = ChangeMonitor() self.monitor.monitorClass(self.klass) self.list = self.listClass() self.monitor.monitorCollection(self.list) self.obj = self.klass(subject=u'New object') self.list.append(self.obj) def tearDown(self): self.monitor.unmonitorClass(self.klass) self.monitor.unmonitorCollection(self.list) class MonitorObjectTest(MonitorBaseTest): def doTestAttributeChanged(self, name, value, initialValue, methodName=None): if methodName is None: methodName = name getattr(self.obj, 'set' + methodName[:1].upper() + methodName[1:])(initialValue) self.monitor.resetChanges(self.obj) getattr(self.obj, 'set' + methodName[:1].upper() + methodName[1:])(value) self.assertEqual(self.monitor.getChanges(self.obj), set([name])) def doTestAttributeDidNotChange(self, name, initialValue, methodName=None): if methodName is None: methodName = name getattr(self.obj, 'set' + methodName[:1].upper() + methodName[1:])(initialValue) self.monitor.resetChanges(self.obj) getattr(self.obj, 'set' + methodName[:1].upper() + methodName[1:])(getattr(self.obj, methodName)()) self.assertEqual(self.monitor.getChanges(self.obj), set()) def testSubjectChanged(self): self.doTestAttributeChanged('subject', 'New subject', 'Old subject') def testSubjectDidNotChange(self): self.doTestAttributeDidNotChange('subject', 'Subject') def testDescriptionChanged(self): self.doTestAttributeChanged('description', 'New description', 'Old description') def testDescriptionDidNotChange(self): self.doTestAttributeDidNotChange('description', 'Description') def testForegroundColorChanged(self): self.doTestAttributeChanged('appearance', (128, 128, 128), (64, 64, 64), 'foregroundColor') def testForegroundColorDidNotChange(self): self.doTestAttributeDidNotChange('appearance', (128, 128, 128), 'backgroundColor') def testBackgroundColorChanged(self): self.doTestAttributeChanged('appearance', (128, 128, 128), (64, 64, 64), 'backgroundColor') def testBackgroundColorDidNotChange(self): self.doTestAttributeDidNotChange('appearance', (128, 128, 128), 'backgroundColor') def testFontChanged(self): self.doTestAttributeChanged('appearance', 'dummy1', 'dummy2', 'font') def testFontDidNotChange(self): self.doTestAttributeDidNotChange('appearance', 'dummy', 'font') def testIconChanged(self): self.doTestAttributeChanged('appearance', 'foo', 'bar', 'icon') def testIconDidNotChange(self): self.doTestAttributeDidNotChange('appearance', 'foo', 'icon') def testSelectedIconChanged(self): self.doTestAttributeChanged('appearance', 'foo', 'bar', 'selectedIcon') def testSelectedIconDidNotChange(self): self.doTestAttributeDidNotChange('appearance', 'foo', 'selectedIcon') def testNewObject(self): obj = self.klass(subject=u'New') self.list.append(obj) self.assertEqual(self.monitor.getChanges(obj), None) def testDeletedObject(self): self.monitor.setChanges(self.obj.id(), set()) self.list.remove(self.obj) self.failUnless(self.monitor.isRemoved(self.obj)) def testRemoveAdd(self): self.monitor.resetChanges(self.obj) self.obj.setSubject('Foo') self.list.remove(self.obj) self.assertEqual(self.monitor.getChanges(self.obj), set(['subject', '__del__'])) self.list.append(self.obj) self.assertEqual(self.monitor.getChanges(self.obj), set(['subject'])) self.failIf(self.monitor.isRemoved(self.obj)) class MonitorCompositeObjectTest(MonitorObjectTest): klass = CompositeObject def setUp(self): super(MonitorCompositeObjectTest, self).setUp() self.child = self.klass(subject=u'Child') self.obj.addChild(self.child) def testNewChild(self): child = self.obj.newChild(subject='Child') self.assertEqual(self.monitor.getChanges(child), None) def testChangeChildSubject1(self): self.monitor.resetChanges(self.obj) self.child.setSubject('Child subject') self.assertEqual(self.monitor.getChanges(self.obj), set()) def testChangeChildSubject2(self): self.monitor.resetChanges(self.child) self.child.setSubject('Child subject') self.assertEqual(self.monitor.getChanges(self.child), set(['subject'])) def testExpansionChanged(self): self.monitor.resetChanges(self.obj) self.obj.expand() self.assertEqual(self.monitor.getChanges(self.obj), set(['expandedContexts'])) def testAddChild(self): child = self.klass(subject='Child') self.list.append(child) self.monitor.resetChanges(child) self.obj.addChild(child) self.assertEqual(self.monitor.getChanges(child), set(['__parent__'])) taskcoach-1.4.3/tests/unittests/monitorTests/MonitorCategorizableTest.py000066400000000000000000000045201265347643000267450ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.changes import ChangeMonitor from taskcoachlib.domain.categorizable import CategorizableCompositeObject from taskcoachlib.domain.category import Category from taskcoachlib.patterns import ObservableList class MonitorCategorizableTest(test.TestCase): def setUp(self): self.monitor = ChangeMonitor() self.monitor.monitorClass(CategorizableCompositeObject) self.obj = CategorizableCompositeObject(subject=u'Object') self.list = ObservableList() self.monitor.monitorCollection(self.list) self.list.append(self.obj) self.cat1 = Category(subject=u'Cat #1') self.cat2 = Category(subject=u'Cat #2') self.catList = ObservableList() self.catList.append(self.cat1) self.catList.append(self.cat2) def tearDown(self): self.monitor.unmonitorClass(CategorizableCompositeObject) self.monitor.unmonitorCollection(self.list) def testAddCategory(self): self.monitor.resetAllChanges() self.obj.addCategory(self.cat1) self.assertEqual(self.monitor.getChanges(self.obj), set(['__add_category:%s' % self.cat1.id()])) def testRemoveCategory(self): self.obj.addCategory(self.cat1) self.monitor.resetAllChanges() self.obj.removeCategory(self.cat1) self.assertEqual(self.monitor.getChanges(self.obj), set(['__del_category:%s' % self.cat1.id()])) def testRemoveBadCategory(self): self.obj.addCategory(self.cat1) self.monitor.resetAllChanges() self.obj.removeCategory(self.cat2) self.assertEqual(self.monitor.getChanges(self.obj), set()) taskcoach-1.4.3/tests/unittests/monitorTests/__init__.py000066400000000000000000000013251265347643000235210ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2011 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/patternsTests/000077500000000000000000000000001265347643000215605ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/patternsTests/CommandTest.py000066400000000000000000000051611265347643000243530ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from unittests import asserts from taskcoachlib import patterns class HistoryTest(test.TestCase, asserts.CommandAssertsMixin): def setUp(self): self.commands = patterns.CommandHistory() self.command = patterns.Command() def tearDown(self): self.commands.clear() def testSingleton(self): another = patterns.CommandHistory() self.failUnless(self.commands is another) def testClear(self): self.command.do() self.commands.clear() self.assertHistoryAndFuture([], []) def testDo(self): self.command.do() self.assertHistoryAndFuture([self.command], []) def testUndo(self): self.command.do() self.commands.undo() self.assertHistoryAndFuture([], [self.command]) def testRedo(self): self.command.do() self.commands.undo() self.commands.redo() self.assertHistoryAndFuture([self.command], []) def testUndoStr_EmptyHistory(self): self.assertEqual('Undo', self.commands.undostr()) def testUndoStr(self): self.command.do() self.assertEqual('Undo %s'%self.command, self.commands.undostr()) def testRedoStr_EmptyFuture(self): self.assertEqual('Redo', self.commands.redostr()) def testRedoStr(self): self.command.do() self.commands.undo() self.assertEqual('Redo %s'%self.command, self.commands.redostr()) def testHasHistory(self): self.failIf(self.commands.hasHistory()) self.command.do() self.failUnless(self.commands.hasHistory()) self.commands.undo() self.failIf(self.commands.hasHistory()) def testHasFuture(self): self.command.do() self.failIf(self.commands.hasFuture()) self.commands.undo() self.failUnless(self.commands.hasFuture()) self.commands.redo() self.failIf(self.commands.hasFuture()) taskcoach-1.4.3/tests/unittests/patternsTests/CompositeTest.py000077500000000000000000000337001265347643000247420ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import patterns class CompositeTest(test.TestCase): def setUp(self): self.composite = patterns.Composite() self.child = patterns.Composite() def testNoParentByDefault(self): self.failIf(self.composite.parent()) def testNoChildrenByDefault(self): self.failIf(self.composite.children()) def testNoRecursiveChildrenByDefault(self): self.failIf(self.composite.children(recursive=True)) def testNoAncestorsByDefault(self): self.assertEqual([], self.composite.ancestors()) def testAddChild(self): self.composite.addChild(self.child) self.assertEqual([self.child], self.composite.children()) def testAddChild_SetsParentOfChild(self): self.composite.addChild(self.child) self.assertEqual(self.composite, self.child.parent()) def testRemoveChild(self): self.composite.addChild(self.child) self.composite.removeChild(self.child) self.assertEqual([], self.composite.children()) def testRemoveChild_DoesNotResetParentOfChild(self): self.composite.addChild(self.child) self.composite.removeChild(self.child) self.assertEqual(self.composite, self.child.parent()) def testCreateWithChildren(self): objectWithChildren = patterns.Composite(children=[self.child]) self.assertEqual([self.child], objectWithChildren.children()) def testCreateWithParent(self): objectWithParent = patterns.Composite(parent=self.composite) self.assertEqual(self.composite, objectWithParent.parent()) def testCreateWithParentDoesNotAddObjectToParent(self): patterns.Composite(parent=self.composite) self.failIf(self.composite.children()) def testChildrenRecursive_WithoutGrandChildren(self): self.composite.addChild(self.child) self.assertEqual([self.child], self.composite.children(recursive=True)) def testChildrenRecursive(self): self.composite.addChild(self.child) grandChild = patterns.Composite() self.child.addChild(grandChild) self.assertEqual([self.child, grandChild], self.composite.children(recursive=True)) def testAncestorsWithTwoGenerations(self): self.composite.addChild(self.child) self.assertEqual([self.composite], self.child.ancestors()) def testAncestorsWithThreeGenerations(self): grandChild = patterns.Composite() self.composite.addChild(self.child) self.child.addChild(grandChild) self.assertEqual([self.composite, self.child], grandChild.ancestors()) def testCompositeIsItsOnlyFamilyByDefault(self): self.assertEqual([self.composite], self.composite.family()) def testParentIsPartOfFamily(self): self.composite.addChild(self.child) self.assertEqual([self.composite, self.child], self.child.family()) def testChildIsPartOfFamily(self): self.composite.addChild(self.child) self.assertEqual([self.composite, self.child], self.composite.family()) def testSiblingsWithoutParentIsEmpty(self): self.failIf(self.composite.siblings()) def testSiblingsWithoutSiblings(self): self.composite.addChild(self.child) self.failIf(self.child.siblings()) def testSiblingsWithOneSibling(self): self.composite.addChild(self.child) child2 = patterns.Composite() self.composite.addChild(child2) self.assertEqual([child2], self.child.siblings()) def testNewChild_HasCorrectParent(self): child = self.composite.newChild() self.assertEqual(self.composite, child.parent()) def testNewChild_NotInParentsChildren(self): child = self.composite.newChild() self.failIf(child in self.composite.children()) def testGetState(self): self.assertEqual(dict(children=[], parent=None), self.composite.__getstate__()) def testGetState_WithChildren(self): self.composite.addChild(self.child) state = self.composite.__getstate__() self.assertEqual(dict(children=[state['children'][0]], parent=None), state) def testGetState_WithParent(self): self.composite.addChild(self.child) self.assertEqual(dict(children=[], parent=self.composite), self.child.__getstate__()) def testSetState_Parent(self): state = self.composite.__getstate__() self.composite.setParent(self.child) self.composite.__setstate__(state) self.assertEqual(None, self.composite.parent()) def testSetState_Children(self): state = self.composite.__getstate__() self.composite.addChild(self.child) self.composite.__setstate__(state) self.assertEqual([], self.composite.children()) def testCopy(self): copy = self.composite.copy() self.assertEqual(copy.children(), self.composite.children()) def testCopy_AddChildrenAfterCopy(self): copy = self.composite.copy() self.composite.addChild(self.child) self.failIf(self.child in copy.children()) def testCopy_WithChildren(self): self.composite.addChild(self.child) copy = self.composite.copy() self.assertEqual(1, len(copy.children())) def testCopy_WithChildren_ParentOfCopiedChildrenIsNewComposite(self): self.composite.addChild(self.child) copy = self.composite.copy() self.assertEqual(copy, copy.children()[0].parent()) def testCopy_WithParent(self): self.composite.addChild(self.child) copy = self.child.copy() self.assertEqual(self.child.parent(), copy.parent()) def testCopy_WithChildren_DoesNotCreateExtraChildrenForOriginal(self): self.composite.addChild(self.child) self.composite.copy() self.assertEqual(1, len(self.composite.children())) class ObservableCompositeTest(test.TestCase): def setUp(self): self.composite = patterns.ObservableComposite() self.child = patterns.ObservableComposite() def testAddChild(self): eventType = self.composite.addChildEventType() self.registerObserver(eventType) self.composite.addChild(self.child) self.assertEqual([patterns.Event(eventType, self.composite, self.child)], self.events) def testRemoveChild(self): eventType = self.composite.removeChildEventType() self.registerObserver(eventType) self.composite.addChild(self.child) self.composite.removeChild(self.child) self.assertEqual([patterns.Event(eventType, self.composite, self.child)], self.events) def testModificationEventTypes(self): self.assertEqual([self.composite.addChildEventType(), self.composite.removeChildEventType()], self.composite.modificationEventTypes()) def testSetState(self): self.composite.addChild(self.child) state = self.composite.__getstate__() self.registerObserver(self.composite.removeChildEventType()) self.registerObserver(self.composite.addChildEventType()) self.composite.__setstate__(state) self.assertEqual([], self.events) class CompositeCollectionTest(test.TestCase): def setUp(self): self.composite = patterns.ObservableComposite() self.composite2 = patterns.ObservableComposite() self.collection = patterns.CompositeList() def testInitialSize(self): self.assertEqual(0, len(self.collection)) def testCreateWithInitialContent(self): collection = patterns.CompositeList([self.composite]) self.assertEqual([self.composite], collection) def testRootItems_NoItems(self): self.assertEqual([], self.collection.rootItems()) def testRootItems_OneRootItem(self): self.collection.append(self.composite) self.assertEqual([self.composite], self.collection.rootItems()) def testRootItems_MultipleRootItems(self): self.collection.extend([self.composite, self.composite2]) self.assertEqualLists([self.composite, self.composite2], self.collection.rootItems()) def testRootItems_RootAndChildItems(self): self.composite.addChild(self.composite2) self.collection.extend([self.composite, self.composite2]) self.assertEqual([self.composite], self.collection.rootItems()) def testAddChild(self): self.collection.extend([self.composite, self.composite2]) self.composite.addChild(self.composite2) self.assertEqual([self.composite], self.collection.rootItems()) def testAddRootWithChildItems(self): self.composite.addChild(self.composite2) self.collection.append(self.composite) self.assertEqualLists([self.composite, self.composite2], self.collection) def testAddRootWithChildItems_AddAllAtOnce(self): self.composite.addChild(self.composite2) self.collection.extend([self.composite, self.composite2]) self.assertEqualLists([self.composite, self.composite2], self.collection) def testAddRootWithChildItems_DoesNotAddChildToParent(self): self.composite.addChild(self.composite2) self.collection.extend([self.composite, self.composite2]) self.assertEqual([self.composite2], self.composite.children()) def testAddCompositeWithParentAddsItToParent(self): self.collection.append(self.composite) self.composite2.setParent(self.composite) self.collection.append(self.composite2) self.assertEqual([self.composite2], self.composite.children()) def testAddCompositeWithParentTriggersNotificationByParent(self): self.registerObserver(self.composite.addChildEventType()) self.collection.append(self.composite) self.composite2.setParent(self.composite) self.collection.append(self.composite2) expectedEvent = patterns.Event(self.composite.addChildEventType(), self.composite, self.composite2) self.assertEqual([expectedEvent], self.events) def testRemoveChildFromCollectionRemovesChildFromParent(self): self.collection.extend([self.composite, self.composite2]) self.composite.addChild(self.composite2) self.collection.remove(self.composite2) self.failIf(self.composite.children()) def testRemoveChildFromCollectionTriggersNotificationByParent(self): self.registerObserver(self.composite.removeChildEventType()) self.collection.extend([self.composite, self.composite2]) self.composite.addChild(self.composite2) self.collection.remove(self.composite2) expectedEvent = patterns.Event(self.composite.removeChildEventType(), self.composite, self.composite2) self.assertEqual([expectedEvent], self.events) def testRemoveCompositeWithChildRemovesChildToo(self): self.composite.addChild(self.composite2) grandChild = patterns.ObservableComposite() self.composite2.addChild(grandChild) self.collection.append(self.composite) self.collection.remove(self.composite2) self.assertEqual([self.composite], self.collection) def testRemoveCompositeAndChildRemovesBoth(self): self.composite.addChild(self.composite2) grandChild = patterns.ObservableComposite() self.composite2.addChild(grandChild) self.collection.append(self.composite) self.collection.removeItems([self.composite2, grandChild]) self.assertEqual([self.composite], self.collection) def testRemoveChildWithChildren_CollectionNotificationContainsParentAndChild(self): self.registerObserver(self.collection.removeItemEventType()) self.composite.addChild(self.composite2) grandChild = patterns.ObservableComposite() self.composite2.addChild(grandChild) self.collection.append(self.composite) self.collection.remove(self.composite2) self.assertEqualLists([self.composite2, grandChild], self.events[0].values(type=self.collection.removeItemEventType())) def testRemoveCompositeWithChildrenDoesNotBreakParentChildRelation(self): self.composite.addChild(self.composite2) self.collection.append(self.composite) self.collection.remove(self.composite) self.assertEqual([self.composite2], self.composite.children()) def testRemoveChildAndThenAddingItAddsItToPreviousParentToo(self): self.composite.addChild(self.composite2) self.collection.append(self.composite) self.collection.remove(self.composite2) self.collection.append(self.composite2) self.assertEqual([self.composite2], self.composite.children()) def testRemoveCompositeNotInCollection(self): self.collection.remove(self.composite) taskcoach-1.4.3/tests/unittests/patternsTests/MetaClassTest.py000066400000000000000000000060561265347643000246550ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import patterns class Numbered(object): __metaclass__ = patterns.NumberedInstances def __init__(self, instanceNumber=-1): self.instanceNumber = instanceNumber class SubclassOfNumbered(Numbered): pass class NumberedInstancesTestsMixin(object): ''' The tests below should work for a class with NumberedInstances as metaclass as well as for a subclass of a class with NumberedInstances as metaclass. ''' def testCounterIncreasesAfterEachInstantation(self): instances = [] for count in range(3): instance = self.classUnderTest() self.assertEqual(count, instance.instanceNumber) instances.append(instance) def testInstanceNumbersAreReusedWhenFreed(self): instance1 = self.classUnderTest() del instance1 instance2 = self.classUnderTest() self.assertEqual(0, instance2.instanceNumber) def testInstanceNumbersAreTheLowestFreeNumber(self): instance1 = self.classUnderTest() instance2 = self.classUnderTest() instance2Number = instance2.instanceNumber del instance2 instance3 = self.classUnderTest() self.assertEqual(instance3.instanceNumber, instance2Number) def testInstanceNumbersFillTheGap(self): instances = [] for count in range(10): instances.append(self.classUnderTest()) del instances[4:6] instance4 = self.classUnderTest() self.assertEqual(4, instance4.instanceNumber) instance5 = self.classUnderTest() self.assertEqual(5, instance5.instanceNumber) instance10 = self.classUnderTest() self.assertEqual(10, instance10.instanceNumber) class NumberedInstancesTest(NumberedInstancesTestsMixin, test.TestCase): classUnderTest = Numbered class SubclassOfNumberedInstancesTest(NumberedInstancesTestsMixin, test.TestCase): classUnderTest = SubclassOfNumbered def testSubclassInstancesHaveTheirOwnNumbers(self): numberedInstance = Numbered() subclassOfNumberedInstance = SubclassOfNumbered() self.assertEqual(0, numberedInstance.instanceNumber) self.assertEqual(0, subclassOfNumberedInstance.instanceNumber) taskcoach-1.4.3/tests/unittests/patternsTests/ObservableTest.py000066400000000000000000000625751265347643000250750ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import patterns class EventTest(test.TestCase): def setUp(self): self.event = patterns.Event('eventtype', self, 'some value') def testEqualWhenAllValuesAreEqual(self): self.assertEqual(self.event, patterns.Event('eventtype', self, 'some value')) def testUnequalWhenValuesAreDifferent(self): self.assertNotEqual(self.event, patterns.Event('eventtype', self, 'other value')) def testUnequalWhenTypesAreDifferent(self): self.assertNotEqual(self.event, patterns.Event('other type', self, 'some value')) def testUnequalWhenSourcesAreDifferent(self): self.assertNotEqual(self.event, patterns.Event('eventtype', None, 'some value')) def testEventWithoutType(self): event = patterns.Event() self.assertEqual(set(), event.types()) def testEventWithoutSources(self): event = patterns.Event('eventtype') self.assertEqual(set(), event.sources()) def testEventSources(self): self.assertEqual(set([self]), self.event.sources()) def testEventValue(self): self.assertEqual('some value', self.event.value()) def testEventValues(self): self.assertEqual(('some value',), self.event.values()) def testEventValueForSpecificSource(self): self.assertEqual('some value', self.event.value(self)) def testEventValuesForSpecificSource(self): self.assertEqual(('some value',), self.event.values(self)) def testAddSource(self): self.event.addSource('source') self.assertEqual(set([self, 'source']), self.event.sources()) def testAddExistingSource(self): self.event.addSource(self) self.assertEqual(set([self]), self.event.sources()) def testAddSourceAndValue(self): self.event.addSource('source', 'value') self.assertEqual('value', self.event.value('source')) def testAddSourceAndValues(self): self.event.addSource('source', 'value1', 'value2') self.assertEqual(set(['value1', 'value2']), set(self.event.values('source'))) def testExistingSourceAndValue(self): self.event.addSource(self, 'new value') self.assertEqual(set(['some value', 'new value']), set(self.event.values())) def testEventTypes(self): self.assertEqual(set(['eventtype']), self.event.types()) def testAddSourceForSpecificType(self): self.event.addSource(self, type='another eventtype') self.assertEqual(set(['eventtype', 'another eventtype']), self.event.types()) def testGetSourcesForSpecificType(self): self.assertEqual(set([self]), self.event.sources('eventtype')) def testGetSourcesForSpecificTypes(self): self.event.addSource('source', type='another eventtype') self.assertEqual(set([self, 'source']), self.event.sources(*self.event.types())) def testGetSourcesForNonExistingEventType(self): self.assertEqual(set(), self.event.sources('unused eventType')) def testGetAllSourcesAfterAddingSourceForSpecificType(self): self.event.addSource('source', type='another eventtype') self.assertEqual(set([self, 'source']), self.event.sources()) def testAddSourceAndValueForSpecificType(self): self.event.addSource('source', 'value', type='another eventtype') self.assertEqual('value', self.event.value('source')) def testAddSourceAndValuesForSpecificType(self): self.event.addSource('source', 'value1', 'value2', type='another eventtype') self.assertEqual(set(['value1', 'value2']), set(self.event.values('source'))) def testAddExistingSourceToAnotherType(self): self.event.addSource(self, type='another eventtype') self.assertEqual(set([self]), self.event.sources()) def testAddExistingSourceWithValueToTypeDoesNotRemoveValueForEarlierType(self): self.event.addSource(self, 'value for another eventtype', type='another eventtype') self.assertEqual('some value', self.event.value(self, type='eventtype')) def testAddExistingSourceWithValueToType(self): self.event.addSource(self, 'value for another eventtype', type='another eventtype') self.assertEqual('value for another eventtype', self.event.value(self, type='another eventtype')) def testSubEventForOneTypeWhenEventHasOneType(self): self.assertEqual(self.event, self.event.subEvent((self.event.type(), self))) def testSubEventForOneTypeWhenEventHasTwoTypes(self): self.event.addSource('source', type='another eventtype') expectedEvent = patterns.Event('eventtype', self, 'some value') self.assertEqual(expectedEvent, self.event.subEvent(('eventtype', self))) def testSubEventForTwoTypesWhenEventHasTwoTypes(self): self.event.addSource('source', type='another eventtype') args = [('eventtype', self), ('another eventtype', 'source')] self.assertEqual(self.event, self.event.subEvent(*args)) # pylint: disable=W0142 def testSubEventForTypeThatIsNotPresent(self): self.assertEqual(patterns.Event(), self.event.subEvent(('missing eventtype', self))) def testSubEventForOneSourceWhenEventHasOneSource(self): self.assertEqual(self.event, self.event.subEvent(('eventtype', self))) def testSubEventForUnspecifiedSource(self): self.assertEqual(self.event, self.event.subEvent(('eventtype', None))) def testSubEventForUnspecifiedSourceAndSpecifiedSources(self): self.assertEqual(self.event, self.event.subEvent(('eventtype', self), ['eventtype', None])) def testSubEventForSourceThatIsNotPresent(self): self.assertEqual(patterns.Event(), self.event.subEvent(('eventtype', 'missing source'))) def testSubEventForSourceThatIsNotPresentForSpecifiedType(self): self.event.addSource('source', type='another eventtype') self.assertEqual(patterns.Event(), self.event.subEvent(('eventtype', 'source'))) class ObservableCollectionFixture(test.TestCase): def setUp(self): self.collection = self.createObservableCollection() patterns.Publisher().registerObserver(self.onAdd, eventType=self.collection.addItemEventType(), eventSource=self.collection) patterns.Publisher().registerObserver(self.onRemove, eventType=self.collection.removeItemEventType(), eventSource=self.collection) self.receivedAddEvents = [] self.receivedRemoveEvents = [] def createObservableCollection(self): raise NotImplementedError # pragma: no cover def onAdd(self, event): self.receivedAddEvents.append(event) def onRemove(self, event): self.receivedRemoveEvents.append(event) class ObservableCollectionTestsMixin(object): def testCollectionEqualsItself(self): self.failUnless(self.collection == self.collection) def testCollectionDoesNotEqualOtherCollections(self): self.failIf(self.collection == self.createObservableCollection()) def testAppend(self): self.collection.append(1) self.failUnless(1 in self.collection) def testAppend_Notification(self): self.collection.append(1) self.assertEqual(1, self.receivedAddEvents[0].value()) def testExtend(self): self.collection.extend([1, 2]) self.failUnless(1 in self.collection and 2 in self.collection) def testExtend_Notification(self): self.collection.extend([1, 2, 3]) self.assertEqual((1, 2, 3), self.receivedAddEvents[0].values()) def testExtend_NoNotificationWhenNoItems(self): self.collection.extend([]) self.failIf(self.receivedAddEvents) def testRemove(self): self.collection.append(1) self.collection.remove(1) self.failIf(self.collection) def testRemove_Notification(self): self.collection.append(1) self.collection.remove(1) self.assertEqual(1, self.receivedRemoveEvents[0].value()) def testRemovingAnItemNotInCollection_CausesException(self): try: self.collection.remove(1) self.fail('Expected ValueError or KeyError') # pragma: no cover except (ValueError, KeyError): pass def testRemovingAnItemNotInCollection_CausesNoNotification(self): try: self.collection.remove(1) except (ValueError, KeyError): pass self.failIf(self.receivedRemoveEvents) def testRemoveItems(self): self.collection.extend([1, 2, 3]) self.collection.removeItems([1, 2]) self.failIf(1 in self.collection or 2 in self.collection) def testRemoveItems_Notification(self): self.collection.extend([1, 2, 3]) self.collection.removeItems([1, 2]) self.assertEqual((1, 2), self.receivedRemoveEvents[0].values()) def testRemoveItems_NoNotificationWhenNoItems(self): self.collection.extend([1, 2, 3]) self.collection.removeItems([]) self.failIf(self.receivedRemoveEvents) def testClear(self): self.collection.extend([1, 2, 3]) self.collection.clear() self.failIf(self.collection) def testClear_Notification(self): self.collection.extend([1, 2, 3]) self.collection.clear() self.assertEqual((1, 2, 3), self.receivedRemoveEvents[0].values()) def testClear_NoNotificationWhenNoItems(self): self.collection.clear() self.failIf(self.receivedRemoveEvents) def testModificationEventTypes(self): self.assertEqual([self.collection.addItemEventType(), self.collection.removeItemEventType()], self.collection.modificationEventTypes()) class ObservableListTest(ObservableCollectionFixture, ObservableCollectionTestsMixin): def createObservableCollection(self): return patterns.ObservableList() def testAppendSameItemTwice(self): self.collection.append(1) self.collection.append(1) self.assertEqual(2, len(self.collection)) class ObservableSetTest(ObservableCollectionFixture, ObservableCollectionTestsMixin): def createObservableCollection(self): return patterns.ObservableSet() def testAppendSameItemTwice(self): self.collection.append(1) self.collection.append(1) self.assertEqual(1, len(self.collection)) class ListDecoratorTest_Constructor(test.TestCase): def testOriginalNotEmpty(self): observable = patterns.ObservableList([1, 2, 3]) observer = patterns.ListDecorator(observable) self.assertEqual([1, 2, 3], observer) class SetDecoratorTest_Constructor(test.TestCase): def testOriginalNotEmpty(self): observable = patterns.ObservableSet([1, 2, 3]) observer = patterns.SetDecorator(observable) self.assertEqual([1, 2, 3], observer) class ListDecoratorTest_AddItems(test.TestCase): def setUp(self): self.observable = patterns.ObservableList() self.observer = patterns.ListDecorator(self.observable) def testAppendToObservable(self): self.observable.append(1) self.assertEqual([1], self.observer) def testAppendToObserver(self): self.observer.append(1) self.assertEqual([1], self.observable) def testExtendObservable(self): self.observable.extend([1, 2, 3]) self.assertEqual([1, 2, 3], self.observer) def testExtendObserver(self): self.observer.extend([1, 2, 3]) self.assertEqual([1, 2, 3], self.observable) class SetDecoratorTest_AddItems(test.TestCase): def setUp(self): self.observable = patterns.ObservableList() self.observer = patterns.SetDecorator(self.observable) def testAppendToObservable(self): self.observable.append(1) self.assertEqual([1], self.observer) def testAppendToObserver(self): self.observer.append(1) self.assertEqual([1], self.observable) def testExtendObservable(self): self.observable.extend([1, 2, 3]) self.assertEqual([1, 2, 3], self.observer) def testExtendObserver(self): self.observer.extend([1, 2, 3]) self.assertEqual([1, 2, 3], self.observable) class ListDecoratorTest_RemoveItems(test.TestCase): def setUp(self): self.observable = patterns.ObservableList() self.observer = patterns.ListDecorator(self.observable) self.observable.extend([1, 2, 3]) def testRemoveFromOriginal(self): self.observable.remove(1) self.assertEqual([2, 3], self.observer) def testRemoveFromObserver(self): self.observer.remove(1) self.assertEqual([2, 3], self.observable) def testRemoveItemsFromOriginal(self): self.observable.removeItems([1, 2]) self.assertEqual([3], self.observer) def testRemoveItemsFromObserver(self): self.observer.removeItems([1, 2]) self.assertEqual([3], self.observable) class SetDecoratorTest_RemoveItems(test.TestCase): def setUp(self): self.observable = patterns.ObservableList() self.observer = patterns.SetDecorator(self.observable) self.observable.extend([1, 2, 3]) def testRemoveFromOriginal(self): self.observable.remove(1) self.assertEqual([2, 3], self.observer) def testRemoveFromObserver(self): self.observer.remove(1) self.assertEqual([2, 3], self.observable) def testRemoveItemsFromOriginal(self): self.observable.removeItems([1, 2]) self.assertEqual([3], self.observer) def testRemoveItemsFromObserver(self): self.observer.removeItems([1, 2]) self.assertEqual([3], self.observable) class ListDecoratorTest_ObserveTheObserver(test.TestCase): def setUp(self): self.list = patterns.ObservableList() self.observer = patterns.ListDecorator(self.list) patterns.Publisher().registerObserver(self.onAdd, eventType=self.observer.addItemEventType(), eventSource=self.observer) patterns.Publisher().registerObserver(self.onRemove, eventType=self.observer.removeItemEventType(), eventSource=self.observer) self.receivedAddEvents = [] self.receivedRemoveEvents = [] def onAdd(self, event): self.receivedAddEvents.append(event) def onRemove(self, event): self.receivedRemoveEvents.append(event) def testExtendOriginal(self): self.list.extend([1, 2, 3]) self.assertEqual((1, 2, 3), self.receivedAddEvents[0].values()) def testExtendObserver(self): self.observer.extend([1, 2, 3]) self.assertEqual((1, 2, 3), self.receivedAddEvents[0].values()) def testRemoveItemsFromOriginal(self): self.list.extend([1, 2, 3]) self.list.removeItems([1, 3]) self.assertEqual((1, 3), self.receivedRemoveEvents[0].values()) class PublisherTest(test.TestCase): def setUp(self): self.publisher = patterns.Publisher() self.events = [] self.events2 = [] def onEvent(self, event): self.events.append(event) def onEvent2(self, event): self.events2.append(event) def testPublisherIsSingleton(self): anotherPublisher = patterns.Publisher() self.failUnless(self.publisher is anotherPublisher) def testRegisterObserver(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.assertEqual([self.onEvent], self.publisher.observers()) def testRegisterObserver_Twice(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.publisher.registerObserver(self.onEvent, eventType='eventType') self.assertEqual([self.onEvent], self.publisher.observers()) def testRegisterObserver_ForTwoDifferentTypes(self): self.publisher.registerObserver(self.onEvent, eventType='eventType1') self.publisher.registerObserver(self.onEvent, eventType='eventType2') self.assertEqual([self.onEvent], self.publisher.observers()) def testRegisterObserver_ListMethod(self): ''' A previous implementation of Publisher used sets. This caused a "TypeError: list objects are unhashable" whenever one tried to use an instance method of a list (sub)class as callback. ''' class List(list): def onEvent(self, *args): pass # pragma: no cover self.publisher.registerObserver(List().onEvent, eventType='eventType') def testGetObservers_WithoutObservers(self): self.assertEqual([], self.publisher.observers()) def testGetObserversForSpecificEventType_WithoutObservers(self): self.assertEqual([], self.publisher.observers(eventType='eventType')) def testGetObserversForSpecificEventType_WithObserver(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.assertEqual([self.onEvent], self.publisher.observers(eventType='eventType')) def testGetObserversForSpecificEventType_WhenDifferentTypesRegistered(self): self.publisher.registerObserver(self.onEvent, eventType='eventType1') self.publisher.registerObserver(self.onEvent, eventType='eventType2') self.assertEqual([self.onEvent], self.publisher.observers(eventType='eventType1')) def testNotifyObservers_WithoutObservers(self): patterns.Event('eventType', self).send() self.failIf(self.events) def testNotifyObservers_WithObserverForDifferentEventType(self): self.publisher.registerObserver(self.onEvent, eventType='eventType1') patterns.Event('eventType2', self).send() self.failIf(self.events) def testNotifyObservers_WithObserverForRightEventType(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') patterns.Event('eventType', self).send() self.assertEqual([patterns.Event('eventType', self)], self.events) def testNotifyObservers_WithObserversForSameAndDifferentEventTypes(self): self.publisher.registerObserver(self.onEvent, eventType='eventType1') self.publisher.registerObserver(self.onEvent, eventType='eventType2') patterns.Event('eventType1', self).send() self.assertEqual([patterns.Event('eventType1', self)], self.events) def testNotifyObservers_ForDifferentEventTypesWithOneEvent(self): self.publisher.registerObserver(self.onEvent, eventType='eventType1') self.publisher.registerObserver(self.onEvent2, eventType='eventType2') event = patterns.Event('eventType1', self) event.addSource(self, type='eventType2') event.send() self.assertEqual([patterns.Event('eventType1', self)], self.events) self.assertEqual([patterns.Event('eventType2', self)], self.events2) def testNotifyObserversWithEventWithoutTypes(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') patterns.Event().send() self.failIf(self.events) def testNotifyObserversWithEventWithoutSources(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') patterns.Event('eventType').send() self.failIf(self.events) def testRemoveObserverForAnyEventType_NotRegisteredBefore(self): self.publisher.removeObserver(self.onEvent) self.assertEqual([], self.publisher.observers()) def testRemoveObserverForAnyEventType_RegisteredBefore(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.publisher.removeObserver(self.onEvent) self.assertEqual([], self.publisher.observers()) def testRemoveObserverForSpecificType_RegisteredForSameType(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.publisher.removeObserver(self.onEvent, eventType='eventType') self.assertEqual([], self.publisher.observers()) def testRemoveObserverForSpecificType_RegisteredForDifferentType(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.publisher.removeObserver(self.onEvent, eventType='otherType') self.assertEqual([self.onEvent], self.publisher.observers()) def testRemoveObserverForSpecificType_RegisteredForDifferentTypeThatHasObservers(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.publisher.registerObserver(self.onEvent2, eventType='otherType') self.publisher.removeObserver(self.onEvent, eventType='otherType') self.assertEqual([self.onEvent], self.publisher.observers('eventType')) def testClear(self): self.publisher.registerObserver(self.onEvent, eventType='eventType') self.publisher.clear() self.assertEqual([], self.publisher.observers()) def testRegisterObserver_ForSpecificSource(self): self.publisher.registerObserver(self.onEvent, eventType='eventType', eventSource='observable1') patterns.Event('eventType', 'observable2').send() self.failIf(self.events) def testNotifyObserver_ForSpecificSource(self): self.publisher.registerObserver(self.onEvent, eventType='eventType', eventSource='observable1') event = patterns.Event('eventType', 'observable1') event.send() self.assertEqual([event], self.events) def testRemoveObserver_RegisteredForSpecificSource(self): self.publisher.registerObserver(self.onEvent, eventType='eventType', eventSource='observable1') self.publisher.removeObserver(self.onEvent) event = patterns.Event('eventType', 'observable1') event.send() self.failIf(self.events) def testRemoveObserverForSpecificEventType_RegisteredForSpecificSource(self): self.publisher.registerObserver(self.onEvent, eventType='eventType', eventSource='observable1') self.publisher.removeObserver(self.onEvent, eventType='eventType') patterns.Event('eventType', 'observable1').send() self.failIf(self.events) def testRemoveObserverForSpecificEventSource(self): self.publisher.registerObserver(self.onEvent, eventType='eventType', eventSource='observable1') self.publisher.registerObserver(self.onEvent, eventType='eventType', eventSource='observable2') self.publisher.removeObserver(self.onEvent, eventSource='observable1') patterns.Event('eventType', 'observable2').send() self.failUnless(self.events) def testRemoveObserverForSpecificEventTypeAndSource(self): self.publisher.registerObserver(self.onEvent, eventType='eventType1', eventSource='observable1') self.publisher.registerObserver(self.onEvent, eventType='eventType1', eventSource='observable2') self.publisher.registerObserver(self.onEvent, eventType='eventType2', eventSource='observable1') self.publisher.removeObserver(self.onEvent, eventType='eventType1', eventSource='observable1') patterns.Event('eventType1', 'observable1').send() self.failIf(self.events) patterns.Event('eventType2', 'observable1').send() self.failUnless(self.events) def testRemoveObserverForSpecificEventTypeAndSourceDoesNotRemoveOtherSources(self): self.publisher.registerObserver(self.onEvent, eventType='eventType1', eventSource='observable1') self.publisher.registerObserver(self.onEvent, eventType='eventType1', eventSource='observable2') self.publisher.registerObserver(self.onEvent, eventType='eventType2', eventSource='observable1') self.publisher.removeObserver(self.onEvent, eventType='eventType1', eventSource='observable1') patterns.Event('eventType1', 'observable2').send() self.failUnless(self.events) taskcoach-1.4.3/tests/unittests/patternsTests/SingletonTest.py000066400000000000000000000103201265347643000247300ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import patterns class Singleton(object): __metaclass__ = patterns.Singleton class SingletonTest(test.TestCase): def tearDown(self): super(SingletonTest, self).tearDown() self.resetSingleton() def resetSingleton(self): Singleton.deleteInstance() # pylint: disable=E1101 def testCreation(self): singleton = Singleton() self.failUnless(isinstance(singleton, Singleton)) def testCreateTwice(self): single1 = Singleton() single2 = Singleton() self.failUnless(single1 is single2) def testSingletonsCanHaveInit(self): class SingletonWithInit: __metaclass__ = patterns.Singleton def __init__(self): self.a = 1 single = SingletonWithInit() self.assertEqual(1, single.a) def testSingletonInitCanHaveArgs(self): class SingletonWithInit: __metaclass__ = patterns.Singleton def __init__(self, arg): self.a = arg single = SingletonWithInit('Yo') self.assertEqual('Yo', single.a) def testSingletonInitIsOnlyCalledOnce(self): class SingletonWithInit: _count = 0 __metaclass__ = patterns.Singleton def __init__(self): SingletonWithInit._count += 1 SingletonWithInit() SingletonWithInit() self.assertEqual(1, SingletonWithInit._count) # pylint: disable=W0212 def testDeleteInstance(self): singleton1 = Singleton() self.resetSingleton() singleton2 = Singleton() self.failIf(singleton1 is singleton2) def testSingletonHasNoInstanceBeforeFirstCreation(self): self.failIf(Singleton.hasInstance()) # pylint: disable=E1101 def testSingletonHasInstanceAfterFirstCreation(self): Singleton() self.failUnless(Singleton.hasInstance()) # pylint: disable=E1101 def testSingletonHasInstanceAfterSecondCreation(self): Singleton() Singleton() self.failUnless(Singleton.hasInstance()) # pylint: disable=E1101 def testSingletonHasNoInstanceAfterDeletion(self): Singleton() self.resetSingleton() self.failIf(Singleton.hasInstance()) # pylint: disable=E1101 class SingletonSubclassTest(test.TestCase): def testSubclassesAreSingletonsToo(self): class Sub(Singleton): pass sub1 = Sub() sub2 = Sub() self.failUnless(sub1 is sub2) def testDifferentSubclassesAreNotTheSameSingleton(self): class Sub1(Singleton): pass sub1 = Sub1() class Sub2(Singleton): pass sub2 = Sub2() self.failIf(sub1 is sub2) def testSubclassesCanHaveInit(self): class Sub(Singleton): def __init__(self): super(Sub, self).__init__() self.a = 1 sub = Sub() self.assertEqual(1, sub.a) def testSubclassInitCanHaveArgs(self): class Sub(Singleton): def __init__(self, arg): super(Sub, self).__init__() self.arg = arg self.assertEqual('Yo', Sub('Yo').arg) def testSubclassInitIsOnlyCalledOnce(self): class Sub(Singleton): _count = 0 def __init__(self): super(Sub, self).__init__() Sub._count += 1 Sub() Sub() self.assertEqual(1, Sub._count) # pylint: disable=W0212 taskcoach-1.4.3/tests/unittests/patternsTests/__init__.py000066400000000000000000000013331265347643000236710ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/persistenceTests/000077500000000000000000000000001265347643000222445ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/persistenceTests/AutoBackupTest.py000066400000000000000000000170151265347643000255200ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, os, shutil, bz2 from taskcoachlib import persistence, config from taskcoachlib.domain import date, task class DummyFile(object): encoding = 'utf-8' name = 'whatever.tsk' def close(self, *args, **kwargs): # pylint: disable=W0613 pass def write(self, *args, **kwargs): # pylint: disable=W0613 pass class DummyTaskFile(persistence.TaskFile): def _openForRead(self, *args, **kwargs): # pylint: disable=W0613 return DummyFile() def _openForWrite(self, *args, **kwargs): # pylint: disable=W0613 return DummyFile() def _read(self, *args, **kwargs): # pylint: disable=W0613 return [task.Task()], [], [], None, dict(), None def exists(self): return True def filename(self): return super(DummyTaskFile, self).filename() or 'whatever.tsk' class LocalSettings(config.Settings): def __init__(self, *args, **kwargs): self.__path = os.path.join(os.getcwd(), 'testdata') if os.path.exists(self.__path): shutil.rmtree(self.__path) os.mkdir(self.__path) super(LocalSettings, self).__init__(*args, **kwargs) def _pathToDataDir(self, *args, **kwargs): return self.__path, False class AutoBackupTest(test.TestCase): # pylint: disable=E1101,E1002,W0232 def setUp(self): super(AutoBackupTest, self).setUp() task.Task.settings = self.settings = LocalSettings(load=False) self.taskFile = DummyTaskFile() self.backup = persistence.AutoBackup(self.settings, copyfile=self.onCopyFile) self.copyCalled = False def tearDown(self): super(AutoBackupTest, self).tearDown() self.taskFile.close() self.taskFile.stop() if os.path.exists('test.tsk'): os.remove('test.tsk') def onCopyFile(self, *args): # pylint: disable=W0613 self.copyCalled = True def oneBackupFile(self): return [self.backup.backupFilename(self.taskFile)] def fourBackupFiles(self): files = [self.backup.backupFilename(self.taskFile), self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2001,1,1,1,1,1)), self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2002,1,1,1,1,1)), self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2000,1,1,1,1,1))] files.sort() return files def fiveBackupFiles(self): files = [self.backup.backupFilename(self.taskFile), self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2001,1,1,1,1,1)), self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2002,1,1,1,1,1)), self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2002,1,1,1,1,2)), self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2000,1,1,1,1,1))] files.sort() return files def globMany(self, pattern): # pylint: disable=W0613 return self.manyBackupFiles() def manyBackupFiles(self): files = [self.backup.backupFilename(self.taskFile)]*100 + \ [self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2000,1,1,1,1,1))] files.sort() return files def testBackupMigrationManifest(self): self.taskFile.setFilename('test.tsk') self.backup.onTaskFileRead(self.taskFile) with file(os.path.join(self.settings.pathToBackupsDir(), 'backups.xml'), 'rb') as fp: content = fp.read() self.assertEqual(content, 'test.tsk') def testBackupMigration(self): self.taskFile.setFilename('test.tsk') with file('test.20140715-010203.tsk.bak', 'wb') as fp: fp.write('Hello, world') self.backup.onTaskFileRead(self.taskFile) self.failIf(os.path.exists('test.20140715-010203.tsk.bak')) backupName = os.path.join(self.settings.pathToBackupsDir(), '13cf6835565aaf4ab1f78e922b9917f9a4c7a856', '20140715010203.bak') self.failUnless(os.path.exists(backupName)) self.assertEqual(bz2.BZ2File(backupName).read(), 'Hello, world') def testNoBackupFiles(self): self.assertEqual([], self.backup.backupFiles(self.taskFile, glob=lambda pattern: [])) def testOneBackupFile(self): self.assertEqual(['1'], self.backup.backupFiles(self.taskFile, glob=lambda pattern: ['1'])) def testNotTooManyBackupFiles(self): self.assertEqual(0, self.backup.numberOfExtraneousBackupFiles(self.oneBackupFile())) def testTooManyBackupFiles_(self): self.assertEqual(86, self.backup.numberOfExtraneousBackupFiles(self.manyBackupFiles())) def testRemoveExtraneousBackFiles(self): self.backup.maxNrOfBackupFilesToRemoveAtOnce = 100 removedFiles = [] def remove(filename): removedFiles.append(filename) self.backup.removeExtraneousBackupFiles(self.taskFile, remove=remove, glob=self.globMany) self.assertEqual(86, len(removedFiles)) def testRemoveExtraneousBackFiles_OSError(self): def remove(filename): # pylint: disable=W0613 raise OSError self.backup.removeExtraneousBackupFiles(self.taskFile, remove=remove, glob=self.globMany) def testBackupFilename(self): now = date.DateTime(2004,1,1) self.assertEqual(os.path.join(self.settings.pathToBackupsDir(), 'c81e25c3e04922232ab8eb87be8337c806a44209', '20040101000000.bak'), self.backup.backupFilename(self.taskFile, lambda: now)) # pylint: disable=W0212 def testCreateBackupOnSave(self): self.taskFile.save() self.copyCalled = False self.taskFile.tasks().append(task.Task()) self.taskFile.save() self.failUnless(self.copyCalled) def testDontCreateBackupOnOpen(self): self.taskFile.load() self.failIf(self.copyCalled) def testDontCreateBackupWhenSettingFilename(self): self.taskFile.setFilename('newname.tsk') self.failIf(self.copyCalled) def testLeastUniqueBackupFile_FourBackupFiles(self): self.assertEqual(self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2001,1,1,1,1,1)), self.backup.leastUniqueBackupFile(self.fourBackupFiles())) def testLeastUniqueBackupFile_FiveBackupFiles(self): self.assertEqual(self.backup.backupFilename(self.taskFile, now=lambda: date.DateTime(2002,1,1,1,1,1)), self.backup.leastUniqueBackupFile(self.fiveBackupFiles())) taskcoach-1.4.3/tests/unittests/persistenceTests/AutoImporterExporterTest.py000066400000000000000000000112051265347643000276400ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import persistence, config from taskcoachlib.domain import task, date import test import os from unittests import dummy class AutoExporterTestCase(test.TestCase): def setUp(self): task.Task.settings = self.settings = config.Settings(load=False) self.exporter = persistence.AutoImporterExporter(self.settings) self.taskFile = persistence.TaskFile() self.tskFilename = 'autoexport.tsk' self.txtFilename = 'autoexport.txt' self.taskFile.setFilename(self.tskFilename) def tearDown(self): super(AutoExporterTestCase, self).tearDown() del self.exporter for filename in self.tskFilename, self.tskFilename + '.delta', self.txtFilename, self.txtFilename + '-meta': try: os.remove(filename) except OSError: pass def testAddOneTaskWhenAutoSaveIsOn(self): self.settings.set('file', 'autoexport', '["Todo.txt"]') self.settings.set('file', 'autosave', 'True') autosaver = persistence.AutoSaver(self.settings) theTask = task.Task(subject='Some task') self.taskFile.tasks().append(theTask) autosaver.on_idle(dummy.Event()) self.assertEqual('Some task tcid:%s\n' % theTask.id(), file(self.txtFilename, 'r').read()) def testAddOneTaskAndSaveManually(self): self.settings.set('file', 'autoexport', '["Todo.txt"]') theTask = task.Task(subject='Whatever') self.taskFile.tasks().append(theTask) self.taskFile.save() self.assertEqual('Whatever tcid:%s\n' % theTask.id(), file(self.txtFilename, 'r').read()) def testImportOneTaskWhenSavingManually(self): self.settings.set('file', 'autoimport', '["Todo.txt"]') with file(self.txtFilename, 'w') as todoTxtFile: todoTxtFile.write('Imported task\n') self.taskFile.save() self.assertEqual('Imported task', list(self.taskFile.tasks())[0].subject()) def testImportOneTaskWhenAutoSaving(self): self.settings.set('file', 'autoimport', '["Todo.txt"]') self.settings.set('file', 'autosave', 'True') autosaver = persistence.AutoSaver(self.settings) with file(self.txtFilename, 'w') as todoTxtFile: todoTxtFile.write('Imported task\n') self.taskFile.tasks().append(task.Task(subject='Some task')) autosaver.on_idle(dummy.Event()) self.assertEqual(2, len(self.taskFile.tasks())) def testImportAfterReadingTaskFile(self): self.taskFile.save() self.settings.set('file', 'autoimport', '["Todo.txt"]') with file(self.txtFilename, 'w') as todoTxtFile: todoTxtFile.write('Imported task\n') self.taskFile.load() self.assertEqual('Imported task', list(self.taskFile.tasks())[0].subject()) def testSaveWithAutoImportWhenFileToImportDoesNotExist(self): self.settings.set('file', 'autoimport', '["Todo.txt"]') self.taskFile.tasks().append(task.Task(subject='Whatever')) self.taskFile.save() def testBothDeletedTask(self): self.settings.set('file', 'autoimport', '["Todo.txt"]') self.settings.set('file', 'autoexport', '["Todo.txt"]') aTask = task.Task(subject='Whatever') self.taskFile.tasks().append(aTask) self.taskFile.save() self.taskFile.tasks().remove(aTask) self.taskFile.save() self.assertEqual(self.taskFile.tasks(), []) def testBothMarkCompleted(self): self.settings.set('file', 'autoimport', '["Todo.txt"]') self.settings.set('file', 'autoexport', '["Todo.txt"]') aTask = task.Task(subject='Whatever') self.taskFile.tasks().append(aTask) self.taskFile.save() now = date.Now() aTask.setCompletionDateTime(now) self.taskFile.save() self.assertEqual(aTask.completionDateTime(), now) taskcoach-1.4.3/tests/unittests/persistenceTests/AutoSaverTest.py000077500000000000000000000125171265347643000254000ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib import persistence, config from taskcoachlib.domain import task, category from unittests import dummy import test from taskcoachlib.changes import ChangeMonitor class DummyFile(object): name = 'testfile.tsk' encoding = 'utf-8' def close(self, *args, **kwargs): pass def write(self, *args, **kwargs): pass class DummyTaskFile(persistence.TaskFile): def __init__(self, *args, **kwargs): self.saveCalled = 0 self._throw = False super(DummyTaskFile, self).__init__(*args, **kwargs) def _read(self, *args, **kwargs): # pylint: disable=W0613,W0221 if self._throw: raise IOError else: return [task.Task()], [category.Category('category')], [], None, {self.monitor().guid(): self.monitor()}, None def exists(self, *args, **kwargs): # pylint: disable=W0613 return True def _openForRead(self, *args, **kwargs): # pylint: disable=W0613 return DummyFile() def _openForWrite(self, *args, **kwargs): # pylint: disable=W0613 return DummyFile() def save(self, *args, **kwargs): if kwargs.get('doNotify', True): self.saveCalled += 1 super(DummyTaskFile, self).save(*args, **kwargs) def load(self, filename=None, throw=False, *args, **kwargs): # pylint: disable=W0221 self._throw = throw # pylint: disable=W0201 return super(DummyTaskFile, self).load(filename, *args, **kwargs) class AutoSaverTestCase(test.TestCase): def setUp(self): task.Task.settings = self.settings = config.Settings(load=False) self.taskFile = DummyTaskFile() self.autoSaver = persistence.AutoSaver(self.settings) def tearDown(self): super(AutoSaverTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() del self.autoSaver # Make sure AutoSaver is not observing task files def testCreate(self): self.failIf(self.taskFile.saveCalled) def testFileChanged_ButNoFilenameAndAutoSaveOff(self): self.taskFile.tasks().append(task.Task()) self.autoSaver.on_idle(dummy.Event()) self.failIf(self.taskFile.saveCalled) def testFileChanged_ButAutoSaveOff(self): self.settings.set('file', 'autosave', 'False') self.taskFile.setFilename('whatever.tsk') self.taskFile.tasks().append(task.Task()) self.autoSaver.on_idle(dummy.Event()) self.failIf(self.taskFile.saveCalled) def testFileChanged_ButNoFilename(self): self.settings.set('file', 'autosave', 'True') self.taskFile.tasks().append(task.Task()) self.autoSaver.on_idle(dummy.Event()) self.failIf(self.taskFile.saveCalled) def testFileChanged(self): self.settings.set('file', 'autosave', 'True') self.taskFile.setFilename('whatever.tsk') self.taskFile.tasks().append(task.Task()) self.autoSaver.on_idle(dummy.Event()) self.assertEqual(1, self.taskFile.saveCalled) def testSaveAsDoesNotTriggerAutoSave(self): self.settings.set('file', 'autosave', 'True') self.taskFile.setFilename('whatever.tsk') self.taskFile.saveas('newfilename.tsk') self.autoSaver.on_idle(dummy.Event()) self.assertEqual(1, self.taskFile.saveCalled) def testCloseDoesNotTriggerAutoSave(self): self.settings.set('file', 'autosave', 'True') self.taskFile.setFilename('whatever.tsk') self.taskFile.tasks().append(task.Task()) self.autoSaver.on_idle(dummy.Event()) self.taskFile.close() self.assertEqual(1, self.taskFile.saveCalled) def testLoadDoesNotTriggerAutoSave(self): self.settings.set('file', 'autosave', 'True') self.taskFile.setFilename('whatever.tsk') self.taskFile.load() self.autoSaver.on_idle(dummy.Event()) self.failIf(self.taskFile.saveCalled) def testLoadWithExceptionDoesNotTriggerAutoSave(self): self.settings.set('file', 'autosave', 'True') self.taskFile.setFilename('whatever.tsk') try: self.taskFile.load(throw=True) except IOError: pass self.autoSaver.on_idle(dummy.Event()) self.failIf(self.taskFile.saveCalled) def testMergeDoesTriggerAutoSave(self): self.settings.set('file', 'autosave', 'True') self.taskFile.setFilename('whatever.tsk') self.taskFile.merge('another-non-existing-file.tsk') self.autoSaver.on_idle(dummy.Event()) self.assertEqual(1, self.taskFile.saveCalled) taskcoach-1.4.3/tests/unittests/persistenceTests/CSVReaderTest.py000066400000000000000000000311461265347643000252410ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import tempfile import test from taskcoachlib import persistence, config from taskcoachlib.domain import task, category, date class CSVReaderTestCase(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() self.categoryList = category.CategoryList() self.reader = persistence.CSVReader(self.taskList, self.categoryList) self.defaultReaderKwArgs = dict(encoding='utf-8', dialect='excel', hasHeaders=False, importSelectedRowsOnly=False, dayfirst=True) def createCSVFile(self, contents): with tempfile.NamedTemporaryFile(delete=False) as tmpFile: tmpFile.write(contents) return tmpFile.name def testTwoTasksWithSubject(self): filename = self.createCSVFile('Subject 1\nSubject 2\n') self.reader.read(filename=filename, mappings={0: 'Subject'}, **self.defaultReaderKwArgs) self.assertEqual(set(['Subject 1', 'Subject 2']), set([t.subject() for t in self.taskList])) def testTwoTasksWithSubjectAndDescription(self): filename = self.createCSVFile('Subject 1,Description 1\nSubject 2,Description 2\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Description'}, **self.defaultReaderKwArgs) self.assertEqual(set([('Subject 1', 'Description 1\n'), ('Subject 2', 'Description 2\n')]), set([(t.subject(), t.description()) for t in self.taskList])) def testTaskWithPlannedStartDate(self): filename = self.createCSVFile('Subject,2011-6-30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Planned start date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 0, 0, 0), list(self.taskList)[0].plannedStartDateTime()) def testTaskWithPlannedStartDateTime(self): filename = self.createCSVFile('Subject,2011-6-30 12:00\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Planned start date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 12, 0, 0), list(self.taskList)[0].plannedStartDateTime()) def testTaskWithEmptyPlannedStartDate(self): filename = self.createCSVFile('Subject,\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Planned start date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(), list(self.taskList)[0].plannedStartDateTime()) def testTaskWithActualStartDate(self): filename = self.createCSVFile('Subject,2011-6-30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Actual start date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 0, 0, 0), list(self.taskList)[0].actualStartDateTime()) def testTaskWithActualStartDateTime(self): filename = self.createCSVFile('Subject,2011-6-30 12:00\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Actual start date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 12, 0, 0), list(self.taskList)[0].actualStartDateTime()) def testTaskWithEmptyActualStartDate(self): filename = self.createCSVFile('Subject,\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Actual start date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(), list(self.taskList)[0].actualStartDateTime()) def testTaskWithDueDate(self): filename = self.createCSVFile('Subject,2011-6-30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Due date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 23, 59, 59), list(self.taskList)[0].dueDateTime()) def testTaskWithDueDateTime(self): filename = self.createCSVFile('Subject,2011-6-30 1:34:01 pm\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Due date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 13, 34, 1), list(self.taskList)[0].dueDateTime()) def testTaskWithCompletionDate(self): filename = self.createCSVFile('Subject,2011-6-30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Completion date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 12, 0, 0), list(self.taskList)[0].completionDateTime()) def testTaskWithCompletionDateTime(self): filename = self.createCSVFile('Subject,1:33 am 2011-6-30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Completion date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2011, 6, 30, 1, 33, 0), list(self.taskList)[0].completionDateTime()) def testTaskWithReminderDate(self): filename = self.createCSVFile('Subject,2012-6-30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Reminder date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2012, 6, 30, 0, 0, 0), list(self.taskList)[0].reminder()) def testTaskWithReminderDateTime(self): filename = self.createCSVFile('Subject,12:31 2012-6-30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Reminder date'}, **self.defaultReaderKwArgs) self.assertEqual(date.DateTime(2012, 6, 30, 12, 31, 0), list(self.taskList)[0].reminder()) def testTaskWithHourMinuteBudget(self): filename = self.createCSVFile('Subject,60:30\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Budget'}, **self.defaultReaderKwArgs) self.assertEqual(date.TimeDelta(hours=60, minutes=30, seconds=0), list(self.taskList)[0].budget()) def testTaskWithHourMinuteSecondBudget(self): filename = self.createCSVFile('Subject,60:30:15\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Budget'}, **self.defaultReaderKwArgs) self.assertEqual(date.TimeDelta(hours=60, minutes=30, seconds=15), list(self.taskList)[0].budget()) def testTaskWithFloatBudget(self): filename = self.createCSVFile('Subject,1.5\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Budget'}, **self.defaultReaderKwArgs) self.assertEqual(date.TimeDelta(hours=1, minutes=30, seconds=0), list(self.taskList)[0].budget()) def testTaskWithFixedFee(self): filename = self.createCSVFile('Subject,1600\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Fixed fee'}, **self.defaultReaderKwArgs) self.assertEqual(1600, list(self.taskList)[0].fixedFee()) def testTaskWithHourlyFee(self): filename = self.createCSVFile('Subject,160\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Hourly fee'}, **self.defaultReaderKwArgs) self.assertEqual(160, list(self.taskList)[0].hourlyFee()) def testTaskWith50PercentComplete(self): filename = self.createCSVFile('Subject,50\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Percent complete'}, **self.defaultReaderKwArgs) self.assertEqual(50, list(self.taskList)[0].percentageComplete()) def testTaskWith100PercentComplete(self): filename = self.createCSVFile('Subject,100\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Percent complete'}, **self.defaultReaderKwArgs) newTask = list(self.taskList)[0] self.assertEqual(100, newTask.percentageComplete()) self.failUnless(newTask.completed()) def testTwoTasksWithPriority(self): filename = self.createCSVFile('Subject 1,123\nSubject 2,-3') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Priority'}, **self.defaultReaderKwArgs) self.assertEqual(set([('Subject 1', 123), ('Subject 2', -3)]), set([(t.subject(), t.priority()) for t in self.taskList])) def testTwoTasksWithTheSameCategory(self): filename = self.createCSVFile('Subject 1,Category\nSubject 2,Category\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Category'}, **self.defaultReaderKwArgs) self.assertEqual(1, len(self.categoryList)) newCategory = list(self.categoryList)[0] self.assertEqual([set([newCategory]), set([newCategory])], [t.categories() for t in self.taskList]) def testTwoTasksWithCategoryAndSubcategory(self): filename = self.createCSVFile('Subject 1,Category -> Subcategory\nSubject 2,Category\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Category'}, **self.defaultReaderKwArgs) self.assertEqual(2, len(self.categoryList)) parentCategory = [c for c in self.categoryList if not c.parent()][0] childCategory = parentCategory.children()[0] self.assertEqual('Subject 1', list(childCategory.categorizables())[0].subject()) self.assertEqual('Subject 2', list(parentCategory.categorizables())[0].subject()) def testHierarchy(self): filename = self.createCSVFile('Subject 1,1\nSubject 1.1,1.1\nSubject 1.2,1.2\n') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'ID'}, **self.defaultReaderKwArgs) parent = [t for t in self.taskList if not t.parent()][0] self.assertEqual(2, len(parent.children())) def testDayFirstDates(self): filename = self.createCSVFile('T1,30-6-2011\nT2,1-1-2011\nT3,4-4-2011') self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Due date'}, **self.defaultReaderKwArgs) self.assertEqual(set([1,4,6]), set(t.dueDateTime().month for t in self.taskList)) def testMonthFirstDates(self): filename = self.createCSVFile('T1,3-6-2011\nT2,1-1-2011\nT3,4-20-2011') self.defaultReaderKwArgs['dayfirst'] = False self.reader.read(filename=filename, mappings={0: 'Subject', 1: 'Due date'}, **self.defaultReaderKwArgs) self.assertEqual(set([1,3,4]), set(t.dueDateTime().month for t in self.taskList)) taskcoach-1.4.3/tests/unittests/persistenceTests/CSVWriterTest.py000066400000000000000000000402341265347643000253110ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import StringIO import test from taskcoachlib import persistence, gui, config, render from taskcoachlib.domain import task, effort, date class CSVWriterTestCase(test.wxTestCase): treeMode = 'Subclass responsibility' def setUp(self): super(CSVWriterTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.fd = StringIO.StringIO() self.writer = persistence.CSVWriter(self.fd) self.taskFile = persistence.TaskFile() self.task = task.Task('Task subject') self.taskFile.tasks().append(self.task) self.createViewer() def tearDown(self): super(CSVWriterTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() def createViewer(self): self.settings.set('taskviewer', 'treemode', self.treeMode) # pylint: disable=W0201 self.viewer = gui.viewer.TaskViewer(self.frame, self.taskFile, self.settings) def __writeAndRead(self, selectionOnly, separateDateAndTimeColumns, columns): self.writer.write(self.viewer, self.settings, selectionOnly, separateDateAndTimeColumns=separateDateAndTimeColumns, columns=columns) return self.fd.getvalue() def expectInCSV(self, csvFragment, selectionOnly=False, separateDateAndTimeColumns=False, columns=None): csv = self.__writeAndRead(selectionOnly, separateDateAndTimeColumns, columns) self.failUnless(csvFragment in csv, '%s not in %s' % (csvFragment, csv)) def expectNotInCSV(self, csvFragment, selectionOnly=False, separateDateAndTimeColumns=False, columns=None): csv = self.__writeAndRead(selectionOnly, separateDateAndTimeColumns, columns) self.failIf(csvFragment in csv, '%s in %s' % (csvFragment, csv)) def selectItem(self, items): self.viewer.select(items) class TaskTestsMixin(object): def testTaskSubject(self): self.expectInCSV('Task subject,') def testWriteSelectionOnly(self): self.expectNotInCSV('Task subject', selectionOnly=True) def testWriteSelectionOnly_SelectedChild(self): child = task.Task('Child', parent=self.task) self.taskFile.tasks().append(child) self.viewer.expandAll() self.selectItem([child]) self.expectInCSV('Child,', selectionOnly=True) def testWriteSelectionOnly_SelectedParent(self): child = task.Task('Child', parent=self.task) self.taskFile.tasks().append(child) self.selectItem([self.task]) self.expectNotInCSV('Child', selectionOnly=True) def testWriteSeparateDateAndTimeColumns(self): plannedStartDateTime = date.Now() self.task.setPlannedStartDateTime(plannedStartDateTime) self.expectInCSV(','.join((render.date(plannedStartDateTime), render.time(plannedStartDateTime))), separateDateAndTimeColumns=True) def testWriteSeparateDateAndTimeColumnsWithDateBefore1900(self): plannedStartDateTime = date.DateTime(1600, 1, 1, 12, 30, 0) self.task.setPlannedStartDateTime(plannedStartDateTime) self.expectInCSV(','.join((render.date(plannedStartDateTime), render.time(plannedStartDateTime))), separateDateAndTimeColumns=True) def testDontWriteSeparateDateAndTimeColumns(self): plannedStartDateTime = date.Now() self.task.setPlannedStartDateTime(plannedStartDateTime) self.expectInCSV(' '.join((render.date(plannedStartDateTime), render.time(plannedStartDateTime))), separateDateAndTimeColumns=False) def testDontWriteDefaultDateTimes(self): defaultDateTime = date.DateTime() self.expectNotInCSV(' '.join([render.date(defaultDateTime), render.time(defaultDateTime)]), separateDateAndTimeColumns=False) def testDontWriteDefaultDateTimesWithSeparatedDateAndTimeColumns(self): defaultDateTime = date.DateTime() self.expectNotInCSV(','.join([render.date(defaultDateTime), render.time(defaultDateTime)]), separateDateAndTimeColumns=True) def testSpecifyColumns(self): self.task.setPriority(999) self.expectInCSV('999', columns=self.viewer.columns()) def testPlannedStartDateTimeToday(self): today = date.Now() self.viewer.showColumnByName('plannedStartDateTime') self.task.setPlannedStartDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testPlannedStartDateTimeYesterday(self): yesterday = date.Yesterday() self.viewer.showColumnByName('plannedStartDateTime') self.task.setPlannedStartDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testPlannedStartDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.viewer.showColumnByName('plannedStartDateTime') self.task.setPlannedStartDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testPlannedStartDateToday(self): today = date.Now().startOfDay() self.viewer.showColumnByName('plannedStartDateTime') self.task.setPlannedStartDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testPlannedStartDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.viewer.showColumnByName('plannedStartDateTime') self.task.setPlannedStartDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testPlannedStartDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.viewer.showColumnByName('plannedStartDateTime') self.task.setPlannedStartDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testDueDateTimeToday(self): today = date.Now() self.viewer.showColumnByName('dueDateTime') self.task.setDueDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testDueDateTimeYesterday(self): yesterday = date.Yesterday() self.viewer.showColumnByName('dueDateTime') self.task.setDueDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testDueDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.viewer.showColumnByName('dueDateTime') self.task.setDueDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testDueDateToday(self): today = date.Now().startOfDay() self.viewer.showColumnByName('dueDateTime') self.task.setDueDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testDueDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.viewer.showColumnByName('dueDateTime') self.task.setDueDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testDueDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.viewer.showColumnByName('dueDateTime') self.task.setDueDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testActualStartDateTimeToday(self): today = date.Now() self.viewer.showColumnByName('actualStartDateTime') self.task.setActualStartDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testActualStartDateTimeYesterday(self): yesterday = date.Yesterday() self.viewer.showColumnByName('actualStartDateTime') self.task.setActualStartDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testActualStartDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.viewer.showColumnByName('actualStartDateTime') self.task.setActualStartDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testActualStartDateToday(self): today = date.Now().startOfDay() self.viewer.showColumnByName('actualStartDateTime') self.task.setActualStartDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testActualStartDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.viewer.showColumnByName('actualStartDateTime') self.task.setActualStartDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testActualStartDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.viewer.showColumnByName('actualStartDateTime') self.task.setActualStartDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testCompletionDateTimeToday(self): today = date.Now() self.viewer.showColumnByName('completionDateTime') self.task.setCompletionDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testCompletionDateTimeYesterday(self): yesterday = date.Yesterday() self.viewer.showColumnByName('completionDateTime') self.task.setCompletionDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testCompletionDateTimeTomorrow(self): tomorrow = date.Tomorrow() self.viewer.showColumnByName('completionDateTime') self.task.setCompletionDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testCompletionDateToday(self): today = date.Now().startOfDay() self.viewer.showColumnByName('completionDateTime') self.task.setCompletionDateTime(today) self.expectInCSV(render.dateTime(today, humanReadable=False)) def testCompletionDateYesterday(self): yesterday = date.Yesterday().startOfDay() self.viewer.showColumnByName('completionDateTime') self.task.setCompletionDateTime(yesterday) self.expectInCSV(render.dateTime(yesterday, humanReadable=False)) def testCompletionDateTomorrow(self): tomorrow = date.Tomorrow().startOfDay() self.viewer.showColumnByName('completionDateTime') self.task.setCompletionDateTime(tomorrow) self.expectInCSV(render.dateTime(tomorrow, humanReadable=False)) def testCreationDateTime(self): self.viewer.showColumnByName('creationDateTime') self.expectInCSV(render.dateTime(self.task.creationDateTime(), humanReadable=False)) def testMissingCreationDateTime(self): self.viewer.showColumnByName('creationDateTime') self.taskFile.tasks().append(task.Task(creationDateTime=date.DateTime.min)) self.taskFile.tasks().remove(self.task) self.expectInCSV(',,,') # No 1/1/1 for the missing creation date def testModificationDateTime(self): self.viewer.showColumnByName('modificationDateTime') self.task.setModificationDateTime(date.DateTime(2013, 1, 1, 12, 0, 0)) self.expectInCSV(render.dateTime(self.task.modificationDateTime(), humanReadable=False)) def testMissingModificationDateTime(self): self.viewer.showColumnByName('modificationDateTime') self.task.setModificationDateTime(date.DateTime.min) self.expectInCSV(',,,') # No 1/1/1 for the missing creation date class CSVListWriterTest(TaskTestsMixin, CSVWriterTestCase): treeMode = 'False' def testTaskDescription(self): self.task.setDescription('Task description') self.viewer.showColumnByName('description') self.expectInCSV(',Task description,') def testTaskDescriptionWithNewLine(self): self.task.setDescription('Line1\nLine2') self.viewer.showColumnByName('description') self.expectInCSV('"Line1\nLine2"') class CSVTreeWriterTest(TaskTestsMixin, CSVWriterTestCase): treeMode = 'True' class EffortWriterTest(CSVWriterTestCase): def setUp(self): super(EffortWriterTest, self).setUp() now = date.DateTime.now() self.effort = effort.Effort(self.task, start=now, stop=now + date.ONE_SECOND) self.task.addEffort(self.effort) def createViewer(self): # pylint: disable=W0201 self.viewer = gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) def testTaskSubject(self): self.expectInCSV('Task subject,') def testEffortDuration(self): self.expectInCSV(',0:00:01') def testEffortPerDay(self): self.settings.settext(self.viewer.settingsSection(), 'aggregation', 'day') self.expectInCSV('Total') def testEffortPerDay_SelectionOnly_EmptySelection(self): self.settings.settext(self.viewer.settingsSection(), 'aggregation', 'day') self.expectNotInCSV('Total', selectionOnly=True) def testEffortPerDay_SelectionOnly_SelectAll(self): self.settings.settext(self.viewer.settingsSection(), 'aggregation', 'day') self.viewer.widget.select_all() self.viewer.updateSelection() self.expectInCSV('Total', selectionOnly=True) def testExportAllColumns_NoSplit(self): self.expectInCSV(render.dateTimePeriod(self.effort.getStart(), self.effort.getStop()), columns=self.viewer.selectableColumns()) def testExportAllColumns_Split(self): self.expectInCSV('%s,%s,%s,%s' % (render.date(self.effort.getStart().date()), render.time(self.effort.getStart().time()), render.date(self.effort.getStop().date()), render.time(self.effort.getStop().time())), separateDateAndTimeColumns=True, columns=self.viewer.selectableColumns()) class EffortWriterRenderTest(CSVWriterTestCase): def createViewer(self): # pylint: disable=W0201 self.viewer = gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) def testToday(self): midnight = date.Now().startOfDay() self.task.addEffort(effort.Effort(self.task, start=midnight, stop=midnight + date.TWO_HOURS)) self.expectNotInCSV('Today') def testTomorrow(self): midnight = date.Tomorrow().startOfDay() self.task.addEffort(effort.Effort(self.task, start=midnight, stop=midnight + date.TWO_HOURS)) self.expectNotInCSV('Tomorrow') def testYesterday(self): midnight = date.Yesterday().startOfDay() self.task.addEffort(effort.Effort(self.task, start=midnight, stop=midnight + date.TWO_HOURS)) self.expectNotInCSV('Today') taskcoach-1.4.3/tests/unittests/persistenceTests/HTMLWriterTest.py000077500000000000000000000250751265347643000254330ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, StringIO, os import test from taskcoachlib import persistence, gui, config, render from taskcoachlib.domain import task, category, effort, date class HTMLWriterTestCase(test.wxTestCase): treeMode = 'Subclass responsibility' filename = 'Subclass responsibility' def setUp(self): super(HTMLWriterTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.fd = StringIO.StringIO() self.writer = persistence.HTMLWriter(self.fd, self.filename) self.taskFile = persistence.TaskFile() self.task = task.Task('Task subject') self.taskFile.tasks().append(self.task) self.viewer = self.createViewer() def tearDown(self): super(HTMLWriterTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() cssFilename = self.filename + '.css' if os.path.exists(cssFilename): os.remove(cssFilename) def createViewer(self): raise NotImplementedError # pragma: no cover def __writeAndRead(self, selectionOnly): self.writer.write(self.viewer, self.settings, selectionOnly, True) return self.fd.getvalue() def expectInHTML(self, *htmlFragments, **kwargs): selectionOnly = kwargs.pop('selectionOnly', False) html = self.__writeAndRead(selectionOnly) for htmlFragment in htmlFragments: self.failUnless(htmlFragment in html, '%s not in %s'%(htmlFragment, html)) def expectNotInHTML(self, *htmlFragments, **kwargs): selectionOnly = kwargs.pop('selectionOnly', False) html = self.__writeAndRead(selectionOnly) for htmlFragment in htmlFragments: self.failIf(htmlFragment in html, '%s in %s'%(htmlFragment, html)) def selectItem(self, items): self.viewer.widget.select(items) class CommonTestsMixin(object): def testHTML(self): self.expectInHTML('\n', '\n') def testHeader(self): self.expectInHTML(' \n', ' \n') def testStyle(self): self.expectInHTML(' \n') def testBody(self): self.expectInHTML(' \n', ' \n') class TaskWriterTestCase(HTMLWriterTestCase): def createViewer(self): self.settings.set('taskviewer', 'treemode', self.treeMode) return gui.viewer.TaskViewer(self.frame, self.taskFile, self.settings) class TaskTestsMixin(CommonTestsMixin): def testTaskSubject(self): self.expectInHTML('>Task subject<') def testWriteSelectionOnly(self): self.expectNotInHTML('>Task subject<', selectionOnly=True) def testWriteSelectionOnly_SelectedChild(self): child = task.Task('Child') self.task.addChild(child) self.taskFile.tasks().append(child) self.selectItem([child]) self.expectInHTML('>Task subject<') def testColumnStyle(self): self.expectInHTML(' .subject {text-align: left}\n') def testSortIndicator(self): self.expectInHTML('id="sorted"') if not self.filename: self.expectInHTML('') def testTaskStatusStyle(self): self.expectInHTML(' .completed {color: #00FF00}\n') def testTaskStatusStyleWhenForegroundColorChangedInSettings(self): self.settings.set('fgcolor', 'completedtasks', str(wx.RED)) self.expectInHTML(' .completed {color: #FF0000}\n') def testOverdueTask(self): self.task.setDueDateTime(date.Yesterday()) fragment = '' if self.filename else 'Task subject' self.expectInHTML(fragment) def testCompletedTask(self): self.task.setCompletionDateTime() if self.filename: self.expectInHTML('') else: self.expectInHTML('Task subject') def testTaskDueSoon(self): self.task.setDueDateTime(date.Now() + date.ONE_HOUR) fragment = '' if self.filename else 'Task subject' self.expectInHTML(fragment) def testInactiveTask(self): self.task.setPlannedStartDateTime(date.Tomorrow()) fragment = '' if self.filename else 'Task subject' self.expectInHTML(fragment) def testLateTask(self): self.task.setPlannedStartDateTime(date.Yesterday()) fragment = '' if self.filename else 'Task subject' self.expectInHTML(fragment) def testTaskBackgroundColor(self): self.task.setActualStartDateTime(date.Now()) self.task.setBackgroundColor(wx.RED) fragment = '' if self.filename else '' self.expectInHTML(fragment) def testTaskHasCategoryBackgroundColor(self): self.task.setActualStartDateTime(date.Now()) cat = category.Category('cat', bgColor=wx.RED) self.task.addCategory(cat) fragment = '' if self.filename else '' self.expectInHTML(fragment) def testCategoryBackgroundColorAsTuple(self): self.task.setActualStartDateTime(date.Now()) cat = category.Category('cat', bgColor=(255, 0, 0, 0)) self.task.addCategory(cat) if self.filename: self.expectInHTML('') else: self.expectInHTML('') def testCSSLink(self): if self.filename: self.expectInHTML('') else: self.expectNotInHTML('stylesheet') def testOSErrorWhileWritingCSS(self): def open(*args): # pylint: disable=W0613,W0622 raise IOError self.writer._writeCSS(open=open) # pylint: disable=W0212 class TaskListTestsMixin(object): def testTaskDescription(self): self.task.setDescription('Task description') self.viewer.showColumnByName('description') self.expectInHTML('>Task description<') def testTaskDescriptionWithNewLine(self): self.task.setDescription('Line1\nLine2') self.viewer.showColumnByName('description') self.expectInHTML('>Line1
        Line2<') def testCreationDateTime(self): self.viewer.showColumnByName('creationDateTime') self.expectInHTML(render.dateTime(self.task.creationDateTime(), humanReadable=False)) def testMissingCreationDateTime(self): self.viewer.showColumnByName('creationDateTime') self.taskFile.tasks().append(task.Task(creationDateTime=date.DateTime.min)) self.taskFile.tasks().remove(self.task) self.expectNotInHTML('1/1/1') def testModificationDateTime(self): self.task.setModificationDateTime(date.DateTime(2012, 1, 1, 10, 0, 0)) self.viewer.showColumnByName('modificationDateTime') self.expectInHTML(render.dateTime(self.task.modificationDateTime(), humanReadable=False)) def testMissingModificationDateTime(self): self.viewer.showColumnByName('modificationDateTime') self.expectInHTML(render.dateTime(self.task.modificationDateTime(), humanReadable=False)) self.expectNotInHTML('1/1/1') class TaskListExportTest(TaskTestsMixin, TaskListTestsMixin, TaskWriterTestCase): treeMode = 'False' filename = 'filename' class TaskListPrintTest(TaskTestsMixin, TaskListTestsMixin, TaskWriterTestCase): treeMode = 'False' filename = '' class TaskTreeExportTest(TaskTestsMixin, TaskWriterTestCase): treeMode = 'True' filename = 'filename' class TaskTreePrintTest(TaskTestsMixin, TaskWriterTestCase): treeMode = 'True' filename = '' class EffortWriterTestCase(CommonTestsMixin, HTMLWriterTestCase): filename = 'filename' def setUp(self): super(EffortWriterTestCase, self).setUp() now = date.DateTime.now() self.task.addEffort(effort.Effort(self.task, start=now, stop=now + date.ONE_SECOND)) def createViewer(self): return gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) def testTaskSubject(self): self.expectInHTML('>Task subject<') def testEffortDuration(self): self.expectInHTML('>0:00:01<') def testColumnStyle(self): self.expectInHTML(' .task {text-align: left}\n') class CategoryWriterTestsMixin(CommonTestsMixin): def testCategorySubject(self): self.expectInHTML('>Category<') def testCategoryBackgroundColor(self): self.category.setBackgroundColor(wx.RED) if self.filename: self.expectInHTML('') else: self.expectInHTML('') class CategoryWriterTestCase(HTMLWriterTestCase): def setUp(self): super(CategoryWriterTestCase, self).setUp() self.category = category.Category('Category') self.taskFile.categories().append(self.category) def createViewer(self): return gui.viewer.CategoryViewer(self.frame, self.taskFile, self.settings) class CategoryWriterExportTest(CategoryWriterTestsMixin, CategoryWriterTestCase): filename = 'filename' class CategoryWriterPrintTest(CategoryWriterTestsMixin, CategoryWriterTestCase): filename = '' taskcoach-1.4.3/tests/unittests/persistenceTests/SyncMLTest.py000066400000000000000000000047671265347643000246410ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import persistence from taskcoachlib.domain import task, note, category, effort, date class TaskFileTestCase(test.TestCase): def setUp(self): self.taskFile = persistence.TaskFile() self.task = task.Task(subject='Subject') def tearDown(self): super(TaskFileTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() def testTaskIsDirtyAfterEditingSubject(self): self.taskFile.tasks().append(self.task) self.failUnless(task.Task.STATUS_NEW, self.task.getStatus()) self.task.setSubject('New subject') self.failUnless(task.Task.STATUS_CHANGED, self.task.getStatus()) def testNoteIsDirtyAfterEditingSubject(self): aNote = note.Note(subject='Subject') self.taskFile.notes().append(aNote) self.failUnless(note.Note.STATUS_NEW, aNote.getStatus()) aNote.setSubject('New subject') self.failUnless(note.Note.STATUS_CHANGED, aNote.getStatus()) def testCategoryIsDirtyAfterEditingSubject(self): aCategory = category.Category(subject='Subject') self.taskFile.categories().append(aCategory) self.failUnless(category.Category.STATUS_NEW, aCategory.getStatus()) aCategory.setSubject('New subject') self.failUnless(category.Category.STATUS_CHANGED, aCategory.getStatus()) def testEffortIsDirtyAfterEditingStart(self): self.taskFile.tasks().append(self.task) anEffort = effort.Effort(self.task) self.task.addEffort(anEffort) self.failUnless(effort.Effort.STATUS_NEW, anEffort.getStatus()) anEffort.setStart(date.DateTime(2000,1,1,10,0,0)) self.failUnless(effort.Effort.STATUS_CHANGED, anEffort.getStatus()) taskcoach-1.4.3/tests/unittests/persistenceTests/TaskFileTest.py000066400000000000000000002023351265347643000251650ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, wx import test from taskcoachlib import persistence, config from taskcoachlib.domain import base, task, effort, date, category, note, attachment class FakeAttachment(base.Object): def __init__(self, type_, location, notes=None, data=None): super(FakeAttachment, self).__init__() self.type_ = type_ self.__location = location self.__data = data self.__notes = notes or [] def data(self): return self.__data def location(self): return self.__location def notes(self): return self.__notes class TaskFileTestCase(test.TestCase): def setUp(self): self.settings = task.Task.settings = config.Settings(load=False) self.createTaskFiles() self.task = task.Task(subject='task') self.taskFile.tasks().append(self.task) self.category = category.Category('category') self.taskFile.categories().append(self.category) self.note = note.Note(subject='note') self.taskFile.notes().append(self.note) self.effort = effort.Effort(self.task, date.DateTime(2004, 1, 1), date.DateTime(2004, 1, 2)) self.task.addEffort(self.effort) self.filename = 'test.tsk' self.filename2 = 'test2.tsk' super(TaskFileTestCase, self).setUp() def createTaskFiles(self): # pylint: disable=W0201 self.taskFile = persistence.TaskFile() self.emptyTaskFile = persistence.TaskFile() def tearDown(self): super(TaskFileTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() self.emptyTaskFile.close() self.emptyTaskFile.stop() self.remove(self.filename, self.filename2, self.filename + '.delta', self.filename2 + '.delta') def remove(self, *filenames): for filename in filenames: tries = 0 while os.path.exists(filename) and tries < 3: try: # Don't fail on random 'Access denied' errors. os.remove(filename) break except WindowsError: # pragma: no cover pylint: disable=E0602 tries += 1 class TaskFileTest(TaskFileTestCase): def testIsEmptyInitially(self): self.failUnless(self.emptyTaskFile.isEmpty()) def testHasNoTasksInitially(self): self.failIf(self.emptyTaskFile.tasks()) def testHasNoCategoriesInitially(self): self.failIf(self.emptyTaskFile.categories()) def testHasNoNotesInitially(self): self.failIf(self.emptyTaskFile.notes()) def testHasNoEffortsInitially(self): self.failIf(self.emptyTaskFile.efforts()) def testFileNameAfterCreate(self): self.assertEqual('', self.taskFile.filename()) def testFileName(self): self.taskFile.setFilename(self.filename) self.assertEqual(self.filename, self.taskFile.filename()) def testLoadWithoutFilename(self): self.taskFile.load() self.failUnless(self.taskFile.isEmpty()) def testLoadFromNotExistingFile(self): self.taskFile.setFilename(self.filename) self.failIf(os.path.isfile(self.taskFile.filename())) self.taskFile.load() self.failUnless(self.taskFile.isEmpty()) def testClose_EmptyTaskFileWithoutFilename(self): self.taskFile.close() self.assertEqual('', self.taskFile.filename()) self.failUnless(self.taskFile.isEmpty()) def testClose_EmptyTaskFileWithFilename(self): self.taskFile.setFilename(self.filename) self.taskFile.close() self.assertEqual('', self.taskFile.filename()) self.failUnless(self.taskFile.isEmpty()) def testClose_TaskFileWithTasksDeletesTasks(self): self.taskFile.close() self.failUnless(self.taskFile.isEmpty()) def testClose_TaskFileWithCategoriesDeletesCategories(self): self.taskFile.categories().append(self.category) self.taskFile.close() self.failUnless(self.taskFile.isEmpty()) def testClose_TaskFileWithNotesDeletesNotes(self): self.taskFile.notes().append(note.Note()) self.taskFile.close() self.failUnless(self.taskFile.isEmpty()) def testDoesNotNeedSave_Initial(self): self.failIf(self.emptyTaskFile.needSave()) def testDoesNotNeedSave_AfterSetFileName(self): self.emptyTaskFile.setFilename(self.filename) self.failIf(self.emptyTaskFile.needSave()) def testLastFilename_IsEmptyInitially(self): self.assertEqual('', self.taskFile.lastFilename()) def testLastFilename_EqualsCurrentFilenameAfterSetFilename(self): self.taskFile.setFilename(self.filename) self.assertEqual(self.filename, self.taskFile.lastFilename()) def testLastFilename_EqualsPreviousFilenameAfterClose(self): self.taskFile.setFilename(self.filename) self.taskFile.close() self.assertEqual(self.filename, self.taskFile.lastFilename()) def testLastFilename_IsEmptyAfterClosingTwice(self): self.taskFile.setFilename(self.filename) self.taskFile.close() self.taskFile.close() self.assertEqual(self.filename, self.taskFile.lastFilename()) def testLastFilename_EqualsCurrentFilenameAfterSaveAs(self): self.taskFile.setFilename(self.filename) self.taskFile.saveas(self.filename2) self.assertEqual(self.filename2, self.taskFile.lastFilename()) def testTaskFileContainsTask(self): self.failUnless(self.task in self.taskFile) def testTaskFileDoesNotContainTask(self): self.failIf(task.Task() in self.taskFile) def testTaskFileContainsNote(self): newNote = note.Note() self.taskFile.notes().append(newNote) self.failUnless(newNote in self.taskFile) def testTaskFileDoesNotContainNote(self): self.failIf(note.Note() in self.taskFile) def testTaskFileContainsCategory(self): newCategory = category.Category('Category') self.taskFile.categories().append(newCategory) self.failUnless(newCategory in self.taskFile) def testTaskFileDoesNotContainCategory(self): self.failIf(category.Category('Category') in self.taskFile) def testTaskFileContainsEffort(self): newEffort = effort.Effort(self.task) self.task.addEffort(newEffort) self.failUnless(newEffort in self.taskFile) def testTaskFileDoesNotContainEffort(self): self.failIf(effort.Effort(self.task) in self.taskFile) class DirtyTaskFileTest(TaskFileTestCase): def setUp(self): super(DirtyTaskFileTest, self).setUp() self.taskFile.setFilename(self.filename) self.taskFile.save() def testSetupFileDoesNotNeedSave(self): self.failIf(self.taskFile.needSave()) def testNeedSave_AfterNewTaskAdded(self): newTask = task.Task(subject='Task') self.emptyTaskFile.tasks().append(newTask) self.failUnless(self.emptyTaskFile.needSave()) def testNeedSave_AfterTaskMarkedDeleted(self): self.task.markDeleted() self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterNewNoteAdded(self): newNote = note.Note(subject='Note') self.emptyTaskFile.notes().append(newNote) self.failUnless(self.emptyTaskFile.needSave()) def testNeedSave_AfterNoteRemoved(self): self.taskFile.notes().remove(self.note) self.failUnless(self.taskFile.needSave()) def testDoesNotNeedSave_AfterSave(self): self.emptyTaskFile.tasks().append(task.Task()) self.emptyTaskFile.setFilename(self.filename) self.emptyTaskFile.save() self.failIf(self.emptyTaskFile.needSave()) def testDoesNotNeedSave_AfterClose(self): self.taskFile.close() self.failIf(self.taskFile.needSave()) def testNeedSave_AfterMerge(self): self.emptyTaskFile.merge(self.filename) self.failUnless(self.emptyTaskFile.needSave()) def testDoesNotNeedSave_AfterLoad(self): self.taskFile.tasks().append(task.Task()) self.taskFile.setFilename(self.filename) self.taskFile.save() self.taskFile.close() self.taskFile.load() self.failIf(self.taskFile.needSave()) def testNeedSave_AfterEffortAdded(self): self.task.addEffort(effort.Effort(self.task, None, None)) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEffortRemoved(self): newEffort = effort.Effort(self.task, None, None) self.task.addEffort(newEffort) self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.task.removeEffort(newEffort) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditTaskSubject(self): self.task.setSubject('new subject') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditTaskDescription(self): self.task.setDescription('new description') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditTaskForegroundColor(self): self.task.setForegroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditTaskBackgroundColor(self): self.task.setBackgroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditTaskPlannedStartDateTime(self): self.task.setPlannedStartDateTime(date.Now() + date.ONE_HOUR) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditTaskDueDate(self): self.task.setDueDateTime(date.Tomorrow()) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditTaskCompletionDate(self): self.task.setCompletionDateTime(date.Now()) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditPercentageComplete(self): self.task.setPercentageComplete(50) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditEffortDescription(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.effort.setDescription('new description') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditEffortStart(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.effort.setStart(date.DateTime(2005,1,1,10,0,0)) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditEffortStop(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.effort.setStop(date.DateTime(2005,1,1,10,0,0)) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditEffortTask(self): task2 = task.Task() self.taskFile.tasks().append(task2) self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.effort.setTask(task2) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditEffortForegroundColor(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.effort.setForegroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterEditEffortBackgroundColor(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.effort.setBackgroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterTaskAddedToCategory(self): self.task.addCategory(self.category) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterTaskRemovedFromCategory(self): self.task.addCategory(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.task.removeCategory(self.category) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterNoteAddedToCategory(self): self.note.addCategory(self.category) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterNoteRemovedFromCategory(self): self.note.addCategory(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.needSave()) self.note.removeCategory(self.category) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterAddingNoteToTask(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.task.addNote(note.Note(subject='Note')) # pylint: disable=E1101 self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterTaskNoteChanged(self): self.taskFile.setFilename(self.filename) newNote = note.Note(subject='Note') self.task.addNote(newNote) # pylint: disable=E1101 self.taskFile.save() newNote.setSubject('New subject') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangePriority(self): self.task.setPriority(10) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangeBudget(self): self.task.setBudget(date.TimeDelta(10)) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangeHourlyFee(self): self.task.setHourlyFee(100) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangeFixedFee(self): self.task.setFixedFee(500) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterAddChild(self): self.taskFile.setFilename(self.filename) child = task.Task() self.taskFile.tasks().append(child) self.taskFile.save() self.task.addChild(child) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterRemoveChild(self): self.taskFile.setFilename(self.filename) child = task.Task() self.taskFile.tasks().append(child) self.task.addChild(child) self.taskFile.save() self.task.removeChild(child) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterSetReminder(self): self.task.setReminder(date.DateTime(2005,1,1,10,0,0)) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangeRecurrence(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.task.setRecurrence(date.Recurrence('daily')) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangeSetting(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(True) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterAddingCategory(self): self.taskFile.categories().append(self.category) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterRemovingCategory(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.taskFile.categories().remove(self.category) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterFilteringCategory(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.category.setFiltered() self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterCategorySubjectChanged(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.category.setSubject('new subject') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterCategoryDescriptionChanged(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.category.setDescription('new description') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangingCategoryForegroundColor(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.category.setForegroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangingCategoryBackgroundColor(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.category.setBackgroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMakingSubclassesExclusive(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.category.makeSubcategoriesExclusive() self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterNoteSubjectChanged(self): list(self.taskFile.notes())[0].setSubject('new subject') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterNoteDescriptionChanged(self): list(self.taskFile.notes())[0].setDescription('new description') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterNoteForegroundColorChanged(self): list(self.taskFile.notes())[0].setForegroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterNoteBackgroundColorChanged(self): list(self.taskFile.notes())[0].setBackgroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterAddNoteChild(self): list(self.taskFile.notes())[0].addChild(note.Note()) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterRemoveNoteChild(self): child = note.Note() list(self.taskFile.notes())[0].addChild(child) self.taskFile.setFilename(self.filename) self.taskFile.save() list(self.taskFile.notes())[0].removeChild(child) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangingTaskExpansionState(self): self.task.expand() self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangingCategoryExpansionState(self): self.taskFile.categories().append(self.category) self.taskFile.setFilename(self.filename) self.taskFile.save() self.category.expand() self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterChangingNoteExpansionState(self): self.taskFile.notes().append(self.note) self.taskFile.setFilename(self.filename) self.taskFile.save() self.note.expand() self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMarkDeleted(self): self.taskFile.notes().append(self.note) self.taskFile.setFilename(self.filename) self.taskFile.save() self.note.markDeleted() self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMarkNotDeleted(self): self.taskFile.notes().append(self.note) self.note.markDeleted() self.taskFile.setFilename(self.filename) self.taskFile.save() self.note.cleanDirty() self.failUnless(self.taskFile.needSave()) def testLastFilename_EqualsCurrentFilenameAfterSetFilename(self): self.taskFile.setFilename(self.filename) self.assertEqual(self.filename, self.taskFile.lastFilename()) def testLastFilename_EqualsPreviousFilenameAfterClose(self): self.taskFile.setFilename(self.filename) self.taskFile.close() self.assertEqual(self.filename, self.taskFile.lastFilename()) def testLastFilename_EqualsPreviousFilenameAfterClosingTwice(self): self.taskFile.setFilename(self.filename) self.taskFile.close() self.taskFile.close() self.assertEqual(self.filename, self.taskFile.lastFilename()) def testLastFilename_EqualsCurrentFilenameAfterSaveAs(self): self.taskFile.setFilename(self.filename) self.taskFile.saveas(self.filename2) self.assertEqual(self.filename2, self.taskFile.lastFilename()) class ChangingAttachmentsTestsMixin(object): def testNeedSave_AfterAttachmentAdded(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.item.addAttachments(self.attachment) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterAttachmentRemoved(self): self.taskFile.setFilename(self.filename) self.item.addAttachments(self.attachment) self.taskFile.save() self.item.removeAttachments(self.attachment) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterAttachmentsReplaced(self): self.taskFile.setFilename(self.filename) self.item.addAttachments(self.attachment) self.taskFile.save() self.item.setAttachments([FakeAttachment('file', 'attachment2')]) self.failUnless(self.taskFile.needSave()) def addAttachment(self, anAttachment): self.taskFile.setFilename(self.filename) self.item.addAttachments(anAttachment) self.taskFile.save() def addFileAttachment(self): self.fileAttachment = attachment.FileAttachment('Old location') # pylint: disable=W0201 self.addAttachment(self.fileAttachment) def testNeedSave_AfterFileAttachmentLocationChanged(self): self.addFileAttachment() self.fileAttachment.setLocation('New location') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterFileAttachmentSubjectChanged(self): self.addFileAttachment() self.fileAttachment.setSubject('New subject') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterFileAttachmentDescriptionChanged(self): self.addFileAttachment() self.fileAttachment.setDescription('New description') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterFileAttachmentForegroundColorChanged(self): self.addFileAttachment() self.fileAttachment.setForegroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterFileAttachmentBackgroundColorChanged(self): self.addFileAttachment() self.fileAttachment.setBackgroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterFileAttachmentNoteAdded(self): self.addFileAttachment() self.fileAttachment.addNote(note.Note(subject='Note')) # pylint: disable=E1101 self.failUnless(self.taskFile.needSave()) def addURIAttachment(self): self.uriAttachment = attachment.URIAttachment('Old location') # pylint: disable=W0201 self.addAttachment(self.uriAttachment) def testNeedSave_AfterURIAttachmentLocationChanged(self): self.addURIAttachment() self.uriAttachment.setLocation('New location') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterURIAttachmentSubjectChanged(self): self.addURIAttachment() self.uriAttachment.setSubject('New subject') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterURIAttachmentDescriptionChanged(self): self.addURIAttachment() self.uriAttachment.setDescription('New description') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterURIAttachmentForegroundColorChanged(self): self.addURIAttachment() self.uriAttachment.setForegroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterURIAttachmentBackgroundColorChanged(self): self.addURIAttachment() self.uriAttachment.setBackgroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterURIAttachmentNoteAdded(self): self.addURIAttachment() self.uriAttachment.addNote(note.Note(subject='Note')) # pylint: disable=E1101 self.failUnless(self.taskFile.needSave()) def addMailAttachment(self): self.mailAttachment = attachment.MailAttachment(self.filename, # pylint: disable=W0201 readMail=lambda location: ('', '')) self.addAttachment(self.mailAttachment) def testNeedSave_AfterMailAttachmentLocationChanged(self): self.addMailAttachment() self.mailAttachment.setLocation('New location') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMailAttachmentSubjectChanged(self): self.addMailAttachment() self.mailAttachment.setSubject('New subject') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMailAttachmentDescriptionChanged(self): self.addMailAttachment() self.mailAttachment.setDescription('New description') self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMailAttachmentForegroundColorChanged(self): self.addMailAttachment() self.mailAttachment.setForegroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMailAttachmentBackgroundColorChanged(self): self.addMailAttachment() self.mailAttachment.setBackgroundColor(wx.RED) self.failUnless(self.taskFile.needSave()) def testNeedSave_AfterMailAttachmentNoteAdded(self): self.addMailAttachment() self.mailAttachment.addNote(note.Note(subject='Note')) # pylint: disable=E1101 self.failUnless(self.taskFile.needSave()) class TaskFileDirtyWhenChangingAttachmentsTestCase(TaskFileTestCase): def setUp(self): super(TaskFileDirtyWhenChangingAttachmentsTestCase, self).setUp() self.attachment = FakeAttachment('file', 'attachment') class TaskFileDirtyWhenChangingTaskAttachmentsTestCase(\ TaskFileDirtyWhenChangingAttachmentsTestCase, ChangingAttachmentsTestsMixin): def setUp(self): super(TaskFileDirtyWhenChangingTaskAttachmentsTestCase, self).setUp() self.item = self.task class TaskFileDirtyWhenChangingNoteAttachmentsTestCase(\ TaskFileDirtyWhenChangingAttachmentsTestCase, ChangingAttachmentsTestsMixin): def setUp(self): super(TaskFileDirtyWhenChangingNoteAttachmentsTestCase, self).setUp() self.item = self.note class TaskFileDirtyWhenChangingCategoryAttachmentsTestCase(\ TaskFileDirtyWhenChangingAttachmentsTestCase, ChangingAttachmentsTestsMixin): def setUp(self): super(TaskFileDirtyWhenChangingCategoryAttachmentsTestCase, self).setUp() self.item = self.category class TaskFileSaveAndLoadTest(TaskFileTestCase): def setUp(self): super(TaskFileSaveAndLoadTest, self).setUp() self.emptyTaskFile.setFilename(self.filename) def saveAndLoad(self, tasks, categories=None, notes=None): categories = categories or [] notes = notes or [] self.emptyTaskFile.tasks().extend(tasks) self.emptyTaskFile.categories().extend(categories) self.emptyTaskFile.notes().extend(notes) self.emptyTaskFile.save() self.emptyTaskFile.load() self.assertEqual( \ sorted([eachTask.subject() for eachTask in tasks]), sorted([eachTask.subject() for eachTask in self.emptyTaskFile.tasks()])) self.assertEqual( \ sorted([eachCategory.subject() for eachCategory in categories]), sorted([eachCategory.subject() for eachCategory in self.emptyTaskFile.categories()])) self.assertEqual( \ sorted([eachNote.subject() for eachNote in notes]), sorted([eachNote.subject() for eachNote in self.emptyTaskFile.notes()])) def testSaveAndLoad(self): self.saveAndLoad([task.Task(subject='ABC'), task.Task(dueDateTime=date.Tomorrow())]) def testSaveAndLoadTaskWithChild(self): parentTask = task.Task() childTask = task.Task(parent=parentTask) parentTask.addChild(childTask) self.saveAndLoad([parentTask, childTask]) def testSaveAndLoadCategory(self): self.saveAndLoad([], [self.category]) def testSaveAndLoadNotes(self): self.saveAndLoad([], [], [self.note]) def testSaveAs(self): self.taskFile.saveas('new.tsk') self.taskFile.load() self.assertEqual(1, len(self.taskFile.tasks())) self.taskFile.close() self.remove('new.tsk', 'new.tsk.delta') def testSaveAsOverwrites(self): self.taskFile.saveas('new.tsk') self.taskFile.close() self.taskFile.tasks().extend([task.Task(subject=u'foo')]) self.taskFile.saveas('new.tsk') self.assertEqual(1, len(self.taskFile.tasks())) self.taskFile.close() self.remove('new.tsk', 'new.tsk.delta') class TaskFileMergeTest(TaskFileTestCase): def setUp(self): super(TaskFileMergeTest, self).setUp() self.mergeFile = persistence.TaskFile() self.mergeFile.setFilename('merge.tsk') def tearDown(self): self.mergeFile.close() self.mergeFile.stop() self.remove('merge.tsk', 'merge.tsk.delta') super(TaskFileMergeTest, self).tearDown() def merge(self): self.mergeFile.save() self.taskFile.merge('merge.tsk') def testMerge_Tasks(self): self.mergeFile.tasks().append(task.Task()) self.merge() self.assertEqual(2, len(self.taskFile.tasks())) def testMerge_TasksWithSubtask(self): parent = task.Task(subject='parent') child = task.Task(subject='child') parent.addChild(child) child.setParent(parent) self.mergeFile.tasks().extend([parent, child]) self.merge() self.assertEqual(3, len(self.taskFile.tasks())) self.assertEqual(2, len(self.taskFile.tasks().rootItems())) def testMerge_OneCategoryInMergeFile(self): self.taskFile.categories().remove(self.category) self.mergeFile.categories().append(self.category) self.merge() self.assertEqual([self.category.subject()], [cat.subject() for cat in self.taskFile.categories()]) def testMerge_DifferentCategories(self): self.mergeFile.categories().append(category.Category('another category')) self.merge() self.assertEqual(2, len(self.taskFile.categories())) def testMerge_SameSubject(self): self.mergeFile.categories().append(category.Category(self.category.subject())) self.merge() self.assertEqual([self.category.subject()]*2, [cat.subject() for cat in self.taskFile.categories()]) def testMerge_CategoryWithTask(self): self.taskFile.categories().remove(self.category) self.mergeFile.categories().append(self.category) aTask = task.Task(subject='merged task') self.mergeFile.tasks().append(aTask) self.category.addCategorizable(aTask) self.merge() self.assertEqual(aTask.id(), list(list(self.taskFile.categories())[0].categorizables())[0].id()) def testMerge_Notes(self): newNote = note.Note(subject='new note') self.mergeFile.notes().append(newNote) self.merge() self.assertEqual(2, len(self.taskFile.notes())) def testMerge_SameTask(self): mergedTask = task.Task(subject='merged task', id=self.task.id()) self.mergeFile.tasks().append(mergedTask) self.merge() self.assertEqual(1, len(self.taskFile.tasks())) self.assertEqual('merged task', list(self.taskFile.tasks())[0].subject()) def testMerge_SameNote(self): mergedNote = note.Note(subject='merged note', id=self.note.id()) self.mergeFile.notes().append(mergedNote) self.merge() self.assertEqual(1, len(self.taskFile.notes())) self.assertEqual('merged note', list(self.taskFile.notes())[0].subject()) def testMerge_SameCategory(self): mergedCategory = category.Category(subject='merged category', id=self.category.id()) self.mergeFile.categories().append(mergedCategory) self.merge() self.assertEqual(1, len(self.taskFile.categories())) self.assertEqual('merged category', list(self.taskFile.categories())[0].subject()) def testMerge_CategoryLinkedToTask(self): self.task.addCategory(self.category) self.category.addCategorizable(self.task) mergedCategory = category.Category('merged category', id=self.category.id()) self.mergeFile.categories().append(mergedCategory) self.merge() self.assertEqual(self.category.id(), list(self.task.categories())[0].id()) def testMerge_CategoryLinkedToNote(self): self.note.addCategory(self.category) self.category.addCategorizable(self.note) mergedCategory = category.Category('merged category', id=self.category.id()) self.mergeFile.categories().append(mergedCategory) self.merge() self.assertEqual(self.category.id(), list(self.note.categories())[0].id()) def testMerge_ExistingCategoryWithoutExistingSubCategoryRemovesTheSubCategory(self): subCategory = category.Category('subcategory') self.category.addChild(subCategory) self.taskFile.categories().append(subCategory) self.task.addCategory(subCategory) subCategory.addCategorizable(self.task) self.assertEqual(2, len(self.taskFile.categories())) mergedCategory = category.Category('merged category', id=self.category.id()) self.mergeFile.categories().append(mergedCategory) self.merge() self.assertEqual(1, len(self.taskFile.categories())) class LockedTaskFileLockTest(TaskFileTestCase): def createTaskFiles(self): # pylint: disable=W0201 self.taskFile = persistence.LockedTaskFile() self.emptyTaskFile = persistence.LockedTaskFile() def tearDown(self): self.taskFile.close() self.taskFile.stop() self.emptyTaskFile.close() super(LockedTaskFileLockTest, self).tearDown() def testFileIsNotLockedInitially(self): self.failIf(self.taskFile.is_locked()) self.failIf(self.emptyTaskFile.is_locked()) def testFileIsNotLockedAfterLoading(self): self.taskFile.load(self.filename) self.failIf(self.taskFile.is_locked()) def testFileIsNotLockedAfterClosing(self): self.taskFile.close() self.failIf(self.taskFile.is_locked()) def testFileIsnotLockedAfterLoadingAndClosing(self): self.taskFile.load(self.filename) self.taskFile.close() self.failIf(self.taskFile.is_locked()) def testFileIsNotLockedAfterSaving(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.failIf(self.taskFile.is_locked()) def testFileIsNotLockedAfterSavingAndClosing(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.taskFile.close() self.failIf(self.taskFile.is_locked()) def testFileIsNotLockedAfterSaveAs(self): self.taskFile.saveas(self.filename) self.failIf(self.taskFile.is_locked()) def testFileIsNotLockedAfterSaveAndSaveAs(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.taskFile.saveas(self.filename2) self.failIf(self.taskFile.is_locked()) def testFileCanBeLoadedAfterClose(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.taskFile.close() self.emptyTaskFile.load(self.filename) self.assertEqual(1, len(self.emptyTaskFile.tasks())) def testOriginalFileCanBeLoadedAfterSaveAs(self): self.taskFile.setFilename(self.filename) self.taskFile.save() self.taskFile.saveas(self.filename2) self.taskFile.close() self.emptyTaskFile.load(self.filename) self.assertEqual(1, len(self.emptyTaskFile.tasks())) class TaskFileMonitorTestBase(TaskFileTestCase): def setUp(self): super(TaskFileMonitorTestBase, self).setUp() self.taskFile.saveas(self.filename) self.taskFile.load() self.otherFile = persistence.TaskFile() self.otherFile.setFilename(self.filename) self.otherFile.load() def tearDown(self): self.otherFile.close() self.otherFile.stop() self.remove('other.tsk') super(TaskFileMonitorTestBase, self).tearDown() def testTaskExistsAfterLoad(self): self.assertEqual(self.taskFile.monitor().getChanges(self.task), set()) def testCategoryExistsAfterLoad(self): self.assertEqual(self.taskFile.monitor().getChanges(self.category), set()) def testNoteExistsAfterLoad(self): self.assertEqual(self.taskFile.monitor().getChanges(self.note), set()) def testChangeTask(self): self.task.setSubject('New subject') self.assertEqual(self.taskFile.monitor().getChanges(self.task), set(['subject'])) def testChangeCategory(self): self.category.setSubject('New subject') self.assertEqual(self.taskFile.monitor().getChanges(self.category), set(['subject'])) def testChangeNone(self): self.note.setSubject('New subject') self.assertEqual(self.taskFile.monitor().getChanges(self.note), set(['subject'])) def testChangesResetAfterSave(self): self.task.setSubject('New subject') self.taskFile.save() self.assertEqual(self.taskFile.monitor().getChanges(self.task), set([])) def testResetAfterClose(self): self.taskFile.close() self.assertEqual(self.taskFile.monitor().getChanges(self.task), None) def _loadChangesFromFile(self, filename): return persistence.ChangesXMLReader(file(filename + '.delta', 'rU')).read() def testGUIDPresentAfterLoad(self): self.failUnless(self._loadChangesFromFile(self.filename).has_key(self.taskFile.monitor().guid())) def testGUIDNotPresentAfterClose(self): self.taskFile.close() self.failIf(self.taskFile.monitor().guid() in self._loadChangesFromFile(self.filename)) def testChangeOtherSetsChanges(self): self.otherFile.monitor().setChanges(self.task.id(), set(['subject'])) self.otherFile.save() allChanges = self._loadChangesFromFile(self.filename) self.assertEqual(allChanges[self.taskFile.monitor().guid()].getChanges(self.task), set(['subject'])) self.assertEqual(allChanges[self.otherFile.monitor().guid()].getChanges(self.task), set()) def testDeleteObject(self): self.otherFile.tasks().remove(self.otherFile.tasks().rootItems()[0]) self.otherFile.save() allChanges = self._loadChangesFromFile(self.filename) self.assertEqual(allChanges[self.taskFile.monitor().guid()].getChanges(self.task), set(['__del__'])) self.assertEqual(allChanges[self.otherFile.monitor().guid()].getChanges(self.task), None) def testDiskChangesAfterLoad(self): changes = self._loadChangesFromFile(self.filename)[self.taskFile.monitor().guid()] self.assertEqual(changes.getChanges(self.task), set()) def testNewObject(self): item = task.Task(subject='New task') self.otherFile.tasks().append(item) self.otherFile.save() self.taskFile.save() allChanges = self._loadChangesFromFile(self.filename) self.assertEqual(allChanges[self.otherFile.monitor().guid()].getChanges(item), set()) self.assertEqual(allChanges[self.taskFile.monitor().guid()].getChanges(item), set()) class TaskFileMultiUserTestBase(object): def setUp(self): self.createTaskFiles() self.task = task.Task(subject='Task') self.taskFile1.tasks().append(self.task) self.category = category.Category(subject='Category') self.taskFile1.categories().append(self.category) self.note = note.Note(subject='Note') self.taskFile1.notes().append(self.note) self.taskNote = note.Note(subject='Task note') self.task.addNote(self.taskNote) self.attachment = attachment.FileAttachment('foobarfile') self.task.addAttachment(self.attachment) self.filename = 'test.tsk' self.taskFile1.setFilename(self.filename) self.taskFile2.setFilename(self.filename) self.taskFile1.save() self.taskFile2.load() def createTaskFiles(self): # pylint: disable-msg=W0201 self.taskFile1 = persistence.TaskFile() self.taskFile2 = persistence.TaskFile() def tearDown(self): self.taskFile1.close() self.taskFile1.stop() self.taskFile2.close() self.taskFile2.stop() self.remove(self.filename) def remove(self, *filenames): for filename in filenames: tries = 0 while os.path.exists(filename) and tries < 3: try: # Don't fail on random 'Access denied' errors. os.remove(filename) break except WindowsError: tries += 1 def _assertIdInList(self, objects, id_): for obj in objects: if obj.id() == id_: break else: self.fail('ID %s not found' % id_) return obj def _testCreateObjectInOther(self, class_, listName): newObject = class_(subject='New %s' % class_.__name__) getattr(self.taskFile1, listName)().append(newObject) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)()), 2) self._assertIdInList(getattr(self.taskFile2, listName)().rootItems(), newObject.id()) def testOtherCreatesCategory(self): self._testCreateObjectInOther(category.Category, 'categories') def testOtherCreatesTask(self): self._testCreateObjectInOther(task.Task, 'tasks') def testOtherCreatesNote(self): self._testCreateObjectInOther(note.Note, 'notes') def _testCreateChildInOther(self, listName): item = getattr(self.taskFile1, listName)().rootItems()[0] subItem = item.newChild(subject='New sub%s' % item.__class__.__name__) getattr(self.taskFile1, listName)().append(subItem) item.addChild(subItem) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)()), 2) otherItem = getattr(self.taskFile2, listName)().rootItems()[0] self.assertEqual(len(otherItem.children()), 1) self.assertEqual(otherItem.children()[0].id(), subItem.id()) def testOtherCreatesSubcategory(self): self._testCreateChildInOther('categories') def testOtherCreatesSubtask(self): self._testCreateChildInOther('tasks') def testOtherCreatesSubnote(self): self._testCreateChildInOther('notes') def _testCreateObjectWithChildInOther(self, class_, listName): item = class_(subject='New %s' % class_.__name__) subItem = item.newChild(subject='New sub%s' % class_.__name__) item.addChild(subItem) getattr(self.taskFile1, listName)().append(item) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)()), 3) otherItem = self._assertIdInList(getattr(self.taskFile2, listName)().rootItems(), item.id()) self.assertEqual(len(otherItem.children()), 1) self.assertEqual(otherItem.children()[0].id(), subItem.id()) def testOtherCreatesCategoryWithChild(self): self._testCreateObjectWithChildInOther(category.Category, 'categories') def testOtherCreatesTaskWithChild(self): self._testCreateObjectWithChildInOther(task.Task, 'tasks') def testOtherCreatesNoteWithChild(self): self._testCreateObjectWithChildInOther(note.Note, 'notes') def _testCreateObjectAndReparentExisting(self, listName): item = getattr(self.taskFile1, listName)().rootItems()[0] newItem = item.__class__(subject='New %s' % item.__class__.__name__) getattr(self.taskFile1, listName)().append(newItem) newItem.addChild(item) item.setParent(newItem) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)()), 2) for otherItem in getattr(self.taskFile2, listName)().rootItems(): if otherItem.id() == newItem.id(): break else: self.fail() self.assertEqual(len(otherItem.children()), 1) self.assertEqual(otherItem.children()[0].id(), item.id()) def testOtherCreatesCategoryAndReparentsExisting(self): self._testCreateObjectAndReparentExisting('categories') def testOtherCreatesTaskAndReparentsExisting(self): self._testCreateObjectAndReparentExisting('tasks') def testOtherCreatesNoteAndReparentsExisting(self): self._testCreateObjectAndReparentExisting('notes') def _testChangeAttribute(self, name, value, listName): obj = getattr(self.taskFile1, listName)().rootItems()[0] getattr(obj, 'set' + name[0].upper() + name[1:])(value) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(getattr(getattr(self.taskFile2, listName)().rootItems()[0], name)(), value) def _testExpand(self, listName): obj = getattr(self.taskFile1, listName)().rootItems()[0] obj.expand() self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.failUnless(getattr(self.taskFile2, listName)().rootItems()[0].isExpanded()) def testChangeCategoryName(self): self._testChangeAttribute('subject', 'New category name', 'categories') def testChangeCategoryDescription(self): self._testChangeAttribute('description', 'New category description', 'categories') def testExpandCategory(self): self._testExpand('categories') def testChangeTaskSubject(self): self._testChangeAttribute('subject', 'New task subject', 'tasks') def testChangeTaskDescription(self): self._testChangeAttribute('description', 'New task description', 'tasks') def testExpandTask(self): self._testExpand('tasks') def testChangeNoteSubject(self): self._testChangeAttribute('subject', 'New note subject', 'notes') def testChangeNoteDescription(self): self._testChangeAttribute('description', 'New note description', 'notes') def testChangeTaskStartDateTime(self): self._testChangeAttribute('plannedStartDateTime', date.DateTime(2011, 6, 15), 'tasks') def testChangeTaskDueDateTime(self): self._testChangeAttribute('dueDateTime', date.DateTime(2011, 7, 16), 'tasks') def testChangeTaskCompletionDateTime(self): self._testChangeAttribute('completionDateTime', date.DateTime(2011, 2, 1), 'tasks') def testChangeTaskPrecentageComplete(self): self._testChangeAttribute('percentageComplete', 42, 'tasks') def testChangeTaskRecurrence(self): self._testChangeAttribute('recurrence', date.Recurrence('daily', 3), 'tasks') def testChangeTaskReminder(self): self._testChangeAttribute('reminder', date.DateTime(2999, 2, 1), 'tasks') def testChangeTaskBudget(self): self._testChangeAttribute('budget', date.TimeDelta(seconds=60), 'tasks') def testChangeTaskPriority(self): self._testChangeAttribute('priority', 42, 'tasks') def testChangeTaskHourlyFee(self): self._testChangeAttribute('hourlyFee', 42, 'tasks') def testChangeTaskFixedFee(self): self._testChangeAttribute('fixedFee', 42, 'tasks') def testChangeTaskShouldMarkCompletedWhenAllChildrenCompleted(self): self._testChangeAttribute('shouldMarkCompletedWhenAllChildrenCompleted', False, 'tasks') def testExpandNote(self): self._testExpand('notes') def _testChangeAppearance(self, listName, attrName, initialValue, newValue): setName = 'set' + attrName[0].upper() + attrName[1:] obj = getattr(self.taskFile1, listName)().rootItems()[0] newObj = getattr(self.taskFile2, listName)().rootItems()[0] getattr(obj, setName)(initialValue) getattr(newObj, setName)(initialValue) self.taskFile1.monitor().resetAllChanges() self.taskFile2.monitor().resetAllChanges() getattr(obj, setName)(newValue) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(getattr(newObj, attrName)(), newValue) def testChangeCategoryForeground(self): self._testChangeAppearance('categories', 'foregroundColor', (128, 128, 128), (255, 255, 0)) def testChangeCategoryBackground(self): self._testChangeAppearance('categories', 'backgroundColor', (128, 128, 128), (255, 255, 0)) def testChangeCategoryIcon(self): self._testChangeAppearance('categories', 'icon', 'initialIcon', 'finalIcon') def testChangeCategorySelectedIcon(self): self._testChangeAppearance('categories', 'selectedIcon', 'initialIcon', 'finalIcon') def testChangeNoteForeground(self): self._testChangeAppearance('notes', 'foregroundColor', (128, 128, 128), (255, 255, 0)) def testChangeNoteBackground(self): self._testChangeAppearance('notes', 'backgroundColor', (128, 128, 128), (255, 255, 0)) def testChangeNoteIcon(self): self._testChangeAppearance('notes', 'icon', 'initialIcon', 'finalIcon') def testChangeNoteSelectedIcon(self): self._testChangeAppearance('notes', 'selectedIcon', 'initialIcon', 'finalIcon') def testChangeTaskBackground(self): self._testChangeAppearance('tasks', 'backgroundColor', (128, 128, 128), (255, 255, 0)) def testChangeTaskIcon(self): self._testChangeAppearance('tasks', 'icon', 'initialIcon', 'finalIcon') def testChangeTaskSelectedIcon(self): self._testChangeAppearance('tasks', 'selectedIcon', 'initialIcon', 'finalIcon') def testChangeExclusiveSubcategories(self): self.category.makeSubcategoriesExclusive(True) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assert_(self.taskFile2.categories().rootItems()[0].hasExclusiveSubcategories()) def _testAddObjectCategory(self, listName): obj = getattr(self.taskFile1, listName)().rootItems()[0] obj.addCategory(self.category) self.category.addCategorizable(obj) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) newObj = getattr(self.taskFile2, listName)().rootItems()[0] self.assertEqual(len(newObj.categories()), 1) self.assertEqual(newObj.categories().pop().id(), self.category.id()) def testAddNoteCategory(self): self._testAddObjectCategory('notes') def testAddTaskCategory(self): self._testAddObjectCategory('tasks') def _testChangeObjectCategory(self, listName): self.category2 = category.Category(subject='Other category') self.taskFile1.categories().append(self.category2) obj = getattr(self.taskFile1, listName)().rootItems()[0] obj.addCategory(self.category) self.category.addCategorizable(obj) self.taskFile1.save() self.taskFile2.save() # Load => CategoryList => addCategory()... self.taskFile1.monitor().resetAllChanges() self.category.removeCategorizable(obj) obj.removeCategory(self.category) self.category2.addCategorizable(obj) obj.addCategory(self.category2) self.taskFile1.save() self.taskFile2.monitor().resetAllChanges() self.doSave(self.taskFile2) newObj = getattr(self.taskFile2, listName)().rootItems()[0] self.assertEqual(len(newObj.categories()), 1) self.assertEqual(newObj.categories().pop().id(), self.category2.id()) def testChangeNoteCategory(self): self._testChangeObjectCategory('notes') def testChangeTaskCategory(self): self._testChangeObjectCategory('tasks') def _testDeleteObject(self, listName): item = getattr(self.taskFile1, listName)().rootItems()[0] getattr(self.taskFile1, listName)().remove(item) self.taskFile1.save() self.taskFile2.monitor().setChanges(item.id(), set()) self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile1, listName)()), 0) self.assertEqual(len(getattr(self.taskFile2, listName)()), 0) def _testDeleteModifiedLocalObject(self, listName): item = getattr(self.taskFile1, listName)().rootItems()[0] getattr(self.taskFile1, listName)().remove(item) self.taskFile1.save() getattr(self.taskFile2, listName)().rootItems()[0].setSubject('New subject.') self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)()), 1) def _testDeleteModifiedRemoteObject(self, listName): getattr(self.taskFile1, listName)().rootItems()[0].setSubject('New subject.') self.taskFile1.save() item = getattr(self.taskFile2, listName)().rootItems()[0] getattr(self.taskFile2, listName)().remove(item) self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)()), 1) self.assertEqual(getattr(self.taskFile2, listName)().rootItems()[0].subject(), 'New subject.') def testDeleteCategory(self): self._testDeleteObject('categories') def testDeleteNote(self): self._testDeleteObject('notes') def testDeleteTask(self): self._testDeleteObject('tasks') def testDeleteModifiedLocalCategory(self): self._testDeleteModifiedLocalObject('categories') def testDeleteModifiedLocalNote(self): self._testDeleteModifiedLocalObject('notes') def testDeleteModifiedLocalTask(self): self._testDeleteModifiedLocalObject('tasks') def testDeleteModifiedRemoteCategory(self): self._testDeleteModifiedRemoteObject('categories') def testDeleteModifiedRemoteNote(self): self._testDeleteModifiedRemoteObject('notes') def testDeleteModifiedRemoteTask(self): self._testDeleteModifiedRemoteObject('tasks') def _testAddNoteToObject(self, listName): newNote = note.Note(subject='Other note') getattr(self.taskFile1, listName)().rootItems()[0].addNote(newNote) noteCount = len(getattr(self.taskFile1, listName)().rootItems()[0].notes()) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)().rootItems()[0].notes()), noteCount) def testAddNoteToTask(self): self._testAddNoteToObject('tasks') def testAddNoteToCategory(self): self._testAddNoteToObject('categories') def testAddNoteToAttachment(self): newNote = note.Note(subject='Attachment note') self.attachment.addNote(newNote) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(self.taskFile2.tasks().rootItems()[0].attachments()[0].notes()), 1) def _testAddAttachmentToObject(self, listName): newAttachment = attachment.FileAttachment('Other attachment') getattr(self.taskFile1, listName)().rootItems()[0].addAttachment(newAttachment) attachmentCount = len(getattr(self.taskFile1, listName)().rootItems()[0].attachments()) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)().rootItems()[0].attachments()), attachmentCount) def testAddAttachmentToTask(self): self._testAddAttachmentToObject('tasks') def testAddAttachmentToCategory(self): self._testAddAttachmentToObject('categories') def testAddAttachmentToNote(self): self._testAddAttachmentToObject('notes') def _testRemoveNoteFromObject(self, listName): newNote = note.Note(subject='Other note') noteCount = len(getattr(self.taskFile1, listName)().rootItems()[0].notes()) getattr(self.taskFile1, listName)().rootItems()[0].addNote(newNote) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.taskFile2.save() getattr(self.taskFile1, listName)().rootItems()[0].removeNote(newNote) self.taskFile2.monitor().setChanges(newNote.id(), set()) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)().rootItems()[0].notes()), noteCount) def testRemoveNoteFromTask(self): self._testRemoveNoteFromObject('tasks') def testRemoveNoteFromCategory(self): self._testRemoveNoteFromObject('categories') def testRemoveNoteFromAttachment(self): newNote = note.Note(subject='Attachment note') self.attachment.addNote(newNote) self.taskFile1.save() self.taskFile2.save() self.taskFile1.tasks().rootItems()[0].attachments()[0].removeNote(newNote) self.taskFile2.monitor().setChanges(newNote.id(), set()) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(self.taskFile2.tasks().rootItems()[0].attachments()[0].notes()), 0) def _testRemoveAttachmentFromObject(self, listName): newAttachment = attachment.FileAttachment('Other attachment') attachmentCount = len(getattr(self.taskFile1, listName)().rootItems()[0].attachments()) getattr(self.taskFile1, listName)().rootItems()[0].addAttachment(newAttachment) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.taskFile2.save() getattr(self.taskFile1, listName)().rootItems()[0].removeAttachment(newAttachment) self.taskFile2.monitor().setChanges(newAttachment.id(), set()) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(getattr(self.taskFile2, listName)().rootItems()[0].attachments()), attachmentCount) def testRemoveAttachmentFromTask(self): self._testRemoveAttachmentFromObject('tasks') def testRemoveAttachmentFromCategory(self): self._testRemoveAttachmentFromObject('categories') def testRemoveAttachmentFromNote(self): self._testRemoveAttachmentFromObject('notes') def testChangeNoteBelongingToTask(self): self.taskNote.setSubject('New subject') self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(self.taskFile2.tasks().rootItems()[0].notes()[0].subject(), 'New subject') def testChangeAttachmentBelongingToTask(self): self.attachment.setLocation('new location') self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(self.taskFile2.tasks().rootItems()[0].attachments()[0].location(), 'new location') def testAddChildToNoteBelongingToTask(self): subNote = self.taskNote.newChild(subject='Child note') self.taskNote.addChild(subNote) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(self.taskFile2.tasks().rootItems()[0].notes()[0].children()), 1) def testRemoveChildToNoteBelongingToTask(self): subNote = self.taskNote.newChild(subject='Child note') self.taskNote.addChild(subNote) self.taskFile1.save() self.taskFile2.save() self.taskNote.removeChild(subNote) self.taskFile2.monitor().setChanges(subNote.id(), set()) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(self.taskFile2.tasks().rootItems()[0].notes()[0].children()), 0) def testAddCategorizedNoteBelongingToOtherCategory(self): # Categories should be handled in priority... cat1 = category.Category(subject='Cat #1') cat2 = category.Category(subject='Cat #2') newNote = note.Note(subject='Note') cat1.addNote(newNote) newNote.addCategory(cat2) cat2.addCategorizable(newNote) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() try: self.doSave(self.taskFile2) except Exception, e: self.fail(str(e)) def testAddEffortToTask(self): newEffort = effort.Effort(self.task, date.DateTime(2011, 5, 1), date.DateTime(2011, 6, 1)) self.task.addEffort(newEffort) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(newEffort.id(), self.taskFile2.tasks().rootItems()[0].efforts()[0].id()) def testRemoveEffortFromTask(self): newEffort = effort.Effort(self.task, date.DateTime(2011, 5, 1), date.DateTime(2011, 6, 1)) self.task.addEffort(newEffort) self.taskFile1.save() self.taskFile2.save() self.task.removeEffort(newEffort) self.taskFile2.monitor().setChanges(newEffort.id(), set()) self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(len(self.taskFile2.tasks().rootItems()[0].efforts()), 0) def testChangeEffortTask(self): newTask = task.Task(subject='Other task') self.taskFile1.tasks().append(newTask) newEffort = effort.Effort(self.task, date.DateTime(2011, 5, 1), date.DateTime(2011, 6, 1)) self.task.addEffort(newEffort) self.taskFile1.save() self.taskFile2.save() newEffort.setTask(newTask) self.taskFile2.monitor().setChanges(newEffort.id(), set()) self.taskFile1.save() self.doSave(self.taskFile2) for theTask in self.taskFile2.tasks(): if theTask.id() == newTask.id(): self.assertEqual(len(theTask.efforts()), 1) break else: self.fail() def testChangeEffortStart(self): newEffort = effort.Effort(self.task, date.DateTime(2011, 5, 1), date.DateTime(2011, 6, 1)) self.task.addEffort(newEffort) self.taskFile1.save() self.taskFile2.save() # This is needed because the setTask in sync() generates a DEL event self.taskFile1.monitor().setChanges(newEffort.id(), set()) newDate = date.DateTime(2010, 6, 1) newEffort.setStart(newDate) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(self.taskFile2.tasks().rootItems()[0].efforts()[0].getStart(), newDate) def testChangeEffortStop(self): newEffort = effort.Effort(self.task, date.DateTime(2011, 5, 1), date.DateTime(2011, 6, 1)) self.task.addEffort(newEffort) self.taskFile1.save() self.taskFile2.save() # This is needed because the setTask in sync() generates a DEL event self.taskFile1.monitor().setChanges(newEffort.id(), set()) newDate = date.DateTime(2012, 6, 1) newEffort.setStop(newDate) self.taskFile2.monitor().resetAllChanges() self.taskFile1.save() self.doSave(self.taskFile2) self.assertEqual(self.taskFile2.tasks().rootItems()[0].efforts()[0].getStop(), newDate) def testAddPrerequisite(self): newTask = task.Task(subject='Prereq') self.taskFile1.tasks().append(newTask) self.taskFile2.save() self.task.addPrerequisites([newTask]) self.taskFile2.load() self.taskFile1.save() self.taskFile2.monitor().resetAllChanges() self.doSave(self.taskFile2) for tsk in self.taskFile2.tasks(): if tsk.id() == self.task.id(): self.assertEqual(len(tsk.prerequisites()), 1) self.assertEqual(list(tsk.prerequisites())[0].id(), newTask.id()) break else: self.fail() def testRemovePrerequisite(self): newTask = task.Task(subject='Prereq') self.taskFile1.tasks().append(newTask) self.task.addPrerequisites([newTask]) self.taskFile1.save() self.taskFile2.load() self.task.removePrerequisites([newTask]) self.taskFile1.save() self.taskFile2.monitor().resetAllChanges() self.doSave(self.taskFile2) for tsk in self.taskFile2.tasks(): if tsk.id() == self.task.id(): self.assertEqual(len(tsk.prerequisites()), 0) break else: self.fail() class TaskFileMultiUserTestSave(TaskFileMultiUserTestBase, TaskFileTestCase): def doSave(self, taskFile): taskFile.save() class TaskFileMultiUserTestMerge(TaskFileMultiUserTestBase, TaskFileTestCase): def doSave(self, taskFile): taskFile.mergeDiskChanges() taskcoach-1.4.3/tests/unittests/persistenceTests/TemplateListTest.py000066400000000000000000000055201265347643000260670ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, xml from taskcoachlib import persistence class Fake(object): def __init__(self, *args, **kwargs): pass class TemplateReaderThatThrowsTooNewException(Fake): def read(self, *args, **kwargs): # pylint: disable=W0613 raise persistence.xml.reader.XMLReaderTooNewException class TemplateReaderThatThrowsIOError(Fake): def read(self, *args, **kwargs): # pylint: disable=W0613 raise IOError class TemplateReaderThatThrowsParseError(Fake): def read(self, *args, **kwargs): # pylint: disable=W0613 raise xml.etree.ElementTree.ParseError class FakeFileClass(Fake): def close(self): pass class FileClassThatRaisesIOError(object): def __init__(self, *args, **kwargs): # pylint: disable=W0613 raise IOError class TemplateListUnderTest(persistence.TemplateList): def _templateFilenames(self): return ['dummy.tsktmpl'] class TemplateListTestCase(test.TestCase): def testPathWithoutTemplates(self): templateList = persistence.TemplateList('.') self.assertEqual([], templateList.tasks()) def testHandleTooNewException(self): templateList = TemplateListUnderTest('.', TemplateReaderThatThrowsTooNewException, FakeFileClass) self.assertEqual([], templateList.tasks()) def testHandleIOErrorWhileOpeningFile(self): templateList = TemplateListUnderTest('.', openFile=FileClassThatRaisesIOError) self.assertEqual([], templateList.tasks()) def testHandleIOErrorWhileReadingTemplate(self): templateList = TemplateListUnderTest('.', TemplateReaderThatThrowsIOError, FakeFileClass) self.assertEqual([], templateList.tasks()) def testHandleParseErrorWhileReadingTemplate(self): templateList = TemplateListUnderTest('.', TemplateReaderThatThrowsParseError, FakeFileClass) self.assertEqual([], templateList.tasks()) taskcoach-1.4.3/tests/unittests/persistenceTests/TemplateXMLReaderTest.py000066400000000000000000000066741265347643000267520ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import StringIO import test from taskcoachlib import persistence, config from taskcoachlib.domain import task class TemplateXMLReaderTestCase(test.TestCase): tskversion = 33 def setUp(self): super(TemplateXMLReaderTestCase, self).setUp() task.Task.settings = config.Settings(load=False) self.fd = StringIO.StringIO() self.fd.name = 'testfile.tsk' self.reader = persistence.TemplateXMLReader(self.fd) def writeAndRead(self, xml): xml = '\n'%self.tskversion + xml self.fd.write(xml) self.fd.seek(0) return self.reader.read() def testMissingSubject(self): template = self.writeAndRead('') self.assertEqual('', template.subject()) def testSubject(self): template = self.writeAndRead('') self.assertEqual('Subject', template.subject()) def testPlannedStartDateTmpl(self): template = self.writeAndRead('') self.assertEqual(template.plannedstartdatetmpl, '11:00 AM today') def testPlannedStartDateTmplEmpty(self): template = self.writeAndRead('') self.assertEqual(template.plannedstartdatetmpl, None) def testDueDateTmpl(self): template = self.writeAndRead('') self.assertEqual(template.duedatetmpl, '11:00 AM today') def testDueDateTmplEmpty(self): template = self.writeAndRead('') self.assertEqual(template.duedatetmpl, None) def testCompletionDate(self): template = self.writeAndRead('') self.assertEqual(template.completiondatetmpl, '11:00 AM today') def testCompletionDateTmplEmpty(self): template = self.writeAndRead('') self.assertEqual(template.completiondatetmpl, None) def testReminderTmpl(self): template = self.writeAndRead('') self.assertEqual(template.remindertmpl, '11:00 AM today') def testReminderTmplEmpty(self): template = self.writeAndRead('') self.assertEqual(template.remindertmpl, None) taskcoach-1.4.3/tests/unittests/persistenceTests/TemplateXMLWriterTest.py000066400000000000000000000050021265347643000270040ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, StringIO from taskcoachlib import persistence, config from taskcoachlib.domain import task, date class TemplateXMLWriterTestCase(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.fd = StringIO.StringIO() self.fd.name = 'testfile.tsk' self.fd.encoding = 'utf-8' self.writer = persistence.TemplateXMLWriter(self.fd) self.task = task.Task() def __writeAndRead(self): self.writer.write(self.task) return self.fd.getvalue() def expectInXML(self, xmlFragment): xml = self.__writeAndRead() self.failUnless(xmlFragment in xml, '%s not in %s'%(xmlFragment, xml)) # tests def testDefaultTask(self): self.expectInXML('\n\n' % (self.task.creationDateTime(), self.task.id())) def testTaskWithPlannedStartDateTime(self): self.task.setPlannedStartDateTime(date.Now() + date.TimeDelta(minutes=31)) self.expectInXML('plannedstartdatetmpl="31 minutes from now') def testTaskWithDueDateTime(self): self.task.setDueDateTime(date.Now() + date.TimeDelta(minutes=13)) self.expectInXML('duedatetmpl="13 minutes from now') def testTaskWithCompletionDateTime(self): self.task.setCompletionDateTime(date.Now() + date.TimeDelta(minutes=4)) self.expectInXML('completiondatetmpl="4 minutes from now') def testTaskWithReminder(self): self.task.setReminder(date.Now() + date.TimeDelta(seconds=10)) self.expectInXML('remindertmpl="0 minutes from now') taskcoach-1.4.3/tests/unittests/persistenceTests/TodoTxtReaderTest.py000066400000000000000000000221631265347643000262120ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, StringIO from taskcoachlib import persistence, config from taskcoachlib.domain import task, category, date class TodoTxtReaderTestCase(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.tasks = task.TaskList() self.categories = category.CategoryList() self.reader = persistence.TodoTxtReader(self.tasks, self.categories) def read(self, text, **kwargs): self.reader.readFile(StringIO.StringIO(text), **kwargs) def assertTaskSubject(self, *subjects): self.assertEqual(set(subjects), set(t.subject() for t in self.tasks)) def assertCategorySubject(self, *subjects): self.assertEqual(set(subjects), set(c.subject() for c in self.categories)) def assertPriority(self, priority): self.assertEqual(priority, list(self.tasks)[0].priority()) def assertStartDate(self, *dateTimeArgs): self.assertEqual(date.DateTime(*dateTimeArgs), list(self.tasks)[0].plannedStartDateTime()) def assertCompletionDate(self, *dateTimeArgs, **kwargs): expectedDateTime = kwargs['dateTime'] if 'dateTime' in kwargs else date.DateTime(*dateTimeArgs) self.assertEqual(expectedDateTime, list(self.tasks)[0].completionDateTime()) def assertDueDate(self, *dateTimeArgs): self.assertEqual(date.DateTime(*dateTimeArgs), list(self.tasks)[0].dueDateTime()) def assertTaskIsCompleted(self): self.failUnless(list(self.tasks)[0].completed()) def testEmptyFile(self): self.reader.readFile(StringIO.StringIO()) self.failIf(self.tasks) def testReadOneTask(self): self.read('Get milk\n') self.assertTaskSubject('Get milk') def testReadTwoTasks(self): self.read('Get milk\nDo laundry\n') self.assertTaskSubject('Get milk', 'Do laundry') def testTaskWithPriority(self): self.read('(A) Get milk\n') self.assertPriority(1) self.assertTaskSubject('Get milk') def testTaskWithStartDate(self): self.read('2011-01-31 Get milk\n') self.assertStartDate(2011, 1, 31) def testTaskWithStartDateWithoutLeadingZero(self): self.read('2011-1-31 Get milk\n') self.assertStartDate(2011, 1, 31) def testTaskWithPriorityAndStartDate(self): self.read('(Z) 2011-01-31 Get milk\n') self.assertPriority(26) self.assertStartDate(2011, 1, 31) def testCompletedTaskWithoutCompletionDate(self): now = date.Now() self.read('x Do dishes\n', now=lambda: now) self.assertTaskIsCompleted() self.assertCompletionDate(dateTime=now) def testCompletedTaskWithCompletionDate(self): self.read('X 2011-02-22 Do dishes\n') self.assertTaskIsCompleted() self.assertCompletionDate(2011, 2, 22) def testTaskWithStartAndCompletionDate(self): self.read('X 2011-2-22 2011-2-21 Do dishes\n') self.assertTaskIsCompleted() self.assertCompletionDate(2011, 2, 22) self.assertStartDate(2011, 2, 21) def testTaskWithSimpleContext(self): self.read('Order pizza @phone\n') self.assertCategorySubject(('@phone')) phone = list(self.categories)[0] pizza = list(self.tasks)[0] self.assertEqual(set([pizza]), phone.categorizables()) self.assertEqual(set([phone]), pizza.categories()) def testTaskWithSimpleProject(self): self.read('Order pizza +phone\n') self.assertCategorySubject(('+phone')) phone = list(self.categories)[0] pizza = list(self.tasks)[0] self.assertEqual(set([pizza]), phone.categorizables()) self.assertEqual(set([phone]), pizza.categories()) def testTaskWithPlusSign(self): self.read('Order pizza + drink\n') self.assertTaskSubject('Order pizza + drink') self.failIf(self.categories) def testTaskWithAtSign(self): self.read('Mail frank@niessink.com\n') self.assertTaskSubject('Mail frank@niessink.com') self.failIf(self.categories) def testTwoTasksWithTheSameContext(self): self.read('Order pizza @phone\nCall mom @phone\n') self.assertEqual(1, len(self.categories)) phone = list(self.categories)[0] self.assertEqual(set(self.tasks), phone.categorizables()) self.assertEqual([set([phone]), set([phone])], [t.categories() for t in self.tasks]) def testTaskWithSubcategoryAsContext(self): self.read('Order pizza @home->phone\n') home = [c for c in self.categories if not c.parent()][0] self.assertEqual('@home', home.subject()) phone = home.children()[0] self.assertEqual('phone', phone.subject()) pizza = list(self.tasks)[0] self.assertEqual(set([pizza]), phone.categorizables()) self.assertEqual(set([phone]), pizza.categories()) def testTwoTasksWithTheSameSubcategory(self): self.read('Order pizza @home->phone\nOrder flowers @home->phone\n') home = [c for c in self.categories if not c.parent()][0] self.assertEqual('@home', home.subject()) phone = home.children()[0] self.assertEqual('phone', phone.subject()) self.assertEqual(set(self.tasks), phone.categorizables()) for eachTask in self.tasks: self.assertEqual(set([phone]), eachTask.categories()) def testTaskWithMultipleContexts(self): self.read('Order pizza @phone @food\n') self.assertEqual(2, len(self.categories)) pizza = list(self.tasks)[0] self.assertEqual(set(self.categories), pizza.categories()) def testContextBeforeTask(self): self.read('@phone Order pizza\n') self.assertEqual(1, len(self.categories)) def testProjectBeforeTask(self): self.read('+phone Order pizza\n') self.assertEqual(1, len(self.categories)) def testPriorityAndContextBeforeTask(self): self.read('(A) @phone thank Mom for the meatballs') self.assertEqual(1, len(self.categories)) self.assertCategorySubject('@phone') phone = list(self.categories)[0] thankMom = list(self.tasks)[0] self.assertEqual(set([thankMom]), phone.categorizables()) self.assertEqual(set([phone]), thankMom.categories()) def testPriorityAndProjectAndContextBeforeTask(self): self.read('(B) +GarageSale @phone schedule Goodwill pickup') self.assertEqual(2, len(self.categories)) def testAutomaticallyCreateParentTask(self): self.read('Project->Activity') self.assertEqual(2, len(self.tasks)) parent = [t for t in self.tasks if not t.parent()][0] self.assertEqual('Project', parent.subject()) self.assertEqual('Activity', parent.children()[0].subject()) def testAutomaticallyCreateParentTask_WithSpaces(self): self.read('Project -> Activity') self.assertEqual(2, len(self.tasks)) parent = [t for t in self.tasks if not t.parent()][0] self.assertEqual('Project', parent.subject()) self.assertEqual('Activity', parent.children()[0].subject()) def testFirstChildAndThenParent(self): self.read('Project->Activity\nProject\n') self.assertEqual(2, len(self.tasks)) parent = [t for t in self.tasks if not t.parent()][0] self.assertEqual('Project', parent.subject()) self.assertEqual('Activity', parent.children()[0].subject()) def testIgnoreEmptyLine(self): self.read('\n') self.failIf(self.tasks) def testDueDate(self): self.read('Import due date due:2011-03-05\n') self.assertEqual('Import due date', list(self.tasks)[0].subject()) self.assertEqual(date.DateTime(2011, 3, 5, 0, 0, 0), list(self.tasks)[0].dueDateTime()) def testDueDateBeforeProject(self): self.read('Import due date due:2011-03-05 +TaskCoach\n') self.assertTaskSubject('Import due date') self.assertDueDate(2011, 3, 5) self.assertCategorySubject('+TaskCoach') def testTrailingJunk(self): taskWithJunk = 'Test +this_is_not_a_project due to trailing junk' self.read(taskWithJunk) self.assertTaskSubject(taskWithJunk) taskcoach-1.4.3/tests/unittests/persistenceTests/TodoTxtWriterTest.py000066400000000000000000000211371265347643000262640ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, StringIO from taskcoachlib import persistence, config, gui from taskcoachlib.domain import task, category, date class TodoTxtWriterTestCase(test.wxTestCase): def setUp(self): self.settings = task.Task.settings = config.Settings(load=False) self.file = StringIO.StringIO() self.writer = persistence.TodoTxtWriter(self.file, 'whatever.tsk') self.settings.set('taskviewer', 'treemode', 'False') self.taskFile = persistence.TaskFile() self.viewer = gui.viewer.TaskViewer(self.frame, self.taskFile, self.settings) def testNoTasksAndCategories(self): self.writer.write(self.viewer, self.settings, False) self.assertEqual('', self.file.getvalue()) def testOneTask(self): theTask = task.Task(subject='Get cheese') self.taskFile.tasks().append(theTask) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Get cheese tcid:%s\n' % theTask.id(), self.file.getvalue()) def testTwoTasks(self): theTask1 = task.Task(subject='Get cheese') theTask2 = task.Task(subject='Paint house') self.taskFile.tasks().append(theTask1) self.taskFile.tasks().append(theTask2) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Get cheese tcid:%s\nPaint house tcid:%s\n' % (theTask1.id(), theTask2.id()), self.file.getvalue()) def testNonAsciiSubject(self): theTask = task.Task(subject='Call Jérôme') self.taskFile.tasks().append(theTask) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Call Jérôme tcid:%s\n' % theTask.id(), self.file.getvalue()) def testSorting(self): theTask1 = task.Task(subject='Get cheese') theTask2 = task.Task(subject='Paint house') self.taskFile.tasks().append(theTask1) self.taskFile.tasks().append(theTask2) self.viewer.sortBy('subject') self.viewer.setSortOrderAscending(False) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Paint house tcid:%s\nGet cheese tcid:%s\n' % (theTask2.id(), theTask1.id()), self.file.getvalue()) def testTaskPriorityIsWrittenAsLetter(self): theTask = task.Task(subject='Get cheese', priority=1) self.taskFile.tasks().append(theTask) self.writer.write(self.viewer, self.settings, False) self.assertEqual('(A) Get cheese tcid:%s\n' % theTask.id(), self.file.getvalue()) def testTaskPriorityHigherThanZIsIgnored(self): theTask = task.Task(subject='Get cheese', priority=27) self.taskFile.tasks().append(theTask) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Get cheese tcid:%s\n' % theTask.id(), self.file.getvalue()) def testStartDate(self): theTask = task.Task(subject='Get cheese', plannedStartDateTime=date.DateTime(2027,1,23,15,34,12)) self.taskFile.tasks().append(theTask) self.writer.write(self.viewer, self.settings, False) self.assertEqual('2027-01-23 Get cheese tcid:%s\n' % theTask.id(), self.file.getvalue()) def testCompletionDate(self): theTask = task.Task(subject='Get cheese', completionDateTime=date.DateTime(2027,1,23,15,34,12)) self.taskFile.tasks().append(theTask) self.writer.write(self.viewer, self.settings, False) self.assertEqual('X 2027-01-23 Get cheese tcid:%s\n' % theTask.id(), self.file.getvalue()) def testContext(self): phone = category.Category(subject='@phone') self.taskFile.categories().append(phone) pizza = task.Task(subject='Order pizza') self.taskFile.tasks().append(pizza) phone.addCategorizable(pizza) pizza.addCategory(phone) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Order pizza @phone tcid:%s\n' % pizza.id(), self.file.getvalue()) def testContextWithSpaces(self): at_home = category.Category(subject='@at home') self.taskFile.categories().append(at_home) dishes = task.Task(subject='Do dishes') self.taskFile.tasks().append(dishes) at_home.addCategorizable(dishes) dishes.addCategory(at_home) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Do dishes @at_home tcid:%s\n' % dishes.id(), self.file.getvalue()) def testSubcontext(self): work = category.Category(subject='@Work') staff_meeting = category.Category(subject='Staff meeting') work.addChild(staff_meeting) self.taskFile.categories().append(work) discuss_proposal = task.Task(subject='Discuss the proposal') self.taskFile.tasks().append(discuss_proposal) discuss_proposal.addCategory(staff_meeting) staff_meeting.addCategorizable(discuss_proposal) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Discuss the proposal @Work->Staff_meeting tcid:%s\n' % discuss_proposal.id(), self.file.getvalue()) def testMultipleContexts(self): phone = category.Category(subject='@phone') food = category.Category(subject='@food') self.taskFile.categories().extend([phone, food]) pizza = task.Task(subject='Order pizza') self.taskFile.tasks().append(pizza) phone.addCategorizable(pizza) pizza.addCategory(phone) food.addCategorizable(pizza) pizza.addCategory(food) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Order pizza @food @phone tcid:%s\n' % pizza.id(), self.file.getvalue()) def testProject(self): alive = category.Category(subject='+Stay alive') self.taskFile.categories().append(alive) pizza = task.Task(subject='Order pizza') self.taskFile.tasks().append(pizza) alive.addCategorizable(pizza) pizza.addCategory(alive) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Order pizza +Stay_alive tcid:%s\n' % pizza.id(), self.file.getvalue()) def testIgnoreCategoriesThatAreNotAContextNorAProject(self): phone = category.Category(subject='phone') self.taskFile.categories().append(phone) pizza = task.Task(subject='Order pizza') self.taskFile.tasks().append(pizza) phone.addCategorizable(pizza) pizza.addCategory(phone) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Order pizza tcid:%s\n' % pizza.id(), self.file.getvalue()) def testSubtask(self): self.viewer.sortBy('subject') self.viewer.setSortOrderAscending() project = task.Task(subject='Project') activity = task.Task(subject='Some activity') project.addChild(activity) self.taskFile.tasks().append(project) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Project tcid:%s\nProject -> Some activity tcid:%s\n' % (project.id(), activity.id()), self.file.getvalue()) def testTaskWithDueDate(self): theTask = task.Task(subject='Export due date', dueDateTime=date.DateTime(2011,1,1,16,50,10)) self.taskFile.tasks().append(theTask) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Export due date due:2011-01-01 tcid:%s\n' % theTask.id(), self.file.getvalue()) def testExportSelectionOnly(self): cheese = task.Task(subject='Get cheese') self.taskFile.tasks().append(cheese) self.taskFile.tasks().append(task.Task(subject='Paint house')) self.viewer.select([cheese]) self.writer.write(self.viewer, self.settings, True) self.assertEqual('Get cheese tcid:%s\n' % cheese.id(), self.file.getvalue()) taskcoach-1.4.3/tests/unittests/persistenceTests/VCalendarReaderTest.py000066400000000000000000000106631265347643000264460ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import persistence from taskcoachlib.domain import date class VCalendarParserTest(test.TestCase): # pylint: disable=W0511 def setUp(self): self.parser = persistence.icalendar.ical.VCalendarParser() def testEmptyVCalender(self): self.parser.parse(['BEGIN:VCALENDAR', 'END:VCALENDAR']) self.failIf(self.parser.tasks) def testEmptyVTodo(self): self.parser.parse(['BEGIN:VTODO', 'END:VTODO']) self.assertEqual(dict(status=0, plannedStartDateTime=date.DateTime()), self.parser.tasks[0]) def testSubject(self): self.parser.parse(['BEGIN:VTODO', 'SUBJECT:Test', 'END:VTODO']) self.assertEqual(dict(status=0, subject='Test', plannedStartDateTime=date.DateTime()), self.parser.tasks[0]) def testDueDate(self): self.parser.parse(['BEGIN:VTODO', 'DUE:20100101T120000', 'END:VTODO']) self.assertEqual(dict(status=0, dueDateTime=date.DateTime(2010, 1, 1, 12, 0, 0), plannedStartDateTime=date.DateTime()), self.parser.tasks[0]) def testPercentageComplete(self): self.parser.parse(['BEGIN:VTODO', 'PERCENT-COMPLETE:56', 'END:VTODO']) self.assertEqual(dict(status=0, percentageComplete=56, plannedStartDateTime=date.DateTime()), self.parser.tasks[0]) def testCreationDateTime(self): self.parser.parse(['BEGIN:VTODO', 'CREATED:20100101T120000', 'END:VTODO']) self.assertEqual(dict(status=0, creationDateTime=date.DateTime(2010, 1, 1, 12, 0, 0), plannedStartDateTime=date.DateTime()), self.parser.tasks[0]) def testModificationDateTime(self): self.parser.parse(['BEGIN:VTODO', 'LAST-MODIFIED:20100101T120000', 'END:VTODO']) self.assertEqual(dict(status=0, modificationDateTime=date.DateTime(2010, 1, 1, 12, 0, 0), plannedStartDateTime=date.DateTime()), self.parser.tasks[0]) class VNoteParserTest(test.TestCase): def setUp(self): self.parser = persistence.icalendar.ical.VNoteParser() def testEmptyVCalendar(self): self.parser.parse(['BEGIN:VCALENDAR', 'END:VCALENDAR']) self.failIf(self.parser.notes) def testEmptyVNote(self): self.parser.parse(['BEGIN:VNOTE', 'END:VNOTE']) self.assertEqual(dict(status=0, subject=''), self.parser.notes[0]) def testSubject(self): self.parser.parse(['BEGIN:VNOTE', 'SUMMARY:Subject', 'END:VNOTE']) self.assertEqual(dict(status=0, subject='Subject'), self.parser.notes[0]) def testCreationDateTime(self): self.parser.parse(['BEGIN:VNOTE', 'CREATED:20100101T120000', 'END:VNOTE']) self.assertEqual(dict(status=0, subject='', creationDateTime=date.DateTime(2010, 1, 1, 12, 0, 0)), self.parser.notes[0]) def testModificationDateTime(self): self.parser.parse(['BEGIN:VNOTE', 'LAST-MODIFIED:20100101T120000', 'END:VNOTE']) self.assertEqual(dict(status=0, subject='', modificationDateTime=date.DateTime(2010, 1, 1, 12, 0, 0)), self.parser.notes[0]) taskcoach-1.4.3/tests/unittests/persistenceTests/VCalendarWriterTest.py000066400000000000000000000235331265347643000265200ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, StringIO, time from taskcoachlib import persistence, gui, config, meta from taskcoachlib.domain import task, effort, date class UTF8StringIO(StringIO.StringIO): """ Mimic codecs.open; encodes on the fly in UTF-8 """ def write(self, u): StringIO.StringIO.write(self, u.encode('UTF-8')) class VCalTestCase(test.wxTestCase): selectionOnly = 'Subclass responsibility' def setUp(self): super(VCalTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.fd = UTF8StringIO() self.writer = persistence.iCalendarWriter(self.fd) self.taskFile = persistence.TaskFile() def tearDown(self): super(VCalTestCase, self).tearDown() self.taskFile.close() self.taskFile.stop() def writeAndRead(self): self.writer.write(self.viewer, self.settings, self.selectionOnly) return self.fd.getvalue().decode('utf-8') def selectItems(self, items): self.viewer.select(items) def numberOfSelectedItems(self): return len(self.viewer.curselection()) def numberOfVisibleItems(self): return self.viewer.size() class VCalendarCommonTestsMixin(object): def testStart(self): self.assertEqual('BEGIN:VCALENDAR', self.vcalFile.split('\r\n')[0]) def testVersion(self): self.assertEqual('VERSION:2.0', self.vcalFile.split('\r\n')[1]) def testProdId(self): domain = meta.url[len('http://'):-1] self.assertEqual('PRODID:-//%s//NONSGML %s V%s//EN'%(domain, meta.name, meta.version), self.vcalFile.split('\r\n')[2]) def testEnd(self): self.assertEqual('END:VCALENDAR', self.vcalFile.split('\r\n')[-2]) class VCalEffortWriterTestCase(VCalTestCase): def setUp(self): super(VCalEffortWriterTestCase, self).setUp() self.task1 = task.Task(u'Task 1') self.effort1 = effort.Effort(self.task1, description=u'Description', start=date.DateTime(2000,1,1,1,1,1), stop=date.DateTime(2000,2,2,2,2,2)) self.effort2 = effort.Effort(self.task1) self.task1.addEffort(self.effort1) self.task1.addEffort(self.effort2) self.taskFile.tasks().extend([self.task1]) self.viewer = gui.viewer.EffortViewer(self.frame, self.taskFile, self.settings) self.viewer.widget.select([self.effort1]) self.viewer.updateSelection() self.vcalFile = self.writeAndRead() class VCalEffortCommonTestsMixin(VCalendarCommonTestsMixin): def testBeginVEvent(self): self.assertEqual(self.expectedNumberOfItems(), self.vcalFile.count('BEGIN:VEVENT')) def testEndVEvent(self): self.assertEqual(self.expectedNumberOfItems(), self.vcalFile.count('END:VEVENT')) def testEffortSubject(self): self.failUnless(u'SUMMARY:Task 1' in self.vcalFile) def testEffortDescription(self): self.failUnless(u'DESCRIPTION:Description' in self.vcalFile) def testEffortStart(self): startLocal = date.DateTime(2000, 1, 1, 1, 1, 1) startUTC = startLocal.utcfromtimestamp(time.mktime(startLocal.timetuple())) self.failUnless('DTSTART:%04d%02d%02dT%02d%02d%02dZ' % (startUTC.year, startUTC.month, startUTC.day, startUTC.hour, startUTC.minute, startUTC.second)) def testEffortEnd(self): endLocal = date.DateTime(2000, 2, 2, 2, 2, 2) endUTC = endLocal.utcfromtimestamp(time.mktime(endLocal.timetuple())) self.failUnless('DTEND:%04d%02d%02dT%02d%02d%02dZ' % (endUTC.year, endUTC.month, endUTC.day, endUTC.hour, endUTC.minute, endUTC.second)) def testEffortId(self): self.failUnless('UID:%s'%self.effort1.id() in self.vcalFile) class VCalEffortWriterTest(VCalEffortWriterTestCase, VCalEffortCommonTestsMixin): selectionOnly = False def expectedNumberOfItems(self): return self.numberOfVisibleItems() class VCalEffortWriterSelectionOnlyTest(VCalEffortWriterTestCase, VCalEffortCommonTestsMixin): selectionOnly = True def expectedNumberOfItems(self): return self.numberOfSelectedItems() class VCalTaskWriterTestCase(VCalTestCase): treeMode = 'Subclass responsibility' def setUp(self): super(VCalTaskWriterTestCase, self).setUp() self.task1 = task.Task(u'Task subject 1', description='Task description 1', percentageComplete=56, creationDateTime=date.DateTime.min) self.task2 = task.Task(u'Task subject 2黑', description=u'Task description 2\nwith newline\n微软雅黑', modificationDateTime=date.DateTime(2012, 1, 1)) self.taskFile.tasks().extend([self.task1, self.task2]) self.settings.set('taskviewer', 'treemode', self.treeMode) self.viewer = gui.viewer.TaskViewer(self.frame, self.taskFile, self.settings) self.selectItems([self.task2]) self.vcalFile = self.writeAndRead() class VCalTaskCommonTestsMixin(VCalendarCommonTestsMixin): def testTaskSubject(self): self.failUnless(u'SUMMARY:Task subject 2' in self.vcalFile) def testTaskDescription(self): self.failUnless(u'DESCRIPTION:Task description 2\r\n with newline\r\n 微软雅黑' in self.vcalFile, self.vcalFile) def testNumber(self): self.assertEqual(self.expectedNumberOfItems(), self.vcalFile.count('BEGIN:VTODO')) # pylint: disable=W0511 def testTaskId(self): self.failUnless('UID:%s' % self.task2.id() in self.vcalFile) def testCreationDateTime(self): creation_datetime = persistence.icalendar.ical.fmtDateTime(self.task2.creationDateTime()) self.failUnless('CREATED:%s' % creation_datetime in self.vcalFile) def testMissingCreationDateTime(self): self.assertEqual(1, self.vcalFile.count('CREATED:')) def testModificationDateTime(self): modification_datetime = persistence.icalendar.ical.fmtDateTime(date.DateTime(2012, 1, 1)) self.failUnless('LAST-MODIFIED:%s' % modification_datetime in self.vcalFile) def testMissingModificationDateTime(self): self.assertEqual(1, self.vcalFile.count('LAST-MODIFIED')) class TestSelectionOnlyMixin(VCalTaskCommonTestsMixin): selectionOnly = True def expectedNumberOfItems(self): return self.numberOfSelectedItems() class TestSelectionList(TestSelectionOnlyMixin, VCalTaskWriterTestCase): treeMode = 'False' class TestSelectionTree(TestSelectionOnlyMixin, VCalTaskWriterTestCase): treeMode = 'True' class TestNotSelectionOnlyMixin(VCalTaskCommonTestsMixin): selectionOnly = False def expectedNumberOfItems(self): return self.numberOfVisibleItems() def testPercentageComplete(self): self.failUnless('PERCENT-COMPLETE:56' in self.vcalFile) class TestNotSelectionList(TestNotSelectionOnlyMixin, VCalTaskWriterTestCase): treeMode = 'False' class TestNotSelectionTree(TestNotSelectionOnlyMixin, VCalTaskWriterTestCase): treeMode = 'True' class FoldTest(test.TestCase): def setUp(self): super(FoldTest, self).setUp() self.fold = persistence.icalendar.ical.fold def testEmptyText(self): self.assertEqual('', self.fold([])) def testDontFoldAShortLine(self): self.assertEqual('Short line\r\n', self.fold(['Short line'])) def testFoldALongLine(self): self.assertEqual('Long \r\n line\r\n', self.fold(['Long line'], linewidth=5)) def testFoldAReallyLongLine(self): self.assertEqual('Long\r\n li\r\n ne\r\n', self.fold(['Long line'], linewidth=4)) def testFoldTwoShortLines(self): self.assertEqual('Short line\r\n'*2, self.fold(['Short line']*2)) def testFoldTwoLongLines(self): self.assertEqual('Long \r\n line\r\n'*2, self.fold(['Long line']*2, linewidth=5)) def testFoldALineWithNewLines(self): self.assertEqual('Line 1\r\n Line 2\r\n', self.fold(['Line 1\nLine 2'])) taskcoach-1.4.3/tests/unittests/persistenceTests/XMLReaderTest.py000077500000000000000000001773441265347643000252640ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import xml.parsers.expat import wx import StringIO import os import tempfile import base64 import test from taskcoachlib import persistence, config, operating_system from taskcoachlib.domain import date, task class XMLTemplateReaderTestCase(test.TestCase): def convert(self, old_format, now=date.Now): return persistence.TemplateXMLReader.convert_old_format(old_format, now) def testConvertNow(self): self.assertEqual('now', self.convert('Now()')) def testConvertToday(self): self.assertEqual('00:00 AM today', self.convert('Today()')) def testConvertTomorrow(self): self.assertEqual('11:59 PM tomorrow', self.convert('Tomorrow()')) def testConvertEndOfDay(self): self.assertEqual('11:59 PM today', self.convert('Now().endOfDay()')) def testConvertTomorrow2(self): self.assertEqual('11:59 PM tomorrow', self.convert('Now().endOfDay() + oneDay')) def testConvertNowAndPositiveTimeDelta(self): self.assertEqual('%d minutes from now' % date.TimeDelta(2, 1861, 0).minutes(), self.convert('Now() + TimeDelta(2, 1861, 0)')) def testConvertNowAndNegativeTimeDelta(self): self.assertEqual('%d minutes ago' % date.TimeDelta(2, 1861, 0).minutes(), self.convert('Now() - TimeDelta(2, 1861, 0)')) def testConvertTodayAndPositiveTimeDelta(self): now = date.Now() expectedDate = date.Now() + date.TimeDelta(17) expectedDateTime = date.DateTime(expectedDate.year, expectedDate.month, expectedDate.day) expectedMinutes = (expectedDateTime - now).minutes() actualMinutes = int(self.convert('Today() + TimeDelta(17)').split(' ')[0]) self.failUnless(abs(actualMinutes - expectedMinutes) <= 1) def testConvertTodayAndZeroTimeDelta(self): now = date.Now() expectedMinutes = (now - now.startOfDay()).minutes() actualMinutes = int(self.convert('Today() + TimeDelta(0)').split(' ')[0]) self.failUnless(abs(actualMinutes - expectedMinutes) <= 1) class XMLReaderTestCase(test.TestCase): tskversion = 'Subclass responsibility' def setUp(self): super(XMLReaderTestCase, self).setUp() task.Task.settings = config.Settings(load=False) def writeAndRead(self, xml_contents): # pylint: disable=W0201 self.fd = StringIO.StringIO() self.fd.name = 'testfile.tsk' self.reader = persistence.XMLReader(self.fd) all_xml = '\n' % self.tskversion + xml_contents self.fd.write(all_xml) self.fd.seek(0) return self.reader.read() def writeAndReadTasks(self, xml_contents): return self.writeAndRead(xml_contents)[0] def writeAndReadCategories(self, xml_contents): return self.writeAndRead(xml_contents)[1] def writeAndReadNotes(self, xml_contents): return self.writeAndRead(xml_contents)[2] def writeAndReadSyncMLConfig(self, xml_contents): return self.writeAndRead(xml_contents)[3] def writeAndReadGUID(self, xml_contents): return self.writeAndRead(xml_contents)[5] def writeAndReadTasksAndCategories(self, xml_contents): tasks, categories, _, _, _, _ = self.writeAndRead(xml_contents) return tasks, categories def writeAndReadTasksAndCategoriesAndNotes(self, xml_contents): tasks, categories, notes, _, _, _ = self.writeAndRead(xml_contents) return tasks, categories, notes def writeAndReadCategoriesAndNotes(self, xml_contents): _, categories, notes, _, _, _ = self.writeAndRead(xml_contents) return categories, notes class TempFileLockTest(XMLReaderTestCase): tskversion = 25 def setUp(self): self.oldMkstemp = tempfile.mkstemp def newMkstemp(*args, **kwargs): # pragma: no cover handle, name = self.oldMkstemp(*args, **kwargs) self.__filename = name # pylint: disable=W0201 return handle, name tempfile.mkstemp = newMkstemp super(TempFileLockTest, self).setUp() def tearDown(self): tempfile.mkstemp = self.oldMkstemp super(TempFileLockTest, self).tearDown() def testLock(self): if os.name == 'nt': # pragma: no cover self.writeAndReadTasks(\ '\n\n' '\n' '%s\n' '\n\n\n' % base64.encodestring('Data')) try: os.remove(self.__filename) os.remove(self.__filename + '.delta') except: pass # pylint: disable=W0702 self.assert_(os.path.exists(self.__filename)) class XMLReaderVersion6Test(XMLReaderTestCase): tskversion = 6 def testDescription(self): tasks = self.writeAndReadTasks(''' \n''' % u'Description') self.assertEqual(u'Description', tasks[0].description()) def testEffortDescription(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual('Yo', tasks[0].efforts()[0].description()) class XMLReaderVersion8Test(XMLReaderTestCase): tskversion = 8 def testReadTaskWithoutPriority(self): tasks = self.writeAndReadTasks('') self.assertEqual(0, tasks[0].priority()) class XMLReaderVersion9Test(XMLReaderTestCase): tskversion = 9 def testReadTaskWithoutId(self): tasks = self.writeAndReadTasks('') self.failUnless(tasks[0].id()) class XMLReaderVersion10Test(XMLReaderTestCase): tskversion = 10 def testReadTaskWithoutFee(self): tasks = self.writeAndReadTasks('') self.assertEqual(0, tasks[0].hourlyFee()) self.assertEqual(0, tasks[0].fixedFee()) class XMLReaderVersion11Test(XMLReaderTestCase): tskversion = 11 def testReadTaskWithoutReminder(self): tasks = self.writeAndReadTasks('') self.assertEqual(date.DateTime(), tasks[0].reminder()) class XMLReaderVersion12Test(XMLReaderTestCase): tskversion = 12 def testReadTaskWithoutMarkCompletedWhenAllChildrenCompletedSetting(self): tasks = self.writeAndReadTasks('') self.assertEqual(None, tasks[0].shouldMarkCompletedWhenAllChildrenCompleted()) class XMLReaderVersion13Test(XMLReaderTestCase): tskversion = 13 def testOneCategory(self): tasks, categories = self.writeAndReadTasksAndCategories(''' test ''') self.assertEqual('test', categories[0].subject()) self.assertEqual(set([tasks[0]]), categories[0].categorizables()) self.assertEqual(set([categories[0]]), tasks[0].categories()) def testMultipleCategories(self): tasks, categories = self.writeAndReadTasksAndCategories(''' test another yetanother ''') for category in categories: self.assertEqual(set([tasks[0]]), category.categorizables()) self.failUnless(category in tasks[0].categories()) def testSubTaskWithCategories(self): tasks, categories = self.writeAndReadTasksAndCategories(''' test another ''') testCategory = categories[0] anotherCategory = categories[1] self.assertEqual("1", list(testCategory.categorizables())[0].id()) self.assertEqual("1.1", list(anotherCategory.categorizables())[0].id()) self.assertEqual(set([testCategory]), tasks[0].categories()) self.assertEqual(set([anotherCategory]), tasks[0].children()[0].categories()) class XMLReaderVersion14Test(XMLReaderTestCase): tskversion = 14 def testEffortWithMilliseconds(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(1, len(tasks[0].efforts())) self.assertEqual(date.TimeDelta(minutes=30), tasks[0].timeSpent()) self.assertEqual(tasks[0], tasks[0].efforts()[0].task()) class XMLReaderVersion16Text(XMLReaderTestCase): tskversion = 16 def testOneAttachmentCompat(self): tasks = self.writeAndReadTasks(''' whatever.tsk ''') self.assertEqual(['whatever.tsk'], [att.location() for att in tasks[0].attachments()]) self.assertEqual(['whatever.tsk'], [att.subject() for att in tasks[0].attachments()]) def testTwoAttachmentsCompat(self): tasks = self.writeAndReadTasks(''' whatever.tsk another.txt ''') self.assertEqual(['whatever.tsk', 'another.txt'], [att.location() for att in tasks[0].attachments()]) self.assertEqual(['whatever.tsk', 'another.txt'], [att.subject() for att in tasks[0].attachments()]) def testOneAttachment(self): tasks = self.writeAndReadTasks(''' FILE:whatever.tsk ''') self.assertEqual(['whatever.tsk'], [att.location() for att in tasks[0].attachments()]) self.assertEqual(['whatever.tsk'], [att.subject() for att in tasks[0].attachments()]) def testTwoAttachments(self): tasks = self.writeAndReadTasks(''' FILE:whatever.tsk FILE:another.txt ''') self.assertEqual(['whatever.tsk', 'another.txt'], [att.location() for att in tasks[0].attachments()]) self.assertEqual(['whatever.tsk', 'another.txt'], [att.subject() for att in tasks[0].attachments()]) # There's no XMLReaderVersion17Test because the only difference between version # 17 and 18 is the addition of an optional color attribute to categories in # version 18. So the tests for version 18 test version 17 as well. class XMLReaderVersion18Test(XMLReaderTestCase): tskversion = 18 def testLastModificationTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(1, len(tasks)) # Ignore lastModificationTime class XMLReaderVersion19Test(XMLReaderTestCase): tskversion = 19 # New in release 0.69.0? def testDailyRecurrence(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual('daily', tasks[0].recurrence().unit) def testWeeklyRecurrence(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual('weekly', tasks[0].recurrence().unit) def testMonthlyRecurrence(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual('monthly', tasks[0].recurrence().unit) def testRecurrenceCount(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(10, tasks[0].recurrence().count) def testMaxRecurrenceCount(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(10, tasks[0].recurrence().max) def testRecurrenceFrequency(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(3, tasks[0].recurrence().amount) class XMLReaderVersion20Test(XMLReaderTestCase): tskversion = 20 # New in release 0.71.0 def testReadEmptyStream(self): reader = persistence.XMLReader(StringIO.StringIO()) try: reader.read() self.fail('Expected ExpatError or ParseError') # pragma: no cover except xml.parsers.expat.ExpatError: pass # pragma: no cover except xml.etree.ElementTree.ParseError: pass # pragma: no cover def testNoTasksAndNoCategories(self): tasks, categories, notes = self.writeAndReadTasksAndCategoriesAndNotes('\n') self.assertEqual(([], [], []), (tasks, categories, notes)) def testOneTask(self): tasks = self.writeAndReadTasks('\n') self.assertEqual(1, len(tasks)) self.assertEqual('', tasks[0].subject()) def testTwoTasks(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(2, len(tasks)) self.assertEqual('1', tasks[0].subject()) self.assertEqual('2', tasks[1].subject()) def testOneTask_Subject(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual('Yo', tasks[0].subject()) def testOneTask_UnicodeSubject(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual('???', tasks[0].subject()) def testBudget(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.TimeDelta(hours=4, minutes=10, seconds=10), tasks[0].budget()) def testBudget_NoBudget(self): tasks = self.writeAndReadTasks('\n') self.assertEqual(date.TimeDelta(), tasks[0].budget()) def testDescription(self): description = u'Description\nline 2' tasks = self.writeAndReadTasks(''' %s \n''' % description) self.assertEqual(description, tasks[0].description()) def testNoChildren(self): tasks = self.writeAndReadTasks('\n') self.failIf((tasks[0].children())) def testChild(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(1, len(tasks[0].children())) self.assertEqual(1, len(tasks)) def testChildren(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(2, len(tasks[0].children())) self.assertEqual(1, len(tasks)) def testGrandchild(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(1, len(tasks)) parent = tasks[0] self.assertEqual(1, len(parent.children())) self.assertEqual(1, len(parent.children()[0].children())) def testEffort(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(1, len(tasks[0].efforts())) self.assertEqual(date.TimeDelta(minutes=30), tasks[0].timeSpent()) self.assertEqual(tasks[0], tasks[0].efforts()[0].task()) def testChildEffort(self): tasks = self.writeAndReadTasks(''' ''') child = tasks[0].children()[0] self.assertEqual(1, len(child.efforts())) self.assertEqual(date.TimeDelta(minutes=30), child.timeSpent()) self.assertEqual(child, child.efforts()[0].task()) def testEffortDescription(self): description = u'Description\nLine 2' tasks = self.writeAndReadTasks(''' %s ''' % description) self.assertEqual(description, tasks[0].efforts()[0].description()) def testActiveEffort(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(1, len(tasks[0].efforts())) self.failUnless(tasks[0].isBeingTracked()) def testPriority(self): tasks = self.writeAndReadTasks('') self.assertEqual(5, tasks[0].priority()) def testTaskId(self): tasks = self.writeAndReadTasks('') self.assertEqual('xyz', tasks[0].id()) def testTaskColor(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(wx.RED, tasks[0].backgroundColor()) def testHourlyFee(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(100, tasks[0].hourlyFee()) self.assertEqual(5.5, tasks[1].hourlyFee()) def testFixedFee(self): tasks = self.writeAndReadTasks('') self.assertEqual(240.5, tasks[0].fixedFee()) def testNoReminder(self): tasks = self.writeAndReadTasks('') self.assertEqual(date.DateTime(), tasks[0].reminder()) def testReminder(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2004, 1, 1, 10, 0, 0, 0), tasks[0].reminder()) def testMarkCompletedWhenAllChildrenCompletedSetting_True(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(True, tasks[0].shouldMarkCompletedWhenAllChildrenCompleted()) def testMarkCompletedWhenAllChildrenCompletedSetting_False(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(False, tasks[0].shouldMarkCompletedWhenAllChildrenCompleted()) def testMarkCompletedWhenAllChildrenCompletedSetting_None(self): tasks = self.writeAndReadTasks('') self.assertEqual(None, tasks[0].shouldMarkCompletedWhenAllChildrenCompleted()) def testTaskWithoutAttachments(self): tasks = self.writeAndReadTasks('') self.assertEqual([], tasks[0].attachments()) def testNoteWithoutAttachments(self): notes = self.writeAndReadNotes('') self.assertEqual([], notes[0].attachments()) def testCategoryWithoutAttachments(self): categories = self.writeAndReadCategories('') self.assertEqual([], categories[0].attachments()) def testTaskWithOneAttachment(self): tasks = self.writeAndReadTasks(''' whatever.tsk whateverdata.tsk ''') self.assertEqual([os.path.join(os.getcwd(), 'testfile_attachments', 'whateverdata.tsk')], [att.location() for att in tasks[0].attachments()]) self.assertEqual(['whatever.tsk'], [att.subject() for att in tasks[0].attachments()]) def testNoteWithOneAttachment(self): notes = self.writeAndReadNotes(''' whatever.tsk whateverdata.tsk ''') self.assertEqual([os.path.join(os.getcwd(), 'testfile_attachments', 'whateverdata.tsk')], [att.location() for att in notes[0].attachments()]) self.assertEqual(['whatever.tsk'], [att.subject() for att in notes[0].attachments()]) def testCategoryWithOneAttachment(self): categories = self.writeAndReadCategories(''' whatever.tsk whateverdata.tsk ''') self.assertEqual([os.path.join(os.getcwd(), 'testfile_attachments', 'whateverdata.tsk')], [att.location() for att in categories[0].attachments()]) self.assertEqual(['whatever.tsk'], [att.subject() for att in categories[0].attachments()]) def testTaskWithTwoAttachments(self): tasks = self.writeAndReadTasks(''' whatever.tsk whateverdata.tsk another.txt anotherdata.txt ''') self.assertEqual([os.path.join(os.getcwd(), 'testfile_attachments', 'whateverdata.tsk'), os.path.join(os.getcwd(), 'testfile_attachments', 'anotherdata.txt')], [att.location() for att in tasks[0].attachments()]) self.assertEqual(['whatever.tsk', 'another.txt'], [att.subject() for att in tasks[0].attachments()]) def testOneCategory(self): categories = self.writeAndReadCategories('') self.assertEqual('cat', categories[0].subject()) def testTwoCategories(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual(['cat1', 'cat2'], [category.subject() for category in categories]) def testCategoryId(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual('catId', categories[0].id()) def testCategoryWithDescription(self): categories = self.writeAndReadCategories(''' Description ''') self.assertEqual('Description', categories[0].description()) def testCategoryColor(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual(wx.RED, categories[0].backgroundColor()) def testOneTaskWithCategory(self): tasks, categories = self.writeAndReadTasksAndCategories(''' ''') self.assertEqual(set(tasks), categories[0].categorizables()) def testTwoRecursiveCategories(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual('cat1.1', categories[0].children()[0].subject()) def testRecursiveCategoriesNotInResultList(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual(1, len(categories)) def testRecursiveCategoriesWithTwoTasks(self): tasks, categories = self.writeAndReadTasksAndCategories(''' ''') self.assertEqual(tasks[0], list(categories[0].categorizables())[0]) self.assertEqual(tasks[1], list(categories[0].children()[0].categorizables())[0]) def testSubtaskCategory(self): tasks, categories = self.writeAndReadTasksAndCategories(''' ''') self.assertEqual(tasks[0].children()[0], list(categories[0].categorizables())[0]) def testFilteredCategory(self): categories = self.writeAndReadCategories(''' ''') self.failUnless(categories[0].isFiltered()) def testCategoryWithDeletedTasks(self): ''' There's a bug in release 0.61.5 that causes the task file to contain references to deleted tasks. Ignore these when loading the task file.''' categories = self.writeAndReadCategories(''' ''') self.failIf(categories[0].categorizables()) def testNote(self): notes = self.writeAndReadNotes(''' ''') self.failUnless(notes) def testNoteSubject(self): notes = self.writeAndReadNotes(''' ''') self.assertEqual('Note', notes[0].subject()) def testNoteDescription(self): notes = self.writeAndReadNotes(''' Description ''') self.assertEqual('Description', notes[0].description()) def testNoteChild(self): notes = self.writeAndReadNotes(''' ''') self.assertEqual(1, len(notes[0].children())) def testNoteChildWithAttachment(self): notes = self.writeAndReadNotes(''' whatever.tsk whateverdata.tsk ''') self.assertEqual([os.path.join(os.getcwd(), 'testfile_attachments', 'whateverdata.tsk')], [att.location() for att in notes[0].children()[0].attachments()]) self.assertEqual(['whatever.tsk'], [att.subject() for att in notes[0].children()[0].attachments()]) def testNoteCategory(self): categories, notes = self.writeAndReadCategoriesAndNotes(''' ''') self.assertEqual(notes[0], list(categories[0].categorizables())[0]) def testNoteId(self): notes = self.writeAndReadNotes(''' ''') self.assertEqual('noteId', notes[0].id()) def testNoteColor(self): notes = self.writeAndReadNotes(''' ''') self.assertEqual(wx.RED, notes[0].backgroundColor()) def testNoRecurrence(self): tasks = self.writeAndReadTasks(''' ''') self.failIf(tasks[0].recurrence()) def testDailyRecurrence(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual('daily', tasks[0].recurrence().unit) def testWeeklyRecurrence(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual('weekly', tasks[0].recurrence().unit) def testRecurrenceAmount(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(2, tasks[0].recurrence().amount) def testRecurrenceMax(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(2, tasks[0].recurrence().max) def testRecurrenceCount(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(2, tasks[0].recurrence().count) def testRecurrenceSameWeekday(self): tasks = self.writeAndReadTasks(''' ''') self.failUnless(tasks[0].recurrence().sameWeekday) def testTaskWithNote(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(1, len(tasks[0].notes())) def testTaskWithNotes(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(2, len(tasks[0].notes())) def testTaskWithNestedNotes(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(1, len(tasks[0].notes()[0].children())) def testTaskNotesDontGetAddedToOverallNotesList(self): notes = self.writeAndReadNotes(''' ''') self.failIf(notes) def testCategoryWithNote(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual(1, len(categories[0].notes())) def testCategoryWithNotes(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual(2, len(categories[0].notes())) def testCategoryWithNestedNotes(self): categories = self.writeAndReadCategories(''' ''') self.assertEqual(1, len(categories[0].notes()[0].children())) def testCategoryNotesDontGetAddedToOverallNotesList(self): notes = self.writeAndReadNotes(''' ''') self.failIf(notes) def testTaskExpansion(self): tasks = self.writeAndReadTasks(''' ''') self.failUnless(tasks[0].isExpanded()) def testTaskExpansion_MultipleContexts(self): tasks = self.writeAndReadTasks(''' ''') self.failUnless(tasks[0].isExpanded(context='Test')) def testCategoryExpansion(self): categories = self.writeAndReadCategories(''' ''') self.failUnless(categories[0].isExpanded()) def testNoteExpansion(self): notes = self.writeAndReadNotes(''' ''') self.failUnless(notes[0].isExpanded()) class XMLReaderVersion21Test(XMLReaderTestCase): tskversion = 21 # New in release 0.71.0 def testAttachmentLocation(self): categories = self.writeAndReadCategories(''' description ''') self.assertEqual(['location'], [os.path.split(att.location())[-1] for att in categories[0].attachments()]) class XMLReaderVersion22Test(XMLReaderTestCase): tskversion = 22 def testStatus(self): tasks = self.writeAndReadTasks(\ '') self.assertEqual(2, tasks[0].getStatus()) class XMLReaderVersion23Test(XMLReaderTestCase): tskversion = 23 def testDescription(self): tasks = self.writeAndReadTasks(\ '' '\nDescription\n' '') self.assertEqual('\nDescription\n', tasks[0].description()) def testAttachmentData(self): tasks = self.writeAndReadTasks(\ '\n\n' '\n' '%s\n' '\n\n\n' % base64.encodestring('Data')) self.assertEqual('Data', tasks[0].attachments()[0].data()) def testGUID(self): guid = self.writeAndReadGUID('GUID') self.assertEqual('GUID', guid) def testSyncMLConfig(self): syncmlConfig = self.writeAndReadSyncMLConfig('value') self.assertEqual('value', syncmlConfig.get('name')) class XMLReaderVersion24Test(XMLReaderTestCase): tskversion = 24 # New in release 0.72.9 # tskversion 24 introduces newlines so that the XML is not on one long # line anymore. We have to be sure not to introduce new lines in # text nodes though. def testDescription(self): tasks = self.writeAndReadTasks(\ '\n\n' '\nDescription\n\n' '\n\n') self.assertEqual('Description', tasks[0].description()) def testAttachmentData(self): tasks = self.writeAndReadTasks(\ '\n\n' '\n' '\n%s\n\n' '\n\n\n' % base64.encodestring('Data')) self.assertEqual('Data', tasks[0].attachments()[0].data()) def testGUID(self): guid = self.writeAndReadGUID('\n\nGUID\n\n') self.assertEqual('GUID', guid) def testSyncMLConfig(self): syncmlConfig = self.writeAndReadSyncMLConfig(\ '\n\n' '\nvalue\n\n' '\n\n') self.assertEqual('value', syncmlConfig.get('name')) def testSyncMLConfigWithNewLinesInXMLNodes(self): ''' Release 0.72.9 (and earlier?) had a bug where tags in the syncml config information would be split across multiple lines. Fixed in release 0.72.10. ''' expectedGUID = '0000011d209a4b6c3f9f7c32000a00b100240032' actualGUID = self.writeAndReadGUID(\ '\n\n' '0000011d209a4b6c3f9f7c32000a00b100240032\n' '') self.assertEqual(expectedGUID, actualGUID) class XMLReaderVersion26Test(XMLReaderTestCase): tskversion = 26 # New in release 0.75.0 # Release 0.75.0 introduces percentage complete for tasks def testPercentageComplete(self): tasks = self.writeAndReadTasks(\ '\n\n' '\n') self.assertEqual(50, tasks[0].percentageComplete()) class XMLReaderVersion27Test(XMLReaderTestCase): tskversion = 27 # New in release 0.76.0 # Release 0.76.0 introduces exclusive subcategories def testExclusiveSubcategories(self): categories = self.writeAndReadCategories(\ '\n' '\n' '\n') self.failUnless(categories[0].hasExclusiveSubcategories()) def testNoExclusiveSubcategoriesByDefault(self): categories = self.writeAndReadCategories(\ '\n' '\n' '\n') self.failIf(categories[0].hasExclusiveSubcategories()) class XMLReaderVersion28Test(XMLReaderTestCase): tskversion = 28 # New in release 0.78.0 # Release 0.78.0 introduces foreground colors and fonts that can be set per object. def testTaskForegroundColor(self): tasks = self.writeAndReadTasks(\ '\n\n' '\n') self.assertEqual(wx.RED, tasks[0].foregroundColor()) def testTaskBackgroundColor(self): tasks = self.writeAndReadTasks(\ '\n\n' '\n') self.assertEqual(wx.RED, tasks[0].backgroundColor()) def testCategoryForegroundColor(self): categories = self.writeAndReadCategories(\ '\n\n' '\n') self.assertEqual(wx.RED, categories[0].foregroundColor()) def testCategoryBackgroundColor(self): categories = self.writeAndReadCategories(\ '\n\n' '\n') self.assertEqual(wx.RED, categories[0].backgroundColor()) def testNoteForegroundColor(self): notes = self.writeAndReadNotes(\ '\n\n' '\n') self.assertEqual(wx.RED, notes[0].foregroundColor()) def testNoteBackgroundColor(self): notes = self.writeAndReadNotes(\ '\n\n' '\n') self.assertEqual(wx.RED, notes[0].backgroundColor()) def testTaskFont(self): tasks = self.writeAndReadTasks(\ '\n\n' '\n' % wx.NORMAL_FONT.GetNativeFontInfoDesc()) self.assertEqual(wx.NORMAL_FONT, tasks[0].font()) def testNoTaskFont(self): tasks = self.writeAndReadTasks(\ '\n\n\n') self.assertEqual(None, tasks[0].font()) def testCategoryFont(self): categories = self.writeAndReadCategories(\ '\n\n' '\n' % wx.NORMAL_FONT.GetNativeFontInfoDesc()) self.assertEqual(wx.NORMAL_FONT, categories[0].font()) def testNoteFont(self): notes = self.writeAndReadNotes(\ '\n\n' '\n' % wx.NORMAL_FONT.GetNativeFontInfoDesc()) self.assertEqual(wx.NORMAL_FONT, notes[0].font()) def testAttachmentFont(self): tasks = self.writeAndReadTasks(\ '\n\n' '\n' '\n\n' % wx.NORMAL_FONT.GetNativeFontInfoDesc()) self.assertEqual(wx.NORMAL_FONT, tasks[0].attachments()[0].font()) class XMLReaderVersion29Test(XMLReaderTestCase): tskversion = 29 def testEffortNewId(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual('foobar', tasks[0].efforts()[0].id()) def testTaskIcon(self): tasks = self.writeAndReadTasks('') self.assertEqual('icon', tasks[0].icon()) def testSelectedTaskIcon(self): tasks = self.writeAndReadTasks('') self.assertEqual('icon', tasks[0].selectedIcon()) def testNoteIcon(self): notes = self.writeAndReadNotes('') self.assertEqual('icon', notes[0].icon()) def testSelectedNoteIcon(self): notes = self.writeAndReadNotes('') self.assertEqual('icon', notes[0].selectedIcon()) def testCategoryIcon(self): categories = self.writeAndReadCategories('') self.assertEqual('icon', categories[0].icon()) def testSelectedCategoryIcon(self): categories = self.writeAndReadCategories('') self.assertEqual('icon', categories[0].selectedIcon()) def testAttachmentIcon(self): tasks = self.writeAndReadTasks(\ '' '' '') self.assertEqual('icon', tasks[0].attachments()[0].icon()) def testSelectedAttachmentIcon(self): tasks = self.writeAndReadTasks(\ '' '' '') self.assertEqual('icon', tasks[0].attachments()[0].selectedIcon()) class XMLReaderVersion30Test(XMLReaderTestCase): tskversion = 30 # New in release 1.1.0. def testStartDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17, 10, 5, 11), tasks[0].plannedStartDateTime()) def testStartDateTimeWithoutTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17), tasks[0].plannedStartDateTime()) def testNoStartDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(), tasks[0].plannedStartDateTime()) def testStartDateTimeWithMicroseconds(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 1, 1, 22, 1, 30, 456), tasks[0].plannedStartDateTime()) def testDueDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17, 13, 5, 59), tasks[0].dueDateTime()) def testDueDateTimeWithoutTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17, 23, 59, 59, 999999), tasks[0].dueDateTime()) def testDueDateTimeWithoutTimeWhenEndHourIs24(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17, 23, 59, 59, 999999), tasks[0].dueDateTime()) def testNoDueDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(), tasks[0].dueDateTime()) def testDueDateTimeWithMicroseconds(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 1, 1, 22, 1, 30, 456000), tasks[0].dueDateTime()) def testCompletionDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 1, 1, 22, 1, 30), tasks[0].completionDateTime()) self.failUnless(tasks[0].completed()) def testCompletionDateTimeWithMicroseconds(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 1, 1, 22, 1, 30, 456000), tasks[0].completionDateTime()) self.failUnless(tasks[0].completed()) def testNoCompletionDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(), tasks[0].completionDateTime()) def testCompletionDateTimeWithoutTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 1, 1, 23, 59, 59, 999999), tasks[0].completionDateTime()) self.failUnless(tasks[0].completed()) def testEmptyFontDescription(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(None, tasks[0].font()) def testHelveticaMacFont(self): tasks = self.writeAndReadTasks(''' \n''') size = tasks[0].font().GetPointSize() if operating_system.isMac(): # pragma: no cover self.assertEqual(11, size) else: # pragma: no cover self.failUnless(size > 0) def testSans9LinuxFont(self): tasks = self.writeAndReadTasks(''' \n''') if operating_system.isMac(): # pragma: no cover self.assertEqual(None, tasks[0].font()) else: # pragma: no cover expectedFontSize = 9 if operating_system.isGTK() else 8 self.assertEqual(expectedFontSize, tasks[0].font().GetPointSize()) class XMLReaderVersion31Test(XMLReaderTestCase): tskversion = 31 # New in release 1.2.0. def writeAndReadTasks(self, *args, **kwargs): tasks = super(XMLReaderVersion31Test, self).writeAndReadTasks(*args, **kwargs) tasksById = dict() def collectIds(tasks): for eachTask in tasks: tasksById[eachTask.id()] = eachTask collectIds(eachTask.children()) collectIds(tasks) return tasksById def assertDepends(self, prerequisite, dependency): self.failUnless(prerequisite in dependency.prerequisites()) self.failUnless(dependency in prerequisite.dependencies()) def testOnePrerequisite(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1'], tasks['2']) def testTwoPrerequisites(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1'], tasks['2']) self.assertDepends(tasks['3'], tasks['2']) def testChainOfPrerequisites(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1'], tasks['2']) self.assertDepends(tasks['2'], tasks['3']) def testSubTaskPrerequisite(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1.1'], tasks['2']) def testInterSubTaskPrerequisite(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1.1'], tasks['1.2']) def testMutualPrerequisites(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1'], tasks['2']) self.assertDepends(tasks['2'], tasks['1']) def testMutualPrerequisiteWithChild(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1'], tasks['1.1']) self.assertDepends(tasks['1.1'], tasks['1']) def testSelfPrerequisite(self): tasks = self.writeAndReadTasks(''' \n''') self.assertDepends(tasks['1'], tasks['1']) class XMLReaderVersion33Test(XMLReaderTestCase): tskversion = 33 # New in release 1.2.24. def testReminderBeforeSnooze(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2004, 1, 1, 9, 0, 0), tasks[0].reminder(includeSnooze=False)) self.assertEqual(date.DateTime(2004, 1, 1, 10, 0, 0), tasks[0].reminder()) def testReminder(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2004, 1, 1, 10, 0, 0), tasks[0].reminder(includeSnooze=False)) self.assertEqual(date.DateTime(2004, 1, 1, 10, 0, 0), tasks[0].reminder()) def testRecurrenceNotBasedOnCompletion(self): tasks = self.writeAndReadTasks(''' ''') self.failIf(tasks[0].recurrence().recurBasedOnCompletion) def testRecurrenceBasedOnCompletion(self): tasks = self.writeAndReadTasks(''' ''') self.failUnless(tasks[0].recurrence().recurBasedOnCompletion) class XMLReaderVersion34Test(XMLReaderTestCase): tskversion = 34 # New in release 1.3.5. def testPlannedStartDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17, 10, 5, 11), tasks[0].plannedStartDateTime()) def testPlannedStartDateTimeWithoutTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17), tasks[0].plannedStartDateTime()) def testNoPlannedStartDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(), tasks[0].plannedStartDateTime()) def testPlannedStartDateTimeWithMicroseconds(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 1, 1, 22, 1, 30, 456), tasks[0].plannedStartDateTime()) def testActualStartDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17, 10, 5, 11), tasks[0].actualStartDateTime()) def testActualStartDateTimeWithoutTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 4, 17), tasks[0].actualStartDateTime()) def testNoActualStartDateTime(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(), tasks[0].actualStartDateTime()) def testActualStartDateTimeWithMicroseconds(self): tasks = self.writeAndReadTasks(''' \n''') self.assertEqual(date.DateTime(2005, 1, 1, 22, 1, 30, 456), tasks[0].actualStartDateTime()) def testTaskWithNoteWithCategory(self): tasks, categories = self.writeAndReadTasksAndCategories(''' \n''') self.assertEqual(list(tasks[0].notes())[0], list(categories[0].categorizables())[0]) class XMLReaderVersion35Test(XMLReaderTestCase): tskversion = 35 # New in release 1.3.19. def testRecurrenceStopDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2000, 1, 10, 13, 13, 13), tasks[0].recurrence().stop_datetime) def testCreationDateTimeIsSetToMinDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime.min, tasks[0].creationDateTime()) class XMLReaderVersion36Test(XMLReaderTestCase): tskversion = 36 # New in release 1.3.21 def testCreationDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2012, 12, 12, 12, 0, 0, 12345), tasks[0].creationDateTime()) class XMLReaderVersion37Test(XMLReaderTestCase): tskversion = 37 # New in release 1.3.23 def testModificationDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2012, 12, 12, 12, 0, 0, 12345), tasks[0].modificationDateTime()) def testModificationDateTimeWithOtherAttributes(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2012, 12, 12, 12, 0, 0, 12345), tasks[0].modificationDateTime()) def testAdjustDueDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2012, 12, 12, 23, 59, 59, 999999), tasks[0].dueDateTime()) def test_dontAdjustPlannedStartDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2012, 12, 12, 23, 59, 0, 0), tasks[0].plannedStartDateTime()) def test_dontAdjustActualStartDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2012, 12, 12, 23, 59, 0, 0), tasks[0].actualStartDateTime()) def test_dontAdjustCompletionDateTime(self): tasks = self.writeAndReadTasks(''' ''') self.assertEqual(date.DateTime(2012, 12, 12, 23, 59, 0, 0), tasks[0].completionDateTime()) def testTaskNoteCategory(self): categories = self.writeAndReadCategories(''' ''') self.assert_('noteid' in [obj.id() for obj in categories[0].categorizables()]) def testSubtaskNoteCategory(self): categories = self.writeAndReadCategories(''' ''') self.assert_('noteid' in [obj.id() for obj in categories[0].categorizables()]) def testCategoryNoteCategory(self): categories = self.writeAndReadCategories(''' ''') self.assert_('noteid' in [obj.id() for obj in categories[0].categorizables()]) def testSubcategoryNoteCategory(self): categories = self.writeAndReadCategories(''' ''') self.assert_('noteid' in [obj.id() for obj in categories[0].categorizables()]) def testTaskAttachmentNoteCategory(self): categories = self.writeAndReadCategories(''' ''') self.assert_('noteid' in [obj.id() for obj in categories[0].categorizables()]) def testSubtaskAttachmentNoteCategory(self): categories = self.writeAndReadCategories(''' ''') self.assert_('noteid' in [obj.id() for obj in categories[0].categorizables()]) taskcoach-1.4.3/tests/unittests/persistenceTests/XMLReaderWriterIntegrationTest.py000077500000000000000000000257531265347643000306610ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import StringIO, wx import test from taskcoachlib import persistence from taskcoachlib import config from taskcoachlib.domain import task, category, effort, date, note, attachment from taskcoachlib.syncml.config import SyncMLConfigNode class IntegrationTestCase(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.fd = StringIO.StringIO() self.fd.name = 'testfile.tsk' self.fd.encoding = 'utf-8' self.reader = persistence.XMLReader(self.fd) self.writer = persistence.XMLWriter(self.fd) self.taskList = task.TaskList() self.categories = category.CategoryList() self.notes = note.NoteContainer() self.syncMLConfig = SyncMLConfigNode('root') self.changes = dict() self.guid = u'GUID' self.fillContainers() tasks, categories, notes, syncMLConfig, changes, guid = self.readAndWrite() self.tasksWrittenAndRead = task.TaskList(tasks) self.categoriesWrittenAndRead = category.CategoryList(categories) self.notesWrittenAndRead = note.NoteContainer(notes) self.syncMLConfigWrittenAndRead = syncMLConfig self.changesWrittenAndRead = changes self.guidWrittenAndRead = guid def fillContainers(self): pass def readAndWrite(self): self.fd.seek(0) self.writer.write(self.taskList, self.categories, self.notes, self.syncMLConfig, self.guid) self.fd.seek(0) return self.reader.read() class IntegrationTest_EmptyList(IntegrationTestCase): def testEmptyTaskList(self): self.assertEqual([], self.tasksWrittenAndRead) def testNoCategories(self): self.assertEqual([], self.categoriesWrittenAndRead) class IntegrationTest(IntegrationTestCase): def fillContainers(self): # pylint: disable=W0201 self.description = 'Description\nLine 2' self.task = task.Task(subject='Subject', description=self.description, plannedStartDateTime=date.Yesterday(), dueDateTime=date.Tomorrow(), actualStartDateTime=date.Now() - date.TimeDelta(hours=4), completionDateTime=date.Yesterday(), budget=date.ONE_HOUR, priority=4, hourlyFee=100.5, fixedFee=1000, recurrence=date.Recurrence('weekly', maximum=10, count=5, amount=2, stop_datetime=date.Now()), reminder=date.DateTime(2004, 1, 1), fgColor=wx.BLUE, bgColor=wx.RED, font=wx.NORMAL_FONT, expandedContexts=['viewer1'], icon='icon', selectedIcon='selectedIcon', percentageComplete=67, shouldMarkCompletedWhenAllChildrenCompleted=True) self.child = task.Task() self.task.addChild(self.child) self.grandChild = task.Task() self.child.addChild(self.grandChild) self.task.addEffort(effort.Effort(self.task, start=date.DateTime(2004, 1, 1), stop=date.DateTime(2004, 1, 2), description=self.description)) self.category = category.Category('test', [self.task], filtered=True, description='Description', exclusiveSubcategories=True) self.categories.append(self.category) # pylint: disable=E1101 self.task.addAttachments(attachment.FileAttachment('/home/frank/whatever.txt')) self.task.addNote(note.Note(subject='Task note')) self.task2 = task.Task('Task 2', priority=-1954) self.taskList.extend([self.task, self.task2]) self.note = note.Note(subject='Note', description='Description', children=[note.Note(subject='Child')]) self.notes.append(self.note) self.category.addCategorizable(self.note) self.task.setModificationDateTime(date.DateTime(2012, 1, 1, 10, 9, 8)) def getTaskWrittenAndRead(self, targetId): # pylint: disable=W0621 return [task for task in self.tasksWrittenAndRead if task.id() == targetId][0] def assertAttributeWrittenAndRead(self, aTask, attribute): taskWrittenAndRead = self.getTaskWrittenAndRead(aTask.id()) self.assertEqual(getattr(aTask, attribute)(), getattr(taskWrittenAndRead, attribute)()) def assertContainedDomainObjectsWrittenAndRead(self, aTask, attribute): taskWrittenAndRead = self.getTaskWrittenAndRead(aTask.id()) self.assertEqual([obj.id() for obj in getattr(aTask, attribute)()], [obj.id() for obj in getattr(taskWrittenAndRead, attribute)()]) def testCreationDateTime(self): self.assertAttributeWrittenAndRead(self.task, 'creationDateTime') def testModificationDateTime(self): self.assertAttributeWrittenAndRead(self.task, 'modificationDateTime') def testSubject(self): self.assertAttributeWrittenAndRead(self.task, 'subject') def testDescription(self): self.assertAttributeWrittenAndRead(self.task, 'description') def testForegroundColor(self): self.assertAttributeWrittenAndRead(self.task, 'foregroundColor') def testBackgroundColor(self): self.assertAttributeWrittenAndRead(self.task, 'backgroundColor') def testFont(self): self.assertAttributeWrittenAndRead(self.task, 'font') def testIcon(self): self.assertAttributeWrittenAndRead(self.task, 'icon') def testExpansionState(self): self.assertAttributeWrittenAndRead(self.task, 'isExpanded') def testPlannedStartDateTime(self): self.assertAttributeWrittenAndRead(self.task, 'plannedStartDateTime') def testDueDateTime(self): self.assertAttributeWrittenAndRead(self.task, 'dueDateTime') def testActualStartDateTime(self): self.assertAttributeWrittenAndRead(self.task, 'actualStartDateTime') def testCompletionDateTime(self): self.assertAttributeWrittenAndRead(self.task, 'completionDateTime') def testPercentageComplete(self): self.assertAttributeWrittenAndRead(self.task, 'percentageComplete') def testBudget(self): self.assertAttributeWrittenAndRead(self.task, 'budget') def testBudget_MoreThan24Hour(self): self.task.setBudget(date.TimeDelta(hours=25)) self.tasksWrittenAndRead = task.TaskList(self.readAndWrite()[0]) self.assertAttributeWrittenAndRead(self.task, 'budget') def testEffort(self): self.assertAttributeWrittenAndRead(self.task, 'timeSpent') def testEffortDescription(self): self.assertEqual(self.task.efforts()[0].description(), self.getTaskWrittenAndRead(self.task.id()).efforts()[0].description()) def testChildren(self): self.assertEqual(len(self.task.children()), len(self.getTaskWrittenAndRead(self.task.id()).children())) def testGrandChildren(self): self.assertEqual(len(self.task.children(recursive=True)), len(self.getTaskWrittenAndRead(self.task.id()).children(recursive=True))) def testCategory(self): categorizables = list(self.categoriesWrittenAndRead)[0].categorizables() categorizableIds = set([item.id() for item in categorizables]) self.assertEqual(set([self.task.id(), self.note.id()]), categorizableIds) def testFilteredCategory(self): self.failUnless(list(self.categoriesWrittenAndRead)[0].isFiltered()) def testExclusiveSubcategories(self): self.failUnless(list(self.categoriesWrittenAndRead)[0].hasExclusiveSubcategories()) def testPriority(self): self.assertAttributeWrittenAndRead(self.task, 'priority') def testNegativePriority(self): self.assertAttributeWrittenAndRead(self.task2, 'priority') def testHourlyFee(self): self.assertAttributeWrittenAndRead(self.task, 'hourlyFee') def testFixedFee(self): self.assertAttributeWrittenAndRead(self.task, 'fixedFee') def testReminder(self): self.assertAttributeWrittenAndRead(self.task, 'reminder') def testNoReminder(self): self.assertAttributeWrittenAndRead(self.task2, 'reminder') def testMarkCompletedWhenAllChildrenCompletedSetting_True(self): self.assertAttributeWrittenAndRead(self.task, 'shouldMarkCompletedWhenAllChildrenCompleted') def testMarkCompletedWhenAllChildrenCompletedSetting_None(self): self.assertAttributeWrittenAndRead(self.task2, 'shouldMarkCompletedWhenAllChildrenCompleted') def testAttachment(self): self.assertAttributeWrittenAndRead(self.task, 'attachments') def testRecurrence(self): self.assertAttributeWrittenAndRead(self.task, 'recurrence') def testNote(self): self.assertEqual(len(self.notes), len(self.notesWrittenAndRead)) def testRootNote(self): self.assertEqual(self.notes.rootItems()[0].subject(), self.notesWrittenAndRead.rootItems()[0].subject()) def testChildNote(self): self.assertEqual(self.notes.rootItems()[0].children()[0].subject(), self.notesWrittenAndRead.rootItems()[0].children()[0].subject()) def testCategoryDescription(self): self.assertEqual(list(self.categories)[0].description(), list(self.categoriesWrittenAndRead)[0].description()) def testNoteId(self): self.assertEqual(self.notes.rootItems()[0].id(), self.notesWrittenAndRead.rootItems()[0].id()) def testCategoryId(self): self.assertEqual(self.category.id(), list(self.categoriesWrittenAndRead)[0].id()) def testNoteWithCategory(self): self.failUnless(self.notesWrittenAndRead.rootItems()[0] in \ list(self.categoriesWrittenAndRead)[0].categorizables()) def testTaskNote(self): self.assertContainedDomainObjectsWrittenAndRead(self.task, 'notes') def testSyncMLConfig(self): self.assertEqual(self.syncMLConfigWrittenAndRead.name, self.syncMLConfig.name) def testGUID(self): self.assertEqual(self.guidWrittenAndRead, self.guid) taskcoach-1.4.3/tests/unittests/persistenceTests/XMLWriterTest.py000077500000000000000000000766411265347643000253340ustar00rootroot00000000000000# -*- coding: utf-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx, StringIO # We cannot use CStringIO since unicode strings are used below. import test from taskcoachlib import persistence, config, meta from taskcoachlib.domain import base, task, effort, date, category, note, attachment from taskcoachlib.syncml.config import SyncMLConfigNode class XMLWriterTest(test.TestCase): def setUp(self): task.Task.settings = config.Settings(load=False) self.fd = StringIO.StringIO() self.fd.name = 'testfile.tsk' self.fd.encoding = 'utf-8' self.writer = persistence.XMLWriter(self.fd) self.task = task.Task() self.taskList = task.TaskList([self.task]) self.category = category.Category('Category') self.categoryContainer = category.CategoryList([self.category]) self.note = note.Note() self.noteContainer = note.NoteContainer([self.note]) self.changes = dict() def __writeAndRead(self): self.writer.write(self.taskList, self.categoryContainer, self.noteContainer, SyncMLConfigNode('root'), u'GUID') return self.fd.getvalue().decode(self.fd.encoding) def expectInXML(self, xmlFragment): xml = self.__writeAndRead() self.failUnless(xmlFragment in xml or \ xmlFragment in xml.replace(''', "'"), '%s not in %s'%(xmlFragment, xml)) def expectNotInXML(self, xmlFragment): xml = self.__writeAndRead() self.failIf(xmlFragment in xml, '%s in %s'%(xmlFragment, xml)) # tests def testVersion(self): self.expectInXML('\nGUID\n') def testTaskSubject(self): self.task.setSubject('Subject') self.expectInXML('subject="Subject"') def testTaskMarkedDeleted(self): self.task.markDeleted() self.expectInXML('status="3"') def testTaskSubjectWithUnicode(self): self.task.setSubject(u'ײַפֿﭖ') self.expectInXML(u'subject="ײַפֿﭖ"') def testTaskDescription(self): self.task.setDescription('Description') self.expectInXML('\nDescription\n\n') def testEmptyTaskDescriptionIsNotWritten(self): self.expectNotInXML('') def testTaskPlannedStartDateTime(self): self.task.setPlannedStartDateTime(date.DateTime(2004,1,1,11,0,0)) self.expectInXML('plannedstartdate="%s"'%str(self.task.plannedStartDateTime())) def testNoPlannedStartDateTime(self): self.task.setPlannedStartDateTime(date.DateTime()) self.expectNotInXML('plannedstartdate=') def testTaskActualStartDateTime(self): self.task.setActualStartDateTime(date.DateTime(2007,12,31,9,0,0)) self.expectInXML('actualstartdate="%s"'%str(self.task.actualStartDateTime())) def testNoActualStartDateTime(self): self.task.setActualStartDateTime(date.DateTime()) self.expectNotInXML('actualstartdate=') def testTaskDueDateTime(self): self.task.setDueDateTime(date.DateTime(2004,1,1,10,5,5)) self.expectInXML('duedate="%s"'%str(self.task.dueDateTime())) def testNoDueDateTime(self): self.expectNotInXML('duedate=') def testTaskCompletionDateTime(self): self.task.setCompletionDateTime(date.DateTime(2004,1,1,10,8,4)) self.expectInXML('completiondate="%s"'%str(self.task.completionDateTime())) def testNoCompletionDateTime(self): self.expectNotInXML('completiondate=') def testChildTask(self): self.task.addChild(task.Task(subject='child')) self.expectInXML('subject="child" />\n\n\n' '\ndescription\nline 2\n\n' ''% \ (taskEffort.id(), taskEffort.getStart(), base.SynchronizedObject.STATUS_NEW, taskEffort.getStop())) def testThatEffortTimesDoNotContainMilliseconds(self): self.task.addEffort(effort.Effort(self.task, date.DateTime(2004,1,1,10,0,0,123456), date.DateTime(2004,1,1,10,0,10,654310))) self.expectInXML('start="2004-01-01 10:00:00"') self.expectInXML('stop="2004-01-01 10:00:10"') def testThatEffortStartAndStopAreNotEqual(self): self.task.addEffort(effort.Effort(self.task, date.DateTime(2004,1,1,10,0,0,123456), date.DateTime(2004,1,1,10,0,0,654310))) self.expectInXML('start="2004-01-01 10:00:00"') self.expectInXML('stop="2004-01-01 10:00:01"') def testEmptyEffortDescriptionIsNotWritten(self): self.task.addEffort(effort.Effort(self.task, date.DateTime(2004,1,1), date.DateTime(2004,1,2))) self.expectNotInXML('') def testActiveEffort(self): self.task.addEffort(effort.Effort(self.task, date.DateTime(2004,1,1))) self.expectInXML(''%(self.task.efforts()[0].id(), self.task.efforts()[0].getStart(), base.SynchronizedObject.STATUS_NEW)) def testNoEffortByDefault(self): self.expectNotInXML('') def testBudget(self): self.task.setBudget(date.ONE_HOUR) self.expectInXML('budget="%s"'%str(self.task.budget())) def testNoBudget(self): self.expectNotInXML('budget') def testBudget_MoreThan24Hour(self): self.task.setBudget(date.TimeDelta(hours=25)) self.expectInXML('budget="25:00:00"') def testOneCategoryWithoutTask(self): aCategory = category.Category('test', id="id") self.categoryContainer.append(aCategory) self.expectInXML('' % aCategory.creationDateTime()) def testOneCategoryWithOneTask(self): self.categoryContainer.append(category.Category('test', [self.task])) self.expectInXML('categorizables="%s"' % self.task.id()) def testTwoCategoriesWithOneTask(self): subjects = ['test', 'another'] expectedResults = [] for subject in subjects: cat = category.Category(subject, [self.task]) self.categoryContainer.append(cat) expectedResults.append('' % (self.task.id(), cat.creationDateTime(), cat.id(), subject)) for expectedResult in expectedResults: self.expectInXML(expectedResult) def testOneCategoryWithSubTask(self): child = task.Task() self.taskList.append(child) self.task.addChild(child) self.categoryContainer.append(category.Category('test', [child])) self.expectInXML('categorizables="%s"' % child.id()) def testSubCategoryWithoutTasks(self): parent = category.Category(subject='parent') child = category.Category(subject='child') parent.addChild(child) self.categoryContainer.extend([parent, child]) self.expectInXML('\n' '\n'%\ (parent.creationDateTime(), parent.id(), child.creationDateTime(), child.id())) def testSubCategoryWithOneTask(self): parent = category.Category(subject='parent') child = category.Category(subject='child', categorizables=[self.task]) parent.addChild(child) self.categoryContainer.extend([parent, child]) self.expectInXML('\n' '\n' '' % (parent.creationDateTime(), parent.id(), self.task.id(), child.creationDateTime(), child.id())) def testFilteredCategory(self): self.categoryContainer.extend([category.Category(subject='test', filtered=True)]) self.expectInXML('filtered="True"') def testCategoryWithDescription(self): aCategory = category.Category(subject='subject', description='Description', id='id') self.categoryContainer.append(aCategory) self.expectInXML('\n' '\nDescription\n\n' '' % str(aCategory.creationDateTime())) def testCategoryWithUnicodeSubject(self): unicodeCategory = category.Category(subject=u'ײַפֿﭖ', id='id') self.categoryContainer.extend([unicodeCategory]) self.expectInXML(u'subject="ײַפֿﭖ"') def testCategoryWithDeletedTask(self): aCategory = category.Category(subject='category', categorizables=[self.task], id='id') self.categoryContainer.append(aCategory) self.taskList.remove(self.task) self.expectInXML('' % str(aCategory.creationDateTime())) def testDefaultPriority(self): self.expectNotInXML('priority') def testPriority(self): self.task.setPriority(5) self.expectInXML('priority="5"') def testTaskId(self): self.expectInXML('id="%s"'%self.task.id()) def testCategoryId(self): aCategory = category.Category(subject='category') self.categoryContainer.append(aCategory) self.expectInXML('id="%s"'%aCategory.id()) def testNoteId(self): self.expectInXML('id="%s"'%self.note.id()) def testTwoTasks(self): self.task.setSubject('task 1') task2 = task.Task(subject='task 2') self.taskList.append(task2) self.expectInXML('subject="task 2"') def testDefaultHourlyFee(self): self.expectNotInXML('hourlyFee') def testHourlyFee(self): self.task.setHourlyFee(100) self.expectInXML('hourlyFee="100"') def testDefaultFixedFee(self): self.expectNotInXML('fixedFee') def testFixedFee(self): self.task.setFixedFee(1000) self.expectInXML('fixedFee="1000"') def testNoReminder(self): self.expectNotInXML('reminder') def testReminder(self): self.task.setReminder(date.DateTime(2005, 5, 7, 13, 15, 10)) self.expectInXML('reminder="%s"'%str(self.task.reminder())) self.expectNotInXML('reminderBeforeSnooze') def testSnoozedReminder(self): now = date.Now() self.task.setReminder(now + date.TimeDelta(seconds=30)) self.task.snoozeReminder(date.TimeDelta(seconds=120), now=lambda: now) self.expectInXML('reminder="%s"'%str(self.task.reminder())) self.expectInXML('reminderBeforeSnooze="%s"'%str(self.task.reminder(includeSnooze=False))) def testReminderIsNoneButSnoozedReminderNot(self): now = date.Now() self.task.setReminder(now + date.TimeDelta(seconds=30)) self.task.snoozeReminder(date.TimeDelta()) self.expectNotInXML('reminder') def testMarkCompletedWhenAllChildrenAreCompletedSetting_None(self): self.expectNotInXML('shouldMarkCompletedWhenAllChildrenCompleted') def testMarkCompletedWhenAllChildrenAreCompletedSetting_True(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(True) self.expectInXML('shouldMarkCompletedWhenAllChildrenCompleted="True"') def testMarkCompletedWhenAllChildrenAreCompletedSetting_False(self): self.task.setShouldMarkCompletedWhenAllChildrenCompleted(False) self.expectInXML('shouldMarkCompletedWhenAllChildrenCompleted="False"') def testNote(self): aNote = note.Note(id='id') self.noteContainer.append(aNote) self.expectInXML('' % (aNote.creationDateTime(), base.SynchronizedObject.STATUS_NEW)) def testNoteWithSubject(self): self.noteContainer.append(note.Note(subject='Note')) self.expectInXML('subject="Note"') def testNoteWithDescription(self): self.noteContainer.append(note.Note(description='Description')) self.expectInXML('\nDescription\n\n') def testNoteWithChild(self): child = note.Note(id='child') self.note.addChild(child) self.noteContainer.append(child) self.expectInXML('\n' '\n' '' % (self.note.creationDateTime(), self.note.id(), base.SynchronizedObject.STATUS_NEW, child.creationDateTime(), base.SynchronizedObject.STATUS_NEW)) def testNoteWithCategory(self): cat = category.Category(subject='cat') self.categoryContainer.append(cat) self.note.addCategory(cat) cat.addCategorizable(self.note) self.expectInXML('categorizables="%s"' % self.note.id()) def testCategoryForegroundColor(self): self.categoryContainer.append(category.Category(subject='test', fgColor=wx.RED)) self.expectInXML('fgColor="(255, 0, 0, 255)"') def testCategoryBackgroundColor(self): self.categoryContainer.append(category.Category(subject='test', bgColor=wx.RED)) self.expectInXML('bgColor="(255, 0, 0, 255)"') def testDontWriteInheritedCategoryForegroundColor(self): parent = category.Category(subject='test', fgColor=wx.RED) child = category.Category(subject='child', id='id') parent.addChild(child) self.categoryContainer.append(parent) self.expectInXML('' % child.creationDateTime()) def testDontWriteInheritedCategoryBackgroundColor(self): parent = category.Category(subject='test', bgColor=wx.RED) child = category.Category(subject='child', id='id') parent.addChild(child) self.categoryContainer.append(parent) self.expectInXML('' % child.creationDateTime()) def testTaskForegroundColor(self): self.task.setForegroundColor(wx.RED) self.expectInXML('fgColor="(255, 0, 0, 255)"') def testTaskBackgroundColor(self): self.task.setBackgroundColor(wx.RED) self.expectInXML('bgColor="(255, 0, 0, 255)"') def testDontWriteInheritedTaskForegroundColor(self): self.task.setForegroundColor(wx.RED) child = task.Task(subject='child', id='id', plannedStartDateTime=date.DateTime()) self.task.addChild(child) self.taskList.append(child) self.expectInXML('' % child.creationDateTime()) def testDontWriteInheritedTaskBackgroundColor(self): self.task.setBackgroundColor(wx.RED) child = task.Task(subject='child', id='id', plannedStartDateTime=date.DateTime()) self.task.addChild(child) self.taskList.append(child) self.expectInXML('' % child.creationDateTime()) def testNoteForegroundColor(self): self.note.setForegroundColor(wx.RED) self.expectInXML('fgColor="(255, 0, 0, 255)"') def testNoteBackgroundColor(self): self.note.setBackgroundColor(wx.RED) self.expectInXML('bgColor="(255, 0, 0, 255)"') def testDontWriteInheritedNoteForegroundColor(self): parent = note.Note(fgColor=wx.RED) child = note.Note(subject='child', id='id') parent.addChild(child) self.noteContainer.append(parent) self.expectInXML('' % child.creationDateTime()) def testDontWriteInheritedNoteBackgroundColor(self): parent = note.Note(bgColor=wx.RED) child = note.Note(subject='child', id='id') parent.addChild(child) self.noteContainer.append(parent) self.expectInXML('' % child.creationDateTime()) def testNoRecurencce(self): self.expectNotInXML('recurrence') def testDailyRecurrence(self): self.task.setRecurrence(date.Recurrence('daily')) self.expectInXML('') def testWeeklyRecurrence(self): self.task.setRecurrence(date.Recurrence('weekly')) self.expectInXML('') def testMonthlyRecurrence(self): self.task.setRecurrence(date.Recurrence('monthly')) self.expectInXML('') def testMonthlyRecurrenceOnSameWeekday(self): self.task.setRecurrence(date.Recurrence('monthly', sameWeekday=True)) self.expectInXML('') def testYearlyRecurrence(self): self.task.setRecurrence(date.Recurrence('yearly')) self.expectInXML('') def testRecurrenceCount(self): self.task.setRecurrence(date.Recurrence('daily', count=5)) self.expectInXML('count="5"') def testMaxRecurrenceCount(self): self.task.setRecurrence(date.Recurrence('daily', maximum=5)) self.expectInXML('max="5"') def testRecurrenceStopDateTime(self): stop_datetime = date.DateTime(2000,1,1, 10, 9, 8) self.task.setRecurrence(date.Recurrence('daily', stop_datetime=stop_datetime)) self.expectInXML('stop_datetime="%s"' % str(stop_datetime)) def testRecurrenceFrequency(self): self.task.setRecurrence(date.Recurrence('daily', amount=2)) self.expectInXML('amount="2"') def testRecurrenceBasedOnCompletion(self): self.task.setRecurrence(date.Recurrence('daily', recurBasedOnCompletion=True)) self.expectInXML('recurBasedOnCompletion="True"') def testNoAttachments(self): self.expectNotInXML('attachment') # addAttachment, addNote, etc., are dynamically generated so pylint can't # find them. Disable the error message. # pylint: disable=E1101 def testTaskWithOneAttachment(self): task_attachment = attachment.FileAttachment('whatever.txt', id='foo') self.task.addAttachments(task_attachment) self.expectInXML('' % task_attachment.creationDateTime()) def testObjectWithAttachmentWithNote(self): att = attachment.FileAttachment('whatever.txt', id='foo') self.task.addAttachments(att) attachment_note = note.Note(subject='attnote', id='spam') att.addNote(attachment_note) self.expectInXML('\n' '' % note_attachment.creationDateTime()) def testCategoryWithOneAttachment(self): cat = category.Category('cat') self.categoryContainer.append(cat) category_attachment = attachment.FileAttachment('whatever.txt', id='foo') cat.addAttachments(category_attachment) self.expectInXML('' % category_attachment.creationDateTime()) def testTaskWithTwoAttachments(self): attachments = [attachment.FileAttachment('whatever.txt'), attachment.FileAttachment('/home/frank/attachment.doc')] for a in attachments: self.task.addAttachments(a) for att in attachments: self.expectInXML('' % (att.creationDateTime(), att.id(), att.location(), att.location())) def testTaskWithNote(self): self.task.addNote(self.note) self.expectInXML('>\n\n' % (self.note.creationDateTime(), self.note.id())) def testTaskWithNotes(self): anotherNote = note.Note(subject='Another note', id='id') self.task.addNote(self.note) self.task.addNote(anotherNote) self.expectInXML('>\n\n' '\n' % (self.note.creationDateTime(), self.note.id(), anotherNote.creationDateTime())) def testTaskWithNestedNotes(self): subNote = note.Note(subject='Subnote', id='id') self.note.addChild(subNote) self.task.addNote(self.note) self.expectInXML('>\n\n' '\n\n' % (self.note.creationDateTime(), self.note.id(), subNote.creationDateTime())) def testTaskWithNoteWithCategory(self): newNote = note.Note() self.task.addNote(newNote) newNote.addCategory(self.category) self.category.addCategorizable(newNote) self.expectInXML('categorizables="%s"' % newNote.id()) def testTaskWithNoteWithSubNoteWithCategory(self): newNote = note.Note() newSubNote = note.Note() newNote.addChild(newSubNote) self.task.addNote(newNote) newSubNote.addCategory(self.category) self.category.addCategorizable(newSubNote) self.expectInXML('categorizables="%s"' % newSubNote.id()) def testCategoryWithNote(self): self.category.addNote(self.note) self.expectInXML('>\n\n' % (self.note.creationDateTime(), self.note.id())) def testCategoryWithNotes(self): anotherNote = note.Note(subject='Another note', id='id') self.category.addNote(self.note) self.category.addNote(anotherNote) self.expectInXML('>\n\n' '\n' % (self.note.creationDateTime(), self.note.id(), anotherNote.creationDateTime())) def testCategoryWithNestedNotes(self): subNote = note.Note(subject='Subnote', id='id') self.note.addChild(subNote) self.category.addNote(self.note) self.expectInXML('>\n\n' '\n\n' % (self.note.creationDateTime(), self.note.id(), subNote.creationDateTime())) def testTaskDefaultExpansionState(self): # Don't write anything if the task is not expanded: self.expectNotInXML('expandedContexts') def testTaskExpansionState(self): self.task.expand() self.expectInXML('''expandedContexts="('None',)"''') def testTaskExpansionState_SpecificContext(self): self.task.expand(context='Test') self.expectInXML('''expandedContexts="('Test',)"''') def testTaskExpansionState_MultipleContexts(self): self.task.expand(context='Test') self.task.expand(context='Another context') self.expectInXML('''expandedContexts="('Another context', 'Test')"''') def testCategoryExpansionState(self): cat = category.Category('cat') self.categoryContainer.append(cat) cat.expand() self.expectInXML('''expandedContexts="('None',)"''') def testNoteExpansionState(self): self.note.expand() self.expectInXML('''expandedContexts="('None',)"''') def testPercentageComplete(self): self.task.setPercentageComplete(50) self.expectInXML('''percentageComplete="50"''') def testPercentageComplete_Float(self): self.task.setPercentageComplete(50.0) self.expectInXML('''percentageComplete="50.0"''') def testExclusiveSubcategories(self): self.category.makeSubcategoriesExclusive() self.expectInXML('''exclusiveSubcategories="True"''') def testNonExclusiveSubcategoriesByDefault(self): self.expectNotInXML('''exclusiveSubcategories''') def testTaskFont(self): self.task.setFont(wx.SWISS_FONT) self.expectInXML('font="%s"'%wx.SWISS_FONT.GetNativeFontInfoDesc()) def testNoTaskFontByDefault(self): self.expectNotInXML('font') def testNoteFont(self): self.note.setFont(wx.SWISS_FONT) self.expectInXML('font="%s"'%wx.SWISS_FONT.GetNativeFontInfoDesc()) def testCategoryFont(self): self.category.setFont(wx.SWISS_FONT) self.expectInXML('font="%s"'%wx.SWISS_FONT.GetNativeFontInfoDesc()) def testAttachmentFont(self): att = attachment.FileAttachment('whatever.txt', id='foo', font=wx.SWISS_FONT) self.task.addAttachments(att) self.expectInXML('font="%s"'%wx.SWISS_FONT.GetNativeFontInfoDesc()) def testNonAsciiFontName(self): class FakeFont(object): def GetNativeFontInfoDesc(self): return u'微软雅黑' font = FakeFont() self.task.setFont(font) self.expectInXML(u'font="微软雅黑"') def testTaskIcon(self): self.task.setIcon('icon') self.expectInXML('icon="icon"') def testNoTaskIcon(self): self.expectNotInXML('icon') def testSelectedTaskIcon(self): self.task.setSelectedIcon('icon') self.expectInXML('selectedIcon="icon"') def testNoSelectedTaskIcon(self): self.expectNotInXML('selectedIcon') def testNoteIcon(self): self.note.setIcon('icon') self.expectInXML('icon="icon"') def testSelectedNoteIcon(self): self.note.setSelectedIcon('icon') self.expectInXML('selectedIcon="icon"') def testCategoryIcon(self): self.category.setIcon('icon') self.expectInXML('icon="icon"') def testSelectedCategoryIcon(self): self.category.setSelectedIcon('icon') self.expectInXML('selectedIcon="icon"') def testAttachmentIcon(self): att = attachment.FileAttachment('whatever.txt', id='foo', icon='icon') self.task.addAttachments(att) self.expectInXML('icon="icon"') def testSelectedAttachmentIcon(self): att = attachment.FileAttachment('whatever.txt', selectedIcon='icon') self.task.addAttachments(att) self.expectInXML('selectedIcon="icon"') def testPrerequisite(self): prerequisite = task.Task(subject='prereq') self.taskList.append(prerequisite) self.task.addPrerequisites([prerequisite]) self.expectInXML('prerequisites="%s"'%prerequisite.id()) def testMultiplePrerequisites(self): # Use the same id's for both prerequisites because we don't know in # what order they will end up in the XML. prerequisites = [task.Task(subject='prereq1', id='id'), task.Task(subject='prereq2', id='id')] self.taskList.extend(prerequisites) self.task.addPrerequisites(prerequisites) self.expectInXML('prerequisites="id id"') def testEncodingAttribute(self): self.expectInXML('encoding="utf-8"') def testCreationDateTime(self): self.expectInXML('creationDateTime="%s"' % str(self.task.creationDateTime())) def testDoNotWriteUnknownCreationDateTime(self): task_with_unknown_creation_datetime = task.Task(creationDateTime=date.DateTime.min) self.taskList.append(task_with_unknown_creation_datetime) self.expectNotInXML('creationDateTime="0001-01-01 00:00:00"') def testModificationDateTime(self): self.task.setModificationDateTime(date.DateTime(2013, 1, 1, 0, 0, 0)) self.expectInXML('modificationDateTime="2013-01-01 00:00:00"') def testDoNotWriteUnknownModificationDateTime(self): task_with_unknown_modification_datetime = \ task.Task(modificationDateTime=date.DateTime.min) self.expectNotInXML('modificationDateTime="0001-01-01 00:00:00"') taskcoach-1.4.3/tests/unittests/persistenceTests/__init__.py000066400000000000000000000013531265347643000243570ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/thirdPartySoftwareTests/000077500000000000000000000000001265347643000235655ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/thirdPartySoftwareTests/DesktopTest.py000066400000000000000000000025021265347643000264070ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.thirdparty import desktop class DesktopTest(test.TestCase): def testOpenByForcingAnException(self): ''' desktop.open will open a browser or other program and we don't want that during unit testing. So we provide a non-existing desktop, which will cause desktop.open to raise an exception. ''' try: desktop.open('http://www.taskcoach.org', desktop='Force exception') self.fail('desktop.open() ignored ' 'our non-existing desktop?!') # pragma: no cover except OSError: pass taskcoach-1.4.3/tests/unittests/thirdPartySoftwareTests/LockFileTest.py000066400000000000000000000034341265347643000264730ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from __future__ import with_statement import test, tempfile from taskcoachlib.thirdparty import lockfile class LockFileTest(test.TestCase): def setUp(self): self.tmpfile = tempfile.NamedTemporaryFile() self.lock = lockfile.FileLock(self.tmpfile.name) def tearDown(self): super(LockFileTest, self).tearDown() self.tmpfile.close() # Temp files are deleted when closed def testFileIsNotLockedInitially(self): self.failIf(self.lock.is_locked()) def testFileIsLockedAfterLocking(self): self.lock.acquire() self.failUnless(self.lock.is_locked()) def testLockingWithContextManager(self): with self.lock: self.failUnless(self.lock.is_locked()) self.failIf(self.lock.is_locked()) def testLockingTwoFiles(self): self.lock.acquire() tmpfile2 = tempfile.NamedTemporaryFile() lock2 = lockfile.FileLock(tmpfile2.name) lock2.acquire() self.failUnless(self.lock.is_locked()) self.failUnless(lock2.is_locked()) taskcoach-1.4.3/tests/unittests/thirdPartySoftwareTests/PubSubTest.py000066400000000000000000000021631265347643000262010ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' from taskcoachlib.thirdparty.pubsub import pub import test class PubSubTest(test.TestCase): def setUp(self): self.calledTestTopic = False def onTestTopic(self): self.calledTestTopic = True def testSubscribe(self): pub.subscribe(self.onTestTopic, 'TestTopic') pub.sendMessage('TestTopic') self.failUnless(self.calledTestTopic) taskcoach-1.4.3/tests/unittests/thirdPartySoftwareTests/__init__.py000066400000000000000000000013331265347643000256760ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/tests/unittests/thirdPartySoftwareTests/wxPythonTest.py000066400000000000000000000031251265347643000266400ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' ''' These are unittests of wxPython functionality. Of course, the goal is not to test all wxPython functions, but rather to document platform inconsistencies or surprising behaviour. ''' # pylint: disable=W0105 import wx import test from taskcoachlib import operating_system class TextCtrlTest(test.wxTestCase): def testClearEmitsNoEventOnMacOSX(self): self.clearTextCausesEvent = False # pylint: disable=W0201 textCtrl = wx.TextCtrl(self.frame) textCtrl.Bind(wx.EVT_TEXT, self.onTextChanged) textCtrl.Clear() if operating_system.isMac(): # pragma: no cover self.failIf(self.clearTextCausesEvent) else: # pragma: no cover self.failUnless(self.clearTextCausesEvent) def onTextChanged(self, event): # pylint: disable=W0613 self.clearTextCausesEvent = True # pragma: no cover pylint: disable=W0201 taskcoach-1.4.3/tests/unittests/widgetTests/000077500000000000000000000000001265347643000212035ustar00rootroot00000000000000taskcoach-1.4.3/tests/unittests/widgetTests/DateTimeCtrlTest.py000066400000000000000000000113501265347643000247360ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, locale from taskcoachlib import widgets, render from taskcoachlib.domain import date class CommonTestsMixin(object): def setUp(self): super(CommonTestsMixin, self).setUp() # LC_ALL does not work on Slackware or Arch, but LC_TIME crashes on Fedora... try: self.__oldLocale = locale.getlocale(locale.LC_ALL) self.__localeDomain = locale.LC_ALL except TypeError: self.__oldLocale = locale.getlocale(locale.LC_TIME) self.__localeDomain = locale.LC_TIME localeName = 'en_US' if self.ampm else 'fr_FR' # OS X and Linux don't agree on encoding names... for encodingName in ['utf8', 'UTF-8']: try: locale.setlocale(self.__localeDomain, '%s.%s' % (localeName, encodingName)) except locale.Error: pass else: break else: self.skipTest('No supported locale found. Try "locale -a" and add a supported locale.') reload(render) # To execute module-level code every time def tearDown(self): locale.setlocale(self.__localeDomain, self.__oldLocale) reload(render) super(CommonTestsMixin, self).tearDown() def _format(self, hour, minute, second): if self.ampm: dpyHour = hour % 12 if dpyHour == 0: dpyHour = 12 r = '%02d:%02d' % (dpyHour, minute) if self.showSeconds: r += ':%02d' % second r += ' AM' if hour <= 12 else ' PM' else: r = '%02d:%02d' % (hour, minute) if self.showSeconds: r += ':%02d' % second return r def testGetValue(self): oneHour = date.DateTime(2000, 1, 1, hour=1) self.dateTimeCtrl.SetValue(oneHour) self.assertEqual(oneHour, self.dateTimeCtrl.GetValue()) class DateTimeCtrlTestCase(test.wxTestCase): adjustEndOfDay = False showSeconds = False def setUp(self): super(DateTimeCtrlTestCase, self).setUp() self.dateTimeCtrl = widgets.datectrl.DateTimeCtrl(self.frame, showSeconds=self.showSeconds, adjustEndOfDay=self.adjustEndOfDay) def test_adjust(self): self.dateTimeCtrl.SetValue(date.DateTime(2012, 12, 12, 23, 59, 0, 0)) self.assertEqual(self.dateTimeCtrl.GetValue(), date.DateTime(2012, 12, 12, 23, 59, 59, 999999) if self.adjustEndOfDay \ else date.DateTime(2012, 12, 12, 23, 59, 0, 0)) class DateTimeCtrlTest_Seconds_Base(CommonTestsMixin): showSeconds = True def testGetValue_SecondPrecision(self): oneHourAndTenSeconds = date.DateTime(2000, 1, 1, hour=1, second=10) self.dateTimeCtrl.SetValue(oneHourAndTenSeconds) self.assertEqual(oneHourAndTenSeconds, self.dateTimeCtrl.GetValue()) class DateTimeCtrlTest_Seconds(DateTimeCtrlTest_Seconds_Base, DateTimeCtrlTestCase): ampm = False class DateTimeCtrlTest_Seconds_AMPM(DateTimeCtrlTest_Seconds_Base, DateTimeCtrlTestCase): ampm = True class DateTimeCtrlTest_NoSeconds_Base(CommonTestsMixin): showSeconds = False def testGetValue_SecondPrecision(self): oneHour = date.DateTime(2000, 1, 1, hour=1) oneHourAndTenSeconds = date.DateTime(2000, 1, 1, hour=1, second=10) self.dateTimeCtrl.SetValue(oneHourAndTenSeconds) self.assertEqual(oneHour, self.dateTimeCtrl.GetValue()) class DateTimeCtrlTest_NoSeconds(DateTimeCtrlTest_NoSeconds_Base, DateTimeCtrlTestCase): ampm = False class DateTimeCtrlTest_NoSeconds_Adjust(DateTimeCtrlTest_NoSeconds_Base, DateTimeCtrlTestCase): ampm = False adjustEndOfDay = True class DateTimeCtrlTest_NoSeconds_AMPM(DateTimeCtrlTest_NoSeconds_Base, DateTimeCtrlTestCase): ampm = True class DateTimeCtrlTest_NoSeconds_AMPM_Adjust(DateTimeCtrlTest_NoSeconds_Base, DateTimeCtrlTestCase): ampm = True adjustEndOfDay = True taskcoach-1.4.3/tests/unittests/widgetTests/DragAndDropTest.py000066400000000000000000000046121265347643000245450ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib.widgets import treectrl class DummyEvent(object): def __init__(self, item=None): self.item = item self.vetoed = self.allowed = False def GetItem(self): return self.item def Veto(self): self.vetoed = True def Allow(self): self.allowed = True class TreeCtrlDragAndDropMixinTest(test.wxTestCase): # pylint: disable=E1101 def setUp(self): self.treeCtrl = treectrl.HyperTreeList(self.frame) self.treeCtrl.AddColumn('First') self.rootItem = self.treeCtrl.AddRoot('root') self.item = self.treeCtrl.AppendItem(self.rootItem, 'item') def assertEventIsVetoed(self, event): self.failUnless(event.vetoed) self.failIf(event.allowed) def assertEventIsAllowed(self, event): self.failUnless(event.allowed) self.failIf(event.vetoed) def testEventIsVetoedWhenDragBeginsWithoutItem(self): event = DummyEvent() self.treeCtrl._dragStartPos = wx.Point(0, 0) self.treeCtrl.OnBeginDrag(event) self.assertEventIsVetoed(event) def testEventIsAllowedWhenDragBeginsWithItem(self): event = DummyEvent(self.item) self.treeCtrl._dragStartPos = wx.Point(0, 0) self.treeCtrl.OnBeginDrag(event) self.assertEventIsAllowed(event) def testEventIsAllowedWhenDragBeginWithSelectedItem(self): self.treeCtrl.SelectItem(self.item) event = DummyEvent(self.item) self.treeCtrl._dragStartPos = wx.Point(0, 0) self.treeCtrl.OnBeginDrag(event) self.assertEventIsAllowed(event) taskcoach-1.4.3/tests/unittests/widgetTests/ItemCtrlTest.py000077500000000000000000000114051265347643000241440ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from taskcoachlib import widgets class CtrlWithColumnsTestCase(test.wxTestCase): def setUp(self): super(CtrlWithColumnsTestCase, self).setUp() self.column1 = widgets.Column('Column 1', 'eventType1') self.column2 = widgets.Column('Column 2', 'eventType2') self.control = self.createControl() def createControl(self): raise NotImplementedError # pragma: no cover class CtrlWithHideableColumnsUnderTest( \ widgets.itemctrl._CtrlWithHideableColumnsMixin, # pylint: disable=W0212 wx.ListCtrl): pass class CtrlWithHideableColumnsTestsMixin(object): def testColumnIsVisibleByDefault(self): self.failUnless(self.control.isColumnVisible(self.column1)) def testHideColumn(self): self.control.showColumn(self.column1, show=False) self.failIf(self.control.isColumnVisible(self.column1)) def testShowColumn(self): self.control.showColumn(self.column1, show=False) self.control.showColumn(self.column1, show=True) self.failUnless(self.control.isColumnVisible(self.column1)) class CtrlWithHideableColumnsTest(CtrlWithColumnsTestCase, CtrlWithHideableColumnsTestsMixin): def createControl(self): return CtrlWithHideableColumnsUnderTest(self.frame, style=wx.LC_REPORT, columns=[self.column1, self.column2]) class CtrlWithSortableColumnsUnderTest( \ widgets.itemctrl._CtrlWithSortableColumnsMixin, # pylint: disable=W0212 wx.ListCtrl): pass class CtrlWithSortableColumnsTestsMixin(object): def assertCurrentSortColumn(self, expectedSortColumn): currentSortColumn = self.control._currentSortColumn() # pylint: disable=W0212 self.assertEqual(expectedSortColumn, currentSortColumn) def testDefaultSortColumn(self): self.assertCurrentSortColumn(self.column1) def testShowSortColumn(self): self.control.showSortColumn(self.column2) self.assertCurrentSortColumn(self.column2) class CtrlWithSortableColumnsTest(CtrlWithColumnsTestCase, CtrlWithSortableColumnsTestsMixin): def createControl(self): return CtrlWithSortableColumnsUnderTest(self.frame, style=wx.LC_REPORT, columns=[self.column1, self.column2]) class CtrlWithColumnsUnderTest(widgets.itemctrl.CtrlWithColumnsMixin, wx.ListCtrl): pass class CtrlWithColumnsTest(CtrlWithColumnsTestCase, CtrlWithHideableColumnsTestsMixin, CtrlWithSortableColumnsTestsMixin): def createControl(self): # NOTE: the resizeableColumn is the column that is not hidden return CtrlWithColumnsUnderTest(self.frame, style=wx.LC_REPORT, columns=[self.column1, self.column2], resizeableColumn=1, columnPopupMenu=None) class DummyEvent(object): def __init__(self, eventObject): self.eventObject = eventObject def Skip(self, *args): pass def GetColumn(self): return 0 def GetEventObject(self): return self.eventObject def GetPosition(self): return 0, 0 class ListCtrlWithColumnPopupMenuTest(CtrlWithColumnsTestCase): def createControl(self): return CtrlWithColumnsUnderTest(self.frame, style=wx.LC_REPORT, columns=[self.column1, self.column2], resizeableColumn=1, columnPopupMenu=wx.Menu()) @test.skipOnPlatform('__WXGTK__') # Popup menu hangs the test def testColumnHeaderPopupMenu(self): self.control.onColumnPopupMenu(DummyEvent(self.control)) class HyperListTreeCtrlWithColumnPopupMenuTest(CtrlWithColumnsTestCase): def createControl(self): return widgets.TreeListCtrl(self.frame, [self.column1, self.column2], None, None, None, None, columnPopupMenu=wx.Menu()) @test.skipOnPlatform('__WXGTK__') # Popup menu hangs the test def testColumnHeaderPopupMenu(self): self.control.onColumnPopupMenu(DummyEvent(self.control)) taskcoach-1.4.3/tests/unittests/widgetTests/ListCtrlTest.py000077500000000000000000000113051265347643000241600ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from unittests import dummy from taskcoachlib import widgets class VirtualListCtrlTestCase(test.wxTestCase): onSelect = lambda *args: None def createListCtrl(self): self.frame.getItemWithIndex = lambda index: index self.frame.getIndexOfItem = lambda item: item if type(item) == type(0) else 0 self.frame.getItemText = lambda item, column: '' self.frame.getItemTooltipData = lambda item: [] self.frame.getItemImages = lambda item, column: {wx.TreeItemIcon_Normal: -1} return widgets.VirtualListCtrl(self.frame, self.columns, self.onSelect, dummy.DummyUICommand()) def createColumns(self, nrColumns): columns = [] for columnIndex in range(1, nrColumns+1): name = 'column%d'%columnIndex columns.append(widgets.Column(name, name, None, None)) return columns def setUp(self): super(VirtualListCtrlTestCase, self).setUp() self.columns = self.createColumns(nrColumns=3) self.listctrl = self.createListCtrl() def testOneItem(self): self.listctrl.RefreshAllItems(1) self.assertEqual(1, self.listctrl.GetItemCount()) def testNrOfColumns(self): self.assertEqual(3, self.listctrl.GetColumnCount()) def testCurselection_EmptyList(self): self.assertEqual([], self.listctrl.curselection()) def testShowColumn_Hide(self): self.listctrl.showColumn(self.columns[2], False) self.assertEqual(2, self.listctrl.GetColumnCount()) def testShowColumn_HideAndShow(self): self.listctrl.showColumn(self.columns[2], False) self.listctrl.showColumn(self.columns[2], True) self.assertEqual(3, self.listctrl.GetColumnCount()) def testShowColumn_ColumnOrderIsKept(self): self.listctrl.showColumn(self.columns[1], False) self.listctrl.showColumn(self.columns[2], False) self.listctrl.showColumn(self.columns[1], True) self.listctrl.showColumn(self.columns[2], True) # pylint: disable=W0212 self.assertEqual(self.columns[1].header(), self.listctrl._getColumnHeader(1)) self.assertEqual(self.columns[2].header(), self.listctrl._getColumnHeader(2)) def testShowColumn_HideTwice(self): self.listctrl.showColumn(self.columns[2], False) self.listctrl.showColumn(self.columns[2], False) self.assertEqual(2, self.listctrl.GetColumnCount()) def testSelect(self): self.listctrl.RefreshAllItems(1) self.listctrl.select([0]) self.assertEqual([0], self.listctrl.curselection()) def testSelect_EmptySelection(self): self.listctrl.RefreshAllItems(1) self.listctrl.select([]) self.assertEqual([], self.listctrl.curselection()) def testSelect_MultipleSelection(self): self.listctrl.RefreshAllItems(2) self.listctrl.select([0, 1]) self.assertEqual([0, 1], self.listctrl.curselection()) def testSelect_DisjunctMultipleSelection(self): self.listctrl.RefreshAllItems(3) self.listctrl.select([0, 2]) self.assertEqual([0, 2], self.listctrl.curselection()) def testSelect_SetsFocus(self): self.listctrl.RefreshAllItems(1) self.listctrl.select([0]) self.assertEqual(0, self.listctrl.GetFocusedItem()) def testSelect_EmptySelection_SetsFocus(self): self.listctrl.RefreshAllItems(1) self.listctrl.select([]) self.assertEqual(-1, self.listctrl.GetFocusedItem()) def testSelect_MultipleSelection_SetsFocus(self): self.listctrl.RefreshAllItems(2) self.listctrl.select([0, 1]) self.assertEqual(0, self.listctrl.GetFocusedItem()) def testSelect_DisjunctMultipleSelection_SetsFocus(self): self.listctrl.RefreshAllItems(3) self.listctrl.select([0, 2]) self.assertEqual(0, self.listctrl.GetFocusedItem()) taskcoach-1.4.3/tests/unittests/widgetTests/MaskedCtrlTest.py000066400000000000000000000065671265347643000244640ustar00rootroot00000000000000# -*- coding: UTF-8 -*- ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib.widgets import masked class LocalConv(dict): def __init__(self, decimal_point='.', thousands_sep=',', grouping=None): super(LocalConv, self).__init__() self.update(dict(decimal_point=decimal_point, thousands_sep=thousands_sep, grouping=grouping or [])) class AmountCtrlTest(test.wxTestCase): def setUp(self): super(AmountCtrlTest, self).setUp() self.amountCtrl = masked.AmountCtrl(self.frame) def testCreate(self): self.assertEqual(0.0, self.amountCtrl.GetValue()) def testSetValue(self): self.amountCtrl.SetValue(1.0) self.assertEqual(1.0, self.amountCtrl.GetValue()) def testDefaultLocalConventions(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv()) def testCommaAsDecimalSepAndNoGrouping(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv(decimal_point=',')) def testCommaAsDecimalSepAndGrouping(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv(decimal_point=',', grouping=[3,3,3])) def testCommaAsBothDecimalSepAndThousandsSepButNoGrouping(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv(decimal_point=',', thousands_sep=',')) def testCommaAsBothDecimalSepAndThousandsSepAndGrouping(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv(decimal_point=',', thousands_sep=',', grouping=[3,3,3])) def testSpaceIsNotAllowedAsDecimalPoint(self): try: masked.AmountCtrl(self.frame, locale_conventions=LocalConv(decimal_point=' ')) self.fail('Expected ValueError') # pragma: no cover except ValueError: pass def testNonAsciiDecimalPoint(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv(decimal_point=u'�')) def testNonAsciiThousandsSeparator(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv(thousands_sep=u'�', grouping=[3,3,3])) def testMultiCharThousandsSeparator(self): masked.AmountCtrl(self.frame, locale_conventions=LocalConv(thousands_sep='..')) taskcoach-1.4.3/tests/unittests/widgetTests/SpinCtrlTest.py000066400000000000000000000032571265347643000241620ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import widgets class SpinCtrlTest(test.wxTestCase): def testPositiveValue(self): spinCtrl = widgets.SpinCtrl(self.frame, value=5) self.assertEqual(5, spinCtrl.GetValue()) def testNegativeValue(self): spinCtrl = widgets.SpinCtrl(self.frame, value=-5) self.assertEqual(-5, spinCtrl.GetValue()) def testMinRange(self): spinCtrl = widgets.SpinCtrl(self.frame, min=1) self.assertEqual(1, spinCtrl.GetMin()) def testDefaultValueIsAtLeastMinRange(self): spinCtrl = widgets.SpinCtrl(self.frame, min=1) self.assertEqual(1, spinCtrl.GetValue()) def testMaxRange(self): spinCtrl = widgets.SpinCtrl(self.frame, max=100) self.assertEqual(100, spinCtrl.GetMax()) def testDefaultValueIsAtMostMaxRange(self): spinCtrl = widgets.SpinCtrl(self.frame, max=-1) self.assertEqual(-1, spinCtrl.GetValue()) taskcoach-1.4.3/tests/unittests/widgetTests/TextCtrlTest.py000077500000000000000000000027551265347643000242020ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test from taskcoachlib import widgets class BaseTextCtrlTest(test.wxTestCase): def testRemoveAnyControlCharactersEnteredByUser(self): textctrl = widgets.textctrl.BaseTextCtrl(self.frame, u'T\x02\x01est\x09') self.assertEqual(u'Test\t', textctrl.GetValue()) class MultiLineTextCtrlTest(test.wxTestCase): def testOpenWebbrowserOnURLClick(self): textctrl = widgets.MultiLineTextCtrl(self.frame) textctrl.AppendText('test http://test.com/ test') # FIXME: simulate a mouseclick on the url def testSetInsertionPointAtStart(self): textctrl = widgets.MultiLineTextCtrl(self.frame, text='Hiya') self.assertEqual(0, textctrl.GetInsertionPoint()) taskcoach-1.4.3/tests/unittests/widgetTests/ToolTipTest.py000066400000000000000000000055571265347643000240230ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import test, wx from taskcoachlib.widgets import tooltip class ToolTipUnderTest(tooltip.ToolTipMixin, wx.Frame): # pylint: disable=W0223 def GetMainWindow(self): return self class DummyToolTipWindow(object): def __init__(self, size=(10, 10)): self.size = size self.rect = None def Show(self, *args): self.rect = args def GetSizeTuple(self): return self.size class ToolTipMixinTestCase(test.TestCase): def setUp(self): self.tooltipMixin = ToolTipUnderTest(None) def testShowTip(self): tipWindow = DummyToolTipWindow() self.tooltipMixin.DoShowTip(0, 0, tipWindow) self.assertEqual((0, 0, 10, 10), tipWindow.rect) def testReallyBigTip(self): width, height = wx.ClientDisplayRect()[2:] tipWindow = DummyToolTipWindow((2*width, 2*height)) self.tooltipMixin.DoShowTip(0, 0, tipWindow) self.assertEqual((5, 5, 2*width, height-10), tipWindow.rect) def testTipThatFallsOfBottomOfScreen(self): _, displayY, _, height = wx.ClientDisplayRect() tipWindow = DummyToolTipWindow((10, 100)) self.tooltipMixin.DoShowTip(0, height-10, tipWindow) self.assertEqual((0, height-105+displayY, 10, 100), tipWindow.rect) class SimpleToolTipUnderTest(tooltip.SimpleToolTip): def _calculateLineSize(self, dc, line): ''' Make sure the unittest doesn't depend on the platform font size. ''' return 10, 20 class SimpleToolTipTestCase(test.wxTestCase): def setUp(self): self.tip = SimpleToolTipUnderTest(self.frame) def testOneShortLine(self): self.tip.SetData([(None, ['First line'])]) self.assertEqual([(None, ['First line'])], self.tip.data) def testOneLongLine(self): self.tip.SetData([(None, ['First line '*10])]) self.assertEqual([(None, [('First line '*7).strip(), ('First line '*3).strip()])], self.tip.data) def testCalculateSize(self): self.tip.SetData([(None, ['First line'])]) self.assertEqual(wx.Size(16, 27), self.tip._calculateSize()) taskcoach-1.4.3/tests/unittests/widgetTests/TreeCtrlTest.py000077500000000000000000000337441265347643000241570ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from unittests import dummy from taskcoachlib import widgets class TreeCtrlTestCase(test.wxTestCase): onSelect = None def getFirstTreeItem(self): # pylint: disable=E1101 return self.treeCtrl.GetFirstChild(self.treeCtrl.GetRootItem())[0] def setUp(self): super(TreeCtrlTestCase, self).setUp() self.children = dict() self.collapsedItems = [] self.frame.children = lambda item: self.children.get(item, []) self.frame.getItemText = lambda item, column: item.subject() self.frame.hasColumnImages = lambda column: False self.frame.getItemImages = lambda item, column: {wx.TreeItemIcon_Normal: -1} self.frame.getIsItemChecked = lambda item: False self.frame.getItemExpanded = lambda item: item not in self.collapsedItems self.item0 = DummyDomainObject('item 0') self.item1 = DummyDomainObject('item 1') self.item0_0 = DummyDomainObject('item 0.0') self.item0_1 = DummyDomainObject('item 0.1') self.item1_0 = DummyDomainObject('item 1.0') class DummyDomainObject(object): def __init__(self, subject): self.__subject = subject def subject(self): return self.__subject # pylint: disable=W0613 def foregroundColor(self, recursive=False): return None def backgroundColor(self, recursive=False): return None def font(self, recursive=False): return None class CommonTestsMixin(object): ''' Tests for all types of trees. ''' def testCreate(self): self.assertEqual(0, len(self.treeCtrl.GetItemChildren())) def testOneItem(self): self.children[None] = [self.item0] self.treeCtrl.RefreshAllItems(1) self.assertEqual(1, len(self.treeCtrl.GetItemChildren())) def testTwoItems(self): self.children[None] = [self.item0, self.item1] self.treeCtrl.RefreshAllItems(2) self.assertEqual(2, len(self.treeCtrl.GetItemChildren())) def testRemoveAllItems(self): self.children[None] = [self.item0, self.item1] self.treeCtrl.RefreshAllItems(2) self.children[None] = [] self.treeCtrl.RefreshAllItems(0) self.assertEqual(0, len(self.treeCtrl.GetItemChildren())) def testOneParentAndOneChild(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) self.assertEqual(1, len(self.treeCtrl.GetItemChildren())) self.assertEqual(1, len(self.treeCtrl.GetItemChildren(self.getFirstTreeItem()))) def testOneParentAndTwoChildren(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0, self.item0_1] self.treeCtrl.RefreshAllItems(3) self.assertEqual(1, len(self.treeCtrl.GetItemChildren())) self.assertEqual(2, len(self.treeCtrl.GetItemChildren(self.getFirstTreeItem()))) def testAddOneChild(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) self.children[self.item0] = [self.item0_0, self.item0_1] self.treeCtrl.RefreshAllItems(3) self.assertEqual(1, len(self.treeCtrl.GetItemChildren())) self.assertEqual(2, len(self.treeCtrl.GetItemChildren(self.getFirstTreeItem()))) def testDeleteOneChild(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0, self.item0_1] self.treeCtrl.RefreshAllItems(3) self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) self.assertEqual(1, len(self.treeCtrl.GetItemChildren())) self.assertEqual(1, len(self.treeCtrl.GetItemChildren(self.getFirstTreeItem()))) def testReorderItems(self): self.children[None] = [self.item0, self.item1] self.treeCtrl.RefreshAllItems(2) self.children[None] = [self.item1, self.item0] self.treeCtrl.RefreshAllItems(2) self.assertEqual('item 1', self.treeCtrl.GetItemText(self.getFirstTreeItem())) def testReorderChildren(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0, self.item0_1] self.treeCtrl.RefreshAllItems(3) self.children[self.item0] = [self.item0_1, self.item0_0] self.treeCtrl.RefreshAllItems(3) self.assertEqual('item 0.1', self.treeCtrl.GetItemText(self.treeCtrl.GetFirstChild(self.getFirstTreeItem())[0])) def testReorderParentsAndOneChild(self): self.children[None] = [self.item0, self.item1] self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(3) self.children[None] = [self.item1, self.item0] self.treeCtrl.RefreshAllItems(3) self.assertEqual('item 1', self.treeCtrl.GetItemText(self.getFirstTreeItem())) def testReorderParentsAndTwoChildren(self): self.children[None] = [self.item0, self.item1] self.children[self.item0] = [self.item0_0, self.item0_1] self.treeCtrl.RefreshAllItems(4) self.children[None] = [self.item1, self.item0] self.children[self.item0] = [self.item0_1, self.item0_0] self.treeCtrl.RefreshAllItems(4) self.assertEqual('item 1', self.treeCtrl.GetItemText(self.getFirstTreeItem())) self.assertEqual(0, len(self.treeCtrl.GetItemChildren(self.getFirstTreeItem()))) def testRetainSelectionWhenEditingTask(self): self.children[None] = [self.item0] self.treeCtrl.RefreshAllItems(1) item = self.getFirstTreeItem() self.treeCtrl.SelectItem(item) self.failUnless(self.treeCtrl.IsSelected(item)) self.children[None] = [self.item0] self.treeCtrl.RefreshAllItems(1) item = self.getFirstTreeItem() self.failUnless(self.treeCtrl.IsSelected(item)) def testRetainSelectionWhenEditingSubTask(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) item = self.getFirstTreeItem() self.treeCtrl.SelectItem(item) self.failUnless(self.treeCtrl.IsSelected(item)) self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) item = self.getFirstTreeItem() self.failUnless(self.treeCtrl.IsSelected(item)) def testRetainSelectionWhenAddingSubTask(self): self.children[None] = [self.item0] self.treeCtrl.RefreshAllItems(1) item = self.getFirstTreeItem() self.treeCtrl.SelectItem(item) self.failUnless(self.treeCtrl.IsSelected(item)) self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) item = self.getFirstTreeItem() self.failUnless(self.treeCtrl.IsSelected(item)) def testRetainSelectionWhenAddingSubTask_TwoToplevelTasks(self): self.children[None] = [self.item0, self.item1] self.treeCtrl.RefreshAllItems(2) item = self.getFirstTreeItem() self.treeCtrl.SelectItem(item) self.failUnless(self.treeCtrl.IsSelected(item)) self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(3) item = self.getFirstTreeItem() self.failUnless(self.treeCtrl.IsSelected(item)) def testRemovingASelectedItemDoesNotMakeAnotherOneSelected(self): self.children[None] = [self.item0, self.item1] self.treeCtrl.RefreshAllItems(2) item = self.getFirstTreeItem() self.treeCtrl.SelectItem(item) self.failUnless(self.treeCtrl.IsSelected(item)) self.children[None] = [self.item1] self.treeCtrl.RefreshAllItems(1) self.failIf(self.treeCtrl.curselection()) def testRefreshItem(self): self.children[None] = [self.item0] self.treeCtrl.RefreshAllItems(1) self.treeCtrl.RefreshItems(self.item0) item = self.getFirstTreeItem() self.assertEqual('item 0', self.treeCtrl.GetItemText(item)) def testIsAnyItemCollapsable_NoItems(self): self.failIf(self.treeCtrl.isAnyItemCollapsable()) def testIsAnyItemExpandable_NoItems(self): self.failIf(self.treeCtrl.isAnyItemExpandable()) def testIsAnyItemCollapsable_OneItem(self): self.children[None] = [self.item0] self.treeCtrl.RefreshAllItems(1) self.failIf(self.treeCtrl.isAnyItemCollapsable()) def testIsAnyItemExpandable_OneItem(self): self.children[None] = [self.item0] self.treeCtrl.RefreshAllItems(1) self.failIf(self.treeCtrl.isAnyItemExpandable()) def testIsAnyItemCollapsable_OneCollapsedParent(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.collapsedItems.append(self.item0) self.treeCtrl.RefreshAllItems(2) self.failIf(self.treeCtrl.isAnyItemCollapsable()) def testIsAnyItemExpandable_OneCollapsedParent(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.collapsedItems.append(self.item0) self.treeCtrl.RefreshAllItems(2) self.failUnless(self.treeCtrl.isAnyItemExpandable()) def testIsAnyItemCollapsable_OneExpandedParent(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) parent = self.getFirstTreeItem() self.treeCtrl.Expand(parent) self.failUnless(self.treeCtrl.isAnyItemCollapsable()) def testIsAnyItemExpandable_OneExpandedParent(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) parent = self.getFirstTreeItem() self.treeCtrl.Expand(parent) self.failIf(self.treeCtrl.isAnyItemExpandable()) class TreeListCtrlTest(TreeCtrlTestCase, CommonTestsMixin): def setUp(self): super(TreeListCtrlTest, self).setUp() columns = [widgets.Column('subject', 'Subject')] self.treeCtrl = widgets.TreeListCtrl(self.frame, columns, self.onSelect, dummy.DummyUICommand(), dummy.DummyUICommand(), dummy.DummyUICommand()) imageList = wx.ImageList(16, 16) for bitmapName in ['led_blue_icon', 'folder_blue_icon']: imageList.Add(wx.ArtProvider_GetBitmap(bitmapName, wx.ART_MENU, (16,16))) self.treeCtrl.AssignImageList(imageList) # pylint: disable=E1101 class CheckTreeCtrlTest(TreeCtrlTestCase, CommonTestsMixin): def setUp(self): self.frame.getItemParentHasExclusiveChildren = lambda item: item.subject().startswith('mutual') super(CheckTreeCtrlTest, self).setUp() columns = [widgets.Column('subject', 'Subject')] self.treeCtrl = widgets.CheckTreeCtrl(self.frame, columns, self.onSelect, self.onCheck, dummy.DummyUICommand(), dummy.DummyUICommand()) self.mutual1 = DummyDomainObject('mutual 1') self.mutual2 = DummyDomainObject('mutual 2') def onCheck(self, event, final): pass def testCheckParentDoesNotCheckChild(self): self.children[None] = [self.item0] self.children[self.item0] = [self.item0_0] self.treeCtrl.RefreshAllItems(2) self.treeCtrl.ExpandAll() # pylint: disable=E1101 parent = self.getFirstTreeItem() self.treeCtrl.CheckItem(parent) child = self.treeCtrl.GetItemChildren(parent)[0] self.failIf(child.IsChecked()) def testCheckParentOfMutualExclusiveChildrenUnchecksAllChildren(self): self.children[None] = [self.item0] self.children[self.item0] = [self.mutual1, self.mutual2] self.treeCtrl.RefreshAllItems(3) self.treeCtrl.ExpandAll() # pylint: disable=E1101 parent = self.getFirstTreeItem() children = self.treeCtrl.GetItemChildren(parent) self.treeCtrl.CheckItem(children[0]) self.treeCtrl.CheckItem(parent) for child in children: self.failIf(child.IsChecked()) def testCheckParentOfMutualExclusiveChildrenUnchecksAllChildrenRecursively(self): self.children[None] = [self.item0] self.children[self.item0] = [self.mutual1, self.mutual2] self.children[self.mutual1] = [self.item1_0] self.treeCtrl.RefreshAllItems(4) self.treeCtrl.ExpandAll() # pylint: disable=E1101 parent = self.getFirstTreeItem() children = self.treeCtrl.GetItemChildren(parent, recursively=True) grandchild = children[1] self.treeCtrl.CheckItem(grandchild) self.treeCtrl.CheckItem(parent) self.failIf(grandchild.IsChecked()) def testCheckMutualExclusiveChildUnchecksParent(self): self.children[None] = [self.item0] self.children[self.item0] = [self.mutual1, self.mutual2] self.treeCtrl.RefreshAllItems(3) self.treeCtrl.ExpandAll() # pylint: disable=E1101 parent = self.getFirstTreeItem() children = self.treeCtrl.GetItemChildren(parent) self.treeCtrl.CheckItem(parent) self.treeCtrl.CheckItem(children[0]) self.failIf(self.treeCtrl.IsItemChecked(parent)) # pylint: disable=E1101 taskcoach-1.4.3/tests/unittests/widgetTests/TreeListCtrlTest.py000077500000000000000000000064571265347643000250140ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import TreeCtrlTest from unittests import dummy from taskcoachlib import widgets class TreeListCtrlTestCase(TreeCtrlTest.TreeCtrlTestCase): onSelect = getItemTooltipText = None def setUp(self): super(TreeListCtrlTestCase, self).setUp() self._columns = self.createColumns() self.treeCtrl = widgets.TreeListCtrl(self.frame, self.columns(), self.getItemTooltipText, self.onSelect, dummy.DummyUICommand(), dummy.DummyUICommand()) imageList = wx.ImageList(16, 16) for bitmapName in ['led_blue_icon', 'folder_blue_icon']: imageList.Add(wx.ArtProvider_GetBitmap(bitmapName, wx.ART_MENU, (16,16))) self.treeCtrl.AssignImageList(imageList) # pylint: disable=E1101 def createColumns(self): names = ['treeColumn'] + ['column%d'%index for index in range(1, 5)] return [widgets.Column(name, name, ('view', 'whatever'), None) for name in names] def columns(self): return self._columns class TreeListCtrlTest(TreeListCtrlTestCase, TreeCtrlTest.CommonTestsMixin): pass class TreeListCtrlColumnsTest(TreeListCtrlTestCase): def setUp(self): super(TreeListCtrlColumnsTest, self).setUp() self.children[None] = [TreeCtrlTest.DummyDomainObject('item')] self.treeCtrl.RefreshAllItems(1) self.visibleColumns = self.columns()[1:] def assertColumns(self): # pylint: disable=E1101 self.assertEqual(len(self.visibleColumns)+1, self.treeCtrl.GetColumnCount()) item = self.treeCtrl.GetFirstChild(self.treeCtrl.GetRootItem())[0] for columnIndex in range(1, len(self.visibleColumns)): self.assertEqual('item', self.treeCtrl.GetItemText(item, columnIndex)) def showColumn(self, name, show=True): column = widgets.Column(name, name, ('view', 'whatever'), None) self.treeCtrl.showColumn(column, show) if show: index = self.columns()[1:].index(column) self.visibleColumns.insert(index, column) else: self.visibleColumns.remove(column) def testAllColumnsVisible(self): self.assertColumns() def testHideColumn(self): self.showColumn('column1', False) self.assertColumns() def testHideLastColumn(self): lastColumnHeader = 'column%d'%len(self.visibleColumns) self.showColumn(lastColumnHeader, False) self.assertColumns() def testShowColumn(self): self.showColumn('column2', False) self.showColumn('column2', True) taskcoach-1.4.3/tests/unittests/widgetTests/WindowDimensionsTrackerTest.py000066400000000000000000000055741265347643000272440ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import wx import test from taskcoachlib import gui, config, operating_system class WindowDimensionsTrackerTest(test.wxTestCase): def setUp(self): super(WindowDimensionsTrackerTest, self).setUp() self.settings = config.Settings(load=False) self.section = 'window' self.settings.setvalue(self.section, 'position', (50, 50)) self.settings.setvalue(self.section, 'starticonized', 'Never') if operating_system.isWindows(): self.frame.Show() self.tracker = gui.windowdimensionstracker.WindowDimensionsTracker( \ self.frame, self.settings) def test_initial_position(self): self.assertEqual(self.settings.getvalue(self.section, 'position'), self.frame.GetPositionTuple()) def test_initial_size(self): # See MainWindowTest... width, height = self.frame.GetSizeTuple() if operating_system.isMac(): # pragma: no cover width, height = self.frame.GetClientSize() height -= 18 self.assertEqual((width, height), self.settings.getvalue(self.section, 'size')) @test.skipOnPlatform('__WXGTK__') def test_maximize(self): for maximized in [True, False]: self.frame.Maximize(maximized) self.assertEqual(maximized, self.frame.IsMaximized()) self.assertEqual(maximized, self.settings.getboolean(self.section, 'maximized')) def test_change_size(self): self.frame.Maximize(False) if operating_system.isMac(): self.frame.SetClientSize((123, 200)) else: self.frame.ProcessEvent(wx.SizeEvent((123, 200))) self.assertEqual((123, 200), self.settings.getvalue(self.section, 'size')) def test_move(self): self.frame.Maximize(False) self.frame.Iconize(False) self.frame.ProcessEvent(wx.MoveEvent((200, 200))) self.assertEqual((200, 200), self.settings.getvalue(self.section, 'position')) taskcoach-1.4.3/tests/unittests/widgetTests/__init__.py000066400000000000000000000013331265347643000233140ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' taskcoach-1.4.3/thirdparty/000077500000000000000000000000001265347643000156635ustar00rootroot00000000000000taskcoach-1.4.3/thirdparty/README.txt000066400000000000000000000052731265347643000173700ustar00rootroot00000000000000When the full original distribution is included, please refer to it for author/license information. Component: aui Name: Advanced User Interface (AUI) Author: Andrea Gavana Version: 1.3 Date: 2012-08-09 License: wxPython license Source: http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/AGW/agw/aui/?pathrev=72315 Copied on: 2012-08-28 Changes for Task Coach: none Component: customtreectrl.py Name: CustomTreeCtrl Author: Andrea Gavana Version: 2.6 Date: 2012-03-08 License: wxPython license Source: http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/AGW/agw/customtreectrl.py?revision=70845 Copied on: 2012-03-10 Changes for Task Coach: partial highlighting of items Patch file: customtreectrl.diff Component: hypertreelist.py Name: HyperTreeList Author: Andrea Gavana Version: 1.3 Date: 2012-03-03 License: wxPython license Source: http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/AGW/agw/hypertreelist.py?revision=70819 Copied on: 2012-03-10 Changes for Task Coach: partial highlighting of items Patch file: hypertreelist.diff Component: desktop Name: desktop Author: Paul Boddie Version: 0.4 Date: 2009-06-21 License: LGPL-3+ Source: http://pypi.python.org/pypi/desktop/ Copied on: 2012-08-05 Changes for Task Coach: fixes for KDE4 Patch files: patch01-lubuntu.diff, patch02-kde4.diff Component: pubsub Name: PyPubSub Author: Oliver Schoenborn Version: 3.1.2 Date: 2012-08-28 License: BSD Source: http://pypi.python.org/pypi/PyPubSub Copied on: 2012-08-28 Changes for Task Coach: pubsub.diff Component: ntlm Name: python-ntlm Author: Ben Dyer , Dmitry A. Rozmanov , Matthijs Mullender Version: no version number Date: 2011-06-09 Licence: LGPL v3 or later Source: https://github.com/bendyer/python-ntlm Copied on: 2012-07-31 Changes for Task Coach: make __init__.py non-empty so that it gets packaged Component: customtreectrl.py Name: CustomTreeCtrl Author: Andrea Gavana Version: 2.6 Date: 2012-03-08 License: wxPython license Source: http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/AGW/agw/customtreectrl.py?revision=70845 Copied on: 2012-03-10 Changes for Task Coach: partial highlighting of items Patch file: customtreectrl.py.patch Component: hypertreelist.py Name: HyperTreeList Author: Andrea Gavana Version: 1.3 Date: 2012-03-03 License: wxPython license Source: http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/AGW/agw/hypertreelist.py?revision=70819 Copied on: 2012-03-10 Changes for Task Coach: partial highlighting of items Patch file: hypertreelist.py.patch taskcoach-1.4.3/thirdparty/WMI-1.4.9.tar.gz000066400000000000000000000604051265347643000201220ustar00rootroot000000000000004zP}isWT*4dJiAy4ËFƓP, 4Pw̛nD{<3s=yoy- ]>}X'wu}GnExRD?iF tW3jo?s>Om04OO%c 4ՖIO&<ݤI~w;]& :nK\eTM2:N:C?{iOXh;{OVT7j<Cئ-BE8&So"uksx{2=(>;/"W]ep@KPH'8XE &ǩ90W92FMFI$gQR"]k~=ܝ43CǾt:4PWqsɸ9SPk00=-ej[ʢnl] Bnj3x.XX N:hcg~ŶBǓFU{2W09` <[a갩,ZƆ)ڝ@]ɣ0=ǯav( y-H'_K.6?hh0Y*E^u:3UB`NeK@P6M+,Z3P+/K` xtN#`oNkĐ E1eѠe6mπ s 1>1/b þ /{tB!sr]qS8kaw^Dk^o`{qI/_J!Ȋmnpg@<9'kw\E͜m7\'C#Xq3FI#{F)lC7 #vgk|О&E-鶘yb `$8{jWu-SO҂& BsApxtEEe JP 9Gor% SD/̑'S]xF% '#<"^x{ޛQXx޽ë?-_Sq֔ez2=-*oOGYM޿w;AޢtVT)֩4!^GXt^4/!sܨoΛunkb.SU|[wtk:uAӾ\s:O׃G3?Gǧ/kw߯?)쟋뫛__U>"dĆ;~B^l :y2R=uB pF鄔1(jLse&xx<9A,ڃ$:Rn/&!3bPZ*u@L  "c1+8rw/gv79x }.IX0T[!oYYFIԈ`:T;[EZp߾ B)ur(z0 β:hqaK@XZ4e۱|CpI Aָo"48\rQQ(dj&&7}"B\1u0OA./p ]E'1)"iyj(M;E>߿׹c=\X߀o?ݤ'w'WKǯiZo _hlƊG4`O F4n uVT5Y>]3,I*\R̰GDF`ZIA0Rڙ44s`J b)e0H{f6_785x߮C)'=t]0XQNmYZA3#888Qdtf}DZ-jt}I8>/B<f|z ֹ\lˀXw 7McuBw#hPiB"lbb{A's Ø\72@ƇPWd>6GOowqNSZ\D7Wi6es;2Vԋ ⽍]w^\ t4 uФf=iRͦ!a#(6iS4 M ռ!Mg(^n?MF7u ^8R꾍V$uԲ&&(ޚ,⋔mlD'A`Oz t3P?at]yL`18O):3Bt:1 ,#߆p4eòY4hd@BF!45OD2L93<"JtGb xm5 c &EB[# ejoĤ@FPvG;:mC -o&o Pz'׿pqA)k1p9HD+OW/‹h<.n. 9VA#f/LҜrXvO,/,#@gSe,; $\ lZ* Rv+&5tM+d'Kkidĕ)&}=O!*0Yyqa\c0%eB b|B#@Q TS9tv4t S #Bbin&H9T(N&ǎKw.mcמs AǏ tCWku>"jS(:`_#zC஢JWdONhx/`5/`yӓ8L\aFx{[ Am4C#lJL6=y7IGRiO#;l¦saOН"C,?#Fb *B5=A b?={t%* Y-\~_ֲыra~^Q4B1-5JՃQ3ai|DгZF:O Wmp 3I"a;V0!u|E b6GסvL 9$,0&8Κh2s)C o _b$-*HvG<@wEcp|pLelxƽ O PiF[pfY2)\i3C"v"NCR|ã>=:|ev'Ƨ0sQ#5}Tm(ԥ Ra|ChM T=ڦ׍r'#9<# QC3t_}_.A:K̍P}S3fꂛAZ˞v:p4r"kz,k +Z^4ʋJȠ7"޽LniwVu9'x/#Fqx\vo'=\CNb,Ķ^j*զ5hD+3>NnAAZHy' C׎qlбa:Ј'qo!\ ԴbW':KxGRek 7 QPo pF[z-j[!0.u2Sw4 {IQ[AmA 'qa2p!i)P"8Nj NBGiJ!$( <-*~(Ae>`ѽ O {a,WJ!TWbB1a#>ֻ~q`vgJKi }V}[D!ƬGC &6@aG<P<@EcsIjU~-MF ECfyTW,pHjP7;T#?\} ~.bh\2Z~W ^jA4\/nArir8ik#_+F󺻀\]ݤSB(7N@at@c CuI%L@?9PoR#|ՀpGmaEwN|t*-1-֌]2FQR6qhvQQ m)@DD -f [Pm@`I<%9],~s)YEA#`}p xSîBG~0>Xr:gnr~}1#ѵm? ,/[JFY3<4pU e8t8KvϥOS˂\TYD7Fߒ|1@B:+ 'fՉ)>fdJ] tDluldF1Ey.,D2ú OCjkab< #o^X{1Z8_~ܶ a E]ړյw6ǧ:@vx(œP;_vE"T1ځc-VjGSj{B9]w*0opf.'(/ݍ~̏·4 Uwd)Ș%@ 2bQ 1w*-0"Rn3?pw>jicNp !V#͍pT `ycKH pL4΋apg(QGnq{7=t],SvEns R-P`kׅŰ##C,֟Gݩ}H |63Rea6Ar aTfjI*BQO; 8,.VyB3o־ ,ExWV[\&Zރ{!vk̛Kxvb /&p7I]V0g.uՓZէ׭ ]4 ϙ.Uﺊ>AXpρul}r1Ȇ#2vbA2`bxzl2ӳfGDi5|h^7 3U1\~=XxhX`|סph&8v.Ѳ&Jfb#*E=M qffWiU|4xNc'] t4̍2Jc5> ˮ2hUpT?Z_:.ӂ`GZ[K.{ 1O/y~IF$kNRh7zNx,Ov$VH}p{X Jn|_#uTΓPlSfа`g0 (YBB>=+YI.H)eSrv*#Eڣށd9`K`>';d8 ZJ|7*W]8SӔuBʯau;hbO6]#RIP:T37^E0 y3P+B+UGXfg" _~eRI] Z/AH>>NIkA3C,Ykt\:}:#d ЊUpb'mrA$zfD@i;6pm`wCϙS~d:Zx>™m@wb-GS镚9H~F?1b:L%@a'/)JVkE䭮::֖~Gw0x/yc^;-kUajweξfLqGԱ.3cڊ|q3fooº\yi CJ-8:4z P.,?;zb+‡GǭQ,Өڬ;+̓;v5+xlӔW;7c(ŨU%L8_[3uϴRG?.Cwɵ4 ޕcd`Q#*yҍ 9^ fGC2'9:r\`n(t*lgq4nH[~eU,^"]tJ`!rM?g7ơQy*rUE\A0K |? C OΈw0Jy=8l7 3(ZR׈Yl%pn@\}#Lүq\vwmJfkg14lh9F,s呣KʚveQ2Y%i[M2.9 zV2W^k1J9(!RJ<Gq] h`v]^vP/)wxNiJcr`.Vfj}K])jݜתL`-2;٤0+ܘ?"]La;IqI4Dr;?E7&P@TJ 1֏2ЄX1N.&d IY7 ַN$DF1PbB?x9)5j JT+J!X#6&7 q҅<(ꇝy l-n3l PSx%)i=oq- NGZ]M.ϵ8E v^vZ$ˁL*t"?IѤuET @Füwtl]Nz{mҩ-B>9$o(Űv~z˛H}yGP&S[HPkF wMZ5SFþbZ[WCc|,s#է>yyQcSX7Xef>Ԧ1Gㆶ641jn+՝yPHMFh6r C9@=~)`r86/w$j\__&`=PW:GACwЋ~!nҌl-pf 9wWlF$&<_)3piH,aMj [K}gn/0$ ڭ01NEרչ릃DıE{e^ 9eѩbJmi.l4A7r=XR5ΝEO 30-H?fP2YXc)":HϒRZ>DL13u5}y`,&XUy1bb$WeU $RRoJ"-u-6)T̼FdԮA (L5+a170b|W0T[UhqUwhUgdbywØ"p}qG)(,oB4ZFmm0Q֐T4"EDC{N:z"Y#r({VSRhRI+/Vn*]hT Hҁ OEV#I";pqd " VIP%kISJ-{:EhD!VR4x/e1ѲVta_<4(msȻRkA4uKڤ+cIZiLcߑ[2BY4>U:q6`sw1%ϩVbeRaž(G1 9$*iS[jUɠ\9LN \g3M'R `*ŝYio$̣xq8Wp!" UE-haRmvH@(% EN+ NQzjKLh> LLJV"JS(l XE]3cʄF.t]oCVY e⼖G\fQ5^/bXl 6@e_3+1rp{I )P3[~KA B }vP@3qMU=%rc{1krZ\x]GoЊA)CLRAg B|3|*O4y9Kى/%n~յ GrZ8p=nMRq H.cz²/gjI{3b SZӐU_{,;`Ȩ?eD!\ΖN` ʒR42nh%AVrȵޥ'm*'fbk.XH:cmS U|2|]T}x[ԯU;Bz怡'KY4+Q|#aЂUڐi4Ql'\b2d 혩UUrMvq塓m_g^ÎKW2d63h+xdx;а"6b뽧c/ؾtfyqSZQV\;՗*:ΖPuZ tx 2j5q=bU:t9G}#_r yFM6wf 8w\='}F=Gؗk5rb4kp[.mҍ.fritlLhHSg"~&}=bWuDָe>]#L?mhUjU3:- ɕHX$Ɓ|M IEjhl˜.\%*l {2=}sHN}@5\L)B2N* R.J W:ԁun m}XIځ2׮Z0O"9u"'}^=D+p;4?(f|YZbYZ+O9j<oA\uh89ۏ⳨`j|6b=b-Q<&"M녭pF?َk#3#0XiLBz'&:ܺH\7a>4#1zT2xE):S%Z](p]JnW;.Yey]FC;9 2V_ J-CGe ]0%u~Tr! |!qi;.tsE/V6vBe+=gXBt9L!,?qi<Q,+pjuf&~0su~YR~<]eaj950\w; ~Z{@MNb 6kf|B-ms[kO&v\:)YlWrUnwQ3b!ȷR,l+#x<IKIzYqq)0z談Hc;MdEbY[O⒮ғaQ!5ZMmggq0׶97r-g.;[}mor3GENrxRkDOMW_{woa˛('i\D[Yqe55Ž`K]31kPs]OFt:29-aTQ*gH " ZoXLt Niaݎ^K8qOhr‹]r'(jj' 1 q21Bhԍ ^ӯGQīC7Fz^@'7:bu+y^g~Wn=ILɧ:'2xSb41mfl\cj.$X5Vg S3s(Pˢ`b]Oco+qi)͂1|\UT+@A:VYVDۙΙ|\Vq/R ]!eEZ;dlfF7$:~> &躗GqDY1}0Z]+l@o]2s˩EPD[ef>㐙k_/ }D3{W!lq2g9ˁG ֿQ7yWj] ;VK}ZewP5[;fc\8J^U7 s']oaJ}:C˘dfI.Xfy5dg4Cu|/+~H5JB\p{e$`>zpc?70tzCO?0V=Ve-~_2}\'/C]N9;ϥDHm檁(k>]oaBu+8Mf&*xgen2s}x8?OoEVIv9Z]\k]9RmuzWN4N~}%.dNat`B֢2&oEgt+1 ꋮG&'䦦媔dZ<(_])-O1'|pAK80a݇сJ2VkG 83 s㞡5nDH!h_+}"Tǎ7F5SfG󢻝F ؔ{a;8L/a6D5|m'QQq,"ZP%k.߉&(iA$^'H3 t!zhvKZlCdzbB#[dĔ@^2)!u_|%V PD:ˉB LL)g`#*Мc] QsU~Ym>==/TL@).tOg=i.Ĥsܲgk]HofrG[Dy3La0 YSY%%-)F?E,E jPwd[z|p>-l靰IL)E䂯vwo_~'[t;J;- p?H6歰YBdR(;Vuz;l ŮJqHU.8>Kg$H }Lܩ=sJq0 }-I,58qdḽ!_8ڭPY]iWƏ [ҙnJ-& sYLvEKh u(|/-R3Šݮh*ϾmY*ڵ }rJ|7yOO[~o%+TޘJǦV)Sw"ryy,e\CU6M-ǛB%#+lt5{_c^PB| 2@5ye3#A"IE 4TǶeEfyM4]7rnu-P|@~:^(sRJ,TmbX1 #Ӓ #i%v[۹ܼn{DiHonq˰Z=;n[7Kw*WV+X]uVXtT$k\3]O-! 1[{kƤ:BbXIj-!~Ou8n=3$tLl2e0wО)TRs!{99ԗrh%qC* iӌn2|yBX㔷b}Cg_&^j9b*0t5ᧀ<,%h-/q"?s 9Av0U=uYj/.AS,:0%I"1Ҁd:atk6}Q7M@oږEdj ֘_. v;D3пw~\ĖKQvei"(Qe^|*:c C C=citbGZF [[PD*)z.!hsXu59'/n!$,9 /Hׁ!)G.9[ yFFeuGp&BhrൺH- BlrX#!9&}{?, e]GoU{6 KToOuPR:p_  E\``Z)ҭ)k0ApGJiv&Z[*[d bVW@|F<`-㥑w<rs|;-y}d}8Il@图IT #/Inb $)aa-g H/pWvsyLW7}66'O>YXUkWn~Vou )ڔ`(Y86b3(?~~8Pԟ|W[/bMnX?o `諏+k l<,՝,G߽xtll.on?yWO-,Ͽ_ o>yϿDst9O啑z0!fwQÔlgoۥL65g?Ҁ7A]Cԝ0G-NɓO6>_sw?>mʏNL)g9>%|O=;9>uvXxx(wMmc<~Oz Lh!SA:-F+E6^G}WsvOՊa0fc#_5H'7ʄ޿1~KJ/`a /B&!mT"D`=Iõ1BfG;(PSQ&aV/^oeu=Ң&7D7d6 n'Wv7<);46iE= [㓼IMX蝵KPY9)Fz4泻m)HȇHxI]wl^M~pe>=5psOQd.W ʏ)`t :dr'.p@3Ay'{0Hg(L33\<18>2-?dH7L` Iж%Wa 9JK8[s]A;߼;}{ͱz+hӠ[mFkjWMhI*-BB_m~ݗnGmɧ785-KC~wýfXZD_N. 'EtF FwޮׂٴXZdm;$k;+5zķ,yTj&h̥fU~vO{/wuhI;`r \:ٽ=x'7ޕA<\o9+L ÁHOxcT5z'| qJ)vΣzIaxڝ"1h#+&:>+o:Yq]rT "mއf$1:l ^v@9'JvZ9ԜE\`qK>nB1H.4y^k4XJHɵّu5MȪ7m͜M $,!N`Tw}U2u͚qŬ%X@kYhUסdeq,Zp:Wʊe`qNyX8#uO ϫX?R!Yg'|}penfp@/pJ^FTNqHJU ki;hj*`/2Nxy+=獲ݮ2N' r!l˗ٙ(PfM(ie=n'>?(Jq@OM`{j<;Hfr;3Aos'dL~o#yu*pÙjC'yu@#:ci # la_GKyQ!1DAD3niO1y'}־ؘhzEC zBL^8 Km S]zђ^ԇvSi uxag Ԟ [ˢ:Q?:͓\F+࣡sk:t [b&z%k]ynq9723&{߇Z:P1ɂ5ZBJ `Tφ8#uډ;&;?b|6ԊAAgfFOV9f6< 7NCq]H9g[OOg ]^luR"e1l,k.ìL yFw1e3ÉMVdZ( )#:@gMZ E/M?]kw>] we{Ud *%#Iux D ÜSj;6ޗ9qR|:D;v*frn5p-*wkeWctMcRE?ƄN9wL.&5zl_3>c e^f^c쀦'XQg=sV4G uCR烀\K2#MV&V`"JP*E}m^oDZ/bnI1z &9S2=A Z;FAPIcUcUK&c+hu-_c6ˋٸv*8ge#0cLuV[u-mTrL.v Sۏ xL)s-g^E'EUg\QWuXfu;FQ$Pg.VlQ4{j(UPUwޚ8c$ ZՅK~D8/=]Ukgb2V'?_Gޭր7[w 6?l5CoOYb $!]͒)J+jƷa,קq^|j]?BXi²_PrnqG{g]doǶVWt_{Vrʗ@Â ^u1{rufc„vl ƗQij}S=ROV?kϪ3 HMs .ӉKܥ r^n#!$0{iCA1҈"& Y,:xt:G[ϙ0L(OO8E?֩нbt3"~q6(6Q7 sF'eJ7 $ƮLǪNTwx855yL"L:d^.ă %@9GkjmѰ y:Osx7QE8baZ9myH)t.6UNi6,$=DZSɛhiպkDRӓ"E_d>[;{֣VLB,5}Wpys_yU# ö<:9ƭ1 Xa9ML:鮞4C8dQ=8=,NFڦY8K7w, x˳ om1Ӌ,k̊!z TUd7*0Q\5lx颱=ZKbŽV_3]>ܻ1lv%( cGo} TgckڪV6Ss&ai\[W9r2;WDOr 3*(jnmqT e( )-k3ḛ|9 zʝ9*Oʇ7q7ʇF)4=5EJm/w 4 …Eks\}PF >ZnduJk&v<󎁥 ]Nι>bv m\iڰ\gݶ;u2c rab3gau>}ȱZQB6UD4Z^'g rb;O34s+ ~>c,b! gFgw/Ӽ Yen{/a}P>+FOvT7!xGM{S!I'C'OV;c vuG&˱S:~$"j$#[ƞf@[~9aʤUW+&̣Enru< lH4PcBf"&z)JYܽ(@C &,e$D#{NψUBecb:O~{FlXAc-:gB$ ,I"5 $of(0=jȆC>kc~);|7ۋ8#7CJ*"t]lhw=P& M-5b<=tij𸑽Cdp,vIguZjwx1{b=w&8b %Zy4xqzo`;lp:ևh֫@Nn{ [qZ)AT5=P|NTEh*fܬ* H$JZ+Oyȉ}۰(zL/%teY/SGmE_Ëj!0JKZTî<|zEpNP3(r=VD݅M r(4]]«%Xҭ!ejJT-?7/<kb'mi\)x.7qҠںj-c}Z4!v\Xwx6s]0T EZ 6A՞cvx%V[3N A<͑ "vzurг-HVQ6F<[ P!MNċ=`[sve2\\t;2!t=%/.=1o3JfSw+jMsAoߺ}ןM:K"B7j`hdO$ƒ'pħAs*#IGr*r6~;yl҆LYtx תct~:fu 0ZOv8K1HF YMu՟,E鰎(0k&NoP]g6(Ū0ckPblX+}]=al:Mi河HM<ՈK ,EXZ _PƚyV" #qpTAiCLҬUƀP}v:œgX kh8tө呆gjD1{C)ZVOc<IРhi%wh{5ڣQ}+G{7bvDjPƉX pu!䁗R(G ڨ=PtG[6g')JvC@ bXDM|jDh4F#}tzg$1G;M9AW!P]8q@I%IW}|XCA0qY~C|H/O/ZקkOn>}z_swo`<_{V'w*:g+,}Ri6'J//B@7 d@. T|Z#] ([wHC(iZyKNA:"j82ȵB lL@G< i -MpO٠_Tke+yTt; BjPDykJ|I/qaE\h+>:)>;/ƣ Q JK~@FS`uOq S $|'>NQno6> 3`F4䞳M!2V'\j@U ˝vR7WUɬRiyhslq u:Q0061h4Z炥lu^pSZ-3UQI]E٩뎽15nN%+x (~;yt-!-SӚ8x5\5לv4eXeYz]97j'nwPR(8O(G$/W0"y|:J!ڿVVB~.cU+_ON2]#w9/cw:/ SVp&yXYCJ߳m.j%JJ + r-Gg<eALF6:;xPFAN]؊]]\-K =mhի?3Ö}vf|z-b~RwGq#xU"0V bMyI3b &yy8dGն%٪l8Zp ٕ_5[-ab{K"m4ݬn:/]]1>s ~VISXnAO@ޠ"^*lU}^E75]IoVw^ T5':%0wpT!i\S=H毩-S2Fp}`c6W7+0ط[opye2 z=1GU3z@Uw Mol 76ⴇ Jk 6v-D0^EeLlcuM@D8D e*W%9OsV6:MM뷇߬jʦ pdkŶp6ܙRɞv!`gCcbKݑYY'PIL]>6IfC1˦>#nOl1x NMPs}>ws}>ws}>ws}staskcoach-1.4.3/thirdparty/desktop-0.4.2.tar.gz000066400000000000000000000647721265347643000211420ustar00rootroot00000000000000UR/home/paulb/Releases/desktop-0.4.2.tari[X0_ 6f T !0@j:ul#<>?ཷH Y*]tlF:Wngֹ M|:w ?ۛ/Tv~[_^z[67 ?Ӽ ,7$ ևf[0ju_n ~$RI`{{}𤿣׷O6ív~scwsc~&B^jwusu]U?NL9 oֻ%~Z?\4*?os?&Y7=(:?0YΰЕ?;(~t%<=mW}k{ |dw# 6O7vwa7zno; 88(ڍO6v ~7w' 9lt77nGOhSw77t7׻';Vlm jtO~(\no63/'`}Mmmll ֆ[u؉A|lnl= m}"ao}cfd_P<߿df Nt'AL8<dN9wT ?AGp8k:(Ӏ`(8a`~Aݓar=t1Qߔ;h}ɋY^1%8J" U,KUc|Zp2Acdt>k"ǧ?!$mb_()4PޏR7M;W21|X>+&e8bRgRYf.`ԯ A m2 Ia:<)jy:܅3\ε.'Hn '́*ˇf~v7,[AZQ\YަC)ZݍN`7xkxH:;[qx8M0nb\AZa|t6;$^ Vԝ1 ̙k=04l %nu0փ01m~p9 ܏ʦ ~OXINa.*J蒴<|p=ʔPI>?v6Rq24 /89.fo8[ٛ7*p0A`&%!;b6U!AYd[ O暂̒;rH/taq;Q|d9# hfU(G(7 vuW?;I+ͺBπ t੄eHaS*qQhi2<ĆH,᫷aSJจ|Z;ʎaS#A"5y}Й#ؤ4!u/P (Bމ98G(DI26ʛ@~`*",li/q""4ȅx Dq<j,gHact ˉ/Ozp7o)%fZh*Ū j["7Vpi_:rQ5n쪑OvpNfY|}SP${%XNGP3 oA YapphL:Qd(F%om$[Otk 3`1O ?\;8=;Az2Zt#>?čӬ4mϩV IM앇NZP8."sUTy7F1JL:h<<8~ˈmh=z`C@S4Ϗ=8;El] ;'N4)hN7 h3Jܮc-->Gت|ontiR4*}fX͆#\Z?H/u0=~8 XE/xrTɠ%GFkݺn [8SQ:v۳v6ǨˍFhIz8Aǣ˗/'?·V8hdaRxux~vt|t3.ŅzqzgGσg jR!ae-t|Knl&׊Ԝ;EXŰ6ԂodJ} qr?7xjdMOA+uvGm]$t$=J<.TJÎcX8'@dp,z 0 ~&2χ @==B39+//?ì'+h?) =c[MY~'Yۀ]!剟6L8L4(`tܚŨTL`)q`uMF΃k,LF܁T5쯼QK& ,c6ncHMt;pil5ogv5PLlE(jhȹ\Gk CnOֺ۹)#|ERqPTeal1Z3q>'m'T1vHW9i M> |+3OS,^$ g0л"ѝA1>0 kQiSj=SqSo˾i=y4@;YbđVm>VUCow#~ƛ柺%-=E tJ<}tzR.0Ҭ lp(xƗ%˰E $b]|M_4sRx׹l7[rr_ߢUtZ{+ y%&9n)F9pHg!NߋI@8y7Ϗ.ΎFJ9izg ;1=vA֣\?ؐ~8s6: bXi8MGӹ2, QbF-䠱r{ւU2^=)y{T vfco]^ީz 7 ؖ832.&̯陻ZU.OtiͲZ Wbn {Êv T$N҄5y\̩02\iX^>>88:= E K$IѬ  ]pxN m4Zۧޜhf>[TW@ i|WF|3TDkj䡪8ǒۋO8KhLx*Y;XٜD*4J7znu[h4g,0)A$=]D# 4pQbֆb"+c^kh,K(ĮoS`Ov|)S2 Aً5ܢ j|ǭ-Ӷ@vtEȇ8"jؾEY|(:sC&)Q+IK@ܠpz4+sJ2"2 :ϘOYpbO Xrr ckƺ6PYNVy:@3v^لnX&}`Y0$"cCO'#jU !at(#&# hˆfk|A#)4sl"6|PzN1j(NFc8v8Sŕ Ӭ5'zH&]2ك+$Ok>+GTEGrQ ntI'W ۶vt=y=}4v{k5/S|^q* )8._EEQ{ӰH05;XX&ƪf4a*2W6c?+(7s.4I2Ilȭ,h~|brWZe l, huq" mת%1eXPPey!D N.yv~ṯ>ҙ}F0AAXb:evRuI A2.8` |PMIU *a~BW&[C*nζݵt+j6,qp7xXQqtS"Yhj?XrAJ_Mh<3q` ?&ߟNj>0L"ȂFUV5*L0O+o}xD|k[ 2m}0*O- ~CraXҀn%w 6VE+Dj CDt5U񔗡.ϟW= yM UB7joKuMZ_(2;Me0>`A4ek>(Й?f#TOl+ e8uryۺs[)@ Аga `L3Yy\%>0 Cqx4'b\jS 179Vs@;< 7K0˹lݗS /K0~+O6>2 b Kkz-hߗ!狥]͘9꒱sMrGmgy11LK̋v Js`nwX,̦@'0W&UU*pֵ Z $,pײ%݇*>|CV-4z[@Vy;fMHU=IW:5;4lV? iv-AOQ;v)M$Vn9gQbek6$ c.ԛWFX]N |0{Af|LqH!`Ȑ(8/ A2"x0AT@[``> ʯ%!V63k٬V4*z&zV(}PQi a4c{ 0\DB@ 1<-&8Ul Z<<0Vy 'h:".F/| K,-1@\#wN.lZ$TPȩo˗`Nm~撼/Bjy+ %yO,toڕႍۑ<J__ڛ̯T\n.+Î\9%wDfqпC-SLjX zjymi/W4<`lo// Fӱ˓05`~35`^l#T 7/v) >7LBU}rKA1=\־d ~Tw?Tup~Erc\!VNpSYzP*M#b8 VR0IJ6߾o3$ͩ|A3܉qUm xWw' X,r+Rۼ]QΛ V9a;w?L@;|0*dE+j/ر} LXjs5|,1C!@&{ye-)g*p2[Jdh2eL M7?ٳH¯w)}sEkҨD!'zc{;l+&X sOi_ kXv~M jĞ%z{o+Pom[5~=2GL=bSQNZJ7^38)"y3yKNP*һtL= ÿ`Ԕ>ZD+S/?h +Jm> NRjy#xI(.)Xu7ej*֦@Axت@|ܘD*6sZtz-fҪ$ $? [S Gq\ȕQOqyp@:&6rI0"]}0xo5HnJu_\רIړ*vJ>_<4!o*aҬcʊV+_Ӊ I XFXe8QƴpEz 3qntuA9f׵@.O*b:p9~'3A-GNaU Sk"Ѭ>(Ļ*#a7%ֿᇦ"<ޅ{.ǜʹ̼b_ EhK\<\[93LBCYO?S{*,-ԹS~f{zv)yq(?q|[+BH#n hp zFm !5{&R>4-A7 P%zgmW),wj Ah UZ )Ҧėp] ^KА- vd_E,,-~w}tkT>vJgBG}G:N~>:S/>?^>|t :ժ{s![ݞ Tǵo)8S7,;P0{ "y "GhuBmTw{:C8w'ǀώa~~0 ni5H0;XDCBoUptn&t'a>ԚQsxoCvxb5;-?nƞo,8)JVOa/q6#GٔO08» Zfq#4ɚw'Tu^^|٘Aё>) .,Jo~cFcw; ȾyVŽ;ҲIt= Uh]Q͈_ak1=^]5S)^W!4;Cj EN:^z&nɞc+I(@`v-a_hHæn7 h+gMp$A`:-WɡHSQY;\NIiW!l*gFW sNq2'RSB&2έFŒN4/S/OQZ$/ޫvzxo6T6wizv܈flm_* DrDN2 SUM""J%;PӎOu.dԤM⥨,5~<*kS"3":xo~X` Tqtҵ=>- Lܢe@-BjDNK)&-6`BctY&tv\^sQI=sOyX"d7[MDI_]ǷFqݜxݶU:G]qpMdO+sٶS;U:V抉 vnK-DA ו,^UX %: #9 ;vC5T+2{LiQAn|Au 4;O} SBLLLJ3<Ɠ FrƔ1ReW {|23- ruƖ*ZGHi^ 0h:(X408;3*;xRBeY#>MT'\DZ4;wx Fq7&H)sNҘxMRYŤY 34>ƨG:e%)h5 k+@CSzYVS] ʭ U[1vF@6 , #JƭH 8)7a!%d4 &ܴ0N79Ť\ hR[Rb(tjަq i{if "% _h :K9눤ޗ#G@)3`Ba3u&d3ZHSRYxm,օ._]'σӓGG'plѽ5.=`cR8d cR}tu;,RcOnHi iؚq4lc5{tQƷsR~+ElCVfA@y1kQ} YLۀj>Ov&Cwf f NA͙OpBh;ra~W t9;yg (,t$7XU&֐5)bW4H5AOa6F%|֐,GB9岽it%rԙ׹;Fo9G&%0$Rz5UzwD>EBФ`6ԝd{8Oz C۴`Zq^"X!4oCda0F:tDH6K>86D6RYxWd;j6&02tYOoYӣ PwSy:N/C+4ZCht2mVn#_MJ -ZbQ-@~͇0-'^?jB2-W@B&ƾW~ED'"頰{y!ϘĆ@8aD!r~agfsہ[B[=CpI-' %m lbIŘ ͉X4#BA_;]ɋ#_,Xڤ fۤx&Tcr:T"rIE˜Iqu@K UO>U'G,Q%:O-FKYY()J' p eYAὐVTقͽ$#䘾4F9L.X KQ3@eKZ/(!Kv"? 0j0oJ)LBEE(ґ0Sximn%(C;T㸟HR#G-ު,o@IGZ Jo[_#s@k&¿!JkR%''I4aY n$Q͛RaZ:~08QՉ O ;cK -6QYECQ.M* >)fD%|ZMh|4 ֨ yl/I3zX51"#preF-Ħ_ =lBJДI\Ji4RØPnV-'7տLPkʭ itsfؕ\UѕdiB|, {)VLXr8L*/RhɫT,u, Q1tSzBWMR,rl"UbO&ȱncDFqf5noGc d`bk+NћH9F)*y<h[Hϋ Hݹ߇!+Sn+=1hД ]A.Mxk)j}0Z;`(әUHXPŋj(Jf}f dF)vqbd9+Eʳ]c] + \r6OQI+w&02LєyJU, hQuEbW"<5dzȲ
        GhWc]b@V|&OXDR$]6؈9ͭ_dҔl]Sd/]P_߄RM N &Di3xe62?nCGn9%>1='̂M{nb~A c4#EFPb1}>[JI/Ń|6b'.ys4i$A:bJ9# <}Vdǂ'ir^e(13\&IG52-Crc3Bp:n>" _ v ٩G8 4Øܑzc5n#Nٲ!րU1%t 1{]#Q2d_]K,HCӔ,0e IWQg bk6 `$װGwn<婪(BqFAÝPM!,QH)}5BcٜR"틸$%Ɣ֝1֮ai]?M͎?6Hne6&y%/4\1TA%tO@g, 5^/qfK]_wZO+|Hb X(bЂbē[볉D,̢`P,@ΏQ 4ӎ}M˸& qp{݃PUȌܱ2p|U ] %lv";+P[U61s")^ۋ1PkHVVD0WYJTcdHxe232HM,v  )C@2ݿ5y%G S3>rV4̎E+$ۑ& f ӐZ.FȰ"eV,q; B["<")&:7U%0 hXaZ(SCچzЪ}!DQ6ږ+HӌMdR₄(*`Ym gwk M(nP .H\csfQXjh!b陝\H|k</Wu&ِLKXɝ2Ygs( H!YwC++e(>ysr⅋4DA;=e3'ԞRQI!^[|UxHYō1zVX|FTv5}JI3$Lc=w<s54mcRwD"Ԏʕ1hFL/8sHxk x$br~}QzYASB*[4!z(tȗ f m";,eCIr@&Fq(3BF9ƀ;E4"V*0<%1V >K=U$܆d5rr%̋i:D $'a 2gi% i33: (W:YѺp@8sgn|H1cѡ83t{9g2䄹U!|2Ɇ%6jح8ain4O&%xii˱ +9j]:CxHIr.NEoɑpi"'7s.4Dq/+sz k`SFaH$Ipu-kIDwa(b]/Å# eVqnJl(N0'ɌQt ai^|y)%#艾N.Z}3Cvz:՘}|J =V\kvuD1( <*wL[W"LJ9m/%FOx7H]BK@x2񞨦J1߈푉HT yGo'7{ [{I=!r@-#;*{SHxÐ6h){[60tRҮZHuyxi84;2Ϋq@9.obΣHRélN( =(H D%KʐqФb +mt/KWnmJa$y&Ə2 =QbjO;hWac/F@ʥ]Gb0~mL&ABJp7G˜Uh'FlPњDžu˝Ǿ } ^:rr2h4ZiBC,XM+20FFM6i `4'dBG iƒ|"iac#t %L"֩9ºBp#/Չ/|y `@@*{sB]<&YT>PE]e3l-K/3(#RJbBjʡ*dME/!f__!1eJѰDKHo5D_4>z~TPiY Oy>gnnfC3YG]İx$ji\̬\XPfyS 8֪msdJk_UR-fa THEZzȦ"06$e'b,Jc {3*0)I,yNloLUw2 W-ӣm}>B/T! eG G7#M!Y62o+rKJjx,4 *@2:&:PRwfLs0q+.f]L}D8Q"mn:=L8fA?h, HdÙI\cDX<0e>GJaU ݕf7#i+h{A7#&!;I\N'w~Km StL7/=g4igHL#a{Q:@ɄMO̸;Hj1#ҍAld?X7db1l.8;7Qmڵ+|(u?mmI$;2olvW՜Tr" / cd]1l m.S?g(!#:% DX\ܮ;YJԬ`li9gXԂ#߱EHc*qw>4[f2QL)c~.*c0VZ@{% cFnMQj.bn-%0%9?K@i[>/JamR&jAy"bۮk1ܦڒZRx<3l FlEݨ.039o+ "W2=缢qV?h!ۘ7{x0uX,e.Qa#ؽbNrzh0Ж_r[Zp9rْdž bxƆPPT¿ t GR{N&2kV@ꜗ4Mm%Xȵ@u¶i9^FM]bt 䐡qm16v1`Uت&ܧ$#HbW6ܻ`"F:abD1=P{zB!uaI^h0و#gt&e%ùjtv}xdeNm)D=O+{)̭fը).Y w+;(h,5ƜEWqY(l `2G@7 F9-א`IupB J9;J^zAa$c#<$VD,DΔ~WT]}B(;2L5PVFrd)*Ԑ C,'\`ڐ]l d!VūDϒuA5ڗaȮ5 9axD$ ǰ t۔NCT!z{ےyvۋ/mq93lMhM:\ 1&ӖTu.`0՞J">`98ظ~;ceC59H_ȁTγ ߰Fq71|>LcEIE_m/-OH/MmDߕ ˖Q3oBKi0*×VI0skpP WHrُfȡܶZ|!YId/Dh\\&ip\y˒`&": %pxAR!?9\xw:14L-ج9rMEK֫r%94; y.-$Wrg0\nH}QR7OayzL Dũ,YkUS'VhK"nJ lq[B/4g>eW_-T'XҞ8/3SN OZPyrKGxNW~I.Je]k[eQEXAzdzx@|Mq]XͫX`uPQ)&?p!WsbHyjTx$>+))} ]* !JwutSz!t֢- c]YSU &*ASD*MNL)gFW.;9/H6vlrH)I^~Q8>IVI LYKSr.ac5LMEdD] Q+L+LWs*pR3%6]mBaBdm=CRz]THJ+`<:q|킖F\4E}ip ,GnAIa.Aqצa8yPs(mVgpIx`A~]Jo܌7҆\1\d:jo.˜W(K d#6d* WC{rz['dװa6:\3r{ ` %-(. R ]JD$e Y&#PXî(oD23ھL~ I~YJEѤݒi%f9YXwx[Ib'ړ-.k۠{nB.lLα v;/~2;[T_ G,'sK,`DÈlt*q&/:7%ƶ4xTR,(|IbgbPuq }5 b {@#VG]*:YX+u H#V–p0rYs)zE#Mi5&Tx}XLBkO-#]1@,9=e\xa8X[o2 aڼr\Ν]PepV 6iY,66]*uT>&ʹͫ+ȤaZh9ՙXGH,u.k]+B&׮0 eWSהJ/?+&le1`q.R?2ږ6uz00Ud14Qfl]T >U' LIAJFּĥ3tB:7nj&M;745,\&A5@YSi=jmgu_ 3-fnliYg35\6>>QPRMF[:X3Mm"2.{:FUoŭ.l#SBtlJ?6QDR,hM2 3<-e0!6,LQrvpnq^kZnljܶ2S)o`Rx<ÑzsJ&S"d^2g?@aFO:hɀ|&{W =P1z@6J<[@`WPLRvul Fm~d$tJV'G0C$LVN6:LKd=GZZ"%y' Kd' 7*uڶKH:hp^ SLx?HTul |Wkb쮭m:=պAj\$~^6;uPT1\.EȑR,Ѥz{02;RC88?6B$b+QE nK=t MaL xpeTuD2‚6Kr5Ҡ !]RjYXa:R | &۝gYrGnPeV 3Sfn8+9[>Q#-!>6I B'>U> kW8w1gaA5hR~fK@-~1UvcC><aw|$4y>9 5LhI]$ѹʏ⇒'(T%Z&…$Vm Tp%8I"89_gߝjO'xGeÓ0NϏ.NN~>?zyz:T"w#?up_Sؿe7L7txu"?z"spz?8gN`Bh=<%; Td\/=#1>A}cQD@<1sgbny O/V >;ħO^5` P2HFpbypS8Bл ~Vx \[PB埃p?:<#9 з"B\ϼѳ1.H[яQ8y+ K|PaNa"cKޙd9J9[S\M#̟,~#o56Os XP>й𳀚u{^ЁNtDuiBFwª, )1ΝeWrK a{7dQa UnD((75U)C/%FAաjRobCؾ=6DDsS%La(1DCH{PM7R r2Ա}TNmmWje7x%t"z'y[JdA+} 3I罔~<{xpY=K0/Xo5fδ(8YN7mk6pnн`tHgҢ>j5 Fdb .)OG8*y.'x]hmSƅjmds9nRWΫEΒAv|77E1[[\'N]poaAI7~i,"´zjޣ/KB F|F9PƖrJJpڸҦ( T{p~#~`LC.LgϾ&5ݩ\gP@u|[Xr=y0YBo&E[Kt!phYMHBׅЬ`3LrA 8 bێf՘+Yk߽>rՏ-hJE?}߰qd5PKU^3h{`:E1]vk H\̀΍o˺c;;{m%YBDȍIսHʖ%ƚ|8/D¿6_^GC Rcji5d;.KytL)Wlv33̑="Ix6q+x -ao ԡt, M t:VWGדQv~[tH'fg}-Jiu2G~77_Y]o}}{o\]0Ee~#?/"ei1I \.jn)tW*s^pPy :VBC6`ˇF)us2Zc1|2ʋ%Ir'JxLgg 0{.ەpnUOomg =@)(6#a O P|&!\j㒴 b bew`Qi%yX]W:It^ْsv ?G^(BJlkaRkFz*SjYyݤ3IhG C6$>p?rQ?\|zsaL[H '84gv`yYAZ˱5J ǷM}ktZ?4܈iBώͪHɂ+6MR˲k{^]I+, (ԚR+55Mmw%^|:aC ]~nm:k.n!u3u8箮EG2 Vm|2Vbk!>)}UGrk8J؂T=v|-_R]4K@MW&7ul:)3S V%:( 6KTjJ9 <킊hl8KP`u/%Vsd% {MRWZM|dpPXJ'kC˶d :wIBfYPT^Ehdj4"TSud;HJK2*_G]cSOUG.$sSԈ%.>reKi+OߛnE%^>\veqgo3|,G-,rT;"Ke'uP59/!)ևq,a}2Z ܛ '{Al?ίzI$eI9$PҌ5 kpR5*e5q&3XK*ʗkg:J?w MV7u0ͮA=JxG Nl A\] (xFQo&ǟ;w>_ֻ͠ uЙO[?9(@K<#,SqO@9E~L*o ֣ٞ(8H6:ۻgx>D9Nӿ#Lh~4t;[ՖV_w;۫7z2ҁa嫢κz@w/w]ݝM5kwJ /=,KrWgB Ҩlp\{jq>ؓ #u/= e^'v~8Л0\=N'q&"T=JFTf^6"CN^6(dpÁ;i-)zh!hS Ir )wDCr1Y]G^jD1OwvyA>K"=v] 5ZtՓp '=%B}@D,!Iw4=U ldo>P~8ӬY@5Ý?c~Wg}k{wgǫRS;~XjMTy SNkNSuYשAG}j^ө>"sIBz@FC\:ﹼj|jb'4E# STO-1)v }>'dϐE@t?_pCLS$+}DGgS E͝<_gdVJ}N m0&+,Kt?bYG}S/~8<"ӞRSsJ ϺR9őnUCx|M(P''iҗ\ hcwf"#,ɭ1*"B $J?M Qz*ijpuY' Tל-י s`#/KJ;'>1˃l /ǼH")߽{K_o pYN%(}cg#aPTPn{uc^(IoPe:4bi,obA*;v%OA['q8i;wavM#t7V Exa?<İPxxXQqtQXW|wok1 16<=I lVb,<ߢ47dYͽcz L4eXny753.YhvNu' h6}On+c}KwJiԣQ]W:(,ǏL&麥1;H#$.jq!cZ_uL4xq`"11 vϿł1a_7O{[m6t%v(j6B/nTZgկAzW<ϟ5~~8ғGw_F,|2O}/AT={A*B/M t4NK<"g5]s _p۸8L#=8RJ; (WiR$_#yopCv͛e,FqtϗK4Ώ;DGO`=W;U֐TYP<WUU~BEir 6|eNhb7Jq} O)"V~9 |t><<<<<<<<<<<~fmtaskcoach-1.4.3/thirdparty/gntp-d639fa2e981fe41196a5115ad64320b5061f004b.tar.gz000066400000000000000000001156411265347643000251700ustar00rootroot00000000000000~P}\8^Xh:(!'V"!)+={og;{;{X{f7ϝdΛ7̛7o^֤wz㿮/n^nnBhR)IRS0KJ*Uȓ _6:UYpy0ˎp*X=_6\j m) DŽ4|~#"4d"I!|I J]:iP$|@pOSNiB ?5=ܽ:!@Y|KRkUhi$ 7%!QD \ H00k&b/$J"$D6HhA$`II;|(X}ZIhN#&IZjcD_%6DЌ@FHA6( HgRtZT Z FSX bkt PX6h4&Q \ӣ" ,XbFQ9<%AqH>hȸ*cvņY,lИ(6'|! lj#w pl`$d_Po[<814:3T dFHWԊD( J.- Z $Alt,KTt\,?=,"l ?: 0"#`< Z 83(H%r:Q݇SxZ5 )ϩ44Ҕ,B1S$"d!Q]}c(D?je*^P (Ko"_(&|^ h&ɴɀ8R i3>fIeptѽgDkTLm@7j|Ln?@WARh lx\F+c$}* *2mAA]Π"bHA%6T[Q.JG*n~:!U' A96w h`ldGc[M0`* 6T"KY,6&uPwĿʇ[3R!1)GxШ҅uV UZE2@vt55_#(Bf-f&22!> btbK6MYӗ6 M 2-TQ;dŔPDZ/U"g>$֚F.J0Mؿ 9Qɍ1 |+)(hl6'ВGI Mio4 rZZ)Ja" N:UCG|٬ (سh(_!!i BjC[EEɠ4VlP@$AHeEVtm;F .|`DԥH+Bӥ"n?``l יMz`O*g.KM{)6林y?fkF5%4P@@fh֘u[?Gy}Jگac*bxXz}&CP0F$}濥JEOy^7BD4vԨ BP`=gA!"u&uP8FAA5"hΤ+uɤuqȐ&YZe@z$'eARmz|Ke3Ѓ``Rtz ^Pв(4*@R IXOogP^zxm _<>u"UTjNe֐IjQ>?V RB6ЈHMZ(XS ԃ)b" XH  GDHT{8[RNiHYdiJLVABcIНp0j,!ȸ,=& wjZJ9JZ@Crլtzm2 ,IKޠA6&ڈj8.6hBNJt7Ж٭S 4`S 5@SՉ 22^P74`eTO6B*Ό䈉f7#HDBX1&HTBZjt'Q]DC$~O#h>ԩHiNL;6ͤEE@/U<='ܤ|2rO"q>d 6- X ̔KIav?B'B^aJq1\P2l"0*?45O ލ%[:* =Ԧps"Z05& "F!ɠ̉/RTi n,3Uڢ$B!J0IL 2Xu-d%f09^VA1E5 [:HWhC J,!T*h# uNQ}YEW7,xPkRS(XإzR ThJP _A4v@8p (.Rpw@W1vŗ{~Өhp: MX|<4p0t#>$&BBōd&jPsYj.҄|T0M XOAXfI 9 e. lgl (fsB J!Y.^rI1 ~b@E#gRRʣM<9AuE*8|/ thkRFחLOOQ@x+.f*'"3+ p-|o/#6dPh 3̐m2tQz]slPt0VBCR& z.٠HK drzԻ>vŐ%Zѯ/Q!xlj?zoB/ |^947y?-LZZeewޞnxA%.ɗOLȜ%>P|Q%x|?mS FM ?#StmS8kva9-@1-Mr(r/t>c:fG@Qcޮ>[<̎wcYܯ bzO@B?" &1`懐. Ц""܇F%GR?*hύ;\=&(|gE܇O䉷y'm.L" (bx[{_=iR&޺%ܤ|狗L?֜0d_+ץx|ŗ(lOvc}ApHKtl9OmLZ-;BJ; W^Lk>GXَt"-5_fAO |p6lpsrj8eKyz (`_/q/vK?_li؂o:ӏ( L\$nv/ʝ~h锿J?_J?O~Gc)y-y sH/翼%Ew1o8:YgտvK"9.S2T7464k5b[g.mqf_:]v8˶c!6r[,Pkw~]GS[EThxcʁ-Ք[tz9_g7Z^V&RD|c-C $J0hԉ+\mӿcMʢ|I7eo\\ZS_u=7 YhI64YpxNp5&!hJftbikBcjɡ*!E WkH!'@tF3tW5.&+&$L/2*Nڵ_lؠY`HvhT#@U2Uɡ(Y$j+"b4Ba / C Qv7tGA"bBbC"U+cߠ %!1\Tgis  Ս0蠩0=-xQ7$dzaINLXޡIkrRȡ!-1*XJ%@|dAZU-5E,/23>FhAQK&HSd6@&0[,,a\H)ݵ A =CA 0ɤ414~blD] cAMJH2kz X{*N*T`#<ԷPH#ݱ) wR"7#=EVu(ԡxO> \FQK7iK)YNw$L%[CCD{0 Ei!mmH_N }Y&uMcv; @pI_t>$𥳋Q2 ;zßmrRhI`Sp24RIUBKi<ٙ)a$2T@_zȡ&l,ѭ(;zTQ&y#4`tIH 4Xw$@XZiFad)LY% QE : lTX1Ab2bx=CO'ak|]@F0%[: Sd$Mrz (}apIJIr<_DYn [ }iTQn_w/o,jH/yIT^x@tcpr?B菠 G F9kV)B|eIA43ւ3l.[kB8<,%PE,[z|}YdY0N871: @F<Ȉ?\B6+`P!!ԦJ/jFQR]JBDȢhN15:5"[d.mBtf ARY# U$lq9ҜSt R}@z*Ğ@d<a%03wjsX8N쏘Pӂ$Ў(tR+ux`ҠcZkվjл b[g ܏PoV͕* YT2A̷bBRsxPDdS E%wlZ &zhRx3S 67т"D_sBEx6K˂I1yp@\<"$2,.!jnl51B^#`[: &]X 2 |DqJEzځQ3L,ض a0u= f"Lr1H+'.i_( iKm)ӢvTхSr> oaҚUq\Yx85/5gqxlCۢqLIYO6Ma  (*jGZa&PĿ؋ncB]k} :p\a,誄KKH@X|'WJ0Ҹ8>8WK$BoQ3Q.6&L5,e"BH5Vš&6tBHB LIfxͯhpel.b&Z=_lPQ<)S=h` tA)^ zQɌ2FDTeԨרAx YlbK҄EgYi`l{kj YIH I (Q@^"Šƃ¡-@B㖥uH5"uꗘ&GdYP* +fd+%Cm*JiaݦVqdz`P`XEJ TcRaTS 2%ȍPBZrQU5cAj_zE=h1**kNy°TbY & *)5bJ`K;K,JpAHA^͉ЩOk3&DlqE/RyVʑx"׈IѴ( 6DJg >ԗpE6JEc*Lx02C-+ :&8 l lDf8 ԘT3;v$`G4ewQ6v/ jMR0 rFDĒ$=+E+C4=We+аy\.MH5:x4uDOP( Yk+6 %''Fi-A VFC;@)54`T#sG5B`k( f2MGY( ZUL ъc iI`KAr$C QQmca*`&HQ+Jf=4N*V-X5+h4aaO/ǀNZsZa(=p9kyT 棕R"҆ojt@K 3GTB$5VX- @bŵ2BZ ?>[Bc`(AE-Po% Q X0ԈG}8BKAN"NokhN^DN cyr,3mAet3W:g-.&0.[Łc,Eb  G'*F\Bxj=&mJPrjVY\_G.B$Bf`f)۱΅ Kh!QԒ4 ?Q5κ`"iX#`FcvF[ Rͩ,g~+~E+)T_QdX& dܝ߱0$$pG*q$wgMv质v@4ujKp8@V+v}` pgBL@Jb;f1vEv M54 v=B1ќCH-V EیqPĺжH{2˱1 JZbi`^j_ddj FQ׃ mY5bRp:vV(vygM3|ߨHxst<4M` 4VP.NSry 2p X"1e3IV]QX`WaF`tF63ט4l(b gq[4U*:n$029J(%QC8{HtjՋf+<,Ӌ=am)vhcIT(Ssp!p2~2SuS0lNeA&F =txBhLAP&4KۑY:A f %3xkYq)咏4x-ҩBtw, F\SMj lC`"`|7Qm kAL)4YLVQ}]CV:D" aҌ1K4.H ^#Փ)SIrzSws-PEzS('D${Ԉt]&T$3XbJeZn2}PH}cnRX jĀ3*) I$(a8Sh*#\Fp&,l̈vuqT:;u A"C<TwKրx%b}x8tuT?\Ò&NFpz>Xk^-|jˊ2ZAC{+M%`$$ɨF[mbN|LDH)a'ƕ(( %S" -\:-;$do뛪-öA b ZYK@2 4ь̊;0g#]UKbUA5! @hZ8PaYTN}iЌԥ2qJMߜSlۚ9NRpdgR,ey%2ϊBvNfbPsּO⳦o K*y Q*Gpq]՜zs´3(ԷpAAC &|F .}NK偆Rp.:Dnq-jh<[l, 6@rh=a 8E +ذZFξDֶ7'Fv AE#5p QMh6AEm,^-$Q>E@$j sAl> jD~(:;އ}m#d4"-oPG/Yo*L Xز2o `&o<:lw再DH,NC 3C Ni<fE4,A(4Bd"**VvFP1FbHqGfO՞DK#!B:;ݖCǸh ;, +eXX&Y'C ,!0qXVUt34"ZyE:ݔP$ŜȞ"*Va#((p1@F=12b pAP1}4-v0pc0::9opkqv@:}ۢ@NTQ9$qJێD%LPbfD9W|DEd`E=+;Y4( j(I |FE ߄ĺڌЦP#|J@nbl][:& #%Mh@$)#BȐ8156*<6.&$=Npz ONA %&@eFKa r)|{O842@TLmr`4χ6BCV&UݪBE@:p D*vTطP4ܛ:hx{` ƾc U("k=ݽB|ߪ%Epsvoo| ̠ mF`킼4ވK)Pwx@ (syv͝?.S@D(`ZP?VNP(>M-=$mk[6D|>+ 1AA@EYTdצ}ALx~Ƨ&tKΦ4]:A"4RR/K Q&&|D(d풣ԍ0|HoBC#xG4{"e}w!U|em ( òq24r5PFC zxqW* pBxa@D(4[4_D fK-*erW $Xz*?-$j,b72S)T:x~a`cV\?XǕFQcz}?Mёap8ƒc_?\o)u]eض&aYw+f<;j!URU9^x2c=Vq-JӾjuD;=Oi~|cG 9s_o;Wٍs/-yjlwnku2{^0ng̿~f O˪-c<єtmFLwoלoWǷ{Zj'^))ܒRSE\Sg Ӻp䁖v{bf婏F~ݶ5mN{~Ʉg?ua[xˌ۟+w~t"y2ğS\9X. h31 ǃ;7ToxņebavZ o9|V_Y?aMGl[qq9\3mv7򄎛wI ܧk՘W4ķ۽/_$h˳+}*z% ^Ъ1wdxnւsx֕:ID{KgP7um#>[Q͎?cq}hZ|׵^jH^CՇ'>=)rLz/,wzm9꠿ dwYɝ/,^ap۱v:ٟh8cޣ+{53f\Mt?ۓS>% ;{]sg}}:mX\uKݾz뙧#{:otT9dמGv~H,7r酣Zw5^՞:,zyOk|\.ʲu:2]˱̩G7T-5K0bI>~+y[eda׊7wZk㎁#Q.}4a#vuB.NJ<_ZVNҋm{!:偬{8!,pX˖;l2{] aPo+kk4̵ڲ\ٹg$ۘ#wZ~&2txx2.ir@)x\5)0/tT:3ݵ^œ%W]:3k=R<Ξ=3{\5/))?Z>tk˽:Do.^t %â3\%k # X^s7/}Q)W6{7g=Y5qԼm_mפ`NJMw}Q'%ЉS]z{Ve^C܊sEP^6%kZGѯf.3m͏4M^-aa}D:NG׷whWͼxRKNvkp2uDOVo|dcXۮ>0A#Y S޺-5yk/xH9RNHؾR[.boW?0u vtd(2WU6zQ闡ÒcvBMD6i [y?t3wG xo$dICu oQ¢kn7p0=ai zL +~Mƺ׶O=Ib71(ȻΤ}~: MwLۇ_{{91DS'KvK.ai+ n8tɛʶOg] B':DT:SiH^keZήug9w[Ur{~nK?n{peOOvṱ%yn3ojN4m.?Yurcne}^5->M;~IyWD+V~a'M/1E coyx{h՟ZyY9fkG2ۘ>:G~n1\⛳eAz~wzk-Tq|^"nlY陡>i>ݵw\^݌eAuXe[Iizp!O*oe~ :'HsG~+M[< i6?'s/t ɏƥN6Aׁ*64wK_rs-1!&jːCOFj y:OA|\>]gאxba{CǗXq̰]v"KLY!)?Yo?d><^K!H$b[U];@eq^GOtv Yq*ۻC:t֭ta /wuy{M6*rLߺͽ^Xz,ޭ}a\иҍމNDo6Û R/Х=VwUo]3j-'Bf=rԷR|폷gUOקG' ?܅:|VxVI=,ԴԬ 9 O*uלy#ܺ*b<^s)g- gR?VQw5MrTir'\+yLR漍[Mp8령k7dk[柽~cW\崟NWNv6r{7a~O&euΗŢkj _v_.zs-U3ouUʬmC2^ In.ΪQh^k-z 9ˁwNz8W$[ ?= o?nM~}oZOcU+K%.ڗ1HyZ1EA禝EqYD77> uK|ެϖŝ?|rpKCv/vY9WF]ٺB6ъ%+ ƶ w@텻պyB ~+^?h ';evrFW2niHx{k (;ׄ2 z_O-xԧڑ>+rk<۬F%Ξk)'>`Aw5K%&t@^m6ń *<[-w휄5_6uc@P2eU"?$?u_s{rG]7\܏>"^ݗAQwן]&xWwnޮmDx]m ~9ySO^uP졇/ƕhw;d[l3oe/yG{ &Wɯ}q`VϰMz4Oyā'Tvˊ5x<f߱hsf'M_(Yz|H9^탿snBW}ݜ;sZ9iн&_}h1޿W+<؍8z[眚SoK.iNr}!)e̻S]^{NyֳO^x&լpz=:s~K_2pGԭyNI ٪Gjs*pu#W~yÙ;iɴWawnߏ53kW㰧kl6 ;㯽me'U}c̷Wfm z~,:Zz^8NӮ'L0eKk?{~rԈMF=-kmujVai_ ˆE|Sdʹšb?axX%<*>vz3E7Vǽij kKQŕ/cC# >1g]đ<$+ʹYf5z}TɅ+qW៎eO?]Or>ج%=֚+KhR֔1tFCӝw:~VjR]VhQ{ة#]EJNQjD3eOCWw9a0V%:;Wfp=UZ{A{>Cv(^W|e;ԼV}ڳIZ277v*TH]﷮|#Ӷ!)Q1oPGíW/ш1&+[t_"pжZ9Ft_YR};]Z> 1#ўzs.7gﻈ#&՝|^gGPEpzWʯ+@sQgfCRmq˳ve?rߺO#~S>ݒ{g4sM^^k@_Fܟ=[zyuĄ[hw-cՌGj1RBV\*Osxnšc'JH+T_T5^M#)3@ɩwql}ÆWW?jpO69mՠeoV ݿ+sw˚1/:ML\ֹ =.薼nP3+q@΢ק'Lo1tۈ*;~R`@^3ݠcvx9QS1NZJz vH&'xO*Y̠n= GADW;>k4y5荆{z>^~R}˽ Ud1|RQgQɖ][w$hr*W ϶}6;+q92HVJgf0Qyitg)? CSâN\ĜwHe:2χ%sW%aW>PQ!ޜS/LCԮߨ/ݗd?XXL翺00CwWL*Uf nkqgћ)m2^UliYn'1B:W}"ZQf;J:=Я7NέQpPa‘EJJ08XwLţ5K_*f>IVp4kg=G*c, WaxLUl3Y﬩xek٦u%XգMؗkT7 0iI. 0}+^>NZK旯YY5{Gd2}Rv۾EG"dd{ oN]_de;æze>|L2N[QS,.ۣ"vܬd`/w=Hڑo£c/,S՜-%yʙ p\SNMԤz.@l>I, ?n\,绘vbA>o\4lc0v,brԸտ(4)rp)Y<>q';yg\tagעҺ{L舙qLL w$sIT؈1*WK ̹1bܩ c֎Z)G1K2E MN3d+T]Z70Z`-5t\U&lb\>('88kwtQݸpp}KNWO ^uwuVOӈ}K;oan})UiIb''t2[T\V1,glN_u4%V*DpIbyL0zXmK?u1'_mvP&Dx)yya*tA~Z1ȟSTũ"in,/}o+?j-(5!%-yN">C؎AGS,F8_̷J|3qˉkސ=&)ƷGrxMo[3^c,rΆ`5KX.O^Տ}d0$խS(9G/]1haVݿc"׷U*C-zk<ϲ0; R| \;)p2"DIJv5wKj򞪬Y.z7XQT-JNU~NxbPzPe.>N.pG1VfUUJ6b^:K^?Y3M\X*e. 5&\'Xa$%2_Rr6q/+GroG\zlyD%pNe78VOFAn]^m[eU`m{i6 M/'TP,yz|鹶U]յE=? nKk:r:v.)^͇ ͒4w1g$:: IF) 56=eۓֹ6sN**\ ޫ3"bE ~uHB0ϙR}W}~%yN3N*i#ہpGەe9vǷ G2T3|Y[pnq<Dž"t}UO3(SHLB{EG؊[t[kR #fAGK +xvRrۇnψL@ZD[&'p3SG{#yݢgϝU7=FukEJL g٧7iOvUd{>$GȁM.#㶨ڎyݺhf_D"C:3oɇNVɭNՏX}o(;uck7{o[F*Y 1$0<T*Cd2 뷝bgLWD",k+O_ݹ>$*e[Iٻ_zp>&јQ9|ON-G֋){( !lhV])Yw-؇x<ֱf/^DbAnM8$9CD-ΝmGO3DvBg ugŒWJ/z5PP(.S_PR;w[^BPV61DEϭ'2F5w^gac=~?a{ft_vAnךIMHB-Gɶ^ʤ\vKeN. ͟^&0E@#D2S.YrG7PBO˕2%_T4̍4~:Y3dRGi~X;KOTz~ oQ6n btOz3.N#Ov~qM+Q ͎s +Qg7f9\6mO7='pqΙle|LMͩP\_[Iӱ_2LB[x-2i7MJX~mwf[3ĔC 9 jd`! GAaӷ>=;GǛ'shTOSO=ʺpҧmDs5Ӛ8UTۜʹoFX2m>"EB/9;-%JZ wIO'츖 )\ʖo:K<(^juqdĥ[ք}-ѥ'_"#BZZ?͟y[>ҎPqm:}s4GijJROOWUd0(h!{լcm ;ʙw>Qi _{}չi ^,:||{%: -o6M,w/l;{uPfe`O6z%c=#"| 2el%SY+4ccE&5:.J_ݘ߫'͍ ' `U&}s/6⚖mY1;%y~b pfǻ{? gt$Ի+0M=NqKA6Fw#;sl/UB1ޭҽr=|#ɉE'8Wx š뙄3 Oڪq_Lxغ^ {֡/v%}և6DqT\sR՘${DC9kgPLq~WSMtN%M1ui&F }J/ Q8)y FgE>}T͏*vJ+þ 3oVg02׼ൣᤖzK5kqC^QwqA="r2' fX$sw->`sJIl[]wWʫ{J):֖ibv 3֒$Zijv}{N7dIƞ2t. eBRA".: vp7lkG:{߉է[xboۉ[T-kjxɑg93 %^mP}ooq ?ٿUQ OeȵMoK)sX8YǫI䣆w33CXe#nT}da &zڋILym'O[3Dʇ|zPfƏYutpn8xKemRbUM< }:_KE)䗰 /L_KV. [ڽ E5sV+ =ìo#g?}3"vCY_8f󎧣%nm}0#Nk4y/'v&uRz_a.aCŤZ慽Vܷ! a aa咽B>IUAan>/S0F2GtJ:gi'6  VI~JVj>={'0x;Cfo&o'}bvA] }әlp!& -/w9.ꂧ!'m}{9lԈ;n4^zV?UX7/Qd{P5#M L~LV+u%!L[帶z0Um6&'މN{fBG0B7'Z*o^FbvW))Z[0vWLRp#aE.OL_+hmzI[uKFR #_z_5a͘V0S:}tZea+ю {pj>KӘjϯBUz{ÉR 2/֔#NX; b$eWq=c˵!dYD!mF7jF 6s{GI r OۘT>Uc;ڗ.{F+sr=AQfb_8[0Ij{~Of*PܒV ǟVWYN6܍zۥ T^(un/ĢF]x=(A[SG{=OɹN_m(~hiHX=ឿH Mv6!r!ϱ!WeøS] .{37}y@lT`˪#h\0t@Pyz:jv[lPҽ2ab&ەk,GvWO~ɿjk^Ho&[b*o,qGBdl6YC fBaB I$0cH\S fn,w~oR2TؼB+EZ|gb绵'/r9/(Yc#5z}_HFk>]h_f~I[#ɬg?O) Zel"x]݆&︮{@`Z@=Ǘ&ͯ,wZw7&Τ8Z`2҄K[/*Y($ Qs.yBe;ʹջӫn+T/Hˌ&9tO8vXZe>"JOL~g;7xm?=_5?Լ/kA9Uhv!u un}fى;_\f-"*؈fT7GW;F/:}Ō]LvB}3AIުTDžEs/s((Wa]ce{-t<*9oPoDesس s%J$;N=6wjsN =[E.?0z'*%i`$е^Sn@M#[X+[c%RWg׊(Зh\VƖ*pElyDA3-ϖ%&#q ;8EX\o'ƿehU˙z؎)vXBÔ|lo>`p3+ξ25nn'F|ŋmӶx;B R%;ZOLcG ֒ UgSSb޾) 2^P.yYoLS>i% )njUc%$8nvwϴm|~6UH !BЪ}҂+w[SFktFl[`z}s{o-MWQa5ؑo-<~}3SC:.r1&i?#MHSx߹"b :&7oOL/,/rێPžh}+]?]v\;hMIز$ Ku&ME)h#]u;6 ]|Z%>#FY‰޳J;k<˱!V =jO'^cTZ[8tx۵1{ >ٲPεa 0Y8sNԞwk@>ө•= OrD:A mnqn2?>gvvs QF쒇V0Y*~Lkf}^eSw{o>|1I{Eұϛ\`Sgl)#kp= $wYlyݲXˑjW>Ϛqw^kKۙZ9r JZWRL<>@(CgK0:atReľghQW,MBCQ. E~ N^Od>< c(ґ׾z98<\\ 섨oeAڣWXlIfq~+&Uks6z=hQiWyw$D˲pͺ+!z(9x643 {2{?[|s+ۋY3|íf;Bj^8ԻiDbWKwPҵ0"]'az待{7 3hz{fk̏/y2^"X̷e|zϩuQoۓxY'2_9֥K#}xwF8wA+Ǟ<\o*[W{\ؽk,U_wM;pW=OeҼt%t@I⦇DyWf~\>ye#&s6Es6i\ڏjZZ|E%$*q{FZ\k+۸}iWS\ >OycA457 p8y%D} k[%8D\fbnފ9~(w*-U^֕f_-ܴ 7&KC\?nŀ"݌0K̪z:=ͩj6+L0;եq)ÀWo#f^Lg*ZX`m^&fV{Wjgc82ʊ#sLjgLj^ R~LqqW~\ʇ.Vo75\v50Uź|ԙ닺<(=0paH2}ht5VS,N/soPzķkRD vܗ3 / ^y%DVP5U~Q%RÁd:KȰaK3&JEd<+njƫ>JS<)gO_HwFL0rk:cͧ[W$§ţnp {pϻӲ Kd؇>nO?O'*8Yy/0${BmiD}X-O05,&i>)Ձ/TY\c`;@TV+5Ή4Q(:-{kurY´pAe[loN$>6@bJr|iVIX_nˠxYlR|=wZ/n M:t˫^o~/T 4͛9ּc?aIx2zs5 w))a9xGE2M-"Ҏ +X9wr^2"q'0DToL9bbM(wJm2 H0G #Zߐ96ބSl.IdBtHǫ1l$yщ/6geZL9dŖtڟfNo̼lAޗޚUoƭ08b;>Q|𜃹x"pp\TL[R%5ngֵs]A]\*KؔtƦ̜rjc3!rF5.`;&O$9.}ul}/l~w-R`y -v*k|zd_+n(E;6kGcHu]eNtUjur{T崼߶nNj |84O0 áɼAAh` 18]U*3'_ ox)LVk3+FdyGuF>pt߆֣co.Nd'|f #TOk(^ ^9Z3dw5G|uBkujGxoncK:Y/WOVZX^|d25 &u̝3iSmI')igGmWISJ$KԽ#c'wr =qg'%W8N=s3uxHҫSU5ͧ.9&Vl7*o<0 ?&XY5krLz-!n=sx@io{.4Mc}eiQBIoycc xg0a;F99y'^W|nzh{N!KO nG×,yi oPHJ詯n{n8}Zqq[4fXy#Sܙ*nh_h>B׮kG-1m26]Y$BYk00 8Q,&o\,ejF&``NV]㌿ZE;j  ڭ.:^N*];¶lOK_YJwe#=[2 99{zj;gv޲=ô'򊘸2-ʎEޣqޝe^!k0ey{[/u:<eCmS'_2&vmqJ(`dMιcYitBbBZcy#>ɾ뎵 alLni&g3d4ΛunX wؽ{q _)kœ o7+} 20k=ӆmp;ocxIdtߒ[c?oROIUD(5ݮ'KfBP3sB7?|?ꀷ)$4Naǖ8#,eY"@P`<CF $QpN$=Qrq``DF{f;G-^vf[\##1ݭAswH z3|/S.?cF?NlANZl˳/7^KM"|me( >g$ L?P}0!d@% E)$P,4PǏἨANs Uj/z_#MF@=`7 fI'3@%pAB#OUjNhs 5#G MS`0z$5] z<̲씀]s_At?3-g4 OX'`,&Vc`.!sSB3tY0y f}x-12?t;ă6HdwTnk'sC?6WݨOjFP'%ʚ }4<1x˻fA YE2.])kؤ'$b1͏3JA~0S^:MRR,px`.N~Nrr?&[ߔLbblB)8G*.X4K;hNKNӽ?ekzQ! GˆwP;]ŴNh,b_p 8-Ԅ}i L}~|r燧m៧GCƘyN[.@ZKR"逺7ݨ;poMK+SPS;iGrA FȰ`"Ʀg$`m Z\bqg aH @)#TU6k)!TUTPgP0 5оo9ya%_  7O `( A& - E$1؅^.ED# ;- Bqh"8*!`{ k`ڋ]6HPB& L >”II$Љ_ r 4CE"BW^^Dx!P$0 d4;8ED DLH4?hӆ=1@MH_aڔODVx @[΃D<9; k`BX `L,x!PPDl&VW Pr9R84@3 u!Ĩ8@`9sf eAQI] Ă+ LDf>%*h@@ ~Yw$P^VT*|xXUM|8Kd=bUzBy*TDs B4~BrzA,⇧ Q1a#"~EIS[q- d4!Ұ$L}0 K&4@r//CAaA1pPDNw$Ж" m!g" G4=t"@‰@fcDT6s. &-`=_@g@Y& i. + GM$<(fz  @*%X":&-H!-ɱ2W&/' KD)(%/:PaQ * fgQvBbFm4 tyǡmr(vH0x@DGi! QʝFC ?0'hؾQ0PNwp8$&M 0/`Z5 @fYɘ`pERA`Fi?6Di2'@XJA.-r+ G,RrFZT.4BD;9/rdW`1BBx-v 4-Z*/̏'WVN^>ChoN? % 8hHy `1 @ 2Y?K%5<B6LWb&ASL>X^KK: l~1jHN H.@Q-xD@^Ƚ PT92ЌCG$F^0Lpf //8}x4UVန!'8;c2Xw&Ջh X4,TC`F"g0h^G`v`p6Tv%nlcM,R<m!d@?X 6B h[&5h`f% v\ "'z%+DO05!D E@RL8/1M9Nr+ 0͹_㇇r,ߟ`=8?qhMI,8.ZG#O>G"ÇV?  c7ru@77ED3//E*BDuFA)hPU%kQ;PnÃS 0_4M9*E$A/҂zşUV迨Ǐ6 |m\ESnG@e565AĨ]CYH]+y-'~ >w_o /sb̨;?MR.YB9 _]M_~Dz@ `T=_??4xzTi"a| сE<?BRR C7AB>J@H0=o/#  ZPM{o)> `  E#pmҢr?+T$߆Z/M0DҶ G8rN<$[l(m_JP; ?UDB0AQobD)/4?}Kؗ= 8NSIM4x0C4b A09? >ϵ!L/P0b%r@? shIJ?ey Q}Ē&l᠛M8Sb8娄-:m$]2 OUlpyUIq?   %A\(<T(_U5>X.VP7P,^Ftޖ!Ⲹ) OY!QiGBqXWVGN O"(C@z:(D Os-  Ő  yzx -tPz:J@_A3v%T^Ba(%6w]~w]~w]~w]~w]~w]K5taskcoach-1.4.3/thirdparty/patches/000077500000000000000000000000001265347643000173125ustar00rootroot00000000000000taskcoach-1.4.3/thirdparty/patches/customtreectrl.diff000066400000000000000000000046101265347643000232240ustar00rootroot00000000000000diff -r -U 4 agw/customtreectrl.py agw-patched/customtreectrl.py --- agw/customtreectrl.py 2012-10-14 17:50:36.000000000 +0200 +++ agw-patched/customtreectrl.py 2014-03-09 14:32:25.000000000 +0100 @@ -1600,8 +1600,9 @@ self._height = 0 # height of this item self._isCollapsed = True self._hasHilight = False # same as focused + self._hilightPart = 0 # 0: full; else wx.TREE_HITTEST_ONITEM[LOWER|UPPER]PART self._hasPlus = False # used for item which doesn't have # children but has a [+] button self._isBold = False # render the label in bold font self._isItalic = False # render the label in italic font @@ -2097,11 +2098,22 @@ :param bool `set`: ``True`` to set the focus to the item, ``False`` otherwise. """ - self._hasHilight = set + self._hasHilight = set + self._hilightPart = 0 + def SetPartialHilight(self, flags=0): + """ + Sets the item hilight style. + + :param `flags`: ``0`` to hilight all of the item; ``wx.TREE_HITTEST_ONITEMUPPERPART`` to hilight the upper third or ``wx.TREE_HITTEST_ONITEMLOWERPART`` for the lower third. + """ + + self._hilightPart = flags + + def HasChildren(self): """ Returns whether the item has children or not. @@ -2119,8 +2131,14 @@ """ return self._hasHilight != 0 + def PartialHilight(self): + """ + Returns the hilight style. + """ + + return self._hilightPart def IsExpanded(self): """ Returns whether the item is expanded or not. @@ -4584,8 +4602,11 @@ :param `item`: an instance of L{GenericTreeItem}. """ + if item is None: + return + i = item # First see if there are any children. children = i.GetChildren() @@ -7124,9 +7145,9 @@ if not self.IsItemEnabled(self._current): event.Skip() return - if not event.HasModifiers(): + if not (event.HasModifiers() or event.CmdDown()): event = TreeEvent(wxEVT_TREE_ITEM_ACTIVATED, self.GetId()) event._item = self._current event.SetEventObject(self) self.GetEventHandler().ProcessEvent(event) taskcoach-1.4.3/thirdparty/patches/hypertreelist-headers.diff000066400000000000000000000023041265347643000244570ustar00rootroot00000000000000--- agw-old/hypertreelist.py 2012-10-14 17:49:22.000000000 +0200 +++ agw-new/hypertreelist.py 2013-02-24 15:55:31.000000000 +0100 @@ -4138,9 +4138,16 @@ self._header_win = None self._main_win = None self._headerHeight = 0 self._attr_set = False - + + if '__WXMAC__' in wx.PlatformInfo: + self._minHeaderHeight = 17 + elif '__WXMSW__' in wx.PlatformInfo: + self._minHeaderHeight = 20 + else: + self._minHeaderHeight = 26 + main_style = style & ~(wx.SIMPLE_BORDER|wx.SUNKEN_BORDER|wx.DOUBLE_BORDER| wx.RAISED_BORDER|wx.STATIC_BORDER) self._agwStyle = agwStyle @@ -4175,9 +4182,9 @@ def CalculateAndSetHeaderHeight(self): """ Calculates the best header height and stores it. """ if self._header_win: - h = wx.RendererNative.Get().GetHeaderButtonHeight(self._header_win) + h = max(wx.RendererNative.Get().GetHeaderButtonHeight(self._header_win), self._minHeaderHeight) # only update if changed if h != self._headerHeight: self._headerHeight = h self.DoHeaderLayout() taskcoach-1.4.3/thirdparty/patches/hypertreelist.diff000066400000000000000000000132761265347643000230600ustar00rootroot00000000000000--- agw-old/hypertreelist.py 2012-10-14 17:49:22.000000000 +0200 +++ agw-new/hypertreelist.py 2012-12-27 16:20:40.000000000 +0100 @@ -1403,11 +1403,13 @@ maincol = theCtrl.GetMainColumn() # check for above/below middle y_mid = self._y + h/2 - if point.y < y_mid: + y_mid1 = self._y + h/3 + y_mid2 = self._y + 2*h/3 + if point.y < y_mid1: flags |= wx.TREE_HITTEST_ONITEMUPPERPART - else: + elif point.y > y_mid2: flags |= wx.TREE_HITTEST_ONITEMLOWERPART # check for button hit if self.HasPlus() and theCtrl.HasButtons(): @@ -2349,9 +2351,9 @@ # ---------------------------------------------------------------------------- # operations # ---------------------------------------------------------------------------- - def DoInsertItem(self, parent, previous, text, ct_type=0, wnd=None, image=-1, selImage=-1, data=None): + def DoInsertItem(self, parent, previous, text, ct_type=0, wnd=None, image=-1, selImage=-1, data=None, separator=False): """ Actually inserts an item in the tree. :param `parentId`: an instance of L{TreeListItem} representing the @@ -2795,9 +2797,23 @@ wndx = 0 if wnd: wndx, wndy = item.GetWindowSize(self._main_column) - itemrect = wx.Rect(0, item.GetY() + off_h, total_w-1, total_h - off_h) + if item.PartialHilight(): + itemrect = wx.Rect(0, item.GetY() + off_h, total_w-1, total_h - off_h) + dc.SetBrush(wx.Brush(colBg, wx.SOLID)) + dc.DrawRectangleRect(itemrect) + + itemh = total_h - off_h + itemy = item.GetY() + + if item.PartialHilight() == wx.TREE_HITTEST_ONITEMUPPERPART: + itemh = itemh // 3 + elif item.PartialHilight() == wx.TREE_HITTEST_ONITEMLOWERPART: + itemh = itemh // 3 + itemy += total_h - off_h - itemh + + itemrect = wx.Rect(0, itemy, total_w-1, itemh) if self._usegradients: if self._gradientstyle == 0: # Horizontal self.DrawHorizontalGradient(dc, itemrect, self._hasFocus) @@ -2813,10 +2829,13 @@ else: dc.SetBrush((self._hasFocus and [self._hilightBrush] or [self._hilightUnfocusedBrush])[0]) dc.SetPen((self._hasFocus and [self._borderPen] or [wx.TRANSPARENT_PEN])[0]) dc.DrawRectangleRect(itemrect) - - dc.SetTextForeground(colTextHilight) + + if item.PartialHilight(): + dc.SetTextForeground(colText) + else: + dc.SetTextForeground(colTextHilight) # On GTK+ 2, drawing a 'normal' background is wrong for themes that # don't allow backgrounds to be customized. Not drawing the background, # except for custom item backgrounds, works for both kinds of theme. @@ -2921,9 +2940,12 @@ wx.RendererNative.Get().DrawItemSelectionRect(self._owner, dc, itemrect, flags) else: dc.DrawRectangleRect(itemrect) - dc.SetTextForeground(colTextHilight) + if item.PartialHilight(): + dc.SetTextForeground(colText) + else: + dc.SetTextForeground(colTextHilight) elif item == self._current: dc.SetPen((self._hasFocus and [wx.BLACK_PEN] or [wx.TRANSPARENT_PEN])[0]) @@ -2995,9 +3017,9 @@ dc.SetTextForeground(self._disabledColour) _paintText(text, textrect, alignment) dc.SetTextForeground(foreground) else: - if wx.Platform == "__WXMAC__" and item.IsSelected() and self._hasFocus: + if wx.Platform == "__WXMAC__" and item.IsSelected() and self._hasFocus and not item.PartialHilight(): dc.SetTextForeground(wx.WHITE) _paintText(text, textrect, alignment) wnd = item.GetWindow(i) @@ -3512,21 +3534,27 @@ if self._countDrag == 0 and item: self._oldItem = self._current self._oldSelection = self._current + hitflags = flags & (wx.TREE_HITTEST_ONITEMLOWERPART|wx.TREE_HITTEST_ONITEMUPPERPART) + if item != self._dropTarget: # unhighlight the previous drop target if self._dropTarget: self._dropTarget.SetHilight(False) self.RefreshLine(self._dropTarget) if item: item.SetHilight(True) + item.SetPartialHilight(hitflags) self.RefreshLine(item) self._countDrag = self._countDrag + 1 self._dropTarget = item self.Update() + elif item and item.PartialHilight() != hitflags: + item.SetPartialHilight(hitflags) + self.RefreshLine(item) if self._countDrag >= 3 and self._oldItem is not None: # Here I am trying to avoid ugly repainting problems... hope it works self.RefreshLine(self._oldItem) taskcoach-1.4.3/thirdparty/patches/pypubsub.diff000066400000000000000000000012761265347643000220230ustar00rootroot00000000000000diff -r -U 4 PyPubSub-3.3.0/src/pubsub/core/listenerbase.py PyPubSub-3.3.0-patched/src/pubsub/core/listenerbase.py --- PyPubSub-3.3.0/src/pubsub/core/listenerbase.py 2013-11-17 11:43:52.000000000 +0100 +++ PyPubSub-3.3.0-patched/src/pubsub/core/listenerbase.py 2014-02-11 18:24:58.000000000 +0100 @@ -92,9 +92,12 @@ def __notifyOnDead(self, ref): """This gets called when listener weak ref has died. Propagate info to Topic).""" - notifyDeath = self.__onDead + try: + notifyDeath = self.__onDead + except AttributeError: + return self._unlinkFromTopic_() if notifyDeath is not None: notifyDeath(self) taskcoach-1.4.3/thirdparty/pybonjour-1.1.1.tar.gz000066400000000000000000000443601265347643000215040ustar00rootroot00000000000000.1#Hpybonjour-1.1.1.tar?TÃ'@̸k|xέh7_/m?Woۭg$Gث,0J| ⯉~T*_,Z0vM/nnJxQ;+\ XbԽ皛7yvCϹ)%>7}?,|%, -D`Hmñ0=ߪ{c''r7d"[=ߟ '}Uz {\-BJwRM.`zY%ekZڶj}Voz+n:.[0JBV#Zٿ鱜CÊ+SQ%W EUB Kc(ŨOA yE+&byPM*ǻRX+yڠ![Քj?fGR=Þٮsqiey;@X-x%k@rӛ"_䄵1) DqjϯuMm9.i:^ jhMإͧR-ר d VH$9گ{:D%疻[_OH|6:doǽG0cxTrbI׈b5+#/×G~3oCD56K bC+2>@Wqo:5C"t*Jd?JxMri"k4gjctܟ%Z8nw|hyx*c}a*`ll!\P 50A/޾·_Kr,M=`Z8g¿5c6|7ڄKM3bh5ܢɈ Vnı}`x+ s/iv+;l +;{w"ʈ`b-}:56RR1n^ w:;hXJˋJWoCbS־wk[Zˬڭ͙yPO8D 8.H_Wh# .5$S: ~[| cg;{o'jfQp||[Ա \ˮ[N AE{Lp4[+^F߷< 5rF%:ap&w6H&N؇{o =\nY.h͂3l(V lCpTqs[vvŭp5RF;>faE&2<ElD- 2؎9X1Q| ? ױCˇ/M y_4 VwEڈ$[&>KuA|:Bp/ hlMae+9'->?<`7Xf;sL|5 edǓQ@S`s_{2X?o&Cni mRюAL<3B,]5y&a93~ ,SDU.=d<!1pl,BJNt)Kd4"y2F&zP.?h,kbr1'2`Y0 `,K?4]xb4Z,Ind>˒iE_pH>d.g5{F=e]F2XdN,czYAY2a,Z%s+k$j$sXLWkl~z%3DxXT幧̀*^|,nl7qT7{G9q f., Vs&\ s5. dMLzU}`Pi1wߊlL>w% vC4_iX7WBKO4 )}ifNY,$}/yG!j+Ǡ4 w.0?t hui ܵJ(Nm* :e;s#ǩe>Q!$+IJ! Ǖ%ʬWr"\~(We0 3 [϶R%Agkc=ccdj ΨgM'إ5|O8(xO:vALrBw dӆcƲ I(#C>*h5h9m%*ݺ OEt]`1(gQP*) oُ;_F%b<95҉{zaG4'}NcZW#Zڡ0I_O*Y/t$)Ke''Vgrŗ_'` OZ-T8cOMGјxiy 8LLFgg/mpcTX[561o̵ b ׵njr.M6H]WS3wf-Gt)c Gh;E0&_ZNo+UI]R܈6e,BͣH&9 Nw׿9[a-+a)r4_B 0س^'*#$1BobE$Lmċ+Ykws&{YJm$Eyjٯ9QfDvc] +$Qع=| Ϻ嶃uW j-$RjADAQKOf]ǝ)(.W:=E 9Zxmc~(PoN=3_@p^Y+1G CER[-ra(Hmf=ՅVUy ֪P|ي|AȪ3=ٓƀѓB7;+ /96'UT'cPKE3LA5/Vv [5Wy޷vqdk+3GR"dplg'x pdlF@Bͨ[d~j a;9YĨk~~`֜E_2 a~_l$7+-m7řJtHr5}~`*wJ_M0_IIvc/ 71+ e xZjA$b$v):cM$HXr=9Ʃ$E75]#;՜GDYmETSUPF`Xs о+y|BJl-ZPr0l׀uFLG*υԔ{yh |@!rX2"vz#r'7q *_+uel\PiA9"!G)u':K09:xun&qA=a3O[ ` _P!B05-KkիE*PtcȬ*6(?1\VeȐh 5TEI{o&iTJqY:woBepf"ck{-ޡQy,/TNCekv1rHo~/Ơ؃U4^RO"#;Rger$,F,S$ɠڝQtNـ[^3'T*{j | u#6D$'[nn!) +HKW<\5$߃]zTOry>j)s}ެ0Yь&ebV=fGw~ bYƷy<G2:}}wFYSOWw` :feU6N< UGFy{v~N9Y齟E_ߩaw4 SٵK?Ni%^b; /4vrȧjriWhh+4QAK Fwbƾ= ,!3P+ߚCt(TY*V$kqU1qd:̟"]S(Ǥ_Uy zj3g\2%v^DB2\=cUܟ+ 7R l p̢*JצD s-[7VǶj62L,{{pQG.=籷D9ӣY_`)!{rM =+Z&pd_6\|.1?=cc[:UO8:朤 *礗w?1^UQ|鳶pr]UfogMbr%Sy'(І㣨6TNE~9*q"s˯zȝt3P-^r"<4r?ZEWdo{2pmܶj<7+Ŝ|AЙlיR5MuE$_j{)KVqe&Zd;FOΊIK^7\G)C-(}q:s( 0*EŶT4jFs *"s'oV 0R퐱VF\ k8=p?stp@\( ċ)*L@܆~ϙ#);1/"B -:P8R#![W1OTBqNӌ4f@Y/^a sÀ,1e鶍TWRE b(y!Q?S?&f Z-TttlFQTV Գd&j_jtØ,ev (HxwC*4 Z`Z EN\6(o |%$rwr)+.$ vŲʗ #|WcAUZ6{yHt!)ׁʃ#u[\ߚ]3N1bw)ͿTI{_7B 7RQ:ōfίᗭʗ|k(@G+ `R Seʀ`B{Wk]xGnwtu_ `XPfvTݲR&l,_I)j%f4@['s 1w`ʢMi`h6  !U^h)1EG1/\ZnV2 >O)"璞TV.@ާ^r͇Lg@4O5зԵN&n' (Kl`2L#^jԐ/x_BO/9f,/f*Bjs{Y Mu05F68ϯ|x{6i$LLoo>"\8DiBgDA:9%ڃ(cEk3qFQ/b`]?ʴldiqB`i,꧓"1~ֿ̯F>DTsN 'rwf r=J.B#%VuzuiCYYS5aM dv>Yۓf4px h;37 %“Ǧ50_|PN(ĔحTDoѦK5MdǚmVt:,/DwhɕFDaImpؼ(cl$ Xp0O t>'t#)$3ڬ Φ=g# ]!p9Ljvcg9'H:JXjnD4XkH'6Kwd0;n`DVҭ3n#f$8C2f5l苊3c#dx|3}VOMAk="aXh]MDiB?dF͞"zݾ3{%EN%Bn)G!F9(Ŋl)u2|G u,KEYo(x<_7 ?Slo4į8KOeqgkjI !_95FGe,܅8YDJVԊH0JMjQOLLJ T+ |aw] 8gtJړ9-Jal/>҉[J]ͫ5M)U:Daa-.߄JY]mҘazГPO}}Ohz +G 'QBɈ}ahZ5$H9D"x(Afv=݆ Yw<JLÞV&jJ 1]QԮ]`]КlܭxDY6h2 *|01= o6)uE1 E8@zYMq:&#C ڇLT&zEsΑ|yOJS.7qIFD^6Py ѐR N 1;9AM'Mi>R8TC.-+*'[.h1E_shQHX'09t2sf|+;7s>qRP1*+hp&Z_dg62kV8Շϙ)~JOmȏth52r>PRN#AzIzB]#X>%XTgkr<DiP=I" td|e_D{e/}a1vr8윌ʢzfSd8ݜzz IQKbVaI$lrmyWI\SY3zS !X}[KΈb F",LCv>ܕZ%9DD'žܒ s&l35SCF=KdKs;3} FCoSZ+K*ʪp2TG-siM)[f rS?,ïM[C8kjUear_t,#ڃA֢Mk#&xGWĔ$Ձ"iG;F:6qRXF{cZM%x|)W\ ے╹8ݰ0t`! Gk#+rID6=MѾ)|U.Y55 tCn۬kȻL/9 X34fG ̕.{ڨXi(d2١FO}瞛V56^,P?T1y;A7e.O=*cno}=s^\=̯]CxrЂ[G"' %;b8E]!:>T}X]c!Tɩ",bѾ|L}*^>BԨ?5{J/9YڑUj`^k!k4!evnN̛x<,D>ϻ #X'Ss~bN6ucws6|@>X4֭ ›{4aaȅ{hct3z6^?&st0xlKM9t=FVcv=A& Ek^uoʻ'C aΙY@oI,& 5TR09Oy܆y"eС8㊩Xǐr{FunH=10F_+#S`5gFtL* 'e̘ Ӱd~9)w,7քn\pg>Yg/54s\KQ cb ;p iE#5{g5`ɟ8qaB/\zR(4w,M2kx\o18"h7 ~ӌ6`X,} ¯|eqhtp. D3IO* T'J-JlÞ^wa0;S3+Q@}OS>`TKlϜ^|YYQZqW HAaer'b% UNu.#8[RNBe;[v1ʇbOPыe]yC8%lU8>Vq^R{TR&ֽeqBM|6X&h1OaM|*B1WwTRc*%PYuWFR/շO`ಣD 8XYc1U{ \ MdEDJwQ@=;4 )5&Upn~wi8_`$uDUDOnA.Y5pZG1Z+xH* Z#'Y,JKRQg&),|d2JH{ 3` laÜNab9JNnQ/,{[ȯEwP3ջJruic$90u?A% v-lAlɹS/D@zmVSa0s=of~| z(hTEorFxvǣ)E8<#u>fF5LTϺ>w9“:>; I:Q3*KHkʅ``mBI<\\rB T'3,B{^3#,|ѾP=`R5tԩ9fqXrk8D>E 5Hv',Ҧ}ATbt,3k^9K~f͕'CV5}p9-!E%|d;%f%f{j e~*ȝA^?eO|,BaT: cG¶[9 Sh֍EC`rb;vRv4wqT*fpB bNTӳbM":c8L@5lw2+U.recFb̂Qezͧx2}WRPHSk89ylKpc}w{6+dʱ*=7լ (L:X{]:Uy+vۈ((9c+̆GHVNmxmjۊd+i$V1J:SHBJ@y8DCS8E2U~`5 =5iM+}Հg8=SBZ 6ohA\RWeDD!vBU6XNB@l& ]s g/;b˻K^XŚYF{  k*FlS RlaCGh*NNCJgnB SIM3k Y;= n\d32 Xeqg8 tBcF]zTHvaec4,e5NAqx)=J݄2L$8: JZi K8t Q[O bIm>lg׀j`S ly] MvMu8u!b0nKIhjl-\lk?A趀*>- ACﭺ(+%_?a _o5-H|Uxotه=8}16y'wbsscs7|Ɠ/ I|1ބߪz;}xZi$^y q,1`8ZSh\Nr 0 Q*q4};h5-*s/xBo$}gVEp])s׬JU)`g\lrd7%gB:K8߇ S *Nra0zgRkL T8ց'!7' -0o, ee:>eIq%#N"G'?z8`Zx'^KmFlLrШ5amyXA 9HḴ*/OaWZJƕd1FY6aQRQ&2:7曮HNn:hޖ1 j 8z CV3o٩*ﯮAoǢ!Z[r>i"dr\D ?X#\xvf2]UhͯΦ|JKnj#9 uiYm@5\V_Cp h`U.@!Ubl6)ɘM8 Nt0G2ϯ>xXcC>?㸛WZ jϤ1xY"ف>f|2FU r/unjm#b{^ ??H0=fMKEnӍP!3SS C8 =vի2$ 4 %Q1J護ϓi/89z~^<>n}ĹѫZo= 㽓8`o?1Dƃ})#Ru=N^?lK/xz>nǧ;vã0ދSdCcw+8 xۯ`4ɝi tLp=Vsnq;~?O0!tst9:<=?{S'{`x!@<<~@#ɞv ݼO~r$1;$|E)nE4nկ7 IK4l3@jj?$N.rVlU.%z:ֵWAr W.C'jFXm[Elq}d: ܚ7!ՕD`61^&^!LзbVV4镍6H}&_J\TI ;J8KzO8;8vvKQ>| ^SV⭧l-or 0}i/8(N3?zoY#PƾgA$3^Ӫ3MuדRk@S\kSr~5Ju7wiWm?(4>:KLLɉ5 7r_!&A6] ;yuuUA$)o  3%o6TT{H|u blĕb|OvyM>DHM>1[F_\h69$:.9PN?So+ϠWrt찪^.TgU_c5YGUlGQToxto>rQy]A\1n$j5IwS["QuXXVKMG`c\!U@)"}˨W:7mz̘ :!gFI+}'ߗq3&; ph<,͙84z)HR#elY|~,7A2GRSRv;cOtBIQp0xSI78ٷگ\@5 b,ՉUJ¤ CL$aR߷hXJ4W-5TV39W"El*ZICI've-KyJMK2**pl9iz8[RT(R%OD'Ym1ˤRƲx3/sosv(EL Z %_9tŠp+rRs.ZGO+FwϏMyhޠPרU%uղ> ڊylKsYR+3p–V܍/#: /s|0Ũd9UՐ/2]C#_jm+Mۓ*3wlQ&>0Sē2s- Mg~m8@Wm#Sಾ?8 QC[l㊫\Uh_Fv } 2gw6 *YLjhkt'qݸ/EVlBǾȑCtIx.mwgi܃>21 X :m{`_CWY 8=7qEtr :9L&:?2`|ض9?_dk{OEtgNڭzkʆ{þ(7G7c514{vg׉&<}"$4S?Bm7D5<.$󹌓%]6g- C~Q ĬQ :1__=gճzVY=gճzVY=gճzVY=gճzV|?*]etaskcoach-1.4.3/thirdparty/python-ntlm-40080cff37ab32570f9bb50bad0a46b957409c18.tar.gz000066400000000000000000000352701265347643000266520ustar00rootroot00000000000000zP}w۸9*o+d7N덽Om'vڷ/Iuh%xo$8%9qf- |`f0 @p~̦<}_rggs >b~oq{үE)2IQS_M&Kv&\2E?>$|[\ϏOcP{`ób^Ϣ|1 {='vv6$2|6K2gi.J:lOy8z^GwY5=8>9g,5᫗gPOͦ,(y{3bدD]QwFGl6Gq4&UD}xlkCfl:{ZY{O0vpX&nڢwp[6ojYMRo]H{!N7aC )sTRQkNYoiBn8R6l&zm4M1i,LnjIFI $2.S$ EQ T 4nY>S p;TAlY Dɐtv^%wvlEE̓0fBda,WH a}YceY|DT?E0H<œxTGdX:Ka?gt$hiF`~MOw6`; q$P7XO;i&߸ޓ'8^fI̟h.K<f$1L(w,F[g(SI2L,4zz?+A}U+9;f&ǥuXu>=Cŏt=v5E7; } } 5Z@M?lY]ǸsvpzxkEd\E&MbO?:[p0r]Y4\1b?ģy""02K"#ͱ"%|5Z%Ȥru`QEPz :[FpQܶn8pQToͦ`1ophi[jFaqeHj$Z6kZZJCIkhe1`@~znHC^qc@)!l>B;tOF:Jq J-7T^+,W,u4K9r"Mw "NCQܪJhm#SCD'>iqA `m=F1G8ŽڅF[uQD߆ X1nOߌ8zǏO^Ĺ#6?҇o`Fٗ Rx9 ʹZX]w$j55:P3s͢$-Q;l![a:j)jaT1].ȩ6s%|$kKdcd(y;9$jKG +]؈ڸ7ʫCR;:[wRg&O 0͎x P0&Zc8q>>:;_2?^^tm-bo'_ qX&FSkxֈ]ŷ&kCl"\Gi?aqc ٓ=fg4]vx;/0>cCS4MarMa9{j9MeI1L=Üi ƍ[qCדYngxre \V &g3l'kvaQW$!I

        `"%f.P 1dvGy'YA@p!q(?!uO[ 0\ wX߻ G[4w\mDiG:A$Hۮ¢ fǑ,?]!m^Dɜ/<Ztqiqߌn>d P"O0EAqӹ.[p֝p&XzA)ٳuƢ[yok ζT@vjQλ=YM™s.^j^zAqZcu ڜżS owR|7Z{ Zh+O~eT|m ֫v`8*`{m>u~=luAa=t+`SSbQf0Nwg v =Vy_Vi*eZ }s齷Arw*Vs 7.#T TI/l4|y}3m7랧V+3vp=yzztvɎNt,BsG7a*fWlMAc{ __#櫥FEZB|Fnˢ(Qkc|z;۞߮ 5$n':*St0?Q[F0Jn%lOoL :S\ HCŸº8&;sL@5 BZjUvLn~(z.E[RTRT=D1!%,7Fيʞ,ԼW-EmͭԀ*5+ukzlHsZ^4Un8FMS5bvR7NƟ$޴tX8bYcV#KE_SZK5`Siq6u@ #1s\z6!U<^Hy_9Y #}=H8FrHG""0)^G0~*F` 9Uq]9*7}'' Py{i9ēUū>ϥWZEa1A-HO.[)EaLpa]{.O/fGPgɼRYBIEmLu5_nW!QKs?9_M .•pF pa|+=fJ)-rK J+[ց% anro0jYIq&}iQ*偿o At,Q2cəN$:,8wP5[NSp=yG%_:)u_ r*EIäLK*P/Ŋ0cU!*TnC 1as:]@>bGNeoDQSWpzBHЫ%L((ɢzy@ os 1 'w*,j>p_C~lcwpR:{wz *gͻvj>+B\:36#ƪ>w!G дW$y*ŝ YY}( 'ʄ'>'IURv(d-I%rIѩ }$RVQ*lۄ3KA# —ZSf UѶd2m  Qg;WPKpLxovSly7)3;N7zvVF6^jLA`inMLa]jZӬlУUkDYuZAZb:m5 "V!nTF,ghbUի8&O+u %&!7PD7s `fc+Uے 1R#^.Sj%ꊰICL\ȷhͮlSjdTlfWhAR֑4:˶vLv-aۚ[:/1HKcZ>}gӛojҭ`\:Υj%`EZ"P;#F7y)/>ŧ{\|*ʅG0p>ŧC.>OBk,.ڋ=A4R{q^\^\j/.m_Pŧbŧr\h iڋKťR{q^\^\j/.ڋ}3swahzb٥Xv)]K@5PMTӁ]eb٥XvM,t@5PMw)]eb5Tt@5ޥXv)]eWrOS\|*ŧrMT.>Or\|*7R>QȎ`5 y^hP,j/jP^L{%Xoŧr\|*ߔOST.&C>P9r˂ڙzK,>ŢGFG ,Vţ{L^ >ۥrqMT.@b)\-(/=3yj/* X|ŧX|ڋ{qb/ţ{L^a5U5RT..kťrq\\*yo n|ƞ0b(hr` tl b)b1xᝈڥr٥5vM..kťv\vi OO^-b$hG-Q8^ڜF`ɼ;JfYj(^ P Eig)3]K %ԡL0k ]#1I<^a-H!tV@IH1@iO`#v r=aF>X6c`|e7_6;GNAZJ,G0"|,/!,7]tGθM{h.; (~mSǪ5;\@ ASA6sY G*6`B1xqwYw? T>Yt=cIx#]1$ 8Ƒ{[o{aɁ|! ,#o5߾mV6g8kow0ͣkb֦pxLѐ"XĐ}0_2j9WwmƔvxxA]ON,Y>SI?5.txKO!XLB۪|B7Wx[0l8Sn{D9ZW2-9N)Rb(K15m)Dmv"%دŋv|Nv zuhC6F|,Z}E\:.u|A/ڪ<ݒl;aBԾ ua04k&s u;k2'ikLr?~#e~K偌6 V\˳=+R7a^^X/p"Uw,FE㔥qa=oo RrVE@^QUH kH0uXH4R1f8k 8H ^̩,|>]@D GYl/O޾ŁP[K5UҩP޼ e~Hno0U:&"qZ":2֌Ls__ꀇp$0^m9LAkA8gU@kʑP[B*Y;lVj'(nUuJa.ћdXV)0H|p9*J-,Z') [A^]szܤno-/\/\{ſG_+wu?xUn8Hy $ 'gϞ6ܩVbHwo5nXS]VF^ڐQ4PFX[ID1/"Ꙫ!s%ղ(7TXfŰO*HKyϠfqk\Tڮ )!4p3Av~RsT&Y+V>]Vi̛5޾m`l-YsYYpTB6[Q]F'qK7߷66/ f-se^0߷Jn0Z'oZ,qxF"(Q?1Ok1 ¼<:)'a"e+`| z~:8ݵѠ0".q&X 0a^m=op^G_;+LTetx~ogy9Mt6-&ѭXX̅GZPY Xx%`| cxT%0˻y$ZSG?h:s#JXs)`|_`<L`9$pB-Aˆ'CHp6]^S}x8]:79oAWJrxNo9- l0Ru^ mYj`@+G`30Ưۻ v?B3|:_|rv[0#xr @زb)6ky갵&Zvep|К[!k©>fu455(5/vkf>`Zp%B^1 dJF5 :\*-L cäIQgN hKp 'V0It=u{Ď$mk R,R$:G 31n)ѹڄ}5wvrTg'gLEfU}hy4'ZNCqVqхfO'ѓ0D{ahGp߉3|A};OwK.% cM>,x?; :Xe`b]f0E;'p5 <^ΡĿiy8zm)xL_51& =Cxvןe},$ .Njy^q_"容xBvw3kdmۜX@gQX5LVĐ+Tb2xNgP'kJrRIp$I/#rHSܺ*Uy5Ye_[@VڗFwWI`p 2g\/} ͝8F`4-i5ے5[`Ūh Jw1.dd-[WR/Մx3VmbhDRI|]j9`b.]",X}ay@(*^[%>-uwϞ:G!ڢQj1ey[z_܇Ї(ڶU5#Bu]jOON=ƹ/sD'C@rc̽`%+{cūN<]~Le>;ybqXkf}F3+ZpV[=,j5l9^th|ηhuZ30OL[Z)LdgSXP67P).㯬6V4m誆.ƀ4y8ty}Z|Vto8wص"ݧroieч!/&*5r\-7CآpU2 e TmY:Vm?1Lb˪z LBLE=(@>)6k~vc}?fz =ki;\[S :PO!MXYiW>,>qV:g{ F1g1vxzk RlS U{!ޞkK8LPXA2Z< Bт-ʩDE–z'ύϮ~Ju.ow(a0ۢ"ml{FEL>֣zqK}^{vaϓMm raA'AErXS{KNth +lA j("&WϋxE4_%ÆW6JӋE\'$CY76n KA3m( _|?=?7$i vbmĉ5jAe VgbH_ǏGa+.kL8Y!۱ߔ Oc~+bɽW^1~Peb+,|:ooS>[\&4>+W'[$"+_^DZWآ/'4u9Isy3c7'UT<(f(Q-fn z&kv{;>1VOju}큖\ΰQ-dhHe U+\nmxWbc;lp'NēVVDN /UR"Dx!GLJ=" NOAJmfB.w`.'gzJ辍RA 7}6a. p](4$sLE >DWni.6<}Q$Y ~-ZOAo 5/Xm+bjm_-2 +3o wn2r5] XE,as&*|ٽY/^'c]9ܐ NqQ;.a'.s '/,%|s c =YϢ̟` Q,xyHxXo`ʈk+̈́ccNX/wQxXE~wƬ?ݑ6WU/[g \5Y9ν iq>I #)pЧnKحBFlwAL"{ٓ*d]&ag@bO2p2Dd&௃{=+";5zP6ӫ^-A<<^EdWj/볾Ast_Pk70,[fwD/4oa0NiF#)Pg a^9W|\w}|rƳj}-$˃@A/x9 #0E>Sg{A|v~>/=7/6_ P__ۄ%t5Ԛj{&v8ȣh35k5SO5V\ 8WYkDA4 .A/T0V4FUW:7gm}ڋa IGAh&*U/ßXZa/Tg*R-Ctv}h C<|Z&J3#)&PaCi4 cYë$ʕuCh#UkiFI;Toaq{Qڛ0^d0 &þJ6 <ڦ) ZSh&(LWY/c Fa00ָ_\Lä1a46(g2K00#>r{^DOf>ۘ4M?x"Ԅ?Oӽ3&S5@+U? #9fr&}{iѷ:/].3Uԏ=ea.UL)0U/&,~ăj2NK!*&Q"8>E=z4* e:ғ{KMe Crl2'i0^p"VM56<o=ywWIOL2#g0 &vsp#╠R*03x? n2'b^|9vIWwPV7Q=IfWNAɣ$^]hFHh0,n>[lHR?d&Lf҈,x PZh[W0g ` | `(mBpE+݀P* 28Y@uʶۜ]v!qYv6@d'e1,E WH7(qxG0X1 ,b}HLŽ 5#"Ts.dLbTYj/UK @2OE202HBE5''Aԁg!4aԻuJnt Jҳ:-U` i*p=+D+J0)`Q02՘ޡͶga;$y"pQ\D OM t$?U]-'Q/R$7T)p 3$}tHWiЏDAl< .cd:?$ oQ8SFDd`?U[D5`[ `[ 55_>\G$h#= R(@ot˴7K1O A%H[Hy"@lX.*md’teay"A2-gYSp(˚ԬS%ԲEȒ4Sc%F YnE3#F:?}?d0h_6=J@Xi,lكaǙi`x /&q4f ?vARAL=)R}Ȁq?E  dBV 7Vhogq{H\co9hLe? [5&Z=Rk߯!R|>H{ІhdɗfVއGf[ k m9`8aڰ[m !chBY,/ۚaS]6 T?v?t:?wBmP- =~N!'m;i+hz/J G~~Cw[ƫ@{9H\oo&qX#X>^8hauxJgXo:cc 6O-ʊ.A^` E3* <^6/'f_.N|o4bmj!lW 4 kLYC\o%UEeW kc44{ jeσ6>9|ZIw8aw)nm'a_c-Ww`RGƋ,sB \o:-%?Owo:Ř-9X=S2֖Cs;F -5 .7t@J]풙܁kh6^XQjHrPޏGru A.W %)TY \n1f]ϗ_>Qu}|t]u:0Nlz @YY.{u2AC@\v]0<! Ta;`dp;4 x҃(jVj6B?!q$c D(]պU۪"n`pJ~\_V \mnxoo@($*!x;~ j]ꗣ 't} 3tMA6cjӻÝVںG9(l ̨kHQf9Fy'iftW>kpcQzl v"ڐH -h32Ԃv l4a;b V _'w U' h9ŽRN&iDn8F^ vvrZ/ϲ<:(>~9998~1LU,-aQ;ߵH ŝ2+'sc玡>N<5<&YD1 b%Rah*?L^mjON nuPАsΦlG-aY9eؿ&OqI $xoIsޔj[6aC;Hi*\&Р \,İ(Hhs&uCƂK3A++ۊZܤ*̗ieqAwd$MKV;E!oh ohf nO/ 8Mi6a=y{?hZLYqVA#tܩ"q|e4ȿ.̃%ꊞ'˦z6,7A1Z@{q>[Z-&E 0)mڕW|2WPdddl?U? k}M|$}ap}e)|trxpc'4 M[ǶUCmnT#oJƲ VhD[>mه}Y2cE˖Al_Pl_&EJqn#pbұni&Mp8"[#0ҼFP2Wpcn8qJfaie8ܮ1%-n(uO߾;/uT(w!,]G ->"`~WDpW: nÿ Q<>s?:wQ.7<'i^_82}Y!V]/Cg N2M5? E~x_W0{hj0 p%_!`is|w@J RT?A9=f]'3يTDb[yϲmѵww;oO;gm12R~;z",ΚӶń!2xRkex|ŘN`iGjnY{'ݽCuD_.q3]2Gv]Fc m"lp+vQ."3NQj&]8 %֝eJe'7v~=T`T; 8>:90}rY1iL ŲH9@A \ǩ6wK=/7U0CAvI!v#/gxԡKvx]kwX& yuoa>>vO:./i5GCA*j-ٗ'`Pv}4qo4R97[$'@ uIdA5]x[|'0o2eTד=3M@<Jԛax622,%zT?߁.ӱk@>@~x' ^|B@"uwQ,ay2҂F @\980,ԭ1wQ8kw҈/F:،eW~V(YQ/±Tz^¸'eVzTֱP4љ6r̒ K a.P'e_:gݣc&"2(#!Oü+}{Z>ZB*4sC<KB _ =n1ZA jc&qZh(ݖm}ØAa(_,3g9[D.8G]M\khe:To+\62/bD'*"}^## Z NO_̤V Nń-ɺi&U=>LiX{W{KH_:컹Dٜ6 2C`>]:6j@i5']'\d-)تSk I78ڒ@LRL%t!ʢ]qcWZXoєxk 1:=RRn*&a1uyU}o9D*)U-:k(u $ Tjf%}Csk0eFKo;BfNLy![b#6h7^NaPǤ:#w1BQ:QT y' ;b§|rZ|!tLW3M39))gu\]j a^]̌._^T r7}Ӹv(z}q.(UHϭJ|wW\Y_?#~{^n(zn0HX7[C8%|!uN϶$}}zǏgu~b<0|~2Ik3C?&Z0; MR:BE1h a(QDV9YKgp/@}g[Р,MWvCϝldy< ƉZ[ 59vk ߇ tiɖ.4纑I;yhi1s s=9sfKLnIzdȅHrwi$$5u; T$&3eN mt~GiL'r;Hn?_0PIEEИ͂JJg*I_[P_sw J{.z~sz `ѓ k,vbZ/1̦aё+ьZQIŋp 7FهpftY A,U91Pst7j"ng&Y ㇗M[qԎJ|Ъ8y&Ciݬ `u z^%/ "$njaht xb%W\4buSgCJdHC=kF)+ g8zIIP\668o5 v#a0(J %3l,^YFfgJyQ8.qLIEEuQs5*RFj*z;ٛd``A" Rnߌot tۦ&O dыոWcNŋ24+=z{9?:׳pbOvpɿ#\`4Z;ug8/ 9iF!dfƍb"jX'ʎHpD}c_RfvtKV `H3ȷzD|t b+4Q'{ĤtBLd.-fBlTtj @f&x h KDK/^%H; [M c<Fs:ofbyR>\mieJR7j@ vI0GB-ʪs#-!& 6ږT/Кl ۛϱ=s~mƔnuD`mU{QJ<op!ldI6/`nig|k4b4N8ûdŒ}L:5xvgvFu^@:f_āmts$SWd A|aݛc__vF˪C;Q%{fo]ŘQ}hH2KKDg67؂>x*qݞߥt(oU(A͘a9^;܄ ` uNJ'v lfM"1NB_~`Y;*n_Vs@ DϔwvIGI2DEhӋDdo8PX^ŏ-z= 뀸[]ooqfN`hHWSyğ$"⢀㟘] $6JG>{7lm8n4Gh(Y.-Y#!xо^EI6۝Yb|rY1k^U%psX}7l-g%cQ]*n}0[\+M8X)YNCt8v%FZ#IyZX E?79} q_+y,,qJ[Ǵ6my?d@7EFlnINKIA0-Ք -#49ahOvDsm3]m RLsl'+@beƴR0`x'E"~Ůj'=MJfdž 6mglG璈JW A;7{`ɶ,k .ԭeɹrrU+Jݸ%W\+5=&M<6@b1J9U>" hbQ_fLlm,&G'cydm1+yq29gs= .Q}:r%u]1[g?W0@5Dž7 V%~YAI^hD:;Ω6!w1p~ݝHu.F,̾5^9WC=}t ۦl\.&mO;<=CڰS D\kc {~.`:0]9)-(M+NvL%m/Hç|B䜎ś{"5`/ oq a?ϟn<ϷԂp x9x+^'^əՅV+D|Y1[m 4ޣY?5si[$ms _po՚Re$vk-Ua/DEA_h kr&ԈnXǴw3LD' ;^q@ˠj?_jxmqe΂rsr)u0wN 칧4;fn5f6 ?H; WR@Rk,˚bcEp!D;̀]0ѧI0|吅'?[aBaJM}}2i2R?ԛepN'i8୅##>D&T OL̤N2ⴛf#J`1޸c΄&tl% ה-IԑbaStdF9ދ6fUtO[5A)x%?"qzŨ옵P'4C>hNaJe #7:j,Fi\R;rk&}n bG Dc>BV¸-qh6%VF(ϕ6: m7u`JICaNm7pƄ?̂FHG^J ᑛ+,Vy 5fمD$zk7%N$ZCBW ThDrɀI@YmEKm"$d2/hydhAK<*LqR5tidvxmMkI2Kt~{>*,L1nN ze]ʣ́df 3Ex[ 3C'(Ljsp xHWz 7d fJT,gKd,tyPAU5P;yݝ#<̲U9YzPႪTnag{N¤P1%(X{$IJP Zd]UV"2qp09i[ɘ+q/]yv .FatRYxl ÌIhe>Hr> /,&a8 }ɨ.cdT%-7HS? ZqCf J_rpެ( _h\Ah>bB*gQ\@ wum.M*y%"zX+hGӻf=^\ek0KLF6U-VQ)RjP}tPtU@DJZ&X N?l*+jE2DU2WA"@!+Zo14]&750aS8:7:h:FA LH27n[%#IMٌDg]UU1ڕy6XF&zh^ϴbo(3'SVX,٭t<|\lgK**fL_uʙA(e}U(66/4* BK}ohT)a2Z ]fC-t2m=Qo ٠?iۿg>m8R#eg9$x&ràZ#ʤV_H]PvS˅_* ZAiAd$7$*Tl a`>4~ot MdpM|b@>4ąA{QUYFh+ 5x頠а&4ގx}+(x(lҴar𷕾f o)k8,! i&_QA#x|v~WI%r̍'5$2pC"ظz:5hq##1,sd4#lXr]ܥiFjOQ:ji#Uy[Iw!̀tyqEdi:t6 3G N} #Xaf~x7:}D f0o:ȘLȯ'DTm{`zvܮh80 ^^lI{&sQ RWnLAD;h/53*!bfgCsuw_Ba휭 GVI-i!jw=@ Jѐlr9@P>4n%G,]!s-^2%Њ^0eVuFRL1Nj' ;% 5/ZZYHz2' !O+дwsN{+E2`1 &:Qt|]6Tz {=DEh6jcdc$z˜0i\70^zi2̛iХ 0E3[ES*S%ߴd1dr#vPʌc~(FAy5$pE$ Qh9D^_/5@K2@K 5ӻ,6i ۖ4d;&ct^XI&tlXݣسTegrԤ"q9#@HoO(MdFQL8,Je~ٻhE&$BvK40sKrcJX!U ZxPxaVn&1h2*r!]'}NVt2Eu"PEG>Okc򇌊 /{”YƦ5GjגGw4s"/J]eMfA' v'wUDAo/Л|84eǏ$/:t u3}L FŇk':*Gn*)XYMB`Q#|]/.yN N*%Y!REd,b'(Ln>-ugkZ0U!#{vjC=* Bqp o(Tuy#򷆈f=#6ΑA'Iѳ-=)'pIEԡ83NܬkPѣ3+epe8슱?9:I HRpL 9ސ=φl '\AJӄ"'qf!|e1ސW"vG.4a\ Q!O5s U\:2_bAO^}><;ek '%ExP~پMar~11Rhen *BWQvZ8Yp21>.V#<}Qag py qnDcH<44(a֦e݌4[ɕ٦~y-li9HKș[i#w4M=1St|eC4+Bnhb3m1rѤGgp lx-DE tdc=x:'lxH} x4,Ϸ||'ڀGM#Eu%k Ϸ'woUt~=I¤Ѕ9dm&ņg[a?]53KEjz z7ؐ>t rҳkN_aKuW =ٹtog{>@E>8҃t¦|U:ǘo%R32qbX>UwōH=w6}rA#(NΉ|8<9؁ D)$',]p;!m-}c XtjfI[7*NkPt̅)m/B!0 #}5𛞖Ɠ&=${,]I(3A;|[yk~tfJ+~d'Fʰu >Ή-yatѰzlL Ca񇖏BO;6ǜg'Nb?Ca [6=c6*VotRٔZԜKIFmXA{Nct`5r71iM+v0*)ol*y|}?ᤔ`Cܒ(ANY=R]7,mWuEn9/(u^{ .ԷGS/e^M0ad}cOۿq߅1oz)b?@ks3cϔ<ֿ8sR!1$bOVY=I ПnmX8O],4\&vi; sS+ -SaB"qønJ8}!;\,J iLqG .1ŚO,98fǥ7x^,Eݖ[-"mR\^j˺e@.宗r﯎|m6dz$Y}'K}6 F1j\Eht6EezNû^4?n9쓊^߆mHSg`_It.$L.o. b#c|6"IH=Ev@gW>4F!o܁0R؏7r;;PSYQ92% M>%ѿ^qfƵ|Qj'Ң@~=OgN_)Jx!zZBBui؛&qmC$mJcivIma *'7wA0`T!RoGnƺUU[ g$I]'6y }yvga7[\ MȽ8tqoxtEeQ+y  Yt =QW>*ž,,8mduf }NRz ӑEWIX+#ֿ[WߩF-|Yħ΄]hњ9SlZM h9⋎dlk0 <]hݶgQ4u趍?e]j5 '~Eۖ _ɕ)1MC)iƬ 1(GN eJl'va!}9s!:m:d6Av -K_Rx`߁q,4\@FcyXMpon+.}|-c?GW}AxPR],lp]+: L@k0A uB^0MC%鴨Gf"ų|[RjԦ:v$q|i/޸G) CX.,KzQ ^ƻ!_DUv0f`Ȳ9/bu:kPw*J/OuӃ58Sd 6EX,v"i)r VtL8lyڮN! RA *ˏ$'[geY( KƮށJ'zJ9sؐ:o{2H6dls'iB9hqUWCR g 7Tڡ}m[tY6IíiFR];:! Vۼ|֦P|wUHr2JzW F˖7S S78+@K>zIKj]~"תN&׺_;Rhz4ψ]i0ABͣfCf{Ј"7{V Pa[@J}}HJI ɪ_gE6lv[ۂHY%ΤPN[@iC:na$F8hh?̕ Z>Fvyrxuy_{@$yCjMmxkLqCx[mt!r8LAT/m Qm8 w1_gܵpOQy_ׂ 'LF2a&aκ_;;Nw( f_i7hz'fװUƅNl7fڝui+EIVDeK@uax<#v>^_QZFwiHĔMhQ&Tobf,\O]GƸPmJm-4GD s#u `yQ;(ijqO^'snբ:ThU>e%gf49S/cqxJ9<:вBzWP2MνORh`n j^BI?fYE,&(e(Wjph#[g G73Kq^LZɸ"gFr&W]S'~"!!mVKg.8Æ}LD˾\ FC&yu}F9v9C<(nQIQ(WWo#u&[X.[[V 4m)ݳHC*7XO[voTDq1q䯃t x@?27PD"lRd3[oBͅ1mX"uZeT,Wħu6%5ezҪRx;==[ør<ϾUbtK9 k|^nt~1:b00DZ9a%l~f, >kCqJh%nCop1VDe0hNS6@Ro/(j.%ejt5Aεdq1 dcUbe5BlX<AB(J#Tvd*q)8 ;Dhe!VLKM?+)SY (MGyZͱ)0mF}mf,D~h;ϺX=cL磡ѯhjB<8tjb5fq2v v07hlɝ;Vu۲& /CLc&b|wk#AdR:Eǰ݉eSarrz@Ɲxݶb:\A,‰߀5] I*w)Y$t:Yl^#](YL,h&l`[EV02kQM6$p'rD&< 9UPE7kd-]Lsa͜ aEܰ=濄͠%V>`sCЂRW;5S /ZqY)V|2޺<`.ij5$ ع|#N)~O>l:~Z)UEex(la;Q¥J/tN7rb2vD:J.gd>&=(e7W8M>&/ЍfEQB&GZU8W+Dsh;ꅒ}0h0! S)N0Y-| 8CrgKk8dv[m$$0gnd8>fJ#A Hm>OJwz\NѭS"rN8rӇJ v1 )fTFXP|f2" r▅Rx^Ev`N޶!;bjٌFs:HDf*1VٴBrsژ=*g/wm#2ͳ],͛93Z;Kst,d)QFzHzu:EZkhֲ3!o| ֽ,ywK $} şkλӽ2Y(U9ݜC078sИsf`'Ik֊#Im]:na @#fd+f^#w)v8tʤoJ3mWv`e6e4 ɭ mMlQwx$-JN]uÕŭ5S|EPi:W V152R@M8$ ћJ>bf{d0uq/zip +:¢3ޢ@򆓑;>'ᒾ9RȬNg$֔N>6'b( :Zn+rWD 0tT !cj=d(ڐ1%',+@V݈a8J1žDdt?mrPW<:fȷ|iBxd,_h|0gig ^2k>\+9 ˥+սY+Ƥ|;>8G8~rKɟ]LxT4ɀN OP-r,;,($ o2O,2-r /~+7S9 X<>;~Cl}mWBQ/2߿nr}nuDv|Āl(׭UahE^}2F-I K\r.AlUjk4(ޣ,ʘɄ:_ ?Nl^AXFxX~y)ߦd܈ |#"dTz.du<&@^9T ZUxgf])R-Q31C H+9IvUeJI:v W)*i?45-xݸʠZk52'≘bdYém~G?n 7ggc_w'Z4.wKDW+8˺:>ͱwgi ^P7oc/ipeꗾ }(utR̔ݮؗ h!ڔ>ˑ|xކA؜۴?JC c8f[;E~ID@,߽(:% O>D}aE0ƛ,(59.y{3|*zxrpf=}bL;ٻ~kXL᜸BNILO>݇"^RegHS.wre e7nSJhjG*L?|gzwH2 '`a3-|_<{&jcgcSo<P_@A/x9 cQC8eА_MWa#F /QY(KЅ 铠Osy5_mvvnd g k}7Hc@#Q8?'a}P| S[j$OX_-Lhˈ7su8IsIHWۓ V;`n0[&/UHgPO|Nӻ))u>< Fj1UJJDprNg~0 C]ñQQҏ&BQj޲ E$X2Iy yػ`Me1M2 9{ragO|?_?zA)w_g/~o7:o)̹7ϟ.}ϣ?>d(~ƷhZb> Qq7Ԣ{feso0w&lgc_3ok|~[|>m/+WzT ϣQ 7t2Wg=HKqhnVnr:tAf $k1ZmAIc:4i:((fpWZuymKB?0 `l*ڷNiQ+>$vi;=C,8!#]5&alc֔ >jys؏Rv`8f^H/+&]8E(#\r_ CP3Û3&SЯ]F1Lܙ!-@L; Q &;DdմcՆnż@46ңf-~EП ЯMQĈ&H)3ŇL2Vz FuX\kĆC&?vutGg{#SԈâ̖l~6r00'xuRvw"Wܚg|xC[{.IV(E֏ͯ`gڢiv_^wf56RQw'Რj L[T&2 [Xޅr=>8~===>8xsl V栥C~/_jT4WI@VBÏRS6s-zh:'TkyVCVm,rޔj ׫ӡϛB\RWz0#UeA] Bi}G0iz _|V~ފ_+ JA|T NϻoNwcHcESEn{aF*PMN\7OV$=.'A Xa P=Wb),Әx*Qr܏ކ4wYԨG%Ӥ@?0 ~58454ۅ]|W}6E{gnUvOS-jc瓰n|k4g ISx~q;g^E&q~ϳY|la=Ajs(͒e~K:ݞU`b*j7dSioIՊp= ,- @&HCW ?ќ~La_/$gҖ9 X=D9翖Y(u".U Gb5alR4xcyM㢛Q>^sqf) Kmxk2/nets/&eV W~?6H#<᮳P2aж_v,EgO( ZRww$%m!&Y'xQ* /E:arGx/bIڧc̃`D@ m!A8xOth$h}~&z>7P`]Q a O❉64J8L8 FoC/>uLDg (i49Ÿ )~&i#]kUo{ lM.\)IJp8ۍ&,m;9.CS\xԴ"GiTOMM^Bw֐AD`ٶJ)޽_0^hz:< KiEX?u0 垁HpU @TP>)gXHVf6835Nϯq)Q e“t`yw(JC4-3vn(C3"-7qD i q0XCg͒`<1m={k^[BWMgO>;iWNXH%Y|5bh Za1jVJtjYʅGu=פC)_%7 B7h@+\N|xAc$3=HA~j"MF;-" >oEaAid!\C)Q놭;+dXQb#@ w:swQGowj=mׁ-VXn aLS4㕑F$4q4$7~khMP+׈Q s[cGή(an$E=͈=]PS:{[cQ00U0O;ݳG; mxUx~999?>uz4Z >¿&%SVw!xI"^(Gi8 .ֲv}`][C[_ Ct6({Do 0X4{W_XA/~Q)Jn e.<>$\=b:UP\gi =seiMǢ n1(C/sY]l:lѼl ~ӌ?|I l.r ToJS`h2 grB煮L{Gz8+@>qvk2qL;i͆Nb'^ob B;lx*w2%891T)-*eVTRIvJZ B":Axg|J%Hixp%LdN&|.}}S2o=Z]@Qvy߃`4[jB<Ê:{e?|>"Zk8Yjc\^:nD]0N=3%B*wR#&\_#l~΂QGzli)#PmPoo 6?}h 2{Ûn9&r=CYKz^i!هo^nACZQ zn6NCFmrݻWꏠQUg0U*愚wzoޜ^K `1)*2(~p"s0lEheǚՖEJcC֙3  J,lX]_%%{ P9'c$=ͼ@97}ip QJPwJv[~8&/¯*+1nT-}Mgxi7^'ɢf#/S) _LCXSe~p砋-=2$ֿu~zwEgy,sfyҰ(GK²~r9$ =۔h6˭,<t7Pl[IZ8< ŕ'M~mgή>h}Z*Ty8haTj͇|CZyUC]Uӝ>?tzf*|-5Ga 6?AlVr&M9O|@tUUй:hI ޫ.ޫ>@]ZESF~{u,~ksT%uRW)̲x}\/b8ܗ?^ҁ[A`V\-uzqy~%Z;G=._@P@ϙP8s$ӹ]GU܌1s$ָ7yzs&͜h3]5n34zzQnԨEQ^#7j4p>wf0Z[Nl}~nybf wզCSDrtSTd{ddQmUyZ2̊milrRV7.:LD(tϟ,9gu:~+˳EsQ86 Y.sˣi3x2hYѯ* G5MM>3*hԫDyf[įuJWkO&!gg<ǷYP8$F-GJk%?|YF1`DH~8Ϧl*DއQf漴,GAqͪ>!EAܵy`B֛#Mo(b|_>m޽1&ə$P鬑!nadq9wc:OX+2YɷoS:Ⱦo7#s+~;U8 zAܟXNlbovrH^hc"W5L/?ϓ<}Z=YCoכڨ.>IT]<I䘷DFRyiŲ!_PNG%rPqLQ/Ծ`l^ݢR(բ? ŷ>X'ʻz67Tf`be(ТxffgJٕf%b/+b_5PmrzgZ_4SZ0JD |́YJ W /E0ÇQx5Ϥ=x~\z^oT,PQ7$5>(j]_LD"YoX.gO;>"{{x}gtB5O( w79];["LV'(U?S(`6O$gxmoY <k+:wr}1I/Ʉǥ&CR:VJ)_>TzbW:֏aH ?ݣ+EA]`F&xGW7t85`3b0/[ql>LwkR3 o$2qI@{Ӈumi<)ˌS3d% lSc+hђKWBj9iVrd`kc4QGm:4 ЙaFM6 `')':β*) 7Xs?6ۺ(4VzD?n(zGw)^qH4"L8ɥ^a9 糱˝!BLԥ2b>Ue/%Dy8脲4,eʞXB֥]J7@?11FA34edcB+z+/'G|"xc< y\/GI@̣,X`GIrzXMu0_}K~2 i;VZsA2/bƳ/]ZRL9|,%5aGG3Ý}s#p7kXɌƔa,jԮifS;;W6%Y[1u? )m^&{D.UQ˺*yɀww?pW}ee|SK а\3 a(ͯVA o;0 7UYuq%Nm3337잒1ܙlv(/R()ILc;Ig[D[P(e e= -Pf)+@4eS|ᇲϹ Gzs=s$o̐MAAFER62id۪O8ɖ"AP*S 8LfJS"aⓚi)8SȦN YFLLr&ҷP}1+ ǹ&i&U&سWRgdg%DpIˮ7Pe=_dqUl2$8@pA㣱HN shO*7У*j#r*(۞WɿP~E:j]eh;883n`Ⱈ 9[PmRb0Qsa-q2YISj ^+x7CRV,˙l~P}kYL ţxT5Lx3G(5lZϴ۶WDKvjdH{4*70ڨR~Md?.Dz=H𐬣[1ȢF!.`$Csi-D@8_hHjIGoc.rbx9$ |2ocx)<{z =g,?+NW`;ʲvS Rhϊt9\Nr fR3e+ ( O^j$uoa1ڲ0A1T+8%ɶުr#1r"Z^M3C[p ^ZȲYzt/ILW|wSvd8h jVadbԮE O%fS[fY QGƇƢ**xӔDN8AWgUG;VB #cZgE&,Xv!ޚ#jx~Uy< @) sr6!HJ{d <421k@ݬm@IZpbrw/ZzU]Dh:: m$_9ez6n8oCx7R˿+vk}ᬙ%,9H,Njڐ\KU N&V- ,*^G*;9cG>`IC)r|:Ӂ"ÚnDU)r] ;Pj' ?23b6Q^FOE]+QF;)Zm;BRii /*%.&\!Jې׭~M+  Wxhx`"Hڭ5sZpeLR6YWe2K7S@F_hL˪{1@Φ!\Dj7N*JZ \t{eu9?wyHR1͋I&dY?e)r,"街 G*3QӃ`+jbjtǥBsvSOceBRS_+`kybo@bmYF+2cyЁɢ } jq<QKKe=nE{QM)Xum9<"FDE2l 륩\(ǸcLtWb:-_gxΉiB*3Xzn8J1* ?3nemgVECV`_G=ƷVi_P%f-F- &F7njԐg [R`g1&f< 4Q„qt[v=E@72%9pf GUhYAyFoOW]s~jAZ;/NYfڢ€ʭwP3l8𕇊d^CͤB1#4cg MH_^S0ddU\#Gj:Dn]ZR#=":$Cl89g/4p)yW^Jt]nO-5jOk 8Tj7L]]-2}:)JrA %mR2$P <2J#Y`$^Iǒ"}P>edǎS^iD4sSOS!f+#9pru5w; -l"#"w敏Th;w8-~UFC`,TdyȣX-El;}:Ulǭ?ıi%.<$Z"U0X7DLlPqAሉ2r֡0+)Mke\bj&^/sI ݽ+~RZ|;a~CAqHbJYCcX.k8$ԣknu"}7՞wv̦/=f|\oy˞7hvO zil[|x1cewOsHiX 8u-Y$71`Ș u,8pzѝ'[;!:{a7##iu'kZ;@#x7*r Fo ɢ7 >x0`}Gsq }홙Ҋϣn(J6Yb AYGˋڠG ۤq=kǥԞSE)-s(e5AT@Q\0TJ@[Pko^;C:2٩A}Kj;ym3aX;wtg _[ljgՏb1EZ~y$, B" 䳁f& gAU*ϱ;b큙B9qĤۊ=nZ|hsB^)^{vy!cyTc]絃}XZ>R0}wŷRD&4pV U];1ڌHMxK!F cs0M`ͩGz5!m88=rt Bl6Bf2ZZAP, rldw!,J܃j&$۩Q 5cZðrdm%5 #CqWU1hSp ?pe88ù> ee(E\(-}A K ɡiF;x̅>jB[Ør6>HofcU?ڱo, >23FpI]'xcYiBzhF1JD N7x .Ő Y"P$Jod[^(:IwU]6ݗPZe-cex5Jk到S E4ԡ%9myG;{SBcӢʾ{[n ,\ki}n4"ds)-oS>n qK%F} 6pePjѶǽ1d:Jnkw>JVu %LgkKlx%Eϕ2Cqt3\aBrD#؇o9#nP "|uM5kvnh [ĬrҬg7rCih=&׈ެyrF,9{}v}?,ߨPYyU XIu!:*Ӿv=5G$/_xG~ΕpIlJ!\jTp0%.I^>b'T`mVgB)hhES8؎-E+cç\ A63N\5 Q#a>\%Ҥp4Ŗ |"C_\Zw eF*!CTm=b흎wa$F_b!7IB74BYSif%z[8Dc҃􇑃C9"vj(űLiYXVTh^JN+#Z1#GircIUc^qEv)-8dLN"5C];i,A2*phʛ5`msS3%`FDchpbXDn2x(S _Fցi{?0*)'Qm P(U\Yے ?r=%FRNK1~|R'4 Aa.sR$0 %$:ƈ.u !*B0eRvGDq zys,;@n/ľ1Yem󠃰w(֌BJצqRco>ebdw!4gIRGAr y~t%А,c#Da (S2f1P5 Il6 $Ds ͥVqOɲ(j\n"qzyƒ]S"$fmKOC%Y*bR2s!B*c|`[͗>k)َ51,hWlljkFvKVfϒg&}LWBJX3 BBL=wCN#ᖳ֐R%6 piP$T BerznkW[gh~[l}%\S-'u[+ fI=AV G8;aCOI,"K+`?q ;Cm:^= jh$L]y&6+Rl*tl U:((Z*EpAgXv¯Z'ܜ&\e1`YiD4?%}IT%la*qY-P821w-" CFsmZf>©Y n‡2DN@)ZqW# Pc FW`ҕ c4m^y `ZH=@:?눴^ aFh]45Bu6:W򥵮mJ`C Ni-ŕubH':L0z$ ި#G3'~exp&'S)REj=b7Ի˘9}R}+F=RrBMW;I#"4|r`nv.kFOx;ſ"ԍ&C:"mb'$r-#IƩDz((\ uCNLCUߋP+i2^ ^ vwfL`~dWUlĜ6exne-_SLYP-Pi=`.)#r%tWo8]k?O/w`6N5R^۬/],')&u4Xf\ߘLwZ tXT]=]JHIWqX4}  -/# -u}o`8ЖL@h mg16F +Ze)7OA+z}m٥.C ըtɮY+Ck|VfAK ccoɜ؋DρV ɲnG*rEN+fY\[.>:wts-xP njzPiѐ{orP!A zw?7e(m% g7V:<`W晦.W7*ʬ=O 9@20]60+G:xhUlC$*Znrb̜K7آ+1yUJ=`_LSDN*`$Ź2I5@),bJtT&ҫ~H(]t'MfL [^B&N7<[|F Yuah ͓ yL6@F`.WJvEctߩݢ! o<"770c\ s[~ K6nj puюbQ*%FDKP ikљC.(d_9o g>GRIH)<S|1HQD-+z!xtCDwV鈉۫${GnŘ ~H2u4ihFtM1,LJwQ0QڒX !]RJiT?!Di!ݸQ41`}< fJm|QTդaFÐ9K$Rd(&4(H,s~MDx3}SSkӼx?(ӡp'Э̑ZS]lg}VoCZf*ꃍI , K aADHD*`, "V~=%Lzɨ-rg cՕP0th{AԯX9:Dx$$SŲ FJ.+FVu2b|y~}tǍB2x*!*+G%k\iN03/+ȗJ6[H Trmx tAvPLfP;Eɂ2!sc4r YI 6PN&x"#UH M8Vj׏<vc!0msTapv@CeiOȨ)Lc0U/ơƓ$|hATv_EYH=qR`= '1d]lOH%e#0{a&Q% dU3a0(uN.w EJ?C*ole8YͪҊ)f|p.@בf 5x$YEIjj)Q*0&J DJ(:M#':%% jj\U`su~PAA}kj,:U%&,hbg%Av}~׬>F˹-JJk 1*>sPLk7ٯ6mbYCHz[>]p%U -t5aei&ov\9K0A5J4uGQt5vʭ7gKgsg g9iPhqon^'TbB茈vb]\,UUA-ZJҟ}L!%MW*tDB;NݦL-y#)XV*#]ŽU5XPTbz}5/*ԁj%D[Ƨ<'(~/ͺB9QɌ%aTX9T ? 0@ \ 3EIO:ow,AÙ`d!G` RD[:k:9rVcȻyǮPTӠfMemm`YFʂCHU_P2nuDJa۫p(KB`H&y1+ߐdXo>7 ʆ(`-Md3v^6 5]$Bk.oVY')&"H%~GJ{7: ,`ΌVd" TK$s'ZҾbRDPn&R|%X$D:q5j ecT6^XP(+ʄӃH> ^ɧ:|yNL2#`KҼ#l֤~< b+jCrޯn4{ٌvnc^*F1yRٖLW9[pM%7nJtj>Q?FU.-Ǟ2Gg %ӆ0ӭo9K6U.Ga;priDP24<QT1QuiO):&/d73j>2(E.F0RʕE&ab+F|rW7("Zt9KD!~Pr %|9[fuu=[Fђm`$]ŊQaW*x|QdSN)'lryɨjDaPhDMm40"pL'`43%3j',y:*&3^)ŔuDkك_mM8Q֨`6 ,L5[VSqX(K+#\;]OQVhzU1>тA1iDZZl͡d,G?j)TUԄh2!k?N /x GR(/ -dB\.3c*8d @gPMNVE-x0q2yK`A2#߯,%gHmͯXRM;5D.NBpV:M,Mkk>#GLo( D4J" ,d3N\JC3hT2h?JexM#y ln F&X7쨢vDrJݐW,%܍"K'/AGY+It.JJzs>fcfOsiy[*pxO#)lF149[R 9NTux0@LSp:kÆ|qɎiaҧ _JɹF&յRU\eXjb"sϗ*L4c 3`Y`ESR1N[}J:pbˊpS(oJ@Du55.4h *%Yk+:J+İL]1I>i\끓;L@QJ63NnBh7tX#00ͨiߍaMĬOƶ"~ @md$1ws[;y>*=md+ReNk:Be9f3{zIͷYJyszZ,_A&Zlol9glr`> ^''ll ~ѡYewI܊RHpPB|; 䵢6t֛ J7+[tP=-x&4#c}Ņ}uSoRȕ|#s?7^bG L X\P7h& e `g6BǢ]d 7equ(BRlBԓR\kױD]#)KA֜-˽~oXG"n.Uڥ-F0hC 4J$42lL18:ݲzɢaZp>5Ĭ\ mO$`pج&\~A`a$A'([ XF!K5蜚pe%VYi2G\H &Mj 0..mql/jm"u-#N:@9QE!y>b.пcb$U\# Rh@w^RqZO  QVΚ<|6B (C|/|~`c}656Z>5:.`]M\ o%J& 7# Cb# e3Sb)frSIcF$q>Tx]-iXLx<4U!й7Fİ^aleT]푧G("Iw_d3AoM[HlԢV6$R [M ;W*5ERy燋 {"@LnB.j:⍋I? ]\MFձ:P ]_5[McOBV9L5Q ٌ2M"ܽ^RC9a-qPGd}& 0]X"pW詄&f*!W.㭃#i8WcJBm7` 98xqrf"eq#~M *z ;sl ?QM"OENqh=FP{`ñVaOc)ed(2@,# S;R(mGsc 1 x!_Ci53 j_H[:s{,{ϊ22 +M!!*u cZ KKQ J& ܓ!!:Tf1ip{(6CtdB`!$z{1McjRTN}e5YD'zkkQ(eM[& nd$|oT] G1+ oXo5e)`BC@j%LU& K[|UYJTcXdީ3UeoS5u~@# 햘;<,`Ie=ho?$MgKwFss^F. ,/3p)`4j O&iɽ|/Y'UB16@?S >g`vg\k25|%AIrR_4 }kB T.!T zV!)$+Y`-oկK8 )E5:q!dEG.p 9>aE@aNT.g~4hԣqX,n Z[ j-j-TXST8RT&C_*4#K(uhgZ9J\bc_€;6ZRRVIW$Mqa3xJT:Y r 4-b"Ҁ!UtX˯Ӣޢbٴm@/4 rsEueRMT6x..l1.Q ^bW~U0ˮ]Z9R()ct,_k/Q?bRk:9(f57֍g܎Y{mC]-M6"w0g U| ?u>sm˟pjE]m?GWHƒh Ο{^7cj+#G|gzU}7k}F/ W< 'jtVywS#WΤ,My{oKNwſg}9s@`dy\n{m/n_uɱw_]W]q&a⬃7^c+ۜ򍧬o敱ǿSߦM}o֧#t͌a76 @oillhY';11W/=z--ܣ[wīڹ穇۰m[7mEcJ?…O[2?z' ?PԳY9V~gݞU_y`õeq>#G274Ueyf޻.-M8_Gx_~y׿ryݑ8#&Ќ5uOoTW߽.~j׭|lz'ۢ5u4F ~A}GIe{bïWOwY[? KMo?uwb/,]'rٳueOyn+~mѩn =N-9qq%=w?/haC}+N%z}彛/yiʸS_~t3޼wubEMЪ\^ﯸn3k@f˶igvҹ{0:EGoHij“5=zo@~>AOzݗ3νiƞlœ;{?7Mv`S:'=*3>mxJ3g>+554{x,>tGk<|]>8yGi8*5w[Ͼ|~_Y4r-_u_?nu9)=7Xoܖ7{};m.ة# Cמ}˪#|o-M1tQ]tTzoq̽_}o乶ǎW=ٽ-fNaoFˇ~3|W7+_~ܹG'&v>߸!ۖG88{Ve]c/L7}qmݻ7=S}=/o8yikm+to}qx]~6sϒ[=SfW<ԫs7>|澷|G_{n '}n~u5+?{-х_ ?veKemauS j:Me=QՌW>/}eo}?̛n+zf쩝n{էjU<EƗwٌ^FrKghy 6tSy g0\^{G@1*7ԎoK(,m䮙7<㾭]u~;~kյ~ʉlx忟{ͫ^M?g>+6dӧ>{z[yײ^:gC_E+6^mֿtxO|[wƋl]*L mߓO;ʫ.<dQЊ֯xn5/;a GVW{+pz7yOoM?~Q_3q0cg3}>cg3}>c&O taskcoach-1.4.3/tools/000077500000000000000000000000001265347643000146315ustar00rootroot00000000000000taskcoach-1.4.3/tools/dot.py000066400000000000000000000031471265347643000157760ustar00rootroot00000000000000''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, re, glob, sys packages = [] modules = [] classdef = re.compile('class ([A-Za-z]+)\(([^)]+)\)', re.MULTILINE) def stripmodule(classname): return classname.split('.')[-1] print 'digraph G {\nrankdir="LR"' for filename in glob.glob(os.path.join(sys.argv[1], '*.py')): contents = file(filename).read() matches = classdef.findall(contents) if not matches: continue module = os.path.basename(filename)[:-len('.py')] print 'subgraph cluster%s {'%module print 'label=%s'%module print ' '.join([classes[0] for classes in matches]) print '}\n' for match in matches: class_ = stripmodule(match[0]) superclasses = re.sub('\s', '', match[1]).split(',') for superclass in superclasses: if superclass == 'object': continue print '%s->%s'%(stripmodule(superclass), class_) print print '}' taskcoach-1.4.3/tools/generate_taskfile.py000066400000000000000000000131371265347643000206640ustar00rootroot00000000000000#!/usr/bin/env python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' # Script to generate (big) task files import sys, random, wx app = wx.App(False) sys.path.insert(0, '..') from taskcoachlib import i18n i18n.Translator('en_US') from taskcoachlib import persistence, config from taskcoachlib.domain import task, category, date, effort from taskcoachlib.gui import artprovider import randomtext def randomThing(thingFactory, default=None): return default if random.random() < 0.8 else thingFactory() def randomDescription(): return randomThing(lambda: randomtext.text(times=random.randint(3,10)), default='') def randomSubject(): return randomtext.title() def randomColor(): return randomThing(lambda: wx.Colour(random.randint(0,255), random.randint(0,255), random.randint(0,255))) def randomFont(): return randomThing(lambda: wx.Font(pointSize=random.randint(6,24), family=random.choice([wx.FONTFAMILY_DECORATIVE, wx.FONTFAMILY_MODERN, wx.FONTFAMILY_ROMAN, wx.FONTFAMILY_SCRIPT, wx.FONTFAMILY_SWISS, wx.FONTFAMILY_TELETYPE]), style=random.choice([wx.FONTSTYLE_ITALIC, wx.FONTSTYLE_NORMAL]), weight=random.choice([wx.FONTWEIGHT_BOLD, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_NORMAL]))) def randomIcon(): return randomThing(lambda: random.choice(artprovider.chooseableItemImages.keys())) def randomDateTime(chanceNone=0.5): if random.random() < chanceNone: return None year = random.randint(2000, 2020) month = random.randint(0, 12) day = random.randint(0, 31) hour = random.randint(0, 23) minute = random.randint(0, 59) second = random.randint(0, 59) try: return date.DateTime(year, month, day, hour, minute, second) except ValueError: return randomDateTime(chanceNone) def generateCategory(index, children=3, chanceNextLevel=0.2): newCategory = category.Category(subject='Category %s: %s'%('.'.join(index), randomSubject()), exclusiveSubcategories=random.random() < 0.3, icon=randomIcon(), fgColor=randomColor(), bgColor=randomColor(), font=randomFont(), description=randomDescription()) if random.random() < chanceNextLevel: for childNr in range(children): child = generateCategory(index + [str(childNr)], chanceNextLevel=chanceNextLevel/2) newCategory.addChild(child) return newCategory def assignCategories(categorizable, categories): for _ in range(random.randint(0, 3)): randomCategory = random.choice(list(categories)) categorizable.addCategory(randomCategory) randomCategory.addCategorizable(categorizable) def generateEffort(): start = randomDateTime(0) stop = start + date.TimeDelta(hours=random.triangular(0, 10, 1), minutes=random.randint(0, 60), seconds=random.randint(0, 60)) return effort.Effort(None, start, stop, description=randomDescription()) def generateEfforts(): efforts = [] for _ in range(random.randint(0, 10)): efforts.append(generateEffort()) return efforts def generateTask(index, categories, children=3, chanceNextLevel=0.2): efforts = generateEfforts() newTask = task.Task(subject='Task %s: %s'%('.'.join(index), randomSubject()), actualStartDateTime=randomDateTime(), plannedStartDateTime=randomDateTime(), dueDateTime=randomDateTime(), completionDateTime=randomDateTime(), priority=random.randint(0,100), efforts=efforts, description=randomDescription()) print newTask.subject(recursive=True) assignCategories(newTask, categories) if random.random() < chanceNextLevel: for childNr in range(children): child = generateTask(index + [str(childNr)], categories, chanceNextLevel=chanceNextLevel/2) newTask.addChild(child) return newTask def generate(nrCategories=20, nrTasks=250): task.Task.settings = config.Settings(load=False) taskFile = persistence.TaskFile() taskFile.setFilename('generated_taskfile.tsk') tasks = taskFile.tasks() categories = taskFile.categories() for index in range(nrCategories): categories.append(generateCategory([str(index)])) for index in range(nrTasks): tasks.append(generateTask([str(index)], categories)) taskFile.save() if __name__ == '__main__': #app = wx.App(False) generate() taskcoach-1.4.3/tools/latest.py000077500000000000000000000064411265347643000165070ustar00rootroot00000000000000#!/usr/bin/python ''' Task Coach - Your friendly task manager Copyright (C) 2004-2016 Task Coach developers Task Coach 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. Task Coach 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 . ''' import os, re, sys def findLatest(path, valid): rx = re.compile(r'(.*)(\d+\.\d+\.\d+\.\d+)(.*)') results = dict() for name in os.listdir(path): if name.lower().startswith('taskcoach') and valid(name): mt = rx.search(name) if mt: ls = results.get((mt.group(1), mt.group(3)), []) ls.append(map(int, mt.group(2).split('.'))) results[(mt.group(1), mt.group(3))] = ls packages = [] for (part1, part3), versions in results.items(): versions.sort() packages.append('%s%s%s' % (part1, '.'.join(map(str, versions[-1])), part3)) packages.sort() return packages def listPath(path): def isSource(name): return name.endswith('.zip') or name.endswith('.tar.gz') or name.endswith('.src.rpm') print '

        Sources

        ' print '
          ' for pkgname in findLatest(path, isSource): if path == '.' or path == 'all': print '
        • %s
        • ' % (pkgname, pkgname) else: print '
        • %s
        • ' % (path, pkgname, pkgname) print '
        ' print '

        Binaries

        ' print '
          ' for pkgname in findLatest(path, lambda x: not isSource(x)): if path == '.' or path == 'all': print '
        • %s
        • ' % (pkgname, pkgname) else: print '
        • %s
        • ' % (path, pkgname, pkgname) print '
        ' def main(path): print 'Content-type: text/html' print print 'Latest Task Coach builds' print '' print '' if path == '.' or path == 'all': print '

        New developments (from trunk)

        ' listPath('.') if path != '.': for name in os.listdir(path): if name.startswith('Release'): fname = os.path.join(path, name) if os.path.isdir(fname): print '

        Bug fixes (from %s)

        ' % name listPath(fname) print ' Task Coach 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. Task Coach 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 . ''' # Script to update copyright notices. import os, datetime copyright_notice = 'Copyright (C) 2004-%s Task Coach developers ' year = datetime.date.today().year copyright_notice_last_year = copyright_notice%(year-1) copyright_notice_this_year = copyright_notice%(year) def change_copyright_notice(filepath): with file(filepath, 'r') as fp: contents = fp.read() if copyright_notice_last_year in contents: print 'updating', filepath contents = contents.replace(copyright_notice_last_year, copyright_notice_this_year, 1) with file(filepath, 'w') as fp: fp.write(contents) else: print 'skipping', filepath for dirpath, dirnames, filenames in os.walk('..'): for dirname in dirnames[:]: if dirname.startswith('.') and not dirname.startswith('..'): dirnames.remove(dirname) for filename in filenames: change_copyright_notice(os.path.join(dirpath, filename)) taskcoach-1.4.3/uploadppa.sh000077500000000000000000000004621265347643000160170ustar00rootroot00000000000000#!/bin/bash make ppa_sign || exit 1 for versionName in precise trusty vivid wily; do for retryCount in 1 2 3 4 5 6 7 8 9 10; do make ppa_${1}_$versionName && break sleep 20 done # Actually wrong, if wee succeeded on the 10th try... if [ "$retryCount" = "10" ]; then exit 1 fi done

        E􅪦m<u/[@)ni/<ƭxtU$m\-ƶk=\Jq|'wQ=EiViR9R'*cMרaFJXA.,m{dÊ<߭L`?pgUL["1: 'lp8 |WTҢSZ+)'Vƃ-2mB{N- kA1_!ĉ5-tVoizSS;0H*2Yz}[ď| xz=KM/ϼ4ҥ/z 9SAC/y=-p,9 @ǏW (&%֒Ui`.vXgK/`NB1&e0+TDʡ ʔg%(i9d]"#`RAEIAa.0YIEHd%Z~Zcn38?5 bbvja0mi%|f|qh?bh]Q.-LMU UU:+fY~7I -V]&=Ba8 \̒/Im#+vCDB띶T X܍9*m'1ثDCۄ6= ($Z}W1'x.֦(#: NC݅[dvgŐnbWܯbkjOkDbp܂2w E81Bo;Cpż}_}S ?d ׅ٘ wg6%hǒ ~-C 7#_˜) WXw͸j5V`&kl5\_SK9XmVVpr+t]*ڱTy.P˼CwKhz/VHN]eG^&Ƭoʅr1z,5YSɯ6~d ,˶pXIb.9-_jl/dh'__h C>LgXNpZf.Y#yV{ }](W | 봓LX6fMt\C MwuD5ld wE] b`Fl3=гY&g?ӌrOAԂSVnfRZW ESww.nsδIJ&=% y:a}jEeoAݪc1VQxHtq]ᩥ z{}fnw> WWbK>"%c/,EŹȊjeHfy7,g"3OY;蜶.S/|tx.,& rՀP&BW@G$HH6ЦD潽s& P wkƞA f4PKBlN1: #nuvola/48x48/actions/1leftarrow.pngUT ,dnASPQux MViXSf"x!Q&APOAR-\ (TF!!(B5UiKP\HDT>BdVB /ޏs>?:|gv1/d!FAaz =Z<7D]>F8>?3Ge|.|)qFЁDA P qQ:P~/py-mWo8-)UqĞ8[/ݤv*YzPdSV2?ԉJTcd4J 0p]gĮ7ܼBUG>V%x.j4ђb6A|?WufavE_oDGjhiiL`h;z>Pf 3CgɏXvNqo E[p/;cqM_hW0<"z8ֿy A蘥e*nÂ@kc7 8)47?vG4"TXg"KQUqY,W02-%dHǂ}AD2jTX?Wjw|Z~FץYL9%P[j9ټ䚩:FQ\Í89٘cf\c,_$pxq+";KAOKKpvyGJj ^6V&E$ITS0|TtӘrR$F{0=`_oRHgU_i4!m>ީ&4tÁ{TOeFީXUN.07 Hs9u3?m4d ̬leb^.Hs)?HQ{Ī%~"ހ|>Yhf \y0ՎʧiStD< &$ qSZ;k[jɗ7odK`i[vjI^ऍgmA0vThWpD#UF$-ȅ`K B;hnY 0sBs)_H%o3i1@D:Nd͋}}& W.½?EMIv&sK o8!!ȿLcTYg̅"Wb6څi12THK/U@_ǭ7SclwU`H+zJ#9Ksٟ1DLt: A~N&bX՞i5w62_0 "a+k _&P CO;N\qarV+Dӹ[:3z3bdmйՍ{= )s2@Td-U?2LK߁yCtQ]ʬ7g[-iyqSۉa7%Izr5ŭQzCAteReķNw+fG&e'F`VtૻiCQ/p=?k!?P9(2ΌGb[A%<9Wc{3:l%_mnMV@' g~I͛2fCm9To{GʇQ-K3d _{{q>>DĪ^<78B@\/Ǵl̶8(o8kRwI#Nśeaʞ9bۡbzkt%*·:^ok)k?㷓&|WD_ޣ9;#[y97 Gc΁ۤrFjU34Ca*(H[]3_完6Rba9)# Lr9[W"N社z/ՈOmr-Fgۘ9GU}4ž_[hԪ{DUaHEw۟c ?7S=Ngv%+/g5Jܝ%  K1> v\6v磶 ;B}VS: R 2A9CThT-ͽ!q9VGzm!qvK, KaF\dD٘|זӪƺQ$oͩ ܌QHǮ 8>'Q08,8Xɝsn&ޥn0,{j s?q],blF8eUnqju)KB߅MaBm)/PK3lN1 $nuvola/48x48/actions/1rightarrow.pngUT dnAUPQux eVY@ɐ I\HD6V̄ ¥HƢ(h FAY(P-k$첹iȦuC}/_-/b'榫L0E$1 縥ac@CF| ÛM,1&0` ":g/V) StI*'_׳T0=hS~"Pbq  JFfz/D#&AYɶgu=twPsD1uj6#uBLqS}\P ֩j2֬3e% ˓%(eq4C0vplT("LkAa`k^n"_QpϑcH->"FضX}߾OY1½+8~|Zvy<`2Zu+&}sVX)JÆ ?*XZFx[L(\Pi,ȬC&P1>^,{Xh➀O!^DOd`x~7,@;rnj{ ݌_*Q%fU,eUxdd~i{ެKЁ-V[a okA\L?F A/(C-˷;k܁e,:q=1/t `|ܨ\\|:.V6 . 35[gGF$?сЮovA[%dKxCehp\}IS>⊭-s1 6 e,E)Y (ƈSyxLANP |N6E/B.rv1?Sȷ:s>KB!٣MV2mʿc[7 m2\V0KoUe'T ~ 4fJ*`i^Ҳ6H\[30A[Cf͢pglWE ?A!oEXvA צH>(`oůBT/ -",O%I-;r"-jOt>@n c<dF ǟQIH nttd]fa"ҬtX>IcL;GMC(Lrty]Kلr':7#F?-#piRGb"bH 7炪5(5/Oܿ ;M*25}G(0CM6g|f3{1Q[s0hDU| _W1T,8iOf8$Sl T^3 R@<_z nA넋&1^c6jʺ x}L "`&L ?Rb#r̹͒? TEo?uE`Uye򫸱\1J EOS^ZQ(M-SޤDVAYĵsxf>{tcfKdWaTY ܼv.5=xXh).{nՒ`ɣ5?iH598e6[r+pRzTirL 56XgS c#qOd-P^4Db#X q/{bUm1}N1G7doaTgiy-ekO3m)Jzs A<.I槞P k;0H_ ulaw2Y?Rv]C #5/٩7xFv jx ֕q\v0ne}2[;: "t?UQU/ ԧ=D(G=b4kkVo!p4s65]) Uͣ{ASݿhʢޟv*Vc=c,tLhr,%XW4ϻR$$5gVYF#WrLxۨYk̑DwpqSyBDuOk%q eۖ$Lsd&ϯXrNnqNvt:38ۏi~Ϋ%E*|7[`n 4NH>jrK5[_8J/KB )(ߴU"{vv>~1X2ԅF5-GF& gWM4fW`bgb ]P2}}׹ <"`,c*Aŀ7_f  t5/PK2lN1?S Y !nuvola/48x48/actions/1uparrow.pngUT dnATPQux V;g1fL))! eswJ)/1SrYm<4Fj']] 32"$mdɘ~~8ssNvXh2 ,M& ?e2`7h驛#S#bRA\bl<3p(><>&.-Yv|eTl,Ө5gn%j`fq.O^E_֡0*/=hZC7,Bu ll;GfY7d0AeIFR an2%0P@+!o\XSJ/UQ |#0=,<ϨEΝpJhB٨Pi W{6HNupGp}C_ȅw \Jܚc2ntvvC5$d.+8Zo~;Xvlw,M4W]m͔_NVNzyy9Q WVMc [P<Ho_zW9#c96 !fb$/:ÍWM(3 OcEGW92c;V+d 'pj&.쌆߆nmY+!(h az_v0͕#8["& : cMѩz7M=WeMbV_K,۟1p`OhH&~)꣨:p,=R49巋.B}XB7Ng9lTRbK-(1g.Ǡ{o6Kf~_fBhl'-ݫW';JX VxQ܃4BL^|8eg4cuQEt\wS!ZE9S=g:)Ҿx~ .t}*UoןOo#$L\gCa !wj:*HCO[L,3m]U EJb(Oru|4'mڄ"!&Yq=DMR5 ~47m]]zjiDe_|_;Ϭ!4Nd-}Pey$tm(V+?uaՉT< 2hj{<=?]4~+{f! *v- -MjSw#1 #Y qx/Ȳ٦ax:'Gk_ >qT֯Yo]1i00|cw$"@vrڑG1|4L>]Y' PJ fI6Kͽvr޲ ~Ui{ ^ }ƌF%rk_.k@)8%w~qJ7/!uU[VmyPm{хc>J~f^ {4VUEEy|0Pig戴hL+ѹ퓧ӝ6e w)5(?T4c=Un.M~ sDYma܋FRd"g`H%6%C]c੃*wxjeg_ƽ0]7~Re62$3#M5)֮qRwHt~uN{L= F8>,wGFMs9 REVyl16(dgv45^R -MM9 2%x<.woZFjH:y!( 2nd9 ?cyg}a2/s/eI0.Lv07ۄPK0lN1q5W#nuvola/48x48/actions/2downarrow.pngUT  dnATPQux -W{羮X7-,^e8'4=fގ)5VBM9{hsƮCIYi@PjFrsi1iIʴSР-9/F#[ @̪wh|5s:N  g{P,^xٴR9wioKw%8ܖOhyŒbz:"4Dhb45'KPTi,{(YRƢXdd*A–?x!'^i1# l_ njV({!s]Ks[⠨Ӫa*(`6]rffP!.hu-8ѓt6nrSJ2la JbWd8âP4mw> %3*uOLg VoQY9Tӽ")bp3m52ijя7݂Z'֥RvCRکSI6) t: dQC*cmRwz_n4`E?YJRw q=3k&5+s#qbЧxC3zEor[ n~׍Lb52cZPHٙK.rRPǷث+)^sjC9HO,f/AO{ eWupYA6U_KV6| znAVN =Tuҡ:dDuZHW۠w:{i嬆ҫ@Ol[lBT +\{5jIC{(F]F@p~KL?|H2Iٶc|zG%?hL|3EVWbԲ Nܔ';k)2% +F5Dn ,.^ω@2˾qRK'e}WrM|@㧜|'ytee]v4~Ã؞^NRq/v_&.χq7L-q槢(hy'& ČҤmc**ԧ%B#w/dfaը3@^6Mal,h aG(+, ^aE}cYq>rJ}p%%\ d\'jh氞:")+tӛHn%+;fp}´oʿUª.U˽eR)maғ%6 2ΰڽQ_1۾A+'eh{vYeS]dˆ:_Laƌ .9}5]y2+Ae$)^hε6ԲWC"kƅHi ܘߍd@8ZdeGfi LD}xWg\c[&:VYDEi8̨_r++ Fd+$ocUpj7 ެQoe$ HU'!lgf1k>r戴~w ۈPd(< BtSOVIG.~!Nť4La6CX\:tl`5CMLRxc`  'Sx6A|Nǣ*}7,xkjR5thC>MGf}*Uf(Fhdi%~g1d0]  |pt)~ (Om1x U`fEElM*Woa("wCQ0\8xWk("ϫ%~]1X(M-O@ 4Iƛ&՜Nּӿiz #dR8_NqBj#mCMdn" /-Lq mr {BZVN˂͎n,kwU / }yD1*Ju};3: U%@[lnvB*5C jg#N.͓?_CE Z49ؔ%l[OdoVsM<"M 2ӟ?ժuS=ޮg30w4 * Xko<29&$S] hـP K.UC,yhΌd My."|$rLZ{ ~sP=備Ԏk*?V `u=3E׳rDR-JWeQl 8ӫ;+`OQ[UD瑨d )Xfɗ;twi?]?r pny}:QLUe3E貮N. UoO(i4p bl%Ke9ZWs\na0ra`Eo>aؤ$~M(#ap4f;`Qǜ_Xx."b/Jx0ܜEyG#́ܚZuPd@pB[r8'T{.o3YHܹ@}GOHw>>y;3[΀;SAw쑟̍9W1{'gv'7Öp ٍM4vw|l(;6;q_oX|tq= )NPdGἁLf} 5Eޣh= EsҖ$ ZU"1 >)5XKHwnMpsjW 0{nVq':BKJm Kq]7&}~(f9qJDЌx.=j fL Cm>);htX^jۥ}3uaa8h!V7s/Qw4w%d-f;؄wgMu#I]DJA:9QC}By>}sEն]N_#897N[Ʌ]~+^-yC?^6H盵S2?gV]ŢJf=t7z]pjT45]A~V+R1: Vb2a:7lΒ(p>-|S ]SxrgYy.DV Н b6/ }HT+Bٖ?m F|aQ/䥵RD5o~RSimՊ2|5 غ ؤOqqfe[f_FդydiBRLAZ݌yUoAgYC6DCdp寶}TNJME0EJ QBn8v.ut IOp+V{󐝔Jl0G(eQ*w80fgZ܆|9x%ot*|0YسIz,] xh!{'^KMc?rs%4 PRUk:. fp#zWH.S;7&URf&ٴ&dS~&N'p3CЂyXbݭ(sB~H\FDGnؓ|Ww~\Ef\$?hx'^t>:|q,x M,= o I_C#]4xd_*yTLߒj:PI)R)uwI t(֣> *&5swΰ+CBX{W1)]ej46/us_ɍAC)flWaF쌢S!wd@P9W}+ǁ9V.bn8(82l<{J!Hu!ߢZ:1 fSY820{@"6%}EohxF V&uL\<R*yu="x?jA)*J{.8^O:sȵ Bo<:Kk©ͳ?ll,A7C['6B͍.e.p4xĤ,z dnҝ7lTL+yȳk8Zf$И4?*^'пmE!U? 'kQ9[tg~V\QtƔYȌDb(7c*OA,0g 7Ę [`22Ol;zPa|eTƋ%PӦh*u0-$wti>0?!/uΌK*[+N7\;0*ww?l e,P؏*6Qڨ1J'e8 ėh9m_:{Zdpx%$EUUq,aTš|5o$v 9 $Mesk Q.zRJ;jEA:{۝,LpC:=ݺ;H_sTKXˮ[vfΞ&hʅ^793 ð{vvN\gtzE\8iX~]\;TR}Y%wø33Fsy}TX8EVUߍ|rgxr!4hZ8;#=y_=H:l3,.^OD_ѐE pMq/^i<:s8HJ:rySeR5$՘8Wzo`LS1Mc}דPK-lN1.Cq$nuvola/48x48/actions/2rightarrow.pngUT dnAUPQux eWk f \uA'f9?S uQrbfДK.թQtťQ0rIDT*B~{a^kop7#[@Z6D'bg.gT~ԭ͓y[v S#>ѻ1GƄDF'x\'4%_ղ\4y<] P9~oA>T k/3׸XLQ (XI*SgHַcZdOgx%@*W7{8 4r^\ۉAjT3Ѳv@Y[)x17RgZ+6vK%P^X5~6h"nUGD6zy5hlLe?8@d.`NHJiy[F$bꞅq|ݣ)3ЋMhKUlr;o?3[M+ecK0 @Լ=w2ff2ɒGiW0[k$0 peb ]{h6eq=a_ o8!L & "Me -N,ydDn:kiv ڙtw^ʽE8*'GUˊRg`ygjh3Y czr-G l<>z~wgs* M8i[ `C4S#-x8oYn y"g˛MKŬf z|*V=Bi5b̥vE-i/Yw HϰQ”HIgq9+ߧ#zmgdpbI* #JKyOcS_EdJ`i9aq7̃q~;G+wf:OM}ap0Bf sӱl|##@pOphO`8H 㜢@o3,K霶?1'a%/'ǂ}vx*U+ xb@܃yK)5_E@b8UJ4Ŷ~=пxvt)ѽkYNNKChg,v cΛ)ߊuosezD&%USq# aO|i|snsh,UuܒZKÿO[2]]]|:\xeeʧ%א:K7GN[ Y1QPC*qܡoq'rёnV?N:C}r-1ykzntM?!1ԝ}|>ǒ޼Λ_å0]6!̹ؕedw)zN.pWe,xSdse8Iu?j:*_vJ=ܲN17]QYE@:|S=qg]eBN:$7̒Б5B䞰\`Yf`8LtavVg #M'm^āS1p#o'9K޺:{7/08J™# rPL)y8%GbE6F|ҩ >ʻ9,)U~(P(Ջ5uX/ !Iﬔn^gkOAx,fp=(!%jpBOfI3&wGMk|E?+ 00MYiZI* phN;n窷<]ɯDI٥ ARc?V Ҵ3Oa8O(hRAn z?L6ƈ bvnt%t-2N# k|?цQ2+zYoc-f2qvvFUN'A石6brиyg);^Mڇڦa`-E$sF+gZm6ǖ9:8R&'SRۆG۷K$wS'9(s{GaysO戤UF Qb:h/jn|CQp>`oRk*MOnhTo{kYZFٮ- Ec[kƘ 2_\\>H.޿^Ndohc{iQCAo5"h[rTDbkTX4W/#K,Y7uP:7]XZ{oQ 9ncYb#MtIT*yjgS?^'Xr%x4xΗ.Egz";V!>kߴG}= ."ʹ{K[oWᷯN=' vdNul|VT.ɺ3-A#F,y[W*7*r[ W;1@-#;>+^KaLJ{yX=!s:Z<8/yDX<֪q]w[?ݙ-}\%+[ZPpO\ܭUAi&KttkRṵU2yu[˽zFdT:zمO}ep0UOK(k7ݩN_ kX$15j&34lR1&qϐ-4o@|)a$ ^p;{9ܵ Yu\*@`Xn+ӓ*~e+B#y;F~x-،̜0v0 )S rHM1*>?˭ozsHh -~'>>zdeaD$Zomt>8ЩBqᇷtB]t;;U edHuz|zhh.,E3;7l{"?-M+Uy')fE^;N诧X߃] a[|XG(}L.-p{ {dݓm%@j^~f}UQ7ϫ=2͎0/>pϏ(f'כ ": mw4U!Igo^{/PK+lN1Ft< !nuvola/48x48/actions/2uparrow.pngUT dnATPQux {8T[sl‰ޔJHNN{5I!jf'CQBnө㨣ЕN5;#L ']8%*9nw?=돵>|d.2_F@mePy'a.[[HѼ-<Xsv '&%D%"^D ᷏ɏH;^{X7/8@Y[[ MH 4" ESTK%x QkL*&~iǨolk$(+JbRZǶX%||ŸPAxZ`v*HAT7]{ Y CƏ/VWG@v;tfCLSytMfЉDuf #)tqp !gBy_ v+ +  ЦlT3$ح%YYbKTFl*0J^SJlz֍1eE4a3'Y2O, gD9Ґn) |vŝF[+Nٮݜ_8t12]3ъXhFȱP| `쿊Ȋ虔uOKx!J> 881fgcFR\O)t#n=۵h*s2cYש_6ΣSMz3er= Z5;Y*{w22+ϘjAb@*#i 5lwO -i}:qvTSw!bD`C{E}vy=r_;dLNz2PwgeAagƕ6Ux‘2,QmێͮW-{գZߙxmaB'.H ?gC֫ L{GW*m~-Օzq2  mD[0qdhz+NRKE< aljB]G g=Apѣ^z0kjUc#c-'f:`Tsc.25犇7VE88WNG? G!Mlr֨5uWC7IhSZm>.BP>r T@UX驿]'W\HCDM+0Ԍc1q|fkbH$Ic4NsC飳]v/Jňb]nٮ٨WlR9fNN&7RhŝC@I+2n ʰUG'4tcXDbߑ8(AE-lj?\Em>.m_,CRy!qY .@bJx0Ogm5.,xE5l4 vuY"NNv]|2sN/CȎEB˿@u%G['0Pc<@M{^iŔ̚` ˈBr8RJ,N?GR5vểc:lr h'zD4E5775;quĮ^H)uم̳J}KŎc5X_xuvnFV3A=cxd =" \îV.J8cnaK# V {ΣÉ3~ bn1 hH\Qw1{J҄x.QqxqKH#UUE%M'.¹9D1yE</Gp M|ܩhpǮCEzm"NN/ZSX c׵1@ !+ eo$>QC.q'r)>Kx0R^ V,T k l]2M3(pZ f^3jxE,| FJZ5֣;c:8\i'+ym,yfI˴bƣ&C1hYnr,~dPd% ᇃl~I盉bEwW>Jr ސhc1Va? ~`2םTJrGg6n!@Y,E fe]2?ѱ6-pzN_v-34_j$Qh ]h{jKW݋i@A4,T.4Gi0ԓHU-,= Cr˜RZ ~z-nM;V1??,/:*@ |4T'guI 6Ѯvv~A4_(BTi@)VwbWᣗy ЭOf 'I:39B3`>CpW 3y k3&:~6 '?őmǏv˞Jv`˘%6 ZMmLSRleWEEq{6A &KlKYڦR~!͒C/Pz:$8B?V֦^h2͏V GfeكBQm<a|D-kM %̺]÷zz2L";`:, zӷ1ӑm} @H|z_BPKt91 Ȏ>"nuvola/48x48/actions/about_kde.pngUT gUAQPQux %Wy8T?gV:Sц3te IR)cW)kgfР\Ts["b"R)Y܈/y?zLwW{Ym::zHVJ<[M,VPfeu4<8*/2 "8^  . J=Vb%&%|z[鏂+(rh4<ڵlO{TQK "7Th9BDzg`]YIX\wEY<%z߾NX%@we}ݹjSF|y9:o7 = 5$o MOZ;ֶ"z/h@ cccq+++UMo m0e?̔:rm?PD)*.Ep*n!Z2_CQWr󂲃;"s]WBZF:C>L ] }g@4| t?q]GSSvaݍţ 7ue\]x&CYխu²TeJ`8?;=8'0'hU$<5ͤ4)Np9>Y2!ZfdaCRi2e.OѰLv5 U`;44C1>L%isCEF=ěA~~ӫ}gU-2*%.m5ͲRlQ1*NlM+}|L 3$rE!|qx]قQw<=_xu_{۩OgS kttBh~djM:rF#{6ծm!dVaztJA^NQgnb8z~:ZTfK2[NBʮhh8C_mMR<\Νo#&rSXii}]E.~_}zh i~ghtUZa"յʭE t N egfn-3O'VZhzm'ez+bˏQc,̷AIi;쨣 7{z*ƕE8E2NnmE҅heNx[>'cwM.բsB}ٹ[wVcu-KfV'B=v#[lڒؐqNa?>UލӫqD9[zEc&JP 7wu ggJ.9nSlfRDB,N ^GE̾oϰ@+ݲ$}}uSL=oz #ޕP _>}NFN=gwq?z C~&B-tZ+L",L?MGCB>Pfc{# lHqk,-ŭtB%|GZ7ZY LGO6ܼy.V._&ݯ< `|tC4{ %ML\vqXF5$ܕZRB #?6F5&8׻KIw-iuWLι*5d7\ +FbKATv#[{W[m_ĸCnnExy6(+9D"ڑ{WU6G_4PqOAwd5N+6@1p7stc ;V$GmmLEjՅɉ_YW3{mi25Cqr؞bZT*~Kݫ'#c7GbhPvkqǻqcM?Wc*|P2(jLի_c[0̩!gWdLǏxNKILLxC@C;^kI&bxSAc'*pCUn.Yrpxr.hB6d葛*\ ؐJq:~EHH֬z; I9*eX,YI?=wȷ`54NeBb"t՗-W@oxpnG ^*V2+dʧ[#\f9_g2n<[j06[*F S Ё8V?{54rtqcau3^рr6H! *H@ "6JO7@͈ug2Tq};r7ơusZ} ~RO ?>x̉%~"R^袬]t9@m?l*uq9-@/;0ܨ&yD{ee*j%0'nw~oՐbD- 5xnGqL=|`R,*:>@_F*?0٧1_+6D4pޟCɼ~_F,h_{*t u"@k lDY]\F`x /s(3!{PZsy{Mh{Y>ZB]1`=q@,QV/:tuh{|,NF8J\,wBg4opc}n[rr+&ZAenB=X跶P$Q Ghx? ^Гm[݋q߈tx ˆFuhZO<;U%Q^kQ!246 TWW Lm"ʡ߳|$ ],6vjxs̈AO@~L,&,T]4&| 뿋(Ĕ z?҂Z{X" 13joeu l76!_4%)7d܇;ϰxYV! V+]MIװ MWjLG%豋?(*:ex|ѫΛRnHȂ)\;$cg@jCUs!Zr^b꽀 8E9ung-2rr7:{gX29SHcUIa ވ8T Шk96z*vqNN[~.V'\LC.aPPk7/v 1T<|dIe"04⛱M~tlk2@,'%M]??ny&c_D9,9.RzIv*\&U>obeڎ/w%j\!:bKCET2X1#bbs 6(RV-YPj炆{J%vZ8I:׮9EUNv;I5L?62qz<qjwJ=%s^vL\w[ߵ@gsS`n94 "f!3 jQg~$^Q$Fz6th"e{ k?ݝﻺ;O¢"~M+330ӹ@D8Xq0/V4 ~쫐 kb8|;w"kM˘IwE,Lão&Lг@6?>νo1|* 7h{ѲLꊕ"vC|[n3PґenVVWsxSKZ)Ũ T!.V3 jSJ`܈^u8;adށWU:tR'SZOE\}9=*n"%FA],=mgkKWjܴ۫*^)\Y&W$-~gφ뎠 s ZZ[ #{-2iْ?Ry:%ϋ#p'J߾{,+,ɧ6T)J0:nۨ$!ٟ^~bj:IU5\.kxF 5U<34et$6 9eg'BԚSv\:꣦{JF?Lu3S91W^ˣgc\jIRFI6)Џ͢ɾ'j/qӍrxd~J͔ Muܹr[6#h/H3d#sq9~Ԟ}=ka$h/rұጿP}(3 \$؈;V`cpdᒿ[F?w6=[G-eNbIc<1IEXpe.GI\=>?)_:(}7'ٶ ap@rinhuݣ-tf{ܙW8=R HC\_S!HzS:`d2_ 372+'垰;pH`;#9+/|NC ʨTDBͥ_h"Ղap s1Ē \|K'NMήm ɣV;?Q q#16F=WF8y[3;?>39mD܎`骋5< tGCx>\URf vA2e$.PnsiݷW!V%5yCQR6:o?كYLy ؁ȜFCbilZoBQ?r[]DK4pY`p8#~rs-PKmN1[| ' nuvola/48x48/actions/apply.pngUT fnAUPQux uV{qu?\A[`'~9 E.Ty9!~oX|HLtY6NJdfrl&b37>] h޳ 0G}_w-OI;gy$Ԭ sGǣMeek[b[|r?dx]BcRR˹ ă} S ݌5Gj5;w<̤>>a \/ 6]\kp_1N}a-Sii#`|ۆQ @$^]( ޾ElhƧ! , z^{tmR5o$T~9xfw$8|4HT \I.M(< <#M56&@ofXr).Bڂ XN |B>pOL9 _!VS&L`UL=ܪ+ہ ]Śrw<'lp҇@rIȰC0*e&‚3$o\~g:Kwb@0RqP#LX+mʿН]5ʓbJ: HRF*M|[ ]}>F\6qD(ʕLFGY%$@7HkXn'qGfiǮRF$/=}&, S8g U:zT`főai6y?oRB0036-Ohk\ΕJ8JGx=C%H\Ut(y }BuۘW!h i-P?~EU(ʱ( ~!?'q%柜&Dw KZtfpZhų3NN(*U=Is6e{,K 5HC%>:0bdA\6T-%p㞆:M?nvfȞO*mh2ȷ|RRUkS=U7sUKDŽCR K3/t݈o$.R"`BpM=3^ah'Fǯ`*$Rf|k{m KJ*0qvt̍PYUhbEO44j ё#܂K"u/-1^=TxwO;`8ɶ y0ĹBmOb2@zY9D*2@x܇K`s WHޡof^qcO40%x8誛\Jyk5j7x[R/llfp*F8tPpF`~(ףި9g\j[ͪ ų%riN.)LRۗNijA? A{ϝ70QBŝ)_ T=bCP##!B|,Џp DT*tʾDmlP<9)FhgژTb0cC";߰ǀ\^<ByA3Xe1L!(G.88`#ToaQkT8?+VW-x_SzPFFӞWpïY@ZeI'!T}n% w aII@@q 0ܟb錤a-l3sه(9`DO4|X< ͂ ;} %jX8P -se;pT}T)"vvMc]nځ^;-xP@'kbz0k{ 4#Ep%/4Vv@n΢VQkҝ5~#/SԣZey*¨]F(_b&{ZA2mL^+fm72mCج~ߡ ^+:})1'5SZ}yNA},CbTTHsr/w]Ht&ӆTչHԢƹuN;0)9 ?rn@:L⭡"[g E/, 3yyxMܞQQ 6WH4̞1'/],sВ v~.:!8މMj^tll(,v++bf7lgCJb2]0ދm-=ص;xW<ۺTٛزZ|sS֞w]Mxu?/zx0ĉkmK/촋-y /KKl|=ߌgiX? e)e PQ0@Hyۃ{7ʐ`b9q|LS7AycdWO/(W.<\_}>fP3ΰMo3ׁFJEߋ {__WF:"{{^U:sO<#ɗMc[ޱ 3C၆z v_b-=2leWlF;G΀*)}쬪 '17kN Ŕ jMhp?zy Ş7O"X0C|&D:l1 \،0ޖFLK۸&XŻ,oeouo Ԣ0Xw-)ȷ%A8lphc8bDr6o9.?!P^zQט*sO/||Geg[ Z'„߷&q =-8?ۙlǃ/%$NvmU1ynd) $IH&pLŻ57#?-od QzS6bMYLKOi>zۍ/itiy[ve/|x=SR<oBWqCTFKEQdLCSm = %Z5{>.}cm .Lob0A!}QstMkJs2p?D螐3>|aoWu5s#$}Dd#FĈF^b2BwƤyLo{i(S X4Hٮ.UK9'ΞaLze<U!0q ]TYp+ o1E o,V]t.~4gWLqrl1eC lf>OءP3Ye$5¹ٛ`if! *U[pZ2xbaCWiJ$D^;Ќ*f+glsҒ]Ⱦ~(DXm^ҋ}Ǝwѿ\9n.4#vcg)c~ >YHjGb@Ĉ"DQѷ;|T Xxtj_5~Mn<>*|?lޅX#gVw]."_=`F(i>Wb[DD1ww*XqvCTC\lk~-pDpRj o$^Վ{516.!&6>d '{0x7jMl^v9b0[V5Cu,fY@cɬ|z ŃX3ZOF+Ȉ:Od~M,Vnq&ΥO%K x HQ ޽N# 1r4=jHjF @j61uԎ]S KsbÏAjofόvf"a [bPVk}:]Uax9*ƐrS$oԃ!=:hM1d'l詭j0j#t"&x7P+ո(nx1|[ȸt|6/E%WCtѵ-$!?MXbhB5}-%!lg24m}a_/ MutU٫Mw>Yg\N^N֙^?ȑmKH_:X9߰zY翆^\}M.ww?zd_z7rekd˴3-? sš%tEXtdate:create2013-06-02T16:01:23+02:00R\%tEXtdate:modify2013-02-17T14:53:33+01:00NIENDB`PKt91u!)nuvola/48x48/actions/artsaudiomanager.pngUT gUARPQux y<ǿ3Yȗ! 1cRAf*j,CDTb2\D$t+u2͗!;5E {^s㼞ys9^p VoYS[ñu/T5O~)p7}<7fo'2s8wWAQM02KU:a q(0 O o0FmC:)7K,AgФt̑F`*@7L!V.}MdzqAͣ~c[YYTì/̡hьkBa I 8~tbm4*rUS9Je(ژG=GR#Pi;#VTi`m\]=MPJpLr]x֞ ,)Bjff|1aLR4~(i)GȌxSB:y!lY(6ZWӼm)jM@;uwp?ķAڷ4R #ܐלs"_{xӏI5B%1/,V`4_7S1,]KflB!w4G] ,: .8 _F'T.Q57:o,!;5Ei, r|d1>6cS5KΜ {;5;J`ˍd #Lz!_3=Š]bo0(5wNxcp:=SF?} lrfg#>tN:]ئghX,'DJʉ%ܟMQϹ6@chm %iu4 r *w)e|=Ɗ<^#;1IIYmyh/b{{ďavBچfevzw"(/)4aWJQC8ߞfL~ *ΪLGO;ݲbʶw sg(1 `.xlߕ}BM/P+a g y^)-β~HFAˏ&-@@[3Ex>Lo33ɭ3rFܯjj:fW|<>(lY->|ר\ koΛS)~ w#UF\ )Rf&}"~Oja9YlOf]etLt~Sv*rbjOKĎM[˟g:hZi̕/I`ǘRx bb?4%jA;4eڇ? !S $]6H3S%R{FjirGx˜8NDRb➔;xGo+\h*UɞZVPrn_iE,dlPuH]O+d&m(Tjx7= ćִHIé4ξV.>U *?';7_~|L^M'&W[pFfdѕZdYy=hWK]*@pq:9xV"a6a+PIپvZLپQS=n :l2`h}k&d5"Q9ԕ3c\Tm\yqǝ詍yP]J ^ Xsy[Bc,eQ͘6m,s4Q6ylyyvby#:+_Y&8 'b:c Yw-+#ݻ xhueR-sNMl2FS ۭ|LB]^;,,:Lp?g|OC E)@}7ΐϤ-\?Lo#'(IrOm"Og 9d 4|"dX'TfOyi};POML?琠r@nLw^>Dw-E@Cbwd)@1k BNZY PM b|pd/ ΌC_{C_pxp_w s[Mg+kV ̞64M\=11Y\,a3c) Uxfy֋beU1C1ˬ P+Kzw+.L45{ W`a6Y[j: 3^9vec}CzDd=wP%ߍ@N(#UФ$ZJj_ށPN!T[S2?[iW}ҌZBTsUn3 SfG֔݇Űg+U(;b.1wqMJY :K"^ɶ ?/cȫBjmzUm}鹁ߝ.r5ėP}Cha3 /?֨iNS~yw&}A.*rh?EpĜ[ݠ)QJz F{֒{o|iTZ\WO^ .:,Ϝgb+y.^Jm`+Q|[|:h2=wgBWul?P\Msʆ.DP]`~Qq|v|ߐ%~kG|wwa\ 4-&TUBt;} $+԰f-=7Bc5~hT?Z:27V VX]{E:.ZO h|#4Or,d 3wi $ EښqE^i4m=05դ_T7dD( -O#1+ˡft/VNLbydikkH279J[ku,kMn~n$f_T4m z .cv% ˌ]g:x}\ZTmU֠ }OYT_Q_z'lk}'R't~5Gkz 93l,1)O-L%Z2Y ۶Hf]| WL]*"(ڏ2z#YԣI:GD`Y5*$*'q~)_ '¨oߜIw>BΝԇ# 9Kc)WTpG\y΁ثV٤y,,gkR34۝fO=`‰$qpc6WLN>06eCgk?U*;$9_]iKxP5ÚU hZMvr¸q+TIP/,Ox9LKy+ W?~%IYWӔo2LWR25`֤8ಮlr#&i9Y||c:8ύ iAFvwZ(=_3/$;o{u*"NJr0|tYl^LL_ z<ҁvx5Ć$2'Lu j]NY `r|3;k֯M?PKt91dgb&(nuvola/48x48/actions/artsenvironment.pngUT gUASPQux -y\x\1 \r\[mQĭl\1SJR)[e)55,+--Q+Q^?=ǽ׽|'p!AkW,3:fmd@U^nM>s`slԁa +"I q(9OwXuJ֖|50XU+>H(J;X,b2 OQ^ȫѪR#Z~.*BwIZMSʼn\9Sf3E,;TA&8imV#]XxFoq/]v}nUIȧY6vqlr:atojQȪ{j5ѪO ~Bexa]W ]e&nĺ55\u NU!P1H~7'-X^}x[߈F==E93/#'g*RJVOdD!᤽{Ԛna892O: nnO׏3RDt8['v̻S@պľCN@i7Be|1sp3$qe%)貈ޚ`xͩo q,n'8;%S{sor!tt] 1C5z*-ΜaW?/VFK sn=9Bw,#B5^< aZ ۴a!loau=(1sG;')0e{XX1=[PW﨟3dZli+wn6XV)EX9b?OT墮 iWh;uj=rL } :dhN'BEj?A2. >TYvU%E$͘pQ"))"457[O^AHw&,vlWk2]t&!s%%ѹuQ[6K4yH^t6DՅ{cQ)6  Q6ZA1n}oy81D- o~0rt)i,=pyWz|{v9$8F> /ښrv]eB>徳P~rF+g0(؜-3D yY݄ÊM@g,zTr#wqxYX|Rs?c%]0Ug)jqg sjȳ||*M!㵜z$O`8T,6-qcX6n1 u xK->deէ%Gd=qUmY;<8;o{|-.؉cᣏ\ܑ͢x΄LXbTYfW-ÌTf I$՗7G9իZjġ2bR1m\dBWzkW'lGʸ{&|0DIbY=Օ8xl֖$45LqvszGjf-tbFc+=Y4_2Sᴐ*5 }mߙ2K=ooeӫF䲂mH8J/ɗVOXo1mXKHɇ5C]SzL#7˂jÞVj%vQK? @9˞e T)?$X.3h0N||˻D@-Y4ٍIB&2\ԛm]n;ҋ K F&uݏz%Jy˳5`QĖ+"3:;E&&…ӞLݽ{+vzW^¬A̺;+~&$ii3]l7Eab|[K4^W+"ccE/L-تu$dAuOMDur,0ʠ\eQp@WNCC7'~TG" 4tlä'#9s {3,OY|1e ] jܤ}ԄgvX%'.Gt,m'@a_vO cOX\%X^d#؊%q{9ՉJ/{K<1ơGPukow`@)CD3 j'z=N /zҽ DYuZ$b.%Cp>U))}hmR>L)A&$-t$"9d?HQR 5$x{ A%64GMyT0(c&;S1URB2 |O&x{Oset잠O'3d.b^PJӬ&G1JD;HތNVײ]N,l%ע\wn=qNxIݚx(pPp>&{>(D4]?h2wTSr!'DPzk'X fWop9)l~:86eP!5uuo)"zl6>(Q<>DHc~ynwr'¾1kmHݨiiݥ.n`\i@=Vr511ϛ]?&_R_"tO2njNDRn4?1i红3~j[!FZf /PKt91` { 'nuvola/48x48/actions/artsmediatypes.pngUT gUAUPQux %WyXRYp*ju 13QEpRӬ)ĥ&JT#̵R25s)C\2p!צDk%Q3q~q9Eu=K"e$aJ87 ֏i҂5<4]=ikÿo0+eDsZ|2lF/d٧`5>p.Gw 4Jj sxıc#¯Xd*ZQ(^;(- Ұ(?l1,.To2g!^ =͉g]q4z}Z{6QW@s?6wҒ/Z @ Ē[շ)$%ڻUݎ =ԅ ؿQ,~zpFS$ k&/)G'jl\ 4u֎/6|VHןP8Ԣ&5;zԉqsb3-Px2b6Иav]Rrz^uK5~#f%$(\%?ҦВfQ(V[ ;I{=?d([AqnlI/L&;%G2>->صKgv9|$#/ hLvrG״F>.sgoF묚9orHQtO\ĨEYqHMV-˰ MbѡGT[<Lf# 7#e?F&;|. eS嗉R&@]zTH:| ,u& C0j |s 5: ڼz*keG R58.PXzHHt;LiZX/QK<]֫ o~O*7<;6 ie%=57{Hr[g -ₘ3ӋhڮsGhㄧ}\٣Mt/kzw>Ę.IH#3^:ؐk,ܼz*TΎai42cDepPڀBy%[܅xu+wnhȝrk(kl.4RPMfiԚ-fb :t^;JgdUVV-p>3`wNj׃$\+8պ1Vϓ\JbTJؓ% GZ8=Tq#lcT!{r&wey)v@ y8Jv[ށ,ee"k3CV; KgG!o^p׺(_򉻄W!׳M̋(ҡ0K`FX B%mBR1-!׳dz׮A{pXU+JF{АO#UaSк]t`QmUÿƸQO#Lk)L s(Uƫ@@BoO\n/zbVŞJ@?~ !YK fH,bOE1hnki%#WXjW'uUL$0sm8 Vp$@'n~ڗħ6NtVm}32'it?Y˾2Ģ~uc+gG=xNiM_ D~i5{\IvG! GJ bJWY+QnVϡ~F*"HarPD^ s BˤΎZZ ^0P"&^9>ql<49BP6swcl)sV#PhWjw|wF514[ZZj>0~NЎP0fO*)Z΅#(I{4f'j?(<4f9v!D z.,/.odV;}iPKkN1;(nuvola/48x48/actions/artsmidimanager.pngUT ~cnASPQux %X}gH%eK01.4aG]ͻ{TE2< G8]'(NlHűS5@ uЯ9G~lCv8ғf:İJN[>B&Z|іx)Η@pIvn /ooQFUP!|`.B(!̮-!fgqcz|D#ٽV" 9 3' d<]呂-'/U-1gf;i8TIΨ,aW*^h2HrEFOp']Bb0ȭoQ3G7 76*PI 9ՔЃEjCiA%5s=lҧޞE nHv|ܫ}h0LࠖZJz|-D%isp*8ʯ^yukS(jDfSǬr`8KcޣEX>W[G&dou2#C=/<7p<9J**`|DLj)X 毞5`a9՜ .$ȁ⺗S>ˈT걇rt1bO|aF.GN~s.B1I0wƐH$ʛãCo+\b\hYh6 $o$ M$֤MbQΕBĦֻ<uu$hZ[رcB,>O>>M.O_=IAıԎ%%V_^)S[`0+1VNso1/ J(  gӈ>MKK#m(~-s(K]Q(=a{q\0\T D b3Cų VtyA&7,NQQ"JF``A`aii>t3b$ /@Ű1<_)YRunڴ[%*kչ>6>Z6([opE?RmozY9 xMZUnP#ʭCyg5JNҞYFD۞=|2fqQ5~6 ~`6ED@NNN+LbDB ^]~{}u٩n⫴#5#R ?<~I\)?PSb[\[>#L(FK=iwK-X ;dm&?9?@zx*-A1n߾l M_񸙫Q#JOiz]zj6)"岪u >+ B@=<2U|Hp?0V ;f\qSqTw#Xwԁ{Hq3YKA2#@Uc3z =+Sr-eΕ \dud|W"J+ Uj T^U=gwmm솜pn {xn6өvs%g17=aTP{/u*F\<_\"ˌfŚLHP_1'MV~`iS~f+]g?NTVf" SƇwpzZMB*k@Ś5f9t@D?[ୋB`|1rXo`Gˋ\ f i+ь_Y؇@\*~Ƶ]Qpqי0} o:Yw)jQ$ڷH (Hޘ-x#g8?&d(AnJ/@]?oR#y귣6pC l%+H>ѯ&=*md֋Y=(s-v8tKu<K nɰ*ЅFFpnaEE,U<-H㓌{pV ;U)o—IYın]r>_dw"Ju54QvvsdOLܶrd![ݾw 5b~3^c aP Gϒ\DЯ+DCnɾG =Ô#IwMI1v1L 'qI#`mMJs(kha>nz{MC;1YvZ$m*23^ź;{+|t_ĦK { X 5QsGvN.A膗akKYM|U>~78Z{tt ѮM_k ݐޒ }SJ;SN/Ѭ/,X}v ui_B>LeyIYBxɒ9Ԫ#TR1i }KFMKdF򢅢e.O[@e2X2w |gtvch؀yMo+. 8 q ܾTNڄR.X-%FP^$}4Y5^z8W8G؍qXQD=7p˨GvN r.0'hK7a"Hj+7^ZgKD昍)`GH;I[ bu_S( vncED#Uꎠ}V8X۳lx,ŦVAi-R8jg|MwuuZ(oyVe 5=-^Vy?Qͬ$ۣ${"$&()^r`V5E72:Mc39# >(Iӏ^ROnYrO>5z({+"ǀշ&^)9dekjk*ݴAFϞH5f\NF=(S3 կkA9UYm>:]m;# IW߬D2 >y`0qrBAA-,Qs;c9H. ɏU~r{StZҍ\?P;4:;'@NSP(),y IhG9+" 9̉oǽ|%6o'7A[sOKO% !Ӥ&࿈%`dteCbޭJ@?@̊~,` MSd؞7? `:W7(|2,(f:E, 0!}⁵Z[DtH&B8xofAk &]eykĠՂTک\us.Jq{q#{FK5 ozx9SNi}/!E˖Y#즣c0:VJPKkN1oFBnuvola/48x48/actions/attach.pngUT vcnARPQux UW}#8@<#dXReu<,:?*,2=Ez}0CB hc5 ? _rq8=AEH:mgMٟKaAO Fa4x؏ pm,<(6rrȹ0o Rx pvt \,_~#5Co!u>;:o?4O%olrXؿ*ĀSD=/jMJ[3p~]3l[G^aeIR*K 渾9zԱoXzv-#bl\BgK{ђKvs]]S=2KLKl6B),$ӚP#W9 wE2gMY% 72&2nBȈQ}O.s[#MPHX-Ꮣ; a) ;S$#^hXp\o͕ Lh}3$ Μ+']֡`n'wCI8Ml&e4tv]Bse d).< G@5{S}#ͻ=f?9x- )޸: 泇_|ҝ0ejs`A,t`zw1%J"]7Rݛ 2bRs+n](^D*:L$?u7,e*bPw`Rڝ.* 'r9C zB$?;1b|N?>>ll_keRZ;poJL/ 39A>Uv0NZ% ̄EOPC/\>wY џQMvRc 6F.9LU;|Lqn]? _*zJ M+;N,"izdz]aDP :rʖ~ K'g``^\Ͼb}J&-_U6G@k9낟ǁ4'eunvB[[qPUMeb$nF_Kll \~Z4+ < ~yACddKLr|E2eυwayH+.]DSy?668Iӑ>K9|QAt=T/,7y\J]Dӏck0F`l<(:gvw'CY1 | - F-xzn( CùO#k|FIOKᎅ赥>nk/r &]Q $K*-/{V4ؠ8tl̇RjvABptWB)9 CV`k墸}?בYARPwmw}~Y* 4 >w=9ܼMtC f>V6.1O_SF[]г؈P`= u%r]+sMy=hl.iSw ؼBvp!u+_lT&Opߏ|ۇ ?}Ve ߖ0҇Gg8G9j)߇j8ڨ/9?oH[%F Ҍw= ( /cl-̵<%2LQPWqU -kSElu2]7xK:: 2E_$HfG9 +?9lgm#F`j1<նTݾB0T;Xdr '`%G*o3yj~vt`  |-{k5C]hHO"ע.0۩^G}[7TERY_2UA$J#t ϱaH1g{(]XVi)^/Sț}){5$YbLw6 t 7td횉=hZP Ta.ae/ z'V/n[EGcu$r5N[L~ BȖÊfdKPhcē #4.߷2Z93ݔq he>lW@Rx~5"އU7"P0at A`OF8e-VցڶxUD<&1FC()2ƕ}EXNR.`@t#]` U֠7 b9DzCT-I-r"Ҹ&쯠\ 9V5Ȯ82{ ι րztz/[_{I'9lkRFqǂH`b?(ٯ 9.=Lݗ]پ>#RyDD>o -NRp/$eʆsR_AI|u=Ia A+*]EE6CCPJq֡N){ѿ]Q2tw(3,RIO"T7Ӈ&2L ږZfС8e>E<{ #ԃVzhn/f#R5726AFc-H_{-nq~YNU=pdt|ǥ ђ-4I:6hh0csG]5ן׾A=fzFJ< Kr%w-tatG} YMٱ[;+kl/~]: +T\1,zN;\; ^DV A[[0ݔ+kyxf秔]*ٯ/{n3PKkN1'k  nuvola/48x48/actions/back.pngUT jcnARPQux MViX/$,_LصD"UIXD.*ދuWP ! T5 i!!E QDCq3gfywrB1!Z@j. *w/Sz׿Om?h⩳1' #1I a 1iǻipw/b0̔{h@`Ħ2lhVޛOfc8[nU¨i'~}5e%_v# h檹-BGK 8ܷoAW _+*նl½svC ۈN-DAq_P [:RG}o~͝E/4ղ,w^Cigl rA[Aɔ8ùEB7..)8+ 6nﳋ7H7thvl(Ϥ{>?154ϲ=d~NwMɰ[^6]]NlLG@V9ȺU;YWI|(u!/};`DZ_syEX#]#OZ{Ce R C  a_)EZ7:ʑ,Ҿށ=XbHu֓R,D;Բ VFȝ__G!s.8нV*׻؄#jCsDy*HaE_eC8sl\@Tj7ť&ȲOê,t yX  AETHB)0d g?䩫}qLH,Ye#ϭbF؞އ_# w$=mO+oL=]7ּeg &facb؝;% 4 =vmAOi#'eqi7 g<'yg!<)tc-p W[/V*17ȹna{]0:|Wr1RJU| M8}iVm Ď{2mj 1_iZT񼜙LGgB+T ^D]ǜƍn佯k>>:^T<^|]{ühhF/ApĄJ#1ME{vcнCZ)V%?\B6ر؟Bl;6?zn}!(ߞJDq' 5%,GR?Z H#+'WӞeOOf x5{ywQ4/+;!9*i=2}*POI `lmș5?KV>[1eg9.?MTKUq3F1}T rr eN:cV01 ZEM}79-N04 Mu[@)ma(0#%Vx KB}~: î?N?IKۅuGڛ& hu׸ + YbTllNٛ,7LSD?Yt识?${Qc.F+xmFTrs8P@6G?/Cđ ߿彋^R3Peq V%ԭd#kFs}ǸޙV}<(B8W?1t1sBŧt12<26P~ /_W.GE왍38u9k⦒a<6/~s՗Sߤ`_Wys!XځyELg<Հљ Ic{F0mC^_w'w240$ h<  ٮHU4/e֑S`„_/Az}O m MLtc⏜3m4"I3'S9yOUOV|,Oi/wIK'b=څ2\ʱo`5ɴ%=U 4#YeFygGbrvO/{{mW`}`3 2rFGIc-^Tȃ|Ggf:'?sI&3},0Ҡ]ѸM:m"QT \ݧPl^qt6a4 k ޝl+S8^85/OS~g5e%U<գYB|η0xIMJݷOH@*óX 40 S(c "0 #wn8 *%]@\h t,4 d| y^RM*诋 %T@'VsJX§CTv>Y}I֍vfs)ɻ Z>֬L͟) z(NĽIeZ[:z{G0چT谅z e7—ۻMÛ|Wk@un'&z⼡7!ZZw7}%Һy?D~nC"9AZy*N8ҔG=ؽ͝U}KҕV HH~ S)?;(Q^u |?ClyҜT/ŗ8WS{ja;):iql5"Uanx)vP{3j`|EFG=$1JiCˀfa[MmwH7DCΣʈp]2}OK/Q-=['Eyfpwcg.DsHe]"&MDw=Pdnl/^+LUg$I«b I3n&-Aޫ{n!h魣u yMOmXZG9ݛe0{Is/&(ёir|e?RcI= vt|jYQnYggO8%ϓ)w :-WcwM|mZ5sFϱz-u{pO4p.ڇ.zrʸ3ĭ"WagYB߃WgDӉ+_dGn,jMg\„;N'Kļ%5g[xX+5Ǻ"2{F*={5Օy(͹}x2κ{'tVŷ]@hbnw˔C9w԰vQ fTFߴ?Z8{XXk)JWFT\\E7 unQ )⴯ Kj8sޠrc,@|Olح+wagGe{`T]\}0#l'zG2)e"-̮,_4G'}mOZSAW8!L|m?CCKJ<]bJ/;Mt%ɰ~<l/{k}?b z}ԠZ ς뛎4zkɾeQ6,l'BeJ_'7F\?d;v# }.tL\KtP/ê*)g[hgY`/)v)psb#T4?d(eG`{i\ٙ59YhL&f֓U{4} p \@wvSHgBt%9"e`ƃ r%O{^ `Xu\]2b"D`M)ĭ]ɓ6#011!xhNw*G3![|/b^Xr895Sf.IBq>nAdB.ɡG (/ȓͥu`wof=9T"'|iE'ߖY@zEŐT[`c^Hc:|v<'S#i'ҋq,IHd}NJmzR< \!|Av=˙Y_ݍv[t Ok7-{, 8#VoSw9~sv_5ԞEv`&PC[u}QuZڑAoRW]@MuPKkN1zT %nuvola/48x48/actions/bookmark_add.pngUT bnATPQux ]W{sp@E]t,6qT!Tx}?[ߋmQB8[F;vkH~vDEo֐i ҲoJ9>TNÑG!F@%PDB@epb?>bcWwyU %NJald> Z1k\x>vACW~I]]9J~98$_S2&@˅ax`iVbJ *ZrtLITv@;0Ñ0kj6&W;soϴJ'6m SXhU}BL x5Ny\TerʎI!D'9,%5#L&̛`rDer;}.N̹ǹchMTPLjU9tu::Y+AYYi7%E6CWFؤ*oyz'EE\6̿J)|:29ž]t &-Pni`^&?̱0Ô0EyDP/GS IzGǓ P) b T6ӘI_ij3Ou3Lֶœ!:MNO@**$vFW';.=9C%wao̢[{KuHL(Ra/ ~y4@4iZ|X0쾤ꌘ,Tqi@+@eG$-C}ix?򸺚6~2z?i|OfrtuYkE> wN䑜07(Ne 8-Y"_Z2ju4O>;~cō_CYDD@Q4Lc"%aR"= *VD}jY'È4;"Pޔ(-}6IKmH `F6U$, ÑS*`cT pkMYLs)qxhhq7.ŷ/jϮugY9f8kITS0^@1hO66Y2Hk'B77HN5jojw]0b ђ ߢ ˇw:6#`ffO~ޜu/y{)otFlkyK+i6fy.^[ Ow跪U"\JN;Xk8 82E}T8 5+}XU.W rmmSGGA.+<\c6Og{ G.haw3yXuaFk<,y?+3+k1+o; ؾQu#ӼXJ@{į;Zo L&5a^y- Pr#MCLH[;ytbhσMZt7.&>B$NoEaW\]\Zc=+RÖܴ\覞32Yԗd6͵dϷjݧ-dފCO#ľ-GVrw@r)J8'vukC#~u 03qK ?M0͸hPYx&R㵌k6{}|"<tSΐ푟ipG-aXα5%Duӳ")^zv+^14r7X|o'#r4$&'oغe?[/%LBPDtۉVf \LvH^&q2PnUD4 8xEwh{mSr*e^ 51Xv1>cf y/xt|•tMa-7DXm!btKN'hĘkȱM/$)P՛ɕrǷE}z6Y<֊Sot<2[$jX./6<)f)dssʧ( ӕ,4x rpT_1K`'Я6x^t0-dxuBOQ✼u-xxoH (6Lm ܹA,즘MvL^5Qߍ weiݜYТ RR1_Xbqty 1%\V{.|FtQ-Db!Lt"Ky;mMKXWX^7 z#dJqnqng("0_l|OzSd'潁ׅ/*`h,qֳ'C9\-1_؟=[hh ^{n)n EP x́#Q8aAOuz&Ruv"mIǡ(NgSdkCB ڂ,B}? Q|Ju0A&1Fo[DɪZ\^oeQr2g$}}UUoJQo צ!W:=mu_س>xbm5d1HACx[G潦3Db| ðSzIb־^77IOJ4ş[ =ǃzJQ)¬>킍cyBWk:x}iWK[Ph|dXgAȰS:Ay?")^t]6"i+? "‰zAˍ^;T u==9%dJNqh-GdDIfqhH-^`\B _̆aXkd|ܔey}/w/&z4jy\{t}$Jh.эz~<>@tE jZ<=A 8po@t*wUmCU; 9F$zeJFBKi@H,,X: I$^|2V&ePs }"sQ6=F]x# 9+?`kK# cIzMx6 πRj2Ǜ3ĒEh=sCZ@} +9!4u2p/,7^*>}H_lɂ:7]*Q YYAĬ ByٹH,fټI]D#$Qy^0pq~ #Y*6^ |jEYgcVECA0a r&W)a=˘)[Bm9U$luf[ C-Zt*8iY*9:Ζe, ɦH&B:kwH|ف:]{zvK)D6<ngć`70lu"2T_!8YjY_jO];F %1Z}nAtA(n['.C0]JO&2dYy. jT6}3wBAg]1:Y 69HV2v_4K?f?/>Yȯe{=hhV<]¸]xc[snNpFB3(~ԍi(}]0.îчZ=u+S->x Mڴ a=DÝkO ]^ueJP"m#xWcnV:0ECGzg0azuѬYm[]'~("@'ɹ^r֣ <YN;f $"gyd0!%^YGjC?no*,(_ YR5m׏˟cus_#ɔc4Ov>&"^ݨ=N=էx6&bC+U[ a/3%'X|2{hǡ(!aWuw"=i™%$z 7_%`HB * AH * VDE*M!9393s}3'l4Էo:KauoLΠXYPռsrP&m`Džp7&gwpgm;!B E0@SQL0_LoXƱcAas&_-dR^9qziYx:̳+/~RrcmsyMR$JMfPa铫#KߕݽR1PqXp;6㇬X&e&X7 D3֫4 #G2A~T2Z *Z.zb$/  v6y(SkLCZql ILACOOŚ#J͎;( n2PhbZ$rTyD{r/_&W!O  `U;M#)6ĦoΩ{ozpd$_|uVtJ4*  DJs~Hgӟ\@0L3>krughMoKw[.qX`A<~>bKb /-cM(+U1֩m5Z ˝X,!,x3'DTnTvong#~Fʺ *o$"/KhCSw9 [^0*/F Q?E=(kV Åd Ye"#pԌl$ji.zb?^:k8!|},Hm_fv8X LS[-jÓ'c^>a-wzEi$AAhdm&9٦]>k(9BkJo8g5 FC[33R:aw0'R)ۉsrNJӘWl 2g " Ee/EI4!bIB DF;|n.b=Y]9Y#aTSZ3g{싵l_5 m5-O}疠N m5b LpzbY7E h"h`K>DFGwtրV;9᮱g%& ^hRwuXm3RiɖOx\r"s(^ ~jZ3Gthb4n3 D9,՜gcq&t=Q4 Aژc_@|k{[k+uczFWE ]qϞM+ql:kF6mD{O!{<(m%^^73Pf%/dR,秫@K[a]wbo<b3I{ښ \BYu 3N׀Ƥj9mX|Gr9Bb|~1L^8z Hb)ѝ7”Y؈U=$% {ESo_#Mꂞ[K''Z-HO!y^M[i1+p;Ȓ % +-G <@1!;O D[#IRAY }:{i)TD񐍍4olv)ۛ\ |ZLe$s uIm k %t $`=Х\44Qk$䲑.鯞tS=_j*k4^agyshz•^Eޕb1A N҃ݸն x)sO㾃RjsN,ک^fxy_$f&g ܕhbrZwܟVA4!pNR?viQ eȄRDK4M%Y0\vOLaקov>ԬMI<|?:MUFaN/pyQVz1kl){u }R91[}QƗrB#/h$瀲vPa>CSjZ}yI_$ g{>O :'\ }S囅J)WD}%WWBE&#sjY57y ʝp@)9$E> ~_̩Z~ǎQTJK_FKXó*+6W ~_LKc-d 榠KϽ/"314YUoE0:/uyڤ|#daaaXrBLt d% iU8&pt%Sٝ08čCb9}0{Ҽ :eiݏG>vu*\ƺ@KSϩ %.imotD{ܴKks8gyZ߾$6|̒GД`fD gmf(8r9cB,faO8q 4ڱ'PwX_$S %*vuFZ` %GM&.|h(opCUC-4:m OءǮ&_}Qm[%mrBaĿYH%5Vm_Ace;'"ZSvx2Q_=W}9(C7mD+ّO103n7뛎QROQe~r]ɠ-LӗkR@Exm8}wwH* ́/Gwcp~<6ыuO {nFu6?i#ΌTUCVlKK/mo<؄xz}S,i] 65$$[iD]vDQn>Ŷ8~]캣[T/I2WOUm<kDز*bU:HP7;e=ŝAaE4by@ Lp'}l&4I||"H[Mϑ'^r9|v|G춺cӣpȉ K-dcGr2?3-Ȋz ~X($%^9͇0Y&,zټ%;in>fb[t ,Kg^5 jEX>|BĤ䈯o7[6okJ=8޽~Ac6YQ 14)U!ĿK_IQ3ve.DajtthwQ7-֋>%N)ɡ䗳j1`}ugUا S _ #?"'a I5DyOR8W3 L` 9{}m8z e2ԕ1 drzN-%{B3ӂdvw'py#%QO%?D]mͨo,-{2V<=q;3(Z!b U!\[g ߹TPSxqAӐW:M]a{C _N2a[^̚ @ g//T!'Fln YJy8s,:,rk'3::-^ m,e/;=/'V"nnosCy?VDM)@ObxiHd~25 [W)PKkN1XV>-a+nuvola/48x48/actions/bookmarks_list_add.pngUT bnATPQux UWiXS77C q0 3 IDy"VRp2H- dP>1XDBK[VXQ@FEܗ|?[[{&~vG?|V7̅?9ygP“NT|D4D8/ztxTjhO0 L;B , MM& tw<*%ikZZB")I-wrOL_5LmnS+SScA к\ogR_V~>l8p|ƨlr,"a6[7#ZKͤ+!}u}Y Y !}9>Rpe@bM1qY)aHuOhN3 Te=e!Y~#ԢVO)CzNlB֮zR7yQ!? "3 e^6T]Ex:H318y0M}+`ws[DƯr.  x^T5Be]i̗^l0ޓ ‰ў Eαd g0;8_~*hhnVj*rr噪ONH$jF65vATn@xtF}/%lg D"pl &Xh'OS-Ȓ/>rFM,\G@~/]j=l"7Տ߄?yV(&, Cʜ![rO`}+4#Q ?1k Y]}={?؇AT6.8 CVe;pR㪠b?[_疾)7Z[cm(ިN4Ld-YC'x p3L|jćZ x3O7d|k6˓ێK݉5t:DOW we Sj1IrpʽX"/lEs AҶZ٤1!)9H$tgשrN!A(gz>c 'w9{ EIv1΍eucwh#ʫdp<,hCEk"o ⾈ߚ #)dm(f@pi/Yg +>*۵vegF%iS7C%4a?.=cu7cR{BfLN^s[e.e]'ݙ6!DWJŌRY9a0ܦe16:(F{Ŕн{+IYRo`o9؎I;Awpts.OX>q/Ft5S2YXUF+̤ֆnr+̄e~tʬǕ"0. ״%B.6*ocRRo愿"ĈzBM IAANx$|X01?pb MU%gl.a i]2QWm G# eiѝHP$7)yoXozOܤ`[l/GUz0t@)Ǝ ~r%H[ĆZ/b0[gŵO,kXaJ3K1* Fymc@+\(\L )&JL*U8JW <92?rWyltO"Jqk\s6ne/F'(j5fO&ce()c8[1+^_\M !֔VG:2SYf[ 倝vw4l< 47I(T3ma?h72b~A_IVgfcaqGӅқ_Wq(QTT\ Wr?4=j(&{l.&󾰝m=hJ/`Xj!Q5^?Qy 7uZx{ x;"LRiOM%.6_b#8SD 7hzf)=[7cΣXi@0"dbD ܪ>q427>y~%n]Yc:L ֶ$> fҴ!6yf͛n # a/\~:Fg)+`zc:KY0aX֚0~w`/դWt[|ZKFJ3Fg[o`۹ʳµ]dO-X!_|]0 yE0uOxͯlIt[?PKkN1  nuvola/48x48/actions/bottom.pngUT fcnAQPQux ViTS!! x10EU TTDP\D}VA)I PV,R >x  PS@d />{Yg}}0bV+eXm 4y#Mk>pPYo~iO=bQS )@p ”Ȕc)X7c р\U 52Il_Y EyEl4'׌ S $V#s@5?tԬ43s osd?vkRHKkLԄ }=IN:0 I5n#mQ-C<٬Q^Y\t+৺&@hw ſӓeh`4t$ yC#J[<:*@?$, ъL"rQ;݀UpZ贑TRe/Kj\߈˨p8cX@q[g )lxC$v!_ޣhV ̮<"$mq?CWWqVX\a=E{ڄ+@O!/^JFѷ; Ich8.ֈg9֛bQ쌒HZ@a!@}QJw4,N*KB\aY0IEbyqR(Zw3][rrx5U<Pn0W4 m}ݰr4e*N;я).."BH`eb\:_EsP#6Э. #7 B0U5@ |6h%%BhQϾ)сmj5+F_U ԍE} q0=+><=l7_F@,jy;NRYA+FI)Bh|(.̫T%fzE}Wp.#}`6 qjZMw> 0|HNm/q0fKffa1i/bCϖ8(Z$($۾=83 aE1rcDGtx/(YZ Y>{$etPBiw%LQXXk^B%`JZ Cs(7"4A\nC.&Vt!FÄۍQwEem)@;:4K'Bk #aUŖ_kr=R~\`pZAG;5*W 3_?u+Vj?b,?,v8"9LJ|[l8u;{ ̠ʾC h ޓlvA Ul )Q)>a "!Ik W"sr؏-讕_LLX;]'yRFìNEzsyswAKK(Gng ";la# yxk/ ;[HW[>z} ?=@ *0iE`߃?=Rq@:dg>5Cd&ba!f!Ã8%wحgĞ_JS &9w߳8~.~r"CҠ#NeaX?4(8үw*?nC5HI #t紨|(-)!Zi%KPUp KxiI# Xv>4\g7ՐİAI7#.M[*c`W8v pM`\*2*w562=^O {mfʅozUWHΧ<^Z|ܓHt|02 7ٱNy%F`hsLv#&8*wF}zCn ZȊOk @VsNY\ !)K1b!JK@Fw1֧ ,2M3>HNR?1poW[َ̗vΰΪ'ޗ$)` 0#i,!20ZF1iVA$y;!ރڷR,NNڊxVFMJzO3G'o\kIV!6"|d۸lZlJ\pVl&Wla wq[c{հ'tRASG)KV[`pd+4Ot\z E3dz`D{VٯldLdS9 Mmc#1o`'ҟ%[-[v Cg7ij-M Q'$ÅUf8W az𺫖uȇ/'kU;|ryDTbi=LQ *ܸ{Hd$/2 M |5|`]!779PKmN1[| ' &nuvola/48x48/actions/button_accept.pngUT fnASPQux uV{qu?\A[`'~9 E.Ty9!~oX|HLtY6NJdfrl&b37>] h޳ 0G}_w-OI;gy$Ԭ sGǣMeek[b[|r?dx]BcRR˹ ă} S ݌5Gj5;w<̤>>a \/ 6]\kp_1N}a-Sii#`|ۆQ @$^]( ޾ElhƧ! , z^{tmR5o$T~9xfw$8|4HT \I.M(< <#M56&@ofXr).Bڂ XN |B>pOL9 _!VS&L`UL=ܪ+ہ ]Śrw<'lp҇@rIȰC0*e&‚3$o\~g:Kwb@0RqP#LX+mʿН]5ʓbJ: HRF*M|[ ]}>F\6qD(ʕLFGY%$@7HkXn'qGfiǮRF$/=}&, S8g U:zT`főai6y?oRB0036-Ohk\ΕJ8JGx=C%H\Ut(y }BuۘW!h i-P?~EU(ʱ( ~!?'q%柜&Dw KZtfpZhų3NN(*U=Is6e{,K 5HC%>:0bdA\6T-%p㞆:M?nvfȞO*mh2ȷ|RRUkS=U7sUKDŽCR K3/t݈o$.R"`BpM=3^ah'Fǯ`*$Rf|k{m KJ*0qvt̍PYUhbEO44j ё#܂K"u/-1^=TxwO;`8ɶ y0ĹBmOb2@zY9D*2@x܇K`s WHޡof^qcO40%x8誛\Jyk5j7x[R/llfp*F8tPpF`~(ףި9g\j[ͪ ų%riN.)LRۗNijA? A{ϝ70QBŝ)_ T=bCP##!B|,Џp DT*tʾDmlP<9)FhgژTb0cC";߰ǀ\^<ByA3Xe1L!(G.88`#ToaQkT8?+VW-x_SzPFFӞWpïY@ZeI'!T}n% w aII@@q 0ܟb錤a-l3sه(9`DO4|X< ͂ ;} %jX8P -se;pT}T)"vvMc]nځ^;-xP@'kbz0k{ 4#Ep%/4Vv@n΢VQkҝ5~#/SԣZey*¨]F(_b&{ZA2mL^+fm72mCج~ߡ ^+:})1'5SZ}yNA},CbTTHsr/w]Ht&ӆTչHԢƹuN;0)9 ?rn@:L⭡"[g E/, 3yyxMܞQQ 6W)$$D!TQ4"%EP"*rHE#MF XEOłTHWz?f5k͞7߷'m2-t6-cqpy7W`ø[PlƉx8BLBBSBՇrL PTl9ֿqH0xȭzHjd`0hoirPt&Δ[€9?eꏐJ ߅ \c P _Stp(a $ky1ʮ~>nD#V_R$$0b?=:\|ychddgD1ƒz*c~7qlccZصa'?;wKPGiݨM_ U ;ryqI &''%qr diCޣ\SA!qA2zPR->\g)BCk[-4~Avz]s-ȆM.[w ,%ŢP*'U*Yq?7ZZ&~षpce#H_MRA "f\E0A u%86XNrAC*&m;賓7y`߮R]#1Ps`\= DB3b&fڞ?Abr<7'=iy5ϳ‹ff=j1_?߂,bu 4ohTMwbz}={*)lnS iK R 4M/uˠ3nƹ9*V_8zWi]@ LZ1hF::;偺bXSك~[rB}{1ڸb#y^|@?ǢqCa.ܿ 9J:ӣl}Vsrjϝ867Oc _YfZL6~Scا 1X?QtK%D@yKk}C5aDyR(0BԶJ<=݆sA$oԏ F9`oBnG=>fJm|q3 hA>b ȣL< p1IGGϏPLMcdJewwUsbeer<Փ]̉r9ҮjS3M=&&AQ6/ho]Opfڒ.QY=T ^ Xp}8X5'Ê) |u]=h J,@'BG| <^BKHW)HA,P=S]8F<i!aDDg #rtԶ`#-hGQu%e~gG?*韍x -,?zHuTB1Ez _=7dwpO)Ct# 8öEF'mU 'YF%u)UYk.qyo^#RLJI+8c<.w9vF/]cLQ$R:oU"_ ?6$GI Otc? |G>]O6"[\gأڔVEz^IX#d~<֙(~v[x +L[eőv;EߓLyFouT#A!>uhصz,O-g }CPjRÞGTZν,44B*5UTjl F+9i.)S1=G#u:ߺܾr\Όb܃g Zy[CTYUK+8c(@8&/׸RFK׾]9SPI9A51l޺DDB xn\ 5۬s~ӪL$7tw}~ͮޱ Y7( ǧN '6`vp|ߟvp_KNSWm)Y#8sUxe?r W6`ombȦ'Dܝ&"4B?\aUEx3j, 0%wf>Y2Ӌu.wGsORZFK3%9?قcdotbԞI×6}{D=M &Ȋ,E~8R޽Ҽ} ؞p<0W1k/F߫XtAxi* &yYx 7k)L.Y˹j\ʲ9fHڑ:N tӻk)L]]qKR,g$k0-;#IJJ%1 ]{6+V"4¡GaKvRra"7B!:f@ UkoM[#Cg6ʍoX..Oф*Gݺ5D0V]CCG xIR4:ZٍMW8)j߅D[K+v5gj y~ji ?-mo({HGtl"}OBoApq,Z>?=:1D_x| v(׬pE۴qiKjD.Zt>/lW-d:UR|lr}S$6x^VygڧtLMFjf֋r>&ik;KΉX%4$yG]Rգ5^Z۫4h/6n@͂ќg^@oEK%&'h CP$@bbwb[5l"nx:w.JMQ"`ٔZb0//m6BPKmN11%v ( "nuvola/48x48/actions/button_ok.pngUT fnASPQux }VYTSH@. r(SA28J4$H;& 2 &ڽ}*gBQl 2 z>NU}S{>uNh"wl YO,|n Y/}X'zFGŞឈ"#r܈ǟDnE'\C$@fJ32:k Ỳ]~<R}kvt_*G+g,;c , oA|`kK]wG߶~F y~L&[F0txr5ɫGpVn#q@> ߠQeՍwYMCVm6Ss5Çls:3GF'UV i }shyu`Gy&,D k&?K0TaeA=˧抸]{x}[lD, )(y61QtG&ٺ!-9ƚy0'L+foX$MmȒ'謺÷#1~w"Y+\6>;jz1bs7ʅm2\#$ѥ Ϡ@Inj%$4@xԉŬ=t`llLp;H\w&th775CȎ! va-9M""0Σ.KѽkFB!"e׋^/drRO@ ݣigֵIX꒪{O4 d q-!p֥zdX(htgJO2W}bdp̤8eز/cr[SSw. -Qp&ڹԫLij;+ϚVsQ9+}3Hi27!R#757>H _1tY"MAi:C-z-*i$e64;2"/_qo zܯjVZ}K{NA"/8A4pA,-fЧ)1|e!ZsQ9++of%9i3EXYbKCAbKp*-RÆ ^u'Gy3VF P5]; +!.P`!ca5jm%Bv۱mExCR|A|!Xi4EJKʮwQz=9,ʆqUvOMC :M.dƌ!Nsq<@aiV lrRad^n7KvvbAS Sv2u tc$/YG.VlץTSp(A!s1rB(!pԈt aӕ@FzwqBOh644lEz4f9g@s`lL4/58ደNjMhҀζiR%?0H`)w9Gor |~7NMZL٣"_#3:y <;.Q:w8 .lZ^ P) 76P6BRw6}xUtRq{j- 9Lz=dbH+GK8AV^xבIѰ@(16AqQe]ĆSSDye@FӼ z>N.EJZ}LRo5y=nV[;f5n|qoP[`FpT0WU'wR7hgd2DB^, 'fE6e}&YYIX$|Y%'Tk ̿B0H2Q'2[Ћ68~F{@lq~灁+miK12Қ A>y 1y%9)ltLO-I"$ԘF+?6.ѶO|et4[q9Ay)&vgRըX@Cq*ؕ]ϓS Br8q@wY3Z\ES CEm;sث %~^=dK8ǑgY"=l>%^=fh"K9MΫAMmPU߽#u<í68ޢ>|-+kج!TUb fyN$F|5 su߹9iTÞzb5x _w"'ܒ?wv3&=|,#,t_ynܰ܀C66t7dcW·ជ)yX]ٚKF^ .}g]RqƗK4nK^UInmT4 ;uM:j9,8Nf Txbab0ZzT)T*, wCBrR뽜2HfRNoT)vpOvDz0!(Xy AʪGGO QU/R++\yq;M({2 QT9c!d }P~ l X6iڗwt(X9-f@BݓEEf)=BNrs>Hw}^ ԰2R4~&%Ur`93xp5\ǹu(Ʌ\=y$I,{@`NKd13oxu閵qu?\A[`'~9 E.Ty9!~oX|HLtY6NJdfrl&b37>] h޳ 0G}_w-OI;gy$Ԭ sGǣMeek[b[|r?dx]BcRR˹ ă} S ݌5Gj5;w<̤>>a \/ 6]\kp_1N}a-Sii#`|ۆQ @$^]( ޾ElhƧ! , z^{tmR5o$T~9xfw$8|4HT \I.M(< <#M56&@ofXr).Bڂ XN |B>pOL9 _!VS&L`UL=ܪ+ہ ]Śrw<'lp҇@rIȰC0*e&‚3$o\~g:Kwb@0RqP#LX+mʿН]5ʓbJ: HRF*M|[ ]}>F\6qD(ʕLFGY%$@7HkXn'qGfiǮRF$/=}&, S8g U:zT`főai6y?oRB0036-Ohk\ΕJ8JGx=C%H\Ut(y }BuۘW!h i-P?~EU(ʱ( ~!?'q%柜&Dw KZtfpZhų3NN(*U=Is6e{,K 5HC%>:0bdA\6T-%p㞆:M?nvfȞO*mh2ȷ|RRUkS=U7sUKDŽCR K3/t݈o$.R"`BpM=3^ah'Fǯ`*$Rf|k{m KJ*0qvt̍PYUhbEO44j ё#܂K"u/-1^=TxwO;`8ɶ y0ĹBmOb2@zY9D*2@x܇K`s WHޡof^qcO40%x8誛\Jyk5j7x[R/llfp*F8tPpF`~(ףި9g\j[ͪ ų%riN.)LRۗNijA? A{ϝ70QBŝ)_ T=bCP##!B|,Џp DT*tʾDmlP<9)FhgژTb0cC";߰ǀ\^<ByA3Xe1L!(G.88`#ToaQkT8?+VW-x_SzPFFӞWpïY@ZeI'!T}n% w aII@@q 0ܟb錤a-l3sه(9`DO4|X< ͂ ;} %jX8P -se;pT}T)"vvMc]nځ^;-xP@'kbz0k{ 4#Ep%/4Vv@n΢VQkҝ5~#/SԣZey*¨]F(_b&{ZA2mL^+fm72mCج~ߡ ^+:})1'5SZ}yNA},CbTTHsr/w]Ht&ӆTչHԢƹuN;0)9 ?rn@:L⭡"[g E/, 3yyxMܞQQ 6Wp$Q$ũr š&IMͩ43 䜳= ˔&3Y73XޢiYYc?kk}߷X;-[ w+-mi`/r6EiP!Lx怾80Ol?;?0d{2̽1 W1  8'@/zYpd3&R3!YgKܓ$ֺUZhU8Fl\/0> %#/fЛCY+g.66fWOC7QUE!hϱD#Z$_"U4BGXl"4|T9;aqR1>o \}{ ^{|9ɍsG!&%RK@pijzaM`it0.x@)r'6şbo8rv`naVc U` rq9U =e&@X N)iX? whj-[C3 ')^dI_㘙<"fשS"Q?_ce|/ܽFMh9oIx<>M[n3yڨ/:G/%[:LO*x,oarB~>`Ldh:lUPpb ;N[hEԴf{{NM2M7eda ~'&UF@=0>К(ur,xy[u<9{G47[/p洌pb 8u^v~T3Av*vsF![g ZKzkwUZ} x8~x+/(J\+zڝL/ADK1x'Gfaj(0:C96H>Ut?a] ȉ8va0;EZu"̪;ONT[:ᚓ>rƋ[^u_ h>?π+L b yW;y;Xp$8DE;hO3trj'>UւO.ƔE2hC>Zqw"Ekj)V)҈Ԥ%*;;KT1lffJ;=/H)5~bAWU&G"0^=P{Bko6Lb h KX=aIš$+"*?vpW&4%g=]C6*@.bMvDkʫ<3#?C]qoF] bv/HpCdP QC#Lʿ+Vb|3`$džxQ s^)3pݲl :`ժi-` ԡaY!.C A Q;Uh'q@j69#d5$(fTo$Iص!܊{wz˼lH)j,pA={ O䷯穟ڈ]mtރh4x1 `Pt${QoE<Ž5l 7ZjYۻ'pഞdgWca<ݵlwHcΡ ^5<59"K/^pba^UJ! Ovd3'+ xj|u%Lw;ǯ-$iB=xzd3| y4oUa iDUC+v CobqfAk% ُm@sH/SC"F녋^PEOs)T=¼[(~\//C&\YaA3Clcm{h7QKī(_Âq˾-,>-L8kFkSB@c,ނZu}ZTԂ+ˡ z.jmOIYQ{v9HQ^u#a/e%@Nnion@=="A-lXWUsHn,q\w\kbU>Kk0l qqI2Z vwcN԰Cnܬ {?\n3kq wm# "OTcnRSI$XUfnrVҸC̻IVrut8 jM`V>P$qShnvx^͕Jy`-$>A(X[{Rj;㣻")v EP0Zb4PU-*[K+B=:G]0%sP2Bh[UĤ#aTjM>c%:ĵ@@~}/ InFuf}k}Tm4jnT P0;K~לIJcnŇy bB,y0_/ZzԢht+-Y8$0ؘcԙ3i;pK̈OT1Mg#j7yonuvola/48x48/actions/cd.pngUT VATPQux y\Y@!Q܅R42AqMplhmlqsKrM[rIvM'eJ+s-Ky=ιsoV+kʒeh~2j;Yzꌏ= E}N Jj vi/}`*Czr=h%`5M+Wt{ROmmKNQT2_!3x NnЧ QB^n Ob7qjtmhn1#Bݎ%O6%1xD{ZF4|v%++2IQus#2H^< Z%"ܨ(B<-pyME^ex穩|sa"@rSJ#x'(՞Mɤ$%3')J4uۃA-ԋ9f\MW4" U46C*w_Ю=o|xKD9!c15[V2hT6(q^ XTV}P^eH jWܡ.u8v BO׭3aвe[kYJ}"v\ǧy{74JTnEVy3۞dh[03YdN[x]@+Όb RBn)J܌az1u`A Hb+JŸQE2zQTB[q%$7No7|Xvl20OTRoXK!QUpn]i! 䱋&P!F'uDpHΥϯ\ژ6-zD~Ϫoiw#Qq!vrkEn<!5)'O LEI슲#+FhZgmScw_ @O?,|..; yW Ԓվ0(zٽqв\6= Xއd_%WzW819UJ,޻/5 $#+`dCEDڝV%kpCRU̎P*l[.XӋ zk, %c\isjVڿfB~0OOPnjS/Fk<KlQ7grEJ v>/[?@&gH9+m5%d?= E~NNXcT |}_rE"gϠ̶0;ֵOk, h`!j 4,8&Eg茠mEh6f =8:uWl7e9~ ? u VO+~јVޢ[ q[Ty|%v=zw[!#2 m.`xNI kBd2=.%;ʃ5ɢ+dƆ' $E*?],uCNUyl]?ogׯDmZgx&/vYRU*՛❕py#gH(@ӧQӛE&Zj΀_'{@Ĭhշ6׬,.Q2AKcހ}a\֚6ъ^.+- L_㡢DLJ߂?οz`˯pylӼ)fgLM ٽK#/ dZisCM% 'i]FB{GƄC 85N~dmJ KjA'~ܞqeJoK.tjЬ?$/D6Gte9άrĒ▨t1e %ՅK\{N;Z /̼ t{TSrq`b ~F:&D-Ng]^-IQ7zMM!e"dU&.nPl&I0T$ US.B6 l7?ee?Ø/i@ #q ~ɳSN-3ʮ N&]P|G8*Ns5]&\j gO2ꐦ賨f2OY aGY4>5}c%XKh܄FKe[&8&*G!C8G0uVNnU`q_Kh^ bcQ2 ˏ6d.55 $^ݭ9rubK% }om"}Ɲ&+XX,c!ԴjHѡ'Q6Zz]MqCK=e"m7WÑCʶ'n԰Xqv̎ ~ C7?7W…Nev싎jq'8&vqkz ZlW02 ?<f,J5K:0s< 'GomO mj_5u*,ԱMٌ(^ka!&>>4Jn&]դy]raF> IQ&+TVmf}:}ٯ1(+ CUh>&u6ZՑZAsO3g)lD"Q rc{1.SdXs@%ȡNxxzK:<_>)Q2455a[@VjX[k.Cp-Z;0lll,d2;w"%%%n"{U3wtzm``aSN+S&~rÛam k`bBiSxJײDTxO<*l$3AGMw.\/4`55QQ#/@&083^l:2W,..~Y2\vy|A#>^M`ޟ݃.QTu*y^91J?zHY GNN1@#Nz؀/s4-DR(bl;y)MEFYֆ&&!b{UxS8[/-z.k UpˇQ8 H^'YzahND!8on)vX|Tc\/BVkyjd;ԧx;IFzn<@jXڨ˵طg1a^l& o;z6mʺVC_zZۣ 㶧FC2dW>;[w6N~ky[ zutm090V?)βW TNmNeU'ڠܖmͮS*0?ʜh (_fѵ7 OM|zSRĭ Ufox)Y k0{'W$}0b(0JJV'-]|Fݮ!ʝz#!'|kh34t>ļLfcr ɸzuavs籲k Eݧ/{g2Fʥn..~9XPL&|GuWU Us[E)$=u ;M~myĠ{Bճ]E}o x&L7 YUHn ʬͅEv͓fK:*B?cDU`cQ]]9Zw=gݦ~s]$Cw-I5F(羊/Nj+E; C ?sm /:UVԁF^Sdiݸ/jLu<s81X3_jv G|d?v3Hvs]lY3Ĉ@?YЛY3L4^h~6|X|_FBid_0|EiI뎮vdp;|ɥ=hMq`ي, T[Ns~ 8}S{. BsZW-?O?#-Žbi-!rWst)VL ٩GeLF sv6&ʊ5.>=LMSvۆQ%EXK/fg9Λ}"̂0df0p[ T̤MI;I)@`\"?|'ϋK;Lw>z?`߾E~2z \သniR>ԂEأ =;hf)?oʤس8R@y5| 3m-2A3dOX=]i1w)'WSGO*{  e/.Q3d$I.ZhNssӛUr7E&|/-wb`-}1aSHg=6a sIAFו?UpxpT2GssF6e /[mbld54smXnYj;.vd`+_񖂢'"*&}}?,pZZJ/@c_`6"sOb\>m;r?c;VJeq_ܢ"^YmQ"@XܽKLx>^8/;s}9'I7;>L>J$_J4h8u]kHg}ݾ=_uW敖Bݔ|s|B$xZ GfIĆGSgz_V>Y^]ɉ-qe< 6>Q C=Vv1"IgDin]82Cgi|I'sԕ˼0.>+=wvr$:{(1XܷÞA2pYfmVA?a5Lza_l ]"z~4S`fמ{{ƬV_bfL4=+ 8F굔\e4ǎ{bRvs&"͒U_W'$G< z hл2SI( bike\EY'w:NP}(/9u )5u@?LU0U2상͑NPNym0::C|iVs0$$o.ۨg@[%!+bDW`0-r'y 1q xPKnkN1P/["!nuvola/48x48/actions/colorize.pngUT bnARPQux %WwXSٷɅ H@A JITt,8V@EK рBp,fp @ R$'* F"$wϟ{}Yrȶ& M0s>Rl#h܃I[0MX7縘Dh *."q1NlhNTh_)(`Wһ-1!k~XArGo{s8)**xXL(cvPAb") 5V{F"qkai̅TLxuĪ-=y`Xz{H^=UiR_4RNҤGYR \g`-V3jؑ_a je&U]"3g_n@VpàMŞz*aG͆1タQo7c, Ow>RC}&)_ϕ EpFqiU%S3O65]˗ćo2!Dzf~OHD(J1u_${ែg 5Bkս: DI#ݾe}Wʼn3A{mم$IH&)(WYh3UGO;(RY*gVg mW~Mj_/-g'Kڨ`>浱T:s(ZDd:`xv t;ƒm3ͩ|Uvi(ar⵮R`0{0%r2忝Ϩ=36z*;9?f}aݚ諻hGbE _;k!W%RPi9%\JMw/m$UT܁-iJcH>56)4\K #'W^? m dNfV1G| Gr- iZ FvhBB.gzꫳNOBG=[v 8I-Oq;̆fsAcqeZi#Y񗬽Mrs~cb6sFMeKK#CW4 S{8ɣ>%aBw/6HȀ,[70v}!LAz#mG>5<),&ZxߎZ} bҽ#؟ox hUm6N(0]BvԚY}$']6L}w3^-JҏN ciWN:7ЁGr^/B }lMĻ{RF ݿ}9G}H D|",4-&A*dCAGϙQ D4th5uY:8 !ψ C}>{.ɨTzHe1s3&4hɚ%@Y쐱JZ] |&/P"aeQ2E Mnz\-h;ŸB_#lѾzF=9v)Rc8?&j[(~B.܏ꟙ]f$遠mgF|weP\zڑw5ba2HϵֳA?Yk_K̶Ӈ:llFffQke=am81Ϻ~Vd}W\Tp).vbX:I&}6M>9r, v۪rY&0Na|mƬ#D6t&3XWQU?o(>B}HP4v) ~bHSe'#"Džw A $/aȪAZT g /PuR ?SgڪJRn+oIB>gZ:ổ:GPgqE .#Rmzt,Vd54S Z;/ !k qxQ_ =|7 p\FڱE| X W^nܑgrъHT1_5b|{0oHrU-jKȷǐjO@DnuܝcÔM9wsTI{۰ VD NbrٳXH ?\SN=ۑI F+!kBaBo"&vzjP]~Fs]B[J?~h_"uE7R8< 6iKfnDT1$tЯ|.IJ?FAVL뾗#EM闚:VBғN̏ӂ{TD@?!w4^ґ4YR|ʗ[e, #?q”IUo${'mUC7.HF<%mF`2CFE7r/=Q==::afܘ紗9]pc&t1NMyPDЀDZoܨQp\z)k?ʀþ>SSOYѲaV7|vgC3>Z_Tݟ6_ML#hj4,T'S鈢7n4,n)q~>?VTf慴Q\Erf3˿ȞP1ɟ[N׺ J-V|4?HV2DQU(5pr>2*dIOp`^LݼݴLY.rnlz ~E,fK66ߗ_j[լ#\vJXmlwÉpL(靳K(dzC,E9(eW;tn~XG?݄fDd-{1!?vpH9ܡlErM+.a2KyӕqXyM8~Jz.ERvq2u=qYF,jXbEjJ2.덼odoXϔL,/d2[f)";EP6_?IǾYeFCPuسb9|RKdM.V;8j46 ??EƭìÌ6b7{ŷ]GORsfOmxN'&!m27Jxׄa*rľ[8t;fj߃ntMӀ`Y70sرL~fa7n(iЖ*n&~$ŘRv;1ڏ(7=:~WXoJ!D#i.ecH,%3>z]X?Hn)dy\zF?=x5Zϲ]ȆO)Pkt~x=xuX o[b}hsg_8=#7QݴR0tpjb ۽pXwS5neEk7Fo&W.vYn ":n#\vF%]((Rbd[Qȃ,z w,yJc+dRAiEKoéI9xDſǿ>vT;$VPr*4U22S4jk 5Uv8tg]͘|zeFvM~&wg@>KLм靂$3OeD'_m V+El*=˰%y:ڷcՕbY(m~h @є-0O'h^V@/3jѨ'!N 2'mu(P `FK;ެbgȢG$'{RVVFjݞ(tdsS>JצۂZN?PKt91N/XK!nuvola/48x48/actions/compfile.pngUT gUAUPQux -VyXR?puʮШi R9 8ŬԲz zp,I̯ͨ&릢8dfiDiYbZ~{~kwA2c?|CI^dދC7;"kB+iW\LR '!`⢢~tH4v; 0}SF`&vr;P(QUv-hbb"WdߟvtjM!f ڙoU5gzЁ[Ij~A%CDt퀝湗3'{ w?x^?$-BmrDD _߰Fy7!"kSr gbӼGEDΒ0 )d{(}eĤ. ?%hTvb"؞UXI.Kpu/8SioBCr6nlPz?zg| \fNbP#[T]es67i,sR$[yԀ3.8C]a .|ptsxXV))4FTdw[=awlw~ 8kYVFlL2;Uyex^Rl&O'cbi^$!CK7P)8:MCmUtMCk< yr-:Su'OcAZMʲx|;㉬Ӵ/74yZ)]3$yHɈQD< prY) LǡCnp ۨlv"aFH3H +^%fߑ &)ǘj6^HA)&K?U?YY>JCMӻ\ʿ3͓uYsEM_c3jtKu Ii |ry\|7D,֏"6w_XS}7*Pj")9B>iέ$4^&xJ-i.˸6}u$OW#hobg~nF'!o. NB̘+е{K4/R ַ^3ϵ_7_8U*KMRצe; `]  C#;l3Pd` UoIH!#bk.zO 17aIJ]Jk Y 猼T [\-,̻N7Zɛ/xBWkVe3fLcL,RZ Zܔ1;(W5a-5[ b?#ZGZ󭋭{܍%-u[DLD7R6zyRm,@вe!RQ+>EN_-SAdZz1`$*UMKto~l㤾ZB_-y[=Vu^ӑdU[[W6}_Ev, iQqovD%_rN65A1n-7pqM1.(*t0D?ȝ`M{ -ы|2`s1ULuPKlkN1;Y< Q "nuvola/48x48/actions/configure.pngUT bnASPQux EV{8iߙ1N`kmFTΦZfơEȞ!lT9eS$df"ٜ* "L6﻾?u=wMľ@^;@|x)V{aiW3Sx{}lF__ߊ2g˼RXPM#["{'kj4!== AB_wƍ4%-~X">䱴rn @є==Kխ$(G:8$#AqyLokZ<;|`TtKqc\W:ܤ kĽ$.޺YRPͽ e– ^cLw@;][.E,žÔ$+x͉^y{bUŽ]-c:cbU~Hd#_RЛoDp7wMO,*r§~SN+M~T:=¸ ֖̔45U}sY;0^I~:DQopNiCKCG%/!Ǜ"O!pSsr%G2{% }wFԹ>j(+h-qcrrKB68q^olsJKGuYP?xLws!. 2\n/'w,3UCݥv(acim0!\$W +*)* WV>.}N-ᔔXپ,Ka p֞le4v7+;n#XU(3 TCYj999ʘ@[fdۍG!WU7Y|xw*1'fͭRt=Yn g"CcTO՘kh8HmZ]fQe|Xwj.]:"pAG906S $k߲Bye%$ 5);eJ>M1 ԚyYZ%PAdPJpBV*%Kt@ⷵkP4 71AMծ7c{J hx"2ItOބJe2.3I/O'`Ӛ_p "2< jku)bc3 Z޽+͍΅7V3gh^jT̽;#o 3)C%/_ c9JΊ!UQ3ٮf..xӒͧ np/v  8cZ$R\sҕ",ࠟUڈ4 l--ㆆ6Je 鯪BF`&]~/O泟Gr4`JȇXCa]--il軪ȫp%b>BHH9x ]w(A=<$zj{'1g:[Ej'As>M:Qfp,f K֌[SWRG Z;ub}jfΥ@k]Vnnb R˪r\=SUQΈQ+WVI%"|[B6m40[~񀟐Z\c^3Ak8TdJwXwXHn fXmsa hn? d/uvv*U#v+ .}CP8GPgiU_;a{f}+u$&3p4QpsE|f`.N AdIb IFxLc%ig@0II$!WȐ3[5c9@?9dE:w;Qdz16^m!~ B I/KÈݻj"ީlZe>n7 F4,pw-_c;o;DݹQk`5=ł*S\Z%};-X1m%D+x2M tHM7PKWkN1F(E )nuvola/48x48/actions/connect_creating.pngUT vbnASPQux }W#~g^ffHzGLD "̰Nee*1Z9~V5Z"$au0vYjmd^s.KČrU!Ü Eatw8z5OCݛ-3p'-=:5&(BcϥtJ20چ@ Ev'9aq _JB)JY<†ǎKP^sw7*&2ʢ"AAAlN]KhBIi)ǃJ޿gɦJȧMY+-oyx^Ky^^j`a 37@`nLJkZr}c{aG##K!wNmq,twIqpF/FS8H<,F ƕ$ΗZIIC̑=Ľ\Mϼ5Y8^}eu?CDڽH^΍^K8yz7Vws8Lv%AW4mՇ~ i"Aԡ ;CtIINCڽ-lŢF_ZOf{gdx^jE,WfS,vDWy.[zs#w"Wq"{PeݺBx}Ϻ«Z֍*[Fi~7V1ΉBSJGg\PRg~ Q,l! %t%yMn9{Eܰc<\*AЩ s%"_ @*ea2e@=1@azI ߎy<_ ςTXE_2J"fpy,[fV+썰 8 &r8 *9Lg( 5؞i w8$O]lftn/_JW/k[aC}DUo&N-fBJhp}i!Jr_J\R28un𪸦N r0{d:o5/͚vĸ߲P jpdkfƿ>A\Ɍ??gD53sGb1fcmUf>SI7wQ-ݐO41(؀Llӫ"*acn%~.Wҋhbh/XFhTXD@D>n|F p;SkQZVZ?<)|)6΂1@jZ8PMOOKd;EqUx}lb2LJOy$34(gHݗ}x^בdX:IwVF˝nFC %~0>x?J ERt?pkyGo;ieø ?00ogwlr:[z\. z{!HW x|y=;[+&h-DŽ%S q ` Oue%dx< +tV(+ fi+rO'9._ԙ WinrDN7aޑqo߳^W(/SG8G-UmBM*WoR3><}\+45!hF2Nnd+l!5Cy_?Q9|,W73Sc׎ED\?A/zݟqdZGh%DPSmX'(Cd [׉#uC¿찣;s3S.fjY@_C^^kE:)ĢB` @ +J昘sz1y|=-q$CvK| 뇅-4ZÿƊ<6KP[vRV\m[{6 [@̵HUF8C*!Ęר4yד'PWa'4TZ0K$;O)sSs~%^.`"Җwl%SA_hML3 8RY}x?˧K?p#:5bӉ%_u6HBG~y;15fQ ^=f C-Rf]YB!#6zVPKVkN1aq7_,nuvola/48x48/actions/connect_established.pngUT tbnAUPQux W{<605%:9yl R::]`nqYCT<Wg IBEM#o #ʆf3c Dvn3`$д6q[1[ c3dr 04Q &M"wKBMzi^PnhCtp^0|Є*Hz荍Jjk{Yaryjf-U\'3OW۰+MM]=s $cEW2x Ɖad!Y 3I 5 4z<\-DcN A,Ǿ}ξ!'=+ .Yb|qrJ U.=D:Xݔ_w|vN@^iz=iIAۺYPj>pY-iWzs%W<2LkV(##yc-XwC~U/ږ֗CoEz+^ЯbvO`nKv gݚf{WbU,$3)"|ަB@TGnpGsUaׇ炌kc*=aFh`TTKh?J-[X޹-X[}'lЕ,ł)14Xs~ez:.ݠY)Om/=1{]8[9> Cb1BO@7?hkvgXvSݳnߜw]8E|Rpy1aV߯hTȯ͔h79CE R`g&Đ%4= oKL5cD\L3AGLPG>hDӏ4+j&*RNM 8v e26E6Z T__&o3  q0 $إʜ|}o' N i06{J ^s~z4=%D_9\r9Mv󦔞񃭷84&砎b-e Tlо-:lc'}q-!q|Z}ﵗe FAOD>TX1jg@XeBM5\sLe`x>sN|wg{UvG8/9xRqQ;xI_DبRc~ }PO8%cW 泝qmxU>A56F@#5S M E@PץZEqlCKpN˴t_Ȇl#Wa't}3~j<+ki` ~F|EM \0aOG̊.i[e `@ :] vO:$UTzAd%xj[/ku_"V ?,ڊXVWĂհBF|=7ZU%)'fEvwΤ#‹j}C267nTKW_v5:Z+jQ]0-R.^ޒ>Ŗd_t$ krf~#Tm>"j?A'9Nh'7:i!Bk~b-͝m,x`6wάw@B\xMA <[{4«*6|ߧCkɛƮ.e0.;Ĭ]#FQ]CC;>^+p\lx$o#FTnҒ۬.kt1d[}z84,pL*OۜmDU_$Ӓ:i-:^rV۠Dzv* dG&$1y}~6h7ZPFv:JwXyk{¦KAM/;M>I?~8YO kyǞ}QũU{8RG 湍/h'UYY#˼H"pKKQ#Al9~^1)'<ׯehmJNNJߍȲAˆt; M#|U +ktӍ)#Xyon_bV_/\F'f;9煟b^@F8 v(oΗ٣b+{ N 6Dl4z'`-7ʦUгD28bZ;'ʍw@}P3YS IR~ƩDEW.O+fd-Mjd; ~ț17]J2~|x j;e \Y,g;o':m֛LNy)erCȟMgՂ촉 gZO~WG]룶MUH+i||U<|}7U^Q&,_*ՂYY{7jO N>_{Ҫ͂ ?yS`'N }nDϱ$EBƱYխ7C.Y#8wY{hRuIo`ho2f¹V@q~ŧ6бӋ'ED3T{郋J.Go; ItO/h=Rl6m])ujFk$.ѓWy@k/jC7~6Ghii\JRSM:'4/KꓽVI`>4!.xb3m_fJ mb_W5뼛}l;vc3.b-ښ_XJ3z&47qp9AaK>+ڳXkk64/D ݭ\nFSqG{8f9jjkdWpf(\s}\cߜVg,$ rA07w D7 28ts[l֛v@CNMch4ĐPp:54H^Q[Оre BYDKѡjfҙՔM6Gzƒ`]EUɎ"?3ʦ<'#Z`?z;~yF~M[y`s?ſz r1QvxoT:g &F A)Jh.Y&9Ű UCQO=J-RHmBc\KIn,{-^g;۵̳(͇5_d9ԘƪЙE/5䜟*?F)7;%B݈dԑb7 ~\Ʌϯ 1lrre q=`Ӆ4`Hc^d9d~8Z꬛ 3.lNEE!,KK$ȋFBODfVF Hc gq/?ʎAnFQ*5E,B}!6)`-nsnMj.#E d0U@ByafE&[)^CиI3y1F媓.Ϝ Ύ*z-;ZU"O"H 5 F\X[{YV3ئQb_B`NoM9|:"ߚw' t6jbOr9H\K"̟cZ"~z13^%\V1ר:ǡJ>%+j2 ?x=NcxRhx+^L7CdtGo= gF5} U?zshPKTkN1'02N#nuvola/48x48/actions/connect_no.pngUT pbnASPQux uV{8igYL%c31f HH[;_'*!;/(J) ɌƊRf037, |eul6G&;dF %888]X$6v043ieM!eo+]\^쏊z$8t"JZyuwG[rYw{WBL̻u܍wlul 'ܭA@TBϦM8$bAAյIɖRf$a?"a.-_]F;l\[o3|Zٹuy''vjV?٠c)N8Ov^qsp[ pFBQ*s#t+}èvok7ӄ=n1rpXD4[`IIؿv KdRDÑ~xZbj.,[SU%B(BoM>EJ;Á(#{ @T @*Rl+j8vYUYΡF5mM)_la^rybOegXj"Ɖ^ThVayUbW;bb)6cz&{r9bWS3>JJaHt`/>3V|pdu&aIȸqFq1Ԉ8{,nlhLaMAf.PgN{FX R%&Q*%aJA2kӋZE" -`gg'tA7^c<=wwWAP_)UfyrNTL IWCf:Y[+4Xò{0J+Zux^(0gwYZzCeyAvU (5Y=D ANR*XrfL"/S)TlK;:%3pjpdb)6FU-+[ I1o@3V m|O 9J3Ng9WL V xS2 ~zja*HYQd^g('h=jN f:3)|gNzWZӬд>i#V]YN2_~+|^-Bm \V }d5Vh01&xPVRlVX#i:-[6әѶ H!xL`ɢ􅗭"r)Vjn2σv>hPC~_{~ Ĝ\lMV?:5"Izg\(Q =)]t`\rC9N0P'MN .>;K.vF^PrD7n»JmSd3PXw^oqUL MN5(_p qG5ʪ~ r'Nm)ɅM UZ>G.uZtH[\ˣ.^)BYĴƁ(^n^êO} A828Yyـv<<E5B7X>*#S@Ȉt<]l t~ &D-M#-1W$lS߁x #lůcDc~MRKjQqdpcbE4~xRMr/D}V^Ql^gQn]\d[٧)!KȂh`2kĘ #g|!HzG A DOK3ztye#X9Nq%Q_GX6zU3P$;SKSC`]TjTZPiPhYxp9}=Kznf p/s]ՍbaM PׁWCi.3΀ Sv YgNى|%<+k9Lf ffX]J ?* t Lslc}x6"L1A>?|$z2Z_'N|XT٤;z ~EQsÍrr8N NdZw4dUYv~m4Uz:G$e321C Eo(Q6;JCVSonSvx<9?K*P9I ?J%|J%RH 7\MV[* l/pĿla K_$V 6h%"wdZI/n,#ٴ ӓ_c~|vVZHv<|z+mh9A_Y&Z"JxSJ?UAD^lGghf׆7xS UOiyR豣f-mpS޻%C3BҜϭVdllupgVN\a5.LS% x"? ~rc\j8c ӌ G= ,$hJV0tx+oBj" jTߝY"& =Ƚk#nn 1ʍyʚL0B5ϯ_[^+2S.1DI<R-QCA{Eoi4'ZJ)}m>n!K࠱DvWQ`zlS; -:bo8)m]W3ʏ֦5.BP!{AXFtHZ8Vf&1Uд`ux{#ETzul3)ddTip 7siBCUSZ-X0:[!)m<$WoB4LmƖ W5ё !q3 nN~ .]T TuMN;w^%ZMM̿?2C7`2&~jc):wtع4)X&@'7O_PKjkN1C N nuvola/48x48/actions/cut.pngUT bnAUPQux 5W{kƆQ!N՜bXdSsA H#:Y|?QV*:vOJ2=8X42vfa{ᯙj/Ӓ&tk&A ~IH߮4"h ci佲 Yn?|(@βk"Շh*g%2N);ES>UW>UmFÃZ贷,8&:QhGXOi=AxCT`N h V;}4- k5ξ^CDF-qgyPc Ua<lllԴ;rZ@@\?r/Aݎ ֛Sڽ[ٓ'lSco Qoh%06C/ DZdyl9{Q59&6[v]lSL$楛U}q:L1"IZ5Q0sD!8PEL6dI|Dzp 0 3|ޝN.. A祣+CM+/k^.eA՛EXEѷ #4HpDӆ`g߭u$p_3+t3ꘂчف+aO=JKo6 B߀D3U/^C bUxrb7={ÝDj_gۺeݣVHSgHrSAY#npSvں{FMvZ ˄zCI4$J耔ƾ3 ݇y $K)3x N.0 xm"/(Y},`oWQ  U.q@ 3G5448*5"M2IĂ|9<m 5OrR&a=@1&ڕE1pg+)A"sڢdR?Ѳ߃ ܫdwם@gHWgL_Q"mHQDdee #&\u,{Mp&ONQIZXy^V}MVةz:gH,~ [1k ~x٪6Q8 ,:Dax4,5P(,}=PVN#i1g\ͅ;-J3|;zYR!69䯍*]maҀ' tM]uاݭ`pvgpty5X8_7+5qu/L6|<'( tY(PfuAB(7w4i*RPov>"Tj@jQSgm[UƓAOv{r ͷ=7qGȡѫ=;"%]`!D+1F/Hyt_5wɻۯ#;.‘NC #H =-AԪexXuPH$i:T@e;G+S=iR+ܐ4cKyn>b=9KokD;XUoHi2>P%md1yG8K9kCṺƆǯ '#hҒ4BP1\fY[gz~-/Kʻ3$%ڨwvuibo>$~JI;#|J/?'zxC8ib vv<ʖֈ! Oн%\MVVPl--m ?֫L^mYPzn#[6FPGّ.EW]~%O"*ܸj+x!ν[?uiLnB~bUruO!y1"4$b:k T/ n/];Wg%~0:I)$E9AИWSU.gׄԼ),(,Õ $,ME% 񚷫M;Wɔ|e W$St}Z%%l`Z%6dA3aԊI/l7=c_с. @]KxwUM$ rR1^L%=^JoЮWKcKS|{+@JTלPs~T* OZ['B$Zy5G q|cazI$ ]/{4;RdE";485ʈWʣ2?Y y໓*m1}1lӵ[ Je)[dU"@ {7ml5Di[\sc<\hL1x+;>N-Y#]L!oT! ܑ\$I\TK/"AWfڃNΖ9eq ob6.c5ܒעu)׽{JPKikN1ê + "nuvola/48x48/actions/decrypted.pngUT bnAQPQux -VyXS>YHX$I (*as $a b@hP  ,"Һ\B]H P*+aD B;<<3ͼ;q#L14 i_!  NO"69-)JLˈ;*X "~(.IKpH&OÃY3`T[v':raDqH.DZ#5e>> 3:Fa^; ]x*4lҶ׷ jr@Rv^?ch4^t³2JdHHH|Pt9g}f_zo G(/ϴ ͤֆ[glwPqqrAK!ۦ|U!9;(IiZa~"t)ȨLx,]N`{qKŰ 26wٞ}6g8ї`JJ Ha3W h\lOOO|glzC;2\]2w+j%iRL1RCz__72`@ș!PիooMCUDZCR.H ~˧2(|DD դ*68K3k|&aޝ?<KK [>CƖ "n lxǏ[:f(3 _XS_TAM߄8gl33P>1. #zS}t28q{sh:k+U3g$ʽ kpf abФXlxw UϟXL\tػv!0`9C^O[ѯXZ3PӞIÃWyz/|×QlgVTT87Gz釶բHxx …Mj RjC Ŝ3)˺E Oy܁Io$s96@Y!CdoFaݙp1֐Y@{x!.+.Qʠ3$9$+4~R/CU%Vsu!4՗.UT%83=Ȳɍ;&Quc~#| |Ǜc'maab16!ŒgaIrx@N GGG5wI)`FFݭJ/y Zfxf鍎W~m;϶Z*0qX:hYpߔ2KԞtU&Nx}Y{rY]]NB^ϊ~Rmr,!.m|(RP؅@Ѡl`F:߹EĔƇ/ò8R2 yǫэ.أ \}#8D!?ϥ~8G0P,&$wjBzݙ.nU&`gEG'eH*+a{i3 M#f^ja/ ?su*< jRR)tcLݤ2I\.nh(\W+C)c)(VŅԘo4="Z64o5<{b*4*kk;c{=38c]&}3bb s BoZHGKZCBM=ib EmWO\Xs/DQn'E Qw7imWabҿ1ԗcjimb噂[S1W9j"T1HAkm\qgl_R74О,.:{&ʤRӣ=r9z劳! -Us_ Zh`d  iYk HъUpE b%iйKVX8v9{MM?'@R DAb:]]T‹8m,KW`6' fy]o ` ?dC9*0KJ8#a&~D{$|m^?HW)" $h1 X Tѳ)OwiajDiVRp+WuႴ(F'OȖ3l bs *iƝM' ',D`]Ϩ305%^xjU M@?l~J;8(jNj=(۵CKEI :v$U>nӍvmiQtߏN"Lݠi/cW3c.K̽D^Sbxny%>EEfAdh&42wbH&*6&i(ɄTY 7/ "k3s%ՎU#7 ؈I@-Ee*gm3YBy}V ,f՞0S>2?p%/ s)|LoҬr}+d%cwuUgh>Duc _Hh%RṼW +0+OYN| v>ޚ!2dqOTqh,Z'VB+f ڱ)'ji U{)?w& UCMd^!)lk;;uƍw0l}[c!#K[=sy+ї>.lD)߻7[2~4Zc\Mrzp)Skva6Wv)̙[.n>xG) oF"k\Zk t SZ$LJܑό30"tA!D}"qVb\ ,,|mA:1 ^qp~:n=0I`zL\=V9IGe Ycd]V'X|yCRsƀ8aUE .#awc-Wc{ ˇ- iu>,AYuz;k+V ]pdZ~ Blw6>Z2 Śdz6iOR .%. 7EIbqg۱dhM"REq]m5yQ>'XE;]Θ#cǠj5/+`9Ho`4r\MO T>mKR*D[buXN5ŚWmtKQ N6`\D5ۙ}K%bS5JE@u|Tmf "l~KGho\HG\RE}bNcȘ,=q7\}~m~4)]re5 &UdO|2WpO?/lΕCX0{Wqvd ; 1#9V> FAaJނ|Lkm|؜L$+_Vz qչ%Z^xH *P].%j|#0y: ohd+eDA95Pm"Z*j<93Q{ۨj3Z8CiP01qr6+>bX<{V;aPV'[\~řKRFiM5-z7%ۧ%s%/yI:={珿$W8'qQL+mDkhG$O.Xw4ӏ`͞I]pcL[US颚ͧIU"FN e?1b7-RP7+@hO*O+2KeW…z3›>JMl3 HV/AP:3>tgԜI)KxBB8$?I a}yFfb@OG1|`fkEg}{!Bo4LN] _45*yC]`e nf(R>}$[YmPY,P\gyס}Gvvi~lnx_I?`ւO~Ne83/} 1F;!55Пt;!~/Vd5-3N@)}olT܃Rk5Mkys)@2P&qgʼng%-}{W>ob&?$ĂVcF#ss>OU%16OF# hķ׈4aA㐤kk|msV|@M <ֵG٫ Y9W=}&:S>䥌XJY  M*mL8V\mB(S(!UBk ޼.I:l9R.B&S #"wpɯ( B#E~O;} >tl^ is3f]a] ﶺw30'lM+vLm2mAZ νLEZt <`4vx5Z3HC1MA.U;h9,{Ʉ%v]VB :tX9x݇C ~pӤWQvbbvQ;6H5r# g4BVe/rG4CqxY8&y4AplNO:qLCB|͢TcJzl~_z,vJˈ*,.ö<|"ﯥ{GšIcr_g\g%2Co}Md2ڛ IQ~xpcW!033܅=R@D*ˬ}VPhs}y^ܬ<OxgFΒI?Tt>)|M-3 s8r m蒻n=;_ue+^K#f-r{$י@OIN02&hUF[^j~'nށ}S\-&-1V~кHBAu_ .7-N2+3!:_%~ at/Fʳj㑹gn"Bzfӑ; ␶w@Sey~e&]cFpcF+*0'*U >gmfsܺt1H߳RXKoͥ 7<lUPiCƩf"ּ~{{_CobCLc4GӯR@Z^`ثg\+5ӽԭ!jڴe+Xt&q󖍳ZBwҸ5ጹTg4,f#n\qEH780UnRfKht?Չ"sY.-+#iۧëk3É;0]a'R y%0(oy+1kPKkN1$ 0 !nuvola/48x48/actions/edit_add.pngUT `cnAUPQux UV{XU EK@9.ARZ(Q:䒐mN1n\5e_[ME֖_uf7To?ws~<\āfǎ2Z:Rh4&X,gZ6 iB8>2_\ uM)\;28iz{MpD<< iczg0ub 폘Ŗx][Yv{!x2 Q4?JTIsB-;H9!Eo좏"" e,+ lefdN99c{1԰l"n!px_@U[w3ܬ_4;R׹t"%6ǀw0` koʟ\)Sg`RP, ˈ#s/C2+RNG9f|EɼRR7ImMmaN@}v6m5FPP*dndnti7|!iI]y[:]iŦ\=P؍ZaK<4﫱mݠ @64Xz pwLEZp`]-Eyxerު.w BHQ~k%K "rVT^QO< ] pOBԧgK6zps2oruoDN,4!sy~E0^gHxIevAg=>NȽvЕTO}Sw` %M,4J!}zͭ\A0l5k+2檄qQvZ;,IbkxD$ G8DЭb-l,r;s[,i}?$uU62o1T-Ju?_ƺzՅ͝i+K G%dP-| *mRQb] $?e3 K4PW oa]PD LՇ.6[؎ڹy(3d߉ytוS5y<?[#@awM{>ю`Uҋo9@!OXD1JZMhͩhk7ڑq yFܹb匙#u\ĉՕ)[ 8`hA-&uƘȺMIrR1vOm^ RulWu< sޅv0TOޤxpiLvg$:`7"G+A ^٧SXˋ;P`vlwkx.SZװ8.9u'='q曌&dv:ˎfc{1 \\{iR ݤμgD|yY"5`dhu=&^_q1<@ȞxyPKkN1gkr-$nuvola/48x48/actions/edit_remove.pngUT \cnAUPQux  sb``p  $Ù~)tG_G'Y^%%i%E )I A)'Smz<]C*n%p+ MlyxČ=3+zxߞYc~Cyel?s\.M~VB41Z Rnd7T-g8i= >AӧC#cll?̷<%R 驊SgR%];~13(67jg806$1I^x#!$[Qu _9]gT|[S{OI\aMNz ,qHWJ0; N%qNp"B2bfBLֶ5V3r(0(019"MhenIKJiȇG#gp 0'7lksғ7lʪ}Iow=ưKce ?~s?~0%8l2xp /]6g 380V0^^߿ߧ8%sonytr 'R%ZE.s 7%kg4Nl\YI%7|4ueߞ1*rqĦHSʗ+Tvt9(s̑3 2ohu£&]`o2gqG}K;)îzr~&剚$5aÃyϤg1FL02A(u)ۍ7/?|" kNm )zT6K\ؽhEx#_7VgpX ~wvn+fbE,u"a^Ő_?vZ-`Tb@u8rlAr@A<Ȥce`)O< `` F六Gh1 @,(rJXCbG8 u0GC(d‡6B K\ZCk h́h=@PZC?jf1DH!WH XJ%x@ XN6H9MπT:g b8Cr&T3B'lebd@,$d  ه ,K& zdE9@1lBX?ђ/ HHd6n  8KH1D(+Õb Xqd+PE#J |rw1CZa>CȖ# _  z ĈF33buè4#Zc) dCaQ3?bYFyd%cZD@`aai<[3rR{`#e^\(4F e!-1bLȹ €=1uF]O$1W0#( T ̨̰Zu d?DYτ`:#733VF0aEFt$ߋ}@l[ϝ<2AA a|c#B٫7 Onc4fh(1K]gbbbx $@nZÂwQj_~4А@ yGTOIENDB`PKt91KzR W nuvola/48x48/actions/editcut.pngUT gUATPQux Wy8?3c1dRFD"Fd{S QeEK){Օ[qYf0T/)˕m0f~y<{>JPTn>2KdAr`x$fO~b'GcB¨0IP`8;&~ KML9jn5\)t97w"+W BxT0!ӳ}vhbXS?eov8spq =6:x/~Jl:ȁuǻ}oơ&$,u 0sM ++ܰ޸iP'4""#u|buL X: E`N(/zcblu}k+W_&!Tٌ̛ANA~CT<Śtٱ (ܽ?sF n8Y$lu4B|Ouuc\\\Î.T~zJ'Jwhr~j+,WH+EիWrF<bvI^kJɰͼ̸KOY1;Vq`,9`)yJZ6է^GAQg? {bOvy2Q3\{|ȏt[Ne14I!>s.{gC-ю*qeIf1T6tp&`ngfl2K!]hݛ8m1jt.>-8DGWX!}#QRn쌴"cI xjE.e|K3!c8" fPˊeڿ(AH3/R봿2yUC1z©Ts_Tm}ܸ-қ7ip|:m絢kbd%dIɀ%A1FLD310 4ŀ+CMY&ַEb{qq rZ)3ݔGN&/枸ySQsy.)Ę; N7`s{-4b_gy?23.ge;b67Y~%bzanMΗQ̯i!@a[?jsمp\<@_#-Xt}":skX|ON?>v-X>u[EECigv+aIk^E|BIλwTKK9}{RgF*QQ/8'/C|YBW*#Cbפ~dJrn:Rvh )*5]}jE''MB!䐬z=QL>zԃ%͍Aӣ*3:DZzzORl4޵4J ŭZA[hFxw5FYlzwc+@aL-:(- w9OENW[W'RJ%ʇa}ΤkəDJt hƻ1d{~%U{#֖6Vq>=0*=(R67=ޟ2'f={OGJD'J+Yt12⬻?GPK& kREjtCbzY~ ZSSBC'(T.{IJ6?0 %KVSVǽX/5h]G]dj'-y+-+}mU yKAHCHHq VŐ%=2U6eݛ4kUiHe;m1[Ɍ},sCD@^tH1Xp25)ek!_ *(\OL3,цge$4 v_D5b*)l5wx ^KQ?;v穱ՄO^g@t[[(CR}EMڑQYT:{al7|CDa歇[-$>$q`K]? se K&+t+(gfq]$R-L鹿3}X՚IivNrh"[!FK;hDZlabT8~FזKK譗M2qE>}'Ez0l|a>!0χ3"ȭ<IPz-.tCMo1AO|,i][mib:ԋ9]t\2 dA QxY 6S]3Qի9`Nf< r3$/75!3GL<`:k1 ¥K΁{F1&ˇ|Y_{(5t&:S$Cȴ'*/gz+!rGfO⩄o~R=5>"^#C4lmG{BKqfO{=9"/#HCK]bdd[,oU@>< J+ +󼚝rU< Dy|~?~ә֭@OI+Q󩪀n6O7!ޝ CB^~!IB]`Ր= m"&@tt:4@3I@h8=1VΆbUe;*5R<Qz#dKT)D.+=R7=Qf5T.إ9aƋL.n?_hӺ½UM\i)Ga8!jBؘфޭII렪ua$8q -yoAT>.s|>G6/]ˈ1ݎUݨ"7Yddf&xY[+mzIc FDOxcCG$i\8b|O'##X Ey[Mn0~\0%l=-s?;۟?Bߍ/vj, J[:!!QK4F)2gB10L_Pd ` 1y0 ~?A 8"O -*oB5QvJ 9 TP ZN[Ys!)Ď@r*!'{[7 OvL&G\ʭmRۺۓΥ/W5y |ǭgxnGkhgO g$b %:;/BsivŜ<1:TusјXIsXk+?4pk^tw'< d#wkkMݯB:$[IA0MMvFס0HM<.%=f)u7py(X}T'YSM*OoÞFQ6M|-"]^bC&|#s_@-éӫ|Pg g>H7&Aef_ Y\/}q4 89 g> ۢm]ȍA/_#Am0D#pzXLP'T! xK zcP51:r(A4l:w+[-r;Jݔ|-J%b;f0:E5ndY *^`TKj??eÜ0͕eMH@l +W%antGUA&#[͛e\CVW(J%^CȎ.svS>'e}85RIIλ5W@c.Aa@za!9P)=JD (a L&i"7LǢ((f}ssݕ١A`UD.޹ϷU6܀5PoZ[$p֍.p+RFUxHkjavXXШ=/`@%&i7RMלZLQ[,p >"egy,b4:0})ۈܓkSO\'MU wi05T|<%أ ށjg̬Mk{ԭG‘]ꃙ谰:W~ ohl,&CI玟=#MT^0KYa DXԳr^O0qym)r K:U%D!r[ u>T:&{0UXdݨumҰSLX+^|1۪t) ZAy5 8][9ר'p0]ogR2c>ེy گb\25Q}@WntHlF>S"зR٩z^B;WOT1'H15'deuN7f[5 aexʖ cnv ETF̦jդq x0̳>1!K(1Y =\ғF+7 Zm68|}* ?' NdA"՛T^xPM8x.i/ksཌq9b%f!]IEbAGXVpYkɖ1~ϹBqرDf{8&QffUX֭RSvnqP@έYçt nUܥNk{Wu耜8w}Đת7}^]SO`kZvit~Z޴<(>>H[Rf [v w-pBIUPoLn^`'PKRkN1 "nuvola/48x48/actions/editpaste.pngUT lbnAQPQux {TR/\D LG/u(9Yo4,KkŨ++'ɫ& -cXY`ɔ5e6=R&;㜽Zggwbn\\"Tv`%L5?aq>Fmq1zkɡ.I<Wr%afBn.+.49qER!Θ5@TËJa45޼+Y#&""nTwit%s& Uێ}o.c/Yb*@*|0Bi~pIޝwjkVypI\*v裪wG7}Kx22s7&m%`.ټx3b0 $lY|QIIވy :gWjbڿԀ^]gnZ{Rg c[&iZpL*1247/|eYIMi<2ɸScs lbfJ\ʎGg'Ȃ!Һ!s y:ʖ[CL$"H%Ss엾MTBr]R-9eBm} Txr1 {fާ[5aU m5c[G_QyJDm:r8h-اL~Y=A} 8:B"8_Mt~XEG4$=0>5la< ʯL0ɿ !Ɗw4'䤈R ^k,iABnc1ut׆j<|no>?;6ieNsIgv0T&B~ ֤?v 8^+9"3>= s$, f| b6WH ӄ~t}aFhW W\]@LzdNc~p8h5DԽ֚C,*ͱ 6lp)0b*>Q=(tQquojos mT=`ꖬg]-;ۖu431{b4'] h7G͢=`Cdy1@!찈0$.iQKtowEأi>{IRJ) ɯ?eAu?Dpi"ڜѾ$g'npVЍD!{8Я+JpLb^ RJ^?H=ɒN־lEDkODf *1=/ƒOq1V`B/7KC*IؑTn& '{bxզO]Q?ZU$kjN 5VEqxT'V?(XTʥ[|-se(+giwZo!wZ +fa﹕\FP4X.PWߟWN3;zC1ƟF:L-jqH6lLmAtgG6SkWb SGd1oD{x9o(Ql)LXEW|O+S6bv=+z-pH32XĮ̏'C#Z٭ rN@¸}yd{En {Z v9NJ^ehmw)=W?R^o*,{.VEc3P?E V%s^Tq rl X?T]z1Y ~8vھpsg´@h[}%uRlS0pG>r*E7EQPHN^hB 48pL4%qu[^*t=#_ϊ?r0A^bxG$ Ye$VSK ̳`&a% \ .YgD/IC:d- HO$z=КoT[6a۷/pW){&3uE:\xm|:^/"3 b4nAԫh!GYJQÏ_ ^2Ck(7&30!f&%I~z_̊4 }nNVnEiOnyrjXl1 '2̝o'.It"=hܮQ)ϑɭXശlkMj7H.gY*6y%Hv-Ƿ௽ELK%P ٌ@Q=θx !\~\m "BK})Χ6:|~(F%@ɍX(uoA}ϩuP/}Vm}$ …YWaT\? aALڄv+m={ #%PKZN1S|"nuvola/48x48/actions/editshred.pngUT \nATPQux 5UiX $@%T,0*(@@h,+/,AX H-.hQԋPQ@ 2Ͻ?fygyGniAּh2̃CR`S؛t]hQ>)919[ӓs%d !vR@HIHF dB~1zSPA![V B?T,%alja|`2տ=#zzEd'WmY*[("gvZkz)6l|ͪMIC,Jv؀q ] P,;Y<蹅Qb]aauŴ+(` g!U`N_Tޥq/|d\UiK{c>c*8 V ʐvϪvcAJ] IP @I/浓ȭOf:jr^cj$w Y_֢*Yz]TBBn$RIm&oA/]|7a-0YYjЖysC,kg6]lsC nLO`k/$H~2g&K_hcc"S!95_9-D~8-@0נc]S|w{CtryZ__:Dz'fSmoFhXc0覼j@_E%}CEiGDMO LDD0˱yƹ=7H@wVWRY5(;Mo\9]yw1D=Cp9ձi;CߑAe6Sͩ' ] Vsͻg(T!c/ucsަ#+Wb,dߚ裓Eeɘb՝ 0R'İ g0g =|OW5_RDKupXKqvjVJGe=ʚ!?-У՗UJ S&~ 9}Zl냼;~$BS#')zp]24]bDOQSvb)w&\tK|| @|e]͔  poR1stSjtgݭ,ZpKd@7a#5ג1=s3OJfOLICK)9 9/[W0Z7Ww˗$Cx}a|Iz[]A+}`hoIs\TV#|Xᝐ^.ƕ][kܥ-:sDxF[Ycgf#l|5e持Atjk3.p4}ӓS밉\"F 8N4=KE"3v%PtM_]t29Bln;ŧ/0oƫyϤc7/O)行kj&la㻶mR@\%ςƺ_b aI”Ms6 ޢ ϽgjO 9.Б;X'R-ԾTɷ2J¹5/Uɲ*M>.LI'Yj3Uc_V)z]{l񾎧pq=fB5 ɳ9U|W"?ytN̹dioy~oLJVReI mFrqPKiN1rcdf "nuvola/48x48/actions/edittrash.pngUT vnARPQux UViTS!$a0z A0h @"Bbm!EAH.C J+(TTc'<# kU*R(}뭷q笳^go{s7ؙ`E/_Qo7?ٛK8VZ(.w(ShSpM S0֬D1"SPX/{jDxX<)H/8ƪ#(VQ `F\vH?ak$$Wv%P ɛv*LE\+Mu[z#تػ/g>7"Bn98Gޚkń.{Sv˕~>'iYR"d)~m`\)ET~Hd00gc(7Yc6&9:}^;郎xHd~F7*pLXO#E߯t-C79bp6ʄz/F0[| 1~coK'7A* u VyJ,RG_pBXSMGC8mK=]x30KWZQZ;}$]L R9D9d){{.ВĆ%gGY3S;G8Ә` 'PXwG||6ڡj݉tҝ8=c" ?Ĭ7Qqeo$ׄSM}#%ÞxXǡx6Iwf؎HG4srK7I6/#Dbdbh,BLqnl|zr'_/ L5Xnĉڱ ?O9O=RС$n˹?k :ۣ0$[K&sgU_ RKTbgH9Yٲ=*o/j}խ#KG/c(d',m&2a2j8QgFf+lüқ=- 0gFwҪȚ @TO0$ŒID4ak*ˎJ$Fct{5eL3<?ǬiKaMU Ax~˿ دM,/W͠ sk*s:GM jɃPZ_a4&'PxN8HAҤZZ]C T,W' z9Q32RZ[Y6wjk{hwӮ^PO2Mf䛁5&C7Ak3.M 4=[!y_:X?l9p:/-r܉=е?W񼛮(dr2 I=兲VO,U'1̌|QYYYK Q>˃7u.d:ou ,Y\0..W"?X*L~dXQmOWV_pl n&ei Ȼ (ٿܬϥUHNbwn û~Fi\9 r6!z C;X7:P4%Qlq}-XZ&Amy`xS~AO"W_ ) &z䟚5U6 a|w7wȱ48-/X/şrօUeFVeK6dҲ>Ȑfmj@b9 ؈r#Z2qY%Rv_TzCJ$ȩ9(.2jԥ$Sӑ?70:{++Y"(*F u16Ccv: qsgD>OC$P3A",t<ϟP0`C[5D(amۓ$_+UCeӉS[%źͪC!둚+1 􈎂ChA@ (Aq_l zkIi(2/ǐ9PƟrs+Ȧ %]'X4\!/ V8b>:тKR9z?wRcdX[aio$(lx"g"/krWxґ55RM}ARqmx khtRVrXo%0YE!xÚ2@#xu_*X-T&>I܍^,068 ʍ3HvU.Yɖea8M\97zaF|5 'Aq !pX9pS NaGzՓpᴉ qWzFP9rc%̖$ex[2P"zt,|H-i Ж/sl uO_=WMRI,]wvr_q)focvXM|!Jtb!Ku> "ouF+)G](\릢yZbŮK,WLX@ @{jyمo%pMW/# ûʂY6Cs|2ӝ'/k's6K[p_a7>t) XBkmd"79V]?ĉN#?_;O,Z[[<>a6r s >ڄ5ﴨˠC|xr`n}G_zΠըQ`'f C6]<mNp긠\8?PKbkN1KO b "nuvola/48x48/actions/encrypted.pngUT bnAUPQux 5WmXRްH( j V4iWhɜR@E15Ѵӗ̦b+αI1~&_X֟Z뾟뾟U=hs]xyA/ &-nk-N}0)c3KKbb/ԖV;\&+ZFn⛎}  KwݑU4A5kKE>bG$*pu\R9m|rn^<Κ%,-=}tbhD<*`CwKK!-{9drt6*n=~tKVuWiҪ>!4ҡjm lu 9R&_`iN#H$5_f+wRW0<%%(nr鷊^?:)PCa=貛57t]5@LFbM<( 8 g]3$'ϫ4`M'2+=<3J `o[NL{`K2"dX׊K ঵OssOZ"p/UV&?GYS?^.it zH Qtu 5)BFyP=DKX ߂>hX.}oKM4 &:EЛNjr>z1V 6CҋڈrJ^r^s8Q Π7x۲^azۑ̭3mtNSl(y2 5П/bhBw7))hnvܟKЩVUb58ퟆ{)}k]>K7.ӋUN*v ;ɳX򅠮`=r643QurlB7Ǩ7gQo F5}zB/&)$Iߓ pv`T&}"y$"FZ>$GV90F"㺼\t?~elpVaEx+-^.xeǿV-zEA O˝$;ԉKZ&JF xfF.+F+}KMdTЮ,MY;K2fF]ƓρBYÓݸ&$m\(*zخ]ʃτjߋɦvg{#ۥj2ib1e| 0`lpGԘq!~hFd{-IN_c"X<|x/yѱFF`ުwvӪ}ƻn_.%} }pV~;oV8x"*|?ge;+5y|:29fcc;} H>rF\^)Yf3I?!->O s\齜'._ĭבaGL{w.͈c:_h15eZ`~?4$ t{t©@5bP<7iή`OfY 9_g*h|gBߌ"3"`VD>r3ĢӃѮ- 9|ӎ` Uh3v-OB`92~&n ίQf( 4u_$M^zLIOg erѭCQ$wud$!i:R!"rǾq~DTɗRpYFYϫ?GVlkU&3 ͯv3}T&5}wbm[/fߟJ!=LzUՉM#;$w1"xzF[ <7಩zan%R$L8S|`Xf]HA|'#B'lcg%݌-h^oɬ+*prx$,PPTYDw@r\h]FN*Ɵ1Р EqL95fл$$HgoP6{I0ovIpjAe<)cgyNb=lzPOVH 왟S=?A:/)xe\dG"9vJups;`pƒ=MĪcijw+ßer}fLy[5x0IJ3x{Z(qIJ Q/!v`-9 8 fTS K"n*;1FpfH,}UέCvV{ U"+dB)dˋKd ,#oav+:vnS3~~iDi^JӵhWL;1faW [F佐>צ޿2 KVIAkD&˯=Ld/\h{fS`綒QS͹*JfJ Ocq& O@Gt< '׿N<\IW32j[i%ő'34>[2DM+{sا,b ݿN4|{zK~Z ,8N{$2 M4O '2k[s~Ҩ5A. Y>󸥤_՚ 0@0d@|rI"6o?PKmN1[| ' nuvola/48x48/actions/endturn.pngUT fnASPQux uV{qu?\A[`'~9 E.Ty9!~oX|HLtY6NJdfrl&b37>] h޳ 0G}_w-OI;gy$Ԭ sGǣMeek[b[|r?dx]BcRR˹ ă} S ݌5Gj5;w<̤>>a \/ 6]\kp_1N}a-Sii#`|ۆQ @$^]( ޾ElhƧ! , z^{tmR5o$T~9xfw$8|4HT \I.M(< <#M56&@ofXr).Bڂ XN |B>pOL9 _!VS&L`UL=ܪ+ہ ]Śrw<'lp҇@rIȰC0*e&‚3$o\~g:Kwb@0RqP#LX+mʿН]5ʓbJ: HRF*M|[ ]}>F\6qD(ʕLFGY%$@7HkXn'qGfiǮRF$/=}&, S8g U:zT`főai6y?oRB0036-Ohk\ΕJ8JGx=C%H\Ut(y }BuۘW!h i-P?~EU(ʱ( ~!?'q%柜&Dw KZtfpZhų3NN(*U=Is6e{,K 5HC%>:0bdA\6T-%p㞆:M?nvfȞO*mh2ȷ|RRUkS=U7sUKDŽCR K3/t݈o$.R"`BpM=3^ah'Fǯ`*$Rf|k{m KJ*0qvt̍PYUhbEO44j ё#܂K"u/-1^=TxwO;`8ɶ y0ĹBmOb2@zY9D*2@x܇K`s WHޡof^qcO40%x8誛\Jyk5j7x[R/llfp*F8tPpF`~(ףި9g\j[ͪ ų%riN.)LRۗNijA? A{ϝ70QBŝ)_ T=bCP##!B|,Џp DT*tʾDmlP<9)FhgژTb0cC";߰ǀ\^<ByA3Xe1L!(G.88`#ToaQkT8?+VW-x_SzPFFӞWpïY@ZeI'!T}n% w aII@@q 0ܟb錤a-l3sه(9`DO4|X< ͂ ;} %jX8P -se;pT}T)"vvMc]nځ^;-xP@'kbz0k{ 4#Ep%/4Vv@n΢VQkҝ5~#/SԣZey*¨]F(_b&{ZA2mL^+fm72mCج~ߡ ^+:})1'5SZ}yNA},CbTTHsr/w]Ht&ӆTչHԢƹuN;0)9 ?rn@:L⭡"[g E/, 3yyxMܞQQ 6W^A"JwpfN#jiSB%2*J@%2*;G"P#}=ܸаT_=:-Ѝ#C>AWaJ3n.b ޖ*"ٹұc */OTF܌,yO\pa {#L9ANuKՓ]2ՕܓaY%m(r6NY,AM9jP|lK|7e+){ 2'v=)x*t8{CH7)uB -ow<e%gN{.䢋sr OMz:D:J+2No h0L!U !y ak"=-+_Xc#qϱˀ obw懪K-ό6t~֜DՌž$1X3!{6+fL r::2n -a易rgT؄3x ڀ,׌el=D0_g3-+/-| VlO9iYKnw5Fal:|G giJ<ܮǭ=i:77_FcrxA0r7]&tQpm>2}+eC`kaݏEI5UnsH_5;C$  x! Jl\q-[0L=#Q2Q"H';{A^um&[$*% UG,/dVXpڥc s:KiifHs͘eyK/Z`,ңn9 ߭\r?߫,$zݸIl|֧er>=E|[i%sU5&xմjbS0: -}f{tiNX@U#W0)kW~Z= c%i56yʇwlMW5Sj}ӌxaS{F3,/ܷ"-Ɲm׬Z%r=/s5b1Bd/?'WR_D9fލj+C'{494+cŗUt6~9_c/CwNew-QmuLyX's+ۀXjjF !'}FCOՂ(a*NAo_,z03.U,˗EYSZKW*i礏NÃ3"aUjMuZE6 7s٧̲Ϩ &Z{j8}V"u܄\߈"ao\P%^#zƱ2$ѧ#4?T:~fDR ?]dR~3$@TE0>?=p!>V-{y9t&!;'7k7bzVf.9B{q*!1-_A#Wppp&@Rbc36 ,jx(ԯa ݲP? `QrHrL>$n[<ݕ6ko#Wз>O*"5%J<|4m->ʥb> PEA))i,1Z֘ʓW WиT"k@SXB~SَApo ʺq"'92΁bMT65U~<\-Mos1w=1I;iN)lF0LX|:AzrzHI9C7<),b,䷞ʉMGq<\/|nTZ280MEǁ5>;3B7WxO T*)lEmwk)qݱN 6*>[[SLxSۗJWj+O{윸uFSҏ '\޺@N+#g,"hc7G]f]Ծt[<>RjjN#gF} ־ Lj?_dje-G}?p]"ĉq6;Xٍ}KnKe~ cN{]i{fT䄪ߺn⑑팶8ɚWL͵5c+ mߵtzjYʅ1˿STKY?UlLo*:FMjl'PKpN1S:"nuvola/48x48/actions/fileclose.pngUT fjnASPQux -Wi@R>p@9eULMHlz\%KSr(4E-36x4{V5n134ҒJͩy~Z{[kew{h,[ m^C}/z>]u`BXXp{zHSc 9#Atϣ!A^AǚӝTJeԢF< Y666W5m4 _+R*wPDD`%8HJ 9J{%jXkH2fito)/ ώFeedRTdY|A-5M,U,!SPi!j sd~Fiu sE|eXyHjKG R(} Ip(mފ1̌T+㇐Xc7m \#pJ~W~}^sh]\YQz&apwX ?[RK|߾ЭQ4zGxE81v9,i*֪+A[ [WNc@&Y_ZES 4,:fP.!4Վ=JP$DC:u8>##y6 *SoähIYT:sE~mzm$Ҟ_.Z?%KF]9w'"s.e/d' 7-j t*>#sTgժhNrQsS0&S߂47:L1&6U6G SK\xCrtL _Կ%[!ϑzsW*!p:7C0~Q.< 2@@ZR83'&m]Ε#쐐pkPW14F` #Ysr1-:Yy6ϋGBs W4,Rm̌C;}*:Lc86چb=L< `''H:.1wVsouK_Pa.|fsqQ蜶e%~Ɖݵ I7L0. NNΚ|T`BݒELVaMلyR^QXHah4~mdxdaA ۼx.,GgƱV7A;vp(?@/kVg/Cin_U`3s%NJDClqK XԔM)ƿ$_Oq##$ڔyj<(Y~ M$,)] b:@":/JZ$Wnw8:)>/̿$pAA͕3!L;Hzt:6Fyfzb\il.ύk4EN]Fb]<^/Xq`߾}3[PT=F\' ͱKp[;;aۇa ?P_[iVNvQʣ'_w9R>1ijQ<`q£RDWE>&t볟 -SM{ }#gRsܱcRs'hD4gy]"9lY7?}Ne 挸< py,FjɳBIGW] `Ũ/"M™ BS 3eG KDHvvj[~3-8&QG/Tլ&[*J{q׭zLA?85{r3NEQ&+dQqFcܳgÇ*c8 L-ʙK4YK=NԱ–I4yu *l-rujw+3Xg5*g# +oZjcD>&ivuvM,-LS4HѢD[Id_@Np'S"I+شx*UV0BҏLsd?.E_Jyx\ׄ~~&:?3N{Lkt?*ڨN?kvuu[agƵ*ĵU}UsOo}ݻG5J<am\7ȌOtؔmge]-FؑK1{CķUdtC]9.L/PU SA`d7Zmi7 6 !8zϮ_D(™ Yi(Ҋ >WX!r0g KK^Hʼ,-ժb9;:lf0{3v7ňN#$ s)i*B?+ <~wqۍE5ڐnqT%0j׮]1I!zʏzZuҩM մD6H G|GvQ`^9)9Nwh3;{yt2׽xQo M}&1Ak!gTC$nR_ؙ?dI 0NOQuGA?>oS_r<'52$̰Nyvz=[G߭%yIǹܭ~ޖ@j۷7*)@==kT-G~&,ѝX(Y[geLTlŧ.%n7utELe&E) Ntx󲱏Pk^퉪9L/&a[}*DpQqy*+ɗH+^Ǭ4nŕVՏgpa#hDUE_R]hso Gcrt2[-%l|5uI13l7Tھ(thcʾjt)"n{- ܲfNPKOkN1 5 J #nuvola/48x48/actions/fileexport.pngUT fbnATPQux UVkTS>''@H"P<$T]`>ZTJɁP PR1GEkoj-$!jUPKW=Yk}3msRb|*yk C0Qm@=?Q~hЎyKr,_+U-+xQe=;   d{[kjťNi9W,kwhƮS:cyS w)gA<`:{ulv-ŋ{^-}m}~|e+~޴h 1щqUFܼomxLfuܚ7RPx-IQI)SՎ<1x\1PX}U\5SOAٮ.%=(;{Q78KI^U'iDF N+Q{!&i9?"UBQ҉.zH/u̒:hz( ߤjo*(BqfB'YW!:k70 }a5s[ {}b!2AʖQJ`9Wij[T` "XEmvG\=N؃w.W0Ƅ) G <,cu}VMQv{,,jW=>f68H]pd,etRCRә!!x:\SKϚcvlaZT!qh6u `[\ešrp?P~|Brzkܤ ;f:wLT?wQ :먋0= 9~{۳I^yo݋ c#*!}^3e뾦Cok+S )t+ 6bnS5%W!lL_$_aC?\OkJA()m؀&̱՗ʿYQ&c^'-@Vk3ʑ5+Y7yn@^6F+,D>`}QgO C=cC[iF+!fwR;qYg)?MӒ]=,sg*}mW5S?kJ>NR =kOhg)ÐvW䆧2 ˹Vםg_lz̓*$b.7_&b ^C,a]28hnj.֮S̊70ӟ}KT_6Omm1,AuލL栝 hno[/X~ܹ݅Fz&8%Ttmm%͡VEU#Ta{|aX[a8%{t ZTv=mFIlM&oP뽝6«3?Жmj=#c2kV hxU=VL'Ƨ c]GyFHڕ(Jp{:pg80 U6` YV}_;l(+ ͵?/2?HQ#qi~?r9[=h=wzfgͼqؤS3:C?daFoq`=)Y  x:[=.'|!jHY-XγU%x8V*? ^ُ(ˋ^Ő/OTg*%[/:ߓƍ5HWh,b]p D{^&I+pdj]05q.ɘQʣMQ}33#W`-[GnѨB9V` olZ/"SyPŀ:A? 2gMaLtyZr~ ||Mm( |Y0-z X)!XzʕBj@Ĉ7t/n5N")NMI91.흆$)ngsv|Ճ]SܪDzv9#kVK_Sr:YY*,cTز Qa"1[q^*25K`c M-•O ˂C!],l84ԜCy&+dev6l]ҁȡj}-z']*5*ׄ JIP AO3pG6JuYn!ȉq)wpE0Ii_M QDL>۽`4d:f"UAr%s+dY4ġp.K|y_,7|!HWAxlJ?6 Wt@Q5IOq$D3Bs VFb-ϙ\{76K* XU9Um- ے$~ Pҥ%h si)984P {(.~8Gq `ٴYua#JSg wx\-)Uݷs'iWG@C ZIG|!تPFC3(ŝh}]ӭ'6e@.7MP2F, '0T\ cef0ٌh[~[Ss]ioW*MAT{e 篳!* h.h9_Zp\dϑ22sל.;}J [6 wϮdYֱPؤh]kf'oŌ#c3{G1]v5ΰV\y~|C[A|ʲ3 _g%@vO$J۞3`awqLQh5$;t Wtw-;ӆg'sfdx1:t$Yxeɗ|[>tIl ~++Sc$etfӡB]wKt jHR=E7`KJB%r3ϢzqۺDx$8vX65աX50lG=LNWr%.#5œT+F!yjwe2Ew֟fDEƏӇ@; /0"&g!6J&co 2ibc-Hu9çP1Mp.I&>nv7V {9ڬ=Ɨ-mT Յ"mZpEO7T߃2xB0 =YlD Dehm= $oF-]-G7Qp)fJݶoexb~I*1"d-+HϢyg LҡonFӾldQ5]6G |a>rU Y!䜗P!cc8dŎ MyV53j;[j>N72X[ۃs7r^h]"r^u}ncC}_;a8YMRd% |a0ޱ.8+*\x^(䄗A~GojU_O>Al5x'msnu6r$(HU=%58EYd@|\z };`B o4c 6pwvaW6km퍖Pϑnͫ7޵`g;wc.IgMN|kL,K8ti[Bju㪣kji+/Ĭ,bFC!'sC[lTϞ_u s#"P[>կ_A9`E%b?Գ;Qq4ת&M@1DmO |937XnbXPoGFZ?.0x$KdE9~\Bx*V?GxhVA YVˆV[ȑckUqm1̑!!}hBf^јQh=!^U.{Cp}&S2&U-U DtEWI}~9䞴`~Z}`WZ$ܳmn4Mŝk'@`irv+:`JyzRb9w[txd{|W+ } h Znlޘd)Y@^o1&(&r!%GJXQ$; [7S?PKt91&_- ^ !nuvola/48x48/actions/fileopen.pngUT gUAQPQux eViXS>'!簜D@IB$'@TqCv[DHD1.x-uEmV zE[* ;"E dc7S2jb AU`/H K!ZB>y=kv'N;XŒ4aji\ ks^'_b D#ߑ!8RƖ Zd&r@rfx93[ZWv6ã唆 4>>;mnIEQS\%ҍ $̚gmf*p/ *sw$nx.kIvgrv^qdX}nlI9W{F.9 AV)8T˭aZtLGt9R0N)ۇZŘ|Cɿn$"h9\/wyxzF (% n0=+ ~]xb҈pYN~49? dk\@wD,k@|V:" FPݼ~#&(8hh08>nZ$woME3NLU- Ϭ<f= `ǃi|i1\"+c **~ Gv9lcrGrۮx2*lWfԃ~fFkб݀apa.[^8>,vKipg ?xԌ<w'!s5\RMZ~is8 1XSS>3ȳGRcj2],iP.C֬( R\I;+J1 x9MgŲk[qĦΪVN=b $f8slK46Lp[dEs_~p$I;f.r :ewB:ِ(ycY 388>'~1ziJqV$%z;9_WjJ5 ΔE޵ϩJhNY W*Tُ=R@gMN"/l~v3pKS4B1#f[-24~پy4lܨcj4N囇 !r--}lEHvcLhԡw^t®ٗokY6MUw ĒD𘭍QuHGk;N"Vi~q)Wo͇֨617E_9Ju )j^> {áJW?3VF5kpD*>3ΑTLqܡP9ĖGZjn-.WLRSu™ i P39v\jegJt=21™Ah/Dz}sL iFꐉP<PyGt.M`ܝ8d"YNBP 9[dbxYwg|vȄ1#$[`ݺcs. IOiXm<Y`X/&ڹs}Ƹ7o_DhF|XbvT!G..8LuAFD_{6Щܚf4KT-z.yr 4\4~E"ߜŽy`>fLvO$;./tV%)IhZJRSh")3aTZ4WT)4@F2Aub0A:f߬%ӣ;lh{=kQ*XBK.GVho8q 7t7hOxZGS橡>OQ:^ѣ 2-N7I&.CKk//>eX: ROPpd`|D+ۚr} K!RQƠkI*%P݊љȠq<>vn:_u."%;57#(v`T43"XIY0 ٴǿAYId偦(SKVB cQ-ejք@'rFlçkУ.b,z} jj?ˉ\4{O@0}/>_ WhGQݷDOm2L(^Xv6YbZ,_"?ZIjRN5f6лl " ?fM}+j~X.9tZl60L x^MʳOUnO {vP#~O جe쓌=!^tR'Uz)ㅖXGKqb([I=y°;gΞKs u 7Hۿ^hWhAVlKT<&e6Rsizbg|!ҕQW#PK N1f) ) "nuvola/48x48/actions/fileprint.pngUT  nARPQux PNG  IHDR00WtEXtSoftwareAdobe ImageReadyqe< IDATx՚o\}?gI Eq%*YLKTQ;4.K4A(6m}K@"}p AF E. jHu쪑Ťgr>YZwx9~緜=j"}/=M?2:{v,A ^S!OeyeLJ?կ*Px뭟|2}R gphdXJM>_^-_SLhxy4[{ΑCx9?Ϧlݰ1)|Ǐ;u4tB8pNZCӇx7Y.z )]07[g׸u/_beez7ߕRCF-cMNNto /,gvvaB2d =%ٳr5Y3B‰'֢C֭.^ٳP_Av.$0>5::7Ɵ1?,0#IZxA)ѰwwVH8sJ@7](Rx#Ԓū)%R-gz?qw(x,,~y]Òh%dCIvA?:OVj')gSk H) "P'###9#MvJ!z4:́q bgA1~hZ"RvJ\cуᇙ=pŧu?MNNC}p4 &X4_yޓZf<'YՋD$N||7՚yVssX\xsvaffBD$do-K5hun:"UMa5J 4)e;LDH%+P9Es(%Bω&4&S78,ѐ#$ ^es W&>)aKjqbW`(B0 αo|{0Β9 !! Mz=VkϏ$!BA*2$1fGIp<5dqcڪĶs!YJ1 Zn٘( \*LӊV-'RR (lHE:TwN>ڄ@!m\Oo%s.b7 p|an~d1ϓWzA@7pάt !UE7n|g) XkI{Ig*A&Mirh h"B*Ƙ.)'F)sƝR(`aa39]v =CC8gÑMMz~K@)QRJ X)EQZC!'~4Mg!Qq9~`BaDZ2RRQ;w yfӳw4Vnp)cwIt>\=>1{G8̣h  !ƈ6I$Z 4+.&ٳ_=֪? |t{uA6uΡfff3gD8q8N1ơuҕ+RS0)%JxB\:D^|eڇ֪}QH)BKyy0Zߝ+ɵ#tIbE!ZkƘI)]@g^aqqJF"I2׫ܺu#Gګucu|sisj} ePTܸq_.\ߢ(z?fz!7~7{;wZ(w q.,;vbd"YfN.pgߛM =z=f||'kGQl6okJR8zU؊Bi|[~zûWrЮNhhgzyjѣ[K.!Z%!D*"|ȷemTJA Si.8HIaIENDB`PK[kN1=Z'nuvola/48x48/actions/filequickprint.pngUT ~bnAQPQux W{<0r(FIA҉ CO}RQ2 YTN*ux:䐉a,&~w^}u~_ ۢl[}6XŸjνpE #QuiHsn{~PãCG2v2`u50kZMZ7%Y$ujvN6 Cp@,_C#`V &SMu\M #GQl,DբzWտZQekMj:eq3CΈ>5I71"hs_Jim!Ǡz c03as%yz6'W;BBZ$n**%.A+h>W?yK&4vq  k䐞mGdYGJaS 4pO?7 cVG߫![)PrHD⭼&EArn<~-JI=hjA,S8zB=Zz&_Ύ캇) ?a*;QWzSnW<-#欨-ٌWΘ ?Ӕc^=O6LVūz V2ac` HtmxI,<Ҋk"7sjhcZgODz*o~D JlXCcg0'\r,cϑg"q»05SLt>`/~*7U ꞡPGϻLy(Jgǣ)#!`ܘKu;UeQR>x5FG#pA/1xJ ly 7j\+l @StL m6RǯtOɖOgI݃i}H@t_{U,mjoj 7i@NNi%mr4M~jpoEy{n&{LvQ7kd]!vud|gSx`xV;-,"3KYGw_mCƿq|(0s3m$%Z1Z@L@G#h9tZO;w.ć1ժi},mv߾}~qi7)iԼPYIwXviqqU xGG=}:q3!o-=\>!vԧ4j Wpu} A활%D߃[cHcM?ޞ;͌efd7|:IVon,AnxcؤJQ#v-`fէO|x0b/9Ih&ccfB!smdhh@8^m}p;? xJt5Di;̲V]̌L쾜?ϴBGT n’ *4uñsX9;77 "0_YRƚ"=zn]yķE%dٸS1˜(3I`4(u{ ɨfUD6HMg"p[[Wp{ p3W7lK!\UCiy۩W-Jj|g}s^ÉӪ*vZRѴ{*O,0f3=mWRD 'w}t:sh#$N"R!lT.5t>l]òژ /,7TIࠩ5w"OJUvIT+j:}Ic!ùxKxx=:de4IGxјru9UŖňVQ>aw-B_ոw>~R̔64A+{JP5lmLm Y@]L=0#,47J)@`}1+!&˦}0drVv0 8*1t dC5|/,"sG6!{K[CCB*B w/AcU] F>$-BjmD(Ycm* Ԛ́0n['8zU 4^%C<$}YĊ}ӘA-c^f*/tM}ok+gC@u E[o^(/5z#pÝ; jtc`\h0X#+,힗MsI1^ B}*ஒ Ɛb+NEӋp.5k?c :a߅PԐa(8MGsj2p!{gh(`cpg Τ7)WËFŵngɬFmk{dAEUj.F(epmnڜS_$ɞ" ]K&r7&M9n?RFゅ pzРUvS8nss+ugsȢH TV?|mOq\H!>Jt5Ns Pʼ .. V`d[㐰BM#7 M1#!QRa7v8K^j`x0O=Mls'Ɛ*}$PtUe_DcD} Q1R"wgY(uM\1l,6]Wmg-h)Or(Y 5hX/_"x{e5iEۇ.2?3,/h_덈n-x]_(sI֓evv݃^ȕ%O&zC 9 ri( K:0I$c9U!8OTkS1Gw2OeCmFV)Z;"mT==bl%Z~—sY0AG&ʌ;`6h;c1o/Y>/yQgy03$1XI:= 3 59za$\sw_^~ 4bzW)H%uAܢ߫J<k(;>\=< ^F UDBpݖatg5ߣJ O`|=.uKjGݢEP'قd2#zEraUWd,moޖizԮDon2 ߠ TcGeg(Ktϭdf MT`"͠/w_C*!𱄅i RIɧ?eO`8; J׳@2 ,ݤXhbC9s__ in'=RzRsSC~gj64R@~p|pv6+gn߾y*vunD>U3^"˰s3;;bLcwSỶ0΅q;0.@_ ۡj-"t\g=׊2 `#V)%[я@eR(ϣcq`ltaGZȘ&zOE2g=/0NkXWAs <+NyxWѣ^^TZg2C$±9%v҆id= ߘY1.Q&s^ ajBċOLwPLlXb5fߕ<4"M{P`n(aս W&*v0^C!9X>k,D-A_57JOoC; Ex٣*Ȭw/ _?𲝲`^2cp1v _3x= P|{rֽN5k`Dʔs[v3 D/Y d(1UߩH.{ @A)*]~F|}F!-hI3CQDo$*z-2 vޙ f:Y}{.Pp}IYA**єYN^T BmV֔?<>5N?1$1/]'Χ[Z2\0z$p8P<!'ۖJ_ 줇/>'#Ȳ4U.ѦY$h_B (ov mW]Y5dpHT n%fWl 1 5š MI|ʼn|wtH OOr]9!}j>h"Ѭ\0@2VN3/]]rHDéL>PL?[TlPl 9epUyןĊm={v}eTHPX8s|:((;Z 'Iǜ*y@:to}r'Ka=v>- .F襸YT {cz4Hש3Dp/$G8jO_&uO9O@ _yhD&YH^׏M"Lq)˘&%#Q{-d=$3y7Xuo 7檆Խ q[5<,#z!HbLx6vu׬݀C/!dFF: W#e~`r׎dsidVFCdߛhgU2>CX͓X$xُ;VGаSx) k*Y<r[\t<)j∮ދMђ0$1Lc|}8,N瑘ctZQ̙_P{wFNGMP? B29h\/~vO_M_s3B7Q]3+軚PU4uQ돠vX9= ?Α@x&5+} NL؅T4=Y%-Agdpp<ę M{:vh|2#J )h]xJςAa'mmT60i U&+1\K"-Z'% {*9/Yl$ˏ {kia2G5EɦRYR~<.)}Ÿp Dy(I"2E"b9̔Z+@As/J"" " Un+DPPP r?^Zﻊ¿1\n5_mީߋ (bo NAљ23J3⓬CKIڙ};(Y/58QC,)9.70xJzDžXޭ%=ZH^bH庉p1mwj໫~8?3oscü;?ZDQu~ uHݏV|}gx#tԣXS qʎ4iS0No]T.=T's ˧i|g։M Z xقsBtDD( oZ=dCjޖ_}c!Mz?䞁YoG "lBq<e2QR\/_O=_q%WS^w=Y\dkpLoN}? +JQ~Rx~uJ "2:XE&$/on:KH\@#ZhV#0~9Pҫ l.|Z-ށ&fv٤58G7)8E4W ,ɢ 9-[0+!tU_sg#;:=Qŧ26ڨy{l-,{`(2"6I Z?#ykW\v:alf_茔!WzTMpQaH8&: "~S#~}MG<3zũbЪ6R3B q>n8E GsDbrҷmhGHv̳2;;: ГYj4__ƻ!hѰ:s~l Hl|X*O$K";W]r/`T$OF wuU{Y :~Jv|{R_ow(9-)coּ?g~_vu{BFBy#(ү%wWDkBvY+~o?[Jbɑ8OҪ1w v%ay%MoMBss_PIKƍּڂ+%14nhu0r3bd}H`ы3?gƣXCS8M`(G<ổ Xdl`zsTDh9o_~>[)U/ 1#21v/#B?08]'5f#lKsY`φDNBCh/~z!C- OٰH;VE dzXTPy ]ZV&OHj򅻶}eW7LzFh2ԠY6덆@.{KOBFŖVckg$@JM } ? ǑXnʪa0ZE[cqDWo6+ܛ]# [fb'0##|>`sNaj? ,d/vt?!ߑ[Eh_]7ͥzyWX^xC <8AVFx(W΍O]eq] u5L -r[_x)mOt)pzh*`\\,аqL9,F 幮pUk%(Fey# uxǪ&_Ʃ?yɋܩ5j d)>8胰tM:K7i|7vvG\ $RiD4!%nd,$gJq9v8B 8\.!! rbܭ7 `vɅ˜8i͜;v;ް~L^G֬tb=jqD҆u`z/gWt_nLhV+9 W}UPV8pq>}rtqptl.[ʫ#@Û{ׯǵV# 86KABDx +}v qB-HRi=_Jۋda[sO&#QwJj944~Z Eݩd^Љ~ҥ f(-0Mk/((CERef3*>u8S7 .ҫl)8j302X@m s[qošhD <-z u}ˤE 3uӲF6i+XӹܥAQw7̥u˄\B,s qns p;QkᳶBD1f^gC? 8 ]עFyfVvvx*%d]R.t~}w<(؄"])PFhĝ1&\fю5l.[#;v6X rM*!qqPi~OŞ3k{ gf_gacShe:4##A'C9hdk_f: {1Ay#P9EQFW%5#NQAΎN!?ɛ"-Tb#k.x%tR koˑ*2(TβKTfkt^צ /ZLVE7itdMX*OH>=+52#_d=+ݜA/}ϵڎܸA;qvTJ +PQh1KeOo,ܲv80hS OP46m&' iU:$0-2WMhv8hte*ifj`N01fQ\CS] vHNX۱!TN(Q`žMɸƁ3ylFH_צKnC"1TαZcYp2ᐳfݙ|!Ͻ=$V]1F{oW-~af8 R}Cq֭+d2 c6@>oz:ڹ̨T? Wŷ;d˹V}R.q&2nD!'aeRO %^u97M  9;)ﴼ[?yZd=˛gW67nXe$v3 hH#ѹqvKك{dl'=|+$lfksf`-6y Sżօ=̞ІϕK͇, rqyǍCgh=+j ָtTAjoˍv4'$*H5eN+/ίʴmn1jxqN 蕞  x|mFgD.6iuYTc=귨JFJQRb5VJ|iټ]_kJS2L/{W֤ע Q;ċdf,  },1cZ[:WjŋKecŌ*ȋ@-6Ȼ]ZARk$9~8dӑ[Ww&V|2e H KFP<0kkcx3*J;u4;Sm׏XFȹ+^>r:Gx}b#!6UŽ]Z]_dgv]q;{ځ]?/لHfKjVxxbL/íQ{$7dZyjpf@z؝o8џy2NVl$yEV j3|_wS3Ew` %t}|ąb&W'O{|yBc֑HUc¡X`YkToa=bgjdY:*F߸,?Σئ>,w?ib &n2_]aV(c2<("4q.M5D ͕R2 3$/էk19 ^QAG}-TYU8@_&XMQ֛a&lC\o-ncb%F8B}ٿ,IrhD [@=C't!68s]uV%V`ė: 㹙6q*} "e^:h[h R/:Q~O RJ1G?טeYmUF.ŷa /s9w"ΦEcT2)Tʞ^.QHGi8{3yu=y/|QC=.S 6OSSߓjH# "!iDunvkݒ0v84awƁ}1{XRMʅpQZ2g&Q,,Eq&ʒl&_+߀lWYyE6\t~/ZgDk1I$UH/W>n.1nŢ$sc]?  Hn@?Ӆ=scpy?Q͖49K [[ﷹ"W᏿S9I=B䫭OW|5%.I E]>Gji Q;OcpM6R4O+(qu TicجI2Q{,֫2p½rb)X}}0E#LmgOj=O)B,-tV+)vbDU-PI2-!wyz ZzڵX)(%>t=V`mQ}ZmF~w.'㌅D}QGe:LrV1IhB|AcR?z7x!* Bhj3k2'&T{MD܆P 7) !ݶ c醠-Q7"X' PKkN1g nuvola/48x48/actions/finish.pngUT XcnATPQux -Vy\R>pQYIS&5.L9.e /+m X撥f5-jSA)pi6E+wT\}.ߛ%`1BXh8xN$)`}T~51Scs3vrOXp@қ8#S@ &]@M{P>:9)OoO]EE|hl F2t4o2( (1%FJ.KkxW;)kO$9*ͯX-|.FGUDt]A#kM \' yٚ0zr` sdᖟ0*hT?|_ܫ|WD;p&Pr'im<]L>kA<_tx}WP.﵍iDڛ,B1Jp3iG9X{sWWEwW_b3~3O(}$y]#ku03͡KQ*y0#׬&y>pjkZcЊu+mP`܂7-3@k#Sqwx;p>˺zڑ'rzG#4:c{Hx$ġ«{,'cˌꚣ%33 ??ִԿ{zrK׸C/s3vqCEP U~Qj 3aFI|LsH:VW + +N.AF+O5C /ZuUfhved]dݑ.m\5X$QD4omG ~28;T4!t\-+#;%cy!y5QGóux`Bt1>8O9ot:\AQAD=ڂK8~w6[Y@!W_*+pE#)I\R.> dU@C$Rs*mvyP*M$J:i ~>֌ŷN ltY1BQ.vh2@;45uSr,~nFUQV UJӛ5#,!"6>1Mca{k鸈=PtםGoZ=Sdn/Ͱr/ЦEy]U$:,#(Lȇ+ ޯAvx~sX<-8Wxx`i1š\ͻsn7CH\5Xz 0ٮ&"x>^KɑiݜGP=$SB5 'Hxp0 Wh,c%KQ;xe/Kc袪rqt-:DǏyct3bʚvIs[*oPPY'-z)2BW;1ەqOtV'U[ciz`jDަoWXӇs#rȴ wg&?M˪$v@ ̡!:}3N^h+_?>DZ?cn2'1꽆:axN5%5&5 6sW0wK7ծ@,f&޹ǭܷш'ǕK.I; ն#cNQ˽d&  eJǘ𑦷jt41F:_Wտue13i:Wvi(Gbdrk̛2CžLq-z;H WҾ)Vzi09uq<R]qGiS}VRBGeee9s/dӸa8ԏ; &XK457&6[i~o<ݟh]63MxN'p32F]rpzE9ef[ T*k٬$L@5>%%5Bm Jp"V%E熤˧1u22FEeI$^s{y!f%Ţ@ﱆLf9^ryVא\lXXX*˶%v ;!AĸIͷsmM}xںĵ5+hJovIsSV|GЧbR2J|_}*.}{al&HՀ;>ͦX~6fM_0q3\i-ƑɵAQ3X@JWui:$(zy8 a.QH{mAώ έ#(< w_"0'CTmMu~Zx`ЁIلYJv.+e'1硥+:RXNRv`wA:[lk# w `g̺'v y*\I4iS>"/0Agک8NN6xS8C|3oǼ5/&rᨱ!|2U QnH($}ak'>҃v|*.Epp?In[<`sLj˷)Orcn(WH D9RS E+= ! }bROȧJU<3I=+1)F.TWT=Vƕk fGjV\2+e 3%o(R;CRǯ\/O J~?]Z4x! ܊X*C-ԋC zkƒ'I'uzWO`ݤcK_3ps`c7 =0>߀NE7[Ę{~:C6yM׌o0]$ӵ쾑ٲT^SScu[]7ɛHbGG;r 5+,JF@)_h\?}`)=2"dE_6n@_oPKt91c #nuvola/48x48/actions/folder_new.pngUT gUAUPQux -W}<y۳6=[Z6ME9rR)*m^F5Q$/rlLE:E,RZ$>?u纾uhyYڿKy:O%RVFlHO9Ijwpu9h օ؂ӂ.h(տǙR}ƋO64RRqUl&rѱ6g^Фu[:PT]Is5LH&5tQEu ,ql" 71;=}Bkj2}N`ƣ zQQ܂ Z܈wA|F<&cM(F"v~pv>WVБa#Wgeay8+<(RTwm?1?2왧%ގ"&I6#q?F`M #4x1`LмY I3DHX<at]%0m, ; JԆ_H2j2%pnjW~ dԻ pݱ%e@ 1::M`S:37b#WX}i$^6sLiq"@l?Ee9]9݇-q )_Xp 9?V5^'-p& Z]O:[.z d`0|F|[WmvYv![9n"z-iJtP N ɶ{d[DB'6ZTk%iG4 ^ԥ-WZ *!trEUGg]BI==$:0*2²)DБ*y*ʖύ}[ ߹x>vSS]kpŮ-@%vJbxza%g(tכmΜ+C ^R-sTOe*$dݾ@ܖ`KMJXv\p@`sN٢[;T|P]Q Q9n } 9أ#Ĵ V p&E:(\K󺡸Y5|bAD.E H] ,5x,튝:fW_Q,,? j[ L"}4Fk Rݗec472'SOz^$zBKg鈎?{ [;ChW vQڀ/ ^L;$}Z% \H+]ۘI+M{Sa"Z@f0'\He}7ſV?peу^ iR COA)2`xO=5L:o;e!@7->puu`#9E!_EȝǚҲ[W}x] ڠ?P:Wys~4,8"҈56_BN 9B@q3?ӬzchA:"Y@ y0O5Jњ(z +I|ZTGӆT@Oh$P0QҀ"3e"Kݶw ?wpeOqxIx7rಈCPNSyxrC3%UblP}bb[ʣ^KܙLsG~8c,:Tezvc! ,ɚB5l#>kaMj߂# R2+L ˄d7n߳#+87o m%l?(z/ ؙG--2*pCY!Es涬zcd%vgLp~47n6-ڵhb’ͲyEeR ٜn8W1 Btd 28Oɜvr#l]eb$<um5{tOuw],zicڭ8П~Yrk|~}ruk+ —gI^>9v$_sȎr=V[DFϲRv̶WG*ٽᦷe:ςRmn6K:q |JpCŌM(W,׹X¢?IAa#]13375mKbYMOz(Ho-R=PTA44wq*}IlYüAACX=ʼn5ӇÓ^x'Vsg=wY~8DyaX mNdǪ6ՊI0Q'Yw %٣C+۷%o%ѓmTx۰lP9i@?Pt z(":et]քV#ה$Fz]SK.ˆ8wE6y!-E:d-Xs3RSeћ3!`dO77r{Ol}@LeAA,s_Ay-*W߷!/;==cz~e>,Y:ce4>MtYs3?iͿ79;s0g7t5}hbT7~ZJ>gQqI30A-F1 /PKkN1~. L nuvola/48x48/actions/forward.pngUT TcnASPQux MVkX>9`x,(uѼV^(9]+KDJ35h*,n:]ۜ,өFMT&uʱL-5MIqcg=kw^'x7-4$ݍ,pfq?y|m~|z|J$`EQ:L> ]RBɞ[Od( oX҇hw4~|')c{LHNI݌&} `ěGJgY{ܥVHť e$ڹh+\p-~S`5uKvGX(eZn4 F?,&P!ۿ~6q{>yL I:6P4LpAlg_ml'Gå"[OIn٥_͆[NE[ nAIT`E'Zlz?p1)tiRyD5j06tG)䩶E0Ƞa؀J +A^l!TQDTwѮ@ЄSBUZsw^ [n}|튖PJvy"04Q*T{jʮ6L0G -}/ dT ņW|;dnL#gwcI,;߇ A;0Fr/]0@푾"aX=ZтykgD$N%Jd*oĽ4B빷H95F2R{l9~ 菿CIni*xMmJ&Fge"cY3n]3h}kRАG^N/dj|cVT(1C>dGW͓ hE#*. $uIWiEY-S,᣽J,Ai>L 7},4'Gba7S? `7ߧx7|jCod{hgo|7𨖔KLGbiXQ2GIL8Iq1ȁxv' <]b\-9EclkGܕ? _d(ɣnol=`u'Aox[,&N_Ωu-Ep5l7V4,(,LL)rGb>!aU+̇",O{ ;-Myn*s[2 SH{ґL8n>X=DB8^{9L?,Dz@Jf0$EۀB$1ks3{TDȭS'S^삕 iBv -)OmMEsSSA'+P}^/U{ȇ_ /75LEEwʌ&]z"~o ] =P%UU \`Bq%fS/ox(C4Džk"C+?Uײoj,@lNM&.ԺG>%zˉ}OASk-J:NCTTj0O1nA?|Zdqo+_PK N1`uA A #nuvola/48x48/actions/frameprint.pngUT  nAQPQux PNG  IHDR00WtEXtSoftwareAdobe ImageReadyqe< IDATxKl\yqj!EJ"J(-5Y!RƆ $(IfE ]]72-:4 6]n ԑP[LɒEpb gd}sPxmB}BvW9+=?-~lTVׄ]U8>/|~{ _s_@B[[fG~9&pjW.IcD D\[CMD16ˠ@N ?Q4R="*>R}1kdYRi/QT{X,ކ@c؄b+$88Nbam&Lg4B_7$Rnt{(. 8 hzĩS1z! 1,˞+ GԁsT^`~Db+}xQh1ۓS9FF!u56KwpS*ɺŖw݉cT*wGes$I!4+˴wH'9'Я<z~|WX}=zNݯMZAP_]fp/IFJ zņ"]'󿏵Y|sbyNu'&aJ!vH߄ Z>MNNC}F8I#,!MP=F##glWBxy晧駟o|9$ن Pi~X߱DRXz)`A3'XihXlV}2[:GX?rzz H4g^B;,uђ#$-^ewb6 jBP@BjvIFO/{QRP =* [CwH;1&X[ؼa8\0K)1&9'`[4&!¡&WO(y:1Љ񾃔݇\CJ " ׄXqI!"@rH{%45s>B p}*/anz`܃v1c ܹgB0⸅sNb!Ih-~xˢ(֭t5 Z"hG%֤i1mzYv"BZƘ>){V)׋&$SS{QJQV9~WJr %3@R٬_PJ]׬RB 2VJj5P(D!8}I>? MӼޙ:?".^;)=n4VR' h^o۷cuv۳o߾j'OaOw έ'[w%{Q.]z T*e@S(#r<$IXYYJVo h\_=z8_\|t3v :Z"QGcZG]zVV_QJ_Ro{o.Rֻ>|UR"DwtS?Goއ_WO}W I 8(Dko\)…XXNF!I2VVܾ}\]?VZMs4-P\Hz[>?._~?(z{0fz!_=9::~\+3΅'-e&wrsلlLLT8yr ~GQn6k7ڕVuQ)64}qqn~?> J}9^v#x׿ nD6ǎ=Bٹ~o ѩ !R)A[|[vAH0¡Cpp2 k=:uCsuxo7Z֚'?94J[vIv`0 /E$IK̉nhZZib 8gsॗqe :›sx_6cϝ9dwLOO1?|,7G"caeȼw:B7oRRp Vxȸv\i$3IENDB`PKYkN1lFnuvola/48x48/actions/gohome.pngUT zbnAUPQux %W{<mxI損Q6^J6t8al#sH9ҫftR)cr%$os!b(mo}_?SSPM/^e$p~ *.>.Pjڸlpz}ń.a$Aa{ÂBcO9V~Vo Ah"_ jthݾj)'/ S]PsEB.,֐b|R i&]|~s@9ٜ_Ҡf ~l)Ҽhk$|C:pObN151AΠs\ʪXGyhȰ_҅il,,*\]*tS?Aˣ2lj$E&{t(`ۋ+d{K5g^ͬ_QdJL{_6K*nV"4( jHNJ.:*K=5$29W#Qܪ׵ټMjV‘$\pX`*C"#n6C%rA\WŅ q4k=uM@=Y_?g_)0F+ ! CC;29eGC32$:\w c3CP~жڭ%\7yvJl9+>YrK';^VK"|O-$ldeun%eLpOv2ڑ0~QۍnLz}k^Pb9IbXSޱfa VcϦ Ω n1ɴR`~7p$8#IOO ۷=ZONTSAoE*=r ;I:u>ZtgT`6j%#I Z.+=ϿA;H*O7e, g$ o-K6ɤNJ K, UujSCsɶߐmp~99%ˢ71&VH6K}-U@Cېڂ6dN xU7=>6Y_TY}p.;JY& k䞄~'DZރ]gO" b9iۊ1YE\,)H{>p0ie^NNb ZhZ2xzZI"=Uv֚=zL3m(mCimZm51b6ɻ娿 [;m{GW:dSNϋ8}ʟ ?@CE5#wvu8͇U?!)T#sKLmG-Vl&Fd@3Y۟ƂopPkiDl!nk-AԖq#+6VQOmCyONX}u*|Wln|X%qoJ` G0VP_N~R=m f\SYߞ1ЇѦ{wi>$wT5ъx,Hӿ!Ɓ/I8h8Sh'2 o~3o୘j8 yރv gc`b4q ]NXa@rzq:Q$9[oU 4xwPL2AL-H͊ƉK3ģ$K:l ˪)/,$WEV@%S駲nmQf߉` H[ߌ~ũ(?3QEo5NPEгPކCNt֩iAoaC3#vФ?lDkno^ nڽ(Aċx#s̿=I/&q>Å|;ЀVl({u!5|60N5xfJ5?NIEg#H-q]I? AT`@H\ͩG J!ᖜ )Xm`&s`8U = cIMvY9XcЛE H:isKx^2@cQKDT7%{vڀ 7 TBb-#hvT o XŽpߕdw7Y?Gg^OO{/F Y_-tw$k'hо"kwgZT,`R&)Z{(]E᪻bf~E(KCd`^_ Fm 0t.E0#@NY jOcJY(/zx\ܪkd뵃KpW\Ԭ͓ȉFN }}\ >xNՂ떗nꍠNkNQ)p7lccuR06!1H_OɖhAIB:ƞFHu"8,_J$|6"|0S,ԦBL|,#? NY=A^FU慞$gǚ`ʮ=i(6!#EQש'+CL5X"dGeQ~xGH]'~= L`kI2 pN~x>%ށ|\B^Ȯu EC7\荢P3JI"ǒkRWbδULw֊wȞI0R<j3&KԆybvZpw]l4|'B{~&>yHc,lѸEV/b$џRpC'yyὮ>fEbW(ZX.Ѹ7ڭCYxUWd 9MQ~DPً3+kׄy=Ҍ^/q eh6ɛsݘ$viό q+H;Sr`g&Q;zI%m53MnCl@sD~ffk6pw Ш5Q.5e-0v!\/k=[9S52v)˗[u2&'s[#T`[bwGZTr]@NE$Rz\[X)1=BW uxG_Pjk +oXE6~vߘ6ӊG>:w}&i` @݂{' hyvOh(N+gg&ɚI\UJpGޏ>Ͻs~{ fjlm i`P3 1597],i_>Y'>}Jܑc+&%*qI/,i Ka< Z6L(3z!uL_IyґQ(X+T\a[<QW '_ܚ') eq4,uɽ@pxzqB9Wqg ?Dk @5/pz`δ_8V45"GAѧY'GL s[<u?Ta veBM sn sa1# 搈~Gm7辍" &e-o;U7hz"2`_qnlеgVFD8q8 [0fY>06褲J)( RX]5:^Gm&_%B*Β1xj`vpǫf\\.jfo٩Ci9:1_;%49gh9Ț'YΘL`罵 @xtaq@t 4 ]&eiZyE5h".Bwr/<``n!&5%F6I4&kahM/vEZ4; K2Xp0.K5MwV Q 7~YB[ O3kbG1g>I4b 9$ FG ѭ%K&K߻@W\_5>cæ3> Mr H| <^@*Ժ d,'#uas:@xof&x"v4y0Q&ODŽ"'}o(iͤQDv)ʚ846Lja%{e MN"B ma7798jt:鳬8F\P# TBM7A_ĉ8EXe-^R/>L`/WRi4ڭ׋P%Stxp_jrQv͒ۆe*ri*~7o+ t Ɖ%m?gzKxGM֝&t$rs}ss4B ! OYd~% 3Ԁ 86}7^##_V B Sv+AjvC2B߹zNx:>5+PQ2 tcH1҉ ?s>FԔ *jԅD_'uGY Өexn66~g8f(&T)ߕׅ:. km[uSnk( ՆY[ƖH9ufjtT؈ =q/+a}FWE1'_rDRHWԹXCWzl>||˱>w+rZ#3zSXQkOȾ᳥Ѓn N)_:hFtft l hV1\]-W 7ٟJ(㇎+Q ZrW(e @Hh&~Yxö#[qE8-j\4 W:m ?rҿr뷐7sx=[a"jN=!)gIW$Dvz].k>1bu6*/oxv*u\|Nqh4wYy-]D9/8\sHs:~s҅ (Y鵦DJm.z0q,z[m*2v1fvS{d-U;qF'ة9 0d<#~]*L52ChĤN?H < KX=9)ٞz$Mū s<ߔ~2hxR /}Gn1! L}?4 dmC*ؽk47@BQgZqb[aK3rc/kpP\`9lDhj<=/0=̔ Y#~:x^L8/?ک=fkkߐ l48$leiq/".NqIgsz=h>OaC+yTFz&ڲŪ:k!ܢX-S (iL2>P'F':%)5^@+LXQakGvP u~xӔrI8ORaR-®6Ĝj#.ZL#CjQȴ;\N'[w.هa7y]Pvnx`oOCf% ff&zD jhSi֘sAzʀ@knk; m0ҰN>]H* ۢ;$]QرEP[V][Enm/q?Ip瑾8Cd6hmyd E12oY_= FuCj +LNB09<>hV u9|5+9m*JutolDgMD99h]:z#sqj;nLvx.yM!)&X,rv "دdO^+zf!% `@ g. oD<26R|/C}-ǛT.Wv_7An@6N=5oGJʼng5`SڒBjk.6<Sέw.|,ə7ovv0q6坥̮!<Q K@z]w^-j6XpQM=fR CVS ra2;m|@3+|HnSg9dЛ_xF;,(~?"/ɬstO@lN+ⸯф䍈{ }F +yst.,{WdE5(ۙD#.|ax?<ѝ8f9 =̛@]l:ńb0,^K!loozelюT['&7-EG@Q;BLxy7k%LR $ߓ&2/}Ş%` 쩫;"xon>pz u0HJWT2&ГgG޽^8A|ٙrez2r]v`dEA7ԏH%jq[q nȾ<fQ`PTbC CfܼFx=üsm%pܻ` st=Ь) eZL~}"Ӭ}AE2_u+3 CCa5Ѹ!?Φ^OObqlB*pCo'`;:H=1@!yV]+=4x=ϟWʔjQ-ޣNz3>s_;vO?<-򷵲IWuў,GgOGR?Yl:XY\-mD]PjT۸c6M;7nq;h!.n7an_a3)egv}}үpDd+]Mf4bW6!kĕa;FkuZFŢ{6^Síe5Th5dw? 7)Sڝ s(0w*'WPJߟrd7 A|ŁM+8qȃ!;h\:\ASxo;sQ5`KdT NڷU4Ꝼmx,]|^? amkS|?~jWH;dD6_Roۤ$J AKyybl?b !^$Y3tS:| C+i+Nd~o0ճ9Sφ% %!RNȀ,}R\dNdfDRx  f襉h`Bjbea=@?m?PKEkN1=e nuvola/48x48/actions/history.pngUT RbnAUPQux W{<g6V:YE١-oTbN7Ej:N~-8( "S~su{]Dn[=#?&j]웿Ox 㝎;ۏyF r[{BS /4k=s[[Z)1w [;=l`ͬHVAEnyɿ,_m|^~Mli`ACPF w`yL`) UsTE$gG(HSA*< 8wXl:MF$RvVZ4u5܂5RrS#\W^C{hpbm+ib#js6H= 5w@PDcC8-.Gru!-PL To7il=JbS}nF\N& LOA=CB'WH{}ĦD Q[$":Y8zDSOF_pheU'+O<~:jΜ?7|eRaUX?ʨyp覤ik?͕ 9F?e;m; ^]W|gf ֋X(! ^d3EQrloL ޛK/uGbO|`B [!b(75)d'ѧTUGq28~FA]*&&P.C/EH?/o⚺`TS| <]*ڶ(?q^htJ,}qJggňB3:8 $N9soAԃ[cfn*>CrƤ8 =z-p45&dڰ0Xc 둊fvҥ;GI(yB.s*<}ĵ:uJqNB'Ŷ5#VpC=V }yS3✜Urdxs%lh.s9seҬUO> Xtw]#<蕽@u\?WyW@11Izo@)ؔ۩*%?*x;+$A?bŻthG]3*{I9U o-㶴.RgqdP d#􃭆DV)^0  Co'w-B-=1()){0i}gv/D}nnKf "{_}5TN\%fo*E @ ԣȄ+7s:qtA9_=S#x4Cwjh7y /. C /vfbI_GyK|H|!5Rq&˷@ `H5^J"ݙ;I'#kh_̅-"|ːTW2{oCTScUEe$Tt ~>2 ^xQVvQ5CvE%qE3dg},f]yWHNjD:vtP޻0>^tt713F?-#)y] rci f{*)jc Cg\'+dOZ|05)h1Xagnh(w%SuRT(!AfY5XE2ОG^;u"ud}.%%B!f^I lH5vR~CQez,{FCګ]!V҈Pf2%Nӵr+ؾw1M].( B֮DUYV"l0|5anG HJy$GK#ifzH).20Kz8w_Y䰎$z҇'LPXӄX [NtB8R$K(h 4"┞X*%{ZsbU܇17SuEWne_N,ת2rf3UZ\[Z8~WA;Ik7`oSE=YH4!Fqo:,C]_IFG@\w54'-"l-[JjTRp^bJqr s"L:`F0]|UU$7õ.4[y*}p_zN!:脁:IᗆQa,i2\𓐮Va<&=o:|3ܩ ek`%녈f\O0= Gk .4.jX49?6cd5@)h)4D}keMx`QʓJZxEcĂlaAph*$5(nDۂn%j\su>~ͣQsvb] 7m HradwB5u6ȢmDQem{[q4%t+"hYy?yu649,uQ :n ȗ˛J!"eGH!hQ)wZU{It7HNhckzrn02exG8\" +'l/5v&ձHM.Y@="V16ISUE%~d[wT`ƹ$[Q(]fp͟5{<)8N5C2YOK1OxQB>Bٵ=TPA|%Kư(!h'FqHiĽ/;sky{ি%95"!,T~h1K%NO^e4tsSPL R~N:19tWSJþѝ92qgomq#!!{[|&{?qɥFb>U؁ zE7Ӭ$rqS &hp(k}F|n#^ OUʂZ$ѩDkl@] t/@?7H4e_ CVTSC1Uv?!+$a_rvvA8ݍmKVjȊjG}gwU1j,T4uD`ꈱ`)d4VH&SKJP6ቘAa⸸5j.Bf-;:AQ~O MFef0@<кҭ)YZ\-`Yds$)ˋ;N(؜AcfB6-}?qȌ \n7#K􊧫ȫri~Y#zjmYlO>+NZݣA#9uI]%^乁vkfLa.+w Mk*@"XJo] 9J"_w ¤SLkSȀ\qnZI;2A`ͼ5~Wulä!$;"+~uװΉ걉ؿCK n92sTc-?,yNfthDރiOݥOٌ#5'֒T*}jN5IMi*ܧb;X4EhcV>\hk&틛U)z'Pi)TgL*3Y-<'x%nW-M"Z.6Vtw,dO a\w)SΜI`2F}` Q@Pc#/`~mwٽnPKCkN1;=&nuvola/48x48/actions/history_clear.pngUT NbnAUPQux W{<{6͡i:{[E9lKJ'z9MEzjr"B:=O=)Q9Ir"șaz\$mebDUz6a1`P\orq`N<}3u_D "m?7/0ԛ mZE0fRf WKOɰjףn>tzbe-J>;C#%k@k<_~TSAZ!`A* ᢡ"Hg! mH# 4dө dϏYJҊ9#;u l "@UK4⥺60oZ3녤↚Z1W .чor7f~ soOn^?EbԾuȗ:='Ci'X#k\?3 >o.\DIlK"'UUE+Ժ\~NNt[% lYBVeكu Lȩ"8d¥hj`#+.GaO~A C9b'NOՂJ]a,,gvve2?]_sKPtpQ \̞_pB*nRI]v|p}n8Snl⿼#/WScɔ'0\uȰi=af.JגXKjonamW3c'A?e! f~l{}EA)`F߶~J}lvB6,~nygxs%LX*CȗjQYAv%P~2zY3K$z縡bbyT:Qm[ tWPht4!alj++M"-԰F;:7qbIu3v +/}hhϐݫ^q ؄X`ߵ1[?,."n=jH{[9D|+%'{ryҦ?ePʹk(0܈~KN`xz^MvNdJX6GlȷJB\gKJmW2I}M5‡Bm31.gmuV?+&/^'WlksT Yv5I6uv{_zЊjOmRjjjv#ݠOxP65(8|%?V!WY{DW&J!+GfݵFu(㚏˰#tW!_N E*“VgAhH.U5Y0z:3 =3%!uu[C Hzc9I'(s&hy߶ND5hYkZ3u8B]_c6a⍹wF+txt |M&țv_IU?*/Hbi CZМAu`k[j (=TkE"܏*Unn6ΰACv-BECX.߲~=b_*FAq(7&Ƃu%+(Q9QƯ]1b6opftrЗMf4bSVW9p+y~;;I#N=[iC ; u+:b9>a}V^ktA]\rIa;xd{p+W3P1x'A6z%Y$D5$G6 o>.~q&Ʃyc3xx*%:oS|].GUWoY<½PI@xGC RY(e ](8$ 3$aU=}!v*QoS_"iWL ^7pk:i*b>z'wލ; n7V_[bErE\X ,բDj&rPK\l`j?*9k5SSkEi΋ثFDxr>%UnpK P4X鵇^~C[>Qx#10c^ ߫E?rђH:RZzBR+ŝ*ʵc:/@w͠qg #@/:zJZZ|؉^LT\ЁtrMs,s@,E s_0%s u;H'j}GJX(\k #*W,k$oL:B(JIE$^^XAalupǬor*ARv n'T~9Z='9;{n9~ 3ͫcfܮ-kz+z5jʀ4{_;ȇU=$opOCPz>ۙ NTBCxݤ[~mPru-n3|ɯCK@k/Tx4ayrr4+X6#0 wfm*XyL F)->i@ HOv:_JdI_'AE,‹\j;7̏ ФRO]#KH*L%痟#]JΒT.cZvf[(Hhw8?'&NDFFQyݍex@o$,%j,0"xQqwmMVL"Ǥ;_@jw-RD?Jg2yfsb(F%0x#ű'Vd"=ް@3]=ZKV ggvre?ʼPxz"nt]VÂVXS3=ҙ]ERJ{f-|l򑈂B>;EclK!P9PN ׼avBϯmfxN[ZNCv7A 9Qat7ytuk@ :M}dj}9ov\ZطGc76ڧ2&H-$j\TZ_]8[n.Z#~#io8kM e:{3揂oe^u_ۺlt\ԯ|Z0eYͭby@@O?UήcJ`2jjl(~q=AB8*rU(ltT[򮋄5bINл%tXc-t^?OZX56H GMߟDOby. :t#(Hz`FJ+r kH⎞J\Cw_UYvуV|q\"uo8ph]UH.kubcfJ"+:#i<_PO2W©߆ 뤖gIΧA^șSN@<_ē;96G^&%%8 h5i6_O=n= RX3oIǁXͦ\7Gɛi%\ejׁTb+[@m1f,ƖА51!~ ;bS"C=9Ϥx `iu@@y%R >R-8rCW;fjބUkv_ 1WZoVilj՘xGM{_Mk!.I$=` >~+ KK[gN`l4d9/[=KvgXl4{*4a Xuad-zoGg8D7^54֐5 4Ր̚I* (#Sϟ]`b= 9ól`V2\P MxXPrӵLY,q@r Вnf~I+z$/_@a R5pk5AH8B"E`^O~.ބVlQds:C5MM ؈1{5Yq ܬ[ߒKߙ5&j߱~)M20Xd"66ֹ}]؁BpL, DdQ,Ozg-iI =U12X\]ܶ<̼PKBkN1;X& !nuvola/48x48/actions/identity.pngUT LbnAUPQux V[Sgna\@q$ $mi HVi,^@DttjT d `ԢE!d`懳=9o0!#6&rr#4Ю?' 93|K8\o샛~-:x(u+;-ݛ-#utd=-62|iZ!ZBAs@X=?\0ދ&)..ǥ3E&='¬pNdlVjq+j?^?l)F+'9}H.y8vwvJP彟hKM|~;*}X 6xxaEҮo /c4 aK#tFTͲWuz vhI] rsYN{}xcua:y+QHgVf/}>#tfv{:ōAB4{.Οb ?Zg@x=ć/rOv,q)qʼ W Z;% JOzٛ\C`1i0 qr͍MR$Uߋtލt ""2jleyh 5 _ߓ} ˫Jms򹁁hhw?T*jA>(4xثBVDj?b Y6BjbոWM,bGުd'Li|c_.uq:5LMpVo7 H/%h"gYvfgsuԡdԸh\+NN}!>`6Ww:])W*o*֊ XNq< MV%2 -)CY(Q̥ N2L7.HZaQ`ZXxiO2 Z@ *Ayǣ$:%" >tIlJovئyX\Pvg܆c0v(# a+d;uN:0${(?~{vvZ9:tR9 yn?q:f_ĕ(ڵE. 'KЫ,R#4 Jx*6}ܢP@! +!`Xј t; gR^[\wC"3Qǰ)`tܚG~mD{.'fvjbnaX !wJo>ѪMekY~AkN",艓7Q y66nV1mBc#) )/0!Yx !Jax-фUɯIļcUTHNw*Q6L-f*&8k/bԜ9gN@vBDIbpj6 Z-ښ7RXԒV =sڄ;Tj Mg1{/#꫻ kSdхTccM1V > RP帔`SvHIozE Ue 3+yyM(Ԃᬄsų$\<@l:^lq(I`@:ߏP/lU&|l),<2\뚬jXsA~~+>)n{ٮuG}ޑn1c?v+A<{: S~u#ycX:J |z*!J+JS#RhN #>:ďB#Py. M%Ӌ&bƞw9$8c'!gi-ӂ\e }ZôL;Ғ$Υg{T'/YqǂX&])+W;_Ζ6G8k[$ren_l{qZ$>`vRpADT=N> ACg-$¿1u=p۟[ @5Pn"\]Igݰ}JcDsxz9F>%*Jsq /f%@:({4D߳?zV$wxS廢u22*qQdZ< ǯ qK0~DLVrB\@][o_a_B%3g䔤/sںC0 f$i@Qv&AI(cCܰ3V?z=IqKbv݆jx9Cg~V告BAIZGfL7.cff}PY/xהn= {rYj񌤣O`fXxz~L4&Ξ/sZz[Z4F1gcWgz}) .Av.~pnh j^l Gg  O if`uQHp/Ґo^q^HSy_v_X?Y_c@즄_6"?PKRlN1 mnuvola/48x48/actions/irkick.pngUT LdnATPQux W{XLkߗ=4m}*SJWn)'lr2rItEMQF⛔ڎ9rmR1hP.q M.|z?yZ[U/Ya_.LD{ ^,sj/z'4uADꊔؔ84tӺqbӷ܍11*4d"##gg(T56.hl36%ș:c[dA'Wa5DU9{Вc$r[J03qkuېP`%St^hNUc?*({c{ޮ m*8BT]綛3* bcP%C-# 5G  7`j H6cwig~j,HvGc+R%`j 3ƤRHU;R3P-ִKt;иN`MigJ!O]>ŞSb"%bNc3s1+|z5Q7/`M<+721 3~gk]fǂsz@jvl=UK N|J$f mCi%Filx10hs䫛w~5>ndci\6^#lٿ asssQZ[AOs1hvC #lv#.txo/6_%UdFihf/\jɖEDֆ*?itI㏹E̙3zs%^6Hqb%=ԧ,@`G \U%{߁EKlZ+fz/o ciDE2:IE|Xe~w^g:0/ B,qgэy%zkD~DZ~w|~qVS9$q&QD77SMXߥO1mpHQ;nCѧ;)ОK 1t{ZngVߪ /q`j=&D1.}0ZH:߆QD9[Zߐ;W1\u<4dwr`Cpp30yXzR7'4B̍&v%@Xo= V~9S󈉝g%JQ00vqdžh|D$=*ĮifpEb1%\PQ tā.ׁPD25 TbnB})Ѽ1! 캅@0gHpg92g@Kz(*=T8~ эm@N`1Ky"rۄF Y L¾kߠb[u]_P/Q6 egn'7u̎pt| x ^#KvM~|(:R-Mw|Q# xoXCrP`0BRұ;`ZT7S Lmu9Fnʕqkb% ҙC{-8&`$z(2:%GiK$QOCCM S# >Rͷk"t Y:u_-=p~ڜԳ cWݛ|x7l3gh%`#t?zOGÉ&ehN(G[s Q&* rL(L4xÆ ᠧ&_c+ؒ qNkxT^m/XeǦwO掮! +3ˑ0|ךX>:Ϟ>BᏟ~z|rk85 24Tz^O][:ʇk šph[0F.P{xE1i= %H6&$߷c%kǬ0e 6а]4$`Yl\J/:^W8i4(1 P?{gX|4{7!.N4Zm85Rº(Ⱥv"B}Z3Ӡܴ@ib181qևw^<#M+ ƪXK'Ks!K=2};n{Lg#,%7а;wbqCDv4M)&=laWnLeS-"sp N kc ͝"\>D o3dLl“0/D6"sNZ:H2N:E$Ib>374Qwk}n؝ C;\vs<:L ҂\>8 i!f7yoȣ$,|uE,=pU`O9o^}YιvZ/$fSKlww}qM⧈H%KG#D?mJ^OjhbԍNuǪ.ޯ߭\+'ݑ1DW#UTZr/O5P_8n-}|`vU ܎]g hinÊ&+XA:w_-oGP@8|TC$J(%YJyn^R  U`..!㊘0b̕MϳЋRym=xhd7eËr(m |^ ()w<7k 3dJM}kx?`#gFaY6 t`'{RJF"/em,MǽFzFtGĖX ͬ -jн>̢@]3("ց9 MD&%ċD 6VEؓ)q?eFsYjOI 7hڢcW?UHVnd&\ T'>>Ru- -GV<{܃7(G!FP߁ZE#3/Oށxy4<,|ZLi|uF;;+sX3;(R]elvT'gBgZb /;T}D}iy]@wE{frN"#juEg% Dh^o*zw؎ rsܣ+LJz R66=̧xO^2R~ZMߐ H,5@bZ7 ƄOǛژ2SA)i^;t ُpv~0M./'Lҩ$|.XV`?XQKV!&j'=M3 =?S")*7&hE9J~QJM䭗tH,IYc89ʾR5rm.;IpQ,VJe hvB.?FvK&R@y)Z12Lf| ui^S?ԩ:?SˌEԎMG٩^B Yoe5~[IS<"Š54d6_h _+ؕIIDASMUnnPaz. |)v7 YQsuwt c-> Ql^Y#*V3<oVOYj9r9vWu W;A.U8~%0B\%={`_i>84m;K`]O #\.Y'S_j"'C2=dTAj1mFRH!8=(ebiup*@\ξ(=rN2>(PwZ r8pzz&U0"4Y@ez^_ch{@B,6P?PKkN1]h$nuvola/48x48/actions/irkickflash.pngUT |cnARPQux WgTSY}%yI  4QAQx(HDñAK#@QcEy(bq4XftpLTQA(U)2w{Ϻ?:뜻^ VY`4Jm*;Mi3?}>e1Yӓve&$NضIQIq9ۛ0l)?zw{='9eigwFdabkBb"ԓyRBSpAtf1qVRXҐ/([^(i.Hll<DI-esޫ"nӼ%ڻ '_K˴iT uz/ƨJRԠ6SzepV1!nysO=DEFpO n}-vIX<4!nI Eޡ;ڙs]Y @2c`̗QD75G`U̳~ka.X^Z]xq eg%#z]*D?]`~'lxpI"9URCAAVU1~k P/l }>Ns|= GrtTg UuE1cf?UUް ,%,JO7M KZM+xRCbG &ԘV(=؏fvw2b;3~8G;=9F;XZjކHj:UJy% `P#@a(H0 :c0-5[G]G7#L!m91TfIfGpOkD%n;L+ǥT 2?\ʚ2,_Nn52Bc^iܵ6_Uܛ}z$MiCz@95H_+ 3"x6s]X9L> <^1^/HD#vJcOLM]u/'@ >uM 뇪 qk[AR1M?UK16'`%@zcd%щc-`[ؓ~;Kry<.H! :; od/ hQgJܧd{4x(O" 5>WtݕfI0WAD/VAg<6' .[{b_JÒquIǩmi_g7k~u@aW{M. =O>|Vb6S0T|^/JN)c:1\ԩQO&#Dg_*żAS -8' [rHܛj HzQwvWC`a6*lUxTӨ0G%]⼩5"y]/SsR(%7nd}[?Tnv۳ے>Jm~JP)5_&_:@bw{GXLHؒC`#}sܽ,Dp2K57yS(/*mxSWx8kN,J40V@-ϙ[XlFxhk 3[c\G~`e(@/f f;5Q>鼌#:6`*GpPJ[+U͍ԴwxnZY8'<<)**2_"w_X޶Orۉ;w|V,ʄ"K1b5 u#P绡"i5 ,.;izsq_C6f{Q}&~4%\4Vj³"MLEzMFXv4JtE{kDg\B8]vl` ;CvY]u`ȼe:قwUnsrSp+|v R2#YntrʁH؈kbf96 OUD*p:5K!Cӂqȍ唅5@ցh$J*SySӓ\1!`v0X֪+JM{:M< @)pNnnVkv{ bK07 );|g=T+}x9T(hCe`죧6 &AyM)6Ǔ`zP,ֻqUȊ˜'LYkb}y}5.0$-o .#haV?|-xMf(ʘ QC1ݶCȫY?{p5U^ ^q~r UO%wy.s12#Gq?LklD!ώM EK5kTw7ٜKQ4amYY֠>x{)tvΘӽCDiKaAmlڝ|ȃ%hʤccGO<}79W)1ْJFG)dor=1<>pO TOD@qfO5sDaUS`L,!#A8Q; B%>4{ZYZ7_rF}1xa9OidLpՌh$<)W="'ĢڠDoMZ".PPy^|yGļNYzҴHG>w>#mjW1 9zƆhksvy%XDSni 7H*."ϑ/P%#>Qܩ}lf.b2x@˩?޵2"qUџv٦kǨ[iO !{dZdVu+-L:}>PftlVBQ5 m ǭJ M['R=\Ú`ҤfP 2WeyurFf+i'cKs<,a|^3->SIV<=€O{G-\E^ eդ19yLE .6C$锐}fQ N[sqԠ/|\8l4. ^yvwj-Av.k83v<=-7Û2ZE^%z_xFL ރeFR<+|%t,XE%qB$>X!ܜ8?xwʙ`ͣeh*j=~knDWg5"70 ]CZN˷9M u05T0DUh;[&%]X*g|t"[Gu%~.۱p(5h%~}~Tms@gF%gicʎvFW4˴4$8oi (=w>%5Aڹpxw:=3?k]bqO?KbqD}zWYpKXSTcW[ƭVKR#F)B-ۉ'ދM_2IQݬ^7Эaef\-0s:tc 6R82$Z[~xy-5?:e3]:F5XUmOǬ8OqW/>i? OMÁİq^̞9iՎ?}Wb=ȐKY(QeT<_s3pdVI\K)~Y׫5_D;]'#ͬ;WGeaBޡөy>RcPK(kN1q / %nuvola/48x48/actions/kaboodleloop.pngUT bnAQPQux W{8g6)g"lsBxS!2gRS۞Gd*YE6uJbW9[^sz._Kٷcgs4V5grWX#cVLrT,wd|lPldLzJ[$(Z:ח63(MJHJ_FA 9K&p 's &[ K\Zc)CĸЧh*}Ơbቩ?cL%R+XWnGFU/Su#VB @nrY~ AC$~'#7>^ԕҟC!p'(2M8vunã?;7 M~MԠ"WCAFKh2PӾn !* DU⒙bS¢va&QJW"j`ASG bu _>`14qU$5҅OeD~ YG{Πea3*fݸ`u;I8QfH6R9nTdFkr &5asjohwuEY&@!7 byř\YvF7Z0N:ڂ$*8}y?\T#=?\'|EYc{D16G#JxPD{)~=qjKsY2LvSovg4*C+kmIfU_[Ħ*?,ytRJ'TK,^He;d9wwa!X E>Ub#<?˭.vzUӐ퍠^Napz+I"p1C%&DjJwӍ[ *"9A;C)=+zn]iюՆ䣄 0\},NO:ʸz;X3:@\id>a.*XrubQrc%ɮY@%'16S*de/uMS$i.hC{[%D -CbhNm%>5|ry@Dn:es[9~cHѦ?_T733x#?4+)m^2I!M+;a [aGn%Gqi c-#}e;If$mDxǬRK|ʺc@Q~gb6G >O+݋( pjR2٬t`¸mr3L7ك5pgPӥUnVcgy~+Z@>.m/r]`N , g+Z`0T5¯)$)>DVյڪMY3\RDNwLeG;ƀ6eo$BM\gowvdO9t^>S}]c}#X3#ݫ9ZDjyGwL18Bv"hOGP[ 83ągCpt#{.S?ɗѾB Hsv#)Gn]N~3ys1ޞ_TGʌ4կ"G3SޛvH;JXoKA^yWoeIIZ(nIMҔȝoO{@ݜON`zU͞r5v/i%XA{q&84\# <1l0ѢLaoRjΟqkc'a@9wNBtdԁG^W^]lG+R\;|I=ۓ;$WQYH\fc&n'JäEŋl[**ꏯBu)0y\q]D6b웂l^A3fEs~?RRނ (2ϋ9?=(tLYW,O Ez.ԩQZ&}ON̓JY=Hrޡ,mc7wNdo$ۋLb%kj_"A]TbmaiL:_r|:[oҊw(ڣ_[k$#w!("֯b+Cp؍1-,i`/h E5RwʹBg/u;ھYd-BI§> *bۧӲ$Ey7:/baSW4a*U#2FO_'~_H!3P8;ГL -]o4StP迳Pg\ Y[oFwDSу O9د66FC67$?fR =9QzJ׀iVIn{9c,8wSNpoh#/մʸ.Yǡėڔ1eʽT<.Wud~B ٕI)lX0rS-R;s#F-{?/AŋCcBߓiYi/tt ([|z%M5(LRUIعʉ-ܩ؉;OpQ1ؘ1n_XW( 10ɽ^&JqOoV'RNZo)~^|QSX Kn@ku[ ?Dȥ|y$cS:`8ב#ko=e\oS݇q Ǩ'"I?X;E!q\5  W_ X1їݱJA(6`01IrVNrb+͸kf0 YDB)Agヽma:6k|pݙSYwGGCh duMf_L"nytܮ0ulU]-|1fhT/PX^q DQgk^f~Pn.:rչg5;ljyNG]ACr$yE d^6\4qb)$uw`ϥ+dXCQ^Le<+˼B{uҤIjBڶ5;ЕW n_m,cuh6Upf\q-~cdA -a{:wJ h8:0_dwXڬ ,DB ,1)ޯ9t3 @e ΰ 9mt(HmN(NkV}ۨ?E<y2W-QUwl=-a3JU ]338l WI џ.&`7kǰQ7-oM|Y*%/=u]V:ڴi}U3MZ ":4A]:kDȠ=:ecxBDVu쳧.w~6쒬 i*[}^Hg;R*[$ LqMu8cJ{0mzn~ tsժo.+<IJTG1V*-a](B[lX5ޥ!5PDTݤ~IW|;KjR žˎWe֝`DbB@^{(*kQgg+[ކB?kN\<#ӏ xfnDpsW?w4̐LMS&o⯑b%O{+@D={8@'\s،4ZL=;Y8BH^Ȯ: G\y1A0(FOm=W-iqʥ2>8 0 [ sqǶQ WSuV">@>¸u>{;il*OTEQYJAuZ!bX h-(Xz 1.ѭE?,4E0/Y}ex$V@)+eT>e*IU x;q*ܣ;Բ 5^.Q'{TPɘ0& 9=-?e;?NkfIMX,x +ӗ:m,\$W۫$#}ODBlCoy1J[ 1oLl2.S&tzfo/&S-Ib49;4iIx7VkgC§m`p*{"aQqA!L kUv6]I^#[$!rc;v/ ]Y+rsA,8|L=u9o f~dhf6=[ DF;OW[+int&ɝkue '44XuTll;EjWx7a\Di;OvMN*sŊ)r)9yw8kzϒNyYnZ0KSpZ,aՐݽf 9}rHDXiB撙R>E5$ 0ǦmQ}3V,>$bC ~afn !7V _a)YXK/ ,Jz[ ŧm{PupJO] &k/`p/ba{l(-|eeng.& {Ҕ`2XwxE%F^:ookrE`dP-3 IL\l$)!}g^WR%),ҿcէci„BeӜ+hN)}vۃ1ʐD/"ۈ\-'/3ei0enՅv L.]\)kEUC՘` M< \ckO'w PDwH4Bn,}CjfyE,1_v?P"q6] qz}@FNlп*1llk!Iq "҅<~[:,boo.)Sz{CƬk%D/SSKGPh[=oߠ0ȿl0kg3PP۽n7LcF\>pM4 o&ݳ^CΧOf0 [".v-+;\_Hk^ѲMs_4#($7)t<\ʘ(OL"ڡńA.ce.| ~=,y*.k:,B@h(D"6M%SIOz߃ZVInogh<ԍ7^2L/y.\:y!T= s[(^@IgK_n<r Elr<>oE~ XTb h${?@oܥ|=O;DmR"9[),(P,zEXw^u=*l~~YS}kK]LHM[ˌٷGd}n_;&qnI(d9ഓp38 3*ŧS}QeqhFO&X:J}QKHN}nΟݲ~a1*wZ.d.sMO zX׺3-T g5"u9b_ɩor`!$&lT:i˵?)d pPK$kN121Cl(nuvola/48x48/actions/kalarm_disabled.pngUT bnAQPQux %Wy<fd'ŵ"TVjylCHJ4DJ5ndRjF#Ս1Ba^|'#hjcÙ_q:R~M}hz݊Lhzx>#VmJ KXqQkEGm .~,;:~i8KDWH\|Xޚţw-]fX%I/6he@[rt}D;.HN#MG$t dӇݺ.N{d[Tyh vru8^h _pЩ,laAvX=S*mΙ0H}L~ᯋ&019O=焓!5ep <)L n?@{T6\j'S' )b>6en#gE7f]'AjbL!TTqcz`a-߹ `maˤ`駩t1gw=R 绪kh=ņ2ksr.6lEu3wGfnh7KYt`gQwЈ崆(Oaħ'>YC[pxdW: 7u1~AN!5GrI =kLjeEmi'wX$SS.NDϼWՃuzM0oIp8i|d#)^.aJxБl A䑋 dr0L6w~68RY+dqyqGT-q0# 4nӳ1F3r|"tz: BD(Z8_bEqW 7p~ "7T1#J[ k|%?$Cg_TD4C OL8NEL:\Qsޞ0&0M ;> )&`;ʏh} By'wilmo+оVIx ! Ƴ&#*Bk/ rǖepCtJa֌<]4Y h3ai 9M՜Epʟ\#>;ߒ$vDɷ,%f9q?&WɕCML8xVK<=1~ P6Y5$w[7Wז±.$uhK)6o>[9K΅54}ϥCUJY޵y1i=4zD’j//RNIrq.Atڮ$/I(ZY|* {7. E%FRjh% gA暑8cL86[17et\eefրB 7# gZW% ]t%Ɔ2SX+o(?z>Տ64yJ^غhXAE͇-qC3lPN3ѿ ׎72Z?o|n^nާ>F! 1ftXqćI%thdZV^]_/T&k^z!d.J^m޾:Ոvv%:.ւECDyxH8IxM}l)?yJH?Y3p y~5 *Jng2ܷ߯)#k?EG'/WGJlMSScu 'zl&Og- a}tabBp^Z}F0fޅ#S 3 #{9o)h͝Z=5zogRA:Ed/M?;^S|4U,T#Ās .Ƈr;h#ҮvV<W(h\vqнhnOw%\3.K1ut+Gcq)t<)F38˘Мxubɡ0(z29p 4&POk|o Og dKW;)dףɉ}*IquP?ڳ sủmJ?Q˂@ZՇP9MUvy*.*T_vTyg* CR;zk(,#EKik*֫7=0A[ bwy*2&WR ˟Іs&y%o.S X9#_S*@ѱ⨈"`/&[8)=%|Z1wQܳs. Fe'fV(yuʤ ʳGŸJ}0Wܒo֕v?Y&ɃPGw|>1݇2!bmuC-nj0D4DxUK{VH7V|%Uqr؅!E"hIۛUX7 gu!Q_&%@j "s J.GM0D99E6$WgI7($tSY25v[>OqXXRNC<=QZgX}umf.z2!$%V\.\GcXwX2? %-uIURkbPن,T>FWPp5TJɘq8>!yfeՋ*GpEw-J9-LeZ|/!:$˘T`W]П%Q_0\m> g_ XA0MPzHWwSMa<['s|L~Q´PN|g5<4 |<K|EGi/B.5cG'}:>[wٵKU&DΔр4o,I8{y6q 7TE3xz!{21o^Ez}2]4|T{iK1'ER$Tt8Dd>[1,\'\wp‹|ɿ g+Os9nu.FsKj|~J t"`]FtRb8 ֹF'>0j& x nYh Hz7(B\tPVr="CBŠDe+x D_n_4ev hSlįnOl7gsO߾]Ŧ>ުo\se*> uܲ *,N+pxr+qG69 $`Paz`n{/ԗ\s]T$FQU_?+E]5?|Xj ,?^\x1H<VlUԁxzJPw@qtcep:NNJn$W5)%&А ʩt6=q)StE<ߩޓ˗צdW L$lrѝZ~#]11 ~B!n윢 tgr0_ TS`ԦvzI_wЁ?uM&7]-8xزf?5P7Z8|U^~M\(}G[ tʢ /l%5*&FkE-K* * ֠ST[!e{5ql*F>ٓ@%Hp)5ϹЁ9[u-,&_rVzP0/.kpg64GeC$n([p[0*Mj }8UcT ^ɽfMf5Cw"[`7='bz |lu=YZ@^Jh_^Q.F<]-o^]ˊ-}u]x{E ڃ#ɲ+ fG\wHPKt91Y "nuvola/48x48/actions/kgpg_edit.pngUT gUASPQux V{8igaסwRFTfLXDuZF(/\#&" FM0hq>۷SaM<}=ssݿ'vԎ9%K +߽r΃gg|OܯgCcÙA шP#LRtTMr8.H 4'@[QtE/d[~ 2ilvaa7NxmFfg_ (+;{deT9(hB@lisOVz s+(|F4 R2C侺' 7Is;; + /dMlWc7sh}@kww*(!-fxBu{w蛃'El7{ѫe HO!tb!kkAO[y s IGo;U+P+jiYED^iMAfZFyJX_*[AүZzO=_l'풛RεO:g"FOjQڅ)D3Oz̩Nū KPx$wMܿ~}sj݃P$ϙ]#ܱzT%{Վ hJ |K\-Ф4\dߞo>uQzs{{]}|}&K*v“{] #ememwb¦:Y, >| 6BG4!OrDHI#߄Ϲ~_|Jq\s|IիңV)6\1PUnz١Oa*f^'"h1VQ#KQ1w'XpK/)9ҁrۤ%#qGA^@8F*%q wC~IDk̑3UU(FȚ}i,\7QO59]]wU5mYW\gqX)v޵YRFǚsRSvXi=Ŧ+1Km!M7& )%lc~$뉉 fhDÆXgfd9MGbе4{:0wO 5aU4X-# ƈ1TCҧ$nfTΥ,Ăyk\՟7@~ZCqLזkނD`ZLa[ 5RK<fWIt-|"(:/)^J;q#bNÍ"rOTܱ1GfUYf+a*ʒD%Sٶg)`?}^8in!t~=t^AؒHM$3r7Dy#AƦ,Ϲ4z4z\KBkcڄ2 Ӊ{. y& /,x2j% zFƲ [Z~x&~ A_1/&θ5wzm0 ?-PiK|=_BVx3 v!~#{ En{(?-Vh{yjV#y\4 \k:ֲZڄZn1dbINSɩ, Џ7SS6űGy't,E;6$DE+Cjo"6Ec.qmo+c{|ʆ0 ?q8!*HR96\3wliCZC3ֈVN)G8&(W%Ag&OܡMu<Ҡ\K0&}XX Qߦvf4%"s# 0.o, |NfVv%jә߾eM*$*Y`SݧiΥQ oSxB6"HJxMG믩j0Kֶf)b,uREL[ w?!H7a:87sbKVGnQg: "`M-*`6OpΤj",EKg[ԭg:>^Ӯԡm Zkl{H{Ģ~g[hu]hk+3/13+<5 b9Ϛq4KK />4 }_DklZZg0(kw-=vqhD]/MZ]6p&%2Us@!_g,0k֖9+oW8)HA7?1=nCr'܉ALyc:WWr)^ ,(}w}7 $M5g uv?T_?PKt91 Ѹ$nuvola/48x48/actions/kgpg_export.pngUT gUASPQux %W{\?I| Q"spsXwW+Ȃw hmNcjನ'Vz8dOA0CcyĦR(ؓ<] &g[v;&Q7fh88 T.uX+ڡ[- 9hC.غϐ3 uLšZƯ ~&:I(uo+Wb\2N/k'@u(&`on-} hTQėB鸠PPo.[͟:TC`/_\_OAp\Ձ`QdjH-.K]2f A֕6S ~'YW".5Fkb3KZCf-ҩB ,Kǀ `}V }j?"h~!kqw֯HND ۑм몗0x")JIAxH0K#d֥ @D1:xᮓe!`Fh[unLUe{sTxyOB2 "(fo/z9 9ΣZfr5Mx%׸.d(jS)PLuHYBSV ^W:K"$:0hqwoIcl9t< a8do9SYBמ)ſl5*M<ף# Hi/ ER^6oӔDdUގL5Vs{ZNM\ ,H/<[s"Zwmce=XՍ aP)JDD,C^\yW>; k*pějVk.\+<'E,z9n'tlw| -Ѧ֑i@v'vUeL9/I)nkxy\ʙ]6к6̭Lh F=A aOҜ-;4#;aUk0JQ?2=`;r'̃/϶M0Ud*lW&3 _EOж=oZgp`hϔfttPx7o{yE0bzJsT֎?!G5dפk`@#rQ}T/nѠm|?J̤폰9;tRIlcwRNg@12~T׌T|#"ʜߏlGL4`bɭiIl Jl*3Bj\[| k¼Ё|`|g2QmQ Waߊ;uƉRv"M{Hȟ1/QgZcg-;++OqI >`7qڏoԠաPx5q2œN>R}'sK~c-=4'˧E)"gTٕRQ"]ԕй~C&^t >yi< j~!Aty pnt:/DחbFi7msbV듭&VAۘX%A|58]*4@Cge'ԇ"ePG.~fiA<ܡ{̨\*yE25j?-$YGmZla,K|$4S*ă_g&o4Ta`"[MIy/_!YtfD_烹^yx?#$F;UNǠ 4ee[NcBl6.3tICM$OCcwV. K=~ ۊ׎ynyB kc+WK$m%-!ᨨƭ5nT 9Fl Yt=9.xϮq@U:Sq$yVG1`g-J2j;Bje%ٞ3uc }K4Tk+9a?]O٢? %6]Dӷ#/cEk[^zo졪 y/T܉4{r#z֠)O.}|GZh3\i%y,k2oٶ%ek:&g*Ԣb(!6Ҥd?Ŗ8w5@f^\s@֢uLv=,9G%_ J_+88^f!3s;#vb-P &rl4*{!Nfy M$Eex(1 \&ݔ'^fJ\BnJZweyX(ݣ#¸s~S7E",R.->efe9{nq\3L&j7a$լ{f羈n`],;]#IescnxjdĘVd}oS+STGZ:"dv4f> =n@ ;aƷGN<Ԣ˰56'MWT}দ܅4颖ʱ(Ld! -vv -52Zs協0a)X/yUZEx>['QbKm!. !Ӫ.EUS}Ei1d۰bT|otfz|t${N'w[嵨y^t乮|S$Wd\^JdNEX{%`ġZiHbzuCL=) l^WkIyٺВ&u9Ef?(Y{16^4뮡䔳Iaap/+_/+:5OHiZI.yH`8-$޲*+[?>vPSAQspN ?c <(OBHe;}AB=Un;x5;ݬj4f1R2 z'"BUE^nldP$S~P7jP9Lpńe܏Fl8Č/xOf܉5n!/S1 SoV9W%5i2#UCm$(>aPԐ'$^+Jhwf\*]TՠG/H2 6FgtWS!y>#tj^kf5|^]Wù {1"Ҝ!C'I5CFnI(69 LN85@sUKCΘ$Hvj88#< zz>S,`J_Pr\9f7Ə'mnS6y(d* mW 2e֬O04c;wfa6{\*cJIeW3767+(Za]v{>]H<2A(y%ES gYmF_8jxlv @^pS{5v;x toz;*fzlYآhŻd'薲E{ +QHiQ`x-C\IS쒕R9}lcwI*Vss( ۥ($ nK Oo]º[ktDˏ3^R]((|<7gNB2.(s[ïe3wk&II%% 4@۰X_|˿ѥN.Re㊧?ry-^"˴4WРr?h25rZ>:! *s(yx?Bmò]t&0ZuW%749 L_؇xiP(,F74:Ztt`<`jg8C>(8. x]_HONT"]E8^ ZZxyѠ WUAx =@CZVJ>F~2W:yrcn"|0!5g1E{۞W #wđϋ('5|H^!Wib/!&Wj/n=K@>SGoO0DjPZuphe+[6j@'{ufr*)A}P"΂lĹыXZh 4 Xx,J7QjqXKd] fI*xwd^=C]OOvOy~ [|it MVm^c̛Mj5sfRsIGv[tC?c]8DĨW54@qG7ug}Cԡ_em~3s;tvߒ^VcƝRЧ^Xigޡ0'KDRՔѐR{>3N#9\vZv-rY;[WSN "2(BD`0'r4E&IdҼzg ѓaf.̃c IP }+띯?cYK$fk:XV<5ܮ.;rDlS} mcnq&gBgwC}0w_ Oj fexUf\r T{+=\c)?u9>`]#40qۺ-B-F GSRD"<{֒5]gL!]CND@4d@bC'_GX{P(9GQsg1;6F<2AmٌruldvEA\6bXp&F)XX0PM 1XE1ؠ03=V~k)?)~ɦ<9Vk {˪eo_zX«vrVQFV/ OZo Jjt\>,kJxpw\MsK@ZxGzV'#q/EuaKkJ\Z_\6;zzx,lznS7=~e 迳js: Ey.}OFmͫc(Gn=4YJ߱EpyQYu8<:qa54{6,g;wL:"h<|p ȡ1!Z(Ns W쉮p4*Y e:h#U_ NߪC]YQj=JKmttϯ;:/0Q#^ҋyt(tptyB97|N?7FbՑ8!XZTq6Zm>{w*Q"[ fmNmDU¹ߵ'JdeKlIUUWR=)cZa~՗D%^ej^':NeMa! ۇ veavF"NQtD;hsOFa1v" %\ 󕮲R6M&k "4˹+As?$Z1\BcER{~ژBܯ"(b@ǖCNkMEL-qq?Mpuȗ6Xs֭NE-pU>EђjMA!}}T[ňF+qrfVG"x{[_)_O)O6'ek0 2Ħ =pEO%4Nz :s̙URXfڮ<گ5) sXhuUZ&d rȼќ0c"ZơNHF%ڇrt!Xli:=Νߪ{X_շ7g.-K SD",E!ZS#hX~Czd#C8Infepm̩;I+^ $F w|Y~|&ke8cd V|$EE!roػfgDk/vYFuTmim"q7󕤁0Ia> Oٮō]:2X!O7ArYRl] NQE> Q_Rkc9 6`Ĝh04>eKs(N9} 8/o]Bߋg\pyY1H]Ox]/>F}8>,T nF/ EMxJ-JOY/aDLuT{yW99Iɐ+L`>3&h2dJtD:uR̦HĀvKq%r *e gXpp3ѡ#-MMNg ۳bعK8z9aU*ςAݼN[rcMs3d\jy55'0"<1XYR&jdCn3L5u=X)K'J3o ϦKȭQjRIAaqg~`* V/lN{Hެ7(6G}t>ΞN̕=*[҉AMPt2. f,0 .P̳< /9)̛^3v+љ e42Q$YU{2--K"p:\l9bw ؁dzV:L? N$3QnБ VҪ-^ZBos=(?f uy`'kAiIwP&\-`I]x2w?.܏`g$3[K޽[;Gݰ;7 ˶L*\v>_p *+4zy"{8Χ>lz,tVi7`fac*Ꮁq+Y 7/U5i7x_S۾(eG fdŸ\lx/W'u\5?gSI7&!=_4;Un ]ڭ[:uja F#kH#x҇ÃHEzMxdZ;JX^ qq&ىUX6&6ü 4 Zvé37 `ҁ"ʓBNNeQڏK}e}Anғm$W2Δ9RkGڳݥ|PKt91& &nuvola/48x48/actions/kgpg_identity.pngUT gUASPQux W{<n]\l%lVeJ ېnR'ۨSfK%mJtˡIT#ה0z=<~>;{:۷y-D[X3 ؔ={9'"Cfpx`u !v7澘/*X8U 2"+lmS4]g(9 mSŜ告!7P+E%C!`dZQ!!4X0Fǝ#y:L wO B\}aR@Je!:z1Fiqㇸ!$?8^uERK:K-x3.p׭OD w`1@C><~,iy&S$gON䳅7k |15G +#ם2u%ܸjLGvFۜ Wwef$'wuѻ␙_#%ssɞ2`dHz @jeP-"z[z@K-`*=T/>2!(EG&ZRޥb,5vx;F.sJk!iܜS4}9}ijzvvQF^1isDw)AX|Dcݐ"-KV5z9rB vl*Ufk +`b pY\qnKؐk]爚! 6lI cWvKJۛɚIxٟїGF*g$"jwRzqȟG :^Q_-pb' & "\7;mHa'kr_)Wφ3֏CǏT| n=i fLL򙔚Lzs:7`{=a|܏!cVS{vQ rta~X: *):BqDpr~|=eOeP4nZZc 3Z U] r/#] _jAɺzikqTjvF'8 q'}}e>_ U2W }}B`z^njVC `]4Wpyz'd5044h1j q=&X^NRH_|ŀ%F0.tuҫ"/P#+!/-gV45HLID-bGm1&~IBFqe+j t5梭n{28CNc K0[7Ѻ FQyZ3vTm+Ȕ&pC3#X3Ґ !e7+g7}_g͓g44YW~(8z1MȤ>P\LGd>fƾYYHObZ=)jy m9{J=O8;dTA [i <ӚE$"Ewc! sQ|FQҴ1 qWGTHq߷7Қ:]^D<3H/jC3]t g~\ܴP>|owVO@D;ޚfZ`!+RC&VrU]˕`X/lcT=x>k ,ׇ+c.3Hd7]".3U%LEФSN V 3_㆜61eպv#ხҍBFz/k+C*{' 12?Ѧ@N|wg$:5EYZ#]/v"̰N([GkE8{ui>y;ǎ@~mc[:WeW3fHN]hLEBu*;w:n/ٞrKfj}^Ӻt"7 0lu6Zs\ku[1 ]vu^/Ħ8uPitСJI9o򤏋/k"~N{9&>MSHqZ Q%1*_Kv+u}܅3FOWy{}{q;tW$m賄\m⽻r~vB6utG3z>坳xV=o-kl?p 8lܵ1?uDv>pg4"vH;QuqĤykSRbIϳ+4<~38irXu"ݼ($U>Ker}ſUoLoNo}!p5QȐO"RϫQ}s&Ite nb8gsr*RYXP/܇߃Iey-|@_?]f*bY^l `!f0F'P7IGC󡞣GO{7M_Q&sir^ [RKȗe['\W_ukMggtQl8o qd(ﱈhʊANY?NȎ[ڹبjs8.$/ѣ\v7[/TyL4[(pZGWPxDf~`6DM js[l)q5KcaϒmZjYB e06ʗ7xB^]†FWp70fgyAAX6OQb^'H}fuJJ̵_#sO=Su9 l6Z*%֣$U\(eߊ-:3'f0G׳h)(/rA1XRf!.7 ~Nz!{ uZCF"ƚ &- Dڦ(=>ѼˡGvNc>Q'lySv (ǽJT pYugy .rcG3gM ٳV5(*z;+aJ ?;46z9nw.XPsH~k4$*jSsDM[Q+Uj/)usIO5OͿ>b^TI0V^zyqoۏŻo j(Qxr0o qAQE^/2B6ZH#6eBjTْcJ<38Y !65pQStNm3ݏ~al(JPEN^1 Ht1)[|yaCS᫁i褐n7Wtum`T k7G+_+?٧A 1\x/ͩ{z6{XcXV\p3'rëȚ:qJV&w;xUσM ޅ-*jA> 7co11JXhM;P\Q0`x2syO j,Cj5o,QS>z O^|)7q*e? ^k T#$+T@73`%wۍv I_Sy?z?}(?]fhzkvHw>؍yj:w]obOe"^DmVԘ  )6kZyq7 P:mc w]reo ބe['uj[ ۪+K)|{Z]p0 :fK;: ~?sLtzB֙N+Jt#Uj'{(G73x*W.(H XY3+Z`xr٭Q7!kʋBj֊g!M wF7Aa:F4%&H4(#/vg_M,'\xw_ }uA6;BnU\ɛBbd}Zf:Q>H*<2Q&T{ DO`tV;]xFr[\'&U8e,iM<;}%Z,[vwaPKt91MS$nuvola/48x48/actions/kgpg_import.pngUT gUAUPQux {8Tf`QLtB DJK}E9w#e*)tTN)]t9f]Tf[ϳYYy?G6TW@s*ܹ:ux7A5ܝ7fCB~PڨP?kCW޵ڃfH'Jc 4jC_H\[ Ttd< LQ",xҝoy\+ nZn"E}cgpy ƴ5[Rqܸ'd!S AWؑ3e]!l Yp@Er_B29 OuhtCmgشjjYmz4 yO8nQqƵgp٘oGX DN5YTkQAj y@!ITӐO7`IȖ`[PVi&~"N2 %U\t)%0+hPMJS¾ vAWeY4'87% :;($𣪃љ`o4=5'Z*K3m$0u*?l /6lK5Bw\@=y^@Ki-sp*z~p ؏2Q@$?OkUtΟgmWиqP2uVYi{: _u LQ BS4t\-( )GdE۟X):ՇN5Y0Ye=uvגu mrVNo:Dv R~LCS d}JԩoDiL<`YB.=q|4tu0wcuNp=6UL8d)@r#۔vn+VQIJݍОpy!*ƣLd'ʬP*^U7u[nF{U>WQb:iGVK"LW:]_FJ7ӗ mIuO?:&_Օ^Ǒ悧%=)వRL"g؃N)RfN2+ӊsyנ BB!"2'@MDC5TˣcOCpT #&VQn|C[93Oj/Z> Ը]v9.ow9L!P3\LR s3xC4E8&#y=vGGq!.`.D3g(WՉ׉'I~~6jU:zUHC4cf54{4LJ[%>- d빞n43k'PB@K6ɴYu ^B1owh3g6?O|ەs XষtڪLw 4?y5 :3;2>Ъs-JwU^d=}![8+b$M2بLtX{w$ZjzL7# yd)U"fcbdF7Q>qi'5e=ǚd÷_q_b2Pi**w sJf9*#CKJ4nZWZވ9 MdJ u>0XDpV5 7mͪdW[^~9)Պ[bb'ox0ܯ].a eP),DZ6+0 f;%~ XMJJU8,4KIWLsFw&`pӭ'I7񍣪Qh+tƺAVv/w'a9ͭaоh;ehrq#X}| @ 5nfs4?)[Ҋ`,"36lV`obYV1k&ȶ}dt!Fۡ УBzDuGr/K_ǽpͮzp:z+z0 7AOH '5h6G(\$>W@yooCdx-8pڮ-lR]A#9lYqPkd=P a sjV,?9)sjcbop?zNHU'AH~ʜ m yszѨq/Pi=ۉO(ɟ};.[𳹽pwRXv Y ?_+W#ъʡǖb_}VPG:Հ$2ORKSW7+6IW Y+1CE育-M8,pd>wm9]VY 7U(21;af}x = <5$y[k C@|:k$_( (O:ZPBCkK({s\3"l=wr*kf,ĉ{3n>`n*>h.i_sN01?%U‰S uJsbU skMn RPKt91wi  "nuvola/48x48/actions/kgpg_info.pngUT gUATPQux Wy\RYxis̵l%5MpBk E+2+#@E\JLJ/kɩ&Q,--̜J%ɒ\ 缿yw<9% FEi#j-:ڀNvzbJ'kBMd?)L Mg$G%yХ l5P ,jo'h5\R^δs-0~-ͯ2Hv=jܮ1ެ-*$4/o3_uy %CGmZDA7;@Prn_%?ܻy'4RvO|ڷZGnu{H%|*s4CWDR [qQv^ Fl`{v Nr"<89b)PhޅC\ ɿ,ަGY0o2n5+vSᡘ*cb rݜ|V!*="fkT@\?M.5DNJ=qk7c\Bi8}mj/Aۖ_Hq1`x"ʈē}v|> X~[ xuLjL ʬOi/iplZ(I?Eaҏ]80_v0|—ƠL]CWf\b7zcf etVme(EU=x~M"EvGo!1CÛ篡XZ5= %R:SAg 3|dB 7h!R]"qɮ1pJ.GOC=|386Pr0Vt5=wQ#d#|qjvIl+uxkO\mO;OIMW4Vbɼ= у7Rb$drBQ/9jurE׬~R~@4#HHg'L8EM.+Z2P:1_F6T., |5dNlɮוBKUS:ky5eICc73z'y暈VQrN$^Lq~r*2],|yc Skoco;K:|{" edIP3Ur  ӀRZ) T۴foL /~M$b 3ZvoטOWdvRbE񳍉fd3+IV&{(L,G`I'=4HEtI#8uۈoâDdvwa&#,588KfDxYiud<E0,j±r1NCD@")䚽.c X)h:?j>] BO(Tc`.*DC`cS2c\[OUFS&U/[BBۡr1z>&O懎P"K"װ%DV;}%EiI?f{$~>KI KbNMѓδB LD10}.<"c?|a]!Jbsx;jxr&8:T/u(W@[^?RwfmQ0 DZZIqO/VBK'dOhؔ7'Y-S >>Bk6jJ.}t~)s{;B\ ? ɔV6hueT:|M;A@[U}]E|3ψ7f3'ɏBemqA QGW*Rwbʼn >e֫ځ^m8ʨ1!E= nX>+fhIMTn)jk. yPΓ^2 mrJv S. %2yWKQY94_5i],]lFVed20\ùNY*zgpzjoÌ-HZe' x"AGSpnQmq{;!yҴ*S<Z> ӤO{q2$`֓[+>)4/n[:F=:bү3)]0a| HPJޭӐ ~y'nokڷ 24ۇ=5⎊%nQ -AW >LvZ@X>} Tu~6W:K~`%sOVGG\Ei:Ss|VendYqTk ui[hw1k -U)G>2ZG^KcLm &}n@:yϓX~WGq r:Q+ N)+P\aÌyO1o P *׷ctNؔ}C0w y#V!} jHV5+ry#J֊ݐy571P.IALjN<~u޶ҭ|Y8Ǔitv|uU-?ӗ\ PKt91)tg"nuvola/48x48/actions/kgpg_key2.pngUT gUATPQux uWwXS׾)$/&$"$ (*JX(@l\:T) H@A`% ^@z(Bŕ^!73s1̜9ޣFMw+VF?`va"x@V5REˍXoq*`p}T'R؛ ']О-#b$O -0xSMٜ.vx>/SsM|y{r{/%9MDv%7S٣(> P!@ƸOnĸJ>۰<އjM B{K/]ʋ񴐤S˫W:3T s^{JRӋ֒Jj@cx%EiqX\'|3bV*$vިTI,i+q^7P>IkRCXH[WlN!" |_\n7At0{s_b+"s|o9C'}Uϓ߭n@.2ݲ/7)g2=W^ӁXRIă7#@`a``FCsK;Vj)V8C{p(L%'Gf(J'0=a6I#̐sւg%Pn``3xJ2TlRxdmP.YV3#Y~a@5gKi5AĂBE)rAl*2]ʻ_*fq&Ypp'C+W{Are<,EK?Y,Hd+".g7f6ß&'n KF1ZP QQ\0"#}Znzo5Ps=&FdN DƝ&\Z FnHGkA@v] A\x$ [ 2œqpp.`Cs//7~.@ZS´DO":Td3q,/*q$>+j4u̿[d]o>[e1kRRqN4d4%.P21Ӵ!jwˇCXg6ļaQ',GzS*)Ă\CSEeF)kmp t|q䠜0NsJVߧxmCn6Bib9MP,/(Zyisa9"NY:%H^?˥8c$?uw>tۤocEە Wx dSB L[bʞK%v$yNu4cTv/]4ΑwO"&Fe7;(Op$Sc@'MMېNeu;u;Xz r|AbB#[e(TƩ*Q_,sG1)EҶR{d ծ!S63٥F2nlndY% ~#"Q؋$xX̓.SO*6> Y+^jCH#|80i( mo(p%{pWq;s:wC_t(uiIOd^)J.:s݉;%w%} 54*6!E&v ~ HZZ$Ԛ8ӛha"vK)4M^70v8mք(0]Vب@86OOJWpU8k U본~wBL5OFb!T:,Ux*ȉ*m܅_ǒY"߭?w:Ԅ ۺc-n 8ْպąa,k*V1֦\.}s3=)j)LJv-s cث;|j΂|Qtu(_Nܡy,rw#G Rqf O'sIE`/A&8(~_&T?9`>.r{őδWLNDDӼiJ/cz{gۭmٙTW]H__yXZ|jcfiA*#a[og?6+Uf 3*`+i7~r7ƌ0LJQ_c~nsK(B}i$DvOm7N:-8 KI2{ozae a}B9 K+`1zUշg0=;3QԍQx`LS˰ h  Xg^cd{ow_T+Й^Zf1sS(`y<ɮŤ4ify\+2.0NSJ-(X/r?; U?EJ"R/ X"+QX{\1`+w2v:(1Sa#Ң:BKeWam_ˠ%<̡c°mUG-jZkRZ\Ԇ;Kp"$"EVkkf]s3#iQªR}+Tܼci G䐶^|?e}%OP?+gAbP(%_ɊO*r!^gbG?ݪ *mmͰ(&3 Ŧػ-NihJL5*jEK]+2; 8]۸:ҕ Q4dpd506=]ABng}-d8NNN 0$)U(\k*{C!}s!=ئ/ZZ?^B|aM+E`x}65Kn=7+ ~?Ե!yۂ;R383C=Vp*[~eFKe lXIJݨL_. ScIEs`yygPKt91fU/"nuvola/48x48/actions/kgpg_key3.pngUT gUATPQux W{\=kRѦ"zj"l\J-lMۺ"ʽP/DFhuA!*w^sq^s}'I[s&[6oخ?]}1 e 7Q;ٯZ6E: \B"B)[sn}[64t RV'@% 76B#,/Eax;DhH =XJ.EkSzKH2x7b Tc6mrQ ;kY9>! |ƍQ,DJJpbƄyZ]Bt2-+8ڤ_U3dx4R|6 }7•$YJ] R*g{*qB/53bS\EwƘg 6 h2zn:G܄'bcBR)oi=VJR{-i w[*k_vfo&Щ.pS탱O[0\/MYp*+†I~+UU1;=7x>d.tbԟS+uO—i ''Wmeް7v H>u%&zb[Y>y .~C[b2Eh#}n(QBI/sYNSA0Lc2ա%KJL\\u*psDm6捳Kb@EvE2fXz\2銫Kچc =AYR[,&>$&T94K[sg2w~֖qMPΙ=*Q]~FhffvN>Y ,%ߋ;I:{*R\>2L3 0? 8[N1،Bи qgF.uVWk{|OERR3^iScqlz UDItI/%?J/_ҍYAbccU5BŬ~i Tdviא5?Y阃y+OL&0|o `9LlJ6;݋J_s'O.B_bCO":m f뛷] ghM*Ak퍻דSmeL\Y$).̙ i($Mï}m="]@WC&%[x\4<3 v-*R ^RbJY-;s!%e؜%A1RYϻOԟ?}.#ô1@+m7$=2bhʶ?Z 7]' ̓v;tqQ|r\҆)h]Hj6楚-$.e񻯋sxbirntR!r=;o;FƜEPfה܌dOA`I2=IngO"e: mwBb殜|SkҺ1ypX$]S)qu}6r,>b93>Ld_nijc@ KH/^*۵lTM&6l{iNJ$xgv+fH_ k_eu^C\`v*Lr}謚@7ieh:1޶-y X봚7ccc[jkO)%q@ !_d~lQ6I]Cc[Xʴ(K暸LI!H{;ڻETo?,;$h)@,X7~iu\ S}=iSExǡ n qu1#ҳ,ZE?>~iAFF4RgdZwtmU[1&<<-5gԠl>Cj'́ق s{zV IRѯgR.1p8 ?*C$sS#Zѵ,RPW-@Z%b`..SptM8F_e:lު _Ȭ1stdNQP|(]Kaw,7"v~ZWQSw_xx;Q ]8rUB3 -6,l/=MÔ"~/R~IjU QLpTve~Aj`s}u%1:p[%4( 2σj.gOxa-#j}LߟGR`sNWiYm1Zrw "yI*U"76Ou$8aE(¾F8:HQeTwOZn )}g, Hͫ⡶Ox~<8?'?;Z? JM!˧YgS5#<$!'fPE4u Jy[_VG"jݷ8m &>10 [U^pV \>~`/7.>\k?*͟{nWA%$, 6ftnڕ b--˳҈; =y̼_QnFZw8W O"p{7^|eVΉQ̀ZA^ )#UeL+ƀ&jeA*Fuv-sUEd#:{HGnŎ ڂ7n75nmn։cMUẺ+b8^ \cf e*0*&ǣ|H'( Ye ?Fo<͢+fx]G_ޝ>cgE6ŝ}U^J6:RNv A~r>=nq+{@&:kz-TˎnH˜E|mp+a,b'?xU1:yv"ouVVJmm knN;m/:4lcŒSXa,~c}.`F;vLU(榃K>uR[Z|'//_eV!G??#B ߺ L ud&3,ȁ1)QL1E|~!`jX;$_̮=Itdh_wO5QOYx2+Sq4 `N7Y.Ҙ؄ fSiZWdLG`Oos_0N8nvRT˂Ý/48 TsI  7H-f]MBIn.|ۄZ\X],UOwBfie-g':؝Tly^^v$i4ǁߡ<8=~)JٕN ;pȧx%rg1#V+ʈțrJFEm`gtrkd=D-Œ~ o/Av,dOU J;;MS]r# .Gt_$3煦Z Z/?Uh)P,hqNN"I.[1_GbryzG{0%rz+0T) b~閂DD]/_(r/Ü" %< H'˽Yy9Y2ynߓV:e:`l㢢*8u0 FrOA eC}z@gƵ-A>$[;uaMT6rq»FQJc?Lxs*"ܸNܘ4sӸ+4E$&k%*ucVǍ&TjchhsӿND]Z 9jO-UЎ:֎Z涚܇'<$2LxSJ&v:?n}Q| f:a.Vژ׆u^(ݬd of[w–Sג_;?(+pM ۠g61:ۄM$MDPpP)~qÈKj[6znx?PKt918} #nuvola/48x48/actions/kgpg_photo.pngUT gUAVPQux MViTSI%$D@Q$LQe VC`hA(Tł*C$a*T*!TEL!ŷޏ}ZgWȍ }c 4;sFc.?Ӣ;9+dgT^VN\FNLOpKNIK<ޝ8'гx=0U\@45XLz3e5SL8Ydg_n^^NFGF>bV)w"E;<333Y&})1}2fŔJ?l] UnBȱ&[""H'K 8JJP١ҋaz *#Ʉ*5w|C&ᩡY#bsS"fGD`3 NPphjd8dX\8H۩*!ϗ֍{aL.KsIhHy0`UZz:c2Զ|HQo^(юPA0,)ϽIQ8XRLtSHB!v^녹.GGR aEYSj ٛuaJp"jfipDQt"u@уuB\uj_,GH7V ā~Tz'GB!T"\:727h TS(]+-(n">B%~&7E=BfpΙHFmaWWx d G  5xG [YbQ%vVFz8;{;R/@[ vYXXbvu"WT+a keR5hA]5y`0^rDY˨ a5If!uYSU70IA= FYvAih~zRn Mi] CU ̢ak17o`RV:d+Mhf'1:$Fw*l^|nC7/t /'7q2Yڸ#J<}=w kZg?MU>M: "*(#SI緘q Jê5s?B>x1aV7Au'yؔ{@IC8u"8P8wpMźo)y៣&ZnTo :jfJ>d5xp\Rx i? :jYMJR0%hn9x 9]+%~g1'n2H,L=9(yI~I,SMo" 9Fh>v+eB_ W4g D^!ƬPgׯzQ>nH>{RɞZ.dwS黃2bxK3OЬM8:!`@YKYy6'L@H|fVJcf:j~[Cî['5tyΪ߼ثLlNBƆ Ub7*r8\.wCStBzs>2Mi+Lwi%a`}jʎUp=Uuh5T15,)8h=ʡ܇Lht?qOY`MqzŅɁkWf1wz``I@$S#lQN4S-L?JOںmpi323=27 J(oΛ, ׽ҡ~}A>,8sכwhᤘ\f 5(Îvݤ3Y_XXs@EnO` ťw}H/w~%itu&Pi?+=}\V`յh:Chw3m[wil6JUD2KE^BRP1 c_*j̴ #*6J|Ȕqo@eQ1?~vB1zUk)B8+lg>#y^?wsSS^+ 09,jcJV=i{Y{1;:Ln))u+Gh{wi(;2c\;_bs ַ!vv=`/OoqFΡmvFRc6[C<ܨ%W-GN]<W[Kks=juQM1>(;Ӻɠ%h!]\8.J5! IԸطe-AQlc繝/7 C3%K]]2}mSDvFI_m䁳0vj`"1|j=MCUpeL$$S,Z{@=q"}(`.(K[&=vfgg?*AЦrDNOkP0 vEea_V>kZkD%|?PKt91טv "nuvola/48x48/actions/kgpg_show.pngUT gUARPQux eVw\S7700iAEQq EpJQ4E) `'74SXWV]PЄ&;M, %9g73ߙ3srZKUAl@GpUjm w 9aT#숰0ģa.廑#%G1?`W{nHeerc:]¡}ބ*c%O3X ;r .V'PS"IG,hs?EftL`,lkRߌLurk2&wР2PaTǠz9::,> rNGWl-P-7ȿރ?TS΍z,o{*_Wݶp9?F̛`W]elbbb6;yh啕p(B90A$g6gG߉x+++||@ڝ¼\~hpSǷ# /(exM|L\5AGc4 D=.|Q4w|"@+G hO0z;QGfxu- 3@̿.2nH]zn1[I1B8m%:N8+, 2P(Q,n^~F$$Hmmm-Ԗ8j^kKoU/MsHNjo>-1%"c%].:᧦$B2tD&>9yJ9MS΁ҭYbWJx5yWƴ@ ꉑJLR3 ;:2$ϵJo=843{8Su,􄧤l=5**ӝݍYt}l. \wŢ(~kZOWϘ:Zh"70~)+:LNʁҋ׭#49j|zik8(RR|ӎ G[fē˛id*qh0C)S$Tz%`[ )>g!!%iZ!1{Yc7CMdt?Qθ&\DP2 7UN? eh9=^'%/WqYl ў:8&fytSϺsnFFFU^3A^~@-.G),%aB$?s̭4fVdU{{)ƔS-<!:Z R=Q3:[ ^3":e5Eg7-j2[M? cU 6&U"tEr 2? G8c- rukh(G .]86;HINCSX| Gsj{HyX](*kEZZ6.)3:VEb4)F<APym7)I웆r^gb |1i^ vbupɐ P5gw[jmt8b%L/$UX`td/%ЩE IX (&*Rϼc1eӧjj>@ɶV˟c6oύ>b<#OăhvО$3Gdىx7ѨWKۖ+e骅Z%SW ᡐBӗBڨҝLw^ڈ꫌(Nb[ pԓY"8x[6YEqRUys'&*﨨jKz'vC9pWoⷑ_SbѐL"n*.ζT k1<wrQ<w/U3V֑qə)hsL{R'|@R׻1 Ti0X":}uH{N)y tTb/ pAWC?5pD2\:z>׃Y_7>dJ3E_WiJF1-jBn K_PKt91-}j|"nuvola/48x48/actions/kgpg_sign.pngUT gUARPQux Wy8|͌;c\ŌmFJ"d̥%f[Riъ#BL (2W)\,)d2?>}s9۱`=V--^= W\(Ӆ -QgFWĸm>qQ!qcfPT@09?4#?(1M-'t,dbw4h2 ?+ A;U<͕ǫT g-J*,ab@]߃M"AIY/ ò \!дlykP4&l)1#8LS{pxƮ4Q!MˮلXmVϤS%ɮ2E{1 0H4Rɀ`ƈt y!zF1>#4Ӎ3ɉs~7z܄k>SZ -^IѐfYs g^iys >.7L4u0`2:cv]sqvtпc14'jKoE@q= |zfkeK M‘,Di'-#Kt?$[78:y L?|vK/RlX^%c 9;\̋T =0X"]J`q'm$gգ@H~:%Cͪ9oroM.m/#RozY΂a$g J.!d$s>̫sUv/@#: w򥘓p @Dd ٚLan&VKwyػcǎៅ^$APsTǸU1ֈ̇;MD΢(g*u茌B .oTOh KZtbO8`׀;cւN۾Ezl}0k0k',$% a_)%ޑu ?1HX}m]dP<3X^K Ȉu"4!F hqD~bڃT@ ԍ歏3J:WTer*[_JowNUF_IrEVً߮:TBf\_tN[qq`e^%^( *clql|i,Ƙ׃jL' Km+4$Bb&)F,4.;z~E |{ncZg nBOWC=OW.Pd+Q)u?i Pk^=A$&v++x|*-yuDB4'D'<E.3`ֿ UaErdn%>F_ ^dJdc{ՀoEyV'aK싋8 ya宰 I,t/abIIГD64 F9#s ʁyMX>Bh^g'YRG$:8(nc~_X] Pl{KY{5$%kS NZ5\0quW4~pQ:~OQ+Y䈄sG{hd_$b*k#DW9+{YO\tQ[OMč,a 'SWEe:꣇ ;˿,iq) IuJ6{-!,wb\nd>Hx|OV@|FW6tÉڒc:!L ~ޑs53<6?f*M-;ҌkntJ&ihEqx"ն^vV0:>4q0f!lb|4Gu&k7eWrMQYrz 鱓@hyϐ@(`JyҖ/X\X46Ee]< Yl#W_q5 W(A5h䣆04:%,M,oNEڗ2nn(v~FJiuyd1X-SJ&'1I$<דzo2=o_>)cQumrQ->YryaKDu k >A ^*Ӝ7$~;Gv,$*< y8_[?PLj)}܂V滄rDzĽU"s•Me_AzyQ..L]'3*:Tp$QuM!Z՟ eh`DqK[^z(s~*u r DdXK -#++"]SCyeםK]XFX3/-89 N#-i<>Ռ8ZOcuOh*Jvj&N%~5Dg E).B~4܉6[C)6 ׅ ޛoqA?[;pFrpCE{)㷤f,B2aK~8E1_Kk"!4 -Ú^NbX#Qށ51>eTH0W'T޺"A8Fњ&5969H4#n> 9u! Ubyui|/'N~e5dI=GӅʒ1ִx$AlYT}m!%8)Ue3'o̰,ϛqH3`|X '= 4w-8k!^q!"&+|qX]\JPKt914kIs"nuvola/48x48/actions/kgpg_term.pngUT gUAQPQux %W{3% J(*r6cN%t1RZ)AR+1r}~z>^җn7m7g]MK&m5LY5!5aC!2u(|OjJ8VvY\vLڵ+[HNєAwjNn,yx]_pB-kW3[YR`Mm([57W{ư咏ZZb>:K _?W:vahw2ĕCV8c%%J饆olע=m I(_¹+KK2SwyhdwKv`OoBcIx3y\!YqgI\ł][.f>[]Ès?L $Noru\JN5bgG; _ 8]߅?erV4 r(Yz>Z:8m 38XU &j/ѼTݛ!z]C16c&=6>PULڮU| (Rpq};7*~~|9؊ ZmZh1PW8xsb|A$kSۍ0|U5r݃-P߁w>t)ZLóR.JKA3nq?nLצ?n <\P&x3R` 81tbJ?}}}ilh kJ tO~zfLL} X+hH8+mBfm{/w'DIxj>aCn d\+,%-n՟/>^Ɲ{5آplS TZH#|Z:lA7quaD44.mmV L=83^xnRJv- 19%i#:6_vm?/|(ejq{&܁00 >'JkN](k9/.  xp/hCEI=۹S3Hk|o1)Z&3kmC Ju\H]IjټX:(L(wdjQQN]8NxZ@b%uhc5أ.D7Ll7b/ ̵ Ąl^p$NүEַ 8Yқʗ큞TVCa&oe%D?O"OHDG?[ikw旱wjʈ$x].$8%ϵ~?2u}d +胲yU8{^QW[%w3Hl2̹W˒M~ mZK/zWߤ@:%pчwsݷ6+!V&4O6T x  VC1e AZňO2/66ɓ>b-c~!dK_^p;RvHtn?Z^>P5T/{TҡÐoA/XI*n۳ts:4""Y5,I~VGh#E p֥1 :anfv#iSh2tm;0+eޠDyv.Ȋ @7`͛ lCɔoIcMFzh~c'xknwN Eņq8ْ9[*h'r*+KCƒKbғ,ȖNmT "޹[zU)Z[A~cO>D59)R\7{{K;Jٺ=rdNmU|<2t@1@[.l̺~Adsf=EI?p>@?;op>7ڧavs?!y[nV_H(އeΉI괈 gEh ?E<8 38m` ?YB|Qs5mY0o_+6]`fIl-%N8ѐ~@+ԯQcM/~3"[˨O~/\63=/3Q CЛnZ7oLAG9%n4EMBfrEf33 [dBg bJe%Bq,,Sb;ǭxa"O#bgaUcwD.@vPK6q=J>9i\\dv\uրib*o%S hMg|,ᆰ'.rwa7m\Ȧ$ɪݫns-EscAɜt%H$L\bw |3Luƍœo!6/ Ϙx'ݴrϢXSղbNM&2]tdS`4<.8U&mnzpPKt91;B}%nuvola/48x48/actions/klipper_dock.pngUT gUATPQux -XyXfu)MyIKP+,mS'+qþ6-57%sI+ffJTP-*jii; ~u9<<, W#=^ocJ5H>QᬓUbwbƇ\@£B#{ΆDF O<@,7E;>T@ށ0zHڳQiFZ ԋط-@MDRV2taye(&Ly|ĸ- xiTat:E`|1&Dz$]WgƑvqpDu_wUN*5|CFz0@7h])g jaM Cb %&<A{Ѐm,O磯QipI Fs,BL i\jS3w@KДK![Ǻ x`"l6I\aQ/#n{URZ'R"ǁtsa؇K450gP'{cc=":'+&Z AVQ>ųȖQ Rg_/7$_vvlZ{E:DkE|J#oύ@P|f@@Z#R`GѾ,kB?$\ ;97S*|osAyS}Mv|3/#وPmAhSЀNv5z~ А*ql!_WGaqO6ija݇9XV$u@ǦL_}[!z"[xmV V9Y酣` kLܗFukØ$edi !JgXŭ1_jOg_A^o%4#\:ߔ)7P*qT iT/DxNƮ@R?!oeV#b2gl~ CnѦEp ѵ0']cYe`cS#="n͠7M0kwfWCX+T^fp?B.CGu+.^u2U}ϸq4ޝ>~|{R0J N4yh OUKךo_γjZu_2ICgxJlPLHGy/s>E!VN"b b9k>8L<вVq~\9~=@ Ȗ5 ÿ5°, /}?TJ'(:hJQ,鏄+0iIKNj0V(*8$-IYЉ%>?YdnI)`Hyg#TOF̗8\+XF/EW_5)4 6 F"3u8<7z|qRӷvf>>q-^ρA^6L,[;Be8C'Fm7G!W)&Q-peNδmaF I‚-/ӽ:&Vt|Z?!5De Ig5w_W\֔cyupI_nKd질L3wQhH E`W6qO7, PD %^AǯݶU3oqZC+UM1nhJ/bX}pJ622PATT|}6DΠyNl52JsaqZO=8u ۍlT dZ0%u]2*©ժY<|,I#Y_ aJed ?{ g +_M$;MPp Wϗc&mHXoύq&7T)s/@A JK¿n_$'|5;Ǿ|_Mo D8ò躟#-BCM%bv)$ՠ-hi K :I.?gC Iݽv$~.lB~ ."R$ċj&I`dƥ!8S=L&HDBt[|P$*Pwgc>q 3u3f˫!nphaI8SJȩҦUЯZcK$Wk{a]/l ^x<=$Ó;np']ݢioە35U#kI*9.sy|[f'\pHrX\0y a6PȖIϋ|t:XۊҾ2h'D8,8Y<%ZWԀSĂ#57<0?LD?Oh&sSWMO] ?.ߎzPEln g,9yC@qN~)@!;ݲeXցY'>vFugy[ u 7mu*7q9ph|Psӓվ%OZW@ gxמrRog6|`[̠m-ɮ>a` ]eMϷJSTx*:S=CY3Y::G{:aP ;IA,?DŽ$hmVVMZpbGC>k01>ewzH>7 'Kwxr{/-LE}ONm(dЂnoer^#z$d5$\k{݇11j(kwE;;7b^a {|XDZIȧk^:dƮnoì{h1/ S6n$Bmqw.H#Z:M}(YZųuc$ȕij,[|yg :|eH`ڣ0i.@> 6cC#K_U&/R#2=D(]nQ|![܍9i=Խv>寨,cV&tEV b?2ڠ]m:{[ünCƐZB2bJR¾l*m4=)@w?0zTm&|u |kGuyYm:xijh}zX=;˖뽠#'t4i (ie1(K$; '{ߝخ[,sx34ςpL`MB/66Ҕ4{C"Υ'7Av,`[n*Ĺ8ᒈ*']&rx{^1t;&^A^JUh ִDŽz[lRPT\@ַOMA^ٔvY+B3JT_ {wQFSR`#W$5@\I/z¤!pn4qPm גTȷ#J6p D$o7'#Qbt/U Ag^G/ݖz_{)D%:$71ǁeyHn$ey؝m +6r@g/|:8M7xLErtUV ʸK).S-N/:fhojiٖw4oxImϓG&hrЎ(];P+{zSm8Zs XR3{XvV PME1/yVC|k6ٹrw떪v(c3 aaڌo\A?k.42xϷe/cls}VF\v[sc^ %@M)vbՐ JD}(dV/-Fס0&oq$.j޺M={ L/ jh@5#[)#v|U o)xި4x^1ܐCH 1la2S.i%P>`GEHUimٰ3R3m|Q̍ l5#U=?1;JٹdDVtӈe7pPl;v/ZΌBN>tL08p 'ڑ*Ia 4+ <7թAxY8Z &MʯCo5p\~GLRD]_N`˒JR:O{As/6~TQē( R9+u4lq"r-|9VIkXNh I$prhLfBv^@7ɱ@*I5`Ɉ}ѹ4m{vzAO_PKpN1J#nuvola/48x48/actions/kmixdocked.pngUT `jnASPQux {<ǿ]6FnVRBRs%e2e.s*]\"Sb"[t$NGKBJFsK:e>y?W6{t}}$!oۧL~iYXNJqZrD*s+ ;ybE 1 {^OJ󣊅ޙsŹc^(ЉVDmhhחHA11 &Cڙ^K?(I3s4NRw֟M M[O۴bo޹cT#zPcMf X%IyŌt#G#8& *oxiF l'%ѤD;8/_2zo9x6Y_$$3NI ȭF,| iн+o;qt޾{1rԩ$tB}oA>S}$TWav +.?p-:Ж]vi0`2jzSiK܇r7绷FUOMU/ b"C:q7%:[,gtvf Jv2㎲c]؈nO 엌W8 7qZdkc,S8T%g+X!76,߹s'UtmA Zc\ p(oXxV>@rm,y ݯ4?!.Df'U>z LJBz]Jp }Xpw,XXQ<ҦIZbOb'8s{oxb}4#7L⵽ΜP'>6AwmW:,Yeט_]Y{Sl@y713sy3 J5qv_m;;8~4CY ñڪ2J*ч=dk1{5mŝcD%\Is-oh+ZRhcw=x@tG(bU|o +19Skr9%}ho@KCg-6Q-TyD3̠t_^Ippb^sL~)cΉdq#BxѢGBJ;/P3މED ^̶ I;=\WO_Q RnK8J07t N!Sr x8uGNPCײu9<+="ʯ"K)rލ,,~hn~礦WN { )vQx!q-233cl'hRPkZ-. -Cc6kDkyf{"-` 0{/]e sLրqWusmMsfɫgC5niZP̨NM/"=\_Oz9=3ӊ$BKsqN߬w{?|'ƶۄAv4@p)ESk l[33d*cM[#χ;Qkm7> 9Lk4qCBtbt:bZscU+4\1v&ٱpW.E~mG 5,=#OV2jܭ{ XrYv= Ph9<,Ҩh^Ǥ&kCǁp 0VW݈40<nlJLLya_,h\D=Ip`ݥoqn]=#P1vC8Gӟ譞.׌twahݘAtOw ı&EMN'>nH9NH3RP`ԣ cډ3 -2uLXl;\ҠD<[ ̅j7e C/>CP-ƏKЧP%i!f->ED[E3D?ފiZ`%vs炊0/P ;s]c`V4ևVY!oa]˪/ Qa'+łׁ"?_-ly|ӡfe)bOjk$JsDw Z&@K$^Yg]A@8X 8l'gx&h | UeązDOgW3g_0#r9Ѹk8~KQnW+޾o.,ma}hxZ}}g 듪]bh 0ȇ_Y@. T&z}yQlD`2nsTd33%- ^8wf:TāZ7PƬغ{9_!v \-d6dG\GQ p X ]#h>PʾfF/aDO݂a߉<w`U?z Q8t_\=er⾎(a?«az<0_YMn^%[y:q]OiUkF ӗ;k]X}Mb2ܱO\ (G 2CZWWP @ؖ2=lטh̗ ;g&vD:rOERQқϗ0zzA6 tԷϚxG<~H:6X &sĥk'z^.,oJ~,17{DDLVcQedJI/K?iM6@4T]hw Ȩ(\;+e{t}mC"TK1yX(b!tM[T#ɺ` 4nq-_F1~ $3}ˉ )FmD3 5Ȱ6X[/nuZj1|L:76q_▙XčSv1ey<{%mQVg>(h69AEbՒzu*l͵_"GX+Xa?&ݴ݀bQ~ڀ珷=aJM:u+H#}}[[h2HVGwm4.5ixbވgK)o/x R V2% (xB(\?A1"]#3&> fe]v)jdѡ+ևءӱ<KyCAwKY?q{?gfH$ZD! wʌCLk(W IFZW"M'y欃4yP4,ody^Ãx։uݵİlf)3䈆5;T#SkCVZM4G>o('nxٺh Q='E2^RD3vkCkRT{bo߫QB={{,bR><%%(X + ~)5];mQXTP; JKT󒴶68;;%ЀV紩e^D%Ym΄1$ nfڈE@ ND؉S@UNfklx^Z{~X FթVLu>]bf붐KK>>ݒӎ 'RɹzhvGGar;ϕ0'ڛYa8KF%9 =#ٖwSniAb&tigنh];i,1=3CgDX{D( t噭D,Buؘkd2C6!]*SL{ϕx=N$˩ع ["λi?C\#U<\p1ȕk0^@G#:?شhgz \tq=2\Pﻚ9ldo/l.ER,o+\ǼO1NO, gz,%f*!B&%>> 9|laMR,M仈b}\8u3a.y-ύpg"0meL$~NJթJ1{_R8 wU{hsGeӐ_=[|qn27 AŵRs#ܢ0WъǗ .)=N1xa!OkT<suN jz]C߰\1<зhA;Du|.G1מ*H^jWGX'8ʡ3F0-mxQЛBl ф@mߒ*/}f'IG5TwmX18[B0oFkȀRqא 넪UvWNZ%遴hk')L55 /3u4A'Cl'5+\뚾Gme3HBXqu<Rl@f?+:qksئ 9508JtFOԣ Dp)*ՖkC;*I?|%A4ʬ:06A/_@H;Eo?5jBqz,*|de^GG%?!xћly=bcd$Ik{7yiX1& g!qQ|j $ʩ ~]~ aA$c'6m+3h`(k k )nKFS]3B`:9']oK Mht%h?~ӵfE~q_ӮGQ`Q)2B^DFrQGGC9cf{nhgkrP2 Ue2k?33aIDTԍ 7U0$ѣe(֏ MO5lqb[ s r8' |xg%@㓇3vZ}̝*ە17if""38gi h*W zta]X hc{_z7G#*moV> M0؎~S"3& cj2ܳA/"1Ac)BгfAkoT4 ɜn L%ٵ+kݺ΋Vח1w;Đ/,3 X7pTd7jov Bp g IJp8_ɵM`s6i˖#84{V>›-_jmEi/ܛb؁(uvͅ%5˗AV(&4O%'H Glcܮ|4쉧@pelD < aFC .(gM:/,u-MCHNS[Y|{?W7ji/ȗ㎩^Glq֭45!{eN3|d@猶PL_3kB%™y N5R6";EE)v6Fs)ڢo ժr>4Y7jQ/ڲ[kɗsI.#}*)5~P(nlMR8:V +o6,lFw.5iYRD㼔SA<ۉסkDU}Js51Wa~KsXvJa ,#I`Ns.EQ7Ӧo?:W0tfE67s{-&pq&:+ ./a^0V;~br1J O=`N2h-Om|\`AB;!m3۬(!s3qB }w\FM# ~^p=FZy݉"7ZBJ;I+Dғ x1|PKpN1,}e (nuvola/48x48/actions/kmixdocked_mute.pngUT JjnARPQux -W{<g{63F}"dSFŨX܎sH 6ʥSP8)rB%NuNTȵR.~ux|?y?ɣlbm VN+RC9nUIG~J: xG&ry4~[$K"J%)`N0*Zg̉w"v G#9kֺ..&XR+(Os5"ppZPT`ƕvTWw?*^sϵe 5gXcm$4fEX]Mhwj؀0E, Vȡf}.u~~~}j |@ h"W(ޡ V=}JalYD֯E ?_~S5ML$a1u1< 8a!<Ot mH id2/L&:xPC"nbv^s[h{l3& [ztx#G>,0l H 5jjt@NVYkKCo? ![N/';v'cTÉWQ/fº'8M-J*M6(*֥|I_?[-=Qu~+6)*yni]tBޫFݹ Krj^,7/;:EmDvHGvV7'@0 {$jAѢ6B,]cC_>q}Pg?!(vXK3%J!Ca=9X~j፶ev5](4g=qdcWg ,i#TfWUm`jj g.%۫PwMSg:h&jYv(v`B0|:|ӗ#Q5*V" }[̵xxImHO WkHiJ?62boxڞB[W@H[A`EsƲ,FBWjꮳT*= $#If{j/ݔʥ M*]pь{稐Lcl,KnyZ2 ~i1E`-Ly[5Vm|QB˗ЪfQ( 5u7։m]) Tcy޸rނmXD~c;l:PV垬LjbJwaGlEVB8f)31u' '4hg2ظoȈHwW IEe'%zKK鈳a?P+C7EgNzD-stD4j`78n#9Td@j'3#&3 eE |B;¸r [!Ե<+(C@M5@Ⱥb|@SfmMwzkPh%Bjc lj[{ۘu/ Sf&(1a.5Rzuc6ذ69(CZ0j0+uY/ "ˁ7rpfNYYf~e@#O!Sݷ4wf,ysJKM{[N:vH5AMtx(År+V' R 0uNI[ BIwcͭA/c|N{߭]\: R hnA}}s;\jM p9Дfv|03x`|Gqhz& E,!UfZNb@X UW}Y Ɵ@#QĞ!q`VVRjeN" ф΍v_#%5^4#Eh4 Y & =&Xb H"ۺ#1))vc_< Eڏi x*ÇGTOn2gٲY)\5A\ kZbuzVVqmU"P ^rA;v Yv+;l46~$p8J>F3DfPKpN1$O&nuvola/48x48/actions/laptop_charge.pngUT FjnAUPQux -Xy4fXFP^)23ER؆^!͂JʒmLTb4d+u"62|}}_>:|ϹآD}ϭ;5h@\&hEӶe tSQxaQ-2><`XtΨíQnPAە>\ /@46T@?huTfFwQRVZlmfzwOH$CT̬?߫ Gdu^-勔|΂{_Ma#bC:{ 1gA&! ? 䳎5 t対CJeeJ/-da] l` Z=7!=UVX=dV)p|89 ejnuEfd;y(ᤎf%7j(=f?sx$dndd3kC+QH&$1K?6j#g5jȦH$:cN(z֩_FkN³,X4OHXEb>H7̄`unylӮ<ڗAvA"gĤcM/]ѩi(Eh/Dk[TW=;fھ(@|O#^ hO?\YEJtbB8h+Wrr"J|FV#Tu._:䓠F# %/Jg.fjyD,6OGK ־wacb7`z;Mߝ- Yjea\ԁG))՜ťϜ?iOp=^^o/CzW vu{ *+rdk q7.mVں fGǮ'Q@̽)e'EEKXT }DXw*T>5hz|knc'N`V0["+ΐ?&Cfg"!F>9efNHYƅ ܂iCXƲ9=ϊoDʅr%<=丿BuAQb;*mbԹ|w]n^9 #"))&g &$9\:DӳshK(HsZ\6TFc/zT,dL~,Dk/ aD;56(F ,t[;,\iji+BUKTrIT ?A%37SyHT-S+=(oNC~+MG0a߼Z;b1aմϜٕU[[ǰDk6H¿nC9M=IwaX8y mm߂REFDy.7!"It=48Iv;_4Ak}ܔX.>J*D慇˧X * J z2 -;rEx^?UamRBVG8Ǒڔ{-P!\ȁE">t}ꟇEҢb:DֻkS%-$DIeT\w9 R86 x_tҘNGZ?̷9dcNB--?? )j0JLzU!3`AgZݣzQax(6$)5}k[ lS9iMcVazM2*1}4FYo'x6OkZzRWl;.;[ТFi|d MИJOXJ  iMhOsϕ\ʶ%.$>aț'pzEם!gm%j{BLK/Š(#s曑=RMzL{-uNv-+">uX+uARyǝW4[P ۽_FzlFɧ`1=tzUU@&/qvyΤ|~;K+.hK:tqYlROҢmZZV,C$Xhvi OHntiBڧhEՊr(8wpHZf4{xUM${5e/\z}o57x˚t'3K7w%+ 2?$[q pBЍZ}馃ër鿂W?#$햷D2?)ߝ矿lMBcEݳTx ؿ G Tܹf$f۰#&&'Z#\ pLn!4b66/V"h?tnt **OW4%HNb֜nڛu;Y8&&kurі Rj)7]"7 "_5%0eZpYʮ B0XkL0hn.4޸+;;|hfҴyߜrB 5X~.e:w65 վ˷2q'G 3֎uAɶ`ylӫ/^6O ${E#)˖ebersH߈>Sb?i}ė"7h/;>;fsxMKU_ ;Lì8oraGQbnׇ7D|- Pk:@UдX[z#2 D\644ޒT&bllO?H &H0jqfx͛)entadhωUudR~JY>_mQ 5} kL\ױtx1fWO`UؐXWRjyCwsxû3Sf.|+<#H]m}8)*OMf`-t~IVm~73$.u5O7! ]@8q_B zfl[b0i8QAPڲ ;~H:137`ΕȀN?6^-EźsPQ+\fb>5^>#Ggϧ%whX~p63E9EK9bDvv@IT 48J3}5qnAdq|U]hhm˫ ~Kꅌ L>WtRިکyaX*G/{,Wcj/L*a e1-ϭopz7l9Yvx<@OPKpN1Oba )nuvola/48x48/actions/laptop_nobattery.pngUT DjnATPQux %{\.c`|HSj:̥Y]s*o^R0/Zl-˖ w,e25BK-%<>:.=- wc@< i(`ND+ܽ`-,>{F5qYWVTd}c_Ĭd.$Zh==cL{>G°]r#lFzÝ1j6`*o9:+t*iS, 'Q9uk4 #x=ĥtnE%^'#rcm:>u"vz..ۦ +ERzqᜪTJV7!?*沴.[rIG;LROsKcz*l`APֺA\? sv`!z9"m| +$5嗩Jr=iR_b- *̤.,G[% u&U &oMVT:szfyfE,sCK~{:e\4JU@~–zzܲVS+^G3_oVBPzڎϢq5lSPVAƴTf!&Z7*(RO4[5&gdX:!Dx Xpك3 \> W3yp|-Y,gr6܎v ou^ם:ERP̏Ǝ:Ӭ@fxkgicLn~RHxjca'=e~olhJ} } 6|9dGȁ,is2܈&@v]g5._b昴Y~T^pNDxwc̰-UKl/,(ˋ',5 R &V g9 hTC͉@knX36D/$d=5;1W>tƁ i'% N!¾-%.19)rVTTqM=tʀI*l<)۸\.ߣRӊɗȉqnV?c?C&@6`][+a'SzBYvQ2uYW7&{y}|; ⺙w:IxIbNf=:{ZADG7hO橺N2wҰa;TV=!:iwyc–RjA%_f`$zaA:"vk6KW 73& k2?մin=rGjbҦrU'A71Z+*h1Yi\C 4?ǭKK?n#qD~#wP>Q+zÍ3SQE}"L0bwRJ2c6ّm"8(W?{}oG-UŦ5Өy5|xK[v(z}>棚ٮ[G H#)|mɡ)/rWWǻ賶ˏr9gJ{>qN<웸BC )HVnN}0K>_6:XLFf1`¨gUdev>]~7%G3xƁ?H-3!UD_k wt!p>/K7yHY O>,]{vFi(o d>ɑ`YrNg$j:EЫ0e$%Qa&][_H2JZY ݻ_ggB;&v"bU)bJM2ݬhKwJS VHVߟ 쌧٨" SAַ;}; Et!Ef$B`q">:f~atj؊?v>e 2_7cAx |Og[xSV@v_~DA ы sp0Po}?;C:0[USZ',,> .IXN4h!mPKpN1I"(nuvola/48x48/actions/laptop_nocharge.pngUT @jnARPQux SSWo II$XkET4"Xu,HmE䅪`,V[AP).mQ@֎@"H*tX4A*Đ> s/{^h&P_Jrb*ٯ䍭{,|;W{5c{Zƴr3d~!I6#LivjvfVCRdO$nDXedg }KSxmVtPT MM,cDTE.Q: ;Af|tȨ?\nHFXω X@*ITVNEe_v@CCCMHΜ۱OQ%e> 9):w\߽{ߩG=Oq?Mu\Bylhi;At.{졜ljGCn@5߬&TEo}#LYJ\`ۼYuw 9`IT)\jZ~1RbDpbcNYi$zzeY SDGM 6f8RTU ! >!p59<0Q*$ybKˤWt!C\ jYo=ߥCrϟßQPlQQgT*)KpJj _JFEeH;mG. xDh =>O4f)FCC:]Ej n('E uI.aCZLaȇjVJl/t8L%i:Ąnq:ZZLrC)Y(r]T=ôc{3٥LNPvͨ7f{{̣\%tc!1$??v%}JksM]ǽ,Z8Wi]ΐӓrsa;/uZјqycnʨ5|#` o ygZ +6s?6}ӈ zYCZ),v' ࿒ '#ҟZ/bHٸ-@ſPK}oN12M\%nuvola/48x48/actions/laptop_power.pngUT >jnASPQux uW{<2FF\Y͏J֩JbQ-JnkLt%jH ]夋_~|z;#`f&v&m۴`# W 2oQ? o!d>0O2#[EF ?6b=lܳ|-CfJx;eے6>UfqWz]iM'lZڶ_\%wTEs!kS<NM+WVAT#.I=9;.TIP|(~O6*yH">ԗZ~*[$kiֵyrǧ "Xׯ0 ~ D1~QKKILT}{V9QǴb&+'h>}311 zȆIH́MoR-C~`sW0FDuZ&z[ jkjw] ,dj zȲ q~ 4/32io17b^XWW(2 1mı ϩTiHԴx$ EPQxj$?'^ aD}!GHҖ/Vsrϫijɴ `jf<yE6cyK ](&");:ZEbb߉ZhwؘƍOf4 QIR#Gw=1QNPSY~GR Q, K@`Tر+bv#= ̼Ʊ7oF} QO!|9zcgssZ⭃ RSz~C$a:,7,bg$so᏷mo&'L2X` {@YpJw[1g[k%9*UVl kX(p+1VCrCv]ňٙ6m}nGG KguKeG6#& adk\{R[$XWhrue)ԱFqE~3E/q?\LkM.ȯ)?}ˌN1T*0"e0͂Bhk56~i %@;$)A 8AqM٪#$1?=7Iymv^ HZJ"agzl/S6|i$K1QL+C8@u-t:o2_ &KТ4޳ioP_J4͓wVsJmۄ-Rܺ|rȱvQsa8&j0aFJfGd`mv+PʎS6."3u\Cs婚O {S(xE-wGC’:cǎM{qx+1п[) Lk)ױFo#11B(ϕn.[/vL!&^{c|2_^d.5 K]r,>S̟Fz&vк;g8 ył  ɡ.Jy~.>>eP¯g),a cAE1w kݰ,gJ||Z@U?w"-3 ?!LYb1TҷphQ^AIB;ߢ؁_+rzT qp)]- H3 5]%< Zr]p}*_>OMM'̅|dVN5fe[a/{m_O(͊W(¨C,&^aQ=ɔ̋=n>. ..v~]yE(K'?q8Z,-,#,+kxE.yyV*']3_n %aRa+DlEGR'Td#侦@}oĂ..SۣWnbH+>R=œwޮb=7s*Rz0%3J(kZad\ kjxQp۷[a>tw~_ZTP2D7h»ICm(N ^ƫAUz־G! ?+GISm7FvSXN V倿aIz> [W9=5 Dg}kE'SԪ,bGIJpU,dN z n5'{+k _$ehN^c-fhr̈́|%}$slVø@Xڇ[;̞h=+HT݌}At7_Oj*q``ʤƻ/,;}eD9sA oiSWJ9<i/w#R`gM._^v?޻Rg]TSv!hmle3B1'ݵj5˧kJi>z72p' E>ҁ~7i5 zݫ0Zdp33BHoÊ= 3 p'ǽiN$g)h2Tӕ{ :2xoKW4N6{ d9#eG,O`aoX~ٌV$++;;:ԝ+|g=vZ!Mi"Htvo4ˈTՇ7a!IMv"KKWC9A/Uyoj7/yG0 1 DƅG  mQ@oLyE &nO3!_}f|=FyXbNe->~AC^XbqIdyNGh {]QG~PKp5N RLUyBkq6cծ0WhQ/%+dVo0΢L7c6ߛp4,yй \*eI1ΉaRr2zSS0Hsph߶n i-46nlҌfI /g8td]v=o|dȱ@7UF8Zyy|)1;؀zReAbwwvq'd~"ke41{L1?r֦i.h0 ? Ի%?kz/1sG꯽_߈V0-}k&ɫ:źH/8Cu5fUBKCwqk/aZ{<[ %.Yc)6:hrFYbd{f%p`JwzNPX ɵ%E,O ٔF,n`g M׃1#~y^o3lTah/a~QSBzee+-+ɩe3reVKM)t?$yx N%.ak[JQ`RƫQVK^䬨,ƾͬ7cv`|O[+ aCw=keAB%|P,J[d`7Df}PͪcL}3rrLYW5d&bɬP;H`0!zzȿ Oi78 Xs޺)I}2~K\Y9\N' 0: bz_!4axߋ;~?s NʈP (RxAQ-ffx%}m_;WECaFYŞ՞R'-Ɗ:s`hJ:aRyO) x6ܼ$L-Nd4PG$Xn;Kk/3ߧ3;Hc3^Pdە]g+[ Mˮ,T}0{X=N70rq!"]N2̷2r qڗCQv %<ݱm0- L/N(}T` R'Q/i;Hvs3]c@ދFPdn}"&&6/t<}e$7tns]}'+;<ngpO0~eb"w<]'U)?-SGrs15yfZő(HE(_ 3PaBM%Bz[͠&H}J|JpI0 T6{Oq1q8E0bKOpBmI|XԴyW^AyTT,5."+˳B[3RLhg̮V`o8^IÕ̠ +~:-WxW?K@١&^Zã@;%pPzfAaTKA>{4ݟJ)N<@L=750V w.7( `nƴыk;[%]72 }p`ڤpC!n}ǣ}'uJˈvx9=!_,\!o#J=jillӲ0-v왺NiI\tr^w*{ebv {) p(KUųEHڴ| ZU]tx(^&Ś\^lRx/{=eZ}ڸ TX֋F6 KӚtA|K:RL ~r؅PߒF tDlF)!Pi[ni#=Z+2:^$h^zT`wßL#H{97[̽%,P9qҍpVf4M1EMgN< rF ѾbtyOt|rU~GN:!rzla  㯷Ea,M|4O|-sd,l ZYE>z ƿtn9oiY8ϑh~ zŪߖ1qBAL +<ʑ)& z?CUپfUWm>oDR(DR"){=*̸C0v++u[ŏv'w-*/FW$,"{jכ4.d]̣?v"~_|? ;.-O<%gXPKQ5sk(Pڹ[ 4}c}5*ǯ҅| 9heO3)=bRy2o@ +St`|Lw.&*<%InNs6i8`nzW.;yUjb?Pkz D[6tn襺gF#P瀮/n0eJN8zZFӌ }Q{ho8~Zp$P Sz#怙m:bաZOJ8]5YٟVքrI:^gׄT&]un8`ZPH*h|l+)?WW6ljO4kF,{%S=͸_D珢z0^=!#巣:J_OoWÉř+P~(< rot*:[26QGE7렼H[>&beDvYD˥#Hb!e՘YYnP+' P%-˽ftr65+^x@:d~wL%92MWGR,msa)6!&\m<0ltSTm;iuVI,U1 ҁMK'y+3rX38!kVS\EfF4jZj1_$#![ޡ0-jP_c#.} ?OVC_|aњ9:M7acz:f]C:cǜ:+tkdX+7ܛ1^ `@;)A2H*ARފϤE(>ڒAvOUW[x7ŏx}O^o)wxu^k(3g[U =77D}:޳r,'4|ŹG Xi;/x;`)ma!q@庇s)o<rQ}tإi^όt9BKu—A-ܥw ;Rv=S\zL<݊v.hpbձL#/$rn@j딴탸~K֑_UU!$1/8m X6-hmvzryp;n;wh"_6=zpOD̫oZ)R<#G=_UX`u>x\0d [x%;8됋@t*5k.L;i ZO Y_F5ڧ9Yg1%%r-u_4ȣ `SwKY\E#WهLWNdg0W-FLC£wGyOevrSqxCwNN;=?u/9~B7ngcYBh@H}r9~4ߟ`# 9:- ]SyIq;XL-P8^l8C@v^Tq0 ނ"{IF$Fɽ"2hTC0!HNS ܈`lqB׏l;`+N&[Ey4עlG:@Z v.CP7Mvo##ih3Ɂl܎3Ju&ڿAgԔ9Kύ=[Xby]<jA͡ʱ!B!5H;nOׂS4Oݴy0vp$0.+JDR6&'_N%H 9KL㮍2)>CJ}g0Fj$Wќ=PqmEK+@`YyzO17 q*YK:<4׋c] C+o85|+%d@=cWuLrOx< LxvHwsFc:,Z.O'k-?4ބ+kyAOZgUQ/1iܼiP(K <+uОfQ$)ۼI։Z9s&GMzQǎ4*_Aw݇m>%~u*;h;cYlF$V Yп%̝H28(IE梉#Fhi !xDMOl=˟5Z9P)"zed(8jG ?Zm@JCv.keZW::(X,4 A^["fg_댦6Kb:;F$}>ڈL#y(Eؓ/?W]^,qJO e2Pi^ Պ7"5FQ%v:E-GY)tP#D k,^221 "\Ė,bg{*'{~t9nZݖB'Xshф.-Z)9o+ȮqdY:3ɒs¹F|RN@dga{-ld dpƮlRuA=H ~C[:ZK";q)D[RK<AM-0Fn27;XYuӵI},WX ٦Fلn odu\O֊wgLXc}"qG(ojzccRтk]Wٚ.(%{fC9>jIJf"m#6|I}/+I]?U~SpW3RuIL>@m st)nVV^4Ȋ0UEB[H4o7n]bZU=d{2IVTƾ #F=KkQ {LH.)pWg7֢NC>{YJnr[⡁B(";}W JB:RC<*) zu!lG^ Xؓ,x|p`%,OZkflqFMd b-֢ym7Ϧ]V3~"rx;Xͅ4a;>.:o K8A]w7.NyͶkPR,b#Eo%(y;,hZ q&՚hh}& 0ʽ}s_\?kޡ~˚Cԩ~I^^ BQq`ś6'f_U_U0.@VPdf +?(aeHGF--= jllnfqfJ9lPGX E dh56K>DvjNt y qI[D ]>[4*d\3rms\Zx}*< mׇVZ_5igsSvwkGɜEd"?!5Bo؍'[h-3KAi::xO?ݪ|sH|8&8{a8XXFkm>T]ݟzȩ)`pn6q/̨)R`p|}oջhy2=|>PcS$֧L65[N *'W` F$BRx%<󵢪щde b<>'ϛUf{VztZ5( b5^ԫZz}sww2&J'84MB=VV_)zjV ߁s1-OJ?'EqEANiܐ("]rN$^Յ.TڙdLMzhxl2259ώv/$>#ca=>DB+maaa9|S<}+CZ`wuFdd1a/'G[!diS#+|n%_3/NVXFr)CU py^:. 4h[PKxoN1^Y&nuvola/48x48/actions/ledlightgreen.pngUT 4jnAUPQux %WwXS>! sJ*-HP$ A!@-EP$ `KPB/g-hm%!LET+.8ZP$9}yo!oG |pnw {z9_o ۹œyn ?'YpxxO .:!~w|t\f@7Vsf< [nχ["oPy 0.d4I6 r>6Tpu=9;*ڬb7QuUD%zʤӨ$V'"}z(ti_mt\Z !&fG: @ `2Z̭A7dGg<A 7AUy!,MdN9KP03|f -8JI)QiI>h4%Xz60Ki؏^sfd[K"`a7J(ٿ)XSy(ZTscVo Ɍuom99RLk9Kb66p'.a$Ak%B{~8RkXF7幂(LGAL;`M-CP{GI⦙7v{.6^-+ 6=2to(Ҭ>GP4_"~*Ϛ_B&TDflMnl*,ANWًyO{ǪiΨΖj044'r7lStsN #1G0AD*u&F^D@oM_珺Q||o/}i. Ӂ?|.?*XEWg$ C|Q<N1v޵:$lܲ,u#BCMoou<eq@23zЀNPqͻQ~4l!!v)1 t@3 9g.{-o қ}Oٔ[U7Q1ذ4Y\2aoo^GI+}$jR 4yM °aҦvréN܍qVJ8W&d4&g*^e =HͺۮHNa(͜yFXë94pUjmXEdsY=G<#޷[$'ʄm#us݆Dnw}xChk07bn˧|nPe? 'j?P Gk3ߐix!n&Ġ{Vl [d*[x"qkdQ\4 4$ !<2F5k8ݎ#G"wdnb=@ ` 9 ?w%l$a!/VЌ[%u- MMf_4t6'?-=2A䪏KLUf֧eәt1zV\Qax(ws VJ eË>-]ơBXx9a\E JTUif9o ,1υR5ZnE|3&6/sN3,k {bs"D$UJ+rOKե4#A""E^dc(tܔߡF\_%B ǀL+fAhN-~{tu?5uH؝HՋL4dx$6 NɷΙ(vJړbtG~q,*qjԗ yAصrG0؃Ks1A /?PƌS-4Bl8^ni(]x/мuk>G暢.a[X;+zRƎ;\Ae6Ë:n)|(= lg -楟3/g00H-}-S9Ý}ev kpR܍-NnsɻB'z#LPN Ё̹w$vIX߁5^MV[7EZsE*%(m_7=|h^>X_-g Mב7p٪rsm*SI>L.ꔕJ<_~?eY;VO̷o$Kqn'qaC]tɁ Uuꦺ r PkH᎒q" C't-r Z23(uwܮZa"DsqǍAYWhh"e~ĆknKgcZFg@>`8 F/E B։vϬ1tU§F&WVU]"s+ .Z_:3{68prw_lj"+CӃkG*Yu<;gk2"}ف.$faNOmn>a.[㡽݆X(i&ދT3 /~;nqvU, ԒE=.5_p(a.Dy-0KKA c!?pFDǑrY#V'h`$eDlyYf^ԽQ!1?Fv(SE7e:2t%C{ºDy׀EڕOGϟ%Jc]BFtlSDqyn&~PĢvy ![~ϪA.ch]Z뒻bhL+LN!8r萾E0]J,N{= vz\^/Yr~?7~ds&ۛoAk۾BV,$|+ d.fE$y9f3 |qBhE,+9nI%玵FGpm^(>ἹY1OWS/gľb1NKȇl65պh,{vcexah"6o^p{vA[ TNfGe)R!UB,D$ -1keG )٩t=\z@ C]x:t)@;uVȣ{SC$@7SꉱrLYv9>cUP bVoN~{!o]%%O3̺qV]h|=y:YmH,·=sM5NgǨgQoQ ? N>S:r Kzʼn+C{_Gŗ?PKwoN1f "nuvola/48x48/actions/ledorange.pngUT 2jnAQPQux -iTSOrI0 '$FD, A@@ z"^K I"!2*րE@%z%436AQʔ\ug=o!V2`@J{^Br1rvrsu )w4$c󄱡#m˗%nㄥ"KPFXJ .v`eG?@[%gwg~._lT%XN+e^Qs$ݴZCxGpbbCiHا7x1~)VXDzGw'4ξddEgPuZceAA9ġw)u/PN*y(ը"U_ȐK9A 8CJ9a2IE H/Yz)ar˄:Km@8Bmi@)$]=QFQ{o7 )gYf')ǐ5_"Ou$h->S4{(c_/%9s?w z !`?fI-VuD3Wb`ƵLj^͟LdW~fuGt& =zğ؀%d}};RD6{px7*hX@C jEoɬ9~3zRjZoa%Fk2~QAJ { -и X i>cdfxγY>fK~Yæ9<ĜYG;q+6=_`l,44-]i*)XғDi4cQL"2fuz-ҮBgm!]tF%=݁ t)Hc܂Xqw~ؤf;~b00AlHѢ p*|&.9W@a:sMtw̥Fo/89>׋=8 J&9qE>y\ryRUVo][4@V@I&g7JXjG;1 y7}2dt Vaz03xϢy1y7CԈZ炉Se_C3ЏAY58aV↢(r8[Krm~)hH^Ŷr|kX ?w@tR» 6u#ɯR#J1m`C0E?IE M]'FPYNiQjGP6!<<v=k&0Gd͇R?g([Pz\nbՅm^};loWQ',9amʠ%۲Օ^ kAm{YJ^O;p#󘸆m_,'9 yKZ͠?>ǍfprEt)ĚU ;Out?ml2-t6+߆Q#f'@Ç1xz(=sPx7lv5.`ڿ5JioR"o3&(Lݑ\X.j݅yJ\owݳ¨mGj  :cnMZ'Rc,,o~lh,I! }*ʳ(}x"0!uJŞzDky1~A-A V5,RQY쇔თw)wt}S˹Yjr"h, gj@;j,*j+*L(8q\Yg lőS)R.fg잦Y/HjߎFZj3 Bp?$&l"FϱTK}> `<;ڌ^&IR^ }F?&˶%_zr6+M}=9XI 'ZKU8o^@^?=%?Pf/$Jqʬn舫.mәr{4]5x1; r;K.TV='K-(º'gsxCf>wJ3OpbW.O}hsD\[ϛ_WI6 5Mc(,˃yOZ*pƕ1UǪ?xMC6-;BǑ[?KTw+ճ(t;+FI`NJ֘- t4U&㧕?tɋ哧[}zgkO%IV ? ~ ޲蝢krSiR{ڇJwQsXq4s8aR˰f}_c\gkbF"/:'O|o1&KFw+hwC[n*`!5 iװD*b|RМhܒpMLbYZϖ ٦YdEQewf=[mmP dٰ<+}{C~^KzAaxw }s^-MH画c]x5H9 \ZD!ix5'doS555S_^p.sF~{j-fSHӻ%Q }XU?2$wTC:Έ(GZfS3K)&V%VOPg:sz"~HYRY_ZS+ TLP t R>p< wϗ{PKqoN1¤ f"nuvola/48x48/actions/ledpurple.pngUT &jnASPQux -WyTiQ@y+AM0M--Q%@˲xk2IpF+3DQmeʦ]\*i  x>f}_w}-L-0 ټaR9ރcyѿIÓv%&` 1lNvt?l`Wir& @4yxz{@dC P(fU$S(Ő=7Zh>p6@=!Ƌ?a8འ(/Otʗbm 봝!^DwC./T\'`8I}fۏtx &eGG s喝 {É}??Do$d}|xn鄺uĸ/mk?k~e!҄ț3i:x'WH)_-VaAoa~7kڑKQЉoc+[LO0-/ye~RëV|M͸$h=@UnS7w$R)uR Meucf7sf%S0ՕNjBrd-A+RPC'zڛ::X'Jkd]U_]̼cw}w'O^"M.! \pFÎL,m?'Z<;_gH;i&]Oh\3$TAlR%fjst΍yA0jE#0޲0b~__\י[xMp`ԗ䉆$$k+ XRL9@% Fx\F"l_a-+A[8=عIu3y%s@ a*x1Aew{y8qh]"', orxEtiLгCƂS)̛ۚ()y[;4V8 #TsA!|q%wZlS#E#߹L q0>zn!DOOv\~@}I''N(yN$7 =YpG㿁ۓowx;:(Q_%ͣfqu߃1s: Ji^ .+# j<fs,2LHjJݱTt<*V4\`?w " =A=0:y8)[:m}<ܼFFH8bBwlalhmbqݓMsjrQlzp3\BiS"3Iƀl/F{- e6]\`b.E-N:zܔu? _7?T>w o$T:uЦYx*#0Ş~6 z"a=j;^ow 7orJkg'#~<(Tyw^o9xY.WynSV.NP`vw3@),=y%n\; k8y 6[Vx"+.Al^mqO Gs\\=:yF@Q>? JjgK6 s٨5ؐnYYwPn T>ny;o =~M]jv3[80;·*DSEFd*ZR旪.tE51&'p߭9cnq󤉽i0'(v%W˃´ Vkx1F }9 v ʲ ff.\u\6_him[d."J;prġv+lf\7b띢^Rqz nfnv;3s=h aY.1m%䉢;w"'hzU_S,r0yi] 0mit.@iAkQ5t׽ʠ7G)ن\D2m3=Ll d@~[;PDr];z;p}5GƏ\ͫmD_u;7Um"VZ|+18Tl+்DW?#w s,82ޯpxO^-Nw Ls['@Ghta8}SSqM9~Ny%?!!* "9F3oNi5p}OFL\$RJdEFAUmWȶaߠ~?)S]0讇N@o ӷ-{<+NTA/6 AVgY/gAgnNJ(4 8! hR,ˈ 6(>{վ-ݞ%wp_"5<‹Jb͒~2WI]ePongk}XH/VQD0Tbh<$m;!wEHÚ`D"o@#Q.+X7ܦGKsʎ7 |u}AһCVϯR.4$%((1|96 $6OsYWaU3G}D $޼fxɍaNE<v 4h: 6It-4K }(ºtF{yjX.^yKJ^ c\Jk(F 5N+|KZKrd, D<_( l -^eHP|ok'8-Ur> ]aGz[G=cg=<|9\POd.68qE[}&S-$0K4>uÿͫMxnkKTI{'*_˩&2-]o nSE^<qPKloN1Tyl nuvola/48x48/actions/ledred.pngUT jnARPQux -WiXS @!A5*VPPT|\Z(*ED8!PBx˭b+H5^Cdɗzww"706-ױ\ِv\ѭ&zlKJHLjǧ&BJ؜~3:N5Id PGRѠt& hŸʬ/%Gu.,? ұk;h uVb1ߘ^ѾƁ]PC[f]k9@8By>Q,|^ֺ=tWϗTs"ԩ6MYJgUoloϡcd̮hto>»HU፡iN jxTR&(lw 1*㿆ֳIX)p$oV"=^ZQ̽SBO/v5,[@",S.J~Db{yCVa=ɬDTħ&_Jci7ЇKx!o%±p +Z(/ GT+mek.8PR1vE["qYj; ЙyF8 %i ˙ M5lNT:c)m_Лkt z|dDhsPLEOs{TTal;XQ\_| >%-h 2{\t},-sJѩÃ=Ӯ<(2|]tMWn Ml)U ըMc8#9ec)Űs?/fpV7'Qj0E}`ڍ:NPmY.:E vAe%On UR\H~KI#H[NeGfPč^zY=E}$J Tl%\Rp3[]pW d(Bnp/y7mkiԄhMFw%&.p'_`»ڴ%)&k }7gʜi,%ن=_3Zs9:Hܛ#+۴K.If(.rܜGJ#ʆûʭ0n(=psYHmQ]!ϔoI\msHc.{.Q }A,(_<n'z5sYlpN2d׫*f,)y X=,'iHbwQ&/a Ȥ0NHJޡ )W k HhR2Ҹƨ(?~ ^k|z}H9ZB~zp3v()Ч&B3, >LkuȻac"} ݡ$i:Ȫx5u/uՋEQ}ehPղۤ1vQ՛  ͔q h-\u<1I5=V )cޱāT1e$_kDǭ;؍l;Y?B3|"Y\=Q8YtZ7<AJ,\E VkQ42Xú $(PɟHwI} '26.N,9{5 Iů6!3L ;x:7WH3QZ4 X:b|1?n8?t=ǩqʻRMݦ1=:RC9S֭ Ĵy< O9څd駶Sjmm~}UB-#Vrr$3o]xt*$FAT3QMeQՓ5t"sOV7wJ*vy-?;{փ"҇QYW8+p(tH'3˾A~xGeKZs{_Qn ճ̇ےn#7YQ$`a|jxy֛rw>U;qU rTaFC7q[-&+E# H ;"I3J["kް5e-H9D)/F}-5F̚ LkC#xTGrL1o\ŖKWeڈ[zx+x *ꦿBfj *6~%U7]g*RxW\*Kǧ443[2V練<>ӆ9M<矛l ϾCGaFev[V?, v ըΰ۪NB'=FPkHwL9 XyPN3cyhwթY&u|HCY|8He>[$\g FJ{;gd:^EXXP%olueټp.JsPKjoN1\\ x "nuvola/48x48/actions/ledyellow.pngUT jnATPQux W{XC)4@SPjZb4 ZN,KY:kYxB턖V[maUT<`hjVd&Q~??zR_ژ`A 1D2F8b! Qdh5*p :+ FN @NJLGfĤ0󾕥dF3QQL7`Ho@vfT[5X W qA}cʄShm8b IˮT*l&h9xck!u( P ]2%H,< VjKn-&H xү0SsRJI[[ 0a z)u3PM";n=\X@8u|yYK7B7 kהo!PYz:\0; ZPq =8u/ޘ,ͮ3d+Xkڳ$½O`=F]0%Ue-8Ħ -r^kjW>zf]ΫTj͏&h;aaԆ{)1e wᡔw*eSBO迿Sy0yI%-OzG2W5cYOs+\:߬dhׄ~ הR'Ty &%+]-ގ :G-3jS _A$ԫI/e(goY{+;S-d _ 5{Ss+ϢnT|Ej"շ"m3UbƵ&>3ؔ o߂6` v׊~ۥ W8;mK6"Ygmcau9 =Pkn==⁶%^mgTp PG]"oԕv:$귟sj:{PF/V3¨U]jA%\z]mDЂ6Kc83͡sK۞yJZ Fx?O_BZ6hj,Iєi"%H4zMb}jsn wWn ,Mi>b_CNXcuG(,UcY(ۯnm8h[|hIoHŘz{V]< hS!|^dz<~w1q*rc'eW}b &‚T5k6񯡟q~S7Ɯ,vA [=eR0#J5&:ox}qEhmKkT%7(7Ǣ @/8ZR#kܥ5%pEa|M,:ձ`9Vkm"p8=G~zQgb|Ge6o j_}\>#=ԧ ~`f<^LmkB?9_O/ һF%%& cSIb n]B#7fĆ+K3fZTǠ >`f RV eW>TmTZsK=ݽD_S *%47!t)5:P1 ,cسᶗyIBvG)(K@=衝{- UFº`'ɋ{J١X]RL"R̃s_EnqSZUƘk_'Twqd$#+&6EY kO# DoMmB2tii]T(Wn= ]jWS's]cV]#:L2.abްn xiכ(<]tQ]]ȩхw7j l7祹mxֽ37>hv~e JCB{#7:gjדv9YHخe#u M' XƖ`yVX(&ý Zͬ#=:ڡBhٙ=Qŵ'`E  àsq 6N!))EơqpT0gᩑI*$n>pO\eL> EŞ罊@֭[(v)C"bDdxlzUq_* N$Xݢ}=!!)WЇ6ҝVGhK ~(zmDCek,LIlpﲴ͟' B [}Zscjq] 3mK/@'z1xq&k㸟ZdϚR8f].Infun1׷쿋,p2E?M$完^,#a۠=QKl۳ubl.upׁg9\1:xȤ_ 1o|DŽ&O1[VI\y׿jOH0@ΘN2%I3̊Qvm@ 1͎Njڝr`YL kpw@-UYg^V%a3"ف鮝X8eJn̒RsyFC8UwuEFz$G@yMm0ݽ{Μ n+6;F_'0+6b@< ELo:_B/?PKhoN1vbnuvola/48x48/actions/lock.pngUT jnARPQux -WiTSn.&(Í b"CCE9I"PLI\DE+&hBZREHQB"J(B]9{uY||{72XnQІ[-.λEeof@c/B_kJr 'y[ԈC :5&":_ eoO{EQ" 0J%]aF$# %zם٭YMݨ%#a:(6!UҏeYmMwXsSRG,͛DsfQ-E+@2yVrݴ9ziAy5dO{)dLs~0:S!W/jOd#{Yirz.{CSzkRv8MM)+/u@ǯ*cgh*͝PI[sZcy0ѱo=½C#Z:  )p9a)#x%n4l˯\LG'uJJ-xTIkb61ߛڅ%&1wŷp%4{} |ZC^PƦcIXKau.sU )uuQsjҨB&˦k ciR)2b7՗?ύ[_ 7k~"ܱ 1(54-?e 5Lܙ'\6y IIw|bwJ5S2V$ok(m SrBϙ،jm[qFiGR=Nr6^jYw򜿰 @W $z{̉^k lfٳ :0N@@xdDӇmPTz% 0l;ɓDg֋JUf]&'w?u17Ld 10yWm.o̘:hvo 71W$?92l-vG QΕ1uZ:FiTն.4$44xJ!Cd֬1pd<ퟔP\(Ml+V=(VA~}Lp-%! wp =;͵'9Nټt}Jonswup_f*_I1FZokա?-(Π?r†`Q&r_RSj=f:xb?@5`FΩhT]wBr~Z)U{"rba;W]=$ TTqZJlm7X㈐Q}<=ǥ悦z[D59Pc"ӱ0/ǡ(:{1wSP<nz*@RkM"g,TQ_hRItõuؙ"quV.7~tjYQy/ڒvMV!8Ca(nF_3'u4|IX'ǷYa+3nh*,2rU̓4_L[wƅZұ'LγAq&\$đ i <4Ӟc4m)+}Ts&h-wмטF5KwۭY0rI]]왍 t)lm{IHjqKQ6WF<*o\8FmxK; V:IW(& - /|j{pFC>ta- FF${B&p^VAdUPh:U3y m1xbҁWȫ2IZpyQ'dCzj~ wĢ"Z7uFw:fh8Ͳ?kJqiSڇ= ;[uqKٿcrG]h78SʰKfm'0i*u'0ZwunY_VU$x[HA.;tGȿ- QEiКVi睊sfOؾ4EsCaQ!^ 9|֩k5W9k~:Kay3CZAR r*j(*aƧf);Rw)5%]%n25@? zÐፑ",qok[%"xkZh*,LW= !u'"E1m< kX<eU!'|n>-O{\lh4'~zՏECn - ;;,ri$f|l`Kb*wq|V'j6Լ;LJ h\*V9ziWaH-$(}\#M 5Gr {SpU``$*u| M J[ûIvDŬH? L=OL"ݯOG52yҐT $ЩgrZE |e 3/xV @9[W UPwwcGav@謫JFwOsOSU1@Pa2#5 $v%/DD,ԋ,c޾99}ABAnq6~ǧԀ$9 %ֳk|G02i0Hı7cCp9, ]MGJ(H8T{#[RHYNpT{|XuYP?уv(Ar`ˆi-V7Ӥk hܘjJrfT&+M˄yl_KjkTZ>M_SVg<uQF~Vμ(0 7gd]ۺ6tJ :.Ѷ7,dpZ3n)i-sct̄^7 <=fMM+V!%XΉŒ- $ovI6~]I^[ݚL9R0 :'7=3 'kuStϻ s!܋M+XD"W \;N_27;ݞ HtÞ2`HE4XP܎_|ۡb,_ά}S+h U[Zl%Վ29м>ѩ~%_g׼kYm@ꘕD8V0#l a-`? KR}|]꘡4`E54Lptu{b+s+"@{{0IF<05 1 D=DMfΖ'f<B9xuc8 RXvO Ro[IhߗCHKiÅds$ ́Iӿ՝ٱCS .5tu.* ʫ @nGT.4]AKԴgp^)\[UlѡxZ%pɻ,#op;N;wbqy~V/-*n~B"ga!ю~"䫎bJxդs"/$ }L&v 53sㆤsQҺrj4EsxJSs\Hh#hЂl軮O%cB—"ޒaNo]_U R@2pbL}KQA|dbwֱz*pi 8/,ᐬ(a!93 }ÅPͬrׅ|5R G`Hfee+狼5MYo%lܕ <3!O1K! ڇK$fHP`%Y3,= #_[,- mMVuYn(<x31輰!\+)1uM0IԮE_-5:)"]Or/)7oZb_.nzǴ |cVe.[rȕ£oB,c_}~ w,\: \/ d&V&V)Qr%ֻ,E843OVG1¥xZZ7L)&YBֵ蚗߫ۆw[ת~uo a!QstXu &~8m\Uح9MD=QJ+x$Tu- XTx*%nkԱzh~E=,z+ulp[O.'=7~?+4Us 'iW7i}]y)Q/JβEP.QD $tMUZMGOaTW'a~[VK^GȈ5cn.턹ѵ0P F=0//$F9 s9M~u~=lc :Rqkc~l< tB5Xz) >>w굮SZZlmZ<}"}a\Ü6ZaF+.@ ~>8i#x =1LAexM|ĐڽMSK%=:ቆ `Ode@.~\U:KZ2V&ǕnEؐbczD5Z_Ub;d7@{0 2l-wi4xLEOTw֤YR:ӣ&DW=U}=;|=en|8D|…+$3mTCS/wͰ?A>ܴ4f?lm8~ rV&umz󅭙u2Ca|XܫeBV+x,pZyUxP V-t6MFq˖]ei"B/%δW3;<|:0:T/ _N/y\(J>ĥr/ 2; ۑ^#WgY K깩֘ 7dZ.AP^|qq'f̬_ܛ\8cD3re~[쓗sƤJ=i2ʌFgҶ2_t\f^Mc|Ok8]+iAPw~E:0 r k ^l2Meȶ({)ؘWɍoaG?v ̺g2u9Ո\ջV/:; o},zM Ex̩=l-]]4Yqz+{"vmSrO$)\vIa~tkoЮ C9*f]+P@L&Mޏzt+~e<XmCG޿^#`E?7Q+7|Ech N|h0/ExWj L[&Hϕ.|9Yn"-~w^1,ѫv8X* p W~ׁgPKkN1["nuvola/48x48/actions/mail_find.pngUT cnAPPQux {<ǿۗM+J؈Nf~(e[JS)"XORlkL9!ާ{_h +{h¾`"rFZb- k**N,|V+`&`{6ur|fSUtK0}/e5S:gzdF|il!ndzWoBn'jW ^EB_?BA  N<[oo2΃ܪc`QFK-peep&]؞iG>찒Kiͅą*.1R7\HU:gK>4VAV/ʭ2ӛ+}_"56HJ^&ojbȊRړt=x:{k0|b~ǵt,^lHq8^ʶDK~>,mPQg-ti;%r F~7 f%~UBЯo{莱Ʒ†F!򲵱1RBX$h!4+bc@kE/|= V%*q 5mh߹s^T'lz#wRN.REd`}5&1?.N-ߨ,I ն44ߋWknXaq3=A+a!&j. od]3G7QȮjd <u{%nwNmR zKWb?j`D 2d;kr 9|Mr-B|0h'5# s%_Bf⺜suƽĮ pv.hnJWֱ8 ]>s [8; SQ7IoW[Zt BffT]]QiG_P:!O/ q409O202ww,ԖMeRv V:)9~h[l*G< (7cwD>MLFd3s c݊Y6KHVaWE:Ceeڒnngy^DϠ24gcٮX(y[Rkfe KH~ ~L;?D˿~u]hO*nMbY Iſ/U`%.&4T!|OigAt6Yp~ ue%t5AW-Kn#VË{Sӗh2C4GW3і܊ ^0IŞO7¹V[L3VSx΁FJ;qv رDI!p}Xk6Z&ym3 ` 6urV^ f8lL_?.k^vPWKN9>Ԍ n}*/rl{;NŝH'xZlm$'= Ew uM+?(0!,Ss|YE!?m\Dظ1{3^jL)4z0CSĄyb{o_O._PVZ(WzxǙy],58ҞJ$x07W@ZId_ڡTWϙ{S]4&W996Uѫ*5ۈu @zzii>ǰy)A0ڻ8$ajAȐ00T #fR7T+.\̠z{T65(wpGԋZ.mOrdހ>.Y~aK7nЀqS57P! չY,IWD-5#5B_!J(ڊmNɩ}xkAЀ @gQ!,j[3HPDZSvŹ \mo|ZQ#HRIMf/,M@݆yaެdlH{$69њ2Kr'\.Zm 84j6o#*~H-Ot/WY֤GG=?r^J/fw]iPs P:7*M-XӀQ's>F8]zƄD X=f[%ݽү7אu韖|yfP<7'sEMPIfkC߬ H6h JS- ]>+gŀ*mY5#1@*wl>T<Ml}tns%=ߍEquΛ 1䪨\cX~.J-d=:m6~ lcz削b/(Yz-ȢD[C5ag^>3Ik5 '|˫ypZp"Sh@p hd ֟sn =X Nnݣ'ǯKg7AfEyy_x <)SÀ2ax%HHH ЌVaLa*܈3WΩo>Z ɩŤtKp^&$%Ҟ7{1'C&t CWӨxJVoA{m5p颉|&2>^Mޗ#OZkp>v ]V,2lRpO> ay0[NGo{L1/_ع^rYb PE)䄒GS/g]G_^Gㆭ<=f <$P#-clt\{y~PKAlN1}%nuvola/48x48/actions/mail_forward.pngUT *dnAQPQux ]Wy<[؟12m (E &*2#7B%Tu i!0% E":Yy?|y7^6@v#np$HA?}}},fC]y=mT*|2)IHzoxw,--fUH,ZO'ILc2HZaaH5t٦[Bm$DW7y1U`~l4܌e&GXP`S&Tz; FeZ [P޻nOyzyHW*fgn,'3Ԝ#W?^!k3Va"k]kĜ[_zQA:߲4+״9خaLF #Xof9 Or7vve g#wx'R }>-zqbuԾ}DTtm0 RVQϢv@A"Ze.2㊵ڻW9>8V-v-ɺKDfE,Ṇm0A]ϜvRg**h)Ӵ>>DpT50P<*nDŇ:O0)!`;Rś}dz0K 7kZegeߦ:HRqZmeZsZ, v:'Zٝ=heݨKoUVCgrJw;,AF唔|IQ="D ㄂cunRrVQPm{-ng V*{̏ΊF(+pTZ8iuWX.-/+Ba@j>?w) iOQ0'bo0wIy@=:*$]zYL-SvV 7yؐ>D1094ti*OP,.D ॕw;X=}{\}i(Y{&π7t}25vibt0^WTBtk;މZ3Aoo_>.=.I=)D+߄?эtHҵ8fWS1} 'A[>)p4mwH+3v9 }+YҙǸ^6? FyԎ p8gVT㝖ZP `q/(jӀySn.bN(tYesgP`L2;R+dihKXvwg^mgYC ЗMG @'b{A\6|*}3s6|6}[TWx{yeHy|+:/8=-E;G 5.&;6y[P/%r.&3Bw,c?+ |Zfw_f.~)eyʋ TP4hXBjIWprn.80eUem-ѣ! fm,l&$y|O&$r~A#̿5P$rd^"7K1m9۬M=aVzR.8syہ_԰%$r!#"քM~Œ'K O=}fx:.~u2̴oز҅YKOHܫ ?MmT>-`z&'PWvA Q@ F^(T5Z0&|^P@8Z$pz]dU+m&~x\Go!T76glfIezJ(1`Lr1Ĕ R Q>>Nzj#td`cF&WqJ7 6:!HSP5h 5M`9QqFE;/= xP8J,j[[%&>[碸'w"g2֓#$8<)URHQOGnͷz&#/.SH'ƯcH:.DXAAf{{o񿮔&~2٧I23#_ƀdw"-wU|;UPv v `"n$= hC۳D`uYMFzKx`iZrʩ+|yӐ{s.&2U?w[S{=/`1P+Ïx4Ru/rնGxYL5-t/T3&{N1r "A㈹Kc"dZaU9u1Uk{HݧS;o#EbM'E8??p¯x9w1׌@i > ma 7yfFS a3K-(y˨0Ђ5ą1wiݟ4FMR+=^Ժ?IJ}uTH_/_m!D&ɡO\USώ"j3G_bbEԬB 5ݢqJI2obsPp8N$ҡ;s(렃#a~QQIN tI Ġq, G\y}4pGqYe\?קG48^f!1wpg;ʊ߿*F.l3T4W&uQ7TjxB5V+U\շ8/{XBgo0ӤHmB7w a\Yoẋ_CVō>FX{ΗʟώuԖiGUtL%9(9o=Β FD+X$<EzĻϞ݆T64!}>j8-eN$e%8%QH^Gzjcg2_(*٧2)4|^D'JF ^ !Acrm|mWi4LwXY)/h}!Wpa\:yt2 sDԌj j|b#gņ]# n-3'"10~BoOFAߝ>͂#>Z%X 9&GjW5&66Vںʐv&$/OL<#ԈR=u?[Wt]ew'S]% dTπj$ /xsL2m_Y1PK؍N1F%nuvola/48x48/actions/mail_generic.pngUT hnATPQux X TgQ X.h&h(inVK{1V|.Rdez .-&=˴TD奂"|sf3gιw|dSwl6]`lm_0a0MAEn@*[A{b#N3!cLb艈hnfSo~)poW<R1c%~)Oyq œ˩#Nm1$QֈY7ozW8"mD[]'i$#"GԘ!m+)!Si)(z`s+q\z}wk)v&gr)6M\j #+KI0#~;JW7yc jY_޹PQ1p_߄ ^|[KFTWf.8v8ɱO-ẠfƵ V{Y=gDnŗ])PX`nT,;{AnQ6q["-%#[-E<;].ܶFfHќMg? Fބ#uVdf/?qzVA(@76,.$L~QA^$R 4EB踟VC'9:3XG4YA'߸hfOR7ߘƿg'x}H%-E VyߜFMb#{{ `?bǚdI#G]`W`nu}8R*iaN'>+, rrσ>{57§巒`+UgsF~۶K!Fo;KZSE//vgZ"$c@KSЈǻLz( FCOh$sOSgyTmʵSٶ }@OMd&Aeĩ)T{j H;՗峲JPy\;ٳx{RTB̀9JDxʚ$qE@ϥޖ^1Fp/4%]NxwK(Vx TLJW_ܴk)@!5?It̊s#Z% ʕܸ ,6bx9[dBt_*ZDK%Kg9(:#V+@2jwr)0WhEZʤ1WMm葑T$ ebYvZA|RsuK&7Jũi-6&p+''""6QGg7+gdS̎S9&0NQnɺ*x*$5 p瘇 XBE4miCCsw f()X$Zj2 ]]e6k}_ߨiKA9ۂY24Sp#s;cx7;7Zeåfmu+Hmҍ|:1Cp"CdСh5h 8IE .ŔR=øߣ8ÑEI?&1=~EUdb@l9/fyL_maR?UND1h aI{I`%!}CrFʓ!#0R/OOGDcueSK]O{#UxxDwQzCH'4Z=J&gϒNbQ<='M&E) F<&Bl)^Vs*i_32ȩ贾:x*W[}lb[Jl_>dm}OoXodlFp[q$SpF7_뼌& \b.8ggKҒ_G<|Oi[K,r>t)Z_lȥ%-#G&M9^1E7fݞS1}MCP^)Qdԟc@SKsv;bD^_ ^!:).Ww˝3ח0?>=RіC,6B~ٗ_f0zköm/O4ŽXi SƧgiZ\@VP}qey ]xjXW9ܺiAz1,|dapL.>DO7)9'LХ7,4hm vkIUgfA^OCTh-5fs?*iax Ѿ u'+q/U[·s#BI9$O .]!xy=P 28'Bm:l /IV{=y#Mu1S+]` u($ݪVO;4MVC 6-`+i1{9Lov=NŠ!)g/|팼~)T3c m]~ xajS5tr|%Jxs ?!;`~g$$X"MW_yj-_^!Q_٠orntYx !]_*>pn*)396&d?%Wt\ֶ7o#XHr/iUg2ϋC ÉTS[(S!",\)TCŝzDKa*ҫO_8>oc@yqC7@ ɸf MU"ŧ%^{8]4y+9Z7LpEg.s&vr!#jr(O[32ufd+3!ocQq/!SO(4)U;:cfxriTF%WboS&Lu>-[CS[x 1fBrCQZ%l=x|u26] quhcٍm9>Q%SPj'T[,d9R^Lh-mF0.+2Y8''(i7p5Aa^ȧ$R [oKx }`#8<XΤ-֏J!i95xMeev}g-20 < raۤZ!;ta],( N{ ߩkgp%vkr(F>Z!L6ڄMC\x/9IԿ{{j'BrFpUVGU :~aJCUF࿗vI5ZJe@L]Wpԕta 꼸HˮA{5--4Ft?)wGv4JCVg.rIh6|Zp3%;[˄r )ffiۤifrk|1jni0Wsqӟ\.4څ#}aPk9Ӯʻ\|Įk4c0@׺e=NF9+DŸwzO‚aI wnc/riY3МGĈu̸GUG${tVvGӓob(}ؔQ#f^VY'{RW7(57[1 SlM^%eqWq>6$k LN(Aq {ZKKPL`:\0H0d$p_J~sڴ֌krו$Q1)_El Z6K(yۛs#ߵ E{M> b&V7dbK9l7mnVq%ŐWY߅<ƍR5+ʃ{Z>?La%36Uǹ H0ZWʜICQ{Iof{&휢^dG^g鵳p-Kpu١Ir8`ɶ㦆R\]*tou v.^~Bȫk~|y(HSe^=xGaۉWRXcclY + .PPB*Yu EdEiɭJd4ݙU\JdpC4%/ɀ_J=j*`m[]q jNx[i- L}Ŗ/G yo}Վ^ƻ&?6ݎ-լ;{TP!63%F~( A;6=@?PK5lN1[!nuvola/48x48/actions/mail_get.pngUT dnAVPQux %Wy8~g̫!LYF aBPmzg,q2Yfhd,1$˩TGj){2d7s]?ϳܟ~;YUe .{|+r9YT*xS&O'w;q==G/ndHM,) vӿ°Ol"?ڢqedmr}S|)| BB> ; vQuwGTUccw4.Mw)mR/]l`A16= ! #9tj^ŤmW_pj(*@s[ETk0g  =u{чvzZxqS䥋^s_Ͻ_(N zIh)#;Z X6'+ O#&6m|aGQퟳi0V9J/^hΥo(,p>13;)o10­ T^ߙ׹g7vO/8cT␐CKNzeҦ8JZY"}|Lv53ruwzyцR߯#]% {n])#E,V6;Ze8Sg EwP[{ NegQ]%.c.s-2#+{UZWvR'VDe:ʏ^ҒnDV"{.AxU_p#.F;sǧ[[H3C$$s򅓖%יa6MF1ygѾd>'RLd4Ȼ(/bWw & *Ahkkk(n!h)ȇRUz,}є: 0777SŅPǪ4*47?kn%gKꤖ$a>''Q3FVId23{[x0<+65tnlh7Z#dF/"c3uvbO (|$lUJ1bff zD~,@fYr*~]g*tRX< E񲴹I#,TgZ0Fo.#>wGt唿$פ'x #AYI)c;eGtdtО] Ԓ: |X 8RKndPȠ:Q dN Kو ^&,ϻsf,ӓB@ pQ4=̥qSA[-μe t2뫞#]/uF,ZC=2lS,IvL@p袟E_Zoئl2ڙ@Tr,"ϜiQ2y睃հ̷do1 ѿ=#M3 ;pe! hdZ̵(-'l<^u_ToR>.4JU%ܡ4U^X0)YkLDVrV"'}!wP5ez^]if$ BY _Tz{_[ Z>sYOO,N:̓VܫOqpעD Ʒt3fr9YO==a·'e11 u6Y۳9!$D=Xt*6<4eNf~ځuE%ISA8fmܲ2]OP@H[iY]=3ӫcߝ MR]Os2{ Ґgwy C46N:ϳŨz @>7^x_{EYk(葺7 H^D x1$~!ݹ>2HB?*WPX``j­@kZfn ,U&jHFP-pw'/;.8DI#̜T}/EՀ d kӶs?sڴh,K4" $N,h!ا1B#hu0\+z>s1s]"6C䘺RRp~s"n2\~E]|r!Hh$-I7[@I1lu*D:T^<3@YVi\W׵i#z=(F_Cd,X(9}^G.{H& "IH o(xѧΪl[>\BAYD@K'D%W U2. ӽtXT"M["&-ƕ-6А|eYȧ?CAv:}sҫk19@aј˾V { 7ڲT +ٯ9\j 6ޫ]'q sŃ7r7{aABU=_Ylmxaztlɐ?,x!@*)uMf`RUl[u$aG@L|k hiH Kz-`BĖAY+9mq^-+~tXR;~7;Y3uNbn@L M.,9Xȩߔ¡q ӄ, B>b8h'͋ }S9P/BK:8ד@y\طbb?} zmSV'IU 9/tD^MeO'v6`P\cUKpcuK 7 %Cp=j<R{-5đfkǗa`?gH5o@ 5èVV')}i:SQP5/ . /RTmG8Fo:14΋=fo2{x di^lHv`@ǶG"~-hرQC.I6Tr8o_uCs1i :"SB>aqaM[!-9˷iq4Svт t6؎9TT|#7DuZ.V&,NgOHx4k&MU!UXEdGЃ0̙>9S-DT:"X4JWO I?'#Z;`2W>zsAÑ*U^0*^= { #nj#i+с5dT1:]aStJ.~綀F$DnZCvpAܸaU|j" ;xmTm84pB4y2@q࿿>sq'9eٚYfIYe+F S hu](jF#ކϡ^ᅮDH$5IIiYJ]_xFN89oUnN } fl VS1b'r1;vuŨ(#t|SW}>eA!yDsp Oz)o;MH1b}Òߞ~c'z#f$ӄ0hj&<@th1YmTDf:鑂FeSQk9"i d3Å+d4HND/ޡ䮴\+xUrg,Z=ۺ~vþbrvVv_ꏰXO:$53bc4 mQ3x3ց.0޺j1sglC-Vad[Iճ>G176juu5%ۡ6I^[dU3"{I |~mGkvpߊ F6 %F96/;gD /m>5iPmֈ%]W;SRN/:U'f} IW]&'5G}Gm?HVbۃߌ'5H^p5[ce9Lا[(~'r ^ZgJdТjQw][NRI+>R+^_MHJfAl[/bUp1~[ ;^uSq{5Q/x4oOL:*:.gغ}A~"ɈEAf1e5E!QqJ\7JUz[ U^]dGJT#q=:jSb=Q42l36"\}k-x'N|ߨ ^?2=jځ`P}k.;Z$)M>+"-+`hzkY/;ufPQ+3,ǿk7WRhp@i;UvH|F\Lrb} g+:5!NU9z߱@l8.:L7vl6TT[ۃB+T< #H8R0v0.1dQuqVݠz2Gy.w+l ѓtȬ]`gXZTƮG՟8,&57L"sx6D¨p=b#eF01MN|[+sҔ%UHQ`r*J^Fu:~A%S\#jV(;8a8]; $;Đ4U&/xb {[i [v4\KI"SЎ8>i3jR!Og#'zfeI8Нho=C\fj7"`,hV/QǍ:}K_fb?Guw4/[_ܶ HbIJH{P2}!ii" ϠT/CYY]f?`zZ5rbaU Wf}@ qC]*Cz]JPNdvA/ uK501/&x#+,s'R"J ^-9>`Cv՘gG s= c=qY8C]ru~e8GQ ';g޴zczgMڠI!&_U7ߝKuoVHú|צj请:koձg~eD[TYs'nne"^8ד./1MR zzlyd0+7y!hN6$^KbAwwF#“`gPR|nd-)SJ*YjLtVwg/lzmoGlVd2K ΊAwPLl\]@nnߧwBT h(ÙA_k娏 DB? b|=QZW:;^G,Dm~)0_T، Hz㒙r@äuKAtܩ VN*|mwt%z, 8(g6U]]KyS'rQ3`+?ۈ ,F bNrI.*21wkVίAYi^wHD?tP= ~s@!( |'8r$*n ##;pA Nv0 :s%}$&̺SRNt>~EvؔzsCGMW X R4FX&C¤&یP55ܺ"'R&VKۂQu_u1P&m1>aޥ0j ?@%qqLx;QI+`M R.^eȢ֪Ets$3OE]G78jHN-mϟ5>2-!PL%_|x;Dkߜ01phpqxKT#Pc2/gkz.- AAISv}QN ny#>i)^^J4fy:>O7/e)ˠ+/L[Y}GHPz*3t#buj;&ޮ/ۂf)E$fV%xꓰ3T/݆ 0mO!bo8M/OA/(ECk5_S6Umv- ?z.vc\ =fKz#hľb{|6+r0pdx,`nJ;x6s|ƁUstI;skd()?jPkllG{*$RRw0T:E@ XZ^J%:yeZ+NEY[Wyn]dvNM-]m]Vܡko`ð&xFf $:Un8 5<$V 2=iDg֧榞=]A{L'=`$j#vH%QARǒM^ۊ*Z<'ՉH{|nmO8/`ի7SToZS9,/}6M;Ѻ6,`#P|t+cxkB,d|7%=cԟ LHc~.:2&DVbUb~w#QEN@hw@p@]_vPK7lN1yJk#nuvola/48x48/actions/mail_reply.pngUT dnAQPQux UWy<]!n<'{efTehfK%c,3BF d B}*%3Gx40w>ss^s]+k  u^_o RҨP<`V{տƕg̅}Ɛ/\;GEƄFQHȸ6 crp1ڿ+D`fl3d-߶=vLiLP OY{m5rz"seQRESc\" -M jx Ut:\\a!O\(J\s:IK9y]kn~ S_L[Q (E7>?sO;Sn'3B$?\QE!"aK%gcSpzM/rYz>Vj +dⰼQǠuz6ont/{*:[g$B^RҲ|A@)ivCR[p?[Vo3ZnÕDbDȭFOЮM]Jn:sbeu[E!s:\/g`S75i'HPWR_:at389 3rEf]aGf-aQzq} XQ]V!NAq^=Nk9),ձ$yΗ+i闡D=R8A݂ iO_auP`Yn'Nu;TمV]eez &\&6Cb+dAwXɺLN7 {؜[ot+js|VMK͵ծ:5# )" 24Gz֦-(Ư8`$7$Cq fӋ\_sGUbڽm;\GJ*i4cJƪ}L`NމXaM|T]tT"fm~u|ʫ\-\ zC]t娪1dK>iJh1i(_`֟)UD\^سGӠOiv!V=BF\BhWQ>!VAHB1F^W清 ;f7$h;6$ʛLKEd Wu55X$v{hvCd-̤+/.j ?"Cdըv\Ӝڳq8H[PYw;m Qg,8`E&m8By?tHs'l G3Z]l@0(LplϖM- >Djma[UjFyTuP]wW4Įʲ߸%b6Q?7݅ &l"ߏq߇e.A>' #iR)Rv<4yhIm/[F[D"y|Jx[ކ |d@:߸YEtEo5$=wel% B,>m4u50xx#R#F^Kt/"Y_`kT1x:6\R zٛ7j4k<6$(  sGC8>vValo6 B8 cn^n( ?`/^OyY7 yqkk^0WیCs}txDG@3H[[5v i>{NݰP-΂{s۶V'>/%&>H:߇#h#AE =aYɺNrJofOz+õԞ/ V2Ad: aeEMҳd76>+L&[GLKƽ& %dih,oOZr*cxv 33MuW n)aU{)rkq W;?;uKwVhxצ^ҥjFW-َ-F[W^yNjIq?,%4 'Dl 6S\~̗_s cE0E4 wGekTgLJސWB ]xs45Kk:[E0Xg~~23Djrr[>7/tjPi^Jq8&J&[5$ 08uڎZX;=7RKn:e>XZR()NhzS(j9v[}bP#$v>0BY<9CiRQ7OHWW?6#}ys~%uGw?jgx<& b8Шx %d"}K$_y? G>j 2+>BGTf<)_B<Ҁ!RKCvf8^6]qCioOo['Z{x s.M@%ÚtK(7$qi "ğ@qn1l/:2q)48F`Rt=o|g4;;-mC㺄 ፝" Pm}>ag݂ۦO^{\ހUӠaG-3(C\¦:cϘ 1Pk4Q5{%I Qq]Gcf%3?. hqTE[Dn6~s $BV]ro {KSy>KfPuNهe+fyyuC댲*T3)t}ٸRP6L3G9+SwU*TvA6+39A@;W_$h]FbVgmb֮G+C_׿R6:_atR'9ͦ㗾5@3"y8/>0p `4 dPf 2|KG*uS0/9$)ۂB0>wfm##Z3ZLTHJXYX&o Eʠ p(<=Xˬq}_K ԡ*C=se,q'Y$8-0Hd~3{(B`ܺ=_6QPG!BӞoU G6g"oPF;粷Cú7Xy27*% LΊ+=vy}_PK=lN1F&nuvola/48x48/actions/mail_replyall.pngUT &dnAPPQux UX{<̇ǐ-Ilz:szJF QJ2O% Yifjɩ4Ͷz]uu_~_Wߞmz:+u۱}˾%iAKsB֒Sx' Kk̩?N%J b#;SEG|wl:<R~hmŵ"<}@`l1SRaxiZen65IRrAJ8/ߠ5.8 Iu|Au.@GZ m:_I>?^ FlM@-ܜŜCU@PsCv8Nf-[~cS֭iIT*oh,s*B69DPՀcc  05RrD%qLJrU}%ac5ٹ?m{jtr |+NڛY9RRFΰ/󒽃Ss5#b UU0-,-?<7k%&,N>⤯N6 ݺQWxIp-ή,k]5K+۵a,zsTg{ }N3}]faΪ^16nϲ :i 0LE)H/\SL~0& ח? d'$4W Кq[3'(RuZ*+oq+j hĭC rlMg W)riigf=f ;v\m;uYywn|Dx &(j[րtS[=k4E:$ lz^8ڮ~Z|o6 NFNɇWE~6%W:.pb|tڳGF1zF|p8qbabMV8FXZ{n*5W_ [TLӗi7۳|놨s:u;nƵ_ɌZ\,#ŐE<ַvʋ;=IaD< M89B]pH3Dʞn|q7L>٨Ոͽ6x[ 4d'QJ{ ڱ\~ kj6k@7/*5ݾ0wk 葎*FQM 4&<~I*ՁE:\59`31cEn>K£"VK3*fW^Dm,G];U_Nm20wQM a2qwYVڀƤKJey9^G.{0<R/ކXF}uKgϰOϧ'"YP`ޑ\Jĉiy~q U \0 ﰺ({CESw)ñ۵U(-)sI~N!<Ř>߈iAG-CmGBtS;t3'V> y K!w(TA[Cւ,\in&s⾔PGf%e ,23F>1,ɰ@R82"Z؛YW>Ji\G$9z3 ΃nָB4 5e>TSKMF$ԤJ% J߳WU"c5?!bz;2 S:l;t*ƍg_<݂L 𙩣(Oj׶tvzԴ*5&RCu'_?TU5;|(ͦ±O~:o.)W|nouٝS(5VdEf|QIHa6[0*9# 0%(+n3c*XPQEf' ~zB)cHM&,0v@懳,2jk+Y&`6LAϓ~Z~p| ?K5(ni-rl;ٞcI92_bZF-[ř~=+ɏƝįݞ;$4#M .^U>aئb7nk7a||l4 >- Z0Br;f_`pTEɛAH#c 3UJXs^ )/Ʈ:3jEZC Ht =>W*3>YV-B-MD &%Wwqpv@YܐRJp@b|u]1 `t!aujp< U:u'S,ՂI@V؇=PcqMVʶUU RS)e9ƋqJ5O@2b‘g1 ݎ! )3*,˾~@vpD "jne qgY>T^qbS[4S`?ތ_@rytsw$1~o!/heV97a3B{kAztQ\۰^ vdipWxa`PѤNcCG\tx].ʅ 6쪏@UQ3̷_aZˈڞF>z\ m^$|cٔz@v[yq_b%IsQlII$q?feؘ)~fwmlU[~ Zُ9׮ SlH~tLrrqQӄ$@Ba1e;bcVouQ.]aK7ϊDF TMP.4?)_ijRPpa}_+~ /jUjzZG0#yn9K>Ҡ,xF8X''$&kV}ʃf`z`&cw|BܧC\@Q~Rta^"â4?4.MzrД`gtsw'ſ~+>C +;)|ʜKYgPf\˚8MsEoj,g_O,ʻ𺱍ŽQ ϓ-Y0]>j0$*x%BA_;" '#VUMv?pڦ(S{tEq _?T+ŢUR ,&#:&LFxxgaL]y; L(ҟ}eiSNs9//vmj[_/V*{1M|=> rY?X[GP#f->w@ȷLFǛ&(6|@[GHָNrMZâN l;_ Oؤb cJ7 C[-u6e\]%bhǷ=2tй Dye7HT)qa>٧\m$+-j`p y1{%^βbG5/pݼy‰Qs6B힖t\.te2K0LC`~R!Pj ނ3[SZ0AґsTUyl q2Š\RSx4vTŕeK/#S%ROGWc|FL~ "+~.ND{ooL*vBemL t~W(m\t k|+02gu{x5hp"5Hr͍iYX<_UlQmZFY͛LM8mMw58N8EF,)@f8IcTZ+h+u6otz{SJw%`C`8LqM5T_MOgqD:Dw~^b|/MSa ړv%G4D?w.[̝qi~FWWϥk-򖙁-fxlņZ8L9N)D/a@06B_w"Fq0bE} Ox+Q [+Ca6-㗴"+_ԟON=]EnsrcZDzQ^I[SdݥFio߮EO4vEsG] 0PI Wqg0݅P8/')Kl- Ȩ:-H3"KNX5n9 EEa'Y6vV%yoL:M&ZXإX Ro;RIT&Cv'C J0ޙ3)ܻ,X[^1i5-X;S~m/qdo]+X炷 |J!()"X|߶zIˡ q!V$xgD!e^&baѻ'٫WANQ ̫U#Ǐ{ YFdqn--vzʕcb ئrUD̓ocY WyXfeo|eFV) fwv.pS#?b\Icp Grލ&ߖ1g랏 SlwU%Yw"S-bf|EST0RQaN!VoM suϨ0:/Qetsjm{ityLU2Ś]O΋vYDuңkU*L_ieCpqYA59P;|k s:-vajg™Μ/Sgş/(V8C$ԖBEϞ)jLF `7!,(Zh7ۋws/zL[%Ymc'hu0˃9;8qi~Z"].Zzlܕ?3ozPs}oPPKHlN1J v &nuvola/48x48/actions/make_kdevelop.pngUT 8dnARPQux MWiXS!&+H bAA-Ce7@(hE(AA-VNH V R@!@r qY΋zs,ÂHqn2+5B"g nMc<Cx? 8!=<( "s>1jMz8ȂBf2 mb1_WBPǷֽHtˏ)vtr -B?(y)FIQ9UFɜ̡ޕggh^b|ؙavD"u&Ab?1V^LTĵQ@Aֈ+^u.Fu352H'gx!!@n^*i"&QC>Ƚ=ʀck[n9*Z^5|0\R_.K_!|I0ՑNl\S05V`rßO=fuLayBfVP;d L!HzIp nN\r$;.nrum`[wTB|I7HDomMٯ RdYk PN6TQH1ͪi]1`Qbymmޑ-҆Xf40L8XOpVEX]1gWZMw^^W|ձ<WHr$\7+]Q145  [Ӝ_K/uAd9OnKMKC]]5 EgWUכ{u1b8Ϭ<[ ԃܔlWP3) E~3PîaPKyºڟVH,u8 -uR2.1d'4͐:"^3xR FMNuu_O:  gOiF^@->Z#{.V<~XЦ‎[/wlCC`_SpKf>FAd_ơ謒jlT蠼3g-L,:U.\D%`wIv,& ֋iY1~`n EpOWa*v+fbLi$jM٭I-hVUQ`J Sn2(sQl75+J#ooBICl;KfNJ˦*.2߬pNb+hɝn@P^({٭:ÄDw4hGc<=?܆}Z[RIo8Ibd|EO̸GR\9"oM]p]\Zw'׺c#fˬv̊ o#sE gEE3„c;Si{'?-ec=.^T`=X:|\ .WBحA{m'ǂʟ+wXۡP=ΊLo2!:~չ3༿y) HĿoܠoUuh+rw%ƼH-׼? 4\ 7z*\vH< 'R/[P89uݑrn ٢\{>)~:|#,JLW_ʴ>b)Uź.T/kWX+{OyEP4VݞQ9(|s/"V˃+u3SɅ APa? o__7>o(ϺXP10 a 3R٥9f~)3Liž3ǽ{kl6ALH <0CוmU;`$WGN6@ir^R߾|1{_oiNnSv[C))6{<\&/TOzX.}`gneAJPD]CQ|#g!+.Rȝep%>ޙ-.SFsx`2SkD)@uhÕцU[RY+-Y|RQJf<;M`=ѥN]kv_KZGW[E%Gׅ?}F9.}HL~PUc6: $PK#lN18(Bs,nuvola/48x48/actions/messagebox_critical.pngUT cnAQPQux -W S_xoqqG7(*vi- 37ڬN<cׯ0GGaV"u #Ub[(Zg^+a'6RRNHBZM-sb.foDO;r։S!G ,MuEX۟> 7Cz7uYxrIiyo-)jVs)㡊Y^x,/~=JœߦmO޸y@$}`]'@5@M7ÇD;v肝qV|/\C3 w8WPlX~`` $`+k۔j;9 t ,Β 'yQAs}j,W̽@.ӕq#M!1*t.>pu}1Ͼ5OTsAp*\P `d2UvRgs V˷bQw[yУ eoW@⚴P(+vH""JSsE(q9x[pnzFoP &8QG&~e^`45%ܢ>z- R0Lݺv 8 $s$:Kt0FCd鮆fzěU᤮4e곀;/5 9YË<{ @3. q%#;*xGg[9BJ0’I>P<)*:(Uеjgx$Qhji4N5 bAlr=meaX=Vٴjܽ3'86E&G (kcW?;(LU5|>e|SZ"C!蕊hii)l.@/ jbD17!ò[:u'%/7bΆhm$>L&ۉ˿X9TRbppOSbq.I6%憚X($S.g#{YAk-2{R0q!XB?^jg71Zm Q|d|:3=F]症N}Mu L݃Q% 3zGkg2!ئJiaB;ؔ۷9ŒLwb~SrFI²IzsuNvb~~K4tAW'øL̓D')Sbȸ:6E ԥXrEd[ے%*-,aIa:AvS(`aay ܥ SY3gx#Ki`ܱ%%"% p#: 3G늝)cנd90 s{F<ǡؗVbj$?%3΅ѭ$B6^\mR;Ŝ膞par0noYZG au54!կƑBz kDPIO')EiE}d{qr\*aS#M@Mis 9 ?nyNhfJłS1JN@U0eByXP)vً㝺Lc,2kB(nǸǛ˂QVK]bjil 6=??>ڡH6yzhiz7 {"|ZnYM/uudG˕ ڰ"}@J9DPoݾu%M#栧P^~Ar.>励cC |o%'rZ4I ? |FfbX!rF*f̌Ӫ6݄;X4ƥ>03 !'02 jdfa2\S{ BҪK:]doVwکykE5%0Ă\ 8.oXj%2TPuFQ&~saӔUZ}٦1/8cz͆d-bb5dF'O<oҐ:LM;ӪN-Ŭ'dTI+<*CZeMpo[R݂X3r#,CLklYV-4qqܞɓQnS2n5e]u|BjޅxCMfO._# sm]ƊI-mBXT!-.3^WfwQNB]s4VnS2pqy/^zYe:Tl-oC.uN6MGqKO,OF df$웡 _vK>u<Q(gW#DB>Y!ș:Fj\nC&=AS" >%\^tQ%:,9>776IԜ7g蝟SN]z`AY5eKR@1HZf%!9('Mor6IQ߮ [ݹ[aw].?|z|*Lw=eK3s}orۀo7:ڮ=~Dm{;~v~"|Y<|)H+ZkI(9؛'mWޮW:ȉǚzVN][Y9&jIG͘GxT#vkbƇ[fyqs vPKdoN1ב(nuvola/48x48/actions/messagebox_info.pngUT  jnASPQux eWyXS׶?E$AfITq$ @:TR AQ%XlJ%r+ V-PU$@!߷[{"f GGmÄ`Re|~=ޓ|4 g1NH۝/-Kw#Ele<tu10Gp#5-$ߐ3vk1 *.%Lmcp@;sdOAF(pWk] ĺX2UnOr<dW !9 Ϻ R.J;V߭)ls/P"]WstsgTN].|&IR Ӥc*|c84pirBWxwDGg:~J);Hxmuρf-LzVoi'MLTXe A@1磒Bm@ڒ2SR|Kɾ[@_ HnEs0;B+OSE] 1#xZY6 {JLR tefmF ('>謁KY4##`9QP'ᡪ~s4dϹMۢ*O C R}w 3x|+2& zKw\s8?Ҏl ARaWv)x*+n>yʹRFSgS\ĺ1XJ;Ġfv(HbMv٪Hv,ocA?k"2A 20܍cΒAwrt47mi6v #%!|e7_O 7.ג6\S%]P N{*<լw|?0mAo1\aaVqњ }3A.xGb *1z-6|YltRS@yTl@@LrVH@TLO7`.:lw)2NT@[Ҩ60yr?6]KFUcc+}B '֯zBtd[aD v(~0 HQdHJ!~J%;)?a͉ M Ž#4d˚tY8qq{uNB)kgFzrZj{*†Ǹ]ʔ$弧ɒ(nnEI <뇦;BIҾhw^Dѫ}Ӕ@G}371YvcT]x&x3C >Y*\aC`@*#`}RFh{T1I_bLV څdvgP'EgѦҼ ӑ" OP'v;\7}L",kNLwqD/$\?8v֘ kz$ũ7rJ..D^RBYE)>NuZusgU=`<&a`K$\-*nŔ{o5˷L2Xà`mf_CO>&aSI6wxaV}‚[H1u񭈦_Cfc Fds^ǰw"?V˝5}{ sWp+rZvGѦ-jFpylӵXRo4>hD=~D$\&9Y'=1ZT`Leg-PH~vD´Vu?ϕmRy@M^2,(O}˟qSh1' ,;5L ȀO5Z{MJL6j1IX{nU"blF:" vU[0r4˖Izz8 "C& P 'abTv@܊[|j-am.;bQG/:weknKL@yܺu䠳$sSnsIF1^nwX)CHew^ك`YLbS6,#c 6wsͻ[jӐ]59̂$ZUE^.muY@g%.9qbw$ԲNgdRyQZZC8gcOx tqi"#Wk9[;&rE%Փ3 zK [hl*mukNC)[ʡ$Ѷ7gfD̋M+Ljm}:rq󸬈|x築wȠ'R gΡ jkp#j.x]Y"+ǂF%rN,UH".nc2%(ЙӞ~r@(Y`̟,˅׃k/F6Ui& e⧻9-[eFač&`uLV؋߯w%x݃~RoQ{Q&Y#EhJi" 7MZۃRu/ y0`ɋ1]a{eC&A^QűEz+T-aǀ?7K ̘ m V~wtD궞ީs4)59V ʿ7W]jN5Zb;,~Nzy`jL ;B`gʸf#KY͢"Us ] WdIras-GٶV+mr,l?K._˵Lv]+ˏpe30a7Z+ 53#cYsr|BovPKElN1ff +nuvola/48x48/actions/messagebox_warning.pngUT 2dnARPQux MW{<y0fHDQ*jfHne K h%F6Iø3Ht9MjK.ܩծ1#ǥ5!2f8?~}>p[2VcÎ=:SZzf?7qQg"ND\x$뻰HȰӝzs 4)mm6 'X G(zd1$g‰zӨar'$I1h ;'zz),8hG蛎"1&}}H;$3ʑ{G7&)5GO;ЛuI LQi=m"ܬǻ X0dAU&K/DZ$h LUsf}pT*)}a@eHx%;KDȇa /Q>?R[/P&#t{jG(+鲸*Ͻ:r*`kbnډdyE}̂jFPՓOjU̚_:Jp"dw3Y1rsI2M^8:I],PPScDdg1>V,ÂD8Γ4*ݜ̸ZJR;nm$!WFu[Rr)IfW3 EF<ɦRyTB2$Е?uڇ*5DOcɣ\OI)Uek3yZԍeE-\%sG:;$)(ډߖ/T( 23CKjEEGkEvBq6'xv_q{X85[x?]J7p:&koGpZA>jjvs| [V'cH.<-wOVMG!o!1oFw@_Y[P`x!ZZ2;ӷ7Knl *"eoAG3hkҰgpTT[[[>l9iY<4Q4|=g_,v{,0T}Zwq*1?zҕe%ё/eE-wITQ{gn?s1 oWa 1%C_+Rqh cZ ްa,+܉eu &7 ?(3~AKg4Zt`zm*g6pq]$K)C43չ,F"aU QKB̶%b倧$o at^-Vxٻ{!&eVW(.a CpKCflcKdOŸZ0s\ ھ}{|}~>|DzHcY|1mOq/A}tA,7P"rt7SʨxKg4|Ǚ,T3AAAV֖Ȼ;Pڶ͕M,JiOhp'E+Id%ģGLVv[I\hw\e{MI ?Ҵ,Yu2\ת ,ya+LKR֦8b*-{HUOM"oH>!TSQl'`|px40\SE (ZJ"ؓ<1Kʩc4+B9\W{C%wwW}U(%őͭԐL -BkHXmP{µ&$Xʒ̳Mإ,}yIFRo4Fy ._^54j5ب^ZqpG{Q`6e-i`RMf9li(jwP.QHCxʃ_uPc\SZ-Dx"_^**L &_WOPpn^9k =Y!MΌxАDi4=m&xMO*ޭP/J'qsZĂZ:>e3@f7pqquI_EI~Y4Ck)j Tq')ɭVl<ܔB5#B_ /i&Vf&%?_3QhV[A]S;%5 ?z1?k8SɣɌȅ1 "KPҙ<571y:AAWїĺis^aB y6n._J8rQQ`UQ[|euxX:7Δ>)㟂37}o;ƗѬE$Pq˽YJx)MTJ+yz| ܵ (*XzcKy,+Qd#Jt 8᝔NwM'HN܍ OqzQ( L Ns <^x2X(Wd\l>YmJIpON ; Ӣ] tCr @y;Vs~SAKKxuKm+NX-0(jyf-PBRU<&"M *e N 4 Lz-ŠF@Zzj`{. k +,(HC5.GcTSfx(p%XʆKo*Iӑ 2]{'v"@UN8-]ǻ75Cc1M+j!o[iej 릊9_IU;V<Z'h f&4&5NjRnЉQ21K.ia#])f&W/+nE \\0;Q:Zį7;CSuw͂˥#ΎC8(QtSbAO+9މS?bt4J5y[;#vuM^nf紎(͹f`PҟbϗB͇SsxޘpC5>FF~U?PQn)AQқ/Qw+>Q3}29Sq,V~x/q#>_w YG븵^E*(A ⫚u.5W$PKt918nuvola/48x48/actions/misc.pngUT gUASPQux Xy8T>fc aT4K(3(2$!$1fl,dL_J+ȧBdS3~ys˪wrw?/-/_cL&@K);_ !T`c~gdM"g6 tg~ H YHw‡"sW%MbFT/nrr /MJb઱ [oIMMOԉaV }ӧ\xo7 |j;]S)6cJ7~(9wٰ0ch_ kӈM8iZj%?22[^YicbM?TyngY:]s[c6D" /ǩg`ס! ?~ur\:*!F3rr`]9?ӭͤױ{\Bbem]SU)"^A38#k47p# /a\ʺUP`wX{tzA &:d KW k3.dSdYm2Nyٷ3H&7t_k{ N1ɉ(\lL2=C@="`䜷ֱ".Y,5 =ԔݻF({Aa6&i~r~Y!݆ijWVG,LDVJE.z_x@Z~M4E&[0mz:1p9&ml}eOOcdӰ-)<ܰ+CC=7` Cj5nnJ WoW IEH%jӧ0A"'GT~ͥAKuƴnobTp,LԔ{o;wص~|i;Iy:ѾTҭ}: 㥌{Q-{|Cxu2Xz\Q2dJ? CIő]VG[cFchʭ_,bݢ腉hU 5<\\)/nn"k=>%S[ޝ U}- 2Y0$qR0߄ %7s.3ΜzuY맬~"*cFɬYQޝWKĐ[t8kK(غ`|ׄ Ӑ[3mFEXjƌJ?t3Q`50@dZ]ژ2󶯧Tzl~IlVSUQMUUuapeo|u!d2o[k{rݞB*L!+$,,o=&.iv!A9X{YcOury~;7S  wI*=}ci 77 GL:mn0Q;' ;yɬkmᇅeK-T£d|Ic]t!6־[M8yv_:Wc!nv:7HFݷ0L}"hۥQ祹~>67w\܆t#Rt70bK%\mn{SQ`VT)#JgJ Hum# CS`bNlJj@YeǺ^۪KSPy-+p_5o _6ňzHcmA>4WTol~  sB݊xK ^^C˃6& ~i >zs9HڣYލ~NN򰊍Ƈo] u L tW,ex! /pc44/G>9ԭ6eN֛ը1fo(uۄ?5A"MH%eIϪꪌA3uut,TIeL#G۶mokw`/QQR A7djMBӳ=s"J&b $d/}KBny IL&[_4(pwq9pƺtv6S$~ H`r3{"J!n'@Of^Ŗ%EH;81Y^&yzGLTW @(h`~,18Stp{?P .W+XA$5%$h2cNXG+t["S '! >Z&~ HC0)c i ,wr>UI, +j g޻A@҇%^!izn4c>Nf' :|F< gbr!-t`r5#32 H%rwQ;/)<~K[#ʼr+W6]TP[+| WϪ*T?IobYD{ =@3<ό^6c$`qM3 yTucrlղ`/>O$mPR.<YÝe, y۰ŨgnĀ{į2lx,S_.F5PgTUx}cz]j//?8 QTmm#xӧ@^O* o+m B]jSK q>T*|ыo]F0Ld/!`"O`XgɲI s"^}`-SEx:/&5H7S8hIGn8z_9n $}9܎i;nAAsOkͳ[eV. f}E\9ӓn=;Y:t\[3E* XC3)ͿJ~^X9iSwl_7PW)Ys^BZ!UCc=.I G㓓B?k0 = C=R:O__;MMUKK~@K%$mH$-Hd4 P$g_Ǒ]u,ȜrMOJEUW%_ ]QdR 䫫E lm2F,^I3oq6PzH!TM>$?S*N3!qK&g3WYr$3 ك*>EpY,|K2t,7yN< ?36_'N:Ͱ󂜶F`(mqNjTRdj{utFU;=evm'xT^? |ʕ+pl~;oƏAuK~a,D`/c@zwf:A)c ?Fό9G.2Pڈdee)Z # 炿pu4Rt/S/@S4qCujmqvxpdIV5cquN<^oE54,F5Ћ?3- w 4Lڞ;af.WLhc<@=>' KGhJN;RTijNe06i8.´!/q+<\xD$rGK~UD@yR!ߨ!nbN.W&&&b,"OT87ՑԳg-ߜ<#clr`|ϟ| CN1ҤcF(78W"~GU՗ {P 8f hQUU]V([JQPȻЩ. +j/PZ: o2GFAȟE3 L%j`'w0ecc6JŘ!99> m~Epv,fjܿl冻%Q=h' 7z֯翩e ;~mTvjWdEQLдnωad[_+3%n޿?9g-T[q)Պ[3b{ee|_r=Z(@5GS%L9$lwid<9}tƟ=aJĻF6eT5d9w'Fyu15AJf߃{,FAJ.mGο} /}[BG*9.M[ j?;eoR3d{4X tmBBtuE4_ odUr,3֔RN ҈F v#%1Zdz#'I&-+Qző>q6c9T^_EKT|ƀHvg//:UQnu@o/FT5l';}CGLˌh~tSH{^Xd<kq$n9#5U`5(\q=%肂=FP_kFK0F]. C~w (5 9L qnky7wIM]x(h,Akj:S80|;,$0_ۈV$!!.6G>ߝ#V^t؁ .WbȢ%9qY?.o41q4b{6Fiem9LjxKbԩaax/of Cxٛ|so,z5FpEvԁ*U3mV\:d -|[yOYozhߪnsF햤8ucKOxJpxOgϽBPO_- -\]eH]?: F ʆϪn'g`w~fŀȁjZwM9\y*vhQ<'o7@N(_}/QΩ4Bb3ї[)y*r#٧41Sб7.B׮K`-:s#>_EOQ~5?Kg箂s__0bGJl"~U{vl-N@vJʕ"ηSKTe/Hߵpؐf:?DbjR>eX9T[˜++ײi ]#p,19iM&|ؑksK2ӭnD=w2j ڨ^q}P `Xh$\zt0phMm{~Ow괠-Jp7m]CVVʍ6 U%dMmH{&8rM*vZ*М\ upsHnHcgR&:ǯr7a29 G7C}r*WBsYB8m幾[n[m?gCv'2o+*[(}= ^ÇKęN| u֒qːqP :^mAq|̅[Z=Zg?Wkl6uocTƤ#):-iEono*_e.݊sEʞ-vs<C=ngjoO]j9]:GPN):zdޭPX)-VGQFrɉr.HfO;.Gh%ϭ,X ?leUMiV_:8%7k. ?/Hu@ók&^ʳ,BlZkAG]`+z3lzIi觨y*5n=\>"aPL 3 'Ya9ZpWԵO6X2:fPK i:1Up nuvola/48x48/actions/mouse.pngUT LVAUPQux }W?lc|2EloklBG.tzJ_"6PQ8HهK)/\c2u|;~:{{yE߆FjZ 6gksk5 .\bƄ(V(3 r|LM[9wWa~JXVn ɭИPCۋ:P,FUWa.W 2C j|(#*|x.ܑC?{=]w!`AqFzfFԺ[\5T.U~4wۗID 6Id8;+Nzc0Ha-}K+"|f{0LPҝȫrp.Kq1ܭӮ juh^JFH([PZ1 aDvd\fǵc¤qSNf&$kV f3A54 b}OPXN#'7xnFj's1Y\A~ ;aڢvK8>ζ|U$XU&jk[#V'775;;Σ6@kV/"؜ TcǨ3e2֬ 8>q!z?_B5kk#DX SSW$]nD8&^HJ?F ,G":l5`m>6o560CN*ӼO# {]HI@^d )4CbR6/ؽc#\\W 5bHtn BSJ&Ӵ }w!6boٗڲcI驿PuS7yc-=|8 c/ެj7gg7HxK_#i5PC3U,Z4-1,+$&ߚio `m|l![ƙR!\^eD[fj`soN\QėJyuzCLqt$Oebړj`GHoc~,2 ,^d~8=#rk>]8p h>@:J̅ 6o[ii)w0)OcRdA$plx䖠z7`O5Xb:I^-OÂXQlKl" %/lP>DcܕgO멹 &4e]ў>ܿBԬgv;-!#liЗX\tcD2(0c Tp@B|::_2P{)iVeG{߿uc7f da{ 2U&E~ p %jlltT' DMf`Ʊ8ǚ -f"fmb8((\)DƇQ׺_P'$2DGd{upw&~L6T9["8I:{TBIiUz|k-D_b#g:^'O$3Ϛlz&f:&Tv▩mҙ%;Fܬs ݞ ^ZQ,$^sC;ò U[CrwUdmݎӯ} V,[O0фSˆLqnSӍޠ;w-ħTXٟ]F#GmSKZ$_20nSPz4ݻzOu-F a}d3ZY7Rh\hSOdfGsf#]};C~Pψ pzURR!2kNSa/m/)I7p'L$pDP+yݟѨݿ)>mq˨Gh.Q9њSq1hq*d-ĝRjRqJ핇}COxn#/Su"Z,)$S瑼 1[3 {{ XMzFIuI2*x֨1~~K"[|]mnk(fƇÚ?j{cT:ThXS"1[R M O&Xz$qCs ?ޒm/}\^ Xʚ?nj_8 1h r> VxJ16;^_MVH[7D0^Ȋ%ĭLzgQ;*| $Qg2;ˋ=BLG oQG:i;&U\7Bct~>kB"̒2Ҙuɞ$54i;}Y'Dtf O=3LȝUq*D>b`#8Edɾb٢;lVf 8NvkjuuMB/2U` 09cM{zH/PK kN1(% nuvola/48x48/actions/newfont.pngUT anASPQux -ViT[~@M4Y jWKK/kIff9 NT!5] ybXVVZ9e%ΨѷuZ~}!۷`ttlݼSmR=XS^6p3VTS@*,G4odoαoiU{ Ҕbk!b֙r R? /YQKqk,al`'xǑ4َ\}BhCAKGz:yR֜O ~4pcs2ʾiڡ Qky._^훜~<}q:?hrCkө|a`L))קϮX('اﭝɐ0M!)Y8 Ac)]eĶXB4/=ù +Jtxx8miiu{8s#dzjXƒ_ @`PR4XV?g-nqf?t\$˫D2 Ob\`,VĪbFHdEK$\ VSHfLKxy{²nDY>XVPm#g-"ЦcܫdnCw vQ#zx<7?9JJr޹v X tSYs7| )0цZ 8XޖtvجZ|l/w 4RP(~\"*r!}}c88&~ߴv&L{(nD 0 34ןqYW^űO; ~䨴P.OMPP*䳉^4Km>S`IOT9yU/jk,r wH$^ԐUD1Eхrj@wfеь}[؋lmnxM8!mTC/6do-³g 8 eCY[H.nn-6jjjpߵ>q,!vO6ICJWa##gFHvFY@` IF.K_ Kxݻ5ހK'iQQ<7Ki~UU&ťC,h+I`RLHFCeT?8D/pf d <ǥ腋@_Ysm$g_`r)<Ȳx"gRPZbo]1(htgHԿɶ1/]EbV^.S#TF>KʟJ.)PJ%`HX@73v+/b_,'Z6;[rhTأbFǍ࿺Ú(x^'gdMC>B\ZM aJp_CKԞg([o]E<CIu&y d:2@;$O.t旣(AhTj`vL'd* i',Vp>C *Ɖآ\43*g!ABk=Bͩ2 e*7Pw+DH=fe{?5SZȫi\i*fkRh6_xe͎Ŗ!,H= H-"prҟŠ;L(*[5$tLjcͩXSfi9vZ d)Jޙm|T0N-~k%E<+S8VG"[c.J8d|?)$vIJf `rXa'b> ڐmޛ:2|ұxՏ"LݚB]tڭHq(7{iNL"j|b`6Iċj [vZ}Z "i٧vsx+23%Sw8M^E*gn%NY1Ʊ֓ D?Gs[GOFDFtc8tgƃ78#25A sI+#J|Q~"ujk&Ir@jz#!:[%8UIG֒Z=h8ȷTT>? uUYʏ0E˛Y  Ϩ! ,=32ᮮ#N<Pegmy^`xYќQ>z񛀺HZ0T6;^[a6;vf\O?ͤUɍDcs5bN#VK:cts1[b[z[s¦xS)C´F.ߕ}U~ƙ=0ys̸ԇ'_/>7Vދw  Ч<4eX-}YPKkN1,M'nuvola/48x48/actions/news_subscribe.pngUT bnASPQux WygVc31L%.Y$P%R$=QIIMV7S =b4li`B(ۘy|>}}s{}"cNMUhzZiJ5-ʚ飪gRG@ܾȸ,Ƣx=eF$jf9Nv_0R&a {}6kT 9n0 TMޑc(Ic~uRquev\[aqe&yz"K :v4(=߾Ȁ0醷B;wW:"!#`֖̓7k[))q}}]ގ`:rV^Mx ;Cl\)񋛉 _~_[*FikSL>^Lm!#=x|/OqVvfzY(QVisܯU(TpppJLo5腃3yk-yX*Xm }svp"?PsX-T R*0B1puЙy ee$פs>.\Jv1|E$9o:|YރuQJJkfhQryPa4|]\)_x!+Xaxd>&9ɟpq7cjL`rDC*a=qOf{\t4յqA8)<8~XY툂);yٷ RzkQTF11W|0/Q{FSĔ?fs5NA`+-{;m^ETCavܿcb$J3w~ n!cg{~MӋ}+(a; ]F ou= F,To#f24hW-D#}0J_c> ,?z2&UݢΥ=µ|j*C+~^^d}Rټ{ SGA) x6R\VsrVkj0rt똦o갿b'1mcr^qR*۱~nGxWꉧO7V$̮ 0a]M).RF*e}{\y^R =όxk2 oFj9? :bfRJ\mN+6l*v6U|Ao!쬊i-\2=}:h xz9Kۛ#q-\l%?\ Lomg@?`c U};6͂$|ff?C%Zd^ؼnK=Be6pم~wuD~)ns|; Wc_t%bN9wX,n+0%6Y81>`i2K.mCSTnJg X(sV[rӃLnU=6 VqwG,Ͱ$bDEiꝳ;QGF:L9gtLo0v-@諞#z8Yn53MQ,2.LDNI"N\!듘 borQq``:tD>G !nP7dvg5(:g=6:+pm O`u,=#G s/̛fWfYnp#،ԨUXEVtw9LXIZc!b){y]nTBO dDEm-4Z3Tꊠ)"jݴ?+sڏ'[ا*1>vyM%1Fi-9=9J;N\P#̃5rc>r)Y/ 8o d@cV#V%~tǗZ͟5b9_)KFxkuk҂Ch; >7w!wѢk3 ӭ*pfUXo e\wT)Lw8Z>TC 8DIq[%MLdMJ*b>N.c-hD?hg&T8qyMbIfw,7uڜU\{-1UX$0Yè]aMU=%2UND_o$-؜b)~+Xo[r:$yR9'1!ϳ-[0D9& ϹP9S|>Mɮr0F}Y| 2R((@#S bMζ"(L{*ڱ<)Ӓ,[pnusr^ZHs y?yq 6}7K-[g@I.VD2U2 ⏼14Ôjl ffCǠwe3Rmڢ){Fm28Jܫ9%g-.ͮZC;(;n4 ״(zw0OZNsB S@],gӓTpec7:߼dd*Z% \it.Ja礖M7Ha((%oT?3_)71?{|yI?d>Oo"U'*aJc;(7MM:RㆢOg~kf44t՝Ӵzr\ꡠ-olx}EZC'y9; Ń\%wMdjI;(8!T@Npvvm9 QF{EB+[C!d\R{1 񽥣eP-kI4_66cu{=8$Z4:`Z 75OPyC\86M\aE5/.؂A_VNjpwpn 3?y=ܷنبP!USa^'wRq_;wEO5ͣT#m۶b0j(;~?.l} m=KP/L-@tbY7Fwԁ&Nx?^A-kqN0 {e&\"SU[L<ˉ _Jp@CCýEX7,y܄ | JrlZ.%=Fj2` rq&NWTxj )[>65tƊ.wCdܸ|#4|a?D_9%%sVjٲ^<\|`Ï`A_˗?kq% E~[ܹuT>69|<z3͊mujˬ"ۛ6Ghʓ'15YZ]tޟv~^{9NQ{+j}$б寢u5G)oAJ[Kk {-)%]V0=^oe ȃo\?mو\F었n}ߥp#Ŋ422路 pƪ[2|puUA5V[&Di; >ÇX+r VV'< [5 (xG X0)z6+{frvʀ6/dfEIKV[㑥|*Ό}$Ա2ohF 䌎U"#vI3//b*'8KB5_׸f-J.xu>ݔ U"*9>JOd3c^~̓-{չ4Dg*bqA]}س6&PKkN1[O)nuvola/48x48/actions/news_unsubscribe.pngUT bnASPQux -X{8ab+fT,9u b29+6j(t|Z)ȇ9{J#YY"rʙw_羯_~^ jkpw۹_R~*h_HW.0^:<mG]Vbw1cDƞ 8ЃCH'BǟjRteI@Jhc'@L~1 / :4ȹi r+~3*nmzI"X`07OCCݍ]\]]IӮLʭ Yڥ*E!0=C36xL$x,fzr򙛛 5#32a>uʚP0+;!OQZkBYY uŜ33]ܙ|sJ  s|,764 5>wv5\4]hmEtܸ\_yP=m;twm0=~)e8_ [5ǷD <^E A/^\9h0 LI88>>ޝBmb7 U܌WМ7.IV]A_c?' ey٭xYȂ 46iQBcR4wY+ M9\W|\g_=cOR?Ul)\u\RĿ$EQxL;wG'W-<-Ш](%2IB>Ŵc;2Hd=.sv\X!:5 00Df3W43U{MB\CCZkvjVcq:RXOųgO+%"J' ($EAYF+qy4onπZ;L]lkkKH*<@tX;R~3YS˘2DN숃 ,c/&%H]K-PO0T>d?O023Jw ̽44E$,uLR:լ9-Q7Mt ÔYjVնbޱ"1fs`GjZm-= ]|%lE5utt>^zvB]?F{Gi7wD%7f] ʗԙz/ _/O D3@DXGL/ AnOu )tJZ&i-k\~͈B؝: [`=6ةzWU:]>mKԡc2'|H)<b2v<3AXAHO`G6=Z S q IW7V{|#Oo +DC4ګV$3@$\7%e.`EGr<ý\^y֌jݭjfcrėꬁ堉3ovXW1Ja<zͱQ#Ȑ\V`"Fj! =Î;Y%.M=/I, @%a:yfQyکRFmRG>bk7qap^7pFKyNzB$ԫ*qI~)3$3hO'+vl?t+j6D{ tbK¡r1095T DO1hM "[2v`^gHj=ze5FKyƗ|Qݴ:Ώ Ȱ#`ӷl@Iim.,`1iNTIK(am쑙 - %cԚuSfKu%$#բ ]zvEhft3mT=nz7uvVRBaZl AS$ hՉ؂ϪG3_zp oь97>RZ@r_) 6w6-*:XR]π~=jц _ +͸}9㠸VxuP}1ǒK8 ̕,L%U5AQޚQ 2Sٱ5` ^Alj%Qhnnr +Gytu2-τ^hLip872#EKOڲ)Zն Ag6(iδ1!d іePaɉEV&.qb}7wj]CZ*˴ CDesL8y̷b"RH8v xXg|{&v#|,#Vz&kwt L[%\F D'߷ihKxyb g]֡/g 8!OZ-_DŽCc}oj%4AP>JSSɳ/KVsDm9=$֫dRj+nq|{BR;0}u-{ WGZ_0-K#?Q G;^scgVPK=N1 nuvola/48x48/actions/next.pngUT nARPQux eVY@ɐ I\HD6V̄ ¥HƢ(h FAY(P-k$첹iȦuC}/_-/b'榫L0E$1 縥ac@CF| ÛM,1&0` ":g/V) StI*'_׳T0=hS~"Pbq  JFfz/D#&AYɶgu=twPsD1uj6#uBLqS}\P ֩j2֬3e% ˓%(eq4C0vplT("LkAa`k^n"_QpϑcH->"FضX}߾OY1½+8~|Zvy<`2Zu+&}sVX)JÆ ?*XZFx[L(\Pi,ȬC&P1>^,{Xh➀O!^DOd`x~7,@;rnj{ ݌_*Q%fU,eUxdd~i{ެKЁ-V[a okA\L?F A/(C-˷;k܁e,:q=1/t `|ܨ\\|:.V6 . 35[gGF$?сЮovA[%dKxCehp\}IS>⊭-s1 6 e,E)Y (ƈSyxLANP |N6E/B.rv1?Sȷ:s>KB!٣MV2mʿc[7 m2\V0KoUe'T ~ 4fJ*`i^Ҳ6H\[30A[Cf͢pglWE ?A!oEXvA צH>(`oůBT/ -",O%I-;r"-jOt>@n c<dF ǟQIH nttd]fa"ҬtX>IcL;GMC(Lrty]Kلr':7#F?-#piRGb"bH 7炪5(5/Oܿ ;M*25}G(0CM6g|f3{1Q[s0hDU| _W1T,8iOf8$Sl T^3 R@<_z nA넋&1^c6jʺ x}L "`&L ?Rb#r̹͒? TEo?uE`Uye򫸱\1J EOS^ZQ(M-SޤDVAYĵsxf>{tcfKdWaTY ܼv.5=xXh).{nՒ`ɣ5?iH598e6[r+pRzTirL 56XgS c#qOd-P^4Db#X q/{bUm1}N1G7doaTgiy-ekO3m)Jzs A<.I槞P k;0H_ ulaw2Y?Rv]C #5/٩7xFv jx ֕q\v0ne}2[;: "t?UQU/ ԧ=D(G=b4kkVo!p4s65]) Uͣ{ASݿhʢޟv*Vc=c,tLhr,%XW4ϻR$$5gVYF#WrLxۨYk̑DwpqSyBDuOk%q eۖ$Lsd&ϯXrNnqNvt:38ۏi~Ϋ%E*|7[`n 4NH>jrK5[_8J/KB )(ߴU"{vv>~1X2ԅF5-GF& gWM4fW`bgb ]P2}}׹ <"`,c*Aŀ7_f  t5/PKt91Up> nuvola/48x48/actions/no.pngUT gUASPQux ViTS>  $B S AY$U,%92H1 S+ 8SFX T@Exs:kouη]d 2 8( RY."^þ.a^+[aM=ĔOc l FuމҮEAGr.-XoSw =0fHb { lg:}hqVwOwsJUd6 ^/߾"gP-GMC4F\Tn4\{SMP?@W&ٺYljmܘ~H̘%à9tgxX{=ڳ %ٳ;:떿I񦴵 &{1NU,r)C)*o .U<:V#ߚf3Xݷ(36FY?S0d?vsH]7o /s.r5]z>/-ɹ!4?mMjJ](PàWЀ#__cLs=.% b\0DZj6xoa˛߃R@};JI!ffIDh0߅eʰ"}+x8P i/c)a{N'{Zp g,ve&!'';D?< tZp[%4<& L>Xَ@S>I@h/uRqH1M4":KȈN2wN쩺wVMSn`a(A=27>BTnc.!>g܏ 9"ƫ؞3.b2{3sNUݓg 1q[;lwL>(ĢBVOeՔp=z0QM@ICѓN-Qnճu,w@¦W Q$ Nmd(yyO]lTZpL;%d+"B:C3/A1si:1t"JMev@ΖSy O~+n^nܭ d0)T42z73iMu3K l޵T4,O\>(LfaSW^{G9%TdW<OU:r+hۛ6_ɧE≯u[PJm &paӷq ~¨ŝ[,QEpb: 8 eEHejo~T)j3>g199axE^;4ݙKlE̩S&涋 2C,xt?ӹ;BBL^,TUϘ5f` "V}xK\Ү HSأ;8^r;Al#hVcczԓ!JM-ykP`Rnq$ WjsH쐫("A |`Y#D9T}y*G"pu³9#ly@s-ؑldHQr7ܯt"]_t,4yTeo,†2_LbUr%e@neJ`y $fdojSޜ6 'S~ C<2vo5,N,FiB'd,ѲvZnӤO`unl<\wKFE؇#0Fk'"~Okjq{H0\YO89vP4ab!,CDj I&0|ruEh6] &|k}p=8~p/1<~bFE`Sif= 8+oDP+q+PwiMBFע<e Ctts E1तyu+ =sYG}RF۝0'>lf?\͕tWS;~5od9 c`qw rPKt91+uz'nuvola/48x48/actions/noatunloopsong.pngUT gUAQPQux WgTSY}//y $"U) H"`0 @!(*#0 ,#%QTdDRCeǽg:kݽgL֖ښƚh#E\:`P;U|$2xر'x(,*"("l_Ѧ/еgnK(T*_) 999'ImdM2Ie a\@W w} jXhVN\ S8MN !)3:Pwބ wqںjsj"b DVHE wv0vfE4Z6Ms7&鮮XoOkdNvd聄\x&"bl-U4kխG/b;ؒj8Yh\ D;aDžŌ&4E?vVgښB >wn4E?#g^m9vUfV KmB1{f$cf7iiel;4p jrn>;t-3)p8B!X6۾߱hhΒU;vD$vHcD)&=D+}gb=Ty;Da5i8 ͫoM" ~NuOMSYkj["ncclP UR#-86\dƙwxX]zFE44'WdiMLa17<6lF!΢ 7%c5|E. dH@Âu?] ţJPC}}d_ 媎[AIֈd#pMZREHȼ;$yYC_C Wyf{}@uB 8pp̲stcC$C[PĒJ!s"M9;l/?E1v.)ZY#{vr} ̗x:vmb.;(+)Q[oʫY367JI^$VN"[⭰ =6UK# gJ.t_v.> ~;P<4_܂_ 8t]#F 35Q\t_ bb-VF} k+51=E+xuc\WC^;&.Xi/~y8^Ǹ0\ FɢRbcՖZ=לST)tj{LVE]3bG4 y6)Q?OIoԧ"[+lLۆ9ts!sBԯM [Ӄt"<^/_Y|hQE-)s4tHOx8cX o -莻yYs m r{u%U8; &>1x־( ~c(qFnJp8 l%_bOjYY̒wCiػX@[o้@|pESm5MwYNꚚS965ӶL-KASH~An&W \A6e:!AU-y:K;:9;#rcc2O 7N(6+1xTe^cS?%N>hot\&P4bb2:_Vw8̭RKðu*lJ1յ+v6U  >=$o V$sfnM39Kۦ]&Zu {M{cZ&EiY0Q3&zS+.S>GapceV-e[AllSw><7ء!{'m߆㬞w8+𿵌<϶{zkS:BB׺j;׽8[ŏwc@Zۛ:6ʸIZ>KxpSřrD>u>=o]b(GJ_hkЮ;Z{}q= k ^YRZLۮGYeoe$q'-=mbAt!+ƅ0g6 ʐI$eœSO2^nyM>jA?Q`x.ѨCV4d!IE.󨋇0) /= 6l{SQŭ2Y4v7XϾX>g4jgfZryڡ**a(`-ꍝ (t)oe< 7b>53>kt}wn0e6+ e3}ҩ'K~>Kd߶e3[uv55n_hoI+$,p:ݕnģK ~Z}J*OOڛdv`5nUHs陙Lgu/I1p6#T{^a"OF$q+Q YPgW?*W%/jG2kWDf>Fy JNV@-ְPKmN1[| ' nuvola/48x48/actions/ok.pngUT fnASPQux uV{qu?\A[`'~9 E.Ty9!~oX|HLtY6NJdfrl&b37>] h޳ 0G}_w-OI;gy$Ԭ sGǣMeek[b[|r?dx]BcRR˹ ă} S ݌5Gj5;w<̤>>a \/ 6]\kp_1N}a-Sii#`|ۆQ @$^]( ޾ElhƧ! , z^{tmR5o$T~9xfw$8|4HT \I.M(< <#M56&@ofXr).Bڂ XN |B>pOL9 _!VS&L`UL=ܪ+ہ ]Śrw<'lp҇@rIȰC0*e&‚3$o\~g:Kwb@0RqP#LX+mʿН]5ʓbJ: HRF*M|[ ]}>F\6qD(ʕLFGY%$@7HkXn'qGfiǮRF$/=}&, S8g U:zT`főai6y?oRB0036-Ohk\ΕJ8JGx=C%H\Ut(y }BuۘW!h i-P?~EU(ʱ( ~!?'q%柜&Dw KZtfpZhų3NN(*U=Is6e{,K 5HC%>:0bdA\6T-%p㞆:M?nvfȞO*mh2ȷ|RRUkS=U7sUKDŽCR K3/t݈o$.R"`BpM=3^ah'Fǯ`*$Rf|k{m KJ*0qvt̍PYUhbEO44j ё#܂K"u/-1^=TxwO;`8ɶ y0ĹBmOb2@zY9D*2@x܇K`s WHޡof^qcO40%x8誛\Jyk5j7x[R/llfp*F8tPpF`~(ףި9g\j[ͪ ų%riN.)LRۗNijA? A{ϝ70QBŝ)_ T=bCP##!B|,Џp DT*tʾDmlP<9)FhgژTb0cC";߰ǀ\^<ByA3Xe1L!(G.88`#ToaQkT8?+VW-x_SzPFFӞWpïY@ZeI'!T}n% w aII@@q 0ܟb錤a-l3sه(9`DO4|X< ͂ ;} %jX8P -se;pT}T)"vvMc]nځ^;-xP@'kbz0k{ 4#Ep%/4Vv@n΢VQkҝ5~#/SԣZey*¨]F(_b&{ZA2mL^+fm72mCج~ߡ ^+:})1'5SZ}yNA},CbTTHsr/w]Ht&ӆTչHԢƹuN;0)9 ?rn@:L⭡"[g E/, 3yyxMܞQQ 6Weh@ٞ @G'Q("C?%a`GaL ?{%5_p 湤߰UTBe]i)"v\Te{V՜]%1mU|45`lQD9LHMW֋D1j_X:纈v!c4-kUuδ_4< fe'XrIרiQ"_3s|œʽq-j@tΞhh'!%]cPZNQX҅$%ʪaX2|-1)6 %%bw}s RG_Cա̆!x4[%`$:͘gۉH/f w$5?tܫMKI| Iom-T*lP`P;Q|=֊e%tc ̥^鲰6Ff޸/ی}m2BM#ͮ/-lzNS$wt.#2Sd7vE''9y< rϖ}\W@[YoKn188`>};Hl5OºgDgj= 'Gl[B hv.3 F&=԰0} )$N4 +k];[b+ Stm`IH!/y:o15V/C6b}#t7ۿE2\Α_tB1ӴO䫾1H T:"޻1M}~#6S O! \fmLe qm> "/N'ײ@Nٗn VY;}R+]jU\^Vc!o43MCO,j> 'g{Ud! ]!+~x3#b> N$1rCPxzjj(j)v0}6M 1t%JC`yT%oln}p;S6:{#'ʷ =Xvsh@ٽǕ+W}%Xlw$P?c?*/WZ*Aw?N7!FB;tV^9pZ \~to@z%kxn;pax(]֊+Œ8gө)e|| g4 `W}ګ|['/ޅ6Rz(mT룎~`g[~gI|"+/i̙rA+؃~2mO1:98M6h;N'$@^T|X&S/T~Vw7u.sތt) KU`Y#5sJPg͎~.ܸ^$,"uMFU*x]$[`kl\~fRuxOy[3pI7,/˘[D!1ulMmJDt;\ Ms=}wϒ&Xy!=ҵ)w?CLֹ6MLPFwJ#[pJC ٲ8  *-Sn_˽ƗPKt91 P nuvola/48x48/actions/pencil.pngUT gUASPQux UWi@,LX&(Օ($PqAԪX$AkWťJjye0 PEU E~{sYND$Zδ*dIS9hZbf>5>f'M{8)42iS}NC!*}읖.+b4Ëd]Cщܹ\87P,\6}Fy3/~{ C . 860I#Rt€S:++սq1>8@Ģ }fy?42(f\-$(E 63>f3&d7SE)^ '7":Pfx2tգV!wLPh_ gNb~!R~4HBݘ lB6-39?ED+5nNVG|_-?psB҂Lu ٸKH0%BPJF|gO͆~"VP݅]ڣ R WP]ȱ02aV|X+U6K:LSٳgu{.Jq>ag[H'?ocSP&pRټq*/zQ6 z{V:%x s]嫻+:Ӌ!#PV (VFnh9z?xyQNk8 ;pGѱq'$/f,{dzɆwm2>`nf 4k  n1OPZs 1t (/!ʾŸE,tvJ~ikEz/|[vod{0fJo 2m ])6N%1|eG:'pm7SM)/*EJAo, 6+&R KKy'brljxKPʒA,7pQТ۷])L+һ=9m&z;}Z!֋9.;ɜ[ zhMi =e:<{l{[,0֘N=z99=Uv [U/x4Y =w<D49F8,Ӟ̇p>eWY&UWi|I8h,"]},%*=05U*ba^?~ޗa_4@a<Ԋ‚̪PZ6x[+c9TZ<&SLl&C[1MRw]{;]UgXNϸ},5 g9ydL silA~;mٝKT:۔~O-!4),3\#pNߘÌH.ȬƉ.'y.So#?9. l9 EP6@QrSQj_;O4Lg IMow _3:.ɩ "imz#赁P6Cܕ0.jt2Mj+Y3:%u< JU){z<=?or$7rhӷF;o|P˕xnzuD QŸ[&\Px}ʋlu&vQE:ǖ9Rג+#$U+="_;v[aOaA|x Hzplz(Fh8bS2}c~DsB}kUK"j?.oxm?` )BCE(i1jKh?Rp܎fYnm\ 3;7sHN~4D|%XE'^F[AWeϣ}RG*nc˼}$ݥO1y!X U ͦ:(?QRA^!._h?"VWo{}FR0Bҋ)~ h~>>kf˲|sPɾ'_!HI>T;*vW-<URԅ*M]tI'eO B(0qFْ|.b'ަ_ɲi,G(VABYv},v`*-eޠRmo.pu`{q齡Eaf6-mL'ggB<އφlb~}"RMEy?rlu5X"bspxәl9x0X'cj?nNQ8msL̄Щ*&W`?Znn.`XNZ}8&7 =b˶axonl|ͺ,VO AL2ؚYZ0{)},6ُjhaq ,N/NeĜ+N: RV*  +7CчT"|zuhє!ܯ2W1mz_Tv\X֪YbnhH/ سf3z$!LVI9 7*+ Q]__rq߫NCnA`?@b#ncn@ȨA> [] T4n? r `&/g27dyjXc J]H/ښ-4&ݬ*ZBj<-ٵ,BTvMb=VRs*LTX +??f iF8U>`zSS8B7b&JHriY PN:] ~9RhFF~w& 銞Nb-wv{Flc0v|>vD?׮]uTf^ӏU ʕd]28 29**C[@9 =>!E7#;8=o}:Т"u_srZiiCA';(}\k0M/@/]Tw6]-C=m7;O"[z'pI.kә%Jx'- .9}ꅫ1y `ӭ[enYa44"vvR7 Ӂc6(Kw)s ?M޼ .RG_H\ XTh,uqRul69pIwhr@p<ZbޏK Ǵ{p Xy #LEc~(S[OGQԐ€׌܏WM~P:D;lʅ҆c<>ϥ PKkN1Ӊٿ%nuvola/48x48/actions/player_eject.pngUT anATPQux yTƻtBҐHQN`5*"D}*,HqQPP: ࠠF]>@A,}TSuέ~U▄S)GF㱈hdb^#1+#T,U.DR2vdJzY,y]2>#Ţ7R$Pv[ÑԈo?x3 FD)N>ָ H^KޱkjCMB+'nv{LTH;b8Hk8`\> O!0U5=H Z@*2}Gw3VlUƫ_U4_g;)'cE'7-H-֪LL֚Rtd\'/)='8o#w ^k:GG# *{ xԒ yNN~wU.0~Tƒ_DOHE0%CW#n|$@q2Ӑݸ)!]#rx^B(s&(?KTkx] rNjg"~aXEEw/Gn' C"m.K'r]X%)Oѐ7}ʮa@.Z. e8Ky<.lвSwͽM9D;+N8'SǷ:y,0~+2S*@/{uu,F9 ̎B PhP&Ytw49r2o4&ON.oك7#ƅ^؍~cS-2H'{E6h6D6NAf -ڴ 1/JB1l:Wr3Gx]FL I8$ sF%(=,[ 92ϛx_j).[lytOS#֙lO+imeD-[tN`O*͠)=kYe99B}OS*~!Mk<,ͦ5ON\\eŇֆߝrT;:!jbOѪUwM _2%Z̉ p_o%ߝSecN,Kw`t X>vq$Re>Shh24e)su[?%/ÔN{̣;-"T.jE/t/#χǿY;qfЮ]GSq׫WF}ڢ9+_ lෲc7o4-}+$zm;i[G`e>6)mdYO3\-\n'F֘Y*% 7)Ml#W)m=𳨋 8j T.mI1IlӘT`u[7M71Rx0aa& 'petRoT!>8|c!ɶV~~,0R<#8C%''::̛M2eDLzbjbӅ|'U<罈XRճ+c|QL?R.[r:Hۏț$jGBӉg³+@tQՙa[g3_5rfץn4ÞM_!USЗ@?^^ fW8ȱ~8ׇDEsĬ(+ :C~ @^XWEzg^VoǛX,edRTQ#6jlӥkƩn7T蔏7=ݡdvfuL[ .^V[Hp-vzH]l68`f2ٕ'- IVRB_6,=ʲIyp&)6"z 8]ZfˁRV^]˰Ss4A+Mo.#G=^R14f{aFi%l2_ckA?u|UD._ APKkN1K ' #nuvola/48x48/actions/player_end.pngUT anATPQux -V{<g3ϲIyV@m#4xHBz;؆TlC{MQrޢ_G(1tB2RNsq}~ZO&#@v߰W"?A'y3ܩ^ԯi[DGsP0AHo (Wl =v_5U̻^/{TQv$G'0ӌzCn!RIyj8!` 6 1% ⥸>7qcqH|s)3bm]3R6m5yk+ROv /  3YRQEJnM^<oWvn-)Q B^RGLō|hJHi+i鞰@5^7ekKKۨfn.6»YO'gv̧Ӥ4BMV(^F3+r+FҔRl!I u}TIr/׵ s„b2H_+m-;|qy1GZ*^JfXNs'%tWۅs) u:1`n d69V4}0R:i n`YUVjs|É<QRւZ9;] nTxD6a^aǨuM)Wxcx*%Ku lx#2.zTk0A ߜGe XZ:L/y!԰))gkQ4&k;7j KҀ? +^de;Y@F~r53ps5| 9[R<1 3Ik M rK~Yi,Y#~DG[h@W ^x@DsrbSr8o3pBqu,c=]7 sk%Vq7l"9ļy40_%Da=<(ѭ W%@E{X3ŞKA1F=.Bްi1>iKgG9H+d;ﴗi8cV*f?ȼQ0"WFUEn͢ɑN()=WזW[^2YD1JSvZ3og>;ǖn<{e$+EVvV;_ ^8 t0ׂSo&&\瞾t ;aEqZzoäh@K} ?yF34HPZ2ǝV>~0՚z'l^8?N0G'-$,!r톮TS C +r/wZ V)֒*7[кh(hb.k3B 1hObq 6Nj*,_uee&³e/V Ã/smNJdxkl9O0>lVPS/5 P}Q"TƟn;On-BtT6܆FΚGf:3)D[R|rbH?WMY(#c,@cIt{g ¿ K/}"8ߌ?i'𼽎k{;PMAI'fV GEwX<&/O_Ө'|1[%%dq.3khe[)^n^f\Zԡn,4=^(=9anph+?4S<޽[6 ,mv7<k{|Ht+ %TCh#8Bh 2)5fu[:?Lht5^w]3/e;X(B ԿW$рeS$lȏ \]k?-V!EL,AQmf$JZ_=-6vޛy6P7 ?4bF,4i-T=IBUͩ=y'< Tπѷ\|%}}7:V:||tQ9ImpLw%ZÇX* lw}*x4@Oܞ4"d ^kЌ@2kMA =zwWfa-Rg8pz8ŕg J֬'-$USB[}k{6iFC/: N\ I޼QhB58ϱK^=KSA 9ǫ^;+<2fLt\I+7tEJH[^荼7[5&>JVig 'jݸk LMc1̤Pot?>Dn-Y;pQsJڕPg#xW{*5jWrW1Cq<EkBEM[X?:]P;ϐ >?%*;OKo/: ꕌjphN}׭@@oA{] B$",(N¬5ah~}m;ϩ|@F{s^mEdž >\>N~BX&vkVgcQm;ѹ:9&BCO lra?D͚I}ycN),aUj# ZMK l?1I6(\ Gq 7TX >o7kD-*nU6SE 5<';KFEF߰OaWg. J`Y \Ҷ&]0YbOP3k,Y \\_ ^I;;0Ȟ)E-S 8y:Jo1FT2R  pC.+l9 FrۢRʖJJلV;A1: o9D^A`Qes^%,me?nڙ>]w(ӤMwGAB tNɝjH| =t7 p>̬;ݚ1ik2هqqcD Yj`3CאG rVK/ Td[޳7Jc jnQ360-^i0@ɛ E^ ]hҭ!L q4LdV] S:=z{X2f1*^.VggvY.$s*A2thr޾>fڢMM)Gs;-QFw].א>JAmR'r:rLV:R>]D.;]C]$P!E chadA3~Ǟu|cFpWLrqI PZf٘xY3mtĮx6J DO]+87=9"sZ3'Ad@sRx%9 mH4A@Lö*`쌃l{>@Ed9Ȓ7?7Ȓ;[q~6zu&ݪ\I:d|$k4Qp$Y]ڦ_>E:xTh>T~,/r {;n%"tD/zGF<actQ>SBk+工-B8`Yxk"d_xRޒ}jrR:^wI~w9FlFךhfK 5>_d}Yu䪺Q -Zw0̤C4!b>T5·);Q rQ2w3&u8d,A}y๣Ƹ]\2u[8;;]lp4}~d[z" f+ֈV6{_Vx;P?%L~ ͖bXx9g gʒwp":s8(KL|7dYcdCl63Z3R;x=%8{"䕍yjJ1Nj^Mw l& ]$9ĉ-]K^xaQ=fwҜk(i0 'Qe*V-+Kkn=ZЬieE_os^-љ 5yyPKkN1?A%nuvola/48x48/actions/player_pause.pngUT anAQPQux SSG$J.& *j0TCP(""C >Q{(N+՚X`[jU+jj;2* 5vgA edLF(MF DS(\+@^5nݥRc/3y[W%_&3kDCUP1q}VAkP/tf,ַYsKR,Yc#pkϬN8Mr-FNxinX rqC?Dݨ-'dsZVce҈,i|3bjI4z|I%Ib LrUS9I!.PHEa_>>\#}$YX+LQ0)/*Ս'ɃbSP^ߏ (c DvlD>$x'I?&kvKW.v (f ܣΘ HAt֔1qIIZZC ʰL7 Z6s⹖)0Z>ZOV DɺnHoDTsJwo>$!0ҤHzg9yqvC7FUwog s*s;uH *r2%[E` C9w9DAq-Vh$pZ54 Q])f,хq}k峩[NsoT /@L8K..[WH]+48 6*&ys{.~elj;t@4Z$⃭(حCa¢{Z@F00F∺::ǎO >` xED  Kk w^IC*ŝ}c]TH"2 I/1TrTiʷ=P Z9{G<;]]EY'_/f L3RqznH>g[tLSp>qS12]Kjn;WJ4XOLSmɞG_è͊@rB APp.; _m$r;D \NH(\K9tD(ןAV#&J.i tvn;]kѻIHyxGt7eőR Z"vENggVZ9FZV"ZC"#q DMStfHGN;Koz9>!W^RMDL$ c] 4W3 xLiq$ph[6aɽ1lZ kN"{PP?cҔ6qQ} jϓs%ʅ/:FB{qG\ 4l,btzAgAW-mX|ya0wiW~ǯShg>Fzֺ:6S2!qnXBPo!K<5j8XZ \^A_!Ra!S[Ēa6N*֡~Lr&nZV|#\rxEHp<_0.1Kbins{OW= T AoVFÜ.Ҥ+ B؃6uq2)wFg^r=eJ4~GI~uͽSmk/{;cnٕB_<>;Z(eۚ@OBWěO N/o ~ "]deĝvn vPZ0uۿt7m&re3[~T-诣a0V5{I"P@cȢMDHD<%VՉ⩤M':˞(5NJĥKe6}H .Ŧod+=!jA` {73Q.ҦJ4UƵ{Jw6ѭnVv@1j@Q1CugxK7}&n7c00yK.s 2u)ڦSKMh{9y{QQJ06,xI:/L?'~~A`:ވ{eܠzӇq퓺ga5vRll|K*-q+l=Mj~H@P5Kx=@*vuMk/{}/s> ']hXO2ydVs ӭ 2vR⒕9X/nOѱ%NhQD΃ZfJM8?xa-$IJVż0@$`SN0x@!ФqʴoQ[߇5dBd3MpBBp~Y ˿Jf)'8=ȎM~ݟ7wL`3+tEm/~>GNKޯ\G\~MYL. 8< hPulzTm&LqJ))3~$ dKwOJI%kX]|d,JR?Ȟ7C=5jFn"ϸmZʜS읒N7oݵI+ Ͳ5}Q1ަ'z^ٗt˼SK>y5JAU`S4kT.1cZZ2A{SNpjsֻ]# bP9*(mj{IRIYNmDCfm//.5iQ)y[,b=Rxr@ʦT#c8= (}kOwLh2e/c]P>_M%'O=W傾Rm -On"j `pAPpуPK.kN1땳 #nuvola/48x48/actions/player_rev.pngUT (bnAUPQux UW{=yؚ`p}z0[wImlӰNIJHNL?ɜtqI qܬ{ ȎeaDiretw.'lj$c\2GP\r WtΨٝ @Dxfr/φqh>H4/= ':=) *FX<"pΈܶ!şQ8@xD*9vW }'4i[)_S/d?n22KoVBxʸSҮ|G׾Fˏz4s~<mU3OcTP?.Am.&Z6^8 ܭI7G0>fٛ(l"*uiˉZ)UcY$֡ 'R]e#ϬB mHj$P-F0'|ʕ]+Vz/?I{:;GF?X6VI6:)5abQ>C4IEқUv iOG8kH$dب.+ ЈsE >vf*C6gsGJ̍(&7A87, w`K+;دq=ek,3'P:ޅCcVK3Lx:,aXT,wo0G!P,$N"|&]r`ӢT(fI~PgɎ@l14_{XWPmВ~ {ۅ.빣|֛ cDZ1c qI7(ϊ:~CS6F(}T{#yn08x7o8iJojƱ8/ȱ')%?zmI gjl%w9.xTI݉ޚ0%l&*V)_\匱t^&:Ɵ}ďVVq+i8䈈DD|b S.9)YEu`e@ai)c%3h\E%[IN]m&|5SWy}W-IFރΔ<LYdBk3\dŮp?Se5v/w8Ѽڝb=ZQdCO#*`9֏Unac#I'_.4jhjs+:4۵ g(9yӖ[}q4w6 8\&ϡIr {K]Fs>d`~IƵKŰh2y,5+P[Xb5߱v(Qgr/nNg6@˷7Н?/zrPp/@fH8Tek)nN<\)uyE }ڈwtvP#)-='GYxѻeݽ(zsvCu1jSs69Yy]1\׹;؉l$,~q"@VmOv& 'M2q˻?bGڙ[U[Wv|_ smScq_(*mee}2A'/8N޴P}?DCĝE$=bcnHي;:'ra[J];^PF@׾/>~<<[tBvÇҙ#54%خ!X`%FHHc"'3 ]PCBμ4*).c{ ?#@usJDB4%UHX 0Kyvg a[|R4#lm&$9#f"e#|>R'}#x#;ZPQLۙbFh/ug޿({|/HȠ7˜՚Ƨ'-;RGw}bMdVr{1=e;SH }?wxAl;x3袦][(^hjP`3Ӭ)'wal"̽՗y`/O|z>Ҡ=*%ruUi7ϡ7#hISPzeA1VIZkQvvip-VMɡCZ8w:Zӛ,fFq8ēSp*w&H6B4$2* ~bRikn鎽z5/8-ky4oV.x S-6l'za,{ZՂf.;zS1{Kqpp euؿCstzG7uC\KZVFL5>h;s B,tc8y|N{cV(d&G'nx]X@a(']vP[τY}5/;mPou+?x%/PKt91Fk/ S #nuvola/48x48/actions/player_rew.pngUT gUAUPQux UV{<}weKftT3vtui#$Ejbˆ"*RVl3kR ] 23g}9Z[k=ϻޕvx&ڮ.*KX]( [LRDv θ{}{F_ !殧B=BB.m\GJ%Y:BH/\bG9=D՜5ڮk<=٥.@s_v>Ѹ or{%cMHT-7-p iOU7'M5(M>D )N|9J)nԞN]kUU[:)k_VOr@#jX#bOFMU-Яљki01BB~4g.gꍀBOކ3 oG9ou p8u Or-w->2Ga3/rD+dCGPQ$R08ƂTF7R  (jBd%4(}hZy[_\mK*ѵ àԣ$WD >Oc:p$f *;c|?J%l ֟n?di vwp{P j<%+3ź PS/|>k|ZSeb(@i,FGWOO,]Q `Nj&7f.uw4׋-jM&%8'Wg&,qgPfSڝY7dP>A8s2<+ʼn m=t%S8+[y!^$RPGW,^TPJKrBMhQbm9.n+=+H+7c`c@Y:R1czU olΥ[t+d۶{g_~@ii&asZm mpƩBy wȄ=MX.?اhDD@oC qξMZՂ7S̑6^xc GaÌhb<;2mX=}YH2REY@?e#sR/3?Z;XqS%LDZ7^QTg %#)dlOL>fgW?ۈ^YZC9PG೥e~b C&I-))cJ#h98wO/!.º[ۄk{}LR.@*QW4sj.N3Xab-<\鬘ZJ[Ӧ5ٙG9)Y\[Im[lZ!`^ZhRlJՏ vTNNJ_#S9J4 [\ U| ,\rH@-96JC2$YD".J =Eab0j$fg(fU=ێZ"<13N)i\Pen4c!Jb\K8)i9TJb-n5Hܱ`jˏM報:Ϝ.WcV,C-XlL h ;XY2UR4,%ؚo Ԏr2w1p}_Zk+qLrd!qb,}9SZ/: Y1j`83^dr奧IpwoW@B~{xE7_ϳQġp3u9<]-SN0v4hPf|! N`FT3ʸV\ !s$s\4; +aT%~J (fx6aȕݯ(X&zztCpw)5^ S)&> vlޭ<DwiCJ?q F/}bib|ihh0ׁ0oO8;fRڣr|ߗ#mlC9##`(ч ƄhG_/ J"sn.́exTyD?a/Ń~#|N{'7 WqO(a1˜vʋYqGmRCݎֵpGcEb;J#"*iV>'A#woop޻Ⱦ.M;gQzHݝ}|qVcoPE񡌌tYpK:5O%jwm8o1ГUE@B +!dqj@rn}2{o&Ha`Ͼړ}}/v.]{c~llڤ9%+x""!`G񢩜؈舨h?`&EѯrT(P3D\J#bu$('-PA¬`Omai4Ob.nY8AFU6g&d$,ԃYmH<'&&:"].mJIR l2<,j)=@?+d4E낺A[a&Pq&#]攭Ņx0 庻T[q8$ht6oq&(ٞWIq:Ԣx]IE{ oOR 3e"ؑu|VeA,%2M)/ǀà Wf ѿ: ٷ_6QpK^OR72f|/n @ h f v# ĉ@#PTCmAt@r[SPXImf[עDy ׂ֠CK1q$60dgc"{Ov 0Kݪ|!"xNK m_מ*,o'o_c).>o".oI[uf<Y^V`1z N.uDLNnd\y?HwI&rj[|ȼOJfvI?L6'I=P*hϏ|h'3綂 A4UmɔSv`t `9cE E;;٥vB<$ɕƬ J< }dBˣs6ոƇ4YvMZ.AO>ް߿,9Z;ܼuDP .awIvI`7q>8Nb͉o믹X5|7.OakUP:*m8K+ 5MREhfL*13cz~KW-C-Mi}F7ӱz"hH**^q}'~4W\!kF; =RehniBqlWU\Pԡ*clN=HJׁ 7XUP`v,WjO4E̮bQ'Qu~<]\ODRF>!z\ i)ŕQeQGH\a%*Xq4M2(6KW>КmWS)^U_Dg*?Mtu3x""fkjt{Pkh 9u%dbⶨ>=h7?=UwIʏlW6!e!C%VLjIؽܷ:R+i/՟{+im*L|wKf3F7޵?}q, /;<;p h_3Ki9Ȱ-׃✎QpfO.빰ͷѠ`@Lv"n@Ң-W/]8`1玾Vk}.4$];CGg͏ ?FY*~}a :e֖{^շ&M5SO@W&"FqMvOm bd%6=õ'\ 4ྔիXpم)9@R4U\: ~\eWߘi~ѥjp'Tg*:a_J,LnCjC]Jv%KpAځb2UXm<)㮌l$?bTiFT$''VJcH T3*#D w*Ƞɰ-IR}@XyԋV cz O9lƄδ~qחʐ#ԙej>iP-a<.İ X=pyNG4AToW f& iK$oV b剎mnM~I齀kBb/tL/wB&D=`U-,+Ty*E|]=Jg/ OPI k3*n(x/:̓Y2zr%YY]Fo _FKeF`8t6yyq?lq׍{PK*kN1Ǣ$nuvola/48x48/actions/player_stop.pngUT  bnATPQux  sb``p  $Ù~)tG_G'Y^%%i%E )I A)'Smy8TJ6#Wl130x$Tw؞t&ݽϿ\^ÆM{gKw;?b)#r5O$pv$g 1͜q@|_ O'a34JS' 260$\3ǘNq-ze~+10q %Șh? ?>g>QfBCzz>=92NT3(4a'ّEv`VQ(LNT3lXΩ:aӐ]tv |y& W؝92 J^ ;RZ&gyxl'&%>0G0`RFϚ;⏔:Os'9PP0(3xsJhPKt91^nuvola/48x48/actions/power.pngUT gUAVPQux }WiXS>IN B A\;d r1(#Ibn eHAauD$ ;~zB0^Cw@y;VsT/p,l_S~95w0%zMQ5LjQdCֈai+__,666*-UMa'},PtyǯN#/P^vHPtnh_.A+Ѕj(ŔB) r&3C(;% XWaiAH@X)do%P{|}㠴E{^=`L~2;99,9)9}+ۋe Q-,-Ua&]\4xN {UOo#p/$<ܿ*O TfH^X_ 4 #ْd*W5659?ijrhmmNHλsȑW_Zs)#+.?$K|qM>xz{e fR n> , $)ŊkYqⶈ6ul\ܟ]o<{x^X/j&Ix`,}͂ 8u\;G0͢wՠhU-:!\72bY>\,]q"^kj(j ᧝LAdR# HtrX|zBȵm v} {G&& B78ϗkx3̞I=p3(x[sfrNm5u0K$ˇoSjϱl0k>7 Z,VEׯÏ衽[\X? թ9KQ.F|i?AXg|,w s>QaQG*U%ujtPtߋDʳ]߼tZ̨Ӱy.a 6n ]c%mh1D[ " 3sJ i2L[(1V i_kvw nC!*z##ܻ-xI3z8FP7Z6`Q$8E(*ѿ ?XWfD=A[ᱤB־!3N"$,|hPcI1'{`շ xq.QzSPn8q*Iltuf΀z|kpq+]MM[?ݽK le-w ˅|RW~.#{hfdP])8sK&uU+UɬSq5<STZgjQB+!1񯆲WsDژ[) >qxUKeCӌ3V+-F6IXɽ}`Ƙ!E}G},QC%9b<^A+ ÕRJ;d8vCm/'!$.X{MOkݏß93SDO;激 uo&^eGŝd8gBf 3x/F TWx۔N(؅E2kٲ?eU`_&|_m&%wm}iIy](arǖБ'&2uhO.RJ99/89J8x@bQHp>y0:.NwBC)Lmbv1AP86?EƜ'kE]k բ./P`]2;= _PEejd`VیКݔk]f6ҥ^>5R)"M;vS{>%j" c(]̀#<pIք! znxѸLC)7lkaX>\Bi7ܐsch7cA/ ɒWU'TlMuef'5v+ h?vC1 BBiy)|Z\'|R*/ KşWܜ;_KzfެwW >Avb) ߝqQ}4'ͥյg|nmK{~_x"Oză~U_t~&(:Z9y)|kyX_urpp^=2_^gK d\nEr4Lv5gV:$!]5󹀒>v%~,|>b98fȃl:vɛJJݽUiYkn*l! (E/AN6~2=+cR']JKœO7`ӳPj3vB Cݶ?"%sDyn_*_^Nk;^n2-2ٶws9+=~˃ JJpc'Q<GɆYH>fR췷'_[l$%y>AN)oy? PnG㵊g';rS>0(Xtr0%eY$R4ғ{Փ`y[2#j KǿjBBTO$ɑ@Ia&nw&wIz tʲAF:d{*īs_:uIώ,jl?%';J4ReM2a WڤQ tD]_ȷܩj+޴ٜ lw#P#>vd݈lwݛgcBK_kcد##F/k[ɉ aa] %ީ?;d•E;Ht W{v݉hr׿jգ/U(\QI[|i߈ܩ8=t=Fwj#5Np~)xV&(p ގ'ϭy|9i{A"V`Q֖-`K8`QvU(n+V^ 3Դ^(>TQ|!O5. f)-_ƨqXەW?=d;CbJfm>SAE-y#yۭJ2+J5m:saj/UYlGIWm珻k歓hh5B'y үE7 `=u\VV_+YIn Yu51!G.!uy@ѩLV.^2:3+roG-l=s9n?*v$INQTX}X@PK=N1: !nuvola/48x48/actions/previous.pngUT nATPQux MViXSf"x!Q&APOAR-\ (TF!!(B5UiKP\HDT>BdVB /ޏs>?:|gv1/d!FAaz =Z<7D]>F8>?3Ge|.|)qFЁDA P qQ:P~/py-mWo8-)UqĞ8[/ݤv*YzPdSV2?ԉJTcd4J 0p]gĮ7ܼBUG>V%x.j4ђb6A|?WufavE_oDGjhiiL`h;z>Pf 3CgɏXvNqo E[p/;cqM_hW0<"z8ֿy A蘥e*nÂ@kc7 8)47?vG4"TXg"KQUqY,W02-%dHǂ}AD2jTX?Wjw|Z~FץYL9%P[j9ټ䚩:FQ\Í89٘cf\c,_$pxq+";KAOKKpvyGJj ^6V&E$ITS0|TtӘrR$F{0=`_oRHgU_i4!m>ީ&4tÁ{TOeFީXUN.07 Hs9u3?m4d ̬leb^.Hs)?HQ{Ī%~"ހ|>Yhf \y0ՎʧiStD< &$ qSZ;k[jɗ7odK`i[vjI^ऍgmA0vThWpD#UF$-ȅ`K B;hnY 0sBs)_H%o3i1@D:Nd͋}}& W.½?EMIv&sK o8!!ȿLcTYg̅"Wb6څi12THK/U@_ǭ7SclwU`H+zJ#9Ksٟ1DLt: A~N&bX՞i5w62_0 "a+k _&P CO;N\qarV+Dӹ[:3z3bdmйՍ{= )s2@Td-U?2LK߁yCtQ]ʬ7g[-iyqSۉa7%Izr5ŭQzCAteReķNw+fG&e'F`VtૻiCQ/p=?k!?P9(2ΌGb[A%<9Wc{3:l%_mnMV@' g~I͛2fCm9To{GʇQ-K3d _{{q>>DĪ^<78B@\/Ǵl̶8(o8kRwI#Nśeaʞ9bۡbzkt%*·:^ok)k?㷓&|WD_ޣ9;#[y97 Gc΁ۤrFjU34Ca*(H[]3_完6Rba9)# Lr9[W"N社z/ՈOmr-Fgۘ9GU}4ž_[hԪ{DUaHEw۟c ?7S=Ngv%+/g5Jܝ%  K1> v\6v磶 ;B}VS: R 2A9CThT-ͽ!q9VGzm!qvK, KaF\dD٘|זӪƺQ$oͩ ܌QHǮ 8>'Q08,8Xɝsn&ޥn0,{j s?q],blF8eUnqju)KB߅MaBm)/PKt91_ %nuvola/48x48/actions/project_open.pngUT gUATPQux =VkTS>I L*'ʻjB(pLK*Pؖ <."TI@"VZmm9 Oh- C D$q1g֚|MJm ANdt*1W c#)aG=86|yAi ggʸIsd2ivY,%1]2IT X?()d˪n 6˷NqPmK/ ;svU:ncVRAߵqBwnV"' (l֍(v{x7T;^L8Nδ-/s^B6v{=Ke{&%,E2T35u3"=v?R7)լPZKC1VDڸ+$;czyeEi YCk ;荢nPL~wqUJS\ ;Y yٱ(NڙgQ+-Dwgяx~M1dwVkMAaVJ[MQPi8fsJ^ذBA~(;0,v J<ݠ͕ n wx77tޠD0c&_{,#u@arZ٥KiZtu`Q2B_̓?aO'36o:^*HwGW`Q-WݽANέ}‚ .)TOz^rܫ-prݢoX2 liL@7,Sh\cy;j_F{zy`Yz~~} {"SU6 S4>:VJtUq_C}e_cˬt4(-sd*rcUD㓨J>s"\:K鐻_5 *d^H|shv(ZnŻ (Se˟>Jү/HZ)'/&א^+#PEWBU~_W8uתZ,~[NȲF8_vXmY 8 s+0yg)_{67g4ȔT 4tdF~fvZ{I N3V{>?hɏ%7|$@0rY'n) =N+6;ˁ~|悃uOMު#1ly>] tbW:[Z634HMGڟVjŠa/ ֣cq4>12Wv"ν'mjWDmK&&iͫs@ćۏ-B7To;E&zOf` ˖'#3\ER-X_;Q<}ܿ;8Ϟmo=V}|IWmi%73kNucHˁ_,HmR?PKt91,2w nuvola/48x48/actions/queue.pngUT gUAQPQux iXSO'$A2%I"T4 M@%Xh` e!@E NRmPfV b*(( Hnz{{zw|OV{g@k,H.tzNMD?QgɒO I"Ký% N]68-B@"(.@L%yr)yW'~"J#ƭgr~gi]}Y7oO=`2M|\Y-A*;:6?l=ޯV9;aO(']\t⎖5ٲnvaD1c@/s<תZ@ؑeF3{G]2j[VR4Sy'Ǹ_z1!?@Ӂ9t<mf~z>MWl 4ʮ_WBZvxw,H"+#ݹvQ 8aAQYp0i2y0]sf6&#K4^^^!#oJ %[p}&S= *dJoӑ##srig)u} C|j,uϞ., .p%KPXqD1aN7 v.^ReO{*XNJKUk>!!y#5,C8ѯV]4RAh]1;ٰ[:  R؈] tǴr!QťN8ӹ˗I㿱Dxv'M]TW W{1Y[pD @cKLH#oWz#%?:ZQg$8xpdA+t( AV|׺,Q[YNioxxM FQ(4{*J M=㶌՝\+d:h-WjՎ5˟SM! `$m,iw&PkRnٴUC8Rd$:K5^'ziSQBEE[䋓DX K"x-E/8ySjYJwݬyKBX&dnU'qS&_){"^nPk+;.^{ &nxצqtѭGo4??^]l$/FNCɵM|Vdדw/Sa|7O-0NJMd8Wmb.6u;<LJ20)))\]4Jm4S@XQC'Ks #ES2ær8͈r 5"53U~d |&,vTJmIFA~%>7yﲷ}#IRjz\`7iz"K.a[7a/j݁Dơl2rOlr!EK aj޽T`i} "ǀ.3]Ey+lm¨QG1R*9N(2À)ﶷu;S(-g&&x:: .o5UC[;Vf.+jʨ_˕g48BB,~![*_XƝE1&I?;y8p?d`τZ)sމ5*T:ةX۬TKT~ECJWcvl>S&_oۊlH]usDk@q2`sL2[Qp p!ifI7ƳNk +6)޹%bf^HeʇhKZνDC/rWdY;2Z[K DfS`r"GiP) ~G|?PK t919zRnuvola/48x48/actions/quiz.pngUT gUARPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<iIDATxb?P8=@CD 12WcbP# T*Gf gr~D_w >ega6ZT_7r0 Hl$8,W̻Z."2Rj& Y~8_ ?P_$xOS@U&ASb@D{ſ|7 +Ph$¿쟿qa῁w o>~Xw A {;P/;b6(47 n % @acd6?nLna@,,Ҙ(83*~AbuQIų Na~$|/& b /?GȭbKo?1l^:G`qV6v.^~o_ղq0hۅ0XG72pʁ32%#r|@y/^2T2\>u,Đ2fx%îe3vog nSALXPDv 1$QLFAXB  R m N%p5_>e]6<@d{X^;wmh?CہzTo Q% pe?f82ڙA Vn]`i/* "MX.Da`U*'Ĉ)(s'Y@_̧a"/j; >0"ّn Fq ]sG[W1 10Ȩ2|d 0;XGQ QP+ }"MHpM;0@b`3 ~0OZ  Y}AmȁXP0CqO`8vVB@Dն~ëO\9ðw\Gcw.>9M. {T??~=Çox0r0D}@(V^^ !븦3h81NuD$#墉_.]xה@4. m`Yb EVdP5afTe#g 5 D#uDSE33| >3o  XhAVl_ ]LZ = X٪3O f;m@Q$ # 'FfE;UPkyU Ez YN2 e w@Q-8Е{ e \PyD*oY?ç8j~c_?c=_l b$xbdQ*/(&',@a+ yȜ`FÐlbeZ j46bh]a6w1J38G23|duA %@Qh3TZ l6e`def ̸_>U&51hȝ_ Dnc`cx~`l nAà (cf ˓ )&F k]Gfy1l t :AcHy_" =?6~.f Q'ٚfj@BȌ4d _Z}7Fi^,LJε2QK@ĺ 6Z*d{%) l5*?5Pn#P d`8wĸ R!7C qIENDB`PKkN1eX nuvola/48x48/actions/rebuild.pngUT anATPQux W{||{~sk"7,F(A93 z(*9c8~oјƙPj=9wI=4 )P0؁r4U c=O0'J?ӧg`%~CL6#RR>ib\{T_Ώ¿| 1X7ˈ0G\Z AA`"g?]S.GY]_H&7 !J7"))/Zz}YhM#;=oXy9ٰvx)LNw#r.-abMf"Fe_ŷ_אF@e|Ba bna,0_8D E7B$bJ]A)s4DQ,"zQX鋽D+l{zT8WY]n oO4+_ QS]gMy*דۍ=m01v}"u0õkuv\8蝮{G£7ՆC3 mj7YQf-)YgA5lb4P&Fg!Kh]_ ؋f) ! ht A>GIDDJ$R#"S_L~y耀1i~*zeBב djf۾WEa=b*ʀE}d'ylySDZqZ{@Xza$)#᭽ ډ~j?:՝]HJh%Dy@xG* ߷IPj3Z%M*<V򵨻{Հ1GQ,=& $Y3E!Y첬bç4jfo/@F6nT'xi\J_$T'w2Iwokz+#l/ NșSg&Tvp|m<<={w##m[ ;QJO Cb6=;x -P[3T"݀jwǕ}e%SU3` Wճv6#TϺlTLmVvpGACp=uk['S k߀rԔӃk8oэ)agGEP5{A9g&wRwevq*4;^T-ԦI;;b"6O}?q还e p! a?8ܧ|ܔUΓƋBtyO~-Nek@WNO1)Ab\`ޟ|^n<خJ )jw'?"3U߹0NlWʞ{7-l_Ѫڦ.egã=ef`ckTȬJ#AЮ Uƅq}۸݁dD} ɬ8h52HTo:5 -R+9/\x!Z/1 ~m |:@eŠ1x_0=cVM'S|SrrkmυLj}Q[j%L~B.3ymׄ? ZQ(+:ҋAy#xmJdBDorK[_se>tQV鸓'HO M>r;x^8x1j-v.kM1A0r,M͙[4C1yEtWY\Ϩp`LkMoaG`c )g'9YʜS6&SZ-{>Q>M d|N_3 owe= ?$ʖD@W*Yh}4^Z!uU,@&H^nA|VD|Du졎8D%퉰WwbM"zg,+_-[{Dˋ\j^틨FdEm~R_){EX5$s^@*<ߜg'pւadp_/<464 }LqvLy*Z˻NRq4ݼY-P<Cc D_"j4K6/ }Tp]r BY4\1RI'bj;7Yri})p辕JS.z`vxSݻA`<}퉨bU:UlD/s3h9O.ɻrg_cO{fJXoQf&6y#l"qڱoﱊ#^ԧF%eE#C"h)'Pj39xDV KJO/˥-+uOQRR1o7Gj͓κW\ppvo@Tsk~z)^ (.jKj"Xi5~ ڗR RHY٘^ZfؔSk5W9f6;¼:?}g<_zyzE"ߡEЫHP s;o0W"kR^V܏Qqc8=$*C:9 p 'cLp)xI BeYŮO 44_ bpp|bEk9x#he=s܅R=X0B<6kɚVkIdL$hWR&?I6҈.uL{/,mK1ewGZ(7\Y'\Wz8;d5qycd5ɘ!cݏ9C^15Z?Hh[bܐ{,FK]0O%!v;8IhUz陙& dm ? }656t|~ls e`ܰ.8K=$~gm考JBAMIG@QEm'֤Ev)Qxw0)4;1o'~@0u -475W~Ip?t R cL iɶ.`sD{ t={Íϫu ѡq ikGS4Dg# EsmSF*^7?7߈qƯБl73'^G/ae;#ɖlX#ɳ-]jc@#:DŽ,d֥{,^7olyzȈٮ EV<8+@ ſD;&,VFz[Хk8=W's=@쾲&XR+㼥`^_Fn}Dp X$EɊ upJN)wKةPDN槲`8})س`0'#H:BcB]4}Y"U{t2ua&nFI`/V*q9,Sw6nSz.S1c/ i|uA1&]m1TXQ-+ݜhj5P F6#WЊc7!,5oȵhS!*' ټO8 Bu)ϸoj ttUVZ#jaX\^5ͭ?$&Oώ˾2+1#6/fXSSZpldXEM}؃cGHX(aE#fykka񻪲5 $*x'=q-=h⊭X,]|rTS`($UAgXs!~ԝZvva;6ފQR"xW?Z kq6-ak!h9U2FLl"s:CWe\egHAJ@-ڳ^4}a-ond[˄v @U {xZ*ߪv52 Oɚ1U7"b-~A![b=s |Hx( PXth::<4}Q&&I`AohC3-glPa9bRe73jJKsEmvb0#4܌& uj@[J27̸1#}EJ I1P^(HU57c, ꚴdvý^Z?NtL։hűv9HYk4ǰͦS?Q78s1ܺs򍓢ȾsB]i 0D8[*pP,*9ӕ{╞[,*I3>=+2 [X wȅ D^6͹$?8iAqZ:;u#\7),V)ܡ4d.KhFH ّǝ;͊&i-M{妤8Wk)/ V;JѸ{5*7I@fb\-2+;ν uP6b$UٖM1 Tn}/\@_=i'&QQw/\߃h}n5;y^u)7 J"Fʩҟج;cQ$&D)Ӈr)tO[*:()#d};Aiz ; ~zfS kö'ˆ]g vlZ- 6&=N (#e o+ADO/C,GAfA|l"ϛt/Uܬ< Pt84ܛ`䖶.zRuԆ\7(7X6n:3% 'drF}wy&<0z>T0\%}IЕ7Ll~8f(:1}Hvo$44@`Jg^{yPKkN1[A;unuvola/48x48/actions/reload.pngUT PcnASPQux W 8geF'KYKx1X!/![ 1rKvX*YڬTH7<|||?EMe jnǃ؅QuMs]GO0OȠpfhȾ&+Dsݜp-( QؖT"H/eB%OT Dj< Vh&%}oтbqSG WKY;>;ME=2,sIХ2EW`8 @o^i4,/\q3@(qIN_'>zړ U~׏bn-ӕ$Hu5JHB^zt}q=HN!3HA%X}ɂ%0Acʶj򥆛I ,FV{^"&Dh3kjV1q @r/1-wPׂ\&~0oۀ<_W(\jS.']rpsH _N&XJgwJK5cu"c"!kgF=YQjJv#͐KݸHhlx~;΀7ᆯ HAK#A]5ZqTuj ‰;3H}bCTߏsni.u2ڡs IUx=ѯA" { =бޅ#$Y(ɷ"+յ"b:w4 H,OlnNd]IPC2A_mf(nс|n8lOEQ/0[=n̛\rup>d)$)JeיKs8ڒSv⦦&alba橩H'G6>' rP-erk 4J5)`~}Ёj3|A'^Զ$ӍYW2ϯի$GװX+*Kpř&8vca \8l h4Ev~u)8}N]uNT%ܶL NzOTQ.?=ѾJ߈lN<֨:ӈral[pꐩ(GhpXlQJz,Unւ(k&o+coݕǸns3StﺌּhS9]FohcJ]^hT X0aN.J᠎/`UbO|$6ܞ $'+3E Gl=FCOD&آFھgvyRj]͹@{8ej@D>sG.ۨ{| HZ2Y,- Ne%eFgæPM/4m*#Q*\p4_dO RE:H ,/h{[ q4Qئ {*S,b6$#O${4U#+^NH7f)/E*Sjr+/V<jl"=Us#kP; -`؜pҢz%NVrҹ ŸDCWg2*2g_1;_wR- x`j{^gCWl;]Rq[ ͏,R&O,t^MӀOtecZ[8VOd s\zuRWh< z2=7x)4_%Q<]}=DBW-W:@"N@Ҽu2]t;Gl ٝn*%4mL*H>i$sX 2~.-GFfcrdKk8%ji$1$c6+~>͛ on䊗=,=:F*~ 9V%IV5G ckWYw}_x?iD[ѐ´J9PdEckmAwzaA] `( pܠ͗bVT =dTøsS3)ؖ[.4I%khh7C Lԩ0 ?;]vE#dģoZUIvǸ=`dId3gFIںv*);d;(Ҁc?6<%Ѱ)+C D?HXmƻGA<ƐЎ+Nډr·XlҔcP5"*";P{E>Τsypm፺1zaw&9}/n0C~k.!;:F|אLjY>MgLB14X V* (vfLI?hq-SCm!4-ʹqnyi%FoRqBšnf ,m7|XN/M.Z$0 Rnjn[T$dZ On;ֻ:g֏%.c/S|ŝ9 2L廦TٺB<\v̍%`*ylt F8W u>yM~Qcb=6I8v#L7Pi>lOBNx70hU bedrEbЊΚcbX Rb>l<"xd!mށ9GInW ۴*g%m)<$ 7p7l>BϪh\ eܑ_;Ulb!> [:;<#zZ'%m}G8PKkN1PIY(nuvola/48x48/actions/reload_all_tabs.pngUT LcnAVPQux W 8bl_3-1saF1ōfԭPW]̌X"KITZn ɽ c7"d ~@:+J3ӓis3{5&xʊhR‚?y$Ivm" XG/~bSPLYֲ*0\預L9"U.=y}"]] <ˤ>H}'5NGV%B&>:5͸%6DMt9f_A) q2 u+D`yCk%:nY#]]OzXī2'=o+F Z '~5nχv%Gnuuo i55S_pES!̵m_U?R<%_fZ!tdvyBTVGʽ#&cQ0 Ir-Rr(u4Bi蓨TX%my|LF0Y 3X $$9#-u #̕zMqB7~.W2xDێCOsϢ.p4Y^_t$~&d%ΰ%I hy9J : I Ђj.?u?qQ؅G;cV` ͂%񱨔 B9|DlB-_VFF6"IK&c2U6V/'ZD5XXEv?\e[x0Ť@H#w60=!(IG|/'UlЬ>WYpZ)&vȲ:ӫuDy_4R@%S5]NAUlqqKϯ~-˪c[UOKX< Oi ĿYU["`};o+w*m} vE yفg㟄7+K9|i;KTFy4ٸ%J>2 z cA{uG B!T(\e#|V߹<;:Ҧjusi( FaҦ?|ɟURX *d1GxS̒Me0"uej[&p/»$mP!l}UIN;cU?5?m3;'YX_sAO Gj])^L@(o-n:qDJأ|d&.-|A&:վ 0"%}m$B*'ôcgsS(ڍ>QSN {܊Chy(V; 4ټxu04u,gW~^]mBh!,oN) [4y_| : fHB1 Dy>i}Ii^*IcYYckgsҎYi2jem{ԃD}_Y(knz3kN6xgX&SM10jLN(7wt=."ۘJZEMmoTԛ%%(,UFxvP'-mt!q}Ab q h[GWZkdG W|\,{[F ȒOM̵F] Uɾ 0æK9lMrmuQK8c=Sß3 ~4VS<}HAF4Fۊ]<LR8T e3nKE- n@fP)Iw:FS%oNQTa{Wnli&ӗZ P"_juQ(uUiJʃ$+*y)CSH@W_E.ن*ᣅ'`90_&lAI禡"&n`s5QSkd#&7+Q>N;.e+w)+.#NQ߭ TNlxU0裩J})b/)1N?~0]YڼLur#PRUMy~Ǽo%(0$A*Ty|ʚ,+M݈ ~Emi/dᏤWS165<+pҽ3p5JUhv(G3:Kf> Z_ d#sLӡ,N붺م]Ty'x,g[;_ .jn';;qA!zə:l]_CfJ;_M|eg2iQ tȄZzT&c%mr4q@{Rtn!(]0;ovtlJ& z*jsѸ9߬6mT sD(qHT WTc'K"_+]+^2e Y:0{T%$cu,Si$t$֮i_06!P\3fBta.y^,z~ ,ԁ]*pmxW̴˵!)1F_6aF*7% q$Fr'N=6qURHLldnY#OYL)s}C3܈-Ԙf"^XK WD?v7D"ֈNWw4c9 Tcyr"T6\f->8'uk~lDO1*8韨}6 l[m;J,VYD矢kaHBGM^7 KvUer|,x7(;݋U^utz\wC`rA.ekM)*.>f=GTduKsM)Ui9 i~6h@kJ3 m>f]BQ%ݺ$܋lysetw.Co3t5PKkN1 J?Z$nuvola/48x48/actions/reload_page.pngUT DcnASPQux V 8fs֜bKH;"da$9mVR$eo odcbc3ꍅR&a\s]u݇ܟE% X%`.s\b}@]ҨN M>AOH'"cl슡E>)M!O*tNrӔfkTJa)]qyt٨z BbA/in&d|5D/} ڴd ɘS:OU2+W[+tl>1Bk%„-E:y11}|2+g0 jD {D&KmcQ ;T lқP4PGN8zx bd4An>Ig'o, nڔj+@Swۤk`gHzW CYGV){ 㠇Y>r!  "J|;'p RHgc3&%o246 &AEi^ㄻ bbjWkvzs z6&dˑ~g/60v9a^eJN$kX9!/"E'#SZewd*''Ğ,{ ZV{evM,SmG8yxύ󜇇Z:ތP *]Ё[Y{c|Ci*hmlB2)!0#;cbkKWD8sLn:8{>1S.sj&t¶= ? !3#j ])HFMy%RZ#Q0P:a˞1ȵy8Rl:]>,,)U)TEtZ8֛LNvK=j wcGN'ұ_k۱ȟc3^%ݛy2Oofµ q_`*vb@" xteQ>6q`nIk?D \R?ض_/!wԏW.~mCHl3Jj. ֳv"yfJF)l_i-S}]aLŸ.DFi3i|ZΟ N40a-ߑ\@x3y6a[4yi*8ml#kgm=WN+?`1{Dm܆;LU"RW;2cۍNX W@Zfgj">|:~tE5;&FC'A Mfsűe(K2<9i~1ksӱ!\cXx%/on[K%.C6RΗūǹD~&:< |rm!HUR14/#B_-55$?`x ^$CFPߣei̇ }>{h1GU%i$8^m!( J\~ 4aI:FX, :ZՂP3*~Hyk=Z գec6"Saq~,vqĜwnbFGzhSÀl&מ jaǥe۞< -r}h4 "!#%7z 8o}Lpσ-g 6X}Pnq$nLdiog'>.Yh <**X0Hs&0 f=ƌg] 9hÚa9ŒXэ7GKfFXB{ՎI7ch.'xeks My™"[x[tf*\k9xc̬)ki 5oү/#vo"F 2TD 0=m~*'%=#:K^)S y9mzZ A-1$eyOF=l/bI^b9$#G. rqn"͙~W3Op^eOҨl 򂿤6KKpo>5 ǟcUÞsm;leuUrX 7d}*ZjMr7cPҩqcz8auSۛli6F0܀\Vb%ay ! v LH q8UyInPrS*CZI> "XRj^yb߹"=t."8o fBdjce0cr'Ϝ,7mrCŊ]{e-&)եNmQ +iXsPㄗ+}Xh#ǥnb.rfztk6Gh8v{QAG—AoeD+?`@t9M;ǎo =DV+J[AHD y϶mu쮄Dm*J9Czn$UYϕ!%kZKDQlM{Ni!Ãe7l#$TёrӼCf)Y%t|-io+}tͯsֶ^; !Oǁ9bCuABH!0kn}U.*AM%SB jpΊ qS@pMMKh`; ~'6}jd Ɔ<0ҕ߯C)*ț]/L@D*듳(ڣ{X!1EX`t⫻uE:A jqxSԧ4gXI vIN^ʍ$r ]IUxx+^ k,gT`+Բ $Τ[{Ǹ3T[eh [kx"_pȻ2Y]'wLmz÷*nX} F]]{ Ik^*#`,W RڢH`.{v/ūG?P-Te)R2KݤtWo=HA Dw ][vlzPKkN1 `mnuvola/48x48/actions/revert.pngUT anATPQux WiXS\H$ * P$@%*((! R)(NPrC%EAA?[{}ZTDfEK`%p1Ҿ."޸Bfvg+6yr?ϔM  yGbNLPAorgOφsPB(z9JftFD@_Uk5]!}-emv9Ht1t&.?6tt7}L1Nĉl0s9 2(*b{}v,6G u: Н5^/)qjXJ "dǮ_jU^>;>HPe;DAOy08728<=mb0 1BN o#1{g]o53_tB]hp\}h%mRF4ύ%Ql"RgT3Q;"nn攄9_ hƺN?Pضbߪ7iVo$kZnIH`c!M7W_[^n2"zƹo48j ]lZi[wȇK2.T-tK*J;msF8SQOi+!r#Rx/n`Cmjhd\_~~4;; JW݅K$ԝ]<_E[wtIwFEGFn9C߷rCi^;%Д,MNk<^a)MFI.dw>sp %l# i+b~L0>{ͺkL^ӂ-M(`qv%~G(rU4d*o/!a/Yu މjEoZ+\6=Ǯv8^%o)3^"'M0ۺל3I~iܤOU8dWrݘQ3(,=E=$B.$ ~yBĜˇZcMn{߿Ob( 2]fdhrtsZ#6LL+w]M)󼰡cկ:Y92`I | C#1"bO*+fp"- wR=ǁKn_OpV5fgFMkσK`-^gzeUŪtal޳| q_2Į(И~=Ko2(_zmeخ`~: **چ/4_ [z=~I *[,U%1 -3foj=@-S,q֑ y-!8qIbl/j(Y@x~c-ƍ^N/,CQnk2B'=oO}DFE1~o iO\a~$W )'z=JL"4#O]YG"v5srrM;Oqrٲ.MPq!ijp쓉uz|UE{rR[i H6,oOY\=D {XrɝmNXsy̜P54d~bۈ5)a!Iyt\)WJd3YW#h|mro_MvU(! >Tl`em)^VZBIP%2lе$@Ae`_#We<!lA<4 8>f۵Ȼ H-a`!>` -գ`b ?U q^MnhI݋3 9AM ;Z](1h)B4䔡 XԘ]A~[k% bM wnGDjxG!"2z {K:8!/]\jz0!5f%'Dp.4 Z:!JGs֨D;K /TIn;BϟS^$}e1RdWBkӘ/bXl.Sl^BG-󥖑)+CYAM΃Ƽʖh>V>ؗ /T n`6&r7S'Rӭf'n0OE\?^ЄUyOWE9s_RHXʍPn6i1!|.n↪ef#z ڭwg4&y_(!'$ԂZ$fvvY)^sP+L8Fo^])ۛ56ҬVr7.Jka7 G6x`ڙUD>_h²bR=Jhi0t9t1k(@08v0ѫwnݑ+5n"Ըz-(BKrDXjt_@XaKa@ɸ",]~ѿi1DOpsavhI+t{[Dc;չ ]vH\OtZc)^f;-g\{nlv$RQޟl#V(&F]&p/V*ԳGg^m N~3n :"6>\tn^7=0-wwO/|Q+4`eYG8^/ql[Ci?6~a*+iЁߪO$ߗva}o|JqjUc!hPD$-Ew%c2vkSI%:] 8N+NG@ ?`B{ZJڴM 0csǵ㡤VՔޗ1~mF?1鍎DtvVp عIg)5u1|q)czWB,E Fӄ`\G()B7UU4[&~q5~MawPKkN1a<1Y}nuvola/48x48/actions/roll.pngUT anASPQux WgXSY׽i "-(&Ab!*BF@B  ` F@6(AgtH( *%A" EJB8<瞽^{w֫ ݣqhNsq4̀3_ZƕocTGTfCy~ uN_T)M j<]=֬VSUEy^7Hx-k %ƋEfU^Vܽ h3]ФLrHZuFooi Sd1^ZV]]IoSv6ukl;߇$sΚ&=,ĆrZHHQX|Y:`MHD.e6ӰorsvlEf]s@hJ=8NdSSmm]evprveseV٥V̖nm_R R?[(x=<;wM7N>Zײags$deA,ҭ"}}u-NC>g*-g͈E#}/G8'V@0xW*bj'Vؘ -raBDbuM+V[yk.1O)#"hjp}4uM߷OգwnT\\l A$󼨠@I?'F:AO/4)n˗v Q23gfĉz`x!?uZvbS͵iJLv>tjĞ$/*jpT~Q-ӵcƢ`+㛅&fd 2:,̟@ry?5`Y݉n(qhb\G j+5ѯl:q5ްG3OV`f(j]0,Q& \Go_]^Mr٪L/يPԽ*CJAk:8ݚ&0b3yKQ^jP ޥѣٷ_aVmJ`5nC;.o.}I_=`uvtbE 5:K-^lYGs,ggcNQ/GpnG OS c6eOǺ9pT Æ%eŀCGgpu]Ia_}9Iܩ[1Iٹdf%j#i9'LF1fG8 *MVP#^#=JeKϨu+t7\9p;3Ssyb K;n#Լ, 3 *DͿvɮӧ>?OLY.g",f<;HeLx |24$Z>d[p`!Dm'+.+u%z˝'f8p *@/xWFCIa@=%i׃LZ11"ʮ~"s=hR  Bd߀1L /'@$ l<[*0-I5(%%j ݎ4lt<&vUB8h _wnxm351ā[]$d[ƒ^VLMe2b4.{$G:JkhPln8pxI+teIה.9; O)(!D {vy$߳G?]uk {)2#lX"wa򬼇-g$K!qyg8r;CN0]j}75D H=Ņq//"VCtJ?jնzЌ UX2e}_qc16O5ʷtt7XRHudXkԡYk3򐇰 zf=̯X",,ރBiЬ\QTvjj &;/.]VNƱ ĉ~gP@+ӴVܰbĬbmW?]aunv۷$vžmw8?w uX wd&\Q~Ḳ&l|M\ "sӂXCFGoX7 oJ*mܟ}$rn=aTQ# J9dVXw\R2#MCk]|"GO-L7+aI"=ziO D7 &އ RӦQM ~e=dPVk?G"ᄸ0J_&⋂t,qar5ACPByȜS76lؽ:na3 P}E) iӯaBȨop^ҤizWkFC{[{y"iϰNBQ4-/KuDy4#|'o^J hE:+=BZc&jD$EwAjV.sq{Q#*$UdCP=Jعw] {c Pғ.P>.Ӟt?gJHJ։|y!淠|QX~et\!IQ#YEU"ܝ ݁ۤqI% [Mէ,XĨ>ڿPS(˪5b*"ÉSKS3=-l^ᒅs0tݾ,?f-EY4֕x> |}7uuQ" k&CzlIAc*Fnz MV&c1 ݂,!e$fA IpU۽/m8 "LPnߐKOcKk\ بp:m]/??yf5뱺%8|MwW.Ybl~0<m0QrCΏNq߾W*,VÖT$+P^7N鼀?l3JS,x7؀tH`7;lbS Aj4zPӂVZd,>SIcp}:pVe5^K%z2P6W>N0ٗEo`iJ~92A9WiW4{UĿ#L–E]H? ;;eyS-ټcSm8PKkN1! @ #nuvola/48x48/actions/rotate_ccw.pngUT >cnASPQux ekTSWoH@CR$ T+y AآH[Q:yR`J"Rr! ${'۬pY{ka;~b ]HpK~<6D˽o:m Vp]+˛yls䱝c1G@`lD 9#KcbܖAȦ]IO%hˆNjqB. XH[yFjwQ@9F ψU5b$r44hb+1j$`b]#\Lfi~fұ)H /]D(fa=SI:; c$=h9+Wua"l}'M$ׇ+b1xWF[xu uW:^KZXg l!X#)o!f;R~&$Ui̒R&!I/%`_1La(:7bpCC^X4 }U!izfcgtgW5'%l͵lP(1anF2]ĉ~gP@+ӴVܰbĬbmW?]aunv۷$vžmw8?w uX wd&\Q~Ḳ&l|M\ "sӂXCFGoX7 oJ*mܟ}$rn=aTQ# J9dVXw\R2#MCk]|"GO-L7+aI"=ziO D7 &އ RӦQM ~e=dPVk?G"ᄸ0J_&⋂t,qar5ACPByȜS76lؽ:na3 P}E) iӯaBȨop^ҤizWkFC{[{y"iϰNBQ4-/KuDy4#|'o^J hE:+=BZc&jD$EwAjV.sq{Q#*$UdCP=Jعw] {c Pғ.P>.Ӟt?gJHJ։|y!淠|QX~et\!IQ#YEU"ܝ ݁ۤqI% [Mէ,XĨ>ڿPS(˪5b*"ÉSKS3=-l^ᒅs0tݾ,?f-EY4֕x> |}7uuQ" k&CzlIAc*Fnz MV&c1 ݂,!e$fA IpU۽/m8 "LPnߐKOcKk\ بp:m]/??yf5뱺%8|MwW.Ybl~0<m0QrCΏNq߾W*,VÖT$+P^7N鼀?l3JS,x7؀tH`7;lbS Aj4zPӂVZd,>SIcp}:pVe5^K%z2P6W>N0ٗEo`iJ~92A9WiW4{UĿ#L–E]H? ;;eyS-ټcSm8PKkN1:4 "nuvola/48x48/actions/rotate_cw.pngUT 0cnAQPQux eViXS CP yRADT T@0 3-ET@PB)$1MQ&Q*Y V%A@E-hńBɽMޏs>?9{ַWyB|Xg^KyHc^Hϸp^ʢyO/L*X+,ؙfn2iE7!`UM,|78+ B;N3 00.AHqW8)f队b&=nƘ!?r:M5_qG)?fKgcGщhI1KB]N)bBlf.ߒu7=/9Cs"Ľ+,G$矸m} {ʶ3Δ? 81Me/^3DbB7 x0ng^d.atժ_i5pgge5J|nZsd:s 7y%2%ά K !M,&Y"yQ)83]la5nh_ TvOcK1MEoRfJ/N,k x,pz됅xngo,7U0LJ0{M0lwN?_ԡ=H3c?/7S#0DO):dC-?C8ѸOxxCb5"d HJn-Ԡjzݫwʡʧ0Cqz&ܐpc2gi2^z]Oށ8!e?uWZ-V?%+2]I|}'/_Ҭ ҽU$ɷ_isK'.MD.76kAu9qp"H#a^ʋȐ6q <V|EH|$:<ђi9E]7vVu!>H;J)w.*2PH~/W__x9& ytP7/fh_,q8CEl~vHp<ΠOZ#߰74**u^ tfl[3ȣԊ蘔Jdx {)2N#ys!Z1E$8]ו֜%<')A-̵-&Si B(}D7HEh˅)Kq6ɱIN,`\RPhmheڬWr;4Kvl¡i=&zQ|-?5Rڌ-.8>.5 ; 1UrS6F&0F,a7KEC1̹'DAg(߷tK\s=e~U^N(bg1fnڌWA.ХE/@]7tCXbk^u^3 kCZ2wMC[p0\r*&Kzo3Qkm\RikF')qv==KI !;6Z;32XbYMB:Pbpʮ~lr?vIMlphPnV$;xTՑԼtQjIir"lW:a(w7/$雐X*#iD( c#NqI AԮKf7f'2L@T*C\PnuuƊ3+r6X7M"=#%Y?ڬ sBsW,'<ҏNc=IWOEĆf٢쇱R=`ہef2qBIĖ,كjF̤#e_YL="+UƱu)uBd7t:ެ|5.hLRFG;iG.RV׸)x,W(ܠc]_GE"Fq q ᲺaW}dlk4* ,CIfFG PKkN1GCC c nuvola/48x48/actions/run.pngUT anATPQux MW{4yy ֘I*#43FŬJ6BugARvLvq֚(T1\%d0ygy{?~w|{~}iJ~!Zp{fPKtbPhMK;!&95[ND B鉏[@>'H5<yyd݆C4)), 2!Ayj>D?B+cz7юXQ@ȑ*~љ LI׮2eh)'^E0L袰p(L:=dҾ=АHrRFx4EwSG2c y1._V, B:"S|Uva!'"&F'҉+?:\ƳwV 'CZCWf9+,d}ߵf:ݕ6eze8A[䮁vVEԯz?wP=Q4pyqKIo&%HЕ8.lVCč16>`}eh`/ߢ&cZ|s+O] b1gR[". uꮇzs= *770e_`fʧُd ƭVT:Feo>]r(CˆUU5l&Ŝ(?ɫ2D䢲,^WFu!)p⢾qa~#o{-<#`Lڴ`*suȜڊUwi[rS69c.|OyޙK(7}-qSt$jWxV+0UϗgOLl8>uh:a ?a?U!BpNOAӊAۇ PG22Vq\bL𴼓*lx)7R;AD_e_)zĝ?;k Ok[)Cŵ_we 1aW\Wgf/fQ@]è}W1F#!w}Tm M4 e~#vgJqjHM? Fo޽W Xv 4:~.K#'Y8wѵ(;vV9$\_"lJ. pZ.@ % 2x %}ږ" <&ōUåM1@AhLݹޅ s1_Iha引A]9qF B7ì\[Ty61%xU`Wޡޫ\D9 R6M}DDEU"KispN$&ŗ0#Scxg\"aͱ[͎i[nO+'Q +ȑ,gvS5\쨠RTSBXHy}'?r4h>\"0Ej(_"AJ7%{ԗPp嗄ߎl(eË9Cv4YifrC*zHo:5:ė.*5zň5`J(Bo^k?}X;E dM䟾WRfzSJ7n威i{JPI82d00< '>;"tm0tQeQ\|PKz]2$ﳤ+ 9U=~gX [ytƒ5tLKFaOv6S4o:dj΋UYX[(͵7ر;t:sy~w([?ǭrhdkzNg#Iw}@6 u^ώ<΍9uj@yY%v^B~VHVR7'Y+MRaitc,5lFNstO#I4+ˊi|!FOM( 8;)5>w܆yx(F-ٙ_kmW\xGTn= ۩*͢~6x^::@f%[g) g״Q7'}ixj ,_}#D >qjP\p,v7چ5%9h+IIzE0|^ePX0ȺZ4nLQ%/GmZILB`Qƥu+A' DdGO)ₜ"a+E&vNhVWS%ۋXZZ )`&B,.(S6hg/L8_N1q#XXQA [2sVJ]*s\C\%(oWOȄ X:N{9NO9c:fZ\+q^S#-^``N sPs X ^{@yH)bfmn=W)Ņ\W˺w>Z^~[PUj {E|u n8A: /ϊ@$˷֙h `[M8?PKkN1Mݦ(=!nuvola/48x48/actions/save_all.pngUT anARPQux iXixAC% 1+-3u,L,[iFpͲ,$2S[D|QsMlյ,e>Ηs\99x1&l_;Xލ6T,k Zףs|r氤Єd^b4JFsyQGۢ |Y;RDhaMS&@s3&PH ANMIodztBu-)dw=,#0 jn}?پҌ4M2ZnFO wD30<Q{ѐp%8J?ђH띘ηev ZGGhmEǤ@If`c'X2ex%MklBB9c,|u# .[۹F_fez#nZ8"`\1.2k )s_7n\&:Rc뚁I 3.h۩Ҋdk$ZD}~Jo]͉u\ĝLMcI1y7]}cMĖ#VE+Ʈ !nVUŀzittvTן87jUo0@(p.o(VF==,՞-wmٶ3j5eWCz,zoW$85tc>֣{&pm8Iy ..FIi"|c.!^!u7'lvӊ@n83!ĸ1UP /Cō  -% 9wc@Kە˥#vF-Kf6]b]g42wkm3=WkВitF<` &hNwVl f YEiॶЪw|LGR<K"Õ 2i׵WErH!ܭKWV_ *@l )A{{:J(*m&uњ +znRZqohL^۠^ 6OH̢J##d(VEWapnq`lA~_xl} WV[}m[p>V{]oyS*:*q rܲ RtҳƹDIVc5R>@@LN+x0rJjFTS_TSCɿqт- P||%ZjnMX&y5smVK c ;ggƂ;a$/秿񬄮]z9?. nŇbaF Yw2msӒ֭ bQSAq+ij_>\4YY|^P&|}`YIT# j ; Ҩ)6qFHkbÍcIqXBϢZ;$i!X7!P8. ܖ0!s\L\61qeTr xӖ=JR)ͬ z Q$BEe%LzA(/]BlB/A\nq.Fqh=y,,*EM`YfJQq$۱Od$e4o ZQ9"bzWywĈ7 ֎8xs̑Xj7'mw ¸?ܮ*JQ/~8@IY '/w"aB䘼@Ȕ)ˁn%KrBN}~Vr͡D^+dZ0N2[l{x.Vu~6fǓSFgG*?FmPs?@2+c 6J1 ܛ/x !&`;``89ŬKl-/,<{ʼnbr@{vI?e#VilY q[LW'H}B9Yd koӡL-L$ S5 ۊe!h! NAy*ݢetNb}iqh  M;08}p{m»tL+Wc.Oŏŭq")M_DL2po@Ke38! &IqNR}āhFXjJP?FCeCw/L.HU[Hov.\z̰>3 +QGD {FPi_}>[˳0:6ee5Rs+g`N5`EM矏cCҶEhI LPt:uq&M.C.2.E|a'+W % ^sMwfOQ򞜼b\ȩ57;~kP\yUlƍ2a3 yւykB!1pݠ0]_Yd kdDž7k!)TqR#8yʩE]ʆ)PaYF[s >/W=|9l3I^[9oE9Q/Sw<&u Oz0QQwRz8zkQtia:h(TM$=}č2vXW H6F 2;cNpK-&(WZg^9m3& w}#aa^6\g< \[Bk=Fֵwp%ѮZ0kCπ@hc 17F:<α_)wnQxi2bki^ nȒSGҡo װPK jN1*? ? "nuvola/48x48/actions/signature.pngUT anARPQux PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?P8=@C}tr9~&>6/޽){10NB`:80#uW_2ǭV߾\/``$.Ą4XX:-My}.Ï/7X?10`^υD ~2ـ<kdCc~20x9 ox8tްg @/Z&/Ne.'O9ӗ33 #Q'ï@&hg \f*00C dGO3 x'-B9PIZa֧ ?_g"{I: ?f(4sN!f [>`xv&DI&2 x=۝O]"*R P4zNi=Z`2CD$GSlZp 7 bylC0}yk1Q~I:t0 @R 2egbHd!,]ZŠprd 'K00zQ58@3嚧!% LAOÛz d-Z 쓈> jz?ҜmYo67 fxS1Ԭf?CqtؑoO;'v#@Pǰ%K:AA A~_UZUgdה`ج-J5<ư΁K*"f}}ìo/ss28x#2m5R9(3-VVr ``sg`,6&/pCK N ˦rxCXpG`Wؚ +_T ? 5XaiG 3 })`}u؎_ysf3<0V>YX"Қ s$ _eH+xGԎ <= T/H"d11y1(810y3<|h<0?1|{a׿:& IJ`| HMdNmf⑳a\OQMSdzưw }gF  #@B v`r`8u2îsAtg R<`*`adp']7Aa`~ÿ g=d0c Ӏj?DJ5e)0(27+ >aXч sqaSzV[7Q`&m+@zۀI_]^Sg%l ^z+T 1ВePe8%!RT@=_ިye8 w,w8h~VCO肙XX{aAښHr&a܄ 1#&"OU2Dfc~\7eR޽Dy9e=&y5h'øʥo7WjaG,Af uy%ˮ >O5%%`G&pCy:b䯴ah}Unä4Пɣm1ne L vg9{zmQF?YFk_ދ% V;R| *@@3D8y,k q[>E`HËz^gRfeoeu%ɯ1}m:_mI$R90`kΞ< Vѭ ! HlK9JL)_d) .**ZpRc$DOu ˣZLfJ7U-W t%8! OUe6ڰN,ď^|3o FHEL~9A*cyzF86[:Xfy`MX4t vy }8>Q2ܓFTc,RI[ӧB̈򸛏,z[W8/vOS.\rt f&@ ,0wnA&KqײS/%4Q[7^Cs+d]^bK>p|aot=)VtAݲZcK̪u8>9R:]@ ;FCn@.t=cu6o TZJwPyj#N_POݬ*zNN+cƪT&vZm£q'r處jgRR` 9M|Cq7V( Apqn/ǽ5gT c}ڻQk \_+K )PWZzT!.<Umo%٭khڽaׯ\wN娆4(N1ƣ6܉|u5)G4L{)4c )L.Uv݁hl?x}p ̠R%c.>; )+-Ȏ~Zr(pWhvFL:R?fH<ZV\KJ0Sr*ڈfi)5َ~? ]VO*nKZ/[)B#{@Z@\|ކy{5:tQ!< r}1Y5M@-w?9lZ!?פTjڛjjW<-v*m-{).HEImVz\QQć<sBRT;k in;4Y>F%NO ֒ԕ6`5cغ1|g֩GQz뜩LWt]WJ`;/K5J,ө)KHIؽ-piI;le-1i ? ut@qL%DL a49gڦO;33kM%(Ds͢ᖋTIJB.<طat52,-N]wp@FK2 o*Av:uIbڔF?)6Hcֹtr0Q'|e'# qW0|m\ySd> 3Ą/_iF(3l.=z5:F|ysL`Gv_l'5#9;'.+ `'f'Qĥ$E$%H ΰ`vdx 0R=_ XA@ATȣ5ԏhq.mz JXKj+QE&$*I u0WO%5ڨeuB-NMTz[&8v @ ή|>D9 $sz~au s5әǘ(6rbo_9=ʇ~=9!0 ࡣVܾ%_*!c=48S¢|N{V1l>1~Fq9[GCqs(**;яĐ_A+1 {^i4/)fAA K~)Otm|;xqK;4i))$6F[-Hә'yJ7$YVU^9s4yPԥƅe ~VO"GbF&8;BM3DcJ4ڋx uʱAo88c{t/mBl %6YhK&ރr->M ^ŊP?ޘQҜyQi%c+ v)/zx)95mPkJ>::ůqjǎt +NB6%coVJgbڍf-!-+#L3y;'rR/0IP%v\3rsM~z|w/ML<.*aJD"|?I\t"uohW 9}q )FP<@I_(ڤyD*$.K$|8(d " ]uZI #;M0t^q5'de퓹2Ka*?,wpQJ|g4'sG w>;%.'Ȝj? }a  QT "Kƽ4FPalk]N䳞w1u_T-l[<<$l-tȮMIFt^) 18.= 2QzB^?°x;o9 KS~ w'dq)jbyR$pW&!5LRxw`=H@Kb̈́[Sӓ}D' XmKm{ ,__e$jrO|p"A Թ%vSP]cK2^vw&|a~p@m բF1B5?thq{PhCߟt7͟d^H눸")4;%P?#lFf5`y=DVnK<^-bUm% anjBk8`0$W&Z#q@y0S"OY%t`s^Y$ίB9+kLؐ@r.Wej^ܬx+ \O*G)l .J_$fF}$-XZ@:3 **+y#Ϭ\A耄cG׿xXxCXozcS:7 X1 777$"`]+پH̓ jUr/? :Pl9愕<<^l9ŜJnpSArH%koR+'̪]Y "rqM%]%;*sV#v~\B,@⠕P$Igx1&2o $]U]J5Vu\S:łewӳSoe+J Uk+Ig I=y^3& f`TL?Aa*lqk!AgZ8mrp4*Ԇ*e Э31ywnp;OU8s(T\8NZ9q w=Bv꼧 A1Q8J؍ 7>?͒iI~5ʚ5~(^9%XJaqP rX c` r_լm:e?7K£D>-L'c0N9r6nq?1M&a^ ,Sx{ZL_: FPhs[s*緺3k6; ]iDơ2K-N{R𡁚oTMkX=+v+wh}3*_meP-j70iXwm !eYPuM 7zj`,L61P_GCcA\vV^_|R@!Y#|T@wi?oX;=:;|;sj橳p[uMr"rpIPX$XSijb}wZp׺#c{9c oOIҲ7k)~䄭&3|8a :'y>mhtRjf \bS] w`3k.hDnFcL?rE۠=Tp*_،Щwem/vs@PKkN1&v'anuvola/48x48/actions/stop.pngUT *cnAQPQux eWiXYjEs,P\ZFK4K4Ve&)-'-\ʴ2q-l1[F04Z45Kq*PsIL_s?}ι94o-MMoSIK#UBnw_2:ңG0 pṾA~A3 AdvO, !j߻B:-QbQ%Bd~LNܧQ*CrG4hhEI;3I>AʣU{FTOj:VAb־tŴ4-Ą 5CG RCJj ~E[KaߢʖGZwd9Du{|D|Dz&~i`+q˗ 翧[R2X6sDbC"C^ӣIk5']P(kژG0BMή m}㽼,PuD]Aa֘* ax@+5UMl ޡxSr,xH˂L9|6% NvOtQ0E۶~[Y? -=Ae9p=U}? 9x~aDD_$2Ydb$dZ(2 j4VL2Fnʾ-s@"jgQ%n㡱ES:P@[!+b0V V<$N RA66f ̏oK@)W8 لM0hˢ}! bu=sJTFM+&&4MXVP  X.YG{e)@5JJll\v]Z=:TIGEw5̸1]C/$+;\F/PXQzss-Ɠ*QH5~lQF%2bAkHY@9 bL73,i;RX)4x/ձۏ̃Rཛq~/XB3|8:֤^^ToʛfZw \Md03S1B\z2@"0 wC:-3<cј`V@W_cN“GX\Jղ/0 +e#eW-#?lΗJKno޷IRwX 4Dujs/J~y6;6'mSŜ,kNW9n49V*[PcYœ t+Y{ھ1Z{Y1=<Ð+7 H컃x#8x2v粐Ÿ=gt$"yZzbqqeo+!Km[~$&8, fl3<uw/ڈ CRʮsV^!vpEךcxNĕ-IqSS9v滷K^T|&mDq,šHۏ@nɹ5{=Cݴ"7u;2z"^kZV|Q{_TѼ({&j4r ~ rZmQF~F`GA=cO?宕"FDV혳Hgߊee%Mՙ ="F^ rimܝ&ΩU}g: 3뵫+lCs@h!f m\qW2B;jkD6rtޒ?@ ^wٝ.}>guCr2w͓R)#^щ=uMr0_/HtrhoKKsmԑդMWMKxe\"o}$:+(o}t5A10b\XDg {T5!wPkgLs.(kz8G FLFĐփzLbif3Λc'X,jði) Lh6U-ΣI qfaQL jpOcsQFU@ȾT is+Ӱ2iIy4 B[n`E%.tp/՗V&~"q-f]ϒN gQu75Ǩ:1Q8唹$Q*ӆۂ.Zсj8(#dC碍[G.>9b%@6 QϹs8_Z\+ ǁ`nN>)B XeŠ3bZ=sXgQG)<"$&DGu>Ty[ ǷYp[Che{jW76$,t{9Ym2{CB Wϐ1tN(MLظ))]I/?crKuz`G@[ J t v/R҇9 &[~ע[x6yS}C-w'~R_`AE<K\P{܌WygʉX/p({>XUኋ& yYva}w^"gP lع?*S~r0BCki[N ǻRHR^=*l=0#<0Rh)ܖ*x/-aͻa [8\PzUW %XxbVOm@~NA3&^g;摸4=shz53ׄpbSŽ|it#iEb=cګ9vyԤ'1TP{y2O+j0O/@U"xNM_A&mOW?nmtrs9RdVW֣U1i\-z hYin~$̐&lRĜdxoyV;FiQA|S٫҉:U{eKz_R,|Tet3+&S'zTF%y{d_ڃig1g=DIjc]R:e^IS37f=~pMZ)0M2?~(\T+%_m uR|zZ2W|Jlm#~:mOY\X|zfGbMMIi|M֖uu n :[@ȎBFG=rv'٥4t"""҉7Kpm-5(*G4r 6* c)CS̵k6͔88[o- =+ O06 ZYG3cCl1n#t~pzC=9_t&9e!rEesµ)O]]&R7e+Վj6܉ NM)?.Na yP~FEISУ奚--6KPXj7'Ǒ%^Š4FROgאYͩu;P69T|I*|E0ږP<,'2)dvxNp1gGvanO(͚2 &:qjFoPKjN1h 2 &nuvola/48x48/actions/tab_duplicate.pngUT anAUPQux Vy\SW~ K `YBB*ABB$ DnJQ V%,"\ӡ+* $@(R7R" &3{~sνwι_/v:kl"#͖e6AercpKͲ(|&ߚt|wN)7-GvX_z$GEp?0[CU&E5t`aO+xaJGܸҥZ)ٲ9#<_D -=Iq2u_ihA-8?pf7aӭMOת'emmڲ?{=[[t+)dQ? `'0:5w^͖FQD_,R9~ɧ%{Rh[) '!#JWuFFM&W s$i/ql^՞K:<43o/M⟗|v v<Bר5gkk5V ! e;GjԂNBH#{ի2ӵGN<Ѡa:'I@ "~DRm_t eW_&4v~kr$%%;B Rz^cuqjNqr6Kd}@v, sIԌ}%BeukGǮpw;'JO9XwDSK`eωa&\LR6tayӆ `)?Ew>JCēpUi^A(_ 4?.$.KĞH&^$EI C9/FjྗKnj]"(yѣєl:gՈ%E/W1/*kCsͣ?l{VQ=yf.n~_fY7CJk%4u7N)-O:^,J8iN f~"*SF~hR3J{X dVAIb~RlZ:<ԝ-4Gga<^3'>l fA1`;\Jq1q jklOaPKjN1A(ZJ R nuvola/48x48/actions/tab_new.pngUT anAUPQux Wy8OD%jqjm!˴QneJ;jrTk* ()teM)SAMw9sy{ح@UmFJG C bgxjmx{x !~fF2##"= 9C䐤LDA'eg@Q>^ +=>VtY\4D=@͛x[hᑏ=j_ :0@9q;YA֘O aaj@^v1\4d7-㥗 2*ۜDWB=וnC,HaЁXͽ4&V@rw EܽCC=iǻ0Nr{R 55^?r@WtdF20.kߎl6QAhF %Hfp?w '?]L˖'m exM:&Nf|,X_F"{OuAt_k;.ہt&܌Gl+KuX>ECP23=F,rT x(NE^pI_ 3ׄl..j׷5o:#SCBeM͆;kꮹニU>k[k uԁE{ƍԍCOWA=R2=T O$+H{NRIzm9-ƴ۰GlA6e',cR8w3A.ecZlI7sTV]&W8 "RFqWoX} '$dAh*Vaf0ア>x'}鎁"Ve1RXMΒh.JT2zS(-`%_8Y:0=DR o;@4;o+6֗Ó wzo;pz~8!hEJڹBB4[ʎty% Q{Be8:Du@9(+PN#;U9":MʍYB1Jh N'R㾿$Lh0W 8hUyasx(mr}?UI<ꢠg7k4 AH'8RuU ^ZiR#+)t>zDp@ gKNc?77 r~UDC^kF ՁO"Umm: 䦉(O8ɽ]֬ގ/BXY\=^kϵǂ{!?»/(Wq Ub#:Jmmo.>8RoÑRPŰtdoam{t; (^?#ۦ;ńԝ'r?a|(ljıOx38/2%K þp4hl nD !5M}u`qID5X%AVxd)tPc ӘL`Y䄯֗a5weWA+.kNPf٬\$_*U| hܚ"#Pt[T]< 5@`vgalJ. (?5?ďL BUEq>N<*E0V-`IR]6.  ŗMuD[5vM1gJa֕負.n;Qce?i9~#YL(1h@0%gvu$@U9>XB~m~̠4my11EU&DiP;|vI+ &g#zUi}ϭ.JS1e KU m},}8-j(z<RץC2⤷?l4{Vyecey>c9@r5c*:y= yE6{N)dGAݐUnBcɪS+Cgh8Sbl[6*C.Y`#?obZ]O .:4lho}%sL$t"ȍP y8k(?:-0pvйmbL0d_W]X'h=5G7ca~KlakpXwMQJ4R5i-c86cT*Roa?1tppsHΞ竬](]]\9+ 1?C8W6K3ҹ3{rqn uțZ\E!V"";îR$yMHjlA6Vm~; +mAflzCZe\5~P;y"(sd5kzU&Qv(9wjmAP,IWD KY8ؓ;6y8$/w(w[f{MqbZYߐ!ng`7]Q? 1uiNF.6xahZ\5oP)M~/ ċ?ASTܗ(QyYub@Լ@?7秏4pJ1x /*muWݥ/'i:K7rrNs dJ)X)_GfLfբ(V\9EY-}~55l?COrBd @DJ GqOXt~4w#p}eWy;F欮,-?p@K~߾OH"c%Fa@4)TN_7}{nݽ4-{$jѩS)ٜRi$0.N4I]({WtriYƷ΍5U]3Yꬤ`e{"-s2W&s GQJb1b ԥ;zZDj, S0e`.k;ڻ_>MϧZmTcC4T~!6z)'L wʊ"nz ;w"6,%M!L:qޙznzAO|)|[ܷ%I$ҋs$sVem^JMsrϼ5?&}? l4ѧlT.O<¥i]W1C=j)Tvgm̆ҵ|Fps&Ygwk~شcy9yR͏{6{i%acg–傒Zcv]`+[IpAGD~fߊ<5tKʨ!^@Lae;4- ߧNKrL) iW}{M 3uqZSY =_K@1><)W G[hUiy`ew#|X=x$]38.}lWrHi׀*d;ZyhZe-jp([3רksb"(\.H&irow %72?*," ,mX,T nH7}rp۟yPKjN1ZӶ #nuvola/48x48/actions/tab_remove.pngUT anARPQux eVy\Xϥ,H.hjƒjTR>pEL,ѬDmo STR+kewiss8ϻ<M` 3Xʏe1;3' ^F?u;&ˍ8Q1Dq1a1{9-1` ۖ&J E(@46RL<@w̨q4Z0*P/MwӶ=9~l*`7q)QgaSH.zHӿ rlW ˠS{0\_ɮbx)C^Y<5FF7Ϸq۶q[a ܕ:(emi|"/49"ι)Y>hU/aog[#ntuA9QMMQ|W5dbVU{fYR]wC=<| \)iv2-akr`\lR;OLçobl#񸝼O95mxϣ&)~."(u?1l1ANcpp{',Ο09L@]} J1{=3hwm/uiOPS>P(::J;vxUƍJT`@Q g4jݹMig8&J-FѼ(<\ ):&ё旼].|,cB`t[E) $e5kDєW ky9U)gKϊͶQId6NZp5D6=1G?:&t+Gu4,cR|q/TJOz31&V/((ˁ~g0/tN8rc=g'ؔڣ I {(uI)7#ȑ/_ns{chusHd'?[3W#g@w _6!;JmO '9DH<$^8w/W{`f$NTIkHaMGMh[+.Io7<K /">lfcUA2\ژ|5SFF;IcNmpnBxJ& Cml?Y:j*WfD!RE9ttM1ʼn-[PW^/>N3p2RF0(n@ blRM_OЍ;'xс&ˏg.Jz86=,/oz#wF(Fy:ӳڎYZ פMmY(/}\}`7yW:}O]emM NaخaY͑4ƅ =DձK~ӟB&JfQVaڬ,ǯD24 Cig[Ws(Ez?;+k۷%8k;4{԰gMuffKu! Z/Heg 7R"ٷ jʫ.(´s|l {SX`xs8==} i%ai]]\xo˚B?B;e4Ċ$OČso/Rd@׶qg$cP&o_h{kL\`*+kdeIoW>rdҋۓy`x˟_PKjN1" "nuvola/48x48/actions/thumbnail.pngUT anARPQux V{<rhCL 1&X?l4St:Jb\Ss()tt.'NjcBQ)tJ}EsH;bqB8éɝ*d2N=VCM` A/%,-D_(iFϐ:\ԣTj"AFRY#s866Cž轜Rπ0ruuN$P/ #IϭÅ߳ͬڔ-Q<F'7vkj*%:[zOYlIc#RUSW~C|wtĪ5+0@Bd+-uI4rHG I^ó@GVh3Sd[|XѬlGh[c{)etn鹏P:gEZFklw6Fg~͹՞ /`! H/B3QFp|0&Z$=Pk\!@&#ml~ܦH<\57jie={ebM >$SM˳}R;+^SNߔ/q7~xrMQ KMc}7a)$>kR']*g>}At|j5oZ_qC_VmJLhwܞ8QT w,WT\q>'xNL'?NF~b_T?cAU7+A:j*P-FH%kqz ٥:5MHc}·RWqT+AC,(ֵ! *d~u(ūGT("vȃ|Mй zW((.NV&7د?83A-d࿘L_Ng ZCө{FihZ9_[!EgL%p@&o- Rc$<-nB@zn֯*|C}c D$g9tҳT?]B fYA /บT͙Ƿ;kD&HK^Y s^IIP&bV݋*[qȰ2'!}(ߙK3Oj|"WAB yyRh;FSQO s 'lT3w(5wMuwLBrws-/lV6/b4-=¿ 1!! * 8{:[ut'-[Coo$0ܤr ?'|v[:ҜqQ5$#kȨ$[;`L <860I QrTP7;݉e]rD"غ}RiЕ*w<p{cOJF1GYu1AZ6z{M]h@ ՘k:)1J|Fdijޔ, :7yCl^yXQ慾+6b)Ω!A`OP2 !|0LJv,wdm\Ջ{R:֊slV-$XL&]^~R唜<9[dgp]= {P#gU->i3b^C-QeafeJs[%K ĚQCr{Ym;NFFEA<{MiӰ쥶YVd U*"\&>MߝO*M>7q^B }dǯ)__ֺ.j` w|`q,2M.+ L"8zfkgr{ K~G]SV7h:t"}-|pxBc音٦e8%ޚuKpܻC;wHd.A#W3d#~:r)G{+3Vrqk3Yo3-Z[hUW,vP4潯~~m,AR-$G+p53ػFKlezPt1a3FNm\ŐxyIٛ9A d WLJ*Xϼ021sIˬXUVvm{!;x7טO yᆔ ʔʳ,!/:e4HQBm-+C 1PKvkO1h6#nuvola/48x48/actions/toggle_log.pngUT 0oAPPQux UWgTSYMʅ*$J B0b3A!(#EH!Qp؂XP$ 8D &@ozzΏs׳1/G ; 'as;\ŜQ4Åyίǔ  _qݚ .a^u5!@+/b H8?w8!E%=‰]+Kg`EJ>6܁57VNF^uA.$3 d $%%%+ھkg?ny/6JuCI8sEK ȝDON~jD]%Ӊ]vzz0]7'*'т•[WGrnSilpڷߔkB̭V,oLe8l6w {pop/I*{XNu$^St)J;WuEz> 'X(;.Uj-TfrMb``b%lqHi177>л5pOHK !`#Z \-XkIt׊ i E8,L)XLLry'ߎNR/ö dDɍ)TآBZ#w1z%:mc*NeœVn2,ۧ}IĔ 9sWAm"`f&_DSDpfT%/dWxw!Kx w0`} &;Tjvb[Znv;ZKp!?.Ec1bfYK;8h0o %jF$%>xG [}n,rQ~[ϗ/f0vxF[EGTnrsf 0r6JD^} RGMoV$UUo6J=,^92):RUK^%t~L]8Oÿo˧]j68}Sg Ƒ.KaBq?aR ҅TX5gl1I;/Osy}ϥQ]xpgFbIqR^jI vŃsvWJ;V]iOITvE`9-)w.ȃG׃Y c/2l*?Jpj9:lUtoZ&r>l ^Z4!<"m:s]9~Ҝxau&s1>Ugg((ˠLϮĪ\@RR^. ,J#ʆon̬~diXфF*rNF7TY[ Kɒ6F'W7m RHϻܙ7_Kڐ\pbtDf= J W.lfL3bAepo_vj<48 TmlV4(z?0ǘ=pyN@XNL]fզ&Dzp)U>3{KC~0N}1d5nu2sUqxbCP78#XZgtn[AY;mqN惋9Bʐ3;gann|b1KL|ķ0PJt7sG_5AgB`tN0rkh݊Gz˅/'UrӐDDxymhoWB"T§#*LQKϘ6d¾Xi3ޭr mNYחXS"BQ vBD?OThX3;aOL!4.~_R)$H09rWrX奃}Q{k ~[:ƏзTyV=}ge쪭I_"%ac)I$9*w<|4J1kNU _⟵&$?n_6R *^$f5GjLPl<ժ7_60,C/4c]W c eۺ\}=&W0' ģXsXC<֓$7;&—6|"*St(lYN*WϘkD৥ uu`)1kT:;?ϫ#N G' y1ٶ܇je|kV|SDSm)]Y^խ`h$Ə7SDwݜppRԊ\ lo`9VΗM h΂lB?//~bn9lLvӞ緛tQ(,BfnPɼіBJ2d}[Wn^:qѺ5;vGT|j2'^{[4=s#ew³qAQjr!TuaH*UP`,#s۾C@}x*̍Y!=;,Ʒ#""rnRB? ]p24ٿ#bpԙ=?YʱML /|xߡԔs\W:=+/[kqQ*_cS"j,Oԝ8}< >va4d%63'-xX-zKbu2-"P\/bDM}0wM؜]i^pҿNLPWj!솵g6θCđ-JZa"vyoRT'~7 j[G~tVoǛ)PKkN1p nuvola/48x48/actions/top.pngUT &cnASPQux -V{XR?rҲC`5i ajS >S##St1&qi*omҜQV/4\Z~n.4de 턩cC5.Fy gF(ekBLJjh#*!"/<6:(:PT-.7+\3NT*g.s':x0z<7䁖0oE\oiK"A{u)BSYB]'KnV ;4ךM|rQW3X`zT7q9NPm;h{,,7-_.] jw-bp ;g5p,&N۬^z4x]S ]w~*E9GlD1o#/債F 6>HPMx5,"S +ƧI.wnd*,~Dv$[&i$N.Y5`bY22{tk.Kj$os9`2b62RENw^ʐ'QO?>}U8=&Rqb{tz,cЖb̂+BeVGQ~ssY_3z~_//nFHtP5L2.A:=M3uUMe|Thuf\WNrg|#D72tܳr/q rrKČm_xuꑊfS 3_OT^< SFϺ!C1>.t~1]Z>#:O>Z!N滖[/ve~SPg{G@! =,i+B3ӔzMSRFua\;>2"z~޷<^H3pK'%o׮I@*1Ӆm`*@V^_M9ɺCVIqGwh,A|GO+7OuĬKi<N\)RNЯ,Tq7'2*O$̏mH|j^dU Z~Nd9SZ"'HKhT;DnO3^q5}dΐ?EO0*/FdP}Z7i/@}rя 㤦xf[ 6Igsy$$ƅt(:HȠ=_V}dw)zAv0?(Yg.5%Q;xĴjg EF&)ʝcpo/p{ƓZ~DZKB(gwcJق_MN Y)P7a>N}׫:^ߪI_t ٢1YlJ`~~ri(oG,Y _Y g^6Txsr[8u2-!^*(ebZWe7[+[IJԣt|t7>(1^³Փ1ϑm.UV3FS\E|sÒ@kO@\MwJ*a2T$o Rk9FƬ KeUNgA_{luV ./zWA2=Cտ`RƂH.+L$MZd6ԇxq_57n >= W7[z-n b·hߒ4'EJ8dI}nS2ôq)*N_@MڬkWPgp΄e-QD`Ω?U2kqZ@ GJ¡L,T8ak2_%{e!`hZ^mGIj#on媫<}.ez楚I>gdJ1uZ n|ŒiM1(59Lhpowڗ  )PKt91Z$X ] nuvola/48x48/actions/undo.pngUT gUAUPQux V{@MNKX)6*! Xa=HHnDȕh}a{)U*&lee/NW92@6Z+E${5kv'I1\m^{bbALC#ˤder)>ڊϝ%ob8b0,Uu׹ $v\Ut'Υ!5RZ}Ux(7 "(6ki2[+oʌnp0tr͎y:>s0D5PdžV#ϐ&tf]ĺ,6vQ:yFӚvwEǻw)f ;-q(/$c㟦J|糣#K߸ ?fjF!XZoZF]Lw vB ,0Sm"&oN =)]é(Yv~lyV鼲Yddz) 9eY槣uN8h#p.H]ᠰFQ".kXڼi7(;{IE 1Yb2聄bee4G6ؘ`jy1iDZ&Mp7igJ8&._[hV1V9lOڅSe0¡b0纓0^Hݳ0&UNK4{w\qCvoO{ϾL?LnI47ԓz%bXXd{gr-I_y XX7+F<r\Ud/ wwCx_ gAa#>#{:3(Ňs:1x^ Tel/f\$Z;/K\JIpASg[x3Ag 8XL ΋ o%Dt?,I (\[EߜU-R9t̺S^=; p!s54Nf{SzS𒁚D~!ʢ.b](9A0n2!98__ncQ}I?}%k݋kUذ9MaGˠ :Tէ5455w4GGTjkjbq/U{`A@گ>##*+K;8,Xx6eR*{{d$&C٪  OzM"PVOTa~̄R1^5z]5{/|!Tjc<pinv ]T@)/mܾL*{L2 >`u*8Ys*DN3S oܨtfšၦ3))~[SObPpcZb;~޺4m LqٍqZF6ɴ43iA5K.:DźdňJKٵ$&?z%TJOLq}B_ۮ0 zA eۆ<9Ly8}4<=:?NB=\Awyp8Tjr1U/gϡ,.LT1GTM5JU**Ti{8|9SJZ( j_(xn [M8* 9Ox;~d Eݶ7Yz8a1UM̉qP;i+jȖьb/hRjW;sj0""i`F۶l^tϒ  ;w5dL A3&\")1@&jym]h1Eun{d?h'jAPzF62=hVɝ:JԶ[rI-`>t2Iy,'7X7$`q2+AB?HO[.D 4kɶ n־٦!‹HN HD E-?@WtWr+&;D̻e FC=Rl!5y3=雯%mzӟ7wc} 31_m+/r4]="Q2k.@2jjF˨f+6k?# 0yÃv.cS8qWr}\_zl8ʛ}$)OL@y&.w0 b(=W!= c><W!BHxt"ȒuM3RLFB$0oxѓ+R 'ZBc95SrK<`B3L4UY)UX"iK"ĥnY a~^r|Ql=r\i*rF{vbKq4,2=kceOwBčئ)AW <Ά١|1 mWECϗuМ !qǤC mC9wg#mu۷> z :"A?oxPUiI\1K!uCY8|]rðurPX+NG?+:Ŗ&ySz߉Dzg&q.9qUr-9s M|6Ya7eW*=K#/ 3u#:kb<~xeﵤq^nTX.Ș3YLAT7@r/igTgmíDGzvb{Z_zB*cBF}e8QNbA4X84e,VQ/8!9k/ ~T!TU .^ZF Čs[!(:YBC9Uψ-^7[|x7x^^,=f8Ž׺xf SdbDLmfamk5%vtb2wvDUzͮ#mϥ4 {)us>\9lJ.4-Y+ 7tZ-NMx͟0Z8'0IF|:FFX&\Yʏ(Xl?''a%J#  ʼOλ?cJ3o-I V}m*cQd7J53 $;i;kjUK.HWo#NbB{K;[mL 4S6')QONܝvl hmd q ݵ̴̓>0.juϦ'O$~([},hykGd7|wEW3AO)"_+ l}mn&j뗩Tċ< }3:ٵ $MT)f\uKC?j:7YgmZ-'lx<7Zާg4q$mw*RSͦ2&f5?PKkN1l_G $nuvola/48x48/actions/view_bottom.pngUT cnATPQux }8ǿ؆/Sw$"m&r<=)bXII*:!%*g:Z)cBvt [\u}}sA& V\uHqf7uOx|VJ@=GܙJ cŦx.FKI;Z4 ZZ-/@7hHJ/*,|Yx%*lӈo)QDN~l]PĬ ̸}yp_"g,Ҭ^/;V򱕒ҩX|y#z:zV4{[!ܟ^;IS&Û}{j+b߭ґ'WQeѿ{u+& -L9;qvfE2@`V8j]<%J"g/w`f~v'4M> )ns=3y %P1b8&m4'~.vy֐k Fp׉,ŖFz>_(?{W*r̒>02?`}hwy[;o*`(Ή20K؝R&hV2D ;R-F5⡿,Ypyiٜjy :m4\N -(ߘh?hDp,wMGLl>"eZ9wJ.[]V!*8/uJs.P{#WVQFNB>8LUߦW)ipGšM.MFX1` iEFQXIwUtӮXYӍ&Ex/32G>隩-Kb.s?4> I)({eeT7J MEIn*B brzBL^/\d|V!{=8hV-~u|fYq ,zo5I{m$ML؈,z%6Ftc!kNyd iV~x jwbɏ/;>umͻڣaX*m6A^PM)[ Q⒳ҫ:5E6fR!XHP/6h A/W9k"z4 %Y )0Bz9c[o k>7@$+{Й|@cNK\FBDÑbUNulPxQI?\V?dxfې\x-1³٢#C!';Z[FVN3&J+R( }0΂ߺ/ڈi4"WR$p*FxǸ~F at_T#ɓ}PX6ȣ!:CM7}-MàE5rx*:BH64b'YqF!lM7@ xtQ"n1oˈ4OwADn cH,]5"MoO *YneS5*@5TZ:ev+/>|PΤ(P/Q0&cY+߁co]U0vDdLXn wrTqǵ ذkTcѓµQo(г=N4LvvN:9 M~-pɣGoI^1؂\IW+yyo8uZ#>l%ttTgҚkq@PJl{U{gy,(yR j"GЏ $v3+u$hm"\l99Ol8qluqΰ}P 7S^ e^ [^E*@s>>ae0!XZ2yCM] a3gG'L9ݍtInkCFx^xb/Wg,k0M+܃Q&8Y1ȵ+sBωD{>$w *r0nPNPYkb;YdLB}͚ۙmȱ4]4dct;y8OZڗۆ'.̺/yBs ,;;]Ac2\͋8?w[dm" >Kw9W8>{ʹ.IhJf0b,ʧݚF{]Sf^NcpΙHzaSIEJ?okk8 ^5@N$+^#tڡ$6e6F6| o]ȏQ!loڴ*'L-ͫt2:U~zmx23#-bNȅL/{|$+͔xCۣr0&ʃ@w )4xsKIvp&8z2Ksw;{$QvpS bVF^IM)CaDqAu-¦oCiPX# БFTl}/ qЇvy$aS?f_o]*b=srknm'ߘR@_ #|/';WTH߆G{,UPkoCOwslQc`QWCgI* z 6˧9ҙOhˆ<sKbPq'ݟd+ s6v~i{d6d#]9KY%es k<+Ja}m|o j9ŅQFJ3@ oh Vy76%gE_cRk\ٚ$M7{4 RD!>{0ٛx2;Bq66s\K/Pc4ιըO/A7_FjW07}^B D]2FrUtC((],S-#8zڽ'yh4zp65N/R.yi:lw68w 3l k ,si8@-bøo7ɀ܃|f!e"J\w\hIr|4L r`n+\-XؕR ?2p`}WIIfMsPe'!ouHxPi4]ꗶȂŎ_ڽ j5+ˁ4Jv[0a$G5HXv>@H_YNG9AՏHl;/vJ{{u r:ח'_!*%u53ߊ9HO@=-sU-٠Jhg7U=G,LfN;=q1>S5 =(?m*Fs<ө rww暼ÙèZR"}jEݕ\ZMSTMi4(N:LZ{H:蕐P2eA+9j!uf/,0(o(ax[#b<AUJ'oj#6G1PFxYA岱{aC=ʂlv'ԓ_+Rc=R3 S:>CAY6: Ïu}R<85>:Lu7y՝I{>kpG74PfH.lWXWXQ#'x%iO1<Xwq):uy܌c^u5FXssߚ9 TQф%tB8u! shtKtӇvEpzzScbfËs:pǚV @hC]"73˖ Msi-"-+,9 lZ~åNJIGRJjVA[ogÈIwˎO U]pK>oݥ0PÄU5on C~nDȜ8{SE:?*IpoˁXå6e2!nQР Ril-&.0#VXO]StIfd[FPU~AÔZ"(JL*3ÁJ isY[ۍ|0 us(J񛃱j6 __oO\4jyVmWIY657N'n:Ucsr R vʒέu:{كn1-k: C&W3e `X\\qPc?||c=Yhu{z:i52Gv}ֱڔ.k{%:bGu㽪7:Ijd)X&6.1QW/cmǽylebwDw-f.(뾭7Ot) K9F /snQCr gzKLN}9vJj|iso_v2p.*=5Zv3!!,)#H-ʝt yt/B#u n?PKkN1C &nuvola/48x48/actions/view_detailed.pngUT cnASPQux MVk\gGC EqY P@Yٛm (^[sVf#ôRWkZ:Q,M֚ojղT90)M<ܳں&elؖ.8 /xb -j(E+% v^'b#p1Xյf( pßTB^ 4~}]:^Gy AN U9n*P0Ft,?*2l>"P?F޼Q[=G (FzE`&=r L ,MQ}gƨ GL+S_GiSߩːZK`[z;`Ufd Up~.z~K'sۊD"0{oCqE3Po4 t}X]V59d@hs23τ~c??|{|_綥zew\S⋪.ǟ5P7-&@H$QD$\TBcsW7Ch'z]EKj AξJ[/MB E+id_Xa4#bv*. su 4嗹]+1/EYGO{xy4WHdcy RIG= pEښڌ%|7I .ݴCJfG Xٌ8YNeǥ@A{1ŋdcH$LT>C`yZI{ֵ#z/\jN62of*hJ_ٽ=^DqN'Q&bN(@sfߡA mr6[[ (n/$1}eh4`ZZھURy&ϓ)=vOlX9 pAMAYad#Vuh ^i)xzQC7_ Vpd"u}׮ ֮)w*Rk$ݽcpbZͪR5bns*R X72%qehfۏX_\1e>-l 'u3hm;LJw 'i$>JDM@Co3# j[`i S72iṰ=jz#'#Kuǡ3R' +=B|rkfU6b,wKˑ$]}xz&R0}x|0pSwwv%!cuxU;13UӞ ;hR&>DGV]{3"ru>[IL`_fDUI) 3=^e-*[;rU4( /Q{7(vvrQq2q0cX86YNXӼr_T.)Uή?lQ?A'q.:XI7+]K"5!yK0QUo%K~OV}%ь"iq.e'ԖzvT\[ )',c>KTYX N,]b̻8;Oz7"Ӹ9zx;D9f֫aMp(ФKdNR~S[ #A1`2Ixi>@7ы+]oEz.=46?1nx vvmB;8WLLSkSx{gjP,lTlnDbl/5F[vW0k =<"r%ImTj9{| pӆE#&YOU۪LU- V&=H";-;V0G _*Oj98`NZC0fX@/,tzBj:g6jG{eEO\O8=,nk'YN ]Vu=l_r3\)"$+T$'!f眞e!UdC{,GPXv7/漹)g DŨj W5K#f4,p@9=KEm!nX%K* 4쾛ucƗ$8G?9G [ ZtQJQjڌ/bPtʂk#7j׆^bE0x _cH_zE" @!GP .`b{srXPf%6l&PKkN1f5 (nuvola/48x48/actions/view_fullscreen.pngUT cnAUPQux M{\RGģ`B>4) %SqzF@̔XN`X36=Ʋ^!4_VNYc*jZp.s?k^k8,aQFK[ZXиi2'1Lb 4x&lI>Om;M$&D%pxiZdJ}]D*P~!pK@1d<͛N[,W(wt*>@:A:ew=r`=v W i\O@N*<*7x/̒ٞF/3ݑ v1Y@lħ';O&~`a0n![zR}}%[AdjVk*>e~P|- Ix4n;@X6-Hrs&YI~ oQ6}̤($#kYnaJ[W\enڣj Jpw'Rr홫4dP<%%3myrݘlBqyD_5LNLnC5-OX;ddțRͽU'mӵ\O$=iF5~N0KLn_ n;3uHM&3t>(jzF2\.c6.ygP p wHj)+fě<.e5tӷXhB@ߴl)UӀ/o h_h-A"ӗ\sK0XDH;HF̉/ xsݿ` (f kKI/'Zʈ.*.{ -@ Mg.rߑ;˳!6v$RYj_ ¹Xap>:}ۢKC'7{]]֑6U< DݍA?Mz~ipLdic2„d03dr>N,Xfv}p C;h?hcރYiKrLΩvjp8޻ yDL:Aa=×5 ƄУZz\Z »8Vu_]M%&f|Td@.',HHBv:GlXMxlTbxgD@""yt0z˾zL H%;Ŋʑ++13[P!\k+wK jf^%p7{=ۍu"eiV˕}Ё@/c1qOg]0z) xzz{Hu92Bhֶ6;#-~%_^*,Sr E7 Ƨu3Rt#GL[L_Խ?Wqľ&txI^TD.$9T6Yo&o^!\]jMguY.i^re?ߧȖ:)D[Y'HdXPestW[׈Wx{\QXG]k@7G[j~|PiZ . 'J[Yz2PMB+J4T=. ,3:%{4Evت&ٝͿ> `$KTM5'N;q? zoZwzre%*~cQnAP*~klξsՑ  c{H鋐p4 ;9V_-A%VmϢtSPDu3|QFguB:qܙtQ d0-JQ^|cWˁWtis]SOa/։ RϿT+'7 T wò  PKkN1 G3 Q "nuvola/48x48/actions/view_icon.pngUT cnAQPQux MWi@S׶>H"9'$EX IDD*WB< VH@@@A bWd mÊ2 T d8/_k?kowQh^$}mp[JA`|/=Ff gJnniSؓ8ZG'ąEfyq2'&n_3:V[vMzFSzT%}ZVSwYH4O-/O!ϓZNݪA7uslH Jd?=?MV:78v"4\S+Z0VC TqݟJ9fjWE{SU/m͕yɐv ye$y?_ ʛBj?ڣ%|W "QYGR,XI2N)J;z:scKXKhs$(wpg7Q gD74!w|Mw9?tiXI?w-ZXϮ~:֍ dm!ĚaΥCǡX;ūkP*S1:_ДJa,LV0,`6~Jz^{ ۳XG7*6 DOn[׵ioݒ<ޫ8/ʮV#[) RnlYk؆qd,渧t-U=#)r&of^UjvTߏe f#ev?'!A@99.l~U5(ρ7o Bn*ڱ^:r}~ T Z%RoPáBwa}w νhx"4EVgXZ&rvTr1l<٫K4ݺ|Qjg|$|{ɕ^+n᳜t-4Au9˃ ̑</5(y91Ma%k;QC&_Dz-3z>|I~ߊ5Z_&n Rԯxըa !񳡁EwVs?~3*R,nK`d7$@|^'A 0@-K(_ixrύ5sv]t3L#ߠk"ve`ODΡ%.D|:-*2 tEa/{oO2Qʵ$EE>۟p>Rlk^#4M,ݮO24;u(c|K=]){1?ML>U /w(^x8l|x%j?^32kv]u=6=56VswPew|ӓR6KEm֞_@s &ixeN4Ggqq|/߱jk/zۥ"j$\jN "'yڎd[\(hl X-!P. A nЅEȐ AI M \Dȷ, >{`ً,`TýI< CxJۭڭ p1 ߂? ^X_P5po>ݕg>ng7f}>}CoĴ,9=Ǜ9p; T7U%U[rIhHBXG"}<'դ[iIQ'I~9L%d^gr4_{؉zlHN |?Kg̭Ō/ނ ʲs3PP Ym.^,-6[f1ـ_sMxȇzE``.ԧy'2SaX"vẸ@rd<;iPr^3wȭj^##gEDTQվ%@B@)g)#Z\ ->rG<`B*ah F-zmRMt]&ݥc8%-=WZmN3vUlB|]}R -M| aNʳ90za+c`"?"v[m\O9];y#NR|IAZy@mL䉖A]k(XKt2‰D`İ ΀:ԪS0rmH;{lA{S ڻ@勎GuYZSs Xqľ&B*?BzJO)7'ڸk1Va&gPtʲzG)痵ti?iH_ST Ac߂A@t@4hS- 2-GhU]-?9J~L~[Q5w͎vX`*DZ Tl9Ut(cBDkk"J jT?7h+c֪F)N)@zNaiĺğ뒫.MROyÝ?dP TH$fk`}i,D4EMdGRv(ބ3sWruD8M3;BAn[Cd@2 ]A Ǥ9$#$_l6lNEƘ??vq\3hrTVCF;2!h8}л_ƑOuPKkN1r8 V )nuvola/48x48/actions/view_multicolumn.pngUT cnAQPQux -W{<nƾߑ\:NndB%GT6]䖊^؆1/Js:]lȭ8%4c<ޯy>OA zfzj#c}+V%\&ostD{HےI;x&EGDžEfy铿wXh52ex##r n nKᢢvBD}G'?~{Թ EB"$Oxlv::AW.Jo^ ߙ U~ *Z#Ox{VljN ?pɢo]`m$a7J|B3ÔHЪQ@jM6]Xõ+RˣPZ*axȮ++'6ƱMEDPC@$ 2&jУcܰػTTZxʈ 6)c[%zj$Hř+lnS7 ﹘iuj elP\iݿȻpbܔ湼΃Ig$889ɖEEyd}(_bLAS7<\pv[3)mQotF $j ˀxf5 bo<V)6[[~aW;mt9_WݏWAyUYAaǑ~fj$αxٵH~``n#B@Xӛ=CEe6b(-3BVkZjp2s VE<8sS%g K#Ev)9=V^'{Y3KB78:" re.|1ٸTQX§to֛>s>|` /GFwuj.[WtJU_vRErS<1d\l+j99$N˘Gfm/vKq7l\\< ,h+V`eEa6v?zP̶dO޳L3%`g^EIK&b\ i x ʤR~ aqGl3 9 o@QSbgŹP *rf( {?͝Ef[ ~O'q~jG"p~Dl-oJ>qID|i_jʐC}4x;#g &TDGwdĮJmuz m7I^BE(+&*"2 0X_@$P5L{)9ydOLPDx~;p܀شOtgbF J1幱;\6 NV,ċad7]xv5]N )[&7.s8G!,`Y$]\\p{#~H.t? >ở01o`4Ih˜&ⱚtaɛTx"*gku}dMMic "FMl294?W\7y/[5pJ~䰠Io't9qs,2"PLHw$֏L܅w)v틚|r#U|Bv:PB ' |9 ƚ{b 鹕7Ek<,欥(Vm1zw Z՞vm۱xW7mb%!$hMY?5I[B-Za^ŀ9߅BC/<ύ-,'͂ՆL1[Κ^u2cu/ +4R(~wSs᪪E7x{j79dFh۲콚}_t}PU%o,|+ɬcyi ܑ} 3!(HSFwzͼ_}h;p9Tp^a2kd]1 y2XEћMҴfߛ9PKkN1 *nuvola/48x48/actions/view_nofullscreen.pngUT cnATPQux -ViTS 7 &D¤FE #V TQZEHQ y@1P XR$((`qTQHr_{?sau{lf?Sc+cLׅ32q~&SQޛCo> xG 'oyoKz`[\s3LE$%8F$' wxz2ac'uz怡E#A#]0j@f|aM'lG4|?YMO|7"CG0]oH};wknF%ް lIj,Xf76`0 m12Vu scj%hogL cw"y7CPgGMVw0}OgW~BoLd>?wز(&2v ./Q*pSNw\_IbYe}OuMO%sSpͩl'6 1{ٻqOޞB7f6hl\a ؊| [6N-8" MG퐗\KŅ XWWzl,,봊pK}ҩ1Ap=/@97Ŕ̡ۨI'A*{۰v Ζ Ӿf-"f"g䲡 amp?N>sq }J}~Cw-|nvqr;P-yuTp*zXoK P_A "ݏPKlXeC *aOjI;NpKe%MڟY%Ha"^%l ݩ2f<j_( FM.jG#;FcY s5)-N1zj9װvF;rw_P@r%>s2 [Veq@TߧWHo6_m6*ԁQ:]gXwwmXtTs$v$9Nq! L'xkY?cUȽ:8I1]zYs$1(N&ЌIR?qz#)/qmh.AZ/.<1UB ĭr&庲3<ku\:XHao feEdEzÿ5`Sp2y+kmP|}tjG؉,b:'?We~q^߱!@=,4Bv~e9Ϻ-5$QXb$:'80ej/eG|H{#2W-/jH9k!eNptio{`I;gDƞ?T);~ޏpKpzu-w*O~!$-HyfB^dh"m□Fia.֭Ѕ7*H"mC |Y|e˭9BZY@O0fQu)b+Z AΌ!ϟWK_R~@/aĽ)yk1`CE.6%]uD!9EܵkLat#ޑRdn;飷)rTߊ{W[+ _*{wų%("-w#0t^K;}:؟\5wf6V18)\89*܊Wƈ,ܰF/"ag ;߳C=Va,d9QGCxt3/@m:av@Ód=Բ Fnvi܈Q)%#\$y)dҌ2gP'cԟ> MB,:Y,w\q=*+#|,-\d1ӯsqUܭ 2l2q&_qonUt)Tږu-kx P}i0wHULauSy^F'<-n8s n.8" +]##ǷXEg*#dhM8SXϧĸ/c<JB'Hd2] !`2qBT㊣!˽b7 `S-,MLH2۔n7s<%mTDYֻ S}a1#UMbm _=7t1֛ 7Cmׄ#a6mo&<}B {ˢ9ZW;*!4B}K^^H ɔa~,k MlNFȳV,®W_j&ObUR"ypagg)9ɜ ŀ5so-[j `u}xPKkN1ɪ+8$nuvola/48x48/actions/view_remove.pngUT bnARPQux MUyTWBBAPLD69hـ,EH-j;o. LH,A@0ѢRKk  9qdHG{;w~Iv 6lH [+%lP]\9w73%'nRfB2Yt4>59:9>̉@?qcr^$!ᳱPDu8΢l_D)Aph?N"gG;R4#s߿u%XgŠHbs9JyW0]2E롁î-|wt?m91^c-A}_sт7 f{:ŋ#HS<w2cwm"R!ZsD;އyYRUiKu[GXaMBv d+->w5k"|ۭ7 K ODokc\- [h39BegpcO"UzwNcȒr2+~LxNǛAQhSCCGt䄈Ֆo۩/9} x;wk?ə.4+ a5 )Dc4,hC;mV =n~hbD4nG=4EwgI'N6kVO A$mкt*vGg%n_x'kxP`]EaOJ&)$dzyd]X27 -_Pda=vZr!u\zs˯ha݇]V >D^@ 3cOm1h̓*SԗUe[Z*o'G}htrzHhg|"pza$Q|mX?J*=fWk;ZN(+[':Fx!v{~Y&l0pݝ C]OLC9G4 5A9l[d7]( aIK7!=PSB~VȀo2ĉW|X*,@ )^wOYZ "B藯"RK* ! f)Q2ʤWPCT%.w?UdDM&/\]'J 1&wuS6h(͙u86î' d-ʻ[2F)ꠜ7lV$bCCݤs-on4zbO4BWL,OM5{@>vנE5 ܑA`\o rfnSzEfB,8a鯑+#k5'J3?q⡃QC*He0Ɩ/QFh"P|d=S캓̐K@M#0I|V&OAH߻>qJծ,*(P^hLeXҁޚ^1w]/PKkN1i #nuvola/48x48/actions/view_right.pngUT bnAQPQux %W{<[~ˋԔf 3䝡431.8\15(uCBR(u0~ݗJljA2d?^{?ggvz.[ ]/OWF-H-zY2&QT|x;nݴU; oo :j;jOy ?VjgD;1,0O1E6DJiGq oTY_I/Qs7ild='or=g'>Se"\0q]Qdwsc풂[6Q ~jtyڎ{֞a0pUOjqLJv8.]P4iVx4: 㨿ZC# {P/Z V`f^>KB J?~רu֘Yp8H~w\W:_o[4c3^vo'3*R?&`^cVyHW]YwtSlK[[VAI;ł&asa^d,վG=(p6FSQ5"j?N1PF#ϳQdJu\=tCg3=7YOVfy  (ۈyRA޽.;ΙU'{D 9pJ^~u˕%ZKowxMLp1=݃cΗ༴V2 @]T&48ۄ 3`[j@9ʰ/j2RީY.;Cunqzi)ˉZ`l6;#ED߳bq:OϢސw,5^}>&~Bn. u=^>rF]8陆5g)RqNO7@,B%^Fm:nKgNb3\LY<L+ "XKhK sfuΏ4S`/[f*֧ бFPwsɹlDnvZ֪m-0wc8<ģ}*df:i2l_M}ӖEA1s{1WK?ʊٶl^ i.鹰D"+qduSY p-pΚ(yOPC;ͱaޝZWDbn?񯡤fX9wYMPVQNL%<25JlhhFvlI;)&8fmE[1{8 t܈H쟻-EWDBifo M5Qόf(bwaz7~QE^:HXvy!ze p^;TYtA[dU?.h`Bg|5[W^Aq'0vx·j_lrg wuV踈OcW J?7~=(ֆ0yUU+ <فc5`sJTF_%w?_v~/xx{"lUDB-$$>Yz},Ot0C䷢tzc !K9&3No6U= }b=ޞ{#kbqh!R  ln/"ji۞1: JtkT&rph"| \RLXĖx&БT'5ߺ8zlJg< Ekj&-.*+te':Zuґ昒˅ޚCE >Uv]0=[l\PQu"r-?#;¿L\rI'X6FFKL^42Ї aOoٕ^c5e}hܴc:%EM«r501J0;)@b,qޅ-[7 sh$+n[Fz}"wҢ<|\Cmjl KIw7G;=I niQ.AcyLo\IJZB?/IpWjG}-‘pm)Rǚl :{ؕRlɦX P.S* (.A JRm'g\P\$9[3_J>gỖx u' P2_]$ 5pQr`CUk`;KYfp4Pnbg2,.W|m%$HޝiC6וl>sJ.N H¥(*b@˖M30Aqg6UNFcZARVC};Z{;, 9N%>h,ba[`Bhy^q#!OO15ڲ TPd%,+msBY8ТsFi0t@_F*U`C4egtOEGWVm1$\mwDГ.Sz|7'{h 822vg{9j?[o`_EQQKՐ+.cn,N8_8Ui[}z{7"{GFMoʖ1m%>yomm$ E G|L=tr;6Xj*$:);]d抰;yVRJY3cFK$z8@y"CTMmrk!i5u96L, ѝ!zwk! T&rhd O ceem]NW {xuR2m&1KM>F+Q rș?PKkN12آ &nuvola/48x48/actions/view_sidetree.pngUT bnASPQux MV{o׵L=z;;g]Ez BNTqznby) :f=;^A5OOh ]^aә02%PR }Tgԣ 6qp E~ cRv75""OZ\5l0ᗫLk^Kvi uP%z?m귯zSSVM+`݂Kkkx #^ Pt I} ;ǧ!4u7_qJ/S.4* F/do^Ly@U+$m۾tD;ӨH JUs fXmax,A@PV(DR?Zmnh~n4Ux݄,vmQ9EԷ0'Hk+ⅻxYZ86UpsÂ<۞ 1fdfq'VG N IQhEjYYcbMd#jbuFxonyuSB$1rW3>hFyW<ю״3@ @C]sδ}ggR5=[ƙ[Wl{TV'<%TQY}›~ 8 Tt)![4ɇ\{j$9(&'OUٗMx)fdm\Ӊ ES*\T:ITY)]6{2FO|Zh0H{Co~"{8a0^? mt8p MƶHiX*م ONeHY"+x^u#Ζ bv #ha[l<U&jJʊX9xQ\^u/煛!^h(m ?K!=ʍyhcj#;X>;`+H,x+ V$\>ޚWz|k'ķ `-uZ+fLj9Q;$20x}CiJȠpXc&%''<Ș6.)rN, nV\rɁc` jlJoAUwd owo;=F;|u:!TwBkfݾPٕu4_U)0mV端dK-}ַRy'ts/^2;Oh8df>^OmڂF$.YGlSJWؚ8K#sGk'}fЌyFŅ3Odw=I|f/n^^ry9;DB7e~uJ=m]褘&L}i.h-CKkZUNOҝ@q$ =4{xmWeil^;6UUhi9",'6g1  N([Ki0)}"J4Q3:&sge~X44D&Vd _F`.A8g14\Tu_致`& 4Zg߭g^ݶNoo"{ZbOS#AP'[ZP\{! S뫦7owɪ:g4}͊Dbcmaz鲕R1[J'85wt̚xJb?;"[fGO#)MXgw: 0F+*ڗpnwߛ2xM΂sʫo~s^iW3E@<)([Z oS;PKkN12; D "nuvola/48x48/actions/view_text.pngUT bnAQPQux %VyXSWYH$)TT в"XJRe NK %`YN@~vl$@@Pe¾ yqwι;CfvfBb\F=?v29S4냩ǿ>#HRS1ɂd 0-zY$ۧX5.,ut < A;{@+@=՚Z8B0{s38Ĺ1s+1OkJ!;b#[OрB0ړ_FYSܑ(}z[ i.$ƆrUa Njk*? eǃcigYTw[fȠJf±С_u"O]f`f7(1"jg=[BtާrbꀓŦ!OUYX>g7q̶֍=흢YΑs\!zP^z9Y)&`"mm=%B$l2h,ء(w I,.|JW(YLR_-|"z*ߧ:(/7Wr  胦"дc`Vb"sJZ^A?.|Ӷx֝NP s)?0cs }#W6v%1I$oS9Sb9.)eT[#P9Y`h͊A$b*j܋Ry9S+++!'<3iyQQ4X5 ҮxJ#.<^)ZD2fzvtqN[uC SS-yQcъoOeu 'SOo˃l^ZYY碙 J2$y(-E51>N NP"QxۇԼ&V?7w-$fM;/i)J/Ron{:⒗%) k"¯rm $^P=CJ(p: <"rBp-MfhZ(.hW3jC+P)7voR *ȶk"ǒ2E; ZtxMG[+09i=ښ%l=ًRk{wtGcGWBTO<}{s4^8JRs Xk#]D':Ȯ_KCRjt>Xp5u}Psmc#/g{+HY}HWj4n &[tmh(Vo03;=k([(#$.8klyƒ`# =pqZp)kc~,P[َv'e(YmH;] K˜p[/ RH\N)47(bK-& w_P\s{G_ e#P}m tl3QcK)%ȆyfkM?7nMJz|Phrc,uQ sAm )?Xbl1 İy9[.-CysR|HRu4->\N&I_vD]Lz﫸 qNLlalSJ-R?t6b+љ+6TJUͣ:xDH~cVyu-PmMm՗-YD}5.5lծOM:1C|k ܡ'S5`T%R°]2۬G͞qxOZ}3IDo% Vt-z}3Lh9u2i<*K2 [j/^΄-'s,E^о, G?gG2 o0n][(:5-rM1j;֚^ a=]4߭<?=swRGά}]qmXU N?т{=0t0bRPR%shԝ St [ c99'|M0/  +oО(q]93K."!QUP?J_D ~2:f15& J )F1XKqsXWH{A3Lnx?iw˿5 I$͗)bLeC2U%2 ?> t48!2vl3 G}=eu `oD j|_Oe6Qq4C"sKApE $K^ DL/z#=nܧ>閱KKE0&jlj- ,p7Ymi=2jb ü'$drw׼#&ęԄbrHV˂cd>sCu"L,}w-_!*r-]8|6(7&׀g|Lw !n/'h߳i5A% "li@'Z8+BbW8?n@Dknɭ=Y")|M"-~H3`[iMGy LKṡBugb^BMPU?`Fe #?/Q #L_<@1{v.s-DoϽe@WT3\btS8 w{% i]@3P8G[Hz jAv`faIJi7@DmkcIꞕSӪNLX[sc]sGvhRaawbEPb9Aoc~G' c6hUV1'/WAǝy[@FR9~{|mF}sYi_ =\3ЂBmdZChW[PRD*ϭbL5`g6\O=KhOe' ߏ +/b"X5;ċ'%7JM,Iwb:Bv?P\P2p$4V.ǖ/Ukq!,fk\(Mõjݞ'犻'62sYd/hO}Cn}D 睾@=I&AL6[^ ӑG(Gr\,=8zn5ݰ/L) MRw_ۦkPR/n8.ܫGQ 76rX|6 { gwhltP4כz(4pkuQPKkN1MFL p "nuvola/48x48/actions/view_tree.pngUT bnASPQux MVkTSWI < VnP  y!/CT%BR"DoBGP)AZvZ%P: CM$w]k֚}o]ċ v&"#8/n}/pZYn>rkםH|(-( n$}dR3 #>*?)ѓ""Ճh]Z2lb(uchizM}E(ꐐĆ/O}'x /|k}+ct0 m Yk#`ƖQҷSruR/9EaKZBaa~;;4޻-M VG%̔RhK=՛| ={7nfo L4}&Mz Yb= p@?{Zd,8 n\4>Oh/z^_i1{ŹxCPyu*X}CwAז7[ pTuӦXF8DhX}dlo)eżiLD4Lk"p)=b-8IX:9h|Pa9mhNXo|hWݶmiܐT$#]/ij װ~ &`Q˙JS]2O!ėoJf U}xd&@r ,ڃwUA ڨ/,It4QhWiQIY=X6L Cݔ`D%x I{J<׌@ pYC~y$4T,CQux"&CF}W$:QfjS &Ɵ^Jb:U>pgR U.;ǜ\k 9OdӦfy$Xo "`^Rc "R 3ru)M nœN# @a9TSkx!H5b"JipJB֝"?ޑadZ*7@bɻ+,^QcH}Fd:>:ԉSGug5c -Bq=Y Z4[.*ʈ+ -\E*٫#4SxPs7Ɇ6{&2D\} mXPk͠WFn4sH gTG6p:mV=tY1 -ĪЊ+D8矔+#U2А>k%D5^.^05B%ۓ5ܠ6|r _:p)'A2 b)a/΃P/:l˨嫜 aPM0jy2U*ݻE䴣y?*d߅:fUK((:?3&=M#ؚ3dXY [̎!>]B܂̦Av=*D.'(p{jKp7"l4kB$qoP6{}*lM#a(NԽC~ܓpMeٳ1.S>`ڌDBS9ȪREG:N 8Nϴooԋ3?hVF b}LH/PKjN1 /!nuvola/48x48/actions/viewmag+.pngUT anAUPQux %WwTS})P$B"% !bC0H A:R$ *"AidlaUi:H4[Zu9gsuWkgGڒ~lMP}@.f :G._ws(nj2>ƈ bD&hrz}30Lѵy 7HnOEX{CV;Ϥ9"%-E4;vӁV\@LP=cb~VcܤCy5Fw۲eAhh.ooobxfR8=u#=Y0Džx`# Bq3[_\_)"T.JZ2L pxqu\)NQL(gn%q{P^Jm+?h {6l|d2"q곱u{4+q@O4OSe_v,xzr Z )%8H.n %M[:2h:[mcVZZz(Ch"v 'FE\,a^ub8ʠ-LfdAzT"Riw"o*n=Ke?ѪI,2 !*Ƹ9==3C2'JyN;<@!e,QWV20 x7X@Ǜ,kP7H#NQڒ~?𦸸9@#"8:z^E9no7!>܀.?%w`_)v]X&^Mq )I{69< &(JoX6o~1(U6 ^`PJ 1\gY{z (2DsT;Dh}Fųp )x% /T  ,&}4ݓ^@KKoflǞlo֕wڤ}m#QiܥF< 2^9mmި\kl%h[ AXP(| 4r8AƏ8OznW S ,p$)#ѵ~Wds~!&Y-)Zߋ&q77B( Z?qaFV[UaEF5+6ݹ_β\9c(QPP`Nyh };͠7K)QU(x]q}{mN9 c$*F-PwhCĊ!m̒LO3<'jTTɠNg$s)Z=x|.։@ LCCHqO7Vج Yv:אMYS|O )Ț(:"0OjK{NWpWTkRo|J|gl=TLT)\\#"{JV2@]ӈuYA f>+Á8##Ĺuc?Xf響Az],[&=EUX3U:?-ѼSL馜ѕg ف;sy+V H.=͸Oϩ)=,={:kQ_"֦dc)'NڇXgh#6MmyLTro\s 0 &^ vB- owNJ\7fH,[=E=@@aHu,}DWO~ UJtD%a-?8@I&]5֌˷ ozH"hFۮ=$)zssYX8pY πCY3 D<AD#'Wr \Į];35ouipxi=PDB {wifGR# oأ7J*SiۥņP!~/dj1+HE"WyK}#M r(-]WE /"+\Qԥ&NIet#m-GϽqm;*?EvKaBɏpg'weQJ!AK'][c+IMv`l1N;󓒯S=gwWZr)@{=&z߮ӑz`:~@~myA5iiDg3'8έƐȞD7vG3ܽ_D&}tF@E_4w סpf>=D9Rrue[{V7}{Cp$hOZ3.40i-XYg?,}FMêD%ܷv*X!gƶ`ψ@;x\'2[FעMcHt"p$}+b\,b`_3f}lAb9)E]9uN-T3U1(>5t ݈ũ6f1E4 gё3*W.u&a/F6  ue^hOaYD̔Y aFDGYlF*`?Wt+ʋ/dLUO0ڨq/yI=%M-Ӹ̏~0[kLfwvm۝ KFko`WY3`i/ԛ',P<eMMg;Ȑc SS}]{o;I*k'nFS7CLY!l3r~^~,jڝ7[Tj1~]+53ʮupTC3RgD+^Rr[>2*.J`/-#A4MH..ќ/9>U lnQ SڡR iJ<0pAm+Pr E&ē*Uˈ| Uum1I4:X,k|(-C3C G3uKW~lEҲBVŰl;=uX465K_YTXU҂u98+8˷J֤}qJCgE*F档{#'%~aXV9x h?8^A7$/Eta|]•h\>ad?z& .^5&TENҲmHX.YH4PO()Id(πVt-xoyfw„ "!8E[ Z1ȟI[TҎع9_Nk(lR_j|7xӒn,?㨉]y7??@[ I|)/,>_Nٿ>(44FWfW㳼&WFڵ4T1RxF:;!}Bg*1@_S5&ȧ>\|??ji[|Zct\<57l ա"Β*U?#UU)RF^U};}INU?'jBHR:zˡYaVb&1zѶ -9x ]5N3k%([p2a7JRBpIR=`ampBYj &0bD+ŷhqކEKQy5PıZ!brB-CJމ򉁔$@ji-OHDHS*p鲏٧yhjęt &´A‚ö-/9Q`dFqW\- 7#8KZhf57PZhSLu &HG=>3xl%7R)U$#q?؋7˞<'$kT'se.T=pNx"e); lBBdlsݣP|jp^r{8(T4581|=v>TDgi$X/rl'Ysm; O]HOW$>;)VOt3-\lhpSxaC/Cjyܱ (gC#qURxC|*_[#oԔ޸ ~G{F0gVRwhT:.[O Ň)2I2]M2y-峐/I0{+P/N* 5]M>*4%{_񵃏yIWl'GuFŸ \>2;R790qRQ:e{f}هoGĩJV6w;rqѹ,kN^k^E/yr9+8NϿ< fmXN_?qk &`71El8cGu:]̮z(HοȚȕ4HzZ'KG[Oꉜc臕HCm@p]#uK&mpЈ[6XVO@BO~; NPKjN1b!nuvola/48x48/actions/viewmag-.pngUT anAUPQux y\QPK!-i\PʥT@[4-PebXfn3Y*4&[eeP6Y+ -`f٣ѡl4 qI|%ƭ/E  6͊c]d *ueIYYكu3`$R ~(3z7k‰, 1Կz`^[f6T'R 1G8;&xwǀ 4D-NAlys{G3Aٸ01 ?m&'wNR3iQ FHvaE\*8^`naQT*j{6.VgTeg_( ʬtzߝ8&4zLLt)M)_n_B8ZI/+6gzhĚ 8$^!:Ǔc .qGw-m0.XMzC䱒Ap$_iT*̽Ξ82zIXWHi_\\ WNēգLn)z3Yv~9lհzcsEltDR"[,$ Ww%$5$dʕ?3vCE-mN| #XZ%rO o&#iu%u#I=fe$V_ vaVdRW@29=" l q߮ aRIJTZf[ڿeql6 ph kD) %3s6z*XFVt-܆a#zx^0[V\Wgk\0Kb>'M H,miֳPnPwHɲ&(xXÖrO7v@E&dqxOhGXG"Վ`n$i4YXǚ>iϐK 4^-%>di9ϰ cGb_oIw:_SYIH+oX ul;a9`K&PK/Xn NmlҺ @wRtŽ<#TGDBoHOBwKƲФfFd4z%ĠTEwa< .vE zo8N1Wy`'--g+__i5"#d}D =p gؾ5ih4Ỿr4LH\@@J&e.eY㣠@oS]z%{.\-]H{focd4":4b/ΣOmg(XǽM ؝g[fA{%z g`D:Uq拭L&+~<@^.<EYGu6g2b=aKGm>ixH`hGފ;nLދe罝KAAx~i#hT 7LH5' ;+%mL81DE~EP7q~mg:.e\?'k#ĬiSb$HlRn5,viC؟KKG_ܮI Q1sZp[%G>#V֪K:V{3U3!n,3Ȼwޯ]} Dm 1yV^)|˿Мux{0&&< \5 )EPkɰ[ ی KVkxDo׭UpJ4K7[mIGEEX,Z&iA^)-9tM.rE(Bٗ,ߴqcr*KPmCʾm ?TϛUQ驚NA!"f<c?4<=Z *S.pU!]gIi#N=tO;W8/*a* 4UKR=5KUsڈM"1N߁M*װNTH8|pU37(Ok$gwNaj6 {`vW=|Y#ti~ z\tE}CXVOn0kd̅vFA Lrutp>oGK{:=xb:H0͕ٛc0l!cy3㿵HI?Z@еQx';qmT'y.K7bP,)AWjVEea&sniTWn#A8]^R=gF8bxa#z2_Eߥ,= iv_ݘ݇+@𜤷!@ !>Ke/_`hJvImy=R"Yy s?h8m_~Lvؼ)Kuaf 1䑃Ia^4Tws~VQͯf[7/ᠬ+Gx,JA8d[VwAϞ%*;?C|`48#g,u#9Gmd~5qg# shz)<(,I j#GX;sDdI[$J%ULߕow<@{}vu̎dH ~!΂w7jFTRbk43h'tw6!-~IJ%BKGʖ6Wz/3Nf 1G>:ɗ6"R^/߯Nn',GqiJ/_j?^\֚ /o.ݬS,ZgDNVwj™(+ۻ+ĪA.o Q4џy^tg](€xfxz] ض{-_(PKjN1/^[ - nuvola/48x48/actions/viewmag.pngUT anASPQux -W{<|q`HfDtQfT֖(13mk[nQIQE!J-SZmiakMJ 62ry99y\ܯeρ!miTajPcP(~qJu%{%@O>}2&>?E3BcS@볗r0MT(<`ȉzƗhoO $mO=־zͶe<)3C4Sc"bM.]&1rxfE=ިm&`6m'#dmp``A}>>>(sssΝ4LT*# ?ydt&Nl :᏷<}#YTw}18xrP_&RrJnFd_c*7ڒ|%29mqK ik8 x*ܶm[hZZ?wcRns_[E zDlJ>z3(W Y>d$Ȕ1>9c˿qO$7uľ**jp͛7KJ?I{qVW(c|ʾKeRd4uY2 o@X*\9&w_3"j^}X(>́x@w &" N#0 bq"UHcМnIDyzGmEB(^[a,Xn=Tjx&Ttz4')cK<8]VVl˒)@g(1QWUE@EƝ4O ՞_?,/2Rɖ9.{9F}NJ#r <͑iB8:6U&Xh&^X6u޽Fw>WF9^+ø652zceeb^%\lq-PMw㾌 +y)u{yjE &unioxW'^3/V=yf}i_+cBPk|/Z.p8Y]`["a 7>m<9XH7*Lu 8幼e$,Aaf<:h$ &zZ>}hxa%C 6g‹\l1B*ZbƍU{jyDwf΀ .**"!>X@`ugTBe赶#jsڡXcK"N)<›wQyvA߭e::E6iԬj]aз0+fT!jyxloyD1kbzf+7.hQ_ Au<ױ -ׯ[ UsS[o`P6#-kr{}&W>\Nz{8K6')'d~ܭ#skX )a&7VDkr)F4/kFim fO~Zsx \4::J\73J=`gw:A=Ls;=L' ":e[{x`o|p$`f422" 8b_`4)ٸIW*E5mE+&Hws w\V z;6`|#osQ\'O@V:vD.5pL*0I N~i׺pUt 컜\:VVxD0!n㈂UŖ72'3Ǿ((B(  Ӕ>` 0A s4g g+P7"Ra׏{^Sk6\Fe °-M;b#=c.i3C.#7֌5]v,:dP+߲C`7 >pmU>r]P8Nm刴9{Gl3)-K}&q0 /k&4$jo?ܸ?'63]Gk|y/~^~,xA0IԚjyb xq _`] j cfg:0 z}bFY7 G1Twʨ5aˆl|h*rDkN_Q4쟧R$RL竈$hCvDO=Apv_A5Bvw ?}~_9;~ 6%U >l)ӹM5>B/677-%"é)vH׬v(J1bOch=ZG}?pb7:E/ņ C ,ZEG#![LELsD"Lۛ S#j{>g;ŽV^_0*3ZKj$NbSۿP*)BjM:5 BkE{_zͷ^p&ްL*??> |'yɭ-ʢ<N!&.TDdP$"y4LZj*݉I((w_`_ېrJ<@ 7vۓx4NLD3h*Tm:oOױ綨}Gi#6R2՚KGD~Ʒߓ|lNTIS藿3!"gM:s[uWeQ4vYB23W4v*m6a=y#P_uI'1%iBgNaɤI![՗ggNixtuK PF/ؐ?#ܻ[A# $~(\4_6ϐ{ےGǝ~M\Рu)_[28bGJ rd|152IO/8@;`}=:+]"&Pi_Ere&o2u;S]; gqm$zۙ\G%=%UgW<8 do h䠰$jtlŽĴr ߴ?I,A^EՖJÐv#v 5k&7Xm*G|Tri{2&n 2ut[y _a=ZxD2j? \TD<d Qri^2%ؙܜ]{HydR &fkloI%jL3,lfUL*ϡs*掯kﻀ둞drɁ -[yOtW}6b'@ z(7?-]̎1:E.IUlC, ޷g1U^x;5^+M@FwZ/u"q2G(\!=x#)I-cJr M0dfk!wwwV T wխrs55U[J[3 +<'A.[@jDʂ*(9WbfjZ~ 6xh]>>9ɮɌ4ir!R4 7\,Ͽ6=mnNUZ+@%H#FQ1999KK71ʬA./5`iN߃.V N F^sOSİ=/@s񐾏 A]ģ#M6"F5 gA>8? ӶsLA&4MN[9' ZG+sDb)x-]Q===d2&N4  +_.nt%.Q9`e zϚxܳ3E8wدƾgdR1,<<<}HX%cŜ0eB7QYc=zYgo= A QSBLJ'T~|]e)~l%&n01 ,u+;50fe*0 xv.AqglV#"uMT]Fia[Yȯۈobf#0; FzͶY&Xl_%%ؔF5\3pO~͊FQ)a d laI==}ZsRCS3M3}e Kګkkm/e Hsf oP]E 77ntnoɏm :\yyfù>/;;;+>_ 8'VnLKez} }km&n5c ,JS6 Q>s:d/mL_54bsB5al模']K U(Ol翓<2lh3,S.'[&Yw*T7wM4Zy6>󇃴Z92#;lN,&LWw.4+CHH'1KǒUF ;N*MY&65MY dmՅ-f%+--tQ }J)xne^%܄p RmH,1̺:[.kҁ+qt&sgXthPNF-ݫ]s={\=:u"kcÍ]Wa}B!zMp=^.hccS7 jlUZ[z{y1su_ %kR\n,L[͞ m /v3O/ oŊ% :TMJ8j/Ts=*wϊ \N2#rkb]4|HɍZ36 iBӰ}T9A/` ݻ7+K99}JgҳѥnqD &x-1 ""a^ <1!OjZesSNҳVV5|U&W+i, Jcm5 >H( -ھ+(啇)ŲY5{:%JgKUL,s[.Dȉ-#[gRZɷԵ[~>奷 (O}GY?L?ZNjTm9 }׳Srt6qώFGļXmcLxHܷM s1')iTSթL}u~. G3|3`}7i&DCGhO'[DN\I]ܕ ڸ)֤691X1&\7&}dw @}ş"^ mp9 I7>?t:֊? .^|Ϯ%=*c1 1e%XPbܓO8kG8q=o˧;@mIZ!_ɰBX4'O,a.p|ا}nFBT-13%WY,O{ R}|٦um;.! bYHHw)@Ř=抽#G¿eD"dǖ-b = >ړ"gJX5 gcVT[ <)0&dܶ;$x 6e6tE,7Q^n=ʕk,!R f Y\1ԖirI; 3w^Anyg؆o*דߔN&.m۪XlV37.".|u>mZˁXY#эq vr\80 s:B%I0Տ@QwKGCJLJRJNGGڭ8^Y9pq/GX)b=lr޽t;JS uDЯ{铣SP!uէ6Pv7khnTc%fJHPҿqzTVch"4o#`Qu͌SσSap 8 K f;=ڏDK ,UB f-3^%qsoY۷S*Ho f\ /q`煿E`e|ʬBay7,|s/e?vP<S3H[kw&W~8&Zu8o{R h /~wJ8NݥeNN(cU^O:;. Ry/bva4EwdFP#%;]o xrM%G$ZY0\\۪@Ćiu22hlc<{*p~4%qh -z7ianW=<2H5ruGpuFDFXV&:z'.F>fp989oBB )m*EL2Y" OF5}uKyJ֨[ʖtoG?$afKa3( "ʏˉn}lJ߀WU\N{1򥥂2Rb*s$=zefÛ: V,&jьgĺW|D%r)][&u }MwȘq( RJsÇ]<(CͼƷso;/&Nn?Z]15{qN].*~ɟp'Nj aH7; .!٩ww[ƕ4..ֵ_f  H$D_R !Kc`Mɦ'>Mե<]#+-+ j-QS! z X&ޯgDa>~n(%ZExgܳo|j=H&R}=-~AuγH11.~+↣ BQ 5E\QSf8zu\lp&#NLjg2ħa ,"KOa(Pӎ (\?PKjN1\b#nuvola/48x48/actions/viewmagfit.pngUT anATPQux {<ǿlsj$lhyf=QaEO%sV)BB͘ Qȹ(Szir>EEb~z݇|ˡʊZ(;q]?SAWׂ\-ZoL1{Ï_ l}\|.Yۣ2 MM&0oEkȟR0(ㄗ5_ozsbvMA?w:+)'z]{OJFaC3\гJ]/>>Qs9`OW舵D; ? 7[ъ0h+:ck Ѝ@Q#CÀ999KKM>zLIQij2)(&YYێքu::zgQQi; do_'f^l92Z|Pgɼu%{8ۨ]\'_Q"~UG쫨21TU;t 0o'xvSMd2DMOx$6l]>LߘӗFDR9%c"&S?MZ4T'C?&3@_GiKjƊ Ox9#XX)(:C;s'/ho4#. sgOH,F_6VI-QOARrZW!΍ԛU*FmW;-z8x& Gnou;ľBRFkN{Y0hPUÕ/ˡGWD;{qlX6{Abe缄,?օVRMI-4+ibeL2B9 .讋: * SZ0wT|› I!-{'QL+~0h۵޿lV5.('N0kPr Jn{,lHhsqk!lB _6hAPBP!!!UUЇYa 㽹,A:8"%ӳy^4Tex^]! W8W60 N5R/vcV:wGaj?ܑ$|:1ɿ`W4Oѣl^y"ȋ!5U;rOqMrRFɻӡX7U_1^tCb8$y*P"i4 2DMd6Np}4K固d:(azTUaxAi|Sya]01~q([x 1"ٲ?Fc]Vlz_ٲkdw/]QK t!]TH^]t3,7[dަ֤~[*,.p"gQHc.9=I60G0DEXmA$)T6ҝ$J$ŮA& UNqfz yjkSjRr1a"aC !S T7cE[w]r`_e_|[ 3)!_FzuG;ifP€T$ + ԐT|>VG|M1E9 Db6/\߶J=Dh|fB7#P4I [b@$yə-ef,QgRfO V!}/ںve НWd,1[Kr+-9 檸#ȓ8nCc.7Fk#*@ef\:nngʺE9E?/!iv&ZD$0@Hx &OB2 ЯRzin+6AHY]Z=U%`rrlxHe4]ۯoɐ`W8If_]nx:ϕ"WDMOnٲE* qJSŸ9aՂ4닪a 0c啹?>VI2߸_<1ߕ&6 1 eQf KR?>::~maaIa&%\ښ]-l=(Fs]3`?mQ;0 -g0,/<ׂ'oۉ{,X%M&dd%"yй㨸 ]=xO nsz:FF݂#I^ce;C!7i7z*B!5:C-NJJgΑtl./8#iɴL"96v} ԡ!SӿLx״|izsjX ?!-ҫvʥtRKmwِM_o=2KyEZ[[ @3'nwa2ܓ@6ګ%-m`)roHL6or%fzttES_"=~ ʰ`O;+vV3$|QKlSXCCEEt_DP!n+*bL N\D i5cUo5*χ/b/ϗQCS˘itc,,վSqA]t * 5dze(-@(1 !W|[D~m~uey+wM{hq[6De_,~:UwLk6w1Yѯ9Ou_!eEBtdÚ7 T+cΡ ?nxuuXh3hMIx4̦LL|&4 zc>{DYVh "a1wȇ fѱJ3Wn1ٌ ϧ ֌G 8{NrL0̣x}G2|oӿnȯ#ł̯V XkZr;VR+oryEtD5Dw22ID]͎u+L>D3L0zC!7VSx̰F"_`t6OЯ1hZx a}Zw,D`5,3Tm|zj+}wD{߇(OIM!,Β ]MHrS7ħaE_Ks ,I$/{aʵjnNn'k,wLj)x)]~ՈXKtW;4V5)!4e߱ $.k&0y>V9r Wr==;v'ƝOڼ,v!X =fsg[OlgdیP1Aɺ^z~GWL;_@duI%4@NvZI=tID|aѧ SA_[=Vz(PQkZf|X%ӈlSxoO3׋3ho_:/ou7G݄y5_ףW5K5ݦ0؟'mn+59>+A-c6TDX: {a`m@]t<7y4sK?%+զI"6;Yrt+G}e1c.GJ+$,ihQ:;V:== "tʟ$@,}*#&ǒ}[WrWEZlOz PسfQ!qz.}p±ZֈH{J|m?6W`)YdTt>K"ȓ|\߂Iϊ4&)hy!?#˄!wW-+ F#i:N6O'PCþ@PO $=7vo<|Ta(lp#콄t_/AP]i_Q Vk9y#%|I'(]ѴmZ!]0$NyY;9Edt@< NdF.|2:zҚŒVZW QW*RXӂc>W| =*Q˛w)hB*&g_6>d%p6ka=evԸPKkN1+ #nuvola/48x48/actions/window_new.pngUT bnASPQux WyT0 (̰YH@Q hA@$56٤Ū.m(I RP K2wy{w;jbdeIxXpΓ[x՛9dzXnKt0)-u 0&I)dv4u1`̗ F1܂&YD@_^ w$@0ӏߕ@ Ê#äna$nY rq}e*ʻy2|#RfМcasdǹwQWq:hgFf0;ux]/ZI*<^ f ]!9p,߃û57oiŤxjξ1VfPJ΀D$k;R9R҉YÓ谇&(6O%,Nj״YrقIwl471 l/$0Js؇=6}ܻv9^/"Pr򓶩[*\((^y{mhs{ч24e3't R,D;1ȋ#=R޲G'FHqn[D& pCo2* %,[_F&9pDNj*2B\ u~v.Eڌ. "HȌn0cVσ][*^i cTih5Ľq*HVNPd[ Xb]~\_RD`oV°ĄR&eG?%28*@g f$3 3V>y{f?@?luߪ{\ZAwrtG`d,*'Ҝ15ZItr+a4Ǒ~2+{~ :.o%)7V(d?:(;3pÓ%e7;c^2:Įij|#䍨9)!,ZмZ+s)q }Jg3G~ RC+@d.:SCT"X0r0EUXO;:z'Q(~ZcnuSܺ0ezS<2|o(٪ y^:}4Z1LeN\Bu"pb9bFe kqÃe"}JFO"~S<^!?Pt| Ke%Z+0"\Xl5Y&&߹Cmk5?H`^vK&jD5H60!ZZwP`w,DJJ@z_BDzl ª~ :7u">"[V&oR&HK;R\̔dKLSm[$F ;}!Wz'`C28wg>_tcuR1ɢDRo, '%VKl.AF )wf9R#=[|aPv %fl݉nv.F-U޴^8X^`f*+t/t[/*Rc\h 6kOPUBoңi| |GNd)=jގx+XuY>ۯO o go".bq ?e]**=;Waٵz.ӕݩ}|ka9nU#H8T UC4c蝉A=(٣CQΐNZicKY׸5F3%sȣU-r%-J9 Zv eì"M"L{;}@`QwFҐBz5}0qڔPyxJ*yD74>Gi_6֚ns؀}s1.YfvUýpcNxxbG(e <#oK.?a31ۦ쟻I[,S'!]d7Ħ$fUZ40a6yݪ&لWK_`ԞxUP26}$ОN]49(=B4_ zf_Y<{==VuJtQO_͓c"s[[9n|Q|J|op\aF3!evȗ}jhwr5q.X?yw/ ^5n{;57W#Vjc^YEJcç.ZNO+Wj߾}-m/= o0lLO}U5\C=Bj0`Fpc2PbGyEE{Z_N3v 6&:;K}/@&nuvola/48x48/apps/UT VMFSux PKF1d~U nuvola/48x48/apps/access.pngUT "MdALPQux 5W{\yV=5ӅaLE)aILEA0}.QHEN&Bص+ok$2Tj;~|?9yycLֆ$! tA66wB;NKYO>Y*%3Cq{E K{0_U<*7%#ߞ{.tv^j\)0'.Y}g`k tح쒯8zq3.CєG11ix%>s3^>_OtŖr0`[ 4EuB+M(2f]:[<l:lf`Rfh=FjdYI0q\l!ݜ}M>FVi8y`u@oħvв^d1v>i=$] !GR1\.4|[j!ĉۚm0'}^MLۦ"+a#۩Gޤ,VD"ɜ|̮;s*'fxSj^]6Oij#i>My/ӂExs.p{xs>&y_d` i (K YP?B:!x &ru۹Wc1gcK;Z{Ć7'#Ë:Ruz5$$T1n)`pPyf_IVtoA.սBbUhtH.8$5cw?L}#qqk9p,!#ve?\(eU(P 3ukӀK=?3P/Jcb6eL)뫷x9kHT@s_T47FMgQ8al96-;hXG<c rg# #V[\ܷ7ߩ'0:ХsF?T)/fb|g>^{nAj`ԗW7lq;]O NR"s9'pĈyA}㼺YT6t{ނ?}S4;r!&7mB8鐰gL1B۬yD7|Ist =Lf8U4Kf6e ?)Tf*V:P~dFyJu -}n8/%36+F;ى&%Gs:CYRiTKNt0ó1]lvjݸD ZSx-"5ݱĠ0PV*JbÑBis@V| U4] \l0aLs~,y (|JⲻSLn}Rץ֥YqNn- nQ(nУ9~oؙ=Aٷ9d#.څ TZA mz PpWS+U3$*tr1Dˀ{>EsBÞ- r#6{^yQoM .I ߱I{uxQCʾLZ+ԭ<_x?v횻%-DZ. c*a!ru?uR>+#ȼ .YBUx7vvw0jCC7ήl} (\Jc% 2IÖBg[5f:@fiwېR$+h':p4!bs ˬyi[zKIԖ8cjT0`tH|`u_k\ğӛւ%%% jc3i}OxWmgBq>rMSaI#6YG|#䝘oH>ǡ{fg0.yÊ!13(Tx*4KeGzG; g\iU`i :ҐtCv֗_;O4gk4o%Li$ڥmfsU/`# .*ca~ ?a(d-Jı>:njw 'Ltd6i? ,"Ȱk|L!vrG\L) ~⊣hȉHԎ 7ً:MY8r#>WPO+sJqٛ|K`Md^^Iӄ.{͖uX7XbL*ƻpQ WW,7F&ǩ.. G[ʍ?Mq)2+E^|E`J{d϶a5[v7=(~'dq3Y\ksuE5X[rCV˅B*{M3+DrQ77z~LvjihbQYb͋ʁ)SGZ8"\fjԩ.>z2GȮ߀rvk0S[NG>\9%u lba.7`b_%sFJĊS0|黏),8%Ru6փUnL 5A0ߝ'靘M;X_(s>cmL̳[ߨ_/ {<Θsp֒}ƖڳR6g ]|{v(o̮T/YT#z-^ףe/1O+y/M:ŗ2afW\x>OJɫcd f)D4-+G@գ1"['"Pn,޺հ6fPKD1g*}nuvola/48x48/apps/acroread.pngUT X^aANPQux %WyXRUlL ʬL/и$ 59ڎm₶K YVY#mSM5m69z o9i(iS;s~]>B~673pA,}s aqrqf/cE& pܘ(-h_d` 2&cYQ_G0#H=B銏„ԵOضЗ2-MPO*6}՘3гAP54<#M#fN zkZ?E`;3zH8+16tMHkjS4ԣf΀֗ӘXAO%Y68v2է<vxYox7Bh,6ۦxH"gIYĪh@?AܫԊ$ތ@3:ȴJyRa &CϤǙL93ul]V[F ((+hOJ%0VkTo#mΨql qo=聆0[ٹپoQ-&<6{'y2tf3fkʷYڛ/ TG%jYrd=q>]+ݶt1~U-V FGFFV)*

      s^ɱVUC:[ lPV쒎^k!p]߷tv}3l@٬>?7jsRSwjv ]fhօ܅dM죾rt#C` u=Muz0&1#/(U 8%%TܕLC 7FBV O Fq[ЗɑN0W+Yy\m+Zݹr֚j \%1J]ZR=5XnjB r}ǀro:2*;!Ϋ%_'YPU CZw &ƍ@ܡ_ٻ:eLbяΥINRlO{"gD̈=KIzKs-zkrDB3__Sz{Ga_1_yoܞZ:<6CXw!Z(rE |s/Q}2k]h;ar Zs˿+(+Q)2~98pޛ8L.!cગ}F_(sad|젙y,@]|mE ?qh,(btN=C ixذm*ꘆ<,1K2t:#6gA BrR 0Nf{u6HK &/ͦ >YX.E'173^lҭX`kJNEct~X/Xk8z ؿ5~+ޙfJ$ֶS6tt]O@)\Uo%:ϷgPu7o3Pށ: >wk}?U*_뀄Bo<0H:4 ?E ~u>C)y^#hRptsؗWĪ{Z0K)% 8|s].]-マ\M/:xKK+e8t'ѭوIJlo}jo9Bkf2l=(?!ѥEU({نScW n,]jnx\S 8W|>4#kWl*+ahn&Qܦi AEvR*s SXwvcfv}O-M4]9fJJ<25 i 9ћ< ٙ_ bEӵ݃+I0?IL qgȉoیٓ1Pd Mup3e²Ѓ=_mvlh~uZUE$ f>ݣOW=ǹK=/Cqw=D.SR $9Y8u9A1tXCZDN]Bj*Wc^}VD4<:0LSz: Yeˮo<_TQnƾ{Csʙᬏ[%3џ'pn±yw qSrFZn"|/DY7,(>2bm)(ђ|Li[9a\3`ئ" &jҒ7fTCSaNB[ZzտAl@CE,UItk ^EJT+a#}xc:8)nu %rzz {j\p:EZsn62R ̒l=8nAmM$gn:e`>Z΅}*vr( ^\/`MvKsI`U/Q˰M"m&&W-vd{t?ubyf%bKXC7an^jIRgX}er>u%<߉ru?7Tqo]uPjrjNp4k5y$hq_ԝr }?QV8Jk-Y;٭öm[~V;_Ex5EGxJR~3Z^X9 m}Vd+Odl8!^zkSe6huM6O0g5{V-Kf;H Vf1d)I>0k'64N_8PHzE5RN}mZ,{G9|}`o&KTKcWmFO+c|rԁ>76zA,U,*m=%Xvp6^nѽCXՀEVZ[#mxN꠳4um^ܳ#C.!`4X9rN2wa[#3b"93 p8]?ha7:clK@ >AyepZ>%2&/'J`*Iij=T'CL^U$Jb3vGKGec!oT j ͘ 4EtZwݤ4W_qt5Pn.DbL'+26^oE4|xT˾+`kֳ8,䴥9ꝵrGa8lgzz#<̌޶m[zV0Q-{) bZP 9s3s6{ #,u;%kblѡ&96Ubn lGYp,5KX6j ®/};MNFIՉs:]x3]N?tC*|QrQQB/.wB3XMtJV&b\k'R_VWo_ 7-w`BEBQf> yl̰$dsyֈռskUTkw>M%3UF]nW3?2fFULػ&N]wԄ'N5ŽuoWc_|{%WG9tDy _4FP߿%fطT&2&[6 =VP0/P(~ h3*ږv]zΙc5[LcDâR5ŷjQP5 6%L)?}Ai90\Odb.ncJ7R3%Qfv_jų`U}jj-$iytk{STK=0OW{Fi8i0k>ѪXY%QFf 3`1Yet *hȹ-_>J"=fӥeB u.~ Ed@HGh!yQ[Bsc881 0v y -) kXR_c&Fr}S:>,d`|>Rx. y~8W\sb~v"sHr$2RV( "r8Ɛ;vKۑ~ЕV^ZT$[+;ccs9gFz55)MB[ŷ}$1}󣢙gKg8S_ewђ)~V` v`jnV2sV5țSF&)q 5H3 HC p)PY8i,͈l`קɉ{NhC afv",Ii 6=JSki o:3C;8roF"^bTuHZ"cfb zqgZg8o f[ŵD&hj1VՒ'QJ[^\M^^O.*(iL2T"7֔xzw:ǤfZT'3IȌ3gɽhro\$},>_yQ ]lA)fÙ)ǝt=n6c?E/kwg?ڰa:_9'H}ə:'eDȓᄐv!fQhB.;/kΓ/ j!ҡy po jFE0ږ'3 <;iknd2eMsmӎkkS1ۃir]4Li/ԗ <X7Co8aV#Z$sTZ[q cZ&ɯN*^r%/OBqLxsE2L^41%5˒Hj)_w6GvruЖqtxw܅W[,_"C?-_MоղdH"&mֲ0īNnIYjzgAZd!dFAk 1;j+kdG g590S)|1 0S'!/ݎ>ݣ$Gj2}ሞ1+ o%1`{?1ke['BDCK0E"s\j62PDlGa?uJT͖֔a ZB&r^N-Q;` 9'Tԁ% eMAFY0 K?0+tZe6(Wbd\Y4wAQLs]؆(V"!8#% R)^07DU&K*⧾y@@,2}6[uǘGL@B"A|c<6 ՖrVu: $+bGGܗpOBe g VLFx͛;b}aF~d]C$HӮ_@b9S?෌vF׽Zq|߻ Ԅ)ͨgxF8ݓRwl(u,+NThψV'Q: 4xVvay|nr s2Yq ҧ`SBu HΣ)~oFh`w|/y 4LY$8$7pz wa/j@LyHԶ#mǷq 0^'f^! @?lձ{a^aw<"(5F|y%pC_yY21!6 \~큧: mO=* ]_Wl~5=Q)w7΍BãWQ5%Q+9A@BV:5pyY"~|UH;P+w Jc!,EJSH-d߇mӣYb϶\ǘpYK'mư+)=Kc pG؈-{HZvjeh]3 8AXq *z̰p w,inYȉzt]2Eɉ=~ ď 9|Gn}1ۑwGy̾K%ϕ^6Ԙ+D4>F륭3v6W;|zo3OMw`PU+hI[AxǽIXbO5ǂV (M.#,`z#x~vrgƊ0>c}Iz}MԦM~.q駵58eP%ovta 3X%g B|IÅ){{(QIpp*H;sk34< nDۍn!d8F/@rhy9 0 &E8@^h[_X.M [M99R}Ii;,n'x P{NdMϘLR QXn.^Z@|E:5 ])/Xو{%}<F 1]X&u[E6>^ہyY(@ޙ\-1wrK#b&zE8}SL@DB:ϸwbwɦj:y`޷" xbX`ĔZn[V?jduqN)&1y/ciy':/ʠwPD-d=Q^;BmyСN\\=W}^2sf?.w!LK>RwliYI}԰y̼I;?Bn^+Ъ׊_k}=M"Ls<omm2uɫ 6 C>[Shz2~Iar-`rڑ>HU \pUhEGiW4I@۱3MD=yl<ki?!,;$'{Ni0I] Բ9U8ǫi{ 9XS1v>G֬"\׽i8~x^Pm75i,un~e6 VI&Nʙqxvj>\W^~ 0؊lmF_i6b͵a&YDu.VaMq"  T$C9.gGS!_.֧4q,غ5Ot%,y۫=HUg5}0\\E;?Fr6mziEuj6xK?mZƍ)H_#JQyqK?doZ>(/췚U>)16րݡl*ZMxYRKE"j$ rj?s9w>e; ɆBs)o.^@Mr`K%4NmN,ܿ,YF݋aX˿: w@کtXOI"n^ J/}~*}tb\z 6kWa^(Tc^mm-JVouM}#0Wz]M_]1evBq=ZX_7YgE^̣3,N1@04j2ׄTkĩʡ״0X#/C&,E֧ AM߽2GǵŊ/SL=^sns4~`5`[!SIO"ϴ`:;0RIc.jivEVHL | AMNܷIbFizcƵ IO5\eFNfdN@? @'N]$e]rT75l˻œtԂw8" r@xg/-n#t՝ݨ@F8KheElb,|i59f52+~<퐰^ʴ(8'-xpUCHkV& 6UgD>A|_ Ǜ]k͔& cՄ  NK9“U ࠃHH{)4nFu{:mWpX?-NH@(Il>U/Mbe?":͆MEf}T[Nʉ9 /7i32- oF[>MBFWYqC.KI\X'5f}^_OK43Tˀ.@iJFxgæpް: JvU:尚.E R-{2uߏ}5Fu<(ӾENIMqgIzi_DI.U]'/N)XK {(0&œs?Жlzyg;1Y]ԕH&|sW8s^G]Vl$rNG'ÊY; ՙ!{V7%'j殣U)#YwP=)AHS[OMf㳲~*)-  lv^Y9T-L3λEeK(Iu"2tDAŖˏ0ITS1Sw =+rV%̐v NCB6VL+]䃕U8;`(;D6Ͳ*T/IܾrY {sI@g![T5Mcļl+ ֯~j4eؐ NS3'`š:'.Oi .OP||"Λ'BwUgHsy/"nZ`Ig$&pflp1A'Wgr(wᦴfAT[d^Hf pӥ1F Tm{m1'۽fz;ioqqRNgS&YF( jC@h*aLE&V7߬P=!{WهOkfOJӉ]_c=PZe8zOrK꯯vo|?bxx|DtmTL=;zwz *uL]>|I @0|M%}U19Or.Aqdv\xL~(=fo.KaL7,in|?-(>dƭG-(ٴ aǴ! }^cNJ;_4evHGdQJ-mLQN,>ZMK`8afE %ߏ3UNpǕm.ߒPZ96Vz+~i7wv: INN#E5U=a+ }7[΃E1.vOe^u-s-Au4<%}UqoDSTK _P'kfO2Ĭesf?mE*񏑻Cc2ՇKSpE S ~3f#^E&[ _͋ Fa?5(}?b&OH8\= X.k Oo#0u5 㦚TQ-3g_\1mX~HbQ2Pbٶb *-ZmY80d [r=>V4zQ 05qM ]?Jt\9yK.wչ~n+mH.s*ZBB7x[/:#^J Z (mv*;ѠQh-Tf/C-&,#~?@ o#|Уq/ ɟRWJ<9P Ȯ8_`Aa ϔUX@rI֖Z{I Gu鋨6h[aV us,]'󖀯Ya\]:O ̕olo\~>1[#=o+̀IT+& %#S.5엙fպs.jm^q%_o%9fJ`x*?(q@\fzVܜ{hVW{BM k HSrp5*p:lLjyqfFL<.\I$9VShJ+=6tK GM¦@*$_VOZ,n&Ꮌ;HT\FLVճ'HItDG]i9#rއPa I6>..В"Ϫcbro*%L΅Y)4qA\,hp){( /SL<B& N'H馡g԰+ ƥU' b;~g#Wpe#dX 0Dؒ?t|Xg\0D,S L2UU?;,l+#LU鶋Vm{wRLMk Dzj]C8TT Y3 U,Vjhl" /ҿ `W Um^_<o Zm\lj:Ad KDlTdp5"-kH+Ni h\BA'eyMxhb|"'od52+t0vmM^ YhS.fqEϔ;Fw.aLAH460R3GF9Fޗ~ OMC׍/gX65%%.u⻸ó hօXX}x1BZ_ʤd ƖPwIPIQd }?.۲0] k7s"WUn@4O'fmkI,dI[8k| Ip2Qvw1z-{"6*0\6ԐtWRP*[ ߞS1EbΕ7H]eQ~w$9_M@> s^\r\07=RB<-X ݲCz)-3O Z!;7v>nDBYzًB~!@.9ν-q 25+Cٲ V{qԥPz쌱0,~6uܘ g)'A'᫆wӟzKc,^1Z;ڼ>˹>Ѡ|xXwx(dxWÚP4q"bXnni`=;ߞ Po QA022d0`RRRxrЋ0q=szxBH]z! \W@Wi[[APՇLϕAx(,, 􄂃)7Cd&8F*qb.JKhŒRJtYiȂ"X?:D屢i=oC%s-vno9KVϽWWpJ50ùaV*MNE$I!kR,rR;`|J@h[}Xqަ. (g*g( MvG`TCp޽FFF“ s4iFKpD 7p;HF0e<7\jIV֊!%vvtwFv >)Rq!6nuU:?n!P{1/8pFd4A#l F?, ~rve]\DޞgVǻL)oQfpP%?YW޺XR"jby%, ١ޖ?bE_@ 3>ȭ~ R!?*>xV5~䜧Ö= z pkYb6Ne.jG<:ӏW;( PVyi g;&D|?v\^OJH7"@aZf'&i%Bn/A!NJmkF h&x-3Gajp3>SCQmE[76-^W* [ W]qȴxg]fdv[8MiԠr7fdX*F 0d3x-a﯏Qef/w0C#u{}.r_DÃ!+4JH){ʔQఈY *.vԕ9qLT^EKxMiMC>.p$>Rc@V_`(OPW?nAPr޸aMñl/gź5r pF[!aX;s]6 ?%ކ)+5yЊ~p2f$ioI.CG Qj^\TپM _gsD RwȘV8A0&wՏpN0M7pu.z rwtdx51yYa 36>5ht)qzx*#kf~oRb:ފZvҏo?lˍZoIғMdۘ?:z[t;Yf^4H:JaorRCKZ%DyFԣ7 ]].@Y)CtlUj =IlBgFM/=n8(k֐ q*h4#! q8jν2xʢy6cr7Y6ϕȅ!Tl@ߐsrNŷq)L2RI~xKu 3*}}jTV/*-m#ȕ.o~X0=- ǜ{ux*w/ QDoLq5yNNNER).Bw`/;ca [żKAJ29^_7odYr8=2+&뫏&;ӽ=L5ۂg_8gM9:#|.4FCr_LLh$3Ļ) u^ėzDڛprԮ61f3b+DfC}2.ep _̙$pvJbe WH!}DBGRELiWj}5&4MZ4BbF24q`yL9UJ&|$4uٱ7z /ţ'+EôZ3-/*o|=L3Q mrg#RvLX~r ]eg2A_5OV)eV/~rAEݳ@,{>Tɠ+, E;?$Неx 뗥US큠=pX7sJөkHDVuj"6Orq!M9dp~P̄*n憱=t| tcnWgP}4|X*1f*~=B~ ,8qUfX+#%ِ=V:X< ;EXvkwMM Ӷ`mVuT?ܷ>2!֢x˦U?UkoҶKfN0ԔrzãI[Tl:z6mFPПokE@r˱:3]s}$T;ˁWsMI1ss-Y45 ~seYk2:GTˎX 8?VA"+fr'3HaWy+'-ܴ>5EH>zD6k 2R45B)-R9pn,,d90s' 12B[8 ]{xI>Êǰe,b}tiaZyT+&[A,y}G,+?9.8s /6Mtu Ń\[u|\ANǶ/颽GWr VxrK$a8ǣZ f͛o;& ʼ +T'Ec:'i"Z[b\?B%xQ90..N|کzSn .9- D^KUv;[ƆECCpss=Oa_LdU+YL`$!c‚(SCpҐƜ*хق\@೒.˜ړuP#6646\{ AKfiv,=xyqqwI^Ƀ=`b޷h2}- WY-G9Ci|%v >찰]c؇ ?[))2 XO$xTm{^\g_<7&AFѯ ^j1\yq}hrc:WZS8ٔgjyrxљ0+M?{ˌZ}er{ 0_*\iGFZ%$U2. TtܩX(uAmf*EPLﻺ߻%õLad WevX h%u܇ErvϐЌZj+\Ń RIE\uA撊Ln_`D7qIe3xH_Z,'Z )J:)|#YѪFXHTS&L5֧HTևo9ySDyRBLRSS VIm7\Hj -]pQgB ~mB 7a 7C`iX4hvlQjh12>F bE)9qgدYcUcYŧ^Se8t.lq'p`y5.hFM3)Hi7 q]"6/]t0ZWxWך,*%-X)gf)X{b^&mBYasVQ# p7FBڄ4<ČMD&wZsc4M jld9w|͛xϵmu{7}WiFb$+|=2N:u«R=nh2OEZ.FIVj,GӼ;.7Re7hw@Ts[߰;ĉ'IFsF+ҙK26z_T^D}욀>T7|@$Vx+qVs Z\F//^I_\>vXE$LmGL%:NUoʅ߾%1]Y,BNϟVl%6sh3Hւ zo}4L8G-ó͍V8rs x\ 0zEyO]GլJu¾ѪP Rw[nJ9p\z.03&Y"P*1-Ju- Z͡s]|?uLf&r?o"t^R)SZEX2-ndUj&c ҲM )o>\I @._j7a8ZKU]goɵk;C8? ნ1;P lUtY;VKwc>|BsT -7sKɮ N/l3GU 9b3Bʵzi 04n=w-Ҝur!L̾zsb(]Z*[Ű648#ǿhXԧK0[rʨD.W ̀JN\P8i4jPzDDs)_Ҿ&"+7I%J)9?qU\/0tg'ީ:b?4>7z;c|5%̷K۰;*ᕢPQqKWJҥ3>MQ>k.6Z1JQN'Z->pN( '^nW<'K毙)F#y}BFƝ5լ(NwMUd"H|*ZH0>c Fg@C&}]=@ic#nX)@.C5f aI5A\ zSUf&ъ|g8.տ1)jg9tM.<+ܞb4AEϵ CˤŒr(7(N]*iB~Gc7f.Dՠz bjRďQ]D/C%sflJP-5lҫm3ƾ#4U5ZGԟ746M( Q:^x.zmp㩖]W&==VqB0 vW蓓#Y#-2cq$UXldpbAbC>VRdtu& &imo31Vt`)E,$!@nٮ- NdD nfl=lo^)sksy3ǽ/v"V]1jjo,yR ʑeyvpآ+! ,'3 O![䆊6y,. v@Za'k7j3^F}C{Z+8MtԯL˗i亾8T=M]RpmǹtW7yTZk҆X>lj/7 ՋzA_8 #c0~1_mqnSӛ?;ݏ#{|M?F eVP):6tY;10-HƯ\26]iǺ`ɻ~]!=#M%?qJWSM18_1#V|bu/D#Vn-絡V*VB]bv%C Ek=K TyJlW?ݿiR8 G*.].b ;9I^|}fЃC7WkX_| 2Xzh}6)EUO x2bRЍ2ˎBFFp@~}k̯ȗc+ 1;WLU)QjS|6׎Qnр/)i1M{p7:oh4e@k@]Sl?YK"ڶߴbWJ 73\X\\|30 xDdw-cjm)C9F.׹EuD= 5PfUQ0Zm/:< 0~,_)E`Nd{om6c!̂+~NqZ"cGgU#O4ݔhӽ'ݬ)E`i B̎6Q~Ozu΅f="m'ۢJZģCPD_S҈mHdfн&JJ$RkmvXEP)Bs<o)rzSK/ z4ϯPFN7ļ<%P4a 7… \Ȝ+a a$kÕ4{l`0ҖTk~UD ٤:7UY8fnZhm%Xשn=>ɨq1Eޙ~s֥[4H,R{贚)xhiye̡WfȈFcY]F߁@uӑkO,ʖRz.Tp~ c@`nȿkHFګRڵrzNmLMO^ ߉RR BNlU޼nF$OxhrUth;ϯ媯M93wh5#m_',uRʄH3($HTX 58u_ݺ+pTz&CϝV-QBNZn_tv/()N<j'ցƛ{c/?{G]wty#u=} kz 7Oڠ6g{.?Sw^36N'J羮ˠ` ԭ泜.zMҺ9T} `:{m{IsrRd3Y8ϜDz{3HI_5!Ӥ (Iy-S)RKh&hKtǨzOPI#!) l%Ҷ$0a{`-kb0ۍG"Pr"&`Ǘ'/su-8]VW/!Gr5/)f j w?+>]P2vY[. A +vTwl+H>$o-TCO b#S}pHբ Q6>TrwHH E|=Dl&I"3*ɹiMATw.S p_y)oyFe"W7Gp.|$Afbt.RAmzx0B2+uP4}{!ءؔS]& ^VXJZGMȹbQ3Vh`38ix*TK :OLviAԇ6!D VtP4Q6縢A-i5*["~F)s,EnPtweU(e?yBWտu[ᕩWQ!k1mss%ۜmzjU% kYqԵ&]bwtx&ta-ǵԒr"CkkRSVpe\Y@F 90VI8pK4h|Q+(r.sI|S)js>xdzB)k^WI )J*i!;k;+DBG唳3/F+7K{y*Fz jZˆ(~^4%2_ ž?E"r!G:zS[˶=mT_1{DF61O]Rܥ\u`_w H{kf!aB ,,bN2p'K&Z,Q%}KFuӫOѤ~^ NeQ.EIa9rߡ=gtV+ᦦ9N|3Mgw|T?1gZFr8{}&5"g:u]cJ+tSUѮ 'tS|42ab`#+L4F2b & |$k\/*ڳx!G*̍PwlBj!&aӊ+`K FJl4,ϖK\g_:l)!gFkN"OAX!O]SZR!y XINt#3=M$ėI2'ic!ﵑX6l 9>6M4ZiO:茸C־^n)"jVw{2CNep':vB[Lcw?n] >ni@{Iם}{m6ɒ !}%&S#y>Wgk3M]diɔW7#{ǐGp6[/2" VKDd#2!#nѱ? O((\C{Çњ`3ۜ 1Œ- 0-X_,"u*9*6O7+G{D 8PC|H;G|` & ;ng6u: u!R|+AqZq;;[~:xU(璕[[[y:,tFZ(:0$fx{;UMX;hQҾQ\]]U$<Kp)2߾{~)W*v@]`V<9t^5Q^T+$--BhGۛsٍ@3li"lSX>oy#UI(k V K6!}I8ϥG7Ҟu,axC?n;/_U]8Z.UU7ċzbTm{t~&\ Js7vB_yªf/jԐkdy+ yǞg\[?TH݅J0tkв7nk  JzB!Ix7d@8p %&b2NDrS V2,եS 0^2E_l@5[I`8;5[xumwH@*M&UCRhG(tCr͇n'0lf>jxV_‹H*BֈЩdzV窪Hħzcta*!"ZG7M,fCrϜr HhM[tDU%RPXzink57+ޅI-=cW B_Eu` JFmR) cZ_>̹|*p]<5LH(u= DCY؂x;L9yݼ9( meLBԓUoӚYo#<mkU"!}E ?SGOS2#fؗn<2ب4W9:8=~}fP7 ]=SI&mIל31νU sݗdHQ*d 5HeOS^"*}WF :TI_R*3.=W }KFs@5qC[ CW$Dl{Baz,ܖZSg-70ad (z+ԒWσ<雮˴"?p):|޴TupWu9i[&:p!eetS%#R;/Cƃq6գ W3>XDJWmd)9I޶3*gYPUWxD`%b;bs23{@v5K2e#B?QEb*qV td5|4! o- fh'7VRǔ\thnfF9v{F }AG5Ē \!?z}i|d'mɴpɷɠ D?BYX RlI0 ŝ㊥7@r>+;r\y3̮]3H&R#wl{̿bTNE ϙ@=O~JW SӃmyE53B2@zX+.%]#ZS._˼+-Όb~ E@Dq搋^Ԫgufgߩ A;dȣT+w_'"~l52op-7e 1nQM]'b+"@_U=R6[mxz{H\ã_5N$g\ȩHnYt|jU`X ZI/Ρul#";b>qgd%\kS#sh44i/]xݷk׮<>5Bx3!Ϛ0&=}Ȯ[7}gŊH`r#lͶ^V`[uz>4;\_;RĦ߿YI0yrrXߥܞ~ojIY~qquAaS-H}oEHyE >^~^ȯI4nƪ|Bec6om!')NtAK ;tRtJ֞0 EiH$j?hODٞn(&$?g? j;:JOV<?x^+bXN&{ZDTD!ē|c@ Vbwuv^+W"f&wk0`uɝ@ftUuԪX $ґI4>ދnQ*䚬>Tu)t 3)%ٿ<uF<2_جG8lPKJ(2RP?wz"ԋ=6e[PS$&_$˨NT{( ה%eo0Sg H^5qf}Lu@ Is~٩16ߌ 8a2PPxg۞)VI_KBЧ)۶=δWN5j>b"iɩb UnD[ZdlzG{?Nc#(|Z }>:%&IvCX=6'̊1}/~g@l Q,- -sK[:{oic2=ZPA=H,l|s- ׃E`GO<\eQlBh;0wC[z<|x F%pb>qP ,p^Pԭr&f;TUkӔChN,`ÕF2LHF2%JNk^1`eeŷY^ZlҊ1ou`U%0)~tO/fz֩":dX|| :?wIe坰h$W8ɔUT"hnC1u C UJ&~~].q6Eyz/%}]e՟v4:؏3@ׄr;^Gڀ+6VD0X{w!yU֌(X9j@Zg/PD#ܔWФ_x_ U2J'**ᇄұݔ O"@ŕɯ,f|EQ荗Yɗ;Z,ͨҷD$;oGܐRft|~Sj!G1j)~yUH'0įgժq~JTn^֡KAGM@ w ! o SҳYmj#k0-. CP)o2j>%>f7_BnkJ8JxIFtPE) tdxQ +gJ;9}5TLp/RAhȲ5%+~-²=oi͋ZQg#[ g0AbH]WW9*Bݰ'`ir10R.O `oø-hspōbRy9"C],v /%6{Y1ݝq?Nrx2\̖/3Ӻ۝QryT+uKi)BBCQUf{VMs7Q?( [ Su =r尖:CN͎~5ltQ/rIBjifjj,ty%dv?-id sqmL2 UT=e,JG$:WYn uޡvcQ'Y1j'29@h'2* hx6i,^RT(Ql>FQzݬ13x --:X+%Dm)RJʌ;yp$B7UKh$ עQ,F0[ c( %5%Ug\+ .`Aci MKj#|6X_ԻGʙ`>\z6#p5m/kqx;JOūcIvW[BMLT[M0IugA Æn"}af9>Tx+YQƌ Oq ʃvLo*! 9gpn湀H!^\evN~Vo w y>e?xJY3E<0fnz\VuUF\EqOP|<,uʹ /k"#ۼsT +q.<@f3͊޼5 V$KWIXW8u%Lr(Xt#3aO2c l/_l[w_{4N(SshZjX`a .$M׳J䤴O55uI/L04}ukyX^,I??=𸊆ϸO_fg?ppbP% DTxN}IJϦfZpLiMd4ep6y.xGi yb lpqzqXK2} sMj4f;jEē8I.Ot#8)vWSA6_ ^12teEaV X 0rR@\՛Yְ:; {nȟǔn;;z:;ĺJym&w)Rr{? Q |dBN88<ǥ1".5Eb..!7P@H[^wJP^Ų%tmJiwF XzT-o*'[צO:.qzBdD V݂ /ζۣA c]}5ՉN(m1\鄹".~7['ޱn] :pCO ch*WlA7!BnU쾙Q.Ls[wWT VO6شtWYNLAs%/6ptL3 ljhI,߉:)ΰ P/[Y+A=]S=nQG [;s09m7b,;5ֶ枚7wv(:TZǀܰ@77Nqؗ.2^lgi X$߁TjXّ8]!>.!Xm{H mY`[yPG7,/M^&\ j8Nw߲Du$7Mg2;zL.&V!N סoiOdлD<\=19Jz5A|)RW"F?AW1 .6g[97r%PsY$R'%yju9J[&N&oFB0r~:GWMGTˠ4NZ dP9M l#tMb^U+mw8];[>{3ȷ#,^+$;끁h? a,UZ\D6ܦrl/GqqQդ,)äGƾ ' Gx'o8aӦCe)Z2eyv(> 62YRbP݄U/9Gnɫ>_6A~:}R_~t5|8VTZA"](#52ɒtcV0czUg|sM]ï<9rMIX WKmy'aͦ R${unbZ=KyזeGzQiaAOΟ>_߱ _d2АӅۉ}ùp`9{_0+*6&SNvZ9 kwߓK'(8e$mv.͚̊/|ɡo?yXǏiO$M @U* l(W*Rȕ>$A.*;&4ҹH~^'>=S(v; ͎]LѣzXVb?"R2 `vf_D PW"VT@ts SOK^~ Jr7@t, E-#dHL~() 5b?ߐ]"W8CzfGoxh[BwV TooyXTRUҒH@$:jS%ܝ;}ӏމ%if +N&}Ky?Cb']eErӠiU~|8|뇐z lK;:[j3i]|ӻpfSkP @.U5R_=)d0qAX#`Cֳ3A{DBNAâ:ZUu ںpG`'3'>=%ĵ X 8E HV2qňa˄G\I2[4ܰ6YޔxnxiU wgc9ۿƮ.t1y5:.di׶ۚrnmN>14>{7*IRh2rz3Z*ƺVM"yyp1>[/)wzDעK[u85Z jdKW^Jz"s=}QI} {JRG/nތ锚ZɒeD.nzptcp]we2{zhI4 |_%e`$p,?b=\a9o> 8sF/͡܊a{8ʗ;PS9ۈ mO \ɍԣ&m"AN_\k߀dbM8zIGe~_lLܟ3gPw*[$ ~Lܠ,w=м䁏I;&xrzQkFT.񪞫##)%$wL!w|K&c@B+q([t>?^ u\Vi}mm`]9 ӝE{آI(Wr>iFEd{o{CߐI$fc1xُYSz\oUnwv穮_d<[eqAWQj56ا(kh9;BE$,gA߳ `74;{U9IHx% ]%i,|FTZ #?Xf1U:j5aѣ`^haM7Q|cs٩Z5"VE!*ba~K;.Cҏ%PQE2o#rhi{ 3n&yFҦ&?_܅XV7`kC_HV7d6qODogL[}”B[A\hԽ8Ij ۯѫUSZuO3uD D55q@|\hҏR@xvIFy=2afC\Ȏ@!T5Sl0ϐz0.b4ndμ"~!݅{Y*Z|YFfxڼk B]kvY^ gCC)L,gQy/M27;L>h бcc#5!,ɋƖn\~S[1WghI]:Q7+pSkhσw o^a_Mc}RN{P7wUyΖ1n͛Pi]%Ϯ{DJOjPG&9M{ʖvi2 dG(h)s+$=h"՟n]2bYDPx-`U( v ,V0wob6Ng3*~?2b^rwY E*T^Sź2<"dN߱`E(H{6/\8OpM' MQzPi~A/\ F to&UDɕ6.dzdHdthFzDTP߆YuXwTJoƞS .:}yiOB!`}.b?UՅIr? 3 ܐDn,` c#R3{wԊ+'+Ӽ=i3]Ets\EseLjk@Y,O'YJ!*&2oޙ=g{ -5n ?1~ׅ ƺ"z_+lj֞-<h|[(yM[A{lMWeI7潮a-\^7ox#1 gƫ\sɊz&0W1ΏAfk֮ V^m]̠~ҝN\@IJfYcBw "  M4-X=}}ğoJ /ncQ 6>>l8q?4>*Zm )gTX#{fEUѯOފb%41ٳrJ9zQoJ~IJ_gx&bqyßa6O{/3c͗>{5jegL7I¶LUe ܄yྲ:UwuA񲡻 3RĀvܛ-g\뉱@/F>--'Bq?wˏm0{a]yƚ1)qёI爷[P7 G!=x]^n>6 (.q6@Q9+lPA,C9u!54$śiR*K.@ڮ1aq8OK! l]b] WЄr@x^~TGaABGG.NW3c,VǺb(W@ ˝VmXֺ} W\317pb {^h} =T̺ɽfB2 t^n֐A(ί7}^N϶1JZ[43Ry7?r@iRlk}f0)}bK,X @BeЪQ0 2ttuT۔MBZB&*bQcc_-![v-@f/flϿGQ*(ZIp1uz>%z0Hm!m@zy٥q(HF% ߭f̛Jm6kfi>?q_C^a٘o)~+.7J+~5mP'?b[U8P*Sc?┘Sl-O15F^ĩVpS܈ʫ7\%5֝(U A 8>9;3!WwH:/Nzcsaǻzyci+-䄕dHNi8wP׃҆%cV&&\D7]-@1)g 9۟}?@'(``ǧ"@W Kreɾ{"+VWLBj-cIɔ{|u\lpAPq6l ^ %oM;AIAo7Dm+ *[퐧I?w >y >Ht$(S_th_% AF[}M!d ү=2hfs XȐT]d D[e|OS.k@Dpc.+=OT̷#`$xDĀ]>%dvb7M e\!FKT@st&5v#&sY?0@M! =Pg@)TR {HY=d$hO 5sJ;<;G+=N b &Gγ3y;ߢ_Hm9ѡfϴC_0P_%uw*viMTVF)G(%np@A‹۩)0}joPfߤazLww65mP'$1kYJNrN:<#n.*I "3gvarpr3$|57w 16 ЀPL\BB"~|4NfQK3Yd݄ęӽ°:=atg&ά"*c+X& G2ZV;nE jJ׭Gp,(6nMƇj"O&WؘL8^ 5a~oP*; ZZIFY aD!2Xx u3zx)e+V'Њ<=( ݬ竵HKn@CgSkm >PRvYsR\pe]a4YY'lm=S80 _ҫ`^7Oh @,ƺ:~} SX?uKe[YW0LtLJyۀ$a>?L,QX9s)%ZSHO3PEL/H7 a&*\# ;/ :acڽg8ęh-lҊ<Xl5*vO#BY2#L e]2Q`aԿ&O|̀NKnk-9M PMܑdE‚tUkjk_&^GUEdYl rXG :J]Fm7|^p\%M`υd8aDQ5HZ&>6ueg(Zo댍cMQ.2!?G ʝL/qRa%HC8}66+8Py 0] _aCxE6Uk74Pi~ BA$*mUWdq&hzg#hEN&}9Dm;_[%{}(c4y\#4<^M5hg[}z$L`W~VEevb0Gi(QצYoaqfUeKcZګtw~ͰJ Pw$Ӿ}}ٻ pg(7ʮPxHUm@8%)˿/o̳U>sP$BϮr}!M K~lˈ#NG"EG(PFޗ51-\'jg߅v,:TR۟$ԥڇ[7薝&3~-~&FTօT[׫x?,bN gLn},@:^'1~: (h+e%Hi9/ਘ< Eۏ},SZ@M@ w#cC~?BJ =BG(x;m+>.YtL| XнRjBٽ/D~i?OY1,axb`1tY+.hj=1WXRyGBŌوю[yxY/ʩ-OgF)/ <9^ج're.uYD*p ̫RQy^ !lQn!=` :l5Oz- 3]}Q(et4n{W\dGK&v(q7 -E?;}9i?![ !R65^ !9JԓRn$|fh>p5jXGe6Z0 (+^t6*V3\5/}ݜW z|r, 6oK`x?XHiVg_;qG4BuTsB2nXg0 F}u?+L~nы>Yl{Z苖> :(`'|p] ֦ _Rx}cS*7j8 n溾>|d$IyŪ 䲦׹z>b"ʃvAwev c\tx}ٳOa8D/d˘Dl6rmxklYd!՜뙱j* $ z#c+s[V:MyHe& @Z9&29([-~!1BC鹵 pm;kRp=8_S<{Wor@_.h{ߐ?\u+]MMa mg0ip4N HtQh)4P:Zчw@.>h6v ܽ&u0KЇ? @7٥JOƮ>xP1TQJ4WAgq&a5A _UZqVY0sOW0f3~p`O!Èl{qHm/' qTrr[Vjsmg^0/dG4ӳ)O_ C!D̀Ÿ!yA]fZC"B^e !*]ۯeTZq?.iE{7 !U~A3ꟖH,{F^j#ʮ*}yc%;;7@,7VK oP0Ek$A^v,K(A)æNV׿ WٜN0d p>=g[gI.JGn*y%p.Q(geLg+i .)|?NuJc): G6+*,""]LpDj~?ez4wX4ܿDaUm[38Vo/ס{֫zI:bRŚ%rpӂ@hj08$&֋ȸAc(@)sdzŠ:,dv-, +5}ZY׆\vV( MU1&We`\hH goU/bikY_'.5n[<r8bs}O֣Fh>QSOLɦ[n{B7Ru;Ɍhv)= (/ǃZM\N'H^Q/,'"%`U>;S.N%@H< q&KsrCf>a='a {;X {'߁^a)[jܵT9ka?=%Z*0,D:V>pRkMGY Nd=G m㰶ܻ7hB c7i* #/Z м>C:\Y'Ks{P| Tӵays7OE|`gE2H mMʡ`%y䁐iyLJHXZqԐ/uDk=J8u"вlwQ>ƅ)n/ CMOQ$d֠C3~=:;)&Tex>}LՓh߾VU7eUG2L`y]|qLl$c,q*MsZP=ѣ:?y Sgj1/ XI\"LD?Y\g,[4k>ڳ@f굀`݇M.a6col?XL-O~ȀeP?0`6]"2NxIjؼ'yU_[s(Es*ydǂ:tPA{W=MQJEEq7JQf_֎ג)-0+acKŎ7/yՁ2_%IZD<:A(Je,*4պԥʗ!ǧ[僄ƿ#M pk`UUY"d~L*9Bܗ$dzwy.7tY5 tp#(Y.{j3QJ7,L==Hf9ٙwuĨŜ5s " 笀^o`J$ī>OH6GamV~H8W:L)@oa+(#.O)7nIe:r\I9R =ݴ/./{iezfNN7h>ay;{*eg96S~qlpopĸ8:$fݷT"s\iBʧ9ɃVr󵬺ҜsG6T k@@3C#у0INqgs4@MI ~Tzp%@$.8QQv6#0@MڌO0ߣj^a5X*Pi <-1MQIj;eR~76lg_^8pk{qջ4skm*ĴA4swTžRJ:zާ{"kg!'NT̘auĆal4/3PKz]HYjgZŸc6[D/רNRx5yKtNo^4#˫|$W}v܈v 5gj^*~k=ŧ]rzίӹ}:O_nՒw׸T|>bN;ifhe4䧾L^T 4>'b0}j=NXRL )+pd8 .zh?߮tVK &3z`#VVuFy.}ļ,7Sl 5xh`hP M+RNdTX,U΁ǽ^k+men?Y|9 e9CTnp 7f=Q/`~%VEQ?ȮAղx.yoֶ~U =;Vp''?Uȱ?nũMlT~wT5ӎ&ZU#O(^ w3Y<з}^{oPupP(D).0zΨ0_$& iÿJ2[˽vN|.*<:ܚ XfXp4n?3*osx·.̼7rHASYjJ虎x@ˁܾR!oXC]qFCdH&C#z ;YV{JTEcNV4,'ZTBRcW#IWuJ8P(.W͟' vq߿'eZ]m#?qeN0#~\_/l@]zC,{T#{B:I0XǦ$'#ƌSBVA.NXi[4D cFٗwzLbP#8(!SUANy/.ې[$XVVr\Anm1 vM˔/s)(h\# V^WeOP$:jC:lOrOERޢ$ƪP,,QB6KoTW/Q2o¼)ߜh2Ǣ]s3 p &` QGQV[٨{1 G~'Q]Ɖ!*BaOi"m[^'RVwEemBRߗTI^K2:_Ffe+c>Y~ )F[_lwF_bMՏ @9ѕĽU4BPk1X;^sxiVi?h!pi=!ǐ :p{l7$m1d {^HHC?I#rI"_b pP 7wAA6Fl'k c 0+L:%24/8EnBy!̺>oG`GAPζ:o*{ Mީ˟M88pxd;!H)pϐb|d"4TA 蔀0 r(B^V>~7U{e_Kr,/[ub H{c^(J$ 9x o0V]HYX J!8XQ\BҖ{8N:g_ LnZfvR` ԌxI{dqU=MEl\詥igiC$=Ig`I"4M])"ѝߠNz>?Cʐ*O0Eo( bVԟt&WofX{UށEKEz#F'4_c6}+G_; ɍ?PSX"fQJ|aB3*퍷nsż;&%+=at9M a>h1O2Hn _U*耽țUrKL`X$U ~_yc+=")_+4X@soʷ!Ҿ:P 3PxQx5c+5+#@_ec5uiGe}oG7KKj{y!d 3҆m xU\ؼs9*S< ."3U؍No1g PK :}Co~KUfez-i q%=ɋq \N [W3ZS6З] W?6vvzV$yzd 'ҽ1!eG}BO1@}U3ӘӖ&xv> tv(?˪RBUFLI Oy]h*y1qRQnrH_{AH[ŶElg^ՒrMLO <+tqnCj+G{uQF7G(],()]ԃ Nڽ}Msޣ!ď Kl8'_3da*0M0ףw9/Z)mHɈ8 j:zr XGvhͰ(+DJUi $6 شEl ;mR Q 6fk+?@u q+[)e<;u>>,22~Cˮ~xc0T*Ahz,CՕF&_ß=:-.MS}t+Bu3gZU&d7(qޗd7|k%<(⾎#>ꉬ2Sۇ=i$=$i¨V $ov!/@|Zޘ=tvy 7lt+ 46MLd]I0pw'ʹv,Q51[n~q6-HF[0R߮3 r~`WʏQb>3mF Hrm\ŕ[|Nu܁[)Hb -팞|~uڤ WeJז}. J4 \+N1[d(IbS_uxY?qzmEK%i #B+zB 6XZk7 hJK߽ [B<܏R]: Yˠ*t- ,w`jr,w`K7Fw1ň1bøXy /% p?Wƞ9Mz[ _4dG2!ө**rv1ď°շ'u'_;R|_Eolij)0Q]Y$5٘gC1VH5JJ8z:=fHōUcALNXcJ@,G( lG:9=Ml"&%,@POKuAEty_+mmK\«8%-}3=:e8Ş!H$\qc qMo؏XﳉK3rR ?[36e|06ecQ鬴-}~"ý"׫ OVd0s Y )\nv]-Pq{YߌRGІ?ĉO7,`>_AIU>e{eOcd="؞ig-~ۈ'oK;ҭD(Wp=;cP8jϻy#?z/nXh&I×{hj >~6c Uɕ;eފu0ɣ];/nᄃ9m*J s3y&9Ai>rkUwHȸ L+f*)/#+^Τ{ߨ3!?.E-qWMC&ъڅOh5U[' ,98/Y]ܤY֦m uP%rj5O>\H'OPU> h' 7Vp.)t;$#KE .EB=;Iq+R@0u:,ӿg5&՜\+Z07xuIKs JO.4S_oۻ%ǩUՙF5,/h \I.#mzW!@fԻޅ{~, !cpw 1lI;J<)l@E#aQTPy Z;כENP g/^P#Zבf}&ݱ"̾bSk%.>9F eZܛqZE.'("<4]2H8@CiQt r{hV\ϽQKR_.8{ 5](tT "B]slIMMmoLJ pn0fMtM~$w.O tB8P)HGb&y2MڄS U._o-bWRVL/n|K˭۞r`}(_^61Y Yrcyl޺x^J }k#ueɊ)--ɭ4&bp`Y${mwV+`[0-w`UޒE='a-l8mB~f+k"p`;vb:=G Xj}+,21.ueut!aHdouqg94|4CJgmblP.n@/䯘`j0!B ­<=Hq,p o FimyӃ2ן/wD;^ l'mڗ_{K41-(k޴5({R.@]\C65fzceE'&h}H }M&1%gjɥFVM&| Bz|TXg's3 WSK%\x\C eW+Y6!xK"|(wZ}}FPKt91{w&/576nuvola/128x128/apps/package.pngUT gUA4Qux E{ 81ysc*1FIbQʈ9O944JN$2gJ9Kaw]\|s߻$ʑY; O!u",[@yĵ6nX#؟ sg F.7AмQ slTiC`-![ j9,~U?nSLԭTomTD08V4ׄ\~(,A_ `pzAh\}Wb^uf:Lيi"cň Qrr 26Oxғ;xʟ1Ո>v\o_mS0Jn@Bqv;!cy].j׮Gv ZHwbimP: sPSѴE{ik;Zy2F&, K >:v!'ɐ9K˫o݉dIl:ŜBGA !ص *u98/Kxv-z7GxA a` VGUI0{p(n/veӟEv\^xz#C @^qd@5jS IBXK<Ġg 67D;@^ܪa5_Ti\^O_Ľ1{6ޣˊL UF~S' '|ozG_%buhoGq*{$: @&(|;&zrQE]x o_r%v`doyE̙5_k٥l+ˢ bjh٣KJխe#Z!b͗ПF]-A%ln4͜Y*(+5@qҟ=;3$FGy"Zx" AWsqDSm8HGkX11|V}WoctR| 5zG8 ffƝs33!&ToIFRbe3,NE<~C aÃ,$o, uL^w*Adk?Xuu F_!m#Ө" V'Y֬bMuuXg76ې ^H ghymP5&e6wn3>ɿ&%D}m,yFɬ*־u}ÜZίv_d֕>OI7P>ƯpznTeΕ7;x}c,p؜u1xeu|^Q*>/ȂxnDz1ŭƭc.ՄX ML0Z݊SWH]!7 vk]}Ss܌NZ5Ç`6U}܆oXx#:*g.'&OI[_/`u{EVtbe*ۍ?SsPbeM-?8~ÿbRw9A"Cc9f9(Zo#0hnUj`A3b T e'Hd׸&? gU jjC.cTT<}VEu y{ @ ,n_*z1A#Y{lcx/H Ci_dwEJSا)cYHi4p{-tNzʜ 9-'iI`VRG{0ƍ7#EUOy8Je̾ Ck=n]K9XB "e 5gۥm!%⥍ dFDzMqY\uz}EտaX+`G=V PG(`2(QQ'JhMqbMl|VJFںX ĕ=F1Z-9| B`hy3Nk4Lk5~BxFFɱ+US!Zqzж9$4eٚ MWL kiϝjhNsjpd?=c0qH(577y*pUFYB[1 {:$T9g0zJcrr7HbmSۄ= OD=r[ lANhlkyDfĉ!x5$GۦĴsO@yNSm_hL,VeƧQ\9)0_OP |_xSW o9Wܰ|q9U\F(INBcmrm%tKfл_+v:πf\Ccxy_^`/3]MP21 8C9icgyb'ͫ:Q6^mIQaO3dx/iD;$hw2!5!ݢ-y8{6L;K7nOQ]1uɿA6R Vp'G- J+]?m < SgGTKdstCE^jOͬ3s%` \ _6Bz~^g E)^T?JH$a;{iDò/zOO8oqu!vXcr6oxs_0>R-_F(XKb#܌?8ѹkZbw5:4AԑC"..E,ߔBC4t~a4VY{J{軮Z$֚j7Ϯ]xr2;i~W~ ypm'y\Y*x߫mn{+s hj?7$= E)>ު*7Tqdy52.*|?n}Eă6uH&0jВRevɋ'f]/8l%N ~Eαz܎av;Bp/. 3&˟a/k./> O%7V]`9QF\~X9hYLn48Vޟ>pM<~K︯ruGpO cnVSi)NNw'meZ6Fc,gɵ('J#U 9.:6@mm_Ve6-0DLO^Y49.}?K->t}UOTR[8н|v8wЋ[p$I2RS} E70*/?ӺB|6"v1|Z#(x0UzIݼ3'Fs"GG?{^퍿q[DBa'gfѻ=(դ Ѷ=[Jb:.e3FlL!#?NMc=4)eCʾtSdɈX-< `;Z/ܛ9[ĻB]Ѥ., jG1y6|^ICp)&7XRT8O2=AB(jp]8\Z]#2Վji^Gϝ=4-RXީp:ЄtV&qhJ;~Byӣ_NEb: s"esQW ɾ}MBwr.j'$VqQ6JtyXFܳk+`ySJ)Яb&53(HG;rFf‘3 EbB S)IA'õrzt[WF=^<#^e' m^4p5PUEĶ ?ea1Ś)ItɮM GrKFG};^t:D )H pUT G:'y_'^Zjpl/<2->Gic3v'I9 xH^C7/8* OwmjO=~Nlc_sn;57:B\4w 5ǟMEĎi]8vBmE: bcjU="$r49,eD:I0f3e0Z4]*F/u 9jx!f_5c/T3ra፩iRc'(>۩Hٳ8sиE{ Ը*=3|0*+%~)CaILXv]!7P ^;$[$Sli%:SnR$ wq/@u1˗bd=Ho~3/vR-\RER:o\,z[O&Lu0ЃTo1W-2\ 0򬔢#憓C'()e%#`